From 44038d9b64ba8d4dd19557ec620030b8ba487160 Mon Sep 17 00:00:00 2001 From: "Il Sub Bang (ethan)" Date: Fri, 7 Oct 2022 15:20:21 +0900 Subject: [PATCH] Revert commit abbea8994fd882508d2c72268cebad2be9967b9c (#14) --- .gitignore | 1 - node_modules/.bin/acorn | 1 + node_modules/.bin/eslint | 1 + node_modules/.bin/eslint-config-prettier | 1 + node_modules/.bin/js-yaml | 1 + node_modules/.bin/node-which | 1 + node_modules/.bin/prettier | 1 + node_modules/.bin/rimraf | 1 + node_modules/.bin/uuid | 1 + node_modules/.package-lock.json | 1604 + node_modules/@actions/core/LICENSE.md | 9 + node_modules/@actions/core/README.md | 335 + node_modules/@actions/core/lib/command.d.ts | 15 + node_modules/@actions/core/lib/command.js | 92 + node_modules/@actions/core/lib/command.js.map | 1 + node_modules/@actions/core/lib/core.d.ts | 198 + node_modules/@actions/core/lib/core.js | 336 + node_modules/@actions/core/lib/core.js.map | 1 + .../@actions/core/lib/file-command.d.ts | 2 + .../@actions/core/lib/file-command.js | 58 + .../@actions/core/lib/file-command.js.map | 1 + .../@actions/core/lib/oidc-utils.d.ts | 7 + node_modules/@actions/core/lib/oidc-utils.js | 77 + .../@actions/core/lib/oidc-utils.js.map | 1 + .../@actions/core/lib/path-utils.d.ts | 25 + node_modules/@actions/core/lib/path-utils.js | 58 + .../@actions/core/lib/path-utils.js.map | 1 + node_modules/@actions/core/lib/summary.d.ts | 202 + node_modules/@actions/core/lib/summary.js | 283 + node_modules/@actions/core/lib/summary.js.map | 1 + node_modules/@actions/core/lib/utils.d.ts | 14 + node_modules/@actions/core/lib/utils.js | 40 + node_modules/@actions/core/lib/utils.js.map | 1 + node_modules/@actions/core/package.json | 46 + node_modules/@actions/github/README.md | 97 + node_modules/@actions/github/lib/context.d.ts | 29 + node_modules/@actions/github/lib/context.js | 50 + .../@actions/github/lib/context.js.map | 1 + node_modules/@actions/github/lib/github.d.ts | 11 + node_modules/@actions/github/lib/github.js | 36 + .../@actions/github/lib/github.js.map | 1 + .../@actions/github/lib/interfaces.d.ts | 40 + .../@actions/github/lib/interfaces.js | 4 + .../@actions/github/lib/interfaces.js.map | 1 + .../@actions/github/lib/internal/utils.d.ts | 6 + .../@actions/github/lib/internal/utils.js | 43 + .../@actions/github/lib/internal/utils.js.map | 1 + node_modules/@actions/github/lib/utils.d.ts | 21 + node_modules/@actions/github/lib/utils.js | 54 + node_modules/@actions/github/lib/utils.js.map | 1 + .../node_modules/@actions/http-client/LICENSE | 21 + .../@actions/http-client/README.md | 79 + .../@actions/http-client/RELEASES.md | 26 + .../@actions/http-client/actions.png | Bin 0 -> 33889 bytes .../@actions/http-client/auth.d.ts | 23 + .../node_modules/@actions/http-client/auth.js | 58 + .../@actions/http-client/index.d.ts | 124 + .../@actions/http-client/index.js | 537 + .../@actions/http-client/interfaces.d.ts | 49 + .../@actions/http-client/interfaces.js | 2 + .../@actions/http-client/package.json | 39 + .../@actions/http-client/proxy.d.ts | 2 + .../@actions/http-client/proxy.js | 57 + node_modules/@actions/github/package.json | 50 + node_modules/@actions/http-client/LICENSE | 21 + node_modules/@actions/http-client/README.md | 73 + .../@actions/http-client/lib/auth.d.ts | 26 + node_modules/@actions/http-client/lib/auth.js | 81 + .../@actions/http-client/lib/auth.js.map | 1 + .../@actions/http-client/lib/index.d.ts | 123 + .../@actions/http-client/lib/index.js | 605 + .../@actions/http-client/lib/index.js.map | 1 + .../@actions/http-client/lib/interfaces.d.ts | 44 + .../@actions/http-client/lib/interfaces.js | 3 + .../http-client/lib/interfaces.js.map | 1 + .../@actions/http-client/lib/proxy.d.ts | 2 + .../@actions/http-client/lib/proxy.js | 61 + .../@actions/http-client/lib/proxy.js.map | 1 + .../@actions/http-client/package.json | 48 + node_modules/@eslint/eslintrc/LICENSE | 19 + node_modules/@eslint/eslintrc/README.md | 64 + .../@eslint/eslintrc/conf/config-schema.js | 79 + .../@eslint/eslintrc/conf/environments.js | 203 + .../eslintrc/dist/eslintrc-universal.cjs | 1092 + .../eslintrc/dist/eslintrc-universal.cjs.map | 1 + .../@eslint/eslintrc/dist/eslintrc.cjs | 4311 ++ .../@eslint/eslintrc/dist/eslintrc.cjs.map | 1 + .../lib/cascading-config-array-factory.js | 533 + .../eslintrc/lib/config-array-factory.js | 1149 + .../eslintrc/lib/config-array/config-array.js | 523 + .../lib/config-array/config-dependency.js | 115 + .../lib/config-array/extracted-config.js | 145 + .../lib/config-array/ignore-pattern.js | 238 + .../eslintrc/lib/config-array/index.js | 19 + .../lib/config-array/override-tester.js | 225 + .../@eslint/eslintrc/lib/flat-compat.js | 307 + .../@eslint/eslintrc/lib/index-universal.js | 29 + node_modules/@eslint/eslintrc/lib/index.js | 56 + .../@eslint/eslintrc/lib/shared/ajv.js | 191 + .../@eslint/eslintrc/lib/shared/config-ops.js | 135 + .../eslintrc/lib/shared/config-validator.js | 325 + .../lib/shared/deprecation-warnings.js | 63 + .../@eslint/eslintrc/lib/shared/naming.js | 96 + .../lib/shared/relative-module-resolver.js | 42 + .../@eslint/eslintrc/lib/shared/types.js | 149 + node_modules/@eslint/eslintrc/package.json | 82 + node_modules/@eslint/eslintrc/universal.js | 9 + .../@humanwhocodes/config-array/CHANGELOG.md | 128 + .../@humanwhocodes/config-array/LICENSE | 201 + .../@humanwhocodes/config-array/README.md | 310 + .../@humanwhocodes/config-array/api.js | 808 + .../@humanwhocodes/config-array/package.json | 60 + .../gitignore-to-minimatch/LICENSE | 201 + .../gitignore-to-minimatch/README.md | 78 + .../dist/gitignore-to-minimatch.cjs | 71 + .../dist/gitignore-to-minimatch.d.ts | 10 + .../dist/gitignore-to-minimatch.js | 67 + .../gitignore-to-minimatch/package.json | 61 + .../module-importer/CHANGELOG.md | 15 + .../@humanwhocodes/module-importer/LICENSE | 201 + .../@humanwhocodes/module-importer/README.md | 80 + .../module-importer/dist/module-importer.cjs | 22 + .../dist/module-importer.d.cts | 27 + .../module-importer/dist/module-importer.d.ts | 2 + .../module-importer/dist/module-importer.js | 18 + .../module-importer/package.json | 65 + .../module-importer/src/module-importer.cjs | 81 + .../module-importer/src/module-importer.js | 22 + .../@humanwhocodes/object-schema/.eslintrc.js | 29 + .../.github/workflows/nodejs-test.yml | 27 + .../.github/workflows/release-please.yml | 39 + .../@humanwhocodes/object-schema/CHANGELOG.md | 8 + .../@humanwhocodes/object-schema/LICENSE | 29 + .../@humanwhocodes/object-schema/README.md | 234 + .../@humanwhocodes/object-schema/package.json | 33 + .../@humanwhocodes/object-schema/src/index.js | 7 + .../object-schema/src/merge-strategy.js | 53 + .../object-schema/src/object-schema.js | 235 + .../object-schema/src/validation-strategy.js | 102 + .../object-schema/tests/merge-strategy.js | 66 + .../object-schema/tests/object-schema.js | 611 + .../tests/validation-strategy.js | 186 + node_modules/@nodelib/fs.scandir/LICENSE | 21 + node_modules/@nodelib/fs.scandir/README.md | 171 + .../@nodelib/fs.scandir/out/adapters/fs.d.ts | 20 + .../@nodelib/fs.scandir/out/adapters/fs.js | 19 + .../@nodelib/fs.scandir/out/constants.d.ts | 4 + .../@nodelib/fs.scandir/out/constants.js | 17 + .../@nodelib/fs.scandir/out/index.d.ts | 12 + node_modules/@nodelib/fs.scandir/out/index.js | 26 + .../fs.scandir/out/providers/async.d.ts | 7 + .../fs.scandir/out/providers/async.js | 104 + .../fs.scandir/out/providers/common.d.ts | 1 + .../fs.scandir/out/providers/common.js | 13 + .../fs.scandir/out/providers/sync.d.ts | 5 + .../@nodelib/fs.scandir/out/providers/sync.js | 54 + .../@nodelib/fs.scandir/out/settings.d.ts | 20 + .../@nodelib/fs.scandir/out/settings.js | 24 + .../@nodelib/fs.scandir/out/types/index.d.ts | 20 + .../@nodelib/fs.scandir/out/types/index.js | 2 + .../@nodelib/fs.scandir/out/utils/fs.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/fs.js | 19 + .../@nodelib/fs.scandir/out/utils/index.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/index.js | 5 + node_modules/@nodelib/fs.scandir/package.json | 44 + node_modules/@nodelib/fs.stat/LICENSE | 21 + node_modules/@nodelib/fs.stat/README.md | 126 + .../@nodelib/fs.stat/out/adapters/fs.d.ts | 13 + .../@nodelib/fs.stat/out/adapters/fs.js | 17 + node_modules/@nodelib/fs.stat/out/index.d.ts | 12 + node_modules/@nodelib/fs.stat/out/index.js | 26 + .../@nodelib/fs.stat/out/providers/async.d.ts | 4 + .../@nodelib/fs.stat/out/providers/async.js | 36 + .../@nodelib/fs.stat/out/providers/sync.d.ts | 3 + .../@nodelib/fs.stat/out/providers/sync.js | 23 + .../@nodelib/fs.stat/out/settings.d.ts | 16 + node_modules/@nodelib/fs.stat/out/settings.js | 16 + .../@nodelib/fs.stat/out/types/index.d.ts | 4 + .../@nodelib/fs.stat/out/types/index.js | 2 + node_modules/@nodelib/fs.stat/package.json | 37 + node_modules/@nodelib/fs.walk/LICENSE | 21 + node_modules/@nodelib/fs.walk/README.md | 215 + node_modules/@nodelib/fs.walk/out/index.d.ts | 14 + node_modules/@nodelib/fs.walk/out/index.js | 34 + .../@nodelib/fs.walk/out/providers/async.d.ts | 12 + .../@nodelib/fs.walk/out/providers/async.js | 30 + .../@nodelib/fs.walk/out/providers/index.d.ts | 4 + .../@nodelib/fs.walk/out/providers/index.js | 9 + .../fs.walk/out/providers/stream.d.ts | 12 + .../@nodelib/fs.walk/out/providers/stream.js | 34 + .../@nodelib/fs.walk/out/providers/sync.d.ts | 10 + .../@nodelib/fs.walk/out/providers/sync.js | 14 + .../@nodelib/fs.walk/out/readers/async.d.ts | 30 + .../@nodelib/fs.walk/out/readers/async.js | 97 + .../@nodelib/fs.walk/out/readers/common.d.ts | 7 + .../@nodelib/fs.walk/out/readers/common.js | 31 + .../@nodelib/fs.walk/out/readers/reader.d.ts | 6 + .../@nodelib/fs.walk/out/readers/reader.js | 11 + .../@nodelib/fs.walk/out/readers/sync.d.ts | 15 + .../@nodelib/fs.walk/out/readers/sync.js | 59 + .../@nodelib/fs.walk/out/settings.d.ts | 30 + node_modules/@nodelib/fs.walk/out/settings.js | 26 + .../@nodelib/fs.walk/out/types/index.d.ts | 8 + .../@nodelib/fs.walk/out/types/index.js | 2 + node_modules/@nodelib/fs.walk/package.json | 44 + node_modules/@octokit/auth-token/LICENSE | 21 + node_modules/@octokit/auth-token/README.md | 290 + .../@octokit/auth-token/dist-node/index.js | 55 + .../auth-token/dist-node/index.js.map | 1 + .../@octokit/auth-token/dist-src/auth.js | 21 + .../@octokit/auth-token/dist-src/hook.js | 6 + .../@octokit/auth-token/dist-src/index.js | 14 + .../@octokit/auth-token/dist-src/types.js | 1 + .../dist-src/with-authorization-prefix.js | 11 + .../@octokit/auth-token/dist-types/auth.d.ts | 2 + .../@octokit/auth-token/dist-types/hook.d.ts | 2 + .../@octokit/auth-token/dist-types/index.d.ts | 7 + .../@octokit/auth-token/dist-types/types.d.ts | 33 + .../dist-types/with-authorization-prefix.d.ts | 6 + .../@octokit/auth-token/dist-web/index.js | 55 + .../@octokit/auth-token/dist-web/index.js.map | 1 + node_modules/@octokit/auth-token/package.json | 45 + node_modules/@octokit/core/LICENSE | 21 + node_modules/@octokit/core/README.md | 448 + node_modules/@octokit/core/dist-node/index.js | 176 + .../@octokit/core/dist-node/index.js.map | 1 + node_modules/@octokit/core/dist-src/index.js | 125 + node_modules/@octokit/core/dist-src/types.js | 1 + .../@octokit/core/dist-src/version.js | 1 + .../@octokit/core/dist-types/index.d.ts | 30 + .../@octokit/core/dist-types/types.d.ts | 44 + .../@octokit/core/dist-types/version.d.ts | 1 + node_modules/@octokit/core/dist-web/index.js | 130 + .../@octokit/core/dist-web/index.js.map | 1 + node_modules/@octokit/core/package.json | 57 + node_modules/@octokit/endpoint/LICENSE | 21 + node_modules/@octokit/endpoint/README.md | 421 + .../@octokit/endpoint/dist-node/index.js | 390 + .../@octokit/endpoint/dist-node/index.js.map | 1 + .../@octokit/endpoint/dist-src/defaults.js | 17 + .../dist-src/endpoint-with-defaults.js | 5 + .../@octokit/endpoint/dist-src/index.js | 3 + .../@octokit/endpoint/dist-src/merge.js | 26 + .../@octokit/endpoint/dist-src/parse.js | 81 + .../dist-src/util/add-query-parameters.js | 17 + .../util/extract-url-variable-names.js | 11 + .../endpoint/dist-src/util/lowercase-keys.js | 9 + .../endpoint/dist-src/util/merge-deep.js | 16 + .../@octokit/endpoint/dist-src/util/omit.js | 8 + .../util/remove-undefined-properties.js | 8 + .../endpoint/dist-src/util/url-template.js | 164 + .../@octokit/endpoint/dist-src/version.js | 1 + .../endpoint/dist-src/with-defaults.js | 13 + .../endpoint/dist-types/defaults.d.ts | 2 + .../dist-types/endpoint-with-defaults.d.ts | 3 + .../@octokit/endpoint/dist-types/index.d.ts | 1 + .../@octokit/endpoint/dist-types/merge.d.ts | 2 + .../@octokit/endpoint/dist-types/parse.d.ts | 2 + .../dist-types/util/add-query-parameters.d.ts | 4 + .../util/extract-url-variable-names.d.ts | 1 + .../dist-types/util/lowercase-keys.d.ts | 5 + .../endpoint/dist-types/util/merge-deep.d.ts | 1 + .../endpoint/dist-types/util/omit.d.ts | 5 + .../util/remove-undefined-properties.d.ts | 1 + .../dist-types/util/url-template.d.ts | 3 + .../@octokit/endpoint/dist-types/version.d.ts | 1 + .../endpoint/dist-types/with-defaults.d.ts | 2 + .../@octokit/endpoint/dist-web/index.js | 381 + .../@octokit/endpoint/dist-web/index.js.map | 1 + node_modules/@octokit/endpoint/package.json | 44 + node_modules/@octokit/graphql/LICENSE | 21 + node_modules/@octokit/graphql/README.md | 409 + .../@octokit/graphql/dist-node/index.js | 118 + .../@octokit/graphql/dist-node/index.js.map | 1 + .../@octokit/graphql/dist-src/error.js | 21 + .../@octokit/graphql/dist-src/graphql.js | 52 + .../@octokit/graphql/dist-src/index.js | 18 + .../@octokit/graphql/dist-src/types.js | 1 + .../@octokit/graphql/dist-src/version.js | 1 + .../graphql/dist-src/with-defaults.js | 12 + .../@octokit/graphql/dist-types/error.d.ts | 13 + .../@octokit/graphql/dist-types/graphql.d.ts | 3 + .../@octokit/graphql/dist-types/index.d.ts | 5 + .../@octokit/graphql/dist-types/types.d.ts | 55 + .../@octokit/graphql/dist-types/version.d.ts | 1 + .../graphql/dist-types/with-defaults.d.ts | 3 + .../@octokit/graphql/dist-web/index.js | 106 + .../@octokit/graphql/dist-web/index.js.map | 1 + node_modules/@octokit/graphql/package.json | 47 + node_modules/@octokit/openapi-types/LICENSE | 7 + node_modules/@octokit/openapi-types/README.md | 17 + .../@octokit/openapi-types/package.json | 20 + .../@octokit/openapi-types/types.d.ts | 47095 ++++++++++++++++ .../@octokit/plugin-paginate-rest/LICENSE | 7 + .../@octokit/plugin-paginate-rest/README.md | 269 + .../plugin-paginate-rest/dist-node/index.js | 205 + .../dist-node/index.js.map | 1 + .../dist-src/compose-paginate.js | 5 + .../generated/paginating-endpoints.js | 216 + .../plugin-paginate-rest/dist-src/index.js | 17 + .../plugin-paginate-rest/dist-src/iterator.js | 39 + .../normalize-paginated-list-response.js | 47 + .../plugin-paginate-rest/dist-src/paginate.js | 24 + .../dist-src/paginating-endpoints.js | 10 + .../plugin-paginate-rest/dist-src/types.js | 1 + .../plugin-paginate-rest/dist-src/version.js | 1 + .../dist-types/compose-paginate.d.ts | 2 + .../generated/paginating-endpoints.d.ts | 1612 + .../dist-types/index.d.ts | 16 + .../dist-types/iterator.d.ts | 20 + .../normalize-paginated-list-response.d.ts | 18 + .../dist-types/paginate.d.ts | 3 + .../dist-types/paginating-endpoints.d.ts | 3 + .../dist-types/types.d.ts | 242 + .../dist-types/version.d.ts | 1 + .../plugin-paginate-rest/dist-web/index.js | 358 + .../dist-web/index.js.map | 1 + .../plugin-paginate-rest/package.json | 51 + .../plugin-rest-endpoint-methods/LICENSE | 7 + .../plugin-rest-endpoint-methods/README.md | 74 + .../dist-node/index.js | 1229 + .../dist-node/index.js.map | 1 + .../dist-src/endpoints-to-methods.js | 60 + .../dist-src/generated/endpoints.js | 1405 + .../dist-src/generated/method-types.js | 1 + .../parameters-and-response-types.js | 1 + .../dist-src/index.js | 11 + .../dist-src/types.js | 1 + .../dist-src/version.js | 1 + .../dist-types/endpoints-to-methods.d.ts | 4 + .../dist-types/generated/endpoints.d.ts | 3 + .../dist-types/generated/method-types.d.ts | 7826 +++ .../parameters-and-response-types.d.ts | 2629 + .../dist-types/index.d.ts | 7 + .../dist-types/types.d.ts | 18 + .../dist-types/version.d.ts | 1 + .../dist-web/index.js | 1479 + .../dist-web/index.js.map | 1 + .../plugin-rest-endpoint-methods/package.json | 60 + node_modules/@octokit/request-error/LICENSE | 21 + node_modules/@octokit/request-error/README.md | 67 + .../@octokit/request-error/dist-node/index.js | 74 + .../request-error/dist-node/index.js.map | 1 + .../@octokit/request-error/dist-src/index.js | 55 + .../@octokit/request-error/dist-src/types.js | 1 + .../request-error/dist-types/index.d.ts | 33 + .../request-error/dist-types/types.d.ts | 9 + .../@octokit/request-error/dist-web/index.js | 59 + .../request-error/dist-web/index.js.map | 1 + .../@octokit/request-error/package.json | 47 + node_modules/@octokit/request/LICENSE | 21 + node_modules/@octokit/request/README.md | 551 + .../@octokit/request/dist-node/index.js | 177 + .../@octokit/request/dist-node/index.js.map | 1 + .../request/dist-src/fetch-wrapper.js | 119 + .../request/dist-src/get-buffer-response.js | 3 + .../@octokit/request/dist-src/index.js | 9 + .../@octokit/request/dist-src/version.js | 1 + .../request/dist-src/with-defaults.js | 22 + .../request/dist-types/fetch-wrapper.d.ts | 11 + .../dist-types/get-buffer-response.d.ts | 2 + .../@octokit/request/dist-types/index.d.ts | 1 + .../@octokit/request/dist-types/version.d.ts | 1 + .../request/dist-types/with-defaults.d.ts | 2 + .../@octokit/request/dist-web/index.js | 158 + .../@octokit/request/dist-web/index.js.map | 1 + node_modules/@octokit/request/package.json | 56 + node_modules/@octokit/types/LICENSE | 7 + node_modules/@octokit/types/README.md | 65 + .../@octokit/types/dist-node/index.js | 8 + .../@octokit/types/dist-node/index.js.map | 1 + .../@octokit/types/dist-src/AuthInterface.js | 1 + .../types/dist-src/EndpointDefaults.js | 1 + .../types/dist-src/EndpointInterface.js | 1 + .../types/dist-src/EndpointOptions.js | 1 + node_modules/@octokit/types/dist-src/Fetch.js | 1 + .../GetResponseTypeFromEndpointMethod.js | 1 + .../types/dist-src/OctokitResponse.js | 1 + .../@octokit/types/dist-src/RequestError.js | 1 + .../@octokit/types/dist-src/RequestHeaders.js | 1 + .../types/dist-src/RequestInterface.js | 1 + .../@octokit/types/dist-src/RequestMethod.js | 1 + .../@octokit/types/dist-src/RequestOptions.js | 1 + .../types/dist-src/RequestParameters.js | 1 + .../types/dist-src/RequestRequestOptions.js | 1 + .../types/dist-src/ResponseHeaders.js | 1 + node_modules/@octokit/types/dist-src/Route.js | 1 + .../@octokit/types/dist-src/Signal.js | 1 + .../types/dist-src/StrategyInterface.js | 1 + node_modules/@octokit/types/dist-src/Url.js | 1 + .../@octokit/types/dist-src/VERSION.js | 1 + .../types/dist-src/generated/Endpoints.js | 1 + node_modules/@octokit/types/dist-src/index.js | 21 + .../types/dist-types/AuthInterface.d.ts | 31 + .../types/dist-types/EndpointDefaults.d.ts | 21 + .../types/dist-types/EndpointInterface.d.ts | 65 + .../types/dist-types/EndpointOptions.d.ts | 7 + .../@octokit/types/dist-types/Fetch.d.ts | 4 + .../GetResponseTypeFromEndpointMethod.d.ts | 5 + .../types/dist-types/OctokitResponse.d.ts | 17 + .../types/dist-types/RequestError.d.ts | 11 + .../types/dist-types/RequestHeaders.d.ts | 15 + .../types/dist-types/RequestInterface.d.ts | 34 + .../types/dist-types/RequestMethod.d.ts | 4 + .../types/dist-types/RequestOptions.d.ts | 14 + .../types/dist-types/RequestParameters.d.ts | 45 + .../dist-types/RequestRequestOptions.d.ts | 26 + .../types/dist-types/ResponseHeaders.d.ts | 20 + .../@octokit/types/dist-types/Route.d.ts | 4 + .../@octokit/types/dist-types/Signal.d.ts | 6 + .../types/dist-types/StrategyInterface.d.ts | 4 + .../@octokit/types/dist-types/Url.d.ts | 4 + .../@octokit/types/dist-types/VERSION.d.ts | 1 + .../types/dist-types/generated/Endpoints.d.ts | 3571 ++ .../@octokit/types/dist-types/index.d.ts | 21 + node_modules/@octokit/types/dist-web/index.js | 4 + .../@octokit/types/dist-web/index.js.map | 1 + node_modules/@octokit/types/package.json | 54 + node_modules/acorn-jsx/LICENSE | 19 + node_modules/acorn-jsx/README.md | 40 + node_modules/acorn-jsx/index.d.ts | 12 + node_modules/acorn-jsx/index.js | 488 + node_modules/acorn-jsx/package.json | 27 + node_modules/acorn-jsx/xhtml.js | 255 + node_modules/acorn/CHANGELOG.md | 810 + node_modules/acorn/LICENSE | 21 + node_modules/acorn/README.md | 273 + node_modules/acorn/bin/acorn | 4 + node_modules/acorn/dist/acorn.d.ts | 252 + node_modules/acorn/dist/acorn.js | 5605 ++ node_modules/acorn/dist/acorn.mjs | 5574 ++ node_modules/acorn/dist/acorn.mjs.d.ts | 2 + node_modules/acorn/dist/bin.js | 91 + node_modules/acorn/package.json | 50 + node_modules/ajv/.tonic_example.js | 20 + node_modules/ajv/LICENSE | 22 + node_modules/ajv/README.md | 1497 + node_modules/ajv/dist/ajv.bundle.js | 7189 +++ node_modules/ajv/dist/ajv.min.js | 3 + node_modules/ajv/dist/ajv.min.js.map | 1 + node_modules/ajv/lib/ajv.d.ts | 397 + node_modules/ajv/lib/ajv.js | 506 + node_modules/ajv/lib/cache.js | 26 + node_modules/ajv/lib/compile/async.js | 90 + node_modules/ajv/lib/compile/equal.js | 5 + node_modules/ajv/lib/compile/error_classes.js | 34 + node_modules/ajv/lib/compile/formats.js | 142 + node_modules/ajv/lib/compile/index.js | 387 + node_modules/ajv/lib/compile/resolve.js | 270 + node_modules/ajv/lib/compile/rules.js | 66 + node_modules/ajv/lib/compile/schema_obj.js | 9 + node_modules/ajv/lib/compile/ucs2length.js | 20 + node_modules/ajv/lib/compile/util.js | 239 + node_modules/ajv/lib/data.js | 49 + node_modules/ajv/lib/definition_schema.js | 37 + node_modules/ajv/lib/dot/_limit.jst | 113 + node_modules/ajv/lib/dot/_limitItems.jst | 12 + node_modules/ajv/lib/dot/_limitLength.jst | 12 + node_modules/ajv/lib/dot/_limitProperties.jst | 12 + node_modules/ajv/lib/dot/allOf.jst | 32 + node_modules/ajv/lib/dot/anyOf.jst | 46 + node_modules/ajv/lib/dot/coerce.def | 51 + node_modules/ajv/lib/dot/comment.jst | 9 + node_modules/ajv/lib/dot/const.jst | 11 + node_modules/ajv/lib/dot/contains.jst | 55 + node_modules/ajv/lib/dot/custom.jst | 191 + node_modules/ajv/lib/dot/defaults.def | 47 + node_modules/ajv/lib/dot/definitions.def | 203 + node_modules/ajv/lib/dot/dependencies.jst | 79 + node_modules/ajv/lib/dot/enum.jst | 30 + node_modules/ajv/lib/dot/errors.def | 194 + node_modules/ajv/lib/dot/format.jst | 106 + node_modules/ajv/lib/dot/if.jst | 73 + node_modules/ajv/lib/dot/items.jst | 98 + node_modules/ajv/lib/dot/missing.def | 39 + node_modules/ajv/lib/dot/multipleOf.jst | 22 + node_modules/ajv/lib/dot/not.jst | 43 + node_modules/ajv/lib/dot/oneOf.jst | 54 + node_modules/ajv/lib/dot/pattern.jst | 14 + node_modules/ajv/lib/dot/properties.jst | 245 + node_modules/ajv/lib/dot/propertyNames.jst | 52 + node_modules/ajv/lib/dot/ref.jst | 85 + node_modules/ajv/lib/dot/required.jst | 108 + node_modules/ajv/lib/dot/uniqueItems.jst | 62 + node_modules/ajv/lib/dot/validate.jst | 276 + node_modules/ajv/lib/dotjs/README.md | 3 + node_modules/ajv/lib/dotjs/_limit.js | 163 + node_modules/ajv/lib/dotjs/_limitItems.js | 80 + node_modules/ajv/lib/dotjs/_limitLength.js | 85 + .../ajv/lib/dotjs/_limitProperties.js | 80 + node_modules/ajv/lib/dotjs/allOf.js | 42 + node_modules/ajv/lib/dotjs/anyOf.js | 73 + node_modules/ajv/lib/dotjs/comment.js | 14 + node_modules/ajv/lib/dotjs/const.js | 56 + node_modules/ajv/lib/dotjs/contains.js | 81 + node_modules/ajv/lib/dotjs/custom.js | 228 + node_modules/ajv/lib/dotjs/dependencies.js | 168 + node_modules/ajv/lib/dotjs/enum.js | 66 + node_modules/ajv/lib/dotjs/format.js | 150 + node_modules/ajv/lib/dotjs/if.js | 103 + node_modules/ajv/lib/dotjs/index.js | 33 + node_modules/ajv/lib/dotjs/items.js | 140 + node_modules/ajv/lib/dotjs/multipleOf.js | 80 + node_modules/ajv/lib/dotjs/not.js | 84 + node_modules/ajv/lib/dotjs/oneOf.js | 73 + node_modules/ajv/lib/dotjs/pattern.js | 75 + node_modules/ajv/lib/dotjs/properties.js | 335 + node_modules/ajv/lib/dotjs/propertyNames.js | 81 + node_modules/ajv/lib/dotjs/ref.js | 124 + node_modules/ajv/lib/dotjs/required.js | 270 + node_modules/ajv/lib/dotjs/uniqueItems.js | 86 + node_modules/ajv/lib/dotjs/validate.js | 482 + node_modules/ajv/lib/keyword.js | 146 + node_modules/ajv/lib/refs/data.json | 17 + .../ajv/lib/refs/json-schema-draft-04.json | 149 + .../ajv/lib/refs/json-schema-draft-06.json | 154 + .../ajv/lib/refs/json-schema-draft-07.json | 168 + .../ajv/lib/refs/json-schema-secure.json | 94 + node_modules/ajv/package.json | 106 + node_modules/ajv/scripts/.eslintrc.yml | 3 + node_modules/ajv/scripts/bundle.js | 61 + node_modules/ajv/scripts/compile-dots.js | 73 + node_modules/ajv/scripts/info | 10 + node_modules/ajv/scripts/prepare-tests | 12 + .../ajv/scripts/publish-built-version | 32 + node_modules/ajv/scripts/travis-gh-pages | 23 + node_modules/ansi-regex/index.d.ts | 37 + node_modules/ansi-regex/index.js | 10 + node_modules/ansi-regex/license | 9 + node_modules/ansi-regex/package.json | 55 + node_modules/ansi-regex/readme.md | 78 + node_modules/ansi-styles/index.d.ts | 345 + node_modules/ansi-styles/index.js | 163 + node_modules/ansi-styles/license | 9 + node_modules/ansi-styles/package.json | 56 + node_modules/ansi-styles/readme.md | 152 + node_modules/argparse/CHANGELOG.md | 216 + node_modules/argparse/LICENSE | 254 + node_modules/argparse/README.md | 84 + node_modules/argparse/argparse.js | 3707 ++ node_modules/argparse/lib/sub.js | 67 + node_modules/argparse/lib/textwrap.js | 440 + node_modules/argparse/package.json | 31 + node_modules/array-union/index.d.ts | 25 + node_modules/array-union/index.js | 5 + node_modules/array-union/license | 9 + node_modules/array-union/package.json | 38 + node_modules/array-union/readme.md | 34 + .../balanced-match/.github/FUNDING.yml | 2 + node_modules/balanced-match/LICENSE.md | 21 + node_modules/balanced-match/README.md | 97 + node_modules/balanced-match/index.js | 62 + node_modules/balanced-match/package.json | 48 + node_modules/before-after-hook/LICENSE | 201 + node_modules/before-after-hook/README.md | 653 + node_modules/before-after-hook/index.d.ts | 186 + node_modules/before-after-hook/index.js | 61 + node_modules/before-after-hook/lib/add.js | 46 + .../before-after-hook/lib/register.js | 27 + node_modules/before-after-hook/lib/remove.js | 19 + node_modules/before-after-hook/package.json | 71 + node_modules/brace-expansion/LICENSE | 21 + node_modules/brace-expansion/README.md | 129 + node_modules/brace-expansion/index.js | 201 + node_modules/brace-expansion/package.json | 47 + node_modules/braces/CHANGELOG.md | 184 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 593 + node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 57 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 333 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 112 + node_modules/braces/package.json | 77 + node_modules/callsites/index.d.ts | 96 + node_modules/callsites/index.js | 13 + node_modules/callsites/license | 9 + node_modules/callsites/package.json | 39 + node_modules/callsites/readme.md | 48 + node_modules/chalk/index.d.ts | 415 + node_modules/chalk/license | 9 + node_modules/chalk/package.json | 68 + node_modules/chalk/readme.md | 341 + node_modules/chalk/source/index.js | 229 + node_modules/chalk/source/templates.js | 134 + node_modules/chalk/source/util.js | 39 + node_modules/color-convert/CHANGELOG.md | 54 + node_modules/color-convert/LICENSE | 21 + node_modules/color-convert/README.md | 68 + node_modules/color-convert/conversions.js | 839 + node_modules/color-convert/index.js | 81 + node_modules/color-convert/package.json | 48 + node_modules/color-convert/route.js | 97 + node_modules/color-name/LICENSE | 8 + node_modules/color-name/README.md | 11 + node_modules/color-name/index.js | 152 + node_modules/color-name/package.json | 28 + node_modules/concat-map/.travis.yml | 4 + node_modules/concat-map/LICENSE | 18 + node_modules/concat-map/README.markdown | 62 + node_modules/concat-map/example/map.js | 6 + node_modules/concat-map/index.js | 13 + node_modules/concat-map/package.json | 43 + node_modules/concat-map/test/map.js | 39 + node_modules/cross-spawn/CHANGELOG.md | 130 + node_modules/cross-spawn/LICENSE | 21 + node_modules/cross-spawn/README.md | 96 + node_modules/cross-spawn/index.js | 39 + node_modules/cross-spawn/lib/enoent.js | 59 + node_modules/cross-spawn/lib/parse.js | 91 + node_modules/cross-spawn/lib/util/escape.js | 45 + .../cross-spawn/lib/util/readShebang.js | 23 + .../cross-spawn/lib/util/resolveCommand.js | 52 + node_modules/cross-spawn/package.json | 73 + node_modules/debug/LICENSE | 20 + node_modules/debug/README.md | 481 + node_modules/debug/package.json | 59 + node_modules/debug/src/browser.js | 269 + node_modules/debug/src/common.js | 274 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/node.js | 263 + node_modules/deep-is/.travis.yml | 5 + node_modules/deep-is/LICENSE | 22 + node_modules/deep-is/README.markdown | 70 + node_modules/deep-is/example/cmp.js | 11 + node_modules/deep-is/index.js | 102 + node_modules/deep-is/package.json | 58 + node_modules/deep-is/test/NaN.js | 16 + node_modules/deep-is/test/cmp.js | 23 + node_modules/deep-is/test/neg-vs-pos-0.js | 15 + node_modules/deprecation/LICENSE | 15 + node_modules/deprecation/README.md | 77 + node_modules/deprecation/dist-node/index.js | 20 + node_modules/deprecation/dist-src/index.js | 14 + .../deprecation/dist-types/index.d.ts | 3 + node_modules/deprecation/dist-web/index.js | 16 + node_modules/deprecation/package.json | 34 + node_modules/dir-glob/index.js | 75 + node_modules/dir-glob/license | 9 + node_modules/dir-glob/package.json | 38 + node_modules/dir-glob/readme.md | 76 + node_modules/docker-compose/CHANGELOG.md | 240 + node_modules/docker-compose/LICENSE | 21 + .../community-samples/readme.md | 22 + node_modules/docker-compose/dist/index.d.ts | 136 + node_modules/docker-compose/dist/index.js | 483 + .../docker-compose/dist/map-ports.d.ts | 11 + node_modules/docker-compose/dist/map-ports.js | 27 + node_modules/docker-compose/package.json | 121 + node_modules/docker-compose/readme.md | 74 + node_modules/docker-compose/src/index.ts | 562 + node_modules/docker-compose/src/map-ports.ts | 38 + node_modules/docker-compose/tsconfig.json | 68 + node_modules/doctrine/CHANGELOG.md | 101 + node_modules/doctrine/LICENSE | 177 + .../doctrine/LICENSE.closure-compiler | 202 + node_modules/doctrine/LICENSE.esprima | 19 + node_modules/doctrine/README.md | 165 + node_modules/doctrine/lib/doctrine.js | 898 + node_modules/doctrine/lib/typed.js | 1305 + node_modules/doctrine/lib/utility.js | 35 + node_modules/doctrine/package.json | 58 + node_modules/escape-string-regexp/index.d.ts | 18 + node_modules/escape-string-regexp/index.js | 13 + node_modules/escape-string-regexp/license | 9 + .../escape-string-regexp/package.json | 38 + node_modules/escape-string-regexp/readme.md | 34 + .../@typescript-eslint.js | 3 + node_modules/eslint-config-prettier/LICENSE | 21 + node_modules/eslint-config-prettier/README.md | 9 + node_modules/eslint-config-prettier/babel.js | 3 + .../eslint-config-prettier/bin/cli.js | 205 + .../eslint-config-prettier/bin/validators.js | 63 + .../eslint-config-prettier/flowtype.js | 3 + node_modules/eslint-config-prettier/index.js | 194 + .../eslint-config-prettier/package.json | 13 + .../eslint-config-prettier/prettier.js | 12 + node_modules/eslint-config-prettier/react.js | 3 + .../eslint-config-prettier/standard.js | 3 + .../eslint-config-prettier/unicorn.js | 3 + node_modules/eslint-config-prettier/vue.js | 3 + .../eslint-plugin-prettier/CHANGELOG.md | 288 + .../eslint-plugin-prettier/LICENSE.md | 24 + node_modules/eslint-plugin-prettier/README.md | 176 + .../eslint-plugin-prettier.js | 302 + .../eslint-plugin-prettier/package.json | 71 + node_modules/eslint-scope/LICENSE | 22 + node_modules/eslint-scope/README.md | 66 + .../eslint-scope/dist/eslint-scope.cjs | 2240 + node_modules/eslint-scope/lib/definition.js | 85 + node_modules/eslint-scope/lib/index.js | 172 + .../eslint-scope/lib/pattern-visitor.js | 153 + node_modules/eslint-scope/lib/reference.js | 166 + node_modules/eslint-scope/lib/referencer.js | 654 + .../eslint-scope/lib/scope-manager.js | 255 + node_modules/eslint-scope/lib/scope.js | 772 + node_modules/eslint-scope/lib/variable.js | 87 + node_modules/eslint-scope/lib/version.js | 3 + node_modules/eslint-scope/package.json | 62 + node_modules/eslint-utils/LICENSE | 21 + node_modules/eslint-utils/README.md | 38 + node_modules/eslint-utils/index.js | 1956 + node_modules/eslint-utils/index.js.map | 1 + node_modules/eslint-utils/index.mjs | 1914 + node_modules/eslint-utils/index.mjs.map | 1 + .../eslint-visitor-keys/CHANGELOG.md | 36 + .../node_modules/eslint-visitor-keys/LICENSE | 201 + .../eslint-visitor-keys/README.md | 98 + .../eslint-visitor-keys/lib/index.js | 81 + .../eslint-visitor-keys/lib/visitor-keys.json | 289 + .../eslint-visitor-keys/package.json | 39 + node_modules/eslint-utils/package.json | 78 + node_modules/eslint-visitor-keys/LICENSE | 201 + node_modules/eslint-visitor-keys/README.md | 107 + .../dist/eslint-visitor-keys.cjs | 382 + .../eslint-visitor-keys/dist/index.d.ts | 18 + .../dist/visitor-keys.d.ts | 10 + node_modules/eslint-visitor-keys/lib/index.js | 65 + .../eslint-visitor-keys/lib/visitor-keys.js | 312 + node_modules/eslint-visitor-keys/package.json | 62 + node_modules/eslint/LICENSE | 19 + node_modules/eslint/README.md | 298 + node_modules/eslint/bin/eslint.js | 140 + node_modules/eslint/conf/config-schema.js | 93 + .../eslint/conf/default-cli-options.js | 32 + node_modules/eslint/conf/eslint-all.js | 31 + .../eslint/conf/eslint-recommended.js | 76 + node_modules/eslint/conf/globals.js | 149 + node_modules/eslint/conf/replacements.json | 22 + node_modules/eslint/conf/rule-type-list.json | 36 + node_modules/eslint/lib/api.js | 26 + .../eslint/lib/cli-engine/cli-engine.js | 1067 + .../eslint/lib/cli-engine/file-enumerator.js | 545 + .../lib/cli-engine/formatters/checkstyle.js | 60 + .../lib/cli-engine/formatters/compact.js | 60 + .../eslint/lib/cli-engine/formatters/html.js | 326 + .../lib/cli-engine/formatters/jslint-xml.js | 41 + .../formatters/json-with-metadata.js | 16 + .../eslint/lib/cli-engine/formatters/json.js | 13 + .../eslint/lib/cli-engine/formatters/junit.js | 82 + .../lib/cli-engine/formatters/stylish.js | 101 + .../eslint/lib/cli-engine/formatters/tap.js | 95 + .../eslint/lib/cli-engine/formatters/unix.js | 58 + .../lib/cli-engine/formatters/visualstudio.js | 63 + node_modules/eslint/lib/cli-engine/hash.js | 35 + node_modules/eslint/lib/cli-engine/index.js | 7 + .../lib/cli-engine/lint-result-cache.js | 191 + .../eslint/lib/cli-engine/load-rules.js | 46 + .../eslint/lib/cli-engine/xml-escape.js | 34 + node_modules/eslint/lib/cli.js | 438 + .../eslint/lib/config/default-config.js | 70 + .../eslint/lib/config/flat-config-array.js | 214 + .../eslint/lib/config/flat-config-helpers.js | 111 + .../eslint/lib/config/flat-config-schema.js | 457 + .../eslint/lib/config/rule-validator.js | 157 + .../eslint/lib/eslint/eslint-helpers.js | 644 + node_modules/eslint/lib/eslint/eslint.js | 697 + node_modules/eslint/lib/eslint/flat-eslint.js | 1176 + node_modules/eslint/lib/eslint/index.js | 9 + .../lib/linter/apply-disable-directives.js | 341 + .../code-path-analysis/code-path-analyzer.js | 844 + .../code-path-analysis/code-path-segment.js | 235 + .../code-path-analysis/code-path-state.js | 1483 + .../linter/code-path-analysis/code-path.js | 247 + .../code-path-analysis/debug-helpers.js | 203 + .../linter/code-path-analysis/fork-context.js | 248 + .../linter/code-path-analysis/id-generator.js | 45 + .../lib/linter/config-comment-parser.js | 144 + node_modules/eslint/lib/linter/index.js | 13 + node_modules/eslint/lib/linter/interpolate.js | 28 + node_modules/eslint/lib/linter/linter.js | 2078 + .../eslint/lib/linter/node-event-generator.js | 354 + .../eslint/lib/linter/report-translator.js | 368 + node_modules/eslint/lib/linter/rule-fixer.js | 140 + node_modules/eslint/lib/linter/rules.js | 80 + .../eslint/lib/linter/safe-emitter.js | 52 + .../eslint/lib/linter/source-code-fixer.js | 152 + node_modules/eslint/lib/linter/timing.js | 161 + node_modules/eslint/lib/options.js | 371 + .../lib/rule-tester/flat-rule-tester.js | 1042 + node_modules/eslint/lib/rule-tester/index.js | 5 + .../eslint/lib/rule-tester/rule-tester.js | 1050 + .../eslint/lib/rules/accessor-pairs.js | 354 + .../eslint/lib/rules/array-bracket-newline.js | 258 + .../eslint/lib/rules/array-bracket-spacing.js | 241 + .../eslint/lib/rules/array-callback-return.js | 296 + .../eslint/lib/rules/array-element-newline.js | 301 + .../eslint/lib/rules/arrow-body-style.js | 296 + node_modules/eslint/lib/rules/arrow-parens.js | 183 + .../eslint/lib/rules/arrow-spacing.js | 161 + .../eslint/lib/rules/block-scoped-var.js | 124 + .../eslint/lib/rules/block-spacing.js | 171 + node_modules/eslint/lib/rules/brace-style.js | 194 + .../eslint/lib/rules/callback-return.js | 187 + node_modules/eslint/lib/rules/camelcase.js | 398 + .../eslint/lib/rules/capitalized-comments.js | 300 + .../lib/rules/class-methods-use-this.js | 187 + node_modules/eslint/lib/rules/comma-dangle.js | 370 + .../eslint/lib/rules/comma-spacing.js | 189 + node_modules/eslint/lib/rules/comma-style.js | 311 + node_modules/eslint/lib/rules/complexity.js | 165 + .../lib/rules/computed-property-spacing.js | 205 + .../eslint/lib/rules/consistent-return.js | 185 + .../eslint/lib/rules/consistent-this.js | 151 + .../eslint/lib/rules/constructor-super.js | 423 + node_modules/eslint/lib/rules/curly.js | 486 + .../eslint/lib/rules/default-case-last.js | 44 + node_modules/eslint/lib/rules/default-case.js | 97 + .../eslint/lib/rules/default-param-last.js | 62 + node_modules/eslint/lib/rules/dot-location.js | 105 + node_modules/eslint/lib/rules/dot-notation.js | 177 + node_modules/eslint/lib/rules/eol-last.js | 112 + node_modules/eslint/lib/rules/eqeqeq.js | 174 + .../eslint/lib/rules/for-direction.js | 126 + .../eslint/lib/rules/func-call-spacing.js | 230 + .../eslint/lib/rules/func-name-matching.js | 253 + node_modules/eslint/lib/rules/func-names.js | 191 + node_modules/eslint/lib/rules/func-style.js | 98 + .../rules/function-call-argument-newline.js | 122 + .../lib/rules/function-paren-newline.js | 289 + .../lib/rules/generator-star-spacing.js | 206 + .../eslint/lib/rules/getter-return.js | 173 + .../eslint/lib/rules/global-require.js | 88 + .../lib/rules/grouped-accessor-pairs.js | 224 + node_modules/eslint/lib/rules/guard-for-in.js | 76 + .../eslint/lib/rules/handle-callback-err.js | 100 + node_modules/eslint/lib/rules/id-blacklist.js | 245 + node_modules/eslint/lib/rules/id-denylist.js | 227 + node_modules/eslint/lib/rules/id-length.js | 169 + node_modules/eslint/lib/rules/id-match.js | 298 + .../lib/rules/implicit-arrow-linebreak.js | 81 + .../eslint/lib/rules/indent-legacy.js | 1126 + node_modules/eslint/lib/rules/indent.js | 1804 + node_modules/eslint/lib/rules/index.js | 303 + .../eslint/lib/rules/init-declarations.js | 139 + node_modules/eslint/lib/rules/jsx-quotes.js | 95 + node_modules/eslint/lib/rules/key-spacing.js | 678 + .../eslint/lib/rules/keyword-spacing.js | 637 + .../eslint/lib/rules/line-comment-position.js | 122 + .../eslint/lib/rules/linebreak-style.js | 105 + .../eslint/lib/rules/lines-around-comment.js | 457 + .../lib/rules/lines-around-directive.js | 201 + .../lib/rules/lines-between-class-members.js | 181 + .../lib/rules/logical-assignment-operators.js | 474 + .../eslint/lib/rules/max-classes-per-file.js | 89 + node_modules/eslint/lib/rules/max-depth.js | 156 + node_modules/eslint/lib/rules/max-len.js | 433 + .../lib/rules/max-lines-per-function.js | 213 + node_modules/eslint/lib/rules/max-lines.js | 193 + .../eslint/lib/rules/max-nested-callbacks.js | 117 + node_modules/eslint/lib/rules/max-params.js | 102 + .../lib/rules/max-statements-per-line.js | 196 + .../eslint/lib/rules/max-statements.js | 184 + .../lib/rules/multiline-comment-style.js | 435 + .../eslint/lib/rules/multiline-ternary.js | 171 + node_modules/eslint/lib/rules/new-cap.js | 276 + node_modules/eslint/lib/rules/new-parens.js | 99 + .../eslint/lib/rules/newline-after-var.js | 255 + .../eslint/lib/rules/newline-before-return.js | 217 + .../lib/rules/newline-per-chained-call.js | 123 + node_modules/eslint/lib/rules/no-alert.js | 136 + .../eslint/lib/rules/no-array-constructor.js | 54 + .../lib/rules/no-async-promise-executor.js | 39 + .../eslint/lib/rules/no-await-in-loop.js | 106 + node_modules/eslint/lib/rules/no-bitwise.js | 119 + .../eslint/lib/rules/no-buffer-constructor.js | 50 + node_modules/eslint/lib/rules/no-caller.js | 46 + .../eslint/lib/rules/no-case-declarations.js | 64 + .../eslint/lib/rules/no-catch-shadow.js | 80 + .../eslint/lib/rules/no-class-assign.js | 61 + .../eslint/lib/rules/no-compare-neg-zero.js | 60 + .../eslint/lib/rules/no-cond-assign.js | 159 + .../eslint/lib/rules/no-confusing-arrow.js | 89 + node_modules/eslint/lib/rules/no-console.js | 134 + .../eslint/lib/rules/no-const-assign.js | 54 + .../rules/no-constant-binary-expression.js | 500 + .../eslint/lib/rules/no-constant-condition.js | 149 + .../eslint/lib/rules/no-constructor-return.js | 62 + node_modules/eslint/lib/rules/no-continue.js | 39 + .../eslint/lib/rules/no-control-regex.js | 125 + node_modules/eslint/lib/rules/no-debugger.js | 43 + .../eslint/lib/rules/no-delete-var.js | 42 + node_modules/eslint/lib/rules/no-div-regex.js | 53 + node_modules/eslint/lib/rules/no-dupe-args.js | 80 + .../eslint/lib/rules/no-dupe-class-members.js | 104 + .../eslint/lib/rules/no-dupe-else-if.js | 122 + node_modules/eslint/lib/rules/no-dupe-keys.js | 142 + .../eslint/lib/rules/no-duplicate-case.js | 71 + .../eslint/lib/rules/no-duplicate-imports.js | 290 + .../eslint/lib/rules/no-else-return.js | 404 + .../lib/rules/no-empty-character-class.js | 55 + .../eslint/lib/rules/no-empty-function.js | 167 + .../eslint/lib/rules/no-empty-pattern.js | 43 + node_modules/eslint/lib/rules/no-empty.js | 86 + node_modules/eslint/lib/rules/no-eq-null.js | 46 + node_modules/eslint/lib/rules/no-eval.js | 286 + node_modules/eslint/lib/rules/no-ex-assign.js | 52 + .../eslint/lib/rules/no-extend-native.js | 178 + .../eslint/lib/rules/no-extra-bind.js | 213 + .../eslint/lib/rules/no-extra-boolean-cast.js | 317 + .../eslint/lib/rules/no-extra-label.js | 149 + .../eslint/lib/rules/no-extra-parens.js | 1235 + .../eslint/lib/rules/no-extra-semi.js | 126 + .../eslint/lib/rules/no-fallthrough.js | 152 + .../eslint/lib/rules/no-floating-decimal.js | 70 + .../eslint/lib/rules/no-func-assign.js | 76 + .../eslint/lib/rules/no-global-assign.js | 94 + .../eslint/lib/rules/no-implicit-coercion.js | 361 + .../eslint/lib/rules/no-implicit-globals.js | 140 + .../eslint/lib/rules/no-implied-eval.js | 131 + .../eslint/lib/rules/no-import-assign.js | 239 + .../eslint/lib/rules/no-inline-comments.js | 110 + .../eslint/lib/rules/no-inner-declarations.js | 110 + .../eslint/lib/rules/no-invalid-regexp.js | 157 + .../eslint/lib/rules/no-invalid-this.js | 150 + .../lib/rules/no-irregular-whitespace.js | 259 + node_modules/eslint/lib/rules/no-iterator.js | 52 + node_modules/eslint/lib/rules/no-label-var.js | 79 + node_modules/eslint/lib/rules/no-labels.js | 149 + .../eslint/lib/rules/no-lone-blocks.js | 134 + node_modules/eslint/lib/rules/no-lonely-if.js | 89 + node_modules/eslint/lib/rules/no-loop-func.js | 204 + .../eslint/lib/rules/no-loss-of-precision.js | 206 + .../eslint/lib/rules/no-magic-numbers.js | 226 + .../rules/no-misleading-character-class.js | 273 + .../eslint/lib/rules/no-mixed-operators.js | 226 + .../eslint/lib/rules/no-mixed-requires.js | 238 + .../lib/rules/no-mixed-spaces-and-tabs.js | 113 + .../eslint/lib/rules/no-multi-assign.js | 67 + .../eslint/lib/rules/no-multi-spaces.js | 138 + node_modules/eslint/lib/rules/no-multi-str.js | 65 + .../lib/rules/no-multiple-empty-lines.js | 151 + .../eslint/lib/rules/no-native-reassign.js | 97 + .../eslint/lib/rules/no-negated-condition.js | 95 + .../eslint/lib/rules/no-negated-in-lhs.js | 46 + .../eslint/lib/rules/no-nested-ternary.js | 44 + node_modules/eslint/lib/rules/no-new-func.js | 86 + .../eslint/lib/rules/no-new-object.js | 57 + .../eslint/lib/rules/no-new-require.js | 50 + .../eslint/lib/rules/no-new-symbol.js | 54 + .../eslint/lib/rules/no-new-wrappers.js | 48 + node_modules/eslint/lib/rules/no-new.js | 43 + .../lib/rules/no-nonoctal-decimal-escape.js | 148 + node_modules/eslint/lib/rules/no-obj-calls.js | 84 + .../eslint/lib/rules/no-octal-escape.js | 56 + node_modules/eslint/lib/rules/no-octal.js | 45 + .../eslint/lib/rules/no-param-reassign.js | 229 + .../eslint/lib/rules/no-path-concat.js | 64 + node_modules/eslint/lib/rules/no-plusplus.js | 105 + .../eslint/lib/rules/no-process-env.js | 51 + .../eslint/lib/rules/no-process-exit.js | 47 + .../lib/rules/no-promise-executor-return.js | 121 + node_modules/eslint/lib/rules/no-proto.js | 48 + .../eslint/lib/rules/no-prototype-builtins.js | 71 + node_modules/eslint/lib/rules/no-redeclare.js | 174 + .../eslint/lib/rules/no-regex-spaces.js | 180 + .../eslint/lib/rules/no-restricted-exports.js | 96 + .../eslint/lib/rules/no-restricted-globals.js | 122 + .../eslint/lib/rules/no-restricted-imports.js | 387 + .../eslint/lib/rules/no-restricted-modules.js | 216 + .../lib/rules/no-restricted-properties.js | 181 + .../eslint/lib/rules/no-restricted-syntax.js | 70 + .../eslint/lib/rules/no-return-assign.js | 80 + .../eslint/lib/rules/no-return-await.js | 103 + .../eslint/lib/rules/no-script-url.js | 61 + .../eslint/lib/rules/no-self-assign.js | 183 + .../eslint/lib/rules/no-self-compare.js | 60 + node_modules/eslint/lib/rules/no-sequences.js | 138 + .../eslint/lib/rules/no-setter-return.js | 225 + .../lib/rules/no-shadow-restricted-names.js | 64 + node_modules/eslint/lib/rules/no-shadow.js | 335 + .../eslint/lib/rules/no-spaced-func.js | 83 + .../eslint/lib/rules/no-sparse-arrays.js | 50 + node_modules/eslint/lib/rules/no-sync.js | 64 + node_modules/eslint/lib/rules/no-tabs.js | 78 + .../lib/rules/no-template-curly-in-string.js | 44 + node_modules/eslint/lib/rules/no-ternary.js | 41 + .../eslint/lib/rules/no-this-before-super.js | 304 + .../eslint/lib/rules/no-throw-literal.js | 51 + .../eslint/lib/rules/no-trailing-spaces.js | 190 + .../eslint/lib/rules/no-undef-init.js | 75 + node_modules/eslint/lib/rules/no-undef.js | 78 + node_modules/eslint/lib/rules/no-undefined.js | 84 + .../eslint/lib/rules/no-underscore-dangle.js | 309 + .../lib/rules/no-unexpected-multiline.js | 120 + .../lib/rules/no-unmodified-loop-condition.js | 360 + .../eslint/lib/rules/no-unneeded-ternary.js | 166 + .../eslint/lib/rules/no-unreachable-loop.js | 150 + .../eslint/lib/rules/no-unreachable.js | 264 + .../eslint/lib/rules/no-unsafe-finally.js | 111 + .../eslint/lib/rules/no-unsafe-negation.js | 128 + .../lib/rules/no-unsafe-optional-chaining.js | 205 + .../eslint/lib/rules/no-unused-expressions.js | 189 + .../eslint/lib/rules/no-unused-labels.js | 110 + .../rules/no-unused-private-class-members.js | 195 + .../eslint/lib/rules/no-unused-vars.js | 717 + .../eslint/lib/rules/no-use-before-define.js | 347 + .../lib/rules/no-useless-backreference.js | 192 + .../eslint/lib/rules/no-useless-call.js | 90 + .../eslint/lib/rules/no-useless-catch.js | 57 + .../lib/rules/no-useless-computed-key.js | 168 + .../eslint/lib/rules/no-useless-concat.js | 115 + .../lib/rules/no-useless-constructor.js | 189 + .../eslint/lib/rules/no-useless-escape.js | 254 + .../eslint/lib/rules/no-useless-rename.js | 172 + .../eslint/lib/rules/no-useless-return.js | 305 + node_modules/eslint/lib/rules/no-var.js | 334 + node_modules/eslint/lib/rules/no-void.js | 64 + .../eslint/lib/rules/no-warning-comments.js | 201 + .../rules/no-whitespace-before-property.js | 113 + node_modules/eslint/lib/rules/no-with.js | 39 + .../rules/nonblock-statement-body-position.js | 124 + .../eslint/lib/rules/object-curly-newline.js | 321 + .../eslint/lib/rules/object-curly-spacing.js | 308 + .../lib/rules/object-property-newline.js | 99 + .../eslint/lib/rules/object-shorthand.js | 519 + .../lib/rules/one-var-declaration-per-line.js | 92 + node_modules/eslint/lib/rules/one-var.js | 567 + .../eslint/lib/rules/operator-assignment.js | 209 + .../eslint/lib/rules/operator-linebreak.js | 250 + .../eslint/lib/rules/padded-blocks.js | 307 + .../rules/padding-line-between-statements.js | 632 + .../eslint/lib/rules/prefer-arrow-callback.js | 380 + node_modules/eslint/lib/rules/prefer-const.js | 501 + .../eslint/lib/rules/prefer-destructuring.js | 301 + .../rules/prefer-exponentiation-operator.js | 190 + .../lib/rules/prefer-named-capture-group.js | 110 + .../lib/rules/prefer-numeric-literals.js | 148 + .../eslint/lib/rules/prefer-object-has-own.js | 112 + .../eslint/lib/rules/prefer-object-spread.js | 299 + .../lib/rules/prefer-promise-reject-errors.js | 131 + .../eslint/lib/rules/prefer-reflect.js | 127 + .../eslint/lib/rules/prefer-regex-literals.js | 396 + .../eslint/lib/rules/prefer-rest-params.js | 115 + .../eslint/lib/rules/prefer-spread.js | 87 + .../eslint/lib/rules/prefer-template.js | 275 + node_modules/eslint/lib/rules/quote-props.js | 307 + node_modules/eslint/lib/rules/quotes.js | 347 + node_modules/eslint/lib/rules/radix.js | 198 + .../lib/rules/require-atomic-updates.js | 317 + .../eslint/lib/rules/require-await.js | 113 + .../eslint/lib/rules/require-jsdoc.js | 122 + .../lib/rules/require-unicode-regexp.js | 69 + .../eslint/lib/rules/require-yield.js | 77 + .../eslint/lib/rules/rest-spread-spacing.js | 120 + node_modules/eslint/lib/rules/semi-spacing.js | 245 + node_modules/eslint/lib/rules/semi-style.js | 155 + node_modules/eslint/lib/rules/semi.js | 410 + node_modules/eslint/lib/rules/sort-imports.js | 241 + node_modules/eslint/lib/rules/sort-keys.js | 230 + node_modules/eslint/lib/rules/sort-vars.js | 104 + .../eslint/lib/rules/space-before-blocks.js | 201 + .../lib/rules/space-before-function-paren.js | 164 + .../eslint/lib/rules/space-in-parens.js | 282 + .../eslint/lib/rules/space-infix-ops.js | 195 + .../eslint/lib/rules/space-unary-ops.js | 321 + .../eslint/lib/rules/spaced-comment.js | 382 + node_modules/eslint/lib/rules/strict.js | 277 + .../eslint/lib/rules/switch-colon-spacing.js | 129 + .../eslint/lib/rules/symbol-description.js | 71 + .../lib/rules/template-curly-spacing.js | 141 + .../eslint/lib/rules/template-tag-spacing.js | 90 + node_modules/eslint/lib/rules/unicode-bom.js | 73 + node_modules/eslint/lib/rules/use-isnan.js | 141 + .../eslint/lib/rules/utils/ast-utils.js | 2124 + .../eslint/lib/rules/utils/fix-tracker.js | 114 + .../eslint/lib/rules/utils/keywords.js | 67 + .../lib/rules/utils/lazy-loading-rule-map.js | 115 + .../lib/rules/utils/patterns/letters.js | 36 + .../eslint/lib/rules/utils/unicode/index.js | 11 + .../utils/unicode/is-combining-character.js | 13 + .../rules/utils/unicode/is-emoji-modifier.js | 13 + .../unicode/is-regional-indicator-symbol.js | 13 + .../rules/utils/unicode/is-surrogate-pair.js | 14 + node_modules/eslint/lib/rules/valid-jsdoc.js | 516 + node_modules/eslint/lib/rules/valid-typeof.js | 121 + node_modules/eslint/lib/rules/vars-on-top.js | 157 + node_modules/eslint/lib/rules/wrap-iife.js | 204 + node_modules/eslint/lib/rules/wrap-regex.js | 59 + .../eslint/lib/rules/yield-star-spacing.js | 127 + node_modules/eslint/lib/rules/yoda.js | 362 + node_modules/eslint/lib/shared/ajv.js | 34 + node_modules/eslint/lib/shared/ast-utils.js | 29 + .../eslint/lib/shared/config-validator.js | 347 + .../eslint/lib/shared/deprecation-warnings.js | 58 + node_modules/eslint/lib/shared/logging.js | 30 + .../lib/shared/relative-module-resolver.js | 50 + .../eslint/lib/shared/runtime-info.js | 167 + .../eslint/lib/shared/string-utils.js | 22 + node_modules/eslint/lib/shared/traverser.js | 195 + node_modules/eslint/lib/shared/types.js | 199 + node_modules/eslint/lib/source-code/index.js | 5 + .../eslint/lib/source-code/source-code.js | 593 + .../backward-token-comment-cursor.js | 57 + .../token-store/backward-token-cursor.js | 58 + .../lib/source-code/token-store/cursor.js | 76 + .../lib/source-code/token-store/cursors.js | 90 + .../token-store/decorative-cursor.js | 39 + .../source-code/token-store/filter-cursor.js | 43 + .../forward-token-comment-cursor.js | 57 + .../token-store/forward-token-cursor.js | 63 + .../lib/source-code/token-store/index.js | 627 + .../source-code/token-store/limit-cursor.js | 40 + .../token-store/padded-token-cursor.js | 38 + .../source-code/token-store/skip-cursor.js | 42 + .../lib/source-code/token-store/utils.js | 92 + node_modules/eslint/lib/unsupported-api.js | 27 + .../eslint/messages/all-files-ignored.js | 16 + .../eslint/messages/extend-config-missing.js | 13 + .../eslint/messages/failed-to-read-json.js | 11 + .../eslint/messages/file-not-found.js | 10 + .../eslint/messages/no-config-found.js | 15 + .../eslint/messages/plugin-conflict.js | 22 + .../eslint/messages/plugin-invalid.js | 16 + .../eslint/messages/plugin-missing.js | 19 + .../print-config-with-directory-path.js | 8 + .../eslint/messages/whitespace-found.js | 11 + node_modules/eslint/package.json | 171 + node_modules/espree/LICENSE | 25 + node_modules/espree/README.md | 244 + node_modules/espree/dist/espree.cjs | 938 + node_modules/espree/espree.js | 173 + node_modules/espree/lib/espree.js | 348 + node_modules/espree/lib/features.js | 27 + node_modules/espree/lib/options.js | 122 + node_modules/espree/lib/token-translator.js | 265 + node_modules/espree/lib/version.js | 3 + node_modules/espree/package.json | 82 + node_modules/esquery/README.md | 27 + node_modules/esquery/dist/esquery.esm.js | 4793 ++ node_modules/esquery/dist/esquery.esm.min.js | 2 + .../esquery/dist/esquery.esm.min.js.map | 1 + node_modules/esquery/dist/esquery.js | 4801 ++ node_modules/esquery/dist/esquery.lite.js | 3995 ++ node_modules/esquery/dist/esquery.lite.min.js | 2 + .../esquery/dist/esquery.lite.min.js.map | 1 + node_modules/esquery/dist/esquery.min.js | 2 + node_modules/esquery/dist/esquery.min.js.map | 1 + node_modules/esquery/license.txt | 24 + node_modules/esquery/package.json | 78 + node_modules/esquery/parser.js | 2602 + node_modules/esrecurse/.babelrc | 3 + node_modules/esrecurse/README.md | 171 + node_modules/esrecurse/esrecurse.js | 117 + node_modules/esrecurse/gulpfile.babel.js | 92 + node_modules/esrecurse/package.json | 52 + node_modules/estraverse/.jshintrc | 16 + node_modules/estraverse/LICENSE.BSD | 19 + node_modules/estraverse/README.md | 153 + node_modules/estraverse/estraverse.js | 805 + node_modules/estraverse/gulpfile.js | 70 + node_modules/estraverse/package.json | 40 + node_modules/esutils/LICENSE.BSD | 19 + node_modules/esutils/README.md | 174 + node_modules/esutils/lib/ast.js | 144 + node_modules/esutils/lib/code.js | 135 + node_modules/esutils/lib/keyword.js | 165 + node_modules/esutils/lib/utils.js | 33 + node_modules/esutils/package.json | 44 + node_modules/fast-deep-equal/LICENSE | 21 + node_modules/fast-deep-equal/README.md | 96 + node_modules/fast-deep-equal/es6/index.d.ts | 2 + node_modules/fast-deep-equal/es6/index.js | 72 + node_modules/fast-deep-equal/es6/react.d.ts | 2 + node_modules/fast-deep-equal/es6/react.js | 79 + node_modules/fast-deep-equal/index.d.ts | 4 + node_modules/fast-deep-equal/index.js | 46 + node_modules/fast-deep-equal/package.json | 61 + node_modules/fast-deep-equal/react.d.ts | 2 + node_modules/fast-deep-equal/react.js | 53 + node_modules/fast-diff/.travis.yml | 2 + node_modules/fast-diff/README.md | 24 + node_modules/fast-diff/diff.d.ts | 20 + node_modules/fast-diff/diff.js | 774 + node_modules/fast-diff/package.json | 26 + node_modules/fast-diff/test.js | 334 + node_modules/fast-glob/LICENSE | 21 + node_modules/fast-glob/README.md | 795 + .../node_modules/glob-parent/CHANGELOG.md | 110 + .../node_modules/glob-parent/LICENSE | 15 + .../node_modules/glob-parent/README.md | 137 + .../node_modules/glob-parent/index.js | 42 + .../node_modules/glob-parent/package.json | 48 + node_modules/fast-glob/out/index.d.ts | 27 + node_modules/fast-glob/out/index.js | 68 + .../fast-glob/out/managers/patterns.d.ts | 6 + .../fast-glob/out/managers/patterns.js | 21 + .../fast-glob/out/managers/tasks.d.ts | 22 + node_modules/fast-glob/out/managers/tasks.js | 80 + .../fast-glob/out/providers/async.d.ts | 9 + node_modules/fast-glob/out/providers/async.js | 23 + .../fast-glob/out/providers/filters/deep.d.ts | 16 + .../fast-glob/out/providers/filters/deep.js | 62 + .../out/providers/filters/entry.d.ts | 16 + .../fast-glob/out/providers/filters/entry.js | 64 + .../out/providers/filters/error.d.ts | 8 + .../fast-glob/out/providers/filters/error.js | 15 + .../out/providers/matchers/matcher.d.ts | 33 + .../out/providers/matchers/matcher.js | 50 + .../out/providers/matchers/partial.d.ts | 4 + .../out/providers/matchers/partial.js | 38 + .../fast-glob/out/providers/provider.d.ts | 19 + .../fast-glob/out/providers/provider.js | 48 + .../fast-glob/out/providers/stream.d.ts | 11 + .../fast-glob/out/providers/stream.js | 31 + .../fast-glob/out/providers/sync.d.ts | 9 + node_modules/fast-glob/out/providers/sync.js | 23 + .../out/providers/transformers/entry.d.ts | 8 + .../out/providers/transformers/entry.js | 26 + node_modules/fast-glob/out/readers/async.d.ts | 10 + node_modules/fast-glob/out/readers/async.js | 35 + .../fast-glob/out/readers/reader.d.ts | 15 + node_modules/fast-glob/out/readers/reader.js | 33 + .../fast-glob/out/readers/stream.d.ts | 14 + node_modules/fast-glob/out/readers/stream.js | 55 + node_modules/fast-glob/out/readers/sync.d.ts | 12 + node_modules/fast-glob/out/readers/sync.js | 43 + node_modules/fast-glob/out/settings.d.ts | 164 + node_modules/fast-glob/out/settings.js | 57 + node_modules/fast-glob/out/types/index.d.ts | 31 + node_modules/fast-glob/out/types/index.js | 2 + node_modules/fast-glob/out/utils/array.d.ts | 2 + node_modules/fast-glob/out/utils/array.js | 22 + node_modules/fast-glob/out/utils/errno.d.ts | 2 + node_modules/fast-glob/out/utils/errno.js | 7 + node_modules/fast-glob/out/utils/fs.d.ts | 4 + node_modules/fast-glob/out/utils/fs.js | 19 + node_modules/fast-glob/out/utils/index.d.ts | 8 + node_modules/fast-glob/out/utils/index.js | 17 + node_modules/fast-glob/out/utils/path.d.ts | 8 + node_modules/fast-glob/out/utils/path.js | 33 + node_modules/fast-glob/out/utils/pattern.d.ts | 42 + node_modules/fast-glob/out/utils/pattern.js | 169 + node_modules/fast-glob/out/utils/stream.d.ts | 3 + node_modules/fast-glob/out/utils/stream.js | 17 + node_modules/fast-glob/out/utils/string.d.ts | 2 + node_modules/fast-glob/out/utils/string.js | 11 + node_modules/fast-glob/package.json | 94 + .../fast-json-stable-stringify/.eslintrc.yml | 26 + .../.github/FUNDING.yml | 1 + .../fast-json-stable-stringify/.travis.yml | 8 + .../fast-json-stable-stringify/LICENSE | 21 + .../fast-json-stable-stringify/README.md | 131 + .../benchmark/index.js | 31 + .../benchmark/test.json | 137 + .../example/key_cmp.js | 7 + .../example/nested.js | 3 + .../fast-json-stable-stringify/example/str.js | 3 + .../example/value_cmp.js | 7 + .../fast-json-stable-stringify/index.d.ts | 4 + .../fast-json-stable-stringify/index.js | 59 + .../fast-json-stable-stringify/package.json | 52 + .../fast-json-stable-stringify/test/cmp.js | 13 + .../fast-json-stable-stringify/test/nested.js | 44 + .../fast-json-stable-stringify/test/str.js | 46 + .../test/to-json.js | 22 + node_modules/fast-levenshtein/LICENSE.md | 25 + node_modules/fast-levenshtein/README.md | 104 + node_modules/fast-levenshtein/levenshtein.js | 136 + node_modules/fast-levenshtein/package.json | 39 + node_modules/fastq/.github/dependabot.yml | 11 + node_modules/fastq/.github/workflows/ci.yml | 50 + node_modules/fastq/LICENSE | 13 + node_modules/fastq/README.md | 309 + node_modules/fastq/bench.js | 66 + node_modules/fastq/example.js | 14 + node_modules/fastq/example.mjs | 11 + node_modules/fastq/index.d.ts | 37 + node_modules/fastq/package.json | 52 + node_modules/fastq/queue.js | 283 + node_modules/fastq/test/example.ts | 81 + node_modules/fastq/test/promise.js | 221 + node_modules/fastq/test/test.js | 566 + node_modules/fastq/test/tsconfig.json | 11 + node_modules/file-entry-cache/LICENSE | 22 + node_modules/file-entry-cache/README.md | 112 + node_modules/file-entry-cache/cache.js | 291 + node_modules/file-entry-cache/changelog.md | 163 + node_modules/file-entry-cache/package.json | 80 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 249 + node_modules/fill-range/package.json | 69 + node_modules/find-up/index.d.ts | 138 + node_modules/find-up/index.js | 89 + node_modules/find-up/license | 9 + node_modules/find-up/package.json | 54 + node_modules/find-up/readme.md | 151 + node_modules/flat-cache/LICENSE | 22 + node_modules/flat-cache/README.md | 73 + node_modules/flat-cache/changelog.md | 328 + node_modules/flat-cache/package.json | 84 + node_modules/flat-cache/src/cache.js | 197 + node_modules/flat-cache/src/del.js | 13 + node_modules/flat-cache/src/utils.js | 44 + node_modules/flatted/LICENSE | 15 + node_modules/flatted/README.md | 111 + node_modules/flatted/cjs/index.js | 99 + node_modules/flatted/cjs/package.json | 1 + node_modules/flatted/es.js | 2 + node_modules/flatted/esm.js | 2 + node_modules/flatted/esm/index.js | 94 + node_modules/flatted/index.js | 135 + node_modules/flatted/min.js | 2 + node_modules/flatted/package.json | 63 + node_modules/flatted/php/flatted.php | 156 + node_modules/flatted/types.d.ts | 62 + node_modules/fs.realpath/LICENSE | 43 + node_modules/fs.realpath/README.md | 33 + node_modules/fs.realpath/index.js | 66 + node_modules/fs.realpath/old.js | 303 + node_modules/fs.realpath/package.json | 26 + node_modules/glob-parent/LICENSE | 15 + node_modules/glob-parent/README.md | 134 + node_modules/glob-parent/index.js | 75 + node_modules/glob-parent/package.json | 54 + node_modules/glob/LICENSE | 21 + node_modules/glob/README.md | 378 + node_modules/glob/common.js | 238 + node_modules/glob/glob.js | 790 + node_modules/glob/package.json | 55 + node_modules/glob/sync.js | 486 + node_modules/globals/globals.json | 1800 + node_modules/globals/index.d.ts | 6 + node_modules/globals/index.js | 2 + node_modules/globals/license | 9 + node_modules/globals/package.json | 55 + node_modules/globals/readme.md | 56 + node_modules/globby/gitignore.js | 120 + node_modules/globby/index.d.ts | 186 + node_modules/globby/index.js | 181 + node_modules/globby/license | 9 + node_modules/globby/package.json | 82 + node_modules/globby/readme.md | 170 + node_modules/globby/stream-utils.js | 46 + node_modules/grapheme-splitter/LICENSE | 22 + node_modules/grapheme-splitter/README.md | 111 + node_modules/grapheme-splitter/index.d.ts | 24 + node_modules/grapheme-splitter/index.js | 1743 + node_modules/grapheme-splitter/package.json | 34 + .../tests/GraphemeBreakTest.txt | 850 + .../tests/grapheme_splitter_tests.js | 83 + node_modules/has-flag/index.d.ts | 39 + node_modules/has-flag/index.js | 8 + node_modules/has-flag/license | 9 + node_modules/has-flag/package.json | 46 + node_modules/has-flag/readme.md | 89 + node_modules/ignore/LICENSE-MIT | 21 + node_modules/ignore/README.md | 412 + node_modules/ignore/index.d.ts | 61 + node_modules/ignore/index.js | 603 + node_modules/ignore/legacy.js | 498 + node_modules/ignore/package.json | 71 + node_modules/import-fresh/index.d.ts | 30 + node_modules/import-fresh/index.js | 33 + node_modules/import-fresh/license | 9 + node_modules/import-fresh/package.json | 43 + node_modules/import-fresh/readme.md | 48 + node_modules/imurmurhash/README.md | 122 + node_modules/imurmurhash/imurmurhash.js | 138 + node_modules/imurmurhash/imurmurhash.min.js | 12 + node_modules/imurmurhash/package.json | 40 + node_modules/inflight/LICENSE | 15 + node_modules/inflight/README.md | 37 + node_modules/inflight/inflight.js | 54 + node_modules/inflight/package.json | 29 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 69 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 + node_modules/is-glob/index.js | 150 + node_modules/is-glob/package.json | 81 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + node_modules/is-plain-object/LICENSE | 21 + node_modules/is-plain-object/README.md | 125 + .../is-plain-object/dist/is-plain-object.js | 38 + .../is-plain-object/dist/is-plain-object.mjs | 34 + .../is-plain-object/is-plain-object.d.ts | 1 + node_modules/is-plain-object/package.json | 85 + node_modules/isexe/.npmignore | 2 + node_modules/isexe/LICENSE | 15 + node_modules/isexe/README.md | 51 + node_modules/isexe/index.js | 57 + node_modules/isexe/mode.js | 41 + node_modules/isexe/package.json | 31 + node_modules/isexe/test/basic.js | 221 + node_modules/isexe/windows.js | 42 + node_modules/js-sdsl/CHANGELOG.md | 160 + node_modules/js-sdsl/LICENSE | 21 + node_modules/js-sdsl/README.md | 149 + node_modules/js-sdsl/README.zh-CN.md | 151 + .../cjs/container/ContainerBase/index.d.ts | 120 + .../dist/cjs/container/ContainerBase/index.js | 33 + .../container/HashContainer/Base/index.d.ts | 25 + .../cjs/container/HashContainer/Base/index.js | 42 + .../cjs/container/HashContainer/HashMap.d.ts | 22 + .../cjs/container/HashContainer/HashMap.js | 178 + .../cjs/container/HashContainer/HashSet.d.ts | 15 + .../cjs/container/HashContainer/HashSet.js | 149 + .../OtherContainer/PriorityQueue.d.ts | 48 + .../container/OtherContainer/PriorityQueue.js | 112 + .../cjs/container/OtherContainer/Queue.d.ts | 18 + .../cjs/container/OtherContainer/Queue.js | 44 + .../cjs/container/OtherContainer/Stack.d.ts | 18 + .../cjs/container/OtherContainer/Stack.js | 36 + .../Base/RandomIterator.d.ts | 8 + .../Base/RandomIterator.js | 67 + .../SequentialContainer/Base/index.d.ts | 44 + .../SequentialContainer/Base/index.js | 15 + .../container/SequentialContainer/Deque.d.ts | 50 + .../container/SequentialContainer/Deque.js | 324 + .../SequentialContainer/LinkList.d.ts | 49 + .../container/SequentialContainer/LinkList.js | 366 + .../container/SequentialContainer/Vector.d.ts | 37 + .../container/SequentialContainer/Vector.js | 150 + .../TreeContainer/Base/TreeIterator.d.ts | 15 + .../TreeContainer/Base/TreeIterator.js | 80 + .../TreeContainer/Base/TreeNode.d.ts | 36 + .../container/TreeContainer/Base/TreeNode.js | 113 + .../container/TreeContainer/Base/index.d.ts | 55 + .../cjs/container/TreeContainer/Base/index.js | 483 + .../container/TreeContainer/OrderedMap.d.ts | 42 + .../cjs/container/TreeContainer/OrderedMap.js | 136 + .../container/TreeContainer/OrderedSet.d.ts | 37 + .../cjs/container/TreeContainer/OrderedSet.js | 117 + node_modules/js-sdsl/dist/cjs/index.d.ts | 19 + node_modules/js-sdsl/dist/cjs/index.js | 101 + .../esm/container/ContainerBase/index.d.ts | 120 + .../dist/esm/container/ContainerBase/index.js | 57 + .../container/HashContainer/Base/index.d.ts | 25 + .../esm/container/HashContainer/Base/index.js | 62 + .../esm/container/HashContainer/HashMap.d.ts | 22 + .../esm/container/HashContainer/HashMap.js | 410 + .../esm/container/HashContainer/HashSet.d.ts | 15 + .../esm/container/HashContainer/HashSet.js | 325 + .../OtherContainer/PriorityQueue.d.ts | 48 + .../container/OtherContainer/PriorityQueue.js | 167 + .../esm/container/OtherContainer/Queue.d.ts | 18 + .../esm/container/OtherContainer/Queue.js | 55 + .../esm/container/OtherContainer/Stack.d.ts | 18 + .../esm/container/OtherContainer/Stack.js | 55 + .../Base/RandomIterator.d.ts | 8 + .../Base/RandomIterator.js | 87 + .../SequentialContainer/Base/index.d.ts | 44 + .../SequentialContainer/Base/index.js | 32 + .../container/SequentialContainer/Deque.d.ts | 50 + .../container/SequentialContainer/Deque.js | 493 + .../SequentialContainer/LinkList.d.ts | 49 + .../container/SequentialContainer/LinkList.js | 500 + .../container/SequentialContainer/Vector.d.ts | 37 + .../container/SequentialContainer/Vector.js | 318 + .../TreeContainer/Base/TreeIterator.d.ts | 15 + .../TreeContainer/Base/TreeIterator.js | 98 + .../TreeContainer/Base/TreeNode.d.ts | 36 + .../container/TreeContainer/Base/TreeNode.js | 130 + .../container/TreeContainer/Base/index.d.ts | 55 + .../esm/container/TreeContainer/Base/index.js | 525 + .../container/TreeContainer/OrderedMap.d.ts | 42 + .../esm/container/TreeContainer/OrderedMap.js | 334 + .../container/TreeContainer/OrderedSet.d.ts | 37 + .../esm/container/TreeContainer/OrderedSet.js | 292 + node_modules/js-sdsl/dist/esm/index.d.ts | 19 + node_modules/js-sdsl/dist/esm/index.js | 19 + node_modules/js-sdsl/dist/umd/js-sdsl.js | 2752 + node_modules/js-sdsl/dist/umd/js-sdsl.min.js | 2 + .../js-sdsl/dist/umd/js-sdsl.min.js.map | 1 + node_modules/js-sdsl/package.json | 157 + node_modules/js-yaml/CHANGELOG.md | 616 + node_modules/js-yaml/LICENSE | 21 + node_modules/js-yaml/README.md | 246 + node_modules/js-yaml/bin/js-yaml.js | 126 + node_modules/js-yaml/dist/js-yaml.js | 3874 ++ node_modules/js-yaml/dist/js-yaml.min.js | 2 + node_modules/js-yaml/dist/js-yaml.mjs | 3851 ++ node_modules/js-yaml/index.js | 47 + node_modules/js-yaml/lib/common.js | 59 + node_modules/js-yaml/lib/dumper.js | 965 + node_modules/js-yaml/lib/exception.js | 55 + node_modules/js-yaml/lib/loader.js | 1727 + node_modules/js-yaml/lib/schema.js | 121 + node_modules/js-yaml/lib/schema/core.js | 11 + node_modules/js-yaml/lib/schema/default.js | 22 + node_modules/js-yaml/lib/schema/failsafe.js | 17 + node_modules/js-yaml/lib/schema/json.js | 19 + node_modules/js-yaml/lib/snippet.js | 101 + node_modules/js-yaml/lib/type.js | 66 + node_modules/js-yaml/lib/type/binary.js | 125 + node_modules/js-yaml/lib/type/bool.js | 35 + node_modules/js-yaml/lib/type/float.js | 97 + node_modules/js-yaml/lib/type/int.js | 156 + node_modules/js-yaml/lib/type/map.js | 8 + node_modules/js-yaml/lib/type/merge.js | 12 + node_modules/js-yaml/lib/type/null.js | 35 + node_modules/js-yaml/lib/type/omap.js | 44 + node_modules/js-yaml/lib/type/pairs.js | 53 + node_modules/js-yaml/lib/type/seq.js | 8 + node_modules/js-yaml/lib/type/set.js | 29 + node_modules/js-yaml/lib/type/str.js | 8 + node_modules/js-yaml/lib/type/timestamp.js | 88 + node_modules/js-yaml/package.json | 66 + .../json-schema-traverse/.eslintrc.yml | 27 + node_modules/json-schema-traverse/.travis.yml | 8 + node_modules/json-schema-traverse/LICENSE | 21 + node_modules/json-schema-traverse/README.md | 83 + node_modules/json-schema-traverse/index.js | 89 + .../json-schema-traverse/package.json | 43 + .../json-schema-traverse/spec/.eslintrc.yml | 6 + .../spec/fixtures/schema.js | 125 + .../json-schema-traverse/spec/index.spec.js | 171 + .../.npmignore | 1 + .../.travis.yml | 4 + .../LICENSE | 18 + .../example/key_cmp.js | 7 + .../example/nested.js | 3 + .../example/str.js | 3 + .../example/value_cmp.js | 7 + .../index.js | 82 + .../package.json | 43 + .../readme.markdown | 132 + .../test/cmp.js | 11 + .../test/nested.js | 42 + .../test/replacer.js | 74 + .../test/space.js | 59 + .../test/str.js | 32 + .../test/to-json.js | 20 + node_modules/levn/LICENSE | 22 + node_modules/levn/README.md | 196 + node_modules/levn/lib/cast.js | 327 + node_modules/levn/lib/index.js | 22 + node_modules/levn/lib/parse-string.js | 113 + node_modules/levn/package.json | 46 + node_modules/locate-path/index.d.ts | 83 + node_modules/locate-path/index.js | 68 + node_modules/locate-path/license | 9 + node_modules/locate-path/package.json | 46 + node_modules/locate-path/readme.md | 125 + node_modules/lodash.merge/LICENSE | 47 + node_modules/lodash.merge/README.md | 18 + node_modules/lodash.merge/index.js | 1977 + node_modules/lodash.merge/package.json | 16 + node_modules/merge2/LICENSE | 21 + node_modules/merge2/README.md | 144 + node_modules/merge2/index.js | 144 + node_modules/merge2/package.json | 43 + node_modules/micromatch/LICENSE | 21 + node_modules/micromatch/README.md | 1011 + node_modules/micromatch/index.js | 467 + node_modules/micromatch/package.json | 119 + node_modules/minimatch/LICENSE | 15 + node_modules/minimatch/README.md | 230 + node_modules/minimatch/minimatch.js | 947 + node_modules/minimatch/package.json | 33 + node_modules/ms/index.js | 162 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 37 + node_modules/ms/readme.md | 60 + node_modules/natural-compare/README.md | 125 + node_modules/natural-compare/index.js | 57 + node_modules/natural-compare/package.json | 42 + node_modules/node-fetch/LICENSE.md | 22 + node_modules/node-fetch/README.md | 590 + node_modules/node-fetch/browser.js | 25 + node_modules/node-fetch/lib/index.es.js | 1688 + node_modules/node-fetch/lib/index.js | 1697 + node_modules/node-fetch/lib/index.mjs | 1686 + node_modules/node-fetch/package.json | 76 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/optionator/CHANGELOG.md | 59 + node_modules/optionator/LICENSE | 22 + node_modules/optionator/README.md | 238 + node_modules/optionator/lib/help.js | 260 + node_modules/optionator/lib/index.js | 465 + node_modules/optionator/lib/util.js | 54 + node_modules/optionator/package.json | 43 + node_modules/p-limit/index.d.ts | 42 + node_modules/p-limit/index.js | 71 + node_modules/p-limit/license | 9 + node_modules/p-limit/package.json | 52 + node_modules/p-limit/readme.md | 101 + node_modules/p-locate/index.d.ts | 53 + node_modules/p-locate/index.js | 50 + node_modules/p-locate/license | 9 + node_modules/p-locate/package.json | 54 + node_modules/p-locate/readme.md | 93 + node_modules/parent-module/index.js | 37 + node_modules/parent-module/license | 9 + node_modules/parent-module/package.json | 46 + node_modules/parent-module/readme.md | 67 + node_modules/path-exists/index.d.ts | 28 + node_modules/path-exists/index.js | 23 + node_modules/path-exists/license | 9 + node_modules/path-exists/package.json | 39 + node_modules/path-exists/readme.md | 52 + node_modules/path-is-absolute/index.js | 20 + node_modules/path-is-absolute/license | 21 + node_modules/path-is-absolute/package.json | 43 + node_modules/path-is-absolute/readme.md | 59 + node_modules/path-key/index.d.ts | 40 + node_modules/path-key/index.js | 16 + node_modules/path-key/license | 9 + node_modules/path-key/package.json | 39 + node_modules/path-key/readme.md | 61 + node_modules/path-type/index.d.ts | 51 + node_modules/path-type/index.js | 43 + node_modules/path-type/license | 9 + node_modules/path-type/package.json | 45 + node_modules/path-type/readme.md | 72 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 + node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1091 + node_modules/picomatch/lib/picomatch.js | 342 + node_modules/picomatch/lib/scan.js | 391 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/prelude-ls/CHANGELOG.md | 108 + node_modules/prelude-ls/LICENSE | 22 + node_modules/prelude-ls/README.md | 15 + node_modules/prelude-ls/lib/Func.js | 69 + node_modules/prelude-ls/lib/List.js | 716 + node_modules/prelude-ls/lib/Num.js | 130 + node_modules/prelude-ls/lib/Obj.js | 154 + node_modules/prelude-ls/lib/Str.js | 92 + node_modules/prelude-ls/lib/index.js | 178 + node_modules/prelude-ls/package.json | 46 + .../prettier-linter-helpers/.editorconfig | 15 + .../prettier-linter-helpers/.eslintignore | 2 + .../prettier-linter-helpers/.eslintrc.js | 6 + .../.github/CONTRIBUTING.md | 41 + .../prettier-linter-helpers/.prettierignore | 1 + .../prettier-linter-helpers/.prettierrc | 6 + .../.vscode/settings.json | 12 + .../prettier-linter-helpers/LICENSE.md | 24 + .../prettier-linter-helpers/README.md | 14 + node_modules/prettier-linter-helpers/index.js | 145 + .../prettier-linter-helpers/package.json | 38 + .../test/index.test.js | 29 + node_modules/prettier/LICENSE | 6001 ++ node_modules/prettier/README.md | 109 + node_modules/prettier/bin-prettier.js | 62 + node_modules/prettier/cli.js | 15085 +++++ node_modules/prettier/doc.js | 1392 + node_modules/prettier/esm/parser-angular.mjs | 2 + node_modules/prettier/esm/parser-babel.mjs | 27 + node_modules/prettier/esm/parser-espree.mjs | 26 + node_modules/prettier/esm/parser-flow.mjs | 35 + node_modules/prettier/esm/parser-glimmer.mjs | 27 + node_modules/prettier/esm/parser-graphql.mjs | 15 + node_modules/prettier/esm/parser-html.mjs | 36 + node_modules/prettier/esm/parser-markdown.mjs | 76 + node_modules/prettier/esm/parser-meriyah.mjs | 19 + node_modules/prettier/esm/parser-postcss.mjs | 76 + .../prettier/esm/parser-typescript.mjs | 280 + node_modules/prettier/esm/parser-yaml.mjs | 150 + node_modules/prettier/esm/standalone.mjs | 116 + node_modules/prettier/index.js | 37282 ++++++++++++ node_modules/prettier/package.json | 21 + node_modules/prettier/parser-angular.js | 2 + node_modules/prettier/parser-babel.js | 27 + node_modules/prettier/parser-espree.js | 26 + node_modules/prettier/parser-flow.js | 35 + node_modules/prettier/parser-glimmer.js | 27 + node_modules/prettier/parser-graphql.js | 15 + node_modules/prettier/parser-html.js | 36 + node_modules/prettier/parser-markdown.js | 76 + node_modules/prettier/parser-meriyah.js | 19 + node_modules/prettier/parser-postcss.js | 76 + node_modules/prettier/parser-typescript.js | 280 + node_modules/prettier/parser-yaml.js | 150 + node_modules/prettier/standalone.js | 116 + node_modules/prettier/third-party.js | 8978 +++ node_modules/punycode/LICENSE-MIT.txt | 20 + node_modules/punycode/README.md | 122 + node_modules/punycode/package.json | 58 + node_modules/punycode/punycode.es6.js | 441 + node_modules/punycode/punycode.js | 440 + node_modules/queue-microtask/LICENSE | 20 + node_modules/queue-microtask/README.md | 90 + node_modules/queue-microtask/index.d.ts | 2 + node_modules/queue-microtask/index.js | 9 + node_modules/queue-microtask/package.json | 55 + node_modules/regexpp/LICENSE | 21 + node_modules/regexpp/README.md | 178 + node_modules/regexpp/index.d.ts | 248 + node_modules/regexpp/index.js | 2096 + node_modules/regexpp/index.js.map | 1 + node_modules/regexpp/index.mjs | 2087 + node_modules/regexpp/index.mjs.map | 1 + node_modules/regexpp/package.json | 91 + node_modules/resolve-from/index.js | 47 + node_modules/resolve-from/license | 9 + node_modules/resolve-from/package.json | 34 + node_modules/resolve-from/readme.md | 72 + node_modules/reusify/.coveralls.yml | 1 + node_modules/reusify/.travis.yml | 28 + node_modules/reusify/LICENSE | 22 + node_modules/reusify/README.md | 145 + .../benchmarks/createNoCodeFunction.js | 30 + node_modules/reusify/benchmarks/fib.js | 13 + .../reusify/benchmarks/reuseNoCodeFunction.js | 38 + node_modules/reusify/package.json | 45 + node_modules/reusify/reusify.js | 33 + node_modules/reusify/test.js | 66 + node_modules/rimraf/CHANGELOG.md | 65 + node_modules/rimraf/LICENSE | 15 + node_modules/rimraf/README.md | 101 + node_modules/rimraf/bin.js | 68 + node_modules/rimraf/package.json | 32 + node_modules/rimraf/rimraf.js | 360 + node_modules/run-parallel/LICENSE | 20 + node_modules/run-parallel/README.md | 85 + node_modules/run-parallel/index.js | 51 + node_modules/run-parallel/package.json | 58 + node_modules/shebang-command/index.js | 19 + node_modules/shebang-command/license | 9 + node_modules/shebang-command/package.json | 34 + node_modules/shebang-command/readme.md | 34 + node_modules/shebang-regex/index.d.ts | 22 + node_modules/shebang-regex/index.js | 2 + node_modules/shebang-regex/license | 9 + node_modules/shebang-regex/package.json | 35 + node_modules/shebang-regex/readme.md | 33 + node_modules/slash/index.d.ts | 25 + node_modules/slash/index.js | 11 + node_modules/slash/license | 9 + node_modules/slash/package.json | 35 + node_modules/slash/readme.md | 44 + node_modules/strip-ansi/index.d.ts | 17 + node_modules/strip-ansi/index.js | 4 + node_modules/strip-ansi/license | 9 + node_modules/strip-ansi/package.json | 54 + node_modules/strip-ansi/readme.md | 46 + node_modules/strip-json-comments/index.d.ts | 36 + node_modules/strip-json-comments/index.js | 77 + node_modules/strip-json-comments/license | 9 + node_modules/strip-json-comments/package.json | 47 + node_modules/strip-json-comments/readme.md | 78 + node_modules/supports-color/browser.js | 5 + node_modules/supports-color/index.js | 135 + node_modules/supports-color/license | 9 + node_modules/supports-color/package.json | 53 + node_modules/supports-color/readme.md | 76 + node_modules/text-table/.travis.yml | 4 + node_modules/text-table/LICENSE | 18 + node_modules/text-table/example/align.js | 8 + node_modules/text-table/example/center.js | 8 + node_modules/text-table/example/dotalign.js | 9 + node_modules/text-table/example/doubledot.js | 11 + node_modules/text-table/example/table.js | 6 + node_modules/text-table/index.js | 86 + node_modules/text-table/package.json | 44 + node_modules/text-table/readme.markdown | 134 + node_modules/text-table/test/align.js | 18 + node_modules/text-table/test/ansi-colors.js | 32 + node_modules/text-table/test/center.js | 18 + node_modules/text-table/test/dotalign.js | 20 + node_modules/text-table/test/doubledot.js | 24 + node_modules/text-table/test/table.js | 14 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 88 + node_modules/tr46/.npmignore | 4 + node_modules/tr46/index.js | 193 + node_modules/tr46/lib/.gitkeep | 0 node_modules/tr46/lib/mappingTable.json | 1 + node_modules/tr46/package.json | 31 + node_modules/tunnel/.idea/encodings.xml | 6 + node_modules/tunnel/.idea/modules.xml | 8 + node_modules/tunnel/.idea/node-tunnel.iml | 12 + node_modules/tunnel/.idea/vcs.xml | 6 + node_modules/tunnel/.idea/workspace.xml | 797 + node_modules/tunnel/.travis.yml | 6 + node_modules/tunnel/CHANGELOG.md | 22 + node_modules/tunnel/LICENSE | 21 + node_modules/tunnel/README.md | 185 + node_modules/tunnel/index.js | 1 + node_modules/tunnel/lib/tunnel.js | 264 + node_modules/tunnel/package.json | 34 + node_modules/type-check/LICENSE | 22 + node_modules/type-check/README.md | 210 + node_modules/type-check/lib/check.js | 128 + node_modules/type-check/lib/index.js | 16 + node_modules/type-check/lib/parse-type.js | 198 + node_modules/type-check/package.json | 39 + node_modules/type-fest/base.d.ts | 38 + node_modules/type-fest/index.d.ts | 2 + node_modules/type-fest/license | 9 + node_modules/type-fest/package.json | 58 + node_modules/type-fest/readme.md | 658 + .../type-fest/source/async-return-type.d.ts | 23 + node_modules/type-fest/source/asyncify.d.ts | 31 + node_modules/type-fest/source/basic.d.ts | 67 + .../type-fest/source/conditional-except.d.ts | 43 + .../type-fest/source/conditional-keys.d.ts | 43 + .../type-fest/source/conditional-pick.d.ts | 42 + node_modules/type-fest/source/entries.d.ts | 57 + node_modules/type-fest/source/entry.d.ts | 60 + node_modules/type-fest/source/except.d.ts | 22 + .../type-fest/source/fixed-length-array.d.ts | 38 + .../type-fest/source/iterable-element.d.ts | 46 + .../type-fest/source/literal-union.d.ts | 33 + .../type-fest/source/merge-exclusive.d.ts | 39 + node_modules/type-fest/source/merge.d.ts | 22 + node_modules/type-fest/source/mutable.d.ts | 22 + node_modules/type-fest/source/opaque.d.ts | 65 + .../type-fest/source/package-json.d.ts | 611 + .../type-fest/source/partial-deep.d.ts | 72 + node_modules/type-fest/source/promisable.d.ts | 23 + .../type-fest/source/promise-value.d.ts | 27 + .../type-fest/source/readonly-deep.d.ts | 59 + .../source/require-at-least-one.d.ts | 33 + .../type-fest/source/require-exactly-one.d.ts | 35 + .../type-fest/source/set-optional.d.ts | 34 + .../type-fest/source/set-required.d.ts | 34 + .../type-fest/source/set-return-type.d.ts | 29 + .../type-fest/source/stringified.d.ts | 21 + .../type-fest/source/tsconfig-json.d.ts | 870 + .../source/union-to-intersection.d.ts | 58 + node_modules/type-fest/source/utilities.d.ts | 3 + node_modules/type-fest/source/value-of.d.ts | 40 + node_modules/type-fest/ts41/camel-case.d.ts | 72 + .../type-fest/ts41/delimiter-case.d.ts | 85 + node_modules/type-fest/ts41/index.d.ts | 9 + node_modules/type-fest/ts41/kebab-case.d.ts | 36 + node_modules/type-fest/ts41/pascal-case.d.ts | 36 + node_modules/type-fest/ts41/snake-case.d.ts | 35 + node_modules/universal-user-agent/LICENSE.md | 7 + node_modules/universal-user-agent/README.md | 25 + .../universal-user-agent/dist-node/index.js | 18 + .../dist-node/index.js.map | 1 + .../universal-user-agent/dist-src/index.js | 9 + .../dist-types/index.d.ts | 1 + .../universal-user-agent/dist-web/index.js | 12 + .../dist-web/index.js.map | 1 + .../universal-user-agent/package.json | 31 + node_modules/uri-js/LICENSE | 11 + node_modules/uri-js/README.md | 203 + node_modules/uri-js/dist/es5/uri.all.d.ts | 59 + node_modules/uri-js/dist/es5/uri.all.js | 1443 + node_modules/uri-js/dist/es5/uri.all.js.map | 1 + node_modules/uri-js/dist/es5/uri.all.min.d.ts | 59 + node_modules/uri-js/dist/es5/uri.all.min.js | 3 + .../uri-js/dist/es5/uri.all.min.js.map | 1 + node_modules/uri-js/dist/esnext/index.d.ts | 1 + node_modules/uri-js/dist/esnext/index.js | 17 + node_modules/uri-js/dist/esnext/index.js.map | 1 + .../uri-js/dist/esnext/regexps-iri.d.ts | 3 + .../uri-js/dist/esnext/regexps-iri.js | 3 + .../uri-js/dist/esnext/regexps-iri.js.map | 1 + .../uri-js/dist/esnext/regexps-uri.d.ts | 4 + .../uri-js/dist/esnext/regexps-uri.js | 42 + .../uri-js/dist/esnext/regexps-uri.js.map | 1 + .../uri-js/dist/esnext/schemes/http.d.ts | 3 + .../uri-js/dist/esnext/schemes/http.js | 28 + .../uri-js/dist/esnext/schemes/http.js.map | 1 + .../uri-js/dist/esnext/schemes/https.d.ts | 3 + .../uri-js/dist/esnext/schemes/https.js | 9 + .../uri-js/dist/esnext/schemes/https.js.map | 1 + .../uri-js/dist/esnext/schemes/mailto.d.ts | 12 + .../uri-js/dist/esnext/schemes/mailto.js | 148 + .../uri-js/dist/esnext/schemes/mailto.js.map | 1 + .../uri-js/dist/esnext/schemes/urn-uuid.d.ts | 7 + .../uri-js/dist/esnext/schemes/urn-uuid.js | 23 + .../dist/esnext/schemes/urn-uuid.js.map | 1 + .../uri-js/dist/esnext/schemes/urn.d.ts | 10 + .../uri-js/dist/esnext/schemes/urn.js | 49 + .../uri-js/dist/esnext/schemes/urn.js.map | 1 + .../uri-js/dist/esnext/schemes/ws.d.ts | 7 + node_modules/uri-js/dist/esnext/schemes/ws.js | 41 + .../uri-js/dist/esnext/schemes/ws.js.map | 1 + .../uri-js/dist/esnext/schemes/wss.d.ts | 3 + .../uri-js/dist/esnext/schemes/wss.js | 9 + .../uri-js/dist/esnext/schemes/wss.js.map | 1 + node_modules/uri-js/dist/esnext/uri.d.ts | 59 + node_modules/uri-js/dist/esnext/uri.js | 480 + node_modules/uri-js/dist/esnext/uri.js.map | 1 + node_modules/uri-js/dist/esnext/util.d.ts | 6 + node_modules/uri-js/dist/esnext/util.js | 36 + node_modules/uri-js/dist/esnext/util.js.map | 1 + node_modules/uri-js/package.json | 77 + node_modules/uri-js/yarn.lock | 2558 + node_modules/uuid/CHANGELOG.md | 229 + node_modules/uuid/CONTRIBUTING.md | 18 + node_modules/uuid/LICENSE.md | 9 + node_modules/uuid/README.md | 505 + node_modules/uuid/dist/bin/uuid | 2 + node_modules/uuid/dist/esm-browser/index.js | 9 + node_modules/uuid/dist/esm-browser/md5.js | 215 + node_modules/uuid/dist/esm-browser/nil.js | 1 + node_modules/uuid/dist/esm-browser/parse.js | 35 + node_modules/uuid/dist/esm-browser/regex.js | 1 + node_modules/uuid/dist/esm-browser/rng.js | 19 + node_modules/uuid/dist/esm-browser/sha1.js | 96 + .../uuid/dist/esm-browser/stringify.js | 30 + node_modules/uuid/dist/esm-browser/v1.js | 95 + node_modules/uuid/dist/esm-browser/v3.js | 4 + node_modules/uuid/dist/esm-browser/v35.js | 64 + node_modules/uuid/dist/esm-browser/v4.js | 24 + node_modules/uuid/dist/esm-browser/v5.js | 4 + .../uuid/dist/esm-browser/validate.js | 7 + node_modules/uuid/dist/esm-browser/version.js | 11 + node_modules/uuid/dist/esm-node/index.js | 9 + node_modules/uuid/dist/esm-node/md5.js | 13 + node_modules/uuid/dist/esm-node/nil.js | 1 + node_modules/uuid/dist/esm-node/parse.js | 35 + node_modules/uuid/dist/esm-node/regex.js | 1 + node_modules/uuid/dist/esm-node/rng.js | 12 + node_modules/uuid/dist/esm-node/sha1.js | 13 + node_modules/uuid/dist/esm-node/stringify.js | 29 + node_modules/uuid/dist/esm-node/v1.js | 95 + node_modules/uuid/dist/esm-node/v3.js | 4 + node_modules/uuid/dist/esm-node/v35.js | 64 + node_modules/uuid/dist/esm-node/v4.js | 24 + node_modules/uuid/dist/esm-node/v5.js | 4 + node_modules/uuid/dist/esm-node/validate.js | 7 + node_modules/uuid/dist/esm-node/version.js | 11 + node_modules/uuid/dist/index.js | 79 + node_modules/uuid/dist/md5-browser.js | 223 + node_modules/uuid/dist/md5.js | 23 + node_modules/uuid/dist/nil.js | 8 + node_modules/uuid/dist/parse.js | 45 + node_modules/uuid/dist/regex.js | 8 + node_modules/uuid/dist/rng-browser.js | 26 + node_modules/uuid/dist/rng.js | 24 + node_modules/uuid/dist/sha1-browser.js | 104 + node_modules/uuid/dist/sha1.js | 23 + node_modules/uuid/dist/stringify.js | 39 + node_modules/uuid/dist/umd/uuid.min.js | 1 + node_modules/uuid/dist/umd/uuidNIL.min.js | 1 + node_modules/uuid/dist/umd/uuidParse.min.js | 1 + .../uuid/dist/umd/uuidStringify.min.js | 1 + .../uuid/dist/umd/uuidValidate.min.js | 1 + node_modules/uuid/dist/umd/uuidVersion.min.js | 1 + node_modules/uuid/dist/umd/uuidv1.min.js | 1 + node_modules/uuid/dist/umd/uuidv3.min.js | 1 + node_modules/uuid/dist/umd/uuidv4.min.js | 1 + node_modules/uuid/dist/umd/uuidv5.min.js | 1 + node_modules/uuid/dist/uuid-bin.js | 85 + node_modules/uuid/dist/v1.js | 107 + node_modules/uuid/dist/v3.js | 16 + node_modules/uuid/dist/v35.js | 78 + node_modules/uuid/dist/v4.js | 37 + node_modules/uuid/dist/v5.js | 16 + node_modules/uuid/dist/validate.js | 17 + node_modules/uuid/dist/version.js | 21 + node_modules/uuid/package.json | 135 + node_modules/uuid/wrapper.mjs | 10 + node_modules/webidl-conversions/LICENSE.md | 12 + node_modules/webidl-conversions/README.md | 53 + node_modules/webidl-conversions/lib/index.js | 189 + node_modules/webidl-conversions/package.json | 23 + node_modules/whatwg-url/LICENSE.txt | 21 + node_modules/whatwg-url/README.md | 67 + node_modules/whatwg-url/lib/URL-impl.js | 200 + node_modules/whatwg-url/lib/URL.js | 196 + node_modules/whatwg-url/lib/public-api.js | 11 + .../whatwg-url/lib/url-state-machine.js | 1297 + node_modules/whatwg-url/lib/utils.js | 20 + node_modules/whatwg-url/package.json | 32 + node_modules/which/CHANGELOG.md | 166 + node_modules/which/LICENSE | 15 + node_modules/which/README.md | 54 + node_modules/which/bin/node-which | 52 + node_modules/which/package.json | 43 + node_modules/which/which.js | 125 + node_modules/word-wrap/LICENSE | 21 + node_modules/word-wrap/README.md | 182 + node_modules/word-wrap/index.d.ts | 50 + node_modules/word-wrap/index.js | 46 + node_modules/word-wrap/package.json | 77 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + node_modules/yaml/LICENSE | 13 + node_modules/yaml/README.md | 127 + .../yaml/browser/dist/PlainValue-b8036b75.js | 1275 + .../yaml/browser/dist/Schema-e94716c8.js | 682 + node_modules/yaml/browser/dist/index.js | 1002 + .../yaml/browser/dist/legacy-exports.js | 3 + node_modules/yaml/browser/dist/package.json | 1 + node_modules/yaml/browser/dist/parse-cst.js | 1904 + .../yaml/browser/dist/resolveSeq-492ab440.js | 2419 + node_modules/yaml/browser/dist/types.js | 4 + node_modules/yaml/browser/dist/util.js | 2 + .../yaml/browser/dist/warnings-df54cb69.js | 499 + node_modules/yaml/browser/index.js | 1 + node_modules/yaml/browser/map.js | 2 + node_modules/yaml/browser/pair.js | 2 + node_modules/yaml/browser/parse-cst.js | 1 + node_modules/yaml/browser/scalar.js | 2 + node_modules/yaml/browser/schema.js | 9 + node_modules/yaml/browser/seq.js | 2 + node_modules/yaml/browser/types.js | 1 + node_modules/yaml/browser/types/binary.js | 8 + node_modules/yaml/browser/types/omap.js | 3 + node_modules/yaml/browser/types/pairs.js | 3 + node_modules/yaml/browser/types/set.js | 3 + node_modules/yaml/browser/types/timestamp.js | 10 + node_modules/yaml/browser/util.js | 1 + node_modules/yaml/dist/Document-9b4560a1.js | 757 + node_modules/yaml/dist/PlainValue-ec8e588e.js | 876 + node_modules/yaml/dist/Schema-88e323a7.js | 525 + node_modules/yaml/dist/index.js | 79 + node_modules/yaml/dist/legacy-exports.js | 16 + node_modules/yaml/dist/parse-cst.js | 1753 + node_modules/yaml/dist/resolveSeq-d03cb037.js | 2161 + node_modules/yaml/dist/test-events.js | 162 + node_modules/yaml/dist/types.js | 23 + node_modules/yaml/dist/util.js | 19 + node_modules/yaml/dist/warnings-1000a372.js | 416 + node_modules/yaml/index.d.ts | 372 + node_modules/yaml/index.js | 1 + node_modules/yaml/map.js | 2 + node_modules/yaml/package.json | 106 + node_modules/yaml/pair.js | 2 + node_modules/yaml/parse-cst.d.ts | 191 + node_modules/yaml/parse-cst.js | 1 + node_modules/yaml/scalar.js | 2 + node_modules/yaml/schema.js | 9 + node_modules/yaml/seq.js | 2 + node_modules/yaml/types.d.ts | 407 + node_modules/yaml/types.js | 17 + node_modules/yaml/types.mjs | 17 + node_modules/yaml/types/binary.js | 8 + node_modules/yaml/types/omap.js | 3 + node_modules/yaml/types/pairs.js | 3 + node_modules/yaml/types/set.js | 3 + node_modules/yaml/types/timestamp.js | 10 + node_modules/yaml/util.d.ts | 86 + node_modules/yaml/util.js | 16 + node_modules/yaml/util.mjs | 18 + node_modules/yocto-queue/index.d.ts | 56 + node_modules/yocto-queue/index.js | 68 + node_modules/yocto-queue/license | 9 + node_modules/yocto-queue/package.json | 43 + node_modules/yocto-queue/readme.md | 64 + 2055 files changed, 441822 insertions(+), 1 deletion(-) delete mode 100644 .gitignore create mode 120000 node_modules/.bin/acorn create mode 120000 node_modules/.bin/eslint create mode 120000 node_modules/.bin/eslint-config-prettier create mode 120000 node_modules/.bin/js-yaml create mode 120000 node_modules/.bin/node-which create mode 120000 node_modules/.bin/prettier create mode 120000 node_modules/.bin/rimraf create mode 120000 node_modules/.bin/uuid create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@actions/core/LICENSE.md create mode 100644 node_modules/@actions/core/README.md create mode 100644 node_modules/@actions/core/lib/command.d.ts create mode 100644 node_modules/@actions/core/lib/command.js create mode 100644 node_modules/@actions/core/lib/command.js.map create mode 100644 node_modules/@actions/core/lib/core.d.ts create mode 100644 node_modules/@actions/core/lib/core.js create mode 100644 node_modules/@actions/core/lib/core.js.map create mode 100644 node_modules/@actions/core/lib/file-command.d.ts create mode 100644 node_modules/@actions/core/lib/file-command.js create mode 100644 node_modules/@actions/core/lib/file-command.js.map create mode 100644 node_modules/@actions/core/lib/oidc-utils.d.ts create mode 100644 node_modules/@actions/core/lib/oidc-utils.js create mode 100644 node_modules/@actions/core/lib/oidc-utils.js.map create mode 100644 node_modules/@actions/core/lib/path-utils.d.ts create mode 100644 node_modules/@actions/core/lib/path-utils.js create mode 100644 node_modules/@actions/core/lib/path-utils.js.map create mode 100644 node_modules/@actions/core/lib/summary.d.ts create mode 100644 node_modules/@actions/core/lib/summary.js create mode 100644 node_modules/@actions/core/lib/summary.js.map create mode 100644 node_modules/@actions/core/lib/utils.d.ts create mode 100644 node_modules/@actions/core/lib/utils.js create mode 100644 node_modules/@actions/core/lib/utils.js.map create mode 100644 node_modules/@actions/core/package.json create mode 100644 node_modules/@actions/github/README.md create mode 100644 node_modules/@actions/github/lib/context.d.ts create mode 100644 node_modules/@actions/github/lib/context.js create mode 100644 node_modules/@actions/github/lib/context.js.map create mode 100644 node_modules/@actions/github/lib/github.d.ts create mode 100644 node_modules/@actions/github/lib/github.js create mode 100644 node_modules/@actions/github/lib/github.js.map create mode 100644 node_modules/@actions/github/lib/interfaces.d.ts create mode 100644 node_modules/@actions/github/lib/interfaces.js create mode 100644 node_modules/@actions/github/lib/interfaces.js.map create mode 100644 node_modules/@actions/github/lib/internal/utils.d.ts create mode 100644 node_modules/@actions/github/lib/internal/utils.js create mode 100644 node_modules/@actions/github/lib/internal/utils.js.map create mode 100644 node_modules/@actions/github/lib/utils.d.ts create mode 100644 node_modules/@actions/github/lib/utils.js create mode 100644 node_modules/@actions/github/lib/utils.js.map create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/LICENSE create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/README.md create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/actions.png create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/auth.js create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/index.js create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/package.json create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts create mode 100644 node_modules/@actions/github/node_modules/@actions/http-client/proxy.js create mode 100644 node_modules/@actions/github/package.json create mode 100644 node_modules/@actions/http-client/LICENSE create mode 100644 node_modules/@actions/http-client/README.md create mode 100644 node_modules/@actions/http-client/lib/auth.d.ts create mode 100644 node_modules/@actions/http-client/lib/auth.js create mode 100644 node_modules/@actions/http-client/lib/auth.js.map create mode 100644 node_modules/@actions/http-client/lib/index.d.ts create mode 100644 node_modules/@actions/http-client/lib/index.js create mode 100644 node_modules/@actions/http-client/lib/index.js.map create mode 100644 node_modules/@actions/http-client/lib/interfaces.d.ts create mode 100644 node_modules/@actions/http-client/lib/interfaces.js create mode 100644 node_modules/@actions/http-client/lib/interfaces.js.map create mode 100644 node_modules/@actions/http-client/lib/proxy.d.ts create mode 100644 node_modules/@actions/http-client/lib/proxy.js create mode 100644 node_modules/@actions/http-client/lib/proxy.js.map create mode 100644 node_modules/@actions/http-client/package.json create mode 100644 node_modules/@eslint/eslintrc/LICENSE create mode 100644 node_modules/@eslint/eslintrc/README.md create mode 100644 node_modules/@eslint/eslintrc/conf/config-schema.js create mode 100644 node_modules/@eslint/eslintrc/conf/environments.js create mode 100644 node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs create mode 100644 node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map create mode 100644 node_modules/@eslint/eslintrc/dist/eslintrc.cjs create mode 100644 node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map create mode 100644 node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js create mode 100644 node_modules/@eslint/eslintrc/lib/config-array-factory.js create mode 100644 node_modules/@eslint/eslintrc/lib/config-array/config-array.js create mode 100644 node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js create mode 100644 node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js create mode 100644 node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js create mode 100644 node_modules/@eslint/eslintrc/lib/config-array/index.js create mode 100644 node_modules/@eslint/eslintrc/lib/config-array/override-tester.js create mode 100644 node_modules/@eslint/eslintrc/lib/flat-compat.js create mode 100644 node_modules/@eslint/eslintrc/lib/index-universal.js create mode 100644 node_modules/@eslint/eslintrc/lib/index.js create mode 100644 node_modules/@eslint/eslintrc/lib/shared/ajv.js create mode 100644 node_modules/@eslint/eslintrc/lib/shared/config-ops.js create mode 100644 node_modules/@eslint/eslintrc/lib/shared/config-validator.js create mode 100644 node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js create mode 100644 node_modules/@eslint/eslintrc/lib/shared/naming.js create mode 100644 node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js create mode 100644 node_modules/@eslint/eslintrc/lib/shared/types.js create mode 100644 node_modules/@eslint/eslintrc/package.json create mode 100644 node_modules/@eslint/eslintrc/universal.js create mode 100644 node_modules/@humanwhocodes/config-array/CHANGELOG.md create mode 100644 node_modules/@humanwhocodes/config-array/LICENSE create mode 100644 node_modules/@humanwhocodes/config-array/README.md create mode 100644 node_modules/@humanwhocodes/config-array/api.js create mode 100644 node_modules/@humanwhocodes/config-array/package.json create mode 100644 node_modules/@humanwhocodes/gitignore-to-minimatch/LICENSE create mode 100644 node_modules/@humanwhocodes/gitignore-to-minimatch/README.md create mode 100644 node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.cjs create mode 100644 node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.d.ts create mode 100644 node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.js create mode 100644 node_modules/@humanwhocodes/gitignore-to-minimatch/package.json create mode 100644 node_modules/@humanwhocodes/module-importer/CHANGELOG.md create mode 100644 node_modules/@humanwhocodes/module-importer/LICENSE create mode 100644 node_modules/@humanwhocodes/module-importer/README.md create mode 100644 node_modules/@humanwhocodes/module-importer/dist/module-importer.cjs create mode 100644 node_modules/@humanwhocodes/module-importer/dist/module-importer.d.cts create mode 100644 node_modules/@humanwhocodes/module-importer/dist/module-importer.d.ts create mode 100644 node_modules/@humanwhocodes/module-importer/dist/module-importer.js create mode 100644 node_modules/@humanwhocodes/module-importer/package.json create mode 100644 node_modules/@humanwhocodes/module-importer/src/module-importer.cjs create mode 100644 node_modules/@humanwhocodes/module-importer/src/module-importer.js create mode 100644 node_modules/@humanwhocodes/object-schema/.eslintrc.js create mode 100644 node_modules/@humanwhocodes/object-schema/.github/workflows/nodejs-test.yml create mode 100644 node_modules/@humanwhocodes/object-schema/.github/workflows/release-please.yml create mode 100644 node_modules/@humanwhocodes/object-schema/CHANGELOG.md create mode 100644 node_modules/@humanwhocodes/object-schema/LICENSE create mode 100644 node_modules/@humanwhocodes/object-schema/README.md create mode 100644 node_modules/@humanwhocodes/object-schema/package.json create mode 100644 node_modules/@humanwhocodes/object-schema/src/index.js create mode 100644 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js create mode 100644 node_modules/@humanwhocodes/object-schema/src/object-schema.js create mode 100644 node_modules/@humanwhocodes/object-schema/src/validation-strategy.js create mode 100644 node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js create mode 100644 node_modules/@humanwhocodes/object-schema/tests/object-schema.js create mode 100644 node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js create mode 100644 node_modules/@nodelib/fs.scandir/LICENSE create mode 100644 node_modules/@nodelib/fs.scandir/README.md create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.js create mode 100644 node_modules/@nodelib/fs.scandir/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.js create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.js create mode 100644 node_modules/@nodelib/fs.scandir/package.json create mode 100644 node_modules/@nodelib/fs.stat/LICENSE create mode 100644 node_modules/@nodelib/fs.stat/README.md create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.stat/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/index.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.stat/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/settings.js create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.js create mode 100644 node_modules/@nodelib/fs.stat/package.json create mode 100644 node_modules/@nodelib/fs.walk/LICENSE create mode 100644 node_modules/@nodelib/fs.walk/README.md create mode 100644 node_modules/@nodelib/fs.walk/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/settings.js create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.js create mode 100644 node_modules/@nodelib/fs.walk/package.json create mode 100644 node_modules/@octokit/auth-token/LICENSE create mode 100644 node_modules/@octokit/auth-token/README.md create mode 100644 node_modules/@octokit/auth-token/dist-node/index.js create mode 100644 node_modules/@octokit/auth-token/dist-node/index.js.map create mode 100644 node_modules/@octokit/auth-token/dist-src/auth.js create mode 100644 node_modules/@octokit/auth-token/dist-src/hook.js create mode 100644 node_modules/@octokit/auth-token/dist-src/index.js create mode 100644 node_modules/@octokit/auth-token/dist-src/types.js create mode 100644 node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js create mode 100644 node_modules/@octokit/auth-token/dist-types/auth.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/hook.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/index.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/types.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts create mode 100644 node_modules/@octokit/auth-token/dist-web/index.js create mode 100644 node_modules/@octokit/auth-token/dist-web/index.js.map create mode 100644 node_modules/@octokit/auth-token/package.json create mode 100644 node_modules/@octokit/core/LICENSE create mode 100644 node_modules/@octokit/core/README.md create mode 100644 node_modules/@octokit/core/dist-node/index.js create mode 100644 node_modules/@octokit/core/dist-node/index.js.map create mode 100644 node_modules/@octokit/core/dist-src/index.js create mode 100644 node_modules/@octokit/core/dist-src/types.js create mode 100644 node_modules/@octokit/core/dist-src/version.js create mode 100644 node_modules/@octokit/core/dist-types/index.d.ts create mode 100644 node_modules/@octokit/core/dist-types/types.d.ts create mode 100644 node_modules/@octokit/core/dist-types/version.d.ts create mode 100644 node_modules/@octokit/core/dist-web/index.js create mode 100644 node_modules/@octokit/core/dist-web/index.js.map create mode 100644 node_modules/@octokit/core/package.json create mode 100644 node_modules/@octokit/endpoint/LICENSE create mode 100644 node_modules/@octokit/endpoint/README.md create mode 100644 node_modules/@octokit/endpoint/dist-node/index.js create mode 100644 node_modules/@octokit/endpoint/dist-node/index.js.map create mode 100644 node_modules/@octokit/endpoint/dist-src/defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-src/index.js create mode 100644 node_modules/@octokit/endpoint/dist-src/merge.js create mode 100644 node_modules/@octokit/endpoint/dist-src/parse.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/merge-deep.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/omit.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/url-template.js create mode 100644 node_modules/@octokit/endpoint/dist-src/version.js create mode 100644 node_modules/@octokit/endpoint/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-types/defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/index.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/merge.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/parse.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/omit.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/version.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-web/index.js create mode 100644 node_modules/@octokit/endpoint/dist-web/index.js.map create mode 100644 node_modules/@octokit/endpoint/package.json create mode 100644 node_modules/@octokit/graphql/LICENSE create mode 100644 node_modules/@octokit/graphql/README.md create mode 100644 node_modules/@octokit/graphql/dist-node/index.js create mode 100644 node_modules/@octokit/graphql/dist-node/index.js.map create mode 100644 node_modules/@octokit/graphql/dist-src/error.js create mode 100644 node_modules/@octokit/graphql/dist-src/graphql.js create mode 100644 node_modules/@octokit/graphql/dist-src/index.js create mode 100644 node_modules/@octokit/graphql/dist-src/types.js create mode 100644 node_modules/@octokit/graphql/dist-src/version.js create mode 100644 node_modules/@octokit/graphql/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/graphql/dist-types/error.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/graphql.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/index.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/types.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/version.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/graphql/dist-web/index.js create mode 100644 node_modules/@octokit/graphql/dist-web/index.js.map create mode 100644 node_modules/@octokit/graphql/package.json create mode 100644 node_modules/@octokit/openapi-types/LICENSE create mode 100644 node_modules/@octokit/openapi-types/README.md create mode 100644 node_modules/@octokit/openapi-types/package.json create mode 100644 node_modules/@octokit/openapi-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/LICENSE create mode 100644 node_modules/@octokit/plugin-paginate-rest/README.md create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/types.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-src/version.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-paginate-rest/package.json create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/README.md create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/types.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-rest-endpoint-methods/package.json create mode 100644 node_modules/@octokit/request-error/LICENSE create mode 100644 node_modules/@octokit/request-error/README.md create mode 100644 node_modules/@octokit/request-error/dist-node/index.js create mode 100644 node_modules/@octokit/request-error/dist-node/index.js.map create mode 100644 node_modules/@octokit/request-error/dist-src/index.js create mode 100644 node_modules/@octokit/request-error/dist-src/types.js create mode 100644 node_modules/@octokit/request-error/dist-types/index.d.ts create mode 100644 node_modules/@octokit/request-error/dist-types/types.d.ts create mode 100644 node_modules/@octokit/request-error/dist-web/index.js create mode 100644 node_modules/@octokit/request-error/dist-web/index.js.map create mode 100644 node_modules/@octokit/request-error/package.json create mode 100644 node_modules/@octokit/request/LICENSE create mode 100644 node_modules/@octokit/request/README.md create mode 100644 node_modules/@octokit/request/dist-node/index.js create mode 100644 node_modules/@octokit/request/dist-node/index.js.map create mode 100644 node_modules/@octokit/request/dist-src/fetch-wrapper.js create mode 100644 node_modules/@octokit/request/dist-src/get-buffer-response.js create mode 100644 node_modules/@octokit/request/dist-src/index.js create mode 100644 node_modules/@octokit/request/dist-src/version.js create mode 100644 node_modules/@octokit/request/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts create mode 100644 node_modules/@octokit/request/dist-types/get-buffer-response.d.ts create mode 100644 node_modules/@octokit/request/dist-types/index.d.ts create mode 100644 node_modules/@octokit/request/dist-types/version.d.ts create mode 100644 node_modules/@octokit/request/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/request/dist-web/index.js create mode 100644 node_modules/@octokit/request/dist-web/index.js.map create mode 100644 node_modules/@octokit/request/package.json create mode 100644 node_modules/@octokit/types/LICENSE create mode 100644 node_modules/@octokit/types/README.md create mode 100644 node_modules/@octokit/types/dist-node/index.js create mode 100644 node_modules/@octokit/types/dist-node/index.js.map create mode 100644 node_modules/@octokit/types/dist-src/AuthInterface.js create mode 100644 node_modules/@octokit/types/dist-src/EndpointDefaults.js create mode 100644 node_modules/@octokit/types/dist-src/EndpointInterface.js create mode 100644 node_modules/@octokit/types/dist-src/EndpointOptions.js create mode 100644 node_modules/@octokit/types/dist-src/Fetch.js create mode 100644 node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js create mode 100644 node_modules/@octokit/types/dist-src/OctokitResponse.js create mode 100644 node_modules/@octokit/types/dist-src/RequestError.js create mode 100644 node_modules/@octokit/types/dist-src/RequestHeaders.js create mode 100644 node_modules/@octokit/types/dist-src/RequestInterface.js create mode 100644 node_modules/@octokit/types/dist-src/RequestMethod.js create mode 100644 node_modules/@octokit/types/dist-src/RequestOptions.js create mode 100644 node_modules/@octokit/types/dist-src/RequestParameters.js create mode 100644 node_modules/@octokit/types/dist-src/RequestRequestOptions.js create mode 100644 node_modules/@octokit/types/dist-src/ResponseHeaders.js create mode 100644 node_modules/@octokit/types/dist-src/Route.js create mode 100644 node_modules/@octokit/types/dist-src/Signal.js create mode 100644 node_modules/@octokit/types/dist-src/StrategyInterface.js create mode 100644 node_modules/@octokit/types/dist-src/Url.js create mode 100644 node_modules/@octokit/types/dist-src/VERSION.js create mode 100644 node_modules/@octokit/types/dist-src/generated/Endpoints.js create mode 100644 node_modules/@octokit/types/dist-src/index.js create mode 100644 node_modules/@octokit/types/dist-types/AuthInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts create mode 100644 node_modules/@octokit/types/dist-types/EndpointInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/EndpointOptions.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Fetch.d.ts create mode 100644 node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts create mode 100644 node_modules/@octokit/types/dist-types/OctokitResponse.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestError.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestHeaders.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestMethod.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestOptions.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestParameters.d.ts create mode 100644 node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts create mode 100644 node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Route.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Signal.d.ts create mode 100644 node_modules/@octokit/types/dist-types/StrategyInterface.d.ts create mode 100644 node_modules/@octokit/types/dist-types/Url.d.ts create mode 100644 node_modules/@octokit/types/dist-types/VERSION.d.ts create mode 100644 node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts create mode 100644 node_modules/@octokit/types/dist-types/index.d.ts create mode 100644 node_modules/@octokit/types/dist-web/index.js create mode 100644 node_modules/@octokit/types/dist-web/index.js.map create mode 100644 node_modules/@octokit/types/package.json create mode 100644 node_modules/acorn-jsx/LICENSE create mode 100644 node_modules/acorn-jsx/README.md create mode 100644 node_modules/acorn-jsx/index.d.ts create mode 100644 node_modules/acorn-jsx/index.js create mode 100644 node_modules/acorn-jsx/package.json create mode 100644 node_modules/acorn-jsx/xhtml.js create mode 100644 node_modules/acorn/CHANGELOG.md create mode 100644 node_modules/acorn/LICENSE create mode 100644 node_modules/acorn/README.md create mode 100755 node_modules/acorn/bin/acorn create mode 100644 node_modules/acorn/dist/acorn.d.ts create mode 100644 node_modules/acorn/dist/acorn.js create mode 100644 node_modules/acorn/dist/acorn.mjs create mode 100644 node_modules/acorn/dist/acorn.mjs.d.ts create mode 100644 node_modules/acorn/dist/bin.js create mode 100644 node_modules/acorn/package.json create mode 100644 node_modules/ajv/.tonic_example.js create mode 100644 node_modules/ajv/LICENSE create mode 100644 node_modules/ajv/README.md create mode 100644 node_modules/ajv/dist/ajv.bundle.js create mode 100644 node_modules/ajv/dist/ajv.min.js create mode 100644 node_modules/ajv/dist/ajv.min.js.map create mode 100644 node_modules/ajv/lib/ajv.d.ts create mode 100644 node_modules/ajv/lib/ajv.js create mode 100644 node_modules/ajv/lib/cache.js create mode 100644 node_modules/ajv/lib/compile/async.js create mode 100644 node_modules/ajv/lib/compile/equal.js create mode 100644 node_modules/ajv/lib/compile/error_classes.js create mode 100644 node_modules/ajv/lib/compile/formats.js create mode 100644 node_modules/ajv/lib/compile/index.js create mode 100644 node_modules/ajv/lib/compile/resolve.js create mode 100644 node_modules/ajv/lib/compile/rules.js create mode 100644 node_modules/ajv/lib/compile/schema_obj.js create mode 100644 node_modules/ajv/lib/compile/ucs2length.js create mode 100644 node_modules/ajv/lib/compile/util.js create mode 100644 node_modules/ajv/lib/data.js create mode 100644 node_modules/ajv/lib/definition_schema.js create mode 100644 node_modules/ajv/lib/dot/_limit.jst create mode 100644 node_modules/ajv/lib/dot/_limitItems.jst create mode 100644 node_modules/ajv/lib/dot/_limitLength.jst create mode 100644 node_modules/ajv/lib/dot/_limitProperties.jst create mode 100644 node_modules/ajv/lib/dot/allOf.jst create mode 100644 node_modules/ajv/lib/dot/anyOf.jst create mode 100644 node_modules/ajv/lib/dot/coerce.def create mode 100644 node_modules/ajv/lib/dot/comment.jst create mode 100644 node_modules/ajv/lib/dot/const.jst create mode 100644 node_modules/ajv/lib/dot/contains.jst create mode 100644 node_modules/ajv/lib/dot/custom.jst create mode 100644 node_modules/ajv/lib/dot/defaults.def create mode 100644 node_modules/ajv/lib/dot/definitions.def create mode 100644 node_modules/ajv/lib/dot/dependencies.jst create mode 100644 node_modules/ajv/lib/dot/enum.jst create mode 100644 node_modules/ajv/lib/dot/errors.def create mode 100644 node_modules/ajv/lib/dot/format.jst create mode 100644 node_modules/ajv/lib/dot/if.jst create mode 100644 node_modules/ajv/lib/dot/items.jst create mode 100644 node_modules/ajv/lib/dot/missing.def create mode 100644 node_modules/ajv/lib/dot/multipleOf.jst create mode 100644 node_modules/ajv/lib/dot/not.jst create mode 100644 node_modules/ajv/lib/dot/oneOf.jst create mode 100644 node_modules/ajv/lib/dot/pattern.jst create mode 100644 node_modules/ajv/lib/dot/properties.jst create mode 100644 node_modules/ajv/lib/dot/propertyNames.jst create mode 100644 node_modules/ajv/lib/dot/ref.jst create mode 100644 node_modules/ajv/lib/dot/required.jst create mode 100644 node_modules/ajv/lib/dot/uniqueItems.jst create mode 100644 node_modules/ajv/lib/dot/validate.jst create mode 100644 node_modules/ajv/lib/dotjs/README.md create mode 100644 node_modules/ajv/lib/dotjs/_limit.js create mode 100644 node_modules/ajv/lib/dotjs/_limitItems.js create mode 100644 node_modules/ajv/lib/dotjs/_limitLength.js create mode 100644 node_modules/ajv/lib/dotjs/_limitProperties.js create mode 100644 node_modules/ajv/lib/dotjs/allOf.js create mode 100644 node_modules/ajv/lib/dotjs/anyOf.js create mode 100644 node_modules/ajv/lib/dotjs/comment.js create mode 100644 node_modules/ajv/lib/dotjs/const.js create mode 100644 node_modules/ajv/lib/dotjs/contains.js create mode 100644 node_modules/ajv/lib/dotjs/custom.js create mode 100644 node_modules/ajv/lib/dotjs/dependencies.js create mode 100644 node_modules/ajv/lib/dotjs/enum.js create mode 100644 node_modules/ajv/lib/dotjs/format.js create mode 100644 node_modules/ajv/lib/dotjs/if.js create mode 100644 node_modules/ajv/lib/dotjs/index.js create mode 100644 node_modules/ajv/lib/dotjs/items.js create mode 100644 node_modules/ajv/lib/dotjs/multipleOf.js create mode 100644 node_modules/ajv/lib/dotjs/not.js create mode 100644 node_modules/ajv/lib/dotjs/oneOf.js create mode 100644 node_modules/ajv/lib/dotjs/pattern.js create mode 100644 node_modules/ajv/lib/dotjs/properties.js create mode 100644 node_modules/ajv/lib/dotjs/propertyNames.js create mode 100644 node_modules/ajv/lib/dotjs/ref.js create mode 100644 node_modules/ajv/lib/dotjs/required.js create mode 100644 node_modules/ajv/lib/dotjs/uniqueItems.js create mode 100644 node_modules/ajv/lib/dotjs/validate.js create mode 100644 node_modules/ajv/lib/keyword.js create mode 100644 node_modules/ajv/lib/refs/data.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-04.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-06.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-07.json create mode 100644 node_modules/ajv/lib/refs/json-schema-secure.json create mode 100644 node_modules/ajv/package.json create mode 100644 node_modules/ajv/scripts/.eslintrc.yml create mode 100644 node_modules/ajv/scripts/bundle.js create mode 100644 node_modules/ajv/scripts/compile-dots.js create mode 100644 node_modules/ajv/scripts/info create mode 100644 node_modules/ajv/scripts/prepare-tests create mode 100644 node_modules/ajv/scripts/publish-built-version create mode 100644 node_modules/ajv/scripts/travis-gh-pages create mode 100644 node_modules/ansi-regex/index.d.ts create mode 100644 node_modules/ansi-regex/index.js create mode 100644 node_modules/ansi-regex/license create mode 100644 node_modules/ansi-regex/package.json create mode 100644 node_modules/ansi-regex/readme.md create mode 100644 node_modules/ansi-styles/index.d.ts create mode 100644 node_modules/ansi-styles/index.js create mode 100644 node_modules/ansi-styles/license create mode 100644 node_modules/ansi-styles/package.json create mode 100644 node_modules/ansi-styles/readme.md create mode 100644 node_modules/argparse/CHANGELOG.md create mode 100644 node_modules/argparse/LICENSE create mode 100644 node_modules/argparse/README.md create mode 100644 node_modules/argparse/argparse.js create mode 100644 node_modules/argparse/lib/sub.js create mode 100644 node_modules/argparse/lib/textwrap.js create mode 100644 node_modules/argparse/package.json create mode 100644 node_modules/array-union/index.d.ts create mode 100644 node_modules/array-union/index.js create mode 100644 node_modules/array-union/license create mode 100644 node_modules/array-union/package.json create mode 100644 node_modules/array-union/readme.md create mode 100644 node_modules/balanced-match/.github/FUNDING.yml create mode 100644 node_modules/balanced-match/LICENSE.md create mode 100644 node_modules/balanced-match/README.md create mode 100644 node_modules/balanced-match/index.js create mode 100644 node_modules/balanced-match/package.json create mode 100644 node_modules/before-after-hook/LICENSE create mode 100644 node_modules/before-after-hook/README.md create mode 100644 node_modules/before-after-hook/index.d.ts create mode 100644 node_modules/before-after-hook/index.js create mode 100644 node_modules/before-after-hook/lib/add.js create mode 100644 node_modules/before-after-hook/lib/register.js create mode 100644 node_modules/before-after-hook/lib/remove.js create mode 100644 node_modules/before-after-hook/package.json create mode 100644 node_modules/brace-expansion/LICENSE create mode 100644 node_modules/brace-expansion/README.md create mode 100644 node_modules/brace-expansion/index.js create mode 100644 node_modules/brace-expansion/package.json create mode 100644 node_modules/braces/CHANGELOG.md create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/callsites/index.d.ts create mode 100644 node_modules/callsites/index.js create mode 100644 node_modules/callsites/license create mode 100644 node_modules/callsites/package.json create mode 100644 node_modules/callsites/readme.md create mode 100644 node_modules/chalk/index.d.ts create mode 100644 node_modules/chalk/license create mode 100644 node_modules/chalk/package.json create mode 100644 node_modules/chalk/readme.md create mode 100644 node_modules/chalk/source/index.js create mode 100644 node_modules/chalk/source/templates.js create mode 100644 node_modules/chalk/source/util.js create mode 100644 node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/color-convert/LICENSE create mode 100644 node_modules/color-convert/README.md create mode 100644 node_modules/color-convert/conversions.js create mode 100644 node_modules/color-convert/index.js create mode 100644 node_modules/color-convert/package.json create mode 100644 node_modules/color-convert/route.js create mode 100644 node_modules/color-name/LICENSE create mode 100644 node_modules/color-name/README.md create mode 100644 node_modules/color-name/index.js create mode 100644 node_modules/color-name/package.json create mode 100644 node_modules/concat-map/.travis.yml create mode 100644 node_modules/concat-map/LICENSE create mode 100644 node_modules/concat-map/README.markdown create mode 100644 node_modules/concat-map/example/map.js create mode 100644 node_modules/concat-map/index.js create mode 100644 node_modules/concat-map/package.json create mode 100644 node_modules/concat-map/test/map.js create mode 100644 node_modules/cross-spawn/CHANGELOG.md create mode 100644 node_modules/cross-spawn/LICENSE create mode 100644 node_modules/cross-spawn/README.md create mode 100644 node_modules/cross-spawn/index.js create mode 100644 node_modules/cross-spawn/lib/enoent.js create mode 100644 node_modules/cross-spawn/lib/parse.js create mode 100644 node_modules/cross-spawn/lib/util/escape.js create mode 100644 node_modules/cross-spawn/lib/util/readShebang.js create mode 100644 node_modules/cross-spawn/lib/util/resolveCommand.js create mode 100644 node_modules/cross-spawn/package.json create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/common.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/deep-is/.travis.yml create mode 100644 node_modules/deep-is/LICENSE create mode 100644 node_modules/deep-is/README.markdown create mode 100644 node_modules/deep-is/example/cmp.js create mode 100644 node_modules/deep-is/index.js create mode 100644 node_modules/deep-is/package.json create mode 100644 node_modules/deep-is/test/NaN.js create mode 100644 node_modules/deep-is/test/cmp.js create mode 100644 node_modules/deep-is/test/neg-vs-pos-0.js create mode 100644 node_modules/deprecation/LICENSE create mode 100644 node_modules/deprecation/README.md create mode 100644 node_modules/deprecation/dist-node/index.js create mode 100644 node_modules/deprecation/dist-src/index.js create mode 100644 node_modules/deprecation/dist-types/index.d.ts create mode 100644 node_modules/deprecation/dist-web/index.js create mode 100644 node_modules/deprecation/package.json create mode 100644 node_modules/dir-glob/index.js create mode 100644 node_modules/dir-glob/license create mode 100644 node_modules/dir-glob/package.json create mode 100644 node_modules/dir-glob/readme.md create mode 100644 node_modules/docker-compose/CHANGELOG.md create mode 100644 node_modules/docker-compose/LICENSE create mode 100644 node_modules/docker-compose/community-samples/readme.md create mode 100644 node_modules/docker-compose/dist/index.d.ts create mode 100644 node_modules/docker-compose/dist/index.js create mode 100644 node_modules/docker-compose/dist/map-ports.d.ts create mode 100644 node_modules/docker-compose/dist/map-ports.js create mode 100644 node_modules/docker-compose/package.json create mode 100644 node_modules/docker-compose/readme.md create mode 100644 node_modules/docker-compose/src/index.ts create mode 100644 node_modules/docker-compose/src/map-ports.ts create mode 100644 node_modules/docker-compose/tsconfig.json create mode 100644 node_modules/doctrine/CHANGELOG.md create mode 100644 node_modules/doctrine/LICENSE create mode 100644 node_modules/doctrine/LICENSE.closure-compiler create mode 100644 node_modules/doctrine/LICENSE.esprima create mode 100644 node_modules/doctrine/README.md create mode 100644 node_modules/doctrine/lib/doctrine.js create mode 100644 node_modules/doctrine/lib/typed.js create mode 100644 node_modules/doctrine/lib/utility.js create mode 100644 node_modules/doctrine/package.json create mode 100644 node_modules/escape-string-regexp/index.d.ts create mode 100644 node_modules/escape-string-regexp/index.js create mode 100644 node_modules/escape-string-regexp/license create mode 100644 node_modules/escape-string-regexp/package.json create mode 100644 node_modules/escape-string-regexp/readme.md create mode 100644 node_modules/eslint-config-prettier/@typescript-eslint.js create mode 100644 node_modules/eslint-config-prettier/LICENSE create mode 100644 node_modules/eslint-config-prettier/README.md create mode 100644 node_modules/eslint-config-prettier/babel.js create mode 100755 node_modules/eslint-config-prettier/bin/cli.js create mode 100644 node_modules/eslint-config-prettier/bin/validators.js create mode 100644 node_modules/eslint-config-prettier/flowtype.js create mode 100644 node_modules/eslint-config-prettier/index.js create mode 100644 node_modules/eslint-config-prettier/package.json create mode 100644 node_modules/eslint-config-prettier/prettier.js create mode 100644 node_modules/eslint-config-prettier/react.js create mode 100644 node_modules/eslint-config-prettier/standard.js create mode 100644 node_modules/eslint-config-prettier/unicorn.js create mode 100644 node_modules/eslint-config-prettier/vue.js create mode 100644 node_modules/eslint-plugin-prettier/CHANGELOG.md create mode 100644 node_modules/eslint-plugin-prettier/LICENSE.md create mode 100644 node_modules/eslint-plugin-prettier/README.md create mode 100644 node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js create mode 100644 node_modules/eslint-plugin-prettier/package.json create mode 100644 node_modules/eslint-scope/LICENSE create mode 100644 node_modules/eslint-scope/README.md create mode 100644 node_modules/eslint-scope/dist/eslint-scope.cjs create mode 100644 node_modules/eslint-scope/lib/definition.js create mode 100644 node_modules/eslint-scope/lib/index.js create mode 100644 node_modules/eslint-scope/lib/pattern-visitor.js create mode 100644 node_modules/eslint-scope/lib/reference.js create mode 100644 node_modules/eslint-scope/lib/referencer.js create mode 100644 node_modules/eslint-scope/lib/scope-manager.js create mode 100644 node_modules/eslint-scope/lib/scope.js create mode 100644 node_modules/eslint-scope/lib/variable.js create mode 100644 node_modules/eslint-scope/lib/version.js create mode 100644 node_modules/eslint-scope/package.json create mode 100644 node_modules/eslint-utils/LICENSE create mode 100644 node_modules/eslint-utils/README.md create mode 100644 node_modules/eslint-utils/index.js create mode 100644 node_modules/eslint-utils/index.js.map create mode 100644 node_modules/eslint-utils/index.mjs create mode 100644 node_modules/eslint-utils/index.mjs.map create mode 100644 node_modules/eslint-utils/node_modules/eslint-visitor-keys/CHANGELOG.md create mode 100644 node_modules/eslint-utils/node_modules/eslint-visitor-keys/LICENSE create mode 100644 node_modules/eslint-utils/node_modules/eslint-visitor-keys/README.md create mode 100644 node_modules/eslint-utils/node_modules/eslint-visitor-keys/lib/index.js create mode 100644 node_modules/eslint-utils/node_modules/eslint-visitor-keys/lib/visitor-keys.json create mode 100644 node_modules/eslint-utils/node_modules/eslint-visitor-keys/package.json create mode 100644 node_modules/eslint-utils/package.json create mode 100644 node_modules/eslint-visitor-keys/LICENSE create mode 100644 node_modules/eslint-visitor-keys/README.md create mode 100644 node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs create mode 100644 node_modules/eslint-visitor-keys/dist/index.d.ts create mode 100644 node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts create mode 100644 node_modules/eslint-visitor-keys/lib/index.js create mode 100644 node_modules/eslint-visitor-keys/lib/visitor-keys.js create mode 100644 node_modules/eslint-visitor-keys/package.json create mode 100644 node_modules/eslint/LICENSE create mode 100644 node_modules/eslint/README.md create mode 100755 node_modules/eslint/bin/eslint.js create mode 100644 node_modules/eslint/conf/config-schema.js create mode 100644 node_modules/eslint/conf/default-cli-options.js create mode 100644 node_modules/eslint/conf/eslint-all.js create mode 100644 node_modules/eslint/conf/eslint-recommended.js create mode 100644 node_modules/eslint/conf/globals.js create mode 100644 node_modules/eslint/conf/replacements.json create mode 100644 node_modules/eslint/conf/rule-type-list.json create mode 100644 node_modules/eslint/lib/api.js create mode 100644 node_modules/eslint/lib/cli-engine/cli-engine.js create mode 100644 node_modules/eslint/lib/cli-engine/file-enumerator.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/checkstyle.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/compact.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/html.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/json.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/junit.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/stylish.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/tap.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/unix.js create mode 100644 node_modules/eslint/lib/cli-engine/formatters/visualstudio.js create mode 100644 node_modules/eslint/lib/cli-engine/hash.js create mode 100644 node_modules/eslint/lib/cli-engine/index.js create mode 100644 node_modules/eslint/lib/cli-engine/lint-result-cache.js create mode 100644 node_modules/eslint/lib/cli-engine/load-rules.js create mode 100644 node_modules/eslint/lib/cli-engine/xml-escape.js create mode 100644 node_modules/eslint/lib/cli.js create mode 100644 node_modules/eslint/lib/config/default-config.js create mode 100644 node_modules/eslint/lib/config/flat-config-array.js create mode 100644 node_modules/eslint/lib/config/flat-config-helpers.js create mode 100644 node_modules/eslint/lib/config/flat-config-schema.js create mode 100644 node_modules/eslint/lib/config/rule-validator.js create mode 100644 node_modules/eslint/lib/eslint/eslint-helpers.js create mode 100644 node_modules/eslint/lib/eslint/eslint.js create mode 100644 node_modules/eslint/lib/eslint/flat-eslint.js create mode 100644 node_modules/eslint/lib/eslint/index.js create mode 100644 node_modules/eslint/lib/linter/apply-disable-directives.js create mode 100644 node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js create mode 100644 node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js create mode 100644 node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js create mode 100644 node_modules/eslint/lib/linter/code-path-analysis/code-path.js create mode 100644 node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js create mode 100644 node_modules/eslint/lib/linter/code-path-analysis/fork-context.js create mode 100644 node_modules/eslint/lib/linter/code-path-analysis/id-generator.js create mode 100644 node_modules/eslint/lib/linter/config-comment-parser.js create mode 100644 node_modules/eslint/lib/linter/index.js create mode 100644 node_modules/eslint/lib/linter/interpolate.js create mode 100644 node_modules/eslint/lib/linter/linter.js create mode 100644 node_modules/eslint/lib/linter/node-event-generator.js create mode 100644 node_modules/eslint/lib/linter/report-translator.js create mode 100644 node_modules/eslint/lib/linter/rule-fixer.js create mode 100644 node_modules/eslint/lib/linter/rules.js create mode 100644 node_modules/eslint/lib/linter/safe-emitter.js create mode 100644 node_modules/eslint/lib/linter/source-code-fixer.js create mode 100644 node_modules/eslint/lib/linter/timing.js create mode 100644 node_modules/eslint/lib/options.js create mode 100644 node_modules/eslint/lib/rule-tester/flat-rule-tester.js create mode 100644 node_modules/eslint/lib/rule-tester/index.js create mode 100644 node_modules/eslint/lib/rule-tester/rule-tester.js create mode 100644 node_modules/eslint/lib/rules/accessor-pairs.js create mode 100644 node_modules/eslint/lib/rules/array-bracket-newline.js create mode 100644 node_modules/eslint/lib/rules/array-bracket-spacing.js create mode 100644 node_modules/eslint/lib/rules/array-callback-return.js create mode 100644 node_modules/eslint/lib/rules/array-element-newline.js create mode 100644 node_modules/eslint/lib/rules/arrow-body-style.js create mode 100644 node_modules/eslint/lib/rules/arrow-parens.js create mode 100644 node_modules/eslint/lib/rules/arrow-spacing.js create mode 100644 node_modules/eslint/lib/rules/block-scoped-var.js create mode 100644 node_modules/eslint/lib/rules/block-spacing.js create mode 100644 node_modules/eslint/lib/rules/brace-style.js create mode 100644 node_modules/eslint/lib/rules/callback-return.js create mode 100644 node_modules/eslint/lib/rules/camelcase.js create mode 100644 node_modules/eslint/lib/rules/capitalized-comments.js create mode 100644 node_modules/eslint/lib/rules/class-methods-use-this.js create mode 100644 node_modules/eslint/lib/rules/comma-dangle.js create mode 100644 node_modules/eslint/lib/rules/comma-spacing.js create mode 100644 node_modules/eslint/lib/rules/comma-style.js create mode 100644 node_modules/eslint/lib/rules/complexity.js create mode 100644 node_modules/eslint/lib/rules/computed-property-spacing.js create mode 100644 node_modules/eslint/lib/rules/consistent-return.js create mode 100644 node_modules/eslint/lib/rules/consistent-this.js create mode 100644 node_modules/eslint/lib/rules/constructor-super.js create mode 100644 node_modules/eslint/lib/rules/curly.js create mode 100644 node_modules/eslint/lib/rules/default-case-last.js create mode 100644 node_modules/eslint/lib/rules/default-case.js create mode 100644 node_modules/eslint/lib/rules/default-param-last.js create mode 100644 node_modules/eslint/lib/rules/dot-location.js create mode 100644 node_modules/eslint/lib/rules/dot-notation.js create mode 100644 node_modules/eslint/lib/rules/eol-last.js create mode 100644 node_modules/eslint/lib/rules/eqeqeq.js create mode 100644 node_modules/eslint/lib/rules/for-direction.js create mode 100644 node_modules/eslint/lib/rules/func-call-spacing.js create mode 100644 node_modules/eslint/lib/rules/func-name-matching.js create mode 100644 node_modules/eslint/lib/rules/func-names.js create mode 100644 node_modules/eslint/lib/rules/func-style.js create mode 100644 node_modules/eslint/lib/rules/function-call-argument-newline.js create mode 100644 node_modules/eslint/lib/rules/function-paren-newline.js create mode 100644 node_modules/eslint/lib/rules/generator-star-spacing.js create mode 100644 node_modules/eslint/lib/rules/getter-return.js create mode 100644 node_modules/eslint/lib/rules/global-require.js create mode 100644 node_modules/eslint/lib/rules/grouped-accessor-pairs.js create mode 100644 node_modules/eslint/lib/rules/guard-for-in.js create mode 100644 node_modules/eslint/lib/rules/handle-callback-err.js create mode 100644 node_modules/eslint/lib/rules/id-blacklist.js create mode 100644 node_modules/eslint/lib/rules/id-denylist.js create mode 100644 node_modules/eslint/lib/rules/id-length.js create mode 100644 node_modules/eslint/lib/rules/id-match.js create mode 100644 node_modules/eslint/lib/rules/implicit-arrow-linebreak.js create mode 100644 node_modules/eslint/lib/rules/indent-legacy.js create mode 100644 node_modules/eslint/lib/rules/indent.js create mode 100644 node_modules/eslint/lib/rules/index.js create mode 100644 node_modules/eslint/lib/rules/init-declarations.js create mode 100644 node_modules/eslint/lib/rules/jsx-quotes.js create mode 100644 node_modules/eslint/lib/rules/key-spacing.js create mode 100644 node_modules/eslint/lib/rules/keyword-spacing.js create mode 100644 node_modules/eslint/lib/rules/line-comment-position.js create mode 100644 node_modules/eslint/lib/rules/linebreak-style.js create mode 100644 node_modules/eslint/lib/rules/lines-around-comment.js create mode 100644 node_modules/eslint/lib/rules/lines-around-directive.js create mode 100644 node_modules/eslint/lib/rules/lines-between-class-members.js create mode 100644 node_modules/eslint/lib/rules/logical-assignment-operators.js create mode 100644 node_modules/eslint/lib/rules/max-classes-per-file.js create mode 100644 node_modules/eslint/lib/rules/max-depth.js create mode 100644 node_modules/eslint/lib/rules/max-len.js create mode 100644 node_modules/eslint/lib/rules/max-lines-per-function.js create mode 100644 node_modules/eslint/lib/rules/max-lines.js create mode 100644 node_modules/eslint/lib/rules/max-nested-callbacks.js create mode 100644 node_modules/eslint/lib/rules/max-params.js create mode 100644 node_modules/eslint/lib/rules/max-statements-per-line.js create mode 100644 node_modules/eslint/lib/rules/max-statements.js create mode 100644 node_modules/eslint/lib/rules/multiline-comment-style.js create mode 100644 node_modules/eslint/lib/rules/multiline-ternary.js create mode 100644 node_modules/eslint/lib/rules/new-cap.js create mode 100644 node_modules/eslint/lib/rules/new-parens.js create mode 100644 node_modules/eslint/lib/rules/newline-after-var.js create mode 100644 node_modules/eslint/lib/rules/newline-before-return.js create mode 100644 node_modules/eslint/lib/rules/newline-per-chained-call.js create mode 100644 node_modules/eslint/lib/rules/no-alert.js create mode 100644 node_modules/eslint/lib/rules/no-array-constructor.js create mode 100644 node_modules/eslint/lib/rules/no-async-promise-executor.js create mode 100644 node_modules/eslint/lib/rules/no-await-in-loop.js create mode 100644 node_modules/eslint/lib/rules/no-bitwise.js create mode 100644 node_modules/eslint/lib/rules/no-buffer-constructor.js create mode 100644 node_modules/eslint/lib/rules/no-caller.js create mode 100644 node_modules/eslint/lib/rules/no-case-declarations.js create mode 100644 node_modules/eslint/lib/rules/no-catch-shadow.js create mode 100644 node_modules/eslint/lib/rules/no-class-assign.js create mode 100644 node_modules/eslint/lib/rules/no-compare-neg-zero.js create mode 100644 node_modules/eslint/lib/rules/no-cond-assign.js create mode 100644 node_modules/eslint/lib/rules/no-confusing-arrow.js create mode 100644 node_modules/eslint/lib/rules/no-console.js create mode 100644 node_modules/eslint/lib/rules/no-const-assign.js create mode 100644 node_modules/eslint/lib/rules/no-constant-binary-expression.js create mode 100644 node_modules/eslint/lib/rules/no-constant-condition.js create mode 100644 node_modules/eslint/lib/rules/no-constructor-return.js create mode 100644 node_modules/eslint/lib/rules/no-continue.js create mode 100644 node_modules/eslint/lib/rules/no-control-regex.js create mode 100644 node_modules/eslint/lib/rules/no-debugger.js create mode 100644 node_modules/eslint/lib/rules/no-delete-var.js create mode 100644 node_modules/eslint/lib/rules/no-div-regex.js create mode 100644 node_modules/eslint/lib/rules/no-dupe-args.js create mode 100644 node_modules/eslint/lib/rules/no-dupe-class-members.js create mode 100644 node_modules/eslint/lib/rules/no-dupe-else-if.js create mode 100644 node_modules/eslint/lib/rules/no-dupe-keys.js create mode 100644 node_modules/eslint/lib/rules/no-duplicate-case.js create mode 100644 node_modules/eslint/lib/rules/no-duplicate-imports.js create mode 100644 node_modules/eslint/lib/rules/no-else-return.js create mode 100644 node_modules/eslint/lib/rules/no-empty-character-class.js create mode 100644 node_modules/eslint/lib/rules/no-empty-function.js create mode 100644 node_modules/eslint/lib/rules/no-empty-pattern.js create mode 100644 node_modules/eslint/lib/rules/no-empty.js create mode 100644 node_modules/eslint/lib/rules/no-eq-null.js create mode 100644 node_modules/eslint/lib/rules/no-eval.js create mode 100644 node_modules/eslint/lib/rules/no-ex-assign.js create mode 100644 node_modules/eslint/lib/rules/no-extend-native.js create mode 100644 node_modules/eslint/lib/rules/no-extra-bind.js create mode 100644 node_modules/eslint/lib/rules/no-extra-boolean-cast.js create mode 100644 node_modules/eslint/lib/rules/no-extra-label.js create mode 100644 node_modules/eslint/lib/rules/no-extra-parens.js create mode 100644 node_modules/eslint/lib/rules/no-extra-semi.js create mode 100644 node_modules/eslint/lib/rules/no-fallthrough.js create mode 100644 node_modules/eslint/lib/rules/no-floating-decimal.js create mode 100644 node_modules/eslint/lib/rules/no-func-assign.js create mode 100644 node_modules/eslint/lib/rules/no-global-assign.js create mode 100644 node_modules/eslint/lib/rules/no-implicit-coercion.js create mode 100644 node_modules/eslint/lib/rules/no-implicit-globals.js create mode 100644 node_modules/eslint/lib/rules/no-implied-eval.js create mode 100644 node_modules/eslint/lib/rules/no-import-assign.js create mode 100644 node_modules/eslint/lib/rules/no-inline-comments.js create mode 100644 node_modules/eslint/lib/rules/no-inner-declarations.js create mode 100644 node_modules/eslint/lib/rules/no-invalid-regexp.js create mode 100644 node_modules/eslint/lib/rules/no-invalid-this.js create mode 100644 node_modules/eslint/lib/rules/no-irregular-whitespace.js create mode 100644 node_modules/eslint/lib/rules/no-iterator.js create mode 100644 node_modules/eslint/lib/rules/no-label-var.js create mode 100644 node_modules/eslint/lib/rules/no-labels.js create mode 100644 node_modules/eslint/lib/rules/no-lone-blocks.js create mode 100644 node_modules/eslint/lib/rules/no-lonely-if.js create mode 100644 node_modules/eslint/lib/rules/no-loop-func.js create mode 100644 node_modules/eslint/lib/rules/no-loss-of-precision.js create mode 100644 node_modules/eslint/lib/rules/no-magic-numbers.js create mode 100644 node_modules/eslint/lib/rules/no-misleading-character-class.js create mode 100644 node_modules/eslint/lib/rules/no-mixed-operators.js create mode 100644 node_modules/eslint/lib/rules/no-mixed-requires.js create mode 100644 node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js create mode 100644 node_modules/eslint/lib/rules/no-multi-assign.js create mode 100644 node_modules/eslint/lib/rules/no-multi-spaces.js create mode 100644 node_modules/eslint/lib/rules/no-multi-str.js create mode 100644 node_modules/eslint/lib/rules/no-multiple-empty-lines.js create mode 100644 node_modules/eslint/lib/rules/no-native-reassign.js create mode 100644 node_modules/eslint/lib/rules/no-negated-condition.js create mode 100644 node_modules/eslint/lib/rules/no-negated-in-lhs.js create mode 100644 node_modules/eslint/lib/rules/no-nested-ternary.js create mode 100644 node_modules/eslint/lib/rules/no-new-func.js create mode 100644 node_modules/eslint/lib/rules/no-new-object.js create mode 100644 node_modules/eslint/lib/rules/no-new-require.js create mode 100644 node_modules/eslint/lib/rules/no-new-symbol.js create mode 100644 node_modules/eslint/lib/rules/no-new-wrappers.js create mode 100644 node_modules/eslint/lib/rules/no-new.js create mode 100644 node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js create mode 100644 node_modules/eslint/lib/rules/no-obj-calls.js create mode 100644 node_modules/eslint/lib/rules/no-octal-escape.js create mode 100644 node_modules/eslint/lib/rules/no-octal.js create mode 100644 node_modules/eslint/lib/rules/no-param-reassign.js create mode 100644 node_modules/eslint/lib/rules/no-path-concat.js create mode 100644 node_modules/eslint/lib/rules/no-plusplus.js create mode 100644 node_modules/eslint/lib/rules/no-process-env.js create mode 100644 node_modules/eslint/lib/rules/no-process-exit.js create mode 100644 node_modules/eslint/lib/rules/no-promise-executor-return.js create mode 100644 node_modules/eslint/lib/rules/no-proto.js create mode 100644 node_modules/eslint/lib/rules/no-prototype-builtins.js create mode 100644 node_modules/eslint/lib/rules/no-redeclare.js create mode 100644 node_modules/eslint/lib/rules/no-regex-spaces.js create mode 100644 node_modules/eslint/lib/rules/no-restricted-exports.js create mode 100644 node_modules/eslint/lib/rules/no-restricted-globals.js create mode 100644 node_modules/eslint/lib/rules/no-restricted-imports.js create mode 100644 node_modules/eslint/lib/rules/no-restricted-modules.js create mode 100644 node_modules/eslint/lib/rules/no-restricted-properties.js create mode 100644 node_modules/eslint/lib/rules/no-restricted-syntax.js create mode 100644 node_modules/eslint/lib/rules/no-return-assign.js create mode 100644 node_modules/eslint/lib/rules/no-return-await.js create mode 100644 node_modules/eslint/lib/rules/no-script-url.js create mode 100644 node_modules/eslint/lib/rules/no-self-assign.js create mode 100644 node_modules/eslint/lib/rules/no-self-compare.js create mode 100644 node_modules/eslint/lib/rules/no-sequences.js create mode 100644 node_modules/eslint/lib/rules/no-setter-return.js create mode 100644 node_modules/eslint/lib/rules/no-shadow-restricted-names.js create mode 100644 node_modules/eslint/lib/rules/no-shadow.js create mode 100644 node_modules/eslint/lib/rules/no-spaced-func.js create mode 100644 node_modules/eslint/lib/rules/no-sparse-arrays.js create mode 100644 node_modules/eslint/lib/rules/no-sync.js create mode 100644 node_modules/eslint/lib/rules/no-tabs.js create mode 100644 node_modules/eslint/lib/rules/no-template-curly-in-string.js create mode 100644 node_modules/eslint/lib/rules/no-ternary.js create mode 100644 node_modules/eslint/lib/rules/no-this-before-super.js create mode 100644 node_modules/eslint/lib/rules/no-throw-literal.js create mode 100644 node_modules/eslint/lib/rules/no-trailing-spaces.js create mode 100644 node_modules/eslint/lib/rules/no-undef-init.js create mode 100644 node_modules/eslint/lib/rules/no-undef.js create mode 100644 node_modules/eslint/lib/rules/no-undefined.js create mode 100644 node_modules/eslint/lib/rules/no-underscore-dangle.js create mode 100644 node_modules/eslint/lib/rules/no-unexpected-multiline.js create mode 100644 node_modules/eslint/lib/rules/no-unmodified-loop-condition.js create mode 100644 node_modules/eslint/lib/rules/no-unneeded-ternary.js create mode 100644 node_modules/eslint/lib/rules/no-unreachable-loop.js create mode 100644 node_modules/eslint/lib/rules/no-unreachable.js create mode 100644 node_modules/eslint/lib/rules/no-unsafe-finally.js create mode 100644 node_modules/eslint/lib/rules/no-unsafe-negation.js create mode 100644 node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js create mode 100644 node_modules/eslint/lib/rules/no-unused-expressions.js create mode 100644 node_modules/eslint/lib/rules/no-unused-labels.js create mode 100644 node_modules/eslint/lib/rules/no-unused-private-class-members.js create mode 100644 node_modules/eslint/lib/rules/no-unused-vars.js create mode 100644 node_modules/eslint/lib/rules/no-use-before-define.js create mode 100644 node_modules/eslint/lib/rules/no-useless-backreference.js create mode 100644 node_modules/eslint/lib/rules/no-useless-call.js create mode 100644 node_modules/eslint/lib/rules/no-useless-catch.js create mode 100644 node_modules/eslint/lib/rules/no-useless-computed-key.js create mode 100644 node_modules/eslint/lib/rules/no-useless-concat.js create mode 100644 node_modules/eslint/lib/rules/no-useless-constructor.js create mode 100644 node_modules/eslint/lib/rules/no-useless-escape.js create mode 100644 node_modules/eslint/lib/rules/no-useless-rename.js create mode 100644 node_modules/eslint/lib/rules/no-useless-return.js create mode 100644 node_modules/eslint/lib/rules/no-var.js create mode 100644 node_modules/eslint/lib/rules/no-void.js create mode 100644 node_modules/eslint/lib/rules/no-warning-comments.js create mode 100644 node_modules/eslint/lib/rules/no-whitespace-before-property.js create mode 100644 node_modules/eslint/lib/rules/no-with.js create mode 100644 node_modules/eslint/lib/rules/nonblock-statement-body-position.js create mode 100644 node_modules/eslint/lib/rules/object-curly-newline.js create mode 100644 node_modules/eslint/lib/rules/object-curly-spacing.js create mode 100644 node_modules/eslint/lib/rules/object-property-newline.js create mode 100644 node_modules/eslint/lib/rules/object-shorthand.js create mode 100644 node_modules/eslint/lib/rules/one-var-declaration-per-line.js create mode 100644 node_modules/eslint/lib/rules/one-var.js create mode 100644 node_modules/eslint/lib/rules/operator-assignment.js create mode 100644 node_modules/eslint/lib/rules/operator-linebreak.js create mode 100644 node_modules/eslint/lib/rules/padded-blocks.js create mode 100644 node_modules/eslint/lib/rules/padding-line-between-statements.js create mode 100644 node_modules/eslint/lib/rules/prefer-arrow-callback.js create mode 100644 node_modules/eslint/lib/rules/prefer-const.js create mode 100644 node_modules/eslint/lib/rules/prefer-destructuring.js create mode 100644 node_modules/eslint/lib/rules/prefer-exponentiation-operator.js create mode 100644 node_modules/eslint/lib/rules/prefer-named-capture-group.js create mode 100644 node_modules/eslint/lib/rules/prefer-numeric-literals.js create mode 100644 node_modules/eslint/lib/rules/prefer-object-has-own.js create mode 100644 node_modules/eslint/lib/rules/prefer-object-spread.js create mode 100644 node_modules/eslint/lib/rules/prefer-promise-reject-errors.js create mode 100644 node_modules/eslint/lib/rules/prefer-reflect.js create mode 100644 node_modules/eslint/lib/rules/prefer-regex-literals.js create mode 100644 node_modules/eslint/lib/rules/prefer-rest-params.js create mode 100644 node_modules/eslint/lib/rules/prefer-spread.js create mode 100644 node_modules/eslint/lib/rules/prefer-template.js create mode 100644 node_modules/eslint/lib/rules/quote-props.js create mode 100644 node_modules/eslint/lib/rules/quotes.js create mode 100644 node_modules/eslint/lib/rules/radix.js create mode 100644 node_modules/eslint/lib/rules/require-atomic-updates.js create mode 100644 node_modules/eslint/lib/rules/require-await.js create mode 100644 node_modules/eslint/lib/rules/require-jsdoc.js create mode 100644 node_modules/eslint/lib/rules/require-unicode-regexp.js create mode 100644 node_modules/eslint/lib/rules/require-yield.js create mode 100644 node_modules/eslint/lib/rules/rest-spread-spacing.js create mode 100644 node_modules/eslint/lib/rules/semi-spacing.js create mode 100644 node_modules/eslint/lib/rules/semi-style.js create mode 100644 node_modules/eslint/lib/rules/semi.js create mode 100644 node_modules/eslint/lib/rules/sort-imports.js create mode 100644 node_modules/eslint/lib/rules/sort-keys.js create mode 100644 node_modules/eslint/lib/rules/sort-vars.js create mode 100644 node_modules/eslint/lib/rules/space-before-blocks.js create mode 100644 node_modules/eslint/lib/rules/space-before-function-paren.js create mode 100644 node_modules/eslint/lib/rules/space-in-parens.js create mode 100644 node_modules/eslint/lib/rules/space-infix-ops.js create mode 100644 node_modules/eslint/lib/rules/space-unary-ops.js create mode 100644 node_modules/eslint/lib/rules/spaced-comment.js create mode 100644 node_modules/eslint/lib/rules/strict.js create mode 100644 node_modules/eslint/lib/rules/switch-colon-spacing.js create mode 100644 node_modules/eslint/lib/rules/symbol-description.js create mode 100644 node_modules/eslint/lib/rules/template-curly-spacing.js create mode 100644 node_modules/eslint/lib/rules/template-tag-spacing.js create mode 100644 node_modules/eslint/lib/rules/unicode-bom.js create mode 100644 node_modules/eslint/lib/rules/use-isnan.js create mode 100644 node_modules/eslint/lib/rules/utils/ast-utils.js create mode 100644 node_modules/eslint/lib/rules/utils/fix-tracker.js create mode 100644 node_modules/eslint/lib/rules/utils/keywords.js create mode 100644 node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js create mode 100644 node_modules/eslint/lib/rules/utils/patterns/letters.js create mode 100644 node_modules/eslint/lib/rules/utils/unicode/index.js create mode 100644 node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js create mode 100644 node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js create mode 100644 node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js create mode 100644 node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js create mode 100644 node_modules/eslint/lib/rules/valid-jsdoc.js create mode 100644 node_modules/eslint/lib/rules/valid-typeof.js create mode 100644 node_modules/eslint/lib/rules/vars-on-top.js create mode 100644 node_modules/eslint/lib/rules/wrap-iife.js create mode 100644 node_modules/eslint/lib/rules/wrap-regex.js create mode 100644 node_modules/eslint/lib/rules/yield-star-spacing.js create mode 100644 node_modules/eslint/lib/rules/yoda.js create mode 100644 node_modules/eslint/lib/shared/ajv.js create mode 100644 node_modules/eslint/lib/shared/ast-utils.js create mode 100644 node_modules/eslint/lib/shared/config-validator.js create mode 100644 node_modules/eslint/lib/shared/deprecation-warnings.js create mode 100644 node_modules/eslint/lib/shared/logging.js create mode 100644 node_modules/eslint/lib/shared/relative-module-resolver.js create mode 100644 node_modules/eslint/lib/shared/runtime-info.js create mode 100644 node_modules/eslint/lib/shared/string-utils.js create mode 100644 node_modules/eslint/lib/shared/traverser.js create mode 100644 node_modules/eslint/lib/shared/types.js create mode 100644 node_modules/eslint/lib/source-code/index.js create mode 100644 node_modules/eslint/lib/source-code/source-code.js create mode 100644 node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/cursors.js create mode 100644 node_modules/eslint/lib/source-code/token-store/decorative-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/filter-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/index.js create mode 100644 node_modules/eslint/lib/source-code/token-store/limit-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/skip-cursor.js create mode 100644 node_modules/eslint/lib/source-code/token-store/utils.js create mode 100644 node_modules/eslint/lib/unsupported-api.js create mode 100644 node_modules/eslint/messages/all-files-ignored.js create mode 100644 node_modules/eslint/messages/extend-config-missing.js create mode 100644 node_modules/eslint/messages/failed-to-read-json.js create mode 100644 node_modules/eslint/messages/file-not-found.js create mode 100644 node_modules/eslint/messages/no-config-found.js create mode 100644 node_modules/eslint/messages/plugin-conflict.js create mode 100644 node_modules/eslint/messages/plugin-invalid.js create mode 100644 node_modules/eslint/messages/plugin-missing.js create mode 100644 node_modules/eslint/messages/print-config-with-directory-path.js create mode 100644 node_modules/eslint/messages/whitespace-found.js create mode 100644 node_modules/eslint/package.json create mode 100644 node_modules/espree/LICENSE create mode 100644 node_modules/espree/README.md create mode 100644 node_modules/espree/dist/espree.cjs create mode 100644 node_modules/espree/espree.js create mode 100644 node_modules/espree/lib/espree.js create mode 100644 node_modules/espree/lib/features.js create mode 100644 node_modules/espree/lib/options.js create mode 100644 node_modules/espree/lib/token-translator.js create mode 100644 node_modules/espree/lib/version.js create mode 100644 node_modules/espree/package.json create mode 100644 node_modules/esquery/README.md create mode 100644 node_modules/esquery/dist/esquery.esm.js create mode 100644 node_modules/esquery/dist/esquery.esm.min.js create mode 100644 node_modules/esquery/dist/esquery.esm.min.js.map create mode 100644 node_modules/esquery/dist/esquery.js create mode 100644 node_modules/esquery/dist/esquery.lite.js create mode 100644 node_modules/esquery/dist/esquery.lite.min.js create mode 100644 node_modules/esquery/dist/esquery.lite.min.js.map create mode 100644 node_modules/esquery/dist/esquery.min.js create mode 100644 node_modules/esquery/dist/esquery.min.js.map create mode 100644 node_modules/esquery/license.txt create mode 100644 node_modules/esquery/package.json create mode 100644 node_modules/esquery/parser.js create mode 100644 node_modules/esrecurse/.babelrc create mode 100644 node_modules/esrecurse/README.md create mode 100644 node_modules/esrecurse/esrecurse.js create mode 100644 node_modules/esrecurse/gulpfile.babel.js create mode 100755 node_modules/esrecurse/package.json create mode 100644 node_modules/estraverse/.jshintrc create mode 100644 node_modules/estraverse/LICENSE.BSD create mode 100644 node_modules/estraverse/README.md create mode 100644 node_modules/estraverse/estraverse.js create mode 100644 node_modules/estraverse/gulpfile.js create mode 100644 node_modules/estraverse/package.json create mode 100644 node_modules/esutils/LICENSE.BSD create mode 100644 node_modules/esutils/README.md create mode 100644 node_modules/esutils/lib/ast.js create mode 100644 node_modules/esutils/lib/code.js create mode 100644 node_modules/esutils/lib/keyword.js create mode 100644 node_modules/esutils/lib/utils.js create mode 100644 node_modules/esutils/package.json create mode 100644 node_modules/fast-deep-equal/LICENSE create mode 100644 node_modules/fast-deep-equal/README.md create mode 100644 node_modules/fast-deep-equal/es6/index.d.ts create mode 100644 node_modules/fast-deep-equal/es6/index.js create mode 100644 node_modules/fast-deep-equal/es6/react.d.ts create mode 100644 node_modules/fast-deep-equal/es6/react.js create mode 100644 node_modules/fast-deep-equal/index.d.ts create mode 100644 node_modules/fast-deep-equal/index.js create mode 100644 node_modules/fast-deep-equal/package.json create mode 100644 node_modules/fast-deep-equal/react.d.ts create mode 100644 node_modules/fast-deep-equal/react.js create mode 100644 node_modules/fast-diff/.travis.yml create mode 100644 node_modules/fast-diff/README.md create mode 100644 node_modules/fast-diff/diff.d.ts create mode 100644 node_modules/fast-diff/diff.js create mode 100644 node_modules/fast-diff/package.json create mode 100644 node_modules/fast-diff/test.js create mode 100644 node_modules/fast-glob/LICENSE create mode 100644 node_modules/fast-glob/README.md create mode 100644 node_modules/fast-glob/node_modules/glob-parent/CHANGELOG.md create mode 100644 node_modules/fast-glob/node_modules/glob-parent/LICENSE create mode 100644 node_modules/fast-glob/node_modules/glob-parent/README.md create mode 100644 node_modules/fast-glob/node_modules/glob-parent/index.js create mode 100644 node_modules/fast-glob/node_modules/glob-parent/package.json create mode 100644 node_modules/fast-glob/out/index.d.ts create mode 100644 node_modules/fast-glob/out/index.js create mode 100644 node_modules/fast-glob/out/managers/patterns.d.ts create mode 100644 node_modules/fast-glob/out/managers/patterns.js create mode 100644 node_modules/fast-glob/out/managers/tasks.d.ts create mode 100644 node_modules/fast-glob/out/managers/tasks.js create mode 100644 node_modules/fast-glob/out/providers/async.d.ts create mode 100644 node_modules/fast-glob/out/providers/async.js create mode 100644 node_modules/fast-glob/out/providers/filters/deep.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/deep.js create mode 100644 node_modules/fast-glob/out/providers/filters/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/entry.js create mode 100644 node_modules/fast-glob/out/providers/filters/error.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/error.js create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.js create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.js create mode 100644 node_modules/fast-glob/out/providers/provider.d.ts create mode 100644 node_modules/fast-glob/out/providers/provider.js create mode 100644 node_modules/fast-glob/out/providers/stream.d.ts create mode 100644 node_modules/fast-glob/out/providers/stream.js create mode 100644 node_modules/fast-glob/out/providers/sync.d.ts create mode 100644 node_modules/fast-glob/out/providers/sync.js create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.js create mode 100644 node_modules/fast-glob/out/readers/async.d.ts create mode 100644 node_modules/fast-glob/out/readers/async.js create mode 100644 node_modules/fast-glob/out/readers/reader.d.ts create mode 100644 node_modules/fast-glob/out/readers/reader.js create mode 100644 node_modules/fast-glob/out/readers/stream.d.ts create mode 100644 node_modules/fast-glob/out/readers/stream.js create mode 100644 node_modules/fast-glob/out/readers/sync.d.ts create mode 100644 node_modules/fast-glob/out/readers/sync.js create mode 100644 node_modules/fast-glob/out/settings.d.ts create mode 100644 node_modules/fast-glob/out/settings.js create mode 100644 node_modules/fast-glob/out/types/index.d.ts create mode 100644 node_modules/fast-glob/out/types/index.js create mode 100644 node_modules/fast-glob/out/utils/array.d.ts create mode 100644 node_modules/fast-glob/out/utils/array.js create mode 100644 node_modules/fast-glob/out/utils/errno.d.ts create mode 100644 node_modules/fast-glob/out/utils/errno.js create mode 100644 node_modules/fast-glob/out/utils/fs.d.ts create mode 100644 node_modules/fast-glob/out/utils/fs.js create mode 100644 node_modules/fast-glob/out/utils/index.d.ts create mode 100644 node_modules/fast-glob/out/utils/index.js create mode 100644 node_modules/fast-glob/out/utils/path.d.ts create mode 100644 node_modules/fast-glob/out/utils/path.js create mode 100644 node_modules/fast-glob/out/utils/pattern.d.ts create mode 100644 node_modules/fast-glob/out/utils/pattern.js create mode 100644 node_modules/fast-glob/out/utils/stream.d.ts create mode 100644 node_modules/fast-glob/out/utils/stream.js create mode 100644 node_modules/fast-glob/out/utils/string.d.ts create mode 100644 node_modules/fast-glob/out/utils/string.js create mode 100644 node_modules/fast-glob/package.json create mode 100644 node_modules/fast-json-stable-stringify/.eslintrc.yml create mode 100644 node_modules/fast-json-stable-stringify/.github/FUNDING.yml create mode 100644 node_modules/fast-json-stable-stringify/.travis.yml create mode 100644 node_modules/fast-json-stable-stringify/LICENSE create mode 100644 node_modules/fast-json-stable-stringify/README.md create mode 100644 node_modules/fast-json-stable-stringify/benchmark/index.js create mode 100644 node_modules/fast-json-stable-stringify/benchmark/test.json create mode 100644 node_modules/fast-json-stable-stringify/example/key_cmp.js create mode 100644 node_modules/fast-json-stable-stringify/example/nested.js create mode 100644 node_modules/fast-json-stable-stringify/example/str.js create mode 100644 node_modules/fast-json-stable-stringify/example/value_cmp.js create mode 100644 node_modules/fast-json-stable-stringify/index.d.ts create mode 100644 node_modules/fast-json-stable-stringify/index.js create mode 100644 node_modules/fast-json-stable-stringify/package.json create mode 100644 node_modules/fast-json-stable-stringify/test/cmp.js create mode 100644 node_modules/fast-json-stable-stringify/test/nested.js create mode 100644 node_modules/fast-json-stable-stringify/test/str.js create mode 100644 node_modules/fast-json-stable-stringify/test/to-json.js create mode 100644 node_modules/fast-levenshtein/LICENSE.md create mode 100644 node_modules/fast-levenshtein/README.md create mode 100644 node_modules/fast-levenshtein/levenshtein.js create mode 100644 node_modules/fast-levenshtein/package.json create mode 100644 node_modules/fastq/.github/dependabot.yml create mode 100644 node_modules/fastq/.github/workflows/ci.yml create mode 100644 node_modules/fastq/LICENSE create mode 100644 node_modules/fastq/README.md create mode 100644 node_modules/fastq/bench.js create mode 100644 node_modules/fastq/example.js create mode 100644 node_modules/fastq/example.mjs create mode 100644 node_modules/fastq/index.d.ts create mode 100644 node_modules/fastq/package.json create mode 100644 node_modules/fastq/queue.js create mode 100644 node_modules/fastq/test/example.ts create mode 100644 node_modules/fastq/test/promise.js create mode 100644 node_modules/fastq/test/test.js create mode 100644 node_modules/fastq/test/tsconfig.json create mode 100644 node_modules/file-entry-cache/LICENSE create mode 100644 node_modules/file-entry-cache/README.md create mode 100644 node_modules/file-entry-cache/cache.js create mode 100644 node_modules/file-entry-cache/changelog.md create mode 100644 node_modules/file-entry-cache/package.json create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/find-up/index.d.ts create mode 100644 node_modules/find-up/index.js create mode 100644 node_modules/find-up/license create mode 100644 node_modules/find-up/package.json create mode 100644 node_modules/find-up/readme.md create mode 100644 node_modules/flat-cache/LICENSE create mode 100644 node_modules/flat-cache/README.md create mode 100644 node_modules/flat-cache/changelog.md create mode 100644 node_modules/flat-cache/package.json create mode 100644 node_modules/flat-cache/src/cache.js create mode 100644 node_modules/flat-cache/src/del.js create mode 100644 node_modules/flat-cache/src/utils.js create mode 100644 node_modules/flatted/LICENSE create mode 100644 node_modules/flatted/README.md create mode 100644 node_modules/flatted/cjs/index.js create mode 100644 node_modules/flatted/cjs/package.json create mode 100644 node_modules/flatted/es.js create mode 100644 node_modules/flatted/esm.js create mode 100644 node_modules/flatted/esm/index.js create mode 100644 node_modules/flatted/index.js create mode 100644 node_modules/flatted/min.js create mode 100644 node_modules/flatted/package.json create mode 100644 node_modules/flatted/php/flatted.php create mode 100644 node_modules/flatted/types.d.ts create mode 100644 node_modules/fs.realpath/LICENSE create mode 100644 node_modules/fs.realpath/README.md create mode 100644 node_modules/fs.realpath/index.js create mode 100644 node_modules/fs.realpath/old.js create mode 100644 node_modules/fs.realpath/package.json create mode 100644 node_modules/glob-parent/LICENSE create mode 100644 node_modules/glob-parent/README.md create mode 100644 node_modules/glob-parent/index.js create mode 100644 node_modules/glob-parent/package.json create mode 100644 node_modules/glob/LICENSE create mode 100644 node_modules/glob/README.md create mode 100644 node_modules/glob/common.js create mode 100644 node_modules/glob/glob.js create mode 100644 node_modules/glob/package.json create mode 100644 node_modules/glob/sync.js create mode 100644 node_modules/globals/globals.json create mode 100644 node_modules/globals/index.d.ts create mode 100644 node_modules/globals/index.js create mode 100644 node_modules/globals/license create mode 100644 node_modules/globals/package.json create mode 100644 node_modules/globals/readme.md create mode 100644 node_modules/globby/gitignore.js create mode 100644 node_modules/globby/index.d.ts create mode 100644 node_modules/globby/index.js create mode 100644 node_modules/globby/license create mode 100644 node_modules/globby/package.json create mode 100644 node_modules/globby/readme.md create mode 100644 node_modules/globby/stream-utils.js create mode 100644 node_modules/grapheme-splitter/LICENSE create mode 100644 node_modules/grapheme-splitter/README.md create mode 100644 node_modules/grapheme-splitter/index.d.ts create mode 100644 node_modules/grapheme-splitter/index.js create mode 100644 node_modules/grapheme-splitter/package.json create mode 100644 node_modules/grapheme-splitter/tests/GraphemeBreakTest.txt create mode 100644 node_modules/grapheme-splitter/tests/grapheme_splitter_tests.js create mode 100644 node_modules/has-flag/index.d.ts create mode 100644 node_modules/has-flag/index.js create mode 100644 node_modules/has-flag/license create mode 100644 node_modules/has-flag/package.json create mode 100644 node_modules/has-flag/readme.md create mode 100644 node_modules/ignore/LICENSE-MIT create mode 100644 node_modules/ignore/README.md create mode 100644 node_modules/ignore/index.d.ts create mode 100644 node_modules/ignore/index.js create mode 100644 node_modules/ignore/legacy.js create mode 100644 node_modules/ignore/package.json create mode 100644 node_modules/import-fresh/index.d.ts create mode 100644 node_modules/import-fresh/index.js create mode 100644 node_modules/import-fresh/license create mode 100644 node_modules/import-fresh/package.json create mode 100644 node_modules/import-fresh/readme.md create mode 100644 node_modules/imurmurhash/README.md create mode 100644 node_modules/imurmurhash/imurmurhash.js create mode 100644 node_modules/imurmurhash/imurmurhash.min.js create mode 100644 node_modules/imurmurhash/package.json create mode 100644 node_modules/inflight/LICENSE create mode 100644 node_modules/inflight/README.md create mode 100644 node_modules/inflight/inflight.js create mode 100644 node_modules/inflight/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/is-plain-object/LICENSE create mode 100644 node_modules/is-plain-object/README.md create mode 100644 node_modules/is-plain-object/dist/is-plain-object.js create mode 100644 node_modules/is-plain-object/dist/is-plain-object.mjs create mode 100644 node_modules/is-plain-object/is-plain-object.d.ts create mode 100644 node_modules/is-plain-object/package.json create mode 100644 node_modules/isexe/.npmignore create mode 100644 node_modules/isexe/LICENSE create mode 100644 node_modules/isexe/README.md create mode 100644 node_modules/isexe/index.js create mode 100644 node_modules/isexe/mode.js create mode 100644 node_modules/isexe/package.json create mode 100644 node_modules/isexe/test/basic.js create mode 100644 node_modules/isexe/windows.js create mode 100644 node_modules/js-sdsl/CHANGELOG.md create mode 100644 node_modules/js-sdsl/LICENSE create mode 100644 node_modules/js-sdsl/README.md create mode 100644 node_modules/js-sdsl/README.zh-CN.md create mode 100644 node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.js create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.js create mode 100644 node_modules/js-sdsl/dist/cjs/index.d.ts create mode 100644 node_modules/js-sdsl/dist/cjs/index.js create mode 100644 node_modules/js-sdsl/dist/esm/container/ContainerBase/index.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/ContainerBase/index.js create mode 100644 node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.js create mode 100644 node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.js create mode 100644 node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.js create mode 100644 node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.js create mode 100644 node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.js create mode 100644 node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.js create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.js create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.js create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.js create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.js create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.js create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.js create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.js create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.js create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.js create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.js create mode 100644 node_modules/js-sdsl/dist/esm/index.d.ts create mode 100644 node_modules/js-sdsl/dist/esm/index.js create mode 100644 node_modules/js-sdsl/dist/umd/js-sdsl.js create mode 100644 node_modules/js-sdsl/dist/umd/js-sdsl.min.js create mode 100644 node_modules/js-sdsl/dist/umd/js-sdsl.min.js.map create mode 100644 node_modules/js-sdsl/package.json create mode 100644 node_modules/js-yaml/CHANGELOG.md create mode 100644 node_modules/js-yaml/LICENSE create mode 100644 node_modules/js-yaml/README.md create mode 100755 node_modules/js-yaml/bin/js-yaml.js create mode 100644 node_modules/js-yaml/dist/js-yaml.js create mode 100644 node_modules/js-yaml/dist/js-yaml.min.js create mode 100644 node_modules/js-yaml/dist/js-yaml.mjs create mode 100644 node_modules/js-yaml/index.js create mode 100644 node_modules/js-yaml/lib/common.js create mode 100644 node_modules/js-yaml/lib/dumper.js create mode 100644 node_modules/js-yaml/lib/exception.js create mode 100644 node_modules/js-yaml/lib/loader.js create mode 100644 node_modules/js-yaml/lib/schema.js create mode 100644 node_modules/js-yaml/lib/schema/core.js create mode 100644 node_modules/js-yaml/lib/schema/default.js create mode 100644 node_modules/js-yaml/lib/schema/failsafe.js create mode 100644 node_modules/js-yaml/lib/schema/json.js create mode 100644 node_modules/js-yaml/lib/snippet.js create mode 100644 node_modules/js-yaml/lib/type.js create mode 100644 node_modules/js-yaml/lib/type/binary.js create mode 100644 node_modules/js-yaml/lib/type/bool.js create mode 100644 node_modules/js-yaml/lib/type/float.js create mode 100644 node_modules/js-yaml/lib/type/int.js create mode 100644 node_modules/js-yaml/lib/type/map.js create mode 100644 node_modules/js-yaml/lib/type/merge.js create mode 100644 node_modules/js-yaml/lib/type/null.js create mode 100644 node_modules/js-yaml/lib/type/omap.js create mode 100644 node_modules/js-yaml/lib/type/pairs.js create mode 100644 node_modules/js-yaml/lib/type/seq.js create mode 100644 node_modules/js-yaml/lib/type/set.js create mode 100644 node_modules/js-yaml/lib/type/str.js create mode 100644 node_modules/js-yaml/lib/type/timestamp.js create mode 100644 node_modules/js-yaml/package.json create mode 100644 node_modules/json-schema-traverse/.eslintrc.yml create mode 100644 node_modules/json-schema-traverse/.travis.yml create mode 100644 node_modules/json-schema-traverse/LICENSE create mode 100644 node_modules/json-schema-traverse/README.md create mode 100644 node_modules/json-schema-traverse/index.js create mode 100644 node_modules/json-schema-traverse/package.json create mode 100644 node_modules/json-schema-traverse/spec/.eslintrc.yml create mode 100644 node_modules/json-schema-traverse/spec/fixtures/schema.js create mode 100644 node_modules/json-schema-traverse/spec/index.spec.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/.npmignore create mode 100644 node_modules/json-stable-stringify-without-jsonify/.travis.yml create mode 100644 node_modules/json-stable-stringify-without-jsonify/LICENSE create mode 100644 node_modules/json-stable-stringify-without-jsonify/example/key_cmp.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/example/nested.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/example/str.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/index.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/package.json create mode 100644 node_modules/json-stable-stringify-without-jsonify/readme.markdown create mode 100644 node_modules/json-stable-stringify-without-jsonify/test/cmp.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/test/nested.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/test/replacer.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/test/space.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/test/str.js create mode 100644 node_modules/json-stable-stringify-without-jsonify/test/to-json.js create mode 100644 node_modules/levn/LICENSE create mode 100644 node_modules/levn/README.md create mode 100644 node_modules/levn/lib/cast.js create mode 100644 node_modules/levn/lib/index.js create mode 100644 node_modules/levn/lib/parse-string.js create mode 100644 node_modules/levn/package.json create mode 100644 node_modules/locate-path/index.d.ts create mode 100644 node_modules/locate-path/index.js create mode 100644 node_modules/locate-path/license create mode 100644 node_modules/locate-path/package.json create mode 100644 node_modules/locate-path/readme.md create mode 100644 node_modules/lodash.merge/LICENSE create mode 100644 node_modules/lodash.merge/README.md create mode 100644 node_modules/lodash.merge/index.js create mode 100644 node_modules/lodash.merge/package.json create mode 100644 node_modules/merge2/LICENSE create mode 100644 node_modules/merge2/README.md create mode 100644 node_modules/merge2/index.js create mode 100644 node_modules/merge2/package.json create mode 100755 node_modules/micromatch/LICENSE create mode 100644 node_modules/micromatch/README.md create mode 100644 node_modules/micromatch/index.js create mode 100644 node_modules/micromatch/package.json create mode 100644 node_modules/minimatch/LICENSE create mode 100644 node_modules/minimatch/README.md create mode 100644 node_modules/minimatch/minimatch.js create mode 100644 node_modules/minimatch/package.json create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/natural-compare/README.md create mode 100644 node_modules/natural-compare/index.js create mode 100644 node_modules/natural-compare/package.json create mode 100644 node_modules/node-fetch/LICENSE.md create mode 100644 node_modules/node-fetch/README.md create mode 100644 node_modules/node-fetch/browser.js create mode 100644 node_modules/node-fetch/lib/index.es.js create mode 100644 node_modules/node-fetch/lib/index.js create mode 100644 node_modules/node-fetch/lib/index.mjs create mode 100644 node_modules/node-fetch/package.json create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/optionator/CHANGELOG.md create mode 100644 node_modules/optionator/LICENSE create mode 100644 node_modules/optionator/README.md create mode 100644 node_modules/optionator/lib/help.js create mode 100644 node_modules/optionator/lib/index.js create mode 100644 node_modules/optionator/lib/util.js create mode 100644 node_modules/optionator/package.json create mode 100644 node_modules/p-limit/index.d.ts create mode 100644 node_modules/p-limit/index.js create mode 100644 node_modules/p-limit/license create mode 100644 node_modules/p-limit/package.json create mode 100644 node_modules/p-limit/readme.md create mode 100644 node_modules/p-locate/index.d.ts create mode 100644 node_modules/p-locate/index.js create mode 100644 node_modules/p-locate/license create mode 100644 node_modules/p-locate/package.json create mode 100644 node_modules/p-locate/readme.md create mode 100644 node_modules/parent-module/index.js create mode 100644 node_modules/parent-module/license create mode 100644 node_modules/parent-module/package.json create mode 100644 node_modules/parent-module/readme.md create mode 100644 node_modules/path-exists/index.d.ts create mode 100644 node_modules/path-exists/index.js create mode 100644 node_modules/path-exists/license create mode 100644 node_modules/path-exists/package.json create mode 100644 node_modules/path-exists/readme.md create mode 100644 node_modules/path-is-absolute/index.js create mode 100644 node_modules/path-is-absolute/license create mode 100644 node_modules/path-is-absolute/package.json create mode 100644 node_modules/path-is-absolute/readme.md create mode 100644 node_modules/path-key/index.d.ts create mode 100644 node_modules/path-key/index.js create mode 100644 node_modules/path-key/license create mode 100644 node_modules/path-key/package.json create mode 100644 node_modules/path-key/readme.md create mode 100644 node_modules/path-type/index.d.ts create mode 100644 node_modules/path-type/index.js create mode 100644 node_modules/path-type/license create mode 100644 node_modules/path-type/package.json create mode 100644 node_modules/path-type/readme.md create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/prelude-ls/CHANGELOG.md create mode 100644 node_modules/prelude-ls/LICENSE create mode 100644 node_modules/prelude-ls/README.md create mode 100644 node_modules/prelude-ls/lib/Func.js create mode 100644 node_modules/prelude-ls/lib/List.js create mode 100644 node_modules/prelude-ls/lib/Num.js create mode 100644 node_modules/prelude-ls/lib/Obj.js create mode 100644 node_modules/prelude-ls/lib/Str.js create mode 100644 node_modules/prelude-ls/lib/index.js create mode 100644 node_modules/prelude-ls/package.json create mode 100644 node_modules/prettier-linter-helpers/.editorconfig create mode 100644 node_modules/prettier-linter-helpers/.eslintignore create mode 100644 node_modules/prettier-linter-helpers/.eslintrc.js create mode 100644 node_modules/prettier-linter-helpers/.github/CONTRIBUTING.md create mode 100644 node_modules/prettier-linter-helpers/.prettierignore create mode 100644 node_modules/prettier-linter-helpers/.prettierrc create mode 100644 node_modules/prettier-linter-helpers/.vscode/settings.json create mode 100644 node_modules/prettier-linter-helpers/LICENSE.md create mode 100644 node_modules/prettier-linter-helpers/README.md create mode 100644 node_modules/prettier-linter-helpers/index.js create mode 100644 node_modules/prettier-linter-helpers/package.json create mode 100644 node_modules/prettier-linter-helpers/test/index.test.js create mode 100644 node_modules/prettier/LICENSE create mode 100644 node_modules/prettier/README.md create mode 100755 node_modules/prettier/bin-prettier.js create mode 100644 node_modules/prettier/cli.js create mode 100644 node_modules/prettier/doc.js create mode 100644 node_modules/prettier/esm/parser-angular.mjs create mode 100644 node_modules/prettier/esm/parser-babel.mjs create mode 100644 node_modules/prettier/esm/parser-espree.mjs create mode 100644 node_modules/prettier/esm/parser-flow.mjs create mode 100644 node_modules/prettier/esm/parser-glimmer.mjs create mode 100644 node_modules/prettier/esm/parser-graphql.mjs create mode 100644 node_modules/prettier/esm/parser-html.mjs create mode 100644 node_modules/prettier/esm/parser-markdown.mjs create mode 100644 node_modules/prettier/esm/parser-meriyah.mjs create mode 100644 node_modules/prettier/esm/parser-postcss.mjs create mode 100644 node_modules/prettier/esm/parser-typescript.mjs create mode 100644 node_modules/prettier/esm/parser-yaml.mjs create mode 100644 node_modules/prettier/esm/standalone.mjs create mode 100644 node_modules/prettier/index.js create mode 100644 node_modules/prettier/package.json create mode 100644 node_modules/prettier/parser-angular.js create mode 100644 node_modules/prettier/parser-babel.js create mode 100644 node_modules/prettier/parser-espree.js create mode 100644 node_modules/prettier/parser-flow.js create mode 100644 node_modules/prettier/parser-glimmer.js create mode 100644 node_modules/prettier/parser-graphql.js create mode 100644 node_modules/prettier/parser-html.js create mode 100644 node_modules/prettier/parser-markdown.js create mode 100644 node_modules/prettier/parser-meriyah.js create mode 100644 node_modules/prettier/parser-postcss.js create mode 100644 node_modules/prettier/parser-typescript.js create mode 100644 node_modules/prettier/parser-yaml.js create mode 100644 node_modules/prettier/standalone.js create mode 100644 node_modules/prettier/third-party.js create mode 100644 node_modules/punycode/LICENSE-MIT.txt create mode 100644 node_modules/punycode/README.md create mode 100644 node_modules/punycode/package.json create mode 100644 node_modules/punycode/punycode.es6.js create mode 100644 node_modules/punycode/punycode.js create mode 100755 node_modules/queue-microtask/LICENSE create mode 100644 node_modules/queue-microtask/README.md create mode 100644 node_modules/queue-microtask/index.d.ts create mode 100644 node_modules/queue-microtask/index.js create mode 100644 node_modules/queue-microtask/package.json create mode 100644 node_modules/regexpp/LICENSE create mode 100644 node_modules/regexpp/README.md create mode 100644 node_modules/regexpp/index.d.ts create mode 100644 node_modules/regexpp/index.js create mode 100644 node_modules/regexpp/index.js.map create mode 100644 node_modules/regexpp/index.mjs create mode 100644 node_modules/regexpp/index.mjs.map create mode 100644 node_modules/regexpp/package.json create mode 100644 node_modules/resolve-from/index.js create mode 100644 node_modules/resolve-from/license create mode 100644 node_modules/resolve-from/package.json create mode 100644 node_modules/resolve-from/readme.md create mode 100644 node_modules/reusify/.coveralls.yml create mode 100644 node_modules/reusify/.travis.yml create mode 100644 node_modules/reusify/LICENSE create mode 100644 node_modules/reusify/README.md create mode 100644 node_modules/reusify/benchmarks/createNoCodeFunction.js create mode 100644 node_modules/reusify/benchmarks/fib.js create mode 100644 node_modules/reusify/benchmarks/reuseNoCodeFunction.js create mode 100644 node_modules/reusify/package.json create mode 100644 node_modules/reusify/reusify.js create mode 100644 node_modules/reusify/test.js create mode 100644 node_modules/rimraf/CHANGELOG.md create mode 100644 node_modules/rimraf/LICENSE create mode 100644 node_modules/rimraf/README.md create mode 100755 node_modules/rimraf/bin.js create mode 100644 node_modules/rimraf/package.json create mode 100644 node_modules/rimraf/rimraf.js create mode 100644 node_modules/run-parallel/LICENSE create mode 100644 node_modules/run-parallel/README.md create mode 100644 node_modules/run-parallel/index.js create mode 100644 node_modules/run-parallel/package.json create mode 100644 node_modules/shebang-command/index.js create mode 100644 node_modules/shebang-command/license create mode 100644 node_modules/shebang-command/package.json create mode 100644 node_modules/shebang-command/readme.md create mode 100644 node_modules/shebang-regex/index.d.ts create mode 100644 node_modules/shebang-regex/index.js create mode 100644 node_modules/shebang-regex/license create mode 100644 node_modules/shebang-regex/package.json create mode 100644 node_modules/shebang-regex/readme.md create mode 100644 node_modules/slash/index.d.ts create mode 100644 node_modules/slash/index.js create mode 100644 node_modules/slash/license create mode 100644 node_modules/slash/package.json create mode 100644 node_modules/slash/readme.md create mode 100644 node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/strip-ansi/index.js create mode 100644 node_modules/strip-ansi/license create mode 100644 node_modules/strip-ansi/package.json create mode 100644 node_modules/strip-ansi/readme.md create mode 100644 node_modules/strip-json-comments/index.d.ts create mode 100644 node_modules/strip-json-comments/index.js create mode 100644 node_modules/strip-json-comments/license create mode 100644 node_modules/strip-json-comments/package.json create mode 100644 node_modules/strip-json-comments/readme.md create mode 100644 node_modules/supports-color/browser.js create mode 100644 node_modules/supports-color/index.js create mode 100644 node_modules/supports-color/license create mode 100644 node_modules/supports-color/package.json create mode 100644 node_modules/supports-color/readme.md create mode 100644 node_modules/text-table/.travis.yml create mode 100644 node_modules/text-table/LICENSE create mode 100644 node_modules/text-table/example/align.js create mode 100644 node_modules/text-table/example/center.js create mode 100644 node_modules/text-table/example/dotalign.js create mode 100644 node_modules/text-table/example/doubledot.js create mode 100644 node_modules/text-table/example/table.js create mode 100644 node_modules/text-table/index.js create mode 100644 node_modules/text-table/package.json create mode 100644 node_modules/text-table/readme.markdown create mode 100644 node_modules/text-table/test/align.js create mode 100644 node_modules/text-table/test/ansi-colors.js create mode 100644 node_modules/text-table/test/center.js create mode 100644 node_modules/text-table/test/dotalign.js create mode 100644 node_modules/text-table/test/doubledot.js create mode 100644 node_modules/text-table/test/table.js create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/tr46/.npmignore create mode 100644 node_modules/tr46/index.js create mode 100644 node_modules/tr46/lib/.gitkeep create mode 100644 node_modules/tr46/lib/mappingTable.json create mode 100644 node_modules/tr46/package.json create mode 100644 node_modules/tunnel/.idea/encodings.xml create mode 100644 node_modules/tunnel/.idea/modules.xml create mode 100644 node_modules/tunnel/.idea/node-tunnel.iml create mode 100644 node_modules/tunnel/.idea/vcs.xml create mode 100644 node_modules/tunnel/.idea/workspace.xml create mode 100644 node_modules/tunnel/.travis.yml create mode 100644 node_modules/tunnel/CHANGELOG.md create mode 100644 node_modules/tunnel/LICENSE create mode 100644 node_modules/tunnel/README.md create mode 100644 node_modules/tunnel/index.js create mode 100644 node_modules/tunnel/lib/tunnel.js create mode 100644 node_modules/tunnel/package.json create mode 100644 node_modules/type-check/LICENSE create mode 100644 node_modules/type-check/README.md create mode 100644 node_modules/type-check/lib/check.js create mode 100644 node_modules/type-check/lib/index.js create mode 100644 node_modules/type-check/lib/parse-type.js create mode 100644 node_modules/type-check/package.json create mode 100644 node_modules/type-fest/base.d.ts create mode 100644 node_modules/type-fest/index.d.ts create mode 100644 node_modules/type-fest/license create mode 100644 node_modules/type-fest/package.json create mode 100644 node_modules/type-fest/readme.md create mode 100644 node_modules/type-fest/source/async-return-type.d.ts create mode 100644 node_modules/type-fest/source/asyncify.d.ts create mode 100644 node_modules/type-fest/source/basic.d.ts create mode 100644 node_modules/type-fest/source/conditional-except.d.ts create mode 100644 node_modules/type-fest/source/conditional-keys.d.ts create mode 100644 node_modules/type-fest/source/conditional-pick.d.ts create mode 100644 node_modules/type-fest/source/entries.d.ts create mode 100644 node_modules/type-fest/source/entry.d.ts create mode 100644 node_modules/type-fest/source/except.d.ts create mode 100644 node_modules/type-fest/source/fixed-length-array.d.ts create mode 100644 node_modules/type-fest/source/iterable-element.d.ts create mode 100644 node_modules/type-fest/source/literal-union.d.ts create mode 100644 node_modules/type-fest/source/merge-exclusive.d.ts create mode 100644 node_modules/type-fest/source/merge.d.ts create mode 100644 node_modules/type-fest/source/mutable.d.ts create mode 100644 node_modules/type-fest/source/opaque.d.ts create mode 100644 node_modules/type-fest/source/package-json.d.ts create mode 100644 node_modules/type-fest/source/partial-deep.d.ts create mode 100644 node_modules/type-fest/source/promisable.d.ts create mode 100644 node_modules/type-fest/source/promise-value.d.ts create mode 100644 node_modules/type-fest/source/readonly-deep.d.ts create mode 100644 node_modules/type-fest/source/require-at-least-one.d.ts create mode 100644 node_modules/type-fest/source/require-exactly-one.d.ts create mode 100644 node_modules/type-fest/source/set-optional.d.ts create mode 100644 node_modules/type-fest/source/set-required.d.ts create mode 100644 node_modules/type-fest/source/set-return-type.d.ts create mode 100644 node_modules/type-fest/source/stringified.d.ts create mode 100644 node_modules/type-fest/source/tsconfig-json.d.ts create mode 100644 node_modules/type-fest/source/union-to-intersection.d.ts create mode 100644 node_modules/type-fest/source/utilities.d.ts create mode 100644 node_modules/type-fest/source/value-of.d.ts create mode 100644 node_modules/type-fest/ts41/camel-case.d.ts create mode 100644 node_modules/type-fest/ts41/delimiter-case.d.ts create mode 100644 node_modules/type-fest/ts41/index.d.ts create mode 100644 node_modules/type-fest/ts41/kebab-case.d.ts create mode 100644 node_modules/type-fest/ts41/pascal-case.d.ts create mode 100644 node_modules/type-fest/ts41/snake-case.d.ts create mode 100644 node_modules/universal-user-agent/LICENSE.md create mode 100644 node_modules/universal-user-agent/README.md create mode 100644 node_modules/universal-user-agent/dist-node/index.js create mode 100644 node_modules/universal-user-agent/dist-node/index.js.map create mode 100644 node_modules/universal-user-agent/dist-src/index.js create mode 100644 node_modules/universal-user-agent/dist-types/index.d.ts create mode 100644 node_modules/universal-user-agent/dist-web/index.js create mode 100644 node_modules/universal-user-agent/dist-web/index.js.map create mode 100644 node_modules/universal-user-agent/package.json create mode 100755 node_modules/uri-js/LICENSE create mode 100755 node_modules/uri-js/README.md create mode 100755 node_modules/uri-js/dist/es5/uri.all.d.ts create mode 100755 node_modules/uri-js/dist/es5/uri.all.js create mode 100755 node_modules/uri-js/dist/es5/uri.all.js.map create mode 100755 node_modules/uri-js/dist/es5/uri.all.min.d.ts create mode 100755 node_modules/uri-js/dist/es5/uri.all.min.js create mode 100755 node_modules/uri-js/dist/es5/uri.all.min.js.map create mode 100755 node_modules/uri-js/dist/esnext/index.d.ts create mode 100755 node_modules/uri-js/dist/esnext/index.js create mode 100755 node_modules/uri-js/dist/esnext/index.js.map create mode 100755 node_modules/uri-js/dist/esnext/regexps-iri.d.ts create mode 100755 node_modules/uri-js/dist/esnext/regexps-iri.js create mode 100755 node_modules/uri-js/dist/esnext/regexps-iri.js.map create mode 100755 node_modules/uri-js/dist/esnext/regexps-uri.d.ts create mode 100755 node_modules/uri-js/dist/esnext/regexps-uri.js create mode 100755 node_modules/uri-js/dist/esnext/regexps-uri.js.map create mode 100755 node_modules/uri-js/dist/esnext/schemes/http.d.ts create mode 100755 node_modules/uri-js/dist/esnext/schemes/http.js create mode 100755 node_modules/uri-js/dist/esnext/schemes/http.js.map create mode 100755 node_modules/uri-js/dist/esnext/schemes/https.d.ts create mode 100755 node_modules/uri-js/dist/esnext/schemes/https.js create mode 100755 node_modules/uri-js/dist/esnext/schemes/https.js.map create mode 100755 node_modules/uri-js/dist/esnext/schemes/mailto.d.ts create mode 100755 node_modules/uri-js/dist/esnext/schemes/mailto.js create mode 100755 node_modules/uri-js/dist/esnext/schemes/mailto.js.map create mode 100755 node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts create mode 100755 node_modules/uri-js/dist/esnext/schemes/urn-uuid.js create mode 100755 node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map create mode 100755 node_modules/uri-js/dist/esnext/schemes/urn.d.ts create mode 100755 node_modules/uri-js/dist/esnext/schemes/urn.js create mode 100755 node_modules/uri-js/dist/esnext/schemes/urn.js.map create mode 100755 node_modules/uri-js/dist/esnext/schemes/ws.d.ts create mode 100755 node_modules/uri-js/dist/esnext/schemes/ws.js create mode 100755 node_modules/uri-js/dist/esnext/schemes/ws.js.map create mode 100755 node_modules/uri-js/dist/esnext/schemes/wss.d.ts create mode 100755 node_modules/uri-js/dist/esnext/schemes/wss.js create mode 100755 node_modules/uri-js/dist/esnext/schemes/wss.js.map create mode 100755 node_modules/uri-js/dist/esnext/uri.d.ts create mode 100755 node_modules/uri-js/dist/esnext/uri.js create mode 100755 node_modules/uri-js/dist/esnext/uri.js.map create mode 100755 node_modules/uri-js/dist/esnext/util.d.ts create mode 100755 node_modules/uri-js/dist/esnext/util.js create mode 100755 node_modules/uri-js/dist/esnext/util.js.map create mode 100755 node_modules/uri-js/package.json create mode 100755 node_modules/uri-js/yarn.lock create mode 100644 node_modules/uuid/CHANGELOG.md create mode 100644 node_modules/uuid/CONTRIBUTING.md create mode 100644 node_modules/uuid/LICENSE.md create mode 100644 node_modules/uuid/README.md create mode 100755 node_modules/uuid/dist/bin/uuid create mode 100644 node_modules/uuid/dist/esm-browser/index.js create mode 100644 node_modules/uuid/dist/esm-browser/md5.js create mode 100644 node_modules/uuid/dist/esm-browser/nil.js create mode 100644 node_modules/uuid/dist/esm-browser/parse.js create mode 100644 node_modules/uuid/dist/esm-browser/regex.js create mode 100644 node_modules/uuid/dist/esm-browser/rng.js create mode 100644 node_modules/uuid/dist/esm-browser/sha1.js create mode 100644 node_modules/uuid/dist/esm-browser/stringify.js create mode 100644 node_modules/uuid/dist/esm-browser/v1.js create mode 100644 node_modules/uuid/dist/esm-browser/v3.js create mode 100644 node_modules/uuid/dist/esm-browser/v35.js create mode 100644 node_modules/uuid/dist/esm-browser/v4.js create mode 100644 node_modules/uuid/dist/esm-browser/v5.js create mode 100644 node_modules/uuid/dist/esm-browser/validate.js create mode 100644 node_modules/uuid/dist/esm-browser/version.js create mode 100644 node_modules/uuid/dist/esm-node/index.js create mode 100644 node_modules/uuid/dist/esm-node/md5.js create mode 100644 node_modules/uuid/dist/esm-node/nil.js create mode 100644 node_modules/uuid/dist/esm-node/parse.js create mode 100644 node_modules/uuid/dist/esm-node/regex.js create mode 100644 node_modules/uuid/dist/esm-node/rng.js create mode 100644 node_modules/uuid/dist/esm-node/sha1.js create mode 100644 node_modules/uuid/dist/esm-node/stringify.js create mode 100644 node_modules/uuid/dist/esm-node/v1.js create mode 100644 node_modules/uuid/dist/esm-node/v3.js create mode 100644 node_modules/uuid/dist/esm-node/v35.js create mode 100644 node_modules/uuid/dist/esm-node/v4.js create mode 100644 node_modules/uuid/dist/esm-node/v5.js create mode 100644 node_modules/uuid/dist/esm-node/validate.js create mode 100644 node_modules/uuid/dist/esm-node/version.js create mode 100644 node_modules/uuid/dist/index.js create mode 100644 node_modules/uuid/dist/md5-browser.js create mode 100644 node_modules/uuid/dist/md5.js create mode 100644 node_modules/uuid/dist/nil.js create mode 100644 node_modules/uuid/dist/parse.js create mode 100644 node_modules/uuid/dist/regex.js create mode 100644 node_modules/uuid/dist/rng-browser.js create mode 100644 node_modules/uuid/dist/rng.js create mode 100644 node_modules/uuid/dist/sha1-browser.js create mode 100644 node_modules/uuid/dist/sha1.js create mode 100644 node_modules/uuid/dist/stringify.js create mode 100644 node_modules/uuid/dist/umd/uuid.min.js create mode 100644 node_modules/uuid/dist/umd/uuidNIL.min.js create mode 100644 node_modules/uuid/dist/umd/uuidParse.min.js create mode 100644 node_modules/uuid/dist/umd/uuidStringify.min.js create mode 100644 node_modules/uuid/dist/umd/uuidValidate.min.js create mode 100644 node_modules/uuid/dist/umd/uuidVersion.min.js create mode 100644 node_modules/uuid/dist/umd/uuidv1.min.js create mode 100644 node_modules/uuid/dist/umd/uuidv3.min.js create mode 100644 node_modules/uuid/dist/umd/uuidv4.min.js create mode 100644 node_modules/uuid/dist/umd/uuidv5.min.js create mode 100644 node_modules/uuid/dist/uuid-bin.js create mode 100644 node_modules/uuid/dist/v1.js create mode 100644 node_modules/uuid/dist/v3.js create mode 100644 node_modules/uuid/dist/v35.js create mode 100644 node_modules/uuid/dist/v4.js create mode 100644 node_modules/uuid/dist/v5.js create mode 100644 node_modules/uuid/dist/validate.js create mode 100644 node_modules/uuid/dist/version.js create mode 100644 node_modules/uuid/package.json create mode 100644 node_modules/uuid/wrapper.mjs create mode 100644 node_modules/webidl-conversions/LICENSE.md create mode 100644 node_modules/webidl-conversions/README.md create mode 100644 node_modules/webidl-conversions/lib/index.js create mode 100644 node_modules/webidl-conversions/package.json create mode 100644 node_modules/whatwg-url/LICENSE.txt create mode 100644 node_modules/whatwg-url/README.md create mode 100644 node_modules/whatwg-url/lib/URL-impl.js create mode 100644 node_modules/whatwg-url/lib/URL.js create mode 100644 node_modules/whatwg-url/lib/public-api.js create mode 100644 node_modules/whatwg-url/lib/url-state-machine.js create mode 100644 node_modules/whatwg-url/lib/utils.js create mode 100644 node_modules/whatwg-url/package.json create mode 100644 node_modules/which/CHANGELOG.md create mode 100644 node_modules/which/LICENSE create mode 100644 node_modules/which/README.md create mode 100755 node_modules/which/bin/node-which create mode 100644 node_modules/which/package.json create mode 100644 node_modules/which/which.js create mode 100644 node_modules/word-wrap/LICENSE create mode 100644 node_modules/word-wrap/README.md create mode 100644 node_modules/word-wrap/index.d.ts create mode 100644 node_modules/word-wrap/index.js create mode 100644 node_modules/word-wrap/package.json create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js create mode 100644 node_modules/yaml/LICENSE create mode 100644 node_modules/yaml/README.md create mode 100644 node_modules/yaml/browser/dist/PlainValue-b8036b75.js create mode 100644 node_modules/yaml/browser/dist/Schema-e94716c8.js create mode 100644 node_modules/yaml/browser/dist/index.js create mode 100644 node_modules/yaml/browser/dist/legacy-exports.js create mode 100644 node_modules/yaml/browser/dist/package.json create mode 100644 node_modules/yaml/browser/dist/parse-cst.js create mode 100644 node_modules/yaml/browser/dist/resolveSeq-492ab440.js create mode 100644 node_modules/yaml/browser/dist/types.js create mode 100644 node_modules/yaml/browser/dist/util.js create mode 100644 node_modules/yaml/browser/dist/warnings-df54cb69.js create mode 100644 node_modules/yaml/browser/index.js create mode 100644 node_modules/yaml/browser/map.js create mode 100644 node_modules/yaml/browser/pair.js create mode 100644 node_modules/yaml/browser/parse-cst.js create mode 100644 node_modules/yaml/browser/scalar.js create mode 100644 node_modules/yaml/browser/schema.js create mode 100644 node_modules/yaml/browser/seq.js create mode 100644 node_modules/yaml/browser/types.js create mode 100644 node_modules/yaml/browser/types/binary.js create mode 100644 node_modules/yaml/browser/types/omap.js create mode 100644 node_modules/yaml/browser/types/pairs.js create mode 100644 node_modules/yaml/browser/types/set.js create mode 100644 node_modules/yaml/browser/types/timestamp.js create mode 100644 node_modules/yaml/browser/util.js create mode 100644 node_modules/yaml/dist/Document-9b4560a1.js create mode 100644 node_modules/yaml/dist/PlainValue-ec8e588e.js create mode 100644 node_modules/yaml/dist/Schema-88e323a7.js create mode 100644 node_modules/yaml/dist/index.js create mode 100644 node_modules/yaml/dist/legacy-exports.js create mode 100644 node_modules/yaml/dist/parse-cst.js create mode 100644 node_modules/yaml/dist/resolveSeq-d03cb037.js create mode 100644 node_modules/yaml/dist/test-events.js create mode 100644 node_modules/yaml/dist/types.js create mode 100644 node_modules/yaml/dist/util.js create mode 100644 node_modules/yaml/dist/warnings-1000a372.js create mode 100644 node_modules/yaml/index.d.ts create mode 100644 node_modules/yaml/index.js create mode 100644 node_modules/yaml/map.js create mode 100644 node_modules/yaml/package.json create mode 100644 node_modules/yaml/pair.js create mode 100644 node_modules/yaml/parse-cst.d.ts create mode 100644 node_modules/yaml/parse-cst.js create mode 100644 node_modules/yaml/scalar.js create mode 100644 node_modules/yaml/schema.js create mode 100644 node_modules/yaml/seq.js create mode 100644 node_modules/yaml/types.d.ts create mode 100644 node_modules/yaml/types.js create mode 100644 node_modules/yaml/types.mjs create mode 100644 node_modules/yaml/types/binary.js create mode 100644 node_modules/yaml/types/omap.js create mode 100644 node_modules/yaml/types/pairs.js create mode 100644 node_modules/yaml/types/set.js create mode 100644 node_modules/yaml/types/timestamp.js create mode 100644 node_modules/yaml/util.d.ts create mode 100644 node_modules/yaml/util.js create mode 100644 node_modules/yaml/util.mjs create mode 100644 node_modules/yocto-queue/index.d.ts create mode 100644 node_modules/yocto-queue/index.js create mode 100644 node_modules/yocto-queue/license create mode 100644 node_modules/yocto-queue/package.json create mode 100644 node_modules/yocto-queue/readme.md diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 40b878d..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ \ No newline at end of file diff --git a/node_modules/.bin/acorn b/node_modules/.bin/acorn new file mode 120000 index 0000000..cf76760 --- /dev/null +++ b/node_modules/.bin/acorn @@ -0,0 +1 @@ +../acorn/bin/acorn \ No newline at end of file diff --git a/node_modules/.bin/eslint b/node_modules/.bin/eslint new file mode 120000 index 0000000..810e4bc --- /dev/null +++ b/node_modules/.bin/eslint @@ -0,0 +1 @@ +../eslint/bin/eslint.js \ No newline at end of file diff --git a/node_modules/.bin/eslint-config-prettier b/node_modules/.bin/eslint-config-prettier new file mode 120000 index 0000000..7d29baa --- /dev/null +++ b/node_modules/.bin/eslint-config-prettier @@ -0,0 +1 @@ +../eslint-config-prettier/bin/cli.js \ No newline at end of file diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml new file mode 120000 index 0000000..9dbd010 --- /dev/null +++ b/node_modules/.bin/js-yaml @@ -0,0 +1 @@ +../js-yaml/bin/js-yaml.js \ No newline at end of file diff --git a/node_modules/.bin/node-which b/node_modules/.bin/node-which new file mode 120000 index 0000000..6f8415e --- /dev/null +++ b/node_modules/.bin/node-which @@ -0,0 +1 @@ +../which/bin/node-which \ No newline at end of file diff --git a/node_modules/.bin/prettier b/node_modules/.bin/prettier new file mode 120000 index 0000000..a478df3 --- /dev/null +++ b/node_modules/.bin/prettier @@ -0,0 +1 @@ +../prettier/bin-prettier.js \ No newline at end of file diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf new file mode 120000 index 0000000..4cd49a4 --- /dev/null +++ b/node_modules/.bin/rimraf @@ -0,0 +1 @@ +../rimraf/bin.js \ No newline at end of file diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid new file mode 120000 index 0000000..588f70e --- /dev/null +++ b/node_modules/.bin/uuid @@ -0,0 +1 @@ +../uuid/dist/bin/uuid \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..1781a3b --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,1604 @@ +{ + "name": "compose-action", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/@actions/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", + "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", + "dev": true, + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "node_modules/@actions/github": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-4.0.0.tgz", + "integrity": "sha512-Ej/Y2E+VV6sR9X7pWL5F3VgEWrABaT292DRqRU6R4hnQjPtC/zD3nagxVdXWiRQvYDh8kHXo7IDmG42eJ/dOMA==", + "dev": true, + "dependencies": { + "@actions/http-client": "^1.0.8", + "@octokit/core": "^3.0.0", + "@octokit/plugin-paginate-rest": "^2.2.3", + "@octokit/plugin-rest-endpoint-methods": "^4.0.0" + } + }, + "node_modules/@actions/github/node_modules/@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "dev": true, + "dependencies": { + "tunnel": "0.0.6" + } + }, + "node_modules/@actions/http-client": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", + "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", + "dev": true, + "dependencies": { + "tunnel": "^0.0.6" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "dev": true, + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dev": true, + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", + "dev": true + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.40.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.15.1.tgz", + "integrity": "sha512-4gQg4ySoW7ktKB0Mf38fHzcSffVZd6mT5deJQtpqkuPuAqzlED5AJTeW8Uk7dPRn7KaOlWcXB0MedTFJU1j4qA==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.13.0", + "deprecation": "^2.3.1" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dev": true, + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dev": true, + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/docker-compose": { + "version": "0.23.17", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.17.tgz", + "integrity": "sha512-YJV18YoYIcxOdJKeFcCFihE6F4M2NExWM/d4S1ITcS9samHKnNUihz9kjggr0dNtsrbpFNc7/Yzd19DWs+m1xg==", + "dev": true, + "dependencies": { + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", + "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/node_modules/@actions/core/LICENSE.md b/node_modules/@actions/core/LICENSE.md new file mode 100644 index 0000000..dbae2ed --- /dev/null +++ b/node_modules/@actions/core/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright 2019 GitHub + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/@actions/core/README.md b/node_modules/@actions/core/README.md new file mode 100644 index 0000000..3c20c8e --- /dev/null +++ b/node_modules/@actions/core/README.md @@ -0,0 +1,335 @@ +# `@actions/core` + +> Core functions for setting results, logging, registering secrets and exporting variables across actions + +## Usage + +### Import the package + +```js +// javascript +const core = require('@actions/core'); + +// typescript +import * as core from '@actions/core'; +``` + +#### Inputs/Outputs + +Action inputs can be read with `getInput` which returns a `string` or `getBooleanInput` which parses a boolean based on the [yaml 1.2 specification](https://yaml.org/spec/1.2/spec.html#id2804923). If `required` set to be false, the input should have a default value in `action.yml`. + +Outputs can be set with `setOutput` which makes them available to be mapped into inputs of other actions to ensure they are decoupled. + +```js +const myInput = core.getInput('inputName', { required: true }); +const myBooleanInput = core.getBooleanInput('booleanInputName', { required: true }); +const myMultilineInput = core.getMultilineInput('multilineInputName', { required: true }); +core.setOutput('outputKey', 'outputVal'); +``` + +#### Exporting variables + +Since each step runs in a separate process, you can use `exportVariable` to add it to this step and future steps environment blocks. + +```js +core.exportVariable('envVar', 'Val'); +``` + +#### Setting a secret + +Setting a secret registers the secret with the runner to ensure it is masked in logs. + +```js +core.setSecret('myPassword'); +``` + +#### PATH Manipulation + +To make a tool's path available in the path for the remainder of the job (without altering the machine or containers state), use `addPath`. The runner will prepend the path given to the jobs PATH. + +```js +core.addPath('/path/to/mytool'); +``` + +#### Exit codes + +You should use this library to set the failing exit code for your action. If status is not set and the script runs to completion, that will lead to a success. + +```js +const core = require('@actions/core'); + +try { + // Do stuff +} +catch (err) { + // setFailed logs the message and sets a failing exit code + core.setFailed(`Action failed with error ${err}`); +} +``` + +Note that `setNeutral` is not yet implemented in actions V2 but equivalent functionality is being planned. + +#### Logging + +Finally, this library provides some utilities for logging. Note that debug logging is hidden from the logs by default. This behavior can be toggled by enabling the [Step Debug Logs](../../docs/action-debugging.md#step-debug-logs). + +```js +const core = require('@actions/core'); + +const myInput = core.getInput('input'); +try { + core.debug('Inside try block'); + + if (!myInput) { + core.warning('myInput was not set'); + } + + if (core.isDebug()) { + // curl -v https://github.com + } else { + // curl https://github.com + } + + // Do stuff + core.info('Output to the actions build log') + + core.notice('This is a message that will also emit an annotation') +} +catch (err) { + core.error(`Error ${err}, action may still succeed though`); +} +``` + +This library can also wrap chunks of output in foldable groups. + +```js +const core = require('@actions/core') + +// Manually wrap output +core.startGroup('Do some function') +doSomeFunction() +core.endGroup() + +// Wrap an asynchronous function call +const result = await core.group('Do something async', async () => { + const response = await doSomeHTTPRequest() + return response +}) +``` + +#### Annotations + +This library has 3 methods that will produce [annotations](https://docs.github.com/en/rest/reference/checks#create-a-check-run). +```js +core.error('This is a bad error. This will also fail the build.') + +core.warning('Something went wrong, but it\'s not bad enough to fail the build.') + +core.notice('Something happened that you might want to know about.') +``` + +These will surface to the UI in the Actions page and on Pull Requests. They look something like this: + +![Annotations Image](../../docs/assets/annotations.png) + +These annotations can also be attached to particular lines and columns of your source files to show exactly where a problem is occuring. + +These options are: +```typescript +export interface AnnotationProperties { + /** + * A title for the annotation. + */ + title?: string + + /** + * The name of the file for which the annotation should be created. + */ + file?: string + + /** + * The start line for the annotation. + */ + startLine?: number + + /** + * The end line for the annotation. Defaults to `startLine` when `startLine` is provided. + */ + endLine?: number + + /** + * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. + */ + startColumn?: number + + /** + * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. + * Defaults to `startColumn` when `startColumn` is provided. + */ + endColumn?: number +} +``` + +#### Styling output + +Colored output is supported in the Action logs via standard [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code). 3/4 bit, 8 bit and 24 bit colors are all supported. + +Foreground colors: + +```js +// 3/4 bit +core.info('\u001b[35mThis foreground will be magenta') + +// 8 bit +core.info('\u001b[38;5;6mThis foreground will be cyan') + +// 24 bit +core.info('\u001b[38;2;255;0;0mThis foreground will be bright red') +``` + +Background colors: + +```js +// 3/4 bit +core.info('\u001b[43mThis background will be yellow'); + +// 8 bit +core.info('\u001b[48;5;6mThis background will be cyan') + +// 24 bit +core.info('\u001b[48;2;255;0;0mThis background will be bright red') +``` + +Special styles: + +```js +core.info('\u001b[1mBold text') +core.info('\u001b[3mItalic text') +core.info('\u001b[4mUnderlined text') +``` + +ANSI escape codes can be combined with one another: + +```js +core.info('\u001b[31;46mRed foreground with a cyan background and \u001b[1mbold text at the end'); +``` + +> Note: Escape codes reset at the start of each line + +```js +core.info('\u001b[35mThis foreground will be magenta') +core.info('This foreground will reset to the default') +``` + +Manually typing escape codes can be a little difficult, but you can use third party modules such as [ansi-styles](https://github.com/chalk/ansi-styles). + +```js +const style = require('ansi-styles'); +core.info(style.color.ansi16m.hex('#abcdef') + 'Hello world!') +``` + +#### Action state + +You can use this library to save state and get state for sharing information between a given wrapper action: + +**action.yml**: + +```yaml +name: 'Wrapper action sample' +inputs: + name: + default: 'GitHub' +runs: + using: 'node12' + main: 'main.js' + post: 'cleanup.js' +``` + +In action's `main.js`: + +```js +const core = require('@actions/core'); + +core.saveState("pidToKill", 12345); +``` + +In action's `cleanup.js`: + +```js +const core = require('@actions/core'); + +var pid = core.getState("pidToKill"); + +process.kill(pid); +``` + +#### OIDC Token + +You can use these methods to interact with the GitHub OIDC provider and get a JWT ID token which would help to get access token from third party cloud providers. + +**Method Name**: getIDToken() + +**Inputs** + +audience : optional + +**Outputs** + +A [JWT](https://jwt.io/) ID Token + +In action's `main.ts`: +```js +const core = require('@actions/core'); +async function getIDTokenAction(): Promise { + + const audience = core.getInput('audience', {required: false}) + + const id_token1 = await core.getIDToken() // ID Token with default audience + const id_token2 = await core.getIDToken(audience) // ID token with custom audience + + // this id_token can be used to get access token from third party cloud providers +} +getIDTokenAction() +``` + +In action's `actions.yml`: + +```yaml +name: 'GetIDToken' +description: 'Get ID token from Github OIDC provider' +inputs: + audience: + description: 'Audience for which the ID token is intended for' + required: false +outputs: + id_token1: + description: 'ID token obtained from OIDC provider' + id_token2: + description: 'ID token obtained from OIDC provider' +runs: + using: 'node12' + main: 'dist/index.js' +``` + +#### Filesystem path helpers + +You can use these methods to manipulate file paths across operating systems. + +The `toPosixPath` function converts input paths to Posix-style (Linux) paths. +The `toWin32Path` function converts input paths to Windows-style paths. These +functions work independently of the underlying runner operating system. + +```js +toPosixPath('\\foo\\bar') // => /foo/bar +toWin32Path('/foo/bar') // => \foo\bar +``` + +The `toPlatformPath` function converts input paths to the expected value on the runner's operating system. + +```js +// On a Windows runner. +toPlatformPath('/foo/bar') // => \foo\bar + +// On a Linux runner. +toPlatformPath('\\foo\\bar') // => /foo/bar +``` diff --git a/node_modules/@actions/core/lib/command.d.ts b/node_modules/@actions/core/lib/command.d.ts new file mode 100644 index 0000000..53f8f4b --- /dev/null +++ b/node_modules/@actions/core/lib/command.d.ts @@ -0,0 +1,15 @@ +export interface CommandProperties { + [key: string]: any; +} +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +export declare function issueCommand(command: string, properties: CommandProperties, message: any): void; +export declare function issue(name: string, message?: string): void; diff --git a/node_modules/@actions/core/lib/command.js b/node_modules/@actions/core/lib/command.js new file mode 100644 index 0000000..0b28c66 --- /dev/null +++ b/node_modules/@actions/core/lib/command.js @@ -0,0 +1,92 @@ +"use strict"; +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.issue = exports.issueCommand = void 0; +const os = __importStar(require("os")); +const utils_1 = require("./utils"); +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); +} +exports.issueCommand = issueCommand; +function issue(name, message = '') { + issueCommand(name, {}, message); +} +exports.issue = issue; +const CMD_STRING = '::'; +class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command'; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } + else { + cmdStr += ','; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +function escapeData(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); +} +//# sourceMappingURL=command.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/command.js.map b/node_modules/@actions/core/lib/command.js.map new file mode 100644 index 0000000..51c7c63 --- /dev/null +++ b/node_modules/@actions/core/lib/command.js.map @@ -0,0 +1 @@ +{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,mCAAsC;AAWtC;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,OAAO,GAAG,EAAE;IAC9C,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,IAAI,KAAK,EAAE;4BACT,KAAK,GAAG,KAAK,CAAA;yBACd;6BAAM;4BACL,MAAM,IAAI,GAAG,CAAA;yBACd;wBAED,MAAM,IAAI,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;qBAC1C;iBACF;aACF;SACF;QAED,MAAM,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAM;IACxB,OAAO,sBAAc,CAAC,CAAC,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,CAAM;IAC5B,OAAO,sBAAc,CAAC,CAAC,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/core.d.ts b/node_modules/@actions/core/lib/core.d.ts new file mode 100644 index 0000000..1defb57 --- /dev/null +++ b/node_modules/@actions/core/lib/core.d.ts @@ -0,0 +1,198 @@ +/** + * Interface for getInput options + */ +export interface InputOptions { + /** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */ + required?: boolean; + /** Optional. Whether leading/trailing whitespace will be trimmed for the input. Defaults to true */ + trimWhitespace?: boolean; +} +/** + * The code to exit an action + */ +export declare enum ExitCode { + /** + * A code indicating that the action was successful + */ + Success = 0, + /** + * A code indicating that the action was a failure + */ + Failure = 1 +} +/** + * Optional properties that can be sent with annotatation commands (notice, error, and warning) + * See: https://docs.github.com/en/rest/reference/checks#create-a-check-run for more information about annotations. + */ +export interface AnnotationProperties { + /** + * A title for the annotation. + */ + title?: string; + /** + * The path of the file for which the annotation should be created. + */ + file?: string; + /** + * The start line for the annotation. + */ + startLine?: number; + /** + * The end line for the annotation. Defaults to `startLine` when `startLine` is provided. + */ + endLine?: number; + /** + * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. + */ + startColumn?: number; + /** + * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. + * Defaults to `startColumn` when `startColumn` is provided. + */ + endColumn?: number; +} +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +export declare function exportVariable(name: string, val: any): void; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +export declare function setSecret(secret: string): void; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +export declare function addPath(inputPath: string): void; +/** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +export declare function getInput(name: string, options?: InputOptions): string; +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ +export declare function getMultilineInput(name: string, options?: InputOptions): string[]; +/** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ +export declare function getBooleanInput(name: string, options?: InputOptions): boolean; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +export declare function setOutput(name: string, value: any): void; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +export declare function setCommandEcho(enabled: boolean): void; +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +export declare function setFailed(message: string | Error): void; +/** + * Gets whether Actions Step Debug is on or not + */ +export declare function isDebug(): boolean; +/** + * Writes debug message to user log + * @param message debug message + */ +export declare function debug(message: string): void; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +export declare function error(message: string | Error, properties?: AnnotationProperties): void; +/** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +export declare function warning(message: string | Error, properties?: AnnotationProperties): void; +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +export declare function notice(message: string | Error, properties?: AnnotationProperties): void; +/** + * Writes info to log with console.log. + * @param message info message + */ +export declare function info(message: string): void; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +export declare function startGroup(name: string): void; +/** + * End an output group. + */ +export declare function endGroup(): void; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +export declare function group(name: string, fn: () => Promise): Promise; +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +export declare function saveState(name: string, value: any): void; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +export declare function getState(name: string): string; +export declare function getIDToken(aud?: string): Promise; +/** + * Summary exports + */ +export { summary } from './summary'; +/** + * @deprecated use core.summary + */ +export { markdownSummary } from './summary'; +/** + * Path exports + */ +export { toPosixPath, toWin32Path, toPlatformPath } from './path-utils'; diff --git a/node_modules/@actions/core/lib/core.js b/node_modules/@actions/core/lib/core.js new file mode 100644 index 0000000..48df6ad --- /dev/null +++ b/node_modules/@actions/core/lib/core.js @@ -0,0 +1,336 @@ +"use strict"; +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; +const command_1 = require("./command"); +const file_command_1 = require("./file-command"); +const utils_1 = require("./utils"); +const os = __importStar(require("os")); +const path = __importStar(require("path")); +const oidc_utils_1 = require("./oidc-utils"); +/** + * The code to exit an action + */ +var ExitCode; +(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + } + command_1.issueCommand('set-env', { name }, convertedVal); +} +exports.exportVariable = exportVariable; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +function setSecret(secret) { + command_1.issueCommand('add-mask', {}, secret); +} +exports.setSecret = setSecret; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +function addPath(inputPath) { + const filePath = process.env['GITHUB_PATH'] || ''; + if (filePath) { + file_command_1.issueFileCommand('PATH', inputPath); + } + else { + command_1.issueCommand('add-path', {}, inputPath); + } + process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; +} +exports.addPath = addPath; +/** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + if (options && options.trimWhitespace === false) { + return val; + } + return val.trim(); +} +exports.getInput = getInput; +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ +function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split('\n') + .filter(x => x !== ''); + if (options && options.trimWhitespace === false) { + return inputs; + } + return inputs.map(input => input.trim()); +} +exports.getMultilineInput = getMultilineInput; +/** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ +function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE']; + const falseValue = ['false', 'False', 'FALSE']; + const val = getInput(name, options); + if (trueValue.includes(val)) + return true; + if (falseValue.includes(val)) + return false; + throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); +} +exports.getBooleanInput = getBooleanInput; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOutput(name, value) { + const filePath = process.env['GITHUB_OUTPUT'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); + } + process.stdout.write(os.EOL); + command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); +} +exports.setOutput = setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off'); +} +exports.setCommandEcho = setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); +} +exports.setFailed = setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +exports.isDebug = isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ +function debug(message) { + command_1.issueCommand('debug', {}, message); +} +exports.debug = debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function error(message, properties = {}) { + command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.error = error; +/** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function warning(message, properties = {}) { + command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.warning = warning; +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function notice(message, properties = {}) { + command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.notice = notice; +/** + * Writes info to log with console.log. + * @param message info message + */ +function info(message) { + process.stdout.write(message + os.EOL); +} +exports.info = info; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +function startGroup(name) { + command_1.issue('group', name); +} +exports.startGroup = startGroup; +/** + * End an output group. + */ +function endGroup() { + command_1.issue('endgroup'); +} +exports.endGroup = endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +function group(name, fn) { + return __awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } + finally { + endGroup(); + } + return result; + }); +} +exports.group = group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function saveState(name, value) { + const filePath = process.env['GITHUB_STATE'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); + } + command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); +} +exports.saveState = saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +function getState(name) { + return process.env[`STATE_${name}`] || ''; +} +exports.getState = getState; +function getIDToken(aud) { + return __awaiter(this, void 0, void 0, function* () { + return yield oidc_utils_1.OidcClient.getIDToken(aud); + }); +} +exports.getIDToken = getIDToken; +/** + * Summary exports + */ +var summary_1 = require("./summary"); +Object.defineProperty(exports, "summary", { enumerable: true, get: function () { return summary_1.summary; } }); +/** + * @deprecated use core.summary + */ +var summary_2 = require("./summary"); +Object.defineProperty(exports, "markdownSummary", { enumerable: true, get: function () { return summary_2.markdownSummary; } }); +/** + * Path exports + */ +var path_utils_1 = require("./path-utils"); +Object.defineProperty(exports, "toPosixPath", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } }); +Object.defineProperty(exports, "toWin32Path", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } }); +Object.defineProperty(exports, "toPlatformPath", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } }); +//# sourceMappingURL=core.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/core.js.map b/node_modules/@actions/core/lib/core.js.map new file mode 100644 index 0000000..99f7fd8 --- /dev/null +++ b/node_modules/@actions/core/lib/core.js.map @@ -0,0 +1 @@ +{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA6C;AAC7C,iDAAuE;AACvE,mCAA2D;AAE3D,uCAAwB;AACxB,2CAA4B;AAE5B,6CAAuC;AAavC;;GAEG;AACH,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB;;OAEG;IACH,6CAAW,CAAA;IAEX;;OAEG;IACH,6CAAW,CAAA;AACb,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAuCD,yEAAyE;AACzE,YAAY;AACZ,yEAAyE;AAEzE;;;;GAIG;AACH,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAQ;IACnD,MAAM,YAAY,GAAG,sBAAc,CAAC,GAAG,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAA;IAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IAChD,IAAI,QAAQ,EAAE;QACZ,OAAO,+BAAgB,CAAC,KAAK,EAAE,qCAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;KAClE;IAED,sBAAY,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,EAAE,YAAY,CAAC,CAAA;AAC/C,CAAC;AAVD,wCAUC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,MAAc;IACtC,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;AACtC,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,SAAiB;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;IACjD,IAAI,QAAQ,EAAE;QACZ,+BAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KACpC;SAAM;QACL,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;KACxC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AAC7E,CAAC;AARD,0BAQC;AAED;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAsB;IAC3D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACrE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAA;KAC5D;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;QAC/C,OAAO,GAAG,CAAA;KACX;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AAZD,4BAYC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,IAAY,EACZ,OAAsB;IAEtB,MAAM,MAAM,GAAa,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;SAC7C,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAExB,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;QAC/C,OAAO,MAAM,CAAA;KACd;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAC1C,CAAC;AAbD,8CAaC;AAED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,OAAsB;IAClE,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1C,MAAM,IAAI,SAAS,CACjB,6DAA6D,IAAI,IAAI;QACnE,4EAA4E,CAC/E,CAAA;AACH,CAAC;AAVD,0CAUC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAU;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;IACnD,IAAI,QAAQ,EAAE;QACZ,OAAO,+BAAgB,CAAC,QAAQ,EAAE,qCAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;KACvE;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IAC5B,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC,CAAA;AAC3D,CAAC;AARD,8BAQC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,OAAgB;IAC7C,eAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAFD,wCAEC;AAED,yEAAyE;AACzE,UAAU;AACV,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAAuB;IAC/C,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;IAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;AAChB,CAAC;AAJD,8BAIC;AAED,yEAAyE;AACzE,mBAAmB;AACnB,yEAAyE;AAEzE;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,CAAA;AAC5C,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,sBAAY,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAFD,sBAEC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CACnB,OAAuB,EACvB,aAAmC,EAAE;IAErC,sBAAY,CACV,OAAO,EACP,2BAAmB,CAAC,UAAU,CAAC,EAC/B,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CACxD,CAAA;AACH,CAAC;AATD,sBASC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CACrB,OAAuB,EACvB,aAAmC,EAAE;IAErC,sBAAY,CACV,SAAS,EACT,2BAAmB,CAAC,UAAU,CAAC,EAC/B,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CACxD,CAAA;AACH,CAAC;AATD,0BASC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CACpB,OAAuB,EACvB,aAAmC,EAAE;IAErC,sBAAY,CACV,QAAQ,EACR,2BAAmB,CAAC,UAAU,CAAC,EAC/B,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CACxD,CAAA;AACH,CAAC;AATD,wBASC;AAED;;;GAGG;AACH,SAAgB,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAFD,oBAEC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,eAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACtB,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,QAAQ;IACtB,eAAK,CAAC,UAAU,CAAC,CAAA;AACnB,CAAC;AAFD,4BAEC;AAED;;;;;;;GAOG;AACH,SAAsB,KAAK,CAAI,IAAY,EAAE,EAAoB;;QAC/D,UAAU,CAAC,IAAI,CAAC,CAAA;QAEhB,IAAI,MAAS,CAAA;QAEb,IAAI;YACF,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;SACpB;gBAAS;YACR,QAAQ,EAAE,CAAA;SACX;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CAAA;AAZD,sBAYC;AAED,yEAAyE;AACzE,uBAAuB;AACvB,yEAAyE;AAEzE;;;;;GAKG;AACH,8DAA8D;AAC9D,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAU;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,QAAQ,EAAE;QACZ,OAAO,+BAAgB,CAAC,OAAO,EAAE,qCAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;KACtE;IAED,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC,CAAA;AAC3D,CAAC;AAPD,8BAOC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;AAC3C,CAAC;AAFD,4BAEC;AAED,SAAsB,UAAU,CAAC,GAAY;;QAC3C,OAAO,MAAM,uBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;CAAA;AAFD,gCAEC;AAED;;GAEG;AACH,qCAAiC;AAAzB,kGAAA,OAAO,OAAA;AAEf;;GAEG;AACH,qCAAyC;AAAjC,0GAAA,eAAe,OAAA;AAEvB;;GAEG;AACH,2CAAqE;AAA7D,yGAAA,WAAW,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,4GAAA,cAAc,OAAA"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/file-command.d.ts b/node_modules/@actions/core/lib/file-command.d.ts new file mode 100644 index 0000000..2d1f2f4 --- /dev/null +++ b/node_modules/@actions/core/lib/file-command.d.ts @@ -0,0 +1,2 @@ +export declare function issueFileCommand(command: string, message: any): void; +export declare function prepareKeyValueMessage(key: string, value: any): string; diff --git a/node_modules/@actions/core/lib/file-command.js b/node_modules/@actions/core/lib/file-command.js new file mode 100644 index 0000000..2d0d738 --- /dev/null +++ b/node_modules/@actions/core/lib/file-command.js @@ -0,0 +1,58 @@ +"use strict"; +// For internal use, subject to change. +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +const fs = __importStar(require("fs")); +const os = __importStar(require("os")); +const uuid_1 = require("uuid"); +const utils_1 = require("./utils"); +function issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { + encoding: 'utf8' + }); +} +exports.issueFileCommand = issueFileCommand; +function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${uuid_1.v4()}`; + const convertedValue = utils_1.toCommandValue(value); + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + if (key.includes(delimiter)) { + throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + } + if (convertedValue.includes(delimiter)) { + throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + } + return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; +} +exports.prepareKeyValueMessage = prepareKeyValueMessage; +//# sourceMappingURL=file-command.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/file-command.js.map b/node_modules/@actions/core/lib/file-command.js.map new file mode 100644 index 0000000..b1a9d54 --- /dev/null +++ b/node_modules/@actions/core/lib/file-command.js.map @@ -0,0 +1 @@ +{"version":3,"file":"file-command.js","sourceRoot":"","sources":["../src/file-command.ts"],"names":[],"mappings":";AAAA,uCAAuC;;;;;;;;;;;;;;;;;;;;;;AAEvC,mCAAmC;AACnC,uDAAuD;AAEvD,uCAAwB;AACxB,uCAAwB;AACxB,+BAAiC;AACjC,mCAAsC;AAEtC,SAAgB,gBAAgB,CAAC,OAAe,EAAE,OAAY;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CACb,wDAAwD,OAAO,EAAE,CAClE,CAAA;KACF;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;KACrD;IAED,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,sBAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QACjE,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAA;AACJ,CAAC;AAdD,4CAcC;AAED,SAAgB,sBAAsB,CAAC,GAAW,EAAE,KAAU;IAC5D,MAAM,SAAS,GAAG,gBAAgB,SAAM,EAAE,EAAE,CAAA;IAC5C,MAAM,cAAc,GAAG,sBAAc,CAAC,KAAK,CAAC,CAAA;IAE5C,4EAA4E;IAC5E,6EAA6E;IAC7E,iBAAiB;IACjB,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,4DAA4D,SAAS,GAAG,CACzE,CAAA;KACF;IAED,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,6DAA6D,SAAS,GAAG,CAC1E,CAAA;KACF;IAED,OAAO,GAAG,GAAG,KAAK,SAAS,GAAG,EAAE,CAAC,GAAG,GAAG,cAAc,GAAG,EAAE,CAAC,GAAG,GAAG,SAAS,EAAE,CAAA;AAC9E,CAAC;AApBD,wDAoBC"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/oidc-utils.d.ts b/node_modules/@actions/core/lib/oidc-utils.d.ts new file mode 100644 index 0000000..657c7f4 --- /dev/null +++ b/node_modules/@actions/core/lib/oidc-utils.d.ts @@ -0,0 +1,7 @@ +export declare class OidcClient { + private static createHttpClient; + private static getRequestToken; + private static getIDTokenUrl; + private static getCall; + static getIDToken(audience?: string): Promise; +} diff --git a/node_modules/@actions/core/lib/oidc-utils.js b/node_modules/@actions/core/lib/oidc-utils.js new file mode 100644 index 0000000..f701277 --- /dev/null +++ b/node_modules/@actions/core/lib/oidc-utils.js @@ -0,0 +1,77 @@ +"use strict"; +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()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.OidcClient = void 0; +const http_client_1 = require("@actions/http-client"); +const auth_1 = require("@actions/http-client/lib/auth"); +const core_1 = require("./core"); +class OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + }; + return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions); + } + static getRequestToken() { + const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; + if (!token) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + } + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; + if (!runtimeUrl) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + } + return runtimeUrl; + } + static getCall(id_token_url) { + var _a; + return __awaiter(this, void 0, void 0, function* () { + const httpclient = OidcClient.createHttpClient(); + const res = yield httpclient + .getJson(id_token_url) + .catch(error => { + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.result.message}`); + }); + const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + if (!id_token) { + throw new Error('Response json body do not have ID Token field'); + } + return id_token; + }); + } + static getIDToken(audience) { + return __awaiter(this, void 0, void 0, function* () { + try { + // New ID Token is requested from action service + let id_token_url = OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + core_1.debug(`ID token url is ${id_token_url}`); + const id_token = yield OidcClient.getCall(id_token_url); + core_1.setSecret(id_token); + return id_token; + } + catch (error) { + throw new Error(`Error message: ${error.message}`); + } + }); + } +} +exports.OidcClient = OidcClient; +//# sourceMappingURL=oidc-utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/oidc-utils.js.map b/node_modules/@actions/core/lib/oidc-utils.js.map new file mode 100644 index 0000000..284fa1d --- /dev/null +++ b/node_modules/@actions/core/lib/oidc-utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"oidc-utils.js","sourceRoot":"","sources":["../src/oidc-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,sDAA+C;AAC/C,wDAAqE;AACrE,iCAAuC;AAKvC,MAAa,UAAU;IACb,MAAM,CAAC,gBAAgB,CAC7B,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,EAAE;QAEb,MAAM,cAAc,GAAmB;YACrC,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,QAAQ;SACrB,CAAA;QAED,OAAO,IAAI,wBAAU,CACnB,qBAAqB,EACrB,CAAC,IAAI,8BAAuB,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,EAC3D,cAAc,CACf,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,MAAM,CAAC,aAAa;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC9D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAO,OAAO,CAAC,YAAoB;;;YAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAA;YAEhD,MAAM,GAAG,GAAG,MAAM,UAAU;iBACzB,OAAO,CAAgB,YAAY,CAAC;iBACpC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,IAAI,KAAK,CACb;uBACa,KAAK,CAAC,UAAU;yBACd,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CACtC,CAAA;YACH,CAAC,CAAC,CAAA;YAEJ,MAAM,QAAQ,SAAG,GAAG,CAAC,MAAM,0CAAE,KAAK,CAAA;YAClC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;aACjE;YACD,OAAO,QAAQ,CAAA;;KAChB;IAED,MAAM,CAAO,UAAU,CAAC,QAAiB;;YACvC,IAAI;gBACF,gDAAgD;gBAChD,IAAI,YAAY,GAAW,UAAU,CAAC,aAAa,EAAE,CAAA;gBACrD,IAAI,QAAQ,EAAE;oBACZ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;oBACpD,YAAY,GAAG,GAAG,YAAY,aAAa,eAAe,EAAE,CAAA;iBAC7D;gBAED,YAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAA;gBAExC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBACvD,gBAAS,CAAC,QAAQ,CAAC,CAAA;gBACnB,OAAO,QAAQ,CAAA;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;aACnD;QACH,CAAC;KAAA;CACF;AAzED,gCAyEC"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/path-utils.d.ts b/node_modules/@actions/core/lib/path-utils.d.ts new file mode 100644 index 0000000..1fee9f3 --- /dev/null +++ b/node_modules/@actions/core/lib/path-utils.d.ts @@ -0,0 +1,25 @@ +/** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ +export declare function toPosixPath(pth: string): string; +/** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ +export declare function toWin32Path(pth: string): string; +/** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ +export declare function toPlatformPath(pth: string): string; diff --git a/node_modules/@actions/core/lib/path-utils.js b/node_modules/@actions/core/lib/path-utils.js new file mode 100644 index 0000000..7251c82 --- /dev/null +++ b/node_modules/@actions/core/lib/path-utils.js @@ -0,0 +1,58 @@ +"use strict"; +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; +const path = __importStar(require("path")); +/** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ +function toPosixPath(pth) { + return pth.replace(/[\\]/g, '/'); +} +exports.toPosixPath = toPosixPath; +/** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ +function toWin32Path(pth) { + return pth.replace(/[/]/g, '\\'); +} +exports.toWin32Path = toWin32Path; +/** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ +function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep); +} +exports.toPlatformPath = toPlatformPath; +//# sourceMappingURL=path-utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/path-utils.js.map b/node_modules/@actions/core/lib/path-utils.js.map new file mode 100644 index 0000000..7ab1cac --- /dev/null +++ b/node_modules/@actions/core/lib/path-utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../src/path-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAE5B;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AAFD,kCAEC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAFD,kCAEC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAFD,wCAEC"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/summary.d.ts b/node_modules/@actions/core/lib/summary.d.ts new file mode 100644 index 0000000..bb79255 --- /dev/null +++ b/node_modules/@actions/core/lib/summary.d.ts @@ -0,0 +1,202 @@ +export declare const SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; +export declare const SUMMARY_DOCS_URL = "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary"; +export declare type SummaryTableRow = (SummaryTableCell | string)[]; +export interface SummaryTableCell { + /** + * Cell content + */ + data: string; + /** + * Render cell as header + * (optional) default: false + */ + header?: boolean; + /** + * Number of columns the cell extends + * (optional) default: '1' + */ + colspan?: string; + /** + * Number of rows the cell extends + * (optional) default: '1' + */ + rowspan?: string; +} +export interface SummaryImageOptions { + /** + * The width of the image in pixels. Must be an integer without a unit. + * (optional) + */ + width?: string; + /** + * The height of the image in pixels. Must be an integer without a unit. + * (optional) + */ + height?: string; +} +export interface SummaryWriteOptions { + /** + * Replace all existing content in summary file with buffer contents + * (optional) default: false + */ + overwrite?: boolean; +} +declare class Summary { + private _buffer; + private _filePath?; + constructor(); + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + private filePath; + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + private wrap; + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options?: SummaryWriteOptions): Promise; + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear(): Promise; + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify(): string; + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer(): boolean; + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer(): Summary; + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text: string, addEOL?: boolean): Summary; + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL(): Summary; + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code: string, lang?: string): Summary; + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items: string[], ordered?: boolean): Summary; + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows: SummaryTableRow[]): Summary; + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label: string, content: string): Summary; + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src: string, alt: string, options?: SummaryImageOptions): Summary; + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text: string, level?: number | string): Summary; + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator(): Summary; + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak(): Summary; + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text: string, cite?: string): Summary; + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text: string, href: string): Summary; +} +/** + * @deprecated use `core.summary` + */ +export declare const markdownSummary: Summary; +export declare const summary: Summary; +export {}; diff --git a/node_modules/@actions/core/lib/summary.js b/node_modules/@actions/core/lib/summary.js new file mode 100644 index 0000000..04a335b --- /dev/null +++ b/node_modules/@actions/core/lib/summary.js @@ -0,0 +1,283 @@ +"use strict"; +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()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; +const os_1 = require("os"); +const fs_1 = require("fs"); +const { access, appendFile, writeFile } = fs_1.promises; +exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; +exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; +class Summary { + constructor() { + this._buffer = ''; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath; + } + const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; + if (!pathFromEnv) { + throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + } + try { + yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK); + } + catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + this._filePath = pathFromEnv; + return this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs) + .map(([key, value]) => ` ${key}="${value}"`) + .join(''); + if (!content) { + return `<${tag}${htmlAttrs}>`; + } + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }); + return this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: true }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = ''; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(os_1.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, (lang && { lang })); + const element = this.wrap('pre', this.wrap('code', code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = false) { + const tag = ordered ? 'ol' : 'ul'; + const listItems = items.map(item => this.wrap('li', item)).join(''); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows + .map(row => { + const cells = row + .map(cell => { + if (typeof cell === 'string') { + return this.wrap('td', cell); + } + const { header, data, colspan, rowspan } = cell; + const tag = header ? 'th' : 'td'; + const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan })); + return this.wrap(tag, data, attrs); + }) + .join(''); + return this.wrap('tr', cells); + }) + .join(''); + const element = this.wrap('table', tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap('details', this.wrap('summary', label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + const { width, height } = options || {}; + const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height })); + const element = this.wrap('img', null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) + ? tag + : 'h1'; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap('hr', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap('br', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, (cite && { cite })); + const element = this.wrap('blockquote', text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap('a', text, { href }); + return this.addRaw(element).addEOL(); + } +} +const _summary = new Summary(); +/** + * @deprecated use `core.summary` + */ +exports.markdownSummary = _summary; +exports.summary = _summary; +//# sourceMappingURL=summary.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/summary.js.map b/node_modules/@actions/core/lib/summary.js.map new file mode 100644 index 0000000..d598f26 --- /dev/null +++ b/node_modules/@actions/core/lib/summary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2BAAsB;AACtB,2BAAsC;AACtC,MAAM,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC,GAAG,aAAQ,CAAA;AAEnC,QAAA,eAAe,GAAG,qBAAqB,CAAA;AACvC,QAAA,gBAAgB,GAC3B,2GAA2G,CAAA;AA+C7G,MAAM,OAAO;IAIX;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED;;;;;OAKG;IACW,QAAQ;;YACpB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,IAAI,CAAC,SAAS,CAAA;aACtB;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAA;YAChD,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,IAAI,KAAK,CACb,4CAA4C,uBAAe,6DAA6D,CACzH,CAAA;aACF;YAED,IAAI;gBACF,MAAM,MAAM,CAAC,WAAW,EAAE,cAAS,CAAC,IAAI,GAAG,cAAS,CAAC,IAAI,CAAC,CAAA;aAC3D;YAAC,WAAM;gBACN,MAAM,IAAI,KAAK,CACb,mCAAmC,WAAW,0DAA0D,CACzG,CAAA;aACF;YAED,IAAI,CAAC,SAAS,GAAG,WAAW,CAAA;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAA;QACvB,CAAC;KAAA;IAED;;;;;;;;OAQG;IACK,IAAI,CACV,GAAW,EACX,OAAsB,EACtB,QAAuC,EAAE;QAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,KAAK,GAAG,CAAC;aAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;QAEX,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,GAAG,GAAG,SAAS,GAAG,CAAA;SAC9B;QAED,OAAO,IAAI,GAAG,GAAG,SAAS,IAAI,OAAO,KAAK,GAAG,GAAG,CAAA;IAClD,CAAC;IAED;;;;;;OAMG;IACG,KAAK,CAAC,OAA6B;;YACvC,MAAM,SAAS,GAAG,CAAC,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA,CAAA;YACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;YACtC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;YACpD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;QAC3B,CAAC;KAAA;IAED;;;;OAIG;IACG,KAAK;;YACT,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;QACpD,CAAC;KAAA;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAY,EAAE,MAAM,GAAG,KAAK;QACjC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAA;QACpB,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAG,CAAC,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,IAAY,EAAE,IAAa;QACtC,MAAM,KAAK,qBACN,CAAC,IAAI,IAAI,EAAC,IAAI,EAAC,CAAC,CACpB,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,KAAe,EAAE,OAAO,GAAG,KAAK;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,IAAuB;QAC9B,MAAM,SAAS,GAAG,IAAI;aACnB,GAAG,CAAC,GAAG,CAAC,EAAE;YACT,MAAM,KAAK,GAAG,GAAG;iBACd,GAAG,CAAC,IAAI,CAAC,EAAE;gBACV,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;iBAC7B;gBAED,MAAM,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAC,GAAG,IAAI,CAAA;gBAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;gBAChC,MAAM,KAAK,mCACN,CAAC,OAAO,IAAI,EAAC,OAAO,EAAC,CAAC,GACtB,CAAC,OAAO,IAAI,EAAC,OAAO,EAAC,CAAC,CAC1B,CAAA;gBAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YACpC,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,CAAA;YAEX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAA;QAEX,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,KAAa,EAAE,OAAe;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAA;QAC3E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAW,EAAE,GAAW,EAAE,OAA6B;QAC9D,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,IAAI,EAAE,CAAA;QACrC,MAAM,KAAK,mCACN,CAAC,KAAK,IAAI,EAAC,KAAK,EAAC,CAAC,GAClB,CAAC,MAAM,IAAI,EAAC,MAAM,EAAC,CAAC,CACxB,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,kBAAG,GAAG,EAAE,GAAG,IAAK,KAAK,EAAE,CAAA;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,IAAY,EAAE,KAAuB;QAC9C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;QACvB,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnE,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,CAAA;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAY,EAAE,IAAa;QAClC,MAAM,KAAK,qBACN,CAAC,IAAI,IAAI,EAAC,IAAI,EAAC,CAAC,CACpB,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,IAAY,EAAE,IAAY;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAA;AAE9B;;GAEG;AACU,QAAA,eAAe,GAAG,QAAQ,CAAA;AAC1B,QAAA,OAAO,GAAG,QAAQ,CAAA"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/utils.d.ts b/node_modules/@actions/core/lib/utils.d.ts new file mode 100644 index 0000000..3b9e28d --- /dev/null +++ b/node_modules/@actions/core/lib/utils.d.ts @@ -0,0 +1,14 @@ +import { AnnotationProperties } from './core'; +import { CommandProperties } from './command'; +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +export declare function toCommandValue(input: any): string; +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ +export declare function toCommandProperties(annotationProperties: AnnotationProperties): CommandProperties; diff --git a/node_modules/@actions/core/lib/utils.js b/node_modules/@actions/core/lib/utils.js new file mode 100644 index 0000000..9b5ca44 --- /dev/null +++ b/node_modules/@actions/core/lib/utils.js @@ -0,0 +1,40 @@ +"use strict"; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.toCommandProperties = exports.toCommandValue = void 0; +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +exports.toCommandValue = toCommandValue; +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ +function toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {}; + } + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; +} +exports.toCommandProperties = toCommandProperties; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/utils.js.map b/node_modules/@actions/core/lib/utils.js.map new file mode 100644 index 0000000..8211bb7 --- /dev/null +++ b/node_modules/@actions/core/lib/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,uDAAuD;;;AAKvD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAU;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,OAAO,EAAE,CAAA;KACV;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;QAC/D,OAAO,KAAe,CAAA;KACvB;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAPD,wCAOC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,oBAA0C;IAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE;QAC7C,OAAO,EAAE,CAAA;KACV;IAED,OAAO;QACL,KAAK,EAAE,oBAAoB,CAAC,KAAK;QACjC,IAAI,EAAE,oBAAoB,CAAC,IAAI;QAC/B,IAAI,EAAE,oBAAoB,CAAC,SAAS;QACpC,OAAO,EAAE,oBAAoB,CAAC,OAAO;QACrC,GAAG,EAAE,oBAAoB,CAAC,WAAW;QACrC,SAAS,EAAE,oBAAoB,CAAC,SAAS;KAC1C,CAAA;AACH,CAAC;AAfD,kDAeC"} \ No newline at end of file diff --git a/node_modules/@actions/core/package.json b/node_modules/@actions/core/package.json new file mode 100644 index 0000000..1f3824d --- /dev/null +++ b/node_modules/@actions/core/package.json @@ -0,0 +1,46 @@ +{ + "name": "@actions/core", + "version": "1.10.0", + "description": "Actions core lib", + "keywords": [ + "github", + "actions", + "core" + ], + "homepage": "https://github.com/actions/toolkit/tree/main/packages/core", + "license": "MIT", + "main": "lib/core.js", + "types": "lib/core.d.ts", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib", + "!.DS_Store" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/actions/toolkit.git", + "directory": "packages/core" + }, + "scripts": { + "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", + "test": "echo \"Error: run tests from root\" && exit 1", + "tsc": "tsc" + }, + "bugs": { + "url": "https://github.com/actions/toolkit/issues" + }, + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@types/node": "^12.0.2", + "@types/uuid": "^8.3.4" + } +} diff --git a/node_modules/@actions/github/README.md b/node_modules/@actions/github/README.md new file mode 100644 index 0000000..02e9be0 --- /dev/null +++ b/node_modules/@actions/github/README.md @@ -0,0 +1,97 @@ +# `@actions/github` + +> A hydrated Octokit client. + +## Usage + +Returns an authenticated Octokit client that follows the machine [proxy settings](https://help.github.com/en/actions/hosting-your-own-runners/using-a-proxy-server-with-self-hosted-runners) and correctly sets GHES base urls. See https://octokit.github.io/rest.js for the API. + +```js +const github = require('@actions/github'); +const core = require('@actions/core'); + +async function run() { + // This should be a token with access to your repository scoped in as a secret. + // The YML workflow will need to set myToken with the GitHub Secret Token + // myToken: ${{ secrets.GITHUB_TOKEN }} + // https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secret + const myToken = core.getInput('myToken'); + + const octokit = github.getOctokit(myToken) + + // You can also pass in additional options as a second parameter to getOctokit + // const octokit = github.getOctokit(myToken, {userAgent: "MyActionVersion1"}); + + const { data: pullRequest } = await octokit.pulls.get({ + owner: 'octokit', + repo: 'rest.js', + pull_number: 123, + mediaType: { + format: 'diff' + } + }); + + console.log(pullRequest); +} + +run(); +``` + +You can also make GraphQL requests. See https://github.com/octokit/graphql.js for the API. + +```js +const result = await octokit.graphql(query, variables); +``` + +Finally, you can get the context of the current action: + +```js +const github = require('@actions/github'); + +const context = github.context; + +const newIssue = await octokit.issues.create({ + ...context.repo, + title: 'New issue!', + body: 'Hello Universe!' +}); +``` + +## Webhook payload typescript definitions + +The npm module `@octokit/webhooks` provides type definitions for the response payloads. You can cast the payload to these types for better type information. + +First, install the npm module `npm install @octokit/webhooks` + +Then, assert the type based on the eventName +```ts +import * as core from '@actions/core' +import * as github from '@actions/github' +import * as Webhooks from '@octokit/webhooks' +if (github.context.eventName === 'push') { + const pushPayload = github.context.payload as Webhooks.WebhookPayloadPush + core.info(`The head commit is: ${pushPayload.head}`) +} +``` + +## Extending the Octokit instance +`@octokit/core` now supports the [plugin architecture](https://github.com/octokit/core.js#plugins). You can extend the GitHub instance using plugins. + +For example, using the `@octokit/plugin-enterprise-server` you can now access enterprise admin apis on GHES instances. + +```ts +import { GitHub, getOctokitOptions } from '@actions/github/lib/utils' +import { enterpriseServer220Admin } from '@octokit/plugin-enterprise-server' + +const octokit = GitHub.plugin(enterpriseServer220Admin) +// or override some of the default values as well +// const octokit = GitHub.plugin(enterpriseServer220Admin).defaults({userAgent: "MyNewUserAgent"}) + +const myToken = core.getInput('myToken'); +const myOctokit = new octokit(getOctokitOptions(token)) +// Create a new user +myOctokit.enterpriseAdmin.createUser({ + login: "testuser", + email: "testuser@test.com", +}); +``` diff --git a/node_modules/@actions/github/lib/context.d.ts b/node_modules/@actions/github/lib/context.d.ts new file mode 100644 index 0000000..daab690 --- /dev/null +++ b/node_modules/@actions/github/lib/context.d.ts @@ -0,0 +1,29 @@ +import { WebhookPayload } from './interfaces'; +export declare class Context { + /** + * Webhook payload object that triggered the workflow + */ + payload: WebhookPayload; + eventName: string; + sha: string; + ref: string; + workflow: string; + action: string; + actor: string; + job: string; + runNumber: number; + runId: number; + /** + * Hydrate the context from the environment + */ + constructor(); + get issue(): { + owner: string; + repo: string; + number: number; + }; + get repo(): { + owner: string; + repo: string; + }; +} diff --git a/node_modules/@actions/github/lib/context.js b/node_modules/@actions/github/lib/context.js new file mode 100644 index 0000000..dd4d10a --- /dev/null +++ b/node_modules/@actions/github/lib/context.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Context = void 0; +const fs_1 = require("fs"); +const os_1 = require("os"); +class Context { + /** + * Hydrate the context from the environment + */ + constructor() { + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) { + if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) { + this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); + } + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); + } + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + this.job = process.env.GITHUB_JOB; + this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); + this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { owner, repo }; + } + if (this.payload.repository) { + return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name + }; + } + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } +} +exports.Context = Context; +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/context.js.map b/node_modules/@actions/github/lib/context.js.map new file mode 100644 index 0000000..9c4eafe --- /dev/null +++ b/node_modules/@actions/github/lib/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAEA,2BAA2C;AAC3C,2BAAsB;AAEtB,MAAa,OAAO;IAgBlB;;OAEG;IACH;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,IAAI,eAAU,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CACvB,iBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAChE,CAAA;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;gBAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,kBAAkB,QAAG,EAAE,CAAC,CAAA;aACvE;SACF;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAA;QACxD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAyB,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAA;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAsB,CAAA;QAC/C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAA2B,EAAE,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAuB,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,IAAI,KAAK;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,uCACK,IAAI,CAAC,IAAI,KACZ,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,MAAM,IAClE;IACH,CAAC;IAED,IAAI,IAAI;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAA;SACrB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC3B,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;gBAC1C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;aACnC,CAAA;SACF;QAED,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;CACF;AApED,0BAoEC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/github.d.ts b/node_modules/@actions/github/lib/github.d.ts new file mode 100644 index 0000000..90c3b98 --- /dev/null +++ b/node_modules/@actions/github/lib/github.d.ts @@ -0,0 +1,11 @@ +import * as Context from './context'; +import { GitHub } from './utils'; +import { OctokitOptions } from '@octokit/core/dist-types/types'; +export declare const context: Context.Context; +/** + * Returns a hydrated octokit ready to use for GitHub Actions + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +export declare function getOctokit(token: string, options?: OctokitOptions): InstanceType; diff --git a/node_modules/@actions/github/lib/github.js b/node_modules/@actions/github/lib/github.js new file mode 100644 index 0000000..e30e81e --- /dev/null +++ b/node_modules/@actions/github/lib/github.js @@ -0,0 +1,36 @@ +"use strict"; +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getOctokit = exports.context = void 0; +const Context = __importStar(require("./context")); +const utils_1 = require("./utils"); +exports.context = new Context.Context(); +/** + * Returns a hydrated octokit ready to use for GitHub Actions + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokit(token, options) { + return new utils_1.GitHub(utils_1.getOctokitOptions(token, options)); +} +exports.getOctokit = getOctokit; +//# sourceMappingURL=github.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/github.js.map b/node_modules/@actions/github/lib/github.js.map new file mode 100644 index 0000000..717d03e --- /dev/null +++ b/node_modules/@actions/github/lib/github.js.map @@ -0,0 +1 @@ +{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,mCAAiD;AAKpC,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C;;;;;GAKG;AACH,SAAgB,UAAU,CACxB,KAAa,EACb,OAAwB;IAExB,OAAO,IAAI,cAAM,CAAC,yBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;AACtD,CAAC;AALD,gCAKC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/interfaces.d.ts b/node_modules/@actions/github/lib/interfaces.d.ts new file mode 100644 index 0000000..f810333 --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.d.ts @@ -0,0 +1,40 @@ +export interface PayloadRepository { + [key: string]: any; + full_name?: string; + name: string; + owner: { + [key: string]: any; + login: string; + name?: string; + }; + html_url?: string; +} +export interface WebhookPayload { + [key: string]: any; + repository?: PayloadRepository; + issue?: { + [key: string]: any; + number: number; + html_url?: string; + body?: string; + }; + pull_request?: { + [key: string]: any; + number: number; + html_url?: string; + body?: string; + }; + sender?: { + [key: string]: any; + type: string; + }; + action?: string; + installation?: { + id: number; + [key: string]: any; + }; + comment?: { + id: number; + [key: string]: any; + }; +} diff --git a/node_modules/@actions/github/lib/interfaces.js b/node_modules/@actions/github/lib/interfaces.js new file mode 100644 index 0000000..a660b5e --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.js @@ -0,0 +1,4 @@ +"use strict"; +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/interfaces.js.map b/node_modules/@actions/github/lib/interfaces.js.map new file mode 100644 index 0000000..dc2c960 --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,uDAAuD"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/internal/utils.d.ts b/node_modules/@actions/github/lib/internal/utils.d.ts new file mode 100644 index 0000000..5790d91 --- /dev/null +++ b/node_modules/@actions/github/lib/internal/utils.d.ts @@ -0,0 +1,6 @@ +/// +import * as http from 'http'; +import { OctokitOptions } from '@octokit/core/dist-types/types'; +export declare function getAuthString(token: string, options: OctokitOptions): string | undefined; +export declare function getProxyAgent(destinationUrl: string): http.Agent; +export declare function getApiBaseUrl(): string; diff --git a/node_modules/@actions/github/lib/internal/utils.js b/node_modules/@actions/github/lib/internal/utils.js new file mode 100644 index 0000000..197a441 --- /dev/null +++ b/node_modules/@actions/github/lib/internal/utils.js @@ -0,0 +1,43 @@ +"use strict"; +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; +const httpClient = __importStar(require("@actions/http-client")); +function getAuthString(token, options) { + if (!token && !options.auth) { + throw new Error('Parameter token or opts.auth is required'); + } + else if (token && options.auth) { + throw new Error('Parameters token and opts.auth may not both be specified'); + } + return typeof options.auth === 'string' ? options.auth : `token ${token}`; +} +exports.getAuthString = getAuthString; +function getProxyAgent(destinationUrl) { + const hc = new httpClient.HttpClient(); + return hc.getAgent(destinationUrl); +} +exports.getProxyAgent = getProxyAgent; +function getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; +} +exports.getApiBaseUrl = getApiBaseUrl; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/internal/utils.js.map b/node_modules/@actions/github/lib/internal/utils.js.map new file mode 100644 index 0000000..f1f519d --- /dev/null +++ b/node_modules/@actions/github/lib/internal/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,iEAAkD;AAGlD,SAAgB,aAAa,CAC3B,KAAa,EACb,OAAuB;IAEvB,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;SAAM,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;KAC5E;IAED,OAAO,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAA;AAC3E,CAAC;AAXD,sCAWC;AAED,SAAgB,aAAa,CAAC,cAAsB;IAClD,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAA;IACtC,OAAO,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AACpC,CAAC;AAHD,sCAGC;AAED,SAAgB,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,wBAAwB,CAAA;AAClE,CAAC;AAFD,sCAEC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/utils.d.ts b/node_modules/@actions/github/lib/utils.d.ts new file mode 100644 index 0000000..0015a35 --- /dev/null +++ b/node_modules/@actions/github/lib/utils.d.ts @@ -0,0 +1,21 @@ +import * as Context from './context'; +import { Octokit } from '@octokit/core'; +import { OctokitOptions } from '@octokit/core/dist-types/types'; +export declare const context: Context.Context; +export declare const GitHub: (new (...args: any[]) => { + [x: string]: any; +}) & { + new (...args: any[]): { + [x: string]: any; + }; + plugins: any[]; +} & typeof Octokit & import("@octokit/core/dist-types/types").Constructor; +/** + * Convience function to correctly format Octokit Options to pass into the constructor. + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +export declare function getOctokitOptions(token: string, options?: OctokitOptions): OctokitOptions; diff --git a/node_modules/@actions/github/lib/utils.js b/node_modules/@actions/github/lib/utils.js new file mode 100644 index 0000000..b066c22 --- /dev/null +++ b/node_modules/@actions/github/lib/utils.js @@ -0,0 +1,54 @@ +"use strict"; +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getOctokitOptions = exports.GitHub = exports.context = void 0; +const Context = __importStar(require("./context")); +const Utils = __importStar(require("./internal/utils")); +// octokit + plugins +const core_1 = require("@octokit/core"); +const plugin_rest_endpoint_methods_1 = require("@octokit/plugin-rest-endpoint-methods"); +const plugin_paginate_rest_1 = require("@octokit/plugin-paginate-rest"); +exports.context = new Context.Context(); +const baseUrl = Utils.getApiBaseUrl(); +const defaults = { + baseUrl, + request: { + agent: Utils.getProxyAgent(baseUrl) + } +}; +exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults); +/** + * Convience function to correctly format Octokit Options to pass into the constructor. + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokitOptions(token, options) { + const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller + // Auth + const auth = Utils.getAuthString(token, opts); + if (auth) { + opts.auth = auth; + } + return opts; +} +exports.getOctokitOptions = getOctokitOptions; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/utils.js.map b/node_modules/@actions/github/lib/utils.js.map new file mode 100644 index 0000000..3a6f6b4 --- /dev/null +++ b/node_modules/@actions/github/lib/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,wDAAyC;AAEzC,oBAAoB;AACpB,wCAAqC;AAErC,wFAAyE;AACzE,wEAA0D;AAE7C,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAA;AACrC,MAAM,QAAQ,GAAG;IACf,OAAO;IACP,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;KACpC;CACF,CAAA;AAEY,QAAA,MAAM,GAAG,cAAO,CAAC,MAAM,CAClC,kDAAmB,EACnB,mCAAY,CACb,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAEpB;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,KAAa,EACb,OAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA,CAAC,iEAAiE;IAE/G,OAAO;IACP,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7C,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;KACjB;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAbD,8CAaC"} \ No newline at end of file diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/LICENSE b/node_modules/@actions/github/node_modules/@actions/http-client/LICENSE new file mode 100644 index 0000000..5823a51 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/LICENSE @@ -0,0 +1,21 @@ +Actions Http Client for Node.js + +Copyright (c) GitHub, Inc. + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/README.md b/node_modules/@actions/github/node_modules/@actions/http-client/README.md new file mode 100644 index 0000000..be61eb3 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/README.md @@ -0,0 +1,79 @@ + +

+ +

+ +# Actions Http-Client + +[![Http Status](https://github.com/actions/http-client/workflows/http-tests/badge.svg)](https://github.com/actions/http-client/actions) + +A lightweight HTTP client optimized for use with actions, TypeScript with generics and async await. + +## Features + + - HTTP client with TypeScript generics and async/await/Promises + - Typings included so no need to acquire separately (great for intellisense and no versioning drift) + - [Proxy support](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/about-self-hosted-runners#using-a-proxy-server-with-self-hosted-runners) just works with actions and the runner + - Targets ES2019 (runner runs actions with node 12+). Only supported on node 12+. + - Basic, Bearer and PAT Support out of the box. Extensible handlers for others. + - Redirects supported + +Features and releases [here](./RELEASES.md) + +## Install + +``` +npm install @actions/http-client --save +``` + +## Samples + +See the [HTTP](./__tests__) tests for detailed examples. + +## Errors + +### HTTP + +The HTTP client does not throw unless truly exceptional. + +* A request that successfully executes resulting in a 404, 500 etc... will return a response object with a status code and a body. +* Redirects (3xx) will be followed by default. + +See [HTTP tests](./__tests__) for detailed examples. + +## Debugging + +To enable detailed console logging of all HTTP requests and responses, set the NODE_DEBUG environment varible: + +``` +export NODE_DEBUG=http +``` + +## Node support + +The http-client is built using the latest LTS version of Node 12. It may work on previous node LTS versions but it's tested and officially supported on Node12+. + +## Support and Versioning + +We follow semver and will hold compatibility between major versions and increment the minor version with new features and capabilities (while holding compat). + +## Contributing + +We welcome PRs. Please create an issue and if applicable, a design before proceeding with code. + +once: + +```bash +$ npm install +``` + +To build: + +```bash +$ npm run build +``` + +To run all tests: +```bash +$ npm test +``` diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md b/node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md new file mode 100644 index 0000000..935178a --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/RELEASES.md @@ -0,0 +1,26 @@ +## Releases + +## 1.0.10 + +Contains a bug fix where proxy is defined without a user and password. see [PR here](https://github.com/actions/http-client/pull/42) + +## 1.0.9 +Throw HttpClientError instead of a generic Error from the \Json() helper methods when the server responds with a non-successful status code. + +## 1.0.8 +Fixed security issue where a redirect (e.g. 302) to another domain would pass headers. The fix was to strip the authorization header if the hostname was different. More [details in PR #27](https://github.com/actions/http-client/pull/27) + +## 1.0.7 +Update NPM dependencies and add 429 to the list of HttpCodes + +## 1.0.6 +Automatically sends Content-Type and Accept application/json headers for \Json() helper methods if not set in the client or parameters. + +## 1.0.5 +Adds \Json() helper methods for json over http scenarios. + +## 1.0.4 +Started to add \Json() helper methods. Do not use this release for that. Use >= 1.0.5 since there was an issue with types. + +## 1.0.1 to 1.0.3 +Adds proxy support. diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/actions.png b/node_modules/@actions/github/node_modules/@actions/http-client/actions.png new file mode 100644 index 0000000000000000000000000000000000000000..1857ef375592b5bbce3f2b225865d32428c13acb GIT binary patch literal 33889 zcmdSAWpo|Qt{`fRDQ0Hon3-{RMHd;v*6ILy$;QPLW6i;9yF`M$b-X%*4t`#KA?+ z#Lmjd!v2MbnURT$fsvDeiG_}liJOs~n~j6$UyTGv&B4TsTUk{6U$lUCd?eqTob0$6 z7+hUl>0Mdq0S@L2Ok7+*9Lx;N%yd8qI!AX~Cqp+nTSwA=V-PiUGqpm$->BgQ>Nt zjj64ZBM_G9Kd^S+08RkMZ-D;|>i=~APXvIXm6Q7qjsJEmHa7nu;pimh0%YS~0{L&D z9aY`!Oc|6-9Rbb`#-?H}z+sa9;l_?z#KF|i3E-d#09gNfq7?r>^ zQFH*9Sy%%*9F--6iKN6t*qON4+3A?+nf?w}PL5m3*3rq(*4R`^l#c``9(oH46K)PB zE@o3k7Bf0CP9sJ-RxV=>I!;bjLpoLyBMwt8BMv53HXxzDbH*(SFn0c<1pj{D&H2-K1x1@z5a9-X2WjrdT_W!!FwjlbeFx-a5e++?-#Q2W}n3|CM z>#@cEwFLe_>-x1p?x8CM7DQ>Xvbu>DsQVHXoAhy>gqn z>gjO-V?maH7Jj?#i42M?D)#mzCxD8^MN~)-DP~>fTP~Eaq_D@u-aXHQd^VTk z*#p~?@D6P5-#$zn4QM@GVC$S}5kA}ow(HF`j3C7vn>+O_4d)TbAk)uwf) z8;`w+c_-s`{uq~fjZSKU_(txjUVgLF*r5@ox2}yds~nRvKJyBai8*h+XH2)_>wTS z>l>Cf1-`Q0bUD!G6Sg1=Z<@HccOuqJ)EsrAraGJyemSn=tSgGU-n(ge*Qke?Lon^l z?f1>*6$Tmu5zz`T$xn#I@~f& z)pq!{S}#k>bKTr=N^hC(h);+CEkfc1iXaJ9q0Y#`1A*|Yu1<@p)7(Dd(r7v8b&;db zu$R>JYHJ~4F>}(7bbZ6G1k|A{pfV+U6N2{EUV5Od|Hk>Y#Q${^^64;TR=x9xurQK0 zu3rbGQIv=kNf|UT0AxS>S27VABpwn9p!2)Xnam!MLiW|{D#oal$#a2e-HeZ2dS;se z@`zkYY480XjfMtl^s;#@3L3g9KCgToH`{B56`>S-+msKMuhddBK6q)MI=vtm0uj|~ zNAa+{UxOgkS5+93PuEQTir%EnoqMmh7l8pBU*%fYcygXFQ#fzF)-sOev%*Hr5*l|Qyo3@&8%9t6QQm@_JH{{3oCP_Azu?;k zcAQh%v=Hv zhbCMA5+8oN%C?IdyQ5s%+dW`Cg(lNylrZhV(L{L8{y2;9Oay4)}%s;!3-7zJ-?i zQ6<)XIp58`w70Ia`zp(?I|{RNLM+eit)nk{^19n_n8oUlJVgpOa+^w42j^q?oGB-z4tGyF#M9r(w8^bq_8lF^DllFIQre4Y@tMkw? zkBWO$ZtWG}i&|sX`!(tYK+Z&&3MxZHdHzVPXu6I+DsyBzC{8nLs!R}rg6$oheC0i~ z+h4t)aHA)*nY^!fD6cc$6r*|^y;z4F8Xpbxr`qHCfE+`Q)t}kSBsPg~+orc$jo2Jl5r%Z*sut1@U940uk?wYH?73~ksYH4FLwAS)n)a7$OSL1yPaQje?MRSE`^?ZbodVPvxus+MXIGbB!(vwU6~tN z4V*196SUlB`3oiWMnY4|1dq}4vRT8|4M7n1uoCXE**BlNHrFN_+Db$LthFSf>|Y;? zCJEBiN^0n8YOx>W+h^M|sKC{1#`ueu@7B4iq`$R+#1WJP;&OY`>KwiQN(Tj1Hxscj z&u0OlC)2)i$1YlZuT=I6u16Gn*3OnR!w{i#R~|KkXOuTTalu8^3Q;&6ntO>e1NjS5 zabyBs9HY#zBCKz)*Q60%D7jQ6x!fyB07-n6=En>S@1;@n+~e$LWwA_DB0R;NOKs!6 z4e`v^AMk`3Eg$VBDmZk97qKS~*>O^2SdAN;MFgygqP$n`gi#S={DJ>SxQ2x!L3vw> zlCk=Qm^O3gJ*OgnuwKR}a$9hP7TXR=4thakK^euwzR9rUkEv-b5TKk*z+4!uNfjn~A>jGPV-|pP6~@Twd|@oAm9M3i zlOEL3LR;+}Kd=i@c2baZ&_<%09w|Ze@iF)8O1Iqhm{$nIkSrt$DFfjdA^Qj#tEyY~ zeJJ8bMI5ZljqVD&O>SN@((oc~(zbj}uQq--%R5 zCSCI&DnD~)zpdu);cmQ4hvk0^dI*})1*Hxwugk78Qa9_Qq+4(rR1rRBPW;m8BfPcP z^y6SO{m!&Cy5ZT(&_bL3gE-Mc^!J#4c*rgr{OFk)+#kV;h&Gm zPJiZ_*~qoqVqA@fHfzaZCC{p?;u`%DzgYyOy(s|U-NeT0&O&-uttsk@ODYApq*?vz zo9803%|-XljrV%!?sna;P1szSXySZ)5R+~DXL+2-CZ&xoh zAr!d4g9N1p4i5!#6pVF_Og&Jj=<&I^6w7mb9A;gcOf_uv8=1$-7_xf~4N0%YITI?7 z+#E8k`8MlFb!Jg*zgU?_xRjP*xRUr|LHl0xi9mVVq|Nd?u%K2&yE#y)+ct}0A4#HF zOP2-S9?x$V7?5r(B*X*cI> zWx7wV#oezuAEkM*{#062W)j@(0GpZ*+-&dwcfo~2Zl?fOqXUPaGPcplk5%_t^n{nd zVD9X&fLJ}45sCDDQ$j?%J47_E1oH((d2et^Y!Ms45Vsr3>KiIO(irvlgSVz@_y@x* z5n6SzW9Pgo%0f{ zmI`V@=<~ai$7&J~S}clWX<^>;@SKRTP~Zw(IK*jh$wso=vv4#^Q90EMHGDU)k|jt2 zpFebS`bhrJwchlVNn48AqauE(MasJ6N#k3oa6utNP@X`f<#}2vNe=~=M5Q8_<$}OM zIHqMV2`FSF^e`{gT|NW)RV!+{_&d&g{S&_kg=;x%K2?D3WPyz*>K%(2^IJPySaTzq z@Q^6pMz{XhM^jX>Iv}n%q%XKc`6keK#{8(#ks@@l^SMA}rRJAfT5WLndS@_yhcq&I zq2$8@~RomQQ88|x3}+mCY#^3a01Ev)*k&`@|pJ8LR0uVS5rWJLN)M{AZu>ez}^oKWBmSIh9ZQ`%sT7P`Ok&-}oB zI;p=B^k-Af&| z2_i`$a3KQRmmK_67ESvdjp@-78czdXT?RJQlq!fR8Dh4Ny+!^MzH*CN$}lt>Gezo4Mfdvkn5{KaV?h=O|Mp9I zFYTv2=W@`_=yW(%J1CwQa^z-Ar zn#uvPkWlJ`537bveayM1JX)#PGKPMwKU%|Gl)ne*Sg#J4BL4M-s(4PwmQowY^4fD} zkNinF&&1if9L?@KmeBAJc#_sV?Cq-Hc`1rFQk+S_>RNIJ6U1q7D*1cZNIoa~lPp90 ztF5{F51AJueduyI--5lRVZuM{vEfw8IY<|?KXt6Q*gFdF+=!5`$3EPjMc^Qij*=FL z!Ehl9PEaECA@*>14X#Z77%-08G!Z;}Pb*`gzo;%XTIP@Er0G`w+P&IEzR^OkMfcPm zJq*<9{y$os|9s6Ob5=1+xk~W^e{asut4-uB*kDcHcMF~8HAr$R_E;+MaCAqX;Km+p#6dKhwkaG`>fVpwrX~d(?$7~pV*;cw4$Y}3mF#Se_taq zXO(pTcPQj|L&Sh(H?)X$N?`Wm&yFhM&w?KUBP0>#VC@o?KGnliUpihlaH5tS;slGh zbcN?pLm;%_>n@-iP$cOj7c&Mk-V#_m7NOTD=K=ajIn*Uh9PV@zmg(Z2gBaGFGWHgvJDY-%0&E~|VVtr*k!jq9 z?y6`CJu$Y$cnx1iy6*1I5JQ*itg)Y(5QK{}L^%^E=B>AHlD?*aK671+6YN#s&1yG( zXvEz=UhJlqUS!cEqI|A4SDha(z0*g`M2PwI!_0F80#7E728E|2eN^2c#V@(H!J2?| z9``a~AxE6wmsqyAE|P%9FRmtAl(|nJ(*T&e0IO%f9Cv*(5UCsL7NtVNII%9itlmLG zyH>%O6=+Y~;dBGXG1DH>w|02s6j&*G!gGe5AZo5B1 z2Pq@65Y`n2lQgrruGFc~W;bNB>9z%+N%n^}ifwa7#Y=E69C(bG)h8sm9qDKYQ`}H9 z{{ZI9Hi2Qh%rC>QJ6~&MczARD;vLZ_6JzBm!0Q+lsHJvN_PZK!^;D$TT~XBfRB5zx z#hV(gsIx z2Tg=PAvv{>!jaFN&pOCwj88Rr8c;B{n6`Y~y{BRkas^}HJ;+znb|SB+HT{wlVl}$4 zeQs-G^#g6!R)}#L@Z5Nf%u{h-+@Z>79e+K4IIN1Jz@YK@*^(3QN_=`fl#eq_*QSXJ z9QV^;bAc|I>Ir8Xysn+l99j5v81NP$33bE?LF2(v^6_rsXp4@GnXK?nY=f<5ufnoo z973oxz7fMN*`=@DYOvAiBlo4D?W8V65MA@bC^IQ%aqK?PN^8ZFrqK+JJB|k8=(*=D znWA`oZm*h`tprV*->^mn0y4)x(>d?X+i3BGb^%3aR$5BaeBLEgPM(|}JRw6Y0{`eB z*|Jm-c4)(!K)Rq^>PmEq=K1XaQwBO{s^%JnN4E!IcAGL6YwBmBeV_E@OFLQok#{3) z0?=y&{|yuNL=2+YtVEhk#C;hEr>0Fik+9PEA@6=3SXyGfhevi1fHW4S&Xt-Yb)BN{ zuZbGxy5``2uJPXdI-|o4V};#n9kHl>tU(zU2#^$?&yfI^Fh8i%VxnO~|K7EtMOa!( zZ&&g9iBdBhITAS{VVd`dgn91k$QP7!6u>exW!1B*8!>*3HooO#7pt1*mFb5PCB+b! z3>fzJOq9n2GBqm$AtKk4!WK&Fc?qJ%;MPasnWISB0DAgt6ks;N<8!@fVj}Vt`ec|U zk4Hh1PGmc*^>UT0ZZkc|mN2NYqmJLGOC~>BK%YY1%M1VJO|7LBYWnj$>UAL#?U1a` z2jAQNnH4AFwu+M1z-zi*k?;f_RicT<>e&0#{pgxNZ1Ed2X<>Lk;5OpTsFjR`?=i~d zcVWnj!9rHuw?{?52Wia;TpyKw%#$qh`?gFu+*sg;HbPpS#V)roS!?U1hKADK;&5o$ zh!rlj`#ozwHE&P@{uKYy4o$(2$|p&yEu)fSVEW49@6wLN=?2XP@7+v?wY!m^DOIW8 zKrqai(g-Cx3+5XUc|>khv@Nl4CuDF%@bn{;_+_4yIh(NtBvn?b5dh)ohOR9`bBgPI ze}}(iuQ4i~Ael2I>M8+Y9>@sWs;-UiYd#gbRh`J7d(~srJV9zufm#L|no_F5{uS1= z6d@>YbDAvoEgIUoE_A%cm5X2t^tOM-ra7y2YUJG$hF@9?-8d9}dlQ_&d?Ie(i@Q1e z^VLuu4Xj1SXSA1W*ewJ+4G5rRqW|@y?AA+?RkSiI^)|6MryQmd6p=ygl)tM#4o9G} zcqiQG&niKOgr!W~=B;WH@qf_Vhs8qxKGF*KOntAHg(%(M-fWfXwzRhg;8k6;ImnQ} zkn<*vJ>EjXClPJWtO(4TLr!Y=3WJ4NW{9U}{H<+GytH5}H3w>Kq(8^E%5-tOGr+w> zImL;shJw^%OW!l-@Eq4Rx^&J8QDyT|Qlmlgq(dHkEpo)Fyx3w}X?gxVJHo+b&E&mw zl0H=!V)K)L5;M8uPx_xvTtb4N)|C1#wDU<Y(@RL4IBsb1^-j$$C-CaoyDS7-&)bxDG9z?juL3R6*fu zUkV^Q4X56BH_XkG+Wpn_A4c9Kh-*}+Z)cPn?9ffk<<0vC%xkX@U1t^&#YRdrxkd!E z5P&t1r_XESL={n8D1D+OLGy^`TQL%vK z5qx0$%ixgvX;9qSNHxm|bQ-f6MduOaiL^7=W-B}!Sk4K0nRYy4nkmkbzrMYh4qC6Y{muPK8fhoD)SNSJ!z9!l*KaO5KpBmCTY1%HGKJemUB+Yu0A2~j z{p=^C-p_+ZLP$YKNE*z#gvSXmeR&Eq7g9oc;=K>Kn#pWEdnf`#f>$CgY$jv$t@blaj)>X6+g2hyqWi6_ ziryNNl~fb0xd+3*5r48MExeTc05~fDY*vgE|0Y<=Ye9hs+IKu^o#Jg{V6$_^%snbQ zUE^4$0wSFA4dJ^rY@JbY2vuuTmUWTS-c6Ts|CV{aB|l!co=49~d3F-#b5*v@n#%**);wSf zCb-tQ1|I#DjqJmPhXq03Q@k3S;dSptW_Pi7PgsR@c)weU^C>NMw8Qwty7hkT;;od4 z=~feL<(#XyjAZJRGxb|o=S~r$#i3#nq}mEJ5`DEO3%ke(?Pq?f;iT35*vUCPD>p6^ z4dbB9P)Pt5q3-L8lTFyVdFGGS6XC!eL6YxWPFS_^3Io_ISYL*V;H)x%lk ze60aN?dc3YHdX?EUvltN^IWAHH<JwGY?=EKa6+x0<=1dnX0p17ZI;OA&?hHXrHHBog&b0Or zD}+8WV+yuIT^;qCa!z(_#6Me3^Z$moqUmX_@6ic)RqU zRPL|%7vHLbjx%RRv=I-sEtsR^vZ+zAQ)ZW5&vg!$!p_Y)!x1G)+(owvkECjU{K_4IOMvJynI7e(A?|Jt6;c-I+sPeJWYG-l2>1-as zJM673w!2=OtuD;N4`9IAeSx#kQdL(qLckqAY_-Iz4mW%AOf&-)!95Uw8M7JV5}%Dp zo$hFylKxSrspo@P{Ro zb9Pb|NP)nT)4&Gr3hzVv1-^GMXMv8SSFKRP=k|hit)P`Dzb(K0k{oJ6rcNtZO_#{- z1lmpm_m#|OTI$bgYo;tv4lpAzrLQfM+D{Fsp+$of+PLW!8%oMbt> zLaj=`BpH7+E^@0^6dKxKxW(rZ`PW+V+CpMf>uMih7Jf>}KW3RV_rp*Na zR_FcRx(TMX1z{coprCbMvW%V!`ofid>kP0y($uxq4Qie#wcOk(&ipB=3=>5xGg=$n zng|-=Ek=H(hTUb;#^t+50u6e>NK|(C3@9bTRW!1zXLj2QWnUit?axhGs_^b`+aZp3 zlcH!sNfmy7r&Her#*u*mQ^MXK!0MJc#GyXkM9xiZwGYSB`o=|Er|=B9;^BK0Iy0YK z+ieY7y7(72Qu|Fg+6MnUeoAl?MQ@?G986??UDi*2+RDKblpKb3byA~X2&-hd5Bg&U zZQBSxD;!gO5*QPEBQ2QRC04$YllA0Y=U!sbkFyObeF@DO%ArBanMSB#p7lenB1;}` zH3Uk{7aOUt#(>+RytJQ!=+6oa`QYiB?(vj?*bk4;hnt))Q6&sj(gKB5~#o1+3^(y_s zUdWAy;pEzX$p7Wb@Bto4G4;cfM}#Bl#HJf~$?}&gFCM}KS;Lzp3szQJ@llUv*)-s| zh=HE#6ju^=>&o~5UR>6`N?!A+axAMEu)xL;F4V(@m?NYm86z_$8PBwREO`-YAQO>z z)4+Xk`kOroCf^AiOYYY4+bqZ$NHMFQwifc7@SDe88Wswc>&mx!cD`ATuctj$It5e6 z32NnSV!0&)M^n(Z=jrX8zXr{H60$NW0Z-6PmBfUlMLVY~-}ILv4`-$dM5VP(?P4WB z@mQjyF~DnFYni2C8)eW_2b*R}#J9MV&q==*3KLcGhL;hk;#yEJy$0{NxNsrD*Sre0 zL(*YFtwlHJMTd>~68_8V{t}1Uu?(mdzxO*_GC)V$Fn%VrdV&bv7cUrG*C^! zci2^UiUHQxB_f9kIwuth5NthWoANfV*tH@dqo4YtnmYXQc&RsHxtzi5;?u2bTJ0CR zpl;ePqrl=FP8p0hxN$T={8>rbZ_a2?mv9j6T#>oa0@6sdsG6C0DO=Gy<;7KxVwpX)@%oR?y3FhoiAVdQ`Xat zTfIvvx<=5Jxw)?p>`AD6>*I&8(4qKGS*0x9Pgf6ucOcwU`uG#YJGq(K#C8B%t zKvvkpl%WABA31BU`)o&plV{7*lraqDy|PwcvBG3O8Lm>f3o6-F;1Qs(9=zo?b9g8u zCMIXMZ)+^%Y7Yp7q$aQm>=LO$8lpWI!)CMxHZS@Vb4&GHuhv)gtib7e8LNzuir~_i zKV8Go8R`rZpriP2nM`LuFihyPH@qFv{@Undb#}YGh`fU5Qay8<5LyCr@}C05&Bzd) z?%~{(P3l7US!tkMXQ=xWkGlUZhIZ*vYoT&;t!;O9@jZ8LFd)b?*K(e)u`Rz|G&#!f6WNs&9lPmFp4J`5= zcI7fc{hf^Q(}>!UtFc=EidQqjos2j&&T zlE2CDi2Lk8Jv868&U|o&Y~T{rAPGI zY+wslqAw`y3h0ZjIZ3Vo@6|bcGk2E0)%K5{py(xSXYi<;cXj2zDL$Y%i6&Fy1{n(@ z!ow{^kF#|lf*=7H1v#UUGKw-}yO~=a_Jb?qE9#VQY38^+)Lii4rC*|*t0Sp;vaTdC z=JMJ7E+2g)c6}zHt!DO;*XE`u+agb&h;9DTPbnI%EbUZ{sip>JmE`HBJI^Z04)>jG z7v&MBY}f`aqiv99GfDN#&#q89HzZ@Jkn?e}Xqd303AV()H=9_%FOT|-LLY@1*UOS( zVsY4c?ZO^qDeu}idUas$=1(@+8%IoV-M^twP&~IT*~@$$%GaC2VQBmVszBWQ==^iycY^92kUEE4mmMyw3Zg#hAvx?k^6q2t3GU`U6w}tL^)Wa zv-L(x?5k3u<`rwW-LNM(r_5q58S1bXLG*HPQn>LQe2hFtMy{%^orDJ+=sY;Tw|PVn ze(2XgI=BFmgn)YCeKPe=ta3T0b$C?dkL`Y!J8pye){9Z;E9f=?bcc8JWBoI3G9-_z zHql^QfB198Eq5mIsGGFNK(^*yjkOd99F&Y%wP(HFAtLnOHZuaE$*?z4`+k z8g`?Lt2WibiSnlio| z8Y*wQWJl)>FsXg6cR5V56E?)X$j1i-sP^Y12OGQ2!QzjR&&`Z4L{>FQ@L`0aO%cLn z4ac}pWQ->Zk$W9X(s~AnQkHZ^69DKbrb)pDz?qG!5`W;TuRf7+Mv(-}^H;Y2f@YIU zoQIKDHWGz!NUl&r7qUd|Q*Tgfr)?yi)c#ls{^hlEm(1llgSE1=9Q{)g%wVc7zUvv^ z>Yz)Zrs0+}{n1-L=~t@6>&i#|N3BH2!UyStn+JYq*&zMwcyMk_{a3E9L4xzcaWWM( zi`DBPWu=nTq6Gl#&bnH+%QU6$=X7MOXEjRPIsG}_=m)=Oe->OUoh{;P95oEGWLdhT zmH@NFzky-?UKfJc^e{|t1%A%$8B}UTg_+1y{cE2oUoa?F@m($P{g}W*rT2G)N`ap{ z(Z#t2e54#4H}6Rkn(xoTEmYwONt@6$V>E}ejo;VN-P_S)PEa17?}|z{MjD#0R`hdk+3;6Rp6PLyhEmHhG()rT_9V zwsY~2y;hWkhE=mcePmM?y@k4DM*Lj@EDh8wAxF(~w{I?*OI3sCAjsc(X>4cxti zJU1M{PmwLd3r~h4(Wcyuv31U|gmT;#IkTZhR+1N(K@@cF8U9?;a*=9m$YNWu=-zIS&l`I*!GvXCUoSNTX&p1uzM;| zyheBXcNO||1dRa%fqkHHH1gMO5e%f#n^KXppO@J^8d)Gomt% z4UPRzjahUR;G^ddC{VZ3F`Z3`9mTF$KHbZaH%kg@NRrjQzLC<&3S+3ZRza@>mc80O zc&xb5Z_k-IPg86v3??Rb{ZWKwv(u4NOBSP;IZI#N&;YvuZ5Q*s`Ia)&VQZlPAwg#% zND~!{-YujpJGW*XDR)S5_9%|S!n?*5o_q#}1j^n?0BA81I*q>6lj_s!R5f$qg->}D z`f8TD36}M_L0&Y$&>$}Q6{XGWvW7gHSph8_QdrG!Olr9p91ERX@S0m9e0zK%>Xq!4>Eml&Rpz_)7u52Ug0j;?U#i*7 z{LYP&^p=6&P0zc-WzDhgYX`=&wOHVkvR|L)zRyMDO^7saNVT*l;D?hz91T*4XL^5G zzv#R~x6$7PW9A_oq^~GmDcw&{kkX&N81{cS6r`y%-pNM|(+OzL&*#JurXf4+jlaQS zWh;`h$!zPzUH39NEQ$EFaUFCQnp4et%CR)reC@`qL^y^wU_wC)mQ`!SV}?6#t2(*cSl`U{Vr@dFYT>z$`F*r2 zck2WTQdkh#_dLghl9E1;Y})BuMs6Nw(KU9jkyV7jCS0ZfL-zE$@AG`+)(;jVba<=94LZ%^kxQSFH!y)oEw;aT6Bn9}P*1s2*-zxqNvXk+{-|KAsIybh zX?ji_*Plo~1#!Arp*lGeAv~c(?VM_6L||dFS5zx;H24D+wb(%mecaCH`=t`ibv>@# z)_hJI&G(UFwA4TU4BDR~dCulUVh5OY%|;tfj})tnJQYY$CsNcOz2(1~ z1IK^!xN(tyTGe(e4UyW%PD<{+Z{D32uQ{AYMH&Zr8+sEA-^nTm=(bQ}mIy1Mp=9d0 zk(kQz-eWa^pbkbGK7TL1c}7LtI-AF|&{|sl+{p~Tk-}gw%ajb;Hx{*v#{+Lfb`_#e z8?}6Wrg6YMUvZf@t2;4%zPc;r+R)dZz`vc!trL#;WRrI6d3l zAF%G(8?anCLHYYq-bX(By`z2YCsX(*mjD#=amYo4-`oe=LV*%(1R}}5@c$HTBEz3o zqJNtg&OXwPj?nAMSrCP(!QF3D%nf2S))N*D7RPnDBGjvbPcYiu>UH)+VEtrY30YiP zFXMhx?2XI}EvrKU*z6{$Hrd)1aw5t1_QjNkoo7Yv0t!92k1^x01~EwmT1BpVxVpD zEAzku?#Ub+@4wMLC7H&KXk4ycWC>T7DRW+iT{3ya9o63@Vt;041vvJ0DXuyZ0e9Ozv$RM zfO&liuq|@D!8tx28##&N7mlHUaeQc{=!}bDb?R(ofq;F{Pg6z&^Xhf*35jr<1va)be@+VMsgHyuR>*r zhYIXX!Ml32OR7H5Bg2eAByK|ixdQK8#>sR!rL53?h|rICI5xhD{?BwHUmcV6vBxH! zm>j!)VoXr#oX%WrAS%4=Z%icRH41@7`vs|ZXzz?QzX=aHU6;~-QpoH{F8YWe^9#Di zlP&$SM@2a#hu9v;>BhaEG_W-KF7X_qvYt6l4bhK^z~;P9Dv@aI_I2|0?laEs=x-;? zO+F_&b9nYNR&U0fM#Ds(iIPT$As*X5`70tR=|h22AhDD!OnFD zdgck;%uxJP>RQ@)&#K;e1)IL1Gad#$m{Xx2o|<$>js&&>mFa!^CUfG8+Zqe%QL>Sy z+r`2#kJ)i!b`tS`DR1DttDpZ~!V>wME3vGH#%x$0Gix zi+bpn)dcb`PxO@46k43=PAaD(qYk^R+1pGZ1PQV=4D-5F(IOK2j~8wo^#Y&kV}m`l zD0wNlGYvv&p54T1Td%$EF1a|8s|6jegSev#EpLpDEaX&vV4#re-fP^W(Dy%;a811; znPvtG&Ht&k+Fv$wFxyJX)aEt{uc3igcOKXjfW(3VT09bvo*wK`7NHRzzKLgf@z<}q zz;5!{!S-lm7o7#lx1NSu=;KrQ=)o}zTQ}vOO$+dIm**oFx2G}nIkA6UCzSJz3_I_m zx-u^PDg~t`Z4JBcBqsPB@m!Zu!OdYOhO*s5=#)k8b0zN^Eh3EL)~*fWMiV*n6Oy!f zRG&b}&BZd7M6MzgsX2O`s!SB0yZ9`AH2;QGH>db1M|eTw%hNtSqhI_>w=q|G(~o=2 z4~S3B5kx3+NMTKM3IM&EgRL;CB8V5^)Cq$bRMYqF#4bb z3}mY%Kd}JW${Yyh*LtBFPl5*H3P;8GCfJr>moW)xIM> zDn$eW%rl)v@8(zhcJ@!Mf9s0hR@>dHBhx9wh*j0^+A3r- z_;O`xd0V-~9Ke9rg<}sWItJ6Q^P~HC!K*aUIFAw15vE69=n^)>BV~P?Xw>1xY_?^j zHh5x9T*kH@h2t&rFN3{COJYVxQx)q0bpjrV?* z@uOR=qR%UDn)!MBi$NWa$sXIn#^k|0=#}x|Z7F7Yi$=cXQj~^@_oMI15teheJ1}*Y zH5$;lBfETChI(~08l_7x1{Zr)&9}hji?J6gZCOkx*sFo~i$RR#GpiaM*=H#vVWAS5 z@YDiUt63!sv)YT8whF}EVEyc+=@Ajgy7EBO#?5YSx?R>L_Qtw14&R*J%Qy)URC;dO z4P{O!H7Fj)oApTioF)!)&dj~+Egj(Z5C(sXQ6fqYQRcEjv~%+bZEG-1~{9 zbgXS>Rno=*7`=16r4u0jInkX^lijPEN6fVI^FJ7vW~i2b+C-&&SMhNQ=hzarAxjyCODN`LxTCUwKt(yWIA1C+%_d+!#` zc#eVPT#y84#@q}3oWE<9dOQ8O8uG(*$tNG1q)s!c_vC7vS>`7DH(zB7*Ncwe zX6Id;jLwbc1wLoB@vGCvmz3#;Sl(deG87-=FH!9cKmodSfa1XkgA+47q;6=*;X0Op zipyn>_JBh%0<0RS7xDDMlw1@aYN^Y*Q7kVi=y3S+n*$=oy8fR2864$uydQ1RFAo%5 z(;R}nTb?eS8VOW{X2YxKN^HPbUu>Fq$x!EiRcu3TU0lr}`s@MX1Yr_B8L0=RLD+V1 z%E>j1y@aZOzo<-u(9?d+Ll(uAk(Bu4=%7&kpf1nm74Z~9D>aIfEJI|$ZO#+>`X#mhG4+2Lnuih>Q+ zbJb04uyn~mAOmO({KISL`7ccs^`s;2h}R`?XrobOtZ1kPqd8^mH&L;UzFs4BNfWyg zKg{-K_S%_FxTqFfO0j;&Dh^1X8YSvQ-^HU?KU}8ZLw%%_Idx&?MOG|6g%0(N+DwA# z;U=Ius|{F!MMKDx6Ffbj^LAD;JN1t(zjZC*!5M7VQ;DwEkRIROhAgyI@lP16Jh!ON zVEVlk=?8y7JP3ocEH7}_P+1U}Qua~d+56d~x&X1{Q; zi~6_Uj!0WbBsQhY)fmETFxp5J6eE_-yCO}3)2oGf!7feOCw`M-L%xHxs)!#rF!&1W z)QMkH@Tc{Mp>PjIzBg+iuI`R(KI|T&pn&*EBz{lJgksl4?G_f_2+!h;P}nt2JMb`q->AkMpIj^KG;)G z!TlWSl>br&TfffA%Gj#@TaSHUx^H~TcH2<Db7`gcYd{7r8^Cs;_OT98(uRsoC!?66d~da zD#P4*7L)?TMoLa38dAA~$+mM!M3ANMs8m^pXD&>pw^z8ZrlxHcva{)o=kEL5MzgZV zLQ+9(6lzlfxutBp8Q|AQdjITkeb1LWn5!0#bIPk0v*7RY7$GgJz8;`JPeha^vlxCg zmB@?p)L(WP;xmrsQ3{T>+j~;S(ol=3M*Rm849yt@ioTt5nP**$OKqmL*`26ZANf*3W59;f9_|C*ATw^+QS(Plru<9Y(1% zTrl$i^9Ci>X=ChYcPysy_@cl&8HI^B1d(wWQ>OCHT2S8TK5{LvF@_xaBkw_~Z?e-_ zY=YLT!lb2ECJ=6~58acDGncn>JWmBmuF~t4uk!P^erfR|K6~c)D87*6+_&$F-%!z| zRI1;D-yAGl!bX#`^NUlx~|#Swr$(CjgD<6 zJ5D<6*zDN0(Q(JNZQDG#`?;?7H=O->eVJ>|nzP0jRkhCjLBEe{V)}vCMdyL2E8|kk zKV)sgeE?m{(_YIfb`ov7UG7jWB6-M#f`0fPmuYWMdJgNIChJ5@KK|{N4a_?Pvb- z1|K5>3Ow@p`H1C6$L$It3tDbx2G^wV5rI-}Jw5T+%V~;;oNjg;H6U&0yiKxxZfm>l z1{R7%35BWDJdjsgl-@qP zLqbAxFy}e1@F=tsll|lhx`ZsQjV1LE-8yKJ#4c+m|g@ zW!j&lf=L{mxyKhV1|O>^t+|(9_|i-h!ca==4y}etSk8}>BULL9`V*P#(wje%M636z zGrXAJ>fV(95?Wi3fk}nqJBZDU9eZ3pa>~TK*r}9yDXsnr&4MFaYfMXC801$kP%Q9T z{*jO_zHl1a0x9xB%7MUtrEbySSDHw#06!K;rENBS)5ka|)BP9!$^rZd?YR-G;@j#5e2b{Kxto z&;9CuKU~E`{!;srJ`4+nQ*t>G52L?Wo|%l@njcqHQ5DavOsQ^ixq;Vx%!ZQZ2_^%# zk-)geIVBm=b<1!4=rq9IWWgcy0x3fmP#As3t;TswO>;gF)h$wy;v3;%@(?_WsW$LC zNT}9Ls0S{XMt4+E200LZ)%(=b->TepaOmH=L$0Qytojz2c226aU=+J6!zi0`KtE<; z9_|knaa~_y(;2kJ9S&ls#n#>7*}~?XB;f%N+%zGzrF{aFOKKErjH6CzGeb9^!$ZJX0=@dSWVpsB%-5hV4 zv7l6&NE!mak`-7!=I_#OuQzOg8+X;}cYXyAY{ScPYita-lv*O`WN2&oS#G)Re7t_1 zF}6pJS%m#}cSxA!2>i!fQ~KskG2Nmz61WBA1mF)$yhtYngWv088BJ&Xj)@Ss_le|K z6*v5MY%jDQ?wcv@(*3QmHmGA?G>&2Le=d{>ew=ke&W|2yA@YeXQqdKbNrY{FPS(^s z(OVUou9~^oq^i6fBy_|7xPMmEtkQ{Q_wwtIiJ5%FfQso8^c6fsB#=JSx!Qf1n}`ww z@M!uRzbn?|LfBCcutY{|(O{l$1t&Ha$xY_$vXYCAU`Qbn^^v%<{# z-r7PP)N^<=?Pn=6P*_dy(V$)LWAa%onMd%)^RYN%#6vm5#o&ZUI!zEIHjj+Wg3fzY zO&Of!A6=d0v<;OglJMJ_@}DZ?gs?Q-b&RF=(kcy;OmpJ$s(9nKKGC)O3@E01$JfCl&62| z5rA(8y})X<0kC8C{LPHDaTbCkJ_fOzH}l#Kh$7yo;9*nf_STm_E$Ayf&l9!|2!3Yo z>`6Gk4_MqRMmiYf8FAFeQsGy5prPxr&)hK|c74LIaG-pIjUm%^gSgeXicJneodWO$ zvTzNqw>Da{l+h0iF)I$Jcz#f~;}EuAUN+Gl`QEQb5y|A@jUz}Pr1jrJ7f4ySNUcdE zBd|1_1hoX!h4Qe(N6PYn+XR#PKjcb0cDt%?+;Pn4iKm7y$V8zpVr{>@Xm*@upGLnRm6O%vT_2C?E zlt+DQNLn~Y!i!Sn^6Ryt#lnW;s%Y~Lf2ViZm>Y~QLIy_i2ZvzR`n1X?-7I&X5Y0-4 zunvzEEF2lChGiBjq24{E+v`Q+27vE#aU!V*zwi|N1dXT1f_E7Hd;$`6>eJ+nMS%tu zom~Y;BQMcMdSW)`sG{@i*!z`XP;C1Br*Va5;*U?@-c@}#?B&>)qipgVR$-_@JCkMV zK|QW#bC=uk22|K?)yQGpm9c@%BL6_=rXe27Y&kgeZ&c3H-4Bod^tjc;P08X|PLoKArztsdd zoptqF++c&zef0wKqN4*vq5p22-%gvJ-^XPv>%1Rc446UJHoe+t1v7wAnn*=sG|4G3 zufwP1q6mzBL9Xzj2{-jg;1 zKZ1}z`VHD*_G`0gIOw(Ds|iegI51r%oWWK^$gpR5wCZo@)?`rTHYQPIv_E*R`)$jB- zef16w1*1tVE-}6Yw&@?d54D3$P43V;R!E+1i}vVoW1`}<2dgtnSuG@q9Lu&VIn7`7 zkz@LQ|Lg0U>{M!bo9Wh|7gaR3*nvH*|A$cQ(vDr2+wwp&QE4Wjt((1Cl6XWrDk(N~ z7GZmBZM{XW5tE9sPvv||UOMmyL@|u!YP)BN(F9e#p=;65ep}k5m^hS7zKAIy&`K^Y z^PMq+RZph9{-WZ}j$g1XQx_j5Y)vt8b+Qt5_EwW%eqkx3BC_4)KkuH%?jvHuBt_KA zT5hq(;mH!HRYuU7?XG@sg4H4e2IowTYc|jE`F_g$Oy(Qe!{j}!qJg36iWt?kS(#(( z8q7kM{s@W7UdwKjH|>gppec$Nf*@bgqg4=}Xx=6rsW-<-nb?6mTYT)CPn8VIKSF|e zj0B+JJnqe;805U&A?o{JS2fxniP#@))-8VLJK_ARL?9HiJ2VI3%cvItNz^Z5bz21I z_N8A~!C-3@)7rLFwDcKbd;wKHjSj{niGNkKV!sv$`Qui&oP(^ex*Zp`pqXl!nrF<$~phHiMhn09CeRvAhb8(B#&a+CgB6p8*xH z;ec_@J4jpWJ<`AGzHV{x`_d%e{h<)Uf4oFVDzq<5V@R7@Jm;fJZbM8Kb4pB*_`Li) z*A-e&{WFQshQsnSMoYn`H&826=?eS8)nY=4m%ib0v?L|Wf7!ALIkCBX-tTEcMeYhH zDP8%~3NykMH@H*$&ez?%D7XWRb)V@H>!5N5)Ptc*XRH?u%m-KvYOYtP|oTl014Ez1ut zYJ5`EAGA01aHbBqaQrDinhv7Q{%AOjqNJ@%N7pr0edh^v@2(NUt;j#=pOnV9D(54h ztNRH4Z%(*0FY?kOQsANE*p8f;wlM2xyCZtH2 zPijt6q7jAAkq$(nkk>XqNkR?HBZFW87e3n2rihRzhhnl)g_mlN7S1Fi1b!Sj4x z-+)F)uk|K+QSiMs;D2kghJah9-3w`A%RcN8WS{q=t49hL=mJpnE}0j!G#Q7I60(!1 z(8-&NA{<}oef~KPQHL$?wRm56M0}_;XW4`%37xT#Pa3dkFs~R@ZH0yi(tau}?J<|A`R5EI8tZy@~)U^E6)!!2p>Uawv_OIfE;ia~FLe zJ6|C+s-1>8tV= ztXNnAzY!{ggFd$($jXb2K&lD*Jl@uS1)EmN9lOwCspS&EGff zDO=9NA3ASq^XDzr1xx?QD>tWk#A*!rod1{FU=K@RnBSt)Q-g?%lKQL!c(y4_ti_tH zI9>Kx1@FB#?$75nP~0x}H8$ji*Fw!|+u>YrG(AnH!Z-~I^Ly-NjLHXxpx(rG`X z$YHP~`@t`zWB-V)X_7RJeu#4$u5eCbb8#9Cyl#m?OpqX;UjwePBVf0Tq@|NOUhAcg zj@e(U=`OY5^l5LvO&Rk#c?oxx!_4iiPwWHHpk;JWzQA+Lczn^BtpIO`MG0U~XFS#2 zV0pGX+web}c%2;lSM)@nRGge)1-xd3yejUHuA`DbrWjB%-#OCQf3Ygm)=C{pF{!~+ zB~q=D!~7x6$FOxxFlLE1D*!7OiZ(0}Qibz+!u>t*GFC5KV>qS)gii^ta!i#@XvHm6 zRoiccF_f%fgfLrJ3x_!iJ9JYg6>f4UxDf9BAkwEe8^Qohu7adkq(q;=0Hzlc6cDgm zQP>0F6=;mkRf z|7`&Im&i5PbMy9%9#QLvg&7nh@)xVdSOIsqCd6HRhC6W%FCO}f!gXaEGIxTDyUMpQMY-e=paTv z;zCh~3WfBc=9P#$szB=PpfTuwL=By7>@mwy&j7M+PhocP?R=ccitBwpFixGB>e+{$`;W>ZASmI4@b- z7Q#lb0Tu947Y|!loOLi`L}#fBR<*`SYR| zCcCdEp~$1zzW3$@_*#;r(x5i(f>vWY%ZG`^P^uO`LzAE*)@th&qg-kDs8{n$c$i{* z9wG{7SVsEpal&Js$CfrW?*v>n5I$QUa=UCLY2RyU(vjJAPnWH3^F6AfGJJ{&XSK=n8RKqEMF`5sN5};7+eIinno1cO zu6l+NcSqshWM4xowOgUV5F#k?frut$b*)}A$pvL)c-f&4uD>=W7I{&84oM-{thp%< zq7cTN-2M(3(jWmUo1n(uxH~ubw{;8mZaP_Oql~<7ZyS(Atk6n$b38HPCrCtz9r5ti z1~H*>y*s&L8ph^Jg|L84p8%#a7RSFaA{2>$=+_{)xb$>->guZKv^gTo{Kp4s6RFwI zfX|~Uz=jKXMh;=J*i;6_SJbT#RUQQGw0yJ_5T8Zh2jQX+))x83=8T zIMsm6W)3Wfq)eenff-7YSO-}7SOqF|vDhmd4F1bQhRv*7=_D@P$%%(%SG^h=P7%7i z^zpSg$W?N1qh&`Mx)u&~W219}xZbDizxJrdSsvumXsbkZat!lFQBB8^!kbvHlEWDR zo+#vzDg~nq(R-h)ziKJ&qoR+G3Ki5?e}!2*3k9DqWz3oGtgG|>unwXOgM5^OFR)-x zOs?}iGS^137TV)tov@P;_|T> zv7PKy9;8b^FGWrp9QVrVp$YhEK2vxZ00SjRYM!ZsWd}irvj~kp6bb z4~eBY{RJnu%qjWV|FfTq5T4#WY3($Dc?m2Wpz*f3`@NOxv!m(MZ>Fxbq8Wh+SU~~F z)x^H4Wo{2X{60wj>R^k`Ct}evb%w4djUhxm!+LSCsrYGXuERLap(IM2i3Wx0ydfjH z^Na>OivcyDitL+alGIaZl3(#WLo0mq1l>D7)jSJ z@9rTHom7p}et!0ihg*YKCHRC$!mVRG08(ECX(YVG0?hL5n|H<9<;O?~LB(Ou305M7 z2}L4dxAIM--jp~r1f1W}iu+b$snt3vt*O05&Y{3ho`OAJ_FYVm#dSo{O#Y^Yz9$AbBgO%6aByc?28N*s_FxvjRb$M z7z{tei{HhR*XVA*HQrK*4eU{F+YXkA-Ewzxm`LR_Y|iN$rd^t6>1>eUX8A1f&?& zAg?f|^6BD~;xYUYngNQ=vI}e1p*it~uV22Erj96RT(RR;f)^5kl0sp&F5bwdA@mVr zqhc%zI^I+gHPT8_lUUA#(-U}oCUw|o#^%F@0uXL7Jcz4<2Lrdk?Xzyf2b!Y=ckud2 z%1lQdT|JyW1AOItVw!S4w^h3d5FqV=1@3ltzK5OQ|KJ?`rdOvqxKQ}ZLCD#rOH9jQ z2)nw}ABYtu5BM(vu0ux=mmM`_XvA|ImJAvkrMPqrR82^+aaY@6&gB%-ZDW60+w(_= zz>QwlV8d4O+7IEXaR(D`~ikn-C0^lcRF@)YvgTP+Y<=?`L)wM=gz z%Kha6QUh~y0Oz{{Y%Wdf`y)JM-4Yi3#tFHC>QS!0pZQ4*(6sz}NhSyew~y2zoZ%3r zrurfUlPo~4dYaB-Au#!jZ-IQO(su2AmsfLK*JZJ##`0yA(J%S)fz*%D`+P_9xwDIZ=7a%-PtJQjANj^RW^lpZn$ma(zBcHDhsUaDw`{5~r=$V)iaJX+ zO5p1SLQP)piJuM1h*hrc_ma2n*5T!!b&`Vd8^tG?h2Nv2)wN^gHMN-6L94s;v&A%H zG5`6N%OBmYcyco(;#cD!J8nuRuhW5|y}XWwzvY=db5@q?oK59~6oY*Lsd~EA>swXC;AVpNw=@17$d-r5p+co_Uwb>sdDS8wxvdWw>Q~l8YiGWv? zRUbFE7djg^(@NLy9k6XOJvM6jTyRygBCeJX7nkeDG=e<$1a<+2=`m^!pMYB@Nm$ZnlG>6owirK}ic9RkVZ zHCqnDQkR_jqyO#t3_ZcLYadl*#_~o~&O@Ol?lvUIa(@TMhVwPW;j+hqBjkxwYkgN* zV?ACS$GFB2SAzOZoJiFg?`jjo6QH?$h!!#{Q!uH3%)`JyU^ggb`h7|JzW1<06$nF` zDA4nl{{vB#(APozHpHFtt;^^KjRZ4~8oE;FbaO(^=e;-QI6j)vX51%>N?FueR^Nfk z(7!I9&uwQXrw328vdUt+Q{~-#aSPTVJxn+f(Og(lwtyfaycO4Ydds{sT#%F}_JJ93 zv+EDF z3v-Mmmmg!S&*kxxmoqjBbI=@iCaqJURaSqhP-TP$ii@i`;t0L^t`@5Ua{Wr6%w3dJ z5X{PwQw5m3A1@?h+aZ8|r$nInh;YI|i;(Z3orZ;|s|==Sc60mA3Xd(>GIloE@Inl* z>xhPWpj1r}OMcRDTrK=nwX3V{1@$)a6KTTxj^qBPaQJ}9b>pPSI98r~x1{}^HebURPEU2BC?k&Hp0)Zr?t|TdwVM!61 z1?ijmcpgDAtOZiR8l<_Lg!^mAnZ@6I$3`dfiI7j`bg0|d!sjoW!%WX5_zbj7_O1RJ zV9voHwJxPUn?cl9Pw?~pbu0>-Ew{F2gJ9xzT>I^;rphdM>W>T0{CJQt7ao^*8&~^q z8|_-!7W>JADzRG|dkcl*rtisQ^l5)o;nznpTEDIg6fTnmJL=V+hY5$~&il|a35Cok zJKm1F)yS{DO;#zjb_$Tw4E0^KMt*Ql4!BrzaRpEZ(3)~w~v%{xm zGjjvKi~{X2#I%JfOSG%$&-;%9MXje)Nu_xz)=QtYZk3zb`?5; z4Yw_;!>PqJJ(pDE3qdSYkC&MvCHCkKTsHlYmc)}`)G^Uy196$G+uA<=Ac)>driL7! zm~m*yM4Bog>9qZyu4a36EzyD>ZOK6xKd=GnMM`jd(4YDXsNPv`1*{iC4jp>0W0B-5 zJx+LN;zsw&$Vpf{Fid_gGTIt75||*o8TniLA2y4HZwA{xa;aJ5HZdm_f=>KYxDyny#HLU=mgfzOMF4HoEKVKKA>JMa<#URDgyA zQ^Dv6i?0tEJ<o|v*m)sQf zK()QT@{0hxe|v&iZKo@U8ecbf%|C8&9q3OMV&%^`R2HT)Dnb$WqgQG`#tR z_=8E^F-9lN=98`aUgI9=gH<|?{!t}y0F@?Z(H@lcq^hG$`UWB6s+&T zvXfRiO>_Bqr9|UoitnG7xQ&zWcuu#{9znpyIxW|uS?;U_?gk(P7pS-&FnNZu0eM2y zzb;WQGkqyS@ovb0LgrH~oQZ#S^f+d_;&&iskBm4dmn|W={3{@q5C#QE!f~^F7!DA3YId6VjJy^zZh- zLkTDZzXn}p@S5c>T9H>(P@&nbfPC7`JK8cmt6EYuJ;Qo^W>v})-UIS{BA99^e<`9sm!5qpjPr(bvp-;WgLKnaE)8(o7SU#$?lWVdrXd8p<&3Y z&K!J|i$8OtPkn?=LtcOn?>Z1enSsJ8m{1X=sGw`~szwbG4d6xdT7qPO*i zCwsm7W}mz&9LY;Gz9FaIEtb%ov>wmTR-_n^qr)`rk^(FQ{)W_xXfG zV_h4Va%7*!*L~A|Z8jCs?66}!0ii|Lnt%KY;qE1g!St)H#G5qJp7QjlNbzmYhW8&yb^+)G49(!BAXi(M#0d6pOo5xUJF=$D`6a=(eBa+vPxHe7(F>=w>^^DQIelokO ztIiyLRk5&Nhku={VG+%*gTc)Y$WUnY1e*IITLEm@JjGzvbS3z?^*n4u&UzT&cOMoAZK@Ent&t- z&Y{{pxK}9)j#+hbLqUrz(Vs$w7O{~n8Ch%Dj9IS@Sk*@daGxGiw%lfP2ZaS^s% zNT18&W(wC8XB{Dj2?5p?;ahwkY%1{eL^nhai;)65E(|GahE5;Vc~C%y)0smEeaK?@ z0sI2ns4#Oopy>^ZkM3K;)#~V1*OxBCrsSd_3s2Zuss>LEUDMyiIP~|e`;NG0SRrt| zfaH4~Y=FnZ{H||2d*WxGKBQEi>k*kDtpwLY7nXlGhlVDTiAK)LBMpfC4LTRZzEc^# z=JTqY1cy8Ef|)5^W9VO$_3`BGBH*Vv=P?Re+s^Nky92-ZhkHlP=AK%sn{xQ6`it8u zKe@WSj&w79j9(qYi~!MRx(qL3(%0(u<-=P7z2FP<6`gKGx?RzGp9 z=$645->%rs2#{+qHD_jYwP*@RoK!}O>FJ;EFV%0B8=Jx9zCK%GqKUS4QRG?adrR_J z96vqknOx+A&~2N<%_t;YxBT`NT%BGjzdL#dez?#g3qm#KAziNzg9(Tflczd2dMh($ zI&EMAdT7Ns?p#yuCm_U6rrwRhvBWM%*~hj5Cmsq5=!2fOh(s2DGoZa{h$?zMU?Np1P|&f=#|H*Q4osp$?Np5824UsjhKR7;eM?y$INl@6vdj81AUq`j zfF%P1|9^VyZ{Ha-L6DdPuv?dT{+9aPKE1_*a+KD&!F8yV z+n9k-2d0^H+sbh$vl!=^^7i42X&&%IGxc}Z-_*3YG7Q{VdE zBYbx{`e29n03!8HFB1*KSMPzwtL#qd%Z!~nAxV%)KB4uepu|aSZoe6AkR7Pht!G(~ zX8EOQf!MJ!$<73iF>baJ8dLS~E)wq{&6+OTk)0tz`TEAp7CI_*W7|!x#`dPV-?pk9 z(qkhK@(JoxT=W+mFY7L*_1HcSSNu+g(NA5ij>rZH*2L3IbN;@e!BuZ^Vln(r z!BaS{3Sq7qPVJzapQ8Mf#$h7OMKF^bVM`NOnSwRDRX(}EC5l*Ii%U>P%|}BIXFN?L z+kfh7QaA5VC&xfflOThsz@f|1V7r}X&UaoRtcHZBA z9KE08P$;JN*!csC0e#UvQoWHwAAr{>k#R-LHqA?7uC|y-r$tF7Lt{i`4R7H{>;l;&W~9<3iwk4zKc$#9iLhI&DA<7jwP# zK-?cwU{qO2j9DlJ6A?tR+8@d(2poWEukyMB3SXHbj8)4+Pe1E=Si5N9y_i2)17P&* zuS(|5zhegeeLu~BD|m0)!Dt6!8*NvpnKxYxy$}81 zSf6pU*)EKdKtb;Hu5n8ZWNiMy_IOna-tq6&<-y_C8}#NalSB?g)8RX1s2AxUw2Ma} zhGt*U_mq-!_E_=u#*pa9lw4`)Sruk=WWmigQ*nqKkg65Y-G>gt`;Z0E%E7V+T0#rJTVzunZ%-RjvJg^e{|ZKIsmy<$()2f z-)8t*^$>XMh^?amH@D_674`4%kyMv=`Rj~#K! zpT#wG-%hH)Z!|IhLE%|VTU!NFEdzJC-`Q2>bOItBz8L9MPrVhB2CVoy;Sy-aM<)DQ zyBX$Y7Q#@7SRI*~gceiC0*H_bnCQ#U(B~%$fx;c}uD#;T)Ol?osdoz6I}$KC?f1$o zBhq0fht9;9y(Th^>{ThKvW;(Jf&mZ|3gL7Sn=g%Rwj&y7IjKUPV(;?899a5nKZ|BmY1pKkPw zCn}Ql3!x~~ja@PXWCZr4BqVY6OnkNG9R9kqI*U-&&}c5`@uEmP_{}Kai!E^1uYQ)N zOFz%fbjM^%)W}(7P;WkvLHl3tWeV{dfx2$JPA~`4^Wu@iRcoWy5OWGInjLe6kJ*+& zM!u6^MPw|s@4*$ZIIGXA_-3F(@e?J}^|a772)&neRE^g4D$+nA?7s1(f2xXHhZM+v z680S(C~iID*yMOw5AA*UxxOlUVQY8&>I=*P;RYtx;T*?hx5A4Sr6@S1iBLK|Jtx7Y zH+=kO9)i#~FBS{>dcrKT!rYK|@WxuM=2P6FTl8c-`y>fGLUQMk=? zwLdVbn%G9u!wG>*p&N6^*uJC3VsRBY74%v8c6pP2w^^L1Nq`NeMJcZrvm8*iPKyeC zn9^dFGh}|(6rgb?fD7jB*|l~QHhyH+@58=Wss?h95C6GKnSQDbDuX-?FrOf{4O{6e$ApaMPlFqK{Q_>sgv9N;{VM(cts5%UZ{u zO0LeWvbb8|>@Avkxl9qfIlV~BG2`4*c3-?691*Pz)N~HbURaE8RE{9% zlH-tE^Z$8|kpbt0p(|USUYdlMF^hg86R={2=n;y4vk-GAQb>~}vMaN(9AI#k zm>ApjxEv|V(#F?b?bI)KhE`H%3;6RhuHPzn!bB7f;e^e z9wspzxy6wVB2Ud!d7=38h1Mc|xGkLJe?6vFwD6?V+TE-+zPIHwB^Ee`o>;gLM;>kb zhLf~4{vgGi?|e5A+I2P9X2$)H%1IGu#$^z+9N}+_+HHTN>gRvu8RQS{5vNJ{YaC0& zOIu(G`al`4Vf_3!)U}p?A288*9wQ|K1e6yYAMbiK47e9=W*txiL*AM(QN1n_BI0Pt zP8z5yu?i`xvz)+{CF{*EF1cK|3hvc;e+HL(0teWch1qG{K9alBWt-vVk+T0WEV}mG z{&=E(IOjah{+XJ^`cVuz6{QE58dKBI0P(R7$^o*K++|e@6v)~Xj@Ez@Z0P&KbUtqX z{JPliwoN|3hrGVJ>$+;|INF4zFH*9kY+Tn-69RTZ_{}gFfN5%N9A#>6I$7!@E7xI| zf?cu;&$;ni6%{`@7b*f2jLwKEU)OY98|FYIx9G{GyJM(+4#&}$xkM=J=rvwPlqc3`qu48Y%CD&3ebK-z5ZG-(0Y&beh>0R16ckKyV10NCUU z{AE($hP~sy9?T}4zZ+R`A#aUK$tr#Ifcch27yH#erbKT#Wg1&q8&SW|N7cM+GNR z&rS_!t%Q1Yz3SVMS3rx+3R7|t9Ijc1g(NnVVZ3dw{-i>y@gy@&np*NcOSA@J5qjl% zzbxl=$g8*|_su<=F#$zFZILAb7*Y@zHsWJ4Fj*KOsU^ zM1Y{+>nL%vU2jB^jE{Z_ffNH$U}Mej;IV&{BfcP->hZ1Bl`Dx47li^Qr-wR5>RckG zmnzzp5;ts>LxZDP>@X?WXnJ|>*^0%l3Pn*S3g5Jvvpp*s!89r8Ho5}km3hC`h<#7- zaudUZ2#T|nhX!S+fE+mSE!A;?yJ^u7n(J<3p-2wKj{fVu@jjG*Iwo1fu|rW3a89Dl zkc0vWv{Umbeul7KKiZeiQIX%APjsb9JSS8Ssc}k{gdUO-{0yiK}8fpmb=mMf%pQyMnPLE++7HSYLz%fGOyNj83geSr_lv+xv2x zlk3qtZp#EnP`A>oW?FAJL>-1?&jn2d9D7qNPCNpdo?E3B zJb+z>>m4UJ9#(i?LfHvOm}te*@~81y`B9P^x18zQ+XFkvJ&{g|JQfe2q+zN8Nu<|+ z3uz-u&wJ2x)#BnJr=`3}Z_MSi?bZp#5!>J1YI!9r9$D+fN2|_*&xfzccX)iLrRCjZ z#NOaqs{T*z_qcLr_4au>e}uBCqx|vjEFr*Z+LQxK-Cn-d-LtU(=^|%|p}pF5gb*Pr zhX=GhFRPA&dgj+45g89H2$MXVl`cfv4N-N++h)cR=KFn7C$3`&wklHbFnk5j4w%R< zoM7M&A=2{TlG0IS7hE_X>g1}r6#~%4ETL&yBKezWRcYB?ZjszlIxlzOi!<2J1vs&_ zQNLYAozr-k;#Z&0kh$>eW)2U~0D&CH`ec2HnDYMH1Dl)8*&-eDDer5TtLyNw7`7eA zG^p*#D&JF{?U{gF2BfpV7RX6y^1mU9?RmFGmN;=ErX{xCv;JW~0|f9Im#^yftnqok z(2z{Ucn^dfH|rB+?W$*KOssh$8eU%gbZ8(6h3Mg1fG2sPtz{9?)IwlPQ{o3JJ92Cy+QA zne_AZGQ69wN4ZN2oMq0S27@ZW zl`037`Ti26@6Yvzo=XgK-0%2@gqZIP*mT(uX`?s4b?u2bntO~qr%#7m znh+fvQKC+EB3DyNNtfIG=)y-5H4zH1DS^r_d{@OXeAsf6(B>N1Aplu4P(Czl`&Ouu zGV(h(xGzC(KFRN&U)ZA86-g?NJb2d_soRkgIc%CdXBL?41q}!`;hiFoUVShsKkd?# zvv4jR2uk!39ifO)z!G4FIZdKz4ZPhHY&LFJzzGaAK*`y#()~+n zK`tJ2p6;(cEf+KEPG~>W@vn+uk)#1SNH0KOaVH>Zd@ZPK;KM&2nOlK&AW$w)E= zl5`F3FGk{Bm>|RhUZ^6(mv&*ia|fKRy6YiPGzPhQXG6KSxubrg+?(RsL^2ap=qNG= zh9((!&p%M6obN)E6gUeoEeu9eu*^1&Vsl@>$6M83s% z9}ZRzA617#7b$|zv5dLo`Pt(hZlW`yzFNFo>`EAu!&6wY`-3&TBgl}u!?E0fa3w3% z1~|^yL#b49`s0xF26>9_%{rI$)7tFWbV8i9c%oF#x3!(Crc!&(tPCYxmIezbDZZ|+ zT*zT{Yq{0^vj6sicB%5!BkXd6smUBhqc8T8yoibItntJk|B4iXc*dP9uIh9a9Si7V zV*$&=6v6s{%j3Ci&4BgiU0}&>3bZHXV_1h8E}jg?AyGVCwb0R|=aqZEn`Gi&^NpZE z^f%;a1W7cn$Df_BdOuaArSe1(F+`u9M14g`Y4Be;{PvHV2Vis1Wm6fCDRs4LX@Mo> zdgp;{;>w;%qt1UCPr_et3Ve{!Y$yX7-ANF7WMm6jP$Ci)?)`)uVOf!pSFpeINJ&U^ zOps8J#vjK;J)UaRsqz5yQa$2bqkT3;+NC literal 0 HcmV?d00001 diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts b/node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts new file mode 100644 index 0000000..1094189 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/auth.d.ts @@ -0,0 +1,23 @@ +import ifm = require('./interfaces'); +export declare class BasicCredentialHandler implements ifm.IRequestHandler { + username: string; + password: string; + constructor(username: string, password: string); + prepareRequest(options: any): void; + canHandleAuthentication(response: ifm.IHttpClientResponse): boolean; + handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise; +} +export declare class BearerCredentialHandler implements ifm.IRequestHandler { + token: string; + constructor(token: string); + prepareRequest(options: any): void; + canHandleAuthentication(response: ifm.IHttpClientResponse): boolean; + handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise; +} +export declare class PersonalAccessTokenCredentialHandler implements ifm.IRequestHandler { + token: string; + constructor(token: string); + prepareRequest(options: any): void; + canHandleAuthentication(response: ifm.IHttpClientResponse): boolean; + handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise; +} diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/auth.js b/node_modules/@actions/github/node_modules/@actions/http-client/auth.js new file mode 100644 index 0000000..67a58aa --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/auth.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts b/node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts new file mode 100644 index 0000000..9583dc7 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/index.d.ts @@ -0,0 +1,124 @@ +/// +import http = require('http'); +import ifm = require('./interfaces'); +export declare enum HttpCodes { + OK = 200, + MultipleChoices = 300, + MovedPermanently = 301, + ResourceMoved = 302, + SeeOther = 303, + NotModified = 304, + UseProxy = 305, + SwitchProxy = 306, + TemporaryRedirect = 307, + PermanentRedirect = 308, + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticationRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + TooManyRequests = 429, + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504 +} +export declare enum Headers { + Accept = "accept", + ContentType = "content-type" +} +export declare enum MediaTypes { + ApplicationJson = "application/json" +} +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +export declare function getProxyUrl(serverUrl: string): string; +export declare class HttpClientError extends Error { + constructor(message: string, statusCode: number); + statusCode: number; + result?: any; +} +export declare class HttpClientResponse implements ifm.IHttpClientResponse { + constructor(message: http.IncomingMessage); + message: http.IncomingMessage; + readBody(): Promise; +} +export declare function isHttps(requestUrl: string): boolean; +export declare class HttpClient { + userAgent: string | undefined; + handlers: ifm.IRequestHandler[]; + requestOptions: ifm.IRequestOptions; + private _ignoreSslError; + private _socketTimeout; + private _allowRedirects; + private _allowRedirectDowngrade; + private _maxRedirects; + private _allowRetries; + private _maxRetries; + private _agent; + private _proxyAgent; + private _keepAlive; + private _disposed; + constructor(userAgent?: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions); + options(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; + get(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; + del(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; + post(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; + patch(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; + put(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; + head(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; + sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: ifm.IHeaders): Promise; + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise>; + postJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise>; + putJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise>; + patchJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise>; + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: ifm.IHeaders): Promise; + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose(): void; + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream): Promise; + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: ifm.IHttpClientResponse) => void): void; + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl: string): http.Agent; + private _prepareRequest; + private _mergeHeaders; + private _getExistingOrDefaultHeader; + private _getAgent; + private _performExponentialBackoff; + private static dateTimeDeserializer; + private _processResponse; +} diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/index.js b/node_modules/@actions/github/node_modules/@actions/http-client/index.js new file mode 100644 index 0000000..43b2b10 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/index.js @@ -0,0 +1,537 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const http = require("http"); +const https = require("https"); +const pm = require("./proxy"); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + } + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + } + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + } + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + } + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol == 'https:' && + parsedUrl.protocol != parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); + } + } + return response; + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = require('tunnel'); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + }), + host: proxyUrl.hostname, + port: proxyUrl.port + } + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); + } +} +exports.HttpClient = HttpClient; diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts b/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts new file mode 100644 index 0000000..78bd85b --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.d.ts @@ -0,0 +1,49 @@ +/// +import http = require('http'); +export interface IHeaders { + [key: string]: any; +} +export interface IHttpClient { + options(requestUrl: string, additionalHeaders?: IHeaders): Promise; + get(requestUrl: string, additionalHeaders?: IHeaders): Promise; + del(requestUrl: string, additionalHeaders?: IHeaders): Promise; + post(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise; + patch(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise; + put(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise; + sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: IHeaders): Promise; + request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: IHeaders): Promise; + requestRaw(info: IRequestInfo, data: string | NodeJS.ReadableStream): Promise; + requestRawWithCallback(info: IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: IHttpClientResponse) => void): void; +} +export interface IRequestHandler { + prepareRequest(options: http.RequestOptions): void; + canHandleAuthentication(response: IHttpClientResponse): boolean; + handleAuthentication(httpClient: IHttpClient, requestInfo: IRequestInfo, objs: any): Promise; +} +export interface IHttpClientResponse { + message: http.IncomingMessage; + readBody(): Promise; +} +export interface IRequestInfo { + options: http.RequestOptions; + parsedUrl: URL; + httpModule: any; +} +export interface IRequestOptions { + headers?: IHeaders; + socketTimeout?: number; + ignoreSslError?: boolean; + allowRedirects?: boolean; + allowRedirectDowngrade?: boolean; + maxRedirects?: number; + maxSockets?: number; + keepAlive?: boolean; + deserializeDates?: boolean; + allowRetries?: boolean; + maxRetries?: number; +} +export interface ITypedResponse { + statusCode: number; + result: T | null; + headers: Object; +} diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js b/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/interfaces.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/package.json b/node_modules/@actions/github/node_modules/@actions/http-client/package.json new file mode 100644 index 0000000..0c99fd4 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/package.json @@ -0,0 +1,39 @@ +{ + "name": "@actions/http-client", + "version": "1.0.11", + "description": "Actions Http Client", + "main": "index.js", + "scripts": { + "build": "rm -Rf ./_out && tsc && cp package*.json ./_out && cp *.md ./_out && cp LICENSE ./_out && cp actions.png ./_out", + "test": "jest", + "format": "prettier --write *.ts && prettier --write **/*.ts", + "format-check": "prettier --check *.ts && prettier --check **/*.ts", + "audit-check": "npm audit --audit-level=moderate" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/actions/http-client.git" + }, + "keywords": [ + "Actions", + "Http" + ], + "author": "GitHub, Inc.", + "license": "MIT", + "bugs": { + "url": "https://github.com/actions/http-client/issues" + }, + "homepage": "https://github.com/actions/http-client#readme", + "devDependencies": { + "@types/jest": "^25.1.4", + "@types/node": "^12.12.31", + "jest": "^25.1.0", + "prettier": "^2.0.4", + "proxy": "^1.0.1", + "ts-jest": "^25.2.1", + "typescript": "^3.8.3" + }, + "dependencies": { + "tunnel": "0.0.6" + } +} diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts b/node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts new file mode 100644 index 0000000..4599865 --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/proxy.d.ts @@ -0,0 +1,2 @@ +export declare function getProxyUrl(reqUrl: URL): URL | undefined; +export declare function checkBypass(reqUrl: URL): boolean; diff --git a/node_modules/@actions/github/node_modules/@actions/http-client/proxy.js b/node_modules/@actions/github/node_modules/@actions/http-client/proxy.js new file mode 100644 index 0000000..88f00ec --- /dev/null +++ b/node_modules/@actions/github/node_modules/@actions/http-client/proxy.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; + } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; diff --git a/node_modules/@actions/github/package.json b/node_modules/@actions/github/package.json new file mode 100644 index 0000000..0288f17 --- /dev/null +++ b/node_modules/@actions/github/package.json @@ -0,0 +1,50 @@ +{ + "name": "@actions/github", + "version": "4.0.0", + "description": "Actions github lib", + "keywords": [ + "github", + "actions" + ], + "homepage": "https://github.com/actions/toolkit/tree/master/packages/github", + "license": "MIT", + "main": "lib/github.js", + "types": "lib/github.d.ts", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib", + "!.DS_Store" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/actions/toolkit.git", + "directory": "packages/github" + }, + "scripts": { + "audit-moderate": "npm install && npm audit --audit-level=moderate", + "test": "jest", + "build": "tsc", + "format": "prettier --write **/*.ts", + "format-check": "prettier --check **/*.ts", + "tsc": "tsc" + }, + "bugs": { + "url": "https://github.com/actions/toolkit/issues" + }, + "dependencies": { + "@actions/http-client": "^1.0.8", + "@octokit/core": "^3.0.0", + "@octokit/plugin-paginate-rest": "^2.2.3", + "@octokit/plugin-rest-endpoint-methods": "^4.0.0" + }, + "devDependencies": { + "jest": "^25.1.0", + "proxy": "^1.0.1" + } +} diff --git a/node_modules/@actions/http-client/LICENSE b/node_modules/@actions/http-client/LICENSE new file mode 100644 index 0000000..5823a51 --- /dev/null +++ b/node_modules/@actions/http-client/LICENSE @@ -0,0 +1,21 @@ +Actions Http Client for Node.js + +Copyright (c) GitHub, Inc. + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@actions/http-client/README.md b/node_modules/@actions/http-client/README.md new file mode 100644 index 0000000..7e06ade --- /dev/null +++ b/node_modules/@actions/http-client/README.md @@ -0,0 +1,73 @@ +# `@actions/http-client` + +A lightweight HTTP client optimized for building actions. + +## Features + + - HTTP client with TypeScript generics and async/await/Promises + - Typings included! + - [Proxy support](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/about-self-hosted-runners#using-a-proxy-server-with-self-hosted-runners) just works with actions and the runner + - Targets ES2019 (runner runs actions with node 12+). Only supported on node 12+. + - Basic, Bearer and PAT Support out of the box. Extensible handlers for others. + - Redirects supported + +Features and releases [here](./RELEASES.md) + +## Install + +``` +npm install @actions/http-client --save +``` + +## Samples + +See the [tests](./__tests__) for detailed examples. + +## Errors + +### HTTP + +The HTTP client does not throw unless truly exceptional. + +* A request that successfully executes resulting in a 404, 500 etc... will return a response object with a status code and a body. +* Redirects (3xx) will be followed by default. + +See the [tests](./__tests__) for detailed examples. + +## Debugging + +To enable detailed console logging of all HTTP requests and responses, set the NODE_DEBUG environment varible: + +```shell +export NODE_DEBUG=http +``` + +## Node support + +The http-client is built using the latest LTS version of Node 12. It may work on previous node LTS versions but it's tested and officially supported on Node12+. + +## Support and Versioning + +We follow semver and will hold compatibility between major versions and increment the minor version with new features and capabilities (while holding compat). + +## Contributing + +We welcome PRs. Please create an issue and if applicable, a design before proceeding with code. + +once: + +``` +npm install +``` + +To build: + +``` +npm run build +``` + +To run all tests: + +``` +npm test +``` diff --git a/node_modules/@actions/http-client/lib/auth.d.ts b/node_modules/@actions/http-client/lib/auth.d.ts new file mode 100644 index 0000000..8cc9fc3 --- /dev/null +++ b/node_modules/@actions/http-client/lib/auth.d.ts @@ -0,0 +1,26 @@ +/// +import * as http from 'http'; +import * as ifm from './interfaces'; +import { HttpClientResponse } from './index'; +export declare class BasicCredentialHandler implements ifm.RequestHandler { + username: string; + password: string; + constructor(username: string, password: string); + prepareRequest(options: http.RequestOptions): void; + canHandleAuthentication(): boolean; + handleAuthentication(): Promise; +} +export declare class BearerCredentialHandler implements ifm.RequestHandler { + token: string; + constructor(token: string); + prepareRequest(options: http.RequestOptions): void; + canHandleAuthentication(): boolean; + handleAuthentication(): Promise; +} +export declare class PersonalAccessTokenCredentialHandler implements ifm.RequestHandler { + token: string; + constructor(token: string); + prepareRequest(options: http.RequestOptions): void; + canHandleAuthentication(): boolean; + handleAuthentication(): Promise; +} diff --git a/node_modules/@actions/http-client/lib/auth.js b/node_modules/@actions/http-client/lib/auth.js new file mode 100644 index 0000000..2c150a3 --- /dev/null +++ b/node_modules/@actions/http-client/lib/auth.js @@ -0,0 +1,81 @@ +"use strict"; +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()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; +//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/auth.js.map b/node_modules/@actions/http-client/lib/auth.js.map new file mode 100644 index 0000000..7d3a18a --- /dev/null +++ b/node_modules/@actions/http-client/lib/auth.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,MAAa,sBAAsB;IAIjC,YAAY,QAAgB,EAAE,QAAgB;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CACrD,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CACpC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;IACxB,CAAC;IAED,iCAAiC;IACjC,uBAAuB;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,oBAAoB;;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;KAAA;CACF;AA1BD,wDA0BC;AAED,MAAa,uBAAuB;IAGlC,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,yCAAyC;IACzC,sDAAsD;IACtD,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3D,CAAC;IAED,iCAAiC;IACjC,uBAAuB;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,oBAAoB;;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;KAAA;CACF;AAxBD,0DAwBC;AAED,MAAa,oCAAoC;IAI/C,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,yCAAyC;IACzC,sDAAsD;IACtD,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CACrD,OAAO,IAAI,CAAC,KAAK,EAAE,CACpB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;IACxB,CAAC;IAED,iCAAiC;IACjC,uBAAuB;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,oBAAoB;;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;KAAA;CACF;AA3BD,oFA2BC"} \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/index.d.ts b/node_modules/@actions/http-client/lib/index.d.ts new file mode 100644 index 0000000..fe733d1 --- /dev/null +++ b/node_modules/@actions/http-client/lib/index.d.ts @@ -0,0 +1,123 @@ +/// +import * as http from 'http'; +import * as ifm from './interfaces'; +export declare enum HttpCodes { + OK = 200, + MultipleChoices = 300, + MovedPermanently = 301, + ResourceMoved = 302, + SeeOther = 303, + NotModified = 304, + UseProxy = 305, + SwitchProxy = 306, + TemporaryRedirect = 307, + PermanentRedirect = 308, + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticationRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + TooManyRequests = 429, + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504 +} +export declare enum Headers { + Accept = "accept", + ContentType = "content-type" +} +export declare enum MediaTypes { + ApplicationJson = "application/json" +} +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +export declare function getProxyUrl(serverUrl: string): string; +export declare class HttpClientError extends Error { + constructor(message: string, statusCode: number); + statusCode: number; + result?: any; +} +export declare class HttpClientResponse { + constructor(message: http.IncomingMessage); + message: http.IncomingMessage; + readBody(): Promise; +} +export declare function isHttps(requestUrl: string): boolean; +export declare class HttpClient { + userAgent: string | undefined; + handlers: ifm.RequestHandler[]; + requestOptions: ifm.RequestOptions | undefined; + private _ignoreSslError; + private _socketTimeout; + private _allowRedirects; + private _allowRedirectDowngrade; + private _maxRedirects; + private _allowRetries; + private _maxRetries; + private _agent; + private _proxyAgent; + private _keepAlive; + private _disposed; + constructor(userAgent?: string, handlers?: ifm.RequestHandler[], requestOptions?: ifm.RequestOptions); + options(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + get(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + del(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + post(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + patch(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + put(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + head(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; + postJson(requestUrl: string, obj: any, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; + putJson(requestUrl: string, obj: any, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; + patchJson(requestUrl: string, obj: any, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream | null, headers?: http.OutgoingHttpHeaders): Promise; + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose(): void; + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info: ifm.RequestInfo, data: string | NodeJS.ReadableStream | null): Promise; + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info: ifm.RequestInfo, data: string | NodeJS.ReadableStream | null, onResult: (err?: Error, res?: HttpClientResponse) => void): void; + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl: string): http.Agent; + private _prepareRequest; + private _mergeHeaders; + private _getExistingOrDefaultHeader; + private _getAgent; + private _performExponentialBackoff; + private _processResponse; +} diff --git a/node_modules/@actions/http-client/lib/index.js b/node_modules/@actions/http-client/lib/index.js new file mode 100644 index 0000000..a1b7d03 --- /dev/null +++ b/node_modules/@actions/http-client/lib/index.js @@ -0,0 +1,605 @@ +"use strict"; +/* eslint-disable @typescript-eslint/no-explicit-any */ +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]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; +const http = __importStar(require("http")); +const https = __importStar(require("https")); +const pm = __importStar(require("./proxy")); +const tunnel = __importStar(require("tunnel")); +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + })); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + }); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + postJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + putJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + patchJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + const parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === 'https:' && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (!response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode)) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } while (numTries < maxTries); + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err); + } + else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error('Unknown error')); + } + else { + resolve(res); + } + } + this.requestRawWithCallback(info, data, callbackForResult); + }); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === 'string') { + if (!info.options.headers) { + info.options.headers = {}; + } + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info.httpModule.request(info.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(undefined, res); + }); + let socket; + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options); + } + } + return info; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + })), { host: proxyUrl.hostname, port: proxyUrl.port }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + })); + }); + } +} +exports.HttpClient = HttpClient; +const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/index.js.map b/node_modules/@actions/http-client/lib/index.js.map new file mode 100644 index 0000000..ca8ea41 --- /dev/null +++ b/node_modules/@actions/http-client/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvD,2CAA4B;AAC5B,6CAA8B;AAG9B,4CAA6B;AAC7B,+CAAgC;AAEhC,IAAY,SA4BX;AA5BD,WAAY,SAAS;IACnB,uCAAQ,CAAA;IACR,iEAAqB,CAAA;IACrB,mEAAsB,CAAA;IACtB,6DAAmB,CAAA;IACnB,mDAAc,CAAA;IACd,yDAAiB,CAAA;IACjB,mDAAc,CAAA;IACd,yDAAiB,CAAA;IACjB,qEAAuB,CAAA;IACvB,qEAAuB,CAAA;IACvB,uDAAgB,CAAA;IAChB,2DAAkB,CAAA;IAClB,iEAAqB,CAAA;IACrB,qDAAe,CAAA;IACf,mDAAc,CAAA;IACd,mEAAsB,CAAA;IACtB,6DAAmB,CAAA;IACnB,yFAAiC,CAAA;IACjC,+DAAoB,CAAA;IACpB,mDAAc,CAAA;IACd,2CAAU,CAAA;IACV,iEAAqB,CAAA;IACrB,yEAAyB,CAAA;IACzB,+DAAoB,CAAA;IACpB,uDAAgB,CAAA;IAChB,uEAAwB,CAAA;IACxB,+DAAoB,CAAA;AACtB,CAAC,EA5BW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QA4BpB;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,4BAAiB,CAAA;IACjB,uCAA4B,CAAA;AAC9B,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB;AAED,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,kDAAoC,CAAA;AACtC,CAAC,EAFW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAErB;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,SAAiB;IAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IACnD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;AACtC,CAAC;AAHD,kCAGC;AAED,MAAM,iBAAiB,GAAa;IAClC,SAAS,CAAC,gBAAgB;IAC1B,SAAS,CAAC,aAAa;IACvB,SAAS,CAAC,QAAQ;IAClB,SAAS,CAAC,iBAAiB;IAC3B,SAAS,CAAC,iBAAiB;CAC5B,CAAA;AACD,MAAM,sBAAsB,GAAa;IACvC,SAAS,CAAC,UAAU;IACpB,SAAS,CAAC,kBAAkB;IAC5B,SAAS,CAAC,cAAc;CACzB,CAAA;AACD,MAAM,kBAAkB,GAAa,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AACzE,MAAM,yBAAyB,GAAG,EAAE,CAAA;AACpC,MAAM,2BAA2B,GAAG,CAAC,CAAA;AAErC,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe,EAAE,UAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;CAIF;AAVD,0CAUC;AAED,MAAa,kBAAkB;IAC7B,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAGK,QAAQ;;YACZ,OAAO,IAAI,OAAO,CAAS,CAAM,OAAO,EAAC,EAAE;gBACzC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAE5B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBACxC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;gBACzC,CAAC,CAAC,CAAA;gBAEF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC5B,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA,CAAC,CAAA;QACJ,CAAC;KAAA;CACF;AAnBD,gDAmBC;AAED,SAAgB,OAAO,CAAC,UAAkB;IACxC,MAAM,SAAS,GAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;IAC1C,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAA;AACxC,CAAC;AAHD,0BAGC;AAED,MAAa,UAAU;IAiBrB,YACE,SAAkB,EAClB,QAA+B,EAC/B,cAAmC;QAf7B,oBAAe,GAAG,KAAK,CAAA;QAEvB,oBAAe,GAAG,IAAI,CAAA;QACtB,4BAAuB,GAAG,KAAK,CAAA;QAC/B,kBAAa,GAAG,EAAE,CAAA;QAClB,kBAAa,GAAG,KAAK,CAAA;QACrB,gBAAW,GAAG,CAAC,CAAA;QAGf,eAAU,GAAG,KAAK,CAAA;QAClB,cAAS,GAAG,KAAK,CAAA;QAOvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,cAAc,EAAE;YAClB,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;gBACzC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,cAAc,CAAA;aACrD;YAED,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,aAAa,CAAA;YAElD,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;gBACzC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,cAAc,CAAA;aACrD;YAED,IAAI,cAAc,CAAC,sBAAsB,IAAI,IAAI,EAAE;gBACjD,IAAI,CAAC,uBAAuB,GAAG,cAAc,CAAC,sBAAsB,CAAA;aACrE;YAED,IAAI,cAAc,CAAC,YAAY,IAAI,IAAI,EAAE;gBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;aAC9D;YAED,IAAI,cAAc,CAAC,SAAS,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS,CAAA;aAC3C;YAED,IAAI,cAAc,CAAC,YAAY,IAAI,IAAI,EAAE;gBACvC,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,YAAY,CAAA;aACjD;YAED,IAAI,cAAc,CAAC,UAAU,IAAI,IAAI,EAAE;gBACrC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,UAAU,CAAA;aAC7C;SACF;IACH,CAAC;IAEK,OAAO,CACX,UAAkB,EAClB,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAC3E,CAAC;KAAA;IAEK,GAAG,CACP,UAAkB,EAClB,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAA;QACvE,CAAC;KAAA;IAEK,GAAG,CACP,UAAkB,EAClB,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;KAAA;IAEK,IAAI,CACR,UAAkB,EAClB,IAAY,EACZ,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAA;QACxE,CAAC;KAAA;IAEK,KAAK,CACT,UAAkB,EAClB,IAAY,EACZ,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAA;QACzE,CAAC;KAAA;IAEK,GAAG,CACP,UAAkB,EAClB,IAAY,EACZ,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAA;QACvE,CAAC;KAAA;IAEK,IAAI,CACR,UAAkB,EAClB,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAA;QACxE,CAAC;KAAA;IAEK,UAAU,CACd,IAAY,EACZ,UAAkB,EAClB,MAA6B,EAC7B,iBAA4C;;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAA;QAClE,CAAC;KAAA;IAED;;;OAGG;IACG,OAAO,CACX,UAAkB,EAClB,oBAA8C,EAAE;;YAEhD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAClE,iBAAiB,EACjB,OAAO,CAAC,MAAM,EACd,UAAU,CAAC,eAAe,CAC3B,CAAA;YACD,MAAM,GAAG,GAAuB,MAAM,IAAI,CAAC,GAAG,CAC5C,UAAU,EACV,iBAAiB,CAClB,CAAA;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAI,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3D,CAAC;KAAA;IAEK,QAAQ,CACZ,UAAkB,EAClB,GAAQ,EACR,oBAA8C,EAAE;;YAEhD,MAAM,IAAI,GAAW,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACjD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAClE,iBAAiB,EACjB,OAAO,CAAC,MAAM,EACd,UAAU,CAAC,eAAe,CAC3B,CAAA;YACD,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CACvE,iBAAiB,EACjB,OAAO,CAAC,WAAW,EACnB,UAAU,CAAC,eAAe,CAC3B,CAAA;YACD,MAAM,GAAG,GAAuB,MAAM,IAAI,CAAC,IAAI,CAC7C,UAAU,EACV,IAAI,EACJ,iBAAiB,CAClB,CAAA;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAI,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3D,CAAC;KAAA;IAEK,OAAO,CACX,UAAkB,EAClB,GAAQ,EACR,oBAA8C,EAAE;;YAEhD,MAAM,IAAI,GAAW,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACjD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAClE,iBAAiB,EACjB,OAAO,CAAC,MAAM,EACd,UAAU,CAAC,eAAe,CAC3B,CAAA;YACD,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CACvE,iBAAiB,EACjB,OAAO,CAAC,WAAW,EACnB,UAAU,CAAC,eAAe,CAC3B,CAAA;YACD,MAAM,GAAG,GAAuB,MAAM,IAAI,CAAC,GAAG,CAC5C,UAAU,EACV,IAAI,EACJ,iBAAiB,CAClB,CAAA;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAI,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3D,CAAC;KAAA;IAEK,SAAS,CACb,UAAkB,EAClB,GAAQ,EACR,oBAA8C,EAAE;;YAEhD,MAAM,IAAI,GAAW,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACjD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAClE,iBAAiB,EACjB,OAAO,CAAC,MAAM,EACd,UAAU,CAAC,eAAe,CAC3B,CAAA;YACD,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CACvE,iBAAiB,EACjB,OAAO,CAAC,WAAW,EACnB,UAAU,CAAC,eAAe,CAC3B,CAAA;YACD,MAAM,GAAG,GAAuB,MAAM,IAAI,CAAC,KAAK,CAC9C,UAAU,EACV,IAAI,EACJ,iBAAiB,CAClB,CAAA;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAI,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3D,CAAC;KAAA;IAED;;;;OAIG;IACG,OAAO,CACX,IAAY,EACZ,UAAkB,EAClB,IAA2C,EAC3C,OAAkC;;YAElC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;aACrD;YAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;YACrC,IAAI,IAAI,GAAoB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YAE1E,oEAAoE;YACpE,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrD,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC;gBACtB,CAAC,CAAC,CAAC,CAAA;YACP,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,IAAI,QAAwC,CAAA;YAC5C,GAAG;gBACD,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAE5C,4CAA4C;gBAC5C,IACE,QAAQ;oBACR,QAAQ,CAAC,OAAO;oBAChB,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,YAAY,EACtD;oBACA,IAAI,qBAAqD,CAAA;oBAEzD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACnC,IAAI,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE;4BAC7C,qBAAqB,GAAG,OAAO,CAAA;4BAC/B,MAAK;yBACN;qBACF;oBAED,IAAI,qBAAqB,EAAE;wBACzB,OAAO,qBAAqB,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;qBACpE;yBAAM;wBACL,+EAA+E;wBAC/E,yCAAyC;wBACzC,OAAO,QAAQ,CAAA;qBAChB;iBACF;gBAED,IAAI,kBAAkB,GAAW,IAAI,CAAC,aAAa,CAAA;gBACnD,OACE,QAAQ,CAAC,OAAO,CAAC,UAAU;oBAC3B,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;oBACvD,IAAI,CAAC,eAAe;oBACpB,kBAAkB,GAAG,CAAC,EACtB;oBACA,MAAM,WAAW,GACf,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;oBACtC,IAAI,CAAC,WAAW,EAAE;wBAChB,kDAAkD;wBAClD,MAAK;qBACN;oBACD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAA;oBAC9C,IACE,SAAS,CAAC,QAAQ,KAAK,QAAQ;wBAC/B,SAAS,CAAC,QAAQ,KAAK,iBAAiB,CAAC,QAAQ;wBACjD,CAAC,IAAI,CAAC,uBAAuB,EAC7B;wBACA,MAAM,IAAI,KAAK,CACb,8KAA8K,CAC/K,CAAA;qBACF;oBAED,qEAAqE;oBACrE,mCAAmC;oBACnC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;oBAEzB,mEAAmE;oBACnE,IAAI,iBAAiB,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE;wBACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;4BAC5B,oCAAoC;4BACpC,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE;gCAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;6BACvB;yBACF;qBACF;oBAED,kDAAkD;oBAClD,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;oBAC7D,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;oBAC5C,kBAAkB,EAAE,CAAA;iBACrB;gBAED,IACE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;oBAC5B,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAC7D;oBACA,8DAA8D;oBAC9D,OAAO,QAAQ,CAAA;iBAChB;gBAED,QAAQ,IAAI,CAAC,CAAA;gBAEb,IAAI,QAAQ,GAAG,QAAQ,EAAE;oBACvB,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;oBACzB,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAA;iBAChD;aACF,QAAQ,QAAQ,GAAG,QAAQ,EAAC;YAE7B,OAAO,QAAQ,CAAA;QACjB,CAAC;KAAA;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;SACtB;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACG,UAAU,CACd,IAAqB,EACrB,IAA2C;;YAE3C,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzD,SAAS,iBAAiB,CAAC,GAAW,EAAE,GAAwB;oBAC9D,IAAI,GAAG,EAAE;wBACP,MAAM,CAAC,GAAG,CAAC,CAAA;qBACZ;yBAAM,IAAI,CAAC,GAAG,EAAE;wBACf,qDAAqD;wBACrD,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;qBACnC;yBAAM;wBACL,OAAO,CAAC,GAAG,CAAC,CAAA;qBACb;gBACH,CAAC;gBAED,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAA;YAC5D,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;IAED;;;;;OAKG;IACH,sBAAsB,CACpB,IAAqB,EACrB,IAA2C,EAC3C,QAAyD;QAEzD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACzB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;aAC1B;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;SACzE;QAED,IAAI,cAAc,GAAG,KAAK,CAAA;QAC1B,SAAS,YAAY,CAAC,GAAW,EAAE,GAAwB;YACzD,IAAI,CAAC,cAAc,EAAE;gBACnB,cAAc,GAAG,IAAI,CAAA;gBACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;aACnB;QACH,CAAC;QAED,MAAM,GAAG,GAAuB,IAAI,CAAC,UAAU,CAAC,OAAO,CACrD,IAAI,CAAC,OAAO,EACZ,CAAC,GAAyB,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAuB,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAC3D,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC,CACF,CAAA;QAED,IAAI,MAAkB,CAAA;QACtB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACtB,MAAM,GAAG,IAAI,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,wEAAwE;QACxE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE;YACpD,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,GAAG,EAAE,CAAA;aACb;YACD,YAAY,CAAC,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,UAAS,GAAG;YAC1B,8BAA8B;YAC9B,0BAA0B;YAC1B,YAAY,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACpC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;SACxB;QAED,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;gBACf,GAAG,CAAC,GAAG,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACf;aAAM;YACL,GAAG,CAAC,GAAG,EAAE,CAAA;SACV;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,SAAiB;QACxB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAEO,eAAe,CACrB,MAAc,EACd,UAAe,EACf,OAAkC;QAElC,MAAM,IAAI,GAAqC,EAAE,CAAA;QAEjD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAA;QAC3B,MAAM,QAAQ,GAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAA;QAC9D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACzC,MAAM,WAAW,GAAW,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAE/C,IAAI,CAAC,OAAO,GAAwB,EAAE,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAA;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI;YACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC/B,CAAC,CAAC,WAAW,CAAA;QACf,IAAI,CAAC,OAAO,CAAC,IAAI;YACf,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;SACpD;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAEnD,+CAA+C;QAC/C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACrC;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,aAAa,CACnB,OAAkC;QAElC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YACtD,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAC1C,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAC7B,CAAA;SACF;QAED,OAAO,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IACrC,CAAC;IAEO,2BAA2B,CACjC,iBAA2C,EAC3C,MAAc,EACd,QAAgB;QAEhB,IAAI,YAAgC,CAAA;QACpC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YACtD,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;SAClE;QACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,YAAY,IAAI,QAAQ,CAAA;IAC9D,CAAC;IAEO,SAAS,CAAC,SAAc;QAC9B,IAAI,KAAK,CAAA;QACT,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAA;QAE9C,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;YAC/B,KAAK,GAAG,IAAI,CAAC,WAAW,CAAA;SACzB;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE;YAChC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;SACpB;QAED,+CAA+C;QAC/C,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAA;SACb;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAA;QAChD,IAAI,UAAU,GAAG,GAAG,CAAA;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA;SAC3E;QAED,sGAAsG;QACtG,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;YACjC,MAAM,YAAY,GAAG;gBACnB,UAAU;gBACV,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,KAAK,kCACA,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI;oBAC9C,SAAS,EAAE,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;iBACvD,CAAC,KACF,IAAI,EAAE,QAAQ,CAAC,QAAQ,EACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,GACpB;aACF,CAAA;YAED,IAAI,WAAqB,CAAA;YACzB,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAA;YAChD,IAAI,QAAQ,EAAE;gBACZ,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAA;aACvE;iBAAM;gBACL,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAA;aACrE;YAED,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;YACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;SACzB;QAED,wFAAwF;QACxF,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,OAAO,GAAG,EAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAC,CAAA;YACxD,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;SACpB;QAED,gFAAgF;QAChF,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;SACxD;QAED,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YACpC,wGAAwG;YACxG,kFAAkF;YAClF,mDAAmD;YACnD,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;gBACjD,kBAAkB,EAAE,KAAK;aAC1B,CAAC,CAAA;SACH;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAEa,0BAA0B,CAAC,WAAmB;;YAC1D,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAA;YAC9D,MAAM,EAAE,GAAW,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;YACzE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAChE,CAAC;KAAA;IAEa,gBAAgB,CAC5B,GAAuB,EACvB,OAA4B;;YAE5B,OAAO,IAAI,OAAO,CAAuB,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;gBACjE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAA;gBAE9C,MAAM,QAAQ,GAAyB;oBACrC,UAAU;oBACV,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,EAAE;iBACZ,CAAA;gBAED,uCAAuC;gBACvC,IAAI,UAAU,KAAK,SAAS,CAAC,QAAQ,EAAE;oBACrC,OAAO,CAAC,QAAQ,CAAC,CAAA;iBAClB;gBAED,+BAA+B;gBAE/B,SAAS,oBAAoB,CAAC,GAAQ,EAAE,KAAU;oBAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAC7B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;wBACzB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;4BACvB,OAAO,CAAC,CAAA;yBACT;qBACF;oBAED,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAI,GAAQ,CAAA;gBACZ,IAAI,QAA4B,CAAA;gBAEhC,IAAI;oBACF,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAA;oBAC/B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnC,IAAI,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE;4BACvC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAA;yBACjD;6BAAM;4BACL,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;yBAC3B;wBAED,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;qBACtB;oBAED,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAA;iBACvC;gBAAC,OAAO,GAAG,EAAE;oBACZ,iEAAiE;iBAClE;gBAED,yDAAyD;gBACzD,IAAI,UAAU,GAAG,GAAG,EAAE;oBACpB,IAAI,GAAW,CAAA;oBAEf,0DAA0D;oBAC1D,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;wBACtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;qBAClB;yBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1C,yEAAyE;wBACzE,GAAG,GAAG,QAAQ,CAAA;qBACf;yBAAM;wBACL,GAAG,GAAG,oBAAoB,UAAU,GAAG,CAAA;qBACxC;oBAED,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;oBAChD,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;oBAE5B,MAAM,CAAC,GAAG,CAAC,CAAA;iBACZ;qBAAM;oBACL,OAAO,CAAC,QAAQ,CAAC,CAAA;iBAClB;YACH,CAAC,CAAA,CAAC,CAAA;QACJ,CAAC;KAAA;CACF;AAlpBD,gCAkpBC;AAED,MAAM,aAAa,GAAG,CAAC,GAA2B,EAAO,EAAE,CACzD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA"} \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/interfaces.d.ts b/node_modules/@actions/http-client/lib/interfaces.d.ts new file mode 100644 index 0000000..54fd4a8 --- /dev/null +++ b/node_modules/@actions/http-client/lib/interfaces.d.ts @@ -0,0 +1,44 @@ +/// +import * as http from 'http'; +import * as https from 'https'; +import { HttpClientResponse } from './index'; +export interface HttpClient { + options(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + get(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + del(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + post(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + patch(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + put(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: http.OutgoingHttpHeaders): Promise; + request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: http.OutgoingHttpHeaders): Promise; + requestRaw(info: RequestInfo, data: string | NodeJS.ReadableStream): Promise; + requestRawWithCallback(info: RequestInfo, data: string | NodeJS.ReadableStream, onResult: (err?: Error, res?: HttpClientResponse) => void): void; +} +export interface RequestHandler { + prepareRequest(options: http.RequestOptions): void; + canHandleAuthentication(response: HttpClientResponse): boolean; + handleAuthentication(httpClient: HttpClient, requestInfo: RequestInfo, data: string | NodeJS.ReadableStream | null): Promise; +} +export interface RequestInfo { + options: http.RequestOptions; + parsedUrl: URL; + httpModule: typeof http | typeof https; +} +export interface RequestOptions { + headers?: http.OutgoingHttpHeaders; + socketTimeout?: number; + ignoreSslError?: boolean; + allowRedirects?: boolean; + allowRedirectDowngrade?: boolean; + maxRedirects?: number; + maxSockets?: number; + keepAlive?: boolean; + deserializeDates?: boolean; + allowRetries?: boolean; + maxRetries?: number; +} +export interface TypedResponse { + statusCode: number; + result: T | null; + headers: http.IncomingHttpHeaders; +} diff --git a/node_modules/@actions/http-client/lib/interfaces.js b/node_modules/@actions/http-client/lib/interfaces.js new file mode 100644 index 0000000..db91911 --- /dev/null +++ b/node_modules/@actions/http-client/lib/interfaces.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/interfaces.js.map b/node_modules/@actions/http-client/lib/interfaces.js.map new file mode 100644 index 0000000..8fb5f7d --- /dev/null +++ b/node_modules/@actions/http-client/lib/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/proxy.d.ts b/node_modules/@actions/http-client/lib/proxy.d.ts new file mode 100644 index 0000000..4599865 --- /dev/null +++ b/node_modules/@actions/http-client/lib/proxy.d.ts @@ -0,0 +1,2 @@ +export declare function getProxyUrl(reqUrl: URL): URL | undefined; +export declare function checkBypass(reqUrl: URL): boolean; diff --git a/node_modules/@actions/http-client/lib/proxy.js b/node_modules/@actions/http-client/lib/proxy.js new file mode 100644 index 0000000..528ffe4 --- /dev/null +++ b/node_modules/@actions/http-client/lib/proxy.js @@ -0,0 +1,61 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.checkBypass = exports.getProxyUrl = void 0; +function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:'; + if (checkBypass(reqUrl)) { + return undefined; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (proxyVar) { + return new URL(proxyVar); + } + else { + return undefined; + } +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; +//# sourceMappingURL=proxy.js.map \ No newline at end of file diff --git a/node_modules/@actions/http-client/lib/proxy.js.map b/node_modules/@actions/http-client/lib/proxy.js.map new file mode 100644 index 0000000..4440de9 --- /dev/null +++ b/node_modules/@actions/http-client/lib/proxy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,MAAW;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAA;IAE7C,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QACvB,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,QAAQ,EAAE;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;SAChE;aAAM;YACL,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;SAC9D;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;KACzB;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AApBD,kCAoBC;AAED,SAAgB,WAAW,CAAC,MAAW;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IACxE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,KAAK,CAAA;KACb;IAED,6BAA6B;IAC7B,IAAI,OAA2B,CAAA;IAC/B,IAAI,MAAM,CAAC,IAAI,EAAE;QACf,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAC9B;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE;QACtC,OAAO,GAAG,EAAE,CAAA;KACb;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACvC,OAAO,GAAG,GAAG,CAAA;KACd;IAED,qDAAqD;IACrD,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;IACrD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAA;KACrD;IAED,uCAAuC;IACvC,KAAK,MAAM,gBAAgB,IAAI,OAAO;SACnC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACjB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC,EAAE;YACnD,OAAO,IAAI,CAAA;SACZ;KACF;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AArCD,kCAqCC"} \ No newline at end of file diff --git a/node_modules/@actions/http-client/package.json b/node_modules/@actions/http-client/package.json new file mode 100644 index 0000000..c1de221 --- /dev/null +++ b/node_modules/@actions/http-client/package.json @@ -0,0 +1,48 @@ +{ + "name": "@actions/http-client", + "version": "2.0.1", + "description": "Actions Http Client", + "keywords": [ + "github", + "actions", + "http" + ], + "homepage": "https://github.com/actions/toolkit/tree/main/packages/http-client", + "license": "MIT", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib", + "!.DS_Store" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/actions/toolkit.git", + "directory": "packages/http-client" + }, + "scripts": { + "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", + "test": "echo \"Error: run tests from root\" && exit 1", + "build": "tsc", + "format": "prettier --write **/*.ts", + "format-check": "prettier --check **/*.ts", + "tsc": "tsc" + }, + "bugs": { + "url": "https://github.com/actions/toolkit/issues" + }, + "devDependencies": { + "@types/tunnel": "0.0.3", + "proxy": "^1.0.1" + }, + "dependencies": { + "tunnel": "^0.0.6" + } +} diff --git a/node_modules/@eslint/eslintrc/LICENSE b/node_modules/@eslint/eslintrc/LICENSE new file mode 100644 index 0000000..b607bb3 --- /dev/null +++ b/node_modules/@eslint/eslintrc/LICENSE @@ -0,0 +1,19 @@ +Copyright OpenJS Foundation and other contributors, + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@eslint/eslintrc/README.md b/node_modules/@eslint/eslintrc/README.md new file mode 100644 index 0000000..61a3a55 --- /dev/null +++ b/node_modules/@eslint/eslintrc/README.md @@ -0,0 +1,64 @@ +# ESLintRC Library + +This repository contains the legacy ESLintRC configuration file format for ESLint. + +**Note:** This package is not intended for use outside of the ESLint ecosystem. It is ESLint-specific and not intended for use in other programs. + +## Installation + +You can install the package as follows: + +``` +npm install @eslint/eslintrc --save-dev + +# or + +yarn add @eslint/eslintrc -D +``` + +## Future Usage + +**Note:** This package is not intended for public use at this time. The following is an example of how it will be used in the future. + +The primary class in this package is `FlatCompat`, which is a utility to translate ESLintRC-style configs into flat configs. Here's how you use it inside of your `eslint.config.js` file: + +```js +import { FlatCompat } from "@eslint/eslintrc"; + +const compat = new FlatCompat({ + baseDirectory: __dirname, // optional; default: process.cwd() + resolvePluginsRelativeTo: __dirname // optional +}); + +export default [ + + // mimic ESLintRC-style extends + compat.extends("standard", "example"), + + // mimic environments + compat.env({ + es2020: true, + node: true + }), + + // mimic plugins + compat.plugins("airbnb", "react"), + + // translate an entire config + compat.config({ + plugins: ["airbnb", "react"], + extends: "standard", + env: { + es2020: true, + node: true + }, + rules: { + semi: "error" + } + }) +]; +``` + +## License + +MIT License diff --git a/node_modules/@eslint/eslintrc/conf/config-schema.js b/node_modules/@eslint/eslintrc/conf/config-schema.js new file mode 100644 index 0000000..ada90e1 --- /dev/null +++ b/node_modules/@eslint/eslintrc/conf/config-schema.js @@ -0,0 +1,79 @@ +/** + * @fileoverview Defines a schema for configs. + * @author Sylvan Mably + */ + +const baseConfigProperties = { + $schema: { type: "string" }, + env: { type: "object" }, + extends: { $ref: "#/definitions/stringOrStrings" }, + globals: { type: "object" }, + overrides: { + type: "array", + items: { $ref: "#/definitions/overrideConfig" }, + additionalItems: false + }, + parser: { type: ["string", "null"] }, + parserOptions: { type: "object" }, + plugins: { type: "array" }, + processor: { type: "string" }, + rules: { type: "object" }, + settings: { type: "object" }, + noInlineConfig: { type: "boolean" }, + reportUnusedDisableDirectives: { type: "boolean" }, + + ecmaFeatures: { type: "object" } // deprecated; logs a warning when used +}; + +const configSchema = { + definitions: { + stringOrStrings: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false + } + ] + }, + stringOrStringsRequired: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false, + minItems: 1 + } + ] + }, + + // Config at top-level. + objectConfig: { + type: "object", + properties: { + root: { type: "boolean" }, + ignorePatterns: { $ref: "#/definitions/stringOrStrings" }, + ...baseConfigProperties + }, + additionalProperties: false + }, + + // Config in `overrides`. + overrideConfig: { + type: "object", + properties: { + excludedFiles: { $ref: "#/definitions/stringOrStrings" }, + files: { $ref: "#/definitions/stringOrStringsRequired" }, + ...baseConfigProperties + }, + required: ["files"], + additionalProperties: false + } + }, + + $ref: "#/definitions/objectConfig" +}; + +export default configSchema; diff --git a/node_modules/@eslint/eslintrc/conf/environments.js b/node_modules/@eslint/eslintrc/conf/environments.js new file mode 100644 index 0000000..f842852 --- /dev/null +++ b/node_modules/@eslint/eslintrc/conf/environments.js @@ -0,0 +1,203 @@ +/** + * @fileoverview Defines environment settings and globals. + * @author Elan Shanker + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import globals from "globals"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Get the object that has difference. + * @param {Record} current The newer object. + * @param {Record} prev The older object. + * @returns {Record} The difference object. + */ +function getDiff(current, prev) { + const retv = {}; + + for (const [key, value] of Object.entries(current)) { + if (!Object.hasOwnProperty.call(prev, key)) { + retv[key] = value; + } + } + + return retv; +} + +const newGlobals2015 = getDiff(globals.es2015, globals.es5); // 19 variables such as Promise, Map, ... +const newGlobals2017 = { + Atomics: false, + SharedArrayBuffer: false +}; +const newGlobals2020 = { + BigInt: false, + BigInt64Array: false, + BigUint64Array: false, + globalThis: false +}; + +const newGlobals2021 = { + AggregateError: false, + FinalizationRegistry: false, + WeakRef: false +}; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** @type {Map} */ +export default new Map(Object.entries({ + + // Language + builtin: { + globals: globals.es5 + }, + es6: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 6 + } + }, + es2015: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 6 + } + }, + es2016: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 7 + } + }, + es2017: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 8 + } + }, + es2018: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 9 + } + }, + es2019: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 10 + } + }, + es2020: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 }, + parserOptions: { + ecmaVersion: 11 + } + }, + es2021: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 }, + parserOptions: { + ecmaVersion: 12 + } + }, + es2022: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 }, + parserOptions: { + ecmaVersion: 13 + } + }, + + // Platforms + browser: { + globals: globals.browser + }, + node: { + globals: globals.node, + parserOptions: { + ecmaFeatures: { + globalReturn: true + } + } + }, + "shared-node-browser": { + globals: globals["shared-node-browser"] + }, + worker: { + globals: globals.worker + }, + serviceworker: { + globals: globals.serviceworker + }, + + // Frameworks + commonjs: { + globals: globals.commonjs, + parserOptions: { + ecmaFeatures: { + globalReturn: true + } + } + }, + amd: { + globals: globals.amd + }, + mocha: { + globals: globals.mocha + }, + jasmine: { + globals: globals.jasmine + }, + jest: { + globals: globals.jest + }, + phantomjs: { + globals: globals.phantomjs + }, + jquery: { + globals: globals.jquery + }, + qunit: { + globals: globals.qunit + }, + prototypejs: { + globals: globals.prototypejs + }, + shelljs: { + globals: globals.shelljs + }, + meteor: { + globals: globals.meteor + }, + mongo: { + globals: globals.mongo + }, + protractor: { + globals: globals.protractor + }, + applescript: { + globals: globals.applescript + }, + nashorn: { + globals: globals.nashorn + }, + atomtest: { + globals: globals.atomtest + }, + embertest: { + globals: globals.embertest + }, + webextensions: { + globals: globals.webextensions + }, + greasemonkey: { + globals: globals.greasemonkey + } +})); diff --git a/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs b/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs new file mode 100644 index 0000000..b1b7553 --- /dev/null +++ b/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs @@ -0,0 +1,1092 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var util = require('util'); +var path = require('path'); +var Ajv = require('ajv'); +var globals = require('globals'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var util__default = /*#__PURE__*/_interopDefaultLegacy(util); +var path__default = /*#__PURE__*/_interopDefaultLegacy(path); +var Ajv__default = /*#__PURE__*/_interopDefaultLegacy(Ajv); +var globals__default = /*#__PURE__*/_interopDefaultLegacy(globals); + +/** + * @fileoverview Config file operations. This file must be usable in the browser, + * so no Node-specific code can be here. + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +const RULE_SEVERITY_STRINGS = ["off", "warn", "error"], + RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => { + map[value] = index; + return map; + }, {}), + VALID_SEVERITIES = [0, 1, 2, "off", "warn", "error"]; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Normalizes the severity value of a rule's configuration to a number + * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally + * received from the user. A valid config value is either 0, 1, 2, the string "off" (treated the same as 0), + * the string "warn" (treated the same as 1), the string "error" (treated the same as 2), or an array + * whose first element is one of the above values. Strings are matched case-insensitively. + * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0. + */ +function getRuleSeverity(ruleConfig) { + const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; + + if (severityValue === 0 || severityValue === 1 || severityValue === 2) { + return severityValue; + } + + if (typeof severityValue === "string") { + return RULE_SEVERITY[severityValue.toLowerCase()] || 0; + } + + return 0; +} + +/** + * Converts old-style severity settings (0, 1, 2) into new-style + * severity settings (off, warn, error) for all rules. Assumption is that severity + * values have already been validated as correct. + * @param {Object} config The config object to normalize. + * @returns {void} + */ +function normalizeToStrings(config) { + + if (config.rules) { + Object.keys(config.rules).forEach(ruleId => { + const ruleConfig = config.rules[ruleId]; + + if (typeof ruleConfig === "number") { + config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0]; + } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === "number") { + ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0]; + } + }); + } +} + +/** + * Determines if the severity for the given rule configuration represents an error. + * @param {int|string|Array} ruleConfig The configuration for an individual rule. + * @returns {boolean} True if the rule represents an error, false if not. + */ +function isErrorSeverity(ruleConfig) { + return getRuleSeverity(ruleConfig) === 2; +} + +/** + * Checks whether a given config has valid severity or not. + * @param {number|string|Array} ruleConfig The configuration for an individual rule. + * @returns {boolean} `true` if the configuration has valid severity. + */ +function isValidSeverity(ruleConfig) { + let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; + + if (typeof severity === "string") { + severity = severity.toLowerCase(); + } + return VALID_SEVERITIES.indexOf(severity) !== -1; +} + +/** + * Checks whether every rule of a given config has valid severity or not. + * @param {Object} config The configuration for rules. + * @returns {boolean} `true` if the configuration has valid severity. + */ +function isEverySeverityValid(config) { + return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId])); +} + +/** + * Normalizes a value for a global in a config + * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in + * a global directive comment + * @returns {("readable"|"writeable"|"off")} The value normalized as a string + * @throws Error if global value is invalid + */ +function normalizeConfigGlobal(configuredValue) { + switch (configuredValue) { + case "off": + return "off"; + + case true: + case "true": + case "writeable": + case "writable": + return "writable"; + + case null: + case false: + case "false": + case "readable": + case "readonly": + return "readonly"; + + default: + throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`); + } +} + +var ConfigOps = { + __proto__: null, + getRuleSeverity: getRuleSeverity, + normalizeToStrings: normalizeToStrings, + isErrorSeverity: isErrorSeverity, + isValidSeverity: isValidSeverity, + isEverySeverityValid: isEverySeverityValid, + normalizeConfigGlobal: normalizeConfigGlobal +}; + +/** + * @fileoverview Provide the function that emits deprecation warnings. + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +// Defitions for deprecation warnings. +const deprecationWarningMessages = { + ESLINT_LEGACY_ECMAFEATURES: + "The 'ecmaFeatures' config file property is deprecated and has no effect.", + ESLINT_PERSONAL_CONFIG_LOAD: + "'~/.eslintrc.*' config files have been deprecated. " + + "Please use a config file per project or the '--config' option.", + ESLINT_PERSONAL_CONFIG_SUPPRESS: + "'~/.eslintrc.*' config files have been deprecated. " + + "Please remove it or add 'root:true' to the config files in your " + + "projects in order to avoid loading '~/.eslintrc.*' accidentally." +}; + +const sourceFileErrorCache = new Set(); + +/** + * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted + * for each unique file path, but repeated invocations with the same file path have no effect. + * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active. + * @param {string} source The name of the configuration source to report the warning for. + * @param {string} errorCode The warning message to show. + * @returns {void} + */ +function emitDeprecationWarning(source, errorCode) { + const cacheKey = JSON.stringify({ source, errorCode }); + + if (sourceFileErrorCache.has(cacheKey)) { + return; + } + sourceFileErrorCache.add(cacheKey); + + const rel = path__default["default"].relative(process.cwd(), source); + const message = deprecationWarningMessages[errorCode]; + + process.emitWarning( + `${message} (found in "${rel}")`, + "DeprecationWarning", + errorCode + ); +} + +/** + * @fileoverview The instance of Ajv validator. + * @author Evgeny Poberezkin + */ + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/* + * Copied from ajv/lib/refs/json-schema-draft-04.json + * The MIT License (MIT) + * Copyright (c) 2015-2017 Evgeny Poberezkin + */ +const metaSchema = { + id: "http://json-schema.org/draft-04/schema#", + $schema: "http://json-schema.org/draft-04/schema#", + description: "Core schema meta-schema", + definitions: { + schemaArray: { + type: "array", + minItems: 1, + items: { $ref: "#" } + }, + positiveInteger: { + type: "integer", + minimum: 0 + }, + positiveIntegerDefault0: { + allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }] + }, + simpleTypes: { + enum: ["array", "boolean", "integer", "null", "number", "object", "string"] + }, + stringArray: { + type: "array", + items: { type: "string" }, + minItems: 1, + uniqueItems: true + } + }, + type: "object", + properties: { + id: { + type: "string" + }, + $schema: { + type: "string" + }, + 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: { $ref: "#/definitions/positiveInteger" }, + minLength: { $ref: "#/definitions/positiveIntegerDefault0" }, + pattern: { + type: "string", + format: "regex" + }, + additionalItems: { + anyOf: [ + { type: "boolean" }, + { $ref: "#" } + ], + default: { } + }, + items: { + anyOf: [ + { $ref: "#" }, + { $ref: "#/definitions/schemaArray" } + ], + default: { } + }, + maxItems: { $ref: "#/definitions/positiveInteger" }, + minItems: { $ref: "#/definitions/positiveIntegerDefault0" }, + uniqueItems: { + type: "boolean", + default: false + }, + maxProperties: { $ref: "#/definitions/positiveInteger" }, + minProperties: { $ref: "#/definitions/positiveIntegerDefault0" }, + required: { $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: { type: "string" }, + allOf: { $ref: "#/definitions/schemaArray" }, + anyOf: { $ref: "#/definitions/schemaArray" }, + oneOf: { $ref: "#/definitions/schemaArray" }, + not: { $ref: "#" } + }, + dependencies: { + exclusiveMaximum: ["maximum"], + exclusiveMinimum: ["minimum"] + }, + default: { } +}; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +var ajvOrig = (additionalOptions = {}) => { + const ajv = new Ajv__default["default"]({ + meta: false, + useDefaults: true, + validateSchema: false, + missingRefs: "ignore", + verbose: true, + schemaId: "auto", + ...additionalOptions + }); + + ajv.addMetaSchema(metaSchema); + // eslint-disable-next-line no-underscore-dangle + ajv._opts.defaultMeta = metaSchema.id; + + return ajv; +}; + +/** + * @fileoverview Defines a schema for configs. + * @author Sylvan Mably + */ + +const baseConfigProperties = { + $schema: { type: "string" }, + env: { type: "object" }, + extends: { $ref: "#/definitions/stringOrStrings" }, + globals: { type: "object" }, + overrides: { + type: "array", + items: { $ref: "#/definitions/overrideConfig" }, + additionalItems: false + }, + parser: { type: ["string", "null"] }, + parserOptions: { type: "object" }, + plugins: { type: "array" }, + processor: { type: "string" }, + rules: { type: "object" }, + settings: { type: "object" }, + noInlineConfig: { type: "boolean" }, + reportUnusedDisableDirectives: { type: "boolean" }, + + ecmaFeatures: { type: "object" } // deprecated; logs a warning when used +}; + +const configSchema = { + definitions: { + stringOrStrings: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false + } + ] + }, + stringOrStringsRequired: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false, + minItems: 1 + } + ] + }, + + // Config at top-level. + objectConfig: { + type: "object", + properties: { + root: { type: "boolean" }, + ignorePatterns: { $ref: "#/definitions/stringOrStrings" }, + ...baseConfigProperties + }, + additionalProperties: false + }, + + // Config in `overrides`. + overrideConfig: { + type: "object", + properties: { + excludedFiles: { $ref: "#/definitions/stringOrStrings" }, + files: { $ref: "#/definitions/stringOrStringsRequired" }, + ...baseConfigProperties + }, + required: ["files"], + additionalProperties: false + } + }, + + $ref: "#/definitions/objectConfig" +}; + +/** + * @fileoverview Defines environment settings and globals. + * @author Elan Shanker + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Get the object that has difference. + * @param {Record} current The newer object. + * @param {Record} prev The older object. + * @returns {Record} The difference object. + */ +function getDiff(current, prev) { + const retv = {}; + + for (const [key, value] of Object.entries(current)) { + if (!Object.hasOwnProperty.call(prev, key)) { + retv[key] = value; + } + } + + return retv; +} + +const newGlobals2015 = getDiff(globals__default["default"].es2015, globals__default["default"].es5); // 19 variables such as Promise, Map, ... +const newGlobals2017 = { + Atomics: false, + SharedArrayBuffer: false +}; +const newGlobals2020 = { + BigInt: false, + BigInt64Array: false, + BigUint64Array: false, + globalThis: false +}; + +const newGlobals2021 = { + AggregateError: false, + FinalizationRegistry: false, + WeakRef: false +}; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** @type {Map} */ +var environments = new Map(Object.entries({ + + // Language + builtin: { + globals: globals__default["default"].es5 + }, + es6: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 6 + } + }, + es2015: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 6 + } + }, + es2016: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 7 + } + }, + es2017: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 8 + } + }, + es2018: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 9 + } + }, + es2019: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 10 + } + }, + es2020: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 }, + parserOptions: { + ecmaVersion: 11 + } + }, + es2021: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 }, + parserOptions: { + ecmaVersion: 12 + } + }, + es2022: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 }, + parserOptions: { + ecmaVersion: 13 + } + }, + + // Platforms + browser: { + globals: globals__default["default"].browser + }, + node: { + globals: globals__default["default"].node, + parserOptions: { + ecmaFeatures: { + globalReturn: true + } + } + }, + "shared-node-browser": { + globals: globals__default["default"]["shared-node-browser"] + }, + worker: { + globals: globals__default["default"].worker + }, + serviceworker: { + globals: globals__default["default"].serviceworker + }, + + // Frameworks + commonjs: { + globals: globals__default["default"].commonjs, + parserOptions: { + ecmaFeatures: { + globalReturn: true + } + } + }, + amd: { + globals: globals__default["default"].amd + }, + mocha: { + globals: globals__default["default"].mocha + }, + jasmine: { + globals: globals__default["default"].jasmine + }, + jest: { + globals: globals__default["default"].jest + }, + phantomjs: { + globals: globals__default["default"].phantomjs + }, + jquery: { + globals: globals__default["default"].jquery + }, + qunit: { + globals: globals__default["default"].qunit + }, + prototypejs: { + globals: globals__default["default"].prototypejs + }, + shelljs: { + globals: globals__default["default"].shelljs + }, + meteor: { + globals: globals__default["default"].meteor + }, + mongo: { + globals: globals__default["default"].mongo + }, + protractor: { + globals: globals__default["default"].protractor + }, + applescript: { + globals: globals__default["default"].applescript + }, + nashorn: { + globals: globals__default["default"].nashorn + }, + atomtest: { + globals: globals__default["default"].atomtest + }, + embertest: { + globals: globals__default["default"].embertest + }, + webextensions: { + globals: globals__default["default"].webextensions + }, + greasemonkey: { + globals: globals__default["default"].greasemonkey + } +})); + +/** + * @fileoverview Validates configs. + * @author Brandon Mills + */ + +const ajv = ajvOrig(); + +const ruleValidators = new WeakMap(); +const noop = Function.prototype; + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ +let validateSchema; +const severityMap = { + error: 2, + warn: 1, + off: 0 +}; + +const validated = new WeakSet(); + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +class ConfigValidator { + constructor({ builtInRules = new Map() } = {}) { + this.builtInRules = builtInRules; + } + + /** + * Gets a complete options schema for a rule. + * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object + * @returns {Object} JSON Schema for the rule's options. + */ + getRuleOptionsSchema(rule) { + if (!rule) { + return null; + } + + const schema = rule.schema || rule.meta && rule.meta.schema; + + // Given a tuple of schemas, insert warning level at the beginning + if (Array.isArray(schema)) { + if (schema.length) { + return { + type: "array", + items: schema, + minItems: 0, + maxItems: schema.length + }; + } + return { + type: "array", + minItems: 0, + maxItems: 0 + }; + + } + + // Given a full schema, leave it alone + return schema || null; + } + + /** + * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid. + * @param {options} options The given options for the rule. + * @returns {number|string} The rule's severity value + */ + validateRuleSeverity(options) { + const severity = Array.isArray(options) ? options[0] : options; + const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity; + + if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) { + return normSeverity; + } + + throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util__default["default"].inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`); + + } + + /** + * Validates the non-severity options passed to a rule, based on its schema. + * @param {{create: Function}} rule The rule to validate + * @param {Array} localOptions The options for the rule, excluding severity + * @returns {void} + */ + validateRuleSchema(rule, localOptions) { + if (!ruleValidators.has(rule)) { + const schema = this.getRuleOptionsSchema(rule); + + if (schema) { + ruleValidators.set(rule, ajv.compile(schema)); + } + } + + const validateRule = ruleValidators.get(rule); + + if (validateRule) { + validateRule(localOptions); + if (validateRule.errors) { + throw new Error(validateRule.errors.map( + error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n` + ).join("")); + } + } + } + + /** + * Validates a rule's options against its schema. + * @param {{create: Function}|null} rule The rule that the config is being validated for + * @param {string} ruleId The rule's unique name. + * @param {Array|number} options The given options for the rule. + * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined, + * no source is prepended to the message. + * @returns {void} + */ + validateRuleOptions(rule, ruleId, options, source = null) { + try { + const severity = this.validateRuleSeverity(options); + + if (severity !== 0) { + this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []); + } + } catch (err) { + const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`; + + if (typeof source === "string") { + throw new Error(`${source}:\n\t${enhancedMessage}`); + } else { + throw new Error(enhancedMessage); + } + } + } + + /** + * Validates an environment object + * @param {Object} environment The environment config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments. + * @returns {void} + */ + validateEnvironment( + environment, + source, + getAdditionalEnv = noop + ) { + + // not having an environment is ok + if (!environment) { + return; + } + + Object.keys(environment).forEach(id => { + const env = getAdditionalEnv(id) || environments.get(id) || null; + + if (!env) { + const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`; + + throw new Error(message); + } + }); + } + + /** + * Validates a rules config object + * @param {Object} rulesConfig The rules config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules + * @returns {void} + */ + validateRules( + rulesConfig, + source, + getAdditionalRule = noop + ) { + if (!rulesConfig) { + return; + } + + Object.keys(rulesConfig).forEach(id => { + const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null; + + this.validateRuleOptions(rule, id, rulesConfig[id], source); + }); + } + + /** + * Validates a `globals` section of a config file + * @param {Object} globalsConfig The `globals` section + * @param {string|null} source The name of the configuration source to report in the event of an error. + * @returns {void} + */ + validateGlobals(globalsConfig, source = null) { + if (!globalsConfig) { + return; + } + + Object.entries(globalsConfig) + .forEach(([configuredGlobal, configuredValue]) => { + try { + normalizeConfigGlobal(configuredValue); + } catch (err) { + throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`); + } + }); + } + + /** + * Validate `processor` configuration. + * @param {string|undefined} processorName The processor name. + * @param {string} source The name of config file. + * @param {function(id:string): Processor} getProcessor The getter of defined processors. + * @returns {void} + */ + validateProcessor(processorName, source, getProcessor) { + if (processorName && !getProcessor(processorName)) { + throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`); + } + } + + /** + * Formats an array of schema validation errors. + * @param {Array} errors An array of error messages to format. + * @returns {string} Formatted error message + */ + formatErrors(errors) { + return errors.map(error => { + if (error.keyword === "additionalProperties") { + const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty; + + return `Unexpected top-level property "${formattedPropertyPath}"`; + } + if (error.keyword === "type") { + const formattedField = error.dataPath.slice(1); + const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema; + const formattedValue = JSON.stringify(error.data); + + return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`; + } + + const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath; + + return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`; + }).map(message => `\t- ${message}.\n`).join(""); + } + + /** + * Validates the top level properties of the config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @returns {void} + */ + validateConfigSchema(config, source = null) { + validateSchema = validateSchema || ajv.compile(configSchema); + + if (!validateSchema(config)) { + throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`); + } + + if (Object.hasOwnProperty.call(config, "ecmaFeatures")) { + emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES"); + } + } + + /** + * Validates an entire config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules. + * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs. + * @returns {void} + */ + validate(config, source, getAdditionalRule, getAdditionalEnv) { + this.validateConfigSchema(config, source); + this.validateRules(config.rules, source, getAdditionalRule); + this.validateEnvironment(config.env, source, getAdditionalEnv); + this.validateGlobals(config.globals, source); + + for (const override of config.overrides || []) { + this.validateRules(override.rules, source, getAdditionalRule); + this.validateEnvironment(override.env, source, getAdditionalEnv); + this.validateGlobals(config.globals, source); + } + } + + /** + * Validate config array object. + * @param {ConfigArray} configArray The config array to validate. + * @returns {void} + */ + validateConfigArray(configArray) { + const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments); + const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors); + const getPluginRule = Map.prototype.get.bind(configArray.pluginRules); + + // Validate. + for (const element of configArray) { + if (validated.has(element)) { + continue; + } + validated.add(element); + + this.validateEnvironment(element.env, element.name, getPluginEnv); + this.validateGlobals(element.globals, element.name); + this.validateProcessor(element.processor, element.name, getPluginProcessor); + this.validateRules(element.rules, element.name, getPluginRule); + } + } + +} + +/** + * @fileoverview Common helpers for naming of plugins, formatters and configs + */ + +const NAMESPACE_REGEX = /^@.*\//iu; + +/** + * Brings package name to correct format based on prefix + * @param {string} name The name of the package. + * @param {string} prefix Can be either "eslint-plugin", "eslint-config" or "eslint-formatter" + * @returns {string} Normalized name of the package + * @private + */ +function normalizePackageName(name, prefix) { + let normalizedName = name; + + /** + * On Windows, name can come in with Windows slashes instead of Unix slashes. + * Normalize to Unix first to avoid errors later on. + * https://github.com/eslint/eslint/issues/5644 + */ + if (normalizedName.includes("\\")) { + normalizedName = normalizedName.replace(/\\/gu, "/"); + } + + if (normalizedName.charAt(0) === "@") { + + /** + * it's a scoped package + * package name is the prefix, or just a username + */ + const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"), + scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u"); + + if (scopedPackageShortcutRegex.test(normalizedName)) { + normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`); + } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) { + + /** + * for scoped packages, insert the prefix after the first / unless + * the path is already @scope/eslint or @scope/eslint-xxx-yyy + */ + normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`); + } + } else if (!normalizedName.startsWith(`${prefix}-`)) { + normalizedName = `${prefix}-${normalizedName}`; + } + + return normalizedName; +} + +/** + * Removes the prefix from a fullname. + * @param {string} fullname The term which may have the prefix. + * @param {string} prefix The prefix to remove. + * @returns {string} The term without prefix. + */ +function getShorthandName(fullname, prefix) { + if (fullname[0] === "@") { + let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname); + + if (matchResult) { + return matchResult[1]; + } + + matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname); + if (matchResult) { + return `${matchResult[1]}/${matchResult[2]}`; + } + } else if (fullname.startsWith(`${prefix}-`)) { + return fullname.slice(prefix.length + 1); + } + + return fullname; +} + +/** + * Gets the scope (namespace) of a term. + * @param {string} term The term which may have the namespace. + * @returns {string} The namespace of the term if it has one. + */ +function getNamespaceFromTerm(term) { + const match = term.match(NAMESPACE_REGEX); + + return match ? match[0] : ""; +} + +var naming = { + __proto__: null, + normalizePackageName: normalizePackageName, + getShorthandName: getShorthandName, + getNamespaceFromTerm: getNamespaceFromTerm +}; + +/** + * @fileoverview Package exports for @eslint/eslintrc + * @author Nicholas C. Zakas + */ + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +const Legacy = { + environments, + + // shared + ConfigOps, + ConfigValidator, + naming +}; + +exports.Legacy = Legacy; +//# sourceMappingURL=eslintrc-universal.cjs.map diff --git a/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map b/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map new file mode 100644 index 0000000..72665f6 --- /dev/null +++ b/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"eslintrc-universal.cjs","sources":["../lib/shared/config-ops.js","../lib/shared/deprecation-warnings.js","../lib/shared/ajv.js","../conf/config-schema.js","../conf/environments.js","../lib/shared/config-validator.js","../lib/shared/naming.js","../lib/index-universal.js"],"sourcesContent":["/**\n * @fileoverview Config file operations. This file must be usable in the browser,\n * so no Node-specific code can be here.\n * @author Nicholas C. Zakas\n */\n\n//------------------------------------------------------------------------------\n// Private\n//------------------------------------------------------------------------------\n\nconst RULE_SEVERITY_STRINGS = [\"off\", \"warn\", \"error\"],\n RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => {\n map[value] = index;\n return map;\n }, {}),\n VALID_SEVERITIES = [0, 1, 2, \"off\", \"warn\", \"error\"];\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/**\n * Normalizes the severity value of a rule's configuration to a number\n * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally\n * received from the user. A valid config value is either 0, 1, 2, the string \"off\" (treated the same as 0),\n * the string \"warn\" (treated the same as 1), the string \"error\" (treated the same as 2), or an array\n * whose first element is one of the above values. Strings are matched case-insensitively.\n * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0.\n */\nfunction getRuleSeverity(ruleConfig) {\n const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;\n\n if (severityValue === 0 || severityValue === 1 || severityValue === 2) {\n return severityValue;\n }\n\n if (typeof severityValue === \"string\") {\n return RULE_SEVERITY[severityValue.toLowerCase()] || 0;\n }\n\n return 0;\n}\n\n/**\n * Converts old-style severity settings (0, 1, 2) into new-style\n * severity settings (off, warn, error) for all rules. Assumption is that severity\n * values have already been validated as correct.\n * @param {Object} config The config object to normalize.\n * @returns {void}\n */\nfunction normalizeToStrings(config) {\n\n if (config.rules) {\n Object.keys(config.rules).forEach(ruleId => {\n const ruleConfig = config.rules[ruleId];\n\n if (typeof ruleConfig === \"number\") {\n config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0];\n } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === \"number\") {\n ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0];\n }\n });\n }\n}\n\n/**\n * Determines if the severity for the given rule configuration represents an error.\n * @param {int|string|Array} ruleConfig The configuration for an individual rule.\n * @returns {boolean} True if the rule represents an error, false if not.\n */\nfunction isErrorSeverity(ruleConfig) {\n return getRuleSeverity(ruleConfig) === 2;\n}\n\n/**\n * Checks whether a given config has valid severity or not.\n * @param {number|string|Array} ruleConfig The configuration for an individual rule.\n * @returns {boolean} `true` if the configuration has valid severity.\n */\nfunction isValidSeverity(ruleConfig) {\n let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;\n\n if (typeof severity === \"string\") {\n severity = severity.toLowerCase();\n }\n return VALID_SEVERITIES.indexOf(severity) !== -1;\n}\n\n/**\n * Checks whether every rule of a given config has valid severity or not.\n * @param {Object} config The configuration for rules.\n * @returns {boolean} `true` if the configuration has valid severity.\n */\nfunction isEverySeverityValid(config) {\n return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId]));\n}\n\n/**\n * Normalizes a value for a global in a config\n * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in\n * a global directive comment\n * @returns {(\"readable\"|\"writeable\"|\"off\")} The value normalized as a string\n * @throws Error if global value is invalid\n */\nfunction normalizeConfigGlobal(configuredValue) {\n switch (configuredValue) {\n case \"off\":\n return \"off\";\n\n case true:\n case \"true\":\n case \"writeable\":\n case \"writable\":\n return \"writable\";\n\n case null:\n case false:\n case \"false\":\n case \"readable\":\n case \"readonly\":\n return \"readonly\";\n\n default:\n throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`);\n }\n}\n\nexport {\n getRuleSeverity,\n normalizeToStrings,\n isErrorSeverity,\n isValidSeverity,\n isEverySeverityValid,\n normalizeConfigGlobal\n};\n","/**\n * @fileoverview Provide the function that emits deprecation warnings.\n * @author Toru Nagashima \n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport path from \"path\";\n\n//------------------------------------------------------------------------------\n// Private\n//------------------------------------------------------------------------------\n\n// Defitions for deprecation warnings.\nconst deprecationWarningMessages = {\n ESLINT_LEGACY_ECMAFEATURES:\n \"The 'ecmaFeatures' config file property is deprecated and has no effect.\",\n ESLINT_PERSONAL_CONFIG_LOAD:\n \"'~/.eslintrc.*' config files have been deprecated. \" +\n \"Please use a config file per project or the '--config' option.\",\n ESLINT_PERSONAL_CONFIG_SUPPRESS:\n \"'~/.eslintrc.*' config files have been deprecated. \" +\n \"Please remove it or add 'root:true' to the config files in your \" +\n \"projects in order to avoid loading '~/.eslintrc.*' accidentally.\"\n};\n\nconst sourceFileErrorCache = new Set();\n\n/**\n * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted\n * for each unique file path, but repeated invocations with the same file path have no effect.\n * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active.\n * @param {string} source The name of the configuration source to report the warning for.\n * @param {string} errorCode The warning message to show.\n * @returns {void}\n */\nfunction emitDeprecationWarning(source, errorCode) {\n const cacheKey = JSON.stringify({ source, errorCode });\n\n if (sourceFileErrorCache.has(cacheKey)) {\n return;\n }\n sourceFileErrorCache.add(cacheKey);\n\n const rel = path.relative(process.cwd(), source);\n const message = deprecationWarningMessages[errorCode];\n\n process.emitWarning(\n `${message} (found in \"${rel}\")`,\n \"DeprecationWarning\",\n errorCode\n );\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\nexport {\n emitDeprecationWarning\n};\n","/**\n * @fileoverview The instance of Ajv validator.\n * @author Evgeny Poberezkin\n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport Ajv from \"ajv\";\n\n//-----------------------------------------------------------------------------\n// Helpers\n//-----------------------------------------------------------------------------\n\n/*\n * Copied from ajv/lib/refs/json-schema-draft-04.json\n * The MIT License (MIT)\n * Copyright (c) 2015-2017 Evgeny Poberezkin\n */\nconst metaSchema = {\n id: \"http://json-schema.org/draft-04/schema#\",\n $schema: \"http://json-schema.org/draft-04/schema#\",\n description: \"Core schema meta-schema\",\n definitions: {\n schemaArray: {\n type: \"array\",\n minItems: 1,\n items: { $ref: \"#\" }\n },\n positiveInteger: {\n type: \"integer\",\n minimum: 0\n },\n positiveIntegerDefault0: {\n allOf: [{ $ref: \"#/definitions/positiveInteger\" }, { default: 0 }]\n },\n simpleTypes: {\n enum: [\"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\"]\n },\n stringArray: {\n type: \"array\",\n items: { type: \"string\" },\n minItems: 1,\n uniqueItems: true\n }\n },\n type: \"object\",\n properties: {\n id: {\n type: \"string\"\n },\n $schema: {\n type: \"string\"\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: { $ref: \"#/definitions/positiveInteger\" },\n minLength: { $ref: \"#/definitions/positiveIntegerDefault0\" },\n pattern: {\n type: \"string\",\n format: \"regex\"\n },\n additionalItems: {\n anyOf: [\n { type: \"boolean\" },\n { $ref: \"#\" }\n ],\n default: { }\n },\n items: {\n anyOf: [\n { $ref: \"#\" },\n { $ref: \"#/definitions/schemaArray\" }\n ],\n default: { }\n },\n maxItems: { $ref: \"#/definitions/positiveInteger\" },\n minItems: { $ref: \"#/definitions/positiveIntegerDefault0\" },\n uniqueItems: {\n type: \"boolean\",\n default: false\n },\n maxProperties: { $ref: \"#/definitions/positiveInteger\" },\n minProperties: { $ref: \"#/definitions/positiveIntegerDefault0\" },\n required: { $ref: \"#/definitions/stringArray\" },\n additionalProperties: {\n anyOf: [\n { type: \"boolean\" },\n { $ref: \"#\" }\n ],\n default: { }\n },\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 default: { }\n },\n dependencies: {\n type: \"object\",\n additionalProperties: {\n anyOf: [\n { $ref: \"#\" },\n { $ref: \"#/definitions/stringArray\" }\n ]\n }\n },\n enum: {\n type: \"array\",\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 allOf: { $ref: \"#/definitions/schemaArray\" },\n anyOf: { $ref: \"#/definitions/schemaArray\" },\n oneOf: { $ref: \"#/definitions/schemaArray\" },\n not: { $ref: \"#\" }\n },\n dependencies: {\n exclusiveMaximum: [\"maximum\"],\n exclusiveMinimum: [\"minimum\"]\n },\n default: { }\n};\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\nexport default (additionalOptions = {}) => {\n const ajv = new Ajv({\n meta: false,\n useDefaults: true,\n validateSchema: false,\n missingRefs: \"ignore\",\n verbose: true,\n schemaId: \"auto\",\n ...additionalOptions\n });\n\n ajv.addMetaSchema(metaSchema);\n // eslint-disable-next-line no-underscore-dangle\n ajv._opts.defaultMeta = metaSchema.id;\n\n return ajv;\n};\n","/**\n * @fileoverview Defines a schema for configs.\n * @author Sylvan Mably\n */\n\nconst baseConfigProperties = {\n $schema: { type: \"string\" },\n env: { type: \"object\" },\n extends: { $ref: \"#/definitions/stringOrStrings\" },\n globals: { type: \"object\" },\n overrides: {\n type: \"array\",\n items: { $ref: \"#/definitions/overrideConfig\" },\n additionalItems: false\n },\n parser: { type: [\"string\", \"null\"] },\n parserOptions: { type: \"object\" },\n plugins: { type: \"array\" },\n processor: { type: \"string\" },\n rules: { type: \"object\" },\n settings: { type: \"object\" },\n noInlineConfig: { type: \"boolean\" },\n reportUnusedDisableDirectives: { type: \"boolean\" },\n\n ecmaFeatures: { type: \"object\" } // deprecated; logs a warning when used\n};\n\nconst configSchema = {\n definitions: {\n stringOrStrings: {\n oneOf: [\n { type: \"string\" },\n {\n type: \"array\",\n items: { type: \"string\" },\n additionalItems: false\n }\n ]\n },\n stringOrStringsRequired: {\n oneOf: [\n { type: \"string\" },\n {\n type: \"array\",\n items: { type: \"string\" },\n additionalItems: false,\n minItems: 1\n }\n ]\n },\n\n // Config at top-level.\n objectConfig: {\n type: \"object\",\n properties: {\n root: { type: \"boolean\" },\n ignorePatterns: { $ref: \"#/definitions/stringOrStrings\" },\n ...baseConfigProperties\n },\n additionalProperties: false\n },\n\n // Config in `overrides`.\n overrideConfig: {\n type: \"object\",\n properties: {\n excludedFiles: { $ref: \"#/definitions/stringOrStrings\" },\n files: { $ref: \"#/definitions/stringOrStringsRequired\" },\n ...baseConfigProperties\n },\n required: [\"files\"],\n additionalProperties: false\n }\n },\n\n $ref: \"#/definitions/objectConfig\"\n};\n\nexport default configSchema;\n","/**\n * @fileoverview Defines environment settings and globals.\n * @author Elan Shanker\n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport globals from \"globals\";\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\n/**\n * Get the object that has difference.\n * @param {Record} current The newer object.\n * @param {Record} prev The older object.\n * @returns {Record} The difference object.\n */\nfunction getDiff(current, prev) {\n const retv = {};\n\n for (const [key, value] of Object.entries(current)) {\n if (!Object.hasOwnProperty.call(prev, key)) {\n retv[key] = value;\n }\n }\n\n return retv;\n}\n\nconst newGlobals2015 = getDiff(globals.es2015, globals.es5); // 19 variables such as Promise, Map, ...\nconst newGlobals2017 = {\n Atomics: false,\n SharedArrayBuffer: false\n};\nconst newGlobals2020 = {\n BigInt: false,\n BigInt64Array: false,\n BigUint64Array: false,\n globalThis: false\n};\n\nconst newGlobals2021 = {\n AggregateError: false,\n FinalizationRegistry: false,\n WeakRef: false\n};\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/** @type {Map} */\nexport default new Map(Object.entries({\n\n // Language\n builtin: {\n globals: globals.es5\n },\n es6: {\n globals: newGlobals2015,\n parserOptions: {\n ecmaVersion: 6\n }\n },\n es2015: {\n globals: newGlobals2015,\n parserOptions: {\n ecmaVersion: 6\n }\n },\n es2016: {\n globals: newGlobals2015,\n parserOptions: {\n ecmaVersion: 7\n }\n },\n es2017: {\n globals: { ...newGlobals2015, ...newGlobals2017 },\n parserOptions: {\n ecmaVersion: 8\n }\n },\n es2018: {\n globals: { ...newGlobals2015, ...newGlobals2017 },\n parserOptions: {\n ecmaVersion: 9\n }\n },\n es2019: {\n globals: { ...newGlobals2015, ...newGlobals2017 },\n parserOptions: {\n ecmaVersion: 10\n }\n },\n es2020: {\n globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },\n parserOptions: {\n ecmaVersion: 11\n }\n },\n es2021: {\n globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },\n parserOptions: {\n ecmaVersion: 12\n }\n },\n es2022: {\n globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },\n parserOptions: {\n ecmaVersion: 13\n }\n },\n\n // Platforms\n browser: {\n globals: globals.browser\n },\n node: {\n globals: globals.node,\n parserOptions: {\n ecmaFeatures: {\n globalReturn: true\n }\n }\n },\n \"shared-node-browser\": {\n globals: globals[\"shared-node-browser\"]\n },\n worker: {\n globals: globals.worker\n },\n serviceworker: {\n globals: globals.serviceworker\n },\n\n // Frameworks\n commonjs: {\n globals: globals.commonjs,\n parserOptions: {\n ecmaFeatures: {\n globalReturn: true\n }\n }\n },\n amd: {\n globals: globals.amd\n },\n mocha: {\n globals: globals.mocha\n },\n jasmine: {\n globals: globals.jasmine\n },\n jest: {\n globals: globals.jest\n },\n phantomjs: {\n globals: globals.phantomjs\n },\n jquery: {\n globals: globals.jquery\n },\n qunit: {\n globals: globals.qunit\n },\n prototypejs: {\n globals: globals.prototypejs\n },\n shelljs: {\n globals: globals.shelljs\n },\n meteor: {\n globals: globals.meteor\n },\n mongo: {\n globals: globals.mongo\n },\n protractor: {\n globals: globals.protractor\n },\n applescript: {\n globals: globals.applescript\n },\n nashorn: {\n globals: globals.nashorn\n },\n atomtest: {\n globals: globals.atomtest\n },\n embertest: {\n globals: globals.embertest\n },\n webextensions: {\n globals: globals.webextensions\n },\n greasemonkey: {\n globals: globals.greasemonkey\n }\n}));\n","/**\n * @fileoverview Validates configs.\n * @author Brandon Mills\n */\n\n/* eslint class-methods-use-this: \"off\" */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport util from \"util\";\nimport * as ConfigOps from \"./config-ops.js\";\nimport { emitDeprecationWarning } from \"./deprecation-warnings.js\";\nimport ajvOrig from \"./ajv.js\";\nimport configSchema from \"../../conf/config-schema.js\";\nimport BuiltInEnvironments from \"../../conf/environments.js\";\n\nconst ajv = ajvOrig();\n\nconst ruleValidators = new WeakMap();\nconst noop = Function.prototype;\n\n//------------------------------------------------------------------------------\n// Private\n//------------------------------------------------------------------------------\nlet validateSchema;\nconst severityMap = {\n error: 2,\n warn: 1,\n off: 0\n};\n\nconst validated = new WeakSet();\n\n//-----------------------------------------------------------------------------\n// Exports\n//-----------------------------------------------------------------------------\n\nexport default class ConfigValidator {\n constructor({ builtInRules = new Map() } = {}) {\n this.builtInRules = builtInRules;\n }\n\n /**\n * Gets a complete options schema for a rule.\n * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object\n * @returns {Object} JSON Schema for the rule's options.\n */\n getRuleOptionsSchema(rule) {\n if (!rule) {\n return null;\n }\n\n const schema = rule.schema || rule.meta && rule.meta.schema;\n\n // Given a tuple of schemas, insert warning level at the beginning\n if (Array.isArray(schema)) {\n if (schema.length) {\n return {\n type: \"array\",\n items: schema,\n minItems: 0,\n maxItems: schema.length\n };\n }\n return {\n type: \"array\",\n minItems: 0,\n maxItems: 0\n };\n\n }\n\n // Given a full schema, leave it alone\n return schema || null;\n }\n\n /**\n * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid.\n * @param {options} options The given options for the rule.\n * @returns {number|string} The rule's severity value\n */\n validateRuleSeverity(options) {\n const severity = Array.isArray(options) ? options[0] : options;\n const normSeverity = typeof severity === \"string\" ? severityMap[severity.toLowerCase()] : severity;\n\n if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) {\n return normSeverity;\n }\n\n throw new Error(`\\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util.inspect(severity).replace(/'/gu, \"\\\"\").replace(/\\n/gu, \"\")}').\\n`);\n\n }\n\n /**\n * Validates the non-severity options passed to a rule, based on its schema.\n * @param {{create: Function}} rule The rule to validate\n * @param {Array} localOptions The options for the rule, excluding severity\n * @returns {void}\n */\n validateRuleSchema(rule, localOptions) {\n if (!ruleValidators.has(rule)) {\n const schema = this.getRuleOptionsSchema(rule);\n\n if (schema) {\n ruleValidators.set(rule, ajv.compile(schema));\n }\n }\n\n const validateRule = ruleValidators.get(rule);\n\n if (validateRule) {\n validateRule(localOptions);\n if (validateRule.errors) {\n throw new Error(validateRule.errors.map(\n error => `\\tValue ${JSON.stringify(error.data)} ${error.message}.\\n`\n ).join(\"\"));\n }\n }\n }\n\n /**\n * Validates a rule's options against its schema.\n * @param {{create: Function}|null} rule The rule that the config is being validated for\n * @param {string} ruleId The rule's unique name.\n * @param {Array|number} options The given options for the rule.\n * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined,\n * no source is prepended to the message.\n * @returns {void}\n */\n validateRuleOptions(rule, ruleId, options, source = null) {\n try {\n const severity = this.validateRuleSeverity(options);\n\n if (severity !== 0) {\n this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []);\n }\n } catch (err) {\n const enhancedMessage = `Configuration for rule \"${ruleId}\" is invalid:\\n${err.message}`;\n\n if (typeof source === \"string\") {\n throw new Error(`${source}:\\n\\t${enhancedMessage}`);\n } else {\n throw new Error(enhancedMessage);\n }\n }\n }\n\n /**\n * Validates an environment object\n * @param {Object} environment The environment config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments.\n * @returns {void}\n */\n validateEnvironment(\n environment,\n source,\n getAdditionalEnv = noop\n ) {\n\n // not having an environment is ok\n if (!environment) {\n return;\n }\n\n Object.keys(environment).forEach(id => {\n const env = getAdditionalEnv(id) || BuiltInEnvironments.get(id) || null;\n\n if (!env) {\n const message = `${source}:\\n\\tEnvironment key \"${id}\" is unknown\\n`;\n\n throw new Error(message);\n }\n });\n }\n\n /**\n * Validates a rules config object\n * @param {Object} rulesConfig The rules config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules\n * @returns {void}\n */\n validateRules(\n rulesConfig,\n source,\n getAdditionalRule = noop\n ) {\n if (!rulesConfig) {\n return;\n }\n\n Object.keys(rulesConfig).forEach(id => {\n const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null;\n\n this.validateRuleOptions(rule, id, rulesConfig[id], source);\n });\n }\n\n /**\n * Validates a `globals` section of a config file\n * @param {Object} globalsConfig The `globals` section\n * @param {string|null} source The name of the configuration source to report in the event of an error.\n * @returns {void}\n */\n validateGlobals(globalsConfig, source = null) {\n if (!globalsConfig) {\n return;\n }\n\n Object.entries(globalsConfig)\n .forEach(([configuredGlobal, configuredValue]) => {\n try {\n ConfigOps.normalizeConfigGlobal(configuredValue);\n } catch (err) {\n throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\\n${err.message}`);\n }\n });\n }\n\n /**\n * Validate `processor` configuration.\n * @param {string|undefined} processorName The processor name.\n * @param {string} source The name of config file.\n * @param {function(id:string): Processor} getProcessor The getter of defined processors.\n * @returns {void}\n */\n validateProcessor(processorName, source, getProcessor) {\n if (processorName && !getProcessor(processorName)) {\n throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`);\n }\n }\n\n /**\n * Formats an array of schema validation errors.\n * @param {Array} errors An array of error messages to format.\n * @returns {string} Formatted error message\n */\n formatErrors(errors) {\n return errors.map(error => {\n if (error.keyword === \"additionalProperties\") {\n const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty;\n\n return `Unexpected top-level property \"${formattedPropertyPath}\"`;\n }\n if (error.keyword === \"type\") {\n const formattedField = error.dataPath.slice(1);\n const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join(\"/\") : error.schema;\n const formattedValue = JSON.stringify(error.data);\n\n return `Property \"${formattedField}\" is the wrong type (expected ${formattedExpectedType} but got \\`${formattedValue}\\`)`;\n }\n\n const field = error.dataPath[0] === \".\" ? error.dataPath.slice(1) : error.dataPath;\n\n return `\"${field}\" ${error.message}. Value: ${JSON.stringify(error.data)}`;\n }).map(message => `\\t- ${message}.\\n`).join(\"\");\n }\n\n /**\n * Validates the top level properties of the config object.\n * @param {Object} config The config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @returns {void}\n */\n validateConfigSchema(config, source = null) {\n validateSchema = validateSchema || ajv.compile(configSchema);\n\n if (!validateSchema(config)) {\n throw new Error(`ESLint configuration in ${source} is invalid:\\n${this.formatErrors(validateSchema.errors)}`);\n }\n\n if (Object.hasOwnProperty.call(config, \"ecmaFeatures\")) {\n emitDeprecationWarning(source, \"ESLINT_LEGACY_ECMAFEATURES\");\n }\n }\n\n /**\n * Validates an entire config object.\n * @param {Object} config The config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules.\n * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs.\n * @returns {void}\n */\n validate(config, source, getAdditionalRule, getAdditionalEnv) {\n this.validateConfigSchema(config, source);\n this.validateRules(config.rules, source, getAdditionalRule);\n this.validateEnvironment(config.env, source, getAdditionalEnv);\n this.validateGlobals(config.globals, source);\n\n for (const override of config.overrides || []) {\n this.validateRules(override.rules, source, getAdditionalRule);\n this.validateEnvironment(override.env, source, getAdditionalEnv);\n this.validateGlobals(config.globals, source);\n }\n }\n\n /**\n * Validate config array object.\n * @param {ConfigArray} configArray The config array to validate.\n * @returns {void}\n */\n validateConfigArray(configArray) {\n const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments);\n const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors);\n const getPluginRule = Map.prototype.get.bind(configArray.pluginRules);\n\n // Validate.\n for (const element of configArray) {\n if (validated.has(element)) {\n continue;\n }\n validated.add(element);\n\n this.validateEnvironment(element.env, element.name, getPluginEnv);\n this.validateGlobals(element.globals, element.name);\n this.validateProcessor(element.processor, element.name, getPluginProcessor);\n this.validateRules(element.rules, element.name, getPluginRule);\n }\n }\n\n}\n","/**\n * @fileoverview Common helpers for naming of plugins, formatters and configs\n */\n\nconst NAMESPACE_REGEX = /^@.*\\//iu;\n\n/**\n * Brings package name to correct format based on prefix\n * @param {string} name The name of the package.\n * @param {string} prefix Can be either \"eslint-plugin\", \"eslint-config\" or \"eslint-formatter\"\n * @returns {string} Normalized name of the package\n * @private\n */\nfunction normalizePackageName(name, prefix) {\n let normalizedName = name;\n\n /**\n * On Windows, name can come in with Windows slashes instead of Unix slashes.\n * Normalize to Unix first to avoid errors later on.\n * https://github.com/eslint/eslint/issues/5644\n */\n if (normalizedName.includes(\"\\\\\")) {\n normalizedName = normalizedName.replace(/\\\\/gu, \"/\");\n }\n\n if (normalizedName.charAt(0) === \"@\") {\n\n /**\n * it's a scoped package\n * package name is the prefix, or just a username\n */\n const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, \"u\"),\n scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, \"u\");\n\n if (scopedPackageShortcutRegex.test(normalizedName)) {\n normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`);\n } else if (!scopedPackageNameRegex.test(normalizedName.split(\"/\")[1])) {\n\n /**\n * for scoped packages, insert the prefix after the first / unless\n * the path is already @scope/eslint or @scope/eslint-xxx-yyy\n */\n normalizedName = normalizedName.replace(/^@([^/]+)\\/(.*)$/u, `@$1/${prefix}-$2`);\n }\n } else if (!normalizedName.startsWith(`${prefix}-`)) {\n normalizedName = `${prefix}-${normalizedName}`;\n }\n\n return normalizedName;\n}\n\n/**\n * Removes the prefix from a fullname.\n * @param {string} fullname The term which may have the prefix.\n * @param {string} prefix The prefix to remove.\n * @returns {string} The term without prefix.\n */\nfunction getShorthandName(fullname, prefix) {\n if (fullname[0] === \"@\") {\n let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, \"u\").exec(fullname);\n\n if (matchResult) {\n return matchResult[1];\n }\n\n matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, \"u\").exec(fullname);\n if (matchResult) {\n return `${matchResult[1]}/${matchResult[2]}`;\n }\n } else if (fullname.startsWith(`${prefix}-`)) {\n return fullname.slice(prefix.length + 1);\n }\n\n return fullname;\n}\n\n/**\n * Gets the scope (namespace) of a term.\n * @param {string} term The term which may have the namespace.\n * @returns {string} The namespace of the term if it has one.\n */\nfunction getNamespaceFromTerm(term) {\n const match = term.match(NAMESPACE_REGEX);\n\n return match ? match[0] : \"\";\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\nexport {\n normalizePackageName,\n getShorthandName,\n getNamespaceFromTerm\n};\n","/**\n * @fileoverview Package exports for @eslint/eslintrc\n * @author Nicholas C. Zakas\n */\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport * as ConfigOps from \"./shared/config-ops.js\";\nimport ConfigValidator from \"./shared/config-validator.js\";\nimport * as naming from \"./shared/naming.js\";\nimport environments from \"../conf/environments.js\";\n\n//-----------------------------------------------------------------------------\n// Exports\n//-----------------------------------------------------------------------------\n\nconst Legacy = {\n environments,\n\n // shared\n ConfigOps,\n ConfigValidator,\n naming\n};\n\nexport {\n Legacy\n};\n"],"names":["path","Ajv","globals","util","BuiltInEnvironments","ConfigOps.normalizeConfigGlobal"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AACtD,IAAI,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,KAAK;AACxE,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC3B,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,EAAE,EAAE,CAAC;AACV,IAAI,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE;AACrC,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AACjF;AACA,IAAI,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE;AAC3E,QAAQ,OAAO,aAAa,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AAC3C,QAAQ,OAAO,aAAa,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;AAC/D,KAAK;AACL;AACA,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC;AACA,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI;AACpD,YAAY,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpD;AACA,YAAY,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAChD,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrG,aAAa,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACvF,gBAAgB,UAAU,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACjG,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE;AACrC,IAAI,OAAO,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE;AACrC,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAC1E;AACA,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACtC,QAAQ,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,eAAe,EAAE;AAChD,IAAI,QAAQ,eAAe;AAC3B,QAAQ,KAAK,KAAK;AAClB,YAAY,OAAO,KAAK,CAAC;AACzB;AACA,QAAQ,KAAK,IAAI,CAAC;AAClB,QAAQ,KAAK,MAAM,CAAC;AACpB,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,UAAU,CAAC;AAC9B;AACA,QAAQ,KAAK,IAAI,CAAC;AAClB,QAAQ,KAAK,KAAK,CAAC;AACnB,QAAQ,KAAK,OAAO,CAAC;AACrB,QAAQ,KAAK,UAAU,CAAC;AACxB,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,UAAU,CAAC;AAC9B;AACA,QAAQ;AACR,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,kFAAkF,CAAC,CAAC,CAAC;AACrI,KAAK;AACL;;;;;;;;;;;;AC7HA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAA0B,GAAG;AACnC,IAAI,0BAA0B;AAC9B,QAAQ,0EAA0E;AAClF,IAAI,2BAA2B;AAC/B,QAAQ,qDAAqD;AAC7D,QAAQ,gEAAgE;AACxE,IAAI,+BAA+B;AACnC,QAAQ,qDAAqD;AAC7D,QAAQ,kEAAkE;AAC1E,QAAQ,kEAAkE;AAC1E,CAAC,CAAC;AACF;AACA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE;AACnD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3D;AACA,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC5C,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC;AACA,IAAI,MAAM,GAAG,GAAGA,wBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,IAAI,MAAM,OAAO,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAC1D;AACA,IAAI,OAAO,CAAC,WAAW;AACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;AACxC,QAAQ,oBAAoB;AAC5B,QAAQ,SAAS;AACjB,KAAK,CAAC;AACN;;ACtDA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,IAAI,EAAE,EAAE,yCAAyC;AACjD,IAAI,OAAO,EAAE,yCAAyC;AACtD,IAAI,WAAW,EAAE,yBAAyB;AAC1C,IAAI,WAAW,EAAE;AACjB,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAChC,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC9E,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACvF,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,WAAW,EAAE,IAAI;AAC7B,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,UAAU,EAAE;AAChB,QAAQ,EAAE,EAAE;AACZ,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,KAAK,EAAE;AACf,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,OAAO,EAAE,GAAG;AACpB,QAAQ,UAAU,EAAE;AACpB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,SAAS,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AAC5D,QAAQ,SAAS,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACpE,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,MAAM,EAAE,OAAO;AAC3B,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;AACnC,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,aAAa;AACb,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,KAAK,EAAE;AACf,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,gBAAgB,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACrD,aAAa;AACb,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,QAAQ,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AAC3D,QAAQ,QAAQ,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACnE,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,aAAa,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AAChE,QAAQ,aAAa,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACxE,QAAQ,QAAQ,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACvD,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;AACnC,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,aAAa;AACb,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/C,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/C,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/C,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE;AAClC,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE;AACjC,oBAAoB,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACzD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,WAAW,EAAE,IAAI;AAC7B,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACrD,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AAChE,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,WAAW,EAAE,IAAI;AACrC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACpD,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACpD,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACpD,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC1B,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,gBAAgB,EAAE,CAAC,SAAS,CAAC;AACrC,QAAQ,gBAAgB,EAAE,CAAC,SAAS,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,EAAE,GAAG;AAChB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,cAAe,CAAC,iBAAiB,GAAG,EAAE,KAAK;AAC3C,IAAI,MAAM,GAAG,GAAG,IAAIC,uBAAG,CAAC;AACxB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,cAAc,EAAE,KAAK;AAC7B,QAAQ,WAAW,EAAE,QAAQ;AAC7B,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,QAAQ,EAAE,MAAM;AACxB,QAAQ,GAAG,iBAAiB;AAC5B,KAAK,CAAC,CAAC;AACP;AACA,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAClC;AACA,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC;AAC1C;AACA,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;;AC9LD;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB,GAAG;AAC7B,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/B,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AACtD,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/B,IAAI,SAAS,EAAE;AACf,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE;AACvD,QAAQ,eAAe,EAAE,KAAK;AAC9B,KAAK;AACL,IAAI,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;AACxC,IAAI,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC9B,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACjC,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7B,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAChC,IAAI,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACvC,IAAI,6BAA6B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACtD;AACA,IAAI,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACpC,CAAC,CAAC;AACF;AACA,MAAM,YAAY,GAAG;AACrB,IAAI,WAAW,EAAE;AACjB,QAAQ,eAAe,EAAE;AACzB,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7C,oBAAoB,eAAe,EAAE,KAAK;AAC1C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7C,oBAAoB,eAAe,EAAE,KAAK;AAC1C,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,QAAQ,YAAY,EAAE;AACtB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,UAAU,EAAE;AACxB,gBAAgB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzC,gBAAgB,cAAc,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AACzE,gBAAgB,GAAG,oBAAoB;AACvC,aAAa;AACb,YAAY,oBAAoB,EAAE,KAAK;AACvC,SAAS;AACT;AACA;AACA,QAAQ,cAAc,EAAE;AACxB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,UAAU,EAAE;AACxB,gBAAgB,aAAa,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AACxE,gBAAgB,KAAK,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACxE,gBAAgB,GAAG,oBAAoB;AACvC,aAAa;AACb,YAAY,QAAQ,EAAE,CAAC,OAAO,CAAC;AAC/B,YAAY,oBAAoB,EAAE,KAAK;AACvC,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,EAAE,4BAA4B;AACtC,CAAC;;AC5ED;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE;AAChC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;AACpB;AACA,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACxD,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACpD,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9B,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA,MAAM,cAAc,GAAG,OAAO,CAACC,2BAAO,CAAC,MAAM,EAAEA,2BAAO,CAAC,GAAG,CAAC,CAAC;AAC5D,MAAM,cAAc,GAAG;AACvB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,iBAAiB,EAAE,KAAK;AAC5B,CAAC,CAAC;AACF,MAAM,cAAc,GAAG;AACvB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,UAAU,EAAE,KAAK;AACrB,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG;AACvB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,OAAO,EAAE,KAAK;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAe,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACtC;AACA;AACA,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,GAAG;AAC5B,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AACzD,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AACzD,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AACzD,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AAC5E,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AAC/F,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AAC/F,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,OAAO,EAAEA,2BAAO,CAAC,IAAI;AAC7B,QAAQ,aAAa,EAAE;AACvB,YAAY,YAAY,EAAE;AAC1B,gBAAgB,YAAY,EAAE,IAAI;AAClC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,qBAAqB,EAAE;AAC3B,QAAQ,OAAO,EAAEA,2BAAO,CAAC,qBAAqB,CAAC;AAC/C,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAEA,2BAAO,CAAC,MAAM;AAC/B,KAAK;AACL,IAAI,aAAa,EAAE;AACnB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,aAAa;AACtC,KAAK;AACL;AACA;AACA,IAAI,QAAQ,EAAE;AACd,QAAQ,OAAO,EAAEA,2BAAO,CAAC,QAAQ;AACjC,QAAQ,aAAa,EAAE;AACvB,YAAY,YAAY,EAAE;AAC1B,gBAAgB,YAAY,EAAE,IAAI;AAClC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,OAAO,EAAEA,2BAAO,CAAC,GAAG;AAC5B,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,OAAO,EAAEA,2BAAO,CAAC,KAAK;AAC9B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,OAAO,EAAEA,2BAAO,CAAC,IAAI;AAC7B,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,OAAO,EAAEA,2BAAO,CAAC,SAAS;AAClC,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAEA,2BAAO,CAAC,MAAM;AAC/B,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,OAAO,EAAEA,2BAAO,CAAC,KAAK;AAC9B,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,WAAW;AACpC,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAEA,2BAAO,CAAC,MAAM;AAC/B,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,OAAO,EAAEA,2BAAO,CAAC,KAAK;AAC9B,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,UAAU;AACnC,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,WAAW;AACpC,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,OAAO,EAAEA,2BAAO,CAAC,QAAQ;AACjC,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,OAAO,EAAEA,2BAAO,CAAC,SAAS;AAClC,KAAK;AACL,IAAI,aAAa,EAAE;AACnB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,aAAa;AACtC,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,YAAY;AACrC,KAAK;AACL,CAAC,CAAC,CAAC;;AC1MH;AACA;AACA;AACA;AAcA;AACA,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB;AACA,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;AAChC;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC;AACnB,MAAM,WAAW,GAAG;AACpB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,GAAG,EAAE,CAAC;AACV,CAAC,CAAC;AACF;AACA,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AAChC;AACA;AACA;AACA;AACA;AACe,MAAM,eAAe,CAAC;AACrC,IAAI,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;AACnD,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,IAAI,EAAE;AAC/B,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACpE;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;AAC/B,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,MAAM;AACjC,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,QAAQ,EAAE,MAAM,CAAC,MAAM;AAC3C,iBAAiB,CAAC;AAClB,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,aAAa,CAAC;AACd;AACA,SAAS;AACT;AACA;AACA,QAAQ,OAAO,MAAM,IAAI,IAAI,CAAC;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACvE,QAAQ,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC3G;AACA,QAAQ,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE;AAC5E,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,qFAAqF,EAAEC,wBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE;AAC3C,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC3D;AACA,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,aAAa;AACb,SAAS;AACT;AACA,QAAQ,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtD;AACA,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,YAAY,CAAC,YAAY,CAAC,CAAC;AACvC,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;AACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG;AACvD,oBAAoB,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxF,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE;AAC9D,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAChE;AACA,YAAY,IAAI,QAAQ,KAAK,CAAC,EAAE;AAChC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9F,aAAa;AACb,SAAS,CAAC,OAAO,GAAG,EAAE;AACtB,YAAY,MAAM,eAAe,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACrG;AACA,YAAY,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACpE,aAAa,MAAM;AACnB,gBAAgB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AACjD,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB;AACvB,QAAQ,WAAW;AACnB,QAAQ,MAAM;AACd,QAAQ,gBAAgB,GAAG,IAAI;AAC/B,MAAM;AACN;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI;AAC/C,YAAY,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,IAAIC,YAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACpF;AACA,YAAY,IAAI,CAAC,GAAG,EAAE;AACtB,gBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,MAAM,CAAC,sBAAsB,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;AACrF;AACA,gBAAgB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACzC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa;AACjB,QAAQ,WAAW;AACnB,QAAQ,MAAM;AACd,QAAQ,iBAAiB,GAAG,IAAI;AAChC,MAAM;AACN,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI;AAC/C,YAAY,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACpF;AACA,YAAY,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACxE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,EAAE;AAClD,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;AACrC,aAAa,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,KAAK;AAC9D,gBAAgB,IAAI;AACpB,oBAAoBC,qBAA+B,CAAC,eAAe,CAAC,CAAC;AACrE,iBAAiB,CAAC,OAAO,GAAG,EAAE;AAC9B,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrI,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE;AAC3D,QAAQ,IAAI,aAAa,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;AAC3D,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,sCAAsC,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC9H,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,MAAM,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;AACnC,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,sBAAsB,EAAE;AAC1D,gBAAgB,MAAM,qBAAqB,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACxK;AACA,gBAAgB,OAAO,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAClF,aAAa;AACb,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;AAC1C,gBAAgB,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,gBAAgB,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AAClH,gBAAgB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAClE;AACA,gBAAgB,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1I,aAAa;AACb;AACA,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC/F;AACA,YAAY,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvF,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAChD,QAAQ,cAAc,GAAG,cAAc,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACrC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1H,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;AAChE,YAAY,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;AACzE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE;AAClE,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACpE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACvE,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrD;AACA,QAAQ,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE;AACvD,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAC1E,YAAY,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAC7E,YAAY,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACzD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,WAAW,EAAE;AACrC,QAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACpF,QAAQ,MAAM,kBAAkB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACxF,QAAQ,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC9E;AACA;AACA,QAAQ,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;AAC3C,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACxC,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC;AACA,YAAY,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC9E,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACxF,YAAY,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC3E,SAAS;AACT,KAAK;AACL;AACA;;ACpUA;AACA;AACA;AACA;AACA,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvC,QAAQ,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7D,KAAK;AACL;AACA,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AAC5F,YAAY,sBAAsB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AACxE;AACA,QAAQ,IAAI,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AAC7D,YAAY,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG,SAAS,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,SAAS;AACT,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,cAAc,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AACvD,KAAK;AACL;AACA,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC7B,QAAQ,IAAI,WAAW,GAAG,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjF;AACA,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT;AACA,QAAQ,WAAW,GAAG,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClF,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,SAAS;AACT,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAClD,QAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjD,KAAK;AACL;AACA,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC9C;AACA,IAAI,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjC;;;;;;;;;ACrFA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACK,MAAC,MAAM,GAAG;AACf,IAAI,YAAY;AAChB;AACA;AACA,IAAI,SAAS;AACb,IAAI,eAAe;AACnB,IAAI,MAAM;AACV;;;;"} \ No newline at end of file diff --git a/node_modules/@eslint/eslintrc/dist/eslintrc.cjs b/node_modules/@eslint/eslintrc/dist/eslintrc.cjs new file mode 100644 index 0000000..1fa743c --- /dev/null +++ b/node_modules/@eslint/eslintrc/dist/eslintrc.cjs @@ -0,0 +1,4311 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var debugOrig = require('debug'); +var fs = require('fs'); +var importFresh = require('import-fresh'); +var Module = require('module'); +var path = require('path'); +var stripComments = require('strip-json-comments'); +var assert = require('assert'); +var ignore = require('ignore'); +var util = require('util'); +var minimatch = require('minimatch'); +var Ajv = require('ajv'); +var globals = require('globals'); +var os = require('os'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var debugOrig__default = /*#__PURE__*/_interopDefaultLegacy(debugOrig); +var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); +var importFresh__default = /*#__PURE__*/_interopDefaultLegacy(importFresh); +var Module__default = /*#__PURE__*/_interopDefaultLegacy(Module); +var path__default = /*#__PURE__*/_interopDefaultLegacy(path); +var stripComments__default = /*#__PURE__*/_interopDefaultLegacy(stripComments); +var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); +var ignore__default = /*#__PURE__*/_interopDefaultLegacy(ignore); +var util__default = /*#__PURE__*/_interopDefaultLegacy(util); +var minimatch__default = /*#__PURE__*/_interopDefaultLegacy(minimatch); +var Ajv__default = /*#__PURE__*/_interopDefaultLegacy(Ajv); +var globals__default = /*#__PURE__*/_interopDefaultLegacy(globals); +var os__default = /*#__PURE__*/_interopDefaultLegacy(os); + +/** + * @fileoverview `IgnorePattern` class. + * + * `IgnorePattern` class has the set of glob patterns and the base path. + * + * It provides two static methods. + * + * - `IgnorePattern.createDefaultIgnore(cwd)` + * Create the default predicate function. + * - `IgnorePattern.createIgnore(ignorePatterns)` + * Create the predicate function from multiple `IgnorePattern` objects. + * + * It provides two properties and a method. + * + * - `patterns` + * The glob patterns that ignore to lint. + * - `basePath` + * The base path of the glob patterns. If absolute paths existed in the + * glob patterns, those are handled as relative paths to the base path. + * - `getPatternsRelativeTo(basePath)` + * Get `patterns` as modified for a given base path. It modifies the + * absolute paths in the patterns as prepending the difference of two base + * paths. + * + * `ConfigArrayFactory` creates `IgnorePattern` objects when it processes + * `ignorePatterns` properties. + * + * @author Toru Nagashima + */ + +const debug$3 = debugOrig__default["default"]("eslintrc:ignore-pattern"); + +/** @typedef {ReturnType} Ignore */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Get the path to the common ancestor directory of given paths. + * @param {string[]} sourcePaths The paths to calculate the common ancestor. + * @returns {string} The path to the common ancestor directory. + */ +function getCommonAncestorPath(sourcePaths) { + let result = sourcePaths[0]; + + for (let i = 1; i < sourcePaths.length; ++i) { + const a = result; + const b = sourcePaths[i]; + + // Set the shorter one (it's the common ancestor if one includes the other). + result = a.length < b.length ? a : b; + + // Set the common ancestor. + for (let j = 0, lastSepPos = 0; j < a.length && j < b.length; ++j) { + if (a[j] !== b[j]) { + result = a.slice(0, lastSepPos); + break; + } + if (a[j] === path__default["default"].sep) { + lastSepPos = j; + } + } + } + + let resolvedResult = result || path__default["default"].sep; + + // if Windows common ancestor is root of drive must have trailing slash to be absolute. + if (resolvedResult && resolvedResult.endsWith(":") && process.platform === "win32") { + resolvedResult += path__default["default"].sep; + } + return resolvedResult; +} + +/** + * Make relative path. + * @param {string} from The source path to get relative path. + * @param {string} to The destination path to get relative path. + * @returns {string} The relative path. + */ +function relative(from, to) { + const relPath = path__default["default"].relative(from, to); + + if (path__default["default"].sep === "/") { + return relPath; + } + return relPath.split(path__default["default"].sep).join("/"); +} + +/** + * Get the trailing slash if existed. + * @param {string} filePath The path to check. + * @returns {string} The trailing slash if existed. + */ +function dirSuffix(filePath) { + const isDir = ( + filePath.endsWith(path__default["default"].sep) || + (process.platform === "win32" && filePath.endsWith("/")) + ); + + return isDir ? "/" : ""; +} + +const DefaultPatterns = Object.freeze(["/**/node_modules/*"]); +const DotPatterns = Object.freeze([".*", "!.eslintrc.*", "!../"]); + +//------------------------------------------------------------------------------ +// Public +//------------------------------------------------------------------------------ + +class IgnorePattern { + + /** + * The default patterns. + * @type {string[]} + */ + static get DefaultPatterns() { + return DefaultPatterns; + } + + /** + * Create the default predicate function. + * @param {string} cwd The current working directory. + * @returns {((filePath:string, dot:boolean) => boolean) & {basePath:string; patterns:string[]}} + * The preficate function. + * The first argument is an absolute path that is checked. + * The second argument is the flag to not ignore dotfiles. + * If the predicate function returned `true`, it means the path should be ignored. + */ + static createDefaultIgnore(cwd) { + return this.createIgnore([new IgnorePattern(DefaultPatterns, cwd)]); + } + + /** + * Create the predicate function from multiple `IgnorePattern` objects. + * @param {IgnorePattern[]} ignorePatterns The list of ignore patterns. + * @returns {((filePath:string, dot?:boolean) => boolean) & {basePath:string; patterns:string[]}} + * The preficate function. + * The first argument is an absolute path that is checked. + * The second argument is the flag to not ignore dotfiles. + * If the predicate function returned `true`, it means the path should be ignored. + */ + static createIgnore(ignorePatterns) { + debug$3("Create with: %o", ignorePatterns); + + const basePath = getCommonAncestorPath(ignorePatterns.map(p => p.basePath)); + const patterns = [].concat( + ...ignorePatterns.map(p => p.getPatternsRelativeTo(basePath)) + ); + const ig = ignore__default["default"]({ allowRelativePaths: true }).add([...DotPatterns, ...patterns]); + const dotIg = ignore__default["default"]({ allowRelativePaths: true }).add(patterns); + + debug$3(" processed: %o", { basePath, patterns }); + + return Object.assign( + (filePath, dot = false) => { + assert__default["default"](path__default["default"].isAbsolute(filePath), "'filePath' should be an absolute path."); + const relPathRaw = relative(basePath, filePath); + const relPath = relPathRaw && (relPathRaw + dirSuffix(filePath)); + const adoptedIg = dot ? dotIg : ig; + const result = relPath !== "" && adoptedIg.ignores(relPath); + + debug$3("Check", { filePath, dot, relativePath: relPath, result }); + return result; + }, + { basePath, patterns } + ); + } + + /** + * Initialize a new `IgnorePattern` instance. + * @param {string[]} patterns The glob patterns that ignore to lint. + * @param {string} basePath The base path of `patterns`. + */ + constructor(patterns, basePath) { + assert__default["default"](path__default["default"].isAbsolute(basePath), "'basePath' should be an absolute path."); + + /** + * The glob patterns that ignore to lint. + * @type {string[]} + */ + this.patterns = patterns; + + /** + * The base path of `patterns`. + * @type {string} + */ + this.basePath = basePath; + + /** + * If `true` then patterns which don't start with `/` will match the paths to the outside of `basePath`. Defaults to `false`. + * + * It's set `true` for `.eslintignore`, `package.json`, and `--ignore-path` for backward compatibility. + * It's `false` as-is for `ignorePatterns` property in config files. + * @type {boolean} + */ + this.loose = false; + } + + /** + * Get `patterns` as modified for a given base path. It modifies the + * absolute paths in the patterns as prepending the difference of two base + * paths. + * @param {string} newBasePath The base path. + * @returns {string[]} Modifired patterns. + */ + getPatternsRelativeTo(newBasePath) { + assert__default["default"](path__default["default"].isAbsolute(newBasePath), "'newBasePath' should be an absolute path."); + const { basePath, loose, patterns } = this; + + if (newBasePath === basePath) { + return patterns; + } + const prefix = `/${relative(newBasePath, basePath)}`; + + return patterns.map(pattern => { + const negative = pattern.startsWith("!"); + const head = negative ? "!" : ""; + const body = negative ? pattern.slice(1) : pattern; + + if (body.startsWith("/") || body.startsWith("../")) { + return `${head}${prefix}${body}`; + } + return loose ? pattern : `${head}${prefix}/**/${body}`; + }); + } +} + +/** + * @fileoverview `ExtractedConfig` class. + * + * `ExtractedConfig` class expresses a final configuration for a specific file. + * + * It provides one method. + * + * - `toCompatibleObjectAsConfigFileContent()` + * Convert this configuration to the compatible object as the content of + * config files. It converts the loaded parser and plugins to strings. + * `CLIEngine#getConfigForFile(filePath)` method uses this method. + * + * `ConfigArray#extractConfig(filePath)` creates a `ExtractedConfig` instance. + * + * @author Toru Nagashima + */ + +// For VSCode intellisense +/** @typedef {import("../../shared/types").ConfigData} ConfigData */ +/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */ +/** @typedef {import("../../shared/types").SeverityConf} SeverityConf */ +/** @typedef {import("./config-dependency").DependentParser} DependentParser */ +/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */ + +/** + * Check if `xs` starts with `ys`. + * @template T + * @param {T[]} xs The array to check. + * @param {T[]} ys The array that may be the first part of `xs`. + * @returns {boolean} `true` if `xs` starts with `ys`. + */ +function startsWith(xs, ys) { + return xs.length >= ys.length && ys.every((y, i) => y === xs[i]); +} + +/** + * The class for extracted config data. + */ +class ExtractedConfig { + constructor() { + + /** + * The config name what `noInlineConfig` setting came from. + * @type {string} + */ + this.configNameOfNoInlineConfig = ""; + + /** + * Environments. + * @type {Record} + */ + this.env = {}; + + /** + * Global variables. + * @type {Record} + */ + this.globals = {}; + + /** + * The glob patterns that ignore to lint. + * @type {(((filePath:string, dot?:boolean) => boolean) & { basePath:string; patterns:string[] }) | undefined} + */ + this.ignores = void 0; + + /** + * The flag that disables directive comments. + * @type {boolean|undefined} + */ + this.noInlineConfig = void 0; + + /** + * Parser definition. + * @type {DependentParser|null} + */ + this.parser = null; + + /** + * Options for the parser. + * @type {Object} + */ + this.parserOptions = {}; + + /** + * Plugin definitions. + * @type {Record} + */ + this.plugins = {}; + + /** + * Processor ID. + * @type {string|null} + */ + this.processor = null; + + /** + * The flag that reports unused `eslint-disable` directive comments. + * @type {boolean|undefined} + */ + this.reportUnusedDisableDirectives = void 0; + + /** + * Rule settings. + * @type {Record} + */ + this.rules = {}; + + /** + * Shared settings. + * @type {Object} + */ + this.settings = {}; + } + + /** + * Convert this config to the compatible object as a config file content. + * @returns {ConfigData} The converted object. + */ + toCompatibleObjectAsConfigFileContent() { + const { + /* eslint-disable no-unused-vars */ + configNameOfNoInlineConfig: _ignore1, + processor: _ignore2, + /* eslint-enable no-unused-vars */ + ignores, + ...config + } = this; + + config.parser = config.parser && config.parser.filePath; + config.plugins = Object.keys(config.plugins).filter(Boolean).reverse(); + config.ignorePatterns = ignores ? ignores.patterns : []; + + // Strip the default patterns from `ignorePatterns`. + if (startsWith(config.ignorePatterns, IgnorePattern.DefaultPatterns)) { + config.ignorePatterns = + config.ignorePatterns.slice(IgnorePattern.DefaultPatterns.length); + } + + return config; + } +} + +/** + * @fileoverview `ConfigArray` class. + * + * `ConfigArray` class expresses the full of a configuration. It has the entry + * config file, base config files that were extended, loaded parsers, and loaded + * plugins. + * + * `ConfigArray` class provides three properties and two methods. + * + * - `pluginEnvironments` + * - `pluginProcessors` + * - `pluginRules` + * The `Map` objects that contain the members of all plugins that this + * config array contains. Those map objects don't have mutation methods. + * Those keys are the member ID such as `pluginId/memberName`. + * - `isRoot()` + * If `true` then this configuration has `root:true` property. + * - `extractConfig(filePath)` + * Extract the final configuration for a given file. This means merging + * every config array element which that `criteria` property matched. The + * `filePath` argument must be an absolute path. + * + * `ConfigArrayFactory` provides the loading logic of config files. + * + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +// Define types for VSCode IntelliSense. +/** @typedef {import("../../shared/types").Environment} Environment */ +/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */ +/** @typedef {import("../../shared/types").RuleConf} RuleConf */ +/** @typedef {import("../../shared/types").Rule} Rule */ +/** @typedef {import("../../shared/types").Plugin} Plugin */ +/** @typedef {import("../../shared/types").Processor} Processor */ +/** @typedef {import("./config-dependency").DependentParser} DependentParser */ +/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */ +/** @typedef {import("./override-tester")["OverrideTester"]} OverrideTester */ + +/** + * @typedef {Object} ConfigArrayElement + * @property {string} name The name of this config element. + * @property {string} filePath The path to the source file of this config element. + * @property {InstanceType|null} criteria The tester for the `files` and `excludedFiles` of this config element. + * @property {Record|undefined} env The environment settings. + * @property {Record|undefined} globals The global variable settings. + * @property {IgnorePattern|undefined} ignorePattern The ignore patterns. + * @property {boolean|undefined} noInlineConfig The flag that disables directive comments. + * @property {DependentParser|undefined} parser The parser loader. + * @property {Object|undefined} parserOptions The parser options. + * @property {Record|undefined} plugins The plugin loaders. + * @property {string|undefined} processor The processor name to refer plugin's processor. + * @property {boolean|undefined} reportUnusedDisableDirectives The flag to report unused `eslint-disable` comments. + * @property {boolean|undefined} root The flag to express root. + * @property {Record|undefined} rules The rule settings + * @property {Object|undefined} settings The shared settings. + * @property {"config" | "ignore" | "implicit-processor"} type The element type. + */ + +/** + * @typedef {Object} ConfigArrayInternalSlots + * @property {Map} cache The cache to extract configs. + * @property {ReadonlyMap|null} envMap The map from environment ID to environment definition. + * @property {ReadonlyMap|null} processorMap The map from processor ID to environment definition. + * @property {ReadonlyMap|null} ruleMap The map from rule ID to rule definition. + */ + +/** @type {WeakMap} */ +const internalSlotsMap$2 = new class extends WeakMap { + get(key) { + let value = super.get(key); + + if (!value) { + value = { + cache: new Map(), + envMap: null, + processorMap: null, + ruleMap: null + }; + super.set(key, value); + } + + return value; + } +}(); + +/** + * Get the indices which are matched to a given file. + * @param {ConfigArrayElement[]} elements The elements. + * @param {string} filePath The path to a target file. + * @returns {number[]} The indices. + */ +function getMatchedIndices(elements, filePath) { + const indices = []; + + for (let i = elements.length - 1; i >= 0; --i) { + const element = elements[i]; + + if (!element.criteria || (filePath && element.criteria.test(filePath))) { + indices.push(i); + } + } + + return indices; +} + +/** + * Check if a value is a non-null object. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is a non-null object. + */ +function isNonNullObject(x) { + return typeof x === "object" && x !== null; +} + +/** + * Merge two objects. + * + * Assign every property values of `y` to `x` if `x` doesn't have the property. + * If `x`'s property value is an object, it does recursive. + * @param {Object} target The destination to merge + * @param {Object|undefined} source The source to merge. + * @returns {void} + */ +function mergeWithoutOverwrite(target, source) { + if (!isNonNullObject(source)) { + return; + } + + for (const key of Object.keys(source)) { + if (key === "__proto__") { + continue; + } + + if (isNonNullObject(target[key])) { + mergeWithoutOverwrite(target[key], source[key]); + } else if (target[key] === void 0) { + if (isNonNullObject(source[key])) { + target[key] = Array.isArray(source[key]) ? [] : {}; + mergeWithoutOverwrite(target[key], source[key]); + } else if (source[key] !== void 0) { + target[key] = source[key]; + } + } + } +} + +/** + * The error for plugin conflicts. + */ +class PluginConflictError extends Error { + + /** + * Initialize this error object. + * @param {string} pluginId The plugin ID. + * @param {{filePath:string, importerName:string}[]} plugins The resolved plugins. + */ + constructor(pluginId, plugins) { + super(`Plugin "${pluginId}" was conflicted between ${plugins.map(p => `"${p.importerName}"`).join(" and ")}.`); + this.messageTemplate = "plugin-conflict"; + this.messageData = { pluginId, plugins }; + } +} + +/** + * Merge plugins. + * `target`'s definition is prior to `source`'s. + * @param {Record} target The destination to merge + * @param {Record|undefined} source The source to merge. + * @returns {void} + */ +function mergePlugins(target, source) { + if (!isNonNullObject(source)) { + return; + } + + for (const key of Object.keys(source)) { + if (key === "__proto__") { + continue; + } + const targetValue = target[key]; + const sourceValue = source[key]; + + // Adopt the plugin which was found at first. + if (targetValue === void 0) { + if (sourceValue.error) { + throw sourceValue.error; + } + target[key] = sourceValue; + } else if (sourceValue.filePath !== targetValue.filePath) { + throw new PluginConflictError(key, [ + { + filePath: targetValue.filePath, + importerName: targetValue.importerName + }, + { + filePath: sourceValue.filePath, + importerName: sourceValue.importerName + } + ]); + } + } +} + +/** + * Merge rule configs. + * `target`'s definition is prior to `source`'s. + * @param {Record} target The destination to merge + * @param {Record|undefined} source The source to merge. + * @returns {void} + */ +function mergeRuleConfigs(target, source) { + if (!isNonNullObject(source)) { + return; + } + + for (const key of Object.keys(source)) { + if (key === "__proto__") { + continue; + } + const targetDef = target[key]; + const sourceDef = source[key]; + + // Adopt the rule config which was found at first. + if (targetDef === void 0) { + if (Array.isArray(sourceDef)) { + target[key] = [...sourceDef]; + } else { + target[key] = [sourceDef]; + } + + /* + * If the first found rule config is severity only and the current rule + * config has options, merge the severity and the options. + */ + } else if ( + targetDef.length === 1 && + Array.isArray(sourceDef) && + sourceDef.length >= 2 + ) { + targetDef.push(...sourceDef.slice(1)); + } + } +} + +/** + * Create the extracted config. + * @param {ConfigArray} instance The config elements. + * @param {number[]} indices The indices to use. + * @returns {ExtractedConfig} The extracted config. + */ +function createConfig(instance, indices) { + const config = new ExtractedConfig(); + const ignorePatterns = []; + + // Merge elements. + for (const index of indices) { + const element = instance[index]; + + // Adopt the parser which was found at first. + if (!config.parser && element.parser) { + if (element.parser.error) { + throw element.parser.error; + } + config.parser = element.parser; + } + + // Adopt the processor which was found at first. + if (!config.processor && element.processor) { + config.processor = element.processor; + } + + // Adopt the noInlineConfig which was found at first. + if (config.noInlineConfig === void 0 && element.noInlineConfig !== void 0) { + config.noInlineConfig = element.noInlineConfig; + config.configNameOfNoInlineConfig = element.name; + } + + // Adopt the reportUnusedDisableDirectives which was found at first. + if (config.reportUnusedDisableDirectives === void 0 && element.reportUnusedDisableDirectives !== void 0) { + config.reportUnusedDisableDirectives = element.reportUnusedDisableDirectives; + } + + // Collect ignorePatterns + if (element.ignorePattern) { + ignorePatterns.push(element.ignorePattern); + } + + // Merge others. + mergeWithoutOverwrite(config.env, element.env); + mergeWithoutOverwrite(config.globals, element.globals); + mergeWithoutOverwrite(config.parserOptions, element.parserOptions); + mergeWithoutOverwrite(config.settings, element.settings); + mergePlugins(config.plugins, element.plugins); + mergeRuleConfigs(config.rules, element.rules); + } + + // Create the predicate function for ignore patterns. + if (ignorePatterns.length > 0) { + config.ignores = IgnorePattern.createIgnore(ignorePatterns.reverse()); + } + + return config; +} + +/** + * Collect definitions. + * @template T, U + * @param {string} pluginId The plugin ID for prefix. + * @param {Record} defs The definitions to collect. + * @param {Map} map The map to output. + * @param {function(T): U} [normalize] The normalize function for each value. + * @returns {void} + */ +function collect(pluginId, defs, map, normalize) { + if (defs) { + const prefix = pluginId && `${pluginId}/`; + + for (const [key, value] of Object.entries(defs)) { + map.set( + `${prefix}${key}`, + normalize ? normalize(value) : value + ); + } + } +} + +/** + * Normalize a rule definition. + * @param {Function|Rule} rule The rule definition to normalize. + * @returns {Rule} The normalized rule definition. + */ +function normalizePluginRule(rule) { + return typeof rule === "function" ? { create: rule } : rule; +} + +/** + * Delete the mutation methods from a given map. + * @param {Map} map The map object to delete. + * @returns {void} + */ +function deleteMutationMethods(map) { + Object.defineProperties(map, { + clear: { configurable: true, value: void 0 }, + delete: { configurable: true, value: void 0 }, + set: { configurable: true, value: void 0 } + }); +} + +/** + * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array. + * @param {ConfigArrayElement[]} elements The config elements. + * @param {ConfigArrayInternalSlots} slots The internal slots. + * @returns {void} + */ +function initPluginMemberMaps(elements, slots) { + const processed = new Set(); + + slots.envMap = new Map(); + slots.processorMap = new Map(); + slots.ruleMap = new Map(); + + for (const element of elements) { + if (!element.plugins) { + continue; + } + + for (const [pluginId, value] of Object.entries(element.plugins)) { + const plugin = value.definition; + + if (!plugin || processed.has(pluginId)) { + continue; + } + processed.add(pluginId); + + collect(pluginId, plugin.environments, slots.envMap); + collect(pluginId, plugin.processors, slots.processorMap); + collect(pluginId, plugin.rules, slots.ruleMap, normalizePluginRule); + } + } + + deleteMutationMethods(slots.envMap); + deleteMutationMethods(slots.processorMap); + deleteMutationMethods(slots.ruleMap); +} + +/** + * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array. + * @param {ConfigArray} instance The config elements. + * @returns {ConfigArrayInternalSlots} The extracted config. + */ +function ensurePluginMemberMaps(instance) { + const slots = internalSlotsMap$2.get(instance); + + if (!slots.ruleMap) { + initPluginMemberMaps(instance, slots); + } + + return slots; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * The Config Array. + * + * `ConfigArray` instance contains all settings, parsers, and plugins. + * You need to call `ConfigArray#extractConfig(filePath)` method in order to + * extract, merge and get only the config data which is related to an arbitrary + * file. + * @extends {Array} + */ +class ConfigArray extends Array { + + /** + * Get the plugin environments. + * The returned map cannot be mutated. + * @type {ReadonlyMap} The plugin environments. + */ + get pluginEnvironments() { + return ensurePluginMemberMaps(this).envMap; + } + + /** + * Get the plugin processors. + * The returned map cannot be mutated. + * @type {ReadonlyMap} The plugin processors. + */ + get pluginProcessors() { + return ensurePluginMemberMaps(this).processorMap; + } + + /** + * Get the plugin rules. + * The returned map cannot be mutated. + * @returns {ReadonlyMap} The plugin rules. + */ + get pluginRules() { + return ensurePluginMemberMaps(this).ruleMap; + } + + /** + * Check if this config has `root` flag. + * @returns {boolean} `true` if this config array is root. + */ + isRoot() { + for (let i = this.length - 1; i >= 0; --i) { + const root = this[i].root; + + if (typeof root === "boolean") { + return root; + } + } + return false; + } + + /** + * Extract the config data which is related to a given file. + * @param {string} filePath The absolute path to the target file. + * @returns {ExtractedConfig} The extracted config data. + */ + extractConfig(filePath) { + const { cache } = internalSlotsMap$2.get(this); + const indices = getMatchedIndices(this, filePath); + const cacheKey = indices.join(","); + + if (!cache.has(cacheKey)) { + cache.set(cacheKey, createConfig(this, indices)); + } + + return cache.get(cacheKey); + } + + /** + * Check if a given path is an additional lint target. + * @param {string} filePath The absolute path to the target file. + * @returns {boolean} `true` if the file is an additional lint target. + */ + isAdditionalTargetPath(filePath) { + for (const { criteria, type } of this) { + if ( + type === "config" && + criteria && + !criteria.endsWithWildcard && + criteria.test(filePath) + ) { + return true; + } + } + return false; + } +} + +/** + * Get the used extracted configs. + * CLIEngine will use this method to collect used deprecated rules. + * @param {ConfigArray} instance The config array object to get. + * @returns {ExtractedConfig[]} The used extracted configs. + * @private + */ +function getUsedExtractedConfigs(instance) { + const { cache } = internalSlotsMap$2.get(instance); + + return Array.from(cache.values()); +} + +/** + * @fileoverview `ConfigDependency` class. + * + * `ConfigDependency` class expresses a loaded parser or plugin. + * + * If the parser or plugin was loaded successfully, it has `definition` property + * and `filePath` property. Otherwise, it has `error` property. + * + * When `JSON.stringify()` converted a `ConfigDependency` object to a JSON, it + * omits `definition` property. + * + * `ConfigArrayFactory` creates `ConfigDependency` objects when it loads parsers + * or plugins. + * + * @author Toru Nagashima + */ + +/** + * The class is to store parsers or plugins. + * This class hides the loaded object from `JSON.stringify()` and `console.log`. + * @template T + */ +class ConfigDependency { + + /** + * Initialize this instance. + * @param {Object} data The dependency data. + * @param {T} [data.definition] The dependency if the loading succeeded. + * @param {Error} [data.error] The error object if the loading failed. + * @param {string} [data.filePath] The actual path to the dependency if the loading succeeded. + * @param {string} data.id The ID of this dependency. + * @param {string} data.importerName The name of the config file which loads this dependency. + * @param {string} data.importerPath The path to the config file which loads this dependency. + */ + constructor({ + definition = null, + error = null, + filePath = null, + id, + importerName, + importerPath + }) { + + /** + * The loaded dependency if the loading succeeded. + * @type {T|null} + */ + this.definition = definition; + + /** + * The error object if the loading failed. + * @type {Error|null} + */ + this.error = error; + + /** + * The loaded dependency if the loading succeeded. + * @type {string|null} + */ + this.filePath = filePath; + + /** + * The ID of this dependency. + * @type {string} + */ + this.id = id; + + /** + * The name of the config file which loads this dependency. + * @type {string} + */ + this.importerName = importerName; + + /** + * The path to the config file which loads this dependency. + * @type {string} + */ + this.importerPath = importerPath; + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} a JSON compatible object. + */ + toJSON() { + const obj = this[util__default["default"].inspect.custom](); + + // Display `error.message` (`Error#message` is unenumerable). + if (obj.error instanceof Error) { + obj.error = { ...obj.error, message: obj.error.message }; + } + + return obj; + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} an object to display by `console.log()`. + */ + [util__default["default"].inspect.custom]() { + const { + definition: _ignore, // eslint-disable-line no-unused-vars + ...obj + } = this; + + return obj; + } +} + +/** + * @fileoverview `OverrideTester` class. + * + * `OverrideTester` class handles `files` property and `excludedFiles` property + * of `overrides` config. + * + * It provides one method. + * + * - `test(filePath)` + * Test if a file path matches the pair of `files` property and + * `excludedFiles` property. The `filePath` argument must be an absolute + * path. + * + * `ConfigArrayFactory` creates `OverrideTester` objects when it processes + * `overrides` properties. + * + * @author Toru Nagashima + */ + +const { Minimatch } = minimatch__default["default"]; + +const minimatchOpts = { dot: true, matchBase: true }; + +/** + * @typedef {Object} Pattern + * @property {InstanceType[] | null} includes The positive matchers. + * @property {InstanceType[] | null} excludes The negative matchers. + */ + +/** + * Normalize a given pattern to an array. + * @param {string|string[]|undefined} patterns A glob pattern or an array of glob patterns. + * @returns {string[]|null} Normalized patterns. + * @private + */ +function normalizePatterns(patterns) { + if (Array.isArray(patterns)) { + return patterns.filter(Boolean); + } + if (typeof patterns === "string" && patterns) { + return [patterns]; + } + return []; +} + +/** + * Create the matchers of given patterns. + * @param {string[]} patterns The patterns. + * @returns {InstanceType[] | null} The matchers. + */ +function toMatcher(patterns) { + if (patterns.length === 0) { + return null; + } + return patterns.map(pattern => { + if (/^\.[/\\]/u.test(pattern)) { + return new Minimatch( + pattern.slice(2), + + // `./*.js` should not match with `subdir/foo.js` + { ...minimatchOpts, matchBase: false } + ); + } + return new Minimatch(pattern, minimatchOpts); + }); +} + +/** + * Convert a given matcher to string. + * @param {Pattern} matchers The matchers. + * @returns {string} The string expression of the matcher. + */ +function patternToJson({ includes, excludes }) { + return { + includes: includes && includes.map(m => m.pattern), + excludes: excludes && excludes.map(m => m.pattern) + }; +} + +/** + * The class to test given paths are matched by the patterns. + */ +class OverrideTester { + + /** + * Create a tester with given criteria. + * If there are no criteria, returns `null`. + * @param {string|string[]} files The glob patterns for included files. + * @param {string|string[]} excludedFiles The glob patterns for excluded files. + * @param {string} basePath The path to the base directory to test paths. + * @returns {OverrideTester|null} The created instance or `null`. + */ + static create(files, excludedFiles, basePath) { + const includePatterns = normalizePatterns(files); + const excludePatterns = normalizePatterns(excludedFiles); + let endsWithWildcard = false; + + if (includePatterns.length === 0) { + return null; + } + + // Rejects absolute paths or relative paths to parents. + for (const pattern of includePatterns) { + if (path__default["default"].isAbsolute(pattern) || pattern.includes("..")) { + throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`); + } + if (pattern.endsWith("*")) { + endsWithWildcard = true; + } + } + for (const pattern of excludePatterns) { + if (path__default["default"].isAbsolute(pattern) || pattern.includes("..")) { + throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`); + } + } + + const includes = toMatcher(includePatterns); + const excludes = toMatcher(excludePatterns); + + return new OverrideTester( + [{ includes, excludes }], + basePath, + endsWithWildcard + ); + } + + /** + * Combine two testers by logical and. + * If either of the testers was `null`, returns the other tester. + * The `basePath` property of the two must be the same value. + * @param {OverrideTester|null} a A tester. + * @param {OverrideTester|null} b Another tester. + * @returns {OverrideTester|null} Combined tester. + */ + static and(a, b) { + if (!b) { + return a && new OverrideTester( + a.patterns, + a.basePath, + a.endsWithWildcard + ); + } + if (!a) { + return new OverrideTester( + b.patterns, + b.basePath, + b.endsWithWildcard + ); + } + + assert__default["default"].strictEqual(a.basePath, b.basePath); + return new OverrideTester( + a.patterns.concat(b.patterns), + a.basePath, + a.endsWithWildcard || b.endsWithWildcard + ); + } + + /** + * Initialize this instance. + * @param {Pattern[]} patterns The matchers. + * @param {string} basePath The base path. + * @param {boolean} endsWithWildcard If `true` then a pattern ends with `*`. + */ + constructor(patterns, basePath, endsWithWildcard = false) { + + /** @type {Pattern[]} */ + this.patterns = patterns; + + /** @type {string} */ + this.basePath = basePath; + + /** @type {boolean} */ + this.endsWithWildcard = endsWithWildcard; + } + + /** + * Test if a given path is matched or not. + * @param {string} filePath The absolute path to the target file. + * @returns {boolean} `true` if the path was matched. + */ + test(filePath) { + if (typeof filePath !== "string" || !path__default["default"].isAbsolute(filePath)) { + throw new Error(`'filePath' should be an absolute path, but got ${filePath}.`); + } + const relativePath = path__default["default"].relative(this.basePath, filePath); + + return this.patterns.every(({ includes, excludes }) => ( + (!includes || includes.some(m => m.match(relativePath))) && + (!excludes || !excludes.some(m => m.match(relativePath))) + )); + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} a JSON compatible object. + */ + toJSON() { + if (this.patterns.length === 1) { + return { + ...patternToJson(this.patterns[0]), + basePath: this.basePath + }; + } + return { + AND: this.patterns.map(patternToJson), + basePath: this.basePath + }; + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} an object to display by `console.log()`. + */ + [util__default["default"].inspect.custom]() { + return this.toJSON(); + } +} + +/** + * @fileoverview `ConfigArray` class. + * @author Toru Nagashima + */ + +/** + * @fileoverview Config file operations. This file must be usable in the browser, + * so no Node-specific code can be here. + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +const RULE_SEVERITY_STRINGS = ["off", "warn", "error"], + RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => { + map[value] = index; + return map; + }, {}), + VALID_SEVERITIES = [0, 1, 2, "off", "warn", "error"]; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Normalizes the severity value of a rule's configuration to a number + * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally + * received from the user. A valid config value is either 0, 1, 2, the string "off" (treated the same as 0), + * the string "warn" (treated the same as 1), the string "error" (treated the same as 2), or an array + * whose first element is one of the above values. Strings are matched case-insensitively. + * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0. + */ +function getRuleSeverity(ruleConfig) { + const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; + + if (severityValue === 0 || severityValue === 1 || severityValue === 2) { + return severityValue; + } + + if (typeof severityValue === "string") { + return RULE_SEVERITY[severityValue.toLowerCase()] || 0; + } + + return 0; +} + +/** + * Converts old-style severity settings (0, 1, 2) into new-style + * severity settings (off, warn, error) for all rules. Assumption is that severity + * values have already been validated as correct. + * @param {Object} config The config object to normalize. + * @returns {void} + */ +function normalizeToStrings(config) { + + if (config.rules) { + Object.keys(config.rules).forEach(ruleId => { + const ruleConfig = config.rules[ruleId]; + + if (typeof ruleConfig === "number") { + config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0]; + } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === "number") { + ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0]; + } + }); + } +} + +/** + * Determines if the severity for the given rule configuration represents an error. + * @param {int|string|Array} ruleConfig The configuration for an individual rule. + * @returns {boolean} True if the rule represents an error, false if not. + */ +function isErrorSeverity(ruleConfig) { + return getRuleSeverity(ruleConfig) === 2; +} + +/** + * Checks whether a given config has valid severity or not. + * @param {number|string|Array} ruleConfig The configuration for an individual rule. + * @returns {boolean} `true` if the configuration has valid severity. + */ +function isValidSeverity(ruleConfig) { + let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; + + if (typeof severity === "string") { + severity = severity.toLowerCase(); + } + return VALID_SEVERITIES.indexOf(severity) !== -1; +} + +/** + * Checks whether every rule of a given config has valid severity or not. + * @param {Object} config The configuration for rules. + * @returns {boolean} `true` if the configuration has valid severity. + */ +function isEverySeverityValid(config) { + return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId])); +} + +/** + * Normalizes a value for a global in a config + * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in + * a global directive comment + * @returns {("readable"|"writeable"|"off")} The value normalized as a string + * @throws Error if global value is invalid + */ +function normalizeConfigGlobal(configuredValue) { + switch (configuredValue) { + case "off": + return "off"; + + case true: + case "true": + case "writeable": + case "writable": + return "writable"; + + case null: + case false: + case "false": + case "readable": + case "readonly": + return "readonly"; + + default: + throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`); + } +} + +var ConfigOps = { + __proto__: null, + getRuleSeverity: getRuleSeverity, + normalizeToStrings: normalizeToStrings, + isErrorSeverity: isErrorSeverity, + isValidSeverity: isValidSeverity, + isEverySeverityValid: isEverySeverityValid, + normalizeConfigGlobal: normalizeConfigGlobal +}; + +/** + * @fileoverview Provide the function that emits deprecation warnings. + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +// Defitions for deprecation warnings. +const deprecationWarningMessages = { + ESLINT_LEGACY_ECMAFEATURES: + "The 'ecmaFeatures' config file property is deprecated and has no effect.", + ESLINT_PERSONAL_CONFIG_LOAD: + "'~/.eslintrc.*' config files have been deprecated. " + + "Please use a config file per project or the '--config' option.", + ESLINT_PERSONAL_CONFIG_SUPPRESS: + "'~/.eslintrc.*' config files have been deprecated. " + + "Please remove it or add 'root:true' to the config files in your " + + "projects in order to avoid loading '~/.eslintrc.*' accidentally." +}; + +const sourceFileErrorCache = new Set(); + +/** + * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted + * for each unique file path, but repeated invocations with the same file path have no effect. + * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active. + * @param {string} source The name of the configuration source to report the warning for. + * @param {string} errorCode The warning message to show. + * @returns {void} + */ +function emitDeprecationWarning(source, errorCode) { + const cacheKey = JSON.stringify({ source, errorCode }); + + if (sourceFileErrorCache.has(cacheKey)) { + return; + } + sourceFileErrorCache.add(cacheKey); + + const rel = path__default["default"].relative(process.cwd(), source); + const message = deprecationWarningMessages[errorCode]; + + process.emitWarning( + `${message} (found in "${rel}")`, + "DeprecationWarning", + errorCode + ); +} + +/** + * @fileoverview The instance of Ajv validator. + * @author Evgeny Poberezkin + */ + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/* + * Copied from ajv/lib/refs/json-schema-draft-04.json + * The MIT License (MIT) + * Copyright (c) 2015-2017 Evgeny Poberezkin + */ +const metaSchema = { + id: "http://json-schema.org/draft-04/schema#", + $schema: "http://json-schema.org/draft-04/schema#", + description: "Core schema meta-schema", + definitions: { + schemaArray: { + type: "array", + minItems: 1, + items: { $ref: "#" } + }, + positiveInteger: { + type: "integer", + minimum: 0 + }, + positiveIntegerDefault0: { + allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }] + }, + simpleTypes: { + enum: ["array", "boolean", "integer", "null", "number", "object", "string"] + }, + stringArray: { + type: "array", + items: { type: "string" }, + minItems: 1, + uniqueItems: true + } + }, + type: "object", + properties: { + id: { + type: "string" + }, + $schema: { + type: "string" + }, + 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: { $ref: "#/definitions/positiveInteger" }, + minLength: { $ref: "#/definitions/positiveIntegerDefault0" }, + pattern: { + type: "string", + format: "regex" + }, + additionalItems: { + anyOf: [ + { type: "boolean" }, + { $ref: "#" } + ], + default: { } + }, + items: { + anyOf: [ + { $ref: "#" }, + { $ref: "#/definitions/schemaArray" } + ], + default: { } + }, + maxItems: { $ref: "#/definitions/positiveInteger" }, + minItems: { $ref: "#/definitions/positiveIntegerDefault0" }, + uniqueItems: { + type: "boolean", + default: false + }, + maxProperties: { $ref: "#/definitions/positiveInteger" }, + minProperties: { $ref: "#/definitions/positiveIntegerDefault0" }, + required: { $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: { type: "string" }, + allOf: { $ref: "#/definitions/schemaArray" }, + anyOf: { $ref: "#/definitions/schemaArray" }, + oneOf: { $ref: "#/definitions/schemaArray" }, + not: { $ref: "#" } + }, + dependencies: { + exclusiveMaximum: ["maximum"], + exclusiveMinimum: ["minimum"] + }, + default: { } +}; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +var ajvOrig = (additionalOptions = {}) => { + const ajv = new Ajv__default["default"]({ + meta: false, + useDefaults: true, + validateSchema: false, + missingRefs: "ignore", + verbose: true, + schemaId: "auto", + ...additionalOptions + }); + + ajv.addMetaSchema(metaSchema); + // eslint-disable-next-line no-underscore-dangle + ajv._opts.defaultMeta = metaSchema.id; + + return ajv; +}; + +/** + * @fileoverview Defines a schema for configs. + * @author Sylvan Mably + */ + +const baseConfigProperties = { + $schema: { type: "string" }, + env: { type: "object" }, + extends: { $ref: "#/definitions/stringOrStrings" }, + globals: { type: "object" }, + overrides: { + type: "array", + items: { $ref: "#/definitions/overrideConfig" }, + additionalItems: false + }, + parser: { type: ["string", "null"] }, + parserOptions: { type: "object" }, + plugins: { type: "array" }, + processor: { type: "string" }, + rules: { type: "object" }, + settings: { type: "object" }, + noInlineConfig: { type: "boolean" }, + reportUnusedDisableDirectives: { type: "boolean" }, + + ecmaFeatures: { type: "object" } // deprecated; logs a warning when used +}; + +const configSchema = { + definitions: { + stringOrStrings: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false + } + ] + }, + stringOrStringsRequired: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false, + minItems: 1 + } + ] + }, + + // Config at top-level. + objectConfig: { + type: "object", + properties: { + root: { type: "boolean" }, + ignorePatterns: { $ref: "#/definitions/stringOrStrings" }, + ...baseConfigProperties + }, + additionalProperties: false + }, + + // Config in `overrides`. + overrideConfig: { + type: "object", + properties: { + excludedFiles: { $ref: "#/definitions/stringOrStrings" }, + files: { $ref: "#/definitions/stringOrStringsRequired" }, + ...baseConfigProperties + }, + required: ["files"], + additionalProperties: false + } + }, + + $ref: "#/definitions/objectConfig" +}; + +/** + * @fileoverview Defines environment settings and globals. + * @author Elan Shanker + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Get the object that has difference. + * @param {Record} current The newer object. + * @param {Record} prev The older object. + * @returns {Record} The difference object. + */ +function getDiff(current, prev) { + const retv = {}; + + for (const [key, value] of Object.entries(current)) { + if (!Object.hasOwnProperty.call(prev, key)) { + retv[key] = value; + } + } + + return retv; +} + +const newGlobals2015 = getDiff(globals__default["default"].es2015, globals__default["default"].es5); // 19 variables such as Promise, Map, ... +const newGlobals2017 = { + Atomics: false, + SharedArrayBuffer: false +}; +const newGlobals2020 = { + BigInt: false, + BigInt64Array: false, + BigUint64Array: false, + globalThis: false +}; + +const newGlobals2021 = { + AggregateError: false, + FinalizationRegistry: false, + WeakRef: false +}; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** @type {Map} */ +var environments = new Map(Object.entries({ + + // Language + builtin: { + globals: globals__default["default"].es5 + }, + es6: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 6 + } + }, + es2015: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 6 + } + }, + es2016: { + globals: newGlobals2015, + parserOptions: { + ecmaVersion: 7 + } + }, + es2017: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 8 + } + }, + es2018: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 9 + } + }, + es2019: { + globals: { ...newGlobals2015, ...newGlobals2017 }, + parserOptions: { + ecmaVersion: 10 + } + }, + es2020: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 }, + parserOptions: { + ecmaVersion: 11 + } + }, + es2021: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 }, + parserOptions: { + ecmaVersion: 12 + } + }, + es2022: { + globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 }, + parserOptions: { + ecmaVersion: 13 + } + }, + + // Platforms + browser: { + globals: globals__default["default"].browser + }, + node: { + globals: globals__default["default"].node, + parserOptions: { + ecmaFeatures: { + globalReturn: true + } + } + }, + "shared-node-browser": { + globals: globals__default["default"]["shared-node-browser"] + }, + worker: { + globals: globals__default["default"].worker + }, + serviceworker: { + globals: globals__default["default"].serviceworker + }, + + // Frameworks + commonjs: { + globals: globals__default["default"].commonjs, + parserOptions: { + ecmaFeatures: { + globalReturn: true + } + } + }, + amd: { + globals: globals__default["default"].amd + }, + mocha: { + globals: globals__default["default"].mocha + }, + jasmine: { + globals: globals__default["default"].jasmine + }, + jest: { + globals: globals__default["default"].jest + }, + phantomjs: { + globals: globals__default["default"].phantomjs + }, + jquery: { + globals: globals__default["default"].jquery + }, + qunit: { + globals: globals__default["default"].qunit + }, + prototypejs: { + globals: globals__default["default"].prototypejs + }, + shelljs: { + globals: globals__default["default"].shelljs + }, + meteor: { + globals: globals__default["default"].meteor + }, + mongo: { + globals: globals__default["default"].mongo + }, + protractor: { + globals: globals__default["default"].protractor + }, + applescript: { + globals: globals__default["default"].applescript + }, + nashorn: { + globals: globals__default["default"].nashorn + }, + atomtest: { + globals: globals__default["default"].atomtest + }, + embertest: { + globals: globals__default["default"].embertest + }, + webextensions: { + globals: globals__default["default"].webextensions + }, + greasemonkey: { + globals: globals__default["default"].greasemonkey + } +})); + +/** + * @fileoverview Validates configs. + * @author Brandon Mills + */ + +const ajv = ajvOrig(); + +const ruleValidators = new WeakMap(); +const noop = Function.prototype; + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ +let validateSchema; +const severityMap = { + error: 2, + warn: 1, + off: 0 +}; + +const validated = new WeakSet(); + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +class ConfigValidator { + constructor({ builtInRules = new Map() } = {}) { + this.builtInRules = builtInRules; + } + + /** + * Gets a complete options schema for a rule. + * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object + * @returns {Object} JSON Schema for the rule's options. + */ + getRuleOptionsSchema(rule) { + if (!rule) { + return null; + } + + const schema = rule.schema || rule.meta && rule.meta.schema; + + // Given a tuple of schemas, insert warning level at the beginning + if (Array.isArray(schema)) { + if (schema.length) { + return { + type: "array", + items: schema, + minItems: 0, + maxItems: schema.length + }; + } + return { + type: "array", + minItems: 0, + maxItems: 0 + }; + + } + + // Given a full schema, leave it alone + return schema || null; + } + + /** + * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid. + * @param {options} options The given options for the rule. + * @returns {number|string} The rule's severity value + */ + validateRuleSeverity(options) { + const severity = Array.isArray(options) ? options[0] : options; + const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity; + + if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) { + return normSeverity; + } + + throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util__default["default"].inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`); + + } + + /** + * Validates the non-severity options passed to a rule, based on its schema. + * @param {{create: Function}} rule The rule to validate + * @param {Array} localOptions The options for the rule, excluding severity + * @returns {void} + */ + validateRuleSchema(rule, localOptions) { + if (!ruleValidators.has(rule)) { + const schema = this.getRuleOptionsSchema(rule); + + if (schema) { + ruleValidators.set(rule, ajv.compile(schema)); + } + } + + const validateRule = ruleValidators.get(rule); + + if (validateRule) { + validateRule(localOptions); + if (validateRule.errors) { + throw new Error(validateRule.errors.map( + error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n` + ).join("")); + } + } + } + + /** + * Validates a rule's options against its schema. + * @param {{create: Function}|null} rule The rule that the config is being validated for + * @param {string} ruleId The rule's unique name. + * @param {Array|number} options The given options for the rule. + * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined, + * no source is prepended to the message. + * @returns {void} + */ + validateRuleOptions(rule, ruleId, options, source = null) { + try { + const severity = this.validateRuleSeverity(options); + + if (severity !== 0) { + this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []); + } + } catch (err) { + const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`; + + if (typeof source === "string") { + throw new Error(`${source}:\n\t${enhancedMessage}`); + } else { + throw new Error(enhancedMessage); + } + } + } + + /** + * Validates an environment object + * @param {Object} environment The environment config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments. + * @returns {void} + */ + validateEnvironment( + environment, + source, + getAdditionalEnv = noop + ) { + + // not having an environment is ok + if (!environment) { + return; + } + + Object.keys(environment).forEach(id => { + const env = getAdditionalEnv(id) || environments.get(id) || null; + + if (!env) { + const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`; + + throw new Error(message); + } + }); + } + + /** + * Validates a rules config object + * @param {Object} rulesConfig The rules config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules + * @returns {void} + */ + validateRules( + rulesConfig, + source, + getAdditionalRule = noop + ) { + if (!rulesConfig) { + return; + } + + Object.keys(rulesConfig).forEach(id => { + const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null; + + this.validateRuleOptions(rule, id, rulesConfig[id], source); + }); + } + + /** + * Validates a `globals` section of a config file + * @param {Object} globalsConfig The `globals` section + * @param {string|null} source The name of the configuration source to report in the event of an error. + * @returns {void} + */ + validateGlobals(globalsConfig, source = null) { + if (!globalsConfig) { + return; + } + + Object.entries(globalsConfig) + .forEach(([configuredGlobal, configuredValue]) => { + try { + normalizeConfigGlobal(configuredValue); + } catch (err) { + throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`); + } + }); + } + + /** + * Validate `processor` configuration. + * @param {string|undefined} processorName The processor name. + * @param {string} source The name of config file. + * @param {function(id:string): Processor} getProcessor The getter of defined processors. + * @returns {void} + */ + validateProcessor(processorName, source, getProcessor) { + if (processorName && !getProcessor(processorName)) { + throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`); + } + } + + /** + * Formats an array of schema validation errors. + * @param {Array} errors An array of error messages to format. + * @returns {string} Formatted error message + */ + formatErrors(errors) { + return errors.map(error => { + if (error.keyword === "additionalProperties") { + const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty; + + return `Unexpected top-level property "${formattedPropertyPath}"`; + } + if (error.keyword === "type") { + const formattedField = error.dataPath.slice(1); + const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema; + const formattedValue = JSON.stringify(error.data); + + return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`; + } + + const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath; + + return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`; + }).map(message => `\t- ${message}.\n`).join(""); + } + + /** + * Validates the top level properties of the config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @returns {void} + */ + validateConfigSchema(config, source = null) { + validateSchema = validateSchema || ajv.compile(configSchema); + + if (!validateSchema(config)) { + throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`); + } + + if (Object.hasOwnProperty.call(config, "ecmaFeatures")) { + emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES"); + } + } + + /** + * Validates an entire config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules. + * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs. + * @returns {void} + */ + validate(config, source, getAdditionalRule, getAdditionalEnv) { + this.validateConfigSchema(config, source); + this.validateRules(config.rules, source, getAdditionalRule); + this.validateEnvironment(config.env, source, getAdditionalEnv); + this.validateGlobals(config.globals, source); + + for (const override of config.overrides || []) { + this.validateRules(override.rules, source, getAdditionalRule); + this.validateEnvironment(override.env, source, getAdditionalEnv); + this.validateGlobals(config.globals, source); + } + } + + /** + * Validate config array object. + * @param {ConfigArray} configArray The config array to validate. + * @returns {void} + */ + validateConfigArray(configArray) { + const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments); + const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors); + const getPluginRule = Map.prototype.get.bind(configArray.pluginRules); + + // Validate. + for (const element of configArray) { + if (validated.has(element)) { + continue; + } + validated.add(element); + + this.validateEnvironment(element.env, element.name, getPluginEnv); + this.validateGlobals(element.globals, element.name); + this.validateProcessor(element.processor, element.name, getPluginProcessor); + this.validateRules(element.rules, element.name, getPluginRule); + } + } + +} + +/** + * @fileoverview Common helpers for naming of plugins, formatters and configs + */ + +const NAMESPACE_REGEX = /^@.*\//iu; + +/** + * Brings package name to correct format based on prefix + * @param {string} name The name of the package. + * @param {string} prefix Can be either "eslint-plugin", "eslint-config" or "eslint-formatter" + * @returns {string} Normalized name of the package + * @private + */ +function normalizePackageName(name, prefix) { + let normalizedName = name; + + /** + * On Windows, name can come in with Windows slashes instead of Unix slashes. + * Normalize to Unix first to avoid errors later on. + * https://github.com/eslint/eslint/issues/5644 + */ + if (normalizedName.includes("\\")) { + normalizedName = normalizedName.replace(/\\/gu, "/"); + } + + if (normalizedName.charAt(0) === "@") { + + /** + * it's a scoped package + * package name is the prefix, or just a username + */ + const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"), + scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u"); + + if (scopedPackageShortcutRegex.test(normalizedName)) { + normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`); + } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) { + + /** + * for scoped packages, insert the prefix after the first / unless + * the path is already @scope/eslint or @scope/eslint-xxx-yyy + */ + normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`); + } + } else if (!normalizedName.startsWith(`${prefix}-`)) { + normalizedName = `${prefix}-${normalizedName}`; + } + + return normalizedName; +} + +/** + * Removes the prefix from a fullname. + * @param {string} fullname The term which may have the prefix. + * @param {string} prefix The prefix to remove. + * @returns {string} The term without prefix. + */ +function getShorthandName(fullname, prefix) { + if (fullname[0] === "@") { + let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname); + + if (matchResult) { + return matchResult[1]; + } + + matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname); + if (matchResult) { + return `${matchResult[1]}/${matchResult[2]}`; + } + } else if (fullname.startsWith(`${prefix}-`)) { + return fullname.slice(prefix.length + 1); + } + + return fullname; +} + +/** + * Gets the scope (namespace) of a term. + * @param {string} term The term which may have the namespace. + * @returns {string} The namespace of the term if it has one. + */ +function getNamespaceFromTerm(term) { + const match = term.match(NAMESPACE_REGEX); + + return match ? match[0] : ""; +} + +var naming = { + __proto__: null, + normalizePackageName: normalizePackageName, + getShorthandName: getShorthandName, + getNamespaceFromTerm: getNamespaceFromTerm +}; + +/** + * Utility for resolving a module relative to another module + * @author Teddy Katz + */ + +/* + * `Module.createRequire` is added in v12.2.0. It supports URL as well. + * We only support the case where the argument is a filepath, not a URL. + */ +const createRequire = Module__default["default"].createRequire; + +/** + * Resolves a Node module relative to another module + * @param {string} moduleName The name of a Node module, or a path to a Node module. + * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be + * a file rather than a directory, but the file need not actually exist. + * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath` + */ +function resolve(moduleName, relativeToPath) { + try { + return createRequire(relativeToPath).resolve(moduleName); + } catch (error) { + + // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future. + if ( + typeof error === "object" && + error !== null && + error.code === "MODULE_NOT_FOUND" && + !error.requireStack && + error.message.includes(moduleName) + ) { + error.message += `\nRequire stack:\n- ${relativeToPath}`; + } + throw error; + } +} + +var ModuleResolver = { + __proto__: null, + resolve: resolve +}; + +/** + * @fileoverview The factory of `ConfigArray` objects. + * + * This class provides methods to create `ConfigArray` instance. + * + * - `create(configData, options)` + * Create a `ConfigArray` instance from a config data. This is to handle CLI + * options except `--config`. + * - `loadFile(filePath, options)` + * Create a `ConfigArray` instance from a config file. This is to handle + * `--config` option. If the file was not found, throws the following error: + * - If the filename was `*.js`, a `MODULE_NOT_FOUND` error. + * - If the filename was `package.json`, an IO error or an + * `ESLINT_CONFIG_FIELD_NOT_FOUND` error. + * - Otherwise, an IO error such as `ENOENT`. + * - `loadInDirectory(directoryPath, options)` + * Create a `ConfigArray` instance from a config file which is on a given + * directory. This tries to load `.eslintrc.*` or `package.json`. If not + * found, returns an empty `ConfigArray`. + * - `loadESLintIgnore(filePath)` + * Create a `ConfigArray` instance from a config file that is `.eslintignore` + * format. This is to handle `--ignore-path` option. + * - `loadDefaultESLintIgnore()` + * Create a `ConfigArray` instance from `.eslintignore` or `package.json` in + * the current working directory. + * + * `ConfigArrayFactory` class has the responsibility that loads configuration + * files, including loading `extends`, `parser`, and `plugins`. The created + * `ConfigArray` instance has the loaded `extends`, `parser`, and `plugins`. + * + * But this class doesn't handle cascading. `CascadingConfigArrayFactory` class + * handles cascading and hierarchy. + * + * @author Toru Nagashima + */ + +const require$1 = Module.createRequire(require('url').pathToFileURL(__filename).toString()); + +const debug$2 = debugOrig__default["default"]("eslintrc:config-array-factory"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const configFilenames = [ + ".eslintrc.js", + ".eslintrc.cjs", + ".eslintrc.yaml", + ".eslintrc.yml", + ".eslintrc.json", + ".eslintrc", + "package.json" +]; + +// Define types for VSCode IntelliSense. +/** @typedef {import("./shared/types").ConfigData} ConfigData */ +/** @typedef {import("./shared/types").OverrideConfigData} OverrideConfigData */ +/** @typedef {import("./shared/types").Parser} Parser */ +/** @typedef {import("./shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").Rule} Rule */ +/** @typedef {import("./config-array/config-dependency").DependentParser} DependentParser */ +/** @typedef {import("./config-array/config-dependency").DependentPlugin} DependentPlugin */ +/** @typedef {ConfigArray[0]} ConfigArrayElement */ + +/** + * @typedef {Object} ConfigArrayFactoryOptions + * @property {Map} [additionalPluginPool] The map for additional plugins. + * @property {string} [cwd] The path to the current working directory. + * @property {string} [resolvePluginsRelativeTo] A path to the directory that plugins should be resolved from. Defaults to `cwd`. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** + * @typedef {Object} ConfigArrayFactoryInternalSlots + * @property {Map} additionalPluginPool The map for additional plugins. + * @property {string} cwd The path to the current working directory. + * @property {string | undefined} resolvePluginsRelativeTo An absolute path the the directory that plugins should be resolved from. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** + * @typedef {Object} ConfigArrayFactoryLoadingContext + * @property {string} filePath The path to the current configuration. + * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @property {string} name The name of the current configuration. + * @property {string} pluginBasePath The base path to resolve plugins. + * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors. + */ + +/** + * @typedef {Object} ConfigArrayFactoryLoadingContext + * @property {string} filePath The path to the current configuration. + * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @property {string} name The name of the current configuration. + * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors. + */ + +/** @type {WeakMap} */ +const internalSlotsMap$1 = new WeakMap(); + +/** @type {WeakMap} */ +const normalizedPlugins = new WeakMap(); + +/** + * Check if a given string is a file path. + * @param {string} nameOrPath A module name or file path. + * @returns {boolean} `true` if the `nameOrPath` is a file path. + */ +function isFilePath(nameOrPath) { + return ( + /^\.{1,2}[/\\]/u.test(nameOrPath) || + path__default["default"].isAbsolute(nameOrPath) + ); +} + +/** + * Convenience wrapper for synchronously reading file contents. + * @param {string} filePath The filename to read. + * @returns {string} The file contents, with the BOM removed. + * @private + */ +function readFile(filePath) { + return fs__default["default"].readFileSync(filePath, "utf8").replace(/^\ufeff/u, ""); +} + +/** + * Loads a YAML configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadYAMLConfigFile(filePath) { + debug$2(`Loading YAML config file: ${filePath}`); + + // lazy load YAML to improve performance when not used + const yaml = require$1("js-yaml"); + + try { + + // empty YAML file can be null, so always use + return yaml.load(readFile(filePath)) || {}; + } catch (e) { + debug$2(`Error reading YAML file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a JSON configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadJSONConfigFile(filePath) { + debug$2(`Loading JSON config file: ${filePath}`); + + try { + return JSON.parse(stripComments__default["default"](readFile(filePath))); + } catch (e) { + debug$2(`Error reading JSON file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + e.messageTemplate = "failed-to-read-json"; + e.messageData = { + path: filePath, + message: e.message + }; + throw e; + } +} + +/** + * Loads a legacy (.eslintrc) configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadLegacyConfigFile(filePath) { + debug$2(`Loading legacy config file: ${filePath}`); + + // lazy load YAML to improve performance when not used + const yaml = require$1("js-yaml"); + + try { + return yaml.load(stripComments__default["default"](readFile(filePath))) || /* istanbul ignore next */ {}; + } catch (e) { + debug$2("Error reading YAML file: %s\n%o", filePath, e); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a JavaScript configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadJSConfigFile(filePath) { + debug$2(`Loading JS config file: ${filePath}`); + try { + return importFresh__default["default"](filePath); + } catch (e) { + debug$2(`Error reading JavaScript file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a configuration from a package.json file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadPackageJSONConfigFile(filePath) { + debug$2(`Loading package.json config file: ${filePath}`); + try { + const packageData = loadJSONConfigFile(filePath); + + if (!Object.hasOwnProperty.call(packageData, "eslintConfig")) { + throw Object.assign( + new Error("package.json file doesn't have 'eslintConfig' field."), + { code: "ESLINT_CONFIG_FIELD_NOT_FOUND" } + ); + } + + return packageData.eslintConfig; + } catch (e) { + debug$2(`Error reading package.json file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a `.eslintignore` from a file. + * @param {string} filePath The filename to load. + * @returns {string[]} The ignore patterns from the file. + * @private + */ +function loadESLintIgnoreFile(filePath) { + debug$2(`Loading .eslintignore file: ${filePath}`); + + try { + return readFile(filePath) + .split(/\r?\n/gu) + .filter(line => line.trim() !== "" && !line.startsWith("#")); + } catch (e) { + debug$2(`Error reading .eslintignore file: ${filePath}`); + e.message = `Cannot read .eslintignore file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Creates an error to notify about a missing config to extend from. + * @param {string} configName The name of the missing config. + * @param {string} importerName The name of the config that imported the missing config + * @param {string} messageTemplate The text template to source error strings from. + * @returns {Error} The error object to throw + * @private + */ +function configInvalidError(configName, importerName, messageTemplate) { + return Object.assign( + new Error(`Failed to load config "${configName}" to extend from.`), + { + messageTemplate, + messageData: { configName, importerName } + } + ); +} + +/** + * Loads a configuration file regardless of the source. Inspects the file path + * to determine the correctly way to load the config file. + * @param {string} filePath The path to the configuration. + * @returns {ConfigData|null} The configuration information. + * @private + */ +function loadConfigFile(filePath) { + switch (path__default["default"].extname(filePath)) { + case ".js": + case ".cjs": + return loadJSConfigFile(filePath); + + case ".json": + if (path__default["default"].basename(filePath) === "package.json") { + return loadPackageJSONConfigFile(filePath); + } + return loadJSONConfigFile(filePath); + + case ".yaml": + case ".yml": + return loadYAMLConfigFile(filePath); + + default: + return loadLegacyConfigFile(filePath); + } +} + +/** + * Write debug log. + * @param {string} request The requested module name. + * @param {string} relativeTo The file path to resolve the request relative to. + * @param {string} filePath The resolved file path. + * @returns {void} + */ +function writeDebugLogForLoading(request, relativeTo, filePath) { + /* istanbul ignore next */ + if (debug$2.enabled) { + let nameAndVersion = null; + + try { + const packageJsonPath = resolve( + `${request}/package.json`, + relativeTo + ); + const { version = "unknown" } = require$1(packageJsonPath); + + nameAndVersion = `${request}@${version}`; + } catch (error) { + debug$2("package.json was not found:", error.message); + nameAndVersion = request; + } + + debug$2("Loaded: %s (%s)", nameAndVersion, filePath); + } +} + +/** + * Create a new context with default values. + * @param {ConfigArrayFactoryInternalSlots} slots The internal slots. + * @param {"config" | "ignore" | "implicit-processor" | undefined} providedType The type of the current configuration. Default is `"config"`. + * @param {string | undefined} providedName The name of the current configuration. Default is the relative path from `cwd` to `filePath`. + * @param {string | undefined} providedFilePath The path to the current configuration. Default is empty string. + * @param {string | undefined} providedMatchBasePath The type of the current configuration. Default is the directory of `filePath` or `cwd`. + * @returns {ConfigArrayFactoryLoadingContext} The created context. + */ +function createContext( + { cwd, resolvePluginsRelativeTo }, + providedType, + providedName, + providedFilePath, + providedMatchBasePath +) { + const filePath = providedFilePath + ? path__default["default"].resolve(cwd, providedFilePath) + : ""; + const matchBasePath = + (providedMatchBasePath && path__default["default"].resolve(cwd, providedMatchBasePath)) || + (filePath && path__default["default"].dirname(filePath)) || + cwd; + const name = + providedName || + (filePath && path__default["default"].relative(cwd, filePath)) || + ""; + const pluginBasePath = + resolvePluginsRelativeTo || + (filePath && path__default["default"].dirname(filePath)) || + cwd; + const type = providedType || "config"; + + return { filePath, matchBasePath, name, pluginBasePath, type }; +} + +/** + * Normalize a given plugin. + * - Ensure the object to have four properties: configs, environments, processors, and rules. + * - Ensure the object to not have other properties. + * @param {Plugin} plugin The plugin to normalize. + * @returns {Plugin} The normalized plugin. + */ +function normalizePlugin(plugin) { + + // first check the cache + let normalizedPlugin = normalizedPlugins.get(plugin); + + if (normalizedPlugin) { + return normalizedPlugin; + } + + normalizedPlugin = { + configs: plugin.configs || {}, + environments: plugin.environments || {}, + processors: plugin.processors || {}, + rules: plugin.rules || {} + }; + + // save the reference for later + normalizedPlugins.set(plugin, normalizedPlugin); + + return normalizedPlugin; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * The factory of `ConfigArray` objects. + */ +class ConfigArrayFactory { + + /** + * Initialize this instance. + * @param {ConfigArrayFactoryOptions} [options] The map for additional plugins. + */ + constructor({ + additionalPluginPool = new Map(), + cwd = process.cwd(), + resolvePluginsRelativeTo, + builtInRules, + resolver = ModuleResolver, + eslintAllPath, + getEslintAllConfig, + eslintRecommendedPath, + getEslintRecommendedConfig + } = {}) { + internalSlotsMap$1.set(this, { + additionalPluginPool, + cwd, + resolvePluginsRelativeTo: + resolvePluginsRelativeTo && + path__default["default"].resolve(cwd, resolvePluginsRelativeTo), + builtInRules, + resolver, + eslintAllPath, + getEslintAllConfig, + eslintRecommendedPath, + getEslintRecommendedConfig + }); + } + + /** + * Create `ConfigArray` instance from a config data. + * @param {ConfigData|null} configData The config data to create. + * @param {Object} [options] The options. + * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @param {string} [options.filePath] The path to this config data. + * @param {string} [options.name] The config name. + * @returns {ConfigArray} Loaded config. + */ + create(configData, { basePath, filePath, name } = {}) { + if (!configData) { + return new ConfigArray(); + } + + const slots = internalSlotsMap$1.get(this); + const ctx = createContext(slots, "config", name, filePath, basePath); + const elements = this._normalizeConfigData(configData, ctx); + + return new ConfigArray(...elements); + } + + /** + * Load a config file. + * @param {string} filePath The path to a config file. + * @param {Object} [options] The options. + * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @param {string} [options.name] The config name. + * @returns {ConfigArray} Loaded config. + */ + loadFile(filePath, { basePath, name } = {}) { + const slots = internalSlotsMap$1.get(this); + const ctx = createContext(slots, "config", name, filePath, basePath); + + return new ConfigArray(...this._loadConfigData(ctx)); + } + + /** + * Load the config file on a given directory if exists. + * @param {string} directoryPath The path to a directory. + * @param {Object} [options] The options. + * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @param {string} [options.name] The config name. + * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. + */ + loadInDirectory(directoryPath, { basePath, name } = {}) { + const slots = internalSlotsMap$1.get(this); + + for (const filename of configFilenames) { + const ctx = createContext( + slots, + "config", + name, + path__default["default"].join(directoryPath, filename), + basePath + ); + + if (fs__default["default"].existsSync(ctx.filePath) && fs__default["default"].statSync(ctx.filePath).isFile()) { + let configData; + + try { + configData = loadConfigFile(ctx.filePath); + } catch (error) { + if (!error || error.code !== "ESLINT_CONFIG_FIELD_NOT_FOUND") { + throw error; + } + } + + if (configData) { + debug$2(`Config file found: ${ctx.filePath}`); + return new ConfigArray( + ...this._normalizeConfigData(configData, ctx) + ); + } + } + } + + debug$2(`Config file not found on ${directoryPath}`); + return new ConfigArray(); + } + + /** + * Check if a config file on a given directory exists or not. + * @param {string} directoryPath The path to a directory. + * @returns {string | null} The path to the found config file. If not found then null. + */ + static getPathToConfigFileInDirectory(directoryPath) { + for (const filename of configFilenames) { + const filePath = path__default["default"].join(directoryPath, filename); + + if (fs__default["default"].existsSync(filePath)) { + if (filename === "package.json") { + try { + loadPackageJSONConfigFile(filePath); + return filePath; + } catch { /* ignore */ } + } else { + return filePath; + } + } + } + return null; + } + + /** + * Load `.eslintignore` file. + * @param {string} filePath The path to a `.eslintignore` file to load. + * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. + */ + loadESLintIgnore(filePath) { + const slots = internalSlotsMap$1.get(this); + const ctx = createContext( + slots, + "ignore", + void 0, + filePath, + slots.cwd + ); + const ignorePatterns = loadESLintIgnoreFile(ctx.filePath); + + return new ConfigArray( + ...this._normalizeESLintIgnoreData(ignorePatterns, ctx) + ); + } + + /** + * Load `.eslintignore` file in the current working directory. + * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. + */ + loadDefaultESLintIgnore() { + const slots = internalSlotsMap$1.get(this); + const eslintIgnorePath = path__default["default"].resolve(slots.cwd, ".eslintignore"); + const packageJsonPath = path__default["default"].resolve(slots.cwd, "package.json"); + + if (fs__default["default"].existsSync(eslintIgnorePath)) { + return this.loadESLintIgnore(eslintIgnorePath); + } + if (fs__default["default"].existsSync(packageJsonPath)) { + const data = loadJSONConfigFile(packageJsonPath); + + if (Object.hasOwnProperty.call(data, "eslintIgnore")) { + if (!Array.isArray(data.eslintIgnore)) { + throw new Error("Package.json eslintIgnore property requires an array of paths"); + } + const ctx = createContext( + slots, + "ignore", + "eslintIgnore in package.json", + packageJsonPath, + slots.cwd + ); + + return new ConfigArray( + ...this._normalizeESLintIgnoreData(data.eslintIgnore, ctx) + ); + } + } + + return new ConfigArray(); + } + + /** + * Load a given config file. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} Loaded config. + * @private + */ + _loadConfigData(ctx) { + return this._normalizeConfigData(loadConfigFile(ctx.filePath), ctx); + } + + /** + * Normalize a given `.eslintignore` data to config array elements. + * @param {string[]} ignorePatterns The patterns to ignore files. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + *_normalizeESLintIgnoreData(ignorePatterns, ctx) { + const elements = this._normalizeObjectConfigData( + { ignorePatterns }, + ctx + ); + + // Set `ignorePattern.loose` flag for backward compatibility. + for (const element of elements) { + if (element.ignorePattern) { + element.ignorePattern.loose = true; + } + yield element; + } + } + + /** + * Normalize a given config to an array. + * @param {ConfigData} configData The config data to normalize. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _normalizeConfigData(configData, ctx) { + const validator = new ConfigValidator(); + + validator.validateConfigSchema(configData, ctx.name || ctx.filePath); + return this._normalizeObjectConfigData(configData, ctx); + } + + /** + * Normalize a given config to an array. + * @param {ConfigData|OverrideConfigData} configData The config data to normalize. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + *_normalizeObjectConfigData(configData, ctx) { + const { files, excludedFiles, ...configBody } = configData; + const criteria = OverrideTester.create( + files, + excludedFiles, + ctx.matchBasePath + ); + const elements = this._normalizeObjectConfigDataBody(configBody, ctx); + + // Apply the criteria to every element. + for (const element of elements) { + + /* + * Merge the criteria. + * This is for the `overrides` entries that came from the + * configurations of `overrides[].extends`. + */ + element.criteria = OverrideTester.and(criteria, element.criteria); + + /* + * Remove `root` property to ignore `root` settings which came from + * `extends` in `overrides`. + */ + if (element.criteria) { + element.root = void 0; + } + + yield element; + } + } + + /** + * Normalize a given config to an array. + * @param {ConfigData} configData The config data to normalize. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + *_normalizeObjectConfigDataBody( + { + env, + extends: extend, + globals, + ignorePatterns, + noInlineConfig, + parser: parserName, + parserOptions, + plugins: pluginList, + processor, + reportUnusedDisableDirectives, + root, + rules, + settings, + overrides: overrideList = [] + }, + ctx + ) { + const extendList = Array.isArray(extend) ? extend : [extend]; + const ignorePattern = ignorePatterns && new IgnorePattern( + Array.isArray(ignorePatterns) ? ignorePatterns : [ignorePatterns], + ctx.matchBasePath + ); + + // Flatten `extends`. + for (const extendName of extendList.filter(Boolean)) { + yield* this._loadExtends(extendName, ctx); + } + + // Load parser & plugins. + const parser = parserName && this._loadParser(parserName, ctx); + const plugins = pluginList && this._loadPlugins(pluginList, ctx); + + // Yield pseudo config data for file extension processors. + if (plugins) { + yield* this._takeFileExtensionProcessors(plugins, ctx); + } + + // Yield the config data except `extends` and `overrides`. + yield { + + // Debug information. + type: ctx.type, + name: ctx.name, + filePath: ctx.filePath, + + // Config data. + criteria: null, + env, + globals, + ignorePattern, + noInlineConfig, + parser, + parserOptions, + plugins, + processor, + reportUnusedDisableDirectives, + root, + rules, + settings + }; + + // Flatten `overries`. + for (let i = 0; i < overrideList.length; ++i) { + yield* this._normalizeObjectConfigData( + overrideList[i], + { ...ctx, name: `${ctx.name}#overrides[${i}]` } + ); + } + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtends(extendName, ctx) { + debug$2("Loading {extends:%j} relative to %s", extendName, ctx.filePath); + try { + if (extendName.startsWith("eslint:")) { + return this._loadExtendedBuiltInConfig(extendName, ctx); + } + if (extendName.startsWith("plugin:")) { + return this._loadExtendedPluginConfig(extendName, ctx); + } + return this._loadExtendedShareableConfig(extendName, ctx); + } catch (error) { + error.message += `\nReferenced from: ${ctx.filePath || ctx.name}`; + throw error; + } + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtendedBuiltInConfig(extendName, ctx) { + const { + eslintAllPath, + getEslintAllConfig, + eslintRecommendedPath, + getEslintRecommendedConfig + } = internalSlotsMap$1.get(this); + + if (extendName === "eslint:recommended") { + const name = `${ctx.name} » ${extendName}`; + + if (getEslintRecommendedConfig) { + if (typeof getEslintRecommendedConfig !== "function") { + throw new Error(`getEslintRecommendedConfig must be a function instead of '${getEslintRecommendedConfig}'`); + } + return this._normalizeConfigData(getEslintRecommendedConfig(), { ...ctx, name, filePath: "" }); + } + return this._loadConfigData({ + ...ctx, + name, + filePath: eslintRecommendedPath + }); + } + if (extendName === "eslint:all") { + const name = `${ctx.name} » ${extendName}`; + + if (getEslintAllConfig) { + if (typeof getEslintAllConfig !== "function") { + throw new Error(`getEslintAllConfig must be a function instead of '${getEslintAllConfig}'`); + } + return this._normalizeConfigData(getEslintAllConfig(), { ...ctx, name, filePath: "" }); + } + return this._loadConfigData({ + ...ctx, + name, + filePath: eslintAllPath + }); + } + + throw configInvalidError(extendName, ctx.name, "extend-config-missing"); + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtendedPluginConfig(extendName, ctx) { + const slashIndex = extendName.lastIndexOf("/"); + + if (slashIndex === -1) { + throw configInvalidError(extendName, ctx.filePath, "plugin-invalid"); + } + + const pluginName = extendName.slice("plugin:".length, slashIndex); + const configName = extendName.slice(slashIndex + 1); + + if (isFilePath(pluginName)) { + throw new Error("'extends' cannot use a file path for plugins."); + } + + const plugin = this._loadPlugin(pluginName, ctx); + const configData = + plugin.definition && + plugin.definition.configs[configName]; + + if (configData) { + return this._normalizeConfigData(configData, { + ...ctx, + filePath: plugin.filePath || ctx.filePath, + name: `${ctx.name} » plugin:${plugin.id}/${configName}` + }); + } + + throw plugin.error || configInvalidError(extendName, ctx.filePath, "extend-config-missing"); + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtendedShareableConfig(extendName, ctx) { + const { cwd, resolver } = internalSlotsMap$1.get(this); + const relativeTo = ctx.filePath || path__default["default"].join(cwd, "__placeholder__.js"); + let request; + + if (isFilePath(extendName)) { + request = extendName; + } else if (extendName.startsWith(".")) { + request = `./${extendName}`; // For backward compatibility. A ton of tests depended on this behavior. + } else { + request = normalizePackageName( + extendName, + "eslint-config" + ); + } + + let filePath; + + try { + filePath = resolver.resolve(request, relativeTo); + } catch (error) { + /* istanbul ignore else */ + if (error && error.code === "MODULE_NOT_FOUND") { + throw configInvalidError(extendName, ctx.filePath, "extend-config-missing"); + } + throw error; + } + + writeDebugLogForLoading(request, relativeTo, filePath); + return this._loadConfigData({ + ...ctx, + filePath, + name: `${ctx.name} » ${request}` + }); + } + + /** + * Load given plugins. + * @param {string[]} names The plugin names to load. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {Record} The loaded parser. + * @private + */ + _loadPlugins(names, ctx) { + return names.reduce((map, name) => { + if (isFilePath(name)) { + throw new Error("Plugins array cannot includes file paths."); + } + const plugin = this._loadPlugin(name, ctx); + + map[plugin.id] = plugin; + + return map; + }, {}); + } + + /** + * Load a given parser. + * @param {string} nameOrPath The package name or the path to a parser file. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {DependentParser} The loaded parser. + */ + _loadParser(nameOrPath, ctx) { + debug$2("Loading parser %j from %s", nameOrPath, ctx.filePath); + + const { cwd, resolver } = internalSlotsMap$1.get(this); + const relativeTo = ctx.filePath || path__default["default"].join(cwd, "__placeholder__.js"); + + try { + const filePath = resolver.resolve(nameOrPath, relativeTo); + + writeDebugLogForLoading(nameOrPath, relativeTo, filePath); + + return new ConfigDependency({ + definition: require$1(filePath), + filePath, + id: nameOrPath, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } catch (error) { + + // If the parser name is "espree", load the espree of ESLint. + if (nameOrPath === "espree") { + debug$2("Fallback espree."); + return new ConfigDependency({ + definition: require$1("espree"), + filePath: require$1.resolve("espree"), + id: nameOrPath, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + debug$2("Failed to load parser '%s' declared in '%s'.", nameOrPath, ctx.name); + error.message = `Failed to load parser '${nameOrPath}' declared in '${ctx.name}': ${error.message}`; + + return new ConfigDependency({ + error, + id: nameOrPath, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + } + + /** + * Load a given plugin. + * @param {string} name The plugin name to load. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {DependentPlugin} The loaded plugin. + * @private + */ + _loadPlugin(name, ctx) { + debug$2("Loading plugin %j from %s", name, ctx.filePath); + + const { additionalPluginPool, resolver } = internalSlotsMap$1.get(this); + const request = normalizePackageName(name, "eslint-plugin"); + const id = getShorthandName(request, "eslint-plugin"); + const relativeTo = path__default["default"].join(ctx.pluginBasePath, "__placeholder__.js"); + + if (name.match(/\s+/u)) { + const error = Object.assign( + new Error(`Whitespace found in plugin name '${name}'`), + { + messageTemplate: "whitespace-found", + messageData: { pluginName: request } + } + ); + + return new ConfigDependency({ + error, + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + // Check for additional pool. + const plugin = + additionalPluginPool.get(request) || + additionalPluginPool.get(id); + + if (plugin) { + return new ConfigDependency({ + definition: normalizePlugin(plugin), + filePath: "", // It's unknown where the plugin came from. + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + let filePath; + let error; + + try { + filePath = resolver.resolve(request, relativeTo); + } catch (resolveError) { + error = resolveError; + /* istanbul ignore else */ + if (error && error.code === "MODULE_NOT_FOUND") { + error.messageTemplate = "plugin-missing"; + error.messageData = { + pluginName: request, + resolvePluginsRelativeTo: ctx.pluginBasePath, + importerName: ctx.name + }; + } + } + + if (filePath) { + try { + writeDebugLogForLoading(request, relativeTo, filePath); + + const startTime = Date.now(); + const pluginDefinition = require$1(filePath); + + debug$2(`Plugin ${filePath} loaded in: ${Date.now() - startTime}ms`); + + return new ConfigDependency({ + definition: normalizePlugin(pluginDefinition), + filePath, + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } catch (loadError) { + error = loadError; + } + } + + debug$2("Failed to load plugin '%s' declared in '%s'.", name, ctx.name); + error.message = `Failed to load plugin '${name}' declared in '${ctx.name}': ${error.message}`; + return new ConfigDependency({ + error, + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + /** + * Take file expression processors as config array elements. + * @param {Record} plugins The plugin definitions. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The config array elements of file expression processors. + * @private + */ + *_takeFileExtensionProcessors(plugins, ctx) { + for (const pluginId of Object.keys(plugins)) { + const processors = + plugins[pluginId] && + plugins[pluginId].definition && + plugins[pluginId].definition.processors; + + if (!processors) { + continue; + } + + for (const processorId of Object.keys(processors)) { + if (processorId.startsWith(".")) { + yield* this._normalizeObjectConfigData( + { + files: [`*${processorId}`], + processor: `${pluginId}/${processorId}` + }, + { + ...ctx, + type: "implicit-processor", + name: `${ctx.name}#processors["${pluginId}/${processorId}"]` + } + ); + } + } + } + } +} + +/** + * @fileoverview `CascadingConfigArrayFactory` class. + * + * `CascadingConfigArrayFactory` class has a responsibility: + * + * 1. Handles cascading of config files. + * + * It provides two methods: + * + * - `getConfigArrayForFile(filePath)` + * Get the corresponded configuration of a given file. This method doesn't + * throw even if the given file didn't exist. + * - `clearCache()` + * Clear the internal cache. You have to call this method when + * `additionalPluginPool` was updated if `baseConfig` or `cliConfig` depends + * on the additional plugins. (`CLIEngine#addPlugin()` method calls this.) + * + * @author Toru Nagashima + */ + +const debug$1 = debugOrig__default["default"]("eslintrc:cascading-config-array-factory"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +// Define types for VSCode IntelliSense. +/** @typedef {import("./shared/types").ConfigData} ConfigData */ +/** @typedef {import("./shared/types").Parser} Parser */ +/** @typedef {import("./shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").Rule} Rule */ +/** @typedef {ReturnType} ConfigArray */ + +/** + * @typedef {Object} CascadingConfigArrayFactoryOptions + * @property {Map} [additionalPluginPool] The map for additional plugins. + * @property {ConfigData} [baseConfig] The config by `baseConfig` option. + * @property {ConfigData} [cliConfig] The config by CLI options (`--env`, `--global`, `--ignore-pattern`, `--parser`, `--parser-options`, `--plugin`, and `--rule`). CLI options overwrite the setting in config files. + * @property {string} [cwd] The base directory to start lookup. + * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`. + * @property {string[]} [rulePaths] The value of `--rulesdir` option. + * @property {string} [specificConfigPath] The value of `--config` option. + * @property {boolean} [useEslintrc] if `false` then it doesn't load config files. + * @property {Function} loadRules The function to use to load rules. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** + * @typedef {Object} CascadingConfigArrayFactoryInternalSlots + * @property {ConfigArray} baseConfigArray The config array of `baseConfig` option. + * @property {ConfigData} baseConfigData The config data of `baseConfig` option. This is used to reset `baseConfigArray`. + * @property {ConfigArray} cliConfigArray The config array of CLI options. + * @property {ConfigData} cliConfigData The config data of CLI options. This is used to reset `cliConfigArray`. + * @property {ConfigArrayFactory} configArrayFactory The factory for config arrays. + * @property {Map} configCache The cache from directory paths to config arrays. + * @property {string} cwd The base directory to start lookup. + * @property {WeakMap} finalizeCache The cache from config arrays to finalized config arrays. + * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`. + * @property {string[]|null} rulePaths The value of `--rulesdir` option. This is used to reset `baseConfigArray`. + * @property {string|null} specificConfigPath The value of `--config` option. This is used to reset `cliConfigArray`. + * @property {boolean} useEslintrc if `false` then it doesn't load config files. + * @property {Function} loadRules The function to use to load rules. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** @type {WeakMap} */ +const internalSlotsMap = new WeakMap(); + +/** + * Create the config array from `baseConfig` and `rulePaths`. + * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots. + * @returns {ConfigArray} The config array of the base configs. + */ +function createBaseConfigArray({ + configArrayFactory, + baseConfigData, + rulePaths, + cwd, + loadRules +}) { + const baseConfigArray = configArrayFactory.create( + baseConfigData, + { name: "BaseConfig" } + ); + + /* + * Create the config array element for the default ignore patterns. + * This element has `ignorePattern` property that ignores the default + * patterns in the current working directory. + */ + baseConfigArray.unshift(configArrayFactory.create( + { ignorePatterns: IgnorePattern.DefaultPatterns }, + { name: "DefaultIgnorePattern" } + )[0]); + + /* + * Load rules `--rulesdir` option as a pseudo plugin. + * Use a pseudo plugin to define rules of `--rulesdir`, so we can validate + * the rule's options with only information in the config array. + */ + if (rulePaths && rulePaths.length > 0) { + baseConfigArray.push({ + type: "config", + name: "--rulesdir", + filePath: "", + plugins: { + "": new ConfigDependency({ + definition: { + rules: rulePaths.reduce( + (map, rulesPath) => Object.assign( + map, + loadRules(rulesPath, cwd) + ), + {} + ) + }, + filePath: "", + id: "", + importerName: "--rulesdir", + importerPath: "" + }) + } + }); + } + + return baseConfigArray; +} + +/** + * Create the config array from CLI options. + * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots. + * @returns {ConfigArray} The config array of the base configs. + */ +function createCLIConfigArray({ + cliConfigData, + configArrayFactory, + cwd, + ignorePath, + specificConfigPath +}) { + const cliConfigArray = configArrayFactory.create( + cliConfigData, + { name: "CLIOptions" } + ); + + cliConfigArray.unshift( + ...(ignorePath + ? configArrayFactory.loadESLintIgnore(ignorePath) + : configArrayFactory.loadDefaultESLintIgnore()) + ); + + if (specificConfigPath) { + cliConfigArray.unshift( + ...configArrayFactory.loadFile( + specificConfigPath, + { name: "--config", basePath: cwd } + ) + ); + } + + return cliConfigArray; +} + +/** + * The error type when there are files matched by a glob, but all of them have been ignored. + */ +class ConfigurationNotFoundError extends Error { + + // eslint-disable-next-line jsdoc/require-description + /** + * @param {string} directoryPath The directory path. + */ + constructor(directoryPath) { + super(`No ESLint configuration found in ${directoryPath}.`); + this.messageTemplate = "no-config-found"; + this.messageData = { directoryPath }; + } +} + +/** + * This class provides the functionality that enumerates every file which is + * matched by given glob patterns and that configuration. + */ +class CascadingConfigArrayFactory { + + /** + * Initialize this enumerator. + * @param {CascadingConfigArrayFactoryOptions} options The options. + */ + constructor({ + additionalPluginPool = new Map(), + baseConfig: baseConfigData = null, + cliConfig: cliConfigData = null, + cwd = process.cwd(), + ignorePath, + resolvePluginsRelativeTo, + rulePaths = [], + specificConfigPath = null, + useEslintrc = true, + builtInRules = new Map(), + loadRules, + resolver, + eslintRecommendedPath, + getEslintRecommendedConfig, + eslintAllPath, + getEslintAllConfig + } = {}) { + const configArrayFactory = new ConfigArrayFactory({ + additionalPluginPool, + cwd, + resolvePluginsRelativeTo, + builtInRules, + resolver, + eslintRecommendedPath, + getEslintRecommendedConfig, + eslintAllPath, + getEslintAllConfig + }); + + internalSlotsMap.set(this, { + baseConfigArray: createBaseConfigArray({ + baseConfigData, + configArrayFactory, + cwd, + rulePaths, + loadRules, + resolver + }), + baseConfigData, + cliConfigArray: createCLIConfigArray({ + cliConfigData, + configArrayFactory, + cwd, + ignorePath, + specificConfigPath + }), + cliConfigData, + configArrayFactory, + configCache: new Map(), + cwd, + finalizeCache: new WeakMap(), + ignorePath, + rulePaths, + specificConfigPath, + useEslintrc, + builtInRules, + loadRules + }); + } + + /** + * The path to the current working directory. + * This is used by tests. + * @type {string} + */ + get cwd() { + const { cwd } = internalSlotsMap.get(this); + + return cwd; + } + + /** + * Get the config array of a given file. + * If `filePath` was not given, it returns the config which contains only + * `baseConfigData` and `cliConfigData`. + * @param {string} [filePath] The file path to a file. + * @param {Object} [options] The options. + * @param {boolean} [options.ignoreNotFoundError] If `true` then it doesn't throw `ConfigurationNotFoundError`. + * @returns {ConfigArray} The config array of the file. + */ + getConfigArrayForFile(filePath, { ignoreNotFoundError = false } = {}) { + const { + baseConfigArray, + cliConfigArray, + cwd + } = internalSlotsMap.get(this); + + if (!filePath) { + return new ConfigArray(...baseConfigArray, ...cliConfigArray); + } + + const directoryPath = path__default["default"].dirname(path__default["default"].resolve(cwd, filePath)); + + debug$1(`Load config files for ${directoryPath}.`); + + return this._finalizeConfigArray( + this._loadConfigInAncestors(directoryPath), + directoryPath, + ignoreNotFoundError + ); + } + + /** + * Set the config data to override all configs. + * Require to call `clearCache()` method after this method is called. + * @param {ConfigData} configData The config data to override all configs. + * @returns {void} + */ + setOverrideConfig(configData) { + const slots = internalSlotsMap.get(this); + + slots.cliConfigData = configData; + } + + /** + * Clear config cache. + * @returns {void} + */ + clearCache() { + const slots = internalSlotsMap.get(this); + + slots.baseConfigArray = createBaseConfigArray(slots); + slots.cliConfigArray = createCLIConfigArray(slots); + slots.configCache.clear(); + } + + /** + * Load and normalize config files from the ancestor directories. + * @param {string} directoryPath The path to a leaf directory. + * @param {boolean} configsExistInSubdirs `true` if configurations exist in subdirectories. + * @returns {ConfigArray} The loaded config. + * @private + */ + _loadConfigInAncestors(directoryPath, configsExistInSubdirs = false) { + const { + baseConfigArray, + configArrayFactory, + configCache, + cwd, + useEslintrc + } = internalSlotsMap.get(this); + + if (!useEslintrc) { + return baseConfigArray; + } + + let configArray = configCache.get(directoryPath); + + // Hit cache. + if (configArray) { + debug$1(`Cache hit: ${directoryPath}.`); + return configArray; + } + debug$1(`No cache found: ${directoryPath}.`); + + const homePath = os__default["default"].homedir(); + + // Consider this is root. + if (directoryPath === homePath && cwd !== homePath) { + debug$1("Stop traversing because of considered root."); + if (configsExistInSubdirs) { + const filePath = ConfigArrayFactory.getPathToConfigFileInDirectory(directoryPath); + + if (filePath) { + emitDeprecationWarning( + filePath, + "ESLINT_PERSONAL_CONFIG_SUPPRESS" + ); + } + } + return this._cacheConfig(directoryPath, baseConfigArray); + } + + // Load the config on this directory. + try { + configArray = configArrayFactory.loadInDirectory(directoryPath); + } catch (error) { + /* istanbul ignore next */ + if (error.code === "EACCES") { + debug$1("Stop traversing because of 'EACCES' error."); + return this._cacheConfig(directoryPath, baseConfigArray); + } + throw error; + } + + if (configArray.length > 0 && configArray.isRoot()) { + debug$1("Stop traversing because of 'root:true'."); + configArray.unshift(...baseConfigArray); + return this._cacheConfig(directoryPath, configArray); + } + + // Load from the ancestors and merge it. + const parentPath = path__default["default"].dirname(directoryPath); + const parentConfigArray = parentPath && parentPath !== directoryPath + ? this._loadConfigInAncestors( + parentPath, + configsExistInSubdirs || configArray.length > 0 + ) + : baseConfigArray; + + if (configArray.length > 0) { + configArray.unshift(...parentConfigArray); + } else { + configArray = parentConfigArray; + } + + // Cache and return. + return this._cacheConfig(directoryPath, configArray); + } + + /** + * Freeze and cache a given config. + * @param {string} directoryPath The path to a directory as a cache key. + * @param {ConfigArray} configArray The config array as a cache value. + * @returns {ConfigArray} The `configArray` (frozen). + */ + _cacheConfig(directoryPath, configArray) { + const { configCache } = internalSlotsMap.get(this); + + Object.freeze(configArray); + configCache.set(directoryPath, configArray); + + return configArray; + } + + /** + * Finalize a given config array. + * Concatenate `--config` and other CLI options. + * @param {ConfigArray} configArray The parent config array. + * @param {string} directoryPath The path to the leaf directory to find config files. + * @param {boolean} ignoreNotFoundError If `true` then it doesn't throw `ConfigurationNotFoundError`. + * @returns {ConfigArray} The loaded config. + * @private + */ + _finalizeConfigArray(configArray, directoryPath, ignoreNotFoundError) { + const { + cliConfigArray, + configArrayFactory, + finalizeCache, + useEslintrc, + builtInRules + } = internalSlotsMap.get(this); + + let finalConfigArray = finalizeCache.get(configArray); + + if (!finalConfigArray) { + finalConfigArray = configArray; + + // Load the personal config if there are no regular config files. + if ( + useEslintrc && + configArray.every(c => !c.filePath) && + cliConfigArray.every(c => !c.filePath) // `--config` option can be a file. + ) { + const homePath = os__default["default"].homedir(); + + debug$1("Loading the config file of the home directory:", homePath); + + const personalConfigArray = configArrayFactory.loadInDirectory( + homePath, + { name: "PersonalConfig" } + ); + + if ( + personalConfigArray.length > 0 && + !directoryPath.startsWith(homePath) + ) { + const lastElement = + personalConfigArray[personalConfigArray.length - 1]; + + emitDeprecationWarning( + lastElement.filePath, + "ESLINT_PERSONAL_CONFIG_LOAD" + ); + } + + finalConfigArray = finalConfigArray.concat(personalConfigArray); + } + + // Apply CLI options. + if (cliConfigArray.length > 0) { + finalConfigArray = finalConfigArray.concat(cliConfigArray); + } + + // Validate rule settings and environments. + const validator = new ConfigValidator({ + builtInRules + }); + + validator.validateConfigArray(finalConfigArray); + + // Cache it. + Object.freeze(finalConfigArray); + finalizeCache.set(configArray, finalConfigArray); + + debug$1( + "Configuration was determined: %o on %s", + finalConfigArray, + directoryPath + ); + } + + // At least one element (the default ignore patterns) exists. + if (!ignoreNotFoundError && useEslintrc && finalConfigArray.length <= 1) { + throw new ConfigurationNotFoundError(directoryPath); + } + + return finalConfigArray; + } +} + +/** + * @fileoverview Compatibility class for flat config. + * @author Nicholas C. Zakas + */ + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/** @typedef {import("../../shared/types").Environment} Environment */ +/** @typedef {import("../../shared/types").Processor} Processor */ + +const debug = debugOrig__default["default"]("eslintrc:flat-compat"); +const cafactory = Symbol("cafactory"); + +/** + * Translates an ESLintRC-style config object into a flag-config-style config + * object. + * @param {Object} eslintrcConfig An ESLintRC-style config object. + * @param {Object} options Options to help translate the config. + * @param {string} options.resolveConfigRelativeTo To the directory to resolve + * configs from. + * @param {string} options.resolvePluginsRelativeTo The directory to resolve + * plugins from. + * @param {ReadOnlyMap} options.pluginEnvironments A map of plugin environment + * names to objects. + * @param {ReadOnlyMap} options.pluginProcessors A map of plugin processor + * names to objects. + * @returns {Object} A flag-config-style config object. + */ +function translateESLintRC(eslintrcConfig, { + resolveConfigRelativeTo, + resolvePluginsRelativeTo, + pluginEnvironments, + pluginProcessors +}) { + + const flatConfig = {}; + const configs = []; + const languageOptions = {}; + const linterOptions = {}; + const keysToCopy = ["settings", "rules", "processor"]; + const languageOptionsKeysToCopy = ["globals", "parser", "parserOptions"]; + const linterOptionsKeysToCopy = ["noInlineConfig", "reportUnusedDisableDirectives"]; + + // check for special settings for eslint:all and eslint:recommended: + if (eslintrcConfig.settings) { + if (eslintrcConfig.settings["eslint:all"] === true) { + return ["eslint:all"]; + } + + if (eslintrcConfig.settings["eslint:recommended"] === true) { + return ["eslint:recommended"]; + } + } + + // copy over simple translations + for (const key of keysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + flatConfig[key] = eslintrcConfig[key]; + } + } + + // copy over languageOptions + for (const key of languageOptionsKeysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + + // create the languageOptions key in the flat config + flatConfig.languageOptions = languageOptions; + + if (key === "parser") { + debug(`Resolving parser '${languageOptions[key]}' relative to ${resolveConfigRelativeTo}`); + + if (eslintrcConfig[key].error) { + throw eslintrcConfig[key].error; + } + + languageOptions[key] = eslintrcConfig[key].definition; + continue; + } + + // clone any object values that are in the eslintrc config + if (eslintrcConfig[key] && typeof eslintrcConfig[key] === "object") { + languageOptions[key] = { + ...eslintrcConfig[key] + }; + } else { + languageOptions[key] = eslintrcConfig[key]; + } + } + } + + // copy over linterOptions + for (const key of linterOptionsKeysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + flatConfig.linterOptions = linterOptions; + linterOptions[key] = eslintrcConfig[key]; + } + } + + // move ecmaVersion a level up + if (languageOptions.parserOptions) { + + if ("ecmaVersion" in languageOptions.parserOptions) { + languageOptions.ecmaVersion = languageOptions.parserOptions.ecmaVersion; + delete languageOptions.parserOptions.ecmaVersion; + } + + if ("sourceType" in languageOptions.parserOptions) { + languageOptions.sourceType = languageOptions.parserOptions.sourceType; + delete languageOptions.parserOptions.sourceType; + } + + // check to see if we even need parserOptions anymore and remove it if not + if (Object.keys(languageOptions.parserOptions).length === 0) { + delete languageOptions.parserOptions; + } + } + + // overrides + if (eslintrcConfig.criteria) { + flatConfig.files = [absoluteFilePath => eslintrcConfig.criteria.test(absoluteFilePath)]; + } + + // translate plugins + if (eslintrcConfig.plugins && typeof eslintrcConfig.plugins === "object") { + debug(`Translating plugins: ${eslintrcConfig.plugins}`); + + flatConfig.plugins = {}; + + for (const pluginName of Object.keys(eslintrcConfig.plugins)) { + + debug(`Translating plugin: ${pluginName}`); + debug(`Resolving plugin '${pluginName} relative to ${resolvePluginsRelativeTo}`); + + const { definition: plugin, error } = eslintrcConfig.plugins[pluginName]; + + if (error) { + throw error; + } + + flatConfig.plugins[pluginName] = plugin; + + // create a config for any processors + if (plugin.processors) { + for (const processorName of Object.keys(plugin.processors)) { + if (processorName.startsWith(".")) { + debug(`Assigning processor: ${pluginName}/${processorName}`); + + configs.unshift({ + files: [`**/*${processorName}`], + processor: pluginProcessors.get(`${pluginName}/${processorName}`) + }); + } + + } + } + } + } + + // translate env - must come after plugins + if (eslintrcConfig.env && typeof eslintrcConfig.env === "object") { + for (const envName of Object.keys(eslintrcConfig.env)) { + + // only add environments that are true + if (eslintrcConfig.env[envName]) { + debug(`Translating environment: ${envName}`); + + if (environments.has(envName)) { + + // built-in environments should be defined first + configs.unshift(...translateESLintRC(environments.get(envName), { + resolveConfigRelativeTo, + resolvePluginsRelativeTo + })); + } else if (pluginEnvironments.has(envName)) { + + // if the environment comes from a plugin, it should come after the plugin config + configs.push(...translateESLintRC(pluginEnvironments.get(envName), { + resolveConfigRelativeTo, + resolvePluginsRelativeTo + })); + } + } + } + } + + // only add if there are actually keys in the config + if (Object.keys(flatConfig).length > 0) { + configs.push(flatConfig); + } + + return configs; +} + + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * A compatibility class for working with configs. + */ +class FlatCompat { + + constructor({ + baseDirectory = process.cwd(), + resolvePluginsRelativeTo = baseDirectory + } = {}) { + this.baseDirectory = baseDirectory; + this.resolvePluginsRelativeTo = resolvePluginsRelativeTo; + this[cafactory] = new ConfigArrayFactory({ + cwd: baseDirectory, + resolvePluginsRelativeTo, + getEslintAllConfig: () => ({ settings: { "eslint:all": true } }), + getEslintRecommendedConfig: () => ({ settings: { "eslint:recommended": true } }) + }); + } + + /** + * Translates an ESLintRC-style config into a flag-config-style config. + * @param {Object} eslintrcConfig The ESLintRC-style config object. + * @returns {Object} A flag-config-style config object. + */ + config(eslintrcConfig) { + const eslintrcArray = this[cafactory].create(eslintrcConfig, { + basePath: this.baseDirectory + }); + + const flatArray = []; + let hasIgnorePatterns = false; + + eslintrcArray.forEach(configData => { + if (configData.type === "config") { + hasIgnorePatterns = hasIgnorePatterns || configData.ignorePattern; + flatArray.push(...translateESLintRC(configData, { + resolveConfigRelativeTo: path__default["default"].join(this.baseDirectory, "__placeholder.js"), + resolvePluginsRelativeTo: path__default["default"].join(this.resolvePluginsRelativeTo, "__placeholder.js"), + pluginEnvironments: eslintrcArray.pluginEnvironments, + pluginProcessors: eslintrcArray.pluginProcessors + })); + } + }); + + // combine ignorePatterns to emulate ESLintRC behavior better + if (hasIgnorePatterns) { + flatArray.unshift({ + ignores: [filePath => { + + // Compute the final config for this file. + // This filters config array elements by `files`/`excludedFiles` then merges the elements. + const finalConfig = eslintrcArray.extractConfig(filePath); + + // Test the `ignorePattern` properties of the final config. + return Boolean(finalConfig.ignores) && finalConfig.ignores(filePath); + }] + }); + } + + return flatArray; + } + + /** + * Translates the `env` section of an ESLintRC-style config. + * @param {Object} envConfig The `env` section of an ESLintRC config. + * @returns {Object} A flag-config object representing the environments. + */ + env(envConfig) { + return this.config({ + env: envConfig + }); + } + + /** + * Translates the `extends` section of an ESLintRC-style config. + * @param {...string} configsToExtend The names of the configs to load. + * @returns {Object} A flag-config object representing the config. + */ + extends(...configsToExtend) { + return this.config({ + extends: configsToExtend + }); + } + + /** + * Translates the `plugins` section of an ESLintRC-style config. + * @param {...string} plugins The names of the plugins to load. + * @returns {Object} A flag-config object representing the plugins. + */ + plugins(...plugins) { + return this.config({ + plugins + }); + } +} + +/** + * @fileoverview Package exports for @eslint/eslintrc + * @author Nicholas C. Zakas + */ + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +const Legacy = { + ConfigArray, + createConfigArrayFactoryContext: createContext, + CascadingConfigArrayFactory, + ConfigArrayFactory, + ConfigDependency, + ExtractedConfig, + IgnorePattern, + OverrideTester, + getUsedExtractedConfigs, + environments, + + // shared + ConfigOps, + ConfigValidator, + ModuleResolver, + naming +}; + +exports.FlatCompat = FlatCompat; +exports.Legacy = Legacy; +//# sourceMappingURL=eslintrc.cjs.map diff --git a/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map b/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map new file mode 100644 index 0000000..947c25e --- /dev/null +++ b/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"eslintrc.cjs","sources":["../lib/config-array/ignore-pattern.js","../lib/config-array/extracted-config.js","../lib/config-array/config-array.js","../lib/config-array/config-dependency.js","../lib/config-array/override-tester.js","../lib/config-array/index.js","../lib/shared/config-ops.js","../lib/shared/deprecation-warnings.js","../lib/shared/ajv.js","../conf/config-schema.js","../conf/environments.js","../lib/shared/config-validator.js","../lib/shared/naming.js","../lib/shared/relative-module-resolver.js","../lib/config-array-factory.js","../lib/cascading-config-array-factory.js","../lib/flat-compat.js","../lib/index.js"],"sourcesContent":["/**\n * @fileoverview `IgnorePattern` class.\n *\n * `IgnorePattern` class has the set of glob patterns and the base path.\n *\n * It provides two static methods.\n *\n * - `IgnorePattern.createDefaultIgnore(cwd)`\n * Create the default predicate function.\n * - `IgnorePattern.createIgnore(ignorePatterns)`\n * Create the predicate function from multiple `IgnorePattern` objects.\n *\n * It provides two properties and a method.\n *\n * - `patterns`\n * The glob patterns that ignore to lint.\n * - `basePath`\n * The base path of the glob patterns. If absolute paths existed in the\n * glob patterns, those are handled as relative paths to the base path.\n * - `getPatternsRelativeTo(basePath)`\n * Get `patterns` as modified for a given base path. It modifies the\n * absolute paths in the patterns as prepending the difference of two base\n * paths.\n *\n * `ConfigArrayFactory` creates `IgnorePattern` objects when it processes\n * `ignorePatterns` properties.\n *\n * @author Toru Nagashima \n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport assert from \"assert\";\nimport path from \"path\";\nimport ignore from \"ignore\";\nimport debugOrig from \"debug\";\n\nconst debug = debugOrig(\"eslintrc:ignore-pattern\");\n\n/** @typedef {ReturnType} Ignore */\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\n/**\n * Get the path to the common ancestor directory of given paths.\n * @param {string[]} sourcePaths The paths to calculate the common ancestor.\n * @returns {string} The path to the common ancestor directory.\n */\nfunction getCommonAncestorPath(sourcePaths) {\n let result = sourcePaths[0];\n\n for (let i = 1; i < sourcePaths.length; ++i) {\n const a = result;\n const b = sourcePaths[i];\n\n // Set the shorter one (it's the common ancestor if one includes the other).\n result = a.length < b.length ? a : b;\n\n // Set the common ancestor.\n for (let j = 0, lastSepPos = 0; j < a.length && j < b.length; ++j) {\n if (a[j] !== b[j]) {\n result = a.slice(0, lastSepPos);\n break;\n }\n if (a[j] === path.sep) {\n lastSepPos = j;\n }\n }\n }\n\n let resolvedResult = result || path.sep;\n\n // if Windows common ancestor is root of drive must have trailing slash to be absolute.\n if (resolvedResult && resolvedResult.endsWith(\":\") && process.platform === \"win32\") {\n resolvedResult += path.sep;\n }\n return resolvedResult;\n}\n\n/**\n * Make relative path.\n * @param {string} from The source path to get relative path.\n * @param {string} to The destination path to get relative path.\n * @returns {string} The relative path.\n */\nfunction relative(from, to) {\n const relPath = path.relative(from, to);\n\n if (path.sep === \"/\") {\n return relPath;\n }\n return relPath.split(path.sep).join(\"/\");\n}\n\n/**\n * Get the trailing slash if existed.\n * @param {string} filePath The path to check.\n * @returns {string} The trailing slash if existed.\n */\nfunction dirSuffix(filePath) {\n const isDir = (\n filePath.endsWith(path.sep) ||\n (process.platform === \"win32\" && filePath.endsWith(\"/\"))\n );\n\n return isDir ? \"/\" : \"\";\n}\n\nconst DefaultPatterns = Object.freeze([\"/**/node_modules/*\"]);\nconst DotPatterns = Object.freeze([\".*\", \"!.eslintrc.*\", \"!../\"]);\n\n//------------------------------------------------------------------------------\n// Public\n//------------------------------------------------------------------------------\n\nclass IgnorePattern {\n\n /**\n * The default patterns.\n * @type {string[]}\n */\n static get DefaultPatterns() {\n return DefaultPatterns;\n }\n\n /**\n * Create the default predicate function.\n * @param {string} cwd The current working directory.\n * @returns {((filePath:string, dot:boolean) => boolean) & {basePath:string; patterns:string[]}}\n * The preficate function.\n * The first argument is an absolute path that is checked.\n * The second argument is the flag to not ignore dotfiles.\n * If the predicate function returned `true`, it means the path should be ignored.\n */\n static createDefaultIgnore(cwd) {\n return this.createIgnore([new IgnorePattern(DefaultPatterns, cwd)]);\n }\n\n /**\n * Create the predicate function from multiple `IgnorePattern` objects.\n * @param {IgnorePattern[]} ignorePatterns The list of ignore patterns.\n * @returns {((filePath:string, dot?:boolean) => boolean) & {basePath:string; patterns:string[]}}\n * The preficate function.\n * The first argument is an absolute path that is checked.\n * The second argument is the flag to not ignore dotfiles.\n * If the predicate function returned `true`, it means the path should be ignored.\n */\n static createIgnore(ignorePatterns) {\n debug(\"Create with: %o\", ignorePatterns);\n\n const basePath = getCommonAncestorPath(ignorePatterns.map(p => p.basePath));\n const patterns = [].concat(\n ...ignorePatterns.map(p => p.getPatternsRelativeTo(basePath))\n );\n const ig = ignore({ allowRelativePaths: true }).add([...DotPatterns, ...patterns]);\n const dotIg = ignore({ allowRelativePaths: true }).add(patterns);\n\n debug(\" processed: %o\", { basePath, patterns });\n\n return Object.assign(\n (filePath, dot = false) => {\n assert(path.isAbsolute(filePath), \"'filePath' should be an absolute path.\");\n const relPathRaw = relative(basePath, filePath);\n const relPath = relPathRaw && (relPathRaw + dirSuffix(filePath));\n const adoptedIg = dot ? dotIg : ig;\n const result = relPath !== \"\" && adoptedIg.ignores(relPath);\n\n debug(\"Check\", { filePath, dot, relativePath: relPath, result });\n return result;\n },\n { basePath, patterns }\n );\n }\n\n /**\n * Initialize a new `IgnorePattern` instance.\n * @param {string[]} patterns The glob patterns that ignore to lint.\n * @param {string} basePath The base path of `patterns`.\n */\n constructor(patterns, basePath) {\n assert(path.isAbsolute(basePath), \"'basePath' should be an absolute path.\");\n\n /**\n * The glob patterns that ignore to lint.\n * @type {string[]}\n */\n this.patterns = patterns;\n\n /**\n * The base path of `patterns`.\n * @type {string}\n */\n this.basePath = basePath;\n\n /**\n * If `true` then patterns which don't start with `/` will match the paths to the outside of `basePath`. Defaults to `false`.\n *\n * It's set `true` for `.eslintignore`, `package.json`, and `--ignore-path` for backward compatibility.\n * It's `false` as-is for `ignorePatterns` property in config files.\n * @type {boolean}\n */\n this.loose = false;\n }\n\n /**\n * Get `patterns` as modified for a given base path. It modifies the\n * absolute paths in the patterns as prepending the difference of two base\n * paths.\n * @param {string} newBasePath The base path.\n * @returns {string[]} Modifired patterns.\n */\n getPatternsRelativeTo(newBasePath) {\n assert(path.isAbsolute(newBasePath), \"'newBasePath' should be an absolute path.\");\n const { basePath, loose, patterns } = this;\n\n if (newBasePath === basePath) {\n return patterns;\n }\n const prefix = `/${relative(newBasePath, basePath)}`;\n\n return patterns.map(pattern => {\n const negative = pattern.startsWith(\"!\");\n const head = negative ? \"!\" : \"\";\n const body = negative ? pattern.slice(1) : pattern;\n\n if (body.startsWith(\"/\") || body.startsWith(\"../\")) {\n return `${head}${prefix}${body}`;\n }\n return loose ? pattern : `${head}${prefix}/**/${body}`;\n });\n }\n}\n\nexport { IgnorePattern };\n","/**\n * @fileoverview `ExtractedConfig` class.\n *\n * `ExtractedConfig` class expresses a final configuration for a specific file.\n *\n * It provides one method.\n *\n * - `toCompatibleObjectAsConfigFileContent()`\n * Convert this configuration to the compatible object as the content of\n * config files. It converts the loaded parser and plugins to strings.\n * `CLIEngine#getConfigForFile(filePath)` method uses this method.\n *\n * `ConfigArray#extractConfig(filePath)` creates a `ExtractedConfig` instance.\n *\n * @author Toru Nagashima \n */\n\nimport { IgnorePattern } from \"./ignore-pattern.js\";\n\n// For VSCode intellisense\n/** @typedef {import(\"../../shared/types\").ConfigData} ConfigData */\n/** @typedef {import(\"../../shared/types\").GlobalConf} GlobalConf */\n/** @typedef {import(\"../../shared/types\").SeverityConf} SeverityConf */\n/** @typedef {import(\"./config-dependency\").DependentParser} DependentParser */\n/** @typedef {import(\"./config-dependency\").DependentPlugin} DependentPlugin */\n\n/**\n * Check if `xs` starts with `ys`.\n * @template T\n * @param {T[]} xs The array to check.\n * @param {T[]} ys The array that may be the first part of `xs`.\n * @returns {boolean} `true` if `xs` starts with `ys`.\n */\nfunction startsWith(xs, ys) {\n return xs.length >= ys.length && ys.every((y, i) => y === xs[i]);\n}\n\n/**\n * The class for extracted config data.\n */\nclass ExtractedConfig {\n constructor() {\n\n /**\n * The config name what `noInlineConfig` setting came from.\n * @type {string}\n */\n this.configNameOfNoInlineConfig = \"\";\n\n /**\n * Environments.\n * @type {Record}\n */\n this.env = {};\n\n /**\n * Global variables.\n * @type {Record}\n */\n this.globals = {};\n\n /**\n * The glob patterns that ignore to lint.\n * @type {(((filePath:string, dot?:boolean) => boolean) & { basePath:string; patterns:string[] }) | undefined}\n */\n this.ignores = void 0;\n\n /**\n * The flag that disables directive comments.\n * @type {boolean|undefined}\n */\n this.noInlineConfig = void 0;\n\n /**\n * Parser definition.\n * @type {DependentParser|null}\n */\n this.parser = null;\n\n /**\n * Options for the parser.\n * @type {Object}\n */\n this.parserOptions = {};\n\n /**\n * Plugin definitions.\n * @type {Record}\n */\n this.plugins = {};\n\n /**\n * Processor ID.\n * @type {string|null}\n */\n this.processor = null;\n\n /**\n * The flag that reports unused `eslint-disable` directive comments.\n * @type {boolean|undefined}\n */\n this.reportUnusedDisableDirectives = void 0;\n\n /**\n * Rule settings.\n * @type {Record}\n */\n this.rules = {};\n\n /**\n * Shared settings.\n * @type {Object}\n */\n this.settings = {};\n }\n\n /**\n * Convert this config to the compatible object as a config file content.\n * @returns {ConfigData} The converted object.\n */\n toCompatibleObjectAsConfigFileContent() {\n const {\n /* eslint-disable no-unused-vars */\n configNameOfNoInlineConfig: _ignore1,\n processor: _ignore2,\n /* eslint-enable no-unused-vars */\n ignores,\n ...config\n } = this;\n\n config.parser = config.parser && config.parser.filePath;\n config.plugins = Object.keys(config.plugins).filter(Boolean).reverse();\n config.ignorePatterns = ignores ? ignores.patterns : [];\n\n // Strip the default patterns from `ignorePatterns`.\n if (startsWith(config.ignorePatterns, IgnorePattern.DefaultPatterns)) {\n config.ignorePatterns =\n config.ignorePatterns.slice(IgnorePattern.DefaultPatterns.length);\n }\n\n return config;\n }\n}\n\nexport { ExtractedConfig };\n","/**\n * @fileoverview `ConfigArray` class.\n *\n * `ConfigArray` class expresses the full of a configuration. It has the entry\n * config file, base config files that were extended, loaded parsers, and loaded\n * plugins.\n *\n * `ConfigArray` class provides three properties and two methods.\n *\n * - `pluginEnvironments`\n * - `pluginProcessors`\n * - `pluginRules`\n * The `Map` objects that contain the members of all plugins that this\n * config array contains. Those map objects don't have mutation methods.\n * Those keys are the member ID such as `pluginId/memberName`.\n * - `isRoot()`\n * If `true` then this configuration has `root:true` property.\n * - `extractConfig(filePath)`\n * Extract the final configuration for a given file. This means merging\n * every config array element which that `criteria` property matched. The\n * `filePath` argument must be an absolute path.\n *\n * `ConfigArrayFactory` provides the loading logic of config files.\n *\n * @author Toru Nagashima \n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport { ExtractedConfig } from \"./extracted-config.js\";\nimport { IgnorePattern } from \"./ignore-pattern.js\";\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\n// Define types for VSCode IntelliSense.\n/** @typedef {import(\"../../shared/types\").Environment} Environment */\n/** @typedef {import(\"../../shared/types\").GlobalConf} GlobalConf */\n/** @typedef {import(\"../../shared/types\").RuleConf} RuleConf */\n/** @typedef {import(\"../../shared/types\").Rule} Rule */\n/** @typedef {import(\"../../shared/types\").Plugin} Plugin */\n/** @typedef {import(\"../../shared/types\").Processor} Processor */\n/** @typedef {import(\"./config-dependency\").DependentParser} DependentParser */\n/** @typedef {import(\"./config-dependency\").DependentPlugin} DependentPlugin */\n/** @typedef {import(\"./override-tester\")[\"OverrideTester\"]} OverrideTester */\n\n/**\n * @typedef {Object} ConfigArrayElement\n * @property {string} name The name of this config element.\n * @property {string} filePath The path to the source file of this config element.\n * @property {InstanceType|null} criteria The tester for the `files` and `excludedFiles` of this config element.\n * @property {Record|undefined} env The environment settings.\n * @property {Record|undefined} globals The global variable settings.\n * @property {IgnorePattern|undefined} ignorePattern The ignore patterns.\n * @property {boolean|undefined} noInlineConfig The flag that disables directive comments.\n * @property {DependentParser|undefined} parser The parser loader.\n * @property {Object|undefined} parserOptions The parser options.\n * @property {Record|undefined} plugins The plugin loaders.\n * @property {string|undefined} processor The processor name to refer plugin's processor.\n * @property {boolean|undefined} reportUnusedDisableDirectives The flag to report unused `eslint-disable` comments.\n * @property {boolean|undefined} root The flag to express root.\n * @property {Record|undefined} rules The rule settings\n * @property {Object|undefined} settings The shared settings.\n * @property {\"config\" | \"ignore\" | \"implicit-processor\"} type The element type.\n */\n\n/**\n * @typedef {Object} ConfigArrayInternalSlots\n * @property {Map} cache The cache to extract configs.\n * @property {ReadonlyMap|null} envMap The map from environment ID to environment definition.\n * @property {ReadonlyMap|null} processorMap The map from processor ID to environment definition.\n * @property {ReadonlyMap|null} ruleMap The map from rule ID to rule definition.\n */\n\n/** @type {WeakMap} */\nconst internalSlotsMap = new class extends WeakMap {\n get(key) {\n let value = super.get(key);\n\n if (!value) {\n value = {\n cache: new Map(),\n envMap: null,\n processorMap: null,\n ruleMap: null\n };\n super.set(key, value);\n }\n\n return value;\n }\n}();\n\n/**\n * Get the indices which are matched to a given file.\n * @param {ConfigArrayElement[]} elements The elements.\n * @param {string} filePath The path to a target file.\n * @returns {number[]} The indices.\n */\nfunction getMatchedIndices(elements, filePath) {\n const indices = [];\n\n for (let i = elements.length - 1; i >= 0; --i) {\n const element = elements[i];\n\n if (!element.criteria || (filePath && element.criteria.test(filePath))) {\n indices.push(i);\n }\n }\n\n return indices;\n}\n\n/**\n * Check if a value is a non-null object.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is a non-null object.\n */\nfunction isNonNullObject(x) {\n return typeof x === \"object\" && x !== null;\n}\n\n/**\n * Merge two objects.\n *\n * Assign every property values of `y` to `x` if `x` doesn't have the property.\n * If `x`'s property value is an object, it does recursive.\n * @param {Object} target The destination to merge\n * @param {Object|undefined} source The source to merge.\n * @returns {void}\n */\nfunction mergeWithoutOverwrite(target, source) {\n if (!isNonNullObject(source)) {\n return;\n }\n\n for (const key of Object.keys(source)) {\n if (key === \"__proto__\") {\n continue;\n }\n\n if (isNonNullObject(target[key])) {\n mergeWithoutOverwrite(target[key], source[key]);\n } else if (target[key] === void 0) {\n if (isNonNullObject(source[key])) {\n target[key] = Array.isArray(source[key]) ? [] : {};\n mergeWithoutOverwrite(target[key], source[key]);\n } else if (source[key] !== void 0) {\n target[key] = source[key];\n }\n }\n }\n}\n\n/**\n * The error for plugin conflicts.\n */\nclass PluginConflictError extends Error {\n\n /**\n * Initialize this error object.\n * @param {string} pluginId The plugin ID.\n * @param {{filePath:string, importerName:string}[]} plugins The resolved plugins.\n */\n constructor(pluginId, plugins) {\n super(`Plugin \"${pluginId}\" was conflicted between ${plugins.map(p => `\"${p.importerName}\"`).join(\" and \")}.`);\n this.messageTemplate = \"plugin-conflict\";\n this.messageData = { pluginId, plugins };\n }\n}\n\n/**\n * Merge plugins.\n * `target`'s definition is prior to `source`'s.\n * @param {Record} target The destination to merge\n * @param {Record|undefined} source The source to merge.\n * @returns {void}\n */\nfunction mergePlugins(target, source) {\n if (!isNonNullObject(source)) {\n return;\n }\n\n for (const key of Object.keys(source)) {\n if (key === \"__proto__\") {\n continue;\n }\n const targetValue = target[key];\n const sourceValue = source[key];\n\n // Adopt the plugin which was found at first.\n if (targetValue === void 0) {\n if (sourceValue.error) {\n throw sourceValue.error;\n }\n target[key] = sourceValue;\n } else if (sourceValue.filePath !== targetValue.filePath) {\n throw new PluginConflictError(key, [\n {\n filePath: targetValue.filePath,\n importerName: targetValue.importerName\n },\n {\n filePath: sourceValue.filePath,\n importerName: sourceValue.importerName\n }\n ]);\n }\n }\n}\n\n/**\n * Merge rule configs.\n * `target`'s definition is prior to `source`'s.\n * @param {Record} target The destination to merge\n * @param {Record|undefined} source The source to merge.\n * @returns {void}\n */\nfunction mergeRuleConfigs(target, source) {\n if (!isNonNullObject(source)) {\n return;\n }\n\n for (const key of Object.keys(source)) {\n if (key === \"__proto__\") {\n continue;\n }\n const targetDef = target[key];\n const sourceDef = source[key];\n\n // Adopt the rule config which was found at first.\n if (targetDef === void 0) {\n if (Array.isArray(sourceDef)) {\n target[key] = [...sourceDef];\n } else {\n target[key] = [sourceDef];\n }\n\n /*\n * If the first found rule config is severity only and the current rule\n * config has options, merge the severity and the options.\n */\n } else if (\n targetDef.length === 1 &&\n Array.isArray(sourceDef) &&\n sourceDef.length >= 2\n ) {\n targetDef.push(...sourceDef.slice(1));\n }\n }\n}\n\n/**\n * Create the extracted config.\n * @param {ConfigArray} instance The config elements.\n * @param {number[]} indices The indices to use.\n * @returns {ExtractedConfig} The extracted config.\n */\nfunction createConfig(instance, indices) {\n const config = new ExtractedConfig();\n const ignorePatterns = [];\n\n // Merge elements.\n for (const index of indices) {\n const element = instance[index];\n\n // Adopt the parser which was found at first.\n if (!config.parser && element.parser) {\n if (element.parser.error) {\n throw element.parser.error;\n }\n config.parser = element.parser;\n }\n\n // Adopt the processor which was found at first.\n if (!config.processor && element.processor) {\n config.processor = element.processor;\n }\n\n // Adopt the noInlineConfig which was found at first.\n if (config.noInlineConfig === void 0 && element.noInlineConfig !== void 0) {\n config.noInlineConfig = element.noInlineConfig;\n config.configNameOfNoInlineConfig = element.name;\n }\n\n // Adopt the reportUnusedDisableDirectives which was found at first.\n if (config.reportUnusedDisableDirectives === void 0 && element.reportUnusedDisableDirectives !== void 0) {\n config.reportUnusedDisableDirectives = element.reportUnusedDisableDirectives;\n }\n\n // Collect ignorePatterns\n if (element.ignorePattern) {\n ignorePatterns.push(element.ignorePattern);\n }\n\n // Merge others.\n mergeWithoutOverwrite(config.env, element.env);\n mergeWithoutOverwrite(config.globals, element.globals);\n mergeWithoutOverwrite(config.parserOptions, element.parserOptions);\n mergeWithoutOverwrite(config.settings, element.settings);\n mergePlugins(config.plugins, element.plugins);\n mergeRuleConfigs(config.rules, element.rules);\n }\n\n // Create the predicate function for ignore patterns.\n if (ignorePatterns.length > 0) {\n config.ignores = IgnorePattern.createIgnore(ignorePatterns.reverse());\n }\n\n return config;\n}\n\n/**\n * Collect definitions.\n * @template T, U\n * @param {string} pluginId The plugin ID for prefix.\n * @param {Record} defs The definitions to collect.\n * @param {Map} map The map to output.\n * @param {function(T): U} [normalize] The normalize function for each value.\n * @returns {void}\n */\nfunction collect(pluginId, defs, map, normalize) {\n if (defs) {\n const prefix = pluginId && `${pluginId}/`;\n\n for (const [key, value] of Object.entries(defs)) {\n map.set(\n `${prefix}${key}`,\n normalize ? normalize(value) : value\n );\n }\n }\n}\n\n/**\n * Normalize a rule definition.\n * @param {Function|Rule} rule The rule definition to normalize.\n * @returns {Rule} The normalized rule definition.\n */\nfunction normalizePluginRule(rule) {\n return typeof rule === \"function\" ? { create: rule } : rule;\n}\n\n/**\n * Delete the mutation methods from a given map.\n * @param {Map} map The map object to delete.\n * @returns {void}\n */\nfunction deleteMutationMethods(map) {\n Object.defineProperties(map, {\n clear: { configurable: true, value: void 0 },\n delete: { configurable: true, value: void 0 },\n set: { configurable: true, value: void 0 }\n });\n}\n\n/**\n * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array.\n * @param {ConfigArrayElement[]} elements The config elements.\n * @param {ConfigArrayInternalSlots} slots The internal slots.\n * @returns {void}\n */\nfunction initPluginMemberMaps(elements, slots) {\n const processed = new Set();\n\n slots.envMap = new Map();\n slots.processorMap = new Map();\n slots.ruleMap = new Map();\n\n for (const element of elements) {\n if (!element.plugins) {\n continue;\n }\n\n for (const [pluginId, value] of Object.entries(element.plugins)) {\n const plugin = value.definition;\n\n if (!plugin || processed.has(pluginId)) {\n continue;\n }\n processed.add(pluginId);\n\n collect(pluginId, plugin.environments, slots.envMap);\n collect(pluginId, plugin.processors, slots.processorMap);\n collect(pluginId, plugin.rules, slots.ruleMap, normalizePluginRule);\n }\n }\n\n deleteMutationMethods(slots.envMap);\n deleteMutationMethods(slots.processorMap);\n deleteMutationMethods(slots.ruleMap);\n}\n\n/**\n * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array.\n * @param {ConfigArray} instance The config elements.\n * @returns {ConfigArrayInternalSlots} The extracted config.\n */\nfunction ensurePluginMemberMaps(instance) {\n const slots = internalSlotsMap.get(instance);\n\n if (!slots.ruleMap) {\n initPluginMemberMaps(instance, slots);\n }\n\n return slots;\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/**\n * The Config Array.\n *\n * `ConfigArray` instance contains all settings, parsers, and plugins.\n * You need to call `ConfigArray#extractConfig(filePath)` method in order to\n * extract, merge and get only the config data which is related to an arbitrary\n * file.\n * @extends {Array}\n */\nclass ConfigArray extends Array {\n\n /**\n * Get the plugin environments.\n * The returned map cannot be mutated.\n * @type {ReadonlyMap} The plugin environments.\n */\n get pluginEnvironments() {\n return ensurePluginMemberMaps(this).envMap;\n }\n\n /**\n * Get the plugin processors.\n * The returned map cannot be mutated.\n * @type {ReadonlyMap} The plugin processors.\n */\n get pluginProcessors() {\n return ensurePluginMemberMaps(this).processorMap;\n }\n\n /**\n * Get the plugin rules.\n * The returned map cannot be mutated.\n * @returns {ReadonlyMap} The plugin rules.\n */\n get pluginRules() {\n return ensurePluginMemberMaps(this).ruleMap;\n }\n\n /**\n * Check if this config has `root` flag.\n * @returns {boolean} `true` if this config array is root.\n */\n isRoot() {\n for (let i = this.length - 1; i >= 0; --i) {\n const root = this[i].root;\n\n if (typeof root === \"boolean\") {\n return root;\n }\n }\n return false;\n }\n\n /**\n * Extract the config data which is related to a given file.\n * @param {string} filePath The absolute path to the target file.\n * @returns {ExtractedConfig} The extracted config data.\n */\n extractConfig(filePath) {\n const { cache } = internalSlotsMap.get(this);\n const indices = getMatchedIndices(this, filePath);\n const cacheKey = indices.join(\",\");\n\n if (!cache.has(cacheKey)) {\n cache.set(cacheKey, createConfig(this, indices));\n }\n\n return cache.get(cacheKey);\n }\n\n /**\n * Check if a given path is an additional lint target.\n * @param {string} filePath The absolute path to the target file.\n * @returns {boolean} `true` if the file is an additional lint target.\n */\n isAdditionalTargetPath(filePath) {\n for (const { criteria, type } of this) {\n if (\n type === \"config\" &&\n criteria &&\n !criteria.endsWithWildcard &&\n criteria.test(filePath)\n ) {\n return true;\n }\n }\n return false;\n }\n}\n\n/**\n * Get the used extracted configs.\n * CLIEngine will use this method to collect used deprecated rules.\n * @param {ConfigArray} instance The config array object to get.\n * @returns {ExtractedConfig[]} The used extracted configs.\n * @private\n */\nfunction getUsedExtractedConfigs(instance) {\n const { cache } = internalSlotsMap.get(instance);\n\n return Array.from(cache.values());\n}\n\n\nexport {\n ConfigArray,\n getUsedExtractedConfigs\n};\n","/**\n * @fileoverview `ConfigDependency` class.\n *\n * `ConfigDependency` class expresses a loaded parser or plugin.\n *\n * If the parser or plugin was loaded successfully, it has `definition` property\n * and `filePath` property. Otherwise, it has `error` property.\n *\n * When `JSON.stringify()` converted a `ConfigDependency` object to a JSON, it\n * omits `definition` property.\n *\n * `ConfigArrayFactory` creates `ConfigDependency` objects when it loads parsers\n * or plugins.\n *\n * @author Toru Nagashima \n */\n\nimport util from \"util\";\n\n/**\n * The class is to store parsers or plugins.\n * This class hides the loaded object from `JSON.stringify()` and `console.log`.\n * @template T\n */\nclass ConfigDependency {\n\n /**\n * Initialize this instance.\n * @param {Object} data The dependency data.\n * @param {T} [data.definition] The dependency if the loading succeeded.\n * @param {Error} [data.error] The error object if the loading failed.\n * @param {string} [data.filePath] The actual path to the dependency if the loading succeeded.\n * @param {string} data.id The ID of this dependency.\n * @param {string} data.importerName The name of the config file which loads this dependency.\n * @param {string} data.importerPath The path to the config file which loads this dependency.\n */\n constructor({\n definition = null,\n error = null,\n filePath = null,\n id,\n importerName,\n importerPath\n }) {\n\n /**\n * The loaded dependency if the loading succeeded.\n * @type {T|null}\n */\n this.definition = definition;\n\n /**\n * The error object if the loading failed.\n * @type {Error|null}\n */\n this.error = error;\n\n /**\n * The loaded dependency if the loading succeeded.\n * @type {string|null}\n */\n this.filePath = filePath;\n\n /**\n * The ID of this dependency.\n * @type {string}\n */\n this.id = id;\n\n /**\n * The name of the config file which loads this dependency.\n * @type {string}\n */\n this.importerName = importerName;\n\n /**\n * The path to the config file which loads this dependency.\n * @type {string}\n */\n this.importerPath = importerPath;\n }\n\n // eslint-disable-next-line jsdoc/require-description\n /**\n * @returns {Object} a JSON compatible object.\n */\n toJSON() {\n const obj = this[util.inspect.custom]();\n\n // Display `error.message` (`Error#message` is unenumerable).\n if (obj.error instanceof Error) {\n obj.error = { ...obj.error, message: obj.error.message };\n }\n\n return obj;\n }\n\n // eslint-disable-next-line jsdoc/require-description\n /**\n * @returns {Object} an object to display by `console.log()`.\n */\n [util.inspect.custom]() {\n const {\n definition: _ignore, // eslint-disable-line no-unused-vars\n ...obj\n } = this;\n\n return obj;\n }\n}\n\n/** @typedef {ConfigDependency} DependentParser */\n/** @typedef {ConfigDependency} DependentPlugin */\n\nexport { ConfigDependency };\n","/**\n * @fileoverview `OverrideTester` class.\n *\n * `OverrideTester` class handles `files` property and `excludedFiles` property\n * of `overrides` config.\n *\n * It provides one method.\n *\n * - `test(filePath)`\n * Test if a file path matches the pair of `files` property and\n * `excludedFiles` property. The `filePath` argument must be an absolute\n * path.\n *\n * `ConfigArrayFactory` creates `OverrideTester` objects when it processes\n * `overrides` properties.\n *\n * @author Toru Nagashima \n */\n\nimport assert from \"assert\";\nimport path from \"path\";\nimport util from \"util\";\nimport minimatch from \"minimatch\";\n\nconst { Minimatch } = minimatch;\n\nconst minimatchOpts = { dot: true, matchBase: true };\n\n/**\n * @typedef {Object} Pattern\n * @property {InstanceType[] | null} includes The positive matchers.\n * @property {InstanceType[] | null} excludes The negative matchers.\n */\n\n/**\n * Normalize a given pattern to an array.\n * @param {string|string[]|undefined} patterns A glob pattern or an array of glob patterns.\n * @returns {string[]|null} Normalized patterns.\n * @private\n */\nfunction normalizePatterns(patterns) {\n if (Array.isArray(patterns)) {\n return patterns.filter(Boolean);\n }\n if (typeof patterns === \"string\" && patterns) {\n return [patterns];\n }\n return [];\n}\n\n/**\n * Create the matchers of given patterns.\n * @param {string[]} patterns The patterns.\n * @returns {InstanceType[] | null} The matchers.\n */\nfunction toMatcher(patterns) {\n if (patterns.length === 0) {\n return null;\n }\n return patterns.map(pattern => {\n if (/^\\.[/\\\\]/u.test(pattern)) {\n return new Minimatch(\n pattern.slice(2),\n\n // `./*.js` should not match with `subdir/foo.js`\n { ...minimatchOpts, matchBase: false }\n );\n }\n return new Minimatch(pattern, minimatchOpts);\n });\n}\n\n/**\n * Convert a given matcher to string.\n * @param {Pattern} matchers The matchers.\n * @returns {string} The string expression of the matcher.\n */\nfunction patternToJson({ includes, excludes }) {\n return {\n includes: includes && includes.map(m => m.pattern),\n excludes: excludes && excludes.map(m => m.pattern)\n };\n}\n\n/**\n * The class to test given paths are matched by the patterns.\n */\nclass OverrideTester {\n\n /**\n * Create a tester with given criteria.\n * If there are no criteria, returns `null`.\n * @param {string|string[]} files The glob patterns for included files.\n * @param {string|string[]} excludedFiles The glob patterns for excluded files.\n * @param {string} basePath The path to the base directory to test paths.\n * @returns {OverrideTester|null} The created instance or `null`.\n */\n static create(files, excludedFiles, basePath) {\n const includePatterns = normalizePatterns(files);\n const excludePatterns = normalizePatterns(excludedFiles);\n let endsWithWildcard = false;\n\n if (includePatterns.length === 0) {\n return null;\n }\n\n // Rejects absolute paths or relative paths to parents.\n for (const pattern of includePatterns) {\n if (path.isAbsolute(pattern) || pattern.includes(\"..\")) {\n throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`);\n }\n if (pattern.endsWith(\"*\")) {\n endsWithWildcard = true;\n }\n }\n for (const pattern of excludePatterns) {\n if (path.isAbsolute(pattern) || pattern.includes(\"..\")) {\n throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`);\n }\n }\n\n const includes = toMatcher(includePatterns);\n const excludes = toMatcher(excludePatterns);\n\n return new OverrideTester(\n [{ includes, excludes }],\n basePath,\n endsWithWildcard\n );\n }\n\n /**\n * Combine two testers by logical and.\n * If either of the testers was `null`, returns the other tester.\n * The `basePath` property of the two must be the same value.\n * @param {OverrideTester|null} a A tester.\n * @param {OverrideTester|null} b Another tester.\n * @returns {OverrideTester|null} Combined tester.\n */\n static and(a, b) {\n if (!b) {\n return a && new OverrideTester(\n a.patterns,\n a.basePath,\n a.endsWithWildcard\n );\n }\n if (!a) {\n return new OverrideTester(\n b.patterns,\n b.basePath,\n b.endsWithWildcard\n );\n }\n\n assert.strictEqual(a.basePath, b.basePath);\n return new OverrideTester(\n a.patterns.concat(b.patterns),\n a.basePath,\n a.endsWithWildcard || b.endsWithWildcard\n );\n }\n\n /**\n * Initialize this instance.\n * @param {Pattern[]} patterns The matchers.\n * @param {string} basePath The base path.\n * @param {boolean} endsWithWildcard If `true` then a pattern ends with `*`.\n */\n constructor(patterns, basePath, endsWithWildcard = false) {\n\n /** @type {Pattern[]} */\n this.patterns = patterns;\n\n /** @type {string} */\n this.basePath = basePath;\n\n /** @type {boolean} */\n this.endsWithWildcard = endsWithWildcard;\n }\n\n /**\n * Test if a given path is matched or not.\n * @param {string} filePath The absolute path to the target file.\n * @returns {boolean} `true` if the path was matched.\n */\n test(filePath) {\n if (typeof filePath !== \"string\" || !path.isAbsolute(filePath)) {\n throw new Error(`'filePath' should be an absolute path, but got ${filePath}.`);\n }\n const relativePath = path.relative(this.basePath, filePath);\n\n return this.patterns.every(({ includes, excludes }) => (\n (!includes || includes.some(m => m.match(relativePath))) &&\n (!excludes || !excludes.some(m => m.match(relativePath)))\n ));\n }\n\n // eslint-disable-next-line jsdoc/require-description\n /**\n * @returns {Object} a JSON compatible object.\n */\n toJSON() {\n if (this.patterns.length === 1) {\n return {\n ...patternToJson(this.patterns[0]),\n basePath: this.basePath\n };\n }\n return {\n AND: this.patterns.map(patternToJson),\n basePath: this.basePath\n };\n }\n\n // eslint-disable-next-line jsdoc/require-description\n /**\n * @returns {Object} an object to display by `console.log()`.\n */\n [util.inspect.custom]() {\n return this.toJSON();\n }\n}\n\nexport { OverrideTester };\n","/**\n * @fileoverview `ConfigArray` class.\n * @author Toru Nagashima \n */\n\nimport { ConfigArray, getUsedExtractedConfigs } from \"./config-array.js\";\nimport { ConfigDependency } from \"./config-dependency.js\";\nimport { ExtractedConfig } from \"./extracted-config.js\";\nimport { IgnorePattern } from \"./ignore-pattern.js\";\nimport { OverrideTester } from \"./override-tester.js\";\n\nexport {\n ConfigArray,\n ConfigDependency,\n ExtractedConfig,\n IgnorePattern,\n OverrideTester,\n getUsedExtractedConfigs\n};\n","/**\n * @fileoverview Config file operations. This file must be usable in the browser,\n * so no Node-specific code can be here.\n * @author Nicholas C. Zakas\n */\n\n//------------------------------------------------------------------------------\n// Private\n//------------------------------------------------------------------------------\n\nconst RULE_SEVERITY_STRINGS = [\"off\", \"warn\", \"error\"],\n RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => {\n map[value] = index;\n return map;\n }, {}),\n VALID_SEVERITIES = [0, 1, 2, \"off\", \"warn\", \"error\"];\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/**\n * Normalizes the severity value of a rule's configuration to a number\n * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally\n * received from the user. A valid config value is either 0, 1, 2, the string \"off\" (treated the same as 0),\n * the string \"warn\" (treated the same as 1), the string \"error\" (treated the same as 2), or an array\n * whose first element is one of the above values. Strings are matched case-insensitively.\n * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0.\n */\nfunction getRuleSeverity(ruleConfig) {\n const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;\n\n if (severityValue === 0 || severityValue === 1 || severityValue === 2) {\n return severityValue;\n }\n\n if (typeof severityValue === \"string\") {\n return RULE_SEVERITY[severityValue.toLowerCase()] || 0;\n }\n\n return 0;\n}\n\n/**\n * Converts old-style severity settings (0, 1, 2) into new-style\n * severity settings (off, warn, error) for all rules. Assumption is that severity\n * values have already been validated as correct.\n * @param {Object} config The config object to normalize.\n * @returns {void}\n */\nfunction normalizeToStrings(config) {\n\n if (config.rules) {\n Object.keys(config.rules).forEach(ruleId => {\n const ruleConfig = config.rules[ruleId];\n\n if (typeof ruleConfig === \"number\") {\n config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0];\n } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === \"number\") {\n ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0];\n }\n });\n }\n}\n\n/**\n * Determines if the severity for the given rule configuration represents an error.\n * @param {int|string|Array} ruleConfig The configuration for an individual rule.\n * @returns {boolean} True if the rule represents an error, false if not.\n */\nfunction isErrorSeverity(ruleConfig) {\n return getRuleSeverity(ruleConfig) === 2;\n}\n\n/**\n * Checks whether a given config has valid severity or not.\n * @param {number|string|Array} ruleConfig The configuration for an individual rule.\n * @returns {boolean} `true` if the configuration has valid severity.\n */\nfunction isValidSeverity(ruleConfig) {\n let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;\n\n if (typeof severity === \"string\") {\n severity = severity.toLowerCase();\n }\n return VALID_SEVERITIES.indexOf(severity) !== -1;\n}\n\n/**\n * Checks whether every rule of a given config has valid severity or not.\n * @param {Object} config The configuration for rules.\n * @returns {boolean} `true` if the configuration has valid severity.\n */\nfunction isEverySeverityValid(config) {\n return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId]));\n}\n\n/**\n * Normalizes a value for a global in a config\n * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in\n * a global directive comment\n * @returns {(\"readable\"|\"writeable\"|\"off\")} The value normalized as a string\n * @throws Error if global value is invalid\n */\nfunction normalizeConfigGlobal(configuredValue) {\n switch (configuredValue) {\n case \"off\":\n return \"off\";\n\n case true:\n case \"true\":\n case \"writeable\":\n case \"writable\":\n return \"writable\";\n\n case null:\n case false:\n case \"false\":\n case \"readable\":\n case \"readonly\":\n return \"readonly\";\n\n default:\n throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`);\n }\n}\n\nexport {\n getRuleSeverity,\n normalizeToStrings,\n isErrorSeverity,\n isValidSeverity,\n isEverySeverityValid,\n normalizeConfigGlobal\n};\n","/**\n * @fileoverview Provide the function that emits deprecation warnings.\n * @author Toru Nagashima \n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport path from \"path\";\n\n//------------------------------------------------------------------------------\n// Private\n//------------------------------------------------------------------------------\n\n// Defitions for deprecation warnings.\nconst deprecationWarningMessages = {\n ESLINT_LEGACY_ECMAFEATURES:\n \"The 'ecmaFeatures' config file property is deprecated and has no effect.\",\n ESLINT_PERSONAL_CONFIG_LOAD:\n \"'~/.eslintrc.*' config files have been deprecated. \" +\n \"Please use a config file per project or the '--config' option.\",\n ESLINT_PERSONAL_CONFIG_SUPPRESS:\n \"'~/.eslintrc.*' config files have been deprecated. \" +\n \"Please remove it or add 'root:true' to the config files in your \" +\n \"projects in order to avoid loading '~/.eslintrc.*' accidentally.\"\n};\n\nconst sourceFileErrorCache = new Set();\n\n/**\n * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted\n * for each unique file path, but repeated invocations with the same file path have no effect.\n * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active.\n * @param {string} source The name of the configuration source to report the warning for.\n * @param {string} errorCode The warning message to show.\n * @returns {void}\n */\nfunction emitDeprecationWarning(source, errorCode) {\n const cacheKey = JSON.stringify({ source, errorCode });\n\n if (sourceFileErrorCache.has(cacheKey)) {\n return;\n }\n sourceFileErrorCache.add(cacheKey);\n\n const rel = path.relative(process.cwd(), source);\n const message = deprecationWarningMessages[errorCode];\n\n process.emitWarning(\n `${message} (found in \"${rel}\")`,\n \"DeprecationWarning\",\n errorCode\n );\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\nexport {\n emitDeprecationWarning\n};\n","/**\n * @fileoverview The instance of Ajv validator.\n * @author Evgeny Poberezkin\n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport Ajv from \"ajv\";\n\n//-----------------------------------------------------------------------------\n// Helpers\n//-----------------------------------------------------------------------------\n\n/*\n * Copied from ajv/lib/refs/json-schema-draft-04.json\n * The MIT License (MIT)\n * Copyright (c) 2015-2017 Evgeny Poberezkin\n */\nconst metaSchema = {\n id: \"http://json-schema.org/draft-04/schema#\",\n $schema: \"http://json-schema.org/draft-04/schema#\",\n description: \"Core schema meta-schema\",\n definitions: {\n schemaArray: {\n type: \"array\",\n minItems: 1,\n items: { $ref: \"#\" }\n },\n positiveInteger: {\n type: \"integer\",\n minimum: 0\n },\n positiveIntegerDefault0: {\n allOf: [{ $ref: \"#/definitions/positiveInteger\" }, { default: 0 }]\n },\n simpleTypes: {\n enum: [\"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\"]\n },\n stringArray: {\n type: \"array\",\n items: { type: \"string\" },\n minItems: 1,\n uniqueItems: true\n }\n },\n type: \"object\",\n properties: {\n id: {\n type: \"string\"\n },\n $schema: {\n type: \"string\"\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: { $ref: \"#/definitions/positiveInteger\" },\n minLength: { $ref: \"#/definitions/positiveIntegerDefault0\" },\n pattern: {\n type: \"string\",\n format: \"regex\"\n },\n additionalItems: {\n anyOf: [\n { type: \"boolean\" },\n { $ref: \"#\" }\n ],\n default: { }\n },\n items: {\n anyOf: [\n { $ref: \"#\" },\n { $ref: \"#/definitions/schemaArray\" }\n ],\n default: { }\n },\n maxItems: { $ref: \"#/definitions/positiveInteger\" },\n minItems: { $ref: \"#/definitions/positiveIntegerDefault0\" },\n uniqueItems: {\n type: \"boolean\",\n default: false\n },\n maxProperties: { $ref: \"#/definitions/positiveInteger\" },\n minProperties: { $ref: \"#/definitions/positiveIntegerDefault0\" },\n required: { $ref: \"#/definitions/stringArray\" },\n additionalProperties: {\n anyOf: [\n { type: \"boolean\" },\n { $ref: \"#\" }\n ],\n default: { }\n },\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 default: { }\n },\n dependencies: {\n type: \"object\",\n additionalProperties: {\n anyOf: [\n { $ref: \"#\" },\n { $ref: \"#/definitions/stringArray\" }\n ]\n }\n },\n enum: {\n type: \"array\",\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 allOf: { $ref: \"#/definitions/schemaArray\" },\n anyOf: { $ref: \"#/definitions/schemaArray\" },\n oneOf: { $ref: \"#/definitions/schemaArray\" },\n not: { $ref: \"#\" }\n },\n dependencies: {\n exclusiveMaximum: [\"maximum\"],\n exclusiveMinimum: [\"minimum\"]\n },\n default: { }\n};\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\nexport default (additionalOptions = {}) => {\n const ajv = new Ajv({\n meta: false,\n useDefaults: true,\n validateSchema: false,\n missingRefs: \"ignore\",\n verbose: true,\n schemaId: \"auto\",\n ...additionalOptions\n });\n\n ajv.addMetaSchema(metaSchema);\n // eslint-disable-next-line no-underscore-dangle\n ajv._opts.defaultMeta = metaSchema.id;\n\n return ajv;\n};\n","/**\n * @fileoverview Defines a schema for configs.\n * @author Sylvan Mably\n */\n\nconst baseConfigProperties = {\n $schema: { type: \"string\" },\n env: { type: \"object\" },\n extends: { $ref: \"#/definitions/stringOrStrings\" },\n globals: { type: \"object\" },\n overrides: {\n type: \"array\",\n items: { $ref: \"#/definitions/overrideConfig\" },\n additionalItems: false\n },\n parser: { type: [\"string\", \"null\"] },\n parserOptions: { type: \"object\" },\n plugins: { type: \"array\" },\n processor: { type: \"string\" },\n rules: { type: \"object\" },\n settings: { type: \"object\" },\n noInlineConfig: { type: \"boolean\" },\n reportUnusedDisableDirectives: { type: \"boolean\" },\n\n ecmaFeatures: { type: \"object\" } // deprecated; logs a warning when used\n};\n\nconst configSchema = {\n definitions: {\n stringOrStrings: {\n oneOf: [\n { type: \"string\" },\n {\n type: \"array\",\n items: { type: \"string\" },\n additionalItems: false\n }\n ]\n },\n stringOrStringsRequired: {\n oneOf: [\n { type: \"string\" },\n {\n type: \"array\",\n items: { type: \"string\" },\n additionalItems: false,\n minItems: 1\n }\n ]\n },\n\n // Config at top-level.\n objectConfig: {\n type: \"object\",\n properties: {\n root: { type: \"boolean\" },\n ignorePatterns: { $ref: \"#/definitions/stringOrStrings\" },\n ...baseConfigProperties\n },\n additionalProperties: false\n },\n\n // Config in `overrides`.\n overrideConfig: {\n type: \"object\",\n properties: {\n excludedFiles: { $ref: \"#/definitions/stringOrStrings\" },\n files: { $ref: \"#/definitions/stringOrStringsRequired\" },\n ...baseConfigProperties\n },\n required: [\"files\"],\n additionalProperties: false\n }\n },\n\n $ref: \"#/definitions/objectConfig\"\n};\n\nexport default configSchema;\n","/**\n * @fileoverview Defines environment settings and globals.\n * @author Elan Shanker\n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport globals from \"globals\";\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\n/**\n * Get the object that has difference.\n * @param {Record} current The newer object.\n * @param {Record} prev The older object.\n * @returns {Record} The difference object.\n */\nfunction getDiff(current, prev) {\n const retv = {};\n\n for (const [key, value] of Object.entries(current)) {\n if (!Object.hasOwnProperty.call(prev, key)) {\n retv[key] = value;\n }\n }\n\n return retv;\n}\n\nconst newGlobals2015 = getDiff(globals.es2015, globals.es5); // 19 variables such as Promise, Map, ...\nconst newGlobals2017 = {\n Atomics: false,\n SharedArrayBuffer: false\n};\nconst newGlobals2020 = {\n BigInt: false,\n BigInt64Array: false,\n BigUint64Array: false,\n globalThis: false\n};\n\nconst newGlobals2021 = {\n AggregateError: false,\n FinalizationRegistry: false,\n WeakRef: false\n};\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/** @type {Map} */\nexport default new Map(Object.entries({\n\n // Language\n builtin: {\n globals: globals.es5\n },\n es6: {\n globals: newGlobals2015,\n parserOptions: {\n ecmaVersion: 6\n }\n },\n es2015: {\n globals: newGlobals2015,\n parserOptions: {\n ecmaVersion: 6\n }\n },\n es2016: {\n globals: newGlobals2015,\n parserOptions: {\n ecmaVersion: 7\n }\n },\n es2017: {\n globals: { ...newGlobals2015, ...newGlobals2017 },\n parserOptions: {\n ecmaVersion: 8\n }\n },\n es2018: {\n globals: { ...newGlobals2015, ...newGlobals2017 },\n parserOptions: {\n ecmaVersion: 9\n }\n },\n es2019: {\n globals: { ...newGlobals2015, ...newGlobals2017 },\n parserOptions: {\n ecmaVersion: 10\n }\n },\n es2020: {\n globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },\n parserOptions: {\n ecmaVersion: 11\n }\n },\n es2021: {\n globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },\n parserOptions: {\n ecmaVersion: 12\n }\n },\n es2022: {\n globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },\n parserOptions: {\n ecmaVersion: 13\n }\n },\n\n // Platforms\n browser: {\n globals: globals.browser\n },\n node: {\n globals: globals.node,\n parserOptions: {\n ecmaFeatures: {\n globalReturn: true\n }\n }\n },\n \"shared-node-browser\": {\n globals: globals[\"shared-node-browser\"]\n },\n worker: {\n globals: globals.worker\n },\n serviceworker: {\n globals: globals.serviceworker\n },\n\n // Frameworks\n commonjs: {\n globals: globals.commonjs,\n parserOptions: {\n ecmaFeatures: {\n globalReturn: true\n }\n }\n },\n amd: {\n globals: globals.amd\n },\n mocha: {\n globals: globals.mocha\n },\n jasmine: {\n globals: globals.jasmine\n },\n jest: {\n globals: globals.jest\n },\n phantomjs: {\n globals: globals.phantomjs\n },\n jquery: {\n globals: globals.jquery\n },\n qunit: {\n globals: globals.qunit\n },\n prototypejs: {\n globals: globals.prototypejs\n },\n shelljs: {\n globals: globals.shelljs\n },\n meteor: {\n globals: globals.meteor\n },\n mongo: {\n globals: globals.mongo\n },\n protractor: {\n globals: globals.protractor\n },\n applescript: {\n globals: globals.applescript\n },\n nashorn: {\n globals: globals.nashorn\n },\n atomtest: {\n globals: globals.atomtest\n },\n embertest: {\n globals: globals.embertest\n },\n webextensions: {\n globals: globals.webextensions\n },\n greasemonkey: {\n globals: globals.greasemonkey\n }\n}));\n","/**\n * @fileoverview Validates configs.\n * @author Brandon Mills\n */\n\n/* eslint class-methods-use-this: \"off\" */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport util from \"util\";\nimport * as ConfigOps from \"./config-ops.js\";\nimport { emitDeprecationWarning } from \"./deprecation-warnings.js\";\nimport ajvOrig from \"./ajv.js\";\nimport configSchema from \"../../conf/config-schema.js\";\nimport BuiltInEnvironments from \"../../conf/environments.js\";\n\nconst ajv = ajvOrig();\n\nconst ruleValidators = new WeakMap();\nconst noop = Function.prototype;\n\n//------------------------------------------------------------------------------\n// Private\n//------------------------------------------------------------------------------\nlet validateSchema;\nconst severityMap = {\n error: 2,\n warn: 1,\n off: 0\n};\n\nconst validated = new WeakSet();\n\n//-----------------------------------------------------------------------------\n// Exports\n//-----------------------------------------------------------------------------\n\nexport default class ConfigValidator {\n constructor({ builtInRules = new Map() } = {}) {\n this.builtInRules = builtInRules;\n }\n\n /**\n * Gets a complete options schema for a rule.\n * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object\n * @returns {Object} JSON Schema for the rule's options.\n */\n getRuleOptionsSchema(rule) {\n if (!rule) {\n return null;\n }\n\n const schema = rule.schema || rule.meta && rule.meta.schema;\n\n // Given a tuple of schemas, insert warning level at the beginning\n if (Array.isArray(schema)) {\n if (schema.length) {\n return {\n type: \"array\",\n items: schema,\n minItems: 0,\n maxItems: schema.length\n };\n }\n return {\n type: \"array\",\n minItems: 0,\n maxItems: 0\n };\n\n }\n\n // Given a full schema, leave it alone\n return schema || null;\n }\n\n /**\n * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid.\n * @param {options} options The given options for the rule.\n * @returns {number|string} The rule's severity value\n */\n validateRuleSeverity(options) {\n const severity = Array.isArray(options) ? options[0] : options;\n const normSeverity = typeof severity === \"string\" ? severityMap[severity.toLowerCase()] : severity;\n\n if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) {\n return normSeverity;\n }\n\n throw new Error(`\\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util.inspect(severity).replace(/'/gu, \"\\\"\").replace(/\\n/gu, \"\")}').\\n`);\n\n }\n\n /**\n * Validates the non-severity options passed to a rule, based on its schema.\n * @param {{create: Function}} rule The rule to validate\n * @param {Array} localOptions The options for the rule, excluding severity\n * @returns {void}\n */\n validateRuleSchema(rule, localOptions) {\n if (!ruleValidators.has(rule)) {\n const schema = this.getRuleOptionsSchema(rule);\n\n if (schema) {\n ruleValidators.set(rule, ajv.compile(schema));\n }\n }\n\n const validateRule = ruleValidators.get(rule);\n\n if (validateRule) {\n validateRule(localOptions);\n if (validateRule.errors) {\n throw new Error(validateRule.errors.map(\n error => `\\tValue ${JSON.stringify(error.data)} ${error.message}.\\n`\n ).join(\"\"));\n }\n }\n }\n\n /**\n * Validates a rule's options against its schema.\n * @param {{create: Function}|null} rule The rule that the config is being validated for\n * @param {string} ruleId The rule's unique name.\n * @param {Array|number} options The given options for the rule.\n * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined,\n * no source is prepended to the message.\n * @returns {void}\n */\n validateRuleOptions(rule, ruleId, options, source = null) {\n try {\n const severity = this.validateRuleSeverity(options);\n\n if (severity !== 0) {\n this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []);\n }\n } catch (err) {\n const enhancedMessage = `Configuration for rule \"${ruleId}\" is invalid:\\n${err.message}`;\n\n if (typeof source === \"string\") {\n throw new Error(`${source}:\\n\\t${enhancedMessage}`);\n } else {\n throw new Error(enhancedMessage);\n }\n }\n }\n\n /**\n * Validates an environment object\n * @param {Object} environment The environment config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments.\n * @returns {void}\n */\n validateEnvironment(\n environment,\n source,\n getAdditionalEnv = noop\n ) {\n\n // not having an environment is ok\n if (!environment) {\n return;\n }\n\n Object.keys(environment).forEach(id => {\n const env = getAdditionalEnv(id) || BuiltInEnvironments.get(id) || null;\n\n if (!env) {\n const message = `${source}:\\n\\tEnvironment key \"${id}\" is unknown\\n`;\n\n throw new Error(message);\n }\n });\n }\n\n /**\n * Validates a rules config object\n * @param {Object} rulesConfig The rules config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules\n * @returns {void}\n */\n validateRules(\n rulesConfig,\n source,\n getAdditionalRule = noop\n ) {\n if (!rulesConfig) {\n return;\n }\n\n Object.keys(rulesConfig).forEach(id => {\n const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null;\n\n this.validateRuleOptions(rule, id, rulesConfig[id], source);\n });\n }\n\n /**\n * Validates a `globals` section of a config file\n * @param {Object} globalsConfig The `globals` section\n * @param {string|null} source The name of the configuration source to report in the event of an error.\n * @returns {void}\n */\n validateGlobals(globalsConfig, source = null) {\n if (!globalsConfig) {\n return;\n }\n\n Object.entries(globalsConfig)\n .forEach(([configuredGlobal, configuredValue]) => {\n try {\n ConfigOps.normalizeConfigGlobal(configuredValue);\n } catch (err) {\n throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\\n${err.message}`);\n }\n });\n }\n\n /**\n * Validate `processor` configuration.\n * @param {string|undefined} processorName The processor name.\n * @param {string} source The name of config file.\n * @param {function(id:string): Processor} getProcessor The getter of defined processors.\n * @returns {void}\n */\n validateProcessor(processorName, source, getProcessor) {\n if (processorName && !getProcessor(processorName)) {\n throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`);\n }\n }\n\n /**\n * Formats an array of schema validation errors.\n * @param {Array} errors An array of error messages to format.\n * @returns {string} Formatted error message\n */\n formatErrors(errors) {\n return errors.map(error => {\n if (error.keyword === \"additionalProperties\") {\n const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty;\n\n return `Unexpected top-level property \"${formattedPropertyPath}\"`;\n }\n if (error.keyword === \"type\") {\n const formattedField = error.dataPath.slice(1);\n const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join(\"/\") : error.schema;\n const formattedValue = JSON.stringify(error.data);\n\n return `Property \"${formattedField}\" is the wrong type (expected ${formattedExpectedType} but got \\`${formattedValue}\\`)`;\n }\n\n const field = error.dataPath[0] === \".\" ? error.dataPath.slice(1) : error.dataPath;\n\n return `\"${field}\" ${error.message}. Value: ${JSON.stringify(error.data)}`;\n }).map(message => `\\t- ${message}.\\n`).join(\"\");\n }\n\n /**\n * Validates the top level properties of the config object.\n * @param {Object} config The config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @returns {void}\n */\n validateConfigSchema(config, source = null) {\n validateSchema = validateSchema || ajv.compile(configSchema);\n\n if (!validateSchema(config)) {\n throw new Error(`ESLint configuration in ${source} is invalid:\\n${this.formatErrors(validateSchema.errors)}`);\n }\n\n if (Object.hasOwnProperty.call(config, \"ecmaFeatures\")) {\n emitDeprecationWarning(source, \"ESLINT_LEGACY_ECMAFEATURES\");\n }\n }\n\n /**\n * Validates an entire config object.\n * @param {Object} config The config object to validate.\n * @param {string} source The name of the configuration source to report in any errors.\n * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules.\n * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs.\n * @returns {void}\n */\n validate(config, source, getAdditionalRule, getAdditionalEnv) {\n this.validateConfigSchema(config, source);\n this.validateRules(config.rules, source, getAdditionalRule);\n this.validateEnvironment(config.env, source, getAdditionalEnv);\n this.validateGlobals(config.globals, source);\n\n for (const override of config.overrides || []) {\n this.validateRules(override.rules, source, getAdditionalRule);\n this.validateEnvironment(override.env, source, getAdditionalEnv);\n this.validateGlobals(config.globals, source);\n }\n }\n\n /**\n * Validate config array object.\n * @param {ConfigArray} configArray The config array to validate.\n * @returns {void}\n */\n validateConfigArray(configArray) {\n const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments);\n const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors);\n const getPluginRule = Map.prototype.get.bind(configArray.pluginRules);\n\n // Validate.\n for (const element of configArray) {\n if (validated.has(element)) {\n continue;\n }\n validated.add(element);\n\n this.validateEnvironment(element.env, element.name, getPluginEnv);\n this.validateGlobals(element.globals, element.name);\n this.validateProcessor(element.processor, element.name, getPluginProcessor);\n this.validateRules(element.rules, element.name, getPluginRule);\n }\n }\n\n}\n","/**\n * @fileoverview Common helpers for naming of plugins, formatters and configs\n */\n\nconst NAMESPACE_REGEX = /^@.*\\//iu;\n\n/**\n * Brings package name to correct format based on prefix\n * @param {string} name The name of the package.\n * @param {string} prefix Can be either \"eslint-plugin\", \"eslint-config\" or \"eslint-formatter\"\n * @returns {string} Normalized name of the package\n * @private\n */\nfunction normalizePackageName(name, prefix) {\n let normalizedName = name;\n\n /**\n * On Windows, name can come in with Windows slashes instead of Unix slashes.\n * Normalize to Unix first to avoid errors later on.\n * https://github.com/eslint/eslint/issues/5644\n */\n if (normalizedName.includes(\"\\\\\")) {\n normalizedName = normalizedName.replace(/\\\\/gu, \"/\");\n }\n\n if (normalizedName.charAt(0) === \"@\") {\n\n /**\n * it's a scoped package\n * package name is the prefix, or just a username\n */\n const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, \"u\"),\n scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, \"u\");\n\n if (scopedPackageShortcutRegex.test(normalizedName)) {\n normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`);\n } else if (!scopedPackageNameRegex.test(normalizedName.split(\"/\")[1])) {\n\n /**\n * for scoped packages, insert the prefix after the first / unless\n * the path is already @scope/eslint or @scope/eslint-xxx-yyy\n */\n normalizedName = normalizedName.replace(/^@([^/]+)\\/(.*)$/u, `@$1/${prefix}-$2`);\n }\n } else if (!normalizedName.startsWith(`${prefix}-`)) {\n normalizedName = `${prefix}-${normalizedName}`;\n }\n\n return normalizedName;\n}\n\n/**\n * Removes the prefix from a fullname.\n * @param {string} fullname The term which may have the prefix.\n * @param {string} prefix The prefix to remove.\n * @returns {string} The term without prefix.\n */\nfunction getShorthandName(fullname, prefix) {\n if (fullname[0] === \"@\") {\n let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, \"u\").exec(fullname);\n\n if (matchResult) {\n return matchResult[1];\n }\n\n matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, \"u\").exec(fullname);\n if (matchResult) {\n return `${matchResult[1]}/${matchResult[2]}`;\n }\n } else if (fullname.startsWith(`${prefix}-`)) {\n return fullname.slice(prefix.length + 1);\n }\n\n return fullname;\n}\n\n/**\n * Gets the scope (namespace) of a term.\n * @param {string} term The term which may have the namespace.\n * @returns {string} The namespace of the term if it has one.\n */\nfunction getNamespaceFromTerm(term) {\n const match = term.match(NAMESPACE_REGEX);\n\n return match ? match[0] : \"\";\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\nexport {\n normalizePackageName,\n getShorthandName,\n getNamespaceFromTerm\n};\n","/**\n * Utility for resolving a module relative to another module\n * @author Teddy Katz\n */\n\nimport Module from \"module\";\n\n/*\n * `Module.createRequire` is added in v12.2.0. It supports URL as well.\n * We only support the case where the argument is a filepath, not a URL.\n */\nconst createRequire = Module.createRequire;\n\n/**\n * Resolves a Node module relative to another module\n * @param {string} moduleName The name of a Node module, or a path to a Node module.\n * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be\n * a file rather than a directory, but the file need not actually exist.\n * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath`\n */\nfunction resolve(moduleName, relativeToPath) {\n try {\n return createRequire(relativeToPath).resolve(moduleName);\n } catch (error) {\n\n // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future.\n if (\n typeof error === \"object\" &&\n error !== null &&\n error.code === \"MODULE_NOT_FOUND\" &&\n !error.requireStack &&\n error.message.includes(moduleName)\n ) {\n error.message += `\\nRequire stack:\\n- ${relativeToPath}`;\n }\n throw error;\n }\n}\n\nexport {\n resolve\n};\n","/**\n * @fileoverview The factory of `ConfigArray` objects.\n *\n * This class provides methods to create `ConfigArray` instance.\n *\n * - `create(configData, options)`\n * Create a `ConfigArray` instance from a config data. This is to handle CLI\n * options except `--config`.\n * - `loadFile(filePath, options)`\n * Create a `ConfigArray` instance from a config file. This is to handle\n * `--config` option. If the file was not found, throws the following error:\n * - If the filename was `*.js`, a `MODULE_NOT_FOUND` error.\n * - If the filename was `package.json`, an IO error or an\n * `ESLINT_CONFIG_FIELD_NOT_FOUND` error.\n * - Otherwise, an IO error such as `ENOENT`.\n * - `loadInDirectory(directoryPath, options)`\n * Create a `ConfigArray` instance from a config file which is on a given\n * directory. This tries to load `.eslintrc.*` or `package.json`. If not\n * found, returns an empty `ConfigArray`.\n * - `loadESLintIgnore(filePath)`\n * Create a `ConfigArray` instance from a config file that is `.eslintignore`\n * format. This is to handle `--ignore-path` option.\n * - `loadDefaultESLintIgnore()`\n * Create a `ConfigArray` instance from `.eslintignore` or `package.json` in\n * the current working directory.\n *\n * `ConfigArrayFactory` class has the responsibility that loads configuration\n * files, including loading `extends`, `parser`, and `plugins`. The created\n * `ConfigArray` instance has the loaded `extends`, `parser`, and `plugins`.\n *\n * But this class doesn't handle cascading. `CascadingConfigArrayFactory` class\n * handles cascading and hierarchy.\n *\n * @author Toru Nagashima \n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport debugOrig from \"debug\";\nimport fs from \"fs\";\nimport importFresh from \"import-fresh\";\nimport { createRequire } from \"module\";\nimport path from \"path\";\nimport stripComments from \"strip-json-comments\";\n\nimport {\n ConfigArray,\n ConfigDependency,\n IgnorePattern,\n OverrideTester\n} from \"./config-array/index.js\";\nimport ConfigValidator from \"./shared/config-validator.js\";\nimport * as naming from \"./shared/naming.js\";\nimport * as ModuleResolver from \"./shared/relative-module-resolver.js\";\n\nconst require = createRequire(import.meta.url);\n\nconst debug = debugOrig(\"eslintrc:config-array-factory\");\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\nconst configFilenames = [\n \".eslintrc.js\",\n \".eslintrc.cjs\",\n \".eslintrc.yaml\",\n \".eslintrc.yml\",\n \".eslintrc.json\",\n \".eslintrc\",\n \"package.json\"\n];\n\n// Define types for VSCode IntelliSense.\n/** @typedef {import(\"./shared/types\").ConfigData} ConfigData */\n/** @typedef {import(\"./shared/types\").OverrideConfigData} OverrideConfigData */\n/** @typedef {import(\"./shared/types\").Parser} Parser */\n/** @typedef {import(\"./shared/types\").Plugin} Plugin */\n/** @typedef {import(\"./shared/types\").Rule} Rule */\n/** @typedef {import(\"./config-array/config-dependency\").DependentParser} DependentParser */\n/** @typedef {import(\"./config-array/config-dependency\").DependentPlugin} DependentPlugin */\n/** @typedef {ConfigArray[0]} ConfigArrayElement */\n\n/**\n * @typedef {Object} ConfigArrayFactoryOptions\n * @property {Map} [additionalPluginPool] The map for additional plugins.\n * @property {string} [cwd] The path to the current working directory.\n * @property {string} [resolvePluginsRelativeTo] A path to the directory that plugins should be resolved from. Defaults to `cwd`.\n * @property {Map} builtInRules The rules that are built in to ESLint.\n * @property {Object} [resolver=ModuleResolver] The module resolver object.\n * @property {string} eslintAllPath The path to the definitions for eslint:all.\n * @property {Function} getEslintAllConfig Returns the config data for eslint:all.\n * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.\n * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.\n */\n\n/**\n * @typedef {Object} ConfigArrayFactoryInternalSlots\n * @property {Map} additionalPluginPool The map for additional plugins.\n * @property {string} cwd The path to the current working directory.\n * @property {string | undefined} resolvePluginsRelativeTo An absolute path the the directory that plugins should be resolved from.\n * @property {Map} builtInRules The rules that are built in to ESLint.\n * @property {Object} [resolver=ModuleResolver] The module resolver object.\n * @property {string} eslintAllPath The path to the definitions for eslint:all.\n * @property {Function} getEslintAllConfig Returns the config data for eslint:all.\n * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.\n * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.\n */\n\n/**\n * @typedef {Object} ConfigArrayFactoryLoadingContext\n * @property {string} filePath The path to the current configuration.\n * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.\n * @property {string} name The name of the current configuration.\n * @property {string} pluginBasePath The base path to resolve plugins.\n * @property {\"config\" | \"ignore\" | \"implicit-processor\"} type The type of the current configuration. This is `\"config\"` in normal. This is `\"ignore\"` if it came from `.eslintignore`. This is `\"implicit-processor\"` if it came from legacy file-extension processors.\n */\n\n/**\n * @typedef {Object} ConfigArrayFactoryLoadingContext\n * @property {string} filePath The path to the current configuration.\n * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.\n * @property {string} name The name of the current configuration.\n * @property {\"config\" | \"ignore\" | \"implicit-processor\"} type The type of the current configuration. This is `\"config\"` in normal. This is `\"ignore\"` if it came from `.eslintignore`. This is `\"implicit-processor\"` if it came from legacy file-extension processors.\n */\n\n/** @type {WeakMap} */\nconst internalSlotsMap = new WeakMap();\n\n/** @type {WeakMap} */\nconst normalizedPlugins = new WeakMap();\n\n/**\n * Check if a given string is a file path.\n * @param {string} nameOrPath A module name or file path.\n * @returns {boolean} `true` if the `nameOrPath` is a file path.\n */\nfunction isFilePath(nameOrPath) {\n return (\n /^\\.{1,2}[/\\\\]/u.test(nameOrPath) ||\n path.isAbsolute(nameOrPath)\n );\n}\n\n/**\n * Convenience wrapper for synchronously reading file contents.\n * @param {string} filePath The filename to read.\n * @returns {string} The file contents, with the BOM removed.\n * @private\n */\nfunction readFile(filePath) {\n return fs.readFileSync(filePath, \"utf8\").replace(/^\\ufeff/u, \"\");\n}\n\n/**\n * Loads a YAML configuration from a file.\n * @param {string} filePath The filename to load.\n * @returns {ConfigData} The configuration object from the file.\n * @throws {Error} If the file cannot be read.\n * @private\n */\nfunction loadYAMLConfigFile(filePath) {\n debug(`Loading YAML config file: ${filePath}`);\n\n // lazy load YAML to improve performance when not used\n const yaml = require(\"js-yaml\");\n\n try {\n\n // empty YAML file can be null, so always use\n return yaml.load(readFile(filePath)) || {};\n } catch (e) {\n debug(`Error reading YAML file: ${filePath}`);\n e.message = `Cannot read config file: ${filePath}\\nError: ${e.message}`;\n throw e;\n }\n}\n\n/**\n * Loads a JSON configuration from a file.\n * @param {string} filePath The filename to load.\n * @returns {ConfigData} The configuration object from the file.\n * @throws {Error} If the file cannot be read.\n * @private\n */\nfunction loadJSONConfigFile(filePath) {\n debug(`Loading JSON config file: ${filePath}`);\n\n try {\n return JSON.parse(stripComments(readFile(filePath)));\n } catch (e) {\n debug(`Error reading JSON file: ${filePath}`);\n e.message = `Cannot read config file: ${filePath}\\nError: ${e.message}`;\n e.messageTemplate = \"failed-to-read-json\";\n e.messageData = {\n path: filePath,\n message: e.message\n };\n throw e;\n }\n}\n\n/**\n * Loads a legacy (.eslintrc) configuration from a file.\n * @param {string} filePath The filename to load.\n * @returns {ConfigData} The configuration object from the file.\n * @throws {Error} If the file cannot be read.\n * @private\n */\nfunction loadLegacyConfigFile(filePath) {\n debug(`Loading legacy config file: ${filePath}`);\n\n // lazy load YAML to improve performance when not used\n const yaml = require(\"js-yaml\");\n\n try {\n return yaml.load(stripComments(readFile(filePath))) || /* istanbul ignore next */ {};\n } catch (e) {\n debug(\"Error reading YAML file: %s\\n%o\", filePath, e);\n e.message = `Cannot read config file: ${filePath}\\nError: ${e.message}`;\n throw e;\n }\n}\n\n/**\n * Loads a JavaScript configuration from a file.\n * @param {string} filePath The filename to load.\n * @returns {ConfigData} The configuration object from the file.\n * @throws {Error} If the file cannot be read.\n * @private\n */\nfunction loadJSConfigFile(filePath) {\n debug(`Loading JS config file: ${filePath}`);\n try {\n return importFresh(filePath);\n } catch (e) {\n debug(`Error reading JavaScript file: ${filePath}`);\n e.message = `Cannot read config file: ${filePath}\\nError: ${e.message}`;\n throw e;\n }\n}\n\n/**\n * Loads a configuration from a package.json file.\n * @param {string} filePath The filename to load.\n * @returns {ConfigData} The configuration object from the file.\n * @throws {Error} If the file cannot be read.\n * @private\n */\nfunction loadPackageJSONConfigFile(filePath) {\n debug(`Loading package.json config file: ${filePath}`);\n try {\n const packageData = loadJSONConfigFile(filePath);\n\n if (!Object.hasOwnProperty.call(packageData, \"eslintConfig\")) {\n throw Object.assign(\n new Error(\"package.json file doesn't have 'eslintConfig' field.\"),\n { code: \"ESLINT_CONFIG_FIELD_NOT_FOUND\" }\n );\n }\n\n return packageData.eslintConfig;\n } catch (e) {\n debug(`Error reading package.json file: ${filePath}`);\n e.message = `Cannot read config file: ${filePath}\\nError: ${e.message}`;\n throw e;\n }\n}\n\n/**\n * Loads a `.eslintignore` from a file.\n * @param {string} filePath The filename to load.\n * @returns {string[]} The ignore patterns from the file.\n * @private\n */\nfunction loadESLintIgnoreFile(filePath) {\n debug(`Loading .eslintignore file: ${filePath}`);\n\n try {\n return readFile(filePath)\n .split(/\\r?\\n/gu)\n .filter(line => line.trim() !== \"\" && !line.startsWith(\"#\"));\n } catch (e) {\n debug(`Error reading .eslintignore file: ${filePath}`);\n e.message = `Cannot read .eslintignore file: ${filePath}\\nError: ${e.message}`;\n throw e;\n }\n}\n\n/**\n * Creates an error to notify about a missing config to extend from.\n * @param {string} configName The name of the missing config.\n * @param {string} importerName The name of the config that imported the missing config\n * @param {string} messageTemplate The text template to source error strings from.\n * @returns {Error} The error object to throw\n * @private\n */\nfunction configInvalidError(configName, importerName, messageTemplate) {\n return Object.assign(\n new Error(`Failed to load config \"${configName}\" to extend from.`),\n {\n messageTemplate,\n messageData: { configName, importerName }\n }\n );\n}\n\n/**\n * Loads a configuration file regardless of the source. Inspects the file path\n * to determine the correctly way to load the config file.\n * @param {string} filePath The path to the configuration.\n * @returns {ConfigData|null} The configuration information.\n * @private\n */\nfunction loadConfigFile(filePath) {\n switch (path.extname(filePath)) {\n case \".js\":\n case \".cjs\":\n return loadJSConfigFile(filePath);\n\n case \".json\":\n if (path.basename(filePath) === \"package.json\") {\n return loadPackageJSONConfigFile(filePath);\n }\n return loadJSONConfigFile(filePath);\n\n case \".yaml\":\n case \".yml\":\n return loadYAMLConfigFile(filePath);\n\n default:\n return loadLegacyConfigFile(filePath);\n }\n}\n\n/**\n * Write debug log.\n * @param {string} request The requested module name.\n * @param {string} relativeTo The file path to resolve the request relative to.\n * @param {string} filePath The resolved file path.\n * @returns {void}\n */\nfunction writeDebugLogForLoading(request, relativeTo, filePath) {\n /* istanbul ignore next */\n if (debug.enabled) {\n let nameAndVersion = null;\n\n try {\n const packageJsonPath = ModuleResolver.resolve(\n `${request}/package.json`,\n relativeTo\n );\n const { version = \"unknown\" } = require(packageJsonPath);\n\n nameAndVersion = `${request}@${version}`;\n } catch (error) {\n debug(\"package.json was not found:\", error.message);\n nameAndVersion = request;\n }\n\n debug(\"Loaded: %s (%s)\", nameAndVersion, filePath);\n }\n}\n\n/**\n * Create a new context with default values.\n * @param {ConfigArrayFactoryInternalSlots} slots The internal slots.\n * @param {\"config\" | \"ignore\" | \"implicit-processor\" | undefined} providedType The type of the current configuration. Default is `\"config\"`.\n * @param {string | undefined} providedName The name of the current configuration. Default is the relative path from `cwd` to `filePath`.\n * @param {string | undefined} providedFilePath The path to the current configuration. Default is empty string.\n * @param {string | undefined} providedMatchBasePath The type of the current configuration. Default is the directory of `filePath` or `cwd`.\n * @returns {ConfigArrayFactoryLoadingContext} The created context.\n */\nfunction createContext(\n { cwd, resolvePluginsRelativeTo },\n providedType,\n providedName,\n providedFilePath,\n providedMatchBasePath\n) {\n const filePath = providedFilePath\n ? path.resolve(cwd, providedFilePath)\n : \"\";\n const matchBasePath =\n (providedMatchBasePath && path.resolve(cwd, providedMatchBasePath)) ||\n (filePath && path.dirname(filePath)) ||\n cwd;\n const name =\n providedName ||\n (filePath && path.relative(cwd, filePath)) ||\n \"\";\n const pluginBasePath =\n resolvePluginsRelativeTo ||\n (filePath && path.dirname(filePath)) ||\n cwd;\n const type = providedType || \"config\";\n\n return { filePath, matchBasePath, name, pluginBasePath, type };\n}\n\n/**\n * Normalize a given plugin.\n * - Ensure the object to have four properties: configs, environments, processors, and rules.\n * - Ensure the object to not have other properties.\n * @param {Plugin} plugin The plugin to normalize.\n * @returns {Plugin} The normalized plugin.\n */\nfunction normalizePlugin(plugin) {\n\n // first check the cache\n let normalizedPlugin = normalizedPlugins.get(plugin);\n\n if (normalizedPlugin) {\n return normalizedPlugin;\n }\n\n normalizedPlugin = {\n configs: plugin.configs || {},\n environments: plugin.environments || {},\n processors: plugin.processors || {},\n rules: plugin.rules || {}\n };\n\n // save the reference for later\n normalizedPlugins.set(plugin, normalizedPlugin);\n\n return normalizedPlugin;\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\n/**\n * The factory of `ConfigArray` objects.\n */\nclass ConfigArrayFactory {\n\n /**\n * Initialize this instance.\n * @param {ConfigArrayFactoryOptions} [options] The map for additional plugins.\n */\n constructor({\n additionalPluginPool = new Map(),\n cwd = process.cwd(),\n resolvePluginsRelativeTo,\n builtInRules,\n resolver = ModuleResolver,\n eslintAllPath,\n getEslintAllConfig,\n eslintRecommendedPath,\n getEslintRecommendedConfig\n } = {}) {\n internalSlotsMap.set(this, {\n additionalPluginPool,\n cwd,\n resolvePluginsRelativeTo:\n resolvePluginsRelativeTo &&\n path.resolve(cwd, resolvePluginsRelativeTo),\n builtInRules,\n resolver,\n eslintAllPath,\n getEslintAllConfig,\n eslintRecommendedPath,\n getEslintRecommendedConfig\n });\n }\n\n /**\n * Create `ConfigArray` instance from a config data.\n * @param {ConfigData|null} configData The config data to create.\n * @param {Object} [options] The options.\n * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.\n * @param {string} [options.filePath] The path to this config data.\n * @param {string} [options.name] The config name.\n * @returns {ConfigArray} Loaded config.\n */\n create(configData, { basePath, filePath, name } = {}) {\n if (!configData) {\n return new ConfigArray();\n }\n\n const slots = internalSlotsMap.get(this);\n const ctx = createContext(slots, \"config\", name, filePath, basePath);\n const elements = this._normalizeConfigData(configData, ctx);\n\n return new ConfigArray(...elements);\n }\n\n /**\n * Load a config file.\n * @param {string} filePath The path to a config file.\n * @param {Object} [options] The options.\n * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.\n * @param {string} [options.name] The config name.\n * @returns {ConfigArray} Loaded config.\n */\n loadFile(filePath, { basePath, name } = {}) {\n const slots = internalSlotsMap.get(this);\n const ctx = createContext(slots, \"config\", name, filePath, basePath);\n\n return new ConfigArray(...this._loadConfigData(ctx));\n }\n\n /**\n * Load the config file on a given directory if exists.\n * @param {string} directoryPath The path to a directory.\n * @param {Object} [options] The options.\n * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`.\n * @param {string} [options.name] The config name.\n * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.\n */\n loadInDirectory(directoryPath, { basePath, name } = {}) {\n const slots = internalSlotsMap.get(this);\n\n for (const filename of configFilenames) {\n const ctx = createContext(\n slots,\n \"config\",\n name,\n path.join(directoryPath, filename),\n basePath\n );\n\n if (fs.existsSync(ctx.filePath) && fs.statSync(ctx.filePath).isFile()) {\n let configData;\n\n try {\n configData = loadConfigFile(ctx.filePath);\n } catch (error) {\n if (!error || error.code !== \"ESLINT_CONFIG_FIELD_NOT_FOUND\") {\n throw error;\n }\n }\n\n if (configData) {\n debug(`Config file found: ${ctx.filePath}`);\n return new ConfigArray(\n ...this._normalizeConfigData(configData, ctx)\n );\n }\n }\n }\n\n debug(`Config file not found on ${directoryPath}`);\n return new ConfigArray();\n }\n\n /**\n * Check if a config file on a given directory exists or not.\n * @param {string} directoryPath The path to a directory.\n * @returns {string | null} The path to the found config file. If not found then null.\n */\n static getPathToConfigFileInDirectory(directoryPath) {\n for (const filename of configFilenames) {\n const filePath = path.join(directoryPath, filename);\n\n if (fs.existsSync(filePath)) {\n if (filename === \"package.json\") {\n try {\n loadPackageJSONConfigFile(filePath);\n return filePath;\n } catch { /* ignore */ }\n } else {\n return filePath;\n }\n }\n }\n return null;\n }\n\n /**\n * Load `.eslintignore` file.\n * @param {string} filePath The path to a `.eslintignore` file to load.\n * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.\n */\n loadESLintIgnore(filePath) {\n const slots = internalSlotsMap.get(this);\n const ctx = createContext(\n slots,\n \"ignore\",\n void 0,\n filePath,\n slots.cwd\n );\n const ignorePatterns = loadESLintIgnoreFile(ctx.filePath);\n\n return new ConfigArray(\n ...this._normalizeESLintIgnoreData(ignorePatterns, ctx)\n );\n }\n\n /**\n * Load `.eslintignore` file in the current working directory.\n * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist.\n */\n loadDefaultESLintIgnore() {\n const slots = internalSlotsMap.get(this);\n const eslintIgnorePath = path.resolve(slots.cwd, \".eslintignore\");\n const packageJsonPath = path.resolve(slots.cwd, \"package.json\");\n\n if (fs.existsSync(eslintIgnorePath)) {\n return this.loadESLintIgnore(eslintIgnorePath);\n }\n if (fs.existsSync(packageJsonPath)) {\n const data = loadJSONConfigFile(packageJsonPath);\n\n if (Object.hasOwnProperty.call(data, \"eslintIgnore\")) {\n if (!Array.isArray(data.eslintIgnore)) {\n throw new Error(\"Package.json eslintIgnore property requires an array of paths\");\n }\n const ctx = createContext(\n slots,\n \"ignore\",\n \"eslintIgnore in package.json\",\n packageJsonPath,\n slots.cwd\n );\n\n return new ConfigArray(\n ...this._normalizeESLintIgnoreData(data.eslintIgnore, ctx)\n );\n }\n }\n\n return new ConfigArray();\n }\n\n /**\n * Load a given config file.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} Loaded config.\n * @private\n */\n _loadConfigData(ctx) {\n return this._normalizeConfigData(loadConfigFile(ctx.filePath), ctx);\n }\n\n /**\n * Normalize a given `.eslintignore` data to config array elements.\n * @param {string[]} ignorePatterns The patterns to ignore files.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n *_normalizeESLintIgnoreData(ignorePatterns, ctx) {\n const elements = this._normalizeObjectConfigData(\n { ignorePatterns },\n ctx\n );\n\n // Set `ignorePattern.loose` flag for backward compatibility.\n for (const element of elements) {\n if (element.ignorePattern) {\n element.ignorePattern.loose = true;\n }\n yield element;\n }\n }\n\n /**\n * Normalize a given config to an array.\n * @param {ConfigData} configData The config data to normalize.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n _normalizeConfigData(configData, ctx) {\n const validator = new ConfigValidator();\n\n validator.validateConfigSchema(configData, ctx.name || ctx.filePath);\n return this._normalizeObjectConfigData(configData, ctx);\n }\n\n /**\n * Normalize a given config to an array.\n * @param {ConfigData|OverrideConfigData} configData The config data to normalize.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n *_normalizeObjectConfigData(configData, ctx) {\n const { files, excludedFiles, ...configBody } = configData;\n const criteria = OverrideTester.create(\n files,\n excludedFiles,\n ctx.matchBasePath\n );\n const elements = this._normalizeObjectConfigDataBody(configBody, ctx);\n\n // Apply the criteria to every element.\n for (const element of elements) {\n\n /*\n * Merge the criteria.\n * This is for the `overrides` entries that came from the\n * configurations of `overrides[].extends`.\n */\n element.criteria = OverrideTester.and(criteria, element.criteria);\n\n /*\n * Remove `root` property to ignore `root` settings which came from\n * `extends` in `overrides`.\n */\n if (element.criteria) {\n element.root = void 0;\n }\n\n yield element;\n }\n }\n\n /**\n * Normalize a given config to an array.\n * @param {ConfigData} configData The config data to normalize.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n *_normalizeObjectConfigDataBody(\n {\n env,\n extends: extend,\n globals,\n ignorePatterns,\n noInlineConfig,\n parser: parserName,\n parserOptions,\n plugins: pluginList,\n processor,\n reportUnusedDisableDirectives,\n root,\n rules,\n settings,\n overrides: overrideList = []\n },\n ctx\n ) {\n const extendList = Array.isArray(extend) ? extend : [extend];\n const ignorePattern = ignorePatterns && new IgnorePattern(\n Array.isArray(ignorePatterns) ? ignorePatterns : [ignorePatterns],\n ctx.matchBasePath\n );\n\n // Flatten `extends`.\n for (const extendName of extendList.filter(Boolean)) {\n yield* this._loadExtends(extendName, ctx);\n }\n\n // Load parser & plugins.\n const parser = parserName && this._loadParser(parserName, ctx);\n const plugins = pluginList && this._loadPlugins(pluginList, ctx);\n\n // Yield pseudo config data for file extension processors.\n if (plugins) {\n yield* this._takeFileExtensionProcessors(plugins, ctx);\n }\n\n // Yield the config data except `extends` and `overrides`.\n yield {\n\n // Debug information.\n type: ctx.type,\n name: ctx.name,\n filePath: ctx.filePath,\n\n // Config data.\n criteria: null,\n env,\n globals,\n ignorePattern,\n noInlineConfig,\n parser,\n parserOptions,\n plugins,\n processor,\n reportUnusedDisableDirectives,\n root,\n rules,\n settings\n };\n\n // Flatten `overries`.\n for (let i = 0; i < overrideList.length; ++i) {\n yield* this._normalizeObjectConfigData(\n overrideList[i],\n { ...ctx, name: `${ctx.name}#overrides[${i}]` }\n );\n }\n }\n\n /**\n * Load configs of an element in `extends`.\n * @param {string} extendName The name of a base config.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n _loadExtends(extendName, ctx) {\n debug(\"Loading {extends:%j} relative to %s\", extendName, ctx.filePath);\n try {\n if (extendName.startsWith(\"eslint:\")) {\n return this._loadExtendedBuiltInConfig(extendName, ctx);\n }\n if (extendName.startsWith(\"plugin:\")) {\n return this._loadExtendedPluginConfig(extendName, ctx);\n }\n return this._loadExtendedShareableConfig(extendName, ctx);\n } catch (error) {\n error.message += `\\nReferenced from: ${ctx.filePath || ctx.name}`;\n throw error;\n }\n }\n\n /**\n * Load configs of an element in `extends`.\n * @param {string} extendName The name of a base config.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n _loadExtendedBuiltInConfig(extendName, ctx) {\n const {\n eslintAllPath,\n getEslintAllConfig,\n eslintRecommendedPath,\n getEslintRecommendedConfig\n } = internalSlotsMap.get(this);\n\n if (extendName === \"eslint:recommended\") {\n const name = `${ctx.name} » ${extendName}`;\n\n if (getEslintRecommendedConfig) {\n if (typeof getEslintRecommendedConfig !== \"function\") {\n throw new Error(`getEslintRecommendedConfig must be a function instead of '${getEslintRecommendedConfig}'`);\n }\n return this._normalizeConfigData(getEslintRecommendedConfig(), { ...ctx, name, filePath: \"\" });\n }\n return this._loadConfigData({\n ...ctx,\n name,\n filePath: eslintRecommendedPath\n });\n }\n if (extendName === \"eslint:all\") {\n const name = `${ctx.name} » ${extendName}`;\n\n if (getEslintAllConfig) {\n if (typeof getEslintAllConfig !== \"function\") {\n throw new Error(`getEslintAllConfig must be a function instead of '${getEslintAllConfig}'`);\n }\n return this._normalizeConfigData(getEslintAllConfig(), { ...ctx, name, filePath: \"\" });\n }\n return this._loadConfigData({\n ...ctx,\n name,\n filePath: eslintAllPath\n });\n }\n\n throw configInvalidError(extendName, ctx.name, \"extend-config-missing\");\n }\n\n /**\n * Load configs of an element in `extends`.\n * @param {string} extendName The name of a base config.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n _loadExtendedPluginConfig(extendName, ctx) {\n const slashIndex = extendName.lastIndexOf(\"/\");\n\n if (slashIndex === -1) {\n throw configInvalidError(extendName, ctx.filePath, \"plugin-invalid\");\n }\n\n const pluginName = extendName.slice(\"plugin:\".length, slashIndex);\n const configName = extendName.slice(slashIndex + 1);\n\n if (isFilePath(pluginName)) {\n throw new Error(\"'extends' cannot use a file path for plugins.\");\n }\n\n const plugin = this._loadPlugin(pluginName, ctx);\n const configData =\n plugin.definition &&\n plugin.definition.configs[configName];\n\n if (configData) {\n return this._normalizeConfigData(configData, {\n ...ctx,\n filePath: plugin.filePath || ctx.filePath,\n name: `${ctx.name} » plugin:${plugin.id}/${configName}`\n });\n }\n\n throw plugin.error || configInvalidError(extendName, ctx.filePath, \"extend-config-missing\");\n }\n\n /**\n * Load configs of an element in `extends`.\n * @param {string} extendName The name of a base config.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The normalized config.\n * @private\n */\n _loadExtendedShareableConfig(extendName, ctx) {\n const { cwd, resolver } = internalSlotsMap.get(this);\n const relativeTo = ctx.filePath || path.join(cwd, \"__placeholder__.js\");\n let request;\n\n if (isFilePath(extendName)) {\n request = extendName;\n } else if (extendName.startsWith(\".\")) {\n request = `./${extendName}`; // For backward compatibility. A ton of tests depended on this behavior.\n } else {\n request = naming.normalizePackageName(\n extendName,\n \"eslint-config\"\n );\n }\n\n let filePath;\n\n try {\n filePath = resolver.resolve(request, relativeTo);\n } catch (error) {\n /* istanbul ignore else */\n if (error && error.code === \"MODULE_NOT_FOUND\") {\n throw configInvalidError(extendName, ctx.filePath, \"extend-config-missing\");\n }\n throw error;\n }\n\n writeDebugLogForLoading(request, relativeTo, filePath);\n return this._loadConfigData({\n ...ctx,\n filePath,\n name: `${ctx.name} » ${request}`\n });\n }\n\n /**\n * Load given plugins.\n * @param {string[]} names The plugin names to load.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {Record} The loaded parser.\n * @private\n */\n _loadPlugins(names, ctx) {\n return names.reduce((map, name) => {\n if (isFilePath(name)) {\n throw new Error(\"Plugins array cannot includes file paths.\");\n }\n const plugin = this._loadPlugin(name, ctx);\n\n map[plugin.id] = plugin;\n\n return map;\n }, {});\n }\n\n /**\n * Load a given parser.\n * @param {string} nameOrPath The package name or the path to a parser file.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {DependentParser} The loaded parser.\n */\n _loadParser(nameOrPath, ctx) {\n debug(\"Loading parser %j from %s\", nameOrPath, ctx.filePath);\n\n const { cwd, resolver } = internalSlotsMap.get(this);\n const relativeTo = ctx.filePath || path.join(cwd, \"__placeholder__.js\");\n\n try {\n const filePath = resolver.resolve(nameOrPath, relativeTo);\n\n writeDebugLogForLoading(nameOrPath, relativeTo, filePath);\n\n return new ConfigDependency({\n definition: require(filePath),\n filePath,\n id: nameOrPath,\n importerName: ctx.name,\n importerPath: ctx.filePath\n });\n } catch (error) {\n\n // If the parser name is \"espree\", load the espree of ESLint.\n if (nameOrPath === \"espree\") {\n debug(\"Fallback espree.\");\n return new ConfigDependency({\n definition: require(\"espree\"),\n filePath: require.resolve(\"espree\"),\n id: nameOrPath,\n importerName: ctx.name,\n importerPath: ctx.filePath\n });\n }\n\n debug(\"Failed to load parser '%s' declared in '%s'.\", nameOrPath, ctx.name);\n error.message = `Failed to load parser '${nameOrPath}' declared in '${ctx.name}': ${error.message}`;\n\n return new ConfigDependency({\n error,\n id: nameOrPath,\n importerName: ctx.name,\n importerPath: ctx.filePath\n });\n }\n }\n\n /**\n * Load a given plugin.\n * @param {string} name The plugin name to load.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {DependentPlugin} The loaded plugin.\n * @private\n */\n _loadPlugin(name, ctx) {\n debug(\"Loading plugin %j from %s\", name, ctx.filePath);\n\n const { additionalPluginPool, resolver } = internalSlotsMap.get(this);\n const request = naming.normalizePackageName(name, \"eslint-plugin\");\n const id = naming.getShorthandName(request, \"eslint-plugin\");\n const relativeTo = path.join(ctx.pluginBasePath, \"__placeholder__.js\");\n\n if (name.match(/\\s+/u)) {\n const error = Object.assign(\n new Error(`Whitespace found in plugin name '${name}'`),\n {\n messageTemplate: \"whitespace-found\",\n messageData: { pluginName: request }\n }\n );\n\n return new ConfigDependency({\n error,\n id,\n importerName: ctx.name,\n importerPath: ctx.filePath\n });\n }\n\n // Check for additional pool.\n const plugin =\n additionalPluginPool.get(request) ||\n additionalPluginPool.get(id);\n\n if (plugin) {\n return new ConfigDependency({\n definition: normalizePlugin(plugin),\n filePath: \"\", // It's unknown where the plugin came from.\n id,\n importerName: ctx.name,\n importerPath: ctx.filePath\n });\n }\n\n let filePath;\n let error;\n\n try {\n filePath = resolver.resolve(request, relativeTo);\n } catch (resolveError) {\n error = resolveError;\n /* istanbul ignore else */\n if (error && error.code === \"MODULE_NOT_FOUND\") {\n error.messageTemplate = \"plugin-missing\";\n error.messageData = {\n pluginName: request,\n resolvePluginsRelativeTo: ctx.pluginBasePath,\n importerName: ctx.name\n };\n }\n }\n\n if (filePath) {\n try {\n writeDebugLogForLoading(request, relativeTo, filePath);\n\n const startTime = Date.now();\n const pluginDefinition = require(filePath);\n\n debug(`Plugin ${filePath} loaded in: ${Date.now() - startTime}ms`);\n\n return new ConfigDependency({\n definition: normalizePlugin(pluginDefinition),\n filePath,\n id,\n importerName: ctx.name,\n importerPath: ctx.filePath\n });\n } catch (loadError) {\n error = loadError;\n }\n }\n\n debug(\"Failed to load plugin '%s' declared in '%s'.\", name, ctx.name);\n error.message = `Failed to load plugin '${name}' declared in '${ctx.name}': ${error.message}`;\n return new ConfigDependency({\n error,\n id,\n importerName: ctx.name,\n importerPath: ctx.filePath\n });\n }\n\n /**\n * Take file expression processors as config array elements.\n * @param {Record} plugins The plugin definitions.\n * @param {ConfigArrayFactoryLoadingContext} ctx The loading context.\n * @returns {IterableIterator} The config array elements of file expression processors.\n * @private\n */\n *_takeFileExtensionProcessors(plugins, ctx) {\n for (const pluginId of Object.keys(plugins)) {\n const processors =\n plugins[pluginId] &&\n plugins[pluginId].definition &&\n plugins[pluginId].definition.processors;\n\n if (!processors) {\n continue;\n }\n\n for (const processorId of Object.keys(processors)) {\n if (processorId.startsWith(\".\")) {\n yield* this._normalizeObjectConfigData(\n {\n files: [`*${processorId}`],\n processor: `${pluginId}/${processorId}`\n },\n {\n ...ctx,\n type: \"implicit-processor\",\n name: `${ctx.name}#processors[\"${pluginId}/${processorId}\"]`\n }\n );\n }\n }\n }\n }\n}\n\nexport { ConfigArrayFactory, createContext };\n","/**\n * @fileoverview `CascadingConfigArrayFactory` class.\n *\n * `CascadingConfigArrayFactory` class has a responsibility:\n *\n * 1. Handles cascading of config files.\n *\n * It provides two methods:\n *\n * - `getConfigArrayForFile(filePath)`\n * Get the corresponded configuration of a given file. This method doesn't\n * throw even if the given file didn't exist.\n * - `clearCache()`\n * Clear the internal cache. You have to call this method when\n * `additionalPluginPool` was updated if `baseConfig` or `cliConfig` depends\n * on the additional plugins. (`CLIEngine#addPlugin()` method calls this.)\n *\n * @author Toru Nagashima \n */\n\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport debugOrig from \"debug\";\nimport os from \"os\";\nimport path from \"path\";\n\nimport { ConfigArrayFactory } from \"./config-array-factory.js\";\nimport {\n ConfigArray,\n ConfigDependency,\n IgnorePattern\n} from \"./config-array/index.js\";\nimport ConfigValidator from \"./shared/config-validator.js\";\nimport { emitDeprecationWarning } from \"./shared/deprecation-warnings.js\";\n\nconst debug = debugOrig(\"eslintrc:cascading-config-array-factory\");\n\n//------------------------------------------------------------------------------\n// Helpers\n//------------------------------------------------------------------------------\n\n// Define types for VSCode IntelliSense.\n/** @typedef {import(\"./shared/types\").ConfigData} ConfigData */\n/** @typedef {import(\"./shared/types\").Parser} Parser */\n/** @typedef {import(\"./shared/types\").Plugin} Plugin */\n/** @typedef {import(\"./shared/types\").Rule} Rule */\n/** @typedef {ReturnType} ConfigArray */\n\n/**\n * @typedef {Object} CascadingConfigArrayFactoryOptions\n * @property {Map} [additionalPluginPool] The map for additional plugins.\n * @property {ConfigData} [baseConfig] The config by `baseConfig` option.\n * @property {ConfigData} [cliConfig] The config by CLI options (`--env`, `--global`, `--ignore-pattern`, `--parser`, `--parser-options`, `--plugin`, and `--rule`). CLI options overwrite the setting in config files.\n * @property {string} [cwd] The base directory to start lookup.\n * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`.\n * @property {string[]} [rulePaths] The value of `--rulesdir` option.\n * @property {string} [specificConfigPath] The value of `--config` option.\n * @property {boolean} [useEslintrc] if `false` then it doesn't load config files.\n * @property {Function} loadRules The function to use to load rules.\n * @property {Map} builtInRules The rules that are built in to ESLint.\n * @property {Object} [resolver=ModuleResolver] The module resolver object.\n * @property {string} eslintAllPath The path to the definitions for eslint:all.\n * @property {Function} getEslintAllConfig Returns the config data for eslint:all.\n * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.\n * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.\n */\n\n/**\n * @typedef {Object} CascadingConfigArrayFactoryInternalSlots\n * @property {ConfigArray} baseConfigArray The config array of `baseConfig` option.\n * @property {ConfigData} baseConfigData The config data of `baseConfig` option. This is used to reset `baseConfigArray`.\n * @property {ConfigArray} cliConfigArray The config array of CLI options.\n * @property {ConfigData} cliConfigData The config data of CLI options. This is used to reset `cliConfigArray`.\n * @property {ConfigArrayFactory} configArrayFactory The factory for config arrays.\n * @property {Map} configCache The cache from directory paths to config arrays.\n * @property {string} cwd The base directory to start lookup.\n * @property {WeakMap} finalizeCache The cache from config arrays to finalized config arrays.\n * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`.\n * @property {string[]|null} rulePaths The value of `--rulesdir` option. This is used to reset `baseConfigArray`.\n * @property {string|null} specificConfigPath The value of `--config` option. This is used to reset `cliConfigArray`.\n * @property {boolean} useEslintrc if `false` then it doesn't load config files.\n * @property {Function} loadRules The function to use to load rules.\n * @property {Map} builtInRules The rules that are built in to ESLint.\n * @property {Object} [resolver=ModuleResolver] The module resolver object.\n * @property {string} eslintAllPath The path to the definitions for eslint:all.\n * @property {Function} getEslintAllConfig Returns the config data for eslint:all.\n * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended.\n * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended.\n */\n\n/** @type {WeakMap} */\nconst internalSlotsMap = new WeakMap();\n\n/**\n * Create the config array from `baseConfig` and `rulePaths`.\n * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots.\n * @returns {ConfigArray} The config array of the base configs.\n */\nfunction createBaseConfigArray({\n configArrayFactory,\n baseConfigData,\n rulePaths,\n cwd,\n loadRules\n}) {\n const baseConfigArray = configArrayFactory.create(\n baseConfigData,\n { name: \"BaseConfig\" }\n );\n\n /*\n * Create the config array element for the default ignore patterns.\n * This element has `ignorePattern` property that ignores the default\n * patterns in the current working directory.\n */\n baseConfigArray.unshift(configArrayFactory.create(\n { ignorePatterns: IgnorePattern.DefaultPatterns },\n { name: \"DefaultIgnorePattern\" }\n )[0]);\n\n /*\n * Load rules `--rulesdir` option as a pseudo plugin.\n * Use a pseudo plugin to define rules of `--rulesdir`, so we can validate\n * the rule's options with only information in the config array.\n */\n if (rulePaths && rulePaths.length > 0) {\n baseConfigArray.push({\n type: \"config\",\n name: \"--rulesdir\",\n filePath: \"\",\n plugins: {\n \"\": new ConfigDependency({\n definition: {\n rules: rulePaths.reduce(\n (map, rulesPath) => Object.assign(\n map,\n loadRules(rulesPath, cwd)\n ),\n {}\n )\n },\n filePath: \"\",\n id: \"\",\n importerName: \"--rulesdir\",\n importerPath: \"\"\n })\n }\n });\n }\n\n return baseConfigArray;\n}\n\n/**\n * Create the config array from CLI options.\n * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots.\n * @returns {ConfigArray} The config array of the base configs.\n */\nfunction createCLIConfigArray({\n cliConfigData,\n configArrayFactory,\n cwd,\n ignorePath,\n specificConfigPath\n}) {\n const cliConfigArray = configArrayFactory.create(\n cliConfigData,\n { name: \"CLIOptions\" }\n );\n\n cliConfigArray.unshift(\n ...(ignorePath\n ? configArrayFactory.loadESLintIgnore(ignorePath)\n : configArrayFactory.loadDefaultESLintIgnore())\n );\n\n if (specificConfigPath) {\n cliConfigArray.unshift(\n ...configArrayFactory.loadFile(\n specificConfigPath,\n { name: \"--config\", basePath: cwd }\n )\n );\n }\n\n return cliConfigArray;\n}\n\n/**\n * The error type when there are files matched by a glob, but all of them have been ignored.\n */\nclass ConfigurationNotFoundError extends Error {\n\n // eslint-disable-next-line jsdoc/require-description\n /**\n * @param {string} directoryPath The directory path.\n */\n constructor(directoryPath) {\n super(`No ESLint configuration found in ${directoryPath}.`);\n this.messageTemplate = \"no-config-found\";\n this.messageData = { directoryPath };\n }\n}\n\n/**\n * This class provides the functionality that enumerates every file which is\n * matched by given glob patterns and that configuration.\n */\nclass CascadingConfigArrayFactory {\n\n /**\n * Initialize this enumerator.\n * @param {CascadingConfigArrayFactoryOptions} options The options.\n */\n constructor({\n additionalPluginPool = new Map(),\n baseConfig: baseConfigData = null,\n cliConfig: cliConfigData = null,\n cwd = process.cwd(),\n ignorePath,\n resolvePluginsRelativeTo,\n rulePaths = [],\n specificConfigPath = null,\n useEslintrc = true,\n builtInRules = new Map(),\n loadRules,\n resolver,\n eslintRecommendedPath,\n getEslintRecommendedConfig,\n eslintAllPath,\n getEslintAllConfig\n } = {}) {\n const configArrayFactory = new ConfigArrayFactory({\n additionalPluginPool,\n cwd,\n resolvePluginsRelativeTo,\n builtInRules,\n resolver,\n eslintRecommendedPath,\n getEslintRecommendedConfig,\n eslintAllPath,\n getEslintAllConfig\n });\n\n internalSlotsMap.set(this, {\n baseConfigArray: createBaseConfigArray({\n baseConfigData,\n configArrayFactory,\n cwd,\n rulePaths,\n loadRules,\n resolver\n }),\n baseConfigData,\n cliConfigArray: createCLIConfigArray({\n cliConfigData,\n configArrayFactory,\n cwd,\n ignorePath,\n specificConfigPath\n }),\n cliConfigData,\n configArrayFactory,\n configCache: new Map(),\n cwd,\n finalizeCache: new WeakMap(),\n ignorePath,\n rulePaths,\n specificConfigPath,\n useEslintrc,\n builtInRules,\n loadRules\n });\n }\n\n /**\n * The path to the current working directory.\n * This is used by tests.\n * @type {string}\n */\n get cwd() {\n const { cwd } = internalSlotsMap.get(this);\n\n return cwd;\n }\n\n /**\n * Get the config array of a given file.\n * If `filePath` was not given, it returns the config which contains only\n * `baseConfigData` and `cliConfigData`.\n * @param {string} [filePath] The file path to a file.\n * @param {Object} [options] The options.\n * @param {boolean} [options.ignoreNotFoundError] If `true` then it doesn't throw `ConfigurationNotFoundError`.\n * @returns {ConfigArray} The config array of the file.\n */\n getConfigArrayForFile(filePath, { ignoreNotFoundError = false } = {}) {\n const {\n baseConfigArray,\n cliConfigArray,\n cwd\n } = internalSlotsMap.get(this);\n\n if (!filePath) {\n return new ConfigArray(...baseConfigArray, ...cliConfigArray);\n }\n\n const directoryPath = path.dirname(path.resolve(cwd, filePath));\n\n debug(`Load config files for ${directoryPath}.`);\n\n return this._finalizeConfigArray(\n this._loadConfigInAncestors(directoryPath),\n directoryPath,\n ignoreNotFoundError\n );\n }\n\n /**\n * Set the config data to override all configs.\n * Require to call `clearCache()` method after this method is called.\n * @param {ConfigData} configData The config data to override all configs.\n * @returns {void}\n */\n setOverrideConfig(configData) {\n const slots = internalSlotsMap.get(this);\n\n slots.cliConfigData = configData;\n }\n\n /**\n * Clear config cache.\n * @returns {void}\n */\n clearCache() {\n const slots = internalSlotsMap.get(this);\n\n slots.baseConfigArray = createBaseConfigArray(slots);\n slots.cliConfigArray = createCLIConfigArray(slots);\n slots.configCache.clear();\n }\n\n /**\n * Load and normalize config files from the ancestor directories.\n * @param {string} directoryPath The path to a leaf directory.\n * @param {boolean} configsExistInSubdirs `true` if configurations exist in subdirectories.\n * @returns {ConfigArray} The loaded config.\n * @private\n */\n _loadConfigInAncestors(directoryPath, configsExistInSubdirs = false) {\n const {\n baseConfigArray,\n configArrayFactory,\n configCache,\n cwd,\n useEslintrc\n } = internalSlotsMap.get(this);\n\n if (!useEslintrc) {\n return baseConfigArray;\n }\n\n let configArray = configCache.get(directoryPath);\n\n // Hit cache.\n if (configArray) {\n debug(`Cache hit: ${directoryPath}.`);\n return configArray;\n }\n debug(`No cache found: ${directoryPath}.`);\n\n const homePath = os.homedir();\n\n // Consider this is root.\n if (directoryPath === homePath && cwd !== homePath) {\n debug(\"Stop traversing because of considered root.\");\n if (configsExistInSubdirs) {\n const filePath = ConfigArrayFactory.getPathToConfigFileInDirectory(directoryPath);\n\n if (filePath) {\n emitDeprecationWarning(\n filePath,\n \"ESLINT_PERSONAL_CONFIG_SUPPRESS\"\n );\n }\n }\n return this._cacheConfig(directoryPath, baseConfigArray);\n }\n\n // Load the config on this directory.\n try {\n configArray = configArrayFactory.loadInDirectory(directoryPath);\n } catch (error) {\n /* istanbul ignore next */\n if (error.code === \"EACCES\") {\n debug(\"Stop traversing because of 'EACCES' error.\");\n return this._cacheConfig(directoryPath, baseConfigArray);\n }\n throw error;\n }\n\n if (configArray.length > 0 && configArray.isRoot()) {\n debug(\"Stop traversing because of 'root:true'.\");\n configArray.unshift(...baseConfigArray);\n return this._cacheConfig(directoryPath, configArray);\n }\n\n // Load from the ancestors and merge it.\n const parentPath = path.dirname(directoryPath);\n const parentConfigArray = parentPath && parentPath !== directoryPath\n ? this._loadConfigInAncestors(\n parentPath,\n configsExistInSubdirs || configArray.length > 0\n )\n : baseConfigArray;\n\n if (configArray.length > 0) {\n configArray.unshift(...parentConfigArray);\n } else {\n configArray = parentConfigArray;\n }\n\n // Cache and return.\n return this._cacheConfig(directoryPath, configArray);\n }\n\n /**\n * Freeze and cache a given config.\n * @param {string} directoryPath The path to a directory as a cache key.\n * @param {ConfigArray} configArray The config array as a cache value.\n * @returns {ConfigArray} The `configArray` (frozen).\n */\n _cacheConfig(directoryPath, configArray) {\n const { configCache } = internalSlotsMap.get(this);\n\n Object.freeze(configArray);\n configCache.set(directoryPath, configArray);\n\n return configArray;\n }\n\n /**\n * Finalize a given config array.\n * Concatenate `--config` and other CLI options.\n * @param {ConfigArray} configArray The parent config array.\n * @param {string} directoryPath The path to the leaf directory to find config files.\n * @param {boolean} ignoreNotFoundError If `true` then it doesn't throw `ConfigurationNotFoundError`.\n * @returns {ConfigArray} The loaded config.\n * @private\n */\n _finalizeConfigArray(configArray, directoryPath, ignoreNotFoundError) {\n const {\n cliConfigArray,\n configArrayFactory,\n finalizeCache,\n useEslintrc,\n builtInRules\n } = internalSlotsMap.get(this);\n\n let finalConfigArray = finalizeCache.get(configArray);\n\n if (!finalConfigArray) {\n finalConfigArray = configArray;\n\n // Load the personal config if there are no regular config files.\n if (\n useEslintrc &&\n configArray.every(c => !c.filePath) &&\n cliConfigArray.every(c => !c.filePath) // `--config` option can be a file.\n ) {\n const homePath = os.homedir();\n\n debug(\"Loading the config file of the home directory:\", homePath);\n\n const personalConfigArray = configArrayFactory.loadInDirectory(\n homePath,\n { name: \"PersonalConfig\" }\n );\n\n if (\n personalConfigArray.length > 0 &&\n !directoryPath.startsWith(homePath)\n ) {\n const lastElement =\n personalConfigArray[personalConfigArray.length - 1];\n\n emitDeprecationWarning(\n lastElement.filePath,\n \"ESLINT_PERSONAL_CONFIG_LOAD\"\n );\n }\n\n finalConfigArray = finalConfigArray.concat(personalConfigArray);\n }\n\n // Apply CLI options.\n if (cliConfigArray.length > 0) {\n finalConfigArray = finalConfigArray.concat(cliConfigArray);\n }\n\n // Validate rule settings and environments.\n const validator = new ConfigValidator({\n builtInRules\n });\n\n validator.validateConfigArray(finalConfigArray);\n\n // Cache it.\n Object.freeze(finalConfigArray);\n finalizeCache.set(configArray, finalConfigArray);\n\n debug(\n \"Configuration was determined: %o on %s\",\n finalConfigArray,\n directoryPath\n );\n }\n\n // At least one element (the default ignore patterns) exists.\n if (!ignoreNotFoundError && useEslintrc && finalConfigArray.length <= 1) {\n throw new ConfigurationNotFoundError(directoryPath);\n }\n\n return finalConfigArray;\n }\n}\n\n//------------------------------------------------------------------------------\n// Public Interface\n//------------------------------------------------------------------------------\n\nexport { CascadingConfigArrayFactory };\n","/**\n * @fileoverview Compatibility class for flat config.\n * @author Nicholas C. Zakas\n */\n\n//-----------------------------------------------------------------------------\n// Requirements\n//-----------------------------------------------------------------------------\n\nimport createDebug from \"debug\";\nimport path from \"path\";\n\nimport environments from \"../conf/environments.js\";\nimport { ConfigArrayFactory } from \"./config-array-factory.js\";\n\n//-----------------------------------------------------------------------------\n// Helpers\n//-----------------------------------------------------------------------------\n\n/** @typedef {import(\"../../shared/types\").Environment} Environment */\n/** @typedef {import(\"../../shared/types\").Processor} Processor */\n\nconst debug = createDebug(\"eslintrc:flat-compat\");\nconst cafactory = Symbol(\"cafactory\");\n\n/**\n * Translates an ESLintRC-style config object into a flag-config-style config\n * object.\n * @param {Object} eslintrcConfig An ESLintRC-style config object.\n * @param {Object} options Options to help translate the config.\n * @param {string} options.resolveConfigRelativeTo To the directory to resolve\n * configs from.\n * @param {string} options.resolvePluginsRelativeTo The directory to resolve\n * plugins from.\n * @param {ReadOnlyMap} options.pluginEnvironments A map of plugin environment\n * names to objects.\n * @param {ReadOnlyMap} options.pluginProcessors A map of plugin processor\n * names to objects.\n * @returns {Object} A flag-config-style config object.\n */\nfunction translateESLintRC(eslintrcConfig, {\n resolveConfigRelativeTo,\n resolvePluginsRelativeTo,\n pluginEnvironments,\n pluginProcessors\n}) {\n\n const flatConfig = {};\n const configs = [];\n const languageOptions = {};\n const linterOptions = {};\n const keysToCopy = [\"settings\", \"rules\", \"processor\"];\n const languageOptionsKeysToCopy = [\"globals\", \"parser\", \"parserOptions\"];\n const linterOptionsKeysToCopy = [\"noInlineConfig\", \"reportUnusedDisableDirectives\"];\n\n // check for special settings for eslint:all and eslint:recommended:\n if (eslintrcConfig.settings) {\n if (eslintrcConfig.settings[\"eslint:all\"] === true) {\n return [\"eslint:all\"];\n }\n\n if (eslintrcConfig.settings[\"eslint:recommended\"] === true) {\n return [\"eslint:recommended\"];\n }\n }\n\n // copy over simple translations\n for (const key of keysToCopy) {\n if (key in eslintrcConfig && typeof eslintrcConfig[key] !== \"undefined\") {\n flatConfig[key] = eslintrcConfig[key];\n }\n }\n\n // copy over languageOptions\n for (const key of languageOptionsKeysToCopy) {\n if (key in eslintrcConfig && typeof eslintrcConfig[key] !== \"undefined\") {\n\n // create the languageOptions key in the flat config\n flatConfig.languageOptions = languageOptions;\n\n if (key === \"parser\") {\n debug(`Resolving parser '${languageOptions[key]}' relative to ${resolveConfigRelativeTo}`);\n\n if (eslintrcConfig[key].error) {\n throw eslintrcConfig[key].error;\n }\n\n languageOptions[key] = eslintrcConfig[key].definition;\n continue;\n }\n\n // clone any object values that are in the eslintrc config\n if (eslintrcConfig[key] && typeof eslintrcConfig[key] === \"object\") {\n languageOptions[key] = {\n ...eslintrcConfig[key]\n };\n } else {\n languageOptions[key] = eslintrcConfig[key];\n }\n }\n }\n\n // copy over linterOptions\n for (const key of linterOptionsKeysToCopy) {\n if (key in eslintrcConfig && typeof eslintrcConfig[key] !== \"undefined\") {\n flatConfig.linterOptions = linterOptions;\n linterOptions[key] = eslintrcConfig[key];\n }\n }\n\n // move ecmaVersion a level up\n if (languageOptions.parserOptions) {\n\n if (\"ecmaVersion\" in languageOptions.parserOptions) {\n languageOptions.ecmaVersion = languageOptions.parserOptions.ecmaVersion;\n delete languageOptions.parserOptions.ecmaVersion;\n }\n\n if (\"sourceType\" in languageOptions.parserOptions) {\n languageOptions.sourceType = languageOptions.parserOptions.sourceType;\n delete languageOptions.parserOptions.sourceType;\n }\n\n // check to see if we even need parserOptions anymore and remove it if not\n if (Object.keys(languageOptions.parserOptions).length === 0) {\n delete languageOptions.parserOptions;\n }\n }\n\n // overrides\n if (eslintrcConfig.criteria) {\n flatConfig.files = [absoluteFilePath => eslintrcConfig.criteria.test(absoluteFilePath)];\n }\n\n // translate plugins\n if (eslintrcConfig.plugins && typeof eslintrcConfig.plugins === \"object\") {\n debug(`Translating plugins: ${eslintrcConfig.plugins}`);\n\n flatConfig.plugins = {};\n\n for (const pluginName of Object.keys(eslintrcConfig.plugins)) {\n\n debug(`Translating plugin: ${pluginName}`);\n debug(`Resolving plugin '${pluginName} relative to ${resolvePluginsRelativeTo}`);\n\n const { definition: plugin, error } = eslintrcConfig.plugins[pluginName];\n\n if (error) {\n throw error;\n }\n\n flatConfig.plugins[pluginName] = plugin;\n\n // create a config for any processors\n if (plugin.processors) {\n for (const processorName of Object.keys(plugin.processors)) {\n if (processorName.startsWith(\".\")) {\n debug(`Assigning processor: ${pluginName}/${processorName}`);\n\n configs.unshift({\n files: [`**/*${processorName}`],\n processor: pluginProcessors.get(`${pluginName}/${processorName}`)\n });\n }\n\n }\n }\n }\n }\n\n // translate env - must come after plugins\n if (eslintrcConfig.env && typeof eslintrcConfig.env === \"object\") {\n for (const envName of Object.keys(eslintrcConfig.env)) {\n\n // only add environments that are true\n if (eslintrcConfig.env[envName]) {\n debug(`Translating environment: ${envName}`);\n\n if (environments.has(envName)) {\n\n // built-in environments should be defined first\n configs.unshift(...translateESLintRC(environments.get(envName), {\n resolveConfigRelativeTo,\n resolvePluginsRelativeTo\n }));\n } else if (pluginEnvironments.has(envName)) {\n\n // if the environment comes from a plugin, it should come after the plugin config\n configs.push(...translateESLintRC(pluginEnvironments.get(envName), {\n resolveConfigRelativeTo,\n resolvePluginsRelativeTo\n }));\n }\n }\n }\n }\n\n // only add if there are actually keys in the config\n if (Object.keys(flatConfig).length > 0) {\n configs.push(flatConfig);\n }\n\n return configs;\n}\n\n\n//-----------------------------------------------------------------------------\n// Exports\n//-----------------------------------------------------------------------------\n\n/**\n * A compatibility class for working with configs.\n */\nclass FlatCompat {\n\n constructor({\n baseDirectory = process.cwd(),\n resolvePluginsRelativeTo = baseDirectory\n } = {}) {\n this.baseDirectory = baseDirectory;\n this.resolvePluginsRelativeTo = resolvePluginsRelativeTo;\n this[cafactory] = new ConfigArrayFactory({\n cwd: baseDirectory,\n resolvePluginsRelativeTo,\n getEslintAllConfig: () => ({ settings: { \"eslint:all\": true } }),\n getEslintRecommendedConfig: () => ({ settings: { \"eslint:recommended\": true } })\n });\n }\n\n /**\n * Translates an ESLintRC-style config into a flag-config-style config.\n * @param {Object} eslintrcConfig The ESLintRC-style config object.\n * @returns {Object} A flag-config-style config object.\n */\n config(eslintrcConfig) {\n const eslintrcArray = this[cafactory].create(eslintrcConfig, {\n basePath: this.baseDirectory\n });\n\n const flatArray = [];\n let hasIgnorePatterns = false;\n\n eslintrcArray.forEach(configData => {\n if (configData.type === \"config\") {\n hasIgnorePatterns = hasIgnorePatterns || configData.ignorePattern;\n flatArray.push(...translateESLintRC(configData, {\n resolveConfigRelativeTo: path.join(this.baseDirectory, \"__placeholder.js\"),\n resolvePluginsRelativeTo: path.join(this.resolvePluginsRelativeTo, \"__placeholder.js\"),\n pluginEnvironments: eslintrcArray.pluginEnvironments,\n pluginProcessors: eslintrcArray.pluginProcessors\n }));\n }\n });\n\n // combine ignorePatterns to emulate ESLintRC behavior better\n if (hasIgnorePatterns) {\n flatArray.unshift({\n ignores: [filePath => {\n\n // Compute the final config for this file.\n // This filters config array elements by `files`/`excludedFiles` then merges the elements.\n const finalConfig = eslintrcArray.extractConfig(filePath);\n\n // Test the `ignorePattern` properties of the final config.\n return Boolean(finalConfig.ignores) && finalConfig.ignores(filePath);\n }]\n });\n }\n\n return flatArray;\n }\n\n /**\n * Translates the `env` section of an ESLintRC-style config.\n * @param {Object} envConfig The `env` section of an ESLintRC config.\n * @returns {Object} A flag-config object representing the environments.\n */\n env(envConfig) {\n return this.config({\n env: envConfig\n });\n }\n\n /**\n * Translates the `extends` section of an ESLintRC-style config.\n * @param {...string} configsToExtend The names of the configs to load.\n * @returns {Object} A flag-config object representing the config.\n */\n extends(...configsToExtend) {\n return this.config({\n extends: configsToExtend\n });\n }\n\n /**\n * Translates the `plugins` section of an ESLintRC-style config.\n * @param {...string} plugins The names of the plugins to load.\n * @returns {Object} A flag-config object representing the plugins.\n */\n plugins(...plugins) {\n return this.config({\n plugins\n });\n }\n}\n\nexport { FlatCompat };\n","/**\n * @fileoverview Package exports for @eslint/eslintrc\n * @author Nicholas C. Zakas\n */\n//------------------------------------------------------------------------------\n// Requirements\n//------------------------------------------------------------------------------\n\nimport {\n ConfigArrayFactory,\n createContext as createConfigArrayFactoryContext\n} from \"./config-array-factory.js\";\n\nimport { CascadingConfigArrayFactory } from \"./cascading-config-array-factory.js\";\nimport * as ModuleResolver from \"./shared/relative-module-resolver.js\";\nimport { ConfigArray, getUsedExtractedConfigs } from \"./config-array/index.js\";\nimport { ConfigDependency } from \"./config-array/config-dependency.js\";\nimport { ExtractedConfig } from \"./config-array/extracted-config.js\";\nimport { IgnorePattern } from \"./config-array/ignore-pattern.js\";\nimport { OverrideTester } from \"./config-array/override-tester.js\";\nimport * as ConfigOps from \"./shared/config-ops.js\";\nimport ConfigValidator from \"./shared/config-validator.js\";\nimport * as naming from \"./shared/naming.js\";\nimport { FlatCompat } from \"./flat-compat.js\";\nimport environments from \"../conf/environments.js\";\n\n//-----------------------------------------------------------------------------\n// Exports\n//-----------------------------------------------------------------------------\n\nconst Legacy = {\n ConfigArray,\n createConfigArrayFactoryContext,\n CascadingConfigArrayFactory,\n ConfigArrayFactory,\n ConfigDependency,\n ExtractedConfig,\n IgnorePattern,\n OverrideTester,\n getUsedExtractedConfigs,\n environments,\n\n // shared\n ConfigOps,\n ConfigValidator,\n ModuleResolver,\n naming\n};\n\nexport {\n\n Legacy,\n\n FlatCompat\n\n};\n"],"names":["debug","debugOrig","path","ignore","assert","internalSlotsMap","util","minimatch","Ajv","globals","BuiltInEnvironments","ConfigOps.normalizeConfigGlobal","Module","require","createRequire","fs","stripComments","importFresh","ModuleResolver.resolve","naming.normalizePackageName","naming.getShorthandName","os","createDebug","createConfigArrayFactoryContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA;AACA,MAAMA,OAAK,GAAGC,6BAAS,CAAC,yBAAyB,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,WAAW,EAAE;AAC5C,IAAI,IAAI,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAChC;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC;AACzB,QAAQ,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC;AACA;AACA,QAAQ,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7C;AACA;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3E,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/B,gBAAgB,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAChD,gBAAgB,MAAM;AACtB,aAAa;AACb,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,KAAKC,wBAAI,CAAC,GAAG,EAAE;AACnC,gBAAgB,UAAU,GAAG,CAAC,CAAC;AAC/B,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,cAAc,GAAG,MAAM,IAAIA,wBAAI,CAAC,GAAG,CAAC;AAC5C;AACA;AACA,IAAI,IAAI,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AACxF,QAAQ,cAAc,IAAIA,wBAAI,CAAC,GAAG,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE;AAC5B,IAAI,MAAM,OAAO,GAAGA,wBAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5C;AACA,IAAI,IAAIA,wBAAI,CAAC,GAAG,KAAK,GAAG,EAAE;AAC1B,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,KAAK,CAACA,wBAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC7B,IAAI,MAAM,KAAK;AACf,QAAQ,QAAQ,CAAC,QAAQ,CAACA,wBAAI,CAAC,GAAG,CAAC;AACnC,SAAS,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChE,KAAK,CAAC;AACN;AACA,IAAI,OAAO,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC;AACD;AACA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,eAAe,GAAG;AACjC,QAAQ,OAAO,eAAe,CAAC;AAC/B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,mBAAmB,CAAC,GAAG,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,aAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,YAAY,CAAC,cAAc,EAAE;AACxC,QAAQF,OAAK,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;AACjD;AACA,QAAQ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM;AAClC,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACzE,SAAS,CAAC;AACV,QAAQ,MAAM,EAAE,GAAGG,0BAAM,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC3F,QAAQ,MAAM,KAAK,GAAGA,0BAAM,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzE;AACA,QAAQH,OAAK,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzD;AACA,QAAQ,OAAO,MAAM,CAAC,MAAM;AAC5B,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,KAAK,KAAK;AACvC,gBAAgBI,0BAAM,CAACF,wBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,wCAAwC,CAAC,CAAC;AAC5F,gBAAgB,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAChE,gBAAgB,MAAM,OAAO,GAAG,UAAU,KAAK,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,gBAAgB,MAAM,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;AACnD,gBAAgB,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5E;AACA,gBAAgBF,OAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACjF,gBAAgB,OAAO,MAAM,CAAC;AAC9B,aAAa;AACb,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAClC,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACpC,QAAQI,0BAAM,CAACF,wBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,wCAAwC,CAAC,CAAC;AACpF;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,WAAW,EAAE;AACvC,QAAQE,0BAAM,CAACF,wBAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,2CAA2C,CAAC,CAAC;AAC1F,QAAQ,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AACnD;AACA,QAAQ,IAAI,WAAW,KAAK,QAAQ,EAAE;AACtC,YAAY,OAAO,QAAQ,CAAC;AAC5B,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA,QAAQ,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI;AACvC,YAAY,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrD,YAAY,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;AAC7C,YAAY,MAAM,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AAC/D;AACA,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAChE,gBAAgB,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjD,aAAa;AACb,YAAY,OAAO,KAAK,GAAG,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACnE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;;AC3OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5B,IAAI,OAAO,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,eAAe,CAAC;AACtB,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC3B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,qCAAqC,GAAG;AAC5C,QAAQ,MAAM;AACd;AACA,YAAY,0BAA0B,EAAE,QAAQ;AAChD,YAAY,SAAS,EAAE,QAAQ;AAC/B;AACA,YAAY,OAAO;AACnB,YAAY,GAAG,MAAM;AACrB,SAAS,GAAG,IAAI,CAAC;AACjB;AACA,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChE,QAAQ,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AAC/E,QAAQ,MAAM,CAAC,cAAc,GAAG,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;AAChE;AACA;AACA,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,eAAe,CAAC,EAAE;AAC9E,YAAY,MAAM,CAAC,cAAc;AACjC,gBAAgB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAClF,SAAS;AACT;AACA,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK;AACL;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,kBAAgB,GAAG,IAAI,cAAc,OAAO,CAAC;AACnD,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC;AACA,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,KAAK,GAAG;AACpB,gBAAgB,KAAK,EAAE,IAAI,GAAG,EAAE;AAChC,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,YAAY,EAAE,IAAI;AAClC,gBAAgB,OAAO,EAAE,IAAI;AAC7B,aAAa,CAAC;AACd,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,SAAS;AACT;AACA,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,CAAC,EAAE,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAC/C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACnD,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpC;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;AAChF,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC;AAC/C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC/C,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAClC,QAAQ,OAAO;AACf,KAAK;AACL;AACA,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC3C,QAAQ,IAAI,GAAG,KAAK,WAAW,EAAE;AACjC,YAAY,SAAS;AACrB,SAAS;AACT;AACA,QAAQ,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1C,YAAY,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,SAAS,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE;AAC3C,YAAY,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9C,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AACnE,gBAAgB,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,aAAa,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE;AAC/C,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1C,aAAa;AACb,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,mBAAmB,SAAS,KAAK,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE;AACnC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvH,QAAQ,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;AACjD,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACjD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE;AACtC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAClC,QAAQ,OAAO;AACf,KAAK;AACL;AACA,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC3C,QAAQ,IAAI,GAAG,KAAK,WAAW,EAAE;AACjC,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC;AACA;AACA,QAAQ,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE;AACpC,YAAY,IAAI,WAAW,CAAC,KAAK,EAAE;AACnC,gBAAgB,MAAM,WAAW,CAAC,KAAK,CAAC;AACxC,aAAa;AACb,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;AACtC,SAAS,MAAM,IAAI,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE;AAClE,YAAY,MAAM,IAAI,mBAAmB,CAAC,GAAG,EAAE;AAC/C,gBAAgB;AAChB,oBAAoB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAClD,oBAAoB,YAAY,EAAE,WAAW,CAAC,YAAY;AAC1D,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAClD,oBAAoB,YAAY,EAAE,WAAW,CAAC,YAAY;AAC1D,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAClC,QAAQ,OAAO;AACf,KAAK;AACL;AACA,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC3C,QAAQ,IAAI,GAAG,KAAK,WAAW,EAAE;AACjC,YAAY,SAAS;AACrB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACtC,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACtC;AACA;AACA,QAAQ,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE;AAClC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC1C,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;AAC7C,aAAa,MAAM;AACnB,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1C,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM;AACf,YAAY,SAAS,CAAC,MAAM,KAAK,CAAC;AAClC,YAAY,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACpC,YAAY,SAAS,CAAC,MAAM,IAAI,CAAC;AACjC,UAAU;AACV,YAAY,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE;AACzC,IAAI,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,IAAI,MAAM,cAAc,GAAG,EAAE,CAAC;AAC9B;AACA;AACA,IAAI,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AACjC,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,gBAAgB,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC3C,aAAa;AACb,YAAY,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC3C,SAAS;AACT;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE;AACpD,YAAY,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACjD,SAAS;AACT;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,EAAE;AACnF,YAAY,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC3D,YAAY,MAAM,CAAC,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;AAC7D,SAAS;AACT;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,6BAA6B,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,6BAA6B,KAAK,KAAK,CAAC,EAAE;AACjH,YAAY,MAAM,CAAC,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAC;AACzF,SAAS;AACT;AACA;AACA,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE;AACnC,YAAY,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACvD,SAAS;AACT;AACA;AACA,QAAQ,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACvD,QAAQ,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,QAAQ,qBAAqB,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3E,QAAQ,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjE,QAAQ,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACtD,QAAQ,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,KAAK;AACL;AACA;AACA,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,QAAQ,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9E,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AACjD,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClD;AACA,QAAQ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACzD,YAAY,GAAG,CAAC,GAAG;AACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;AACjC,gBAAgB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK;AACpD,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,IAAI,OAAO,OAAO,IAAI,KAAK,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAChE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,GAAG,EAAE;AACpC,IAAI,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;AACjC,QAAQ,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AACpD,QAAQ,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AACrD,QAAQ,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AAClD,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC/C,IAAI,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AAChC;AACA,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AACnC,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AAC9B;AACA,IAAI,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACpC,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9B,YAAY,SAAS;AACrB,SAAS;AACT;AACA,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACzE,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;AAC5C;AACA,YAAY,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACpD,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC;AACA,YAAY,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACjE,YAAY,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;AACrE,YAAY,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAChF,SAAS;AACT,KAAK;AACL;AACA,IAAI,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxC,IAAI,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC9C,IAAI,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE;AAC1C,IAAI,MAAM,KAAK,GAAGA,kBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjD;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACxB,QAAQ,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,SAAS,KAAK,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,kBAAkB,GAAG;AAC7B,QAAQ,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACnD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AACzD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AACpD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACnD,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC;AACA,YAAY,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;AAC3C,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC5B,QAAQ,MAAM,EAAE,KAAK,EAAE,GAAGA,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrD,QAAQ,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC1D,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAClC,YAAY,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,SAAS;AACT;AACA,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,QAAQ,EAAE;AACrC,QAAQ,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AAC/C,YAAY;AACZ,gBAAgB,IAAI,KAAK,QAAQ;AACjC,gBAAgB,QAAQ;AACxB,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB;AAC1C,gBAAgB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,cAAc;AACd,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uBAAuB,CAAC,QAAQ,EAAE;AAC3C,IAAI,MAAM,EAAE,KAAK,EAAE,GAAGA,kBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrD;AACA,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACtC;;ACpgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,CAAC;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC;AAChB,QAAQ,UAAU,GAAG,IAAI;AACzB,QAAQ,KAAK,GAAG,IAAI;AACpB,QAAQ,QAAQ,GAAG,IAAI;AACvB,QAAQ,EAAE;AACV,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,KAAK,EAAE;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAACC,wBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAChD;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,KAAK,YAAY,KAAK,EAAE;AACxC,YAAY,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACrE,SAAS;AACT;AACA,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,CAACA,wBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;AAC5B,QAAQ,MAAM;AACd,YAAY,UAAU,EAAE,OAAO;AAC/B,YAAY,GAAG,GAAG;AAClB,SAAS,GAAG,IAAI,CAAC;AACjB;AACA,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA,MAAM,EAAE,SAAS,EAAE,GAAGC,6BAAS,CAAC;AAChC;AACA,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,QAAQ,EAAE;AACrC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACjC,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,EAAE;AAClD,QAAQ,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC7B,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI;AACnC,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACvC,YAAY,OAAO,IAAI,SAAS;AAChC,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC;AACA;AACA,gBAAgB,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE;AACtD,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACrD,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;AAC/C,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC1D,QAAQ,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC1D,KAAK,CAAC;AACN,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,cAAc,CAAC;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE;AAClD,QAAQ,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzD,QAAQ,MAAM,eAAe,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACjE,QAAQ,IAAI,gBAAgB,GAAG,KAAK,CAAC;AACrC;AACA,QAAQ,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT;AACA;AACA,QAAQ,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;AAC/C,YAAY,IAAIL,wBAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpE,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,uEAAuE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACrH,aAAa;AACb,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACvC,gBAAgB,gBAAgB,GAAG,IAAI,CAAC;AACxC,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;AAC/C,YAAY,IAAIA,wBAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpE,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,uEAAuE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACrH,aAAa;AACb,SAAS;AACT;AACA,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACpD,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACpD;AACA,QAAQ,OAAO,IAAI,cAAc;AACjC,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACpC,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,CAAC,EAAE;AAChB,YAAY,OAAO,CAAC,IAAI,IAAI,cAAc;AAC1C,gBAAgB,CAAC,CAAC,QAAQ;AAC1B,gBAAgB,CAAC,CAAC,QAAQ;AAC1B,gBAAgB,CAAC,CAAC,gBAAgB;AAClC,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,EAAE;AAChB,YAAY,OAAO,IAAI,cAAc;AACrC,gBAAgB,CAAC,CAAC,QAAQ;AAC1B,gBAAgB,CAAC,CAAC,QAAQ;AAC1B,gBAAgB,CAAC,CAAC,gBAAgB;AAClC,aAAa,CAAC;AACd,SAAS;AACT;AACA,QAAQE,0BAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAQ,OAAO,IAAI,cAAc;AACjC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzC,YAAY,CAAC,CAAC,QAAQ;AACtB,YAAY,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,gBAAgB;AACpD,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,GAAG,KAAK,EAAE;AAC9D;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC;AACA;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAACF,wBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACxE,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,+CAA+C,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,SAAS;AACT,QAAQ,MAAM,YAAY,GAAGA,wBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACpE;AACA,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC1D,YAAY,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACnE,aAAa,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACrE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,YAAY,OAAO;AACnB,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClD,gBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvC,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;AACjD,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,CAACI,wBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7B,KAAK;AACL;;AC9NA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AACtD,IAAI,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,KAAK;AACxE,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC3B,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,EAAE,EAAE,CAAC;AACV,IAAI,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE;AACrC,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AACjF;AACA,IAAI,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE;AAC3E,QAAQ,OAAO,aAAa,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AAC3C,QAAQ,OAAO,aAAa,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;AAC/D,KAAK;AACL;AACA,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC;AACA,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI;AACpD,YAAY,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpD;AACA,YAAY,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAChD,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACrG,aAAa,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACvF,gBAAgB,UAAU,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACjG,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE;AACrC,IAAI,OAAO,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE;AACrC,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAC1E;AACA,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACtC,QAAQ,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,eAAe,EAAE;AAChD,IAAI,QAAQ,eAAe;AAC3B,QAAQ,KAAK,KAAK;AAClB,YAAY,OAAO,KAAK,CAAC;AACzB;AACA,QAAQ,KAAK,IAAI,CAAC;AAClB,QAAQ,KAAK,MAAM,CAAC;AACpB,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,UAAU,CAAC;AAC9B;AACA,QAAQ,KAAK,IAAI,CAAC;AAClB,QAAQ,KAAK,KAAK,CAAC;AACnB,QAAQ,KAAK,OAAO,CAAC;AACrB,QAAQ,KAAK,UAAU,CAAC;AACxB,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,UAAU,CAAC;AAC9B;AACA,QAAQ;AACR,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,kFAAkF,CAAC,CAAC,CAAC;AACrI,KAAK;AACL;;;;;;;;;;;;AC7HA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAA0B,GAAG;AACnC,IAAI,0BAA0B;AAC9B,QAAQ,0EAA0E;AAClF,IAAI,2BAA2B;AAC/B,QAAQ,qDAAqD;AAC7D,QAAQ,gEAAgE;AACxE,IAAI,+BAA+B;AACnC,QAAQ,qDAAqD;AAC7D,QAAQ,kEAAkE;AAC1E,QAAQ,kEAAkE;AAC1E,CAAC,CAAC;AACF;AACA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE;AACnD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3D;AACA,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC5C,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC;AACA,IAAI,MAAM,GAAG,GAAGJ,wBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,IAAI,MAAM,OAAO,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAC1D;AACA,IAAI,OAAO,CAAC,WAAW;AACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;AACxC,QAAQ,oBAAoB;AAC5B,QAAQ,SAAS;AACjB,KAAK,CAAC;AACN;;ACtDA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,IAAI,EAAE,EAAE,yCAAyC;AACjD,IAAI,OAAO,EAAE,yCAAyC;AACtD,IAAI,WAAW,EAAE,yBAAyB;AAC1C,IAAI,WAAW,EAAE;AACjB,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAChC,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC9E,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACvF,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,WAAW,EAAE,IAAI;AAC7B,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,UAAU,EAAE;AAChB,QAAQ,EAAE,EAAE;AACZ,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,KAAK,EAAE;AACf,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,OAAO,EAAE,GAAG;AACpB,QAAQ,UAAU,EAAE;AACpB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,SAAS,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AAC5D,QAAQ,SAAS,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACpE,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,MAAM,EAAE,OAAO;AAC3B,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;AACnC,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,aAAa;AACb,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,KAAK,EAAE;AACf,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,gBAAgB,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACrD,aAAa;AACb,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,QAAQ,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AAC3D,QAAQ,QAAQ,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACnE,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS;AACT,QAAQ,aAAa,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AAChE,QAAQ,aAAa,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACxE,QAAQ,QAAQ,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACvD,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;AACnC,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,aAAa;AACb,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/C,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/C,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/C,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,oBAAoB,EAAE;AAClC,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE;AACjC,oBAAoB,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACzD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,WAAW,EAAE,IAAI;AAC7B,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACrD,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AAChE,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,WAAW,EAAE,IAAI;AACrC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACpD,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACpD,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AACpD,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;AAC1B,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,gBAAgB,EAAE,CAAC,SAAS,CAAC;AACrC,QAAQ,gBAAgB,EAAE,CAAC,SAAS,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,EAAE,GAAG;AAChB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,cAAe,CAAC,iBAAiB,GAAG,EAAE,KAAK;AAC3C,IAAI,MAAM,GAAG,GAAG,IAAIM,uBAAG,CAAC;AACxB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,cAAc,EAAE,KAAK;AAC7B,QAAQ,WAAW,EAAE,QAAQ;AAC7B,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,QAAQ,EAAE,MAAM;AACxB,QAAQ,GAAG,iBAAiB;AAC5B,KAAK,CAAC,CAAC;AACP;AACA,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAClC;AACA,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC;AAC1C;AACA,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;;AC9LD;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB,GAAG;AAC7B,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/B,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AACtD,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/B,IAAI,SAAS,EAAE;AACf,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,KAAK,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE;AACvD,QAAQ,eAAe,EAAE,KAAK;AAC9B,KAAK;AACL,IAAI,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;AACxC,IAAI,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC9B,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACjC,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7B,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAChC,IAAI,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACvC,IAAI,6BAA6B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACtD;AACA,IAAI,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACpC,CAAC,CAAC;AACF;AACA,MAAM,YAAY,GAAG;AACrB,IAAI,WAAW,EAAE;AACjB,QAAQ,eAAe,EAAE;AACzB,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7C,oBAAoB,eAAe,EAAE,KAAK;AAC1C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,KAAK,EAAE;AACnB,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7C,oBAAoB,eAAe,EAAE,KAAK;AAC1C,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA,QAAQ,YAAY,EAAE;AACtB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,UAAU,EAAE;AACxB,gBAAgB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AACzC,gBAAgB,cAAc,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AACzE,gBAAgB,GAAG,oBAAoB;AACvC,aAAa;AACb,YAAY,oBAAoB,EAAE,KAAK;AACvC,SAAS;AACT;AACA;AACA,QAAQ,cAAc,EAAE;AACxB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,UAAU,EAAE;AACxB,gBAAgB,aAAa,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;AACxE,gBAAgB,KAAK,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;AACxE,gBAAgB,GAAG,oBAAoB;AACvC,aAAa;AACb,YAAY,QAAQ,EAAE,CAAC,OAAO,CAAC;AAC/B,YAAY,oBAAoB,EAAE,KAAK;AACvC,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,EAAE,4BAA4B;AACtC,CAAC;;AC5ED;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE;AAChC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;AACpB;AACA,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACxD,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACpD,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9B,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA,MAAM,cAAc,GAAG,OAAO,CAACC,2BAAO,CAAC,MAAM,EAAEA,2BAAO,CAAC,GAAG,CAAC,CAAC;AAC5D,MAAM,cAAc,GAAG;AACvB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,iBAAiB,EAAE,KAAK;AAC5B,CAAC,CAAC;AACF,MAAM,cAAc,GAAG;AACvB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,UAAU,EAAE,KAAK;AACrB,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG;AACvB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,OAAO,EAAE,KAAK;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAe,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AACtC;AACA;AACA,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,GAAG;AAC5B,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AACzD,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AACzD,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AACzD,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AAC5E,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AAC/F,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE;AAC/F,QAAQ,aAAa,EAAE;AACvB,YAAY,WAAW,EAAE,EAAE;AAC3B,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,OAAO,EAAEA,2BAAO,CAAC,IAAI;AAC7B,QAAQ,aAAa,EAAE;AACvB,YAAY,YAAY,EAAE;AAC1B,gBAAgB,YAAY,EAAE,IAAI;AAClC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,qBAAqB,EAAE;AAC3B,QAAQ,OAAO,EAAEA,2BAAO,CAAC,qBAAqB,CAAC;AAC/C,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAEA,2BAAO,CAAC,MAAM;AAC/B,KAAK;AACL,IAAI,aAAa,EAAE;AACnB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,aAAa;AACtC,KAAK;AACL;AACA;AACA,IAAI,QAAQ,EAAE;AACd,QAAQ,OAAO,EAAEA,2BAAO,CAAC,QAAQ;AACjC,QAAQ,aAAa,EAAE;AACvB,YAAY,YAAY,EAAE;AAC1B,gBAAgB,YAAY,EAAE,IAAI;AAClC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,OAAO,EAAEA,2BAAO,CAAC,GAAG;AAC5B,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,OAAO,EAAEA,2BAAO,CAAC,KAAK;AAC9B,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,OAAO,EAAEA,2BAAO,CAAC,IAAI;AAC7B,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,OAAO,EAAEA,2BAAO,CAAC,SAAS;AAClC,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAEA,2BAAO,CAAC,MAAM;AAC/B,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,OAAO,EAAEA,2BAAO,CAAC,KAAK;AAC9B,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,WAAW;AACpC,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,OAAO,EAAEA,2BAAO,CAAC,MAAM;AAC/B,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,OAAO,EAAEA,2BAAO,CAAC,KAAK;AAC9B,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,UAAU;AACnC,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,WAAW;AACpC,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,OAAO,EAAEA,2BAAO,CAAC,OAAO;AAChC,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,OAAO,EAAEA,2BAAO,CAAC,QAAQ;AACjC,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,OAAO,EAAEA,2BAAO,CAAC,SAAS;AAClC,KAAK;AACL,IAAI,aAAa,EAAE;AACnB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,aAAa;AACtC,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,OAAO,EAAEA,2BAAO,CAAC,YAAY;AACrC,KAAK;AACL,CAAC,CAAC,CAAC;;AC1MH;AACA;AACA;AACA;AAcA;AACA,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB;AACA,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;AAChC;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC;AACnB,MAAM,WAAW,GAAG;AACpB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,GAAG,EAAE,CAAC;AACV,CAAC,CAAC;AACF;AACA,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AAChC;AACA;AACA;AACA;AACA;AACe,MAAM,eAAe,CAAC;AACrC,IAAI,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;AACnD,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,IAAI,EAAE;AAC/B,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACpE;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;AAC/B,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,MAAM;AACjC,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,QAAQ,EAAE,MAAM,CAAC,MAAM;AAC3C,iBAAiB,CAAC;AAClB,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,aAAa,CAAC;AACd;AACA,SAAS;AACT;AACA;AACA,QAAQ,OAAO,MAAM,IAAI,IAAI,CAAC;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACvE,QAAQ,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC;AAC3G;AACA,QAAQ,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE;AAC5E,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,qFAAqF,EAAEH,wBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE;AAC3C,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC3D;AACA,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,aAAa;AACb,SAAS;AACT;AACA,QAAQ,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtD;AACA,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,YAAY,CAAC,YAAY,CAAC,CAAC;AACvC,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;AACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG;AACvD,oBAAoB,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxF,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE;AAC9D,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAChE;AACA,YAAY,IAAI,QAAQ,KAAK,CAAC,EAAE;AAChC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9F,aAAa;AACb,SAAS,CAAC,OAAO,GAAG,EAAE;AACtB,YAAY,MAAM,eAAe,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACrG;AACA,YAAY,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACpE,aAAa,MAAM;AACnB,gBAAgB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AACjD,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB;AACvB,QAAQ,WAAW;AACnB,QAAQ,MAAM;AACd,QAAQ,gBAAgB,GAAG,IAAI;AAC/B,MAAM;AACN;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI;AAC/C,YAAY,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAC,IAAII,YAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACpF;AACA,YAAY,IAAI,CAAC,GAAG,EAAE;AACtB,gBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,MAAM,CAAC,sBAAsB,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;AACrF;AACA,gBAAgB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACzC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa;AACjB,QAAQ,WAAW;AACnB,QAAQ,MAAM;AACd,QAAQ,iBAAiB,GAAG,IAAI;AAChC,MAAM;AACN,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI;AAC/C,YAAY,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACpF;AACA,YAAY,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACxE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,EAAE;AAClD,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;AACrC,aAAa,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,KAAK;AAC9D,gBAAgB,IAAI;AACpB,oBAAoBC,qBAA+B,CAAC,eAAe,CAAC,CAAC;AACrE,iBAAiB,CAAC,OAAO,GAAG,EAAE;AAC9B,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrI,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE;AAC3D,QAAQ,IAAI,aAAa,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;AAC3D,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,sCAAsC,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC9H,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,MAAM,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;AACnC,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,sBAAsB,EAAE;AAC1D,gBAAgB,MAAM,qBAAqB,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACxK;AACA,gBAAgB,OAAO,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAClF,aAAa;AACb,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;AAC1C,gBAAgB,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,gBAAgB,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AAClH,gBAAgB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAClE;AACA,gBAAgB,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1I,aAAa;AACb;AACA,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC/F;AACA,YAAY,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvF,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AAChD,QAAQ,cAAc,GAAG,cAAc,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACrC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1H,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;AAChE,YAAY,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;AACzE,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE;AAClE,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACpE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACvE,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrD;AACA,QAAQ,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE;AACvD,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAC1E,YAAY,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAC7E,YAAY,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACzD,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,WAAW,EAAE;AACrC,QAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACpF,QAAQ,MAAM,kBAAkB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACxF,QAAQ,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC9E;AACA;AACA,QAAQ,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;AAC3C,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACxC,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC;AACA,YAAY,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC9E,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACxF,YAAY,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC3E,SAAS;AACT,KAAK;AACL;AACA;;ACpUA;AACA;AACA;AACA;AACA,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvC,QAAQ,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7D,KAAK;AACL;AACA,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AAC5F,YAAY,sBAAsB,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AACxE;AACA,QAAQ,IAAI,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AAC7D,YAAY,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG,SAAS,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,SAAS;AACT,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,QAAQ,cAAc,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AACvD,KAAK;AACL;AACA,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC7B,QAAQ,IAAI,WAAW,GAAG,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjF;AACA,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT;AACA,QAAQ,WAAW,GAAG,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClF,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,SAAS;AACT,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAClD,QAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjD,KAAK;AACL;AACA,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC9C;AACA,IAAI,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjC;;;;;;;;;ACrFA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAGC,0BAAM,CAAC,aAAa,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE;AAC7C,IAAI,IAAI;AACR,QAAQ,OAAO,aAAa,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACjE,KAAK,CAAC,OAAO,KAAK,EAAE;AACpB;AACA;AACA,QAAQ;AACR,YAAY,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,KAAK,KAAK,IAAI;AAC1B,YAAY,KAAK,CAAC,IAAI,KAAK,kBAAkB;AAC7C,YAAY,CAAC,KAAK,CAAC,YAAY;AAC/B,YAAY,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC9C,UAAU;AACV,YAAY,KAAK,CAAC,OAAO,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,MAAM,KAAK,CAAC;AACpB,KAAK;AACL;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsBA;AACA,MAAMC,SAAO,GAAGC,oBAAa,CAAC,mDAAe,CAAC,CAAC;AAC/C;AACA,MAAMd,OAAK,GAAGC,6BAAS,CAAC,+BAA+B,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA,MAAM,eAAe,GAAG;AACxB,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,WAAW;AACf,IAAI,cAAc;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,kBAAgB,GAAG,IAAI,OAAO,EAAE,CAAC;AACvC;AACA;AACA,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,UAAU,EAAE;AAChC,IAAI;AACJ,QAAQ,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,QAAQH,wBAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACnC,MAAM;AACN,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,QAAQ,EAAE;AAC5B,IAAI,OAAOa,sBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,QAAQ,EAAE;AACtC,IAAIf,OAAK,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnD;AACA;AACA,IAAI,MAAM,IAAI,GAAGa,SAAO,CAAC,SAAS,CAAC,CAAC;AACpC;AACA,IAAI,IAAI;AACR;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,QAAQb,OAAK,CAAC,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtD,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,QAAQ,MAAM,CAAC,CAAC;AAChB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,QAAQ,EAAE;AACtC,IAAIA,OAAK,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnD;AACA,IAAI,IAAI;AACR,QAAQ,OAAO,IAAI,CAAC,KAAK,CAACgB,iCAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7D,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,QAAQhB,OAAK,CAAC,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtD,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,QAAQ,CAAC,CAAC,eAAe,GAAG,qBAAqB,CAAC;AAClD,QAAQ,CAAC,CAAC,WAAW,GAAG;AACxB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,OAAO,EAAE,CAAC,CAAC,OAAO;AAC9B,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC;AAChB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,QAAQ,EAAE;AACxC,IAAIA,OAAK,CAAC,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrD;AACA;AACA,IAAI,MAAM,IAAI,GAAGa,SAAO,CAAC,SAAS,CAAC,CAAC;AACpC;AACA,IAAI,IAAI;AACR,QAAQ,OAAO,IAAI,CAAC,IAAI,CAACG,iCAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,+BAA+B,EAAE,CAAC;AAC7F,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,QAAQhB,OAAK,CAAC,iCAAiC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC9D,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,QAAQ,MAAM,CAAC,CAAC;AAChB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE;AACpC,IAAIA,OAAK,CAAC,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjD,IAAI,IAAI;AACR,QAAQ,OAAOiB,+BAAW,CAAC,QAAQ,CAAC,CAAC;AACrC,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,QAAQjB,OAAK,CAAC,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,QAAQ,MAAM,CAAC,CAAC;AAChB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB,CAAC,QAAQ,EAAE;AAC7C,IAAIA,OAAK,CAAC,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,IAAI;AACR,QAAQ,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACzD;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE;AACtE,YAAY,MAAM,MAAM,CAAC,MAAM;AAC/B,gBAAgB,IAAI,KAAK,CAAC,sDAAsD,CAAC;AACjF,gBAAgB,EAAE,IAAI,EAAE,+BAA+B,EAAE;AACzD,aAAa,CAAC;AACd,SAAS;AACT;AACA,QAAQ,OAAO,WAAW,CAAC,YAAY,CAAC;AACxC,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,QAAQA,OAAK,CAAC,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,QAAQ,MAAM,CAAC,CAAC;AAChB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,QAAQ,EAAE;AACxC,IAAIA,OAAK,CAAC,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrD;AACA,IAAI,IAAI;AACR,QAAQ,OAAO,QAAQ,CAAC,QAAQ,CAAC;AACjC,aAAa,KAAK,CAAC,SAAS,CAAC;AAC7B,aAAa,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,QAAQA,OAAK,CAAC,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/D,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,gCAAgC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACvF,QAAQ,MAAM,CAAC,CAAC;AAChB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE;AACvE,IAAI,OAAO,MAAM,CAAC,MAAM;AACxB,QAAQ,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC1E,QAAQ;AACR,YAAY,eAAe;AAC3B,YAAY,WAAW,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE;AACrD,SAAS;AACT,KAAK,CAAC;AACN,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,QAAQ,EAAE;AAClC,IAAI,QAAQE,wBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,QAAQ,KAAK,KAAK,CAAC;AACnB,QAAQ,KAAK,MAAM;AACnB,YAAY,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC9C;AACA,QAAQ,KAAK,OAAO;AACpB,YAAY,IAAIA,wBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,cAAc,EAAE;AAC5D,gBAAgB,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC3D,aAAa;AACb,YAAY,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAChD;AACA,QAAQ,KAAK,OAAO,CAAC;AACrB,QAAQ,KAAK,MAAM;AACnB,YAAY,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAChD;AACA,QAAQ;AACR,YAAY,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAClD,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;AAChE;AACA,IAAI,IAAIF,OAAK,CAAC,OAAO,EAAE;AACvB,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC;AAClC;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,eAAe,GAAGkB,OAAsB;AAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;AACzC,gBAAgB,UAAU;AAC1B,aAAa,CAAC;AACd,YAAY,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,GAAGL,SAAO,CAAC,eAAe,CAAC,CAAC;AACrE;AACA,YAAY,cAAc,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACrD,SAAS,CAAC,OAAO,KAAK,EAAE;AACxB,YAAYb,OAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAChE,YAAY,cAAc,GAAG,OAAO,CAAC;AACrC,SAAS;AACT;AACA,QAAQA,OAAK,CAAC,iBAAiB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC3D,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa;AACtB,IAAI,EAAE,GAAG,EAAE,wBAAwB,EAAE;AACrC,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,gBAAgB;AACpB,IAAI,qBAAqB;AACzB,EAAE;AACF,IAAI,MAAM,QAAQ,GAAG,gBAAgB;AACrC,UAAUE,wBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAC7C,UAAU,EAAE,CAAC;AACb,IAAI,MAAM,aAAa;AACvB,QAAQ,CAAC,qBAAqB,IAAIA,wBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC;AAC1E,SAAS,QAAQ,IAAIA,wBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5C,QAAQ,GAAG,CAAC;AACZ,IAAI,MAAM,IAAI;AACd,QAAQ,YAAY;AACpB,SAAS,QAAQ,IAAIA,wBAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAClD,QAAQ,EAAE,CAAC;AACX,IAAI,MAAM,cAAc;AACxB,QAAQ,wBAAwB;AAChC,SAAS,QAAQ,IAAIA,wBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5C,QAAQ,GAAG,CAAC;AACZ,IAAI,MAAM,IAAI,GAAG,YAAY,IAAI,QAAQ,CAAC;AAC1C;AACA,IAAI,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACnE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC;AACA;AACA,IAAI,IAAI,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzD;AACA,IAAI,IAAI,gBAAgB,EAAE;AAC1B,QAAQ,OAAO,gBAAgB,CAAC;AAChC,KAAK;AACL;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;AACrC,QAAQ,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;AAC/C,QAAQ,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;AAC3C,QAAQ,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;AACjC,KAAK,CAAC;AACN;AACA;AACA,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACpD;AACA,IAAI,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC;AAChB,QAAQ,oBAAoB,GAAG,IAAI,GAAG,EAAE;AACxC,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AAC3B,QAAQ,wBAAwB;AAChC,QAAQ,YAAY;AACpB,QAAQ,QAAQ,GAAG,cAAc;AACjC,QAAQ,aAAa;AACrB,QAAQ,kBAAkB;AAC1B,QAAQ,qBAAqB;AAC7B,QAAQ,0BAA0B;AAClC,KAAK,GAAG,EAAE,EAAE;AACZ,QAAQG,kBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE;AACnC,YAAY,oBAAoB;AAChC,YAAY,GAAG;AACf,YAAY,wBAAwB;AACpC,gBAAgB,wBAAwB;AACxC,gBAAgBH,wBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAC3D,YAAY,YAAY;AACxB,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,YAAY,qBAAqB;AACjC,YAAY,0BAA0B;AACtC,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AAC1D,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,OAAO,IAAI,WAAW,EAAE,CAAC;AACrC,SAAS;AACT;AACA,QAAQ,MAAM,KAAK,GAAGG,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,QAAQ,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC7E,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACpE;AACA,QAAQ,OAAO,IAAI,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AAChD,QAAQ,MAAM,KAAK,GAAGA,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,QAAQ,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC7E;AACA,QAAQ,OAAO,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AAC5D,QAAQ,MAAM,KAAK,GAAGA,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD;AACA,QAAQ,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;AAChD,YAAY,MAAM,GAAG,GAAG,aAAa;AACrC,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ;AACxB,gBAAgB,IAAI;AACpB,gBAAgBH,wBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;AAClD,gBAAgB,QAAQ;AACxB,aAAa,CAAC;AACd;AACA,YAAY,IAAIa,sBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAIA,sBAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;AACnF,gBAAgB,IAAI,UAAU,CAAC;AAC/B;AACA,gBAAgB,IAAI;AACpB,oBAAoB,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9D,iBAAiB,CAAC,OAAO,KAAK,EAAE;AAChC,oBAAoB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,+BAA+B,EAAE;AAClF,wBAAwB,MAAM,KAAK,CAAC;AACpC,qBAAqB;AACrB,iBAAiB;AACjB;AACA,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoBf,OAAK,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChE,oBAAoB,OAAO,IAAI,WAAW;AAC1C,wBAAwB,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC;AACrE,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,QAAQA,OAAK,CAAC,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,OAAO,IAAI,WAAW,EAAE,CAAC;AACjC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,8BAA8B,CAAC,aAAa,EAAE;AACzD,QAAQ,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;AAChD,YAAY,MAAM,QAAQ,GAAGE,wBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAChE;AACA,YAAY,IAAIa,sBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACzC,gBAAgB,IAAI,QAAQ,KAAK,cAAc,EAAE;AACjD,oBAAoB,IAAI;AACxB,wBAAwB,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC5D,wBAAwB,OAAO,QAAQ,CAAC;AACxC,qBAAqB,CAAC,MAAM,gBAAgB;AAC5C,iBAAiB,MAAM;AACvB,oBAAoB,OAAO,QAAQ,CAAC;AACpC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,MAAM,KAAK,GAAGV,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,QAAQ,MAAM,GAAG,GAAG,aAAa;AACjC,YAAY,KAAK;AACjB,YAAY,QAAQ;AACpB,YAAY,KAAK,CAAC;AAClB,YAAY,QAAQ;AACpB,YAAY,KAAK,CAAC,GAAG;AACrB,SAAS,CAAC;AACV,QAAQ,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClE;AACA,QAAQ,OAAO,IAAI,WAAW;AAC9B,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,GAAG,CAAC;AACnE,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,MAAM,KAAK,GAAGA,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,QAAQ,MAAM,gBAAgB,GAAGH,wBAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC1E,QAAQ,MAAM,eAAe,GAAGA,wBAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACxE;AACA,QAAQ,IAAIa,sBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;AAC7C,YAAY,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAIA,sBAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;AAC5C,YAAY,MAAM,IAAI,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;AAC7D;AACA,YAAY,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;AAClE,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACvD,oBAAoB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACrG,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,GAAG,aAAa;AACzC,oBAAoB,KAAK;AACzB,oBAAoB,QAAQ;AAC5B,oBAAoB,8BAA8B;AAClD,oBAAoB,eAAe;AACnC,oBAAoB,KAAK,CAAC,GAAG;AAC7B,iBAAiB,CAAC;AAClB;AACA,gBAAgB,OAAO,IAAI,WAAW;AACtC,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;AAC9E,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,WAAW,EAAE,CAAC;AACjC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,GAAG,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,GAAG,EAAE;AACrD,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B;AACxD,YAAY,EAAE,cAAc,EAAE;AAC9B,YAAY,GAAG;AACf,SAAS,CAAC;AACV;AACA;AACA,QAAQ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACxC,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE;AACvC,gBAAgB,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;AACnD,aAAa;AACb,YAAY,MAAM,OAAO,CAAC;AAC1B,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE;AAC1C,QAAQ,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;AAChD;AACA,QAAQ,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7E,QAAQ,OAAO,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAChE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,GAAG,EAAE;AACjD,QAAQ,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC;AACnE,QAAQ,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK;AACjB,YAAY,aAAa;AACzB,YAAY,GAAG,CAAC,aAAa;AAC7B,SAAS,CAAC;AACV,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC9E;AACA;AACA,QAAQ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9E;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE;AAClC,gBAAgB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AACtC,aAAa;AACb;AACA,YAAY,MAAM,OAAO,CAAC;AAC1B,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,8BAA8B;AACnC,QAAQ;AACR,YAAY,GAAG;AACf,YAAY,OAAO,EAAE,MAAM;AAC3B,YAAY,OAAO;AACnB,YAAY,cAAc;AAC1B,YAAY,cAAc;AAC1B,YAAY,MAAM,EAAE,UAAU;AAC9B,YAAY,aAAa;AACzB,YAAY,OAAO,EAAE,UAAU;AAC/B,YAAY,SAAS;AACrB,YAAY,6BAA6B;AACzC,YAAY,IAAI;AAChB,YAAY,KAAK;AACjB,YAAY,QAAQ;AACpB,YAAY,SAAS,EAAE,YAAY,GAAG,EAAE;AACxC,SAAS;AACT,QAAQ,GAAG;AACX,MAAM;AACN,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AACrE,QAAQ,MAAM,aAAa,GAAG,cAAc,IAAI,IAAI,aAAa;AACjE,YAAY,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,CAAC,cAAc,CAAC;AAC7E,YAAY,GAAG,CAAC,aAAa;AAC7B,SAAS,CAAC;AACV;AACA;AACA,QAAQ,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AAC7D,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACtD,SAAS;AACT;AACA;AACA,QAAQ,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACvE,QAAQ,MAAM,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACzE;AACA;AACA,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,OAAO,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnE,SAAS;AACT;AACA;AACA,QAAQ,MAAM;AACd;AACA;AACA,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,QAAQ,EAAE,GAAG,CAAC,QAAQ;AAClC;AACA;AACA,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,GAAG;AACf,YAAY,OAAO;AACnB,YAAY,aAAa;AACzB,YAAY,cAAc;AAC1B,YAAY,MAAM;AAClB,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,6BAA6B;AACzC,YAAY,IAAI;AAChB,YAAY,KAAK;AACjB,YAAY,QAAQ;AACpB,SAAS,CAAC;AACV;AACA;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtD,YAAY,OAAO,IAAI,CAAC,0BAA0B;AAClD,gBAAgB,YAAY,CAAC,CAAC,CAAC;AAC/B,gBAAgB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE;AAClC,QAAQf,OAAK,CAAC,qCAAqC,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/E,QAAQ,IAAI;AACZ,YAAY,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAClD,gBAAgB,OAAO,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACxE,aAAa;AACb,YAAY,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAClD,gBAAgB,OAAO,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACvE,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACtE,SAAS,CAAC,OAAO,KAAK,EAAE;AACxB,YAAY,KAAK,CAAC,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0BAA0B,CAAC,UAAU,EAAE,GAAG,EAAE;AAChD,QAAQ,MAAM;AACd,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,YAAY,qBAAqB;AACjC,YAAY,0BAA0B;AACtC,SAAS,GAAGK,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC;AACA,QAAQ,IAAI,UAAU,KAAK,oBAAoB,EAAE;AACjD,YAAY,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AACvD;AACA,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,IAAI,OAAO,0BAA0B,KAAK,UAAU,EAAE;AACtE,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,0DAA0D,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;AAChI,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/G,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,eAAe,CAAC;AACxC,gBAAgB,GAAG,GAAG;AACtB,gBAAgB,IAAI;AACpB,gBAAgB,QAAQ,EAAE,qBAAqB;AAC/C,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,UAAU,KAAK,YAAY,EAAE;AACzC,YAAY,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AACvD;AACA,YAAY,IAAI,kBAAkB,EAAE;AACpC,gBAAgB,IAAI,OAAO,kBAAkB,KAAK,UAAU,EAAE;AAC9D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,kDAAkD,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACvG,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,eAAe,CAAC;AACxC,gBAAgB,GAAG,GAAG;AACtB,gBAAgB,IAAI;AACpB,gBAAgB,QAAQ,EAAE,aAAa;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT;AACA,QAAQ,MAAM,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAChF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAyB,CAAC,UAAU,EAAE,GAAG,EAAE;AAC/C,QAAQ,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvD;AACA,QAAQ,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;AAC/B,YAAY,MAAM,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACjF,SAAS;AACT;AACA,QAAQ,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAQ,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC5D;AACA,QAAQ,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC7E,SAAS;AACT;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACzD,QAAQ,MAAM,UAAU;AACxB,YAAY,MAAM,CAAC,UAAU;AAC7B,YAAY,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAClD;AACA,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;AACzD,gBAAgB,GAAG,GAAG;AACtB,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;AACzD,gBAAgB,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACvE,aAAa,CAAC,CAAC;AACf,SAAS;AACT;AACA,QAAQ,MAAM,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AACpG,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4BAA4B,CAAC,UAAU,EAAE,GAAG,EAAE;AAClD,QAAQ,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAGA,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAQ,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,IAAIH,wBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAChF,QAAQ,IAAI,OAAO,CAAC;AACpB;AACA,QAAQ,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AACpC,YAAY,OAAO,GAAG,UAAU,CAAC;AACjC,SAAS,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC/C,YAAY,OAAO,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AACxC,SAAS,MAAM;AACf,YAAY,OAAO,GAAGiB,oBAA2B;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,eAAe;AAC/B,aAAa,CAAC;AACd,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,CAAC;AACrB;AACA,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7D,SAAS,CAAC,OAAO,KAAK,EAAE;AACxB;AACA,YAAY,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC5D,gBAAgB,MAAM,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AAC5F,aAAa;AACb,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC/D,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC;AACpC,YAAY,GAAG,GAAG;AAClB,YAAY,QAAQ;AACpB,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE;AAC7B,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AAC3C,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAgB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC7E,aAAa;AACb,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACvD;AACA,YAAY,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AACpC;AACA,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS,EAAE,EAAE,CAAC,CAAC;AACf,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE;AACjC,QAAQnB,OAAK,CAAC,2BAA2B,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrE;AACA,QAAQ,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAGK,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAQ,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,IAAIH,wBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAChF;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACtE;AACA,YAAY,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACtE;AACA,YAAY,OAAO,IAAI,gBAAgB,CAAC;AACxC,gBAAgB,UAAU,EAAEW,SAAO,CAAC,QAAQ,CAAC;AAC7C,gBAAgB,QAAQ;AACxB,gBAAgB,EAAE,EAAE,UAAU;AAC9B,gBAAgB,YAAY,EAAE,GAAG,CAAC,IAAI;AACtC,gBAAgB,YAAY,EAAE,GAAG,CAAC,QAAQ;AAC1C,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,OAAO,KAAK,EAAE;AACxB;AACA;AACA,YAAY,IAAI,UAAU,KAAK,QAAQ,EAAE;AACzC,gBAAgBb,OAAK,CAAC,kBAAkB,CAAC,CAAC;AAC1C,gBAAgB,OAAO,IAAI,gBAAgB,CAAC;AAC5C,oBAAoB,UAAU,EAAEa,SAAO,CAAC,QAAQ,CAAC;AACjD,oBAAoB,QAAQ,EAAEA,SAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AACvD,oBAAoB,EAAE,EAAE,UAAU;AAClC,oBAAoB,YAAY,EAAE,GAAG,CAAC,IAAI;AAC1C,oBAAoB,YAAY,EAAE,GAAG,CAAC,QAAQ;AAC9C,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb;AACA,YAAYb,OAAK,CAAC,8CAA8C,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxF,YAAY,KAAK,CAAC,OAAO,GAAG,CAAC,uBAAuB,EAAE,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAChH;AACA,YAAY,OAAO,IAAI,gBAAgB,CAAC;AACxC,gBAAgB,KAAK;AACrB,gBAAgB,EAAE,EAAE,UAAU;AAC9B,gBAAgB,YAAY,EAAE,GAAG,CAAC,IAAI;AACtC,gBAAgB,YAAY,EAAE,GAAG,CAAC,QAAQ;AAC1C,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;AAC3B,QAAQA,OAAK,CAAC,2BAA2B,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/D;AACA,QAAQ,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,GAAGK,kBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9E,QAAQ,MAAM,OAAO,GAAGc,oBAA2B,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC3E,QAAQ,MAAM,EAAE,GAAGC,gBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACrE,QAAQ,MAAM,UAAU,GAAGlB,wBAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;AAC/E;AACA,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAChC,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;AACvC,gBAAgB,IAAI,KAAK,CAAC,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,gBAAgB;AAChB,oBAAoB,eAAe,EAAE,kBAAkB;AACvD,oBAAoB,WAAW,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;AACxD,iBAAiB;AACjB,aAAa,CAAC;AACd;AACA,YAAY,OAAO,IAAI,gBAAgB,CAAC;AACxC,gBAAgB,KAAK;AACrB,gBAAgB,EAAE;AAClB,gBAAgB,YAAY,EAAE,GAAG,CAAC,IAAI;AACtC,gBAAgB,YAAY,EAAE,GAAG,CAAC,QAAQ;AAC1C,aAAa,CAAC,CAAC;AACf,SAAS;AACT;AACA;AACA,QAAQ,MAAM,MAAM;AACpB,YAAY,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7C,YAAY,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACzC;AACA,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,OAAO,IAAI,gBAAgB,CAAC;AACxC,gBAAgB,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;AACnD,gBAAgB,QAAQ,EAAE,EAAE;AAC5B,gBAAgB,EAAE;AAClB,gBAAgB,YAAY,EAAE,GAAG,CAAC,IAAI;AACtC,gBAAgB,YAAY,EAAE,GAAG,CAAC,QAAQ;AAC1C,aAAa,CAAC,CAAC;AACf,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI,KAAK,CAAC;AAClB;AACA,QAAQ,IAAI;AACZ,YAAY,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7D,SAAS,CAAC,OAAO,YAAY,EAAE;AAC/B,YAAY,KAAK,GAAG,YAAY,CAAC;AACjC;AACA,YAAY,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC5D,gBAAgB,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC;AACzD,gBAAgB,KAAK,CAAC,WAAW,GAAG;AACpC,oBAAoB,UAAU,EAAE,OAAO;AACvC,oBAAoB,wBAAwB,EAAE,GAAG,CAAC,cAAc;AAChE,oBAAoB,YAAY,EAAE,GAAG,CAAC,IAAI;AAC1C,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,IAAI;AAChB,gBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACvE;AACA,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7C,gBAAgB,MAAM,gBAAgB,GAAGW,SAAO,CAAC,QAAQ,CAAC,CAAC;AAC3D;AACA,gBAAgBb,OAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF;AACA,gBAAgB,OAAO,IAAI,gBAAgB,CAAC;AAC5C,oBAAoB,UAAU,EAAE,eAAe,CAAC,gBAAgB,CAAC;AACjE,oBAAoB,QAAQ;AAC5B,oBAAoB,EAAE;AACtB,oBAAoB,YAAY,EAAE,GAAG,CAAC,IAAI;AAC1C,oBAAoB,YAAY,EAAE,GAAG,CAAC,QAAQ;AAC9C,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,OAAO,SAAS,EAAE;AAChC,gBAAgB,KAAK,GAAG,SAAS,CAAC;AAClC,aAAa;AACb,SAAS;AACT;AACA,QAAQA,OAAK,CAAC,8CAA8C,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9E,QAAQ,KAAK,CAAC,OAAO,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACtG,QAAQ,OAAO,IAAI,gBAAgB,CAAC;AACpC,YAAY,KAAK;AACjB,YAAY,EAAE;AACd,YAAY,YAAY,EAAE,GAAG,CAAC,IAAI;AAClC,YAAY,YAAY,EAAE,GAAG,CAAC,QAAQ;AACtC,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,GAAG,EAAE;AAChD,QAAQ,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACrD,YAAY,MAAM,UAAU;AAC5B,gBAAgB,OAAO,CAAC,QAAQ,CAAC;AACjC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU;AAC5C,gBAAgB,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;AACxD;AACA,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,gBAAgB,SAAS;AACzB,aAAa;AACb;AACA,YAAY,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC/D,gBAAgB,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACjD,oBAAoB,OAAO,IAAI,CAAC,0BAA0B;AAC1D,wBAAwB;AACxB,4BAA4B,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AACtD,4BAA4B,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACnE,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,GAAG,GAAG;AAClC,4BAA4B,IAAI,EAAE,oBAAoB;AACtD,4BAA4B,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;AACxF,yBAAyB;AACzB,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AC1nCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA,MAAMA,OAAK,GAAGC,6BAAS,CAAC,yCAAyC,CAAC,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAE,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC;AAC/B,IAAI,kBAAkB;AACtB,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,GAAG;AACP,IAAI,SAAS;AACb,CAAC,EAAE;AACH,IAAI,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM;AACrD,QAAQ,cAAc;AACtB,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;AAC9B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM;AACrD,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,eAAe,EAAE;AACzD,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE;AACxC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,QAAQ,eAAe,CAAC,IAAI,CAAC;AAC7B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,QAAQ,EAAE,EAAE;AACxB,YAAY,OAAO,EAAE;AACrB,gBAAgB,EAAE,EAAE,IAAI,gBAAgB,CAAC;AACzC,oBAAoB,UAAU,EAAE;AAChC,wBAAwB,KAAK,EAAE,SAAS,CAAC,MAAM;AAC/C,4BAA4B,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM;AAC7D,gCAAgC,GAAG;AACnC,gCAAgC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;AACzD,6BAA6B;AAC7B,4BAA4B,EAAE;AAC9B,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,QAAQ,EAAE,EAAE;AAChC,oBAAoB,EAAE,EAAE,EAAE;AAC1B,oBAAoB,YAAY,EAAE,YAAY;AAC9C,oBAAoB,YAAY,EAAE,EAAE;AACpC,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA,IAAI,OAAO,eAAe,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC;AAC9B,IAAI,aAAa;AACjB,IAAI,kBAAkB;AACtB,IAAI,GAAG;AACP,IAAI,UAAU;AACd,IAAI,kBAAkB;AACtB,CAAC,EAAE;AACH,IAAI,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM;AACpD,QAAQ,aAAa;AACrB,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;AAC9B,KAAK,CAAC;AACN;AACA,IAAI,cAAc,CAAC,OAAO;AAC1B,QAAQ,IAAI,UAAU;AACtB,cAAc,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAC7D,cAAc,kBAAkB,CAAC,uBAAuB,EAAE,CAAC;AAC3D,KAAK,CAAC;AACN;AACA,IAAI,IAAI,kBAAkB,EAAE;AAC5B,QAAQ,cAAc,CAAC,OAAO;AAC9B,YAAY,GAAG,kBAAkB,CAAC,QAAQ;AAC1C,gBAAgB,kBAAkB;AAClC,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE;AACnD,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL;AACA,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,0BAA0B,SAAS,KAAK,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,aAAa,EAAE;AAC/B,QAAQ,KAAK,CAAC,CAAC,iCAAiC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;AACjD,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,aAAa,EAAE,CAAC;AAC7C,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAM,2BAA2B,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC;AAChB,QAAQ,oBAAoB,GAAG,IAAI,GAAG,EAAE;AACxC,QAAQ,UAAU,EAAE,cAAc,GAAG,IAAI;AACzC,QAAQ,SAAS,EAAE,aAAa,GAAG,IAAI;AACvC,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AAC3B,QAAQ,UAAU;AAClB,QAAQ,wBAAwB;AAChC,QAAQ,SAAS,GAAG,EAAE;AACtB,QAAQ,kBAAkB,GAAG,IAAI;AACjC,QAAQ,WAAW,GAAG,IAAI;AAC1B,QAAQ,YAAY,GAAG,IAAI,GAAG,EAAE;AAChC,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,qBAAqB;AAC7B,QAAQ,0BAA0B;AAClC,QAAQ,aAAa;AACrB,QAAQ,kBAAkB;AAC1B,KAAK,GAAG,EAAE,EAAE;AACZ,QAAQ,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;AAC1D,YAAY,oBAAoB;AAChC,YAAY,GAAG;AACf,YAAY,wBAAwB;AACpC,YAAY,YAAY;AACxB,YAAY,QAAQ;AACpB,YAAY,qBAAqB;AACjC,YAAY,0BAA0B;AACtC,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE;AACnC,YAAY,eAAe,EAAE,qBAAqB,CAAC;AACnD,gBAAgB,cAAc;AAC9B,gBAAgB,kBAAkB;AAClC,gBAAgB,GAAG;AACnB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB,aAAa,CAAC;AACd,YAAY,cAAc;AAC1B,YAAY,cAAc,EAAE,oBAAoB,CAAC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,kBAAkB;AAClC,gBAAgB,GAAG;AACnB,gBAAgB,UAAU;AAC1B,gBAAgB,kBAAkB;AAClC,aAAa,CAAC;AACd,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,YAAY,WAAW,EAAE,IAAI,GAAG,EAAE;AAClC,YAAY,GAAG;AACf,YAAY,aAAa,EAAE,IAAI,OAAO,EAAE;AACxC,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,kBAAkB;AAC9B,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,SAAS;AACrB,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,GAAG;AACd,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnD;AACA,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,QAAQ,EAAE,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;AAC1E,QAAQ,MAAM;AACd,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,YAAY,GAAG;AACf,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC;AACA,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO,IAAI,WAAW,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC;AAC1E,SAAS;AACT;AACA,QAAQ,MAAM,aAAa,GAAGC,wBAAI,CAAC,OAAO,CAACA,wBAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxE;AACA,QAAQF,OAAK,CAAC,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,QAAQ,OAAO,IAAI,CAAC,oBAAoB;AACxC,YAAY,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC;AACtD,YAAY,aAAa;AACzB,YAAY,mBAAmB;AAC/B,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD;AACA,QAAQ,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD;AACA,QAAQ,KAAK,CAAC,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC7D,QAAQ,KAAK,CAAC,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC3D,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AAClC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,aAAa,EAAE,qBAAqB,GAAG,KAAK,EAAE;AACzE,QAAQ,MAAM;AACd,YAAY,eAAe;AAC3B,YAAY,kBAAkB;AAC9B,YAAY,WAAW;AACvB,YAAY,GAAG;AACf,YAAY,WAAW;AACvB,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO,eAAe,CAAC;AACnC,SAAS;AACT;AACA,QAAQ,IAAI,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACzD;AACA;AACA,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAYA,OAAK,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,YAAY,OAAO,WAAW,CAAC;AAC/B,SAAS;AACT,QAAQA,OAAK,CAAC,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD;AACA,QAAQ,MAAM,QAAQ,GAAGqB,sBAAE,CAAC,OAAO,EAAE,CAAC;AACtC;AACA;AACA,QAAQ,IAAI,aAAa,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,EAAE;AAC5D,YAAYrB,OAAK,CAAC,6CAA6C,CAAC,CAAC;AACjE,YAAY,IAAI,qBAAqB,EAAE;AACvC,gBAAgB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;AAClG;AACA,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,sBAAsB;AAC1C,wBAAwB,QAAQ;AAChC,wBAAwB,iCAAiC;AACzD,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AACrE,SAAS;AACT;AACA;AACA,QAAQ,IAAI;AACZ,YAAY,WAAW,GAAG,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAC5E,SAAS,CAAC,OAAO,KAAK,EAAE;AACxB;AACA,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACzC,gBAAgBA,OAAK,CAAC,4CAA4C,CAAC,CAAC;AACpE,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AACzE,aAAa;AACb,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT;AACA,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE;AAC5D,YAAYA,OAAK,CAAC,yCAAyC,CAAC,CAAC;AAC7D,YAAY,WAAW,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AACpD,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACjE,SAAS;AACT;AACA;AACA,QAAQ,MAAM,UAAU,GAAGE,wBAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACvD,QAAQ,MAAM,iBAAiB,GAAG,UAAU,IAAI,UAAU,KAAK,aAAa;AAC5E,cAAc,IAAI,CAAC,sBAAsB;AACzC,gBAAgB,UAAU;AAC1B,gBAAgB,qBAAqB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;AAC/D,aAAa;AACb,cAAc,eAAe,CAAC;AAC9B;AACA,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,YAAY,WAAW,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;AACtD,SAAS,MAAM;AACf,YAAY,WAAW,GAAG,iBAAiB,CAAC;AAC5C,SAAS;AACT;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC7D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,aAAa,EAAE,WAAW,EAAE;AAC7C,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3D;AACA,QAAQ,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACnC,QAAQ,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACpD;AACA,QAAQ,OAAO,WAAW,CAAC;AAC3B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE;AAC1E,QAAQ,MAAM;AACd,YAAY,cAAc;AAC1B,YAAY,kBAAkB;AAC9B,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC;AACA,QAAQ,IAAI,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9D;AACA,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,gBAAgB,GAAG,WAAW,CAAC;AAC3C;AACA;AACA,YAAY;AACZ,gBAAgB,WAAW;AAC3B,gBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnD,gBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,cAAc;AACd,gBAAgB,MAAM,QAAQ,GAAGmB,sBAAE,CAAC,OAAO,EAAE,CAAC;AAC9C;AACA,gBAAgBrB,OAAK,CAAC,gDAAgD,EAAE,QAAQ,CAAC,CAAC;AAClF;AACA,gBAAgB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,eAAe;AAC9E,oBAAoB,QAAQ;AAC5B,oBAAoB,EAAE,IAAI,EAAE,gBAAgB,EAAE;AAC9C,iBAAiB,CAAC;AAClB;AACA,gBAAgB;AAChB,oBAAoB,mBAAmB,CAAC,MAAM,GAAG,CAAC;AAClD,oBAAoB,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC;AACvD,kBAAkB;AAClB,oBAAoB,MAAM,WAAW;AACrC,wBAAwB,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5E;AACA,oBAAoB,sBAAsB;AAC1C,wBAAwB,WAAW,CAAC,QAAQ;AAC5C,wBAAwB,6BAA6B;AACrD,qBAAqB,CAAC;AACtB,iBAAiB;AACjB;AACA,gBAAgB,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAChF,aAAa;AACb;AACA;AACA,YAAY,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,gBAAgB,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC3E,aAAa;AACb;AACA;AACA,YAAY,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;AAClD,gBAAgB,YAAY;AAC5B,aAAa,CAAC,CAAC;AACf;AACA,YAAY,SAAS,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC5D;AACA;AACA,YAAY,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC5C,YAAY,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAC7D;AACA,YAAYA,OAAK;AACjB,gBAAgB,wCAAwC;AACxD,gBAAgB,gBAAgB;AAChC,gBAAgB,aAAa;AAC7B,aAAa,CAAC;AACd,SAAS;AACT;AACA;AACA,QAAQ,IAAI,CAAC,mBAAmB,IAAI,WAAW,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;AACjF,YAAY,MAAM,IAAI,0BAA0B,CAAC,aAAa,CAAC,CAAC;AAChE,SAAS;AACT;AACA,QAAQ,OAAO,gBAAgB,CAAC;AAChC,KAAK;AACL;;AC9gBA;AACA;AACA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK,GAAGsB,6BAAW,CAAC,sBAAsB,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,cAAc,EAAE;AAC3C,IAAI,uBAAuB;AAC3B,IAAI,wBAAwB;AAC5B,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,CAAC,EAAE;AACH;AACA,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC;AAC/B,IAAI,MAAM,aAAa,GAAG,EAAE,CAAC;AAC7B,IAAI,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC1D,IAAI,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC7E,IAAI,MAAM,uBAAuB,GAAG,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;AACxF;AACA;AACA,IAAI,IAAI,cAAc,CAAC,QAAQ,EAAE;AACjC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;AAC5D,YAAY,OAAO,CAAC,YAAY,CAAC,CAAC;AAClC,SAAS;AACT;AACA,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,EAAE;AACpE,YAAY,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC1C,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AAClC,QAAQ,IAAI,GAAG,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE;AACjF,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAClD,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,KAAK,MAAM,GAAG,IAAI,yBAAyB,EAAE;AACjD,QAAQ,IAAI,GAAG,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE;AACjF;AACA;AACA,YAAY,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;AACzD;AACA,YAAY,IAAI,GAAG,KAAK,QAAQ,EAAE;AAClC,gBAAgB,KAAK,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAC3G;AACA,gBAAgB,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AAC/C,oBAAoB,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpD,iBAAiB;AACjB;AACA,gBAAgB,eAAe,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;AACtE,gBAAgB,SAAS;AACzB,aAAa;AACb;AACA;AACA,YAAY,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;AAChF,gBAAgB,eAAe,CAAC,GAAG,CAAC,GAAG;AACvC,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC;AAC1C,iBAAiB,CAAC;AAClB,aAAa,MAAM;AACnB,gBAAgB,eAAe,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAC3D,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE;AAC/C,QAAQ,IAAI,GAAG,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE;AACjF,YAAY,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;AACrD,YAAY,aAAa,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,eAAe,CAAC,aAAa,EAAE;AACvC;AACA,QAAQ,IAAI,aAAa,IAAI,eAAe,CAAC,aAAa,EAAE;AAC5D,YAAY,eAAe,CAAC,WAAW,GAAG,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC;AACpF,YAAY,OAAO,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC;AAC7D,SAAS;AACT;AACA,QAAQ,IAAI,YAAY,IAAI,eAAe,CAAC,aAAa,EAAE;AAC3D,YAAY,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC;AAClF,YAAY,OAAO,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC;AAC5D,SAAS;AACT;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACrE,YAAY,OAAO,eAAe,CAAC,aAAa,CAAC;AACjD,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,cAAc,CAAC,QAAQ,EAAE;AACjC,QAAQ,UAAU,CAAC,KAAK,GAAG,CAAC,gBAAgB,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAChG,KAAK;AACL;AACA;AACA,IAAI,IAAI,cAAc,CAAC,OAAO,IAAI,OAAO,cAAc,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC9E,QAAQ,KAAK,CAAC,CAAC,qBAAqB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChE;AACA,QAAQ,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;AAChC;AACA,QAAQ,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AACtE;AACA,YAAY,KAAK,CAAC,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACvD,YAAY,KAAK,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAC7F;AACA,YAAY,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACrF;AACA,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,MAAM,KAAK,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AACpD;AACA;AACA,YAAY,IAAI,MAAM,CAAC,UAAU,EAAE;AACnC,gBAAgB,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAC5E,oBAAoB,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACvD,wBAAwB,KAAK,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AACrF;AACA,wBAAwB,OAAO,CAAC,OAAO,CAAC;AACxC,4BAA4B,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;AAC3D,4BAA4B,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7F,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,cAAc,CAAC,GAAG,IAAI,OAAO,cAAc,CAAC,GAAG,KAAK,QAAQ,EAAE;AACtE,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/D;AACA;AACA,YAAY,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC7C,gBAAgB,KAAK,CAAC,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA,gBAAgB,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC/C;AACA;AACA,oBAAoB,OAAO,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpF,wBAAwB,uBAAuB;AAC/C,wBAAwB,wBAAwB;AAChD,qBAAqB,CAAC,CAAC,CAAC;AACxB,iBAAiB,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC5D;AACA;AACA,oBAAoB,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACvF,wBAAwB,uBAAuB;AAC/C,wBAAwB,wBAAwB;AAChD,qBAAqB,CAAC,CAAC,CAAC;AACxB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,KAAK;AACL;AACA,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAU,CAAC;AACjB;AACA,IAAI,WAAW,CAAC;AAChB,QAAQ,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;AACrC,QAAQ,wBAAwB,GAAG,aAAa;AAChD,KAAK,GAAG,EAAE,EAAE;AACZ,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,QAAQ,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AACjE,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,kBAAkB,CAAC;AACjD,YAAY,GAAG,EAAE,aAAa;AAC9B,YAAY,wBAAwB;AACpC,YAAY,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;AAC5E,YAAY,0BAA0B,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,CAAC;AAC5F,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,cAAc,EAAE;AAC3B,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE;AACrE,YAAY,QAAQ,EAAE,IAAI,CAAC,aAAa;AACxC,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,MAAM,SAAS,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,iBAAiB,GAAG,KAAK,CAAC;AACtC;AACA,QAAQ,aAAa,CAAC,OAAO,CAAC,UAAU,IAAI;AAC5C,YAAY,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,iBAAiB,GAAG,iBAAiB,IAAI,UAAU,CAAC,aAAa,CAAC;AAClF,gBAAgB,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,UAAU,EAAE;AAChE,oBAAoB,uBAAuB,EAAEpB,wBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC;AAC9F,oBAAoB,wBAAwB,EAAEA,wBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,kBAAkB,CAAC;AAC1G,oBAAoB,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;AACxE,oBAAoB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;AACpE,iBAAiB,CAAC,CAAC,CAAC;AACpB,aAAa;AACb,SAAS,CAAC,CAAC;AACX;AACA;AACA,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,SAAS,CAAC,OAAO,CAAC;AAC9B,gBAAgB,OAAO,EAAE,CAAC,QAAQ,IAAI;AACtC;AACA;AACA;AACA,oBAAoB,MAAM,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9E;AACA;AACA,oBAAoB,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzF,iBAAiB,CAAC;AAClB,aAAa,CAAC,CAAC;AACf,SAAS;AACT;AACA,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,SAAS,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,YAAY,GAAG,EAAE,SAAS;AAC1B,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,GAAG,eAAe,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,YAAY,OAAO,EAAE,eAAe;AACpC,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,GAAG,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,YAAY,OAAO;AACnB,SAAS,CAAC,CAAC;AACX,KAAK;AACL;;AChTA;AACA;AACA;AACA;AAsBA;AACA;AACA;AACA;AACA;AACK,MAAC,MAAM,GAAG;AACf,IAAI,WAAW;AACf,qCAAIqB,aAA+B;AACnC,IAAI,2BAA2B;AAC/B,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,uBAAuB;AAC3B,IAAI,YAAY;AAChB;AACA;AACA,IAAI,SAAS;AACb,IAAI,eAAe;AACnB,IAAI,cAAc;AAClB,IAAI,MAAM;AACV;;;;;"} \ No newline at end of file diff --git a/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js b/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js new file mode 100644 index 0000000..4b575c2 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js @@ -0,0 +1,533 @@ +/** + * @fileoverview `CascadingConfigArrayFactory` class. + * + * `CascadingConfigArrayFactory` class has a responsibility: + * + * 1. Handles cascading of config files. + * + * It provides two methods: + * + * - `getConfigArrayForFile(filePath)` + * Get the corresponded configuration of a given file. This method doesn't + * throw even if the given file didn't exist. + * - `clearCache()` + * Clear the internal cache. You have to call this method when + * `additionalPluginPool` was updated if `baseConfig` or `cliConfig` depends + * on the additional plugins. (`CLIEngine#addPlugin()` method calls this.) + * + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import debugOrig from "debug"; +import os from "os"; +import path from "path"; + +import { ConfigArrayFactory } from "./config-array-factory.js"; +import { + ConfigArray, + ConfigDependency, + IgnorePattern +} from "./config-array/index.js"; +import ConfigValidator from "./shared/config-validator.js"; +import { emitDeprecationWarning } from "./shared/deprecation-warnings.js"; + +const debug = debugOrig("eslintrc:cascading-config-array-factory"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +// Define types for VSCode IntelliSense. +/** @typedef {import("./shared/types").ConfigData} ConfigData */ +/** @typedef {import("./shared/types").Parser} Parser */ +/** @typedef {import("./shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").Rule} Rule */ +/** @typedef {ReturnType} ConfigArray */ + +/** + * @typedef {Object} CascadingConfigArrayFactoryOptions + * @property {Map} [additionalPluginPool] The map for additional plugins. + * @property {ConfigData} [baseConfig] The config by `baseConfig` option. + * @property {ConfigData} [cliConfig] The config by CLI options (`--env`, `--global`, `--ignore-pattern`, `--parser`, `--parser-options`, `--plugin`, and `--rule`). CLI options overwrite the setting in config files. + * @property {string} [cwd] The base directory to start lookup. + * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`. + * @property {string[]} [rulePaths] The value of `--rulesdir` option. + * @property {string} [specificConfigPath] The value of `--config` option. + * @property {boolean} [useEslintrc] if `false` then it doesn't load config files. + * @property {Function} loadRules The function to use to load rules. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** + * @typedef {Object} CascadingConfigArrayFactoryInternalSlots + * @property {ConfigArray} baseConfigArray The config array of `baseConfig` option. + * @property {ConfigData} baseConfigData The config data of `baseConfig` option. This is used to reset `baseConfigArray`. + * @property {ConfigArray} cliConfigArray The config array of CLI options. + * @property {ConfigData} cliConfigData The config data of CLI options. This is used to reset `cliConfigArray`. + * @property {ConfigArrayFactory} configArrayFactory The factory for config arrays. + * @property {Map} configCache The cache from directory paths to config arrays. + * @property {string} cwd The base directory to start lookup. + * @property {WeakMap} finalizeCache The cache from config arrays to finalized config arrays. + * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`. + * @property {string[]|null} rulePaths The value of `--rulesdir` option. This is used to reset `baseConfigArray`. + * @property {string|null} specificConfigPath The value of `--config` option. This is used to reset `cliConfigArray`. + * @property {boolean} useEslintrc if `false` then it doesn't load config files. + * @property {Function} loadRules The function to use to load rules. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** @type {WeakMap} */ +const internalSlotsMap = new WeakMap(); + +/** + * Create the config array from `baseConfig` and `rulePaths`. + * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots. + * @returns {ConfigArray} The config array of the base configs. + */ +function createBaseConfigArray({ + configArrayFactory, + baseConfigData, + rulePaths, + cwd, + loadRules +}) { + const baseConfigArray = configArrayFactory.create( + baseConfigData, + { name: "BaseConfig" } + ); + + /* + * Create the config array element for the default ignore patterns. + * This element has `ignorePattern` property that ignores the default + * patterns in the current working directory. + */ + baseConfigArray.unshift(configArrayFactory.create( + { ignorePatterns: IgnorePattern.DefaultPatterns }, + { name: "DefaultIgnorePattern" } + )[0]); + + /* + * Load rules `--rulesdir` option as a pseudo plugin. + * Use a pseudo plugin to define rules of `--rulesdir`, so we can validate + * the rule's options with only information in the config array. + */ + if (rulePaths && rulePaths.length > 0) { + baseConfigArray.push({ + type: "config", + name: "--rulesdir", + filePath: "", + plugins: { + "": new ConfigDependency({ + definition: { + rules: rulePaths.reduce( + (map, rulesPath) => Object.assign( + map, + loadRules(rulesPath, cwd) + ), + {} + ) + }, + filePath: "", + id: "", + importerName: "--rulesdir", + importerPath: "" + }) + } + }); + } + + return baseConfigArray; +} + +/** + * Create the config array from CLI options. + * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots. + * @returns {ConfigArray} The config array of the base configs. + */ +function createCLIConfigArray({ + cliConfigData, + configArrayFactory, + cwd, + ignorePath, + specificConfigPath +}) { + const cliConfigArray = configArrayFactory.create( + cliConfigData, + { name: "CLIOptions" } + ); + + cliConfigArray.unshift( + ...(ignorePath + ? configArrayFactory.loadESLintIgnore(ignorePath) + : configArrayFactory.loadDefaultESLintIgnore()) + ); + + if (specificConfigPath) { + cliConfigArray.unshift( + ...configArrayFactory.loadFile( + specificConfigPath, + { name: "--config", basePath: cwd } + ) + ); + } + + return cliConfigArray; +} + +/** + * The error type when there are files matched by a glob, but all of them have been ignored. + */ +class ConfigurationNotFoundError extends Error { + + // eslint-disable-next-line jsdoc/require-description + /** + * @param {string} directoryPath The directory path. + */ + constructor(directoryPath) { + super(`No ESLint configuration found in ${directoryPath}.`); + this.messageTemplate = "no-config-found"; + this.messageData = { directoryPath }; + } +} + +/** + * This class provides the functionality that enumerates every file which is + * matched by given glob patterns and that configuration. + */ +class CascadingConfigArrayFactory { + + /** + * Initialize this enumerator. + * @param {CascadingConfigArrayFactoryOptions} options The options. + */ + constructor({ + additionalPluginPool = new Map(), + baseConfig: baseConfigData = null, + cliConfig: cliConfigData = null, + cwd = process.cwd(), + ignorePath, + resolvePluginsRelativeTo, + rulePaths = [], + specificConfigPath = null, + useEslintrc = true, + builtInRules = new Map(), + loadRules, + resolver, + eslintRecommendedPath, + getEslintRecommendedConfig, + eslintAllPath, + getEslintAllConfig + } = {}) { + const configArrayFactory = new ConfigArrayFactory({ + additionalPluginPool, + cwd, + resolvePluginsRelativeTo, + builtInRules, + resolver, + eslintRecommendedPath, + getEslintRecommendedConfig, + eslintAllPath, + getEslintAllConfig + }); + + internalSlotsMap.set(this, { + baseConfigArray: createBaseConfigArray({ + baseConfigData, + configArrayFactory, + cwd, + rulePaths, + loadRules, + resolver + }), + baseConfigData, + cliConfigArray: createCLIConfigArray({ + cliConfigData, + configArrayFactory, + cwd, + ignorePath, + specificConfigPath + }), + cliConfigData, + configArrayFactory, + configCache: new Map(), + cwd, + finalizeCache: new WeakMap(), + ignorePath, + rulePaths, + specificConfigPath, + useEslintrc, + builtInRules, + loadRules + }); + } + + /** + * The path to the current working directory. + * This is used by tests. + * @type {string} + */ + get cwd() { + const { cwd } = internalSlotsMap.get(this); + + return cwd; + } + + /** + * Get the config array of a given file. + * If `filePath` was not given, it returns the config which contains only + * `baseConfigData` and `cliConfigData`. + * @param {string} [filePath] The file path to a file. + * @param {Object} [options] The options. + * @param {boolean} [options.ignoreNotFoundError] If `true` then it doesn't throw `ConfigurationNotFoundError`. + * @returns {ConfigArray} The config array of the file. + */ + getConfigArrayForFile(filePath, { ignoreNotFoundError = false } = {}) { + const { + baseConfigArray, + cliConfigArray, + cwd + } = internalSlotsMap.get(this); + + if (!filePath) { + return new ConfigArray(...baseConfigArray, ...cliConfigArray); + } + + const directoryPath = path.dirname(path.resolve(cwd, filePath)); + + debug(`Load config files for ${directoryPath}.`); + + return this._finalizeConfigArray( + this._loadConfigInAncestors(directoryPath), + directoryPath, + ignoreNotFoundError + ); + } + + /** + * Set the config data to override all configs. + * Require to call `clearCache()` method after this method is called. + * @param {ConfigData} configData The config data to override all configs. + * @returns {void} + */ + setOverrideConfig(configData) { + const slots = internalSlotsMap.get(this); + + slots.cliConfigData = configData; + } + + /** + * Clear config cache. + * @returns {void} + */ + clearCache() { + const slots = internalSlotsMap.get(this); + + slots.baseConfigArray = createBaseConfigArray(slots); + slots.cliConfigArray = createCLIConfigArray(slots); + slots.configCache.clear(); + } + + /** + * Load and normalize config files from the ancestor directories. + * @param {string} directoryPath The path to a leaf directory. + * @param {boolean} configsExistInSubdirs `true` if configurations exist in subdirectories. + * @returns {ConfigArray} The loaded config. + * @private + */ + _loadConfigInAncestors(directoryPath, configsExistInSubdirs = false) { + const { + baseConfigArray, + configArrayFactory, + configCache, + cwd, + useEslintrc + } = internalSlotsMap.get(this); + + if (!useEslintrc) { + return baseConfigArray; + } + + let configArray = configCache.get(directoryPath); + + // Hit cache. + if (configArray) { + debug(`Cache hit: ${directoryPath}.`); + return configArray; + } + debug(`No cache found: ${directoryPath}.`); + + const homePath = os.homedir(); + + // Consider this is root. + if (directoryPath === homePath && cwd !== homePath) { + debug("Stop traversing because of considered root."); + if (configsExistInSubdirs) { + const filePath = ConfigArrayFactory.getPathToConfigFileInDirectory(directoryPath); + + if (filePath) { + emitDeprecationWarning( + filePath, + "ESLINT_PERSONAL_CONFIG_SUPPRESS" + ); + } + } + return this._cacheConfig(directoryPath, baseConfigArray); + } + + // Load the config on this directory. + try { + configArray = configArrayFactory.loadInDirectory(directoryPath); + } catch (error) { + /* istanbul ignore next */ + if (error.code === "EACCES") { + debug("Stop traversing because of 'EACCES' error."); + return this._cacheConfig(directoryPath, baseConfigArray); + } + throw error; + } + + if (configArray.length > 0 && configArray.isRoot()) { + debug("Stop traversing because of 'root:true'."); + configArray.unshift(...baseConfigArray); + return this._cacheConfig(directoryPath, configArray); + } + + // Load from the ancestors and merge it. + const parentPath = path.dirname(directoryPath); + const parentConfigArray = parentPath && parentPath !== directoryPath + ? this._loadConfigInAncestors( + parentPath, + configsExistInSubdirs || configArray.length > 0 + ) + : baseConfigArray; + + if (configArray.length > 0) { + configArray.unshift(...parentConfigArray); + } else { + configArray = parentConfigArray; + } + + // Cache and return. + return this._cacheConfig(directoryPath, configArray); + } + + /** + * Freeze and cache a given config. + * @param {string} directoryPath The path to a directory as a cache key. + * @param {ConfigArray} configArray The config array as a cache value. + * @returns {ConfigArray} The `configArray` (frozen). + */ + _cacheConfig(directoryPath, configArray) { + const { configCache } = internalSlotsMap.get(this); + + Object.freeze(configArray); + configCache.set(directoryPath, configArray); + + return configArray; + } + + /** + * Finalize a given config array. + * Concatenate `--config` and other CLI options. + * @param {ConfigArray} configArray The parent config array. + * @param {string} directoryPath The path to the leaf directory to find config files. + * @param {boolean} ignoreNotFoundError If `true` then it doesn't throw `ConfigurationNotFoundError`. + * @returns {ConfigArray} The loaded config. + * @private + */ + _finalizeConfigArray(configArray, directoryPath, ignoreNotFoundError) { + const { + cliConfigArray, + configArrayFactory, + finalizeCache, + useEslintrc, + builtInRules + } = internalSlotsMap.get(this); + + let finalConfigArray = finalizeCache.get(configArray); + + if (!finalConfigArray) { + finalConfigArray = configArray; + + // Load the personal config if there are no regular config files. + if ( + useEslintrc && + configArray.every(c => !c.filePath) && + cliConfigArray.every(c => !c.filePath) // `--config` option can be a file. + ) { + const homePath = os.homedir(); + + debug("Loading the config file of the home directory:", homePath); + + const personalConfigArray = configArrayFactory.loadInDirectory( + homePath, + { name: "PersonalConfig" } + ); + + if ( + personalConfigArray.length > 0 && + !directoryPath.startsWith(homePath) + ) { + const lastElement = + personalConfigArray[personalConfigArray.length - 1]; + + emitDeprecationWarning( + lastElement.filePath, + "ESLINT_PERSONAL_CONFIG_LOAD" + ); + } + + finalConfigArray = finalConfigArray.concat(personalConfigArray); + } + + // Apply CLI options. + if (cliConfigArray.length > 0) { + finalConfigArray = finalConfigArray.concat(cliConfigArray); + } + + // Validate rule settings and environments. + const validator = new ConfigValidator({ + builtInRules + }); + + validator.validateConfigArray(finalConfigArray); + + // Cache it. + Object.freeze(finalConfigArray); + finalizeCache.set(configArray, finalConfigArray); + + debug( + "Configuration was determined: %o on %s", + finalConfigArray, + directoryPath + ); + } + + // At least one element (the default ignore patterns) exists. + if (!ignoreNotFoundError && useEslintrc && finalConfigArray.length <= 1) { + throw new ConfigurationNotFoundError(directoryPath); + } + + return finalConfigArray; + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +export { CascadingConfigArrayFactory }; diff --git a/node_modules/@eslint/eslintrc/lib/config-array-factory.js b/node_modules/@eslint/eslintrc/lib/config-array-factory.js new file mode 100644 index 0000000..99851e1 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/config-array-factory.js @@ -0,0 +1,1149 @@ +/** + * @fileoverview The factory of `ConfigArray` objects. + * + * This class provides methods to create `ConfigArray` instance. + * + * - `create(configData, options)` + * Create a `ConfigArray` instance from a config data. This is to handle CLI + * options except `--config`. + * - `loadFile(filePath, options)` + * Create a `ConfigArray` instance from a config file. This is to handle + * `--config` option. If the file was not found, throws the following error: + * - If the filename was `*.js`, a `MODULE_NOT_FOUND` error. + * - If the filename was `package.json`, an IO error or an + * `ESLINT_CONFIG_FIELD_NOT_FOUND` error. + * - Otherwise, an IO error such as `ENOENT`. + * - `loadInDirectory(directoryPath, options)` + * Create a `ConfigArray` instance from a config file which is on a given + * directory. This tries to load `.eslintrc.*` or `package.json`. If not + * found, returns an empty `ConfigArray`. + * - `loadESLintIgnore(filePath)` + * Create a `ConfigArray` instance from a config file that is `.eslintignore` + * format. This is to handle `--ignore-path` option. + * - `loadDefaultESLintIgnore()` + * Create a `ConfigArray` instance from `.eslintignore` or `package.json` in + * the current working directory. + * + * `ConfigArrayFactory` class has the responsibility that loads configuration + * files, including loading `extends`, `parser`, and `plugins`. The created + * `ConfigArray` instance has the loaded `extends`, `parser`, and `plugins`. + * + * But this class doesn't handle cascading. `CascadingConfigArrayFactory` class + * handles cascading and hierarchy. + * + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import debugOrig from "debug"; +import fs from "fs"; +import importFresh from "import-fresh"; +import { createRequire } from "module"; +import path from "path"; +import stripComments from "strip-json-comments"; + +import { + ConfigArray, + ConfigDependency, + IgnorePattern, + OverrideTester +} from "./config-array/index.js"; +import ConfigValidator from "./shared/config-validator.js"; +import * as naming from "./shared/naming.js"; +import * as ModuleResolver from "./shared/relative-module-resolver.js"; + +const require = createRequire(import.meta.url); + +const debug = debugOrig("eslintrc:config-array-factory"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const configFilenames = [ + ".eslintrc.js", + ".eslintrc.cjs", + ".eslintrc.yaml", + ".eslintrc.yml", + ".eslintrc.json", + ".eslintrc", + "package.json" +]; + +// Define types for VSCode IntelliSense. +/** @typedef {import("./shared/types").ConfigData} ConfigData */ +/** @typedef {import("./shared/types").OverrideConfigData} OverrideConfigData */ +/** @typedef {import("./shared/types").Parser} Parser */ +/** @typedef {import("./shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").Rule} Rule */ +/** @typedef {import("./config-array/config-dependency").DependentParser} DependentParser */ +/** @typedef {import("./config-array/config-dependency").DependentPlugin} DependentPlugin */ +/** @typedef {ConfigArray[0]} ConfigArrayElement */ + +/** + * @typedef {Object} ConfigArrayFactoryOptions + * @property {Map} [additionalPluginPool] The map for additional plugins. + * @property {string} [cwd] The path to the current working directory. + * @property {string} [resolvePluginsRelativeTo] A path to the directory that plugins should be resolved from. Defaults to `cwd`. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** + * @typedef {Object} ConfigArrayFactoryInternalSlots + * @property {Map} additionalPluginPool The map for additional plugins. + * @property {string} cwd The path to the current working directory. + * @property {string | undefined} resolvePluginsRelativeTo An absolute path the the directory that plugins should be resolved from. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {Function} getEslintAllConfig Returns the config data for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. + * @property {Function} getEslintRecommendedConfig Returns the config data for eslint:recommended. + */ + +/** + * @typedef {Object} ConfigArrayFactoryLoadingContext + * @property {string} filePath The path to the current configuration. + * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @property {string} name The name of the current configuration. + * @property {string} pluginBasePath The base path to resolve plugins. + * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors. + */ + +/** + * @typedef {Object} ConfigArrayFactoryLoadingContext + * @property {string} filePath The path to the current configuration. + * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @property {string} name The name of the current configuration. + * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors. + */ + +/** @type {WeakMap} */ +const internalSlotsMap = new WeakMap(); + +/** @type {WeakMap} */ +const normalizedPlugins = new WeakMap(); + +/** + * Check if a given string is a file path. + * @param {string} nameOrPath A module name or file path. + * @returns {boolean} `true` if the `nameOrPath` is a file path. + */ +function isFilePath(nameOrPath) { + return ( + /^\.{1,2}[/\\]/u.test(nameOrPath) || + path.isAbsolute(nameOrPath) + ); +} + +/** + * Convenience wrapper for synchronously reading file contents. + * @param {string} filePath The filename to read. + * @returns {string} The file contents, with the BOM removed. + * @private + */ +function readFile(filePath) { + return fs.readFileSync(filePath, "utf8").replace(/^\ufeff/u, ""); +} + +/** + * Loads a YAML configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadYAMLConfigFile(filePath) { + debug(`Loading YAML config file: ${filePath}`); + + // lazy load YAML to improve performance when not used + const yaml = require("js-yaml"); + + try { + + // empty YAML file can be null, so always use + return yaml.load(readFile(filePath)) || {}; + } catch (e) { + debug(`Error reading YAML file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a JSON configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadJSONConfigFile(filePath) { + debug(`Loading JSON config file: ${filePath}`); + + try { + return JSON.parse(stripComments(readFile(filePath))); + } catch (e) { + debug(`Error reading JSON file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + e.messageTemplate = "failed-to-read-json"; + e.messageData = { + path: filePath, + message: e.message + }; + throw e; + } +} + +/** + * Loads a legacy (.eslintrc) configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadLegacyConfigFile(filePath) { + debug(`Loading legacy config file: ${filePath}`); + + // lazy load YAML to improve performance when not used + const yaml = require("js-yaml"); + + try { + return yaml.load(stripComments(readFile(filePath))) || /* istanbul ignore next */ {}; + } catch (e) { + debug("Error reading YAML file: %s\n%o", filePath, e); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a JavaScript configuration from a file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadJSConfigFile(filePath) { + debug(`Loading JS config file: ${filePath}`); + try { + return importFresh(filePath); + } catch (e) { + debug(`Error reading JavaScript file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a configuration from a package.json file. + * @param {string} filePath The filename to load. + * @returns {ConfigData} The configuration object from the file. + * @throws {Error} If the file cannot be read. + * @private + */ +function loadPackageJSONConfigFile(filePath) { + debug(`Loading package.json config file: ${filePath}`); + try { + const packageData = loadJSONConfigFile(filePath); + + if (!Object.hasOwnProperty.call(packageData, "eslintConfig")) { + throw Object.assign( + new Error("package.json file doesn't have 'eslintConfig' field."), + { code: "ESLINT_CONFIG_FIELD_NOT_FOUND" } + ); + } + + return packageData.eslintConfig; + } catch (e) { + debug(`Error reading package.json file: ${filePath}`); + e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Loads a `.eslintignore` from a file. + * @param {string} filePath The filename to load. + * @returns {string[]} The ignore patterns from the file. + * @private + */ +function loadESLintIgnoreFile(filePath) { + debug(`Loading .eslintignore file: ${filePath}`); + + try { + return readFile(filePath) + .split(/\r?\n/gu) + .filter(line => line.trim() !== "" && !line.startsWith("#")); + } catch (e) { + debug(`Error reading .eslintignore file: ${filePath}`); + e.message = `Cannot read .eslintignore file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Creates an error to notify about a missing config to extend from. + * @param {string} configName The name of the missing config. + * @param {string} importerName The name of the config that imported the missing config + * @param {string} messageTemplate The text template to source error strings from. + * @returns {Error} The error object to throw + * @private + */ +function configInvalidError(configName, importerName, messageTemplate) { + return Object.assign( + new Error(`Failed to load config "${configName}" to extend from.`), + { + messageTemplate, + messageData: { configName, importerName } + } + ); +} + +/** + * Loads a configuration file regardless of the source. Inspects the file path + * to determine the correctly way to load the config file. + * @param {string} filePath The path to the configuration. + * @returns {ConfigData|null} The configuration information. + * @private + */ +function loadConfigFile(filePath) { + switch (path.extname(filePath)) { + case ".js": + case ".cjs": + return loadJSConfigFile(filePath); + + case ".json": + if (path.basename(filePath) === "package.json") { + return loadPackageJSONConfigFile(filePath); + } + return loadJSONConfigFile(filePath); + + case ".yaml": + case ".yml": + return loadYAMLConfigFile(filePath); + + default: + return loadLegacyConfigFile(filePath); + } +} + +/** + * Write debug log. + * @param {string} request The requested module name. + * @param {string} relativeTo The file path to resolve the request relative to. + * @param {string} filePath The resolved file path. + * @returns {void} + */ +function writeDebugLogForLoading(request, relativeTo, filePath) { + /* istanbul ignore next */ + if (debug.enabled) { + let nameAndVersion = null; + + try { + const packageJsonPath = ModuleResolver.resolve( + `${request}/package.json`, + relativeTo + ); + const { version = "unknown" } = require(packageJsonPath); + + nameAndVersion = `${request}@${version}`; + } catch (error) { + debug("package.json was not found:", error.message); + nameAndVersion = request; + } + + debug("Loaded: %s (%s)", nameAndVersion, filePath); + } +} + +/** + * Create a new context with default values. + * @param {ConfigArrayFactoryInternalSlots} slots The internal slots. + * @param {"config" | "ignore" | "implicit-processor" | undefined} providedType The type of the current configuration. Default is `"config"`. + * @param {string | undefined} providedName The name of the current configuration. Default is the relative path from `cwd` to `filePath`. + * @param {string | undefined} providedFilePath The path to the current configuration. Default is empty string. + * @param {string | undefined} providedMatchBasePath The type of the current configuration. Default is the directory of `filePath` or `cwd`. + * @returns {ConfigArrayFactoryLoadingContext} The created context. + */ +function createContext( + { cwd, resolvePluginsRelativeTo }, + providedType, + providedName, + providedFilePath, + providedMatchBasePath +) { + const filePath = providedFilePath + ? path.resolve(cwd, providedFilePath) + : ""; + const matchBasePath = + (providedMatchBasePath && path.resolve(cwd, providedMatchBasePath)) || + (filePath && path.dirname(filePath)) || + cwd; + const name = + providedName || + (filePath && path.relative(cwd, filePath)) || + ""; + const pluginBasePath = + resolvePluginsRelativeTo || + (filePath && path.dirname(filePath)) || + cwd; + const type = providedType || "config"; + + return { filePath, matchBasePath, name, pluginBasePath, type }; +} + +/** + * Normalize a given plugin. + * - Ensure the object to have four properties: configs, environments, processors, and rules. + * - Ensure the object to not have other properties. + * @param {Plugin} plugin The plugin to normalize. + * @returns {Plugin} The normalized plugin. + */ +function normalizePlugin(plugin) { + + // first check the cache + let normalizedPlugin = normalizedPlugins.get(plugin); + + if (normalizedPlugin) { + return normalizedPlugin; + } + + normalizedPlugin = { + configs: plugin.configs || {}, + environments: plugin.environments || {}, + processors: plugin.processors || {}, + rules: plugin.rules || {} + }; + + // save the reference for later + normalizedPlugins.set(plugin, normalizedPlugin); + + return normalizedPlugin; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * The factory of `ConfigArray` objects. + */ +class ConfigArrayFactory { + + /** + * Initialize this instance. + * @param {ConfigArrayFactoryOptions} [options] The map for additional plugins. + */ + constructor({ + additionalPluginPool = new Map(), + cwd = process.cwd(), + resolvePluginsRelativeTo, + builtInRules, + resolver = ModuleResolver, + eslintAllPath, + getEslintAllConfig, + eslintRecommendedPath, + getEslintRecommendedConfig + } = {}) { + internalSlotsMap.set(this, { + additionalPluginPool, + cwd, + resolvePluginsRelativeTo: + resolvePluginsRelativeTo && + path.resolve(cwd, resolvePluginsRelativeTo), + builtInRules, + resolver, + eslintAllPath, + getEslintAllConfig, + eslintRecommendedPath, + getEslintRecommendedConfig + }); + } + + /** + * Create `ConfigArray` instance from a config data. + * @param {ConfigData|null} configData The config data to create. + * @param {Object} [options] The options. + * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @param {string} [options.filePath] The path to this config data. + * @param {string} [options.name] The config name. + * @returns {ConfigArray} Loaded config. + */ + create(configData, { basePath, filePath, name } = {}) { + if (!configData) { + return new ConfigArray(); + } + + const slots = internalSlotsMap.get(this); + const ctx = createContext(slots, "config", name, filePath, basePath); + const elements = this._normalizeConfigData(configData, ctx); + + return new ConfigArray(...elements); + } + + /** + * Load a config file. + * @param {string} filePath The path to a config file. + * @param {Object} [options] The options. + * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @param {string} [options.name] The config name. + * @returns {ConfigArray} Loaded config. + */ + loadFile(filePath, { basePath, name } = {}) { + const slots = internalSlotsMap.get(this); + const ctx = createContext(slots, "config", name, filePath, basePath); + + return new ConfigArray(...this._loadConfigData(ctx)); + } + + /** + * Load the config file on a given directory if exists. + * @param {string} directoryPath The path to a directory. + * @param {Object} [options] The options. + * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. + * @param {string} [options.name] The config name. + * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. + */ + loadInDirectory(directoryPath, { basePath, name } = {}) { + const slots = internalSlotsMap.get(this); + + for (const filename of configFilenames) { + const ctx = createContext( + slots, + "config", + name, + path.join(directoryPath, filename), + basePath + ); + + if (fs.existsSync(ctx.filePath) && fs.statSync(ctx.filePath).isFile()) { + let configData; + + try { + configData = loadConfigFile(ctx.filePath); + } catch (error) { + if (!error || error.code !== "ESLINT_CONFIG_FIELD_NOT_FOUND") { + throw error; + } + } + + if (configData) { + debug(`Config file found: ${ctx.filePath}`); + return new ConfigArray( + ...this._normalizeConfigData(configData, ctx) + ); + } + } + } + + debug(`Config file not found on ${directoryPath}`); + return new ConfigArray(); + } + + /** + * Check if a config file on a given directory exists or not. + * @param {string} directoryPath The path to a directory. + * @returns {string | null} The path to the found config file. If not found then null. + */ + static getPathToConfigFileInDirectory(directoryPath) { + for (const filename of configFilenames) { + const filePath = path.join(directoryPath, filename); + + if (fs.existsSync(filePath)) { + if (filename === "package.json") { + try { + loadPackageJSONConfigFile(filePath); + return filePath; + } catch { /* ignore */ } + } else { + return filePath; + } + } + } + return null; + } + + /** + * Load `.eslintignore` file. + * @param {string} filePath The path to a `.eslintignore` file to load. + * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. + */ + loadESLintIgnore(filePath) { + const slots = internalSlotsMap.get(this); + const ctx = createContext( + slots, + "ignore", + void 0, + filePath, + slots.cwd + ); + const ignorePatterns = loadESLintIgnoreFile(ctx.filePath); + + return new ConfigArray( + ...this._normalizeESLintIgnoreData(ignorePatterns, ctx) + ); + } + + /** + * Load `.eslintignore` file in the current working directory. + * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. + */ + loadDefaultESLintIgnore() { + const slots = internalSlotsMap.get(this); + const eslintIgnorePath = path.resolve(slots.cwd, ".eslintignore"); + const packageJsonPath = path.resolve(slots.cwd, "package.json"); + + if (fs.existsSync(eslintIgnorePath)) { + return this.loadESLintIgnore(eslintIgnorePath); + } + if (fs.existsSync(packageJsonPath)) { + const data = loadJSONConfigFile(packageJsonPath); + + if (Object.hasOwnProperty.call(data, "eslintIgnore")) { + if (!Array.isArray(data.eslintIgnore)) { + throw new Error("Package.json eslintIgnore property requires an array of paths"); + } + const ctx = createContext( + slots, + "ignore", + "eslintIgnore in package.json", + packageJsonPath, + slots.cwd + ); + + return new ConfigArray( + ...this._normalizeESLintIgnoreData(data.eslintIgnore, ctx) + ); + } + } + + return new ConfigArray(); + } + + /** + * Load a given config file. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} Loaded config. + * @private + */ + _loadConfigData(ctx) { + return this._normalizeConfigData(loadConfigFile(ctx.filePath), ctx); + } + + /** + * Normalize a given `.eslintignore` data to config array elements. + * @param {string[]} ignorePatterns The patterns to ignore files. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + *_normalizeESLintIgnoreData(ignorePatterns, ctx) { + const elements = this._normalizeObjectConfigData( + { ignorePatterns }, + ctx + ); + + // Set `ignorePattern.loose` flag for backward compatibility. + for (const element of elements) { + if (element.ignorePattern) { + element.ignorePattern.loose = true; + } + yield element; + } + } + + /** + * Normalize a given config to an array. + * @param {ConfigData} configData The config data to normalize. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _normalizeConfigData(configData, ctx) { + const validator = new ConfigValidator(); + + validator.validateConfigSchema(configData, ctx.name || ctx.filePath); + return this._normalizeObjectConfigData(configData, ctx); + } + + /** + * Normalize a given config to an array. + * @param {ConfigData|OverrideConfigData} configData The config data to normalize. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + *_normalizeObjectConfigData(configData, ctx) { + const { files, excludedFiles, ...configBody } = configData; + const criteria = OverrideTester.create( + files, + excludedFiles, + ctx.matchBasePath + ); + const elements = this._normalizeObjectConfigDataBody(configBody, ctx); + + // Apply the criteria to every element. + for (const element of elements) { + + /* + * Merge the criteria. + * This is for the `overrides` entries that came from the + * configurations of `overrides[].extends`. + */ + element.criteria = OverrideTester.and(criteria, element.criteria); + + /* + * Remove `root` property to ignore `root` settings which came from + * `extends` in `overrides`. + */ + if (element.criteria) { + element.root = void 0; + } + + yield element; + } + } + + /** + * Normalize a given config to an array. + * @param {ConfigData} configData The config data to normalize. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + *_normalizeObjectConfigDataBody( + { + env, + extends: extend, + globals, + ignorePatterns, + noInlineConfig, + parser: parserName, + parserOptions, + plugins: pluginList, + processor, + reportUnusedDisableDirectives, + root, + rules, + settings, + overrides: overrideList = [] + }, + ctx + ) { + const extendList = Array.isArray(extend) ? extend : [extend]; + const ignorePattern = ignorePatterns && new IgnorePattern( + Array.isArray(ignorePatterns) ? ignorePatterns : [ignorePatterns], + ctx.matchBasePath + ); + + // Flatten `extends`. + for (const extendName of extendList.filter(Boolean)) { + yield* this._loadExtends(extendName, ctx); + } + + // Load parser & plugins. + const parser = parserName && this._loadParser(parserName, ctx); + const plugins = pluginList && this._loadPlugins(pluginList, ctx); + + // Yield pseudo config data for file extension processors. + if (plugins) { + yield* this._takeFileExtensionProcessors(plugins, ctx); + } + + // Yield the config data except `extends` and `overrides`. + yield { + + // Debug information. + type: ctx.type, + name: ctx.name, + filePath: ctx.filePath, + + // Config data. + criteria: null, + env, + globals, + ignorePattern, + noInlineConfig, + parser, + parserOptions, + plugins, + processor, + reportUnusedDisableDirectives, + root, + rules, + settings + }; + + // Flatten `overries`. + for (let i = 0; i < overrideList.length; ++i) { + yield* this._normalizeObjectConfigData( + overrideList[i], + { ...ctx, name: `${ctx.name}#overrides[${i}]` } + ); + } + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtends(extendName, ctx) { + debug("Loading {extends:%j} relative to %s", extendName, ctx.filePath); + try { + if (extendName.startsWith("eslint:")) { + return this._loadExtendedBuiltInConfig(extendName, ctx); + } + if (extendName.startsWith("plugin:")) { + return this._loadExtendedPluginConfig(extendName, ctx); + } + return this._loadExtendedShareableConfig(extendName, ctx); + } catch (error) { + error.message += `\nReferenced from: ${ctx.filePath || ctx.name}`; + throw error; + } + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtendedBuiltInConfig(extendName, ctx) { + const { + eslintAllPath, + getEslintAllConfig, + eslintRecommendedPath, + getEslintRecommendedConfig + } = internalSlotsMap.get(this); + + if (extendName === "eslint:recommended") { + const name = `${ctx.name} » ${extendName}`; + + if (getEslintRecommendedConfig) { + if (typeof getEslintRecommendedConfig !== "function") { + throw new Error(`getEslintRecommendedConfig must be a function instead of '${getEslintRecommendedConfig}'`); + } + return this._normalizeConfigData(getEslintRecommendedConfig(), { ...ctx, name, filePath: "" }); + } + return this._loadConfigData({ + ...ctx, + name, + filePath: eslintRecommendedPath + }); + } + if (extendName === "eslint:all") { + const name = `${ctx.name} » ${extendName}`; + + if (getEslintAllConfig) { + if (typeof getEslintAllConfig !== "function") { + throw new Error(`getEslintAllConfig must be a function instead of '${getEslintAllConfig}'`); + } + return this._normalizeConfigData(getEslintAllConfig(), { ...ctx, name, filePath: "" }); + } + return this._loadConfigData({ + ...ctx, + name, + filePath: eslintAllPath + }); + } + + throw configInvalidError(extendName, ctx.name, "extend-config-missing"); + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtendedPluginConfig(extendName, ctx) { + const slashIndex = extendName.lastIndexOf("/"); + + if (slashIndex === -1) { + throw configInvalidError(extendName, ctx.filePath, "plugin-invalid"); + } + + const pluginName = extendName.slice("plugin:".length, slashIndex); + const configName = extendName.slice(slashIndex + 1); + + if (isFilePath(pluginName)) { + throw new Error("'extends' cannot use a file path for plugins."); + } + + const plugin = this._loadPlugin(pluginName, ctx); + const configData = + plugin.definition && + plugin.definition.configs[configName]; + + if (configData) { + return this._normalizeConfigData(configData, { + ...ctx, + filePath: plugin.filePath || ctx.filePath, + name: `${ctx.name} » plugin:${plugin.id}/${configName}` + }); + } + + throw plugin.error || configInvalidError(extendName, ctx.filePath, "extend-config-missing"); + } + + /** + * Load configs of an element in `extends`. + * @param {string} extendName The name of a base config. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The normalized config. + * @private + */ + _loadExtendedShareableConfig(extendName, ctx) { + const { cwd, resolver } = internalSlotsMap.get(this); + const relativeTo = ctx.filePath || path.join(cwd, "__placeholder__.js"); + let request; + + if (isFilePath(extendName)) { + request = extendName; + } else if (extendName.startsWith(".")) { + request = `./${extendName}`; // For backward compatibility. A ton of tests depended on this behavior. + } else { + request = naming.normalizePackageName( + extendName, + "eslint-config" + ); + } + + let filePath; + + try { + filePath = resolver.resolve(request, relativeTo); + } catch (error) { + /* istanbul ignore else */ + if (error && error.code === "MODULE_NOT_FOUND") { + throw configInvalidError(extendName, ctx.filePath, "extend-config-missing"); + } + throw error; + } + + writeDebugLogForLoading(request, relativeTo, filePath); + return this._loadConfigData({ + ...ctx, + filePath, + name: `${ctx.name} » ${request}` + }); + } + + /** + * Load given plugins. + * @param {string[]} names The plugin names to load. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {Record} The loaded parser. + * @private + */ + _loadPlugins(names, ctx) { + return names.reduce((map, name) => { + if (isFilePath(name)) { + throw new Error("Plugins array cannot includes file paths."); + } + const plugin = this._loadPlugin(name, ctx); + + map[plugin.id] = plugin; + + return map; + }, {}); + } + + /** + * Load a given parser. + * @param {string} nameOrPath The package name or the path to a parser file. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {DependentParser} The loaded parser. + */ + _loadParser(nameOrPath, ctx) { + debug("Loading parser %j from %s", nameOrPath, ctx.filePath); + + const { cwd, resolver } = internalSlotsMap.get(this); + const relativeTo = ctx.filePath || path.join(cwd, "__placeholder__.js"); + + try { + const filePath = resolver.resolve(nameOrPath, relativeTo); + + writeDebugLogForLoading(nameOrPath, relativeTo, filePath); + + return new ConfigDependency({ + definition: require(filePath), + filePath, + id: nameOrPath, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } catch (error) { + + // If the parser name is "espree", load the espree of ESLint. + if (nameOrPath === "espree") { + debug("Fallback espree."); + return new ConfigDependency({ + definition: require("espree"), + filePath: require.resolve("espree"), + id: nameOrPath, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + debug("Failed to load parser '%s' declared in '%s'.", nameOrPath, ctx.name); + error.message = `Failed to load parser '${nameOrPath}' declared in '${ctx.name}': ${error.message}`; + + return new ConfigDependency({ + error, + id: nameOrPath, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + } + + /** + * Load a given plugin. + * @param {string} name The plugin name to load. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {DependentPlugin} The loaded plugin. + * @private + */ + _loadPlugin(name, ctx) { + debug("Loading plugin %j from %s", name, ctx.filePath); + + const { additionalPluginPool, resolver } = internalSlotsMap.get(this); + const request = naming.normalizePackageName(name, "eslint-plugin"); + const id = naming.getShorthandName(request, "eslint-plugin"); + const relativeTo = path.join(ctx.pluginBasePath, "__placeholder__.js"); + + if (name.match(/\s+/u)) { + const error = Object.assign( + new Error(`Whitespace found in plugin name '${name}'`), + { + messageTemplate: "whitespace-found", + messageData: { pluginName: request } + } + ); + + return new ConfigDependency({ + error, + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + // Check for additional pool. + const plugin = + additionalPluginPool.get(request) || + additionalPluginPool.get(id); + + if (plugin) { + return new ConfigDependency({ + definition: normalizePlugin(plugin), + filePath: "", // It's unknown where the plugin came from. + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + let filePath; + let error; + + try { + filePath = resolver.resolve(request, relativeTo); + } catch (resolveError) { + error = resolveError; + /* istanbul ignore else */ + if (error && error.code === "MODULE_NOT_FOUND") { + error.messageTemplate = "plugin-missing"; + error.messageData = { + pluginName: request, + resolvePluginsRelativeTo: ctx.pluginBasePath, + importerName: ctx.name + }; + } + } + + if (filePath) { + try { + writeDebugLogForLoading(request, relativeTo, filePath); + + const startTime = Date.now(); + const pluginDefinition = require(filePath); + + debug(`Plugin ${filePath} loaded in: ${Date.now() - startTime}ms`); + + return new ConfigDependency({ + definition: normalizePlugin(pluginDefinition), + filePath, + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } catch (loadError) { + error = loadError; + } + } + + debug("Failed to load plugin '%s' declared in '%s'.", name, ctx.name); + error.message = `Failed to load plugin '${name}' declared in '${ctx.name}': ${error.message}`; + return new ConfigDependency({ + error, + id, + importerName: ctx.name, + importerPath: ctx.filePath + }); + } + + /** + * Take file expression processors as config array elements. + * @param {Record} plugins The plugin definitions. + * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. + * @returns {IterableIterator} The config array elements of file expression processors. + * @private + */ + *_takeFileExtensionProcessors(plugins, ctx) { + for (const pluginId of Object.keys(plugins)) { + const processors = + plugins[pluginId] && + plugins[pluginId].definition && + plugins[pluginId].definition.processors; + + if (!processors) { + continue; + } + + for (const processorId of Object.keys(processors)) { + if (processorId.startsWith(".")) { + yield* this._normalizeObjectConfigData( + { + files: [`*${processorId}`], + processor: `${pluginId}/${processorId}` + }, + { + ...ctx, + type: "implicit-processor", + name: `${ctx.name}#processors["${pluginId}/${processorId}"]` + } + ); + } + } + } + } +} + +export { ConfigArrayFactory, createContext }; diff --git a/node_modules/@eslint/eslintrc/lib/config-array/config-array.js b/node_modules/@eslint/eslintrc/lib/config-array/config-array.js new file mode 100644 index 0000000..133f5a2 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/config-array/config-array.js @@ -0,0 +1,523 @@ +/** + * @fileoverview `ConfigArray` class. + * + * `ConfigArray` class expresses the full of a configuration. It has the entry + * config file, base config files that were extended, loaded parsers, and loaded + * plugins. + * + * `ConfigArray` class provides three properties and two methods. + * + * - `pluginEnvironments` + * - `pluginProcessors` + * - `pluginRules` + * The `Map` objects that contain the members of all plugins that this + * config array contains. Those map objects don't have mutation methods. + * Those keys are the member ID such as `pluginId/memberName`. + * - `isRoot()` + * If `true` then this configuration has `root:true` property. + * - `extractConfig(filePath)` + * Extract the final configuration for a given file. This means merging + * every config array element which that `criteria` property matched. The + * `filePath` argument must be an absolute path. + * + * `ConfigArrayFactory` provides the loading logic of config files. + * + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import { ExtractedConfig } from "./extracted-config.js"; +import { IgnorePattern } from "./ignore-pattern.js"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +// Define types for VSCode IntelliSense. +/** @typedef {import("../../shared/types").Environment} Environment */ +/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */ +/** @typedef {import("../../shared/types").RuleConf} RuleConf */ +/** @typedef {import("../../shared/types").Rule} Rule */ +/** @typedef {import("../../shared/types").Plugin} Plugin */ +/** @typedef {import("../../shared/types").Processor} Processor */ +/** @typedef {import("./config-dependency").DependentParser} DependentParser */ +/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */ +/** @typedef {import("./override-tester")["OverrideTester"]} OverrideTester */ + +/** + * @typedef {Object} ConfigArrayElement + * @property {string} name The name of this config element. + * @property {string} filePath The path to the source file of this config element. + * @property {InstanceType|null} criteria The tester for the `files` and `excludedFiles` of this config element. + * @property {Record|undefined} env The environment settings. + * @property {Record|undefined} globals The global variable settings. + * @property {IgnorePattern|undefined} ignorePattern The ignore patterns. + * @property {boolean|undefined} noInlineConfig The flag that disables directive comments. + * @property {DependentParser|undefined} parser The parser loader. + * @property {Object|undefined} parserOptions The parser options. + * @property {Record|undefined} plugins The plugin loaders. + * @property {string|undefined} processor The processor name to refer plugin's processor. + * @property {boolean|undefined} reportUnusedDisableDirectives The flag to report unused `eslint-disable` comments. + * @property {boolean|undefined} root The flag to express root. + * @property {Record|undefined} rules The rule settings + * @property {Object|undefined} settings The shared settings. + * @property {"config" | "ignore" | "implicit-processor"} type The element type. + */ + +/** + * @typedef {Object} ConfigArrayInternalSlots + * @property {Map} cache The cache to extract configs. + * @property {ReadonlyMap|null} envMap The map from environment ID to environment definition. + * @property {ReadonlyMap|null} processorMap The map from processor ID to environment definition. + * @property {ReadonlyMap|null} ruleMap The map from rule ID to rule definition. + */ + +/** @type {WeakMap} */ +const internalSlotsMap = new class extends WeakMap { + get(key) { + let value = super.get(key); + + if (!value) { + value = { + cache: new Map(), + envMap: null, + processorMap: null, + ruleMap: null + }; + super.set(key, value); + } + + return value; + } +}(); + +/** + * Get the indices which are matched to a given file. + * @param {ConfigArrayElement[]} elements The elements. + * @param {string} filePath The path to a target file. + * @returns {number[]} The indices. + */ +function getMatchedIndices(elements, filePath) { + const indices = []; + + for (let i = elements.length - 1; i >= 0; --i) { + const element = elements[i]; + + if (!element.criteria || (filePath && element.criteria.test(filePath))) { + indices.push(i); + } + } + + return indices; +} + +/** + * Check if a value is a non-null object. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is a non-null object. + */ +function isNonNullObject(x) { + return typeof x === "object" && x !== null; +} + +/** + * Merge two objects. + * + * Assign every property values of `y` to `x` if `x` doesn't have the property. + * If `x`'s property value is an object, it does recursive. + * @param {Object} target The destination to merge + * @param {Object|undefined} source The source to merge. + * @returns {void} + */ +function mergeWithoutOverwrite(target, source) { + if (!isNonNullObject(source)) { + return; + } + + for (const key of Object.keys(source)) { + if (key === "__proto__") { + continue; + } + + if (isNonNullObject(target[key])) { + mergeWithoutOverwrite(target[key], source[key]); + } else if (target[key] === void 0) { + if (isNonNullObject(source[key])) { + target[key] = Array.isArray(source[key]) ? [] : {}; + mergeWithoutOverwrite(target[key], source[key]); + } else if (source[key] !== void 0) { + target[key] = source[key]; + } + } + } +} + +/** + * The error for plugin conflicts. + */ +class PluginConflictError extends Error { + + /** + * Initialize this error object. + * @param {string} pluginId The plugin ID. + * @param {{filePath:string, importerName:string}[]} plugins The resolved plugins. + */ + constructor(pluginId, plugins) { + super(`Plugin "${pluginId}" was conflicted between ${plugins.map(p => `"${p.importerName}"`).join(" and ")}.`); + this.messageTemplate = "plugin-conflict"; + this.messageData = { pluginId, plugins }; + } +} + +/** + * Merge plugins. + * `target`'s definition is prior to `source`'s. + * @param {Record} target The destination to merge + * @param {Record|undefined} source The source to merge. + * @returns {void} + */ +function mergePlugins(target, source) { + if (!isNonNullObject(source)) { + return; + } + + for (const key of Object.keys(source)) { + if (key === "__proto__") { + continue; + } + const targetValue = target[key]; + const sourceValue = source[key]; + + // Adopt the plugin which was found at first. + if (targetValue === void 0) { + if (sourceValue.error) { + throw sourceValue.error; + } + target[key] = sourceValue; + } else if (sourceValue.filePath !== targetValue.filePath) { + throw new PluginConflictError(key, [ + { + filePath: targetValue.filePath, + importerName: targetValue.importerName + }, + { + filePath: sourceValue.filePath, + importerName: sourceValue.importerName + } + ]); + } + } +} + +/** + * Merge rule configs. + * `target`'s definition is prior to `source`'s. + * @param {Record} target The destination to merge + * @param {Record|undefined} source The source to merge. + * @returns {void} + */ +function mergeRuleConfigs(target, source) { + if (!isNonNullObject(source)) { + return; + } + + for (const key of Object.keys(source)) { + if (key === "__proto__") { + continue; + } + const targetDef = target[key]; + const sourceDef = source[key]; + + // Adopt the rule config which was found at first. + if (targetDef === void 0) { + if (Array.isArray(sourceDef)) { + target[key] = [...sourceDef]; + } else { + target[key] = [sourceDef]; + } + + /* + * If the first found rule config is severity only and the current rule + * config has options, merge the severity and the options. + */ + } else if ( + targetDef.length === 1 && + Array.isArray(sourceDef) && + sourceDef.length >= 2 + ) { + targetDef.push(...sourceDef.slice(1)); + } + } +} + +/** + * Create the extracted config. + * @param {ConfigArray} instance The config elements. + * @param {number[]} indices The indices to use. + * @returns {ExtractedConfig} The extracted config. + */ +function createConfig(instance, indices) { + const config = new ExtractedConfig(); + const ignorePatterns = []; + + // Merge elements. + for (const index of indices) { + const element = instance[index]; + + // Adopt the parser which was found at first. + if (!config.parser && element.parser) { + if (element.parser.error) { + throw element.parser.error; + } + config.parser = element.parser; + } + + // Adopt the processor which was found at first. + if (!config.processor && element.processor) { + config.processor = element.processor; + } + + // Adopt the noInlineConfig which was found at first. + if (config.noInlineConfig === void 0 && element.noInlineConfig !== void 0) { + config.noInlineConfig = element.noInlineConfig; + config.configNameOfNoInlineConfig = element.name; + } + + // Adopt the reportUnusedDisableDirectives which was found at first. + if (config.reportUnusedDisableDirectives === void 0 && element.reportUnusedDisableDirectives !== void 0) { + config.reportUnusedDisableDirectives = element.reportUnusedDisableDirectives; + } + + // Collect ignorePatterns + if (element.ignorePattern) { + ignorePatterns.push(element.ignorePattern); + } + + // Merge others. + mergeWithoutOverwrite(config.env, element.env); + mergeWithoutOverwrite(config.globals, element.globals); + mergeWithoutOverwrite(config.parserOptions, element.parserOptions); + mergeWithoutOverwrite(config.settings, element.settings); + mergePlugins(config.plugins, element.plugins); + mergeRuleConfigs(config.rules, element.rules); + } + + // Create the predicate function for ignore patterns. + if (ignorePatterns.length > 0) { + config.ignores = IgnorePattern.createIgnore(ignorePatterns.reverse()); + } + + return config; +} + +/** + * Collect definitions. + * @template T, U + * @param {string} pluginId The plugin ID for prefix. + * @param {Record} defs The definitions to collect. + * @param {Map} map The map to output. + * @param {function(T): U} [normalize] The normalize function for each value. + * @returns {void} + */ +function collect(pluginId, defs, map, normalize) { + if (defs) { + const prefix = pluginId && `${pluginId}/`; + + for (const [key, value] of Object.entries(defs)) { + map.set( + `${prefix}${key}`, + normalize ? normalize(value) : value + ); + } + } +} + +/** + * Normalize a rule definition. + * @param {Function|Rule} rule The rule definition to normalize. + * @returns {Rule} The normalized rule definition. + */ +function normalizePluginRule(rule) { + return typeof rule === "function" ? { create: rule } : rule; +} + +/** + * Delete the mutation methods from a given map. + * @param {Map} map The map object to delete. + * @returns {void} + */ +function deleteMutationMethods(map) { + Object.defineProperties(map, { + clear: { configurable: true, value: void 0 }, + delete: { configurable: true, value: void 0 }, + set: { configurable: true, value: void 0 } + }); +} + +/** + * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array. + * @param {ConfigArrayElement[]} elements The config elements. + * @param {ConfigArrayInternalSlots} slots The internal slots. + * @returns {void} + */ +function initPluginMemberMaps(elements, slots) { + const processed = new Set(); + + slots.envMap = new Map(); + slots.processorMap = new Map(); + slots.ruleMap = new Map(); + + for (const element of elements) { + if (!element.plugins) { + continue; + } + + for (const [pluginId, value] of Object.entries(element.plugins)) { + const plugin = value.definition; + + if (!plugin || processed.has(pluginId)) { + continue; + } + processed.add(pluginId); + + collect(pluginId, plugin.environments, slots.envMap); + collect(pluginId, plugin.processors, slots.processorMap); + collect(pluginId, plugin.rules, slots.ruleMap, normalizePluginRule); + } + } + + deleteMutationMethods(slots.envMap); + deleteMutationMethods(slots.processorMap); + deleteMutationMethods(slots.ruleMap); +} + +/** + * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array. + * @param {ConfigArray} instance The config elements. + * @returns {ConfigArrayInternalSlots} The extracted config. + */ +function ensurePluginMemberMaps(instance) { + const slots = internalSlotsMap.get(instance); + + if (!slots.ruleMap) { + initPluginMemberMaps(instance, slots); + } + + return slots; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * The Config Array. + * + * `ConfigArray` instance contains all settings, parsers, and plugins. + * You need to call `ConfigArray#extractConfig(filePath)` method in order to + * extract, merge and get only the config data which is related to an arbitrary + * file. + * @extends {Array} + */ +class ConfigArray extends Array { + + /** + * Get the plugin environments. + * The returned map cannot be mutated. + * @type {ReadonlyMap} The plugin environments. + */ + get pluginEnvironments() { + return ensurePluginMemberMaps(this).envMap; + } + + /** + * Get the plugin processors. + * The returned map cannot be mutated. + * @type {ReadonlyMap} The plugin processors. + */ + get pluginProcessors() { + return ensurePluginMemberMaps(this).processorMap; + } + + /** + * Get the plugin rules. + * The returned map cannot be mutated. + * @returns {ReadonlyMap} The plugin rules. + */ + get pluginRules() { + return ensurePluginMemberMaps(this).ruleMap; + } + + /** + * Check if this config has `root` flag. + * @returns {boolean} `true` if this config array is root. + */ + isRoot() { + for (let i = this.length - 1; i >= 0; --i) { + const root = this[i].root; + + if (typeof root === "boolean") { + return root; + } + } + return false; + } + + /** + * Extract the config data which is related to a given file. + * @param {string} filePath The absolute path to the target file. + * @returns {ExtractedConfig} The extracted config data. + */ + extractConfig(filePath) { + const { cache } = internalSlotsMap.get(this); + const indices = getMatchedIndices(this, filePath); + const cacheKey = indices.join(","); + + if (!cache.has(cacheKey)) { + cache.set(cacheKey, createConfig(this, indices)); + } + + return cache.get(cacheKey); + } + + /** + * Check if a given path is an additional lint target. + * @param {string} filePath The absolute path to the target file. + * @returns {boolean} `true` if the file is an additional lint target. + */ + isAdditionalTargetPath(filePath) { + for (const { criteria, type } of this) { + if ( + type === "config" && + criteria && + !criteria.endsWithWildcard && + criteria.test(filePath) + ) { + return true; + } + } + return false; + } +} + +/** + * Get the used extracted configs. + * CLIEngine will use this method to collect used deprecated rules. + * @param {ConfigArray} instance The config array object to get. + * @returns {ExtractedConfig[]} The used extracted configs. + * @private + */ +function getUsedExtractedConfigs(instance) { + const { cache } = internalSlotsMap.get(instance); + + return Array.from(cache.values()); +} + + +export { + ConfigArray, + getUsedExtractedConfigs +}; diff --git a/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js b/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js new file mode 100644 index 0000000..2883c3a --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js @@ -0,0 +1,115 @@ +/** + * @fileoverview `ConfigDependency` class. + * + * `ConfigDependency` class expresses a loaded parser or plugin. + * + * If the parser or plugin was loaded successfully, it has `definition` property + * and `filePath` property. Otherwise, it has `error` property. + * + * When `JSON.stringify()` converted a `ConfigDependency` object to a JSON, it + * omits `definition` property. + * + * `ConfigArrayFactory` creates `ConfigDependency` objects when it loads parsers + * or plugins. + * + * @author Toru Nagashima + */ + +import util from "util"; + +/** + * The class is to store parsers or plugins. + * This class hides the loaded object from `JSON.stringify()` and `console.log`. + * @template T + */ +class ConfigDependency { + + /** + * Initialize this instance. + * @param {Object} data The dependency data. + * @param {T} [data.definition] The dependency if the loading succeeded. + * @param {Error} [data.error] The error object if the loading failed. + * @param {string} [data.filePath] The actual path to the dependency if the loading succeeded. + * @param {string} data.id The ID of this dependency. + * @param {string} data.importerName The name of the config file which loads this dependency. + * @param {string} data.importerPath The path to the config file which loads this dependency. + */ + constructor({ + definition = null, + error = null, + filePath = null, + id, + importerName, + importerPath + }) { + + /** + * The loaded dependency if the loading succeeded. + * @type {T|null} + */ + this.definition = definition; + + /** + * The error object if the loading failed. + * @type {Error|null} + */ + this.error = error; + + /** + * The loaded dependency if the loading succeeded. + * @type {string|null} + */ + this.filePath = filePath; + + /** + * The ID of this dependency. + * @type {string} + */ + this.id = id; + + /** + * The name of the config file which loads this dependency. + * @type {string} + */ + this.importerName = importerName; + + /** + * The path to the config file which loads this dependency. + * @type {string} + */ + this.importerPath = importerPath; + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} a JSON compatible object. + */ + toJSON() { + const obj = this[util.inspect.custom](); + + // Display `error.message` (`Error#message` is unenumerable). + if (obj.error instanceof Error) { + obj.error = { ...obj.error, message: obj.error.message }; + } + + return obj; + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} an object to display by `console.log()`. + */ + [util.inspect.custom]() { + const { + definition: _ignore, // eslint-disable-line no-unused-vars + ...obj + } = this; + + return obj; + } +} + +/** @typedef {ConfigDependency} DependentParser */ +/** @typedef {ConfigDependency} DependentPlugin */ + +export { ConfigDependency }; diff --git a/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js b/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js new file mode 100644 index 0000000..e93b0b6 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js @@ -0,0 +1,145 @@ +/** + * @fileoverview `ExtractedConfig` class. + * + * `ExtractedConfig` class expresses a final configuration for a specific file. + * + * It provides one method. + * + * - `toCompatibleObjectAsConfigFileContent()` + * Convert this configuration to the compatible object as the content of + * config files. It converts the loaded parser and plugins to strings. + * `CLIEngine#getConfigForFile(filePath)` method uses this method. + * + * `ConfigArray#extractConfig(filePath)` creates a `ExtractedConfig` instance. + * + * @author Toru Nagashima + */ + +import { IgnorePattern } from "./ignore-pattern.js"; + +// For VSCode intellisense +/** @typedef {import("../../shared/types").ConfigData} ConfigData */ +/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */ +/** @typedef {import("../../shared/types").SeverityConf} SeverityConf */ +/** @typedef {import("./config-dependency").DependentParser} DependentParser */ +/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */ + +/** + * Check if `xs` starts with `ys`. + * @template T + * @param {T[]} xs The array to check. + * @param {T[]} ys The array that may be the first part of `xs`. + * @returns {boolean} `true` if `xs` starts with `ys`. + */ +function startsWith(xs, ys) { + return xs.length >= ys.length && ys.every((y, i) => y === xs[i]); +} + +/** + * The class for extracted config data. + */ +class ExtractedConfig { + constructor() { + + /** + * The config name what `noInlineConfig` setting came from. + * @type {string} + */ + this.configNameOfNoInlineConfig = ""; + + /** + * Environments. + * @type {Record} + */ + this.env = {}; + + /** + * Global variables. + * @type {Record} + */ + this.globals = {}; + + /** + * The glob patterns that ignore to lint. + * @type {(((filePath:string, dot?:boolean) => boolean) & { basePath:string; patterns:string[] }) | undefined} + */ + this.ignores = void 0; + + /** + * The flag that disables directive comments. + * @type {boolean|undefined} + */ + this.noInlineConfig = void 0; + + /** + * Parser definition. + * @type {DependentParser|null} + */ + this.parser = null; + + /** + * Options for the parser. + * @type {Object} + */ + this.parserOptions = {}; + + /** + * Plugin definitions. + * @type {Record} + */ + this.plugins = {}; + + /** + * Processor ID. + * @type {string|null} + */ + this.processor = null; + + /** + * The flag that reports unused `eslint-disable` directive comments. + * @type {boolean|undefined} + */ + this.reportUnusedDisableDirectives = void 0; + + /** + * Rule settings. + * @type {Record} + */ + this.rules = {}; + + /** + * Shared settings. + * @type {Object} + */ + this.settings = {}; + } + + /** + * Convert this config to the compatible object as a config file content. + * @returns {ConfigData} The converted object. + */ + toCompatibleObjectAsConfigFileContent() { + const { + /* eslint-disable no-unused-vars */ + configNameOfNoInlineConfig: _ignore1, + processor: _ignore2, + /* eslint-enable no-unused-vars */ + ignores, + ...config + } = this; + + config.parser = config.parser && config.parser.filePath; + config.plugins = Object.keys(config.plugins).filter(Boolean).reverse(); + config.ignorePatterns = ignores ? ignores.patterns : []; + + // Strip the default patterns from `ignorePatterns`. + if (startsWith(config.ignorePatterns, IgnorePattern.DefaultPatterns)) { + config.ignorePatterns = + config.ignorePatterns.slice(IgnorePattern.DefaultPatterns.length); + } + + return config; + } +} + +export { ExtractedConfig }; diff --git a/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js b/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js new file mode 100644 index 0000000..3022ba9 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js @@ -0,0 +1,238 @@ +/** + * @fileoverview `IgnorePattern` class. + * + * `IgnorePattern` class has the set of glob patterns and the base path. + * + * It provides two static methods. + * + * - `IgnorePattern.createDefaultIgnore(cwd)` + * Create the default predicate function. + * - `IgnorePattern.createIgnore(ignorePatterns)` + * Create the predicate function from multiple `IgnorePattern` objects. + * + * It provides two properties and a method. + * + * - `patterns` + * The glob patterns that ignore to lint. + * - `basePath` + * The base path of the glob patterns. If absolute paths existed in the + * glob patterns, those are handled as relative paths to the base path. + * - `getPatternsRelativeTo(basePath)` + * Get `patterns` as modified for a given base path. It modifies the + * absolute paths in the patterns as prepending the difference of two base + * paths. + * + * `ConfigArrayFactory` creates `IgnorePattern` objects when it processes + * `ignorePatterns` properties. + * + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import assert from "assert"; +import path from "path"; +import ignore from "ignore"; +import debugOrig from "debug"; + +const debug = debugOrig("eslintrc:ignore-pattern"); + +/** @typedef {ReturnType} Ignore */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Get the path to the common ancestor directory of given paths. + * @param {string[]} sourcePaths The paths to calculate the common ancestor. + * @returns {string} The path to the common ancestor directory. + */ +function getCommonAncestorPath(sourcePaths) { + let result = sourcePaths[0]; + + for (let i = 1; i < sourcePaths.length; ++i) { + const a = result; + const b = sourcePaths[i]; + + // Set the shorter one (it's the common ancestor if one includes the other). + result = a.length < b.length ? a : b; + + // Set the common ancestor. + for (let j = 0, lastSepPos = 0; j < a.length && j < b.length; ++j) { + if (a[j] !== b[j]) { + result = a.slice(0, lastSepPos); + break; + } + if (a[j] === path.sep) { + lastSepPos = j; + } + } + } + + let resolvedResult = result || path.sep; + + // if Windows common ancestor is root of drive must have trailing slash to be absolute. + if (resolvedResult && resolvedResult.endsWith(":") && process.platform === "win32") { + resolvedResult += path.sep; + } + return resolvedResult; +} + +/** + * Make relative path. + * @param {string} from The source path to get relative path. + * @param {string} to The destination path to get relative path. + * @returns {string} The relative path. + */ +function relative(from, to) { + const relPath = path.relative(from, to); + + if (path.sep === "/") { + return relPath; + } + return relPath.split(path.sep).join("/"); +} + +/** + * Get the trailing slash if existed. + * @param {string} filePath The path to check. + * @returns {string} The trailing slash if existed. + */ +function dirSuffix(filePath) { + const isDir = ( + filePath.endsWith(path.sep) || + (process.platform === "win32" && filePath.endsWith("/")) + ); + + return isDir ? "/" : ""; +} + +const DefaultPatterns = Object.freeze(["/**/node_modules/*"]); +const DotPatterns = Object.freeze([".*", "!.eslintrc.*", "!../"]); + +//------------------------------------------------------------------------------ +// Public +//------------------------------------------------------------------------------ + +class IgnorePattern { + + /** + * The default patterns. + * @type {string[]} + */ + static get DefaultPatterns() { + return DefaultPatterns; + } + + /** + * Create the default predicate function. + * @param {string} cwd The current working directory. + * @returns {((filePath:string, dot:boolean) => boolean) & {basePath:string; patterns:string[]}} + * The preficate function. + * The first argument is an absolute path that is checked. + * The second argument is the flag to not ignore dotfiles. + * If the predicate function returned `true`, it means the path should be ignored. + */ + static createDefaultIgnore(cwd) { + return this.createIgnore([new IgnorePattern(DefaultPatterns, cwd)]); + } + + /** + * Create the predicate function from multiple `IgnorePattern` objects. + * @param {IgnorePattern[]} ignorePatterns The list of ignore patterns. + * @returns {((filePath:string, dot?:boolean) => boolean) & {basePath:string; patterns:string[]}} + * The preficate function. + * The first argument is an absolute path that is checked. + * The second argument is the flag to not ignore dotfiles. + * If the predicate function returned `true`, it means the path should be ignored. + */ + static createIgnore(ignorePatterns) { + debug("Create with: %o", ignorePatterns); + + const basePath = getCommonAncestorPath(ignorePatterns.map(p => p.basePath)); + const patterns = [].concat( + ...ignorePatterns.map(p => p.getPatternsRelativeTo(basePath)) + ); + const ig = ignore({ allowRelativePaths: true }).add([...DotPatterns, ...patterns]); + const dotIg = ignore({ allowRelativePaths: true }).add(patterns); + + debug(" processed: %o", { basePath, patterns }); + + return Object.assign( + (filePath, dot = false) => { + assert(path.isAbsolute(filePath), "'filePath' should be an absolute path."); + const relPathRaw = relative(basePath, filePath); + const relPath = relPathRaw && (relPathRaw + dirSuffix(filePath)); + const adoptedIg = dot ? dotIg : ig; + const result = relPath !== "" && adoptedIg.ignores(relPath); + + debug("Check", { filePath, dot, relativePath: relPath, result }); + return result; + }, + { basePath, patterns } + ); + } + + /** + * Initialize a new `IgnorePattern` instance. + * @param {string[]} patterns The glob patterns that ignore to lint. + * @param {string} basePath The base path of `patterns`. + */ + constructor(patterns, basePath) { + assert(path.isAbsolute(basePath), "'basePath' should be an absolute path."); + + /** + * The glob patterns that ignore to lint. + * @type {string[]} + */ + this.patterns = patterns; + + /** + * The base path of `patterns`. + * @type {string} + */ + this.basePath = basePath; + + /** + * If `true` then patterns which don't start with `/` will match the paths to the outside of `basePath`. Defaults to `false`. + * + * It's set `true` for `.eslintignore`, `package.json`, and `--ignore-path` for backward compatibility. + * It's `false` as-is for `ignorePatterns` property in config files. + * @type {boolean} + */ + this.loose = false; + } + + /** + * Get `patterns` as modified for a given base path. It modifies the + * absolute paths in the patterns as prepending the difference of two base + * paths. + * @param {string} newBasePath The base path. + * @returns {string[]} Modifired patterns. + */ + getPatternsRelativeTo(newBasePath) { + assert(path.isAbsolute(newBasePath), "'newBasePath' should be an absolute path."); + const { basePath, loose, patterns } = this; + + if (newBasePath === basePath) { + return patterns; + } + const prefix = `/${relative(newBasePath, basePath)}`; + + return patterns.map(pattern => { + const negative = pattern.startsWith("!"); + const head = negative ? "!" : ""; + const body = negative ? pattern.slice(1) : pattern; + + if (body.startsWith("/") || body.startsWith("../")) { + return `${head}${prefix}${body}`; + } + return loose ? pattern : `${head}${prefix}/**/${body}`; + }); + } +} + +export { IgnorePattern }; diff --git a/node_modules/@eslint/eslintrc/lib/config-array/index.js b/node_modules/@eslint/eslintrc/lib/config-array/index.js new file mode 100644 index 0000000..647f02b --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/config-array/index.js @@ -0,0 +1,19 @@ +/** + * @fileoverview `ConfigArray` class. + * @author Toru Nagashima + */ + +import { ConfigArray, getUsedExtractedConfigs } from "./config-array.js"; +import { ConfigDependency } from "./config-dependency.js"; +import { ExtractedConfig } from "./extracted-config.js"; +import { IgnorePattern } from "./ignore-pattern.js"; +import { OverrideTester } from "./override-tester.js"; + +export { + ConfigArray, + ConfigDependency, + ExtractedConfig, + IgnorePattern, + OverrideTester, + getUsedExtractedConfigs +}; diff --git a/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js b/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js new file mode 100644 index 0000000..460aafc --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js @@ -0,0 +1,225 @@ +/** + * @fileoverview `OverrideTester` class. + * + * `OverrideTester` class handles `files` property and `excludedFiles` property + * of `overrides` config. + * + * It provides one method. + * + * - `test(filePath)` + * Test if a file path matches the pair of `files` property and + * `excludedFiles` property. The `filePath` argument must be an absolute + * path. + * + * `ConfigArrayFactory` creates `OverrideTester` objects when it processes + * `overrides` properties. + * + * @author Toru Nagashima + */ + +import assert from "assert"; +import path from "path"; +import util from "util"; +import minimatch from "minimatch"; + +const { Minimatch } = minimatch; + +const minimatchOpts = { dot: true, matchBase: true }; + +/** + * @typedef {Object} Pattern + * @property {InstanceType[] | null} includes The positive matchers. + * @property {InstanceType[] | null} excludes The negative matchers. + */ + +/** + * Normalize a given pattern to an array. + * @param {string|string[]|undefined} patterns A glob pattern or an array of glob patterns. + * @returns {string[]|null} Normalized patterns. + * @private + */ +function normalizePatterns(patterns) { + if (Array.isArray(patterns)) { + return patterns.filter(Boolean); + } + if (typeof patterns === "string" && patterns) { + return [patterns]; + } + return []; +} + +/** + * Create the matchers of given patterns. + * @param {string[]} patterns The patterns. + * @returns {InstanceType[] | null} The matchers. + */ +function toMatcher(patterns) { + if (patterns.length === 0) { + return null; + } + return patterns.map(pattern => { + if (/^\.[/\\]/u.test(pattern)) { + return new Minimatch( + pattern.slice(2), + + // `./*.js` should not match with `subdir/foo.js` + { ...minimatchOpts, matchBase: false } + ); + } + return new Minimatch(pattern, minimatchOpts); + }); +} + +/** + * Convert a given matcher to string. + * @param {Pattern} matchers The matchers. + * @returns {string} The string expression of the matcher. + */ +function patternToJson({ includes, excludes }) { + return { + includes: includes && includes.map(m => m.pattern), + excludes: excludes && excludes.map(m => m.pattern) + }; +} + +/** + * The class to test given paths are matched by the patterns. + */ +class OverrideTester { + + /** + * Create a tester with given criteria. + * If there are no criteria, returns `null`. + * @param {string|string[]} files The glob patterns for included files. + * @param {string|string[]} excludedFiles The glob patterns for excluded files. + * @param {string} basePath The path to the base directory to test paths. + * @returns {OverrideTester|null} The created instance or `null`. + */ + static create(files, excludedFiles, basePath) { + const includePatterns = normalizePatterns(files); + const excludePatterns = normalizePatterns(excludedFiles); + let endsWithWildcard = false; + + if (includePatterns.length === 0) { + return null; + } + + // Rejects absolute paths or relative paths to parents. + for (const pattern of includePatterns) { + if (path.isAbsolute(pattern) || pattern.includes("..")) { + throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`); + } + if (pattern.endsWith("*")) { + endsWithWildcard = true; + } + } + for (const pattern of excludePatterns) { + if (path.isAbsolute(pattern) || pattern.includes("..")) { + throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`); + } + } + + const includes = toMatcher(includePatterns); + const excludes = toMatcher(excludePatterns); + + return new OverrideTester( + [{ includes, excludes }], + basePath, + endsWithWildcard + ); + } + + /** + * Combine two testers by logical and. + * If either of the testers was `null`, returns the other tester. + * The `basePath` property of the two must be the same value. + * @param {OverrideTester|null} a A tester. + * @param {OverrideTester|null} b Another tester. + * @returns {OverrideTester|null} Combined tester. + */ + static and(a, b) { + if (!b) { + return a && new OverrideTester( + a.patterns, + a.basePath, + a.endsWithWildcard + ); + } + if (!a) { + return new OverrideTester( + b.patterns, + b.basePath, + b.endsWithWildcard + ); + } + + assert.strictEqual(a.basePath, b.basePath); + return new OverrideTester( + a.patterns.concat(b.patterns), + a.basePath, + a.endsWithWildcard || b.endsWithWildcard + ); + } + + /** + * Initialize this instance. + * @param {Pattern[]} patterns The matchers. + * @param {string} basePath The base path. + * @param {boolean} endsWithWildcard If `true` then a pattern ends with `*`. + */ + constructor(patterns, basePath, endsWithWildcard = false) { + + /** @type {Pattern[]} */ + this.patterns = patterns; + + /** @type {string} */ + this.basePath = basePath; + + /** @type {boolean} */ + this.endsWithWildcard = endsWithWildcard; + } + + /** + * Test if a given path is matched or not. + * @param {string} filePath The absolute path to the target file. + * @returns {boolean} `true` if the path was matched. + */ + test(filePath) { + if (typeof filePath !== "string" || !path.isAbsolute(filePath)) { + throw new Error(`'filePath' should be an absolute path, but got ${filePath}.`); + } + const relativePath = path.relative(this.basePath, filePath); + + return this.patterns.every(({ includes, excludes }) => ( + (!includes || includes.some(m => m.match(relativePath))) && + (!excludes || !excludes.some(m => m.match(relativePath))) + )); + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} a JSON compatible object. + */ + toJSON() { + if (this.patterns.length === 1) { + return { + ...patternToJson(this.patterns[0]), + basePath: this.basePath + }; + } + return { + AND: this.patterns.map(patternToJson), + basePath: this.basePath + }; + } + + // eslint-disable-next-line jsdoc/require-description + /** + * @returns {Object} an object to display by `console.log()`. + */ + [util.inspect.custom]() { + return this.toJSON(); + } +} + +export { OverrideTester }; diff --git a/node_modules/@eslint/eslintrc/lib/flat-compat.js b/node_modules/@eslint/eslintrc/lib/flat-compat.js new file mode 100644 index 0000000..8df15a5 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/flat-compat.js @@ -0,0 +1,307 @@ +/** + * @fileoverview Compatibility class for flat config. + * @author Nicholas C. Zakas + */ + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +import createDebug from "debug"; +import path from "path"; + +import environments from "../conf/environments.js"; +import { ConfigArrayFactory } from "./config-array-factory.js"; + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/** @typedef {import("../../shared/types").Environment} Environment */ +/** @typedef {import("../../shared/types").Processor} Processor */ + +const debug = createDebug("eslintrc:flat-compat"); +const cafactory = Symbol("cafactory"); + +/** + * Translates an ESLintRC-style config object into a flag-config-style config + * object. + * @param {Object} eslintrcConfig An ESLintRC-style config object. + * @param {Object} options Options to help translate the config. + * @param {string} options.resolveConfigRelativeTo To the directory to resolve + * configs from. + * @param {string} options.resolvePluginsRelativeTo The directory to resolve + * plugins from. + * @param {ReadOnlyMap} options.pluginEnvironments A map of plugin environment + * names to objects. + * @param {ReadOnlyMap} options.pluginProcessors A map of plugin processor + * names to objects. + * @returns {Object} A flag-config-style config object. + */ +function translateESLintRC(eslintrcConfig, { + resolveConfigRelativeTo, + resolvePluginsRelativeTo, + pluginEnvironments, + pluginProcessors +}) { + + const flatConfig = {}; + const configs = []; + const languageOptions = {}; + const linterOptions = {}; + const keysToCopy = ["settings", "rules", "processor"]; + const languageOptionsKeysToCopy = ["globals", "parser", "parserOptions"]; + const linterOptionsKeysToCopy = ["noInlineConfig", "reportUnusedDisableDirectives"]; + + // check for special settings for eslint:all and eslint:recommended: + if (eslintrcConfig.settings) { + if (eslintrcConfig.settings["eslint:all"] === true) { + return ["eslint:all"]; + } + + if (eslintrcConfig.settings["eslint:recommended"] === true) { + return ["eslint:recommended"]; + } + } + + // copy over simple translations + for (const key of keysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + flatConfig[key] = eslintrcConfig[key]; + } + } + + // copy over languageOptions + for (const key of languageOptionsKeysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + + // create the languageOptions key in the flat config + flatConfig.languageOptions = languageOptions; + + if (key === "parser") { + debug(`Resolving parser '${languageOptions[key]}' relative to ${resolveConfigRelativeTo}`); + + if (eslintrcConfig[key].error) { + throw eslintrcConfig[key].error; + } + + languageOptions[key] = eslintrcConfig[key].definition; + continue; + } + + // clone any object values that are in the eslintrc config + if (eslintrcConfig[key] && typeof eslintrcConfig[key] === "object") { + languageOptions[key] = { + ...eslintrcConfig[key] + }; + } else { + languageOptions[key] = eslintrcConfig[key]; + } + } + } + + // copy over linterOptions + for (const key of linterOptionsKeysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + flatConfig.linterOptions = linterOptions; + linterOptions[key] = eslintrcConfig[key]; + } + } + + // move ecmaVersion a level up + if (languageOptions.parserOptions) { + + if ("ecmaVersion" in languageOptions.parserOptions) { + languageOptions.ecmaVersion = languageOptions.parserOptions.ecmaVersion; + delete languageOptions.parserOptions.ecmaVersion; + } + + if ("sourceType" in languageOptions.parserOptions) { + languageOptions.sourceType = languageOptions.parserOptions.sourceType; + delete languageOptions.parserOptions.sourceType; + } + + // check to see if we even need parserOptions anymore and remove it if not + if (Object.keys(languageOptions.parserOptions).length === 0) { + delete languageOptions.parserOptions; + } + } + + // overrides + if (eslintrcConfig.criteria) { + flatConfig.files = [absoluteFilePath => eslintrcConfig.criteria.test(absoluteFilePath)]; + } + + // translate plugins + if (eslintrcConfig.plugins && typeof eslintrcConfig.plugins === "object") { + debug(`Translating plugins: ${eslintrcConfig.plugins}`); + + flatConfig.plugins = {}; + + for (const pluginName of Object.keys(eslintrcConfig.plugins)) { + + debug(`Translating plugin: ${pluginName}`); + debug(`Resolving plugin '${pluginName} relative to ${resolvePluginsRelativeTo}`); + + const { definition: plugin, error } = eslintrcConfig.plugins[pluginName]; + + if (error) { + throw error; + } + + flatConfig.plugins[pluginName] = plugin; + + // create a config for any processors + if (plugin.processors) { + for (const processorName of Object.keys(plugin.processors)) { + if (processorName.startsWith(".")) { + debug(`Assigning processor: ${pluginName}/${processorName}`); + + configs.unshift({ + files: [`**/*${processorName}`], + processor: pluginProcessors.get(`${pluginName}/${processorName}`) + }); + } + + } + } + } + } + + // translate env - must come after plugins + if (eslintrcConfig.env && typeof eslintrcConfig.env === "object") { + for (const envName of Object.keys(eslintrcConfig.env)) { + + // only add environments that are true + if (eslintrcConfig.env[envName]) { + debug(`Translating environment: ${envName}`); + + if (environments.has(envName)) { + + // built-in environments should be defined first + configs.unshift(...translateESLintRC(environments.get(envName), { + resolveConfigRelativeTo, + resolvePluginsRelativeTo + })); + } else if (pluginEnvironments.has(envName)) { + + // if the environment comes from a plugin, it should come after the plugin config + configs.push(...translateESLintRC(pluginEnvironments.get(envName), { + resolveConfigRelativeTo, + resolvePluginsRelativeTo + })); + } + } + } + } + + // only add if there are actually keys in the config + if (Object.keys(flatConfig).length > 0) { + configs.push(flatConfig); + } + + return configs; +} + + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * A compatibility class for working with configs. + */ +class FlatCompat { + + constructor({ + baseDirectory = process.cwd(), + resolvePluginsRelativeTo = baseDirectory + } = {}) { + this.baseDirectory = baseDirectory; + this.resolvePluginsRelativeTo = resolvePluginsRelativeTo; + this[cafactory] = new ConfigArrayFactory({ + cwd: baseDirectory, + resolvePluginsRelativeTo, + getEslintAllConfig: () => ({ settings: { "eslint:all": true } }), + getEslintRecommendedConfig: () => ({ settings: { "eslint:recommended": true } }) + }); + } + + /** + * Translates an ESLintRC-style config into a flag-config-style config. + * @param {Object} eslintrcConfig The ESLintRC-style config object. + * @returns {Object} A flag-config-style config object. + */ + config(eslintrcConfig) { + const eslintrcArray = this[cafactory].create(eslintrcConfig, { + basePath: this.baseDirectory + }); + + const flatArray = []; + let hasIgnorePatterns = false; + + eslintrcArray.forEach(configData => { + if (configData.type === "config") { + hasIgnorePatterns = hasIgnorePatterns || configData.ignorePattern; + flatArray.push(...translateESLintRC(configData, { + resolveConfigRelativeTo: path.join(this.baseDirectory, "__placeholder.js"), + resolvePluginsRelativeTo: path.join(this.resolvePluginsRelativeTo, "__placeholder.js"), + pluginEnvironments: eslintrcArray.pluginEnvironments, + pluginProcessors: eslintrcArray.pluginProcessors + })); + } + }); + + // combine ignorePatterns to emulate ESLintRC behavior better + if (hasIgnorePatterns) { + flatArray.unshift({ + ignores: [filePath => { + + // Compute the final config for this file. + // This filters config array elements by `files`/`excludedFiles` then merges the elements. + const finalConfig = eslintrcArray.extractConfig(filePath); + + // Test the `ignorePattern` properties of the final config. + return Boolean(finalConfig.ignores) && finalConfig.ignores(filePath); + }] + }); + } + + return flatArray; + } + + /** + * Translates the `env` section of an ESLintRC-style config. + * @param {Object} envConfig The `env` section of an ESLintRC config. + * @returns {Object} A flag-config object representing the environments. + */ + env(envConfig) { + return this.config({ + env: envConfig + }); + } + + /** + * Translates the `extends` section of an ESLintRC-style config. + * @param {...string} configsToExtend The names of the configs to load. + * @returns {Object} A flag-config object representing the config. + */ + extends(...configsToExtend) { + return this.config({ + extends: configsToExtend + }); + } + + /** + * Translates the `plugins` section of an ESLintRC-style config. + * @param {...string} plugins The names of the plugins to load. + * @returns {Object} A flag-config object representing the plugins. + */ + plugins(...plugins) { + return this.config({ + plugins + }); + } +} + +export { FlatCompat }; diff --git a/node_modules/@eslint/eslintrc/lib/index-universal.js b/node_modules/@eslint/eslintrc/lib/index-universal.js new file mode 100644 index 0000000..6f6b302 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/index-universal.js @@ -0,0 +1,29 @@ +/** + * @fileoverview Package exports for @eslint/eslintrc + * @author Nicholas C. Zakas + */ +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import * as ConfigOps from "./shared/config-ops.js"; +import ConfigValidator from "./shared/config-validator.js"; +import * as naming from "./shared/naming.js"; +import environments from "../conf/environments.js"; + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +const Legacy = { + environments, + + // shared + ConfigOps, + ConfigValidator, + naming +}; + +export { + Legacy +}; diff --git a/node_modules/@eslint/eslintrc/lib/index.js b/node_modules/@eslint/eslintrc/lib/index.js new file mode 100644 index 0000000..9e3d13f --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/index.js @@ -0,0 +1,56 @@ +/** + * @fileoverview Package exports for @eslint/eslintrc + * @author Nicholas C. Zakas + */ +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import { + ConfigArrayFactory, + createContext as createConfigArrayFactoryContext +} from "./config-array-factory.js"; + +import { CascadingConfigArrayFactory } from "./cascading-config-array-factory.js"; +import * as ModuleResolver from "./shared/relative-module-resolver.js"; +import { ConfigArray, getUsedExtractedConfigs } from "./config-array/index.js"; +import { ConfigDependency } from "./config-array/config-dependency.js"; +import { ExtractedConfig } from "./config-array/extracted-config.js"; +import { IgnorePattern } from "./config-array/ignore-pattern.js"; +import { OverrideTester } from "./config-array/override-tester.js"; +import * as ConfigOps from "./shared/config-ops.js"; +import ConfigValidator from "./shared/config-validator.js"; +import * as naming from "./shared/naming.js"; +import { FlatCompat } from "./flat-compat.js"; +import environments from "../conf/environments.js"; + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +const Legacy = { + ConfigArray, + createConfigArrayFactoryContext, + CascadingConfigArrayFactory, + ConfigArrayFactory, + ConfigDependency, + ExtractedConfig, + IgnorePattern, + OverrideTester, + getUsedExtractedConfigs, + environments, + + // shared + ConfigOps, + ConfigValidator, + ModuleResolver, + naming +}; + +export { + + Legacy, + + FlatCompat + +}; diff --git a/node_modules/@eslint/eslintrc/lib/shared/ajv.js b/node_modules/@eslint/eslintrc/lib/shared/ajv.js new file mode 100644 index 0000000..b79ad36 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/ajv.js @@ -0,0 +1,191 @@ +/** + * @fileoverview The instance of Ajv validator. + * @author Evgeny Poberezkin + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import Ajv from "ajv"; + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/* + * Copied from ajv/lib/refs/json-schema-draft-04.json + * The MIT License (MIT) + * Copyright (c) 2015-2017 Evgeny Poberezkin + */ +const metaSchema = { + id: "http://json-schema.org/draft-04/schema#", + $schema: "http://json-schema.org/draft-04/schema#", + description: "Core schema meta-schema", + definitions: { + schemaArray: { + type: "array", + minItems: 1, + items: { $ref: "#" } + }, + positiveInteger: { + type: "integer", + minimum: 0 + }, + positiveIntegerDefault0: { + allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }] + }, + simpleTypes: { + enum: ["array", "boolean", "integer", "null", "number", "object", "string"] + }, + stringArray: { + type: "array", + items: { type: "string" }, + minItems: 1, + uniqueItems: true + } + }, + type: "object", + properties: { + id: { + type: "string" + }, + $schema: { + type: "string" + }, + 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: { $ref: "#/definitions/positiveInteger" }, + minLength: { $ref: "#/definitions/positiveIntegerDefault0" }, + pattern: { + type: "string", + format: "regex" + }, + additionalItems: { + anyOf: [ + { type: "boolean" }, + { $ref: "#" } + ], + default: { } + }, + items: { + anyOf: [ + { $ref: "#" }, + { $ref: "#/definitions/schemaArray" } + ], + default: { } + }, + maxItems: { $ref: "#/definitions/positiveInteger" }, + minItems: { $ref: "#/definitions/positiveIntegerDefault0" }, + uniqueItems: { + type: "boolean", + default: false + }, + maxProperties: { $ref: "#/definitions/positiveInteger" }, + minProperties: { $ref: "#/definitions/positiveIntegerDefault0" }, + required: { $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: { type: "string" }, + allOf: { $ref: "#/definitions/schemaArray" }, + anyOf: { $ref: "#/definitions/schemaArray" }, + oneOf: { $ref: "#/definitions/schemaArray" }, + not: { $ref: "#" } + }, + dependencies: { + exclusiveMaximum: ["maximum"], + exclusiveMinimum: ["minimum"] + }, + default: { } +}; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +export default (additionalOptions = {}) => { + const ajv = new Ajv({ + meta: false, + useDefaults: true, + validateSchema: false, + missingRefs: "ignore", + verbose: true, + schemaId: "auto", + ...additionalOptions + }); + + ajv.addMetaSchema(metaSchema); + // eslint-disable-next-line no-underscore-dangle + ajv._opts.defaultMeta = metaSchema.id; + + return ajv; +}; diff --git a/node_modules/@eslint/eslintrc/lib/shared/config-ops.js b/node_modules/@eslint/eslintrc/lib/shared/config-ops.js new file mode 100644 index 0000000..d203be0 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/config-ops.js @@ -0,0 +1,135 @@ +/** + * @fileoverview Config file operations. This file must be usable in the browser, + * so no Node-specific code can be here. + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +const RULE_SEVERITY_STRINGS = ["off", "warn", "error"], + RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => { + map[value] = index; + return map; + }, {}), + VALID_SEVERITIES = [0, 1, 2, "off", "warn", "error"]; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Normalizes the severity value of a rule's configuration to a number + * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally + * received from the user. A valid config value is either 0, 1, 2, the string "off" (treated the same as 0), + * the string "warn" (treated the same as 1), the string "error" (treated the same as 2), or an array + * whose first element is one of the above values. Strings are matched case-insensitively. + * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0. + */ +function getRuleSeverity(ruleConfig) { + const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; + + if (severityValue === 0 || severityValue === 1 || severityValue === 2) { + return severityValue; + } + + if (typeof severityValue === "string") { + return RULE_SEVERITY[severityValue.toLowerCase()] || 0; + } + + return 0; +} + +/** + * Converts old-style severity settings (0, 1, 2) into new-style + * severity settings (off, warn, error) for all rules. Assumption is that severity + * values have already been validated as correct. + * @param {Object} config The config object to normalize. + * @returns {void} + */ +function normalizeToStrings(config) { + + if (config.rules) { + Object.keys(config.rules).forEach(ruleId => { + const ruleConfig = config.rules[ruleId]; + + if (typeof ruleConfig === "number") { + config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0]; + } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === "number") { + ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0]; + } + }); + } +} + +/** + * Determines if the severity for the given rule configuration represents an error. + * @param {int|string|Array} ruleConfig The configuration for an individual rule. + * @returns {boolean} True if the rule represents an error, false if not. + */ +function isErrorSeverity(ruleConfig) { + return getRuleSeverity(ruleConfig) === 2; +} + +/** + * Checks whether a given config has valid severity or not. + * @param {number|string|Array} ruleConfig The configuration for an individual rule. + * @returns {boolean} `true` if the configuration has valid severity. + */ +function isValidSeverity(ruleConfig) { + let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; + + if (typeof severity === "string") { + severity = severity.toLowerCase(); + } + return VALID_SEVERITIES.indexOf(severity) !== -1; +} + +/** + * Checks whether every rule of a given config has valid severity or not. + * @param {Object} config The configuration for rules. + * @returns {boolean} `true` if the configuration has valid severity. + */ +function isEverySeverityValid(config) { + return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId])); +} + +/** + * Normalizes a value for a global in a config + * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in + * a global directive comment + * @returns {("readable"|"writeable"|"off")} The value normalized as a string + * @throws Error if global value is invalid + */ +function normalizeConfigGlobal(configuredValue) { + switch (configuredValue) { + case "off": + return "off"; + + case true: + case "true": + case "writeable": + case "writable": + return "writable"; + + case null: + case false: + case "false": + case "readable": + case "readonly": + return "readonly"; + + default: + throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`); + } +} + +export { + getRuleSeverity, + normalizeToStrings, + isErrorSeverity, + isValidSeverity, + isEverySeverityValid, + normalizeConfigGlobal +}; diff --git a/node_modules/@eslint/eslintrc/lib/shared/config-validator.js b/node_modules/@eslint/eslintrc/lib/shared/config-validator.js new file mode 100644 index 0000000..32174a5 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/config-validator.js @@ -0,0 +1,325 @@ +/** + * @fileoverview Validates configs. + * @author Brandon Mills + */ + +/* eslint class-methods-use-this: "off" */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import util from "util"; +import * as ConfigOps from "./config-ops.js"; +import { emitDeprecationWarning } from "./deprecation-warnings.js"; +import ajvOrig from "./ajv.js"; +import configSchema from "../../conf/config-schema.js"; +import BuiltInEnvironments from "../../conf/environments.js"; + +const ajv = ajvOrig(); + +const ruleValidators = new WeakMap(); +const noop = Function.prototype; + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ +let validateSchema; +const severityMap = { + error: 2, + warn: 1, + off: 0 +}; + +const validated = new WeakSet(); + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +export default class ConfigValidator { + constructor({ builtInRules = new Map() } = {}) { + this.builtInRules = builtInRules; + } + + /** + * Gets a complete options schema for a rule. + * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object + * @returns {Object} JSON Schema for the rule's options. + */ + getRuleOptionsSchema(rule) { + if (!rule) { + return null; + } + + const schema = rule.schema || rule.meta && rule.meta.schema; + + // Given a tuple of schemas, insert warning level at the beginning + if (Array.isArray(schema)) { + if (schema.length) { + return { + type: "array", + items: schema, + minItems: 0, + maxItems: schema.length + }; + } + return { + type: "array", + minItems: 0, + maxItems: 0 + }; + + } + + // Given a full schema, leave it alone + return schema || null; + } + + /** + * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid. + * @param {options} options The given options for the rule. + * @returns {number|string} The rule's severity value + */ + validateRuleSeverity(options) { + const severity = Array.isArray(options) ? options[0] : options; + const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity; + + if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) { + return normSeverity; + } + + throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util.inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`); + + } + + /** + * Validates the non-severity options passed to a rule, based on its schema. + * @param {{create: Function}} rule The rule to validate + * @param {Array} localOptions The options for the rule, excluding severity + * @returns {void} + */ + validateRuleSchema(rule, localOptions) { + if (!ruleValidators.has(rule)) { + const schema = this.getRuleOptionsSchema(rule); + + if (schema) { + ruleValidators.set(rule, ajv.compile(schema)); + } + } + + const validateRule = ruleValidators.get(rule); + + if (validateRule) { + validateRule(localOptions); + if (validateRule.errors) { + throw new Error(validateRule.errors.map( + error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n` + ).join("")); + } + } + } + + /** + * Validates a rule's options against its schema. + * @param {{create: Function}|null} rule The rule that the config is being validated for + * @param {string} ruleId The rule's unique name. + * @param {Array|number} options The given options for the rule. + * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined, + * no source is prepended to the message. + * @returns {void} + */ + validateRuleOptions(rule, ruleId, options, source = null) { + try { + const severity = this.validateRuleSeverity(options); + + if (severity !== 0) { + this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []); + } + } catch (err) { + const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`; + + if (typeof source === "string") { + throw new Error(`${source}:\n\t${enhancedMessage}`); + } else { + throw new Error(enhancedMessage); + } + } + } + + /** + * Validates an environment object + * @param {Object} environment The environment config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments. + * @returns {void} + */ + validateEnvironment( + environment, + source, + getAdditionalEnv = noop + ) { + + // not having an environment is ok + if (!environment) { + return; + } + + Object.keys(environment).forEach(id => { + const env = getAdditionalEnv(id) || BuiltInEnvironments.get(id) || null; + + if (!env) { + const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`; + + throw new Error(message); + } + }); + } + + /** + * Validates a rules config object + * @param {Object} rulesConfig The rules config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules + * @returns {void} + */ + validateRules( + rulesConfig, + source, + getAdditionalRule = noop + ) { + if (!rulesConfig) { + return; + } + + Object.keys(rulesConfig).forEach(id => { + const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null; + + this.validateRuleOptions(rule, id, rulesConfig[id], source); + }); + } + + /** + * Validates a `globals` section of a config file + * @param {Object} globalsConfig The `globals` section + * @param {string|null} source The name of the configuration source to report in the event of an error. + * @returns {void} + */ + validateGlobals(globalsConfig, source = null) { + if (!globalsConfig) { + return; + } + + Object.entries(globalsConfig) + .forEach(([configuredGlobal, configuredValue]) => { + try { + ConfigOps.normalizeConfigGlobal(configuredValue); + } catch (err) { + throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`); + } + }); + } + + /** + * Validate `processor` configuration. + * @param {string|undefined} processorName The processor name. + * @param {string} source The name of config file. + * @param {function(id:string): Processor} getProcessor The getter of defined processors. + * @returns {void} + */ + validateProcessor(processorName, source, getProcessor) { + if (processorName && !getProcessor(processorName)) { + throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`); + } + } + + /** + * Formats an array of schema validation errors. + * @param {Array} errors An array of error messages to format. + * @returns {string} Formatted error message + */ + formatErrors(errors) { + return errors.map(error => { + if (error.keyword === "additionalProperties") { + const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty; + + return `Unexpected top-level property "${formattedPropertyPath}"`; + } + if (error.keyword === "type") { + const formattedField = error.dataPath.slice(1); + const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema; + const formattedValue = JSON.stringify(error.data); + + return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`; + } + + const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath; + + return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`; + }).map(message => `\t- ${message}.\n`).join(""); + } + + /** + * Validates the top level properties of the config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @returns {void} + */ + validateConfigSchema(config, source = null) { + validateSchema = validateSchema || ajv.compile(configSchema); + + if (!validateSchema(config)) { + throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`); + } + + if (Object.hasOwnProperty.call(config, "ecmaFeatures")) { + emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES"); + } + } + + /** + * Validates an entire config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules. + * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs. + * @returns {void} + */ + validate(config, source, getAdditionalRule, getAdditionalEnv) { + this.validateConfigSchema(config, source); + this.validateRules(config.rules, source, getAdditionalRule); + this.validateEnvironment(config.env, source, getAdditionalEnv); + this.validateGlobals(config.globals, source); + + for (const override of config.overrides || []) { + this.validateRules(override.rules, source, getAdditionalRule); + this.validateEnvironment(override.env, source, getAdditionalEnv); + this.validateGlobals(config.globals, source); + } + } + + /** + * Validate config array object. + * @param {ConfigArray} configArray The config array to validate. + * @returns {void} + */ + validateConfigArray(configArray) { + const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments); + const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors); + const getPluginRule = Map.prototype.get.bind(configArray.pluginRules); + + // Validate. + for (const element of configArray) { + if (validated.has(element)) { + continue; + } + validated.add(element); + + this.validateEnvironment(element.env, element.name, getPluginEnv); + this.validateGlobals(element.globals, element.name); + this.validateProcessor(element.processor, element.name, getPluginProcessor); + this.validateRules(element.rules, element.name, getPluginRule); + } + } + +} diff --git a/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js b/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js new file mode 100644 index 0000000..91907b1 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js @@ -0,0 +1,63 @@ +/** + * @fileoverview Provide the function that emits deprecation warnings. + * @author Toru Nagashima + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +import path from "path"; + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +// Defitions for deprecation warnings. +const deprecationWarningMessages = { + ESLINT_LEGACY_ECMAFEATURES: + "The 'ecmaFeatures' config file property is deprecated and has no effect.", + ESLINT_PERSONAL_CONFIG_LOAD: + "'~/.eslintrc.*' config files have been deprecated. " + + "Please use a config file per project or the '--config' option.", + ESLINT_PERSONAL_CONFIG_SUPPRESS: + "'~/.eslintrc.*' config files have been deprecated. " + + "Please remove it or add 'root:true' to the config files in your " + + "projects in order to avoid loading '~/.eslintrc.*' accidentally." +}; + +const sourceFileErrorCache = new Set(); + +/** + * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted + * for each unique file path, but repeated invocations with the same file path have no effect. + * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active. + * @param {string} source The name of the configuration source to report the warning for. + * @param {string} errorCode The warning message to show. + * @returns {void} + */ +function emitDeprecationWarning(source, errorCode) { + const cacheKey = JSON.stringify({ source, errorCode }); + + if (sourceFileErrorCache.has(cacheKey)) { + return; + } + sourceFileErrorCache.add(cacheKey); + + const rel = path.relative(process.cwd(), source); + const message = deprecationWarningMessages[errorCode]; + + process.emitWarning( + `${message} (found in "${rel}")`, + "DeprecationWarning", + errorCode + ); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +export { + emitDeprecationWarning +}; diff --git a/node_modules/@eslint/eslintrc/lib/shared/naming.js b/node_modules/@eslint/eslintrc/lib/shared/naming.js new file mode 100644 index 0000000..93df5fc --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/naming.js @@ -0,0 +1,96 @@ +/** + * @fileoverview Common helpers for naming of plugins, formatters and configs + */ + +const NAMESPACE_REGEX = /^@.*\//iu; + +/** + * Brings package name to correct format based on prefix + * @param {string} name The name of the package. + * @param {string} prefix Can be either "eslint-plugin", "eslint-config" or "eslint-formatter" + * @returns {string} Normalized name of the package + * @private + */ +function normalizePackageName(name, prefix) { + let normalizedName = name; + + /** + * On Windows, name can come in with Windows slashes instead of Unix slashes. + * Normalize to Unix first to avoid errors later on. + * https://github.com/eslint/eslint/issues/5644 + */ + if (normalizedName.includes("\\")) { + normalizedName = normalizedName.replace(/\\/gu, "/"); + } + + if (normalizedName.charAt(0) === "@") { + + /** + * it's a scoped package + * package name is the prefix, or just a username + */ + const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"), + scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u"); + + if (scopedPackageShortcutRegex.test(normalizedName)) { + normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`); + } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) { + + /** + * for scoped packages, insert the prefix after the first / unless + * the path is already @scope/eslint or @scope/eslint-xxx-yyy + */ + normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`); + } + } else if (!normalizedName.startsWith(`${prefix}-`)) { + normalizedName = `${prefix}-${normalizedName}`; + } + + return normalizedName; +} + +/** + * Removes the prefix from a fullname. + * @param {string} fullname The term which may have the prefix. + * @param {string} prefix The prefix to remove. + * @returns {string} The term without prefix. + */ +function getShorthandName(fullname, prefix) { + if (fullname[0] === "@") { + let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname); + + if (matchResult) { + return matchResult[1]; + } + + matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname); + if (matchResult) { + return `${matchResult[1]}/${matchResult[2]}`; + } + } else if (fullname.startsWith(`${prefix}-`)) { + return fullname.slice(prefix.length + 1); + } + + return fullname; +} + +/** + * Gets the scope (namespace) of a term. + * @param {string} term The term which may have the namespace. + * @returns {string} The namespace of the term if it has one. + */ +function getNamespaceFromTerm(term) { + const match = term.match(NAMESPACE_REGEX); + + return match ? match[0] : ""; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +export { + normalizePackageName, + getShorthandName, + getNamespaceFromTerm +}; diff --git a/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js b/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js new file mode 100644 index 0000000..1df0ca8 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js @@ -0,0 +1,42 @@ +/** + * Utility for resolving a module relative to another module + * @author Teddy Katz + */ + +import Module from "module"; + +/* + * `Module.createRequire` is added in v12.2.0. It supports URL as well. + * We only support the case where the argument is a filepath, not a URL. + */ +const createRequire = Module.createRequire; + +/** + * Resolves a Node module relative to another module + * @param {string} moduleName The name of a Node module, or a path to a Node module. + * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be + * a file rather than a directory, but the file need not actually exist. + * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath` + */ +function resolve(moduleName, relativeToPath) { + try { + return createRequire(relativeToPath).resolve(moduleName); + } catch (error) { + + // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future. + if ( + typeof error === "object" && + error !== null && + error.code === "MODULE_NOT_FOUND" && + !error.requireStack && + error.message.includes(moduleName) + ) { + error.message += `\nRequire stack:\n- ${relativeToPath}`; + } + throw error; + } +} + +export { + resolve +}; diff --git a/node_modules/@eslint/eslintrc/lib/shared/types.js b/node_modules/@eslint/eslintrc/lib/shared/types.js new file mode 100644 index 0000000..a32c35e --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/types.js @@ -0,0 +1,149 @@ +/** + * @fileoverview Define common types for input completion. + * @author Toru Nagashima + */ + +/** @type {any} */ +export default {}; + +/** @typedef {boolean | "off" | "readable" | "readonly" | "writable" | "writeable"} GlobalConf */ +/** @typedef {0 | 1 | 2 | "off" | "warn" | "error"} SeverityConf */ +/** @typedef {SeverityConf | [SeverityConf, ...any[]]} RuleConf */ + +/** + * @typedef {Object} EcmaFeatures + * @property {boolean} [globalReturn] Enabling `return` statements at the top-level. + * @property {boolean} [jsx] Enabling JSX syntax. + * @property {boolean} [impliedStrict] Enabling strict mode always. + */ + +/** + * @typedef {Object} ParserOptions + * @property {EcmaFeatures} [ecmaFeatures] The optional features. + * @property {3|5|6|7|8|9|10|11|12|2015|2016|2017|2018|2019|2020|2021} [ecmaVersion] The ECMAScript version (or revision number). + * @property {"script"|"module"} [sourceType] The source code type. + */ + +/** + * @typedef {Object} ConfigData + * @property {Record} [env] The environment settings. + * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. + * @property {Record} [globals] The global variable settings. + * @property {string | string[]} [ignorePatterns] The glob patterns that ignore to lint. + * @property {boolean} [noInlineConfig] The flag that disables directive comments. + * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. + * @property {string} [parser] The path to a parser or the package name of a parser. + * @property {ParserOptions} [parserOptions] The parser options. + * @property {string[]} [plugins] The plugin specifiers. + * @property {string} [processor] The processor specifier. + * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. + * @property {boolean} [root] The root flag. + * @property {Record} [rules] The rule settings. + * @property {Object} [settings] The shared settings. + */ + +/** + * @typedef {Object} OverrideConfigData + * @property {Record} [env] The environment settings. + * @property {string | string[]} [excludedFiles] The glob pattarns for excluded files. + * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. + * @property {string | string[]} files The glob patterns for target files. + * @property {Record} [globals] The global variable settings. + * @property {boolean} [noInlineConfig] The flag that disables directive comments. + * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. + * @property {string} [parser] The path to a parser or the package name of a parser. + * @property {ParserOptions} [parserOptions] The parser options. + * @property {string[]} [plugins] The plugin specifiers. + * @property {string} [processor] The processor specifier. + * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. + * @property {Record} [rules] The rule settings. + * @property {Object} [settings] The shared settings. + */ + +/** + * @typedef {Object} ParseResult + * @property {Object} ast The AST. + * @property {ScopeManager} [scopeManager] The scope manager of the AST. + * @property {Record} [services] The services that the parser provides. + * @property {Record} [visitorKeys] The visitor keys of the AST. + */ + +/** + * @typedef {Object} Parser + * @property {(text:string, options:ParserOptions) => Object} parse The definition of global variables. + * @property {(text:string, options:ParserOptions) => ParseResult} [parseForESLint] The parser options that will be enabled under this environment. + */ + +/** + * @typedef {Object} Environment + * @property {Record} [globals] The definition of global variables. + * @property {ParserOptions} [parserOptions] The parser options that will be enabled under this environment. + */ + +/** + * @typedef {Object} LintMessage + * @property {number} column The 1-based column number. + * @property {number} [endColumn] The 1-based column number of the end location. + * @property {number} [endLine] The 1-based line number of the end location. + * @property {boolean} fatal If `true` then this is a fatal error. + * @property {{range:[number,number], text:string}} [fix] Information for autofix. + * @property {number} line The 1-based line number. + * @property {string} message The error message. + * @property {string|null} ruleId The ID of the rule which makes this message. + * @property {0|1|2} severity The severity of this message. + * @property {Array<{desc?: string, messageId?: string, fix: {range: [number, number], text: string}}>} [suggestions] Information for suggestions. + */ + +/** + * @typedef {Object} SuggestionResult + * @property {string} desc A short description. + * @property {string} [messageId] Id referencing a message for the description. + * @property {{ text: string, range: number[] }} fix fix result info + */ + +/** + * @typedef {Object} Processor + * @property {(text:string, filename:string) => Array} [preprocess] The function to extract code blocks. + * @property {(messagesList:LintMessage[][], filename:string) => LintMessage[]} [postprocess] The function to merge messages. + * @property {boolean} [supportsAutofix] If `true` then it means the processor supports autofix. + */ + +/** + * @typedef {Object} RuleMetaDocs + * @property {string} category The category of the rule. + * @property {string} description The description of the rule. + * @property {boolean} recommended If `true` then the rule is included in `eslint:recommended` preset. + * @property {string} url The URL of the rule documentation. + */ + +/** + * @typedef {Object} RuleMeta + * @property {boolean} [deprecated] If `true` then the rule has been deprecated. + * @property {RuleMetaDocs} docs The document information of the rule. + * @property {"code"|"whitespace"} [fixable] The autofix type. + * @property {Record} [messages] The messages the rule reports. + * @property {string[]} [replacedBy] The IDs of the alternative rules. + * @property {Array|Object} schema The option schema of the rule. + * @property {"problem"|"suggestion"|"layout"} type The rule type. + */ + +/** + * @typedef {Object} Rule + * @property {Function} create The factory of the rule. + * @property {RuleMeta} meta The meta data of the rule. + */ + +/** + * @typedef {Object} Plugin + * @property {Record} [configs] The definition of plugin configs. + * @property {Record} [environments] The definition of plugin environments. + * @property {Record} [processors] The definition of plugin processors. + * @property {Record} [rules] The definition of plugin rules. + */ + +/** + * Information of deprecated rules. + * @typedef {Object} DeprecatedRuleInfo + * @property {string} ruleId The rule ID. + * @property {string[]} replacedBy The rule IDs that replace this deprecated rule. + */ diff --git a/node_modules/@eslint/eslintrc/package.json b/node_modules/@eslint/eslintrc/package.json new file mode 100644 index 0000000..bc99897 --- /dev/null +++ b/node_modules/@eslint/eslintrc/package.json @@ -0,0 +1,82 @@ +{ + "name": "@eslint/eslintrc", + "version": "1.3.2", + "description": "The legacy ESLintRC config file format for ESLint", + "type": "module", + "main": "./dist/eslintrc.cjs", + "exports": { + ".": { + "import": "./lib/index.js", + "require": "./dist/eslintrc.cjs" + }, + "./package.json": "./package.json", + "./universal": { + "import": "./lib/index-universal.js", + "require": "./dist/eslintrc-universal.cjs" + } + }, + "files": [ + "lib", + "conf", + "LICENSE", + "dist", + "universal.js" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "prepare": "npm run build", + "build": "rollup -c", + "lint": "eslint . --report-unused-disable-directives", + "fix": "npm run lint -- --fix", + "test": "mocha -R progress -c 'tests/lib/*.cjs' && c8 mocha -R progress -c 'tests/lib/**/*.js'", + "generate-release": "eslint-generate-release", + "generate-alpharelease": "eslint-generate-prerelease alpha", + "generate-betarelease": "eslint-generate-prerelease beta", + "generate-rcrelease": "eslint-generate-prerelease rc", + "publish-release": "eslint-publish-release" + }, + "repository": "eslint/eslintrc", + "funding": "https://opencollective.com/eslint", + "keywords": [ + "ESLint", + "ESLintRC", + "Configuration" + ], + "author": "Nicholas C. Zakas", + "license": "MIT", + "bugs": { + "url": "https://github.com/eslint/eslintrc/issues" + }, + "homepage": "https://github.com/eslint/eslintrc#readme", + "devDependencies": { + "c8": "^7.7.3", + "chai": "^4.3.4", + "eslint": "^7.31.0", + "eslint-config-eslint": "^7.0.0", + "eslint-plugin-jsdoc": "^35.4.1", + "eslint-plugin-node": "^11.1.0", + "eslint-release": "^3.2.0", + "fs-teardown": "^0.1.3", + "mocha": "^9.0.3", + "rollup": "^2.70.1", + "shelljs": "^0.8.4", + "sinon": "^11.1.2", + "temp-dir": "^2.0.0" + }, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } +} diff --git a/node_modules/@eslint/eslintrc/universal.js b/node_modules/@eslint/eslintrc/universal.js new file mode 100644 index 0000000..4e1846e --- /dev/null +++ b/node_modules/@eslint/eslintrc/universal.js @@ -0,0 +1,9 @@ +// Jest (and probably some other runtimes with custom implementations of +// `require`) doesn't support `exports` in `package.json`, so this file is here +// to help them load this module. Note that it is also `.js` and not `.cjs` for +// the same reason - `cjs` files requires to be loaded with an extension, but +// since Jest doesn't respect `module` outside of ESM mode it still works in +// this case (and the `require` in _this_ file does specify the extension). + +// eslint-disable-next-line no-undef +module.exports = require("./dist/eslintrc-universal.cjs"); diff --git a/node_modules/@humanwhocodes/config-array/CHANGELOG.md b/node_modules/@humanwhocodes/config-array/CHANGELOG.md new file mode 100644 index 0000000..f88dfc1 --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/CHANGELOG.md @@ -0,0 +1,128 @@ +# Changelog + +## [0.10.7](https://github.com/humanwhocodes/config-array/compare/v0.10.6...v0.10.7) (2022-09-29) + + +### Bug Fixes + +* Cache negated patterns separately ([fef617b](https://github.com/humanwhocodes/config-array/commit/fef617b6999f9a4b5871d4525c82c4181bc96fb7)) + +## [0.10.6](https://github.com/humanwhocodes/config-array/compare/v0.10.5...v0.10.6) (2022-09-28) + + +### Performance Improvements + +* Cache Minimatch instances ([5cf9af7](https://github.com/humanwhocodes/config-array/commit/5cf9af7ecaf227d2106be0cebd92d7f5148867e6)) + +## [0.10.5](https://github.com/humanwhocodes/config-array/compare/v0.10.4...v0.10.5) (2022-09-21) + + +### Bug Fixes + +* Improve caching to improve performance ([#50](https://github.com/humanwhocodes/config-array/issues/50)) ([8a7e8ab](https://github.com/humanwhocodes/config-array/commit/8a7e8ab499bcbb10d7cbdd676197fc686966a64e)) + +### [0.10.4](https://www.github.com/humanwhocodes/config-array/compare/v0.10.3...v0.10.4) (2022-07-29) + + +### Bug Fixes + +* Global ignores only when no other keys ([1f6b6ae](https://www.github.com/humanwhocodes/config-array/commit/1f6b6ae89152c1ebe118f55e7ea05c37e7c960dc)) +* Re-introduce ignores fixes ([b3ec560](https://www.github.com/humanwhocodes/config-array/commit/b3ec560c485bec2f7420fd63a939448b49a073e3)) + +### [0.10.3](https://www.github.com/humanwhocodes/config-array/compare/v0.10.2...v0.10.3) (2022-07-20) + + +### Bug Fixes + +* Ensure preprocess method has correct 'this' value. ([f86933a](https://www.github.com/humanwhocodes/config-array/commit/f86933a072e5a4069bab2c1ce284dedf0efa715d)) + +### [0.10.2](https://www.github.com/humanwhocodes/config-array/compare/v0.10.1...v0.10.2) (2022-03-18) + + +### Bug Fixes + +* Files outside of basePath should be ignored ([fc4d7b2](https://www.github.com/humanwhocodes/config-array/commit/fc4d7b2e851959ab9ab84305f6c78c52e9cc2c3c)) + +### [0.10.1](https://www.github.com/humanwhocodes/config-array/compare/v0.10.0...v0.10.1) (2022-03-03) + + +### Bug Fixes + +* Explicit matching is required against files field ([ab4e428](https://www.github.com/humanwhocodes/config-array/commit/ab4e4282ecea994ef88d273dc47aa24bf3c6972e)) + +## [0.10.0](https://www.github.com/humanwhocodes/config-array/compare/v0.9.5...v0.10.0) (2022-03-01) + + +### Features + +* Add isExplicitMatch() method ([9ecd90e](https://www.github.com/humanwhocodes/config-array/commit/9ecd90e2a3e984633f535daa4da3cbfb96964fdd)) + +### [0.9.5](https://www.github.com/humanwhocodes/config-array/compare/v0.9.4...v0.9.5) (2022-02-23) + + +### Bug Fixes + +* Ensure dot directories are matched correctly ([6e8d180](https://www.github.com/humanwhocodes/config-array/commit/6e8d180f43cedf3c2072d8a1229470e9fafabf5b)) +* preprocessConfig should have correct 'this' value ([9641540](https://www.github.com/humanwhocodes/config-array/commit/96415402cf0012ccf8e4af6c7b934dfc1a058986)) + +### [0.9.4](https://www.github.com/humanwhocodes/config-array/compare/v0.9.3...v0.9.4) (2022-01-27) + + +### Bug Fixes + +* Negated patterns to work when files match ([398c811](https://www.github.com/humanwhocodes/config-array/commit/398c8119d359493dc7b82b40df4d92ea6528375f)) + +### [0.9.3](https://www.github.com/humanwhocodes/config-array/compare/v0.9.2...v0.9.3) (2022-01-26) + + +### Bug Fixes + +* Make negated ignore patterns work like gitignore ([4ee8e99](https://www.github.com/humanwhocodes/config-array/commit/4ee8e998436e2c4538b06476e0bead8a44fe5a1b)) + +### [0.9.2](https://www.github.com/humanwhocodes/config-array/compare/v0.9.1...v0.9.2) (2021-11-02) + + +### Bug Fixes + +* Object merging error by upgrading object-schema ([377d06d](https://www.github.com/humanwhocodes/config-array/commit/377d06d2a44d781b0bec70b3389c48b3d5a63f94)) + +### [0.9.1](https://www.github.com/humanwhocodes/config-array/compare/v0.9.0...v0.9.1) (2021-10-05) + + +### Bug Fixes + +* Properly build package for release ([168155f](https://www.github.com/humanwhocodes/config-array/commit/168155f3fed91ab35566c452efd28debf8ec2b85)) + +## [0.9.0](https://www.github.com/humanwhocodes/config-array/compare/v0.8.0...v0.9.0) (2021-10-04) + + +### Features + +* getConfig() now returns undefined when no configs match. ([a563b82](https://www.github.com/humanwhocodes/config-array/commit/a563b8255d4eb2bb7745314e3f00ef53792b343f)) + +## [0.8.0](https://www.github.com/humanwhocodes/config-array/compare/v0.7.0...v0.8.0) (2021-10-01) + + +### Features + +* Add isIgnored() method ([343e5a0](https://www.github.com/humanwhocodes/config-array/commit/343e5a0a9e32028bfc6c0bf1ec0c6badf74f47f9)) + + +### Bug Fixes + +* Ensure global ignores are honored ([343e5a0](https://www.github.com/humanwhocodes/config-array/commit/343e5a0a9e32028bfc6c0bf1ec0c6badf74f47f9)) + +## [0.7.0](https://www.github.com/humanwhocodes/config-array/compare/v0.6.0...v0.7.0) (2021-09-24) + + +### Features + +* Only object configs by default ([5645f24](https://www.github.com/humanwhocodes/config-array/commit/5645f241b2412a3263a02ef9e3a9bd19cc86035d)) + +## [0.6.0](https://www.github.com/humanwhocodes/config-array/compare/v0.5.0...v0.6.0) (2021-04-20) + + +### Features + +* Add the normalizeSync() method ([3e347f9](https://www.github.com/humanwhocodes/config-array/commit/3e347f9d77c5ca2b15995e75ff7bc4fb96b7d66e)) +* Allow async config functions ([a9def0f](https://www.github.com/humanwhocodes/config-array/commit/a9def0faf579c223349dfe08d2486756840538c3)) diff --git a/node_modules/@humanwhocodes/config-array/LICENSE b/node_modules/@humanwhocodes/config-array/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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/node_modules/@humanwhocodes/config-array/README.md b/node_modules/@humanwhocodes/config-array/README.md new file mode 100644 index 0000000..3e24dfe --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/README.md @@ -0,0 +1,310 @@ +# Config Array + +by [Nicholas C. Zakas](https://humanwhocodes.com) + +If you find this useful, please consider supporting my work with a [donation](https://humanwhocodes.com/donate). + +## Description + +A config array is a way of managing configurations that are based on glob pattern matching of filenames. Each config array contains the information needed to determine the correct configuration for any file based on the filename. + +## Background + +In 2019, I submitted an [ESLint RFC](https://github.com/eslint/rfcs/pull/9) proposing a new way of configuring ESLint. The goal was to streamline what had become an increasingly complicated configuration process. Over several iterations, this proposal was eventually born. + +The basic idea is that all configuration, including overrides, can be represented by a single array where each item in the array is a config object. Config objects appearing later in the array override config objects appearing earlier in the array. You can calculate a config for a given file by traversing all config objects in the array to find the ones that match the filename. Matching is done by specifying glob patterns in `files` and `ignores` properties on each config object. Here's an example: + +```js +export default [ + + // match all JSON files + { + name: "JSON Handler", + files: ["**/*.json"], + handler: jsonHandler + }, + + // match only package.json + { + name: "package.json Handler", + files: ["package.json"], + handler: packageJsonHandler + } +]; +``` + +In this example, there are two config objects: the first matches all JSON files in all directories and the second matches just `package.json` in the base path directory (all the globs are evaluated as relative to a base path that can be specified). When you retrieve a configuration for `foo.json`, only the first config object matches so `handler` is equal to `jsonHandler`; when you retrieve a configuration for `package.json`, `handler` is equal to `packageJsonHandler` (because both config objects match, the second one wins). + +## Installation + +You can install the package using npm or Yarn: + +```bash +npm install @humanwhocodes/config-array --save + +# or + +yarn add @humanwhocodes/config-array +``` + +## Usage + +First, import the `ConfigArray` constructor: + +```js +import { ConfigArray } from "@humanwhocodes/config-array"; + +// or using CommonJS + +const { ConfigArray } = require("@humanwhocodes/config-array"); +``` + +When you create a new instance of `ConfigArray`, you must pass in two arguments: an array of configs and an options object. The array of configs is most likely read in from a configuration file, so here's a typical example: + +```js +const configFilename = path.resolve(process.cwd(), "my.config.js"); +const { default: rawConfigs } = await import(configFilename); +const configs = new ConfigArray(rawConfigs, { + + // the path to match filenames from + basePath: process.cwd(), + + // additional items in each config + schema: mySchema +}); +``` + +This example reads in an object or array from `my.config.js` and passes it into the `ConfigArray` constructor as the first argument. The second argument is an object specifying the `basePath` (the directory in which `my.config.js` is found) and a `schema` to define the additional properties of a config object beyond `files`, `ignores`, and `name`. + +### Specifying a Schema + +The `schema` option is required for you to use additional properties in config objects. The schema is an object that follows the format of an [`ObjectSchema`](https://npmjs.com/package/@humanwhocodes/object-schema). The schema specifies both validation and merge rules that the `ConfigArray` instance needs to combine configs when there are multiple matches. Here's an example: + +```js +const configFilename = path.resolve(process.cwd(), "my.config.js"); +const { default: rawConfigs } = await import(configFilename); + +const mySchema = { + + // define the handler key in configs + handler: { + required: true, + merge(a, b) { + if (!b) return a; + if (!a) return b; + }, + validate(value) { + if (typeof value !== "function") { + throw new TypeError("Function expected."); + } + } + } +}; + +const configs = new ConfigArray(rawConfigs, { + + // the path to match filenames from + basePath: process.cwd(), + + // additional item schemas in each config + schema: mySchema, + + // additional config types supported (default: []) + extraConfigTypes: ["array", "function"]; +}); +``` + +### Config Arrays + +Config arrays can be multidimensional, so it's possible for a config array to contain another config array when `extraConfigTypes` contains `"array"`, such as: + +```js +export default [ + + // JS config + { + files: ["**/*.js"], + handler: jsHandler + }, + + // JSON configs + [ + + // match all JSON files + { + name: "JSON Handler", + files: ["**/*.json"], + handler: jsonHandler + }, + + // match only package.json + { + name: "package.json Handler", + files: ["package.json"], + handler: packageJsonHandler + } + ], + + // filename must match function + { + files: [ filePath => filePath.endsWith(".md") ], + handler: markdownHandler + }, + + // filename must match all patterns in subarray + { + files: [ ["*.test.*", "*.js"] ], + handler: jsTestHandler + }, + + // filename must not match patterns beginning with ! + { + name: "Non-JS files", + files: ["!*.js"], + settings: { + js: false + } + } +]; +``` + +In this example, the array contains both config objects and a config array. When a config array is normalized (see details below), it is flattened so only config objects remain. However, the order of evaluation remains the same. + +If the `files` array contains a function, then that function is called with the absolute path of the file and is expected to return `true` if there is a match and `false` if not. (The `ignores` array can also contain functions.) + +If the `files` array contains an item that is an array of strings and functions, then all patterns must match in order for the config to match. In the preceding examples, both `*.test.*` and `*.js` must match in order for the config object to be used. + +If a pattern in the files array begins with `!` then it excludes that pattern. In the preceding example, any filename that doesn't end with `.js` will automatically get a `settings.js` property set to `false`. + +You can also specify an `ignores` key that will force files matching those patterns to not be included. If the `ignores` key is in a config object without any other keys, then those ignores will always be applied; otherwise those ignores act as exclusions. Here's an example: + +```js +export default [ + + // Always ignored + { + ignores: ["**/.git/**", "**/node_modules/**"] + }, + + // .eslintrc.js file is ignored only when .js file matches + { + files: ["**/*.js"], + ignores: [".eslintrc.js"] + handler: jsHandler + } +]; +``` + +You can use negated patterns in `ignores` to exclude a file that was already ignored, such as: + +```js +export default [ + + // Ignore all JSON files except tsconfig.json + { + files: ["**/*"], + ignores: ["**/*.json", "!tsconfig.json"] + }, + +]; +``` + +### Config Functions + +Config arrays can also include config functions when `extraConfigTypes` contains `"function"`. A config function accepts a single parameter, `context` (defined by you), and must return either a config object or a config array (it cannot return another function). Config functions allow end users to execute code in the creation of appropriate config objects. Here's an example: + +```js +export default [ + + // JS config + { + files: ["**/*.js"], + handler: jsHandler + }, + + // JSON configs + function (context) { + return [ + + // match all JSON files + { + name: context.name + " JSON Handler", + files: ["**/*.json"], + handler: jsonHandler + }, + + // match only package.json + { + name: context.name + " package.json Handler", + files: ["package.json"], + handler: packageJsonHandler + } + ]; + } +]; +``` + +When a config array is normalized, each function is executed and replaced in the config array with the return value. + +**Note:** Config functions can also be async. + +### Normalizing Config Arrays + +Once a config array has been created and loaded with all of the raw config data, it must be normalized before it can be used. The normalization process goes through and flattens the config array as well as executing all config functions to get their final values. + +To normalize a config array, call the `normalize()` method and pass in a context object: + +```js +await configs.normalize({ + name: "MyApp" +}); +``` + +The `normalize()` method returns a promise, so be sure to use the `await` operator. The config array instance is normalized in-place, so you don't need to create a new variable. + +If you want to disallow async config functions, you can call `normalizeSync()` instead. This method is completely synchronous and does not require using the `await` operator as it does not return a promise: + +```js +await configs.normalizeSync({ + name: "MyApp" +}); +``` + +**Important:** Once a `ConfigArray` is normalized, it cannot be changed further. You can, however, create a new `ConfigArray` and pass in the normalized instance to create an unnormalized copy. + +### Getting Config for a File + +To get the config for a file, use the `getConfig()` method on a normalized config array and pass in the filename to get a config for: + +```js +// pass in absolute filename +const fileConfig = configs.getConfig(path.resolve(process.cwd(), "package.json")); +``` + +The config array always returns an object, even if there are no configs matching the given filename. You can then inspect the returned config object to determine how to proceed. + +A few things to keep in mind: + +* You must pass in the absolute filename to get a config for. +* The returned config object never has `files`, `ignores`, or `name` properties; the only properties on the object will be the other configuration options specified. +* The config array caches configs, so subsequent calls to `getConfig()` with the same filename will return in a fast lookup rather than another calculation. +* A config will only be generated if the filename matches an entry in a `files` key. A config will not be generated without matching a `files` key (configs without a `files` key are only applied when another config with a `files` key is applied; configs without `files` are never applied on their own). + +## Caching Mechanisms + +Each `ConfigArray` aggressively caches configuration objects to avoid unnecessary work. This caching occurs in two ways: + +1. **File-based Caching.** For each filename that is passed into a method, the resulting config is cached against that filename so you're always guaranteed to get the same object returned from `getConfig()` whenever you pass the same filename in. +2. **Index-based Caching.** Whenever a config is calculated, the config elements that were used to create the config are also cached. So if a given filename matches elements 1, 5, and 7, the resulting config is cached with a key of `1,5,7`. That way, if another file is passed that matches the same config elements, the result is already known and doesn't have to be recalculated. That means two files that match all the same elements will return the same config from `getConfig()`. + +## Acknowledgements + +The design of this project was influenced by feedback on the ESLint RFC, and incorporates ideas from: + +* Teddy Katz (@not-an-aardvark) +* Toru Nagashima (@mysticatea) +* Kai Cataldo (@kaicataldo) + +## License + +Apache 2.0 diff --git a/node_modules/@humanwhocodes/config-array/api.js b/node_modules/@humanwhocodes/config-array/api.js new file mode 100644 index 0000000..b0f4b70 --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/api.js @@ -0,0 +1,808 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var path = _interopDefault(require('path')); +var minimatch = _interopDefault(require('minimatch')); +var createDebug = _interopDefault(require('debug')); +var objectSchema = require('@humanwhocodes/object-schema'); + +/** + * @fileoverview ConfigSchema + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Assets that a given value is an array. + * @param {*} value The value to check. + * @returns {void} + * @throws {TypeError} When the value is not an array. + */ +function assertIsArray(value) { + if (!Array.isArray(value)) { + throw new TypeError('Expected value to be an array.'); + } +} + +/** + * Assets that a given value is an array containing only strings and functions. + * @param {*} value The value to check. + * @returns {void} + * @throws {TypeError} When the value is not an array of strings and functions. + */ +function assertIsArrayOfStringsAndFunctions(value, name) { + assertIsArray(value); + + if (value.some(item => typeof item !== 'string' && typeof item !== 'function')) { + throw new TypeError('Expected array to only contain strings.'); + } +} + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The base schema that every ConfigArray uses. + * @type Object + */ +const baseSchema = Object.freeze({ + name: { + required: false, + merge() { + return undefined; + }, + validate(value) { + if (typeof value !== 'string') { + throw new TypeError('Property must be a string.'); + } + } + }, + files: { + required: false, + merge() { + return undefined; + }, + validate(value) { + + // first check if it's an array + assertIsArray(value); + + // then check each member + value.forEach(item => { + if (Array.isArray(item)) { + assertIsArrayOfStringsAndFunctions(item); + } else if (typeof item !== 'string' && typeof item !== 'function') { + throw new TypeError('Items must be a string, a function, or an array of strings and functions.'); + } + }); + + } + }, + ignores: { + required: false, + merge() { + return undefined; + }, + validate: assertIsArrayOfStringsAndFunctions + } +}); + +/** + * @fileoverview ConfigArray + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const Minimatch = minimatch.Minimatch; +const minimatchCache = new Map(); +const negatedMinimatchCache = new Map(); +const debug = createDebug('@hwc/config-array'); + +const MINIMATCH_OPTIONS = { + // matchBase: true, + dot: true +}; + +const CONFIG_TYPES = new Set(['array', 'function']); + +/** + * Shorthand for checking if a value is a string. + * @param {any} value The value to check. + * @returns {boolean} True if a string, false if not. + */ +function isString(value) { + return typeof value === 'string'; +} + +/** + * Wrapper around minimatch that caches minimatch patterns for + * faster matching speed over multiple file path evaluations. + * @param {string} filepath The file path to match. + * @param {string} pattern The glob pattern to match against. + * @param {object} options The minimatch options to use. + * @returns + */ +function doMatch(filepath, pattern, options) { + + let cache = minimatchCache; + + if (options.flipNegate) { + cache = negatedMinimatchCache; + } + + let matcher = cache.get(pattern); + + if (!matcher) { + matcher = new Minimatch(pattern, options); + cache.set(pattern, matcher); + } + + return matcher.match(filepath); +} + +/** + * Normalizes a `ConfigArray` by flattening it and executing any functions + * that are found inside. + * @param {Array} items The items in a `ConfigArray`. + * @param {Object} context The context object to pass into any function + * found. + * @param {Array} extraConfigTypes The config types to check. + * @returns {Promise} A flattened array containing only config objects. + * @throws {TypeError} When a config function returns a function. + */ +async function normalize(items, context, extraConfigTypes) { + + const allowFunctions = extraConfigTypes.includes('function'); + const allowArrays = extraConfigTypes.includes('array'); + + async function* flatTraverse(array) { + for (let item of array) { + if (typeof item === 'function') { + if (!allowFunctions) { + throw new TypeError('Unexpected function.'); + } + + item = item(context); + if (item.then) { + item = await item; + } + } + + if (Array.isArray(item)) { + if (!allowArrays) { + throw new TypeError('Unexpected array.'); + } + yield* flatTraverse(item); + } else if (typeof item === 'function') { + throw new TypeError('A config function can only return an object or array.'); + } else { + yield item; + } + } + } + + /* + * Async iterables cannot be used with the spread operator, so we need to manually + * create the array to return. + */ + const asyncIterable = await flatTraverse(items); + const configs = []; + + for await (const config of asyncIterable) { + configs.push(config); + } + + return configs; +} + +/** + * Normalizes a `ConfigArray` by flattening it and executing any functions + * that are found inside. + * @param {Array} items The items in a `ConfigArray`. + * @param {Object} context The context object to pass into any function + * found. + * @param {Array} extraConfigTypes The config types to check. + * @returns {Array} A flattened array containing only config objects. + * @throws {TypeError} When a config function returns a function. + */ +function normalizeSync(items, context, extraConfigTypes) { + + const allowFunctions = extraConfigTypes.includes('function'); + const allowArrays = extraConfigTypes.includes('array'); + + function* flatTraverse(array) { + for (let item of array) { + if (typeof item === 'function') { + + if (!allowFunctions) { + throw new TypeError('Unexpected function.'); + } + + item = item(context); + if (item.then) { + throw new TypeError('Async config functions are not supported.'); + } + } + + if (Array.isArray(item)) { + + if (!allowArrays) { + throw new TypeError('Unexpected array.'); + } + + yield* flatTraverse(item); + } else if (typeof item === 'function') { + throw new TypeError('A config function can only return an object or array.'); + } else { + yield item; + } + } + } + + return [...flatTraverse(items)]; +} + +/** + * Determines if a given file path should be ignored based on the given + * matcher. + * @param {Array boolean>} ignores The ignore patterns to check. + * @param {string} filePath The absolute path of the file to check. + * @param {string} relativeFilePath The relative path of the file to check. + * @returns {boolean} True if the path should be ignored and false if not. + */ +function shouldIgnoreFilePath(ignores, filePath, relativeFilePath) { + + // all files outside of the basePath are ignored + if (relativeFilePath.startsWith('..')) { + return true; + } + + let shouldIgnore = false; + + for (const matcher of ignores) { + + if (typeof matcher === 'function') { + shouldIgnore = shouldIgnore || matcher(filePath); + continue; + } + + /* + * If there's a negated pattern, that means anything matching + * must NOT be ignored. To do that, we need to use the `flipNegate` + * option for minimatch to check if the filepath matches the + * pattern specified after the !, and if that result is true, + * then we return false immediately because this file should + * never be ignored. + */ + if (matcher.startsWith('!')) { + + /* + * The file must already be ignored in order to apply a negated + * pattern, because negated patterns simply remove files that + * would already be ignored. + */ + if (shouldIgnore && + doMatch(relativeFilePath, matcher, { + ...MINIMATCH_OPTIONS, + flipNegate: true + })) { + return false; + } + } else { + shouldIgnore = shouldIgnore || doMatch(relativeFilePath, matcher, MINIMATCH_OPTIONS); + } + + } + + return shouldIgnore; +} + +/** + * Determines if a given file path is matched by a config. If the config + * has no `files` field, then it matches; otherwise, if a `files` field + * is present then we match the globs in `files` and exclude any globs in + * `ignores`. + * @param {string} filePath The absolute file path to check. + * @param {Object} config The config object to check. + * @returns {boolean} True if the file path is matched by the config, + * false if not. + */ +function pathMatches(filePath, basePath, config) { + + /* + * For both files and ignores, functions are passed the absolute + * file path while strings are compared against the relative + * file path. + */ + const relativeFilePath = path.relative(basePath, filePath); + + // if files isn't an array, throw an error + if (!Array.isArray(config.files) || config.files.length === 0) { + throw new TypeError('The files key must be a non-empty array.'); + } + + // match both strings and functions + const match = pattern => { + + if (isString(pattern)) { + return doMatch(relativeFilePath, pattern, MINIMATCH_OPTIONS); + } + + if (typeof pattern === 'function') { + return pattern(filePath); + } + + throw new TypeError(`Unexpected matcher type ${pattern}.`); + }; + + // check for all matches to config.files + let filePathMatchesPattern = config.files.some(pattern => { + if (Array.isArray(pattern)) { + return pattern.every(match); + } + + return match(pattern); + }); + + /* + * If the file path matches the config.files patterns, then check to see + * if there are any files to ignore. + */ + if (filePathMatchesPattern && config.ignores) { + filePathMatchesPattern = !shouldIgnoreFilePath(config.ignores, filePath, relativeFilePath); + } + + return filePathMatchesPattern; +} + +/** + * Ensures that a ConfigArray has been normalized. + * @param {ConfigArray} configArray The ConfigArray to check. + * @returns {void} + * @throws {Error} When the `ConfigArray` is not normalized. + */ +function assertNormalized(configArray) { + // TODO: Throw more verbose error + if (!configArray.isNormalized()) { + throw new Error('ConfigArray must be normalized to perform this operation.'); + } +} + +/** + * Ensures that config types are valid. + * @param {Array} extraConfigTypes The config types to check. + * @returns {void} + * @throws {Error} When the config types array is invalid. + */ +function assertExtraConfigTypes(extraConfigTypes) { + if (extraConfigTypes.length > 2) { + throw new TypeError('configTypes must be an array with at most two items.'); + } + + for (const configType of extraConfigTypes) { + if (!CONFIG_TYPES.has(configType)) { + throw new TypeError(`Unexpected config type "${configType}" found. Expected one of: "object", "array", "function".`); + } + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +const ConfigArraySymbol = { + isNormalized: Symbol('isNormalized'), + configCache: Symbol('configCache'), + schema: Symbol('schema'), + finalizeConfig: Symbol('finalizeConfig'), + preprocessConfig: Symbol('preprocessConfig') +}; + +// used to store calculate data for faster lookup +const dataCache = new WeakMap(); + +/** + * Represents an array of config objects and provides method for working with + * those config objects. + */ +class ConfigArray extends Array { + + /** + * Creates a new instance of ConfigArray. + * @param {Iterable|Function|Object} configs An iterable yielding config + * objects, or a config function, or a config object. + * @param {string} [options.basePath=""] The path of the config file + * @param {boolean} [options.normalized=false] Flag indicating if the + * configs have already been normalized. + * @param {Object} [options.schema] The additional schema + * definitions to use for the ConfigArray schema. + * @param {Array} [options.configTypes] List of config types supported. + */ + constructor(configs, { + basePath = '', + normalized = false, + schema: customSchema, + extraConfigTypes = [] + } = {} + ) { + super(); + + /** + * Tracks if the array has been normalized. + * @property isNormalized + * @type boolean + * @private + */ + this[ConfigArraySymbol.isNormalized] = normalized; + + /** + * The schema used for validating and merging configs. + * @property schema + * @type ObjectSchema + * @private + */ + this[ConfigArraySymbol.schema] = new objectSchema.ObjectSchema( + Object.assign({}, customSchema, baseSchema) + ); + + /** + * The path of the config file that this array was loaded from. + * This is used to calculate filename matches. + * @property basePath + * @type string + */ + this.basePath = basePath; + + assertExtraConfigTypes(extraConfigTypes); + + /** + * The supported config types. + * @property configTypes + * @type Array + */ + this.extraConfigTypes = Object.freeze([...extraConfigTypes]); + + /** + * A cache to store calculated configs for faster repeat lookup. + * @property configCache + * @type Map + * @private + */ + this[ConfigArraySymbol.configCache] = new Map(); + + // init cache + dataCache.set(this, { + explicitMatches: new Map() + }); + + // load the configs into this array + if (Array.isArray(configs)) { + this.push(...configs); + } else { + this.push(configs); + } + + } + + /** + * Prevent normal array methods from creating a new `ConfigArray` instance. + * This is to ensure that methods such as `slice()` won't try to create a + * new instance of `ConfigArray` behind the scenes as doing so may throw + * an error due to the different constructor signature. + * @returns {Function} The `Array` constructor. + */ + static get [Symbol.species]() { + return Array; + } + + /** + * Returns the `files` globs from every config object in the array. + * This can be used to determine which files will be matched by a + * config array or to use as a glob pattern when no patterns are provided + * for a command line interface. + * @returns {Array} An array of matchers. + */ + get files() { + + assertNormalized(this); + + // if this data has been cached, retrieve it + const cache = dataCache.get(this); + + if (cache.files) { + return cache.files; + } + + // otherwise calculate it + + const result = []; + + for (const config of this) { + if (config.files) { + config.files.forEach(filePattern => { + result.push(filePattern); + }); + } + } + + // store result + cache.files = result; + dataCache.set(this, cache); + + return result; + } + + /** + * Returns ignore matchers that should always be ignored regardless of + * the matching `files` fields in any configs. This is necessary to mimic + * the behavior of things like .gitignore and .eslintignore, allowing a + * globbing operation to be faster. + * @returns {string[]} An array of string patterns and functions to be ignored. + */ + get ignores() { + + assertNormalized(this); + + // if this data has been cached, retrieve it + const cache = dataCache.get(this); + + if (cache.ignores) { + return cache.ignores; + } + + // otherwise calculate it + + const result = []; + + for (const config of this) { + + /* + * We only count ignores if there are no other keys in the object. + * In this case, it acts list a globally ignored pattern. If there + * are additional keys, then ignores act like exclusions. + */ + if (config.ignores && Object.keys(config).length === 1) { + result.push(...config.ignores); + } + } + + // store result + cache.ignores = result; + dataCache.set(this, cache); + + return result; + } + + /** + * Indicates if the config array has been normalized. + * @returns {boolean} True if the config array is normalized, false if not. + */ + isNormalized() { + return this[ConfigArraySymbol.isNormalized]; + } + + /** + * Normalizes a config array by flattening embedded arrays and executing + * config functions. + * @param {ConfigContext} context The context object for config functions. + * @returns {Promise} The current ConfigArray instance. + */ + async normalize(context = {}) { + + if (!this.isNormalized()) { + const normalizedConfigs = await normalize(this, context, this.extraConfigTypes); + this.length = 0; + this.push(...normalizedConfigs.map(this[ConfigArraySymbol.preprocessConfig].bind(this))); + this[ConfigArraySymbol.isNormalized] = true; + + // prevent further changes + Object.freeze(this); + } + + return this; + } + + /** + * Normalizes a config array by flattening embedded arrays and executing + * config functions. + * @param {ConfigContext} context The context object for config functions. + * @returns {ConfigArray} The current ConfigArray instance. + */ + normalizeSync(context = {}) { + + if (!this.isNormalized()) { + const normalizedConfigs = normalizeSync(this, context, this.extraConfigTypes); + this.length = 0; + this.push(...normalizedConfigs.map(this[ConfigArraySymbol.preprocessConfig].bind(this))); + this[ConfigArraySymbol.isNormalized] = true; + + // prevent further changes + Object.freeze(this); + } + + return this; + } + + /** + * Finalizes the state of a config before being cached and returned by + * `getConfig()`. Does nothing by default but is provided to be + * overridden by subclasses as necessary. + * @param {Object} config The config to finalize. + * @returns {Object} The finalized config. + */ + [ConfigArraySymbol.finalizeConfig](config) { + return config; + } + + /** + * Preprocesses a config during the normalization process. This is the + * method to override if you want to convert an array item before it is + * validated for the first time. For example, if you want to replace a + * string with an object, this is the method to override. + * @param {Object} config The config to preprocess. + * @returns {Object} The config to use in place of the argument. + */ + [ConfigArraySymbol.preprocessConfig](config) { + return config; + } + + /** + * Determines if a given file path explicitly matches a `files` entry + * and also doesn't match an `ignores` entry. Configs that don't have + * a `files` property are not considered an explicit match. + * @param {string} filePath The complete path of a file to check. + * @returns {boolean} True if the file path matches a `files` entry + * or false if not. + */ + isExplicitMatch(filePath) { + + assertNormalized(this); + + const cache = dataCache.get(this); + + // first check the cache to avoid duplicate work + let result = cache.explicitMatches.get(filePath); + + if (typeof result == 'boolean') { + return result; + } + + // TODO: Maybe move elsewhere? Maybe combine with getConfig() logic? + const relativeFilePath = path.relative(this.basePath, filePath); + + if (shouldIgnoreFilePath(this.ignores, filePath, relativeFilePath)) { + debug(`Ignoring ${filePath}`); + + // cache and return result + cache.explicitMatches.set(filePath, false); + return false; + } + + // filePath isn't automatically ignored, so try to find a match + + for (const config of this) { + + if (!config.files) { + continue; + } + + if (pathMatches(filePath, this.basePath, config)) { + debug(`Matching config found for ${filePath}`); + cache.explicitMatches.set(filePath, true); + return true; + } + } + + return false; + } + + /** + * Returns the config object for a given file path. + * @param {string} filePath The complete path of a file to get a config for. + * @returns {Object} The config object for this file. + */ + getConfig(filePath) { + + assertNormalized(this); + + const cache = this[ConfigArraySymbol.configCache]; + + // first check the cache for a filename match to avoid duplicate work + let finalConfig = cache.get(filePath); + + if (finalConfig) { + return finalConfig; + } + + // next check to see if the file should be ignored + + // TODO: Maybe move elsewhere? + const relativeFilePath = path.relative(this.basePath, filePath); + + if (shouldIgnoreFilePath(this.ignores, filePath, relativeFilePath)) { + debug(`Ignoring ${filePath}`); + + // cache and return result - finalConfig is undefined at this point + cache.set(filePath, finalConfig); + return finalConfig; + } + + // filePath isn't automatically ignored, so try to construct config + + const matchingConfigIndices = []; + let matchFound = false; + + this.forEach((config, index) => { + + if (!config.files) { + debug(`Universal config found for ${filePath}`); + matchingConfigIndices.push(index); + return; + } + + if (pathMatches(filePath, this.basePath, config)) { + debug(`Matching config found for ${filePath}`); + matchingConfigIndices.push(index); + matchFound = true; + return; + } + + }); + + // if matching both files and ignores, there will be no config to create + if (!matchFound) { + debug(`No matching configs found for ${filePath}`); + + // cache and return result - finalConfig is undefined at this point + cache.set(filePath, finalConfig); + return finalConfig; + } + + // check to see if there is a config cached by indices + finalConfig = cache.get(matchingConfigIndices.toString()); + + if (finalConfig) { + + // also store for filename for faster lookup next time + cache.set(filePath, finalConfig); + + return finalConfig; + } + + // otherwise construct the config + + finalConfig = matchingConfigIndices.reduce((result, index) => { + return this[ConfigArraySymbol.schema].merge(result, this[index]); + }, {}, this); + + finalConfig = this[ConfigArraySymbol.finalizeConfig](finalConfig); + + cache.set(filePath, finalConfig); + cache.set(matchingConfigIndices.toString(), finalConfig); + + return finalConfig; + } + + /** + * Determines if the given filepath is ignored based on the configs. + * @param {string} filePath The complete path of a file to check. + * @returns {boolean} True if the path is ignored, false if not. + */ + isIgnored(filePath) { + return this.getConfig(filePath) === undefined; + } + +} + +exports.ConfigArray = ConfigArray; +exports.ConfigArraySymbol = ConfigArraySymbol; diff --git a/node_modules/@humanwhocodes/config-array/package.json b/node_modules/@humanwhocodes/config-array/package.json new file mode 100644 index 0000000..cedda5c --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/package.json @@ -0,0 +1,60 @@ +{ + "name": "@humanwhocodes/config-array", + "version": "0.10.7", + "description": "Glob-based configuration matching.", + "author": "Nicholas C. Zakas", + "main": "api.js", + "files": [ + "api.js" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/humanwhocodes/config-array.git" + }, + "bugs": { + "url": "https://github.com/humanwhocodes/config-array/issues" + }, + "homepage": "https://github.com/humanwhocodes/config-array#readme", + "scripts": { + "build": "rollup -c", + "format": "nitpik", + "lint": "eslint *.config.js src/*.js tests/*.js", + "prepublish": "npm run build", + "test:coverage": "nyc --include src/*.js npm run test", + "test": "mocha -r esm tests/ --recursive" + }, + "gitHooks": { + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.js": [ + "eslint --fix --ignore-pattern '!.eslintrc.js'" + ] + }, + "keywords": [ + "configuration", + "configarray", + "config file" + ], + "license": "Apache-2.0", + "engines": { + "node": ">=10.10.0" + }, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "devDependencies": { + "@nitpik/javascript": "0.4.0", + "@nitpik/node": "0.0.5", + "chai": "4.2.0", + "eslint": "8.24.0", + "esm": "3.2.25", + "lint-staged": "13.0.3", + "mocha": "6.2.3", + "nyc": "14.1.1", + "rollup": "1.16.6", + "yorkie": "2.0.0" + } +} diff --git a/node_modules/@humanwhocodes/gitignore-to-minimatch/LICENSE b/node_modules/@humanwhocodes/gitignore-to-minimatch/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/node_modules/@humanwhocodes/gitignore-to-minimatch/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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/node_modules/@humanwhocodes/gitignore-to-minimatch/README.md b/node_modules/@humanwhocodes/gitignore-to-minimatch/README.md new file mode 100644 index 0000000..1f457a5 --- /dev/null +++ b/node_modules/@humanwhocodes/gitignore-to-minimatch/README.md @@ -0,0 +1,78 @@ +# Gitignore to Minimatch Utility + +by [Nicholas C. Zakas](https://humanwhocodes.com) + +If you find this useful, please consider supporting my work with a [donation](https://humanwhocodes.com/donate). + +## Description + +A function that converts a [gitignore](https://git-scm.com/docs/gitignore#_pattern_format) pattern into a [minimatch](https://github.com/isaacs/minimatch) pattern. There are subtle differences between these two formats, and depending on the utilities you're using, you may need one or the other. + +## Usage + +### Node.js + +Install using [npm][npm] or [yarn][yarn]: + +``` +npm install @humanwhocodes/gitignore-to-minimatch --save + +# or + +yarn add @humanwhocodes/gitignore-to-minimatch +``` + +Import into your Node.js project: + +```js +// CommonJS +const { gitignoreToMinimatch } = require("@humanwhocodes/gitignore-to-minimatch"); + +// ESM +import { gitignoreToMinimatch } from "@humanwhocodes/gitignore-to-minimatch"; +``` + +### Deno + +Import into your Deno project: + +```js +import { gitignoreToMinimatch } from "https://cdn.skypack.dev/@humanwhocodes/gitignore-to-minimatch?dts"; +``` + +### Browser + +It's recommended to import the minified version to save bandwidth: + +```js +import { gitignoreToMinimatch } from "https://cdn.skypack.dev/@humanwhocodes/gitignore-to-minimatch?min"; +``` + +However, you can also import the unminified version for debugging purposes: + +```js +import { gitignoreToMinimatch } from "https://cdn.skypack.dev/@humanwhocodes/gitignore-to-minimatch"; +``` + +## API + +After importing, call `gitignoreToMinimatch` with a string argument, like this: + +```js +const minimatchPattern = gitignoreToMinimatch("foo"); +console.log(minimatchPattern); // "**/foo" +``` + +## Developer Setup + +1. Fork the repository +2. Clone your fork +3. Run `npm install` to setup dependencies +4. Run `npm test` to run tests + +## License + +Apache 2.0 + +[npm]: https://npmjs.com/ +[yarn]: https://yarnpkg.com/ diff --git a/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.cjs b/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.cjs new file mode 100644 index 0000000..110bb2d --- /dev/null +++ b/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.cjs @@ -0,0 +1,71 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +/** + * @fileoverview Utility to convert gitignore patterns to minimatch. + * @author Nicholas C. Zakas + */ + +/** + * Converts a gitignore pattern to a minimatch pattern. + * @param {string} pattern The gitignore pattern to convert. + * @returns {string} A minimatch pattern equivalent to `pattern`. + */ +function gitignoreToMinimatch(pattern) { + + if (typeof pattern !== "string") { + throw new TypeError("Argument must be a string."); + } + + // Special case: Empty string + if (!pattern) { + return pattern; + } + + // strip off negation to make life easier + const negated = pattern.startsWith("!"); + let patternToTest = negated ? pattern.slice(1) : pattern; + let result = patternToTest; + let leadingSlash = false; + + // strip off leading slash + if (patternToTest[0] === "/") { + leadingSlash = true; + result = patternToTest.slice(1); + } + + // For the most part, the first character determines what to do + switch (result[0]) { + + case "*": + if (patternToTest[1] !== "*") { + result = "**/" + result; + } + break; + + default: + if (!leadingSlash && !result.includes("/") || result.endsWith("/")) { + result = "**/" + result; + } + + // no further changes if the pattern ends with a wildcard + if (result.endsWith("*") || result.endsWith("?")) { + break; + } + + // differentiate between filenames and directory names + if (!/\.[a-z\d_-]+$/.test(result)) { + if (!result.endsWith("/")) { + result += "/"; + } + + result += "**"; + } + } + + return negated ? "!" + result : result; + +} + +exports.gitignoreToMinimatch = gitignoreToMinimatch; diff --git a/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.d.ts b/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.d.ts new file mode 100644 index 0000000..921272c --- /dev/null +++ b/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.d.ts @@ -0,0 +1,10 @@ +/** + * @fileoverview Utility to convert gitignore patterns to minimatch. + * @author Nicholas C. Zakas + */ +/** + * Converts a gitignore pattern to a minimatch pattern. + * @param {string} pattern The gitignore pattern to convert. + * @returns {string} A minimatch pattern equivalent to `pattern`. + */ +export function gitignoreToMinimatch(pattern: string): string; diff --git a/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.js b/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.js new file mode 100644 index 0000000..8c4d171 --- /dev/null +++ b/node_modules/@humanwhocodes/gitignore-to-minimatch/dist/gitignore-to-minimatch.js @@ -0,0 +1,67 @@ +/** + * @fileoverview Utility to convert gitignore patterns to minimatch. + * @author Nicholas C. Zakas + */ + +/** + * Converts a gitignore pattern to a minimatch pattern. + * @param {string} pattern The gitignore pattern to convert. + * @returns {string} A minimatch pattern equivalent to `pattern`. + */ +function gitignoreToMinimatch(pattern) { + + if (typeof pattern !== "string") { + throw new TypeError("Argument must be a string."); + } + + // Special case: Empty string + if (!pattern) { + return pattern; + } + + // strip off negation to make life easier + const negated = pattern.startsWith("!"); + let patternToTest = negated ? pattern.slice(1) : pattern; + let result = patternToTest; + let leadingSlash = false; + + // strip off leading slash + if (patternToTest[0] === "/") { + leadingSlash = true; + result = patternToTest.slice(1); + } + + // For the most part, the first character determines what to do + switch (result[0]) { + + case "*": + if (patternToTest[1] !== "*") { + result = "**/" + result; + } + break; + + default: + if (!leadingSlash && !result.includes("/") || result.endsWith("/")) { + result = "**/" + result; + } + + // no further changes if the pattern ends with a wildcard + if (result.endsWith("*") || result.endsWith("?")) { + break; + } + + // differentiate between filenames and directory names + if (!/\.[a-z\d_-]+$/.test(result)) { + if (!result.endsWith("/")) { + result += "/"; + } + + result += "**"; + } + } + + return negated ? "!" + result : result; + +} + +export { gitignoreToMinimatch }; diff --git a/node_modules/@humanwhocodes/gitignore-to-minimatch/package.json b/node_modules/@humanwhocodes/gitignore-to-minimatch/package.json new file mode 100644 index 0000000..3a6ea6b --- /dev/null +++ b/node_modules/@humanwhocodes/gitignore-to-minimatch/package.json @@ -0,0 +1,61 @@ +{ + "name": "@humanwhocodes/gitignore-to-minimatch", + "version": "1.0.2", + "description": "Utility to convert gitignore patterns to minimatch patterns", + "type": "module", + "main": "dist/gitignore-to-minimatch.cjs", + "module": "dist/gitignore-to-minimatch.js", + "types": "dist/gitignore-to-minimatch.d.ts", + "exports": { + "require": "./dist/gitignore-to-minimatch.cjs", + "import": "./dist/gitignore-to-minimatch.js" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "gitHooks": { + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.js": [ + "eslint --fix" + ] + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + }, + "scripts": { + "build": "rollup -c && tsc", + "prepare": "npm run build", + "lint": "eslint src/ tests/", + "lint:fix": "eslint src/ tests/", + "pretest": "npm run build", + "test:unit": "mocha tests/gitignore-to-minimatch.test.js", + "test:build": "node tests/pkg.test.cjs && node tests/pkg.test.mjs", + "test": "npm run test:unit && npm run test:build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/humanwhocodes/gitignore-to-minimatch.git" + }, + "keywords": [ + "gitignore", + "minimatch", + "glob" + ], + "author": "Nicholas C. Zaks", + "license": "Apache-2.0", + "devDependencies": { + "chai": "^4.3.4", + "eslint": "^7.32.0", + "lint-staged": "^10.4.0", + "mocha": "^9.0.3", + "rollup": "^1.20.3", + "typescript": "^4.0.3", + "yorkie": "^2.0.0" + } +} diff --git a/node_modules/@humanwhocodes/module-importer/CHANGELOG.md b/node_modules/@humanwhocodes/module-importer/CHANGELOG.md new file mode 100644 index 0000000..1b442a1 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +## [1.0.1](https://github.com/humanwhocodes/module-importer/compare/v1.0.0...v1.0.1) (2022-08-18) + + +### Bug Fixes + +* Ensure CommonJS mode works correctly. ([cf54a0b](https://github.com/humanwhocodes/module-importer/commit/cf54a0b998085066fbe1776dd0b4cacd808cc192)), closes [#6](https://github.com/humanwhocodes/module-importer/issues/6) + +## 1.0.0 (2022-08-17) + + +### Features + +* Implement ModuleImporter ([3ce4e82](https://www.github.com/humanwhocodes/module-importer/commit/3ce4e820c30c114e787bfed00a0966ac4772f563)) diff --git a/node_modules/@humanwhocodes/module-importer/LICENSE b/node_modules/@humanwhocodes/module-importer/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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/node_modules/@humanwhocodes/module-importer/README.md b/node_modules/@humanwhocodes/module-importer/README.md new file mode 100644 index 0000000..3de07a7 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/README.md @@ -0,0 +1,80 @@ +# ModuleImporter + +by [Nicholas C. Zakas](https://humanwhocodes.com) + +If you find this useful, please consider supporting my work with a [donation](https://humanwhocodes.com/donate). + +## Description + +A utility for seamlessly importing modules in Node.js regardless if they are CommonJS or ESM format. Under the hood, this uses `import()` and relies on Node.js's CommonJS compatibility to work correctly. This ensures that the correct locations and formats are used for CommonJS so you can call one method and not worry about any compatibility issues. + +The problem with the default `import()` is that it always resolves relative to the file location in which it is called. If you want to resolve from a different location, you need to jump through a few hoops to achieve that. This package makes it easy to both resolve and import modules from any directory. + +## Usage + +### Node.js + +Install using [npm][npm] or [yarn][yarn]: + +``` +npm install @humanwhocodes/module-importer + +# or + +yarn add @humanwhocodes/module-importer +``` + +Import into your Node.js project: + +```js +// CommonJS +const { ModuleImporter } = require("@humanwhocodes/module-importer"); + +// ESM +import { ModuleImporter } from "@humanwhocodes/module-importer"; +``` + +### Bun + +Install using this command: + +``` +bun add @humanwhocodes/module-importer +``` + +Import into your Bun project: + +```js +import { ModuleImporter } from "@humanwhocodes/module-importer"; +``` + +## API + +After importing, create a new instance of `ModuleImporter` to start emitting events: + +```js +// cwd can be omitted to use process.cwd() +const importer = new ModuleImporter(cwd); + +// you can resolve the location of any package +const location = importer.resolve("./some-file.cjs"); + +// you can also import directly +const module = importer.import("./some-file.cjs"); +``` + +For both `resolve()` and `import()`, you can pass in package names and filenames. + +## Developer Setup + +1. Fork the repository +2. Clone your fork +3. Run `npm install` to setup dependencies +4. Run `npm test` to run tests + +## License + +Apache 2.0 + +[npm]: https://npmjs.com/ +[yarn]: https://yarnpkg.com/ diff --git a/node_modules/@humanwhocodes/module-importer/dist/module-importer.cjs b/node_modules/@humanwhocodes/module-importer/dist/module-importer.cjs new file mode 100644 index 0000000..779e0cf --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/dist/module-importer.cjs @@ -0,0 +1,22 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var module$1 = require('module'); +var url = require('url'); +var path = require('path'); + +/** + * @fileoverview Universal module importer + */ + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const __filename$1 = url.fileURLToPath((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('module-importer.cjs', document.baseURI).href))); +const __dirname$1 = path.dirname(__filename$1); +const require$1 = module$1.createRequire(__dirname$1 + "/"); +const { ModuleImporter } = require$1("./module-importer.cjs"); + +exports.ModuleImporter = ModuleImporter; diff --git a/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.cts b/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.cts new file mode 100644 index 0000000..a1acbb6 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.cts @@ -0,0 +1,27 @@ +export class ModuleImporter { + /** + * Creates a new instance. + * @param {string} [cwd] The current working directory to resolve from. + */ + constructor(cwd?: string); + /** + * The base directory from which paths should be resolved. + * @type {string} + */ + cwd: string; + /** + * Resolves a module based on its name or location. + * @param {string} specifier Either an npm package name or + * relative file path. + * @returns {string|undefined} The location of the import. + * @throws {Error} If specifier cannot be located. + */ + resolve(specifier: string): string | undefined; + /** + * Imports a module based on its name or location. + * @param {string} specifier Either an npm package name or + * relative file path. + * @returns {Promise} The module's object. + */ + import(specifier: string): Promise; +} diff --git a/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.ts b/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.ts new file mode 100644 index 0000000..498f0a2 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.ts @@ -0,0 +1,2 @@ +export { ModuleImporter }; +import { ModuleImporter } from "./module-importer.cjs"; diff --git a/node_modules/@humanwhocodes/module-importer/dist/module-importer.js b/node_modules/@humanwhocodes/module-importer/dist/module-importer.js new file mode 100644 index 0000000..26e052d --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/dist/module-importer.js @@ -0,0 +1,18 @@ +import { createRequire } from 'module'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; + +/** + * @fileoverview Universal module importer + */ + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const require = createRequire(__dirname + "/"); +const { ModuleImporter } = require("./module-importer.cjs"); + +export { ModuleImporter }; diff --git a/node_modules/@humanwhocodes/module-importer/package.json b/node_modules/@humanwhocodes/module-importer/package.json new file mode 100644 index 0000000..8ece071 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/package.json @@ -0,0 +1,65 @@ +{ + "name": "@humanwhocodes/module-importer", + "version": "1.0.1", + "description": "Universal module importer for Node.js", + "main": "src/module-importer.cjs", + "module": "src/module-importer.js", + "type": "module", + "types": "dist/module-importer.d.ts", + "exports": { + "require": "./src/module-importer.cjs", + "import": "./src/module-importer.js" + }, + "files": [ + "dist", + "src" + ], + "publishConfig": { + "access": "public" + }, + "gitHooks": { + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.js": [ + "eslint --fix" + ] + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + }, + "scripts": { + "build": "rollup -c && tsc", + "prepare": "npm run build", + "lint": "eslint src/ tests/", + "test:unit": "c8 mocha tests/module-importer.test.js", + "test:build": "node tests/pkg.test.cjs && node tests/pkg.test.mjs", + "test": "npm run test:unit && npm run test:build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/humanwhocodes/module-importer.git" + }, + "keywords": [ + "modules", + "esm", + "commonjs" + ], + "engines": { + "node": ">=12.22" + }, + "author": "Nicholas C. Zaks", + "license": "Apache-2.0", + "devDependencies": { + "@types/node": "^18.7.6", + "c8": "7.12.0", + "chai": "4.3.6", + "eslint": "8.22.0", + "lint-staged": "13.0.3", + "mocha": "9.2.2", + "rollup": "2.78.0", + "typescript": "4.7.4", + "yorkie": "2.0.0" + } +} diff --git a/node_modules/@humanwhocodes/module-importer/src/module-importer.cjs b/node_modules/@humanwhocodes/module-importer/src/module-importer.cjs new file mode 100644 index 0000000..3efb095 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/src/module-importer.cjs @@ -0,0 +1,81 @@ +/** + * @fileoverview Universal module importer + */ + +//----------------------------------------------------------------------------- +// Imports +//----------------------------------------------------------------------------- + +const { createRequire } = require("module"); +const { pathToFileURL } = require("url"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const SLASHES = new Set(["/", "\\"]); + +/** + * Normalizes directories to have a trailing slash. + * Resolve is pretty finicky -- if the directory name doesn't have + * a trailing slash then it tries to look in the parent directory. + * i.e., if the directory is "/usr/nzakas/foo" it will start the + * search in /usr/nzakas. However, if the directory is "/user/nzakas/foo/", + * then it will start the search in /user/nzakas/foo. + * @param {string} directory The directory to check. + * @returns {string} The normalized directory. + */ +function normalizeDirectory(directory) { + if (!SLASHES.has(directory[directory.length-1])) { + return directory + "/"; + } + + return directory; +} + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * Class for importing both CommonJS and ESM modules in Node.js. + */ +exports.ModuleImporter = class ModuleImporter { + + /** + * Creates a new instance. + * @param {string} [cwd] The current working directory to resolve from. + */ + constructor(cwd = process.cwd()) { + + /** + * The base directory from which paths should be resolved. + * @type {string} + */ + this.cwd = normalizeDirectory(cwd); + } + + /** + * Resolves a module based on its name or location. + * @param {string} specifier Either an npm package name or + * relative file path. + * @returns {string|undefined} The location of the import. + * @throws {Error} If specifier cannot be located. + */ + resolve(specifier) { + const require = createRequire(this.cwd); + return require.resolve(specifier); + } + + /** + * Imports a module based on its name or location. + * @param {string} specifier Either an npm package name or + * relative file path. + * @returns {Promise} The module's object. + */ + import(specifier) { + const location = this.resolve(specifier); + return import(pathToFileURL(location).href); + } + +} diff --git a/node_modules/@humanwhocodes/module-importer/src/module-importer.js b/node_modules/@humanwhocodes/module-importer/src/module-importer.js new file mode 100644 index 0000000..f5464e1 --- /dev/null +++ b/node_modules/@humanwhocodes/module-importer/src/module-importer.js @@ -0,0 +1,22 @@ +/** + * @fileoverview Universal module importer + */ + +//----------------------------------------------------------------------------- +// Imports +//----------------------------------------------------------------------------- + +import { createRequire } from "module"; +import { fileURLToPath } from "url"; +import { dirname } from "path"; + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const require = createRequire(__dirname + "/"); +const { ModuleImporter } = require("./module-importer.cjs"); + +export { ModuleImporter }; diff --git a/node_modules/@humanwhocodes/object-schema/.eslintrc.js b/node_modules/@humanwhocodes/object-schema/.eslintrc.js new file mode 100644 index 0000000..4934076 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/.eslintrc.js @@ -0,0 +1,29 @@ +module.exports = { + "env": { + "commonjs": true, + "es6": true, + "node": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 2018 + }, + "rules": { + "indent": [ + "error", + 4 + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "double" + ], + "semi": [ + "error", + "always" + ] + } +}; \ No newline at end of file diff --git a/node_modules/@humanwhocodes/object-schema/.github/workflows/nodejs-test.yml b/node_modules/@humanwhocodes/object-schema/.github/workflows/nodejs-test.yml new file mode 100644 index 0000000..8ea1951 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/.github/workflows/nodejs-test.yml @@ -0,0 +1,27 @@ +name: Node CI + +on: [push, pull_request] + +jobs: + build: + + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [windows-latest, macOS-latest, ubuntu-latest] + node: [8.x, 10.x, 12.x, 14.x] + + steps: + - uses: actions/checkout@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: npm install, build, and test + run: | + npm install + npm run build --if-present + npm test + env: + CI: true diff --git a/node_modules/@humanwhocodes/object-schema/.github/workflows/release-please.yml b/node_modules/@humanwhocodes/object-schema/.github/workflows/release-please.yml new file mode 100644 index 0000000..42f75f7 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/.github/workflows/release-please.yml @@ -0,0 +1,39 @@ +on: + push: + branches: + - main +name: release-please +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: GoogleCloudPlatform/release-please-action@v2 + id: release + with: + release-type: node + package-name: test-release-please + # The logic below handles the npm publication: + - uses: actions/checkout@v2 + # these if statements ensure that a publication only occurs when + # a new release is created: + if: ${{ steps.release.outputs.release_created }} + - uses: actions/setup-node@v1 + with: + node-version: 12 + registry-url: 'https://registry.npmjs.org' + if: ${{ steps.release.outputs.release_created }} + - run: npm ci + if: ${{ steps.release.outputs.release_created }} + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + if: ${{ steps.release.outputs.release_created }} + + # Tweets out release announcement + - run: 'npx @humanwhocodes/tweet "Object Schema v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} has been released!\n\n${{ github.event.release.html_url }}"' + if: ${{ steps.release.outputs.release_created }} + env: + TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} + TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} + TWITTER_ACCESS_TOKEN_KEY: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} + TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} diff --git a/node_modules/@humanwhocodes/object-schema/CHANGELOG.md b/node_modules/@humanwhocodes/object-schema/CHANGELOG.md new file mode 100644 index 0000000..bb63f5f --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +### [1.2.1](https://www.github.com/humanwhocodes/object-schema/compare/v1.2.0...v1.2.1) (2021-11-02) + + +### Bug Fixes + +* Never return original object from individual config ([5463c5c](https://www.github.com/humanwhocodes/object-schema/commit/5463c5c6d2cb35a7b7948dffc37c899a41d1775f)) diff --git a/node_modules/@humanwhocodes/object-schema/LICENSE b/node_modules/@humanwhocodes/object-schema/LICENSE new file mode 100644 index 0000000..a5e3ae4 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2019, Human Who Codes +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@humanwhocodes/object-schema/README.md b/node_modules/@humanwhocodes/object-schema/README.md new file mode 100644 index 0000000..2163797 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/README.md @@ -0,0 +1,234 @@ +# JavaScript ObjectSchema Package + +by [Nicholas C. Zakas](https://humanwhocodes.com) + +If you find this useful, please consider supporting my work with a [donation](https://humanwhocodes.com/donate). + +## Overview + +A JavaScript object merge/validation utility where you can define a different merge and validation strategy for each key. This is helpful when you need to validate complex data structures and then merge them in a way that is more complex than `Object.assign()`. + +## Installation + +You can install using either npm: + +``` +npm install @humanwhocodes/object-schema +``` + +Or Yarn: + +``` +yarn add @humanwhocodes/object-schema +``` + +## Usage + +Use CommonJS to get access to the `ObjectSchema` constructor: + +```js +const { ObjectSchema } = require("@humanwhocodes/object-schema"); + +const schema = new ObjectSchema({ + + // define a definition for the "downloads" key + downloads: { + required: true, + merge(value1, value2) { + return value1 + value2; + }, + validate(value) { + if (typeof value !== "number") { + throw new Error("Expected downloads to be a number."); + } + } + }, + + // define a strategy for the "versions" key + version: { + required: true, + merge(value1, value2) { + return value1.concat(value2); + }, + validate(value) { + if (!Array.isArray(value)) { + throw new Error("Expected versions to be an array."); + } + } + } +}); + +const record1 = { + downloads: 25, + versions: [ + "v1.0.0", + "v1.1.0", + "v1.2.0" + ] +}; + +const record2 = { + downloads: 125, + versions: [ + "v2.0.0", + "v2.1.0", + "v3.0.0" + ] +}; + +// make sure the records are valid +schema.validate(record1); +schema.validate(record2); + +// merge together (schema.merge() accepts any number of objects) +const result = schema.merge(record1, record2); + +// result looks like this: + +const result = { + downloads: 75, + versions: [ + "v1.0.0", + "v1.1.0", + "v1.2.0", + "v2.0.0", + "v2.1.0", + "v3.0.0" + ] +}; +``` + +## Tips and Tricks + +### Named merge strategies + +Instead of specifying a `merge()` method, you can specify one of the following strings to use a default merge strategy: + +* `"assign"` - use `Object.assign()` to merge the two values into one object. +* `"overwrite"` - the second value always replaces the first. +* `"replace"` - the second value replaces the first if the second is not `undefined`. + +For example: + +```js +const schema = new ObjectSchema({ + name: { + merge: "replace", + validate() {} + } +}); +``` + +### Named validation strategies + +Instead of specifying a `validate()` method, you can specify one of the following strings to use a default validation strategy: + +* `"array"` - value must be an array. +* `"boolean"` - value must be a boolean. +* `"number"` - value must be a number. +* `"object"` - value must be an object. +* `"object?"` - value must be an object or null. +* `"string"` - value must be a string. +* `"string!"` - value must be a non-empty string. + +For example: + +```js +const schema = new ObjectSchema({ + name: { + merge: "replace", + validate: "string" + } +}); +``` + +### Subschemas + +If you are defining a key that is, itself, an object, you can simplify the process by using a subschema. Instead of defining `merge()` and `validate()`, assign a `schema` key that contains a schema definition, like this: + +```js +const schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } +}); + +schema.validate({ + name: { + first: "n", + last: "z" + } +}); +``` + +### Remove Keys During Merge + +If the merge strategy for a key returns `undefined`, then the key will not appear in the final object. For example: + +```js +const schema = new ObjectSchema({ + date: { + merge() { + return undefined; + }, + validate(value) { + Date.parse(value); // throws an error when invalid + } + } +}); + +const object1 = { date: "5/5/2005" }; +const object2 = { date: "6/6/2006" }; + +const result = schema.merge(object1, object2); + +console.log("date" in result); // false +``` + +### Requiring Another Key Be Present + +If you'd like the presence of one key to require the presence of another key, you can use the `requires` property to specify an array of other properties that any key requires. For example: + +```js +const schema = new ObjectSchema(); + +const schema = new ObjectSchema({ + date: { + merge() { + return undefined; + }, + validate(value) { + Date.parse(value); // throws an error when invalid + } + }, + time: { + requires: ["date"], + merge(first, second) { + return second; + }, + validate(value) { + // ... + } + } +}); + +// throws error: Key "time" requires keys "date" +schema.validate({ + time: "13:45" +}); +``` + +In this example, even though `date` is an optional key, it is required to be present whenever `time` is present. + +## License + +BSD 3-Clause diff --git a/node_modules/@humanwhocodes/object-schema/package.json b/node_modules/@humanwhocodes/object-schema/package.json new file mode 100644 index 0000000..9fc90bf --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/package.json @@ -0,0 +1,33 @@ +{ + "name": "@humanwhocodes/object-schema", + "version": "1.2.1", + "description": "An object schema merger/validator", + "main": "src/index.js", + "directories": { + "test": "tests" + }, + "scripts": { + "test": "mocha tests/" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/humanwhocodes/object-schema.git" + }, + "keywords": [ + "object", + "validation", + "schema", + "merge" + ], + "author": "Nicholas C. Zakas", + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/humanwhocodes/object-schema/issues" + }, + "homepage": "https://github.com/humanwhocodes/object-schema#readme", + "devDependencies": { + "chai": "^4.2.0", + "eslint": "^5.13.0", + "mocha": "^5.2.0" + } +} diff --git a/node_modules/@humanwhocodes/object-schema/src/index.js b/node_modules/@humanwhocodes/object-schema/src/index.js new file mode 100644 index 0000000..b2bc4fb --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/index.js @@ -0,0 +1,7 @@ +/** + * @filedescription Object Schema Package + */ + +exports.ObjectSchema = require("./object-schema").ObjectSchema; +exports.MergeStrategy = require("./merge-strategy").MergeStrategy; +exports.ValidationStrategy = require("./validation-strategy").ValidationStrategy; diff --git a/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js b/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js new file mode 100644 index 0000000..8217449 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js @@ -0,0 +1,53 @@ +/** + * @filedescription Merge Strategy + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +/** + * Container class for several different merge strategies. + */ +class MergeStrategy { + + /** + * Merges two keys by overwriting the first with the second. + * @param {*} value1 The value from the first object key. + * @param {*} value2 The value from the second object key. + * @returns {*} The second value. + */ + static overwrite(value1, value2) { + return value2; + } + + /** + * Merges two keys by replacing the first with the second only if the + * second is defined. + * @param {*} value1 The value from the first object key. + * @param {*} value2 The value from the second object key. + * @returns {*} The second value if it is defined. + */ + static replace(value1, value2) { + if (typeof value2 !== "undefined") { + return value2; + } + + return value1; + } + + /** + * Merges two properties by assigning properties from the second to the first. + * @param {*} value1 The value from the first object key. + * @param {*} value2 The value from the second object key. + * @returns {*} A new object containing properties from both value1 and + * value2. + */ + static assign(value1, value2) { + return Object.assign({}, value1, value2); + } +} + +exports.MergeStrategy = MergeStrategy; diff --git a/node_modules/@humanwhocodes/object-schema/src/object-schema.js b/node_modules/@humanwhocodes/object-schema/src/object-schema.js new file mode 100644 index 0000000..b663236 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/object-schema.js @@ -0,0 +1,235 @@ +/** + * @filedescription Object Schema + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const { MergeStrategy } = require("./merge-strategy"); +const { ValidationStrategy } = require("./validation-strategy"); + +//----------------------------------------------------------------------------- +// Private +//----------------------------------------------------------------------------- + +const strategies = Symbol("strategies"); +const requiredKeys = Symbol("requiredKeys"); + +/** + * Validates a schema strategy. + * @param {string} name The name of the key this strategy is for. + * @param {Object} strategy The strategy for the object key. + * @param {boolean} [strategy.required=true] Whether the key is required. + * @param {string[]} [strategy.requires] Other keys that are required when + * this key is present. + * @param {Function} strategy.merge A method to call when merging two objects + * with the same key. + * @param {Function} strategy.validate A method to call when validating an + * object with the key. + * @returns {void} + * @throws {Error} When the strategy is missing a name. + * @throws {Error} When the strategy is missing a merge() method. + * @throws {Error} When the strategy is missing a validate() method. + */ +function validateDefinition(name, strategy) { + + let hasSchema = false; + if (strategy.schema) { + if (typeof strategy.schema === "object") { + hasSchema = true; + } else { + throw new TypeError("Schema must be an object."); + } + } + + if (typeof strategy.merge === "string") { + if (!(strategy.merge in MergeStrategy)) { + throw new TypeError(`Definition for key "${name}" missing valid merge strategy.`); + } + } else if (!hasSchema && typeof strategy.merge !== "function") { + throw new TypeError(`Definition for key "${name}" must have a merge property.`); + } + + if (typeof strategy.validate === "string") { + if (!(strategy.validate in ValidationStrategy)) { + throw new TypeError(`Definition for key "${name}" missing valid validation strategy.`); + } + } else if (!hasSchema && typeof strategy.validate !== "function") { + throw new TypeError(`Definition for key "${name}" must have a validate() method.`); + } +} + + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +/** + * Represents an object validation/merging schema. + */ +class ObjectSchema { + + /** + * Creates a new instance. + */ + constructor(definitions) { + + if (!definitions) { + throw new Error("Schema definitions missing."); + } + + /** + * Track all strategies in the schema by key. + * @type {Map} + * @property strategies + */ + this[strategies] = new Map(); + + /** + * Separately track any keys that are required for faster validation. + * @type {Map} + * @property requiredKeys + */ + this[requiredKeys] = new Map(); + + // add in all strategies + for (const key of Object.keys(definitions)) { + validateDefinition(key, definitions[key]); + + // normalize merge and validate methods if subschema is present + if (typeof definitions[key].schema === "object") { + const schema = new ObjectSchema(definitions[key].schema); + definitions[key] = { + ...definitions[key], + merge(first = {}, second = {}) { + return schema.merge(first, second); + }, + validate(value) { + ValidationStrategy.object(value); + schema.validate(value); + } + }; + } + + // normalize the merge method in case there's a string + if (typeof definitions[key].merge === "string") { + definitions[key] = { + ...definitions[key], + merge: MergeStrategy[definitions[key].merge] + }; + }; + + // normalize the validate method in case there's a string + if (typeof definitions[key].validate === "string") { + definitions[key] = { + ...definitions[key], + validate: ValidationStrategy[definitions[key].validate] + }; + }; + + this[strategies].set(key, definitions[key]); + + if (definitions[key].required) { + this[requiredKeys].set(key, definitions[key]); + } + } + } + + /** + * Determines if a strategy has been registered for the given object key. + * @param {string} key The object key to find a strategy for. + * @returns {boolean} True if the key has a strategy registered, false if not. + */ + hasKey(key) { + return this[strategies].has(key); + } + + /** + * Merges objects together to create a new object comprised of the keys + * of the all objects. Keys are merged based on the each key's merge + * strategy. + * @param {...Object} objects The objects to merge. + * @returns {Object} A new object with a mix of all objects' keys. + * @throws {Error} If any object is invalid. + */ + merge(...objects) { + + // double check arguments + if (objects.length < 2) { + throw new Error("merge() requires at least two arguments."); + } + + if (objects.some(object => (object == null || typeof object !== "object"))) { + throw new Error("All arguments must be objects."); + } + + return objects.reduce((result, object) => { + + this.validate(object); + + for (const [key, strategy] of this[strategies]) { + try { + if (key in result || key in object) { + const value = strategy.merge.call(this, result[key], object[key]); + if (value !== undefined) { + result[key] = value; + } + } + } catch (ex) { + ex.message = `Key "${key}": ` + ex.message; + throw ex; + } + } + return result; + }, {}); + } + + /** + * Validates an object's keys based on the validate strategy for each key. + * @param {Object} object The object to validate. + * @returns {void} + * @throws {Error} When the object is invalid. + */ + validate(object) { + + // check existing keys first + for (const key of Object.keys(object)) { + + // check to see if the key is defined + if (!this.hasKey(key)) { + throw new Error(`Unexpected key "${key}" found.`); + } + + // validate existing keys + const strategy = this[strategies].get(key); + + // first check to see if any other keys are required + if (Array.isArray(strategy.requires)) { + if (!strategy.requires.every(otherKey => otherKey in object)) { + throw new Error(`Key "${key}" requires keys "${strategy.requires.join("\", \"")}".`); + } + } + + // now apply remaining validation strategy + try { + strategy.validate.call(strategy, object[key]); + } catch (ex) { + ex.message = `Key "${key}": ` + ex.message; + throw ex; + } + } + + // ensure required keys aren't missing + for (const [key] of this[requiredKeys]) { + if (!(key in object)) { + throw new Error(`Missing required key "${key}".`); + } + } + + } +} + +exports.ObjectSchema = ObjectSchema; diff --git a/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js b/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js new file mode 100644 index 0000000..ecf918b --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js @@ -0,0 +1,102 @@ +/** + * @filedescription Validation Strategy + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +/** + * Container class for several different validation strategies. + */ +class ValidationStrategy { + + /** + * Validates that a value is an array. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static array(value) { + if (!Array.isArray(value)) { + throw new TypeError("Expected an array."); + } + } + + /** + * Validates that a value is a boolean. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static boolean(value) { + if (typeof value !== "boolean") { + throw new TypeError("Expected a Boolean."); + } + } + + /** + * Validates that a value is a number. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static number(value) { + if (typeof value !== "number") { + throw new TypeError("Expected a number."); + } + } + + /** + * Validates that a value is a object. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static object(value) { + if (!value || typeof value !== "object") { + throw new TypeError("Expected an object."); + } + } + + /** + * Validates that a value is a object or null. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static "object?"(value) { + if (typeof value !== "object") { + throw new TypeError("Expected an object or null."); + } + } + + /** + * Validates that a value is a string. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static string(value) { + if (typeof value !== "string") { + throw new TypeError("Expected a string."); + } + } + + /** + * Validates that a value is a non-empty string. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static "string!"(value) { + if (typeof value !== "string" || value.length === 0) { + throw new TypeError("Expected a non-empty string."); + } + } + +} + +exports.ValidationStrategy = ValidationStrategy; diff --git a/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js b/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js new file mode 100644 index 0000000..84032d7 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js @@ -0,0 +1,66 @@ +/** + * @filedescription Merge Strategy Tests + */ +/* global it, describe, beforeEach */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const assert = require("chai").assert; +const { MergeStrategy } = require("../src/"); + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +describe("MergeStrategy", () => { + + + describe("overwrite()", () => { + + it("should overwrite the first value with the second when the second is defined", () => { + const result = MergeStrategy.overwrite(1, 2); + assert.strictEqual(result, 2); + }); + + it("should overwrite the first value with the second when the second is undefined", () => { + const result = MergeStrategy.overwrite(1, undefined); + assert.strictEqual(result, undefined); + }); + + }); + + describe("replace()", () => { + + it("should overwrite the first value with the second when the second is defined", () => { + const result = MergeStrategy.replace(1, 2); + assert.strictEqual(result, 2); + }); + + it("should return the first value when the second is undefined", () => { + const result = MergeStrategy.replace(1, undefined); + assert.strictEqual(result, 1); + }); + + }); + + describe("assign()", () => { + + it("should merge properties from two objects when called", () => { + + const object1 = { foo: 1, bar: 3 }; + const object2 = { foo: 2 }; + + const result = MergeStrategy.assign(object1, object2); + assert.deepStrictEqual(result, { + foo: 2, + bar: 3 + }); + }); + + }); + +}); diff --git a/node_modules/@humanwhocodes/object-schema/tests/object-schema.js b/node_modules/@humanwhocodes/object-schema/tests/object-schema.js new file mode 100644 index 0000000..d86ef6e --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/tests/object-schema.js @@ -0,0 +1,611 @@ +/** + * @filedescription Object Schema Tests + */ +/* global it, describe, beforeEach */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const assert = require("chai").assert; +const { ObjectSchema } = require("../src/"); + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +describe("ObjectSchema", () => { + + let schema; + + describe("new ObjectSchema()", () => { + + it("should add a new key when a strategy is passed", () => { + schema = new ObjectSchema({ + foo: { + merge() {}, + validate() {} + } + }); + + assert.isTrue(schema.hasKey("foo")); + }); + + it("should throw an error when a strategy is missing a merge() method", () => { + assert.throws(() => { + schema = new ObjectSchema({ + foo: { + validate() { } + } + }); + }, /Definition for key "foo" must have a merge property/); + }); + + it("should throw an error when a strategy is missing a merge() method", () => { + assert.throws(() => { + schema = new ObjectSchema(); + }, /Schema definitions missing/); + }); + + it("should throw an error when a strategy is missing a validate() method", () => { + assert.throws(() => { + schema = new ObjectSchema({ + foo: { + merge() { }, + } + }); + }, /Definition for key "foo" must have a validate\(\) method/); + }); + + it("should throw an error when merge is an invalid string", () => { + assert.throws(() => { + new ObjectSchema({ + foo: { + merge: "bar", + validate() { } + } + }); + }, /key "foo" missing valid merge strategy/); + }); + + it("should throw an error when validate is an invalid string", () => { + assert.throws(() => { + new ObjectSchema({ + foo: { + merge: "assign", + validate: "s" + } + }); + }, /key "foo" missing valid validation strategy/); + }); + + }); + + + describe("merge()", () => { + + it("should throw an error when an unexpected key is found", () => { + let schema = new ObjectSchema({}); + + assert.throws(() => { + schema.merge({ foo: true }, { foo: true }); + }, /Unexpected key "foo"/); + }); + + it("should throw an error when merge() throws an error", () => { + let schema = new ObjectSchema({ + foo: { + merge() { + throw new Error("Boom!"); + }, + validate() {} + } + }); + + assert.throws(() => { + schema.merge({ foo: true }, { foo: true }); + }, /Key "foo": Boom!/); + + }); + + it("should call the merge() strategy for one key when called", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() {} + } + }); + + const result = schema.merge({ foo: true }, { foo: false }); + assert.propertyVal(result, "foo", "bar"); + }); + + it("should not call the merge() strategy when both objects don't contain the key", () => { + + let called = false; + + schema = new ObjectSchema({ + foo: { + merge() { + called = true; + }, + validate() {} + } + }); + + schema.merge({}, {}); + assert.isFalse(called, "The merge() strategy should not have been called."); + }); + + it("should omit returning the key when the merge() strategy returns undefined", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return undefined; + }, + validate() { } + } + }); + + const result = schema.merge({ foo: true }, { foo: false }); + assert.notProperty(result, "foo"); + }); + + it("should call the merge() strategy for two keys when called", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + bar: { + merge() { + return "baz"; + }, + validate() {} + } + }); + + const result = schema.merge({ foo: true, bar: 1 }, { foo: true, bar: 2 }); + assert.propertyVal(result, "foo", "bar"); + assert.propertyVal(result, "bar", "baz"); + }); + + it("should call the merge() strategy for two keys when called on three objects", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + bar: { + merge() { + return "baz"; + }, + validate() { } + } + }); + + const result = schema.merge( + { foo: true, bar: 1 }, + { foo: true, bar: 3 }, + { foo: false, bar: 2 } + ); + assert.propertyVal(result, "foo", "bar"); + assert.propertyVal(result, "bar", "baz"); + }); + + it("should call the merge() strategy when defined as 'overwrite'", () => { + schema = new ObjectSchema({ + foo: { + merge: "overwrite", + validate() { } + } + }); + + const result = schema.merge( + { foo: true }, + { foo: false } + ); + assert.propertyVal(result, "foo", false); + }); + + it("should call the merge() strategy when defined as 'assign'", () => { + schema = new ObjectSchema({ + foo: { + merge: "assign", + validate() { } + } + }); + + const result = schema.merge( + { foo: { bar: true } }, + { foo: { baz: false } } + ); + + assert.strictEqual(result.foo.bar, true); + assert.strictEqual(result.foo.baz, false); + }); + + it("should call the merge strategy when there's a subschema", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + const result = schema.merge({ + name: { + first: "n", + last: "z" + } + }, { + name: { + first: "g" + } + }); + + assert.strictEqual(result.name.first, "g"); + assert.strictEqual(result.name.last, "z"); + }); + + it("should return separate objects when using subschema", () => { + + schema = new ObjectSchema({ + age: { + merge: "replace", + validate: "number" + }, + address: { + schema: { + street: { + schema: { + number: { + merge: "replace", + validate: "number" + }, + streetName: { + merge: "replace", + validate: "string" + } + } + }, + state: { + merge: "replace", + validate: "string" + } + } + } + }); + + const baseObject = { + address: { + street: { + number: 100, + streetName: "Foo St" + }, + state: "HA" + } + }; + + const result = schema.merge(baseObject, { + age: 29 + }); + + assert.notStrictEqual(result.address.street, baseObject.address.street); + assert.deepStrictEqual(result.address, baseObject.address); + }); + + it("should not error when calling the merge strategy when there's a subschema and no matching key in second object", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + const result = schema.merge({ + name: { + first: "n", + last: "z" + } + }, { + }); + + assert.strictEqual(result.name.first, "n"); + assert.strictEqual(result.name.last, "z"); + }); + + it("should not error when calling the merge strategy when there's multiple subschemas and no matching key in second object", () => { + + schema = new ObjectSchema({ + user: { + schema: { + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + + } + } + }); + + const result = schema.merge({ + user: { + name: { + first: "n", + last: "z" + } + } + }, { + }); + + assert.strictEqual(result.user.name.first, "n"); + assert.strictEqual(result.user.name.last, "z"); + }); + + + }); + + describe("validate()", () => { + + it("should throw an error when an unexpected key is found", () => { + let schema = new ObjectSchema({}); + assert.throws(() => { + schema.validate({ foo: true }); + }, /Unexpected key "foo"/); + }); + + it("should not throw an error when an expected key is found", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() {} + } + }); + + schema.validate({ foo: true }); + }); + + it("should pass the property value into validate() when key is found", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate(value) { + assert.isTrue(value); + } + } + }); + + schema.validate({ foo: true }); + }); + + it("should not throw an error when expected keys are found", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() {} + }, + bar: { + merge() { + return "baz"; + }, + validate() {} + } + }); + + schema.validate({ foo: true, bar: true }); + }); + + it("should not throw an error when expected keys are found with required keys", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + bar: { + requires: ["foo"], + merge() { + return "baz"; + }, + validate() { } + } + }); + + schema.validate({ foo: true, bar: true }); + }); + + it("should throw an error when expected keys are found without required keys", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + baz: { + merge() { + return "baz"; + }, + validate() { } + }, + bar: { + name: "bar", + requires: ["foo", "baz"], + merge() { }, + validate() { } + } + }); + + assert.throws(() => { + schema.validate({ bar: true }); + }, /Key "bar" requires keys "foo", "baz"./); + }); + + + it("should throw an error when an expected key is found but is invalid", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { + throw new Error("Invalid key."); + } + } + }); + + assert.throws(() => { + schema.validate({ foo: true }); + }, /Key "foo": Invalid key/); + }); + + it("should throw an error when an expected key is found but is invalid with a string validator", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate: "string" + } + }); + + assert.throws(() => { + schema.validate({ foo: true }); + }, /Key "foo": Expected a string/); + }); + + it("should throw an error when an expected key is found but is invalid with a number validator", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate: "number" + } + }); + + assert.throws(() => { + schema.validate({ foo: true }); + }, /Key "foo": Expected a number/); + }); + + it("should throw an error when a required key is missing", () => { + + schema = new ObjectSchema({ + foo: { + required: true, + merge() { + return "bar"; + }, + validate() {} + } + }); + + assert.throws(() => { + schema.validate({}); + }, /Missing required key "foo"/); + }); + + it("should throw an error when a subschema is provided and the value doesn't validate", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + assert.throws(() => { + schema.validate({ + name: { + first: 123, + last: "z" + } + }); + + }, /Key "name": Key "first": Expected a string/); + }); + + it("should not throw an error when a subschema is provided and the value validates", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + schema.validate({ + name: { + first: "n", + last: "z" + } + }); + + }); + + }); + +}); diff --git a/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js b/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js new file mode 100644 index 0000000..5d3e4a2 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js @@ -0,0 +1,186 @@ +/** + * @filedescription Merge Strategy Tests + */ +/* global it, describe, beforeEach */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const assert = require("chai").assert; +const { ValidationStrategy } = require("../src/"); + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +describe("ValidationStrategy", () => { + + describe("boolean", () => { + it("should not throw an error when the value is a boolean", () => { + ValidationStrategy.boolean(true); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.boolean(null); + }, /Expected a Boolean/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.boolean("foo"); + }, /Expected a Boolean/); + }); + + it("should throw an error when the value is a number", () => { + assert.throws(() => { + ValidationStrategy.boolean(123); + }, /Expected a Boolean/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.boolean({}); + }, /Expected a Boolean/); + }); + }); + + describe("number", () => { + it("should not throw an error when the value is a number", () => { + ValidationStrategy.number(25); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.number(null); + }, /Expected a number/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.number("foo"); + }, /Expected a number/); + }); + + it("should throw an error when the value is a boolean", () => { + assert.throws(() => { + ValidationStrategy.number(true); + }, /Expected a number/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.number({}); + }, /Expected a number/); + }); + }); + + describe("object", () => { + it("should not throw an error when the value is an object", () => { + ValidationStrategy.object({}); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.object(null); + }, /Expected an object/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.object(""); + }, /Expected an object/); + }); + }); + + describe("array", () => { + it("should not throw an error when the value is an array", () => { + ValidationStrategy.array([]); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.array(null); + }, /Expected an array/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.array(""); + }, /Expected an array/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.array({}); + }, /Expected an array/); + }); + }); + + describe("object?", () => { + it("should not throw an error when the value is an object", () => { + ValidationStrategy["object?"]({}); + }); + + it("should not throw an error when the value is null", () => { + ValidationStrategy["object?"](null); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy["object?"](""); + }, /Expected an object/); + }); + }); + + describe("string", () => { + it("should not throw an error when the value is a string", () => { + ValidationStrategy.string("foo"); + }); + + it("should not throw an error when the value is an empty string", () => { + ValidationStrategy.string(""); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.string(null); + }, /Expected a string/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.string({}); + }, /Expected a string/); + }); + }); + + describe("string!", () => { + it("should not throw an error when the value is an string", () => { + ValidationStrategy["string!"]("foo"); + }); + + it("should throw an error when the value is an empty string", () => { + assert.throws(() => { + ValidationStrategy["string!"](""); + }, /Expected a non-empty string/); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy["string!"](null); + }, /Expected a non-empty string/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy["string!"]({}); + }, /Expected a non-empty string/); + }); + }); + + +}); diff --git a/node_modules/@nodelib/fs.scandir/LICENSE b/node_modules/@nodelib/fs.scandir/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.scandir/README.md b/node_modules/@nodelib/fs.scandir/README.md new file mode 100644 index 0000000..e0b218b --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/README.md @@ -0,0 +1,171 @@ +# @nodelib/fs.scandir + +> List files and directories inside the specified directory. + +## :bulb: Highlights + +The package is aimed at obtaining information about entries in the directory. + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :gear: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type. See [`old` and `modern` mode](#old-and-modern-mode). +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.scandir +``` + +## Usage + +```ts +import * as fsScandir from '@nodelib/fs.scandir'; + +fsScandir.scandir('path', (error, stats) => { /* … */ }); +``` + +## API + +### .scandir(path, [optionsOrSettings], callback) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path with standard callback-style. + +```ts +fsScandir.scandir('path', (error, entries) => { /* … */ }); +fsScandir.scandir('path', {}, (error, entries) => { /* … */ }); +fsScandir.scandir('path', new fsScandir.Settings(), (error, entries) => { /* … */ }); +``` + +### .scandirSync(path, [optionsOrSettings]) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path. + +```ts +const entries = fsScandir.scandirSync('path'); +const entries = fsScandir.scandirSync('path', {}); +const entries = fsScandir.scandirSync(('path', new fsScandir.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settingsoptions) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsScandir.Settings({ followSymbolicLinks: false }); + +const entries = fsScandir.scandirSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. On Node.js below 10.10 will be emulated by [`DirentFromStats`](./src/utils/fs.ts) class. +* `stats` (optional) — An instance of `fs.Stats` class. + +For example, the `scandir` call for `tools` directory with one directory inside: + +```ts +{ + dirent: Dirent { name: 'typedoc', /* … */ }, + name: 'typedoc', + path: 'tools/typedoc' +} +``` + +## Options + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` without the `withFileTypes` option. ??TODO?? + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely use `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; + readdir?: typeof fs.readdir; + readdirSync?: typeof fs.readdirSync; +} + +const settings = new fsScandir.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## `old` and `modern` mode + +This package has two modes that are used depending on the environment and parameters of use. + +### old + +* Node.js below `10.10` or when the `stats` option is enabled + +When working in the old mode, the directory is read first (`fs.readdir`), then the type of entries is determined (`fs.lstat` and/or `fs.stat` for symbolic links). + +### modern + +* Node.js 10.10+ and the `stats` option is disabled + +In the modern mode, reading the directory (`fs.readdir` with the `withFileTypes` option) is combined with obtaining information about its entries. An additional call for symbolic links (`fs.stat`) is still present. + +This mode makes fewer calls to the file system. It's faster. + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts new file mode 100644 index 0000000..827f1db --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts @@ -0,0 +1,20 @@ +import type * as fsStat from '@nodelib/fs.stat'; +import type { Dirent, ErrnoException } from '../types'; +export interface ReaddirAsynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }, callback: (error: ErrnoException | null, files: Dirent[]) => void): void; + (filepath: string, callback: (error: ErrnoException | null, files: string[]) => void): void; +} +export interface ReaddirSynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }): Dirent[]; + (filepath: string): string[]; +} +export declare type FileSystemAdapter = fsStat.FileSystemAdapter & { + readdir: ReaddirAsynchronousMethod; + readdirSync: ReaddirSynchronousMethod; +}; +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.js b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js new file mode 100644 index 0000000..f0fe022 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.d.ts b/node_modules/@nodelib/fs.scandir/out/constants.d.ts new file mode 100644 index 0000000..33f1749 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.d.ts @@ -0,0 +1,4 @@ +/** + * IS `true` for Node.js 10.10 and greater. + */ +export declare const IS_SUPPORT_READDIR_WITH_FILE_TYPES: boolean; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.js b/node_modules/@nodelib/fs.scandir/out/constants.js new file mode 100644 index 0000000..7e3d441 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; +const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); +if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); +} +const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); +const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); +const SUPPORTED_MAJOR_VERSION = 10; +const SUPPORTED_MINOR_VERSION = 10; +const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; +const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; +/** + * IS `true` for Node.js 10.10 and greater. + */ +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; diff --git a/node_modules/@nodelib/fs.scandir/out/index.d.ts b/node_modules/@nodelib/fs.scandir/out/index.d.ts new file mode 100644 index 0000000..b9da83e --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Dirent, Entry } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function scandir(path: string, callback: AsyncCallback): void; +declare function scandir(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace scandir { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function scandirSync(path: string, optionsOrSettings?: Options | Settings): Entry[]; +export { scandir, scandirSync, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod, Options }; diff --git a/node_modules/@nodelib/fs.scandir/out/index.js b/node_modules/@nodelib/fs.scandir/out/index.js new file mode 100644 index 0000000..99c70d3 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.scandirSync = exports.scandir = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.scandir = scandir; +function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.scandirSync = scandirSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts new file mode 100644 index 0000000..5829676 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts @@ -0,0 +1,7 @@ +/// +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare type AsyncCallback = (error: NodeJS.ErrnoException, entries: Entry[]) => void; +export declare function read(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdirWithFileTypes(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdir(directory: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.js b/node_modules/@nodelib/fs.scandir/out/providers/async.js new file mode 100644 index 0000000..e8e2f0a --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const rpl = require("run-parallel"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings, callback) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; + } + readdir(directory, settings, callback); +} +exports.read = read; +function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const entries = dirents.map((dirent) => ({ + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; + } + const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings)); + rpl(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, rplEntries); + }); + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function makeRplTaskEntry(entry, settings) { + return (done) => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; + } + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } + done(null, entry); + return; + } + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; +} +function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const tasks = names.map((name) => { + const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return (done) => { + fsStat.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } + const entry = { + name, + path, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + done(null, entry); + }); + }; + }); + rpl(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, entries); + }); + }); +} +exports.readdir = readdir; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts new file mode 100644 index 0000000..2b4d08b --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts @@ -0,0 +1 @@ +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.js b/node_modules/@nodelib/fs.scandir/out/providers/common.js new file mode 100644 index 0000000..8724cb5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = void 0; +function joinPathSegments(a, b, separator) { + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts new file mode 100644 index 0000000..e05c8f0 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts @@ -0,0 +1,5 @@ +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare function read(directory: string, settings: Settings): Entry[]; +export declare function readdirWithFileTypes(directory: string, settings: Settings): Entry[]; +export declare function readdir(directory: string, settings: Settings): Entry[]; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.js b/node_modules/@nodelib/fs.scandir/out/providers/sync.js new file mode 100644 index 0000000..146db34 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); + } + return readdir(directory, settings); +} +exports.read = read; +function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { withFileTypes: true }); + return dirents.map((dirent) => { + const entry = { + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + } + catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } + return entry; + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map((name) => { + const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = fsStat.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + return entry; + }); +} +exports.readdir = readdir; diff --git a/node_modules/@nodelib/fs.scandir/out/settings.d.ts b/node_modules/@nodelib/fs.scandir/out/settings.d.ts new file mode 100644 index 0000000..a0db115 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.d.ts @@ -0,0 +1,20 @@ +import * as fsStat from '@nodelib/fs.stat'; +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLinks: boolean; + readonly fs: fs.FileSystemAdapter; + readonly pathSegmentSeparator: string; + readonly stats: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + readonly fsStatSettings: fsStat.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.scandir/out/settings.js b/node_modules/@nodelib/fs.scandir/out/settings.js new file mode 100644 index 0000000..15a3e8c --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsStat = require("@nodelib/fs.stat"); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.d.ts b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts new file mode 100644 index 0000000..f326c5e --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts @@ -0,0 +1,20 @@ +/// +import type * as fs from 'fs'; +export interface Entry { + dirent: Dirent; + name: string; + path: string; + stats?: Stats; +} +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; +export interface Dirent { + isBlockDevice: () => boolean; + isCharacterDevice: () => boolean; + isDirectory: () => boolean; + isFIFO: () => boolean; + isFile: () => boolean; + isSocket: () => boolean; + isSymbolicLink: () => boolean; + name: string; +} diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.js b/node_modules/@nodelib/fs.scandir/out/types/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts new file mode 100644 index 0000000..bb863f1 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts @@ -0,0 +1,2 @@ +import type { Dirent, Stats } from '../types'; +export declare function createDirentFromStats(name: string, stats: Stats): Dirent; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.js b/node_modules/@nodelib/fs.scandir/out/utils/fs.js new file mode 100644 index 0000000..ace7c74 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts new file mode 100644 index 0000000..1b41954 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts @@ -0,0 +1,2 @@ +import * as fs from './fs'; +export { fs }; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.js b/node_modules/@nodelib/fs.scandir/out/utils/index.js new file mode 100644 index 0000000..f5de129 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const fs = require("./fs"); +exports.fs = fs; diff --git a/node_modules/@nodelib/fs.scandir/package.json b/node_modules/@nodelib/fs.scandir/package.json new file mode 100644 index 0000000..d3a8924 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.scandir", + "version": "2.1.5", + "description": "List files and directories inside the specified directory", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "scandir", + "readdir", + "dirent" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4", + "@types/run-parallel": "^1.1.0" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.stat/LICENSE b/node_modules/@nodelib/fs.stat/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.stat/README.md b/node_modules/@nodelib/fs.stat/README.md new file mode 100644 index 0000000..686f047 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/README.md @@ -0,0 +1,126 @@ +# @nodelib/fs.stat + +> Get the status of a file with some features. + +## :bulb: Highlights + +Wrapper around standard method `fs.lstat` and `fs.stat` with some features. + +* :beginner: Normally follows symbolic link. +* :gear: Can safely work with broken symbolic link. + +## Install + +```console +npm install @nodelib/fs.stat +``` + +## Usage + +```ts +import * as fsStat from '@nodelib/fs.stat'; + +fsStat.stat('path', (error, stats) => { /* … */ }); +``` + +## API + +### .stat(path, [optionsOrSettings], callback) + +Returns an instance of `fs.Stats` class for provided path with standard callback-style. + +```ts +fsStat.stat('path', (error, stats) => { /* … */ }); +fsStat.stat('path', {}, (error, stats) => { /* … */ }); +fsStat.stat('path', new fsStat.Settings(), (error, stats) => { /* … */ }); +``` + +### .statSync(path, [optionsOrSettings]) + +Returns an instance of `fs.Stats` class for provided path. + +```ts +const stats = fsStat.stat('path'); +const stats = fsStat.stat('path', {}); +const stats = fsStat.stat('path', new fsStat.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsStat.Settings({ followSymbolicLink: false }); + +const stats = fsStat.stat('path', settings); +``` + +## Options + +### `followSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Follow symbolic link or not. Call `fs.stat` on symbolic link if `true`. + +### `markSymbolicLink` + +* Type: `boolean` +* Default: `false` + +Mark symbolic link by setting the return value of `isSymbolicLink` function to always `true` (even after `fs.stat`). + +> :book: Can be used if you want to know what is hidden behind a symbolic link, but still continue to know that it is a symbolic link. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; +} + +const settings = new fsStat.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts new file mode 100644 index 0000000..3af759c --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts @@ -0,0 +1,13 @@ +/// +import * as fs from 'fs'; +import type { ErrnoException } from '../types'; +export declare type StatAsynchronousMethod = (path: string, callback: (error: ErrnoException | null, stats: fs.Stats) => void) => void; +export declare type StatSynchronousMethod = (path: string) => fs.Stats; +export interface FileSystemAdapter { + lstat: StatAsynchronousMethod; + stat: StatAsynchronousMethod; + lstatSync: StatSynchronousMethod; + statSync: StatSynchronousMethod; +} +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.js b/node_modules/@nodelib/fs.stat/out/adapters/fs.js new file mode 100644 index 0000000..8dc08c8 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/index.d.ts b/node_modules/@nodelib/fs.stat/out/index.d.ts new file mode 100644 index 0000000..f95db99 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Stats } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function stat(path: string, callback: AsyncCallback): void; +declare function stat(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace stat { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function statSync(path: string, optionsOrSettings?: Options | Settings): Stats; +export { Settings, stat, statSync, AsyncCallback, FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod, Options, Stats }; diff --git a/node_modules/@nodelib/fs.stat/out/index.js b/node_modules/@nodelib/fs.stat/out/index.js new file mode 100644 index 0000000..b23f751 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.statSync = exports.stat = exports.Settings = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.stat = stat; +function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.statSync = statSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.d.ts b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts new file mode 100644 index 0000000..85423ce --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts @@ -0,0 +1,4 @@ +import type Settings from '../settings'; +import type { ErrnoException, Stats } from '../types'; +export declare type AsyncCallback = (error: ErrnoException, stats: Stats) => void; +export declare function read(path: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.js b/node_modules/@nodelib/fs.stat/out/providers/async.js new file mode 100644 index 0000000..983ff0e --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; + } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } + callSuccessCallback(callback, lstat); + return; + } + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + callSuccessCallback(callback, stat); + }); + }); +} +exports.read = read; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts new file mode 100644 index 0000000..428c3d7 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts @@ -0,0 +1,3 @@ +import type Settings from '../settings'; +import type { Stats } from '../types'; +export declare function read(path: string, settings: Settings): Stats; diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.js b/node_modules/@nodelib/fs.stat/out/providers/sync.js new file mode 100644 index 0000000..1521c36 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings) { + const lstat = settings.fs.lstatSync(path); + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + try { + const stat = settings.fs.statSync(path); + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + return stat; + } + catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; + } + throw error; + } +} +exports.read = read; diff --git a/node_modules/@nodelib/fs.stat/out/settings.d.ts b/node_modules/@nodelib/fs.stat/out/settings.d.ts new file mode 100644 index 0000000..f4b3d44 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.d.ts @@ -0,0 +1,16 @@ +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLink?: boolean; + fs?: Partial; + markSymbolicLink?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLink: boolean; + readonly fs: fs.FileSystemAdapter; + readonly markSymbolicLink: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.stat/out/settings.js b/node_modules/@nodelib/fs.stat/out/settings.js new file mode 100644 index 0000000..111ec09 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.d.ts b/node_modules/@nodelib/fs.stat/out/types/index.d.ts new file mode 100644 index 0000000..74c08ed --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.d.ts @@ -0,0 +1,4 @@ +/// +import type * as fs from 'fs'; +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.js b/node_modules/@nodelib/fs.stat/out/types/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.stat/package.json b/node_modules/@nodelib/fs.stat/package.json new file mode 100644 index 0000000..f2540c2 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/package.json @@ -0,0 +1,37 @@ +{ + "name": "@nodelib/fs.stat", + "version": "2.0.5", + "description": "Get the status of a file with some features", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "stat" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.walk/LICENSE b/node_modules/@nodelib/fs.walk/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.walk/README.md b/node_modules/@nodelib/fs.walk/README.md new file mode 100644 index 0000000..6ccc08d --- /dev/null +++ b/node_modules/@nodelib/fs.walk/README.md @@ -0,0 +1,215 @@ +# @nodelib/fs.walk + +> A library for efficiently walking a directory recursively. + +## :bulb: Highlights + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :rocket: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type for performance reasons. See [`old` and `modern` mode](https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode). +* :gear: Built-in directories/files and error filtering system. +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.walk +``` + +## Usage + +```ts +import * as fsWalk from '@nodelib/fs.walk'; + +fsWalk.walk('path', (error, entries) => { /* … */ }); +``` + +## API + +### .walk(path, [optionsOrSettings], callback) + +Reads the directory recursively and asynchronously. Requires a callback function. + +> :book: If you want to use the Promise API, use `util.promisify`. + +```ts +fsWalk.walk('path', (error, entries) => { /* … */ }); +fsWalk.walk('path', {}, (error, entries) => { /* … */ }); +fsWalk.walk('path', new fsWalk.Settings(), (error, entries) => { /* … */ }); +``` + +### .walkStream(path, [optionsOrSettings]) + +Reads the directory recursively and asynchronously. [Readable Stream](https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_streams) is used as a provider. + +```ts +const stream = fsWalk.walkStream('path'); +const stream = fsWalk.walkStream('path', {}); +const stream = fsWalk.walkStream('path', new fsWalk.Settings()); +``` + +### .walkSync(path, [optionsOrSettings]) + +Reads the directory recursively and synchronously. Returns an array of entries. + +```ts +const entries = fsWalk.walkSync('path'); +const entries = fsWalk.walkSync('path', {}); +const entries = fsWalk.walkSync('path', new fsWalk.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsWalk.Settings({ followSymbolicLinks: true }); + +const entries = fsWalk.walkSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. +* [`stats`] — An instance of `fs.Stats` class. + +## Options + +### basePath + +* Type: `string` +* Default: `undefined` + +By default, all paths are built relative to the root path. You can use this option to set custom root path. + +In the example below we read the files from the `root` directory, but in the results the root path will be `custom`. + +```ts +fsWalk.walkSync('root'); // → ['root/file.txt'] +fsWalk.walkSync('root', { basePath: 'custom' }); // → ['custom/file.txt'] +``` + +### concurrency + +* Type: `number` +* Default: `Infinity` + +The maximum number of concurrent calls to `fs.readdir`. + +> :book: The higher the number, the higher performance and the load on the File System. If you want to read in quiet mode, set the value to `4 * os.cpus().length` (4 is default size of [thread pool work scheduling](http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling)). + +### deepFilter + +* Type: [`DeepFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the directory will be read deep or not. + +```ts +// Skip all directories that starts with `node_modules` +const filter: DeepFilterFunction = (entry) => !entry.path.startsWith('node_modules'); +``` + +### entryFilter + +* Type: [`EntryFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the entry will be included to results or not. + +```ts +// Exclude all `.js` files from results +const filter: EntryFilterFunction = (entry) => !entry.name.endsWith('.js'); +``` + +### errorFilter + +* Type: [`ErrorFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that allows you to skip errors that occur when reading directories. + +For example, you can skip `ENOENT` errors if required: + +```ts +// Skip all ENOENT errors +const filter: ErrorFilterFunction = (error) => error.code == 'ENOENT'; +``` + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` with additional `fs.lstat/fs.stat` calls to determine the entry type. + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: `FileSystemAdapter` +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat: typeof fs.lstat; + stat: typeof fs.stat; + lstatSync: typeof fs.lstatSync; + statSync: typeof fs.statSync; + readdir: typeof fs.readdir; + readdirSync: typeof fs.readdirSync; +} + +const settings = new fsWalk.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.walk/out/index.d.ts b/node_modules/@nodelib/fs.walk/out/index.d.ts new file mode 100644 index 0000000..8864c7b --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.d.ts @@ -0,0 +1,14 @@ +/// +import type { Readable } from 'stream'; +import type { Dirent, FileSystemAdapter } from '@nodelib/fs.scandir'; +import { AsyncCallback } from './providers/async'; +import Settings, { DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction, Options } from './settings'; +import type { Entry } from './types'; +declare function walk(directory: string, callback: AsyncCallback): void; +declare function walk(directory: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace walk { + function __promisify__(directory: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function walkSync(directory: string, optionsOrSettings?: Options | Settings): Entry[]; +declare function walkStream(directory: string, optionsOrSettings?: Options | Settings): Readable; +export { walk, walkSync, walkStream, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, Options, DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction }; diff --git a/node_modules/@nodelib/fs.walk/out/index.js b/node_modules/@nodelib/fs.walk/out/index.js new file mode 100644 index 0000000..1520787 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; +const async_1 = require("./providers/async"); +const stream_1 = require("./providers/stream"); +const sync_1 = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; + } + new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); +} +exports.walk = walk; +function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync_1.default(directory, settings); + return provider.read(); +} +exports.walkSync = walkSync; +function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream_1.default(directory, settings); + return provider.read(); +} +exports.walkStream = walkStream; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.d.ts b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts new file mode 100644 index 0000000..0f6717d --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts @@ -0,0 +1,12 @@ +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +export declare type AsyncCallback = (error: Errno, entries: Entry[]) => void; +export default class AsyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + private readonly _storage; + constructor(_root: string, _settings: Settings); + read(callback: AsyncCallback): void; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.js b/node_modules/@nodelib/fs.walk/out/providers/async.js new file mode 100644 index 0000000..51d3be5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const async_1 = require("../readers/async"); +class AsyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._storage = []; + } + read(callback) { + this._reader.onError((error) => { + callFailureCallback(callback, error); + }); + this._reader.onEntry((entry) => { + this._storage.push(entry); + }); + this._reader.onEnd(() => { + callSuccessCallback(callback, this._storage); + }); + this._reader.read(); + } +} +exports.default = AsyncProvider; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, entries) { + callback(null, entries); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.d.ts b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts new file mode 100644 index 0000000..874f60c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts @@ -0,0 +1,4 @@ +import AsyncProvider from './async'; +import StreamProvider from './stream'; +import SyncProvider from './sync'; +export { AsyncProvider, StreamProvider, SyncProvider }; diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.js b/node_modules/@nodelib/fs.walk/out/providers/index.js new file mode 100644 index 0000000..4c2529c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SyncProvider = exports.StreamProvider = exports.AsyncProvider = void 0; +const async_1 = require("./async"); +exports.AsyncProvider = async_1.default; +const stream_1 = require("./stream"); +exports.StreamProvider = stream_1.default; +const sync_1 = require("./sync"); +exports.SyncProvider = sync_1.default; diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts new file mode 100644 index 0000000..294185f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts @@ -0,0 +1,12 @@ +/// +import { Readable } from 'stream'; +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +export default class StreamProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + protected readonly _stream: Readable; + constructor(_root: string, _settings: Settings); + read(): Readable; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.js b/node_modules/@nodelib/fs.walk/out/providers/stream.js new file mode 100644 index 0000000..51298b0 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const async_1 = require("../readers/async"); +class StreamProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._stream = new stream_1.Readable({ + objectMode: true, + read: () => { }, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); + } + } + }); + } + read() { + this._reader.onError((error) => { + this._stream.emit('error', error); + }); + this._reader.onEntry((entry) => { + this._stream.push(entry); + }); + this._reader.onEnd(() => { + this._stream.push(null); + }); + this._reader.read(); + return this._stream; + } +} +exports.default = StreamProvider; diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts new file mode 100644 index 0000000..551c42e --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts @@ -0,0 +1,10 @@ +import SyncReader from '../readers/sync'; +import type Settings from '../settings'; +import type { Entry } from '../types'; +export default class SyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: SyncReader; + constructor(_root: string, _settings: Settings); + read(): Entry[]; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.js b/node_modules/@nodelib/fs.walk/out/providers/sync.js new file mode 100644 index 0000000..faab6ca --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sync_1 = require("../readers/sync"); +class SyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync_1.default(this._root, this._settings); + } + read() { + return this._reader.read(); + } +} +exports.default = SyncProvider; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.d.ts b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts new file mode 100644 index 0000000..9acf4e6 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts @@ -0,0 +1,30 @@ +/// +import { EventEmitter } from 'events'; +import * as fsScandir from '@nodelib/fs.scandir'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +import Reader from './reader'; +declare type EntryEventCallback = (entry: Entry) => void; +declare type ErrorEventCallback = (error: Errno) => void; +declare type EndEventCallback = () => void; +export default class AsyncReader extends Reader { + protected readonly _settings: Settings; + protected readonly _scandir: typeof fsScandir.scandir; + protected readonly _emitter: EventEmitter; + private readonly _queue; + private _isFatalError; + private _isDestroyed; + constructor(_root: string, _settings: Settings); + read(): EventEmitter; + get isDestroyed(): boolean; + destroy(): void; + onEntry(callback: EntryEventCallback): void; + onError(callback: ErrorEventCallback): void; + onEnd(callback: EndEventCallback): void; + private _pushToQueue; + private _worker; + private _handleError; + private _handleEntry; + private _emitEntry; +} +export {}; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.js b/node_modules/@nodelib/fs.walk/out/readers/async.js new file mode 100644 index 0000000..ebe8dd5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const events_1 = require("events"); +const fsScandir = require("@nodelib/fs.scandir"); +const fastq = require("fastq"); +const common = require("./common"); +const reader_1 = require("./reader"); +class AsyncReader extends reader_1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = fsScandir.scandir; + this._emitter = new events_1.EventEmitter(); + this._queue = fastq(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit('end'); + } + }; + } + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; + } + get isDestroyed() { + return this._isDestroyed; + } + destroy() { + if (this._isDestroyed) { + throw new Error('The reader is already destroyed'); + } + this._isDestroyed = true; + this._queue.killAndDrain(); + } + onEntry(callback) { + this._emitter.on('entry', callback); + } + onError(callback) { + this._emitter.once('error', callback); + } + onEnd(callback) { + this._emitter.once('end', callback); + } + _pushToQueue(directory, base) { + const queueItem = { directory, base }; + this._queue.push(queueItem, (error) => { + if (error !== null) { + this._handleError(error); + } + }); + } + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, undefined); + return; + } + for (const entry of entries) { + this._handleEntry(entry, item.base); + } + done(null, undefined); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } + this._isFatalError = true; + this._isDestroyed = true; + this._emitter.emit('error', error); + } + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; + } + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _emitEntry(entry) { + this._emitter.emit('entry', entry); + } +} +exports.default = AsyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.d.ts b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts new file mode 100644 index 0000000..5985f97 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts @@ -0,0 +1,7 @@ +import type { FilterFunction } from '../settings'; +import type Settings from '../settings'; +import type { Errno } from '../types'; +export declare function isFatalError(settings: Settings, error: Errno): boolean; +export declare function isAppliedFilter(filter: FilterFunction | null, value: T): boolean; +export declare function replacePathSegmentSeparator(filepath: string, separator: string): string; +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.js b/node_modules/@nodelib/fs.walk/out/readers/common.js new file mode 100644 index 0000000..a93572f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0; +function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; + } + return !settings.errorFilter(error); +} +exports.isFatalError = isFatalError; +function isAppliedFilter(filter, value) { + return filter === null || filter(value); +} +exports.isAppliedFilter = isAppliedFilter; +function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); +} +exports.replacePathSegmentSeparator = replacePathSegmentSeparator; +function joinPathSegments(a, b, separator) { + if (a === '') { + return b; + } + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts new file mode 100644 index 0000000..e1f383b --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts @@ -0,0 +1,6 @@ +import type Settings from '../settings'; +export default class Reader { + protected readonly _root: string; + protected readonly _settings: Settings; + constructor(_root: string, _settings: Settings); +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.js b/node_modules/@nodelib/fs.walk/out/readers/reader.js new file mode 100644 index 0000000..782f07c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const common = require("./common"); +class Reader { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } +} +exports.default = Reader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts new file mode 100644 index 0000000..af41033 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts @@ -0,0 +1,15 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry } from '../types'; +import Reader from './reader'; +export default class SyncReader extends Reader { + protected readonly _scandir: typeof fsScandir.scandirSync; + private readonly _storage; + private readonly _queue; + read(): Entry[]; + private _pushToQueue; + private _handleQueue; + private _handleDirectory; + private _handleError; + private _handleEntry; + private _pushToStorage; +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.js b/node_modules/@nodelib/fs.walk/out/readers/sync.js new file mode 100644 index 0000000..9a8d5a6 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsScandir = require("@nodelib/fs.scandir"); +const common = require("./common"); +const reader_1 = require("./reader"); +class SyncReader extends reader_1.default { + constructor() { + super(...arguments); + this._scandir = fsScandir.scandirSync; + this._storage = []; + this._queue = new Set(); + } + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); + return this._storage; + } + _pushToQueue(directory, base) { + this._queue.add({ directory, base }); + } + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); + for (const entry of entries) { + this._handleEntry(entry, base); + } + } + catch (error) { + this._handleError(error); + } + } + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; + } + throw error; + } + _handleEntry(entry, base) { + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _pushToStorage(entry) { + this._storage.push(entry); + } +} +exports.default = SyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/settings.d.ts b/node_modules/@nodelib/fs.walk/out/settings.d.ts new file mode 100644 index 0000000..d1c4b45 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.d.ts @@ -0,0 +1,30 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry, Errno } from './types'; +export declare type FilterFunction = (value: T) => boolean; +export declare type DeepFilterFunction = FilterFunction; +export declare type EntryFilterFunction = FilterFunction; +export declare type ErrorFilterFunction = FilterFunction; +export interface Options { + basePath?: string; + concurrency?: number; + deepFilter?: DeepFilterFunction; + entryFilter?: EntryFilterFunction; + errorFilter?: ErrorFilterFunction; + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly basePath?: string; + readonly concurrency: number; + readonly deepFilter: DeepFilterFunction | null; + readonly entryFilter: EntryFilterFunction | null; + readonly errorFilter: ErrorFilterFunction | null; + readonly pathSegmentSeparator: string; + readonly fsScandirSettings: fsScandir.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.walk/out/settings.js b/node_modules/@nodelib/fs.walk/out/settings.js new file mode 100644 index 0000000..d7a85c8 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsScandir = require("@nodelib/fs.scandir"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, undefined); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.fsScandirSettings = new fsScandir.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.walk/out/types/index.d.ts b/node_modules/@nodelib/fs.walk/out/types/index.d.ts new file mode 100644 index 0000000..6ee9bd3 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.d.ts @@ -0,0 +1,8 @@ +/// +import type * as scandir from '@nodelib/fs.scandir'; +export declare type Entry = scandir.Entry; +export declare type Errno = NodeJS.ErrnoException; +export interface QueueItem { + directory: string; + base?: string; +} diff --git a/node_modules/@nodelib/fs.walk/out/types/index.js b/node_modules/@nodelib/fs.walk/out/types/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.walk/package.json b/node_modules/@nodelib/fs.walk/package.json new file mode 100644 index 0000000..86bfce4 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.walk", + "version": "1.2.8", + "description": "A library for efficiently walking a directory recursively", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "walk", + "scanner", + "crawler" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*", + "!out/**/tests/**" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "1e5bad48565da2b06b8600e744324ea240bf49d8" +} diff --git a/node_modules/@octokit/auth-token/LICENSE b/node_modules/@octokit/auth-token/LICENSE new file mode 100644 index 0000000..ef2c18e --- /dev/null +++ b/node_modules/@octokit/auth-token/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/auth-token/README.md b/node_modules/@octokit/auth-token/README.md new file mode 100644 index 0000000..a1f6d35 --- /dev/null +++ b/node_modules/@octokit/auth-token/README.md @@ -0,0 +1,290 @@ +# auth-token.js + +> GitHub API token authentication for browsers and Node.js + +[![@latest](https://img.shields.io/npm/v/@octokit/auth-token.svg)](https://www.npmjs.com/package/@octokit/auth-token) +[![Build Status](https://github.com/octokit/auth-token.js/workflows/Test/badge.svg)](https://github.com/octokit/auth-token.js/actions?query=workflow%3ATest) + +`@octokit/auth-token` is the simplest of [GitHub’s authentication strategies](https://github.com/octokit/auth.js). + +It is useful if you want to support multiple authentication strategies, as it’s API is compatible with its sibling packages for [basic](https://github.com/octokit/auth-basic.js), [GitHub App](https://github.com/octokit/auth-app.js) and [OAuth app](https://github.com/octokit/auth.js) authentication. + + + +- [Usage](#usage) +- [`createTokenAuth(token) options`](#createtokenauthtoken-options) +- [`auth()`](#auth) +- [Authentication object](#authentication-object) +- [`auth.hook(request, route, options)` or `auth.hook(request, options)`](#authhookrequest-route-options-or-authhookrequest-options) +- [Find more information](#find-more-information) + - [Find out what scopes are enabled for oauth tokens](#find-out-what-scopes-are-enabled-for-oauth-tokens) + - [Find out if token is a personal access token or if it belongs to an OAuth app](#find-out-if-token-is-a-personal-access-token-or-if-it-belongs-to-an-oauth-app) + - [Find out what permissions are enabled for a repository](#find-out-what-permissions-are-enabled-for-a-repository) + - [Use token for git operations](#use-token-for-git-operations) +- [License](#license) + + + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/auth-token` directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with npm install @octokit/auth-token + +```js +const { createTokenAuth } = require("@octokit/auth-token"); +// or: import { createTokenAuth } from "@octokit/auth-token"; +``` + +
+ +```js +const auth = createTokenAuth("ghp_PersonalAccessToken01245678900000000"); +const authentication = await auth(); +// { +// type: 'token', +// token: 'ghp_PersonalAccessToken01245678900000000', +// tokenType: 'oauth' +// } +``` + +## `createTokenAuth(token) options` + +The `createTokenAuth` method accepts a single argument of type string, which is the token. The passed token can be one of the following: + +- [Personal access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) +- [OAuth access token](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/) +- [GITHUB_TOKEN provided to GitHub Actions](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables) +- Installation access token ([server-to-server](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation)) +- User authentication for installation ([user-to-server](https://docs.github.com/en/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps)) + +Examples + +```js +// Personal access token or OAuth access token +createTokenAuth("ghp_PersonalAccessToken01245678900000000"); +// { +// type: 'token', +// token: 'ghp_PersonalAccessToken01245678900000000', +// tokenType: 'oauth' +// } + +// Installation access token or GitHub Action token +createTokenAuth("ghs_InstallallationOrActionToken00000000"); +// { +// type: 'token', +// token: 'ghs_InstallallationOrActionToken00000000', +// tokenType: 'installation' +// } + +// Installation access token or GitHub Action token +createTokenAuth("ghu_InstallationUserToServer000000000000"); +// { +// type: 'token', +// token: 'ghu_InstallationUserToServer000000000000', +// tokenType: 'user-to-server' +// } +``` + +## `auth()` + +The `auth()` method has no options. It returns a promise which resolves with the the authentication object. + +## Authentication object + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ type + + string + + "token" +
+ token + + string + + The provided token. +
+ tokenType + + string + + Can be either "oauth" for personal access tokens and OAuth tokens, "installation" for installation access tokens (includes GITHUB_TOKEN provided to GitHub Actions), "app" for a GitHub App JSON Web Token, or "user-to-server" for a user authentication token through an app installation. +
+ +## `auth.hook(request, route, options)` or `auth.hook(request, options)` + +`auth.hook()` hooks directly into the request life cycle. It authenticates the request using the provided token. + +The `request` option is an instance of [`@octokit/request`](https://github.com/octokit/request.js#readme). The `route`/`options` parameters are the same as for the [`request()` method](https://github.com/octokit/request.js#request). + +`auth.hook()` can be called directly to send an authenticated request + +```js +const { data: authorizations } = await auth.hook( + request, + "GET /authorizations" +); +``` + +Or it can be passed as option to [`request()`](https://github.com/octokit/request.js#request). + +```js +const requestWithAuth = request.defaults({ + request: { + hook: auth.hook, + }, +}); + +const { data: authorizations } = await requestWithAuth("GET /authorizations"); +``` + +## Find more information + +`auth()` does not send any requests, it only transforms the provided token string into an authentication object. + +Here is a list of things you can do to retrieve further information + +### Find out what scopes are enabled for oauth tokens + +Note that this does not work for installations. There is no way to retrieve permissions based on an installation access tokens. + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("HEAD /", { + headers: authentication.headers, +}); +const scopes = response.headers["x-oauth-scopes"].split(/,\s+/); + +if (scopes.length) { + console.log( + `"${TOKEN}" has ${scopes.length} scopes enabled: ${scopes.join(", ")}` + ); +} else { + console.log(`"${TOKEN}" has no scopes enabled`); +} +``` + +### Find out if token is a personal access token or if it belongs to an OAuth app + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("HEAD /", { + headers: authentication.headers, +}); +const clientId = response.headers["x-oauth-client-id"]; + +if (clientId) { + console.log( + `"${token}" is an OAuth token, its app’s client_id is ${clientId}.` + ); +} else { + console.log(`"${token}" is a personal access token`); +} +``` + +### Find out what permissions are enabled for a repository + +Note that the `permissions` key is not set when authenticated using an installation access token. + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("GET /repos/{owner}/{repo}", { + owner: 'octocat', + repo: 'hello-world' + headers: authentication.headers +}); + +console.log(response.data.permissions) +// { +// admin: true, +// push: true, +// pull: true +// } +``` + +### Use token for git operations + +Both OAuth and installation access tokens can be used for git operations. However, when using with an installation, [the token must be prefixed with `x-access-token`](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#http-based-git-access-by-an-installation). + +This example is using the [`execa`](https://github.com/sindresorhus/execa) package to run a `git push` command. + +```js +const TOKEN = "ghp_PersonalAccessToken01245678900000000"; + +const auth = createTokenAuth(TOKEN); +const { token, tokenType } = await auth(); +const tokenWithPrefix = + tokenType === "installation" ? `x-access-token:${token}` : token; + +const repositoryUrl = `https://${tokenWithPrefix}@github.com/octocat/hello-world.git`; + +const { stdout } = await execa("git", ["push", repositoryUrl]); +console.log(stdout); +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/auth-token/dist-node/index.js b/node_modules/@octokit/auth-token/dist-node/index.js new file mode 100644 index 0000000..af0f0a6 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-node/index.js @@ -0,0 +1,55 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} + +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; +} + +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +exports.createTokenAuth = createTokenAuth; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/auth-token/dist-node/index.js.map b/node_modules/@octokit/auth-token/dist-node/index.js.map new file mode 100644 index 0000000..af0c2e2 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/auth.js","../dist-src/with-authorization-prefix.js","../dist-src/hook.js","../dist-src/index.js"],"sourcesContent":["const REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nexport async function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) ||\n REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp\n ? \"app\"\n : isInstallation\n ? \"installation\"\n : isUserToServer\n ? \"user-to-server\"\n : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType,\n };\n}\n","/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nexport function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n","import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nexport async function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n","import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nexport const createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token),\n });\n};\n"],"names":["REGEX_IS_INSTALLATION_LEGACY","REGEX_IS_INSTALLATION","REGEX_IS_USER_TO_SERVER","auth","token","isApp","split","length","isInstallation","test","isUserToServer","tokenType","type","withAuthorizationPrefix","hook","request","route","parameters","endpoint","merge","headers","authorization","createTokenAuth","Error","replace","Object","assign","bind"],"mappings":";;;;AAAA,MAAMA,4BAA4B,GAAG,OAArC;AACA,MAAMC,qBAAqB,GAAG,OAA9B;AACA,MAAMC,uBAAuB,GAAG,OAAhC;AACO,eAAeC,IAAf,CAAoBC,KAApB,EAA2B;AAC9B,QAAMC,KAAK,GAAGD,KAAK,CAACE,KAAN,CAAY,IAAZ,EAAkBC,MAAlB,KAA6B,CAA3C;AACA,QAAMC,cAAc,GAAGR,4BAA4B,CAACS,IAA7B,CAAkCL,KAAlC,KACnBH,qBAAqB,CAACQ,IAAtB,CAA2BL,KAA3B,CADJ;AAEA,QAAMM,cAAc,GAAGR,uBAAuB,CAACO,IAAxB,CAA6BL,KAA7B,CAAvB;AACA,QAAMO,SAAS,GAAGN,KAAK,GACjB,KADiB,GAEjBG,cAAc,GACV,cADU,GAEVE,cAAc,GACV,gBADU,GAEV,OANd;AAOA,SAAO;AACHE,IAAAA,IAAI,EAAE,OADH;AAEHR,IAAAA,KAAK,EAAEA,KAFJ;AAGHO,IAAAA;AAHG,GAAP;AAKH;;ACpBD;AACA;AACA;AACA;AACA;AACA,AAAO,SAASE,uBAAT,CAAiCT,KAAjC,EAAwC;AAC3C,MAAIA,KAAK,CAACE,KAAN,CAAY,IAAZ,EAAkBC,MAAlB,KAA6B,CAAjC,EAAoC;AAChC,WAAQ,UAASH,KAAM,EAAvB;AACH;;AACD,SAAQ,SAAQA,KAAM,EAAtB;AACH;;ACTM,eAAeU,IAAf,CAAoBV,KAApB,EAA2BW,OAA3B,EAAoCC,KAApC,EAA2CC,UAA3C,EAAuD;AAC1D,QAAMC,QAAQ,GAAGH,OAAO,CAACG,QAAR,CAAiBC,KAAjB,CAAuBH,KAAvB,EAA8BC,UAA9B,CAAjB;AACAC,EAAAA,QAAQ,CAACE,OAAT,CAAiBC,aAAjB,GAAiCR,uBAAuB,CAACT,KAAD,CAAxD;AACA,SAAOW,OAAO,CAACG,QAAD,CAAd;AACH;;MCHYI,eAAe,GAAG,SAASA,eAAT,CAAyBlB,KAAzB,EAAgC;AAC3D,MAAI,CAACA,KAAL,EAAY;AACR,UAAM,IAAImB,KAAJ,CAAU,0DAAV,CAAN;AACH;;AACD,MAAI,OAAOnB,KAAP,KAAiB,QAArB,EAA+B;AAC3B,UAAM,IAAImB,KAAJ,CAAU,uEAAV,CAAN;AACH;;AACDnB,EAAAA,KAAK,GAAGA,KAAK,CAACoB,OAAN,CAAc,oBAAd,EAAoC,EAApC,CAAR;AACA,SAAOC,MAAM,CAACC,MAAP,CAAcvB,IAAI,CAACwB,IAAL,CAAU,IAAV,EAAgBvB,KAAhB,CAAd,EAAsC;AACzCU,IAAAA,IAAI,EAAEA,IAAI,CAACa,IAAL,CAAU,IAAV,EAAgBvB,KAAhB;AADmC,GAAtC,CAAP;AAGH,CAXM;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/auth-token/dist-src/auth.js b/node_modules/@octokit/auth-token/dist-src/auth.js new file mode 100644 index 0000000..b22ce98 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/auth.js @@ -0,0 +1,21 @@ +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +export async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || + REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp + ? "app" + : isInstallation + ? "installation" + : isUserToServer + ? "user-to-server" + : "oauth"; + return { + type: "token", + token: token, + tokenType, + }; +} diff --git a/node_modules/@octokit/auth-token/dist-src/hook.js b/node_modules/@octokit/auth-token/dist-src/hook.js new file mode 100644 index 0000000..f8e47f0 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/hook.js @@ -0,0 +1,6 @@ +import { withAuthorizationPrefix } from "./with-authorization-prefix"; +export async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} diff --git a/node_modules/@octokit/auth-token/dist-src/index.js b/node_modules/@octokit/auth-token/dist-src/index.js new file mode 100644 index 0000000..f2ddd63 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/index.js @@ -0,0 +1,14 @@ +import { auth } from "./auth"; +import { hook } from "./hook"; +export const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token), + }); +}; diff --git a/node_modules/@octokit/auth-token/dist-src/types.js b/node_modules/@octokit/auth-token/dist-src/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js b/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js new file mode 100644 index 0000000..9035813 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js @@ -0,0 +1,11 @@ +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +export function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} diff --git a/node_modules/@octokit/auth-token/dist-types/auth.d.ts b/node_modules/@octokit/auth-token/dist-types/auth.d.ts new file mode 100644 index 0000000..dc41835 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/auth.d.ts @@ -0,0 +1,2 @@ +import { Token, Authentication } from "./types"; +export declare function auth(token: Token): Promise; diff --git a/node_modules/@octokit/auth-token/dist-types/hook.d.ts b/node_modules/@octokit/auth-token/dist-types/hook.d.ts new file mode 100644 index 0000000..21e4b6f --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/hook.d.ts @@ -0,0 +1,2 @@ +import { AnyResponse, EndpointOptions, RequestInterface, RequestParameters, Route, Token } from "./types"; +export declare function hook(token: Token, request: RequestInterface, route: Route | EndpointOptions, parameters?: RequestParameters): Promise; diff --git a/node_modules/@octokit/auth-token/dist-types/index.d.ts b/node_modules/@octokit/auth-token/dist-types/index.d.ts new file mode 100644 index 0000000..5999429 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/index.d.ts @@ -0,0 +1,7 @@ +import { StrategyInterface, Token, Authentication } from "./types"; +export declare type Types = { + StrategyOptions: Token; + AuthOptions: never; + Authentication: Authentication; +}; +export declare const createTokenAuth: StrategyInterface; diff --git a/node_modules/@octokit/auth-token/dist-types/types.d.ts b/node_modules/@octokit/auth-token/dist-types/types.d.ts new file mode 100644 index 0000000..0ae24de --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/types.d.ts @@ -0,0 +1,33 @@ +import * as OctokitTypes from "@octokit/types"; +export declare type AnyResponse = OctokitTypes.OctokitResponse; +export declare type StrategyInterface = OctokitTypes.StrategyInterface<[ + Token +], [ +], Authentication>; +export declare type EndpointDefaults = OctokitTypes.EndpointDefaults; +export declare type EndpointOptions = OctokitTypes.EndpointOptions; +export declare type RequestParameters = OctokitTypes.RequestParameters; +export declare type RequestInterface = OctokitTypes.RequestInterface; +export declare type Route = OctokitTypes.Route; +export declare type Token = string; +export declare type OAuthTokenAuthentication = { + type: "token"; + tokenType: "oauth"; + token: Token; +}; +export declare type InstallationTokenAuthentication = { + type: "token"; + tokenType: "installation"; + token: Token; +}; +export declare type AppAuthentication = { + type: "token"; + tokenType: "app"; + token: Token; +}; +export declare type UserToServerAuthentication = { + type: "token"; + tokenType: "user-to-server"; + token: Token; +}; +export declare type Authentication = OAuthTokenAuthentication | InstallationTokenAuthentication | AppAuthentication | UserToServerAuthentication; diff --git a/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts b/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts new file mode 100644 index 0000000..2e52c31 --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts @@ -0,0 +1,6 @@ +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +export declare function withAuthorizationPrefix(token: string): string; diff --git a/node_modules/@octokit/auth-token/dist-web/index.js b/node_modules/@octokit/auth-token/dist-web/index.js new file mode 100644 index 0000000..8b1cd7d --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-web/index.js @@ -0,0 +1,55 @@ +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || + REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp + ? "app" + : isInstallation + ? "installation" + : isUserToServer + ? "user-to-server" + : "oauth"; + return { + type: "token", + token: token, + tokenType, + }; +} + +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token), + }); +}; + +export { createTokenAuth }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/auth-token/dist-web/index.js.map b/node_modules/@octokit/auth-token/dist-web/index.js.map new file mode 100644 index 0000000..1d6197b --- /dev/null +++ b/node_modules/@octokit/auth-token/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/auth.js","../dist-src/with-authorization-prefix.js","../dist-src/hook.js","../dist-src/index.js"],"sourcesContent":["const REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nexport async function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) ||\n REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp\n ? \"app\"\n : isInstallation\n ? \"installation\"\n : isUserToServer\n ? \"user-to-server\"\n : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType,\n };\n}\n","/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nexport function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n","import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nexport async function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n","import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nexport const createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token),\n });\n};\n"],"names":[],"mappings":"AAAA,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAC7C,MAAM,qBAAqB,GAAG,OAAO,CAAC;AACtC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AACjC,eAAe,IAAI,CAAC,KAAK,EAAE;AAClC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACjD,IAAI,MAAM,cAAc,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;AACnE,QAAQ,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAI,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,SAAS,GAAG,KAAK;AAC3B,UAAU,KAAK;AACf,UAAU,cAAc;AACxB,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,kBAAkB,gBAAgB;AAClC,kBAAkB,OAAO,CAAC;AAC1B,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,SAAS;AACjB,KAAK,CAAC;AACN;;ACpBA;AACA;AACA;AACA;AACA;AACA,AAAO,SAAS,uBAAuB,CAAC,KAAK,EAAE;AAC/C,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,QAAQ,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5B,CAAC;;ACTM,eAAe,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;AAC9D,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC/D,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpE,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;;ACHW,MAAC,eAAe,GAAG,SAAS,eAAe,CAAC,KAAK,EAAE;AAC/D,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AACpF,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AACjG,KAAK;AACL,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACpD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AACjD,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACpC,KAAK,CAAC,CAAC;AACP,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/auth-token/package.json b/node_modules/@octokit/auth-token/package.json new file mode 100644 index 0000000..1b0df71 --- /dev/null +++ b/node_modules/@octokit/auth-token/package.json @@ -0,0 +1,45 @@ +{ + "name": "@octokit/auth-token", + "description": "GitHub API token authentication for browsers and Node.js", + "version": "2.5.0", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "github", + "octokit", + "authentication", + "api" + ], + "repository": "github:octokit/auth-token.js", + "dependencies": { + "@octokit/types": "^6.0.3" + }, + "devDependencies": { + "@octokit/core": "^3.0.0", + "@octokit/request": "^5.3.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^27.0.0", + "fetch-mock": "^9.0.0", + "jest": "^27.0.0", + "prettier": "2.4.1", + "semantic-release": "^17.0.0", + "ts-jest": "^27.0.0-next.12", + "typescript": "^4.0.0" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/core/LICENSE b/node_modules/@octokit/core/LICENSE new file mode 100644 index 0000000..ef2c18e --- /dev/null +++ b/node_modules/@octokit/core/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/core/README.md b/node_modules/@octokit/core/README.md new file mode 100644 index 0000000..b540cb9 --- /dev/null +++ b/node_modules/@octokit/core/README.md @@ -0,0 +1,448 @@ +# core.js + +> Extendable client for GitHub's REST & GraphQL APIs + +[![@latest](https://img.shields.io/npm/v/@octokit/core.svg)](https://www.npmjs.com/package/@octokit/core) +[![Build Status](https://github.com/octokit/core.js/workflows/Test/badge.svg)](https://github.com/octokit/core.js/actions?query=workflow%3ATest+branch%3Amaster) + + + +- [Usage](#usage) + - [REST API example](#rest-api-example) + - [GraphQL example](#graphql-example) +- [Options](#options) +- [Defaults](#defaults) +- [Authentication](#authentication) +- [Logging](#logging) +- [Hooks](#hooks) +- [Plugins](#plugins) +- [Build your own Octokit with Plugins and Defaults](#build-your-own-octokit-with-plugins-and-defaults) +- [LICENSE](#license) + + + +If you need a minimalistic library to utilize GitHub's [REST API](https://developer.github.com/v3/) and [GraphQL API](https://developer.github.com/v4/) which you can extend with plugins as needed, then `@octokit/core` is a great starting point. + +If you don't need the Plugin API then using [`@octokit/request`](https://github.com/octokit/request.js/) or [`@octokit/graphql`](https://github.com/octokit/graphql.js/) directly is a good alternative. + +## Usage + + + + + + +
+Browsers + +Load @octokit/core directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/core + +```js +const { Octokit } = require("@octokit/core"); +// or: import { Octokit } from "@octokit/core"; +``` + +
+ +### REST API example + +```js +// Create a personal access token at https://github.com/settings/tokens/new?scopes=repo +const octokit = new Octokit({ auth: `personal-access-token123` }); + +const response = await octokit.request("GET /orgs/{org}/repos", { + org: "octokit", + type: "private", +}); +``` + +See [`@octokit/request`](https://github.com/octokit/request.js) for full documentation of the `.request` method. + +### GraphQL example + +```js +const octokit = new Octokit({ auth: `secret123` }); + +const response = await octokit.graphql( + `query ($login: String!) { + organization(login: $login) { + repositories(privacy: PRIVATE) { + totalCount + } + } + }`, + { login: "octokit" } +); +``` + +See [`@octokit/graphql`](https://github.com/octokit/graphql.js) for full documentation of the `.graphql` method. + +## Options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ options.authStrategy + + Function + + Defaults to @octokit/auth-token. See Authentication below for examples. +
+ options.auth + + String or Object + + See Authentication below for examples. +
+ options.baseUrl + + String + + +When using with GitHub Enterprise Server, set `options.baseUrl` to the root URL of the API. For example, if your GitHub Enterprise Server's hostname is `github.acme-inc.com`, then set `options.baseUrl` to `https://github.acme-inc.com/api/v3`. Example + +```js +const octokit = new Octokit({ + baseUrl: "https://github.acme-inc.com/api/v3", +}); +``` + +
+ options.previews + + Array of Strings + + +Some REST API endpoints require preview headers to be set, or enable +additional features. Preview headers can be set on a per-request basis, e.g. + +```js +octokit.request("POST /repos/{owner}/{repo}/pulls", { + mediaType: { + previews: ["shadow-cat"], + }, + owner, + repo, + title: "My pull request", + base: "master", + head: "my-feature", + draft: true, +}); +``` + +You can also set previews globally, by setting the `options.previews` option on the constructor. Example: + +```js +const octokit = new Octokit({ + previews: ["shadow-cat"], +}); +``` + +
+ options.request + + Object + + +Set a default request timeout (`options.request.timeout`) or an [`http(s).Agent`](https://nodejs.org/api/http.html#http_class_http_agent) e.g. for proxy usage (Node only, `options.request.agent`). + +There are more `options.request.*` options, see [`@octokit/request` options](https://github.com/octokit/request.js#request). `options.request` can also be set on a per-request basis. + +
+ options.timeZone + + String + + +Sets the `Time-Zone` header which defines a timezone according to the [list of names from the Olson database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + +```js +const octokit = new Octokit({ + timeZone: "America/Los_Angeles", +}); +``` + +The time zone header will determine the timezone used for generating the timestamp when creating commits. See [GitHub's Timezones documentation](https://developer.github.com/v3/#timezones). + +
+ options.userAgent + + String + + +A custom user agent string for your app or library. Example + +```js +const octokit = new Octokit({ + userAgent: "my-app/v1.2.3", +}); +``` + +
+ +## Defaults + +You can create a new Octokit class with customized default options. + +```js +const MyOctokit = Octokit.defaults({ + auth: "personal-access-token123", + baseUrl: "https://github.acme-inc.com/api/v3", + userAgent: "my-app/v1.2.3", +}); +const octokit1 = new MyOctokit(); +const octokit2 = new MyOctokit(); +``` + +If you pass additional options to your new constructor, the options will be merged shallowly. + +```js +const MyOctokit = Octokit.defaults({ + foo: { + opt1: 1, + }, +}); +const octokit = new MyOctokit({ + foo: { + opt2: 1, + }, +}); +// options will be { foo: { opt2: 1 }} +``` + +If you need a deep or conditional merge, you can pass a function instead. + +```js +const MyOctokit = Octokit.defaults((options) => { + return { + foo: Object.assign({}, options.foo, { opt2: 1 }), + }; +}); +const octokit = new MyOctokit({ + foo: { opt2: 1 }, +}); +// options will be { foo: { opt1: 1, opt2: 1 }} +``` + +Be careful about mutating the `options` object in the `Octokit.defaults` callback, as it can have unforeseen consequences. + +## Authentication + +Authentication is optional for some REST API endpoints accessing public data, but is required for GraphQL queries. Using authentication also increases your [API rate limit](https://developer.github.com/v3/#rate-limiting). + +By default, Octokit authenticates using the [token authentication strategy](https://github.com/octokit/auth-token.js). Pass in a token using `options.auth`. It can be a personal access token, an OAuth token, an installation access token or a JSON Web Token for GitHub App authentication. The `Authorization` header will be set according to the type of token. + +```js +import { Octokit } from "@octokit/core"; + +const octokit = new Octokit({ + auth: "mypersonalaccesstoken123", +}); + +const { data } = await octokit.request("/user"); +``` + +To use a different authentication strategy, set `options.authStrategy`. A list of authentication strategies is available at [octokit/authentication-strategies.js](https://github.com/octokit/authentication-strategies.js/#readme). + +Example + +```js +import { Octokit } from "@octokit/core"; +import { createAppAuth } from "@octokit/auth-app"; + +const appOctokit = new Octokit({ + authStrategy: createAppAuth, + auth: { + appId: 123, + privateKey: process.env.PRIVATE_KEY, + }, +}); + +const { data } = await appOctokit.request("/app"); +``` + +The `.auth()` method returned by the current authentication strategy can be accessed at `octokit.auth()`. Example + +```js +const { token } = await appOctokit.auth({ + type: "installation", + installationId: 123, +}); +``` + +## Logging + +There are four built-in log methods + +1. `octokit.log.debug(message[, additionalInfo])` +1. `octokit.log.info(message[, additionalInfo])` +1. `octokit.log.warn(message[, additionalInfo])` +1. `octokit.log.error(message[, additionalInfo])` + +They can be configured using the [`log` client option](client-options). By default, `octokit.log.debug()` and `octokit.log.info()` are no-ops, while the other two call `console.warn()` and `console.error()` respectively. + +This is useful if you build reusable [plugins](#plugins). + +If you would like to make the log level configurable using an environment variable or external option, we recommend the [console-log-level](https://github.com/watson/console-log-level) package. Example + +```js +const octokit = new Octokit({ + log: require("console-log-level")({ level: "info" }), +}); +``` + +## Hooks + +You can customize Octokit's request lifecycle with hooks. + +```js +octokit.hook.before("request", async (options) => { + validate(options); +}); +octokit.hook.after("request", async (response, options) => { + console.log(`${options.method} ${options.url}: ${response.status}`); +}); +octokit.hook.error("request", async (error, options) => { + if (error.status === 304) { + return findInCache(error.response.headers.etag); + } + + throw error; +}); +octokit.hook.wrap("request", async (request, options) => { + // add logic before, after, catch errors or replace the request altogether + return request(options); +}); +``` + +See [before-after-hook](https://github.com/gr2m/before-after-hook#readme) for more documentation on hooks. + +## Plugins + +Octokit’s functionality can be extended using plugins. The `Octokit.plugin()` method accepts a plugin (or many) and returns a new constructor. + +A plugin is a function which gets two arguments: + +1. the current instance +2. the options passed to the constructor. + +In order to extend `octokit`'s API, the plugin must return an object with the new methods. + +```js +// index.js +const { Octokit } = require("@octokit/core") +const MyOctokit = Octokit.plugin( + require("./lib/my-plugin"), + require("octokit-plugin-example") +); + +const octokit = new MyOctokit({ greeting: "Moin moin" }); +octokit.helloWorld(); // logs "Moin moin, world!" +octokit.request("GET /"); // logs "GET / - 200 in 123ms" + +// lib/my-plugin.js +module.exports = (octokit, options = { greeting: "Hello" }) => { + // hook into the request lifecycle + octokit.hook.wrap("request", async (request, options) => { + const time = Date.now(); + const response = await request(options); + console.log( + `${options.method} ${options.url} – ${response.status} in ${Date.now() - + time}ms` + ); + return response; + }); + + // add a custom method + return { + helloWorld: () => console.log(`${options.greeting}, world!`); + } +}; +``` + +## Build your own Octokit with Plugins and Defaults + +You can build your own Octokit class with preset default options and plugins. In fact, this is mostly how the `@octokit/` modules work, such as [`@octokit/action`](https://github.com/octokit/action.js): + +```js +const { Octokit } = require("@octokit/core"); +const MyActionOctokit = Octokit.plugin( + require("@octokit/plugin-paginate-rest").paginateRest, + require("@octokit/plugin-throttling").throttling, + require("@octokit/plugin-retry").retry +).defaults({ + throttle: { + onAbuseLimit: (retryAfter, options) => { + /* ... */ + }, + onRateLimit: (retryAfter, options) => { + /* ... */ + }, + }, + authStrategy: require("@octokit/auth-action").createActionAuth, + userAgent: `my-octokit-action/v1.2.3`, +}); + +const octokit = new MyActionOctokit(); +const installations = await octokit.paginate("GET /app/installations"); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/core/dist-node/index.js b/node_modules/@octokit/core/dist-node/index.js new file mode 100644 index 0000000..0f46e61 --- /dev/null +++ b/node_modules/@octokit/core/dist-node/index.js @@ -0,0 +1,176 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var universalUserAgent = require('universal-user-agent'); +var beforeAfterHook = require('before-after-hook'); +var request = require('@octokit/request'); +var graphql = require('@octokit/graphql'); +var authToken = require('@octokit/auth-token'); + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = _objectWithoutPropertiesLoose(source, excluded); + + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +const VERSION = "3.6.0"; + +const _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); + + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, options.auth)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); + } + + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } + + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + + + static plugin(...newPlugins) { + var _a; + + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } + +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; + +exports.Octokit = Octokit; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/core/dist-node/index.js.map b/node_modules/@octokit/core/dist-node/index.js.map new file mode 100644 index 0000000..3467e52 --- /dev/null +++ b/node_modules/@octokit/core/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"3.6.0\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version\";\nexport class Octokit {\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\"),\n }),\n mediaType: {\n previews: [],\n format: \"\",\n },\n };\n // prepend default user agent with `options.userAgent` if set\n requestDefaults.headers[\"user-agent\"] = [\n options.userAgent,\n `octokit-core.js/${VERSION} ${getUserAgent()}`,\n ]\n .filter(Boolean)\n .join(\" \");\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => { },\n info: () => { },\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n }, options.log);\n this.hook = hook;\n // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\",\n });\n }\n else {\n // (2)\n const auth = createTokenAuth(options.auth);\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n }\n else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions,\n }, options.auth));\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n // apply plugins\n // https://stackoverflow.com/a/16345172\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach((plugin) => {\n Object.assign(this, plugin(this, options));\n });\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent\n ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`,\n }\n : null));\n }\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n var _a;\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {\n },\n _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))),\n _a);\n return NewOctokit;\n }\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n"],"names":["VERSION","Octokit","constructor","options","hook","Collection","requestDefaults","baseUrl","request","endpoint","DEFAULTS","headers","Object","assign","bind","mediaType","previews","format","userAgent","getUserAgent","filter","Boolean","join","timeZone","defaults","graphql","withCustomRequest","log","debug","info","warn","console","error","authStrategy","auth","type","createTokenAuth","wrap","otherOptions","octokit","octokitOptions","classConstructor","plugins","forEach","plugin","OctokitWithDefaults","args","newPlugins","_a","currentPlugins","NewOctokit","concat","includes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;;ACAP,AAMO,MAAMC,OAAN,CAAc;AACjBC,EAAAA,WAAW,CAACC,OAAO,GAAG,EAAX,EAAe;AACtB,UAAMC,IAAI,GAAG,IAAIC,0BAAJ,EAAb;AACA,UAAMC,eAAe,GAAG;AACpBC,MAAAA,OAAO,EAAEC,eAAO,CAACC,QAAR,CAAiBC,QAAjB,CAA0BH,OADf;AAEpBI,MAAAA,OAAO,EAAE,EAFW;AAGpBH,MAAAA,OAAO,EAAEI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACK,OAA1B,EAAmC;AACxC;AACAJ,QAAAA,IAAI,EAAEA,IAAI,CAACU,IAAL,CAAU,IAAV,EAAgB,SAAhB;AAFkC,OAAnC,CAHW;AAOpBC,MAAAA,SAAS,EAAE;AACPC,QAAAA,QAAQ,EAAE,EADH;AAEPC,QAAAA,MAAM,EAAE;AAFD;AAPS,KAAxB,CAFsB;;AAetBX,IAAAA,eAAe,CAACK,OAAhB,CAAwB,YAAxB,IAAwC,CACpCR,OAAO,CAACe,SAD4B,EAEnC,mBAAkBlB,OAAQ,IAAGmB,+BAAY,EAAG,EAFT,EAInCC,MAJmC,CAI5BC,OAJ4B,EAKnCC,IALmC,CAK9B,GAL8B,CAAxC;;AAMA,QAAInB,OAAO,CAACI,OAAZ,EAAqB;AACjBD,MAAAA,eAAe,CAACC,OAAhB,GAA0BJ,OAAO,CAACI,OAAlC;AACH;;AACD,QAAIJ,OAAO,CAACa,QAAZ,EAAsB;AAClBV,MAAAA,eAAe,CAACS,SAAhB,CAA0BC,QAA1B,GAAqCb,OAAO,CAACa,QAA7C;AACH;;AACD,QAAIb,OAAO,CAACoB,QAAZ,EAAsB;AAClBjB,MAAAA,eAAe,CAACK,OAAhB,CAAwB,WAAxB,IAAuCR,OAAO,CAACoB,QAA/C;AACH;;AACD,SAAKf,OAAL,GAAeA,eAAO,CAACgB,QAAR,CAAiBlB,eAAjB,CAAf;AACA,SAAKmB,OAAL,GAAeC,yBAAiB,CAAC,KAAKlB,OAAN,CAAjB,CAAgCgB,QAAhC,CAAyClB,eAAzC,CAAf;AACA,SAAKqB,GAAL,GAAWf,MAAM,CAACC,MAAP,CAAc;AACrBe,MAAAA,KAAK,EAAE,MAAM,EADQ;AAErBC,MAAAA,IAAI,EAAE,MAAM,EAFS;AAGrBC,MAAAA,IAAI,EAAEC,OAAO,CAACD,IAAR,CAAahB,IAAb,CAAkBiB,OAAlB,CAHe;AAIrBC,MAAAA,KAAK,EAAED,OAAO,CAACC,KAAR,CAAclB,IAAd,CAAmBiB,OAAnB;AAJc,KAAd,EAKR5B,OAAO,CAACwB,GALA,CAAX;AAMA,SAAKvB,IAAL,GAAYA,IAAZ,CAtCsB;AAwCtB;AACA;AACA;AACA;;AACA,QAAI,CAACD,OAAO,CAAC8B,YAAb,EAA2B;AACvB,UAAI,CAAC9B,OAAO,CAAC+B,IAAb,EAAmB;AACf;AACA,aAAKA,IAAL,GAAY,aAAa;AACrBC,UAAAA,IAAI,EAAE;AADe,SAAb,CAAZ;AAGH,OALD,MAMK;AACD;AACA,cAAMD,IAAI,GAAGE,yBAAe,CAACjC,OAAO,CAAC+B,IAAT,CAA5B,CAFC;;AAID9B,QAAAA,IAAI,CAACiC,IAAL,CAAU,SAAV,EAAqBH,IAAI,CAAC9B,IAA1B;AACA,aAAK8B,IAAL,GAAYA,IAAZ;AACH;AACJ,KAdD,MAeK;AACD,YAAM;AAAED,QAAAA;AAAF,UAAoC9B,OAA1C;AAAA,YAAyBmC,YAAzB,4BAA0CnC,OAA1C;;AACA,YAAM+B,IAAI,GAAGD,YAAY,CAACrB,MAAM,CAACC,MAAP,CAAc;AACpCL,QAAAA,OAAO,EAAE,KAAKA,OADsB;AAEpCmB,QAAAA,GAAG,EAAE,KAAKA,GAF0B;AAGpC;AACA;AACA;AACA;AACA;AACAY,QAAAA,OAAO,EAAE,IAR2B;AASpCC,QAAAA,cAAc,EAAEF;AAToB,OAAd,EAUvBnC,OAAO,CAAC+B,IAVe,CAAD,CAAzB,CAFC;;AAcD9B,MAAAA,IAAI,CAACiC,IAAL,CAAU,SAAV,EAAqBH,IAAI,CAAC9B,IAA1B;AACA,WAAK8B,IAAL,GAAYA,IAAZ;AACH,KA3EqB;AA6EtB;;;AACA,UAAMO,gBAAgB,GAAG,KAAKvC,WAA9B;AACAuC,IAAAA,gBAAgB,CAACC,OAAjB,CAAyBC,OAAzB,CAAkCC,MAAD,IAAY;AACzChC,MAAAA,MAAM,CAACC,MAAP,CAAc,IAAd,EAAoB+B,MAAM,CAAC,IAAD,EAAOzC,OAAP,CAA1B;AACH,KAFD;AAGH;;AACc,SAARqB,QAAQ,CAACA,QAAD,EAAW;AACtB,UAAMqB,mBAAmB,GAAG,cAAc,IAAd,CAAmB;AAC3C3C,MAAAA,WAAW,CAAC,GAAG4C,IAAJ,EAAU;AACjB,cAAM3C,OAAO,GAAG2C,IAAI,CAAC,CAAD,CAAJ,IAAW,EAA3B;;AACA,YAAI,OAAOtB,QAAP,KAAoB,UAAxB,EAAoC;AAChC,gBAAMA,QAAQ,CAACrB,OAAD,CAAd;AACA;AACH;;AACD,cAAMS,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBW,QAAlB,EAA4BrB,OAA5B,EAAqCA,OAAO,CAACe,SAAR,IAAqBM,QAAQ,CAACN,SAA9B,GACrC;AACEA,UAAAA,SAAS,EAAG,GAAEf,OAAO,CAACe,SAAU,IAAGM,QAAQ,CAACN,SAAU;AADxD,SADqC,GAIrC,IAJA,CAAN;AAKH;;AAZ0C,KAA/C;AAcA,WAAO2B,mBAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACiB,SAAND,MAAM,CAAC,GAAGG,UAAJ,EAAgB;AACzB,QAAIC,EAAJ;;AACA,UAAMC,cAAc,GAAG,KAAKP,OAA5B;AACA,UAAMQ,UAAU,IAAIF,EAAE,GAAG,cAAc,IAAd,CAAmB,EAAxB,EAEhBA,EAAE,CAACN,OAAH,GAAaO,cAAc,CAACE,MAAf,CAAsBJ,UAAU,CAAC3B,MAAX,CAAmBwB,MAAD,IAAY,CAACK,cAAc,CAACG,QAAf,CAAwBR,MAAxB,CAA/B,CAAtB,CAFG,EAGhBI,EAHY,CAAhB;AAIA,WAAOE,UAAP;AACH;;AAnHgB;AAqHrBjD,OAAO,CAACD,OAAR,GAAkBA,OAAlB;AACAC,OAAO,CAACyC,OAAR,GAAkB,EAAlB;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/core/dist-src/index.js b/node_modules/@octokit/core/dist-src/index.js new file mode 100644 index 0000000..bdbc335 --- /dev/null +++ b/node_modules/@octokit/core/dist-src/index.js @@ -0,0 +1,125 @@ +import { getUserAgent } from "universal-user-agent"; +import { Collection } from "before-after-hook"; +import { request } from "@octokit/request"; +import { withCustomRequest } from "@octokit/graphql"; +import { createTokenAuth } from "@octokit/auth-token"; +import { VERSION } from "./version"; +export class Octokit { + constructor(options = {}) { + const hook = new Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request"), + }), + mediaType: { + previews: [], + format: "", + }, + }; + // prepend default user agent with `options.userAgent` if set + requestDefaults.headers["user-agent"] = [ + options.userAgent, + `octokit-core.js/${VERSION} ${getUserAgent()}`, + ] + .filter(Boolean) + .join(" "); + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => { }, + info: () => { }, + warn: console.warn.bind(console), + error: console.error.bind(console), + }, options.log); + this.hook = hook; + // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated", + }); + } + else { + // (2) + const auth = createTokenAuth(options.auth); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + } + else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions, + }, options.auth)); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + // apply plugins + // https://stackoverflow.com/a/16345172 + const classConstructor = this.constructor; + classConstructor.plugins.forEach((plugin) => { + Object.assign(this, plugin(this, options)); + }); + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent + ? { + userAgent: `${options.userAgent} ${defaults.userAgent}`, + } + : null)); + } + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + var _a; + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this { + }, + _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))), + _a); + return NewOctokit; + } +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; diff --git a/node_modules/@octokit/core/dist-src/types.js b/node_modules/@octokit/core/dist-src/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/core/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/core/dist-src/version.js b/node_modules/@octokit/core/dist-src/version.js new file mode 100644 index 0000000..bace1a9 --- /dev/null +++ b/node_modules/@octokit/core/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "3.6.0"; diff --git a/node_modules/@octokit/core/dist-types/index.d.ts b/node_modules/@octokit/core/dist-types/index.d.ts new file mode 100644 index 0000000..b757c5b --- /dev/null +++ b/node_modules/@octokit/core/dist-types/index.d.ts @@ -0,0 +1,30 @@ +import { HookCollection } from "before-after-hook"; +import { request } from "@octokit/request"; +import { graphql } from "@octokit/graphql"; +import { Constructor, Hooks, OctokitOptions, OctokitPlugin, ReturnTypeOf, UnionToIntersection } from "./types"; +export declare class Octokit { + static VERSION: string; + static defaults>(this: S, defaults: OctokitOptions | Function): S; + static plugins: OctokitPlugin[]; + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin & { + plugins: any[]; + }, T extends OctokitPlugin[]>(this: S, ...newPlugins: T): S & Constructor>>; + constructor(options?: OctokitOptions); + request: typeof request; + graphql: typeof graphql; + log: { + debug: (message: string, additionalInfo?: object) => any; + info: (message: string, additionalInfo?: object) => any; + warn: (message: string, additionalInfo?: object) => any; + error: (message: string, additionalInfo?: object) => any; + [key: string]: any; + }; + hook: HookCollection; + auth: (...args: unknown[]) => Promise; +} diff --git a/node_modules/@octokit/core/dist-types/types.d.ts b/node_modules/@octokit/core/dist-types/types.d.ts new file mode 100644 index 0000000..3970d0d --- /dev/null +++ b/node_modules/@octokit/core/dist-types/types.d.ts @@ -0,0 +1,44 @@ +import * as OctokitTypes from "@octokit/types"; +import { RequestError } from "@octokit/request-error"; +import { Octokit } from "."; +export declare type RequestParameters = OctokitTypes.RequestParameters; +export interface OctokitOptions { + authStrategy?: any; + auth?: any; + userAgent?: string; + previews?: string[]; + baseUrl?: string; + log?: { + debug: (message: string) => unknown; + info: (message: string) => unknown; + warn: (message: string) => unknown; + error: (message: string) => unknown; + }; + request?: OctokitTypes.RequestRequestOptions; + timeZone?: string; + [option: string]: any; +} +export declare type Constructor = new (...args: any[]) => T; +export declare type ReturnTypeOf = T extends AnyFunction ? ReturnType : T extends AnyFunction[] ? UnionToIntersection, void>> : never; +/** + * @author https://stackoverflow.com/users/2887218/jcalz + * @see https://stackoverflow.com/a/50375286/10325032 + */ +export declare type UnionToIntersection = (Union extends any ? (argument: Union) => void : never) extends (argument: infer Intersection) => void ? Intersection : never; +declare type AnyFunction = (...args: any) => any; +export declare type OctokitPlugin = (octokit: Octokit, options: OctokitOptions) => { + [key: string]: any; +} | void; +export declare type Hooks = { + request: { + Options: Required; + Result: OctokitTypes.OctokitResponse; + Error: RequestError | Error; + }; + [key: string]: { + Options: unknown; + Result: unknown; + Error: unknown; + }; +}; +export {}; diff --git a/node_modules/@octokit/core/dist-types/version.d.ts b/node_modules/@octokit/core/dist-types/version.d.ts new file mode 100644 index 0000000..f1a3d02 --- /dev/null +++ b/node_modules/@octokit/core/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "3.6.0"; diff --git a/node_modules/@octokit/core/dist-web/index.js b/node_modules/@octokit/core/dist-web/index.js new file mode 100644 index 0000000..741d231 --- /dev/null +++ b/node_modules/@octokit/core/dist-web/index.js @@ -0,0 +1,130 @@ +import { getUserAgent } from 'universal-user-agent'; +import { Collection } from 'before-after-hook'; +import { request } from '@octokit/request'; +import { withCustomRequest } from '@octokit/graphql'; +import { createTokenAuth } from '@octokit/auth-token'; + +const VERSION = "3.6.0"; + +class Octokit { + constructor(options = {}) { + const hook = new Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request"), + }), + mediaType: { + previews: [], + format: "", + }, + }; + // prepend default user agent with `options.userAgent` if set + requestDefaults.headers["user-agent"] = [ + options.userAgent, + `octokit-core.js/${VERSION} ${getUserAgent()}`, + ] + .filter(Boolean) + .join(" "); + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => { }, + info: () => { }, + warn: console.warn.bind(console), + error: console.error.bind(console), + }, options.log); + this.hook = hook; + // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated", + }); + } + else { + // (2) + const auth = createTokenAuth(options.auth); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + } + else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions, + }, options.auth)); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + // apply plugins + // https://stackoverflow.com/a/16345172 + const classConstructor = this.constructor; + classConstructor.plugins.forEach((plugin) => { + Object.assign(this, plugin(this, options)); + }); + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent + ? { + userAgent: `${options.userAgent} ${defaults.userAgent}`, + } + : null)); + } + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + var _a; + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this { + }, + _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))), + _a); + return NewOctokit; + } +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; + +export { Octokit }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/core/dist-web/index.js.map b/node_modules/@octokit/core/dist-web/index.js.map new file mode 100644 index 0000000..238c82e --- /dev/null +++ b/node_modules/@octokit/core/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"3.6.0\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version\";\nexport class Octokit {\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\"),\n }),\n mediaType: {\n previews: [],\n format: \"\",\n },\n };\n // prepend default user agent with `options.userAgent` if set\n requestDefaults.headers[\"user-agent\"] = [\n options.userAgent,\n `octokit-core.js/${VERSION} ${getUserAgent()}`,\n ]\n .filter(Boolean)\n .join(\" \");\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => { },\n info: () => { },\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n }, options.log);\n this.hook = hook;\n // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\",\n });\n }\n else {\n // (2)\n const auth = createTokenAuth(options.auth);\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n }\n else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions,\n }, options.auth));\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n // apply plugins\n // https://stackoverflow.com/a/16345172\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach((plugin) => {\n Object.assign(this, plugin(this, options));\n });\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent\n ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`,\n }\n : null));\n }\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n var _a;\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {\n },\n _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))),\n _a);\n return NewOctokit;\n }\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n"],"names":[],"mappings":";;;;;;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACMnC,MAAM,OAAO,CAAC;AACrB,IAAI,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;AACtC,QAAQ,MAAM,eAAe,GAAG;AAChC,YAAY,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO;AACtD,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE;AACxD;AACA,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;AAChD,aAAa,CAAC;AACd,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE,EAAE;AAC5B,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa;AACb,SAAS,CAAC;AACV;AACA,QAAQ,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG;AAChD,YAAY,OAAO,CAAC,SAAS;AAC7B,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AAC1D,SAAS;AACT,aAAa,MAAM,CAAC,OAAO,CAAC;AAC5B,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;AAC7B,YAAY,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACtD,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC9B,YAAY,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAClE,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC9B,YAAY,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;AACpE,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,YAAY,KAAK,EAAE,MAAM,GAAG;AAC5B,YAAY,IAAI,EAAE,MAAM,GAAG;AAC3B,YAAY,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5C,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACnC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC/B;AACA,gBAAgB,IAAI,CAAC,IAAI,GAAG,aAAa;AACzC,oBAAoB,IAAI,EAAE,iBAAiB;AAC3C,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,iBAAiB;AACjB;AACA,gBAAgB,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3D;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjC,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;AAC9D,YAAY,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;AACpD,gBAAgB,OAAO,EAAE,IAAI,CAAC,OAAO;AACrC,gBAAgB,GAAG,EAAE,IAAI,CAAC,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,cAAc,EAAE,YAAY;AAC5C,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7B,SAAS;AACT;AACA;AACA,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC;AAClD,QAAQ,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACrD,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,QAAQ,EAAE;AAC9B,QAAQ,MAAM,mBAAmB,GAAG,cAAc,IAAI,CAAC;AACvD,YAAY,WAAW,CAAC,GAAG,IAAI,EAAE;AACjC,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9C,gBAAgB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACpD,oBAAoB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;AAClG,sBAAsB;AACtB,wBAAwB,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/E,qBAAqB;AACrB,sBAAsB,IAAI,CAAC,CAAC,CAAC;AAC7B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,mBAAmB,CAAC;AACnC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,GAAG,UAAU,EAAE;AACjC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5C,QAAQ,MAAM,UAAU,IAAI,EAAE,GAAG,cAAc,IAAI,CAAC;AACpD,aAAa;AACb,YAAY,EAAE,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/G,YAAY,EAAE,CAAC,CAAC;AAChB,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,CAAC;AACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/core/package.json b/node_modules/@octokit/core/package.json new file mode 100644 index 0000000..548e76c --- /dev/null +++ b/node_modules/@octokit/core/package.json @@ -0,0 +1,57 @@ +{ + "name": "@octokit/core", + "description": "Extendable client for GitHub's REST & GraphQL APIs", + "version": "3.6.0", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "sdk", + "toolkit" + ], + "repository": "github:octokit/core.js", + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "devDependencies": { + "@octokit/auth": "^3.0.1", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^27.0.0", + "@types/lolex": "^5.1.0", + "@types/node": "^14.0.4", + "fetch-mock": "^9.0.0", + "http-proxy-agent": "^5.0.0", + "jest": "^27.0.0", + "lolex": "^6.0.0", + "prettier": "2.4.1", + "proxy": "^1.0.1", + "semantic-release": "^18.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^27.0.0", + "typescript": "^4.0.2" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/endpoint/LICENSE b/node_modules/@octokit/endpoint/LICENSE new file mode 100644 index 0000000..af5366d --- /dev/null +++ b/node_modules/@octokit/endpoint/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/endpoint/README.md b/node_modules/@octokit/endpoint/README.md new file mode 100644 index 0000000..1e5153f --- /dev/null +++ b/node_modules/@octokit/endpoint/README.md @@ -0,0 +1,421 @@ +# endpoint.js + +> Turns GitHub REST API endpoints into generic request options + +[![@latest](https://img.shields.io/npm/v/@octokit/endpoint.svg)](https://www.npmjs.com/package/@octokit/endpoint) +![Build Status](https://github.com/octokit/endpoint.js/workflows/Test/badge.svg) + +`@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library. + + + + + +- [Usage](#usage) +- [API](#api) + - [`endpoint(route, options)` or `endpoint(options)`](#endpointroute-options-or-endpointoptions) + - [`endpoint.defaults()`](#endpointdefaults) + - [`endpoint.DEFAULTS`](#endpointdefaults) + - [`endpoint.merge(route, options)` or `endpoint.merge(options)`](#endpointmergeroute-options-or-endpointmergeoptions) + - [`endpoint.parse()`](#endpointparse) +- [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) +- [LICENSE](#license) + + + +## Usage + + + + + + +
+Browsers + +Load @octokit/endpoint directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/endpoint + +```js +const { endpoint } = require("@octokit/endpoint"); +// or: import { endpoint } from "@octokit/endpoint"; +``` + +
+ +Example for [List organization repositories](https://developer.github.com/v3/repos/#list-organization-repositories) + +```js +const requestOptions = endpoint("GET /orgs/{org}/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); +``` + +The resulting `requestOptions` looks as follows + +```json +{ + "method": "GET", + "url": "https://api.github.com/orgs/octokit/repos?type=private", + "headers": { + "accept": "application/vnd.github.v3+json", + "authorization": "token 0000000000000000000000000000000000000001", + "user-agent": "octokit/endpoint.js v1.2.3" + } +} +``` + +You can pass `requestOptions` to common request libraries + +```js +const { url, ...options } = requestOptions; +// using with fetch (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +fetch(url, options); +// using with request (https://github.com/request/request) +request(requestOptions); +// using with got (https://github.com/sindresorhus/got) +got[options.method](url, options); +// using with axios +axios(requestOptions); +``` + +## API + +### `endpoint(route, options)` or `endpoint(options)` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + If set, it has to be a string consisting of URL and the request method, e.g., GET /orgs/{org}. If it’s set to a URL, only the method defaults to GET. +
+ options.method + + String + + Required unless route is set. Any supported http verb. Defaults to GET. +
+ options.url + + String + + Required unless route is set. A path or full URL which may contain :variable or {variable} placeholders, + e.g., /orgs/{org}/repos. The url is parsed using url-template. +
+ options.baseUrl + + String + + Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-endpoint.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
+
+ options.mediaType.format + + String + + Media type param, such as raw, diff, or text+json. See Media Types. Setting options.mediaType.format will amend the headers.accept value. +
+ options.mediaType.previews + + Array of Strings + + Name of previews, such as mercy, symmetra, or scarlet-witch. See API Previews. If options.mediaType.previews was set as default, the new previews will be merged into the default ones. Setting options.mediaType.previews will amend the headers.accept value. options.mediaType.previews will be merged with an existing array set using .defaults(). +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The data parameter" below. +
+ options.request + + Object + + Pass custom meta information for the request. The request object will be returned as is. +
+ +All other options will be passed depending on the `method` and `url` options. + +1. If the option key has a placeholder in the `url`, it will be used as the replacement. For example, if the passed options are `{url: '/orgs/{org}/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos`. +2. If the `method` is `GET` or `HEAD`, the option is passed as a query parameter. +3. Otherwise, the parameter is passed in the request body as a JSON key. + +**Result** + +`endpoint()` is a synchronous method and returns an object with the following keys: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
methodStringThe http method. Always lowercase.
urlStringThe url with placeholders replaced with passed parameters.
headersObjectAll header names are lowercased.
bodyAnyThe request body if one is present. Only for PATCH, POST, PUT, DELETE requests.
requestObjectRequest meta option, it will be returned as it was passed into endpoint()
+ +### `endpoint.defaults()` + +Override or set default options. Example: + +```js +const request = require("request"); +const myEndpoint = require("@octokit/endpoint").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-project", + per_page: 100, +}); + +request(myEndpoint(`GET /orgs/{org}/repos`)); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +const myProjectEndpointWithAuth = myProjectEndpoint.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, +}); +``` + +`myProjectEndpointWithAuth` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +### `endpoint.DEFAULTS` + +The current default options. + +```js +endpoint.DEFAULTS.baseUrl; // https://api.github.com +const myEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", +}); +myEndpoint.DEFAULTS.baseUrl; // https://github-enterprise.acme-inc.com/api/v3 +``` + +### `endpoint.merge(route, options)` or `endpoint.merge(options)` + +Get the defaulted endpoint options, but without parsing them into request options: + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +myProjectEndpoint.merge("GET /orgs/{org}/repos", { + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-secret-project", + type: "private", +}); + +// { +// baseUrl: 'https://github-enterprise.acme-inc.com/api/v3', +// method: 'GET', +// url: '/orgs/{org}/repos', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: `token 0000000000000000000000000000000000000001`, +// 'user-agent': 'myApp/1.2.3' +// }, +// org: 'my-secret-project', +// type: 'private' +// } +``` + +### `endpoint.parse()` + +Stateless method to turn endpoint options into request options. Calling +`endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + +## Special cases + + + +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead, the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const options = endpoint("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain", + }, +}); + +// options is +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case, you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +endpoint( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001`, + }, + data: "Hello, world!", + } +); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/endpoint/dist-node/index.js b/node_modules/@octokit/endpoint/dist-node/index.js new file mode 100644 index 0000000..70f24ff --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-node/index.js @@ -0,0 +1,390 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var isPlainObject = require('is-plain-object'); +var universalUserAgent = require('universal-user-agent'); + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.isPlainObject(options[key])) { + if (!(key in defaults)) Object.assign(result, { + [key]: options[key] + });else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { + [key]: options[key] + }); + } + }); + return result; +} + +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + + return obj; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else { + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates + + + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging + + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + } + + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + + if (names.length === 0) { + return url; + } + + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +const urlVariableRegex = /\{[^}]+\}/g; + +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} + +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; + } + + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* istanbul ignore file */ +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + + return part; + }).join(""); +} + +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} + +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} + +function isDefined(value) { + return value !== undefined && value !== null; +} + +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} + +function getValues(context, operator, key, modifier) { + var value = context[key], + result = []; + + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + + return result; +} + +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} + +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + + if (operator && operator !== "+") { + var separator = ","; + + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + + const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } + + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } + } + } // default content-type for JSON if body is set + + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/endpoint/dist-node/index.js.map b/node_modules/@octokit/endpoint/dist-node/index.js.map new file mode 100644 index 0000000..003e4f2 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/util/remove-undefined-properties.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n","import { isPlainObject } from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n","export function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n // remove properties with undefined values before merging\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map((name) => {\n if (name === \"q\") {\n return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter((option) => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template),\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\",\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter((option) => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map((preview) => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse,\n });\n}\n","export const VERSION = \"6.0.12\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent,\n },\n mediaType: {\n format: \"\",\n previews: [],\n },\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":["lowercaseKeys","object","Object","keys","reduce","newObj","key","toLowerCase","mergeDeep","defaults","options","result","assign","forEach","isPlainObject","removeUndefinedProperties","obj","undefined","merge","route","method","url","split","headers","mergedOptions","mediaType","previews","length","filter","preview","includes","concat","map","replace","addQueryParameters","parameters","separator","test","names","name","q","encodeURIComponent","join","urlVariableRegex","removeNonChars","variableName","extractUrlVariableNames","matches","match","a","b","omit","keysToOmit","option","encodeReserved","str","part","encodeURI","encodeUnreserved","c","charCodeAt","toString","toUpperCase","encodeValue","operator","value","isDefined","isKeyOperator","getValues","context","modifier","substring","parseInt","push","Array","isArray","k","tmp","parseUrl","template","expand","bind","operators","_","expression","literal","values","indexOf","charAt","substr","variable","exec","parse","body","urlVariableNames","baseUrl","omittedParameters","remainingParameters","isBinaryRequest","accept","format","previewsFromAcceptHeader","data","request","endpointWithDefaults","withDefaults","oldDefaults","newDefaults","DEFAULTS","endpoint","VERSION","userAgent","getUserAgent"],"mappings":";;;;;;;AAAO,SAASA,aAAT,CAAuBC,MAAvB,EAA+B;AAClC,MAAI,CAACA,MAAL,EAAa;AACT,WAAO,EAAP;AACH;;AACD,SAAOC,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBG,MAApB,CAA2B,CAACC,MAAD,EAASC,GAAT,KAAiB;AAC/CD,IAAAA,MAAM,CAACC,GAAG,CAACC,WAAJ,EAAD,CAAN,GAA4BN,MAAM,CAACK,GAAD,CAAlC;AACA,WAAOD,MAAP;AACH,GAHM,EAGJ,EAHI,CAAP;AAIH;;ACPM,SAASG,SAAT,CAAmBC,QAAnB,EAA6BC,OAA7B,EAAsC;AACzC,QAAMC,MAAM,GAAGT,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBH,QAAlB,CAAf;AACAP,EAAAA,MAAM,CAACC,IAAP,CAAYO,OAAZ,EAAqBG,OAArB,CAA8BP,GAAD,IAAS;AAClC,QAAIQ,2BAAa,CAACJ,OAAO,CAACJ,GAAD,CAAR,CAAjB,EAAiC;AAC7B,UAAI,EAAEA,GAAG,IAAIG,QAAT,CAAJ,EACIP,MAAM,CAACU,MAAP,CAAcD,MAAd,EAAsB;AAAE,SAACL,GAAD,GAAOI,OAAO,CAACJ,GAAD;AAAhB,OAAtB,EADJ,KAGIK,MAAM,CAACL,GAAD,CAAN,GAAcE,SAAS,CAACC,QAAQ,CAACH,GAAD,CAAT,EAAgBI,OAAO,CAACJ,GAAD,CAAvB,CAAvB;AACP,KALD,MAMK;AACDJ,MAAAA,MAAM,CAACU,MAAP,CAAcD,MAAd,EAAsB;AAAE,SAACL,GAAD,GAAOI,OAAO,CAACJ,GAAD;AAAhB,OAAtB;AACH;AACJ,GAVD;AAWA,SAAOK,MAAP;AACH;;ACfM,SAASI,yBAAT,CAAmCC,GAAnC,EAAwC;AAC3C,OAAK,MAAMV,GAAX,IAAkBU,GAAlB,EAAuB;AACnB,QAAIA,GAAG,CAACV,GAAD,CAAH,KAAaW,SAAjB,EAA4B;AACxB,aAAOD,GAAG,CAACV,GAAD,CAAV;AACH;AACJ;;AACD,SAAOU,GAAP;AACH;;ACJM,SAASE,KAAT,CAAeT,QAAf,EAAyBU,KAAzB,EAAgCT,OAAhC,EAAyC;AAC5C,MAAI,OAAOS,KAAP,KAAiB,QAArB,EAA+B;AAC3B,QAAI,CAACC,MAAD,EAASC,GAAT,IAAgBF,KAAK,CAACG,KAAN,CAAY,GAAZ,CAApB;AACAZ,IAAAA,OAAO,GAAGR,MAAM,CAACU,MAAP,CAAcS,GAAG,GAAG;AAAED,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KAAH,GAAqB;AAAEA,MAAAA,GAAG,EAAED;AAAP,KAAtC,EAAuDV,OAAvD,CAAV;AACH,GAHD,MAIK;AACDA,IAAAA,OAAO,GAAGR,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBO,KAAlB,CAAV;AACH,GAP2C;;;AAS5CT,EAAAA,OAAO,CAACa,OAAR,GAAkBvB,aAAa,CAACU,OAAO,CAACa,OAAT,CAA/B,CAT4C;;AAW5CR,EAAAA,yBAAyB,CAACL,OAAD,CAAzB;AACAK,EAAAA,yBAAyB,CAACL,OAAO,CAACa,OAAT,CAAzB;AACA,QAAMC,aAAa,GAAGhB,SAAS,CAACC,QAAQ,IAAI,EAAb,EAAiBC,OAAjB,CAA/B,CAb4C;;AAe5C,MAAID,QAAQ,IAAIA,QAAQ,CAACgB,SAAT,CAAmBC,QAAnB,CAA4BC,MAA5C,EAAoD;AAChDH,IAAAA,aAAa,CAACC,SAAd,CAAwBC,QAAxB,GAAmCjB,QAAQ,CAACgB,SAAT,CAAmBC,QAAnB,CAC9BE,MAD8B,CACtBC,OAAD,IAAa,CAACL,aAAa,CAACC,SAAd,CAAwBC,QAAxB,CAAiCI,QAAjC,CAA0CD,OAA1C,CADS,EAE9BE,MAF8B,CAEvBP,aAAa,CAACC,SAAd,CAAwBC,QAFD,CAAnC;AAGH;;AACDF,EAAAA,aAAa,CAACC,SAAd,CAAwBC,QAAxB,GAAmCF,aAAa,CAACC,SAAd,CAAwBC,QAAxB,CAAiCM,GAAjC,CAAsCH,OAAD,IAAaA,OAAO,CAACI,OAAR,CAAgB,UAAhB,EAA4B,EAA5B,CAAlD,CAAnC;AACA,SAAOT,aAAP;AACH;;ACzBM,SAASU,kBAAT,CAA4Bb,GAA5B,EAAiCc,UAAjC,EAA6C;AAChD,QAAMC,SAAS,GAAG,KAAKC,IAAL,CAAUhB,GAAV,IAAiB,GAAjB,GAAuB,GAAzC;AACA,QAAMiB,KAAK,GAAGpC,MAAM,CAACC,IAAP,CAAYgC,UAAZ,CAAd;;AACA,MAAIG,KAAK,CAACX,MAAN,KAAiB,CAArB,EAAwB;AACpB,WAAON,GAAP;AACH;;AACD,SAAQA,GAAG,GACPe,SADI,GAEJE,KAAK,CACAN,GADL,CACUO,IAAD,IAAU;AACf,QAAIA,IAAI,KAAK,GAAb,EAAkB;AACd,aAAQ,OAAOJ,UAAU,CAACK,CAAX,CAAalB,KAAb,CAAmB,GAAnB,EAAwBU,GAAxB,CAA4BS,kBAA5B,EAAgDC,IAAhD,CAAqD,GAArD,CAAf;AACH;;AACD,WAAQ,GAAEH,IAAK,IAAGE,kBAAkB,CAACN,UAAU,CAACI,IAAD,CAAX,CAAmB,EAAvD;AACH,GAND,EAOKG,IAPL,CAOU,GAPV,CAFJ;AAUH;;AChBD,MAAMC,gBAAgB,GAAG,YAAzB;;AACA,SAASC,cAAT,CAAwBC,YAAxB,EAAsC;AAClC,SAAOA,YAAY,CAACZ,OAAb,CAAqB,YAArB,EAAmC,EAAnC,EAAuCX,KAAvC,CAA6C,GAA7C,CAAP;AACH;;AACD,AAAO,SAASwB,uBAAT,CAAiCzB,GAAjC,EAAsC;AACzC,QAAM0B,OAAO,GAAG1B,GAAG,CAAC2B,KAAJ,CAAUL,gBAAV,CAAhB;;AACA,MAAI,CAACI,OAAL,EAAc;AACV,WAAO,EAAP;AACH;;AACD,SAAOA,OAAO,CAACf,GAAR,CAAYY,cAAZ,EAA4BxC,MAA5B,CAAmC,CAAC6C,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAAClB,MAAF,CAASmB,CAAT,CAA7C,EAA0D,EAA1D,CAAP;AACH;;ACVM,SAASC,IAAT,CAAclD,MAAd,EAAsBmD,UAAtB,EAAkC;AACrC,SAAOlD,MAAM,CAACC,IAAP,CAAYF,MAAZ,EACF2B,MADE,CACMyB,MAAD,IAAY,CAACD,UAAU,CAACtB,QAAX,CAAoBuB,MAApB,CADlB,EAEFjD,MAFE,CAEK,CAACY,GAAD,EAAMV,GAAN,KAAc;AACtBU,IAAAA,GAAG,CAACV,GAAD,CAAH,GAAWL,MAAM,CAACK,GAAD,CAAjB;AACA,WAAOU,GAAP;AACH,GALM,EAKJ,EALI,CAAP;AAMH;;ACPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,SAASsC,cAAT,CAAwBC,GAAxB,EAA6B;AACzB,SAAOA,GAAG,CACLjC,KADE,CACI,oBADJ,EAEFU,GAFE,CAEE,UAAUwB,IAAV,EAAgB;AACrB,QAAI,CAAC,eAAenB,IAAf,CAAoBmB,IAApB,CAAL,EAAgC;AAC5BA,MAAAA,IAAI,GAAGC,SAAS,CAACD,IAAD,CAAT,CAAgBvB,OAAhB,CAAwB,MAAxB,EAAgC,GAAhC,EAAqCA,OAArC,CAA6C,MAA7C,EAAqD,GAArD,CAAP;AACH;;AACD,WAAOuB,IAAP;AACH,GAPM,EAQFd,IARE,CAQG,EARH,CAAP;AASH;;AACD,SAASgB,gBAAT,CAA0BH,GAA1B,EAA+B;AAC3B,SAAOd,kBAAkB,CAACc,GAAD,CAAlB,CAAwBtB,OAAxB,CAAgC,UAAhC,EAA4C,UAAU0B,CAAV,EAAa;AAC5D,WAAO,MAAMA,CAAC,CAACC,UAAF,CAAa,CAAb,EAAgBC,QAAhB,CAAyB,EAAzB,EAA6BC,WAA7B,EAAb;AACH,GAFM,CAAP;AAGH;;AACD,SAASC,WAAT,CAAqBC,QAArB,EAA+BC,KAA/B,EAAsC3D,GAAtC,EAA2C;AACvC2D,EAAAA,KAAK,GACDD,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAjC,GACMV,cAAc,CAACW,KAAD,CADpB,GAEMP,gBAAgB,CAACO,KAAD,CAH1B;;AAIA,MAAI3D,GAAJ,EAAS;AACL,WAAOoD,gBAAgB,CAACpD,GAAD,CAAhB,GAAwB,GAAxB,GAA8B2D,KAArC;AACH,GAFD,MAGK;AACD,WAAOA,KAAP;AACH;AACJ;;AACD,SAASC,SAAT,CAAmBD,KAAnB,EAA0B;AACtB,SAAOA,KAAK,KAAKhD,SAAV,IAAuBgD,KAAK,KAAK,IAAxC;AACH;;AACD,SAASE,aAAT,CAAuBH,QAAvB,EAAiC;AAC7B,SAAOA,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAjC,IAAwCA,QAAQ,KAAK,GAA5D;AACH;;AACD,SAASI,SAAT,CAAmBC,OAAnB,EAA4BL,QAA5B,EAAsC1D,GAAtC,EAA2CgE,QAA3C,EAAqD;AACjD,MAAIL,KAAK,GAAGI,OAAO,CAAC/D,GAAD,CAAnB;AAAA,MAA0BK,MAAM,GAAG,EAAnC;;AACA,MAAIuD,SAAS,CAACD,KAAD,CAAT,IAAoBA,KAAK,KAAK,EAAlC,EAAsC;AAClC,QAAI,OAAOA,KAAP,KAAiB,QAAjB,IACA,OAAOA,KAAP,KAAiB,QADjB,IAEA,OAAOA,KAAP,KAAiB,SAFrB,EAEgC;AAC5BA,MAAAA,KAAK,GAAGA,KAAK,CAACJ,QAAN,EAAR;;AACA,UAAIS,QAAQ,IAAIA,QAAQ,KAAK,GAA7B,EAAkC;AAC9BL,QAAAA,KAAK,GAAGA,KAAK,CAACM,SAAN,CAAgB,CAAhB,EAAmBC,QAAQ,CAACF,QAAD,EAAW,EAAX,CAA3B,CAAR;AACH;;AACD3D,MAAAA,MAAM,CAAC8D,IAAP,CAAYV,WAAW,CAACC,QAAD,EAAWC,KAAX,EAAkBE,aAAa,CAACH,QAAD,CAAb,GAA0B1D,GAA1B,GAAgC,EAAlD,CAAvB;AACH,KARD,MASK;AACD,UAAIgE,QAAQ,KAAK,GAAjB,EAAsB;AAClB,YAAII,KAAK,CAACC,OAAN,CAAcV,KAAd,CAAJ,EAA0B;AACtBA,UAAAA,KAAK,CAACrC,MAAN,CAAasC,SAAb,EAAwBrD,OAAxB,CAAgC,UAAUoD,KAAV,EAAiB;AAC7CtD,YAAAA,MAAM,CAAC8D,IAAP,CAAYV,WAAW,CAACC,QAAD,EAAWC,KAAX,EAAkBE,aAAa,CAACH,QAAD,CAAb,GAA0B1D,GAA1B,GAAgC,EAAlD,CAAvB;AACH,WAFD;AAGH,SAJD,MAKK;AACDJ,UAAAA,MAAM,CAACC,IAAP,CAAY8D,KAAZ,EAAmBpD,OAAnB,CAA2B,UAAU+D,CAAV,EAAa;AACpC,gBAAIV,SAAS,CAACD,KAAK,CAACW,CAAD,CAAN,CAAb,EAAyB;AACrBjE,cAAAA,MAAM,CAAC8D,IAAP,CAAYV,WAAW,CAACC,QAAD,EAAWC,KAAK,CAACW,CAAD,CAAhB,EAAqBA,CAArB,CAAvB;AACH;AACJ,WAJD;AAKH;AACJ,OAbD,MAcK;AACD,cAAMC,GAAG,GAAG,EAAZ;;AACA,YAAIH,KAAK,CAACC,OAAN,CAAcV,KAAd,CAAJ,EAA0B;AACtBA,UAAAA,KAAK,CAACrC,MAAN,CAAasC,SAAb,EAAwBrD,OAAxB,CAAgC,UAAUoD,KAAV,EAAiB;AAC7CY,YAAAA,GAAG,CAACJ,IAAJ,CAASV,WAAW,CAACC,QAAD,EAAWC,KAAX,CAApB;AACH,WAFD;AAGH,SAJD,MAKK;AACD/D,UAAAA,MAAM,CAACC,IAAP,CAAY8D,KAAZ,EAAmBpD,OAAnB,CAA2B,UAAU+D,CAAV,EAAa;AACpC,gBAAIV,SAAS,CAACD,KAAK,CAACW,CAAD,CAAN,CAAb,EAAyB;AACrBC,cAAAA,GAAG,CAACJ,IAAJ,CAASf,gBAAgB,CAACkB,CAAD,CAAzB;AACAC,cAAAA,GAAG,CAACJ,IAAJ,CAASV,WAAW,CAACC,QAAD,EAAWC,KAAK,CAACW,CAAD,CAAL,CAASf,QAAT,EAAX,CAApB;AACH;AACJ,WALD;AAMH;;AACD,YAAIM,aAAa,CAACH,QAAD,CAAjB,EAA6B;AACzBrD,UAAAA,MAAM,CAAC8D,IAAP,CAAYf,gBAAgB,CAACpD,GAAD,CAAhB,GAAwB,GAAxB,GAA8BuE,GAAG,CAACnC,IAAJ,CAAS,GAAT,CAA1C;AACH,SAFD,MAGK,IAAImC,GAAG,CAAClD,MAAJ,KAAe,CAAnB,EAAsB;AACvBhB,UAAAA,MAAM,CAAC8D,IAAP,CAAYI,GAAG,CAACnC,IAAJ,CAAS,GAAT,CAAZ;AACH;AACJ;AACJ;AACJ,GAhDD,MAiDK;AACD,QAAIsB,QAAQ,KAAK,GAAjB,EAAsB;AAClB,UAAIE,SAAS,CAACD,KAAD,CAAb,EAAsB;AAClBtD,QAAAA,MAAM,CAAC8D,IAAP,CAAYf,gBAAgB,CAACpD,GAAD,CAA5B;AACH;AACJ,KAJD,MAKK,IAAI2D,KAAK,KAAK,EAAV,KAAiBD,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAlD,CAAJ,EAA4D;AAC7DrD,MAAAA,MAAM,CAAC8D,IAAP,CAAYf,gBAAgB,CAACpD,GAAD,CAAhB,GAAwB,GAApC;AACH,KAFI,MAGA,IAAI2D,KAAK,KAAK,EAAd,EAAkB;AACnBtD,MAAAA,MAAM,CAAC8D,IAAP,CAAY,EAAZ;AACH;AACJ;;AACD,SAAO9D,MAAP;AACH;;AACD,AAAO,SAASmE,QAAT,CAAkBC,QAAlB,EAA4B;AAC/B,SAAO;AACHC,IAAAA,MAAM,EAAEA,MAAM,CAACC,IAAP,CAAY,IAAZ,EAAkBF,QAAlB;AADL,GAAP;AAGH;;AACD,SAASC,MAAT,CAAgBD,QAAhB,EAA0BV,OAA1B,EAAmC;AAC/B,MAAIa,SAAS,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAhB;AACA,SAAOH,QAAQ,CAAC9C,OAAT,CAAiB,4BAAjB,EAA+C,UAAUkD,CAAV,EAAaC,UAAb,EAAyBC,OAAzB,EAAkC;AACpF,QAAID,UAAJ,EAAgB;AACZ,UAAIpB,QAAQ,GAAG,EAAf;AACA,YAAMsB,MAAM,GAAG,EAAf;;AACA,UAAIJ,SAAS,CAACK,OAAV,CAAkBH,UAAU,CAACI,MAAX,CAAkB,CAAlB,CAAlB,MAA4C,CAAC,CAAjD,EAAoD;AAChDxB,QAAAA,QAAQ,GAAGoB,UAAU,CAACI,MAAX,CAAkB,CAAlB,CAAX;AACAJ,QAAAA,UAAU,GAAGA,UAAU,CAACK,MAAX,CAAkB,CAAlB,CAAb;AACH;;AACDL,MAAAA,UAAU,CAAC9D,KAAX,CAAiB,IAAjB,EAAuBT,OAAvB,CAA+B,UAAU6E,QAAV,EAAoB;AAC/C,YAAIb,GAAG,GAAG,4BAA4Bc,IAA5B,CAAiCD,QAAjC,CAAV;AACAJ,QAAAA,MAAM,CAACb,IAAP,CAAYL,SAAS,CAACC,OAAD,EAAUL,QAAV,EAAoBa,GAAG,CAAC,CAAD,CAAvB,EAA4BA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAG,CAAC,CAAD,CAAzC,CAArB;AACH,OAHD;;AAIA,UAAIb,QAAQ,IAAIA,QAAQ,KAAK,GAA7B,EAAkC;AAC9B,YAAI5B,SAAS,GAAG,GAAhB;;AACA,YAAI4B,QAAQ,KAAK,GAAjB,EAAsB;AAClB5B,UAAAA,SAAS,GAAG,GAAZ;AACH,SAFD,MAGK,IAAI4B,QAAQ,KAAK,GAAjB,EAAsB;AACvB5B,UAAAA,SAAS,GAAG4B,QAAZ;AACH;;AACD,eAAO,CAACsB,MAAM,CAAC3D,MAAP,KAAkB,CAAlB,GAAsBqC,QAAtB,GAAiC,EAAlC,IAAwCsB,MAAM,CAAC5C,IAAP,CAAYN,SAAZ,CAA/C;AACH,OATD,MAUK;AACD,eAAOkD,MAAM,CAAC5C,IAAP,CAAY,GAAZ,CAAP;AACH;AACJ,KAxBD,MAyBK;AACD,aAAOY,cAAc,CAAC+B,OAAD,CAArB;AACH;AACJ,GA7BM,CAAP;AA8BH;;AC/JM,SAASO,KAAT,CAAelF,OAAf,EAAwB;AAC3B;AACA,MAAIU,MAAM,GAAGV,OAAO,CAACU,MAAR,CAAe0C,WAAf,EAAb,CAF2B;;AAI3B,MAAIzC,GAAG,GAAG,CAACX,OAAO,CAACW,GAAR,IAAe,GAAhB,EAAqBY,OAArB,CAA6B,cAA7B,EAA6C,MAA7C,CAAV;AACA,MAAIV,OAAO,GAAGrB,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBF,OAAO,CAACa,OAA1B,CAAd;AACA,MAAIsE,IAAJ;AACA,MAAI1D,UAAU,GAAGgB,IAAI,CAACzC,OAAD,EAAU,CAC3B,QAD2B,EAE3B,SAF2B,EAG3B,KAH2B,EAI3B,SAJ2B,EAK3B,SAL2B,EAM3B,WAN2B,CAAV,CAArB,CAP2B;;AAgB3B,QAAMoF,gBAAgB,GAAGhD,uBAAuB,CAACzB,GAAD,CAAhD;AACAA,EAAAA,GAAG,GAAGyD,QAAQ,CAACzD,GAAD,CAAR,CAAc2D,MAAd,CAAqB7C,UAArB,CAAN;;AACA,MAAI,CAAC,QAAQE,IAAR,CAAahB,GAAb,CAAL,EAAwB;AACpBA,IAAAA,GAAG,GAAGX,OAAO,CAACqF,OAAR,GAAkB1E,GAAxB;AACH;;AACD,QAAM2E,iBAAiB,GAAG9F,MAAM,CAACC,IAAP,CAAYO,OAAZ,EACrBkB,MADqB,CACbyB,MAAD,IAAYyC,gBAAgB,CAAChE,QAAjB,CAA0BuB,MAA1B,CADE,EAErBtB,MAFqB,CAEd,SAFc,CAA1B;AAGA,QAAMkE,mBAAmB,GAAG9C,IAAI,CAAChB,UAAD,EAAa6D,iBAAb,CAAhC;AACA,QAAME,eAAe,GAAG,6BAA6B7D,IAA7B,CAAkCd,OAAO,CAAC4E,MAA1C,CAAxB;;AACA,MAAI,CAACD,eAAL,EAAsB;AAClB,QAAIxF,OAAO,CAACe,SAAR,CAAkB2E,MAAtB,EAA8B;AAC1B;AACA7E,MAAAA,OAAO,CAAC4E,MAAR,GAAiB5E,OAAO,CAAC4E,MAAR,CACZ7E,KADY,CACN,GADM,EAEZU,GAFY,CAEPH,OAAD,IAAaA,OAAO,CAACI,OAAR,CAAgB,kDAAhB,EAAqE,uBAAsBvB,OAAO,CAACe,SAAR,CAAkB2E,MAAO,EAApH,CAFL,EAGZ1D,IAHY,CAGP,GAHO,CAAjB;AAIH;;AACD,QAAIhC,OAAO,CAACe,SAAR,CAAkBC,QAAlB,CAA2BC,MAA/B,EAAuC;AACnC,YAAM0E,wBAAwB,GAAG9E,OAAO,CAAC4E,MAAR,CAAenD,KAAf,CAAqB,qBAArB,KAA+C,EAAhF;AACAzB,MAAAA,OAAO,CAAC4E,MAAR,GAAiBE,wBAAwB,CACpCtE,MADY,CACLrB,OAAO,CAACe,SAAR,CAAkBC,QADb,EAEZM,GAFY,CAEPH,OAAD,IAAa;AAClB,cAAMuE,MAAM,GAAG1F,OAAO,CAACe,SAAR,CAAkB2E,MAAlB,GACR,IAAG1F,OAAO,CAACe,SAAR,CAAkB2E,MAAO,EADpB,GAET,OAFN;AAGA,eAAQ,0BAAyBvE,OAAQ,WAAUuE,MAAO,EAA1D;AACH,OAPgB,EAQZ1D,IARY,CAQP,GARO,CAAjB;AASH;AACJ,GA9C0B;AAgD3B;;;AACA,MAAI,CAAC,KAAD,EAAQ,MAAR,EAAgBZ,QAAhB,CAAyBV,MAAzB,CAAJ,EAAsC;AAClCC,IAAAA,GAAG,GAAGa,kBAAkB,CAACb,GAAD,EAAM4E,mBAAN,CAAxB;AACH,GAFD,MAGK;AACD,QAAI,UAAUA,mBAAd,EAAmC;AAC/BJ,MAAAA,IAAI,GAAGI,mBAAmB,CAACK,IAA3B;AACH,KAFD,MAGK;AACD,UAAIpG,MAAM,CAACC,IAAP,CAAY8F,mBAAZ,EAAiCtE,MAArC,EAA6C;AACzCkE,QAAAA,IAAI,GAAGI,mBAAP;AACH,OAFD,MAGK;AACD1E,QAAAA,OAAO,CAAC,gBAAD,CAAP,GAA4B,CAA5B;AACH;AACJ;AACJ,GAhE0B;;;AAkE3B,MAAI,CAACA,OAAO,CAAC,cAAD,CAAR,IAA4B,OAAOsE,IAAP,KAAgB,WAAhD,EAA6D;AACzDtE,IAAAA,OAAO,CAAC,cAAD,CAAP,GAA0B,iCAA1B;AACH,GApE0B;AAsE3B;;;AACA,MAAI,CAAC,OAAD,EAAU,KAAV,EAAiBO,QAAjB,CAA0BV,MAA1B,KAAqC,OAAOyE,IAAP,KAAgB,WAAzD,EAAsE;AAClEA,IAAAA,IAAI,GAAG,EAAP;AACH,GAzE0B;;;AA2E3B,SAAO3F,MAAM,CAACU,MAAP,CAAc;AAAEQ,IAAAA,MAAF;AAAUC,IAAAA,GAAV;AAAeE,IAAAA;AAAf,GAAd,EAAwC,OAAOsE,IAAP,KAAgB,WAAhB,GAA8B;AAAEA,IAAAA;AAAF,GAA9B,GAAyC,IAAjF,EAAuFnF,OAAO,CAAC6F,OAAR,GAAkB;AAAEA,IAAAA,OAAO,EAAE7F,OAAO,CAAC6F;AAAnB,GAAlB,GAAiD,IAAxI,CAAP;AACH;;AC9EM,SAASC,oBAAT,CAA8B/F,QAA9B,EAAwCU,KAAxC,EAA+CT,OAA/C,EAAwD;AAC3D,SAAOkF,KAAK,CAAC1E,KAAK,CAACT,QAAD,EAAWU,KAAX,EAAkBT,OAAlB,CAAN,CAAZ;AACH;;ACDM,SAAS+F,YAAT,CAAsBC,WAAtB,EAAmCC,WAAnC,EAAgD;AACnD,QAAMC,QAAQ,GAAG1F,KAAK,CAACwF,WAAD,EAAcC,WAAd,CAAtB;AACA,QAAME,QAAQ,GAAGL,oBAAoB,CAACvB,IAArB,CAA0B,IAA1B,EAAgC2B,QAAhC,CAAjB;AACA,SAAO1G,MAAM,CAACU,MAAP,CAAciG,QAAd,EAAwB;AAC3BD,IAAAA,QAD2B;AAE3BnG,IAAAA,QAAQ,EAAEgG,YAAY,CAACxB,IAAb,CAAkB,IAAlB,EAAwB2B,QAAxB,CAFiB;AAG3B1F,IAAAA,KAAK,EAAEA,KAAK,CAAC+D,IAAN,CAAW,IAAX,EAAiB2B,QAAjB,CAHoB;AAI3BhB,IAAAA;AAJ2B,GAAxB,CAAP;AAMH;;ACZM,MAAMkB,OAAO,GAAG,mBAAhB;;ACEP,MAAMC,SAAS,GAAI,uBAAsBD,OAAQ,IAAGE,+BAAY,EAAG,EAAnE;AAEA;;AACA,AAAO,MAAMJ,QAAQ,GAAG;AACpBxF,EAAAA,MAAM,EAAE,KADY;AAEpB2E,EAAAA,OAAO,EAAE,wBAFW;AAGpBxE,EAAAA,OAAO,EAAE;AACL4E,IAAAA,MAAM,EAAE,gCADH;AAEL,kBAAcY;AAFT,GAHW;AAOpBtF,EAAAA,SAAS,EAAE;AACP2E,IAAAA,MAAM,EAAE,EADD;AAEP1E,IAAAA,QAAQ,EAAE;AAFH;AAPS,CAAjB;;MCHMmF,QAAQ,GAAGJ,YAAY,CAAC,IAAD,EAAOG,QAAP,CAA7B;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/endpoint/dist-src/defaults.js b/node_modules/@octokit/endpoint/dist-src/defaults.js new file mode 100644 index 0000000..456e586 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/defaults.js @@ -0,0 +1,17 @@ +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +// DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. +export const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent, + }, + mediaType: { + format: "", + previews: [], + }, +}; diff --git a/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js b/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js new file mode 100644 index 0000000..5763758 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js @@ -0,0 +1,5 @@ +import { merge } from "./merge"; +import { parse } from "./parse"; +export function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} diff --git a/node_modules/@octokit/endpoint/dist-src/index.js b/node_modules/@octokit/endpoint/dist-src/index.js new file mode 100644 index 0000000..599917f --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/index.js @@ -0,0 +1,3 @@ +import { withDefaults } from "./with-defaults"; +import { DEFAULTS } from "./defaults"; +export const endpoint = withDefaults(null, DEFAULTS); diff --git a/node_modules/@octokit/endpoint/dist-src/merge.js b/node_modules/@octokit/endpoint/dist-src/merge.js new file mode 100644 index 0000000..1abcecf --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/merge.js @@ -0,0 +1,26 @@ +import { lowercaseKeys } from "./util/lowercase-keys"; +import { mergeDeep } from "./util/merge-deep"; +import { removeUndefinedProperties } from "./util/remove-undefined-properties"; +export function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } + else { + options = Object.assign({}, route); + } + // lowercase header names before merging with defaults to avoid duplicates + options.headers = lowercaseKeys(options.headers); + // remove properties with undefined values before merging + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + // mediaType.previews arrays are merged, instead of overwritten + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews + .filter((preview) => !mergedOptions.mediaType.previews.includes(preview)) + .concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, "")); + return mergedOptions; +} diff --git a/node_modules/@octokit/endpoint/dist-src/parse.js b/node_modules/@octokit/endpoint/dist-src/parse.js new file mode 100644 index 0000000..6bdd1bf --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/parse.js @@ -0,0 +1,81 @@ +import { addQueryParameters } from "./util/add-query-parameters"; +import { extractUrlVariableNames } from "./util/extract-url-variable-names"; +import { omit } from "./util/omit"; +import { parseUrl } from "./util/url-template"; +export function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); + // replace :varname with {varname} to make it RFC 6570 compatible + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType", + ]); + // extract variable names from URL to calculate remaining variables later + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options) + .filter((option) => urlVariableNames.includes(option)) + .concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept + .split(/,/) + .map((preview) => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)) + .join(","); + } + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader + .concat(options.mediaType.previews) + .map((preview) => { + const format = options.mediaType.format + ? `.${options.mediaType.format}` + : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }) + .join(","); + } + } + // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } + else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } + else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + else { + headers["content-length"] = 0; + } + } + } + // default content-type for JSON if body is set + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + // Only return body/request keys if present + return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js b/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js new file mode 100644 index 0000000..d26be31 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js @@ -0,0 +1,17 @@ +export function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return (url + + separator + + names + .map((name) => { + if (name === "q") { + return ("q=" + parameters.q.split("+").map(encodeURIComponent).join("+")); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }) + .join("&")); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js b/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js new file mode 100644 index 0000000..3e75db2 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js @@ -0,0 +1,11 @@ +const urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +export function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js b/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js new file mode 100644 index 0000000..0780642 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js @@ -0,0 +1,9 @@ +export function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js b/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js new file mode 100644 index 0000000..d92aca3 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js @@ -0,0 +1,16 @@ +import { isPlainObject } from "is-plain-object"; +export function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } + else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/omit.js b/node_modules/@octokit/endpoint/dist-src/util/omit.js new file mode 100644 index 0000000..6245031 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/omit.js @@ -0,0 +1,8 @@ +export function omit(object, keysToOmit) { + return Object.keys(object) + .filter((option) => !keysToOmit.includes(option)) + .reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js b/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js new file mode 100644 index 0000000..6b5ee5f --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js @@ -0,0 +1,8 @@ +export function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + return obj; +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/url-template.js b/node_modules/@octokit/endpoint/dist-src/util/url-template.js new file mode 100644 index 0000000..439b3fe --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/url-template.js @@ -0,0 +1,164 @@ +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* istanbul ignore file */ +function encodeReserved(str) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }) + .join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = + operator === "+" || operator === "#" + ? encodeReserved(value) + : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } + else { + return value; + } +} +function isDefined(value) { + return value !== undefined && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } + else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } + else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } + else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } + else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } + else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } + else if (value === "") { + result.push(""); + } + } + return result; +} +export function parseUrl(template) { + return { + expand: expand.bind(null, template), + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } + else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } + else { + return values.join(","); + } + } + else { + return encodeReserved(literal); + } + }); +} diff --git a/node_modules/@octokit/endpoint/dist-src/version.js b/node_modules/@octokit/endpoint/dist-src/version.js new file mode 100644 index 0000000..930e255 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "6.0.12"; diff --git a/node_modules/@octokit/endpoint/dist-src/with-defaults.js b/node_modules/@octokit/endpoint/dist-src/with-defaults.js new file mode 100644 index 0000000..81baf6c --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/with-defaults.js @@ -0,0 +1,13 @@ +import { endpointWithDefaults } from "./endpoint-with-defaults"; +import { merge } from "./merge"; +import { parse } from "./parse"; +export function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse, + }); +} diff --git a/node_modules/@octokit/endpoint/dist-types/defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/defaults.d.ts new file mode 100644 index 0000000..30fcd20 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults } from "@octokit/types"; +export declare const DEFAULTS: EndpointDefaults; diff --git a/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts new file mode 100644 index 0000000..ff39e5e --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts @@ -0,0 +1,3 @@ +import { EndpointOptions, RequestParameters, Route } from "@octokit/types"; +import { DEFAULTS } from "./defaults"; +export declare function endpointWithDefaults(defaults: typeof DEFAULTS, route: Route | EndpointOptions, options?: RequestParameters): import("@octokit/types").RequestOptions; diff --git a/node_modules/@octokit/endpoint/dist-types/index.d.ts b/node_modules/@octokit/endpoint/dist-types/index.d.ts new file mode 100644 index 0000000..1ede136 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const endpoint: import("@octokit/types").EndpointInterface; diff --git a/node_modules/@octokit/endpoint/dist-types/merge.d.ts b/node_modules/@octokit/endpoint/dist-types/merge.d.ts new file mode 100644 index 0000000..b75a15e --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/merge.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults, RequestParameters, Route } from "@octokit/types"; +export declare function merge(defaults: EndpointDefaults | null, route?: Route | RequestParameters, options?: RequestParameters): EndpointDefaults; diff --git a/node_modules/@octokit/endpoint/dist-types/parse.d.ts b/node_modules/@octokit/endpoint/dist-types/parse.d.ts new file mode 100644 index 0000000..fbe2144 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/parse.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults, RequestOptions } from "@octokit/types"; +export declare function parse(options: EndpointDefaults): RequestOptions; diff --git a/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts b/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts new file mode 100644 index 0000000..4b192ac --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts @@ -0,0 +1,4 @@ +export declare function addQueryParameters(url: string, parameters: { + [x: string]: string | undefined; + q?: string; +}): string; diff --git a/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts b/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts new file mode 100644 index 0000000..93586d4 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts @@ -0,0 +1 @@ +export declare function extractUrlVariableNames(url: string): string[]; diff --git a/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts b/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts new file mode 100644 index 0000000..1daf307 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts @@ -0,0 +1,5 @@ +export declare function lowercaseKeys(object?: { + [key: string]: any; +}): { + [key: string]: any; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts b/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts new file mode 100644 index 0000000..914411c --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts @@ -0,0 +1 @@ +export declare function mergeDeep(defaults: any, options: any): object; diff --git a/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts b/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts new file mode 100644 index 0000000..06927d6 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts @@ -0,0 +1,5 @@ +export declare function omit(object: { + [key: string]: any; +}, keysToOmit: string[]): { + [key: string]: any; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts b/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts new file mode 100644 index 0000000..92d8d85 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts @@ -0,0 +1 @@ +export declare function removeUndefinedProperties(obj: any): any; diff --git a/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts b/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts new file mode 100644 index 0000000..5d967ca --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts @@ -0,0 +1,3 @@ +export declare function parseUrl(template: string): { + expand: (context: object) => string; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/version.d.ts b/node_modules/@octokit/endpoint/dist-types/version.d.ts new file mode 100644 index 0000000..330d47a --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "6.0.12"; diff --git a/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts new file mode 100644 index 0000000..6f5afd1 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointInterface, RequestParameters, EndpointDefaults } from "@octokit/types"; +export declare function withDefaults(oldDefaults: EndpointDefaults | null, newDefaults: RequestParameters): EndpointInterface; diff --git a/node_modules/@octokit/endpoint/dist-web/index.js b/node_modules/@octokit/endpoint/dist-web/index.js new file mode 100644 index 0000000..e152163 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-web/index.js @@ -0,0 +1,381 @@ +import { isPlainObject } from 'is-plain-object'; +import { getUserAgent } from 'universal-user-agent'; + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } + else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + return obj; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } + else { + options = Object.assign({}, route); + } + // lowercase header names before merging with defaults to avoid duplicates + options.headers = lowercaseKeys(options.headers); + // remove properties with undefined values before merging + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + // mediaType.previews arrays are merged, instead of overwritten + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews + .filter((preview) => !mergedOptions.mediaType.previews.includes(preview)) + .concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return (url + + separator + + names + .map((name) => { + if (name === "q") { + return ("q=" + parameters.q.split("+").map(encodeURIComponent).join("+")); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }) + .join("&")); +} + +const urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object) + .filter((option) => !keysToOmit.includes(option)) + .reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* istanbul ignore file */ +function encodeReserved(str) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }) + .join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = + operator === "+" || operator === "#" + ? encodeReserved(value) + : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } + else { + return value; + } +} +function isDefined(value) { + return value !== undefined && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } + else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } + else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } + else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } + else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } + else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } + else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template), + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } + else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } + else { + return values.join(","); + } + } + else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); + // replace :varname with {varname} to make it RFC 6570 compatible + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType", + ]); + // extract variable names from URL to calculate remaining variables later + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options) + .filter((option) => urlVariableNames.includes(option)) + .concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept + .split(/,/) + .map((preview) => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)) + .join(","); + } + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader + .concat(options.mediaType.previews) + .map((preview) => { + const format = options.mediaType.format + ? `.${options.mediaType.format}` + : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }) + .join(","); + } + } + // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } + else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } + else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + else { + headers["content-length"] = 0; + } + } + } + // default content-type for JSON if body is set + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + // Only return body/request keys if present + return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse, + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +// DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent, + }, + mediaType: { + format: "", + previews: [], + }, +}; + +const endpoint = withDefaults(null, DEFAULTS); + +export { endpoint }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/endpoint/dist-web/index.js.map b/node_modules/@octokit/endpoint/dist-web/index.js.map new file mode 100644 index 0000000..1d60d02 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/util/remove-undefined-properties.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n","import { isPlainObject } from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n","export function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n // remove properties with undefined values before merging\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map((name) => {\n if (name === \"q\") {\n return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter((option) => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template),\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\",\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter((option) => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map((preview) => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse,\n });\n}\n","export const VERSION = \"6.0.12\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent,\n },\n mediaType: {\n format: \"\",\n previews: [],\n },\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":[],"mappings":";;;AAAO,SAAS,aAAa,CAAC,MAAM,EAAE;AACtC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACvD,QAAQ,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX;;ACPO,SAAS,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC7C,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1C,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AACzC,YAAY,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC;AAClC,gBAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D;AACA,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;;ACfM,SAAS,yBAAyB,CAAC,GAAG,EAAE;AAC/C,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AAC3B,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AACpC,YAAY,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;;ACJM,SAAS,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;AAChD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAQ,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AAClF,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3C,KAAK;AACL;AACA,IAAI,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACrD;AACA,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACvC,IAAI,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/C,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7D;AACA,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;AACxD,QAAQ,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ;AACtE,aAAa,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrF,aAAa,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1H,IAAI,OAAO,aAAa,CAAC;AACzB,CAAC;;ACzBM,SAAS,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE;AACpD,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACjD,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,aAAa,GAAG,CAAC,CAAC,IAAI,KAAK;AAC3B,YAAY,IAAI,IAAI,KAAK,GAAG,EAAE;AAC9B,gBAAgB,QAAQ,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC1F,aAAa;AACb,YAAY,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,SAAS,CAAC;AACV,aAAa,IAAI,CAAC,GAAG,CAAC,EAAE;AACxB,CAAC;;AChBD,MAAM,gBAAgB,GAAG,YAAY,CAAC;AACtC,SAAS,cAAc,CAAC,YAAY,EAAE;AACtC,IAAI,OAAO,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7D,CAAC;AACD,AAAO,SAAS,uBAAuB,CAAC,GAAG,EAAE;AAC7C,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;;ACVM,SAAS,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;AACzC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,SAAS,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,SAAS,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9B,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;;ACPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,IAAI,OAAO,GAAG;AACd,SAAS,KAAK,CAAC,oBAAoB,CAAC;AACpC,SAAS,GAAG,CAAC,UAAU,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACxC,YAAY,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;AACpE,QAAQ,OAAO,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAChE,KAAK,CAAC,CAAC;AACP,CAAC;AACD,SAAS,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3C,IAAI,KAAK;AACT,QAAQ,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG;AAC5C,cAAc,cAAc,CAAC,KAAK,CAAC;AACnC,cAAc,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACtC,IAAI,IAAI,GAAG,EAAE;AACb,QAAQ,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;AACnD,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,CAAC;AACD,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACjD,CAAC;AACD,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,IAAI,OAAO,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC;AACpE,CAAC;AACD,SAAS,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;AACrD,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAC1C,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE;AAC1C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,KAAK,KAAK,SAAS,EAAE;AACxC,YAAY,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACrC,YAAY,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC9C,gBAAgB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,aAAa;AACb,YAAY,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1F,SAAS;AACT,aAAa;AACb,YAAY,IAAI,QAAQ,KAAK,GAAG,EAAE;AAClC,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1C,oBAAoB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACrE,wBAAwB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACtG,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC5D,wBAAwB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACjD,4BAA4B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,yBAAyB;AACzB,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,GAAG,EAAE,CAAC;AAC/B,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1C,oBAAoB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACrE,wBAAwB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/D,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC5D,wBAAwB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACjD,4BAA4B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,4BAA4B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACjF,yBAAyB;AACzB,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,gBAAgB,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;AAC7C,oBAAoB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,iBAAiB;AACjB,qBAAqB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC9B,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAgB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,aAAa;AACb,SAAS;AACT,aAAa,IAAI,KAAK,KAAK,EAAE,KAAK,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE;AACzE,YAAY,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACrD,SAAS;AACT,aAAa,IAAI,KAAK,KAAK,EAAE,EAAE;AAC/B,YAAY,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,AAAO,SAAS,QAAQ,CAAC,QAAQ,EAAE;AACnC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC3C,KAAK,CAAC;AACN,CAAC;AACD,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AACnC,IAAI,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,4BAA4B,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;AAC5F,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,QAAQ,GAAG,EAAE,CAAC;AAC9B,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAChE,gBAAgB,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,gBAAgB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClD,aAAa;AACb,YAAY,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;AAC/D,gBAAgB,IAAI,GAAG,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrE,gBAAgB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC9C,gBAAgB,IAAI,SAAS,GAAG,GAAG,CAAC;AACpC,gBAAgB,IAAI,QAAQ,KAAK,GAAG,EAAE;AACtC,oBAAoB,SAAS,GAAG,GAAG,CAAC;AACpC,iBAAiB;AACjB,qBAAqB,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC3C,oBAAoB,SAAS,GAAG,QAAQ,CAAC;AACzC,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtF,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;;AC/JM,SAAS,KAAK,CAAC,OAAO,EAAE;AAC/B;AACA,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9C;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACrD,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE;AACnC,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,WAAW;AACnB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC1D,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAQ,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,SAAS,MAAM,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9D,SAAS,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAI,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACpE,IAAI,MAAM,eAAe,GAAG,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;AACtC;AACA,YAAY,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AAC3C,iBAAiB,KAAK,CAAC,GAAG,CAAC;AAC3B,iBAAiB,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,kDAAkD,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzJ,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC/C,YAAY,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAC/F,YAAY,OAAO,CAAC,MAAM,GAAG,wBAAwB;AACrD,iBAAiB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnD,iBAAiB,GAAG,CAAC,CAAC,OAAO,KAAK;AAClC,gBAAgB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM;AACvD,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACpD,sBAAsB,OAAO,CAAC;AAC9B,gBAAgB,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,aAAa,CAAC;AACd,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1C,QAAQ,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AAC3D,KAAK;AACL,SAAS;AACT,QAAQ,IAAI,MAAM,IAAI,mBAAmB,EAAE;AAC3C,YAAY,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;AAC5C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE;AACzD,gBAAgB,IAAI,GAAG,mBAAmB,CAAC;AAC3C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC9C,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACjE,QAAQ,OAAO,CAAC,cAAc,CAAC,GAAG,iCAAiC,CAAC;AACpE,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AAC1E,QAAQ,IAAI,GAAG,EAAE,CAAC;AAClB,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,IAAI,KAAK,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACzJ,CAAC;;AC9EM,SAAS,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC;;ACDM,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;AACvD,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACrD,IAAI,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AACnC,QAAQ,QAAQ;AAChB,QAAQ,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACnD,QAAQ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACzC,QAAQ,KAAK;AACb,KAAK,CAAC,CAAC;AACP,CAAC;;ACZM,MAAM,OAAO,GAAG,mBAAmB,CAAC;;ACE3C,MAAM,SAAS,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACrE;AACA;AACA,AAAO,MAAM,QAAQ,GAAG;AACxB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,OAAO,EAAE,wBAAwB;AACrC,IAAI,OAAO,EAAE;AACb,QAAQ,MAAM,EAAE,gCAAgC;AAChD,QAAQ,YAAY,EAAE,SAAS;AAC/B,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK;AACL,CAAC,CAAC;;ACdU,MAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/endpoint/package.json b/node_modules/@octokit/endpoint/package.json new file mode 100644 index 0000000..4e4d425 --- /dev/null +++ b/node_modules/@octokit/endpoint/package.json @@ -0,0 +1,44 @@ +{ + "name": "@octokit/endpoint", + "description": "Turns REST API endpoints into generic request options", + "version": "6.0.12", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "rest" + ], + "repository": "github:octokit/endpoint.js", + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/jest": "^26.0.0", + "jest": "^27.0.0", + "prettier": "2.3.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^27.0.0-next.12", + "typescript": "^4.0.2" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/graphql/LICENSE b/node_modules/@octokit/graphql/LICENSE new file mode 100644 index 0000000..af5366d --- /dev/null +++ b/node_modules/@octokit/graphql/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/graphql/README.md b/node_modules/@octokit/graphql/README.md new file mode 100644 index 0000000..fe7881c --- /dev/null +++ b/node_modules/@octokit/graphql/README.md @@ -0,0 +1,409 @@ +# graphql.js + +> GitHub GraphQL API client for browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/graphql.svg)](https://www.npmjs.com/package/@octokit/graphql) +[![Build Status](https://github.com/octokit/graphql.js/workflows/Test/badge.svg)](https://github.com/octokit/graphql.js/actions?query=workflow%3ATest+branch%3Amaster) + + + +- [Usage](#usage) + - [Send a simple query](#send-a-simple-query) + - [Authentication](#authentication) + - [Variables](#variables) + - [Pass query together with headers and variables](#pass-query-together-with-headers-and-variables) + - [Use with GitHub Enterprise](#use-with-github-enterprise) + - [Use custom `@octokit/request` instance](#use-custom-octokitrequest-instance) +- [TypeScript](#typescript) + - [Additional Types](#additional-types) +- [Errors](#errors) +- [Partial responses](#partial-responses) +- [Writing tests](#writing-tests) +- [License](#license) + + + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/graphql` directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with npm install @octokit/graphql + +```js +const { graphql } = require("@octokit/graphql"); +// or: import { graphql } from "@octokit/graphql"; +``` + +
+ +### Send a simple query + +```js +const { repository } = await graphql( + ` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } + `, + { + headers: { + authorization: `token secret123`, + }, + } +); +``` + +### Authentication + +The simplest way to authenticate a request is to set the `Authorization` header, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const graphqlWithAuth = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const { repository } = await graphqlWithAuth(` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + id: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123, +}); +const graphqlWithAuth = graphql.defaults({ + request: { + hook: auth.hook, + }, +}); + +const { repository } = await graphqlWithAuth( + `{ + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + }` +); +``` + +### Variables + +⚠️ Do not use [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) in the query strings as they make your code vulnerable to query injection attacks (see [#2](https://github.com/octokit/graphql.js/issues/2)). Use variables instead: + +```js +const { lastIssues } = await graphql( + ` + query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner: $owner, name: $repo) { + issues(last: $num) { + edges { + node { + title + } + } + } + } + } + `, + { + owner: "octokit", + repo: "graphql.js", + headers: { + authorization: `token secret123`, + }, + } +); +``` + +### Pass query together with headers and variables + +```js +const { graphql } = require("@octokit/graphql"); +const { lastIssues } = await graphql({ + query: `query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner:$owner, name:$repo) { + issues(last:$num) { + edges { + node { + title + } + } + } + } + }`, + owner: "octokit", + repo: "graphql.js", + headers: { + authorization: `token secret123`, + }, +}); +``` + +### Use with GitHub Enterprise + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api", + headers: { + authorization: `token secret123`, + }, +}); +const { repository } = await graphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +### Use custom `@octokit/request` instance + +```js +const { request } = require("@octokit/request"); +const { withCustomRequest } = require("@octokit/graphql"); + +let requestCounter = 0; +const myRequest = request.defaults({ + headers: { + authentication: "token secret123", + }, + request: { + hook(request, options) { + requestCounter++; + return request(options); + }, + }, +}); +const myGraphql = withCustomRequest(myRequest); +await request("/"); +await myGraphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +// requestCounter is now 2 +``` + +## TypeScript + +`@octokit/graphql` is exposing proper types for its usage with TypeScript projects. + +### Additional Types + +Additionally, `GraphQlQueryResponseData` has been exposed to users: + +```ts +import type { GraphQlQueryResponseData } from "@octokit/graphql"; +``` + +## Errors + +In case of a GraphQL error, `error.message` is set to a combined message describing all errors returned by the endpoint. +All errors can be accessed at `error.errors`. `error.request` has the request options such as query, variables and headers set for easier debugging. + +```js +let { graphql, GraphqlResponseError } = require("@octokit/graphql"); +graphqlt = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const query = `{ + viewer { + bioHtml + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + if (error instanceof GraphqlResponseError) { + // do something with the error, allowing you to detect a graphql response error, + // compared to accidentally catching unrelated errors. + + // server responds with an object like the following (as an example) + // class GraphqlResponseError { + // "headers": { + // "status": "403", + // }, + // "data": null, + // "errors": [{ + // "message": "Field 'bioHtml' doesn't exist on type 'User'", + // "locations": [{ + // "line": 3, + // "column": 5 + // }] + // }] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // Field 'bioHtml' doesn't exist on type 'User' + } else { + // handle non-GraphQL error + } +} +``` + +## Partial responses + +A GraphQL query may respond with partial data accompanied by errors. In this case we will throw an error but the partial data will still be accessible through `error.data` + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const query = `{ + repository(name: "probot", owner: "probot") { + name + ref(qualifiedName: "master") { + target { + ... on Commit { + history(first: 25, after: "invalid cursor") { + nodes { + message + } + } + } + } + } + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + // server responds with + // { + // "data": { + // "repository": { + // "name": "probot", + // "ref": null + // } + // }, + // "errors": [ + // { + // "type": "INVALID_CURSOR_ARGUMENTS", + // "path": [ + // "repository", + // "ref", + // "target", + // "history" + // ], + // "locations": [ + // { + // "line": 7, + // "column": 11 + // } + // ], + // "message": "`invalid cursor` does not appear to be a valid cursor." + // } + // ] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // `invalid cursor` does not appear to be a valid cursor. + console.log(error.data); // { repository: { name: 'probot', ref: null } } +} +``` + +## Writing tests + +You can pass a replacement for [the built-in fetch implementation](https://github.com/bitinn/node-fetch) as `request.fetch` option. For example, using [fetch-mock](http://www.wheresrhys.co.uk/fetch-mock/) works great to write tests + +```js +const assert = require("assert"); +const fetchMock = require("fetch-mock/es5/server"); + +const { graphql } = require("@octokit/graphql"); + +graphql("{ viewer { login } }", { + headers: { + authorization: "token secret123", + }, + request: { + fetch: fetchMock + .sandbox() + .post("https://api.github.com/graphql", (url, options) => { + assert.strictEqual(options.headers.authorization, "token secret123"); + assert.strictEqual( + options.body, + '{"query":"{ viewer { login } }"}', + "Sends correct query" + ); + return { data: {} }; + }), + }, +}); +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/graphql/dist-node/index.js b/node_modules/@octokit/graphql/dist-node/index.js new file mode 100644 index 0000000..6401417 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-node/index.js @@ -0,0 +1,118 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var request = require('@octokit/request'); +var universalUserAgent = require('universal-user-agent'); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); +} + +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); + } + } + + const parsedOptions = typeof query === "string" ? Object.assign({ + query + }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + + if (!result.variables) { + result.variables = {}; + } + + result.variables[key] = parsedOptions[key]; + return result; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(requestOptions).then(response => { + if (response.data.errors) { + const headers = {}; + + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + + throw new GraphqlResponseError(requestOptions, headers, response.data); + } + + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/graphql/dist-node/index.js.map b/node_modules/@octokit/graphql/dist-node/index.js.map new file mode 100644 index 0000000..873a8d4 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/error.js","../dist-src/graphql.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"4.8.0\";\n","function _buildMessageForResponseErrors(data) {\n return (`Request failed due to following response errors:\\n` +\n data.errors.map((e) => ` - ${e.message}`).join(\"\\n\"));\n}\nexport class GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\";\n // Expose the errors and response data in their shorthand properties.\n this.errors = response.errors;\n this.data = response.data;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n","import { GraphqlResponseError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\",\n];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nexport function graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))\n continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n return response.data.data;\n });\n}\n","import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint,\n });\n}\n","import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`,\n },\n method: \"POST\",\n url: \"/graphql\",\n});\nexport { GraphqlResponseError } from \"./error\";\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\",\n });\n}\n"],"names":["VERSION","_buildMessageForResponseErrors","data","errors","map","e","message","join","GraphqlResponseError","Error","constructor","request","headers","response","name","captureStackTrace","NON_VARIABLE_OPTIONS","FORBIDDEN_VARIABLE_OPTIONS","GHES_V3_SUFFIX_REGEX","graphql","query","options","Promise","reject","key","includes","parsedOptions","Object","assign","requestOptions","keys","reduce","result","variables","baseUrl","endpoint","DEFAULTS","test","url","replace","then","withDefaults","newDefaults","newRequest","defaults","newApi","bind","Request","getUserAgent","method","withCustomRequest","customRequest"],"mappings":";;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAP,SAASC,8BAAT,CAAwCC,IAAxC,EAA8C;AAC1C,SAAS,oDAAD,GACJA,IAAI,CAACC,MAAL,CAAYC,GAAZ,CAAiBC,CAAD,IAAQ,MAAKA,CAAC,CAACC,OAAQ,EAAvC,EAA0CC,IAA1C,CAA+C,IAA/C,CADJ;AAEH;;AACD,AAAO,MAAMC,oBAAN,SAAmCC,KAAnC,CAAyC;AAC5CC,EAAAA,WAAW,CAACC,OAAD,EAAUC,OAAV,EAAmBC,QAAnB,EAA6B;AACpC,UAAMZ,8BAA8B,CAACY,QAAD,CAApC;AACA,SAAKF,OAAL,GAAeA,OAAf;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACA,SAAKC,IAAL,GAAY,sBAAZ,CALoC;;AAOpC,SAAKX,MAAL,GAAcU,QAAQ,CAACV,MAAvB;AACA,SAAKD,IAAL,GAAYW,QAAQ,CAACX,IAArB,CARoC;;AAUpC;;AACA,QAAIO,KAAK,CAACM,iBAAV,EAA6B;AACzBN,MAAAA,KAAK,CAACM,iBAAN,CAAwB,IAAxB,EAA8B,KAAKL,WAAnC;AACH;AACJ;;AAf2C;;ACHhD,MAAMM,oBAAoB,GAAG,CACzB,QADyB,EAEzB,SAFyB,EAGzB,KAHyB,EAIzB,SAJyB,EAKzB,SALyB,EAMzB,OANyB,EAOzB,WAPyB,CAA7B;AASA,MAAMC,0BAA0B,GAAG,CAAC,OAAD,EAAU,QAAV,EAAoB,KAApB,CAAnC;AACA,MAAMC,oBAAoB,GAAG,eAA7B;AACA,AAAO,SAASC,OAAT,CAAiBR,OAAjB,EAA0BS,KAA1B,EAAiCC,OAAjC,EAA0C;AAC7C,MAAIA,OAAJ,EAAa;AACT,QAAI,OAAOD,KAAP,KAAiB,QAAjB,IAA6B,WAAWC,OAA5C,EAAqD;AACjD,aAAOC,OAAO,CAACC,MAAR,CAAe,IAAId,KAAJ,CAAW,4DAAX,CAAf,CAAP;AACH;;AACD,SAAK,MAAMe,GAAX,IAAkBH,OAAlB,EAA2B;AACvB,UAAI,CAACJ,0BAA0B,CAACQ,QAA3B,CAAoCD,GAApC,CAAL,EACI;AACJ,aAAOF,OAAO,CAACC,MAAR,CAAe,IAAId,KAAJ,CAAW,uBAAsBe,GAAI,mCAArC,CAAf,CAAP;AACH;AACJ;;AACD,QAAME,aAAa,GAAG,OAAON,KAAP,KAAiB,QAAjB,GAA4BO,MAAM,CAACC,MAAP,CAAc;AAAER,IAAAA;AAAF,GAAd,EAAyBC,OAAzB,CAA5B,GAAgED,KAAtF;AACA,QAAMS,cAAc,GAAGF,MAAM,CAACG,IAAP,CAAYJ,aAAZ,EAA2BK,MAA3B,CAAkC,CAACC,MAAD,EAASR,GAAT,KAAiB;AACtE,QAAIR,oBAAoB,CAACS,QAArB,CAA8BD,GAA9B,CAAJ,EAAwC;AACpCQ,MAAAA,MAAM,CAACR,GAAD,CAAN,GAAcE,aAAa,CAACF,GAAD,CAA3B;AACA,aAAOQ,MAAP;AACH;;AACD,QAAI,CAACA,MAAM,CAACC,SAAZ,EAAuB;AACnBD,MAAAA,MAAM,CAACC,SAAP,GAAmB,EAAnB;AACH;;AACDD,IAAAA,MAAM,CAACC,SAAP,CAAiBT,GAAjB,IAAwBE,aAAa,CAACF,GAAD,CAArC;AACA,WAAOQ,MAAP;AACH,GAVsB,EAUpB,EAVoB,CAAvB,CAZ6C;AAwB7C;;AACA,QAAME,OAAO,GAAGR,aAAa,CAACQ,OAAd,IAAyBvB,OAAO,CAACwB,QAAR,CAAiBC,QAAjB,CAA0BF,OAAnE;;AACA,MAAIhB,oBAAoB,CAACmB,IAArB,CAA0BH,OAA1B,CAAJ,EAAwC;AACpCL,IAAAA,cAAc,CAACS,GAAf,GAAqBJ,OAAO,CAACK,OAAR,CAAgBrB,oBAAhB,EAAsC,cAAtC,CAArB;AACH;;AACD,SAAOP,OAAO,CAACkB,cAAD,CAAP,CAAwBW,IAAxB,CAA8B3B,QAAD,IAAc;AAC9C,QAAIA,QAAQ,CAACX,IAAT,CAAcC,MAAlB,EAA0B;AACtB,YAAMS,OAAO,GAAG,EAAhB;;AACA,WAAK,MAAMY,GAAX,IAAkBG,MAAM,CAACG,IAAP,CAAYjB,QAAQ,CAACD,OAArB,CAAlB,EAAiD;AAC7CA,QAAAA,OAAO,CAACY,GAAD,CAAP,GAAeX,QAAQ,CAACD,OAAT,CAAiBY,GAAjB,CAAf;AACH;;AACD,YAAM,IAAIhB,oBAAJ,CAAyBqB,cAAzB,EAAyCjB,OAAzC,EAAkDC,QAAQ,CAACX,IAA3D,CAAN;AACH;;AACD,WAAOW,QAAQ,CAACX,IAAT,CAAcA,IAArB;AACH,GATM,CAAP;AAUH;;ACjDM,SAASuC,YAAT,CAAsB9B,SAAtB,EAA+B+B,WAA/B,EAA4C;AAC/C,QAAMC,UAAU,GAAGhC,SAAO,CAACiC,QAAR,CAAiBF,WAAjB,CAAnB;;AACA,QAAMG,MAAM,GAAG,CAACzB,KAAD,EAAQC,OAAR,KAAoB;AAC/B,WAAOF,OAAO,CAACwB,UAAD,EAAavB,KAAb,EAAoBC,OAApB,CAAd;AACH,GAFD;;AAGA,SAAOM,MAAM,CAACC,MAAP,CAAciB,MAAd,EAAsB;AACzBD,IAAAA,QAAQ,EAAEH,YAAY,CAACK,IAAb,CAAkB,IAAlB,EAAwBH,UAAxB,CADe;AAEzBR,IAAAA,QAAQ,EAAEY,eAAO,CAACZ;AAFO,GAAtB,CAAP;AAIH;;MCPYhB,SAAO,GAAGsB,YAAY,CAAC9B,eAAD,EAAU;AACzCC,EAAAA,OAAO,EAAE;AACL,kBAAe,sBAAqBZ,OAAQ,IAAGgD,+BAAY,EAAG;AADzD,GADgC;AAIzCC,EAAAA,MAAM,EAAE,MAJiC;AAKzCX,EAAAA,GAAG,EAAE;AALoC,CAAV,CAA5B;AAOP,AACO,SAASY,iBAAT,CAA2BC,aAA3B,EAA0C;AAC7C,SAAOV,YAAY,CAACU,aAAD,EAAgB;AAC/BF,IAAAA,MAAM,EAAE,MADuB;AAE/BX,IAAAA,GAAG,EAAE;AAF0B,GAAhB,CAAnB;AAIH;;;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/graphql/dist-src/error.js b/node_modules/@octokit/graphql/dist-src/error.js new file mode 100644 index 0000000..182f967 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/error.js @@ -0,0 +1,21 @@ +function _buildMessageForResponseErrors(data) { + return (`Request failed due to following response errors:\n` + + data.errors.map((e) => ` - ${e.message}`).join("\n")); +} +export class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; + // Expose the errors and response data in their shorthand properties. + this.errors = response.errors; + this.data = response.data; + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} diff --git a/node_modules/@octokit/graphql/dist-src/graphql.js b/node_modules/@octokit/graphql/dist-src/graphql.js new file mode 100644 index 0000000..8297f84 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/graphql.js @@ -0,0 +1,52 @@ +import { GraphqlResponseError } from "./error"; +const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", +]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +export function graphql(request, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) + continue; + return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError(requestOptions, headers, response.data); + } + return response.data.data; + }); +} diff --git a/node_modules/@octokit/graphql/dist-src/index.js b/node_modules/@octokit/graphql/dist-src/index.js new file mode 100644 index 0000000..2a7d06b --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/index.js @@ -0,0 +1,18 @@ +import { request } from "@octokit/request"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +import { withDefaults } from "./with-defaults"; +export const graphql = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}`, + }, + method: "POST", + url: "/graphql", +}); +export { GraphqlResponseError } from "./error"; +export function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql", + }); +} diff --git a/node_modules/@octokit/graphql/dist-src/types.js b/node_modules/@octokit/graphql/dist-src/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/graphql/dist-src/version.js b/node_modules/@octokit/graphql/dist-src/version.js new file mode 100644 index 0000000..3a4f8ff --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "4.8.0"; diff --git a/node_modules/@octokit/graphql/dist-src/with-defaults.js b/node_modules/@octokit/graphql/dist-src/with-defaults.js new file mode 100644 index 0000000..6ea309e --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/with-defaults.js @@ -0,0 +1,12 @@ +import { request as Request } from "@octokit/request"; +import { graphql } from "./graphql"; +export function withDefaults(request, newDefaults) { + const newRequest = request.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: Request.endpoint, + }); +} diff --git a/node_modules/@octokit/graphql/dist-types/error.d.ts b/node_modules/@octokit/graphql/dist-types/error.d.ts new file mode 100644 index 0000000..3bd37ad --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/error.d.ts @@ -0,0 +1,13 @@ +import { ResponseHeaders } from "@octokit/types"; +import { GraphQlEndpointOptions, GraphQlQueryResponse } from "./types"; +declare type ServerResponseData = Required>; +export declare class GraphqlResponseError extends Error { + readonly request: GraphQlEndpointOptions; + readonly headers: ResponseHeaders; + readonly response: ServerResponseData; + name: string; + readonly errors: GraphQlQueryResponse["errors"]; + readonly data: ResponseData; + constructor(request: GraphQlEndpointOptions, headers: ResponseHeaders, response: ServerResponseData); +} +export {}; diff --git a/node_modules/@octokit/graphql/dist-types/graphql.d.ts b/node_modules/@octokit/graphql/dist-types/graphql.d.ts new file mode 100644 index 0000000..2942b8b --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/graphql.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import { RequestParameters, GraphQlQueryResponseData } from "./types"; +export declare function graphql(request: typeof Request, query: string | RequestParameters, options?: RequestParameters): Promise; diff --git a/node_modules/@octokit/graphql/dist-types/index.d.ts b/node_modules/@octokit/graphql/dist-types/index.d.ts new file mode 100644 index 0000000..282f98a --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/index.d.ts @@ -0,0 +1,5 @@ +import { request } from "@octokit/request"; +export declare const graphql: import("./types").graphql; +export { GraphQlQueryResponseData } from "./types"; +export { GraphqlResponseError } from "./error"; +export declare function withCustomRequest(customRequest: typeof request): import("./types").graphql; diff --git a/node_modules/@octokit/graphql/dist-types/types.d.ts b/node_modules/@octokit/graphql/dist-types/types.d.ts new file mode 100644 index 0000000..b266bdb --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/types.d.ts @@ -0,0 +1,55 @@ +import { EndpointOptions, RequestParameters as RequestParametersType, EndpointInterface } from "@octokit/types"; +export declare type GraphQlEndpointOptions = EndpointOptions & { + variables?: { + [key: string]: unknown; + }; +}; +export declare type RequestParameters = RequestParametersType; +export declare type Query = string; +export interface graphql { + /** + * Sends a GraphQL query request based on endpoint options + * The GraphQL query must be specified in `options`. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: RequestParameters): GraphQlResponse; + /** + * Sends a GraphQL query request based on endpoint options + * + * @param {string} query GraphQL query. Example: `'query { viewer { login } }'`. + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (query: Query, parameters?: RequestParameters): GraphQlResponse; + /** + * Returns a new `endpoint` with updated route and parameters + */ + defaults: (newDefaults: RequestParameters) => graphql; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} +export declare type GraphQlResponse = Promise; +export declare type GraphQlQueryResponseData = { + [key: string]: any; +}; +export declare type GraphQlQueryResponse = { + data: ResponseData; + errors?: [ + { + type: string; + message: string; + path: [string]; + extensions: { + [key: string]: any; + }; + locations: [ + { + line: number; + column: number; + } + ]; + } + ]; +}; diff --git a/node_modules/@octokit/graphql/dist-types/version.d.ts b/node_modules/@octokit/graphql/dist-types/version.d.ts new file mode 100644 index 0000000..e80848e --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "4.8.0"; diff --git a/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts b/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts new file mode 100644 index 0000000..03edc32 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import { graphql as ApiInterface, RequestParameters } from "./types"; +export declare function withDefaults(request: typeof Request, newDefaults: RequestParameters): ApiInterface; diff --git a/node_modules/@octokit/graphql/dist-web/index.js b/node_modules/@octokit/graphql/dist-web/index.js new file mode 100644 index 0000000..5307e26 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-web/index.js @@ -0,0 +1,106 @@ +import { request } from '@octokit/request'; +import { getUserAgent } from 'universal-user-agent'; + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return (`Request failed due to following response errors:\n` + + data.errors.map((e) => ` - ${e.message}`).join("\n")); +} +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; + // Expose the errors and response data in their shorthand properties. + this.errors = response.errors; + this.data = response.data; + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} + +const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", +]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) + continue; + return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError(requestOptions, headers, response.data); + } + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.endpoint, + }); +} + +const graphql$1 = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}`, + }, + method: "POST", + url: "/graphql", +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql", + }); +} + +export { GraphqlResponseError, graphql$1 as graphql, withCustomRequest }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/graphql/dist-web/index.js.map b/node_modules/@octokit/graphql/dist-web/index.js.map new file mode 100644 index 0000000..3c6a6ed --- /dev/null +++ b/node_modules/@octokit/graphql/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/error.js","../dist-src/graphql.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"4.8.0\";\n","function _buildMessageForResponseErrors(data) {\n return (`Request failed due to following response errors:\\n` +\n data.errors.map((e) => ` - ${e.message}`).join(\"\\n\"));\n}\nexport class GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\";\n // Expose the errors and response data in their shorthand properties.\n this.errors = response.errors;\n this.data = response.data;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n","import { GraphqlResponseError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\",\n];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nexport function graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key))\n continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n return response.data.data;\n });\n}\n","import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint,\n });\n}\n","import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`,\n },\n method: \"POST\",\n url: \"/graphql\",\n});\nexport { GraphqlResponseError } from \"./error\";\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\",\n });\n}\n"],"names":["request","Request","graphql"],"mappings":";;;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACA1C,SAAS,8BAA8B,CAAC,IAAI,EAAE;AAC9C,IAAI,QAAQ,CAAC,kDAAkD,CAAC;AAChE,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9D,CAAC;AACD,AAAO,MAAM,oBAAoB,SAAS,KAAK,CAAC;AAChD,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC5C,QAAQ,KAAK,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACtC,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAClC;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACrC,YAAY,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,SAAS;AACT,KAAK;AACL,CAAC;;ACnBD,MAAM,oBAAoB,GAAG;AAC7B,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,WAAW;AACf,CAAC,CAAC;AACF,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9D,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAC7C,AAAO,SAAS,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AACjD,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAC7D,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,CAAC;AAC3G,SAAS;AACT,QAAQ,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACnC,YAAY,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzD,gBAAgB,SAAS;AACzB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC;AAC5G,SAAS;AACT,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AAChG,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AAC9E,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChD,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7C,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC/B,YAAY,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACnD,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX;AACA;AACA,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC/E,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC5C,QAAQ,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;AACtD,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,YAAY,MAAM,OAAO,GAAG,EAAE,CAAC;AAC/B,YAAY,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7D,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACrD,aAAa;AACb,YAAY,MAAM,IAAI,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnF,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,KAAK,CAAC,CAAC;AACP,CAAC;;ACjDM,SAAS,YAAY,CAACA,SAAO,EAAE,WAAW,EAAE;AACnD,IAAI,MAAM,UAAU,GAAGA,SAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACrD,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;AACvC,QAAQ,OAAO,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACnD,KAAK,CAAC;AACN,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACjC,QAAQ,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;AACrD,QAAQ,QAAQ,EAAEC,OAAO,CAAC,QAAQ;AAClC,KAAK,CAAC,CAAC;AACP,CAAC;;ACPW,MAACC,SAAO,GAAG,YAAY,CAAC,OAAO,EAAE;AAC7C,IAAI,OAAO,EAAE;AACb,QAAQ,YAAY,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,GAAG,EAAE,UAAU;AACnB,CAAC,CAAC,CAAC;AACH,AACO,SAAS,iBAAiB,CAAC,aAAa,EAAE;AACjD,IAAI,OAAO,YAAY,CAAC,aAAa,EAAE;AACvC,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,GAAG,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/graphql/package.json b/node_modules/@octokit/graphql/package.json new file mode 100644 index 0000000..9ba3cb7 --- /dev/null +++ b/node_modules/@octokit/graphql/package.json @@ -0,0 +1,47 @@ +{ + "name": "@octokit/graphql", + "description": "GitHub GraphQL API client for browsers and Node", + "version": "4.8.0", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "graphql" + ], + "repository": "github:octokit/graphql.js", + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + }, + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.2.5", + "@types/jest": "^27.0.0", + "@types/node": "^14.0.4", + "fetch-mock": "^9.0.0", + "jest": "^27.0.0", + "prettier": "2.3.2", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^27.0.0-next.12", + "typescript": "^4.0.0" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/openapi-types/LICENSE b/node_modules/@octokit/openapi-types/LICENSE new file mode 100644 index 0000000..c61fbbe --- /dev/null +++ b/node_modules/@octokit/openapi-types/LICENSE @@ -0,0 +1,7 @@ +Copyright 2020 Gregor Martynus + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/@octokit/openapi-types/README.md b/node_modules/@octokit/openapi-types/README.md new file mode 100644 index 0000000..9da833c --- /dev/null +++ b/node_modules/@octokit/openapi-types/README.md @@ -0,0 +1,17 @@ +# @octokit/openapi-types + +> Generated TypeScript definitions based on GitHub's OpenAPI spec + +This package is continously updated based on [GitHub's OpenAPI specification](https://github.com/github/rest-api-description/) + +## Usage + +```ts +import { components } from "@octokit/openapi-types"; + +type Repository = components["schemas"]["full-repository"]; +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/openapi-types/package.json b/node_modules/@octokit/openapi-types/package.json new file mode 100644 index 0000000..24484a5 --- /dev/null +++ b/node_modules/@octokit/openapi-types/package.json @@ -0,0 +1,20 @@ +{ + "name": "@octokit/openapi-types", + "description": "Generated TypeScript definitions based on GitHub's OpenAPI spec for api.github.com", + "repository": { + "type": "git", + "url": "https://github.com/octokit/openapi-types.ts.git", + "directory": "packages/openapi-types" + }, + "publishConfig": { + "access": "public" + }, + "version": "12.11.0", + "main": "", + "types": "types.d.ts", + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "octokit": { + "openapi-version": "6.8.0" + } +} diff --git a/node_modules/@octokit/openapi-types/types.d.ts b/node_modules/@octokit/openapi-types/types.d.ts new file mode 100644 index 0000000..88dc62d --- /dev/null +++ b/node_modules/@octokit/openapi-types/types.d.ts @@ -0,0 +1,47095 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/": { + /** Get Hypermedia links to resources accessible in GitHub's REST API */ + get: operations["meta/root"]; + }; + "/app": { + /** + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-authenticated"]; + }; + "/app-manifests/{code}/conversions": { + /** Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. */ + post: operations["apps/create-from-manifest"]; + }; + "/app/hook/config": { + /** + * Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-config-for-app"]; + /** + * Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + patch: operations["apps/update-webhook-config-for-app"]; + }; + "/app/hook/deliveries": { + /** + * Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/list-webhook-deliveries"]; + }; + "/app/hook/deliveries/{delivery_id}": { + /** + * Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-webhook-delivery"]; + }; + "/app/hook/deliveries/{delivery_id}/attempts": { + /** + * Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/redeliver-webhook-delivery"]; + }; + "/app/installations": { + /** + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + get: operations["apps/list-installations"]; + }; + "/app/installations/{installation_id}": { + /** + * Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-installation"]; + /** + * Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/reference/apps/#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/delete-installation"]; + }; + "/app/installations/{installation_id}/access_tokens": { + /** + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + post: operations["apps/create-installation-access-token"]; + }; + "/app/installations/{installation_id}/suspended": { + /** + * Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + put: operations["apps/suspend-installation"]; + /** + * Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + delete: operations["apps/unsuspend-installation"]; + }; + "/applications/grants": { + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * You can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the [list your authorizations](https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations) API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). The `scopes` returned are the union of scopes authorized for the application. For example, if an application has one token with `repo` scope and another token with `user` scope, the grant will return `["repo", "user"]`. + */ + get: operations["oauth-authorizations/list-grants"]; + }; + "/applications/grants/{grant_id}": { + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + get: operations["oauth-authorizations/get-grant"]; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + delete: operations["oauth-authorizations/delete-grant"]; + }; + "/applications/{client_id}/grant": { + /** + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + delete: operations["apps/delete-authorization"]; + }; + "/applications/{client_id}/token": { + /** OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. */ + post: operations["apps/check-token"]; + /** OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. */ + delete: operations["apps/delete-token"]; + /** OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. */ + patch: operations["apps/reset-token"]; + }; + "/applications/{client_id}/token/scoped": { + /** Use a non-scoped user-to-server OAuth access token to create a repository scoped and/or permission scoped user-to-server OAuth access token. You can specify which repositories the token can access and which permissions are granted to the token. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. */ + post: operations["apps/scope-token"]; + }; + "/apps/{app_slug}": { + /** + * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + * + * If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://docs.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + get: operations["apps/get-by-slug"]; + }; + "/authorizations": { + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + get: operations["oauth-authorizations/list-authorizations"]; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates OAuth tokens using [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication). If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * To create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app's client ID and secret, found on your OAuth application's settings page. If your OAuth application intends to create multiple tokens for one user, use `fingerprint` to differentiate between them. + * + * You can also create tokens on GitHub from the [personal access tokens settings](https://github.com/settings/tokens) page. Read more about these tokens in [the GitHub Help documentation](https://docs.github.com/articles/creating-an-access-token-for-command-line-use). + * + * Organizations that enforce SAML SSO require personal access tokens to be allowed. Read more about allowing tokens in [the GitHub Help documentation](https://docs.github.com/articles/about-identity-and-access-management-with-saml-single-sign-on). + */ + post: operations["oauth-authorizations/create-authorization"]; + }; + "/authorizations/clients/{client_id}": { + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates a new authorization for the specified OAuth application, only if an authorization for that application doesn't already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + put: operations["oauth-authorizations/get-or-create-authorization-for-app"]; + }; + "/authorizations/clients/{client_id}/{fingerprint}": { + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. `fingerprint` is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + */ + put: operations["oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint"]; + }; + "/authorizations/{authorization_id}": { + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + get: operations["oauth-authorizations/get-authorization"]; + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + delete: operations["oauth-authorizations/delete-authorization"]; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * You can only send one of these scope keys at a time. + */ + patch: operations["oauth-authorizations/update-authorization"]; + }; + "/codes_of_conduct": { + get: operations["codes-of-conduct/get-all-codes-of-conduct"]; + }; + "/codes_of_conduct/{key}": { + get: operations["codes-of-conduct/get-conduct-code"]; + }; + "/emojis": { + /** Lists all the emojis available to use on GitHub. */ + get: operations["emojis/get"]; + }; + "/enterprise-installation/{enterprise_or_org}/server-statistics": { + /** + * Returns aggregate usage metrics for your GitHub Enterprise Server 3.5+ instance for a specified time period up to 365 days. + * + * To use this endpoint, your GitHub Enterprise Server instance must be connected to GitHub Enterprise Cloud using GitHub Connect. You must enable Server Statistics, and for the API request provide your enterprise account name or organization name connected to the GitHub Enterprise Server. For more information, see "[Enabling Server Statistics for your enterprise](/admin/configuration/configuring-github-connect/enabling-server-statistics-for-your-enterprise)" in the GitHub Enterprise Server documentation. + * + * You'll need to use a personal access token: + * - If you connected your GitHub Enterprise Server to an enterprise account and enabled Server Statistics, you'll need a personal access token with the `read:enterprise` permission. + * - If you connected your GitHub Enterprise Server to an organization account and enabled Server Statistics, you'll need a personal access token with the `read:org` permission. + * + * For more information on creating a personal access token, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + */ + get: operations["enterprise-admin/get-server-statistics"]; + }; + "/enterprises/{enterprise}/actions/cache/usage": { + /** + * Gets the total GitHub Actions cache usage for an enterprise. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/oidc/customization/issuer": { + /** + * Sets the GitHub Actions OpenID Connect (OIDC) custom issuer policy for an enterprise. + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * GitHub Apps must have the `enterprise_administration:write` permission to use this endpoint. + */ + put: operations["actions/set-actions-oidc-custom-issuer-policy-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions": { + /** + * Gets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/get-github-actions-permissions-enterprise"]; + /** + * Sets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/set-github-actions-permissions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions/organizations": { + /** + * Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/list-selected-organizations-enabled-github-actions-enterprise"]; + /** + * Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/set-selected-organizations-enabled-github-actions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions/organizations/{org_id}": { + /** + * Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/enable-selected-organization-github-actions-enterprise"]; + /** + * Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + delete: operations["enterprise-admin/disable-selected-organization-github-actions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions/selected-actions": { + /** + * Gets the selected actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/get-allowed-actions-enterprise"]; + /** + * Sets the actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/set-allowed-actions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions/workflow": { + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an enterprise, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Enforcing a policy for workflow permissions in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-for-workflow-permissions-in-your-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * GitHub Apps must have the `enterprise_administration:write` permission to use this endpoint. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-enterprise"]; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an enterprise, and sets + * whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Enforcing a policy for workflow permissions in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-for-workflow-permissions-in-your-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * GitHub Apps must have the `enterprise_administration:write` permission to use this endpoint. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups": { + /** + * Lists all self-hosted runner groups for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/list-self-hosted-runner-groups-for-enterprise"]; + /** + * Creates a new self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + post: operations["enterprise-admin/create-self-hosted-runner-group-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": { + /** + * Gets a specific self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/get-self-hosted-runner-group-for-enterprise"]; + /** + * Deletes a self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + delete: operations["enterprise-admin/delete-self-hosted-runner-group-from-enterprise"]; + /** + * Updates the `name` and `visibility` of a self-hosted runner group in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + patch: operations["enterprise-admin/update-self-hosted-runner-group-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": { + /** + * Lists the organizations with access to a self-hosted runner group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/list-org-access-to-self-hosted-runner-group-in-enterprise"]; + /** + * Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/set-org-access-to-self-hosted-runner-group-in-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": { + /** + * Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise)." + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/add-org-access-to-self-hosted-runner-group-in-enterprise"]; + /** + * Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise)." + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + delete: operations["enterprise-admin/remove-org-access-to-self-hosted-runner-group-in-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": { + /** + * Lists the self-hosted runners that are in a specific enterprise group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/list-self-hosted-runners-in-group-for-enterprise"]; + /** + * Replaces the list of self-hosted runners that are part of an enterprise runner group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/set-self-hosted-runners-in-group-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { + /** + * Adds a self-hosted runner to a runner group configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` + * scope to use this endpoint. + */ + put: operations["enterprise-admin/add-self-hosted-runner-to-group-for-enterprise"]; + /** + * Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + delete: operations["enterprise-admin/remove-self-hosted-runner-from-group-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners": { + /** + * Lists all self-hosted runners configured for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/list-self-hosted-runners-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/downloads": { + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/list-runner-applications-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/registration-token": { + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/enterprises/octo-enterprise --token TOKEN + * ``` + */ + post: operations["enterprise-admin/create-registration-token-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/remove-token": { + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an enterprise. The token expires after one hour. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an enterprise, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + post: operations["enterprise-admin/create-remove-token-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/{runner_id}": { + /** + * Gets a specific self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/get-self-hosted-runner-for-enterprise"]; + /** + * Forces the removal of a self-hosted runner from an enterprise. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + delete: operations["enterprise-admin/delete-self-hosted-runner-from-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/{runner_id}/labels": { + /** + * Lists all labels for a self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + get: operations["enterprise-admin/list-labels-for-self-hosted-runner-for-enterprise"]; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + put: operations["enterprise-admin/set-custom-labels-for-self-hosted-runner-for-enterprise"]; + /** + * Add custom labels to a self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + post: operations["enterprise-admin/add-custom-labels-to-self-hosted-runner-for-enterprise"]; + /** + * Remove all custom labels from a self-hosted runner configured in an + * enterprise. Returns the remaining read-only labels from the runner. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + delete: operations["enterprise-admin/remove-all-custom-labels-from-self-hosted-runner-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner configured + * in an enterprise. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + delete: operations["enterprise-admin/remove-custom-label-from-self-hosted-runner-for-enterprise"]; + }; + "/enterprises/{enterprise}/audit-log": { + /** Gets the audit log for an enterprise. To use this endpoint, you must be an enterprise admin, and you must use an access token with the `admin:enterprise` scope. */ + get: operations["enterprise-admin/get-audit-log"]; + }; + "/enterprises/{enterprise}/code-scanning/alerts": { + /** + * Lists code scanning alerts for the default branch for all eligible repositories in an enterprise. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * To use this endpoint, you must be a member of the enterprise, + * and you must use an access token with the `repo` scope or `security_events` scope. + */ + get: operations["code-scanning/list-alerts-for-enterprise"]; + }; + "/enterprises/{enterprise}/secret-scanning/alerts": { + /** + * Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * To use this endpoint, you must be a member of the enterprise, and you must use an access token with the `repo` scope or `security_events` scope. Alerts are only returned for organizations in the enterprise for which you are an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + */ + get: operations["secret-scanning/list-alerts-for-enterprise"]; + }; + "/enterprises/{enterprise}/settings/billing/actions": { + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * The authenticated user must be an enterprise admin. + */ + get: operations["billing/get-github-actions-billing-ghe"]; + }; + "/enterprises/{enterprise}/settings/billing/advanced-security": { + /** + * Gets the GitHub Advanced Security active committers for an enterprise per repository. + * + * Each distinct user login across all repositories is counted as a single Advanced Security seat, so the `total_advanced_security_committers` is not the sum of active_users for each repository. + * + * The total number of repositories with committer information is tracked by the `total_count` field. + */ + get: operations["billing/get-github-advanced-security-billing-ghe"]; + }; + "/enterprises/{enterprise}/settings/billing/packages": { + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * The authenticated user must be an enterprise admin. + */ + get: operations["billing/get-github-packages-billing-ghe"]; + }; + "/enterprises/{enterprise}/settings/billing/shared-storage": { + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * The authenticated user must be an enterprise admin. + */ + get: operations["billing/get-shared-storage-billing-ghe"]; + }; + "/events": { + /** We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. */ + get: operations["activity/list-public-events"]; + }; + "/feeds": { + /** + * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + get: operations["activity/get-feeds"]; + }; + "/gists": { + /** Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: */ + get: operations["gists/list"]; + /** + * Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + post: operations["gists/create"]; + }; + "/gists/public": { + /** + * List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + get: operations["gists/list-public"]; + }; + "/gists/starred": { + /** List the authenticated user's starred gists: */ + get: operations["gists/list-starred"]; + }; + "/gists/{gist_id}": { + get: operations["gists/get"]; + delete: operations["gists/delete"]; + /** Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. */ + patch: operations["gists/update"]; + }; + "/gists/{gist_id}/comments": { + get: operations["gists/list-comments"]; + post: operations["gists/create-comment"]; + }; + "/gists/{gist_id}/comments/{comment_id}": { + get: operations["gists/get-comment"]; + delete: operations["gists/delete-comment"]; + patch: operations["gists/update-comment"]; + }; + "/gists/{gist_id}/commits": { + get: operations["gists/list-commits"]; + }; + "/gists/{gist_id}/forks": { + get: operations["gists/list-forks"]; + /** **Note**: This was previously `/gists/:gist_id/fork`. */ + post: operations["gists/fork"]; + }; + "/gists/{gist_id}/star": { + get: operations["gists/check-is-starred"]; + /** Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." */ + put: operations["gists/star"]; + delete: operations["gists/unstar"]; + }; + "/gists/{gist_id}/{sha}": { + get: operations["gists/get-revision"]; + }; + "/gitignore/templates": { + /** List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user). */ + get: operations["gitignore/get-all-templates"]; + }; + "/gitignore/templates/{name}": { + /** + * The API also allows fetching the source of a single template. + * Use the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents. + */ + get: operations["gitignore/get-template"]; + }; + "/installation/repositories": { + /** + * List repositories that an app installation can access. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + get: operations["apps/list-repos-accessible-to-installation"]; + }; + "/installation/token": { + /** + * Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)" endpoint. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + delete: operations["apps/revoke-installation-access-token"]; + }; + "/issues": { + /** + * List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + get: operations["issues/list"]; + }; + "/licenses": { + get: operations["licenses/get-all-commonly-used"]; + }; + "/licenses/{license}": { + get: operations["licenses/get"]; + }; + "/markdown": { + post: operations["markdown/render"]; + }; + "/markdown/raw": { + /** You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. */ + post: operations["markdown/render-raw"]; + }; + "/marketplace_listing/accounts/{account_id}": { + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account"]; + }; + "/marketplace_listing/plans": { + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans"]; + }; + "/marketplace_listing/plans/{plan_id}/accounts": { + /** + * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan"]; + }; + "/marketplace_listing/stubbed/accounts/{account_id}": { + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/get-subscription-plan-for-account-stubbed"]; + }; + "/marketplace_listing/stubbed/plans": { + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-plans-stubbed"]; + }; + "/marketplace_listing/stubbed/plans/{plan_id}/accounts": { + /** + * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + get: operations["apps/list-accounts-for-plan-stubbed"]; + }; + "/meta": { + /** + * Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * **Note:** The IP addresses shown in the documentation's response are only example values. You must always query the API directly to get the latest list of IP addresses. + */ + get: operations["meta/get"]; + }; + "/networks/{owner}/{repo}/events": { + get: operations["activity/list-public-events-for-repo-network"]; + }; + "/notifications": { + /** List all notifications for the current user, sorted by most recently updated. */ + get: operations["activity/list-notifications-for-authenticated-user"]; + /** Marks all notifications as "read" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. */ + put: operations["activity/mark-notifications-as-read"]; + }; + "/notifications/threads/{thread_id}": { + get: operations["activity/get-thread"]; + patch: operations["activity/mark-thread-as-read"]; + }; + "/notifications/threads/{thread_id}/subscription": { + /** + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + get: operations["activity/get-thread-subscription-for-authenticated-user"]; + /** + * If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint. + */ + put: operations["activity/set-thread-subscription"]; + /** Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`. */ + delete: operations["activity/delete-thread-subscription"]; + }; + "/octocat": { + /** Get the octocat as ASCII art */ + get: operations["meta/get-octocat"]; + }; + "/organizations": { + /** + * Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations. + */ + get: operations["orgs/list"]; + }; + "/organizations/{organization_id}/custom_roles": { + /** + * List the custom repository roles available in this organization. In order to see custom + * repository roles in an organization, the authenticated user must be an organization owner. + * + * For more information on custom repository roles, see "[Managing custom repository roles for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization)". + */ + get: operations["orgs/list-custom-roles"]; + }; + "/orgs/{org}": { + /** + * To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * GitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See "[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)" for details. For an example response, see 'Response with GitHub plan information' below." + */ + get: operations["orgs/get"]; + /** + * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Enables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges. + */ + patch: operations["orgs/update"]; + }; + "/orgs/{org}/actions/cache/usage": { + /** + * Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * You must authenticate using an access token with the `read:org` scope to use this endpoint. GitHub Apps must have the `organization_admistration:read` permission to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-for-org"]; + }; + "/orgs/{org}/actions/cache/usage-by-repository": { + /** + * Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * You must authenticate using an access token with the `read:org` scope to use this endpoint. GitHub Apps must have the `organization_admistration:read` permission to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage-by-repo-for-org"]; + }; + "/orgs/{org}/actions/oidc/customization/sub": { + /** + * Gets the customization template for an OpenID Connect (OIDC) subject claim. + * You must authenticate using an access token with the `read:org` scope to use this endpoint. + * GitHub Apps must have the `organization_administration:write` permission to use this endpoint. + */ + get: operations["oidc/get-oidc-custom-sub-template-for-org"]; + /** + * Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * You must authenticate using an access token with the `write:org` scope to use this endpoint. + * GitHub Apps must have the `admin:org` permission to use this endpoint. + */ + put: operations["oidc/update-oidc-custom-sub-template-for-org"]; + }; + "/orgs/{org}/actions/permissions": { + /** + * Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + get: operations["actions/get-github-actions-permissions-organization"]; + /** + * Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions and reusable workflows, then you cannot override them for the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + put: operations["actions/set-github-actions-permissions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories": { + /** + * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + get: operations["actions/list-selected-repositories-enabled-github-actions-organization"]; + /** + * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + put: operations["actions/set-selected-repositories-enabled-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories/{repository_id}": { + /** + * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + put: operations["actions/enable-selected-repository-github-actions-organization"]; + /** + * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + delete: operations["actions/disable-selected-repository-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/selected-actions": { + /** + * Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)."" + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + get: operations["actions/get-allowed-actions-organization"]; + /** + * Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * If the organization belongs to an enterprise that has `selected` actions and reusable workflows set at the enterprise level, then you cannot override any of the enterprise's allowed actions and reusable workflows settings. + * + * To use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + put: operations["actions/set-allowed-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/workflow": { + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-organization"]; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-organization"]; + }; + "/orgs/{org}/actions/runner-groups": { + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists all self-hosted runner groups configured in an organization and inherited from an enterprise. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-self-hosted-runner-groups-for-org"]; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Creates a new self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + post: operations["actions/create-self-hosted-runner-group-for-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}": { + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Gets a specific self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-self-hosted-runner-group-for-org"]; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Deletes a self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-group-from-org"]; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Updates the `name` and `visibility` of a self-hosted runner group in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + patch: operations["actions/update-self-hosted-runner-group-for-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": { + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists the repositories with access to a self-hosted runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-repo-access-to-self-hosted-runner-group-in-org"]; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Replaces the list of repositories that have access to a self-hosted runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-repo-access-to-self-hosted-runner-group-in-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": { + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Adds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` + * scope to use this endpoint. + */ + put: operations["actions/add-repo-access-to-self-hosted-runner-group-in-org"]; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/remove-repo-access-to-self-hosted-runner-group-in-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners": { + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists self-hosted runners that are in a specific organization group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-self-hosted-runners-in-group-for-org"]; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Replaces the list of self-hosted runners that are part of an organization runner group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-self-hosted-runners-in-group-for-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Adds a self-hosted runner to a runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` + * scope to use this endpoint. + */ + put: operations["actions/add-self-hosted-runner-to-group-for-org"]; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/remove-self-hosted-runner-from-group-for-org"]; + }; + "/orgs/{org}/actions/runners": { + /** + * Lists all self-hosted runners configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-self-hosted-runners-for-org"]; + }; + "/orgs/{org}/actions/runners/downloads": { + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-runner-applications-for-org"]; + }; + "/orgs/{org}/actions/runners/registration-token": { + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + */ + post: operations["actions/create-registration-token-for-org"]; + }; + "/orgs/{org}/actions/runners/remove-token": { + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + post: operations["actions/create-remove-token-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}": { + /** + * Gets a specific self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/get-self-hosted-runner-for-org"]; + /** + * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels": { + /** + * Lists all labels for a self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-org"]; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-org"]; + /** + * Add custom labels to a self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-org"]; + /** + * Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-org"]; + }; + "/orgs/{org}/actions/secrets": { + /** Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + get: operations["actions/list-org-secrets"]; + }; + "/orgs/{org}/actions/secrets/public-key": { + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + get: operations["actions/get-org-public-key"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}": { + /** Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + get: operations["actions/get-org-secret"]; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["actions/create-or-update-org-secret"]; + /** Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + delete: operations["actions/delete-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories": { + /** Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + get: operations["actions/list-selected-repos-for-org-secret"]; + /** Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + put: operations["actions/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + /** Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + put: operations["actions/add-selected-repo-to-org-secret"]; + /** Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + delete: operations["actions/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/audit-log": { + /** + * Gets the audit log for an organization. For more information, see "[Reviewing the audit log for your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization)." + * + * This endpoint is available for organizations on GitHub Enterprise Cloud. To use this endpoint, you must be an organization owner, and you must use an access token with the `admin:org` scope. GitHub Apps must have the `organization_administration` read permission to use this endpoint. + * + * By default, the response includes up to 30 events from the past three months. Use the `phrase` parameter to filter results and retrieve older events. For example, use the `phrase` parameter with the `created` qualifier to filter events based on when the events occurred. For more information, see "[Reviewing the audit log for your organization](https://docs.github.com/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization#searching-the-audit-log)." + * + * Use pagination to retrieve fewer or more than 30 events. For more information, see "[Resources in the REST API](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination)." + */ + get: operations["orgs/get-audit-log"]; + }; + "/orgs/{org}/blocks": { + /** List the users blocked by an organization. */ + get: operations["orgs/list-blocked-users"]; + }; + "/orgs/{org}/blocks/{username}": { + get: operations["orgs/check-blocked-user"]; + put: operations["orgs/block-user"]; + delete: operations["orgs/unblock-user"]; + }; + "/orgs/{org}/code-scanning/alerts": { + /** + * Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * To use this endpoint, you must be an owner or security manager for the organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + get: operations["code-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/codespaces": { + /** + * Lists the codespaces associated to a specified organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + get: operations["codespaces/list-in-organization"]; + }; + "/orgs/{org}/credential-authorizations": { + /** + * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products). + * + * An authenticated organization owner with the `read:org` scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see [About authentication with SAML single sign-on](https://docs.github.com/en/articles/about-authentication-with-saml-single-sign-on). + */ + get: operations["orgs/list-saml-sso-authorizations"]; + }; + "/orgs/{org}/credential-authorizations/{credential_id}": { + /** + * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products). + * + * An authenticated organization owner with the `admin:org` scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access. + */ + delete: operations["orgs/remove-saml-sso-authorization"]; + }; + "/orgs/{org}/dependabot/secrets": { + /** Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + get: operations["dependabot/list-org-secrets"]; + }; + "/orgs/{org}/dependabot/secrets/public-key": { + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + get: operations["dependabot/get-org-public-key"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}": { + /** Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + get: operations["dependabot/get-org-secret"]; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["dependabot/create-or-update-org-secret"]; + /** Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + delete: operations["dependabot/delete-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + /** Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + get: operations["dependabot/list-selected-repos-for-org-secret"]; + /** Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + put: operations["dependabot/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + /** Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + put: operations["dependabot/add-selected-repo-to-org-secret"]; + /** Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + delete: operations["dependabot/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/events": { + get: operations["activity/list-public-org-events"]; + }; + "/orgs/{org}/external-group/{group_id}": { + /** + * Displays information about the specific group's usage. Provides a list of the group's external members as well as a list of teams that this group is connected to. + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + get: operations["teams/external-idp-group-info-for-org"]; + }; + "/orgs/{org}/external-groups": { + /** + * Lists external groups available in an organization. You can query the groups using the `display_name` parameter, only groups with a `group_name` containing the text provided in the `display_name` parameter will be returned. You can also limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see "[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89)." + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + get: operations["teams/list-external-idp-groups-for-org"]; + }; + "/orgs/{org}/failed_invitations": { + /** The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. */ + get: operations["orgs/list-failed-invitations"]; + }; + "/orgs/{org}/hooks": { + get: operations["orgs/list-webhooks"]; + /** Here's how you can create a hook that posts payloads in JSON format: */ + post: operations["orgs/create-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}": { + /** Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization)." */ + get: operations["orgs/get-webhook"]; + delete: operations["orgs/delete-webhook"]; + /** Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization)." */ + patch: operations["orgs/update-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}/config": { + /** + * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission. + */ + get: operations["orgs/get-webhook-config-for-org"]; + /** + * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission. + */ + patch: operations["orgs/update-webhook-config-for-org"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries": { + /** Returns a list of webhook deliveries for a webhook configured in an organization. */ + get: operations["orgs/list-webhook-deliveries"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** Returns a delivery for a webhook configured in an organization. */ + get: operations["orgs/get-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** Redeliver a delivery for a webhook configured in an organization. */ + post: operations["orgs/redeliver-webhook-delivery"]; + }; + "/orgs/{org}/hooks/{hook_id}/pings": { + /** This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. */ + post: operations["orgs/ping-webhook"]; + }; + "/orgs/{org}/installation": { + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-org-installation"]; + }; + "/orgs/{org}/installations": { + /** Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint. */ + get: operations["orgs/list-app-installations"]; + }; + "/orgs/{org}/interaction-limits": { + /** Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. */ + get: operations["interactions/get-restrictions-for-org"]; + /** Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. */ + put: operations["interactions/set-restrictions-for-org"]; + /** Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. */ + delete: operations["interactions/remove-restrictions-for-org"]; + }; + "/orgs/{org}/invitations": { + /** The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. */ + get: operations["orgs/list-pending-invitations"]; + /** + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["orgs/create-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}": { + /** + * Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + delete: operations["orgs/cancel-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}/teams": { + /** List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. */ + get: operations["orgs/list-invitation-teams"]; + }; + "/orgs/{org}/issues": { + /** + * List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + get: operations["issues/list-for-org"]; + }; + "/orgs/{org}/members": { + /** List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. */ + get: operations["orgs/list-members"]; + }; + "/orgs/{org}/members/{username}": { + /** Check if a user is, publicly or privately, a member of the organization. */ + get: operations["orgs/check-membership-for-user"]; + /** Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. */ + delete: operations["orgs/remove-member"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}": { + /** + * Deletes a user's codespace. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + delete: operations["codespaces/delete-from-organization"]; + }; + "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": { + /** + * Stops a user's codespace. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + post: operations["codespaces/stop-in-organization"]; + }; + "/orgs/{org}/memberships/{username}": { + /** In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. */ + get: operations["orgs/get-membership-for-user"]; + /** + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + put: operations["orgs/set-membership-for-user"]; + /** + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + delete: operations["orgs/remove-membership-for-user"]; + }; + "/orgs/{org}/migrations": { + /** Lists the most recent migrations. */ + get: operations["migrations/list-for-org"]; + /** Initiates the generation of a migration archive. */ + post: operations["migrations/start-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}": { + /** + * Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + get: operations["migrations/get-status-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/archive": { + /** Fetches the URL to a migration archive. */ + get: operations["migrations/download-archive-for-org"]; + /** Deletes a previous migration archive. Migration archives are automatically deleted after seven days. */ + delete: operations["migrations/delete-archive-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { + /** Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data. */ + delete: operations["migrations/unlock-repo-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repositories": { + /** List all the repositories for this organization migration. */ + get: operations["migrations/list-repos-for-org"]; + }; + "/orgs/{org}/outside_collaborators": { + /** List all users who are outside collaborators of an organization. */ + get: operations["orgs/list-outside-collaborators"]; + }; + "/orgs/{org}/outside_collaborators/{username}": { + /** When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." */ + put: operations["orgs/convert-member-to-outside-collaborator"]; + /** Removing a user from this list will remove them from all the organization's repositories. */ + delete: operations["orgs/remove-outside-collaborator"]; + }; + "/orgs/{org}/packages": { + /** + * Lists all packages in an organization readable by the user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/list-packages-for-organization"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}": { + /** + * Gets a specific package in an organization. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-package-for-organization"]; + /** + * Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + delete: operations["packages/delete-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/restore": { + /** + * Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + post: operations["packages/restore-package-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions": { + /** + * Returns all package versions for a package owned by an organization. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Gets a specific package version in an organization. + * + * You must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-package-version-for-organization"]; + /** + * Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + delete: operations["packages/delete-package-version-for-org"]; + }; + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + post: operations["packages/restore-package-version-for-org"]; + }; + "/orgs/{org}/projects": { + /** Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + get: operations["projects/list-for-org"]; + /** Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + post: operations["projects/create-for-org"]; + }; + "/orgs/{org}/public_members": { + /** Members of an organization can choose to have their membership publicized or not. */ + get: operations["orgs/list-public-members"]; + }; + "/orgs/{org}/public_members/{username}": { + get: operations["orgs/check-public-membership-for-user"]; + /** + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + put: operations["orgs/set-public-membership-for-authenticated-user"]; + delete: operations["orgs/remove-public-membership-for-authenticated-user"]; + }; + "/orgs/{org}/repos": { + /** Lists repositories for the specified organization. */ + get: operations["repos/list-for-org"]; + /** + * Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository + */ + post: operations["repos/create-in-org"]; + }; + "/orgs/{org}/secret-scanning/alerts": { + /** + * Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * To use this endpoint, you must be an administrator or security manager for the organization, and you must use an access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + get: operations["secret-scanning/list-alerts-for-org"]; + }; + "/orgs/{org}/settings/billing/actions": { + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + get: operations["billing/get-github-actions-billing-org"]; + }; + "/orgs/{org}/settings/billing/advanced-security": { + /** + * Gets the GitHub Advanced Security active committers for an organization per repository. + * + * Each distinct user login across all repositories is counted as a single Advanced Security seat, so the `total_advanced_security_committers` is not the sum of advanced_security_committers for each repository. + * + * If this organization defers to an enterprise for billing, the `total_advanced_security_committers` returned from the organization API may include some users that are in more than one organization, so they will only consume a single Advanced Security seat at the enterprise level. + * + * The total number of repositories with committer information is tracked by the `total_count` field. + */ + get: operations["billing/get-github-advanced-security-billing-org"]; + }; + "/orgs/{org}/settings/billing/packages": { + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + get: operations["billing/get-github-packages-billing-org"]; + }; + "/orgs/{org}/settings/billing/shared-storage": { + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + get: operations["billing/get-shared-storage-billing-org"]; + }; + "/orgs/{org}/team-sync/groups": { + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups available in an organization. You can limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see "[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89)." + */ + get: operations["teams/list-idp-groups-for-org"]; + }; + "/orgs/{org}/teams": { + /** Lists all teams in an organization that are visible to the authenticated user. */ + get: operations["teams/list"]; + /** + * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/en/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + post: operations["teams/create"]; + }; + "/orgs/{org}/teams/{team_slug}": { + /** + * Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + get: operations["teams/get-by-name"]; + /** + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + delete: operations["teams/delete-in-org"]; + /** + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + patch: operations["teams/update-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions": { + /** + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + */ + get: operations["teams/list-discussions-in-org"]; + /** + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + */ + post: operations["teams/create-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": { + /** + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + get: operations["teams/get-discussion-in-org"]; + /** + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + delete: operations["teams/delete-discussion-in-org"]; + /** + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + patch: operations["teams/update-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + /** + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + get: operations["teams/list-discussion-comments-in-org"]; + /** + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + post: operations["teams/create-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + get: operations["teams/get-discussion-comment-in-org"]; + /** + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + delete: operations["teams/delete-discussion-comment-in-org"]; + /** + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + patch: operations["teams/update-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + get: operations["reactions/list-for-team-discussion-comment-in-org"]; + /** + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + post: operations["reactions/create-for-team-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": { + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + delete: operations["reactions/delete-for-team-discussion-comment"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + /** + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + get: operations["reactions/list-for-team-discussion-in-org"]; + /** + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + post: operations["reactions/create-for-team-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": { + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + delete: operations["reactions/delete-for-team-discussion"]; + }; + "/orgs/{org}/teams/{team_slug}/external-groups": { + /** + * Lists a connection between a team and an external group. + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + get: operations["teams/list-linked-external-idp-groups-to-team-for-org"]; + /** + * Deletes a connection between a team and an external group. + * + * You can manage team membership with your IdP using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + delete: operations["teams/unlink-external-idp-group-from-team-for-org"]; + /** + * Creates a connection between a team and an external group. Only one external group can be linked to a team. + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + patch: operations["teams/link-external-idp-group-to-team-for-org"]; + }; + "/orgs/{org}/teams/{team_slug}/invitations": { + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + get: operations["teams/list-pending-invitations-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/members": { + /** + * Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/list-members-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/memberships/{username}": { + /** + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-in-org"]; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + put: operations["teams/add-or-update-membership-for-user-in-org"]; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + delete: operations["teams/remove-membership-for-user-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects": { + /** + * Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + get: operations["teams/list-projects-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects/{project_id}": { + /** + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + get: operations["teams/check-permissions-for-project-in-org"]; + /** + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + put: operations["teams/add-or-update-project-permissions-in-org"]; + /** + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + delete: operations["teams/remove-project-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos": { + /** + * Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + get: operations["teams/list-repos-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + /** + * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + get: operations["teams/check-permissions-for-repo-in-org"]; + /** + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + put: operations["teams/add-or-update-repo-permissions-in-org"]; + /** + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + delete: operations["teams/remove-repo-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/team-sync/group-mappings": { + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups connected to a team on GitHub. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. + */ + get: operations["teams/list-idp-groups-in-org"]; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. + */ + patch: operations["teams/create-or-update-idp-group-connections-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/teams": { + /** + * Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + get: operations["teams/list-child-in-org"]; + }; + "/projects/columns/cards/{card_id}": { + get: operations["projects/get-card"]; + delete: operations["projects/delete-card"]; + patch: operations["projects/update-card"]; + }; + "/projects/columns/cards/{card_id}/moves": { + post: operations["projects/move-card"]; + }; + "/projects/columns/{column_id}": { + get: operations["projects/get-column"]; + delete: operations["projects/delete-column"]; + patch: operations["projects/update-column"]; + }; + "/projects/columns/{column_id}/cards": { + get: operations["projects/list-cards"]; + post: operations["projects/create-card"]; + }; + "/projects/columns/{column_id}/moves": { + post: operations["projects/move-column"]; + }; + "/projects/{project_id}": { + /** Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + get: operations["projects/get"]; + /** Deletes a project board. Returns a `404 Not Found` status if projects are disabled. */ + delete: operations["projects/delete"]; + /** Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + patch: operations["projects/update"]; + }; + "/projects/{project_id}/collaborators": { + /** Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. */ + get: operations["projects/list-collaborators"]; + }; + "/projects/{project_id}/collaborators/{username}": { + /** Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. */ + put: operations["projects/add-collaborator"]; + /** Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. */ + delete: operations["projects/remove-collaborator"]; + }; + "/projects/{project_id}/collaborators/{username}/permission": { + /** Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. */ + get: operations["projects/get-permission-for-user"]; + }; + "/projects/{project_id}/columns": { + get: operations["projects/list-columns"]; + post: operations["projects/create-column"]; + }; + "/rate_limit": { + /** + * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: operations["rate-limit/get"]; + }; + "/repos/{owner}/{repo}": { + /** The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. */ + get: operations["repos/get"]; + /** + * Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + */ + delete: operations["repos/delete"]; + /** **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint. */ + patch: operations["repos/update"]; + }; + "/repos/{owner}/{repo}/actions/artifacts": { + /** Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/list-artifacts-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + /** Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/get-artifact"]; + /** Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + delete: operations["actions/delete-artifact"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + /** + * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to + * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/download-artifact"]; + }; + "/repos/{owner}/{repo}/actions/cache/usage": { + /** + * Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/get-actions-cache-usage"]; + }; + "/repos/{owner}/{repo}/actions/caches": { + /** + * Lists the GitHub Actions caches for a repository. + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/get-actions-cache-list"]; + /** + * Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-key"]; + }; + "/repos/{owner}/{repo}/actions/caches/{cache_id}": { + /** + * Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + delete: operations["actions/delete-actions-cache-by-id"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + /** Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/get-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + /** + * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can + * use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must + * have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/download-job-logs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": { + /** Re-run a job and its dependent jobs in a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + post: operations["actions/re-run-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/oidc/customization/sub": { + /** + * Gets the `opt-out` flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository. + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `organization_administration:read` permission to use this endpoint. + */ + get: operations["actions/get-custom-oidc-sub-claim-for-repo"]; + /** + * Sets the `opt-out` flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository. + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + put: operations["actions/set-custom-oidc-sub-claim-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/permissions": { + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + get: operations["actions/get-github-actions-permissions-repository"]; + /** + * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions and reusable workflows, then you cannot override them for the repository. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + put: operations["actions/set-github-actions-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/access": { + /** + * Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to internal repositories. For more information, see "[Managing GitHub Actions settings for a repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-an-internal-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the + * repository `administration` permission to use this endpoint. + */ + get: operations["actions/get-workflow-access-to-repository"]; + /** + * Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to internal repositories. For more information, see "[Managing GitHub Actions settings for a repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-an-internal-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the + * repository `administration` permission to use this endpoint. + */ + put: operations["actions/set-workflow-access-to-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + /** + * Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + get: operations["actions/get-allowed-actions-repository"]; + /** + * Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * If the repository belongs to an organization or enterprise that has `selected` actions and reusable workflows set at the organization or enterprise levels, then you cannot override any of the allowed actions and reusable workflows settings. + * + * To use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + put: operations["actions/set-allowed-actions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/workflow": { + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the repository `administration` permission to use this API. + */ + get: operations["actions/get-github-actions-default-workflow-permissions-repository"]; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the repository `administration` permission to use this API. + */ + put: operations["actions/set-github-actions-default-workflow-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/runners": { + /** Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint. */ + get: operations["actions/list-self-hosted-runners-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/downloads": { + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + get: operations["actions/list-runner-applications-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/registration-token": { + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate + * using an access token with the `repo` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN + * ``` + */ + post: operations["actions/create-registration-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/remove-token": { + /** + * Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + post: operations["actions/create-remove-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + /** + * Gets a specific self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + get: operations["actions/get-self-hosted-runner-for-repo"]; + /** + * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `repo` + * scope to use this endpoint. + */ + delete: operations["actions/delete-self-hosted-runner-from-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": { + /** + * Lists all labels for a self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + get: operations["actions/list-labels-for-self-hosted-runner-for-repo"]; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + put: operations["actions/set-custom-labels-for-self-hosted-runner-for-repo"]; + /** + * Add custom labels to a self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + post: operations["actions/add-custom-labels-to-self-hosted-runner-for-repo"]; + /** + * Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + delete: operations["actions/remove-all-custom-labels-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": { + /** + * Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + delete: operations["actions/remove-custom-label-from-self-hosted-runner-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs": { + /** + * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/list-workflow-runs-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}": { + /** Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/get-workflow-run"]; + /** + * Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is + * private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use + * this endpoint. + */ + delete: operations["actions/delete-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { + /** Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/get-reviews-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": { + /** + * Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + post: operations["actions/approve-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + /** Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/list-workflow-run-artifacts"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": { + /** + * Gets a specific workflow run attempt. Anyone with read access to the repository + * can use this endpoint. If the repository is private you must use an access token + * with the `repo` scope. GitHub Apps must have the `actions:read` permission to + * use this endpoint. + */ + get: operations["actions/get-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { + /** Lists jobs for a specific workflow run attempt. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). */ + get: operations["actions/list-jobs-for-workflow-run-attempt"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": { + /** + * Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. Anyone with read access to + * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/download-workflow-run-attempt-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { + /** Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + post: operations["actions/cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + /** Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). */ + get: operations["actions/list-jobs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + /** + * Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use + * this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have + * the `actions:read` permission to use this endpoint. + */ + get: operations["actions/download-workflow-run-logs"]; + /** Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + delete: operations["actions/delete-workflow-run-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { + /** + * Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/get-pending-deployments-for-run"]; + /** + * Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. Required reviewers must authenticate using an access token with the `repo` scope to use this endpoint. + */ + post: operations["actions/review-pending-deployments-for-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + /** Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + post: operations["actions/re-run-workflow"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": { + /** Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. */ + post: operations["actions/re-run-workflow-failed-jobs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + /** + * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/get-workflow-run-usage"]; + }; + "/repos/{owner}/{repo}/actions/secrets": { + /** Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + get: operations["actions/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/actions/secrets/public-key": { + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + get: operations["actions/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + /** Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + get: operations["actions/get-repo-secret"]; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["actions/create-or-update-repo-secret"]; + /** Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + delete: operations["actions/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/actions/workflows": { + /** Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/list-repo-workflows"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + /** Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["actions/get-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + /** + * Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + put: operations["actions/disable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + /** + * You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see "[Creating a personal access token for the command line](https://docs.github.com/articles/creating-a-personal-access-token-for-the-command-line)." + */ + post: operations["actions/create-workflow-dispatch"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + /** + * Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + put: operations["actions/enable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + /** + * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + */ + get: operations["actions/list-workflow-runs"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + /** + * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["actions/get-workflow-usage"]; + }; + "/repos/{owner}/{repo}/assignees": { + /** Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. */ + get: operations["issues/list-assignees"]; + }; + "/repos/{owner}/{repo}/assignees/{assignee}": { + /** + * Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + get: operations["issues/check-user-can-be-assigned"]; + }; + "/repos/{owner}/{repo}/autolinks": { + /** + * This returns a list of autolinks configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/list-autolinks"]; + /** Users with admin access to the repository can create an autolink. */ + post: operations["repos/create-autolink"]; + }; + "/repos/{owner}/{repo}/autolinks/{autolink_id}": { + /** + * This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + get: operations["repos/get-autolink"]; + /** + * This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + delete: operations["repos/delete-autolink"]; + }; + "/repos/{owner}/{repo}/automated-security-fixes": { + /** Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/en/articles/configuring-automated-security-fixes)". */ + put: operations["repos/enable-automated-security-fixes"]; + /** Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/en/articles/configuring-automated-security-fixes)". */ + delete: operations["repos/disable-automated-security-fixes"]; + }; + "/repos/{owner}/{repo}/branches": { + get: operations["repos/list-branches"]; + }; + "/repos/{owner}/{repo}/branches/{branch}": { + get: operations["repos/get-branch"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection": { + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + get: operations["repos/get-branch-protection"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + put: operations["repos/update-branch-protection"]; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + delete: operations["repos/delete-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + get: operations["repos/get-admin-branch-protection"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + post: operations["repos/set-admin-branch-protection"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + delete: operations["repos/delete-admin-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + get: operations["repos/get-pull-request-review-protection"]; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + delete: operations["repos/delete-pull-request-review-protection"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + patch: operations["repos/update-pull-request-review-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + get: operations["repos/get-commit-signature-protection"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + post: operations["repos/create-commit-signature-protection"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + delete: operations["repos/delete-commit-signature-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + get: operations["repos/get-status-checks-protection"]; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + delete: operations["repos/remove-status-check-protection"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + patch: operations["repos/update-status-check-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + get: operations["repos/get-all-status-check-contexts"]; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + put: operations["repos/set-status-check-contexts"]; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + post: operations["repos/add-status-check-contexts"]; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + delete: operations["repos/remove-status-check-contexts"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + get: operations["repos/get-access-restrictions"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + delete: operations["repos/delete-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + */ + get: operations["repos/get-apps-with-access-to-protected-branch"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + put: operations["repos/set-app-access-restrictions"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + post: operations["repos/add-app-access-restrictions"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + delete: operations["repos/remove-app-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + get: operations["repos/get-teams-with-access-to-protected-branch"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + put: operations["repos/set-team-access-restrictions"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + post: operations["repos/add-team-access-restrictions"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + delete: operations["repos/remove-team-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + get: operations["repos/get-users-with-access-to-protected-branch"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + put: operations["repos/set-user-access-restrictions"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + post: operations["repos/add-user-access-restrictions"]; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + delete: operations["repos/remove-user-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/rename": { + /** + * Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The permissions required to use this endpoint depends on whether you are renaming the default branch. + * + * To rename a non-default branch: + * + * * Users must have push access. + * * GitHub Apps must have the `contents:write` repository permission. + * + * To rename the default branch: + * + * * Users must have admin or owner permissions. + * * GitHub Apps must have the `administration:write` repository permission. + */ + post: operations["repos/rename-branch"]; + }; + "/repos/{owner}/{repo}/check-runs": { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + post: operations["checks/create"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Gets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + get: operations["checks/get"]; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Updates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs. + */ + patch: operations["checks/update"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + /** Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. */ + get: operations["checks/list-annotations"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": { + /** + * Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check run, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + post: operations["checks/rerequest-run"]; + }; + "/repos/{owner}/{repo}/check-suites": { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)". Your GitHub App must have the `checks:write` permission to create check suites. + */ + post: operations["checks/create-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/preferences": { + /** Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites. */ + patch: operations["checks/set-suites-preferences"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Gets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + get: operations["checks/get-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + get: operations["checks/list-for-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { + /** + * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + post: operations["checks/rerequest-suite"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts": { + /** + * Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + get: operations["code-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { + /** + * Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint with private repos, the `public_repo` scope also grants permission to read security events on public repos only. GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * **Deprecation notice**: + * The instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by `instances_url`. + */ + get: operations["code-scanning/get-alert"]; + /** Updates the status of a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint with private repositories. You can also use tokens with the `public_repo` scope for public repositories only. GitHub Apps must have the `security_events` write permission to use this endpoint. */ + patch: operations["code-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + /** + * Lists all instances of the specified code scanning alert. + * You must use an access token with the `security_events` scope to use this endpoint with private repos, + * the `public_repo` scope also grants permission to read security events on public repos only. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + get: operations["code-scanning/list-alert-instances"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses": { + /** + * Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * You must use an access token with the `security_events` scope to use this endpoint with private repos, + * the `public_repo` scope also grants permission to read security events on public repos only. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + */ + get: operations["code-scanning/list-recent-analyses"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { + /** + * Gets a specified code scanning analysis for a repository. + * You must use an access token with the `security_events` scope to use this endpoint with private repos, + * the `public_repo` scope also grants permission to read security events on public repos only. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * If you use the Accept header `application/sarif+json`, + * the response contains the analysis data that was uploaded. + * This is formatted as + * [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). + */ + get: operations["code-scanning/get-analysis"]; + /** + * Deletes a specified code scanning analysis from a repository. For + * private repositories, you must use an access token with the `repo` scope. For public repositories, + * you must use an access token with `public_repo` scope. + * GitHub Apps must have the `security_events` write permission to use this endpoint. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `analysis_key` + * * `environment` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + */ + delete: operations["code-scanning/delete-analysis"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs": { + /** + * Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the `security_events` scope to use this endpoint for private repositories. You can also use tokens with the `public_repo` scope for public repositories only. GitHub Apps must have the `security_events` write permission to use this endpoint. + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum of 5000 results per analysis run. Any results over this limit are ignored and any SARIF uploads with more than 25,000 results are rejected. Typically, but not necessarily, a SARIF file contains a single run of a single tool. If a code scanning tool generates too many results, you should update the analysis configuration to run only the most important rules or queries. + * + * The `202 Accepted`, response includes an `id` value. + * You can use this ID to check the status of the upload by using this for the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/reference/code-scanning#get-information-about-a-sarif-upload)." + */ + post: operations["code-scanning/upload-sarif"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": { + /** Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository)." You must use an access token with the `security_events` scope to use this endpoint with private repos, the `public_repo` scope also grants permission to read security events on public repos only. GitHub Apps must have the `security_events` read permission to use this endpoint. */ + get: operations["code-scanning/get-sarif"]; + }; + "/repos/{owner}/{repo}/codeowners/errors": { + /** + * List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + get: operations["repos/codeowners-errors"]; + }; + "/repos/{owner}/{repo}/codespaces": { + /** + * Lists the codespaces associated to a specified repository and the authenticated user. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces` repository permission to use this endpoint. + */ + get: operations["codespaces/list-in-repository-for-authenticated-user"]; + /** + * Creates a codespace owned by the authenticated user in the specified repository. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + post: operations["codespaces/create-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/devcontainers": { + /** + * Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_metadata` repository permission to use this endpoint. + */ + get: operations["codespaces/list-devcontainers-in-repository-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/machines": { + /** + * List the machine types available for a given repository based on its configuration. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_metadata` repository permission to use this endpoint. + */ + get: operations["codespaces/repo-machines-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/new": { + /** + * Gets the default attributes for codespaces created by the user with the repository. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + get: operations["codespaces/pre-flight-with-repo-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets": { + /** Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + get: operations["codespaces/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/public-key": { + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + get: operations["codespaces/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": { + /** Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + get: operations["codespaces/get-repo-secret"]; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository + * permission to use this endpoint. + * + * #### Example of encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example of encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example of encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example of encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["codespaces/create-or-update-repo-secret"]; + /** Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + delete: operations["codespaces/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/collaborators": { + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * You must authenticate using an access token with the `read:org` and `repo` scopes with push access to use this + * endpoint. GitHub Apps must have the `members` organization permission and `metadata` repository permission to use this + * endpoint. + */ + get: operations["repos/list-collaborators"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}": { + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * You must authenticate using an access token with the `read:org` and `repo` scopes with push access to use this + * endpoint. GitHub Apps must have the `members` organization permission and `metadata` repository permission to use this + * endpoint. + */ + get: operations["repos/check-collaborator"]; + /** + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + put: operations["repos/add-collaborator"]; + delete: operations["repos/remove-collaborator"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}/permission": { + /** Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`. */ + get: operations["repos/get-collaborator-permission-level"]; + }; + "/repos/{owner}/{repo}/comments": { + /** + * Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/). + * + * Comments are ordered by ascending ID. + */ + get: operations["repos/list-commit-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}": { + get: operations["repos/get-commit-comment"]; + delete: operations["repos/delete-commit-comment"]; + patch: operations["repos/update-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + /** List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments). */ + get: operations["reactions/list-for-commit-comment"]; + /** Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. */ + post: operations["reactions/create-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + delete: operations["reactions/delete-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits": { + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/list-commits"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + get: operations["repos/list-branches-for-head-commit"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { + /** Use the `:commit_sha` to specify the commit that will have its comments listed. */ + get: operations["repos/list-comments-for-commit"]; + /** + * Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["repos/create-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + /** Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. */ + get: operations["repos/list-pull-requests-associated-with-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}": { + /** + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * You can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property. + * + * To return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/get-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + get: operations["checks/list-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + get: operations["checks/list-suites-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/status": { + /** + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + get: operations["repos/get-combined-status-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/statuses": { + /** + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + get: operations["repos/list-commit-statuses-for-ref"]; + }; + "/repos/{owner}/{repo}/community/profile": { + /** + * This endpoint will return all community profile metrics, including an + * overall health score, repository description, the presence of documentation, detected + * code of conduct, detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * these four documents are present: README, CONTRIBUTING, LICENSE, and + * CODE_OF_CONDUCT. For example, if all four documents are present, then + * the `health_percentage` is `100`. If only one is present, then the + * `health_percentage` is `25`. + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + get: operations["repos/get-community-profile-metrics"]; + }; + "/repos/{owner}/{repo}/compare/{basehead}": { + /** + * The `basehead` param is comprised of two parts: `base` and `head`. Both must be branch names in `repo`. To compare branches across other repositories in the same network as `repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits-with-basehead"]; + }; + "/repos/{owner}/{repo}/contents/{path}": { + /** + * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit + * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. + * + * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for + * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media + * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent + * object format. + * + * **Note**: + * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). + * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees + * API](https://docs.github.com/rest/reference/git#get-a-tree). + * + * #### Size limits + * If the requested file's size is: + * * 1 MB or smaller: All features of this endpoint are supported. + * * Between 1-100 MB: Only the `raw` or `object` [custom media types](https://docs.github.com/rest/repos/contents#custom-media-types-for-repository-contents) are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * * Greater than 100 MB: This endpoint is not supported. + * + * #### If the content is a directory + * The response will be an array of objects, one object for each item in the directory. + * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value + * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). + * In the next major version of the API, the type will be returned as "submodule". + * + * #### If the content is a symlink + * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the + * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object + * describing the symlink itself. + * + * #### If the content is a submodule + * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific + * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out + * the submodule at that specific commit. + * + * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the + * github.com URLs (`html_url` and `_links["html"]`) will have null values. + */ + get: operations["repos/get-content"]; + /** Creates a new file or replaces an existing file in a repository. */ + put: operations["repos/create-or-update-file-contents"]; + /** + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + */ + delete: operations["repos/delete-file"]; + }; + "/repos/{owner}/{repo}/contributors": { + /** + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + get: operations["repos/list-contributors"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets": { + /** Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + get: operations["dependabot/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + get: operations["dependabot/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { + /** Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + get: operations["dependabot/get-repo-secret"]; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["dependabot/create-or-update-repo-secret"]; + /** Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + delete: operations["dependabot/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/dependency-graph/compare/{basehead}": { + /** Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. */ + get: operations["dependency-graph/diff-range"]; + }; + "/repos/{owner}/{repo}/dependency-graph/snapshots": { + /** Create a new snapshot of a repository's dependencies. You must authenticate using an access token with the `repo` scope to use this endpoint for a repository that the requesting user has access to. */ + post: operations["dependency-graph/create-repository-snapshot"]; + }; + "/repos/{owner}/{repo}/deployments": { + /** Simple filtering of deployments is available via query parameters: */ + get: operations["repos/list-deployments"]; + /** + * Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Users with `repo` or `repo_deployment` scopes can create a deployment for a given ref. + * + * #### Merged branch response + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * #### Merge conflict response + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * #### Failed commit status checks + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + */ + post: operations["repos/create-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + get: operations["repos/get-deployment"]; + /** + * If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. Anyone with `repo` or `repo_deployment` scopes can delete a deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/reference/repos/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status)." + */ + delete: operations["repos/delete-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + /** Users with pull access can view deployment statuses for a deployment: */ + get: operations["repos/list-deployment-statuses"]; + /** + * Users with `push` access can create deployment statuses for a given deployment. + * + * GitHub Apps require `read & write` access to "Deployments" and `read-only` access to "Repo contents" (for private repos). OAuth Apps require the `repo_deployment` scope. + */ + post: operations["repos/create-deployment-status"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + /** Users with pull access can view a deployment status for a deployment: */ + get: operations["repos/get-deployment-status"]; + }; + "/repos/{owner}/{repo}/dispatches": { + /** + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This endpoint requires write access to the repository by providing either: + * + * - Personal access tokens with `repo` scope. For more information, see "[Creating a personal access token for the command line](https://docs.github.com/articles/creating-a-personal-access-token-for-the-command-line)" in the GitHub Help documentation. + * - GitHub Apps with both `metadata:read` and `contents:read&write` permissions. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + */ + post: operations["repos/create-dispatch-event"]; + }; + "/repos/{owner}/{repo}/environments": { + /** + * Get all environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + get: operations["repos/get-all-environments"]; + }; + "/repos/{owner}/{repo}/environments/{environment_name}": { + /** Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + get: operations["repos/get-environment"]; + /** + * Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** Although you can use this operation to specify that only branches that match specified name patterns can deploy to this environment, you must use the UI to set the name patterns. For more information, see "[Environments](/actions/reference/environments#deployment-branches)." + * + * **Note:** To create or update secrets for an environment, see "[Secrets](/rest/reference/actions#secrets)." + * + * You must authenticate using an access token with the repo scope to use this endpoint. + */ + put: operations["repos/create-or-update-environment"]; + /** You must authenticate using an access token with the repo scope to use this endpoint. */ + delete: operations["repos/delete-an-environment"]; + }; + "/repos/{owner}/{repo}/events": { + get: operations["activity/list-repo-events"]; + }; + "/repos/{owner}/{repo}/forks": { + get: operations["repos/list-forks"]; + /** + * Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + */ + post: operations["repos/create-fork"]; + }; + "/repos/{owner}/{repo}/git/blobs": { + post: operations["git/create-blob"]; + }; + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + /** + * The `content` in the response will always be Base64 encoded. + * + * _Note_: This API supports blobs up to 100 megabytes in size. + */ + get: operations["git/get-blob"]; + }; + "/repos/{owner}/{repo}/git/commits": { + /** + * Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-commit"]; + }; + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + /** + * Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-commit"]; + }; + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + /** + * Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + get: operations["git/list-matching-refs"]; + }; + "/repos/{owner}/{repo}/git/ref/{ref}": { + /** + * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + get: operations["git/get-ref"]; + }; + "/repos/{owner}/{repo}/git/refs": { + /** Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. */ + post: operations["git/create-ref"]; + }; + "/repos/{owner}/{repo}/git/refs/{ref}": { + delete: operations["git/delete-ref"]; + patch: operations["git/update-ref"]; + }; + "/repos/{owner}/{repo}/git/tags": { + /** + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + post: operations["git/create-tag"]; + }; + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["git/get-tag"]; + }; + "/repos/{owner}/{repo}/git/trees": { + /** + * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference)." + */ + post: operations["git/create-tree"]; + }; + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + /** + * Returns a single tree using the SHA1 value for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + */ + get: operations["git/get-tree"]; + }; + "/repos/{owner}/{repo}/hooks": { + get: operations["repos/list-webhooks"]; + /** + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + post: operations["repos/create-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}": { + /** Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository)." */ + get: operations["repos/get-webhook"]; + delete: operations["repos/delete-webhook"]; + /** Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository)." */ + patch: operations["repos/update-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/config": { + /** + * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook)." + * + * Access tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission. + */ + get: operations["repos/get-webhook-config-for-repo"]; + /** + * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook)." + * + * Access tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission. + */ + patch: operations["repos/update-webhook-config-for-repo"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { + /** Returns a list of webhook deliveries for a webhook configured in a repository. */ + get: operations["repos/list-webhook-deliveries"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { + /** Returns a delivery for a webhook configured in a repository. */ + get: operations["repos/get-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": { + /** Redeliver a webhook delivery for a webhook configured in a repository. */ + post: operations["repos/redeliver-webhook-delivery"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { + /** This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. */ + post: operations["repos/ping-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { + /** + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + post: operations["repos/test-push-webhook"]; + }; + "/repos/{owner}/{repo}/import": { + /** + * View the progress of an import. + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + get: operations["migrations/get-import-status"]; + /** Start a source import to a GitHub repository using GitHub Importer. */ + put: operations["migrations/start-import"]; + /** Stop an import for a repository. */ + delete: operations["migrations/cancel-import"]; + /** + * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + */ + patch: operations["migrations/update-import"]; + }; + "/repos/{owner}/{repo}/import/authors": { + /** + * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information. + */ + get: operations["migrations/get-commit-authors"]; + }; + "/repos/{owner}/{repo}/import/authors/{author_id}": { + /** Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository. */ + patch: operations["migrations/map-commit-author"]; + }; + "/repos/{owner}/{repo}/import/large_files": { + /** List files larger than 100MB found during the import */ + get: operations["migrations/get-large-files"]; + }; + "/repos/{owner}/{repo}/import/lfs": { + /** You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://docs.github.com/articles/versioning-large-files/). */ + patch: operations["migrations/set-lfs-preference"]; + }; + "/repos/{owner}/{repo}/installation": { + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-repo-installation"]; + }; + "/repos/{owner}/{repo}/interaction-limits": { + /** Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. */ + get: operations["interactions/get-restrictions-for-repo"]; + /** Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. */ + put: operations["interactions/set-restrictions-for-repo"]; + /** Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. */ + delete: operations["interactions/remove-restrictions-for-repo"]; + }; + "/repos/{owner}/{repo}/invitations": { + /** When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. */ + get: operations["repos/list-invitations"]; + }; + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + delete: operations["repos/delete-invitation"]; + patch: operations["repos/update-invitation"]; + }; + "/repos/{owner}/{repo}/issues": { + /** + * List issues in a repository. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + get: operations["issues/list-for-repo"]; + /** + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["issues/create"]; + }; + "/repos/{owner}/{repo}/issues/comments": { + /** By default, Issue Comments are ordered by ascending ID. */ + get: operations["issues/list-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + get: operations["issues/get-comment"]; + delete: operations["issues/delete-comment"]; + patch: operations["issues/update-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + /** List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments). */ + get: operations["reactions/list-for-issue-comment"]; + /** Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. */ + post: operations["reactions/create-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + delete: operations["reactions/delete-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/events": { + get: operations["issues/list-events-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/events/{event_id}": { + get: operations["issues/get-event"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}": { + /** + * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + get: operations["issues/get"]; + /** Issue owners and users with push access can edit an issue. */ + patch: operations["issues/update"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { + /** Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. */ + post: operations["issues/add-assignees"]; + /** Removes one or more assignees from an issue. */ + delete: operations["issues/remove-assignees"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + /** Issue Comments are ordered by ascending ID. */ + get: operations["issues/list-comments"]; + /** This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. */ + post: operations["issues/create-comment"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/events": { + get: operations["issues/list-events"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + get: operations["issues/list-labels-on-issue"]; + /** Removes any previous labels and sets the new labels for an issue. */ + put: operations["issues/set-labels"]; + post: operations["issues/add-labels"]; + delete: operations["issues/remove-all-labels"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { + /** Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. */ + delete: operations["issues/remove-label"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/lock": { + /** + * Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + put: operations["issues/lock"]; + /** Users with push access can unlock an issue's conversation. */ + delete: operations["issues/unlock"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + /** List the reactions to an [issue](https://docs.github.com/rest/reference/issues). */ + get: operations["reactions/list-for-issue"]; + /** Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with an HTTP `200` status means that you already added the reaction type to this issue. */ + post: operations["reactions/create-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/reference/issues/). + */ + delete: operations["reactions/delete-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + get: operations["issues/list-events-for-timeline"]; + }; + "/repos/{owner}/{repo}/keys": { + get: operations["repos/list-deploy-keys"]; + /** You can create a read-only deploy key. */ + post: operations["repos/create-deploy-key"]; + }; + "/repos/{owner}/{repo}/keys/{key_id}": { + get: operations["repos/get-deploy-key"]; + /** Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. */ + delete: operations["repos/delete-deploy-key"]; + }; + "/repos/{owner}/{repo}/labels": { + get: operations["issues/list-labels-for-repo"]; + post: operations["issues/create-label"]; + }; + "/repos/{owner}/{repo}/labels/{name}": { + get: operations["issues/get-label"]; + delete: operations["issues/delete-label"]; + patch: operations["issues/update-label"]; + }; + "/repos/{owner}/{repo}/languages": { + /** Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. */ + get: operations["repos/list-languages"]; + }; + "/repos/{owner}/{repo}/lfs": { + put: operations["repos/enable-lfs-for-repo"]; + delete: operations["repos/disable-lfs-for-repo"]; + }; + "/repos/{owner}/{repo}/license": { + /** + * This method returns the contents of the repository's license file, if one is detected. + * + * Similar to [Get repository content](https://docs.github.com/rest/reference/repos#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML. + */ + get: operations["licenses/get-for-repo"]; + }; + "/repos/{owner}/{repo}/merge-upstream": { + /** Sync a branch of a forked repository to keep it up-to-date with the upstream repository. */ + post: operations["repos/merge-upstream"]; + }; + "/repos/{owner}/{repo}/merges": { + post: operations["repos/merge"]; + }; + "/repos/{owner}/{repo}/milestones": { + get: operations["issues/list-milestones"]; + post: operations["issues/create-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}": { + get: operations["issues/get-milestone"]; + delete: operations["issues/delete-milestone"]; + patch: operations["issues/update-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + get: operations["issues/list-labels-for-milestone"]; + }; + "/repos/{owner}/{repo}/notifications": { + /** List all notifications for the current user. */ + get: operations["activity/list-repo-notifications-for-authenticated-user"]; + /** Marks all notifications in a repository as "read" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. */ + put: operations["activity/mark-repo-notifications-as-read"]; + }; + "/repos/{owner}/{repo}/pages": { + get: operations["repos/get-pages"]; + /** Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). */ + put: operations["repos/update-information-about-pages-site"]; + /** Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." */ + post: operations["repos/create-pages-site"]; + delete: operations["repos/delete-pages-site"]; + }; + "/repos/{owner}/{repo}/pages/builds": { + get: operations["repos/list-pages-builds"]; + /** + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + post: operations["repos/request-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/latest": { + get: operations["repos/get-latest-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/{build_id}": { + get: operations["repos/get-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/health": { + /** + * Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * Users must have admin or owner permissions. GitHub Apps must have the `pages:write` and `administration:write` permission to use this endpoint. + */ + get: operations["repos/get-pages-health-check"]; + }; + "/repos/{owner}/{repo}/projects": { + /** Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + get: operations["projects/list-for-repo"]; + /** Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + post: operations["projects/create-for-repo"]; + }; + "/repos/{owner}/{repo}/pulls": { + /** Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + get: operations["pulls/list"]; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * You can create a new pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + post: operations["pulls/create"]; + }; + "/repos/{owner}/{repo}/pulls/comments": { + /** Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. */ + get: operations["pulls/list-review-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + /** Provides details for a review comment. */ + get: operations["pulls/get-review-comment"]; + /** Deletes a review comment. */ + delete: operations["pulls/delete-review-comment"]; + /** Enables you to edit a review comment. */ + patch: operations["pulls/update-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + /** List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). */ + get: operations["reactions/list-for-pull-request-review-comment"]; + /** Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. */ + post: operations["reactions/create-for-pull-request-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + delete: operations["reactions/delete-for-pull-request-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}": { + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + */ + get: operations["pulls/get"]; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + */ + patch: operations["pulls/update"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/codespaces": { + /** + * Creates a codespace owned by the authenticated user for the specified pull request. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + post: operations["codespaces/create-with-pr-for-authenticated-user"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + /** Lists all review comments for a pull request. By default, review comments are in ascending order by ID. */ + get: operations["pulls/list-review-comments"]; + /** + * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["pulls/create-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { + /** + * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["pulls/create-reply-for-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + /** Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint. */ + get: operations["pulls/list-commits"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + /** **Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. */ + get: operations["pulls/list-files"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { + get: operations["pulls/check-if-merged"]; + /** This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. */ + put: operations["pulls/merge"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + /** Lists the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. */ + get: operations["pulls/list-requested-reviewers"]; + /** This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. */ + post: operations["pulls/request-reviewers"]; + delete: operations["pulls/remove-requested-reviewers"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + /** The list of reviews returns in chronological order. */ + get: operations["pulls/list-reviews"]; + /** + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * Pull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response. + * + * **Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/overview/media-types#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + post: operations["pulls/create-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + get: operations["pulls/get-review"]; + /** Update the review summary comment with new text. */ + put: operations["pulls/update-review"]; + delete: operations["pulls/delete-pending-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + /** List comments for a specific pull request review. */ + get: operations["pulls/list-comments-for-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { + /** **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. */ + put: operations["pulls/dismiss-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { + post: operations["pulls/submit-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { + /** Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. */ + put: operations["pulls/update-branch"]; + }; + "/repos/{owner}/{repo}/readme": { + /** + * Gets the preferred README for a repository. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + get: operations["repos/get-readme"]; + }; + "/repos/{owner}/{repo}/readme/{dir}": { + /** + * Gets the README from a repository directory. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + get: operations["repos/get-readme-in-directory"]; + }; + "/repos/{owner}/{repo}/releases": { + /** + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + get: operations["repos/list-releases"]; + /** + * Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["repos/create-release"]; + }; + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + /** To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. */ + get: operations["repos/get-release-asset"]; + delete: operations["repos/delete-release-asset"]; + /** Users with push access to the repository can edit a release asset. */ + patch: operations["repos/update-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/generate-notes": { + /** Generate a name and body describing a [release](https://docs.github.com/rest/reference/repos#releases). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. */ + post: operations["repos/generate-release-notes"]; + }; + "/repos/{owner}/{repo}/releases/latest": { + /** + * View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + get: operations["repos/get-latest-release"]; + }; + "/repos/{owner}/{repo}/releases/tags/{tag}": { + /** Get a published release with the specified tag. */ + get: operations["repos/get-release-by-tag"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}": { + /** **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). */ + get: operations["repos/get-release"]; + /** Users with push access to the repository can delete a release. */ + delete: operations["repos/delete-release"]; + /** Users with push access to the repository can edit a release. */ + patch: operations["repos/update-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/assets": { + get: operations["repos/list-release-assets"]; + /** + * This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + post: operations["repos/upload-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions": { + /** List the reactions to a [release](https://docs.github.com/rest/reference/repos#releases). */ + get: operations["reactions/list-for-release"]; + /** Create a reaction to a [release](https://docs.github.com/rest/reference/repos#releases). A response with a `Status: 200 OK` means that you already added the reaction type to this release. */ + post: operations["reactions/create-for-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": { + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/reference/repos#releases). + */ + delete: operations["reactions/delete-for-release"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts": { + /** + * Lists secret scanning alerts for an eligible repository, from newest to oldest. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + get: operations["secret-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + /** + * Gets a single secret scanning alert detected in an eligible repository. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + get: operations["secret-scanning/get-alert"]; + /** + * Updates the status of a secret scanning alert in an eligible repository. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint. + */ + patch: operations["secret-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { + /** + * Lists all locations for a given secret scanning alert for an eligible repository. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + get: operations["secret-scanning/list-locations-for-alert"]; + }; + "/repos/{owner}/{repo}/stargazers": { + /** + * Lists the people that have starred the repository. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + get: operations["activity/list-stargazers-for-repo"]; + }; + "/repos/{owner}/{repo}/stats/code_frequency": { + /** Returns a weekly aggregate of the number of additions and deletions pushed to a repository. */ + get: operations["repos/get-code-frequency-stats"]; + }; + "/repos/{owner}/{repo}/stats/commit_activity": { + /** Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. */ + get: operations["repos/get-commit-activity-stats"]; + }; + "/repos/{owner}/{repo}/stats/contributors": { + /** + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + get: operations["repos/get-contributors-stats"]; + }; + "/repos/{owner}/{repo}/stats/participation": { + /** + * Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + */ + get: operations["repos/get-participation-stats"]; + }; + "/repos/{owner}/{repo}/stats/punch_card": { + /** + * Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + get: operations["repos/get-punch-card-stats"]; + }; + "/repos/{owner}/{repo}/statuses/{sha}": { + /** + * Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + post: operations["repos/create-commit-status"]; + }; + "/repos/{owner}/{repo}/subscribers": { + /** Lists the people watching the specified repository. */ + get: operations["activity/list-watchers-for-repo"]; + }; + "/repos/{owner}/{repo}/subscription": { + get: operations["activity/get-repo-subscription"]; + /** If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely. */ + put: operations["activity/set-repo-subscription"]; + /** This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription). */ + delete: operations["activity/delete-repo-subscription"]; + }; + "/repos/{owner}/{repo}/tags": { + get: operations["repos/list-tags"]; + }; + "/repos/{owner}/{repo}/tags/protection": { + /** + * This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + get: operations["repos/list-tag-protection"]; + /** + * This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + post: operations["repos/create-tag-protection"]; + }; + "/repos/{owner}/{repo}/tags/protection/{tag_protection_id}": { + /** + * This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + delete: operations["repos/delete-tag-protection"]; + }; + "/repos/{owner}/{repo}/tarball/{ref}": { + /** + * Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + get: operations["repos/download-tarball-archive"]; + }; + "/repos/{owner}/{repo}/teams": { + get: operations["repos/list-teams"]; + }; + "/repos/{owner}/{repo}/topics": { + get: operations["repos/get-all-topics"]; + put: operations["repos/replace-all-topics"]; + }; + "/repos/{owner}/{repo}/traffic/clones": { + /** Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. */ + get: operations["repos/get-clones"]; + }; + "/repos/{owner}/{repo}/traffic/popular/paths": { + /** Get the top 10 popular contents over the last 14 days. */ + get: operations["repos/get-top-paths"]; + }; + "/repos/{owner}/{repo}/traffic/popular/referrers": { + /** Get the top 10 referrers over the last 14 days. */ + get: operations["repos/get-top-referrers"]; + }; + "/repos/{owner}/{repo}/traffic/views": { + /** Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. */ + get: operations["repos/get-views"]; + }; + "/repos/{owner}/{repo}/transfer": { + /** A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). */ + post: operations["repos/transfer"]; + }; + "/repos/{owner}/{repo}/vulnerability-alerts": { + /** Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". */ + get: operations["repos/check-vulnerability-alerts"]; + /** Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". */ + put: operations["repos/enable-vulnerability-alerts"]; + /** Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". */ + delete: operations["repos/disable-vulnerability-alerts"]; + }; + "/repos/{owner}/{repo}/zipball/{ref}": { + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + get: operations["repos/download-zipball-archive"]; + }; + "/repos/{template_owner}/{template_repo}/generate": { + /** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository + */ + post: operations["repos/create-using-template"]; + }; + "/repositories": { + /** + * Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories. + */ + get: operations["repos/list-public"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets": { + /** Lists all secrets available in an environment without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + get: operations["actions/list-environment-secrets"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets/public-key": { + /** Get the public key for an environment, which you need to encrypt environment secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + get: operations["actions/get-environment-public-key"]; + }; + "/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": { + /** Gets a single environment secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + get: operations["actions/get-environment-secret"]; + /** + * Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["actions/create-or-update-environment-secret"]; + /** Deletes a secret in an environment using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + delete: operations["actions/delete-environment-secret"]; + }; + "/scim/v2/enterprises/{enterprise}/Groups": { + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + get: operations["enterprise-admin/list-provisioned-groups-enterprise"]; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Provision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to. + */ + post: operations["enterprise-admin/provision-and-invite-enterprise-group"]; + }; + "/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": { + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + get: operations["enterprise-admin/get-provisioning-information-for-enterprise-group"]; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Replaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the [Update an attribute for a SCIM enterprise group](#update-an-attribute-for-a-scim-enterprise-group) endpoint instead. + */ + put: operations["enterprise-admin/set-information-for-provisioned-enterprise-group"]; + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + delete: operations["enterprise-admin/delete-scim-group-from-enterprise"]; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Allows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + */ + patch: operations["enterprise-admin/update-attribute-for-enterprise-group"]; + }; + "/scim/v2/enterprises/{enterprise}/Users": { + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Retrieves a paginated list of all provisioned enterprise members, including pending invitations. + * + * When a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member: + * - When a user with a SCIM-provisioned external identity is removed from an enterprise, the account's metadata is preserved to allow the user to re-join the organization in the future. + * - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted). + * - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO. + * + * The returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO: + * + * 1. The user is granted access by the IdP and is not a member of the GitHub enterprise. + * + * 1. The user attempts to access the GitHub enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub account. + * + * 1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account: + * - If the user signs in, their GitHub account is linked to this entry. + * - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub enterprise, and the external identity `null` entry remains in place. + */ + get: operations["enterprise-admin/list-provisioned-identities-enterprise"]; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Provision enterprise membership for a user, and send organization invitation emails to the email address. + * + * You can optionally include the groups a user will be invited to join. If you do not provide a list of `groups`, the user is provisioned for the enterprise, but no organization invitation emails will be sent. + */ + post: operations["enterprise-admin/provision-and-invite-enterprise-user"]; + }; + "/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": { + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + get: operations["enterprise-admin/get-provisioning-information-for-enterprise-user"]; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](#update-an-attribute-for-an-enterprise-scim-user) endpoint instead. + * + * You must at least provide the required values for the user: `userName`, `name`, and `emails`. + * + * **Warning:** Setting `active: false` removes the user from the enterprise, deletes the external identity, and deletes the associated `{scim_user_id}`. + */ + put: operations["enterprise-admin/set-information-for-provisioned-enterprise-user"]; + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + delete: operations["enterprise-admin/delete-user-from-enterprise"]; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + * + * **Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `"path": "emails[type eq \"work\"]"` will not work. + * + * **Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated `:scim_user_id`. + * + * ``` + * { + * "Operations":[{ + * "op":"replace", + * "value":{ + * "active":false + * } + * }] + * } + * ``` + */ + patch: operations["enterprise-admin/update-attribute-for-enterprise-user"]; + }; + "/scim/v2/organizations/{org}/Users": { + /** + * Retrieves a paginated list of all provisioned organization members, including pending invitations. If you provide the `filter` parameter, the resources for all matching provisions members are returned. + * + * When a user with a SAML-provisioned external identity leaves (or is removed from) an organization, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member: + * - When a user with a SCIM-provisioned external identity is removed from an organization, the account's metadata is preserved to allow the user to re-join the organization in the future. + * - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted). + * - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO. + * + * The returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO: + * + * 1. The user is granted access by the IdP and is not a member of the GitHub organization. + * + * 1. The user attempts to access the GitHub organization and initiates the SAML SSO process, and is not currently signed in to their GitHub account. + * + * 1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account: + * - If the user signs in, their GitHub account is linked to this entry. + * - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub organization, and the external identity `null` entry remains in place. + */ + get: operations["scim/list-provisioned-identities"]; + /** Provision organization membership for a user, and send an activation email to the email address. */ + post: operations["scim/provision-and-invite-user"]; + }; + "/scim/v2/organizations/{org}/Users/{scim_user_id}": { + get: operations["scim/get-provisioning-information-for-user"]; + /** + * Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](https://docs.github.com/rest/reference/scim#update-an-attribute-for-a-scim-user) endpoint instead. + * + * You must at least provide the required values for the user: `userName`, `name`, and `emails`. + * + * **Warning:** Setting `active: false` removes the user from the organization, deletes the external identity, and deletes the associated `{scim_user_id}`. + */ + put: operations["scim/set-information-for-provisioned-user"]; + delete: operations["scim/delete-user-from-org"]; + /** + * Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + * + * **Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `"path": "emails[type eq \"work\"]"` will not work. + * + * **Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the organization, deletes the external identity, and deletes the associated `:scim_user_id`. + * + * ``` + * { + * "Operations":[{ + * "op":"replace", + * "value":{ + * "active":false + * } + * }] + * } + * ``` + */ + patch: operations["scim/update-attribute-for-user"]; + }; + "/search/code": { + /** + * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * #### Considerations for code search + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + */ + get: operations["search/code"]; + }; + "/search/commits": { + /** + * Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + get: operations["search/commits"]; + }; + "/search/issues": { + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + get: operations["search/issues-and-pull-requests"]; + }; + "/search/labels": { + /** + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + get: operations["search/labels"]; + }; + "/search/repositories": { + /** + * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + get: operations["search/repos"]; + }; + "/search/topics": { + /** + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + get: operations["search/topics"]; + }; + "/search/users": { + /** + * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + */ + get: operations["search/users"]; + }; + "/teams/{team_id}": { + /** **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/reference/teams#get-a-team-by-name) endpoint. */ + get: operations["teams/get-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/reference/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + delete: operations["teams/delete-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/reference/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + patch: operations["teams/update-legacy"]; + }; + "/teams/{team_id}/discussions": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/reference/teams#list-discussions) endpoint. + * + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + get: operations["teams/list-discussions-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/reference/teams#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["teams/create-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/reference/teams#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + get: operations["teams/get-discussion-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/reference/teams#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + delete: operations["teams/delete-discussion-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/reference/teams#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + patch: operations["teams/update-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/reference/teams#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + get: operations["teams/list-discussion-comments-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/reference/teams#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + post: operations["teams/create-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/reference/teams#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + get: operations["teams/get-discussion-comment-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/reference/teams#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + delete: operations["teams/delete-discussion-comment-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/reference/teams#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + patch: operations["teams/update-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + get: operations["reactions/list-for-team-discussion-comment-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + */ + post: operations["reactions/create-for-team-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/reactions": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + get: operations["reactions/list-for-team-discussion-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + */ + post: operations["reactions/create-for-team-discussion-legacy"]; + }; + "/teams/{team_id}/invitations": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/reference/teams#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + get: operations["teams/list-pending-invitations-legacy"]; + }; + "/teams/{team_id}/members": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/reference/teams#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + get: operations["teams/list-members-legacy"]; + }; + "/teams/{team_id}/members/{username}": { + /** + * The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + get: operations["teams/get-member-legacy"]; + /** + * The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + put: operations["teams/add-member-legacy"]; + /** + * The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-member-legacy"]; + }; + "/teams/{team_id}/memberships/{username}": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + get: operations["teams/get-membership-for-user-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + put: operations["teams/add-or-update-membership-for-user-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + delete: operations["teams/remove-membership-for-user-legacy"]; + }; + "/teams/{team_id}/projects": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/reference/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + get: operations["teams/list-projects-legacy"]; + }; + "/teams/{team_id}/projects/{project_id}": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + get: operations["teams/check-permissions-for-project-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + put: operations["teams/add-or-update-project-permissions-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + delete: operations["teams/remove-project-legacy"]; + }; + "/teams/{team_id}/repos": { + /** **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/reference/teams#list-team-repositories) endpoint. */ + get: operations["teams/list-repos-legacy"]; + }; + "/teams/{team_id}/repos/{owner}/{repo}": { + /** + * **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + get: operations["teams/check-permissions-for-repo-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + put: operations["teams/add-or-update-repo-permissions-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/reference/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + delete: operations["teams/remove-repo-legacy"]; + }; + "/teams/{team_id}/team-sync/group-mappings": { + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List IdP groups for a team`](https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups connected to a team on GitHub. + */ + get: operations["teams/list-idp-groups-for-legacy"]; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create or update IdP group connections`](https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. + */ + patch: operations["teams/create-or-update-idp-group-connections-legacy"]; + }; + "/teams/{team_id}/teams": { + /** **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/reference/teams#list-child-teams) endpoint. */ + get: operations["teams/list-child-legacy"]; + }; + "/user": { + /** + * If the authenticated user is authenticated through basic authentication or OAuth with the `user` scope, then the response lists public and private profile information. + * + * If the authenticated user is authenticated through OAuth without the `user` scope, then the response lists only public profile information. + */ + get: operations["users/get-authenticated"]; + /** **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. */ + patch: operations["users/update-authenticated"]; + }; + "/user/blocks": { + /** List the users you've blocked on your personal account. */ + get: operations["users/list-blocked-by-authenticated-user"]; + }; + "/user/blocks/{username}": { + get: operations["users/check-blocked"]; + put: operations["users/block"]; + delete: operations["users/unblock"]; + }; + "/user/codespaces": { + /** + * Lists the authenticated user's codespaces. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces` repository permission to use this endpoint. + */ + get: operations["codespaces/list-for-authenticated-user"]; + /** + * Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + post: operations["codespaces/create-for-authenticated-user"]; + }; + "/user/codespaces/secrets": { + /** + * Lists all secrets available for a user's Codespaces without revealing their + * encrypted values. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + get: operations["codespaces/list-secrets-for-authenticated-user"]; + }; + "/user/codespaces/secrets/public-key": { + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + get: operations["codespaces/get-public-key-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}": { + /** + * Gets a secret available to a user's codespaces without revealing its encrypted value. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + get: operations["codespaces/get-secret-for-authenticated-user"]; + /** + * Creates or updates a secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must also have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission and `codespaces_secrets` repository permission on all referenced repositories to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + put: operations["codespaces/create-or-update-secret-for-authenticated-user"]; + /** + * Deletes a secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + delete: operations["codespaces/delete-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories": { + /** + * List the repositories that have been granted the ability to use a user's codespace secret. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission and write access to the `codespaces_secrets` repository permission on all referenced repositories to use this endpoint. + */ + get: operations["codespaces/list-repositories-for-secret-for-authenticated-user"]; + /** + * Select the repositories that will use a user's codespace secret. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission and write access to the `codespaces_secrets` repository permission on all referenced repositories to use this endpoint. + */ + put: operations["codespaces/set-repositories-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/secrets/{secret_name}/repositories/{repository_id}": { + /** + * Adds a repository to the selected repositories for a user's codespace secret. + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission and write access to the `codespaces_secrets` repository permission on the referenced repository to use this endpoint. + */ + put: operations["codespaces/add-repository-for-secret-for-authenticated-user"]; + /** + * Removes a repository from the selected repositories for a user's codespace secret. + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + delete: operations["codespaces/remove-repository-for-secret-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}": { + /** + * Gets information about a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces` repository permission to use this endpoint. + */ + get: operations["codespaces/get-for-authenticated-user"]; + /** + * Deletes a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + delete: operations["codespaces/delete-for-authenticated-user"]; + /** + * Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + patch: operations["codespaces/update-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports": { + /** + * Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * You must authenticate using a personal access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + post: operations["codespaces/export-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/exports/{export_id}": { + /** + * Gets information about an export of a codespace. + * + * You must authenticate using a personal access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + get: operations["codespaces/get-export-details-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/machines": { + /** + * List the machine types a codespace can transition to use. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_metadata` repository permission to use this endpoint. + */ + get: operations["codespaces/codespace-machines-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/start": { + /** + * Starts a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + post: operations["codespaces/start-for-authenticated-user"]; + }; + "/user/codespaces/{codespace_name}/stop": { + /** + * Stops a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + post: operations["codespaces/stop-for-authenticated-user"]; + }; + "/user/email/visibility": { + /** Sets the visibility for your primary email addresses. */ + patch: operations["users/set-primary-email-visibility-for-authenticated-user"]; + }; + "/user/emails": { + /** Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope. */ + get: operations["users/list-emails-for-authenticated-user"]; + /** This endpoint is accessible with the `user` scope. */ + post: operations["users/add-email-for-authenticated-user"]; + /** This endpoint is accessible with the `user` scope. */ + delete: operations["users/delete-email-for-authenticated-user"]; + }; + "/user/followers": { + /** Lists the people following the authenticated user. */ + get: operations["users/list-followers-for-authenticated-user"]; + }; + "/user/following": { + /** Lists the people who the authenticated user follows. */ + get: operations["users/list-followed-by-authenticated-user"]; + }; + "/user/following/{username}": { + get: operations["users/check-person-is-followed-by-authenticated"]; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + put: operations["users/follow"]; + /** Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. */ + delete: operations["users/unfollow"]; + }; + "/user/gpg_keys": { + /** Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + get: operations["users/list-gpg-keys-for-authenticated-user"]; + /** Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + post: operations["users/create-gpg-key-for-authenticated-user"]; + }; + "/user/gpg_keys/{gpg_key_id}": { + /** View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + get: operations["users/get-gpg-key-for-authenticated-user"]; + /** Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + delete: operations["users/delete-gpg-key-for-authenticated-user"]; + }; + "/user/installations": { + /** + * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + get: operations["apps/list-installations-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories": { + /** + * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + get: operations["apps/list-installation-repos-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories/{repository_id}": { + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + */ + put: operations["apps/add-repo-to-installation-for-authenticated-user"]; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + */ + delete: operations["apps/remove-repo-from-installation-for-authenticated-user"]; + }; + "/user/interaction-limits": { + /** Shows which type of GitHub user can interact with your public repositories and when the restriction expires. */ + get: operations["interactions/get-restrictions-for-authenticated-user"]; + /** Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. */ + put: operations["interactions/set-restrictions-for-authenticated-user"]; + /** Removes any interaction restrictions from your public repositories. */ + delete: operations["interactions/remove-restrictions-for-authenticated-user"]; + }; + "/user/issues": { + /** + * List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + get: operations["issues/list-for-authenticated-user"]; + }; + "/user/keys": { + /** Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + get: operations["users/list-public-ssh-keys-for-authenticated-user"]; + /** Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + post: operations["users/create-public-ssh-key-for-authenticated-user"]; + }; + "/user/keys/{key_id}": { + /** View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + get: operations["users/get-public-ssh-key-for-authenticated-user"]; + /** Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + delete: operations["users/delete-public-ssh-key-for-authenticated-user"]; + }; + "/user/marketplace_purchases": { + /** Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). */ + get: operations["apps/list-subscriptions-for-authenticated-user"]; + }; + "/user/marketplace_purchases/stubbed": { + /** Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). */ + get: operations["apps/list-subscriptions-for-authenticated-user-stubbed"]; + }; + "/user/memberships/orgs": { + get: operations["orgs/list-memberships-for-authenticated-user"]; + }; + "/user/memberships/orgs/{org}": { + get: operations["orgs/get-membership-for-authenticated-user"]; + patch: operations["orgs/update-membership-for-authenticated-user"]; + }; + "/user/migrations": { + /** Lists all migrations a user has started. */ + get: operations["migrations/list-for-authenticated-user"]; + /** Initiates the generation of a user migration archive. */ + post: operations["migrations/start-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}": { + /** + * Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive). + */ + get: operations["migrations/get-status-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/archive": { + /** + * Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + get: operations["migrations/get-archive-for-authenticated-user"]; + /** Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. */ + delete: operations["migrations/delete-archive-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repos/{repo_name}/lock": { + /** Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. */ + delete: operations["migrations/unlock-repo-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repositories": { + /** Lists all the repositories for this user migration. */ + get: operations["migrations/list-repos-for-authenticated-user"]; + }; + "/user/orgs": { + /** + * List organizations for the authenticated user. + * + * **OAuth scope requirements** + * + * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + */ + get: operations["orgs/list-for-authenticated-user"]; + }; + "/user/packages": { + /** + * Lists packages owned by the authenticated user within the user's namespace. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/list-packages-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}": { + /** + * Gets a specific package for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-package-for-authenticated-user"]; + /** + * Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + delete: operations["packages/delete-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/restore": { + /** + * Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope. + */ + post: operations["packages/restore-package-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions": { + /** + * Returns all package versions for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Gets a specific package version for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-package-version-for-authenticated-user"]; + /** + * Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + delete: operations["packages/delete-package-version-for-authenticated-user"]; + }; + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope. + */ + post: operations["packages/restore-package-version-for-authenticated-user"]; + }; + "/user/projects": { + /** Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + post: operations["projects/create-for-authenticated-user"]; + }; + "/user/public_emails": { + /** Lists your publicly visible email address, which you can set with the [Set primary email visibility for the authenticated user](https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) endpoint. This endpoint is accessible with the `user:email` scope. */ + get: operations["users/list-public-emails-for-authenticated-user"]; + }; + "/user/repos": { + /** + * Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + get: operations["repos/list-for-authenticated-user"]; + /** + * Creates a new repository for the authenticated user. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository. + */ + post: operations["repos/create-for-authenticated-user"]; + }; + "/user/repository_invitations": { + /** When authenticating as a user, this endpoint will list all currently open repository invitations for that user. */ + get: operations["repos/list-invitations-for-authenticated-user"]; + }; + "/user/repository_invitations/{invitation_id}": { + delete: operations["repos/decline-invitation-for-authenticated-user"]; + patch: operations["repos/accept-invitation-for-authenticated-user"]; + }; + "/user/starred": { + /** + * Lists repositories the authenticated user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + get: operations["activity/list-repos-starred-by-authenticated-user"]; + }; + "/user/starred/{owner}/{repo}": { + get: operations["activity/check-repo-is-starred-by-authenticated-user"]; + /** Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." */ + put: operations["activity/star-repo-for-authenticated-user"]; + delete: operations["activity/unstar-repo-for-authenticated-user"]; + }; + "/user/subscriptions": { + /** Lists repositories the authenticated user is watching. */ + get: operations["activity/list-watched-repos-for-authenticated-user"]; + }; + "/user/teams": { + /** List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/). */ + get: operations["teams/list-for-authenticated-user"]; + }; + "/users": { + /** + * Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of users. + */ + get: operations["users/list"]; + }; + "/users/{username}": { + /** + * Provides publicly available information about someone with a GitHub account. + * + * GitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See "[Identifying and authorizing users for GitHub Apps](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" for details about authentication. For an example response, see 'Response with GitHub plan information' below" + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/overview/resources-in-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/reference/users#emails)". + */ + get: operations["users/get-by-username"]; + }; + "/users/{username}/events": { + /** If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. */ + get: operations["activity/list-events-for-authenticated-user"]; + }; + "/users/{username}/events/orgs/{org}": { + /** This is the user's organization dashboard. You must be authenticated as the user to view this. */ + get: operations["activity/list-org-events-for-authenticated-user"]; + }; + "/users/{username}/events/public": { + get: operations["activity/list-public-events-for-user"]; + }; + "/users/{username}/followers": { + /** Lists the people following the specified user. */ + get: operations["users/list-followers-for-user"]; + }; + "/users/{username}/following": { + /** Lists the people who the specified user follows. */ + get: operations["users/list-following-for-user"]; + }; + "/users/{username}/following/{target_user}": { + get: operations["users/check-following-for-user"]; + }; + "/users/{username}/gists": { + /** Lists public gists for the specified user: */ + get: operations["gists/list-for-user"]; + }; + "/users/{username}/gpg_keys": { + /** Lists the GPG keys for a user. This information is accessible by anyone. */ + get: operations["users/list-gpg-keys-for-user"]; + }; + "/users/{username}/hovercard": { + /** + * Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + */ + get: operations["users/get-context-for-user"]; + }; + "/users/{username}/installation": { + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + get: operations["apps/get-user-installation"]; + }; + "/users/{username}/keys": { + /** Lists the _verified_ public SSH keys for a user. This is accessible by anyone. */ + get: operations["users/list-public-keys-for-user"]; + }; + "/users/{username}/orgs": { + /** + * List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + get: operations["orgs/list-for-user"]; + }; + "/users/{username}/packages": { + /** + * Lists all packages in a user's namespace for which the requesting user has access. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/list-packages-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}": { + /** + * Gets a specific package metadata for a public package owned by a user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-package-for-user"]; + /** + * Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + delete: operations["packages/delete-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/restore": { + /** + * Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + post: operations["packages/restore-package-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions": { + /** + * Returns all package versions for a public package owned by a specified user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-all-package-versions-for-package-owned-by-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + /** + * Gets a specific package version for a public package owned by a specified user. + * + * At this time, to use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + get: operations["packages/get-package-version-for-user"]; + /** + * Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + delete: operations["packages/delete-package-version-for-user"]; + }; + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + /** + * Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + post: operations["packages/restore-package-version-for-user"]; + }; + "/users/{username}/projects": { + get: operations["projects/list-for-user"]; + }; + "/users/{username}/received_events": { + /** These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. */ + get: operations["activity/list-received-events-for-user"]; + }; + "/users/{username}/received_events/public": { + get: operations["activity/list-received-public-events-for-user"]; + }; + "/users/{username}/repos": { + /** Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user. */ + get: operations["repos/list-for-user"]; + }; + "/users/{username}/settings/billing/actions": { + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `user` scope. + */ + get: operations["billing/get-github-actions-billing-user"]; + }; + "/users/{username}/settings/billing/packages": { + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + get: operations["billing/get-github-packages-billing-user"]; + }; + "/users/{username}/settings/billing/shared-storage": { + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + get: operations["billing/get-shared-storage-billing-user"]; + }; + "/users/{username}/starred": { + /** + * Lists repositories a user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + get: operations["activity/list-repos-starred-by-user"]; + }; + "/users/{username}/subscriptions": { + /** Lists repositories a user is watching. */ + get: operations["activity/list-repos-watched-by-user"]; + }; + "/zen": { + /** Get a random sentence from the Zen of GitHub */ + get: operations["meta/get-zen"]; + }; + "/repos/{owner}/{repo}/compare/{base}...{head}": { + /** + * **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + get: operations["repos/compare-commits"]; + }; +} + +export interface components { + schemas: { + root: { + /** Format: uri-template */ + current_user_url: string; + /** Format: uri-template */ + current_user_authorizations_html_url: string; + /** Format: uri-template */ + authorizations_url: string; + /** Format: uri-template */ + code_search_url: string; + /** Format: uri-template */ + commit_search_url: string; + /** Format: uri-template */ + emails_url: string; + /** Format: uri-template */ + emojis_url: string; + /** Format: uri-template */ + events_url: string; + /** Format: uri-template */ + feeds_url: string; + /** Format: uri-template */ + followers_url: string; + /** Format: uri-template */ + following_url: string; + /** Format: uri-template */ + gists_url: string; + /** Format: uri-template */ + hub_url: string; + /** Format: uri-template */ + issue_search_url: string; + /** Format: uri-template */ + issues_url: string; + /** Format: uri-template */ + keys_url: string; + /** Format: uri-template */ + label_search_url: string; + /** Format: uri-template */ + notifications_url: string; + /** Format: uri-template */ + organization_url: string; + /** Format: uri-template */ + organization_repositories_url: string; + /** Format: uri-template */ + organization_teams_url: string; + /** Format: uri-template */ + public_gists_url: string; + /** Format: uri-template */ + rate_limit_url: string; + /** Format: uri-template */ + repository_url: string; + /** Format: uri-template */ + repository_search_url: string; + /** Format: uri-template */ + current_user_repositories_url: string; + /** Format: uri-template */ + starred_url: string; + /** Format: uri-template */ + starred_gists_url: string; + /** Format: uri-template */ + topic_search_url?: string; + /** Format: uri-template */ + user_url: string; + /** Format: uri-template */ + user_organizations_url: string; + /** Format: uri-template */ + user_repositories_url: string; + /** Format: uri-template */ + user_search_url: string; + }; + /** + * Simple User + * @description Simple User + */ + "nullable-simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + integration: { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + } & { [key: string]: string }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + }; + /** + * Basic Error + * @description Basic Error + */ + "basic-error": { + message?: string; + documentation_url?: string; + url?: string; + status?: string; + }; + /** + * Validation Error Simple + * @description Validation Error Simple + */ + "validation-error-simple": { + message: string; + documentation_url: string; + errors?: string[]; + }; + /** + * Format: uri + * @description The URL to which the payloads will be delivered. + * @example https://example.com/webhook + */ + "webhook-config-url": string; + /** + * @description The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`. + * @example "json" + */ + "webhook-config-content-type": string; + /** + * @description If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers). + * @example "********" + */ + "webhook-config-secret": string; + "webhook-config-insecure-ssl": string | number; + /** + * Webhook Configuration + * @description Configuration object of the webhook + */ + "webhook-config": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * Simple webhook delivery + * @description Delivery made by a webhook, without request and response information. + */ + "hook-delivery-item": { + /** + * @description Unique identifier of the webhook delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the webhook delivery occurred. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the webhook delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Describes the response returned after attempting the delivery. + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + }; + /** + * Scim Error + * @description Scim Error + */ + "scim-error": { + message?: string | null; + documentation_url?: string | null; + detail?: string | null; + status?: number; + scimType?: string | null; + schemas?: string[]; + }; + /** + * Validation Error + * @description Validation Error + */ + "validation-error": { + message: string; + documentation_url: string; + errors?: { + resource?: string; + field?: string; + message?: string; + code: string; + index?: number; + value?: (string | null) | (number | null) | (string[] | null); + }[]; + }; + /** + * Webhook delivery + * @description Delivery made by a webhook. + */ + "hook-delivery": { + /** + * @description Unique identifier of the delivery. + * @example 42 + */ + id: number; + /** + * @description Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event). + * @example 58474f00-b361-11eb-836d-0e4f3503ccbe + */ + guid: string; + /** + * Format: date-time + * @description Time when the delivery was delivered. + * @example 2021-05-12T20:33:44Z + */ + delivered_at: string; + /** + * @description Whether the delivery is a redelivery. + * @example false + */ + redelivery: boolean; + /** + * @description Time spent delivering. + * @example 0.03 + */ + duration: number; + /** + * @description Description of the status of the attempted delivery + * @example failed to connect + */ + status: string; + /** + * @description Status code received when delivery was made. + * @example 502 + */ + status_code: number; + /** + * @description The event that triggered the delivery. + * @example issues + */ + event: string; + /** + * @description The type of activity for the event that triggered the delivery. + * @example opened + */ + action: string | null; + /** + * @description The id of the GitHub App installation associated with this event. + * @example 123 + */ + installation_id: number | null; + /** + * @description The id of the repository associated with this event. + * @example 123 + */ + repository_id: number | null; + /** + * @description The URL target of the delivery. + * @example https://www.example.com + */ + url?: string; + request: { + /** @description The request headers sent with the webhook delivery. */ + headers: { [key: string]: unknown } | null; + /** @description The webhook payload. */ + payload: { [key: string]: unknown } | null; + }; + response: { + /** @description The response headers received when the delivery was made. */ + headers: { [key: string]: unknown } | null; + /** @description The response payload received. */ + payload: string | null; + }; + }; + /** + * Simple User + * @description Simple User + */ + "simple-user": { + name?: string | null; + email?: string | null; + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example "2020-07-09T00:17:55Z" */ + starred_at?: string; + }; + /** + * Enterprise + * @description An enterprise account + */ + enterprise: { + /** @description A short description of the enterprise. */ + description?: string | null; + /** + * Format: uri + * @example https://github.com/enterprises/octo-business + */ + html_url: string; + /** + * Format: uri + * @description The enterprise's website URL. + */ + website_url?: string | null; + /** + * @description Unique identifier of the enterprise + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the enterprise. + * @example Octo Business + */ + name: string; + /** + * @description The slug url identifier for the enterprise. + * @example octo-business + */ + slug: string; + /** + * Format: date-time + * @example 2019-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2019-01-26T19:14:43Z + */ + updated_at: string | null; + /** Format: uri */ + avatar_url: string; + }; + /** + * App Permissions + * @description The permissions granted to the user-to-server access token. + * @example { + * "contents": "read", + * "issues": "read", + * "deployments": "write", + * "single_file": "read" + * } + */ + "app-permissions": { + /** + * @description The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts. + * @enum {string} + */ + actions?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation. + * @enum {string} + */ + administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token for checks on code. + * @enum {string} + */ + checks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges. + * @enum {string} + */ + contents?: "read" | "write"; + /** + * @description The level of permission to grant the access token for deployments and deployment statuses. + * @enum {string} + */ + deployments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for managing repository environments. + * @enum {string} + */ + environments?: "read" | "write"; + /** + * @description The level of permission to grant the access token for issues and related comments, assignees, labels, and milestones. + * @enum {string} + */ + issues?: "read" | "write"; + /** + * @description The level of permission to grant the access token to search repositories, list collaborators, and access repository metadata. + * @enum {string} + */ + metadata?: "read" | "write"; + /** + * @description The level of permission to grant the access token for packages published to GitHub Packages. + * @enum {string} + */ + packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to retrieve Pages statuses, configuration, and builds, as well as create new builds. + * @enum {string} + */ + pages?: "read" | "write"; + /** + * @description The level of permission to grant the access token for pull requests and related comments, assignees, labels, milestones, and merges. + * @enum {string} + */ + pull_requests?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for a repository. + * @enum {string} + */ + repository_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository projects, columns, and cards. + * @enum {string} + */ + repository_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token to view and manage secret scanning alerts. + * @enum {string} + */ + secret_scanning_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage repository secrets. + * @enum {string} + */ + secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage security events like code scanning alerts. + * @enum {string} + */ + security_events?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage just a single file. + * @enum {string} + */ + single_file?: "read" | "write"; + /** + * @description The level of permission to grant the access token for commit statuses. + * @enum {string} + */ + statuses?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage Dependabot alerts. + * @enum {string} + */ + vulnerability_alerts?: "read" | "write"; + /** + * @description The level of permission to grant the access token to update GitHub Actions workflow files. + * @enum {string} + */ + workflows?: "write"; + /** + * @description The level of permission to grant the access token for organization teams and members. + * @enum {string} + */ + members?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage access to an organization. + * @enum {string} + */ + organization_administration?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage the post-receive hooks for an organization. + * @enum {string} + */ + organization_hooks?: "read" | "write"; + /** + * @description The level of permission to grant the access token for viewing an organization's plan. + * @enum {string} + */ + organization_plan?: "read"; + /** + * @description The level of permission to grant the access token to manage organization projects and projects beta (where available). + * @enum {string} + */ + organization_projects?: "read" | "write" | "admin"; + /** + * @description The level of permission to grant the access token for organization packages published to GitHub Packages. + * @enum {string} + */ + organization_packages?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage organization secrets. + * @enum {string} + */ + organization_secrets?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage GitHub Actions self-hosted runners available to an organization. + * @enum {string} + */ + organization_self_hosted_runners?: "read" | "write"; + /** + * @description The level of permission to grant the access token to view and manage users blocked by the organization. + * @enum {string} + */ + organization_user_blocking?: "read" | "write"; + /** + * @description The level of permission to grant the access token to manage team discussions and related comments. + * @enum {string} + */ + team_discussions?: "read" | "write"; + }; + /** + * Installation + * @description Installation + */ + installation: { + /** + * @description The ID of the installation. + * @example 1 + */ + id: number; + account: + | (Partial & + Partial) + | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** + * Format: uri + * @example https://api.github.com/installations/1/access_tokens + */ + access_tokens_url: string; + /** + * Format: uri + * @example https://api.github.com/installation/repositories + */ + repositories_url: string; + /** + * Format: uri + * @example https://github.com/organizations/github/settings/installations/1 + */ + html_url: string; + /** @example 1 */ + app_id: number; + /** @description The ID of the user or organization this token is being scoped to. */ + target_id: number; + /** @example Organization */ + target_type: string; + permissions: components["schemas"]["app-permissions"]; + events: string[]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** @example github-actions */ + app_slug: string; + suspended_by: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + suspended_at: string | null; + /** @example "test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com" */ + contact_email?: string | null; + }; + /** + * License Simple + * @description License Simple + */ + "nullable-license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + } | null; + /** + * Repository + * @description A git repository + */ + repository: { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** @example 108 */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + }; + /** + * Installation Token + * @description Authentication token for a GitHub App installed on a user or org. + */ + "installation-token": { + token: string; + expires_at: string; + permissions?: components["schemas"]["app-permissions"]; + /** @enum {string} */ + repository_selection?: "all" | "selected"; + repositories?: components["schemas"]["repository"][]; + /** @example README.md */ + single_file?: string; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + }; + /** + * Application Grant + * @description The authorization associated with an OAuth Access. + */ + "application-grant": { + /** @example 1 */ + id: number; + /** + * Format: uri + * @example https://api.github.com/applications/grants/1 + */ + url: string; + app: { + client_id: string; + name: string; + /** Format: uri */ + url: string; + }; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * @example [ + * "public_repo" + * ] + */ + scopes: string[]; + user?: components["schemas"]["nullable-simple-user"]; + }; + /** Scoped Installation */ + "nullable-scoped-installation": { + permissions: components["schemas"]["app-permissions"]; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection: "all" | "selected"; + /** @example config.yaml */ + single_file_name: string | null; + /** @example true */ + has_multiple_single_files?: boolean; + /** + * @example [ + * "config.yml", + * ".github/issue_TEMPLATE.md" + * ] + */ + single_file_paths?: string[]; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repositories_url: string; + account: components["schemas"]["simple-user"]; + } | null; + /** + * Authorization + * @description The authorization for an OAuth app, GitHub App, or a Personal Access Token. + */ + authorization: { + id: number; + /** Format: uri */ + url: string; + /** @description A list of scopes that this authorization is in. */ + scopes: string[] | null; + token: string; + token_last_eight: string | null; + hashed_token: string | null; + app: { + client_id: string; + name: string; + /** Format: uri */ + url: string; + }; + note: string | null; + /** Format: uri */ + note_url: string | null; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + created_at: string; + fingerprint: string | null; + user?: components["schemas"]["nullable-simple-user"]; + installation?: components["schemas"]["nullable-scoped-installation"]; + /** Format: date-time */ + expires_at: string | null; + }; + /** + * Code Of Conduct + * @description Code Of Conduct + */ + "code-of-conduct": { + /** @example contributor_covenant */ + key: string; + /** @example Contributor Covenant */ + name: string; + /** + * Format: uri + * @example https://api.github.com/codes_of_conduct/contributor_covenant + */ + url: string; + /** + * @example # Contributor Covenant Code of Conduct + * + * ## Our Pledge + * + * In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + * + * ## Our Standards + * + * Examples of behavior that contributes to creating a positive environment include: + * + * * Using welcoming and inclusive language + * * Being respectful of differing viewpoints and experiences + * * Gracefully accepting constructive criticism + * * Focusing on what is best for the community + * * Showing empathy towards other community members + * + * Examples of unacceptable behavior by participants include: + * + * * The use of sexualized language or imagery and unwelcome sexual attention or advances + * * Trolling, insulting/derogatory comments, and personal or political attacks + * * Public or private harassment + * * Publishing others' private information, such as a physical or electronic address, without explicit permission + * * Other conduct which could reasonably be considered inappropriate in a professional setting + * + * ## Our Responsibilities + * + * Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response + * to any instances of unacceptable behavior. + * + * Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + * + * ## Scope + * + * This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, + * posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + * + * ## Enforcement + * + * Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + * + * Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + * + * ## Attribution + * + * This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + * + * [homepage]: http://contributor-covenant.org + * [version]: http://contributor-covenant.org/version/1/4/ + */ + body?: string; + /** Format: uri */ + html_url: string | null; + }; + /** + * Server Statistics Proxy Endpoint + * @description Response of S4 Proxy endpoint that provides GHES statistics + */ + "server-statistics": { + server_id?: string; + collection_date?: string; + schema_version?: string; + ghes_version?: string; + host_name?: string; + github_connect?: { + features_enabled?: string[]; + }; + ghe_stats?: { + comments?: { + total_commit_comments?: number; + total_gist_comments?: number; + total_issue_comments?: number; + total_pull_request_comments?: number; + }; + gists?: { + total_gists?: number; + private_gists?: number; + public_gists?: number; + }; + hooks?: { + total_hooks?: number; + active_hooks?: number; + inactive_hooks?: number; + }; + issues?: { + total_issues?: number; + open_issues?: number; + closed_issues?: number; + }; + milestones?: { + total_milestones?: number; + open_milestones?: number; + closed_milestones?: number; + }; + orgs?: { + total_orgs?: number; + disabled_orgs?: number; + total_teams?: number; + total_team_members?: number; + }; + pages?: { + total_pages?: number; + }; + pulls?: { + total_pulls?: number; + merged_pulls?: number; + mergeable_pulls?: number; + unmergeable_pulls?: number; + }; + repos?: { + total_repos?: number; + root_repos?: number; + fork_repos?: number; + org_repos?: number; + total_pushes?: number; + total_wikis?: number; + }; + users?: { + total_users?: number; + admin_users?: number; + suspended_users?: number; + }; + }; + dormant_users?: { + total_dormant_users?: number; + dormancy_threshold?: string; + }; + }; + "actions-cache-usage-org-enterprise": { + /** @description The count of active caches across all repositories of an enterprise or an organization. */ + total_active_caches_count: number; + /** @description The total size in bytes of all active cache items across all repositories of an enterprise or an organization. */ + total_active_caches_size_in_bytes: number; + }; + "actions-oidc-custom-issuer-policy-for-enterprise": { + /** + * @description Whether the enterprise customer requested a custom issuer URL. + * @example true + */ + include_enterprise_slug?: boolean; + }; + /** + * @description The policy that controls the organizations in the enterprise that are allowed to run GitHub Actions. + * @enum {string} + */ + "enabled-organizations": "all" | "none" | "selected"; + /** + * @description The permissions policy that controls the actions and reusable workflows that are allowed to run. + * @enum {string} + */ + "allowed-actions": "all" | "local_only" | "selected"; + /** @description The API URL to use to get or set the actions and reusable workflows that are allowed to run, when `allowed_actions` is set to `selected`. */ + "selected-actions-url": string; + "actions-enterprise-permissions": { + enabled_organizations: components["schemas"]["enabled-organizations"]; + /** @description The API URL to use to get or set the selected organizations that are allowed to run GitHub Actions, when `enabled_organizations` is set to `selected`. */ + selected_organizations_url?: string; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + /** + * Organization Simple + * @description Organization Simple + */ + "organization-simple": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + }; + "selected-actions": { + /** @description Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization. */ + github_owned_allowed?: boolean; + /** @description Whether actions from GitHub Marketplace verified creators are allowed. Set to `true` to allow all actions by GitHub Marketplace verified creators. */ + verified_allowed?: boolean; + /** @description Specifies a list of string-matching patterns to allow specific action(s) and reusable workflow(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`." */ + patterns_allowed?: string[]; + }; + /** + * @description The default workflow permissions granted to the GITHUB_TOKEN when running workflows. + * @enum {string} + */ + "actions-default-workflow-permissions": "read" | "write"; + /** @description Whether GitHub Actions can approve pull requests. Enabling this can be a security risk. */ + "actions-can-approve-pull-request-reviews": boolean; + "actions-get-default-workflow-permissions": { + default_workflow_permissions: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + "actions-set-default-workflow-permissions": { + default_workflow_permissions?: components["schemas"]["actions-default-workflow-permissions"]; + can_approve_pull_request_reviews?: components["schemas"]["actions-can-approve-pull-request-reviews"]; + }; + "runner-groups-enterprise": { + id: number; + name: string; + visibility: string; + default: boolean; + selected_organizations_url?: string; + runners_url: string; + allows_public_repositories: boolean; + /** + * @description If `true`, the `restricted_to_workflows` and `selected_workflows` fields cannot be modified. + * @default false + */ + workflow_restrictions_read_only?: boolean; + /** + * @description If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array. + * @default false + */ + restricted_to_workflows?: boolean; + /** @description List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`. */ + selected_workflows?: string[]; + }; + /** + * Self hosted runner label + * @description A label for a self hosted runner + */ + "runner-label": { + /** @description Unique identifier of the label. */ + id?: number; + /** @description Name of the label. */ + name: string; + /** + * @description The type of label. Read-only labels are applied automatically when the runner is configured. + * @enum {string} + */ + type?: "read-only" | "custom"; + }; + /** + * Self hosted runners + * @description A self hosted runner + */ + runner: { + /** + * @description The id of the runner. + * @example 5 + */ + id: number; + /** + * @description The name of the runner. + * @example iMac + */ + name: string; + /** + * @description The Operating System of the runner. + * @example macos + */ + os: string; + /** + * @description The status of the runner. + * @example online + */ + status: string; + busy: boolean; + labels: components["schemas"]["runner-label"][]; + }; + /** + * Runner Application + * @description Runner Application + */ + "runner-application": { + os: string; + architecture: string; + download_url: string; + filename: string; + /** @description A short lived bearer token used to download the runner, if needed. */ + temp_download_token?: string; + sha256_checksum?: string; + }; + /** + * Authentication Token + * @description Authentication Token + */ + "authentication-token": { + /** + * @description The token used for authentication + * @example v1.1f699f1069f60xxx + */ + token: string; + /** + * Format: date-time + * @description The time this token expires + * @example 2016-07-11T22:14:10Z + */ + expires_at: string; + /** + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions?: { [key: string]: unknown }; + /** @description The repositories this token has access to */ + repositories?: components["schemas"]["repository"][]; + /** @example config.yaml */ + single_file?: string | null; + /** + * @description Describe whether all repositories have been selected or there's a selection involved + * @enum {string} + */ + repository_selection?: "all" | "selected"; + }; + "audit-log-event": { + /** @description The time the audit log event occurred, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). */ + "@timestamp"?: number; + /** @description The name of the action that was performed, for example `user.login` or `repo.create`. */ + action?: string; + active?: boolean; + active_was?: boolean; + /** @description The actor who performed the action. */ + actor?: string; + /** @description The id of the actor who performed the action. */ + actor_id?: number; + actor_location?: { + country_name?: string; + }; + data?: { [key: string]: unknown }; + org_id?: number; + /** @description The username of the account being blocked. */ + blocked_user?: string; + business?: string; + config?: { [key: string]: unknown }[]; + config_was?: { [key: string]: unknown }[]; + content_type?: string; + /** @description The time the audit log event was recorded, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). */ + created_at?: number; + deploy_key_fingerprint?: string; + /** @description A unique identifier for an audit event. */ + _document_id?: string; + emoji?: string; + events?: { [key: string]: unknown }[]; + events_were?: { [key: string]: unknown }[]; + explanation?: string; + fingerprint?: string; + hook_id?: number; + limited_availability?: boolean; + message?: string; + name?: string; + old_user?: string; + openssh_public_key?: string; + org?: string; + previous_visibility?: string; + read_only?: boolean; + /** @description The name of the repository. */ + repo?: string; + /** @description The name of the repository. */ + repository?: string; + repository_public?: boolean; + target_login?: string; + team?: string; + /** @description The type of protocol (for example, HTTP or SSH) used to transfer Git data. */ + transport_protocol?: number; + /** @description A human readable name for the protocol (for example, HTTP or SSH) used to transfer Git data. */ + transport_protocol_name?: string; + /** @description The user that was affected by the action performed (if available). */ + user?: string; + /** @description The repository visibility, for example `public` or `private`. */ + visibility?: string; + }; + /** @description The name of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-name": string; + /** @description The GUID of the tool used to generate the code scanning analysis, if provided in the uploaded SARIF data. */ + "code-scanning-analysis-tool-guid": string | null; + /** + * @description State of a code scanning alert. + * @enum {string} + */ + "code-scanning-alert-state": "open" | "closed" | "dismissed" | "fixed"; + /** @description The security alert number. */ + "alert-number": number; + /** + * Format: date-time + * @description The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "alert-created-at": string; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "alert-updated-at": string; + /** + * Format: uri + * @description The REST API URL of the alert resource. + */ + "alert-url": string; + /** + * Format: uri + * @description The GitHub URL of the alert resource. + */ + "alert-html-url": string; + /** + * Format: uri + * @description The REST API URL for fetching the list of instances for an alert. + */ + "alert-instances-url": string; + /** + * Format: date-time + * @description The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "code-scanning-alert-fixed-at": string | null; + /** + * Format: date-time + * @description The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "code-scanning-alert-dismissed-at": string | null; + /** + * @description **Required when the state is dismissed.** The reason for dismissing or closing the alert. + * @enum {string|null} + */ + "code-scanning-alert-dismissed-reason": + | (null | "false positive" | "won't fix" | "used in tests") + | null; + /** @description The dismissal comment associated with the dismissal of the alert. */ + "code-scanning-alert-dismissed-comment": string | null; + "code-scanning-alert-rule": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: ("none" | "note" | "warning" | "error") | null; + /** + * @description The security severity of the alert. + * @enum {string|null} + */ + security_severity_level?: ("low" | "medium" | "high" | "critical") | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + /** @description description of the rule used to detect the alert. */ + full_description?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** @description Detailed documentation for the rule as GitHub Flavored Markdown. */ + help?: string | null; + }; + /** @description The version of the tool used to generate the code scanning analysis. */ + "code-scanning-analysis-tool-version": string | null; + "code-scanning-analysis-tool": { + name?: components["schemas"]["code-scanning-analysis-tool-name"]; + version?: components["schemas"]["code-scanning-analysis-tool-version"]; + guid?: components["schemas"]["code-scanning-analysis-tool-guid"]; + }; + /** + * @description The full Git reference, formatted as `refs/heads/`, + * `refs/pull//merge`, or `refs/pull//head`. + */ + "code-scanning-ref": string; + /** @description Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. */ + "code-scanning-analysis-analysis-key": string; + /** @description Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. */ + "code-scanning-alert-environment": string; + /** @description Identifies the configuration under which the analysis was executed. Used to distinguish between multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. */ + "code-scanning-analysis-category": string; + /** @description Describe a region within a file for the alert. */ + "code-scanning-alert-location": { + path?: string; + start_line?: number; + end_line?: number; + start_column?: number; + end_column?: number; + }; + /** + * @description A classification of the file. For example to identify it as generated. + * @enum {string|null} + */ + "code-scanning-alert-classification": + | ("source" | "generated" | "test" | "library") + | null; + "code-scanning-alert-instance": { + ref?: components["schemas"]["code-scanning-ref"]; + analysis_key?: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment?: components["schemas"]["code-scanning-alert-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + state?: components["schemas"]["code-scanning-alert-state"]; + commit_sha?: string; + message?: { + text?: string; + }; + location?: components["schemas"]["code-scanning-alert-location"]; + html_url?: string; + /** + * @description Classifications that have been applied to the file that triggered the alert. + * For example identifying it as documentation, or a generated file. + */ + classifications?: components["schemas"]["code-scanning-alert-classification"][]; + }; + /** + * Simple Repository + * @description Simple Repository + */ + "simple-repository": { + /** + * @description A unique identifier of the repository. + * @example 1296269 + */ + id: number; + /** + * @description The GraphQL identifier of the repository. + * @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 + */ + node_id: string; + /** + * @description The name of the repository. + * @example Hello-World + */ + name: string; + /** + * @description The full, globally unique, name of the repository. + * @example octocat/Hello-World + */ + full_name: string; + owner: components["schemas"]["simple-user"]; + /** @description Whether the repository is private. */ + private: boolean; + /** + * Format: uri + * @description The URL to view the repository on GitHub.com. + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** + * @description The repository description. + * @example This your first repo! + */ + description: string | null; + /** @description Whether the repository is a fork. */ + fork: boolean; + /** + * Format: uri + * @description The URL to get more information about the repository from the GitHub API. + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** + * @description A template for the API URL to download the repository as an archive. + * @example https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} + */ + archive_url: string; + /** + * @description A template for the API URL to list the available assignees for issues in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/assignees{/user} + */ + assignees_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git blob in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} + */ + blobs_url: string; + /** + * @description A template for the API URL to get information about branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/branches{/branch} + */ + branches_url: string; + /** + * @description A template for the API URL to get information about collaborators of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} + */ + collaborators_url: string; + /** + * @description A template for the API URL to get information about comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/comments{/number} + */ + comments_url: string; + /** + * @description A template for the API URL to get information about commits on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/commits{/sha} + */ + commits_url: string; + /** + * @description A template for the API URL to compare two commits or refs. + * @example https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} + */ + compare_url: string; + /** + * @description A template for the API URL to get the contents of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contents/{+path} + */ + contents_url: string; + /** + * Format: uri + * @description A template for the API URL to list the contributors to the repository. + * @example https://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @description The API URL to list the deployments of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @description The API URL to list the downloads on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @description The API URL to list the events of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @description The API URL to list the forks of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** + * @description A template for the API URL to get information about Git commits of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/commits{/sha} + */ + git_commits_url: string; + /** + * @description A template for the API URL to get information about Git refs of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/refs{/sha} + */ + git_refs_url: string; + /** + * @description A template for the API URL to get information about Git tags of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/tags{/sha} + */ + git_tags_url: string; + /** + * @description A template for the API URL to get information about issue comments on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + */ + issue_comment_url: string; + /** + * @description A template for the API URL to get information about issue events on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues/events{/number} + */ + issue_events_url: string; + /** + * @description A template for the API URL to get information about issues on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/issues{/number} + */ + issues_url: string; + /** + * @description A template for the API URL to get information about deploy keys on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/keys{/key_id} + */ + keys_url: string; + /** + * @description A template for the API URL to get information about labels of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/labels{/name} + */ + labels_url: string; + /** + * Format: uri + * @description The API URL to get information about the languages of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @description The API URL to merge branches in the repository. + * @example https://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** + * @description A template for the API URL to get information about milestones of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/milestones{/number} + */ + milestones_url: string; + /** + * @description A template for the API URL to get information about notifications on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} + */ + notifications_url: string; + /** + * @description A template for the API URL to get information about pull requests on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/pulls{/number} + */ + pulls_url: string; + /** + * @description A template for the API URL to get information about releases on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/releases{/id} + */ + releases_url: string; + /** + * Format: uri + * @description The API URL to list the stargazers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** + * @description A template for the API URL to get information about statuses of a commit. + * @example https://api.github.com/repos/octocat/Hello-World/statuses/{sha} + */ + statuses_url: string; + /** + * Format: uri + * @description The API URL to list the subscribers on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @description The API URL to subscribe to notifications for this repository. + * @example https://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @description The API URL to get information about tags on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @description The API URL to list the teams on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** + * @description A template for the API URL to create or retrieve a raw Git tree of the repository. + * @example https://api.github.com/repos/octocat/Hello-World/git/trees{/sha} + */ + trees_url: string; + /** + * Format: uri + * @description The API URL to list the hooks on the repository. + * @example https://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + }; + "code-scanning-organization-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["code-scanning-alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["code-scanning-alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + repository: components["schemas"]["simple-repository"]; + }; + /** + * Format: date-time + * @description The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "nullable-alert-updated-at": string | null; + /** + * @description Sets the state of the secret scanning alert. Can be either `open` or `resolved`. You must provide `resolution` when you set the state to `resolved`. + * @enum {string} + */ + "secret-scanning-alert-state": "open" | "resolved"; + /** + * @description **Required when the `state` is `resolved`.** The reason for resolving the alert. + * @enum {string|null} + */ + "secret-scanning-alert-resolution": + | (null | "false_positive" | "wont_fix" | "revoked" | "used_in_tests") + | null; + "organization-secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["nullable-alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + repository?: components["schemas"]["simple-repository"]; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + }; + "actions-billing-usage": { + /** @description The sum of the free and paid GitHub Actions minutes used. */ + total_minutes_used: number; + /** @description The total paid GitHub Actions minutes used. */ + total_paid_minutes_used: number; + /** @description The amount of free GitHub Actions minutes available. */ + included_minutes: number; + minutes_used_breakdown: { + /** @description Total minutes used on Ubuntu runner machines. */ + UBUNTU?: number; + /** @description Total minutes used on macOS runner machines. */ + MACOS?: number; + /** @description Total minutes used on Windows runner machines. */ + WINDOWS?: number; + /** @description Total minutes used on Ubuntu 4 core runner machines. */ + ubuntu_4_core?: number; + /** @description Total minutes used on Ubuntu 8 core runner machines. */ + ubuntu_8_core?: number; + /** @description Total minutes used on Ubuntu 16 core runner machines. */ + ubuntu_16_core?: number; + /** @description Total minutes used on Ubuntu 32 core runner machines. */ + ubuntu_32_core?: number; + /** @description Total minutes used on Ubuntu 64 core runner machines. */ + ubuntu_64_core?: number; + /** @description Total minutes used on Windows 4 core runner machines. */ + windows_4_core?: number; + /** @description Total minutes used on Windows 8 core runner machines. */ + windows_8_core?: number; + /** @description Total minutes used on Windows 16 core runner machines. */ + windows_16_core?: number; + /** @description Total minutes used on Windows 32 core runner machines. */ + windows_32_core?: number; + /** @description Total minutes used on Windows 64 core runner machines. */ + windows_64_core?: number; + /** @description Total minutes used on all runner machines. */ + total?: number; + }; + }; + "advanced-security-active-committers-user": { + user_login: string; + /** @example 2021-11-03 */ + last_pushed_date: string; + }; + "advanced-security-active-committers-repository": { + /** @example octocat/Hello-World */ + name: string; + /** @example 25 */ + advanced_security_committers: number; + advanced_security_committers_breakdown: components["schemas"]["advanced-security-active-committers-user"][]; + }; + "advanced-security-active-committers": { + /** @example 25 */ + total_advanced_security_committers?: number; + /** @example 2 */ + total_count?: number; + repositories: components["schemas"]["advanced-security-active-committers-repository"][]; + }; + "packages-billing-usage": { + /** @description Sum of the free and paid storage space (GB) for GitHuub Packages. */ + total_gigabytes_bandwidth_used: number; + /** @description Total paid storage space (GB) for GitHuub Packages. */ + total_paid_gigabytes_bandwidth_used: number; + /** @description Free storage space (GB) for GitHub Packages. */ + included_gigabytes_bandwidth: number; + }; + "combined-billing-usage": { + /** @description Numbers of days left in billing cycle. */ + days_left_in_billing_cycle: number; + /** @description Estimated storage space (GB) used in billing cycle. */ + estimated_paid_storage_for_month: number; + /** @description Estimated sum of free and paid storage space (GB) used in billing cycle. */ + estimated_storage_for_month: number; + }; + /** + * Actor + * @description Actor + */ + actor: { + id: number; + login: string; + display_login?: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + avatar_url: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + "nullable-milestone": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + } | null; + /** + * GitHub app + * @description GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + "nullable-integration": { + /** + * @description Unique identifier of the GitHub app + * @example 37 + */ + id: number; + /** + * @description The slug name of the GitHub app + * @example probot-owners + */ + slug?: string; + /** @example MDExOkludGVncmF0aW9uMQ== */ + node_id: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description The name of the GitHub app + * @example Probot Owners + */ + name: string; + /** @example The description of the app. */ + description: string | null; + /** + * Format: uri + * @example https://example.com + */ + external_url: string; + /** + * Format: uri + * @example https://github.com/apps/super-ci + */ + html_url: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2017-07-08T16:18:44-04:00 + */ + updated_at: string; + /** + * @description The set of permissions for the GitHub app + * @example { + * "issues": "read", + * "deployments": "write" + * } + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + } & { [key: string]: string }; + /** + * @description The list of events for the GitHub app + * @example [ + * "label", + * "deployment" + * ] + */ + events: string[]; + /** + * @description The number of installations associated with the GitHub app + * @example 5 + */ + installations_count?: number; + /** @example "Iv1.25b5d1e65ffc4022" */ + client_id?: string; + /** @example "1d4b2097ac622ba702d19de498f005747a8b21d3" */ + client_secret?: string; + /** @example "6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b" */ + webhook_secret?: string | null; + /** @example "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\n-----END RSA PRIVATE KEY-----\n" */ + pem?: string; + } | null; + /** + * author_association + * @description How the author is associated with the repository. + * @example OWNER + * @enum {string} + */ + "author-association": + | "COLLABORATOR" + | "CONTRIBUTOR" + | "FIRST_TIMER" + | "FIRST_TIME_CONTRIBUTOR" + | "MANNEQUIN" + | "MEMBER" + | "NONE" + | "OWNER"; + /** Reaction Rollup */ + "reaction-rollup": { + /** Format: uri */ + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + eyes: number; + rocket: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + issue: { + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + */ + state_reason?: string | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: ( + | string + | { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + } + )[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Issue Comment + * @description Comments provide a way for people to collaborate on an issue. + */ + "issue-comment": { + /** + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Event + * @description Event + */ + event: { + id: string; + type: string | null; + actor: components["schemas"]["actor"]; + repo: { + id: number; + name: string; + /** Format: uri */ + url: string; + }; + org?: components["schemas"]["actor"]; + payload: { + action?: string; + issue?: components["schemas"]["issue"]; + comment?: components["schemas"]["issue-comment"]; + pages?: { + page_name?: string; + title?: string; + summary?: string | null; + action?: string; + sha?: string; + html_url?: string; + }[]; + }; + public: boolean; + /** Format: date-time */ + created_at: string | null; + }; + /** + * Link With Type + * @description Hypermedia Link with Type + */ + "link-with-type": { + href: string; + type: string; + }; + /** + * Feed + * @description Feed + */ + feed: { + /** @example https://github.com/timeline */ + timeline_url: string; + /** @example https://github.com/{user} */ + user_url: string; + /** @example https://github.com/octocat */ + current_user_public_url?: string; + /** @example https://github.com/octocat.private?token=abc123 */ + current_user_url?: string; + /** @example https://github.com/octocat.private.actor?token=abc123 */ + current_user_actor_url?: string; + /** @example https://github.com/octocat-org */ + current_user_organization_url?: string; + /** + * @example [ + * "https://github.com/organizations/github/octocat.private.atom?token=abc123" + * ] + */ + current_user_organization_urls?: string[]; + /** @example https://github.com/security-advisories */ + security_advisories_url?: string; + _links: { + timeline: components["schemas"]["link-with-type"]; + user: components["schemas"]["link-with-type"]; + security_advisories?: components["schemas"]["link-with-type"]; + current_user?: components["schemas"]["link-with-type"]; + current_user_public?: components["schemas"]["link-with-type"]; + current_user_actor?: components["schemas"]["link-with-type"]; + current_user_organization?: components["schemas"]["link-with-type"]; + current_user_organizations?: components["schemas"]["link-with-type"][]; + }; + }; + /** + * Base Gist + * @description Base Gist + */ + "base-gist": { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + }; + /** + * Public User + * @description Public User + */ + "public-user": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + events_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + site_admin: boolean; + name: string | null; + company: string | null; + blog: string | null; + location: string | null; + /** Format: email */ + email: string | null; + hireable: boolean | null; + bio: string | null; + twitter_username?: string | null; + public_repos: number; + public_gists: number; + followers: number; + following: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + /** @example 1 */ + private_gists?: number; + /** @example 2 */ + total_private_repos?: number; + /** @example 2 */ + owned_private_repos?: number; + /** @example 1 */ + disk_usage?: number; + /** @example 3 */ + collaborators?: number; + }; + /** + * Gist History + * @description Gist History + */ + "gist-history": { + user?: components["schemas"]["nullable-simple-user"]; + version?: string; + /** Format: date-time */ + committed_at?: string; + change_status?: { + total?: number; + additions?: number; + deletions?: number; + }; + /** Format: uri */ + url?: string; + }; + /** + * Gist Simple + * @description Gist Simple + */ + "gist-simple": { + /** @deprecated */ + forks?: + | { + id?: string; + /** Format: uri */ + url?: string; + user?: components["schemas"]["public-user"]; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }[] + | null; + /** @deprecated */ + history?: components["schemas"]["gist-history"][] | null; + /** + * Gist + * @description Gist + */ + fork_of?: { + /** Format: uri */ + url: string; + /** Format: uri */ + forks_url: string; + /** Format: uri */ + commits_url: string; + id: string; + node_id: string; + /** Format: uri */ + git_pull_url: string; + /** Format: uri */ + git_push_url: string; + /** Format: uri */ + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["nullable-simple-user"]; + /** Format: uri */ + comments_url: string; + owner?: components["schemas"]["nullable-simple-user"]; + truncated?: boolean; + forks?: unknown[]; + history?: unknown[]; + } | null; + url?: string; + forks_url?: string; + commits_url?: string; + id?: string; + node_id?: string; + git_pull_url?: string; + git_push_url?: string; + html_url?: string; + files?: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + } | null; + }; + public?: boolean; + created_at?: string; + updated_at?: string; + description?: string | null; + comments?: number; + user?: string | null; + comments_url?: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + }; + /** + * Gist Comment + * @description A comment made to a gist. + */ + "gist-comment": { + /** @example 1 */ + id: number; + /** @example MDExOkdpc3RDb21tZW50MQ== */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/gists/a6db0bec360bb87e9418/comments/1 + */ + url: string; + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-18T23:23:56Z + */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Gist Commit + * @description Gist Commit + */ + "gist-commit": { + /** + * Format: uri + * @example https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f + */ + url: string; + /** @example 57a7f021a713b1c5a6a199b54cc514735d2d462f */ + version: string; + user: components["schemas"]["nullable-simple-user"]; + change_status: { + total?: number; + additions?: number; + deletions?: number; + }; + /** + * Format: date-time + * @example 2010-04-14T02:15:15Z + */ + committed_at: string; + }; + /** + * Gitignore Template + * @description Gitignore Template + */ + "gitignore-template": { + /** @example C */ + name: string; + /** + * @example # Object files + * *.o + * + * # Libraries + * *.lib + * *.a + * + * # Shared objects (inc. Windows DLLs) + * *.dll + * *.so + * *.so.* + * *.dylib + * + * # Executables + * *.exe + * *.out + * *.app + */ + source: string; + }; + /** + * License Simple + * @description License Simple + */ + "license-simple": { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MIT */ + spdx_id: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** Format: uri */ + html_url?: string; + }; + /** + * License + * @description License + */ + license: { + /** @example mit */ + key: string; + /** @example MIT License */ + name: string; + /** @example MIT */ + spdx_id: string | null; + /** + * Format: uri + * @example https://api.github.com/licenses/mit + */ + url: string | null; + /** @example MDc6TGljZW5zZW1pdA== */ + node_id: string; + /** + * Format: uri + * @example http://choosealicense.com/licenses/mit/ + */ + html_url: string; + /** @example A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty. */ + description: string; + /** @example Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders. */ + implementation: string; + /** + * @example [ + * "commercial-use", + * "modifications", + * "distribution", + * "sublicense", + * "private-use" + * ] + */ + permissions: string[]; + /** + * @example [ + * "include-copyright" + * ] + */ + conditions: string[]; + /** + * @example [ + * "no-liability" + * ] + */ + limitations: string[]; + /** + * @example + * + * The MIT License (MIT) + * + * Copyright (c) [year] [fullname] + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + body: string; + /** @example true */ + featured: boolean; + }; + /** + * Marketplace Listing Plan + * @description Marketplace Listing Plan + */ + "marketplace-listing-plan": { + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/marketplace_listing/plans/1313/accounts + */ + accounts_url: string; + /** @example 1313 */ + id: number; + /** @example 3 */ + number: number; + /** @example Pro */ + name: string; + /** @example A professional-grade CI solution */ + description: string; + /** @example 1099 */ + monthly_price_in_cents: number; + /** @example 11870 */ + yearly_price_in_cents: number; + /** @example flat-rate */ + price_model: string; + /** @example true */ + has_free_trial: boolean; + unit_name: string | null; + /** @example published */ + state: string; + /** + * @example [ + * "Up to 25 private repositories", + * "11 concurrent builds" + * ] + */ + bullets: string[]; + }; + /** + * Marketplace Purchase + * @description Marketplace Purchase + */ + "marketplace-purchase": { + url: string; + type: string; + id: number; + login: string; + organization_billing_email?: string; + email?: string | null; + marketplace_pending_change?: { + is_installed?: boolean; + effective_date?: string; + unit_count?: number | null; + id?: number; + plan?: components["schemas"]["marketplace-listing-plan"]; + } | null; + marketplace_purchase: { + billing_cycle?: string; + next_billing_date?: string | null; + is_installed?: boolean; + unit_count?: number | null; + on_free_trial?: boolean; + free_trial_ends_on?: string | null; + updated_at?: string; + plan?: components["schemas"]["marketplace-listing-plan"]; + }; + }; + /** + * Api Overview + * @description Api Overview + */ + "api-overview": { + /** @example true */ + verifiable_password_authentication: boolean; + ssh_key_fingerprints?: { + SHA256_RSA?: string; + SHA256_DSA?: string; + SHA256_ECDSA?: string; + SHA256_ED25519?: string; + }; + /** + * @example [ + * "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl" + * ] + */ + ssh_keys?: string[]; + /** + * @example [ + * "127.0.0.1/32" + * ] + */ + hooks?: string[]; + /** + * @example [ + * "127.0.0.1/32" + * ] + */ + web?: string[]; + /** + * @example [ + * "127.0.0.1/32" + * ] + */ + api?: string[]; + /** + * @example [ + * "127.0.0.1/32" + * ] + */ + git?: string[]; + /** + * @example [ + * "13.65.0.0/16", + * "157.55.204.33/32", + * "2a01:111:f403:f90c::/62" + * ] + */ + packages?: string[]; + /** + * @example [ + * "192.30.252.153/32", + * "192.30.252.154/32" + * ] + */ + pages?: string[]; + /** + * @example [ + * "54.158.161.132", + * "54.226.70.38" + * ] + */ + importer?: string[]; + /** + * @example [ + * "13.64.0.0/16", + * "13.65.0.0/16" + * ] + */ + actions?: string[]; + /** + * @example [ + * "192.168.7.15/32", + * "192.168.7.16/32" + * ] + */ + dependabot?: string[]; + }; + /** + * Repository + * @description A git repository + */ + "nullable-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** @example 108 */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + allow_rebase_merge?: boolean; + temp_clone_token?: string; + allow_squash_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_update_branch?: boolean; + use_squash_pr_title_as_default?: boolean; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging. + * @default false + * @example false + */ + allow_update_branch?: boolean; + /** + * @description Whether a squash merge commit can use the pull request title as default. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** @description Whether to allow forking this repo */ + allow_forking?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + /** @example "2020-07-09T00:17:42Z" */ + starred_at?: string; + } | null; + /** + * Minimal Repository + * @description Minimal Repository + */ + "minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + template_repository?: components["schemas"]["nullable-repository"]; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + }; + /** + * Thread + * @description Thread + */ + thread: { + id: string; + repository: components["schemas"]["minimal-repository"]; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string | null; + url: string; + /** @example https://api.github.com/notifications/threads/2/subscription */ + subscription_url: string; + }; + /** + * Thread Subscription + * @description Thread Subscription + */ + "thread-subscription": { + /** @example true */ + subscribed: boolean; + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string | null; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/notifications/threads/1 + */ + thread_url?: string; + /** + * Format: uri + * @example https://api.github.com/repos/1 + */ + repository_url?: string; + }; + /** + * Organization Custom Repository Role + * @description Custom repository roles created by organization administrators + */ + "organization-custom-repository-role": { + id: number; + name: string; + }; + /** + * Organization Full + * @description Organization Full + */ + "organization-full": { + /** @example github */ + login: string; + /** @example 1 */ + id: number; + /** @example MDEyOk9yZ2FuaXphdGlvbjE= */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/repos + */ + repos_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/github/events + */ + events_url: string; + /** @example https://api.github.com/orgs/github/hooks */ + hooks_url: string; + /** @example https://api.github.com/orgs/github/issues */ + issues_url: string; + /** @example https://api.github.com/orgs/github/members{/member} */ + members_url: string; + /** @example https://api.github.com/orgs/github/public_members{/member} */ + public_members_url: string; + /** @example https://github.com/images/error/octocat_happy.gif */ + avatar_url: string; + /** @example A great organization */ + description: string | null; + /** @example github */ + name?: string; + /** @example GitHub */ + company?: string; + /** + * Format: uri + * @example https://github.com/blog + */ + blog?: string; + /** @example San Francisco */ + location?: string; + /** + * Format: email + * @example octocat@github.com + */ + email?: string; + /** @example github */ + twitter_username?: string | null; + /** @example true */ + is_verified?: boolean; + /** @example true */ + has_organization_projects: boolean; + /** @example true */ + has_repository_projects: boolean; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** @example Organization */ + type: string; + /** @example 100 */ + total_private_repos?: number; + /** @example 100 */ + owned_private_repos?: number; + /** @example 81 */ + private_gists?: number | null; + /** @example 10000 */ + disk_usage?: number | null; + /** @example 8 */ + collaborators?: number | null; + /** + * Format: email + * @example org@example.com + */ + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + /** @example true */ + members_can_create_repositories?: boolean | null; + /** @example true */ + two_factor_requirement_enabled?: boolean | null; + /** @example all */ + members_allowed_repository_creation_type?: string; + /** @example true */ + members_can_create_public_repositories?: boolean; + /** @example true */ + members_can_create_private_repositories?: boolean; + /** @example true */ + members_can_create_internal_repositories?: boolean; + /** @example true */ + members_can_create_pages?: boolean; + /** @example true */ + members_can_create_public_pages?: boolean; + /** @example true */ + members_can_create_private_pages?: boolean; + /** @example false */ + members_can_fork_private_repositories?: boolean | null; + /** Format: date-time */ + updated_at: string; + }; + /** + * Actions Cache Usage by repository + * @description GitHub Actions Cache Usage by repository. + */ + "actions-cache-usage-by-repository": { + /** + * @description The repository owner and name for the cache usage being shown. + * @example octo-org/Hello-World + */ + full_name: string; + /** + * @description The sum of the size in bytes of all the active cache items in the repository. + * @example 2322142 + */ + active_caches_size_in_bytes: number; + /** + * @description The number of active caches in the repository. + * @example 3 + */ + active_caches_count: number; + }; + /** + * Actions OIDC Subject customization + * @description Actions OIDC Subject customization + */ + "oidc-custom-sub": { + include_claim_keys: string[]; + }; + /** + * Empty Object + * @description An object without any properties. + */ + "empty-object": { [key: string]: unknown }; + /** + * @description The policy that controls the repositories in the organization that are allowed to run GitHub Actions. + * @enum {string} + */ + "enabled-repositories": "all" | "none" | "selected"; + "actions-organization-permissions": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + /** @description The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`. */ + selected_repositories_url?: string; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "runner-groups-org": { + id: number; + name: string; + visibility: string; + default: boolean; + /** @description Link to the selected repositories resource for this runner group. Not present unless visibility was set to `selected` */ + selected_repositories_url?: string; + runners_url: string; + inherited: boolean; + inherited_allows_public_repositories?: boolean; + allows_public_repositories: boolean; + /** + * @description If `true`, the `restricted_to_workflows` and `selected_workflows` fields cannot be modified. + * @default false + */ + workflow_restrictions_read_only?: boolean; + /** + * @description If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array. + * @default false + */ + restricted_to_workflows?: boolean; + /** @description List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`. */ + selected_workflows?: string[]; + }; + /** + * Actions Secret for an Organization + * @description Secrets for GitHub Actions for an organization. + */ + "organization-actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * ActionsPublicKey + * @description The public key used for setting Actions Secrets. + */ + "actions-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "nullable-codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 8 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 8589934592 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: ("none" | "ready" | "in_progress") | null; + } | null; + /** + * Codespace + * @description A codespace. + */ + codespace: { + /** @example 1 */ + id: number; + /** + * @description Automatically generated name of this codespace. + * @example monalisa-octocat-hello-world-g4wpq6h95q + */ + name: string; + /** + * @description Display name for this codespace. + * @example bookish space pancake + */ + display_name?: string | null; + /** + * @description UUID identifying this codespace's environment. + * @example 26a7c758-7299-4a73-b978-5a92a7ae98a0 + */ + environment_id: string | null; + owner: components["schemas"]["simple-user"]; + billable_owner: components["schemas"]["simple-user"]; + repository: components["schemas"]["minimal-repository"]; + machine: components["schemas"]["nullable-codespace-machine"]; + /** + * @description Path to devcontainer.json from repo root used to create Codespace. + * @example .devcontainer/example/devcontainer.json + */ + devcontainer_path?: string | null; + /** + * @description Whether the codespace was created from a prebuild. + * @example false + */ + prebuild: boolean | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @description Last known time this codespace was started. + * @example 2011-01-26T19:01:12Z + */ + last_used_at: string; + /** + * @description State of this codespace. + * @example Available + * @enum {string} + */ + state: + | "Unknown" + | "Created" + | "Queued" + | "Provisioning" + | "Available" + | "Awaiting" + | "Unavailable" + | "Deleted" + | "Moved" + | "Shutdown" + | "Archived" + | "Starting" + | "ShuttingDown" + | "Failed" + | "Exporting" + | "Updating" + | "Rebuilding"; + /** + * Format: uri + * @description API URL for this codespace. + */ + url: string; + /** @description Details about the codespace's git repository. */ + git_status: { + /** + * @description The number of commits the local repository is ahead of the remote. + * @example 0 + */ + ahead?: number; + /** + * @description The number of commits the local repository is behind the remote. + * @example 0 + */ + behind?: number; + /** @description Whether the local repository has unpushed changes. */ + has_unpushed_changes?: boolean; + /** @description Whether the local repository has uncommitted changes. */ + has_uncommitted_changes?: boolean; + /** + * @description The current branch (or SHA if in detached HEAD state) of the local repository. + * @example main + */ + ref?: string; + }; + /** + * @description The Azure region where this codespace is located. + * @example WestUs2 + * @enum {string} + */ + location: "EastUs" | "SouthEastAsia" | "WestEurope" | "WestUs2"; + /** + * @description The number of minutes of inactivity after which this codespace will be automatically stopped. + * @example 60 + */ + idle_timeout_minutes: number | null; + /** + * Format: uri + * @description URL to access this codespace on the web. + */ + web_url: string; + /** + * Format: uri + * @description API URL to access available alternate machine types for this codespace. + */ + machines_url: string; + /** + * Format: uri + * @description API URL to start this codespace. + */ + start_url: string; + /** + * Format: uri + * @description API URL to stop this codespace. + */ + stop_url: string; + /** + * Format: uri + * @description API URL for the Pull Request associated with this codespace, if any. + */ + pulls_url: string | null; + recent_folders: string[]; + runtime_constraints?: { + /** @description The privacy settings a user can select from when forwarding a port. */ + allowed_port_privacy_settings?: string[] | null; + }; + /** @description Whether or not a codespace has a pending async operation. This would mean that the codespace is temporarily unavailable. The only thing that you can do with a codespace in this state is delete it. */ + pending_operation?: boolean | null; + /** @description Text to show user when codespace is disabled by a pending operation */ + pending_operation_disabled_reason?: string | null; + /** @description Text to show user when codespace idle timeout minutes has been overriden by an organization policy */ + idle_timeout_notice?: string | null; + }; + /** + * Credential Authorization + * @description Credential Authorization + */ + "credential-authorization": { + /** + * @description User login that owns the underlying credential. + * @example monalisa + */ + login: string; + /** + * @description Unique identifier for the credential. + * @example 1 + */ + credential_id: number; + /** + * @description Human-readable description of the credential type. + * @example SSH Key + */ + credential_type: string; + /** + * @description Last eight characters of the credential. Only included in responses with credential_type of personal access token. + * @example 12345678 + */ + token_last_eight?: string; + /** + * Format: date-time + * @description Date when the credential was authorized for use. + * @example 2011-01-26T19:06:43Z + */ + credential_authorized_at: string; + /** + * @description List of oauth scopes the token has been granted. + * @example [ + * "user", + * "repo" + * ] + */ + scopes?: string[]; + /** + * @description Unique string to distinguish the credential. Only included in responses with credential_type of SSH Key. + * @example jklmnop12345678 + */ + fingerprint?: string; + /** + * Format: date-time + * @description Date when the credential was last accessed. May be null if it was never accessed + * @example 2011-01-26T19:06:43Z + */ + credential_accessed_at: string | null; + /** @example 12345678 */ + authorized_credential_id: number | null; + /** + * @description The title given to the ssh key. This will only be present when the credential is an ssh key. + * @example my ssh key + */ + authorized_credential_title?: string | null; + /** + * @description The note given to the token. This will only be present when the credential is a token. + * @example my token + */ + authorized_credential_note?: string | null; + /** + * Format: date-time + * @description The expiry for the token. This will only be present when the credential is a token. + */ + authorized_credential_expires_at?: string | null; + }; + /** + * Dependabot Secret for an Organization + * @description Secrets for GitHub Dependabot for an organization. + */ + "organization-dependabot-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** + * @description Visibility of a secret + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @example https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories + */ + selected_repositories_url?: string; + }; + /** + * DependabotPublicKey + * @description The public key used for setting Dependabot Secrets. + */ + "dependabot-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * ExternalGroup + * @description Information about an external group's usage and its members + */ + "external-group": { + /** + * @description The internal ID of the group + * @example 1 + */ + group_id: number; + /** + * @description The display name for the group + * @example group-azuread-test + */ + group_name: string; + /** + * @description The date when the group was last updated_at + * @example 2021-01-03 22:27:15:000 -700 + */ + updated_at?: string; + /** + * @description An array of teams linked to this group + * @example [ + * { + * "team_id": 1, + * "team_name": "team-test" + * }, + * { + * "team_id": 2, + * "team_name": "team-test2" + * } + * ] + */ + teams: { + /** + * @description The id for a team + * @example 1 + */ + team_id: number; + /** + * @description The name of the team + * @example team-test + */ + team_name: string; + }[]; + /** + * @description An array of external members linked to this group + * @example [ + * { + * "member_id": 1, + * "member_login": "mona-lisa_eocsaxrs", + * "member_name": "Mona Lisa", + * "member_email": "mona_lisa@github.com" + * }, + * { + * "member_id": 2, + * "member_login": "octo-lisa_eocsaxrs", + * "member_name": "Octo Lisa", + * "member_email": "octo_lisa@github.com" + * } + * ] + */ + members: { + /** + * @description The internal user ID of the identity + * @example 1 + */ + member_id: number; + /** + * @description The handle/login for the user + * @example mona-lisa_eocsaxrs + */ + member_login: string; + /** + * @description The user display name/profile name + * @example Mona Lisa + */ + member_name: string; + /** + * @description An email attached to a user + * @example mona_lisa@github.com + */ + member_email: string; + }[]; + }; + /** + * ExternalGroups + * @description A list of external groups available to be connected to a team + */ + "external-groups": { + /** + * @description An array of external groups available to be mapped to a team + * @example [ + * { + * "group_id": 1, + * "group_name": "group-azuread-test", + * "updated_at": "2021-01-03 22:27:15:000 -700" + * }, + * { + * "group_id": 2, + * "group_name": "group-azuread-test2", + * "updated_at": "2021-06-03 22:27:15:000 -700" + * } + * ] + */ + groups?: { + /** + * @description The internal ID of the group + * @example 1 + */ + group_id: number; + /** + * @description The display name of the group + * @example group-azuread-test + */ + group_name: string; + /** + * @description The time of the last update for this group + * @example 2019-06-03 22:27:15:000 -700 + */ + updated_at: string; + }[]; + }; + /** + * Organization Invitation + * @description Organization Invitation + */ + "organization-invitation": { + id: number; + login: string | null; + email: string | null; + role: string; + created_at: string; + failed_at?: string | null; + failed_reason?: string | null; + inviter: components["schemas"]["simple-user"]; + team_count: number; + /** @example "MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x" */ + node_id: string; + /** @example "https://api.github.com/organizations/16/invitations/1/teams" */ + invitation_teams_url: string; + }; + /** + * Org Hook + * @description Org Hook + */ + "org-hook": { + /** @example 1 */ + id: number; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/hooks/1/deliveries + */ + deliveries_url?: string; + /** @example web */ + name: string; + /** + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + /** @example true */ + active: boolean; + config: { + /** @example "http://example.com/2" */ + url?: string; + /** @example "0" */ + insecure_ssl?: string; + /** @example "form" */ + content_type?: string; + /** @example "********" */ + secret?: string; + }; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + type: string; + }; + /** + * @description The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect. + * @example collaborators_only + * @enum {string} + */ + "interaction-group": + | "existing_users" + | "contributors_only" + | "collaborators_only"; + /** + * Interaction Limits + * @description Interaction limit settings. + */ + "interaction-limit-response": { + limit: components["schemas"]["interaction-group"]; + /** @example repository */ + origin: string; + /** + * Format: date-time + * @example 2018-08-17T04:18:39Z + */ + expires_at: string; + }; + /** + * @description The duration of the interaction restriction. Default: `one_day`. + * @example one_month + * @enum {string} + */ + "interaction-expiry": + | "one_day" + | "three_days" + | "one_week" + | "one_month" + | "six_months"; + /** + * Interaction Restrictions + * @description Limit interactions to a specific type of user for a specified duration + */ + "interaction-limit": { + limit: components["schemas"]["interaction-group"]; + expiry?: components["schemas"]["interaction-expiry"]; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "nullable-team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + } | null; + /** + * Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + team: { + id: number; + node_id: string; + name: string; + slug: string; + description: string | null; + privacy?: string; + permission: string; + permissions?: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + /** Format: uri */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + members_url: string; + /** Format: uri */ + repositories_url: string; + parent: components["schemas"]["nullable-team-simple"]; + }; + /** + * Org Membership + * @description Org Membership + */ + "org-membership": { + /** + * Format: uri + * @example https://api.github.com/orgs/octocat/memberships/defunkt + */ + url: string; + /** + * @description The state of the member in the organization. The `pending` state indicates the user has not yet accepted an invitation. + * @example active + * @enum {string} + */ + state: "active" | "pending"; + /** + * @description The user's membership type in the organization. + * @example admin + * @enum {string} + */ + role: "admin" | "member" | "billing_manager"; + /** + * Format: uri + * @example https://api.github.com/orgs/octocat + */ + organization_url: string; + organization: components["schemas"]["organization-simple"]; + user: components["schemas"]["nullable-simple-user"]; + permissions?: { + can_create_repository: boolean; + }; + }; + /** + * Migration + * @description A migration. + */ + migration: { + /** @example 79 */ + id: number; + owner: components["schemas"]["nullable-simple-user"]; + /** @example 0b989ba4-242f-11e5-81e1-c7b6966d2516 */ + guid: string; + /** @example pending */ + state: string; + /** @example true */ + lock_repositories: boolean; + exclude_metadata: boolean; + exclude_git_data: boolean; + exclude_attachments: boolean; + exclude_releases: boolean; + exclude_owner_projects: boolean; + org_metadata_only: boolean; + repositories: components["schemas"]["repository"][]; + /** + * Format: uri + * @example https://api.github.com/orgs/octo-org/migrations/79 + */ + url: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + created_at: string; + /** + * Format: date-time + * @example 2015-07-06T15:33:38-07:00 + */ + updated_at: string; + node_id: string; + /** Format: uri */ + archive_url?: string; + exclude?: unknown[]; + }; + /** + * Minimal Repository + * @description Minimal Repository + */ + "nullable-minimal-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + git_url?: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + ssh_url?: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at?: string | null; + permissions?: { + admin?: boolean; + maintain?: boolean; + push?: boolean; + triage?: boolean; + pull?: boolean; + }; + /** @example admin */ + role_name?: string; + template_repository?: components["schemas"]["nullable-repository"]; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + code_of_conduct?: components["schemas"]["code-of-conduct"]; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + /** @example 0 */ + forks?: number; + /** @example 0 */ + open_issues?: number; + /** @example 0 */ + watchers?: number; + allow_forking?: boolean; + } | null; + /** + * Package + * @description A software package + */ + package: { + /** + * @description Unique identifier of the package. + * @example 1 + */ + id: number; + /** + * @description The name of the package. + * @example super-linter + */ + name: string; + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @example https://api.github.com/orgs/github/packages/container/super-linter */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + html_url: string; + /** + * @description The number of versions of the package. + * @example 1 + */ + version_count: number; + /** + * @example private + * @enum {string} + */ + visibility: "private" | "public"; + owner?: components["schemas"]["nullable-simple-user"]; + repository?: components["schemas"]["nullable-minimal-repository"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Package Version + * @description A version of a software package + */ + "package-version": { + /** + * @description Unique identifier of the package version. + * @example 1 + */ + id: number; + /** + * @description The name of the package version. + * @example latest + */ + name: string; + /** @example https://api.github.com/orgs/github/packages/container/super-linter/versions/786068 */ + url: string; + /** @example https://github.com/orgs/github/packages/container/package/super-linter */ + package_html_url: string; + /** @example https://github.com/orgs/github/packages/container/super-linter/786068 */ + html_url?: string; + /** @example MIT */ + license?: string; + description?: string; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + deleted_at?: string; + /** Package Version Metadata */ + metadata?: { + /** + * @example docker + * @enum {string} + */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** Container Metadata */ + container?: { + tags: string[]; + }; + /** Docker Metadata */ + docker?: { + tag?: string[]; + } & { + tags: unknown; + }; + }; + }; + /** + * Project + * @description Projects are a way to organize columns and cards of work. + */ + project: { + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test + */ + owner_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604 + */ + url: string; + /** + * Format: uri + * @example https://github.com/api-playground/projects-test/projects/12 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/1002604/columns + */ + columns_url: string; + /** @example 1002604 */ + id: number; + /** @example MDc6UHJvamVjdDEwMDI2MDQ= */ + node_id: string; + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body: string | null; + /** @example 1 */ + number: number; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state: string; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * @description The baseline permission that all organization members have on this project. Only present if owner is an organization. + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. Only present if owner is an organization. */ + private?: boolean; + }; + /** + * GroupMapping + * @description External Groups to be mapped to a team for membership + */ + "group-mapping": { + /** + * @description Array of groups to be mapped to this team + * @example [ + * { + * "group_id": "111a1a11-aaa1-1aaa-11a1-a1a1a1a1a1aa", + * "group_name": "saml-azuread-test", + * "group_description": "A group of Developers working on AzureAD SAML SSO" + * }, + * { + * "group_id": "2bb2bb2b-bb22-22bb-2bb2-bb2bbb2bb2b2", + * "group_name": "saml-azuread-test2", + * "group_description": "Another group of Developers working on AzureAD SAML SSO" + * } + * ] + */ + groups?: { + /** + * @description The ID of the group + * @example 111a1a11-aaa1-1aaa-11a1-a1a1a1a1a1aa + */ + group_id: string; + /** + * @description The name of the group + * @example saml-azuread-test + */ + group_name: string; + /** + * @description a description of the group + * @example A group of Developers working on AzureAD SAML SSO + */ + group_description: string; + /** + * @description synchronization status for this group mapping + * @example unsynced + */ + status?: string; + /** + * @description the time of the last sync for this group-mapping + * @example 2019-06-03 22:27:15:000 -700 + */ + synced_at?: string | null; + }[]; + }; + /** + * Full Team + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-full": { + /** + * @description Unique identifier of the team + * @example 42 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * @description Name of the team + * @example Developers + */ + name: string; + /** @example justice-league */ + slug: string; + /** @example A great team. */ + description: string | null; + /** + * @description The level of privacy this team should have + * @example closed + * @enum {string} + */ + privacy?: "closed" | "secret"; + /** + * @description Permission that the team will have for its repositories + * @example push + */ + permission: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + parent?: components["schemas"]["nullable-team-simple"]; + /** @example 3 */ + members_count: number; + /** @example 10 */ + repos_count: number; + /** + * Format: date-time + * @example 2017-07-14T16:53:42Z + */ + created_at: string; + /** + * Format: date-time + * @example 2017-08-17T12:37:15Z + */ + updated_at: string; + organization: components["schemas"]["organization-full"]; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + /** + * Team Discussion + * @description A team discussion is a persistent record of a free-form conversation within a team. + */ + "team-discussion": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the discussion. + * @example Please suggest improvements to our workflow in comments. + */ + body: string; + /** @example

Hi! This is an area for us to collaborate as a team

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** @example 0 */ + comments_count: number; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1/comments + */ + comments_url: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1 + */ + html_url: string; + /** @example MDE0OlRlYW1EaXNjdXNzaW9uMQ== */ + node_id: string; + /** + * @description The unique sequence number of a team discussion. + * @example 42 + */ + number: number; + /** + * @description Whether or not this discussion should be pinned for easy retrieval. + * @example true + */ + pinned: boolean; + /** + * @description Whether or not this discussion should be restricted to team members and organization administrators. + * @example true + */ + private: boolean; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027 + */ + team_url: string; + /** + * @description The title of the discussion. + * @example How can we improve our workflow? + */ + title: string; + /** + * Format: date-time + * @example 2018-01-25T18:56:31Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2343027/discussions/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Team Discussion Comment + * @description A reply to a discussion within a team. + */ + "team-discussion-comment": { + author: components["schemas"]["nullable-simple-user"]; + /** + * @description The main text of the comment. + * @example I agree with this suggestion. + */ + body: string; + /** @example

Do you like apples?

*/ + body_html: string; + /** + * @description The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + * @example 0307116bbf7ced493b8d8a346c650b71 + */ + body_version: string; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + created_at: string; + /** Format: date-time */ + last_edited_at: string | null; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1 + */ + discussion_url: string; + /** + * Format: uri + * @example https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1 + */ + html_url: string; + /** @example MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE= */ + node_id: string; + /** + * @description The unique sequence number of a team discussion comment. + * @example 42 + */ + number: number; + /** + * Format: date-time + * @example 2018-01-15T23:53:58Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/2403582/discussions/1/comments/1 + */ + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Reaction + * @description Reactions to conversations provide a way to help people express their feelings more simply and effectively. + */ + reaction: { + /** @example 1 */ + id: number; + /** @example MDg6UmVhY3Rpb24x */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The reaction to use + * @example heart + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Format: date-time + * @example 2016-05-20T20:09:31Z + */ + created_at: string; + }; + /** + * Team Membership + * @description Team Membership + */ + "team-membership": { + /** Format: uri */ + url: string; + /** + * @description The role of the user in the team. + * @default member + * @example member + * @enum {string} + */ + role: "member" | "maintainer"; + /** + * @description The state of the user's membership in the team. + * @enum {string} + */ + state: "active" | "pending"; + }; + /** + * Team Project + * @description A team's access to a project. + */ + "team-project": { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string | null; + number: number; + state: string; + creator: components["schemas"]["simple-user"]; + created_at: string; + updated_at: string; + /** @description The organization permission for this project. Only present when owner is an organization. */ + organization_permission?: string; + /** @description Whether the project is private or not. Only present when owner is an organization. */ + private?: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; + }; + /** + * Team Repository + * @description A team's access to a repository. + */ + "team-repository": { + /** + * @description Unique identifier of the repository + * @example 42 + */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + license: components["schemas"]["nullable-license-simple"]; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + /** @example admin */ + role_name?: string; + owner: components["schemas"]["nullable-simple-user"]; + /** + * @description Whether the repository is private or public. + * @default false + */ + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** @example 108 */ + size: number; + /** + * @description The default branch of the repository. + * @example master + */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + topics?: string[]; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki: boolean; + has_pages: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads: boolean; + /** + * @description Whether the repository is archived. + * @default false + */ + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @default public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string | null; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + template_repository?: components["schemas"]["nullable-repository"]; + temp_clone_token?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow forking this repo + * @default false + * @example false + */ + allow_forking?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + }; + /** + * Project Card + * @description Project cards represent a scope of work. + */ + "project-card": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/cards/1478 + */ + url: string; + /** + * @description The project card's ID + * @example 42 + */ + id: number; + /** @example MDExOlByb2plY3RDYXJkMTQ3OA== */ + node_id: string; + /** @example Add payload for delete Project column */ + note: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2016-09-05T14:21:06Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:20:22Z + */ + updated_at: string; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + column_name?: string; + project_id?: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + column_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/api-playground/projects-test/issues/3 + */ + content_url?: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + }; + /** + * Project Column + * @description Project columns contain cards of work. + */ + "project-column": { + /** + * Format: uri + * @example https://api.github.com/projects/columns/367 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/projects/120 + */ + project_url: string; + /** + * Format: uri + * @example https://api.github.com/projects/columns/367/cards + */ + cards_url: string; + /** + * @description The unique identifier of the project column + * @example 42 + */ + id: number; + /** @example MDEzOlByb2plY3RDb2x1bW4zNjc= */ + node_id: string; + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + /** + * Format: date-time + * @example 2016-09-05T14:18:44Z + */ + created_at: string; + /** + * Format: date-time + * @example 2016-09-05T14:22:28Z + */ + updated_at: string; + }; + /** + * Project Collaborator Permission + * @description Project Collaborator Permission + */ + "project-collaborator-permission": { + permission: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** Rate Limit */ + "rate-limit": { + limit: number; + remaining: number; + reset: number; + used: number; + }; + /** + * Rate Limit Overview + * @description Rate Limit Overview + */ + "rate-limit-overview": { + resources: { + core: components["schemas"]["rate-limit"]; + graphql?: components["schemas"]["rate-limit"]; + search: components["schemas"]["rate-limit"]; + source_import?: components["schemas"]["rate-limit"]; + integration_manifest?: components["schemas"]["rate-limit"]; + code_scanning_upload?: components["schemas"]["rate-limit"]; + actions_runner_registration?: components["schemas"]["rate-limit"]; + scim?: components["schemas"]["rate-limit"]; + dependency_snapshots?: components["schemas"]["rate-limit"]; + }; + rate: components["schemas"]["rate-limit"]; + }; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + }; + "security-and-analysis": { + advanced_security?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + secret_scanning?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + secret_scanning_push_protection?: { + /** @enum {string} */ + status?: "enabled" | "disabled"; + }; + } | null; + /** + * Full Repository + * @description Full Repository + */ + "full-repository": { + /** @example 1296269 */ + id: number; + /** @example MDEwOlJlcG9zaXRvcnkxMjk2MjY5 */ + node_id: string; + /** @example Hello-World */ + name: string; + /** @example octocat/Hello-World */ + full_name: string; + owner: components["schemas"]["simple-user"]; + private: boolean; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World + */ + html_url: string; + /** @example This your first repo! */ + description: string | null; + fork: boolean; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World + */ + url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} */ + archive_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/assignees{/user} */ + assignees_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} */ + blobs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/branches{/branch} */ + branches_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} */ + collaborators_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/comments{/number} */ + comments_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/commits{/sha} */ + commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} */ + compare_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/contents/{+path} */ + contents_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/contributors + */ + contributors_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/deployments + */ + deployments_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/downloads + */ + downloads_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/events + */ + events_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/forks + */ + forks_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} */ + git_commits_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} */ + git_refs_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} */ + git_tags_url: string; + /** @example git:github.com/octocat/Hello-World.git */ + git_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} */ + issue_comment_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues/events{/number} */ + issue_events_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/issues{/number} */ + issues_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/keys{/key_id} */ + keys_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/labels{/name} */ + labels_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/languages + */ + languages_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/merges + */ + merges_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/milestones{/number} */ + milestones_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} */ + notifications_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/pulls{/number} */ + pulls_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/releases{/id} */ + releases_url: string; + /** @example git@github.com:octocat/Hello-World.git */ + ssh_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/stargazers + */ + stargazers_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/statuses/{sha} */ + statuses_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscribers + */ + subscribers_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/subscription + */ + subscription_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/tags + */ + tags_url: string; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/teams + */ + teams_url: string; + /** @example http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} */ + trees_url: string; + /** @example https://github.com/octocat/Hello-World.git */ + clone_url: string; + /** + * Format: uri + * @example git:git.example.com/octocat/Hello-World + */ + mirror_url: string | null; + /** + * Format: uri + * @example http://api.github.com/repos/octocat/Hello-World/hooks + */ + hooks_url: string; + /** + * Format: uri + * @example https://svn.github.com/octocat/Hello-World + */ + svn_url: string; + /** + * Format: uri + * @example https://github.com + */ + homepage: string | null; + language: string | null; + /** @example 9 */ + forks_count: number; + /** @example 80 */ + stargazers_count: number; + /** @example 80 */ + watchers_count: number; + /** @example 108 */ + size: number; + /** @example master */ + default_branch: string; + /** @example 0 */ + open_issues_count: number; + /** @example true */ + is_template?: boolean; + /** + * @example [ + * "octocat", + * "atom", + * "electron", + * "API" + * ] + */ + topics?: string[]; + /** @example true */ + has_issues: boolean; + /** @example true */ + has_projects: boolean; + /** @example true */ + has_wiki: boolean; + has_pages: boolean; + /** @example true */ + has_downloads: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** + * @description The repository visibility: public, private, or internal. + * @example public + */ + visibility?: string; + /** + * Format: date-time + * @example 2011-01-26T19:06:43Z + */ + pushed_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:14:43Z + */ + updated_at: string; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + /** @example true */ + allow_rebase_merge?: boolean; + template_repository?: components["schemas"]["nullable-repository"]; + temp_clone_token?: string | null; + /** @example true */ + allow_squash_merge?: boolean; + /** @example false */ + allow_auto_merge?: boolean; + /** @example false */ + delete_branch_on_merge?: boolean; + /** @example true */ + allow_merge_commit?: boolean; + /** @example true */ + allow_update_branch?: boolean; + /** @example false */ + use_squash_pr_title_as_default?: boolean; + /** @example true */ + allow_forking?: boolean; + /** @example 42 */ + subscribers_count: number; + /** @example 0 */ + network_count: number; + license: components["schemas"]["nullable-license-simple"]; + organization?: components["schemas"]["nullable-simple-user"]; + parent?: components["schemas"]["repository"]; + source?: components["schemas"]["repository"]; + forks: number; + master_branch?: string; + open_issues: number; + watchers: number; + /** + * @description Whether anonymous git access is allowed. + * @default true + */ + anonymous_access_enabled?: boolean; + code_of_conduct?: components["schemas"]["code-of-conduct-simple"]; + security_and_analysis?: components["schemas"]["security-and-analysis"]; + }; + /** + * Artifact + * @description An artifact + */ + artifact: { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The name of the artifact. + * @example AdventureWorks.Framework + */ + name: string; + /** + * @description The size in bytes of the artifact. + * @example 12345 + */ + size_in_bytes: number; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5 */ + url: string; + /** @example https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip */ + archive_download_url: string; + /** @description Whether or not the artifact has expired. */ + expired: boolean; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + expires_at: string | null; + /** Format: date-time */ + updated_at: string | null; + workflow_run?: { + /** @example 10 */ + id?: number; + /** @example 42 */ + repository_id?: number; + /** @example 42 */ + head_repository_id?: number; + /** @example main */ + head_branch?: string; + /** @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d */ + head_sha?: string; + } | null; + }; + /** + * Repository actions caches + * @description Repository actions caches + */ + "actions-cache-list": { + /** + * @description Total number of caches + * @example 2 + */ + total_count: number; + /** @description Array of caches */ + actions_caches: { + /** @example 2 */ + id?: number; + /** @example refs/heads/main */ + ref?: string; + /** @example Linux-node-958aff96db2d75d67787d1e634ae70b659de937b */ + key?: string; + /** @example 73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0 */ + version?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + last_accessed_at?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + created_at?: string; + /** @example 1024 */ + size_in_bytes?: number; + }[]; + }; + /** + * Job + * @description Information of a job execution in a workflow run + */ + job: { + /** + * @description The id of the job. + * @example 21 + */ + id: number; + /** + * @description The id of the associated workflow run. + * @example 5 + */ + run_id: number; + /** @example https://api.github.com/repos/github/hello-world/actions/runs/5 */ + run_url: string; + /** + * @description Attempt number of the associated workflow run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** + * @description The SHA of the commit that is being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example https://api.github.com/repos/github/hello-world/actions/jobs/21 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @description The outcome of the job. + * @example success + */ + conclusion: string | null; + /** + * Format: date-time + * @description The time that the job started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at: string; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @description Steps in this job. */ + steps?: { + /** + * @description The phase of the lifecycle that the job is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @description The outcome of the job. + * @example success + */ + conclusion: string | null; + /** + * @description The name of the job. + * @example test-coverage + */ + name: string; + /** @example 1 */ + number: number; + /** + * Format: date-time + * @description The time that the step started, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + started_at?: string | null; + /** + * Format: date-time + * @description The time that the job finished, in ISO 8601 format. + * @example 2019-08-08T08:00:00-07:00 + */ + completed_at?: string | null; + }[]; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + check_run_url: string; + /** + * @description Labels for the workflow job. Specified by the "runs_on" attribute in the action's workflow file. + * @example [ + * "self-hosted", + * "foo", + * "bar" + * ] + */ + labels: string[]; + /** + * @description The ID of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 1 + */ + runner_id: number | null; + /** + * @description The name of the runner to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner + */ + runner_name: string | null; + /** + * @description The ID of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example 2 + */ + runner_group_id: number | null; + /** + * @description The name of the runner group to which this job has been assigned. (If a runner hasn't yet been assigned, this will be null.) + * @example my runner group + */ + runner_group_name: string | null; + }; + /** + * The json payload enables/disables the use of sub claim customization + * @description OIDC Customer Subject + */ + "opt-out-oidc-custom-sub": { + use_default: boolean; + }; + /** @description Whether GitHub Actions is enabled on the repository. */ + "actions-enabled": boolean; + "actions-repository-permissions": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "actions-workflow-access-to-repository": { + /** + * @description Defines the level of access that workflows outside of the repository have to actions and reusable workflows within the + * repository. `none` means access is only possible from workflows in this repository. + * @enum {string} + */ + access_level: "none" | "organization" | "enterprise"; + }; + /** + * Referenced workflow + * @description A workflow referenced/reused by the initial caller workflow + */ + "referenced-workflow": { + path: string; + sha: string; + ref?: string; + }; + /** Pull Request Minimal */ + "pull-request-minimal": { + id: number; + number: number; + url: string; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }; + /** + * Simple Commit + * @description Simple Commit + */ + "nullable-simple-commit": { + id: string; + tree_id: string; + message: string; + /** Format: date-time */ + timestamp: string; + author: { + name: string; + email: string; + } | null; + committer: { + name: string; + email: string; + } | null; + } | null; + /** + * Workflow Run + * @description An invocation of a workflow + */ + "workflow-run": { + /** + * @description The ID of the workflow run. + * @example 5 + */ + id: number; + /** + * @description The name of the workflow run. + * @example Build + */ + name?: string | null; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** + * @description The ID of the associated check suite. + * @example 42 + */ + check_suite_id?: number; + /** + * @description The node ID of the associated check suite. + * @example MDEwOkNoZWNrU3VpdGU0Mg== + */ + check_suite_node_id?: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that points to the version of the workflow being run. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @description The full path of the workflow + * @example octocat/octo-repo/.github/workflows/ci.yml@main + */ + path: string; + /** + * @description The auto incrementing run number for the workflow run. + * @example 106 + */ + run_number: number; + /** + * @description Attempt number of the run, 1 for first attempt and higher if the workflow was re-run. + * @example 1 + */ + run_attempt?: number; + referenced_workflows?: + | components["schemas"]["referenced-workflow"][] + | null; + /** @example push */ + event: string; + /** @example completed */ + status: string | null; + /** @example neutral */ + conclusion: string | null; + /** + * @description The ID of the parent workflow. + * @example 5 + */ + workflow_id: number; + /** + * @description The URL to the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5 + */ + url: string; + /** @example https://github.com/github/hello-world/suites/4 */ + html_url: string; + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + actor?: components["schemas"]["simple-user"]; + triggering_actor?: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @description The start time of the latest run. Resets on re-run. + */ + run_started_at?: string; + /** + * @description The URL to the jobs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/jobs + */ + jobs_url: string; + /** + * @description The URL to download the logs for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/logs + */ + logs_url: string; + /** + * @description The URL to the associated check suite. + * @example https://api.github.com/repos/github/hello-world/check-suites/12 + */ + check_suite_url: string; + /** + * @description The URL to the artifacts for the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts + */ + artifacts_url: string; + /** + * @description The URL to cancel the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/cancel + */ + cancel_url: string; + /** + * @description The URL to rerun the workflow run. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/rerun + */ + rerun_url: string; + /** + * @description The URL to the previous attempted run of this workflow, if one exists. + * @example https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3 + */ + previous_attempt_url?: string | null; + /** + * @description The URL to the workflow. + * @example https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml + */ + workflow_url: string; + head_commit: components["schemas"]["nullable-simple-commit"]; + repository: components["schemas"]["minimal-repository"]; + head_repository: components["schemas"]["minimal-repository"]; + /** @example 5 */ + head_repository_id?: number; + }; + /** + * Environment Approval + * @description An entry in the reviews log for environment deployments + */ + "environment-approvals": { + /** @description The list of environments that were approved or rejected */ + environments: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at?: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at?: string; + }[]; + /** + * @description Whether deployment to the environment(s) was approved or rejected + * @example approved + * @enum {string} + */ + state: "approved" | "rejected"; + user: components["schemas"]["simple-user"]; + /** + * @description The comment submitted with the deployment review + * @example Ship it! + */ + comment: string; + }; + /** + * @description The type of reviewer. + * @example User + * @enum {string} + */ + "deployment-reviewer-type": "User" | "Team"; + /** + * Pending Deployment + * @description Details of a deployment that is waiting for protection rules to pass + */ + "pending-deployment": { + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id?: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id?: string; + /** + * @description The name of the environment. + * @example staging + */ + name?: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url?: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url?: string; + }; + /** + * @description The set duration of the wait timer + * @example 30 + */ + wait_timer: number; + /** + * Format: date-time + * @description The time that the wait timer began. + * @example 2020-11-23T22:00:40Z + */ + wait_timer_started_at: string | null; + /** + * @description Whether the currently authenticated user can approve the deployment + * @example true + */ + current_user_can_approve: boolean; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: Partial & + Partial; + }[]; + }; + /** + * Deployment + * @description A request for a specific ref(branch,sha,tag) to be deployed + */ + deployment: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** @example a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d */ + sha: string; + /** + * @description The ref to deploy. This can be a branch, tag, or sha. + * @example topic-branch + */ + ref: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + payload: { [key: string]: unknown } | string; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Workflow Run Usage + * @description Workflow Run Usage + */ + "workflow-run-usage": { + billable: { + UBUNTU?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + MACOS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + WINDOWS?: { + total_ms: number; + jobs: number; + job_runs?: { + job_id: number; + duration_ms: number; + }[]; + }; + }; + run_duration_ms?: number; + }; + /** + * Actions Secret + * @description Set secrets for GitHub Actions. + */ + "actions-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Workflow + * @description A GitHub Actions workflow + */ + workflow: { + /** @example 5 */ + id: number; + /** @example MDg6V29ya2Zsb3cxMg== */ + node_id: string; + /** @example CI */ + name: string; + /** @example ruby.yaml */ + path: string; + /** + * @example active + * @enum {string} + */ + state: + | "active" + | "deleted" + | "disabled_fork" + | "disabled_inactivity" + | "disabled_manually"; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + created_at: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + updated_at: string; + /** @example https://api.github.com/repos/actions/setup-ruby/workflows/5 */ + url: string; + /** @example https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml */ + html_url: string; + /** @example https://github.com/actions/setup-ruby/workflows/CI/badge.svg */ + badge_url: string; + /** + * Format: date-time + * @example 2019-12-06T14:20:20.000Z + */ + deleted_at?: string; + }; + /** + * Workflow Usage + * @description Workflow Usage + */ + "workflow-usage": { + billable: { + UBUNTU?: { + total_ms?: number; + }; + MACOS?: { + total_ms?: number; + }; + WINDOWS?: { + total_ms?: number; + }; + }; + }; + /** + * Autolink reference + * @description An autolink reference. + */ + autolink: { + /** @example 3 */ + id: number; + /** + * @description The prefix of a key that is linkified. + * @example TICKET- + */ + key_prefix: string; + /** + * @description A template for the target URL that is generated if a key was found. + * @example https://example.com/TICKET?query= + */ + url_template: string; + /** @description Whether this autolink reference matches alphanumeric characters. If false, this autolink reference is a legacy autolink that only matches numeric characters. */ + is_alphanumeric?: boolean; + }; + /** + * Protected Branch Required Status Check + * @description Protected Branch Required Status Check + */ + "protected-branch-required-status-check": { + url?: string; + enforcement_level?: string; + contexts: string[]; + checks: { + context: string; + app_id: number | null; + }[]; + contexts_url?: string; + strict?: boolean; + }; + /** + * Protected Branch Admin Enforced + * @description Protected Branch Admin Enforced + */ + "protected-branch-admin-enforced": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins + */ + url: string; + /** @example true */ + enabled: boolean; + }; + /** + * Protected Branch Pull Request Review + * @description Protected Branch Pull Request Review + */ + "protected-branch-pull-request-review": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions + */ + url?: string; + dismissal_restrictions?: { + /** @description The list of users with review dismissal access. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams with review dismissal access. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps with review dismissal access. */ + apps?: components["schemas"]["integration"][]; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions" */ + url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users" */ + users_url?: string; + /** @example "https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams" */ + teams_url?: string; + }; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of users allowed to bypass pull request requirements. */ + users?: components["schemas"]["simple-user"][]; + /** @description The list of teams allowed to bypass pull request requirements. */ + teams?: components["schemas"]["team"][]; + /** @description The list of apps allowed to bypass pull request requirements. */ + apps?: components["schemas"]["integration"][]; + }; + /** @example true */ + dismiss_stale_reviews: boolean; + /** @example true */ + require_code_owner_reviews: boolean; + /** @example 2 */ + required_approving_review_count?: number; + }; + /** + * Branch Restriction Policy + * @description Branch Restriction Policy + */ + "branch-restriction-policy": { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + apps_url: string; + users: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }[]; + teams: { + id?: number; + node_id?: string; + url?: string; + html_url?: string; + name?: string; + slug?: string; + description?: string | null; + privacy?: string; + permission?: string; + members_url?: string; + repositories_url?: string; + parent?: string | null; + }[]; + apps: { + id?: number; + slug?: string; + node_id?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + url?: string; + repos_url?: string; + events_url?: string; + hooks_url?: string; + issues_url?: string; + members_url?: string; + public_members_url?: string; + avatar_url?: string; + description?: string; + /** @example "" */ + gravatar_id?: string; + /** @example "https://github.com/testorg-ea8ec76d71c3af4b" */ + html_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers" */ + followers_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}" */ + following_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}" */ + gists_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}" */ + starred_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions" */ + subscriptions_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs" */ + organizations_url?: string; + /** @example "https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events" */ + received_events_url?: string; + /** @example "Organization" */ + type?: string; + /** @example false */ + site_admin?: boolean; + }; + name?: string; + description?: string; + external_url?: string; + html_url?: string; + created_at?: string; + updated_at?: string; + permissions?: { + metadata?: string; + contents?: string; + issues?: string; + single_file?: string; + }; + events?: string[]; + }[]; + }; + /** + * Branch Protection + * @description Branch Protection + */ + "branch-protection": { + url?: string; + enabled?: boolean; + required_status_checks?: components["schemas"]["protected-branch-required-status-check"]; + enforce_admins?: components["schemas"]["protected-branch-admin-enforced"]; + required_pull_request_reviews?: components["schemas"]["protected-branch-pull-request-review"]; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_linear_history?: { + enabled?: boolean; + }; + allow_force_pushes?: { + enabled?: boolean; + }; + allow_deletions?: { + enabled?: boolean; + }; + block_creations?: { + enabled?: boolean; + }; + required_conversation_resolution?: { + enabled?: boolean; + }; + /** @example "branch/with/protection" */ + name?: string; + /** @example "https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection" */ + protection_url?: string; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + }; + /** + * Short Branch + * @description Short Branch + */ + "short-branch": { + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + protected: boolean; + protection?: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url?: string; + }; + /** + * Git User + * @description Metaproperties for Git author/committer information. + */ + "nullable-git-user": { + /** @example "Chris Wanstrath" */ + name?: string; + /** @example "chris@ozmm.org" */ + email?: string; + /** @example "2007-10-29T02:42:39.000-07:00" */ + date?: string; + } | null; + /** Verification */ + verification: { + verified: boolean; + reason: string; + payload: string | null; + signature: string | null; + }; + /** + * Diff Entry + * @description Diff Entry + */ + "diff-entry": { + /** @example bbcd538c8e72b8c175046e27cc8f907076331401 */ + sha: string; + /** @example file1.txt */ + filename: string; + /** + * @example added + * @enum {string} + */ + status: + | "added" + | "removed" + | "modified" + | "renamed" + | "copied" + | "changed" + | "unchanged"; + /** @example 103 */ + additions: number; + /** @example 21 */ + deletions: number; + /** @example 124 */ + changes: number; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + blob_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + */ + raw_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + contents_url: string; + /** @example @@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test */ + patch?: string; + /** @example file.txt */ + previous_filename?: string; + }; + /** + * Commit + * @description Commit + */ + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + sha: string; + /** @example MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + */ + comments_url: string; + commit: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + url: string; + author: components["schemas"]["nullable-git-user"]; + committer: components["schemas"]["nullable-git-user"]; + /** @example Fix all the bugs */ + message: string; + /** @example 0 */ + comment_count: number; + tree: { + /** @example 827efc6d56897b048c772eb4087f854f46256132 */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132 + */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-simple-user"]; + parents: { + /** @example 7638417db6d59f3c431d3e1f261cc637155684cd */ + sha: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd + */ + html_url?: string; + }[]; + stats?: { + additions?: number; + deletions?: number; + total?: number; + }; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Branch With Protection + * @description Branch With Protection + */ + "branch-with-protection": { + name: string; + commit: components["schemas"]["commit"]; + _links: { + html: string; + /** Format: uri */ + self: string; + }; + protected: boolean; + protection: components["schemas"]["branch-protection"]; + /** Format: uri */ + protection_url: string; + /** @example "mas*" */ + pattern?: string; + /** @example 1 */ + required_approving_review_count?: number; + }; + /** + * Status Check Policy + * @description Status Check Policy + */ + "status-check-policy": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks + */ + url: string; + /** @example true */ + strict: boolean; + /** + * @example [ + * "continuous-integration/travis-ci" + * ] + */ + contexts: string[]; + checks: { + /** @example continuous-integration/travis-ci */ + context: string; + app_id: number | null; + }[]; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts + */ + contexts_url: string; + }; + /** + * Protected Branch + * @description Branch protections protect branches + */ + "protected-branch": { + /** Format: uri */ + url: string; + required_status_checks?: components["schemas"]["status-check-policy"]; + required_pull_request_reviews?: { + /** Format: uri */ + url: string; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; + dismissal_restrictions?: { + /** Format: uri */ + url: string; + /** Format: uri */ + users_url: string; + /** Format: uri */ + teams_url: string; + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + bypass_pull_request_allowances?: { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + apps?: components["schemas"]["integration"][]; + }; + }; + required_signatures?: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures + */ + url: string; + /** @example true */ + enabled: boolean; + }; + enforce_admins?: { + /** Format: uri */ + url: string; + enabled: boolean; + }; + required_linear_history?: { + enabled: boolean; + }; + allow_force_pushes?: { + enabled: boolean; + }; + allow_deletions?: { + enabled: boolean; + }; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_conversation_resolution?: { + enabled?: boolean; + }; + block_creations?: { + enabled: boolean; + }; + }; + /** + * Deployment + * @description A deployment created as the result of an Actions check run from a workflow that references an environment + */ + "deployment-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1 + */ + url: string; + /** + * @description Unique identifier of the deployment + * @example 42 + */ + id: number; + /** @example MDEwOkRlcGxveW1lbnQx */ + node_id: string; + /** + * @description Parameter to specify a task to execute + * @example deploy + */ + task: string; + /** @example staging */ + original_environment?: string; + /** + * @description Name for the target deployment environment. + * @example production + */ + environment: string; + /** @example Deploy request from hubot */ + description: string | null; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/1/statuses + */ + statuses_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * @description Specifies if the given environment is will no longer exist at some point in the future. Default: false. + * @example true + */ + transient_environment?: boolean; + /** + * @description Specifies if the given environment is one that end-users directly interact with. Default: false. + * @example true + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * CheckRun + * @description A check performed on the code of a given code change + */ + "check-run": { + /** + * @description The id of the check. + * @example 21 + */ + id: number; + /** + * @description The SHA of the commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** @example MDg6Q2hlY2tSdW40 */ + node_id: string; + /** @example 42 */ + external_id: string | null; + /** @example https://api.github.com/repos/github/hello-world/check-runs/4 */ + url: string; + /** @example https://github.com/github/hello-world/runs/4 */ + html_url: string | null; + /** @example https://example.com */ + details_url: string | null; + /** + * @description The phase of the lifecycle that the check is currently in. + * @example queued + * @enum {string} + */ + status: "queued" | "in_progress" | "completed"; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | ( + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + ) + | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + started_at: string | null; + /** + * Format: date-time + * @example 2018-05-04T01:14:52Z + */ + completed_at: string | null; + output: { + title: string | null; + summary: string | null; + text: string | null; + annotations_count: number; + /** Format: uri */ + annotations_url: string; + }; + /** + * @description The name of the check. + * @example test-coverage + */ + name: string; + check_suite: { + id: number; + } | null; + app: components["schemas"]["nullable-integration"]; + pull_requests: components["schemas"]["pull-request-minimal"][]; + deployment?: components["schemas"]["deployment-simple"]; + }; + /** + * Check Annotation + * @description Check Annotation + */ + "check-annotation": { + /** @example README.md */ + path: string; + /** @example 2 */ + start_line: number; + /** @example 2 */ + end_line: number; + /** @example 5 */ + start_column: number | null; + /** @example 10 */ + end_column: number | null; + /** @example warning */ + annotation_level: string | null; + /** @example Spell Checker */ + title: string | null; + /** @example Check your spelling for 'banaas'. */ + message: string | null; + /** @example Do you mean 'bananas' or 'banana'? */ + raw_details: string | null; + blob_href: string; + }; + /** + * Simple Commit + * @description Simple Commit + */ + "simple-commit": { + id: string; + tree_id: string; + message: string; + /** Format: date-time */ + timestamp: string; + author: { + name: string; + email: string; + } | null; + committer: { + name: string; + email: string; + } | null; + }; + /** + * CheckSuite + * @description A suite of checks performed on the code of a given code change + */ + "check-suite": { + /** @example 5 */ + id: number; + /** @example MDEwOkNoZWNrU3VpdGU1 */ + node_id: string; + /** @example master */ + head_branch: string | null; + /** + * @description The SHA of the head commit that is being checked. + * @example 009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d + */ + head_sha: string; + /** + * @example completed + * @enum {string|null} + */ + status: ("queued" | "in_progress" | "completed") | null; + /** + * @example neutral + * @enum {string|null} + */ + conclusion: + | ( + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + ) + | null; + /** @example https://api.github.com/repos/github/hello-world/check-suites/5 */ + url: string | null; + /** @example 146e867f55c26428e5f9fade55a9bbf5e95a7912 */ + before: string | null; + /** @example d6fde92930d4715a2b49857d24b940956b26d2d3 */ + after: string | null; + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + app: components["schemas"]["nullable-integration"]; + repository: components["schemas"]["minimal-repository"]; + /** Format: date-time */ + created_at: string | null; + /** Format: date-time */ + updated_at: string | null; + head_commit: components["schemas"]["simple-commit"]; + latest_check_runs_count: number; + check_runs_url: string; + rerequestable?: boolean; + runs_rerequestable?: boolean; + }; + /** + * Check Suite Preference + * @description Check suite configuration preferences for a repository. + */ + "check-suite-preference": { + preferences: { + auto_trigger_checks?: { + app_id: number; + setting: boolean; + }[]; + }; + repository: components["schemas"]["minimal-repository"]; + }; + "code-scanning-alert-rule-summary": { + /** @description A unique identifier for the rule used to detect the alert. */ + id?: string | null; + /** @description The name of the rule used to detect the alert. */ + name?: string; + /** @description A set of tags applicable for the rule. */ + tags?: string[] | null; + /** + * @description The severity of the alert. + * @enum {string|null} + */ + severity?: ("none" | "note" | "warning" | "error") | null; + /** @description A short description of the rule used to detect the alert. */ + description?: string; + }; + "code-scanning-alert-items": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["code-scanning-alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["code-scanning-alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule-summary"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + "code-scanning-alert": { + number: components["schemas"]["alert-number"]; + created_at: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url: components["schemas"]["alert-url"]; + html_url: components["schemas"]["alert-html-url"]; + instances_url: components["schemas"]["alert-instances-url"]; + state: components["schemas"]["code-scanning-alert-state"]; + fixed_at?: components["schemas"]["code-scanning-alert-fixed-at"]; + dismissed_by: components["schemas"]["nullable-simple-user"]; + dismissed_at: components["schemas"]["code-scanning-alert-dismissed-at"]; + dismissed_reason: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + rule: components["schemas"]["code-scanning-alert-rule"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + most_recent_instance: components["schemas"]["code-scanning-alert-instance"]; + }; + /** + * @description Sets the state of the code scanning alert. You must provide `dismissed_reason` when you set the state to `dismissed`. + * @enum {string} + */ + "code-scanning-alert-set-state": "open" | "dismissed"; + /** + * @description An identifier for the upload. + * @example 6c81cd8e-b078-4ac3-a3be-1dad7dbd0b53 + */ + "code-scanning-analysis-sarif-id": string; + /** @description The SHA of the commit to which the analysis you are uploading relates. */ + "code-scanning-analysis-commit-sha": string; + /** @description Identifies the variable values associated with the environment in which this analysis was performed. */ + "code-scanning-analysis-environment": string; + /** + * Format: date-time + * @description The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "code-scanning-analysis-created-at": string; + /** + * Format: uri + * @description The REST API URL of the analysis resource. + */ + "code-scanning-analysis-url": string; + "code-scanning-analysis": { + ref: components["schemas"]["code-scanning-ref"]; + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + analysis_key: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment: components["schemas"]["code-scanning-analysis-environment"]; + category?: components["schemas"]["code-scanning-analysis-category"]; + /** @example error reading field xyz */ + error: string; + created_at: components["schemas"]["code-scanning-analysis-created-at"]; + /** @description The total number of results in the analysis. */ + results_count: number; + /** @description The total number of rules used in the analysis. */ + rules_count: number; + /** @description Unique identifier for this analysis. */ + id: number; + url: components["schemas"]["code-scanning-analysis-url"]; + sarif_id: components["schemas"]["code-scanning-analysis-sarif-id"]; + tool: components["schemas"]["code-scanning-analysis-tool"]; + deletable: boolean; + /** + * @description Warning generated when processing the analysis + * @example 123 results were ignored + */ + warning: string; + }; + /** + * Analysis deletion + * @description Successful deletion of a code scanning analysis + */ + "code-scanning-analysis-deletion": { + /** + * Format: uri + * @description Next deletable analysis in chain, without last analysis deletion confirmation + */ + next_analysis_url: string | null; + /** + * Format: uri + * @description Next deletable analysis in chain, with last analysis deletion confirmation + */ + confirm_delete_url: string | null; + }; + /** @description A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string. For more information, see "[SARIF support for code scanning](https://docs.github.com/code-security/secure-coding/sarif-support-for-code-scanning)." */ + "code-scanning-analysis-sarif-file": string; + "code-scanning-sarifs-receipt": { + id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + /** + * Format: uri + * @description The REST API URL for checking the status of the upload. + */ + url?: string; + }; + "code-scanning-sarifs-status": { + /** + * @description `pending` files have not yet been processed, while `complete` means results from the SARIF have been stored. `failed` files have either not been processed at all, or could only be partially processed. + * @enum {string} + */ + processing_status?: "pending" | "complete" | "failed"; + /** + * Format: uri + * @description The REST API URL for getting the analyses associated with the upload. + */ + analyses_url?: string | null; + /** @description Any errors that ocurred during processing of the delivery. */ + errors?: string[] | null; + }; + /** + * CODEOWNERS errors + * @description A list of errors found in a repo's CODEOWNERS file + */ + "codeowners-errors": { + errors: { + /** + * @description The line number where this errors occurs. + * @example 7 + */ + line: number; + /** + * @description The column number where this errors occurs. + * @example 3 + */ + column: number; + /** + * @description The contents of the line where the error occurs. + * @example * user + */ + source?: string; + /** + * @description The type of error. + * @example Invalid owner + */ + kind: string; + /** + * @description Suggested action to fix the error. This will usually be `null`, but is provided for some common errors. + * @example The pattern `/` will never match anything, did you mean `*` instead? + */ + suggestion?: string | null; + /** + * @description A human-readable description of the error, combining information from multiple fields, laid out for display in a monospaced typeface (for example, a command-line setting). + * @example Invalid owner on line 7: + * + * * user + * ^ + */ + message: string; + /** + * @description The path of the file where the error occured. + * @example .github/CODEOWNERS + */ + path: string; + }[]; + }; + /** + * Codespace machine + * @description A description of the machine powering a codespace. + */ + "codespace-machine": { + /** + * @description The name of the machine. + * @example standardLinux + */ + name: string; + /** + * @description The display name of the machine includes cores, memory, and storage. + * @example 4 cores, 8 GB RAM, 64 GB storage + */ + display_name: string; + /** + * @description The operating system of the machine. + * @example linux + */ + operating_system: string; + /** + * @description How much storage is available to the codespace. + * @example 68719476736 + */ + storage_in_bytes: number; + /** + * @description How much memory is available to the codespace. + * @example 8589934592 + */ + memory_in_bytes: number; + /** + * @description How many cores are available to the codespace. + * @example 4 + */ + cpus: number; + /** + * @description Whether a prebuild is currently available when creating a codespace for this machine and repository. If a branch was not specified as a ref, the default branch will be assumed. Value will be "null" if prebuilds are not supported or prebuild availability could not be determined. Value will be "none" if no prebuild is available. Latest values "ready" and "in_progress" indicate the prebuild availability status. + * @example ready + * @enum {string|null} + */ + prebuild_availability: ("none" | "ready" | "in_progress") | null; + }; + /** + * Codespaces Secret + * @description Set repository secrets for GitHub Codespaces. + */ + "repo-codespaces-secret": { + /** + * @description The name of the secret. + * @example SECRET_TOKEN + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * CodespacesPublicKey + * @description The public key used for setting Codespaces secrets. + */ + "codespaces-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + /** @example 2 */ + id?: number; + /** @example https://api.github.com/user/keys/2 */ + url?: string; + /** @example ssh-rsa AAAAB3NzaC1yc2EAAA */ + title?: string; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + }; + /** + * Collaborator + * @description Collaborator + */ + collaborator: { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-invitation": { + /** + * @description Unique identifier of the repository invitation. + * @example 42 + */ + id: number; + repository: components["schemas"]["minimal-repository"]; + invitee: components["schemas"]["nullable-simple-user"]; + inviter: components["schemas"]["nullable-simple-user"]; + /** + * @description The permission associated with the invitation. + * @example read + * @enum {string} + */ + permissions: "read" | "write" | "admin" | "triage" | "maintain"; + /** + * Format: date-time + * @example 2016-06-13T14:52:50-05:00 + */ + created_at: string; + /** @description Whether or not the invitation has expired */ + expired?: boolean; + /** + * @description URL for the repository invitation + * @example https://api.github.com/user/repository-invitations/1 + */ + url: string; + /** @example https://github.com/octocat/Hello-World/invitations */ + html_url: string; + node_id: string; + }; + /** + * Collaborator + * @description Collaborator + */ + "nullable-collaborator": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + email?: string | null; + name?: string | null; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + permissions?: { + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + admin: boolean; + }; + /** @example admin */ + role_name: string; + } | null; + /** + * Repository Collaborator Permission + * @description Repository Collaborator Permission + */ + "repository-collaborator-permission": { + permission: string; + /** @example admin */ + role_name: string; + user: components["schemas"]["nullable-collaborator"]; + }; + /** + * Commit Comment + * @description Commit Comment + */ + "commit-comment": { + /** Format: uri */ + html_url: string; + /** Format: uri */ + url: string; + id: number; + node_id: string; + body: string; + path: string | null; + position: number | null; + line: number | null; + commit_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Branch Short + * @description Branch Short + */ + "branch-short": { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; + }; + /** + * Link + * @description Hypermedia Link + */ + link: { + href: string; + }; + /** + * Auto merge + * @description The status of auto merging a pull request. + */ + "auto-merge": { + enabled_by: components["schemas"]["simple-user"]; + /** + * @description The merge method to use. + * @enum {string} + */ + merge_method: "merge" | "squash" | "rebase"; + /** @description Title for the merge commit message. */ + commit_title: string; + /** @description Commit message for the merge commit. */ + commit_message: string; + } | null; + /** + * Pull Request Simple + * @description Pull Request Simple + */ + "pull-request-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** @example 1347 */ + number: number; + /** @example open */ + state: string; + /** @example true */ + locked: boolean; + /** @example new-feature */ + title: string; + user: components["schemas"]["nullable-simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team"][] | null; + head: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + base: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["nullable-simple-user"]; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + }; + /** Simple Commit Status */ + "simple-commit-status": { + description: string | null; + id: number; + node_id: string; + state: string; + context: string; + /** Format: uri */ + target_url: string; + required?: boolean | null; + /** Format: uri */ + avatar_url: string | null; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Combined Commit Status + * @description Combined Commit Status + */ + "combined-commit-status": { + state: string; + statuses: components["schemas"]["simple-commit-status"][]; + sha: string; + total_count: number; + repository: components["schemas"]["minimal-repository"]; + /** Format: uri */ + commit_url: string; + /** Format: uri */ + url: string; + }; + /** + * Status + * @description The status of a commit. + */ + status: { + url: string; + avatar_url: string | null; + id: number; + node_id: string; + state: string; + description: string; + target_url: string; + context: string; + created_at: string; + updated_at: string; + creator: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Of Conduct Simple + * @description Code of Conduct Simple + */ + "nullable-code-of-conduct-simple": { + /** + * Format: uri + * @example https://api.github.com/repos/github/docs/community/code_of_conduct + */ + url: string; + /** @example citizen_code_of_conduct */ + key: string; + /** @example Citizen Code of Conduct */ + name: string; + /** + * Format: uri + * @example https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md + */ + html_url: string | null; + } | null; + /** Community Health File */ + "nullable-community-health-file": { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + } | null; + /** + * Community Profile + * @description Community Profile + */ + "community-profile": { + /** @example 100 */ + health_percentage: number; + /** @example My first repository on GitHub! */ + description: string | null; + /** @example example.com */ + documentation: string | null; + files: { + code_of_conduct: components["schemas"]["nullable-code-of-conduct-simple"]; + code_of_conduct_file: components["schemas"]["nullable-community-health-file"]; + license: components["schemas"]["nullable-license-simple"]; + contributing: components["schemas"]["nullable-community-health-file"]; + readme: components["schemas"]["nullable-community-health-file"]; + issue_template: components["schemas"]["nullable-community-health-file"]; + pull_request_template: components["schemas"]["nullable-community-health-file"]; + }; + /** + * Format: date-time + * @example 2017-02-28T19:09:29Z + */ + updated_at: string | null; + /** @example true */ + content_reports_enabled?: boolean; + }; + /** + * Commit Comparison + * @description Commit Comparison + */ + "commit-comparison": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/compare/master...topic + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17 + */ + permalink_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/compare/master...topic.patch + */ + patch_url: string; + base_commit: components["schemas"]["commit"]; + merge_base_commit: components["schemas"]["commit"]; + /** + * @example ahead + * @enum {string} + */ + status: "diverged" | "ahead" | "behind" | "identical"; + /** @example 4 */ + ahead_by: number; + /** @example 5 */ + behind_by: number; + /** @example 6 */ + total_commits: number; + commits: components["schemas"]["commit"][]; + files?: components["schemas"]["diff-entry"][]; + }; + /** + * Content Tree + * @description Content Tree + */ + "content-tree": { + type: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + entries?: { + type: string; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + } & { + content: unknown; + encoding: unknown; + }; + /** + * Content Directory + * @description A list of directory items + */ + "content-directory": { + type: string; + size: number; + name: string; + path: string; + content?: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }[]; + /** + * Content File + * @description Content File + */ + "content-file": { + type: string; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + /** @example "actual/actual.md" */ + target?: string; + /** @example "git://example.com/defunkt/dotjs.git" */ + submodule_git_url?: string; + }; + /** + * Symlink Content + * @description An object describing a symlink + */ + "content-symlink": { + type: string; + target: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * Symlink Content + * @description An object describing a symlink + */ + "content-submodule": { + type: string; + /** Format: uri */ + submodule_git_url: string; + size: number; + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + download_url: string | null; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + }; + /** + * File Commit + * @description File Commit + */ + "file-commit": { + content: { + name?: string; + path?: string; + sha?: string; + size?: number; + url?: string; + html_url?: string; + git_url?: string; + download_url?: string; + type?: string; + _links?: { + self?: string; + git?: string; + html?: string; + }; + } | null; + commit: { + sha?: string; + node_id?: string; + url?: string; + html_url?: string; + author?: { + date?: string; + name?: string; + email?: string; + }; + committer?: { + date?: string; + name?: string; + email?: string; + }; + message?: string; + tree?: { + url?: string; + sha?: string; + }; + parents?: { + url?: string; + html_url?: string; + sha?: string; + }[]; + verification?: { + verified?: boolean; + reason?: string; + signature?: string | null; + payload?: string | null; + }; + }; + }; + /** + * Contributor + * @description Contributor + */ + contributor: { + login?: string; + id?: number; + node_id?: string; + /** Format: uri */ + avatar_url?: string; + gravatar_id?: string | null; + /** Format: uri */ + url?: string; + /** Format: uri */ + html_url?: string; + /** Format: uri */ + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + /** Format: uri */ + subscriptions_url?: string; + /** Format: uri */ + organizations_url?: string; + /** Format: uri */ + repos_url?: string; + events_url?: string; + /** Format: uri */ + received_events_url?: string; + type: string; + site_admin?: boolean; + contributions: number; + email?: string; + name?: string; + }; + /** + * Dependabot Secret + * @description Set secrets for Dependabot. + */ + "dependabot-secret": { + /** + * @description The name of the secret. + * @example MY_ARTIFACTORY_PASSWORD + */ + name: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Dependency Graph Diff + * @description A diff of the dependencies between two commits. + */ + "dependency-graph-diff": { + /** @enum {string} */ + change_type: "added" | "removed"; + /** @example path/to/package-lock.json */ + manifest: string; + /** @example npm */ + ecosystem: string; + /** @example @actions/core */ + name: string; + /** @example 1.0.0 */ + version: string; + /** @example pkg:/npm/%40actions/core@1.1.0 */ + package_url: string | null; + /** @example MIT */ + license: string | null; + /** @example https://github.com/github/actions */ + source_repository_url: string | null; + vulnerabilities: { + /** @example critical */ + severity: string; + /** @example GHSA-rf4j-j272-fj86 */ + advisory_ghsa_id: string; + /** @example A summary of the advisory. */ + advisory_summary: string; + /** @example https://github.com/advisories/GHSA-rf4j-j272-fj86 */ + advisory_url: string; + }[]; + }[]; + /** + * metadata + * @description User-defined metadata to store domain-specific information limited to 8 keys with scalar values. + */ + metadata: { + [key: string]: Partial & Partial & Partial; + }; + /** + * Dependency + * @description A single package dependency. + */ + dependency: { + /** + * @description Package-url (PURL) of dependency. See https://github.com/package-url/purl-spec for more details. + * @example pkg:/npm/%40actions/http-client@1.0.11 + */ + package_url?: string; + metadata?: components["schemas"]["metadata"]; + /** + * @description A notation of whether a dependency is requested directly by this manifest or is a dependency of another dependency. + * @example direct + * @enum {string} + */ + relationship?: "direct" | "indirect"; + /** + * @description A notation of whether the dependency is required for the primary build artifact (runtime) or is only used for development. Future versions of this specification may allow for more granular scopes. + * @example runtime + * @enum {string} + */ + scope?: "runtime" | "development"; + /** + * @description Array of package-url (PURLs) of direct child dependencies. + * @example @actions/http-client + */ + dependencies?: string[]; + }; + /** + * manifest + * @description A collection of related dependencies declared in a file or representing a logical group of dependencies. + */ + manifest: { + /** + * @description The name of the manifest. + * @example package-lock.json + */ + name: string; + file?: { + /** + * @description The path of the manifest file relative to the root of the Git repository. + * @example /src/build/package-lock.json + */ + source_location?: string; + }; + metadata?: components["schemas"]["metadata"]; + resolved?: { [key: string]: components["schemas"]["dependency"] }; + }; + /** + * snapshot + * @description Create a new snapshot of a repository's dependencies. + */ + snapshot: { + /** @description The version of the repository snapshot submission. */ + version: number; + job: { + /** + * @description The external ID of the job. + * @example 5622a2b0-63f6-4732-8c34-a1ab27e102a11 + */ + id: string; + /** + * @description Correlator provides a key that is used to group snapshots submitted over time. Only the "latest" submitted snapshot for a given combination of `job.correlator` and `detector.name` will be considered when calculating a repository's current dependencies. Correlator should be as unique as it takes to distinguish all detection runs for a given "wave" of CI workflow you run. If you're using GitHub Actions, a good default value for this could be the environment variables GITHUB_WORKFLOW and GITHUB_JOB concatenated together. If you're using a build matrix, then you'll also need to add additional key(s) to distinguish between each submission inside a matrix variation. + * @example yourworkflowname_yourjobname + */ + correlator: string; + /** + * @description The url for the job. + * @example http://example.com/build + */ + html_url?: string; + }; + /** + * @description The commit SHA associated with this dependency snapshot. + * @example ddc951f4b1293222421f2c8df679786153acf689 + */ + sha: string; + /** + * @description The repository branch that triggered this snapshot. + * @example refs/heads/main + */ + ref: string; + /** @description A description of the detector used. */ + detector: { + /** + * @description The name of the detector used. + * @example docker buildtime detector + */ + name: string; + /** + * @description The version of the detector used. + * @example 1.0.0 + */ + version: string; + /** + * @description The url of the detector used. + * @example http://example.com/docker-buildtimer-detector + */ + url: string; + }; + metadata?: components["schemas"]["metadata"]; + /** @description A collection of package manifests */ + manifests?: { [key: string]: components["schemas"]["manifest"] }; + /** + * Format: date-time + * @description The time at which the snapshot was scanned. + * @example 2020-06-13T14:52:50-05:00 + */ + scanned: string; + }; + /** + * Deployment Status + * @description The status of a deployment. + */ + "deployment-status": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42/statuses/1 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDE2OkRlcGxveW1lbnRTdGF0dXMx */ + node_id: string; + /** + * @description The state of the status. + * @example success + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "pending" + | "success" + | "queued" + | "in_progress"; + creator: components["schemas"]["nullable-simple-user"]; + /** + * @description A short description of the status. + * @default + * @example Deployment finished successfully. + */ + description: string; + /** + * @description The environment of the deployment that the status is for. + * @default + * @example production + */ + environment?: string; + /** + * Format: uri + * @description Deprecated: the URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + target_url: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + created_at: string; + /** + * Format: date-time + * @example 2012-07-20T01:19:13Z + */ + updated_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/deployments/42 + */ + deployment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + /** + * Format: uri + * @description The URL for accessing your environment. + * @default + * @example https://staging.example.com/ + */ + environment_url?: string; + /** + * Format: uri + * @description The URL to associate with this status. + * @default + * @example https://example.com/deployment/42/output + */ + log_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * @description The amount of time to delay a job after the job is initially triggered. The time (in minutes) must be an integer between 0 and 43,200 (30 days). + * @example 30 + */ + "wait-timer": number; + /** @description The type of deployment branch policy for this environment. To allow all branches to deploy, set to `null`. */ + "deployment-branch-policy": { + /** @description Whether only branches with branch protection rules can deploy to this environment. If `protected_branches` is `true`, `custom_branch_policies` must be `false`; if `protected_branches` is `false`, `custom_branch_policies` must be `true`. */ + protected_branches: boolean; + /** @description Whether only branches that match the specified name patterns can deploy to this environment. If `custom_branch_policies` is `true`, `protected_branches` must be `false`; if `custom_branch_policies` is `false`, `protected_branches` must be `true`. */ + custom_branch_policies: boolean; + } | null; + /** + * Environment + * @description Details of a deployment environment + */ + environment: { + /** + * @description The id of the environment. + * @example 56780428 + */ + id: number; + /** @example MDExOkVudmlyb25tZW50NTY3ODA0Mjg= */ + node_id: string; + /** + * @description The name of the environment. + * @example staging + */ + name: string; + /** @example https://api.github.com/repos/github/hello-world/environments/staging */ + url: string; + /** @example https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging */ + html_url: string; + /** + * Format: date-time + * @description The time that the environment was created, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + created_at: string; + /** + * Format: date-time + * @description The time that the environment was last updated, in ISO 8601 format. + * @example 2020-11-23T22:00:40Z + */ + updated_at: string; + protection_rules?: (Partial<{ + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example wait_timer */ + type: string; + wait_timer?: components["schemas"]["wait-timer"]; + }> & + Partial<{ + /** @example 3755 */ + id: number; + /** @example MDQ6R2F0ZTM3NTU= */ + node_id: string; + /** @example required_reviewers */ + type: string; + /** @description The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: { + type?: components["schemas"]["deployment-reviewer-type"]; + reviewer?: Partial & + Partial; + }[]; + }> & + Partial<{ + /** @example 3515 */ + id: number; + /** @example MDQ6R2F0ZTM1MTU= */ + node_id: string; + /** @example branch_policy */ + type: string; + }>)[]; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy"]; + }; + /** + * Short Blob + * @description Short Blob + */ + "short-blob": { + url: string; + sha: string; + }; + /** + * Blob + * @description Blob + */ + blob: { + content: string; + encoding: string; + /** Format: uri */ + url: string; + sha: string; + size: number | null; + node_id: string; + highlighted_content?: string; + }; + /** + * Git Commit + * @description Low-level Git commit operations within a repository + */ + "git-commit": { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Git Reference + * @description Git references within a repository + */ + "git-ref": { + ref: string; + node_id: string; + /** Format: uri */ + url: string; + object: { + type: string; + /** + * @description SHA for the reference + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + }; + /** + * Git Tag + * @description Metadata for a Git tag + */ + "git-tag": { + /** @example MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw== */ + node_id: string; + /** + * @description Name of the tag + * @example v0.0.1 + */ + tag: string; + /** @example 940bd336248efae0f9ee5bc7b2d5c985887b16ac */ + sha: string; + /** + * Format: uri + * @description URL for the tag + * @example https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac + */ + url: string; + /** + * @description Message describing the purpose of the tag + * @example Initial public release + */ + message: string; + tagger: { + date: string; + email: string; + name: string; + }; + object: { + sha: string; + type: string; + /** Format: uri */ + url: string; + }; + verification?: components["schemas"]["verification"]; + }; + /** + * Git Tree + * @description The hierarchy between files in a Git repository. + */ + "git-tree": { + sha: string; + /** Format: uri */ + url: string; + truncated: boolean; + /** + * @description Objects specifying a tree structure + * @example [ + * { + * "path": "file.rb", + * "mode": "100644", + * "type": "blob", + * "size": 30, + * "sha": "44b4fc6d56897b048c772eb4087f854f46256132", + * "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", + * "properties": { + * "path": { + * "type": "string" + * }, + * "mode": { + * "type": "string" + * }, + * "type": { + * "type": "string" + * }, + * "size": { + * "type": "integer" + * }, + * "sha": { + * "type": "string" + * }, + * "url": { + * "type": "string" + * } + * }, + * "required": [ + * "path", + * "mode", + * "type", + * "sha", + * "url", + * "size" + * ] + * } + * ] + */ + tree: { + /** @example test/file.rb */ + path?: string; + /** @example 040000 */ + mode?: string; + /** @example tree */ + type?: string; + /** @example 23f6827669e43831def8a7ad935069c8bd418261 */ + sha?: string; + /** @example 12 */ + size?: number; + /** @example https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261 */ + url?: string; + }[]; + }; + /** Hook Response */ + "hook-response": { + code: number | null; + status: string | null; + message: string | null; + }; + /** + * Webhook + * @description Webhooks for repositories. + */ + hook: { + type: string; + /** + * @description Unique identifier of the webhook. + * @example 42 + */ + id: number; + /** + * @description The name of a valid service, use 'web' for a webhook. + * @example web + */ + name: string; + /** + * @description Determines whether the hook is actually triggered on pushes. + * @example true + */ + active: boolean; + /** + * @description Determines what events the hook is triggered for. Default: ['push']. + * @example [ + * "push", + * "pull_request" + * ] + */ + events: string[]; + config: { + /** @example "foo@bar.com" */ + email?: string; + /** @example "foo" */ + password?: string; + /** @example "roomer" */ + room?: string; + /** @example "foo" */ + subdomain?: string; + url?: components["schemas"]["webhook-config-url"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + /** @example "sha256" */ + digest?: string; + secret?: components["schemas"]["webhook-config-secret"]; + /** @example "abc" */ + token?: string; + }; + /** + * Format: date-time + * @example 2011-09-06T20:39:23Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-09-06T17:26:27Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1 + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/test + */ + test_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/pings + */ + ping_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries + */ + deliveries_url?: string; + last_response: components["schemas"]["hook-response"]; + }; + /** + * Import + * @description A repository import from an external source. + */ + import: { + vcs: string | null; + use_lfs?: boolean; + /** @description The URL of the originating repository. */ + vcs_url: string; + svc_root?: string; + tfvc_project?: string; + /** @enum {string} */ + status: + | "auth" + | "error" + | "none" + | "detecting" + | "choose" + | "auth_failed" + | "importing" + | "mapping" + | "waiting_to_push" + | "pushing" + | "complete" + | "setup" + | "unknown" + | "detection_found_multiple" + | "detection_found_nothing" + | "detection_needs_auth"; + status_text?: string | null; + failed_step?: string | null; + error_message?: string | null; + import_percent?: number | null; + commit_count?: number | null; + push_percent?: number | null; + has_large_files?: boolean; + large_files_size?: number; + large_files_count?: number; + project_choices?: { + vcs?: string; + tfvc_project?: string; + human_name?: string; + }[]; + message?: string; + authors_count?: number | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + authors_url: string; + /** Format: uri */ + repository_url: string; + svn_root?: string; + }; + /** + * Porter Author + * @description Porter Author + */ + "porter-author": { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + /** Format: uri */ + url: string; + /** Format: uri */ + import_url: string; + }; + /** + * Porter Large File + * @description Porter Large File + */ + "porter-large-file": { + ref_name: string; + path: string; + oid: string; + size: number; + }; + /** + * Issue + * @description Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + "nullable-issue": { + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue + * @example https://api.github.com/repositories/42/issues/1 + */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + /** + * @description Number uniquely identifying the issue within its repository + * @example 42 + */ + number: number; + /** + * @description State of the issue; either 'open' or 'closed' + * @example open + */ + state: string; + /** + * @description The reason for the current state + * @example not_planned + */ + state_reason?: string | null; + /** + * @description Title of the issue + * @example Widget creation fails in Safari on OS X 10.8 + */ + title: string; + /** + * @description Contents of the issue + * @example It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug? + */ + body?: string | null; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + * @example [ + * "bug", + * "registration" + * ] + */ + labels: ( + | string + | { + /** Format: int64 */ + id?: number; + node_id?: string; + /** Format: uri */ + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + } + )[]; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["nullable-milestone"]; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + /** Format: date-time */ + closed_at: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + draft?: boolean; + closed_by?: components["schemas"]["nullable-simple-user"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + author_association: components["schemas"]["author-association"]; + reactions?: components["schemas"]["reaction-rollup"]; + } | null; + /** + * Issue Event Label + * @description Issue Event Label + */ + "issue-event-label": { + name: string | null; + color: string | null; + }; + /** Issue Event Dismissed Review */ + "issue-event-dismissed-review": { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string | null; + }; + /** + * Issue Event Milestone + * @description Issue Event Milestone + */ + "issue-event-milestone": { + title: string; + }; + /** + * Issue Event Project Card + * @description Issue Event Project Card + */ + "issue-event-project-card": { + /** Format: uri */ + url: string; + id: number; + /** Format: uri */ + project_url: string; + project_id: number; + column_name: string; + previous_column_name?: string; + }; + /** + * Issue Event Rename + * @description Issue Event Rename + */ + "issue-event-rename": { + from: string; + to: string; + }; + /** + * Issue Event + * @description Issue Event + */ + "issue-event": { + /** @example 1 */ + id: number; + /** @example MDEwOklzc3VlRXZlbnQx */ + node_id: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/events/1 + */ + url: string; + actor: components["schemas"]["nullable-simple-user"]; + /** @example closed */ + event: string; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string | null; + /** @example https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_url: string | null; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + issue?: components["schemas"]["nullable-issue"]; + label?: components["schemas"]["issue-event-label"]; + assignee?: components["schemas"]["nullable-simple-user"]; + assigner?: components["schemas"]["nullable-simple-user"]; + review_requester?: components["schemas"]["nullable-simple-user"]; + requested_reviewer?: components["schemas"]["nullable-simple-user"]; + requested_team?: components["schemas"]["team"]; + dismissed_review?: components["schemas"]["issue-event-dismissed-review"]; + milestone?: components["schemas"]["issue-event-milestone"]; + project_card?: components["schemas"]["issue-event-project-card"]; + rename?: components["schemas"]["issue-event-rename"]; + author_association?: components["schemas"]["author-association"]; + lock_reason?: string | null; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + }; + /** + * Labeled Issue Event + * @description Labeled Issue Event + */ + "labeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Unlabeled Issue Event + * @description Unlabeled Issue Event + */ + "unlabeled-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + label: { + name: string; + color: string; + }; + }; + /** + * Assigned Issue Event + * @description Assigned Issue Event + */ + "assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Unassigned Issue Event + * @description Unassigned Issue Event + */ + "unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + assigner: components["schemas"]["simple-user"]; + }; + /** + * Milestoned Issue Event + * @description Milestoned Issue Event + */ + "milestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Demilestoned Issue Event + * @description Demilestoned Issue Event + */ + "demilestoned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + milestone: { + title: string; + }; + }; + /** + * Renamed Issue Event + * @description Renamed Issue Event + */ + "renamed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + rename: { + from: string; + to: string; + }; + }; + /** + * Review Requested Issue Event + * @description Review Requested Issue Event + */ + "review-requested-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Request Removed Issue Event + * @description Review Request Removed Issue Event + */ + "review-request-removed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + review_requester: components["schemas"]["simple-user"]; + requested_team?: components["schemas"]["team"]; + requested_reviewer?: components["schemas"]["simple-user"]; + }; + /** + * Review Dismissed Issue Event + * @description Review Dismissed Issue Event + */ + "review-dismissed-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + dismissed_review: { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string; + }; + }; + /** + * Locked Issue Event + * @description Locked Issue Event + */ + "locked-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + /** @example "off-topic" */ + lock_reason: string | null; + }; + /** + * Added to Project Issue Event + * @description Added to Project Issue Event + */ + "added-to-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Moved Column in Project Issue Event + * @description Moved Column in Project Issue Event + */ + "moved-column-in-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Removed from Project Issue Event + * @description Removed from Project Issue Event + */ + "removed-from-project-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Converted Note to Issue Issue Event + * @description Converted Note to Issue Issue Event + */ + "converted-note-to-issue-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["integration"]; + project_card?: { + id: number; + /** Format: uri */ + url: string; + project_id: number; + /** Format: uri */ + project_url: string; + column_name: string; + previous_column_name?: string; + }; + }; + /** + * Issue Event for Issue + * @description Issue Event for Issue + */ + "issue-event-for-issue": Partial< + components["schemas"]["labeled-issue-event"] + > & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial; + /** + * Label + * @description Color-coded labels help you categorize and filter your issues (just like labels in Gmail). + */ + label: { + /** + * Format: int64 + * @example 208045946 + */ + id: number; + /** @example MDU6TGFiZWwyMDgwNDU5NDY= */ + node_id: string; + /** + * Format: uri + * @description URL for the label + * @example https://api.github.com/repositories/42/labels/bug + */ + url: string; + /** + * @description The name of the label. + * @example bug + */ + name: string; + /** @example Something isn't working */ + description: string | null; + /** + * @description 6-character hex code, without the leading #, identifying the color + * @example FFFFFF + */ + color: string; + /** @example true */ + default: boolean; + }; + /** + * Timeline Comment Event + * @description Timeline Comment Event + */ + "timeline-comment-event": { + event: string; + actor: components["schemas"]["simple-user"]; + /** + * @description Unique identifier of the issue comment + * @example 42 + */ + id: number; + node_id: string; + /** + * Format: uri + * @description URL for the issue comment + * @example https://api.github.com/repositories/42/issues/comments/1 + */ + url: string; + /** + * @description Contents of the issue comment + * @example What version of Safari were you using when you observed this bug? + */ + body?: string; + body_text?: string; + body_html?: string; + /** Format: uri */ + html_url: string; + user: components["schemas"]["simple-user"]; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** Format: uri */ + issue_url: string; + author_association: components["schemas"]["author-association"]; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Timeline Cross Referenced Event + * @description Timeline Cross Referenced Event + */ + "timeline-cross-referenced-event": { + event: string; + actor?: components["schemas"]["simple-user"]; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + source: { + type?: string; + issue?: components["schemas"]["issue"]; + }; + }; + /** + * Timeline Committed Event + * @description Timeline Committed Event + */ + "timeline-committed-event": { + event?: string; + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + node_id: string; + /** Format: uri */ + url: string; + /** @description Identifying information for the git-user */ + author: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** @description Identifying information for the git-user */ + committer: { + /** + * Format: date-time + * @description Timestamp of the commit + * @example 2014-08-09T08:02:04+12:00 + */ + date: string; + /** + * @description Git email address of the user + * @example monalisa.octocat@example.com + */ + email: string; + /** + * @description Name of the git user + * @example Monalisa Octocat + */ + name: string; + }; + /** + * @description Message describing the purpose of the commit + * @example Fix #42 + */ + message: string; + tree: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + }; + parents: { + /** + * @description SHA for the commit + * @example 7638417db6d59f3c431d3e1f261cc637155684cd + */ + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string | null; + payload: string | null; + }; + /** Format: uri */ + html_url: string; + }; + /** + * Timeline Reviewed Event + * @description Timeline Reviewed Event + */ + "timeline-reviewed-event": { + event: string; + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string | null; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Pull Request Review Comment + * @description Pull Request Review Comments are comments on a portion of the Pull Request's diff. + */ + "pull-request-review-comment": { + /** + * @description URL for the pull request review comment + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** + * @description The ID of the pull request review to which the comment belongs. + * @example 42 + */ + pull_request_review_id: number | null; + /** + * @description The ID of the pull request review comment. + * @example 1 + */ + id: number; + /** + * @description The node ID of the pull request review comment. + * @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw + */ + node_id: string; + /** + * @description The diff of the line that the comment refers to. + * @example @@ -16,33 +16,40 @@ public class Connection : IConnection... + */ + diff_hunk: string; + /** + * @description The relative path of the file to which the comment applies. + * @example config/database.yaml + */ + path: string; + /** + * @description The line index in the diff to which the comment applies. This field is deprecated; use `line` instead. + * @example 1 + */ + position: number; + /** + * @description The index of the original line in the diff to which the comment applies. This field is deprecated; use `original_line` instead. + * @example 4 + */ + original_position: number; + /** + * @description The SHA of the commit to which the comment applies. + * @example 6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + commit_id: string; + /** + * @description The SHA of the original commit to which the comment applies. + * @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 + */ + original_commit_id: string; + /** + * @description The comment ID to reply to. + * @example 8 + */ + in_reply_to_id?: number; + user: components["schemas"]["simple-user"]; + /** + * @description The text of the comment. + * @example We should probably include a check for null values here. + */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @description HTML URL for the pull request review comment. + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @description URL for the pull request that the review comment belongs to. + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + href: string; + }; + html: { + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + href: string; + }; + pull_request: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + href: string; + }; + }; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: ("LEFT" | "RIGHT") | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + reactions?: components["schemas"]["reaction-rollup"]; + /** @example "

comment body

" */ + body_html?: string; + /** @example "comment body" */ + body_text?: string; + }; + /** + * Timeline Line Commented Event + * @description Timeline Line Commented Event + */ + "timeline-line-commented-event": { + event?: string; + node_id?: string; + comments?: components["schemas"]["pull-request-review-comment"][]; + }; + /** + * Timeline Commit Commented Event + * @description Timeline Commit Commented Event + */ + "timeline-commit-commented-event": { + event?: string; + node_id?: string; + commit_id?: string; + comments?: components["schemas"]["commit-comment"][]; + }; + /** + * Timeline Assigned Issue Event + * @description Timeline Assigned Issue Event + */ + "timeline-assigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * Timeline Unassigned Issue Event + * @description Timeline Unassigned Issue Event + */ + "timeline-unassigned-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + assignee: components["schemas"]["simple-user"]; + }; + /** + * State Change Issue Event + * @description State Change Issue Event + */ + "state-change-issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"]; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + performed_via_github_app: components["schemas"]["nullable-integration"]; + state_reason?: string | null; + }; + /** + * Timeline Event + * @description Timeline Event + */ + "timeline-issue-events": Partial< + components["schemas"]["labeled-issue-event"] + > & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial & + Partial; + /** + * Deploy Key + * @description An SSH key granting access to a single repository. + */ + "deploy-key": { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; + }; + /** + * Language + * @description Language + */ + language: { [key: string]: number }; + /** + * License Content + * @description License Content + */ + "license-content": { + name: string; + path: string; + sha: string; + size: number; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + git_url: string | null; + /** Format: uri */ + download_url: string | null; + type: string; + content: string; + encoding: string; + _links: { + /** Format: uri */ + git: string | null; + /** Format: uri */ + html: string | null; + /** Format: uri */ + self: string; + }; + license: components["schemas"]["nullable-license-simple"]; + }; + /** + * Merged upstream + * @description Results of a successful merge upstream request + */ + "merged-upstream": { + message?: string; + /** @enum {string} */ + merge_type?: "merge" | "fast-forward" | "none"; + base_branch?: string; + }; + /** + * Milestone + * @description A collection of related issues and pull requests. + */ + milestone: { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1 + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/milestones/v1.0 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/milestones/1/labels + */ + labels_url: string; + /** @example 1002604 */ + id: number; + /** @example MDk6TWlsZXN0b25lMTAwMjYwNA== */ + node_id: string; + /** + * @description The number of the milestone. + * @example 42 + */ + number: number; + /** + * @description The state of the milestone. + * @default open + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** + * @description The title of the milestone. + * @example v1.0 + */ + title: string; + /** @example Tracking milestone for version 1.0 */ + description: string | null; + creator: components["schemas"]["nullable-simple-user"]; + /** @example 4 */ + open_issues: number; + /** @example 8 */ + closed_issues: number; + /** + * Format: date-time + * @example 2011-04-10T20:09:31Z + */ + created_at: string; + /** + * Format: date-time + * @example 2014-03-03T18:58:10Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2013-02-12T13:22:01Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2012-10-09T23:39:01Z + */ + due_on: string | null; + }; + /** Pages Source Hash */ + "pages-source-hash": { + branch: string; + path: string; + }; + /** Pages Https Certificate */ + "pages-https-certificate": { + /** + * @example approved + * @enum {string} + */ + state: + | "new" + | "authorization_created" + | "authorization_pending" + | "authorized" + | "authorization_revoked" + | "issued" + | "uploaded" + | "approved" + | "errored" + | "bad_authz" + | "destroy_pending" + | "dns_changed"; + /** @example Certificate is approved */ + description: string; + /** + * @description Array of the domain set and its alternate name (if it is configured) + * @example [ + * "example.com", + * "www.example.com" + * ] + */ + domains: string[]; + /** Format: date */ + expires_at?: string; + }; + /** + * GitHub Pages + * @description The configuration for GitHub Pages for a repository. + */ + page: { + /** + * Format: uri + * @description The API address for accessing this Page resource. + * @example https://api.github.com/repos/github/hello-world/pages + */ + url: string; + /** + * @description The status of the most recent build of the Page. + * @example built + * @enum {string|null} + */ + status: ("built" | "building" | "errored") | null; + /** + * @description The Pages site's custom domain + * @example example.com + */ + cname: string | null; + /** + * @description The state if the domain is verified + * @example pending + * @enum {string|null} + */ + protected_domain_state?: ("pending" | "verified" | "unverified") | null; + /** + * Format: date-time + * @description The timestamp when a pending domain becomes unverified. + */ + pending_domain_unverified_at?: string | null; + /** + * @description Whether the Page has a custom 404 page. + * @default false + * @example false + */ + custom_404: boolean; + /** + * Format: uri + * @description The web address the Page can be accessed from. + * @example https://example.com + */ + html_url?: string; + /** + * @description The process in which the Page will be built. + * @example legacy + * @enum {string|null} + */ + build_type?: ("legacy" | "workflow") | null; + source?: components["schemas"]["pages-source-hash"]; + /** + * @description Whether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site. + * @example true + */ + public: boolean; + https_certificate?: components["schemas"]["pages-https-certificate"]; + /** + * @description Whether https is enabled on the domain + * @example true + */ + https_enforced?: boolean; + }; + /** + * Page Build + * @description Page Build + */ + "page-build": { + /** Format: uri */ + url: string; + status: string; + error: { + message: string | null; + }; + pusher: components["schemas"]["nullable-simple-user"]; + commit: string; + duration: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + }; + /** + * Page Build Status + * @description Page Build Status + */ + "page-build-status": { + /** + * Format: uri + * @example https://api.github.com/repos/github/hello-world/pages/builds/latest + */ + url: string; + /** @example queued */ + status: string; + }; + /** + * Pages Health Check Status + * @description Pages Health Check Status + */ + "pages-health-check": { + domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + }; + alt_domain?: { + host?: string; + uri?: string; + nameservers?: string; + dns_resolves?: boolean; + is_proxied?: boolean | null; + is_cloudflare_ip?: boolean | null; + is_fastly_ip?: boolean | null; + is_old_ip_address?: boolean | null; + is_a_record?: boolean | null; + has_cname_record?: boolean | null; + has_mx_records_present?: boolean | null; + is_valid_domain?: boolean; + is_apex_domain?: boolean; + should_be_a_record?: boolean | null; + is_cname_to_github_user_domain?: boolean | null; + is_cname_to_pages_dot_github_dot_com?: boolean | null; + is_cname_to_fastly?: boolean | null; + is_pointed_to_github_pages_ip?: boolean | null; + is_non_github_pages_ip_present?: boolean | null; + is_pages_domain?: boolean; + is_served_by_pages?: boolean | null; + is_valid?: boolean; + reason?: string | null; + responds_to_https?: boolean; + enforces_https?: boolean; + https_error?: string | null; + is_https_eligible?: boolean | null; + caa_error?: string | null; + } | null; + }; + /** + * Team Simple + * @description Groups of organization members that gives permissions on specified repositories. + */ + "team-simple": { + /** + * @description Unique identifier of the team + * @example 1 + */ + id: number; + /** @example MDQ6VGVhbTE= */ + node_id: string; + /** + * Format: uri + * @description URL for the team + * @example https://api.github.com/organizations/1/team/1 + */ + url: string; + /** @example https://api.github.com/organizations/1/team/1/members{/member} */ + members_url: string; + /** + * @description Name of the team + * @example Justice League + */ + name: string; + /** + * @description Description of the team + * @example A great team. + */ + description: string | null; + /** + * @description Permission that the team will have for its repositories + * @example admin + */ + permission: string; + /** + * @description The level of privacy this team should have + * @example closed + */ + privacy?: string; + /** + * Format: uri + * @example https://github.com/orgs/rails/teams/core + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/organizations/1/team/1/repos + */ + repositories_url: string; + /** @example justice-league */ + slug: string; + /** + * @description Distinguished Name (DN) that team maps to within LDAP environment + * @example uid=example,ou=users,dc=github,dc=com + */ + ldap_dn?: string; + }; + /** + * Pull Request + * @description Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary. + */ + "pull-request": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347 + */ + url: string; + /** @example 1 */ + id: number; + /** @example MDExOlB1bGxSZXF1ZXN0MQ== */ + node_id: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347 + */ + html_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.diff + */ + diff_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1347.patch + */ + patch_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347 + */ + issue_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits + */ + commits_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments + */ + review_comments_url: string; + /** @example https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number} */ + review_comment_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/issues/1347/comments + */ + comments_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + */ + statuses_url: string; + /** + * @description Number uniquely identifying the pull request within its repository. + * @example 42 + */ + number: number; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @example open + * @enum {string} + */ + state: "open" | "closed"; + /** @example true */ + locked: boolean; + /** + * @description The title of the pull request. + * @example Amazing new feature + */ + title: string; + user: components["schemas"]["nullable-simple-user"]; + /** @example Please pull these awesome changes */ + body: string | null; + labels: { + /** Format: int64 */ + id: number; + node_id: string; + url: string; + name: string; + description: string | null; + color: string; + default: boolean; + }[]; + milestone: components["schemas"]["nullable-milestone"]; + /** @example too heated */ + active_lock_reason?: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + updated_at: string; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + closed_at: string | null; + /** + * Format: date-time + * @example 2011-01-26T19:01:12Z + */ + merged_at: string | null; + /** @example e5bd3914e2e596debea16f433f57875b5b90bcd6 */ + merge_commit_sha: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team-simple"][] | null; + head: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: { + key: string; + name: string; + /** Format: uri */ + url: string | null; + spdx_id: string | null; + node_id: string; + } | null; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + is_template?: boolean; + } | null; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + base: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + deployments_url: string; + description: string | null; + /** Format: uri */ + downloads_url: string; + /** Format: uri */ + events_url: string; + fork: boolean; + /** Format: uri */ + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + /** Format: uri */ + hooks_url: string; + /** Format: uri */ + html_url: string; + id: number; + is_template?: boolean; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + /** Format: uri */ + stargazers_url: string; + statuses_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + /** Format: uri */ + tags_url: string; + /** Format: uri */ + teams_url: string; + trees_url: string; + /** Format: uri */ + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + /** Format: uri */ + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + /** Format: uri */ + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: components["schemas"]["nullable-license-simple"]; + /** Format: date-time */ + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + /** Format: uri */ + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + allow_forking?: boolean; + }; + sha: string; + user: { + /** Format: uri */ + avatar_url: string; + events_url: string; + /** Format: uri */ + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + login: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + received_events_url: string; + /** Format: uri */ + repos_url: string; + site_admin: boolean; + starred_url: string; + /** Format: uri */ + subscriptions_url: string; + type: string; + /** Format: uri */ + url: string; + }; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: components["schemas"]["author-association"]; + auto_merge: components["schemas"]["auto-merge"]; + /** + * @description Indicates whether or not the pull request is a draft. + * @example false + */ + draft?: boolean; + merged: boolean; + /** @example true */ + mergeable: boolean | null; + /** @example true */ + rebaseable?: boolean | null; + /** @example clean */ + mergeable_state: string; + merged_by: components["schemas"]["nullable-simple-user"]; + /** @example 10 */ + comments: number; + /** @example 0 */ + review_comments: number; + /** + * @description Indicates whether maintainers can modify the pull request. + * @example true + */ + maintainer_can_modify: boolean; + /** @example 3 */ + commits: number; + /** @example 100 */ + additions: number; + /** @example 3 */ + deletions: number; + /** @example 5 */ + changed_files: number; + }; + /** + * Pull Request Merge Result + * @description Pull Request Merge Result + */ + "pull-request-merge-result": { + sha: string; + merged: boolean; + message: string; + }; + /** + * Pull Request Review Request + * @description Pull Request Review Request + */ + "pull-request-review-request": { + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + }; + /** + * Pull Request Review + * @description Pull Request Reviews are reviews on pull requests. + */ + "pull-request-review": { + /** + * @description Unique identifier of the review + * @example 42 + */ + id: number; + /** @example MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA= */ + node_id: string; + user: components["schemas"]["nullable-simple-user"]; + /** + * @description The text of the review. + * @example This looks great. + */ + body: string; + /** @example CHANGES_REQUESTED */ + state: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/12 + */ + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + /** Format: date-time */ + submitted_at?: string; + /** + * @description A commit SHA for the review. + * @example 54bb654c9e6025347f57900a4a5c2313a96b8035 + */ + commit_id: string; + body_html?: string; + body_text?: string; + author_association: components["schemas"]["author-association"]; + }; + /** + * Legacy Review Comment + * @description Legacy Review Comment + */ + "review-comment": { + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + */ + url: string; + /** @example 42 */ + pull_request_review_id: number | null; + /** @example 10 */ + id: number; + /** @example MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw */ + node_id: string; + /** @example @@ -16,33 +16,40 @@ public class Connection : IConnection... */ + diff_hunk: string; + /** @example file1.txt */ + path: string; + /** @example 1 */ + position: number | null; + /** @example 4 */ + original_position: number; + /** @example 6dcb09b5b57875f334f61aebed695e2e4193db5e */ + commit_id: string; + /** @example 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840 */ + original_commit_id: string; + /** @example 8 */ + in_reply_to_id?: number; + user: components["schemas"]["nullable-simple-user"]; + /** @example Great stuff */ + body: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + created_at: string; + /** + * Format: date-time + * @example 2011-04-14T16:00:49Z + */ + updated_at: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/Hello-World/pulls/1 + */ + pull_request_url: string; + author_association: components["schemas"]["author-association"]; + _links: { + self: components["schemas"]["link"]; + html: components["schemas"]["link"]; + pull_request: components["schemas"]["link"]; + }; + body_text?: string; + body_html?: string; + reactions?: components["schemas"]["reaction-rollup"]; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** + * @description The side of the first line of the range for a multi-line comment. + * @default RIGHT + * @enum {string|null} + */ + start_side?: ("LEFT" | "RIGHT") | null; + /** + * @description The line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + line?: number; + /** + * @description The original line of the blob to which the comment applies. The last line of the range for a multi-line comment + * @example 2 + */ + original_line?: number; + /** + * @description The first line of the range for a multi-line comment. + * @example 2 + */ + start_line?: number | null; + /** + * @description The original first line of the range for a multi-line comment. + * @example 2 + */ + original_start_line?: number | null; + }; + /** + * Release Asset + * @description Data related to a release. + */ + "release-asset": { + /** Format: uri */ + url: string; + /** Format: uri */ + browser_download_url: string; + id: number; + node_id: string; + /** + * @description The file name of the asset. + * @example Team Environment + */ + name: string; + label: string | null; + /** + * @description State of the release asset. + * @enum {string} + */ + state: "uploaded" | "open"; + content_type: string; + size: number; + download_count: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + uploader: components["schemas"]["nullable-simple-user"]; + }; + /** + * Release + * @description A release. + */ + release: { + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + assets_url: string; + upload_url: string; + /** Format: uri */ + tarball_url: string | null; + /** Format: uri */ + zipball_url: string | null; + id: number; + node_id: string; + /** + * @description The name of the tag. + * @example v1.0.0 + */ + tag_name: string; + /** + * @description Specifies the commitish value that determines where the Git tag is created from. + * @example master + */ + target_commitish: string; + name: string | null; + body?: string | null; + /** + * @description true to create a draft (unpublished) release, false to create a published one. + * @example false + */ + draft: boolean; + /** + * @description Whether to identify the release as a prerelease or a full release. + * @example false + */ + prerelease: boolean; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + published_at: string | null; + author: components["schemas"]["simple-user"]; + assets: components["schemas"]["release-asset"][]; + body_html?: string; + body_text?: string; + mentions_count?: number; + /** + * Format: uri + * @description The URL of the release discussion. + */ + discussion_url?: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Generated Release Notes Content + * @description Generated name and body describing a release + */ + "release-notes-content": { + /** + * @description The generated name of the release + * @example Release v1.0.0 is now available! + */ + name: string; + /** @description The generated body describing the contents of the release supporting markdown formatting */ + body: string; + }; + "secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + updated_at?: components["schemas"]["alert-updated-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + /** + * Format: uri + * @description The REST API URL of the code locations for this alert. + */ + locations_url?: string; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * Format: date-time + * @description The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["nullable-simple-user"]; + /** @description The type of secret that secret scanning detected. */ + secret_type?: string; + /** + * @description User-friendly name for the detected secret, matching the `secret_type`. + * For a list of built-in patterns, see "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)." + */ + secret_type_display_name?: string; + /** @description The secret that was detected. */ + secret?: string; + /** @description Whether push protection was bypassed for the detected secret. */ + push_protection_bypassed?: boolean | null; + push_protection_bypassed_by?: components["schemas"]["nullable-simple-user"]; + /** + * Format: date-time + * @description The time that push protection was bypassed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + push_protection_bypassed_at?: string | null; + }; + /** @description Represents a 'commit' secret scanning location type. This location type shows that a secret was detected inside a commit to a repository. */ + "secret-scanning-location-commit": { + /** + * @description The file path in the repository + * @example /example/secrets.txt + */ + path: string; + /** @description Line number at which the secret starts in the file */ + start_line: number; + /** @description Line number at which the secret ends in the file */ + end_line: number; + /** @description The column at which the secret starts within the start line when the file is interpreted as 8BIT ASCII */ + start_column: number; + /** @description The column at which the secret ends within the end line when the file is interpreted as 8BIT ASCII */ + end_column: number; + /** + * @description SHA-1 hash ID of the associated blob + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + blob_sha: string; + /** @description The API URL to get the associated blob resource */ + blob_url: string; + /** + * @description SHA-1 hash ID of the associated commit + * @example af5626b4a114abcb82d63db7c8082c3c4756e51b + */ + commit_sha: string; + /** @description The API URL to get the associated commit resource */ + commit_url: string; + }; + "secret-scanning-location": { + /** + * @description The location type. Because secrets may be found in different types of resources (ie. code, comments, issues), this field identifies the type of resource where the secret was found. + * @example commit + * @enum {string} + */ + type: "commit"; + details: components["schemas"]["secret-scanning-location-commit"]; + }; + /** + * Stargazer + * @description Stargazer + */ + stargazer: { + /** Format: date-time */ + starred_at: string; + user: components["schemas"]["nullable-simple-user"]; + }; + /** + * Code Frequency Stat + * @description Code Frequency Stat + */ + "code-frequency-stat": number[]; + /** + * Commit Activity + * @description Commit Activity + */ + "commit-activity": { + /** + * @example [ + * 0, + * 3, + * 26, + * 20, + * 39, + * 1, + * 0 + * ] + */ + days: number[]; + /** @example 89 */ + total: number; + /** @example 1336280400 */ + week: number; + }; + /** + * Contributor Activity + * @description Contributor Activity + */ + "contributor-activity": { + author: components["schemas"]["nullable-simple-user"]; + /** @example 135 */ + total: number; + /** + * @example [ + * { + * "w": "1367712000", + * "a": 6898, + * "d": 77, + * "c": 10 + * } + * ] + */ + weeks: { + w?: number; + a?: number; + d?: number; + c?: number; + }[]; + }; + /** Participation Stats */ + "participation-stats": { + all: number[]; + owner: number[]; + }; + /** + * Repository Invitation + * @description Repository invitations let you manage who you collaborate with. + */ + "repository-subscription": { + /** + * @description Determines if notifications should be received from this repository. + * @example true + */ + subscribed: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored: boolean; + reason: string | null; + /** + * Format: date-time + * @example 2012-10-06T21:34:12Z + */ + created_at: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example/subscription + */ + url: string; + /** + * Format: uri + * @example https://api.github.com/repos/octocat/example + */ + repository_url: string; + }; + /** + * Tag + * @description Tag + */ + tag: { + /** @example v0.1 */ + name: string; + commit: { + sha: string; + /** Format: uri */ + url: string; + }; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/zipball/v0.1 + */ + zipball_url: string; + /** + * Format: uri + * @example https://github.com/octocat/Hello-World/tarball/v0.1 + */ + tarball_url: string; + node_id: string; + }; + /** + * Tag protection + * @description Tag protection + */ + "tag-protection": { + /** @example 2 */ + id?: number; + /** @example 2011-01-26T19:01:12Z */ + created_at?: string; + /** @example 2011-01-26T19:01:12Z */ + updated_at?: string; + /** @example true */ + enabled?: boolean; + /** @example v1.* */ + pattern: string; + }; + /** + * Topic + * @description A topic aggregates entities that are related to a subject. + */ + topic: { + names: string[]; + }; + /** Traffic */ + traffic: { + /** Format: date-time */ + timestamp: string; + uniques: number; + count: number; + }; + /** + * Clone Traffic + * @description Clone Traffic + */ + "clone-traffic": { + /** @example 173 */ + count: number; + /** @example 128 */ + uniques: number; + clones: components["schemas"]["traffic"][]; + }; + /** + * Content Traffic + * @description Content Traffic + */ + "content-traffic": { + /** @example /github/hubot */ + path: string; + /** @example github/hubot: A customizable life embetterment robot. */ + title: string; + /** @example 3542 */ + count: number; + /** @example 2225 */ + uniques: number; + }; + /** + * Referrer Traffic + * @description Referrer Traffic + */ + "referrer-traffic": { + /** @example Google */ + referrer: string; + /** @example 4 */ + count: number; + /** @example 3 */ + uniques: number; + }; + /** + * View Traffic + * @description View Traffic + */ + "view-traffic": { + /** @example 14850 */ + count: number; + /** @example 3782 */ + uniques: number; + views: components["schemas"]["traffic"][]; + }; + "scim-group-list-enterprise": { + schemas: string[]; + totalResults: number; + itemsPerPage: number; + startIndex: number; + Resources: { + schemas: string[]; + id: string; + externalId?: string | null; + displayName?: string; + members?: { + value?: string; + $ref?: string; + display?: string; + }[]; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }[]; + }; + "scim-enterprise-group": { + schemas: string[]; + id: string; + externalId?: string | null; + displayName?: string; + members?: { + value?: string; + $ref?: string; + display?: string; + }[]; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }; + "scim-user-list-enterprise": { + schemas: string[]; + totalResults: number; + itemsPerPage: number; + startIndex: number; + Resources: { + schemas: string[]; + id: string; + externalId?: string; + userName?: string; + name?: { + givenName?: string; + familyName?: string; + }; + emails?: { + value?: string; + primary?: boolean; + type?: string; + }[]; + groups?: { + value?: string; + }[]; + active?: boolean; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }[]; + }; + "scim-enterprise-user": { + schemas: string[]; + id: string; + externalId?: string; + userName?: string; + name?: { + givenName?: string; + familyName?: string; + }; + emails?: { + value?: string; + type?: string; + primary?: boolean; + }[]; + groups?: { + value?: string; + }[]; + active?: boolean; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }; + /** + * SCIM /Users + * @description SCIM /Users provisioning endpoints + */ + "scim-user": { + /** @description SCIM schema used. */ + schemas: string[]; + /** + * @description Unique identifier of an external identity + * @example 1b78eada-9baa-11e6-9eb6-a431576d590e + */ + id: string; + /** + * @description The ID of the User. + * @example a7b0f98395 + */ + externalId: string | null; + /** + * @description Configured by the admin. Could be an email, login, or username + * @example someone@example.com + */ + userName: string | null; + /** + * @description The name of the user, suitable for display to end-users + * @example Jon Doe + */ + displayName?: string | null; + /** + * @example { + * "givenName": "Jane", + * "familyName": "User" + * } + */ + name: { + givenName: string | null; + familyName: string | null; + formatted?: string | null; + }; + /** + * @description user emails + * @example [ + * { + * "value": "someone@example.com", + * "primary": true + * }, + * { + * "value": "another@example.com", + * "primary": false + * } + * ] + */ + emails: { + value: string; + primary?: boolean; + }[]; + /** + * @description The active status of the User. + * @example true + */ + active: boolean; + meta: { + /** @example User */ + resourceType?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + created?: string; + /** + * Format: date-time + * @example 2019-01-24T22:45:36.000Z + */ + lastModified?: string; + /** + * Format: uri + * @example https://api.github.com/scim/v2/organizations/myorg-123abc55141bfd8f/Users/c42772b5-2029-11e9-8543-9264a97dec8d + */ + location?: string; + }; + /** @description The ID of the organization. */ + organization_id?: number; + /** + * @description Set of operations to be performed + * @example [ + * { + * "op": "replace", + * "value": { + * "active": false + * } + * } + * ] + */ + operations?: { + /** @enum {string} */ + op: "add" | "remove" | "replace"; + path?: string; + value?: string | { [key: string]: unknown } | unknown[]; + }[]; + /** @description associated groups */ + groups?: { + value?: string; + display?: string; + }[]; + }; + /** + * SCIM User List + * @description SCIM User List + */ + "scim-user-list": { + /** @description SCIM schema used. */ + schemas: string[]; + /** @example 3 */ + totalResults: number; + /** @example 10 */ + itemsPerPage: number; + /** @example 1 */ + startIndex: number; + Resources: components["schemas"]["scim-user"][]; + }; + /** Search Result Text Matches */ + "search-result-text-matches": { + object_url?: string; + object_type?: string | null; + property?: string; + fragment?: string; + matches?: { + text?: string; + indices?: number[]; + }[]; + }[]; + /** + * Code Search Result Item + * @description Code Search Result Item + */ + "code-search-result-item": { + name: string; + path: string; + sha: string; + /** Format: uri */ + url: string; + /** Format: uri */ + git_url: string; + /** Format: uri */ + html_url: string; + repository: components["schemas"]["minimal-repository"]; + score: number; + file_size?: number; + language?: string | null; + /** Format: date-time */ + last_modified_at?: string; + /** + * @example [ + * "73..77", + * "77..78" + * ] + */ + line_numbers?: string[]; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Commit Search Result Item + * @description Commit Search Result Item + */ + "commit-search-result-item": { + /** Format: uri */ + url: string; + sha: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + comments_url: string; + commit: { + author: { + name: string; + email: string; + /** Format: date-time */ + date: string; + }; + committer: components["schemas"]["nullable-git-user"]; + comment_count: number; + message: string; + tree: { + sha: string; + /** Format: uri */ + url: string; + }; + /** Format: uri */ + url: string; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["nullable-simple-user"]; + committer: components["schemas"]["nullable-git-user"]; + parents: { + url?: string; + html_url?: string; + sha?: string; + }[]; + repository: components["schemas"]["minimal-repository"]; + score: number; + node_id: string; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Issue Search Result Item + * @description Issue Search Result Item + */ + "issue-search-result-item": { + /** Format: uri */ + url: string; + /** Format: uri */ + repository_url: string; + labels_url: string; + /** Format: uri */ + comments_url: string; + /** Format: uri */ + events_url: string; + /** Format: uri */ + html_url: string; + id: number; + node_id: string; + number: number; + title: string; + locked: boolean; + active_lock_reason?: string | null; + assignees?: components["schemas"]["simple-user"][] | null; + user: components["schemas"]["nullable-simple-user"]; + labels: { + /** Format: int64 */ + id?: number; + node_id?: string; + url?: string; + name?: string; + color?: string; + default?: boolean; + description?: string | null; + }[]; + state: string; + state_reason?: string | null; + assignee: components["schemas"]["nullable-simple-user"]; + milestone: components["schemas"]["nullable-milestone"]; + comments: number; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + closed_at: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + pull_request?: { + /** Format: date-time */ + merged_at?: string | null; + /** Format: uri */ + diff_url: string | null; + /** Format: uri */ + html_url: string | null; + /** Format: uri */ + patch_url: string | null; + /** Format: uri */ + url: string | null; + }; + body?: string; + score: number; + author_association: components["schemas"]["author-association"]; + draft?: boolean; + repository?: components["schemas"]["repository"]; + body_html?: string; + body_text?: string; + /** Format: uri */ + timeline_url?: string; + performed_via_github_app?: components["schemas"]["nullable-integration"]; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Label Search Result Item + * @description Label Search Result Item + */ + "label-search-result-item": { + id: number; + node_id: string; + /** Format: uri */ + url: string; + name: string; + color: string; + default: boolean; + description: string | null; + score: number; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Repo Search Result Item + * @description Repo Search Result Item + */ + "repo-search-result-item": { + id: number; + node_id: string; + name: string; + full_name: string; + owner: components["schemas"]["nullable-simple-user"]; + private: boolean; + /** Format: uri */ + html_url: string; + description: string | null; + fork: boolean; + /** Format: uri */ + url: string; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + /** Format: date-time */ + pushed_at: string; + /** Format: uri */ + homepage: string | null; + size: number; + stargazers_count: number; + watchers_count: number; + language: string | null; + forks_count: number; + open_issues_count: number; + master_branch?: string; + default_branch: string; + score: number; + /** Format: uri */ + forks_url: string; + keys_url: string; + collaborators_url: string; + /** Format: uri */ + teams_url: string; + /** Format: uri */ + hooks_url: string; + issue_events_url: string; + /** Format: uri */ + events_url: string; + assignees_url: string; + branches_url: string; + /** Format: uri */ + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + /** Format: uri */ + languages_url: string; + /** Format: uri */ + stargazers_url: string; + /** Format: uri */ + contributors_url: string; + /** Format: uri */ + subscribers_url: string; + /** Format: uri */ + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + /** Format: uri */ + merges_url: string; + archive_url: string; + /** Format: uri */ + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + /** Format: uri */ + deployments_url: string; + git_url: string; + ssh_url: string; + clone_url: string; + /** Format: uri */ + svn_url: string; + forks: number; + open_issues: number; + watchers: number; + topics?: string[]; + /** Format: uri */ + mirror_url: string | null; + has_issues: boolean; + has_projects: boolean; + has_pages: boolean; + has_wiki: boolean; + has_downloads: boolean; + archived: boolean; + /** @description Returns whether or not this repository disabled. */ + disabled: boolean; + /** @description The repository visibility: public, private, or internal. */ + visibility?: string; + license: components["schemas"]["nullable-license-simple"]; + permissions?: { + admin: boolean; + maintain?: boolean; + push: boolean; + triage?: boolean; + pull: boolean; + }; + text_matches?: components["schemas"]["search-result-text-matches"]; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + allow_auto_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_forking?: boolean; + is_template?: boolean; + }; + /** + * Topic Search Result Item + * @description Topic Search Result Item + */ + "topic-search-result-item": { + name: string; + display_name: string | null; + short_description: string | null; + description: string | null; + created_by: string | null; + released: string | null; + /** Format: date-time */ + created_at: string; + /** Format: date-time */ + updated_at: string; + featured: boolean; + curated: boolean; + score: number; + repository_count?: number | null; + /** Format: uri */ + logo_url?: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + related?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + aliases?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + }; + /** + * User Search Result Item + * @description User Search Result Item + */ + "user-search-result-item": { + login: string; + id: number; + node_id: string; + /** Format: uri */ + avatar_url: string; + gravatar_id: string | null; + /** Format: uri */ + url: string; + /** Format: uri */ + html_url: string; + /** Format: uri */ + followers_url: string; + /** Format: uri */ + subscriptions_url: string; + /** Format: uri */ + organizations_url: string; + /** Format: uri */ + repos_url: string; + /** Format: uri */ + received_events_url: string; + type: string; + score: number; + following_url: string; + gists_url: string; + starred_url: string; + events_url: string; + public_repos?: number; + public_gists?: number; + followers?: number; + following?: number; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + name?: string | null; + bio?: string | null; + /** Format: email */ + email?: string | null; + location?: string | null; + site_admin: boolean; + hireable?: boolean | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + blog?: string | null; + company?: string | null; + /** Format: date-time */ + suspended_at?: string | null; + }; + /** + * Private User + * @description Private User + */ + "private-user": { + /** @example octocat */ + login: string; + /** @example 1 */ + id: number; + /** @example MDQ6VXNlcjE= */ + node_id: string; + /** + * Format: uri + * @example https://github.com/images/error/octocat_happy.gif + */ + avatar_url: string; + /** @example 41d064eb2195891e12d0413f63227ea7 */ + gravatar_id: string | null; + /** + * Format: uri + * @example https://api.github.com/users/octocat + */ + url: string; + /** + * Format: uri + * @example https://github.com/octocat + */ + html_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/followers + */ + followers_url: string; + /** @example https://api.github.com/users/octocat/following{/other_user} */ + following_url: string; + /** @example https://api.github.com/users/octocat/gists{/gist_id} */ + gists_url: string; + /** @example https://api.github.com/users/octocat/starred{/owner}{/repo} */ + starred_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/subscriptions + */ + subscriptions_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/orgs + */ + organizations_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/repos + */ + repos_url: string; + /** @example https://api.github.com/users/octocat/events{/privacy} */ + events_url: string; + /** + * Format: uri + * @example https://api.github.com/users/octocat/received_events + */ + received_events_url: string; + /** @example User */ + type: string; + site_admin: boolean; + /** @example monalisa octocat */ + name: string | null; + /** @example GitHub */ + company: string | null; + /** @example https://github.com/blog */ + blog: string | null; + /** @example San Francisco */ + location: string | null; + /** + * Format: email + * @example octocat@github.com + */ + email: string | null; + hireable: boolean | null; + /** @example There once was... */ + bio: string | null; + /** @example monalisa */ + twitter_username?: string | null; + /** @example 2 */ + public_repos: number; + /** @example 1 */ + public_gists: number; + /** @example 20 */ + followers: number; + /** @example 0 */ + following: number; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + created_at: string; + /** + * Format: date-time + * @example 2008-01-14T04:33:35Z + */ + updated_at: string; + /** @example 81 */ + private_gists: number; + /** @example 100 */ + total_private_repos: number; + /** @example 100 */ + owned_private_repos: number; + /** @example 10000 */ + disk_usage: number; + /** @example 8 */ + collaborators: number; + /** @example true */ + two_factor_authentication: boolean; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + /** Format: date-time */ + suspended_at?: string | null; + business_plus?: boolean; + ldap_dn?: string; + }; + /** + * Codespaces Secret + * @description Secrets for a GitHub Codespace. + */ + "codespaces-secret": { + /** + * @description The name of the secret + * @example SECRET_NAME + */ + name: string; + /** + * Format: date-time + * @description Secret created at + */ + created_at: string; + /** + * Format: date-time + * @description Secret last updated at + */ + updated_at: string; + /** + * @description The type of repositories in the organization that the secret is visible to + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** + * Format: uri + * @description API URL at which the list of repositories this secret is vicible can be retrieved + * @example https://api.github.com/user/secrets/SECRET_NAME/repositories + */ + selected_repositories_url: string; + }; + /** + * CodespacesUserPublicKey + * @description The public key used for setting user Codespaces' Secrets. + */ + "codespaces-user-public-key": { + /** + * @description The identifier for the key. + * @example 1234567 + */ + key_id: string; + /** + * @description The Base64 encoded public key. + * @example hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs= + */ + key: string; + }; + /** + * Fetches information about an export of a codespace. + * @description An export of a codespace. Also, latest export details for a codespace can be fetched with id = latest + */ + "codespace-export-details": { + /** + * @description State of the latest export + * @example succeeded | failed | in_progress + */ + state?: string | null; + /** + * Format: date-time + * @description Completion time of the last export operation + * @example 2021-01-01T19:01:12Z + */ + completed_at?: string | null; + /** + * @description Name of the exported branch + * @example codespace-monalisa-octocat-hello-world-g4wpq6h95q + */ + branch?: string | null; + /** + * @description Git commit SHA of the exported branch + * @example fd95a81ca01e48ede9f39c799ecbcef817b8a3b2 + */ + sha?: string | null; + /** + * @description Id for the export details + * @example latest + */ + id?: string; + /** + * @description Url for fetching export details + * @example https://api.github.com/user/codespaces/:name/exports/latest + */ + export_url?: string; + /** + * @description Web url for the exported branch + * @example https://github.com/octocat/hello-world/tree/:branch + */ + html_url?: string | null; + }; + /** + * Email + * @description Email + */ + email: { + /** + * Format: email + * @example octocat@github.com + */ + email: string; + /** @example true */ + primary: boolean; + /** @example true */ + verified: boolean; + /** @example public */ + visibility: string | null; + }; + /** + * GPG Key + * @description A unique encryption key + */ + "gpg-key": { + /** @example 3 */ + id: number; + /** @example Octocat's GPG Key */ + name?: string | null; + primary_key_id: number | null; + /** @example 3262EFF25BA0D270 */ + key_id: string; + /** @example xsBNBFayYZ... */ + public_key: string; + /** + * @example [ + * { + * "email": "octocat@users.noreply.github.com", + * "verified": true + * } + * ] + */ + emails: { + email?: string; + verified?: boolean; + }[]; + /** + * @example [ + * { + * "id": 4, + * "primary_key_id": 3, + * "key_id": "4A595D4C72EE49C7", + * "public_key": "zsBNBFayYZ...", + * "emails": [], + * "subkeys": [], + * "can_sign": false, + * "can_encrypt_comms": true, + * "can_encrypt_storage": true, + * "can_certify": false, + * "created_at": "2016-03-24T11:31:04-06:00", + * "expires_at": null, + * "revoked": false + * } + * ] + */ + subkeys: { + id?: number; + primary_key_id?: number; + key_id?: string; + public_key?: string; + emails?: unknown[]; + subkeys?: unknown[]; + can_sign?: boolean; + can_encrypt_comms?: boolean; + can_encrypt_storage?: boolean; + can_certify?: boolean; + created_at?: string; + expires_at?: string | null; + raw_key?: string | null; + revoked?: boolean; + }[]; + /** @example true */ + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + /** @example true */ + can_certify: boolean; + /** + * Format: date-time + * @example 2016-03-24T11:31:04-06:00 + */ + created_at: string; + /** Format: date-time */ + expires_at: string | null; + /** @example true */ + revoked: boolean; + raw_key: string | null; + }; + /** + * Key + * @description Key + */ + key: { + key: string; + id: number; + url: string; + title: string; + /** Format: date-time */ + created_at: string; + verified: boolean; + read_only: boolean; + }; + /** Marketplace Account */ + "marketplace-account": { + /** Format: uri */ + url: string; + id: number; + type: string; + node_id?: string; + login: string; + /** Format: email */ + email?: string | null; + /** Format: email */ + organization_billing_email?: string | null; + }; + /** + * User Marketplace Purchase + * @description User Marketplace Purchase + */ + "user-marketplace-purchase": { + /** @example monthly */ + billing_cycle: string; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + next_billing_date: string | null; + unit_count: number | null; + /** @example true */ + on_free_trial: boolean; + /** + * Format: date-time + * @example 2017-11-11T00:00:00Z + */ + free_trial_ends_on: string | null; + /** + * Format: date-time + * @example 2017-11-02T01:12:12Z + */ + updated_at: string | null; + account: components["schemas"]["marketplace-account"]; + plan: components["schemas"]["marketplace-listing-plan"]; + }; + /** + * Starred Repository + * @description Starred Repository + */ + "starred-repository": { + /** Format: date-time */ + starred_at: string; + repo: components["schemas"]["repository"]; + }; + /** + * Hovercard + * @description Hovercard + */ + hovercard: { + contexts: { + message: string; + octicon: string; + }[]; + }; + /** + * Key Simple + * @description Key Simple + */ + "key-simple": { + id: number; + key: string; + }; + }; + responses: { + /** Resource not found */ + not_found: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Validation failed */ + validation_failed_simple: { + content: { + "application/json": components["schemas"]["validation-error-simple"]; + }; + }; + /** Bad Request */ + bad_request: { + content: { + "application/json": components["schemas"]["basic-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** Validation failed */ + validation_failed: { + content: { + "application/json": components["schemas"]["validation-error"]; + }; + }; + /** Accepted */ + accepted: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + /** Forbidden */ + forbidden: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Requires authentication */ + requires_authentication: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Not modified */ + not_modified: unknown; + /** Gone */ + gone: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Response */ + actions_runner_labels: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** Response */ + actions_runner_labels_readonly: { + content: { + "application/json": { + total_count: number; + labels: components["schemas"]["runner-label"][]; + }; + }; + }; + /** Response if GitHub Advanced Security is not enabled for this repository */ + code_scanning_forbidden_read: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Service unavailable */ + service_unavailable: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + }; + }; + }; + /** Forbidden Gist */ + forbidden_gist: { + content: { + "application/json": { + block?: { + reason?: string; + created_at?: string; + html_url?: string | null; + }; + message?: string; + documentation_url?: string; + }; + }; + }; + /** Moved permanently */ + moved_permanently: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Conflict */ + conflict: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Internal Error */ + internal_error: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Temporary Redirect */ + temporary_redirect: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Response if the repository is archived or if github advanced security is not enabled for this repository */ + code_scanning_forbidden_write: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + /** Found */ + found: unknown; + /** A header with no content is returned. */ + no_content: unknown; + /** Resource not found */ + scim_not_found: { + content: { + "application/json": components["schemas"]["scim-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** Forbidden */ + scim_forbidden: { + content: { + "application/json": components["schemas"]["scim-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** Bad Request */ + scim_bad_request: { + content: { + "application/json": components["schemas"]["scim-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** Too Many Requests */ + scim_too_many_requests: { + content: { + "application/json": components["schemas"]["scim-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** Internal Error */ + scim_internal_error: { + content: { + "application/json": components["schemas"]["scim-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + /** Conflict */ + scim_conflict: { + content: { + "application/json": components["schemas"]["scim-error"]; + "application/scim+json": components["schemas"]["scim-error"]; + }; + }; + }; + parameters: { + /** @description The number of results per page (max 100). */ + "per-page": number; + /** @description Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ + cursor: string; + "delivery-id": number; + /** @description Page number of the results to fetch. */ + page: number; + /** @description Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since: string; + /** @description The unique identifier of the installation. */ + "installation-id": number; + /** @description The unique identifier of the grant. */ + "grant-id": number; + /** @description The client ID of the GitHub app. */ + "client-id": string; + "app-slug": string; + /** @description The client ID of the OAuth app. */ + "oauth-client-id": string; + /** @description The unique identifier of the authorization. */ + "authorization-id": number; + /** @description The slug version of the enterprise name or the login of an organization. */ + "enterprise-or-org": string; + /** @description The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: string; + /** @description The unique identifier of the organization. */ + "org-id": number; + /** @description Only return runner groups that are allowed to be used by this organization. */ + "visible-to-organization": string; + /** @description Unique identifier of the self-hosted runner group. */ + "runner-group-id": number; + /** @description Unique identifier of the self-hosted runner. */ + "runner-id": number; + /** @description The name of a self-hosted runner's custom label. */ + "runner-label-name": string; + /** @description A search phrase. For more information, see [Searching the audit log](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#searching-the-audit-log). */ + "audit-log-phrase": string; + /** + * @description The event types to include: + * + * - `web` - returns web (non-Git) events. + * - `git` - returns Git events. + * - `all` - returns both web and Git events. + * + * The default is `web`. + */ + "audit-log-include": "web" | "git" | "all"; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + "audit-log-after": string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + "audit-log-before": string; + /** + * @description The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. + * + * The default is `desc`. + */ + "audit-log-order": "desc" | "asc"; + /** @description The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + "tool-name": components["schemas"]["code-scanning-analysis-tool-name"]; + /** @description The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + "tool-guid": components["schemas"]["code-scanning-analysis-tool-guid"]; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + "pagination-before": string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + "pagination-after": string; + /** @description The direction to sort the results by. */ + direction: "asc" | "desc"; + /** @description Set to `open` or `resolved` to only list secret scanning alerts in a specific state. */ + "secret-scanning-alert-state": "open" | "resolved"; + /** + * @description A comma-separated list of secret types to return. By default all secret types are returned. + * See "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)" + * for a complete list of secret types. + */ + "secret-scanning-alert-secret-type": string; + /** @description A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. */ + "secret-scanning-alert-resolution": string; + /** @description The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. */ + "secret-scanning-alert-sort": "created" | "updated"; + /** @description The unique identifier of the gist. */ + "gist-id": string; + /** @description The unique identifier of the comment. */ + "comment-id": number; + /** @description A list of comma separated label names. Example: `bug,ui,@high` */ + labels: string; + /** @description account_id parameter */ + "account-id": number; + /** @description The unique identifier of the plan. */ + "plan-id": number; + /** @description The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + sort: "created" | "updated"; + /** @description The account owner of the repository. The name is not case sensitive. */ + owner: string; + /** @description The name of the repository. The name is not case sensitive. */ + repo: string; + /** @description If `true`, show notifications marked as read. */ + all: boolean; + /** @description If `true`, only shows notifications in which the user is directly participating or mentioned. */ + participating: boolean; + /** @description Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + before: string; + /** @description The unique identifier of the pull request thread. */ + "thread-id": number; + /** @description An organization ID. Only return organizations with an ID greater than this ID. */ + "since-org": number; + /** @description The organization name. The name is not case sensitive. */ + org: string; + /** @description The unique identifier of the repository. */ + "repository-id": number; + /** @description Only return runner groups that are allowed to be used by this repository. */ + "visible-to-repository": string; + /** @description The name of the secret. */ + "secret-name": string; + /** @description The handle for the GitHub user account. */ + username: string; + /** @description The unique identifier of the group. */ + "group-id": number; + /** @description The unique identifier of the hook. */ + "hook-id": number; + /** @description The unique identifier of the invitation. */ + "invitation-id": number; + /** @description The name of the codespace. */ + "codespace-name": string; + /** @description The unique identifier of the migration. */ + "migration-id": number; + /** @description repo_name parameter */ + "repo-name": string; + /** @description The selected visibility of the packages. Only `container` package_types currently support `internal` visibility properly. For other ecosystems `internal` is synonymous with `private`. This parameter is optional and only filters an existing result set. */ + "package-visibility": "public" | "private" | "internal"; + /** @description The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + "package-type": + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** @description The name of the package. */ + "package-name": string; + /** @description Unique identifier of the package version. */ + "package-version-id": number; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. */ + "secret-scanning-pagination-before-org-repo": string; + /** @description A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. */ + "secret-scanning-pagination-after-org-repo": string; + /** @description The slug of the team name. */ + "team-slug": string; + /** @description The number that identifies the discussion. */ + "discussion-number": number; + /** @description The number that identifies the comment. */ + "comment-number": number; + /** @description The unique identifier of the reaction. */ + "reaction-id": number; + /** @description The unique identifier of the project. */ + "project-id": number; + /** @description The unique identifier of the card. */ + "card-id": number; + /** @description The unique identifier of the column. */ + "column-id": number; + /** @description The unique identifier of the artifact. */ + "artifact-id": number; + /** @description The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + "git-ref": components["schemas"]["code-scanning-ref"]; + /** @description An explicit key or prefix for identifying the cache */ + "actions-cache-key": string; + /** @description The property to sort the results by. `created_at` means when the cache was created. `last_accessed_at` means when the cache was last accessed. `size_in_bytes` is the size of the cache in bytes. */ + "actions-cache-list-sort": + | "created_at" + | "last_accessed_at" + | "size_in_bytes"; + /** @description A key for identifying the cache. */ + "actions-cache-key-required": string; + /** @description The unique identifier of the GitHub Actions cache. */ + "cache-id": number; + /** @description The unique identifier of the job. */ + "job-id": number; + /** @description Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. */ + actor: string; + /** @description Returns workflow runs associated with a branch. Use the name of the branch of the `push`. */ + "workflow-run-branch": string; + /** @description Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." */ + event: string; + /** @description Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. For a list of the possible `status` and `conclusion` options, see "[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run)." */ + "workflow-run-status": + | "completed" + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "skipped" + | "stale" + | "success" + | "timed_out" + | "in_progress" + | "queued" + | "requested" + | "waiting"; + /** @description Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." */ + created: string; + /** @description If `true` pull requests are omitted from the response (empty array). */ + "exclude-pull-requests": boolean; + /** @description Returns workflow runs with the `check_suite_id` that you specify. */ + "workflow-run-check-suite-id": number; + /** @description The unique identifier of the workflow run. */ + "run-id": number; + /** @description The attempt number of the workflow run. */ + "attempt-number": number; + /** @description The ID of the workflow. You can also pass the workflow file name as a string. */ + "workflow-id": number | string; + /** @description The unique identifier of the autolink. */ + "autolink-id": number; + /** @description The name of the branch. */ + branch: string; + /** @description The unique identifier of the check run. */ + "check-run-id": number; + /** @description The unique identifier of the check suite. */ + "check-suite-id": number; + /** @description Returns check runs with the specified `name`. */ + "check-name": string; + /** @description Returns check runs with the specified `status`. */ + status: "queued" | "in_progress" | "completed"; + /** @description The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + "alert-number": components["schemas"]["alert-number"]; + /** @description The SHA of the commit. */ + "commit-sha": string; + /** @description The full path, relative to the repository root, of the dependency manifest file. */ + "manifest-path": string; + /** @description deployment_id parameter */ + "deployment-id": number; + /** @description The name of the environment */ + "environment-name": string; + /** @description A user ID. Only return users with an ID greater than this ID. */ + "since-user": number; + /** @description The number that identifies the issue. */ + "issue-number": number; + /** @description The unique identifier of the key. */ + "key-id": number; + /** @description The number that identifies the milestone. */ + "milestone-number": number; + /** @description The number that identifies the pull request. */ + "pull-number": number; + /** @description The unique identifier of the review. */ + "review-id": number; + /** @description The unique identifier of the asset. */ + "asset-id": number; + /** @description The unique identifier of the release. */ + "release-id": number; + /** @description The unique identifier of the tag protection. */ + "tag-protection-id": number; + /** @description The time frame to display results for. */ + per: "" | "day" | "week"; + /** @description A repository ID. Only return repositories with an ID greater than this ID. */ + "since-repo": number; + /** @description Used for pagination: the index of the first result to return. */ + "start-index": number; + /** @description Used for pagination: the number of results to return. */ + count: number; + /** @description Identifier generated by the GitHub SCIM endpoint. */ + "scim-group-id": string; + /** @description The unique identifier of the SCIM user. */ + "scim-user-id": string; + /** @description Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order: "desc" | "asc"; + /** @description The unique identifier of the team. */ + "team-id": number; + /** @description ID of the Repository to filter on */ + "repository-id-in-query": number; + /** @description The ID of the export operation, or `latest`. Currently only `latest` is currently supported. */ + "export-id": string; + /** @description The unique identifier of the GPG key. */ + "gpg-key-id": number; + }; + headers: { + link?: string; + "content-type"?: string; + "x-common-marker-version"?: string; + "x-rate-limit-limit"?: number; + "x-rate-limit-remaining"?: number; + "x-rate-limit-reset"?: number; + location?: string; + }; +} + +export interface operations { + /** Get Hypermedia links to resources accessible in GitHub's REST API */ + "meta/root": { + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["root"]; + }; + }; + }; + }; + /** + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-authenticated": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + }; + }; + /** Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. */ + "apps/create-from-manifest": { + parameters: { + path: { + code: string; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["integration"] & + ({ + client_id: string; + client_secret: string; + webhook_secret: string | null; + pem: string; + } & { [key: string]: unknown }); + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-config-for-app": { + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/update-webhook-config-for-app": { + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + }; + /** + * Returns a list of webhook deliveries for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/list-webhook-deliveries": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ + cursor?: components["parameters"]["cursor"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Returns a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Redeliver a delivery for the webhook configured for a GitHub App. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/redeliver-webhook-delivery": { + parameters: { + path: { + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + "apps/list-installations": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + outdated?: string; + }; + }; + responses: { + /** The permissions the installation has are included under the `permissions` key. */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["installation"][]; + }; + }; + }; + }; + /** + * Enables an authenticated GitHub App to find an installation's information using the installation id. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-installation": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/reference/apps/#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/delete-installation": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/create-installation-access-token": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["installation-token"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description List of repository names that the token should have access to */ + repositories?: string[]; + /** + * @description List of repository IDs that the token should have access to + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + }; + /** + * Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/suspend-installation": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/unsuspend-installation": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * You can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the [list your authorizations](https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations) API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). The `scopes` returned are the union of scopes authorized for the application. For example, if an application has one token with `repo` scope and another token with `user` scope, the grant will return `["repo", "user"]`. + */ + "oauth-authorizations/list-grants": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The client ID of your GitHub app. */ + client_id?: string; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["application-grant"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + "oauth-authorizations/get-grant": { + parameters: { + path: { + /** The unique identifier of the grant. */ + grant_id: components["parameters"]["grant-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["application-grant"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + "oauth-authorizations/delete-grant": { + parameters: { + path: { + /** The unique identifier of the grant. */ + grant_id: components["parameters"]["grant-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + "apps/delete-authorization": { + parameters: { + path: { + /** The client ID of the GitHub app. */ + client_id: components["parameters"]["client-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + }; + /** OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. */ + "apps/check-token": { + parameters: { + path: { + /** The client ID of the GitHub app. */ + client_id: components["parameters"]["client-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth application. */ + access_token: string; + }; + }; + }; + }; + /** OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. */ + "apps/delete-token": { + parameters: { + path: { + /** The client ID of the GitHub app. */ + client_id: components["parameters"]["client-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth access token used to authenticate to the GitHub API. */ + access_token: string; + }; + }; + }; + }; + /** OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. */ + "apps/reset-token": { + parameters: { + path: { + /** The client ID of the GitHub app. */ + client_id: components["parameters"]["client-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The access_token of the OAuth application. */ + access_token: string; + }; + }; + }; + }; + /** Use a non-scoped user-to-server OAuth access token to create a repository scoped and/or permission scoped user-to-server OAuth access token. You can specify which repositories the token can access and which permissions are granted to the token. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. */ + "apps/scope-token": { + parameters: { + path: { + /** The client ID of the GitHub app. */ + client_id: components["parameters"]["client-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The OAuth access token used to authenticate to the GitHub API. + * @example e72e16c7e42f292c6912e7710c838347ae178b4a + */ + access_token: string; + /** + * @description The name of the user or organization to scope the user-to-server access token to. **Required** unless `target_id` is specified. + * @example octocat + */ + target?: string; + /** + * @description The ID of the user or organization to scope the user-to-server access token to. **Required** unless `target` is specified. + * @example 1 + */ + target_id?: number; + /** @description The list of repository names to scope the user-to-server access token to. `repositories` may not be specified if `repository_ids` is specified. */ + repositories?: string[]; + /** + * @description The list of repository IDs to scope the user-to-server access token to. `repository_ids` may not be specified if `repositories` is specified. + * @example [ + * 1 + * ] + */ + repository_ids?: number[]; + permissions?: components["schemas"]["app-permissions"]; + }; + }; + }; + }; + /** + * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + * + * If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://docs.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + "apps/get-by-slug": { + parameters: { + path: { + app_slug: components["parameters"]["app-slug"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + "oauth-authorizations/list-authorizations": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The client ID of your GitHub app. */ + client_id?: string; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["authorization"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates OAuth tokens using [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication). If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * To create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app's client ID and secret, found on your OAuth application's settings page. If your OAuth application intends to create multiple tokens for one user, use `fingerprint` to differentiate between them. + * + * You can also create tokens on GitHub from the [personal access tokens settings](https://github.com/settings/tokens) page. Read more about these tokens in [the GitHub Help documentation](https://docs.github.com/articles/creating-an-access-token-for-command-line-use). + * + * Organizations that enforce SAML SSO require personal access tokens to be allowed. Read more about allowing tokens in [the GitHub Help documentation](https://docs.github.com/articles/about-identity-and-access-management-with-saml-single-sign-on). + */ + "oauth-authorizations/create-authorization": { + parameters: {}; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description A list of scopes that this authorization is in. + * @example [ + * "public_repo", + * "user" + * ] + */ + scopes?: string[] | null; + /** + * @description A note to remind you what the OAuth token is for. + * @example Update all gems + */ + note?: string; + /** @description A URL to remind you what app the OAuth token is for. */ + note_url?: string; + /** @description The OAuth app client key for which to create the token. */ + client_id?: string; + /** @description The OAuth app client secret for which to create the token. */ + client_secret?: string; + /** @description A unique string to distinguish an authorization from others created for the same client ID and user. */ + fingerprint?: string; + }; + }; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates a new authorization for the specified OAuth application, only if an authorization for that application doesn't already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + "oauth-authorizations/get-or-create-authorization-for-app": { + parameters: { + path: { + /** The client ID of the OAuth app. */ + client_id: components["parameters"]["oauth-client-id"]; + }; + }; + responses: { + /** if returning an existing token */ + 200: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth app client secret for which to create the token. */ + client_secret: string; + /** + * @description A list of scopes that this authorization is in. + * @example [ + * "public_repo", + * "user" + * ] + */ + scopes?: string[] | null; + /** + * @description A note to remind you what the OAuth token is for. + * @example Update all gems + */ + note?: string; + /** @description A URL to remind you what app the OAuth token is for. */ + note_url?: string; + /** @description A unique string to distinguish an authorization from others created for the same client ID and user. */ + fingerprint?: string; + }; + }; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. `fingerprint` is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + */ + "oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint": { + parameters: { + path: { + /** The client ID of the OAuth app. */ + client_id: components["parameters"]["oauth-client-id"]; + fingerprint: string; + }; + }; + responses: { + /** if returning an existing token */ + 200: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + /** Response if returning a new token */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The OAuth app client secret for which to create the token. */ + client_secret: string; + /** + * @description A list of scopes that this authorization is in. + * @example [ + * "public_repo", + * "user" + * ] + */ + scopes?: string[] | null; + /** + * @description A note to remind you what the OAuth token is for. + * @example Update all gems + */ + note?: string; + /** @description A URL to remind you what app the OAuth token is for. */ + note_url?: string; + }; + }; + }; + }; + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + "oauth-authorizations/get-authorization": { + parameters: { + path: { + /** The unique identifier of the authorization. */ + authorization_id: components["parameters"]["authorization-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). */ + "oauth-authorizations/delete-authorization": { + parameters: { + path: { + /** The unique identifier of the authorization. */ + authorization_id: components["parameters"]["authorization-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * You can only send one of these scope keys at a time. + */ + "oauth-authorizations/update-authorization": { + parameters: { + path: { + /** The unique identifier of the authorization. */ + authorization_id: components["parameters"]["authorization-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["authorization"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description A list of scopes that this authorization is in. + * @example [ + * "public_repo", + * "user" + * ] + */ + scopes?: string[] | null; + /** @description A list of scopes to add to this authorization. */ + add_scopes?: string[]; + /** @description A list of scopes to remove from this authorization. */ + remove_scopes?: string[]; + /** + * @description A note to remind you what the OAuth token is for. + * @example Update all gems + */ + note?: string; + /** @description A URL to remind you what app the OAuth token is for. */ + note_url?: string; + /** @description A unique string to distinguish an authorization from others created for the same client ID and user. */ + fingerprint?: string; + }; + }; + }; + }; + "codes-of-conduct/get-all-codes-of-conduct": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + "codes-of-conduct/get-conduct-code": { + parameters: { + path: { + key: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-of-conduct"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists all the emojis available to use on GitHub. */ + "emojis/get": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": { [key: string]: string }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Returns aggregate usage metrics for your GitHub Enterprise Server 3.5+ instance for a specified time period up to 365 days. + * + * To use this endpoint, your GitHub Enterprise Server instance must be connected to GitHub Enterprise Cloud using GitHub Connect. You must enable Server Statistics, and for the API request provide your enterprise account name or organization name connected to the GitHub Enterprise Server. For more information, see "[Enabling Server Statistics for your enterprise](/admin/configuration/configuring-github-connect/enabling-server-statistics-for-your-enterprise)" in the GitHub Enterprise Server documentation. + * + * You'll need to use a personal access token: + * - If you connected your GitHub Enterprise Server to an enterprise account and enabled Server Statistics, you'll need a personal access token with the `read:enterprise` permission. + * - If you connected your GitHub Enterprise Server to an organization account and enabled Server Statistics, you'll need a personal access token with the `read:org` permission. + * + * For more information on creating a personal access token, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + */ + "enterprise-admin/get-server-statistics": { + parameters: { + path: { + /** The slug version of the enterprise name or the login of an organization. */ + enterprise_or_org: components["parameters"]["enterprise-or-org"]; + }; + query: { + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + date_start?: string; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + date_end?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["server-statistics"]; + }; + }; + }; + }; + /** + * Gets the total GitHub Actions cache usage for an enterprise. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "actions/get-actions-cache-usage-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["actions-cache-usage-org-enterprise"]; + }; + }; + }; + }; + /** + * Sets the GitHub Actions OpenID Connect (OIDC) custom issuer policy for an enterprise. + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * GitHub Apps must have the `enterprise_administration:write` permission to use this endpoint. + */ + "actions/set-actions-oidc-custom-issuer-policy-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-oidc-custom-issuer-policy-for-enterprise"]; + }; + }; + }; + /** + * Gets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-github-actions-permissions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-enterprise-permissions"]; + }; + }; + }; + }; + /** + * Sets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-github-actions-permissions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + enabled_organizations: components["schemas"]["enabled-organizations"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + }; + /** + * Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-selected-organizations-enabled-github-actions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + organizations: components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + }; + /** + * Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-selected-organizations-enabled-github-actions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description List of organization IDs to enable for GitHub Actions. */ + selected_organization_ids: number[]; + }; + }; + }; + }; + /** + * Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/enable-selected-organization-github-actions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** The unique identifier of the organization. */ + org_id: components["parameters"]["org-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/disable-selected-organization-github-actions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** The unique identifier of the organization. */ + org_id: components["parameters"]["org-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Gets the selected actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-allowed-actions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Sets the actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-allowed-actions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an enterprise, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Enforcing a policy for workflow permissions in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-for-workflow-permissions-in-your-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * GitHub Apps must have the `enterprise_administration:write` permission to use this endpoint. + */ + "actions/get-github-actions-default-workflow-permissions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Success response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an enterprise, and sets + * whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Enforcing a policy for workflow permissions in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#enforcing-a-policy-for-workflow-permissions-in-your-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * GitHub Apps must have the `enterprise_administration:write` permission to use this endpoint. + */ + "actions/set-github-actions-default-workflow-permissions-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Success response */ + 204: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + }; + /** + * Lists all self-hosted runner groups for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-self-hosted-runner-groups-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Only return runner groups that are allowed to be used by this organization. */ + visible_to_organization?: components["parameters"]["visible-to-organization"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + runner_groups: components["schemas"]["runner-groups-enterprise"][]; + }; + }; + }; + }; + }; + /** + * Creates a new self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/create-self-hosted-runner-group-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["runner-groups-enterprise"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Name of the runner group. */ + name: string; + /** + * @description Visibility of a runner group. You can select all organizations or select individual organization. + * @enum {string} + */ + visibility?: "selected" | "all"; + /** @description List of organization IDs that can access the runner group. */ + selected_organization_ids?: number[]; + /** @description List of runner IDs to add to the runner group. */ + runners?: number[]; + /** + * @description Whether the runner group can be used by `public` repositories. + * @default false + */ + allows_public_repositories?: boolean; + /** + * @description If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array. + * @default false + */ + restricted_to_workflows?: boolean; + /** @description List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`. */ + selected_workflows?: string[]; + }; + }; + }; + }; + /** + * Gets a specific self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-self-hosted-runner-group-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-groups-enterprise"]; + }; + }; + }; + }; + /** + * Deletes a self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/delete-self-hosted-runner-group-from-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Updates the `name` and `visibility` of a self-hosted runner group in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/update-self-hosted-runner-group-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-groups-enterprise"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Name of the runner group. */ + name?: string; + /** + * @description Visibility of a runner group. You can select all organizations or select individual organizations. + * @default all + * @enum {string} + */ + visibility?: "selected" | "all"; + /** + * @description Whether the runner group can be used by `public` repositories. + * @default false + */ + allows_public_repositories?: boolean; + /** + * @description If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array. + * @default false + */ + restricted_to_workflows?: boolean; + /** @description List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`. */ + selected_workflows?: string[]; + }; + }; + }; + }; + /** + * Lists the organizations with access to a self-hosted runner group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + organizations: components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + }; + /** + * Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description List of organization IDs that can access the runner group. */ + selected_organization_ids: number[]; + }; + }; + }; + }; + /** + * Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise)." + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/add-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** The unique identifier of the organization. */ + org_id: components["parameters"]["org-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise)." + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/remove-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** The unique identifier of the organization. */ + org_id: components["parameters"]["org-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists the self-hosted runners that are in a specific enterprise group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-self-hosted-runners-in-group-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * Replaces the list of self-hosted runners that are part of an enterprise runner group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-self-hosted-runners-in-group-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description List of runner IDs to add to the runner group. */ + runners: number[]; + }; + }; + }; + }; + /** + * Adds a self-hosted runner to a runner group configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` + * scope to use this endpoint. + */ + "enterprise-admin/add-self-hosted-runner-to-group-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/remove-self-hosted-runner-from-group-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists all self-hosted runners configured for an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-self-hosted-runners-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count?: number; + runners?: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-runner-applications-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/enterprises/octo-enterprise --token TOKEN + * ``` + */ + "enterprise-admin/create-registration-token-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an enterprise. The token expires after one hour. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an enterprise, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + "enterprise-admin/create-remove-token-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Gets a specific self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-self-hosted-runner-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Forces the removal of a self-hosted runner from an enterprise. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/delete-self-hosted-runner-from-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists all labels for a self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-labels-for-self-hosted-runner-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-custom-labels-for-self-hosted-runner-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + }; + /** + * Add custom labels to a self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/add-custom-labels-to-self-hosted-runner-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + }; + /** + * Remove all custom labels from a self-hosted runner configured in an + * enterprise. Returns the remaining read-only labels from the runner. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/remove-all-custom-labels-from-self-hosted-runner-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner configured + * in an enterprise. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * You must authenticate using an access token with the `manage_runners:enterprise` scope to use this endpoint. + */ + "enterprise-admin/remove-custom-label-from-self-hosted-runner-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + /** The name of a self-hosted runner's custom label. */ + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Gets the audit log for an enterprise. To use this endpoint, you must be an enterprise admin, and you must use an access token with the `admin:enterprise` scope. */ + "enterprise-admin/get-audit-log": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** A search phrase. For more information, see [Searching the audit log](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#searching-the-audit-log). */ + phrase?: components["parameters"]["audit-log-phrase"]; + /** + * The event types to include: + * + * - `web` - returns web (non-Git) events. + * - `git` - returns Git events. + * - `all` - returns both web and Git events. + * + * The default is `web`. + */ + include?: components["parameters"]["audit-log-include"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + after?: components["parameters"]["audit-log-after"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + before?: components["parameters"]["audit-log-before"]; + /** + * The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. + * + * The default is `desc`. + */ + order?: components["parameters"]["audit-log-order"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["audit-log-event"][]; + }; + }; + }; + }; + /** + * Lists code scanning alerts for the default branch for all eligible repositories in an enterprise. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * To use this endpoint, you must be a member of the enterprise, + * and you must use an access token with the `repo` scope or `security_events` scope. + */ + "code-scanning/list-alerts-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + tool_name?: components["parameters"]["tool-name"]; + /** The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + tool_guid?: components["parameters"]["tool-guid"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + before?: components["parameters"]["pagination-before"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + after?: components["parameters"]["pagination-after"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** If specified, only code scanning alerts with this state will be returned. */ + state?: components["schemas"]["code-scanning-alert-state"]; + /** The property by which to sort the results. */ + sort?: "created" | "updated"; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["code-scanning-organization-alert-items"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. + * To use this endpoint, you must be a member of the enterprise, and you must use an access token with the `repo` scope or `security_events` scope. Alerts are only returned for organizations in the enterprise for which you are an organization owner or a [security manager](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). + */ + "secret-scanning/list-alerts-for-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** Set to `open` or `resolved` to only list secret scanning alerts in a specific state. */ + state?: components["parameters"]["secret-scanning-alert-state"]; + /** + * A comma-separated list of secret types to return. By default all secret types are returned. + * See "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)" + * for a complete list of secret types. + */ + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + /** A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. */ + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + /** The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. */ + sort?: components["parameters"]["secret-scanning-alert-sort"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + before?: components["parameters"]["pagination-before"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + after?: components["parameters"]["pagination-after"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * The authenticated user must be an enterprise admin. + */ + "billing/get-github-actions-billing-ghe": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Gets the GitHub Advanced Security active committers for an enterprise per repository. + * + * Each distinct user login across all repositories is counted as a single Advanced Security seat, so the `total_advanced_security_committers` is not the sum of active_users for each repository. + * + * The total number of repositories with committer information is tracked by the `total_count` field. + */ + "billing/get-github-advanced-security-billing-ghe": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Success */ + 200: { + content: { + "application/json": components["schemas"]["advanced-security-active-committers"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + }; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * The authenticated user must be an enterprise admin. + */ + "billing/get-github-packages-billing-ghe": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * The authenticated user must be an enterprise admin. + */ + "billing/get-shared-storage-billing-ghe": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. */ + "activity/list-public-events": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + "activity/get-feeds": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["feed"]; + }; + }; + }; + }; + /** Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: */ + "gists/list": { + parameters: { + query: { + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + "gists/create": { + parameters: {}; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Description of the gist + * @example Example Ruby script + */ + description?: string; + /** + * @description Names and content for the files that make up the gist + * @example { + * "hello.rb": { + * "content": "puts \"Hello, World!\"" + * } + * } + */ + files: { + [key: string]: { + /** @description Content of the file */ + content: string; + }; + }; + public?: boolean | ("true" | "false"); + }; + }; + }; + }; + /** + * List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + "gists/list-public": { + parameters: { + query: { + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** List the authenticated user's starred gists: */ + "gists/list-starred": { + parameters: { + query: { + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + "gists/get": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + "gists/delete": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. */ + "gists/update": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Description of the gist + * @example Example Ruby script + */ + description?: string; + /** + * @description Names of files to be updated + * @example { + * "hello.rb": { + * "content": "blah", + * "filename": "goodbye.rb" + * } + * } + */ + files?: { [key: string]: Partial<{ [key: string]: unknown }> }; + } | null; + }; + }; + }; + "gists/list-comments": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["gist-comment"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "gists/create-comment": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + }; + "gists/get-comment": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden_gist"]; + 404: components["responses"]["not_found"]; + }; + }; + "gists/delete-comment": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "gists/update-comment": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The comment text. + * @example Body of the attachment + */ + body: string; + }; + }; + }; + }; + "gists/list-commits": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: { + Link?: string; + }; + content: { + "application/json": components["schemas"]["gist-commit"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "gists/list-forks": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["gist-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** **Note**: This was previously `/gists/:gist_id/fork`. */ + "gists/fork": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["base-gist"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "gists/check-is-starred": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response if gist is starred */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + /** Not Found if gist is not starred */ + 404: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + }; + }; + /** Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." */ + "gists/star": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "gists/unstar": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "gists/get-revision": { + parameters: { + path: { + /** The unique identifier of the gist. */ + gist_id: components["parameters"]["gist-id"]; + sha: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["gist-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user). */ + "gitignore/get-all-templates": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * The API also allows fetching the source of a single template. + * Use the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents. + */ + "gitignore/get-template": { + parameters: { + path: { + name: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["gitignore-template"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * List repositories that an app installation can access. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + "apps/list-repos-accessible-to-installation": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + /** @example selected */ + repository_selection?: string; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)" endpoint. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + "apps/revoke-installation-access-token": { + parameters: {}; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list": { + parameters: { + query: { + /** Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** A list of comma separated label names. Example: `bug,ui,@high` */ + labels?: components["parameters"]["labels"]; + /** What to sort results by. Can be either `created`, `updated`, `comments`. */ + sort?: "created" | "updated" | "comments"; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + collab?: boolean; + orgs?: boolean; + owned?: boolean; + pulls?: boolean; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "licenses/get-all-commonly-used": { + parameters: { + query: { + featured?: boolean; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["license-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + "licenses/get": { + parameters: { + path: { + license: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["license"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "markdown/render": { + parameters: {}; + responses: { + /** Response */ + 200: { + headers: { + "Content-Length"?: string; + }; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The Markdown text to render in HTML. */ + text: string; + /** + * @description The rendering mode. Can be either `markdown` or `gfm`. + * @default markdown + * @example markdown + * @enum {string} + */ + mode?: "markdown" | "gfm"; + /** @description The repository context to use when creating references in `gfm` mode. For example, setting `context` to `octo-org/octo-repo` will change the text `#42` into an HTML link to issue 42 in the `octo-org/octo-repo` repository. */ + context?: string; + }; + }; + }; + }; + /** You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. */ + "markdown/render-raw": { + parameters: {}; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "text/html": string; + }; + }; + 304: components["responses"]["not_modified"]; + }; + requestBody: { + content: { + "text/plain": string; + "text/x-markdown": string; + }; + }; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account": { + parameters: { + path: { + /** account_id parameter */ + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** Not Found when the account has not purchased the listing */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan": { + parameters: { + path: { + /** The unique identifier of the plan. */ + plan_id: components["parameters"]["plan-id"]; + }; + query: { + /** The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + sort?: components["parameters"]["sort"]; + /** To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account-stubbed": { + parameters: { + path: { + /** account_id parameter */ + account_id: components["parameters"]["account-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + /** Not Found when the account has not purchased the listing */ + 404: unknown; + }; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans-stubbed": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan-stubbed": { + parameters: { + path: { + /** The unique identifier of the plan. */ + plan_id: components["parameters"]["plan-id"]; + }; + query: { + /** The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + sort?: components["parameters"]["sort"]; + /** To return the oldest accounts first, set to `asc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + }; + }; + /** + * Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." + * + * **Note:** The IP addresses shown in the documentation's response are only example values. You must always query the API directly to get the latest list of IP addresses. + */ + "meta/get": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["api-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + "activity/list-public-events-for-repo-network": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** List all notifications for the current user, sorted by most recently updated. */ + "activity/list-notifications-for-authenticated-user": { + parameters: { + query: { + /** If `true`, show notifications marked as read. */ + all?: components["parameters"]["all"]; + /** If `true`, only shows notifications in which the user is directly participating or mentioned. */ + participating?: components["parameters"]["participating"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + before?: components["parameters"]["before"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Marks all notifications as "read" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. */ + "activity/mark-notifications-as-read": { + parameters: {}; + responses: { + /** Response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** Reset Content */ + 205: unknown; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + requestBody: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + /** @description Whether the notification has been read. */ + read?: boolean; + }; + }; + }; + }; + "activity/get-thread": { + parameters: { + path: { + /** The unique identifier of the pull request thread. */ + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["thread"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + "activity/mark-thread-as-read": { + parameters: { + path: { + /** The unique identifier of the pull request thread. */ + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** Reset Content */ + 205: unknown; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + "activity/get-thread-subscription-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the pull request thread. */ + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint. + */ + "activity/set-thread-subscription": { + parameters: { + path: { + /** The unique identifier of the pull request thread. */ + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["thread-subscription"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to block all notifications from a thread. + * @default false + */ + ignored?: boolean; + }; + }; + }; + }; + /** Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`. */ + "activity/delete-thread-subscription": { + parameters: { + path: { + /** The unique identifier of the pull request thread. */ + thread_id: components["parameters"]["thread-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Get the octocat as ASCII art */ + "meta/get-octocat": { + parameters: { + query: { + /** The words to show in Octocat's speech bubble */ + s?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/octocat-stream": string; + }; + }; + }; + }; + /** + * Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations. + */ + "orgs/list": { + parameters: { + query: { + /** An organization ID. Only return organizations with an ID greater than this ID. */ + since?: components["parameters"]["since-org"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: { + Link?: string; + }; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * List the custom repository roles available in this organization. In order to see custom + * repository roles in an organization, the authenticated user must be an organization owner. + * + * For more information on custom repository roles, see "[Managing custom repository roles for an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization)". + */ + "orgs/list-custom-roles": { + parameters: { + path: { + organization_id: string; + }; + }; + responses: { + /** Response - list of custom role names */ + 200: { + content: { + "application/json": { + /** + * @description The number of custom roles in this organization + * @example 3 + */ + total_count?: number; + custom_roles?: components["schemas"]["organization-custom-repository-role"][]; + }; + }; + }; + }; + }; + /** + * To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://docs.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * GitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See "[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)" for details. For an example response, see 'Response with GitHub plan information' below." + */ + "orgs/get": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Enables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges. + */ + "orgs/update": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-full"]; + }; + }; + 409: components["responses"]["conflict"]; + /** Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Billing email address. This address is not publicized. */ + billing_email?: string; + /** @description The company name. */ + company?: string; + /** @description The publicly visible email address. */ + email?: string; + /** @description The Twitter username of the company. */ + twitter_username?: string; + /** @description The location. */ + location?: string; + /** @description The shorthand name of the company. */ + name?: string; + /** @description The description of the company. */ + description?: string; + /** @description Whether an organization can use organization projects. */ + has_organization_projects?: boolean; + /** @description Whether repositories that belong to the organization can use repository projects. */ + has_repository_projects?: boolean; + /** + * @description Default permission level members have for organization repositories. + * @default read + * @enum {string} + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * @description Whether of non-admin organization members can create repositories. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. + * @default true + */ + members_can_create_repositories?: boolean; + /** @description Whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_internal_repositories?: boolean; + /** @description Whether organization members can create private repositories, which are visible to organization members with permission. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_private_repositories?: boolean; + /** @description Whether organization members can create public repositories, which are visible to anyone. For more information, see "[Restricting repository creation in your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. */ + members_can_create_public_repositories?: boolean; + /** + * @description Specifies which types of repositories non-admin organization members can create. `private` is only available to repositories that are part of an organization on GitHub Enterprise Cloud. + * **Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details. + * @enum {string} + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; + /** + * @description Whether organization members can create GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_pages?: boolean; + /** + * @description Whether organization members can create public GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_public_pages?: boolean; + /** + * @description Whether organization members can create private GitHub Pages sites. Existing published sites will not be impacted. + * @default true + */ + members_can_create_private_pages?: boolean; + /** + * @description Whether organization members can fork private organization repositories. + * @default false + */ + members_can_fork_private_repositories?: boolean; + /** @example "http://github.blog" */ + blog?: string; + }; + }; + }; + }; + /** + * Gets the total GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * You must authenticate using an access token with the `read:org` scope to use this endpoint. GitHub Apps must have the `organization_admistration:read` permission to use this endpoint. + */ + "actions/get-actions-cache-usage-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["actions-cache-usage-org-enterprise"]; + }; + }; + }; + }; + /** + * Lists repositories and their GitHub Actions cache usage for an organization. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * You must authenticate using an access token with the `read:org` scope to use this endpoint. GitHub Apps must have the `organization_admistration:read` permission to use this endpoint. + */ + "actions/get-actions-cache-usage-by-repo-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + repository_cache_usages: components["schemas"]["actions-cache-usage-by-repository"][]; + }; + }; + }; + }; + }; + /** + * Gets the customization template for an OpenID Connect (OIDC) subject claim. + * You must authenticate using an access token with the `read:org` scope to use this endpoint. + * GitHub Apps must have the `organization_administration:write` permission to use this endpoint. + */ + "oidc/get-oidc-custom-sub-template-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** A JSON serialized template for OIDC subject claim customization */ + 200: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + }; + }; + /** + * Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. + * You must authenticate using an access token with the `write:org` scope to use this endpoint. + * GitHub Apps must have the `admin:org` permission to use this endpoint. + */ + "oidc/update-oidc-custom-sub-template-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": components["schemas"]["oidc-custom-sub"]; + }; + }; + }; + /** + * Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/get-github-actions-permissions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-organization-permissions"]; + }; + }; + }; + }; + /** + * Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. + * + * If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions and reusable workflows, then you cannot override them for the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/set-github-actions-permissions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + }; + /** + * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/list-selected-repositories-enabled-github-actions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + }; + }; + /** + * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/set-selected-repositories-enabled-github-actions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description List of repository IDs to enable for GitHub Actions. */ + selected_repository_ids: number[]; + }; + }; + }; + }; + /** + * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/enable-selected-repository-github-actions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/disable-selected-repository-github-actions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)."" + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/get-allowed-actions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * If the organization belongs to an enterprise that has `selected` actions and reusable workflows set at the enterprise level, then you cannot override any of the enterprise's allowed actions and reusable workflows settings. + * + * To use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/set-allowed-actions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, + * as well as whether GitHub Actions can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/get-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in an organization, and sets if GitHub Actions + * can submit approving pull request reviews. For more information, see + * "[Setting the permissions of the GITHUB_TOKEN for your organization](https://docs.github.com/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization#setting-the-permissions-of-the-github_token-for-your-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/set-github-actions-default-workflow-permissions-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Success response */ + 204: never; + /** Conflict response when changing a setting is prevented by the owning enterprise */ + 409: unknown; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists all self-hosted runner groups configured in an organization and inherited from an enterprise. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-self-hosted-runner-groups-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Only return runner groups that are allowed to be used by this repository. */ + visible_to_repository?: components["parameters"]["visible-to-repository"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + runner_groups: components["schemas"]["runner-groups-org"][]; + }; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Creates a new self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/create-self-hosted-runner-group-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["runner-groups-org"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Name of the runner group. */ + name: string; + /** + * @description Visibility of a runner group. You can select all repositories, select individual repositories, or limit access to private repositories. + * @default all + * @enum {string} + */ + visibility?: "selected" | "all" | "private"; + /** @description List of repository IDs that can access the runner group. */ + selected_repository_ids?: number[]; + /** @description List of runner IDs to add to the runner group. */ + runners?: number[]; + /** + * @description Whether the runner group can be used by `public` repositories. + * @default false + */ + allows_public_repositories?: boolean; + /** + * @description If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array. + * @default false + */ + restricted_to_workflows?: boolean; + /** @description List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`. */ + selected_workflows?: string[]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Gets a specific self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/get-self-hosted-runner-group-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-groups-org"]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Deletes a self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-group-from-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Updates the `name` and `visibility` of a self-hosted runner group in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/update-self-hosted-runner-group-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-groups-org"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Name of the runner group. */ + name: string; + /** + * @description Visibility of a runner group. You can select all repositories, select individual repositories, or all private repositories. + * @enum {string} + */ + visibility?: "selected" | "all" | "private"; + /** + * @description Whether the runner group can be used by `public` repositories. + * @default false + */ + allows_public_repositories?: boolean; + /** + * @description If `true`, the runner group will be restricted to running only the workflows specified in the `selected_workflows` array. + * @default false + */ + restricted_to_workflows?: boolean; + /** @description List of workflows the runner group should be allowed to run. This setting will be ignored unless `restricted_to_workflows` is set to `true`. */ + selected_workflows?: string[]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists the repositories with access to a self-hosted runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Replaces the list of repositories that have access to a self-hosted runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/set-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description List of repository IDs that can access the runner group. */ + selected_repository_ids: number[]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Adds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` + * scope to use this endpoint. + */ + "actions/add-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/remove-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists self-hosted runners that are in a specific organization group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-in-group-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Replaces the list of self-hosted runners that are part of an organization runner group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/set-self-hosted-runners-in-group-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description List of runner IDs to add to the runner group. */ + runners: number[]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Adds a self-hosted runner to a runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` + * scope to use this endpoint. + */ + "actions/add-self-hosted-runner-to-group-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/remove-self-hosted-runner-from-group-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner group. */ + runner_group_id: components["parameters"]["runner-group-id"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists all self-hosted runners configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-runner-applications-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + */ + "actions/create-registration-token-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + "actions/create-remove-token-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Gets a specific self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/get-self-hosted-runner-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists all labels for a self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + }; + /** + * Add custom labels to a self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + }; + /** + * Remove all custom labels from a self-hosted runner configured in an + * organization. Returns the remaining read-only labels from the runner. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner configured + * in an organization. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + /** The name of a self-hosted runner's custom label. */ + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/list-org-secrets": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-actions-secret"][]; + }; + }; + }; + }; + }; + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/get-org-public-key": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/get-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-actions-secret"]; + }; + }; + }; + }; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** Response when updating a secret */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/actions#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (Partial & Partial)[]; + }; + }; + }; + }; + /** Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/delete-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/list-selected-repos-for-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/set-selected-repos-for-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + }; + /** Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/add-selected-repo-to-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** No Content when repository was added to the selected list */ + 204: never; + /** Conflict when visibility type is not set to selected */ + 409: unknown; + }; + }; + /** Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. */ + "actions/remove-selected-repo-from-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** Response when repository was removed from the selected list */ + 204: never; + /** Conflict when visibility type not set to selected */ + 409: unknown; + }; + }; + /** + * Gets the audit log for an organization. For more information, see "[Reviewing the audit log for your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization)." + * + * This endpoint is available for organizations on GitHub Enterprise Cloud. To use this endpoint, you must be an organization owner, and you must use an access token with the `admin:org` scope. GitHub Apps must have the `organization_administration` read permission to use this endpoint. + * + * By default, the response includes up to 30 events from the past three months. Use the `phrase` parameter to filter results and retrieve older events. For example, use the `phrase` parameter with the `created` qualifier to filter events based on when the events occurred. For more information, see "[Reviewing the audit log for your organization](https://docs.github.com/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization#searching-the-audit-log)." + * + * Use pagination to retrieve fewer or more than 30 events. For more information, see "[Resources in the REST API](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination)." + */ + "orgs/get-audit-log": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** A search phrase. For more information, see [Searching the audit log](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#searching-the-audit-log). */ + phrase?: components["parameters"]["audit-log-phrase"]; + /** + * The event types to include: + * + * - `web` - returns web (non-Git) events. + * - `git` - returns Git events. + * - `all` - returns both web and Git events. + * + * The default is `web`. + */ + include?: components["parameters"]["audit-log-include"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + after?: components["parameters"]["audit-log-after"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + before?: components["parameters"]["audit-log-before"]; + /** + * The order of audit log events. To list newest events first, specify `desc`. To list oldest events first, specify `asc`. + * + * The default is `desc`. + */ + order?: components["parameters"]["audit-log-order"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["audit-log-event"][]; + }; + }; + }; + }; + /** List the users blocked by an organization. */ + "orgs/list-blocked-users": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + "orgs/check-blocked-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** If the user is blocked: */ + 204: never; + /** If the user is not blocked: */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + "orgs/block-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 422: components["responses"]["validation_failed"]; + }; + }; + "orgs/unblock-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists code scanning alerts for the default branch for all eligible repositories in an organization. Eligible repositories are repositories that are owned by organizations that you own or for which you are a security manager. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)." + * + * To use this endpoint, you must be an owner or security manager for the organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + "code-scanning/list-alerts-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + tool_name?: components["parameters"]["tool-name"]; + /** The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + tool_guid?: components["parameters"]["tool-guid"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. */ + before?: components["parameters"]["pagination-before"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. */ + after?: components["parameters"]["pagination-after"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** If specified, only code scanning alerts with this state will be returned. */ + state?: components["schemas"]["code-scanning-alert-state"]; + /** The property by which to sort the results. */ + sort?: "created" | "updated"; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["code-scanning-organization-alert-items"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Lists the codespaces associated to a specified organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "codespaces/list-in-organization": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products). + * + * An authenticated organization owner with the `read:org` scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see [About authentication with SAML single sign-on](https://docs.github.com/en/articles/about-authentication-with-saml-single-sign-on). + */ + "orgs/list-saml-sso-authorizations": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page token */ + page?: number; + /** Limits the list of credentials authorizations for an organization to a specific login */ + login?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["credential-authorization"][]; + }; + }; + }; + }; + /** + * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products). + * + * An authenticated organization owner with the `admin:org` scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access. + */ + "orgs/remove-saml-sso-authorization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + credential_id: number; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/list-org-secrets": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["organization-dependabot-secret"][]; + }; + }; + }; + }; + }; + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/get-org-public-key": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/get-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["organization-dependabot-secret"]; + }; + }; + }; + }; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "dependabot/create-or-update-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** Response when updating a secret */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + /** + * @description Which type of organization repositories have access to the organization secret. `selected` means only the repositories specified by `selected_repository_ids` can access the secret. + * @enum {string} + */ + visibility: "all" | "private" | "selected"; + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids?: (Partial & Partial)[]; + }; + }; + }; + }; + /** Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/delete-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/list-selected-repos-for-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + }; + /** Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/set-selected-repos-for-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + }; + /** Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/add-selected-repo-to-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** No Content when repository was added to the selected list */ + 204: never; + /** Conflict when visibility type is not set to selected */ + 409: unknown; + }; + }; + /** Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint. */ + "dependabot/remove-selected-repo-from-org-secret": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** Response when repository was removed from the selected list */ + 204: never; + /** Conflict when visibility type not set to selected */ + 409: unknown; + }; + }; + "activity/list-public-org-events": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** + * Displays information about the specific group's usage. Provides a list of the group's external members as well as a list of teams that this group is connected to. + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + "teams/external-idp-group-info-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the group. */ + group_id: components["parameters"]["group-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["external-group"]; + }; + }; + }; + }; + /** + * Lists external groups available in an organization. You can query the groups using the `display_name` parameter, only groups with a `group_name` containing the text provided in the `display_name` parameter will be returned. You can also limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see "[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89)." + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + "teams/list-external-idp-groups-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page token */ + page?: number; + /** Limits the list to groups containing the text in the group name */ + display_name?: string; + }; + }; + responses: { + /** Response */ + 200: { + headers: { + Link?: string; + }; + content: { + "application/json": components["schemas"]["external-groups"]; + }; + }; + }; + }; + /** The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. */ + "orgs/list-failed-invitations": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "orgs/list-webhooks": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["org-hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Here's how you can create a hook that posts payloads in JSON format: */ + "orgs/create-webhook": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Must be passed as "web". */ + name: string; + /** @description Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#create-hook-config-params). */ + config: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + /** @example "kdaigle" */ + username?: string; + /** @example "password" */ + password?: string; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + }; + /** Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization)." */ + "orgs/get-webhook": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "orgs/delete-webhook": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization)." */ + "orgs/update-webhook": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["org-hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#update-hook-config-params). */ + config?: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + /** @example "web" */ + name?: string; + }; + }; + }; + }; + /** + * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission. + */ + "orgs/get-webhook-config-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission. + */ + "orgs/update-webhook-config-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + }; + /** Returns a list of webhook deliveries for a webhook configured in an organization. */ + "orgs/list-webhook-deliveries": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ + cursor?: components["parameters"]["cursor"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Returns a delivery for a webhook configured in an organization. */ + "orgs/get-webhook-delivery": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Redeliver a delivery for a webhook configured in an organization. */ + "orgs/redeliver-webhook-delivery": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. */ + "orgs/ping-webhook": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-org-installation": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint. */ + "orgs/list-app-installations": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + }; + }; + /** Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. */ + "interactions/get-restrictions-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": Partial< + components["schemas"]["interaction-limit-response"] + > & + Partial<{ [key: string]: unknown }>; + }; + }; + }; + }; + /** Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. */ + "interactions/set-restrictions-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + }; + /** Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. */ + "interactions/remove-restrictions-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. */ + "orgs/list-pending-invitations": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "orgs/create-invitation": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["organization-invitation"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description **Required unless you provide `email`**. GitHub user ID for the person you are inviting. */ + invitee_id?: number; + /** @description **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. */ + email?: string; + /** + * @description The role for the new member. + * \* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * \* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * \* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + * @default direct_member + * @enum {string} + */ + role?: "admin" | "direct_member" | "billing_manager"; + /** @description Specify IDs for the teams you want to invite new members to. */ + team_ids?: number[]; + }; + }; + }; + }; + /** + * Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + "orgs/cancel-invitation": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the invitation. */ + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. */ + "orgs/list-invitation-teams": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the invitation. */ + invitation_id: components["parameters"]["invitation-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** A list of comma separated label names. Example: `bug,ui,@high` */ + labels?: components["parameters"]["labels"]; + /** What to sort results by. Can be either `created`, `updated`, `comments`. */ + sort?: "created" | "updated" | "comments"; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. */ + "orgs/list-members": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Filter members returned in the list. `2fa_disabled` means that only members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. This options is only available for organization owners. */ + filter?: "2fa_disabled" | "all"; + /** Filter members returned by their role. */ + role?: "all" | "admin" | "member"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + /** Response if requester is not an organization member */ + 302: never; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Check if a user is, publicly or privately, a member of the organization. */ + "orgs/check-membership-for-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response if requester is an organization member and user is a member */ + 204: never; + /** Response if requester is not an organization member */ + 302: never; + /** Not Found if requester is an organization member and user is not a member */ + 404: unknown; + }; + }; + /** Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. */ + "orgs/remove-member": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Deletes a user's codespace. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "codespaces/delete-from-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stops a user's codespace. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "codespaces/stop-in-organization": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. */ + "orgs/get-membership-for-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + "orgs/set-membership-for-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The role to give the user in the organization. Can be one of: + * \* `admin` - The user will become an owner of the organization. + * \* `member` - The user will become a non-owner member of the organization. + * @default member + * @enum {string} + */ + role?: "admin" | "member"; + }; + }; + }; + }; + /** + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + "orgs/remove-membership-for-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists the most recent migrations. */ + "migrations/list-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + }; + }; + /** Initiates the generation of a migration archive. */ + "migrations/start-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description A list of arrays indicating which repositories should be migrated. */ + repositories: string[]; + /** + * @description Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + * @default false + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @default false + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @default false + */ + exclude_git_data?: boolean; + /** + * @description Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Indicates whether releases should be excluded from the migration (to reduce migration archive file size). + * @default false + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. from the migration. + * @default false + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** @description Exclude related items from being returned in the response in order to improve performance of the request. The array can include any of: `"repositories"`. */ + exclude?: "repositories"[]; + }; + }; + }; + }; + /** + * Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + "migrations/get-status-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + query: { + /** Exclude attributes from the API response to improve performance */ + exclude?: "repositories"[]; + }; + }; + responses: { + /** + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Fetches the URL to a migration archive. */ + "migrations/download-archive-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** Response */ + 302: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Deletes a previous migration archive. Migration archives are automatically deleted after seven days. */ + "migrations/delete-archive-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data. */ + "migrations/unlock-repo-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + /** repo_name parameter */ + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** List all the repositories for this organization migration. */ + "migrations/list-repos-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** List all users who are outside collaborators of an organization. */ + "orgs/list-outside-collaborators": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Filter the list of outside collaborators. `2fa_disabled` means that only outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled will be returned. */ + filter?: "2fa_disabled" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://docs.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." */ + "orgs/convert-member-to-outside-collaborator": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** User is getting converted asynchronously */ + 202: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + /** User was converted */ + 204: never; + /** Forbidden if user is the last owner of the organization, not a member of the organization, or if the enterprise enforces a policy for inviting outside collaborators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/en/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." */ + 403: unknown; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description When set to `true`, the request will be performed asynchronously. Returns a 202 status code when the job is successfully queued. + * @default false + */ + async?: boolean; + }; + }; + }; + }; + /** Removing a user from this list will remove them from all the organization's repositories. */ + "orgs/remove-outside-collaborator": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + /** Unprocessable Entity if user is a member of the organization */ + 422: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + }; + /** + * Lists all packages in an organization readable by the user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/list-packages-for-organization": { + parameters: { + query: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** The selected visibility of the packages. Only `container` package_types currently support `internal` visibility properly. For other ecosystems `internal` is synonymous with `private`. This parameter is optional and only filters an existing result set. */ + visibility?: components["parameters"]["package-visibility"]; + }; + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Gets a specific package in an organization. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-package-for-organization": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + "packages/delete-package-for-org": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + "packages/restore-package-for-org": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** package token */ + token?: string; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Returns all package versions for a package owned by an organization. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-all-package-versions-for-package-owned-by-org": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Gets a specific package version in an organization. + * + * You must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-package-version-for-organization": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + "packages/delete-package-version-for-org": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + "packages/restore-package-version-for-org": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + "projects/list-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Creates an organization project board. Returns a `410 Gone` status if projects are disabled in the organization or if the organization does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + "projects/create-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + }; + /** Members of an organization can choose to have their membership publicized or not. */ + "orgs/list-public-members": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + "orgs/check-public-membership-for-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response if user is a public member */ + 204: never; + /** Not Found if user is not a public member */ + 404: unknown; + }; + }; + /** + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "orgs/set-public-membership-for-authenticated-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + }; + }; + "orgs/remove-public-membership-for-authenticated-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Lists repositories for the specified organization. */ + "repos/list-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Specifies the types of repositories you want returned. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `type` can also be `internal`. However, the `internal` value is not yet supported when a GitHub App calls this API with an installation access token. */ + type?: + | "all" + | "public" + | "private" + | "forks" + | "sources" + | "member" + | "internal"; + /** The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository + */ + "repos/create-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["repository"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the repository. */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. Note: For GitHub Enterprise Server and GitHub AE, this endpoint will only list repositories available to all users on the enterprise. For more information, see "[Creating an internal repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-repository-visibility#about-internal-repositories)" in the GitHub Help documentation. + * @enum {string} + */ + visibility?: "public" | "private" | "internal"; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Pass `true` to create an initial commit with empty README. + * @default false + */ + auto_init?: boolean; + /** @description Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". */ + gitignore_template?: string; + /** @description Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://docs.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". */ + license_template?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + }; + }; + }; + }; + /** + * Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. + * To use this endpoint, you must be an administrator or security manager for the organization, and you must use an access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + "secret-scanning/list-alerts-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Set to `open` or `resolved` to only list secret scanning alerts in a specific state. */ + state?: components["parameters"]["secret-scanning-alert-state"]; + /** + * A comma-separated list of secret types to return. By default all secret types are returned. + * See "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)" + * for a complete list of secret types. + */ + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + /** A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. */ + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + /** The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. */ + sort?: components["parameters"]["secret-scanning-alert-sort"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. */ + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. */ + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-secret-scanning-alert"][]; + }; + }; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + "billing/get-github-actions-billing-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Gets the GitHub Advanced Security active committers for an organization per repository. + * + * Each distinct user login across all repositories is counted as a single Advanced Security seat, so the `total_advanced_security_committers` is not the sum of advanced_security_committers for each repository. + * + * If this organization defers to an enterprise for billing, the `total_advanced_security_committers` returned from the organization API may include some users that are in more than one organization, so they will only consume a single Advanced Security seat at the enterprise level. + * + * The total number of repositories with committer information is tracked by the `total_count` field. + */ + "billing/get-github-advanced-security-billing-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Success */ + 200: { + content: { + "application/json": components["schemas"]["advanced-security-active-committers"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + }; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + "billing/get-github-packages-billing-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + "billing/get-shared-storage-billing-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups available in an organization. You can limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see "[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89)." + */ + "teams/list-idp-groups-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page token */ + page?: string; + }; + }; + responses: { + /** Response */ + 200: { + headers: { + Link?: string; + }; + content: { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + }; + }; + /** Lists all teams in an organization that are visible to the authenticated user. */ + "teams/list": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://docs.github.com/en/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + "teams/create": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** @description List GitHub IDs for organization members who will become team maintainers. */ + maintainers?: string[]; + /** @description The full name (e.g., "organization-name/repository-name") of repositories to add the team to. */ + repo_names?: string[]; + /** + * @description The level of privacy this team should have. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * Default for child team: `closed` + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number; + }; + }; + }; + }; + /** + * Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + "teams/get-by-name": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + "teams/delete-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + "teams/update-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name?: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + }; + /** + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + */ + "teams/list-discussions-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + query: { + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Pinned discussions only filter */ + pinned?: string; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + */ + "teams/create-discussion-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + }; + /** + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + "teams/get-discussion-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + "teams/delete-discussion-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + "teams/update-discussion-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + }; + /** + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + "teams/list-discussion-comments-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + "teams/create-discussion-comment-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + }; + /** + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + "teams/get-discussion-comment-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + "teams/delete-discussion-comment-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + "teams/update-discussion-comment-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + }; + /** + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + "reactions/list-for-team-discussion-comment-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + "reactions/create-for-team-discussion-comment-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response when the reaction type has already been added to this team discussion comment */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/delete-for-team-discussion-comment": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + /** The unique identifier of the reaction. */ + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + "reactions/list-for-team-discussion-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + "reactions/create-for-team-discussion-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/delete-for-team-discussion": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The unique identifier of the reaction. */ + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists a connection between a team and an external group. + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + "teams/list-linked-external-idp-groups-to-team-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["external-groups"]; + }; + }; + }; + }; + /** + * Deletes a connection between a team and an external group. + * + * You can manage team membership with your IdP using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "teams/unlink-external-idp-group-from-team-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Creates a connection between a team and an external group. Only one external group can be linked to a team. + * + * You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)" in the GitHub Help documentation. + */ + "teams/link-external-idp-group-to-team-for-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["external-group"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description External Group Id + * @example 1 + */ + group_id: number; + }; + }; + }; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + "teams/list-pending-invitations-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/list-members-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + query: { + /** Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + "teams/get-membership-for-user-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** if user has no team membership */ + 404: unknown; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/add-or-update-membership-for-user-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** Forbidden if team synchronization is set up */ + 403: unknown; + /** Unprocessable Entity if you attempt to add an organization to a team */ + 422: unknown; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/remove-membership-for-user-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + /** Forbidden if team synchronization is set up */ + 403: unknown; + }; + }; + /** + * Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + "teams/list-projects-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + }; + }; + /** + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/check-permissions-for-project-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** Not Found if project is not managed by this team */ + 404: unknown; + }; + }; + /** + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/add-or-update-project-permissions-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + /** Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + }; + /** + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/remove-project-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + "teams/list-repos-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/check-permissions-for-repo-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Alternative response with repository permissions */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** Response if team has permission for the repository. This is the response when the repository media type hasn't been provded in the Accept header. */ + 204: never; + /** Not Found if team does not have permission for the repository */ + 404: unknown; + }; + }; + /** + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + "teams/add-or-update-repo-permissions-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. In addition to the enumerated values, you can also specify a custom repository role name, if the owning organization has defined any. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @default push + * @enum {string} + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; + }; + }; + }; + }; + /** + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/remove-repo-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups connected to a team on GitHub. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. + */ + "teams/list-idp-groups-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. + */ + "teams/create-or-update-idp-group-connections-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. */ + groups?: { + /** @description ID of the IdP group. */ + group_id: string; + /** @description Name of the IdP group. */ + group_name: string; + /** @description Description of the IdP group. */ + group_description: string; + }[]; + }; + }; + }; + }; + /** + * Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + "teams/list-child-in-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The slug of the team name. */ + team_slug: components["parameters"]["team-slug"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** if child teams exist */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + }; + }; + "projects/get-card": { + parameters: { + path: { + /** The unique identifier of the card. */ + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "projects/delete-card": { + parameters: { + path: { + /** The unique identifier of the card. */ + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "projects/update-card": { + parameters: { + path: { + /** The unique identifier of the card. */ + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The project card's note + * @example Update all gems + */ + note?: string | null; + /** + * @description Whether or not the card is archived + * @example false + */ + archived?: boolean; + }; + }; + }; + }; + "projects/move-card": { + parameters: { + path: { + /** The unique identifier of the card. */ + card_id: components["parameters"]["card-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + resource?: string; + field?: string; + }[]; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + /** Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the card in a column. Can be one of: `top`, `bottom`, or `after:` to place after the specified card. + * @example bottom + */ + position: string; + /** + * @description The unique identifier of the column the card should be moved to + * @example 42 + */ + column_id?: number; + }; + }; + }; + }; + "projects/get-column": { + parameters: { + path: { + /** The unique identifier of the column. */ + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "projects/delete-column": { + parameters: { + path: { + /** The unique identifier of the column. */ + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + "projects/update-column": { + parameters: { + path: { + /** The unique identifier of the column. */ + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + }; + "projects/list-cards": { + parameters: { + path: { + /** The unique identifier of the column. */ + column_id: components["parameters"]["column-id"]; + }; + query: { + /** Filters the project cards that are returned by the card's state. */ + archived_state?: "all" | "archived" | "not_archived"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["project-card"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + "projects/create-card": { + parameters: { + path: { + /** The unique identifier of the column. */ + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["project-card"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** Validation failed */ + 422: { + content: { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + /** Response */ + 503: { + content: { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + }[]; + }; + }; + }; + }; + requestBody: { + content: { + "application/json": + | { + /** + * @description The project card's note + * @example Update all gems + */ + note: string | null; + } + | { + /** + * @description The unique identifier of the content associated with the card + * @example 42 + */ + content_id: number; + /** + * @description The piece of content associated with the card + * @example PullRequest + */ + content_type: string; + }; + }; + }; + }; + "projects/move-column": { + parameters: { + path: { + /** The unique identifier of the column. */ + column_id: components["parameters"]["column-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The position of the column in a project. Can be one of: `first`, `last`, or `after:` to place after the specified column. + * @example last + */ + position: string; + }; + }; + }; + }; + /** Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + "projects/get": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Deletes a project board. Returns a `404 Not Found` status if projects are disabled. */ + "projects/delete": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Delete Success */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + "projects/update": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + /** Forbidden */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + }; + /** Not Found if the authenticated user does not have access to the project */ + 404: unknown; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name?: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + /** + * @description State of the project; either 'open' or 'closed' + * @example open + */ + state?: string; + /** + * @description The baseline permission that all organization members have on this project + * @enum {string} + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** @description Whether or not this project can be seen by everyone. */ + private?: boolean; + }; + }; + }; + }; + /** Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. */ + "projects/list-collaborators": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + query: { + /** Filters the collaborators by their affiliation. `outside` means outside collaborators of a project that are not a member of the project's organization. `direct` means collaborators with permissions to a project, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. */ + "projects/add-collaborator": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. + * @default write + * @example write + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + } | null; + }; + }; + }; + /** Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. */ + "projects/remove-collaborator": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. */ + "projects/get-permission-for-user": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["project-collaborator-permission"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "projects/list-columns": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["project-column"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + "projects/create-column": { + parameters: { + path: { + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["project-column"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project column + * @example Remaining tasks + */ + name: string; + }; + }; + }; + }; + /** + * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + "rate-limit/get": { + parameters: {}; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["rate-limit-overview"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. */ + "repos/get": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + */ + "repos/delete": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + 307: components["responses"]["temporary_redirect"]; + /** If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response: */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint. */ + "repos/update": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 307: components["responses"]["temporary_redirect"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the repository. */ + name?: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Either `true` to make the repository private or `false` to make it public. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://docs.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + * @default false + */ + private?: boolean; + /** + * @description Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`." + * @enum {string} + */ + visibility?: "public" | "private" | "internal"; + /** @description Specify which security and analysis features to enable or disable. For example, to enable GitHub Advanced Security, use this data in the body of the PATCH request: `{"security_and_analysis": {"advanced_security": {"status": "enabled"}}}`. If you have admin permissions for a private repository covered by an Advanced Security license, you can check which security and analysis features are currently enabled by using a `GET /repos/{owner}/{repo}` request. */ + security_and_analysis?: { + /** @description Use the `status` property to enable or disable GitHub Advanced Security for this repository. For more information, see "[About GitHub Advanced Security](/github/getting-started-with-github/learning-about-github/about-github-advanced-security)." */ + advanced_security?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning for this repository. For more information, see "[About secret scanning](/code-security/secret-security/about-secret-scanning)." */ + secret_scanning?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + /** @description Use the `status` property to enable or disable secret scanning push protection for this repository. For more information, see "[Protecting pushes with secret scanning](/code-security/secret-scanning/protecting-pushes-with-secret-scanning)." */ + secret_scanning_push_protection?: { + /** @description Can be `enabled` or `disabled`. */ + status?: string; + }; + } | null; + /** + * @description Either `true` to enable issues for this repository or `false` to disable them. + * @default true + */ + has_issues?: boolean; + /** + * @description Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + * @default true + */ + has_projects?: boolean; + /** + * @description Either `true` to enable the wiki for this repository or `false` to disable it. + * @default true + */ + has_wiki?: boolean; + /** + * @description Either `true` to make this repo available as a template repository or `false` to prevent it. + * @default false + */ + is_template?: boolean; + /** @description Updates the default branch for this repository. */ + default_branch?: string; + /** + * @description Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + * @default true + */ + allow_squash_merge?: boolean; + /** + * @description Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + * @default true + */ + allow_merge_commit?: boolean; + /** + * @description Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + * @default true + */ + allow_rebase_merge?: boolean; + /** + * @description Either `true` to allow auto-merge on pull requests, or `false` to disallow auto-merge. + * @default false + */ + allow_auto_merge?: boolean; + /** + * @description Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + * @default false + */ + delete_branch_on_merge?: boolean; + /** + * @description Either `true` to always allow a pull request head branch that is behind its base branch to be updated even if it is not required to be up to date before merging, or false otherwise. + * @default false + */ + allow_update_branch?: boolean; + /** + * @description Either `true` to allow squash-merge commits to use pull request title, or `false` to use commit message. + * @default false + */ + use_squash_pr_title_as_default?: boolean; + /** + * @description `true` to archive this repository. **Note**: You cannot unarchive repositories through the API. + * @default false + */ + archived?: boolean; + /** + * @description Either `true` to allow private forks, or `false` to prevent private forks. + * @default false + */ + allow_forking?: boolean; + }; + }; + }; + }; + /** Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/list-artifacts-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/get-artifact": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the artifact. */ + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["artifact"]; + }; + }; + }; + }; + /** Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + "actions/delete-artifact": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the artifact. */ + artifact_id: components["parameters"]["artifact-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to + * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/download-artifact": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the artifact. */ + artifact_id: components["parameters"]["artifact-id"]; + archive_format: string; + }; + }; + responses: { + /** Response */ + 302: never; + 410: components["responses"]["gone"]; + }; + }; + /** + * Gets GitHub Actions cache usage for a repository. + * The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-actions-cache-usage": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-usage-by-repository"]; + }; + }; + }; + }; + /** + * Lists the GitHub Actions caches for a repository. + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-actions-cache-list": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["parameters"]["git-ref"]; + /** An explicit key or prefix for identifying the cache */ + key?: components["parameters"]["actions-cache-key"]; + /** The property to sort the results by. `created_at` means when the cache was created. `last_accessed_at` means when the cache was last accessed. `size_in_bytes` is the size of the cache in bytes. */ + sort?: components["parameters"]["actions-cache-list-sort"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/delete-actions-cache-by-key": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** A key for identifying the cache. */ + key: components["parameters"]["actions-cache-key-required"]; + /** The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["parameters"]["git-ref"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-cache-list"]; + }; + }; + }; + }; + /** + * Deletes a GitHub Actions cache for a repository, using a cache ID. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/delete-actions-cache-by-id": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the GitHub Actions cache. */ + cache_id: components["parameters"]["cache-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/get-job-for-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the job. */ + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["job"]; + }; + }; + }; + }; + /** + * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can + * use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must + * have the `actions:read` permission to use this endpoint. + */ + "actions/download-job-logs-for-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the job. */ + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** Response */ + 302: never; + }; + }; + /** Re-run a job and its dependent jobs in a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + "actions/re-run-job-for-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the job. */ + job_id: components["parameters"]["job-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + }; + /** + * Gets the `opt-out` flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository. + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `organization_administration:read` permission to use this endpoint. + */ + "actions/get-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Status response */ + 200: { + content: { + "application/json": components["schemas"]["opt-out-oidc-custom-sub"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Sets the `opt-out` flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository. + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/set-custom-oidc-sub-claim-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Empty response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": components["schemas"]["opt-out-oidc-custom-sub"]; + }; + }; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/get-github-actions-permissions-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-repository-permissions"]; + }; + }; + }; + }; + /** + * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. + * + * If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions and reusable workflows, then you cannot override them for the repository. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/set-github-actions-permissions-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + }; + }; + /** + * Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to internal repositories. For more information, see "[Managing GitHub Actions settings for a repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-an-internal-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the + * repository `administration` permission to use this endpoint. + */ + "actions/get-workflow-access-to-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + }; + }; + /** + * Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. + * This endpoint only applies to internal repositories. For more information, see "[Managing GitHub Actions settings for a repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#allowing-access-to-components-in-an-internal-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the + * repository `administration` permission to use this endpoint. + */ + "actions/set-workflow-access-to-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-workflow-access-to-repository"]; + }; + }; + }; + /** + * Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/get-allowed-actions-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + }; + /** + * Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * If the repository belongs to an organization or enterprise that has `selected` actions and reusable workflows set at the organization or enterprise levels, then you cannot override any of the allowed actions and reusable workflows settings. + * + * To use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/set-allowed-actions-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + /** + * Gets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, + * as well as if GitHub Actions can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the repository `administration` permission to use this API. + */ + "actions/get-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-get-default-workflow-permissions"]; + }; + }; + }; + }; + /** + * Sets the default workflow permissions granted to the `GITHUB_TOKEN` when running workflows in a repository, and sets if GitHub Actions + * can submit approving pull request reviews. + * For more information, see "[Setting the permissions of the GITHUB_TOKEN for your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#setting-the-permissions-of-the-github_token-for-your-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the repository `administration` permission to use this API. + */ + "actions/set-github-actions-default-workflow-permissions-repository": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Success response */ + 204: never; + /** Conflict response when changing a setting is prevented by the owning organization or enterprise */ + 409: unknown; + }; + requestBody: { + content: { + "application/json": components["schemas"]["actions-set-default-workflow-permissions"]; + }; + }; + }; + /** Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint. */ + "actions/list-self-hosted-runners-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + runners: components["schemas"]["runner"][]; + }; + }; + }; + }; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + "actions/list-runner-applications-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate + * using an access token with the `repo` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN + * ``` + */ + "actions/create-registration-token-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + "actions/create-remove-token-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + }; + /** + * Gets a specific self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + "actions/get-self-hosted-runner-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + }; + /** + * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `repo` + * scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists all labels for a self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + "actions/list-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove all previous custom labels and set the new custom labels for a specific + * self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + "actions/set-custom-labels-for-self-hosted-runner-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to set for the runner. You can pass an empty array to remove all custom labels. */ + labels: string[]; + }; + }; + }; + }; + /** + * Add custom labels to a self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + "actions/add-custom-labels-to-self-hosted-runner-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The names of the custom labels to add to the runner. */ + labels: string[]; + }; + }; + }; + }; + /** + * Remove all custom labels from a self-hosted runner configured in a + * repository. Returns the remaining read-only labels from the runner. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + "actions/remove-all-custom-labels-from-self-hosted-runner-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels_readonly"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a custom label from a self-hosted runner configured + * in a repository. Returns the remaining labels from the runner. + * + * This endpoint returns a `404 Not Found` status if the custom label is not + * present on the runner. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + "actions/remove-custom-label-from-self-hosted-runner-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** Unique identifier of the self-hosted runner. */ + runner_id: components["parameters"]["runner-id"]; + /** The name of a self-hosted runner's custom label. */ + name: components["parameters"]["runner-label-name"]; + }; + }; + responses: { + 200: components["responses"]["actions_runner_labels"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** + * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/list-workflow-runs-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. */ + actor?: components["parameters"]["actor"]; + /** Returns workflow runs associated with a branch. Use the name of the branch of the `push`. */ + branch?: components["parameters"]["workflow-run-branch"]; + /** Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." */ + event?: components["parameters"]["event"]; + /** Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. For a list of the possible `status` and `conclusion` options, see "[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run)." */ + status?: components["parameters"]["workflow-run-status"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." */ + created?: components["parameters"]["created"]; + /** If `true` pull requests are omitted from the response (empty array). */ + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + /** Returns workflow runs with the `check_suite_id` that you specify. */ + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/get-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + query: { + /** If `true` pull requests are omitted from the response (empty array). */ + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** + * Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is + * private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use + * this endpoint. + */ + "actions/delete-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/get-reviews-for-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["environment-approvals"][]; + }; + }; + }; + }; + /** + * Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see ["Approving workflow runs from public forks](https://docs.github.com/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/approve-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/list-workflow-run-artifacts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + artifacts: components["schemas"]["artifact"][]; + }; + }; + }; + }; + }; + /** + * Gets a specific workflow run attempt. Anyone with read access to the repository + * can use this endpoint. If the repository is private you must use an access token + * with the `repo` scope. GitHub Apps must have the `actions:read` permission to + * use this endpoint. + */ + "actions/get-workflow-run-attempt": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + /** The attempt number of the workflow run. */ + attempt_number: components["parameters"]["attempt-number"]; + }; + query: { + /** If `true` pull requests are omitted from the response (empty array). */ + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + }; + /** Lists jobs for a specific workflow run attempt. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). */ + "actions/list-jobs-for-workflow-run-attempt": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + /** The attempt number of the workflow run. */ + attempt_number: components["parameters"]["attempt-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after + * 1 minute. Look for `Location:` in the response header to find the URL for the download. Anyone with read access to + * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/download-workflow-run-attempt-logs": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + /** The attempt number of the workflow run. */ + attempt_number: components["parameters"]["attempt-number"]; + }; + }; + responses: { + /** Response */ + 302: never; + }; + }; + /** Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + "actions/cancel-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 202: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + 409: components["responses"]["conflict"]; + }; + }; + /** Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). */ + "actions/list-jobs-for-workflow-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + query: { + /** Filters jobs by their `completed_at` timestamp. `latest` returns jobs from the most recent execution of the workflow run. `all` returns all jobs for a workflow run, including from old executions of the workflow run. */ + filter?: "latest" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + jobs: components["schemas"]["job"][]; + }; + }; + }; + }; + }; + /** + * Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use + * this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have + * the `actions:read` permission to use this endpoint. + */ + "actions/download-workflow-run-logs": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 302: never; + }; + }; + /** Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + "actions/delete-workflow-run-logs": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-pending-deployments-for-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pending-deployment"][]; + }; + }; + }; + }; + /** + * Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Required reviewers with read access to the repository contents and deployments can use this endpoint. Required reviewers must authenticate using an access token with the `repo` scope to use this endpoint. + */ + "actions/review-pending-deployments-for-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The list of environment ids to approve or reject + * @example [ + * 161171787, + * 161171795 + * ] + */ + environment_ids: number[]; + /** + * @description Whether to approve or reject deployment to the specified environments. + * @example approved + * @enum {string} + */ + state: "approved" | "rejected"; + /** + * @description A comment to accompany the deployment review + * @example Ship it! + */ + comment: string; + }; + }; + }; + }; + /** Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. */ + "actions/re-run-workflow": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + }; + /** Re-run all of the failed jobs and their dependent jobs in a workflow run using the `id` of the workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. */ + "actions/re-run-workflow-failed-jobs": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to enable debug logging for the re-run. + * @default false + */ + enable_debug_logging?: boolean; + } | null; + }; + }; + }; + /** + * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-workflow-run-usage": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the workflow run. */ + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-run-usage"]; + }; + }; + }; + }; + /** Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/list-repo-secrets": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/get-repo-public-key": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/get-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response when creating a secret */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + /** Response when updating a secret */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/actions#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + }; + /** Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/delete-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/list-repo-workflows": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + workflows: components["schemas"]["workflow"][]; + }; + }; + }; + }; + }; + /** Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "actions/get-workflow": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the workflow. You can also pass the workflow file name as a string. */ + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow"]; + }; + }; + }; + }; + /** + * Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/disable-workflow": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the workflow. You can also pass the workflow file name as a string. */ + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see "[Creating a personal access token for the command line](https://docs.github.com/articles/creating-a-personal-access-token-for-the-command-line)." + */ + "actions/create-workflow-dispatch": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the workflow. You can also pass the workflow file name as a string. */ + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description The git reference for the workflow. The reference can be a branch or tag name. */ + ref: string; + /** @description Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when `inputs` are omitted. */ + inputs?: { [key: string]: string }; + }; + }; + }; + }; + /** + * Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/enable-workflow": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the workflow. You can also pass the workflow file name as a string. */ + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + */ + "actions/list-workflow-runs": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the workflow. You can also pass the workflow file name as a string. */ + workflow_id: components["parameters"]["workflow-id"]; + }; + query: { + /** Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. */ + actor?: components["parameters"]["actor"]; + /** Returns workflow runs associated with a branch. Use the name of the branch of the `push`. */ + branch?: components["parameters"]["workflow-run-branch"]; + /** Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://docs.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." */ + event?: components["parameters"]["event"]; + /** Returns workflow runs with the check run `status` or `conclusion` that you specify. For example, a conclusion can be `success` or a status can be `in_progress`. Only GitHub can set a status of `waiting` or `requested`. For a list of the possible `status` and `conclusion` options, see "[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run)." */ + status?: components["parameters"]["workflow-run-status"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Returns workflow runs created within the given date-time range. For more information on the syntax, see "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates)." */ + created?: components["parameters"]["created"]; + /** If `true` pull requests are omitted from the response (empty array). */ + exclude_pull_requests?: components["parameters"]["exclude-pull-requests"]; + /** Returns workflow runs with the `check_suite_id` that you specify. */ + check_suite_id?: components["parameters"]["workflow-run-check-suite-id"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + workflow_runs: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + }; + /** + * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-workflow-usage": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the workflow. You can also pass the workflow file name as a string. */ + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["workflow-usage"]; + }; + }; + }; + }; + /** Lists the [available assignees](https://docs.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. */ + "issues/list-assignees": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + assignee: string; + }; + }; + responses: { + /** If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. */ + 204: never; + /** Otherwise a `404` status code is returned. */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * This returns a list of autolinks configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/list-autolinks": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"][]; + }; + }; + }; + }; + /** Users with admin access to the repository can create an autolink. */ + "repos/create-autolink": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The prefix appended by alphanumeric characters will generate a link any time it is found in an issue, pull request, or commit. */ + key_prefix: string; + /** @description The URL must contain `` for the reference number. `` matches alphanumeric characters `A-Z` (case insensitive), `0-9`, and `-`. */ + url_template: string; + }; + }; + }; + }; + /** + * This returns a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/get-autolink": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the autolink. */ + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["autolink"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * This deletes a single autolink reference by ID that was configured for the given repository. + * + * Information about autolinks are only available to repository administrators. + */ + "repos/delete-autolink": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the autolink. */ + autolink_id: components["parameters"]["autolink-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/en/articles/configuring-automated-security-fixes)". */ + "repos/enable-automated-security-fixes": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://docs.github.com/en/articles/configuring-automated-security-fixes)". */ + "repos/disable-automated-security-fixes": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "repos/list-branches": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. */ + protected?: boolean; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["short-branch"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "repos/get-branch": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/get-branch-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-protection"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + "repos/update-branch-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Require status checks to pass before merging. Set to `null` to disable. */ + required_status_checks: { + /** @description Require branches to be up to date before merging. */ + strict: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + } | null; + /** @description Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. */ + enforce_admins: boolean | null; + /** @description Require at least one approving review on a pull request, before merging. Set to `null` to disable. */ + required_pull_request_reviews: { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) review them. */ + require_code_owner_reviews?: boolean; + /** @description Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + } | null; + /** @description Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. */ + restrictions: { + /** @description The list of user `login`s with push access */ + users: string[]; + /** @description The list of team `slug`s with push access */ + teams: string[]; + /** @description The list of app `slug`s with push access */ + apps?: string[]; + } | null; + /** @description Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see "[Requiring a linear commit history](https://docs.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" in the GitHub Help documentation. */ + required_linear_history?: boolean; + /** @description Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation." */ + allow_force_pushes?: boolean | null; + /** @description Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://docs.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation. */ + allow_deletions?: boolean; + /** @description If set to `true`, the `restrictions` branch protection settings which limits who can push will also block pushes which create new branches, unless the push is initiated by a user, team, or app which has the ability to push. Set to `true` to restrict new branch creation. Default: `false`. */ + block_creations?: boolean; + /** @description Requires all conversations on code to be resolved before a pull request can be merged into a branch that matches this rule. Set to `false` to disable. Default: `false`. */ + required_conversation_resolution?: boolean; + }; + }; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/delete-branch-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/get-admin-branch-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/set-admin-branch-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/delete-admin-branch-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/get-pull-request-review-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/delete-pull-request-review-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + "repos/update-pull-request-review-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Specify which users, teams, and apps can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. */ + dismissal_restrictions?: { + /** @description The list of user `login`s with dismissal access */ + users?: string[]; + /** @description The list of team `slug`s with dismissal access */ + teams?: string[]; + /** @description The list of app `slug`s with dismissal access */ + apps?: string[]; + }; + /** @description Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. */ + dismiss_stale_reviews?: boolean; + /** @description Blocks merging pull requests until [code owners](https://docs.github.com/articles/about-code-owners/) have reviewed. */ + require_code_owner_reviews?: boolean; + /** @description Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6 or 0 to not require reviewers. */ + required_approving_review_count?: number; + /** @description Allow specific users, teams, or apps to bypass pull request requirements. */ + bypass_pull_request_allowances?: { + /** @description The list of user `login`s allowed to bypass pull request requirements. */ + users?: string[]; + /** @description The list of team `slug`s allowed to bypass pull request requirements. */ + teams?: string[]; + /** @description The list of app `slug`s allowed to bypass pull request requirements. */ + apps?: string[]; + }; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://docs.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + "repos/get-commit-signature-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/create-commit-signature-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/delete-commit-signature-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/get-status-checks-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/remove-status-check-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/update-status-check-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["status-check-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Require branches to be up to date before merging. */ + strict?: boolean; + /** + * @deprecated + * @description **Deprecated**: The list of status checks to require in order to merge into this branch. If any of these checks have recently been set by a particular GitHub App, they will be required to come from that app in future for the branch to merge. Use `checks` instead of `contexts` for more fine-grained control. + */ + contexts?: string[]; + /** @description The list of status checks to require in order to merge into this branch. */ + checks?: { + /** @description The name of the required check */ + context: string; + /** @description The ID of the GitHub App that must provide this check. Omit this field to automatically select the GitHub App that has recently provided this check, or any app if it was not set by a GitHub App. Pass -1 to explicitly allow any app to set the status. */ + app_id?: number; + }[]; + }; + }; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/get-all-status-check-contexts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/set-status-check-contexts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description contexts parameter */ + contexts: string[]; + }; + }; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/add-status-check-contexts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description contexts parameter */ + contexts: string[]; + }; + }; + }; + }; + /** Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "repos/remove-status-check-contexts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": string[]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description contexts parameter */ + contexts: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + "repos/get-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-restriction-policy"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + "repos/delete-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + */ + "repos/get-apps-with-access-to-protected-branch": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-app-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description apps parameter */ + apps: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-app-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description apps parameter */ + apps: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-app-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["integration"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description apps parameter */ + apps: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + "repos/get-teams-with-access-to-protected-branch": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-team-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description teams parameter */ + teams: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-team-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description teams parameter */ + teams: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-team-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description teams parameter */ + teams: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + "repos/get-users-with-access-to-protected-branch": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-user-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description users parameter */ + users: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-user-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description users parameter */ + users: string[]; + }; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-user-access-restrictions": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description users parameter */ + users: string[]; + }; + }; + }; + }; + /** + * Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The permissions required to use this endpoint depends on whether you are renaming the default branch. + * + * To rename a non-default branch: + * + * * Users must have push access. + * * GitHub Apps must have the `contents:write` repository permission. + * + * To rename the default branch: + * + * * Users must have admin or owner permissions. + * * GitHub Apps must have the `administration:write` repository permission. + */ + "repos/rename-branch": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the branch. */ + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["branch-with-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The new name of the branch. */ + new_name: string; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + "checks/create": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + requestBody: { + content: { + "application/json": ( + | ({ + /** @enum {undefined} */ + status: "completed"; + } & { + conclusion: unknown; + } & { [key: string]: unknown }) + | ({ + /** @enum {undefined} */ + status?: "queued" | "in_progress"; + } & { [key: string]: unknown }) + ) & { + /** @description The name of the check. For example, "code-coverage". */ + name: string; + /** @description The SHA of the commit. */ + head_sha: string; + /** @description The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * @description The current status. + * @default queued + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Format: date-time + * @description The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object) description. */ + output?: { + /** @description The title of the check run. */ + title: string; + /** @description The summary of the check run. This parameter supports Markdown. */ + summary: string; + /** @description The details of the check run. This parameter supports Markdown. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about how you can view annotations on GitHub, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object) description for details about how to use this parameter. */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#images-object) description for details. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Gets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + "checks/get": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the check run. */ + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Updates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs. + */ + "checks/update": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the check run. */ + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + requestBody: { + content: { + "application/json": (Partial< + { + /** @enum {undefined} */ + status?: "completed"; + } & { + conclusion: unknown; + } & { [key: string]: unknown } + > & + Partial< + { + /** @enum {undefined} */ + status?: "queued" | "in_progress"; + } & { [key: string]: unknown } + >) & { + /** @description The name of the check. For example, "code-coverage". */ + name?: string; + /** @description The URL of the integrator's site that has the full details of the check. */ + details_url?: string; + /** @description A reference for the run on the integrator's system. */ + external_id?: string; + /** + * Format: date-time + * @description This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * @description The current status. + * @enum {string} + */ + status?: "queued" | "in_progress" | "completed"; + /** + * @description **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this. + * @enum {string} + */ + conclusion?: + | "action_required" + | "cancelled" + | "failure" + | "neutral" + | "success" + | "skipped" + | "stale" + | "timed_out"; + /** + * Format: date-time + * @description The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** @description Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object-1) description. */ + output?: { + /** @description **Required**. */ + title?: string; + /** @description Can contain Markdown. */ + summary: string; + /** @description Can contain Markdown. */ + text?: string; + /** @description Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about annotations in the UI, see "[About status checks](https://docs.github.com/articles/about-status-checks#checks)". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details. */ + annotations?: { + /** @description The path of the file to add an annotation to. For example, `assets/css/main.css`. */ + path: string; + /** @description The start line of the annotation. */ + start_line: number; + /** @description The end line of the annotation. */ + end_line: number; + /** @description The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + start_column?: number; + /** @description The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. */ + end_column?: number; + /** + * @description The level of the annotation. + * @enum {string} + */ + annotation_level: "notice" | "warning" | "failure"; + /** @description A short description of the feedback for these lines of code. The maximum size is 64 KB. */ + message: string; + /** @description The title that represents the annotation. The maximum size is 255 characters. */ + title?: string; + /** @description Details about this annotation. The maximum size is 64 KB. */ + raw_details?: string; + }[]; + /** @description Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details. */ + images?: { + /** @description The alternative text for the image. */ + alt: string; + /** @description The full URL of the image. */ + image_url: string; + /** @description A short image description. */ + caption?: string; + }[]; + }; + /** @description Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." */ + actions?: { + /** @description The text to be displayed on a button in the web UI. The maximum size is 20 characters. */ + label: string; + /** @description A short explanation of what this action would do. The maximum size is 40 characters. */ + description: string; + /** @description A reference for the action on the integrator's system. The maximum size is 20 characters. */ + identifier: string; + }[]; + }; + }; + }; + }; + /** Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. */ + "checks/list-annotations": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the check run. */ + check_run_id: components["parameters"]["check-run-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["check-annotation"][]; + }; + }; + }; + }; + /** + * Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the [`check_run` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) event with the action `rerequested`. When a check run is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check run, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + "checks/rerequest-run": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the check run. */ + check_run_id: components["parameters"]["check-run-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + /** Forbidden if the check run is not rerequestable or doesn't belong to the authenticated GitHub App */ + 403: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 404: components["responses"]["not_found"]; + /** Validation error if the check run is not rerequestable */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)". Your GitHub App must have the `checks:write` permission to create check suites. + */ + "checks/create-suite": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response when the suite already exists */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + /** Response when the suite was created */ + 201: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The sha of the head commit. */ + head_sha: string; + }; + }; + }; + }; + /** Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites. */ + "checks/set-suites-preferences": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite-preference"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://docs.github.com/rest/reference/checks#auto_trigger_checks-object) description for details. */ + auto_trigger_checks?: { + /** @description The `id` of the GitHub App. */ + app_id: number; + /** + * @description Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them. + * @default true + */ + setting: boolean; + }[]; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Gets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + "checks/get-suite": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the check suite. */ + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + "checks/list-for-suite": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the check suite. */ + check_suite_id: components["parameters"]["check-suite-id"]; + }; + query: { + /** Returns check runs with the specified `name`. */ + check_name?: components["parameters"]["check-name"]; + /** Returns check runs with the specified `status`. */ + status?: components["parameters"]["status"]; + /** Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + "checks/rerequest-suite": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the check suite. */ + check_suite_id: components["parameters"]["check-suite-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + }; + }; + /** + * Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint with private repos, the `public_repo` scope also grants permission to read + * security events on public repos only. GitHub Apps must have the `security_events` read + * permission to use this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + "code-scanning/list-alerts-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + tool_name?: components["parameters"]["tool-name"]; + /** The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + tool_guid?: components["parameters"]["tool-guid"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["parameters"]["git-ref"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The property by which to sort the results. . `number` is deprecated - we recommend that you use `created` instead. */ + sort?: "created" | "number" | "updated"; + /** Set to `open`, `closed, `fixed`, or `dismissed` to list code scanning alerts in a specific state. */ + state?: components["schemas"]["code-scanning-alert-state"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-items"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint with private repos, the `public_repo` scope also grants permission to read security events on public repos only. GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * **Deprecation notice**: + * The instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by `instances_url`. + */ + "code-scanning/get-alert": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** Updates the status of a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint with private repositories. You can also use tokens with the `public_repo` scope for public repositories only. GitHub Apps must have the `security_events` write permission to use this endpoint. */ + "code-scanning/update-alert": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["code-scanning-alert-set-state"]; + dismissed_reason?: components["schemas"]["code-scanning-alert-dismissed-reason"]; + dismissed_comment?: components["schemas"]["code-scanning-alert-dismissed-comment"]; + }; + }; + }; + }; + /** + * Lists all instances of the specified code scanning alert. + * You must use an access token with the `security_events` scope to use this endpoint with private repos, + * the `public_repo` scope also grants permission to read security events on public repos only. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + "code-scanning/list-alert-instances": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + alert_number: components["parameters"]["alert-number"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** The Git reference for the results you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["parameters"]["git-ref"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-alert-instance"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * You must use an access token with the `security_events` scope to use this endpoint with private repos, + * the `public_repo` scope also grants permission to read security events on public repos only. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + */ + "code-scanning/list-recent-analyses": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The name of a code scanning tool. Only results by this tool will be listed. You can specify the tool by using either `tool_name` or `tool_guid`, but not both. */ + tool_name?: components["parameters"]["tool-name"]; + /** The GUID of a code scanning tool. Only results by this tool will be listed. Note that some code scanning tools may not include a GUID in their analysis data. You can specify the tool by using either `tool_guid` or `tool_name`, but not both. */ + tool_guid?: components["parameters"]["tool-guid"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** The Git reference for the analyses you want to list. The `ref` for a branch can be formatted either as `refs/heads/` or simply ``. To reference a pull request use `refs/pull//merge`. */ + ref?: components["schemas"]["code-scanning-ref"]; + /** Filter analyses belonging to the same SARIF upload. */ + sarif_id?: components["schemas"]["code-scanning-analysis-sarif-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"][]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Gets a specified code scanning analysis for a repository. + * You must use an access token with the `security_events` scope to use this endpoint with private repos, + * the `public_repo` scope also grants permission to read security events on public repos only. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * If you use the Accept header `application/sarif+json`, + * the response contains the analysis data that was uploaded. + * This is formatted as + * [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). + */ + "code-scanning/get-analysis": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis"]; + "application/json+sarif": { [key: string]: unknown }; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Deletes a specified code scanning analysis from a repository. For + * private repositories, you must use an access token with the `repo` scope. For public repositories, + * you must use an access token with `public_repo` scope. + * GitHub Apps must have the `security_events` write permission to use this endpoint. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `analysis_key` + * * `environment` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set: + * `next_analysis_url` and `confirm_delete_url`. + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in a set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set, the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find an analysis that's identified as deletable. + * Each set of analyses always has one that's identified as deletable. + * Having found the deletable analysis for one of the two sets, + * delete this analysis and then continue deleting the next analysis in the set until they're all deleted. + * Then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + */ + "code-scanning/delete-analysis": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The ID of the analysis, as returned from the `GET /repos/{owner}/{repo}/code-scanning/analyses` operation. */ + analysis_id: number; + }; + query: { + /** Allow deletion if the specified analysis is the last in a set. If you attempt to delete the final analysis in a set without setting this parameter to `true`, you'll get a 400 response with the message: `Analysis is last of its type and deletion may result in the loss of historical alert data. Please specify confirm_delete.` */ + confirm_delete?: string | null; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-analysis-deletion"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the `security_events` scope to use this endpoint for private repositories. You can also use tokens with the `public_repo` scope for public repositories only. GitHub Apps must have the `security_events` write permission to use this endpoint. + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 -w0 + * ``` + * + * SARIF upload supports a maximum of 5000 results per analysis run. Any results over this limit are ignored and any SARIF uploads with more than 25,000 results are rejected. Typically, but not necessarily, a SARIF file contains a single run of a single tool. If a code scanning tool generates too many results, you should update the analysis configuration to run only the most important rules or queries. + * + * The `202 Accepted`, response includes an `id` value. + * You can use this ID to check the status of the upload by using this for the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/reference/code-scanning#get-information-about-a-sarif-upload)." + */ + "code-scanning/upload-sarif": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 202: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-receipt"]; + }; + }; + /** Bad Request if the sarif field is invalid */ + 400: unknown; + 403: components["responses"]["code_scanning_forbidden_write"]; + 404: components["responses"]["not_found"]; + /** Payload Too Large if the sarif field is too large */ + 413: unknown; + 503: components["responses"]["service_unavailable"]; + }; + requestBody: { + content: { + "application/json": { + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + ref: components["schemas"]["code-scanning-ref"]; + sarif: components["schemas"]["code-scanning-analysis-sarif-file"]; + /** + * Format: uri + * @description The base directory used in the analysis, as it appears in the SARIF file. + * This property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository. + * @example file:///github/workspace/ + */ + checkout_uri?: string; + /** + * Format: date-time + * @description The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** @description The name of the tool used to generate the code scanning analysis. If this parameter is not used, the tool name defaults to "API". If the uploaded SARIF contains a tool GUID, this will be available for filtering using the `tool_guid` parameter of operations such as `GET /repos/{owner}/{repo}/code-scanning/alerts`. */ + tool_name?: string; + }; + }; + }; + }; + /** Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository)." You must use an access token with the `security_events` scope to use this endpoint with private repos, the `public_repo` scope also grants permission to read security events on public repos only. GitHub Apps must have the `security_events` read permission to use this endpoint. */ + "code-scanning/get-sarif": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The SARIF ID obtained after uploading. */ + sarif_id: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["code-scanning-sarifs-status"]; + }; + }; + 403: components["responses"]["code_scanning_forbidden_read"]; + /** Not Found if the sarif id does not match any upload */ + 404: unknown; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * List any syntax errors that are detected in the CODEOWNERS + * file. + * + * For more information about the correct CODEOWNERS syntax, + * see "[About code owners](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." + */ + "repos/codeowners-errors": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** A branch, tag or commit name used to determine which version of the CODEOWNERS file to use. Default: the repository's default branch (e.g. `main`) */ + ref?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codeowners-errors"]; + }; + }; + /** Resource not found */ + 404: unknown; + }; + }; + /** + * Lists the codespaces associated to a specified repository and the authenticated user. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/list-in-repository-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Creates a codespace owned by the authenticated user in the specified repository. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/create-with-repo-for-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description Location for this codespace. Assigned by IP if not provided */ + location?: string; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + }; + /** + * Lists the devcontainer.json files associated with a specified repository and the authenticated user. These files + * specify launchpoint configurations for codespaces created within the repository. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_metadata` repository permission to use this endpoint. + */ + "codespaces/list-devcontainers-in-repository-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + devcontainers: { + path: string; + name?: string; + }[]; + }; + }; + }; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * List the machine types available for a given repository based on its configuration. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_metadata` repository permission to use this endpoint. + */ + "codespaces/repo-machines-for-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The location to check for available machines. Assigned by IP if not provided. */ + location?: string; + /** IP for location auto-detection when proxying a request */ + client_ip?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Gets the default attributes for codespaces created by the user with the repository. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/pre-flight-with-repo-for-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The branch or commit to check for a default devcontainer path. If not specified, the default branch will be checked. */ + ref?: string; + /** An alternative IP for default location auto-detection, such as when proxying a request. */ + client_ip?: string; + }; + }; + responses: { + /** Response when a user is able to create codespaces from the repository. */ + 200: { + content: { + "application/json": { + billable_owner?: components["schemas"]["simple-user"]; + defaults?: { + location: string; + devcontainer_path: string | null; + }; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + "codespaces/list-repo-secrets": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["repo-codespaces-secret"][]; + }; + }; + }; + }; + }; + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + "codespaces/get-repo-public-key": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-public-key"]; + }; + }; + }; + }; + /** Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + "codespaces/get-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["repo-codespaces-secret"]; + }; + }; + }; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository + * permission to use this endpoint. + * + * #### Example of encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example of encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example of encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example of encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "codespaces/create-or-update-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response when creating a secret */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + /** Response when updating a secret */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/codespaces#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + }; + /** Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `codespaces_secrets` repository permission to use this endpoint. */ + "codespaces/delete-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint. + * + * Team members will include the members of child teams. + * + * You must authenticate using an access token with the `read:org` and `repo` scopes with push access to use this + * endpoint. GitHub Apps must have the `members` organization permission and `metadata` repository permission to use this + * endpoint. + */ + "repos/list-collaborators": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Filter collaborators returned by their affiliation. `outside` means all outside collaborators of an organization-owned repository. `direct` means all collaborators with permissions to an organization-owned repository, regardless of organization membership status. `all` means all collaborators the authenticated user can see. */ + affiliation?: "outside" | "direct" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["collaborator"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + * + * You must authenticate using an access token with the `read:org` and `repo` scopes with push access to use this + * endpoint. GitHub Apps must have the `members` organization permission and `metadata` repository permission to use this + * endpoint. + */ + "repos/check-collaborator": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response if user is a collaborator */ + 204: never; + /** Not Found if user is not a collaborator */ + 404: unknown; + }; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "[Enforcing repository management policies in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-inviting-outside-collaborators-to-repositories)." + * + * For more information on permission levels, see "[Repository permission levels for an organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with: + * + * ``` + * Cannot assign {member} permission of {role name} + * ``` + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations). + * + * **Updating an existing collaborator's permission level** + * + * The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different `permission` parameter. The response will be a `204`, with no other indication that the permission level changed. + * + * **Rate limits** + * + * You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + "repos/add-collaborator": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response when a new invitation is created */ + 201: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + /** + * Response when: + * - an existing collaborator is added as a collaborator + * - an organization member is added as an individual collaborator + * - an existing team member (whose team is also a repository collaborator) is added as an individual collaborator + */ + 204: never; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The permission to grant the collaborator. **Only valid on organization-owned repositories.** In addition to the enumerated values, you can also specify a custom repository role name, if the owning organization has defined any. + * @default push + * @enum {string} + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; + }; + }; + }; + }; + "repos/remove-collaborator": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`. */ + "repos/get-collaborator-permission-level": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** if user has admin permissions */ + 200: { + content: { + "application/json": components["schemas"]["repository-collaborator-permission"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/). + * + * Comments are ordered by ascending ID. + */ + "repos/list-commit-comments-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + "repos/get-commit-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "repos/delete-commit-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + "repos/update-commit-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment */ + body: string; + }; + }; + }; + }; + /** List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments). */ + "reactions/list-for-commit-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a commit comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. */ + "reactions/create-for-commit-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the commit comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + "reactions/delete-for-commit-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + /** The unique identifier of the reaction. */ + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/list-commits": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`). */ + sha?: string; + /** Only commits containing this file path will be returned. */ + path?: string; + /** GitHub login or email address by which to filter by commit author. */ + author?: string; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + until?: string; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + "repos/list-branches-for-head-commit": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The SHA of the commit. */ + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["branch-short"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Use the `:commit_sha` to specify the commit that will have its comments listed. */ + "repos/list-comments-for-commit": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The SHA of the commit. */ + commit_sha: components["parameters"]["commit-sha"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + }; + /** + * Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "repos/create-commit-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The SHA of the commit. */ + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["commit-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + /** @description Relative path of the file to comment on. */ + path?: string; + /** @description Line index in the diff to comment on. */ + position?: number; + /** @description **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. */ + line?: number; + }; + }; + }; + }; + /** Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. */ + "repos/list-pull-requests-associated-with-commit": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The SHA of the commit. */ + commit_sha: components["parameters"]["commit-sha"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + }; + }; + /** + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * You can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property. + * + * To return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/get-commit": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + "checks/list-for-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + query: { + /** Returns check runs with the specified `name`. */ + check_name?: components["parameters"]["check-name"]; + /** Returns check runs with the specified `status`. */ + status?: components["parameters"]["status"]; + /** Filters check runs by their `completed_at` timestamp. `latest` returns the most recent check runs. */ + filter?: "latest" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + app_id?: number; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + check_runs: components["schemas"]["check-run"][]; + }; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + "checks/list-suites-for-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + query: { + /** Filters check suites by GitHub App `id`. */ + app_id?: number; + /** Returns check runs with the specified `name`. */ + check_name?: components["parameters"]["check-name"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + check_suites: components["schemas"]["check-suite"][]; + }; + }; + }; + }; + }; + /** + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + "repos/get-combined-status-for-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-commit-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + "repos/list-commit-statuses-for-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["status"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + }; + }; + /** + * This endpoint will return all community profile metrics, including an + * overall health score, repository description, the presence of documentation, detected + * code of conduct, detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * these four documents are present: README, CONTRIBUTING, LICENSE, and + * CODE_OF_CONDUCT. For example, if all four documents are present, then + * the `health_percentage` is `100`. If only one is present, then the + * `health_percentage` is `25`. + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + "repos/get-community-profile-metrics": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["community-profile"]; + }; + }; + }; + }; + /** + * The `basehead` param is comprised of two parts: `base` and `head`. Both must be branch names in `repo`. To compare branches across other repositories in the same network as `repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits-with-basehead": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The base branch and head branch to compare. This parameter expects the format `{base}...{head}`. */ + basehead: string; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit + * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. + * + * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for + * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media + * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent + * object format. + * + * **Note**: + * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). + * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees + * API](https://docs.github.com/rest/reference/git#get-a-tree). + * + * #### Size limits + * If the requested file's size is: + * * 1 MB or smaller: All features of this endpoint are supported. + * * Between 1-100 MB: Only the `raw` or `object` [custom media types](https://docs.github.com/rest/repos/contents#custom-media-types-for-repository-contents) are supported. Both will work as normal, except that when using the `object` media type, the `content` field will be an empty string and the `encoding` field will be `"none"`. To get the contents of these larger files, use the `raw` media type. + * * Greater than 100 MB: This endpoint is not supported. + * + * #### If the content is a directory + * The response will be an array of objects, one object for each item in the directory. + * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value + * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). + * In the next major version of the API, the type will be returned as "submodule". + * + * #### If the content is a symlink + * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the + * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object + * describing the symlink itself. + * + * #### If the content is a submodule + * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific + * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out + * the submodule at that specific commit. + * + * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the + * github.com URLs (`html_url` and `_links["html"]`) will have null values. + */ + "repos/get-content": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** path parameter */ + path: string; + }; + query: { + /** The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) */ + ref?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/vnd.github.v3.object": components["schemas"]["content-tree"]; + "application/json": + | components["schemas"]["content-directory"] + | components["schemas"]["content-file"] + | components["schemas"]["content-symlink"] + | components["schemas"]["content-submodule"]; + }; + }; + 302: components["responses"]["found"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Creates a new file or replaces an existing file in a repository. */ + "repos/create-or-update-file-contents": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** path parameter */ + path: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The new file content, using Base64 encoding. */ + content: string; + /** @description **Required if you are updating a file**. The blob SHA of the file being replaced. */ + sha?: string; + /** @description The branch name. Default: the repository’s default branch (usually `master`) */ + branch?: string; + /** @description The person that committed the file. Default: the authenticated user. */ + committer?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-05T13:13:22+05:00" */ + date?: string; + }; + /** @description The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. */ + author?: { + /** @description The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. */ + name: string; + /** @description The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. */ + email: string; + /** @example "2013-01-15T17:13:22+05:00" */ + date?: string; + }; + }; + }; + }; + }; + /** + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + */ + "repos/delete-file": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** path parameter */ + path: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["file-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message. */ + message: string; + /** @description The blob SHA of the file being replaced. */ + sha: string; + /** @description The branch name. Default: the repository’s default branch (usually `master`) */ + branch?: string; + /** @description object containing information about the committer. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + /** @description object containing information about the author. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + }; + }; + }; + }; + }; + /** + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + "repos/list-contributors": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Set to `1` or `true` to include anonymous contributors in results. */ + anon?: string; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** if repository contains content */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["contributor"][]; + }; + }; + /** Response if repository is empty */ + 204: never; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + "dependabot/list-repo-secrets": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["dependabot-secret"][]; + }; + }; + }; + }; + }; + /** Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + "dependabot/get-repo-public-key": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-public-key"]; + }; + }; + }; + }; + /** Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + "dependabot/get-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["dependabot-secret"]; + }; + }; + }; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository + * permission to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "dependabot/create-or-update-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** Response when updating a secret */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id?: string; + }; + }; + }; + }; + /** Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint. */ + "dependabot/delete-repo-secret": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits. */ + "dependency-graph/diff-range": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The base and head Git revisions to compare. The Git revisions will be resolved to commit SHAs. Named revisions will be resolved to their corresponding HEAD commits, and an appropriate merge base will be determined. This parameter expects the format `{base}...{head}`. */ + basehead: string; + }; + query: { + /** The full path, relative to the repository root, of the dependency manifest file. */ + name?: components["parameters"]["manifest-path"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["dependency-graph-diff"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Create a new snapshot of a repository's dependencies. You must authenticate using an access token with the `repo` scope to use this endpoint for a repository that the requesting user has access to. */ + "dependency-graph/create-repository-snapshot": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": { + /** @description ID of the created snapshot. */ + id: number; + /** @description The time at which the snapshot was created. */ + created_at: string; + /** @description Either "SUCCESS", "ACCEPTED", or "INVALID". "SUCCESS" indicates that the snapshot was successfully created and the repository's dependencies were updated. "ACCEPTED" indicates that the snapshot was successfully created, but the repository's dependencies were not updated. "INVALID" indicates that the snapshot was malformed. */ + result: string; + /** @description A message providing further details about the result, such as why the dependencies were not updated. */ + message: string; + }; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["snapshot"]; + }; + }; + }; + /** Simple filtering of deployments is available via query parameters: */ + "repos/list-deployments": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The SHA recorded at creation time. */ + sha?: string; + /** The name of the ref. This can be a branch, tag, or SHA. */ + ref?: string; + /** The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). */ + task?: string; + /** The name of the environment that was deployed to (e.g., `staging` or `production`). */ + environment?: string | null; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + }; + /** + * Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/commits/statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Users with `repo` or `repo_deployment` scopes can create a deployment for a given ref. + * + * #### Merged branch response + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * #### Merge conflict response + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * #### Failed commit status checks + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + */ + "repos/create-deployment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + /** Merged branch response */ + 202: { + content: { + "application/json": { + message?: string; + }; + }; + }; + /** Conflict when there is a merge conflict or the commit's status checks failed */ + 409: unknown; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The ref to deploy. This can be a branch, tag, or SHA. */ + ref: string; + /** + * @description Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + * @default deploy + */ + task?: string; + /** + * @description Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + * @default true + */ + auto_merge?: boolean; + /** @description The [status](https://docs.github.com/rest/commits/statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. */ + required_contexts?: string[]; + payload?: { [key: string]: unknown } | string; + /** + * @description Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + * @default production + */ + environment?: string; + /** + * @description Short description of the deployment. + * @default + */ + description?: string | null; + /** + * @description Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * @default false + */ + transient_environment?: boolean; + /** @description Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. */ + production_environment?: boolean; + }; + }; + }; + }; + "repos/get-deployment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** deployment_id parameter */ + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. Anyone with `repo` or `repo_deployment` scopes can delete a deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/reference/repos/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status)." + */ + "repos/delete-deployment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** deployment_id parameter */ + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Users with pull access can view deployment statuses for a deployment: */ + "repos/list-deployment-statuses": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** deployment_id parameter */ + deployment_id: components["parameters"]["deployment-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["deployment-status"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Users with `push` access can create deployment statuses for a given deployment. + * + * GitHub Apps require `read & write` access to "Deployments" and `read-only` access to "Repo contents" (for private repos). OAuth Apps require the `repo_deployment` scope. + */ + "repos/create-deployment-status": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** deployment_id parameter */ + deployment_id: components["parameters"]["deployment-id"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub. + * @enum {string} + */ + state: + | "error" + | "failure" + | "inactive" + | "in_progress" + | "queued" + | "pending" + | "success"; + /** + * @description The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + * @default + */ + target_url?: string; + /** + * @description The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * @default + */ + log_url?: string; + /** + * @description A short description of the status. The maximum description length is 140 characters. + * @default + */ + description?: string; + /** + * @description Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. + * @enum {string} + */ + environment?: "production" | "staging" | "qa"; + /** + * @description Sets the URL for accessing your environment. Default: `""` + * @default + */ + environment_url?: string; + /** @description Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` */ + auto_inactive?: boolean; + }; + }; + }; + }; + /** Users with pull access can view a deployment status for a deployment: */ + "repos/get-deployment-status": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** deployment_id parameter */ + deployment_id: components["parameters"]["deployment-id"]; + status_id: number; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["deployment-status"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This endpoint requires write access to the repository by providing either: + * + * - Personal access tokens with `repo` scope. For more information, see "[Creating a personal access token for the command line](https://docs.github.com/articles/creating-a-personal-access-token-for-the-command-line)" in the GitHub Help documentation. + * - GitHub Apps with both `metadata:read` and `contents:read&write` permissions. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + */ + "repos/create-dispatch-event": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description A custom webhook event name. Must be 100 characters or fewer. */ + event_type: string; + /** @description JSON payload with extra information about the webhook event that your action or workflow may use. */ + client_payload?: { [key: string]: unknown }; + }; + }; + }; + }; + /** + * Get all environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "repos/get-all-environments": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + /** + * @description The number of environments in this repository + * @example 5 + */ + total_count?: number; + environments?: components["schemas"]["environment"][]; + }; + }; + }; + }; + }; + /** Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. */ + "repos/get-environment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + }; + }; + /** + * Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** Although you can use this operation to specify that only branches that match specified name patterns can deploy to this environment, you must use the UI to set the name patterns. For more information, see "[Environments](/actions/reference/environments#deployment-branches)." + * + * **Note:** To create or update secrets for an environment, see "[Secrets](/rest/reference/actions#secrets)." + * + * You must authenticate using an access token with the repo scope to use this endpoint. + */ + "repos/create-or-update-environment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["environment"]; + }; + }; + /** Validation error when the environment name is invalid or when `protected_branches` and `custom_branch_policies` in `deployment_branch_policy` are set to the same value */ + 422: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + wait_timer?: components["schemas"]["wait-timer"]; + /** @description The people or teams that may review jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ + reviewers?: + | { + type?: components["schemas"]["deployment-reviewer-type"]; + /** + * @description The id of the user or team who can review the deployment + * @example 4532992 + */ + id?: number; + }[] + | null; + deployment_branch_policy?: components["schemas"]["deployment-branch-policy"]; + } | null; + }; + }; + }; + /** You must authenticate using an access token with the repo scope to use this endpoint. */ + "repos/delete-an-environment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** Default response */ + 204: never; + }; + }; + "activity/list-repo-events": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + "repos/list-forks": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The sort order. Can be either `newest`, `oldest`, or `stargazers`. */ + sort?: "newest" | "oldest" | "stargazers" | "watchers"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 400: components["responses"]["bad_request"]; + }; + }; + /** + * Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + */ + "repos/create-fork": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 202: { + content: { + "application/json": components["schemas"]["full-repository"]; + }; + }; + 400: components["responses"]["bad_request"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Optional parameter to specify the organization name if forking into an organization. */ + organization?: string; + /** @description When forking from an existing repository, a new name for the fork. */ + name?: string; + } | null; + }; + }; + }; + "git/create-blob": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["short-blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The new blob's content. */ + content: string; + /** + * @description The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + * @default utf-8 + */ + encoding?: string; + }; + }; + }; + }; + /** + * The `content` in the response will always be Base64 encoded. + * + * _Note_: This API supports blobs up to 100 megabytes in size. + */ + "git/get-blob": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + file_sha: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["blob"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-commit": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The commit message */ + message: string; + /** @description The SHA of the tree object this commit points to */ + tree: string; + /** @description The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. */ + parents?: string[]; + /** @description Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. */ + author?: { + /** @description The name of the author (or committer) of the commit */ + name: string; + /** @description The email of the author (or committer) of the commit */ + email: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. */ + committer?: { + /** @description The name of the author (or committer) of the commit */ + name?: string; + /** @description The email of the author (or committer) of the commit */ + email?: string; + /** + * Format: date-time + * @description Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** @description The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. */ + signature?: string; + }; + }; + }; + }; + /** + * Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in the table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-commit": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The SHA of the commit. */ + commit_sha: components["parameters"]["commit-sha"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["git-commit"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + "git/list-matching-refs": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["git-ref"][]; + }; + }; + }; + }; + /** + * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + "git/get-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. */ + "git/create-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. */ + ref: string; + /** @description The SHA1 value for this reference. */ + sha: string; + /** @example "refs/heads/newbranch" */ + key?: string; + }; + }; + }; + }; + "git/delete-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + }; + responses: { + /** Response */ + 204: never; + 422: components["responses"]["validation_failed"]; + }; + }; + "git/update-ref": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** ref parameter */ + ref: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["git-ref"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The SHA1 value to set this reference to */ + sha: string; + /** + * @description Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + * @default false + */ + force?: boolean; + }; + }; + }; + }; + /** + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-tag": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag's name. This is typically a version (e.g., "v0.0.1"). */ + tag: string; + /** @description The tag message. */ + message: string; + /** @description The SHA of the git object this is tagging. */ + object: string; + /** + * @description The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + * @enum {string} + */ + type: "commit" | "tree" | "blob"; + /** @description An object with information about the individual creating the tag. */ + tagger?: { + /** @description The name of the author of the tag */ + name: string; + /** @description The email of the author of the tag */ + email: string; + /** + * Format: date-time + * @description When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + }; + }; + }; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-tag": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + tag_sha: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tag"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference)." + */ + "git/create-tree": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. */ + tree: { + /** @description The file referenced in the tree. */ + path?: string; + /** + * @description The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink. + * @enum {string} + */ + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + /** + * @description Either `blob`, `tree`, or `commit`. + * @enum {string} + */ + type?: "blob" | "tree" | "commit"; + /** + * @description The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + sha?: string | null; + /** + * @description The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + content?: string; + }[]; + /** + * @description The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on. + * If not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit. + */ + base_tree?: string; + }; + }; + }; + }; + /** + * Returns a single tree using the SHA1 value for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + */ + "git/get-tree": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + tree_sha: string; + }; + query: { + /** Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `"true"`, and `"false"`. Omit this parameter to prevent recursively returning objects or subtrees. */ + recursive?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["git-tree"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "repos/list-webhooks": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["hook"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + "repos/create-webhook": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. */ + name?: string; + /** @description Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params). */ + config?: { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + /** @example "abc" */ + token?: string; + /** @example "sha256" */ + digest?: string; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + } | null; + }; + }; + }; + /** Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository)." */ + "repos/get-webhook": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "repos/delete-webhook": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository)." */ + "repos/update-webhook": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params). */ + config?: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + /** @example "bar@example.com" */ + address?: string; + /** @example "The Serious Room" */ + room?: string; + }; + /** + * @description Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events. + * @default [ + * "push" + * ] + */ + events?: string[]; + /** @description Determines a list of events to be added to the list of events that the Hook triggers for. */ + add_events?: string[]; + /** @description Determines a list of events to be removed from the list of events that the Hook triggers for. */ + remove_events?: string[]; + /** + * @description Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + * @default true + */ + active?: boolean; + }; + }; + }; + }; + /** + * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook)." + * + * Access tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission. + */ + "repos/get-webhook-config-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + }; + /** + * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook)." + * + * Access tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission. + */ + "repos/update-webhook-config-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + }; + }; + /** Returns a list of webhook deliveries for a webhook configured in a repository. */ + "repos/list-webhook-deliveries": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the `link` header for the next and previous page cursors. */ + cursor?: components["parameters"]["cursor"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery-item"][]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Returns a delivery for a webhook configured in a repository. */ + "repos/get-webhook-delivery": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hook-delivery"]; + }; + }; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Redeliver a webhook delivery for a webhook configured in a repository. */ + "repos/redeliver-webhook-delivery": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + delivery_id: components["parameters"]["delivery-id"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. */ + "repos/ping-webhook": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + "repos/test-push-webhook": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the hook. */ + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** + * View the progress of an import. + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + "migrations/get-import-status": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Start a source import to a GitHub repository using GitHub Importer. */ + "migrations/start-import": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The URL of the originating repository. */ + vcs_url: string; + /** + * @description The originating VCS type. Without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + * @enum {string} + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** @description If authentication is required, the username to provide to `vcs_url`. */ + vcs_username?: string; + /** @description If authentication is required, the password to provide to `vcs_url`. */ + vcs_password?: string; + /** @description For a tfvc import, the name of the project that is being imported. */ + tfvc_project?: string; + }; + }; + }; + }; + /** Stop an import for a repository. */ + "migrations/cancel-import": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will + * have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. + * You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + */ + "migrations/update-import": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The username to provide to the originating repository. */ + vcs_username?: string; + /** @description The password to provide to the originating repository. */ + vcs_password?: string; + /** + * @description The type of version control system you are migrating from. + * @example "git" + * @enum {string} + */ + vcs?: "subversion" | "tfvc" | "git" | "mercurial"; + /** + * @description For a tfvc import, the name of the project that is being imported. + * @example "project1" + */ + tfvc_project?: string; + } | null; + }; + }; + }; + /** + * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information. + */ + "migrations/get-commit-authors": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** A user ID. Only return users with an ID greater than this ID. */ + since?: components["parameters"]["since-user"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository. */ + "migrations/map-commit-author": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + author_id: number; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-author"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The new Git author email. */ + email?: string; + /** @description The new Git author name. */ + name?: string; + }; + }; + }; + }; + /** List files larger than 100MB found during the import */ + "migrations/get-large-files": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["porter-large-file"][]; + }; + }; + }; + }; + /** You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://docs.github.com/articles/versioning-large-files/). */ + "migrations/set-lfs-preference": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["import"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Whether to store large files during the import. `opt_in` means large files will be stored using Git LFS. `opt_out` means large files will be removed during the import. + * @enum {string} + */ + use_lfs: "opt_in" | "opt_out"; + }; + }; + }; + }; + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-repo-installation": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. */ + "interactions/get-restrictions-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": Partial< + components["schemas"]["interaction-limit-response"] + > & + Partial<{ [key: string]: unknown }>; + }; + }; + }; + }; + /** Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. */ + "interactions/set-restrictions-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + /** Response */ + 409: unknown; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + }; + /** Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. */ + "interactions/remove-restrictions-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + /** Response */ + 409: unknown; + }; + }; + /** When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. */ + "repos/list-invitations": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + }; + }; + "repos/delete-invitation": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the invitation. */ + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "repos/update-invitation": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the invitation. */ + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`. + * @enum {string} + */ + permissions?: "read" | "write" | "maintain" | "triage" | "admin"; + }; + }; + }; + }; + /** + * List issues in a repository. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. */ + milestone?: string; + /** Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. */ + assignee?: string; + /** The user that created the issue. */ + creator?: string; + /** A user that's mentioned in the issue. */ + mentioned?: string; + /** A list of comma separated label names. Example: `bug,ui,@high` */ + labels?: components["parameters"]["labels"]; + /** What to sort results by. Can be either `created`, `updated`, `comments`. */ + sort?: "created" | "updated" | "comments"; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "issues/create": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the issue. */ + title: string | number; + /** @description The contents of the issue. */ + body?: string; + /** @description Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ */ + assignee?: string | null; + milestone?: (string | number) | null; + /** @description Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ */ + labels?: ( + | string + | { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + } + )[]; + /** @description Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ */ + assignees?: string[]; + }; + }; + }; + }; + /** By default, Issue Comments are ordered by ascending ID. */ + "issues/list-comments-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + sort?: components["parameters"]["sort"]; + /** Either `asc` or `desc`. Ignored without the `sort` parameter. */ + direction?: "asc" | "desc"; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "issues/get-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "issues/delete-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "issues/update-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + }; + /** List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments). */ + "reactions/list-for-issue-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. */ + "reactions/create-for-issue-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + "reactions/delete-for-issue-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + /** The unique identifier of the reaction. */ + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "issues/list-events-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue-event"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + "issues/get-event": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + event_id: number; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["issue-event"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was + * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/get": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** Issue owners and users with push access can edit an issue. */ + "issues/update": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + 301: components["responses"]["moved_permanently"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the issue. */ + title?: (string | number) | null; + /** @description The contents of the issue. */ + body?: string | null; + /** @description Login for the user that this issue should be assigned to. **This field is deprecated.** */ + assignee?: string | null; + /** + * @description State of the issue. Either `open` or `closed`. + * @enum {string} + */ + state?: "open" | "closed"; + milestone?: (string | number) | null; + /** @description Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ */ + labels?: ( + | string + | { + id?: number; + name?: string; + description?: string | null; + color?: string | null; + } + )[]; + /** @description Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ */ + assignees?: string[]; + }; + }; + }; + }; + /** Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. */ + "issues/add-assignees": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ */ + assignees?: string[]; + }; + }; + }; + }; + /** Removes one or more assignees from an issue. */ + "issues/remove-assignees": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["issue"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ */ + assignees: string[]; + }; + }; + }; + }; + /** Issue Comments are ordered by ascending ID. */ + "issues/list-comments": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + query: { + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. */ + "issues/create-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["issue-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The contents of the comment. */ + body: string; + }; + }; + }; + }; + "issues/list-events": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue-event-for-issue"][]; + }; + }; + 410: components["responses"]["gone"]; + }; + }; + "issues/list-labels-on-issue": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 410: components["responses"]["gone"]; + }; + }; + /** Removes any previous labels and sets the new labels for an issue. */ + "issues/set-labels": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": + | { + /** @description The names of the labels to set for the issue. The labels you set replace any existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also add labels to the existing labels for an issue. For more information, see "[Add labels to an issue](https://docs.github.com/rest/reference/issues#add-labels-to-an-issue)." */ + labels?: string[]; + } + | { + labels?: { + name: string; + }[]; + }; + }; + }; + }; + "issues/add-labels": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": + | { + /** @description The names of the labels to add to the issue's existing labels. You can pass an empty array to remove all labels. Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. You can also replace all of the labels for an issue. For more information, see "[Set labels for an issue](https://docs.github.com/rest/reference/issues#set-labels-for-an-issue)." */ + labels?: string[]; + } + | { + labels?: { + name: string; + }[]; + }; + }; + }; + }; + "issues/remove-all-labels": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + 410: components["responses"]["gone"]; + }; + }; + /** Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. */ + "issues/remove-label": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + name: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** + * Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "issues/lock": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * \* `off-topic` + * \* `too heated` + * \* `resolved` + * \* `spam` + * @enum {string} + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; + } | null; + }; + }; + }; + /** Users with push access can unlock an issue's conversation. */ + "issues/unlock": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** List the reactions to an [issue](https://docs.github.com/rest/reference/issues). */ + "reactions/list-for-issue": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + /** Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with an HTTP `200` status means that you already added the reaction type to this issue. */ + "reactions/create-for-issue": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/reference/issues/). + */ + "reactions/delete-for-issue": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + /** The unique identifier of the reaction. */ + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "issues/list-events-for-timeline": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the issue. */ + issue_number: components["parameters"]["issue-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["timeline-issue-events"][]; + }; + }; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + }; + }; + "repos/list-deploy-keys": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["deploy-key"][]; + }; + }; + }; + }; + /** You can create a read-only deploy key. */ + "repos/create-deploy-key": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description A name for the key. */ + title?: string; + /** @description The contents of the key. */ + key: string; + /** + * @description If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://docs.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://docs.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; + }; + }; + }; + }; + "repos/get-deploy-key": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the key. */ + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["deploy-key"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. */ + "repos/delete-deploy-key": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the key. */ + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "issues/list-labels-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "issues/create-label": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + name: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + }; + "issues/get-label": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "issues/delete-label": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "issues/update-label": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["label"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see "[Emoji cheat sheet](https://github.com/ikatyang/emoji-cheat-sheet)." */ + new_name?: string; + /** @description The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. */ + color?: string; + /** @description A short description of the label. Must be 100 characters or fewer. */ + description?: string; + }; + }; + }; + }; + /** Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. */ + "repos/list-languages": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["language"]; + }; + }; + }; + }; + "repos/enable-lfs-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + /** + * We will return a 403 with one of the following messages: + * + * - Git LFS support not enabled because Git LFS is globally disabled. + * - Git LFS support not enabled because Git LFS is disabled for the root repository in the network. + * - Git LFS support not enabled because Git LFS is disabled for . + */ + 403: unknown; + }; + }; + "repos/disable-lfs-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * This method returns the contents of the repository's license file, if one is detected. + * + * Similar to [Get repository content](https://docs.github.com/rest/reference/repos#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML. + */ + "licenses/get-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["license-content"]; + }; + }; + }; + }; + /** Sync a branch of a forked repository to keep it up-to-date with the upstream repository. */ + "repos/merge-upstream": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** The branch has been successfully synced with the upstream repository */ + 200: { + content: { + "application/json": components["schemas"]["merged-upstream"]; + }; + }; + /** The branch could not be synced because of a merge conflict */ + 409: unknown; + /** The branch could not be synced for some other reason */ + 422: unknown; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the branch which should be updated to match upstream. */ + branch: string; + }; + }; + }; + }; + "repos/merge": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Successful Response (The resulting merge commit) */ + 201: { + content: { + "application/json": components["schemas"]["commit"]; + }; + }; + /** Response when already merged */ + 204: never; + 403: components["responses"]["forbidden"]; + /** Not Found when the base or head does not exist */ + 404: unknown; + /** Conflict when there is a merge conflict */ + 409: unknown; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the base branch that the head will be merged into. */ + base: string; + /** @description The head to merge. This can be a branch name or a commit SHA1. */ + head: string; + /** @description Commit message to use for the merge commit. If omitted, a default message will be used. */ + commit_message?: string; + }; + }; + }; + }; + "issues/list-milestones": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The state of the milestone. Either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** What to sort results by. Either `due_on` or `completeness`. */ + sort?: "due_on" | "completeness"; + /** The direction of the sort. Either `asc` or `desc`. */ + direction?: "asc" | "desc"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["milestone"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "issues/create-milestone": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + }; + "issues/get-milestone": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the milestone. */ + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "issues/delete-milestone": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the milestone. */ + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + "issues/update-milestone": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the milestone. */ + milestone_number: components["parameters"]["milestone-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["milestone"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the milestone. */ + title?: string; + /** + * @description The state of the milestone. Either `open` or `closed`. + * @default open + * @enum {string} + */ + state?: "open" | "closed"; + /** @description A description of the milestone. */ + description?: string; + /** + * Format: date-time + * @description The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + }; + }; + "issues/list-labels-for-milestone": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the milestone. */ + milestone_number: components["parameters"]["milestone-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["label"][]; + }; + }; + }; + }; + /** List all notifications for the current user. */ + "activity/list-repo-notifications-for-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** If `true`, show notifications marked as read. */ + all?: components["parameters"]["all"]; + /** If `true`, only shows notifications in which the user is directly participating or mentioned. */ + participating?: components["parameters"]["participating"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + before?: components["parameters"]["before"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["thread"][]; + }; + }; + }; + }; + /** Marks all notifications in a repository as "read" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. */ + "activity/mark-repo-notifications-as-read": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + /** Reset Content */ + 205: unknown; + }; + requestBody: { + content: { + "application/json": { + /** + * Format: date-time + * @description Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + }; + }; + }; + }; + "repos/get-pages": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). */ + "repos/update-information-about-pages-site": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + 400: components["responses"]["bad_request"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://docs.github.com/articles/using-a-custom-domain-with-github-pages/)." */ + cname?: string | null; + /** @description Specify whether HTTPS should be enforced for the repository. */ + https_enforced?: boolean; + /** @description Configures access controls for the GitHub Pages site. If public is set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site. This includes anyone in your Enterprise if the repository is set to `internal` visibility. This feature is only available to repositories in an organization on an Enterprise plan. */ + public?: boolean; + source?: Partial<"gh-pages" | "master" | "master /docs"> & + Partial<{ + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. + * @enum {string} + */ + path: "/" | "/docs"; + }>; + }; + }; + }; + }; + /** Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." */ + "repos/create-pages-site": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["page"]; + }; + }; + 409: components["responses"]["conflict"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The source branch and directory used to publish your Pages site. */ + source?: { + /** @description The repository branch used to publish your site's source files. */ + branch: string; + /** + * @description The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/` + * @default / + * @enum {string} + */ + path?: "/" | "/docs"; + }; + } | null; + }; + }; + }; + "repos/delete-pages-site": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "repos/list-pages-builds": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["page-build"][]; + }; + }; + }; + }; + /** + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + "repos/request-pages-build": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["page-build-status"]; + }; + }; + }; + }; + "repos/get-latest-pages-build": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + "repos/get-pages-build": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + build_id: number; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + }; + /** + * Gets a health check of the DNS settings for the `CNAME` record configured for a repository's GitHub Pages. + * + * The first request to this endpoint returns a `202 Accepted` status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a `200 OK` status with the health check results in the response. + * + * Users must have admin or owner permissions. GitHub Apps must have the `pages:write` and `administration:write` permission to use this endpoint. + */ + "repos/get-pages-health-check": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pages-health-check"]; + }; + }; + /** Empty response */ + 202: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** Custom domains are not available for GitHub Pages */ + 400: unknown; + 404: components["responses"]["not_found"]; + /** There isn't a CNAME for this page */ + 422: unknown; + }; + }; + /** Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + "projects/list-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** Creates a repository project board. Returns a `410 Gone` status if projects are disabled in the repository or if the repository does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + "projects/create-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 410: components["responses"]["gone"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the project. */ + name: string; + /** @description The description of the project. */ + body?: string; + }; + }; + }; + }; + /** Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. */ + "pulls/list": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Either `open`, `closed`, or `all` to filter by state. */ + state?: "open" | "closed" | "all"; + /** Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. */ + head?: string; + /** Filter pulls by base branch name. Example: `gh-pages`. */ + base?: string; + /** What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month). */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. */ + direction?: "asc" | "desc"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * You can create a new pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "pulls/create": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the new pull request. */ + title?: string; + /** @description The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. */ + head: string; + /** @description The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. */ + base: string; + /** @description The contents of the pull request. */ + body?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + /** @description Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://docs.github.com/en/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. */ + draft?: boolean; + /** @example 1 */ + issue?: number; + }; + }; + }; + }; + /** Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. */ + "pulls/list-review-comments-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + sort?: "created" | "updated" | "created_at"; + /** Can be either `asc` or `desc`. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** Provides details for a review comment. */ + "pulls/get-review-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Deletes a review comment. */ + "pulls/delete-review-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + }; + }; + /** Enables you to edit a review comment. */ + "pulls/update-review-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the reply to the review comment. */ + body: string; + }; + }; + }; + }; + /** List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). */ + "reactions/list-for-pull-request-review-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a pull request review comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. */ + "reactions/create-for-pull-request-review-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the pull request review comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + "reactions/delete-for-pull-request-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + /** The unique identifier of the reaction. */ + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://docs.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://docs.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://docs.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + */ + "pulls/get": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + */ + "pulls/update": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The title of the pull request. */ + title?: string; + /** @description The contents of the pull request. */ + body?: string; + /** + * @description State of this Pull Request. Either `open` or `closed`. + * @enum {string} + */ + state?: "open" | "closed"; + /** @description The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. */ + base?: string; + /** @description Indicates whether [maintainers can modify](https://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. */ + maintainer_can_modify?: boolean; + }; + }; + }; + }; + /** + * Creates a codespace owned by the authenticated user for the specified pull request. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/create-with-pr-for-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Location for this codespace. Assigned by IP if not provided */ + location?: string; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } | null; + }; + }; + }; + /** Lists all review comments for a pull request. By default, review comments are in ascending order by ID. */ + "pulls/list-review-comments": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + query: { + /** The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + sort?: components["parameters"]["sort"]; + /** Can be either `asc` or `desc`. Ignored without `sort` parameter. */ + direction?: "asc" | "desc"; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + }; + /** + * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * + * The `position` parameter is deprecated. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + * + * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "pulls/create-review-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + /** @description The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. */ + commit_id?: string; + /** @description The relative path to the file that necessitates a comment. */ + path?: string; + /** + * @deprecated + * @description **This parameter is deprecated. Use `line` instead**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + /** + * @description In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://docs.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + * @enum {string} + */ + side?: "LEFT" | "RIGHT"; + /** @description The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. */ + line?: number; + /** @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. */ + start_line?: number; + /** + * @description **Required when using multi-line comments unless using `in_reply_to`**. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + * @enum {string} + */ + start_side?: "LEFT" | "RIGHT" | "side"; + /** + * @description The ID of the review comment to reply to. To find the ID of a review comment with ["List review comments on a pull request"](#list-review-comments-on-a-pull-request). When specified, all parameters other than `body` in the request body are ignored. + * @example 2 + */ + in_reply_to?: number; + }; + }; + }; + }; + /** + * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "pulls/create-reply-for-review-comment": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + /** The unique identifier of the comment. */ + comment_id: components["parameters"]["comment-id"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The text of the review comment. */ + body: string; + }; + }; + }; + }; + /** Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint. */ + "pulls/list-commits": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["commit"][]; + }; + }; + }; + }; + /** **Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. */ + "pulls/list-files": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["diff-entry"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + "pulls/check-if-merged": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response if pull request has been merged */ + 204: never; + /** Not Found if pull request has not been merged */ + 404: unknown; + }; + }; + /** This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. */ + "pulls/merge": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** if merge was successful */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-merge-result"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + /** Method Not Allowed if merge cannot be performed */ + 405: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + /** Conflict if sha was provided and pull request head did not match */ + 409: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Title for the automatic commit message. */ + commit_title?: string; + /** @description Extra detail to append to automatic commit message. */ + commit_message?: string; + /** @description SHA that pull request head must match to allow merge. */ + sha?: string; + /** + * @description Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`. + * @enum {string} + */ + merge_method?: "merge" | "squash" | "rebase"; + } | null; + }; + }; + }; + /** Lists the users or teams whose review is requested for a pull request. Once a requested reviewer submits a review, they are no longer considered a requested reviewer. Their review will instead be returned by the [List reviews for a pull request](https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request) operation. */ + "pulls/list-requested-reviewers": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["pull-request-review-request"]; + }; + }; + }; + }; + /** This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. */ + "pulls/request-reviewers": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** Unprocessable Entity if user is not a collaborator */ + 422: unknown; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of user `login`s that will be requested. */ + reviewers?: string[]; + /** @description An array of team `slug`s that will be requested. */ + team_reviewers?: string[]; + }; + }; + }; + }; + "pulls/remove-requested-reviewers": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-simple"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of user `login`s that will be removed. */ + reviewers: string[]; + /** @description An array of team `slug`s that will be removed. */ + team_reviewers?: string[]; + }; + }; + }; + }; + /** The list of reviews returns in chronological order. */ + "pulls/list-reviews": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** The list of reviews returns in chronological order. */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["pull-request-review"][]; + }; + }; + }; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + * + * Pull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response. + * + * **Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/overview/media-types#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + "pulls/create-review": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. */ + commit_id?: string; + /** @description **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request) when you are ready. + * @enum {string} + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** @description Use the following table to specify the location, destination, and contents of the draft review comment. */ + comments?: { + /** @description The relative path to the file that necessitates a review comment. */ + path: string; + /** @description The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note below. */ + position?: number; + /** @description Text of the review comment. */ + body: string; + /** @example 28 */ + line?: number; + /** @example RIGHT */ + side?: string; + /** @example 26 */ + start_line?: number; + /** @example LEFT */ + start_side?: string; + }[]; + }; + }; + }; + }; + "pulls/get-review": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + /** The unique identifier of the review. */ + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Update the review summary comment with new text. */ + "pulls/update-review": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + /** The unique identifier of the review. */ + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review. */ + body: string; + }; + }; + }; + }; + "pulls/delete-pending-review": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + /** The unique identifier of the review. */ + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + }; + /** List comments for a specific pull request review. */ + "pulls/list-comments-for-review": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + /** The unique identifier of the review. */ + review_id: components["parameters"]["review-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["review-comment"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. */ + "pulls/dismiss-review": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + /** The unique identifier of the review. */ + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The message for the pull request review dismissal */ + message: string; + /** @example "APPROVE" */ + event?: string; + }; + }; + }; + }; + "pulls/submit-review": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + /** The unique identifier of the review. */ + review_id: components["parameters"]["review-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["pull-request-review"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The body text of the pull request review */ + body?: string; + /** + * @description The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + * @enum {string} + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + }; + }; + }; + }; + /** Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. */ + "pulls/update-branch": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies the pull request. */ + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** Response */ + 202: { + content: { + "application/json": { + message?: string; + url?: string; + }; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits](https://docs.github.com/rest/reference/repos#list-commits)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. */ + expected_head_sha?: string; + } | null; + }; + }; + }; + /** + * Gets the preferred README for a repository. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + "repos/get-readme": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) */ + ref?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Gets the README from a repository directory. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + "repos/get-readme-in-directory": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The alternate path to look for a README file */ + dir: string; + }; + query: { + /** The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) */ + ref?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["content-file"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + "repos/list-releases": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["release"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "repos/create-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** + * @description `true` to create a draft (unpublished) release, `false` to create a published one. + * @default false + */ + draft?: boolean; + /** + * @description `true` to identify the release as a prerelease. `false` to identify the release as a full release. + * @default false + */ + prerelease?: boolean; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + /** + * @description Whether to automatically generate the name and body for this release. If `name` is specified, the specified name will be used; otherwise, a name will be automatically generated. If `body` is specified, the body will be pre-pended to the automatically generated notes. + * @default false + */ + generate_release_notes?: boolean; + }; + }; + }; + }; + /** To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. */ + "repos/get-release-asset": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the asset. */ + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + 302: components["responses"]["found"]; + 404: components["responses"]["not_found"]; + }; + }; + "repos/delete-release-asset": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the asset. */ + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Users with push access to the repository can edit a release asset. */ + "repos/update-release-asset": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the asset. */ + asset_id: components["parameters"]["asset-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The file name of the asset. */ + name?: string; + /** @description An alternate short description of the asset. Used in place of the filename. */ + label?: string; + /** @example "uploaded" */ + state?: string; + }; + }; + }; + }; + /** Generate a name and body describing a [release](https://docs.github.com/rest/reference/repos#releases). The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release. */ + "repos/generate-release-notes": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Name and body of generated release notes */ + 200: { + content: { + "application/json": components["schemas"]["release-notes-content"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The tag name for the release. This can be an existing tag or a new one. */ + tag_name: string; + /** @description Specifies the commitish value that will be the target for the release's tag. Required if the supplied tag_name does not reference an existing tag. Ignored if the tag_name already exists. */ + target_commitish?: string; + /** @description The name of the previous tag to use as the starting point for the release notes. Use to manually specify the range for the set of changes considered as part this release. */ + previous_tag_name?: string; + /** @description Specifies a path to a file in the repository containing configuration settings used for generating the release notes. If unspecified, the configuration file located in the repository at '.github/release.yml' or '.github/release.yaml' will be used. If that is not present, the default configuration will be used. */ + configuration_file_path?: string; + }; + }; + }; + }; + /** + * View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + "repos/get-latest-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + }; + }; + /** Get a published release with the specified tag. */ + "repos/get-release-by-tag": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** tag parameter */ + tag: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). */ + "repos/get-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Users with push access to the repository can delete a release. */ + "repos/delete-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Users with push access to the repository can edit a release. */ + "repos/update-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["release"]; + }; + }; + /** Not Found if the discussion category name is invalid */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the tag. */ + tag_name?: string; + /** @description Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). */ + target_commitish?: string; + /** @description The name of the release. */ + name?: string; + /** @description Text describing the contents of the tag. */ + body?: string; + /** @description `true` makes the release a draft, and `false` publishes the release. */ + draft?: boolean; + /** @description `true` to identify the release as a prerelease, `false` to identify the release as a full release. */ + prerelease?: boolean; + /** @description If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored. For more information, see "[Managing categories for discussions in your repository](https://docs.github.com/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository)." */ + discussion_category_name?: string; + }; + }; + }; + }; + "repos/list-release-assets": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["release-asset"][]; + }; + }; + }; + }; + /** + * This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact?tags=dotcom-rest-api). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + "repos/upload-release-asset": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + }; + query: { + name: string; + label?: string; + }; + }; + responses: { + /** Response for successful upload */ + 201: { + content: { + "application/json": components["schemas"]["release-asset"]; + }; + }; + /** Response if you upload an asset with the same filename as another uploaded asset */ + 422: unknown; + }; + requestBody: { + content: { + "*/*": string; + }; + }; + }; + /** List the reactions to a [release](https://docs.github.com/rest/reference/repos#releases). */ + "reactions/list-for-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a release. */ + content?: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** Create a reaction to a [release](https://docs.github.com/rest/reference/repos#releases). A response with a `Status: 200 OK` means that you already added the reaction type to this release. */ + "reactions/create-for-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + }; + }; + responses: { + /** Reaction exists */ + 200: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + /** Reaction created */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the release. + * @enum {string} + */ + content: "+1" | "laugh" | "heart" | "hooray" | "rocket" | "eyes"; + }; + }; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. + * + * Delete a reaction to a [release](https://docs.github.com/rest/reference/repos#releases). + */ + "reactions/delete-for-release": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the release. */ + release_id: components["parameters"]["release-id"]; + /** The unique identifier of the reaction. */ + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Lists secret scanning alerts for an eligible repository, from newest to oldest. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + "secret-scanning/list-alerts-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Set to `open` or `resolved` to only list secret scanning alerts in a specific state. */ + state?: components["parameters"]["secret-scanning-alert-state"]; + /** + * A comma-separated list of secret types to return. By default all secret types are returned. + * See "[Secret scanning patterns](https://docs.github.com/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-advanced-security)" + * for a complete list of secret types. + */ + secret_type?: components["parameters"]["secret-scanning-alert-secret-type"]; + /** A comma-separated list of resolutions. Only secret scanning alerts with one of these resolutions are listed. Valid resolutions are `false_positive`, `wont_fix`, `revoked`, `pattern_edited`, `pattern_deleted` or `used_in_tests`. */ + resolution?: components["parameters"]["secret-scanning-alert-resolution"]; + /** The property to sort the results by. `created` means when the alert was created. `updated` means when the alert was updated or resolved. */ + sort?: components["parameters"]["secret-scanning-alert-sort"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. To receive an initial cursor on your first request, include an empty "before" query string. */ + before?: components["parameters"]["secret-scanning-pagination-before-org-repo"]; + /** A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. To receive an initial cursor on your first request, include an empty "after" query string. */ + after?: components["parameters"]["secret-scanning-pagination-after-org-repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"][]; + }; + }; + /** Repository is public or secret scanning is disabled for the repository */ + 404: unknown; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Gets a single secret scanning alert detected in an eligible repository. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + "secret-scanning/get-alert": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + 304: components["responses"]["not_modified"]; + /** Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: unknown; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Updates the status of a secret scanning alert in an eligible repository. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint. + */ + "secret-scanning/update-alert": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + alert_number: components["parameters"]["alert-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + }; + /** Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: unknown; + /** State does not match the resolution */ + 422: unknown; + 503: components["responses"]["service_unavailable"]; + }; + requestBody: { + content: { + "application/json": { + state: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + }; + }; + }; + }; + /** + * Lists all locations for a given secret scanning alert for an eligible repository. + * To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the `repo` scope or `security_events` scope. + * For public repositories, you may instead use the `public_repo` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + "secret-scanning/list-locations-for-alert": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The number that identifies an alert. You can find this at the end of the URL for a code scanning alert within GitHub, and in the `number` field in the response from the `GET /repos/{owner}/{repo}/code-scanning/alerts` operation. */ + alert_number: components["parameters"]["alert-number"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["secret-scanning-location"][]; + }; + }; + /** Repository is public, or secret scanning is disabled for the repository, or the resource is not found */ + 404: unknown; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Lists the people that have starred the repository. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "activity/list-stargazers-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": Partial & + Partial; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Returns a weekly aggregate of the number of additions and deletions pushed to a repository. */ + "repos/get-code-frequency-stats": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Returns a weekly aggregate of the number of additions and deletions pushed to a repository. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. */ + "repos/get-commit-activity-stats": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + "repos/get-contributors-stats": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + 200: { + content: { + "application/json": components["schemas"]["contributor-activity"][]; + }; + }; + 202: components["responses"]["accepted"]; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + */ + "repos/get-participation-stats": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** The array order is oldest week (index 0) to most recent week. */ + 200: { + content: { + "application/json": components["schemas"]["participation-stats"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + "repos/get-punch-card-stats": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. */ + 200: { + content: { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + 204: components["responses"]["no_content"]; + }; + }; + /** + * Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + "repos/create-commit-status": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + sha: string; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["status"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state of the status. + * @enum {string} + */ + state: "error" | "failure" | "pending" | "success"; + /** + * @description The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string; + /** @description A short description of the status. */ + description?: string; + /** + * @description A string label to differentiate this status from the status of other systems. This field is case-insensitive. + * @default default + */ + context?: string; + }; + }; + }; + }; + /** Lists the people watching the specified repository. */ + "activity/list-watchers-for-repo": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + "activity/get-repo-subscription": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** if you subscribe to the repository */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + 403: components["responses"]["forbidden"]; + /** Not Found if you don't subscribe to the repository */ + 404: unknown; + }; + }; + /** If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely. */ + "activity/set-repo-subscription": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description Determines if notifications should be received from this repository. */ + subscribed?: boolean; + /** @description Determines if all notifications should be blocked from this repository. */ + ignored?: boolean; + }; + }; + }; + }; + /** This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription). */ + "activity/delete-repo-subscription": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + "repos/list-tags": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["tag"][]; + }; + }; + }; + }; + /** + * This returns the tag protection states of a repository. + * + * This information is only available to repository administrators. + */ + "repos/list-tag-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["tag-protection"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * This creates a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/create-tag-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["tag-protection"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** @description An optional glob pattern to match against when enforcing tag protection. */ + pattern: string; + }; + }; + }; + }; + /** + * This deletes a tag protection state for a repository. + * This endpoint is only available to repository administrators. + */ + "repos/delete-tag-protection": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + /** The unique identifier of the tag protection. */ + tag_protection_id: components["parameters"]["tag-protection-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + "repos/download-tarball-archive": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** Response */ + 302: never; + }; + }; + "repos/list-teams": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + }; + }; + "repos/get-all-topics": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + "repos/replace-all-topics": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["topic"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. */ + names: string[]; + }; + }; + }; + }; + /** Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. */ + "repos/get-clones": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The time frame to display results for. */ + per?: components["parameters"]["per"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["clone-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** Get the top 10 popular contents over the last 14 days. */ + "repos/get-top-paths": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["content-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** Get the top 10 referrers over the last 14 days. */ + "repos/get-top-referrers": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["referrer-traffic"][]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. */ + "repos/get-views": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + query: { + /** The time frame to display results for. */ + per?: components["parameters"]["per"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["view-traffic"]; + }; + }; + 403: components["responses"]["forbidden"]; + }; + }; + /** A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://docs.github.com/articles/about-repository-transfers/). */ + "repos/transfer": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 202: { + content: { + "application/json": components["schemas"]["minimal-repository"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The username or organization name the repository will be transferred to. */ + new_owner: string; + /** @description ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories. */ + team_ids?: number[]; + }; + }; + }; + }; + /** Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". */ + "repos/check-vulnerability-alerts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response if repository is enabled with vulnerability alerts */ + 204: never; + /** Not Found if repository is not enabled with vulnerability alerts */ + 404: unknown; + }; + }; + /** Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". */ + "repos/enable-vulnerability-alerts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://docs.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". */ + "repos/disable-vulnerability-alerts": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + "repos/download-zipball-archive": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** Response */ + 302: never; + }; + }; + /** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository + */ + "repos/create-using-template": { + parameters: { + path: { + template_owner: string; + template_repo: string; + }; + }; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["repository"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. */ + owner?: string; + /** @description The name of the new repository. */ + name: string; + /** @description A short description of the new repository. */ + description?: string; + /** + * @description Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`. + * @default false + */ + include_all_branches?: boolean; + /** + * @description Either `true` to create a new private repository or `false` to create a new public one. + * @default false + */ + private?: boolean; + }; + }; + }; + }; + /** + * Lists all public repositories in the order that they were created. + * + * Note: + * - For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories. + */ + "repos/list-public": { + parameters: { + query: { + /** A repository ID. Only return repositories with an ID greater than this ID. */ + since?: components["parameters"]["since-repo"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: { + Link?: string; + }; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Lists all secrets available in an environment without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/list-environment-secrets": { + parameters: { + path: { + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + }; + /** Get the public key for an environment, which you need to encrypt environment secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/get-environment-public-key": { + parameters: { + path: { + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + }; + /** Gets a single environment secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/get-environment-secret": { + parameters: { + path: { + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + }; + /** + * Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-environment-secret": { + parameters: { + path: { + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response when creating a secret */ + 201: { + content: { + "application/json": components["schemas"]["empty-object"]; + }; + }; + /** Response when updating a secret */ + 204: never; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an environment public key](https://docs.github.com/rest/reference/actions#get-an-environment-public-key) endpoint. */ + encrypted_value: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + }; + }; + }; + }; + /** Deletes a secret in an environment using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. */ + "actions/delete-environment-secret": { + parameters: { + path: { + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + /** The name of the environment */ + environment_name: components["parameters"]["environment-name"]; + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Default response */ + 204: never; + }; + }; + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + "enterprise-admin/list-provisioned-groups-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** Used for pagination: the index of the first result to return. */ + startIndex?: components["parameters"]["start-index"]; + /** Used for pagination: the number of results to return. */ + count?: components["parameters"]["count"]; + /** filter results */ + filter?: string; + /** attributes to exclude */ + excludedAttributes?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-group-list-enterprise"]; + }; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Provision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to. + */ + "enterprise-admin/provision-and-invite-enterprise-group": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SCIM schema URIs. */ + schemas: string[]; + /** @description The name of the SCIM group. This must match the GitHub organization that the group maps to. */ + displayName: string; + members?: { + /** @description The SCIM user ID for a user. */ + value: string; + }[]; + }; + }; + }; + }; + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + "enterprise-admin/get-provisioning-information-for-enterprise-group": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Identifier generated by the GitHub SCIM endpoint. */ + scim_group_id: components["parameters"]["scim-group-id"]; + }; + query: { + /** Attributes to exclude. */ + excludedAttributes?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Replaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the [Update an attribute for a SCIM enterprise group](#update-an-attribute-for-a-scim-enterprise-group) endpoint instead. + */ + "enterprise-admin/set-information-for-provisioned-enterprise-group": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Identifier generated by the GitHub SCIM endpoint. */ + scim_group_id: components["parameters"]["scim-group-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SCIM schema URIs. */ + schemas: string[]; + /** @description The name of the SCIM group. This must match the GitHub organization that the group maps to. */ + displayName: string; + members?: { + /** @description The SCIM user ID for a user. */ + value: string; + }[]; + }; + }; + }; + }; + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + "enterprise-admin/delete-scim-group-from-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Identifier generated by the GitHub SCIM endpoint. */ + scim_group_id: components["parameters"]["scim-group-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Allows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + */ + "enterprise-admin/update-attribute-for-enterprise-group": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** Identifier generated by the GitHub SCIM endpoint. */ + scim_group_id: components["parameters"]["scim-group-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SCIM schema URIs. */ + schemas: string[]; + /** @description Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2). */ + Operations: { + /** @enum {string} */ + op: "add" | "Add" | "remove" | "Remove" | "replace" | "Replace"; + path?: string; + /** @description Can be any value - string, number, array or object. */ + value?: unknown; + }[]; + }; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Retrieves a paginated list of all provisioned enterprise members, including pending invitations. + * + * When a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member: + * - When a user with a SCIM-provisioned external identity is removed from an enterprise, the account's metadata is preserved to allow the user to re-join the organization in the future. + * - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted). + * - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO. + * + * The returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO: + * + * 1. The user is granted access by the IdP and is not a member of the GitHub enterprise. + * + * 1. The user attempts to access the GitHub enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub account. + * + * 1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account: + * - If the user signs in, their GitHub account is linked to this entry. + * - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub enterprise, and the external identity `null` entry remains in place. + */ + "enterprise-admin/list-provisioned-identities-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + query: { + /** Used for pagination: the index of the first result to return. */ + startIndex?: components["parameters"]["start-index"]; + /** Used for pagination: the number of results to return. */ + count?: components["parameters"]["count"]; + /** filter results */ + filter?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-user-list-enterprise"]; + }; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Provision enterprise membership for a user, and send organization invitation emails to the email address. + * + * You can optionally include the groups a user will be invited to join. If you do not provide a list of `groups`, the user is provisioned for the enterprise, but no organization invitation emails will be sent. + */ + "enterprise-admin/provision-and-invite-enterprise-user": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SCIM schema URIs. */ + schemas: string[]; + /** @description The username for the user. */ + userName: string; + name: { + /** @description The first name of the user. */ + givenName: string; + /** @description The last name of the user. */ + familyName: string; + }; + /** @description List of user emails. */ + emails: { + /** @description The email address. */ + value: string; + /** @description The type of email address. */ + type: string; + /** @description Whether this email address is the primary address. */ + primary: boolean; + }[]; + /** @description List of SCIM group IDs the user is a member of. */ + groups?: { + value?: string; + }[]; + }; + }; + }; + }; + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + "enterprise-admin/get-provisioning-information-for-enterprise-user": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](#update-an-attribute-for-an-enterprise-scim-user) endpoint instead. + * + * You must at least provide the required values for the user: `userName`, `name`, and `emails`. + * + * **Warning:** Setting `active: false` removes the user from the enterprise, deletes the external identity, and deletes the associated `{scim_user_id}`. + */ + "enterprise-admin/set-information-for-provisioned-enterprise-user": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SCIM schema URIs. */ + schemas: string[]; + /** @description The username for the user. */ + userName: string; + name: { + /** @description The first name of the user. */ + givenName: string; + /** @description The last name of the user. */ + familyName: string; + }; + /** @description List of user emails. */ + emails: { + /** @description The email address. */ + value: string; + /** @description The type of email address. */ + type: string; + /** @description Whether this email address is the primary address. */ + primary: boolean; + }[]; + /** @description List of SCIM group IDs the user is a member of. */ + groups?: { + value?: string; + }[]; + }; + }; + }; + }; + /** **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. */ + "enterprise-admin/delete-user-from-enterprise": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + * + * **Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `"path": "emails[type eq \"work\"]"` will not work. + * + * **Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated `:scim_user_id`. + * + * ``` + * { + * "Operations":[{ + * "op":"replace", + * "value":{ + * "active":false + * } + * }] + * } + * ``` + */ + "enterprise-admin/update-attribute-for-enterprise-user": { + parameters: { + path: { + /** The slug version of the enterprise name. You can also substitute this value with the enterprise id. */ + enterprise: components["parameters"]["enterprise"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The SCIM schema URIs. */ + schemas: string[]; + /** @description Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2). */ + Operations: { [key: string]: unknown }[]; + }; + }; + }; + }; + /** + * Retrieves a paginated list of all provisioned organization members, including pending invitations. If you provide the `filter` parameter, the resources for all matching provisions members are returned. + * + * When a user with a SAML-provisioned external identity leaves (or is removed from) an organization, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member: + * - When a user with a SCIM-provisioned external identity is removed from an organization, the account's metadata is preserved to allow the user to re-join the organization in the future. + * - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted). + * - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO. + * + * The returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO: + * + * 1. The user is granted access by the IdP and is not a member of the GitHub organization. + * + * 1. The user attempts to access the GitHub organization and initiates the SAML SSO process, and is not currently signed in to their GitHub account. + * + * 1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account: + * - If the user signs in, their GitHub account is linked to this entry. + * - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub organization, and the external identity `null` entry remains in place. + */ + "scim/list-provisioned-identities": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** Used for pagination: the index of the first result to return. */ + startIndex?: number; + /** Used for pagination: the number of results to return. */ + count?: number; + /** + * Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query: + * + * `?filter=userName%20eq%20\"Octocat\"`. + * + * To filter results for the identity with the email `octocat@github.com`, you would use this query: + * + * `?filter=emails%20eq%20\"octocat@github.com\"`. + */ + filter?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/scim+json": components["schemas"]["scim-user-list"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["scim_bad_request"]; + 403: components["responses"]["scim_forbidden"]; + 404: components["responses"]["scim_not_found"]; + 429: components["responses"]["scim_too_many_requests"]; + }; + }; + /** Provision organization membership for a user, and send an activation email to the email address. */ + "scim/provision-and-invite-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/scim+json": components["schemas"]["scim-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["scim_bad_request"]; + 403: components["responses"]["scim_forbidden"]; + 404: components["responses"]["scim_not_found"]; + 409: components["responses"]["scim_conflict"]; + 500: components["responses"]["scim_internal_error"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Configured by the admin. Could be an email, login, or username + * @example someone@example.com + */ + userName: string; + /** + * @description The name of the user, suitable for display to end-users + * @example Jon Doe + */ + displayName?: string; + /** + * @example { + * "givenName": "Jane", + * "familyName": "User" + * } + */ + name: { + givenName: string; + familyName: string; + formatted?: string; + }; + /** + * @description user emails + * @example [ + * { + * "value": "someone@example.com", + * "primary": true + * }, + * { + * "value": "another@example.com", + * "primary": false + * } + * ] + */ + emails: { + value: string; + primary?: boolean; + type?: string; + }[]; + schemas?: string[]; + externalId?: string; + groups?: string[]; + active?: boolean; + }; + }; + }; + }; + "scim/get-provisioning-information-for-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/scim+json": components["schemas"]["scim-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["scim_forbidden"]; + 404: components["responses"]["scim_not_found"]; + }; + }; + /** + * Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](https://docs.github.com/rest/reference/scim#update-an-attribute-for-a-scim-user) endpoint instead. + * + * You must at least provide the required values for the user: `userName`, `name`, and `emails`. + * + * **Warning:** Setting `active: false` removes the user from the organization, deletes the external identity, and deletes the associated `{scim_user_id}`. + */ + "scim/set-information-for-provisioned-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/scim+json": components["schemas"]["scim-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["scim_forbidden"]; + 404: components["responses"]["scim_not_found"]; + }; + requestBody: { + content: { + "application/json": { + schemas?: string[]; + /** + * @description The name of the user, suitable for display to end-users + * @example Jon Doe + */ + displayName?: string; + externalId?: string; + groups?: string[]; + active?: boolean; + /** + * @description Configured by the admin. Could be an email, login, or username + * @example someone@example.com + */ + userName: string; + /** + * @example { + * "givenName": "Jane", + * "familyName": "User" + * } + */ + name: { + givenName: string; + familyName: string; + formatted?: string; + }; + /** + * @description user emails + * @example [ + * { + * "value": "someone@example.com", + * "primary": true + * }, + * { + * "value": "another@example.com", + * "primary": false + * } + * ] + */ + emails: { + type?: string; + value: string; + primary?: boolean; + }[]; + }; + }; + }; + }; + "scim/delete-user-from-org": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["scim_forbidden"]; + 404: components["responses"]["scim_not_found"]; + }; + }; + /** + * Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + * + * **Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `"path": "emails[type eq \"work\"]"` will not work. + * + * **Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the organization, deletes the external identity, and deletes the associated `:scim_user_id`. + * + * ``` + * { + * "Operations":[{ + * "op":"replace", + * "value":{ + * "active":false + * } + * }] + * } + * ``` + */ + "scim/update-attribute-for-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + /** The unique identifier of the SCIM user. */ + scim_user_id: components["parameters"]["scim-user-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/scim+json": components["schemas"]["scim-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["scim_bad_request"]; + 403: components["responses"]["scim_forbidden"]; + 404: components["responses"]["scim_not_found"]; + /** Response */ + 429: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + schemas?: string[]; + /** + * @description Set of operations to be performed + * @example [ + * { + * "op": "replace", + * "value": { + * "active": false + * } + * } + * ] + */ + Operations: { + /** @enum {string} */ + op: "add" | "remove" | "replace"; + path?: string; + value?: + | { + active?: boolean | null; + userName?: string | null; + externalId?: string | null; + givenName?: string | null; + familyName?: string | null; + } + | { + value?: string; + primary?: boolean; + }[] + | string; + }[]; + }; + }; + }; + }; + /** + * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * #### Considerations for code search + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + */ + "search/code": { + parameters: { + query: { + /** The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching code](https://docs.github.com/search-github/searching-on-github/searching-code)" for a detailed list of qualifiers. */ + q: string; + /** Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) */ + sort?: "indexed"; + /** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: components["parameters"]["order"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["code-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + "search/commits": { + parameters: { + query: { + /** The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching commits](https://docs.github.com/search-github/searching-on-github/searching-commits)" for a detailed list of qualifiers. */ + q: string; + /** Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) */ + sort?: "author-date" | "committer-date"; + /** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: components["parameters"]["order"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["commit-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + "search/issues-and-pull-requests": { + parameters: { + query: { + /** The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching issues and pull requests](https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests)" for a detailed list of qualifiers. */ + q: string; + /** Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + /** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: components["parameters"]["order"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["issue-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + "search/labels": { + parameters: { + query: { + /** The id of the repository. */ + repository_id: number; + /** The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). */ + q: string; + /** Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) */ + sort?: "created" | "updated"; + /** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: components["parameters"]["order"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["label-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + */ + "search/repos": { + parameters: { + query: { + /** The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching for repositories](https://docs.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. */ + q: string; + /** Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + /** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: components["parameters"]["order"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["repo-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See "[Searching topics](https://docs.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + "search/topics": { + parameters: { + query: { + /** The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). */ + q: string; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["topic-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + */ + "search/users": { + parameters: { + query: { + /** The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as the web interface for GitHub. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching users](https://docs.github.com/search-github/searching-on-github/searching-users)" for a detailed list of qualifiers. */ + q: string; + /** Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) */ + sort?: "followers" | "repositories" | "joined"; + /** Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. */ + order?: components["parameters"]["order"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + incomplete_results: boolean; + items: components["schemas"]["user-search-result-item"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 422: components["responses"]["validation_failed"]; + 503: components["responses"]["service_unavailable"]; + }; + }; + /** **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/reference/teams#get-a-team-by-name) endpoint. */ + "teams/get-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/reference/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + "teams/delete-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/reference/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + "teams/update-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** Response when the updated information already exists */ + 200: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["team-full"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The name of the team. */ + name: string; + /** @description The description of the team. */ + description?: string; + /** + * @description The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * @enum {string} + */ + privacy?: "secret" | "closed"; + /** + * @description **Deprecated**. The permission that new repositories will be added to the team with when none is specified. + * @default pull + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + /** @description The ID of a team to set as the parent team. */ + parent_team_id?: number | null; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/reference/teams#list-discussions) endpoint. + * + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/list-discussions-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + query: { + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/reference/teams#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "teams/create-discussion-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title: string; + /** @description The discussion post's body text. */ + body: string; + /** + * @description Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + * @default false + */ + private?: boolean; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/reference/teams#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/get-discussion-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/reference/teams#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/delete-discussion-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/reference/teams#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/update-discussion-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion post's title. */ + title?: string; + /** @description The discussion post's body text. */ + body?: string; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/reference/teams#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/list-discussion-comments-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/reference/teams#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details. + */ + "teams/create-discussion-comment-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/reference/teams#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/get-discussion-comment-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/reference/teams#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/delete-discussion-comment-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/reference/teams#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/update-discussion-comment-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** @description The discussion comment's body text. */ + body: string; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/list-for-team-discussion-comment-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. + */ + "reactions/create-for-team-discussion-comment-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + /** The number that identifies the comment. */ + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/list-for-team-discussion-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + /** Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion. */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. + */ + "reactions/create-for-team-discussion-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The number that identifies the discussion. */ + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion. + * @enum {string} + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/reference/teams#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "teams/list-pending-invitations-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/reference/teams#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + "teams/list-members-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + query: { + /** Filters members returned by their role in the team. */ + role?: "member" | "maintainer" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/get-member-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** if user is a member */ + 204: never; + /** if user is not a member */ + 404: unknown; + }; + }; + /** + * The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "teams/add-member-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + /** Not Found if team synchronization is set up */ + 404: unknown; + /** Unprocessable Entity if you attempt to add an organization to a team or you attempt to add a user to a team when they are not a member of at least one other team in the same organization */ + 422: unknown; + }; + }; + /** + * The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-member-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + /** Not Found if team synchronization is setup */ + 404: unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + "teams/get-membership-for-user-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + "teams/add-or-update-membership-for-user-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-membership"]; + }; + }; + /** Forbidden if team synchronization is set up */ + 403: unknown; + 404: components["responses"]["not_found"]; + /** Unprocessable Entity if you attempt to add an organization to a team */ + 422: unknown; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The role that this user should have in the team. + * @default member + * @enum {string} + */ + role?: "member" | "maintainer"; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://docs.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-membership-for-user-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + /** if team synchronization is set up */ + 403: unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/reference/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + "teams/list-projects-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team-project"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + "teams/check-permissions-for-project-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["team-project"]; + }; + }; + /** Not Found if project is not managed by this team */ + 404: unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + "teams/add-or-update-project-permissions-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + /** Forbidden if the project is not owned by the organization */ + 403: { + content: { + "application/json": { + message?: string; + documentation_url?: string; + }; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The permission to grant to the team for this project. Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * @enum {string} + */ + permission?: "read" | "write" | "admin"; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + "teams/remove-project-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The unique identifier of the project. */ + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/reference/teams#list-team-repositories) endpoint. */ + "teams/list-repos-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "teams/check-permissions-for-repo-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Alternative response with extra repository information */ + 200: { + content: { + "application/json": components["schemas"]["team-repository"]; + }; + }; + /** Response if repository is managed by this team */ + 204: never; + /** Not Found if repository is not managed by this team */ + 404: unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Add or update team repository permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-repository-permissions)" endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "teams/add-or-update-repo-permissions-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The permission to grant the team on this repository. If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * @enum {string} + */ + permission?: "pull" | "push" | "admin"; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/reference/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + "teams/remove-repo-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List IdP groups for a team`](https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups connected to a team on GitHub. + */ + "teams/list-idp-groups-for-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create or update IdP group connections`](https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. + */ + "teams/create-or-update-idp-group-connections-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. */ + groups: { + /** @description ID of the IdP group. */ + group_id: string; + /** @description Name of the IdP group. */ + group_name: string; + /** @description Description of the IdP group. */ + group_description: string; + /** @example "caceab43fc9ffa20081c" */ + id?: string; + /** @example "external-team-6c13e7288ef7" */ + name?: string; + /** @example "moar cheese pleese" */ + description?: string; + }[]; + /** @example "I am not a timestamp" */ + synced_at?: string; + }; + }; + }; + }; + /** **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/reference/teams#list-child-teams) endpoint. */ + "teams/list-child-legacy": { + parameters: { + path: { + /** The unique identifier of the team. */ + team_id: components["parameters"]["team-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** if child teams exist */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team"][]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * If the authenticated user is authenticated through basic authentication or OAuth with the `user` scope, then the response lists public and private profile information. + * + * If the authenticated user is authenticated through OAuth without the `user` scope, then the response lists only public profile information. + */ + "users/get-authenticated": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. */ + "users/update-authenticated": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["private-user"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The new name of the user. + * @example Omar Jahandar + */ + name?: string; + /** + * @description The publicly visible email address of the user. + * @example omar@example.com + */ + email?: string; + /** + * @description The new blog URL of the user. + * @example blog.example.com + */ + blog?: string; + /** + * @description The new Twitter username of the user. + * @example therealomarj + */ + twitter_username?: string | null; + /** + * @description The new company of the user. + * @example Acme corporation + */ + company?: string; + /** + * @description The new location of the user. + * @example Berlin, Germany + */ + location?: string; + /** @description The new hiring availability of the user. */ + hireable?: boolean; + /** @description The new short biography of the user. */ + bio?: string; + }; + }; + }; + }; + /** List the users you've blocked on your personal account. */ + "users/list-blocked-by-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "users/check-blocked": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** If the user is blocked: */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** If the user is not blocked: */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + "users/block": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "users/unblock": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Lists the authenticated user's codespaces. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/list-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** ID of the Repository to filter on */ + repository_id?: components["parameters"]["repository-id-in-query"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + codespaces: components["schemas"]["codespace"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Creates a new codespace, owned by the authenticated user. + * + * This endpoint requires either a `repository_id` OR a `pull_request` but not both. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/create-for-authenticated-user": { + responses: { + /** Response when the codespace was successfully created */ + 201: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + /** Response when the codespace creation partially failed but is being retried in the background */ + 202: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": + | { + /** @description Repository id for this codespace */ + repository_id: number; + /** @description Git ref (typically a branch name) for this codespace */ + ref?: string; + /** @description Location for this codespace. Assigned by IP if not provided */ + location?: string; + /** @description IP for location auto-detection when proxying a request */ + client_ip?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Whether to authorize requested permissions from devcontainer.json */ + multi_repo_permissions_opt_out?: boolean; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Duration in minutes after codespace has gone idle in which it will be deleted. Must be integer minutes between 0 and 43200 (30 days). */ + retention_period_minutes?: number; + } + | { + /** @description Pull request number for this codespace */ + pull_request: { + /** @description Pull request number */ + pull_request_number: number; + /** @description Repository id for this codespace */ + repository_id: number; + }; + /** @description Location for this codespace. Assigned by IP if not provided */ + location?: string; + /** @description Machine type to use for this codespace */ + machine?: string; + /** @description Path to devcontainer.json config to use for this codespace */ + devcontainer_path?: string; + /** @description Working directory for this codespace */ + working_directory?: string; + /** @description Time in minutes before codespace stops from inactivity */ + idle_timeout_minutes?: number; + }; + }; + }; + }; + /** + * Lists all secrets available for a user's Codespaces without revealing their + * encrypted values. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + "codespaces/list-secrets-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + secrets: components["schemas"]["codespaces-secret"][]; + }; + }; + }; + }; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + "codespaces/get-public-key-for-authenticated-user": { + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-user-public-key"]; + }; + }; + }; + }; + /** + * Gets a secret available to a user's codespaces without revealing its encrypted value. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + "codespaces/get-secret-for-authenticated-user": { + parameters: { + path: { + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespaces-secret"]; + }; + }; + }; + }; + /** + * Creates or updates a secret for a user's codespace with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must also have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission and `codespaces_secrets` repository permission on all referenced repositories to use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/latest/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "codespaces/create-or-update-secret-for-authenticated-user": { + parameters: { + path: { + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response after successfully creaing a secret */ + 201: { + content: { + "application/json": { [key: string]: unknown }; + }; + }; + /** Response after successfully updating a secret */ + 204: never; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get the public key for the authenticated user](https://docs.github.com/rest/reference/codespaces#get-the-public-key-for-the-authenticated-user) endpoint. */ + encrypted_value?: string; + /** @description ID of the key you used to encrypt the secret. */ + key_id: string; + /** @description An array of repository ids that can access the user secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/reference/codespaces#list-selected-repositories-for-a-user-secret), [Set selected repositories for a user secret](https://docs.github.com/rest/reference/codespaces#set-selected-repositories-for-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/reference/codespaces#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids?: string[]; + }; + }; + }; + }; + /** + * Deletes a secret from a user's codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + "codespaces/delete-secret-for-authenticated-user": { + parameters: { + path: { + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + }; + }; + /** + * List the repositories that have been granted the ability to use a user's codespace secret. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_user_secrets` user permission and write access to the `codespaces_secrets` repository permission on all referenced repositories to use this endpoint. + */ + "codespaces/list-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + repositories: components["schemas"]["minimal-repository"][]; + }; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Select the repositories that will use a user's codespace secret. + * + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission and write access to the `codespaces_secrets` repository permission on all referenced repositories to use this endpoint. + */ + "codespaces/set-repositories-for-secret-for-authenticated-user": { + parameters: { + path: { + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + }; + }; + responses: { + /** No Content when repositories were added to the selected list */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + requestBody: { + content: { + "application/json": { + /** @description An array of repository ids for which a codespace can access the secret. You can manage the list of selected repositories using the [List selected repositories for a user secret](https://docs.github.com/rest/reference/codespaces#list-selected-repositories-for-a-user-secret), [Add a selected repository to a user secret](https://docs.github.com/rest/reference/codespaces#add-a-selected-repository-to-a-user-secret), and [Remove a selected repository from a user secret](https://docs.github.com/rest/reference/codespaces#remove-a-selected-repository-from-a-user-secret) endpoints. */ + selected_repository_ids: number[]; + }; + }; + }; + }; + /** + * Adds a repository to the selected repositories for a user's codespace secret. + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission and write access to the `codespaces_secrets` repository permission on the referenced repository to use this endpoint. + */ + "codespaces/add-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** No Content when repository was added to the selected list */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Removes a repository from the selected repositories for a user's codespace secret. + * You must authenticate using an access token with the `codespace` or `codespace:secrets` scope to use this endpoint. User must have Codespaces access to use this endpoint. + * GitHub Apps must have write access to the `codespaces_user_secrets` user permission to use this endpoint. + */ + "codespaces/remove-repository-for-secret-for-authenticated-user": { + parameters: { + path: { + /** The name of the secret. */ + secret_name: components["parameters"]["secret-name"]; + repository_id: number; + }; + }; + responses: { + /** No Content when repository was removed from the selected list */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Gets information about a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/get-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Deletes a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/delete-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + 202: components["responses"]["accepted"]; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Updates a codespace owned by the authenticated user. Currently only the codespace's machine type and recent folders can be modified using this endpoint. + * + * If you specify a new machine type it will be applied the next time your codespace is started. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces` repository permission to use this endpoint. + */ + "codespaces/update-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + requestBody: { + content: { + "application/json": { + /** @description A valid machine to transition this codespace to. */ + machine?: string; + /** @description Display name for this codespace */ + display_name?: string; + /** @description Recently opened folders inside the codespace. It is currently used by the clients to determine the folder path to load the codespace in. */ + recent_folders?: string[]; + }; + }; + }; + }; + /** + * Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored. + * + * You must authenticate using a personal access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + "codespaces/export-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** Response */ + 202: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Gets information about an export of a codespace. + * + * You must authenticate using a personal access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + "codespaces/get-export-details-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + /** The ID of the export operation, or `latest`. Currently only `latest` is currently supported. */ + export_id: components["parameters"]["export-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace-export-details"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List the machine types a codespace can transition to use. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have read access to the `codespaces_metadata` repository permission to use this endpoint. + */ + "codespaces/codespace-machines-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": { + total_count: number; + machines: components["schemas"]["codespace-machine"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Starts a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + "codespaces/start-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + /** Payment required */ + 402: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** + * Stops a user's codespace. + * + * You must authenticate using an access token with the `codespace` scope to use this endpoint. + * + * GitHub Apps must have write access to the `codespaces_lifecycle_admin` repository permission to use this endpoint. + */ + "codespaces/stop-for-authenticated-user": { + parameters: { + path: { + /** The name of the codespace. */ + codespace_name: components["parameters"]["codespace-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["codespace"]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; + /** Sets the visibility for your primary email addresses. */ + "users/set-primary-email-visibility-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Denotes whether an email is publicly visible. + * @enum {string} + */ + visibility: "public" | "private"; + }; + }; + }; + }; + /** Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope. */ + "users/list-emails-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** This endpoint is accessible with the `user` scope. */ + "users/add-email-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + * @example [] + */ + emails: string[]; + }; + }; + }; + }; + /** This endpoint is accessible with the `user` scope. */ + "users/delete-email-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description Email addresses associated with the GitHub user account. */ + emails: string[]; + }; + }; + }; + }; + /** Lists the people following the authenticated user. */ + "users/list-followers-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Lists the people who the authenticated user follows. */ + "users/list-followed-by-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + "users/check-person-is-followed-by-authenticated": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** if the person is followed by the authenticated user */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** if the person is not followed by the authenticated user */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + "users/follow": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. */ + "users/unfollow": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/list-gpg-keys-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/create-gpg-key-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** @description A descriptive name for the new key. */ + name?: string; + /** @description A GPG key in ASCII-armored format. */ + armored_public_key: string; + }; + }; + }; + }; + /** View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/get-gpg-key-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the GPG key. */ + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["gpg-key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/delete-gpg-key-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the GPG key. */ + gpg_key_id: components["parameters"]["gpg-key-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + "apps/list-installations-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** You can find the permissions for the installation under the `permissions` key. */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + installations: components["schemas"]["installation"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + "apps/list-installation-repos-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** The access the user has to each repository is included in the hash under the `permissions` key. */ + 200: { + headers: {}; + content: { + "application/json": { + total_count: number; + repository_selection?: string; + repositories: components["schemas"]["repository"][]; + }; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + */ + "apps/add-repo-to-installation-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + */ + "apps/remove-repo-from-installation-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the installation. */ + installation_id: components["parameters"]["installation-id"]; + /** The unique identifier of the repository. */ + repository_id: components["parameters"]["repository-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Shows which type of GitHub user can interact with your public repositories and when the restriction expires. */ + "interactions/get-restrictions-for-authenticated-user": { + responses: { + /** Default response */ + 200: { + content: { + "application/json": Partial< + components["schemas"]["interaction-limit-response"] + > & + Partial<{ [key: string]: unknown }>; + }; + }; + /** Response when there are no restrictions */ + 204: never; + }; + }; + /** Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. */ + "interactions/set-restrictions-for-authenticated-user": { + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": components["schemas"]["interaction-limit"]; + }; + }; + }; + /** Removes any interaction restrictions from your public repositories. */ + "interactions/remove-restrictions-for-authenticated-user": { + responses: { + /** Response */ + 204: never; + }; + }; + /** + * List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list-for-authenticated-user": { + parameters: { + query: { + /** Indicates which sorts of issues to return. `assigned` means issues assigned to you. `created` means issues created by you. `mentioned` means issues mentioning you. `subscribed` means issues you're subscribed to updates for. `all` or `repos` means all issues you can see, regardless of participation or creation. */ + filter?: + | "assigned" + | "created" + | "mentioned" + | "subscribed" + | "repos" + | "all"; + /** Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** A list of comma separated label names. Example: `bug,ui,@high` */ + labels?: components["parameters"]["labels"]; + /** What to sort results by. Can be either `created`, `updated`, `comments`. */ + sort?: "created" | "updated" | "comments"; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["issue"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/list-public-ssh-keys-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["key"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/create-public-ssh-key-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description A descriptive name for the new key. + * @example Personal MacBook Air + */ + title?: string; + /** @description The public SSH key to add to your GitHub account. */ + key: string; + }; + }; + }; + }; + /** View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/get-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the key. */ + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["key"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). */ + "users/delete-public-ssh-key-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the key. */ + key_id: components["parameters"]["key-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). */ + "apps/list-subscriptions-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). */ + "apps/list-subscriptions-for-authenticated-user-stubbed": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + }; + }; + "orgs/list-memberships-for-authenticated-user": { + parameters: { + query: { + /** Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships. */ + state?: "active" | "pending"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["org-membership"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + "orgs/get-membership-for-authenticated-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "orgs/update-membership-for-authenticated-user": { + parameters: { + path: { + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["org-membership"]; + }; + }; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The state that the membership should be in. Only `"active"` will be accepted. + * @enum {string} + */ + state: "active"; + }; + }; + }; + }; + /** Lists all migrations a user has started. */ + "migrations/list-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["migration"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Initiates the generation of a user migration archive. */ + "migrations/start-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Lock the repositories being migrated at the start of the migration + * @example true + */ + lock_repositories?: boolean; + /** + * @description Indicates whether metadata should be excluded and only git source should be included for the migration. + * @example true + */ + exclude_metadata?: boolean; + /** + * @description Indicates whether the repository git data should be excluded from the migration. + * @example true + */ + exclude_git_data?: boolean; + /** + * @description Do not include attachments in the migration + * @example true + */ + exclude_attachments?: boolean; + /** + * @description Do not include releases in the migration + * @example true + */ + exclude_releases?: boolean; + /** + * @description Indicates whether projects owned by the organization or users should be excluded. + * @example true + */ + exclude_owner_projects?: boolean; + /** + * @description Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags). + * @default false + * @example true + */ + org_metadata_only?: boolean; + /** + * @description Exclude attributes from the API response to improve performance + * @example [ + * "repositories" + * ] + */ + exclude?: "repositories"[]; + repositories: string[]; + }; + }; + }; + }; + /** + * Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive). + */ + "migrations/get-status-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + query: { + exclude?: string[]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["migration"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + "migrations/get-archive-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** Response */ + 302: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. */ + "migrations/delete-archive-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. */ + "migrations/unlock-repo-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + /** repo_name parameter */ + repo_name: components["parameters"]["repo-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists all the repositories for this user migration. */ + "migrations/list-repos-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the migration. */ + migration_id: components["parameters"]["migration-id"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** + * List organizations for the authenticated user. + * + * **OAuth scope requirements** + * + * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + */ + "orgs/list-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Lists packages owned by the authenticated user within the user's namespace. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/list-packages-for-authenticated-user": { + parameters: { + query: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** The selected visibility of the packages. Only `container` package_types currently support `internal` visibility properly. For other ecosystems `internal` is synonymous with `private`. This parameter is optional and only filters an existing result set. */ + visibility?: components["parameters"]["package-visibility"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + }; + }; + /** + * Gets a specific package for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-package-for-authenticated-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/delete-package-for-authenticated-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/restore-package-for-authenticated-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + }; + query: { + /** package token */ + token?: string; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Returns all package versions for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-all-package-versions-for-package-owned-by-authenticated-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + }; + query: { + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** The state of the package, either active or deleted. */ + state?: "active" | "deleted"; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Gets a specific package version for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-package-version-for-authenticated-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:delete` scopes. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/delete-package-version-for-authenticated-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/restore-package-version-for-authenticated-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Creates a user project board. Returns a `410 Gone` status if the user does not have existing classic projects. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. */ + "projects/create-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 201: { + content: { + "application/json": components["schemas"]["project"]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed_simple"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description Name of the project + * @example Week One Sprint + */ + name: string; + /** + * @description Body of the project + * @example This project represents the sprint of the first week in January + */ + body?: string | null; + }; + }; + }; + }; + /** Lists your publicly visible email address, which you can set with the [Set primary email visibility for the authenticated user](https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) endpoint. This endpoint is accessible with the `user:email` scope. */ + "users/list-public-emails-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["email"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + "repos/list-for-authenticated-user": { + parameters: { + query: { + /** Limit results to repositories with the specified visibility. */ + visibility?: "all" | "public" | "private"; + /** + * Comma-separated list of values. Can include: + * \* `owner`: Repositories that are owned by the authenticated user. + * \* `collaborator`: Repositories that the user has been added to as a collaborator. + * \* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** Limit results to repositories of the specified type. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + before?: components["parameters"]["before"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Creates a new repository for the authenticated user. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository. + */ + "repos/create-for-authenticated-user": { + parameters: {}; + responses: { + /** Response */ + 201: { + headers: { + Location?: string; + }; + content: { + "application/json": components["schemas"]["repository"]; + }; + }; + 304: components["responses"]["not_modified"]; + 400: components["responses"]["bad_request"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + requestBody: { + content: { + "application/json": { + /** + * @description The name of the repository. + * @example Team Environment + */ + name: string; + /** @description A short description of the repository. */ + description?: string; + /** @description A URL with more information about the repository. */ + homepage?: string; + /** + * @description Whether the repository is private. + * @default false + */ + private?: boolean; + /** + * @description Whether issues are enabled. + * @default true + * @example true + */ + has_issues?: boolean; + /** + * @description Whether projects are enabled. + * @default true + * @example true + */ + has_projects?: boolean; + /** + * @description Whether the wiki is enabled. + * @default true + * @example true + */ + has_wiki?: boolean; + /** @description The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. */ + team_id?: number; + /** + * @description Whether the repository is initialized with a minimal README. + * @default false + */ + auto_init?: boolean; + /** + * @description The desired language or platform to apply to the .gitignore. + * @example Haskell + */ + gitignore_template?: string; + /** + * @description The license keyword of the open source license for this repository. + * @example mit + */ + license_template?: string; + /** + * @description Whether to allow squash merges for pull requests. + * @default true + * @example true + */ + allow_squash_merge?: boolean; + /** + * @description Whether to allow merge commits for pull requests. + * @default true + * @example true + */ + allow_merge_commit?: boolean; + /** + * @description Whether to allow rebase merges for pull requests. + * @default true + * @example true + */ + allow_rebase_merge?: boolean; + /** + * @description Whether to allow Auto-merge to be used on pull requests. + * @default false + * @example false + */ + allow_auto_merge?: boolean; + /** + * @description Whether to delete head branches when pull requests are merged + * @default false + * @example false + */ + delete_branch_on_merge?: boolean; + /** + * @description Whether downloads are enabled. + * @default true + * @example true + */ + has_downloads?: boolean; + /** + * @description Whether this repository acts as a template that can be used to generate new repositories. + * @default false + * @example true + */ + is_template?: boolean; + }; + }; + }; + }; + /** When authenticating as a user, this endpoint will list all currently open repository invitations for that user. */ + "repos/list-invitations-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "repos/decline-invitation-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the invitation. */ + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + "repos/accept-invitation-for-authenticated-user": { + parameters: { + path: { + /** The unique identifier of the invitation. */ + invitation_id: components["parameters"]["invitation-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + 409: components["responses"]["conflict"]; + }; + }; + /** + * Lists repositories the authenticated user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "activity/list-repos-starred-by-authenticated-user": { + parameters: { + query: { + /** The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + sort?: components["parameters"]["sort"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["repository"][]; + "application/vnd.github.v3.star+json": components["schemas"]["starred-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + "activity/check-repo-is-starred-by-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response if this repository is starred by you */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + /** Not Found if this repository is not starred by you */ + 404: { + content: { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + }; + /** Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." */ + "activity/star-repo-for-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "activity/unstar-repo-for-authenticated-user": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** Response */ + 204: never; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** Lists repositories the authenticated user is watching. */ + "activity/list-watched-repos-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/). */ + "teams/list-for-authenticated-user": { + parameters: { + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["team-full"][]; + }; + }; + 304: components["responses"]["not_modified"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of users. + */ + "users/list": { + parameters: { + query: { + /** A user ID. Only return users with an ID greater than this ID. */ + since?: components["parameters"]["since-user"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: { + Link?: string; + }; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + 304: components["responses"]["not_modified"]; + }; + }; + /** + * Provides publicly available information about someone with a GitHub account. + * + * GitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See "[Identifying and authorizing users for GitHub Apps](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" for details about authentication. For an example response, see 'Response with GitHub plan information' below" + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/overview/resources-in-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/reference/users#emails)". + */ + "users/get-by-username": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + }; + 404: components["responses"]["not_found"]; + }; + }; + /** If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. */ + "activity/list-events-for-authenticated-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** This is the user's organization dashboard. You must be authenticated as the user to view this. */ + "activity/list-org-events-for-authenticated-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + /** The organization name. The name is not case sensitive. */ + org: components["parameters"]["org"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + "activity/list-public-events-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** Lists the people following the specified user. */ + "users/list-followers-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + /** Lists the people who the specified user follows. */ + "users/list-following-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + }; + "users/check-following-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + target_user: string; + }; + }; + responses: { + /** if the user follows the target user */ + 204: never; + /** if the user does not follow the target user */ + 404: unknown; + }; + }; + /** Lists public gists for the specified user: */ + "gists/list-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. */ + since?: components["parameters"]["since"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["base-gist"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** Lists the GPG keys for a user. This information is accessible by anyone. */ + "users/list-gpg-keys-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + }; + }; + /** + * Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + */ + "users/get-context-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. */ + subject_id?: string; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["hovercard"]; + }; + }; + 404: components["responses"]["not_found"]; + 422: components["responses"]["validation_failed"]; + }; + }; + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-user-installation": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + }; + /** Lists the _verified_ public SSH keys for a user. This is accessible by anyone. */ + "users/list-public-keys-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["key-simple"][]; + }; + }; + }; + }; + /** + * List [public organization memberships](https://docs.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + "orgs/list-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + /** + * Lists all packages in a user's namespace for which the requesting user has access. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/list-packages-for-user": { + parameters: { + query: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: + | "npm" + | "maven" + | "rubygems" + | "docker" + | "nuget" + | "container"; + /** The selected visibility of the packages. Only `container` package_types currently support `internal` visibility properly. For other ecosystems `internal` is synonymous with `private`. This parameter is optional and only filters an existing result set. */ + visibility?: components["parameters"]["package-visibility"]; + }; + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + }; + }; + /** + * Gets a specific package metadata for a public package owned by a user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-package-for-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package"]; + }; + }; + }; + }; + /** + * Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + "packages/delete-package-for-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restores an entire package for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + "packages/restore-package-for-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** package token */ + token?: string; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Returns all package versions for a public package owned by a specified user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-all-package-versions-for-package-owned-by-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"][]; + }; + }; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Gets a specific package version for a public package owned by a specified user. + * + * At this time, to use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + "packages/get-package-version-for-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["package-version"]; + }; + }; + }; + }; + /** + * Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + "packages/delete-package-version-for-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + /** + * Restores a specific package version for a user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scopes. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + "packages/restore-package-version-for-user": { + parameters: { + path: { + /** The type of supported package. Packages in GitHub's Gradle registry have the type `maven`. Docker images pushed to GitHub's Container registry (`ghcr.io`) have the type `container`. You can use the type `docker` to find images that were pushed to GitHub's Docker registry (`docker.pkg.github.com`), even if these have now been migrated to the Container registry. */ + package_type: components["parameters"]["package-type"]; + /** The name of the package. */ + package_name: components["parameters"]["package-name"]; + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + /** Unique identifier of the package version. */ + package_version_id: components["parameters"]["package-version-id"]; + }; + }; + responses: { + /** Response */ + 204: never; + 401: components["responses"]["requires_authentication"]; + 403: components["responses"]["forbidden"]; + 404: components["responses"]["not_found"]; + }; + }; + "projects/list-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. */ + state?: "open" | "closed" | "all"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["project"][]; + }; + }; + 422: components["responses"]["validation_failed"]; + }; + }; + /** These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. */ + "activity/list-received-events-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + "activity/list-received-public-events-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + }; + /** Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user. */ + "repos/list-for-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** Limit results to repositories of the specified type. */ + type?: "all" | "owner" | "member"; + /** The property to sort the results by. */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`. */ + direction?: "asc" | "desc"; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `user` scope. + */ + "billing/get-github-actions-billing-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + "billing/get-github-packages-billing-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://docs.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + "billing/get-shared-storage-billing-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + }; + /** + * Lists repositories a user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "activity/list-repos-starred-by-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The property to sort the results by. `created` means when the repository was starred. `updated` means when the repository was last pushed to. */ + sort?: components["parameters"]["sort"]; + /** The direction to sort the results by. */ + direction?: components["parameters"]["direction"]; + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": Partial< + components["schemas"]["starred-repository"][] + > & + Partial; + }; + }; + }; + }; + /** Lists repositories a user is watching. */ + "activity/list-repos-watched-by-user": { + parameters: { + path: { + /** The handle for the GitHub user account. */ + username: components["parameters"]["username"]; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + headers: {}; + content: { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** Get a random sentence from the Zen of GitHub */ + "meta/get-zen": { + responses: { + /** Response */ + 200: { + content: { + "text/plain": string; + }; + }; + }; + }; + /** + * **Deprecated**: Use `repos.compareCommitsWithBasehead()` (`GET /repos/{owner}/{repo}/compare/{basehead}`) instead. Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits": { + parameters: { + path: { + /** The account owner of the repository. The name is not case sensitive. */ + owner: components["parameters"]["owner"]; + /** The name of the repository. The name is not case sensitive. */ + repo: components["parameters"]["repo"]; + base: string; + head: string; + }; + query: { + /** The number of results per page (max 100). */ + per_page?: components["parameters"]["per-page"]; + /** Page number of the results to fetch. */ + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** Response */ + 200: { + content: { + "application/json": components["schemas"]["commit-comparison"]; + }; + }; + 404: components["responses"]["not_found"]; + 500: components["responses"]["internal_error"]; + }; + }; +} + +export interface external {} diff --git a/node_modules/@octokit/plugin-paginate-rest/LICENSE b/node_modules/@octokit/plugin-paginate-rest/LICENSE new file mode 100644 index 0000000..57bee5f --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@octokit/plugin-paginate-rest/README.md b/node_modules/@octokit/plugin-paginate-rest/README.md new file mode 100644 index 0000000..1e3c0ba --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/README.md @@ -0,0 +1,269 @@ +# plugin-paginate-rest.js + +> Octokit plugin to paginate REST API endpoint responses + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-paginate-rest.svg)](https://www.npmjs.com/package/@octokit/plugin-paginate-rest) +[![Build Status](https://github.com/octokit/plugin-paginate-rest.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-paginate-rest.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-paginate-rest` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-paginate-rest`. Optionally replace `@octokit/core` with a core-compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { + paginateRest, + composePaginateRest, +} = require("@octokit/plugin-paginate-rest"); +``` + +
+ +```js +const MyOctokit = Octokit.plugin(paginateRest); +const octokit = new MyOctokit({ auth: "secret123" }); + +// See https://developer.github.com/v3/issues/#list-issues-for-a-repository +const issues = await octokit.paginate("GET /repos/{owner}/{repo}/issues", { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}); +``` + +If you want to utilize the pagination methods in another plugin, use `composePaginateRest`. + +```js +function myPlugin(octokit, options) { + return { + allStars({owner, repo}) => { + return composePaginateRest( + octokit, + "GET /repos/{owner}/{repo}/stargazers", + {owner, repo } + ) + } + } +} +``` + +## `octokit.paginate()` + +The `paginateRest` plugin adds a new `octokit.paginate()` method which accepts the same parameters as [`octokit.request`](https://github.com/octokit/request.js#request). Only "List ..." endpoints such as [List issues for a repository](https://developer.github.com/v3/issues/#list-issues-for-a-repository) are supporting pagination. Their [response includes a Link header](https://developer.github.com/v3/issues/#response-1). For other endpoints, `octokit.paginate()` behaves the same as `octokit.request()`. + +The `per_page` parameter is usually defaulting to `30`, and can be set to up to `100`, which helps retrieving a big amount of data without hitting the rate limits too soon. + +An optional `mapFunction` can be passed to map each page response to a new value, usually an array with only the data you need. This can help to reduce memory usage, as only the relevant data has to be kept in memory until the pagination is complete. + +```js +const issueTitles = await octokit.paginate( + "GET /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, + }, + (response) => response.data.map((issue) => issue.title) +); +``` + +The `mapFunction` gets a 2nd argument `done` which can be called to end the pagination early. + +```js +const issues = await octokit.paginate( + "GET /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, + }, + (response, done) => { + if (response.data.find((issue) => issue.title.includes("something"))) { + done(); + } + return response.data; + } +); +``` + +Alternatively you can pass a `request` method as first argument. This is great when using in combination with [`@octokit/plugin-rest-endpoint-methods`](https://github.com/octokit/plugin-rest-endpoint-methods.js/): + +```js +const issues = await octokit.paginate(octokit.rest.issues.listForRepo, { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}); +``` + +## `octokit.paginate.iterator()` + +If your target runtime environments supports async iterators (such as most modern browsers and Node 10+), you can iterate through each response + +```js +const parameters = { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}; +for await (const response of octokit.paginate.iterator( + "GET /repos/{owner}/{repo}/issues", + parameters +)) { + // do whatever you want with each response, break out of the loop, etc. + const issues = response.data; + console.log("%d issues found", issues.length); +} +``` + +Alternatively you can pass a `request` method as first argument. This is great when using in combination with [`@octokit/plugin-rest-endpoint-methods`](https://github.com/octokit/plugin-rest-endpoint-methods.js/): + +```js +const parameters = { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}; +for await (const response of octokit.paginate.iterator( + octokit.rest.issues.listForRepo, + parameters +)) { + // do whatever you want with each response, break out of the loop, etc. + const issues = response.data; + console.log("%d issues found", issues.length); +} +``` + +## `composePaginateRest` and `composePaginateRest.iterator` + +The `compose*` methods work just like their `octokit.*` counterparts described above, with the differenct that both methods require an `octokit` instance to be passed as first argument + +## How it works + +`octokit.paginate()` wraps `octokit.request()`. As long as a `rel="next"` link value is present in the response's `Link` header, it sends another request for that URL, and so on. + +Most of GitHub's paginating REST API endpoints return an array, but there are a few exceptions which return an object with a key that includes the items array. For example: + +- [Search repositories](https://developer.github.com/v3/search/#example) (key `items`) +- [List check runs for a specific ref](https://developer.github.com/v3/checks/runs/#response-3) (key: `check_runs`) +- [List check suites for a specific ref](https://developer.github.com/v3/checks/suites/#response-1) (key: `check_suites`) +- [List repositories](https://developer.github.com/v3/apps/installations/#list-repositories) for an installation (key: `repositories`) +- [List installations for a user](https://developer.github.com/v3/apps/installations/#response-1) (key `installations`) + +`octokit.paginate()` is working around these inconsistencies so you don't have to worry about it. + +If a response is lacking the `Link` header, `octokit.paginate()` still resolves with an array, even if the response returns a single object. + +## Types + +The plugin also exposes some types and runtime type guards for TypeScript projects. + + + + + + +
+Types + + +```typescript +import { + PaginateInterface, + PaginatingEndpoints, +} from "@octokit/plugin-paginate-rest"; +``` + +
+Guards + + +```typescript +import { isPaginatingEndpoint } from "@octokit/plugin-paginate-rest"; +``` + +
+ +### PaginateInterface + +An `interface` that declares all the overloads of the `.paginate` method. + +### PaginatingEndpoints + +An `interface` which describes all API endpoints supported by the plugin. Some overloads of `.paginate()` method and `composePaginateRest()` function depend on `PaginatingEndpoints`, using the `keyof PaginatingEndpoints` as a type for one of its arguments. + +```typescript +import { Octokit } from "@octokit/core"; +import { + PaginatingEndpoints, + composePaginateRest, +} from "@octokit/plugin-paginate-rest"; + +type DataType = "data" extends keyof T ? T["data"] : unknown; + +async function myPaginatePlugin( + octokit: Octokit, + endpoint: E, + parameters?: PaginatingEndpoints[E]["parameters"] +): Promise> { + return await composePaginateRest(octokit, endpoint, parameters); +} +``` + +### isPaginatingEndpoint + +A type guard, `isPaginatingEndpoint(arg)` returns `true` if `arg` is one of the keys in `PaginatingEndpoints` (is `keyof PaginatingEndpoints`). + +```typescript +import { Octokit } from "@octokit/core"; +import { + isPaginatingEndpoint, + composePaginateRest, +} from "@octokit/plugin-paginate-rest"; + +async function myPlugin(octokit: Octokit, arg: unknown) { + if (isPaginatingEndpoint(arg)) { + return await composePaginateRest(octokit, arg); + } + // ... +} +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js new file mode 100644 index 0000000..d5fc599 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js @@ -0,0 +1,205 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "2.21.3"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + + response.data.total_count = totalCount; + return response; +} + +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) return { + done: true + }; + + try { + const response = await requestMethod({ + method, + url, + headers + }); + const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: normalizedResponse + }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then(result => { + if (result.done) { + return results; + } + + let earlyExit = false; + + function done() { + earlyExit = true; + } + + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + + if (earlyExit) { + return results; + } + + return gather(octokit, results, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/audit-log", "GET /enterprises/{enterprise}/secret-scanning/alerts", "GET /enterprises/{enterprise}/settings/billing/advanced-security", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /licenses", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/cache/usage-by-repository", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/audit-log", "GET /orgs/{org}/blocks", "GET /orgs/{org}/code-scanning/alerts", "GET /orgs/{org}/codespaces", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/dependabot/secrets", "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", "GET /orgs/{org}/events", "GET /orgs/{org}/external-groups", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/settings/billing/advanced-security", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/caches", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/codespaces", "GET /repos/{owner}/{repo}/codespaces/devcontainers", "GET /repos/{owner}/{repo}/codespaces/secrets", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/status", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/dependabot/secrets", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/environments", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repos/{owner}/{repo}/topics", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/codespaces", "GET /user/codespaces/secrets", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/packages/{package_type}/{package_name}/versions", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map new file mode 100644 index 0000000..fb04fff --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/normalize-paginated-list-response.js","../dist-src/iterator.js","../dist-src/paginate.js","../dist-src/compose-paginate.js","../dist-src/generated/paginating-endpoints.js","../dist-src/paginating-endpoints.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"2.21.3\";\n","/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nexport function normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return {\n ...response,\n data: [],\n };\n }\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n","import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response\";\nexport function iterator(octokit, route, parameters) {\n const options = typeof route === \"function\"\n ? route.endpoint(parameters)\n : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n try {\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return { value: normalizedResponse };\n }\n catch (error) {\n if (error.status !== 409)\n throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: [],\n },\n };\n }\n },\n }),\n };\n}\n","import { iterator } from \"./iterator\";\nexport function paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator, mapFn);\n });\n}\n","import { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport const composePaginateRest = Object.assign(paginate, {\n iterator,\n});\n","export const paginatingEndpoints = [\n \"GET /app/hook/deliveries\",\n \"GET /app/installations\",\n \"GET /applications/grants\",\n \"GET /authorizations\",\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /enterprises/{enterprise}/actions/runners\",\n \"GET /enterprises/{enterprise}/audit-log\",\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\",\n \"GET /enterprises/{enterprise}/settings/billing/advanced-security\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /licenses\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/cache/usage-by-repository\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runner-groups\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/audit-log\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/code-scanning/alerts\",\n \"GET /orgs/{org}/codespaces\",\n \"GET /orgs/{org}/credential-authorizations\",\n \"GET /orgs/{org}/dependabot/secrets\",\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/external-groups\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/packages\",\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/secret-scanning/alerts\",\n \"GET /orgs/{org}/settings/billing/advanced-security\",\n \"GET /orgs/{org}/team-sync/groups\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/caches\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/codespaces\",\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\",\n \"GET /repos/{owner}/{repo}/codespaces/secrets\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/status\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/dependabot/secrets\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/environments\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repos/{owner}/{repo}/topics\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/codespaces\",\n \"GET /user/codespaces/secrets\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/packages\",\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/packages\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\",\n];\n","import { paginatingEndpoints, } from \"./generated/paginating-endpoints\";\nexport { paginatingEndpoints } from \"./generated/paginating-endpoints\";\nexport function isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n }\n else {\n return false;\n }\n}\n","import { VERSION } from \"./version\";\nimport { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport { composePaginateRest } from \"./compose-paginate\";\nexport { isPaginatingEndpoint, paginatingEndpoints, } from \"./paginating-endpoints\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit),\n }),\n };\n}\npaginateRest.VERSION = VERSION;\n"],"names":["VERSION","normalizePaginatedListResponse","response","data","responseNeedsNormalization","incompleteResults","incomplete_results","repositorySelection","repository_selection","totalCount","total_count","namespaceKey","Object","keys","iterator","octokit","route","parameters","options","endpoint","request","requestMethod","method","headers","url","Symbol","asyncIterator","next","done","normalizedResponse","link","match","value","error","status","paginate","mapFn","undefined","gather","results","then","result","earlyExit","concat","composePaginateRest","assign","paginatingEndpoints","isPaginatingEndpoint","arg","includes","paginateRest","bind"],"mappings":";;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAO,SAASC,8BAAT,CAAwCC,QAAxC,EAAkD;;EAErD,IAAI,CAACA,QAAQ,CAACC,IAAd,EAAoB;IAChB,yCACOD,QADP;MAEIC,IAAI,EAAE;;;;EAGd,MAAMC,0BAA0B,GAAG,iBAAiBF,QAAQ,CAACC,IAA1B,IAAkC,EAAE,SAASD,QAAQ,CAACC,IAApB,CAArE;EACA,IAAI,CAACC,0BAAL,EACI,OAAOF,QAAP,CAViD;;;EAarD,MAAMG,iBAAiB,GAAGH,QAAQ,CAACC,IAAT,CAAcG,kBAAxC;EACA,MAAMC,mBAAmB,GAAGL,QAAQ,CAACC,IAAT,CAAcK,oBAA1C;EACA,MAAMC,UAAU,GAAGP,QAAQ,CAACC,IAAT,CAAcO,WAAjC;EACA,OAAOR,QAAQ,CAACC,IAAT,CAAcG,kBAArB;EACA,OAAOJ,QAAQ,CAACC,IAAT,CAAcK,oBAArB;EACA,OAAON,QAAQ,CAACC,IAAT,CAAcO,WAArB;EACA,MAAMC,YAAY,GAAGC,MAAM,CAACC,IAAP,CAAYX,QAAQ,CAACC,IAArB,EAA2B,CAA3B,CAArB;EACA,MAAMA,IAAI,GAAGD,QAAQ,CAACC,IAAT,CAAcQ,YAAd,CAAb;EACAT,QAAQ,CAACC,IAAT,GAAgBA,IAAhB;;EACA,IAAI,OAAOE,iBAAP,KAA6B,WAAjC,EAA8C;IAC1CH,QAAQ,CAACC,IAAT,CAAcG,kBAAd,GAAmCD,iBAAnC;;;EAEJ,IAAI,OAAOE,mBAAP,KAA+B,WAAnC,EAAgD;IAC5CL,QAAQ,CAACC,IAAT,CAAcK,oBAAd,GAAqCD,mBAArC;;;EAEJL,QAAQ,CAACC,IAAT,CAAcO,WAAd,GAA4BD,UAA5B;EACA,OAAOP,QAAP;AACH;;AC7CM,SAASY,QAAT,CAAkBC,OAAlB,EAA2BC,KAA3B,EAAkCC,UAAlC,EAA8C;EACjD,MAAMC,OAAO,GAAG,OAAOF,KAAP,KAAiB,UAAjB,GACVA,KAAK,CAACG,QAAN,CAAeF,UAAf,CADU,GAEVF,OAAO,CAACK,OAAR,CAAgBD,QAAhB,CAAyBH,KAAzB,EAAgCC,UAAhC,CAFN;EAGA,MAAMI,aAAa,GAAG,OAAOL,KAAP,KAAiB,UAAjB,GAA8BA,KAA9B,GAAsCD,OAAO,CAACK,OAApE;EACA,MAAME,MAAM,GAAGJ,OAAO,CAACI,MAAvB;EACA,MAAMC,OAAO,GAAGL,OAAO,CAACK,OAAxB;EACA,IAAIC,GAAG,GAAGN,OAAO,CAACM,GAAlB;EACA,OAAO;IACH,CAACC,MAAM,CAACC,aAAR,GAAwB,OAAO;MAC3B,MAAMC,IAAN,GAAa;QACT,IAAI,CAACH,GAAL,EACI,OAAO;UAAEI,IAAI,EAAE;SAAf;;QACJ,IAAI;UACA,MAAM1B,QAAQ,GAAG,MAAMmB,aAAa,CAAC;YAAEC,MAAF;YAAUE,GAAV;YAAeD;WAAhB,CAApC;UACA,MAAMM,kBAAkB,GAAG5B,8BAA8B,CAACC,QAAD,CAAzD,CAFA;;;;UAMAsB,GAAG,GAAG,CAAC,CAACK,kBAAkB,CAACN,OAAnB,CAA2BO,IAA3B,IAAmC,EAApC,EAAwCC,KAAxC,CAA8C,yBAA9C,KAA4E,EAA7E,EAAiF,CAAjF,CAAN;UACA,OAAO;YAAEC,KAAK,EAAEH;WAAhB;SAPJ,CASA,OAAOI,KAAP,EAAc;UACV,IAAIA,KAAK,CAACC,MAAN,KAAiB,GAArB,EACI,MAAMD,KAAN;UACJT,GAAG,GAAG,EAAN;UACA,OAAO;YACHQ,KAAK,EAAE;cACHE,MAAM,EAAE,GADL;cAEHX,OAAO,EAAE,EAFN;cAGHpB,IAAI,EAAE;;WAJd;;;;KAjBY;GAD5B;AA6BH;;ACrCM,SAASgC,QAAT,CAAkBpB,OAAlB,EAA2BC,KAA3B,EAAkCC,UAAlC,EAA8CmB,KAA9C,EAAqD;EACxD,IAAI,OAAOnB,UAAP,KAAsB,UAA1B,EAAsC;IAClCmB,KAAK,GAAGnB,UAAR;IACAA,UAAU,GAAGoB,SAAb;;;EAEJ,OAAOC,MAAM,CAACvB,OAAD,EAAU,EAAV,EAAcD,QAAQ,CAACC,OAAD,EAAUC,KAAV,EAAiBC,UAAjB,CAAR,CAAqCQ,MAAM,CAACC,aAA5C,GAAd,EAA4EU,KAA5E,CAAb;AACH;;AACD,SAASE,MAAT,CAAgBvB,OAAhB,EAAyBwB,OAAzB,EAAkCzB,QAAlC,EAA4CsB,KAA5C,EAAmD;EAC/C,OAAOtB,QAAQ,CAACa,IAAT,GAAgBa,IAAhB,CAAsBC,MAAD,IAAY;IACpC,IAAIA,MAAM,CAACb,IAAX,EAAiB;MACb,OAAOW,OAAP;;;IAEJ,IAAIG,SAAS,GAAG,KAAhB;;IACA,SAASd,IAAT,GAAgB;MACZc,SAAS,GAAG,IAAZ;;;IAEJH,OAAO,GAAGA,OAAO,CAACI,MAAR,CAAeP,KAAK,GAAGA,KAAK,CAACK,MAAM,CAACT,KAAR,EAAeJ,IAAf,CAAR,GAA+Ba,MAAM,CAACT,KAAP,CAAa7B,IAAhE,CAAV;;IACA,IAAIuC,SAAJ,EAAe;MACX,OAAOH,OAAP;;;IAEJ,OAAOD,MAAM,CAACvB,OAAD,EAAUwB,OAAV,EAAmBzB,QAAnB,EAA6BsB,KAA7B,CAAb;GAZG,CAAP;AAcH;;MCrBYQ,mBAAmB,GAAGhC,MAAM,CAACiC,MAAP,CAAcV,QAAd,EAAwB;EACvDrB;AADuD,CAAxB,CAA5B;;MCFMgC,mBAAmB,GAAG,CAC/B,0BAD+B,EAE/B,wBAF+B,EAG/B,0BAH+B,EAI/B,qBAJ+B,EAK/B,iEAL+B,EAM/B,qDAN+B,EAO/B,qFAP+B,EAQ/B,+EAR+B,EAS/B,+CAT+B,EAU/B,yCAV+B,EAW/B,sDAX+B,EAY/B,kEAZ+B,EAa/B,aAb+B,EAc/B,YAd+B,EAe/B,mBAf+B,EAgB/B,oBAhB+B,EAiB/B,+BAjB+B,EAkB/B,8BAlB+B,EAmB/B,4BAnB+B,EAoB/B,gCApB+B,EAqB/B,aArB+B,EAsB/B,eAtB+B,EAuB/B,gCAvB+B,EAwB/B,mDAxB+B,EAyB/B,wCAzB+B,EA0B/B,2DA1B+B,EA2B/B,qCA3B+B,EA4B/B,oBA5B+B,EA6B/B,oBA7B+B,EA8B/B,mDA9B+B,EA+B/B,kDA/B+B,EAgC/B,uCAhC+B,EAiC/B,sEAjC+B,EAkC/B,iEAlC+B,EAmC/B,iCAnC+B,EAoC/B,iCApC+B,EAqC/B,4DArC+B,EAsC/B,2BAtC+B,EAuC/B,wBAvC+B,EAwC/B,sCAxC+B,EAyC/B,4BAzC+B,EA0C/B,2CA1C+B,EA2C/B,oCA3C+B,EA4C/B,+DA5C+B,EA6C/B,wBA7C+B,EA8C/B,iCA9C+B,EA+C/B,oCA/C+B,EAgD/B,uBAhD+B,EAiD/B,4CAjD+B,EAkD/B,+BAlD+B,EAmD/B,6BAnD+B,EAoD/B,mDApD+B,EAqD/B,wBArD+B,EAsD/B,yBAtD+B,EAuD/B,4BAvD+B,EAwD/B,wDAxD+B,EAyD/B,uCAzD+B,EA0D/B,0BA1D+B,EA2D/B,iEA3D+B,EA4D/B,0BA5D+B,EA6D/B,gCA7D+B,EA8D/B,uBA9D+B,EA+D/B,wCA/D+B,EAgE/B,oDAhE+B,EAiE/B,kCAjE+B,EAkE/B,uBAlE+B,EAmE/B,+CAnE+B,EAoE/B,4EApE+B,EAqE/B,uGArE+B,EAsE/B,6EAtE+B,EAuE/B,+CAvE+B,EAwE/B,2CAxE+B,EAyE/B,4CAzE+B,EA0E/B,yCA1E+B,EA2E/B,yCA3E+B,EA4E/B,yCA5E+B,EA6E/B,0CA7E+B,EA8E/B,oCA9E+B,EA+E/B,6CA/E+B,EAgF/B,0CAhF+B,EAiF/B,2CAjF+B,EAkF/B,wCAlF+B,EAmF/B,2DAnF+B,EAoF/B,gFApF+B,EAqF/B,sDArF+B,EAsF/B,2CAtF+B,EAuF/B,6CAvF+B,EAwF/B,gEAxF+B,EAyF/B,qCAzF+B,EA0F/B,oCA1F+B,EA2F/B,iEA3F+B,EA4F/B,oEA5F+B,EA6F/B,gDA7F+B,EA8F/B,yEA9F+B,EA+F/B,kDA/F+B,EAgG/B,sCAhG+B,EAiG/B,oDAjG+B,EAkG/B,8CAlG+B,EAmG/B,yCAnG+B,EAoG/B,oCApG+B,EAqG/B,2DArG+B,EAsG/B,mCAtG+B,EAuG/B,yDAvG+B,EAwG/B,sDAxG+B,EAyG/B,oDAzG+B,EA0G/B,sDA1G+B,EA2G/B,gDA3G+B,EA4G/B,kDA5G+B,EA6G/B,wCA7G+B,EA8G/B,8CA9G+B,EA+G/B,uCA/G+B,EAgH/B,gEAhH+B,EAiH/B,wCAjH+B,EAkH/B,kCAlH+B,EAmH/B,iCAnH+B,EAoH/B,mDApH+B,EAqH/B,iCArH+B,EAsH/B,sDAtH+B,EAuH/B,uCAvH+B,EAwH/B,kCAxH+B,EAyH/B,2CAzH+B,EA0H/B,kEA1H+B,EA2H/B,yCA3H+B,EA4H/B,0DA5H+B,EA6H/B,wDA7H+B,EA8H/B,wDA9H+B,EA+H/B,2DA/H+B,EAgI/B,0DAhI+B,EAiI/B,gCAjI+B,EAkI/B,kCAlI+B,EAmI/B,sCAnI+B,EAoI/B,gEApI+B,EAqI/B,yCArI+B,EAsI/B,wCAtI+B,EAuI/B,oCAvI+B,EAwI/B,iCAxI+B,EAyI/B,0CAzI+B,EA0I/B,iEA1I+B,EA2I/B,wDA3I+B,EA4I/B,uDA5I+B,EA6I/B,qDA7I+B,EA8I/B,mEA9I+B,EA+I/B,uDA/I+B,EAgJ/B,4EAhJ+B,EAiJ/B,oCAjJ+B,EAkJ/B,wDAlJ+B,EAmJ/B,2DAnJ+B,EAoJ/B,kDApJ+B,EAqJ/B,2EArJ+B,EAsJ/B,sCAtJ+B,EAuJ/B,uCAvJ+B,EAwJ/B,gCAxJ+B,EAyJ/B,iCAzJ+B,EA0J/B,kCA1J+B,EA2J/B,mBA3J+B,EA4J/B,2EA5J+B,EA6J/B,kBA7J+B,EA8J/B,qBA9J+B,EA+J/B,oBA/J+B,EAgK/B,oBAhK+B,EAiK/B,0BAjK+B,EAkK/B,oBAlK+B,EAmK/B,mBAnK+B,EAoK/B,kCApK+B,EAqK/B,+DArK+B,EAsK/B,0FAtK+B,EAuK/B,gEAvK+B,EAwK/B,kCAxK+B,EAyK/B,8BAzK+B,EA0K/B,+BA1K+B,EA2K/B,4BA3K+B,EA4K/B,4BA5K+B,EA6K/B,kBA7K+B,EA8K/B,sBA9K+B,EA+K/B,8BA/K+B,EAgL/B,kBAhL+B,EAiL/B,qBAjL+B,EAkL/B,qBAlL+B,EAmL/B,oBAnL+B,EAoL/B,yBApL+B,EAqL/B,wDArL+B,EAsL/B,kBAtL+B,EAuL/B,gBAvL+B,EAwL/B,iCAxL+B,EAyL/B,yCAzL+B,EA0L/B,4BA1L+B,EA2L/B,sBA3L+B,EA4L/B,kDA5L+B,EA6L/B,gBA7L+B,EA8L/B,oBA9L+B,EA+L/B,2DA/L+B,EAgM/B,yBAhM+B,EAiM/B,iBAjM+B,EAkM/B,kCAlM+B,EAmM/B,mBAnM+B,EAoM/B,yBApM+B,EAqM/B,iBArM+B,EAsM/B,YAtM+B,EAuM/B,8BAvM+B,EAwM/B,yCAxM+B,EAyM/B,qCAzM+B,EA0M/B,iCA1M+B,EA2M/B,iCA3M+B,EA4M/B,6BA5M+B,EA6M/B,gCA7M+B,EA8M/B,4BA9M+B,EA+M/B,4BA/M+B,EAgN/B,gCAhN+B,EAiN/B,gCAjN+B,EAkN/B,uCAlN+B,EAmN/B,8CAnN+B,EAoN/B,6BApN+B,EAqN/B,+BArN+B,EAsN/B,qCAtN+B,CAA5B;;ACEA,SAASC,oBAAT,CAA8BC,GAA9B,EAAmC;EACtC,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;IACzB,OAAOF,mBAAmB,CAACG,QAApB,CAA6BD,GAA7B,CAAP;GADJ,MAGK;IACD,OAAO,KAAP;;AAEP;;ACJD;AACA;AACA;AACA;;AACA,AAAO,SAASE,YAAT,CAAsBnC,OAAtB,EAA+B;EAClC,OAAO;IACHoB,QAAQ,EAAEvB,MAAM,CAACiC,MAAP,CAAcV,QAAQ,CAACgB,IAAT,CAAc,IAAd,EAAoBpC,OAApB,CAAd,EAA4C;MAClDD,QAAQ,EAAEA,QAAQ,CAACqC,IAAT,CAAc,IAAd,EAAoBpC,OAApB;KADJ;GADd;AAKH;AACDmC,YAAY,CAAClD,OAAb,GAAuBA,OAAvB;;;;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js new file mode 100644 index 0000000..09ca53f --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js @@ -0,0 +1,5 @@ +import { paginate } from "./paginate"; +import { iterator } from "./iterator"; +export const composePaginateRest = Object.assign(paginate, { + iterator, +}); diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js new file mode 100644 index 0000000..863af10 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js @@ -0,0 +1,216 @@ +export const paginatingEndpoints = [ + "GET /app/hook/deliveries", + "GET /app/installations", + "GET /applications/grants", + "GET /authorizations", + "GET /enterprises/{enterprise}/actions/permissions/organizations", + "GET /enterprises/{enterprise}/actions/runner-groups", + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", + "GET /enterprises/{enterprise}/actions/runners", + "GET /enterprises/{enterprise}/audit-log", + "GET /enterprises/{enterprise}/secret-scanning/alerts", + "GET /enterprises/{enterprise}/settings/billing/advanced-security", + "GET /events", + "GET /gists", + "GET /gists/public", + "GET /gists/starred", + "GET /gists/{gist_id}/comments", + "GET /gists/{gist_id}/commits", + "GET /gists/{gist_id}/forks", + "GET /installation/repositories", + "GET /issues", + "GET /licenses", + "GET /marketplace_listing/plans", + "GET /marketplace_listing/plans/{plan_id}/accounts", + "GET /marketplace_listing/stubbed/plans", + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + "GET /networks/{owner}/{repo}/events", + "GET /notifications", + "GET /organizations", + "GET /orgs/{org}/actions/cache/usage-by-repository", + "GET /orgs/{org}/actions/permissions/repositories", + "GET /orgs/{org}/actions/runner-groups", + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", + "GET /orgs/{org}/actions/runners", + "GET /orgs/{org}/actions/secrets", + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + "GET /orgs/{org}/audit-log", + "GET /orgs/{org}/blocks", + "GET /orgs/{org}/code-scanning/alerts", + "GET /orgs/{org}/codespaces", + "GET /orgs/{org}/credential-authorizations", + "GET /orgs/{org}/dependabot/secrets", + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "GET /orgs/{org}/events", + "GET /orgs/{org}/external-groups", + "GET /orgs/{org}/failed_invitations", + "GET /orgs/{org}/hooks", + "GET /orgs/{org}/hooks/{hook_id}/deliveries", + "GET /orgs/{org}/installations", + "GET /orgs/{org}/invitations", + "GET /orgs/{org}/invitations/{invitation_id}/teams", + "GET /orgs/{org}/issues", + "GET /orgs/{org}/members", + "GET /orgs/{org}/migrations", + "GET /orgs/{org}/migrations/{migration_id}/repositories", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/settings/billing/advanced-security", + "GET /orgs/{org}/team-sync/groups", + "GET /orgs/{org}/teams", + "GET /orgs/{org}/teams/{team_slug}/discussions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/invitations", + "GET /orgs/{org}/teams/{team_slug}/members", + "GET /orgs/{org}/teams/{team_slug}/projects", + "GET /orgs/{org}/teams/{team_slug}/repos", + "GET /orgs/{org}/teams/{team_slug}/teams", + "GET /projects/columns/{column_id}/cards", + "GET /projects/{project_id}/collaborators", + "GET /projects/{project_id}/columns", + "GET /repos/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/runners", + "GET /repos/{owner}/{repo}/actions/runs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + "GET /repos/{owner}/{repo}/actions/secrets", + "GET /repos/{owner}/{repo}/actions/workflows", + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + "GET /repos/{owner}/{repo}/assignees", + "GET /repos/{owner}/{repo}/branches", + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + "GET /repos/{owner}/{repo}/code-scanning/alerts", + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + "GET /repos/{owner}/{repo}/code-scanning/analyses", + "GET /repos/{owner}/{repo}/codespaces", + "GET /repos/{owner}/{repo}/codespaces/devcontainers", + "GET /repos/{owner}/{repo}/codespaces/secrets", + "GET /repos/{owner}/{repo}/collaborators", + "GET /repos/{owner}/{repo}/comments", + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/commits", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", + "GET /repos/{owner}/{repo}/commits/{ref}/status", + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + "GET /repos/{owner}/{repo}/contributors", + "GET /repos/{owner}/{repo}/dependabot/secrets", + "GET /repos/{owner}/{repo}/deployments", + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "GET /repos/{owner}/{repo}/environments", + "GET /repos/{owner}/{repo}/events", + "GET /repos/{owner}/{repo}/forks", + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", + "GET /repos/{owner}/{repo}/hooks", + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", + "GET /repos/{owner}/{repo}/invitations", + "GET /repos/{owner}/{repo}/issues", + "GET /repos/{owner}/{repo}/issues/comments", + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/issues/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", + "GET /repos/{owner}/{repo}/issues/{issue_number}/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + "GET /repos/{owner}/{repo}/keys", + "GET /repos/{owner}/{repo}/labels", + "GET /repos/{owner}/{repo}/milestones", + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + "GET /repos/{owner}/{repo}/notifications", + "GET /repos/{owner}/{repo}/pages/builds", + "GET /repos/{owner}/{repo}/projects", + "GET /repos/{owner}/{repo}/pulls", + "GET /repos/{owner}/{repo}/pulls/comments", + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + "GET /repos/{owner}/{repo}/releases", + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/stargazers", + "GET /repos/{owner}/{repo}/subscribers", + "GET /repos/{owner}/{repo}/tags", + "GET /repos/{owner}/{repo}/teams", + "GET /repos/{owner}/{repo}/topics", + "GET /repositories", + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + "GET /search/code", + "GET /search/commits", + "GET /search/issues", + "GET /search/labels", + "GET /search/repositories", + "GET /search/topics", + "GET /search/users", + "GET /teams/{team_id}/discussions", + "GET /teams/{team_id}/discussions/{discussion_number}/comments", + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /teams/{team_id}/discussions/{discussion_number}/reactions", + "GET /teams/{team_id}/invitations", + "GET /teams/{team_id}/members", + "GET /teams/{team_id}/projects", + "GET /teams/{team_id}/repos", + "GET /teams/{team_id}/teams", + "GET /user/blocks", + "GET /user/codespaces", + "GET /user/codespaces/secrets", + "GET /user/emails", + "GET /user/followers", + "GET /user/following", + "GET /user/gpg_keys", + "GET /user/installations", + "GET /user/installations/{installation_id}/repositories", + "GET /user/issues", + "GET /user/keys", + "GET /user/marketplace_purchases", + "GET /user/marketplace_purchases/stubbed", + "GET /user/memberships/orgs", + "GET /user/migrations", + "GET /user/migrations/{migration_id}/repositories", + "GET /user/orgs", + "GET /user/packages", + "GET /user/packages/{package_type}/{package_name}/versions", + "GET /user/public_emails", + "GET /user/repos", + "GET /user/repository_invitations", + "GET /user/starred", + "GET /user/subscriptions", + "GET /user/teams", + "GET /users", + "GET /users/{username}/events", + "GET /users/{username}/events/orgs/{org}", + "GET /users/{username}/events/public", + "GET /users/{username}/followers", + "GET /users/{username}/following", + "GET /users/{username}/gists", + "GET /users/{username}/gpg_keys", + "GET /users/{username}/keys", + "GET /users/{username}/orgs", + "GET /users/{username}/packages", + "GET /users/{username}/projects", + "GET /users/{username}/received_events", + "GET /users/{username}/received_events/public", + "GET /users/{username}/repos", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions", +]; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js new file mode 100644 index 0000000..5ba74de --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js @@ -0,0 +1,17 @@ +import { VERSION } from "./version"; +import { paginate } from "./paginate"; +import { iterator } from "./iterator"; +export { composePaginateRest } from "./compose-paginate"; +export { isPaginatingEndpoint, paginatingEndpoints, } from "./paginating-endpoints"; +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +export function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit), + }), + }; +} +paginateRest.VERSION = VERSION; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js new file mode 100644 index 0000000..7f9ee64 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js @@ -0,0 +1,39 @@ +import { normalizePaginatedListResponse } from "./normalize-paginated-list-response"; +export function iterator(octokit, route, parameters) { + const options = typeof route === "function" + ? route.endpoint(parameters) + : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + try { + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { value: normalizedResponse }; + } + catch (error) { + if (error.status !== 409) + throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [], + }, + }; + } + }, + }), + }; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js new file mode 100644 index 0000000..a87028b --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js @@ -0,0 +1,47 @@ +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +export function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return { + ...response, + data: [], + }; + } + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js new file mode 100644 index 0000000..8d18a60 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js @@ -0,0 +1,24 @@ +import { iterator } from "./iterator"; +export function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator, mapFn); + }); +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js new file mode 100644 index 0000000..1e52899 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/paginating-endpoints.js @@ -0,0 +1,10 @@ +import { paginatingEndpoints, } from "./generated/paginating-endpoints"; +export { paginatingEndpoints } from "./generated/paginating-endpoints"; +export function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } + else { + return false; + } +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/types.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js b/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js new file mode 100644 index 0000000..af4553e --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "2.21.3"; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts new file mode 100644 index 0000000..38a7432 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts @@ -0,0 +1,2 @@ +import { ComposePaginateInterface } from "./types"; +export declare const composePaginateRest: ComposePaginateInterface; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts new file mode 100644 index 0000000..4882d94 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts @@ -0,0 +1,1612 @@ +import { Endpoints } from "@octokit/types"; +export interface PaginatingEndpoints { + /** + * @see https://docs.github.com/rest/reference/apps#list-deliveries-for-an-app-webhook + */ + "GET /app/hook/deliveries": { + parameters: Endpoints["GET /app/hook/deliveries"]["parameters"]; + response: Endpoints["GET /app/hook/deliveries"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app + */ + "GET /app/installations": { + parameters: Endpoints["GET /app/installations"]["parameters"]; + response: Endpoints["GET /app/installations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-grants + */ + "GET /applications/grants": { + parameters: Endpoints["GET /applications/grants"]["parameters"]; + response: Endpoints["GET /applications/grants"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations + */ + "GET /authorizations": { + parameters: Endpoints["GET /authorizations"]["parameters"]; + response: Endpoints["GET /authorizations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-organizations-enabled-for-github-actions-in-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions/organizations": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["response"]["data"]["organizations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups"]["response"]["data"]["runner_groups"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-organization-access-to-a-self-hosted-runner-group-in-a-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations"]["response"]["data"]["organizations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runners"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runners"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise + */ + "GET /enterprises/{enterprise}/audit-log": { + parameters: Endpoints["GET /enterprises/{enterprise}/audit-log"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/audit-log"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/secret-scanning/alerts": { + parameters: Endpoints["GET /enterprises/{enterprise}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/secret-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/billing#export-advanced-security-active-committers-data-for-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/advanced-security": { + parameters: Endpoints["GET /enterprises/{enterprise}/settings/billing/advanced-security"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/settings/billing/advanced-security"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/settings/billing/advanced-security"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events + */ + "GET /events": { + parameters: Endpoints["GET /events"]["parameters"]; + response: Endpoints["GET /events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-gists-for-the-authenticated-user + */ + "GET /gists": { + parameters: Endpoints["GET /gists"]["parameters"]; + response: Endpoints["GET /gists"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-public-gists + */ + "GET /gists/public": { + parameters: Endpoints["GET /gists/public"]["parameters"]; + response: Endpoints["GET /gists/public"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-starred-gists + */ + "GET /gists/starred": { + parameters: Endpoints["GET /gists/starred"]["parameters"]; + response: Endpoints["GET /gists/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-comments + */ + "GET /gists/{gist_id}/comments": { + parameters: Endpoints["GET /gists/{gist_id}/comments"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-commits + */ + "GET /gists/{gist_id}/commits": { + parameters: Endpoints["GET /gists/{gist_id}/commits"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-forks + */ + "GET /gists/{gist_id}/forks": { + parameters: Endpoints["GET /gists/{gist_id}/forks"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/forks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": { + parameters: Endpoints["GET /installation/repositories"]["parameters"]; + response: Endpoints["GET /installation/repositories"]["response"] & { + data: Endpoints["GET /installation/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": { + parameters: Endpoints["GET /issues"]["parameters"]; + response: Endpoints["GET /issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/licenses#get-all-commonly-used-licenses + */ + "GET /licenses": { + parameters: Endpoints["GET /licenses"]["parameters"]; + response: Endpoints["GET /licenses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans + */ + "GET /marketplace_listing/plans": { + parameters: Endpoints["GET /marketplace_listing/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": { + parameters: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": { + parameters: Endpoints["GET /marketplace_listing/stubbed/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": { + parameters: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": { + parameters: Endpoints["GET /networks/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /networks/{owner}/{repo}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user + */ + "GET /notifications": { + parameters: Endpoints["GET /notifications"]["parameters"]; + response: Endpoints["GET /notifications"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organizations + */ + "GET /organizations": { + parameters: Endpoints["GET /organizations"]["parameters"]; + response: Endpoints["GET /organizations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-repositories-with-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage-by-repository": { + parameters: Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/cache/usage-by-repository"]["response"]["data"]["repository_cache_usages"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups": { + parameters: Endpoints["GET /orgs/{org}/actions/runner-groups"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runner-groups"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runner-groups"]["response"]["data"]["runner_groups"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners": { + parameters: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": { + parameters: Endpoints["GET /orgs/{org}/actions/runners"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": { + parameters: Endpoints["GET /orgs/{org}/actions/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#get-audit-log + */ + "GET /orgs/{org}/audit-log": { + parameters: Endpoints["GET /orgs/{org}/audit-log"]["parameters"]; + response: Endpoints["GET /orgs/{org}/audit-log"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": { + parameters: Endpoints["GET /orgs/{org}/blocks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/blocks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-by-organization + */ + "GET /orgs/{org}/code-scanning/alerts": { + parameters: Endpoints["GET /orgs/{org}/code-scanning/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/code-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-in-organization + */ + "GET /orgs/{org}/codespaces": { + parameters: Endpoints["GET /orgs/{org}/codespaces"]["parameters"]; + response: Endpoints["GET /orgs/{org}/codespaces"]["response"] & { + data: Endpoints["GET /orgs/{org}/codespaces"]["response"]["data"]["codespaces"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-saml-sso-authorizations-for-an-organization + */ + "GET /orgs/{org}/credential-authorizations": { + parameters: Endpoints["GET /orgs/{org}/credential-authorizations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/credential-authorizations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/dependabot#list-organization-secrets + */ + "GET /orgs/{org}/dependabot/secrets": { + parameters: Endpoints["GET /orgs/{org}/dependabot/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets"]["response"] & { + data: Endpoints["GET /orgs/{org}/dependabot/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + parameters: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-organization-events + */ + "GET /orgs/{org}/events": { + parameters: Endpoints["GET /orgs/{org}/events"]["parameters"]; + response: Endpoints["GET /orgs/{org}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-external-idp-groups-for-an-organization + */ + "GET /orgs/{org}/external-groups": { + parameters: Endpoints["GET /orgs/{org}/external-groups"]["parameters"]; + response: Endpoints["GET /orgs/{org}/external-groups"]["response"] & { + data: Endpoints["GET /orgs/{org}/external-groups"]["response"]["data"]["groups"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-failed-organization-invitations + */ + "GET /orgs/{org}/failed_invitations": { + parameters: Endpoints["GET /orgs/{org}/failed_invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/failed_invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": { + parameters: Endpoints["GET /orgs/{org}/hooks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-deliveries-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries": { + parameters: Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}/deliveries"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": { + parameters: Endpoints["GET /orgs/{org}/installations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/installations"]["response"] & { + data: Endpoints["GET /orgs/{org}/installations"]["response"]["data"]["installations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": { + parameters: Endpoints["GET /orgs/{org}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": { + parameters: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": { + parameters: Endpoints["GET /orgs/{org}/issues"]["parameters"]; + response: Endpoints["GET /orgs/{org}/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-members + */ + "GET /orgs/{org}/members": { + parameters: Endpoints["GET /orgs/{org}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-organization-migrations + */ + "GET /orgs/{org}/migrations": { + parameters: Endpoints["GET /orgs/{org}/migrations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": { + parameters: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": { + parameters: Endpoints["GET /orgs/{org}/outside_collaborators"]["parameters"]; + response: Endpoints["GET /orgs/{org}/outside_collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/packages#list-packages-for-an-organization + */ + "GET /orgs/{org}/packages": { + parameters: Endpoints["GET /orgs/{org}/packages"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions": { + parameters: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-organization-projects + */ + "GET /orgs/{org}/projects": { + parameters: Endpoints["GET /orgs/{org}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-public-organization-members + */ + "GET /orgs/{org}/public_members": { + parameters: Endpoints["GET /orgs/{org}/public_members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/public_members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-organization-repositories + */ + "GET /orgs/{org}/repos": { + parameters: Endpoints["GET /orgs/{org}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/secret-scanning/alerts": { + parameters: Endpoints["GET /orgs/{org}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /orgs/{org}/secret-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-advanced-security-active-committers-for-an-organization + */ + "GET /orgs/{org}/settings/billing/advanced-security": { + parameters: Endpoints["GET /orgs/{org}/settings/billing/advanced-security"]["parameters"]; + response: Endpoints["GET /orgs/{org}/settings/billing/advanced-security"]["response"] & { + data: Endpoints["GET /orgs/{org}/settings/billing/advanced-security"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-an-organization + */ + "GET /orgs/{org}/team-sync/groups": { + parameters: Endpoints["GET /orgs/{org}/team-sync/groups"]["parameters"]; + response: Endpoints["GET /orgs/{org}/team-sync/groups"]["response"] & { + data: Endpoints["GET /orgs/{org}/team-sync/groups"]["response"]["data"]["groups"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-teams + */ + "GET /orgs/{org}/teams": { + parameters: Endpoints["GET /orgs/{org}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": { + parameters: Endpoints["GET /projects/columns/{column_id}/cards"]["parameters"]; + response: Endpoints["GET /projects/columns/{column_id}/cards"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": { + parameters: Endpoints["GET /projects/{project_id}/collaborators"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-columns + */ + "GET /projects/{project_id}/columns": { + parameters: Endpoints["GET /projects/{project_id}/columns"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/columns"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"]["data"]["artifacts"]; + }; + }; + /** + * @see https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/caches": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/caches"]["response"]["data"]["actions_caches"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"]["data"]["workflow_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"]["data"]["artifacts"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"]["response"]["data"]["jobs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"]["data"]["jobs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"]["data"]["workflows"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"]["data"]["workflow_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": { + parameters: Endpoints["GET /repos/{owner}/{repo}/assignees"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/assignees"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-branches + */ + "GET /repos/{owner}/{repo}/branches": { + parameters: Endpoints["GET /repos/{owner}/{repo}/branches"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"]["data"]["check_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-instances-of-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-analyses-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces": { + parameters: Endpoints["GET /repos/{owner}/{repo}/codespaces"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/codespaces"]["response"]["data"]["codespaces"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-devcontainers-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/devcontainers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/codespaces/devcontainers"]["response"]["data"]["devcontainers"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/codespaces/secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/codespaces/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": { + parameters: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commits + */ + "GET /repos/{owner}/{repo}/commits": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"]["data"]["check_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"]["data"]["check_suites"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-combined-status-for-a-specific-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/status": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["response"]["data"]["statuses"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": { + parameters: Endpoints["GET /repos/{owner}/{repo}/contributors"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/contributors"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/dependabot#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/dependabot/secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/dependabot/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/deployments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-environments + */ + "GET /repos/{owner}/{repo}/environments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/environments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/environments"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/environments"]["response"]["data"]["environments"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-forks + */ + "GET /repos/{owner}/{repo}/forks": { + parameters: Endpoints["GET /repos/{owner}/{repo}/forks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/forks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/git#list-matching-references + */ + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}": { + parameters: Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": { + parameters: Endpoints["GET /repos/{owner}/{repo}/hooks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-deliveries-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries": { + parameters: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/invitations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": { + parameters: Endpoints["GET /repos/{owner}/{repo}/keys"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": { + parameters: Endpoints["GET /repos/{owner}/{repo}/milestones"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": { + parameters: Endpoints["GET /repos/{owner}/{repo}/notifications"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/notifications"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-github-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": { + parameters: Endpoints["GET /repos/{owner}/{repo}/projects"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-requested-reviewers-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]["data"]["users"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-releases + */ + "GET /repos/{owner}/{repo}/releases": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-locations-for-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": { + parameters: Endpoints["GET /repos/{owner}/{repo}/tags"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/tags"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": { + parameters: Endpoints["GET /repos/{owner}/{repo}/teams"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-repository-topics + */ + "GET /repos/{owner}/{repo}/topics": { + parameters: Endpoints["GET /repos/{owner}/{repo}/topics"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/topics"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/topics"]["response"]["data"]["names"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-public-repositories + */ + "GET /repositories": { + parameters: Endpoints["GET /repositories"]["parameters"]; + response: Endpoints["GET /repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-environment-secrets + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets": { + parameters: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["parameters"]; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["response"] & { + data: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/search#search-code + */ + "GET /search/code": { + parameters: Endpoints["GET /search/code"]["parameters"]; + response: Endpoints["GET /search/code"]["response"] & { + data: Endpoints["GET /search/code"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/search#search-commits + */ + "GET /search/commits": { + parameters: Endpoints["GET /search/commits"]["parameters"]; + response: Endpoints["GET /search/commits"]["response"] & { + data: Endpoints["GET /search/commits"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/search#search-issues-and-pull-requests + */ + "GET /search/issues": { + parameters: Endpoints["GET /search/issues"]["parameters"]; + response: Endpoints["GET /search/issues"]["response"] & { + data: Endpoints["GET /search/issues"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/search#search-labels + */ + "GET /search/labels": { + parameters: Endpoints["GET /search/labels"]["parameters"]; + response: Endpoints["GET /search/labels"]["response"] & { + data: Endpoints["GET /search/labels"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/search#search-repositories + */ + "GET /search/repositories": { + parameters: Endpoints["GET /search/repositories"]["parameters"]; + response: Endpoints["GET /search/repositories"]["response"] & { + data: Endpoints["GET /search/repositories"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/search#search-topics + */ + "GET /search/topics": { + parameters: Endpoints["GET /search/topics"]["parameters"]; + response: Endpoints["GET /search/topics"]["response"] & { + data: Endpoints["GET /search/topics"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/search#search-users + */ + "GET /search/users": { + parameters: Endpoints["GET /search/users"]["parameters"]; + response: Endpoints["GET /search/users"]["response"] & { + data: Endpoints["GET /search/users"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": { + parameters: Endpoints["GET /teams/{team_id}/discussions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": { + parameters: Endpoints["GET /teams/{team_id}/invitations"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members-legacy + */ + "GET /teams/{team_id}/members": { + parameters: Endpoints["GET /teams/{team_id}/members"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams/#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": { + parameters: Endpoints["GET /teams/{team_id}/projects"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams/#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": { + parameters: Endpoints["GET /teams/{team_id}/repos"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams/#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": { + parameters: Endpoints["GET /teams/{team_id}/teams"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": { + parameters: Endpoints["GET /user/blocks"]["parameters"]; + response: Endpoints["GET /user/blocks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-codespaces-for-the-authenticated-user + */ + "GET /user/codespaces": { + parameters: Endpoints["GET /user/codespaces"]["parameters"]; + response: Endpoints["GET /user/codespaces"]["response"] & { + data: Endpoints["GET /user/codespaces"]["response"]["data"]["codespaces"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-secrets-for-the-authenticated-user + */ + "GET /user/codespaces/secrets": { + parameters: Endpoints["GET /user/codespaces/secrets"]["parameters"]; + response: Endpoints["GET /user/codespaces/secrets"]["response"] & { + data: Endpoints["GET /user/codespaces/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": { + parameters: Endpoints["GET /user/emails"]["parameters"]; + response: Endpoints["GET /user/emails"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-the-authenticated-user + */ + "GET /user/followers": { + parameters: Endpoints["GET /user/followers"]["parameters"]; + response: Endpoints["GET /user/followers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": { + parameters: Endpoints["GET /user/following"]["parameters"]; + response: Endpoints["GET /user/following"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": { + parameters: Endpoints["GET /user/gpg_keys"]["parameters"]; + response: Endpoints["GET /user/gpg_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": { + parameters: Endpoints["GET /user/installations"]["parameters"]; + response: Endpoints["GET /user/installations"]["response"] & { + data: Endpoints["GET /user/installations"]["response"]["data"]["installations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": { + parameters: Endpoints["GET /user/installations/{installation_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"] & { + data: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": { + parameters: Endpoints["GET /user/issues"]["parameters"]; + response: Endpoints["GET /user/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": { + parameters: Endpoints["GET /user/keys"]["parameters"]; + response: Endpoints["GET /user/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": { + parameters: Endpoints["GET /user/marketplace_purchases"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": { + parameters: Endpoints["GET /user/marketplace_purchases/stubbed"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases/stubbed"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": { + parameters: Endpoints["GET /user/memberships/orgs"]["parameters"]; + response: Endpoints["GET /user/memberships/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-user-migrations + */ + "GET /user/migrations": { + parameters: Endpoints["GET /user/migrations"]["parameters"]; + response: Endpoints["GET /user/migrations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": { + parameters: Endpoints["GET /user/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/migrations/{migration_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": { + parameters: Endpoints["GET /user/orgs"]["parameters"]; + response: Endpoints["GET /user/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/packages#list-packages-for-the-authenticated-user + */ + "GET /user/packages": { + parameters: Endpoints["GET /user/packages"]["parameters"]; + response: Endpoints["GET /user/packages"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions": { + parameters: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["parameters"]; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": { + parameters: Endpoints["GET /user/public_emails"]["parameters"]; + response: Endpoints["GET /user/public_emails"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": { + parameters: Endpoints["GET /user/repos"]["parameters"]; + response: Endpoints["GET /user/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": { + parameters: Endpoints["GET /user/repository_invitations"]["parameters"]; + response: Endpoints["GET /user/repository_invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": { + parameters: Endpoints["GET /user/starred"]["parameters"]; + response: Endpoints["GET /user/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": { + parameters: Endpoints["GET /user/subscriptions"]["parameters"]; + response: Endpoints["GET /user/subscriptions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-teams-for-the-authenticated-user + */ + "GET /user/teams": { + parameters: Endpoints["GET /user/teams"]["parameters"]; + response: Endpoints["GET /user/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-users + */ + "GET /users": { + parameters: Endpoints["GET /users"]["parameters"]; + response: Endpoints["GET /users"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": { + parameters: Endpoints["GET /users/{username}/events"]["parameters"]; + response: Endpoints["GET /users/{username}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": { + parameters: Endpoints["GET /users/{username}/events/orgs/{org}"]["parameters"]; + response: Endpoints["GET /users/{username}/events/orgs/{org}"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": { + parameters: Endpoints["GET /users/{username}/events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/events/public"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-a-user + */ + "GET /users/{username}/followers": { + parameters: Endpoints["GET /users/{username}/followers"]["parameters"]; + response: Endpoints["GET /users/{username}/followers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-a-user-follows + */ + "GET /users/{username}/following": { + parameters: Endpoints["GET /users/{username}/following"]["parameters"]; + response: Endpoints["GET /users/{username}/following"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-gists-for-a-user + */ + "GET /users/{username}/gists": { + parameters: Endpoints["GET /users/{username}/gists"]["parameters"]; + response: Endpoints["GET /users/{username}/gists"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": { + parameters: Endpoints["GET /users/{username}/gpg_keys"]["parameters"]; + response: Endpoints["GET /users/{username}/gpg_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": { + parameters: Endpoints["GET /users/{username}/keys"]["parameters"]; + response: Endpoints["GET /users/{username}/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": { + parameters: Endpoints["GET /users/{username}/orgs"]["parameters"]; + response: Endpoints["GET /users/{username}/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/packages#list-packages-for-user + */ + "GET /users/{username}/packages": { + parameters: Endpoints["GET /users/{username}/packages"]["parameters"]; + response: Endpoints["GET /users/{username}/packages"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-user-projects + */ + "GET /users/{username}/projects": { + parameters: Endpoints["GET /users/{username}/projects"]["parameters"]; + response: Endpoints["GET /users/{username}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": { + parameters: Endpoints["GET /users/{username}/received_events"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": { + parameters: Endpoints["GET /users/{username}/received_events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events/public"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repositories-for-a-user + */ + "GET /users/{username}/repos": { + parameters: Endpoints["GET /users/{username}/repos"]["parameters"]; + response: Endpoints["GET /users/{username}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": { + parameters: Endpoints["GET /users/{username}/starred"]["parameters"]; + response: Endpoints["GET /users/{username}/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": { + parameters: Endpoints["GET /users/{username}/subscriptions"]["parameters"]; + response: Endpoints["GET /users/{username}/subscriptions"]["response"]; + }; +} +export declare const paginatingEndpoints: (keyof PaginatingEndpoints)[]; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts new file mode 100644 index 0000000..4d84aae --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts @@ -0,0 +1,16 @@ +import { Octokit } from "@octokit/core"; +import { PaginateInterface } from "./types"; +export { PaginateInterface } from "./types"; +export { PaginatingEndpoints } from "./types"; +export { composePaginateRest } from "./compose-paginate"; +export { isPaginatingEndpoint, paginatingEndpoints, } from "./paginating-endpoints"; +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +export declare function paginateRest(octokit: Octokit): { + paginate: PaginateInterface; +}; +export declare namespace paginateRest { + var VERSION: string; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts new file mode 100644 index 0000000..931d530 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts @@ -0,0 +1,20 @@ +import { Octokit } from "@octokit/core"; +import { RequestInterface, RequestParameters, Route } from "./types"; +export declare function iterator(octokit: Octokit, route: Route | RequestInterface, parameters?: RequestParameters): { + [Symbol.asyncIterator]: () => { + next(): Promise<{ + done: boolean; + value?: undefined; + } | { + value: import("@octokit/types/dist-types/OctokitResponse").OctokitResponse; + done?: undefined; + } | { + value: { + status: number; + headers: {}; + data: never[]; + }; + done?: undefined; + }>; + }; +}; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts new file mode 100644 index 0000000..f948a78 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts @@ -0,0 +1,18 @@ +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +import { OctokitResponse } from "./types"; +export declare function normalizePaginatedListResponse(response: OctokitResponse): OctokitResponse; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts new file mode 100644 index 0000000..774c604 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts @@ -0,0 +1,3 @@ +import { Octokit } from "@octokit/core"; +import { MapFunction, PaginationResults, RequestParameters, Route, RequestInterface } from "./types"; +export declare function paginate(octokit: Octokit, route: Route | RequestInterface, parameters?: RequestParameters, mapFn?: MapFunction): Promise>; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts new file mode 100644 index 0000000..f6a4d7b --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts @@ -0,0 +1,3 @@ +import { PaginatingEndpoints } from "./generated/paginating-endpoints"; +export { paginatingEndpoints } from "./generated/paginating-endpoints"; +export declare function isPaginatingEndpoint(arg: unknown): arg is keyof PaginatingEndpoints; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts new file mode 100644 index 0000000..0634907 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts @@ -0,0 +1,242 @@ +import { Octokit } from "@octokit/core"; +import * as OctokitTypes from "@octokit/types"; +export { EndpointOptions, RequestInterface, OctokitResponse, RequestParameters, Route, } from "@octokit/types"; +export { PaginatingEndpoints } from "./generated/paginating-endpoints"; +import { PaginatingEndpoints } from "./generated/paginating-endpoints"; +declare type KnownKeys = Extract<{ + [K in keyof T]: string extends K ? never : number extends K ? never : K; +} extends { + [_ in keyof T]: infer U; +} ? U : never, keyof T>; +declare type KeysMatching = { + [K in keyof T]: T[K] extends V ? K : never; +}[keyof T]; +declare type KnownKeysMatching = KeysMatching>, V>; +declare type GetResultsType = T extends { + data: any[]; +} ? T["data"] : T extends { + data: object; +} ? T["data"][KnownKeysMatching] : never; +declare type NormalizeResponse = T & { + data: GetResultsType; +}; +declare type DataType = "data" extends keyof T ? T["data"] : unknown; +export interface MapFunction>, M = unknown[]> { + (response: T, done: () => void): M; +} +export declare type PaginationResults = T[]; +export interface PaginateInterface { + /** + * Paginate a request using endpoint options and map each response to a custom array + * + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (options: OctokitTypes.EndpointOptions, mapFn: MapFunction>, M[]>): Promise>; + /** + * Paginate a request using endpoint options + * + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: OctokitTypes.EndpointOptions): Promise>; + /** + * Paginate a request using a known endpoint route string and map each response to a custom array + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {function} mapFn Optional method to map each response to a custom array + */ + (route: R, mapFn: MapFunction): Promise; + /** + * Paginate a request using a known endpoint route string and parameters, and map each response to a custom array + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (route: R, parameters: PaginatingEndpoints[R]["parameters"], mapFn: MapFunction): Promise; + /** + * Paginate a request using an known endpoint route string + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: PaginatingEndpoints[R]["parameters"]): Promise>; + /** + * Paginate a request using an unknown endpoint route string + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): Promise; + /** + * Paginate a request using an endpoint method and a map function + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (request: R, mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method, parameters, and a map function + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (request: R, parameters: Parameters[0], mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method and parameters + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: R, parameters?: Parameters[0]): Promise>["data"]>; + iterator: { + /** + * Get an async iterator to paginate a request using endpoint options + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: OctokitTypes.EndpointOptions): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a known endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: PaginatingEndpoints[R]["parameters"]): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using an unknown endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a request method and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} request `@octokit/request` or `octokit.request` method + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: R, parameters?: Parameters[0]): AsyncIterableIterator>>; + }; +} +export interface ComposePaginateInterface { + /** + * Paginate a request using endpoint options and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions, mapFn: MapFunction>, M[]>): Promise>; + /** + * Paginate a request using endpoint options + * + * @param {object} octokit Octokit instance + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions): Promise>; + /** + * Paginate a request using a known endpoint route string and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, route: R, mapFn: MapFunction): Promise; + /** + * Paginate a request using a known endpoint route string and parameters, and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, route: R, parameters: PaginatingEndpoints[R]["parameters"], mapFn: MapFunction): Promise; + /** + * Paginate a request using an known endpoint route string + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: PaginatingEndpoints[R]["parameters"]): Promise>; + /** + * Paginate a request using an unknown endpoint route string + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): Promise; + /** + * Paginate a request using an endpoint method and a map function + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (octokit: Octokit, request: R, mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method, parameters, and a map function + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (octokit: Octokit, request: R, parameters: Parameters[0], mapFn: MapFunction>, M>): Promise; + /** + * Paginate a request using an endpoint method and parameters + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, request: R, parameters?: Parameters[0]): Promise>["data"]>; + iterator: { + /** + * Get an async iterator to paginate a request using endpoint options + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {object} options Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a known endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: PaginatingEndpoints[R]["parameters"]): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using an unknown endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a request method and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} request `@octokit/request` or `octokit.request` method + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, request: R, parameters?: Parameters[0]): AsyncIterableIterator>>; + }; +} diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts b/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts new file mode 100644 index 0000000..77e3d51 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "2.21.3"; diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js new file mode 100644 index 0000000..e76659f --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js @@ -0,0 +1,358 @@ +const VERSION = "2.21.3"; + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return { + ...response, + data: [], + }; + } + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} + +function iterator(octokit, route, parameters) { + const options = typeof route === "function" + ? route.endpoint(parameters) + : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + try { + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { value: normalizedResponse }; + } + catch (error) { + if (error.status !== 409) + throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [], + }, + }; + } + }, + }), + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator, +}); + +const paginatingEndpoints = [ + "GET /app/hook/deliveries", + "GET /app/installations", + "GET /applications/grants", + "GET /authorizations", + "GET /enterprises/{enterprise}/actions/permissions/organizations", + "GET /enterprises/{enterprise}/actions/runner-groups", + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", + "GET /enterprises/{enterprise}/actions/runners", + "GET /enterprises/{enterprise}/audit-log", + "GET /enterprises/{enterprise}/secret-scanning/alerts", + "GET /enterprises/{enterprise}/settings/billing/advanced-security", + "GET /events", + "GET /gists", + "GET /gists/public", + "GET /gists/starred", + "GET /gists/{gist_id}/comments", + "GET /gists/{gist_id}/commits", + "GET /gists/{gist_id}/forks", + "GET /installation/repositories", + "GET /issues", + "GET /licenses", + "GET /marketplace_listing/plans", + "GET /marketplace_listing/plans/{plan_id}/accounts", + "GET /marketplace_listing/stubbed/plans", + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + "GET /networks/{owner}/{repo}/events", + "GET /notifications", + "GET /organizations", + "GET /orgs/{org}/actions/cache/usage-by-repository", + "GET /orgs/{org}/actions/permissions/repositories", + "GET /orgs/{org}/actions/runner-groups", + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", + "GET /orgs/{org}/actions/runners", + "GET /orgs/{org}/actions/secrets", + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + "GET /orgs/{org}/audit-log", + "GET /orgs/{org}/blocks", + "GET /orgs/{org}/code-scanning/alerts", + "GET /orgs/{org}/codespaces", + "GET /orgs/{org}/credential-authorizations", + "GET /orgs/{org}/dependabot/secrets", + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "GET /orgs/{org}/events", + "GET /orgs/{org}/external-groups", + "GET /orgs/{org}/failed_invitations", + "GET /orgs/{org}/hooks", + "GET /orgs/{org}/hooks/{hook_id}/deliveries", + "GET /orgs/{org}/installations", + "GET /orgs/{org}/invitations", + "GET /orgs/{org}/invitations/{invitation_id}/teams", + "GET /orgs/{org}/issues", + "GET /orgs/{org}/members", + "GET /orgs/{org}/migrations", + "GET /orgs/{org}/migrations/{migration_id}/repositories", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/settings/billing/advanced-security", + "GET /orgs/{org}/team-sync/groups", + "GET /orgs/{org}/teams", + "GET /orgs/{org}/teams/{team_slug}/discussions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/invitations", + "GET /orgs/{org}/teams/{team_slug}/members", + "GET /orgs/{org}/teams/{team_slug}/projects", + "GET /orgs/{org}/teams/{team_slug}/repos", + "GET /orgs/{org}/teams/{team_slug}/teams", + "GET /projects/columns/{column_id}/cards", + "GET /projects/{project_id}/collaborators", + "GET /projects/{project_id}/columns", + "GET /repos/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/runners", + "GET /repos/{owner}/{repo}/actions/runs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + "GET /repos/{owner}/{repo}/actions/secrets", + "GET /repos/{owner}/{repo}/actions/workflows", + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + "GET /repos/{owner}/{repo}/assignees", + "GET /repos/{owner}/{repo}/branches", + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + "GET /repos/{owner}/{repo}/code-scanning/alerts", + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + "GET /repos/{owner}/{repo}/code-scanning/analyses", + "GET /repos/{owner}/{repo}/codespaces", + "GET /repos/{owner}/{repo}/codespaces/devcontainers", + "GET /repos/{owner}/{repo}/codespaces/secrets", + "GET /repos/{owner}/{repo}/collaborators", + "GET /repos/{owner}/{repo}/comments", + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/commits", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", + "GET /repos/{owner}/{repo}/commits/{ref}/status", + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + "GET /repos/{owner}/{repo}/contributors", + "GET /repos/{owner}/{repo}/dependabot/secrets", + "GET /repos/{owner}/{repo}/deployments", + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "GET /repos/{owner}/{repo}/environments", + "GET /repos/{owner}/{repo}/events", + "GET /repos/{owner}/{repo}/forks", + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", + "GET /repos/{owner}/{repo}/hooks", + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", + "GET /repos/{owner}/{repo}/invitations", + "GET /repos/{owner}/{repo}/issues", + "GET /repos/{owner}/{repo}/issues/comments", + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/issues/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", + "GET /repos/{owner}/{repo}/issues/{issue_number}/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + "GET /repos/{owner}/{repo}/keys", + "GET /repos/{owner}/{repo}/labels", + "GET /repos/{owner}/{repo}/milestones", + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + "GET /repos/{owner}/{repo}/notifications", + "GET /repos/{owner}/{repo}/pages/builds", + "GET /repos/{owner}/{repo}/projects", + "GET /repos/{owner}/{repo}/pulls", + "GET /repos/{owner}/{repo}/pulls/comments", + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + "GET /repos/{owner}/{repo}/releases", + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/stargazers", + "GET /repos/{owner}/{repo}/subscribers", + "GET /repos/{owner}/{repo}/tags", + "GET /repos/{owner}/{repo}/teams", + "GET /repos/{owner}/{repo}/topics", + "GET /repositories", + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + "GET /search/code", + "GET /search/commits", + "GET /search/issues", + "GET /search/labels", + "GET /search/repositories", + "GET /search/topics", + "GET /search/users", + "GET /teams/{team_id}/discussions", + "GET /teams/{team_id}/discussions/{discussion_number}/comments", + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /teams/{team_id}/discussions/{discussion_number}/reactions", + "GET /teams/{team_id}/invitations", + "GET /teams/{team_id}/members", + "GET /teams/{team_id}/projects", + "GET /teams/{team_id}/repos", + "GET /teams/{team_id}/teams", + "GET /user/blocks", + "GET /user/codespaces", + "GET /user/codespaces/secrets", + "GET /user/emails", + "GET /user/followers", + "GET /user/following", + "GET /user/gpg_keys", + "GET /user/installations", + "GET /user/installations/{installation_id}/repositories", + "GET /user/issues", + "GET /user/keys", + "GET /user/marketplace_purchases", + "GET /user/marketplace_purchases/stubbed", + "GET /user/memberships/orgs", + "GET /user/migrations", + "GET /user/migrations/{migration_id}/repositories", + "GET /user/orgs", + "GET /user/packages", + "GET /user/packages/{package_type}/{package_name}/versions", + "GET /user/public_emails", + "GET /user/repos", + "GET /user/repository_invitations", + "GET /user/starred", + "GET /user/subscriptions", + "GET /user/teams", + "GET /users", + "GET /users/{username}/events", + "GET /users/{username}/events/orgs/{org}", + "GET /users/{username}/events/public", + "GET /users/{username}/followers", + "GET /users/{username}/following", + "GET /users/{username}/gists", + "GET /users/{username}/gpg_keys", + "GET /users/{username}/keys", + "GET /users/{username}/orgs", + "GET /users/{username}/packages", + "GET /users/{username}/projects", + "GET /users/{username}/received_events", + "GET /users/{username}/received_events/public", + "GET /users/{username}/repos", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions", +]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } + else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit), + }), + }; +} +paginateRest.VERSION = VERSION; + +export { composePaginateRest, isPaginatingEndpoint, paginateRest, paginatingEndpoints }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map new file mode 100644 index 0000000..878b8e4 --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/normalize-paginated-list-response.js","../dist-src/iterator.js","../dist-src/paginate.js","../dist-src/compose-paginate.js","../dist-src/generated/paginating-endpoints.js","../dist-src/paginating-endpoints.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"2.21.3\";\n","/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nexport function normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return {\n ...response,\n data: [],\n };\n }\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n","import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response\";\nexport function iterator(octokit, route, parameters) {\n const options = typeof route === \"function\"\n ? route.endpoint(parameters)\n : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n try {\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return { value: normalizedResponse };\n }\n catch (error) {\n if (error.status !== 409)\n throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: [],\n },\n };\n }\n },\n }),\n };\n}\n","import { iterator } from \"./iterator\";\nexport function paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator, mapFn);\n });\n}\n","import { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport const composePaginateRest = Object.assign(paginate, {\n iterator,\n});\n","export const paginatingEndpoints = [\n \"GET /app/hook/deliveries\",\n \"GET /app/installations\",\n \"GET /applications/grants\",\n \"GET /authorizations\",\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\",\n \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /enterprises/{enterprise}/actions/runners\",\n \"GET /enterprises/{enterprise}/audit-log\",\n \"GET /enterprises/{enterprise}/secret-scanning/alerts\",\n \"GET /enterprises/{enterprise}/settings/billing/advanced-security\",\n \"GET /events\",\n \"GET /gists\",\n \"GET /gists/public\",\n \"GET /gists/starred\",\n \"GET /gists/{gist_id}/comments\",\n \"GET /gists/{gist_id}/commits\",\n \"GET /gists/{gist_id}/forks\",\n \"GET /installation/repositories\",\n \"GET /issues\",\n \"GET /licenses\",\n \"GET /marketplace_listing/plans\",\n \"GET /marketplace_listing/plans/{plan_id}/accounts\",\n \"GET /marketplace_listing/stubbed/plans\",\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n \"GET /networks/{owner}/{repo}/events\",\n \"GET /notifications\",\n \"GET /organizations\",\n \"GET /orgs/{org}/actions/cache/usage-by-repository\",\n \"GET /orgs/{org}/actions/permissions/repositories\",\n \"GET /orgs/{org}/actions/runner-groups\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\",\n \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\",\n \"GET /orgs/{org}/actions/runners\",\n \"GET /orgs/{org}/actions/secrets\",\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/audit-log\",\n \"GET /orgs/{org}/blocks\",\n \"GET /orgs/{org}/code-scanning/alerts\",\n \"GET /orgs/{org}/codespaces\",\n \"GET /orgs/{org}/credential-authorizations\",\n \"GET /orgs/{org}/dependabot/secrets\",\n \"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\",\n \"GET /orgs/{org}/events\",\n \"GET /orgs/{org}/external-groups\",\n \"GET /orgs/{org}/failed_invitations\",\n \"GET /orgs/{org}/hooks\",\n \"GET /orgs/{org}/hooks/{hook_id}/deliveries\",\n \"GET /orgs/{org}/installations\",\n \"GET /orgs/{org}/invitations\",\n \"GET /orgs/{org}/invitations/{invitation_id}/teams\",\n \"GET /orgs/{org}/issues\",\n \"GET /orgs/{org}/members\",\n \"GET /orgs/{org}/migrations\",\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n \"GET /orgs/{org}/outside_collaborators\",\n \"GET /orgs/{org}/packages\",\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n \"GET /orgs/{org}/projects\",\n \"GET /orgs/{org}/public_members\",\n \"GET /orgs/{org}/repos\",\n \"GET /orgs/{org}/secret-scanning/alerts\",\n \"GET /orgs/{org}/settings/billing/advanced-security\",\n \"GET /orgs/{org}/team-sync/groups\",\n \"GET /orgs/{org}/teams\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n \"GET /orgs/{org}/teams/{team_slug}/members\",\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n \"GET /orgs/{org}/teams/{team_slug}/repos\",\n \"GET /orgs/{org}/teams/{team_slug}/teams\",\n \"GET /projects/columns/{column_id}/cards\",\n \"GET /projects/{project_id}/collaborators\",\n \"GET /projects/{project_id}/columns\",\n \"GET /repos/{owner}/{repo}/actions/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/caches\",\n \"GET /repos/{owner}/{repo}/actions/runners\",\n \"GET /repos/{owner}/{repo}/actions/runs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n \"GET /repos/{owner}/{repo}/actions/secrets\",\n \"GET /repos/{owner}/{repo}/actions/workflows\",\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n \"GET /repos/{owner}/{repo}/assignees\",\n \"GET /repos/{owner}/{repo}/branches\",\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n \"GET /repos/{owner}/{repo}/code-scanning/analyses\",\n \"GET /repos/{owner}/{repo}/codespaces\",\n \"GET /repos/{owner}/{repo}/codespaces/devcontainers\",\n \"GET /repos/{owner}/{repo}/codespaces/secrets\",\n \"GET /repos/{owner}/{repo}/collaborators\",\n \"GET /repos/{owner}/{repo}/comments\",\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/commits\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/status\",\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n \"GET /repos/{owner}/{repo}/contributors\",\n \"GET /repos/{owner}/{repo}/dependabot/secrets\",\n \"GET /repos/{owner}/{repo}/deployments\",\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n \"GET /repos/{owner}/{repo}/environments\",\n \"GET /repos/{owner}/{repo}/events\",\n \"GET /repos/{owner}/{repo}/forks\",\n \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\",\n \"GET /repos/{owner}/{repo}/hooks\",\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\",\n \"GET /repos/{owner}/{repo}/invitations\",\n \"GET /repos/{owner}/{repo}/issues\",\n \"GET /repos/{owner}/{repo}/issues/comments\",\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n \"GET /repos/{owner}/{repo}/keys\",\n \"GET /repos/{owner}/{repo}/labels\",\n \"GET /repos/{owner}/{repo}/milestones\",\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n \"GET /repos/{owner}/{repo}/notifications\",\n \"GET /repos/{owner}/{repo}/pages/builds\",\n \"GET /repos/{owner}/{repo}/projects\",\n \"GET /repos/{owner}/{repo}/pulls\",\n \"GET /repos/{owner}/{repo}/pulls/comments\",\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\",\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n \"GET /repos/{owner}/{repo}/releases\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n \"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts\",\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\",\n \"GET /repos/{owner}/{repo}/stargazers\",\n \"GET /repos/{owner}/{repo}/subscribers\",\n \"GET /repos/{owner}/{repo}/tags\",\n \"GET /repos/{owner}/{repo}/teams\",\n \"GET /repos/{owner}/{repo}/topics\",\n \"GET /repositories\",\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n \"GET /search/code\",\n \"GET /search/commits\",\n \"GET /search/issues\",\n \"GET /search/labels\",\n \"GET /search/repositories\",\n \"GET /search/topics\",\n \"GET /search/users\",\n \"GET /teams/{team_id}/discussions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\",\n \"GET /teams/{team_id}/invitations\",\n \"GET /teams/{team_id}/members\",\n \"GET /teams/{team_id}/projects\",\n \"GET /teams/{team_id}/repos\",\n \"GET /teams/{team_id}/teams\",\n \"GET /user/blocks\",\n \"GET /user/codespaces\",\n \"GET /user/codespaces/secrets\",\n \"GET /user/emails\",\n \"GET /user/followers\",\n \"GET /user/following\",\n \"GET /user/gpg_keys\",\n \"GET /user/installations\",\n \"GET /user/installations/{installation_id}/repositories\",\n \"GET /user/issues\",\n \"GET /user/keys\",\n \"GET /user/marketplace_purchases\",\n \"GET /user/marketplace_purchases/stubbed\",\n \"GET /user/memberships/orgs\",\n \"GET /user/migrations\",\n \"GET /user/migrations/{migration_id}/repositories\",\n \"GET /user/orgs\",\n \"GET /user/packages\",\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n \"GET /user/public_emails\",\n \"GET /user/repos\",\n \"GET /user/repository_invitations\",\n \"GET /user/starred\",\n \"GET /user/subscriptions\",\n \"GET /user/teams\",\n \"GET /users\",\n \"GET /users/{username}/events\",\n \"GET /users/{username}/events/orgs/{org}\",\n \"GET /users/{username}/events/public\",\n \"GET /users/{username}/followers\",\n \"GET /users/{username}/following\",\n \"GET /users/{username}/gists\",\n \"GET /users/{username}/gpg_keys\",\n \"GET /users/{username}/keys\",\n \"GET /users/{username}/orgs\",\n \"GET /users/{username}/packages\",\n \"GET /users/{username}/projects\",\n \"GET /users/{username}/received_events\",\n \"GET /users/{username}/received_events/public\",\n \"GET /users/{username}/repos\",\n \"GET /users/{username}/starred\",\n \"GET /users/{username}/subscriptions\",\n];\n","import { paginatingEndpoints, } from \"./generated/paginating-endpoints\";\nexport { paginatingEndpoints } from \"./generated/paginating-endpoints\";\nexport function isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n }\n else {\n return false;\n }\n}\n","import { VERSION } from \"./version\";\nimport { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport { composePaginateRest } from \"./compose-paginate\";\nexport { isPaginatingEndpoint, paginatingEndpoints, } from \"./paginating-endpoints\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit),\n }),\n };\n}\npaginateRest.VERSION = VERSION;\n"],"names":[],"mappings":"AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACA1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAO,SAAS,8BAA8B,CAAC,QAAQ,EAAE;AACzD;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,QAAQ,OAAO;AACf,YAAY,GAAG,QAAQ;AACvB,YAAY,IAAI,EAAE,EAAE;AACpB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,0BAA0B,GAAG,aAAa,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnG,IAAI,IAAI,CAAC,0BAA0B;AACnC,QAAQ,OAAO,QAAQ,CAAC;AACxB;AACA;AACA,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC/D,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACnE,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;AACjD,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC5C,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC9C,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,OAAO,iBAAiB,KAAK,WAAW,EAAE;AAClD,QAAQ,QAAQ,CAAC,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,OAAO,mBAAmB,KAAK,WAAW,EAAE;AACpD,QAAQ,QAAQ,CAAC,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;AACjE,KAAK;AACL,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC3C,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;;AC7CM,SAAS,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;AACrD,IAAI,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU;AAC/C,UAAU,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpC,UAAU,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACtD,IAAI,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;AAChF,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACpC,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAC1B,IAAI,OAAO;AACX,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,OAAO;AACvC,YAAY,MAAM,IAAI,GAAG;AACzB,gBAAgB,IAAI,CAAC,GAAG;AACxB,oBAAoB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC1C,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACnF,oBAAoB,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AACxF;AACA;AACA;AACA,oBAAoB,GAAG,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9G,oBAAoB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AACzD,iBAAiB;AACjB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;AAC5C,wBAAwB,MAAM,KAAK,CAAC;AACpC,oBAAoB,GAAG,GAAG,EAAE,CAAC;AAC7B,oBAAoB,OAAO;AAC3B,wBAAwB,KAAK,EAAE;AAC/B,4BAA4B,MAAM,EAAE,GAAG;AACvC,4BAA4B,OAAO,EAAE,EAAE;AACvC,4BAA4B,IAAI,EAAE,EAAE;AACpC,yBAAyB;AACzB,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;;ACrCM,SAAS,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;AAC5D,IAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAC1C,QAAQ,KAAK,GAAG,UAAU,CAAC;AAC3B,QAAQ,UAAU,GAAG,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACpG,CAAC;AACD,SAAS,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AACnD,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC5C,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;AACzB,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAQ,SAAS,IAAI,GAAG;AACxB,YAAY,SAAS,GAAG,IAAI,CAAC;AAC7B,SAAS;AACT,QAAQ,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxF,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzD,KAAK,CAAC,CAAC;AACP,CAAC;;ACrBW,MAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC3D,IAAI,QAAQ;AACZ,CAAC,CAAC;;ACJU,MAAC,mBAAmB,GAAG;AACnC,IAAI,0BAA0B;AAC9B,IAAI,wBAAwB;AAC5B,IAAI,0BAA0B;AAC9B,IAAI,qBAAqB;AACzB,IAAI,iEAAiE;AACrE,IAAI,qDAAqD;AACzD,IAAI,qFAAqF;AACzF,IAAI,+EAA+E;AACnF,IAAI,+CAA+C;AACnD,IAAI,yCAAyC;AAC7C,IAAI,sDAAsD;AAC1D,IAAI,kEAAkE;AACtE,IAAI,aAAa;AACjB,IAAI,YAAY;AAChB,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AACxB,IAAI,+BAA+B;AACnC,IAAI,8BAA8B;AAClC,IAAI,4BAA4B;AAChC,IAAI,gCAAgC;AACpC,IAAI,aAAa;AACjB,IAAI,eAAe;AACnB,IAAI,gCAAgC;AACpC,IAAI,mDAAmD;AACvD,IAAI,wCAAwC;AAC5C,IAAI,2DAA2D;AAC/D,IAAI,qCAAqC;AACzC,IAAI,oBAAoB;AACxB,IAAI,oBAAoB;AACxB,IAAI,mDAAmD;AACvD,IAAI,kDAAkD;AACtD,IAAI,uCAAuC;AAC3C,IAAI,sEAAsE;AAC1E,IAAI,iEAAiE;AACrE,IAAI,iCAAiC;AACrC,IAAI,iCAAiC;AACrC,IAAI,4DAA4D;AAChE,IAAI,2BAA2B;AAC/B,IAAI,wBAAwB;AAC5B,IAAI,sCAAsC;AAC1C,IAAI,4BAA4B;AAChC,IAAI,2CAA2C;AAC/C,IAAI,oCAAoC;AACxC,IAAI,+DAA+D;AACnE,IAAI,wBAAwB;AAC5B,IAAI,iCAAiC;AACrC,IAAI,oCAAoC;AACxC,IAAI,uBAAuB;AAC3B,IAAI,4CAA4C;AAChD,IAAI,+BAA+B;AACnC,IAAI,6BAA6B;AACjC,IAAI,mDAAmD;AACvD,IAAI,wBAAwB;AAC5B,IAAI,yBAAyB;AAC7B,IAAI,4BAA4B;AAChC,IAAI,wDAAwD;AAC5D,IAAI,uCAAuC;AAC3C,IAAI,0BAA0B;AAC9B,IAAI,iEAAiE;AACrE,IAAI,0BAA0B;AAC9B,IAAI,gCAAgC;AACpC,IAAI,uBAAuB;AAC3B,IAAI,wCAAwC;AAC5C,IAAI,oDAAoD;AACxD,IAAI,kCAAkC;AACtC,IAAI,uBAAuB;AAC3B,IAAI,+CAA+C;AACnD,IAAI,4EAA4E;AAChF,IAAI,uGAAuG;AAC3G,IAAI,6EAA6E;AACjF,IAAI,+CAA+C;AACnD,IAAI,2CAA2C;AAC/C,IAAI,4CAA4C;AAChD,IAAI,yCAAyC;AAC7C,IAAI,yCAAyC;AAC7C,IAAI,yCAAyC;AAC7C,IAAI,0CAA0C;AAC9C,IAAI,oCAAoC;AACxC,IAAI,6CAA6C;AACjD,IAAI,0CAA0C;AAC9C,IAAI,2CAA2C;AAC/C,IAAI,wCAAwC;AAC5C,IAAI,2DAA2D;AAC/D,IAAI,gFAAgF;AACpF,IAAI,sDAAsD;AAC1D,IAAI,2CAA2C;AAC/C,IAAI,6CAA6C;AACjD,IAAI,gEAAgE;AACpE,IAAI,qCAAqC;AACzC,IAAI,oCAAoC;AACxC,IAAI,iEAAiE;AACrE,IAAI,oEAAoE;AACxE,IAAI,gDAAgD;AACpD,IAAI,yEAAyE;AAC7E,IAAI,kDAAkD;AACtD,IAAI,sCAAsC;AAC1C,IAAI,oDAAoD;AACxD,IAAI,8CAA8C;AAClD,IAAI,yCAAyC;AAC7C,IAAI,oCAAoC;AACxC,IAAI,2DAA2D;AAC/D,IAAI,mCAAmC;AACvC,IAAI,yDAAyD;AAC7D,IAAI,sDAAsD;AAC1D,IAAI,oDAAoD;AACxD,IAAI,sDAAsD;AAC1D,IAAI,gDAAgD;AACpD,IAAI,kDAAkD;AACtD,IAAI,wCAAwC;AAC5C,IAAI,8CAA8C;AAClD,IAAI,uCAAuC;AAC3C,IAAI,gEAAgE;AACpE,IAAI,wCAAwC;AAC5C,IAAI,kCAAkC;AACtC,IAAI,iCAAiC;AACrC,IAAI,mDAAmD;AACvD,IAAI,iCAAiC;AACrC,IAAI,sDAAsD;AAC1D,IAAI,uCAAuC;AAC3C,IAAI,kCAAkC;AACtC,IAAI,2CAA2C;AAC/C,IAAI,kEAAkE;AACtE,IAAI,yCAAyC;AAC7C,IAAI,0DAA0D;AAC9D,IAAI,wDAAwD;AAC5D,IAAI,wDAAwD;AAC5D,IAAI,2DAA2D;AAC/D,IAAI,0DAA0D;AAC9D,IAAI,gCAAgC;AACpC,IAAI,kCAAkC;AACtC,IAAI,sCAAsC;AAC1C,IAAI,gEAAgE;AACpE,IAAI,yCAAyC;AAC7C,IAAI,wCAAwC;AAC5C,IAAI,oCAAoC;AACxC,IAAI,iCAAiC;AACrC,IAAI,0CAA0C;AAC9C,IAAI,iEAAiE;AACrE,IAAI,wDAAwD;AAC5D,IAAI,uDAAuD;AAC3D,IAAI,qDAAqD;AACzD,IAAI,mEAAmE;AACvE,IAAI,uDAAuD;AAC3D,IAAI,4EAA4E;AAChF,IAAI,oCAAoC;AACxC,IAAI,wDAAwD;AAC5D,IAAI,2DAA2D;AAC/D,IAAI,kDAAkD;AACtD,IAAI,2EAA2E;AAC/E,IAAI,sCAAsC;AAC1C,IAAI,uCAAuC;AAC3C,IAAI,gCAAgC;AACpC,IAAI,iCAAiC;AACrC,IAAI,kCAAkC;AACtC,IAAI,mBAAmB;AACvB,IAAI,2EAA2E;AAC/E,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;AACzB,IAAI,oBAAoB;AACxB,IAAI,oBAAoB;AACxB,IAAI,0BAA0B;AAC9B,IAAI,oBAAoB;AACxB,IAAI,mBAAmB;AACvB,IAAI,kCAAkC;AACtC,IAAI,+DAA+D;AACnE,IAAI,0FAA0F;AAC9F,IAAI,gEAAgE;AACpE,IAAI,kCAAkC;AACtC,IAAI,8BAA8B;AAClC,IAAI,+BAA+B;AACnC,IAAI,4BAA4B;AAChC,IAAI,4BAA4B;AAChC,IAAI,kBAAkB;AACtB,IAAI,sBAAsB;AAC1B,IAAI,8BAA8B;AAClC,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;AACzB,IAAI,qBAAqB;AACzB,IAAI,oBAAoB;AACxB,IAAI,yBAAyB;AAC7B,IAAI,wDAAwD;AAC5D,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,IAAI,iCAAiC;AACrC,IAAI,yCAAyC;AAC7C,IAAI,4BAA4B;AAChC,IAAI,sBAAsB;AAC1B,IAAI,kDAAkD;AACtD,IAAI,gBAAgB;AACpB,IAAI,oBAAoB;AACxB,IAAI,2DAA2D;AAC/D,IAAI,yBAAyB;AAC7B,IAAI,iBAAiB;AACrB,IAAI,kCAAkC;AACtC,IAAI,mBAAmB;AACvB,IAAI,yBAAyB;AAC7B,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAChB,IAAI,8BAA8B;AAClC,IAAI,yCAAyC;AAC7C,IAAI,qCAAqC;AACzC,IAAI,iCAAiC;AACrC,IAAI,iCAAiC;AACrC,IAAI,6BAA6B;AACjC,IAAI,gCAAgC;AACpC,IAAI,4BAA4B;AAChC,IAAI,4BAA4B;AAChC,IAAI,gCAAgC;AACpC,IAAI,gCAAgC;AACpC,IAAI,uCAAuC;AAC3C,IAAI,8CAA8C;AAClD,IAAI,6BAA6B;AACjC,IAAI,+BAA+B;AACnC,IAAI,qCAAqC;AACzC,CAAC;;ACrNM,SAAS,oBAAoB,CAAC,GAAG,EAAE;AAC1C,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,QAAQ,OAAO,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjD,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,CAAC;;ACJD;AACA;AACA;AACA;AACA,AAAO,SAAS,YAAY,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC9D,YAAY,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AAClD,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-paginate-rest/package.json b/node_modules/@octokit/plugin-paginate-rest/package.json new file mode 100644 index 0000000..db9a6dc --- /dev/null +++ b/node_modules/@octokit/plugin-paginate-rest/package.json @@ -0,0 +1,51 @@ +{ + "name": "@octokit/plugin-paginate-rest", + "description": "Octokit plugin to paginate REST API endpoint responses", + "version": "2.21.3", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "pika": true, + "sideEffects": false, + "keywords": [ + "github", + "api", + "sdk", + "toolkit" + ], + "repository": "github:octokit/plugin-paginate-rest.js", + "dependencies": { + "@octokit/types": "^6.40.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" + }, + "devDependencies": { + "@octokit/core": "^4.0.0", + "@octokit/plugin-rest-endpoint-methods": "^6.0.0", + "@pika/pack": "^0.3.7", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^28.0.0", + "@types/node": "^16.0.0", + "fetch-mock": "^9.0.0", + "github-openapi-graphql-query": "^2.0.0", + "jest": "^28.0.0", + "npm-run-all": "^4.1.5", + "prettier": "2.7.1", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^28.0.0", + "typescript": "^4.0.2" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE b/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE new file mode 100644 index 0000000..57bee5f --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/README.md b/node_modules/@octokit/plugin-rest-endpoint-methods/README.md new file mode 100644 index 0000000..f4a7bbd --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/README.md @@ -0,0 +1,74 @@ +# plugin-rest-endpoint-methods.js + +> Octokit plugin adding one method for all of api.github.com REST API endpoints + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-rest-endpoint-methods.svg)](https://www.npmjs.com/package/@octokit/plugin-rest-endpoint-methods) +[![Build Status](https://github.com/octokit/plugin-rest-endpoint-methods.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-rest-endpoint-methods.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-rest-endpoint-methods` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-rest-endpoint-methods`. Optionally replace `@octokit/core` with a compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { + restEndpointMethods, +} = require("@octokit/plugin-rest-endpoint-methods"); +``` + +
+ +```js +const MyOctokit = Octokit.plugin(restEndpointMethods); +const octokit = new MyOctokit({ auth: "secret123" }); + +// https://developer.github.com/v3/users/#get-the-authenticated-user +octokit.rest.users.getAuthenticated(); +``` + +There is one method for each REST API endpoint documented at [https://developer.github.com/v3](https://developer.github.com/v3). All endpoint methods are documented in the [docs/](docs/) folder, e.g. [docs/users/getAuthenticated.md](docs/users/getAuthenticated.md) + +## TypeScript + +Parameter and response types for all endpoint methods exported as `{ RestEndpointMethodTypes }`. + +Example + +```ts +import { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods"; + +type UpdateLabelParameters = RestEndpointMethodTypes["issues"]["updateLabel"]["parameters"]; +type UpdateLabelResponse = RestEndpointMethodTypes["issues"]["updateLabel"]["response"]; +``` + +In order to get types beyond parameters and responses, check out [`@octokit/openapi-types`](https://github.com/octokit/openapi-types.ts/#readme), which is a direct transpliation from GitHub's official OpenAPI specification. + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js new file mode 100644 index 0000000..abffde8 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js @@ -0,0 +1,1229 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + createRegistrationTokenForOrg: ["POST /orgs/{org}/actions/runners/registration-token"], + createRegistrationTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/registration-token"], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/remove-token"], + createWorkflowDispatch: ["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"], + deleteArtifact: ["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + deleteEnvironmentSecret: ["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + deleteSelfHostedRunnerFromOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}"], + deleteSelfHostedRunnerFromRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + disableSelectedRepositoryGithubActionsOrganization: ["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"], + disableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"], + downloadArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"], + downloadJobLogsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"], + downloadWorkflowRunLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + enableSelectedRepositoryGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"], + enableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"], + getAllowedActionsOrganization: ["GET /orgs/{org}/actions/permissions/selected-actions"], + getAllowedActionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsPermissionsOrganization: ["GET /orgs/{org}/actions/permissions"], + getGithubActionsPermissionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions"], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getPendingDeploymentsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], + getRepoPermissions: ["GET /repos/{owner}/{repo}/actions/permissions", {}, { + renamed: ["actions", "getGithubActionsPermissionsRepository"] + }], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getReviewsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"], + getWorkflowUsage: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets"], + listJobsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: ["GET /repos/{owner}/{repo}/actions/runners/downloads"], + listSelectedReposForOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"], + listSelectedRepositoriesEnabledGithubActionsOrganization: ["GET /orgs/{org}/actions/permissions/repositories"], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"], + listWorkflowRuns: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + reviewPendingDeploymentsForRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], + setAllowedActionsOrganization: ["PUT /orgs/{org}/actions/permissions/selected-actions"], + setAllowedActionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"], + setGithubActionsPermissionsOrganization: ["PUT /orgs/{org}/actions/permissions"], + setGithubActionsPermissionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions"], + setSelectedReposForOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: ["DELETE /notifications/threads/{thread_id}/subscription"], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: ["GET /notifications/threads/{thread_id}/subscription"], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: ["GET /users/{username}/events/orgs/{org}"], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: ["GET /users/{username}/received_events/public"], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: ["GET /repos/{owner}/{repo}/notifications"], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: ["PUT /notifications/threads/{thread_id}/subscription"], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: ["PUT /user/installations/{installation_id}/repositories/{repository_id}"], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: ["POST /content_references/{content_reference_id}/attachments", { + mediaType: { + previews: ["corsair"] + } + }], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: ["POST /app/installations/{installation_id}/access_tokens"], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: ["GET /marketplace_listing/accounts/{account_id}"], + getSubscriptionPlanForAccountStubbed: ["GET /marketplace_listing/stubbed/accounts/{account_id}"], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: ["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"], + listInstallationReposForAuthenticatedUser: ["GET /user/installations/{installation_id}/repositories"], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: ["GET /user/marketplace_purchases/stubbed"], + removeRepoFromInstallation: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}"], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: ["DELETE /app/installations/{installation_id}/suspended"], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: ["GET /users/{username}/settings/billing/actions"], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: ["GET /users/{username}/settings/billing/packages"], + getSharedStorageBillingOrg: ["GET /orgs/{org}/settings/billing/shared-storage"], + getSharedStorageBillingUser: ["GET /users/{username}/settings/billing/shared-storage"] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestSuite: ["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"], + setSuitesPreferences: ["PATCH /repos/{owner}/{repo}/check-suites/preferences"], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + getAlert: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { + renamedParameters: { + alert_id: "alert_number" + } + }], + getAnalysis: ["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct", { + mediaType: { + previews: ["scarlet-witch"] + } + }], + getConductCode: ["GET /codes_of_conduct/{key}", { + mediaType: { + previews: ["scarlet-witch"] + } + }], + getForRepo: ["GET /repos/{owner}/{repo}/community/code_of_conduct", { + mediaType: { + previews: ["scarlet-witch"] + } + }] + }, + emojis: { + get: ["GET /emojis"] + }, + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: ["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + getAllowedActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/selected-actions"], + getGithubActionsPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions"], + listSelectedOrganizationsEnabledGithubActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/organizations"], + setAllowedActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"], + setGithubActionsPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions"], + setSelectedOrganizationsEnabledGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations"] + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: ["GET /user/interaction-limits", {}, { + renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] + }], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: ["DELETE /repos/{owner}/{repo}/interaction-limits"], + removeRestrictionsForYourPublicRepos: ["DELETE /user/interaction-limits", {}, { + renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] + }], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: ["PUT /user/interaction-limits", {}, { + renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] + }] + }, + issues: { + addAssignees: ["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: ["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: ["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: ["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", { + mediaType: { + previews: ["mockingbird"] + } + }], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"], + removeAssignees: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + removeLabel: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: ["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: ["POST /markdown/raw", { + headers: { + "content-type": "text/plain; charset=utf-8" + } + }] + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + deleteArchiveForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + downloadArchiveForOrg: ["GET /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getArchiveForAuthenticatedUser: ["GET /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForAuthenticatedUser: ["GET /user/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForOrg: ["GET /orgs/{org}/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForUser: ["GET /user/migrations/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + updateImport: ["PATCH /repos/{owner}/{repo}/import"] + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: ["PUT /orgs/{org}/outside_collaborators/{username}"], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: ["DELETE /orgs/{org}/outside_collaborators/{username}"], + removePublicMembershipForAuthenticatedUser: ["DELETE /orgs/{org}/public_members/{username}"], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}"], + deletePackageForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}"], + deletePackageVersionForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], + deletePackageVersionForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getAllPackageVersionsForAPackageOwnedByAnOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions", {}, { + renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] + }], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions", {}, { + renamed: ["packages", "getAllPackageVersionsForPackageOwnedByAuthenticatedUser"] + }], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions"], + getAllPackageVersionsForPackageOwnedByOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"], + getAllPackageVersionsForPackageOwnedByUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions"], + getPackageForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}"], + getPackageForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}"], + getPackageForUser: ["GET /users/{username}/packages/{package_type}/{package_name}"], + getPackageVersionForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getPackageVersionForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getPackageVersionForUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + restorePackageForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageVersionForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"], + restorePackageVersionForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + createCard: ["POST /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + createColumn: ["POST /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + createForAuthenticatedUser: ["POST /user/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForOrg: ["POST /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForRepo: ["POST /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + delete: ["DELETE /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteCard: ["DELETE /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteColumn: ["DELETE /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + get: ["GET /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getCard: ["GET /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getColumn: ["GET /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission", { + mediaType: { + previews: ["inertia"] + } + }], + listCards: ["GET /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + listCollaborators: ["GET /projects/{project_id}/collaborators", { + mediaType: { + previews: ["inertia"] + } + }], + listColumns: ["GET /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + listForOrg: ["GET /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForRepo: ["GET /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForUser: ["GET /users/{username}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + moveCard: ["POST /projects/columns/cards/{card_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + moveColumn: ["POST /projects/columns/{column_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + update: ["PATCH /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateCard: ["PATCH /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateColumn: ["PATCH /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + deletePendingReview: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + deleteReviewComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + dismissReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + listReviewComments: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + requestReviewers: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + submitReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", { + mediaType: { + previews: ["lydian"] + } + }], + updateReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + updateReviewComment: ["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"] + }, + rateLimit: { + get: ["GET /rate_limit"] + }, + reactions: { + createForCommitComment: ["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssue: ["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssueComment: ["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForPullRequestReviewComment: ["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssue: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssueComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForPullRequestComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussion: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussionComment: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteLegacy: ["DELETE /reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }, { + deprecated: "octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy" + }], + listForCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssueComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForPullRequestReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }] + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + addTeamAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + addUserAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: ["GET /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + createCommitComment: ["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + createCommitSignatureProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: ["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateEnvironment: ["PUT /repos/{owner}/{repo}/environments/{environment_name}"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: ["POST /repos/{template_owner}/{template_repo}/generate", { + mediaType: { + previews: ["baptiste"] + } + }], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + deleteAdminBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + deleteAnEnvironment: ["DELETE /repos/{owner}/{repo}/environments/{environment_name}"], + deleteBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: ["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + deletePullRequestReviewProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: ["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + disableVulnerabilityAlerts: ["DELETE /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + downloadArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}", {}, { + renamed: ["repos", "downloadZipballArchive"] + }], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: ["PUT /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + enableVulnerabilityAlerts: ["PUT /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + getAdminBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"], + getAllTopics: ["GET /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + getAppsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: ["GET /repos/{owner}/{repo}/collaborators/{username}/permission"], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"], + getEnvironment: ["GET /repos/{owner}/{repo}/environments/{environment_name}"], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + getTeamsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", { + mediaType: { + previews: ["groot"] + } + }], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/statuses"], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", { + mediaType: { + previews: ["groot"] + } + }], + listReleaseAssets: ["GET /repos/{owner}/{repo}/releases/{release_id}/assets"], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + removeAppAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + removeCollaborator: ["DELETE /repos/{owner}/{repo}/collaborators/{username}"], + removeStatusCheckContexts: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + removeStatusCheckProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + removeTeamAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + removeUserAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + setAppAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + setStatusCheckContexts: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + setTeamAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + setUserAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection"], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"], + updatePullRequestReviewProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: ["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"], + updateStatusCheckPotection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", {}, { + renamed: ["repos", "updateStatusCheckProtection"] + }], + updateStatusCheckProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"], + uploadReleaseAsset: ["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { + baseUrl: "https://uploads.github.com" + }] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { + mediaType: { + previews: ["cloak"] + } + }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics", { + mediaType: { + previews: ["mercy"] + } + }], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + updateAlert: ["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"] + }, + teams: { + addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], + addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + checkPermissionsForRepoInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + deleteDiscussionInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + getDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + getMembershipForUserInOrg: ["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: ["GET /orgs/{org}/teams/{team_slug}/invitations"], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], + removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + removeRepoInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + updateDiscussionCommentInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + updateDiscussionInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; + +const VERSION = "4.15.1"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ + method, + url + }, defaults); + + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + + const scopeMethods = newMethods[scope]; + + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + + return newMethods; +} + +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` + + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined + }); + return requestWithDefaults(options); + } + + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + + if (!(alias in options)) { + options[alias] = options[name]; + } + + delete options[name]; + } + } + + return requestWithDefaults(options); + } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + + + return requestWithDefaults(...args); + } + + return Object.assign(withDecorations, requestWithDefaults); +} + +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return _objectSpread2(_objectSpread2({}, api), {}, { + rest: api + }); +} +restEndpointMethods.VERSION = VERSION; + +exports.restEndpointMethods = restEndpointMethods; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map new file mode 100644 index 0000000..6fee470 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/generated/endpoints.js","../dist-src/version.js","../dist-src/endpoints-to-methods.js","../dist-src/index.js"],"sourcesContent":["const Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\",\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\",\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\",\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\",\n ],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\",\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\",\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\",\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\",\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\",\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\",\n ],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\",\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\",\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\",\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] },\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\",\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\",\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\",\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\",\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\",\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\",\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\",\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\",\n ],\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\",\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\",\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\",\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\",\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\",\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\",\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"],\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\n \"POST /content_references/{content_reference_id}/attachments\",\n { mediaType: { previews: [\"corsair\"] } },\n ],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\",\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\",\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\",\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\",\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\",\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\",\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"],\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\",\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\",\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\",\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\",\n ],\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\",\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\",\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } },\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\",\n ],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"],\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\n \"GET /codes_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getConductCode: [\n \"GET /codes_of_conduct/{key}\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getForRepo: [\n \"GET /repos/{owner}/{repo}/community/code_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n },\n emojis: { get: [\"GET /emojis\"] },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\n \"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n enableSelectedOrganizationGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n getAllowedActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n getGithubActionsPermissionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions\",\n ],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n setAllowedActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions\",\n ],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"],\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"],\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"],\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] },\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\",\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] },\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] },\n ],\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\",\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n { mediaType: { previews: [\"mockingbird\"] } },\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\",\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"],\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } },\n ],\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"],\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getStatusForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForAuthenticatedUser: [\n \"GET /user/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"],\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\",\n ],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\",\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\",\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\",\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\",\n ],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"],\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\",\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n {},\n { renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"] },\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n {},\n {\n renamed: [\n \"packages\",\n \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\",\n ],\n },\n ],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForPackageOwnedByOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\",\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\",\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\",\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore{?token}\",\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\",\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n },\n projects: {\n addCollaborator: [\n \"PUT /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createCard: [\n \"POST /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createColumn: [\n \"POST /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForAuthenticatedUser: [\n \"POST /user/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForOrg: [\n \"POST /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForRepo: [\n \"POST /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n delete: [\n \"DELETE /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteCard: [\n \"DELETE /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteColumn: [\n \"DELETE /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n get: [\n \"GET /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getCard: [\n \"GET /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getColumn: [\n \"GET /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCards: [\n \"GET /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCollaborators: [\n \"GET /projects/{project_id}/collaborators\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listColumns: [\n \"GET /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForRepo: [\n \"GET /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForUser: [\n \"GET /users/{username}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveCard: [\n \"POST /projects/columns/cards/{card_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveColumn: [\n \"POST /projects/columns/{column_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n update: [\n \"PATCH /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateCard: [\n \"PATCH /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateColumn: [\n \"PATCH /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\",\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\",\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\",\n { mediaType: { previews: [\"lydian\"] } },\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteLegacy: [\n \"DELETE /reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n {\n deprecated: \"octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy\",\n },\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\n \"POST /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\",\n { mediaType: { previews: [\"baptiste\"] } },\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\",\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n deletePagesSite: [\n \"DELETE /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] },\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n ],\n getAllTopics: [\n \"GET /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n ],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\",\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\",\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\",\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\n \"PUT /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] },\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" },\n ],\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", { mediaType: { previews: [\"cloak\"] } }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", { mediaType: { previews: [\"mercy\"] } }],\n users: [\"GET /search/users\"],\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n ],\n listProjectsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"],\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"],\n },\n};\nexport default Endpoints;\n","export const VERSION = \"4.15.1\";\n","export function endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({ method, url }, defaults);\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n const scopeMethods = newMethods[scope];\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args);\n // There are currently no other decorations than `.mapToData`\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined,\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n delete options[name];\n }\n }\n return requestWithDefaults(options);\n }\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n","import ENDPOINTS from \"./generated/endpoints\";\nimport { VERSION } from \"./version\";\nimport { endpointsToMethods } from \"./endpoints-to-methods\";\nexport function restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, ENDPOINTS);\n return {\n ...api,\n rest: api,\n };\n}\nrestEndpointMethods.VERSION = VERSION;\n"],"names":["Endpoints","actions","addSelectedRepoToOrgSecret","cancelWorkflowRun","createOrUpdateEnvironmentSecret","createOrUpdateOrgSecret","createOrUpdateRepoSecret","createRegistrationTokenForOrg","createRegistrationTokenForRepo","createRemoveTokenForOrg","createRemoveTokenForRepo","createWorkflowDispatch","deleteArtifact","deleteEnvironmentSecret","deleteOrgSecret","deleteRepoSecret","deleteSelfHostedRunnerFromOrg","deleteSelfHostedRunnerFromRepo","deleteWorkflowRun","deleteWorkflowRunLogs","disableSelectedRepositoryGithubActionsOrganization","disableWorkflow","downloadArtifact","downloadJobLogsForWorkflowRun","downloadWorkflowRunLogs","enableSelectedRepositoryGithubActionsOrganization","enableWorkflow","getAllowedActionsOrganization","getAllowedActionsRepository","getArtifact","getEnvironmentPublicKey","getEnvironmentSecret","getGithubActionsPermissionsOrganization","getGithubActionsPermissionsRepository","getJobForWorkflowRun","getOrgPublicKey","getOrgSecret","getPendingDeploymentsForRun","getRepoPermissions","renamed","getRepoPublicKey","getRepoSecret","getReviewsForRun","getSelfHostedRunnerForOrg","getSelfHostedRunnerForRepo","getWorkflow","getWorkflowRun","getWorkflowRunUsage","getWorkflowUsage","listArtifactsForRepo","listEnvironmentSecrets","listJobsForWorkflowRun","listOrgSecrets","listRepoSecrets","listRepoWorkflows","listRunnerApplicationsForOrg","listRunnerApplicationsForRepo","listSelectedReposForOrgSecret","listSelectedRepositoriesEnabledGithubActionsOrganization","listSelfHostedRunnersForOrg","listSelfHostedRunnersForRepo","listWorkflowRunArtifacts","listWorkflowRuns","listWorkflowRunsForRepo","reRunWorkflow","removeSelectedRepoFromOrgSecret","reviewPendingDeploymentsForRun","setAllowedActionsOrganization","setAllowedActionsRepository","setGithubActionsPermissionsOrganization","setGithubActionsPermissionsRepository","setSelectedReposForOrgSecret","setSelectedRepositoriesEnabledGithubActionsOrganization","activity","checkRepoIsStarredByAuthenticatedUser","deleteRepoSubscription","deleteThreadSubscription","getFeeds","getRepoSubscription","getThread","getThreadSubscriptionForAuthenticatedUser","listEventsForAuthenticatedUser","listNotificationsForAuthenticatedUser","listOrgEventsForAuthenticatedUser","listPublicEvents","listPublicEventsForRepoNetwork","listPublicEventsForUser","listPublicOrgEvents","listReceivedEventsForUser","listReceivedPublicEventsForUser","listRepoEvents","listRepoNotificationsForAuthenticatedUser","listReposStarredByAuthenticatedUser","listReposStarredByUser","listReposWatchedByUser","listStargazersForRepo","listWatchedReposForAuthenticatedUser","listWatchersForRepo","markNotificationsAsRead","markRepoNotificationsAsRead","markThreadAsRead","setRepoSubscription","setThreadSubscription","starRepoForAuthenticatedUser","unstarRepoForAuthenticatedUser","apps","addRepoToInstallation","checkToken","createContentAttachment","mediaType","previews","createFromManifest","createInstallationAccessToken","deleteAuthorization","deleteInstallation","deleteToken","getAuthenticated","getBySlug","getInstallation","getOrgInstallation","getRepoInstallation","getSubscriptionPlanForAccount","getSubscriptionPlanForAccountStubbed","getUserInstallation","getWebhookConfigForApp","listAccountsForPlan","listAccountsForPlanStubbed","listInstallationReposForAuthenticatedUser","listInstallations","listInstallationsForAuthenticatedUser","listPlans","listPlansStubbed","listReposAccessibleToInstallation","listSubscriptionsForAuthenticatedUser","listSubscriptionsForAuthenticatedUserStubbed","removeRepoFromInstallation","resetToken","revokeInstallationAccessToken","scopeToken","suspendInstallation","unsuspendInstallation","updateWebhookConfigForApp","billing","getGithubActionsBillingOrg","getGithubActionsBillingUser","getGithubPackagesBillingOrg","getGithubPackagesBillingUser","getSharedStorageBillingOrg","getSharedStorageBillingUser","checks","create","createSuite","get","getSuite","listAnnotations","listForRef","listForSuite","listSuitesForRef","rerequestSuite","setSuitesPreferences","update","codeScanning","deleteAnalysis","getAlert","renamedParameters","alert_id","getAnalysis","getSarif","listAlertsForRepo","listAlertsInstances","listRecentAnalyses","updateAlert","uploadSarif","codesOfConduct","getAllCodesOfConduct","getConductCode","getForRepo","emojis","enterpriseAdmin","disableSelectedOrganizationGithubActionsEnterprise","enableSelectedOrganizationGithubActionsEnterprise","getAllowedActionsEnterprise","getGithubActionsPermissionsEnterprise","listSelectedOrganizationsEnabledGithubActionsEnterprise","setAllowedActionsEnterprise","setGithubActionsPermissionsEnterprise","setSelectedOrganizationsEnabledGithubActionsEnterprise","gists","checkIsStarred","createComment","delete","deleteComment","fork","getComment","getRevision","list","listComments","listCommits","listForUser","listForks","listPublic","listStarred","star","unstar","updateComment","git","createBlob","createCommit","createRef","createTag","createTree","deleteRef","getBlob","getCommit","getRef","getTag","getTree","listMatchingRefs","updateRef","gitignore","getAllTemplates","getTemplate","interactions","getRestrictionsForAuthenticatedUser","getRestrictionsForOrg","getRestrictionsForRepo","getRestrictionsForYourPublicRepos","removeRestrictionsForAuthenticatedUser","removeRestrictionsForOrg","removeRestrictionsForRepo","removeRestrictionsForYourPublicRepos","setRestrictionsForAuthenticatedUser","setRestrictionsForOrg","setRestrictionsForRepo","setRestrictionsForYourPublicRepos","issues","addAssignees","addLabels","checkUserCanBeAssigned","createLabel","createMilestone","deleteLabel","deleteMilestone","getEvent","getLabel","getMilestone","listAssignees","listCommentsForRepo","listEvents","listEventsForRepo","listEventsForTimeline","listForAuthenticatedUser","listForOrg","listForRepo","listLabelsForMilestone","listLabelsForRepo","listLabelsOnIssue","listMilestones","lock","removeAllLabels","removeAssignees","removeLabel","setLabels","unlock","updateLabel","updateMilestone","licenses","getAllCommonlyUsed","markdown","render","renderRaw","headers","meta","getOctocat","getZen","root","migrations","cancelImport","deleteArchiveForAuthenticatedUser","deleteArchiveForOrg","downloadArchiveForOrg","getArchiveForAuthenticatedUser","getCommitAuthors","getImportStatus","getLargeFiles","getStatusForAuthenticatedUser","getStatusForOrg","listReposForOrg","listReposForUser","mapCommitAuthor","setLfsPreference","startForAuthenticatedUser","startForOrg","startImport","unlockRepoForAuthenticatedUser","unlockRepoForOrg","updateImport","orgs","blockUser","cancelInvitation","checkBlockedUser","checkMembershipForUser","checkPublicMembershipForUser","convertMemberToOutsideCollaborator","createInvitation","createWebhook","deleteWebhook","getMembershipForAuthenticatedUser","getMembershipForUser","getWebhook","getWebhookConfigForOrg","listAppInstallations","listBlockedUsers","listFailedInvitations","listInvitationTeams","listMembers","listMembershipsForAuthenticatedUser","listOutsideCollaborators","listPendingInvitations","listPublicMembers","listWebhooks","pingWebhook","removeMember","removeMembershipForUser","removeOutsideCollaborator","removePublicMembershipForAuthenticatedUser","setMembershipForUser","setPublicMembershipForAuthenticatedUser","unblockUser","updateMembershipForAuthenticatedUser","updateWebhook","updateWebhookConfigForOrg","packages","deletePackageForAuthenticatedUser","deletePackageForOrg","deletePackageVersionForAuthenticatedUser","deletePackageVersionForOrg","getAllPackageVersionsForAPackageOwnedByAnOrg","getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser","getAllPackageVersionsForPackageOwnedByAuthenticatedUser","getAllPackageVersionsForPackageOwnedByOrg","getAllPackageVersionsForPackageOwnedByUser","getPackageForAuthenticatedUser","getPackageForOrganization","getPackageForUser","getPackageVersionForAuthenticatedUser","getPackageVersionForOrganization","getPackageVersionForUser","restorePackageForAuthenticatedUser","restorePackageForOrg","restorePackageVersionForAuthenticatedUser","restorePackageVersionForOrg","projects","addCollaborator","createCard","createColumn","createForAuthenticatedUser","createForOrg","createForRepo","deleteCard","deleteColumn","getCard","getColumn","getPermissionForUser","listCards","listCollaborators","listColumns","moveCard","moveColumn","removeCollaborator","updateCard","updateColumn","pulls","checkIfMerged","createReplyForReviewComment","createReview","createReviewComment","deletePendingReview","deleteReviewComment","dismissReview","getReview","getReviewComment","listCommentsForReview","listFiles","listRequestedReviewers","listReviewComments","listReviewCommentsForRepo","listReviews","merge","removeRequestedReviewers","requestReviewers","submitReview","updateBranch","updateReview","updateReviewComment","rateLimit","reactions","createForCommitComment","createForIssue","createForIssueComment","createForPullRequestReviewComment","createForTeamDiscussionCommentInOrg","createForTeamDiscussionInOrg","deleteForCommitComment","deleteForIssue","deleteForIssueComment","deleteForPullRequestComment","deleteForTeamDiscussion","deleteForTeamDiscussionComment","deleteLegacy","deprecated","listForCommitComment","listForIssue","listForIssueComment","listForPullRequestReviewComment","listForTeamDiscussionCommentInOrg","listForTeamDiscussionInOrg","repos","acceptInvitation","addAppAccessRestrictions","mapToData","addStatusCheckContexts","addTeamAccessRestrictions","addUserAccessRestrictions","checkCollaborator","checkVulnerabilityAlerts","compareCommits","createCommitComment","createCommitSignatureProtection","createCommitStatus","createDeployKey","createDeployment","createDeploymentStatus","createDispatchEvent","createFork","createInOrg","createOrUpdateEnvironment","createOrUpdateFileContents","createPagesSite","createRelease","createUsingTemplate","declineInvitation","deleteAccessRestrictions","deleteAdminBranchProtection","deleteAnEnvironment","deleteBranchProtection","deleteCommitComment","deleteCommitSignatureProtection","deleteDeployKey","deleteDeployment","deleteFile","deleteInvitation","deletePagesSite","deletePullRequestReviewProtection","deleteRelease","deleteReleaseAsset","disableAutomatedSecurityFixes","disableVulnerabilityAlerts","downloadArchive","downloadTarballArchive","downloadZipballArchive","enableAutomatedSecurityFixes","enableVulnerabilityAlerts","getAccessRestrictions","getAdminBranchProtection","getAllEnvironments","getAllStatusCheckContexts","getAllTopics","getAppsWithAccessToProtectedBranch","getBranch","getBranchProtection","getClones","getCodeFrequencyStats","getCollaboratorPermissionLevel","getCombinedStatusForRef","getCommitActivityStats","getCommitComment","getCommitSignatureProtection","getCommunityProfileMetrics","getContent","getContributorsStats","getDeployKey","getDeployment","getDeploymentStatus","getEnvironment","getLatestPagesBuild","getLatestRelease","getPages","getPagesBuild","getParticipationStats","getPullRequestReviewProtection","getPunchCardStats","getReadme","getReadmeInDirectory","getRelease","getReleaseAsset","getReleaseByTag","getStatusChecksProtection","getTeamsWithAccessToProtectedBranch","getTopPaths","getTopReferrers","getUsersWithAccessToProtectedBranch","getViews","getWebhookConfigForRepo","listBranches","listBranchesForHeadCommit","listCommentsForCommit","listCommitCommentsForRepo","listCommitStatusesForRef","listContributors","listDeployKeys","listDeploymentStatuses","listDeployments","listInvitations","listInvitationsForAuthenticatedUser","listLanguages","listPagesBuilds","listPullRequestsAssociatedWithCommit","listReleaseAssets","listReleases","listTags","listTeams","removeAppAccessRestrictions","removeStatusCheckContexts","removeStatusCheckProtection","removeTeamAccessRestrictions","removeUserAccessRestrictions","renameBranch","replaceAllTopics","requestPagesBuild","setAdminBranchProtection","setAppAccessRestrictions","setStatusCheckContexts","setTeamAccessRestrictions","setUserAccessRestrictions","testPushWebhook","transfer","updateBranchProtection","updateCommitComment","updateInformationAboutPagesSite","updateInvitation","updatePullRequestReviewProtection","updateRelease","updateReleaseAsset","updateStatusCheckPotection","updateStatusCheckProtection","updateWebhookConfigForRepo","uploadReleaseAsset","baseUrl","search","code","commits","issuesAndPullRequests","labels","topics","users","secretScanning","teams","addOrUpdateMembershipForUserInOrg","addOrUpdateProjectPermissionsInOrg","addOrUpdateRepoPermissionsInOrg","checkPermissionsForProjectInOrg","checkPermissionsForRepoInOrg","createDiscussionCommentInOrg","createDiscussionInOrg","deleteDiscussionCommentInOrg","deleteDiscussionInOrg","deleteInOrg","getByName","getDiscussionCommentInOrg","getDiscussionInOrg","getMembershipForUserInOrg","listChildInOrg","listDiscussionCommentsInOrg","listDiscussionsInOrg","listMembersInOrg","listPendingInvitationsInOrg","listProjectsInOrg","listReposInOrg","removeMembershipForUserInOrg","removeProjectInOrg","removeRepoInOrg","updateDiscussionCommentInOrg","updateDiscussionInOrg","updateInOrg","addEmailForAuthenticated","block","checkBlocked","checkFollowingForUser","checkPersonIsFollowedByAuthenticated","createGpgKeyForAuthenticated","createPublicSshKeyForAuthenticated","deleteEmailForAuthenticated","deleteGpgKeyForAuthenticated","deletePublicSshKeyForAuthenticated","follow","getByUsername","getContextForUser","getGpgKeyForAuthenticated","getPublicSshKeyForAuthenticated","listBlockedByAuthenticated","listEmailsForAuthenticated","listFollowedByAuthenticated","listFollowersForAuthenticatedUser","listFollowersForUser","listFollowingForUser","listGpgKeysForAuthenticated","listGpgKeysForUser","listPublicEmailsForAuthenticated","listPublicKeysForUser","listPublicSshKeysForAuthenticated","setPrimaryEmailVisibilityForAuthenticated","unblock","unfollow","updateAuthenticated","VERSION","endpointsToMethods","octokit","endpointsMap","newMethods","scope","endpoints","Object","entries","methodName","endpoint","route","defaults","decorations","method","url","split","endpointDefaults","assign","scopeMethods","decorate","request","requestWithDefaults","withDecorations","args","options","data","undefined","newScope","newMethodName","log","warn","name","alias","restEndpointMethods","api","ENDPOINTS","rest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAMA,SAAS,GAAG;AACdC,EAAAA,OAAO,EAAE;AACLC,IAAAA,0BAA0B,EAAE,CACxB,4EADwB,CADvB;AAILC,IAAAA,iBAAiB,EAAE,CACf,yDADe,CAJd;AAOLC,IAAAA,+BAA+B,EAAE,CAC7B,yFAD6B,CAP5B;AAULC,IAAAA,uBAAuB,EAAE,CAAC,+CAAD,CAVpB;AAWLC,IAAAA,wBAAwB,EAAE,CACtB,yDADsB,CAXrB;AAcLC,IAAAA,6BAA6B,EAAE,CAC3B,qDAD2B,CAd1B;AAiBLC,IAAAA,8BAA8B,EAAE,CAC5B,+DAD4B,CAjB3B;AAoBLC,IAAAA,uBAAuB,EAAE,CAAC,+CAAD,CApBpB;AAqBLC,IAAAA,wBAAwB,EAAE,CACtB,yDADsB,CArBrB;AAwBLC,IAAAA,sBAAsB,EAAE,CACpB,uEADoB,CAxBnB;AA2BLC,IAAAA,cAAc,EAAE,CACZ,8DADY,CA3BX;AA8BLC,IAAAA,uBAAuB,EAAE,CACrB,4FADqB,CA9BpB;AAiCLC,IAAAA,eAAe,EAAE,CAAC,kDAAD,CAjCZ;AAkCLC,IAAAA,gBAAgB,EAAE,CACd,4DADc,CAlCb;AAqCLC,IAAAA,6BAA6B,EAAE,CAC3B,gDAD2B,CArC1B;AAwCLC,IAAAA,8BAA8B,EAAE,CAC5B,0DAD4B,CAxC3B;AA2CLC,IAAAA,iBAAiB,EAAE,CAAC,oDAAD,CA3Cd;AA4CLC,IAAAA,qBAAqB,EAAE,CACnB,yDADmB,CA5ClB;AA+CLC,IAAAA,kDAAkD,EAAE,CAChD,qEADgD,CA/C/C;AAkDLC,IAAAA,eAAe,EAAE,CACb,mEADa,CAlDZ;AAqDLC,IAAAA,gBAAgB,EAAE,CACd,4EADc,CArDb;AAwDLC,IAAAA,6BAA6B,EAAE,CAC3B,sDAD2B,CAxD1B;AA2DLC,IAAAA,uBAAuB,EAAE,CACrB,sDADqB,CA3DpB;AA8DLC,IAAAA,iDAAiD,EAAE,CAC/C,kEAD+C,CA9D9C;AAiELC,IAAAA,cAAc,EAAE,CACZ,kEADY,CAjEX;AAoELC,IAAAA,6BAA6B,EAAE,CAC3B,sDAD2B,CApE1B;AAuELC,IAAAA,2BAA2B,EAAE,CACzB,gEADyB,CAvExB;AA0ELC,IAAAA,WAAW,EAAE,CAAC,2DAAD,CA1ER;AA2ELC,IAAAA,uBAAuB,EAAE,CACrB,sFADqB,CA3EpB;AA8ELC,IAAAA,oBAAoB,EAAE,CAClB,yFADkB,CA9EjB;AAiFLC,IAAAA,uCAAuC,EAAE,CACrC,qCADqC,CAjFpC;AAoFLC,IAAAA,qCAAqC,EAAE,CACnC,+CADmC,CApFlC;AAuFLC,IAAAA,oBAAoB,EAAE,CAAC,iDAAD,CAvFjB;AAwFLC,IAAAA,eAAe,EAAE,CAAC,4CAAD,CAxFZ;AAyFLC,IAAAA,YAAY,EAAE,CAAC,+CAAD,CAzFT;AA0FLC,IAAAA,2BAA2B,EAAE,CACzB,qEADyB,CA1FxB;AA6FLC,IAAAA,kBAAkB,EAAE,CAChB,+CADgB,EAEhB,EAFgB,EAGhB;AAAEC,MAAAA,OAAO,EAAE,CAAC,SAAD,EAAY,uCAAZ;AAAX,KAHgB,CA7Ff;AAkGLC,IAAAA,gBAAgB,EAAE,CAAC,sDAAD,CAlGb;AAmGLC,IAAAA,aAAa,EAAE,CAAC,yDAAD,CAnGV;AAoGLC,IAAAA,gBAAgB,EAAE,CACd,2DADc,CApGb;AAuGLC,IAAAA,yBAAyB,EAAE,CAAC,6CAAD,CAvGtB;AAwGLC,IAAAA,0BAA0B,EAAE,CACxB,uDADwB,CAxGvB;AA2GLC,IAAAA,WAAW,EAAE,CAAC,2DAAD,CA3GR;AA4GLC,IAAAA,cAAc,EAAE,CAAC,iDAAD,CA5GX;AA6GLC,IAAAA,mBAAmB,EAAE,CACjB,wDADiB,CA7GhB;AAgHLC,IAAAA,gBAAgB,EAAE,CACd,kEADc,CAhHb;AAmHLC,IAAAA,oBAAoB,EAAE,CAAC,6CAAD,CAnHjB;AAoHLC,IAAAA,sBAAsB,EAAE,CACpB,2EADoB,CApHnB;AAuHLC,IAAAA,sBAAsB,EAAE,CACpB,sDADoB,CAvHnB;AA0HLC,IAAAA,cAAc,EAAE,CAAC,iCAAD,CA1HX;AA2HLC,IAAAA,eAAe,EAAE,CAAC,2CAAD,CA3HZ;AA4HLC,IAAAA,iBAAiB,EAAE,CAAC,6CAAD,CA5Hd;AA6HLC,IAAAA,4BAA4B,EAAE,CAAC,2CAAD,CA7HzB;AA8HLC,IAAAA,6BAA6B,EAAE,CAC3B,qDAD2B,CA9H1B;AAiILC,IAAAA,6BAA6B,EAAE,CAC3B,4DAD2B,CAjI1B;AAoILC,IAAAA,wDAAwD,EAAE,CACtD,kDADsD,CApIrD;AAuILC,IAAAA,2BAA2B,EAAE,CAAC,iCAAD,CAvIxB;AAwILC,IAAAA,4BAA4B,EAAE,CAAC,2CAAD,CAxIzB;AAyILC,IAAAA,wBAAwB,EAAE,CACtB,2DADsB,CAzIrB;AA4ILC,IAAAA,gBAAgB,EAAE,CACd,gEADc,CA5Ib;AA+ILC,IAAAA,uBAAuB,EAAE,CAAC,wCAAD,CA/IpB;AAgJLC,IAAAA,aAAa,EAAE,CAAC,wDAAD,CAhJV;AAiJLC,IAAAA,+BAA+B,EAAE,CAC7B,+EAD6B,CAjJ5B;AAoJLC,IAAAA,8BAA8B,EAAE,CAC5B,sEAD4B,CApJ3B;AAuJLC,IAAAA,6BAA6B,EAAE,CAC3B,sDAD2B,CAvJ1B;AA0JLC,IAAAA,2BAA2B,EAAE,CACzB,gEADyB,CA1JxB;AA6JLC,IAAAA,uCAAuC,EAAE,CACrC,qCADqC,CA7JpC;AAgKLC,IAAAA,qCAAqC,EAAE,CACnC,+CADmC,CAhKlC;AAmKLC,IAAAA,4BAA4B,EAAE,CAC1B,4DAD0B,CAnKzB;AAsKLC,IAAAA,uDAAuD,EAAE,CACrD,kDADqD;AAtKpD,GADK;AA2KdC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,qCAAqC,EAAE,CAAC,kCAAD,CADjC;AAENC,IAAAA,sBAAsB,EAAE,CAAC,2CAAD,CAFlB;AAGNC,IAAAA,wBAAwB,EAAE,CACtB,wDADsB,CAHpB;AAMNC,IAAAA,QAAQ,EAAE,CAAC,YAAD,CANJ;AAONC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CAPf;AAQNC,IAAAA,SAAS,EAAE,CAAC,wCAAD,CARL;AASNC,IAAAA,yCAAyC,EAAE,CACvC,qDADuC,CATrC;AAYNC,IAAAA,8BAA8B,EAAE,CAAC,8BAAD,CAZ1B;AAaNC,IAAAA,qCAAqC,EAAE,CAAC,oBAAD,CAbjC;AAcNC,IAAAA,iCAAiC,EAAE,CAC/B,yCAD+B,CAd7B;AAiBNC,IAAAA,gBAAgB,EAAE,CAAC,aAAD,CAjBZ;AAkBNC,IAAAA,8BAA8B,EAAE,CAAC,qCAAD,CAlB1B;AAmBNC,IAAAA,uBAAuB,EAAE,CAAC,qCAAD,CAnBnB;AAoBNC,IAAAA,mBAAmB,EAAE,CAAC,wBAAD,CApBf;AAqBNC,IAAAA,yBAAyB,EAAE,CAAC,uCAAD,CArBrB;AAsBNC,IAAAA,+BAA+B,EAAE,CAC7B,8CAD6B,CAtB3B;AAyBNC,IAAAA,cAAc,EAAE,CAAC,kCAAD,CAzBV;AA0BNC,IAAAA,yCAAyC,EAAE,CACvC,yCADuC,CA1BrC;AA6BNC,IAAAA,mCAAmC,EAAE,CAAC,mBAAD,CA7B/B;AA8BNC,IAAAA,sBAAsB,EAAE,CAAC,+BAAD,CA9BlB;AA+BNC,IAAAA,sBAAsB,EAAE,CAAC,qCAAD,CA/BlB;AAgCNC,IAAAA,qBAAqB,EAAE,CAAC,sCAAD,CAhCjB;AAiCNC,IAAAA,oCAAoC,EAAE,CAAC,yBAAD,CAjChC;AAkCNC,IAAAA,mBAAmB,EAAE,CAAC,uCAAD,CAlCf;AAmCNC,IAAAA,uBAAuB,EAAE,CAAC,oBAAD,CAnCnB;AAoCNC,IAAAA,2BAA2B,EAAE,CAAC,yCAAD,CApCvB;AAqCNC,IAAAA,gBAAgB,EAAE,CAAC,0CAAD,CArCZ;AAsCNC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CAtCf;AAuCNC,IAAAA,qBAAqB,EAAE,CACnB,qDADmB,CAvCjB;AA0CNC,IAAAA,4BAA4B,EAAE,CAAC,kCAAD,CA1CxB;AA2CNC,IAAAA,8BAA8B,EAAE,CAAC,qCAAD;AA3C1B,GA3KI;AAwNdC,EAAAA,IAAI,EAAE;AACFC,IAAAA,qBAAqB,EAAE,CACnB,wEADmB,CADrB;AAIFC,IAAAA,UAAU,EAAE,CAAC,sCAAD,CAJV;AAKFC,IAAAA,uBAAuB,EAAE,CACrB,6DADqB,EAErB;AAAEC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFqB,CALvB;AASFC,IAAAA,kBAAkB,EAAE,CAAC,wCAAD,CATlB;AAUFC,IAAAA,6BAA6B,EAAE,CAC3B,yDAD2B,CAV7B;AAaFC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CAbnB;AAcFC,IAAAA,kBAAkB,EAAE,CAAC,6CAAD,CAdlB;AAeFC,IAAAA,WAAW,EAAE,CAAC,wCAAD,CAfX;AAgBFC,IAAAA,gBAAgB,EAAE,CAAC,UAAD,CAhBhB;AAiBFC,IAAAA,SAAS,EAAE,CAAC,sBAAD,CAjBT;AAkBFC,IAAAA,eAAe,EAAE,CAAC,0CAAD,CAlBf;AAmBFC,IAAAA,kBAAkB,EAAE,CAAC,8BAAD,CAnBlB;AAoBFC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CApBnB;AAqBFC,IAAAA,6BAA6B,EAAE,CAC3B,gDAD2B,CArB7B;AAwBFC,IAAAA,oCAAoC,EAAE,CAClC,wDADkC,CAxBpC;AA2BFC,IAAAA,mBAAmB,EAAE,CAAC,oCAAD,CA3BnB;AA4BFC,IAAAA,sBAAsB,EAAE,CAAC,sBAAD,CA5BtB;AA6BFC,IAAAA,mBAAmB,EAAE,CAAC,mDAAD,CA7BnB;AA8BFC,IAAAA,0BAA0B,EAAE,CACxB,2DADwB,CA9B1B;AAiCFC,IAAAA,yCAAyC,EAAE,CACvC,wDADuC,CAjCzC;AAoCFC,IAAAA,iBAAiB,EAAE,CAAC,wBAAD,CApCjB;AAqCFC,IAAAA,qCAAqC,EAAE,CAAC,yBAAD,CArCrC;AAsCFC,IAAAA,SAAS,EAAE,CAAC,gCAAD,CAtCT;AAuCFC,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CAvChB;AAwCFC,IAAAA,iCAAiC,EAAE,CAAC,gCAAD,CAxCjC;AAyCFC,IAAAA,qCAAqC,EAAE,CAAC,iCAAD,CAzCrC;AA0CFC,IAAAA,4CAA4C,EAAE,CAC1C,yCAD0C,CA1C5C;AA6CFC,IAAAA,0BAA0B,EAAE,CACxB,2EADwB,CA7C1B;AAgDFC,IAAAA,UAAU,EAAE,CAAC,uCAAD,CAhDV;AAiDFC,IAAAA,6BAA6B,EAAE,CAAC,4BAAD,CAjD7B;AAkDFC,IAAAA,UAAU,EAAE,CAAC,6CAAD,CAlDV;AAmDFC,IAAAA,mBAAmB,EAAE,CAAC,oDAAD,CAnDnB;AAoDFC,IAAAA,qBAAqB,EAAE,CACnB,uDADmB,CApDrB;AAuDFC,IAAAA,yBAAyB,EAAE,CAAC,wBAAD;AAvDzB,GAxNQ;AAiRdC,EAAAA,OAAO,EAAE;AACLC,IAAAA,0BAA0B,EAAE,CAAC,0CAAD,CADvB;AAELC,IAAAA,2BAA2B,EAAE,CACzB,gDADyB,CAFxB;AAKLC,IAAAA,2BAA2B,EAAE,CAAC,2CAAD,CALxB;AAMLC,IAAAA,4BAA4B,EAAE,CAC1B,iDAD0B,CANzB;AASLC,IAAAA,0BAA0B,EAAE,CACxB,iDADwB,CATvB;AAYLC,IAAAA,2BAA2B,EAAE,CACzB,uDADyB;AAZxB,GAjRK;AAiSdC,EAAAA,MAAM,EAAE;AACJC,IAAAA,MAAM,EAAE,CAAC,uCAAD,CADJ;AAEJC,IAAAA,WAAW,EAAE,CAAC,yCAAD,CAFT;AAGJC,IAAAA,GAAG,EAAE,CAAC,qDAAD,CAHD;AAIJC,IAAAA,QAAQ,EAAE,CAAC,yDAAD,CAJN;AAKJC,IAAAA,eAAe,EAAE,CACb,iEADa,CALb;AAQJC,IAAAA,UAAU,EAAE,CAAC,oDAAD,CARR;AASJC,IAAAA,YAAY,EAAE,CACV,oEADU,CATV;AAYJC,IAAAA,gBAAgB,EAAE,CAAC,sDAAD,CAZd;AAaJC,IAAAA,cAAc,EAAE,CACZ,oEADY,CAbZ;AAgBJC,IAAAA,oBAAoB,EAAE,CAClB,sDADkB,CAhBlB;AAmBJC,IAAAA,MAAM,EAAE,CAAC,uDAAD;AAnBJ,GAjSM;AAsTdC,EAAAA,YAAY,EAAE;AACVC,IAAAA,cAAc,EAAE,CACZ,oFADY,CADN;AAIVC,IAAAA,QAAQ,EAAE,CACN,+DADM,EAEN,EAFM,EAGN;AAAEC,MAAAA,iBAAiB,EAAE;AAAEC,QAAAA,QAAQ,EAAE;AAAZ;AAArB,KAHM,CAJA;AASVC,IAAAA,WAAW,EAAE,CACT,gEADS,CATH;AAYVC,IAAAA,QAAQ,EAAE,CAAC,2DAAD,CAZA;AAaVC,IAAAA,iBAAiB,EAAE,CAAC,gDAAD,CAbT;AAcVC,IAAAA,mBAAmB,EAAE,CACjB,yEADiB,CAdX;AAiBVC,IAAAA,kBAAkB,EAAE,CAAC,kDAAD,CAjBV;AAkBVC,IAAAA,WAAW,EAAE,CACT,iEADS,CAlBH;AAqBVC,IAAAA,WAAW,EAAE,CAAC,iDAAD;AArBH,GAtTA;AA6UdC,EAAAA,cAAc,EAAE;AACZC,IAAAA,oBAAoB,EAAE,CAClB,uBADkB,EAElB;AAAEjE,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFkB,CADV;AAKZiE,IAAAA,cAAc,EAAE,CACZ,6BADY,EAEZ;AAAElE,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFY,CALJ;AASZkE,IAAAA,UAAU,EAAE,CACR,qDADQ,EAER;AAAEnE,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFQ;AATA,GA7UF;AA2VdmE,EAAAA,MAAM,EAAE;AAAEzB,IAAAA,GAAG,EAAE,CAAC,aAAD;AAAP,GA3VM;AA4Vd0B,EAAAA,eAAe,EAAE;AACbC,IAAAA,kDAAkD,EAAE,CAChD,6EADgD,CADvC;AAIbC,IAAAA,iDAAiD,EAAE,CAC/C,0EAD+C,CAJtC;AAObC,IAAAA,2BAA2B,EAAE,CACzB,oEADyB,CAPhB;AAUbC,IAAAA,qCAAqC,EAAE,CACnC,mDADmC,CAV1B;AAabC,IAAAA,uDAAuD,EAAE,CACrD,iEADqD,CAb5C;AAgBbC,IAAAA,2BAA2B,EAAE,CACzB,oEADyB,CAhBhB;AAmBbC,IAAAA,qCAAqC,EAAE,CACnC,mDADmC,CAnB1B;AAsBbC,IAAAA,sDAAsD,EAAE,CACpD,iEADoD;AAtB3C,GA5VH;AAsXdC,EAAAA,KAAK,EAAE;AACHC,IAAAA,cAAc,EAAE,CAAC,2BAAD,CADb;AAEHtC,IAAAA,MAAM,EAAE,CAAC,aAAD,CAFL;AAGHuC,IAAAA,aAAa,EAAE,CAAC,gCAAD,CAHZ;AAIHC,IAAAA,MAAM,EAAE,CAAC,yBAAD,CAJL;AAKHC,IAAAA,aAAa,EAAE,CAAC,+CAAD,CALZ;AAMHC,IAAAA,IAAI,EAAE,CAAC,6BAAD,CANH;AAOHxC,IAAAA,GAAG,EAAE,CAAC,sBAAD,CAPF;AAQHyC,IAAAA,UAAU,EAAE,CAAC,4CAAD,CART;AASHC,IAAAA,WAAW,EAAE,CAAC,4BAAD,CATV;AAUHC,IAAAA,IAAI,EAAE,CAAC,YAAD,CAVH;AAWHC,IAAAA,YAAY,EAAE,CAAC,+BAAD,CAXX;AAYHC,IAAAA,WAAW,EAAE,CAAC,8BAAD,CAZV;AAaHC,IAAAA,WAAW,EAAE,CAAC,6BAAD,CAbV;AAcHC,IAAAA,SAAS,EAAE,CAAC,4BAAD,CAdR;AAeHC,IAAAA,UAAU,EAAE,CAAC,mBAAD,CAfT;AAgBHC,IAAAA,WAAW,EAAE,CAAC,oBAAD,CAhBV;AAiBHC,IAAAA,IAAI,EAAE,CAAC,2BAAD,CAjBH;AAkBHC,IAAAA,MAAM,EAAE,CAAC,8BAAD,CAlBL;AAmBH3C,IAAAA,MAAM,EAAE,CAAC,wBAAD,CAnBL;AAoBH4C,IAAAA,aAAa,EAAE,CAAC,8CAAD;AApBZ,GAtXO;AA4YdC,EAAAA,GAAG,EAAE;AACDC,IAAAA,UAAU,EAAE,CAAC,sCAAD,CADX;AAEDC,IAAAA,YAAY,EAAE,CAAC,wCAAD,CAFb;AAGDC,IAAAA,SAAS,EAAE,CAAC,qCAAD,CAHV;AAIDC,IAAAA,SAAS,EAAE,CAAC,qCAAD,CAJV;AAKDC,IAAAA,UAAU,EAAE,CAAC,sCAAD,CALX;AAMDC,IAAAA,SAAS,EAAE,CAAC,6CAAD,CANV;AAODC,IAAAA,OAAO,EAAE,CAAC,gDAAD,CAPR;AAQDC,IAAAA,SAAS,EAAE,CAAC,oDAAD,CARV;AASDC,IAAAA,MAAM,EAAE,CAAC,yCAAD,CATP;AAUDC,IAAAA,MAAM,EAAE,CAAC,8CAAD,CAVP;AAWDC,IAAAA,OAAO,EAAE,CAAC,gDAAD,CAXR;AAYDC,IAAAA,gBAAgB,EAAE,CAAC,mDAAD,CAZjB;AAaDC,IAAAA,SAAS,EAAE,CAAC,4CAAD;AAbV,GA5YS;AA2ZdC,EAAAA,SAAS,EAAE;AACPC,IAAAA,eAAe,EAAE,CAAC,0BAAD,CADV;AAEPC,IAAAA,WAAW,EAAE,CAAC,iCAAD;AAFN,GA3ZG;AA+ZdC,EAAAA,YAAY,EAAE;AACVC,IAAAA,mCAAmC,EAAE,CAAC,8BAAD,CAD3B;AAEVC,IAAAA,qBAAqB,EAAE,CAAC,oCAAD,CAFb;AAGVC,IAAAA,sBAAsB,EAAE,CAAC,8CAAD,CAHd;AAIVC,IAAAA,iCAAiC,EAAE,CAC/B,8BAD+B,EAE/B,EAF+B,EAG/B;AAAE3L,MAAAA,OAAO,EAAE,CAAC,cAAD,EAAiB,qCAAjB;AAAX,KAH+B,CAJzB;AASV4L,IAAAA,sCAAsC,EAAE,CAAC,iCAAD,CAT9B;AAUVC,IAAAA,wBAAwB,EAAE,CAAC,uCAAD,CAVhB;AAWVC,IAAAA,yBAAyB,EAAE,CACvB,iDADuB,CAXjB;AAcVC,IAAAA,oCAAoC,EAAE,CAClC,iCADkC,EAElC,EAFkC,EAGlC;AAAE/L,MAAAA,OAAO,EAAE,CAAC,cAAD,EAAiB,wCAAjB;AAAX,KAHkC,CAd5B;AAmBVgM,IAAAA,mCAAmC,EAAE,CAAC,8BAAD,CAnB3B;AAoBVC,IAAAA,qBAAqB,EAAE,CAAC,oCAAD,CApBb;AAqBVC,IAAAA,sBAAsB,EAAE,CAAC,8CAAD,CArBd;AAsBVC,IAAAA,iCAAiC,EAAE,CAC/B,8BAD+B,EAE/B,EAF+B,EAG/B;AAAEnM,MAAAA,OAAO,EAAE,CAAC,cAAD,EAAiB,qCAAjB;AAAX,KAH+B;AAtBzB,GA/ZA;AA2bdoM,EAAAA,MAAM,EAAE;AACJC,IAAAA,YAAY,EAAE,CACV,4DADU,CADV;AAIJC,IAAAA,SAAS,EAAE,CAAC,yDAAD,CAJP;AAKJC,IAAAA,sBAAsB,EAAE,CAAC,gDAAD,CALpB;AAMJxF,IAAAA,MAAM,EAAE,CAAC,mCAAD,CANJ;AAOJuC,IAAAA,aAAa,EAAE,CACX,2DADW,CAPX;AAUJkD,IAAAA,WAAW,EAAE,CAAC,mCAAD,CAVT;AAWJC,IAAAA,eAAe,EAAE,CAAC,uCAAD,CAXb;AAYJjD,IAAAA,aAAa,EAAE,CACX,2DADW,CAZX;AAeJkD,IAAAA,WAAW,EAAE,CAAC,4CAAD,CAfT;AAgBJC,IAAAA,eAAe,EAAE,CACb,4DADa,CAhBb;AAmBJ1F,IAAAA,GAAG,EAAE,CAAC,iDAAD,CAnBD;AAoBJyC,IAAAA,UAAU,EAAE,CAAC,wDAAD,CApBR;AAqBJkD,IAAAA,QAAQ,EAAE,CAAC,oDAAD,CArBN;AAsBJC,IAAAA,QAAQ,EAAE,CAAC,yCAAD,CAtBN;AAuBJC,IAAAA,YAAY,EAAE,CAAC,yDAAD,CAvBV;AAwBJlD,IAAAA,IAAI,EAAE,CAAC,aAAD,CAxBF;AAyBJmD,IAAAA,aAAa,EAAE,CAAC,qCAAD,CAzBX;AA0BJlD,IAAAA,YAAY,EAAE,CAAC,0DAAD,CA1BV;AA2BJmD,IAAAA,mBAAmB,EAAE,CAAC,2CAAD,CA3BjB;AA4BJC,IAAAA,UAAU,EAAE,CAAC,wDAAD,CA5BR;AA6BJC,IAAAA,iBAAiB,EAAE,CAAC,yCAAD,CA7Bf;AA8BJC,IAAAA,qBAAqB,EAAE,CACnB,0DADmB,EAEnB;AAAE7I,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,aAAD;AAAZ;AAAb,KAFmB,CA9BnB;AAkCJ6I,IAAAA,wBAAwB,EAAE,CAAC,kBAAD,CAlCtB;AAmCJC,IAAAA,UAAU,EAAE,CAAC,wBAAD,CAnCR;AAoCJC,IAAAA,WAAW,EAAE,CAAC,kCAAD,CApCT;AAqCJC,IAAAA,sBAAsB,EAAE,CACpB,gEADoB,CArCpB;AAwCJC,IAAAA,iBAAiB,EAAE,CAAC,kCAAD,CAxCf;AAyCJC,IAAAA,iBAAiB,EAAE,CACf,wDADe,CAzCf;AA4CJC,IAAAA,cAAc,EAAE,CAAC,sCAAD,CA5CZ;AA6CJC,IAAAA,IAAI,EAAE,CAAC,sDAAD,CA7CF;AA8CJC,IAAAA,eAAe,EAAE,CACb,2DADa,CA9Cb;AAiDJC,IAAAA,eAAe,EAAE,CACb,8DADa,CAjDb;AAoDJC,IAAAA,WAAW,EAAE,CACT,kEADS,CApDT;AAuDJC,IAAAA,SAAS,EAAE,CAAC,wDAAD,CAvDP;AAwDJC,IAAAA,MAAM,EAAE,CAAC,yDAAD,CAxDJ;AAyDJvG,IAAAA,MAAM,EAAE,CAAC,mDAAD,CAzDJ;AA0DJ4C,IAAAA,aAAa,EAAE,CAAC,0DAAD,CA1DX;AA2DJ4D,IAAAA,WAAW,EAAE,CAAC,2CAAD,CA3DT;AA4DJC,IAAAA,eAAe,EAAE,CACb,2DADa;AA5Db,GA3bM;AA2fdC,EAAAA,QAAQ,EAAE;AACNlH,IAAAA,GAAG,EAAE,CAAC,yBAAD,CADC;AAENmH,IAAAA,kBAAkB,EAAE,CAAC,eAAD,CAFd;AAGN3F,IAAAA,UAAU,EAAE,CAAC,mCAAD;AAHN,GA3fI;AAggBd4F,EAAAA,QAAQ,EAAE;AACNC,IAAAA,MAAM,EAAE,CAAC,gBAAD,CADF;AAENC,IAAAA,SAAS,EAAE,CACP,oBADO,EAEP;AAAEC,MAAAA,OAAO,EAAE;AAAE,wBAAgB;AAAlB;AAAX,KAFO;AAFL,GAhgBI;AAugBdC,EAAAA,IAAI,EAAE;AACFxH,IAAAA,GAAG,EAAE,CAAC,WAAD,CADH;AAEFyH,IAAAA,UAAU,EAAE,CAAC,cAAD,CAFV;AAGFC,IAAAA,MAAM,EAAE,CAAC,UAAD,CAHN;AAIFC,IAAAA,IAAI,EAAE,CAAC,OAAD;AAJJ,GAvgBQ;AA6gBdC,EAAAA,UAAU,EAAE;AACRC,IAAAA,YAAY,EAAE,CAAC,qCAAD,CADN;AAERC,IAAAA,iCAAiC,EAAE,CAC/B,gDAD+B,EAE/B;AAAEzK,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF+B,CAF3B;AAMRyK,IAAAA,mBAAmB,EAAE,CACjB,sDADiB,EAEjB;AAAE1K,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFiB,CANb;AAUR0K,IAAAA,qBAAqB,EAAE,CACnB,mDADmB,EAEnB;AAAE3K,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFmB,CAVf;AAcR2K,IAAAA,8BAA8B,EAAE,CAC5B,6CAD4B,EAE5B;AAAE5K,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF4B,CAdxB;AAkBR4K,IAAAA,gBAAgB,EAAE,CAAC,0CAAD,CAlBV;AAmBRC,IAAAA,eAAe,EAAE,CAAC,kCAAD,CAnBT;AAoBRC,IAAAA,aAAa,EAAE,CAAC,8CAAD,CApBP;AAqBRC,IAAAA,6BAA6B,EAAE,CAC3B,qCAD2B,EAE3B;AAAEhL,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF2B,CArBvB;AAyBRgL,IAAAA,eAAe,EAAE,CACb,2CADa,EAEb;AAAEjL,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFa,CAzBT;AA6BR6I,IAAAA,wBAAwB,EAAE,CACtB,sBADsB,EAEtB;AAAE9I,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFsB,CA7BlB;AAiCR8I,IAAAA,UAAU,EAAE,CACR,4BADQ,EAER;AAAE/I,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFQ,CAjCJ;AAqCRiL,IAAAA,eAAe,EAAE,CACb,wDADa,EAEb;AAAElL,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFa,CArCT;AAyCRkL,IAAAA,gBAAgB,EAAE,CACd,kDADc,EAEd;AAAEnL,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFc,CAzCV;AA6CRmL,IAAAA,eAAe,EAAE,CAAC,wDAAD,CA7CT;AA8CRC,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CA9CV;AA+CRC,IAAAA,yBAAyB,EAAE,CAAC,uBAAD,CA/CnB;AAgDRC,IAAAA,WAAW,EAAE,CAAC,6BAAD,CAhDL;AAiDRC,IAAAA,WAAW,EAAE,CAAC,kCAAD,CAjDL;AAkDRC,IAAAA,8BAA8B,EAAE,CAC5B,+DAD4B,EAE5B;AAAEzL,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF4B,CAlDxB;AAsDRyL,IAAAA,gBAAgB,EAAE,CACd,qEADc,EAEd;AAAE1L,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFc,CAtDV;AA0DR0L,IAAAA,YAAY,EAAE,CAAC,oCAAD;AA1DN,GA7gBE;AAykBdC,EAAAA,IAAI,EAAE;AACFC,IAAAA,SAAS,EAAE,CAAC,mCAAD,CADT;AAEFC,IAAAA,gBAAgB,EAAE,CAAC,gDAAD,CAFhB;AAGFC,IAAAA,gBAAgB,EAAE,CAAC,mCAAD,CAHhB;AAIFC,IAAAA,sBAAsB,EAAE,CAAC,oCAAD,CAJtB;AAKFC,IAAAA,4BAA4B,EAAE,CAAC,2CAAD,CAL5B;AAMFC,IAAAA,kCAAkC,EAAE,CAChC,kDADgC,CANlC;AASFC,IAAAA,gBAAgB,EAAE,CAAC,8BAAD,CAThB;AAUFC,IAAAA,aAAa,EAAE,CAAC,wBAAD,CAVb;AAWFC,IAAAA,aAAa,EAAE,CAAC,oCAAD,CAXb;AAYF1J,IAAAA,GAAG,EAAE,CAAC,iBAAD,CAZH;AAaF2J,IAAAA,iCAAiC,EAAE,CAAC,kCAAD,CAbjC;AAcFC,IAAAA,oBAAoB,EAAE,CAAC,wCAAD,CAdpB;AAeFC,IAAAA,UAAU,EAAE,CAAC,iCAAD,CAfV;AAgBFC,IAAAA,sBAAsB,EAAE,CAAC,wCAAD,CAhBtB;AAiBFnH,IAAAA,IAAI,EAAE,CAAC,oBAAD,CAjBJ;AAkBFoH,IAAAA,oBAAoB,EAAE,CAAC,+BAAD,CAlBpB;AAmBFC,IAAAA,gBAAgB,EAAE,CAAC,wBAAD,CAnBhB;AAoBFC,IAAAA,qBAAqB,EAAE,CAAC,oCAAD,CApBrB;AAqBF9D,IAAAA,wBAAwB,EAAE,CAAC,gBAAD,CArBxB;AAsBFrD,IAAAA,WAAW,EAAE,CAAC,4BAAD,CAtBX;AAuBFoH,IAAAA,mBAAmB,EAAE,CAAC,mDAAD,CAvBnB;AAwBFC,IAAAA,WAAW,EAAE,CAAC,yBAAD,CAxBX;AAyBFC,IAAAA,mCAAmC,EAAE,CAAC,4BAAD,CAzBnC;AA0BFC,IAAAA,wBAAwB,EAAE,CAAC,uCAAD,CA1BxB;AA2BFC,IAAAA,sBAAsB,EAAE,CAAC,6BAAD,CA3BtB;AA4BFC,IAAAA,iBAAiB,EAAE,CAAC,gCAAD,CA5BjB;AA6BFC,IAAAA,YAAY,EAAE,CAAC,uBAAD,CA7BZ;AA8BFC,IAAAA,WAAW,EAAE,CAAC,wCAAD,CA9BX;AA+BFC,IAAAA,YAAY,EAAE,CAAC,uCAAD,CA/BZ;AAgCFC,IAAAA,uBAAuB,EAAE,CAAC,2CAAD,CAhCvB;AAiCFC,IAAAA,yBAAyB,EAAE,CACvB,qDADuB,CAjCzB;AAoCFC,IAAAA,0CAA0C,EAAE,CACxC,8CADwC,CApC1C;AAuCFC,IAAAA,oBAAoB,EAAE,CAAC,wCAAD,CAvCpB;AAwCFC,IAAAA,uCAAuC,EAAE,CACrC,2CADqC,CAxCvC;AA2CFC,IAAAA,WAAW,EAAE,CAAC,sCAAD,CA3CX;AA4CFxK,IAAAA,MAAM,EAAE,CAAC,mBAAD,CA5CN;AA6CFyK,IAAAA,oCAAoC,EAAE,CAClC,oCADkC,CA7CpC;AAgDFC,IAAAA,aAAa,EAAE,CAAC,mCAAD,CAhDb;AAiDFC,IAAAA,yBAAyB,EAAE,CAAC,0CAAD;AAjDzB,GAzkBQ;AA4nBdC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,iCAAiC,EAAE,CAC/B,qDAD+B,CAD7B;AAINC,IAAAA,mBAAmB,EAAE,CACjB,2DADiB,CAJf;AAONC,IAAAA,wCAAwC,EAAE,CACtC,mFADsC,CAPpC;AAUNC,IAAAA,0BAA0B,EAAE,CACxB,yFADwB,CAVtB;AAaNC,IAAAA,4CAA4C,EAAE,CAC1C,iEAD0C,EAE1C,EAF0C,EAG1C;AAAE1S,MAAAA,OAAO,EAAE,CAAC,UAAD,EAAa,2CAAb;AAAX,KAH0C,CAbxC;AAkBN2S,IAAAA,2DAA2D,EAAE,CACzD,2DADyD,EAEzD,EAFyD,EAGzD;AACI3S,MAAAA,OAAO,EAAE,CACL,UADK,EAEL,yDAFK;AADb,KAHyD,CAlBvD;AA4BN4S,IAAAA,uDAAuD,EAAE,CACrD,2DADqD,CA5BnD;AA+BNC,IAAAA,yCAAyC,EAAE,CACvC,iEADuC,CA/BrC;AAkCNC,IAAAA,0CAA0C,EAAE,CACxC,uEADwC,CAlCtC;AAqCNC,IAAAA,8BAA8B,EAAE,CAC5B,kDAD4B,CArC1B;AAwCNC,IAAAA,yBAAyB,EAAE,CACvB,wDADuB,CAxCrB;AA2CNC,IAAAA,iBAAiB,EAAE,CACf,8DADe,CA3Cb;AA8CNC,IAAAA,qCAAqC,EAAE,CACnC,gFADmC,CA9CjC;AAiDNC,IAAAA,gCAAgC,EAAE,CAC9B,sFAD8B,CAjD5B;AAoDNC,IAAAA,wBAAwB,EAAE,CACtB,4FADsB,CApDpB;AAuDNC,IAAAA,kCAAkC,EAAE,CAChC,mEADgC,CAvD9B;AA0DNC,IAAAA,oBAAoB,EAAE,CAClB,yEADkB,CA1DhB;AA6DNC,IAAAA,yCAAyC,EAAE,CACvC,yFADuC,CA7DrC;AAgENC,IAAAA,2BAA2B,EAAE,CACzB,+FADyB;AAhEvB,GA5nBI;AAgsBdC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,eAAe,EAAE,CACb,qDADa,EAEb;AAAEpP,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFa,CADX;AAKNoP,IAAAA,UAAU,EAAE,CACR,0CADQ,EAER;AAAErP,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CALN;AASNqP,IAAAA,YAAY,EAAE,CACV,qCADU,EAEV;AAAEtP,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU,CATR;AAaNsP,IAAAA,0BAA0B,EAAE,CACxB,qBADwB,EAExB;AAAEvP,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFwB,CAbtB;AAiBNuP,IAAAA,YAAY,EAAE,CACV,2BADU,EAEV;AAAExP,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU,CAjBR;AAqBNwP,IAAAA,aAAa,EAAE,CACX,qCADW,EAEX;AAAEzP,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFW,CArBT;AAyBNgF,IAAAA,MAAM,EAAE,CACJ,+BADI,EAEJ;AAAEjF,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFI,CAzBF;AA6BNyP,IAAAA,UAAU,EAAE,CACR,0CADQ,EAER;AAAE1P,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CA7BN;AAiCN0P,IAAAA,YAAY,EAAE,CACV,sCADU,EAEV;AAAE3P,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU,CAjCR;AAqCN0C,IAAAA,GAAG,EAAE,CACD,4BADC,EAED;AAAE3C,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFC,CArCC;AAyCN2P,IAAAA,OAAO,EAAE,CACL,uCADK,EAEL;AAAE5P,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFK,CAzCH;AA6CN4P,IAAAA,SAAS,EAAE,CACP,mCADO,EAEP;AAAE7P,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFO,CA7CL;AAiDN6P,IAAAA,oBAAoB,EAAE,CAClB,gEADkB,EAElB;AAAE9P,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFkB,CAjDhB;AAqDN8P,IAAAA,SAAS,EAAE,CACP,yCADO,EAEP;AAAE/P,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFO,CArDL;AAyDN+P,IAAAA,iBAAiB,EAAE,CACf,0CADe,EAEf;AAAEhQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFe,CAzDb;AA6DNgQ,IAAAA,WAAW,EAAE,CACT,oCADS,EAET;AAAEjQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFS,CA7DP;AAiEN8I,IAAAA,UAAU,EAAE,CACR,0BADQ,EAER;AAAE/I,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CAjEN;AAqEN+I,IAAAA,WAAW,EAAE,CACT,oCADS,EAET;AAAEhJ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFS,CArEP;AAyENwF,IAAAA,WAAW,EAAE,CACT,gCADS,EAET;AAAEzF,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFS,CAzEP;AA6ENiQ,IAAAA,QAAQ,EAAE,CACN,8CADM,EAEN;AAAElQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFM,CA7EJ;AAiFNkQ,IAAAA,UAAU,EAAE,CACR,0CADQ,EAER;AAAEnQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CAjFN;AAqFNmQ,IAAAA,kBAAkB,EAAE,CAChB,wDADgB,EAEhB;AAAEpQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFgB,CArFd;AAyFNkD,IAAAA,MAAM,EAAE,CACJ,8BADI,EAEJ;AAAEnD,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFI,CAzFF;AA6FNoQ,IAAAA,UAAU,EAAE,CACR,yCADQ,EAER;AAAErQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CA7FN;AAiGNqQ,IAAAA,YAAY,EAAE,CACV,qCADU,EAEV;AAAEtQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU;AAjGR,GAhsBI;AAsyBdsQ,EAAAA,KAAK,EAAE;AACHC,IAAAA,aAAa,EAAE,CAAC,qDAAD,CADZ;AAEH/N,IAAAA,MAAM,EAAE,CAAC,kCAAD,CAFL;AAGHgO,IAAAA,2BAA2B,EAAE,CACzB,8EADyB,CAH1B;AAMHC,IAAAA,YAAY,EAAE,CAAC,wDAAD,CANX;AAOHC,IAAAA,mBAAmB,EAAE,CACjB,yDADiB,CAPlB;AAUHC,IAAAA,mBAAmB,EAAE,CACjB,sEADiB,CAVlB;AAaHC,IAAAA,mBAAmB,EAAE,CACjB,0DADiB,CAblB;AAgBHC,IAAAA,aAAa,EAAE,CACX,8EADW,CAhBZ;AAmBHnO,IAAAA,GAAG,EAAE,CAAC,+CAAD,CAnBF;AAoBHoO,IAAAA,SAAS,EAAE,CACP,mEADO,CApBR;AAuBHC,IAAAA,gBAAgB,EAAE,CAAC,uDAAD,CAvBf;AAwBH1L,IAAAA,IAAI,EAAE,CAAC,iCAAD,CAxBH;AAyBH2L,IAAAA,qBAAqB,EAAE,CACnB,4EADmB,CAzBpB;AA4BHzL,IAAAA,WAAW,EAAE,CAAC,uDAAD,CA5BV;AA6BH0L,IAAAA,SAAS,EAAE,CAAC,qDAAD,CA7BR;AA8BHC,IAAAA,sBAAsB,EAAE,CACpB,mEADoB,CA9BrB;AAiCHC,IAAAA,kBAAkB,EAAE,CAChB,wDADgB,CAjCjB;AAoCHC,IAAAA,yBAAyB,EAAE,CAAC,0CAAD,CApCxB;AAqCHC,IAAAA,WAAW,EAAE,CAAC,uDAAD,CArCV;AAsCHC,IAAAA,KAAK,EAAE,CAAC,qDAAD,CAtCJ;AAuCHC,IAAAA,wBAAwB,EAAE,CACtB,sEADsB,CAvCvB;AA0CHC,IAAAA,gBAAgB,EAAE,CACd,oEADc,CA1Cf;AA6CHC,IAAAA,YAAY,EAAE,CACV,2EADU,CA7CX;AAgDHvO,IAAAA,MAAM,EAAE,CAAC,iDAAD,CAhDL;AAiDHwO,IAAAA,YAAY,EAAE,CACV,6DADU,EAEV;AAAE3R,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFU,CAjDX;AAqDH2R,IAAAA,YAAY,EAAE,CACV,mEADU,CArDX;AAwDHC,IAAAA,mBAAmB,EAAE,CACjB,yDADiB;AAxDlB,GAtyBO;AAk2BdC,EAAAA,SAAS,EAAE;AAAEnP,IAAAA,GAAG,EAAE,CAAC,iBAAD;AAAP,GAl2BG;AAm2BdoP,EAAAA,SAAS,EAAE;AACPC,IAAAA,sBAAsB,EAAE,CACpB,4DADoB,EAEpB;AAAEhS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFoB,CADjB;AAKPgS,IAAAA,cAAc,EAAE,CACZ,4DADY,EAEZ;AAAEjS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFY,CALT;AASPiS,IAAAA,qBAAqB,EAAE,CACnB,mEADmB,EAEnB;AAAElS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFmB,CAThB;AAaPkS,IAAAA,iCAAiC,EAAE,CAC/B,kEAD+B,EAE/B;AAAEnS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF+B,CAb5B;AAiBPmS,IAAAA,mCAAmC,EAAE,CACjC,wGADiC,EAEjC;AAAEpS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFiC,CAjB9B;AAqBPoS,IAAAA,4BAA4B,EAAE,CAC1B,8EAD0B,EAE1B;AAAErS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF0B,CArBvB;AAyBPqS,IAAAA,sBAAsB,EAAE,CACpB,4EADoB,EAEpB;AAAEtS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFoB,CAzBjB;AA6BPsS,IAAAA,cAAc,EAAE,CACZ,4EADY,EAEZ;AAAEvS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFY,CA7BT;AAiCPuS,IAAAA,qBAAqB,EAAE,CACnB,mFADmB,EAEnB;AAAExS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFmB,CAjChB;AAqCPwS,IAAAA,2BAA2B,EAAE,CACzB,kFADyB,EAEzB;AAAEzS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFyB,CArCtB;AAyCPyS,IAAAA,uBAAuB,EAAE,CACrB,8FADqB,EAErB;AAAE1S,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFqB,CAzClB;AA6CP0S,IAAAA,8BAA8B,EAAE,CAC5B,wHAD4B,EAE5B;AAAE3S,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF4B,CA7CzB;AAiDP2S,IAAAA,YAAY,EAAE,CACV,iCADU,EAEV;AAAE5S,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFU,EAGV;AACI4S,MAAAA,UAAU,EAAE;AADhB,KAHU,CAjDP;AAwDPC,IAAAA,oBAAoB,EAAE,CAClB,2DADkB,EAElB;AAAE9S,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFkB,CAxDf;AA4DP8S,IAAAA,YAAY,EAAE,CACV,2DADU,EAEV;AAAE/S,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFU,CA5DP;AAgEP+S,IAAAA,mBAAmB,EAAE,CACjB,kEADiB,EAEjB;AAAEhT,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFiB,CAhEd;AAoEPgT,IAAAA,+BAA+B,EAAE,CAC7B,iEAD6B,EAE7B;AAAEjT,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF6B,CApE1B;AAwEPiT,IAAAA,iCAAiC,EAAE,CAC/B,uGAD+B,EAE/B;AAAElT,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF+B,CAxE5B;AA4EPkT,IAAAA,0BAA0B,EAAE,CACxB,6EADwB,EAExB;AAAEnT,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFwB;AA5ErB,GAn2BG;AAo7BdmT,EAAAA,KAAK,EAAE;AACHC,IAAAA,gBAAgB,EAAE,CAAC,oDAAD,CADf;AAEHC,IAAAA,wBAAwB,EAAE,CACtB,2EADsB,EAEtB,EAFsB,EAGtB;AAAEC,MAAAA,SAAS,EAAE;AAAb,KAHsB,CAFvB;AAOHnE,IAAAA,eAAe,EAAE,CAAC,oDAAD,CAPd;AAQHoE,IAAAA,sBAAsB,EAAE,CACpB,yFADoB,EAEpB,EAFoB,EAGpB;AAAED,MAAAA,SAAS,EAAE;AAAb,KAHoB,CARrB;AAaHE,IAAAA,yBAAyB,EAAE,CACvB,4EADuB,EAEvB,EAFuB,EAGvB;AAAEF,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAbxB;AAkBHG,IAAAA,yBAAyB,EAAE,CACvB,4EADuB,EAEvB,EAFuB,EAGvB;AAAEH,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAlBxB;AAuBHI,IAAAA,iBAAiB,EAAE,CAAC,oDAAD,CAvBhB;AAwBHC,IAAAA,wBAAwB,EAAE,CACtB,gDADsB,EAEtB;AAAE5T,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFsB,CAxBvB;AA4BH4T,IAAAA,cAAc,EAAE,CAAC,mDAAD,CA5Bb;AA6BHC,IAAAA,mBAAmB,EAAE,CACjB,0DADiB,CA7BlB;AAgCHC,IAAAA,+BAA+B,EAAE,CAC7B,6EAD6B,EAE7B;AAAE/T,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAF6B,CAhC9B;AAoCH+T,IAAAA,kBAAkB,EAAE,CAAC,2CAAD,CApCjB;AAqCHC,IAAAA,eAAe,EAAE,CAAC,iCAAD,CArCd;AAsCHC,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CAtCf;AAuCHC,IAAAA,sBAAsB,EAAE,CACpB,iEADoB,CAvCrB;AA0CHC,IAAAA,mBAAmB,EAAE,CAAC,uCAAD,CA1ClB;AA2CH7E,IAAAA,0BAA0B,EAAE,CAAC,kBAAD,CA3CzB;AA4CH8E,IAAAA,UAAU,EAAE,CAAC,kCAAD,CA5CT;AA6CHC,IAAAA,WAAW,EAAE,CAAC,wBAAD,CA7CV;AA8CHC,IAAAA,yBAAyB,EAAE,CACvB,2DADuB,CA9CxB;AAiDHC,IAAAA,0BAA0B,EAAE,CAAC,2CAAD,CAjDzB;AAkDHC,IAAAA,eAAe,EAAE,CACb,kCADa,EAEb;AAAEzU,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,YAAD;AAAZ;AAAb,KAFa,CAlDd;AAsDHyU,IAAAA,aAAa,EAAE,CAAC,qCAAD,CAtDZ;AAuDHC,IAAAA,mBAAmB,EAAE,CACjB,uDADiB,EAEjB;AAAE3U,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,UAAD;AAAZ;AAAb,KAFiB,CAvDlB;AA2DHmM,IAAAA,aAAa,EAAE,CAAC,kCAAD,CA3DZ;AA4DHwI,IAAAA,iBAAiB,EAAE,CAAC,qDAAD,CA5DhB;AA6DH3P,IAAAA,MAAM,EAAE,CAAC,8BAAD,CA7DL;AA8DH4P,IAAAA,wBAAwB,EAAE,CACtB,wEADsB,CA9DvB;AAiEHC,IAAAA,2BAA2B,EAAE,CACzB,0EADyB,CAjE1B;AAoEHC,IAAAA,mBAAmB,EAAE,CACjB,8DADiB,CApElB;AAuEHC,IAAAA,sBAAsB,EAAE,CACpB,2DADoB,CAvErB;AA0EHC,IAAAA,mBAAmB,EAAE,CAAC,oDAAD,CA1ElB;AA2EHC,IAAAA,+BAA+B,EAAE,CAC7B,+EAD6B,EAE7B;AAAElV,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAF6B,CA3E9B;AA+EHkV,IAAAA,eAAe,EAAE,CAAC,4CAAD,CA/Ed;AAgFHC,IAAAA,gBAAgB,EAAE,CACd,0DADc,CAhFf;AAmFHC,IAAAA,UAAU,EAAE,CAAC,8CAAD,CAnFT;AAoFHC,IAAAA,gBAAgB,EAAE,CACd,0DADc,CApFf;AAuFHC,IAAAA,eAAe,EAAE,CACb,oCADa,EAEb;AAAEvV,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,YAAD;AAAZ;AAAb,KAFa,CAvFd;AA2FHuV,IAAAA,iCAAiC,EAAE,CAC/B,yFAD+B,CA3FhC;AA8FHC,IAAAA,aAAa,EAAE,CAAC,oDAAD,CA9FZ;AA+FHC,IAAAA,kBAAkB,EAAE,CAChB,yDADgB,CA/FjB;AAkGHrJ,IAAAA,aAAa,EAAE,CAAC,8CAAD,CAlGZ;AAmGHsJ,IAAAA,6BAA6B,EAAE,CAC3B,uDAD2B,EAE3B;AAAE3V,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAF2B,CAnG5B;AAuGH2V,IAAAA,0BAA0B,EAAE,CACxB,mDADwB,EAExB;AAAE5V,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFwB,CAvGzB;AA2GH4V,IAAAA,eAAe,EAAE,CACb,yCADa,EAEb,EAFa,EAGb;AAAEna,MAAAA,OAAO,EAAE,CAAC,OAAD,EAAU,wBAAV;AAAX,KAHa,CA3Gd;AAgHHoa,IAAAA,sBAAsB,EAAE,CAAC,yCAAD,CAhHrB;AAiHHC,IAAAA,sBAAsB,EAAE,CAAC,yCAAD,CAjHrB;AAkHHC,IAAAA,4BAA4B,EAAE,CAC1B,oDAD0B,EAE1B;AAAEhW,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAF0B,CAlH3B;AAsHHgW,IAAAA,yBAAyB,EAAE,CACvB,gDADuB,EAEvB;AAAEjW,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFuB,CAtHxB;AA0HH0C,IAAAA,GAAG,EAAE,CAAC,2BAAD,CA1HF;AA2HHuT,IAAAA,qBAAqB,EAAE,CACnB,qEADmB,CA3HpB;AA8HHC,IAAAA,wBAAwB,EAAE,CACtB,uEADsB,CA9HvB;AAiIHC,IAAAA,kBAAkB,EAAE,CAAC,wCAAD,CAjIjB;AAkIHC,IAAAA,yBAAyB,EAAE,CACvB,wFADuB,CAlIxB;AAqIHC,IAAAA,YAAY,EAAE,CACV,kCADU,EAEV;AAAEtW,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFU,CArIX;AAyIHsW,IAAAA,kCAAkC,EAAE,CAChC,0EADgC,CAzIjC;AA4IHC,IAAAA,SAAS,EAAE,CAAC,6CAAD,CA5IR;AA6IHC,IAAAA,mBAAmB,EAAE,CACjB,wDADiB,CA7IlB;AAgJHC,IAAAA,SAAS,EAAE,CAAC,0CAAD,CAhJR;AAiJHC,IAAAA,qBAAqB,EAAE,CAAC,gDAAD,CAjJpB;AAkJHC,IAAAA,8BAA8B,EAAE,CAC5B,+DAD4B,CAlJ7B;AAqJHC,IAAAA,uBAAuB,EAAE,CAAC,gDAAD,CArJtB;AAsJHrQ,IAAAA,SAAS,EAAE,CAAC,yCAAD,CAtJR;AAuJHsQ,IAAAA,sBAAsB,EAAE,CAAC,iDAAD,CAvJrB;AAwJHC,IAAAA,gBAAgB,EAAE,CAAC,iDAAD,CAxJf;AAyJHC,IAAAA,4BAA4B,EAAE,CAC1B,4EAD0B,EAE1B;AAAEhX,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAF0B,CAzJ3B;AA6JHgX,IAAAA,0BAA0B,EAAE,CAAC,6CAAD,CA7JzB;AA8JHC,IAAAA,UAAU,EAAE,CAAC,2CAAD,CA9JT;AA+JHC,IAAAA,oBAAoB,EAAE,CAAC,8CAAD,CA/JnB;AAgKHC,IAAAA,YAAY,EAAE,CAAC,yCAAD,CAhKX;AAiKHC,IAAAA,aAAa,EAAE,CAAC,uDAAD,CAjKZ;AAkKHC,IAAAA,mBAAmB,EAAE,CACjB,4EADiB,CAlKlB;AAqKHC,IAAAA,cAAc,EAAE,CACZ,2DADY,CArKb;AAwKHC,IAAAA,mBAAmB,EAAE,CAAC,+CAAD,CAxKlB;AAyKHC,IAAAA,gBAAgB,EAAE,CAAC,2CAAD,CAzKf;AA0KHC,IAAAA,QAAQ,EAAE,CAAC,iCAAD,CA1KP;AA2KHC,IAAAA,aAAa,EAAE,CAAC,mDAAD,CA3KZ;AA4KHC,IAAAA,qBAAqB,EAAE,CAAC,+CAAD,CA5KpB;AA6KHC,IAAAA,8BAA8B,EAAE,CAC5B,sFAD4B,CA7K7B;AAgLHC,IAAAA,iBAAiB,EAAE,CAAC,4CAAD,CAhLhB;AAiLHC,IAAAA,SAAS,EAAE,CAAC,kCAAD,CAjLR;AAkLHC,IAAAA,oBAAoB,EAAE,CAAC,wCAAD,CAlLnB;AAmLHC,IAAAA,UAAU,EAAE,CAAC,iDAAD,CAnLT;AAoLHC,IAAAA,eAAe,EAAE,CAAC,sDAAD,CApLd;AAqLHC,IAAAA,eAAe,EAAE,CAAC,+CAAD,CArLd;AAsLHC,IAAAA,yBAAyB,EAAE,CACvB,+EADuB,CAtLxB;AAyLHC,IAAAA,mCAAmC,EAAE,CACjC,2EADiC,CAzLlC;AA4LHC,IAAAA,WAAW,EAAE,CAAC,iDAAD,CA5LV;AA6LHC,IAAAA,eAAe,EAAE,CAAC,qDAAD,CA7Ld;AA8LHC,IAAAA,mCAAmC,EAAE,CACjC,2EADiC,CA9LlC;AAiMHC,IAAAA,QAAQ,EAAE,CAAC,yCAAD,CAjMP;AAkMHjM,IAAAA,UAAU,EAAE,CAAC,2CAAD,CAlMT;AAmMHkM,IAAAA,uBAAuB,EAAE,CACrB,kDADqB,CAnMtB;AAsMHC,IAAAA,YAAY,EAAE,CAAC,oCAAD,CAtMX;AAuMHC,IAAAA,yBAAyB,EAAE,CACvB,oEADuB,EAEvB;AAAE5Y,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFuB,CAvMxB;AA2MH+P,IAAAA,iBAAiB,EAAE,CAAC,yCAAD,CA3MhB;AA4MH6I,IAAAA,qBAAqB,EAAE,CACnB,yDADmB,CA5MpB;AA+MHC,IAAAA,yBAAyB,EAAE,CAAC,oCAAD,CA/MxB;AAgNHC,IAAAA,wBAAwB,EAAE,CACtB,kDADsB,CAhNvB;AAmNHvT,IAAAA,WAAW,EAAE,CAAC,mCAAD,CAnNV;AAoNHwT,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CApNf;AAqNHC,IAAAA,cAAc,EAAE,CAAC,gCAAD,CArNb;AAsNHC,IAAAA,sBAAsB,EAAE,CACpB,gEADoB,CAtNrB;AAyNHC,IAAAA,eAAe,EAAE,CAAC,uCAAD,CAzNd;AA0NHrQ,IAAAA,wBAAwB,EAAE,CAAC,iBAAD,CA1NvB;AA2NHC,IAAAA,UAAU,EAAE,CAAC,uBAAD,CA3NT;AA4NHtD,IAAAA,WAAW,EAAE,CAAC,6BAAD,CA5NV;AA6NHC,IAAAA,SAAS,EAAE,CAAC,iCAAD,CA7NR;AA8NH0T,IAAAA,eAAe,EAAE,CAAC,uCAAD,CA9Nd;AA+NHC,IAAAA,mCAAmC,EAAE,CAAC,kCAAD,CA/NlC;AAgOHC,IAAAA,aAAa,EAAE,CAAC,qCAAD,CAhOZ;AAiOHC,IAAAA,eAAe,EAAE,CAAC,wCAAD,CAjOd;AAkOH5T,IAAAA,UAAU,EAAE,CAAC,mBAAD,CAlOT;AAmOH6T,IAAAA,oCAAoC,EAAE,CAClC,sDADkC,EAElC;AAAExZ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFkC,CAnOnC;AAuOHwZ,IAAAA,iBAAiB,EAAE,CACf,wDADe,CAvOhB;AA0OHC,IAAAA,YAAY,EAAE,CAAC,oCAAD,CA1OX;AA2OHC,IAAAA,QAAQ,EAAE,CAAC,gCAAD,CA3OP;AA4OHC,IAAAA,SAAS,EAAE,CAAC,iCAAD,CA5OR;AA6OHzM,IAAAA,YAAY,EAAE,CAAC,iCAAD,CA7OX;AA8OHoE,IAAAA,KAAK,EAAE,CAAC,mCAAD,CA9OJ;AA+OHnE,IAAAA,WAAW,EAAE,CAAC,kDAAD,CA/OV;AAgPHyM,IAAAA,2BAA2B,EAAE,CACzB,6EADyB,EAEzB,EAFyB,EAGzB;AAAEtG,MAAAA,SAAS,EAAE;AAAb,KAHyB,CAhP1B;AAqPHnD,IAAAA,kBAAkB,EAAE,CAChB,uDADgB,CArPjB;AAwPH0J,IAAAA,yBAAyB,EAAE,CACvB,2FADuB,EAEvB,EAFuB,EAGvB;AAAEvG,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAxPxB;AA6PHwG,IAAAA,2BAA2B,EAAE,CACzB,kFADyB,CA7P1B;AAgQHC,IAAAA,4BAA4B,EAAE,CAC1B,8EAD0B,EAE1B,EAF0B,EAG1B;AAAEzG,MAAAA,SAAS,EAAE;AAAb,KAH0B,CAhQ3B;AAqQH0G,IAAAA,4BAA4B,EAAE,CAC1B,8EAD0B,EAE1B,EAF0B,EAG1B;AAAE1G,MAAAA,SAAS,EAAE;AAAb,KAH0B,CArQ3B;AA0QH2G,IAAAA,YAAY,EAAE,CAAC,qDAAD,CA1QX;AA2QHC,IAAAA,gBAAgB,EAAE,CACd,kCADc,EAEd;AAAEna,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFc,CA3Qf;AA+QHma,IAAAA,iBAAiB,EAAE,CAAC,yCAAD,CA/QhB;AAgRHC,IAAAA,wBAAwB,EAAE,CACtB,wEADsB,CAhRvB;AAmRHC,IAAAA,wBAAwB,EAAE,CACtB,0EADsB,EAEtB,EAFsB,EAGtB;AAAE/G,MAAAA,SAAS,EAAE;AAAb,KAHsB,CAnRvB;AAwRHgH,IAAAA,sBAAsB,EAAE,CACpB,wFADoB,EAEpB,EAFoB,EAGpB;AAAEhH,MAAAA,SAAS,EAAE;AAAb,KAHoB,CAxRrB;AA6RHiH,IAAAA,yBAAyB,EAAE,CACvB,2EADuB,EAEvB,EAFuB,EAGvB;AAAEjH,MAAAA,SAAS,EAAE;AAAb,KAHuB,CA7RxB;AAkSHkH,IAAAA,yBAAyB,EAAE,CACvB,2EADuB,EAEvB,EAFuB,EAGvB;AAAElH,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAlSxB;AAuSHmH,IAAAA,eAAe,EAAE,CAAC,kDAAD,CAvSd;AAwSHC,IAAAA,QAAQ,EAAE,CAAC,qCAAD,CAxSP;AAySHxX,IAAAA,MAAM,EAAE,CAAC,6BAAD,CAzSL;AA0SHyX,IAAAA,sBAAsB,EAAE,CACpB,wDADoB,CA1SrB;AA6SHC,IAAAA,mBAAmB,EAAE,CAAC,mDAAD,CA7SlB;AA8SHC,IAAAA,+BAA+B,EAAE,CAAC,iCAAD,CA9S9B;AA+SHC,IAAAA,gBAAgB,EAAE,CACd,yDADc,CA/Sf;AAkTHC,IAAAA,iCAAiC,EAAE,CAC/B,wFAD+B,CAlThC;AAqTHC,IAAAA,aAAa,EAAE,CAAC,mDAAD,CArTZ;AAsTHC,IAAAA,kBAAkB,EAAE,CAChB,wDADgB,CAtTjB;AAyTHC,IAAAA,0BAA0B,EAAE,CACxB,iFADwB,EAExB,EAFwB,EAGxB;AAAEzf,MAAAA,OAAO,EAAE,CAAC,OAAD,EAAU,6BAAV;AAAX,KAHwB,CAzTzB;AA8TH0f,IAAAA,2BAA2B,EAAE,CACzB,iFADyB,CA9T1B;AAiUHvN,IAAAA,aAAa,EAAE,CAAC,6CAAD,CAjUZ;AAkUHwN,IAAAA,0BAA0B,EAAE,CACxB,oDADwB,CAlUzB;AAqUHC,IAAAA,kBAAkB,EAAE,CAChB,sEADgB,EAEhB;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAFgB;AArUjB,GAp7BO;AA8vCdC,EAAAA,MAAM,EAAE;AACJC,IAAAA,IAAI,EAAE,CAAC,kBAAD,CADF;AAEJC,IAAAA,OAAO,EAAE,CAAC,qBAAD,EAAwB;AAAE1b,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAAxB,CAFL;AAGJ0b,IAAAA,qBAAqB,EAAE,CAAC,oBAAD,CAHnB;AAIJC,IAAAA,MAAM,EAAE,CAAC,oBAAD,CAJJ;AAKJxI,IAAAA,KAAK,EAAE,CAAC,0BAAD,CALH;AAMJyI,IAAAA,MAAM,EAAE,CAAC,oBAAD,EAAuB;AAAE7b,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAAvB,CANJ;AAOJ6b,IAAAA,KAAK,EAAE,CAAC,mBAAD;AAPH,GA9vCM;AAuwCdC,EAAAA,cAAc,EAAE;AACZzY,IAAAA,QAAQ,EAAE,CACN,iEADM,CADE;AAIZK,IAAAA,iBAAiB,EAAE,CAAC,kDAAD,CAJP;AAKZG,IAAAA,WAAW,EAAE,CACT,mEADS;AALD,GAvwCF;AAgxCdkY,EAAAA,KAAK,EAAE;AACHC,IAAAA,iCAAiC,EAAE,CAC/B,0DAD+B,CADhC;AAIHC,IAAAA,kCAAkC,EAAE,CAChC,yDADgC,EAEhC;AAAElc,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFgC,CAJjC;AAQHkc,IAAAA,+BAA+B,EAAE,CAC7B,wDAD6B,CAR9B;AAWHC,IAAAA,+BAA+B,EAAE,CAC7B,yDAD6B,EAE7B;AAAEpc,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAF6B,CAX9B;AAeHoc,IAAAA,4BAA4B,EAAE,CAC1B,wDAD0B,CAf3B;AAkBH5Z,IAAAA,MAAM,EAAE,CAAC,wBAAD,CAlBL;AAmBH6Z,IAAAA,4BAA4B,EAAE,CAC1B,6EAD0B,CAnB3B;AAsBHC,IAAAA,qBAAqB,EAAE,CAAC,gDAAD,CAtBpB;AAuBHC,IAAAA,4BAA4B,EAAE,CAC1B,gGAD0B,CAvB3B;AA0BHC,IAAAA,qBAAqB,EAAE,CACnB,sEADmB,CA1BpB;AA6BHC,IAAAA,WAAW,EAAE,CAAC,sCAAD,CA7BV;AA8BHC,IAAAA,SAAS,EAAE,CAAC,mCAAD,CA9BR;AA+BHC,IAAAA,yBAAyB,EAAE,CACvB,6FADuB,CA/BxB;AAkCHC,IAAAA,kBAAkB,EAAE,CAChB,mEADgB,CAlCjB;AAqCHC,IAAAA,yBAAyB,EAAE,CACvB,0DADuB,CArCxB;AAwCHxX,IAAAA,IAAI,EAAE,CAAC,uBAAD,CAxCH;AAyCHyX,IAAAA,cAAc,EAAE,CAAC,yCAAD,CAzCb;AA0CHC,IAAAA,2BAA2B,EAAE,CACzB,4EADyB,CA1C1B;AA6CHC,IAAAA,oBAAoB,EAAE,CAAC,+CAAD,CA7CnB;AA8CHnU,IAAAA,wBAAwB,EAAE,CAAC,iBAAD,CA9CvB;AA+CHoU,IAAAA,gBAAgB,EAAE,CAAC,2CAAD,CA/Cf;AAgDHC,IAAAA,2BAA2B,EAAE,CACzB,+CADyB,CAhD1B;AAmDHC,IAAAA,iBAAiB,EAAE,CACf,4CADe,EAEf;AAAEpd,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFe,CAnDhB;AAuDHod,IAAAA,cAAc,EAAE,CAAC,yCAAD,CAvDb;AAwDHC,IAAAA,4BAA4B,EAAE,CAC1B,6DAD0B,CAxD3B;AA2DHC,IAAAA,kBAAkB,EAAE,CAChB,4DADgB,CA3DjB;AA8DHC,IAAAA,eAAe,EAAE,CACb,2DADa,CA9Dd;AAiEHC,IAAAA,4BAA4B,EAAE,CAC1B,+FAD0B,CAjE3B;AAoEHC,IAAAA,qBAAqB,EAAE,CACnB,qEADmB,CApEpB;AAuEHC,IAAAA,WAAW,EAAE,CAAC,qCAAD;AAvEV,GAhxCO;AAy1Cd7B,EAAAA,KAAK,EAAE;AACH8B,IAAAA,wBAAwB,EAAE,CAAC,mBAAD,CADvB;AAEHC,IAAAA,KAAK,EAAE,CAAC,6BAAD,CAFJ;AAGHC,IAAAA,YAAY,EAAE,CAAC,6BAAD,CAHX;AAIHC,IAAAA,qBAAqB,EAAE,CAAC,+CAAD,CAJpB;AAKHC,IAAAA,oCAAoC,EAAE,CAAC,gCAAD,CALnC;AAMHC,IAAAA,4BAA4B,EAAE,CAAC,qBAAD,CAN3B;AAOHC,IAAAA,kCAAkC,EAAE,CAAC,iBAAD,CAPjC;AAQHC,IAAAA,2BAA2B,EAAE,CAAC,qBAAD,CAR1B;AASHC,IAAAA,4BAA4B,EAAE,CAAC,oCAAD,CAT3B;AAUHC,IAAAA,kCAAkC,EAAE,CAAC,4BAAD,CAVjC;AAWHC,IAAAA,MAAM,EAAE,CAAC,gCAAD,CAXL;AAYH/d,IAAAA,gBAAgB,EAAE,CAAC,WAAD,CAZf;AAaHge,IAAAA,aAAa,EAAE,CAAC,uBAAD,CAbZ;AAcHC,IAAAA,iBAAiB,EAAE,CAAC,iCAAD,CAdhB;AAeHC,IAAAA,yBAAyB,EAAE,CAAC,iCAAD,CAfxB;AAgBHC,IAAAA,+BAA+B,EAAE,CAAC,yBAAD,CAhB9B;AAiBHpZ,IAAAA,IAAI,EAAE,CAAC,YAAD,CAjBH;AAkBHqZ,IAAAA,0BAA0B,EAAE,CAAC,kBAAD,CAlBzB;AAmBHC,IAAAA,0BAA0B,EAAE,CAAC,kBAAD,CAnBzB;AAoBHC,IAAAA,2BAA2B,EAAE,CAAC,qBAAD,CApB1B;AAqBHC,IAAAA,iCAAiC,EAAE,CAAC,qBAAD,CArBhC;AAsBHC,IAAAA,oBAAoB,EAAE,CAAC,iCAAD,CAtBnB;AAuBHC,IAAAA,oBAAoB,EAAE,CAAC,iCAAD,CAvBnB;AAwBHC,IAAAA,2BAA2B,EAAE,CAAC,oBAAD,CAxB1B;AAyBHC,IAAAA,kBAAkB,EAAE,CAAC,gCAAD,CAzBjB;AA0BHC,IAAAA,gCAAgC,EAAE,CAAC,yBAAD,CA1B/B;AA2BHC,IAAAA,qBAAqB,EAAE,CAAC,4BAAD,CA3BpB;AA4BHC,IAAAA,iCAAiC,EAAE,CAAC,gBAAD,CA5BhC;AA6BHC,IAAAA,yCAAyC,EAAE,CAAC,8BAAD,CA7BxC;AA8BHC,IAAAA,OAAO,EAAE,CAAC,gCAAD,CA9BN;AA+BHC,IAAAA,QAAQ,EAAE,CAAC,mCAAD,CA/BP;AAgCHC,IAAAA,mBAAmB,EAAE,CAAC,aAAD;AAhClB;AAz1CO,CAAlB;;ACAO,MAAMC,OAAO,GAAG,mBAAhB;;ACAA,SAASC,kBAAT,CAA4BC,OAA5B,EAAqCC,YAArC,EAAmD;AACtD,QAAMC,UAAU,GAAG,EAAnB;;AACA,OAAK,MAAM,CAACC,KAAD,EAAQC,SAAR,CAAX,IAAiCC,MAAM,CAACC,OAAP,CAAeL,YAAf,CAAjC,EAA+D;AAC3D,SAAK,MAAM,CAACM,UAAD,EAAaC,QAAb,CAAX,IAAqCH,MAAM,CAACC,OAAP,CAAeF,SAAf,CAArC,EAAgE;AAC5D,YAAM,CAACK,KAAD,EAAQC,QAAR,EAAkBC,WAAlB,IAAiCH,QAAvC;AACA,YAAM,CAACI,MAAD,EAASC,GAAT,IAAgBJ,KAAK,CAACK,KAAN,CAAY,GAAZ,CAAtB;AACA,YAAMC,gBAAgB,GAAGV,MAAM,CAACW,MAAP,CAAc;AAAEJ,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAAd,EAA+BH,QAA/B,CAAzB;;AACA,UAAI,CAACR,UAAU,CAACC,KAAD,CAAf,EAAwB;AACpBD,QAAAA,UAAU,CAACC,KAAD,CAAV,GAAoB,EAApB;AACH;;AACD,YAAMc,YAAY,GAAGf,UAAU,CAACC,KAAD,CAA/B;;AACA,UAAIQ,WAAJ,EAAiB;AACbM,QAAAA,YAAY,CAACV,UAAD,CAAZ,GAA2BW,QAAQ,CAAClB,OAAD,EAAUG,KAAV,EAAiBI,UAAjB,EAA6BQ,gBAA7B,EAA+CJ,WAA/C,CAAnC;AACA;AACH;;AACDM,MAAAA,YAAY,CAACV,UAAD,CAAZ,GAA2BP,OAAO,CAACmB,OAAR,CAAgBT,QAAhB,CAAyBK,gBAAzB,CAA3B;AACH;AACJ;;AACD,SAAOb,UAAP;AACH;;AACD,SAASgB,QAAT,CAAkBlB,OAAlB,EAA2BG,KAA3B,EAAkCI,UAAlC,EAA8CG,QAA9C,EAAwDC,WAAxD,EAAqE;AACjE,QAAMS,mBAAmB,GAAGpB,OAAO,CAACmB,OAAR,CAAgBT,QAAhB,CAAyBA,QAAzB,CAA5B;AACA;;AACA,WAASW,eAAT,CAAyB,GAAGC,IAA5B,EAAkC;AAC9B;AACA,QAAIC,OAAO,GAAGH,mBAAmB,CAACZ,QAApB,CAA6B7O,KAA7B,CAAmC,GAAG2P,IAAtC,CAAd,CAF8B;;AAI9B,QAAIX,WAAW,CAAChN,SAAhB,EAA2B;AACvB4N,MAAAA,OAAO,GAAGlB,MAAM,CAACW,MAAP,CAAc,EAAd,EAAkBO,OAAlB,EAA2B;AACjCC,QAAAA,IAAI,EAAED,OAAO,CAACZ,WAAW,CAAChN,SAAb,CADoB;AAEjC,SAACgN,WAAW,CAAChN,SAAb,GAAyB8N;AAFQ,OAA3B,CAAV;AAIA,aAAOL,mBAAmB,CAACG,OAAD,CAA1B;AACH;;AACD,QAAIZ,WAAW,CAAC7kB,OAAhB,EAAyB;AACrB,YAAM,CAAC4lB,QAAD,EAAWC,aAAX,IAA4BhB,WAAW,CAAC7kB,OAA9C;AACAkkB,MAAAA,OAAO,CAAC4B,GAAR,CAAYC,IAAZ,CAAkB,WAAU1B,KAAM,IAAGI,UAAW,kCAAiCmB,QAAS,IAAGC,aAAc,IAA3G;AACH;;AACD,QAAIhB,WAAW,CAAC1N,UAAhB,EAA4B;AACxB+M,MAAAA,OAAO,CAAC4B,GAAR,CAAYC,IAAZ,CAAiBlB,WAAW,CAAC1N,UAA7B;AACH;;AACD,QAAI0N,WAAW,CAAChd,iBAAhB,EAAmC;AAC/B;AACA,YAAM4d,OAAO,GAAGH,mBAAmB,CAACZ,QAApB,CAA6B7O,KAA7B,CAAmC,GAAG2P,IAAtC,CAAhB;;AACA,WAAK,MAAM,CAACQ,IAAD,EAAOC,KAAP,CAAX,IAA4B1B,MAAM,CAACC,OAAP,CAAeK,WAAW,CAAChd,iBAA3B,CAA5B,EAA2E;AACvE,YAAIme,IAAI,IAAIP,OAAZ,EAAqB;AACjBvB,UAAAA,OAAO,CAAC4B,GAAR,CAAYC,IAAZ,CAAkB,IAAGC,IAAK,0CAAyC3B,KAAM,IAAGI,UAAW,aAAYwB,KAAM,WAAzG;;AACA,cAAI,EAAEA,KAAK,IAAIR,OAAX,CAAJ,EAAyB;AACrBA,YAAAA,OAAO,CAACQ,KAAD,CAAP,GAAiBR,OAAO,CAACO,IAAD,CAAxB;AACH;;AACD,iBAAOP,OAAO,CAACO,IAAD,CAAd;AACH;AACJ;;AACD,aAAOV,mBAAmB,CAACG,OAAD,CAA1B;AACH,KA/B6B;;;AAiC9B,WAAOH,mBAAmB,CAAC,GAAGE,IAAJ,CAA1B;AACH;;AACD,SAAOjB,MAAM,CAACW,MAAP,CAAcK,eAAd,EAA+BD,mBAA/B,CAAP;AACH;;ACxDM,SAASY,mBAAT,CAA6BhC,OAA7B,EAAsC;AACzC,QAAMiC,GAAG,GAAGlC,kBAAkB,CAACC,OAAD,EAAUkC,SAAV,CAA9B;AACA,2CACOD,GADP;AAEIE,IAAAA,IAAI,EAAEF;AAFV;AAIH;AACDD,mBAAmB,CAAClC,OAApB,GAA8BA,OAA9B;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js new file mode 100644 index 0000000..32c2f39 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js @@ -0,0 +1,60 @@ +export function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ method, url }, defaults); + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + const scopeMethods = newMethods[scope]; + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); + // There are currently no other decorations than `.mapToData` + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined, + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + if (!(alias in options)) { + options[alias] = options[name]; + } + delete options[name]; + } + } + return requestWithDefaults(options); + } + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js new file mode 100644 index 0000000..2b65b01 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js @@ -0,0 +1,1405 @@ +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel", + ], + createOrUpdateEnvironmentSecret: [ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token", + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token", + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token", + ], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}", + ], + deleteEnvironmentSecret: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}", + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs", + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", + ], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions", + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getEnvironmentPublicKey: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key", + ], + getEnvironmentSecret: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + ], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions", + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions", + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getPendingDeploymentsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", + ], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] }, + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getReviewsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals", + ], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing", + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + ], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads", + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories", + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + reviewPendingDeploymentsForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions", + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions", + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions", + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories", + ], + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription", + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription", + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}", + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public", + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications", + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription", + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"], + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + ], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: [ + "POST /content_references/{content_reference_id}/attachments", + { mediaType: { previews: ["corsair"] } }, + ], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens", + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}", + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}", + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories", + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed", + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended", + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"], + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions", + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages", + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage", + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage", + ], + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences", + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"], + }, + codeScanning: { + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}", + ], + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } }, + ], + getAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", + ], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + ], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"], + }, + codesOfConduct: { + getAllCodesOfConduct: [ + "GET /codes_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getConductCode: [ + "GET /codes_of_conduct/{key}", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getForRepo: [ + "GET /repos/{owner}/{repo}/community/code_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + }, + emojis: { get: ["GET /emojis"] }, + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: [ + "DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + enableSelectedOrganizationGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + getAllowedActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + getGithubActionsPermissionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions", + ], + listSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/organizations", + ], + setAllowedActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions", + ], + setSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations", + ], + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"], + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"], + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"], + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: [ + "GET /user/interaction-limits", + {}, + { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] }, + ], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits", + ], + removeRestrictionsForYourPublicRepos: [ + "DELETE /user/interaction-limits", + {}, + { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] }, + ], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: [ + "PUT /user/interaction-limits", + {}, + { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] }, + ], + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments", + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}", + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + { mediaType: { previews: ["mockingbird"] } }, + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"], + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } }, + ], + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"], + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + getStatusForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForAuthenticatedUser: [ + "GET /user/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + updateImport: ["PATCH /repos/{owner}/{repo}/import"], + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}", + ], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}", + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}", + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}", + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}", + ], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"], + }, + packages: { + deletePackageForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}", + ], + deletePackageForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}", + ], + deletePackageVersionForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + deletePackageVersionForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + getAllPackageVersionsForAPackageOwnedByAnOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + {}, + { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] }, + ], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + {}, + { + renamed: [ + "packages", + "getAllPackageVersionsForPackageOwnedByAuthenticatedUser", + ], + }, + ], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + ], + getAllPackageVersionsForPackageOwnedByOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + ], + getAllPackageVersionsForPackageOwnedByUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions", + ], + getPackageForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}", + ], + getPackageForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}", + ], + getPackageForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}", + ], + getPackageVersionForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + getPackageVersionForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + getPackageVersionForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + restorePackageForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/restore{?token}", + ], + restorePackageForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}", + ], + restorePackageVersionForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", + ], + restorePackageVersionForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", + ], + }, + projects: { + addCollaborator: [ + "PUT /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + createCard: [ + "POST /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + createColumn: [ + "POST /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + createForAuthenticatedUser: [ + "POST /user/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForOrg: [ + "POST /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForRepo: [ + "POST /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + delete: [ + "DELETE /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteCard: [ + "DELETE /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteColumn: [ + "DELETE /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + get: [ + "GET /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getCard: [ + "GET /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getColumn: [ + "GET /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission", + { mediaType: { previews: ["inertia"] } }, + ], + listCards: [ + "GET /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + listCollaborators: [ + "GET /projects/{project_id}/collaborators", + { mediaType: { previews: ["inertia"] } }, + ], + listColumns: [ + "GET /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForRepo: [ + "GET /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForUser: [ + "GET /users/{username}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + moveCard: [ + "POST /projects/columns/cards/{card_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + moveColumn: [ + "POST /projects/columns/{column_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + update: [ + "PATCH /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateCard: [ + "PATCH /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateColumn: [ + "PATCH /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", + { mediaType: { previews: ["lydian"] } }, + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteLegacy: [ + "DELETE /reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + { + deprecated: "octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy", + }, + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateEnvironment: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}", + ], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: [ + "POST /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate", + { mediaType: { previews: ["baptiste"] } }, + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + deleteAnEnvironment: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}", + ], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection", + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}", + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + deletePagesSite: [ + "DELETE /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] }, + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + ], + getAllTopics: [ + "GET /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + ], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection", + ], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission", + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", + ], + getEnvironment: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}", + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", + { mediaType: { previews: ["groot"] } }, + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + { mediaType: { previews: ["groot"] } }, + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}", + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: [ + "PUT /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection", + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] }, + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" }, + ], + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { mediaType: { previews: ["cloak"] } }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics", { mediaType: { previews: ["mercy"] } }], + users: ["GET /search/users"], + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations", + ], + listProjectsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}", + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"], + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"], + }, +}; +export default Endpoints; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js new file mode 100644 index 0000000..4139906 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js @@ -0,0 +1,11 @@ +import ENDPOINTS from "./generated/endpoints"; +import { VERSION } from "./version"; +import { endpointsToMethods } from "./endpoints-to-methods"; +export function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, ENDPOINTS); + return { + ...api, + rest: api, + }; +} +restEndpointMethods.VERSION = VERSION; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/types.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js new file mode 100644 index 0000000..5e3bbc5 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "4.15.1"; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts new file mode 100644 index 0000000..2a97a4b --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts @@ -0,0 +1,4 @@ +import { Octokit } from "@octokit/core"; +import { EndpointsDefaultsAndDecorations } from "./types"; +import { RestEndpointMethods } from "./generated/method-types"; +export declare function endpointsToMethods(octokit: Octokit, endpointsMap: EndpointsDefaultsAndDecorations): RestEndpointMethods; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts new file mode 100644 index 0000000..a3c1d92 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts @@ -0,0 +1,3 @@ +import { EndpointsDefaultsAndDecorations } from "../types"; +declare const Endpoints: EndpointsDefaultsAndDecorations; +export default Endpoints; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts new file mode 100644 index 0000000..fb0644a --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts @@ -0,0 +1,7826 @@ +import { EndpointInterface, RequestInterface } from "@octokit/types"; +import { RestEndpointMethodTypes } from "./parameters-and-response-types"; +export declare type RestEndpointMethods = { + actions: { + /** + * Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + addSelectedRepoToOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["addSelectedRepoToOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + cancelWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["cancelWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates an environment secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + createOrUpdateEnvironmentSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateEnvironmentSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + createOrUpdateOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + createOrUpdateRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + */ + createRegistrationTokenForOrg: { + (params?: RestEndpointMethodTypes["actions"]["createRegistrationTokenForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate + * using an access token with the `repo` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN + * ``` + */ + createRegistrationTokenForRepo: { + (params?: RestEndpointMethodTypes["actions"]["createRegistrationTokenForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + createRemoveTokenForOrg: { + (params?: RestEndpointMethodTypes["actions"]["createRemoveTokenForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + createRemoveTokenForRepo: { + (params?: RestEndpointMethodTypes["actions"]["createRemoveTokenForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)." + */ + createWorkflowDispatch: { + (params?: RestEndpointMethodTypes["actions"]["createWorkflowDispatch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + deleteArtifact: { + (params?: RestEndpointMethodTypes["actions"]["deleteArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in an environment using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + deleteEnvironmentSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteEnvironmentSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + deleteOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + deleteRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + deleteSelfHostedRunnerFromOrg: { + (params?: RestEndpointMethodTypes["actions"]["deleteSelfHostedRunnerFromOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `repo` + * scope to use this endpoint. + */ + deleteSelfHostedRunnerFromRepo: { + (params?: RestEndpointMethodTypes["actions"]["deleteSelfHostedRunnerFromRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is + * private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use + * this endpoint. + */ + deleteWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["deleteWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + deleteWorkflowRunLogs: { + (params?: RestEndpointMethodTypes["actions"]["deleteWorkflowRunLogs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + disableSelectedRepositoryGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["disableSelectedRepositoryGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + disableWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["disableWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to + * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + downloadArtifact: { + (params?: RestEndpointMethodTypes["actions"]["downloadArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can + * use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must + * have the `actions:read` permission to use this endpoint. + */ + downloadJobLogsForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["downloadJobLogsForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use + * this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have + * the `actions:read` permission to use this endpoint. + */ + downloadWorkflowRunLogs: { + (params?: RestEndpointMethodTypes["actions"]["downloadWorkflowRunLogs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + enableSelectedRepositoryGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["enableSelectedRepositoryGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + enableWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["enableWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the selected actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)."" + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + getAllowedActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["getAllowedActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the settings for selected actions that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + getAllowedActionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["getAllowedActionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getArtifact: { + (params?: RestEndpointMethodTypes["actions"]["getArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the public key for an environment, which you need to encrypt environment secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + getEnvironmentPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getEnvironmentPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single environment secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + getEnvironmentSecret: { + (params?: RestEndpointMethodTypes["actions"]["getEnvironmentSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + getGithubActionsPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + getGithubActionsPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getJobForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["getJobForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + getOrgPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getOrgPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + getOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["getOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get all deployment environments for a workflow run that are waiting for protection rules to pass. + * + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getPendingDeploymentsForRun: { + (params?: RestEndpointMethodTypes["actions"]["getPendingDeploymentsForRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `administration` repository permission to use this API. + * @deprecated octokit.rest.actions.getRepoPermissions() has been renamed to octokit.rest.actions.getGithubActionsPermissionsRepository() (2020-11-10) + */ + getRepoPermissions: { + (params?: RestEndpointMethodTypes["actions"]["getRepoPermissions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + getRepoPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getRepoPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + getRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["getRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getReviewsForRun: { + (params?: RestEndpointMethodTypes["actions"]["getReviewsForRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + getSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["getSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + getSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["getSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflowRunUsage: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowRunUsage"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflowUsage: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowUsage"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listArtifactsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listArtifactsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in an environment without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + listEnvironmentSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listEnvironmentSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + */ + listJobsForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["listJobsForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + listOrgSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listOrgSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + listRepoSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listRepoSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listRepoWorkflows: { + (params?: RestEndpointMethodTypes["actions"]["listRepoWorkflows"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + listRunnerApplicationsForOrg: { + (params?: RestEndpointMethodTypes["actions"]["listRunnerApplicationsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + listRunnerApplicationsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listRunnerApplicationsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + listSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["listSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + listSelectedRepositoriesEnabledGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["listSelectedRepositoriesEnabledGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all self-hosted runners configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + listSelfHostedRunnersForOrg: { + (params?: RestEndpointMethodTypes["actions"]["listSelfHostedRunnersForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + listSelfHostedRunnersForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listSelfHostedRunnersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listWorkflowRunArtifacts: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRunArtifacts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + */ + listWorkflowRuns: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRuns"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listWorkflowRunsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRunsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + reRunWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["reRunWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + removeSelectedRepoFromOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["removeSelectedRepoFromOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Approve or reject pending deployments that are waiting on approval by a required reviewer. + * + * Anyone with read access to the repository contents and deployments can use this endpoint. + */ + reviewPendingDeploymentsForRun: { + (params?: RestEndpointMethodTypes["actions"]["reviewPendingDeploymentsForRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * If the organization belongs to an enterprise that has `selected` actions set at the enterprise level, then you cannot override any of the enterprise's allowed actions settings. + * + * To use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + setAllowedActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setAllowedActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * If the repository belongs to an organization or enterprise that has `selected` actions set at the organization or enterprise levels, then you cannot override any of the allowed actions settings. + * + * To use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + setAllowedActionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["setAllowedActionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * + * If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions, then you cannot override them for the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + setGithubActionsPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions in the repository. + * + * If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions, then you cannot override them for the repository. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + setGithubActionsPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + setSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["setSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + setSelectedRepositoriesEnabledGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setSelectedRepositoriesEnabledGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + activity: { + checkRepoIsStarredByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["checkRepoIsStarredByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription). + */ + deleteRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["deleteRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + deleteThreadSubscription: { + (params?: RestEndpointMethodTypes["activity"]["deleteThreadSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + getFeeds: { + (params?: RestEndpointMethodTypes["activity"]["getFeeds"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["getRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getThread: { + (params?: RestEndpointMethodTypes["activity"]["getThread"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + getThreadSubscriptionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["getThreadSubscriptionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + listEventsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listEventsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all notifications for the current user, sorted by most recently updated. + */ + listNotificationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listNotificationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + listOrgEventsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listOrgEventsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + listPublicEvents: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicEventsForRepoNetwork: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEventsForRepoNetwork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicOrgEvents: { + (params?: RestEndpointMethodTypes["activity"]["listPublicOrgEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + listReceivedEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listReceivedEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listReceivedPublicEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listReceivedPublicEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listRepoEvents: { + (params?: RestEndpointMethodTypes["activity"]["listRepoEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all notifications for the current user. + */ + listRepoNotificationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listRepoNotificationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories the authenticated user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + listReposStarredByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposStarredByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories a user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + listReposStarredByUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposStarredByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories a user is watching. + */ + listReposWatchedByUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposWatchedByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people that have starred the repository. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + listStargazersForRepo: { + (params?: RestEndpointMethodTypes["activity"]["listStargazersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories the authenticated user is watching. + */ + listWatchedReposForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listWatchedReposForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people watching the specified repository. + */ + listWatchersForRepo: { + (params?: RestEndpointMethodTypes["activity"]["listWatchersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks all notifications as "read" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + markNotificationsAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markNotificationsAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks all notifications in a repository as "read" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + markRepoNotificationsAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markRepoNotificationsAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + markThreadAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markThreadAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely. + */ + setRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["setRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint. + */ + setThreadSubscription: { + (params?: RestEndpointMethodTypes["activity"]["setThreadSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + starRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["starRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unstarRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["unstarRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + apps: { + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + */ + addRepoToInstallation: { + (params?: RestEndpointMethodTypes["apps"]["addRepoToInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + checkToken: { + (params?: RestEndpointMethodTypes["apps"]["checkToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment. + * + * The app must create a content attachment within six hours of the content reference URL being posted. See "[Using content attachments](https://docs.github.com/apps/using-content-attachments/)" for details about content attachments. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + createContentAttachment: { + (params?: RestEndpointMethodTypes["apps"]["createContentAttachment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + createFromManifest: { + (params?: RestEndpointMethodTypes["apps"]["createFromManifest"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + createInstallationAccessToken: { + (params?: RestEndpointMethodTypes["apps"]["createInstallationAccessToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + deleteAuthorization: { + (params?: RestEndpointMethodTypes["apps"]["deleteAuthorization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/rest/reference/apps/#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + deleteInstallation: { + (params?: RestEndpointMethodTypes["apps"]["deleteInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + */ + deleteToken: { + (params?: RestEndpointMethodTypes["apps"]["deleteToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getAuthenticated: { + (params?: RestEndpointMethodTypes["apps"]["getAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + * + * If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + getBySlug: { + (params?: RestEndpointMethodTypes["apps"]["getBySlug"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find an installation's information using the installation id. The installation's account type (`target_type`) will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getOrgInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getOrgInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getRepoInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getRepoInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + getSubscriptionPlanForAccount: { + (params?: RestEndpointMethodTypes["apps"]["getSubscriptionPlanForAccount"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + getSubscriptionPlanForAccountStubbed: { + (params?: RestEndpointMethodTypes["apps"]["getSubscriptionPlanForAccountStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getUserInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getUserInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getWebhookConfigForApp: { + (params?: RestEndpointMethodTypes["apps"]["getWebhookConfigForApp"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsForPlan: { + (params?: RestEndpointMethodTypes["apps"]["listAccountsForPlan"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsForPlanStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listAccountsForPlanStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + listInstallationReposForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listInstallationReposForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + listInstallations: { + (params?: RestEndpointMethodTypes["apps"]["listInstallations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + listInstallationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listInstallationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlans: { + (params?: RestEndpointMethodTypes["apps"]["listPlans"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlansStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listPlansStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List repositories that an app installation can access. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + listReposAccessibleToInstallation: { + (params?: RestEndpointMethodTypes["apps"]["listReposAccessibleToInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + listSubscriptionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listSubscriptionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + listSubscriptionsForAuthenticatedUserStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listSubscriptionsForAuthenticatedUserStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://docs.github.com/github/authenticating-to-github/creating-a-personal-access-token) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication)) to access this endpoint. + */ + removeRepoFromInstallation: { + (params?: RestEndpointMethodTypes["apps"]["removeRepoFromInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + resetToken: { + (params?: RestEndpointMethodTypes["apps"]["resetToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)" endpoint. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + revokeInstallationAccessToken: { + (params?: RestEndpointMethodTypes["apps"]["revokeInstallationAccessToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Use a non-scoped user-to-server OAuth access token to create a repository scoped and/or permission scoped user-to-server OAuth access token. You can specify which repositories the token can access and which permissions are granted to the token. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + scopeToken: { + (params?: RestEndpointMethodTypes["apps"]["scopeToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + suspendInstallation: { + (params?: RestEndpointMethodTypes["apps"]["suspendInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + unsuspendInstallation: { + (params?: RestEndpointMethodTypes["apps"]["unsuspendInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + updateWebhookConfigForApp: { + (params?: RestEndpointMethodTypes["apps"]["updateWebhookConfigForApp"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + billing: { + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + getGithubActionsBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getGithubActionsBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `user` scope. + */ + getGithubActionsBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getGithubActionsBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the free and paid storage usued for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + getGithubPackagesBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getGithubPackagesBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + getGithubPackagesBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getGithubPackagesBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + getSharedStorageBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getSharedStorageBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + getSharedStorageBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getSharedStorageBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + checks: { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + create: { + (params?: RestEndpointMethodTypes["checks"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)". Your GitHub App must have the `checks:write` permission to create check suites. + */ + createSuite: { + (params?: RestEndpointMethodTypes["checks"]["createSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Gets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + get: { + (params?: RestEndpointMethodTypes["checks"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Gets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + getSuite: { + (params?: RestEndpointMethodTypes["checks"]["getSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. + */ + listAnnotations: { + (params?: RestEndpointMethodTypes["checks"]["listAnnotations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + listForRef: { + (params?: RestEndpointMethodTypes["checks"]["listForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + listForSuite: { + (params?: RestEndpointMethodTypes["checks"]["listForSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + listSuitesForRef: { + (params?: RestEndpointMethodTypes["checks"]["listSuitesForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + rerequestSuite: { + (params?: RestEndpointMethodTypes["checks"]["rerequestSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites. + */ + setSuitesPreferences: { + (params?: RestEndpointMethodTypes["checks"]["setSuitesPreferences"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Updates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs. + */ + update: { + (params?: RestEndpointMethodTypes["checks"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + codeScanning: { + /** + * Deletes a specified code scanning analysis from a repository. For + * private repositories, you must use an access token with the `repo` scope. For public repositories, + * you must use an access token with `public_repo` and `repo:security_events` scopes. + * GitHub Apps must have the `security_events` write permission to use this endpoint. + * + * You can delete one analysis at a time. + * To delete a series of analyses, start with the most recent analysis and work backwards. + * Conceptually, the process is similar to the undo function in a text editor. + * + * When you list the analyses for a repository, + * one or more will be identified as deletable in the response: + * + * ``` + * "deletable": true + * ``` + * + * An analysis is deletable when it's the most recent in a set of analyses. + * Typically, a repository will have multiple sets of analyses + * for each enabled code scanning tool, + * where a set is determined by a unique combination of analysis values: + * + * * `ref` + * * `tool` + * * `analysis_key` + * * `environment` + * + * If you attempt to delete an analysis that is not the most recent in a set, + * you'll get a 400 response with the message: + * + * ``` + * Analysis specified is not deletable. + * ``` + * + * The response from a successful `DELETE` operation provides you with + * two alternative URLs for deleting the next analysis in the set + * (see the example default response below). + * Use the `next_analysis_url` URL if you want to avoid accidentally deleting the final analysis + * in the set. This is a useful option if you want to preserve at least one analysis + * for the specified tool in your repository. + * Use the `confirm_delete_url` URL if you are content to remove all analyses for a tool. + * When you delete the last analysis in a set the value of `next_analysis_url` and `confirm_delete_url` + * in the 200 response is `null`. + * + * As an example of the deletion process, + * let's imagine that you added a workflow that configured a particular code scanning tool + * to analyze the code in a repository. This tool has added 15 analyses: + * 10 on the default branch, and another 5 on a topic branch. + * You therefore have two separate sets of analyses for this tool. + * You've now decided that you want to remove all of the analyses for the tool. + * To do this you must make 15 separate deletion requests. + * To start, you must find the deletable analysis for one of the sets, + * step through deleting the analyses in that set, + * and then repeat the process for the second set. + * The procedure therefore consists of a nested loop: + * + * **Outer loop**: + * * List the analyses for the repository, filtered by tool. + * * Parse this list to find a deletable analysis. If found: + * + * **Inner loop**: + * * Delete the identified analysis. + * * Parse the response for the value of `confirm_delete_url` and, if found, use this in the next iteration. + * + * The above process assumes that you want to remove all trace of the tool's analyses from the GitHub user interface, for the specified repository, and it therefore uses the `confirm_delete_url` value. Alternatively, you could use the `next_analysis_url` value, which would leave the last analysis in each set undeleted to avoid removing a tool's analysis entirely. + */ + deleteAnalysis: { + (params?: RestEndpointMethodTypes["codeScanning"]["deleteAnalysis"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * **Deprecation notice**: + * The instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by `instances_url`. + */ + getAlert: { + (params?: RestEndpointMethodTypes["codeScanning"]["getAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specified code scanning analysis for a repository. + * You must use an access token with the `security_events` scope to use this endpoint. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * The default JSON response contains fields that describe the analysis. + * This includes the Git reference and commit SHA to which the analysis relates, + * the datetime of the analysis, the name of the code scanning tool, + * and the number of alerts. + * + * The `rules_count` field in the default response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * If you use the Accept header `application/sarif+json`, + * the response contains the analysis data that was uploaded. + * This is formatted as + * [SARIF version 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html). + * For an example response, see "[Custom media type for code scanning](#custom-media-type-for-code-scanning)." + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + */ + getAnalysis: { + (params?: RestEndpointMethodTypes["codeScanning"]["getAnalysis"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see "[Get a code scanning analysis for a repository](/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository)." You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + getSarif: { + (params?: RestEndpointMethodTypes["codeScanning"]["getSarif"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all open code scanning alerts for the default branch (usually `main` + * or `master`). You must use an access token with the `security_events` scope to use + * this endpoint. GitHub Apps must have the `security_events` read permission to use + * this endpoint. + * + * The response includes a `most_recent_instance` object. + * This provides details of the most recent instance of this alert + * for the default branch or for the specified Git reference + * (if you used `ref` in the request). + */ + listAlertsForRepo: { + (params?: RestEndpointMethodTypes["codeScanning"]["listAlertsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all instances of the specified code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + listAlertsInstances: { + (params?: RestEndpointMethodTypes["codeScanning"]["listAlertsInstances"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the details of all code scanning analyses for a repository, + * starting with the most recent. + * The response is paginated and you can use the `page` and `per_page` parameters + * to list the analyses you're interested in. + * By default 30 analyses are listed per page. + * + * The `rules_count` field in the response give the number of rules + * that were run in the analysis. + * For very old analyses this data is not available, + * and `0` is returned in this field. + * + * You must use an access token with the `security_events` scope to use this endpoint. + * GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * **Deprecation notice**: + * The `tool_name` field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the `tool` field. + */ + listRecentAnalyses: { + (params?: RestEndpointMethodTypes["codeScanning"]["listRecentAnalyses"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the status of a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint. + */ + updateAlert: { + (params?: RestEndpointMethodTypes["codeScanning"]["updateAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint. + * + * There are two places where you can upload code scanning results. + * - If you upload to a pull request, for example `--ref refs/pull/42/merge` or `--ref refs/pull/42/head`, then the results appear as alerts in a pull request check. For more information, see "[Triaging code scanning alerts in pull requests](/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests)." + * - If you upload to a branch, for example `--ref refs/heads/my-branch`, then the results appear in the **Security** tab for your repository. For more information, see "[Managing code scanning alerts for your repository](/github/finding-security-vulnerabilities-and-errors-in-your-code/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." + * + * You must compress the SARIF-formatted analysis data that you want to upload, using `gzip`, and then encode it as a Base64 format string. For example: + * + * ``` + * gzip -c analysis-data.sarif | base64 + * ``` + * + * SARIF upload supports a maximum of 1000 results per analysis run. Any results over this limit are ignored. Typically, but not necessarily, a SARIF file contains a single run of a single tool. If a code scanning tool generates too many results, you should update the analysis configuration to run only the most important rules or queries. + * + * The `202 Accepted`, response includes an `id` value. + * You can use this ID to check the status of the upload by using this for the `/sarifs/{sarif_id}` endpoint. + * For more information, see "[Get information about a SARIF upload](/rest/reference/code-scanning#get-information-about-a-sarif-upload)." + */ + uploadSarif: { + (params?: RestEndpointMethodTypes["codeScanning"]["uploadSarif"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + codesOfConduct: { + getAllCodesOfConduct: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getAllCodesOfConduct"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getConductCode: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getConductCode"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the contents of the repository's code of conduct file, if one is detected. + * + * A code of conduct is detected if there is a file named `CODE_OF_CONDUCT` in the root directory of the repository. GitHub detects which code of conduct it is using fuzzy matching. + */ + getForRepo: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + emojis: { + /** + * Lists all the emojis available to use on GitHub. + */ + get: { + (params?: RestEndpointMethodTypes["emojis"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + enterpriseAdmin: { + /** + * Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + disableSelectedOrganizationGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["disableSelectedOrganizationGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + enableSelectedOrganizationGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["enableSelectedOrganizationGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the selected actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + getAllowedActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["getAllowedActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + getGithubActionsPermissionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["getGithubActionsPermissionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + listSelectedOrganizationsEnabledGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["listSelectedOrganizationsEnabledGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + setAllowedActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["setAllowedActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + setGithubActionsPermissionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["setGithubActionsPermissionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + setSelectedOrganizationsEnabledGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["setSelectedOrganizationsEnabledGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + gists: { + checkIsStarred: { + (params?: RestEndpointMethodTypes["gists"]["checkIsStarred"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + create: { + (params?: RestEndpointMethodTypes["gists"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createComment: { + (params?: RestEndpointMethodTypes["gists"]["createComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + delete: { + (params?: RestEndpointMethodTypes["gists"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteComment: { + (params?: RestEndpointMethodTypes["gists"]["deleteComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This was previously `/gists/:gist_id/fork`. + */ + fork: { + (params?: RestEndpointMethodTypes["gists"]["fork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + get: { + (params?: RestEndpointMethodTypes["gists"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getComment: { + (params?: RestEndpointMethodTypes["gists"]["getComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getRevision: { + (params?: RestEndpointMethodTypes["gists"]["getRevision"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + list: { + (params?: RestEndpointMethodTypes["gists"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listComments: { + (params?: RestEndpointMethodTypes["gists"]["listComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listCommits: { + (params?: RestEndpointMethodTypes["gists"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists public gists for the specified user: + */ + listForUser: { + (params?: RestEndpointMethodTypes["gists"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForks: { + (params?: RestEndpointMethodTypes["gists"]["listForks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + listPublic: { + (params?: RestEndpointMethodTypes["gists"]["listPublic"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the authenticated user's starred gists: + */ + listStarred: { + (params?: RestEndpointMethodTypes["gists"]["listStarred"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + star: { + (params?: RestEndpointMethodTypes["gists"]["star"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unstar: { + (params?: RestEndpointMethodTypes["gists"]["unstar"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + update: { + (params?: RestEndpointMethodTypes["gists"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateComment: { + (params?: RestEndpointMethodTypes["gists"]["updateComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + git: { + createBlob: { + (params?: RestEndpointMethodTypes["git"]["createBlob"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createCommit: { + (params?: RestEndpointMethodTypes["git"]["createCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + createRef: { + (params?: RestEndpointMethodTypes["git"]["createRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createTag: { + (params?: RestEndpointMethodTypes["git"]["createTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference)." + */ + createTree: { + (params?: RestEndpointMethodTypes["git"]["createTree"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteRef: { + (params?: RestEndpointMethodTypes["git"]["deleteRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The `content` in the response will always be Base64 encoded. + * + * _Note_: This API supports blobs up to 100 megabytes in size. + */ + getBlob: { + (params?: RestEndpointMethodTypes["git"]["getBlob"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + (params?: RestEndpointMethodTypes["git"]["getCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + getRef: { + (params?: RestEndpointMethodTypes["git"]["getRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getTag: { + (params?: RestEndpointMethodTypes["git"]["getTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a single tree using the SHA1 value for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + */ + getTree: { + (params?: RestEndpointMethodTypes["git"]["getTree"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + listMatchingRefs: { + (params?: RestEndpointMethodTypes["git"]["listMatchingRefs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateRef: { + (params?: RestEndpointMethodTypes["git"]["updateRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + gitignore: { + /** + * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user). + */ + getAllTemplates: { + (params?: RestEndpointMethodTypes["gitignore"]["getAllTemplates"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The API also allows fetching the source of a single template. + * Use the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents. + */ + getTemplate: { + (params?: RestEndpointMethodTypes["gitignore"]["getTemplate"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + interactions: { + /** + * Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + */ + getRestrictionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + getRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + getRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with your public repositories and when the restriction expires. + * @deprecated octokit.rest.interactions.getRestrictionsForYourPublicRepos() has been renamed to octokit.rest.interactions.getRestrictionsForAuthenticatedUser() (2021-02-02) + */ + getRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any interaction restrictions from your public repositories. + */ + removeRestrictionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + removeRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + removeRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any interaction restrictions from your public repositories. + * @deprecated octokit.rest.interactions.removeRestrictionsForYourPublicRepos() has been renamed to octokit.rest.interactions.removeRestrictionsForAuthenticatedUser() (2021-02-02) + */ + removeRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + setRestrictionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + setRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + setRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + * @deprecated octokit.rest.interactions.setRestrictionsForYourPublicRepos() has been renamed to octokit.rest.interactions.setRestrictionsForAuthenticatedUser() (2021-02-02) + */ + setRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + issues: { + /** + * Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + addAssignees: { + (params?: RestEndpointMethodTypes["issues"]["addAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + addLabels: { + (params?: RestEndpointMethodTypes["issues"]["addLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + checkUserCanBeAssigned: { + (params?: RestEndpointMethodTypes["issues"]["checkUserCanBeAssigned"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://help.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + create: { + (params?: RestEndpointMethodTypes["issues"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + createComment: { + (params?: RestEndpointMethodTypes["issues"]["createComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createLabel: { + (params?: RestEndpointMethodTypes["issues"]["createLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createMilestone: { + (params?: RestEndpointMethodTypes["issues"]["createMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteComment: { + (params?: RestEndpointMethodTypes["issues"]["deleteComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteLabel: { + (params?: RestEndpointMethodTypes["issues"]["deleteLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteMilestone: { + (params?: RestEndpointMethodTypes["issues"]["deleteMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was + * [transferred](https://help.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + get: { + (params?: RestEndpointMethodTypes["issues"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getComment: { + (params?: RestEndpointMethodTypes["issues"]["getComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getEvent: { + (params?: RestEndpointMethodTypes["issues"]["getEvent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getLabel: { + (params?: RestEndpointMethodTypes["issues"]["getLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getMilestone: { + (params?: RestEndpointMethodTypes["issues"]["getMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + list: { + (params?: RestEndpointMethodTypes["issues"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + listAssignees: { + (params?: RestEndpointMethodTypes["issues"]["listAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Issue Comments are ordered by ascending ID. + */ + listComments: { + (params?: RestEndpointMethodTypes["issues"]["listComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * By default, Issue Comments are ordered by ascending ID. + */ + listCommentsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listEvents: { + (params?: RestEndpointMethodTypes["issues"]["listEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listEventsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listEventsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listEventsForTimeline: { + (params?: RestEndpointMethodTypes["issues"]["listEventsForTimeline"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["issues"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["issues"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues in a repository. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + listForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listLabelsForMilestone: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsForMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listLabelsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listLabelsOnIssue: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsOnIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listMilestones: { + (params?: RestEndpointMethodTypes["issues"]["listMilestones"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + lock: { + (params?: RestEndpointMethodTypes["issues"]["lock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removeAllLabels: { + (params?: RestEndpointMethodTypes["issues"]["removeAllLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes one or more assignees from an issue. + */ + removeAssignees: { + (params?: RestEndpointMethodTypes["issues"]["removeAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + removeLabel: { + (params?: RestEndpointMethodTypes["issues"]["removeLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any previous labels and sets the new labels for an issue. + */ + setLabels: { + (params?: RestEndpointMethodTypes["issues"]["setLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access can unlock an issue's conversation. + */ + unlock: { + (params?: RestEndpointMethodTypes["issues"]["unlock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Issue owners and users with push access can edit an issue. + */ + update: { + (params?: RestEndpointMethodTypes["issues"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateComment: { + (params?: RestEndpointMethodTypes["issues"]["updateComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateLabel: { + (params?: RestEndpointMethodTypes["issues"]["updateLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateMilestone: { + (params?: RestEndpointMethodTypes["issues"]["updateMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + licenses: { + get: { + (params?: RestEndpointMethodTypes["licenses"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getAllCommonlyUsed: { + (params?: RestEndpointMethodTypes["licenses"]["getAllCommonlyUsed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This method returns the contents of the repository's license file, if one is detected. + * + * Similar to [Get repository content](https://docs.github.com/rest/reference/repos#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML. + */ + getForRepo: { + (params?: RestEndpointMethodTypes["licenses"]["getForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + markdown: { + render: { + (params?: RestEndpointMethodTypes["markdown"]["render"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + renderRaw: { + (params?: RestEndpointMethodTypes["markdown"]["renderRaw"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + meta: { + /** + * Returns meta information about GitHub, including a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://help.github.com/articles/about-github-s-ip-addresses/)." + * + * **Note:** The IP addresses shown in the documentation's response are only example values. You must always query the API directly to get the latest list of IP addresses. + */ + get: { + (params?: RestEndpointMethodTypes["meta"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the octocat as ASCII art + */ + getOctocat: { + (params?: RestEndpointMethodTypes["meta"]["getOctocat"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a random sentence from the Zen of GitHub + */ + getZen: { + (params?: RestEndpointMethodTypes["meta"]["getZen"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get Hypermedia links to resources accessible in GitHub's REST API + */ + root: { + (params?: RestEndpointMethodTypes["meta"]["root"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + migrations: { + /** + * Stop an import for a repository. + */ + cancelImport: { + (params?: RestEndpointMethodTypes["migrations"]["cancelImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + deleteArchiveForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["deleteArchiveForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + deleteArchiveForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["deleteArchiveForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the URL to a migration archive. + */ + downloadArchiveForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["downloadArchiveForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + getArchiveForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["getArchiveForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information. + */ + getCommitAuthors: { + (params?: RestEndpointMethodTypes["migrations"]["getCommitAuthors"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View the progress of an import. + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://support.github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + getImportStatus: { + (params?: RestEndpointMethodTypes["migrations"]["getImportStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List files larger than 100MB found during the import + */ + getLargeFiles: { + (params?: RestEndpointMethodTypes["migrations"]["getLargeFiles"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive). + */ + getStatusForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["getStatusForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + getStatusForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["getStatusForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all migrations a user has started. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the most recent migrations. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all the repositories for this organization migration. + */ + listReposForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["listReposForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all the repositories for this user migration. + */ + listReposForUser: { + (params?: RestEndpointMethodTypes["migrations"]["listReposForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository. + */ + mapCommitAuthor: { + (params?: RestEndpointMethodTypes["migrations"]["mapCommitAuthor"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://help.github.com/articles/versioning-large-files/). + */ + setLfsPreference: { + (params?: RestEndpointMethodTypes["migrations"]["setLfsPreference"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Initiates the generation of a user migration archive. + */ + startForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["startForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Initiates the generation of a migration archive. + */ + startForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["startForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Start a source import to a GitHub repository using GitHub Importer. + */ + startImport: { + (params?: RestEndpointMethodTypes["migrations"]["startImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + unlockRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["unlockRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + unlockRepoForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["unlockRepoForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + */ + updateImport: { + (params?: RestEndpointMethodTypes["migrations"]["updateImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + orgs: { + blockUser: { + (params?: RestEndpointMethodTypes["orgs"]["blockUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). + */ + cancelInvitation: { + (params?: RestEndpointMethodTypes["orgs"]["cancelInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkBlockedUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkBlockedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Check if a user is, publicly or privately, a member of the organization. + */ + checkMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkPublicMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkPublicMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://help.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". + */ + convertMemberToOutsideCollaborator: { + (params?: RestEndpointMethodTypes["orgs"]["convertMemberToOutsideCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createInvitation: { + (params?: RestEndpointMethodTypes["orgs"]["createInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Here's how you can create a hook that posts payloads in JSON format: + */ + createWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["createWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["deleteWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * GitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See "[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)" for details. For an example response, see 'Response with GitHub plan information' below." + */ + get: { + (params?: RestEndpointMethodTypes["orgs"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["getMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's membership status. + */ + getMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["getMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization)." + */ + getWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["getWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission. + */ + getWebhookConfigForOrg: { + (params?: RestEndpointMethodTypes["orgs"]["getWebhookConfigForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations. + */ + list: { + (params?: RestEndpointMethodTypes["orgs"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint. + */ + listAppInstallations: { + (params?: RestEndpointMethodTypes["orgs"]["listAppInstallations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the users blocked by an organization. + */ + listBlockedUsers: { + (params?: RestEndpointMethodTypes["orgs"]["listBlockedUsers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure. + */ + listFailedInvitations: { + (params?: RestEndpointMethodTypes["orgs"]["listFailedInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List organizations for the authenticated user. + * + * **OAuth scope requirements** + * + * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + listForUser: { + (params?: RestEndpointMethodTypes["orgs"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + listInvitationTeams: { + (params?: RestEndpointMethodTypes["orgs"]["listInvitationTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + listMembers: { + (params?: RestEndpointMethodTypes["orgs"]["listMembers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listMembershipsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["listMembershipsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all users who are outside collaborators of an organization. + */ + listOutsideCollaborators: { + (params?: RestEndpointMethodTypes["orgs"]["listOutsideCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + listPendingInvitations: { + (params?: RestEndpointMethodTypes["orgs"]["listPendingInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Members of an organization can choose to have their membership publicized or not. + */ + listPublicMembers: { + (params?: RestEndpointMethodTypes["orgs"]["listPublicMembers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listWebhooks: { + (params?: RestEndpointMethodTypes["orgs"]["listWebhooks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["pingWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + removeMember: { + (params?: RestEndpointMethodTypes["orgs"]["removeMember"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + removeMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["removeMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removing a user from this list will remove them from all the organization's repositories. + */ + removeOutsideCollaborator: { + (params?: RestEndpointMethodTypes["orgs"]["removeOutsideCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removePublicMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["removePublicMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + setMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["setMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + setPublicMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["setPublicMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unblockUser: { + (params?: RestEndpointMethodTypes["orgs"]["unblockUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Enables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges. + */ + update: { + (params?: RestEndpointMethodTypes["orgs"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["updateMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization)." + */ + updateWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["updateWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission. + */ + updateWebhookConfigForOrg: { + (params?: RestEndpointMethodTypes["orgs"]["updateWebhookConfigForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + packages: { + /** + * Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + deletePackageForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + deletePackageForOrg: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + deletePackageVersionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageVersionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container you want to delete. + */ + deletePackageVersionForOrg: { + (params?: RestEndpointMethodTypes["packages"]["deletePackageVersionForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns all package versions for a package owned by an organization. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + * @deprecated octokit.rest.packages.getAllPackageVersionsForAPackageOwnedByAnOrg() has been renamed to octokit.rest.packages.getAllPackageVersionsForPackageOwnedByOrg() (2021-03-24) + */ + getAllPackageVersionsForAPackageOwnedByAnOrg: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForAPackageOwnedByAnOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns all package versions for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + * @deprecated octokit.rest.packages.getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser() has been renamed to octokit.rest.packages.getAllPackageVersionsForPackageOwnedByAuthenticatedUser() (2021-03-24) + */ + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns all package versions for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns all package versions for a package owned by an organization. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getAllPackageVersionsForPackageOwnedByOrg: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForPackageOwnedByOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns all package versions for a public package owned by a specified user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getAllPackageVersionsForPackageOwnedByUser: { + (params?: RestEndpointMethodTypes["packages"]["getAllPackageVersionsForPackageOwnedByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getPackageForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package in an organization. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getPackageForOrganization: { + (params?: RestEndpointMethodTypes["packages"]["getPackageForOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package metadata for a public package owned by a user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getPackageForUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package version for a package owned by the authenticated user. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getPackageVersionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageVersionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package version in an organization. + * + * You must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getPackageVersionForOrganization: { + (params?: RestEndpointMethodTypes["packages"]["getPackageVersionForOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific package version for a public package owned by a specified user. + * + * At this time, to use this endpoint, you must authenticate using an access token with the `packages:read` scope. + * If `package_type` is not `container`, your token must also include the `repo` scope. + */ + getPackageVersionForUser: { + (params?: RestEndpointMethodTypes["packages"]["getPackageVersionForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores a package owned by the authenticated user. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scope. If `package_type` is not `container`, your token must also include the `repo` scope. + */ + restorePackageForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores an entire package in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scope. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + restorePackageForOrg: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores a package version owned by the authenticated user. + * + * You can restore a deleted package version under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scope. If `package_type` is not `container`, your token must also include the `repo` scope. + */ + restorePackageVersionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageVersionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Restores a specific package version in an organization. + * + * You can restore a deleted package under the following conditions: + * - The package was deleted within the last 30 days. + * - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first. + * + * To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scope. In addition: + * - If `package_type` is not `container`, your token must also include the `repo` scope. + * - If `package_type` is `container`, you must also have admin permissions to the container that you want to restore. + */ + restorePackageVersionForOrg: { + (params?: RestEndpointMethodTypes["packages"]["restorePackageVersionForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + projects: { + /** + * Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + addCollaborator: { + (params?: RestEndpointMethodTypes["projects"]["addCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + createCard: { + (params?: RestEndpointMethodTypes["projects"]["createCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createColumn: { + (params?: RestEndpointMethodTypes["projects"]["createColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["projects"]["createForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an organization project board. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForOrg: { + (params?: RestEndpointMethodTypes["projects"]["createForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a repository project board. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForRepo: { + (params?: RestEndpointMethodTypes["projects"]["createForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + delete: { + (params?: RestEndpointMethodTypes["projects"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteCard: { + (params?: RestEndpointMethodTypes["projects"]["deleteCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteColumn: { + (params?: RestEndpointMethodTypes["projects"]["deleteColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: { + (params?: RestEndpointMethodTypes["projects"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getCard: { + (params?: RestEndpointMethodTypes["projects"]["getCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getColumn: { + (params?: RestEndpointMethodTypes["projects"]["getColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + getPermissionForUser: { + (params?: RestEndpointMethodTypes["projects"]["getPermissionForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listCards: { + (params?: RestEndpointMethodTypes["projects"]["listCards"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + listCollaborators: { + (params?: RestEndpointMethodTypes["projects"]["listCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listColumns: { + (params?: RestEndpointMethodTypes["projects"]["listColumns"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["projects"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + listForRepo: { + (params?: RestEndpointMethodTypes["projects"]["listForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForUser: { + (params?: RestEndpointMethodTypes["projects"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + moveCard: { + (params?: RestEndpointMethodTypes["projects"]["moveCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + moveColumn: { + (params?: RestEndpointMethodTypes["projects"]["moveColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + removeCollaborator: { + (params?: RestEndpointMethodTypes["projects"]["removeCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + update: { + (params?: RestEndpointMethodTypes["projects"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateCard: { + (params?: RestEndpointMethodTypes["projects"]["updateCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateColumn: { + (params?: RestEndpointMethodTypes["projects"]["updateColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + pulls: { + checkIfMerged: { + (params?: RestEndpointMethodTypes["pulls"]["checkIfMerged"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * You can create a new pull request. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + create: { + (params?: RestEndpointMethodTypes["pulls"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createReplyForReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["createReplyForReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * Pull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response. + * + * **Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/overview/media-types#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + createReview: { + (params?: RestEndpointMethodTypes["pulls"]["createReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * + * You can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see the [`comfort-fade` preview notice](https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request-preview-notices). + * + * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["createReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deletePendingReview: { + (params?: RestEndpointMethodTypes["pulls"]["deletePendingReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a review comment. + */ + deleteReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["deleteReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. + */ + dismissReview: { + (params?: RestEndpointMethodTypes["pulls"]["dismissReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://help.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://help.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://help.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + */ + get: { + (params?: RestEndpointMethodTypes["pulls"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getReview: { + (params?: RestEndpointMethodTypes["pulls"]["getReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides details for a review comment. + */ + getReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["getReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + list: { + (params?: RestEndpointMethodTypes["pulls"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List comments for a specific pull request review. + */ + listCommentsForReview: { + (params?: RestEndpointMethodTypes["pulls"]["listCommentsForReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint. + */ + listCommits: { + (params?: RestEndpointMethodTypes["pulls"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + */ + listFiles: { + (params?: RestEndpointMethodTypes["pulls"]["listFiles"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listRequestedReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["listRequestedReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all review comments for a pull request. By default, review comments are in ascending order by ID. + */ + listReviewComments: { + (params?: RestEndpointMethodTypes["pulls"]["listReviewComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. + */ + listReviewCommentsForRepo: { + (params?: RestEndpointMethodTypes["pulls"]["listReviewCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The list of reviews returns in chronological order. + */ + listReviews: { + (params?: RestEndpointMethodTypes["pulls"]["listReviews"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + merge: { + (params?: RestEndpointMethodTypes["pulls"]["merge"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removeRequestedReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["removeRequestedReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + requestReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["requestReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + submitReview: { + (params?: RestEndpointMethodTypes["pulls"]["submitReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + */ + update: { + (params?: RestEndpointMethodTypes["pulls"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + updateBranch: { + (params?: RestEndpointMethodTypes["pulls"]["updateBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update the review summary comment with new text. + */ + updateReview: { + (params?: RestEndpointMethodTypes["pulls"]["updateReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables you to edit a review comment. + */ + updateReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["updateReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + rateLimit: { + /** + * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: { + (params?: RestEndpointMethodTypes["rateLimit"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + reactions: { + /** + * Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this commit comment. + */ + createForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with a `Status: 200 OK` means that you already added the reaction type to this issue. + */ + createForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["createForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this issue comment. + */ + createForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this pull request review comment. + */ + createForPullRequestReviewComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForPullRequestReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + createForTeamDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["createForTeamDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + createForTeamDiscussionInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["createForTeamDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + deleteForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/reference/issues/). + */ + deleteForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + deleteForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + deleteForPullRequestComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForPullRequestComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteForTeamDiscussion: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForTeamDiscussion"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteForTeamDiscussionComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForTeamDiscussionComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Reactions API. We recommend migrating your existing code to use the new delete reactions endpoints. For more information, see this [blog post](https://developer.github.com/changes/2020-02-26-new-delete-reactions-endpoints/). + * + * OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), when deleting a [team discussion](https://docs.github.com/rest/reference/teams#discussions) or [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). + * @deprecated octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy + */ + deleteLegacy: { + (params?: RestEndpointMethodTypes["reactions"]["deleteLegacy"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + listForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to an [issue](https://docs.github.com/rest/reference/issues). + */ + listForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["listForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + listForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + listForPullRequestReviewComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForPullRequestReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + listForTeamDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["listForTeamDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + listForTeamDiscussionInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["listForTeamDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + repos: { + acceptInvitation: { + (params?: RestEndpointMethodTypes["repos"]["acceptInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * For more information the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations). + * + * **Rate limits** + * + * To prevent abuse, you are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + addCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["addCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + addStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["addStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + */ + checkCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["checkCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + checkVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["checkVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * To process a response with a large number of commits, you can use (`per_page` or `page`) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + * + * When calling this API without any paging parameters (`per_page` or `page`), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + compareCommits: { + (params?: RestEndpointMethodTypes["repos"]["compareCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["createCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + createCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["createCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + createCommitStatus: { + (params?: RestEndpointMethodTypes["repos"]["createCommitStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can create a read-only deploy key. + */ + createDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["createDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/reference/repos#statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Users with `repo` or `repo_deployment` scopes can create a deployment for a given ref. + * + * #### Merged branch response + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * #### Merge conflict response + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * #### Failed commit status checks + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + */ + createDeployment: { + (params?: RestEndpointMethodTypes["repos"]["createDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with `push` access can create deployment statuses for a given deployment. + * + * GitHub Apps require `read & write` access to "Deployments" and `read-only` access to "Repo contents" (for private repos). OAuth Apps require the `repo_deployment` scope. + */ + createDeploymentStatus: { + (params?: RestEndpointMethodTypes["repos"]["createDeploymentStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * This endpoint requires write access to the repository by providing either: + * + * - Personal access tokens with `repo` scope. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)" in the GitHub Help documentation. + * - GitHub Apps with both `metadata:read` and `contents:read&write` permissions. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + */ + createDispatchEvent: { + (params?: RestEndpointMethodTypes["repos"]["createDispatchEvent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository for the authenticated user. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository. + */ + createForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["createForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://support.github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com). + */ + createFork: { + (params?: RestEndpointMethodTypes["repos"]["createFork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository + */ + createInOrg: { + (params?: RestEndpointMethodTypes["repos"]["createInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "[Environments](/actions/reference/environments#environment-protection-rules)." + * + * **Note:** Although you can use this operation to specify that only branches that match specified name patterns can deploy to this environment, you must use the UI to set the name patterns. For more information, see "[Environments](/actions/reference/environments#deployment-branches)." + * + * **Note:** To create or update secrets for an environment, see "[Secrets](/rest/reference/actions#secrets)." + * + * You must authenticate using an access token with the repo scope to use this endpoint. + */ + createOrUpdateEnvironment: { + (params?: RestEndpointMethodTypes["repos"]["createOrUpdateEnvironment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new file or replaces an existing file in a repository. + */ + createOrUpdateFileContents: { + (params?: RestEndpointMethodTypes["repos"]["createOrUpdateFileContents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + */ + createPagesSite: { + (params?: RestEndpointMethodTypes["repos"]["createPagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createRelease: { + (params?: RestEndpointMethodTypes["repos"]["createRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository. Note: For GitHub AE, use `repo` scope to create an internal repository. + * * `repo` scope to create a private repository + */ + createUsingTemplate: { + (params?: RestEndpointMethodTypes["repos"]["createUsingTemplate"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + createWebhook: { + (params?: RestEndpointMethodTypes["repos"]["createWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + declineInvitation: { + (params?: RestEndpointMethodTypes["repos"]["declineInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + */ + delete: { + (params?: RestEndpointMethodTypes["repos"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + deleteAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["deleteAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + deleteAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You must authenticate using an access token with the repo scope to use this endpoint. + */ + deleteAnEnvironment: { + (params?: RestEndpointMethodTypes["repos"]["deleteAnEnvironment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + deleteBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["deleteCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + deleteCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + deleteDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["deleteDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To ensure there can always be an active deployment, you can only delete an _inactive_ deployment. Anyone with `repo` or `repo_deployment` scopes can delete an inactive deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/reference/repos/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status)." + */ + deleteDeployment: { + (params?: RestEndpointMethodTypes["repos"]["deleteDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + */ + deleteFile: { + (params?: RestEndpointMethodTypes["repos"]["deleteFile"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteInvitation: { + (params?: RestEndpointMethodTypes["repos"]["deleteInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deletePagesSite: { + (params?: RestEndpointMethodTypes["repos"]["deletePagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + deletePullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["deletePullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can delete a release. + */ + deleteRelease: { + (params?: RestEndpointMethodTypes["repos"]["deleteRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["deleteReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteWebhook: { + (params?: RestEndpointMethodTypes["repos"]["deleteWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + */ + disableAutomatedSecurityFixes: { + (params?: RestEndpointMethodTypes["repos"]["disableAutomatedSecurityFixes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + disableVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["disableVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + * @deprecated octokit.rest.repos.downloadArchive() has been renamed to octokit.rest.repos.downloadZipballArchive() (2020-09-17) + */ + downloadArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + downloadTarballArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadTarballArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + downloadZipballArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadZipballArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + */ + enableAutomatedSecurityFixes: { + (params?: RestEndpointMethodTypes["repos"]["enableAutomatedSecurityFixes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + enableVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["enableVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When you pass the `scarlet-witch-preview` media type, requests to get a repository will also return the repository's code of conduct if it can be detected from the repository's code of conduct file. + * + * The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + */ + get: { + (params?: RestEndpointMethodTypes["repos"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + getAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["getAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["getAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get all environments for a repository. + * + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getAllEnvironments: { + (params?: RestEndpointMethodTypes["repos"]["getAllEnvironments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getAllStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["getAllStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getAllTopics: { + (params?: RestEndpointMethodTypes["repos"]["getAllTopics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + */ + getAppsWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getAppsWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getBranch: { + (params?: RestEndpointMethodTypes["repos"]["getBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["getBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getClones: { + (params?: RestEndpointMethodTypes["repos"]["getClones"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + */ + getCodeFrequencyStats: { + (params?: RestEndpointMethodTypes["repos"]["getCodeFrequencyStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`. + */ + getCollaboratorPermissionLevel: { + (params?: RestEndpointMethodTypes["repos"]["getCollaboratorPermissionLevel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * The most recent status for each context is returned, up to 100. This field [paginates](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination) if there are over 100 contexts. + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + getCombinedStatusForRef: { + (params?: RestEndpointMethodTypes["repos"]["getCombinedStatusForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * You can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property. + * + * To return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + (params?: RestEndpointMethodTypes["repos"]["getCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + getCommitActivityStats: { + (params?: RestEndpointMethodTypes["repos"]["getCommitActivityStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["getCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://help.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + getCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["getCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint will return all community profile metrics, including an + * overall health score, repository description, the presence of documentation, detected + * code of conduct, detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * these four documents are present: README, CONTRIBUTING, LICENSE, and + * CODE_OF_CONDUCT. For example, if all four documents are present, then + * the `health_percentage` is `100`. If only one is present, then the + * `health_percentage` is `25`. + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + getCommunityProfileMetrics: { + (params?: RestEndpointMethodTypes["repos"]["getCommunityProfileMetrics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit + * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. + * + * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for + * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media + * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent + * object format. + * + * **Note**: + * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). + * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees + * API](https://docs.github.com/rest/reference/git#get-a-tree). + * * This API supports files up to 1 megabyte in size. + * + * #### If the content is a directory + * The response will be an array of objects, one object for each item in the directory. + * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value + * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). + * In the next major version of the API, the type will be returned as "submodule". + * + * #### If the content is a symlink + * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the + * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object + * describing the symlink itself. + * + * #### If the content is a submodule + * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific + * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out + * the submodule at that specific commit. + * + * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the + * github.com URLs (`html_url` and `_links["html"]`) will have null values. + */ + getContent: { + (params?: RestEndpointMethodTypes["repos"]["getContent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + getContributorsStats: { + (params?: RestEndpointMethodTypes["repos"]["getContributorsStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["getDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getDeployment: { + (params?: RestEndpointMethodTypes["repos"]["getDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access can view a deployment status for a deployment: + */ + getDeploymentStatus: { + (params?: RestEndpointMethodTypes["repos"]["getDeploymentStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getEnvironment: { + (params?: RestEndpointMethodTypes["repos"]["getEnvironment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getLatestPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["getLatestPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + getLatestRelease: { + (params?: RestEndpointMethodTypes["repos"]["getLatestRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getPages: { + (params?: RestEndpointMethodTypes["repos"]["getPages"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["getPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + */ + getParticipationStats: { + (params?: RestEndpointMethodTypes["repos"]["getParticipationStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getPullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["getPullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + getPunchCardStats: { + (params?: RestEndpointMethodTypes["repos"]["getPunchCardStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the preferred README for a repository. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + getReadme: { + (params?: RestEndpointMethodTypes["repos"]["getReadme"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the README from a repository directory. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + getReadmeInDirectory: { + (params?: RestEndpointMethodTypes["repos"]["getReadmeInDirectory"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). + */ + getRelease: { + (params?: RestEndpointMethodTypes["repos"]["getRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + getReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["getReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a published release with the specified tag. + */ + getReleaseByTag: { + (params?: RestEndpointMethodTypes["repos"]["getReleaseByTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getStatusChecksProtection: { + (params?: RestEndpointMethodTypes["repos"]["getStatusChecksProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + getTeamsWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getTeamsWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the top 10 popular contents over the last 14 days. + */ + getTopPaths: { + (params?: RestEndpointMethodTypes["repos"]["getTopPaths"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the top 10 referrers over the last 14 days. + */ + getTopReferrers: { + (params?: RestEndpointMethodTypes["repos"]["getTopReferrers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + getUsersWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getUsersWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getViews: { + (params?: RestEndpointMethodTypes["repos"]["getViews"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository)." + */ + getWebhook: { + (params?: RestEndpointMethodTypes["repos"]["getWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook)." + * + * Access tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission. + */ + getWebhookConfigForRepo: { + (params?: RestEndpointMethodTypes["repos"]["getWebhookConfigForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listBranches: { + (params?: RestEndpointMethodTypes["repos"]["listBranches"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + listBranchesForHeadCommit: { + (params?: RestEndpointMethodTypes["repos"]["listBranchesForHeadCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + */ + listCollaborators: { + (params?: RestEndpointMethodTypes["repos"]["listCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Use the `:commit_sha` to specify the commit that will have its comments listed. + */ + listCommentsForCommit: { + (params?: RestEndpointMethodTypes["repos"]["listCommentsForCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/). + * + * Comments are ordered by ascending ID. + */ + listCommitCommentsForRepo: { + (params?: RestEndpointMethodTypes["repos"]["listCommitCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + listCommitStatusesForRef: { + (params?: RestEndpointMethodTypes["repos"]["listCommitStatusesForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + listCommits: { + (params?: RestEndpointMethodTypes["repos"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + listContributors: { + (params?: RestEndpointMethodTypes["repos"]["listContributors"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listDeployKeys: { + (params?: RestEndpointMethodTypes["repos"]["listDeployKeys"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access can view deployment statuses for a deployment: + */ + listDeploymentStatuses: { + (params?: RestEndpointMethodTypes["repos"]["listDeploymentStatuses"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Simple filtering of deployments is available via query parameters: + */ + listDeployments: { + (params?: RestEndpointMethodTypes["repos"]["listDeployments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories for the specified organization. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["repos"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user. + */ + listForUser: { + (params?: RestEndpointMethodTypes["repos"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForks: { + (params?: RestEndpointMethodTypes["repos"]["listForks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + listInvitations: { + (params?: RestEndpointMethodTypes["repos"]["listInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + listInvitationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["listInvitationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + listLanguages: { + (params?: RestEndpointMethodTypes["repos"]["listLanguages"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPagesBuilds: { + (params?: RestEndpointMethodTypes["repos"]["listPagesBuilds"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all public repositories in the order that they were created. + * + * Notes: + * - For GitHub Enterprise Server and GitHub AE, this endpoint will only list repositories available to all users on the enterprise. + * - Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories. + */ + listPublic: { + (params?: RestEndpointMethodTypes["repos"]["listPublic"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests) endpoint. + */ + listPullRequestsAssociatedWithCommit: { + (params?: RestEndpointMethodTypes["repos"]["listPullRequestsAssociatedWithCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listReleaseAssets: { + (params?: RestEndpointMethodTypes["repos"]["listReleaseAssets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + listReleases: { + (params?: RestEndpointMethodTypes["repos"]["listReleases"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listTags: { + (params?: RestEndpointMethodTypes["repos"]["listTags"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listTeams: { + (params?: RestEndpointMethodTypes["repos"]["listTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listWebhooks: { + (params?: RestEndpointMethodTypes["repos"]["listWebhooks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + merge: { + (params?: RestEndpointMethodTypes["repos"]["merge"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingWebhook: { + (params?: RestEndpointMethodTypes["repos"]["pingWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removeCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["removeCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + removeStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["removeStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + removeStatusCheckProtection: { + (params?: RestEndpointMethodTypes["repos"]["removeStatusCheckProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Renames a branch in a repository. + * + * **Note:** Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)". + * + * The permissions required to use this endpoint depends on whether you are renaming the default branch. + * + * To rename a non-default branch: + * + * * Users must have push access. + * * GitHub Apps must have the `contents:write` repository permission. + * + * To rename the default branch: + * + * * Users must have admin or owner permissions. + * * GitHub Apps must have the `administration:write` repository permission. + */ + renameBranch: { + (params?: RestEndpointMethodTypes["repos"]["renameBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + replaceAllTopics: { + (params?: RestEndpointMethodTypes["repos"]["replaceAllTopics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + requestPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["requestPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + setAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["setAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + setAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + setStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["setStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + setTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + setUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + testPushWebhook: { + (params?: RestEndpointMethodTypes["repos"]["testPushWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://help.github.com/articles/about-repository-transfers/). + */ + transfer: { + (params?: RestEndpointMethodTypes["repos"]["transfer"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint. + */ + update: { + (params?: RestEndpointMethodTypes["repos"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + updateBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["updateBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["updateCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + */ + updateInformationAboutPagesSite: { + (params?: RestEndpointMethodTypes["repos"]["updateInformationAboutPagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateInvitation: { + (params?: RestEndpointMethodTypes["repos"]["updateInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + updatePullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["updatePullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can edit a release. + */ + updateRelease: { + (params?: RestEndpointMethodTypes["repos"]["updateRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can edit a release asset. + */ + updateReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["updateReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + * @deprecated octokit.rest.repos.updateStatusCheckPotection() has been renamed to octokit.rest.repos.updateStatusCheckProtection() (2020-09-17) + */ + updateStatusCheckPotection: { + (params?: RestEndpointMethodTypes["repos"]["updateStatusCheckPotection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + updateStatusCheckProtection: { + (params?: RestEndpointMethodTypes["repos"]["updateStatusCheckProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository)." + */ + updateWebhook: { + (params?: RestEndpointMethodTypes["repos"]["updateWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook)." + * + * Access tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission. + */ + updateWebhookConfigForRepo: { + (params?: RestEndpointMethodTypes["repos"]["updateWebhookConfigForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://support.github.com/contact). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + uploadReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["uploadReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + search: { + /** + * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * #### Considerations for code search + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + */ + code: { + (params?: RestEndpointMethodTypes["search"]["code"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + commits: { + (params?: RestEndpointMethodTypes["search"]["commits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + issuesAndPullRequests: { + (params?: RestEndpointMethodTypes["search"]["issuesAndPullRequests"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + labels: { + (params?: RestEndpointMethodTypes["search"]["labels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + * + * When you include the `mercy` preview header, you can also search for multiple topics by adding more `topic:` instances. For example, your query might look like this: + * + * `q=topic:ruby+topic:rails` + */ + repos: { + (params?: RestEndpointMethodTypes["search"]["repos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See "[Searching topics](https://help.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + topics: { + (params?: RestEndpointMethodTypes["search"]["topics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + */ + users: { + (params?: RestEndpointMethodTypes["search"]["users"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + secretScanning: { + /** + * Gets a single secret scanning alert detected in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + getAlert: { + (params?: RestEndpointMethodTypes["secretScanning"]["getAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secret scanning alerts for a private repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + listAlertsForRepo: { + (params?: RestEndpointMethodTypes["secretScanning"]["listAlertsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the status of a secret scanning alert in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint. + */ + updateAlert: { + (params?: RestEndpointMethodTypes["secretScanning"]["updateAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + teams: { + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + addOrUpdateMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + addOrUpdateProjectPermissionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateProjectPermissionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + addOrUpdateRepoPermissionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateRepoPermissionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + checkPermissionsForProjectInOrg: { + (params?: RestEndpointMethodTypes["teams"]["checkPermissionsForProjectInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + checkPermissionsForRepoInOrg: { + (params?: RestEndpointMethodTypes["teams"]["checkPermissionsForRepoInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://help.github.com/en/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + create: { + (params?: RestEndpointMethodTypes["teams"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + createDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["createDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + */ + createDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["createDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + deleteDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + deleteDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + deleteInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + getByName: { + (params?: RestEndpointMethodTypes["teams"]["getByName"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + getDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + getDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** + * The response contains the `state` of the membership and the member's `role`. + * + * The `role` for organization owners is set to `maintainer`. For more information about `maintainer` roles, see see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + getMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all teams in an organization that are visible to the authenticated user. + */ + list: { + (params?: RestEndpointMethodTypes["teams"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + listChildInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listChildInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + listDiscussionCommentsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listDiscussionCommentsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + */ + listDiscussionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listDiscussionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/). + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["teams"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + listMembersInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listMembersInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + listPendingInvitationsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listPendingInvitationsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + listProjectsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listProjectsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + listReposInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listReposInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + removeMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + removeProjectInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeProjectInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + removeRepoInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeRepoInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + updateDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + updateDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + updateInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + users: { + /** + * This endpoint is accessible with the `user` scope. + */ + addEmailForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["addEmailForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + block: { + (params?: RestEndpointMethodTypes["users"]["block"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkBlocked: { + (params?: RestEndpointMethodTypes["users"]["checkBlocked"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkFollowingForUser: { + (params?: RestEndpointMethodTypes["users"]["checkFollowingForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkPersonIsFollowedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["checkPersonIsFollowedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + createGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["createGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + createPublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["createPublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint is accessible with the `user` scope. + */ + deleteEmailForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deleteEmailForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deleteGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deletePublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deletePublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + follow: { + (params?: RestEndpointMethodTypes["users"]["follow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the authenticated user is authenticated through basic authentication or OAuth with the `user` scope, then the response lists public and private profile information. + * + * If the authenticated user is authenticated through OAuth without the `user` scope, then the response lists only public profile information. + */ + getAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides publicly available information about someone with a GitHub account. + * + * GitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See "[Identifying and authorizing users for GitHub Apps](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" for details about authentication. For an example response, see 'Response with GitHub plan information' below" + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/overview/resources-in-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/reference/users#emails)". + */ + getByUsername: { + (params?: RestEndpointMethodTypes["users"]["getByUsername"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + */ + getContextForUser: { + (params?: RestEndpointMethodTypes["users"]["getContextForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getPublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getPublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of users. + */ + list: { + (params?: RestEndpointMethodTypes["users"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the users you've blocked on your personal account. + */ + listBlockedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listBlockedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope. + */ + listEmailsForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listEmailsForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people who the authenticated user follows. + */ + listFollowedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listFollowedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people following the authenticated user. + */ + listFollowersForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowersForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people following the specified user. + */ + listFollowersForUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowersForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people who the specified user follows. + */ + listFollowingForUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowingForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listGpgKeysForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listGpgKeysForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the GPG keys for a user. This information is accessible by anyone. + */ + listGpgKeysForUser: { + (params?: RestEndpointMethodTypes["users"]["listGpgKeysForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists your publicly visible email address, which you can set with the [Set primary email visibility for the authenticated user](https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) endpoint. This endpoint is accessible with the `user:email` scope. + */ + listPublicEmailsForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listPublicEmailsForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + listPublicKeysForUser: { + (params?: RestEndpointMethodTypes["users"]["listPublicKeysForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listPublicSshKeysForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listPublicSshKeysForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the visibility for your primary email addresses. + */ + setPrimaryEmailVisibilityForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["setPrimaryEmailVisibilityForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unblock: { + (params?: RestEndpointMethodTypes["users"]["unblock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + unfollow: { + (params?: RestEndpointMethodTypes["users"]["unfollow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + updateAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["updateAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts new file mode 100644 index 0000000..44a2ec7 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts @@ -0,0 +1,2629 @@ +import { Endpoints, RequestParameters } from "@octokit/types"; +export declare type RestEndpointMethodTypes = { + actions: { + addSelectedRepoToOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + cancelWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"]["response"]; + }; + createOrUpdateEnvironmentSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["response"]; + }; + createOrUpdateOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + createOrUpdateRepoSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + createRegistrationTokenForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/actions/runners/registration-token"]["response"]; + }; + createRegistrationTokenForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/registration-token"]["response"]; + }; + createRemoveTokenForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/actions/runners/remove-token"]["response"]; + }; + createRemoveTokenForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/remove-token"]["response"]; + }; + createWorkflowDispatch: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"]["response"]; + }; + deleteArtifact: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["response"]; + }; + deleteEnvironmentSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["response"]; + }; + deleteOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + deleteRepoSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + deleteSelfHostedRunnerFromOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}"]["response"]; + }; + deleteSelfHostedRunnerFromRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"]["response"]; + }; + deleteWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"]["response"]; + }; + deleteWorkflowRunLogs: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["response"]; + }; + disableSelectedRepositoryGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"]["response"]; + }; + disableWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"]["response"]; + }; + downloadArtifact: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"]["response"]; + }; + downloadJobLogsForWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"]["response"]; + }; + downloadWorkflowRunLogs: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["response"]; + }; + enableSelectedRepositoryGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"]["response"]; + }; + enableWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"]["response"]; + }; + getAllowedActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/permissions/selected-actions"]["response"]; + }; + getAllowedActionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"]["response"]; + }; + getArtifact: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["response"]; + }; + getEnvironmentPublicKey: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"]["response"]; + }; + getEnvironmentSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"]["response"]; + }; + getGithubActionsPermissionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/permissions"]["response"]; + }; + getGithubActionsPermissionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + getJobForWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"]["response"]; + }; + getOrgPublicKey: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets/public-key"]["response"]; + }; + getOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + getPendingDeploymentsForRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"]["response"]; + }; + getRepoPermissions: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + getRepoPublicKey: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets/public-key"]["response"]; + }; + getRepoSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + getReviewsForRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"]["response"]; + }; + getSelfHostedRunnerForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/runners/{runner_id}"]["response"]; + }; + getSelfHostedRunnerForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"]["response"]; + }; + getWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"]["response"]; + }; + getWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}"]["response"]; + }; + getWorkflowRunUsage: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"]["response"]; + }; + getWorkflowUsage: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"]["response"]; + }; + listArtifactsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"]; + }; + listEnvironmentSecrets: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repositories/{repository_id}/environments/{environment_name}/secrets"]["response"]; + }; + listJobsForWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"]; + }; + listOrgSecrets: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets"]["response"]; + }; + listRepoSecrets: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"]; + }; + listRepoWorkflows: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"]; + }; + listRunnerApplicationsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/runners/downloads"]["response"]; + }; + listRunnerApplicationsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/downloads"]["response"]; + }; + listSelectedReposForOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]; + }; + listSelectedRepositoriesEnabledGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"]; + }; + listSelfHostedRunnersForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/runners"]["response"]; + }; + listSelfHostedRunnersForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"]; + }; + listWorkflowRunArtifacts: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"]; + }; + listWorkflowRuns: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"]; + }; + listWorkflowRunsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"]; + }; + reRunWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"]["response"]; + }; + removeSelectedRepoFromOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + reviewPendingDeploymentsForRun: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"]["response"]; + }; + setAllowedActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions/selected-actions"]["response"]; + }; + setAllowedActionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"]["response"]; + }; + setGithubActionsPermissionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions"]["response"]; + }; + setGithubActionsPermissionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + setSelectedReposForOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]; + }; + setSelectedRepositoriesEnabledGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions/repositories"]["response"]; + }; + }; + activity: { + checkRepoIsStarredByAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/starred/{owner}/{repo}"]["response"]; + }; + deleteRepoSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/subscription"]["response"]; + }; + deleteThreadSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /notifications/threads/{thread_id}/subscription"]["response"]; + }; + getFeeds: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /feeds"]["response"]; + }; + getRepoSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/subscription"]["response"]; + }; + getThread: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /notifications/threads/{thread_id}"]["response"]; + }; + getThreadSubscriptionForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /notifications/threads/{thread_id}/subscription"]["response"]; + }; + listEventsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/events"]["response"]; + }; + listNotificationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /notifications"]["response"]; + }; + listOrgEventsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/events/orgs/{org}"]["response"]; + }; + listPublicEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /events"]["response"]; + }; + listPublicEventsForRepoNetwork: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /networks/{owner}/{repo}/events"]["response"]; + }; + listPublicEventsForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/events/public"]["response"]; + }; + listPublicOrgEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/events"]["response"]; + }; + listReceivedEventsForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/received_events"]["response"]; + }; + listReceivedPublicEventsForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/received_events/public"]["response"]; + }; + listRepoEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/events"]["response"]; + }; + listRepoNotificationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/notifications"]["response"]; + }; + listReposStarredByAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/starred"]["response"]; + }; + listReposStarredByUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/starred"]["response"]; + }; + listReposWatchedByUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/subscriptions"]["response"]; + }; + listStargazersForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["response"]; + }; + listWatchedReposForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/subscriptions"]["response"]; + }; + listWatchersForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["response"]; + }; + markNotificationsAsRead: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /notifications"]["response"]; + }; + markRepoNotificationsAsRead: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/notifications"]["response"]; + }; + markThreadAsRead: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /notifications/threads/{thread_id}"]["response"]; + }; + setRepoSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/subscription"]["response"]; + }; + setThreadSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /notifications/threads/{thread_id}/subscription"]["response"]; + }; + starRepoForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/starred/{owner}/{repo}"]["response"]; + }; + unstarRepoForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/starred/{owner}/{repo}"]["response"]; + }; + }; + apps: { + addRepoToInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + checkToken: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /applications/{client_id}/token"]["response"]; + }; + createContentAttachment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /content_references/{content_reference_id}/attachments"]["response"]; + }; + createFromManifest: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /app-manifests/{code}/conversions"]["response"]; + }; + createInstallationAccessToken: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /app/installations/{installation_id}/access_tokens"]["response"]; + }; + deleteAuthorization: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /applications/{client_id}/grant"]["response"]; + }; + deleteInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /app/installations/{installation_id}"]["response"]; + }; + deleteToken: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /applications/{client_id}/token"]["response"]; + }; + getAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app"]["response"]; + }; + getBySlug: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /apps/{app_slug}"]["response"]; + }; + getInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app/installations/{installation_id}"]["response"]; + }; + getOrgInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/installation"]["response"]; + }; + getRepoInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/installation"]["response"]; + }; + getSubscriptionPlanForAccount: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/accounts/{account_id}"]["response"]; + }; + getSubscriptionPlanForAccountStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/stubbed/accounts/{account_id}"]["response"]; + }; + getUserInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/installation"]["response"]; + }; + getWebhookConfigForApp: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app/hook/config"]["response"]; + }; + listAccountsForPlan: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["response"]; + }; + listAccountsForPlanStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["response"]; + }; + listInstallationReposForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"]; + }; + listInstallations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app/installations"]["response"]; + }; + listInstallationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/installations"]["response"]; + }; + listPlans: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/plans"]["response"]; + }; + listPlansStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/stubbed/plans"]["response"]; + }; + listReposAccessibleToInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /installation/repositories"]["response"]; + }; + listSubscriptionsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/marketplace_purchases"]["response"]; + }; + listSubscriptionsForAuthenticatedUserStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/marketplace_purchases/stubbed"]["response"]; + }; + removeRepoFromInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + resetToken: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /applications/{client_id}/token"]["response"]; + }; + revokeInstallationAccessToken: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /installation/token"]["response"]; + }; + scopeToken: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /applications/{client_id}/token/scoped"]["response"]; + }; + suspendInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /app/installations/{installation_id}/suspended"]["response"]; + }; + unsuspendInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /app/installations/{installation_id}/suspended"]["response"]; + }; + updateWebhookConfigForApp: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /app/hook/config"]["response"]; + }; + }; + billing: { + getGithubActionsBillingOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/settings/billing/actions"]["response"]; + }; + getGithubActionsBillingUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/settings/billing/actions"]["response"]; + }; + getGithubPackagesBillingOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/settings/billing/packages"]["response"]; + }; + getGithubPackagesBillingUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/settings/billing/packages"]["response"]; + }; + getSharedStorageBillingOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/settings/billing/shared-storage"]["response"]; + }; + getSharedStorageBillingUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/settings/billing/shared-storage"]["response"]; + }; + }; + checks: { + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/check-runs"]["response"]; + }; + createSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/check-suites"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"]["response"]; + }; + getSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"]["response"]; + }; + listAnnotations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["response"]; + }; + listForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"]; + }; + listForSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"]; + }; + listSuitesForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"]; + }; + rerequestSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"]["response"]; + }; + setSuitesPreferences: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/check-suites/preferences"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]["response"]; + }; + }; + codeScanning: { + deleteAnalysis: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"]["response"]; + }; + getAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["response"]; + }; + getAnalysis: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"]["response"]; + }; + getSarif: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"]["response"]; + }; + listAlertsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["response"]; + }; + listAlertsInstances: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"]["response"]; + }; + listRecentAnalyses: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["response"]; + }; + updateAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["response"]; + }; + uploadSarif: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/code-scanning/sarifs"]["response"]; + }; + }; + codesOfConduct: { + getAllCodesOfConduct: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /codes_of_conduct"]["response"]; + }; + getConductCode: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /codes_of_conduct/{key}"]["response"]; + }; + getForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/community/code_of_conduct"]["response"]; + }; + }; + emojis: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /emojis"]["response"]; + }; + }; + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"]["response"]; + }; + enableSelectedOrganizationGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"]["response"]; + }; + getAllowedActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions/selected-actions"]["response"]; + }; + getGithubActionsPermissionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions"]["response"]; + }; + listSelectedOrganizationsEnabledGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["response"]; + }; + setAllowedActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"]["response"]; + }; + setGithubActionsPermissionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions"]["response"]; + }; + setSelectedOrganizationsEnabledGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions/organizations"]["response"]; + }; + }; + gists: { + checkIsStarred: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/star"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /gists"]["response"]; + }; + createComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /gists/{gist_id}/comments"]["response"]; + }; + delete: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /gists/{gist_id}"]["response"]; + }; + deleteComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + fork: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /gists/{gist_id}/forks"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}"]["response"]; + }; + getComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + getRevision: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/{sha}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists"]["response"]; + }; + listComments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/comments"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/commits"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/gists"]["response"]; + }; + listForks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/forks"]["response"]; + }; + listPublic: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/public"]["response"]; + }; + listStarred: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/starred"]["response"]; + }; + star: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /gists/{gist_id}/star"]["response"]; + }; + unstar: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /gists/{gist_id}/star"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /gists/{gist_id}"]["response"]; + }; + updateComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + }; + git: { + createBlob: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/blobs"]["response"]; + }; + createCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/commits"]["response"]; + }; + createRef: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/refs"]["response"]; + }; + createTag: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/tags"]["response"]; + }; + createTree: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/trees"]["response"]; + }; + deleteRef: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/git/refs/{ref}"]["response"]; + }; + getBlob: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"]["response"]; + }; + getCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"]["response"]; + }; + getRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/ref/{ref}"]["response"]; + }; + getTag: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"]["response"]; + }; + getTree: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"]["response"]; + }; + listMatchingRefs: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["response"]; + }; + updateRef: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]["response"]; + }; + }; + gitignore: { + getAllTemplates: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gitignore/templates"]["response"]; + }; + getTemplate: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gitignore/templates/{name}"]["response"]; + }; + }; + interactions: { + getRestrictionsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/interaction-limits"]["response"]; + }; + getRestrictionsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/interaction-limits"]["response"]; + }; + getRestrictionsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + getRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/interaction-limits"]["response"]; + }; + removeRestrictionsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/interaction-limits"]["response"]; + }; + removeRestrictionsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/interaction-limits"]["response"]; + }; + removeRestrictionsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + removeRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/interaction-limits"]["response"]; + }; + setRestrictionsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/interaction-limits"]["response"]; + }; + setRestrictionsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/interaction-limits"]["response"]; + }; + setRestrictionsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + setRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/interaction-limits"]["response"]; + }; + }; + issues: { + addAssignees: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["response"]; + }; + addLabels: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + checkUserCanBeAssigned: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/assignees/{assignee}"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues"]["response"]; + }; + createComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + createLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/labels"]["response"]; + }; + createMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/milestones"]["response"]; + }; + deleteComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + deleteLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + deleteMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}"]["response"]; + }; + getComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + getEvent: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events/{event_id}"]["response"]; + }; + getLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + getMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /issues"]["response"]; + }; + listAssignees: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/assignees"]["response"]; + }; + listComments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + listCommentsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["response"]; + }; + listEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["response"]; + }; + listEventsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["response"]; + }; + listEventsForTimeline: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/issues"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/issues"]["response"]; + }; + listForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues"]["response"]; + }; + listLabelsForMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["response"]; + }; + listLabelsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/labels"]["response"]; + }; + listLabelsOnIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + listMilestones: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/milestones"]["response"]; + }; + lock: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"]["response"]; + }; + removeAllLabels: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + removeAssignees: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["response"]; + }; + removeLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"]["response"]; + }; + setLabels: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + unlock: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/issues/{issue_number}"]["response"]; + }; + updateComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + updateLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + updateMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + }; + licenses: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /licenses/{license}"]["response"]; + }; + getAllCommonlyUsed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /licenses"]["response"]; + }; + getForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/license"]["response"]; + }; + }; + markdown: { + render: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /markdown"]["response"]; + }; + renderRaw: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /markdown/raw"]["response"]; + }; + }; + meta: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /meta"]["response"]; + }; + getOctocat: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /octocat"]["response"]; + }; + getZen: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /zen"]["response"]; + }; + root: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /"]["response"]; + }; + }; + migrations: { + cancelImport: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/import"]["response"]; + }; + deleteArchiveForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/migrations/{migration_id}/archive"]["response"]; + }; + deleteArchiveForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/archive"]["response"]; + }; + downloadArchiveForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/archive"]["response"]; + }; + getArchiveForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations/{migration_id}/archive"]["response"]; + }; + getCommitAuthors: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/import/authors"]["response"]; + }; + getImportStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/import"]["response"]; + }; + getLargeFiles: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/import/large_files"]["response"]; + }; + getStatusForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations/{migration_id}"]["response"]; + }; + getStatusForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations"]["response"]; + }; + listReposForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["response"]; + }; + listReposForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations/{migration_id}/repositories"]["response"]; + }; + mapCommitAuthor: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"]["response"]; + }; + setLfsPreference: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/import/lfs"]["response"]; + }; + startForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/migrations"]["response"]; + }; + startForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/migrations"]["response"]; + }; + startImport: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/import"]["response"]; + }; + unlockRepoForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"]["response"]; + }; + unlockRepoForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]["response"]; + }; + updateImport: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/import"]["response"]; + }; + }; + orgs: { + blockUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/blocks/{username}"]["response"]; + }; + cancelInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/invitations/{invitation_id}"]["response"]; + }; + checkBlockedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/blocks/{username}"]["response"]; + }; + checkMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/members/{username}"]["response"]; + }; + checkPublicMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/public_members/{username}"]["response"]; + }; + convertMemberToOutsideCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/outside_collaborators/{username}"]["response"]; + }; + createInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/invitations"]["response"]; + }; + createWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/hooks"]["response"]; + }; + deleteWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}"]["response"]; + }; + getMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/memberships/orgs/{org}"]["response"]; + }; + getMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/memberships/{username}"]["response"]; + }; + getWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + getWebhookConfigForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}/config"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /organizations"]["response"]; + }; + listAppInstallations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/installations"]["response"]; + }; + listBlockedUsers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/blocks"]["response"]; + }; + listFailedInvitations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/failed_invitations"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/orgs"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/orgs"]["response"]; + }; + listInvitationTeams: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["response"]; + }; + listMembers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/members"]["response"]; + }; + listMembershipsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/memberships/orgs"]["response"]; + }; + listOutsideCollaborators: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/outside_collaborators"]["response"]; + }; + listPendingInvitations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/invitations"]["response"]; + }; + listPublicMembers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/public_members"]["response"]; + }; + listWebhooks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/hooks"]["response"]; + }; + pingWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/hooks/{hook_id}/pings"]["response"]; + }; + removeMember: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/members/{username}"]["response"]; + }; + removeMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/memberships/{username}"]["response"]; + }; + removeOutsideCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/outside_collaborators/{username}"]["response"]; + }; + removePublicMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/public_members/{username}"]["response"]; + }; + setMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/memberships/{username}"]["response"]; + }; + setPublicMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/public_members/{username}"]["response"]; + }; + unblockUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/blocks/{username}"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}"]["response"]; + }; + updateMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user/memberships/orgs/{org}"]["response"]; + }; + updateWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + updateWebhookConfigForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/hooks/{hook_id}/config"]["response"]; + }; + }; + packages: { + deletePackageForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/packages/{package_type}/{package_name}"]["response"]; + }; + deletePackageForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/packages/{package_type}/{package_name}"]["response"]; + }; + deletePackageVersionForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + deletePackageVersionForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + getAllPackageVersionsForAPackageOwnedByAnOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForPackageOwnedByOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getAllPackageVersionsForPackageOwnedByUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/packages/{package_type}/{package_name}/versions"]["response"]; + }; + getPackageForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/packages/{package_type}/{package_name}"]["response"]; + }; + getPackageForOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}"]["response"]; + }; + getPackageForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/packages/{package_type}/{package_name}"]["response"]; + }; + getPackageVersionForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + getPackageVersionForOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + getPackageVersionForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"]["response"]; + }; + restorePackageForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/packages/{package_type}/{package_name}/restore{?token}"]["response"]; + }; + restorePackageForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"]["response"]; + }; + restorePackageVersionForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["response"]; + }; + restorePackageVersionForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]["response"]; + }; + }; + projects: { + addCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /projects/{project_id}/collaborators/{username}"]["response"]; + }; + createCard: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/columns/{column_id}/cards"]["response"]; + }; + createColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/{project_id}/columns"]["response"]; + }; + createForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/projects"]["response"]; + }; + createForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/projects"]["response"]; + }; + createForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/projects"]["response"]; + }; + delete: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/{project_id}"]["response"]; + }; + deleteCard: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/columns/cards/{card_id}"]["response"]; + }; + deleteColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/columns/{column_id}"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}"]["response"]; + }; + getCard: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/columns/cards/{card_id}"]["response"]; + }; + getColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/columns/{column_id}"]["response"]; + }; + getPermissionForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}/collaborators/{username}/permission"]["response"]; + }; + listCards: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/columns/{column_id}/cards"]["response"]; + }; + listCollaborators: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}/collaborators"]["response"]; + }; + listColumns: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}/columns"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/projects"]["response"]; + }; + listForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/projects"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/projects"]["response"]; + }; + moveCard: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/columns/cards/{card_id}/moves"]["response"]; + }; + moveColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/columns/{column_id}/moves"]["response"]; + }; + removeCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/{project_id}/collaborators/{username}"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /projects/{project_id}"]["response"]; + }; + updateCard: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /projects/columns/cards/{card_id}"]["response"]; + }; + updateColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /projects/columns/{column_id}"]["response"]; + }; + }; + pulls: { + checkIfMerged: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls"]["response"]; + }; + createReplyForReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"]["response"]; + }; + createReview: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + createReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + deletePendingReview: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + deleteReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + dismissReview: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]; + }; + getReview: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + getReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls"]["response"]; + }; + listCommentsForReview: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["response"]; + }; + listFiles: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["response"]; + }; + listRequestedReviewers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + listReviewComments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + listReviewCommentsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["response"]; + }; + listReviews: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + merge: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["response"]; + }; + removeRequestedReviewers: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + requestReviewers: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + submitReview: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]; + }; + updateBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"]["response"]; + }; + updateReview: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + updateReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + }; + rateLimit: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /rate_limit"]["response"]; + }; + }; + reactions: { + createForCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + createForIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + createForIssueComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + createForPullRequestReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + createForTeamDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + createForTeamDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + deleteForCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"]["response"]; + }; + deleteForIssueComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForPullRequestComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForTeamDiscussion: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"]["response"]; + }; + deleteForTeamDiscussionComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"]["response"]; + }; + deleteLegacy: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /reactions/{reaction_id}"]["response"]; + }; + listForCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + listForIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + listForIssueComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + listForPullRequestReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + listForTeamDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + listForTeamDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + }; + repos: { + acceptInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user/repository_invitations/{invitation_id}"]["response"]; + }; + addAppAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + addCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + addStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + addTeamAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + addUserAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + checkCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + checkVulnerabilityAlerts: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + compareCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/compare/{base}...{head}"]["response"]; + }; + createCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + createCommitSignatureProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + createCommitStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/statuses/{sha}"]["response"]; + }; + createDeployKey: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/keys"]["response"]; + }; + createDeployment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/deployments"]["response"]; + }; + createDeploymentStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + createDispatchEvent: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/dispatches"]["response"]; + }; + createForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/repos"]["response"]; + }; + createFork: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/forks"]["response"]; + }; + createInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/repos"]["response"]; + }; + createOrUpdateEnvironment: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/environments/{environment_name}"]["response"]; + }; + createOrUpdateFileContents: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + createPagesSite: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pages"]["response"]; + }; + createRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/releases"]["response"]; + }; + createUsingTemplate: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{template_owner}/{template_repo}/generate"]["response"]; + }; + createWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/hooks"]["response"]; + }; + declineInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/repository_invitations/{invitation_id}"]["response"]; + }; + delete: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}"]["response"]; + }; + deleteAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["response"]; + }; + deleteAdminBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + deleteAnEnvironment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/environments/{environment_name}"]["response"]; + }; + deleteBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + deleteCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + deleteCommitSignatureProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + deleteDeployKey: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/keys/{key_id}"]["response"]; + }; + deleteDeployment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"]["response"]; + }; + deleteFile: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + deleteInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"]["response"]; + }; + deletePagesSite: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pages"]["response"]; + }; + deletePullRequestReviewProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + deleteRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + deleteReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + deleteWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + disableAutomatedSecurityFixes: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/automated-security-fixes"]["response"]; + }; + disableVulnerabilityAlerts: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + downloadArchive: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["response"]; + }; + downloadTarballArchive: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/tarball/{ref}"]["response"]; + }; + downloadZipballArchive: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["response"]; + }; + enableAutomatedSecurityFixes: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/automated-security-fixes"]["response"]; + }; + enableVulnerabilityAlerts: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}"]["response"]; + }; + getAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["response"]; + }; + getAdminBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + getAllEnvironments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/environments"]["response"]; + }; + getAllStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + getAllTopics: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/topics"]["response"]; + }; + getAppsWithAccessToProtectedBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + getBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}"]["response"]; + }; + getBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + getClones: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/clones"]["response"]; + }; + getCodeFrequencyStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/code_frequency"]["response"]; + }; + getCollaboratorPermissionLevel: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}/permission"]["response"]; + }; + getCombinedStatusForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["response"]; + }; + getCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}"]["response"]; + }; + getCommitActivityStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/commit_activity"]["response"]; + }; + getCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + getCommitSignatureProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + getCommunityProfileMetrics: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/community/profile"]["response"]; + }; + getContent: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + getContributorsStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/contributors"]["response"]; + }; + getDeployKey: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/keys/{key_id}"]["response"]; + }; + getDeployment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}"]["response"]; + }; + getDeploymentStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"]["response"]; + }; + getEnvironment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/environments/{environment_name}"]["response"]; + }; + getLatestPagesBuild: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds/latest"]["response"]; + }; + getLatestRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]; + }; + getPages: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages"]["response"]; + }; + getPagesBuild: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds/{build_id}"]["response"]; + }; + getParticipationStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/participation"]["response"]; + }; + getPullRequestReviewProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + getPunchCardStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/punch_card"]["response"]; + }; + getReadme: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/readme"]["response"]; + }; + getReadmeInDirectory: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/readme/{dir}"]["response"]; + }; + getRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + getReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + getReleaseByTag: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/tags/{tag}"]["response"]; + }; + getStatusChecksProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + getTeamsWithAccessToProtectedBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + getTopPaths: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/popular/paths"]["response"]; + }; + getTopReferrers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/popular/referrers"]["response"]; + }; + getUsersWithAccessToProtectedBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + getViews: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/views"]["response"]; + }; + getWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + getWebhookConfigForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"]["response"]; + }; + listBranches: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches"]["response"]; + }; + listBranchesForHeadCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"]["response"]; + }; + listCollaborators: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["response"]; + }; + listCommentsForCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + listCommitCommentsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/comments"]["response"]; + }; + listCommitStatusesForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits"]["response"]; + }; + listContributors: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/contributors"]["response"]; + }; + listDeployKeys: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/keys"]["response"]; + }; + listDeploymentStatuses: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + listDeployments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/repos"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/repos"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/repos"]["response"]; + }; + listForks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/forks"]["response"]; + }; + listInvitations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/invitations"]["response"]; + }; + listInvitationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/repository_invitations"]["response"]; + }; + listLanguages: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/languages"]["response"]; + }; + listPagesBuilds: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + listPublic: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repositories"]["response"]; + }; + listPullRequestsAssociatedWithCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["response"]; + }; + listReleaseAssets: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["response"]; + }; + listReleases: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]; + }; + listTags: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/tags"]["response"]; + }; + listTeams: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/teams"]["response"]; + }; + listWebhooks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/hooks"]["response"]; + }; + merge: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/merges"]["response"]; + }; + pingWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"]["response"]; + }; + removeAppAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + removeCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + removeStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + removeStatusCheckProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + removeTeamAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + removeUserAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + renameBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/rename"]["response"]; + }; + replaceAllTopics: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/topics"]["response"]; + }; + requestPagesBuild: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + setAdminBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + setAppAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + setStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + setTeamAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + setUserAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + testPushWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"]["response"]; + }; + transfer: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/transfer"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}"]["response"]; + }; + updateBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + updateCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + updateInformationAboutPagesSite: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pages"]["response"]; + }; + updateInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"]["response"]; + }; + updatePullRequestReviewProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + updateRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + updateReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + updateStatusCheckPotection: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + updateStatusCheckProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + updateWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + updateWebhookConfigForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"]["response"]; + }; + uploadReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}"]["response"]; + }; + }; + search: { + code: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/code"]["response"]; + }; + commits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/commits"]["response"]; + }; + issuesAndPullRequests: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/issues"]["response"]; + }; + labels: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/labels"]["response"]; + }; + repos: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/repositories"]["response"]; + }; + topics: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/topics"]["response"]; + }; + users: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/users"]["response"]; + }; + }; + secretScanning: { + getAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["response"]; + }; + listAlertsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["response"]; + }; + updateAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["response"]; + }; + }; + teams: { + addOrUpdateMembershipForUserInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + addOrUpdateProjectPermissionsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + addOrUpdateRepoPermissionsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + checkPermissionsForProjectInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + checkPermissionsForRepoInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams"]["response"]; + }; + createDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + createDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + deleteDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + deleteDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + deleteInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}"]["response"]; + }; + getByName: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}"]["response"]; + }; + getDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + getDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + getMembershipForUserInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams"]["response"]; + }; + listChildInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["response"]; + }; + listDiscussionCommentsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + listDiscussionsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/teams"]["response"]; + }; + listMembersInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["response"]; + }; + listPendingInvitationsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["response"]; + }; + listProjectsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["response"]; + }; + listReposInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["response"]; + }; + removeMembershipForUserInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + removeProjectInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + removeRepoInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + updateDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + updateDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + updateInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}"]["response"]; + }; + }; + users: { + addEmailForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/emails"]["response"]; + }; + block: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/blocks/{username}"]["response"]; + }; + checkBlocked: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/blocks/{username}"]["response"]; + }; + checkFollowingForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/following/{target_user}"]["response"]; + }; + checkPersonIsFollowedByAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/following/{username}"]["response"]; + }; + createGpgKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/gpg_keys"]["response"]; + }; + createPublicSshKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/keys"]["response"]; + }; + deleteEmailForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/emails"]["response"]; + }; + deleteGpgKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + deletePublicSshKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/keys/{key_id}"]["response"]; + }; + follow: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/following/{username}"]["response"]; + }; + getAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user"]["response"]; + }; + getByUsername: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}"]["response"]; + }; + getContextForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/hovercard"]["response"]; + }; + getGpgKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + getPublicSshKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/keys/{key_id}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users"]["response"]; + }; + listBlockedByAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/blocks"]["response"]; + }; + listEmailsForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/emails"]["response"]; + }; + listFollowedByAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/following"]["response"]; + }; + listFollowersForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/followers"]["response"]; + }; + listFollowersForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/followers"]["response"]; + }; + listFollowingForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/following"]["response"]; + }; + listGpgKeysForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/gpg_keys"]["response"]; + }; + listGpgKeysForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/gpg_keys"]["response"]; + }; + listPublicEmailsForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/public_emails"]["response"]; + }; + listPublicKeysForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/keys"]["response"]; + }; + listPublicSshKeysForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/keys"]["response"]; + }; + setPrimaryEmailVisibilityForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user/email/visibility"]["response"]; + }; + unblock: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/blocks/{username}"]["response"]; + }; + unfollow: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/following/{username}"]["response"]; + }; + updateAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user"]["response"]; + }; + }; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts new file mode 100644 index 0000000..beef376 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts @@ -0,0 +1,7 @@ +import { Octokit } from "@octokit/core"; +export { RestEndpointMethodTypes } from "./generated/parameters-and-response-types"; +import { Api } from "./types"; +export declare function restEndpointMethods(octokit: Octokit): Api; +export declare namespace restEndpointMethods { + var VERSION: string; +} diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts new file mode 100644 index 0000000..5a0caa5 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts @@ -0,0 +1,18 @@ +import { Route, RequestParameters } from "@octokit/types"; +import { RestEndpointMethods } from "./generated/method-types"; +export declare type Api = RestEndpointMethods & { + rest: RestEndpointMethods; +}; +export declare type EndpointDecorations = { + mapToData?: string; + deprecated?: string; + renamed?: [string, string]; + renamedParameters?: { + [name: string]: string; + }; +}; +export declare type EndpointsDefaultsAndDecorations = { + [scope: string]: { + [methodName: string]: [Route, RequestParameters?, EndpointDecorations?]; + }; +}; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts new file mode 100644 index 0000000..3608bee --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "4.15.1"; diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js new file mode 100644 index 0000000..d802be8 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js @@ -0,0 +1,1479 @@ +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel", + ], + createOrUpdateEnvironmentSecret: [ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token", + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token", + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token", + ], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}", + ], + deleteEnvironmentSecret: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}", + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs", + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", + ], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions", + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getEnvironmentPublicKey: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key", + ], + getEnvironmentSecret: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + ], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions", + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions", + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getPendingDeploymentsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", + ], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] }, + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getReviewsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals", + ], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing", + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + ], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads", + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories", + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + reviewPendingDeploymentsForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions", + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions", + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions", + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories", + ], + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription", + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription", + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}", + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public", + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications", + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription", + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"], + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + ], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: [ + "POST /content_references/{content_reference_id}/attachments", + { mediaType: { previews: ["corsair"] } }, + ], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens", + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}", + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}", + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories", + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed", + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended", + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"], + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions", + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages", + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage", + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage", + ], + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences", + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"], + }, + codeScanning: { + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}", + ], + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } }, + ], + getAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", + ], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + ], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"], + }, + codesOfConduct: { + getAllCodesOfConduct: [ + "GET /codes_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getConductCode: [ + "GET /codes_of_conduct/{key}", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getForRepo: [ + "GET /repos/{owner}/{repo}/community/code_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + }, + emojis: { get: ["GET /emojis"] }, + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: [ + "DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + enableSelectedOrganizationGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + getAllowedActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + getGithubActionsPermissionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions", + ], + listSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/organizations", + ], + setAllowedActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions", + ], + setSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations", + ], + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"], + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"], + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"], + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: [ + "GET /user/interaction-limits", + {}, + { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] }, + ], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits", + ], + removeRestrictionsForYourPublicRepos: [ + "DELETE /user/interaction-limits", + {}, + { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] }, + ], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: [ + "PUT /user/interaction-limits", + {}, + { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] }, + ], + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments", + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}", + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + { mediaType: { previews: ["mockingbird"] } }, + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"], + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } }, + ], + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"], + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + getStatusForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForAuthenticatedUser: [ + "GET /user/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + updateImport: ["PATCH /repos/{owner}/{repo}/import"], + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}", + ], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}", + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}", + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}", + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}", + ], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"], + }, + packages: { + deletePackageForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}", + ], + deletePackageForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}", + ], + deletePackageVersionForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + deletePackageVersionForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + getAllPackageVersionsForAPackageOwnedByAnOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + {}, + { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] }, + ], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + {}, + { + renamed: [ + "packages", + "getAllPackageVersionsForPackageOwnedByAuthenticatedUser", + ], + }, + ], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + ], + getAllPackageVersionsForPackageOwnedByOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + ], + getAllPackageVersionsForPackageOwnedByUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions", + ], + getPackageForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}", + ], + getPackageForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}", + ], + getPackageForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}", + ], + getPackageVersionForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + getPackageVersionForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + getPackageVersionForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", + ], + restorePackageForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/restore{?token}", + ], + restorePackageForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}", + ], + restorePackageVersionForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", + ], + restorePackageVersionForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", + ], + }, + projects: { + addCollaborator: [ + "PUT /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + createCard: [ + "POST /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + createColumn: [ + "POST /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + createForAuthenticatedUser: [ + "POST /user/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForOrg: [ + "POST /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForRepo: [ + "POST /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + delete: [ + "DELETE /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteCard: [ + "DELETE /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteColumn: [ + "DELETE /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + get: [ + "GET /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getCard: [ + "GET /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getColumn: [ + "GET /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission", + { mediaType: { previews: ["inertia"] } }, + ], + listCards: [ + "GET /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + listCollaborators: [ + "GET /projects/{project_id}/collaborators", + { mediaType: { previews: ["inertia"] } }, + ], + listColumns: [ + "GET /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForRepo: [ + "GET /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForUser: [ + "GET /users/{username}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + moveCard: [ + "POST /projects/columns/cards/{card_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + moveColumn: [ + "POST /projects/columns/{column_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + update: [ + "PATCH /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateCard: [ + "PATCH /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateColumn: [ + "PATCH /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", + { mediaType: { previews: ["lydian"] } }, + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteLegacy: [ + "DELETE /reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + { + deprecated: "octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy", + }, + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateEnvironment: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}", + ], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: [ + "POST /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate", + { mediaType: { previews: ["baptiste"] } }, + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + deleteAnEnvironment: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}", + ], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection", + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}", + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + deletePagesSite: [ + "DELETE /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] }, + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + ], + getAllTopics: [ + "GET /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + ], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection", + ], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission", + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", + ], + getEnvironment: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}", + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", + { mediaType: { previews: ["groot"] } }, + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + { mediaType: { previews: ["groot"] } }, + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}", + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: [ + "PUT /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection", + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] }, + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" }, + ], + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { mediaType: { previews: ["cloak"] } }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics", { mediaType: { previews: ["mercy"] } }], + users: ["GET /search/users"], + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations", + ], + listProjectsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}", + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"], + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"], + }, +}; + +const VERSION = "4.15.1"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ method, url }, defaults); + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + const scopeMethods = newMethods[scope]; + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); + // There are currently no other decorations than `.mapToData` + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined, + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + if (!(alias in options)) { + options[alias] = options[name]; + } + delete options[name]; + } + } + return requestWithDefaults(options); + } + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} + +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return { + ...api, + rest: api, + }; +} +restEndpointMethods.VERSION = VERSION; + +export { restEndpointMethods }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map new file mode 100644 index 0000000..fea8b2a --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/generated/endpoints.js","../dist-src/version.js","../dist-src/endpoints-to-methods.js","../dist-src/index.js"],"sourcesContent":["const Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\",\n ],\n createOrUpdateEnvironmentSecret: [\n \"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\",\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\",\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\",\n ],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\",\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n ],\n deleteEnvironmentSecret: [\n \"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\",\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\",\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\",\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\",\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\",\n ],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\",\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\",\n ],\n getEnvironmentSecret: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\",\n ],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\",\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] },\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\",\n ],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\",\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\",\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\n \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\",\n ],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\",\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n reviewPendingDeploymentsForRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\",\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\",\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\",\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\",\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\",\n ],\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\",\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\",\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\",\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\",\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\",\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\",\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"],\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\n \"POST /content_references/{content_reference_id}/attachments\",\n { mediaType: { previews: [\"corsair\"] } },\n ],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\",\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\",\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\",\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\",\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\",\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\",\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"],\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\",\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\",\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\",\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\",\n ],\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\",\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n },\n codeScanning: {\n deleteAnalysis: [\n \"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\",\n ],\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } },\n ],\n getAnalysis: [\n \"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\",\n ],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\",\n ],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"],\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\n \"GET /codes_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getConductCode: [\n \"GET /codes_of_conduct/{key}\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getForRepo: [\n \"GET /repos/{owner}/{repo}/community/code_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n },\n emojis: { get: [\"GET /emojis\"] },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\n \"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n enableSelectedOrganizationGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n getAllowedActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n getGithubActionsPermissionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions\",\n ],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n setAllowedActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions\",\n ],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"],\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"],\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"],\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\n \"GET /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"] },\n ],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\",\n ],\n removeRestrictionsForYourPublicRepos: [\n \"DELETE /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"] },\n ],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\n \"PUT /user/interaction-limits\",\n {},\n { renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"] },\n ],\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\",\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n { mediaType: { previews: [\"mockingbird\"] } },\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\",\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"],\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } },\n ],\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"],\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getStatusForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForAuthenticatedUser: [\n \"GET /user/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"],\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\",\n ],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\",\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\",\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\",\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\",\n ],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"],\n },\n packages: {\n deletePackageForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}\",\n ],\n deletePackageForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n deletePackageVersionForAuthenticatedUser: [\n \"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n deletePackageVersionForOrg: [\n \"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n {},\n { renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"] },\n ],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n {},\n {\n renamed: [\n \"packages\",\n \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\",\n ],\n },\n ],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForPackageOwnedByOrg: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\",\n ],\n getAllPackageVersionsForPackageOwnedByUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions\",\n ],\n getPackageForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}\",\n ],\n getPackageForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}\",\n ],\n getPackageForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}\",\n ],\n getPackageVersionForAuthenticatedUser: [\n \"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForOrganization: [\n \"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n getPackageVersionForUser: [\n \"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\",\n ],\n restorePackageForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/restore{?token}\",\n ],\n restorePackageForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\",\n ],\n restorePackageVersionForAuthenticatedUser: [\n \"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n restorePackageVersionForOrg: [\n \"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\",\n ],\n },\n projects: {\n addCollaborator: [\n \"PUT /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createCard: [\n \"POST /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createColumn: [\n \"POST /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForAuthenticatedUser: [\n \"POST /user/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForOrg: [\n \"POST /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForRepo: [\n \"POST /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n delete: [\n \"DELETE /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteCard: [\n \"DELETE /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteColumn: [\n \"DELETE /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n get: [\n \"GET /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getCard: [\n \"GET /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getColumn: [\n \"GET /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCards: [\n \"GET /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCollaborators: [\n \"GET /projects/{project_id}/collaborators\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listColumns: [\n \"GET /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForRepo: [\n \"GET /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForUser: [\n \"GET /users/{username}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveCard: [\n \"POST /projects/columns/cards/{card_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveColumn: [\n \"POST /projects/columns/{column_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n update: [\n \"PATCH /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateCard: [\n \"PATCH /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateColumn: [\n \"PATCH /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\",\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\",\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\",\n { mediaType: { previews: [\"lydian\"] } },\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteLegacy: [\n \"DELETE /reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n {\n deprecated: \"octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy\",\n },\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\n \"PUT /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\n \"POST /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\",\n { mediaType: { previews: [\"baptiste\"] } },\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n deleteAnEnvironment: [\n \"DELETE /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\",\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n deletePagesSite: [\n \"DELETE /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] },\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n ],\n getAllTopics: [\n \"GET /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n ],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\",\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\",\n ],\n getEnvironment: [\n \"GET /repos/{owner}/{repo}/environments/{environment_name}\",\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\",\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\n \"PUT /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] },\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" },\n ],\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", { mediaType: { previews: [\"cloak\"] } }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", { mediaType: { previews: [\"mercy\"] } }],\n users: [\"GET /search/users\"],\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n ],\n listProjectsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"],\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"],\n },\n};\nexport default Endpoints;\n","export const VERSION = \"4.15.1\";\n","export function endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({ method, url }, defaults);\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n const scopeMethods = newMethods[scope];\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args);\n // There are currently no other decorations than `.mapToData`\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined,\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n delete options[name];\n }\n }\n return requestWithDefaults(options);\n }\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n","import ENDPOINTS from \"./generated/endpoints\";\nimport { VERSION } from \"./version\";\nimport { endpointsToMethods } from \"./endpoints-to-methods\";\nexport function restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, ENDPOINTS);\n return {\n ...api,\n rest: api,\n };\n}\nrestEndpointMethods.VERSION = VERSION;\n"],"names":["ENDPOINTS"],"mappings":"AAAA,MAAM,SAAS,GAAG;AAClB,IAAI,OAAO,EAAE;AACb,QAAQ,0BAA0B,EAAE;AACpC,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,yFAAyF;AACrG,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,+CAA+C,CAAC;AAClF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,+DAA+D;AAC3E,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,+CAA+C,CAAC;AAClF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,uEAAuE;AACnF,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,8DAA8D;AAC1E,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,4FAA4F;AACxG,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,kDAAkD,CAAC;AAC7E,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,gDAAgD;AAC5D,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,oDAAoD,CAAC;AACjF,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,kDAAkD,EAAE;AAC5D,YAAY,qEAAqE;AACjF,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,iDAAiD,EAAE;AAC3D,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,2DAA2D,CAAC;AAClF,QAAQ,uBAAuB,EAAE;AACjC,YAAY,sFAAsF;AAClG,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,yFAAyF;AACrG,SAAS;AACT,QAAQ,uCAAuC,EAAE;AACjD,YAAY,qCAAqC;AACjD,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,+CAA+C;AAC3D,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,iDAAiD,CAAC;AACjF,QAAQ,eAAe,EAAE,CAAC,4CAA4C,CAAC;AACvE,QAAQ,YAAY,EAAE,CAAC,+CAA+C,CAAC;AACvE,QAAQ,2BAA2B,EAAE;AACrC,YAAY,qEAAqE;AACjF,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,+CAA+C;AAC3D,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,uCAAuC,CAAC,EAAE;AAC7E,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,sDAAsD,CAAC;AAClF,QAAQ,aAAa,EAAE,CAAC,yDAAyD,CAAC;AAClF,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,yBAAyB,EAAE,CAAC,6CAA6C,CAAC;AAClF,QAAQ,0BAA0B,EAAE;AACpC,YAAY,uDAAuD;AACnE,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,2DAA2D,CAAC;AAClF,QAAQ,cAAc,EAAE,CAAC,iDAAiD,CAAC;AAC3E,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,6CAA6C,CAAC;AAC7E,QAAQ,sBAAsB,EAAE;AAChC,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,iCAAiC,CAAC;AAC3D,QAAQ,eAAe,EAAE,CAAC,2CAA2C,CAAC;AACtE,QAAQ,iBAAiB,EAAE,CAAC,6CAA6C,CAAC;AAC1E,QAAQ,4BAA4B,EAAE,CAAC,2CAA2C,CAAC;AACnF,QAAQ,6BAA6B,EAAE;AACvC,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,wDAAwD,EAAE;AAClE,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,2BAA2B,EAAE,CAAC,iCAAiC,CAAC;AACxE,QAAQ,4BAA4B,EAAE,CAAC,2CAA2C,CAAC;AACnF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,wCAAwC,CAAC;AAC3E,QAAQ,aAAa,EAAE,CAAC,wDAAwD,CAAC;AACjF,QAAQ,+BAA+B,EAAE;AACzC,YAAY,+EAA+E;AAC3F,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,sEAAsE;AAClF,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,uCAAuC,EAAE;AACjD,YAAY,qCAAqC;AACjD,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,+CAA+C;AAC3D,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,uDAAuD,EAAE;AACjE,YAAY,kDAAkD;AAC9D,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,qCAAqC,EAAE,CAAC,kCAAkC,CAAC;AACnF,QAAQ,sBAAsB,EAAE,CAAC,2CAA2C,CAAC;AAC7E,QAAQ,wBAAwB,EAAE;AAClC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,QAAQ,EAAE,CAAC,YAAY,CAAC;AAChC,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,SAAS,EAAE,CAAC,wCAAwC,CAAC;AAC7D,QAAQ,yCAAyC,EAAE;AACnD,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,8BAA8B,EAAE,CAAC,8BAA8B,CAAC;AACxE,QAAQ,qCAAqC,EAAE,CAAC,oBAAoB,CAAC;AACrE,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,yCAAyC;AACrD,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,aAAa,CAAC;AACzC,QAAQ,8BAA8B,EAAE,CAAC,qCAAqC,CAAC;AAC/E,QAAQ,uBAAuB,EAAE,CAAC,qCAAqC,CAAC;AACxE,QAAQ,mBAAmB,EAAE,CAAC,wBAAwB,CAAC;AACvD,QAAQ,yBAAyB,EAAE,CAAC,uCAAuC,CAAC;AAC5E,QAAQ,+BAA+B,EAAE;AACzC,YAAY,8CAA8C;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,kCAAkC,CAAC;AAC5D,QAAQ,yCAAyC,EAAE;AACnD,YAAY,yCAAyC;AACrD,SAAS;AACT,QAAQ,mCAAmC,EAAE,CAAC,mBAAmB,CAAC;AAClE,QAAQ,sBAAsB,EAAE,CAAC,+BAA+B,CAAC;AACjE,QAAQ,sBAAsB,EAAE,CAAC,qCAAqC,CAAC;AACvE,QAAQ,qBAAqB,EAAE,CAAC,sCAAsC,CAAC;AACvE,QAAQ,oCAAoC,EAAE,CAAC,yBAAyB,CAAC;AACzE,QAAQ,mBAAmB,EAAE,CAAC,uCAAuC,CAAC;AACtE,QAAQ,uBAAuB,EAAE,CAAC,oBAAoB,CAAC;AACvD,QAAQ,2BAA2B,EAAE,CAAC,yCAAyC,CAAC;AAChF,QAAQ,gBAAgB,EAAE,CAAC,0CAA0C,CAAC;AACtE,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,4BAA4B,EAAE,CAAC,kCAAkC,CAAC;AAC1E,QAAQ,8BAA8B,EAAE,CAAC,qCAAqC,CAAC;AAC/E,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,wEAAwE;AACpF,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,sCAAsC,CAAC;AAC5D,QAAQ,uBAAuB,EAAE;AACjC,YAAY,6DAA6D;AACzE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,kBAAkB,EAAE,CAAC,wCAAwC,CAAC;AACtE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,kBAAkB,EAAE,CAAC,6CAA6C,CAAC;AAC3E,QAAQ,WAAW,EAAE,CAAC,wCAAwC,CAAC;AAC/D,QAAQ,gBAAgB,EAAE,CAAC,UAAU,CAAC;AACtC,QAAQ,SAAS,EAAE,CAAC,sBAAsB,CAAC;AAC3C,QAAQ,eAAe,EAAE,CAAC,0CAA0C,CAAC;AACrE,QAAQ,kBAAkB,EAAE,CAAC,8BAA8B,CAAC;AAC5D,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,gDAAgD;AAC5D,SAAS;AACT,QAAQ,oCAAoC,EAAE;AAC9C,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,oCAAoC,CAAC;AACnE,QAAQ,sBAAsB,EAAE,CAAC,sBAAsB,CAAC;AACxD,QAAQ,mBAAmB,EAAE,CAAC,mDAAmD,CAAC;AAClF,QAAQ,0BAA0B,EAAE;AACpC,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,yCAAyC,EAAE;AACnD,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,wBAAwB,CAAC;AACrD,QAAQ,qCAAqC,EAAE,CAAC,yBAAyB,CAAC;AAC1E,QAAQ,SAAS,EAAE,CAAC,gCAAgC,CAAC;AACrD,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,iCAAiC,EAAE,CAAC,gCAAgC,CAAC;AAC7E,QAAQ,qCAAqC,EAAE,CAAC,iCAAiC,CAAC;AAClF,QAAQ,4CAA4C,EAAE;AACtD,YAAY,yCAAyC;AACrD,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,uCAAuC,CAAC;AAC7D,QAAQ,6BAA6B,EAAE,CAAC,4BAA4B,CAAC;AACrE,QAAQ,UAAU,EAAE,CAAC,6CAA6C,CAAC;AACnE,QAAQ,mBAAmB,EAAE,CAAC,oDAAoD,CAAC;AACnF,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,uDAAuD;AACnE,SAAS;AACT,QAAQ,yBAAyB,EAAE,CAAC,wBAAwB,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,0BAA0B,EAAE,CAAC,0CAA0C,CAAC;AAChF,QAAQ,2BAA2B,EAAE;AACrC,YAAY,gDAAgD;AAC5D,SAAS;AACT,QAAQ,2BAA2B,EAAE,CAAC,2CAA2C,CAAC;AAClF,QAAQ,4BAA4B,EAAE;AACtC,YAAY,iDAAiD;AAC7D,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,iDAAiD;AAC7D,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,uDAAuD;AACnE,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,MAAM,EAAE,CAAC,uCAAuC,CAAC;AACzD,QAAQ,WAAW,EAAE,CAAC,yCAAyC,CAAC;AAChE,QAAQ,GAAG,EAAE,CAAC,qDAAqD,CAAC;AACpE,QAAQ,QAAQ,EAAE,CAAC,yDAAyD,CAAC;AAC7E,QAAQ,eAAe,EAAE;AACzB,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,oDAAoD,CAAC;AAC1E,QAAQ,YAAY,EAAE;AACtB,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,sDAAsD,CAAC;AAClF,QAAQ,cAAc,EAAE;AACxB,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,MAAM,EAAE,CAAC,uDAAuD,CAAC;AACzE,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,cAAc,EAAE;AACxB,YAAY,oFAAoF;AAChG,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,+DAA+D;AAC3E,YAAY,EAAE;AACd,YAAY,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE;AAC/D,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,QAAQ,EAAE,CAAC,2DAA2D,CAAC;AAC/E,QAAQ,iBAAiB,EAAE,CAAC,gDAAgD,CAAC;AAC7E,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,yEAAyE;AACrF,SAAS;AACT,QAAQ,kBAAkB,EAAE,CAAC,kDAAkD,CAAC;AAChF,QAAQ,WAAW,EAAE;AACrB,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,iDAAiD,CAAC;AACxE,KAAK;AACL,IAAI,cAAc,EAAE;AACpB,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,uBAAuB;AACnC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,6BAA6B;AACzC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,qDAAqD;AACjE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE;AACpC,IAAI,eAAe,EAAE;AACrB,QAAQ,kDAAkD,EAAE;AAC5D,YAAY,6EAA6E;AACzF,SAAS;AACT,QAAQ,iDAAiD,EAAE;AAC3D,YAAY,0EAA0E;AACtF,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,mDAAmD;AAC/D,SAAS;AACT,QAAQ,uDAAuD,EAAE;AACjE,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,mDAAmD;AAC/D,SAAS;AACT,QAAQ,sDAAsD,EAAE;AAChE,YAAY,iEAAiE;AAC7E,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,cAAc,EAAE,CAAC,2BAA2B,CAAC;AACrD,QAAQ,MAAM,EAAE,CAAC,aAAa,CAAC;AAC/B,QAAQ,aAAa,EAAE,CAAC,gCAAgC,CAAC;AACzD,QAAQ,MAAM,EAAE,CAAC,yBAAyB,CAAC;AAC3C,QAAQ,aAAa,EAAE,CAAC,+CAA+C,CAAC;AACxE,QAAQ,IAAI,EAAE,CAAC,6BAA6B,CAAC;AAC7C,QAAQ,GAAG,EAAE,CAAC,sBAAsB,CAAC;AACrC,QAAQ,UAAU,EAAE,CAAC,4CAA4C,CAAC;AAClE,QAAQ,WAAW,EAAE,CAAC,4BAA4B,CAAC;AACnD,QAAQ,IAAI,EAAE,CAAC,YAAY,CAAC;AAC5B,QAAQ,YAAY,EAAE,CAAC,+BAA+B,CAAC;AACvD,QAAQ,WAAW,EAAE,CAAC,8BAA8B,CAAC;AACrD,QAAQ,WAAW,EAAE,CAAC,6BAA6B,CAAC;AACpD,QAAQ,SAAS,EAAE,CAAC,4BAA4B,CAAC;AACjD,QAAQ,UAAU,EAAE,CAAC,mBAAmB,CAAC;AACzC,QAAQ,WAAW,EAAE,CAAC,oBAAoB,CAAC;AAC3C,QAAQ,IAAI,EAAE,CAAC,2BAA2B,CAAC;AAC3C,QAAQ,MAAM,EAAE,CAAC,8BAA8B,CAAC;AAChD,QAAQ,MAAM,EAAE,CAAC,wBAAwB,CAAC;AAC1C,QAAQ,aAAa,EAAE,CAAC,8CAA8C,CAAC;AACvE,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,UAAU,EAAE,CAAC,sCAAsC,CAAC;AAC5D,QAAQ,YAAY,EAAE,CAAC,wCAAwC,CAAC;AAChE,QAAQ,SAAS,EAAE,CAAC,qCAAqC,CAAC;AAC1D,QAAQ,SAAS,EAAE,CAAC,qCAAqC,CAAC;AAC1D,QAAQ,UAAU,EAAE,CAAC,sCAAsC,CAAC;AAC5D,QAAQ,SAAS,EAAE,CAAC,6CAA6C,CAAC;AAClE,QAAQ,OAAO,EAAE,CAAC,gDAAgD,CAAC;AACnE,QAAQ,SAAS,EAAE,CAAC,oDAAoD,CAAC;AACzE,QAAQ,MAAM,EAAE,CAAC,yCAAyC,CAAC;AAC3D,QAAQ,MAAM,EAAE,CAAC,8CAA8C,CAAC;AAChE,QAAQ,OAAO,EAAE,CAAC,gDAAgD,CAAC;AACnE,QAAQ,gBAAgB,EAAE,CAAC,mDAAmD,CAAC;AAC/E,QAAQ,SAAS,EAAE,CAAC,4CAA4C,CAAC;AACjE,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,eAAe,EAAE,CAAC,0BAA0B,CAAC;AACrD,QAAQ,WAAW,EAAE,CAAC,iCAAiC,CAAC;AACxD,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,mCAAmC,EAAE,CAAC,8BAA8B,CAAC;AAC7E,QAAQ,qBAAqB,EAAE,CAAC,oCAAoC,CAAC;AACrE,QAAQ,sBAAsB,EAAE,CAAC,8CAA8C,CAAC;AAChF,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,8BAA8B;AAC1C,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,qCAAqC,CAAC,EAAE;AAChF,SAAS;AACT,QAAQ,sCAAsC,EAAE,CAAC,iCAAiC,CAAC;AACnF,QAAQ,wBAAwB,EAAE,CAAC,uCAAuC,CAAC;AAC3E,QAAQ,yBAAyB,EAAE;AACnC,YAAY,iDAAiD;AAC7D,SAAS;AACT,QAAQ,oCAAoC,EAAE;AAC9C,YAAY,iCAAiC;AAC7C,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,wCAAwC,CAAC,EAAE;AACnF,SAAS;AACT,QAAQ,mCAAmC,EAAE,CAAC,8BAA8B,CAAC;AAC7E,QAAQ,qBAAqB,EAAE,CAAC,oCAAoC,CAAC;AACrE,QAAQ,sBAAsB,EAAE,CAAC,8CAA8C,CAAC;AAChF,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,8BAA8B;AAC1C,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,qCAAqC,CAAC,EAAE;AAChF,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,YAAY,EAAE;AACtB,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,yDAAyD,CAAC;AAC9E,QAAQ,sBAAsB,EAAE,CAAC,gDAAgD,CAAC;AAClF,QAAQ,MAAM,EAAE,CAAC,mCAAmC,CAAC;AACrD,QAAQ,aAAa,EAAE;AACvB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,mCAAmC,CAAC;AAC1D,QAAQ,eAAe,EAAE,CAAC,uCAAuC,CAAC;AAClE,QAAQ,aAAa,EAAE;AACvB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,4CAA4C,CAAC;AACnE,QAAQ,eAAe,EAAE;AACzB,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,iDAAiD,CAAC;AAChE,QAAQ,UAAU,EAAE,CAAC,wDAAwD,CAAC;AAC9E,QAAQ,QAAQ,EAAE,CAAC,oDAAoD,CAAC;AACxE,QAAQ,QAAQ,EAAE,CAAC,yCAAyC,CAAC;AAC7D,QAAQ,YAAY,EAAE,CAAC,yDAAyD,CAAC;AACjF,QAAQ,IAAI,EAAE,CAAC,aAAa,CAAC;AAC7B,QAAQ,aAAa,EAAE,CAAC,qCAAqC,CAAC;AAC9D,QAAQ,YAAY,EAAE,CAAC,0DAA0D,CAAC;AAClF,QAAQ,mBAAmB,EAAE,CAAC,2CAA2C,CAAC;AAC1E,QAAQ,UAAU,EAAE,CAAC,wDAAwD,CAAC;AAC9E,QAAQ,iBAAiB,EAAE,CAAC,yCAAyC,CAAC;AACtE,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,0DAA0D;AACtE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;AACxD,SAAS;AACT,QAAQ,wBAAwB,EAAE,CAAC,kBAAkB,CAAC;AACtD,QAAQ,UAAU,EAAE,CAAC,wBAAwB,CAAC;AAC9C,QAAQ,WAAW,EAAE,CAAC,kCAAkC,CAAC;AACzD,QAAQ,sBAAsB,EAAE;AAChC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,kCAAkC,CAAC;AAC/D,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,sCAAsC,CAAC;AAChE,QAAQ,IAAI,EAAE,CAAC,sDAAsD,CAAC;AACtE,QAAQ,eAAe,EAAE;AACzB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,8DAA8D;AAC1E,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,wDAAwD,CAAC;AAC7E,QAAQ,MAAM,EAAE,CAAC,yDAAyD,CAAC;AAC3E,QAAQ,MAAM,EAAE,CAAC,mDAAmD,CAAC;AACrE,QAAQ,aAAa,EAAE,CAAC,0DAA0D,CAAC;AACnF,QAAQ,WAAW,EAAE,CAAC,2CAA2C,CAAC;AAClE,QAAQ,eAAe,EAAE;AACzB,YAAY,2DAA2D;AACvE,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,GAAG,EAAE,CAAC,yBAAyB,CAAC;AACxC,QAAQ,kBAAkB,EAAE,CAAC,eAAe,CAAC;AAC7C,QAAQ,UAAU,EAAE,CAAC,mCAAmC,CAAC;AACzD,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,MAAM,EAAE,CAAC,gBAAgB,CAAC;AAClC,QAAQ,SAAS,EAAE;AACnB,YAAY,oBAAoB;AAChC,YAAY,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE;AACxE,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC;AAC1B,QAAQ,UAAU,EAAE,CAAC,cAAc,CAAC;AACpC,QAAQ,MAAM,EAAE,CAAC,UAAU,CAAC;AAC5B,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,YAAY,EAAE,CAAC,qCAAqC,CAAC;AAC7D,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,gDAAgD;AAC5D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,sDAAsD;AAClE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,mDAAmD;AAC/D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,6CAA6C;AACzD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,0CAA0C,CAAC;AACtE,QAAQ,eAAe,EAAE,CAAC,kCAAkC,CAAC;AAC7D,QAAQ,aAAa,EAAE,CAAC,8CAA8C,CAAC;AACvE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,2CAA2C;AACvD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,wBAAwB,EAAE;AAClC,YAAY,sBAAsB;AAClC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,4BAA4B;AACxC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,wDAAwD;AACpE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,kDAAkD;AAC9D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,wDAAwD,CAAC;AACnF,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,yBAAyB,EAAE,CAAC,uBAAuB,CAAC;AAC5D,QAAQ,WAAW,EAAE,CAAC,6BAA6B,CAAC;AACpD,QAAQ,WAAW,EAAE,CAAC,kCAAkC,CAAC;AACzD,QAAQ,8BAA8B,EAAE;AACxC,YAAY,+DAA+D;AAC3E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,qEAAqE;AACjF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,oCAAoC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,SAAS,EAAE,CAAC,mCAAmC,CAAC;AACxD,QAAQ,gBAAgB,EAAE,CAAC,gDAAgD,CAAC;AAC5E,QAAQ,gBAAgB,EAAE,CAAC,mCAAmC,CAAC;AAC/D,QAAQ,sBAAsB,EAAE,CAAC,oCAAoC,CAAC;AACtE,QAAQ,4BAA4B,EAAE,CAAC,2CAA2C,CAAC;AACnF,QAAQ,kCAAkC,EAAE;AAC5C,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,8BAA8B,CAAC;AAC1D,QAAQ,aAAa,EAAE,CAAC,wBAAwB,CAAC;AACjD,QAAQ,aAAa,EAAE,CAAC,oCAAoC,CAAC;AAC7D,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC;AAChC,QAAQ,iCAAiC,EAAE,CAAC,kCAAkC,CAAC;AAC/E,QAAQ,oBAAoB,EAAE,CAAC,wCAAwC,CAAC;AACxE,QAAQ,UAAU,EAAE,CAAC,iCAAiC,CAAC;AACvD,QAAQ,sBAAsB,EAAE,CAAC,wCAAwC,CAAC;AAC1E,QAAQ,IAAI,EAAE,CAAC,oBAAoB,CAAC;AACpC,QAAQ,oBAAoB,EAAE,CAAC,+BAA+B,CAAC;AAC/D,QAAQ,gBAAgB,EAAE,CAAC,wBAAwB,CAAC;AACpD,QAAQ,qBAAqB,EAAE,CAAC,oCAAoC,CAAC;AACrE,QAAQ,wBAAwB,EAAE,CAAC,gBAAgB,CAAC;AACpD,QAAQ,WAAW,EAAE,CAAC,4BAA4B,CAAC;AACnD,QAAQ,mBAAmB,EAAE,CAAC,mDAAmD,CAAC;AAClF,QAAQ,WAAW,EAAE,CAAC,yBAAyB,CAAC;AAChD,QAAQ,mCAAmC,EAAE,CAAC,4BAA4B,CAAC;AAC3E,QAAQ,wBAAwB,EAAE,CAAC,uCAAuC,CAAC;AAC3E,QAAQ,sBAAsB,EAAE,CAAC,6BAA6B,CAAC;AAC/D,QAAQ,iBAAiB,EAAE,CAAC,gCAAgC,CAAC;AAC7D,QAAQ,YAAY,EAAE,CAAC,uBAAuB,CAAC;AAC/C,QAAQ,WAAW,EAAE,CAAC,wCAAwC,CAAC;AAC/D,QAAQ,YAAY,EAAE,CAAC,uCAAuC,CAAC;AAC/D,QAAQ,uBAAuB,EAAE,CAAC,2CAA2C,CAAC;AAC9E,QAAQ,yBAAyB,EAAE;AACnC,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,0CAA0C,EAAE;AACpD,YAAY,8CAA8C;AAC1D,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,wCAAwC,CAAC;AACxE,QAAQ,uCAAuC,EAAE;AACjD,YAAY,2CAA2C;AACvD,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,sCAAsC,CAAC;AAC7D,QAAQ,MAAM,EAAE,CAAC,mBAAmB,CAAC;AACrC,QAAQ,oCAAoC,EAAE;AAC9C,YAAY,oCAAoC;AAChD,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,mCAAmC,CAAC;AAC5D,QAAQ,yBAAyB,EAAE,CAAC,0CAA0C,CAAC;AAC/E,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,wCAAwC,EAAE;AAClD,YAAY,mFAAmF;AAC/F,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,yFAAyF;AACrG,SAAS;AACT,QAAQ,4CAA4C,EAAE;AACtD,YAAY,iEAAiE;AAC7E,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,2CAA2C,CAAC,EAAE;AAClF,SAAS;AACT,QAAQ,2DAA2D,EAAE;AACrE,YAAY,2DAA2D;AACvE,YAAY,EAAE;AACd,YAAY;AACZ,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,UAAU;AAC9B,oBAAoB,yDAAyD;AAC7E,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,uDAAuD,EAAE;AACjE,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,yCAAyC,EAAE;AACnD,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,0CAA0C,EAAE;AACpD,YAAY,uEAAuE;AACnF,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,8DAA8D;AAC1E,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,gFAAgF;AAC5F,SAAS;AACT,QAAQ,gCAAgC,EAAE;AAC1C,YAAY,sFAAsF;AAClG,SAAS;AACT,QAAQ,wBAAwB,EAAE;AAClC,YAAY,4FAA4F;AACxG,SAAS;AACT,QAAQ,kCAAkC,EAAE;AAC5C,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,yEAAyE;AACrF,SAAS;AACT,QAAQ,yCAAyC,EAAE;AACnD,YAAY,yFAAyF;AACrG,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,+FAA+F;AAC3G,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,eAAe,EAAE;AACzB,YAAY,qDAAqD;AACjE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,qBAAqB;AACjC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,2BAA2B;AACvC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,aAAa,EAAE;AACvB,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,+BAA+B;AAC3C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,sCAAsC;AAClD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,GAAG,EAAE;AACb,YAAY,4BAA4B;AACxC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,uCAAuC;AACnD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,YAAY,mCAAmC;AAC/C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,gEAAgE;AAC5E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,YAAY,yCAAyC;AACrD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,oCAAoC;AAChD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0BAA0B;AACtC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,oCAAoC;AAChD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,gCAAgC;AAC5C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,8CAA8C;AAC1D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,wDAAwD;AACpE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,8BAA8B;AAC1C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,yCAAyC;AACrD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,aAAa,EAAE,CAAC,qDAAqD,CAAC;AAC9E,QAAQ,MAAM,EAAE,CAAC,kCAAkC,CAAC;AACpD,QAAQ,2BAA2B,EAAE;AACrC,YAAY,8EAA8E;AAC1F,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,wDAAwD,CAAC;AAChF,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,sEAAsE;AAClF,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,aAAa,EAAE;AACvB,YAAY,8EAA8E;AAC1F,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,+CAA+C,CAAC;AAC9D,QAAQ,SAAS,EAAE;AACnB,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,uDAAuD,CAAC;AACnF,QAAQ,IAAI,EAAE,CAAC,iCAAiC,CAAC;AACjD,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,uDAAuD,CAAC;AAC9E,QAAQ,SAAS,EAAE,CAAC,qDAAqD,CAAC;AAC1E,QAAQ,sBAAsB,EAAE;AAChC,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,yBAAyB,EAAE,CAAC,0CAA0C,CAAC;AAC/E,QAAQ,WAAW,EAAE,CAAC,uDAAuD,CAAC;AAC9E,QAAQ,KAAK,EAAE,CAAC,qDAAqD,CAAC;AACtE,QAAQ,wBAAwB,EAAE;AAClC,YAAY,sEAAsE;AAClF,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,MAAM,EAAE,CAAC,iDAAiD,CAAC;AACnE,QAAQ,YAAY,EAAE;AACtB,YAAY,6DAA6D;AACzE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,yDAAyD;AACrE,SAAS;AACT,KAAK;AACL,IAAI,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE;AAC3C,IAAI,SAAS,EAAE;AACf,QAAQ,sBAAsB,EAAE;AAChC,YAAY,4DAA4D;AACxE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,4DAA4D;AACxE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,mEAAmE;AAC/E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,kEAAkE;AAC9E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,mCAAmC,EAAE;AAC7C,YAAY,wGAAwG;AACpH,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,8EAA8E;AAC1F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,4EAA4E;AACxF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,4EAA4E;AACxF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,mFAAmF;AAC/F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,kFAAkF;AAC9F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,8FAA8F;AAC1G,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,wHAAwH;AACpI,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,iCAAiC;AAC7C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,YAAY;AACZ,gBAAgB,UAAU,EAAE,qIAAqI;AACjK,aAAa;AACb,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,2DAA2D;AACvE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,2DAA2D;AACvE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,kEAAkE;AAC9E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,iEAAiE;AAC7E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,uGAAuG;AACnH,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,6EAA6E;AACzF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,gBAAgB,EAAE,CAAC,oDAAoD,CAAC;AAChF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,2EAA2E;AACvF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;AACjC,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,oDAAoD,CAAC;AAC/E,QAAQ,sBAAsB,EAAE;AAChC,YAAY,yFAAyF;AACrG,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AACrC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,4EAA4E;AACxF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,4EAA4E;AACxF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,oDAAoD,CAAC;AACjF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,gDAAgD;AAC5D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,mDAAmD,CAAC;AAC7E,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,6EAA6E;AACzF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,kBAAkB,EAAE,CAAC,2CAA2C,CAAC;AACzE,QAAQ,eAAe,EAAE,CAAC,iCAAiC,CAAC;AAC5D,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,sBAAsB,EAAE;AAChC,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,uCAAuC,CAAC;AACtE,QAAQ,0BAA0B,EAAE,CAAC,kBAAkB,CAAC;AACxD,QAAQ,UAAU,EAAE,CAAC,kCAAkC,CAAC;AACxD,QAAQ,WAAW,EAAE,CAAC,wBAAwB,CAAC;AAC/C,QAAQ,yBAAyB,EAAE;AACnC,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,0BAA0B,EAAE,CAAC,2CAA2C,CAAC;AACjF,QAAQ,eAAe,EAAE;AACzB,YAAY,kCAAkC;AAC9C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;AACvD,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,qCAAqC,CAAC;AAC9D,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,uDAAuD;AACnE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE;AACrD,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,kCAAkC,CAAC;AAC3D,QAAQ,iBAAiB,EAAE,CAAC,qDAAqD,CAAC;AAClF,QAAQ,MAAM,EAAE,CAAC,8BAA8B,CAAC;AAChD,QAAQ,wBAAwB,EAAE;AAClC,YAAY,wEAAwE;AACpF,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,0EAA0E;AACtF,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,8DAA8D;AAC1E,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,oDAAoD,CAAC;AACnF,QAAQ,+BAA+B,EAAE;AACzC,YAAY,+EAA+E;AAC3F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,4CAA4C,CAAC;AACvE,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,8CAA8C,CAAC;AACpE,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,oCAAoC;AAChD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;AACvD,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,yFAAyF;AACrG,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,oDAAoD,CAAC;AAC7E,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,8CAA8C,CAAC;AACvE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,uDAAuD;AACnE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,mDAAmD;AAC/D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,yCAAyC;AACrD,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,EAAE;AAC5D,SAAS;AACT,QAAQ,sBAAsB,EAAE,CAAC,yCAAyC,CAAC;AAC3E,QAAQ,sBAAsB,EAAE,CAAC,yCAAyC,CAAC;AAC3E,QAAQ,4BAA4B,EAAE;AACtC,YAAY,oDAAoD;AAChE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,gDAAgD;AAC5D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,2BAA2B,CAAC;AAC1C,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,qEAAqE;AACjF,SAAS;AACT,QAAQ,wBAAwB,EAAE;AAClC,YAAY,uEAAuE;AACnF,SAAS;AACT,QAAQ,kBAAkB,EAAE,CAAC,wCAAwC,CAAC;AACtE,QAAQ,yBAAyB,EAAE;AACnC,YAAY,wFAAwF;AACpG,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,kCAAkC;AAC9C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,kCAAkC,EAAE;AAC5C,YAAY,0EAA0E;AACtF,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,6CAA6C,CAAC;AAClE,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,0CAA0C,CAAC;AAC/D,QAAQ,qBAAqB,EAAE,CAAC,gDAAgD,CAAC;AACjF,QAAQ,8BAA8B,EAAE;AACxC,YAAY,+DAA+D;AAC3E,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,gDAAgD,CAAC;AACnF,QAAQ,SAAS,EAAE,CAAC,yCAAyC,CAAC;AAC9D,QAAQ,sBAAsB,EAAE,CAAC,iDAAiD,CAAC;AACnF,QAAQ,gBAAgB,EAAE,CAAC,iDAAiD,CAAC;AAC7E,QAAQ,4BAA4B,EAAE;AACtC,YAAY,4EAA4E;AACxF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,0BAA0B,EAAE,CAAC,6CAA6C,CAAC;AACnF,QAAQ,UAAU,EAAE,CAAC,2CAA2C,CAAC;AACjE,QAAQ,oBAAoB,EAAE,CAAC,8CAA8C,CAAC;AAC9E,QAAQ,YAAY,EAAE,CAAC,yCAAyC,CAAC;AACjE,QAAQ,aAAa,EAAE,CAAC,uDAAuD,CAAC;AAChF,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,+CAA+C,CAAC;AAC9E,QAAQ,gBAAgB,EAAE,CAAC,2CAA2C,CAAC;AACvE,QAAQ,QAAQ,EAAE,CAAC,iCAAiC,CAAC;AACrD,QAAQ,aAAa,EAAE,CAAC,mDAAmD,CAAC;AAC5E,QAAQ,qBAAqB,EAAE,CAAC,+CAA+C,CAAC;AAChF,QAAQ,8BAA8B,EAAE;AACxC,YAAY,sFAAsF;AAClG,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,4CAA4C,CAAC;AACzE,QAAQ,SAAS,EAAE,CAAC,kCAAkC,CAAC;AACvD,QAAQ,oBAAoB,EAAE,CAAC,wCAAwC,CAAC;AACxE,QAAQ,UAAU,EAAE,CAAC,iDAAiD,CAAC;AACvE,QAAQ,eAAe,EAAE,CAAC,sDAAsD,CAAC;AACjF,QAAQ,eAAe,EAAE,CAAC,+CAA+C,CAAC;AAC1E,QAAQ,yBAAyB,EAAE;AACnC,YAAY,+EAA+E;AAC3F,SAAS;AACT,QAAQ,mCAAmC,EAAE;AAC7C,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,iDAAiD,CAAC;AACxE,QAAQ,eAAe,EAAE,CAAC,qDAAqD,CAAC;AAChF,QAAQ,mCAAmC,EAAE;AAC7C,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,QAAQ,EAAE,CAAC,yCAAyC,CAAC;AAC7D,QAAQ,UAAU,EAAE,CAAC,2CAA2C,CAAC;AACjE,QAAQ,uBAAuB,EAAE;AACjC,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,oCAAoC,CAAC;AAC5D,QAAQ,yBAAyB,EAAE;AACnC,YAAY,oEAAoE;AAChF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,yCAAyC,CAAC;AACtE,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,yBAAyB,EAAE,CAAC,oCAAoC,CAAC;AACzE,QAAQ,wBAAwB,EAAE;AAClC,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,mCAAmC,CAAC;AAC1D,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,cAAc,EAAE,CAAC,gCAAgC,CAAC;AAC1D,QAAQ,sBAAsB,EAAE;AAChC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,uCAAuC,CAAC;AAClE,QAAQ,wBAAwB,EAAE,CAAC,iBAAiB,CAAC;AACrD,QAAQ,UAAU,EAAE,CAAC,uBAAuB,CAAC;AAC7C,QAAQ,WAAW,EAAE,CAAC,6BAA6B,CAAC;AACpD,QAAQ,SAAS,EAAE,CAAC,iCAAiC,CAAC;AACtD,QAAQ,eAAe,EAAE,CAAC,uCAAuC,CAAC;AAClE,QAAQ,mCAAmC,EAAE,CAAC,kCAAkC,CAAC;AACjF,QAAQ,aAAa,EAAE,CAAC,qCAAqC,CAAC;AAC9D,QAAQ,eAAe,EAAE,CAAC,wCAAwC,CAAC;AACnE,QAAQ,UAAU,EAAE,CAAC,mBAAmB,CAAC;AACzC,QAAQ,oCAAoC,EAAE;AAC9C,YAAY,sDAAsD;AAClE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,oCAAoC,CAAC;AAC5D,QAAQ,QAAQ,EAAE,CAAC,gCAAgC,CAAC;AACpD,QAAQ,SAAS,EAAE,CAAC,iCAAiC,CAAC;AACtD,QAAQ,YAAY,EAAE,CAAC,iCAAiC,CAAC;AACzD,QAAQ,KAAK,EAAE,CAAC,mCAAmC,CAAC;AACpD,QAAQ,WAAW,EAAE,CAAC,kDAAkD,CAAC;AACzE,QAAQ,2BAA2B,EAAE;AACrC,YAAY,6EAA6E;AACzF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;AACjC,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,uDAAuD;AACnE,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,2FAA2F;AACvG,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AACrC,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,kFAAkF;AAC9F,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,8EAA8E;AAC1F,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,8EAA8E;AAC1F,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,qDAAqD,CAAC;AAC7E,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,kCAAkC;AAC9C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,yCAAyC,CAAC;AACtE,QAAQ,wBAAwB,EAAE;AAClC,YAAY,wEAAwE;AACpF,SAAS;AACT,QAAQ,wBAAwB,EAAE;AAClC,YAAY,0EAA0E;AACtF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;AACjC,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,wFAAwF;AACpG,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AACrC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,2EAA2E;AACvF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,2EAA2E;AACvF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,kDAAkD,CAAC;AAC7E,QAAQ,QAAQ,EAAE,CAAC,qCAAqC,CAAC;AACzD,QAAQ,MAAM,EAAE,CAAC,6BAA6B,CAAC;AAC/C,QAAQ,sBAAsB,EAAE;AAChC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,mDAAmD,CAAC;AAClF,QAAQ,+BAA+B,EAAE,CAAC,iCAAiC,CAAC;AAC5E,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,wFAAwF;AACpG,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,mDAAmD,CAAC;AAC5E,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,iFAAiF;AAC7F,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,6BAA6B,CAAC,EAAE;AACjE,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,iFAAiF;AAC7F,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,6CAA6C,CAAC;AACtE,QAAQ,0BAA0B,EAAE;AACpC,YAAY,oDAAoD;AAChE,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,sEAAsE;AAClF,YAAY,EAAE,OAAO,EAAE,4BAA4B,EAAE;AACrD,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAClC,QAAQ,OAAO,EAAE,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAChF,QAAQ,qBAAqB,EAAE,CAAC,oBAAoB,CAAC;AACrD,QAAQ,MAAM,EAAE,CAAC,oBAAoB,CAAC;AACtC,QAAQ,KAAK,EAAE,CAAC,0BAA0B,CAAC;AAC3C,QAAQ,MAAM,EAAE,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC9E,QAAQ,KAAK,EAAE,CAAC,mBAAmB,CAAC;AACpC,KAAK;AACL,IAAI,cAAc,EAAE;AACpB,QAAQ,QAAQ,EAAE;AAClB,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,kDAAkD,CAAC;AAC/E,QAAQ,WAAW,EAAE;AACrB,YAAY,mEAAmE;AAC/E,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,kCAAkC,EAAE;AAC5C,YAAY,yDAAyD;AACrE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,yDAAyD;AACrE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,MAAM,EAAE,CAAC,wBAAwB,CAAC;AAC1C,QAAQ,4BAA4B,EAAE;AACtC,YAAY,6EAA6E;AACzF,SAAS;AACT,QAAQ,qBAAqB,EAAE,CAAC,gDAAgD,CAAC;AACjF,QAAQ,4BAA4B,EAAE;AACtC,YAAY,gGAAgG;AAC5G,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,sEAAsE;AAClF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,sCAAsC,CAAC;AAC7D,QAAQ,SAAS,EAAE,CAAC,mCAAmC,CAAC;AACxD,QAAQ,yBAAyB,EAAE;AACnC,YAAY,6FAA6F;AACzG,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,uBAAuB,CAAC;AACvC,QAAQ,cAAc,EAAE,CAAC,yCAAyC,CAAC;AACnE,QAAQ,2BAA2B,EAAE;AACrC,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,+CAA+C,CAAC;AAC/E,QAAQ,wBAAwB,EAAE,CAAC,iBAAiB,CAAC;AACrD,QAAQ,gBAAgB,EAAE,CAAC,2CAA2C,CAAC;AACvE,QAAQ,2BAA2B,EAAE;AACrC,YAAY,+CAA+C;AAC3D,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,4CAA4C;AACxD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,yCAAyC,CAAC;AACnE,QAAQ,4BAA4B,EAAE;AACtC,YAAY,6DAA6D;AACzE,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,+FAA+F;AAC3G,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,qEAAqE;AACjF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,qCAAqC,CAAC;AAC5D,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,wBAAwB,EAAE,CAAC,mBAAmB,CAAC;AACvD,QAAQ,KAAK,EAAE,CAAC,6BAA6B,CAAC;AAC9C,QAAQ,YAAY,EAAE,CAAC,6BAA6B,CAAC;AACrD,QAAQ,qBAAqB,EAAE,CAAC,+CAA+C,CAAC;AAChF,QAAQ,oCAAoC,EAAE,CAAC,gCAAgC,CAAC;AAChF,QAAQ,4BAA4B,EAAE,CAAC,qBAAqB,CAAC;AAC7D,QAAQ,kCAAkC,EAAE,CAAC,iBAAiB,CAAC;AAC/D,QAAQ,2BAA2B,EAAE,CAAC,qBAAqB,CAAC;AAC5D,QAAQ,4BAA4B,EAAE,CAAC,oCAAoC,CAAC;AAC5E,QAAQ,kCAAkC,EAAE,CAAC,4BAA4B,CAAC;AAC1E,QAAQ,MAAM,EAAE,CAAC,gCAAgC,CAAC;AAClD,QAAQ,gBAAgB,EAAE,CAAC,WAAW,CAAC;AACvC,QAAQ,aAAa,EAAE,CAAC,uBAAuB,CAAC;AAChD,QAAQ,iBAAiB,EAAE,CAAC,iCAAiC,CAAC;AAC9D,QAAQ,yBAAyB,EAAE,CAAC,iCAAiC,CAAC;AACtE,QAAQ,+BAA+B,EAAE,CAAC,yBAAyB,CAAC;AACpE,QAAQ,IAAI,EAAE,CAAC,YAAY,CAAC;AAC5B,QAAQ,0BAA0B,EAAE,CAAC,kBAAkB,CAAC;AACxD,QAAQ,0BAA0B,EAAE,CAAC,kBAAkB,CAAC;AACxD,QAAQ,2BAA2B,EAAE,CAAC,qBAAqB,CAAC;AAC5D,QAAQ,iCAAiC,EAAE,CAAC,qBAAqB,CAAC;AAClE,QAAQ,oBAAoB,EAAE,CAAC,iCAAiC,CAAC;AACjE,QAAQ,oBAAoB,EAAE,CAAC,iCAAiC,CAAC;AACjE,QAAQ,2BAA2B,EAAE,CAAC,oBAAoB,CAAC;AAC3D,QAAQ,kBAAkB,EAAE,CAAC,gCAAgC,CAAC;AAC9D,QAAQ,gCAAgC,EAAE,CAAC,yBAAyB,CAAC;AACrE,QAAQ,qBAAqB,EAAE,CAAC,4BAA4B,CAAC;AAC7D,QAAQ,iCAAiC,EAAE,CAAC,gBAAgB,CAAC;AAC7D,QAAQ,yCAAyC,EAAE,CAAC,8BAA8B,CAAC;AACnF,QAAQ,OAAO,EAAE,CAAC,gCAAgC,CAAC;AACnD,QAAQ,QAAQ,EAAE,CAAC,mCAAmC,CAAC;AACvD,QAAQ,mBAAmB,EAAE,CAAC,aAAa,CAAC;AAC5C,KAAK;AACL,CAAC;;AC33CM,MAAM,OAAO,GAAG,mBAAmB,CAAC;;ACApC,SAAS,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE;AAC1D,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnE,QAAQ,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACxE,YAAY,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC;AAC5D,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,YAAY,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9E,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACpC,gBAAgB,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACvC,aAAa;AACb,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACnD,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,YAAY,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAC/G,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAClF,SAAS;AACT,KAAK;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,SAAS,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE;AACrE,IAAI,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnE;AACA,IAAI,SAAS,eAAe,CAAC,GAAG,IAAI,EAAE;AACtC;AACA,QAAQ,IAAI,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE;AACnC,YAAY,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;AACjD,gBAAgB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;AACpD,gBAAgB,CAAC,WAAW,CAAC,SAAS,GAAG,SAAS;AAClD,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAChD,SAAS;AACT,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE;AACjC,YAAY,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;AAClE,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5H,SAAS;AACT,QAAQ,IAAI,WAAW,CAAC,UAAU,EAAE;AACpC,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,WAAW,CAAC,iBAAiB,EAAE;AAC3C;AACA,YAAY,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACxE,YAAY,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE;AACvF,gBAAgB,IAAI,IAAI,IAAI,OAAO,EAAE;AACrC,oBAAoB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACzI,oBAAoB,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC,EAAE;AAC7C,wBAAwB,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACvD,qBAAqB;AACrB,oBAAoB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAChD,SAAS;AACT;AACA,QAAQ,OAAO,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AAC/D,CAAC;;ACxDM,SAAS,mBAAmB,CAAC,OAAO,EAAE;AAC7C,IAAI,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,EAAEA,SAAS,CAAC,CAAC;AACvD,IAAI,OAAO;AACX,QAAQ,GAAG,GAAG;AACd,QAAQ,IAAI,EAAE,GAAG;AACjB,KAAK,CAAC;AACN,CAAC;AACD,mBAAmB,CAAC,OAAO,GAAG,OAAO,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-rest-endpoint-methods/package.json b/node_modules/@octokit/plugin-rest-endpoint-methods/package.json new file mode 100644 index 0000000..ce60af4 --- /dev/null +++ b/node_modules/@octokit/plugin-rest-endpoint-methods/package.json @@ -0,0 +1,60 @@ +{ + "name": "@octokit/plugin-rest-endpoint-methods", + "description": "Octokit plugin adding one method for all of api.github.com REST API endpoints", + "version": "4.15.1", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "github", + "api", + "sdk", + "toolkit" + ], + "repository": "github:octokit/plugin-rest-endpoint-methods.js", + "dependencies": { + "@octokit/types": "^6.13.0", + "deprecation": "^2.3.1" + }, + "peerDependencies": { + "@octokit/core": ">=3" + }, + "devDependencies": { + "@gimenete/type-writer": "^0.1.5", + "@octokit/core": "^3.0.0", + "@octokit/graphql": "^4.3.1", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.4", + "fetch-mock": "^9.0.0", + "fs-extra": "^9.0.0", + "jest": "^26.1.0", + "lodash.camelcase": "^4.3.0", + "lodash.set": "^4.3.2", + "lodash.upperfirst": "^4.3.1", + "mustache": "^4.0.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.0.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^4.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "ts-jest": "^26.1.3", + "typescript": "^4.0.2" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/request-error/LICENSE b/node_modules/@octokit/request-error/LICENSE new file mode 100644 index 0000000..ef2c18e --- /dev/null +++ b/node_modules/@octokit/request-error/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/request-error/README.md b/node_modules/@octokit/request-error/README.md new file mode 100644 index 0000000..1bf5384 --- /dev/null +++ b/node_modules/@octokit/request-error/README.md @@ -0,0 +1,67 @@ +# http-error.js + +> Error class for Octokit request errors + +[![@latest](https://img.shields.io/npm/v/@octokit/request-error.svg)](https://www.npmjs.com/package/@octokit/request-error) +[![Build Status](https://github.com/octokit/request-error.js/workflows/Test/badge.svg)](https://github.com/octokit/request-error.js/actions?query=workflow%3ATest) + +## Usage + + + + + + +
+Browsers + +Load @octokit/request-error directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/request-error + +```js +const { RequestError } = require("@octokit/request-error"); +// or: import { RequestError } from "@octokit/request-error"; +``` + +
+ +```js +const error = new RequestError("Oops", 500, { + headers: { + "x-github-request-id": "1:2:3:4", + }, // response headers + request: { + method: "POST", + url: "https://api.github.com/foo", + body: { + bar: "baz", + }, + headers: { + authorization: "token secret123", + }, + }, +}); + +error.message; // Oops +error.status; // 500 +error.request.method; // POST +error.request.url; // https://api.github.com/foo +error.request.body; // { bar: 'baz' } +error.request.headers; // { authorization: 'token [REDACTED]' } +error.response; // { url, status, headers, data } +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/request-error/dist-node/index.js b/node_modules/@octokit/request-error/dist-node/index.js new file mode 100644 index 0000000..619f462 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-node/index.js @@ -0,0 +1,74 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var deprecation = require('deprecation'); +var once = _interopDefault(require('once')); + +const logOnceCode = once(deprecation => console.warn(deprecation)); +const logOnceHeaders = once(deprecation => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ + +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "HttpError"; + this.status = statusCode; + let headers; + + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } // redact request credentials without mutating original request options + + + const requestCopy = Object.assign({}, options.request); + + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + + requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; // deprecations + + Object.defineProperty(this, "code", { + get() { + logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); + return headers || {}; + } + + }); + } + +} + +exports.RequestError = RequestError; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request-error/dist-node/index.js.map b/node_modules/@octokit/request-error/dist-node/index.js.map new file mode 100644 index 0000000..9134ddb --- /dev/null +++ b/node_modules/@octokit/request-error/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnceCode = once((deprecation) => console.warn(deprecation));\nconst logOnceHeaders = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n }\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n // deprecations\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n },\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n },\n });\n }\n}\n"],"names":["logOnceCode","once","deprecation","console","warn","logOnceHeaders","RequestError","Error","constructor","message","statusCode","options","captureStackTrace","name","status","headers","response","requestCopy","Object","assign","request","authorization","replace","url","defineProperty","get","Deprecation"],"mappings":";;;;;;;;;AAEA,MAAMA,WAAW,GAAGC,IAAI,CAAEC,WAAD,IAAiBC,OAAO,CAACC,IAAR,CAAaF,WAAb,CAAlB,CAAxB;AACA,MAAMG,cAAc,GAAGJ,IAAI,CAAEC,WAAD,IAAiBC,OAAO,CAACC,IAAR,CAAaF,WAAb,CAAlB,CAA3B;AACA;AACA;AACA;;AACO,MAAMI,YAAN,SAA2BC,KAA3B,CAAiC;AACpCC,EAAAA,WAAW,CAACC,OAAD,EAAUC,UAAV,EAAsBC,OAAtB,EAA+B;AACtC,UAAMF,OAAN,EADsC;;AAGtC;;AACA,QAAIF,KAAK,CAACK,iBAAV,EAA6B;AACzBL,MAAAA,KAAK,CAACK,iBAAN,CAAwB,IAAxB,EAA8B,KAAKJ,WAAnC;AACH;;AACD,SAAKK,IAAL,GAAY,WAAZ;AACA,SAAKC,MAAL,GAAcJ,UAAd;AACA,QAAIK,OAAJ;;AACA,QAAI,aAAaJ,OAAb,IAAwB,OAAOA,OAAO,CAACI,OAAf,KAA2B,WAAvD,EAAoE;AAChEA,MAAAA,OAAO,GAAGJ,OAAO,CAACI,OAAlB;AACH;;AACD,QAAI,cAAcJ,OAAlB,EAA2B;AACvB,WAAKK,QAAL,GAAgBL,OAAO,CAACK,QAAxB;AACAD,MAAAA,OAAO,GAAGJ,OAAO,CAACK,QAAR,CAAiBD,OAA3B;AACH,KAhBqC;;;AAkBtC,UAAME,WAAW,GAAGC,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBR,OAAO,CAACS,OAA1B,CAApB;;AACA,QAAIT,OAAO,CAACS,OAAR,CAAgBL,OAAhB,CAAwBM,aAA5B,EAA2C;AACvCJ,MAAAA,WAAW,CAACF,OAAZ,GAAsBG,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBR,OAAO,CAACS,OAAR,CAAgBL,OAAlC,EAA2C;AAC7DM,QAAAA,aAAa,EAAEV,OAAO,CAACS,OAAR,CAAgBL,OAAhB,CAAwBM,aAAxB,CAAsCC,OAAtC,CAA8C,MAA9C,EAAsD,aAAtD;AAD8C,OAA3C,CAAtB;AAGH;;AACDL,IAAAA,WAAW,CAACM,GAAZ,GAAkBN,WAAW,CAACM,GAAZ;AAEd;AAFc,KAGbD,OAHa,CAGL,sBAHK,EAGmB,0BAHnB;AAKd;AALc,KAMbA,OANa,CAML,qBANK,EAMkB,yBANlB,CAAlB;AAOA,SAAKF,OAAL,GAAeH,WAAf,CA/BsC;;AAiCtCC,IAAAA,MAAM,CAACM,cAAP,CAAsB,IAAtB,EAA4B,MAA5B,EAAoC;AAChCC,MAAAA,GAAG,GAAG;AACFzB,QAAAA,WAAW,CAAC,IAAI0B,uBAAJ,CAAgB,0EAAhB,CAAD,CAAX;AACA,eAAOhB,UAAP;AACH;;AAJ+B,KAApC;AAMAQ,IAAAA,MAAM,CAACM,cAAP,CAAsB,IAAtB,EAA4B,SAA5B,EAAuC;AACnCC,MAAAA,GAAG,GAAG;AACFpB,QAAAA,cAAc,CAAC,IAAIqB,uBAAJ,CAAgB,uFAAhB,CAAD,CAAd;AACA,eAAOX,OAAO,IAAI,EAAlB;AACH;;AAJkC,KAAvC;AAMH;;AA9CmC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request-error/dist-src/index.js b/node_modules/@octokit/request-error/dist-src/index.js new file mode 100644 index 0000000..5eb1927 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-src/index.js @@ -0,0 +1,55 @@ +import { Deprecation } from "deprecation"; +import once from "once"; +const logOnceCode = once((deprecation) => console.warn(deprecation)); +const logOnceHeaders = once((deprecation) => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ +export class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + let headers; + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } + // redact request credentials without mutating original request options + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]"), + }); + } + requestCopy.url = requestCopy.url + // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") + // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + // deprecations + Object.defineProperty(this, "code", { + get() { + logOnceCode(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + }, + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders(new Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); + return headers || {}; + }, + }); + } +} diff --git a/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/@octokit/request-error/dist-src/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/request-error/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/request-error/dist-types/index.d.ts b/node_modules/@octokit/request-error/dist-types/index.d.ts new file mode 100644 index 0000000..d6e089c --- /dev/null +++ b/node_modules/@octokit/request-error/dist-types/index.d.ts @@ -0,0 +1,33 @@ +import { RequestOptions, ResponseHeaders, OctokitResponse } from "@octokit/types"; +import { RequestErrorOptions } from "./types"; +/** + * Error with extra properties to help with debugging + */ +export declare class RequestError extends Error { + name: "HttpError"; + /** + * http status code + */ + status: number; + /** + * http status code + * + * @deprecated `error.code` is deprecated in favor of `error.status` + */ + code: number; + /** + * Request options that lead to the error. + */ + request: RequestOptions; + /** + * error response headers + * + * @deprecated `error.headers` is deprecated in favor of `error.response.headers` + */ + headers: ResponseHeaders; + /** + * Response object if a response was received + */ + response?: OctokitResponse; + constructor(message: string, statusCode: number, options: RequestErrorOptions); +} diff --git a/node_modules/@octokit/request-error/dist-types/types.d.ts b/node_modules/@octokit/request-error/dist-types/types.d.ts new file mode 100644 index 0000000..7785231 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-types/types.d.ts @@ -0,0 +1,9 @@ +import { RequestOptions, ResponseHeaders, OctokitResponse } from "@octokit/types"; +export declare type RequestErrorOptions = { + /** @deprecated set `response` instead */ + headers?: ResponseHeaders; + request: RequestOptions; +} | { + response: OctokitResponse; + request: RequestOptions; +}; diff --git a/node_modules/@octokit/request-error/dist-web/index.js b/node_modules/@octokit/request-error/dist-web/index.js new file mode 100644 index 0000000..0fb64be --- /dev/null +++ b/node_modules/@octokit/request-error/dist-web/index.js @@ -0,0 +1,59 @@ +import { Deprecation } from 'deprecation'; +import once from 'once'; + +const logOnceCode = once((deprecation) => console.warn(deprecation)); +const logOnceHeaders = once((deprecation) => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + let headers; + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } + // redact request credentials without mutating original request options + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]"), + }); + } + requestCopy.url = requestCopy.url + // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") + // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + // deprecations + Object.defineProperty(this, "code", { + get() { + logOnceCode(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + }, + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders(new Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); + return headers || {}; + }, + }); + } +} + +export { RequestError }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request-error/dist-web/index.js.map b/node_modules/@octokit/request-error/dist-web/index.js.map new file mode 100644 index 0000000..78f677f --- /dev/null +++ b/node_modules/@octokit/request-error/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnceCode = once((deprecation) => console.warn(deprecation));\nconst logOnceHeaders = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n }\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n // deprecations\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n },\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n },\n });\n }\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACrE,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACxE;AACA;AACA;AACO,MAAM,YAAY,SAAS,KAAK,CAAC;AACxC,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;AAC9C,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACrC,YAAY,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;AACjC,QAAQ,IAAI,OAAO,CAAC;AACpB,QAAQ,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,EAAE;AAC5E,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACtC,SAAS;AACT,QAAQ,IAAI,UAAU,IAAI,OAAO,EAAE;AACnC,YAAY,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAC7C,YAAY,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC/C,SAAS;AACT;AACA,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;AACnD,YAAY,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7E,gBAAgB,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;AACnG,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;AACzC;AACA;AACA,aAAa,OAAO,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;AACxE;AACA;AACA,aAAa,OAAO,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;AACvE,QAAQ,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AACnC;AACA,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,YAAY,GAAG,GAAG;AAClB,gBAAgB,WAAW,CAAC,IAAI,WAAW,CAAC,0EAA0E,CAAC,CAAC,CAAC;AACzH,gBAAgB,OAAO,UAAU,CAAC;AAClC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;AAC/C,YAAY,GAAG,GAAG;AAClB,gBAAgB,cAAc,CAAC,IAAI,WAAW,CAAC,uFAAuF,CAAC,CAAC,CAAC;AACzI,gBAAgB,OAAO,OAAO,IAAI,EAAE,CAAC;AACrC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request-error/package.json b/node_modules/@octokit/request-error/package.json new file mode 100644 index 0000000..2f5b239 --- /dev/null +++ b/node_modules/@octokit/request-error/package.json @@ -0,0 +1,47 @@ +{ + "name": "@octokit/request-error", + "description": "Error class for Octokit request errors", + "version": "2.1.0", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "error" + ], + "repository": "github:octokit/request-error.js", + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-bundle-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.4", + "@types/once": "^1.4.0", + "jest": "^27.0.0", + "pika-plugin-unpkg-field": "^1.1.0", + "prettier": "2.3.1", + "semantic-release": "^17.0.0", + "ts-jest": "^27.0.0-next.12", + "typescript": "^4.0.0" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/request/LICENSE b/node_modules/@octokit/request/LICENSE new file mode 100644 index 0000000..af5366d --- /dev/null +++ b/node_modules/@octokit/request/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/request/README.md b/node_modules/@octokit/request/README.md new file mode 100644 index 0000000..747a670 --- /dev/null +++ b/node_modules/@octokit/request/README.md @@ -0,0 +1,551 @@ +# request.js + +> Send parameterized requests to GitHub’s APIs with sensible defaults in browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/request.svg)](https://www.npmjs.com/package/@octokit/request) +[![Build Status](https://github.com/octokit/request.js/workflows/Test/badge.svg)](https://github.com/octokit/request.js/actions?query=workflow%3ATest+branch%3Amaster) + +`@octokit/request` is a request library for browsers & node that makes it easier +to interact with [GitHub’s REST API](https://developer.github.com/v3/) and +[GitHub’s GraphQL API](https://developer.github.com/v4/guides/forming-calls/#the-graphql-endpoint). + +It uses [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) to parse +the passed options and sends the request using [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +([node-fetch](https://github.com/bitinn/node-fetch) in Node). + + + + + +- [Features](#features) +- [Usage](#usage) + - [REST API example](#rest-api-example) + - [GraphQL example](#graphql-example) + - [Alternative: pass `method` & `url` as part of options](#alternative-pass-method--url-as-part-of-options) +- [Authentication](#authentication) +- [request()](#request) +- [`request.defaults()`](#requestdefaults) +- [`request.endpoint`](#requestendpoint) +- [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) +- [LICENSE](#license) + + + +## Features + +🤩 1:1 mapping of REST API endpoint documentation, e.g. [Add labels to an issue](https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue) becomes + +```js +request("POST /repos/{owner}/{repo}/issues/{number}/labels", { + mediaType: { + previews: ["symmetra"], + }, + owner: "octokit", + repo: "request.js", + number: 1, + labels: ["🐛 bug"], +}); +``` + +👶 [Small bundle size](https://bundlephobia.com/result?p=@octokit/request@5.0.3) (\<4kb minified + gzipped) + +😎 [Authenticate](#authentication) with any of [GitHubs Authentication Strategies](https://github.com/octokit/auth.js). + +👍 Sensible defaults + +- `baseUrl`: `https://api.github.com` +- `headers.accept`: `application/vnd.github.v3+json` +- `headers.agent`: `octokit-request.js/ `, e.g. `octokit-request.js/1.2.3 Node.js/10.15.0 (macOS Mojave; x64)` + +👌 Simple to test: mock requests by passing a custom fetch method. + +🧐 Simple to debug: Sets `error.request` to request options causing the error (with redacted credentials). + +## Usage + + + + + + +
+Browsers + +Load @octokit/request directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/request + +```js +const { request } = require("@octokit/request"); +// or: import { request } from "@octokit/request"; +``` + +
+ +### REST API example + +```js +// Following GitHub docs formatting: +// https://developer.github.com/v3/repos/#list-organization-repositories +const result = await request("GET /orgs/{org}/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); + +console.log(`${result.data.length} repos found.`); +``` + +### GraphQL example + +For GraphQL request we recommend using [`@octokit/graphql`](https://github.com/octokit/graphql.js#readme) + +```js +const result = await request("POST /graphql", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + query: `query ($login: String!) { + organization(login: $login) { + repositories(privacy: PRIVATE) { + totalCount + } + } + }`, + variables: { + login: "octokit", + }, +}); +``` + +### Alternative: pass `method` & `url` as part of options + +Alternatively, pass in a method and a url + +```js +const result = await request({ + method: "GET", + url: "/orgs/{org}/repos", + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); +``` + +## Authentication + +The simplest way to authenticate a request is to set the `Authorization` header directly, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const requestWithAuth = request.defaults({ + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, +}); +const result = await requestWithAuth("GET /user"); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + appId: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123, +}); +const requestWithAuth = request.defaults({ + request: { + hook: auth.hook, + }, + mediaType: { + previews: ["machine-man"], + }, +}); + +const { data: app } = await requestWithAuth("GET /app"); +const { data: app } = await requestWithAuth( + "POST /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + title: "Hello from the engine room", + } +); +``` + +## request() + +`request(route, options)` or `request(options)`. + +**Options** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + **Required**. If route is set it has to be a string consisting of the request method and URL, e.g. GET /orgs/{org} +
+ options.baseUrl + + String + + The base URL that route or url will be prefixed with, if they use relative paths. Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-rest.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
Use options.mediaType.{format,previews} to request API previews and custom media types. +
+ options.mediaType.format + + String + + Media type param, such as `raw`, `html`, or `full`. See Media Types. +
+ options.mediaType.previews + + Array of strings + + Name of previews, such as `mercy`, `symmetra`, or `scarlet-witch`. See API Previews. +
+ options.method + + String + + Any supported http verb, case insensitive. Defaults to Get. +
+ options.url + + String + + **Required**. A path or full URL which may contain :variable or {variable} placeholders, + e.g. /orgs/{org}/repos. The url is parsed using url-template. +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The `data` parameter" below. +
+ options.request.agent + + http(s).Agent instance + + Node only. Useful for custom proxy, certificate, or dns lookup. +
+ options.request.fetch + + Function + + Custom replacement for built-in fetch method. Useful for testing or request hooks. +
+ options.request.hook + + Function + + Function with the signature hook(request, endpointOptions), where endpointOptions are the parsed options as returned by endpoint.merge(), and request is request(). This option works great in conjuction with before-after-hook. +
+ options.request.signal + + new AbortController().signal + + Use an AbortController instance to cancel a request. In node you can only cancel streamed requests. +
+ options.request.log + + object + + Used for internal logging. Defaults to console. +
+ options.request.timeout + + Number + + Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). options.request.signal is recommended instead. +
+ +All other options except `options.request.*` will be passed depending on the `method` and `url` options. + +1. If the option key is a placeholder in the `url`, it will be used as replacement. For example, if the passed options are `{url: '/orgs/{org}/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos` +2. If the `method` is `GET` or `HEAD`, the option is passed as query parameter +3. Otherwise the parameter is passed in the request body as JSON key. + +**Result** + +`request` returns a promise and resolves with 4 keys + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
statusIntegerResponse status status
urlStringURL of response. If a request results in redirects, this is the final URL. You can send a HEAD request to retrieve it without loading the full response body.
headersObjectAll response headers
dataAnyThe response body as returned from server. If the response is JSON then it will be parsed into an object
+ +If an error occurs, the `error` instance has additional properties to help with debugging + +- `error.status` The http response status code +- `error.request` The request options such as `method`, `url` and `data` +- `error.response` The http response object with `url`, `headers`, and `data` + +## `request.defaults()` + +Override or set default options. Example: + +```js +const myrequest = require("@octokit/request").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-project", + per_page: 100, +}); + +myrequest(`GET /orgs/{org}/repos`); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectRequest = request.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +const myProjectRequestWithAuth = myProjectRequest.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, +}); +``` + +`myProjectRequest` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +## `request.endpoint` + +See https://github.com/octokit/endpoint.js. Example + +```js +const options = request.endpoint("GET /orgs/{org}/repos", { + org: "my-project", + type: "private", +}); + +// { +// method: 'GET', +// url: 'https://api.github.com/orgs/my-project/repos?type=private', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: 'token 0000000000000000000000000000000000000001', +// 'user-agent': 'octokit/endpoint.js v1.2.3' +// } +// } +``` + +All of the [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) API can be used: + +- [`octokitRequest.endpoint()`](#endpoint) +- [`octokitRequest.endpoint.defaults()`](#endpointdefaults) +- [`octokitRequest.endpoint.merge()`](#endpointdefaults) +- [`octokitRequest.endpoint.parse()`](#endpointmerge) + +## Special cases + + + +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const response = await request("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain", + }, +}); + +// Request is sent as +// +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +// +// not as +// +// { +// ... +// body: '{"data": "Hello world github/linguist#1 **cool**, and #1!"}' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +request( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001`, + }, + data: "Hello, world!", + } +); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/request/dist-node/index.js b/node_modules/@octokit/request/dist-node/index.js new file mode 100644 index 0000000..685e2f5 --- /dev/null +++ b/node_modules/@octokit/request/dist-node/index.js @@ -0,0 +1,177 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var endpoint = require('@octokit/endpoint'); +var universalUserAgent = require('universal-user-agent'); +var isPlainObject = require('is-plain-object'); +var nodeFetch = _interopDefault(require('node-fetch')); +var requestError = require('@octokit/request-error'); + +const VERSION = "5.6.3"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + + if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + + let headers = {}; + let status; + let url; + const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, // `requestOptions.request.agent` type is incompatible + // see https://github.com/octokit/types.ts/pull/264 + requestOptions.request)).then(async response => { + url = response.url; + status = response.status; + + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + + if (status === 204 || status === 205) { + return; + } // GitHub API returns 200 for HEAD requests + + + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + + throw new requestError.RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: undefined + }, + request: requestOptions + }); + } + + if (status === 304) { + throw new requestError.RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response) + }, + request: requestOptions + }); + } + + if (status >= 400) { + const data = await getResponseData(response); + const error = new requestError.RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + + return getResponseData(response); + }).then(data => { + return { + status, + url, + headers, + data + }; + }).catch(error => { + if (error instanceof requestError.RequestError) throw error; + throw new requestError.RequestError(error.message, 500, { + request: requestOptions + }); + }); +} + +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + + if (/application\/json/.test(contentType)) { + return response.json(); + } + + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + + return getBufferResponse(response); +} + +function toErrorMessage(data) { + if (typeof data === "string") return data; // istanbul ignore else - just in case + + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; + } + + return data.message; + } // istanbul ignore next - just in case + + + return `Unknown error: ${JSON.stringify(data)}`; +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` + } +}); + +exports.request = request; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request/dist-node/index.js.map b/node_modules/@octokit/request/dist-node/index.js.map new file mode 100644 index 0000000..9a51ed1 --- /dev/null +++ b/node_modules/@octokit/request/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/get-buffer-response.js","../dist-src/fetch-wrapper.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"5.6.3\";\n","export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n","import { isPlainObject } from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log\n ? requestOptions.request.log\n : console;\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect,\n }, \n // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request))\n .then(async (response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requests\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined,\n },\n request: requestOptions,\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response),\n },\n request: requestOptions,\n });\n }\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data,\n },\n request: requestOptions,\n });\n throw error;\n }\n return getResponseData(response);\n })\n .then((data) => {\n return {\n status,\n url,\n headers,\n data,\n };\n })\n .catch((error) => {\n if (error instanceof RequestError)\n throw error;\n throw new RequestError(error.message, 500, {\n request: requestOptions,\n });\n });\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n}\nfunction toErrorMessage(data) {\n if (typeof data === \"string\")\n return data;\n // istanbul ignore else - just in case\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n return data.message;\n }\n // istanbul ignore next - just in case\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n","import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n}\n","import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`,\n },\n});\n"],"names":["VERSION","getBufferResponse","response","arrayBuffer","fetchWrapper","requestOptions","log","request","console","isPlainObject","body","Array","isArray","JSON","stringify","headers","status","url","fetch","nodeFetch","Object","assign","method","redirect","then","keyAndValue","matches","link","match","deprecationLink","pop","warn","sunset","RequestError","statusText","data","undefined","getResponseData","error","toErrorMessage","catch","message","contentType","get","test","json","text","getBuffer","errors","map","join","withDefaults","oldEndpoint","newDefaults","endpoint","defaults","newApi","route","parameters","endpointOptions","merge","hook","parse","bind","getUserAgent"],"mappings":";;;;;;;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAQ,SAASC,iBAAT,CAA2BC,QAA3B,EAAqC;AAChD,SAAOA,QAAQ,CAACC,WAAT,EAAP;AACH;;ACEc,SAASC,YAAT,CAAsBC,cAAtB,EAAsC;AACjD,QAAMC,GAAG,GAAGD,cAAc,CAACE,OAAf,IAA0BF,cAAc,CAACE,OAAf,CAAuBD,GAAjD,GACND,cAAc,CAACE,OAAf,CAAuBD,GADjB,GAENE,OAFN;;AAGA,MAAIC,2BAAa,CAACJ,cAAc,CAACK,IAAhB,CAAb,IACAC,KAAK,CAACC,OAAN,CAAcP,cAAc,CAACK,IAA7B,CADJ,EACwC;AACpCL,IAAAA,cAAc,CAACK,IAAf,GAAsBG,IAAI,CAACC,SAAL,CAAeT,cAAc,CAACK,IAA9B,CAAtB;AACH;;AACD,MAAIK,OAAO,GAAG,EAAd;AACA,MAAIC,MAAJ;AACA,MAAIC,GAAJ;AACA,QAAMC,KAAK,GAAIb,cAAc,CAACE,OAAf,IAA0BF,cAAc,CAACE,OAAf,CAAuBW,KAAlD,IAA4DC,SAA1E;AACA,SAAOD,KAAK,CAACb,cAAc,CAACY,GAAhB,EAAqBG,MAAM,CAACC,MAAP,CAAc;AAC3CC,IAAAA,MAAM,EAAEjB,cAAc,CAACiB,MADoB;AAE3CZ,IAAAA,IAAI,EAAEL,cAAc,CAACK,IAFsB;AAG3CK,IAAAA,OAAO,EAAEV,cAAc,CAACU,OAHmB;AAI3CQ,IAAAA,QAAQ,EAAElB,cAAc,CAACkB;AAJkB,GAAd;AAOjC;AACAlB,EAAAA,cAAc,CAACE,OARkB,CAArB,CAAL,CASFiB,IATE,CASG,MAAOtB,QAAP,IAAoB;AAC1Be,IAAAA,GAAG,GAAGf,QAAQ,CAACe,GAAf;AACAD,IAAAA,MAAM,GAAGd,QAAQ,CAACc,MAAlB;;AACA,SAAK,MAAMS,WAAX,IAA0BvB,QAAQ,CAACa,OAAnC,EAA4C;AACxCA,MAAAA,OAAO,CAACU,WAAW,CAAC,CAAD,CAAZ,CAAP,GAA0BA,WAAW,CAAC,CAAD,CAArC;AACH;;AACD,QAAI,iBAAiBV,OAArB,EAA8B;AAC1B,YAAMW,OAAO,GAAGX,OAAO,CAACY,IAAR,IAAgBZ,OAAO,CAACY,IAAR,CAAaC,KAAb,CAAmB,8BAAnB,CAAhC;AACA,YAAMC,eAAe,GAAGH,OAAO,IAAIA,OAAO,CAACI,GAAR,EAAnC;AACAxB,MAAAA,GAAG,CAACyB,IAAJ,CAAU,uBAAsB1B,cAAc,CAACiB,MAAO,IAAGjB,cAAc,CAACY,GAAI,qDAAoDF,OAAO,CAACiB,MAAO,GAAEH,eAAe,GAAI,SAAQA,eAAgB,EAA5B,GAAgC,EAAG,EAAnM;AACH;;AACD,QAAIb,MAAM,KAAK,GAAX,IAAkBA,MAAM,KAAK,GAAjC,EAAsC;AAClC;AACH,KAbyB;;;AAe1B,QAAIX,cAAc,CAACiB,MAAf,KAA0B,MAA9B,EAAsC;AAClC,UAAIN,MAAM,GAAG,GAAb,EAAkB;AACd;AACH;;AACD,YAAM,IAAIiB,yBAAJ,CAAiB/B,QAAQ,CAACgC,UAA1B,EAAsClB,MAAtC,EAA8C;AAChDd,QAAAA,QAAQ,EAAE;AACNe,UAAAA,GADM;AAEND,UAAAA,MAFM;AAGND,UAAAA,OAHM;AAINoB,UAAAA,IAAI,EAAEC;AAJA,SADsC;AAOhD7B,QAAAA,OAAO,EAAEF;AAPuC,OAA9C,CAAN;AASH;;AACD,QAAIW,MAAM,KAAK,GAAf,EAAoB;AAChB,YAAM,IAAIiB,yBAAJ,CAAiB,cAAjB,EAAiCjB,MAAjC,EAAyC;AAC3Cd,QAAAA,QAAQ,EAAE;AACNe,UAAAA,GADM;AAEND,UAAAA,MAFM;AAGND,UAAAA,OAHM;AAINoB,UAAAA,IAAI,EAAE,MAAME,eAAe,CAACnC,QAAD;AAJrB,SADiC;AAO3CK,QAAAA,OAAO,EAAEF;AAPkC,OAAzC,CAAN;AASH;;AACD,QAAIW,MAAM,IAAI,GAAd,EAAmB;AACf,YAAMmB,IAAI,GAAG,MAAME,eAAe,CAACnC,QAAD,CAAlC;AACA,YAAMoC,KAAK,GAAG,IAAIL,yBAAJ,CAAiBM,cAAc,CAACJ,IAAD,CAA/B,EAAuCnB,MAAvC,EAA+C;AACzDd,QAAAA,QAAQ,EAAE;AACNe,UAAAA,GADM;AAEND,UAAAA,MAFM;AAGND,UAAAA,OAHM;AAINoB,UAAAA;AAJM,SAD+C;AAOzD5B,QAAAA,OAAO,EAAEF;AAPgD,OAA/C,CAAd;AASA,YAAMiC,KAAN;AACH;;AACD,WAAOD,eAAe,CAACnC,QAAD,CAAtB;AACH,GA/DM,EAgEFsB,IAhEE,CAgEIW,IAAD,IAAU;AAChB,WAAO;AACHnB,MAAAA,MADG;AAEHC,MAAAA,GAFG;AAGHF,MAAAA,OAHG;AAIHoB,MAAAA;AAJG,KAAP;AAMH,GAvEM,EAwEFK,KAxEE,CAwEKF,KAAD,IAAW;AAClB,QAAIA,KAAK,YAAYL,yBAArB,EACI,MAAMK,KAAN;AACJ,UAAM,IAAIL,yBAAJ,CAAiBK,KAAK,CAACG,OAAvB,EAAgC,GAAhC,EAAqC;AACvClC,MAAAA,OAAO,EAAEF;AAD8B,KAArC,CAAN;AAGH,GA9EM,CAAP;AA+EH;;AACD,eAAegC,eAAf,CAA+BnC,QAA/B,EAAyC;AACrC,QAAMwC,WAAW,GAAGxC,QAAQ,CAACa,OAAT,CAAiB4B,GAAjB,CAAqB,cAArB,CAApB;;AACA,MAAI,oBAAoBC,IAApB,CAAyBF,WAAzB,CAAJ,EAA2C;AACvC,WAAOxC,QAAQ,CAAC2C,IAAT,EAAP;AACH;;AACD,MAAI,CAACH,WAAD,IAAgB,yBAAyBE,IAAzB,CAA8BF,WAA9B,CAApB,EAAgE;AAC5D,WAAOxC,QAAQ,CAAC4C,IAAT,EAAP;AACH;;AACD,SAAOC,iBAAS,CAAC7C,QAAD,CAAhB;AACH;;AACD,SAASqC,cAAT,CAAwBJ,IAAxB,EAA8B;AAC1B,MAAI,OAAOA,IAAP,KAAgB,QAApB,EACI,OAAOA,IAAP,CAFsB;;AAI1B,MAAI,aAAaA,IAAjB,EAAuB;AACnB,QAAIxB,KAAK,CAACC,OAAN,CAAcuB,IAAI,CAACa,MAAnB,CAAJ,EAAgC;AAC5B,aAAQ,GAAEb,IAAI,CAACM,OAAQ,KAAIN,IAAI,CAACa,MAAL,CAAYC,GAAZ,CAAgBpC,IAAI,CAACC,SAArB,EAAgCoC,IAAhC,CAAqC,IAArC,CAA2C,EAAtE;AACH;;AACD,WAAOf,IAAI,CAACM,OAAZ;AACH,GATyB;;;AAW1B,SAAQ,kBAAiB5B,IAAI,CAACC,SAAL,CAAeqB,IAAf,CAAqB,EAA9C;AACH;;ACrHc,SAASgB,YAAT,CAAsBC,WAAtB,EAAmCC,WAAnC,EAAgD;AAC3D,QAAMC,QAAQ,GAAGF,WAAW,CAACG,QAAZ,CAAqBF,WAArB,CAAjB;;AACA,QAAMG,MAAM,GAAG,UAAUC,KAAV,EAAiBC,UAAjB,EAA6B;AACxC,UAAMC,eAAe,GAAGL,QAAQ,CAACM,KAAT,CAAeH,KAAf,EAAsBC,UAAtB,CAAxB;;AACA,QAAI,CAACC,eAAe,CAACpD,OAAjB,IAA4B,CAACoD,eAAe,CAACpD,OAAhB,CAAwBsD,IAAzD,EAA+D;AAC3D,aAAOzD,YAAY,CAACkD,QAAQ,CAACQ,KAAT,CAAeH,eAAf,CAAD,CAAnB;AACH;;AACD,UAAMpD,OAAO,GAAG,CAACkD,KAAD,EAAQC,UAAR,KAAuB;AACnC,aAAOtD,YAAY,CAACkD,QAAQ,CAACQ,KAAT,CAAeR,QAAQ,CAACM,KAAT,CAAeH,KAAf,EAAsBC,UAAtB,CAAf,CAAD,CAAnB;AACH,KAFD;;AAGAtC,IAAAA,MAAM,CAACC,MAAP,CAAcd,OAAd,EAAuB;AACnB+C,MAAAA,QADmB;AAEnBC,MAAAA,QAAQ,EAAEJ,YAAY,CAACY,IAAb,CAAkB,IAAlB,EAAwBT,QAAxB;AAFS,KAAvB;AAIA,WAAOK,eAAe,CAACpD,OAAhB,CAAwBsD,IAAxB,CAA6BtD,OAA7B,EAAsCoD,eAAtC,CAAP;AACH,GAbD;;AAcA,SAAOvC,MAAM,CAACC,MAAP,CAAcmC,MAAd,EAAsB;AACzBF,IAAAA,QADyB;AAEzBC,IAAAA,QAAQ,EAAEJ,YAAY,CAACY,IAAb,CAAkB,IAAlB,EAAwBT,QAAxB;AAFe,GAAtB,CAAP;AAIH;;MCjBY/C,OAAO,GAAG4C,YAAY,CAACG,iBAAD,EAAW;AAC1CvC,EAAAA,OAAO,EAAE;AACL,kBAAe,sBAAqBf,OAAQ,IAAGgE,+BAAY,EAAG;AADzD;AADiC,CAAX,CAA5B;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request/dist-src/fetch-wrapper.js b/node_modules/@octokit/request/dist-src/fetch-wrapper.js new file mode 100644 index 0000000..79653c4 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/fetch-wrapper.js @@ -0,0 +1,119 @@ +import { isPlainObject } from "is-plain-object"; +import nodeFetch from "node-fetch"; +import { RequestError } from "@octokit/request-error"; +import getBuffer from "./get-buffer-response"; +export default function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log + ? requestOptions.request.log + : console; + if (isPlainObject(requestOptions.body) || + Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect, + }, + // `requestOptions.request.agent` type is incompatible + // see https://github.com/octokit/types.ts/pull/264 + requestOptions.request)) + .then(async (response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + if (status === 204 || status === 205) { + return; + } + // GitHub API returns 200 for HEAD requests + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: undefined, + }, + request: requestOptions, + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response), + }, + request: requestOptions, + }); + } + if (status >= 400) { + const data = await getResponseData(response); + const error = new RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data, + }, + request: requestOptions, + }); + throw error; + } + return getResponseData(response); + }) + .then((data) => { + return { + status, + url, + headers, + data, + }; + }) + .catch((error) => { + if (error instanceof RequestError) + throw error; + throw new RequestError(error.message, 500, { + request: requestOptions, + }); + }); +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json(); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBuffer(response); +} +function toErrorMessage(data) { + if (typeof data === "string") + return data; + // istanbul ignore else - just in case + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; + } + return data.message; + } + // istanbul ignore next - just in case + return `Unknown error: ${JSON.stringify(data)}`; +} diff --git a/node_modules/@octokit/request/dist-src/get-buffer-response.js b/node_modules/@octokit/request/dist-src/get-buffer-response.js new file mode 100644 index 0000000..845a394 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/get-buffer-response.js @@ -0,0 +1,3 @@ +export default function getBufferResponse(response) { + return response.arrayBuffer(); +} diff --git a/node_modules/@octokit/request/dist-src/index.js b/node_modules/@octokit/request/dist-src/index.js new file mode 100644 index 0000000..2460e99 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/index.js @@ -0,0 +1,9 @@ +import { endpoint } from "@octokit/endpoint"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +import withDefaults from "./with-defaults"; +export const request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}`, + }, +}); diff --git a/node_modules/@octokit/request/dist-src/version.js b/node_modules/@octokit/request/dist-src/version.js new file mode 100644 index 0000000..a068c68 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "5.6.3"; diff --git a/node_modules/@octokit/request/dist-src/with-defaults.js b/node_modules/@octokit/request/dist-src/with-defaults.js new file mode 100644 index 0000000..e206429 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/with-defaults.js @@ -0,0 +1,22 @@ +import fetchWrapper from "./fetch-wrapper"; +export default function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); +} diff --git a/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts b/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts new file mode 100644 index 0000000..4901c79 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts @@ -0,0 +1,11 @@ +import { EndpointInterface } from "@octokit/types"; +export default function fetchWrapper(requestOptions: ReturnType & { + redirect?: "error" | "follow" | "manual"; +}): Promise<{ + status: number; + url: string; + headers: { + [header: string]: string; + }; + data: any; +}>; diff --git a/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts b/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts new file mode 100644 index 0000000..915b705 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts @@ -0,0 +1,2 @@ +import { Response } from "node-fetch"; +export default function getBufferResponse(response: Response): Promise; diff --git a/node_modules/@octokit/request/dist-types/index.d.ts b/node_modules/@octokit/request/dist-types/index.d.ts new file mode 100644 index 0000000..1030809 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const request: import("@octokit/types").RequestInterface; diff --git a/node_modules/@octokit/request/dist-types/version.d.ts b/node_modules/@octokit/request/dist-types/version.d.ts new file mode 100644 index 0000000..5629807 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "5.6.3"; diff --git a/node_modules/@octokit/request/dist-types/with-defaults.d.ts b/node_modules/@octokit/request/dist-types/with-defaults.d.ts new file mode 100644 index 0000000..0080469 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointInterface, RequestInterface, RequestParameters } from "@octokit/types"; +export default function withDefaults(oldEndpoint: EndpointInterface, newDefaults: RequestParameters): RequestInterface; diff --git a/node_modules/@octokit/request/dist-web/index.js b/node_modules/@octokit/request/dist-web/index.js new file mode 100644 index 0000000..44359f8 --- /dev/null +++ b/node_modules/@octokit/request/dist-web/index.js @@ -0,0 +1,158 @@ +import { endpoint } from '@octokit/endpoint'; +import { getUserAgent } from 'universal-user-agent'; +import { isPlainObject } from 'is-plain-object'; +import nodeFetch from 'node-fetch'; +import { RequestError } from '@octokit/request-error'; + +const VERSION = "5.6.3"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log + ? requestOptions.request.log + : console; + if (isPlainObject(requestOptions.body) || + Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect, + }, + // `requestOptions.request.agent` type is incompatible + // see https://github.com/octokit/types.ts/pull/264 + requestOptions.request)) + .then(async (response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + if (status === 204 || status === 205) { + return; + } + // GitHub API returns 200 for HEAD requests + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: undefined, + }, + request: requestOptions, + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response), + }, + request: requestOptions, + }); + } + if (status >= 400) { + const data = await getResponseData(response); + const error = new RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data, + }, + request: requestOptions, + }); + throw error; + } + return getResponseData(response); + }) + .then((data) => { + return { + status, + url, + headers, + data, + }; + }) + .catch((error) => { + if (error instanceof RequestError) + throw error; + throw new RequestError(error.message, 500, { + request: requestOptions, + }); + }); +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json(); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBufferResponse(response); +} +function toErrorMessage(data) { + if (typeof data === "string") + return data; + // istanbul ignore else - just in case + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; + } + return data.message; + } + // istanbul ignore next - just in case + return `Unknown error: ${JSON.stringify(data)}`; +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); +} + +const request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}`, + }, +}); + +export { request }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request/dist-web/index.js.map b/node_modules/@octokit/request/dist-web/index.js.map new file mode 100644 index 0000000..b3cda51 --- /dev/null +++ b/node_modules/@octokit/request/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/get-buffer-response.js","../dist-src/fetch-wrapper.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"5.6.3\";\n","export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n","import { isPlainObject } from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log\n ? requestOptions.request.log\n : console;\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect,\n }, \n // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request))\n .then(async (response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requests\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined,\n },\n request: requestOptions,\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response),\n },\n request: requestOptions,\n });\n }\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data,\n },\n request: requestOptions,\n });\n throw error;\n }\n return getResponseData(response);\n })\n .then((data) => {\n return {\n status,\n url,\n headers,\n data,\n };\n })\n .catch((error) => {\n if (error instanceof RequestError)\n throw error;\n throw new RequestError(error.message, 500, {\n request: requestOptions,\n });\n });\n}\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n}\nfunction toErrorMessage(data) {\n if (typeof data === \"string\")\n return data;\n // istanbul ignore else - just in case\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n return data.message;\n }\n // istanbul ignore next - just in case\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n","import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n}\n","import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`,\n },\n});\n"],"names":["getBuffer"],"mappings":";;;;;;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACA3B,SAAS,iBAAiB,CAAC,QAAQ,EAAE;AACpD,IAAI,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;;ACEc,SAAS,YAAY,CAAC,cAAc,EAAE;AACrD,IAAI,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG;AACpE,UAAU,cAAc,CAAC,OAAO,CAAC,GAAG;AACpC,UAAU,OAAO,CAAC;AAClB,IAAI,IAAI,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;AAC1C,QAAQ,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC5C,QAAQ,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACxF,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;AACnD,QAAQ,MAAM,EAAE,cAAc,CAAC,MAAM;AACrC,QAAQ,IAAI,EAAE,cAAc,CAAC,IAAI;AACjC,QAAQ,OAAO,EAAE,cAAc,CAAC,OAAO;AACvC,QAAQ,QAAQ,EAAE,cAAc,CAAC,QAAQ;AACzC,KAAK;AACL;AACA;AACA,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAS,IAAI,CAAC,OAAO,QAAQ,KAAK;AAClC,QAAQ,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC3B,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,QAAQ,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpD,YAAY,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,aAAa,IAAI,OAAO,EAAE;AACtC,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC/F,YAAY,MAAM,eAAe,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7D,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,kDAAkD,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClN,SAAS;AACT,QAAQ,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;AAC9C,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,EAAE;AAC9C,YAAY,IAAI,MAAM,GAAG,GAAG,EAAE;AAC9B,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE;AAChE,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,GAAG;AACvB,oBAAoB,MAAM;AAC1B,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,EAAE,SAAS;AACnC,iBAAiB;AACjB,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE;AAC3D,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,GAAG;AACvB,oBAAoB,MAAM;AAC1B,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,EAAE,MAAM,eAAe,CAAC,QAAQ,CAAC;AACzD,iBAAiB;AACjB,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;AACzD,YAAY,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE;AACzE,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,GAAG;AACvB,oBAAoB,MAAM;AAC1B,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI;AACxB,iBAAiB;AACjB,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT,QAAQ,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACzC,KAAK,CAAC;AACN,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK;AACxB,QAAQ,OAAO;AACf,YAAY,MAAM;AAClB,YAAY,GAAG;AACf,YAAY,OAAO;AACnB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,KAAK,CAAC;AACN,SAAS,KAAK,CAAC,CAAC,KAAK,KAAK;AAC1B,QAAQ,IAAI,KAAK,YAAY,YAAY;AACzC,YAAY,MAAM,KAAK,CAAC;AACxB,QAAQ,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;AACnD,YAAY,OAAO,EAAE,cAAc;AACnC,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,CAAC;AACD,eAAe,eAAe,CAAC,QAAQ,EAAE;AACzC,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC7D,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC/C,QAAQ,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,IAAI,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACpE,QAAQ,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,OAAOA,iBAAS,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AACD,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;AAChC,QAAQ,OAAO,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE;AAC3B,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxC,YAAY,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpF,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL;AACA,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;;ACrHc,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;AAC/D,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACvD,IAAI,MAAM,MAAM,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE;AAChD,QAAQ,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE;AACvE,YAAY,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AACjE,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AAC/C,YAAY,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACnF,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;AAC/B,YAAY,QAAQ;AACpB,YAAY,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvD,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACtE,KAAK,CAAC;AACN,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACjC,QAAQ,QAAQ;AAChB,QAAQ,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACnD,KAAK,CAAC,CAAC;AACP,CAAC;;ACjBW,MAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE;AAC9C,IAAI,OAAO,EAAE;AACb,QAAQ,YAAY,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACvE,KAAK;AACL,CAAC,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request/package.json b/node_modules/@octokit/request/package.json new file mode 100644 index 0000000..e38c955 --- /dev/null +++ b/node_modules/@octokit/request/package.json @@ -0,0 +1,56 @@ +{ + "name": "@octokit/request", + "description": "Send parameterized requests to GitHub's APIs with sensible defaults in browsers and Node", + "version": "5.6.3", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "request" + ], + "repository": "github:octokit/request.js", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "devDependencies": { + "@octokit/auth-app": "^3.0.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.2.4", + "@types/jest": "^27.0.0", + "@types/lolex": "^5.1.0", + "@types/node": "^14.0.0", + "@types/node-fetch": "^2.3.3", + "@types/once": "^1.4.0", + "fetch-mock": "^9.3.1", + "jest": "^27.0.0", + "lolex": "^6.0.0", + "prettier": "2.4.1", + "semantic-release": "^18.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "string-to-arraybuffer": "^1.0.2", + "ts-jest": "^27.0.0", + "typescript": "^4.0.2" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/types/LICENSE b/node_modules/@octokit/types/LICENSE new file mode 100644 index 0000000..57bee5f --- /dev/null +++ b/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@octokit/types/README.md b/node_modules/@octokit/types/README.md new file mode 100644 index 0000000..c48ce42 --- /dev/null +++ b/node_modules/@octokit/types/README.md @@ -0,0 +1,65 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) + + + +- [Usage](#usage) +- [Examples](#examples) + - [Get parameter and response data types for a REST API endpoint](#get-parameter-and-response-data-types-for-a-rest-api-endpoint) + - [Get response types from endpoint methods](#get-response-types-from-endpoint-methods) +- [Contributing](#contributing) +- [License](#license) + + + +## Usage + +See all exported types at https://octokit.github.io/types.ts + +## Examples + +### Get parameter and response data types for a REST API endpoint + +```ts +import { Endpoints } from "@octokit/types"; + +type listUserReposParameters = + Endpoints["GET /repos/{owner}/{repo}"]["parameters"]; +type listUserReposResponse = Endpoints["GET /repos/{owner}/{repo}"]["response"]; + +async function listRepos( + options: listUserReposParameters +): listUserReposResponse["data"] { + // ... +} +``` + +### Get response types from endpoint methods + +```ts +import { + GetResponseTypeFromEndpointMethod, + GetResponseDataTypeFromEndpointMethod, +} from "@octokit/types"; +import { Octokit } from "@octokit/rest"; + +const octokit = new Octokit(); +type CreateLabelResponseType = GetResponseTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +type CreateLabelResponseDataType = GetResponseDataTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/types/dist-node/index.js b/node_modules/@octokit/types/dist-node/index.js new file mode 100644 index 0000000..b3c252b --- /dev/null +++ b/node_modules/@octokit/types/dist-node/index.js @@ -0,0 +1,8 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "6.41.0"; + +exports.VERSION = VERSION; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/types/dist-node/index.js.map b/node_modules/@octokit/types/dist-node/index.js.map new file mode 100644 index 0000000..2d148d3 --- /dev/null +++ b/node_modules/@octokit/types/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":["VERSION"],"mappings":";;;;MAAaA,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/types/dist-src/AuthInterface.js b/node_modules/@octokit/types/dist-src/AuthInterface.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/AuthInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/EndpointDefaults.js b/node_modules/@octokit/types/dist-src/EndpointDefaults.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/EndpointDefaults.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/EndpointInterface.js b/node_modules/@octokit/types/dist-src/EndpointInterface.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/EndpointInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/EndpointOptions.js b/node_modules/@octokit/types/dist-src/EndpointOptions.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/EndpointOptions.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/Fetch.js b/node_modules/@octokit/types/dist-src/Fetch.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/Fetch.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js b/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/OctokitResponse.js b/node_modules/@octokit/types/dist-src/OctokitResponse.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/OctokitResponse.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/RequestError.js b/node_modules/@octokit/types/dist-src/RequestError.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/RequestError.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/RequestHeaders.js b/node_modules/@octokit/types/dist-src/RequestHeaders.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/RequestHeaders.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/RequestInterface.js b/node_modules/@octokit/types/dist-src/RequestInterface.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/RequestInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/RequestMethod.js b/node_modules/@octokit/types/dist-src/RequestMethod.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/RequestMethod.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/RequestOptions.js b/node_modules/@octokit/types/dist-src/RequestOptions.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/RequestOptions.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/RequestParameters.js b/node_modules/@octokit/types/dist-src/RequestParameters.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/RequestParameters.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/RequestRequestOptions.js b/node_modules/@octokit/types/dist-src/RequestRequestOptions.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/RequestRequestOptions.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/ResponseHeaders.js b/node_modules/@octokit/types/dist-src/ResponseHeaders.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/ResponseHeaders.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/Route.js b/node_modules/@octokit/types/dist-src/Route.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/Route.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/Signal.js b/node_modules/@octokit/types/dist-src/Signal.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/Signal.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/StrategyInterface.js b/node_modules/@octokit/types/dist-src/StrategyInterface.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/StrategyInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/Url.js b/node_modules/@octokit/types/dist-src/Url.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/Url.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/VERSION.js b/node_modules/@octokit/types/dist-src/VERSION.js new file mode 100644 index 0000000..45a11b8 --- /dev/null +++ b/node_modules/@octokit/types/dist-src/VERSION.js @@ -0,0 +1 @@ +export const VERSION = "6.41.0"; diff --git a/node_modules/@octokit/types/dist-src/generated/Endpoints.js b/node_modules/@octokit/types/dist-src/generated/Endpoints.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@octokit/types/dist-src/generated/Endpoints.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@octokit/types/dist-src/index.js b/node_modules/@octokit/types/dist-src/index.js new file mode 100644 index 0000000..004ae9b --- /dev/null +++ b/node_modules/@octokit/types/dist-src/index.js @@ -0,0 +1,21 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestError"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/node_modules/@octokit/types/dist-types/AuthInterface.d.ts b/node_modules/@octokit/types/dist-types/AuthInterface.d.ts new file mode 100644 index 0000000..8b39d61 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/AuthInterface.d.ts @@ -0,0 +1,31 @@ +import { EndpointOptions } from "./EndpointOptions"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestInterface } from "./RequestInterface"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface { + (...args: AuthOptions): Promise; + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise>; + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, route: Route, parameters?: RequestParameters): Promise>; + }; +} diff --git a/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts b/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts new file mode 100644 index 0000000..a2c2307 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts @@ -0,0 +1,21 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestParameters } from "./RequestParameters"; +import { Url } from "./Url"; +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export declare type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews: string[]; + }; +}; diff --git a/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts b/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts new file mode 100644 index 0000000..d7b4009 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts @@ -0,0 +1,65 @@ +import { EndpointDefaults } from "./EndpointDefaults"; +import { RequestOptions } from "./RequestOptions"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `url` unless it's set defaults. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): RequestOptions & Pick; + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, parameters?: P): (R extends keyof Endpoints ? Endpoints[R]["request"] : RequestOptions) & Pick; + /** + * Object with current default route and parameters + */ + DEFAULTS: D & EndpointDefaults; + /** + * Returns a new `endpoint` interface with new defaults + */ + defaults: (newDefaults: O) => EndpointInterface; + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: keyof Endpoints | R, parameters?: P): D & (R extends keyof Endpoints ? Endpoints[R]["request"] & Endpoints[R]["parameters"] : EndpointDefaults) & P; + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ +

(options: P): EndpointDefaults & D & P; + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): D & EndpointDefaults; + }; + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: O) => RequestOptions & Pick; +} diff --git a/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts b/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts new file mode 100644 index 0000000..b1b91f1 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts @@ -0,0 +1,7 @@ +import { RequestMethod } from "./RequestMethod"; +import { Url } from "./Url"; +import { RequestParameters } from "./RequestParameters"; +export declare type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/node_modules/@octokit/types/dist-types/Fetch.d.ts b/node_modules/@octokit/types/dist-types/Fetch.d.ts new file mode 100644 index 0000000..cbbd5e8 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Fetch.d.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export declare type Fetch = any; diff --git a/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts b/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts new file mode 100644 index 0000000..70e1a8d --- /dev/null +++ b/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts @@ -0,0 +1,5 @@ +declare type Unwrap = T extends Promise ? U : T; +declare type AnyFunction = (...args: any[]) => any; +export declare type GetResponseTypeFromEndpointMethod = Unwrap>; +export declare type GetResponseDataTypeFromEndpointMethod = Unwrap>["data"]; +export {}; diff --git a/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts b/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts new file mode 100644 index 0000000..28fdfb8 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts @@ -0,0 +1,17 @@ +import { ResponseHeaders } from "./ResponseHeaders"; +import { Url } from "./Url"; +export declare type OctokitResponse = { + headers: ResponseHeaders; + /** + * http response code + */ + status: S; + /** + * URL of response after all redirects + */ + url: Url; + /** + * Response data as documented in the REST API reference documentation at https://docs.github.com/rest/reference + */ + data: T; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestError.d.ts b/node_modules/@octokit/types/dist-types/RequestError.d.ts new file mode 100644 index 0000000..89174e6 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestError.d.ts @@ -0,0 +1,11 @@ +export declare type RequestError = { + name: string; + status: number; + documentation_url: string; + errors?: Array<{ + resource: string; + code: string; + field: string; + message?: string; + }>; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts b/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts new file mode 100644 index 0000000..ac5aae0 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts @@ -0,0 +1,15 @@ +export declare type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestInterface.d.ts b/node_modules/@octokit/types/dist-types/RequestInterface.d.ts new file mode 100644 index 0000000..851811f --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestInterface.d.ts @@ -0,0 +1,34 @@ +import { EndpointInterface } from "./EndpointInterface"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): Promise>; + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, options?: R extends keyof Endpoints ? Endpoints[R]["parameters"] & RequestParameters : RequestParameters): R extends keyof Endpoints ? Promise : Promise>; + /** + * Returns a new `request` with updated route and parameters + */ + defaults: (newDefaults: O) => RequestInterface; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/node_modules/@octokit/types/dist-types/RequestMethod.d.ts b/node_modules/@octokit/types/dist-types/RequestMethod.d.ts new file mode 100644 index 0000000..e999c8d --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestMethod.d.ts @@ -0,0 +1,4 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export declare type RequestMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"; diff --git a/node_modules/@octokit/types/dist-types/RequestOptions.d.ts b/node_modules/@octokit/types/dist-types/RequestOptions.d.ts new file mode 100644 index 0000000..97e2181 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestOptions.d.ts @@ -0,0 +1,14 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { Url } from "./Url"; +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export declare type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestParameters.d.ts b/node_modules/@octokit/types/dist-types/RequestParameters.d.ts new file mode 100644 index 0000000..b056a0e --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestParameters.d.ts @@ -0,0 +1,45 @@ +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { RequestHeaders } from "./RequestHeaders"; +import { Url } from "./Url"; +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export declare type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/{org}`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/{org}`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: unknown; +}; diff --git a/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts new file mode 100644 index 0000000..8f5c43a --- /dev/null +++ b/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -0,0 +1,26 @@ +import { Fetch } from "./Fetch"; +import { Signal } from "./Signal"; +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export declare type RequestRequestOptions = { + /** + * Node only. Useful for custom proxy, certificate, or dns lookup. + * + * @see https://nodejs.org/api/http.html#http_class_http_agent + */ + agent?: unknown; + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). `options.request.signal` is recommended instead. + */ + timeout?: number; + [option: string]: any; +}; diff --git a/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts b/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts new file mode 100644 index 0000000..c8fbe43 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts @@ -0,0 +1,20 @@ +export declare type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/types/dist-types/Route.d.ts b/node_modules/@octokit/types/dist-types/Route.d.ts new file mode 100644 index 0000000..dcaac75 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Route.d.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/{org}'`, `'PUT /orgs/{org}'`, `GET https://example.com/foo/bar` + */ +export declare type Route = string; diff --git a/node_modules/@octokit/types/dist-types/Signal.d.ts b/node_modules/@octokit/types/dist-types/Signal.d.ts new file mode 100644 index 0000000..4ebcf24 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Signal.d.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export declare type Signal = any; diff --git a/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts b/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts new file mode 100644 index 0000000..405cbd2 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts @@ -0,0 +1,4 @@ +import { AuthInterface } from "./AuthInterface"; +export interface StrategyInterface { + (...args: StrategyOptions): AuthInterface; +} diff --git a/node_modules/@octokit/types/dist-types/Url.d.ts b/node_modules/@octokit/types/dist-types/Url.d.ts new file mode 100644 index 0000000..3e69916 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/Url.d.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/{org}'`, `https://example.com/foo/bar` + */ +export declare type Url = string; diff --git a/node_modules/@octokit/types/dist-types/VERSION.d.ts b/node_modules/@octokit/types/dist-types/VERSION.d.ts new file mode 100644 index 0000000..dc24575 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "6.41.0"; diff --git a/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts b/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts new file mode 100644 index 0000000..3fe7cf8 --- /dev/null +++ b/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts @@ -0,0 +1,3571 @@ +import { paths } from "@octokit/openapi-types"; +import { OctokitResponse } from "../OctokitResponse"; +import { RequestHeaders } from "../RequestHeaders"; +import { RequestRequestOptions } from "../RequestRequestOptions"; +declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; +declare type ExtractParameters = "parameters" extends keyof T ? UnionToIntersection<{ + [K in keyof T["parameters"]]: T["parameters"][K]; +}[keyof T["parameters"]]> : {}; +declare type ExtractRequestBody = "requestBody" extends keyof T ? "content" extends keyof T["requestBody"] ? "application/json" extends keyof T["requestBody"]["content"] ? T["requestBody"]["content"]["application/json"] : { + data: { + [K in keyof T["requestBody"]["content"]]: T["requestBody"]["content"][K]; + }[keyof T["requestBody"]["content"]]; +} : "application/json" extends keyof T["requestBody"] ? T["requestBody"]["application/json"] : { + data: { + [K in keyof T["requestBody"]]: T["requestBody"][K]; + }[keyof T["requestBody"]]; +} : {}; +declare type ToOctokitParameters = ExtractParameters & ExtractRequestBody; +declare type RequiredPreview = T extends string ? { + mediaType: { + previews: [T, ...string[]]; + }; +} : {}; +declare type Operation = { + parameters: ToOctokitParameters & RequiredPreview; + request: { + method: Method extends keyof MethodsMap ? MethodsMap[Method] : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + }; + response: ExtractOctokitResponse; +}; +declare type MethodsMap = { + delete: "DELETE"; + get: "GET"; + patch: "PATCH"; + post: "POST"; + put: "PUT"; +}; +declare type SuccessStatuses = 200 | 201 | 202 | 204; +declare type RedirectStatuses = 301 | 302; +declare type EmptyResponseStatuses = 201 | 204; +declare type KnownJsonResponseTypes = "application/json" | "application/scim+json" | "text/html"; +declare type SuccessResponseDataType = { + [K in SuccessStatuses & keyof Responses]: GetContentKeyIfPresent extends never ? never : OctokitResponse, K>; +}[SuccessStatuses & keyof Responses]; +declare type RedirectResponseDataType = { + [K in RedirectStatuses & keyof Responses]: OctokitResponse; +}[RedirectStatuses & keyof Responses]; +declare type EmptyResponseDataType = { + [K in EmptyResponseStatuses & keyof Responses]: OctokitResponse; +}[EmptyResponseStatuses & keyof Responses]; +declare type GetContentKeyIfPresent = "content" extends keyof T ? DataType : DataType; +declare type DataType = { + [K in KnownJsonResponseTypes & keyof T]: T[K]; +}[KnownJsonResponseTypes & keyof T]; +declare type ExtractOctokitResponse = "responses" extends keyof R ? SuccessResponseDataType extends never ? RedirectResponseDataType extends never ? EmptyResponseDataType : RedirectResponseDataType : SuccessResponseDataType : unknown; +export interface Endpoints { + /** + * @see https://docs.github.com/rest/reference/apps#delete-an-installation-for-the-authenticated-app + */ + "DELETE /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#unsuspend-an-app-installation + */ + "DELETE /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "delete">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#delete-a-grant + */ + "DELETE /applications/grants/{grant_id}": Operation<"/applications/grants/{grant_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#delete-an-app-authorization + */ + "DELETE /applications/{client_id}/grant": Operation<"/applications/{client_id}/grant", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#delete-an-app-token + */ + "DELETE /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "delete">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#delete-an-authorization + */ + "DELETE /authorizations/{authorization_id}": Operation<"/authorizations/{authorization_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#disable-a-selected-organization-for-github-actions-in-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/permissions/organizations/{org_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-organization-access-to-a-self-hosted-runner-group-in-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-self-hosted-runner-from-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/gists#delete-a-gist + */ + "DELETE /gists/{gist_id}": Operation<"/gists/{gist_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/gists#delete-a-gist-comment + */ + "DELETE /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/gists#unstar-a-gist + */ + "DELETE /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#revoke-an-installation-access-token + */ + "DELETE /installation/token": Operation<"/installation/token", "delete">; + /** + * @see https://docs.github.com/rest/reference/activity#delete-a-thread-subscription + */ + "DELETE /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#disable-a-selected-repository-for-github-actions-in-an-organization + */ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-organization + */ + "DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization + */ + "DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#unblock-a-user-from-an-organization + */ + "DELETE /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-a-saml-sso-authorization-for-an-organization + */ + "DELETE /orgs/{org}/credential-authorizations/{credential_id}": Operation<"/orgs/{org}/credential-authorizations/{credential_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/dependabot#delete-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#delete-an-organization-webhook + */ + "DELETE /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-an-organization + */ + "DELETE /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#cancel-an-organization-invitation + */ + "DELETE /orgs/{org}/invitations/{invitation_id}": Operation<"/orgs/{org}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-an-organization-member + */ + "DELETE /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/codespaces + */ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-organization-membership-for-a-user + */ + "DELETE /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#delete-an-organization-migration-archive + */ + "DELETE /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#unlock-an-organization-repository + */ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-outside-collaborator-from-an-organization + */ + "DELETE /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/packages#delete-a-package-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/packages#delete-a-package-version-for-an-organization + */ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-public-organization-membership-for-the-authenticated-user + */ + "DELETE /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion-comment + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/reactions#delete-team-discussion-comment-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/reactions#delete-team-discussion-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#unlink-external-idp-group-team-connection + */ + "DELETE /orgs/{org}/teams/{team_slug}/external-groups": Operation<"/orgs/{org}/teams/{team_slug}/external-groups", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user + */ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams/#remove-a-repository-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/reference/projects#delete-a-project-card + */ + "DELETE /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/projects#delete-a-project-column + */ + "DELETE /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/projects#delete-a-project + */ + "DELETE /projects/{project_id}": Operation<"/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/projects#remove-project-collaborator + */ + "DELETE /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-repository + */ + "DELETE /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-an-artifact + */ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id + */ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}": Operation<"/repos/{owner}/{repo}/actions/caches/{cache_id}", "delete">; + /** + * @see https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key + */ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}": Operation<"/repos/{owner}/{repo}/actions/caches", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-workflow-run + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-workflow-run-logs + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/v3/repos#delete-autolink + */ + "DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#disable-automated-security-fixes + */ + "DELETE /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-admin-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-pull-request-review-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-commit-signature-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-status-check-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-status-check-contexts + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-app-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-team-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-user-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "delete">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#delete-a-code-scanning-analysis-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/codespaces#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-a-repository-collaborator + */ + "DELETE /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-commit-comment + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/reactions#delete-a-commit-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-file + */ + "DELETE /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "delete">; + /** + * @see https://docs.github.com/rest/reference/dependabot#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-deployment + */ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-an-environment + */ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/git#delete-a-reference + */ + "DELETE /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-repository-webhook + */ + "DELETE /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#cancel-an-import + */ + "DELETE /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "delete">; + /** + * @see https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-repository-invitation + */ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#delete-an-issue-comment + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/reactions#delete-an-issue-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-assignees-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-all-labels-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-a-label-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#unlock-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "delete">; + /** + * @see https://docs.github.com/rest/reference/reactions#delete-an-issue-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-deploy-key + */ + "DELETE /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#delete-a-label + */ + "DELETE /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#disable-git-lfs-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/lfs": Operation<"/repos/{owner}/{repo}/lfs", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#delete-a-milestone + */ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-github-pages-site + */ + "DELETE /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "delete">; + /** + * @see https://docs.github.com/rest/reference/pulls#delete-a-review-comment-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/reactions#delete-a-pull-request-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/pulls#remove-requested-reviewers-from-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "delete">; + /** + * @see https://docs.github.com/rest/reference/pulls#delete-a-pending-review-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-release-asset + */ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-release + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/reactions/#delete-a-release-reaction + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/activity#delete-a-repository-subscription + */ + "DELETE /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-tag-protection-state-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}": Operation<"/repos/{owner}/{repo}/tags/protection/{tag_protection_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#disable-vulnerability-alerts + */ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-an-environment-secret + */ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-group-from-an-enterprise + */ + "DELETE /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-user-from-an-enterprise + */ + "DELETE /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/scim#delete-a-scim-user-from-an-organization + */ + "DELETE /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams/#delete-a-team-legacy + */ + "DELETE /teams/{team_id}": Operation<"/teams/{team_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion-comment-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#remove-team-member-legacy + */ + "DELETE /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user-legacy + */ + "DELETE /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams/#remove-a-project-from-a-team-legacy + */ + "DELETE /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams/#remove-a-repository-from-a-team-legacy + */ + "DELETE /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#unblock-a-user + */ + "DELETE /user/blocks/{username}": Operation<"/user/blocks/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/codespaces#delete-a-secret-for-the-authenticated-user + */ + "DELETE /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/codespaces#remove-a-selected-repository-from-a-user-secret + */ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/codespaces#delete-a-codespace-for-the-authenticated-user + */ + "DELETE /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#delete-an-email-address-for-the-authenticated-user + */ + "DELETE /user/emails": Operation<"/user/emails", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#unfollow-a-user + */ + "DELETE /user/following/{username}": Operation<"/user/following/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#delete-a-gpg-key-for-the-authenticated-user + */ + "DELETE /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#remove-a-repository-from-an-app-installation + */ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-from-your-public-repositories + */ + "DELETE /user/interaction-limits": Operation<"/user/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#delete-a-public-ssh-key-for-the-authenticated-user + */ + "DELETE /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#delete-a-user-migration-archive + */ + "DELETE /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#unlock-a-user-repository + */ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/user/migrations/{migration_id}/repos/{repo_name}/lock", "delete">; + /** + * @see https://docs.github.com/rest/reference/packages#delete-a-package-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/packages#delete-a-package-version-for-the-authenticated-user + */ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#decline-a-repository-invitation + */ + "DELETE /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/activity#unstar-a-repository-for-the-authenticated-user + */ + "DELETE /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/reference/packages#delete-a-package-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/packages#delete-a-package-version-for-a-user + */ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "delete">; + /** + * @see https://docs.github.com/rest/overview/resources-in-the-rest-api#root-endpoint + */ + "GET /": Operation<"/", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-the-authenticated-app + */ + "GET /app": Operation<"/app", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-webhook-configuration-for-an-app + */ + "GET /app/hook/config": Operation<"/app/hook/config", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-deliveries-for-an-app-webhook + */ + "GET /app/hook/deliveries": Operation<"/app/hook/deliveries", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-delivery-for-an-app-webhook + */ + "GET /app/hook/deliveries/{delivery_id}": Operation<"/app/hook/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app + */ + "GET /app/installations": Operation<"/app/installations", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-an-installation-for-the-authenticated-app + */ + "GET /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-grants + */ + "GET /applications/grants": Operation<"/applications/grants", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-grant + */ + "GET /applications/grants/{grant_id}": Operation<"/applications/grants/{grant_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps/#get-an-app + */ + "GET /apps/{app_slug}": Operation<"/apps/{app_slug}", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations + */ + "GET /authorizations": Operation<"/authorizations", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-authorization + */ + "GET /authorizations/{authorization_id}": Operation<"/authorizations/{authorization_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/codes-of-conduct#get-all-codes-of-conduct + */ + "GET /codes_of_conduct": Operation<"/codes_of_conduct", "get">; + /** + * @see https://docs.github.com/rest/reference/codes-of-conduct#get-a-code-of-conduct + */ + "GET /codes_of_conduct/{key}": Operation<"/codes_of_conduct/{key}", "get">; + /** + * @see https://docs.github.com/rest/reference/emojis#get-emojis + */ + "GET /emojis": Operation<"/emojis", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-github-enterprise-server-statistics + */ + "GET /enterprise-installation/{enterprise_or_org}/server-statistics": Operation<"/enterprise-installation/{enterprise_or_org}/server-statistics", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-cache-usage-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/cache/usage": Operation<"/enterprises/{enterprise}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions": Operation<"/enterprises/{enterprise}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-organizations-enabled-for-github-actions-in-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions/organizations": Operation<"/enterprises/{enterprise}/actions/permissions/organizations", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-allowed-actions-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions/selected-actions": Operation<"/enterprises/{enterprise}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-default-workflow-permissions-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions/workflow": Operation<"/enterprises/{enterprise}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups": Operation<"/enterprises/{enterprise}/actions/runner-groups", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-group-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-organization-access-to-a-self-hosted-runner-group-in-a-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners": Operation<"/enterprises/{enterprise}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-runner-applications-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners/downloads": Operation<"/enterprises/{enterprise}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise + */ + "GET /enterprises/{enterprise}/audit-log": Operation<"/enterprises/{enterprise}/audit-log", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/code-scanning/alerts": Operation<"/enterprises/{enterprise}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-an-enterprise + */ + "GET /enterprises/{enterprise}/secret-scanning/alerts": Operation<"/enterprises/{enterprise}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-actions-billing-for-an-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/actions": Operation<"/enterprises/{enterprise}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#export-advanced-security-active-committers-data-for-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/advanced-security": Operation<"/enterprises/{enterprise}/settings/billing/advanced-security", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-packages-billing-for-an-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/packages": Operation<"/enterprises/{enterprise}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-shared-storage-billing-for-an-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/shared-storage": Operation<"/enterprises/{enterprise}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events + */ + "GET /events": Operation<"/events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-feeds + */ + "GET /feeds": Operation<"/feeds", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-gists-for-the-authenticated-user + */ + "GET /gists": Operation<"/gists", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-public-gists + */ + "GET /gists/public": Operation<"/gists/public", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-starred-gists + */ + "GET /gists/starred": Operation<"/gists/starred", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#get-a-gist + */ + "GET /gists/{gist_id}": Operation<"/gists/{gist_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-comments + */ + "GET /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#get-a-gist-comment + */ + "GET /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-commits + */ + "GET /gists/{gist_id}/commits": Operation<"/gists/{gist_id}/commits", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-forks + */ + "GET /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#check-if-a-gist-is-starred + */ + "GET /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#get-a-gist-revision + */ + "GET /gists/{gist_id}/{sha}": Operation<"/gists/{gist_id}/{sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/gitignore#get-all-gitignore-templates + */ + "GET /gitignore/templates": Operation<"/gitignore/templates", "get">; + /** + * @see https://docs.github.com/rest/reference/gitignore#get-a-gitignore-template + */ + "GET /gitignore/templates/{name}": Operation<"/gitignore/templates/{name}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": Operation<"/installation/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": Operation<"/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/licenses#get-all-commonly-used-licenses + */ + "GET /licenses": Operation<"/licenses", "get">; + /** + * @see https://docs.github.com/rest/reference/licenses#get-a-license + */ + "GET /licenses/{license}": Operation<"/licenses/{license}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account + */ + "GET /marketplace_listing/accounts/{account_id}": Operation<"/marketplace_listing/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans + */ + "GET /marketplace_listing/plans": Operation<"/marketplace_listing/plans", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": Operation<"/marketplace_listing/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account-stubbed + */ + "GET /marketplace_listing/stubbed/accounts/{account_id}": Operation<"/marketplace_listing/stubbed/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": Operation<"/marketplace_listing/stubbed/plans", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": Operation<"/marketplace_listing/stubbed/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/reference/meta#get-github-meta-information + */ + "GET /meta": Operation<"/meta", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": Operation<"/networks/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user + */ + "GET /notifications": Operation<"/notifications", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-a-thread + */ + "GET /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-a-thread-subscription-for-the-authenticated-user + */ + "GET /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "get">; + /** + * @see https://docs.github.com/rest/reference/meta#get-octocat + */ + "GET /octocat": Operation<"/octocat", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organizations + */ + "GET /organizations": Operation<"/organizations", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-custom-repository-roles-in-an-organization + */ + "GET /organizations/{organization_id}/custom_roles": Operation<"/organizations/{organization_id}/custom_roles", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-in-organization + * @deprecated "org_id" is now "org" + */ + "GET /orgs/{org_id}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-an-organization + */ + "GET /orgs/{org}": Operation<"/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage": Operation<"/orgs/{org}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-repositories-with-github-actions-cache-usage-for-an-organization + */ + "GET /orgs/{org}/actions/cache/usage-by-repository": Operation<"/orgs/{org}/actions/cache/usage-by-repository", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "GET /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-allowed-actions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-default-workflow-permissions + */ + "GET /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups": Operation<"/orgs/{org}/actions/runner-groups", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-group-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": Operation<"/orgs/{org}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-runner-applications-for-an-organization + */ + "GET /orgs/{org}/actions/runners/downloads": Operation<"/orgs/{org}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": Operation<"/orgs/{org}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-organization-public-key + */ + "GET /orgs/{org}/actions/secrets/public-key": Operation<"/orgs/{org}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-audit-log + */ + "GET /orgs/{org}/audit-log": Operation<"/orgs/{org}/audit-log", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": Operation<"/orgs/{org}/blocks", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#check-if-a-user-is-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-by-organization + */ + "GET /orgs/{org}/code-scanning/alerts": Operation<"/orgs/{org}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-in-organization + */ + "GET /orgs/{org}/codespaces": Operation<"/orgs/{org}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-saml-sso-authorizations-for-an-organization + */ + "GET /orgs/{org}/credential-authorizations": Operation<"/orgs/{org}/credential-authorizations", "get">; + /** + * @see https://docs.github.com/rest/reference/dependabot#list-organization-secrets + */ + "GET /orgs/{org}/dependabot/secrets": Operation<"/orgs/{org}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key + */ + "GET /orgs/{org}/dependabot/secrets/public-key": Operation<"/orgs/{org}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/dependabot#get-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-organization-events + */ + "GET /orgs/{org}/events": Operation<"/orgs/{org}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#external-idp-group-info-for-an-organization + */ + "GET /orgs/{org}/external-group/{group_id}": Operation<"/orgs/{org}/external-group/{group_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-external-idp-groups-for-an-organization + */ + "GET /orgs/{org}/external-groups": Operation<"/orgs/{org}/external-groups", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-failed-organization-invitations + */ + "GET /orgs/{org}/failed_invitations": Operation<"/orgs/{org}/failed_invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-a-webhook-configuration-for-an-organization + */ + "GET /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-deliveries-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-a-webhook-delivery-for-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-an-organization-installation-for-the-authenticated-app + */ + "GET /orgs/{org}/installation": Operation<"/orgs/{org}/installation", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": Operation<"/orgs/{org}/installations", "get">; + /** + * @see https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-an-organization + */ + "GET /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": Operation<"/orgs/{org}/invitations/{invitation_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": Operation<"/orgs/{org}/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-members + */ + "GET /orgs/{org}/members": Operation<"/orgs/{org}/members", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#check-organization-membership-for-a-user + */ + "GET /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user + */ + "GET /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-organization-migrations + */ + "GET /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-an-organization-migration-status + */ + "GET /orgs/{org}/migrations/{migration_id}": Operation<"/orgs/{org}/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#download-an-organization-migration-archive + */ + "GET /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": Operation<"/orgs/{org}/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": Operation<"/orgs/{org}/outside_collaborators", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#list-packages-for-an-organization + */ + "GET /orgs/{org}/packages": Operation<"/orgs/{org}/packages", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-a-package-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-a-package-version-for-an-organization + */ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#list-organization-projects + */ + "GET /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-public-organization-members + */ + "GET /orgs/{org}/public_members": Operation<"/orgs/{org}/public_members", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#check-public-organization-membership-for-a-user + */ + "GET /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-organization-repositories + */ + "GET /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "get">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-an-organization + */ + "GET /orgs/{org}/secret-scanning/alerts": Operation<"/orgs/{org}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-actions-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/actions": Operation<"/orgs/{org}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-advanced-security-active-committers-for-an-organization + */ + "GET /orgs/{org}/settings/billing/advanced-security": Operation<"/orgs/{org}/settings/billing/advanced-security", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-packages-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/packages": Operation<"/orgs/{org}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-shared-storage-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/shared-storage": Operation<"/orgs/{org}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-an-organization + */ + "GET /orgs/{org}/team-sync/groups": Operation<"/orgs/{org}/team-sync/groups", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-teams + */ + "GET /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-team-by-name + */ + "GET /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-external-idp-group-team-connection + */ + "GET /orgs/{org}/teams/{team_slug}/external-groups": Operation<"/orgs/{org}/teams/{team_slug}/external-groups", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": Operation<"/orgs/{org}/teams/{team_slug}/invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": Operation<"/orgs/{org}/teams/{team_slug}/members", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user + */ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": Operation<"/orgs/{org}/teams/{team_slug}/projects", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project + */ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": Operation<"/orgs/{org}/teams/{team_slug}/repos", "get">; + /** + * @see https://docs.github.com/rest/reference/teams/#check-team-permissions-for-a-repository + */ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team + */ + "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings": Operation<"/orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": Operation<"/orgs/{org}/teams/{team_slug}/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#get-a-project-card + */ + "GET /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#get-a-project-column + */ + "GET /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#get-a-project + */ + "GET /projects/{project_id}": Operation<"/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": Operation<"/projects/{project_id}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#get-project-permission-for-a-user + */ + "GET /projects/{project_id}/collaborators/{username}/permission": Operation<"/projects/{project_id}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-columns + */ + "GET /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "get">; + /** + * @see https://docs.github.com/rest/reference/rate-limit#get-rate-limit-status-for-the-authenticated-user + */ + "GET /rate_limit": Operation<"/rate_limit", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-repository + */ + "GET /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": Operation<"/repos/{owner}/{repo}/actions/artifacts", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#download-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-cache-usage-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/cache/usage": Operation<"/repos/{owner}/{repo}/actions/cache/usage", "get">; + /** + * @see https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/caches": Operation<"/repos/{owner}/{repo}/actions/caches", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-job-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#download-job-logs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/actions/oidc#get-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-workflow-access-level-to-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-allowed-actions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-default-workflow-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": Operation<"/repos/{owner}/{repo}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-runner-applications-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/downloads": Operation<"/repos/{owner}/{repo}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": Operation<"/repos/{owner}/{repo}/actions/runs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-the-review-history-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approvals", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run-attempt + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#download-workflow-run-attempt-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#download-workflow-run-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-pending-deployments-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-workflow-run-usage + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": Operation<"/repos/{owner}/{repo}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/actions/secrets/public-key": Operation<"/repos/{owner}/{repo}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": Operation<"/repos/{owner}/{repo}/actions/workflows", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-workflow-usage + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": Operation<"/repos/{owner}/{repo}/assignees", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#check-if-a-user-can-be-assigned + */ + "GET /repos/{owner}/{repo}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/v3/repos#list-autolinks + */ + "GET /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "get">; + /** + * @see https://docs.github.com/v3/repos#get-autolink + */ + "GET /repos/{owner}/{repo}/autolinks/{autolink_id}": Operation<"/repos/{owner}/{repo}/autolinks/{autolink_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-branches + */ + "GET /repos/{owner}/{repo}/branches": Operation<"/repos/{owner}/{repo}/branches", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}": Operation<"/repos/{owner}/{repo}/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-admin-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-pull-request-review-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-commit-signature-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-status-checks-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-status-check-contexts + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-access-restrictions + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-apps-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-teams-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-users-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#get-a-check-run + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#get-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": Operation<"/repos/{owner}/{repo}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#get-a-code-scanning-alert + * @deprecated "alert_id" is now "alert_number" + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_id}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#get-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-instances-of-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-code-scanning-analyses-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": Operation<"/repos/{owner}/{repo}/code-scanning/analyses", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": Operation<"/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#list-recent-code-scanning-analyses-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-codeowners-errors + */ + "GET /repos/{owner}/{repo}/codeowners/errors": Operation<"/repos/{owner}/{repo}/codeowners/errors", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-devcontainers-in-a-repository-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/codespaces/devcontainers": Operation<"/repos/{owner}/{repo}/codespaces/devcontainers", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-available-machine-types-for-a-repository + */ + "GET /repos/{owner}/{repo}/codespaces/machines": Operation<"/repos/{owner}/{repo}/codespaces/machines", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#preview-attributes-for-a-new-codespace + */ + "GET /repos/{owner}/{repo}/codespaces/new": Operation<"/repos/{owner}/{repo}/codespaces/new", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/codespaces/secrets": Operation<"/repos/{owner}/{repo}/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key": Operation<"/repos/{owner}/{repo}/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": Operation<"/repos/{owner}/{repo}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#check-if-a-user-is-a-repository-collaborator + */ + "GET /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-repository-permissions-for-a-user + */ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission": Operation<"/repos/{owner}/{repo}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": Operation<"/repos/{owner}/{repo}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commits + */ + "GET /repos/{owner}/{repo}/commits": Operation<"/repos/{owner}/{repo}/commits", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-branches-for-head-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/pulls", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{ref}": Operation<"/repos/{owner}/{repo}/commits/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-suites", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-combined-status-for-a-specific-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/status": Operation<"/repos/{owner}/{repo}/commits/{ref}/status", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": Operation<"/repos/{owner}/{repo}/commits/{ref}/statuses", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-community-profile-metrics + */ + "GET /repos/{owner}/{repo}/community/profile": Operation<"/repos/{owner}/{repo}/community/profile", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{basehead}": Operation<"/repos/{owner}/{repo}/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{base}...{head}": Operation<"/repos/{owner}/{repo}/compare/{base}...{head}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-repository-content + */ + "GET /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": Operation<"/repos/{owner}/{repo}/contributors", "get">; + /** + * @see https://docs.github.com/rest/reference/dependabot#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/dependabot/secrets": Operation<"/repos/{owner}/{repo}/dependabot/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key": Operation<"/repos/{owner}/{repo}/dependabot/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/dependabot#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/dependency-graph#get-a-diff-of-the-dependencies-between-commits + */ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}": Operation<"/repos/{owner}/{repo}/dependency-graph/compare/{basehead}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-deployment + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-deployment-status + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-environments + */ + "GET /repos/{owner}/{repo}/environments": Operation<"/repos/{owner}/{repo}/environments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-an-environment + */ + "GET /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": Operation<"/repos/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-forks + */ + "GET /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-blob + */ + "GET /repos/{owner}/{repo}/git/blobs/{file_sha}": Operation<"/repos/{owner}/{repo}/git/blobs/{file_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-commit + */ + "GET /repos/{owner}/{repo}/git/commits/{commit_sha}": Operation<"/repos/{owner}/{repo}/git/commits/{commit_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#list-matching-references + */ + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}": Operation<"/repos/{owner}/{repo}/git/matching-refs/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-reference + */ + "GET /repos/{owner}/{repo}/git/ref/{ref}": Operation<"/repos/{owner}/{repo}/git/ref/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-tag + */ + "GET /repos/{owner}/{repo}/git/tags/{tag_sha}": Operation<"/repos/{owner}/{repo}/git/tags/{tag_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-tree + */ + "GET /repos/{owner}/{repo}/git/trees/{tree_sha}": Operation<"/repos/{owner}/{repo}/git/trees/{tree_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-webhook-configuration-for-a-repository + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-deliveries-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-delivery-for-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-an-import-status + */ + "GET /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-commit-authors + */ + "GET /repos/{owner}/{repo}/import/authors": Operation<"/repos/{owner}/{repo}/import/authors", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-large-files + */ + "GET /repos/{owner}/{repo}/import/large_files": Operation<"/repos/{owner}/{repo}/import/large_files", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-repository-installation-for-the-authenticated-app + */ + "GET /repos/{owner}/{repo}/installation": Operation<"/repos/{owner}/{repo}/installation", "get">; + /** + * @see https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-a-repository + */ + "GET /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": Operation<"/repos/{owner}/{repo}/invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": Operation<"/repos/{owner}/{repo}/issues/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": Operation<"/repos/{owner}/{repo}/issues/events", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-an-issue-event + */ + "GET /repos/{owner}/{repo}/issues/events/{event_id}": Operation<"/repos/{owner}/{repo}/issues/events/{event_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/timeline", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-deploy-key + */ + "GET /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-a-label + */ + "GET /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-languages + */ + "GET /repos/{owner}/{repo}/languages": Operation<"/repos/{owner}/{repo}/languages", "get">; + /** + * @see https://docs.github.com/rest/reference/licenses/#get-the-license-for-a-repository + */ + "GET /repos/{owner}/{repo}/license": Operation<"/repos/{owner}/{repo}/license", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-github-pages-site + */ + "GET /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-github-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-latest-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/latest": Operation<"/repos/{owner}/{repo}/pages/builds/latest", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-github-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/{build_id}": Operation<"/repos/{owner}/{repo}/pages/builds/{build_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-dns-health-check-for-github-pages + */ + "GET /repos/{owner}/{repo}/pages/health": Operation<"/repos/{owner}/{repo}/pages/health", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": Operation<"/repos/{owner}/{repo}/pulls/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#get-a-review-comment-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#get-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/commits", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/files", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#check-if-a-pull-request-has-been-merged + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-requested-reviewers-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#get-a-review-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-repository-readme + */ + "GET /repos/{owner}/{repo}/readme": Operation<"/repos/{owner}/{repo}/readme", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-repository-directory-readme + */ + "GET /repos/{owner}/{repo}/readme/{dir}": Operation<"/repos/{owner}/{repo}/readme/{dir}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-releases + */ + "GET /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-release-asset + */ + "GET /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-latest-release + */ + "GET /repos/{owner}/{repo}/releases/latest": Operation<"/repos/{owner}/{repo}/releases/latest", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-release-by-tag-name + */ + "GET /repos/{owner}/{repo}/releases/tags/{tag}": Operation<"/repos/{owner}/{repo}/releases/tags/{tag}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#get-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-locations-for-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": Operation<"/repos/{owner}/{repo}/stargazers", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-weekly-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/code_frequency": Operation<"/repos/{owner}/{repo}/stats/code_frequency", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-last-year-of-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/commit_activity": Operation<"/repos/{owner}/{repo}/stats/commit_activity", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-contributor-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/contributors": Operation<"/repos/{owner}/{repo}/stats/contributors", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-weekly-commit-count + */ + "GET /repos/{owner}/{repo}/stats/participation": Operation<"/repos/{owner}/{repo}/stats/participation", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-hourly-commit-count-for-each-day + */ + "GET /repos/{owner}/{repo}/stats/punch_card": Operation<"/repos/{owner}/{repo}/stats/punch_card", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": Operation<"/repos/{owner}/{repo}/subscribers", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-a-repository-subscription + */ + "GET /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": Operation<"/repos/{owner}/{repo}/tags", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-tag-protection-state-of-a-repository + */ + "GET /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#download-a-repository-archive + */ + "GET /repos/{owner}/{repo}/tarball/{ref}": Operation<"/repos/{owner}/{repo}/tarball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": Operation<"/repos/{owner}/{repo}/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-repository-topics + */ + "GET /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-repository-clones + */ + "GET /repos/{owner}/{repo}/traffic/clones": Operation<"/repos/{owner}/{repo}/traffic/clones", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-top-referral-paths + */ + "GET /repos/{owner}/{repo}/traffic/popular/paths": Operation<"/repos/{owner}/{repo}/traffic/popular/paths", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-top-referral-sources + */ + "GET /repos/{owner}/{repo}/traffic/popular/referrers": Operation<"/repos/{owner}/{repo}/traffic/popular/referrers", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-page-views + */ + "GET /repos/{owner}/{repo}/traffic/views": Operation<"/repos/{owner}/{repo}/traffic/views", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#download-a-repository-archive + */ + "GET /repos/{owner}/{repo}/zipball/{ref}": Operation<"/repos/{owner}/{repo}/zipball/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-public-repositories + */ + "GET /repositories": Operation<"/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-environment-secrets + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-environment-public-key + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-environment-secret + */ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-provisioned-scim-groups-for-an-enterprise + */ + "GET /scim/v2/enterprises/{enterprise}/Groups": Operation<"/scim/v2/enterprises/{enterprise}/Groups", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise-group + */ + "GET /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-scim-provisioned-identities-for-an-enterprise + */ + "GET /scim/v2/enterprises/{enterprise}/Users": Operation<"/scim/v2/enterprises/{enterprise}/Users", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise-user + */ + "GET /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/scim#list-scim-provisioned-identities + */ + "GET /scim/v2/organizations/{org}/Users": Operation<"/scim/v2/organizations/{org}/Users", "get">; + /** + * @see https://docs.github.com/rest/reference/scim#get-scim-provisioning-information-for-a-user + */ + "GET /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/search#search-code + */ + "GET /search/code": Operation<"/search/code", "get">; + /** + * @see https://docs.github.com/rest/reference/search#search-commits + */ + "GET /search/commits": Operation<"/search/commits", "get">; + /** + * @see https://docs.github.com/rest/reference/search#search-issues-and-pull-requests + */ + "GET /search/issues": Operation<"/search/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/search#search-labels + */ + "GET /search/labels": Operation<"/search/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/search#search-repositories + */ + "GET /search/repositories": Operation<"/search/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/search#search-topics + */ + "GET /search/topics": Operation<"/search/topics", "get">; + /** + * @see https://docs.github.com/rest/reference/search#search-users + */ + "GET /search/users": Operation<"/search/users", "get">; + /** + * @see https://docs.github.com/rest/reference/teams/#get-a-team-legacy + */ + "GET /teams/{team_id}": Operation<"/teams/{team_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/reactions/#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": Operation<"/teams/{team_id}/invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members-legacy + */ + "GET /teams/{team_id}/members": Operation<"/teams/{team_id}/members", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-team-member-legacy + */ + "GET /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user-legacy + */ + "GET /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams/#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": Operation<"/teams/{team_id}/projects", "get">; + /** + * @see https://docs.github.com/rest/reference/teams/#check-team-permissions-for-a-project-legacy + */ + "GET /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams/#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": Operation<"/teams/{team_id}/repos", "get">; + /** + * @see https://docs.github.com/rest/reference/teams/#check-team-permissions-for-a-repository-legacy + */ + "GET /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team-legacy + */ + "GET /teams/{team_id}/team-sync/group-mappings": Operation<"/teams/{team_id}/team-sync/group-mappings", "get">; + /** + * @see https://docs.github.com/rest/reference/teams/#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": Operation<"/teams/{team_id}/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/users#get-the-authenticated-user + */ + "GET /user": Operation<"/user", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": Operation<"/user/blocks", "get">; + /** + * @see https://docs.github.com/rest/reference/users#check-if-a-user-is-blocked-by-the-authenticated-user + */ + "GET /user/blocks/{username}": Operation<"/user/blocks/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-codespaces-for-the-authenticated-user + */ + "GET /user/codespaces": Operation<"/user/codespaces", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-secrets-for-the-authenticated-user + */ + "GET /user/codespaces/secrets": Operation<"/user/codespaces/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#get-public-key-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/public-key": Operation<"/user/codespaces/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#get-a-secret-for-the-authenticated-user + */ + "GET /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-selected-repositories-for-a-user-secret + */ + "GET /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#get-a-codespace-for-the-authenticated-user + */ + "GET /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "get">; + /** + * @see + */ + "GET /user/codespaces/{codespace_name}/exports/{export_id}": Operation<"/user/codespaces/{codespace_name}/exports/{export_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/codespaces#list-machine-types-for-a-codespace + */ + "GET /user/codespaces/{codespace_name}/machines": Operation<"/user/codespaces/{codespace_name}/machines", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": Operation<"/user/emails", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-the-authenticated-user + */ + "GET /user/followers": Operation<"/user/followers", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": Operation<"/user/following", "get">; + /** + * @see https://docs.github.com/rest/reference/users#check-if-a-person-is-followed-by-the-authenticated-user + */ + "GET /user/following/{username}": Operation<"/user/following/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": Operation<"/user/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/reference/users#get-a-gpg-key-for-the-authenticated-user + */ + "GET /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": Operation<"/user/installations", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": Operation<"/user/installations/{installation_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-your-public-repositories + */ + "GET /user/interaction-limits": Operation<"/user/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": Operation<"/user/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": Operation<"/user/keys", "get">; + /** + * @see https://docs.github.com/rest/reference/users#get-a-public-ssh-key-for-the-authenticated-user + */ + "GET /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": Operation<"/user/marketplace_purchases", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": Operation<"/user/marketplace_purchases/stubbed", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": Operation<"/user/memberships/orgs", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-an-organization-membership-for-the-authenticated-user + */ + "GET /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-user-migrations + */ + "GET /user/migrations": Operation<"/user/migrations", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-a-user-migration-status + */ + "GET /user/migrations/{migration_id}": Operation<"/user/migrations/{migration_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive + */ + "GET /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": Operation<"/user/migrations/{migration_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": Operation<"/user/orgs", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#list-packages-for-the-authenticated-user + */ + "GET /user/packages": Operation<"/user/packages", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-a-package-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}": Operation<"/user/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions": Operation<"/user/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-a-package-version-for-the-authenticated-user + */ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": Operation<"/user/public_emails", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": Operation<"/user/repos", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": Operation<"/user/repository_invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": Operation<"/user/starred", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#check-if-a-repository-is-starred-by-the-authenticated-user + */ + "GET /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": Operation<"/user/subscriptions", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-teams-for-the-authenticated-user + */ + "GET /user/teams": Operation<"/user/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-users + */ + "GET /users": Operation<"/users", "get">; + /** + * @see https://docs.github.com/rest/reference/users#get-a-user + */ + "GET /users/{username}": Operation<"/users/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": Operation<"/users/{username}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": Operation<"/users/{username}/events/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": Operation<"/users/{username}/events/public", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-a-user + */ + "GET /users/{username}/followers": Operation<"/users/{username}/followers", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-a-user-follows + */ + "GET /users/{username}/following": Operation<"/users/{username}/following", "get">; + /** + * @see https://docs.github.com/rest/reference/users#check-if-a-user-follows-another-user + */ + "GET /users/{username}/following/{target_user}": Operation<"/users/{username}/following/{target_user}", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-gists-for-a-user + */ + "GET /users/{username}/gists": Operation<"/users/{username}/gists", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": Operation<"/users/{username}/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/reference/users#get-contextual-information-for-a-user + */ + "GET /users/{username}/hovercard": Operation<"/users/{username}/hovercard", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-user-installation-for-the-authenticated-app + */ + "GET /users/{username}/installation": Operation<"/users/{username}/installation", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": Operation<"/users/{username}/keys", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": Operation<"/users/{username}/orgs", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#list-packages-for-user + */ + "GET /users/{username}/packages": Operation<"/users/{username}/packages", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-a-package-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}": Operation<"/users/{username}/packages/{package_type}/{package_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions", "get">; + /** + * @see https://docs.github.com/rest/reference/packages#get-a-package-version-for-a-user + */ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#list-user-projects + */ + "GET /users/{username}/projects": Operation<"/users/{username}/projects", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": Operation<"/users/{username}/received_events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": Operation<"/users/{username}/received_events/public", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repositories-for-a-user + */ + "GET /users/{username}/repos": Operation<"/users/{username}/repos", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-actions-billing-for-a-user + */ + "GET /users/{username}/settings/billing/actions": Operation<"/users/{username}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-github-packages-billing-for-a-user + */ + "GET /users/{username}/settings/billing/packages": Operation<"/users/{username}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/rest/reference/billing#get-shared-storage-billing-for-a-user + */ + "GET /users/{username}/settings/billing/shared-storage": Operation<"/users/{username}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": Operation<"/users/{username}/starred", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": Operation<"/users/{username}/subscriptions", "get">; + /** + * @see + */ + "GET /zen": Operation<"/zen", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#update-a-webhook-configuration-for-an-app + */ + "PATCH /app/hook/config": Operation<"/app/hook/config", "patch">; + /** + * @see https://docs.github.com/rest/reference/apps#reset-a-token + */ + "PATCH /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "patch">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#update-an-existing-authorization + */ + "PATCH /authorizations/{authorization_id}": Operation<"/authorizations/{authorization_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/actions#update-a-self-hosted-runner-group-for-an-enterprise + */ + "PATCH /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/gists/#update-a-gist + */ + "PATCH /gists/{gist_id}": Operation<"/gists/{gist_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/gists#update-a-gist-comment + */ + "PATCH /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/activity#mark-a-thread-as-read + */ + "PATCH /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/orgs/#update-an-organization + */ + "PATCH /orgs/{org}": Operation<"/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/reference/actions#update-a-self-hosted-runner-group-for-an-organization + */ + "PATCH /orgs/{org}/actions/runner-groups/{runner_group_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/orgs#update-an-organization-webhook + */ + "PATCH /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/orgs#update-a-webhook-configuration-for-an-organization + */ + "PATCH /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-team + */ + "PATCH /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion-comment + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#link-external-idp-group-team-connection + */ + "PATCH /orgs/{org}/teams/{team_slug}/external-groups": Operation<"/orgs/{org}/teams/{team_slug}/external-groups", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections + */ + "PATCH /orgs/{org}/teams/{team_slug}/team-sync/group-mappings": Operation<"/orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "patch">; + /** + * @see https://docs.github.com/rest/reference/projects#update-a-project-card + */ + "PATCH /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/projects#update-a-project-column + */ + "PATCH /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/projects#update-a-project + */ + "PATCH /projects/{project_id}": Operation<"/projects/{project_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos/#update-a-repository + */ + "PATCH /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-pull-request-review-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-status-check-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "patch">; + /** + * @see https://docs.github.com/rest/reference/checks#update-a-check-run + */ + "PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites + */ + "PATCH /repos/{owner}/{repo}/check-suites/preferences": Operation<"/repos/{owner}/{repo}/check-suites/preferences", "patch">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#update-a-code-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-commit-comment + */ + "PATCH /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/git#update-a-reference + */ + "PATCH /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-repository-webhook + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-webhook-configuration-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/reference/migrations#update-an-import + */ + "PATCH /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "patch">; + /** + * @see https://docs.github.com/rest/reference/migrations#map-a-commit-author + */ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}": Operation<"/repos/{owner}/{repo}/import/authors/{author_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/migrations#update-git-lfs-preference + */ + "PATCH /repos/{owner}/{repo}/import/lfs": Operation<"/repos/{owner}/{repo}/import/lfs", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-repository-invitation + */ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/issues#update-an-issue-comment + */ + "PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/issues/#update-an-issue + */ + "PATCH /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/issues#update-a-label + */ + "PATCH /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "patch">; + /** + * @see https://docs.github.com/rest/reference/issues#update-a-milestone + */ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/pulls#update-a-review-comment-for-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/pulls/#update-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-release-asset + */ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-release + */ + "PATCH /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#update-a-secret-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-group + */ + "PATCH /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-user + */ + "PATCH /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/scim#update-an-attribute-for-a-scim-user + */ + "PATCH /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams/#update-a-team-legacy + */ + "PATCH /teams/{team_id}": Operation<"/teams/{team_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion-comment-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections-legacy + */ + "PATCH /teams/{team_id}/team-sync/group-mappings": Operation<"/teams/{team_id}/team-sync/group-mappings", "patch">; + /** + * @see https://docs.github.com/rest/reference/users/#update-the-authenticated-user + */ + "PATCH /user": Operation<"/user", "patch">; + /** + * @see https://docs.github.com/rest/reference/codespaces#update-a-codespace-for-the-authenticated-user + */ + "PATCH /user/codespaces/{codespace_name}": Operation<"/user/codespaces/{codespace_name}", "patch">; + /** + * @see https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user + */ + "PATCH /user/email/visibility": Operation<"/user/email/visibility", "patch">; + /** + * @see https://docs.github.com/rest/reference/orgs#update-an-organization-membership-for-the-authenticated-user + */ + "PATCH /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#accept-a-repository-invitation + */ + "PATCH /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/apps#create-a-github-app-from-a-manifest + */ + "POST /app-manifests/{code}/conversions": Operation<"/app-manifests/{code}/conversions", "post">; + /** + * @see https://docs.github.com/rest/reference/apps#redeliver-a-delivery-for-an-app-webhook + */ + "POST /app/hook/deliveries/{delivery_id}/attempts": Operation<"/app/hook/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/reference/apps/#create-an-installation-access-token-for-an-app + */ + "POST /app/installations/{installation_id}/access_tokens": Operation<"/app/installations/{installation_id}/access_tokens", "post">; + /** + * @see https://docs.github.com/rest/reference/apps#check-a-token + */ + "POST /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "post">; + /** + * @see https://docs.github.com/rest/reference/apps#create-a-scoped-access-token + */ + "POST /applications/{client_id}/token/scoped": Operation<"/applications/{client_id}/token/scoped", "post">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization + */ + "POST /authorizations": Operation<"/authorizations", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-self-hosted-runner-group-for-an-enterprise + */ + "POST /enterprises/{enterprise}/actions/runner-groups": Operation<"/enterprises/{enterprise}/actions/runner-groups", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-registration-token-for-an-enterprise + */ + "POST /enterprises/{enterprise}/actions/runners/registration-token": Operation<"/enterprises/{enterprise}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-remove-token-for-an-enterprise + */ + "POST /enterprises/{enterprise}/actions/runners/remove-token": Operation<"/enterprises/{enterprise}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-an-enterprise + */ + "POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/reference/gists#create-a-gist + */ + "POST /gists": Operation<"/gists", "post">; + /** + * @see https://docs.github.com/rest/reference/gists#create-a-gist-comment + */ + "POST /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/gists#fork-a-gist + */ + "POST /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "post">; + /** + * @see https://docs.github.com/rest/reference/markdown#render-a-markdown-document + */ + "POST /markdown": Operation<"/markdown", "post">; + /** + * @see https://docs.github.com/rest/reference/markdown#render-a-markdown-document-in-raw-mode + */ + "POST /markdown/raw": Operation<"/markdown/raw", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-self-hosted-runner-group-for-an-organization + */ + "POST /orgs/{org}/actions/runner-groups": Operation<"/orgs/{org}/actions/runner-groups", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-registration-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/registration-token": Operation<"/orgs/{org}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-remove-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/remove-token": Operation<"/orgs/{org}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-an-organization + */ + "POST /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/reference/orgs#create-an-organization-webhook + */ + "POST /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "post">; + /** + * @see https://docs.github.com/rest/reference/orgs#redeliver-a-delivery-for-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/reference/orgs#ping-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/pings": Operation<"/orgs/{org}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/reference/orgs#create-an-organization-invitation + */ + "POST /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "post">; + /** + * @see https://docs.github.com/rest/reference/codespaces + */ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": Operation<"/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/reference/migrations#start-an-organization-migration + */ + "POST /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "post">; + /** + * @see https://docs.github.com/rest/reference/packages#restore-a-package-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/reference/packages#restore-a-package-version-for-an-organization + */ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/reference/projects#create-an-organization-project + */ + "POST /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-an-organization-repository + */ + "POST /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-team + */ + "POST /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/projects#move-a-project-card + */ + "POST /projects/columns/cards/{card_id}/moves": Operation<"/projects/columns/cards/{card_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/reference/projects#create-a-project-card + */ + "POST /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "post">; + /** + * @see https://docs.github.com/rest/reference/projects#move-a-project-column + */ + "POST /projects/columns/{column_id}/moves": Operation<"/projects/columns/{column_id}/moves", "post">; + /** + * @see https://docs.github.com/rest/reference/projects#create-a-project-column + */ + "POST /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#re-run-job-for-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-registration-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/registration-token": Operation<"/repos/{owner}/{repo}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-remove-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/remove-token": Operation<"/repos/{owner}/{repo}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#approve-a-workflow-run-for-a-fork-pull-request + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/approve", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#review-pending-deployments-for-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#re-run-a-workflow + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#re-run-workflow-failed-jobs + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-workflow-dispatch-event + */ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", "post">; + /** + * @see https://docs.github.com/v3/repos#create-an-autolink + */ + "POST /repos/{owner}/{repo}/autolinks": Operation<"/repos/{owner}/{repo}/autolinks", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#set-admin-branch-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-commit-signature-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#add-status-check-contexts + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#add-app-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#add-team-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#add-user-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#rename-a-branch + */ + "POST /repos/{owner}/{repo}/branches/{branch}/rename": Operation<"/repos/{owner}/{repo}/branches/{branch}/rename", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#create-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs": Operation<"/repos/{owner}/{repo}/check-runs", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#rerequest-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#create-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites": Operation<"/repos/{owner}/{repo}/check-suites", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#rerequest-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", "post">; + /** + * @see https://docs.github.com/rest/reference/code-scanning#upload-a-sarif-file + */ + "POST /repos/{owner}/{repo}/code-scanning/sarifs": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs", "post">; + /** + * @see https://docs.github.com/rest/reference/codespaces#create-a-codespace-in-a-repository + */ + "POST /repos/{owner}/{repo}/codespaces": Operation<"/repos/{owner}/{repo}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions#create-reaction-for-a-commit-comment + */ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-commit-comment + */ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/dependency-graph#create-a-snapshot-of-dependencies-for-a-repository + */ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots": Operation<"/repos/{owner}/{repo}/dependency-graph/snapshots", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-deployment + */ + "POST /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-deployment-status + */ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-repository-dispatch-event + */ + "POST /repos/{owner}/{repo}/dispatches": Operation<"/repos/{owner}/{repo}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-fork + */ + "POST /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-blob + */ + "POST /repos/{owner}/{repo}/git/blobs": Operation<"/repos/{owner}/{repo}/git/blobs", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-commit + */ + "POST /repos/{owner}/{repo}/git/commits": Operation<"/repos/{owner}/{repo}/git/commits", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-reference + */ + "POST /repos/{owner}/{repo}/git/refs": Operation<"/repos/{owner}/{repo}/git/refs", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-tag-object + */ + "POST /repos/{owner}/{repo}/git/tags": Operation<"/repos/{owner}/{repo}/git/tags", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-tree + */ + "POST /repos/{owner}/{repo}/git/trees": Operation<"/repos/{owner}/{repo}/git/trees", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#redeliver-a-delivery-for-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#ping-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/pings": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#test-the-push-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/tests": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/tests", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#create-an-issue + */ + "POST /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions#create-reaction-for-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#add-assignees-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#create-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#add-labels-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions#create-reaction-for-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-deploy-key + */ + "POST /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#create-a-label + */ + "POST /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#sync-a-fork-branch-with-the-upstream-repository + */ + "POST /repos/{owner}/{repo}/merge-upstream": Operation<"/repos/{owner}/{repo}/merge-upstream", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#merge-a-branch + */ + "POST /repos/{owner}/{repo}/merges": Operation<"/repos/{owner}/{repo}/merges", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#create-a-milestone + */ + "POST /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-github-pages-site + */ + "POST /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#request-a-github-pages-build + */ + "POST /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "post">; + /** + * @see https://docs.github.com/rest/reference/projects#create-a-repository-project + */ + "POST /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#create-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions#create-reaction-for-a-pull-request-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/codespaces#create-a-codespace-from-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/codespaces", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#create-a-reply-for-a-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#create-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-release + */ + "POST /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#generate-release-notes + */ + "POST /repos/{owner}/{repo}/releases/generate-notes": Operation<"/repos/{owner}/{repo}/releases/generate-notes", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions/#create-reaction-for-a-release + */ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions": Operation<"/repos/{owner}/{repo}/releases/{release_id}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-commit-status + */ + "POST /repos/{owner}/{repo}/statuses/{sha}": Operation<"/repos/{owner}/{repo}/statuses/{sha}", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-tag-protection-state-for-a-repository + */ + "POST /repos/{owner}/{repo}/tags/protection": Operation<"/repos/{owner}/{repo}/tags/protection", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#transfer-a-repository + */ + "POST /repos/{owner}/{repo}/transfer": Operation<"/repos/{owner}/{repo}/transfer", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-repository-using-a-template + */ + "POST /repos/{template_owner}/{template_repo}/generate": Operation<"/repos/{template_owner}/{template_repo}/generate", "post">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#provision-a-scim-enterprise-group-and-invite-users + */ + "POST /scim/v2/enterprises/{enterprise}/Groups": Operation<"/scim/v2/enterprises/{enterprise}/Groups", "post">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#provision-and-invite-a-scim-enterprise-user + */ + "POST /scim/v2/enterprises/{enterprise}/Users": Operation<"/scim/v2/enterprises/{enterprise}/Users", "post">; + /** + * @see https://docs.github.com/rest/reference/scim#provision-and-invite-a-scim-user + */ + "POST /scim/v2/organizations/{org}/Users": Operation<"/scim/v2/organizations/{org}/Users", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion-legacy + */ + "POST /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions/#create-reaction-for-a-team-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/reactions/#create-reaction-for-a-team-discussion-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "post">; + /** + * @see https://docs.github.com/rest/reference/codespaces#create-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces": Operation<"/user/codespaces", "post">; + /** + * @see + */ + "POST /user/codespaces/{codespace_name}/exports": Operation<"/user/codespaces/{codespace_name}/exports", "post">; + /** + * @see https://docs.github.com/rest/reference/codespaces#start-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/start": Operation<"/user/codespaces/{codespace_name}/start", "post">; + /** + * @see https://docs.github.com/rest/reference/codespaces#stop-a-codespace-for-the-authenticated-user + */ + "POST /user/codespaces/{codespace_name}/stop": Operation<"/user/codespaces/{codespace_name}/stop", "post">; + /** + * @see https://docs.github.com/rest/reference/users#add-an-email-address-for-the-authenticated-user + */ + "POST /user/emails": Operation<"/user/emails", "post">; + /** + * @see https://docs.github.com/rest/reference/users#create-a-gpg-key-for-the-authenticated-user + */ + "POST /user/gpg_keys": Operation<"/user/gpg_keys", "post">; + /** + * @see https://docs.github.com/rest/reference/users#create-a-public-ssh-key-for-the-authenticated-user + */ + "POST /user/keys": Operation<"/user/keys", "post">; + /** + * @see https://docs.github.com/rest/reference/migrations#start-a-user-migration + */ + "POST /user/migrations": Operation<"/user/migrations", "post">; + /** + * @see https://docs.github.com/rest/reference/packages#restore-a-package-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/restore{?token}": Operation<"/user/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/reference/packages#restore-a-package-version-for-the-authenticated-user + */ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/reference/projects#create-a-user-project + */ + "POST /user/projects": Operation<"/user/projects", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user + */ + "POST /user/repos": Operation<"/user/repos", "post">; + /** + * @see https://docs.github.com/rest/reference/packages#restore-a-package-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}": Operation<"/users/{username}/packages/{package_type}/{package_name}/restore", "post">; + /** + * @see https://docs.github.com/rest/reference/packages#restore-a-package-version-for-a-user + */ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": Operation<"/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#upload-a-release-asset + */ + "POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "post">; + /** + * @see https://docs.github.com/rest/reference/apps#suspend-an-app-installation + */ + "PUT /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "put">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app + */ + "PUT /authorizations/clients/{client_id}": Operation<"/authorizations/clients/{client_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app-and-fingerprint + */ + "PUT /authorizations/clients/{client_id}/{fingerprint}": Operation<"/authorizations/clients/{client_id}/{fingerprint}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions/oidc#set-actions-oidc-custom-issuer-policy-for-enterprise + */ + "PUT /enterprises/{enterprise}/actions/oidc/customization/issuer": Operation<"/enterprises/{enterprise}/actions/oidc/customization/issuer", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions": Operation<"/enterprises/{enterprise}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-selected-organizations-enabled-for-github-actions-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions/organizations": Operation<"/enterprises/{enterprise}/actions/permissions/organizations", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#enable-a-selected-organization-for-github-actions-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/permissions/organizations/{org_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-allowed-actions-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions/selected-actions": Operation<"/enterprises/{enterprise}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-default-workflow-permissions-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions/workflow": Operation<"/enterprises/{enterprise}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-organization-access-to-a-self-hosted-runner-group-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-organization-access-to-a-self-hosted-runner-group-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/reference/gists#star-a-gist + */ + "PUT /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#mark-notifications-as-read + */ + "PUT /notifications": Operation<"/notifications", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#set-a-thread-subscription + */ + "PUT /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization + */ + "PUT /orgs/{org}/actions/oidc/customization/sub": Operation<"/orgs/{org}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#enable-a-selected-repository-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-allowed-actions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-default-workflow-permissions + */ + "PUT /orgs/{org}/actions/permissions/workflow": Operation<"/orgs/{org}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-repository-acess-to-a-self-hosted-runner-group-in-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-an-organization + */ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels": Operation<"/orgs/{org}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#block-a-user-from-an-organization + */ + "PUT /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/dependabot#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-an-organization + */ + "PUT /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#set-organization-membership-for-a-user + */ + "PUT /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#convert-an-organization-member-to-outside-collaborator + */ + "PUT /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#set-public-organization-membership-for-the-authenticated-user + */ + "PUT /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user + */ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams/#add-or-update-team-repository-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/reference/projects#add-project-collaborator + */ + "PUT /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/actions/oidc#set-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub": Operation<"/repos/{owner}/{repo}/actions/oidc/customization/sub", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-workflow-access-to-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/access": Operation<"/repos/{owner}/{repo}/actions/permissions/access", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-allowed-actions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-default-workflow-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow": Operation<"/repos/{owner}/{repo}/actions/permissions/workflow", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}/labels", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#disable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#enable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#enable-automated-security-fixes + */ + "PUT /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#update-branch-protection + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-status-check-contexts + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-app-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-team-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-user-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "put">; + /** + * @see https://docs.github.com/rest/reference/codespaces#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#add-a-repository-collaborator + */ + "PUT /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#create-or-update-file-contents + */ + "PUT /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "put">; + /** + * @see https://docs.github.com/rest/reference/dependabot#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#create-or-update-an-environment + */ + "PUT /repos/{owner}/{repo}/environments/{environment_name}": Operation<"/repos/{owner}/{repo}/environments/{environment_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/migrations#start-an-import + */ + "PUT /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "put">; + /** + * @see https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/reference/issues#set-labels-for-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "put">; + /** + * @see https://docs.github.com/rest/reference/issues#lock-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#enable-git-lfs-for-a-repository + */ + "PUT /repos/{owner}/{repo}/lfs": Operation<"/repos/{owner}/{repo}/lfs", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#mark-repository-notifications-as-read + */ + "PUT /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#update-information-about-a-github-pages-site + */ + "PUT /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "put">; + /** + * @see https://docs.github.com/rest/reference/pulls#merge-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "put">; + /** + * @see https://docs.github.com/rest/reference/pulls#update-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/pulls#dismiss-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", "put">; + /** + * @see https://docs.github.com/rest/reference/pulls#update-a-pull-request-branch + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/update-branch", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#set-a-repository-subscription + */ + "PUT /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#replace-all-repository-topics + */ + "PUT /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#enable-vulnerability-alerts + */ + "PUT /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-an-environment-secret + */ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}": Operation<"/repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-group + */ + "PUT /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-user + */ + "PUT /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/scim#set-scim-information-for-a-provisioned-user + */ + "PUT /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams#add-team-member-legacy + */ + "PUT /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user-legacy + */ + "PUT /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams/#add-or-update-team-project-permissions-legacy + */ + "PUT /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams/#add-or-update-team-repository-permissions-legacy + */ + "PUT /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/reference/users#block-a-user + */ + "PUT /user/blocks/{username}": Operation<"/user/blocks/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/codespaces#create-or-update-a-secret-for-the-authenticated-user + */ + "PUT /user/codespaces/secrets/{secret_name}": Operation<"/user/codespaces/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/codespaces#set-selected-repositories-for-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories": Operation<"/user/codespaces/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/codespaces#add-a-selected-repository-to-a-user-secret + */ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}": Operation<"/user/codespaces/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/users#follow-a-user + */ + "PUT /user/following/{username}": Operation<"/user/following/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/apps#add-a-repository-to-an-app-installation + */ + "PUT /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-your-public-repositories + */ + "PUT /user/interaction-limits": Operation<"/user/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#star-a-repository-for-the-authenticated-user + */ + "PUT /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "put">; +} +export {}; diff --git a/node_modules/@octokit/types/dist-types/index.d.ts b/node_modules/@octokit/types/dist-types/index.d.ts new file mode 100644 index 0000000..004ae9b --- /dev/null +++ b/node_modules/@octokit/types/dist-types/index.d.ts @@ -0,0 +1,21 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestError"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/node_modules/@octokit/types/dist-web/index.js b/node_modules/@octokit/types/dist-web/index.js new file mode 100644 index 0000000..b1b47d5 --- /dev/null +++ b/node_modules/@octokit/types/dist-web/index.js @@ -0,0 +1,4 @@ +const VERSION = "6.41.0"; + +export { VERSION }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/types/dist-web/index.js.map b/node_modules/@octokit/types/dist-web/index.js.map new file mode 100644 index 0000000..cd0e254 --- /dev/null +++ b/node_modules/@octokit/types/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/types/package.json b/node_modules/@octokit/types/package.json new file mode 100644 index 0000000..960747f --- /dev/null +++ b/node_modules/@octokit/types/package.json @@ -0,0 +1,54 @@ +{ + "name": "@octokit/types", + "description": "Shared TypeScript definitions for Octokit projects", + "version": "6.41.0", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "octokit": { + "openapi-version": "6.8.0" + }, + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "pika": true, + "sideEffects": false, + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "repository": "github:octokit/types.ts", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + }, + "devDependencies": { + "@pika/pack": "^0.3.7", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/node": ">= 8", + "github-openapi-graphql-query": "^2.0.0", + "handlebars": "^4.7.6", + "json-schema-to-typescript": "^11.0.0", + "lodash.set": "^4.3.2", + "npm-run-all": "^4.1.5", + "pascal-case": "^3.1.1", + "pika-plugin-merge-properties": "^1.0.6", + "prettier": "^2.0.0", + "semantic-release": "^19.0.3", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^4.2.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.23.0", + "typescript": "^4.0.2" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/node_modules/acorn-jsx/LICENSE b/node_modules/acorn-jsx/LICENSE new file mode 100644 index 0000000..695d4b9 --- /dev/null +++ b/node_modules/acorn-jsx/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2012-2017 by Ingvar Stepanyan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/acorn-jsx/README.md b/node_modules/acorn-jsx/README.md new file mode 100644 index 0000000..317c3ac --- /dev/null +++ b/node_modules/acorn-jsx/README.md @@ -0,0 +1,40 @@ +# Acorn-JSX + +[![Build Status](https://travis-ci.org/acornjs/acorn-jsx.svg?branch=master)](https://travis-ci.org/acornjs/acorn-jsx) +[![NPM version](https://img.shields.io/npm/v/acorn-jsx.svg)](https://www.npmjs.org/package/acorn-jsx) + +This is plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. + +It was created as an experimental alternative, faster [React.js JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) parser. Later, it replaced the [official parser](https://github.com/facebookarchive/esprima) and these days is used by many prominent development tools. + +## Transpiler + +Please note that this tool only parses source code to JSX AST, which is useful for various language tools and services. If you want to transpile your code to regular ES5-compliant JavaScript with source map, check out [Babel](https://babeljs.io/) and [Buble](https://buble.surge.sh/) transpilers which use `acorn-jsx` under the hood. + +## Usage + +Requiring this module provides you with an Acorn plugin that you can use like this: + +```javascript +var acorn = require("acorn"); +var jsx = require("acorn-jsx"); +acorn.Parser.extend(jsx()).parse("my(, 'code');"); +``` + +Note that official spec doesn't support mix of XML namespaces and object-style access in tag names (#27) like in ``, so it was deprecated in `acorn-jsx@3.0`. If you still want to opt-in to support of such constructions, you can pass the following option: + +```javascript +acorn.Parser.extend(jsx({ allowNamespacedObjects: true })) +``` + +Also, since most apps use pure React transformer, a new option was introduced that allows to prohibit namespaces completely: + +```javascript +acorn.Parser.extend(jsx({ allowNamespaces: false })) +``` + +Note that by default `allowNamespaces` is enabled for spec compliancy. + +## License + +This plugin is issued under the [MIT license](./LICENSE). diff --git a/node_modules/acorn-jsx/index.d.ts b/node_modules/acorn-jsx/index.d.ts new file mode 100644 index 0000000..f37b1df --- /dev/null +++ b/node_modules/acorn-jsx/index.d.ts @@ -0,0 +1,12 @@ +import { Parser } from 'acorn' + +declare const jsx: (options?: jsx.Options) => (BaseParser: typeof Parser) => typeof Parser; + +declare namespace jsx { + interface Options { + allowNamespacedObjects?: boolean; + allowNamespaces?: boolean; + } +} + +export = jsx; diff --git a/node_modules/acorn-jsx/index.js b/node_modules/acorn-jsx/index.js new file mode 100644 index 0000000..004e080 --- /dev/null +++ b/node_modules/acorn-jsx/index.js @@ -0,0 +1,488 @@ +'use strict'; + +const XHTMLEntities = require('./xhtml'); + +const hexNumber = /^[\da-fA-F]+$/; +const decimalNumber = /^\d+$/; + +// The map to `acorn-jsx` tokens from `acorn` namespace objects. +const acornJsxMap = new WeakMap(); + +// Get the original tokens for the given `acorn` namespace object. +function getJsxTokens(acorn) { + acorn = acorn.Parser.acorn || acorn; + let acornJsx = acornJsxMap.get(acorn); + if (!acornJsx) { + const tt = acorn.tokTypes; + const TokContext = acorn.TokContext; + const TokenType = acorn.TokenType; + const tc_oTag = new TokContext('...', true, true); + const tokContexts = { + tc_oTag: tc_oTag, + tc_cTag: tc_cTag, + tc_expr: tc_expr + }; + const tokTypes = { + jsxName: new TokenType('jsxName'), + jsxText: new TokenType('jsxText', {beforeExpr: true}), + jsxTagStart: new TokenType('jsxTagStart', {startsExpr: true}), + jsxTagEnd: new TokenType('jsxTagEnd') + }; + + tokTypes.jsxTagStart.updateContext = function() { + this.context.push(tc_expr); // treat as beginning of JSX expression + this.context.push(tc_oTag); // start opening tag context + this.exprAllowed = false; + }; + tokTypes.jsxTagEnd.updateContext = function(prevType) { + let out = this.context.pop(); + if (out === tc_oTag && prevType === tt.slash || out === tc_cTag) { + this.context.pop(); + this.exprAllowed = this.curContext() === tc_expr; + } else { + this.exprAllowed = true; + } + }; + + acornJsx = { tokContexts: tokContexts, tokTypes: tokTypes }; + acornJsxMap.set(acorn, acornJsx); + } + + return acornJsx; +} + +// Transforms JSX element name to string. + +function getQualifiedJSXName(object) { + if (!object) + return object; + + if (object.type === 'JSXIdentifier') + return object.name; + + if (object.type === 'JSXNamespacedName') + return object.namespace.name + ':' + object.name.name; + + if (object.type === 'JSXMemberExpression') + return getQualifiedJSXName(object.object) + '.' + + getQualifiedJSXName(object.property); +} + +module.exports = function(options) { + options = options || {}; + return function(Parser) { + return plugin({ + allowNamespaces: options.allowNamespaces !== false, + allowNamespacedObjects: !!options.allowNamespacedObjects + }, Parser); + }; +}; + +// This is `tokTypes` of the peer dep. +// This can be different instances from the actual `tokTypes` this plugin uses. +Object.defineProperty(module.exports, "tokTypes", { + get: function get_tokTypes() { + return getJsxTokens(require("acorn")).tokTypes; + }, + configurable: true, + enumerable: true +}); + +function plugin(options, Parser) { + const acorn = Parser.acorn || require("acorn"); + const acornJsx = getJsxTokens(acorn); + const tt = acorn.tokTypes; + const tok = acornJsx.tokTypes; + const tokContexts = acorn.tokContexts; + const tc_oTag = acornJsx.tokContexts.tc_oTag; + const tc_cTag = acornJsx.tokContexts.tc_cTag; + const tc_expr = acornJsx.tokContexts.tc_expr; + const isNewLine = acorn.isNewLine; + const isIdentifierStart = acorn.isIdentifierStart; + const isIdentifierChar = acorn.isIdentifierChar; + + return class extends Parser { + // Expose actual `tokTypes` and `tokContexts` to other plugins. + static get acornJsx() { + return acornJsx; + } + + // Reads inline JSX contents token. + jsx_readToken() { + let out = '', chunkStart = this.pos; + for (;;) { + if (this.pos >= this.input.length) + this.raise(this.start, 'Unterminated JSX contents'); + let ch = this.input.charCodeAt(this.pos); + + switch (ch) { + case 60: // '<' + case 123: // '{' + if (this.pos === this.start) { + if (ch === 60 && this.exprAllowed) { + ++this.pos; + return this.finishToken(tok.jsxTagStart); + } + return this.getTokenFromCode(ch); + } + out += this.input.slice(chunkStart, this.pos); + return this.finishToken(tok.jsxText, out); + + case 38: // '&' + out += this.input.slice(chunkStart, this.pos); + out += this.jsx_readEntity(); + chunkStart = this.pos; + break; + + case 62: // '>' + case 125: // '}' + this.raise( + this.pos, + "Unexpected token `" + this.input[this.pos] + "`. Did you mean `" + + (ch === 62 ? ">" : "}") + "` or " + "`{\"" + this.input[this.pos] + "\"}" + "`?" + ); + + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.pos); + out += this.jsx_readNewLine(true); + chunkStart = this.pos; + } else { + ++this.pos; + } + } + } + } + + jsx_readNewLine(normalizeCRLF) { + let ch = this.input.charCodeAt(this.pos); + let out; + ++this.pos; + if (ch === 13 && this.input.charCodeAt(this.pos) === 10) { + ++this.pos; + out = normalizeCRLF ? '\n' : '\r\n'; + } else { + out = String.fromCharCode(ch); + } + if (this.options.locations) { + ++this.curLine; + this.lineStart = this.pos; + } + + return out; + } + + jsx_readString(quote) { + let out = '', chunkStart = ++this.pos; + for (;;) { + if (this.pos >= this.input.length) + this.raise(this.start, 'Unterminated string constant'); + let ch = this.input.charCodeAt(this.pos); + if (ch === quote) break; + if (ch === 38) { // '&' + out += this.input.slice(chunkStart, this.pos); + out += this.jsx_readEntity(); + chunkStart = this.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.pos); + out += this.jsx_readNewLine(false); + chunkStart = this.pos; + } else { + ++this.pos; + } + } + out += this.input.slice(chunkStart, this.pos++); + return this.finishToken(tt.string, out); + } + + jsx_readEntity() { + let str = '', count = 0, entity; + let ch = this.input[this.pos]; + if (ch !== '&') + this.raise(this.pos, 'Entity must start with an ampersand'); + let startPos = ++this.pos; + while (this.pos < this.input.length && count++ < 10) { + ch = this.input[this.pos++]; + if (ch === ';') { + if (str[0] === '#') { + if (str[1] === 'x') { + str = str.substr(2); + if (hexNumber.test(str)) + entity = String.fromCharCode(parseInt(str, 16)); + } else { + str = str.substr(1); + if (decimalNumber.test(str)) + entity = String.fromCharCode(parseInt(str, 10)); + } + } else { + entity = XHTMLEntities[str]; + } + break; + } + str += ch; + } + if (!entity) { + this.pos = startPos; + return '&'; + } + return entity; + } + + // Read a JSX identifier (valid tag or attribute name). + // + // Optimized version since JSX identifiers can't contain + // escape characters and so can be read as single slice. + // Also assumes that first character was already checked + // by isIdentifierStart in readToken. + + jsx_readWord() { + let ch, start = this.pos; + do { + ch = this.input.charCodeAt(++this.pos); + } while (isIdentifierChar(ch) || ch === 45); // '-' + return this.finishToken(tok.jsxName, this.input.slice(start, this.pos)); + } + + // Parse next token as JSX identifier + + jsx_parseIdentifier() { + let node = this.startNode(); + if (this.type === tok.jsxName) + node.name = this.value; + else if (this.type.keyword) + node.name = this.type.keyword; + else + this.unexpected(); + this.next(); + return this.finishNode(node, 'JSXIdentifier'); + } + + // Parse namespaced identifier. + + jsx_parseNamespacedName() { + let startPos = this.start, startLoc = this.startLoc; + let name = this.jsx_parseIdentifier(); + if (!options.allowNamespaces || !this.eat(tt.colon)) return name; + var node = this.startNodeAt(startPos, startLoc); + node.namespace = name; + node.name = this.jsx_parseIdentifier(); + return this.finishNode(node, 'JSXNamespacedName'); + } + + // Parses element name in any form - namespaced, member + // or single identifier. + + jsx_parseElementName() { + if (this.type === tok.jsxTagEnd) return ''; + let startPos = this.start, startLoc = this.startLoc; + let node = this.jsx_parseNamespacedName(); + if (this.type === tt.dot && node.type === 'JSXNamespacedName' && !options.allowNamespacedObjects) { + this.unexpected(); + } + while (this.eat(tt.dot)) { + let newNode = this.startNodeAt(startPos, startLoc); + newNode.object = node; + newNode.property = this.jsx_parseIdentifier(); + node = this.finishNode(newNode, 'JSXMemberExpression'); + } + return node; + } + + // Parses any type of JSX attribute value. + + jsx_parseAttributeValue() { + switch (this.type) { + case tt.braceL: + let node = this.jsx_parseExpressionContainer(); + if (node.expression.type === 'JSXEmptyExpression') + this.raise(node.start, 'JSX attributes must only be assigned a non-empty expression'); + return node; + + case tok.jsxTagStart: + case tt.string: + return this.parseExprAtom(); + + default: + this.raise(this.start, 'JSX value should be either an expression or a quoted JSX text'); + } + } + + // JSXEmptyExpression is unique type since it doesn't actually parse anything, + // and so it should start at the end of last read token (left brace) and finish + // at the beginning of the next one (right brace). + + jsx_parseEmptyExpression() { + let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); + return this.finishNodeAt(node, 'JSXEmptyExpression', this.start, this.startLoc); + } + + // Parses JSX expression enclosed into curly brackets. + + jsx_parseExpressionContainer() { + let node = this.startNode(); + this.next(); + node.expression = this.type === tt.braceR + ? this.jsx_parseEmptyExpression() + : this.parseExpression(); + this.expect(tt.braceR); + return this.finishNode(node, 'JSXExpressionContainer'); + } + + // Parses following JSX attribute name-value pair. + + jsx_parseAttribute() { + let node = this.startNode(); + if (this.eat(tt.braceL)) { + this.expect(tt.ellipsis); + node.argument = this.parseMaybeAssign(); + this.expect(tt.braceR); + return this.finishNode(node, 'JSXSpreadAttribute'); + } + node.name = this.jsx_parseNamespacedName(); + node.value = this.eat(tt.eq) ? this.jsx_parseAttributeValue() : null; + return this.finishNode(node, 'JSXAttribute'); + } + + // Parses JSX opening tag starting after '<'. + + jsx_parseOpeningElementAt(startPos, startLoc) { + let node = this.startNodeAt(startPos, startLoc); + node.attributes = []; + let nodeName = this.jsx_parseElementName(); + if (nodeName) node.name = nodeName; + while (this.type !== tt.slash && this.type !== tok.jsxTagEnd) + node.attributes.push(this.jsx_parseAttribute()); + node.selfClosing = this.eat(tt.slash); + this.expect(tok.jsxTagEnd); + return this.finishNode(node, nodeName ? 'JSXOpeningElement' : 'JSXOpeningFragment'); + } + + // Parses JSX closing tag starting after ''); + } + } + let fragmentOrElement = openingElement.name ? 'Element' : 'Fragment'; + + node['opening' + fragmentOrElement] = openingElement; + node['closing' + fragmentOrElement] = closingElement; + node.children = children; + if (this.type === tt.relational && this.value === "<") { + this.raise(this.start, "Adjacent JSX elements must be wrapped in an enclosing tag"); + } + return this.finishNode(node, 'JSX' + fragmentOrElement); + } + + // Parse JSX text + + jsx_parseText() { + let node = this.parseLiteral(this.value); + node.type = "JSXText"; + return node; + } + + // Parses entire JSX element from current position. + + jsx_parseElement() { + let startPos = this.start, startLoc = this.startLoc; + this.next(); + return this.jsx_parseElementAt(startPos, startLoc); + } + + parseExprAtom(refShortHandDefaultPos) { + if (this.type === tok.jsxText) + return this.jsx_parseText(); + else if (this.type === tok.jsxTagStart) + return this.jsx_parseElement(); + else + return super.parseExprAtom(refShortHandDefaultPos); + } + + readToken(code) { + let context = this.curContext(); + + if (context === tc_expr) return this.jsx_readToken(); + + if (context === tc_oTag || context === tc_cTag) { + if (isIdentifierStart(code)) return this.jsx_readWord(); + + if (code == 62) { + ++this.pos; + return this.finishToken(tok.jsxTagEnd); + } + + if ((code === 34 || code === 39) && context == tc_oTag) + return this.jsx_readString(code); + } + + if (code === 60 && this.exprAllowed && this.input.charCodeAt(this.pos + 1) !== 33) { + ++this.pos; + return this.finishToken(tok.jsxTagStart); + } + return super.readToken(code); + } + + updateContext(prevType) { + if (this.type == tt.braceL) { + var curContext = this.curContext(); + if (curContext == tc_oTag) this.context.push(tokContexts.b_expr); + else if (curContext == tc_expr) this.context.push(tokContexts.b_tmpl); + else super.updateContext(prevType); + this.exprAllowed = true; + } else if (this.type === tt.slash && prevType === tok.jsxTagStart) { + this.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore + this.context.push(tc_cTag); // reconsider as closing tag context + this.exprAllowed = false; + } else { + return super.updateContext(prevType); + } + } + }; +} diff --git a/node_modules/acorn-jsx/package.json b/node_modules/acorn-jsx/package.json new file mode 100644 index 0000000..6debde9 --- /dev/null +++ b/node_modules/acorn-jsx/package.json @@ -0,0 +1,27 @@ +{ + "name": "acorn-jsx", + "description": "Modern, fast React.js JSX parser", + "homepage": "https://github.com/acornjs/acorn-jsx", + "version": "5.3.2", + "maintainers": [ + { + "name": "Ingvar Stepanyan", + "email": "me@rreverser.com", + "web": "http://rreverser.com/" + } + ], + "repository": { + "type": "git", + "url": "https://github.com/acornjs/acorn-jsx" + }, + "license": "MIT", + "scripts": { + "test": "node test/run.js" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "devDependencies": { + "acorn": "^8.0.1" + } +} diff --git a/node_modules/acorn-jsx/xhtml.js b/node_modules/acorn-jsx/xhtml.js new file mode 100644 index 0000000..c152009 --- /dev/null +++ b/node_modules/acorn-jsx/xhtml.js @@ -0,0 +1,255 @@ +module.exports = { + quot: '\u0022', + amp: '&', + apos: '\u0027', + lt: '<', + gt: '>', + nbsp: '\u00A0', + iexcl: '\u00A1', + cent: '\u00A2', + pound: '\u00A3', + curren: '\u00A4', + yen: '\u00A5', + brvbar: '\u00A6', + sect: '\u00A7', + uml: '\u00A8', + copy: '\u00A9', + ordf: '\u00AA', + laquo: '\u00AB', + not: '\u00AC', + shy: '\u00AD', + reg: '\u00AE', + macr: '\u00AF', + deg: '\u00B0', + plusmn: '\u00B1', + sup2: '\u00B2', + sup3: '\u00B3', + acute: '\u00B4', + micro: '\u00B5', + para: '\u00B6', + middot: '\u00B7', + cedil: '\u00B8', + sup1: '\u00B9', + ordm: '\u00BA', + raquo: '\u00BB', + frac14: '\u00BC', + frac12: '\u00BD', + frac34: '\u00BE', + iquest: '\u00BF', + Agrave: '\u00C0', + Aacute: '\u00C1', + Acirc: '\u00C2', + Atilde: '\u00C3', + Auml: '\u00C4', + Aring: '\u00C5', + AElig: '\u00C6', + Ccedil: '\u00C7', + Egrave: '\u00C8', + Eacute: '\u00C9', + Ecirc: '\u00CA', + Euml: '\u00CB', + Igrave: '\u00CC', + Iacute: '\u00CD', + Icirc: '\u00CE', + Iuml: '\u00CF', + ETH: '\u00D0', + Ntilde: '\u00D1', + Ograve: '\u00D2', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Otilde: '\u00D5', + Ouml: '\u00D6', + times: '\u00D7', + Oslash: '\u00D8', + Ugrave: '\u00D9', + Uacute: '\u00DA', + Ucirc: '\u00DB', + Uuml: '\u00DC', + Yacute: '\u00DD', + THORN: '\u00DE', + szlig: '\u00DF', + agrave: '\u00E0', + aacute: '\u00E1', + acirc: '\u00E2', + atilde: '\u00E3', + auml: '\u00E4', + aring: '\u00E5', + aelig: '\u00E6', + ccedil: '\u00E7', + egrave: '\u00E8', + eacute: '\u00E9', + ecirc: '\u00EA', + euml: '\u00EB', + igrave: '\u00EC', + iacute: '\u00ED', + icirc: '\u00EE', + iuml: '\u00EF', + eth: '\u00F0', + ntilde: '\u00F1', + ograve: '\u00F2', + oacute: '\u00F3', + ocirc: '\u00F4', + otilde: '\u00F5', + ouml: '\u00F6', + divide: '\u00F7', + oslash: '\u00F8', + ugrave: '\u00F9', + uacute: '\u00FA', + ucirc: '\u00FB', + uuml: '\u00FC', + yacute: '\u00FD', + thorn: '\u00FE', + yuml: '\u00FF', + OElig: '\u0152', + oelig: '\u0153', + Scaron: '\u0160', + scaron: '\u0161', + Yuml: '\u0178', + fnof: '\u0192', + circ: '\u02C6', + tilde: '\u02DC', + Alpha: '\u0391', + Beta: '\u0392', + Gamma: '\u0393', + Delta: '\u0394', + Epsilon: '\u0395', + Zeta: '\u0396', + Eta: '\u0397', + Theta: '\u0398', + Iota: '\u0399', + Kappa: '\u039A', + Lambda: '\u039B', + Mu: '\u039C', + Nu: '\u039D', + Xi: '\u039E', + Omicron: '\u039F', + Pi: '\u03A0', + Rho: '\u03A1', + Sigma: '\u03A3', + Tau: '\u03A4', + Upsilon: '\u03A5', + Phi: '\u03A6', + Chi: '\u03A7', + Psi: '\u03A8', + Omega: '\u03A9', + alpha: '\u03B1', + beta: '\u03B2', + gamma: '\u03B3', + delta: '\u03B4', + epsilon: '\u03B5', + zeta: '\u03B6', + eta: '\u03B7', + theta: '\u03B8', + iota: '\u03B9', + kappa: '\u03BA', + lambda: '\u03BB', + mu: '\u03BC', + nu: '\u03BD', + xi: '\u03BE', + omicron: '\u03BF', + pi: '\u03C0', + rho: '\u03C1', + sigmaf: '\u03C2', + sigma: '\u03C3', + tau: '\u03C4', + upsilon: '\u03C5', + phi: '\u03C6', + chi: '\u03C7', + psi: '\u03C8', + omega: '\u03C9', + thetasym: '\u03D1', + upsih: '\u03D2', + piv: '\u03D6', + ensp: '\u2002', + emsp: '\u2003', + thinsp: '\u2009', + zwnj: '\u200C', + zwj: '\u200D', + lrm: '\u200E', + rlm: '\u200F', + ndash: '\u2013', + mdash: '\u2014', + lsquo: '\u2018', + rsquo: '\u2019', + sbquo: '\u201A', + ldquo: '\u201C', + rdquo: '\u201D', + bdquo: '\u201E', + dagger: '\u2020', + Dagger: '\u2021', + bull: '\u2022', + hellip: '\u2026', + permil: '\u2030', + prime: '\u2032', + Prime: '\u2033', + lsaquo: '\u2039', + rsaquo: '\u203A', + oline: '\u203E', + frasl: '\u2044', + euro: '\u20AC', + image: '\u2111', + weierp: '\u2118', + real: '\u211C', + trade: '\u2122', + alefsym: '\u2135', + larr: '\u2190', + uarr: '\u2191', + rarr: '\u2192', + darr: '\u2193', + harr: '\u2194', + crarr: '\u21B5', + lArr: '\u21D0', + uArr: '\u21D1', + rArr: '\u21D2', + dArr: '\u21D3', + hArr: '\u21D4', + forall: '\u2200', + part: '\u2202', + exist: '\u2203', + empty: '\u2205', + nabla: '\u2207', + isin: '\u2208', + notin: '\u2209', + ni: '\u220B', + prod: '\u220F', + sum: '\u2211', + minus: '\u2212', + lowast: '\u2217', + radic: '\u221A', + prop: '\u221D', + infin: '\u221E', + ang: '\u2220', + and: '\u2227', + or: '\u2228', + cap: '\u2229', + cup: '\u222A', + 'int': '\u222B', + there4: '\u2234', + sim: '\u223C', + cong: '\u2245', + asymp: '\u2248', + ne: '\u2260', + equiv: '\u2261', + le: '\u2264', + ge: '\u2265', + sub: '\u2282', + sup: '\u2283', + nsub: '\u2284', + sube: '\u2286', + supe: '\u2287', + oplus: '\u2295', + otimes: '\u2297', + perp: '\u22A5', + sdot: '\u22C5', + lceil: '\u2308', + rceil: '\u2309', + lfloor: '\u230A', + rfloor: '\u230B', + lang: '\u2329', + rang: '\u232A', + loz: '\u25CA', + spades: '\u2660', + clubs: '\u2663', + hearts: '\u2665', + diams: '\u2666' +}; diff --git a/node_modules/acorn/CHANGELOG.md b/node_modules/acorn/CHANGELOG.md new file mode 100644 index 0000000..ea8d6c0 --- /dev/null +++ b/node_modules/acorn/CHANGELOG.md @@ -0,0 +1,810 @@ +## 8.8.0 (2022-07-21) + +### Bug fixes + +Allow parentheses around spread args in destructuring object assignment. + +Fix an issue where the tree contained `directive` properties in when parsing with a language version that doesn't support them. + +### New features + +Support hashbang comments by default in ECMAScript 2023 and later. + +## 8.7.1 (2021-04-26) + +### Bug fixes + +Stop handling `"use strict"` directives in ECMAScript versions before 5. + +Fix an issue where duplicate quoted export names in `export *` syntax were incorrectly checked. + +Add missing type for `tokTypes`. + +## 8.7.0 (2021-12-27) + +### New features + +Support quoted export names. + +Upgrade to Unicode 14. + +Add support for Unicode 13 properties in regular expressions. + +### Bug fixes + +Use a loop to find line breaks, because the existing regexp search would overrun the end of the searched range and waste a lot of time in minified code. + +## 8.6.0 (2021-11-18) + +### Bug fixes + +Fix a bug where an object literal with multiple `__proto__` properties would incorrectly be accepted if a later property value held an assigment. + +### New features + +Support class private fields with the `in` operator. + +## 8.5.0 (2021-09-06) + +### Bug fixes + +Improve context-dependent tokenization in a number of corner cases. + +Fix location tracking after a 0x2028 or 0x2029 character in a string literal (which before did not increase the line number). + +Fix an issue where arrow function bodies in for loop context would inappropriately consume `in` operators. + +Fix wrong end locations stored on SequenceExpression nodes. + +Implement restriction that `for`/`of` loop LHS can't start with `let`. + +### New features + +Add support for ES2022 class static blocks. + +Allow multiple input files to be passed to the CLI tool. + +## 8.4.1 (2021-06-24) + +### Bug fixes + +Fix a bug where `allowAwaitOutsideFunction` would allow `await` in class field initializers, and setting `ecmaVersion` to 13 or higher would allow top-level await in non-module sources. + +## 8.4.0 (2021-06-11) + +### New features + +A new option, `allowSuperOutsideMethod`, can be used to suppress the error when `super` is used in the wrong context. + +## 8.3.0 (2021-05-31) + +### New features + +Default `allowAwaitOutsideFunction` to true for ECMAScript 2022 an higher. + +Add support for the `d` ([indices](https://github.com/tc39/proposal-regexp-match-indices)) regexp flag. + +## 8.2.4 (2021-05-04) + +### Bug fixes + +Fix spec conformity in corner case 'for await (async of ...)'. + +## 8.2.3 (2021-05-04) + +### Bug fixes + +Fix an issue where the library couldn't parse 'for (async of ...)'. + +Fix a bug in UTF-16 decoding that would read characters incorrectly in some circumstances. + +## 8.2.2 (2021-04-29) + +### Bug fixes + +Fix a bug where a class field initialized to an async arrow function wouldn't allow await inside it. Same issue existed for generator arrow functions with yield. + +## 8.2.1 (2021-04-24) + +### Bug fixes + +Fix a regression introduced in 8.2.0 where static or async class methods with keyword names fail to parse. + +## 8.2.0 (2021-04-24) + +### New features + +Add support for ES2022 class fields and private methods. + +## 8.1.1 (2021-04-12) + +### Various + +Stop shipping source maps in the NPM package. + +## 8.1.0 (2021-03-09) + +### Bug fixes + +Fix a spurious error in nested destructuring arrays. + +### New features + +Expose `allowAwaitOutsideFunction` in CLI interface. + +Make `allowImportExportAnywhere` also apply to `import.meta`. + +## 8.0.5 (2021-01-25) + +### Bug fixes + +Adjust package.json to work with Node 12.16.0 and 13.0-13.6. + +## 8.0.4 (2020-10-05) + +### Bug fixes + +Make `await x ** y` an error, following the spec. + +Fix potentially exponential regular expression. + +## 8.0.3 (2020-10-02) + +### Bug fixes + +Fix a wasteful loop during `Parser` creation when setting `ecmaVersion` to `"latest"`. + +## 8.0.2 (2020-09-30) + +### Bug fixes + +Make the TypeScript types reflect the current allowed values for `ecmaVersion`. + +Fix another regexp/division tokenizer issue. + +## 8.0.1 (2020-08-12) + +### Bug fixes + +Provide the correct value in the `version` export. + +## 8.0.0 (2020-08-12) + +### Bug fixes + +Disallow expressions like `(a = b) = c`. + +Make non-octal escape sequences a syntax error in strict mode. + +### New features + +The package can now be loaded directly as an ECMAScript module in node 13+. + +Update to the set of Unicode properties from ES2021. + +### Breaking changes + +The `ecmaVersion` option is now required. For the moment, omitting it will still work with a warning, but that will change in a future release. + +Some changes to method signatures that may be used by plugins. + +## 7.4.0 (2020-08-03) + +### New features + +Add support for logical assignment operators. + +Add support for numeric separators. + +## 7.3.1 (2020-06-11) + +### Bug fixes + +Make the string in the `version` export match the actual library version. + +## 7.3.0 (2020-06-11) + +### Bug fixes + +Fix a bug that caused parsing of object patterns with a property named `set` that had a default value to fail. + +### New features + +Add support for optional chaining (`?.`). + +## 7.2.0 (2020-05-09) + +### Bug fixes + +Fix precedence issue in parsing of async arrow functions. + +### New features + +Add support for nullish coalescing. + +Add support for `import.meta`. + +Support `export * as ...` syntax. + +Upgrade to Unicode 13. + +## 6.4.1 (2020-03-09) + +### Bug fixes + +More carefully check for valid UTF16 surrogate pairs in regexp validator. + +## 7.1.1 (2020-03-01) + +### Bug fixes + +Treat `\8` and `\9` as invalid escapes in template strings. + +Allow unicode escapes in property names that are keywords. + +Don't error on an exponential operator expression as argument to `await`. + +More carefully check for valid UTF16 surrogate pairs in regexp validator. + +## 7.1.0 (2019-09-24) + +### Bug fixes + +Disallow trailing object literal commas when ecmaVersion is less than 5. + +### New features + +Add a static `acorn` property to the `Parser` class that contains the entire module interface, to allow plugins to access the instance of the library that they are acting on. + +## 7.0.0 (2019-08-13) + +### Breaking changes + +Changes the node format for dynamic imports to use the `ImportExpression` node type, as defined in [ESTree](https://github.com/estree/estree/blob/master/es2020.md#importexpression). + +Makes 10 (ES2019) the default value for the `ecmaVersion` option. + +## 6.3.0 (2019-08-12) + +### New features + +`sourceType: "module"` can now be used even when `ecmaVersion` is less than 6, to parse module-style code that otherwise conforms to an older standard. + +## 6.2.1 (2019-07-21) + +### Bug fixes + +Fix bug causing Acorn to treat some characters as identifier characters that shouldn't be treated as such. + +Fix issue where setting the `allowReserved` option to `"never"` allowed reserved words in some circumstances. + +## 6.2.0 (2019-07-04) + +### Bug fixes + +Improve valid assignment checking in `for`/`in` and `for`/`of` loops. + +Disallow binding `let` in patterns. + +### New features + +Support bigint syntax with `ecmaVersion` >= 11. + +Support dynamic `import` syntax with `ecmaVersion` >= 11. + +Upgrade to Unicode version 12. + +## 6.1.1 (2019-02-27) + +### Bug fixes + +Fix bug that caused parsing default exports of with names to fail. + +## 6.1.0 (2019-02-08) + +### Bug fixes + +Fix scope checking when redefining a `var` as a lexical binding. + +### New features + +Split up `parseSubscripts` to use an internal `parseSubscript` method to make it easier to extend with plugins. + +## 6.0.7 (2019-02-04) + +### Bug fixes + +Check that exported bindings are defined. + +Don't treat `\u180e` as a whitespace character. + +Check for duplicate parameter names in methods. + +Don't allow shorthand properties when they are generators or async methods. + +Forbid binding `await` in async arrow function's parameter list. + +## 6.0.6 (2019-01-30) + +### Bug fixes + +The content of class declarations and expressions is now always parsed in strict mode. + +Don't allow `let` or `const` to bind the variable name `let`. + +Treat class declarations as lexical. + +Don't allow a generator function declaration as the sole body of an `if` or `else`. + +Ignore `"use strict"` when after an empty statement. + +Allow string line continuations with special line terminator characters. + +Treat `for` bodies as part of the `for` scope when checking for conflicting bindings. + +Fix bug with parsing `yield` in a `for` loop initializer. + +Implement special cases around scope checking for functions. + +## 6.0.5 (2019-01-02) + +### Bug fixes + +Fix TypeScript type for `Parser.extend` and add `allowAwaitOutsideFunction` to options type. + +Don't treat `let` as a keyword when the next token is `{` on the next line. + +Fix bug that broke checking for parentheses around an object pattern in a destructuring assignment when `preserveParens` was on. + +## 6.0.4 (2018-11-05) + +### Bug fixes + +Further improvements to tokenizing regular expressions in corner cases. + +## 6.0.3 (2018-11-04) + +### Bug fixes + +Fix bug in tokenizing an expression-less return followed by a function followed by a regular expression. + +Remove stray symlink in the package tarball. + +## 6.0.2 (2018-09-26) + +### Bug fixes + +Fix bug where default expressions could fail to parse inside an object destructuring assignment expression. + +## 6.0.1 (2018-09-14) + +### Bug fixes + +Fix wrong value in `version` export. + +## 6.0.0 (2018-09-14) + +### Bug fixes + +Better handle variable-redefinition checks for catch bindings and functions directly under if statements. + +Forbid `new.target` in top-level arrow functions. + +Fix issue with parsing a regexp after `yield` in some contexts. + +### New features + +The package now comes with TypeScript definitions. + +### Breaking changes + +The default value of the `ecmaVersion` option is now 9 (2018). + +Plugins work differently, and will have to be rewritten to work with this version. + +The loose parser and walker have been moved into separate packages (`acorn-loose` and `acorn-walk`). + +## 5.7.3 (2018-09-10) + +### Bug fixes + +Fix failure to tokenize regexps after expressions like `x.of`. + +Better error message for unterminated template literals. + +## 5.7.2 (2018-08-24) + +### Bug fixes + +Properly handle `allowAwaitOutsideFunction` in for statements. + +Treat function declarations at the top level of modules like let bindings. + +Don't allow async function declarations as the only statement under a label. + +## 5.7.0 (2018-06-15) + +### New features + +Upgraded to Unicode 11. + +## 5.6.0 (2018-05-31) + +### New features + +Allow U+2028 and U+2029 in string when ECMAVersion >= 10. + +Allow binding-less catch statements when ECMAVersion >= 10. + +Add `allowAwaitOutsideFunction` option for parsing top-level `await`. + +## 5.5.3 (2018-03-08) + +### Bug fixes + +A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps. + +## 5.5.2 (2018-03-08) + +### Bug fixes + +A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0. + +## 5.5.1 (2018-03-06) + +### Bug fixes + +Fix misleading error message for octal escapes in template strings. + +## 5.5.0 (2018-02-27) + +### New features + +The identifier character categorization is now based on Unicode version 10. + +Acorn will now validate the content of regular expressions, including new ES9 features. + +## 5.4.0 (2018-02-01) + +### Bug fixes + +Disallow duplicate or escaped flags on regular expressions. + +Disallow octal escapes in strings in strict mode. + +### New features + +Add support for async iteration. + +Add support for object spread and rest. + +## 5.3.0 (2017-12-28) + +### Bug fixes + +Fix parsing of floating point literals with leading zeroes in loose mode. + +Allow duplicate property names in object patterns. + +Don't allow static class methods named `prototype`. + +Disallow async functions directly under `if` or `else`. + +Parse right-hand-side of `for`/`of` as an assignment expression. + +Stricter parsing of `for`/`in`. + +Don't allow unicode escapes in contextual keywords. + +### New features + +Parsing class members was factored into smaller methods to allow plugins to hook into it. + +## 5.2.1 (2017-10-30) + +### Bug fixes + +Fix a token context corruption bug. + +## 5.2.0 (2017-10-30) + +### Bug fixes + +Fix token context tracking for `class` and `function` in property-name position. + +Make sure `%*` isn't parsed as a valid operator. + +Allow shorthand properties `get` and `set` to be followed by default values. + +Disallow `super` when not in callee or object position. + +### New features + +Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements. + +## 5.1.2 (2017-09-04) + +### Bug fixes + +Disable parsing of legacy HTML-style comments in modules. + +Fix parsing of async methods whose names are keywords. + +## 5.1.1 (2017-07-06) + +### Bug fixes + +Fix problem with disambiguating regexp and division after a class. + +## 5.1.0 (2017-07-05) + +### Bug fixes + +Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`. + +Parse zero-prefixed numbers with non-octal digits as decimal. + +Allow object/array patterns in rest parameters. + +Don't error when `yield` is used as a property name. + +Allow `async` as a shorthand object property. + +### New features + +Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9. + +## 5.0.3 (2017-04-01) + +### Bug fixes + +Fix spurious duplicate variable definition errors for named functions. + +## 5.0.2 (2017-03-30) + +### Bug fixes + +A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error. + +## 5.0.0 (2017-03-28) + +### Bug fixes + +Raise an error for duplicated lexical bindings. + +Fix spurious error when an assignement expression occurred after a spread expression. + +Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions. + +Allow labels in front or `var` declarations, even in strict mode. + +### Breaking changes + +Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`. + +## 4.0.11 (2017-02-07) + +### Bug fixes + +Allow all forms of member expressions to be parenthesized as lvalue. + +## 4.0.10 (2017-02-07) + +### Bug fixes + +Don't expect semicolons after default-exported functions or classes, even when they are expressions. + +Check for use of `'use strict'` directives in non-simple parameter functions, even when already in strict mode. + +## 4.0.9 (2017-02-06) + +### Bug fixes + +Fix incorrect error raised for parenthesized simple assignment targets, so that `(x) = 1` parses again. + +## 4.0.8 (2017-02-03) + +### Bug fixes + +Solve spurious parenthesized pattern errors by temporarily erring on the side of accepting programs that our delayed errors don't handle correctly yet. + +## 4.0.7 (2017-02-02) + +### Bug fixes + +Accept invalidly rejected code like `(x).y = 2` again. + +Don't raise an error when a function _inside_ strict code has a non-simple parameter list. + +## 4.0.6 (2017-02-02) + +### Bug fixes + +Fix exponential behavior (manifesting itself as a complete hang for even relatively small source files) introduced by the new 'use strict' check. + +## 4.0.5 (2017-02-02) + +### Bug fixes + +Disallow parenthesized pattern expressions. + +Allow keywords as export names. + +Don't allow the `async` keyword to be parenthesized. + +Properly raise an error when a keyword contains a character escape. + +Allow `"use strict"` to appear after other string literal expressions. + +Disallow labeled declarations. + +## 4.0.4 (2016-12-19) + +### Bug fixes + +Fix crash when `export` was followed by a keyword that can't be +exported. + +## 4.0.3 (2016-08-16) + +### Bug fixes + +Allow regular function declarations inside single-statement `if` branches in loose mode. Forbid them entirely in strict mode. + +Properly parse properties named `async` in ES2017 mode. + +Fix bug where reserved words were broken in ES2017 mode. + +## 4.0.2 (2016-08-11) + +### Bug fixes + +Don't ignore period or 'e' characters after octal numbers. + +Fix broken parsing for call expressions in default parameter values of arrow functions. + +## 4.0.1 (2016-08-08) + +### Bug fixes + +Fix false positives in duplicated export name errors. + +## 4.0.0 (2016-08-07) + +### Breaking changes + +The default `ecmaVersion` option value is now 7. + +A number of internal method signatures changed, so plugins might need to be updated. + +### Bug fixes + +The parser now raises errors on duplicated export names. + +`arguments` and `eval` can now be used in shorthand properties. + +Duplicate parameter names in non-simple argument lists now always produce an error. + +### New features + +The `ecmaVersion` option now also accepts year-style version numbers +(2015, etc). + +Support for `async`/`await` syntax when `ecmaVersion` is >= 8. + +Support for trailing commas in call expressions when `ecmaVersion` is >= 8. + +## 3.3.0 (2016-07-25) + +### Bug fixes + +Fix bug in tokenizing of regexp operator after a function declaration. + +Fix parser crash when parsing an array pattern with a hole. + +### New features + +Implement check against complex argument lists in functions that enable strict mode in ES7. + +## 3.2.0 (2016-06-07) + +### Bug fixes + +Improve handling of lack of unicode regexp support in host +environment. + +Properly reject shorthand properties whose name is a keyword. + +### New features + +Visitors created with `visit.make` now have their base as _prototype_, rather than copying properties into a fresh object. + +## 3.1.0 (2016-04-18) + +### Bug fixes + +Properly tokenize the division operator directly after a function expression. + +Allow trailing comma in destructuring arrays. + +## 3.0.4 (2016-02-25) + +### Fixes + +Allow update expressions as left-hand-side of the ES7 exponential operator. + +## 3.0.2 (2016-02-10) + +### Fixes + +Fix bug that accidentally made `undefined` a reserved word when parsing ES7. + +## 3.0.0 (2016-02-10) + +### Breaking changes + +The default value of the `ecmaVersion` option is now 6 (used to be 5). + +Support for comprehension syntax (which was dropped from the draft spec) has been removed. + +### Fixes + +`let` and `yield` are now “contextual keywords”, meaning you can mostly use them as identifiers in ES5 non-strict code. + +A parenthesized class or function expression after `export default` is now parsed correctly. + +### New features + +When `ecmaVersion` is set to 7, Acorn will parse the exponentiation operator (`**`). + +The identifier character ranges are now based on Unicode 8.0.0. + +Plugins can now override the `raiseRecoverable` method to override the way non-critical errors are handled. + +## 2.7.0 (2016-01-04) + +### Fixes + +Stop allowing rest parameters in setters. + +Disallow `y` rexexp flag in ES5. + +Disallow `\00` and `\000` escapes in strict mode. + +Raise an error when an import name is a reserved word. + +## 2.6.2 (2015-11-10) + +### Fixes + +Don't crash when no options object is passed. + +## 2.6.0 (2015-11-09) + +### Fixes + +Add `await` as a reserved word in module sources. + +Disallow `yield` in a parameter default value for a generator. + +Forbid using a comma after a rest pattern in an array destructuring. + +### New features + +Support parsing stdin in command-line tool. + +## 2.5.0 (2015-10-27) + +### Fixes + +Fix tokenizer support in the command-line tool. + +Stop allowing `new.target` outside of functions. + +Remove legacy `guard` and `guardedHandler` properties from try nodes. + +Stop allowing multiple `__proto__` properties on an object literal in strict mode. + +Don't allow rest parameters to be non-identifier patterns. + +Check for duplicate paramter names in arrow functions. diff --git a/node_modules/acorn/LICENSE b/node_modules/acorn/LICENSE new file mode 100644 index 0000000..9d71cc6 --- /dev/null +++ b/node_modules/acorn/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2012-2022 by various contributors (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/acorn/README.md b/node_modules/acorn/README.md new file mode 100644 index 0000000..61e7dd3 --- /dev/null +++ b/node_modules/acorn/README.md @@ -0,0 +1,273 @@ +# Acorn + +A tiny, fast JavaScript parser written in JavaScript. + +## Community + +Acorn is open source software released under an +[MIT license](https://github.com/acornjs/acorn/blob/master/acorn/LICENSE). + +You are welcome to +[report bugs](https://github.com/acornjs/acorn/issues) or create pull +requests on [github](https://github.com/acornjs/acorn). For questions +and discussion, please use the +[Tern discussion forum](https://discuss.ternjs.net). + +## Installation + +The easiest way to install acorn is from [`npm`](https://www.npmjs.com/): + +```sh +npm install acorn +``` + +Alternately, you can download the source and build acorn yourself: + +```sh +git clone https://github.com/acornjs/acorn.git +cd acorn +npm install +``` + +## Interface + +**parse**`(input, options)` is the main interface to the library. The +`input` parameter is a string, `options` must be an object setting +some of the options listed below. The return value will be an abstract +syntax tree object as specified by the [ESTree +spec](https://github.com/estree/estree). + +```javascript +let acorn = require("acorn"); +console.log(acorn.parse("1 + 1", {ecmaVersion: 2020})); +``` + +When encountering a syntax error, the parser will raise a +`SyntaxError` object with a meaningful message. The error object will +have a `pos` property that indicates the string offset at which the +error occurred, and a `loc` object that contains a `{line, column}` +object referring to that same position. + +Options are provided by in a second argument, which should be an +object containing any of these fields (only `ecmaVersion` is +required): + +- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be + either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 (2019), + 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"` (the + latest the library supports). This influences support for strict + mode, the set of reserved words, and support for new syntax + features. + + **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being + implemented by Acorn. Other proposed new features must be + implemented through plugins. + +- **sourceType**: Indicate the mode the code should be parsed in. Can be + either `"script"` or `"module"`. This influences global strict mode + and parsing of `import` and `export` declarations. + + **NOTE**: If set to `"module"`, then static `import` / `export` syntax + will be valid, even if `ecmaVersion` is less than 6. + +- **onInsertedSemicolon**: If given a callback, that callback will be + called whenever a missing semicolon is inserted by the parser. The + callback will be given the character offset of the point where the + semicolon is inserted as argument, and if `locations` is on, also a + `{line, column}` object representing this position. + +- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing + commas. + +- **allowReserved**: If `false`, using a reserved word will generate + an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher + versions. When given the value `"never"`, reserved words and + keywords can also not be used as property names (as in Internet + Explorer's old parser). + +- **allowReturnOutsideFunction**: By default, a return statement at + the top level raises an error. Set this to `true` to accept such + code. + +- **allowImportExportEverywhere**: By default, `import` and `export` + declarations can only appear at a program's top level. Setting this + option to `true` allows them anywhere where a statement is allowed, + and also allows `import.meta` expressions to appear in scripts + (when `sourceType` is not `"module"`). + +- **allowAwaitOutsideFunction**: If `false`, `await` expressions can + only appear inside `async` functions. Defaults to `true` for + `ecmaVersion` 2022 and later, `false` for lower versions. Setting this option to + `true` allows to have top-level `await` expressions. They are + still not allowed in non-`async` functions, though. + +- **allowSuperOutsideMethod**: By default, `super` outside a method + raises an error. Set this to `true` to accept such code. + +- **allowHashBang**: When this is enabled, if the code starts with the + characters `#!` (as in a shellscript), the first line will be + treated as a comment. Defaults to true when `ecmaVersion` >= 2023. + +- **locations**: When `true`, each node has a `loc` object attached + with `start` and `end` subobjects, each of which contains the + one-based line and zero-based column numbers in `{line, column}` + form. Default is `false`. + +- **onToken**: If a function is passed for this option, each found + token will be passed in same format as tokens returned from + `tokenizer().getToken()`. + + If array is passed, each found token is pushed to it. + + Note that you are not allowed to call the parser from the + callback—that will corrupt its internal state. + +- **onComment**: If a function is passed for this option, whenever a + comment is encountered the function will be called with the + following parameters: + + - `block`: `true` if the comment is a block comment, false if it + is a line comment. + - `text`: The content of the comment. + - `start`: Character offset of the start of the comment. + - `end`: Character offset of the end of the comment. + + When the `locations` options is on, the `{line, column}` locations + of the comment’s start and end are passed as two additional + parameters. + + If array is passed for this option, each found comment is pushed + to it as object in Esprima format: + + ```javascript + { + "type": "Line" | "Block", + "value": "comment text", + "start": Number, + "end": Number, + // If `locations` option is on: + "loc": { + "start": {line: Number, column: Number} + "end": {line: Number, column: Number} + }, + // If `ranges` option is on: + "range": [Number, Number] + } + ``` + + Note that you are not allowed to call the parser from the + callback—that will corrupt its internal state. + +- **ranges**: Nodes have their start and end characters offsets + recorded in `start` and `end` properties (directly on the node, + rather than the `loc` object, which holds line/column data. To also + add a + [semi-standardized](https://bugzilla.mozilla.org/show_bug.cgi?id=745678) + `range` property holding a `[start, end]` array with the same + numbers, set the `ranges` option to `true`. + +- **program**: It is possible to parse multiple files into a single + AST by passing the tree produced by parsing the first file as the + `program` option in subsequent parses. This will add the toplevel + forms of the parsed file to the "Program" (top) node of an existing + parse tree. + +- **sourceFile**: When the `locations` option is `true`, you can pass + this option to add a `source` attribute in every node’s `loc` + object. Note that the contents of this option are not examined or + processed in any way; you are free to use whatever format you + choose. + +- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property + will be added (regardless of the `location` option) directly to the + nodes, rather than the `loc` object. + +- **preserveParens**: If this option is `true`, parenthesized expressions + are represented by (non-standard) `ParenthesizedExpression` nodes + that have a single `expression` property containing the expression + inside parentheses. + +**parseExpressionAt**`(input, offset, options)` will parse a single +expression in a string, and return its AST. It will not complain if +there is more of the string left after the expression. + +**tokenizer**`(input, options)` returns an object with a `getToken` +method that can be called repeatedly to get the next token, a `{start, +end, type, value}` object (with added `loc` property when the +`locations` option is enabled and `range` property when the `ranges` +option is enabled). When the token's type is `tokTypes.eof`, you +should stop calling the method, since it will keep returning that same +token forever. + +In ES6 environment, returned result can be used as any other +protocol-compliant iterable: + +```javascript +for (let token of acorn.tokenizer(str)) { + // iterate over the tokens +} + +// transform code to array of tokens: +var tokens = [...acorn.tokenizer(str)]; +``` + +**tokTypes** holds an object mapping names to the token type objects +that end up in the `type` properties of tokens. + +**getLineInfo**`(input, offset)` can be used to get a `{line, +column}` object for a given program string and offset. + +### The `Parser` class + +Instances of the **`Parser`** class contain all the state and logic +that drives a parse. It has static methods `parse`, +`parseExpressionAt`, and `tokenizer` that match the top-level +functions by the same name. + +When extending the parser with plugins, you need to call these methods +on the extended version of the class. To extend a parser with plugins, +you can use its static `extend` method. + +```javascript +var acorn = require("acorn"); +var jsx = require("acorn-jsx"); +var JSXParser = acorn.Parser.extend(jsx()); +JSXParser.parse("foo()", {ecmaVersion: 2020}); +``` + +The `extend` method takes any number of plugin values, and returns a +new `Parser` class that includes the extra parser logic provided by +the plugins. + +## Command line interface + +The `bin/acorn` utility can be used to parse a file from the command +line. It accepts as arguments its input file and the following +options: + +- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version + to parse. Default is version 9. + +- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise. + +- `--locations`: Attaches a "loc" object to each node with "start" and + "end" subobjects, each of which contains the one-based line and + zero-based column numbers in `{line, column}` form. + +- `--allow-hash-bang`: If the code starts with the characters #! (as + in a shellscript), the first line will be treated as a comment. + +- `--allow-await-outside-function`: Allows top-level `await` expressions. + See the `allowAwaitOutsideFunction` option for more information. + +- `--compact`: No whitespace is used in the AST output. + +- `--silent`: Do not output the AST, just return the exit status. + +- `--help`: Print the usage information and quit. + +The utility spits out the syntax tree as JSON data. + +## Existing plugins + + - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx) diff --git a/node_modules/acorn/bin/acorn b/node_modules/acorn/bin/acorn new file mode 100755 index 0000000..3ef3c12 --- /dev/null +++ b/node_modules/acorn/bin/acorn @@ -0,0 +1,4 @@ +#!/usr/bin/env node +"use strict" + +require("../dist/bin.js") diff --git a/node_modules/acorn/dist/acorn.d.ts b/node_modules/acorn/dist/acorn.d.ts new file mode 100644 index 0000000..140f6ed --- /dev/null +++ b/node_modules/acorn/dist/acorn.d.ts @@ -0,0 +1,252 @@ +export as namespace acorn +export = acorn + +declare namespace acorn { + function parse(input: string, options: Options): Node + + function parseExpressionAt(input: string, pos: number, options: Options): Node + + function tokenizer(input: string, options: Options): { + getToken(): Token + [Symbol.iterator](): Iterator + } + + type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 'latest' + + interface Options { + ecmaVersion: ecmaVersion + sourceType?: 'script' | 'module' + onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void + onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void + allowReserved?: boolean | 'never' + allowReturnOutsideFunction?: boolean + allowImportExportEverywhere?: boolean + allowAwaitOutsideFunction?: boolean + allowSuperOutsideMethod?: boolean + allowHashBang?: boolean + locations?: boolean + onToken?: ((token: Token) => any) | Token[] + onComment?: (( + isBlock: boolean, text: string, start: number, end: number, startLoc?: Position, + endLoc?: Position + ) => void) | Comment[] + ranges?: boolean + program?: Node + sourceFile?: string + directSourceFile?: string + preserveParens?: boolean + } + + class Parser { + // state.js + lineStart: number; + options: Options; + curLine: number; + start: number; + end: number; + input: string; + type: TokenType; + + // state.js + constructor(options: Options, input: string, startPos?: number) + parse(this: Parser): Node + + // tokenize.js + next(): void; + nextToken(): void; + + // statement.js + parseTopLevel(node: Node): Node; + + // node.js + finishNode(node: Node, type: string): Node; + finishNodeAt(node: Node, type: string, pos: number, loc: Position): Node; + + // location.js + raise(pos: number, message: string) : void; + raiseRecoverable?(pos: number, message: string) : void; + + // parseutils.js + unexpected(pos: number) : void; + + // index.js + static acorn: typeof acorn; + + // state.js + static parse(this: typeof Parser, input: string, options: Options): Node + static parseExpressionAt(this: typeof Parser, input: string, pos: number, options: Options): Node + static tokenizer(this: typeof Parser, input: string, options: Options): { + getToken(): Token + [Symbol.iterator](): Iterator + } + static extend(this: typeof Parser, ...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser + } + + interface Position { line: number; column: number; offset: number } + + const defaultOptions: Options + + function getLineInfo(input: string, offset: number): Position + + class SourceLocation { + start: Position + end: Position + source?: string | null + constructor(p: Parser, start: Position, end: Position) + } + + class Node { + type: string + start: number + end: number + loc?: SourceLocation + sourceFile?: string + range?: [number, number] + constructor(parser: Parser, pos: number, loc?: SourceLocation) + } + + class TokenType { + label: string + keyword: string + beforeExpr: boolean + startsExpr: boolean + isLoop: boolean + isAssign: boolean + prefix: boolean + postfix: boolean + binop: number + updateContext?: (prevType: TokenType) => void + constructor(label: string, conf?: any) + } + + const tokTypes: { + num: TokenType + regexp: TokenType + string: TokenType + name: TokenType + privateId: TokenType + eof: TokenType + bracketL: TokenType + bracketR: TokenType + braceL: TokenType + braceR: TokenType + parenL: TokenType + parenR: TokenType + comma: TokenType + semi: TokenType + colon: TokenType + dot: TokenType + question: TokenType + questionDot: TokenType + arrow: TokenType + template: TokenType + invalidTemplate: TokenType + ellipsis: TokenType + backQuote: TokenType + dollarBraceL: TokenType + eq: TokenType + assign: TokenType + incDec: TokenType + prefix: TokenType + logicalOR: TokenType + logicalAND: TokenType + bitwiseOR: TokenType + bitwiseXOR: TokenType + bitwiseAND: TokenType + equality: TokenType + relational: TokenType + bitShift: TokenType + plusMin: TokenType + modulo: TokenType + star: TokenType + slash: TokenType + starstar: TokenType + coalesce: TokenType + _break: TokenType + _case: TokenType + _catch: TokenType + _continue: TokenType + _debugger: TokenType + _default: TokenType + _do: TokenType + _else: TokenType + _finally: TokenType + _for: TokenType + _function: TokenType + _if: TokenType + _return: TokenType + _switch: TokenType + _throw: TokenType + _try: TokenType + _var: TokenType + _const: TokenType + _while: TokenType + _with: TokenType + _new: TokenType + _this: TokenType + _super: TokenType + _class: TokenType + _extends: TokenType + _export: TokenType + _import: TokenType + _null: TokenType + _true: TokenType + _false: TokenType + _in: TokenType + _instanceof: TokenType + _typeof: TokenType + _void: TokenType + _delete: TokenType + } + + class TokContext { + constructor(token: string, isExpr: boolean, preserveSpace: boolean, override?: (p: Parser) => void) + } + + const tokContexts: { + b_stat: TokContext + b_expr: TokContext + b_tmpl: TokContext + p_stat: TokContext + p_expr: TokContext + q_tmpl: TokContext + f_expr: TokContext + f_stat: TokContext + f_expr_gen: TokContext + f_gen: TokContext + } + + function isIdentifierStart(code: number, astral?: boolean): boolean + + function isIdentifierChar(code: number, astral?: boolean): boolean + + interface AbstractToken { + } + + interface Comment extends AbstractToken { + type: string + value: string + start: number + end: number + loc?: SourceLocation + range?: [number, number] + } + + class Token { + type: TokenType + value: any + start: number + end: number + loc?: SourceLocation + range?: [number, number] + constructor(p: Parser) + } + + function isNewLine(code: number): boolean + + const lineBreak: RegExp + + const lineBreakG: RegExp + + const version: string +} diff --git a/node_modules/acorn/dist/acorn.js b/node_modules/acorn/dist/acorn.js new file mode 100644 index 0000000..8e8b225 --- /dev/null +++ b/node_modules/acorn/dist/acorn.js @@ -0,0 +1,5605 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.acorn = {})); +})(this, (function (exports) { 'use strict'; + + // This file was generated. Do not modify manually! + var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + + // This file was generated. Do not modify manually! + var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; + + // This file was generated. Do not modify manually! + var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; + + // This file was generated. Do not modify manually! + var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; + + // These are a run-length and offset encoded representation of the + + // Reserved word lists for various dialects of the language + + var reservedWords = { + 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", + 5: "class enum extends super const export import", + 6: "enum", + strict: "implements interface let package private protected public static yield", + strictBind: "eval arguments" + }; + + // And the keywords + + var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; + + var keywords$1 = { + 5: ecma5AndLessKeywords, + "5module": ecma5AndLessKeywords + " export import", + 6: ecma5AndLessKeywords + " const class extends export import super" + }; + + var keywordRelationalOperator = /^in(stanceof)?$/; + + // ## Character categories + + var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); + var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); + + // This has a complexity linear to the value of the code. The + // assumption is that looking up astral identifier characters is + // rare. + function isInAstralSet(code, set) { + var pos = 0x10000; + for (var i = 0; i < set.length; i += 2) { + pos += set[i]; + if (pos > code) { return false } + pos += set[i + 1]; + if (pos >= code) { return true } + } + } + + // Test whether a given character code starts an identifier. + + function isIdentifierStart(code, astral) { + if (code < 65) { return code === 36 } + if (code < 91) { return true } + if (code < 97) { return code === 95 } + if (code < 123) { return true } + if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) } + if (astral === false) { return false } + return isInAstralSet(code, astralIdentifierStartCodes) + } + + // Test whether a given character is part of an identifier. + + function isIdentifierChar(code, astral) { + if (code < 48) { return code === 36 } + if (code < 58) { return true } + if (code < 65) { return false } + if (code < 91) { return true } + if (code < 97) { return code === 95 } + if (code < 123) { return true } + if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) } + if (astral === false) { return false } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes) + } + + // ## Token types + + // The assignment of fine-grained, information-carrying type objects + // allows the tokenizer to store the information it has about a + // token in a way that is very cheap for the parser to look up. + + // All token type variables start with an underscore, to make them + // easy to recognize. + + // The `beforeExpr` property is used to disambiguate between regular + // expressions and divisions. It is set on all token types that can + // be followed by an expression (thus, a slash after them would be a + // regular expression). + // + // The `startsExpr` property is used to check if the token ends a + // `yield` expression. It is set on all token types that either can + // directly start an expression (like a quotation mark) or can + // continue an expression (like the body of a string). + // + // `isLoop` marks a keyword as starting a loop, which is important + // to know when parsing a label, in order to allow or disallow + // continue jumps to that label. + + var TokenType = function TokenType(label, conf) { + if ( conf === void 0 ) conf = {}; + + this.label = label; + this.keyword = conf.keyword; + this.beforeExpr = !!conf.beforeExpr; + this.startsExpr = !!conf.startsExpr; + this.isLoop = !!conf.isLoop; + this.isAssign = !!conf.isAssign; + this.prefix = !!conf.prefix; + this.postfix = !!conf.postfix; + this.binop = conf.binop || null; + this.updateContext = null; + }; + + function binop(name, prec) { + return new TokenType(name, {beforeExpr: true, binop: prec}) + } + var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}; + + // Map keyword names to token types. + + var keywords = {}; + + // Succinct definitions of keyword token types + function kw(name, options) { + if ( options === void 0 ) options = {}; + + options.keyword = name; + return keywords[name] = new TokenType(name, options) + } + + var types$1 = { + num: new TokenType("num", startsExpr), + regexp: new TokenType("regexp", startsExpr), + string: new TokenType("string", startsExpr), + name: new TokenType("name", startsExpr), + privateId: new TokenType("privateId", startsExpr), + eof: new TokenType("eof"), + + // Punctuation token types. + bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}), + bracketR: new TokenType("]"), + braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}), + braceR: new TokenType("}"), + parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}), + parenR: new TokenType(")"), + comma: new TokenType(",", beforeExpr), + semi: new TokenType(";", beforeExpr), + colon: new TokenType(":", beforeExpr), + dot: new TokenType("."), + question: new TokenType("?", beforeExpr), + questionDot: new TokenType("?."), + arrow: new TokenType("=>", beforeExpr), + template: new TokenType("template"), + invalidTemplate: new TokenType("invalidTemplate"), + ellipsis: new TokenType("...", beforeExpr), + backQuote: new TokenType("`", startsExpr), + dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}), + + // Operators. These carry several kinds of properties to help the + // parser use them properly (the presence of these properties is + // what categorizes them as operators). + // + // `binop`, when present, specifies that this operator is a binary + // operator, and will refer to its precedence. + // + // `prefix` and `postfix` mark the operator as a prefix or postfix + // unary operator. + // + // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as + // binary operators with a very low precedence, that should result + // in AssignmentExpression nodes. + + eq: new TokenType("=", {beforeExpr: true, isAssign: true}), + assign: new TokenType("_=", {beforeExpr: true, isAssign: true}), + incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}), + prefix: new TokenType("!/~", {beforeExpr: true, prefix: true, startsExpr: true}), + logicalOR: binop("||", 1), + logicalAND: binop("&&", 2), + bitwiseOR: binop("|", 3), + bitwiseXOR: binop("^", 4), + bitwiseAND: binop("&", 5), + equality: binop("==/!=/===/!==", 6), + relational: binop("/<=/>=", 7), + bitShift: binop("<>/>>>", 8), + plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}), + modulo: binop("%", 10), + star: binop("*", 10), + slash: binop("/", 10), + starstar: new TokenType("**", {beforeExpr: true}), + coalesce: binop("??", 1), + + // Keyword token types. + _break: kw("break"), + _case: kw("case", beforeExpr), + _catch: kw("catch"), + _continue: kw("continue"), + _debugger: kw("debugger"), + _default: kw("default", beforeExpr), + _do: kw("do", {isLoop: true, beforeExpr: true}), + _else: kw("else", beforeExpr), + _finally: kw("finally"), + _for: kw("for", {isLoop: true}), + _function: kw("function", startsExpr), + _if: kw("if"), + _return: kw("return", beforeExpr), + _switch: kw("switch"), + _throw: kw("throw", beforeExpr), + _try: kw("try"), + _var: kw("var"), + _const: kw("const"), + _while: kw("while", {isLoop: true}), + _with: kw("with"), + _new: kw("new", {beforeExpr: true, startsExpr: true}), + _this: kw("this", startsExpr), + _super: kw("super", startsExpr), + _class: kw("class", startsExpr), + _extends: kw("extends", beforeExpr), + _export: kw("export"), + _import: kw("import", startsExpr), + _null: kw("null", startsExpr), + _true: kw("true", startsExpr), + _false: kw("false", startsExpr), + _in: kw("in", {beforeExpr: true, binop: 7}), + _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}), + _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}), + _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}), + _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true}) + }; + + // Matches a whole line break (where CRLF is considered a single + // line break). Used to count lines. + + var lineBreak = /\r\n?|\n|\u2028|\u2029/; + var lineBreakG = new RegExp(lineBreak.source, "g"); + + function isNewLine(code) { + return code === 10 || code === 13 || code === 0x2028 || code === 0x2029 + } + + function nextLineBreak(code, from, end) { + if ( end === void 0 ) end = code.length; + + for (var i = from; i < end; i++) { + var next = code.charCodeAt(i); + if (isNewLine(next)) + { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 } + } + return -1 + } + + var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; + + var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; + + var ref = Object.prototype; + var hasOwnProperty = ref.hasOwnProperty; + var toString = ref.toString; + + var hasOwn = Object.hasOwn || (function (obj, propName) { return ( + hasOwnProperty.call(obj, propName) + ); }); + + var isArray = Array.isArray || (function (obj) { return ( + toString.call(obj) === "[object Array]" + ); }); + + function wordsRegexp(words) { + return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") + } + + function codePointToString(code) { + // UTF-16 Decoding + if (code <= 0xFFFF) { return String.fromCharCode(code) } + code -= 0x10000; + return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) + } + + var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; + + // These are used when `options.locations` is on, for the + // `startLoc` and `endLoc` properties. + + var Position = function Position(line, col) { + this.line = line; + this.column = col; + }; + + Position.prototype.offset = function offset (n) { + return new Position(this.line, this.column + n) + }; + + var SourceLocation = function SourceLocation(p, start, end) { + this.start = start; + this.end = end; + if (p.sourceFile !== null) { this.source = p.sourceFile; } + }; + + // The `getLineInfo` function is mostly useful when the + // `locations` option is off (for performance reasons) and you + // want to find the line/column position for a given character + // offset. `input` should be the code string that the offset refers + // into. + + function getLineInfo(input, offset) { + for (var line = 1, cur = 0;;) { + var nextBreak = nextLineBreak(input, cur, offset); + if (nextBreak < 0) { return new Position(line, offset - cur) } + ++line; + cur = nextBreak; + } + } + + // A second argument must be given to configure the parser process. + // These options are recognized (only `ecmaVersion` is required): + + var defaultOptions = { + // `ecmaVersion` indicates the ECMAScript version to parse. Must be + // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 + // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"` + // (the latest version the library supports). This influences + // support for strict mode, the set of reserved words, and support + // for new syntax features. + ecmaVersion: null, + // `sourceType` indicates the mode the code should be parsed in. + // Can be either `"script"` or `"module"`. This influences global + // strict mode and parsing of `import` and `export` declarations. + sourceType: "script", + // `onInsertedSemicolon` can be a callback that will be called + // when a semicolon is automatically inserted. It will be passed + // the position of the comma as an offset, and if `locations` is + // enabled, it is given the location as a `{line, column}` object + // as second argument. + onInsertedSemicolon: null, + // `onTrailingComma` is similar to `onInsertedSemicolon`, but for + // trailing commas. + onTrailingComma: null, + // By default, reserved words are only enforced if ecmaVersion >= 5. + // Set `allowReserved` to a boolean value to explicitly turn this on + // an off. When this option has the value "never", reserved words + // and keywords can also not be used as property names. + allowReserved: null, + // When enabled, a return at the top level is not considered an + // error. + allowReturnOutsideFunction: false, + // When enabled, import/export statements are not constrained to + // appearing at the top of the program, and an import.meta expression + // in a script isn't considered an error. + allowImportExportEverywhere: false, + // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022. + // When enabled, await identifiers are allowed to appear at the top-level scope, + // but they are still not allowed in non-async functions. + allowAwaitOutsideFunction: null, + // When enabled, super identifiers are not constrained to + // appearing in methods and do not raise an error when they appear elsewhere. + allowSuperOutsideMethod: null, + // When enabled, hashbang directive in the beginning of file is + // allowed and treated as a line comment. Enabled by default when + // `ecmaVersion` >= 2023. + allowHashBang: false, + // When `locations` is on, `loc` properties holding objects with + // `start` and `end` properties in `{line, column}` form (with + // line being 1-based and column 0-based) will be attached to the + // nodes. + locations: false, + // A function can be passed as `onToken` option, which will + // cause Acorn to call that function with object in the same + // format as tokens returned from `tokenizer().getToken()`. Note + // that you are not allowed to call the parser from the + // callback—that will corrupt its internal state. + onToken: null, + // A function can be passed as `onComment` option, which will + // cause Acorn to call that function with `(block, text, start, + // end)` parameters whenever a comment is skipped. `block` is a + // boolean indicating whether this is a block (`/* */`) comment, + // `text` is the content of the comment, and `start` and `end` are + // character offsets that denote the start and end of the comment. + // When the `locations` option is on, two more parameters are + // passed, the full `{line, column}` locations of the start and + // end of the comments. Note that you are not allowed to call the + // parser from the callback—that will corrupt its internal state. + onComment: null, + // Nodes have their start and end characters offsets recorded in + // `start` and `end` properties (directly on the node, rather than + // the `loc` object, which holds line/column data. To also add a + // [semi-standardized][range] `range` property holding a `[start, + // end]` array with the same numbers, set the `ranges` option to + // `true`. + // + // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 + ranges: false, + // It is possible to parse multiple files into a single AST by + // passing the tree produced by parsing the first file as + // `program` option in subsequent parses. This will add the + // toplevel forms of the parsed file to the `Program` (top) node + // of an existing parse tree. + program: null, + // When `locations` is on, you can pass this to record the source + // file in every node's `loc` object. + sourceFile: null, + // This value, if given, is stored in every node, whether + // `locations` is on or off. + directSourceFile: null, + // When enabled, parenthesized expressions are represented by + // (non-standard) ParenthesizedExpression nodes + preserveParens: false + }; + + // Interpret and default an options object + + var warnedAboutEcmaVersion = false; + + function getOptions(opts) { + var options = {}; + + for (var opt in defaultOptions) + { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; } + + if (options.ecmaVersion === "latest") { + options.ecmaVersion = 1e8; + } else if (options.ecmaVersion == null) { + if (!warnedAboutEcmaVersion && typeof console === "object" && console.warn) { + warnedAboutEcmaVersion = true; + console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future."); + } + options.ecmaVersion = 11; + } else if (options.ecmaVersion >= 2015) { + options.ecmaVersion -= 2009; + } + + if (options.allowReserved == null) + { options.allowReserved = options.ecmaVersion < 5; } + + if (opts.allowHashBang == null) + { options.allowHashBang = options.ecmaVersion >= 14; } + + if (isArray(options.onToken)) { + var tokens = options.onToken; + options.onToken = function (token) { return tokens.push(token); }; + } + if (isArray(options.onComment)) + { options.onComment = pushComment(options, options.onComment); } + + return options + } + + function pushComment(options, array) { + return function(block, text, start, end, startLoc, endLoc) { + var comment = { + type: block ? "Block" : "Line", + value: text, + start: start, + end: end + }; + if (options.locations) + { comment.loc = new SourceLocation(this, startLoc, endLoc); } + if (options.ranges) + { comment.range = [start, end]; } + array.push(comment); + } + } + + // Each scope gets a bitset that may contain these flags + var + SCOPE_TOP = 1, + SCOPE_FUNCTION = 2, + SCOPE_ASYNC = 4, + SCOPE_GENERATOR = 8, + SCOPE_ARROW = 16, + SCOPE_SIMPLE_CATCH = 32, + SCOPE_SUPER = 64, + SCOPE_DIRECT_SUPER = 128, + SCOPE_CLASS_STATIC_BLOCK = 256, + SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK; + + function functionFlags(async, generator) { + return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0) + } + + // Used in checkLVal* and declareName to determine the type of a binding + var + BIND_NONE = 0, // Not a binding + BIND_VAR = 1, // Var-style binding + BIND_LEXICAL = 2, // Let- or const-style binding + BIND_FUNCTION = 3, // Function declaration + BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding + BIND_OUTSIDE = 5; // Special case for function names as bound inside the function + + var Parser = function Parser(options, input, startPos) { + this.options = options = getOptions(options); + this.sourceFile = options.sourceFile; + this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); + var reserved = ""; + if (options.allowReserved !== true) { + reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3]; + if (options.sourceType === "module") { reserved += " await"; } + } + this.reservedWords = wordsRegexp(reserved); + var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict; + this.reservedWordsStrict = wordsRegexp(reservedStrict); + this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind); + this.input = String(input); + + // Used to signal to callers of `readWord1` whether the word + // contained any escape sequences. This is needed because words with + // escape sequences must not be interpreted as keywords. + this.containsEsc = false; + + // Set up token state + + // The current position of the tokenizer in the input. + if (startPos) { + this.pos = startPos; + this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1; + this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; + } else { + this.pos = this.lineStart = 0; + this.curLine = 1; + } + + // Properties of the current token: + // Its type + this.type = types$1.eof; + // For tokens that include more information than their type, the value + this.value = null; + // Its start and end offset + this.start = this.end = this.pos; + // And, if locations are used, the {line, column} object + // corresponding to those offsets + this.startLoc = this.endLoc = this.curPosition(); + + // Position information for the previous token + this.lastTokEndLoc = this.lastTokStartLoc = null; + this.lastTokStart = this.lastTokEnd = this.pos; + + // The context stack is used to superficially track syntactic + // context to predict whether a regular expression is allowed in a + // given position. + this.context = this.initialContext(); + this.exprAllowed = true; + + // Figure out if it's a module code. + this.inModule = options.sourceType === "module"; + this.strict = this.inModule || this.strictDirective(this.pos); + + // Used to signify the start of a potential arrow function + this.potentialArrowAt = -1; + this.potentialArrowInForAwait = false; + + // Positions to delayed-check that yield/await does not exist in default parameters. + this.yieldPos = this.awaitPos = this.awaitIdentPos = 0; + // Labels in scope. + this.labels = []; + // Thus-far undefined exports. + this.undefinedExports = Object.create(null); + + // If enabled, skip leading hashbang line. + if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") + { this.skipLineComment(2); } + + // Scope tracking for duplicate variable names (see scope.js) + this.scopeStack = []; + this.enterScope(SCOPE_TOP); + + // For RegExp validation + this.regexpState = null; + + // The stack of private names. + // Each element has two properties: 'declared' and 'used'. + // When it exited from the outermost class definition, all used private names must be declared. + this.privateNameStack = []; + }; + + var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },inClassStaticBlock: { configurable: true } }; + + Parser.prototype.parse = function parse () { + var node = this.options.program || this.startNode(); + this.nextToken(); + return this.parseTopLevel(node) + }; + + prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; + + prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit }; + + prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit }; + + prototypeAccessors.canAwait.get = function () { + for (var i = this.scopeStack.length - 1; i >= 0; i--) { + var scope = this.scopeStack[i]; + if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false } + if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 } + } + return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction + }; + + prototypeAccessors.allowSuper.get = function () { + var ref = this.currentThisScope(); + var flags = ref.flags; + var inClassFieldInit = ref.inClassFieldInit; + return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod + }; + + prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; + + prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; + + prototypeAccessors.allowNewDotTarget.get = function () { + var ref = this.currentThisScope(); + var flags = ref.flags; + var inClassFieldInit = ref.inClassFieldInit; + return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit + }; + + prototypeAccessors.inClassStaticBlock.get = function () { + return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0 + }; + + Parser.extend = function extend () { + var plugins = [], len = arguments.length; + while ( len-- ) plugins[ len ] = arguments[ len ]; + + var cls = this; + for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); } + return cls + }; + + Parser.parse = function parse (input, options) { + return new this(options, input).parse() + }; + + Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) { + var parser = new this(options, input, pos); + parser.nextToken(); + return parser.parseExpression() + }; + + Parser.tokenizer = function tokenizer (input, options) { + return new this(options, input) + }; + + Object.defineProperties( Parser.prototype, prototypeAccessors ); + + var pp$9 = Parser.prototype; + + // ## Parser utilities + + var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; + pp$9.strictDirective = function(start) { + if (this.options.ecmaVersion < 5) { return false } + for (;;) { + // Try to find string literal. + skipWhiteSpace.lastIndex = start; + start += skipWhiteSpace.exec(this.input)[0].length; + var match = literal.exec(this.input.slice(start)); + if (!match) { return false } + if ((match[1] || match[2]) === "use strict") { + skipWhiteSpace.lastIndex = start + match[0].length; + var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length; + var next = this.input.charAt(end); + return next === ";" || next === "}" || + (lineBreak.test(spaceAfter[0]) && + !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "=")) + } + start += match[0].length; + + // Skip semicolon, if any. + skipWhiteSpace.lastIndex = start; + start += skipWhiteSpace.exec(this.input)[0].length; + if (this.input[start] === ";") + { start++; } + } + }; + + // Predicate that tests whether the next token is of the given + // type, and if yes, consumes it as a side effect. + + pp$9.eat = function(type) { + if (this.type === type) { + this.next(); + return true + } else { + return false + } + }; + + // Tests whether parsed token is a contextual keyword. + + pp$9.isContextual = function(name) { + return this.type === types$1.name && this.value === name && !this.containsEsc + }; + + // Consumes contextual keyword if possible. + + pp$9.eatContextual = function(name) { + if (!this.isContextual(name)) { return false } + this.next(); + return true + }; + + // Asserts that following token is given contextual keyword. + + pp$9.expectContextual = function(name) { + if (!this.eatContextual(name)) { this.unexpected(); } + }; + + // Test whether a semicolon can be inserted at the current position. + + pp$9.canInsertSemicolon = function() { + return this.type === types$1.eof || + this.type === types$1.braceR || + lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) + }; + + pp$9.insertSemicolon = function() { + if (this.canInsertSemicolon()) { + if (this.options.onInsertedSemicolon) + { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); } + return true + } + }; + + // Consume a semicolon, or, failing that, see if we are allowed to + // pretend that there is a semicolon at this position. + + pp$9.semicolon = function() { + if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); } + }; + + pp$9.afterTrailingComma = function(tokType, notNext) { + if (this.type === tokType) { + if (this.options.onTrailingComma) + { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); } + if (!notNext) + { this.next(); } + return true + } + }; + + // Expect a token of a given type. If found, consume it, otherwise, + // raise an unexpected token error. + + pp$9.expect = function(type) { + this.eat(type) || this.unexpected(); + }; + + // Raise an unexpected token error. + + pp$9.unexpected = function(pos) { + this.raise(pos != null ? pos : this.start, "Unexpected token"); + }; + + var DestructuringErrors = function DestructuringErrors() { + this.shorthandAssign = + this.trailingComma = + this.parenthesizedAssign = + this.parenthesizedBind = + this.doubleProto = + -1; + }; + + pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) { + if (!refDestructuringErrors) { return } + if (refDestructuringErrors.trailingComma > -1) + { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); } + var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind; + if (parens > -1) { this.raiseRecoverable(parens, isAssign ? "Assigning to rvalue" : "Parenthesized pattern"); } + }; + + pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) { + if (!refDestructuringErrors) { return false } + var shorthandAssign = refDestructuringErrors.shorthandAssign; + var doubleProto = refDestructuringErrors.doubleProto; + if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 } + if (shorthandAssign >= 0) + { this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); } + if (doubleProto >= 0) + { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); } + }; + + pp$9.checkYieldAwaitInDefaultParams = function() { + if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) + { this.raise(this.yieldPos, "Yield expression cannot be a default value"); } + if (this.awaitPos) + { this.raise(this.awaitPos, "Await expression cannot be a default value"); } + }; + + pp$9.isSimpleAssignTarget = function(expr) { + if (expr.type === "ParenthesizedExpression") + { return this.isSimpleAssignTarget(expr.expression) } + return expr.type === "Identifier" || expr.type === "MemberExpression" + }; + + var pp$8 = Parser.prototype; + + // ### Statement parsing + + // Parse a program. Initializes the parser, reads any number of + // statements, and wraps them in a Program node. Optionally takes a + // `program` argument. If present, the statements will be appended + // to its body instead of creating a new node. + + pp$8.parseTopLevel = function(node) { + var exports = Object.create(null); + if (!node.body) { node.body = []; } + while (this.type !== types$1.eof) { + var stmt = this.parseStatement(null, true, exports); + node.body.push(stmt); + } + if (this.inModule) + { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1) + { + var name = list[i]; + + this.raiseRecoverable(this.undefinedExports[name].start, ("Export '" + name + "' is not defined")); + } } + this.adaptDirectivePrologue(node.body); + this.next(); + node.sourceType = this.options.sourceType; + return this.finishNode(node, "Program") + }; + + var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; + + pp$8.isLet = function(context) { + if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false } + skipWhiteSpace.lastIndex = this.pos; + var skip = skipWhiteSpace.exec(this.input); + var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); + // For ambiguous cases, determine if a LexicalDeclaration (or only a + // Statement) is allowed here. If context is not empty then only a Statement + // is allowed. However, `let [` is an explicit negative lookahead for + // ExpressionStatement, so special-case it first. + if (nextCh === 91 || nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '[', '/', astral + if (context) { return false } + + if (nextCh === 123) { return true } // '{' + if (isIdentifierStart(nextCh, true)) { + var pos = next + 1; + while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; } + if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } + var ident = this.input.slice(next, pos); + if (!keywordRelationalOperator.test(ident)) { return true } + } + return false + }; + + // check 'async [no LineTerminator here] function' + // - 'async /*foo*/ function' is OK. + // - 'async /*\n*/ function' is invalid. + pp$8.isAsyncFunction = function() { + if (this.options.ecmaVersion < 8 || !this.isContextual("async")) + { return false } + + skipWhiteSpace.lastIndex = this.pos; + var skip = skipWhiteSpace.exec(this.input); + var next = this.pos + skip[0].length, after; + return !lineBreak.test(this.input.slice(this.pos, next)) && + this.input.slice(next, next + 8) === "function" && + (next + 8 === this.input.length || + !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00)) + }; + + // Parse a single statement. + // + // If expecting a statement and finding a slash operator, parse a + // regular expression literal. This is to handle cases like + // `if (foo) /blah/.exec(foo)`, where looking at the previous token + // does not help. + + pp$8.parseStatement = function(context, topLevel, exports) { + var starttype = this.type, node = this.startNode(), kind; + + if (this.isLet(context)) { + starttype = types$1._var; + kind = "let"; + } + + // Most types of statements are recognized by the keyword they + // start with. Many are trivial to parse, some require a bit of + // complexity. + + switch (starttype) { + case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword) + case types$1._debugger: return this.parseDebuggerStatement(node) + case types$1._do: return this.parseDoStatement(node) + case types$1._for: return this.parseForStatement(node) + case types$1._function: + // Function as sole body of either an if statement or a labeled statement + // works, but not when it is part of a labeled statement that is the sole + // body of an if statement. + if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); } + return this.parseFunctionStatement(node, false, !context) + case types$1._class: + if (context) { this.unexpected(); } + return this.parseClass(node, true) + case types$1._if: return this.parseIfStatement(node) + case types$1._return: return this.parseReturnStatement(node) + case types$1._switch: return this.parseSwitchStatement(node) + case types$1._throw: return this.parseThrowStatement(node) + case types$1._try: return this.parseTryStatement(node) + case types$1._const: case types$1._var: + kind = kind || this.value; + if (context && kind !== "var") { this.unexpected(); } + return this.parseVarStatement(node, kind) + case types$1._while: return this.parseWhileStatement(node) + case types$1._with: return this.parseWithStatement(node) + case types$1.braceL: return this.parseBlock(true, node) + case types$1.semi: return this.parseEmptyStatement(node) + case types$1._export: + case types$1._import: + if (this.options.ecmaVersion > 10 && starttype === types$1._import) { + skipWhiteSpace.lastIndex = this.pos; + var skip = skipWhiteSpace.exec(this.input); + var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); + if (nextCh === 40 || nextCh === 46) // '(' or '.' + { return this.parseExpressionStatement(node, this.parseExpression()) } + } + + if (!this.options.allowImportExportEverywhere) { + if (!topLevel) + { this.raise(this.start, "'import' and 'export' may only appear at the top level"); } + if (!this.inModule) + { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); } + } + return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports) + + // If the statement does not start with a statement keyword or a + // brace, it's an ExpressionStatement or LabeledStatement. We + // simply start parsing an expression, and afterwards, if the + // next token is a colon and the expression was a simple + // Identifier node, we switch to interpreting it as a label. + default: + if (this.isAsyncFunction()) { + if (context) { this.unexpected(); } + this.next(); + return this.parseFunctionStatement(node, true, !context) + } + + var maybeName = this.value, expr = this.parseExpression(); + if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon)) + { return this.parseLabeledStatement(node, maybeName, expr, context) } + else { return this.parseExpressionStatement(node, expr) } + } + }; + + pp$8.parseBreakContinueStatement = function(node, keyword) { + var isBreak = keyword === "break"; + this.next(); + if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; } + else if (this.type !== types$1.name) { this.unexpected(); } + else { + node.label = this.parseIdent(); + this.semicolon(); + } + + // Verify that there is an actual destination to break or + // continue to. + var i = 0; + for (; i < this.labels.length; ++i) { + var lab = this.labels[i]; + if (node.label == null || lab.name === node.label.name) { + if (lab.kind != null && (isBreak || lab.kind === "loop")) { break } + if (node.label && isBreak) { break } + } + } + if (i === this.labels.length) { this.raise(node.start, "Unsyntactic " + keyword); } + return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement") + }; + + pp$8.parseDebuggerStatement = function(node) { + this.next(); + this.semicolon(); + return this.finishNode(node, "DebuggerStatement") + }; + + pp$8.parseDoStatement = function(node) { + this.next(); + this.labels.push(loopLabel); + node.body = this.parseStatement("do"); + this.labels.pop(); + this.expect(types$1._while); + node.test = this.parseParenExpression(); + if (this.options.ecmaVersion >= 6) + { this.eat(types$1.semi); } + else + { this.semicolon(); } + return this.finishNode(node, "DoWhileStatement") + }; + + // Disambiguating between a `for` and a `for`/`in` or `for`/`of` + // loop is non-trivial. Basically, we have to parse the init `var` + // statement or expression, disallowing the `in` operator (see + // the second parameter to `parseExpression`), and then check + // whether the next token is `in` or `of`. When there is no init + // part (semicolon immediately after the opening parenthesis), it + // is a regular `for` loop. + + pp$8.parseForStatement = function(node) { + this.next(); + var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await")) ? this.lastTokStart : -1; + this.labels.push(loopLabel); + this.enterScope(0); + this.expect(types$1.parenL); + if (this.type === types$1.semi) { + if (awaitAt > -1) { this.unexpected(awaitAt); } + return this.parseFor(node, null) + } + var isLet = this.isLet(); + if (this.type === types$1._var || this.type === types$1._const || isLet) { + var init$1 = this.startNode(), kind = isLet ? "let" : this.value; + this.next(); + this.parseVar(init$1, true, kind); + this.finishNode(init$1, "VariableDeclaration"); + if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) { + if (this.options.ecmaVersion >= 9) { + if (this.type === types$1._in) { + if (awaitAt > -1) { this.unexpected(awaitAt); } + } else { node.await = awaitAt > -1; } + } + return this.parseForIn(node, init$1) + } + if (awaitAt > -1) { this.unexpected(awaitAt); } + return this.parseFor(node, init$1) + } + var startsWithLet = this.isContextual("let"), isForOf = false; + var refDestructuringErrors = new DestructuringErrors; + var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors); + if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { + if (this.options.ecmaVersion >= 9) { + if (this.type === types$1._in) { + if (awaitAt > -1) { this.unexpected(awaitAt); } + } else { node.await = awaitAt > -1; } + } + if (startsWithLet && isForOf) { this.raise(init.start, "The left-hand side of a for-of loop may not start with 'let'."); } + this.toAssignable(init, false, refDestructuringErrors); + this.checkLValPattern(init); + return this.parseForIn(node, init) + } else { + this.checkExpressionErrors(refDestructuringErrors, true); + } + if (awaitAt > -1) { this.unexpected(awaitAt); } + return this.parseFor(node, init) + }; + + pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) { + this.next(); + return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync) + }; + + pp$8.parseIfStatement = function(node) { + this.next(); + node.test = this.parseParenExpression(); + // allow function declarations in branches, but only in non-strict mode + node.consequent = this.parseStatement("if"); + node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null; + return this.finishNode(node, "IfStatement") + }; + + pp$8.parseReturnStatement = function(node) { + if (!this.inFunction && !this.options.allowReturnOutsideFunction) + { this.raise(this.start, "'return' outside of function"); } + this.next(); + + // In `return` (and `break`/`continue`), the keywords with + // optional arguments, we eagerly look for a semicolon or the + // possibility to insert one. + + if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; } + else { node.argument = this.parseExpression(); this.semicolon(); } + return this.finishNode(node, "ReturnStatement") + }; + + pp$8.parseSwitchStatement = function(node) { + this.next(); + node.discriminant = this.parseParenExpression(); + node.cases = []; + this.expect(types$1.braceL); + this.labels.push(switchLabel); + this.enterScope(0); + + // Statements under must be grouped (by label) in SwitchCase + // nodes. `cur` is used to keep the node that we are currently + // adding statements to. + + var cur; + for (var sawDefault = false; this.type !== types$1.braceR;) { + if (this.type === types$1._case || this.type === types$1._default) { + var isCase = this.type === types$1._case; + if (cur) { this.finishNode(cur, "SwitchCase"); } + node.cases.push(cur = this.startNode()); + cur.consequent = []; + this.next(); + if (isCase) { + cur.test = this.parseExpression(); + } else { + if (sawDefault) { this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); } + sawDefault = true; + cur.test = null; + } + this.expect(types$1.colon); + } else { + if (!cur) { this.unexpected(); } + cur.consequent.push(this.parseStatement(null)); + } + } + this.exitScope(); + if (cur) { this.finishNode(cur, "SwitchCase"); } + this.next(); // Closing brace + this.labels.pop(); + return this.finishNode(node, "SwitchStatement") + }; + + pp$8.parseThrowStatement = function(node) { + this.next(); + if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) + { this.raise(this.lastTokEnd, "Illegal newline after throw"); } + node.argument = this.parseExpression(); + this.semicolon(); + return this.finishNode(node, "ThrowStatement") + }; + + // Reused empty array added for node fields that are always empty. + + var empty$1 = []; + + pp$8.parseTryStatement = function(node) { + this.next(); + node.block = this.parseBlock(); + node.handler = null; + if (this.type === types$1._catch) { + var clause = this.startNode(); + this.next(); + if (this.eat(types$1.parenL)) { + clause.param = this.parseBindingAtom(); + var simple = clause.param.type === "Identifier"; + this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0); + this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL); + this.expect(types$1.parenR); + } else { + if (this.options.ecmaVersion < 10) { this.unexpected(); } + clause.param = null; + this.enterScope(0); + } + clause.body = this.parseBlock(false); + this.exitScope(); + node.handler = this.finishNode(clause, "CatchClause"); + } + node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null; + if (!node.handler && !node.finalizer) + { this.raise(node.start, "Missing catch or finally clause"); } + return this.finishNode(node, "TryStatement") + }; + + pp$8.parseVarStatement = function(node, kind) { + this.next(); + this.parseVar(node, false, kind); + this.semicolon(); + return this.finishNode(node, "VariableDeclaration") + }; + + pp$8.parseWhileStatement = function(node) { + this.next(); + node.test = this.parseParenExpression(); + this.labels.push(loopLabel); + node.body = this.parseStatement("while"); + this.labels.pop(); + return this.finishNode(node, "WhileStatement") + }; + + pp$8.parseWithStatement = function(node) { + if (this.strict) { this.raise(this.start, "'with' in strict mode"); } + this.next(); + node.object = this.parseParenExpression(); + node.body = this.parseStatement("with"); + return this.finishNode(node, "WithStatement") + }; + + pp$8.parseEmptyStatement = function(node) { + this.next(); + return this.finishNode(node, "EmptyStatement") + }; + + pp$8.parseLabeledStatement = function(node, maybeName, expr, context) { + for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1) + { + var label = list[i$1]; + + if (label.name === maybeName) + { this.raise(expr.start, "Label '" + maybeName + "' is already declared"); + } } + var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null; + for (var i = this.labels.length - 1; i >= 0; i--) { + var label$1 = this.labels[i]; + if (label$1.statementStart === node.start) { + // Update information about previous labels on this node + label$1.statementStart = this.start; + label$1.kind = kind; + } else { break } + } + this.labels.push({name: maybeName, kind: kind, statementStart: this.start}); + node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); + this.labels.pop(); + node.label = expr; + return this.finishNode(node, "LabeledStatement") + }; + + pp$8.parseExpressionStatement = function(node, expr) { + node.expression = expr; + this.semicolon(); + return this.finishNode(node, "ExpressionStatement") + }; + + // Parse a semicolon-enclosed block of statements, handling `"use + // strict"` declarations when `allowStrict` is true (used for + // function bodies). + + pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) { + if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true; + if ( node === void 0 ) node = this.startNode(); + + node.body = []; + this.expect(types$1.braceL); + if (createNewLexicalScope) { this.enterScope(0); } + while (this.type !== types$1.braceR) { + var stmt = this.parseStatement(null); + node.body.push(stmt); + } + if (exitStrict) { this.strict = false; } + this.next(); + if (createNewLexicalScope) { this.exitScope(); } + return this.finishNode(node, "BlockStatement") + }; + + // Parse a regular `for` loop. The disambiguation code in + // `parseStatement` will already have parsed the init statement or + // expression. + + pp$8.parseFor = function(node, init) { + node.init = init; + this.expect(types$1.semi); + node.test = this.type === types$1.semi ? null : this.parseExpression(); + this.expect(types$1.semi); + node.update = this.type === types$1.parenR ? null : this.parseExpression(); + this.expect(types$1.parenR); + node.body = this.parseStatement("for"); + this.exitScope(); + this.labels.pop(); + return this.finishNode(node, "ForStatement") + }; + + // Parse a `for`/`in` and `for`/`of` loop, which are almost + // same from parser's perspective. + + pp$8.parseForIn = function(node, init) { + var isForIn = this.type === types$1._in; + this.next(); + + if ( + init.type === "VariableDeclaration" && + init.declarations[0].init != null && + ( + !isForIn || + this.options.ecmaVersion < 8 || + this.strict || + init.kind !== "var" || + init.declarations[0].id.type !== "Identifier" + ) + ) { + this.raise( + init.start, + ((isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer") + ); + } + node.left = init; + node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); + this.expect(types$1.parenR); + node.body = this.parseStatement("for"); + this.exitScope(); + this.labels.pop(); + return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement") + }; + + // Parse a list of variable declarations. + + pp$8.parseVar = function(node, isFor, kind) { + node.declarations = []; + node.kind = kind; + for (;;) { + var decl = this.startNode(); + this.parseVarId(decl, kind); + if (this.eat(types$1.eq)) { + decl.init = this.parseMaybeAssign(isFor); + } else if (kind === "const" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) { + this.unexpected(); + } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) { + this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); + } else { + decl.init = null; + } + node.declarations.push(this.finishNode(decl, "VariableDeclarator")); + if (!this.eat(types$1.comma)) { break } + } + return node + }; + + pp$8.parseVarId = function(decl, kind) { + decl.id = this.parseBindingAtom(); + this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false); + }; + + var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4; + + // Parse a function declaration or literal (depending on the + // `statement & FUNC_STATEMENT`). + + // Remove `allowExpressionBody` for 7.0.0, as it is only called with false + pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) { + this.initFunction(node); + if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { + if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT)) + { this.unexpected(); } + node.generator = this.eat(types$1.star); + } + if (this.options.ecmaVersion >= 8) + { node.async = !!isAsync; } + + if (statement & FUNC_STATEMENT) { + node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent(); + if (node.id && !(statement & FUNC_HANGING_STATEMENT)) + // If it is a regular function declaration in sloppy mode, then it is + // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding + // mode depends on properties of the current scope (see + // treatFunctionsAsVar). + { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); } + } + + var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; + this.yieldPos = 0; + this.awaitPos = 0; + this.awaitIdentPos = 0; + this.enterScope(functionFlags(node.async, node.generator)); + + if (!(statement & FUNC_STATEMENT)) + { node.id = this.type === types$1.name ? this.parseIdent() : null; } + + this.parseFunctionParams(node); + this.parseFunctionBody(node, allowExpressionBody, false, forInit); + + this.yieldPos = oldYieldPos; + this.awaitPos = oldAwaitPos; + this.awaitIdentPos = oldAwaitIdentPos; + return this.finishNode(node, (statement & FUNC_STATEMENT) ? "FunctionDeclaration" : "FunctionExpression") + }; + + pp$8.parseFunctionParams = function(node) { + this.expect(types$1.parenL); + node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); + this.checkYieldAwaitInDefaultParams(); + }; + + // Parse a class declaration or literal (depending on the + // `isStatement` parameter). + + pp$8.parseClass = function(node, isStatement) { + this.next(); + + // ecma-262 14.6 Class Definitions + // A class definition is always strict mode code. + var oldStrict = this.strict; + this.strict = true; + + this.parseClassId(node, isStatement); + this.parseClassSuper(node); + var privateNameMap = this.enterClassBody(); + var classBody = this.startNode(); + var hadConstructor = false; + classBody.body = []; + this.expect(types$1.braceL); + while (this.type !== types$1.braceR) { + var element = this.parseClassElement(node.superClass !== null); + if (element) { + classBody.body.push(element); + if (element.type === "MethodDefinition" && element.kind === "constructor") { + if (hadConstructor) { this.raise(element.start, "Duplicate constructor in the same class"); } + hadConstructor = true; + } else if (element.key && element.key.type === "PrivateIdentifier" && isPrivateNameConflicted(privateNameMap, element)) { + this.raiseRecoverable(element.key.start, ("Identifier '#" + (element.key.name) + "' has already been declared")); + } + } + } + this.strict = oldStrict; + this.next(); + node.body = this.finishNode(classBody, "ClassBody"); + this.exitClassBody(); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") + }; + + pp$8.parseClassElement = function(constructorAllowsSuper) { + if (this.eat(types$1.semi)) { return null } + + var ecmaVersion = this.options.ecmaVersion; + var node = this.startNode(); + var keyName = ""; + var isGenerator = false; + var isAsync = false; + var kind = "method"; + var isStatic = false; + + if (this.eatContextual("static")) { + // Parse static init block + if (ecmaVersion >= 13 && this.eat(types$1.braceL)) { + this.parseClassStaticBlock(node); + return node + } + if (this.isClassElementNameStart() || this.type === types$1.star) { + isStatic = true; + } else { + keyName = "static"; + } + } + node.static = isStatic; + if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) { + if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) { + isAsync = true; + } else { + keyName = "async"; + } + } + if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) { + isGenerator = true; + } + if (!keyName && !isAsync && !isGenerator) { + var lastValue = this.value; + if (this.eatContextual("get") || this.eatContextual("set")) { + if (this.isClassElementNameStart()) { + kind = lastValue; + } else { + keyName = lastValue; + } + } + } + + // Parse element name + if (keyName) { + // 'async', 'get', 'set', or 'static' were not a keyword contextually. + // The last token is any of those. Make it the element name. + node.computed = false; + node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc); + node.key.name = keyName; + this.finishNode(node.key, "Identifier"); + } else { + this.parseClassElementName(node); + } + + // Parse element value + if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) { + var isConstructor = !node.static && checkKeyName(node, "constructor"); + var allowsDirectSuper = isConstructor && constructorAllowsSuper; + // Couldn't move this check into the 'parseClassMethod' method for backward compatibility. + if (isConstructor && kind !== "method") { this.raise(node.key.start, "Constructor can't have get/set modifier"); } + node.kind = isConstructor ? "constructor" : kind; + this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper); + } else { + this.parseClassField(node); + } + + return node + }; + + pp$8.isClassElementNameStart = function() { + return ( + this.type === types$1.name || + this.type === types$1.privateId || + this.type === types$1.num || + this.type === types$1.string || + this.type === types$1.bracketL || + this.type.keyword + ) + }; + + pp$8.parseClassElementName = function(element) { + if (this.type === types$1.privateId) { + if (this.value === "constructor") { + this.raise(this.start, "Classes can't have an element named '#constructor'"); + } + element.computed = false; + element.key = this.parsePrivateIdent(); + } else { + this.parsePropertyName(element); + } + }; + + pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { + // Check key and flags + var key = method.key; + if (method.kind === "constructor") { + if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); } + if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); } + } else if (method.static && checkKeyName(method, "prototype")) { + this.raise(key.start, "Classes may not have a static property named prototype"); + } + + // Parse value + var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); + + // Check value + if (method.kind === "get" && value.params.length !== 0) + { this.raiseRecoverable(value.start, "getter should have no params"); } + if (method.kind === "set" && value.params.length !== 1) + { this.raiseRecoverable(value.start, "setter should have exactly one param"); } + if (method.kind === "set" && value.params[0].type === "RestElement") + { this.raiseRecoverable(value.params[0].start, "Setter cannot use rest params"); } + + return this.finishNode(method, "MethodDefinition") + }; + + pp$8.parseClassField = function(field) { + if (checkKeyName(field, "constructor")) { + this.raise(field.key.start, "Classes can't have a field named 'constructor'"); + } else if (field.static && checkKeyName(field, "prototype")) { + this.raise(field.key.start, "Classes can't have a static field named 'prototype'"); + } + + if (this.eat(types$1.eq)) { + // To raise SyntaxError if 'arguments' exists in the initializer. + var scope = this.currentThisScope(); + var inClassFieldInit = scope.inClassFieldInit; + scope.inClassFieldInit = true; + field.value = this.parseMaybeAssign(); + scope.inClassFieldInit = inClassFieldInit; + } else { + field.value = null; + } + this.semicolon(); + + return this.finishNode(field, "PropertyDefinition") + }; + + pp$8.parseClassStaticBlock = function(node) { + node.body = []; + + var oldLabels = this.labels; + this.labels = []; + this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER); + while (this.type !== types$1.braceR) { + var stmt = this.parseStatement(null); + node.body.push(stmt); + } + this.next(); + this.exitScope(); + this.labels = oldLabels; + + return this.finishNode(node, "StaticBlock") + }; + + pp$8.parseClassId = function(node, isStatement) { + if (this.type === types$1.name) { + node.id = this.parseIdent(); + if (isStatement) + { this.checkLValSimple(node.id, BIND_LEXICAL, false); } + } else { + if (isStatement === true) + { this.unexpected(); } + node.id = null; + } + }; + + pp$8.parseClassSuper = function(node) { + node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(false) : null; + }; + + pp$8.enterClassBody = function() { + var element = {declared: Object.create(null), used: []}; + this.privateNameStack.push(element); + return element.declared + }; + + pp$8.exitClassBody = function() { + var ref = this.privateNameStack.pop(); + var declared = ref.declared; + var used = ref.used; + var len = this.privateNameStack.length; + var parent = len === 0 ? null : this.privateNameStack[len - 1]; + for (var i = 0; i < used.length; ++i) { + var id = used[i]; + if (!hasOwn(declared, id.name)) { + if (parent) { + parent.used.push(id); + } else { + this.raiseRecoverable(id.start, ("Private field '#" + (id.name) + "' must be declared in an enclosing class")); + } + } + } + }; + + function isPrivateNameConflicted(privateNameMap, element) { + var name = element.key.name; + var curr = privateNameMap[name]; + + var next = "true"; + if (element.type === "MethodDefinition" && (element.kind === "get" || element.kind === "set")) { + next = (element.static ? "s" : "i") + element.kind; + } + + // `class { get #a(){}; static set #a(_){} }` is also conflict. + if ( + curr === "iget" && next === "iset" || + curr === "iset" && next === "iget" || + curr === "sget" && next === "sset" || + curr === "sset" && next === "sget" + ) { + privateNameMap[name] = "true"; + return false + } else if (!curr) { + privateNameMap[name] = next; + return false + } else { + return true + } + } + + function checkKeyName(node, name) { + var computed = node.computed; + var key = node.key; + return !computed && ( + key.type === "Identifier" && key.name === name || + key.type === "Literal" && key.value === name + ) + } + + // Parses module export declaration. + + pp$8.parseExport = function(node, exports) { + this.next(); + // export * from '...' + if (this.eat(types$1.star)) { + if (this.options.ecmaVersion >= 11) { + if (this.eatContextual("as")) { + node.exported = this.parseModuleExportName(); + this.checkExport(exports, node.exported, this.lastTokStart); + } else { + node.exported = null; + } + } + this.expectContextual("from"); + if (this.type !== types$1.string) { this.unexpected(); } + node.source = this.parseExprAtom(); + this.semicolon(); + return this.finishNode(node, "ExportAllDeclaration") + } + if (this.eat(types$1._default)) { // export default ... + this.checkExport(exports, "default", this.lastTokStart); + var isAsync; + if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) { + var fNode = this.startNode(); + this.next(); + if (isAsync) { this.next(); } + node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync); + } else if (this.type === types$1._class) { + var cNode = this.startNode(); + node.declaration = this.parseClass(cNode, "nullableID"); + } else { + node.declaration = this.parseMaybeAssign(); + this.semicolon(); + } + return this.finishNode(node, "ExportDefaultDeclaration") + } + // export var|const|let|function|class ... + if (this.shouldParseExportStatement()) { + node.declaration = this.parseStatement(null); + if (node.declaration.type === "VariableDeclaration") + { this.checkVariableExport(exports, node.declaration.declarations); } + else + { this.checkExport(exports, node.declaration.id, node.declaration.id.start); } + node.specifiers = []; + node.source = null; + } else { // export { x, y as z } [from '...'] + node.declaration = null; + node.specifiers = this.parseExportSpecifiers(exports); + if (this.eatContextual("from")) { + if (this.type !== types$1.string) { this.unexpected(); } + node.source = this.parseExprAtom(); + } else { + for (var i = 0, list = node.specifiers; i < list.length; i += 1) { + // check for keywords used as local names + var spec = list[i]; + + this.checkUnreserved(spec.local); + // check if export is defined + this.checkLocalExport(spec.local); + + if (spec.local.type === "Literal") { + this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`."); + } + } + + node.source = null; + } + this.semicolon(); + } + return this.finishNode(node, "ExportNamedDeclaration") + }; + + pp$8.checkExport = function(exports, name, pos) { + if (!exports) { return } + if (typeof name !== "string") + { name = name.type === "Identifier" ? name.name : name.value; } + if (hasOwn(exports, name)) + { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } + exports[name] = true; + }; + + pp$8.checkPatternExport = function(exports, pat) { + var type = pat.type; + if (type === "Identifier") + { this.checkExport(exports, pat, pat.start); } + else if (type === "ObjectPattern") + { for (var i = 0, list = pat.properties; i < list.length; i += 1) + { + var prop = list[i]; + + this.checkPatternExport(exports, prop); + } } + else if (type === "ArrayPattern") + { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) { + var elt = list$1[i$1]; + + if (elt) { this.checkPatternExport(exports, elt); } + } } + else if (type === "Property") + { this.checkPatternExport(exports, pat.value); } + else if (type === "AssignmentPattern") + { this.checkPatternExport(exports, pat.left); } + else if (type === "RestElement") + { this.checkPatternExport(exports, pat.argument); } + else if (type === "ParenthesizedExpression") + { this.checkPatternExport(exports, pat.expression); } + }; + + pp$8.checkVariableExport = function(exports, decls) { + if (!exports) { return } + for (var i = 0, list = decls; i < list.length; i += 1) + { + var decl = list[i]; + + this.checkPatternExport(exports, decl.id); + } + }; + + pp$8.shouldParseExportStatement = function() { + return this.type.keyword === "var" || + this.type.keyword === "const" || + this.type.keyword === "class" || + this.type.keyword === "function" || + this.isLet() || + this.isAsyncFunction() + }; + + // Parses a comma-separated list of module exports. + + pp$8.parseExportSpecifiers = function(exports) { + var nodes = [], first = true; + // export { x, y as z } [from '...'] + this.expect(types$1.braceL); + while (!this.eat(types$1.braceR)) { + if (!first) { + this.expect(types$1.comma); + if (this.afterTrailingComma(types$1.braceR)) { break } + } else { first = false; } + + var node = this.startNode(); + node.local = this.parseModuleExportName(); + node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; + this.checkExport( + exports, + node.exported, + node.exported.start + ); + nodes.push(this.finishNode(node, "ExportSpecifier")); + } + return nodes + }; + + // Parses import declaration. + + pp$8.parseImport = function(node) { + this.next(); + // import '...' + if (this.type === types$1.string) { + node.specifiers = empty$1; + node.source = this.parseExprAtom(); + } else { + node.specifiers = this.parseImportSpecifiers(); + this.expectContextual("from"); + node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected(); + } + this.semicolon(); + return this.finishNode(node, "ImportDeclaration") + }; + + // Parses a comma-separated list of module imports. + + pp$8.parseImportSpecifiers = function() { + var nodes = [], first = true; + if (this.type === types$1.name) { + // import defaultObj, { x, y as z } from '...' + var node = this.startNode(); + node.local = this.parseIdent(); + this.checkLValSimple(node.local, BIND_LEXICAL); + nodes.push(this.finishNode(node, "ImportDefaultSpecifier")); + if (!this.eat(types$1.comma)) { return nodes } + } + if (this.type === types$1.star) { + var node$1 = this.startNode(); + this.next(); + this.expectContextual("as"); + node$1.local = this.parseIdent(); + this.checkLValSimple(node$1.local, BIND_LEXICAL); + nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier")); + return nodes + } + this.expect(types$1.braceL); + while (!this.eat(types$1.braceR)) { + if (!first) { + this.expect(types$1.comma); + if (this.afterTrailingComma(types$1.braceR)) { break } + } else { first = false; } + + var node$2 = this.startNode(); + node$2.imported = this.parseModuleExportName(); + if (this.eatContextual("as")) { + node$2.local = this.parseIdent(); + } else { + this.checkUnreserved(node$2.imported); + node$2.local = node$2.imported; + } + this.checkLValSimple(node$2.local, BIND_LEXICAL); + nodes.push(this.finishNode(node$2, "ImportSpecifier")); + } + return nodes + }; + + pp$8.parseModuleExportName = function() { + if (this.options.ecmaVersion >= 13 && this.type === types$1.string) { + var stringLiteral = this.parseLiteral(this.value); + if (loneSurrogate.test(stringLiteral.value)) { + this.raise(stringLiteral.start, "An export name cannot include a lone surrogate."); + } + return stringLiteral + } + return this.parseIdent(true) + }; + + // Set `ExpressionStatement#directive` property for directive prologues. + pp$8.adaptDirectivePrologue = function(statements) { + for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { + statements[i].directive = statements[i].expression.raw.slice(1, -1); + } + }; + pp$8.isDirectiveCandidate = function(statement) { + return ( + this.options.ecmaVersion >= 5 && + statement.type === "ExpressionStatement" && + statement.expression.type === "Literal" && + typeof statement.expression.value === "string" && + // Reject parenthesized strings. + (this.input[statement.start] === "\"" || this.input[statement.start] === "'") + ) + }; + + var pp$7 = Parser.prototype; + + // Convert existing expression atom to assignable pattern + // if possible. + + pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) { + if (this.options.ecmaVersion >= 6 && node) { + switch (node.type) { + case "Identifier": + if (this.inAsync && node.name === "await") + { this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); } + break + + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + break + + case "ObjectExpression": + node.type = "ObjectPattern"; + if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } + for (var i = 0, list = node.properties; i < list.length; i += 1) { + var prop = list[i]; + + this.toAssignable(prop, isBinding); + // Early error: + // AssignmentRestProperty[Yield, Await] : + // `...` DestructuringAssignmentTarget[Yield, Await] + // + // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|. + if ( + prop.type === "RestElement" && + (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern") + ) { + this.raise(prop.argument.start, "Unexpected token"); + } + } + break + + case "Property": + // AssignmentProperty has type === "Property" + if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); } + this.toAssignable(node.value, isBinding); + break + + case "ArrayExpression": + node.type = "ArrayPattern"; + if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } + this.toAssignableList(node.elements, isBinding); + break + + case "SpreadElement": + node.type = "RestElement"; + this.toAssignable(node.argument, isBinding); + if (node.argument.type === "AssignmentPattern") + { this.raise(node.argument.start, "Rest elements cannot have a default value"); } + break + + case "AssignmentExpression": + if (node.operator !== "=") { this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); } + node.type = "AssignmentPattern"; + delete node.operator; + this.toAssignable(node.left, isBinding); + break + + case "ParenthesizedExpression": + this.toAssignable(node.expression, isBinding, refDestructuringErrors); + break + + case "ChainExpression": + this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side"); + break + + case "MemberExpression": + if (!isBinding) { break } + + default: + this.raise(node.start, "Assigning to rvalue"); + } + } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } + return node + }; + + // Convert list of expression atoms to binding list. + + pp$7.toAssignableList = function(exprList, isBinding) { + var end = exprList.length; + for (var i = 0; i < end; i++) { + var elt = exprList[i]; + if (elt) { this.toAssignable(elt, isBinding); } + } + if (end) { + var last = exprList[end - 1]; + if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") + { this.unexpected(last.argument.start); } + } + return exprList + }; + + // Parses spread element. + + pp$7.parseSpread = function(refDestructuringErrors) { + var node = this.startNode(); + this.next(); + node.argument = this.parseMaybeAssign(false, refDestructuringErrors); + return this.finishNode(node, "SpreadElement") + }; + + pp$7.parseRestBinding = function() { + var node = this.startNode(); + this.next(); + + // RestElement inside of a function parameter must be an identifier + if (this.options.ecmaVersion === 6 && this.type !== types$1.name) + { this.unexpected(); } + + node.argument = this.parseBindingAtom(); + + return this.finishNode(node, "RestElement") + }; + + // Parses lvalue (assignable) atom. + + pp$7.parseBindingAtom = function() { + if (this.options.ecmaVersion >= 6) { + switch (this.type) { + case types$1.bracketL: + var node = this.startNode(); + this.next(); + node.elements = this.parseBindingList(types$1.bracketR, true, true); + return this.finishNode(node, "ArrayPattern") + + case types$1.braceL: + return this.parseObj(true) + } + } + return this.parseIdent() + }; + + pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma) { + var elts = [], first = true; + while (!this.eat(close)) { + if (first) { first = false; } + else { this.expect(types$1.comma); } + if (allowEmpty && this.type === types$1.comma) { + elts.push(null); + } else if (allowTrailingComma && this.afterTrailingComma(close)) { + break + } else if (this.type === types$1.ellipsis) { + var rest = this.parseRestBinding(); + this.parseBindingListItem(rest); + elts.push(rest); + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } + this.expect(close); + break + } else { + var elem = this.parseMaybeDefault(this.start, this.startLoc); + this.parseBindingListItem(elem); + elts.push(elem); + } + } + return elts + }; + + pp$7.parseBindingListItem = function(param) { + return param + }; + + // Parses assignment pattern around given atom if possible. + + pp$7.parseMaybeDefault = function(startPos, startLoc, left) { + left = left || this.parseBindingAtom(); + if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left } + var node = this.startNodeAt(startPos, startLoc); + node.left = left; + node.right = this.parseMaybeAssign(); + return this.finishNode(node, "AssignmentPattern") + }; + + // The following three functions all verify that a node is an lvalue — + // something that can be bound, or assigned to. In order to do so, they perform + // a variety of checks: + // + // - Check that none of the bound/assigned-to identifiers are reserved words. + // - Record name declarations for bindings in the appropriate scope. + // - Check duplicate argument names, if checkClashes is set. + // + // If a complex binding pattern is encountered (e.g., object and array + // destructuring), the entire pattern is recursively checked. + // + // There are three versions of checkLVal*() appropriate for different + // circumstances: + // + // - checkLValSimple() shall be used if the syntactic construct supports + // nothing other than identifiers and member expressions. Parenthesized + // expressions are also correctly handled. This is generally appropriate for + // constructs for which the spec says + // + // > It is a Syntax Error if AssignmentTargetType of [the production] is not + // > simple. + // + // It is also appropriate for checking if an identifier is valid and not + // defined elsewhere, like import declarations or function/class identifiers. + // + // Examples where this is used include: + // a += …; + // import a from '…'; + // where a is the node to be checked. + // + // - checkLValPattern() shall be used if the syntactic construct supports + // anything checkLValSimple() supports, as well as object and array + // destructuring patterns. This is generally appropriate for constructs for + // which the spec says + // + // > It is a Syntax Error if [the production] is neither an ObjectLiteral nor + // > an ArrayLiteral and AssignmentTargetType of [the production] is not + // > simple. + // + // Examples where this is used include: + // (a = …); + // const a = …; + // try { … } catch (a) { … } + // where a is the node to be checked. + // + // - checkLValInnerPattern() shall be used if the syntactic construct supports + // anything checkLValPattern() supports, as well as default assignment + // patterns, rest elements, and other constructs that may appear within an + // object or array destructuring pattern. + // + // As a special case, function parameters also use checkLValInnerPattern(), + // as they also support defaults and rest constructs. + // + // These functions deliberately support both assignment and binding constructs, + // as the logic for both is exceedingly similar. If the node is the target of + // an assignment, then bindingType should be set to BIND_NONE. Otherwise, it + // should be set to the appropriate BIND_* constant, like BIND_VAR or + // BIND_LEXICAL. + // + // If the function is called with a non-BIND_NONE bindingType, then + // additionally a checkClashes object may be specified to allow checking for + // duplicate argument names. checkClashes is ignored if the provided construct + // is an assignment (i.e., bindingType is BIND_NONE). + + pp$7.checkLValSimple = function(expr, bindingType, checkClashes) { + if ( bindingType === void 0 ) bindingType = BIND_NONE; + + var isBind = bindingType !== BIND_NONE; + + switch (expr.type) { + case "Identifier": + if (this.strict && this.reservedWordsStrictBind.test(expr.name)) + { this.raiseRecoverable(expr.start, (isBind ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); } + if (isBind) { + if (bindingType === BIND_LEXICAL && expr.name === "let") + { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); } + if (checkClashes) { + if (hasOwn(checkClashes, expr.name)) + { this.raiseRecoverable(expr.start, "Argument name clash"); } + checkClashes[expr.name] = true; + } + if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); } + } + break + + case "ChainExpression": + this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side"); + break + + case "MemberExpression": + if (isBind) { this.raiseRecoverable(expr.start, "Binding member expression"); } + break + + case "ParenthesizedExpression": + if (isBind) { this.raiseRecoverable(expr.start, "Binding parenthesized expression"); } + return this.checkLValSimple(expr.expression, bindingType, checkClashes) + + default: + this.raise(expr.start, (isBind ? "Binding" : "Assigning to") + " rvalue"); + } + }; + + pp$7.checkLValPattern = function(expr, bindingType, checkClashes) { + if ( bindingType === void 0 ) bindingType = BIND_NONE; + + switch (expr.type) { + case "ObjectPattern": + for (var i = 0, list = expr.properties; i < list.length; i += 1) { + var prop = list[i]; + + this.checkLValInnerPattern(prop, bindingType, checkClashes); + } + break + + case "ArrayPattern": + for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) { + var elem = list$1[i$1]; + + if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); } + } + break + + default: + this.checkLValSimple(expr, bindingType, checkClashes); + } + }; + + pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) { + if ( bindingType === void 0 ) bindingType = BIND_NONE; + + switch (expr.type) { + case "Property": + // AssignmentProperty has type === "Property" + this.checkLValInnerPattern(expr.value, bindingType, checkClashes); + break + + case "AssignmentPattern": + this.checkLValPattern(expr.left, bindingType, checkClashes); + break + + case "RestElement": + this.checkLValPattern(expr.argument, bindingType, checkClashes); + break + + default: + this.checkLValPattern(expr, bindingType, checkClashes); + } + }; + + // The algorithm used to determine whether a regexp can appear at a + + var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) { + this.token = token; + this.isExpr = !!isExpr; + this.preserveSpace = !!preserveSpace; + this.override = override; + this.generator = !!generator; + }; + + var types = { + b_stat: new TokContext("{", false), + b_expr: new TokContext("{", true), + b_tmpl: new TokContext("${", false), + p_stat: new TokContext("(", false), + p_expr: new TokContext("(", true), + q_tmpl: new TokContext("`", true, true, function (p) { return p.tryReadTemplateToken(); }), + f_stat: new TokContext("function", false), + f_expr: new TokContext("function", true), + f_expr_gen: new TokContext("function", true, false, null, true), + f_gen: new TokContext("function", false, false, null, true) + }; + + var pp$6 = Parser.prototype; + + pp$6.initialContext = function() { + return [types.b_stat] + }; + + pp$6.curContext = function() { + return this.context[this.context.length - 1] + }; + + pp$6.braceIsBlock = function(prevType) { + var parent = this.curContext(); + if (parent === types.f_expr || parent === types.f_stat) + { return true } + if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr)) + { return !parent.isExpr } + + // The check for `tt.name && exprAllowed` detects whether we are + // after a `yield` or `of` construct. See the `updateContext` for + // `tt.name`. + if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed) + { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) } + if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow) + { return true } + if (prevType === types$1.braceL) + { return parent === types.b_stat } + if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name) + { return false } + return !this.exprAllowed + }; + + pp$6.inGeneratorContext = function() { + for (var i = this.context.length - 1; i >= 1; i--) { + var context = this.context[i]; + if (context.token === "function") + { return context.generator } + } + return false + }; + + pp$6.updateContext = function(prevType) { + var update, type = this.type; + if (type.keyword && prevType === types$1.dot) + { this.exprAllowed = false; } + else if (update = type.updateContext) + { update.call(this, prevType); } + else + { this.exprAllowed = type.beforeExpr; } + }; + + // Used to handle egde cases when token context could not be inferred correctly during tokenization phase + + pp$6.overrideContext = function(tokenCtx) { + if (this.curContext() !== tokenCtx) { + this.context[this.context.length - 1] = tokenCtx; + } + }; + + // Token-specific context update code + + types$1.parenR.updateContext = types$1.braceR.updateContext = function() { + if (this.context.length === 1) { + this.exprAllowed = true; + return + } + var out = this.context.pop(); + if (out === types.b_stat && this.curContext().token === "function") { + out = this.context.pop(); + } + this.exprAllowed = !out.isExpr; + }; + + types$1.braceL.updateContext = function(prevType) { + this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr); + this.exprAllowed = true; + }; + + types$1.dollarBraceL.updateContext = function() { + this.context.push(types.b_tmpl); + this.exprAllowed = true; + }; + + types$1.parenL.updateContext = function(prevType) { + var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while; + this.context.push(statementParens ? types.p_stat : types.p_expr); + this.exprAllowed = true; + }; + + types$1.incDec.updateContext = function() { + // tokExprAllowed stays unchanged + }; + + types$1._function.updateContext = types$1._class.updateContext = function(prevType) { + if (prevType.beforeExpr && prevType !== types$1._else && + !(prevType === types$1.semi && this.curContext() !== types.p_stat) && + !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && + !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat)) + { this.context.push(types.f_expr); } + else + { this.context.push(types.f_stat); } + this.exprAllowed = false; + }; + + types$1.backQuote.updateContext = function() { + if (this.curContext() === types.q_tmpl) + { this.context.pop(); } + else + { this.context.push(types.q_tmpl); } + this.exprAllowed = false; + }; + + types$1.star.updateContext = function(prevType) { + if (prevType === types$1._function) { + var index = this.context.length - 1; + if (this.context[index] === types.f_expr) + { this.context[index] = types.f_expr_gen; } + else + { this.context[index] = types.f_gen; } + } + this.exprAllowed = true; + }; + + types$1.name.updateContext = function(prevType) { + var allowed = false; + if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) { + if (this.value === "of" && !this.exprAllowed || + this.value === "yield" && this.inGeneratorContext()) + { allowed = true; } + } + this.exprAllowed = allowed; + }; + + // A recursive descent parser operates by defining functions for all + + var pp$5 = Parser.prototype; + + // Check if property name clashes with already added. + // Object/class getters and setters are not allowed to clash — + // either with each other or with an init property — and in + // strict mode, init properties are also not allowed to be repeated. + + pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) { + if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") + { return } + if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) + { return } + var key = prop.key; + var name; + switch (key.type) { + case "Identifier": name = key.name; break + case "Literal": name = String(key.value); break + default: return + } + var kind = prop.kind; + if (this.options.ecmaVersion >= 6) { + if (name === "__proto__" && kind === "init") { + if (propHash.proto) { + if (refDestructuringErrors) { + if (refDestructuringErrors.doubleProto < 0) { + refDestructuringErrors.doubleProto = key.start; + } + } else { + this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); + } + } + propHash.proto = true; + } + return + } + name = "$" + name; + var other = propHash[name]; + if (other) { + var redefinition; + if (kind === "init") { + redefinition = this.strict && other.init || other.get || other.set; + } else { + redefinition = other.init || other[kind]; + } + if (redefinition) + { this.raiseRecoverable(key.start, "Redefinition of property"); } + } else { + other = propHash[name] = { + init: false, + get: false, + set: false + }; + } + other[kind] = true; + }; + + // ### Expression parsing + + // These nest, from the most general expression type at the top to + // 'atomic', nondivisible expression types at the bottom. Most of + // the functions will simply let the function(s) below them parse, + // and, *if* the syntactic construct they handle is present, wrap + // the AST node that the inner parser gave them in another node. + + // Parse a full expression. The optional arguments are used to + // forbid the `in` operator (in for loops initalization expressions) + // and provide reference for storing '=' operator inside shorthand + // property assignment in contexts where both object expression + // and object pattern might appear (so it's possible to raise + // delayed syntax error at correct position). + + pp$5.parseExpression = function(forInit, refDestructuringErrors) { + var startPos = this.start, startLoc = this.startLoc; + var expr = this.parseMaybeAssign(forInit, refDestructuringErrors); + if (this.type === types$1.comma) { + var node = this.startNodeAt(startPos, startLoc); + node.expressions = [expr]; + while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); } + return this.finishNode(node, "SequenceExpression") + } + return expr + }; + + // Parse an assignment expression. This includes applications of + // operators like `+=`. + + pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { + if (this.isContextual("yield")) { + if (this.inGenerator) { return this.parseYield(forInit) } + // The tokenizer will assume an expression is allowed after + // `yield`, but this isn't that kind of yield + else { this.exprAllowed = false; } + } + + var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1; + if (refDestructuringErrors) { + oldParenAssign = refDestructuringErrors.parenthesizedAssign; + oldTrailingComma = refDestructuringErrors.trailingComma; + oldDoubleProto = refDestructuringErrors.doubleProto; + refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; + } else { + refDestructuringErrors = new DestructuringErrors; + ownDestructuringErrors = true; + } + + var startPos = this.start, startLoc = this.startLoc; + if (this.type === types$1.parenL || this.type === types$1.name) { + this.potentialArrowAt = this.start; + this.potentialArrowInForAwait = forInit === "await"; + } + var left = this.parseMaybeConditional(forInit, refDestructuringErrors); + if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); } + if (this.type.isAssign) { + var node = this.startNodeAt(startPos, startLoc); + node.operator = this.value; + if (this.type === types$1.eq) + { left = this.toAssignable(left, false, refDestructuringErrors); } + if (!ownDestructuringErrors) { + refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; + } + if (refDestructuringErrors.shorthandAssign >= left.start) + { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly + if (this.type === types$1.eq) + { this.checkLValPattern(left); } + else + { this.checkLValSimple(left); } + node.left = left; + this.next(); + node.right = this.parseMaybeAssign(forInit); + if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; } + return this.finishNode(node, "AssignmentExpression") + } else { + if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } + } + if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; } + if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; } + return left + }; + + // Parse a ternary conditional (`?:`) operator. + + pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) { + var startPos = this.start, startLoc = this.startLoc; + var expr = this.parseExprOps(forInit, refDestructuringErrors); + if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } + if (this.eat(types$1.question)) { + var node = this.startNodeAt(startPos, startLoc); + node.test = expr; + node.consequent = this.parseMaybeAssign(); + this.expect(types$1.colon); + node.alternate = this.parseMaybeAssign(forInit); + return this.finishNode(node, "ConditionalExpression") + } + return expr + }; + + // Start the precedence parser. + + pp$5.parseExprOps = function(forInit, refDestructuringErrors) { + var startPos = this.start, startLoc = this.startLoc; + var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit); + if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } + return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit) + }; + + // Parse binary operators with the operator precedence parsing + // algorithm. `left` is the left-hand side of the operator. + // `minPrec` provides context that allows the function to stop and + // defer further parser to one of its callers when it encounters an + // operator that has a lower precedence than the set it is parsing. + + pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { + var prec = this.type.binop; + if (prec != null && (!forInit || this.type !== types$1._in)) { + if (prec > minPrec) { + var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND; + var coalesce = this.type === types$1.coalesce; + if (coalesce) { + // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. + // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. + prec = types$1.logicalAND.binop; + } + var op = this.value; + this.next(); + var startPos = this.start, startLoc = this.startLoc; + var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit); + var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); + if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) { + this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); + } + return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit) + } + } + return left + }; + + pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) { + if (right.type === "PrivateIdentifier") { this.raise(right.start, "Private identifier can only be left side of binary expression"); } + var node = this.startNodeAt(startPos, startLoc); + node.left = left; + node.operator = op; + node.right = right; + return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression") + }; + + // Parse unary operators, both prefix and postfix. + + pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) { + var startPos = this.start, startLoc = this.startLoc, expr; + if (this.isContextual("await") && this.canAwait) { + expr = this.parseAwait(forInit); + sawUnary = true; + } else if (this.type.prefix) { + var node = this.startNode(), update = this.type === types$1.incDec; + node.operator = this.value; + node.prefix = true; + this.next(); + node.argument = this.parseMaybeUnary(null, true, update, forInit); + this.checkExpressionErrors(refDestructuringErrors, true); + if (update) { this.checkLValSimple(node.argument); } + else if (this.strict && node.operator === "delete" && + node.argument.type === "Identifier") + { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); } + else if (node.operator === "delete" && isPrivateFieldAccess(node.argument)) + { this.raiseRecoverable(node.start, "Private fields can not be deleted"); } + else { sawUnary = true; } + expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); + } else if (!sawUnary && this.type === types$1.privateId) { + if (forInit || this.privateNameStack.length === 0) { this.unexpected(); } + expr = this.parsePrivateIdent(); + // only could be private fields in 'in', such as #x in obj + if (this.type !== types$1._in) { this.unexpected(); } + } else { + expr = this.parseExprSubscripts(refDestructuringErrors, forInit); + if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } + while (this.type.postfix && !this.canInsertSemicolon()) { + var node$1 = this.startNodeAt(startPos, startLoc); + node$1.operator = this.value; + node$1.prefix = false; + node$1.argument = expr; + this.checkLValSimple(expr); + this.next(); + expr = this.finishNode(node$1, "UpdateExpression"); + } + } + + if (!incDec && this.eat(types$1.starstar)) { + if (sawUnary) + { this.unexpected(this.lastTokStart); } + else + { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), "**", false) } + } else { + return expr + } + }; + + function isPrivateFieldAccess(node) { + return ( + node.type === "MemberExpression" && node.property.type === "PrivateIdentifier" || + node.type === "ChainExpression" && isPrivateFieldAccess(node.expression) + ) + } + + // Parse call, dot, and `[]`-subscript expressions. + + pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) { + var startPos = this.start, startLoc = this.startLoc; + var expr = this.parseExprAtom(refDestructuringErrors, forInit); + if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") + { return expr } + var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit); + if (refDestructuringErrors && result.type === "MemberExpression") { + if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; } + if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; } + if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; } + } + return result + }; + + pp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) { + var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && + this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && + this.potentialArrowAt === base.start; + var optionalChained = false; + + while (true) { + var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit); + + if (element.optional) { optionalChained = true; } + if (element === base || element.type === "ArrowFunctionExpression") { + if (optionalChained) { + var chainNode = this.startNodeAt(startPos, startLoc); + chainNode.expression = element; + element = this.finishNode(chainNode, "ChainExpression"); + } + return element + } + + base = element; + } + }; + + pp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { + var optionalSupported = this.options.ecmaVersion >= 11; + var optional = optionalSupported && this.eat(types$1.questionDot); + if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); } + + var computed = this.eat(types$1.bracketL); + if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) { + var node = this.startNodeAt(startPos, startLoc); + node.object = base; + if (computed) { + node.property = this.parseExpression(); + this.expect(types$1.bracketR); + } else if (this.type === types$1.privateId && base.type !== "Super") { + node.property = this.parsePrivateIdent(); + } else { + node.property = this.parseIdent(this.options.allowReserved !== "never"); + } + node.computed = !!computed; + if (optionalSupported) { + node.optional = optional; + } + base = this.finishNode(node, "MemberExpression"); + } else if (!noCalls && this.eat(types$1.parenL)) { + var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; + this.yieldPos = 0; + this.awaitPos = 0; + this.awaitIdentPos = 0; + var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); + if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types$1.arrow)) { + this.checkPatternErrors(refDestructuringErrors, false); + this.checkYieldAwaitInDefaultParams(); + if (this.awaitIdentPos > 0) + { this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); } + this.yieldPos = oldYieldPos; + this.awaitPos = oldAwaitPos; + this.awaitIdentPos = oldAwaitIdentPos; + return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit) + } + this.checkExpressionErrors(refDestructuringErrors, true); + this.yieldPos = oldYieldPos || this.yieldPos; + this.awaitPos = oldAwaitPos || this.awaitPos; + this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos; + var node$1 = this.startNodeAt(startPos, startLoc); + node$1.callee = base; + node$1.arguments = exprList; + if (optionalSupported) { + node$1.optional = optional; + } + base = this.finishNode(node$1, "CallExpression"); + } else if (this.type === types$1.backQuote) { + if (optional || optionalChained) { + this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); + } + var node$2 = this.startNodeAt(startPos, startLoc); + node$2.tag = base; + node$2.quasi = this.parseTemplate({isTagged: true}); + base = this.finishNode(node$2, "TaggedTemplateExpression"); + } + return base + }; + + // Parse an atomic expression — either a single token that is an + // expression, an expression started by a keyword like `function` or + // `new`, or an expression wrapped in punctuation like `()`, `[]`, + // or `{}`. + + pp$5.parseExprAtom = function(refDestructuringErrors, forInit) { + // If a division operator appears in an expression position, the + // tokenizer got confused, and we force it to read a regexp instead. + if (this.type === types$1.slash) { this.readRegexp(); } + + var node, canBeArrow = this.potentialArrowAt === this.start; + switch (this.type) { + case types$1._super: + if (!this.allowSuper) + { this.raise(this.start, "'super' keyword outside a method"); } + node = this.startNode(); + this.next(); + if (this.type === types$1.parenL && !this.allowDirectSuper) + { this.raise(node.start, "super() call outside constructor of a subclass"); } + // The `super` keyword can appear at below: + // SuperProperty: + // super [ Expression ] + // super . IdentifierName + // SuperCall: + // super ( Arguments ) + if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL) + { this.unexpected(); } + return this.finishNode(node, "Super") + + case types$1._this: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression") + + case types$1.name: + var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; + var id = this.parseIdent(false); + if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) { + this.overrideContext(types.f_expr); + return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit) + } + if (canBeArrow && !this.canInsertSemicolon()) { + if (this.eat(types$1.arrow)) + { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) } + if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc && + (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) { + id = this.parseIdent(false); + if (this.canInsertSemicolon() || !this.eat(types$1.arrow)) + { this.unexpected(); } + return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit) + } + } + return id + + case types$1.regexp: + var value = this.value; + node = this.parseLiteral(value.value); + node.regex = {pattern: value.pattern, flags: value.flags}; + return node + + case types$1.num: case types$1.string: + return this.parseLiteral(this.value) + + case types$1._null: case types$1._true: case types$1._false: + node = this.startNode(); + node.value = this.type === types$1._null ? null : this.type === types$1._true; + node.raw = this.type.keyword; + this.next(); + return this.finishNode(node, "Literal") + + case types$1.parenL: + var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit); + if (refDestructuringErrors) { + if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) + { refDestructuringErrors.parenthesizedAssign = start; } + if (refDestructuringErrors.parenthesizedBind < 0) + { refDestructuringErrors.parenthesizedBind = start; } + } + return expr + + case types$1.bracketL: + node = this.startNode(); + this.next(); + node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors); + return this.finishNode(node, "ArrayExpression") + + case types$1.braceL: + this.overrideContext(types.b_expr); + return this.parseObj(false, refDestructuringErrors) + + case types$1._function: + node = this.startNode(); + this.next(); + return this.parseFunction(node, 0) + + case types$1._class: + return this.parseClass(this.startNode(), false) + + case types$1._new: + return this.parseNew() + + case types$1.backQuote: + return this.parseTemplate() + + case types$1._import: + if (this.options.ecmaVersion >= 11) { + return this.parseExprImport() + } else { + return this.unexpected() + } + + default: + this.unexpected(); + } + }; + + pp$5.parseExprImport = function() { + var node = this.startNode(); + + // Consume `import` as an identifier for `import.meta`. + // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`. + if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword import"); } + var meta = this.parseIdent(true); + + switch (this.type) { + case types$1.parenL: + return this.parseDynamicImport(node) + case types$1.dot: + node.meta = meta; + return this.parseImportMeta(node) + default: + this.unexpected(); + } + }; + + pp$5.parseDynamicImport = function(node) { + this.next(); // skip `(` + + // Parse node.source. + node.source = this.parseMaybeAssign(); + + // Verify ending. + if (!this.eat(types$1.parenR)) { + var errorPos = this.start; + if (this.eat(types$1.comma) && this.eat(types$1.parenR)) { + this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); + } else { + this.unexpected(errorPos); + } + } + + return this.finishNode(node, "ImportExpression") + }; + + pp$5.parseImportMeta = function(node) { + this.next(); // skip `.` + + var containsEsc = this.containsEsc; + node.property = this.parseIdent(true); + + if (node.property.name !== "meta") + { this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); } + if (containsEsc) + { this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); } + if (this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere) + { this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); } + + return this.finishNode(node, "MetaProperty") + }; + + pp$5.parseLiteral = function(value) { + var node = this.startNode(); + node.value = value; + node.raw = this.input.slice(this.start, this.end); + if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, ""); } + this.next(); + return this.finishNode(node, "Literal") + }; + + pp$5.parseParenExpression = function() { + this.expect(types$1.parenL); + var val = this.parseExpression(); + this.expect(types$1.parenR); + return val + }; + + pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { + var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; + if (this.options.ecmaVersion >= 6) { + this.next(); + + var innerStartPos = this.start, innerStartLoc = this.startLoc; + var exprList = [], first = true, lastIsComma = false; + var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart; + this.yieldPos = 0; + this.awaitPos = 0; + // Do not save awaitIdentPos to allow checking awaits nested in parameters + while (this.type !== types$1.parenR) { + first ? first = false : this.expect(types$1.comma); + if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) { + lastIsComma = true; + break + } else if (this.type === types$1.ellipsis) { + spreadStart = this.start; + exprList.push(this.parseParenItem(this.parseRestBinding())); + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } + break + } else { + exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); + } + } + var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc; + this.expect(types$1.parenR); + + if (canBeArrow && !this.canInsertSemicolon() && this.eat(types$1.arrow)) { + this.checkPatternErrors(refDestructuringErrors, false); + this.checkYieldAwaitInDefaultParams(); + this.yieldPos = oldYieldPos; + this.awaitPos = oldAwaitPos; + return this.parseParenArrowList(startPos, startLoc, exprList, forInit) + } + + if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); } + if (spreadStart) { this.unexpected(spreadStart); } + this.checkExpressionErrors(refDestructuringErrors, true); + this.yieldPos = oldYieldPos || this.yieldPos; + this.awaitPos = oldAwaitPos || this.awaitPos; + + if (exprList.length > 1) { + val = this.startNodeAt(innerStartPos, innerStartLoc); + val.expressions = exprList; + this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); + } else { + val = exprList[0]; + } + } else { + val = this.parseParenExpression(); + } + + if (this.options.preserveParens) { + var par = this.startNodeAt(startPos, startLoc); + par.expression = val; + return this.finishNode(par, "ParenthesizedExpression") + } else { + return val + } + }; + + pp$5.parseParenItem = function(item) { + return item + }; + + pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { + return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit) + }; + + // New's precedence is slightly tricky. It must allow its argument to + // be a `[]` or dot subscript expression, but not a call — at least, + // not without wrapping it in parentheses. Thus, it uses the noCalls + // argument to parseSubscripts to prevent it from consuming the + // argument list. + + var empty = []; + + pp$5.parseNew = function() { + if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); } + var node = this.startNode(); + var meta = this.parseIdent(true); + if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) { + node.meta = meta; + var containsEsc = this.containsEsc; + node.property = this.parseIdent(true); + if (node.property.name !== "target") + { this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); } + if (containsEsc) + { this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); } + if (!this.allowNewDotTarget) + { this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block"); } + return this.finishNode(node, "MetaProperty") + } + var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types$1._import; + node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true, false); + if (isImport && node.callee.type === "ImportExpression") { + this.raise(startPos, "Cannot use new with import()"); + } + if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); } + else { node.arguments = empty; } + return this.finishNode(node, "NewExpression") + }; + + // Parse template expression. + + pp$5.parseTemplateElement = function(ref) { + var isTagged = ref.isTagged; + + var elem = this.startNode(); + if (this.type === types$1.invalidTemplate) { + if (!isTagged) { + this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); + } + elem.value = { + raw: this.value, + cooked: null + }; + } else { + elem.value = { + raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), + cooked: this.value + }; + } + this.next(); + elem.tail = this.type === types$1.backQuote; + return this.finishNode(elem, "TemplateElement") + }; + + pp$5.parseTemplate = function(ref) { + if ( ref === void 0 ) ref = {}; + var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false; + + var node = this.startNode(); + this.next(); + node.expressions = []; + var curElt = this.parseTemplateElement({isTagged: isTagged}); + node.quasis = [curElt]; + while (!curElt.tail) { + if (this.type === types$1.eof) { this.raise(this.pos, "Unterminated template literal"); } + this.expect(types$1.dollarBraceL); + node.expressions.push(this.parseExpression()); + this.expect(types$1.braceR); + node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged})); + } + this.next(); + return this.finishNode(node, "TemplateLiteral") + }; + + pp$5.isAsyncProp = function(prop) { + return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && + (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) && + !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) + }; + + // Parse an object literal or binding pattern. + + pp$5.parseObj = function(isPattern, refDestructuringErrors) { + var node = this.startNode(), first = true, propHash = {}; + node.properties = []; + this.next(); + while (!this.eat(types$1.braceR)) { + if (!first) { + this.expect(types$1.comma); + if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break } + } else { first = false; } + + var prop = this.parseProperty(isPattern, refDestructuringErrors); + if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); } + node.properties.push(prop); + } + return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression") + }; + + pp$5.parseProperty = function(isPattern, refDestructuringErrors) { + var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; + if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) { + if (isPattern) { + prop.argument = this.parseIdent(false); + if (this.type === types$1.comma) { + this.raise(this.start, "Comma is not permitted after the rest element"); + } + return this.finishNode(prop, "RestElement") + } + // Parse argument. + prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); + // To disallow trailing comma via `this.toAssignable()`. + if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { + refDestructuringErrors.trailingComma = this.start; + } + // Finish + return this.finishNode(prop, "SpreadElement") + } + if (this.options.ecmaVersion >= 6) { + prop.method = false; + prop.shorthand = false; + if (isPattern || refDestructuringErrors) { + startPos = this.start; + startLoc = this.startLoc; + } + if (!isPattern) + { isGenerator = this.eat(types$1.star); } + } + var containsEsc = this.containsEsc; + this.parsePropertyName(prop); + if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { + isAsync = true; + isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star); + this.parsePropertyName(prop, refDestructuringErrors); + } else { + isAsync = false; + } + this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc); + return this.finishNode(prop, "Property") + }; + + pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { + if ((isGenerator || isAsync) && this.type === types$1.colon) + { this.unexpected(); } + + if (this.eat(types$1.colon)) { + prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); + prop.kind = "init"; + } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { + if (isPattern) { this.unexpected(); } + prop.kind = "init"; + prop.method = true; + prop.value = this.parseMethod(isGenerator, isAsync); + } else if (!isPattern && !containsEsc && + this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && + (prop.key.name === "get" || prop.key.name === "set") && + (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) { + if (isGenerator || isAsync) { this.unexpected(); } + prop.kind = prop.key.name; + this.parsePropertyName(prop); + prop.value = this.parseMethod(false); + var paramCount = prop.kind === "get" ? 0 : 1; + if (prop.value.params.length !== paramCount) { + var start = prop.value.start; + if (prop.kind === "get") + { this.raiseRecoverable(start, "getter should have no params"); } + else + { this.raiseRecoverable(start, "setter should have exactly one param"); } + } else { + if (prop.kind === "set" && prop.value.params[0].type === "RestElement") + { this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); } + } + } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { + if (isGenerator || isAsync) { this.unexpected(); } + this.checkUnreserved(prop.key); + if (prop.key.name === "await" && !this.awaitIdentPos) + { this.awaitIdentPos = startPos; } + prop.kind = "init"; + if (isPattern) { + prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); + } else if (this.type === types$1.eq && refDestructuringErrors) { + if (refDestructuringErrors.shorthandAssign < 0) + { refDestructuringErrors.shorthandAssign = this.start; } + prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); + } else { + prop.value = this.copyNode(prop.key); + } + prop.shorthand = true; + } else { this.unexpected(); } + }; + + pp$5.parsePropertyName = function(prop) { + if (this.options.ecmaVersion >= 6) { + if (this.eat(types$1.bracketL)) { + prop.computed = true; + prop.key = this.parseMaybeAssign(); + this.expect(types$1.bracketR); + return prop.key + } else { + prop.computed = false; + } + } + return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never") + }; + + // Initialize empty function node. + + pp$5.initFunction = function(node) { + node.id = null; + if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; } + if (this.options.ecmaVersion >= 8) { node.async = false; } + }; + + // Parse object or class method. + + pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { + var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; + + this.initFunction(node); + if (this.options.ecmaVersion >= 6) + { node.generator = isGenerator; } + if (this.options.ecmaVersion >= 8) + { node.async = !!isAsync; } + + this.yieldPos = 0; + this.awaitPos = 0; + this.awaitIdentPos = 0; + this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); + + this.expect(types$1.parenL); + node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); + this.checkYieldAwaitInDefaultParams(); + this.parseFunctionBody(node, false, true, false); + + this.yieldPos = oldYieldPos; + this.awaitPos = oldAwaitPos; + this.awaitIdentPos = oldAwaitIdentPos; + return this.finishNode(node, "FunctionExpression") + }; + + // Parse arrow function expression with given parameters. + + pp$5.parseArrowExpression = function(node, params, isAsync, forInit) { + var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; + + this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW); + this.initFunction(node); + if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } + + this.yieldPos = 0; + this.awaitPos = 0; + this.awaitIdentPos = 0; + + node.params = this.toAssignableList(params, true); + this.parseFunctionBody(node, true, false, forInit); + + this.yieldPos = oldYieldPos; + this.awaitPos = oldAwaitPos; + this.awaitIdentPos = oldAwaitIdentPos; + return this.finishNode(node, "ArrowFunctionExpression") + }; + + // Parse function body and check parameters. + + pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { + var isExpression = isArrowFunction && this.type !== types$1.braceL; + var oldStrict = this.strict, useStrict = false; + + if (isExpression) { + node.body = this.parseMaybeAssign(forInit); + node.expression = true; + this.checkParams(node, false); + } else { + var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params); + if (!oldStrict || nonSimple) { + useStrict = this.strictDirective(this.end); + // If this is a strict mode function, verify that argument names + // are not repeated, and it does not try to bind the words `eval` + // or `arguments`. + if (useStrict && nonSimple) + { this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); } + } + // Start a new scope with regard to labels and the `inFunction` + // flag (restore them to their old value afterwards). + var oldLabels = this.labels; + this.labels = []; + if (useStrict) { this.strict = true; } + + // Add the params to varDeclaredNames to ensure that an error is thrown + // if a let/const declaration in the function clashes with one of the params. + this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params)); + // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval' + if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); } + node.body = this.parseBlock(false, undefined, useStrict && !oldStrict); + node.expression = false; + this.adaptDirectivePrologue(node.body.body); + this.labels = oldLabels; + } + this.exitScope(); + }; + + pp$5.isSimpleParamList = function(params) { + for (var i = 0, list = params; i < list.length; i += 1) + { + var param = list[i]; + + if (param.type !== "Identifier") { return false + } } + return true + }; + + // Checks function params for various disallowed patterns such as using "eval" + // or "arguments" and duplicate parameters. + + pp$5.checkParams = function(node, allowDuplicates) { + var nameHash = Object.create(null); + for (var i = 0, list = node.params; i < list.length; i += 1) + { + var param = list[i]; + + this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash); + } + }; + + // Parses a comma-separated list of expressions, and returns them as + // an array. `close` is the token type that ends the list, and + // `allowEmpty` can be turned on to allow subsequent commas with + // nothing in between them to be parsed as `null` (which is needed + // for array literals). + + pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { + var elts = [], first = true; + while (!this.eat(close)) { + if (!first) { + this.expect(types$1.comma); + if (allowTrailingComma && this.afterTrailingComma(close)) { break } + } else { first = false; } + + var elt = (void 0); + if (allowEmpty && this.type === types$1.comma) + { elt = null; } + else if (this.type === types$1.ellipsis) { + elt = this.parseSpread(refDestructuringErrors); + if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0) + { refDestructuringErrors.trailingComma = this.start; } + } else { + elt = this.parseMaybeAssign(false, refDestructuringErrors); + } + elts.push(elt); + } + return elts + }; + + pp$5.checkUnreserved = function(ref) { + var start = ref.start; + var end = ref.end; + var name = ref.name; + + if (this.inGenerator && name === "yield") + { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } + if (this.inAsync && name === "await") + { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } + if (this.currentThisScope().inClassFieldInit && name === "arguments") + { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); } + if (this.inClassStaticBlock && (name === "arguments" || name === "await")) + { this.raise(start, ("Cannot use " + name + " in class static initialization block")); } + if (this.keywords.test(name)) + { this.raise(start, ("Unexpected keyword '" + name + "'")); } + if (this.options.ecmaVersion < 6 && + this.input.slice(start, end).indexOf("\\") !== -1) { return } + var re = this.strict ? this.reservedWordsStrict : this.reservedWords; + if (re.test(name)) { + if (!this.inAsync && name === "await") + { this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); } + this.raiseRecoverable(start, ("The keyword '" + name + "' is reserved")); + } + }; + + // Parse the next token as an identifier. If `liberal` is true (used + // when parsing properties), it will also convert keywords into + // identifiers. + + pp$5.parseIdent = function(liberal, isBinding) { + var node = this.startNode(); + if (this.type === types$1.name) { + node.name = this.value; + } else if (this.type.keyword) { + node.name = this.type.keyword; + + // To fix https://github.com/acornjs/acorn/issues/575 + // `class` and `function` keywords push new context into this.context. + // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name. + // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword + if ((node.name === "class" || node.name === "function") && + (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) { + this.context.pop(); + } + } else { + this.unexpected(); + } + this.next(!!liberal); + this.finishNode(node, "Identifier"); + if (!liberal) { + this.checkUnreserved(node); + if (node.name === "await" && !this.awaitIdentPos) + { this.awaitIdentPos = node.start; } + } + return node + }; + + pp$5.parsePrivateIdent = function() { + var node = this.startNode(); + if (this.type === types$1.privateId) { + node.name = this.value; + } else { + this.unexpected(); + } + this.next(); + this.finishNode(node, "PrivateIdentifier"); + + // For validating existence + if (this.privateNameStack.length === 0) { + this.raise(node.start, ("Private field '#" + (node.name) + "' must be declared in an enclosing class")); + } else { + this.privateNameStack[this.privateNameStack.length - 1].used.push(node); + } + + return node + }; + + // Parses yield expression inside generator. + + pp$5.parseYield = function(forInit) { + if (!this.yieldPos) { this.yieldPos = this.start; } + + var node = this.startNode(); + this.next(); + if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) { + node.delegate = false; + node.argument = null; + } else { + node.delegate = this.eat(types$1.star); + node.argument = this.parseMaybeAssign(forInit); + } + return this.finishNode(node, "YieldExpression") + }; + + pp$5.parseAwait = function(forInit) { + if (!this.awaitPos) { this.awaitPos = this.start; } + + var node = this.startNode(); + this.next(); + node.argument = this.parseMaybeUnary(null, true, false, forInit); + return this.finishNode(node, "AwaitExpression") + }; + + var pp$4 = Parser.prototype; + + // This function is used to raise exceptions on parse errors. It + // takes an offset integer (into the current `input`) to indicate + // the location of the error, attaches the position to the end + // of the error message, and then raises a `SyntaxError` with that + // message. + + pp$4.raise = function(pos, message) { + var loc = getLineInfo(this.input, pos); + message += " (" + loc.line + ":" + loc.column + ")"; + var err = new SyntaxError(message); + err.pos = pos; err.loc = loc; err.raisedAt = this.pos; + throw err + }; + + pp$4.raiseRecoverable = pp$4.raise; + + pp$4.curPosition = function() { + if (this.options.locations) { + return new Position(this.curLine, this.pos - this.lineStart) + } + }; + + var pp$3 = Parser.prototype; + + var Scope = function Scope(flags) { + this.flags = flags; + // A list of var-declared names in the current lexical scope + this.var = []; + // A list of lexically-declared names in the current lexical scope + this.lexical = []; + // A list of lexically-declared FunctionDeclaration names in the current lexical scope + this.functions = []; + // A switch to disallow the identifier reference 'arguments' + this.inClassFieldInit = false; + }; + + // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. + + pp$3.enterScope = function(flags) { + this.scopeStack.push(new Scope(flags)); + }; + + pp$3.exitScope = function() { + this.scopeStack.pop(); + }; + + // The spec says: + // > At the top level of a function, or script, function declarations are + // > treated like var declarations rather than like lexical declarations. + pp$3.treatFunctionsAsVarInScope = function(scope) { + return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP) + }; + + pp$3.declareName = function(name, bindingType, pos) { + var redeclared = false; + if (bindingType === BIND_LEXICAL) { + var scope = this.currentScope(); + redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1; + scope.lexical.push(name); + if (this.inModule && (scope.flags & SCOPE_TOP)) + { delete this.undefinedExports[name]; } + } else if (bindingType === BIND_SIMPLE_CATCH) { + var scope$1 = this.currentScope(); + scope$1.lexical.push(name); + } else if (bindingType === BIND_FUNCTION) { + var scope$2 = this.currentScope(); + if (this.treatFunctionsAsVar) + { redeclared = scope$2.lexical.indexOf(name) > -1; } + else + { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; } + scope$2.functions.push(name); + } else { + for (var i = this.scopeStack.length - 1; i >= 0; --i) { + var scope$3 = this.scopeStack[i]; + if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) || + !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) { + redeclared = true; + break + } + scope$3.var.push(name); + if (this.inModule && (scope$3.flags & SCOPE_TOP)) + { delete this.undefinedExports[name]; } + if (scope$3.flags & SCOPE_VAR) { break } + } + } + if (redeclared) { this.raiseRecoverable(pos, ("Identifier '" + name + "' has already been declared")); } + }; + + pp$3.checkLocalExport = function(id) { + // scope.functions must be empty as Module code is always strict. + if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && + this.scopeStack[0].var.indexOf(id.name) === -1) { + this.undefinedExports[id.name] = id; + } + }; + + pp$3.currentScope = function() { + return this.scopeStack[this.scopeStack.length - 1] + }; + + pp$3.currentVarScope = function() { + for (var i = this.scopeStack.length - 1;; i--) { + var scope = this.scopeStack[i]; + if (scope.flags & SCOPE_VAR) { return scope } + } + }; + + // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`. + pp$3.currentThisScope = function() { + for (var i = this.scopeStack.length - 1;; i--) { + var scope = this.scopeStack[i]; + if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope } + } + }; + + var Node = function Node(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + if (parser.options.locations) + { this.loc = new SourceLocation(parser, loc); } + if (parser.options.directSourceFile) + { this.sourceFile = parser.options.directSourceFile; } + if (parser.options.ranges) + { this.range = [pos, 0]; } + }; + + // Start an AST node, attaching a start offset. + + var pp$2 = Parser.prototype; + + pp$2.startNode = function() { + return new Node(this, this.start, this.startLoc) + }; + + pp$2.startNodeAt = function(pos, loc) { + return new Node(this, pos, loc) + }; + + // Finish an AST node, adding `type` and `end` properties. + + function finishNodeAt(node, type, pos, loc) { + node.type = type; + node.end = pos; + if (this.options.locations) + { node.loc.end = loc; } + if (this.options.ranges) + { node.range[1] = pos; } + return node + } + + pp$2.finishNode = function(node, type) { + return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc) + }; + + // Finish node at given position + + pp$2.finishNodeAt = function(node, type, pos, loc) { + return finishNodeAt.call(this, node, type, pos, loc) + }; + + pp$2.copyNode = function(node) { + var newNode = new Node(this, node.start, this.startLoc); + for (var prop in node) { newNode[prop] = node[prop]; } + return newNode + }; + + // This file contains Unicode properties extracted from the ECMAScript + // specification. The lists are extracted like so: + // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText) + + // #table-binary-unicode-properties + var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS"; + var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic"; + var ecma11BinaryProperties = ecma10BinaryProperties; + var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict"; + var ecma13BinaryProperties = ecma12BinaryProperties; + var unicodeBinaryProperties = { + 9: ecma9BinaryProperties, + 10: ecma10BinaryProperties, + 11: ecma11BinaryProperties, + 12: ecma12BinaryProperties, + 13: ecma13BinaryProperties + }; + + // #table-unicode-general-category-values + var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; + + // #table-unicode-script-values + var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; + var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; + var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; + var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"; + var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith"; + var unicodeScriptValues = { + 9: ecma9ScriptValues, + 10: ecma10ScriptValues, + 11: ecma11ScriptValues, + 12: ecma12ScriptValues, + 13: ecma13ScriptValues + }; + + var data = {}; + function buildUnicodeData(ecmaVersion) { + var d = data[ecmaVersion] = { + binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues), + nonBinary: { + General_Category: wordsRegexp(unicodeGeneralCategoryValues), + Script: wordsRegexp(unicodeScriptValues[ecmaVersion]) + } + }; + d.nonBinary.Script_Extensions = d.nonBinary.Script; + + d.nonBinary.gc = d.nonBinary.General_Category; + d.nonBinary.sc = d.nonBinary.Script; + d.nonBinary.scx = d.nonBinary.Script_Extensions; + } + + for (var i = 0, list = [9, 10, 11, 12, 13]; i < list.length; i += 1) { + var ecmaVersion = list[i]; + + buildUnicodeData(ecmaVersion); + } + + var pp$1 = Parser.prototype; + + var RegExpValidationState = function RegExpValidationState(parser) { + this.parser = parser; + this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : ""); + this.unicodeProperties = data[parser.options.ecmaVersion >= 13 ? 13 : parser.options.ecmaVersion]; + this.source = ""; + this.flags = ""; + this.start = 0; + this.switchU = false; + this.switchN = false; + this.pos = 0; + this.lastIntValue = 0; + this.lastStringValue = ""; + this.lastAssertionIsQuantifiable = false; + this.numCapturingParens = 0; + this.maxBackReference = 0; + this.groupNames = []; + this.backReferenceNames = []; + }; + + RegExpValidationState.prototype.reset = function reset (start, pattern, flags) { + var unicode = flags.indexOf("u") !== -1; + this.start = start | 0; + this.source = pattern + ""; + this.flags = flags; + this.switchU = unicode && this.parser.options.ecmaVersion >= 6; + this.switchN = unicode && this.parser.options.ecmaVersion >= 9; + }; + + RegExpValidationState.prototype.raise = function raise (message) { + this.parser.raiseRecoverable(this.start, ("Invalid regular expression: /" + (this.source) + "/: " + message)); + }; + + // If u flag is given, this returns the code point at the index (it combines a surrogate pair). + // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair). + RegExpValidationState.prototype.at = function at (i, forceU) { + if ( forceU === void 0 ) forceU = false; + + var s = this.source; + var l = s.length; + if (i >= l) { + return -1 + } + var c = s.charCodeAt(i); + if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { + return c + } + var next = s.charCodeAt(i + 1); + return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c + }; + + RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) { + if ( forceU === void 0 ) forceU = false; + + var s = this.source; + var l = s.length; + if (i >= l) { + return l + } + var c = s.charCodeAt(i), next; + if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l || + (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) { + return i + 1 + } + return i + 2 + }; + + RegExpValidationState.prototype.current = function current (forceU) { + if ( forceU === void 0 ) forceU = false; + + return this.at(this.pos, forceU) + }; + + RegExpValidationState.prototype.lookahead = function lookahead (forceU) { + if ( forceU === void 0 ) forceU = false; + + return this.at(this.nextIndex(this.pos, forceU), forceU) + }; + + RegExpValidationState.prototype.advance = function advance (forceU) { + if ( forceU === void 0 ) forceU = false; + + this.pos = this.nextIndex(this.pos, forceU); + }; + + RegExpValidationState.prototype.eat = function eat (ch, forceU) { + if ( forceU === void 0 ) forceU = false; + + if (this.current(forceU) === ch) { + this.advance(forceU); + return true + } + return false + }; + + /** + * Validate the flags part of a given RegExpLiteral. + * + * @param {RegExpValidationState} state The state to validate RegExp. + * @returns {void} + */ + pp$1.validateRegExpFlags = function(state) { + var validFlags = state.validFlags; + var flags = state.flags; + + for (var i = 0; i < flags.length; i++) { + var flag = flags.charAt(i); + if (validFlags.indexOf(flag) === -1) { + this.raise(state.start, "Invalid regular expression flag"); + } + if (flags.indexOf(flag, i + 1) > -1) { + this.raise(state.start, "Duplicate regular expression flag"); + } + } + }; + + /** + * Validate the pattern part of a given RegExpLiteral. + * + * @param {RegExpValidationState} state The state to validate RegExp. + * @returns {void} + */ + pp$1.validateRegExpPattern = function(state) { + this.regexp_pattern(state); + + // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of + // parsing contains a |GroupName|, reparse with the goal symbol + // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError* + // exception if _P_ did not conform to the grammar, if any elements of _P_ + // were not matched by the parse, or if any Early Error conditions exist. + if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) { + state.switchN = true; + this.regexp_pattern(state); + } + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern + pp$1.regexp_pattern = function(state) { + state.pos = 0; + state.lastIntValue = 0; + state.lastStringValue = ""; + state.lastAssertionIsQuantifiable = false; + state.numCapturingParens = 0; + state.maxBackReference = 0; + state.groupNames.length = 0; + state.backReferenceNames.length = 0; + + this.regexp_disjunction(state); + + if (state.pos !== state.source.length) { + // Make the same messages as V8. + if (state.eat(0x29 /* ) */)) { + state.raise("Unmatched ')'"); + } + if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) { + state.raise("Lone quantifier brackets"); + } + } + if (state.maxBackReference > state.numCapturingParens) { + state.raise("Invalid escape"); + } + for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) { + var name = list[i]; + + if (state.groupNames.indexOf(name) === -1) { + state.raise("Invalid named capture referenced"); + } + } + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction + pp$1.regexp_disjunction = function(state) { + this.regexp_alternative(state); + while (state.eat(0x7C /* | */)) { + this.regexp_alternative(state); + } + + // Make the same message as V8. + if (this.regexp_eatQuantifier(state, true)) { + state.raise("Nothing to repeat"); + } + if (state.eat(0x7B /* { */)) { + state.raise("Lone quantifier brackets"); + } + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative + pp$1.regexp_alternative = function(state) { + while (state.pos < state.source.length && this.regexp_eatTerm(state)) + { } + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term + pp$1.regexp_eatTerm = function(state) { + if (this.regexp_eatAssertion(state)) { + // Handle `QuantifiableAssertion Quantifier` alternative. + // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion + // is a QuantifiableAssertion. + if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) { + // Make the same message as V8. + if (state.switchU) { + state.raise("Invalid quantifier"); + } + } + return true + } + + if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) { + this.regexp_eatQuantifier(state); + return true + } + + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion + pp$1.regexp_eatAssertion = function(state) { + var start = state.pos; + state.lastAssertionIsQuantifiable = false; + + // ^, $ + if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) { + return true + } + + // \b \B + if (state.eat(0x5C /* \ */)) { + if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) { + return true + } + state.pos = start; + } + + // Lookahead / Lookbehind + if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) { + var lookbehind = false; + if (this.options.ecmaVersion >= 9) { + lookbehind = state.eat(0x3C /* < */); + } + if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) { + this.regexp_disjunction(state); + if (!state.eat(0x29 /* ) */)) { + state.raise("Unterminated group"); + } + state.lastAssertionIsQuantifiable = !lookbehind; + return true + } + } + + state.pos = start; + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier + pp$1.regexp_eatQuantifier = function(state, noError) { + if ( noError === void 0 ) noError = false; + + if (this.regexp_eatQuantifierPrefix(state, noError)) { + state.eat(0x3F /* ? */); + return true + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix + pp$1.regexp_eatQuantifierPrefix = function(state, noError) { + return ( + state.eat(0x2A /* * */) || + state.eat(0x2B /* + */) || + state.eat(0x3F /* ? */) || + this.regexp_eatBracedQuantifier(state, noError) + ) + }; + pp$1.regexp_eatBracedQuantifier = function(state, noError) { + var start = state.pos; + if (state.eat(0x7B /* { */)) { + var min = 0, max = -1; + if (this.regexp_eatDecimalDigits(state)) { + min = state.lastIntValue; + if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) { + max = state.lastIntValue; + } + if (state.eat(0x7D /* } */)) { + // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term + if (max !== -1 && max < min && !noError) { + state.raise("numbers out of order in {} quantifier"); + } + return true + } + } + if (state.switchU && !noError) { + state.raise("Incomplete quantifier"); + } + state.pos = start; + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom + pp$1.regexp_eatAtom = function(state) { + return ( + this.regexp_eatPatternCharacters(state) || + state.eat(0x2E /* . */) || + this.regexp_eatReverseSolidusAtomEscape(state) || + this.regexp_eatCharacterClass(state) || + this.regexp_eatUncapturingGroup(state) || + this.regexp_eatCapturingGroup(state) + ) + }; + pp$1.regexp_eatReverseSolidusAtomEscape = function(state) { + var start = state.pos; + if (state.eat(0x5C /* \ */)) { + if (this.regexp_eatAtomEscape(state)) { + return true + } + state.pos = start; + } + return false + }; + pp$1.regexp_eatUncapturingGroup = function(state) { + var start = state.pos; + if (state.eat(0x28 /* ( */)) { + if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) { + this.regexp_disjunction(state); + if (state.eat(0x29 /* ) */)) { + return true + } + state.raise("Unterminated group"); + } + state.pos = start; + } + return false + }; + pp$1.regexp_eatCapturingGroup = function(state) { + if (state.eat(0x28 /* ( */)) { + if (this.options.ecmaVersion >= 9) { + this.regexp_groupSpecifier(state); + } else if (state.current() === 0x3F /* ? */) { + state.raise("Invalid group"); + } + this.regexp_disjunction(state); + if (state.eat(0x29 /* ) */)) { + state.numCapturingParens += 1; + return true + } + state.raise("Unterminated group"); + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom + pp$1.regexp_eatExtendedAtom = function(state) { + return ( + state.eat(0x2E /* . */) || + this.regexp_eatReverseSolidusAtomEscape(state) || + this.regexp_eatCharacterClass(state) || + this.regexp_eatUncapturingGroup(state) || + this.regexp_eatCapturingGroup(state) || + this.regexp_eatInvalidBracedQuantifier(state) || + this.regexp_eatExtendedPatternCharacter(state) + ) + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier + pp$1.regexp_eatInvalidBracedQuantifier = function(state) { + if (this.regexp_eatBracedQuantifier(state, true)) { + state.raise("Nothing to repeat"); + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter + pp$1.regexp_eatSyntaxCharacter = function(state) { + var ch = state.current(); + if (isSyntaxCharacter(ch)) { + state.lastIntValue = ch; + state.advance(); + return true + } + return false + }; + function isSyntaxCharacter(ch) { + return ( + ch === 0x24 /* $ */ || + ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ || + ch === 0x2E /* . */ || + ch === 0x3F /* ? */ || + ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ || + ch >= 0x7B /* { */ && ch <= 0x7D /* } */ + ) + } + + // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter + // But eat eager. + pp$1.regexp_eatPatternCharacters = function(state) { + var start = state.pos; + var ch = 0; + while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { + state.advance(); + } + return state.pos !== start + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter + pp$1.regexp_eatExtendedPatternCharacter = function(state) { + var ch = state.current(); + if ( + ch !== -1 && + ch !== 0x24 /* $ */ && + !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) && + ch !== 0x2E /* . */ && + ch !== 0x3F /* ? */ && + ch !== 0x5B /* [ */ && + ch !== 0x5E /* ^ */ && + ch !== 0x7C /* | */ + ) { + state.advance(); + return true + } + return false + }; + + // GroupSpecifier :: + // [empty] + // `?` GroupName + pp$1.regexp_groupSpecifier = function(state) { + if (state.eat(0x3F /* ? */)) { + if (this.regexp_eatGroupName(state)) { + if (state.groupNames.indexOf(state.lastStringValue) !== -1) { + state.raise("Duplicate capture group name"); + } + state.groupNames.push(state.lastStringValue); + return + } + state.raise("Invalid group"); + } + }; + + // GroupName :: + // `<` RegExpIdentifierName `>` + // Note: this updates `state.lastStringValue` property with the eaten name. + pp$1.regexp_eatGroupName = function(state) { + state.lastStringValue = ""; + if (state.eat(0x3C /* < */)) { + if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) { + return true + } + state.raise("Invalid capture group name"); + } + return false + }; + + // RegExpIdentifierName :: + // RegExpIdentifierStart + // RegExpIdentifierName RegExpIdentifierPart + // Note: this updates `state.lastStringValue` property with the eaten name. + pp$1.regexp_eatRegExpIdentifierName = function(state) { + state.lastStringValue = ""; + if (this.regexp_eatRegExpIdentifierStart(state)) { + state.lastStringValue += codePointToString(state.lastIntValue); + while (this.regexp_eatRegExpIdentifierPart(state)) { + state.lastStringValue += codePointToString(state.lastIntValue); + } + return true + } + return false + }; + + // RegExpIdentifierStart :: + // UnicodeIDStart + // `$` + // `_` + // `\` RegExpUnicodeEscapeSequence[+U] + pp$1.regexp_eatRegExpIdentifierStart = function(state) { + var start = state.pos; + var forceU = this.options.ecmaVersion >= 11; + var ch = state.current(forceU); + state.advance(forceU); + + if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { + ch = state.lastIntValue; + } + if (isRegExpIdentifierStart(ch)) { + state.lastIntValue = ch; + return true + } + + state.pos = start; + return false + }; + function isRegExpIdentifierStart(ch) { + return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ + } + + // RegExpIdentifierPart :: + // UnicodeIDContinue + // `$` + // `_` + // `\` RegExpUnicodeEscapeSequence[+U] + // + // + pp$1.regexp_eatRegExpIdentifierPart = function(state) { + var start = state.pos; + var forceU = this.options.ecmaVersion >= 11; + var ch = state.current(forceU); + state.advance(forceU); + + if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { + ch = state.lastIntValue; + } + if (isRegExpIdentifierPart(ch)) { + state.lastIntValue = ch; + return true + } + + state.pos = start; + return false + }; + function isRegExpIdentifierPart(ch) { + return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */ + } + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape + pp$1.regexp_eatAtomEscape = function(state) { + if ( + this.regexp_eatBackReference(state) || + this.regexp_eatCharacterClassEscape(state) || + this.regexp_eatCharacterEscape(state) || + (state.switchN && this.regexp_eatKGroupName(state)) + ) { + return true + } + if (state.switchU) { + // Make the same message as V8. + if (state.current() === 0x63 /* c */) { + state.raise("Invalid unicode escape"); + } + state.raise("Invalid escape"); + } + return false + }; + pp$1.regexp_eatBackReference = function(state) { + var start = state.pos; + if (this.regexp_eatDecimalEscape(state)) { + var n = state.lastIntValue; + if (state.switchU) { + // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape + if (n > state.maxBackReference) { + state.maxBackReference = n; + } + return true + } + if (n <= state.numCapturingParens) { + return true + } + state.pos = start; + } + return false + }; + pp$1.regexp_eatKGroupName = function(state) { + if (state.eat(0x6B /* k */)) { + if (this.regexp_eatGroupName(state)) { + state.backReferenceNames.push(state.lastStringValue); + return true + } + state.raise("Invalid named reference"); + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape + pp$1.regexp_eatCharacterEscape = function(state) { + return ( + this.regexp_eatControlEscape(state) || + this.regexp_eatCControlLetter(state) || + this.regexp_eatZero(state) || + this.regexp_eatHexEscapeSequence(state) || + this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || + (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) || + this.regexp_eatIdentityEscape(state) + ) + }; + pp$1.regexp_eatCControlLetter = function(state) { + var start = state.pos; + if (state.eat(0x63 /* c */)) { + if (this.regexp_eatControlLetter(state)) { + return true + } + state.pos = start; + } + return false + }; + pp$1.regexp_eatZero = function(state) { + if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) { + state.lastIntValue = 0; + state.advance(); + return true + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape + pp$1.regexp_eatControlEscape = function(state) { + var ch = state.current(); + if (ch === 0x74 /* t */) { + state.lastIntValue = 0x09; /* \t */ + state.advance(); + return true + } + if (ch === 0x6E /* n */) { + state.lastIntValue = 0x0A; /* \n */ + state.advance(); + return true + } + if (ch === 0x76 /* v */) { + state.lastIntValue = 0x0B; /* \v */ + state.advance(); + return true + } + if (ch === 0x66 /* f */) { + state.lastIntValue = 0x0C; /* \f */ + state.advance(); + return true + } + if (ch === 0x72 /* r */) { + state.lastIntValue = 0x0D; /* \r */ + state.advance(); + return true + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter + pp$1.regexp_eatControlLetter = function(state) { + var ch = state.current(); + if (isControlLetter(ch)) { + state.lastIntValue = ch % 0x20; + state.advance(); + return true + } + return false + }; + function isControlLetter(ch) { + return ( + (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) || + (ch >= 0x61 /* a */ && ch <= 0x7A /* z */) + ) + } + + // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence + pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { + if ( forceU === void 0 ) forceU = false; + + var start = state.pos; + var switchU = forceU || state.switchU; + + if (state.eat(0x75 /* u */)) { + if (this.regexp_eatFixedHexDigits(state, 4)) { + var lead = state.lastIntValue; + if (switchU && lead >= 0xD800 && lead <= 0xDBFF) { + var leadSurrogateEnd = state.pos; + if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) { + var trail = state.lastIntValue; + if (trail >= 0xDC00 && trail <= 0xDFFF) { + state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; + return true + } + } + state.pos = leadSurrogateEnd; + state.lastIntValue = lead; + } + return true + } + if ( + switchU && + state.eat(0x7B /* { */) && + this.regexp_eatHexDigits(state) && + state.eat(0x7D /* } */) && + isValidUnicode(state.lastIntValue) + ) { + return true + } + if (switchU) { + state.raise("Invalid unicode escape"); + } + state.pos = start; + } + + return false + }; + function isValidUnicode(ch) { + return ch >= 0 && ch <= 0x10FFFF + } + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape + pp$1.regexp_eatIdentityEscape = function(state) { + if (state.switchU) { + if (this.regexp_eatSyntaxCharacter(state)) { + return true + } + if (state.eat(0x2F /* / */)) { + state.lastIntValue = 0x2F; /* / */ + return true + } + return false + } + + var ch = state.current(); + if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) { + state.lastIntValue = ch; + state.advance(); + return true + } + + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape + pp$1.regexp_eatDecimalEscape = function(state) { + state.lastIntValue = 0; + var ch = state.current(); + if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) { + do { + state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); + state.advance(); + } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) + return true + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape + pp$1.regexp_eatCharacterClassEscape = function(state) { + var ch = state.current(); + + if (isCharacterClassEscape(ch)) { + state.lastIntValue = -1; + state.advance(); + return true + } + + if ( + state.switchU && + this.options.ecmaVersion >= 9 && + (ch === 0x50 /* P */ || ch === 0x70 /* p */) + ) { + state.lastIntValue = -1; + state.advance(); + if ( + state.eat(0x7B /* { */) && + this.regexp_eatUnicodePropertyValueExpression(state) && + state.eat(0x7D /* } */) + ) { + return true + } + state.raise("Invalid property name"); + } + + return false + }; + function isCharacterClassEscape(ch) { + return ( + ch === 0x64 /* d */ || + ch === 0x44 /* D */ || + ch === 0x73 /* s */ || + ch === 0x53 /* S */ || + ch === 0x77 /* w */ || + ch === 0x57 /* W */ + ) + } + + // UnicodePropertyValueExpression :: + // UnicodePropertyName `=` UnicodePropertyValue + // LoneUnicodePropertyNameOrValue + pp$1.regexp_eatUnicodePropertyValueExpression = function(state) { + var start = state.pos; + + // UnicodePropertyName `=` UnicodePropertyValue + if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) { + var name = state.lastStringValue; + if (this.regexp_eatUnicodePropertyValue(state)) { + var value = state.lastStringValue; + this.regexp_validateUnicodePropertyNameAndValue(state, name, value); + return true + } + } + state.pos = start; + + // LoneUnicodePropertyNameOrValue + if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) { + var nameOrValue = state.lastStringValue; + this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue); + return true + } + return false + }; + pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { + if (!hasOwn(state.unicodeProperties.nonBinary, name)) + { state.raise("Invalid property name"); } + if (!state.unicodeProperties.nonBinary[name].test(value)) + { state.raise("Invalid property value"); } + }; + pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { + if (!state.unicodeProperties.binary.test(nameOrValue)) + { state.raise("Invalid property name"); } + }; + + // UnicodePropertyName :: + // UnicodePropertyNameCharacters + pp$1.regexp_eatUnicodePropertyName = function(state) { + var ch = 0; + state.lastStringValue = ""; + while (isUnicodePropertyNameCharacter(ch = state.current())) { + state.lastStringValue += codePointToString(ch); + state.advance(); + } + return state.lastStringValue !== "" + }; + function isUnicodePropertyNameCharacter(ch) { + return isControlLetter(ch) || ch === 0x5F /* _ */ + } + + // UnicodePropertyValue :: + // UnicodePropertyValueCharacters + pp$1.regexp_eatUnicodePropertyValue = function(state) { + var ch = 0; + state.lastStringValue = ""; + while (isUnicodePropertyValueCharacter(ch = state.current())) { + state.lastStringValue += codePointToString(ch); + state.advance(); + } + return state.lastStringValue !== "" + }; + function isUnicodePropertyValueCharacter(ch) { + return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch) + } + + // LoneUnicodePropertyNameOrValue :: + // UnicodePropertyValueCharacters + pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { + return this.regexp_eatUnicodePropertyValue(state) + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass + pp$1.regexp_eatCharacterClass = function(state) { + if (state.eat(0x5B /* [ */)) { + state.eat(0x5E /* ^ */); + this.regexp_classRanges(state); + if (state.eat(0x5D /* ] */)) { + return true + } + // Unreachable since it threw "unterminated regular expression" error before. + state.raise("Unterminated character class"); + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges + // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges + // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash + pp$1.regexp_classRanges = function(state) { + while (this.regexp_eatClassAtom(state)) { + var left = state.lastIntValue; + if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) { + var right = state.lastIntValue; + if (state.switchU && (left === -1 || right === -1)) { + state.raise("Invalid character class"); + } + if (left !== -1 && right !== -1 && left > right) { + state.raise("Range out of order in character class"); + } + } + } + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom + // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash + pp$1.regexp_eatClassAtom = function(state) { + var start = state.pos; + + if (state.eat(0x5C /* \ */)) { + if (this.regexp_eatClassEscape(state)) { + return true + } + if (state.switchU) { + // Make the same message as V8. + var ch$1 = state.current(); + if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) { + state.raise("Invalid class escape"); + } + state.raise("Invalid escape"); + } + state.pos = start; + } + + var ch = state.current(); + if (ch !== 0x5D /* ] */) { + state.lastIntValue = ch; + state.advance(); + return true + } + + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape + pp$1.regexp_eatClassEscape = function(state) { + var start = state.pos; + + if (state.eat(0x62 /* b */)) { + state.lastIntValue = 0x08; /* */ + return true + } + + if (state.switchU && state.eat(0x2D /* - */)) { + state.lastIntValue = 0x2D; /* - */ + return true + } + + if (!state.switchU && state.eat(0x63 /* c */)) { + if (this.regexp_eatClassControlLetter(state)) { + return true + } + state.pos = start; + } + + return ( + this.regexp_eatCharacterClassEscape(state) || + this.regexp_eatCharacterEscape(state) + ) + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter + pp$1.regexp_eatClassControlLetter = function(state) { + var ch = state.current(); + if (isDecimalDigit(ch) || ch === 0x5F /* _ */) { + state.lastIntValue = ch % 0x20; + state.advance(); + return true + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence + pp$1.regexp_eatHexEscapeSequence = function(state) { + var start = state.pos; + if (state.eat(0x78 /* x */)) { + if (this.regexp_eatFixedHexDigits(state, 2)) { + return true + } + if (state.switchU) { + state.raise("Invalid escape"); + } + state.pos = start; + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits + pp$1.regexp_eatDecimalDigits = function(state) { + var start = state.pos; + var ch = 0; + state.lastIntValue = 0; + while (isDecimalDigit(ch = state.current())) { + state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); + state.advance(); + } + return state.pos !== start + }; + function isDecimalDigit(ch) { + return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */ + } + + // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits + pp$1.regexp_eatHexDigits = function(state) { + var start = state.pos; + var ch = 0; + state.lastIntValue = 0; + while (isHexDigit(ch = state.current())) { + state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); + state.advance(); + } + return state.pos !== start + }; + function isHexDigit(ch) { + return ( + (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) || + (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) || + (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) + ) + } + function hexToInt(ch) { + if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) { + return 10 + (ch - 0x41 /* A */) + } + if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) { + return 10 + (ch - 0x61 /* a */) + } + return ch - 0x30 /* 0 */ + } + + // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence + // Allows only 0-377(octal) i.e. 0-255(decimal). + pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) { + if (this.regexp_eatOctalDigit(state)) { + var n1 = state.lastIntValue; + if (this.regexp_eatOctalDigit(state)) { + var n2 = state.lastIntValue; + if (n1 <= 3 && this.regexp_eatOctalDigit(state)) { + state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue; + } else { + state.lastIntValue = n1 * 8 + n2; + } + } else { + state.lastIntValue = n1; + } + return true + } + return false + }; + + // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit + pp$1.regexp_eatOctalDigit = function(state) { + var ch = state.current(); + if (isOctalDigit(ch)) { + state.lastIntValue = ch - 0x30; /* 0 */ + state.advance(); + return true + } + state.lastIntValue = 0; + return false + }; + function isOctalDigit(ch) { + return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */ + } + + // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits + // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit + // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence + pp$1.regexp_eatFixedHexDigits = function(state, length) { + var start = state.pos; + state.lastIntValue = 0; + for (var i = 0; i < length; ++i) { + var ch = state.current(); + if (!isHexDigit(ch)) { + state.pos = start; + return false + } + state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); + state.advance(); + } + return true + }; + + // Object type used to represent tokens. Note that normally, tokens + // simply exist as properties on the parser object. This is only + // used for the onToken callback and the external tokenizer. + + var Token = function Token(p) { + this.type = p.type; + this.value = p.value; + this.start = p.start; + this.end = p.end; + if (p.options.locations) + { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); } + if (p.options.ranges) + { this.range = [p.start, p.end]; } + }; + + // ## Tokenizer + + var pp = Parser.prototype; + + // Move to the next token + + pp.next = function(ignoreEscapeSequenceInKeyword) { + if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) + { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); } + if (this.options.onToken) + { this.options.onToken(new Token(this)); } + + this.lastTokEnd = this.end; + this.lastTokStart = this.start; + this.lastTokEndLoc = this.endLoc; + this.lastTokStartLoc = this.startLoc; + this.nextToken(); + }; + + pp.getToken = function() { + this.next(); + return new Token(this) + }; + + // If we're in an ES6 environment, make parsers iterable + if (typeof Symbol !== "undefined") + { pp[Symbol.iterator] = function() { + var this$1$1 = this; + + return { + next: function () { + var token = this$1$1.getToken(); + return { + done: token.type === types$1.eof, + value: token + } + } + } + }; } + + // Toggle strict mode. Re-reads the next number or string to please + // pedantic tests (`"use strict"; 010;` should fail). + + // Read a single token, updating the parser object's token-related + // properties. + + pp.nextToken = function() { + var curContext = this.curContext(); + if (!curContext || !curContext.preserveSpace) { this.skipSpace(); } + + this.start = this.pos; + if (this.options.locations) { this.startLoc = this.curPosition(); } + if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) } + + if (curContext.override) { return curContext.override(this) } + else { this.readToken(this.fullCharCodeAtPos()); } + }; + + pp.readToken = function(code) { + // Identifier or keyword. '\uXXXX' sequences are allowed in + // identifiers, so '\' also dispatches to that. + if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) + { return this.readWord() } + + return this.getTokenFromCode(code) + }; + + pp.fullCharCodeAtPos = function() { + var code = this.input.charCodeAt(this.pos); + if (code <= 0xd7ff || code >= 0xdc00) { return code } + var next = this.input.charCodeAt(this.pos + 1); + return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00 + }; + + pp.skipBlockComment = function() { + var startLoc = this.options.onComment && this.curPosition(); + var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); + if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } + this.pos = end + 2; + if (this.options.locations) { + for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) { + ++this.curLine; + pos = this.lineStart = nextBreak; + } + } + if (this.options.onComment) + { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos, + startLoc, this.curPosition()); } + }; + + pp.skipLineComment = function(startSkip) { + var start = this.pos; + var startLoc = this.options.onComment && this.curPosition(); + var ch = this.input.charCodeAt(this.pos += startSkip); + while (this.pos < this.input.length && !isNewLine(ch)) { + ch = this.input.charCodeAt(++this.pos); + } + if (this.options.onComment) + { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos, + startLoc, this.curPosition()); } + }; + + // Called at the start of the parse and after every token. Skips + // whitespace and comments, and. + + pp.skipSpace = function() { + loop: while (this.pos < this.input.length) { + var ch = this.input.charCodeAt(this.pos); + switch (ch) { + case 32: case 160: // ' ' + ++this.pos; + break + case 13: + if (this.input.charCodeAt(this.pos + 1) === 10) { + ++this.pos; + } + case 10: case 8232: case 8233: + ++this.pos; + if (this.options.locations) { + ++this.curLine; + this.lineStart = this.pos; + } + break + case 47: // '/' + switch (this.input.charCodeAt(this.pos + 1)) { + case 42: // '*' + this.skipBlockComment(); + break + case 47: + this.skipLineComment(2); + break + default: + break loop + } + break + default: + if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { + ++this.pos; + } else { + break loop + } + } + } + }; + + // Called at the end of every token. Sets `end`, `val`, and + // maintains `context` and `exprAllowed`, and skips the space after + // the token, so that the next one's `start` will point at the + // right position. + + pp.finishToken = function(type, val) { + this.end = this.pos; + if (this.options.locations) { this.endLoc = this.curPosition(); } + var prevType = this.type; + this.type = type; + this.value = val; + + this.updateContext(prevType); + }; + + // ### Token reading + + // This is the function that is called to fetch the next token. It + // is somewhat obscure, because it works in character codes rather + // than characters, and because operator parsing has been inlined + // into it. + // + // All in the name of speed. + // + pp.readToken_dot = function() { + var next = this.input.charCodeAt(this.pos + 1); + if (next >= 48 && next <= 57) { return this.readNumber(true) } + var next2 = this.input.charCodeAt(this.pos + 2); + if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' + this.pos += 3; + return this.finishToken(types$1.ellipsis) + } else { + ++this.pos; + return this.finishToken(types$1.dot) + } + }; + + pp.readToken_slash = function() { // '/' + var next = this.input.charCodeAt(this.pos + 1); + if (this.exprAllowed) { ++this.pos; return this.readRegexp() } + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.slash, 1) + }; + + pp.readToken_mult_modulo_exp = function(code) { // '%*' + var next = this.input.charCodeAt(this.pos + 1); + var size = 1; + var tokentype = code === 42 ? types$1.star : types$1.modulo; + + // exponentiation operator ** and **= + if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { + ++size; + tokentype = types$1.starstar; + next = this.input.charCodeAt(this.pos + 2); + } + + if (next === 61) { return this.finishOp(types$1.assign, size + 1) } + return this.finishOp(tokentype, size) + }; + + pp.readToken_pipe_amp = function(code) { // '|&' + var next = this.input.charCodeAt(this.pos + 1); + if (next === code) { + if (this.options.ecmaVersion >= 12) { + var next2 = this.input.charCodeAt(this.pos + 2); + if (next2 === 61) { return this.finishOp(types$1.assign, 3) } + } + return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2) + } + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1) + }; + + pp.readToken_caret = function() { // '^' + var next = this.input.charCodeAt(this.pos + 1); + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.bitwiseXOR, 1) + }; + + pp.readToken_plus_min = function(code) { // '+-' + var next = this.input.charCodeAt(this.pos + 1); + if (next === code) { + if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && + (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) { + // A `-->` line comment + this.skipLineComment(3); + this.skipSpace(); + return this.nextToken() + } + return this.finishOp(types$1.incDec, 2) + } + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.plusMin, 1) + }; + + pp.readToken_lt_gt = function(code) { // '<>' + var next = this.input.charCodeAt(this.pos + 1); + var size = 1; + if (next === code) { + size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) } + return this.finishOp(types$1.bitShift, size) + } + if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && + this.input.charCodeAt(this.pos + 3) === 45) { + // `` line comment + this.skipLineComment(3); + this.skipSpace(); + return this.nextToken() + } + return this.finishOp(types$1.incDec, 2) + } + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.plusMin, 1) +}; + +pp.readToken_lt_gt = function(code) { // '<>' + var next = this.input.charCodeAt(this.pos + 1); + var size = 1; + if (next === code) { + size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) } + return this.finishOp(types$1.bitShift, size) + } + if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && + this.input.charCodeAt(this.pos + 3) === 45) { + // ` + + + +### Technical Steering Committee (TSC) + +The people who manage releases, review feature requests, and meet regularly to ensure ESLint is properly maintained. + +
+ +
+Nicholas C. Zakas +
+
+ +
+Brandon Mills +
+
+ +
+Milos Djermanovic +
+
+ +### Reviewers + +The people who review and implement new features. + +
+ +
+唯然 +
+
+ +
+Nitin Kumar +
+
+ +### Committers + +The people who review and fix bugs and help triage issues. + +
+ +
+Brett Zamir +
+
+ +
+Bryan Mishkin +
+
+ +
+Sara Soueidan +
+
+ +
+Pig Fang +
+
+ +
+Anix +
+
+ +
+YeonJuan +
+
+ + + +## Sponsors + +The following companies, organizations, and individuals support ESLint's ongoing maintenance and development. [Become a Sponsor](https://opencollective.com/eslint) to get your logo on our README and website. + + + +

Platinum Sponsors

+

Automattic

Gold Sponsors

+

Salesforce Airbnb American Express

Silver Sponsors

+

Liftoff

Bronze Sponsors

+

launchdarkly Nx (by Nrwl) Anagram Solver VPS Icons8: free icons, photos, illustrations, and music Discord ThemeIsle Ignition HeroCoders

+ + +## Technology Sponsors + +* Site search ([eslint.org](https://eslint.org)) is sponsored by [Algolia](https://www.algolia.com) +* Hosting for ([eslint.org](https://eslint.org)) is sponsored by [Netlify](https://www.netlify.com) +* Password management is sponsored by [1Password](https://www.1password.com) diff --git a/node_modules/eslint/bin/eslint.js b/node_modules/eslint/bin/eslint.js new file mode 100755 index 0000000..7094ac7 --- /dev/null +++ b/node_modules/eslint/bin/eslint.js @@ -0,0 +1,140 @@ +#!/usr/bin/env node + +/** + * @fileoverview Main CLI that is run via the eslint command. + * @author Nicholas C. Zakas + */ + +/* eslint no-console:off -- CLI */ + +"use strict"; + +// must do this initialization *before* other requires in order to work +if (process.argv.includes("--debug")) { + require("debug").enable("eslint:*,-eslint:code-path,eslintrc:*"); +} + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Read data from stdin til the end. + * + * Note: See + * - https://github.com/nodejs/node/blob/master/doc/api/process.md#processstdin + * - https://github.com/nodejs/node/blob/master/doc/api/process.md#a-note-on-process-io + * - https://lists.gnu.org/archive/html/bug-gnu-emacs/2016-01/msg00419.html + * - https://github.com/nodejs/node/issues/7439 (historical) + * + * On Windows using `fs.readFileSync(STDIN_FILE_DESCRIPTOR, "utf8")` seems + * to read 4096 bytes before blocking and never drains to read further data. + * + * The investigation on the Emacs thread indicates: + * + * > Emacs on MS-Windows uses pipes to communicate with subprocesses; a + * > pipe on Windows has a 4K buffer. So as soon as Emacs writes more than + * > 4096 bytes to the pipe, the pipe becomes full, and Emacs then waits for + * > the subprocess to read its end of the pipe, at which time Emacs will + * > write the rest of the stuff. + * @returns {Promise} The read text. + */ +function readStdin() { + return new Promise((resolve, reject) => { + let content = ""; + let chunk = ""; + + process.stdin + .setEncoding("utf8") + .on("readable", () => { + while ((chunk = process.stdin.read()) !== null) { + content += chunk; + } + }) + .on("end", () => resolve(content)) + .on("error", reject); + }); +} + +/** + * Get the error message of a given value. + * @param {any} error The value to get. + * @returns {string} The error message. + */ +function getErrorMessage(error) { + + // Lazy loading because this is used only if an error happened. + const util = require("util"); + + // Foolproof -- third-party module might throw non-object. + if (typeof error !== "object" || error === null) { + return String(error); + } + + // Use templates if `error.messageTemplate` is present. + if (typeof error.messageTemplate === "string") { + try { + const template = require(`../messages/${error.messageTemplate}.js`); + + return template(error.messageData || {}); + } catch { + + // Ignore template error then fallback to use `error.stack`. + } + } + + // Use the stacktrace if it's an error object. + if (typeof error.stack === "string") { + return error.stack; + } + + // Otherwise, dump the object. + return util.format("%o", error); +} + +/** + * Catch and report unexpected error. + * @param {any} error The thrown error object. + * @returns {void} + */ +function onFatalError(error) { + process.exitCode = 2; + + const { version } = require("../package.json"); + const message = getErrorMessage(error); + + console.error(` +Oops! Something went wrong! :( + +ESLint: ${version} + +${message}`); +} + +//------------------------------------------------------------------------------ +// Execution +//------------------------------------------------------------------------------ + +(async function main() { + process.on("uncaughtException", onFatalError); + process.on("unhandledRejection", onFatalError); + + // Call the config initializer if `--init` is present. + if (process.argv.includes("--init")) { + + // `eslint --init` has been moved to `@eslint/create-config` + console.warn("You can also run this command directly using 'npm init @eslint/config'."); + + const spawn = require("cross-spawn"); + + spawn.sync("npm", ["init", "@eslint/config"], { encoding: "utf8", stdio: "inherit" }); + return; + } + + // Otherwise, call the CLI. + process.exitCode = await require("../lib/cli").execute( + process.argv, + process.argv.includes("--stdin") ? await readStdin() : null, + true + ); +}()).catch(onFatalError); diff --git a/node_modules/eslint/conf/config-schema.js b/node_modules/eslint/conf/config-schema.js new file mode 100644 index 0000000..b83f657 --- /dev/null +++ b/node_modules/eslint/conf/config-schema.js @@ -0,0 +1,93 @@ +/* + * STOP!!! DO NOT MODIFY. + * + * This file is part of the ongoing work to move the eslintrc-style config + * system into the @eslint/eslintrc package. This file needs to remain + * unchanged in order for this work to proceed. + * + * If you think you need to change this file, please contact @nzakas first. + * + * Thanks in advance for your cooperation. + */ + +/** + * @fileoverview Defines a schema for configs. + * @author Sylvan Mably + */ + +"use strict"; + +const baseConfigProperties = { + $schema: { type: "string" }, + env: { type: "object" }, + extends: { $ref: "#/definitions/stringOrStrings" }, + globals: { type: "object" }, + overrides: { + type: "array", + items: { $ref: "#/definitions/overrideConfig" }, + additionalItems: false + }, + parser: { type: ["string", "null"] }, + parserOptions: { type: "object" }, + plugins: { type: "array" }, + processor: { type: "string" }, + rules: { type: "object" }, + settings: { type: "object" }, + noInlineConfig: { type: "boolean" }, + reportUnusedDisableDirectives: { type: "boolean" }, + + ecmaFeatures: { type: "object" } // deprecated; logs a warning when used +}; + +const configSchema = { + definitions: { + stringOrStrings: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false + } + ] + }, + stringOrStringsRequired: { + oneOf: [ + { type: "string" }, + { + type: "array", + items: { type: "string" }, + additionalItems: false, + minItems: 1 + } + ] + }, + + // Config at top-level. + objectConfig: { + type: "object", + properties: { + root: { type: "boolean" }, + ignorePatterns: { $ref: "#/definitions/stringOrStrings" }, + ...baseConfigProperties + }, + additionalProperties: false + }, + + // Config in `overrides`. + overrideConfig: { + type: "object", + properties: { + excludedFiles: { $ref: "#/definitions/stringOrStrings" }, + files: { $ref: "#/definitions/stringOrStringsRequired" }, + ...baseConfigProperties + }, + required: ["files"], + additionalProperties: false + } + }, + + $ref: "#/definitions/objectConfig" +}; + +module.exports = configSchema; diff --git a/node_modules/eslint/conf/default-cli-options.js b/node_modules/eslint/conf/default-cli-options.js new file mode 100644 index 0000000..dad03d8 --- /dev/null +++ b/node_modules/eslint/conf/default-cli-options.js @@ -0,0 +1,32 @@ +/** + * @fileoverview Default CLIEngineOptions. + * @author Ian VanSchooten + */ + +"use strict"; + +module.exports = { + configFile: null, + baseConfig: false, + rulePaths: [], + useEslintrc: true, + envs: [], + globals: [], + extensions: null, + ignore: true, + ignorePath: void 0, + cache: false, + + /* + * in order to honor the cacheFile option if specified + * this option should not have a default value otherwise + * it will always be used + */ + cacheLocation: "", + cacheFile: ".eslintcache", + cacheStrategy: "metadata", + fix: false, + allowInlineConfig: true, + reportUnusedDisableDirectives: void 0, + globInputPaths: true +}; diff --git a/node_modules/eslint/conf/eslint-all.js b/node_modules/eslint/conf/eslint-all.js new file mode 100644 index 0000000..10c5304 --- /dev/null +++ b/node_modules/eslint/conf/eslint-all.js @@ -0,0 +1,31 @@ +/** + * @fileoverview Config to enable all rules. + * @author Robert Fletcher + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const builtInRules = require("../lib/rules"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const allRules = {}; + +for (const [ruleId, rule] of builtInRules) { + if (!rule.meta.deprecated) { + allRules[ruleId] = "error"; + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** @type {import("../lib/shared/types").ConfigData} */ +module.exports = { rules: allRules }; diff --git a/node_modules/eslint/conf/eslint-recommended.js b/node_modules/eslint/conf/eslint-recommended.js new file mode 100644 index 0000000..6f63985 --- /dev/null +++ b/node_modules/eslint/conf/eslint-recommended.js @@ -0,0 +1,76 @@ +/** + * @fileoverview Configuration applied when a user configuration extends from + * eslint:recommended. + * @author Nicholas C. Zakas + */ + +"use strict"; + +/* eslint sort-keys: ["error", "asc"] -- Long, so make more readable */ + +/** @type {import("../lib/shared/types").ConfigData} */ +module.exports = { + rules: { + "constructor-super": "error", + "for-direction": "error", + "getter-return": "error", + "no-async-promise-executor": "error", + "no-case-declarations": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "error", + "no-const-assign": "error", + "no-constant-condition": "error", + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-args": "error", + "no-dupe-class-members": "error", + "no-dupe-else-if": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-empty": "error", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": "error", + "no-extra-semi": "error", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-import-assign": "error", + "no-inner-declarations": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-loss-of-precision": "error", + "no-misleading-character-class": "error", + "no-mixed-spaces-and-tabs": "error", + "no-new-symbol": "error", + "no-nonoctal-decimal-escape": "error", + "no-obj-calls": "error", + "no-octal": "error", + "no-prototype-builtins": "error", + "no-redeclare": "error", + "no-regex-spaces": "error", + "no-self-assign": "error", + "no-setter-return": "error", + "no-shadow-restricted-names": "error", + "no-sparse-arrays": "error", + "no-this-before-super": "error", + "no-undef": "error", + "no-unexpected-multiline": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unsafe-optional-chaining": "error", + "no-unused-labels": "error", + "no-unused-vars": "error", + "no-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": "error", + "no-with": "error", + "require-yield": "error", + "use-isnan": "error", + "valid-typeof": "error" + } +}; diff --git a/node_modules/eslint/conf/globals.js b/node_modules/eslint/conf/globals.js new file mode 100644 index 0000000..6018b7a --- /dev/null +++ b/node_modules/eslint/conf/globals.js @@ -0,0 +1,149 @@ +/** + * @fileoverview Globals for ecmaVersion/sourceType + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Globals +//----------------------------------------------------------------------------- + +const commonjs = { + exports: true, + global: false, + module: false, + require: false +}; + +const es3 = { + Array: false, + Boolean: false, + constructor: false, + Date: false, + decodeURI: false, + decodeURIComponent: false, + encodeURI: false, + encodeURIComponent: false, + Error: false, + escape: false, + eval: false, + EvalError: false, + Function: false, + hasOwnProperty: false, + Infinity: false, + isFinite: false, + isNaN: false, + isPrototypeOf: false, + Math: false, + NaN: false, + Number: false, + Object: false, + parseFloat: false, + parseInt: false, + propertyIsEnumerable: false, + RangeError: false, + ReferenceError: false, + RegExp: false, + String: false, + SyntaxError: false, + toLocaleString: false, + toString: false, + TypeError: false, + undefined: false, + unescape: false, + URIError: false, + valueOf: false +}; + +const es5 = { + ...es3, + JSON: false +}; + +const es2015 = { + ...es5, + ArrayBuffer: false, + DataView: false, + Float32Array: false, + Float64Array: false, + Int16Array: false, + Int32Array: false, + Int8Array: false, + Map: false, + Promise: false, + Proxy: false, + Reflect: false, + Set: false, + Symbol: false, + Uint16Array: false, + Uint32Array: false, + Uint8Array: false, + Uint8ClampedArray: false, + WeakMap: false, + WeakSet: false +}; + +// no new globals in ES2016 +const es2016 = { + ...es2015 +}; + +const es2017 = { + ...es2016, + Atomics: false, + SharedArrayBuffer: false +}; + +// no new globals in ES2018 +const es2018 = { + ...es2017 +}; + +// no new globals in ES2019 +const es2019 = { + ...es2018 +}; + +const es2020 = { + ...es2019, + BigInt: false, + BigInt64Array: false, + BigUint64Array: false, + globalThis: false +}; + +const es2021 = { + ...es2020, + AggregateError: false, + FinalizationRegistry: false, + WeakRef: false +}; + +const es2022 = { + ...es2021 +}; + +const es2023 = { + ...es2022 +}; + + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +module.exports = { + commonjs, + es3, + es5, + es2015, + es2016, + es2017, + es2018, + es2019, + es2020, + es2021, + es2022, + es2023 +}; diff --git a/node_modules/eslint/conf/replacements.json b/node_modules/eslint/conf/replacements.json new file mode 100644 index 0000000..c047811 --- /dev/null +++ b/node_modules/eslint/conf/replacements.json @@ -0,0 +1,22 @@ +{ + "rules": { + "generator-star": ["generator-star-spacing"], + "global-strict": ["strict"], + "no-arrow-condition": ["no-confusing-arrow", "no-constant-condition"], + "no-comma-dangle": ["comma-dangle"], + "no-empty-class": ["no-empty-character-class"], + "no-empty-label": ["no-labels"], + "no-extra-strict": ["strict"], + "no-reserved-keys": ["quote-props"], + "no-space-before-semi": ["semi-spacing"], + "no-wrap-func": ["no-extra-parens"], + "space-after-function-name": ["space-before-function-paren"], + "space-after-keywords": ["keyword-spacing"], + "space-before-function-parentheses": ["space-before-function-paren"], + "space-before-keywords": ["keyword-spacing"], + "space-in-brackets": ["object-curly-spacing", "array-bracket-spacing", "computed-property-spacing"], + "space-return-throw-case": ["keyword-spacing"], + "space-unary-word-ops": ["space-unary-ops"], + "spaced-line-comment": ["spaced-comment"] + } +} diff --git a/node_modules/eslint/conf/rule-type-list.json b/node_modules/eslint/conf/rule-type-list.json new file mode 100644 index 0000000..f362aa4 --- /dev/null +++ b/node_modules/eslint/conf/rule-type-list.json @@ -0,0 +1,36 @@ +{ + "types": [ + { "name": "problem", "displayName": "Possible Problems", "description": "These rules relate to possible logic errors in code:" }, + { "name": "suggestion", "displayName": "Suggestions", "description": "These rules suggest alternate ways of doing things:" }, + { "name": "layout", "displayName": "Layout & Formatting", "description": "These rules care about how the code looks rather than how it executes:" } + ], + "deprecated": { + "name": "Deprecated", + "description": "These rules have been deprecated in accordance with the deprecation policy, and replaced by newer rules:", + "rules": [] + }, + "removed": { + "name": "Removed", + "description": "These rules from older versions of ESLint (before the deprecation policy existed) have been replaced by newer rules:", + "rules": [ + { "removed": "generator-star", "replacedBy": ["generator-star-spacing"] }, + { "removed": "global-strict", "replacedBy": ["strict"] }, + { "removed": "no-arrow-condition", "replacedBy": ["no-confusing-arrow", "no-constant-condition"] }, + { "removed": "no-comma-dangle", "replacedBy": ["comma-dangle"] }, + { "removed": "no-empty-class", "replacedBy": ["no-empty-character-class"] }, + { "removed": "no-empty-label", "replacedBy": ["no-labels"] }, + { "removed": "no-extra-strict", "replacedBy": ["strict"] }, + { "removed": "no-reserved-keys", "replacedBy": ["quote-props"] }, + { "removed": "no-space-before-semi", "replacedBy": ["semi-spacing"] }, + { "removed": "no-wrap-func", "replacedBy": ["no-extra-parens"] }, + { "removed": "space-after-function-name", "replacedBy": ["space-before-function-paren"] }, + { "removed": "space-after-keywords", "replacedBy": ["keyword-spacing"] }, + { "removed": "space-before-function-parentheses", "replacedBy": ["space-before-function-paren"] }, + { "removed": "space-before-keywords", "replacedBy": ["keyword-spacing"] }, + { "removed": "space-in-brackets", "replacedBy": ["object-curly-spacing", "array-bracket-spacing"] }, + { "removed": "space-return-throw-case", "replacedBy": ["keyword-spacing"] }, + { "removed": "space-unary-word-ops", "replacedBy": ["space-unary-ops"] }, + { "removed": "spaced-line-comment", "replacedBy": ["spaced-comment"] } + ] + } +} diff --git a/node_modules/eslint/lib/api.js b/node_modules/eslint/lib/api.js new file mode 100644 index 0000000..3dde098 --- /dev/null +++ b/node_modules/eslint/lib/api.js @@ -0,0 +1,26 @@ +/** + * @fileoverview Expose out ESLint and CLI to require. + * @author Ian Christian Myers + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const { ESLint } = require("./eslint"); +const { Linter } = require("./linter"); +const { RuleTester } = require("./rule-tester"); +const { SourceCode } = require("./source-code"); + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +module.exports = { + Linter, + ESLint, + RuleTester, + SourceCode +}; diff --git a/node_modules/eslint/lib/cli-engine/cli-engine.js b/node_modules/eslint/lib/cli-engine/cli-engine.js new file mode 100644 index 0000000..fdc6619 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/cli-engine.js @@ -0,0 +1,1067 @@ +/** + * @fileoverview Main CLI object. + * @author Nicholas C. Zakas + */ + +"use strict"; + +/* + * The CLI object should *not* call process.exit() directly. It should only return + * exit codes. This allows other programs to use the CLI object and still control + * when the program exits. + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const fs = require("fs"); +const path = require("path"); +const defaultOptions = require("../../conf/default-cli-options"); +const pkg = require("../../package.json"); + + +const { + Legacy: { + ConfigOps, + naming, + CascadingConfigArrayFactory, + IgnorePattern, + getUsedExtractedConfigs, + ModuleResolver + } +} = require("@eslint/eslintrc"); + +const { FileEnumerator } = require("./file-enumerator"); + +const { Linter } = require("../linter"); +const builtInRules = require("../rules"); +const loadRules = require("./load-rules"); +const hash = require("./hash"); +const LintResultCache = require("./lint-result-cache"); + +const debug = require("debug")("eslint:cli-engine"); +const validFixTypes = new Set(["directive", "problem", "suggestion", "layout"]); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +// For VSCode IntelliSense +/** @typedef {import("../shared/types").ConfigData} ConfigData */ +/** @typedef {import("../shared/types").DeprecatedRuleInfo} DeprecatedRuleInfo */ +/** @typedef {import("../shared/types").LintMessage} LintMessage */ +/** @typedef {import("../shared/types").SuppressedLintMessage} SuppressedLintMessage */ +/** @typedef {import("../shared/types").ParserOptions} ParserOptions */ +/** @typedef {import("../shared/types").Plugin} Plugin */ +/** @typedef {import("../shared/types").RuleConf} RuleConf */ +/** @typedef {import("../shared/types").Rule} Rule */ +/** @typedef {import("../shared/types").FormatterFunction} FormatterFunction */ +/** @typedef {ReturnType} ConfigArray */ +/** @typedef {ReturnType} ExtractedConfig */ + +/** + * The options to configure a CLI engine with. + * @typedef {Object} CLIEngineOptions + * @property {boolean} [allowInlineConfig] Enable or disable inline configuration comments. + * @property {ConfigData} [baseConfig] Base config object, extended by all configs used with this CLIEngine instance + * @property {boolean} [cache] Enable result caching. + * @property {string} [cacheLocation] The cache file to use instead of .eslintcache. + * @property {string} [configFile] The configuration file to use. + * @property {string} [cwd] The value to use for the current working directory. + * @property {string[]} [envs] An array of environments to load. + * @property {string[]|null} [extensions] An array of file extensions to check. + * @property {boolean|Function} [fix] Execute in autofix mode. If a function, should return a boolean. + * @property {string[]} [fixTypes] Array of rule types to apply fixes for. + * @property {string[]} [globals] An array of global variables to declare. + * @property {boolean} [ignore] False disables use of .eslintignore. + * @property {string} [ignorePath] The ignore file to use instead of .eslintignore. + * @property {string|string[]} [ignorePattern] One or more glob patterns to ignore. + * @property {boolean} [useEslintrc] False disables looking for .eslintrc + * @property {string} [parser] The name of the parser to use. + * @property {ParserOptions} [parserOptions] An object of parserOption settings to use. + * @property {string[]} [plugins] An array of plugins to load. + * @property {Record} [rules] An object of rules to use. + * @property {string[]} [rulePaths] An array of directories to load custom rules from. + * @property {boolean} [reportUnusedDisableDirectives] `true` adds reports for unused eslint-disable directives + * @property {boolean} [globInputPaths] Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file. + * @property {string} [resolvePluginsRelativeTo] The folder where plugins should be resolved from, defaulting to the CWD + */ + +/** + * A linting result. + * @typedef {Object} LintResult + * @property {string} filePath The path to the file that was linted. + * @property {LintMessage[]} messages All of the messages for the result. + * @property {SuppressedLintMessage[]} suppressedMessages All of the suppressed messages for the result. + * @property {number} errorCount Number of errors for the result. + * @property {number} fatalErrorCount Number of fatal errors for the result. + * @property {number} warningCount Number of warnings for the result. + * @property {number} fixableErrorCount Number of fixable errors for the result. + * @property {number} fixableWarningCount Number of fixable warnings for the result. + * @property {string} [source] The source code of the file that was linted. + * @property {string} [output] The source code of the file that was linted, with as many fixes applied as possible. + */ + +/** + * Linting results. + * @typedef {Object} LintReport + * @property {LintResult[]} results All of the result. + * @property {number} errorCount Number of errors for the result. + * @property {number} fatalErrorCount Number of fatal errors for the result. + * @property {number} warningCount Number of warnings for the result. + * @property {number} fixableErrorCount Number of fixable errors for the result. + * @property {number} fixableWarningCount Number of fixable warnings for the result. + * @property {DeprecatedRuleInfo[]} usedDeprecatedRules The list of used deprecated rules. + */ + +/** + * Private data for CLIEngine. + * @typedef {Object} CLIEngineInternalSlots + * @property {Map} additionalPluginPool The map for additional plugins. + * @property {string} cacheFilePath The path to the cache of lint results. + * @property {CascadingConfigArrayFactory} configArrayFactory The factory of configs. + * @property {(filePath: string) => boolean} defaultIgnores The default predicate function to check if a file ignored or not. + * @property {FileEnumerator} fileEnumerator The file enumerator. + * @property {ConfigArray[]} lastConfigArrays The list of config arrays that the last `executeOnFiles` or `executeOnText` used. + * @property {LintResultCache|null} lintResultCache The cache of lint results. + * @property {Linter} linter The linter instance which has loaded rules. + * @property {CLIEngineOptions} options The normalized options of this instance. + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** @type {WeakMap} */ +const internalSlotsMap = new WeakMap(); + +/** + * Determines if each fix type in an array is supported by ESLint and throws + * an error if not. + * @param {string[]} fixTypes An array of fix types to check. + * @returns {void} + * @throws {Error} If an invalid fix type is found. + */ +function validateFixTypes(fixTypes) { + for (const fixType of fixTypes) { + if (!validFixTypes.has(fixType)) { + throw new Error(`Invalid fix type "${fixType}" found.`); + } + } +} + +/** + * It will calculate the error and warning count for collection of messages per file + * @param {LintMessage[]} messages Collection of messages + * @returns {Object} Contains the stats + * @private + */ +function calculateStatsPerFile(messages) { + return messages.reduce((stat, message) => { + if (message.fatal || message.severity === 2) { + stat.errorCount++; + if (message.fatal) { + stat.fatalErrorCount++; + } + if (message.fix) { + stat.fixableErrorCount++; + } + } else { + stat.warningCount++; + if (message.fix) { + stat.fixableWarningCount++; + } + } + return stat; + }, { + errorCount: 0, + fatalErrorCount: 0, + warningCount: 0, + fixableErrorCount: 0, + fixableWarningCount: 0 + }); +} + +/** + * It will calculate the error and warning count for collection of results from all files + * @param {LintResult[]} results Collection of messages from all the files + * @returns {Object} Contains the stats + * @private + */ +function calculateStatsPerRun(results) { + return results.reduce((stat, result) => { + stat.errorCount += result.errorCount; + stat.fatalErrorCount += result.fatalErrorCount; + stat.warningCount += result.warningCount; + stat.fixableErrorCount += result.fixableErrorCount; + stat.fixableWarningCount += result.fixableWarningCount; + return stat; + }, { + errorCount: 0, + fatalErrorCount: 0, + warningCount: 0, + fixableErrorCount: 0, + fixableWarningCount: 0 + }); +} + +/** + * Processes an source code using ESLint. + * @param {Object} config The config object. + * @param {string} config.text The source code to verify. + * @param {string} config.cwd The path to the current working directory. + * @param {string|undefined} config.filePath The path to the file of `text`. If this is undefined, it uses ``. + * @param {ConfigArray} config.config The config. + * @param {boolean} config.fix If `true` then it does fix. + * @param {boolean} config.allowInlineConfig If `true` then it uses directive comments. + * @param {boolean} config.reportUnusedDisableDirectives If `true` then it reports unused `eslint-disable` comments. + * @param {FileEnumerator} config.fileEnumerator The file enumerator to check if a path is a target or not. + * @param {Linter} config.linter The linter instance to verify. + * @returns {LintResult} The result of linting. + * @private + */ +function verifyText({ + text, + cwd, + filePath: providedFilePath, + config, + fix, + allowInlineConfig, + reportUnusedDisableDirectives, + fileEnumerator, + linter +}) { + const filePath = providedFilePath || ""; + + debug(`Lint ${filePath}`); + + /* + * Verify. + * `config.extractConfig(filePath)` requires an absolute path, but `linter` + * doesn't know CWD, so it gives `linter` an absolute path always. + */ + const filePathToVerify = filePath === "" ? path.join(cwd, filePath) : filePath; + const { fixed, messages, output } = linter.verifyAndFix( + text, + config, + { + allowInlineConfig, + filename: filePathToVerify, + fix, + reportUnusedDisableDirectives, + + /** + * Check if the linter should adopt a given code block or not. + * @param {string} blockFilename The virtual filename of a code block. + * @returns {boolean} `true` if the linter should adopt the code block. + */ + filterCodeBlock(blockFilename) { + return fileEnumerator.isTargetPath(blockFilename); + } + } + ); + + // Tweak and return. + const result = { + filePath, + messages, + suppressedMessages: linter.getSuppressedMessages(), + ...calculateStatsPerFile(messages) + }; + + if (fixed) { + result.output = output; + } + if ( + result.errorCount + result.warningCount > 0 && + typeof result.output === "undefined" + ) { + result.source = text; + } + + return result; +} + +/** + * Returns result with warning by ignore settings + * @param {string} filePath File path of checked code + * @param {string} baseDir Absolute path of base directory + * @returns {LintResult} Result with single warning + * @private + */ +function createIgnoreResult(filePath, baseDir) { + let message; + const isHidden = filePath.split(path.sep) + .find(segment => /^\./u.test(segment)); + const isInNodeModules = baseDir && path.relative(baseDir, filePath).startsWith("node_modules"); + + if (isHidden) { + message = "File ignored by default. Use a negated ignore pattern (like \"--ignore-pattern '!'\") to override."; + } else if (isInNodeModules) { + message = "File ignored by default. Use \"--ignore-pattern '!node_modules/*'\" to override."; + } else { + message = "File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override."; + } + + return { + filePath: path.resolve(filePath), + messages: [ + { + fatal: false, + severity: 1, + message + } + ], + suppressedMessages: [], + errorCount: 0, + fatalErrorCount: 0, + warningCount: 1, + fixableErrorCount: 0, + fixableWarningCount: 0 + }; +} + +/** + * Get a rule. + * @param {string} ruleId The rule ID to get. + * @param {ConfigArray[]} configArrays The config arrays that have plugin rules. + * @returns {Rule|null} The rule or null. + */ +function getRule(ruleId, configArrays) { + for (const configArray of configArrays) { + const rule = configArray.pluginRules.get(ruleId); + + if (rule) { + return rule; + } + } + return builtInRules.get(ruleId) || null; +} + +/** + * Checks whether a message's rule type should be fixed. + * @param {LintMessage} message The message to check. + * @param {ConfigArray[]} lastConfigArrays The list of config arrays that the last `executeOnFiles` or `executeOnText` used. + * @param {string[]} fixTypes An array of fix types to check. + * @returns {boolean} Whether the message should be fixed. + */ +function shouldMessageBeFixed(message, lastConfigArrays, fixTypes) { + if (!message.ruleId) { + return fixTypes.has("directive"); + } + + const rule = message.ruleId && getRule(message.ruleId, lastConfigArrays); + + return Boolean(rule && rule.meta && fixTypes.has(rule.meta.type)); +} + +/** + * Collect used deprecated rules. + * @param {ConfigArray[]} usedConfigArrays The config arrays which were used. + * @returns {IterableIterator} Used deprecated rules. + */ +function *iterateRuleDeprecationWarnings(usedConfigArrays) { + const processedRuleIds = new Set(); + + // Flatten used configs. + /** @type {ExtractedConfig[]} */ + const configs = usedConfigArrays.flatMap(getUsedExtractedConfigs); + + // Traverse rule configs. + for (const config of configs) { + for (const [ruleId, ruleConfig] of Object.entries(config.rules)) { + + // Skip if it was processed. + if (processedRuleIds.has(ruleId)) { + continue; + } + processedRuleIds.add(ruleId); + + // Skip if it's not used. + if (!ConfigOps.getRuleSeverity(ruleConfig)) { + continue; + } + const rule = getRule(ruleId, usedConfigArrays); + + // Skip if it's not deprecated. + if (!(rule && rule.meta && rule.meta.deprecated)) { + continue; + } + + // This rule was used and deprecated. + yield { + ruleId, + replacedBy: rule.meta.replacedBy || [] + }; + } + } +} + +/** + * Checks if the given message is an error message. + * @param {LintMessage} message The message to check. + * @returns {boolean} Whether or not the message is an error message. + * @private + */ +function isErrorMessage(message) { + return message.severity === 2; +} + + +/** + * return the cacheFile to be used by eslint, based on whether the provided parameter is + * a directory or looks like a directory (ends in `path.sep`), in which case the file + * name will be the `cacheFile/.cache_hashOfCWD` + * + * if cacheFile points to a file or looks like a file then it will just use that file + * @param {string} cacheFile The name of file to be used to store the cache + * @param {string} cwd Current working directory + * @returns {string} the resolved path to the cache file + */ +function getCacheFile(cacheFile, cwd) { + + /* + * make sure the path separators are normalized for the environment/os + * keeping the trailing path separator if present + */ + const normalizedCacheFile = path.normalize(cacheFile); + + const resolvedCacheFile = path.resolve(cwd, normalizedCacheFile); + const looksLikeADirectory = normalizedCacheFile.slice(-1) === path.sep; + + /** + * return the name for the cache file in case the provided parameter is a directory + * @returns {string} the resolved path to the cacheFile + */ + function getCacheFileForDirectory() { + return path.join(resolvedCacheFile, `.cache_${hash(cwd)}`); + } + + let fileStats; + + try { + fileStats = fs.lstatSync(resolvedCacheFile); + } catch { + fileStats = null; + } + + + /* + * in case the file exists we need to verify if the provided path + * is a directory or a file. If it is a directory we want to create a file + * inside that directory + */ + if (fileStats) { + + /* + * is a directory or is a file, but the original file the user provided + * looks like a directory but `path.resolve` removed the `last path.sep` + * so we need to still treat this like a directory + */ + if (fileStats.isDirectory() || looksLikeADirectory) { + return getCacheFileForDirectory(); + } + + // is file so just use that file + return resolvedCacheFile; + } + + /* + * here we known the file or directory doesn't exist, + * so we will try to infer if its a directory if it looks like a directory + * for the current operating system. + */ + + // if the last character passed is a path separator we assume is a directory + if (looksLikeADirectory) { + return getCacheFileForDirectory(); + } + + return resolvedCacheFile; +} + +/** + * Convert a string array to a boolean map. + * @param {string[]|null} keys The keys to assign true. + * @param {boolean} defaultValue The default value for each property. + * @param {string} displayName The property name which is used in error message. + * @throws {Error} Requires array. + * @returns {Record} The boolean map. + */ +function toBooleanMap(keys, defaultValue, displayName) { + if (keys && !Array.isArray(keys)) { + throw new Error(`${displayName} must be an array.`); + } + if (keys && keys.length > 0) { + return keys.reduce((map, def) => { + const [key, value] = def.split(":"); + + if (key !== "__proto__") { + map[key] = value === void 0 + ? defaultValue + : value === "true"; + } + + return map; + }, {}); + } + return void 0; +} + +/** + * Create a config data from CLI options. + * @param {CLIEngineOptions} options The options + * @returns {ConfigData|null} The created config data. + */ +function createConfigDataFromOptions(options) { + const { + ignorePattern, + parser, + parserOptions, + plugins, + rules + } = options; + const env = toBooleanMap(options.envs, true, "envs"); + const globals = toBooleanMap(options.globals, false, "globals"); + + if ( + env === void 0 && + globals === void 0 && + (ignorePattern === void 0 || ignorePattern.length === 0) && + parser === void 0 && + parserOptions === void 0 && + plugins === void 0 && + rules === void 0 + ) { + return null; + } + return { + env, + globals, + ignorePatterns: ignorePattern, + parser, + parserOptions, + plugins, + rules + }; +} + +/** + * Checks whether a directory exists at the given location + * @param {string} resolvedPath A path from the CWD + * @throws {Error} As thrown by `fs.statSync` or `fs.isDirectory`. + * @returns {boolean} `true` if a directory exists + */ +function directoryExists(resolvedPath) { + try { + return fs.statSync(resolvedPath).isDirectory(); + } catch (error) { + if (error && (error.code === "ENOENT" || error.code === "ENOTDIR")) { + return false; + } + throw error; + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Core CLI. + */ +class CLIEngine { + + /** + * Creates a new instance of the core CLI engine. + * @param {CLIEngineOptions} providedOptions The options for this instance. + * @param {Object} [additionalData] Additional settings that are not CLIEngineOptions. + * @param {Record|null} [additionalData.preloadedPlugins] Preloaded plugins. + */ + constructor(providedOptions, { preloadedPlugins } = {}) { + const options = Object.assign( + Object.create(null), + defaultOptions, + { cwd: process.cwd() }, + providedOptions + ); + + if (options.fix === void 0) { + options.fix = false; + } + + const additionalPluginPool = new Map(); + + if (preloadedPlugins) { + for (const [id, plugin] of Object.entries(preloadedPlugins)) { + additionalPluginPool.set(id, plugin); + } + } + + const cacheFilePath = getCacheFile( + options.cacheLocation || options.cacheFile, + options.cwd + ); + const configArrayFactory = new CascadingConfigArrayFactory({ + additionalPluginPool, + baseConfig: options.baseConfig || null, + cliConfig: createConfigDataFromOptions(options), + cwd: options.cwd, + ignorePath: options.ignorePath, + resolvePluginsRelativeTo: options.resolvePluginsRelativeTo, + rulePaths: options.rulePaths, + specificConfigPath: options.configFile, + useEslintrc: options.useEslintrc, + builtInRules, + loadRules, + getEslintRecommendedConfig: () => require("../../conf/eslint-recommended.js"), + getEslintAllConfig: () => require("../../conf/eslint-all.js") + }); + const fileEnumerator = new FileEnumerator({ + configArrayFactory, + cwd: options.cwd, + extensions: options.extensions, + globInputPaths: options.globInputPaths, + errorOnUnmatchedPattern: options.errorOnUnmatchedPattern, + ignore: options.ignore + }); + const lintResultCache = + options.cache ? new LintResultCache(cacheFilePath, options.cacheStrategy) : null; + const linter = new Linter({ cwd: options.cwd }); + + /** @type {ConfigArray[]} */ + const lastConfigArrays = [configArrayFactory.getConfigArrayForFile()]; + + // Store private data. + internalSlotsMap.set(this, { + additionalPluginPool, + cacheFilePath, + configArrayFactory, + defaultIgnores: IgnorePattern.createDefaultIgnore(options.cwd), + fileEnumerator, + lastConfigArrays, + lintResultCache, + linter, + options + }); + + // setup special filter for fixes + if (options.fix && options.fixTypes && options.fixTypes.length > 0) { + debug(`Using fix types ${options.fixTypes}`); + + // throw an error if any invalid fix types are found + validateFixTypes(options.fixTypes); + + // convert to Set for faster lookup + const fixTypes = new Set(options.fixTypes); + + // save original value of options.fix in case it's a function + const originalFix = (typeof options.fix === "function") + ? options.fix : () => true; + + options.fix = message => shouldMessageBeFixed(message, lastConfigArrays, fixTypes) && originalFix(message); + } + } + + getRules() { + const { lastConfigArrays } = internalSlotsMap.get(this); + + return new Map(function *() { + yield* builtInRules; + + for (const configArray of lastConfigArrays) { + yield* configArray.pluginRules; + } + }()); + } + + /** + * Returns results that only contains errors. + * @param {LintResult[]} results The results to filter. + * @returns {LintResult[]} The filtered results. + */ + static getErrorResults(results) { + const filtered = []; + + results.forEach(result => { + const filteredMessages = result.messages.filter(isErrorMessage); + const filteredSuppressedMessages = result.suppressedMessages.filter(isErrorMessage); + + if (filteredMessages.length > 0) { + filtered.push({ + ...result, + messages: filteredMessages, + suppressedMessages: filteredSuppressedMessages, + errorCount: filteredMessages.length, + warningCount: 0, + fixableErrorCount: result.fixableErrorCount, + fixableWarningCount: 0 + }); + } + }); + + return filtered; + } + + /** + * Outputs fixes from the given results to files. + * @param {LintReport} report The report object created by CLIEngine. + * @returns {void} + */ + static outputFixes(report) { + report.results.filter(result => Object.prototype.hasOwnProperty.call(result, "output")).forEach(result => { + fs.writeFileSync(result.filePath, result.output); + }); + } + + /** + * Resolves the patterns passed into executeOnFiles() into glob-based patterns + * for easier handling. + * @param {string[]} patterns The file patterns passed on the command line. + * @returns {string[]} The equivalent glob patterns. + */ + resolveFileGlobPatterns(patterns) { + const { options } = internalSlotsMap.get(this); + + if (options.globInputPaths === false) { + return patterns.filter(Boolean); + } + + const extensions = (options.extensions || [".js"]).map(ext => ext.replace(/^\./u, "")); + const dirSuffix = `/**/*.{${extensions.join(",")}}`; + + return patterns.filter(Boolean).map(pathname => { + const resolvedPath = path.resolve(options.cwd, pathname); + const newPath = directoryExists(resolvedPath) + ? pathname.replace(/[/\\]$/u, "") + dirSuffix + : pathname; + + return path.normalize(newPath).replace(/\\/gu, "/"); + }); + } + + /** + * Executes the current configuration on an array of file and directory names. + * @param {string[]} patterns An array of file and directory names. + * @throws {Error} As may be thrown by `fs.unlinkSync`. + * @returns {LintReport} The results for all files that were linted. + */ + executeOnFiles(patterns) { + const { + cacheFilePath, + fileEnumerator, + lastConfigArrays, + lintResultCache, + linter, + options: { + allowInlineConfig, + cache, + cwd, + fix, + reportUnusedDisableDirectives + } + } = internalSlotsMap.get(this); + const results = []; + const startTime = Date.now(); + + // Clear the last used config arrays. + lastConfigArrays.length = 0; + + // Delete cache file; should this do here? + if (!cache) { + try { + fs.unlinkSync(cacheFilePath); + } catch (error) { + const errorCode = error && error.code; + + // Ignore errors when no such file exists or file system is read only (and cache file does not exist) + if (errorCode !== "ENOENT" && !(errorCode === "EROFS" && !fs.existsSync(cacheFilePath))) { + throw error; + } + } + } + + // Iterate source code files. + for (const { config, filePath, ignored } of fileEnumerator.iterateFiles(patterns)) { + if (ignored) { + results.push(createIgnoreResult(filePath, cwd)); + continue; + } + + /* + * Store used configs for: + * - this method uses to collect used deprecated rules. + * - `getRules()` method uses to collect all loaded rules. + * - `--fix-type` option uses to get the loaded rule's meta data. + */ + if (!lastConfigArrays.includes(config)) { + lastConfigArrays.push(config); + } + + // Skip if there is cached result. + if (lintResultCache) { + const cachedResult = + lintResultCache.getCachedLintResults(filePath, config); + + if (cachedResult) { + const hadMessages = + cachedResult.messages && + cachedResult.messages.length > 0; + + if (hadMessages && fix) { + debug(`Reprocessing cached file to allow autofix: ${filePath}`); + } else { + debug(`Skipping file since it hasn't changed: ${filePath}`); + results.push(cachedResult); + continue; + } + } + } + + // Do lint. + const result = verifyText({ + text: fs.readFileSync(filePath, "utf8"), + filePath, + config, + cwd, + fix, + allowInlineConfig, + reportUnusedDisableDirectives, + fileEnumerator, + linter + }); + + results.push(result); + + /* + * Store the lint result in the LintResultCache. + * NOTE: The LintResultCache will remove the file source and any + * other properties that are difficult to serialize, and will + * hydrate those properties back in on future lint runs. + */ + if (lintResultCache) { + lintResultCache.setCachedLintResults(filePath, config, result); + } + } + + // Persist the cache to disk. + if (lintResultCache) { + lintResultCache.reconcile(); + } + + debug(`Linting complete in: ${Date.now() - startTime}ms`); + let usedDeprecatedRules; + + return { + results, + ...calculateStatsPerRun(results), + + // Initialize it lazily because CLI and `ESLint` API don't use it. + get usedDeprecatedRules() { + if (!usedDeprecatedRules) { + usedDeprecatedRules = Array.from( + iterateRuleDeprecationWarnings(lastConfigArrays) + ); + } + return usedDeprecatedRules; + } + }; + } + + /** + * Executes the current configuration on text. + * @param {string} text A string of JavaScript code to lint. + * @param {string} [filename] An optional string representing the texts filename. + * @param {boolean} [warnIgnored] Always warn when a file is ignored + * @returns {LintReport} The results for the linting. + */ + executeOnText(text, filename, warnIgnored) { + const { + configArrayFactory, + fileEnumerator, + lastConfigArrays, + linter, + options: { + allowInlineConfig, + cwd, + fix, + reportUnusedDisableDirectives + } + } = internalSlotsMap.get(this); + const results = []; + const startTime = Date.now(); + const resolvedFilename = filename && path.resolve(cwd, filename); + + + // Clear the last used config arrays. + lastConfigArrays.length = 0; + if (resolvedFilename && this.isPathIgnored(resolvedFilename)) { + if (warnIgnored) { + results.push(createIgnoreResult(resolvedFilename, cwd)); + } + } else { + const config = configArrayFactory.getConfigArrayForFile( + resolvedFilename || "__placeholder__.js" + ); + + /* + * Store used configs for: + * - this method uses to collect used deprecated rules. + * - `getRules()` method uses to collect all loaded rules. + * - `--fix-type` option uses to get the loaded rule's meta data. + */ + lastConfigArrays.push(config); + + // Do lint. + results.push(verifyText({ + text, + filePath: resolvedFilename, + config, + cwd, + fix, + allowInlineConfig, + reportUnusedDisableDirectives, + fileEnumerator, + linter + })); + } + + debug(`Linting complete in: ${Date.now() - startTime}ms`); + let usedDeprecatedRules; + + return { + results, + ...calculateStatsPerRun(results), + + // Initialize it lazily because CLI and `ESLint` API don't use it. + get usedDeprecatedRules() { + if (!usedDeprecatedRules) { + usedDeprecatedRules = Array.from( + iterateRuleDeprecationWarnings(lastConfigArrays) + ); + } + return usedDeprecatedRules; + } + }; + } + + /** + * Returns a configuration object for the given file based on the CLI options. + * This is the same logic used by the ESLint CLI executable to determine + * configuration for each file it processes. + * @param {string} filePath The path of the file to retrieve a config object for. + * @throws {Error} If filepath a directory path. + * @returns {ConfigData} A configuration object for the file. + */ + getConfigForFile(filePath) { + const { configArrayFactory, options } = internalSlotsMap.get(this); + const absolutePath = path.resolve(options.cwd, filePath); + + if (directoryExists(absolutePath)) { + throw Object.assign( + new Error("'filePath' should not be a directory path."), + { messageTemplate: "print-config-with-directory-path" } + ); + } + + return configArrayFactory + .getConfigArrayForFile(absolutePath) + .extractConfig(absolutePath) + .toCompatibleObjectAsConfigFileContent(); + } + + /** + * Checks if a given path is ignored by ESLint. + * @param {string} filePath The path of the file to check. + * @returns {boolean} Whether or not the given path is ignored. + */ + isPathIgnored(filePath) { + const { + configArrayFactory, + defaultIgnores, + options: { cwd, ignore } + } = internalSlotsMap.get(this); + const absolutePath = path.resolve(cwd, filePath); + + if (ignore) { + const config = configArrayFactory + .getConfigArrayForFile(absolutePath) + .extractConfig(absolutePath); + const ignores = config.ignores || defaultIgnores; + + return ignores(absolutePath); + } + + return defaultIgnores(absolutePath); + } + + /** + * Returns the formatter representing the given format or null if the `format` is not a string. + * @param {string} [format] The name of the format to load or the path to a + * custom formatter. + * @throws {any} As may be thrown by requiring of formatter + * @returns {(FormatterFunction|null)} The formatter function or null if the `format` is not a string. + */ + getFormatter(format) { + + // default is stylish + const resolvedFormatName = format || "stylish"; + + // only strings are valid formatters + if (typeof resolvedFormatName === "string") { + + // replace \ with / for Windows compatibility + const normalizedFormatName = resolvedFormatName.replace(/\\/gu, "/"); + + const slots = internalSlotsMap.get(this); + const cwd = slots ? slots.options.cwd : process.cwd(); + const namespace = naming.getNamespaceFromTerm(normalizedFormatName); + + let formatterPath; + + // if there's a slash, then it's a file (TODO: this check seems dubious for scoped npm packages) + if (!namespace && normalizedFormatName.includes("/")) { + formatterPath = path.resolve(cwd, normalizedFormatName); + } else { + try { + const npmFormat = naming.normalizePackageName(normalizedFormatName, "eslint-formatter"); + + formatterPath = ModuleResolver.resolve(npmFormat, path.join(cwd, "__placeholder__.js")); + } catch { + formatterPath = path.resolve(__dirname, "formatters", normalizedFormatName); + } + } + + try { + return require(formatterPath); + } catch (ex) { + if (format === "table" || format === "codeframe") { + ex.message = `The ${format} formatter is no longer part of core ESLint. Install it manually with \`npm install -D eslint-formatter-${format}\``; + } else { + ex.message = `There was a problem loading formatter: ${formatterPath}\nError: ${ex.message}`; + } + throw ex; + } + + } else { + return null; + } + } +} + +CLIEngine.version = pkg.version; +CLIEngine.getFormatter = CLIEngine.prototype.getFormatter; + +module.exports = { + CLIEngine, + + /** + * Get the internal slots of a given CLIEngine instance for tests. + * @param {CLIEngine} instance The CLIEngine instance to get. + * @returns {CLIEngineInternalSlots} The internal slots. + */ + getCLIEngineInternalSlots(instance) { + return internalSlotsMap.get(instance); + } +}; diff --git a/node_modules/eslint/lib/cli-engine/file-enumerator.js b/node_modules/eslint/lib/cli-engine/file-enumerator.js new file mode 100644 index 0000000..b65d0a2 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/file-enumerator.js @@ -0,0 +1,545 @@ +/** + * @fileoverview `FileEnumerator` class. + * + * `FileEnumerator` class has two responsibilities: + * + * 1. Find target files by processing glob patterns. + * 2. Tie each target file and appropriate configuration. + * + * It provides a method: + * + * - `iterateFiles(patterns)` + * Iterate files which are matched by given patterns together with the + * corresponded configuration. This is for `CLIEngine#executeOnFiles()`. + * While iterating files, it loads the configuration file of each directory + * before iterate files on the directory, so we can use the configuration + * files to determine target files. + * + * @example + * const enumerator = new FileEnumerator(); + * const linter = new Linter(); + * + * for (const { config, filePath } of enumerator.iterateFiles(["*.js"])) { + * const code = fs.readFileSync(filePath, "utf8"); + * const messages = linter.verify(code, config, filePath); + * + * console.log(messages); + * } + * + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const fs = require("fs"); +const path = require("path"); +const getGlobParent = require("glob-parent"); +const isGlob = require("is-glob"); +const escapeRegExp = require("escape-string-regexp"); +const { Minimatch } = require("minimatch"); + +const { + Legacy: { + IgnorePattern, + CascadingConfigArrayFactory + } +} = require("@eslint/eslintrc"); +const debug = require("debug")("eslint:file-enumerator"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const minimatchOpts = { dot: true, matchBase: true }; +const dotfilesPattern = /(?:(?:^\.)|(?:[/\\]\.))[^/\\.].*/u; +const NONE = 0; +const IGNORED_SILENTLY = 1; +const IGNORED = 2; + +// For VSCode intellisense +/** @typedef {ReturnType} ConfigArray */ + +/** + * @typedef {Object} FileEnumeratorOptions + * @property {CascadingConfigArrayFactory} [configArrayFactory] The factory for config arrays. + * @property {string} [cwd] The base directory to start lookup. + * @property {string[]} [extensions] The extensions to match files for directory patterns. + * @property {boolean} [globInputPaths] Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file. + * @property {boolean} [ignore] The flag to check ignored files. + * @property {string[]} [rulePaths] The value of `--rulesdir` option. + */ + +/** + * @typedef {Object} FileAndConfig + * @property {string} filePath The path to a target file. + * @property {ConfigArray} config The config entries of that file. + * @property {boolean} ignored If `true` then this file should be ignored and warned because it was directly specified. + */ + +/** + * @typedef {Object} FileEntry + * @property {string} filePath The path to a target file. + * @property {ConfigArray} config The config entries of that file. + * @property {NONE|IGNORED_SILENTLY|IGNORED} flag The flag. + * - `NONE` means the file is a target file. + * - `IGNORED_SILENTLY` means the file should be ignored silently. + * - `IGNORED` means the file should be ignored and warned because it was directly specified. + */ + +/** + * @typedef {Object} FileEnumeratorInternalSlots + * @property {CascadingConfigArrayFactory} configArrayFactory The factory for config arrays. + * @property {string} cwd The base directory to start lookup. + * @property {RegExp|null} extensionRegExp The RegExp to test if a string ends with specific file extensions. + * @property {boolean} globInputPaths Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file. + * @property {boolean} ignoreFlag The flag to check ignored files. + * @property {(filePath:string, dot:boolean) => boolean} defaultIgnores The default predicate function to ignore files. + */ + +/** @type {WeakMap} */ +const internalSlotsMap = new WeakMap(); + +/** + * Check if a string is a glob pattern or not. + * @param {string} pattern A glob pattern. + * @returns {boolean} `true` if the string is a glob pattern. + */ +function isGlobPattern(pattern) { + return isGlob(path.sep === "\\" ? pattern.replace(/\\/gu, "/") : pattern); +} + +/** + * Get stats of a given path. + * @param {string} filePath The path to target file. + * @throws {Error} As may be thrown by `fs.statSync`. + * @returns {fs.Stats|null} The stats. + * @private + */ +function statSafeSync(filePath) { + try { + return fs.statSync(filePath); + } catch (error) { + + /* c8 ignore next */ + if (error.code !== "ENOENT") { + throw error; + } + return null; + } +} + +/** + * Get filenames in a given path to a directory. + * @param {string} directoryPath The path to target directory. + * @throws {Error} As may be thrown by `fs.readdirSync`. + * @returns {import("fs").Dirent[]} The filenames. + * @private + */ +function readdirSafeSync(directoryPath) { + try { + return fs.readdirSync(directoryPath, { withFileTypes: true }); + } catch (error) { + + /* c8 ignore next */ + if (error.code !== "ENOENT") { + throw error; + } + return []; + } +} + +/** + * Create a `RegExp` object to detect extensions. + * @param {string[] | null} extensions The extensions to create. + * @returns {RegExp | null} The created `RegExp` object or null. + */ +function createExtensionRegExp(extensions) { + if (extensions) { + const normalizedExts = extensions.map(ext => escapeRegExp( + ext.startsWith(".") + ? ext.slice(1) + : ext + )); + + return new RegExp( + `.\\.(?:${normalizedExts.join("|")})$`, + "u" + ); + } + return null; +} + +/** + * The error type when no files match a glob. + */ +class NoFilesFoundError extends Error { + + /** + * @param {string} pattern The glob pattern which was not found. + * @param {boolean} globDisabled If `true` then the pattern was a glob pattern, but glob was disabled. + */ + constructor(pattern, globDisabled) { + super(`No files matching '${pattern}' were found${globDisabled ? " (glob was disabled)" : ""}.`); + this.messageTemplate = "file-not-found"; + this.messageData = { pattern, globDisabled }; + } +} + +/** + * The error type when there are files matched by a glob, but all of them have been ignored. + */ +class AllFilesIgnoredError extends Error { + + /** + * @param {string} pattern The glob pattern which was not found. + */ + constructor(pattern) { + super(`All files matched by '${pattern}' are ignored.`); + this.messageTemplate = "all-files-ignored"; + this.messageData = { pattern }; + } +} + +/** + * This class provides the functionality that enumerates every file which is + * matched by given glob patterns and that configuration. + */ +class FileEnumerator { + + /** + * Initialize this enumerator. + * @param {FileEnumeratorOptions} options The options. + */ + constructor({ + cwd = process.cwd(), + configArrayFactory = new CascadingConfigArrayFactory({ + cwd, + getEslintRecommendedConfig: () => require("../../conf/eslint-recommended.js"), + getEslintAllConfig: () => require("../../conf/eslint-all.js") + }), + extensions = null, + globInputPaths = true, + errorOnUnmatchedPattern = true, + ignore = true + } = {}) { + internalSlotsMap.set(this, { + configArrayFactory, + cwd, + defaultIgnores: IgnorePattern.createDefaultIgnore(cwd), + extensionRegExp: createExtensionRegExp(extensions), + globInputPaths, + errorOnUnmatchedPattern, + ignoreFlag: ignore + }); + } + + /** + * Check if a given file is target or not. + * @param {string} filePath The path to a candidate file. + * @param {ConfigArray} [providedConfig] Optional. The configuration for the file. + * @returns {boolean} `true` if the file is a target. + */ + isTargetPath(filePath, providedConfig) { + const { + configArrayFactory, + extensionRegExp + } = internalSlotsMap.get(this); + + // If `--ext` option is present, use it. + if (extensionRegExp) { + return extensionRegExp.test(filePath); + } + + // `.js` file is target by default. + if (filePath.endsWith(".js")) { + return true; + } + + // use `overrides[].files` to check additional targets. + const config = + providedConfig || + configArrayFactory.getConfigArrayForFile( + filePath, + { ignoreNotFoundError: true } + ); + + return config.isAdditionalTargetPath(filePath); + } + + /** + * Iterate files which are matched by given glob patterns. + * @param {string|string[]} patternOrPatterns The glob patterns to iterate files. + * @throws {NoFilesFoundError|AllFilesIgnoredError} On an unmatched pattern. + * @returns {IterableIterator} The found files. + */ + *iterateFiles(patternOrPatterns) { + const { globInputPaths, errorOnUnmatchedPattern } = internalSlotsMap.get(this); + const patterns = Array.isArray(patternOrPatterns) + ? patternOrPatterns + : [patternOrPatterns]; + + debug("Start to iterate files: %o", patterns); + + // The set of paths to remove duplicate. + const set = new Set(); + + for (const pattern of patterns) { + let foundRegardlessOfIgnored = false; + let found = false; + + // Skip empty string. + if (!pattern) { + continue; + } + + // Iterate files of this pattern. + for (const { config, filePath, flag } of this._iterateFiles(pattern)) { + foundRegardlessOfIgnored = true; + if (flag === IGNORED_SILENTLY) { + continue; + } + found = true; + + // Remove duplicate paths while yielding paths. + if (!set.has(filePath)) { + set.add(filePath); + yield { + config, + filePath, + ignored: flag === IGNORED + }; + } + } + + // Raise an error if any files were not found. + if (errorOnUnmatchedPattern) { + if (!foundRegardlessOfIgnored) { + throw new NoFilesFoundError( + pattern, + !globInputPaths && isGlob(pattern) + ); + } + if (!found) { + throw new AllFilesIgnoredError(pattern); + } + } + } + + debug(`Complete iterating files: ${JSON.stringify(patterns)}`); + } + + /** + * Iterate files which are matched by a given glob pattern. + * @param {string} pattern The glob pattern to iterate files. + * @returns {IterableIterator} The found files. + */ + _iterateFiles(pattern) { + const { cwd, globInputPaths } = internalSlotsMap.get(this); + const absolutePath = path.resolve(cwd, pattern); + const isDot = dotfilesPattern.test(pattern); + const stat = statSafeSync(absolutePath); + + if (stat && stat.isDirectory()) { + return this._iterateFilesWithDirectory(absolutePath, isDot); + } + if (stat && stat.isFile()) { + return this._iterateFilesWithFile(absolutePath); + } + if (globInputPaths && isGlobPattern(pattern)) { + return this._iterateFilesWithGlob(absolutePath, isDot); + } + + return []; + } + + /** + * Iterate a file which is matched by a given path. + * @param {string} filePath The path to the target file. + * @returns {IterableIterator} The found files. + * @private + */ + _iterateFilesWithFile(filePath) { + debug(`File: ${filePath}`); + + const { configArrayFactory } = internalSlotsMap.get(this); + const config = configArrayFactory.getConfigArrayForFile(filePath); + const ignored = this._isIgnoredFile(filePath, { config, direct: true }); + const flag = ignored ? IGNORED : NONE; + + return [{ config, filePath, flag }]; + } + + /** + * Iterate files in a given path. + * @param {string} directoryPath The path to the target directory. + * @param {boolean} dotfiles If `true` then it doesn't skip dot files by default. + * @returns {IterableIterator} The found files. + * @private + */ + _iterateFilesWithDirectory(directoryPath, dotfiles) { + debug(`Directory: ${directoryPath}`); + + return this._iterateFilesRecursive( + directoryPath, + { dotfiles, recursive: true, selector: null } + ); + } + + /** + * Iterate files which are matched by a given glob pattern. + * @param {string} pattern The glob pattern to iterate files. + * @param {boolean} dotfiles If `true` then it doesn't skip dot files by default. + * @returns {IterableIterator} The found files. + * @private + */ + _iterateFilesWithGlob(pattern, dotfiles) { + debug(`Glob: ${pattern}`); + + const directoryPath = path.resolve(getGlobParent(pattern)); + const globPart = pattern.slice(directoryPath.length + 1); + + /* + * recursive if there are `**` or path separators in the glob part. + * Otherwise, patterns such as `src/*.js`, it doesn't need recursive. + */ + const recursive = /\*\*|\/|\\/u.test(globPart); + const selector = new Minimatch(pattern, minimatchOpts); + + debug(`recursive? ${recursive}`); + + return this._iterateFilesRecursive( + directoryPath, + { dotfiles, recursive, selector } + ); + } + + /** + * Iterate files in a given path. + * @param {string} directoryPath The path to the target directory. + * @param {Object} options The options to iterate files. + * @param {boolean} [options.dotfiles] If `true` then it doesn't skip dot files by default. + * @param {boolean} [options.recursive] If `true` then it dives into sub directories. + * @param {InstanceType} [options.selector] The matcher to choose files. + * @returns {IterableIterator} The found files. + * @private + */ + *_iterateFilesRecursive(directoryPath, options) { + debug(`Enter the directory: ${directoryPath}`); + const { configArrayFactory } = internalSlotsMap.get(this); + + /** @type {ConfigArray|null} */ + let config = null; + + // Enumerate the files of this directory. + for (const entry of readdirSafeSync(directoryPath)) { + const filePath = path.join(directoryPath, entry.name); + const fileInfo = entry.isSymbolicLink() ? statSafeSync(filePath) : entry; + + if (!fileInfo) { + continue; + } + + // Check if the file is matched. + if (fileInfo.isFile()) { + if (!config) { + config = configArrayFactory.getConfigArrayForFile( + filePath, + + /* + * We must ignore `ConfigurationNotFoundError` at this + * point because we don't know if target files exist in + * this directory. + */ + { ignoreNotFoundError: true } + ); + } + const matched = options.selector + + // Started with a glob pattern; choose by the pattern. + ? options.selector.match(filePath) + + // Started with a directory path; choose by file extensions. + : this.isTargetPath(filePath, config); + + if (matched) { + const ignored = this._isIgnoredFile(filePath, { ...options, config }); + const flag = ignored ? IGNORED_SILENTLY : NONE; + + debug(`Yield: ${entry.name}${ignored ? " but ignored" : ""}`); + yield { + config: configArrayFactory.getConfigArrayForFile(filePath), + filePath, + flag + }; + } else { + debug(`Didn't match: ${entry.name}`); + } + + // Dive into the sub directory. + } else if (options.recursive && fileInfo.isDirectory()) { + if (!config) { + config = configArrayFactory.getConfigArrayForFile( + filePath, + { ignoreNotFoundError: true } + ); + } + const ignored = this._isIgnoredFile( + filePath + path.sep, + { ...options, config } + ); + + if (!ignored) { + yield* this._iterateFilesRecursive(filePath, options); + } + } + } + + debug(`Leave the directory: ${directoryPath}`); + } + + /** + * Check if a given file should be ignored. + * @param {string} filePath The path to a file to check. + * @param {Object} options Options + * @param {ConfigArray} [options.config] The config for this file. + * @param {boolean} [options.dotfiles] If `true` then this is not ignore dot files by default. + * @param {boolean} [options.direct] If `true` then this is a direct specified file. + * @returns {boolean} `true` if the file should be ignored. + * @private + */ + _isIgnoredFile(filePath, { + config: providedConfig, + dotfiles = false, + direct = false + }) { + const { + configArrayFactory, + defaultIgnores, + ignoreFlag + } = internalSlotsMap.get(this); + + if (ignoreFlag) { + const config = + providedConfig || + configArrayFactory.getConfigArrayForFile( + filePath, + { ignoreNotFoundError: true } + ); + const ignores = + config.extractConfig(filePath).ignores || defaultIgnores; + + return ignores(filePath, dotfiles); + } + + return !direct && defaultIgnores(filePath, dotfiles); + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { FileEnumerator }; diff --git a/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js b/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js new file mode 100644 index 0000000..f19b6fc --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js @@ -0,0 +1,60 @@ +/** + * @fileoverview CheckStyle XML reporter + * @author Ian Christian Myers + */ +"use strict"; + +const xmlEscape = require("../xml-escape"); + +//------------------------------------------------------------------------------ +// Helper Functions +//------------------------------------------------------------------------------ + +/** + * Returns the severity of warning or error + * @param {Object} message message object to examine + * @returns {string} severity level + * @private + */ +function getMessageType(message) { + if (message.fatal || message.severity === 2) { + return "error"; + } + return "warning"; + +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + + let output = ""; + + output += ""; + output += ""; + + results.forEach(result => { + const messages = result.messages; + + output += ``; + + messages.forEach(message => { + output += [ + `` + ].join(" "); + }); + + output += ""; + + }); + + output += ""; + + return output; +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/compact.js b/node_modules/eslint/lib/cli-engine/formatters/compact.js new file mode 100644 index 0000000..2b540bd --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/compact.js @@ -0,0 +1,60 @@ +/** + * @fileoverview Compact reporter + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helper Functions +//------------------------------------------------------------------------------ + +/** + * Returns the severity of warning or error + * @param {Object} message message object to examine + * @returns {string} severity level + * @private + */ +function getMessageType(message) { + if (message.fatal || message.severity === 2) { + return "Error"; + } + return "Warning"; + +} + + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + + let output = "", + total = 0; + + results.forEach(result => { + + const messages = result.messages; + + total += messages.length; + + messages.forEach(message => { + + output += `${result.filePath}: `; + output += `line ${message.line || 0}`; + output += `, col ${message.column || 0}`; + output += `, ${getMessageType(message)}`; + output += ` - ${message.message}`; + output += message.ruleId ? ` (${message.ruleId})` : ""; + output += "\n"; + + }); + + }); + + if (total > 0) { + output += `\n${total} problem${total !== 1 ? "s" : ""}`; + } + + return output; +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/html.js b/node_modules/eslint/lib/cli-engine/formatters/html.js new file mode 100644 index 0000000..6e40bbe --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/html.js @@ -0,0 +1,326 @@ +/** + * @fileoverview HTML reporter + * @author Julian Laval + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const encodeHTML = (function() { + const encodeHTMLRules = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }; + const matchHTML = /[&<>"']/ug; + + return function(code) { + return code + ? code.toString().replace(matchHTML, m => encodeHTMLRules[m] || m) + : ""; + }; +}()); + +/** + * Get the final HTML document. + * @param {Object} it data for the document. + * @returns {string} HTML document. + */ +function pageTemplate(it) { + const { reportColor, reportSummary, date, results } = it; + + return ` + + + + + ESLint Report + + + + + +
+

ESLint Report

+
+ ${reportSummary} - Generated on ${date} +
+
+ + + ${results} + +
+ + + +`.trimStart(); +} + +/** + * Given a word and a count, append an s if count is not one. + * @param {string} word A word in its singular form. + * @param {int} count A number controlling whether word should be pluralized. + * @returns {string} The original word with an s on the end if count is not one. + */ +function pluralize(word, count) { + return (count === 1 ? word : `${word}s`); +} + +/** + * Renders text along the template of x problems (x errors, x warnings) + * @param {string} totalErrors Total errors + * @param {string} totalWarnings Total warnings + * @returns {string} The formatted string, pluralized where necessary + */ +function renderSummary(totalErrors, totalWarnings) { + const totalProblems = totalErrors + totalWarnings; + let renderedText = `${totalProblems} ${pluralize("problem", totalProblems)}`; + + if (totalProblems !== 0) { + renderedText += ` (${totalErrors} ${pluralize("error", totalErrors)}, ${totalWarnings} ${pluralize("warning", totalWarnings)})`; + } + return renderedText; +} + +/** + * Get the color based on whether there are errors/warnings... + * @param {string} totalErrors Total errors + * @param {string} totalWarnings Total warnings + * @returns {int} The color code (0 = green, 1 = yellow, 2 = red) + */ +function renderColor(totalErrors, totalWarnings) { + if (totalErrors !== 0) { + return 2; + } + if (totalWarnings !== 0) { + return 1; + } + return 0; +} + +/** + * Get HTML (table row) describing a single message. + * @param {Object} it data for the message. + * @returns {string} HTML (table row) describing the message. + */ +function messageTemplate(it) { + const { + parentIndex, + lineNumber, + columnNumber, + severityNumber, + severityName, + message, + ruleUrl, + ruleId + } = it; + + return ` + + ${lineNumber}:${columnNumber} + ${severityName} + ${encodeHTML(message)} + + ${ruleId ? ruleId : ""} + + +`.trimStart(); +} + +/** + * Get HTML (table rows) describing the messages. + * @param {Array} messages Messages. + * @param {int} parentIndex Index of the parent HTML row. + * @param {Object} rulesMeta Dictionary containing metadata for each rule executed by the analysis. + * @returns {string} HTML (table rows) describing the messages. + */ +function renderMessages(messages, parentIndex, rulesMeta) { + + /** + * Get HTML (table row) describing a message. + * @param {Object} message Message. + * @returns {string} HTML (table row) describing a message. + */ + return messages.map(message => { + const lineNumber = message.line || 0; + const columnNumber = message.column || 0; + let ruleUrl; + + if (rulesMeta) { + const meta = rulesMeta[message.ruleId]; + + if (meta && meta.docs && meta.docs.url) { + ruleUrl = meta.docs.url; + } + } + + return messageTemplate({ + parentIndex, + lineNumber, + columnNumber, + severityNumber: message.severity, + severityName: message.severity === 1 ? "Warning" : "Error", + message: message.message, + ruleId: message.ruleId, + ruleUrl + }); + }).join("\n"); +} + +/** + * Get HTML (table row) describing the result for a single file. + * @param {Object} it data for the file. + * @returns {string} HTML (table row) describing the result for the file. + */ +function resultTemplate(it) { + const { color, index, filePath, summary } = it; + + return ` + + + [+] ${encodeHTML(filePath)} + ${encodeHTML(summary)} + + +`.trimStart(); +} + +/** + * Render the results. + * @param {Array} results Test results. + * @param {Object} rulesMeta Dictionary containing metadata for each rule executed by the analysis. + * @returns {string} HTML string describing the results. + */ +function renderResults(results, rulesMeta) { + return results.map((result, index) => resultTemplate({ + index, + color: renderColor(result.errorCount, result.warningCount), + filePath: result.filePath, + summary: renderSummary(result.errorCount, result.warningCount) + }) + renderMessages(result.messages, index, rulesMeta)).join("\n"); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results, data) { + let totalErrors, + totalWarnings; + + const metaData = data ? data.rulesMeta : {}; + + totalErrors = 0; + totalWarnings = 0; + + // Iterate over results to get totals + results.forEach(result => { + totalErrors += result.errorCount; + totalWarnings += result.warningCount; + }); + + return pageTemplate({ + date: new Date(), + reportColor: renderColor(totalErrors, totalWarnings), + reportSummary: renderSummary(totalErrors, totalWarnings), + results: renderResults(results, metaData) + }); +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js b/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js new file mode 100644 index 0000000..0ca1cba --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js @@ -0,0 +1,41 @@ +/** + * @fileoverview JSLint XML reporter + * @author Ian Christian Myers + */ +"use strict"; + +const xmlEscape = require("../xml-escape"); + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + + let output = ""; + + output += ""; + output += ""; + + results.forEach(result => { + const messages = result.messages; + + output += ``; + + messages.forEach(message => { + output += [ + `` + ].join(" "); + }); + + output += ""; + + }); + + output += ""; + + return output; +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js b/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js new file mode 100644 index 0000000..6899471 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js @@ -0,0 +1,16 @@ +/** + * @fileoverview JSON reporter, including rules metadata + * @author Chris Meyer + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results, data) { + return JSON.stringify({ + results, + metadata: data + }); +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/json.js b/node_modules/eslint/lib/cli-engine/formatters/json.js new file mode 100644 index 0000000..82138af --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/json.js @@ -0,0 +1,13 @@ +/** + * @fileoverview JSON reporter + * @author Burak Yigit Kaya aka BYK + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + return JSON.stringify(results); +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/junit.js b/node_modules/eslint/lib/cli-engine/formatters/junit.js new file mode 100644 index 0000000..a994b4b --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/junit.js @@ -0,0 +1,82 @@ +/** + * @fileoverview jUnit Reporter + * @author Jamund Ferguson + */ +"use strict"; + +const xmlEscape = require("../xml-escape"); +const path = require("path"); + +//------------------------------------------------------------------------------ +// Helper Functions +//------------------------------------------------------------------------------ + +/** + * Returns the severity of warning or error + * @param {Object} message message object to examine + * @returns {string} severity level + * @private + */ +function getMessageType(message) { + if (message.fatal || message.severity === 2) { + return "Error"; + } + return "Warning"; + +} + +/** + * Returns a full file path without extension + * @param {string} filePath input file path + * @returns {string} file path without extension + * @private + */ +function pathWithoutExt(filePath) { + return path.join(path.dirname(filePath), path.basename(filePath, path.extname(filePath))); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + + let output = ""; + + output += "\n"; + output += "\n"; + + results.forEach(result => { + + const messages = result.messages; + const classname = pathWithoutExt(result.filePath); + + if (messages.length > 0) { + output += `\n`; + messages.forEach(message => { + const type = message.fatal ? "error" : "failure"; + + output += ``; + output += `<${type} message="${xmlEscape(message.message || "")}">`; + output += ""; + output += ``; + output += "\n"; + }); + output += "\n"; + } else { + output += `\n`; + output += `\n`; + output += "\n"; + } + + }); + + output += "\n"; + + return output; +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/stylish.js b/node_modules/eslint/lib/cli-engine/formatters/stylish.js new file mode 100644 index 0000000..a808448 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/stylish.js @@ -0,0 +1,101 @@ +/** + * @fileoverview Stylish reporter + * @author Sindre Sorhus + */ +"use strict"; + +const chalk = require("chalk"), + stripAnsi = require("strip-ansi"), + table = require("text-table"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Given a word and a count, append an s if count is not one. + * @param {string} word A word in its singular form. + * @param {int} count A number controlling whether word should be pluralized. + * @returns {string} The original word with an s on the end if count is not one. + */ +function pluralize(word, count) { + return (count === 1 ? word : `${word}s`); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + + let output = "\n", + errorCount = 0, + warningCount = 0, + fixableErrorCount = 0, + fixableWarningCount = 0, + summaryColor = "yellow"; + + results.forEach(result => { + const messages = result.messages; + + if (messages.length === 0) { + return; + } + + errorCount += result.errorCount; + warningCount += result.warningCount; + fixableErrorCount += result.fixableErrorCount; + fixableWarningCount += result.fixableWarningCount; + + output += `${chalk.underline(result.filePath)}\n`; + + output += `${table( + messages.map(message => { + let messageType; + + if (message.fatal || message.severity === 2) { + messageType = chalk.red("error"); + summaryColor = "red"; + } else { + messageType = chalk.yellow("warning"); + } + + return [ + "", + message.line || 0, + message.column || 0, + messageType, + message.message.replace(/([^ ])\.$/u, "$1"), + chalk.dim(message.ruleId || "") + ]; + }), + { + align: ["", "r", "l"], + stringLength(str) { + return stripAnsi(str).length; + } + } + ).split("\n").map(el => el.replace(/(\d+)\s+(\d+)/u, (m, p1, p2) => chalk.dim(`${p1}:${p2}`))).join("\n")}\n\n`; + }); + + const total = errorCount + warningCount; + + if (total > 0) { + output += chalk[summaryColor].bold([ + "\u2716 ", total, pluralize(" problem", total), + " (", errorCount, pluralize(" error", errorCount), ", ", + warningCount, pluralize(" warning", warningCount), ")\n" + ].join("")); + + if (fixableErrorCount > 0 || fixableWarningCount > 0) { + output += chalk[summaryColor].bold([ + " ", fixableErrorCount, pluralize(" error", fixableErrorCount), " and ", + fixableWarningCount, pluralize(" warning", fixableWarningCount), + " potentially fixable with the `--fix` option.\n" + ].join("")); + } + } + + // Resets output color, for prevent change on top level + return total > 0 ? chalk.reset(output) : ""; +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/tap.js b/node_modules/eslint/lib/cli-engine/formatters/tap.js new file mode 100644 index 0000000..e4148a3 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/tap.js @@ -0,0 +1,95 @@ +/** + * @fileoverview TAP reporter + * @author Jonathan Kingston + */ +"use strict"; + +const yaml = require("js-yaml"); + +//------------------------------------------------------------------------------ +// Helper Functions +//------------------------------------------------------------------------------ + +/** + * Returns a canonical error level string based upon the error message passed in. + * @param {Object} message Individual error message provided by eslint + * @returns {string} Error level string + */ +function getMessageType(message) { + if (message.fatal || message.severity === 2) { + return "error"; + } + return "warning"; +} + +/** + * Takes in a JavaScript object and outputs a TAP diagnostics string + * @param {Object} diagnostic JavaScript object to be embedded as YAML into output. + * @returns {string} diagnostics string with YAML embedded - TAP version 13 compliant + */ +function outputDiagnostics(diagnostic) { + const prefix = " "; + let output = `${prefix}---\n`; + + output += prefix + yaml.dump(diagnostic).split("\n").join(`\n${prefix}`); + output += "...\n"; + return output; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + let output = `TAP version 13\n1..${results.length}\n`; + + results.forEach((result, id) => { + const messages = result.messages; + let testResult = "ok"; + let diagnostics = {}; + + if (messages.length > 0) { + messages.forEach(message => { + const severity = getMessageType(message); + const diagnostic = { + message: message.message, + severity, + data: { + line: message.line || 0, + column: message.column || 0, + ruleId: message.ruleId || "" + } + }; + + // This ensures a warning message is not flagged as error + if (severity === "error") { + testResult = "not ok"; + } + + /* + * If we have multiple messages place them under a messages key + * The first error will be logged as message key + * This is to adhere to TAP 13 loosely defined specification of having a message key + */ + if ("message" in diagnostics) { + if (typeof diagnostics.messages === "undefined") { + diagnostics.messages = []; + } + diagnostics.messages.push(diagnostic); + } else { + diagnostics = diagnostic; + } + }); + } + + output += `${testResult} ${id + 1} - ${result.filePath}\n`; + + // If we have an error include diagnostics + if (messages.length > 0) { + output += outputDiagnostics(diagnostics); + } + + }); + + return output; +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/unix.js b/node_modules/eslint/lib/cli-engine/formatters/unix.js new file mode 100644 index 0000000..c6c4ebb --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/unix.js @@ -0,0 +1,58 @@ +/** + * @fileoverview unix-style formatter. + * @author oshi-shinobu + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helper Functions +//------------------------------------------------------------------------------ + +/** + * Returns a canonical error level string based upon the error message passed in. + * @param {Object} message Individual error message provided by eslint + * @returns {string} Error level string + */ +function getMessageType(message) { + if (message.fatal || message.severity === 2) { + return "Error"; + } + return "Warning"; + +} + + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + + let output = "", + total = 0; + + results.forEach(result => { + + const messages = result.messages; + + total += messages.length; + + messages.forEach(message => { + + output += `${result.filePath}:`; + output += `${message.line || 0}:`; + output += `${message.column || 0}:`; + output += ` ${message.message} `; + output += `[${getMessageType(message)}${message.ruleId ? `/${message.ruleId}` : ""}]`; + output += "\n"; + + }); + + }); + + if (total > 0) { + output += `\n${total} problem${total !== 1 ? "s" : ""}`; + } + + return output; +}; diff --git a/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js b/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js new file mode 100644 index 0000000..0d49431 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js @@ -0,0 +1,63 @@ +/** + * @fileoverview Visual Studio compatible formatter + * @author Ronald Pijnacker + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helper Functions +//------------------------------------------------------------------------------ + +/** + * Returns the severity of warning or error + * @param {Object} message message object to examine + * @returns {string} severity level + * @private + */ +function getMessageType(message) { + if (message.fatal || message.severity === 2) { + return "error"; + } + return "warning"; + +} + + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = function(results) { + + let output = "", + total = 0; + + results.forEach(result => { + + const messages = result.messages; + + total += messages.length; + + messages.forEach(message => { + + output += result.filePath; + output += `(${message.line || 0}`; + output += message.column ? `,${message.column}` : ""; + output += `): ${getMessageType(message)}`; + output += message.ruleId ? ` ${message.ruleId}` : ""; + output += ` : ${message.message}`; + output += "\n"; + + }); + + }); + + if (total === 0) { + output += "no problems"; + } else { + output += `\n${total} problem${total !== 1 ? "s" : ""}`; + } + + return output; +}; diff --git a/node_modules/eslint/lib/cli-engine/hash.js b/node_modules/eslint/lib/cli-engine/hash.js new file mode 100644 index 0000000..8e46773 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/hash.js @@ -0,0 +1,35 @@ +/** + * @fileoverview Defining the hashing function in one place. + * @author Michael Ficarra + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const murmur = require("imurmurhash"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +/** + * hash the given string + * @param {string} str the string to hash + * @returns {string} the hash + */ +function hash(str) { + return murmur(str).result().toString(36); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = hash; diff --git a/node_modules/eslint/lib/cli-engine/index.js b/node_modules/eslint/lib/cli-engine/index.js new file mode 100644 index 0000000..52e45a6 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/index.js @@ -0,0 +1,7 @@ +"use strict"; + +const { CLIEngine } = require("./cli-engine"); + +module.exports = { + CLIEngine +}; diff --git a/node_modules/eslint/lib/cli-engine/lint-result-cache.js b/node_modules/eslint/lib/cli-engine/lint-result-cache.js new file mode 100644 index 0000000..e36eb74 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/lint-result-cache.js @@ -0,0 +1,191 @@ +/** + * @fileoverview Utility for caching lint results. + * @author Kevin Partington + */ +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const assert = require("assert"); +const fs = require("fs"); +const fileEntryCache = require("file-entry-cache"); +const stringify = require("json-stable-stringify-without-jsonify"); +const pkg = require("../../package.json"); +const hash = require("./hash"); + +const debug = require("debug")("eslint:lint-result-cache"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const configHashCache = new WeakMap(); +const nodeVersion = process && process.version; + +const validCacheStrategies = ["metadata", "content"]; +const invalidCacheStrategyErrorMessage = `Cache strategy must be one of: ${validCacheStrategies + .map(strategy => `"${strategy}"`) + .join(", ")}`; + +/** + * Tests whether a provided cacheStrategy is valid + * @param {string} cacheStrategy The cache strategy to use + * @returns {boolean} true if `cacheStrategy` is one of `validCacheStrategies`; false otherwise + */ +function isValidCacheStrategy(cacheStrategy) { + return ( + validCacheStrategies.includes(cacheStrategy) + ); +} + +/** + * Calculates the hash of the config + * @param {ConfigArray} config The config. + * @returns {string} The hash of the config + */ +function hashOfConfigFor(config) { + if (!configHashCache.has(config)) { + configHashCache.set(config, hash(`${pkg.version}_${nodeVersion}_${stringify(config)}`)); + } + + return configHashCache.get(config); +} + +//----------------------------------------------------------------------------- +// Public Interface +//----------------------------------------------------------------------------- + +/** + * Lint result cache. This wraps around the file-entry-cache module, + * transparently removing properties that are difficult or expensive to + * serialize and adding them back in on retrieval. + */ +class LintResultCache { + + /** + * Creates a new LintResultCache instance. + * @param {string} cacheFileLocation The cache file location. + * @param {"metadata" | "content"} cacheStrategy The cache strategy to use. + */ + constructor(cacheFileLocation, cacheStrategy) { + assert(cacheFileLocation, "Cache file location is required"); + assert(cacheStrategy, "Cache strategy is required"); + assert( + isValidCacheStrategy(cacheStrategy), + invalidCacheStrategyErrorMessage + ); + + debug(`Caching results to ${cacheFileLocation}`); + + const useChecksum = cacheStrategy === "content"; + + debug( + `Using "${cacheStrategy}" strategy to detect changes` + ); + + this.fileEntryCache = fileEntryCache.create( + cacheFileLocation, + void 0, + useChecksum + ); + this.cacheFileLocation = cacheFileLocation; + } + + /** + * Retrieve cached lint results for a given file path, if present in the + * cache. If the file is present and has not been changed, rebuild any + * missing result information. + * @param {string} filePath The file for which to retrieve lint results. + * @param {ConfigArray} config The config of the file. + * @returns {Object|null} The rebuilt lint results, or null if the file is + * changed or not in the filesystem. + */ + getCachedLintResults(filePath, config) { + + /* + * Cached lint results are valid if and only if: + * 1. The file is present in the filesystem + * 2. The file has not changed since the time it was previously linted + * 3. The ESLint configuration has not changed since the time the file + * was previously linted + * If any of these are not true, we will not reuse the lint results. + */ + const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath); + const hashOfConfig = hashOfConfigFor(config); + const changed = + fileDescriptor.changed || + fileDescriptor.meta.hashOfConfig !== hashOfConfig; + + if (fileDescriptor.notFound) { + debug(`File not found on the file system: ${filePath}`); + return null; + } + + if (changed) { + debug(`Cache entry not found or no longer valid: ${filePath}`); + return null; + } + + // If source is present but null, need to reread the file from the filesystem. + if ( + fileDescriptor.meta.results && + fileDescriptor.meta.results.source === null + ) { + debug(`Rereading cached result source from filesystem: ${filePath}`); + fileDescriptor.meta.results.source = fs.readFileSync(filePath, "utf-8"); + } + + return fileDescriptor.meta.results; + } + + /** + * Set the cached lint results for a given file path, after removing any + * information that will be both unnecessary and difficult to serialize. + * Avoids caching results with an "output" property (meaning fixes were + * applied), to prevent potentially incorrect results if fixes are not + * written to disk. + * @param {string} filePath The file for which to set lint results. + * @param {ConfigArray} config The config of the file. + * @param {Object} result The lint result to be set for the file. + * @returns {void} + */ + setCachedLintResults(filePath, config, result) { + if (result && Object.prototype.hasOwnProperty.call(result, "output")) { + return; + } + + const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath); + + if (fileDescriptor && !fileDescriptor.notFound) { + debug(`Updating cached result: ${filePath}`); + + // Serialize the result, except that we want to remove the file source if present. + const resultToSerialize = Object.assign({}, result); + + /* + * Set result.source to null. + * In `getCachedLintResults`, if source is explicitly null, we will + * read the file from the filesystem to set the value again. + */ + if (Object.prototype.hasOwnProperty.call(resultToSerialize, "source")) { + resultToSerialize.source = null; + } + + fileDescriptor.meta.results = resultToSerialize; + fileDescriptor.meta.hashOfConfig = hashOfConfigFor(config); + } + } + + /** + * Persists the in-memory cache to disk. + * @returns {void} + */ + reconcile() { + debug(`Persisting cached results: ${this.cacheFileLocation}`); + this.fileEntryCache.reconcile(); + } +} + +module.exports = LintResultCache; diff --git a/node_modules/eslint/lib/cli-engine/load-rules.js b/node_modules/eslint/lib/cli-engine/load-rules.js new file mode 100644 index 0000000..81bab63 --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/load-rules.js @@ -0,0 +1,46 @@ +/** + * @fileoverview Module for loading rules from files and directories. + * @author Michael Ficarra + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const fs = require("fs"), + path = require("path"); + +const rulesDirCache = {}; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Load all rule modules from specified directory. + * @param {string} relativeRulesDir Path to rules directory, may be relative. + * @param {string} cwd Current working directory + * @returns {Object} Loaded rule modules. + */ +module.exports = function(relativeRulesDir, cwd) { + const rulesDir = path.resolve(cwd, relativeRulesDir); + + // cache will help performance as IO operation are expensive + if (rulesDirCache[rulesDir]) { + return rulesDirCache[rulesDir]; + } + + const rules = Object.create(null); + + fs.readdirSync(rulesDir).forEach(file => { + if (path.extname(file) !== ".js") { + return; + } + rules[file.slice(0, -3)] = require(path.join(rulesDir, file)); + }); + rulesDirCache[rulesDir] = rules; + + return rules; +}; diff --git a/node_modules/eslint/lib/cli-engine/xml-escape.js b/node_modules/eslint/lib/cli-engine/xml-escape.js new file mode 100644 index 0000000..2e52dba --- /dev/null +++ b/node_modules/eslint/lib/cli-engine/xml-escape.js @@ -0,0 +1,34 @@ +/** + * @fileoverview XML character escaper + * @author George Chung + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Returns the escaped value for a character + * @param {string} s string to examine + * @returns {string} severity level + * @private + */ +module.exports = function(s) { + return (`${s}`).replace(/[<>&"'\x00-\x1F\x7F\u0080-\uFFFF]/gu, c => { // eslint-disable-line no-control-regex -- Converting controls to entities + switch (c) { + case "<": + return "<"; + case ">": + return ">"; + case "&": + return "&"; + case "\"": + return """; + case "'": + return "'"; + default: + return `&#${c.charCodeAt(0)};`; + } + }); +}; diff --git a/node_modules/eslint/lib/cli.js b/node_modules/eslint/lib/cli.js new file mode 100644 index 0000000..2fca65c --- /dev/null +++ b/node_modules/eslint/lib/cli.js @@ -0,0 +1,438 @@ +/** + * @fileoverview Main CLI object. + * @author Nicholas C. Zakas + */ + +"use strict"; + +/* + * NOTE: The CLI object should *not* call process.exit() directly. It should only return + * exit codes. This allows other programs to use the CLI object and still control + * when the program exits. + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const fs = require("fs"), + path = require("path"), + { promisify } = require("util"), + { ESLint } = require("./eslint"), + { FlatESLint } = require("./eslint/flat-eslint"), + createCLIOptions = require("./options"), + log = require("./shared/logging"), + RuntimeInfo = require("./shared/runtime-info"); +const { Legacy: { naming } } = require("@eslint/eslintrc"); +const { findFlatConfigFile } = require("./eslint/flat-eslint"); +const { gitignoreToMinimatch } = require("@humanwhocodes/gitignore-to-minimatch"); +const { ModuleImporter } = require("@humanwhocodes/module-importer"); + +const debug = require("debug")("eslint:cli"); + +//------------------------------------------------------------------------------ +// Types +//------------------------------------------------------------------------------ + +/** @typedef {import("./eslint/eslint").ESLintOptions} ESLintOptions */ +/** @typedef {import("./eslint/eslint").LintMessage} LintMessage */ +/** @typedef {import("./eslint/eslint").LintResult} LintResult */ +/** @typedef {import("./options").ParsedCLIOptions} ParsedCLIOptions */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const mkdir = promisify(fs.mkdir); +const stat = promisify(fs.stat); +const writeFile = promisify(fs.writeFile); + +/** + * Predicate function for whether or not to apply fixes in quiet mode. + * If a message is a warning, do not apply a fix. + * @param {LintMessage} message The lint result. + * @returns {boolean} True if the lint message is an error (and thus should be + * autofixed), false otherwise. + */ +function quietFixPredicate(message) { + return message.severity === 2; +} + +/** + * Translates the CLI options into the options expected by the ESLint constructor. + * @param {ParsedCLIOptions} cliOptions The CLI options to translate. + * @param {"flat"|"eslintrc"} [configType="eslintrc"] The format of the + * config to generate. + * @returns {Promise} The options object for the ESLint constructor. + * @private + */ +async function translateOptions({ + cache, + cacheFile, + cacheLocation, + cacheStrategy, + config, + configLookup, + env, + errorOnUnmatchedPattern, + eslintrc, + ext, + fix, + fixDryRun, + fixType, + global, + ignore, + ignorePath, + ignorePattern, + inlineConfig, + parser, + parserOptions, + plugin, + quiet, + reportUnusedDisableDirectives, + resolvePluginsRelativeTo, + rule, + rulesdir +}, configType) { + + let overrideConfig, overrideConfigFile; + const importer = new ModuleImporter(); + + if (configType === "flat") { + overrideConfigFile = (typeof config === "string") ? config : !configLookup; + if (overrideConfigFile === false) { + overrideConfigFile = void 0; + } + + let globals = {}; + + if (global) { + globals = global.reduce((obj, name) => { + if (name.endsWith(":true")) { + obj[name.slice(0, -5)] = "writable"; + } else { + obj[name] = "readonly"; + } + return obj; + }, globals); + } + + overrideConfig = [{ + languageOptions: { + globals, + parserOptions: parserOptions || {} + }, + rules: rule ? rule : {} + }]; + + if (parser) { + overrideConfig[0].languageOptions.parser = await importer.import(parser); + } + + if (plugin) { + const plugins = {}; + + for (const pluginName of plugin) { + + const shortName = naming.getShorthandName(pluginName, "eslint-plugin"); + const longName = naming.normalizePackageName(pluginName, "eslint-plugin"); + + plugins[shortName] = await importer.import(longName); + } + + overrideConfig[0].plugins = plugins; + } + + if (ignorePattern) { + overrideConfig.push({ + ignores: ignorePattern.map(gitignoreToMinimatch) + }); + } + + } else { + overrideConfigFile = config; + + overrideConfig = { + env: env && env.reduce((obj, name) => { + obj[name] = true; + return obj; + }, {}), + globals: global && global.reduce((obj, name) => { + if (name.endsWith(":true")) { + obj[name.slice(0, -5)] = "writable"; + } else { + obj[name] = "readonly"; + } + return obj; + }, {}), + ignorePatterns: ignorePattern, + parser, + parserOptions, + plugins: plugin, + rules: rule + }; + } + + const options = { + allowInlineConfig: inlineConfig, + cache, + cacheLocation: cacheLocation || cacheFile, + cacheStrategy, + errorOnUnmatchedPattern, + fix: (fix || fixDryRun) && (quiet ? quietFixPredicate : true), + fixTypes: fixType, + ignore, + ignorePath, + overrideConfig, + overrideConfigFile, + reportUnusedDisableDirectives: reportUnusedDisableDirectives ? "error" : void 0 + }; + + if (configType !== "flat") { + options.resolvePluginsRelativeTo = resolvePluginsRelativeTo; + options.rulePaths = rulesdir; + options.useEslintrc = eslintrc; + options.extensions = ext; + } + + return options; +} + +/** + * Count error messages. + * @param {LintResult[]} results The lint results. + * @returns {{errorCount:number;warningCount:number}} The number of error messages. + */ +function countErrors(results) { + let errorCount = 0; + let fatalErrorCount = 0; + let warningCount = 0; + + for (const result of results) { + errorCount += result.errorCount; + fatalErrorCount += result.fatalErrorCount; + warningCount += result.warningCount; + } + + return { errorCount, fatalErrorCount, warningCount }; +} + +/** + * Check if a given file path is a directory or not. + * @param {string} filePath The path to a file to check. + * @returns {Promise} `true` if the given path is a directory. + */ +async function isDirectory(filePath) { + try { + return (await stat(filePath)).isDirectory(); + } catch (error) { + if (error.code === "ENOENT" || error.code === "ENOTDIR") { + return false; + } + throw error; + } +} + +/** + * Outputs the results of the linting. + * @param {ESLint} engine The ESLint instance to use. + * @param {LintResult[]} results The results to print. + * @param {string} format The name of the formatter to use or the path to the formatter. + * @param {string} outputFile The path for the output file. + * @returns {Promise} True if the printing succeeds, false if not. + * @private + */ +async function printResults(engine, results, format, outputFile) { + let formatter; + + try { + formatter = await engine.loadFormatter(format); + } catch (e) { + log.error(e.message); + return false; + } + + const output = await formatter.format(results); + + if (output) { + if (outputFile) { + const filePath = path.resolve(process.cwd(), outputFile); + + if (await isDirectory(filePath)) { + log.error("Cannot write to output file path, it is a directory: %s", outputFile); + return false; + } + + try { + await mkdir(path.dirname(filePath), { recursive: true }); + await writeFile(filePath, output); + } catch (ex) { + log.error("There was a problem writing the output file:\n%s", ex); + return false; + } + } else { + log.info(output); + } + } + + return true; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Encapsulates all CLI behavior for eslint. Makes it easier to test as well as + * for other Node.js programs to effectively run the CLI. + */ +const cli = { + + /** + * Executes the CLI based on an array of arguments that is passed in. + * @param {string|Array|Object} args The arguments to process. + * @param {string} [text] The text to lint (used for TTY). + * @param {boolean} [allowFlatConfig] Whether or not to allow flat config. + * @returns {Promise} The exit code for the operation. + */ + async execute(args, text, allowFlatConfig) { + if (Array.isArray(args)) { + debug("CLI args: %o", args.slice(2)); + } + + /* + * Before doing anything, we need to see if we are using a + * flat config file. If so, then we need to change the way command + * line args are parsed. This is temporary, and when we fully + * switch to flat config we can remove this logic. + */ + + const usingFlatConfig = allowFlatConfig && !!(await findFlatConfigFile(process.cwd())); + + debug("Using flat config?", usingFlatConfig); + + const CLIOptions = createCLIOptions(usingFlatConfig); + + /** @type {ParsedCLIOptions} */ + let options; + + try { + options = CLIOptions.parse(args); + } catch (error) { + debug("Error parsing CLI options:", error.message); + log.error(error.message); + return 2; + } + + const files = options._; + const useStdin = typeof text === "string"; + + if (options.help) { + log.info(CLIOptions.generateHelp()); + return 0; + } + if (options.version) { + log.info(RuntimeInfo.version()); + return 0; + } + if (options.envInfo) { + try { + log.info(RuntimeInfo.environment()); + return 0; + } catch (err) { + debug("Error retrieving environment info"); + log.error(err.message); + return 2; + } + } + + if (options.printConfig) { + if (files.length) { + log.error("The --print-config option must be used with exactly one file name."); + return 2; + } + if (useStdin) { + log.error("The --print-config option is not available for piped-in code."); + return 2; + } + + const engine = usingFlatConfig + ? new FlatESLint(await translateOptions(options, "flat")) + : new ESLint(await translateOptions(options)); + const fileConfig = + await engine.calculateConfigForFile(options.printConfig); + + log.info(JSON.stringify(fileConfig, null, " ")); + return 0; + } + + debug(`Running on ${useStdin ? "text" : "files"}`); + + if (options.fix && options.fixDryRun) { + log.error("The --fix option and the --fix-dry-run option cannot be used together."); + return 2; + } + if (useStdin && options.fix) { + log.error("The --fix option is not available for piped-in code; use --fix-dry-run instead."); + return 2; + } + if (options.fixType && !options.fix && !options.fixDryRun) { + log.error("The --fix-type option requires either --fix or --fix-dry-run."); + return 2; + } + + const ActiveESLint = usingFlatConfig ? FlatESLint : ESLint; + + const engine = new ActiveESLint(await translateOptions(options, usingFlatConfig ? "flat" : "eslintrc")); + let results; + + if (useStdin) { + results = await engine.lintText(text, { + filePath: options.stdinFilename, + warnIgnored: true + }); + } else { + results = await engine.lintFiles(files); + } + + if (options.fix) { + debug("Fix mode enabled - applying fixes"); + await ActiveESLint.outputFixes(results); + } + + let resultsToPrint = results; + + if (options.quiet) { + debug("Quiet mode enabled - filtering out warnings"); + resultsToPrint = ActiveESLint.getErrorResults(resultsToPrint); + } + + if (await printResults(engine, resultsToPrint, options.format, options.outputFile)) { + + // Errors and warnings from the original unfiltered results should determine the exit code + const { errorCount, fatalErrorCount, warningCount } = countErrors(results); + + const tooManyWarnings = + options.maxWarnings >= 0 && warningCount > options.maxWarnings; + const shouldExitForFatalErrors = + options.exitOnFatalError && fatalErrorCount > 0; + + if (!errorCount && tooManyWarnings) { + log.error( + "ESLint found too many warnings (maximum: %s).", + options.maxWarnings + ); + } + + if (shouldExitForFatalErrors) { + return 2; + } + + return (errorCount || tooManyWarnings) ? 1 : 0; + } + + return 2; + } +}; + +module.exports = cli; diff --git a/node_modules/eslint/lib/config/default-config.js b/node_modules/eslint/lib/config/default-config.js new file mode 100644 index 0000000..c48551a --- /dev/null +++ b/node_modules/eslint/lib/config/default-config.js @@ -0,0 +1,70 @@ +/** + * @fileoverview Default configuration + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const Rules = require("../rules"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +exports.defaultConfig = [ + { + plugins: { + "@": { + parsers: { + espree: require("espree") + }, + + /* + * Because we try to delay loading rules until absolutely + * necessary, a proxy allows us to hook into the lazy-loading + * aspect of the rules map while still keeping all of the + * relevant configuration inside of the config array. + */ + rules: new Proxy({}, { + get(target, property) { + return Rules.get(property); + }, + + has(target, property) { + return Rules.has(property); + } + }) + } + }, + languageOptions: { + sourceType: "module", + ecmaVersion: "latest", + parser: "@/espree", + parserOptions: {} + } + }, + + // default ignores are listed here + { + ignores: [ + "**/node_modules/**", + ".git/**" + ] + }, + + // intentionally empty config to ensure these files are globbed by default + { + files: ["**/*.js", "**/*.mjs"] + }, + { + files: ["**/*.cjs"], + languageOptions: { + sourceType: "commonjs", + ecmaVersion: "latest" + } + } +]; diff --git a/node_modules/eslint/lib/config/flat-config-array.js b/node_modules/eslint/lib/config/flat-config-array.js new file mode 100644 index 0000000..ad8986f --- /dev/null +++ b/node_modules/eslint/lib/config/flat-config-array.js @@ -0,0 +1,214 @@ +/** + * @fileoverview Flat Config Array + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const { ConfigArray, ConfigArraySymbol } = require("@humanwhocodes/config-array"); +const { flatConfigSchema } = require("./flat-config-schema"); +const { RuleValidator } = require("./rule-validator"); +const { defaultConfig } = require("./default-config"); +const recommendedConfig = require("../../conf/eslint-recommended"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const ruleValidator = new RuleValidator(); + +/** + * Splits a plugin identifier in the form a/b/c into two parts: a/b and c. + * @param {string} identifier The identifier to parse. + * @returns {{objectName: string, pluginName: string}} The parts of the plugin + * name. + */ +function splitPluginIdentifier(identifier) { + const parts = identifier.split("/"); + + return { + objectName: parts.pop(), + pluginName: parts.join("/") + }; +} + +const originalBaseConfig = Symbol("originalBaseConfig"); + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * Represents an array containing configuration information for ESLint. + */ +class FlatConfigArray extends ConfigArray { + + /** + * Creates a new instance. + * @param {*[]} configs An array of configuration information. + * @param {{basePath: string, shouldIgnore: boolean, baseConfig: FlatConfig}} options The options + * to use for the config array instance. + */ + constructor(configs, { + basePath, + shouldIgnore = true, + baseConfig = defaultConfig + } = {}) { + super(configs, { + basePath, + schema: flatConfigSchema + }); + + if (baseConfig[Symbol.iterator]) { + this.unshift(...baseConfig); + } else { + this.unshift(baseConfig); + } + + /** + * The baes config used to build the config array. + * @type {Array} + */ + this[originalBaseConfig] = baseConfig; + Object.defineProperty(this, originalBaseConfig, { writable: false }); + + /** + * Determines if `ignores` fields should be honored. + * If true, then all `ignores` fields are honored. + * if false, then only `ignores` fields in the baseConfig are honored. + * @type {boolean} + */ + this.shouldIgnore = shouldIgnore; + Object.defineProperty(this, "shouldIgnore", { writable: false }); + } + + /* eslint-disable class-methods-use-this -- Desired as instance method */ + /** + * Replaces a config with another config to allow us to put strings + * in the config array that will be replaced by objects before + * normalization. + * @param {Object} config The config to preprocess. + * @returns {Object} The preprocessed config. + */ + [ConfigArraySymbol.preprocessConfig](config) { + if (config === "eslint:recommended") { + return recommendedConfig; + } + + if (config === "eslint:all") { + + /* + * Load `eslint-all.js` here instead of at the top level to avoid loading all rule modules + * when it isn't necessary. `eslint-all.js` reads `meta` of rule objects to filter out deprecated ones, + * so requiring `eslint-all.js` module loads all rule modules as a consequence. + */ + return require("../../conf/eslint-all"); + } + + /* + * If `shouldIgnore` is false, we remove any ignore patterns specified + * in the config so long as it's not a default config and it doesn't + * have a `files` entry. + */ + if ( + !this.shouldIgnore && + !this[originalBaseConfig].includes(config) && + config.ignores && + !config.files + ) { + /* eslint-disable-next-line no-unused-vars -- need to strip off other keys */ + const { ignores, ...otherKeys } = config; + + return otherKeys; + } + + return config; + } + + /** + * Finalizes the config by replacing plugin references with their objects + * and validating rule option schemas. + * @param {Object} config The config to finalize. + * @returns {Object} The finalized config. + * @throws {TypeError} If the config is invalid. + */ + [ConfigArraySymbol.finalizeConfig](config) { + + const { plugins, languageOptions, processor } = config; + let parserName, processorName; + let invalidParser = false, + invalidProcessor = false; + + // Check parser value + if (languageOptions && languageOptions.parser) { + if (typeof languageOptions.parser === "string") { + const { pluginName, objectName: localParserName } = splitPluginIdentifier(languageOptions.parser); + + parserName = languageOptions.parser; + + if (!plugins || !plugins[pluginName] || !plugins[pluginName].parsers || !plugins[pluginName].parsers[localParserName]) { + throw new TypeError(`Key "parser": Could not find "${localParserName}" in plugin "${pluginName}".`); + } + + languageOptions.parser = plugins[pluginName].parsers[localParserName]; + } else { + invalidParser = true; + } + } + + // Check processor value + if (processor) { + if (typeof processor === "string") { + const { pluginName, objectName: localProcessorName } = splitPluginIdentifier(processor); + + processorName = processor; + + if (!plugins || !plugins[pluginName] || !plugins[pluginName].processors || !plugins[pluginName].processors[localProcessorName]) { + throw new TypeError(`Key "processor": Could not find "${localProcessorName}" in plugin "${pluginName}".`); + } + + config.processor = plugins[pluginName].processors[localProcessorName]; + } else { + invalidProcessor = true; + } + } + + ruleValidator.validate(config); + + // apply special logic for serialization into JSON + /* eslint-disable object-shorthand -- shorthand would change "this" value */ + Object.defineProperty(config, "toJSON", { + value: function() { + + if (invalidParser) { + throw new Error("Caching is not supported when parser is an object."); + } + + if (invalidProcessor) { + throw new Error("Caching is not supported when processor is an object."); + } + + return { + ...this, + plugins: Object.keys(plugins), + languageOptions: { + ...languageOptions, + parser: parserName + }, + processor: processorName + }; + } + }); + /* eslint-enable object-shorthand -- ok to enable now */ + + return config; + } + /* eslint-enable class-methods-use-this -- Desired as instance method */ + +} + +exports.FlatConfigArray = FlatConfigArray; diff --git a/node_modules/eslint/lib/config/flat-config-helpers.js b/node_modules/eslint/lib/config/flat-config-helpers.js new file mode 100644 index 0000000..e00c564 --- /dev/null +++ b/node_modules/eslint/lib/config/flat-config-helpers.js @@ -0,0 +1,111 @@ +/** + * @fileoverview Shared functions to work with configs. + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Functions +//----------------------------------------------------------------------------- + +/** + * Parses a ruleId into its plugin and rule parts. + * @param {string} ruleId The rule ID to parse. + * @returns {{pluginName:string,ruleName:string}} The plugin and rule + * parts of the ruleId; + */ +function parseRuleId(ruleId) { + let pluginName, ruleName; + + // distinguish between core rules and plugin rules + if (ruleId.includes("/")) { + + // mimic scoped npm packages + if (ruleId.startsWith("@")) { + pluginName = ruleId.slice(0, ruleId.lastIndexOf("/")); + } else { + pluginName = ruleId.slice(0, ruleId.indexOf("/")); + } + + ruleName = ruleId.slice(pluginName.length + 1); + } else { + pluginName = "@"; + ruleName = ruleId; + } + + return { + pluginName, + ruleName + }; +} + +/** + * Retrieves a rule instance from a given config based on the ruleId. + * @param {string} ruleId The rule ID to look for. + * @param {FlatConfig} config The config to search. + * @returns {import("../shared/types").Rule|undefined} The rule if found + * or undefined if not. + */ +function getRuleFromConfig(ruleId, config) { + + const { pluginName, ruleName } = parseRuleId(ruleId); + + const plugin = config.plugins && config.plugins[pluginName]; + let rule = plugin && plugin.rules && plugin.rules[ruleName]; + + + // normalize function rules into objects + if (rule && typeof rule === "function") { + rule = { + create: rule + }; + } + + return rule; +} + +/** + * Gets a complete options schema for a rule. + * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object + * @returns {Object} JSON Schema for the rule's options. + */ +function getRuleOptionsSchema(rule) { + + if (!rule) { + return null; + } + + const schema = rule.schema || rule.meta && rule.meta.schema; + + if (Array.isArray(schema)) { + if (schema.length) { + return { + type: "array", + items: schema, + minItems: 0, + maxItems: schema.length + }; + } + return { + type: "array", + minItems: 0, + maxItems: 0 + }; + + } + + // Given a full schema, leave it alone + return schema || null; +} + + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +module.exports = { + parseRuleId, + getRuleFromConfig, + getRuleOptionsSchema +}; diff --git a/node_modules/eslint/lib/config/flat-config-schema.js b/node_modules/eslint/lib/config/flat-config-schema.js new file mode 100644 index 0000000..cb8e796 --- /dev/null +++ b/node_modules/eslint/lib/config/flat-config-schema.js @@ -0,0 +1,457 @@ +/** + * @fileoverview Flat config schema + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Type Definitions +//----------------------------------------------------------------------------- + +/** + * @typedef ObjectPropertySchema + * @property {Function|string} merge The function or name of the function to call + * to merge multiple objects with this property. + * @property {Function|string} validate The function or name of the function to call + * to validate the value of this property. + */ + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const ruleSeverities = new Map([ + [0, 0], ["off", 0], + [1, 1], ["warn", 1], + [2, 2], ["error", 2] +]); + +const globalVariablesValues = new Set([ + true, "true", "writable", "writeable", + false, "false", "readonly", "readable", null, + "off" +]); + +/** + * Check if a value is a non-null object. + * @param {any} value The value to check. + * @returns {boolean} `true` if the value is a non-null object. + */ +function isNonNullObject(value) { + return typeof value === "object" && value !== null; +} + +/** + * Check if a value is undefined. + * @param {any} value The value to check. + * @returns {boolean} `true` if the value is undefined. + */ +function isUndefined(value) { + return typeof value === "undefined"; +} + +/** + * Deeply merges two objects. + * @param {Object} first The base object. + * @param {Object} second The overrides object. + * @returns {Object} An object with properties from both first and second. + */ +function deepMerge(first = {}, second = {}) { + + /* + * If the second value is an array, just return it. We don't merge + * arrays because order matters and we can't know the correct order. + */ + if (Array.isArray(second)) { + return second; + } + + /* + * First create a result object where properties from the second object + * overwrite properties from the first. This sets up a baseline to use + * later rather than needing to inspect and change every property + * individually. + */ + const result = { + ...first, + ...second + }; + + for (const key of Object.keys(second)) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + const firstValue = first[key]; + const secondValue = second[key]; + + if (isNonNullObject(firstValue)) { + result[key] = deepMerge(firstValue, secondValue); + } else if (isUndefined(firstValue)) { + if (isNonNullObject(secondValue)) { + result[key] = deepMerge( + Array.isArray(secondValue) ? [] : {}, + secondValue + ); + } else if (!isUndefined(secondValue)) { + result[key] = secondValue; + } + } + } + + return result; + +} + +/** + * Normalizes the rule options config for a given rule by ensuring that + * it is an array and that the first item is 0, 1, or 2. + * @param {Array|string|number} ruleOptions The rule options config. + * @returns {Array} An array of rule options. + */ +function normalizeRuleOptions(ruleOptions) { + + const finalOptions = Array.isArray(ruleOptions) + ? ruleOptions.slice(0) + : [ruleOptions]; + + finalOptions[0] = ruleSeverities.get(finalOptions[0]); + return finalOptions; +} + +//----------------------------------------------------------------------------- +// Assertions +//----------------------------------------------------------------------------- + +/** + * Validates that a value is a valid rule options entry. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't a valid rule options. + */ +function assertIsRuleOptions(value) { + + if (typeof value !== "string" && typeof value !== "number" && !Array.isArray(value)) { + throw new TypeError("Expected a string, number, or array."); + } +} + +/** + * Validates that a value is valid rule severity. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't a valid rule severity. + */ +function assertIsRuleSeverity(value) { + const severity = typeof value === "string" + ? ruleSeverities.get(value.toLowerCase()) + : ruleSeverities.get(value); + + if (typeof severity === "undefined") { + throw new TypeError("Expected severity of \"off\", 0, \"warn\", 1, \"error\", or 2."); + } +} + +/** + * Validates that a given string is the form pluginName/objectName. + * @param {string} value The string to check. + * @returns {void} + * @throws {TypeError} If the string isn't in the correct format. + */ +function assertIsPluginMemberName(value) { + if (!/[@a-z0-9-_$]+(?:\/(?:[a-z0-9-_$]+))+$/iu.test(value)) { + throw new TypeError(`Expected string in the form "pluginName/objectName" but found "${value}".`); + } +} + +/** + * Validates that a value is an object. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't an object. + */ +function assertIsObject(value) { + if (!isNonNullObject(value)) { + throw new TypeError("Expected an object."); + } +} + +/** + * Validates that a value is an object or a string. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't an object or a string. + */ +function assertIsObjectOrString(value) { + if ((!value || typeof value !== "object") && typeof value !== "string") { + throw new TypeError("Expected an object or string."); + } +} + +//----------------------------------------------------------------------------- +// Low-Level Schemas +//----------------------------------------------------------------------------- + +/** @type {ObjectPropertySchema} */ +const booleanSchema = { + merge: "replace", + validate: "boolean" +}; + +/** @type {ObjectPropertySchema} */ +const deepObjectAssignSchema = { + merge(first = {}, second = {}) { + return deepMerge(first, second); + }, + validate: "object" +}; + +//----------------------------------------------------------------------------- +// High-Level Schemas +//----------------------------------------------------------------------------- + +/** @type {ObjectPropertySchema} */ +const globalsSchema = { + merge: "assign", + validate(value) { + + assertIsObject(value); + + for (const key of Object.keys(value)) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + if (key !== key.trim()) { + throw new TypeError(`Global "${key}" has leading or trailing whitespace.`); + } + + if (!globalVariablesValues.has(value[key])) { + throw new TypeError(`Key "${key}": Expected "readonly", "writable", or "off".`); + } + } + } +}; + +/** @type {ObjectPropertySchema} */ +const parserSchema = { + merge: "replace", + validate(value) { + assertIsObjectOrString(value); + + if (typeof value === "object" && typeof value.parse !== "function" && typeof value.parseForESLint !== "function") { + throw new TypeError("Expected object to have a parse() or parseForESLint() method."); + } + + if (typeof value === "string") { + assertIsPluginMemberName(value); + } + } +}; + +/** @type {ObjectPropertySchema} */ +const pluginsSchema = { + merge(first = {}, second = {}) { + const keys = new Set([...Object.keys(first), ...Object.keys(second)]); + const result = {}; + + // manually validate that plugins are not redefined + for (const key of keys) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + if (key in first && key in second && first[key] !== second[key]) { + throw new TypeError(`Cannot redefine plugin "${key}".`); + } + + result[key] = second[key] || first[key]; + } + + return result; + }, + validate(value) { + + // first check the value to be sure it's an object + if (value === null || typeof value !== "object") { + throw new TypeError("Expected an object."); + } + + // second check the keys to make sure they are objects + for (const key of Object.keys(value)) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + if (value[key] === null || typeof value[key] !== "object") { + throw new TypeError(`Key "${key}": Expected an object.`); + } + } + } +}; + +/** @type {ObjectPropertySchema} */ +const processorSchema = { + merge: "replace", + validate(value) { + if (typeof value === "string") { + assertIsPluginMemberName(value); + } else if (value && typeof value === "object") { + if (typeof value.preprocess !== "function" || typeof value.postprocess !== "function") { + throw new TypeError("Object must have a preprocess() and a postprocess() method."); + } + } else { + throw new TypeError("Expected an object or a string."); + } + } +}; + +/** @type {ObjectPropertySchema} */ +const rulesSchema = { + merge(first = {}, second = {}) { + + const result = { + ...first, + ...second + }; + + for (const ruleId of Object.keys(result)) { + + // avoid hairy edge case + if (ruleId === "__proto__") { + + /* eslint-disable-next-line no-proto -- Though deprecated, may still be present */ + delete result.__proto__; + continue; + } + + result[ruleId] = normalizeRuleOptions(result[ruleId]); + + /* + * If either rule config is missing, then the correct + * config is already present and we just need to normalize + * the severity. + */ + if (!(ruleId in first) || !(ruleId in second)) { + continue; + } + + const firstRuleOptions = normalizeRuleOptions(first[ruleId]); + const secondRuleOptions = normalizeRuleOptions(second[ruleId]); + + /* + * If the second rule config only has a severity (length of 1), + * then use that severity and keep the rest of the options from + * the first rule config. + */ + if (secondRuleOptions.length === 1) { + result[ruleId] = [secondRuleOptions[0], ...firstRuleOptions.slice(1)]; + continue; + } + + /* + * In any other situation, then the second rule config takes + * precedence. That means the value at `result[ruleId]` is + * already correct and no further work is necessary. + */ + } + + return result; + }, + + validate(value) { + assertIsObject(value); + + let lastRuleId; + + // Performance: One try-catch has less overhead than one per loop iteration + try { + + /* + * We are not checking the rule schema here because there is no + * guarantee that the rule definition is present at this point. Instead + * we wait and check the rule schema during the finalization step + * of calculating a config. + */ + for (const ruleId of Object.keys(value)) { + + // avoid hairy edge case + if (ruleId === "__proto__") { + continue; + } + + lastRuleId = ruleId; + + const ruleOptions = value[ruleId]; + + assertIsRuleOptions(ruleOptions); + + if (Array.isArray(ruleOptions)) { + assertIsRuleSeverity(ruleOptions[0]); + } else { + assertIsRuleSeverity(ruleOptions); + } + } + } catch (error) { + error.message = `Key "${lastRuleId}": ${error.message}`; + throw error; + } + } +}; + +/** @type {ObjectPropertySchema} */ +const ecmaVersionSchema = { + merge: "replace", + validate(value) { + if (typeof value === "number" || value === "latest") { + return; + } + + throw new TypeError("Expected a number or \"latest\"."); + } +}; + +/** @type {ObjectPropertySchema} */ +const sourceTypeSchema = { + merge: "replace", + validate(value) { + if (typeof value !== "string" || !/^(?:script|module|commonjs)$/u.test(value)) { + throw new TypeError("Expected \"script\", \"module\", or \"commonjs\"."); + } + } +}; + +//----------------------------------------------------------------------------- +// Full schema +//----------------------------------------------------------------------------- + +exports.flatConfigSchema = { + settings: deepObjectAssignSchema, + linterOptions: { + schema: { + noInlineConfig: booleanSchema, + reportUnusedDisableDirectives: booleanSchema + } + }, + languageOptions: { + schema: { + ecmaVersion: ecmaVersionSchema, + sourceType: sourceTypeSchema, + globals: globalsSchema, + parser: parserSchema, + parserOptions: deepObjectAssignSchema + } + }, + processor: processorSchema, + plugins: pluginsSchema, + rules: rulesSchema +}; diff --git a/node_modules/eslint/lib/config/rule-validator.js b/node_modules/eslint/lib/config/rule-validator.js new file mode 100644 index 0000000..0b5858f --- /dev/null +++ b/node_modules/eslint/lib/config/rule-validator.js @@ -0,0 +1,157 @@ +/** + * @fileoverview Rule Validator + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const ajv = require("../shared/ajv")(); +const { + parseRuleId, + getRuleFromConfig, + getRuleOptionsSchema +} = require("./flat-config-helpers"); +const ruleReplacements = require("../../conf/replacements.json"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/** + * Throws a helpful error when a rule cannot be found. + * @param {Object} ruleId The rule identifier. + * @param {string} ruleId.pluginName The ID of the rule to find. + * @param {string} ruleId.ruleName The ID of the rule to find. + * @param {Object} config The config to search in. + * @throws {TypeError} For missing plugin or rule. + * @returns {void} + */ +function throwRuleNotFoundError({ pluginName, ruleName }, config) { + + const ruleId = pluginName === "@" ? ruleName : `${pluginName}/${ruleName}`; + + const errorMessageHeader = `Key "rules": Key "${ruleId}"`; + let errorMessage = `${errorMessageHeader}: Could not find plugin "${pluginName}".`; + + // if the plugin exists then we need to check if the rule exists + if (config.plugins && config.plugins[pluginName]) { + const replacementRuleName = ruleReplacements.rules[ruleName]; + + if (pluginName === "@" && replacementRuleName) { + + errorMessage = `${errorMessageHeader}: Rule "${ruleName}" was removed and replaced by "${replacementRuleName}".`; + + } else { + + errorMessage = `${errorMessageHeader}: Could not find "${ruleName}" in plugin "${pluginName}".`; + + // otherwise, let's see if we can find the rule name elsewhere + for (const [otherPluginName, otherPlugin] of Object.entries(config.plugins)) { + if (otherPlugin.rules && otherPlugin.rules[ruleName]) { + errorMessage += ` Did you mean "${otherPluginName}/${ruleName}"?`; + break; + } + } + + } + + // falls through to throw error + } + + throw new TypeError(errorMessage); +} + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * Implements validation functionality for the rules portion of a config. + */ +class RuleValidator { + + /** + * Creates a new instance. + */ + constructor() { + + /** + * A collection of compiled validators for rules that have already + * been validated. + * @type {WeakMap} + */ + this.validators = new WeakMap(); + } + + /** + * Validates all of the rule configurations in a config against each + * rule's schema. + * @param {Object} config The full config to validate. This object must + * contain both the rules section and the plugins section. + * @returns {void} + * @throws {Error} If a rule's configuration does not match its schema. + */ + validate(config) { + + if (!config.rules) { + return; + } + + for (const [ruleId, ruleOptions] of Object.entries(config.rules)) { + + // check for edge case + if (ruleId === "__proto__") { + continue; + } + + /* + * If a rule is disabled, we don't do any validation. This allows + * users to safely set any value to 0 or "off" without worrying + * that it will cause a validation error. + * + * Note: ruleOptions is always an array at this point because + * this validation occurs after FlatConfigArray has merged and + * normalized values. + */ + if (ruleOptions[0] === 0) { + continue; + } + + const rule = getRuleFromConfig(ruleId, config); + + if (!rule) { + throwRuleNotFoundError(parseRuleId(ruleId), config); + } + + // Precompile and cache validator the first time + if (!this.validators.has(rule)) { + const schema = getRuleOptionsSchema(rule); + + if (schema) { + this.validators.set(rule, ajv.compile(schema)); + } + } + + const validateRule = this.validators.get(rule); + + if (validateRule) { + + validateRule(ruleOptions.slice(1)); + + if (validateRule.errors) { + throw new Error(`Key "rules": Key "${ruleId}": ${ + validateRule.errors.map( + error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n` + ).join("") + }`); + } + } + } + } +} + +exports.RuleValidator = RuleValidator; diff --git a/node_modules/eslint/lib/eslint/eslint-helpers.js b/node_modules/eslint/lib/eslint/eslint-helpers.js new file mode 100644 index 0000000..ead1af5 --- /dev/null +++ b/node_modules/eslint/lib/eslint/eslint-helpers.js @@ -0,0 +1,644 @@ +/** + * @fileoverview Helper functions for ESLint class + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const path = require("path"); +const fs = require("fs"); +const fsp = fs.promises; +const isGlob = require("is-glob"); +const globby = require("globby"); +const hash = require("../cli-engine/hash"); +const minimatch = require("minimatch"); + +//----------------------------------------------------------------------------- +// Errors +//----------------------------------------------------------------------------- + +/** + * The error type when no files match a glob. + */ +class NoFilesFoundError extends Error { + + /** + * @param {string} pattern The glob pattern which was not found. + * @param {boolean} globEnabled If `false` then the pattern was a glob pattern, but glob was disabled. + */ + constructor(pattern, globEnabled) { + super(`No files matching '${pattern}' were found${!globEnabled ? " (glob was disabled)" : ""}.`); + this.messageTemplate = "file-not-found"; + this.messageData = { pattern, globDisabled: !globEnabled }; + } +} + +/** + * The error type when there are files matched by a glob, but all of them have been ignored. + */ +class AllFilesIgnoredError extends Error { + + /** + * @param {string} pattern The glob pattern which was not found. + */ + constructor(pattern) { + super(`All files matched by '${pattern}' are ignored.`); + this.messageTemplate = "all-files-ignored"; + this.messageData = { pattern }; + } +} + + +//----------------------------------------------------------------------------- +// General Helpers +//----------------------------------------------------------------------------- + +/** + * Check if a given value is a non-empty string or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is a non-empty string. + */ +function isNonEmptyString(x) { + return typeof x === "string" && x.trim() !== ""; +} + +/** + * Check if a given value is an array of non-empty stringss or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is an array of non-empty stringss. + */ +function isArrayOfNonEmptyString(x) { + return Array.isArray(x) && x.every(isNonEmptyString); +} + +//----------------------------------------------------------------------------- +// File-related Helpers +//----------------------------------------------------------------------------- + +/** + * Normalizes slashes in a file pattern to posix-style. + * @param {string} pattern The pattern to replace slashes in. + * @returns {string} The pattern with slashes normalized. + */ +function normalizeToPosix(pattern) { + return pattern.replace(/\\/gu, "/"); +} + +/** + * Check if a string is a glob pattern or not. + * @param {string} pattern A glob pattern. + * @returns {boolean} `true` if the string is a glob pattern. + */ +function isGlobPattern(pattern) { + return isGlob(path.sep === "\\" ? normalizeToPosix(pattern) : pattern); +} + +/** + * Finds all files matching the options specified. + * @param {Object} args The arguments objects. + * @param {Array} args.patterns An array of glob patterns. + * @param {boolean} args.globInputPaths true to interpret glob patterns, + * false to not interpret glob patterns. + * @param {string} args.cwd The current working directory to find from. + * @param {FlatConfigArray} args.configs The configs for the current run. + * @param {boolean} args.errorOnUnmatchedPattern Determines if an unmatched pattern + * should throw an error. + * @returns {Promise>} The fully resolved file paths. + * @throws {AllFilesIgnoredError} If there are no results due to an ignore pattern. + * @throws {NoFilesFoundError} If no files matched the given patterns. + */ +async function findFiles({ + patterns, + globInputPaths, + cwd, + configs, + errorOnUnmatchedPattern +}) { + + const results = []; + const globbyPatterns = []; + const missingPatterns = []; + + // check to see if we have explicit files and directories + const filePaths = patterns.map(filePath => path.resolve(cwd, filePath)); + const stats = await Promise.all( + filePaths.map( + filePath => fsp.stat(filePath).catch(() => { }) + ) + ); + + stats.forEach((stat, index) => { + + const filePath = filePaths[index]; + const pattern = normalizeToPosix(patterns[index]); + + if (stat) { + + // files are added directly to the list + if (stat.isFile()) { + results.push({ + filePath, + ignored: configs.isIgnored(filePath) + }); + } + + // directories need extensions attached + if (stat.isDirectory()) { + + // filePatterns are all relative to cwd + const filePatterns = configs.files + .filter(filePattern => { + + // can only do this for strings, not functions + if (typeof filePattern !== "string") { + return false; + } + + // patterns starting with ** always apply + if (filePattern.startsWith("**")) { + return true; + } + + // patterns ending with * are not used for file search + if (filePattern.endsWith("*")) { + return false; + } + + // not sure how to handle negated patterns yet + if (filePattern.startsWith("!")) { + return false; + } + + // check if the pattern would be inside the config base path or not + const fullFilePattern = path.join(cwd, filePattern); + const patternRelativeToConfigBasePath = path.relative(configs.basePath, fullFilePattern); + + if (patternRelativeToConfigBasePath.startsWith("..")) { + return false; + } + + // check if the pattern matches + if (minimatch(filePath, path.dirname(fullFilePattern), { partial: true })) { + return true; + } + + // check if the pattern is inside the directory or not + const patternRelativeToFilePath = path.relative(filePath, fullFilePattern); + + if (patternRelativeToFilePath.startsWith("..")) { + return false; + } + + return true; + }) + .map(filePattern => { + if (filePattern.startsWith("**")) { + return path.join(pattern, filePattern); + } + + // adjust the path to be relative to the cwd + return path.relative( + cwd, + path.join(configs.basePath, filePattern) + ); + }) + .map(normalizeToPosix); + + if (filePatterns.length) { + globbyPatterns.push(...filePatterns); + } + + } + + return; + } + + // save patterns for later use based on whether globs are enabled + if (globInputPaths && isGlobPattern(filePath)) { + globbyPatterns.push(pattern); + } else { + missingPatterns.push(pattern); + } + }); + + // note: globbyPatterns can be an empty array + const globbyResults = (await globby(globbyPatterns, { + cwd, + absolute: true, + ignore: configs.ignores.filter(matcher => typeof matcher === "string") + })); + + // if there are no results, tell the user why + if (!results.length && !globbyResults.length) { + + // try globby without ignoring anything + /* eslint-disable no-unreachable-loop -- We want to exit early. */ + for (const globbyPattern of globbyPatterns) { + + /* eslint-disable-next-line no-unused-vars -- Want to exit early. */ + for await (const filePath of globby.stream(globbyPattern, { cwd, absolute: true })) { + + // files were found but ignored + throw new AllFilesIgnoredError(globbyPattern); + } + + // no files were found + if (errorOnUnmatchedPattern) { + throw new NoFilesFoundError(globbyPattern, globInputPaths); + } + } + /* eslint-enable no-unreachable-loop -- Go back to normal. */ + + } + + // there were patterns that didn't match anything, tell the user + if (errorOnUnmatchedPattern && missingPatterns.length) { + throw new NoFilesFoundError(missingPatterns[0], globInputPaths); + } + + + return [ + ...results, + ...globbyResults.map(filePath => ({ + filePath: path.resolve(filePath), + ignored: false + })) + ]; +} + + +/** + * Checks whether a file exists at the given location + * @param {string} resolvedPath A path from the CWD + * @throws {Error} As thrown by `fs.statSync` or `fs.isFile`. + * @returns {boolean} `true` if a file exists + */ +function fileExists(resolvedPath) { + try { + return fs.statSync(resolvedPath).isFile(); + } catch (error) { + if (error && (error.code === "ENOENT" || error.code === "ENOTDIR")) { + return false; + } + throw error; + } +} + +/** + * Checks whether a directory exists at the given location + * @param {string} resolvedPath A path from the CWD + * @throws {Error} As thrown by `fs.statSync` or `fs.isDirectory`. + * @returns {boolean} `true` if a directory exists + */ +function directoryExists(resolvedPath) { + try { + return fs.statSync(resolvedPath).isDirectory(); + } catch (error) { + if (error && (error.code === "ENOENT" || error.code === "ENOTDIR")) { + return false; + } + throw error; + } +} + +//----------------------------------------------------------------------------- +// Results-related Helpers +//----------------------------------------------------------------------------- + +/** + * Checks if the given message is an error message. + * @param {LintMessage} message The message to check. + * @returns {boolean} Whether or not the message is an error message. + * @private + */ +function isErrorMessage(message) { + return message.severity === 2; +} + +/** + * Returns result with warning by ignore settings + * @param {string} filePath File path of checked code + * @param {string} baseDir Absolute path of base directory + * @returns {LintResult} Result with single warning + * @private + */ +function createIgnoreResult(filePath, baseDir) { + let message; + const isHidden = filePath.split(path.sep) + .find(segment => /^\./u.test(segment)); + const isInNodeModules = baseDir && path.relative(baseDir, filePath).startsWith("node_modules"); + + if (isHidden) { + message = "File ignored by default. Use a negated ignore pattern (like \"--ignore-pattern '!'\") to override."; + } else if (isInNodeModules) { + message = "File ignored by default. Use \"--ignore-pattern '!node_modules/*'\" to override."; + } else { + message = "File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override."; + } + + return { + filePath: path.resolve(filePath), + messages: [ + { + fatal: false, + severity: 1, + message + } + ], + suppressedMessages: [], + errorCount: 0, + warningCount: 1, + fatalErrorCount: 0, + fixableErrorCount: 0, + fixableWarningCount: 0 + }; +} + +//----------------------------------------------------------------------------- +// Options-related Helpers +//----------------------------------------------------------------------------- + + +/** + * Check if a given value is a valid fix type or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is valid fix type. + */ +function isFixType(x) { + return x === "directive" || x === "problem" || x === "suggestion" || x === "layout"; +} + +/** + * Check if a given value is an array of fix types or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is an array of fix types. + */ +function isFixTypeArray(x) { + return Array.isArray(x) && x.every(isFixType); +} + +/** + * The error for invalid options. + */ +class ESLintInvalidOptionsError extends Error { + constructor(messages) { + super(`Invalid Options:\n- ${messages.join("\n- ")}`); + this.code = "ESLINT_INVALID_OPTIONS"; + Error.captureStackTrace(this, ESLintInvalidOptionsError); + } +} + +/** + * Validates and normalizes options for the wrapped CLIEngine instance. + * @param {FlatESLintOptions} options The options to process. + * @throws {ESLintInvalidOptionsError} If of any of a variety of type errors. + * @returns {FlatESLintOptions} The normalized options. + */ +function processOptions({ + allowInlineConfig = true, // ← we cannot use `overrideConfig.noInlineConfig` instead because `allowInlineConfig` has side-effect that suppress warnings that show inline configs are ignored. + baseConfig = null, + cache = false, + cacheLocation = ".eslintcache", + cacheStrategy = "metadata", + cwd = process.cwd(), + errorOnUnmatchedPattern = true, + fix = false, + fixTypes = null, // ← should be null by default because if it's an array then it suppresses rules that don't have the `meta.type` property. + globInputPaths = true, + ignore = true, + ignorePath = null, // ← should be null by default because if it's a string then it may throw ENOENT. + ignorePatterns = null, + overrideConfig = null, + overrideConfigFile = null, + plugins = {}, + reportUnusedDisableDirectives = null, // ← should be null by default because if it's a string then it overrides the 'reportUnusedDisableDirectives' setting in config files. And we cannot use `overrideConfig.reportUnusedDisableDirectives` instead because we cannot configure the `error` severity with that. + ...unknownOptions +}) { + const errors = []; + const unknownOptionKeys = Object.keys(unknownOptions); + + if (unknownOptionKeys.length >= 1) { + errors.push(`Unknown options: ${unknownOptionKeys.join(", ")}`); + if (unknownOptionKeys.includes("cacheFile")) { + errors.push("'cacheFile' has been removed. Please use the 'cacheLocation' option instead."); + } + if (unknownOptionKeys.includes("configFile")) { + errors.push("'configFile' has been removed. Please use the 'overrideConfigFile' option instead."); + } + if (unknownOptionKeys.includes("envs")) { + errors.push("'envs' has been removed."); + } + if (unknownOptionKeys.includes("extensions")) { + errors.push("'extensions' has been removed."); + } + if (unknownOptionKeys.includes("resolvePluginsRelativeTo")) { + errors.push("'resolvePluginsRelativeTo' has been removed."); + } + if (unknownOptionKeys.includes("globals")) { + errors.push("'globals' has been removed. Please use the 'overrideConfig.languageOptions.globals' option instead."); + } + if (unknownOptionKeys.includes("ignorePattern")) { + errors.push("'ignorePattern' has been removed. Please use the 'overrideConfig.ignorePatterns' option instead."); + } + if (unknownOptionKeys.includes("parser")) { + errors.push("'parser' has been removed. Please use the 'overrideConfig.languageOptions.parser' option instead."); + } + if (unknownOptionKeys.includes("parserOptions")) { + errors.push("'parserOptions' has been removed. Please use the 'overrideConfig.languageOptions.parserOptions' option instead."); + } + if (unknownOptionKeys.includes("rules")) { + errors.push("'rules' has been removed. Please use the 'overrideConfig.rules' option instead."); + } + if (unknownOptionKeys.includes("rulePaths")) { + errors.push("'rulePaths' has been removed. Please define your rules using plugins."); + } + } + if (typeof allowInlineConfig !== "boolean") { + errors.push("'allowInlineConfig' must be a boolean."); + } + if (typeof baseConfig !== "object") { + errors.push("'baseConfig' must be an object or null."); + } + if (typeof cache !== "boolean") { + errors.push("'cache' must be a boolean."); + } + if (!isNonEmptyString(cacheLocation)) { + errors.push("'cacheLocation' must be a non-empty string."); + } + if ( + cacheStrategy !== "metadata" && + cacheStrategy !== "content" + ) { + errors.push("'cacheStrategy' must be any of \"metadata\", \"content\"."); + } + if (!isNonEmptyString(cwd) || !path.isAbsolute(cwd)) { + errors.push("'cwd' must be an absolute path."); + } + if (typeof errorOnUnmatchedPattern !== "boolean") { + errors.push("'errorOnUnmatchedPattern' must be a boolean."); + } + if (typeof fix !== "boolean" && typeof fix !== "function") { + errors.push("'fix' must be a boolean or a function."); + } + if (fixTypes !== null && !isFixTypeArray(fixTypes)) { + errors.push("'fixTypes' must be an array of any of \"directive\", \"problem\", \"suggestion\", and \"layout\"."); + } + if (typeof globInputPaths !== "boolean") { + errors.push("'globInputPaths' must be a boolean."); + } + if (typeof ignore !== "boolean") { + errors.push("'ignore' must be a boolean."); + } + if (!isNonEmptyString(ignorePath) && ignorePath !== null) { + errors.push("'ignorePath' must be a non-empty string or null."); + } + if (typeof overrideConfig !== "object") { + errors.push("'overrideConfig' must be an object or null."); + } + if (!isNonEmptyString(overrideConfigFile) && overrideConfigFile !== null && overrideConfigFile !== true) { + errors.push("'overrideConfigFile' must be a non-empty string, null, or true."); + } + if (typeof plugins !== "object") { + errors.push("'plugins' must be an object or null."); + } else if (plugins !== null && Object.keys(plugins).includes("")) { + errors.push("'plugins' must not include an empty string."); + } + if (Array.isArray(plugins)) { + errors.push("'plugins' doesn't add plugins to configuration to load. Please use the 'overrideConfig.plugins' option instead."); + } + if ( + reportUnusedDisableDirectives !== "error" && + reportUnusedDisableDirectives !== "warn" && + reportUnusedDisableDirectives !== "off" && + reportUnusedDisableDirectives !== null + ) { + errors.push("'reportUnusedDisableDirectives' must be any of \"error\", \"warn\", \"off\", and null."); + } + if (errors.length > 0) { + throw new ESLintInvalidOptionsError(errors); + } + + return { + allowInlineConfig, + baseConfig, + cache, + cacheLocation, + cacheStrategy, + + // when overrideConfigFile is true that means don't do config file lookup + configFile: overrideConfigFile === true ? false : overrideConfigFile, + overrideConfig, + cwd, + errorOnUnmatchedPattern, + fix, + fixTypes, + globInputPaths, + ignore, + ignorePath, + ignorePatterns, + reportUnusedDisableDirectives + }; +} + + +//----------------------------------------------------------------------------- +// Cache-related helpers +//----------------------------------------------------------------------------- + +/** + * return the cacheFile to be used by eslint, based on whether the provided parameter is + * a directory or looks like a directory (ends in `path.sep`), in which case the file + * name will be the `cacheFile/.cache_hashOfCWD` + * + * if cacheFile points to a file or looks like a file then in will just use that file + * @param {string} cacheFile The name of file to be used to store the cache + * @param {string} cwd Current working directory + * @returns {string} the resolved path to the cache file + */ +function getCacheFile(cacheFile, cwd) { + + /* + * make sure the path separators are normalized for the environment/os + * keeping the trailing path separator if present + */ + const normalizedCacheFile = path.normalize(cacheFile); + + const resolvedCacheFile = path.resolve(cwd, normalizedCacheFile); + const looksLikeADirectory = normalizedCacheFile.slice(-1) === path.sep; + + /** + * return the name for the cache file in case the provided parameter is a directory + * @returns {string} the resolved path to the cacheFile + */ + function getCacheFileForDirectory() { + return path.join(resolvedCacheFile, `.cache_${hash(cwd)}`); + } + + let fileStats; + + try { + fileStats = fs.lstatSync(resolvedCacheFile); + } catch { + fileStats = null; + } + + + /* + * in case the file exists we need to verify if the provided path + * is a directory or a file. If it is a directory we want to create a file + * inside that directory + */ + if (fileStats) { + + /* + * is a directory or is a file, but the original file the user provided + * looks like a directory but `path.resolve` removed the `last path.sep` + * so we need to still treat this like a directory + */ + if (fileStats.isDirectory() || looksLikeADirectory) { + return getCacheFileForDirectory(); + } + + // is file so just use that file + return resolvedCacheFile; + } + + /* + * here we known the file or directory doesn't exist, + * so we will try to infer if its a directory if it looks like a directory + * for the current operating system. + */ + + // if the last character passed is a path separator we assume is a directory + if (looksLikeADirectory) { + return getCacheFileForDirectory(); + } + + return resolvedCacheFile; +} + + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +module.exports = { + isGlobPattern, + directoryExists, + fileExists, + findFiles, + + isNonEmptyString, + isArrayOfNonEmptyString, + + createIgnoreResult, + isErrorMessage, + + processOptions, + + getCacheFile +}; diff --git a/node_modules/eslint/lib/eslint/eslint.js b/node_modules/eslint/lib/eslint/eslint.js new file mode 100644 index 0000000..9a3bd66 --- /dev/null +++ b/node_modules/eslint/lib/eslint/eslint.js @@ -0,0 +1,697 @@ +/** + * @fileoverview Main API Class + * @author Kai Cataldo + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const path = require("path"); +const fs = require("fs"); +const { promisify } = require("util"); +const { CLIEngine, getCLIEngineInternalSlots } = require("../cli-engine/cli-engine"); +const BuiltinRules = require("../rules"); +const { + Legacy: { + ConfigOps: { + getRuleSeverity + } + } +} = require("@eslint/eslintrc"); +const { version } = require("../../package.json"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** @typedef {import("../cli-engine/cli-engine").LintReport} CLIEngineLintReport */ +/** @typedef {import("../shared/types").DeprecatedRuleInfo} DeprecatedRuleInfo */ +/** @typedef {import("../shared/types").ConfigData} ConfigData */ +/** @typedef {import("../shared/types").LintMessage} LintMessage */ +/** @typedef {import("../shared/types").SuppressedLintMessage} SuppressedLintMessage */ +/** @typedef {import("../shared/types").Plugin} Plugin */ +/** @typedef {import("../shared/types").Rule} Rule */ +/** @typedef {import("../shared/types").LintResult} LintResult */ + +/** + * The main formatter object. + * @typedef LoadedFormatter + * @property {function(LintResult[]): string | Promise} format format function. + */ + +/** + * The options with which to configure the ESLint instance. + * @typedef {Object} ESLintOptions + * @property {boolean} [allowInlineConfig] Enable or disable inline configuration comments. + * @property {ConfigData} [baseConfig] Base config object, extended by all configs used with this instance + * @property {boolean} [cache] Enable result caching. + * @property {string} [cacheLocation] The cache file to use instead of .eslintcache. + * @property {"metadata" | "content"} [cacheStrategy] The strategy used to detect changed files. + * @property {string} [cwd] The value to use for the current working directory. + * @property {boolean} [errorOnUnmatchedPattern] If `false` then `ESLint#lintFiles()` doesn't throw even if no target files found. Defaults to `true`. + * @property {string[]} [extensions] An array of file extensions to check. + * @property {boolean|Function} [fix] Execute in autofix mode. If a function, should return a boolean. + * @property {string[]} [fixTypes] Array of rule types to apply fixes for. + * @property {boolean} [globInputPaths] Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file. + * @property {boolean} [ignore] False disables use of .eslintignore. + * @property {string} [ignorePath] The ignore file to use instead of .eslintignore. + * @property {ConfigData} [overrideConfig] Override config object, overrides all configs used with this instance + * @property {string} [overrideConfigFile] The configuration file to use. + * @property {Record|null} [plugins] Preloaded plugins. This is a map-like object, keys are plugin IDs and each value is implementation. + * @property {"error" | "warn" | "off"} [reportUnusedDisableDirectives] the severity to report unused eslint-disable directives. + * @property {string} [resolvePluginsRelativeTo] The folder where plugins should be resolved from, defaulting to the CWD. + * @property {string[]} [rulePaths] An array of directories to load custom rules from. + * @property {boolean} [useEslintrc] False disables looking for .eslintrc.* files. + */ + +/** + * A rules metadata object. + * @typedef {Object} RulesMeta + * @property {string} id The plugin ID. + * @property {Object} definition The plugin definition. + */ + +/** + * Private members for the `ESLint` instance. + * @typedef {Object} ESLintPrivateMembers + * @property {CLIEngine} cliEngine The wrapped CLIEngine instance. + * @property {ESLintOptions} options The options used to instantiate the ESLint instance. + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const writeFile = promisify(fs.writeFile); + +/** + * The map with which to store private class members. + * @type {WeakMap} + */ +const privateMembersMap = new WeakMap(); + +/** + * Check if a given value is a non-empty string or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is a non-empty string. + */ +function isNonEmptyString(x) { + return typeof x === "string" && x.trim() !== ""; +} + +/** + * Check if a given value is an array of non-empty strings or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is an array of non-empty strings. + */ +function isArrayOfNonEmptyString(x) { + return Array.isArray(x) && x.every(isNonEmptyString); +} + +/** + * Check if a given value is a valid fix type or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is valid fix type. + */ +function isFixType(x) { + return x === "directive" || x === "problem" || x === "suggestion" || x === "layout"; +} + +/** + * Check if a given value is an array of fix types or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if `x` is an array of fix types. + */ +function isFixTypeArray(x) { + return Array.isArray(x) && x.every(isFixType); +} + +/** + * The error for invalid options. + */ +class ESLintInvalidOptionsError extends Error { + constructor(messages) { + super(`Invalid Options:\n- ${messages.join("\n- ")}`); + this.code = "ESLINT_INVALID_OPTIONS"; + Error.captureStackTrace(this, ESLintInvalidOptionsError); + } +} + +/** + * Validates and normalizes options for the wrapped CLIEngine instance. + * @param {ESLintOptions} options The options to process. + * @throws {ESLintInvalidOptionsError} If of any of a variety of type errors. + * @returns {ESLintOptions} The normalized options. + */ +function processOptions({ + allowInlineConfig = true, // ← we cannot use `overrideConfig.noInlineConfig` instead because `allowInlineConfig` has side-effect that suppress warnings that show inline configs are ignored. + baseConfig = null, + cache = false, + cacheLocation = ".eslintcache", + cacheStrategy = "metadata", + cwd = process.cwd(), + errorOnUnmatchedPattern = true, + extensions = null, // ← should be null by default because if it's an array then it suppresses RFC20 feature. + fix = false, + fixTypes = null, // ← should be null by default because if it's an array then it suppresses rules that don't have the `meta.type` property. + globInputPaths = true, + ignore = true, + ignorePath = null, // ← should be null by default because if it's a string then it may throw ENOENT. + overrideConfig = null, + overrideConfigFile = null, + plugins = {}, + reportUnusedDisableDirectives = null, // ← should be null by default because if it's a string then it overrides the 'reportUnusedDisableDirectives' setting in config files. And we cannot use `overrideConfig.reportUnusedDisableDirectives` instead because we cannot configure the `error` severity with that. + resolvePluginsRelativeTo = null, // ← should be null by default because if it's a string then it suppresses RFC47 feature. + rulePaths = [], + useEslintrc = true, + ...unknownOptions +}) { + const errors = []; + const unknownOptionKeys = Object.keys(unknownOptions); + + if (unknownOptionKeys.length >= 1) { + errors.push(`Unknown options: ${unknownOptionKeys.join(", ")}`); + if (unknownOptionKeys.includes("cacheFile")) { + errors.push("'cacheFile' has been removed. Please use the 'cacheLocation' option instead."); + } + if (unknownOptionKeys.includes("configFile")) { + errors.push("'configFile' has been removed. Please use the 'overrideConfigFile' option instead."); + } + if (unknownOptionKeys.includes("envs")) { + errors.push("'envs' has been removed. Please use the 'overrideConfig.env' option instead."); + } + if (unknownOptionKeys.includes("globals")) { + errors.push("'globals' has been removed. Please use the 'overrideConfig.globals' option instead."); + } + if (unknownOptionKeys.includes("ignorePattern")) { + errors.push("'ignorePattern' has been removed. Please use the 'overrideConfig.ignorePatterns' option instead."); + } + if (unknownOptionKeys.includes("parser")) { + errors.push("'parser' has been removed. Please use the 'overrideConfig.parser' option instead."); + } + if (unknownOptionKeys.includes("parserOptions")) { + errors.push("'parserOptions' has been removed. Please use the 'overrideConfig.parserOptions' option instead."); + } + if (unknownOptionKeys.includes("rules")) { + errors.push("'rules' has been removed. Please use the 'overrideConfig.rules' option instead."); + } + } + if (typeof allowInlineConfig !== "boolean") { + errors.push("'allowInlineConfig' must be a boolean."); + } + if (typeof baseConfig !== "object") { + errors.push("'baseConfig' must be an object or null."); + } + if (typeof cache !== "boolean") { + errors.push("'cache' must be a boolean."); + } + if (!isNonEmptyString(cacheLocation)) { + errors.push("'cacheLocation' must be a non-empty string."); + } + if ( + cacheStrategy !== "metadata" && + cacheStrategy !== "content" + ) { + errors.push("'cacheStrategy' must be any of \"metadata\", \"content\"."); + } + if (!isNonEmptyString(cwd) || !path.isAbsolute(cwd)) { + errors.push("'cwd' must be an absolute path."); + } + if (typeof errorOnUnmatchedPattern !== "boolean") { + errors.push("'errorOnUnmatchedPattern' must be a boolean."); + } + if (!isArrayOfNonEmptyString(extensions) && extensions !== null) { + errors.push("'extensions' must be an array of non-empty strings or null."); + } + if (typeof fix !== "boolean" && typeof fix !== "function") { + errors.push("'fix' must be a boolean or a function."); + } + if (fixTypes !== null && !isFixTypeArray(fixTypes)) { + errors.push("'fixTypes' must be an array of any of \"directive\", \"problem\", \"suggestion\", and \"layout\"."); + } + if (typeof globInputPaths !== "boolean") { + errors.push("'globInputPaths' must be a boolean."); + } + if (typeof ignore !== "boolean") { + errors.push("'ignore' must be a boolean."); + } + if (!isNonEmptyString(ignorePath) && ignorePath !== null) { + errors.push("'ignorePath' must be a non-empty string or null."); + } + if (typeof overrideConfig !== "object") { + errors.push("'overrideConfig' must be an object or null."); + } + if (!isNonEmptyString(overrideConfigFile) && overrideConfigFile !== null) { + errors.push("'overrideConfigFile' must be a non-empty string or null."); + } + if (typeof plugins !== "object") { + errors.push("'plugins' must be an object or null."); + } else if (plugins !== null && Object.keys(plugins).includes("")) { + errors.push("'plugins' must not include an empty string."); + } + if (Array.isArray(plugins)) { + errors.push("'plugins' doesn't add plugins to configuration to load. Please use the 'overrideConfig.plugins' option instead."); + } + if ( + reportUnusedDisableDirectives !== "error" && + reportUnusedDisableDirectives !== "warn" && + reportUnusedDisableDirectives !== "off" && + reportUnusedDisableDirectives !== null + ) { + errors.push("'reportUnusedDisableDirectives' must be any of \"error\", \"warn\", \"off\", and null."); + } + if ( + !isNonEmptyString(resolvePluginsRelativeTo) && + resolvePluginsRelativeTo !== null + ) { + errors.push("'resolvePluginsRelativeTo' must be a non-empty string or null."); + } + if (!isArrayOfNonEmptyString(rulePaths)) { + errors.push("'rulePaths' must be an array of non-empty strings."); + } + if (typeof useEslintrc !== "boolean") { + errors.push("'useEslintrc' must be a boolean."); + } + + if (errors.length > 0) { + throw new ESLintInvalidOptionsError(errors); + } + + return { + allowInlineConfig, + baseConfig, + cache, + cacheLocation, + cacheStrategy, + configFile: overrideConfigFile, + cwd, + errorOnUnmatchedPattern, + extensions, + fix, + fixTypes, + globInputPaths, + ignore, + ignorePath, + reportUnusedDisableDirectives, + resolvePluginsRelativeTo, + rulePaths, + useEslintrc + }; +} + +/** + * Check if a value has one or more properties and that value is not undefined. + * @param {any} obj The value to check. + * @returns {boolean} `true` if `obj` has one or more properties that that value is not undefined. + */ +function hasDefinedProperty(obj) { + if (typeof obj === "object" && obj !== null) { + for (const key in obj) { + if (typeof obj[key] !== "undefined") { + return true; + } + } + } + return false; +} + +/** + * Create rulesMeta object. + * @param {Map} rules a map of rules from which to generate the object. + * @returns {Object} metadata for all enabled rules. + */ +function createRulesMeta(rules) { + return Array.from(rules).reduce((retVal, [id, rule]) => { + retVal[id] = rule.meta; + return retVal; + }, {}); +} + +/** @type {WeakMap} */ +const usedDeprecatedRulesCache = new WeakMap(); + +/** + * Create used deprecated rule list. + * @param {CLIEngine} cliEngine The CLIEngine instance. + * @param {string} maybeFilePath The absolute path to a lint target file or `""`. + * @returns {DeprecatedRuleInfo[]} The used deprecated rule list. + */ +function getOrFindUsedDeprecatedRules(cliEngine, maybeFilePath) { + const { + configArrayFactory, + options: { cwd } + } = getCLIEngineInternalSlots(cliEngine); + const filePath = path.isAbsolute(maybeFilePath) + ? maybeFilePath + : path.join(cwd, "__placeholder__.js"); + const configArray = configArrayFactory.getConfigArrayForFile(filePath); + const config = configArray.extractConfig(filePath); + + // Most files use the same config, so cache it. + if (!usedDeprecatedRulesCache.has(config)) { + const pluginRules = configArray.pluginRules; + const retv = []; + + for (const [ruleId, ruleConf] of Object.entries(config.rules)) { + if (getRuleSeverity(ruleConf) === 0) { + continue; + } + const rule = pluginRules.get(ruleId) || BuiltinRules.get(ruleId); + const meta = rule && rule.meta; + + if (meta && meta.deprecated) { + retv.push({ ruleId, replacedBy: meta.replacedBy || [] }); + } + } + + usedDeprecatedRulesCache.set(config, Object.freeze(retv)); + } + + return usedDeprecatedRulesCache.get(config); +} + +/** + * Processes the linting results generated by a CLIEngine linting report to + * match the ESLint class's API. + * @param {CLIEngine} cliEngine The CLIEngine instance. + * @param {CLIEngineLintReport} report The CLIEngine linting report to process. + * @returns {LintResult[]} The processed linting results. + */ +function processCLIEngineLintReport(cliEngine, { results }) { + const descriptor = { + configurable: true, + enumerable: true, + get() { + return getOrFindUsedDeprecatedRules(cliEngine, this.filePath); + } + }; + + for (const result of results) { + Object.defineProperty(result, "usedDeprecatedRules", descriptor); + } + + return results; +} + +/** + * An Array.prototype.sort() compatible compare function to order results by their file path. + * @param {LintResult} a The first lint result. + * @param {LintResult} b The second lint result. + * @returns {number} An integer representing the order in which the two results should occur. + */ +function compareResultsByFilePath(a, b) { + if (a.filePath < b.filePath) { + return -1; + } + + if (a.filePath > b.filePath) { + return 1; + } + + return 0; +} + +/** + * Main API. + */ +class ESLint { + + /** + * Creates a new instance of the main ESLint API. + * @param {ESLintOptions} options The options for this instance. + */ + constructor(options = {}) { + const processedOptions = processOptions(options); + const cliEngine = new CLIEngine(processedOptions, { preloadedPlugins: options.plugins }); + const { + configArrayFactory, + lastConfigArrays + } = getCLIEngineInternalSlots(cliEngine); + let updated = false; + + /* + * Address `overrideConfig` to set override config. + * Operate the `configArrayFactory` internal slot directly because this + * functionality doesn't exist as the public API of CLIEngine. + */ + if (hasDefinedProperty(options.overrideConfig)) { + configArrayFactory.setOverrideConfig(options.overrideConfig); + updated = true; + } + + // Update caches. + if (updated) { + configArrayFactory.clearCache(); + lastConfigArrays[0] = configArrayFactory.getConfigArrayForFile(); + } + + // Initialize private properties. + privateMembersMap.set(this, { + cliEngine, + options: processedOptions + }); + } + + /** + * The version text. + * @type {string} + */ + static get version() { + return version; + } + + /** + * Outputs fixes from the given results to files. + * @param {LintResult[]} results The lint results. + * @returns {Promise} Returns a promise that is used to track side effects. + */ + static async outputFixes(results) { + if (!Array.isArray(results)) { + throw new Error("'results' must be an array"); + } + + await Promise.all( + results + .filter(result => { + if (typeof result !== "object" || result === null) { + throw new Error("'results' must include only objects"); + } + return ( + typeof result.output === "string" && + path.isAbsolute(result.filePath) + ); + }) + .map(r => writeFile(r.filePath, r.output)) + ); + } + + /** + * Returns results that only contains errors. + * @param {LintResult[]} results The results to filter. + * @returns {LintResult[]} The filtered results. + */ + static getErrorResults(results) { + return CLIEngine.getErrorResults(results); + } + + /** + * Returns meta objects for each rule represented in the lint results. + * @param {LintResult[]} results The results to fetch rules meta for. + * @returns {Object} A mapping of ruleIds to rule meta objects. + */ + getRulesMetaForResults(results) { + + const resultRuleIds = new Set(); + + // first gather all ruleIds from all results + + for (const result of results) { + for (const { ruleId } of result.messages) { + resultRuleIds.add(ruleId); + } + for (const { ruleId } of result.suppressedMessages) { + resultRuleIds.add(ruleId); + } + } + + // create a map of all rules in the results + + const { cliEngine } = privateMembersMap.get(this); + const rules = cliEngine.getRules(); + const resultRules = new Map(); + + for (const [ruleId, rule] of rules) { + if (resultRuleIds.has(ruleId)) { + resultRules.set(ruleId, rule); + } + } + + return createRulesMeta(resultRules); + + } + + /** + * Executes the current configuration on an array of file and directory names. + * @param {string[]} patterns An array of file and directory names. + * @returns {Promise} The results of linting the file patterns given. + */ + async lintFiles(patterns) { + if (!isNonEmptyString(patterns) && !isArrayOfNonEmptyString(patterns)) { + throw new Error("'patterns' must be a non-empty string or an array of non-empty strings"); + } + const { cliEngine } = privateMembersMap.get(this); + + return processCLIEngineLintReport( + cliEngine, + cliEngine.executeOnFiles(patterns) + ); + } + + /** + * Executes the current configuration on text. + * @param {string} code A string of JavaScript code to lint. + * @param {Object} [options] The options. + * @param {string} [options.filePath] The path to the file of the source code. + * @param {boolean} [options.warnIgnored] When set to true, warn if given filePath is an ignored path. + * @returns {Promise} The results of linting the string of code given. + */ + async lintText(code, options = {}) { + if (typeof code !== "string") { + throw new Error("'code' must be a string"); + } + if (typeof options !== "object") { + throw new Error("'options' must be an object, null, or undefined"); + } + const { + filePath, + warnIgnored = false, + ...unknownOptions + } = options || {}; + + const unknownOptionKeys = Object.keys(unknownOptions); + + if (unknownOptionKeys.length > 0) { + throw new Error(`'options' must not include the unknown option(s): ${unknownOptionKeys.join(", ")}`); + } + + if (filePath !== void 0 && !isNonEmptyString(filePath)) { + throw new Error("'options.filePath' must be a non-empty string or undefined"); + } + if (typeof warnIgnored !== "boolean") { + throw new Error("'options.warnIgnored' must be a boolean or undefined"); + } + + const { cliEngine } = privateMembersMap.get(this); + + return processCLIEngineLintReport( + cliEngine, + cliEngine.executeOnText(code, filePath, warnIgnored) + ); + } + + /** + * Returns the formatter representing the given formatter name. + * @param {string} [name] The name of the formatter to load. + * The following values are allowed: + * - `undefined` ... Load `stylish` builtin formatter. + * - A builtin formatter name ... Load the builtin formatter. + * - A third-party formatter name: + * - `foo` → `eslint-formatter-foo` + * - `@foo` → `@foo/eslint-formatter` + * - `@foo/bar` → `@foo/eslint-formatter-bar` + * - A file path ... Load the file. + * @returns {Promise} A promise resolving to the formatter object. + * This promise will be rejected if the given formatter was not found or not + * a function. + */ + async loadFormatter(name = "stylish") { + if (typeof name !== "string") { + throw new Error("'name' must be a string"); + } + + const { cliEngine, options } = privateMembersMap.get(this); + const formatter = cliEngine.getFormatter(name); + + if (typeof formatter !== "function") { + throw new Error(`Formatter must be a function, but got a ${typeof formatter}.`); + } + + return { + + /** + * The main formatter method. + * @param {LintResult[]} results The lint results to format. + * @returns {string | Promise} The formatted lint results. + */ + format(results) { + let rulesMeta = null; + + results.sort(compareResultsByFilePath); + + return formatter(results, { + get cwd() { + return options.cwd; + }, + get rulesMeta() { + if (!rulesMeta) { + rulesMeta = createRulesMeta(cliEngine.getRules()); + } + + return rulesMeta; + } + }); + } + }; + } + + /** + * Returns a configuration object for the given file based on the CLI options. + * This is the same logic used by the ESLint CLI executable to determine + * configuration for each file it processes. + * @param {string} filePath The path of the file to retrieve a config object for. + * @returns {Promise} A configuration object for the file. + */ + async calculateConfigForFile(filePath) { + if (!isNonEmptyString(filePath)) { + throw new Error("'filePath' must be a non-empty string"); + } + const { cliEngine } = privateMembersMap.get(this); + + return cliEngine.getConfigForFile(filePath); + } + + /** + * Checks if a given path is ignored by ESLint. + * @param {string} filePath The path of the file to check. + * @returns {Promise} Whether or not the given path is ignored. + */ + async isPathIgnored(filePath) { + if (!isNonEmptyString(filePath)) { + throw new Error("'filePath' must be a non-empty string"); + } + const { cliEngine } = privateMembersMap.get(this); + + return cliEngine.isPathIgnored(filePath); + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { + ESLint, + + /** + * Get the private class members of a given ESLint instance for tests. + * @param {ESLint} instance The ESLint instance to get. + * @returns {ESLintPrivateMembers} The instance's private class members. + */ + getESLintPrivateMembers(instance) { + return privateMembersMap.get(instance); + } +}; diff --git a/node_modules/eslint/lib/eslint/flat-eslint.js b/node_modules/eslint/lib/eslint/flat-eslint.js new file mode 100644 index 0000000..e436c46 --- /dev/null +++ b/node_modules/eslint/lib/eslint/flat-eslint.js @@ -0,0 +1,1176 @@ +/** + * @fileoverview Main class using flat config + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +// Note: Node.js 12 does not support fs/promises. +const fs = require("fs").promises; +const path = require("path"); +const findUp = require("find-up"); +const { version } = require("../../package.json"); +const { Linter } = require("../linter"); +const { getRuleFromConfig } = require("../config/flat-config-helpers"); +const { gitignoreToMinimatch } = require("@humanwhocodes/gitignore-to-minimatch"); +const { + Legacy: { + ConfigOps: { + getRuleSeverity + }, + ModuleResolver, + naming + } +} = require("@eslint/eslintrc"); + +const { + fileExists, + findFiles, + getCacheFile, + + isNonEmptyString, + isArrayOfNonEmptyString, + + createIgnoreResult, + isErrorMessage, + + processOptions +} = require("./eslint-helpers"); +const { pathToFileURL } = require("url"); +const { FlatConfigArray } = require("../config/flat-config-array"); +const LintResultCache = require("../cli-engine/lint-result-cache"); + +/* + * This is necessary to allow overwriting writeFile for testing purposes. + * We can just use fs/promises once we drop Node.js 12 support. + */ + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +// For VSCode IntelliSense +/** @typedef {import("../shared/types").ConfigData} ConfigData */ +/** @typedef {import("../shared/types").DeprecatedRuleInfo} DeprecatedRuleInfo */ +/** @typedef {import("../shared/types").LintMessage} LintMessage */ +/** @typedef {import("../shared/types").ParserOptions} ParserOptions */ +/** @typedef {import("../shared/types").Plugin} Plugin */ +/** @typedef {import("../shared/types").RuleConf} RuleConf */ +/** @typedef {import("../shared/types").Rule} Rule */ +/** @typedef {ReturnType} ExtractedConfig */ + +/** + * The options with which to configure the ESLint instance. + * @typedef {Object} FlatESLintOptions + * @property {boolean} [allowInlineConfig] Enable or disable inline configuration comments. + * @property {ConfigData} [baseConfig] Base config object, extended by all configs used with this instance + * @property {boolean} [cache] Enable result caching. + * @property {string} [cacheLocation] The cache file to use instead of .eslintcache. + * @property {"metadata" | "content"} [cacheStrategy] The strategy used to detect changed files. + * @property {string} [cwd] The value to use for the current working directory. + * @property {boolean} [errorOnUnmatchedPattern] If `false` then `ESLint#lintFiles()` doesn't throw even if no target files found. Defaults to `true`. + * @property {boolean|Function} [fix] Execute in autofix mode. If a function, should return a boolean. + * @property {string[]} [fixTypes] Array of rule types to apply fixes for. + * @property {boolean} [globInputPaths] Set to false to skip glob resolution of input file paths to lint (default: true). If false, each input file paths is assumed to be a non-glob path to an existing file. + * @property {boolean} [ignore] False disables use of .eslintignore. + * @property {string} [ignorePath] The ignore file to use instead of .eslintignore. + * @property {string[]} [ignorePatterns] Ignore file patterns to use in addition to .eslintignore. + * @property {ConfigData} [overrideConfig] Override config object, overrides all configs used with this instance + * @property {boolean|string} [overrideConfigFile] Searches for default config file when falsy; + * doesn't do any config file lookup when `true`; considered to be a config filename + * when a string. + * @property {Record} [plugins] An array of plugin implementations. + * @property {"error" | "warn" | "off"} [reportUnusedDisableDirectives] the severity to report unused eslint-disable directives. + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const FLAT_CONFIG_FILENAME = "eslint.config.js"; +const debug = require("debug")("eslint:flat-eslint"); +const removedFormatters = new Set(["table", "codeframe"]); +const privateMembers = new WeakMap(); + +/** + * It will calculate the error and warning count for collection of messages per file + * @param {LintMessage[]} messages Collection of messages + * @returns {Object} Contains the stats + * @private + */ +function calculateStatsPerFile(messages) { + return messages.reduce((stat, message) => { + if (message.fatal || message.severity === 2) { + stat.errorCount++; + if (message.fatal) { + stat.fatalErrorCount++; + } + if (message.fix) { + stat.fixableErrorCount++; + } + } else { + stat.warningCount++; + if (message.fix) { + stat.fixableWarningCount++; + } + } + return stat; + }, { + errorCount: 0, + fatalErrorCount: 0, + warningCount: 0, + fixableErrorCount: 0, + fixableWarningCount: 0 + }); +} + +/** + * It will calculate the error and warning count for collection of results from all files + * @param {LintResult[]} results Collection of messages from all the files + * @returns {Object} Contains the stats + * @private + */ +function calculateStatsPerRun(results) { + return results.reduce((stat, result) => { + stat.errorCount += result.errorCount; + stat.fatalErrorCount += result.fatalErrorCount; + stat.warningCount += result.warningCount; + stat.fixableErrorCount += result.fixableErrorCount; + stat.fixableWarningCount += result.fixableWarningCount; + return stat; + }, { + errorCount: 0, + fatalErrorCount: 0, + warningCount: 0, + fixableErrorCount: 0, + fixableWarningCount: 0 + }); +} + +/** + * Loads global ignore patterns from an ignore file (usually .eslintignore). + * @param {string} filePath The filename to load. + * @returns {ignore} A function encapsulating the ignore patterns. + * @throws {Error} If the file cannot be read. + * @private + */ +async function loadIgnoreFilePatterns(filePath) { + debug(`Loading ignore file: ${filePath}`); + + try { + const ignoreFileText = await fs.readFile(filePath, { encoding: "utf8" }); + + return ignoreFileText + .split(/\r?\n/gu) + .filter(line => line.trim() !== "" && !line.startsWith("#")); + + } catch (e) { + debug(`Error reading ignore file: ${filePath}`); + e.message = `Cannot read ignore file: ${filePath}\nError: ${e.message}`; + throw e; + } +} + +/** + * Create rulesMeta object. + * @param {Map} rules a map of rules from which to generate the object. + * @returns {Object} metadata for all enabled rules. + */ +function createRulesMeta(rules) { + return Array.from(rules).reduce((retVal, [id, rule]) => { + retVal[id] = rule.meta; + return retVal; + }, {}); +} + +/** @type {WeakMap} */ +const usedDeprecatedRulesCache = new WeakMap(); + +/** + * Create used deprecated rule list. + * @param {CLIEngine} eslint The CLIEngine instance. + * @param {string} maybeFilePath The absolute path to a lint target file or `""`. + * @returns {DeprecatedRuleInfo[]} The used deprecated rule list. + */ +function getOrFindUsedDeprecatedRules(eslint, maybeFilePath) { + const { + configs, + options: { cwd } + } = privateMembers.get(eslint); + const filePath = path.isAbsolute(maybeFilePath) + ? maybeFilePath + : path.join(cwd, "__placeholder__.js"); + const config = configs.getConfig(filePath); + + // Most files use the same config, so cache it. + if (config && !usedDeprecatedRulesCache.has(config)) { + const retv = []; + + if (config.rules) { + for (const [ruleId, ruleConf] of Object.entries(config.rules)) { + if (getRuleSeverity(ruleConf) === 0) { + continue; + } + const rule = getRuleFromConfig(ruleId, config); + const meta = rule && rule.meta; + + if (meta && meta.deprecated) { + retv.push({ ruleId, replacedBy: meta.replacedBy || [] }); + } + } + } + + + usedDeprecatedRulesCache.set(config, Object.freeze(retv)); + } + + return config ? usedDeprecatedRulesCache.get(config) : Object.freeze([]); +} + +/** + * Processes the linting results generated by a CLIEngine linting report to + * match the ESLint class's API. + * @param {CLIEngine} eslint The CLIEngine instance. + * @param {CLIEngineLintReport} report The CLIEngine linting report to process. + * @returns {LintResult[]} The processed linting results. + */ +function processLintReport(eslint, { results }) { + const descriptor = { + configurable: true, + enumerable: true, + get() { + return getOrFindUsedDeprecatedRules(eslint, this.filePath); + } + }; + + for (const result of results) { + Object.defineProperty(result, "usedDeprecatedRules", descriptor); + } + + return results; +} + +/** + * An Array.prototype.sort() compatible compare function to order results by their file path. + * @param {LintResult} a The first lint result. + * @param {LintResult} b The second lint result. + * @returns {number} An integer representing the order in which the two results should occur. + */ +function compareResultsByFilePath(a, b) { + if (a.filePath < b.filePath) { + return -1; + } + + if (a.filePath > b.filePath) { + return 1; + } + + return 0; +} + +/** + * Searches from the current working directory up until finding the + * given flat config filename. + * @param {string} cwd The current working directory to search from. + * @returns {Promise} The filename if found or `null` if not. + */ +function findFlatConfigFile(cwd) { + return findUp( + FLAT_CONFIG_FILENAME, + { cwd } + ); +} + +/** + * Load the config array from the given filename. + * @param {string} filePath The filename to load from. + * @param {Object} options Options to help load the config file. + * @param {string} options.basePath The base path for the config array. + * @param {boolean} options.shouldIgnore Whether to honor ignore patterns. + * @returns {Promise} The config array loaded from the config file. + */ +async function loadFlatConfigFile(filePath, { basePath, shouldIgnore }) { + debug(`Loading config from ${filePath}`); + + const fileURL = pathToFileURL(filePath); + + debug(`Config file URL is ${fileURL}`); + + const module = await import(fileURL); + + return new FlatConfigArray(module.default, { + basePath, + shouldIgnore + }); +} + +/** + * Calculates the config array for this run based on inputs. + * @param {FlatESLint} eslint The instance to create the config array for. + * @param {import("./eslint").ESLintOptions} options The ESLint instance options. + * @returns {FlatConfigArray} The config array for `eslint``. + */ +async function calculateConfigArray(eslint, { + cwd, + overrideConfig, + configFile, + ignore: shouldIgnore, + ignorePath, + ignorePatterns +}) { + + // check for cached instance + const slots = privateMembers.get(eslint); + + if (slots.configs) { + return slots.configs; + } + + // determine where to load config file from + let configFilePath; + let basePath = cwd; + + if (typeof configFile === "string") { + debug(`Override config file path is ${configFile}`); + configFilePath = path.resolve(cwd, configFile); + } else if (configFile !== false) { + debug("Searching for eslint.config.js"); + configFilePath = await findFlatConfigFile(cwd); + + if (!configFilePath) { + throw new Error("Could not find config file."); + } + + basePath = path.resolve(path.dirname(configFilePath)); + } + + // load config array + let configs; + + if (configFilePath) { + configs = await loadFlatConfigFile(configFilePath, { + basePath, + shouldIgnore + }); + } else { + configs = new FlatConfigArray([], { basePath, shouldIgnore }); + } + + // add in any configured defaults + configs.push(...slots.defaultConfigs); + + let allIgnorePatterns = []; + let ignoreFilePath; + + // load ignore file if necessary + if (shouldIgnore) { + if (ignorePath) { + ignoreFilePath = path.resolve(cwd, ignorePath); + allIgnorePatterns = await loadIgnoreFilePatterns(ignoreFilePath); + } else { + ignoreFilePath = path.resolve(cwd, ".eslintignore"); + + // no error if .eslintignore doesn't exist` + if (fileExists(ignoreFilePath)) { + allIgnorePatterns = await loadIgnoreFilePatterns(ignoreFilePath); + } + } + } + + // append command line ignore patterns + if (ignorePatterns) { + if (typeof ignorePatterns === "string") { + allIgnorePatterns.push(ignorePatterns); + } else { + allIgnorePatterns.push(...ignorePatterns); + } + } + + /* + * If the config file basePath is different than the cwd, then + * the ignore patterns won't work correctly. Here, we adjust the + * ignore pattern to include the correct relative path. Patterns + * loaded from ignore files are always relative to the cwd, whereas + * the config file basePath can be an ancestor of the cwd. + */ + if (basePath !== cwd && allIgnorePatterns.length) { + + const relativeIgnorePath = path.relative(basePath, cwd); + + allIgnorePatterns = allIgnorePatterns.map(pattern => { + const negated = pattern.startsWith("!"); + const basePattern = negated ? pattern.slice(1) : pattern; + + /* + * Ignore patterns are considered relative to a directory + * when the pattern contains a slash in a position other + * than the last character. If that's the case, we need to + * add the relative ignore path to the current pattern to + * get the correct behavior. Otherwise, no change is needed. + */ + if (!basePattern.includes("/") || basePattern.endsWith("/")) { + return pattern; + } + + return (negated ? "!" : "") + + path.posix.join(relativeIgnorePath, basePattern); + }); + } + + if (allIgnorePatterns.length) { + + /* + * Ignore patterns are added to the end of the config array + * so they can override default ignores. + */ + configs.push({ + ignores: allIgnorePatterns.map(gitignoreToMinimatch) + }); + } + + if (overrideConfig) { + if (Array.isArray(overrideConfig)) { + configs.push(...overrideConfig); + } else { + configs.push(overrideConfig); + } + } + + await configs.normalize(); + + // cache the config array for this instance + slots.configs = configs; + + return configs; +} + +/** + * Processes an source code using ESLint. + * @param {Object} config The config object. + * @param {string} config.text The source code to verify. + * @param {string} config.cwd The path to the current working directory. + * @param {string|undefined} config.filePath The path to the file of `text`. If this is undefined, it uses ``. + * @param {FlatConfigArray} config.configs The config. + * @param {boolean} config.fix If `true` then it does fix. + * @param {boolean} config.allowInlineConfig If `true` then it uses directive comments. + * @param {boolean} config.reportUnusedDisableDirectives If `true` then it reports unused `eslint-disable` comments. + * @param {Linter} config.linter The linter instance to verify. + * @returns {LintResult} The result of linting. + * @private + */ +function verifyText({ + text, + cwd, + filePath: providedFilePath, + configs, + fix, + allowInlineConfig, + reportUnusedDisableDirectives, + linter +}) { + const filePath = providedFilePath || ""; + + debug(`Lint ${filePath}`); + + /* + * Verify. + * `config.extractConfig(filePath)` requires an absolute path, but `linter` + * doesn't know CWD, so it gives `linter` an absolute path always. + */ + const filePathToVerify = filePath === "" ? path.join(cwd, "__placeholder__.js") : filePath; + const { fixed, messages, output } = linter.verifyAndFix( + text, + configs, + { + allowInlineConfig, + filename: filePathToVerify, + fix, + reportUnusedDisableDirectives, + + /** + * Check if the linter should adopt a given code block or not. + * @param {string} blockFilename The virtual filename of a code block. + * @returns {boolean} `true` if the linter should adopt the code block. + */ + filterCodeBlock(blockFilename) { + return configs.isExplicitMatch(blockFilename); + } + } + ); + + // Tweak and return. + const result = { + filePath: filePath === "" ? filePath : path.resolve(filePath), + messages, + suppressedMessages: linter.getSuppressedMessages(), + ...calculateStatsPerFile(messages) + }; + + if (fixed) { + result.output = output; + } + + if ( + result.errorCount + result.warningCount > 0 && + typeof result.output === "undefined" + ) { + result.source = text; + } + + return result; +} + +/** + * Checks whether a message's rule type should be fixed. + * @param {LintMessage} message The message to check. + * @param {FlatConfig} config The config for the file that generated the message. + * @param {string[]} fixTypes An array of fix types to check. + * @returns {boolean} Whether the message should be fixed. + */ +function shouldMessageBeFixed(message, config, fixTypes) { + if (!message.ruleId) { + return fixTypes.has("directive"); + } + + const rule = message.ruleId && getRuleFromConfig(message.ruleId, config); + + return Boolean(rule && rule.meta && fixTypes.has(rule.meta.type)); +} + +/** + * Collect used deprecated rules. + * @param {Array} configs The configs to evaluate. + * @returns {IterableIterator} Used deprecated rules. + */ +function *iterateRuleDeprecationWarnings(configs) { + const processedRuleIds = new Set(); + + for (const config of configs) { + for (const [ruleId, ruleConfig] of Object.entries(config.rules)) { + + // Skip if it was processed. + if (processedRuleIds.has(ruleId)) { + continue; + } + processedRuleIds.add(ruleId); + + // Skip if it's not used. + if (!getRuleSeverity(ruleConfig)) { + continue; + } + const rule = getRuleFromConfig(ruleId, config); + + // Skip if it's not deprecated. + if (!(rule && rule.meta && rule.meta.deprecated)) { + continue; + } + + // This rule was used and deprecated. + yield { + ruleId, + replacedBy: rule.meta.replacedBy || [] + }; + } + } +} + +//----------------------------------------------------------------------------- +// Main API +//----------------------------------------------------------------------------- + +/** + * Primary Node.js API for ESLint. + */ +class FlatESLint { + + /** + * Creates a new instance of the main ESLint API. + * @param {FlatESLintOptions} options The options for this instance. + */ + constructor(options = {}) { + + const defaultConfigs = []; + const processedOptions = processOptions(options); + const linter = new Linter({ + cwd: processedOptions.cwd, + configType: "flat" + }); + + const cacheFilePath = getCacheFile( + processedOptions.cacheLocation, + processedOptions.cwd + ); + + const lintResultCache = processedOptions.cache + ? new LintResultCache(cacheFilePath, processedOptions.cacheStrategy) + : null; + + privateMembers.set(this, { + options: processedOptions, + linter, + cacheFilePath, + lintResultCache, + defaultConfigs, + defaultIgnores: () => false, + configs: null + }); + + /** + * If additional plugins are passed in, add that to the default + * configs for this instance. + */ + if (options.plugins) { + + const plugins = {}; + + for (const [pluginName, plugin] of Object.entries(options.plugins)) { + plugins[naming.getShorthandName(pluginName, "eslint-plugin")] = plugin; + } + + defaultConfigs.push({ + plugins + }); + } + + } + + /** + * The version text. + * @type {string} + */ + static get version() { + return version; + } + + /** + * Outputs fixes from the given results to files. + * @param {LintResult[]} results The lint results. + * @returns {Promise} Returns a promise that is used to track side effects. + */ + static async outputFixes(results) { + if (!Array.isArray(results)) { + throw new Error("'results' must be an array"); + } + + await Promise.all( + results + .filter(result => { + if (typeof result !== "object" || result === null) { + throw new Error("'results' must include only objects"); + } + return ( + typeof result.output === "string" && + path.isAbsolute(result.filePath) + ); + }) + .map(r => fs.writeFile(r.filePath, r.output)) + ); + } + + /** + * Returns results that only contains errors. + * @param {LintResult[]} results The results to filter. + * @returns {LintResult[]} The filtered results. + */ + static getErrorResults(results) { + const filtered = []; + + results.forEach(result => { + const filteredMessages = result.messages.filter(isErrorMessage); + const filteredSuppressedMessages = result.suppressedMessages.filter(isErrorMessage); + + if (filteredMessages.length > 0) { + filtered.push({ + ...result, + messages: filteredMessages, + suppressedMessages: filteredSuppressedMessages, + errorCount: filteredMessages.length, + warningCount: 0, + fixableErrorCount: result.fixableErrorCount, + fixableWarningCount: 0 + }); + } + }); + + return filtered; + } + + /** + * Returns meta objects for each rule represented in the lint results. + * @param {LintResult[]} results The results to fetch rules meta for. + * @returns {Object} A mapping of ruleIds to rule meta objects. + * @throws {TypeError} When the results object wasn't created from this ESLint instance. + * @throws {TypeError} When a plugin or rule is missing. + */ + getRulesMetaForResults(results) { + + const resultRules = new Map(); + + // short-circuit simple case + if (results.length === 0) { + return resultRules; + } + + const { configs } = privateMembers.get(this); + + /* + * We can only accurately return rules meta information for linting results if the + * results were created by this instance. Otherwise, the necessary rules data is + * not available. So if the config array doesn't already exist, just throw an error + * to let the user know we can't do anything here. + */ + if (!configs) { + throw new TypeError("Results object was not created from this ESLint instance."); + } + + for (const result of results) { + + /* + * Normalize filename for . + */ + const filePath = result.filePath === "" + ? "__placeholder__.js" : result.filePath; + + /* + * All of the plugin and rule information is contained within the + * calculated config for the given file. + */ + const config = configs.getConfig(filePath); + const allMessages = result.messages.concat(result.suppressedMessages); + + for (const { ruleId } of allMessages) { + const rule = getRuleFromConfig(ruleId, config); + + // ensure the rule exists + if (!rule) { + throw new TypeError(`Could not find the rule "${ruleId}".`); + } + + resultRules.set(ruleId, rule); + } + } + + return createRulesMeta(resultRules); + } + + /** + * Executes the current configuration on an array of file and directory names. + * @param {string|string[]} patterns An array of file and directory names. + * @returns {Promise} The results of linting the file patterns given. + */ + async lintFiles(patterns) { + if (!isNonEmptyString(patterns) && !isArrayOfNonEmptyString(patterns)) { + throw new Error("'patterns' must be a non-empty string or an array of non-empty strings"); + } + + const { + cacheFilePath, + lintResultCache, + linter, + options: eslintOptions + } = privateMembers.get(this); + const configs = await calculateConfigArray(this, eslintOptions); + const { + allowInlineConfig, + cache, + cwd, + fix, + fixTypes, + reportUnusedDisableDirectives, + globInputPaths, + errorOnUnmatchedPattern + } = eslintOptions; + const startTime = Date.now(); + const usedConfigs = []; + const fixTypesSet = fixTypes ? new Set(fixTypes) : null; + + // Delete cache file; should this be done here? + if (!cache && cacheFilePath) { + debug(`Deleting cache file at ${cacheFilePath}`); + + try { + await fs.unlink(cacheFilePath); + } catch (error) { + const errorCode = error && error.code; + + // Ignore errors when no such file exists or file system is read only (and cache file does not exist) + if (errorCode !== "ENOENT" && !(errorCode === "EROFS" && !(await fs.exists(cacheFilePath)))) { + throw error; + } + } + } + + const filePaths = await findFiles({ + patterns: typeof patterns === "string" ? [patterns] : patterns, + cwd, + globInputPaths, + configs, + errorOnUnmatchedPattern + }); + + debug(`${filePaths.length} files found in: ${Date.now() - startTime}ms`); + + /* + * Because we need to process multiple files, including reading from disk, + * it is most efficient to start by reading each file via promises so that + * they can be done in parallel. Then, we can lint the returned text. This + * ensures we are waiting the minimum amount of time in between lints. + */ + const results = await Promise.all( + + filePaths.map(({ filePath, ignored }) => { + + /* + * If a filename was entered that matches an ignore + * pattern, then notify the user. + */ + if (ignored) { + return createIgnoreResult(filePath, cwd); + } + + const config = configs.getConfig(filePath); + + /* + * Sometimes a file found through a glob pattern will + * be ignored. In this case, `config` will be undefined + * and we just silently ignore the file. + */ + if (!config) { + return void 0; + } + + /* + * Store used configs for: + * - this method uses to collect used deprecated rules. + * - `--fix-type` option uses to get the loaded rule's meta data. + */ + if (!usedConfigs.includes(config)) { + usedConfigs.push(config); + } + + // Skip if there is cached result. + if (lintResultCache) { + const cachedResult = + lintResultCache.getCachedLintResults(filePath, config); + + if (cachedResult) { + const hadMessages = + cachedResult.messages && + cachedResult.messages.length > 0; + + if (hadMessages && fix) { + debug(`Reprocessing cached file to allow autofix: ${filePath}`); + } else { + debug(`Skipping file since it hasn't changed: ${filePath}`); + return cachedResult; + } + } + } + + + // set up fixer for fixtypes if necessary + let fixer = fix; + + if (fix && fixTypesSet) { + + // save original value of options.fix in case it's a function + const originalFix = (typeof fix === "function") + ? fix : () => true; + + fixer = message => shouldMessageBeFixed(message, config, fixTypesSet) && originalFix(message); + } + + return fs.readFile(filePath, "utf8") + .then(text => { + + // do the linting + const result = verifyText({ + text, + filePath, + configs, + cwd, + fix: fixer, + allowInlineConfig, + reportUnusedDisableDirectives, + linter + }); + + /* + * Store the lint result in the LintResultCache. + * NOTE: The LintResultCache will remove the file source and any + * other properties that are difficult to serialize, and will + * hydrate those properties back in on future lint runs. + */ + if (lintResultCache) { + lintResultCache.setCachedLintResults(filePath, config, result); + } + + return result; + }); + + }) + ); + + // Persist the cache to disk. + if (lintResultCache) { + lintResultCache.reconcile(); + } + + let usedDeprecatedRules; + const finalResults = results.filter(result => !!result); + + return processLintReport(this, { + results: finalResults, + ...calculateStatsPerRun(finalResults), + + // Initialize it lazily because CLI and `ESLint` API don't use it. + get usedDeprecatedRules() { + if (!usedDeprecatedRules) { + usedDeprecatedRules = Array.from( + iterateRuleDeprecationWarnings(usedConfigs) + ); + } + return usedDeprecatedRules; + } + }); + } + + /** + * Executes the current configuration on text. + * @param {string} code A string of JavaScript code to lint. + * @param {Object} [options] The options. + * @param {string} [options.filePath] The path to the file of the source code. + * @param {boolean} [options.warnIgnored] When set to true, warn if given filePath is an ignored path. + * @returns {Promise} The results of linting the string of code given. + */ + async lintText(code, options = {}) { + + // Parameter validation + + if (typeof code !== "string") { + throw new Error("'code' must be a string"); + } + + if (typeof options !== "object") { + throw new Error("'options' must be an object, null, or undefined"); + } + + // Options validation + + const { + filePath, + warnIgnored = false, + ...unknownOptions + } = options || {}; + + const unknownOptionKeys = Object.keys(unknownOptions); + + if (unknownOptionKeys.length > 0) { + throw new Error(`'options' must not include the unknown option(s): ${unknownOptionKeys.join(", ")}`); + } + + if (filePath !== void 0 && !isNonEmptyString(filePath)) { + throw new Error("'options.filePath' must be a non-empty string or undefined"); + } + + if (typeof warnIgnored !== "boolean") { + throw new Error("'options.warnIgnored' must be a boolean or undefined"); + } + + // Now we can get down to linting + + const { + linter, + options: eslintOptions + } = privateMembers.get(this); + const configs = await calculateConfigArray(this, eslintOptions); + const { + allowInlineConfig, + cwd, + fix, + reportUnusedDisableDirectives + } = eslintOptions; + const results = []; + const startTime = Date.now(); + const resolvedFilename = path.resolve(cwd, filePath || "__placeholder__.js"); + let config; + + // Clear the last used config arrays. + if (resolvedFilename && await this.isPathIgnored(resolvedFilename)) { + if (warnIgnored) { + results.push(createIgnoreResult(resolvedFilename, cwd)); + } + } else { + + // TODO: Needed? + config = configs.getConfig(resolvedFilename); + + // Do lint. + results.push(verifyText({ + text: code, + filePath: resolvedFilename.endsWith("__placeholder__.js") ? "" : resolvedFilename, + configs, + cwd, + fix, + allowInlineConfig, + reportUnusedDisableDirectives, + linter + })); + } + + debug(`Linting complete in: ${Date.now() - startTime}ms`); + let usedDeprecatedRules; + + return processLintReport(this, { + results, + ...calculateStatsPerRun(results), + + // Initialize it lazily because CLI and `ESLint` API don't use it. + get usedDeprecatedRules() { + if (!usedDeprecatedRules) { + usedDeprecatedRules = Array.from( + iterateRuleDeprecationWarnings(config) + ); + } + return usedDeprecatedRules; + } + }); + + } + + /** + * Returns the formatter representing the given formatter name. + * @param {string} [name] The name of the formatter to load. + * The following values are allowed: + * - `undefined` ... Load `stylish` builtin formatter. + * - A builtin formatter name ... Load the builtin formatter. + * - A thirdparty formatter name: + * - `foo` → `eslint-formatter-foo` + * - `@foo` → `@foo/eslint-formatter` + * - `@foo/bar` → `@foo/eslint-formatter-bar` + * - A file path ... Load the file. + * @returns {Promise} A promise resolving to the formatter object. + * This promise will be rejected if the given formatter was not found or not + * a function. + */ + async loadFormatter(name = "stylish") { + if (typeof name !== "string") { + throw new Error("'name' must be a string"); + } + + // replace \ with / for Windows compatibility + const normalizedFormatName = name.replace(/\\/gu, "/"); + const namespace = naming.getNamespaceFromTerm(normalizedFormatName); + + // grab our options + const { cwd } = privateMembers.get(this).options; + + + let formatterPath; + + // if there's a slash, then it's a file (TODO: this check seems dubious for scoped npm packages) + if (!namespace && normalizedFormatName.includes("/")) { + formatterPath = path.resolve(cwd, normalizedFormatName); + } else { + try { + const npmFormat = naming.normalizePackageName(normalizedFormatName, "eslint-formatter"); + + // TODO: This is pretty dirty...would be nice to clean up at some point. + formatterPath = ModuleResolver.resolve(npmFormat, path.join(cwd, "__placeholder__.js")); + } catch { + formatterPath = path.resolve(__dirname, "../", "cli-engine", "formatters", `${normalizedFormatName}.js`); + } + } + + let formatter; + + try { + formatter = (await import(pathToFileURL(formatterPath))).default; + } catch (ex) { + + // check for formatters that have been removed + if (removedFormatters.has(name)) { + ex.message = `The ${name} formatter is no longer part of core ESLint. Install it manually with \`npm install -D eslint-formatter-${name}\``; + } else { + ex.message = `There was a problem loading formatter: ${formatterPath}\nError: ${ex.message}`; + } + + throw ex; + } + + + if (typeof formatter !== "function") { + throw new TypeError(`Formatter must be a function, but got a ${typeof formatter}.`); + } + + const eslint = this; + + return { + + /** + * The main formatter method. + * @param {LintResults[]} results The lint results to format. + * @returns {string} The formatted lint results. + */ + format(results) { + let rulesMeta = null; + + results.sort(compareResultsByFilePath); + + return formatter(results, { + cwd, + get rulesMeta() { + if (!rulesMeta) { + rulesMeta = eslint.getRulesMetaForResults(results); + } + + return rulesMeta; + } + }); + } + }; + } + + /** + * Returns a configuration object for the given file based on the CLI options. + * This is the same logic used by the ESLint CLI executable to determine + * configuration for each file it processes. + * @param {string} filePath The path of the file to retrieve a config object for. + * @returns {Promise} A configuration object for the file + * or `undefined` if there is no configuration data for the object. + */ + async calculateConfigForFile(filePath) { + if (!isNonEmptyString(filePath)) { + throw new Error("'filePath' must be a non-empty string"); + } + const options = privateMembers.get(this).options; + const absolutePath = path.resolve(options.cwd, filePath); + const configs = await calculateConfigArray(this, options); + + return configs.getConfig(absolutePath); + } + + /** + * Checks if a given path is ignored by ESLint. + * @param {string} filePath The path of the file to check. + * @returns {Promise} Whether or not the given path is ignored. + */ + async isPathIgnored(filePath) { + const config = await this.calculateConfigForFile(filePath); + + return config === void 0; + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { + FlatESLint, + findFlatConfigFile +}; diff --git a/node_modules/eslint/lib/eslint/index.js b/node_modules/eslint/lib/eslint/index.js new file mode 100644 index 0000000..017b768 --- /dev/null +++ b/node_modules/eslint/lib/eslint/index.js @@ -0,0 +1,9 @@ +"use strict"; + +const { ESLint } = require("./eslint"); +const { FlatESLint } = require("./flat-eslint"); + +module.exports = { + ESLint, + FlatESLint +}; diff --git a/node_modules/eslint/lib/linter/apply-disable-directives.js b/node_modules/eslint/lib/linter/apply-disable-directives.js new file mode 100644 index 0000000..459c859 --- /dev/null +++ b/node_modules/eslint/lib/linter/apply-disable-directives.js @@ -0,0 +1,341 @@ +/** + * @fileoverview A module that filters reported problems based on `eslint-disable` and `eslint-enable` comments + * @author Teddy Katz + */ + +"use strict"; + +const escapeRegExp = require("escape-string-regexp"); + +/** + * Compares the locations of two objects in a source file + * @param {{line: number, column: number}} itemA The first object + * @param {{line: number, column: number}} itemB The second object + * @returns {number} A value less than 1 if itemA appears before itemB in the source file, greater than 1 if + * itemA appears after itemB in the source file, or 0 if itemA and itemB have the same location. + */ +function compareLocations(itemA, itemB) { + return itemA.line - itemB.line || itemA.column - itemB.column; +} + +/** + * Groups a set of directives into sub-arrays by their parent comment. + * @param {Directive[]} directives Unused directives to be removed. + * @returns {Directive[][]} Directives grouped by their parent comment. + */ +function groupByParentComment(directives) { + const groups = new Map(); + + for (const directive of directives) { + const { unprocessedDirective: { parentComment } } = directive; + + if (groups.has(parentComment)) { + groups.get(parentComment).push(directive); + } else { + groups.set(parentComment, [directive]); + } + } + + return [...groups.values()]; +} + +/** + * Creates removal details for a set of directives within the same comment. + * @param {Directive[]} directives Unused directives to be removed. + * @param {Token} commentToken The backing Comment token. + * @returns {{ description, fix, unprocessedDirective }[]} Details for later creation of output Problems. + */ +function createIndividualDirectivesRemoval(directives, commentToken) { + + /* + * `commentToken.value` starts right after `//` or `/*`. + * All calculated offsets will be relative to this index. + */ + const commentValueStart = commentToken.range[0] + "//".length; + + // Find where the list of rules starts. `\S+` matches with the directive name (e.g. `eslint-disable-line`) + const listStartOffset = /^\s*\S+\s+/u.exec(commentToken.value)[0].length; + + /* + * Get the list text without any surrounding whitespace. In order to preserve the original + * formatting, we don't want to change that whitespace. + * + * // eslint-disable-line rule-one , rule-two , rule-three -- comment + * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + */ + const listText = commentToken.value + .slice(listStartOffset) // remove directive name and all whitespace before the list + .split(/\s-{2,}\s/u)[0] // remove `-- comment`, if it exists + .trimEnd(); // remove all whitespace after the list + + /* + * We can assume that `listText` contains multiple elements. + * Otherwise, this function wouldn't be called - if there is + * only one rule in the list, then the whole comment must be removed. + */ + + return directives.map(directive => { + const { ruleId } = directive; + + const regex = new RegExp(String.raw`(?:^|\s*,\s*)${escapeRegExp(ruleId)}(?:\s*,\s*|$)`, "u"); + const match = regex.exec(listText); + const matchedText = match[0]; + const matchStartOffset = listStartOffset + match.index; + const matchEndOffset = matchStartOffset + matchedText.length; + + const firstIndexOfComma = matchedText.indexOf(","); + const lastIndexOfComma = matchedText.lastIndexOf(","); + + let removalStartOffset, removalEndOffset; + + if (firstIndexOfComma !== lastIndexOfComma) { + + /* + * Since there are two commas, this must one of the elements in the middle of the list. + * Matched range starts where the previous rule name ends, and ends where the next rule name starts. + * + * // eslint-disable-line rule-one , rule-two , rule-three -- comment + * ^^^^^^^^^^^^^^ + * + * We want to remove only the content between the two commas, and also one of the commas. + * + * // eslint-disable-line rule-one , rule-two , rule-three -- comment + * ^^^^^^^^^^^ + */ + removalStartOffset = matchStartOffset + firstIndexOfComma; + removalEndOffset = matchStartOffset + lastIndexOfComma; + + } else { + + /* + * This is either the first element or the last element. + * + * If this is the first element, matched range starts where the first rule name starts + * and ends where the second rule name starts. This is exactly the range we want + * to remove so that the second rule name will start where the first one was starting + * and thus preserve the original formatting. + * + * // eslint-disable-line rule-one , rule-two , rule-three -- comment + * ^^^^^^^^^^^ + * + * Similarly, if this is the last element, we've already matched the range we want to + * remove. The previous rule name will end where the last one was ending, relative + * to the content on the right side. + * + * // eslint-disable-line rule-one , rule-two , rule-three -- comment + * ^^^^^^^^^^^^^ + */ + removalStartOffset = matchStartOffset; + removalEndOffset = matchEndOffset; + } + + return { + description: `'${ruleId}'`, + fix: { + range: [ + commentValueStart + removalStartOffset, + commentValueStart + removalEndOffset + ], + text: "" + }, + unprocessedDirective: directive.unprocessedDirective + }; + }); +} + +/** + * Creates a description of deleting an entire unused disable comment. + * @param {Directive[]} directives Unused directives to be removed. + * @param {Token} commentToken The backing Comment token. + * @returns {{ description, fix, unprocessedDirective }} Details for later creation of an output Problem. + */ +function createCommentRemoval(directives, commentToken) { + const { range } = commentToken; + const ruleIds = directives.filter(directive => directive.ruleId).map(directive => `'${directive.ruleId}'`); + + return { + description: ruleIds.length <= 2 + ? ruleIds.join(" or ") + : `${ruleIds.slice(0, ruleIds.length - 1).join(", ")}, or ${ruleIds[ruleIds.length - 1]}`, + fix: { + range, + text: " " + }, + unprocessedDirective: directives[0].unprocessedDirective + }; +} + +/** + * Parses details from directives to create output Problems. + * @param {Directive[]} allDirectives Unused directives to be removed. + * @returns {{ description, fix, unprocessedDirective }[]} Details for later creation of output Problems. + */ +function processUnusedDisableDirectives(allDirectives) { + const directiveGroups = groupByParentComment(allDirectives); + + return directiveGroups.flatMap( + directives => { + const { parentComment } = directives[0].unprocessedDirective; + const remainingRuleIds = new Set(parentComment.ruleIds); + + for (const directive of directives) { + remainingRuleIds.delete(directive.ruleId); + } + + return remainingRuleIds.size + ? createIndividualDirectivesRemoval(directives, parentComment.commentToken) + : [createCommentRemoval(directives, parentComment.commentToken)]; + } + ); +} + +/** + * This is the same as the exported function, except that it + * doesn't handle disable-line and disable-next-line directives, and it always reports unused + * disable directives. + * @param {Object} options options for applying directives. This is the same as the options + * for the exported function, except that `reportUnusedDisableDirectives` is not supported + * (this function always reports unused disable directives). + * @returns {{problems: Problem[], unusedDisableDirectives: Problem[]}} An object with a list + * of problems (including suppressed ones) and unused eslint-disable directives + */ +function applyDirectives(options) { + const problems = []; + const usedDisableDirectives = new Set(); + + for (const problem of options.problems) { + let disableDirectivesForProblem = []; + let nextDirectiveIndex = 0; + + while ( + nextDirectiveIndex < options.directives.length && + compareLocations(options.directives[nextDirectiveIndex], problem) <= 0 + ) { + const directive = options.directives[nextDirectiveIndex++]; + + if (directive.ruleId === null || directive.ruleId === problem.ruleId) { + switch (directive.type) { + case "disable": + disableDirectivesForProblem.push(directive); + break; + + case "enable": + disableDirectivesForProblem = []; + break; + + // no default + } + } + } + + if (disableDirectivesForProblem.length > 0) { + const suppressions = disableDirectivesForProblem.map(directive => ({ + kind: "directive", + justification: directive.unprocessedDirective.justification + })); + + if (problem.suppressions) { + problem.suppressions = problem.suppressions.concat(suppressions); + } else { + problem.suppressions = suppressions; + usedDisableDirectives.add(disableDirectivesForProblem[disableDirectivesForProblem.length - 1]); + } + } + + problems.push(problem); + } + + const unusedDisableDirectivesToReport = options.directives + .filter(directive => directive.type === "disable" && !usedDisableDirectives.has(directive)); + + const processed = processUnusedDisableDirectives(unusedDisableDirectivesToReport); + + const unusedDisableDirectives = processed + .map(({ description, fix, unprocessedDirective }) => { + const { parentComment, type, line, column } = unprocessedDirective; + + return { + ruleId: null, + message: description + ? `Unused eslint-disable directive (no problems were reported from ${description}).` + : "Unused eslint-disable directive (no problems were reported).", + line: type === "disable-next-line" ? parentComment.commentToken.loc.start.line : line, + column: type === "disable-next-line" ? parentComment.commentToken.loc.start.column + 1 : column, + severity: options.reportUnusedDisableDirectives === "warn" ? 1 : 2, + nodeType: null, + ...options.disableFixes ? {} : { fix } + }; + }); + + return { problems, unusedDisableDirectives }; +} + +/** + * Given a list of directive comments (i.e. metadata about eslint-disable and eslint-enable comments) and a list + * of reported problems, adds the suppression information to the problems. + * @param {Object} options Information about directives and problems + * @param {{ + * type: ("disable"|"enable"|"disable-line"|"disable-next-line"), + * ruleId: (string|null), + * line: number, + * column: number, + * justification: string + * }} options.directives Directive comments found in the file, with one-based columns. + * Two directive comments can only have the same location if they also have the same type (e.g. a single eslint-disable + * comment for two different rules is represented as two directives). + * @param {{ruleId: (string|null), line: number, column: number}[]} options.problems + * A list of problems reported by rules, sorted by increasing location in the file, with one-based columns. + * @param {"off" | "warn" | "error"} options.reportUnusedDisableDirectives If `"warn"` or `"error"`, adds additional problems for unused directives + * @param {boolean} options.disableFixes If true, it doesn't make `fix` properties. + * @returns {{ruleId: (string|null), line: number, column: number, suppressions?: {kind: string, justification: string}}[]} + * An object with a list of reported problems, the suppressed of which contain the suppression information. + */ +module.exports = ({ directives, disableFixes, problems, reportUnusedDisableDirectives = "off" }) => { + const blockDirectives = directives + .filter(directive => directive.type === "disable" || directive.type === "enable") + .map(directive => Object.assign({}, directive, { unprocessedDirective: directive })) + .sort(compareLocations); + + const lineDirectives = directives.flatMap(directive => { + switch (directive.type) { + case "disable": + case "enable": + return []; + + case "disable-line": + return [ + { type: "disable", line: directive.line, column: 1, ruleId: directive.ruleId, unprocessedDirective: directive }, + { type: "enable", line: directive.line + 1, column: 0, ruleId: directive.ruleId, unprocessedDirective: directive } + ]; + + case "disable-next-line": + return [ + { type: "disable", line: directive.line + 1, column: 1, ruleId: directive.ruleId, unprocessedDirective: directive }, + { type: "enable", line: directive.line + 2, column: 0, ruleId: directive.ruleId, unprocessedDirective: directive } + ]; + + default: + throw new TypeError(`Unrecognized directive type '${directive.type}'`); + } + }).sort(compareLocations); + + const blockDirectivesResult = applyDirectives({ + problems, + directives: blockDirectives, + disableFixes, + reportUnusedDisableDirectives + }); + const lineDirectivesResult = applyDirectives({ + problems: blockDirectivesResult.problems, + directives: lineDirectives, + disableFixes, + reportUnusedDisableDirectives + }); + + return reportUnusedDisableDirectives !== "off" + ? lineDirectivesResult.problems + .concat(blockDirectivesResult.unusedDisableDirectives) + .concat(lineDirectivesResult.unusedDisableDirectives) + .sort(compareLocations) + : lineDirectivesResult.problems; +}; diff --git a/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js b/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js new file mode 100644 index 0000000..2dcc273 --- /dev/null +++ b/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js @@ -0,0 +1,844 @@ +/** + * @fileoverview A class of the code path analyzer. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const assert = require("assert"), + { breakableTypePattern } = require("../../shared/ast-utils"), + CodePath = require("./code-path"), + CodePathSegment = require("./code-path-segment"), + IdGenerator = require("./id-generator"), + debug = require("./debug-helpers"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given node is a `case` node (not `default` node). + * @param {ASTNode} node A `SwitchCase` node to check. + * @returns {boolean} `true` if the node is a `case` node (not `default` node). + */ +function isCaseNode(node) { + return Boolean(node.test); +} + +/** + * Checks if a given node appears as the value of a PropertyDefinition node. + * @param {ASTNode} node THe node to check. + * @returns {boolean} `true` if the node is a PropertyDefinition value, + * false if not. + */ +function isPropertyDefinitionValue(node) { + const parent = node.parent; + + return parent && parent.type === "PropertyDefinition" && parent.value === node; +} + +/** + * Checks whether the given logical operator is taken into account for the code + * path analysis. + * @param {string} operator The operator found in the LogicalExpression node + * @returns {boolean} `true` if the operator is "&&" or "||" or "??" + */ +function isHandledLogicalOperator(operator) { + return operator === "&&" || operator === "||" || operator === "??"; +} + +/** + * Checks whether the given assignment operator is a logical assignment operator. + * Logical assignments are taken into account for the code path analysis + * because of their short-circuiting semantics. + * @param {string} operator The operator found in the AssignmentExpression node + * @returns {boolean} `true` if the operator is "&&=" or "||=" or "??=" + */ +function isLogicalAssignmentOperator(operator) { + return operator === "&&=" || operator === "||=" || operator === "??="; +} + +/** + * Gets the label if the parent node of a given node is a LabeledStatement. + * @param {ASTNode} node A node to get. + * @returns {string|null} The label or `null`. + */ +function getLabel(node) { + if (node.parent.type === "LabeledStatement") { + return node.parent.label.name; + } + return null; +} + +/** + * Checks whether or not a given logical expression node goes different path + * between the `true` case and the `false` case. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is a test of a choice statement. + */ +function isForkingByTrueOrFalse(node) { + const parent = node.parent; + + switch (parent.type) { + case "ConditionalExpression": + case "IfStatement": + case "WhileStatement": + case "DoWhileStatement": + case "ForStatement": + return parent.test === node; + + case "LogicalExpression": + return isHandledLogicalOperator(parent.operator); + + case "AssignmentExpression": + return isLogicalAssignmentOperator(parent.operator); + + default: + return false; + } +} + +/** + * Gets the boolean value of a given literal node. + * + * This is used to detect infinity loops (e.g. `while (true) {}`). + * Statements preceded by an infinity loop are unreachable if the loop didn't + * have any `break` statement. + * @param {ASTNode} node A node to get. + * @returns {boolean|undefined} a boolean value if the node is a Literal node, + * otherwise `undefined`. + */ +function getBooleanValueIfSimpleConstant(node) { + if (node.type === "Literal") { + return Boolean(node.value); + } + return void 0; +} + +/** + * Checks that a given identifier node is a reference or not. + * + * This is used to detect the first throwable node in a `try` block. + * @param {ASTNode} node An Identifier node to check. + * @returns {boolean} `true` if the node is a reference. + */ +function isIdentifierReference(node) { + const parent = node.parent; + + switch (parent.type) { + case "LabeledStatement": + case "BreakStatement": + case "ContinueStatement": + case "ArrayPattern": + case "RestElement": + case "ImportSpecifier": + case "ImportDefaultSpecifier": + case "ImportNamespaceSpecifier": + case "CatchClause": + return false; + + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ClassDeclaration": + case "ClassExpression": + case "VariableDeclarator": + return parent.id !== node; + + case "Property": + case "PropertyDefinition": + case "MethodDefinition": + return ( + parent.key !== node || + parent.computed || + parent.shorthand + ); + + case "AssignmentPattern": + return parent.key !== node; + + default: + return true; + } +} + +/** + * Updates the current segment with the head segment. + * This is similar to local branches and tracking branches of git. + * + * To separate the current and the head is in order to not make useless segments. + * + * In this process, both "onCodePathSegmentStart" and "onCodePathSegmentEnd" + * events are fired. + * @param {CodePathAnalyzer} analyzer The instance. + * @param {ASTNode} node The current AST node. + * @returns {void} + */ +function forwardCurrentToHead(analyzer, node) { + const codePath = analyzer.codePath; + const state = CodePath.getState(codePath); + const currentSegments = state.currentSegments; + const headSegments = state.headSegments; + const end = Math.max(currentSegments.length, headSegments.length); + let i, currentSegment, headSegment; + + // Fires leaving events. + for (i = 0; i < end; ++i) { + currentSegment = currentSegments[i]; + headSegment = headSegments[i]; + + if (currentSegment !== headSegment && currentSegment) { + debug.dump(`onCodePathSegmentEnd ${currentSegment.id}`); + + if (currentSegment.reachable) { + analyzer.emitter.emit( + "onCodePathSegmentEnd", + currentSegment, + node + ); + } + } + } + + // Update state. + state.currentSegments = headSegments; + + // Fires entering events. + for (i = 0; i < end; ++i) { + currentSegment = currentSegments[i]; + headSegment = headSegments[i]; + + if (currentSegment !== headSegment && headSegment) { + debug.dump(`onCodePathSegmentStart ${headSegment.id}`); + + CodePathSegment.markUsed(headSegment); + if (headSegment.reachable) { + analyzer.emitter.emit( + "onCodePathSegmentStart", + headSegment, + node + ); + } + } + } + +} + +/** + * Updates the current segment with empty. + * This is called at the last of functions or the program. + * @param {CodePathAnalyzer} analyzer The instance. + * @param {ASTNode} node The current AST node. + * @returns {void} + */ +function leaveFromCurrentSegment(analyzer, node) { + const state = CodePath.getState(analyzer.codePath); + const currentSegments = state.currentSegments; + + for (let i = 0; i < currentSegments.length; ++i) { + const currentSegment = currentSegments[i]; + + debug.dump(`onCodePathSegmentEnd ${currentSegment.id}`); + if (currentSegment.reachable) { + analyzer.emitter.emit( + "onCodePathSegmentEnd", + currentSegment, + node + ); + } + } + + state.currentSegments = []; +} + +/** + * Updates the code path due to the position of a given node in the parent node + * thereof. + * + * For example, if the node is `parent.consequent`, this creates a fork from the + * current path. + * @param {CodePathAnalyzer} analyzer The instance. + * @param {ASTNode} node The current AST node. + * @returns {void} + */ +function preprocess(analyzer, node) { + const codePath = analyzer.codePath; + const state = CodePath.getState(codePath); + const parent = node.parent; + + switch (parent.type) { + + // The `arguments.length == 0` case is in `postprocess` function. + case "CallExpression": + if (parent.optional === true && parent.arguments.length >= 1 && parent.arguments[0] === node) { + state.makeOptionalRight(); + } + break; + case "MemberExpression": + if (parent.optional === true && parent.property === node) { + state.makeOptionalRight(); + } + break; + + case "LogicalExpression": + if ( + parent.right === node && + isHandledLogicalOperator(parent.operator) + ) { + state.makeLogicalRight(); + } + break; + + case "AssignmentExpression": + if ( + parent.right === node && + isLogicalAssignmentOperator(parent.operator) + ) { + state.makeLogicalRight(); + } + break; + + case "ConditionalExpression": + case "IfStatement": + + /* + * Fork if this node is at `consequent`/`alternate`. + * `popForkContext()` exists at `IfStatement:exit` and + * `ConditionalExpression:exit`. + */ + if (parent.consequent === node) { + state.makeIfConsequent(); + } else if (parent.alternate === node) { + state.makeIfAlternate(); + } + break; + + case "SwitchCase": + if (parent.consequent[0] === node) { + state.makeSwitchCaseBody(false, !parent.test); + } + break; + + case "TryStatement": + if (parent.handler === node) { + state.makeCatchBlock(); + } else if (parent.finalizer === node) { + state.makeFinallyBlock(); + } + break; + + case "WhileStatement": + if (parent.test === node) { + state.makeWhileTest(getBooleanValueIfSimpleConstant(node)); + } else { + assert(parent.body === node); + state.makeWhileBody(); + } + break; + + case "DoWhileStatement": + if (parent.body === node) { + state.makeDoWhileBody(); + } else { + assert(parent.test === node); + state.makeDoWhileTest(getBooleanValueIfSimpleConstant(node)); + } + break; + + case "ForStatement": + if (parent.test === node) { + state.makeForTest(getBooleanValueIfSimpleConstant(node)); + } else if (parent.update === node) { + state.makeForUpdate(); + } else if (parent.body === node) { + state.makeForBody(); + } + break; + + case "ForInStatement": + case "ForOfStatement": + if (parent.left === node) { + state.makeForInOfLeft(); + } else if (parent.right === node) { + state.makeForInOfRight(); + } else { + assert(parent.body === node); + state.makeForInOfBody(); + } + break; + + case "AssignmentPattern": + + /* + * Fork if this node is at `right`. + * `left` is executed always, so it uses the current path. + * `popForkContext()` exists at `AssignmentPattern:exit`. + */ + if (parent.right === node) { + state.pushForkContext(); + state.forkBypassPath(); + state.forkPath(); + } + break; + + default: + break; + } +} + +/** + * Updates the code path due to the type of a given node in entering. + * @param {CodePathAnalyzer} analyzer The instance. + * @param {ASTNode} node The current AST node. + * @returns {void} + */ +function processCodePathToEnter(analyzer, node) { + let codePath = analyzer.codePath; + let state = codePath && CodePath.getState(codePath); + const parent = node.parent; + + /** + * Creates a new code path and trigger the onCodePathStart event + * based on the currently selected node. + * @param {string} origin The reason the code path was started. + * @returns {void} + */ + function startCodePath(origin) { + if (codePath) { + + // Emits onCodePathSegmentStart events if updated. + forwardCurrentToHead(analyzer, node); + debug.dumpState(node, state, false); + } + + // Create the code path of this scope. + codePath = analyzer.codePath = new CodePath({ + id: analyzer.idGenerator.next(), + origin, + upper: codePath, + onLooped: analyzer.onLooped + }); + state = CodePath.getState(codePath); + + // Emits onCodePathStart events. + debug.dump(`onCodePathStart ${codePath.id}`); + analyzer.emitter.emit("onCodePathStart", codePath, node); + } + + /* + * Special case: The right side of class field initializer is considered + * to be its own function, so we need to start a new code path in this + * case. + */ + if (isPropertyDefinitionValue(node)) { + startCodePath("class-field-initializer"); + + /* + * Intentional fall through because `node` needs to also be + * processed by the code below. For example, if we have: + * + * class Foo { + * a = () => {} + * } + * + * In this case, we also need start a second code path. + */ + + } + + switch (node.type) { + case "Program": + startCodePath("program"); + break; + + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + startCodePath("function"); + break; + + case "StaticBlock": + startCodePath("class-static-block"); + break; + + case "ChainExpression": + state.pushChainContext(); + break; + case "CallExpression": + if (node.optional === true) { + state.makeOptionalNode(); + } + break; + case "MemberExpression": + if (node.optional === true) { + state.makeOptionalNode(); + } + break; + + case "LogicalExpression": + if (isHandledLogicalOperator(node.operator)) { + state.pushChoiceContext( + node.operator, + isForkingByTrueOrFalse(node) + ); + } + break; + + case "AssignmentExpression": + if (isLogicalAssignmentOperator(node.operator)) { + state.pushChoiceContext( + node.operator.slice(0, -1), // removes `=` from the end + isForkingByTrueOrFalse(node) + ); + } + break; + + case "ConditionalExpression": + case "IfStatement": + state.pushChoiceContext("test", false); + break; + + case "SwitchStatement": + state.pushSwitchContext( + node.cases.some(isCaseNode), + getLabel(node) + ); + break; + + case "TryStatement": + state.pushTryContext(Boolean(node.finalizer)); + break; + + case "SwitchCase": + + /* + * Fork if this node is after the 2st node in `cases`. + * It's similar to `else` blocks. + * The next `test` node is processed in this path. + */ + if (parent.discriminant !== node && parent.cases[0] !== node) { + state.forkPath(); + } + break; + + case "WhileStatement": + case "DoWhileStatement": + case "ForStatement": + case "ForInStatement": + case "ForOfStatement": + state.pushLoopContext(node.type, getLabel(node)); + break; + + case "LabeledStatement": + if (!breakableTypePattern.test(node.body.type)) { + state.pushBreakContext(false, node.label.name); + } + break; + + default: + break; + } + + // Emits onCodePathSegmentStart events if updated. + forwardCurrentToHead(analyzer, node); + debug.dumpState(node, state, false); +} + +/** + * Updates the code path due to the type of a given node in leaving. + * @param {CodePathAnalyzer} analyzer The instance. + * @param {ASTNode} node The current AST node. + * @returns {void} + */ +function processCodePathToExit(analyzer, node) { + + const codePath = analyzer.codePath; + const state = CodePath.getState(codePath); + let dontForward = false; + + switch (node.type) { + case "ChainExpression": + state.popChainContext(); + break; + + case "IfStatement": + case "ConditionalExpression": + state.popChoiceContext(); + break; + + case "LogicalExpression": + if (isHandledLogicalOperator(node.operator)) { + state.popChoiceContext(); + } + break; + + case "AssignmentExpression": + if (isLogicalAssignmentOperator(node.operator)) { + state.popChoiceContext(); + } + break; + + case "SwitchStatement": + state.popSwitchContext(); + break; + + case "SwitchCase": + + /* + * This is the same as the process at the 1st `consequent` node in + * `preprocess` function. + * Must do if this `consequent` is empty. + */ + if (node.consequent.length === 0) { + state.makeSwitchCaseBody(true, !node.test); + } + if (state.forkContext.reachable) { + dontForward = true; + } + break; + + case "TryStatement": + state.popTryContext(); + break; + + case "BreakStatement": + forwardCurrentToHead(analyzer, node); + state.makeBreak(node.label && node.label.name); + dontForward = true; + break; + + case "ContinueStatement": + forwardCurrentToHead(analyzer, node); + state.makeContinue(node.label && node.label.name); + dontForward = true; + break; + + case "ReturnStatement": + forwardCurrentToHead(analyzer, node); + state.makeReturn(); + dontForward = true; + break; + + case "ThrowStatement": + forwardCurrentToHead(analyzer, node); + state.makeThrow(); + dontForward = true; + break; + + case "Identifier": + if (isIdentifierReference(node)) { + state.makeFirstThrowablePathInTryBlock(); + dontForward = true; + } + break; + + case "CallExpression": + case "ImportExpression": + case "MemberExpression": + case "NewExpression": + case "YieldExpression": + state.makeFirstThrowablePathInTryBlock(); + break; + + case "WhileStatement": + case "DoWhileStatement": + case "ForStatement": + case "ForInStatement": + case "ForOfStatement": + state.popLoopContext(); + break; + + case "AssignmentPattern": + state.popForkContext(); + break; + + case "LabeledStatement": + if (!breakableTypePattern.test(node.body.type)) { + state.popBreakContext(); + } + break; + + default: + break; + } + + // Emits onCodePathSegmentStart events if updated. + if (!dontForward) { + forwardCurrentToHead(analyzer, node); + } + debug.dumpState(node, state, true); +} + +/** + * Updates the code path to finalize the current code path. + * @param {CodePathAnalyzer} analyzer The instance. + * @param {ASTNode} node The current AST node. + * @returns {void} + */ +function postprocess(analyzer, node) { + + /** + * Ends the code path for the current node. + * @returns {void} + */ + function endCodePath() { + let codePath = analyzer.codePath; + + // Mark the current path as the final node. + CodePath.getState(codePath).makeFinal(); + + // Emits onCodePathSegmentEnd event of the current segments. + leaveFromCurrentSegment(analyzer, node); + + // Emits onCodePathEnd event of this code path. + debug.dump(`onCodePathEnd ${codePath.id}`); + analyzer.emitter.emit("onCodePathEnd", codePath, node); + debug.dumpDot(codePath); + + codePath = analyzer.codePath = analyzer.codePath.upper; + if (codePath) { + debug.dumpState(node, CodePath.getState(codePath), true); + } + + } + + switch (node.type) { + case "Program": + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "StaticBlock": { + endCodePath(); + break; + } + + // The `arguments.length >= 1` case is in `preprocess` function. + case "CallExpression": + if (node.optional === true && node.arguments.length === 0) { + CodePath.getState(analyzer.codePath).makeOptionalRight(); + } + break; + + default: + break; + } + + /* + * Special case: The right side of class field initializer is considered + * to be its own function, so we need to end a code path in this + * case. + * + * We need to check after the other checks in order to close the + * code paths in the correct order for code like this: + * + * + * class Foo { + * a = () => {} + * } + * + * In this case, The ArrowFunctionExpression code path is closed first + * and then we need to close the code path for the PropertyDefinition + * value. + */ + if (isPropertyDefinitionValue(node)) { + endCodePath(); + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * The class to analyze code paths. + * This class implements the EventGenerator interface. + */ +class CodePathAnalyzer { + + /** + * @param {EventGenerator} eventGenerator An event generator to wrap. + */ + constructor(eventGenerator) { + this.original = eventGenerator; + this.emitter = eventGenerator.emitter; + this.codePath = null; + this.idGenerator = new IdGenerator("s"); + this.currentNode = null; + this.onLooped = this.onLooped.bind(this); + } + + /** + * Does the process to enter a given AST node. + * This updates state of analysis and calls `enterNode` of the wrapped. + * @param {ASTNode} node A node which is entering. + * @returns {void} + */ + enterNode(node) { + this.currentNode = node; + + // Updates the code path due to node's position in its parent node. + if (node.parent) { + preprocess(this, node); + } + + /* + * Updates the code path. + * And emits onCodePathStart/onCodePathSegmentStart events. + */ + processCodePathToEnter(this, node); + + // Emits node events. + this.original.enterNode(node); + + this.currentNode = null; + } + + /** + * Does the process to leave a given AST node. + * This updates state of analysis and calls `leaveNode` of the wrapped. + * @param {ASTNode} node A node which is leaving. + * @returns {void} + */ + leaveNode(node) { + this.currentNode = node; + + /* + * Updates the code path. + * And emits onCodePathStart/onCodePathSegmentStart events. + */ + processCodePathToExit(this, node); + + // Emits node events. + this.original.leaveNode(node); + + // Emits the last onCodePathStart/onCodePathSegmentStart events. + postprocess(this, node); + + this.currentNode = null; + } + + /** + * This is called on a code path looped. + * Then this raises a looped event. + * @param {CodePathSegment} fromSegment A segment of prev. + * @param {CodePathSegment} toSegment A segment of next. + * @returns {void} + */ + onLooped(fromSegment, toSegment) { + if (fromSegment.reachable && toSegment.reachable) { + debug.dump(`onCodePathSegmentLoop ${fromSegment.id} -> ${toSegment.id}`); + this.emitter.emit( + "onCodePathSegmentLoop", + fromSegment, + toSegment, + this.currentNode + ); + } + } +} + +module.exports = CodePathAnalyzer; diff --git a/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js b/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js new file mode 100644 index 0000000..fd2726a --- /dev/null +++ b/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js @@ -0,0 +1,235 @@ +/** + * @fileoverview A class of the code path segment. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const debug = require("./debug-helpers"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given segment is reachable. + * @param {CodePathSegment} segment A segment to check. + * @returns {boolean} `true` if the segment is reachable. + */ +function isReachable(segment) { + return segment.reachable; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A code path segment. + */ +class CodePathSegment { + + /** + * @param {string} id An identifier. + * @param {CodePathSegment[]} allPrevSegments An array of the previous segments. + * This array includes unreachable segments. + * @param {boolean} reachable A flag which shows this is reachable. + */ + constructor(id, allPrevSegments, reachable) { + + /** + * The identifier of this code path. + * Rules use it to store additional information of each rule. + * @type {string} + */ + this.id = id; + + /** + * An array of the next segments. + * @type {CodePathSegment[]} + */ + this.nextSegments = []; + + /** + * An array of the previous segments. + * @type {CodePathSegment[]} + */ + this.prevSegments = allPrevSegments.filter(isReachable); + + /** + * An array of the next segments. + * This array includes unreachable segments. + * @type {CodePathSegment[]} + */ + this.allNextSegments = []; + + /** + * An array of the previous segments. + * This array includes unreachable segments. + * @type {CodePathSegment[]} + */ + this.allPrevSegments = allPrevSegments; + + /** + * A flag which shows this is reachable. + * @type {boolean} + */ + this.reachable = reachable; + + // Internal data. + Object.defineProperty(this, "internal", { + value: { + used: false, + loopedPrevSegments: [] + } + }); + + /* c8 ignore start */ + if (debug.enabled) { + this.internal.nodes = []; + }/* c8 ignore stop */ + } + + /** + * Checks a given previous segment is coming from the end of a loop. + * @param {CodePathSegment} segment A previous segment to check. + * @returns {boolean} `true` if the segment is coming from the end of a loop. + */ + isLoopedPrevSegment(segment) { + return this.internal.loopedPrevSegments.includes(segment); + } + + /** + * Creates the root segment. + * @param {string} id An identifier. + * @returns {CodePathSegment} The created segment. + */ + static newRoot(id) { + return new CodePathSegment(id, [], true); + } + + /** + * Creates a segment that follows given segments. + * @param {string} id An identifier. + * @param {CodePathSegment[]} allPrevSegments An array of the previous segments. + * @returns {CodePathSegment} The created segment. + */ + static newNext(id, allPrevSegments) { + return new CodePathSegment( + id, + CodePathSegment.flattenUnusedSegments(allPrevSegments), + allPrevSegments.some(isReachable) + ); + } + + /** + * Creates an unreachable segment that follows given segments. + * @param {string} id An identifier. + * @param {CodePathSegment[]} allPrevSegments An array of the previous segments. + * @returns {CodePathSegment} The created segment. + */ + static newUnreachable(id, allPrevSegments) { + const segment = new CodePathSegment(id, CodePathSegment.flattenUnusedSegments(allPrevSegments), false); + + /* + * In `if (a) return a; foo();` case, the unreachable segment preceded by + * the return statement is not used but must not be remove. + */ + CodePathSegment.markUsed(segment); + + return segment; + } + + /** + * Creates a segment that follows given segments. + * This factory method does not connect with `allPrevSegments`. + * But this inherits `reachable` flag. + * @param {string} id An identifier. + * @param {CodePathSegment[]} allPrevSegments An array of the previous segments. + * @returns {CodePathSegment} The created segment. + */ + static newDisconnected(id, allPrevSegments) { + return new CodePathSegment(id, [], allPrevSegments.some(isReachable)); + } + + /** + * Makes a given segment being used. + * + * And this function registers the segment into the previous segments as a next. + * @param {CodePathSegment} segment A segment to mark. + * @returns {void} + */ + static markUsed(segment) { + if (segment.internal.used) { + return; + } + segment.internal.used = true; + + let i; + + if (segment.reachable) { + for (i = 0; i < segment.allPrevSegments.length; ++i) { + const prevSegment = segment.allPrevSegments[i]; + + prevSegment.allNextSegments.push(segment); + prevSegment.nextSegments.push(segment); + } + } else { + for (i = 0; i < segment.allPrevSegments.length; ++i) { + segment.allPrevSegments[i].allNextSegments.push(segment); + } + } + } + + /** + * Marks a previous segment as looped. + * @param {CodePathSegment} segment A segment. + * @param {CodePathSegment} prevSegment A previous segment to mark. + * @returns {void} + */ + static markPrevSegmentAsLooped(segment, prevSegment) { + segment.internal.loopedPrevSegments.push(prevSegment); + } + + /** + * Replaces unused segments with the previous segments of each unused segment. + * @param {CodePathSegment[]} segments An array of segments to replace. + * @returns {CodePathSegment[]} The replaced array. + */ + static flattenUnusedSegments(segments) { + const done = Object.create(null); + const retv = []; + + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + // Ignores duplicated. + if (done[segment.id]) { + continue; + } + + // Use previous segments if unused. + if (!segment.internal.used) { + for (let j = 0; j < segment.allPrevSegments.length; ++j) { + const prevSegment = segment.allPrevSegments[j]; + + if (!done[prevSegment.id]) { + done[prevSegment.id] = true; + retv.push(prevSegment); + } + } + } else { + done[segment.id] = true; + retv.push(segment); + } + } + + return retv; + } +} + +module.exports = CodePathSegment; diff --git a/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js b/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js new file mode 100644 index 0000000..d187297 --- /dev/null +++ b/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js @@ -0,0 +1,1483 @@ +/** + * @fileoverview A class to manage state of generating a code path. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const CodePathSegment = require("./code-path-segment"), + ForkContext = require("./fork-context"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Adds given segments into the `dest` array. + * If the `others` array does not includes the given segments, adds to the `all` + * array as well. + * + * This adds only reachable and used segments. + * @param {CodePathSegment[]} dest A destination array (`returnedSegments` or `thrownSegments`). + * @param {CodePathSegment[]} others Another destination array (`returnedSegments` or `thrownSegments`). + * @param {CodePathSegment[]} all The unified destination array (`finalSegments`). + * @param {CodePathSegment[]} segments Segments to add. + * @returns {void} + */ +function addToReturnedOrThrown(dest, others, all, segments) { + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + dest.push(segment); + if (!others.includes(segment)) { + all.push(segment); + } + } +} + +/** + * Gets a loop-context for a `continue` statement. + * @param {CodePathState} state A state to get. + * @param {string} label The label of a `continue` statement. + * @returns {LoopContext} A loop-context for a `continue` statement. + */ +function getContinueContext(state, label) { + if (!label) { + return state.loopContext; + } + + let context = state.loopContext; + + while (context) { + if (context.label === label) { + return context; + } + context = context.upper; + } + + /* c8 ignore next */ + return null; +} + +/** + * Gets a context for a `break` statement. + * @param {CodePathState} state A state to get. + * @param {string} label The label of a `break` statement. + * @returns {LoopContext|SwitchContext} A context for a `break` statement. + */ +function getBreakContext(state, label) { + let context = state.breakContext; + + while (context) { + if (label ? context.label === label : context.breakable) { + return context; + } + context = context.upper; + } + + /* c8 ignore next */ + return null; +} + +/** + * Gets a context for a `return` statement. + * @param {CodePathState} state A state to get. + * @returns {TryContext|CodePathState} A context for a `return` statement. + */ +function getReturnContext(state) { + let context = state.tryContext; + + while (context) { + if (context.hasFinalizer && context.position !== "finally") { + return context; + } + context = context.upper; + } + + return state; +} + +/** + * Gets a context for a `throw` statement. + * @param {CodePathState} state A state to get. + * @returns {TryContext|CodePathState} A context for a `throw` statement. + */ +function getThrowContext(state) { + let context = state.tryContext; + + while (context) { + if (context.position === "try" || + (context.hasFinalizer && context.position === "catch") + ) { + return context; + } + context = context.upper; + } + + return state; +} + +/** + * Removes a given element from a given array. + * @param {any[]} xs An array to remove the specific element. + * @param {any} x An element to be removed. + * @returns {void} + */ +function remove(xs, x) { + xs.splice(xs.indexOf(x), 1); +} + +/** + * Disconnect given segments. + * + * This is used in a process for switch statements. + * If there is the "default" chunk before other cases, the order is different + * between node's and running's. + * @param {CodePathSegment[]} prevSegments Forward segments to disconnect. + * @param {CodePathSegment[]} nextSegments Backward segments to disconnect. + * @returns {void} + */ +function removeConnection(prevSegments, nextSegments) { + for (let i = 0; i < prevSegments.length; ++i) { + const prevSegment = prevSegments[i]; + const nextSegment = nextSegments[i]; + + remove(prevSegment.nextSegments, nextSegment); + remove(prevSegment.allNextSegments, nextSegment); + remove(nextSegment.prevSegments, prevSegment); + remove(nextSegment.allPrevSegments, prevSegment); + } +} + +/** + * Creates looping path. + * @param {CodePathState} state The instance. + * @param {CodePathSegment[]} unflattenedFromSegments Segments which are source. + * @param {CodePathSegment[]} unflattenedToSegments Segments which are destination. + * @returns {void} + */ +function makeLooped(state, unflattenedFromSegments, unflattenedToSegments) { + const fromSegments = CodePathSegment.flattenUnusedSegments(unflattenedFromSegments); + const toSegments = CodePathSegment.flattenUnusedSegments(unflattenedToSegments); + + const end = Math.min(fromSegments.length, toSegments.length); + + for (let i = 0; i < end; ++i) { + const fromSegment = fromSegments[i]; + const toSegment = toSegments[i]; + + if (toSegment.reachable) { + fromSegment.nextSegments.push(toSegment); + } + if (fromSegment.reachable) { + toSegment.prevSegments.push(fromSegment); + } + fromSegment.allNextSegments.push(toSegment); + toSegment.allPrevSegments.push(fromSegment); + + if (toSegment.allPrevSegments.length >= 2) { + CodePathSegment.markPrevSegmentAsLooped(toSegment, fromSegment); + } + + state.notifyLooped(fromSegment, toSegment); + } +} + +/** + * Finalizes segments of `test` chunk of a ForStatement. + * + * - Adds `false` paths to paths which are leaving from the loop. + * - Sets `true` paths to paths which go to the body. + * @param {LoopContext} context A loop context to modify. + * @param {ChoiceContext} choiceContext A choice context of this loop. + * @param {CodePathSegment[]} head The current head paths. + * @returns {void} + */ +function finalizeTestSegmentsOfFor(context, choiceContext, head) { + if (!choiceContext.processed) { + choiceContext.trueForkContext.add(head); + choiceContext.falseForkContext.add(head); + choiceContext.qqForkContext.add(head); + } + + if (context.test !== true) { + context.brokenForkContext.addAll(choiceContext.falseForkContext); + } + context.endOfTestSegments = choiceContext.trueForkContext.makeNext(0, -1); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A class which manages state to analyze code paths. + */ +class CodePathState { + + /** + * @param {IdGenerator} idGenerator An id generator to generate id for code + * path segments. + * @param {Function} onLooped A callback function to notify looping. + */ + constructor(idGenerator, onLooped) { + this.idGenerator = idGenerator; + this.notifyLooped = onLooped; + this.forkContext = ForkContext.newRoot(idGenerator); + this.choiceContext = null; + this.switchContext = null; + this.tryContext = null; + this.loopContext = null; + this.breakContext = null; + this.chainContext = null; + + this.currentSegments = []; + this.initialSegment = this.forkContext.head[0]; + + // returnedSegments and thrownSegments push elements into finalSegments also. + const final = this.finalSegments = []; + const returned = this.returnedForkContext = []; + const thrown = this.thrownForkContext = []; + + returned.add = addToReturnedOrThrown.bind(null, returned, thrown, final); + thrown.add = addToReturnedOrThrown.bind(null, thrown, returned, final); + } + + /** + * The head segments. + * @type {CodePathSegment[]} + */ + get headSegments() { + return this.forkContext.head; + } + + /** + * The parent forking context. + * This is used for the root of new forks. + * @type {ForkContext} + */ + get parentForkContext() { + const current = this.forkContext; + + return current && current.upper; + } + + /** + * Creates and stacks new forking context. + * @param {boolean} forkLeavingPath A flag which shows being in a + * "finally" block. + * @returns {ForkContext} The created context. + */ + pushForkContext(forkLeavingPath) { + this.forkContext = ForkContext.newEmpty( + this.forkContext, + forkLeavingPath + ); + + return this.forkContext; + } + + /** + * Pops and merges the last forking context. + * @returns {ForkContext} The last context. + */ + popForkContext() { + const lastContext = this.forkContext; + + this.forkContext = lastContext.upper; + this.forkContext.replaceHead(lastContext.makeNext(0, -1)); + + return lastContext; + } + + /** + * Creates a new path. + * @returns {void} + */ + forkPath() { + this.forkContext.add(this.parentForkContext.makeNext(-1, -1)); + } + + /** + * Creates a bypass path. + * This is used for such as IfStatement which does not have "else" chunk. + * @returns {void} + */ + forkBypassPath() { + this.forkContext.add(this.parentForkContext.head); + } + + //-------------------------------------------------------------------------- + // ConditionalExpression, LogicalExpression, IfStatement + //-------------------------------------------------------------------------- + + /** + * Creates a context for ConditionalExpression, LogicalExpression, AssignmentExpression (logical assignments only), + * IfStatement, WhileStatement, DoWhileStatement, or ForStatement. + * + * LogicalExpressions have cases that it goes different paths between the + * `true` case and the `false` case. + * + * For Example: + * + * if (a || b) { + * foo(); + * } else { + * bar(); + * } + * + * In this case, `b` is evaluated always in the code path of the `else` + * block, but it's not so in the code path of the `if` block. + * So there are 3 paths. + * + * a -> foo(); + * a -> b -> foo(); + * a -> b -> bar(); + * @param {string} kind A kind string. + * If the new context is LogicalExpression's or AssignmentExpression's, this is `"&&"` or `"||"` or `"??"`. + * If it's IfStatement's or ConditionalExpression's, this is `"test"`. + * Otherwise, this is `"loop"`. + * @param {boolean} isForkingAsResult A flag that shows that goes different + * paths between `true` and `false`. + * @returns {void} + */ + pushChoiceContext(kind, isForkingAsResult) { + this.choiceContext = { + upper: this.choiceContext, + kind, + isForkingAsResult, + trueForkContext: ForkContext.newEmpty(this.forkContext), + falseForkContext: ForkContext.newEmpty(this.forkContext), + qqForkContext: ForkContext.newEmpty(this.forkContext), + processed: false + }; + } + + /** + * Pops the last choice context and finalizes it. + * @throws {Error} (Unreachable.) + * @returns {ChoiceContext} The popped context. + */ + popChoiceContext() { + const context = this.choiceContext; + + this.choiceContext = context.upper; + + const forkContext = this.forkContext; + const headSegments = forkContext.head; + + switch (context.kind) { + case "&&": + case "||": + case "??": + + /* + * If any result were not transferred from child contexts, + * this sets the head segments to both cases. + * The head segments are the path of the right-hand operand. + */ + if (!context.processed) { + context.trueForkContext.add(headSegments); + context.falseForkContext.add(headSegments); + context.qqForkContext.add(headSegments); + } + + /* + * Transfers results to upper context if this context is in + * test chunk. + */ + if (context.isForkingAsResult) { + const parentContext = this.choiceContext; + + parentContext.trueForkContext.addAll(context.trueForkContext); + parentContext.falseForkContext.addAll(context.falseForkContext); + parentContext.qqForkContext.addAll(context.qqForkContext); + parentContext.processed = true; + + return context; + } + + break; + + case "test": + if (!context.processed) { + + /* + * The head segments are the path of the `if` block here. + * Updates the `true` path with the end of the `if` block. + */ + context.trueForkContext.clear(); + context.trueForkContext.add(headSegments); + } else { + + /* + * The head segments are the path of the `else` block here. + * Updates the `false` path with the end of the `else` + * block. + */ + context.falseForkContext.clear(); + context.falseForkContext.add(headSegments); + } + + break; + + case "loop": + + /* + * Loops are addressed in popLoopContext(). + * This is called from popLoopContext(). + */ + return context; + + /* c8 ignore next */ + default: + throw new Error("unreachable"); + } + + // Merges all paths. + const prevForkContext = context.trueForkContext; + + prevForkContext.addAll(context.falseForkContext); + forkContext.replaceHead(prevForkContext.makeNext(0, -1)); + + return context; + } + + /** + * Makes a code path segment of the right-hand operand of a logical + * expression. + * @throws {Error} (Unreachable.) + * @returns {void} + */ + makeLogicalRight() { + const context = this.choiceContext; + const forkContext = this.forkContext; + + if (context.processed) { + + /* + * This got segments already from the child choice context. + * Creates the next path from own true/false fork context. + */ + let prevForkContext; + + switch (context.kind) { + case "&&": // if true then go to the right-hand side. + prevForkContext = context.trueForkContext; + break; + case "||": // if false then go to the right-hand side. + prevForkContext = context.falseForkContext; + break; + case "??": // Both true/false can short-circuit, so needs the third path to go to the right-hand side. That's qqForkContext. + prevForkContext = context.qqForkContext; + break; + default: + throw new Error("unreachable"); + } + + forkContext.replaceHead(prevForkContext.makeNext(0, -1)); + prevForkContext.clear(); + context.processed = false; + } else { + + /* + * This did not get segments from the child choice context. + * So addresses the head segments. + * The head segments are the path of the left-hand operand. + */ + switch (context.kind) { + case "&&": // the false path can short-circuit. + context.falseForkContext.add(forkContext.head); + break; + case "||": // the true path can short-circuit. + context.trueForkContext.add(forkContext.head); + break; + case "??": // both can short-circuit. + context.trueForkContext.add(forkContext.head); + context.falseForkContext.add(forkContext.head); + break; + default: + throw new Error("unreachable"); + } + + forkContext.replaceHead(forkContext.makeNext(-1, -1)); + } + } + + /** + * Makes a code path segment of the `if` block. + * @returns {void} + */ + makeIfConsequent() { + const context = this.choiceContext; + const forkContext = this.forkContext; + + /* + * If any result were not transferred from child contexts, + * this sets the head segments to both cases. + * The head segments are the path of the test expression. + */ + if (!context.processed) { + context.trueForkContext.add(forkContext.head); + context.falseForkContext.add(forkContext.head); + context.qqForkContext.add(forkContext.head); + } + + context.processed = false; + + // Creates new path from the `true` case. + forkContext.replaceHead( + context.trueForkContext.makeNext(0, -1) + ); + } + + /** + * Makes a code path segment of the `else` block. + * @returns {void} + */ + makeIfAlternate() { + const context = this.choiceContext; + const forkContext = this.forkContext; + + /* + * The head segments are the path of the `if` block. + * Updates the `true` path with the end of the `if` block. + */ + context.trueForkContext.clear(); + context.trueForkContext.add(forkContext.head); + context.processed = true; + + // Creates new path from the `false` case. + forkContext.replaceHead( + context.falseForkContext.makeNext(0, -1) + ); + } + + //-------------------------------------------------------------------------- + // ChainExpression + //-------------------------------------------------------------------------- + + /** + * Push a new `ChainExpression` context to the stack. + * This method is called on entering to each `ChainExpression` node. + * This context is used to count forking in the optional chain then merge them on the exiting from the `ChainExpression` node. + * @returns {void} + */ + pushChainContext() { + this.chainContext = { + upper: this.chainContext, + countChoiceContexts: 0 + }; + } + + /** + * Pop a `ChainExpression` context from the stack. + * This method is called on exiting from each `ChainExpression` node. + * This merges all forks of the last optional chaining. + * @returns {void} + */ + popChainContext() { + const context = this.chainContext; + + this.chainContext = context.upper; + + // pop all choice contexts of this. + for (let i = context.countChoiceContexts; i > 0; --i) { + this.popChoiceContext(); + } + } + + /** + * Create a choice context for optional access. + * This method is called on entering to each `(Call|Member)Expression[optional=true]` node. + * This creates a choice context as similar to `LogicalExpression[operator="??"]` node. + * @returns {void} + */ + makeOptionalNode() { + if (this.chainContext) { + this.chainContext.countChoiceContexts += 1; + this.pushChoiceContext("??", false); + } + } + + /** + * Create a fork. + * This method is called on entering to the `arguments|property` property of each `(Call|Member)Expression` node. + * @returns {void} + */ + makeOptionalRight() { + if (this.chainContext) { + this.makeLogicalRight(); + } + } + + //-------------------------------------------------------------------------- + // SwitchStatement + //-------------------------------------------------------------------------- + + /** + * Creates a context object of SwitchStatement and stacks it. + * @param {boolean} hasCase `true` if the switch statement has one or more + * case parts. + * @param {string|null} label The label text. + * @returns {void} + */ + pushSwitchContext(hasCase, label) { + this.switchContext = { + upper: this.switchContext, + hasCase, + defaultSegments: null, + defaultBodySegments: null, + foundDefault: false, + lastIsDefault: false, + countForks: 0 + }; + + this.pushBreakContext(true, label); + } + + /** + * Pops the last context of SwitchStatement and finalizes it. + * + * - Disposes all forking stack for `case` and `default`. + * - Creates the next code path segment from `context.brokenForkContext`. + * - If the last `SwitchCase` node is not a `default` part, creates a path + * to the `default` body. + * @returns {void} + */ + popSwitchContext() { + const context = this.switchContext; + + this.switchContext = context.upper; + + const forkContext = this.forkContext; + const brokenForkContext = this.popBreakContext().brokenForkContext; + + if (context.countForks === 0) { + + /* + * When there is only one `default` chunk and there is one or more + * `break` statements, even if forks are nothing, it needs to merge + * those. + */ + if (!brokenForkContext.empty) { + brokenForkContext.add(forkContext.makeNext(-1, -1)); + forkContext.replaceHead(brokenForkContext.makeNext(0, -1)); + } + + return; + } + + const lastSegments = forkContext.head; + + this.forkBypassPath(); + const lastCaseSegments = forkContext.head; + + /* + * `brokenForkContext` is used to make the next segment. + * It must add the last segment into `brokenForkContext`. + */ + brokenForkContext.add(lastSegments); + + /* + * A path which is failed in all case test should be connected to path + * of `default` chunk. + */ + if (!context.lastIsDefault) { + if (context.defaultBodySegments) { + + /* + * Remove a link from `default` label to its chunk. + * It's false route. + */ + removeConnection(context.defaultSegments, context.defaultBodySegments); + makeLooped(this, lastCaseSegments, context.defaultBodySegments); + } else { + + /* + * It handles the last case body as broken if `default` chunk + * does not exist. + */ + brokenForkContext.add(lastCaseSegments); + } + } + + // Pops the segment context stack until the entry segment. + for (let i = 0; i < context.countForks; ++i) { + this.forkContext = this.forkContext.upper; + } + + /* + * Creates a path from all brokenForkContext paths. + * This is a path after switch statement. + */ + this.forkContext.replaceHead(brokenForkContext.makeNext(0, -1)); + } + + /** + * Makes a code path segment for a `SwitchCase` node. + * @param {boolean} isEmpty `true` if the body is empty. + * @param {boolean} isDefault `true` if the body is the default case. + * @returns {void} + */ + makeSwitchCaseBody(isEmpty, isDefault) { + const context = this.switchContext; + + if (!context.hasCase) { + return; + } + + /* + * Merge forks. + * The parent fork context has two segments. + * Those are from the current case and the body of the previous case. + */ + const parentForkContext = this.forkContext; + const forkContext = this.pushForkContext(); + + forkContext.add(parentForkContext.makeNext(0, -1)); + + /* + * Save `default` chunk info. + * If the `default` label is not at the last, we must make a path from + * the last `case` to the `default` chunk. + */ + if (isDefault) { + context.defaultSegments = parentForkContext.head; + if (isEmpty) { + context.foundDefault = true; + } else { + context.defaultBodySegments = forkContext.head; + } + } else { + if (!isEmpty && context.foundDefault) { + context.foundDefault = false; + context.defaultBodySegments = forkContext.head; + } + } + + context.lastIsDefault = isDefault; + context.countForks += 1; + } + + //-------------------------------------------------------------------------- + // TryStatement + //-------------------------------------------------------------------------- + + /** + * Creates a context object of TryStatement and stacks it. + * @param {boolean} hasFinalizer `true` if the try statement has a + * `finally` block. + * @returns {void} + */ + pushTryContext(hasFinalizer) { + this.tryContext = { + upper: this.tryContext, + position: "try", + hasFinalizer, + + returnedForkContext: hasFinalizer + ? ForkContext.newEmpty(this.forkContext) + : null, + + thrownForkContext: ForkContext.newEmpty(this.forkContext), + lastOfTryIsReachable: false, + lastOfCatchIsReachable: false + }; + } + + /** + * Pops the last context of TryStatement and finalizes it. + * @returns {void} + */ + popTryContext() { + const context = this.tryContext; + + this.tryContext = context.upper; + + if (context.position === "catch") { + + // Merges two paths from the `try` block and `catch` block merely. + this.popForkContext(); + return; + } + + /* + * The following process is executed only when there is the `finally` + * block. + */ + + const returned = context.returnedForkContext; + const thrown = context.thrownForkContext; + + if (returned.empty && thrown.empty) { + return; + } + + // Separate head to normal paths and leaving paths. + const headSegments = this.forkContext.head; + + this.forkContext = this.forkContext.upper; + const normalSegments = headSegments.slice(0, headSegments.length / 2 | 0); + const leavingSegments = headSegments.slice(headSegments.length / 2 | 0); + + // Forwards the leaving path to upper contexts. + if (!returned.empty) { + getReturnContext(this).returnedForkContext.add(leavingSegments); + } + if (!thrown.empty) { + getThrowContext(this).thrownForkContext.add(leavingSegments); + } + + // Sets the normal path as the next. + this.forkContext.replaceHead(normalSegments); + + /* + * If both paths of the `try` block and the `catch` block are + * unreachable, the next path becomes unreachable as well. + */ + if (!context.lastOfTryIsReachable && !context.lastOfCatchIsReachable) { + this.forkContext.makeUnreachable(); + } + } + + /** + * Makes a code path segment for a `catch` block. + * @returns {void} + */ + makeCatchBlock() { + const context = this.tryContext; + const forkContext = this.forkContext; + const thrown = context.thrownForkContext; + + // Update state. + context.position = "catch"; + context.thrownForkContext = ForkContext.newEmpty(forkContext); + context.lastOfTryIsReachable = forkContext.reachable; + + // Merge thrown paths. + thrown.add(forkContext.head); + const thrownSegments = thrown.makeNext(0, -1); + + // Fork to a bypass and the merged thrown path. + this.pushForkContext(); + this.forkBypassPath(); + this.forkContext.add(thrownSegments); + } + + /** + * Makes a code path segment for a `finally` block. + * + * In the `finally` block, parallel paths are created. The parallel paths + * are used as leaving-paths. The leaving-paths are paths from `return` + * statements and `throw` statements in a `try` block or a `catch` block. + * @returns {void} + */ + makeFinallyBlock() { + const context = this.tryContext; + let forkContext = this.forkContext; + const returned = context.returnedForkContext; + const thrown = context.thrownForkContext; + const headOfLeavingSegments = forkContext.head; + + // Update state. + if (context.position === "catch") { + + // Merges two paths from the `try` block and `catch` block. + this.popForkContext(); + forkContext = this.forkContext; + + context.lastOfCatchIsReachable = forkContext.reachable; + } else { + context.lastOfTryIsReachable = forkContext.reachable; + } + context.position = "finally"; + + if (returned.empty && thrown.empty) { + + // This path does not leave. + return; + } + + /* + * Create a parallel segment from merging returned and thrown. + * This segment will leave at the end of this finally block. + */ + const segments = forkContext.makeNext(-1, -1); + + for (let i = 0; i < forkContext.count; ++i) { + const prevSegsOfLeavingSegment = [headOfLeavingSegments[i]]; + + for (let j = 0; j < returned.segmentsList.length; ++j) { + prevSegsOfLeavingSegment.push(returned.segmentsList[j][i]); + } + for (let j = 0; j < thrown.segmentsList.length; ++j) { + prevSegsOfLeavingSegment.push(thrown.segmentsList[j][i]); + } + + segments.push( + CodePathSegment.newNext( + this.idGenerator.next(), + prevSegsOfLeavingSegment + ) + ); + } + + this.pushForkContext(true); + this.forkContext.add(segments); + } + + /** + * Makes a code path segment from the first throwable node to the `catch` + * block or the `finally` block. + * @returns {void} + */ + makeFirstThrowablePathInTryBlock() { + const forkContext = this.forkContext; + + if (!forkContext.reachable) { + return; + } + + const context = getThrowContext(this); + + if (context === this || + context.position !== "try" || + !context.thrownForkContext.empty + ) { + return; + } + + context.thrownForkContext.add(forkContext.head); + forkContext.replaceHead(forkContext.makeNext(-1, -1)); + } + + //-------------------------------------------------------------------------- + // Loop Statements + //-------------------------------------------------------------------------- + + /** + * Creates a context object of a loop statement and stacks it. + * @param {string} type The type of the node which was triggered. One of + * `WhileStatement`, `DoWhileStatement`, `ForStatement`, `ForInStatement`, + * and `ForStatement`. + * @param {string|null} label A label of the node which was triggered. + * @throws {Error} (Unreachable - unknown type.) + * @returns {void} + */ + pushLoopContext(type, label) { + const forkContext = this.forkContext; + const breakContext = this.pushBreakContext(true, label); + + switch (type) { + case "WhileStatement": + this.pushChoiceContext("loop", false); + this.loopContext = { + upper: this.loopContext, + type, + label, + test: void 0, + continueDestSegments: null, + brokenForkContext: breakContext.brokenForkContext + }; + break; + + case "DoWhileStatement": + this.pushChoiceContext("loop", false); + this.loopContext = { + upper: this.loopContext, + type, + label, + test: void 0, + entrySegments: null, + continueForkContext: ForkContext.newEmpty(forkContext), + brokenForkContext: breakContext.brokenForkContext + }; + break; + + case "ForStatement": + this.pushChoiceContext("loop", false); + this.loopContext = { + upper: this.loopContext, + type, + label, + test: void 0, + endOfInitSegments: null, + testSegments: null, + endOfTestSegments: null, + updateSegments: null, + endOfUpdateSegments: null, + continueDestSegments: null, + brokenForkContext: breakContext.brokenForkContext + }; + break; + + case "ForInStatement": + case "ForOfStatement": + this.loopContext = { + upper: this.loopContext, + type, + label, + prevSegments: null, + leftSegments: null, + endOfLeftSegments: null, + continueDestSegments: null, + brokenForkContext: breakContext.brokenForkContext + }; + break; + + /* c8 ignore next */ + default: + throw new Error(`unknown type: "${type}"`); + } + } + + /** + * Pops the last context of a loop statement and finalizes it. + * @throws {Error} (Unreachable - unknown type.) + * @returns {void} + */ + popLoopContext() { + const context = this.loopContext; + + this.loopContext = context.upper; + + const forkContext = this.forkContext; + const brokenForkContext = this.popBreakContext().brokenForkContext; + + // Creates a looped path. + switch (context.type) { + case "WhileStatement": + case "ForStatement": + this.popChoiceContext(); + makeLooped( + this, + forkContext.head, + context.continueDestSegments + ); + break; + + case "DoWhileStatement": { + const choiceContext = this.popChoiceContext(); + + if (!choiceContext.processed) { + choiceContext.trueForkContext.add(forkContext.head); + choiceContext.falseForkContext.add(forkContext.head); + } + if (context.test !== true) { + brokenForkContext.addAll(choiceContext.falseForkContext); + } + + // `true` paths go to looping. + const segmentsList = choiceContext.trueForkContext.segmentsList; + + for (let i = 0; i < segmentsList.length; ++i) { + makeLooped( + this, + segmentsList[i], + context.entrySegments + ); + } + break; + } + + case "ForInStatement": + case "ForOfStatement": + brokenForkContext.add(forkContext.head); + makeLooped( + this, + forkContext.head, + context.leftSegments + ); + break; + + /* c8 ignore next */ + default: + throw new Error("unreachable"); + } + + // Go next. + if (brokenForkContext.empty) { + forkContext.replaceHead(forkContext.makeUnreachable(-1, -1)); + } else { + forkContext.replaceHead(brokenForkContext.makeNext(0, -1)); + } + } + + /** + * Makes a code path segment for the test part of a WhileStatement. + * @param {boolean|undefined} test The test value (only when constant). + * @returns {void} + */ + makeWhileTest(test) { + const context = this.loopContext; + const forkContext = this.forkContext; + const testSegments = forkContext.makeNext(0, -1); + + // Update state. + context.test = test; + context.continueDestSegments = testSegments; + forkContext.replaceHead(testSegments); + } + + /** + * Makes a code path segment for the body part of a WhileStatement. + * @returns {void} + */ + makeWhileBody() { + const context = this.loopContext; + const choiceContext = this.choiceContext; + const forkContext = this.forkContext; + + if (!choiceContext.processed) { + choiceContext.trueForkContext.add(forkContext.head); + choiceContext.falseForkContext.add(forkContext.head); + } + + // Update state. + if (context.test !== true) { + context.brokenForkContext.addAll(choiceContext.falseForkContext); + } + forkContext.replaceHead(choiceContext.trueForkContext.makeNext(0, -1)); + } + + /** + * Makes a code path segment for the body part of a DoWhileStatement. + * @returns {void} + */ + makeDoWhileBody() { + const context = this.loopContext; + const forkContext = this.forkContext; + const bodySegments = forkContext.makeNext(-1, -1); + + // Update state. + context.entrySegments = bodySegments; + forkContext.replaceHead(bodySegments); + } + + /** + * Makes a code path segment for the test part of a DoWhileStatement. + * @param {boolean|undefined} test The test value (only when constant). + * @returns {void} + */ + makeDoWhileTest(test) { + const context = this.loopContext; + const forkContext = this.forkContext; + + context.test = test; + + // Creates paths of `continue` statements. + if (!context.continueForkContext.empty) { + context.continueForkContext.add(forkContext.head); + const testSegments = context.continueForkContext.makeNext(0, -1); + + forkContext.replaceHead(testSegments); + } + } + + /** + * Makes a code path segment for the test part of a ForStatement. + * @param {boolean|undefined} test The test value (only when constant). + * @returns {void} + */ + makeForTest(test) { + const context = this.loopContext; + const forkContext = this.forkContext; + const endOfInitSegments = forkContext.head; + const testSegments = forkContext.makeNext(-1, -1); + + // Update state. + context.test = test; + context.endOfInitSegments = endOfInitSegments; + context.continueDestSegments = context.testSegments = testSegments; + forkContext.replaceHead(testSegments); + } + + /** + * Makes a code path segment for the update part of a ForStatement. + * @returns {void} + */ + makeForUpdate() { + const context = this.loopContext; + const choiceContext = this.choiceContext; + const forkContext = this.forkContext; + + // Make the next paths of the test. + if (context.testSegments) { + finalizeTestSegmentsOfFor( + context, + choiceContext, + forkContext.head + ); + } else { + context.endOfInitSegments = forkContext.head; + } + + // Update state. + const updateSegments = forkContext.makeDisconnected(-1, -1); + + context.continueDestSegments = context.updateSegments = updateSegments; + forkContext.replaceHead(updateSegments); + } + + /** + * Makes a code path segment for the body part of a ForStatement. + * @returns {void} + */ + makeForBody() { + const context = this.loopContext; + const choiceContext = this.choiceContext; + const forkContext = this.forkContext; + + // Update state. + if (context.updateSegments) { + context.endOfUpdateSegments = forkContext.head; + + // `update` -> `test` + if (context.testSegments) { + makeLooped( + this, + context.endOfUpdateSegments, + context.testSegments + ); + } + } else if (context.testSegments) { + finalizeTestSegmentsOfFor( + context, + choiceContext, + forkContext.head + ); + } else { + context.endOfInitSegments = forkContext.head; + } + + let bodySegments = context.endOfTestSegments; + + if (!bodySegments) { + + /* + * If there is not the `test` part, the `body` path comes from the + * `init` part and the `update` part. + */ + const prevForkContext = ForkContext.newEmpty(forkContext); + + prevForkContext.add(context.endOfInitSegments); + if (context.endOfUpdateSegments) { + prevForkContext.add(context.endOfUpdateSegments); + } + + bodySegments = prevForkContext.makeNext(0, -1); + } + context.continueDestSegments = context.continueDestSegments || bodySegments; + forkContext.replaceHead(bodySegments); + } + + /** + * Makes a code path segment for the left part of a ForInStatement and a + * ForOfStatement. + * @returns {void} + */ + makeForInOfLeft() { + const context = this.loopContext; + const forkContext = this.forkContext; + const leftSegments = forkContext.makeDisconnected(-1, -1); + + // Update state. + context.prevSegments = forkContext.head; + context.leftSegments = context.continueDestSegments = leftSegments; + forkContext.replaceHead(leftSegments); + } + + /** + * Makes a code path segment for the right part of a ForInStatement and a + * ForOfStatement. + * @returns {void} + */ + makeForInOfRight() { + const context = this.loopContext; + const forkContext = this.forkContext; + const temp = ForkContext.newEmpty(forkContext); + + temp.add(context.prevSegments); + const rightSegments = temp.makeNext(-1, -1); + + // Update state. + context.endOfLeftSegments = forkContext.head; + forkContext.replaceHead(rightSegments); + } + + /** + * Makes a code path segment for the body part of a ForInStatement and a + * ForOfStatement. + * @returns {void} + */ + makeForInOfBody() { + const context = this.loopContext; + const forkContext = this.forkContext; + const temp = ForkContext.newEmpty(forkContext); + + temp.add(context.endOfLeftSegments); + const bodySegments = temp.makeNext(-1, -1); + + // Make a path: `right` -> `left`. + makeLooped(this, forkContext.head, context.leftSegments); + + // Update state. + context.brokenForkContext.add(forkContext.head); + forkContext.replaceHead(bodySegments); + } + + //-------------------------------------------------------------------------- + // Control Statements + //-------------------------------------------------------------------------- + + /** + * Creates new context for BreakStatement. + * @param {boolean} breakable The flag to indicate it can break by + * an unlabeled BreakStatement. + * @param {string|null} label The label of this context. + * @returns {Object} The new context. + */ + pushBreakContext(breakable, label) { + this.breakContext = { + upper: this.breakContext, + breakable, + label, + brokenForkContext: ForkContext.newEmpty(this.forkContext) + }; + return this.breakContext; + } + + /** + * Removes the top item of the break context stack. + * @returns {Object} The removed context. + */ + popBreakContext() { + const context = this.breakContext; + const forkContext = this.forkContext; + + this.breakContext = context.upper; + + // Process this context here for other than switches and loops. + if (!context.breakable) { + const brokenForkContext = context.brokenForkContext; + + if (!brokenForkContext.empty) { + brokenForkContext.add(forkContext.head); + forkContext.replaceHead(brokenForkContext.makeNext(0, -1)); + } + } + + return context; + } + + /** + * Makes a path for a `break` statement. + * + * It registers the head segment to a context of `break`. + * It makes new unreachable segment, then it set the head with the segment. + * @param {string} label A label of the break statement. + * @returns {void} + */ + makeBreak(label) { + const forkContext = this.forkContext; + + if (!forkContext.reachable) { + return; + } + + const context = getBreakContext(this, label); + + + if (context) { + context.brokenForkContext.add(forkContext.head); + } + + /* c8 ignore next */ + forkContext.replaceHead(forkContext.makeUnreachable(-1, -1)); + } + + /** + * Makes a path for a `continue` statement. + * + * It makes a looping path. + * It makes new unreachable segment, then it set the head with the segment. + * @param {string} label A label of the continue statement. + * @returns {void} + */ + makeContinue(label) { + const forkContext = this.forkContext; + + if (!forkContext.reachable) { + return; + } + + const context = getContinueContext(this, label); + + if (context) { + if (context.continueDestSegments) { + makeLooped(this, forkContext.head, context.continueDestSegments); + + // If the context is a for-in/of loop, this effects a break also. + if (context.type === "ForInStatement" || + context.type === "ForOfStatement" + ) { + context.brokenForkContext.add(forkContext.head); + } + } else { + context.continueForkContext.add(forkContext.head); + } + } + forkContext.replaceHead(forkContext.makeUnreachable(-1, -1)); + } + + /** + * Makes a path for a `return` statement. + * + * It registers the head segment to a context of `return`. + * It makes new unreachable segment, then it set the head with the segment. + * @returns {void} + */ + makeReturn() { + const forkContext = this.forkContext; + + if (forkContext.reachable) { + getReturnContext(this).returnedForkContext.add(forkContext.head); + forkContext.replaceHead(forkContext.makeUnreachable(-1, -1)); + } + } + + /** + * Makes a path for a `throw` statement. + * + * It registers the head segment to a context of `throw`. + * It makes new unreachable segment, then it set the head with the segment. + * @returns {void} + */ + makeThrow() { + const forkContext = this.forkContext; + + if (forkContext.reachable) { + getThrowContext(this).thrownForkContext.add(forkContext.head); + forkContext.replaceHead(forkContext.makeUnreachable(-1, -1)); + } + } + + /** + * Makes the final path. + * @returns {void} + */ + makeFinal() { + const segments = this.currentSegments; + + if (segments.length > 0 && segments[0].reachable) { + this.returnedForkContext.add(segments); + } + } +} + +module.exports = CodePathState; diff --git a/node_modules/eslint/lib/linter/code-path-analysis/code-path.js b/node_modules/eslint/lib/linter/code-path-analysis/code-path.js new file mode 100644 index 0000000..a028ca6 --- /dev/null +++ b/node_modules/eslint/lib/linter/code-path-analysis/code-path.js @@ -0,0 +1,247 @@ +/** + * @fileoverview A class of the code path. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const CodePathState = require("./code-path-state"); +const IdGenerator = require("./id-generator"); + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A code path. + */ +class CodePath { + + /** + * Creates a new instance. + * @param {Object} options Options for the function (see below). + * @param {string} options.id An identifier. + * @param {string} options.origin The type of code path origin. + * @param {CodePath|null} options.upper The code path of the upper function scope. + * @param {Function} options.onLooped A callback function to notify looping. + */ + constructor({ id, origin, upper, onLooped }) { + + /** + * The identifier of this code path. + * Rules use it to store additional information of each rule. + * @type {string} + */ + this.id = id; + + /** + * The reason that this code path was started. May be "program", + * "function", "class-field-initializer", or "class-static-block". + * @type {string} + */ + this.origin = origin; + + /** + * The code path of the upper function scope. + * @type {CodePath|null} + */ + this.upper = upper; + + /** + * The code paths of nested function scopes. + * @type {CodePath[]} + */ + this.childCodePaths = []; + + // Initializes internal state. + Object.defineProperty( + this, + "internal", + { value: new CodePathState(new IdGenerator(`${id}_`), onLooped) } + ); + + // Adds this into `childCodePaths` of `upper`. + if (upper) { + upper.childCodePaths.push(this); + } + } + + /** + * Gets the state of a given code path. + * @param {CodePath} codePath A code path to get. + * @returns {CodePathState} The state of the code path. + */ + static getState(codePath) { + return codePath.internal; + } + + /** + * The initial code path segment. + * @type {CodePathSegment} + */ + get initialSegment() { + return this.internal.initialSegment; + } + + /** + * Final code path segments. + * This array is a mix of `returnedSegments` and `thrownSegments`. + * @type {CodePathSegment[]} + */ + get finalSegments() { + return this.internal.finalSegments; + } + + /** + * Final code path segments which is with `return` statements. + * This array contains the last path segment if it's reachable. + * Since the reachable last path returns `undefined`. + * @type {CodePathSegment[]} + */ + get returnedSegments() { + return this.internal.returnedForkContext; + } + + /** + * Final code path segments which is with `throw` statements. + * @type {CodePathSegment[]} + */ + get thrownSegments() { + return this.internal.thrownForkContext; + } + + /** + * Current code path segments. + * @type {CodePathSegment[]} + */ + get currentSegments() { + return this.internal.currentSegments; + } + + /** + * Traverses all segments in this code path. + * + * codePath.traverseSegments(function(segment, controller) { + * // do something. + * }); + * + * This method enumerates segments in order from the head. + * + * The `controller` object has two methods. + * + * - `controller.skip()` - Skip the following segments in this branch. + * - `controller.break()` - Skip all following segments. + * @param {Object} [options] Omittable. + * @param {CodePathSegment} [options.first] The first segment to traverse. + * @param {CodePathSegment} [options.last] The last segment to traverse. + * @param {Function} callback A callback function. + * @returns {void} + */ + traverseSegments(options, callback) { + let resolvedOptions; + let resolvedCallback; + + if (typeof options === "function") { + resolvedCallback = options; + resolvedOptions = {}; + } else { + resolvedOptions = options || {}; + resolvedCallback = callback; + } + + const startSegment = resolvedOptions.first || this.internal.initialSegment; + const lastSegment = resolvedOptions.last; + + let item = null; + let index = 0; + let end = 0; + let segment = null; + const visited = Object.create(null); + const stack = [[startSegment, 0]]; + let skippedSegment = null; + let broken = false; + const controller = { + skip() { + if (stack.length <= 1) { + broken = true; + } else { + skippedSegment = stack[stack.length - 2][0]; + } + }, + break() { + broken = true; + } + }; + + /** + * Checks a given previous segment has been visited. + * @param {CodePathSegment} prevSegment A previous segment to check. + * @returns {boolean} `true` if the segment has been visited. + */ + function isVisited(prevSegment) { + return ( + visited[prevSegment.id] || + segment.isLoopedPrevSegment(prevSegment) + ); + } + + while (stack.length > 0) { + item = stack[stack.length - 1]; + segment = item[0]; + index = item[1]; + + if (index === 0) { + + // Skip if this segment has been visited already. + if (visited[segment.id]) { + stack.pop(); + continue; + } + + // Skip if all previous segments have not been visited. + if (segment !== startSegment && + segment.prevSegments.length > 0 && + !segment.prevSegments.every(isVisited) + ) { + stack.pop(); + continue; + } + + // Reset the flag of skipping if all branches have been skipped. + if (skippedSegment && segment.prevSegments.includes(skippedSegment)) { + skippedSegment = null; + } + visited[segment.id] = true; + + // Call the callback when the first time. + if (!skippedSegment) { + resolvedCallback.call(this, segment, controller); + if (segment === lastSegment) { + controller.skip(); + } + if (broken) { + break; + } + } + } + + // Update the stack. + end = segment.nextSegments.length - 1; + if (index < end) { + item[1] += 1; + stack.push([segment.nextSegments[index], 0]); + } else if (index === end) { + item[0] = segment.nextSegments[index]; + item[1] = 0; + } else { + stack.pop(); + } + } + } +} + +module.exports = CodePath; diff --git a/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js b/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js new file mode 100644 index 0000000..e06b6cd --- /dev/null +++ b/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js @@ -0,0 +1,203 @@ +/** + * @fileoverview Helpers to debug for code path analysis. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const debug = require("debug")("eslint:code-path"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Gets id of a given segment. + * @param {CodePathSegment} segment A segment to get. + * @returns {string} Id of the segment. + */ +/* c8 ignore next */ +function getId(segment) { // eslint-disable-line jsdoc/require-jsdoc -- Ignoring + return segment.id + (segment.reachable ? "" : "!"); +} + +/** + * Get string for the given node and operation. + * @param {ASTNode} node The node to convert. + * @param {"enter" | "exit" | undefined} label The operation label. + * @returns {string} The string representation. + */ +function nodeToString(node, label) { + const suffix = label ? `:${label}` : ""; + + switch (node.type) { + case "Identifier": return `${node.type}${suffix} (${node.name})`; + case "Literal": return `${node.type}${suffix} (${node.value})`; + default: return `${node.type}${suffix}`; + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { + + /** + * A flag that debug dumping is enabled or not. + * @type {boolean} + */ + enabled: debug.enabled, + + /** + * Dumps given objects. + * @param {...any} args objects to dump. + * @returns {void} + */ + dump: debug, + + /** + * Dumps the current analyzing state. + * @param {ASTNode} node A node to dump. + * @param {CodePathState} state A state to dump. + * @param {boolean} leaving A flag whether or not it's leaving + * @returns {void} + */ + dumpState: !debug.enabled ? debug : /* c8 ignore next */ function(node, state, leaving) { + for (let i = 0; i < state.currentSegments.length; ++i) { + const segInternal = state.currentSegments[i].internal; + + if (leaving) { + const last = segInternal.nodes.length - 1; + + if (last >= 0 && segInternal.nodes[last] === nodeToString(node, "enter")) { + segInternal.nodes[last] = nodeToString(node, void 0); + } else { + segInternal.nodes.push(nodeToString(node, "exit")); + } + } else { + segInternal.nodes.push(nodeToString(node, "enter")); + } + } + + debug([ + `${state.currentSegments.map(getId).join(",")})`, + `${node.type}${leaving ? ":exit" : ""}` + ].join(" ")); + }, + + /** + * Dumps a DOT code of a given code path. + * The DOT code can be visualized with Graphvis. + * @param {CodePath} codePath A code path to dump. + * @returns {void} + * @see http://www.graphviz.org + * @see http://www.webgraphviz.com + */ + dumpDot: !debug.enabled ? debug : /* c8 ignore next */ function(codePath) { + let text = + "\n" + + "digraph {\n" + + "node[shape=box,style=\"rounded,filled\",fillcolor=white];\n" + + "initial[label=\"\",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];\n"; + + if (codePath.returnedSegments.length > 0) { + text += "final[label=\"\",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];\n"; + } + if (codePath.thrownSegments.length > 0) { + text += "thrown[label=\"✘\",shape=circle,width=0.3,height=0.3,fixedsize];\n"; + } + + const traceMap = Object.create(null); + const arrows = this.makeDotArrows(codePath, traceMap); + + for (const id in traceMap) { // eslint-disable-line guard-for-in -- Want ability to traverse prototype + const segment = traceMap[id]; + + text += `${id}[`; + + if (segment.reachable) { + text += "label=\""; + } else { + text += "style=\"rounded,dashed,filled\",fillcolor=\"#FF9800\",label=\"<>\\n"; + } + + if (segment.internal.nodes.length > 0) { + text += segment.internal.nodes.join("\\n"); + } else { + text += "????"; + } + + text += "\"];\n"; + } + + text += `${arrows}\n`; + text += "}"; + debug("DOT", text); + }, + + /** + * Makes a DOT code of a given code path. + * The DOT code can be visualized with Graphvis. + * @param {CodePath} codePath A code path to make DOT. + * @param {Object} traceMap Optional. A map to check whether or not segments had been done. + * @returns {string} A DOT code of the code path. + */ + makeDotArrows(codePath, traceMap) { + const stack = [[codePath.initialSegment, 0]]; + const done = traceMap || Object.create(null); + let lastId = codePath.initialSegment.id; + let text = `initial->${codePath.initialSegment.id}`; + + while (stack.length > 0) { + const item = stack.pop(); + const segment = item[0]; + const index = item[1]; + + if (done[segment.id] && index === 0) { + continue; + } + done[segment.id] = segment; + + const nextSegment = segment.allNextSegments[index]; + + if (!nextSegment) { + continue; + } + + if (lastId === segment.id) { + text += `->${nextSegment.id}`; + } else { + text += `;\n${segment.id}->${nextSegment.id}`; + } + lastId = nextSegment.id; + + stack.unshift([segment, 1 + index]); + stack.push([nextSegment, 0]); + } + + codePath.returnedSegments.forEach(finalSegment => { + if (lastId === finalSegment.id) { + text += "->final"; + } else { + text += `;\n${finalSegment.id}->final`; + } + lastId = null; + }); + + codePath.thrownSegments.forEach(finalSegment => { + if (lastId === finalSegment.id) { + text += "->thrown"; + } else { + text += `;\n${finalSegment.id}->thrown`; + } + lastId = null; + }); + + return `${text};`; + } +}; diff --git a/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js b/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js new file mode 100644 index 0000000..04c59b5 --- /dev/null +++ b/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js @@ -0,0 +1,248 @@ +/** + * @fileoverview A class to operate forking. + * + * This is state of forking. + * This has a fork list and manages it. + * + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const assert = require("assert"), + CodePathSegment = require("./code-path-segment"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Gets whether or not a given segment is reachable. + * @param {CodePathSegment} segment A segment to get. + * @returns {boolean} `true` if the segment is reachable. + */ +function isReachable(segment) { + return segment.reachable; +} + +/** + * Creates new segments from the specific range of `context.segmentsList`. + * + * When `context.segmentsList` is `[[a, b], [c, d], [e, f]]`, `begin` is `0`, and + * `end` is `-1`, this creates `[g, h]`. This `g` is from `a`, `c`, and `e`. + * This `h` is from `b`, `d`, and `f`. + * @param {ForkContext} context An instance. + * @param {number} begin The first index of the previous segments. + * @param {number} end The last index of the previous segments. + * @param {Function} create A factory function of new segments. + * @returns {CodePathSegment[]} New segments. + */ +function makeSegments(context, begin, end, create) { + const list = context.segmentsList; + + const normalizedBegin = begin >= 0 ? begin : list.length + begin; + const normalizedEnd = end >= 0 ? end : list.length + end; + + const segments = []; + + for (let i = 0; i < context.count; ++i) { + const allPrevSegments = []; + + for (let j = normalizedBegin; j <= normalizedEnd; ++j) { + allPrevSegments.push(list[j][i]); + } + + segments.push(create(context.idGenerator.next(), allPrevSegments)); + } + + return segments; +} + +/** + * `segments` becomes doubly in a `finally` block. Then if a code path exits by a + * control statement (such as `break`, `continue`) from the `finally` block, the + * destination's segments may be half of the source segments. In that case, this + * merges segments. + * @param {ForkContext} context An instance. + * @param {CodePathSegment[]} segments Segments to merge. + * @returns {CodePathSegment[]} The merged segments. + */ +function mergeExtraSegments(context, segments) { + let currentSegments = segments; + + while (currentSegments.length > context.count) { + const merged = []; + + for (let i = 0, length = currentSegments.length / 2 | 0; i < length; ++i) { + merged.push(CodePathSegment.newNext( + context.idGenerator.next(), + [currentSegments[i], currentSegments[i + length]] + )); + } + currentSegments = merged; + } + return currentSegments; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A class to manage forking. + */ +class ForkContext { + + /** + * @param {IdGenerator} idGenerator An identifier generator for segments. + * @param {ForkContext|null} upper An upper fork context. + * @param {number} count A number of parallel segments. + */ + constructor(idGenerator, upper, count) { + this.idGenerator = idGenerator; + this.upper = upper; + this.count = count; + this.segmentsList = []; + } + + /** + * The head segments. + * @type {CodePathSegment[]} + */ + get head() { + const list = this.segmentsList; + + return list.length === 0 ? [] : list[list.length - 1]; + } + + /** + * A flag which shows empty. + * @type {boolean} + */ + get empty() { + return this.segmentsList.length === 0; + } + + /** + * A flag which shows reachable. + * @type {boolean} + */ + get reachable() { + const segments = this.head; + + return segments.length > 0 && segments.some(isReachable); + } + + /** + * Creates new segments from this context. + * @param {number} begin The first index of previous segments. + * @param {number} end The last index of previous segments. + * @returns {CodePathSegment[]} New segments. + */ + makeNext(begin, end) { + return makeSegments(this, begin, end, CodePathSegment.newNext); + } + + /** + * Creates new segments from this context. + * The new segments is always unreachable. + * @param {number} begin The first index of previous segments. + * @param {number} end The last index of previous segments. + * @returns {CodePathSegment[]} New segments. + */ + makeUnreachable(begin, end) { + return makeSegments(this, begin, end, CodePathSegment.newUnreachable); + } + + /** + * Creates new segments from this context. + * The new segments don't have connections for previous segments. + * But these inherit the reachable flag from this context. + * @param {number} begin The first index of previous segments. + * @param {number} end The last index of previous segments. + * @returns {CodePathSegment[]} New segments. + */ + makeDisconnected(begin, end) { + return makeSegments(this, begin, end, CodePathSegment.newDisconnected); + } + + /** + * Adds segments into this context. + * The added segments become the head. + * @param {CodePathSegment[]} segments Segments to add. + * @returns {void} + */ + add(segments) { + assert(segments.length >= this.count, `${segments.length} >= ${this.count}`); + + this.segmentsList.push(mergeExtraSegments(this, segments)); + } + + /** + * Replaces the head segments with given segments. + * The current head segments are removed. + * @param {CodePathSegment[]} segments Segments to add. + * @returns {void} + */ + replaceHead(segments) { + assert(segments.length >= this.count, `${segments.length} >= ${this.count}`); + + this.segmentsList.splice(-1, 1, mergeExtraSegments(this, segments)); + } + + /** + * Adds all segments of a given fork context into this context. + * @param {ForkContext} context A fork context to add. + * @returns {void} + */ + addAll(context) { + assert(context.count === this.count); + + const source = context.segmentsList; + + for (let i = 0; i < source.length; ++i) { + this.segmentsList.push(source[i]); + } + } + + /** + * Clears all segments in this context. + * @returns {void} + */ + clear() { + this.segmentsList = []; + } + + /** + * Creates the root fork context. + * @param {IdGenerator} idGenerator An identifier generator for segments. + * @returns {ForkContext} New fork context. + */ + static newRoot(idGenerator) { + const context = new ForkContext(idGenerator, null, 1); + + context.add([CodePathSegment.newRoot(idGenerator.next())]); + + return context; + } + + /** + * Creates an empty fork context preceded by a given context. + * @param {ForkContext} parentContext The parent fork context. + * @param {boolean} forkLeavingPath A flag which shows inside of `finally` block. + * @returns {ForkContext} New fork context. + */ + static newEmpty(parentContext, forkLeavingPath) { + return new ForkContext( + parentContext.idGenerator, + parentContext, + (forkLeavingPath ? 2 : 1) * parentContext.count + ); + } +} + +module.exports = ForkContext; diff --git a/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js b/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js new file mode 100644 index 0000000..b580104 --- /dev/null +++ b/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js @@ -0,0 +1,45 @@ +/** + * @fileoverview A class of identifiers generator for code path segments. + * + * Each rule uses the identifier of code path segments to store additional + * information of the code path. + * + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A generator for unique ids. + */ +class IdGenerator { + + /** + * @param {string} prefix Optional. A prefix of generated ids. + */ + constructor(prefix) { + this.prefix = String(prefix); + this.n = 0; + } + + /** + * Generates id. + * @returns {string} A generated id. + */ + next() { + this.n = 1 + this.n | 0; + + /* c8 ignore start */ + if (this.n < 0) { + this.n = 1; + }/* c8 ignore stop */ + + return this.prefix + this.n; + } +} + +module.exports = IdGenerator; diff --git a/node_modules/eslint/lib/linter/config-comment-parser.js b/node_modules/eslint/lib/linter/config-comment-parser.js new file mode 100644 index 0000000..643de8f --- /dev/null +++ b/node_modules/eslint/lib/linter/config-comment-parser.js @@ -0,0 +1,144 @@ +/** + * @fileoverview Config Comment Parser + * @author Nicholas C. Zakas + */ + +/* eslint class-methods-use-this: off -- Methods desired on instance */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const levn = require("levn"), + { + Legacy: { + ConfigOps + } + } = require("@eslint/eslintrc/universal"); + +const debug = require("debug")("eslint:config-comment-parser"); + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Object to parse ESLint configuration comments inside JavaScript files. + * @name ConfigCommentParser + */ +module.exports = class ConfigCommentParser { + + /** + * Parses a list of "name:string_value" or/and "name" options divided by comma or + * whitespace. Used for "global" and "exported" comments. + * @param {string} string The string to parse. + * @param {Comment} comment The comment node which has the string. + * @returns {Object} Result map object of names and string values, or null values if no value was provided + */ + parseStringConfig(string, comment) { + debug("Parsing String config"); + + const items = {}; + + // Collapse whitespace around `:` and `,` to make parsing easier + const trimmedString = string.replace(/\s*([:,])\s*/gu, "$1"); + + trimmedString.split(/\s|,+/u).forEach(name => { + if (!name) { + return; + } + + // value defaults to null (if not provided), e.g: "foo" => ["foo", null] + const [key, value = null] = name.split(":"); + + items[key] = { value, comment }; + }); + return items; + } + + /** + * Parses a JSON-like config. + * @param {string} string The string to parse. + * @param {Object} location Start line and column of comments for potential error message. + * @returns {({success: true, config: Object}|{success: false, error: Problem})} Result map object + */ + parseJsonConfig(string, location) { + debug("Parsing JSON config"); + + let items = {}; + + // Parses a JSON-like comment by the same way as parsing CLI option. + try { + items = levn.parse("Object", string) || {}; + + // Some tests say that it should ignore invalid comments such as `/*eslint no-alert:abc*/`. + // Also, commaless notations have invalid severity: + // "no-alert: 2 no-console: 2" --> {"no-alert": "2 no-console: 2"} + // Should ignore that case as well. + if (ConfigOps.isEverySeverityValid(items)) { + return { + success: true, + config: items + }; + } + } catch { + + debug("Levn parsing failed; falling back to manual parsing."); + + // ignore to parse the string by a fallback. + } + + /* + * Optionator cannot parse commaless notations. + * But we are supporting that. So this is a fallback for that. + */ + items = {}; + const normalizedString = string.replace(/([-a-zA-Z0-9/]+):/gu, "\"$1\":").replace(/(\]|[0-9])\s+(?=")/u, "$1,"); + + try { + items = JSON.parse(`{${normalizedString}}`); + } catch (ex) { + debug("Manual parsing failed."); + + return { + success: false, + error: { + ruleId: null, + fatal: true, + severity: 2, + message: `Failed to parse JSON from '${normalizedString}': ${ex.message}`, + line: location.start.line, + column: location.start.column + 1 + } + }; + + } + + return { + success: true, + config: items + }; + } + + /** + * Parses a config of values separated by comma. + * @param {string} string The string to parse. + * @returns {Object} Result map of values and true values + */ + parseListConfig(string) { + debug("Parsing list config"); + + const items = {}; + + string.split(",").forEach(name => { + const trimmedName = name.trim(); + + if (trimmedName) { + items[trimmedName] = true; + } + }); + return items; + } + +}; diff --git a/node_modules/eslint/lib/linter/index.js b/node_modules/eslint/lib/linter/index.js new file mode 100644 index 0000000..25fd769 --- /dev/null +++ b/node_modules/eslint/lib/linter/index.js @@ -0,0 +1,13 @@ +"use strict"; + +const { Linter } = require("./linter"); +const interpolate = require("./interpolate"); +const SourceCodeFixer = require("./source-code-fixer"); + +module.exports = { + Linter, + + // For testers. + SourceCodeFixer, + interpolate +}; diff --git a/node_modules/eslint/lib/linter/interpolate.js b/node_modules/eslint/lib/linter/interpolate.js new file mode 100644 index 0000000..87e06a0 --- /dev/null +++ b/node_modules/eslint/lib/linter/interpolate.js @@ -0,0 +1,28 @@ +/** + * @fileoverview Interpolate keys from an object into a string with {{ }} markers. + * @author Jed Fox + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = (text, data) => { + if (!data) { + return text; + } + + // Substitution content for any {{ }} markers. + return text.replace(/\{\{([^{}]+?)\}\}/gu, (fullMatch, termWithWhitespace) => { + const term = termWithWhitespace.trim(); + + if (term in data) { + return data[term]; + } + + // Preserve old behavior: If parameter name not provided, don't replace it. + return fullMatch; + }); +}; diff --git a/node_modules/eslint/lib/linter/linter.js b/node_modules/eslint/lib/linter/linter.js new file mode 100644 index 0000000..1605962 --- /dev/null +++ b/node_modules/eslint/lib/linter/linter.js @@ -0,0 +1,2078 @@ +/** + * @fileoverview Main Linter Class + * @author Gyandeep Singh + * @author aladdin-add + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const + path = require("path"), + eslintScope = require("eslint-scope"), + evk = require("eslint-visitor-keys"), + espree = require("espree"), + merge = require("lodash.merge"), + pkg = require("../../package.json"), + astUtils = require("../shared/ast-utils"), + { + Legacy: { + ConfigOps, + ConfigValidator, + environments: BuiltInEnvironments + } + } = require("@eslint/eslintrc/universal"), + Traverser = require("../shared/traverser"), + { SourceCode } = require("../source-code"), + CodePathAnalyzer = require("./code-path-analysis/code-path-analyzer"), + applyDisableDirectives = require("./apply-disable-directives"), + ConfigCommentParser = require("./config-comment-parser"), + NodeEventGenerator = require("./node-event-generator"), + createReportTranslator = require("./report-translator"), + Rules = require("./rules"), + createEmitter = require("./safe-emitter"), + SourceCodeFixer = require("./source-code-fixer"), + timing = require("./timing"), + ruleReplacements = require("../../conf/replacements.json"); +const { getRuleFromConfig } = require("../config/flat-config-helpers"); +const { FlatConfigArray } = require("../config/flat-config-array"); + +const debug = require("debug")("eslint:linter"); +const MAX_AUTOFIX_PASSES = 10; +const DEFAULT_PARSER_NAME = "espree"; +const DEFAULT_ECMA_VERSION = 5; +const commentParser = new ConfigCommentParser(); +const DEFAULT_ERROR_LOC = { start: { line: 1, column: 0 }, end: { line: 1, column: 1 } }; +const parserSymbol = Symbol.for("eslint.RuleTester.parser"); +const globals = require("../../conf/globals"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** @typedef {InstanceType} ConfigArray */ +/** @typedef {InstanceType} ExtractedConfig */ +/** @typedef {import("../shared/types").ConfigData} ConfigData */ +/** @typedef {import("../shared/types").Environment} Environment */ +/** @typedef {import("../shared/types").GlobalConf} GlobalConf */ +/** @typedef {import("../shared/types").LintMessage} LintMessage */ +/** @typedef {import("../shared/types").SuppressedLintMessage} SuppressedLintMessage */ +/** @typedef {import("../shared/types").ParserOptions} ParserOptions */ +/** @typedef {import("../shared/types").LanguageOptions} LanguageOptions */ +/** @typedef {import("../shared/types").Processor} Processor */ +/** @typedef {import("../shared/types").Rule} Rule */ + +/* eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577 */ +/** + * @template T + * @typedef {{ [P in keyof T]-?: T[P] }} Required + */ +/* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577 */ + +/** + * @typedef {Object} DisableDirective + * @property {("disable"|"enable"|"disable-line"|"disable-next-line")} type Type of directive + * @property {number} line The line number + * @property {number} column The column number + * @property {(string|null)} ruleId The rule ID + * @property {string} justification The justification of directive + */ + +/** + * The private data for `Linter` instance. + * @typedef {Object} LinterInternalSlots + * @property {ConfigArray|null} lastConfigArray The `ConfigArray` instance that the last `verify()` call used. + * @property {SourceCode|null} lastSourceCode The `SourceCode` instance that the last `verify()` call used. + * @property {SuppressedLintMessage[]} lastSuppressedMessages The `SuppressedLintMessage[]` instance that the last `verify()` call produced. + * @property {Map} parserMap The loaded parsers. + * @property {Rules} ruleMap The loaded rules. + */ + +/** + * @typedef {Object} VerifyOptions + * @property {boolean} [allowInlineConfig] Allow/disallow inline comments' ability + * to change config once it is set. Defaults to true if not supplied. + * Useful if you want to validate JS without comments overriding rules. + * @property {boolean} [disableFixes] if `true` then the linter doesn't make `fix` + * properties into the lint result. + * @property {string} [filename] the filename of the source code. + * @property {boolean | "off" | "warn" | "error"} [reportUnusedDisableDirectives] Adds reported errors for + * unused `eslint-disable` directives. + */ + +/** + * @typedef {Object} ProcessorOptions + * @property {(filename:string, text:string) => boolean} [filterCodeBlock] the + * predicate function that selects adopt code blocks. + * @property {Processor.postprocess} [postprocess] postprocessor for report + * messages. If provided, this should accept an array of the message lists + * for each code block returned from the preprocessor, apply a mapping to + * the messages as appropriate, and return a one-dimensional array of + * messages. + * @property {Processor.preprocess} [preprocess] preprocessor for source text. + * If provided, this should accept a string of source text, and return an + * array of code blocks to lint. + */ + +/** + * @typedef {Object} FixOptions + * @property {boolean | ((message: LintMessage) => boolean)} [fix] Determines + * whether fixes should be applied. + */ + +/** + * @typedef {Object} InternalOptions + * @property {string | null} warnInlineConfig The config name what `noInlineConfig` setting came from. If `noInlineConfig` setting didn't exist, this is null. If this is a config name, then the linter warns directive comments. + * @property {"off" | "warn" | "error"} reportUnusedDisableDirectives (boolean values were normalized) + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines if a given object is Espree. + * @param {Object} parser The parser to check. + * @returns {boolean} True if the parser is Espree or false if not. + */ +function isEspree(parser) { + return !!(parser === espree || parser[parserSymbol] === espree); +} + +/** + * Retrieves globals for the given ecmaVersion. + * @param {number} ecmaVersion The version to retrieve globals for. + * @returns {Object} The globals for the given ecmaVersion. + */ +function getGlobalsForEcmaVersion(ecmaVersion) { + + switch (ecmaVersion) { + case 3: + return globals.es3; + + case 5: + return globals.es5; + + default: + if (ecmaVersion < 2015) { + return globals[`es${ecmaVersion + 2009}`]; + } + + return globals[`es${ecmaVersion}`]; + } +} + +/** + * Ensures that variables representing built-in properties of the Global Object, + * and any globals declared by special block comments, are present in the global + * scope. + * @param {Scope} globalScope The global scope. + * @param {Object} configGlobals The globals declared in configuration + * @param {{exportedVariables: Object, enabledGlobals: Object}} commentDirectives Directives from comment configuration + * @returns {void} + */ +function addDeclaredGlobals(globalScope, configGlobals, { exportedVariables, enabledGlobals }) { + + // Define configured global variables. + for (const id of new Set([...Object.keys(configGlobals), ...Object.keys(enabledGlobals)])) { + + /* + * `ConfigOps.normalizeConfigGlobal` will throw an error if a configured global value is invalid. However, these errors would + * typically be caught when validating a config anyway (validity for inline global comments is checked separately). + */ + const configValue = configGlobals[id] === void 0 ? void 0 : ConfigOps.normalizeConfigGlobal(configGlobals[id]); + const commentValue = enabledGlobals[id] && enabledGlobals[id].value; + const value = commentValue || configValue; + const sourceComments = enabledGlobals[id] && enabledGlobals[id].comments; + + if (value === "off") { + continue; + } + + let variable = globalScope.set.get(id); + + if (!variable) { + variable = new eslintScope.Variable(id, globalScope); + + globalScope.variables.push(variable); + globalScope.set.set(id, variable); + } + + variable.eslintImplicitGlobalSetting = configValue; + variable.eslintExplicitGlobal = sourceComments !== void 0; + variable.eslintExplicitGlobalComments = sourceComments; + variable.writeable = (value === "writable"); + } + + // mark all exported variables as such + Object.keys(exportedVariables).forEach(name => { + const variable = globalScope.set.get(name); + + if (variable) { + variable.eslintUsed = true; + } + }); + + /* + * "through" contains all references which definitions cannot be found. + * Since we augment the global scope using configuration, we need to update + * references and remove the ones that were added by configuration. + */ + globalScope.through = globalScope.through.filter(reference => { + const name = reference.identifier.name; + const variable = globalScope.set.get(name); + + if (variable) { + + /* + * Links the variable and the reference. + * And this reference is removed from `Scope#through`. + */ + reference.resolved = variable; + variable.references.push(reference); + + return false; + } + + return true; + }); +} + +/** + * creates a missing-rule message. + * @param {string} ruleId the ruleId to create + * @returns {string} created error message + * @private + */ +function createMissingRuleMessage(ruleId) { + return Object.prototype.hasOwnProperty.call(ruleReplacements.rules, ruleId) + ? `Rule '${ruleId}' was removed and replaced by: ${ruleReplacements.rules[ruleId].join(", ")}` + : `Definition for rule '${ruleId}' was not found.`; +} + +/** + * creates a linting problem + * @param {Object} options to create linting error + * @param {string} [options.ruleId] the ruleId to report + * @param {Object} [options.loc] the loc to report + * @param {string} [options.message] the error message to report + * @param {string} [options.severity] the error message to report + * @returns {LintMessage} created problem, returns a missing-rule problem if only provided ruleId. + * @private + */ +function createLintingProblem(options) { + const { + ruleId = null, + loc = DEFAULT_ERROR_LOC, + message = createMissingRuleMessage(options.ruleId), + severity = 2 + } = options; + + return { + ruleId, + message, + line: loc.start.line, + column: loc.start.column + 1, + endLine: loc.end.line, + endColumn: loc.end.column + 1, + severity, + nodeType: null + }; +} + +/** + * Creates a collection of disable directives from a comment + * @param {Object} options to create disable directives + * @param {("disable"|"enable"|"disable-line"|"disable-next-line")} options.type The type of directive comment + * @param {token} options.commentToken The Comment token + * @param {string} options.value The value after the directive in the comment + * comment specified no specific rules, so it applies to all rules (e.g. `eslint-disable`) + * @param {string} options.justification The justification of the directive + * @param {function(string): {create: Function}} options.ruleMapper A map from rule IDs to defined rules + * @returns {Object} Directives and problems from the comment + */ +function createDisableDirectives(options) { + const { commentToken, type, value, justification, ruleMapper } = options; + const ruleIds = Object.keys(commentParser.parseListConfig(value)); + const directiveRules = ruleIds.length ? ruleIds : [null]; + const result = { + directives: [], // valid disable directives + directiveProblems: [] // problems in directives + }; + + const parentComment = { commentToken, ruleIds }; + + for (const ruleId of directiveRules) { + + // push to directives, if the rule is defined(including null, e.g. /*eslint enable*/) + if (ruleId === null || !!ruleMapper(ruleId)) { + if (type === "disable-next-line") { + result.directives.push({ + parentComment, + type, + line: commentToken.loc.end.line, + column: commentToken.loc.end.column + 1, + ruleId, + justification + }); + } else { + result.directives.push({ + parentComment, + type, + line: commentToken.loc.start.line, + column: commentToken.loc.start.column + 1, + ruleId, + justification + }); + } + } else { + result.directiveProblems.push(createLintingProblem({ ruleId, loc: commentToken.loc })); + } + } + return result; +} + +/** + * Extract the directive and the justification from a given directive comment and trim them. + * @param {string} value The comment text to extract. + * @returns {{directivePart: string, justificationPart: string}} The extracted directive and justification. + */ +function extractDirectiveComment(value) { + const match = /\s-{2,}\s/u.exec(value); + + if (!match) { + return { directivePart: value.trim(), justificationPart: "" }; + } + + const directive = value.slice(0, match.index).trim(); + const justification = value.slice(match.index + match[0].length).trim(); + + return { directivePart: directive, justificationPart: justification }; +} + +/** + * Parses comments in file to extract file-specific config of rules, globals + * and environments and merges them with global config; also code blocks + * where reporting is disabled or enabled and merges them with reporting config. + * @param {ASTNode} ast The top node of the AST. + * @param {function(string): {create: Function}} ruleMapper A map from rule IDs to defined rules + * @param {string|null} warnInlineConfig If a string then it should warn directive comments as disabled. The string value is the config name what the setting came from. + * @returns {{configuredRules: Object, enabledGlobals: {value:string,comment:Token}[], exportedVariables: Object, problems: Problem[], disableDirectives: DisableDirective[]}} + * A collection of the directive comments that were found, along with any problems that occurred when parsing + */ +function getDirectiveComments(ast, ruleMapper, warnInlineConfig) { + const configuredRules = {}; + const enabledGlobals = Object.create(null); + const exportedVariables = {}; + const problems = []; + const disableDirectives = []; + const validator = new ConfigValidator({ + builtInRules: Rules + }); + + ast.comments.filter(token => token.type !== "Shebang").forEach(comment => { + const { directivePart, justificationPart } = extractDirectiveComment(comment.value); + + const match = /^(eslint(?:-env|-enable|-disable(?:(?:-next)?-line)?)?|exported|globals?)(?:\s|$)/u.exec(directivePart); + + if (!match) { + return; + } + const directiveText = match[1]; + const lineCommentSupported = /^eslint-disable-(next-)?line$/u.test(directiveText); + + if (comment.type === "Line" && !lineCommentSupported) { + return; + } + + if (warnInlineConfig) { + const kind = comment.type === "Block" ? `/*${directiveText}*/` : `//${directiveText}`; + + problems.push(createLintingProblem({ + ruleId: null, + message: `'${kind}' has no effect because you have 'noInlineConfig' setting in ${warnInlineConfig}.`, + loc: comment.loc, + severity: 1 + })); + return; + } + + if (directiveText === "eslint-disable-line" && comment.loc.start.line !== comment.loc.end.line) { + const message = `${directiveText} comment should not span multiple lines.`; + + problems.push(createLintingProblem({ + ruleId: null, + message, + loc: comment.loc + })); + return; + } + + const directiveValue = directivePart.slice(match.index + directiveText.length); + + switch (directiveText) { + case "eslint-disable": + case "eslint-enable": + case "eslint-disable-next-line": + case "eslint-disable-line": { + const directiveType = directiveText.slice("eslint-".length); + const options = { commentToken: comment, type: directiveType, value: directiveValue, justification: justificationPart, ruleMapper }; + const { directives, directiveProblems } = createDisableDirectives(options); + + disableDirectives.push(...directives); + problems.push(...directiveProblems); + break; + } + + case "exported": + Object.assign(exportedVariables, commentParser.parseStringConfig(directiveValue, comment)); + break; + + case "globals": + case "global": + for (const [id, { value }] of Object.entries(commentParser.parseStringConfig(directiveValue, comment))) { + let normalizedValue; + + try { + normalizedValue = ConfigOps.normalizeConfigGlobal(value); + } catch (err) { + problems.push(createLintingProblem({ + ruleId: null, + loc: comment.loc, + message: err.message + })); + continue; + } + + if (enabledGlobals[id]) { + enabledGlobals[id].comments.push(comment); + enabledGlobals[id].value = normalizedValue; + } else { + enabledGlobals[id] = { + comments: [comment], + value: normalizedValue + }; + } + } + break; + + case "eslint": { + const parseResult = commentParser.parseJsonConfig(directiveValue, comment.loc); + + if (parseResult.success) { + Object.keys(parseResult.config).forEach(name => { + const rule = ruleMapper(name); + const ruleValue = parseResult.config[name]; + + if (!rule) { + problems.push(createLintingProblem({ ruleId: name, loc: comment.loc })); + return; + } + + try { + validator.validateRuleOptions(rule, name, ruleValue); + } catch (err) { + problems.push(createLintingProblem({ + ruleId: name, + message: err.message, + loc: comment.loc + })); + + // do not apply the config, if found invalid options. + return; + } + + configuredRules[name] = ruleValue; + }); + } else { + problems.push(parseResult.error); + } + + break; + } + + // no default + } + }); + + return { + configuredRules, + enabledGlobals, + exportedVariables, + problems, + disableDirectives + }; +} + +/** + * Normalize ECMAScript version from the initial config + * @param {Parser} parser The parser which uses this options. + * @param {number} ecmaVersion ECMAScript version from the initial config + * @returns {number} normalized ECMAScript version + */ +function normalizeEcmaVersion(parser, ecmaVersion) { + + if (isEspree(parser)) { + if (ecmaVersion === "latest") { + return espree.latestEcmaVersion; + } + } + + /* + * Calculate ECMAScript edition number from official year version starting with + * ES2015, which corresponds with ES6 (or a difference of 2009). + */ + return ecmaVersion >= 2015 ? ecmaVersion - 2009 : ecmaVersion; +} + +/** + * Normalize ECMAScript version from the initial config into languageOptions (year) + * format. + * @param {any} [ecmaVersion] ECMAScript version from the initial config + * @returns {number} normalized ECMAScript version + */ +function normalizeEcmaVersionForLanguageOptions(ecmaVersion) { + + switch (ecmaVersion) { + case 3: + return 3; + + // void 0 = no ecmaVersion specified so use the default + case 5: + case void 0: + return 5; + + default: + if (typeof ecmaVersion === "number") { + return ecmaVersion >= 2015 ? ecmaVersion : ecmaVersion + 2009; + } + } + + /* + * We default to the latest supported ecmaVersion for everything else. + * Remember, this is for languageOptions.ecmaVersion, which sets the version + * that is used for a number of processes inside of ESLint. It's normally + * safe to assume people want the latest unless otherwise specified. + */ + return espree.latestEcmaVersion + 2009; +} + +const eslintEnvPattern = /\/\*\s*eslint-env\s(.+?)(?:\*\/|$)/gsu; + +/** + * Checks whether or not there is a comment which has "eslint-env *" in a given text. + * @param {string} text A source code text to check. + * @returns {Object|null} A result of parseListConfig() with "eslint-env *" comment. + */ +function findEslintEnv(text) { + let match, retv; + + eslintEnvPattern.lastIndex = 0; + + while ((match = eslintEnvPattern.exec(text)) !== null) { + if (match[0].endsWith("*/")) { + retv = Object.assign( + retv || {}, + commentParser.parseListConfig(extractDirectiveComment(match[1]).directivePart) + ); + } + } + + return retv; +} + +/** + * Convert "/path/to/" to "". + * `CLIEngine#executeOnText()` method gives "/path/to/" if the filename + * was omitted because `configArray.extractConfig()` requires an absolute path. + * But the linter should pass `` to `RuleContext#getFilename()` in that + * case. + * Also, code blocks can have their virtual filename. If the parent filename was + * ``, the virtual filename is `/0_foo.js` or something like (i.e., + * it's not an absolute path). + * @param {string} filename The filename to normalize. + * @returns {string} The normalized filename. + */ +function normalizeFilename(filename) { + const parts = filename.split(path.sep); + const index = parts.lastIndexOf(""); + + return index === -1 ? filename : parts.slice(index).join(path.sep); +} + +/** + * Normalizes the possible options for `linter.verify` and `linter.verifyAndFix` to a + * consistent shape. + * @param {VerifyOptions} providedOptions Options + * @param {ConfigData} config Config. + * @returns {Required & InternalOptions} Normalized options + */ +function normalizeVerifyOptions(providedOptions, config) { + + const linterOptions = config.linterOptions || config; + + // .noInlineConfig for eslintrc, .linterOptions.noInlineConfig for flat + const disableInlineConfig = linterOptions.noInlineConfig === true; + const ignoreInlineConfig = providedOptions.allowInlineConfig === false; + const configNameOfNoInlineConfig = config.configNameOfNoInlineConfig + ? ` (${config.configNameOfNoInlineConfig})` + : ""; + + let reportUnusedDisableDirectives = providedOptions.reportUnusedDisableDirectives; + + if (typeof reportUnusedDisableDirectives === "boolean") { + reportUnusedDisableDirectives = reportUnusedDisableDirectives ? "error" : "off"; + } + if (typeof reportUnusedDisableDirectives !== "string") { + reportUnusedDisableDirectives = + linterOptions.reportUnusedDisableDirectives + ? "warn" : "off"; + } + + return { + filename: normalizeFilename(providedOptions.filename || ""), + allowInlineConfig: !ignoreInlineConfig, + warnInlineConfig: disableInlineConfig && !ignoreInlineConfig + ? `your config${configNameOfNoInlineConfig}` + : null, + reportUnusedDisableDirectives, + disableFixes: Boolean(providedOptions.disableFixes) + }; +} + +/** + * Combines the provided parserOptions with the options from environments + * @param {Parser} parser The parser which uses this options. + * @param {ParserOptions} providedOptions The provided 'parserOptions' key in a config + * @param {Environment[]} enabledEnvironments The environments enabled in configuration and with inline comments + * @returns {ParserOptions} Resulting parser options after merge + */ +function resolveParserOptions(parser, providedOptions, enabledEnvironments) { + + const parserOptionsFromEnv = enabledEnvironments + .filter(env => env.parserOptions) + .reduce((parserOptions, env) => merge(parserOptions, env.parserOptions), {}); + const mergedParserOptions = merge(parserOptionsFromEnv, providedOptions || {}); + const isModule = mergedParserOptions.sourceType === "module"; + + if (isModule) { + + /* + * can't have global return inside of modules + * TODO: espree validate parserOptions.globalReturn when sourceType is setting to module.(@aladdin-add) + */ + mergedParserOptions.ecmaFeatures = Object.assign({}, mergedParserOptions.ecmaFeatures, { globalReturn: false }); + } + + mergedParserOptions.ecmaVersion = normalizeEcmaVersion(parser, mergedParserOptions.ecmaVersion); + + return mergedParserOptions; +} + +/** + * Converts parserOptions to languageOptions for backwards compatibility with eslintrc. + * @param {ConfigData} config Config object. + * @param {Object} config.globals Global variable definitions. + * @param {Parser} config.parser The parser to use. + * @param {ParserOptions} config.parserOptions The parserOptions to use. + * @returns {LanguageOptions} The languageOptions equivalent. + */ +function createLanguageOptions({ globals: configuredGlobals, parser, parserOptions }) { + + const { + ecmaVersion, + sourceType + } = parserOptions; + + return { + globals: configuredGlobals, + ecmaVersion: normalizeEcmaVersionForLanguageOptions(ecmaVersion), + sourceType, + parser, + parserOptions + }; +} + +/** + * Combines the provided globals object with the globals from environments + * @param {Record} providedGlobals The 'globals' key in a config + * @param {Environment[]} enabledEnvironments The environments enabled in configuration and with inline comments + * @returns {Record} The resolved globals object + */ +function resolveGlobals(providedGlobals, enabledEnvironments) { + return Object.assign( + {}, + ...enabledEnvironments.filter(env => env.globals).map(env => env.globals), + providedGlobals + ); +} + +/** + * Strips Unicode BOM from a given text. + * @param {string} text A text to strip. + * @returns {string} The stripped text. + */ +function stripUnicodeBOM(text) { + + /* + * Check Unicode BOM. + * In JavaScript, string data is stored as UTF-16, so BOM is 0xFEFF. + * http://www.ecma-international.org/ecma-262/6.0/#sec-unicode-format-control-characters + */ + if (text.charCodeAt(0) === 0xFEFF) { + return text.slice(1); + } + return text; +} + +/** + * Get the options for a rule (not including severity), if any + * @param {Array|number} ruleConfig rule configuration + * @returns {Array} of rule options, empty Array if none + */ +function getRuleOptions(ruleConfig) { + if (Array.isArray(ruleConfig)) { + return ruleConfig.slice(1); + } + return []; + +} + +/** + * Analyze scope of the given AST. + * @param {ASTNode} ast The `Program` node to analyze. + * @param {LanguageOptions} languageOptions The parser options. + * @param {Record} visitorKeys The visitor keys. + * @returns {ScopeManager} The analysis result. + */ +function analyzeScope(ast, languageOptions, visitorKeys) { + const parserOptions = languageOptions.parserOptions; + const ecmaFeatures = parserOptions.ecmaFeatures || {}; + const ecmaVersion = languageOptions.ecmaVersion || DEFAULT_ECMA_VERSION; + + return eslintScope.analyze(ast, { + ignoreEval: true, + nodejsScope: ecmaFeatures.globalReturn, + impliedStrict: ecmaFeatures.impliedStrict, + ecmaVersion: typeof ecmaVersion === "number" ? ecmaVersion : 6, + sourceType: languageOptions.sourceType || "script", + childVisitorKeys: visitorKeys || evk.KEYS, + fallback: Traverser.getKeys + }); +} + +/** + * Parses text into an AST. Moved out here because the try-catch prevents + * optimization of functions, so it's best to keep the try-catch as isolated + * as possible + * @param {string} text The text to parse. + * @param {LanguageOptions} languageOptions Options to pass to the parser + * @param {string} filePath The path to the file being parsed. + * @returns {{success: false, error: Problem}|{success: true, sourceCode: SourceCode}} + * An object containing the AST and parser services if parsing was successful, or the error if parsing failed + * @private + */ +function parse(text, languageOptions, filePath) { + const textToParse = stripUnicodeBOM(text).replace(astUtils.shebangPattern, (match, captured) => `//${captured}`); + const { ecmaVersion, sourceType, parser } = languageOptions; + const parserOptions = Object.assign( + { ecmaVersion, sourceType }, + languageOptions.parserOptions, + { + loc: true, + range: true, + raw: true, + tokens: true, + comment: true, + eslintVisitorKeys: true, + eslintScopeManager: true, + filePath + } + ); + + /* + * Check for parsing errors first. If there's a parsing error, nothing + * else can happen. However, a parsing error does not throw an error + * from this method - it's just considered a fatal error message, a + * problem that ESLint identified just like any other. + */ + try { + debug("Parsing:", filePath); + const parseResult = (typeof parser.parseForESLint === "function") + ? parser.parseForESLint(textToParse, parserOptions) + : { ast: parser.parse(textToParse, parserOptions) }; + + debug("Parsing successful:", filePath); + const ast = parseResult.ast; + const parserServices = parseResult.services || {}; + const visitorKeys = parseResult.visitorKeys || evk.KEYS; + + debug("Scope analysis:", filePath); + const scopeManager = parseResult.scopeManager || analyzeScope(ast, languageOptions, visitorKeys); + + debug("Scope analysis successful:", filePath); + + return { + success: true, + + /* + * Save all values that `parseForESLint()` returned. + * If a `SourceCode` object is given as the first parameter instead of source code text, + * linter skips the parsing process and reuses the source code object. + * In that case, linter needs all the values that `parseForESLint()` returned. + */ + sourceCode: new SourceCode({ + text, + ast, + parserServices, + scopeManager, + visitorKeys + }) + }; + } catch (ex) { + + // If the message includes a leading line number, strip it: + const message = `Parsing error: ${ex.message.replace(/^line \d+:/iu, "").trim()}`; + + debug("%s\n%s", message, ex.stack); + + return { + success: false, + error: { + ruleId: null, + fatal: true, + severity: 2, + message, + line: ex.lineNumber, + column: ex.column + } + }; + } +} + +/** + * Gets the scope for the current node + * @param {ScopeManager} scopeManager The scope manager for this AST + * @param {ASTNode} currentNode The node to get the scope of + * @returns {eslint-scope.Scope} The scope information for this node + */ +function getScope(scopeManager, currentNode) { + + // On Program node, get the outermost scope to avoid return Node.js special function scope or ES modules scope. + const inner = currentNode.type !== "Program"; + + for (let node = currentNode; node; node = node.parent) { + const scope = scopeManager.acquire(node, inner); + + if (scope) { + if (scope.type === "function-expression-name") { + return scope.childScopes[0]; + } + return scope; + } + } + + return scopeManager.scopes[0]; +} + +/** + * Marks a variable as used in the current scope + * @param {ScopeManager} scopeManager The scope manager for this AST. The scope may be mutated by this function. + * @param {ASTNode} currentNode The node currently being traversed + * @param {LanguageOptions} languageOptions The options used to parse this text + * @param {string} name The name of the variable that should be marked as used. + * @returns {boolean} True if the variable was found and marked as used, false if not. + */ +function markVariableAsUsed(scopeManager, currentNode, languageOptions, name) { + const parserOptions = languageOptions.parserOptions; + const sourceType = languageOptions.sourceType; + const hasGlobalReturn = + (parserOptions.ecmaFeatures && parserOptions.ecmaFeatures.globalReturn) || + sourceType === "commonjs"; + const specialScope = hasGlobalReturn || sourceType === "module"; + const currentScope = getScope(scopeManager, currentNode); + + // Special Node.js scope means we need to start one level deeper + const initialScope = currentScope.type === "global" && specialScope ? currentScope.childScopes[0] : currentScope; + + for (let scope = initialScope; scope; scope = scope.upper) { + const variable = scope.variables.find(scopeVar => scopeVar.name === name); + + if (variable) { + variable.eslintUsed = true; + return true; + } + } + + return false; +} + +/** + * Runs a rule, and gets its listeners + * @param {Rule} rule A normalized rule with a `create` method + * @param {Context} ruleContext The context that should be passed to the rule + * @throws {any} Any error during the rule's `create` + * @returns {Object} A map of selector listeners provided by the rule + */ +function createRuleListeners(rule, ruleContext) { + try { + return rule.create(ruleContext); + } catch (ex) { + ex.message = `Error while loading rule '${ruleContext.id}': ${ex.message}`; + throw ex; + } +} + +/** + * Gets all the ancestors of a given node + * @param {ASTNode} node The node + * @returns {ASTNode[]} All the ancestor nodes in the AST, not including the provided node, starting + * from the root node and going inwards to the parent node. + */ +function getAncestors(node) { + const ancestorsStartingAtParent = []; + + for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) { + ancestorsStartingAtParent.push(ancestor); + } + + return ancestorsStartingAtParent.reverse(); +} + +// methods that exist on SourceCode object +const DEPRECATED_SOURCECODE_PASSTHROUGHS = { + getSource: "getText", + getSourceLines: "getLines", + getAllComments: "getAllComments", + getNodeByRangeIndex: "getNodeByRangeIndex", + getComments: "getComments", + getCommentsBefore: "getCommentsBefore", + getCommentsAfter: "getCommentsAfter", + getCommentsInside: "getCommentsInside", + getJSDocComment: "getJSDocComment", + getFirstToken: "getFirstToken", + getFirstTokens: "getFirstTokens", + getLastToken: "getLastToken", + getLastTokens: "getLastTokens", + getTokenAfter: "getTokenAfter", + getTokenBefore: "getTokenBefore", + getTokenByRangeStart: "getTokenByRangeStart", + getTokens: "getTokens", + getTokensAfter: "getTokensAfter", + getTokensBefore: "getTokensBefore", + getTokensBetween: "getTokensBetween" +}; + +const BASE_TRAVERSAL_CONTEXT = Object.freeze( + Object.keys(DEPRECATED_SOURCECODE_PASSTHROUGHS).reduce( + (contextInfo, methodName) => + Object.assign(contextInfo, { + [methodName](...args) { + return this.getSourceCode()[DEPRECATED_SOURCECODE_PASSTHROUGHS[methodName]](...args); + } + }), + {} + ) +); + +/** + * Runs the given rules on the given SourceCode object + * @param {SourceCode} sourceCode A SourceCode object for the given text + * @param {Object} configuredRules The rules configuration + * @param {function(string): Rule} ruleMapper A mapper function from rule names to rules + * @param {string | undefined} parserName The name of the parser in the config + * @param {LanguageOptions} languageOptions The options for parsing the code. + * @param {Object} settings The settings that were enabled in the config + * @param {string} filename The reported filename of the code + * @param {boolean} disableFixes If true, it doesn't make `fix` properties. + * @param {string | undefined} cwd cwd of the cli + * @param {string} physicalFilename The full path of the file on disk without any code block information + * @returns {Problem[]} An array of reported problems + */ +function runRules(sourceCode, configuredRules, ruleMapper, parserName, languageOptions, settings, filename, disableFixes, cwd, physicalFilename) { + const emitter = createEmitter(); + const nodeQueue = []; + let currentNode = sourceCode.ast; + + Traverser.traverse(sourceCode.ast, { + enter(node, parent) { + node.parent = parent; + nodeQueue.push({ isEntering: true, node }); + }, + leave(node) { + nodeQueue.push({ isEntering: false, node }); + }, + visitorKeys: sourceCode.visitorKeys + }); + + /* + * Create a frozen object with the ruleContext properties and methods that are shared by all rules. + * All rule contexts will inherit from this object. This avoids the performance penalty of copying all the + * properties once for each rule. + */ + const sharedTraversalContext = Object.freeze( + Object.assign( + Object.create(BASE_TRAVERSAL_CONTEXT), + { + getAncestors: () => getAncestors(currentNode), + getDeclaredVariables: sourceCode.scopeManager.getDeclaredVariables.bind(sourceCode.scopeManager), + getCwd: () => cwd, + getFilename: () => filename, + getPhysicalFilename: () => physicalFilename || filename, + getScope: () => getScope(sourceCode.scopeManager, currentNode), + getSourceCode: () => sourceCode, + markVariableAsUsed: name => markVariableAsUsed(sourceCode.scopeManager, currentNode, languageOptions, name), + parserOptions: { + ...languageOptions.parserOptions + }, + parserPath: parserName, + languageOptions, + parserServices: sourceCode.parserServices, + settings + } + ) + ); + + const lintingProblems = []; + + Object.keys(configuredRules).forEach(ruleId => { + const severity = ConfigOps.getRuleSeverity(configuredRules[ruleId]); + + // not load disabled rules + if (severity === 0) { + return; + } + + const rule = ruleMapper(ruleId); + + if (!rule) { + lintingProblems.push(createLintingProblem({ ruleId })); + return; + } + + const messageIds = rule.meta && rule.meta.messages; + let reportTranslator = null; + const ruleContext = Object.freeze( + Object.assign( + Object.create(sharedTraversalContext), + { + id: ruleId, + options: getRuleOptions(configuredRules[ruleId]), + report(...args) { + + /* + * Create a report translator lazily. + * In a vast majority of cases, any given rule reports zero errors on a given + * piece of code. Creating a translator lazily avoids the performance cost of + * creating a new translator function for each rule that usually doesn't get + * called. + * + * Using lazy report translators improves end-to-end performance by about 3% + * with Node 8.4.0. + */ + if (reportTranslator === null) { + reportTranslator = createReportTranslator({ + ruleId, + severity, + sourceCode, + messageIds, + disableFixes + }); + } + const problem = reportTranslator(...args); + + if (problem.fix && !(rule.meta && rule.meta.fixable)) { + throw new Error("Fixable rules must set the `meta.fixable` property to \"code\" or \"whitespace\"."); + } + if (problem.suggestions && !(rule.meta && rule.meta.hasSuggestions === true)) { + if (rule.meta && rule.meta.docs && typeof rule.meta.docs.suggestion !== "undefined") { + + // Encourage migration from the former property name. + throw new Error("Rules with suggestions must set the `meta.hasSuggestions` property to `true`. `meta.docs.suggestion` is ignored by ESLint."); + } + throw new Error("Rules with suggestions must set the `meta.hasSuggestions` property to `true`."); + } + lintingProblems.push(problem); + } + } + ) + ); + + const ruleListeners = timing.enabled ? timing.time(ruleId, createRuleListeners)(rule, ruleContext) : createRuleListeners(rule, ruleContext); + + /** + * Include `ruleId` in error logs + * @param {Function} ruleListener A rule method that listens for a node. + * @returns {Function} ruleListener wrapped in error handler + */ + function addRuleErrorHandler(ruleListener) { + return function ruleErrorHandler(...listenerArgs) { + try { + return ruleListener(...listenerArgs); + } catch (e) { + e.ruleId = ruleId; + throw e; + } + }; + } + + if (typeof ruleListeners === "undefined" || ruleListeners === null) { + throw new Error(`The create() function for rule '${ruleId}' did not return an object.`); + } + + // add all the selectors from the rule as listeners + Object.keys(ruleListeners).forEach(selector => { + const ruleListener = timing.enabled + ? timing.time(ruleId, ruleListeners[selector]) + : ruleListeners[selector]; + + emitter.on( + selector, + addRuleErrorHandler(ruleListener) + ); + }); + }); + + // only run code path analyzer if the top level node is "Program", skip otherwise + const eventGenerator = nodeQueue[0].node.type === "Program" + ? new CodePathAnalyzer(new NodeEventGenerator(emitter, { visitorKeys: sourceCode.visitorKeys, fallback: Traverser.getKeys })) + : new NodeEventGenerator(emitter, { visitorKeys: sourceCode.visitorKeys, fallback: Traverser.getKeys }); + + nodeQueue.forEach(traversalInfo => { + currentNode = traversalInfo.node; + + try { + if (traversalInfo.isEntering) { + eventGenerator.enterNode(currentNode); + } else { + eventGenerator.leaveNode(currentNode); + } + } catch (err) { + err.currentNode = currentNode; + throw err; + } + }); + + return lintingProblems; +} + +/** + * Ensure the source code to be a string. + * @param {string|SourceCode} textOrSourceCode The text or source code object. + * @returns {string} The source code text. + */ +function ensureText(textOrSourceCode) { + if (typeof textOrSourceCode === "object") { + const { hasBOM, text } = textOrSourceCode; + const bom = hasBOM ? "\uFEFF" : ""; + + return bom + text; + } + + return String(textOrSourceCode); +} + +/** + * Get an environment. + * @param {LinterInternalSlots} slots The internal slots of Linter. + * @param {string} envId The environment ID to get. + * @returns {Environment|null} The environment. + */ +function getEnv(slots, envId) { + return ( + (slots.lastConfigArray && slots.lastConfigArray.pluginEnvironments.get(envId)) || + BuiltInEnvironments.get(envId) || + null + ); +} + +/** + * Get a rule. + * @param {LinterInternalSlots} slots The internal slots of Linter. + * @param {string} ruleId The rule ID to get. + * @returns {Rule|null} The rule. + */ +function getRule(slots, ruleId) { + return ( + (slots.lastConfigArray && slots.lastConfigArray.pluginRules.get(ruleId)) || + slots.ruleMap.get(ruleId) + ); +} + +/** + * Normalize the value of the cwd + * @param {string | undefined} cwd raw value of the cwd, path to a directory that should be considered as the current working directory, can be undefined. + * @returns {string | undefined} normalized cwd + */ +function normalizeCwd(cwd) { + if (cwd) { + return cwd; + } + if (typeof process === "object") { + return process.cwd(); + } + + // It's more explicit to assign the undefined + // eslint-disable-next-line no-undefined -- Consistently returning a value + return undefined; +} + +/** + * The map to store private data. + * @type {WeakMap} + */ +const internalSlotsMap = new WeakMap(); + +/** + * Throws an error when the given linter is in flat config mode. + * @param {Linter} linter The linter to check. + * @returns {void} + * @throws {Error} If the linter is in flat config mode. + */ +function assertEslintrcConfig(linter) { + const { configType } = internalSlotsMap.get(linter); + + if (configType === "flat") { + throw new Error("This method cannot be used with flat config. Add your entries directly into the config array."); + } +} + + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Object that is responsible for verifying JavaScript text + * @name Linter + */ +class Linter { + + /** + * Initialize the Linter. + * @param {Object} [config] the config object + * @param {string} [config.cwd] path to a directory that should be considered as the current working directory, can be undefined. + * @param {"flat"|"eslintrc"} [config.configType="eslintrc"] the type of config used. + */ + constructor({ cwd, configType } = {}) { + internalSlotsMap.set(this, { + cwd: normalizeCwd(cwd), + lastConfigArray: null, + lastSourceCode: null, + lastSuppressedMessages: [], + configType, // TODO: Remove after flat config conversion + parserMap: new Map([["espree", espree]]), + ruleMap: new Rules() + }); + + this.version = pkg.version; + } + + /** + * Getter for package version. + * @static + * @returns {string} The version from package.json. + */ + static get version() { + return pkg.version; + } + + /** + * Same as linter.verify, except without support for processors. + * @param {string|SourceCode} textOrSourceCode The text to parse or a SourceCode object. + * @param {ConfigData} providedConfig An ESLintConfig instance to configure everything. + * @param {VerifyOptions} [providedOptions] The optional filename of the file being checked. + * @throws {Error} If during rule execution. + * @returns {(LintMessage|SuppressedLintMessage)[]} The results as an array of messages or an empty array if no messages. + */ + _verifyWithoutProcessors(textOrSourceCode, providedConfig, providedOptions) { + const slots = internalSlotsMap.get(this); + const config = providedConfig || {}; + const options = normalizeVerifyOptions(providedOptions, config); + let text; + + // evaluate arguments + if (typeof textOrSourceCode === "string") { + slots.lastSourceCode = null; + text = textOrSourceCode; + } else { + slots.lastSourceCode = textOrSourceCode; + text = textOrSourceCode.text; + } + + // Resolve parser. + let parserName = DEFAULT_PARSER_NAME; + let parser = espree; + + if (typeof config.parser === "object" && config.parser !== null) { + parserName = config.parser.filePath; + parser = config.parser.definition; + } else if (typeof config.parser === "string") { + if (!slots.parserMap.has(config.parser)) { + return [{ + ruleId: null, + fatal: true, + severity: 2, + message: `Configured parser '${config.parser}' was not found.`, + line: 0, + column: 0 + }]; + } + parserName = config.parser; + parser = slots.parserMap.get(config.parser); + } + + // search and apply "eslint-env *". + const envInFile = options.allowInlineConfig && !options.warnInlineConfig + ? findEslintEnv(text) + : {}; + const resolvedEnvConfig = Object.assign({ builtin: true }, config.env, envInFile); + const enabledEnvs = Object.keys(resolvedEnvConfig) + .filter(envName => resolvedEnvConfig[envName]) + .map(envName => getEnv(slots, envName)) + .filter(env => env); + + const parserOptions = resolveParserOptions(parser, config.parserOptions || {}, enabledEnvs); + const configuredGlobals = resolveGlobals(config.globals || {}, enabledEnvs); + const settings = config.settings || {}; + const languageOptions = createLanguageOptions({ + globals: config.globals, + parser, + parserOptions + }); + + if (!slots.lastSourceCode) { + const parseResult = parse( + text, + languageOptions, + options.filename + ); + + if (!parseResult.success) { + return [parseResult.error]; + } + + slots.lastSourceCode = parseResult.sourceCode; + } else { + + /* + * If the given source code object as the first argument does not have scopeManager, analyze the scope. + * This is for backward compatibility (SourceCode is frozen so it cannot rebind). + */ + if (!slots.lastSourceCode.scopeManager) { + slots.lastSourceCode = new SourceCode({ + text: slots.lastSourceCode.text, + ast: slots.lastSourceCode.ast, + parserServices: slots.lastSourceCode.parserServices, + visitorKeys: slots.lastSourceCode.visitorKeys, + scopeManager: analyzeScope(slots.lastSourceCode.ast, languageOptions) + }); + } + } + + const sourceCode = slots.lastSourceCode; + const commentDirectives = options.allowInlineConfig + ? getDirectiveComments(sourceCode.ast, ruleId => getRule(slots, ruleId), options.warnInlineConfig) + : { configuredRules: {}, enabledGlobals: {}, exportedVariables: {}, problems: [], disableDirectives: [] }; + + // augment global scope with declared global variables + addDeclaredGlobals( + sourceCode.scopeManager.scopes[0], + configuredGlobals, + { exportedVariables: commentDirectives.exportedVariables, enabledGlobals: commentDirectives.enabledGlobals } + ); + + const configuredRules = Object.assign({}, config.rules, commentDirectives.configuredRules); + + let lintingProblems; + + try { + lintingProblems = runRules( + sourceCode, + configuredRules, + ruleId => getRule(slots, ruleId), + parserName, + languageOptions, + settings, + options.filename, + options.disableFixes, + slots.cwd, + providedOptions.physicalFilename + ); + } catch (err) { + err.message += `\nOccurred while linting ${options.filename}`; + debug("An error occurred while traversing"); + debug("Filename:", options.filename); + if (err.currentNode) { + const { line } = err.currentNode.loc.start; + + debug("Line:", line); + err.message += `:${line}`; + } + debug("Parser Options:", parserOptions); + debug("Parser Path:", parserName); + debug("Settings:", settings); + + if (err.ruleId) { + err.message += `\nRule: "${err.ruleId}"`; + } + + throw err; + } + + return applyDisableDirectives({ + directives: commentDirectives.disableDirectives, + disableFixes: options.disableFixes, + problems: lintingProblems + .concat(commentDirectives.problems) + .sort((problemA, problemB) => problemA.line - problemB.line || problemA.column - problemB.column), + reportUnusedDisableDirectives: options.reportUnusedDisableDirectives + }); + } + + /** + * Verifies the text against the rules specified by the second argument. + * @param {string|SourceCode} textOrSourceCode The text to parse or a SourceCode object. + * @param {ConfigData|ConfigArray} config An ESLintConfig instance to configure everything. + * @param {(string|(VerifyOptions&ProcessorOptions))} [filenameOrOptions] The optional filename of the file being checked. + * If this is not set, the filename will default to '' in the rule context. If + * an object, then it has "filename", "allowInlineConfig", and some properties. + * @returns {LintMessage[]} The results as an array of messages or an empty array if no messages. + */ + verify(textOrSourceCode, config, filenameOrOptions) { + debug("Verify"); + + const { configType } = internalSlotsMap.get(this); + + const options = typeof filenameOrOptions === "string" + ? { filename: filenameOrOptions } + : filenameOrOptions || {}; + + if (config) { + if (configType === "flat") { + + /* + * Because of how Webpack packages up the files, we can't + * compare directly to `FlatConfigArray` using `instanceof` + * because it's not the same `FlatConfigArray` as in the tests. + * So, we work around it by assuming an array is, in fact, a + * `FlatConfigArray` if it has a `getConfig()` method. + */ + let configArray = config; + + if (!Array.isArray(config) || typeof config.getConfig !== "function") { + configArray = new FlatConfigArray(config); + configArray.normalizeSync(); + } + + return this._distinguishSuppressedMessages(this._verifyWithFlatConfigArray(textOrSourceCode, configArray, options, true)); + } + + if (typeof config.extractConfig === "function") { + return this._distinguishSuppressedMessages(this._verifyWithConfigArray(textOrSourceCode, config, options)); + } + } + + /* + * If we get to here, it means `config` is just an object rather + * than a config array so we can go right into linting. + */ + + /* + * `Linter` doesn't support `overrides` property in configuration. + * So we cannot apply multiple processors. + */ + if (options.preprocess || options.postprocess) { + return this._distinguishSuppressedMessages(this._verifyWithProcessor(textOrSourceCode, config, options)); + } + return this._distinguishSuppressedMessages(this._verifyWithoutProcessors(textOrSourceCode, config, options)); + } + + /** + * Verify with a processor. + * @param {string|SourceCode} textOrSourceCode The source code. + * @param {FlatConfig} config The config array. + * @param {VerifyOptions&ProcessorOptions} options The options. + * @param {FlatConfigArray} [configForRecursive] The `ConfigArray` object to apply multiple processors recursively. + * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems. + */ + _verifyWithFlatConfigArrayAndProcessor(textOrSourceCode, config, options, configForRecursive) { + const filename = options.filename || ""; + const filenameToExpose = normalizeFilename(filename); + const physicalFilename = options.physicalFilename || filenameToExpose; + const text = ensureText(textOrSourceCode); + const preprocess = options.preprocess || (rawText => [rawText]); + const postprocess = options.postprocess || (messagesList => messagesList.flat()); + const filterCodeBlock = + options.filterCodeBlock || + (blockFilename => blockFilename.endsWith(".js")); + const originalExtname = path.extname(filename); + + let blocks; + + try { + blocks = preprocess(text, filenameToExpose); + } catch (ex) { + + // If the message includes a leading line number, strip it: + const message = `Preprocessing error: ${ex.message.replace(/^line \d+:/iu, "").trim()}`; + + debug("%s\n%s", message, ex.stack); + + return [ + { + ruleId: null, + fatal: true, + severity: 2, + message, + line: ex.lineNumber, + column: ex.column + } + ]; + } + + const messageLists = blocks.map((block, i) => { + debug("A code block was found: %o", block.filename || "(unnamed)"); + + // Keep the legacy behavior. + if (typeof block === "string") { + return this._verifyWithFlatConfigArrayAndWithoutProcessors(block, config, options); + } + + const blockText = block.text; + const blockName = path.join(filename, `${i}_${block.filename}`); + + // Skip this block if filtered. + if (!filterCodeBlock(blockName, blockText)) { + debug("This code block was skipped."); + return []; + } + + // Resolve configuration again if the file content or extension was changed. + if (configForRecursive && (text !== blockText || path.extname(blockName) !== originalExtname)) { + debug("Resolving configuration again because the file content or extension was changed."); + return this._verifyWithFlatConfigArray( + blockText, + configForRecursive, + { ...options, filename: blockName, physicalFilename } + ); + } + + // Does lint. + return this._verifyWithFlatConfigArrayAndWithoutProcessors( + blockText, + config, + { ...options, filename: blockName, physicalFilename } + ); + }); + + return postprocess(messageLists, filenameToExpose); + } + + /** + * Same as linter.verify, except without support for processors. + * @param {string|SourceCode} textOrSourceCode The text to parse or a SourceCode object. + * @param {FlatConfig} providedConfig An ESLintConfig instance to configure everything. + * @param {VerifyOptions} [providedOptions] The optional filename of the file being checked. + * @throws {Error} If during rule execution. + * @returns {(LintMessage|SuppressedLintMessage)[]} The results as an array of messages or an empty array if no messages. + */ + _verifyWithFlatConfigArrayAndWithoutProcessors(textOrSourceCode, providedConfig, providedOptions) { + const slots = internalSlotsMap.get(this); + const config = providedConfig || {}; + const options = normalizeVerifyOptions(providedOptions, config); + let text; + + // evaluate arguments + if (typeof textOrSourceCode === "string") { + slots.lastSourceCode = null; + text = textOrSourceCode; + } else { + slots.lastSourceCode = textOrSourceCode; + text = textOrSourceCode.text; + } + + const languageOptions = config.languageOptions; + + languageOptions.ecmaVersion = normalizeEcmaVersionForLanguageOptions( + languageOptions.ecmaVersion + ); + + /* + * add configured globals and language globals + * + * using Object.assign instead of object spread for performance reasons + * https://github.com/eslint/eslint/issues/16302 + */ + const configuredGlobals = Object.assign( + {}, + getGlobalsForEcmaVersion(languageOptions.ecmaVersion), + languageOptions.sourceType === "commonjs" ? globals.commonjs : void 0, + languageOptions.globals + ); + + // double check that there is a parser to avoid mysterious error messages + if (!languageOptions.parser) { + throw new TypeError(`No parser specified for ${options.filename}`); + } + + // Espree expects this information to be passed in + if (isEspree(languageOptions.parser)) { + const parserOptions = languageOptions.parserOptions; + + if (languageOptions.sourceType) { + + parserOptions.sourceType = languageOptions.sourceType; + + if ( + parserOptions.sourceType === "module" && + parserOptions.ecmaFeatures && + parserOptions.ecmaFeatures.globalReturn + ) { + parserOptions.ecmaFeatures.globalReturn = false; + } + } + } + + const settings = config.settings || {}; + + if (!slots.lastSourceCode) { + const parseResult = parse( + text, + languageOptions, + options.filename + ); + + if (!parseResult.success) { + return [parseResult.error]; + } + + slots.lastSourceCode = parseResult.sourceCode; + } else { + + /* + * If the given source code object as the first argument does not have scopeManager, analyze the scope. + * This is for backward compatibility (SourceCode is frozen so it cannot rebind). + */ + if (!slots.lastSourceCode.scopeManager) { + slots.lastSourceCode = new SourceCode({ + text: slots.lastSourceCode.text, + ast: slots.lastSourceCode.ast, + parserServices: slots.lastSourceCode.parserServices, + visitorKeys: slots.lastSourceCode.visitorKeys, + scopeManager: analyzeScope(slots.lastSourceCode.ast, languageOptions) + }); + } + } + + const sourceCode = slots.lastSourceCode; + const commentDirectives = options.allowInlineConfig + ? getDirectiveComments( + sourceCode.ast, + ruleId => getRuleFromConfig(ruleId, config), + options.warnInlineConfig + ) + : { configuredRules: {}, enabledGlobals: {}, exportedVariables: {}, problems: [], disableDirectives: [] }; + + // augment global scope with declared global variables + addDeclaredGlobals( + sourceCode.scopeManager.scopes[0], + configuredGlobals, + { exportedVariables: commentDirectives.exportedVariables, enabledGlobals: commentDirectives.enabledGlobals } + ); + + const configuredRules = Object.assign({}, config.rules, commentDirectives.configuredRules); + + let lintingProblems; + + try { + lintingProblems = runRules( + sourceCode, + configuredRules, + ruleId => getRuleFromConfig(ruleId, config), + void 0, + languageOptions, + settings, + options.filename, + options.disableFixes, + slots.cwd, + providedOptions.physicalFilename + ); + } catch (err) { + err.message += `\nOccurred while linting ${options.filename}`; + debug("An error occurred while traversing"); + debug("Filename:", options.filename); + if (err.currentNode) { + const { line } = err.currentNode.loc.start; + + debug("Line:", line); + err.message += `:${line}`; + } + debug("Parser Options:", languageOptions.parserOptions); + + // debug("Parser Path:", parserName); + debug("Settings:", settings); + + if (err.ruleId) { + err.message += `\nRule: "${err.ruleId}"`; + } + + throw err; + } + + return applyDisableDirectives({ + directives: commentDirectives.disableDirectives, + disableFixes: options.disableFixes, + problems: lintingProblems + .concat(commentDirectives.problems) + .sort((problemA, problemB) => problemA.line - problemB.line || problemA.column - problemB.column), + reportUnusedDisableDirectives: options.reportUnusedDisableDirectives + }); + } + + /** + * Verify a given code with `ConfigArray`. + * @param {string|SourceCode} textOrSourceCode The source code. + * @param {ConfigArray} configArray The config array. + * @param {VerifyOptions&ProcessorOptions} options The options. + * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems. + */ + _verifyWithConfigArray(textOrSourceCode, configArray, options) { + debug("With ConfigArray: %s", options.filename); + + // Store the config array in order to get plugin envs and rules later. + internalSlotsMap.get(this).lastConfigArray = configArray; + + // Extract the final config for this file. + const config = configArray.extractConfig(options.filename); + const processor = + config.processor && + configArray.pluginProcessors.get(config.processor); + + // Verify. + if (processor) { + debug("Apply the processor: %o", config.processor); + const { preprocess, postprocess, supportsAutofix } = processor; + const disableFixes = options.disableFixes || !supportsAutofix; + + return this._verifyWithProcessor( + textOrSourceCode, + config, + { ...options, disableFixes, postprocess, preprocess }, + configArray + ); + } + return this._verifyWithoutProcessors(textOrSourceCode, config, options); + } + + /** + * Verify a given code with a flat config. + * @param {string|SourceCode} textOrSourceCode The source code. + * @param {FlatConfigArray} configArray The config array. + * @param {VerifyOptions&ProcessorOptions} options The options. + * @param {boolean} [firstCall=false] Indicates if this is being called directly + * from verify(). (TODO: Remove once eslintrc is removed.) + * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems. + */ + _verifyWithFlatConfigArray(textOrSourceCode, configArray, options, firstCall = false) { + debug("With flat config: %s", options.filename); + + // we need a filename to match configs against + const filename = options.filename || "__placeholder__.js"; + + // Store the config array in order to get plugin envs and rules later. + internalSlotsMap.get(this).lastConfigArray = configArray; + const config = configArray.getConfig(filename); + + if (!config) { + return [ + { + ruleId: null, + severity: 1, + message: `No matching configuration found for ${filename}.`, + line: 0, + column: 0 + } + ]; + } + + // Verify. + if (config.processor) { + debug("Apply the processor: %o", config.processor); + const { preprocess, postprocess, supportsAutofix } = config.processor; + const disableFixes = options.disableFixes || !supportsAutofix; + + return this._verifyWithFlatConfigArrayAndProcessor( + textOrSourceCode, + config, + { ...options, filename, disableFixes, postprocess, preprocess }, + configArray + ); + } + + // check for options-based processing + if (firstCall && (options.preprocess || options.postprocess)) { + return this._verifyWithFlatConfigArrayAndProcessor(textOrSourceCode, config, options); + } + + return this._verifyWithFlatConfigArrayAndWithoutProcessors(textOrSourceCode, config, options); + } + + /** + * Verify with a processor. + * @param {string|SourceCode} textOrSourceCode The source code. + * @param {ConfigData|ExtractedConfig} config The config array. + * @param {VerifyOptions&ProcessorOptions} options The options. + * @param {ConfigArray} [configForRecursive] The `ConfigArray` object to apply multiple processors recursively. + * @returns {(LintMessage|SuppressedLintMessage)[]} The found problems. + */ + _verifyWithProcessor(textOrSourceCode, config, options, configForRecursive) { + const filename = options.filename || ""; + const filenameToExpose = normalizeFilename(filename); + const physicalFilename = options.physicalFilename || filenameToExpose; + const text = ensureText(textOrSourceCode); + const preprocess = options.preprocess || (rawText => [rawText]); + const postprocess = options.postprocess || (messagesList => messagesList.flat()); + const filterCodeBlock = + options.filterCodeBlock || + (blockFilename => blockFilename.endsWith(".js")); + const originalExtname = path.extname(filename); + + let blocks; + + try { + blocks = preprocess(text, filenameToExpose); + } catch (ex) { + + // If the message includes a leading line number, strip it: + const message = `Preprocessing error: ${ex.message.replace(/^line \d+:/iu, "").trim()}`; + + debug("%s\n%s", message, ex.stack); + + return [ + { + ruleId: null, + fatal: true, + severity: 2, + message, + line: ex.lineNumber, + column: ex.column + } + ]; + } + + const messageLists = blocks.map((block, i) => { + debug("A code block was found: %o", block.filename || "(unnamed)"); + + // Keep the legacy behavior. + if (typeof block === "string") { + return this._verifyWithoutProcessors(block, config, options); + } + + const blockText = block.text; + const blockName = path.join(filename, `${i}_${block.filename}`); + + // Skip this block if filtered. + if (!filterCodeBlock(blockName, blockText)) { + debug("This code block was skipped."); + return []; + } + + // Resolve configuration again if the file content or extension was changed. + if (configForRecursive && (text !== blockText || path.extname(blockName) !== originalExtname)) { + debug("Resolving configuration again because the file content or extension was changed."); + return this._verifyWithConfigArray( + blockText, + configForRecursive, + { ...options, filename: blockName, physicalFilename } + ); + } + + // Does lint. + return this._verifyWithoutProcessors( + blockText, + config, + { ...options, filename: blockName, physicalFilename } + ); + }); + + return postprocess(messageLists, filenameToExpose); + } + + /** + * Given a list of reported problems, distinguish problems between normal messages and suppressed messages. + * The normal messages will be returned and the suppressed messages will be stored as lastSuppressedMessages. + * @param {Problem[]} problems A list of reported problems. + * @returns {LintMessage[]} A list of LintMessage. + */ + _distinguishSuppressedMessages(problems) { + const messages = []; + const suppressedMessages = []; + const slots = internalSlotsMap.get(this); + + for (const problem of problems) { + if (problem.suppressions) { + suppressedMessages.push(problem); + } else { + messages.push(problem); + } + } + + slots.lastSuppressedMessages = suppressedMessages; + + return messages; + } + + /** + * Gets the SourceCode object representing the parsed source. + * @returns {SourceCode} The SourceCode object. + */ + getSourceCode() { + return internalSlotsMap.get(this).lastSourceCode; + } + + /** + * Gets the list of SuppressedLintMessage produced in the last running. + * @returns {SuppressedLintMessage[]} The list of SuppressedLintMessage + */ + getSuppressedMessages() { + return internalSlotsMap.get(this).lastSuppressedMessages; + } + + /** + * Defines a new linting rule. + * @param {string} ruleId A unique rule identifier + * @param {Function | Rule} ruleModule Function from context to object mapping AST node types to event handlers + * @returns {void} + */ + defineRule(ruleId, ruleModule) { + assertEslintrcConfig(this); + internalSlotsMap.get(this).ruleMap.define(ruleId, ruleModule); + } + + /** + * Defines many new linting rules. + * @param {Record} rulesToDefine map from unique rule identifier to rule + * @returns {void} + */ + defineRules(rulesToDefine) { + assertEslintrcConfig(this); + Object.getOwnPropertyNames(rulesToDefine).forEach(ruleId => { + this.defineRule(ruleId, rulesToDefine[ruleId]); + }); + } + + /** + * Gets an object with all loaded rules. + * @returns {Map} All loaded rules + */ + getRules() { + assertEslintrcConfig(this); + const { lastConfigArray, ruleMap } = internalSlotsMap.get(this); + + return new Map(function *() { + yield* ruleMap; + + if (lastConfigArray) { + yield* lastConfigArray.pluginRules; + } + }()); + } + + /** + * Define a new parser module + * @param {string} parserId Name of the parser + * @param {Parser} parserModule The parser object + * @returns {void} + */ + defineParser(parserId, parserModule) { + assertEslintrcConfig(this); + internalSlotsMap.get(this).parserMap.set(parserId, parserModule); + } + + /** + * Performs multiple autofix passes over the text until as many fixes as possible + * have been applied. + * @param {string} text The source text to apply fixes to. + * @param {ConfigData|ConfigArray|FlatConfigArray} config The ESLint config object to use. + * @param {VerifyOptions&ProcessorOptions&FixOptions} options The ESLint options object to use. + * @returns {{fixed:boolean,messages:LintMessage[],output:string}} The result of the fix operation as returned from the + * SourceCodeFixer. + */ + verifyAndFix(text, config, options) { + let messages = [], + fixedResult, + fixed = false, + passNumber = 0, + currentText = text; + const debugTextDescription = options && options.filename || `${text.slice(0, 10)}...`; + const shouldFix = options && typeof options.fix !== "undefined" ? options.fix : true; + + /** + * This loop continues until one of the following is true: + * + * 1. No more fixes have been applied. + * 2. Ten passes have been made. + * + * That means anytime a fix is successfully applied, there will be another pass. + * Essentially, guaranteeing a minimum of two passes. + */ + do { + passNumber++; + + debug(`Linting code for ${debugTextDescription} (pass ${passNumber})`); + messages = this.verify(currentText, config, options); + + debug(`Generating fixed text for ${debugTextDescription} (pass ${passNumber})`); + fixedResult = SourceCodeFixer.applyFixes(currentText, messages, shouldFix); + + /* + * stop if there are any syntax errors. + * 'fixedResult.output' is a empty string. + */ + if (messages.length === 1 && messages[0].fatal) { + break; + } + + // keep track if any fixes were ever applied - important for return value + fixed = fixed || fixedResult.fixed; + + // update to use the fixed output instead of the original text + currentText = fixedResult.output; + + } while ( + fixedResult.fixed && + passNumber < MAX_AUTOFIX_PASSES + ); + + /* + * If the last result had fixes, we need to lint again to be sure we have + * the most up-to-date information. + */ + if (fixedResult.fixed) { + fixedResult.messages = this.verify(currentText, config, options); + } + + // ensure the last result properly reflects if fixes were done + fixedResult.fixed = fixed; + fixedResult.output = currentText; + + return fixedResult; + } +} + +module.exports = { + Linter, + + /** + * Get the internal slots of a given Linter instance for tests. + * @param {Linter} instance The Linter instance to get. + * @returns {LinterInternalSlots} The internal slots. + */ + getLinterInternalSlots(instance) { + return internalSlotsMap.get(instance); + } +}; diff --git a/node_modules/eslint/lib/linter/node-event-generator.js b/node_modules/eslint/lib/linter/node-event-generator.js new file mode 100644 index 0000000..d56bef2 --- /dev/null +++ b/node_modules/eslint/lib/linter/node-event-generator.js @@ -0,0 +1,354 @@ +/** + * @fileoverview The event generator for AST nodes. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const esquery = require("esquery"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * An object describing an AST selector + * @typedef {Object} ASTSelector + * @property {string} rawSelector The string that was parsed into this selector + * @property {boolean} isExit `true` if this should be emitted when exiting the node rather than when entering + * @property {Object} parsedSelector An object (from esquery) describing the matching behavior of the selector + * @property {string[]|null} listenerTypes A list of node types that could possibly cause the selector to match, + * or `null` if all node types could cause a match + * @property {number} attributeCount The total number of classes, pseudo-classes, and attribute queries in this selector + * @property {number} identifierCount The total number of identifier queries in this selector + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Computes the union of one or more arrays + * @param {...any[]} arrays One or more arrays to union + * @returns {any[]} The union of the input arrays + */ +function union(...arrays) { + return [...new Set(arrays.flat())]; +} + +/** + * Computes the intersection of one or more arrays + * @param {...any[]} arrays One or more arrays to intersect + * @returns {any[]} The intersection of the input arrays + */ +function intersection(...arrays) { + if (arrays.length === 0) { + return []; + } + + let result = [...new Set(arrays[0])]; + + for (const array of arrays.slice(1)) { + result = result.filter(x => array.includes(x)); + } + return result; +} + +/** + * Gets the possible types of a selector + * @param {Object} parsedSelector An object (from esquery) describing the matching behavior of the selector + * @returns {string[]|null} The node types that could possibly trigger this selector, or `null` if all node types could trigger it + */ +function getPossibleTypes(parsedSelector) { + switch (parsedSelector.type) { + case "identifier": + return [parsedSelector.value]; + + case "matches": { + const typesForComponents = parsedSelector.selectors.map(getPossibleTypes); + + if (typesForComponents.every(Boolean)) { + return union(...typesForComponents); + } + return null; + } + + case "compound": { + const typesForComponents = parsedSelector.selectors.map(getPossibleTypes).filter(typesForComponent => typesForComponent); + + // If all of the components could match any type, then the compound could also match any type. + if (!typesForComponents.length) { + return null; + } + + /* + * If at least one of the components could only match a particular type, the compound could only match + * the intersection of those types. + */ + return intersection(...typesForComponents); + } + + case "child": + case "descendant": + case "sibling": + case "adjacent": + return getPossibleTypes(parsedSelector.right); + + case "class": + if (parsedSelector.name === "function") { + return ["FunctionDeclaration", "FunctionExpression", "ArrowFunctionExpression"]; + } + + return null; + + default: + return null; + + } +} + +/** + * Counts the number of class, pseudo-class, and attribute queries in this selector + * @param {Object} parsedSelector An object (from esquery) describing the selector's matching behavior + * @returns {number} The number of class, pseudo-class, and attribute queries in this selector + */ +function countClassAttributes(parsedSelector) { + switch (parsedSelector.type) { + case "child": + case "descendant": + case "sibling": + case "adjacent": + return countClassAttributes(parsedSelector.left) + countClassAttributes(parsedSelector.right); + + case "compound": + case "not": + case "matches": + return parsedSelector.selectors.reduce((sum, childSelector) => sum + countClassAttributes(childSelector), 0); + + case "attribute": + case "field": + case "nth-child": + case "nth-last-child": + return 1; + + default: + return 0; + } +} + +/** + * Counts the number of identifier queries in this selector + * @param {Object} parsedSelector An object (from esquery) describing the selector's matching behavior + * @returns {number} The number of identifier queries + */ +function countIdentifiers(parsedSelector) { + switch (parsedSelector.type) { + case "child": + case "descendant": + case "sibling": + case "adjacent": + return countIdentifiers(parsedSelector.left) + countIdentifiers(parsedSelector.right); + + case "compound": + case "not": + case "matches": + return parsedSelector.selectors.reduce((sum, childSelector) => sum + countIdentifiers(childSelector), 0); + + case "identifier": + return 1; + + default: + return 0; + } +} + +/** + * Compares the specificity of two selector objects, with CSS-like rules. + * @param {ASTSelector} selectorA An AST selector descriptor + * @param {ASTSelector} selectorB Another AST selector descriptor + * @returns {number} + * a value less than 0 if selectorA is less specific than selectorB + * a value greater than 0 if selectorA is more specific than selectorB + * a value less than 0 if selectorA and selectorB have the same specificity, and selectorA <= selectorB alphabetically + * a value greater than 0 if selectorA and selectorB have the same specificity, and selectorA > selectorB alphabetically + */ +function compareSpecificity(selectorA, selectorB) { + return selectorA.attributeCount - selectorB.attributeCount || + selectorA.identifierCount - selectorB.identifierCount || + (selectorA.rawSelector <= selectorB.rawSelector ? -1 : 1); +} + +/** + * Parses a raw selector string, and throws a useful error if parsing fails. + * @param {string} rawSelector A raw AST selector + * @returns {Object} An object (from esquery) describing the matching behavior of this selector + * @throws {Error} An error if the selector is invalid + */ +function tryParseSelector(rawSelector) { + try { + return esquery.parse(rawSelector.replace(/:exit$/u, "")); + } catch (err) { + if (err.location && err.location.start && typeof err.location.start.offset === "number") { + throw new SyntaxError(`Syntax error in selector "${rawSelector}" at position ${err.location.start.offset}: ${err.message}`); + } + throw err; + } +} + +const selectorCache = new Map(); + +/** + * Parses a raw selector string, and returns the parsed selector along with specificity and type information. + * @param {string} rawSelector A raw AST selector + * @returns {ASTSelector} A selector descriptor + */ +function parseSelector(rawSelector) { + if (selectorCache.has(rawSelector)) { + return selectorCache.get(rawSelector); + } + + const parsedSelector = tryParseSelector(rawSelector); + + const result = { + rawSelector, + isExit: rawSelector.endsWith(":exit"), + parsedSelector, + listenerTypes: getPossibleTypes(parsedSelector), + attributeCount: countClassAttributes(parsedSelector), + identifierCount: countIdentifiers(parsedSelector) + }; + + selectorCache.set(rawSelector, result); + return result; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * The event generator for AST nodes. + * This implements below interface. + * + * ```ts + * interface EventGenerator { + * emitter: SafeEmitter; + * enterNode(node: ASTNode): void; + * leaveNode(node: ASTNode): void; + * } + * ``` + */ +class NodeEventGenerator { + + /** + * @param {SafeEmitter} emitter + * An SafeEmitter which is the destination of events. This emitter must already + * have registered listeners for all of the events that it needs to listen for. + * (See lib/linter/safe-emitter.js for more details on `SafeEmitter`.) + * @param {ESQueryOptions} esqueryOptions `esquery` options for traversing custom nodes. + * @returns {NodeEventGenerator} new instance + */ + constructor(emitter, esqueryOptions) { + this.emitter = emitter; + this.esqueryOptions = esqueryOptions; + this.currentAncestry = []; + this.enterSelectorsByNodeType = new Map(); + this.exitSelectorsByNodeType = new Map(); + this.anyTypeEnterSelectors = []; + this.anyTypeExitSelectors = []; + + emitter.eventNames().forEach(rawSelector => { + const selector = parseSelector(rawSelector); + + if (selector.listenerTypes) { + const typeMap = selector.isExit ? this.exitSelectorsByNodeType : this.enterSelectorsByNodeType; + + selector.listenerTypes.forEach(nodeType => { + if (!typeMap.has(nodeType)) { + typeMap.set(nodeType, []); + } + typeMap.get(nodeType).push(selector); + }); + return; + } + const selectors = selector.isExit ? this.anyTypeExitSelectors : this.anyTypeEnterSelectors; + + selectors.push(selector); + }); + + this.anyTypeEnterSelectors.sort(compareSpecificity); + this.anyTypeExitSelectors.sort(compareSpecificity); + this.enterSelectorsByNodeType.forEach(selectorList => selectorList.sort(compareSpecificity)); + this.exitSelectorsByNodeType.forEach(selectorList => selectorList.sort(compareSpecificity)); + } + + /** + * Checks a selector against a node, and emits it if it matches + * @param {ASTNode} node The node to check + * @param {ASTSelector} selector An AST selector descriptor + * @returns {void} + */ + applySelector(node, selector) { + if (esquery.matches(node, selector.parsedSelector, this.currentAncestry, this.esqueryOptions)) { + this.emitter.emit(selector.rawSelector, node); + } + } + + /** + * Applies all appropriate selectors to a node, in specificity order + * @param {ASTNode} node The node to check + * @param {boolean} isExit `false` if the node is currently being entered, `true` if it's currently being exited + * @returns {void} + */ + applySelectors(node, isExit) { + const selectorsByNodeType = (isExit ? this.exitSelectorsByNodeType : this.enterSelectorsByNodeType).get(node.type) || []; + const anyTypeSelectors = isExit ? this.anyTypeExitSelectors : this.anyTypeEnterSelectors; + + /* + * selectorsByNodeType and anyTypeSelectors were already sorted by specificity in the constructor. + * Iterate through each of them, applying selectors in the right order. + */ + let selectorsByTypeIndex = 0; + let anyTypeSelectorsIndex = 0; + + while (selectorsByTypeIndex < selectorsByNodeType.length || anyTypeSelectorsIndex < anyTypeSelectors.length) { + if ( + selectorsByTypeIndex >= selectorsByNodeType.length || + anyTypeSelectorsIndex < anyTypeSelectors.length && + compareSpecificity(anyTypeSelectors[anyTypeSelectorsIndex], selectorsByNodeType[selectorsByTypeIndex]) < 0 + ) { + this.applySelector(node, anyTypeSelectors[anyTypeSelectorsIndex++]); + } else { + this.applySelector(node, selectorsByNodeType[selectorsByTypeIndex++]); + } + } + } + + /** + * Emits an event of entering AST node. + * @param {ASTNode} node A node which was entered. + * @returns {void} + */ + enterNode(node) { + if (node.parent) { + this.currentAncestry.unshift(node.parent); + } + this.applySelectors(node, false); + } + + /** + * Emits an event of leaving AST node. + * @param {ASTNode} node A node which was left. + * @returns {void} + */ + leaveNode(node) { + this.applySelectors(node, true); + this.currentAncestry.shift(); + } +} + +module.exports = NodeEventGenerator; diff --git a/node_modules/eslint/lib/linter/report-translator.js b/node_modules/eslint/lib/linter/report-translator.js new file mode 100644 index 0000000..781b313 --- /dev/null +++ b/node_modules/eslint/lib/linter/report-translator.js @@ -0,0 +1,368 @@ +/** + * @fileoverview A helper that translates context.report() calls from the rule API into generic problem objects + * @author Teddy Katz + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const assert = require("assert"); +const ruleFixer = require("./rule-fixer"); +const interpolate = require("./interpolate"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * An error message description + * @typedef {Object} MessageDescriptor + * @property {ASTNode} [node] The reported node + * @property {Location} loc The location of the problem. + * @property {string} message The problem message. + * @property {Object} [data] Optional data to use to fill in placeholders in the + * message. + * @property {Function} [fix] The function to call that creates a fix command. + * @property {Array<{desc?: string, messageId?: string, fix: Function}>} suggest Suggestion descriptions and functions to create a the associated fixes. + */ + +/** + * Information about the report + * @typedef {Object} ReportInfo + * @property {string} ruleId The rule ID + * @property {(0|1|2)} severity Severity of the error + * @property {(string|undefined)} message The message + * @property {(string|undefined)} [messageId] The message ID + * @property {number} line The line number + * @property {number} column The column number + * @property {(number|undefined)} [endLine] The ending line number + * @property {(number|undefined)} [endColumn] The ending column number + * @property {(string|null)} nodeType Type of node + * @property {string} source Source text + * @property {({text: string, range: (number[]|null)}|null)} [fix] The fix object + * @property {Array<{text: string, range: (number[]|null)}|null>} [suggestions] Suggestion info + */ + +//------------------------------------------------------------------------------ +// Module Definition +//------------------------------------------------------------------------------ + + +/** + * Translates a multi-argument context.report() call into a single object argument call + * @param {...*} args A list of arguments passed to `context.report` + * @returns {MessageDescriptor} A normalized object containing report information + */ +function normalizeMultiArgReportCall(...args) { + + // If there is one argument, it is considered to be a new-style call already. + if (args.length === 1) { + + // Shallow clone the object to avoid surprises if reusing the descriptor + return Object.assign({}, args[0]); + } + + // If the second argument is a string, the arguments are interpreted as [node, message, data, fix]. + if (typeof args[1] === "string") { + return { + node: args[0], + message: args[1], + data: args[2], + fix: args[3] + }; + } + + // Otherwise, the arguments are interpreted as [node, loc, message, data, fix]. + return { + node: args[0], + loc: args[1], + message: args[2], + data: args[3], + fix: args[4] + }; +} + +/** + * Asserts that either a loc or a node was provided, and the node is valid if it was provided. + * @param {MessageDescriptor} descriptor A descriptor to validate + * @returns {void} + * @throws AssertionError if neither a node nor a loc was provided, or if the node is not an object + */ +function assertValidNodeInfo(descriptor) { + if (descriptor.node) { + assert(typeof descriptor.node === "object", "Node must be an object"); + } else { + assert(descriptor.loc, "Node must be provided when reporting error if location is not provided"); + } +} + +/** + * Normalizes a MessageDescriptor to always have a `loc` with `start` and `end` properties + * @param {MessageDescriptor} descriptor A descriptor for the report from a rule. + * @returns {{start: Location, end: (Location|null)}} An updated location that infers the `start` and `end` properties + * from the `node` of the original descriptor, or infers the `start` from the `loc` of the original descriptor. + */ +function normalizeReportLoc(descriptor) { + if (descriptor.loc) { + if (descriptor.loc.start) { + return descriptor.loc; + } + return { start: descriptor.loc, end: null }; + } + return descriptor.node.loc; +} + +/** + * Check that a fix has a valid range. + * @param {Fix|null} fix The fix to validate. + * @returns {void} + */ +function assertValidFix(fix) { + if (fix) { + assert(fix.range && typeof fix.range[0] === "number" && typeof fix.range[1] === "number", `Fix has invalid range: ${JSON.stringify(fix, null, 2)}`); + } +} + +/** + * Compares items in a fixes array by range. + * @param {Fix} a The first message. + * @param {Fix} b The second message. + * @returns {int} -1 if a comes before b, 1 if a comes after b, 0 if equal. + * @private + */ +function compareFixesByRange(a, b) { + return a.range[0] - b.range[0] || a.range[1] - b.range[1]; +} + +/** + * Merges the given fixes array into one. + * @param {Fix[]} fixes The fixes to merge. + * @param {SourceCode} sourceCode The source code object to get the text between fixes. + * @returns {{text: string, range: number[]}} The merged fixes + */ +function mergeFixes(fixes, sourceCode) { + for (const fix of fixes) { + assertValidFix(fix); + } + + if (fixes.length === 0) { + return null; + } + if (fixes.length === 1) { + return fixes[0]; + } + + fixes.sort(compareFixesByRange); + + const originalText = sourceCode.text; + const start = fixes[0].range[0]; + const end = fixes[fixes.length - 1].range[1]; + let text = ""; + let lastPos = Number.MIN_SAFE_INTEGER; + + for (const fix of fixes) { + assert(fix.range[0] >= lastPos, "Fix objects must not be overlapped in a report."); + + if (fix.range[0] >= 0) { + text += originalText.slice(Math.max(0, start, lastPos), fix.range[0]); + } + text += fix.text; + lastPos = fix.range[1]; + } + text += originalText.slice(Math.max(0, start, lastPos), end); + + return { range: [start, end], text }; +} + +/** + * Gets one fix object from the given descriptor. + * If the descriptor retrieves multiple fixes, this merges those to one. + * @param {MessageDescriptor} descriptor The report descriptor. + * @param {SourceCode} sourceCode The source code object to get text between fixes. + * @returns {({text: string, range: number[]}|null)} The fix for the descriptor + */ +function normalizeFixes(descriptor, sourceCode) { + if (typeof descriptor.fix !== "function") { + return null; + } + + // @type {null | Fix | Fix[] | IterableIterator} + const fix = descriptor.fix(ruleFixer); + + // Merge to one. + if (fix && Symbol.iterator in fix) { + return mergeFixes(Array.from(fix), sourceCode); + } + + assertValidFix(fix); + return fix; +} + +/** + * Gets an array of suggestion objects from the given descriptor. + * @param {MessageDescriptor} descriptor The report descriptor. + * @param {SourceCode} sourceCode The source code object to get text between fixes. + * @param {Object} messages Object of meta messages for the rule. + * @returns {Array} The suggestions for the descriptor + */ +function mapSuggestions(descriptor, sourceCode, messages) { + if (!descriptor.suggest || !Array.isArray(descriptor.suggest)) { + return []; + } + + return descriptor.suggest + .map(suggestInfo => { + const computedDesc = suggestInfo.desc || messages[suggestInfo.messageId]; + + return { + ...suggestInfo, + desc: interpolate(computedDesc, suggestInfo.data), + fix: normalizeFixes(suggestInfo, sourceCode) + }; + }) + + // Remove suggestions that didn't provide a fix + .filter(({ fix }) => fix); +} + +/** + * Creates information about the report from a descriptor + * @param {Object} options Information about the problem + * @param {string} options.ruleId Rule ID + * @param {(0|1|2)} options.severity Rule severity + * @param {(ASTNode|null)} options.node Node + * @param {string} options.message Error message + * @param {string} [options.messageId] The error message ID. + * @param {{start: SourceLocation, end: (SourceLocation|null)}} options.loc Start and end location + * @param {{text: string, range: (number[]|null)}} options.fix The fix object + * @param {Array<{text: string, range: (number[]|null)}>} options.suggestions The array of suggestions objects + * @returns {function(...args): ReportInfo} Function that returns information about the report + */ +function createProblem(options) { + const problem = { + ruleId: options.ruleId, + severity: options.severity, + message: options.message, + line: options.loc.start.line, + column: options.loc.start.column + 1, + nodeType: options.node && options.node.type || null + }; + + /* + * If this isn’t in the conditional, some of the tests fail + * because `messageId` is present in the problem object + */ + if (options.messageId) { + problem.messageId = options.messageId; + } + + if (options.loc.end) { + problem.endLine = options.loc.end.line; + problem.endColumn = options.loc.end.column + 1; + } + + if (options.fix) { + problem.fix = options.fix; + } + + if (options.suggestions && options.suggestions.length > 0) { + problem.suggestions = options.suggestions; + } + + return problem; +} + +/** + * Validates that suggestions are properly defined. Throws if an error is detected. + * @param {Array<{ desc?: string, messageId?: string }>} suggest The incoming suggest data. + * @param {Object} messages Object of meta messages for the rule. + * @returns {void} + */ +function validateSuggestions(suggest, messages) { + if (suggest && Array.isArray(suggest)) { + suggest.forEach(suggestion => { + if (suggestion.messageId) { + const { messageId } = suggestion; + + if (!messages) { + throw new TypeError(`context.report() called with a suggest option with a messageId '${messageId}', but no messages were present in the rule metadata.`); + } + + if (!messages[messageId]) { + throw new TypeError(`context.report() called with a suggest option with a messageId '${messageId}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`); + } + + if (suggestion.desc) { + throw new TypeError("context.report() called with a suggest option that defines both a 'messageId' and an 'desc'. Please only pass one."); + } + } else if (!suggestion.desc) { + throw new TypeError("context.report() called with a suggest option that doesn't have either a `desc` or `messageId`"); + } + + if (typeof suggestion.fix !== "function") { + throw new TypeError(`context.report() called with a suggest option without a fix function. See: ${suggestion}`); + } + }); + } +} + +/** + * Returns a function that converts the arguments of a `context.report` call from a rule into a reported + * problem for the Node.js API. + * @param {{ruleId: string, severity: number, sourceCode: SourceCode, messageIds: Object, disableFixes: boolean}} metadata Metadata for the reported problem + * @param {SourceCode} sourceCode The `SourceCode` instance for the text being linted + * @returns {function(...args): ReportInfo} Function that returns information about the report + */ + +module.exports = function createReportTranslator(metadata) { + + /* + * `createReportTranslator` gets called once per enabled rule per file. It needs to be very performant. + * The report translator itself (i.e. the function that `createReportTranslator` returns) gets + * called every time a rule reports a problem, which happens much less frequently (usually, the vast + * majority of rules don't report any problems for a given file). + */ + return (...args) => { + const descriptor = normalizeMultiArgReportCall(...args); + const messages = metadata.messageIds; + + assertValidNodeInfo(descriptor); + + let computedMessage; + + if (descriptor.messageId) { + if (!messages) { + throw new TypeError("context.report() called with a messageId, but no messages were present in the rule metadata."); + } + const id = descriptor.messageId; + + if (descriptor.message) { + throw new TypeError("context.report() called with a message and a messageId. Please only pass one."); + } + if (!messages || !Object.prototype.hasOwnProperty.call(messages, id)) { + throw new TypeError(`context.report() called with a messageId of '${id}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`); + } + computedMessage = messages[id]; + } else if (descriptor.message) { + computedMessage = descriptor.message; + } else { + throw new TypeError("Missing `message` property in report() call; add a message that describes the linting problem."); + } + + validateSuggestions(descriptor.suggest, messages); + + return createProblem({ + ruleId: metadata.ruleId, + severity: metadata.severity, + node: descriptor.node, + message: interpolate(computedMessage, descriptor.data), + messageId: descriptor.messageId, + loc: normalizeReportLoc(descriptor), + fix: metadata.disableFixes ? null : normalizeFixes(descriptor, metadata.sourceCode), + suggestions: metadata.disableFixes ? [] : mapSuggestions(descriptor, metadata.sourceCode, messages) + }); + }; +}; diff --git a/node_modules/eslint/lib/linter/rule-fixer.js b/node_modules/eslint/lib/linter/rule-fixer.js new file mode 100644 index 0000000..bdd80d1 --- /dev/null +++ b/node_modules/eslint/lib/linter/rule-fixer.js @@ -0,0 +1,140 @@ +/** + * @fileoverview An object that creates fix commands for rules. + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +// none! + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Creates a fix command that inserts text at the specified index in the source text. + * @param {int} index The 0-based index at which to insert the new text. + * @param {string} text The text to insert. + * @returns {Object} The fix command. + * @private + */ +function insertTextAt(index, text) { + return { + range: [index, index], + text + }; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Creates code fixing commands for rules. + */ + +const ruleFixer = Object.freeze({ + + /** + * Creates a fix command that inserts text after the given node or token. + * The fix is not applied until applyFixes() is called. + * @param {ASTNode|Token} nodeOrToken The node or token to insert after. + * @param {string} text The text to insert. + * @returns {Object} The fix command. + */ + insertTextAfter(nodeOrToken, text) { + return this.insertTextAfterRange(nodeOrToken.range, text); + }, + + /** + * Creates a fix command that inserts text after the specified range in the source text. + * The fix is not applied until applyFixes() is called. + * @param {int[]} range The range to replace, first item is start of range, second + * is end of range. + * @param {string} text The text to insert. + * @returns {Object} The fix command. + */ + insertTextAfterRange(range, text) { + return insertTextAt(range[1], text); + }, + + /** + * Creates a fix command that inserts text before the given node or token. + * The fix is not applied until applyFixes() is called. + * @param {ASTNode|Token} nodeOrToken The node or token to insert before. + * @param {string} text The text to insert. + * @returns {Object} The fix command. + */ + insertTextBefore(nodeOrToken, text) { + return this.insertTextBeforeRange(nodeOrToken.range, text); + }, + + /** + * Creates a fix command that inserts text before the specified range in the source text. + * The fix is not applied until applyFixes() is called. + * @param {int[]} range The range to replace, first item is start of range, second + * is end of range. + * @param {string} text The text to insert. + * @returns {Object} The fix command. + */ + insertTextBeforeRange(range, text) { + return insertTextAt(range[0], text); + }, + + /** + * Creates a fix command that replaces text at the node or token. + * The fix is not applied until applyFixes() is called. + * @param {ASTNode|Token} nodeOrToken The node or token to remove. + * @param {string} text The text to insert. + * @returns {Object} The fix command. + */ + replaceText(nodeOrToken, text) { + return this.replaceTextRange(nodeOrToken.range, text); + }, + + /** + * Creates a fix command that replaces text at the specified range in the source text. + * The fix is not applied until applyFixes() is called. + * @param {int[]} range The range to replace, first item is start of range, second + * is end of range. + * @param {string} text The text to insert. + * @returns {Object} The fix command. + */ + replaceTextRange(range, text) { + return { + range, + text + }; + }, + + /** + * Creates a fix command that removes the node or token from the source. + * The fix is not applied until applyFixes() is called. + * @param {ASTNode|Token} nodeOrToken The node or token to remove. + * @returns {Object} The fix command. + */ + remove(nodeOrToken) { + return this.removeRange(nodeOrToken.range); + }, + + /** + * Creates a fix command that removes the specified range of text from the source. + * The fix is not applied until applyFixes() is called. + * @param {int[]} range The range to remove, first item is start of range, second + * is end of range. + * @returns {Object} The fix command. + */ + removeRange(range) { + return { + range, + text: "" + }; + } + +}); + + +module.exports = ruleFixer; diff --git a/node_modules/eslint/lib/linter/rules.js b/node_modules/eslint/lib/linter/rules.js new file mode 100644 index 0000000..647bab6 --- /dev/null +++ b/node_modules/eslint/lib/linter/rules.js @@ -0,0 +1,80 @@ +/** + * @fileoverview Defines a storage for rules. + * @author Nicholas C. Zakas + * @author aladdin-add + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const builtInRules = require("../rules"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Normalizes a rule module to the new-style API + * @param {(Function|{create: Function})} rule A rule object, which can either be a function + * ("old-style") or an object with a `create` method ("new-style") + * @returns {{create: Function}} A new-style rule. + */ +function normalizeRule(rule) { + return typeof rule === "function" ? Object.assign({ create: rule }, rule) : rule; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A storage for rules. + */ +class Rules { + constructor() { + this._rules = Object.create(null); + } + + /** + * Registers a rule module for rule id in storage. + * @param {string} ruleId Rule id (file name). + * @param {Function} ruleModule Rule handler. + * @returns {void} + */ + define(ruleId, ruleModule) { + this._rules[ruleId] = normalizeRule(ruleModule); + } + + /** + * Access rule handler by id (file name). + * @param {string} ruleId Rule id (file name). + * @returns {{create: Function, schema: JsonSchema[]}} + * A rule. This is normalized to always have the new-style shape with a `create` method. + */ + get(ruleId) { + if (typeof this._rules[ruleId] === "string") { + this.define(ruleId, require(this._rules[ruleId])); + } + if (this._rules[ruleId]) { + return this._rules[ruleId]; + } + if (builtInRules.has(ruleId)) { + return builtInRules.get(ruleId); + } + + return null; + } + + *[Symbol.iterator]() { + yield* builtInRules; + + for (const ruleId of Object.keys(this._rules)) { + yield [ruleId, this.get(ruleId)]; + } + } +} + +module.exports = Rules; diff --git a/node_modules/eslint/lib/linter/safe-emitter.js b/node_modules/eslint/lib/linter/safe-emitter.js new file mode 100644 index 0000000..f4837c1 --- /dev/null +++ b/node_modules/eslint/lib/linter/safe-emitter.js @@ -0,0 +1,52 @@ +/** + * @fileoverview A variant of EventEmitter which does not give listeners information about each other + * @author Teddy Katz + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * An event emitter + * @typedef {Object} SafeEmitter + * @property {(eventName: string, listenerFunc: Function) => void} on Adds a listener for a given event name + * @property {(eventName: string, arg1?: any, arg2?: any, arg3?: any) => void} emit Emits an event with a given name. + * This calls all the listeners that were listening for that name, with `arg1`, `arg2`, and `arg3` as arguments. + * @property {function(): string[]} eventNames Gets the list of event names that have registered listeners. + */ + +/** + * Creates an object which can listen for and emit events. + * This is similar to the EventEmitter API in Node's standard library, but it has a few differences. + * The goal is to allow multiple modules to attach arbitrary listeners to the same emitter, without + * letting the modules know about each other at all. + * 1. It has no special keys like `error` and `newListener`, which would allow modules to detect when + * another module throws an error or registers a listener. + * 2. It calls listener functions without any `this` value. (`EventEmitter` calls listeners with a + * `this` value of the emitter instance, which would give listeners access to other listeners.) + * @returns {SafeEmitter} An emitter + */ +module.exports = () => { + const listeners = Object.create(null); + + return Object.freeze({ + on(eventName, listener) { + if (eventName in listeners) { + listeners[eventName].push(listener); + } else { + listeners[eventName] = [listener]; + } + }, + emit(eventName, ...args) { + if (eventName in listeners) { + listeners[eventName].forEach(listener => listener(...args)); + } + }, + eventNames() { + return Object.keys(listeners); + } + }); +}; diff --git a/node_modules/eslint/lib/linter/source-code-fixer.js b/node_modules/eslint/lib/linter/source-code-fixer.js new file mode 100644 index 0000000..15386c9 --- /dev/null +++ b/node_modules/eslint/lib/linter/source-code-fixer.js @@ -0,0 +1,152 @@ +/** + * @fileoverview An object that caches and applies source code fixes. + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const debug = require("debug")("eslint:source-code-fixer"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const BOM = "\uFEFF"; + +/** + * Compares items in a messages array by range. + * @param {Message} a The first message. + * @param {Message} b The second message. + * @returns {int} -1 if a comes before b, 1 if a comes after b, 0 if equal. + * @private + */ +function compareMessagesByFixRange(a, b) { + return a.fix.range[0] - b.fix.range[0] || a.fix.range[1] - b.fix.range[1]; +} + +/** + * Compares items in a messages array by line and column. + * @param {Message} a The first message. + * @param {Message} b The second message. + * @returns {int} -1 if a comes before b, 1 if a comes after b, 0 if equal. + * @private + */ +function compareMessagesByLocation(a, b) { + return a.line - b.line || a.column - b.column; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Utility for apply fixes to source code. + * @constructor + */ +function SourceCodeFixer() { + Object.freeze(this); +} + +/** + * Applies the fixes specified by the messages to the given text. Tries to be + * smart about the fixes and won't apply fixes over the same area in the text. + * @param {string} sourceText The text to apply the changes to. + * @param {Message[]} messages The array of messages reported by ESLint. + * @param {boolean|Function} [shouldFix=true] Determines whether each message should be fixed + * @returns {Object} An object containing the fixed text and any unfixed messages. + */ +SourceCodeFixer.applyFixes = function(sourceText, messages, shouldFix) { + debug("Applying fixes"); + + if (shouldFix === false) { + debug("shouldFix parameter was false, not attempting fixes"); + return { + fixed: false, + messages, + output: sourceText + }; + } + + // clone the array + const remainingMessages = [], + fixes = [], + bom = sourceText.startsWith(BOM) ? BOM : "", + text = bom ? sourceText.slice(1) : sourceText; + let lastPos = Number.NEGATIVE_INFINITY, + output = bom; + + /** + * Try to use the 'fix' from a problem. + * @param {Message} problem The message object to apply fixes from + * @returns {boolean} Whether fix was successfully applied + */ + function attemptFix(problem) { + const fix = problem.fix; + const start = fix.range[0]; + const end = fix.range[1]; + + // Remain it as a problem if it's overlapped or it's a negative range + if (lastPos >= start || start > end) { + remainingMessages.push(problem); + return false; + } + + // Remove BOM. + if ((start < 0 && end >= 0) || (start === 0 && fix.text.startsWith(BOM))) { + output = ""; + } + + // Make output to this fix. + output += text.slice(Math.max(0, lastPos), Math.max(0, start)); + output += fix.text; + lastPos = end; + return true; + } + + messages.forEach(problem => { + if (Object.prototype.hasOwnProperty.call(problem, "fix")) { + fixes.push(problem); + } else { + remainingMessages.push(problem); + } + }); + + if (fixes.length) { + debug("Found fixes to apply"); + let fixesWereApplied = false; + + for (const problem of fixes.sort(compareMessagesByFixRange)) { + if (typeof shouldFix !== "function" || shouldFix(problem)) { + attemptFix(problem); + + /* + * The only time attemptFix will fail is if a previous fix was + * applied which conflicts with it. So we can mark this as true. + */ + fixesWereApplied = true; + } else { + remainingMessages.push(problem); + } + } + output += text.slice(Math.max(0, lastPos)); + + return { + fixed: fixesWereApplied, + messages: remainingMessages.sort(compareMessagesByLocation), + output + }; + } + + debug("No fixes to apply"); + return { + fixed: false, + messages, + output: bom + text + }; + +}; + +module.exports = SourceCodeFixer; diff --git a/node_modules/eslint/lib/linter/timing.js b/node_modules/eslint/lib/linter/timing.js new file mode 100644 index 0000000..1076ff2 --- /dev/null +++ b/node_modules/eslint/lib/linter/timing.js @@ -0,0 +1,161 @@ +/** + * @fileoverview Tracks performance of individual rules. + * @author Brandon Mills + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/* c8 ignore next */ +/** + * Align the string to left + * @param {string} str string to evaluate + * @param {int} len length of the string + * @param {string} ch delimiter character + * @returns {string} modified string + * @private + */ +function alignLeft(str, len, ch) { + return str + new Array(len - str.length + 1).join(ch || " "); +} + +/* c8 ignore next */ +/** + * Align the string to right + * @param {string} str string to evaluate + * @param {int} len length of the string + * @param {string} ch delimiter character + * @returns {string} modified string + * @private + */ +function alignRight(str, len, ch) { + return new Array(len - str.length + 1).join(ch || " ") + str; +} + +//------------------------------------------------------------------------------ +// Module definition +//------------------------------------------------------------------------------ + +const enabled = !!process.env.TIMING; + +const HEADERS = ["Rule", "Time (ms)", "Relative"]; +const ALIGN = [alignLeft, alignRight, alignRight]; + +/** + * Decide how many rules to show in the output list. + * @returns {number} the number of rules to show + */ +function getListSize() { + const MINIMUM_SIZE = 10; + + if (typeof process.env.TIMING !== "string") { + return MINIMUM_SIZE; + } + + if (process.env.TIMING.toLowerCase() === "all") { + return Number.POSITIVE_INFINITY; + } + + const TIMING_ENV_VAR_AS_INTEGER = Number.parseInt(process.env.TIMING, 10); + + return TIMING_ENV_VAR_AS_INTEGER > 10 ? TIMING_ENV_VAR_AS_INTEGER : MINIMUM_SIZE; +} + +/* c8 ignore next */ +/** + * display the data + * @param {Object} data Data object to be displayed + * @returns {void} prints modified string with console.log + * @private + */ +function display(data) { + let total = 0; + const rows = Object.keys(data) + .map(key => { + const time = data[key]; + + total += time; + return [key, time]; + }) + .sort((a, b) => b[1] - a[1]) + .slice(0, getListSize()); + + rows.forEach(row => { + row.push(`${(row[1] * 100 / total).toFixed(1)}%`); + row[1] = row[1].toFixed(3); + }); + + rows.unshift(HEADERS); + + const widths = []; + + rows.forEach(row => { + const len = row.length; + + for (let i = 0; i < len; i++) { + const n = row[i].length; + + if (!widths[i] || n > widths[i]) { + widths[i] = n; + } + } + }); + + const table = rows.map(row => ( + row + .map((cell, index) => ALIGN[index](cell, widths[index])) + .join(" | ") + )); + + table.splice(1, 0, widths.map((width, index) => { + const extraAlignment = index !== 0 && index !== widths.length - 1 ? 2 : 1; + + return ALIGN[index](":", width + extraAlignment, "-"); + }).join("|")); + + console.log(table.join("\n")); // eslint-disable-line no-console -- Debugging function +} + +/* c8 ignore next */ +module.exports = (function() { + + const data = Object.create(null); + + /** + * Time the run + * @param {any} key key from the data object + * @param {Function} fn function to be called + * @returns {Function} function to be executed + * @private + */ + function time(key, fn) { + if (typeof data[key] === "undefined") { + data[key] = 0; + } + + return function(...args) { + let t = process.hrtime(); + const result = fn(...args); + + t = process.hrtime(t); + data[key] += t[0] * 1e3 + t[1] / 1e6; + return result; + }; + } + + if (enabled) { + process.on("exit", () => { + display(data); + }); + } + + return { + time, + enabled, + getListSize + }; + +}()); diff --git a/node_modules/eslint/lib/options.js b/node_modules/eslint/lib/options.js new file mode 100644 index 0000000..0d95f2a --- /dev/null +++ b/node_modules/eslint/lib/options.js @@ -0,0 +1,371 @@ +/** + * @fileoverview Options configuration for optionator. + * @author George Zahariev + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const optionator = require("optionator"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * The options object parsed by Optionator. + * @typedef {Object} ParsedCLIOptions + * @property {boolean} cache Only check changed files + * @property {string} cacheFile Path to the cache file. Deprecated: use --cache-location + * @property {string} [cacheLocation] Path to the cache file or directory + * @property {"metadata" | "content"} cacheStrategy Strategy to use for detecting changed files in the cache + * @property {boolean} [color] Force enabling/disabling of color + * @property {string} [config] Use this configuration, overriding .eslintrc.* config options if present + * @property {boolean} debug Output debugging information + * @property {string[]} [env] Specify environments + * @property {boolean} envInfo Output execution environment information + * @property {boolean} errorOnUnmatchedPattern Prevent errors when pattern is unmatched + * @property {boolean} eslintrc Disable use of configuration from .eslintrc.* + * @property {string[]} [ext] Specify JavaScript file extensions + * @property {boolean} fix Automatically fix problems + * @property {boolean} fixDryRun Automatically fix problems without saving the changes to the file system + * @property {("directive" | "problem" | "suggestion" | "layout")[]} [fixType] Specify the types of fixes to apply (directive, problem, suggestion, layout) + * @property {string} format Use a specific output format + * @property {string[]} [global] Define global variables + * @property {boolean} [help] Show help + * @property {boolean} ignore Disable use of ignore files and patterns + * @property {string} [ignorePath] Specify path of ignore file + * @property {string[]} [ignorePattern] Pattern of files to ignore (in addition to those in .eslintignore) + * @property {boolean} init Run config initialization wizard + * @property {boolean} inlineConfig Prevent comments from changing config or rules + * @property {number} maxWarnings Number of warnings to trigger nonzero exit code + * @property {string} [outputFile] Specify file to write report to + * @property {string} [parser] Specify the parser to be used + * @property {Object} [parserOptions] Specify parser options + * @property {string[]} [plugin] Specify plugins + * @property {string} [printConfig] Print the configuration for the given file + * @property {boolean | undefined} reportUnusedDisableDirectives Adds reported errors for unused eslint-disable directives + * @property {string} [resolvePluginsRelativeTo] A folder where plugins should be resolved from, CWD by default + * @property {Object} [rule] Specify rules + * @property {string[]} [rulesdir] Load additional rules from this directory. Deprecated: Use rules from plugins + * @property {boolean} stdin Lint code provided on + * @property {string} [stdinFilename] Specify filename to process STDIN as + * @property {boolean} quiet Report errors only + * @property {boolean} [version] Output the version number + * @property {string[]} _ Positional filenames or patterns + */ + +//------------------------------------------------------------------------------ +// Initialization and Public Interface +//------------------------------------------------------------------------------ + +// exports "parse(args)", "generateHelp()", and "generateHelpForOption(optionName)" + +/** + * Creates the CLI options for ESLint. + * @param {boolean} usingFlatConfig Indicates if flat config is being used. + * @returns {Object} The opinionator instance. + */ +module.exports = function(usingFlatConfig) { + + let lookupFlag; + + if (usingFlatConfig) { + lookupFlag = { + option: "config-lookup", + type: "Boolean", + default: "true", + description: "Disable look up for eslint.config.js" + }; + } else { + lookupFlag = { + option: "eslintrc", + type: "Boolean", + default: "true", + description: "Disable use of configuration from .eslintrc.*" + }; + } + + let envFlag; + + if (!usingFlatConfig) { + envFlag = { + option: "env", + type: "[String]", + description: "Specify environments" + }; + } + + let extFlag; + + if (!usingFlatConfig) { + extFlag = { + option: "ext", + type: "[String]", + description: "Specify JavaScript file extensions" + }; + } + + let resolvePluginsFlag; + + if (!usingFlatConfig) { + resolvePluginsFlag = { + option: "resolve-plugins-relative-to", + type: "path::String", + description: "A folder where plugins should be resolved from, CWD by default" + }; + } + + let rulesDirFlag; + + if (!usingFlatConfig) { + rulesDirFlag = { + option: "rulesdir", + type: "[path::String]", + description: "Load additional rules from this directory. Deprecated: Use rules from plugins" + }; + } + + return optionator({ + prepend: "eslint [options] file.js [file.js] [dir]", + defaults: { + concatRepeatedArrays: true, + mergeRepeatedObjects: true + }, + options: [ + { + heading: "Basic configuration" + }, + lookupFlag, + { + option: "config", + alias: "c", + type: "path::String", + description: usingFlatConfig + ? "Use this configuration instead of eslint.config.js" + : "Use this configuration, overriding .eslintrc.* config options if present" + }, + envFlag, + extFlag, + { + option: "global", + type: "[String]", + description: "Define global variables" + }, + { + option: "parser", + type: "String", + description: "Specify the parser to be used" + }, + { + option: "parser-options", + type: "Object", + description: "Specify parser options" + }, + resolvePluginsFlag, + { + heading: "Specifying rules and plugins" + }, + { + option: "plugin", + type: "[String]", + description: "Specify plugins" + }, + { + option: "rule", + type: "Object", + description: "Specify rules" + }, + rulesDirFlag, + { + heading: "Fixing problems" + }, + { + option: "fix", + type: "Boolean", + default: false, + description: "Automatically fix problems" + }, + { + option: "fix-dry-run", + type: "Boolean", + default: false, + description: "Automatically fix problems without saving the changes to the file system" + }, + { + option: "fix-type", + type: "Array", + description: "Specify the types of fixes to apply (directive, problem, suggestion, layout)" + }, + { + heading: "Ignoring files" + }, + { + option: "ignore-path", + type: "path::String", + description: "Specify path of ignore file" + }, + { + option: "ignore", + type: "Boolean", + default: "true", + description: "Disable use of ignore files and patterns" + }, + { + option: "ignore-pattern", + type: "[String]", + description: "Pattern of files to ignore (in addition to those in .eslintignore)", + concatRepeatedArrays: [true, { + oneValuePerFlag: true + }] + }, + { + heading: "Using stdin" + }, + { + option: "stdin", + type: "Boolean", + default: "false", + description: "Lint code provided on " + }, + { + option: "stdin-filename", + type: "String", + description: "Specify filename to process STDIN as" + }, + { + heading: "Handling warnings" + }, + { + option: "quiet", + type: "Boolean", + default: "false", + description: "Report errors only" + }, + { + option: "max-warnings", + type: "Int", + default: "-1", + description: "Number of warnings to trigger nonzero exit code" + }, + { + heading: "Output" + }, + { + option: "output-file", + alias: "o", + type: "path::String", + description: "Specify file to write report to" + }, + { + option: "format", + alias: "f", + type: "String", + default: "stylish", + description: "Use a specific output format" + }, + { + option: "color", + type: "Boolean", + alias: "no-color", + description: "Force enabling/disabling of color" + }, + { + heading: "Inline configuration comments" + }, + { + option: "inline-config", + type: "Boolean", + default: "true", + description: "Prevent comments from changing config or rules" + }, + { + option: "report-unused-disable-directives", + type: "Boolean", + default: void 0, + description: "Adds reported errors for unused eslint-disable directives" + }, + { + heading: "Caching" + }, + { + option: "cache", + type: "Boolean", + default: "false", + description: "Only check changed files" + }, + { + option: "cache-file", + type: "path::String", + default: ".eslintcache", + description: "Path to the cache file. Deprecated: use --cache-location" + }, + { + option: "cache-location", + type: "path::String", + description: "Path to the cache file or directory" + }, + { + option: "cache-strategy", + dependsOn: ["cache"], + type: "String", + default: "metadata", + enum: ["metadata", "content"], + description: "Strategy to use for detecting changed files in the cache" + }, + { + heading: "Miscellaneous" + }, + { + option: "init", + type: "Boolean", + default: "false", + description: "Run config initialization wizard" + }, + { + option: "env-info", + type: "Boolean", + default: "false", + description: "Output execution environment information" + }, + { + option: "error-on-unmatched-pattern", + type: "Boolean", + default: "true", + description: "Prevent errors when pattern is unmatched" + }, + { + option: "exit-on-fatal-error", + type: "Boolean", + default: "false", + description: "Exit with exit code 2 in case of fatal error" + }, + { + option: "debug", + type: "Boolean", + default: false, + description: "Output debugging information" + }, + { + option: "help", + alias: "h", + type: "Boolean", + description: "Show help" + }, + { + option: "version", + alias: "v", + type: "Boolean", + description: "Output the version number" + }, + { + option: "print-config", + type: "path::String", + description: "Print the configuration for the given file" + } + ].filter(value => !!value) + }); +}; diff --git a/node_modules/eslint/lib/rule-tester/flat-rule-tester.js b/node_modules/eslint/lib/rule-tester/flat-rule-tester.js new file mode 100644 index 0000000..f915924 --- /dev/null +++ b/node_modules/eslint/lib/rule-tester/flat-rule-tester.js @@ -0,0 +1,1042 @@ +/** + * @fileoverview Mocha/Jest test wrapper + * @author Ilya Volodin + */ +"use strict"; + +/* globals describe, it -- Mocha globals */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const + assert = require("assert"), + util = require("util"), + equal = require("fast-deep-equal"), + Traverser = require("../shared/traverser"), + { getRuleOptionsSchema } = require("../config/flat-config-helpers"), + { Linter, SourceCodeFixer, interpolate } = require("../linter"); +const { FlatConfigArray } = require("../config/flat-config-array"); +const { defaultConfig } = require("../config/default-config"); + +const ajv = require("../shared/ajv")({ strictDefaults: true }); + +const parserSymbol = Symbol.for("eslint.RuleTester.parser"); +const { SourceCode } = require("../source-code"); +const { ConfigArraySymbol } = require("@humanwhocodes/config-array"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** @typedef {import("../shared/types").Parser} Parser */ +/** @typedef {import("../shared/types").LanguageOptions} LanguageOptions */ + +/* eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577 */ +/** + * A test case that is expected to pass lint. + * @typedef {Object} ValidTestCase + * @property {string} [name] Name for the test case. + * @property {string} code Code for the test case. + * @property {any[]} [options] Options for the test case. + * @property {LanguageOptions} [languageOptions] The language options to use in the test case. + * @property {{ [name: string]: any }} [settings] Settings for the test case. + * @property {string} [filename] The fake filename for the test case. Useful for rules that make assertion about filenames. + * @property {boolean} [only] Run only this test case or the subset of test cases with this property. + */ + +/** + * A test case that is expected to fail lint. + * @typedef {Object} InvalidTestCase + * @property {string} [name] Name for the test case. + * @property {string} code Code for the test case. + * @property {number | Array} errors Expected errors. + * @property {string | null} [output] The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested. + * @property {any[]} [options] Options for the test case. + * @property {{ [name: string]: any }} [settings] Settings for the test case. + * @property {string} [filename] The fake filename for the test case. Useful for rules that make assertion about filenames. + * @property {LanguageOptions} [languageOptions] The language options to use in the test case. + * @property {boolean} [only] Run only this test case or the subset of test cases with this property. + */ + +/** + * A description of a reported error used in a rule tester test. + * @typedef {Object} TestCaseError + * @property {string | RegExp} [message] Message. + * @property {string} [messageId] Message ID. + * @property {string} [type] The type of the reported AST node. + * @property {{ [name: string]: string }} [data] The data used to fill the message template. + * @property {number} [line] The 1-based line number of the reported start location. + * @property {number} [column] The 1-based column number of the reported start location. + * @property {number} [endLine] The 1-based line number of the reported end location. + * @property {number} [endColumn] The 1-based column number of the reported end location. + */ +/* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577 */ + +//------------------------------------------------------------------------------ +// Private Members +//------------------------------------------------------------------------------ + +/* + * testerDefaultConfig must not be modified as it allows to reset the tester to + * the initial default configuration + */ +const testerDefaultConfig = { rules: {} }; + +/* + * RuleTester uses this config as its default. This can be overwritten via + * setDefaultConfig(). + */ +let sharedDefaultConfig = { rules: {} }; + +/* + * List every parameters possible on a test case that are not related to eslint + * configuration + */ +const RuleTesterParameters = [ + "name", + "code", + "filename", + "options", + "errors", + "output", + "only" +]; + +/* + * All allowed property names in error objects. + */ +const errorObjectParameters = new Set([ + "message", + "messageId", + "data", + "type", + "line", + "column", + "endLine", + "endColumn", + "suggestions" +]); +const friendlyErrorObjectParameterList = `[${[...errorObjectParameters].map(key => `'${key}'`).join(", ")}]`; + +/* + * All allowed property names in suggestion objects. + */ +const suggestionObjectParameters = new Set([ + "desc", + "messageId", + "data", + "output" +]); +const friendlySuggestionObjectParameterList = `[${[...suggestionObjectParameters].map(key => `'${key}'`).join(", ")}]`; + +const hasOwnProperty = Function.call.bind(Object.hasOwnProperty); + +/** + * Clones a given value deeply. + * Note: This ignores `parent` property. + * @param {any} x A value to clone. + * @returns {any} A cloned value. + */ +function cloneDeeplyExcludesParent(x) { + if (typeof x === "object" && x !== null) { + if (Array.isArray(x)) { + return x.map(cloneDeeplyExcludesParent); + } + + const retv = {}; + + for (const key in x) { + if (key !== "parent" && hasOwnProperty(x, key)) { + retv[key] = cloneDeeplyExcludesParent(x[key]); + } + } + + return retv; + } + + return x; +} + +/** + * Freezes a given value deeply. + * @param {any} x A value to freeze. + * @returns {void} + */ +function freezeDeeply(x) { + if (typeof x === "object" && x !== null) { + if (Array.isArray(x)) { + x.forEach(freezeDeeply); + } else { + for (const key in x) { + if (key !== "parent" && hasOwnProperty(x, key)) { + freezeDeeply(x[key]); + } + } + } + Object.freeze(x); + } +} + +/** + * Replace control characters by `\u00xx` form. + * @param {string} text The text to sanitize. + * @returns {string} The sanitized text. + */ +function sanitize(text) { + if (typeof text !== "string") { + return ""; + } + return text.replace( + /[\u0000-\u0009\u000b-\u001a]/gu, // eslint-disable-line no-control-regex -- Escaping controls + c => `\\u${c.codePointAt(0).toString(16).padStart(4, "0")}` + ); +} + +/** + * Define `start`/`end` properties as throwing error. + * @param {string} objName Object name used for error messages. + * @param {ASTNode} node The node to define. + * @returns {void} + */ +function defineStartEndAsError(objName, node) { + Object.defineProperties(node, { + start: { + get() { + throw new Error(`Use ${objName}.range[0] instead of ${objName}.start`); + }, + configurable: true, + enumerable: false + }, + end: { + get() { + throw new Error(`Use ${objName}.range[1] instead of ${objName}.end`); + }, + configurable: true, + enumerable: false + } + }); +} + + +/** + * Define `start`/`end` properties of all nodes of the given AST as throwing error. + * @param {ASTNode} ast The root node to errorize `start`/`end` properties. + * @param {Object} [visitorKeys] Visitor keys to be used for traversing the given ast. + * @returns {void} + */ +function defineStartEndAsErrorInTree(ast, visitorKeys) { + Traverser.traverse(ast, { visitorKeys, enter: defineStartEndAsError.bind(null, "node") }); + ast.tokens.forEach(defineStartEndAsError.bind(null, "token")); + ast.comments.forEach(defineStartEndAsError.bind(null, "token")); +} + +/** + * Wraps the given parser in order to intercept and modify return values from the `parse` and `parseForESLint` methods, for test purposes. + * In particular, to modify ast nodes, tokens and comments to throw on access to their `start` and `end` properties. + * @param {Parser} parser Parser object. + * @returns {Parser} Wrapped parser object. + */ +function wrapParser(parser) { + + if (typeof parser.parseForESLint === "function") { + return { + [parserSymbol]: parser, + parseForESLint(...args) { + const ret = parser.parseForESLint(...args); + + defineStartEndAsErrorInTree(ret.ast, ret.visitorKeys); + return ret; + } + }; + } + + return { + [parserSymbol]: parser, + parse(...args) { + const ast = parser.parse(...args); + + defineStartEndAsErrorInTree(ast); + return ast; + } + }; +} + +/** + * Function to replace `SourceCode.prototype.getComments`. + * @returns {void} + * @throws {Error} Deprecation message. + */ +function getCommentsDeprecation() { + throw new Error( + "`SourceCode#getComments()` is deprecated and will be removed in a future major version. Use `getCommentsBefore()`, `getCommentsAfter()`, and `getCommentsInside()` instead." + ); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +// default separators for testing +const DESCRIBE = Symbol("describe"); +const IT = Symbol("it"); +const IT_ONLY = Symbol("itOnly"); + +/** + * This is `it` default handler if `it` don't exist. + * @this {Mocha} + * @param {string} text The description of the test case. + * @param {Function} method The logic of the test case. + * @throws {Error} Any error upon execution of `method`. + * @returns {any} Returned value of `method`. + */ +function itDefaultHandler(text, method) { + try { + return method.call(this); + } catch (err) { + if (err instanceof assert.AssertionError) { + err.message += ` (${util.inspect(err.actual)} ${err.operator} ${util.inspect(err.expected)})`; + } + throw err; + } +} + +/** + * This is `describe` default handler if `describe` don't exist. + * @this {Mocha} + * @param {string} text The description of the test case. + * @param {Function} method The logic of the test case. + * @returns {any} Returned value of `method`. + */ +function describeDefaultHandler(text, method) { + return method.call(this); +} + +/** + * Mocha test wrapper. + */ +class FlatRuleTester { + + /** + * Creates a new instance of RuleTester. + * @param {Object} [testerConfig] Optional, extra configuration for the tester + */ + constructor(testerConfig = {}) { + + /** + * The configuration to use for this tester. Combination of the tester + * configuration and the default configuration. + * @type {Object} + */ + this.testerConfig = [ + sharedDefaultConfig, + testerConfig, + { rules: { "rule-tester/validate-ast": "error" } } + ]; + + this.linter = new Linter({ configType: "flat" }); + } + + /** + * Set the configuration to use for all future tests + * @param {Object} config the configuration to use. + * @throws {TypeError} If non-object config. + * @returns {void} + */ + static setDefaultConfig(config) { + if (typeof config !== "object") { + throw new TypeError("FlatRuleTester.setDefaultConfig: config must be an object"); + } + sharedDefaultConfig = config; + + // Make sure the rules object exists since it is assumed to exist later + sharedDefaultConfig.rules = sharedDefaultConfig.rules || {}; + } + + /** + * Get the current configuration used for all tests + * @returns {Object} the current configuration + */ + static getDefaultConfig() { + return sharedDefaultConfig; + } + + /** + * Reset the configuration to the initial configuration of the tester removing + * any changes made until now. + * @returns {void} + */ + static resetDefaultConfig() { + sharedDefaultConfig = { + rules: { + ...testerDefaultConfig.rules + } + }; + } + + + /* + * If people use `mocha test.js --watch` command, `describe` and `it` function + * instances are different for each execution. So `describe` and `it` should get fresh instance + * always. + */ + static get describe() { + return ( + this[DESCRIBE] || + (typeof describe === "function" ? describe : describeDefaultHandler) + ); + } + + static set describe(value) { + this[DESCRIBE] = value; + } + + static get it() { + return ( + this[IT] || + (typeof it === "function" ? it : itDefaultHandler) + ); + } + + static set it(value) { + this[IT] = value; + } + + /** + * Adds the `only` property to a test to run it in isolation. + * @param {string | ValidTestCase | InvalidTestCase} item A single test to run by itself. + * @returns {ValidTestCase | InvalidTestCase} The test with `only` set. + */ + static only(item) { + if (typeof item === "string") { + return { code: item, only: true }; + } + + return { ...item, only: true }; + } + + static get itOnly() { + if (typeof this[IT_ONLY] === "function") { + return this[IT_ONLY]; + } + if (typeof this[IT] === "function" && typeof this[IT].only === "function") { + return Function.bind.call(this[IT].only, this[IT]); + } + if (typeof it === "function" && typeof it.only === "function") { + return Function.bind.call(it.only, it); + } + + if (typeof this[DESCRIBE] === "function" || typeof this[IT] === "function") { + throw new Error( + "Set `RuleTester.itOnly` to use `only` with a custom test framework.\n" + + "See https://eslint.org/docs/developer-guide/nodejs-api#customizing-ruletester for more." + ); + } + if (typeof it === "function") { + throw new Error("The current test framework does not support exclusive tests with `only`."); + } + throw new Error("To use `only`, use RuleTester with a test framework that provides `it.only()` like Mocha."); + } + + static set itOnly(value) { + this[IT_ONLY] = value; + } + + + /** + * Adds a new rule test to execute. + * @param {string} ruleName The name of the rule to run. + * @param {Function} rule The rule to test. + * @param {{ + * valid: (ValidTestCase | string)[], + * invalid: InvalidTestCase[] + * }} test The collection of tests to run. + * @throws {TypeError|Error} If non-object `test`, or if a required + * scenario of the given type is missing. + * @returns {void} + */ + run(ruleName, rule, test) { + + const testerConfig = this.testerConfig, + requiredScenarios = ["valid", "invalid"], + scenarioErrors = [], + linter = this.linter, + ruleId = `rule-to-test/${ruleName}`; + + if (!test || typeof test !== "object") { + throw new TypeError(`Test Scenarios for rule ${ruleName} : Could not find test scenario object`); + } + + requiredScenarios.forEach(scenarioType => { + if (!test[scenarioType]) { + scenarioErrors.push(`Could not find any ${scenarioType} test scenarios`); + } + }); + + if (scenarioErrors.length > 0) { + throw new Error([ + `Test Scenarios for rule ${ruleName} is invalid:` + ].concat(scenarioErrors).join("\n")); + } + + const baseConfig = [ + { + plugins: { + + // copy root plugin over + "@": { + + /* + * Parsers are wrapped to detect more errors, so this needs + * to be a new object for each call to run(), otherwise the + * parsers will be wrapped multiple times. + */ + parsers: { + ...defaultConfig[0].plugins["@"].parsers + }, + + /* + * The rules key on the default plugin is a proxy to lazy-load + * just the rules that are needed. So, don't create a new object + * here, just use the default one to keep that performance + * enhancement. + */ + rules: defaultConfig[0].plugins["@"].rules + }, + "rule-to-test": { + rules: { + [ruleName]: Object.assign({}, rule, { + + // Create a wrapper rule that freezes the `context` properties. + create(context) { + freezeDeeply(context.options); + freezeDeeply(context.settings); + freezeDeeply(context.parserOptions); + + // freezeDeeply(context.languageOptions); + + return (typeof rule === "function" ? rule : rule.create)(context); + } + }) + } + } + }, + languageOptions: { + ...defaultConfig[0].languageOptions + } + }, + ...defaultConfig.slice(1) + ]; + + /** + * Run the rule for the given item + * @param {string|Object} item Item to run the rule against + * @throws {Error} If an invalid schema. + * @returns {Object} Eslint run result + * @private + */ + function runRuleForItem(item) { + const configs = new FlatConfigArray(testerConfig, { baseConfig }); + + /* + * Modify the returned config so that the parser is wrapped to catch + * access of the start/end properties. This method is called just + * once per code snippet being tested, so each test case gets a clean + * parser. + */ + configs[ConfigArraySymbol.finalizeConfig] = function(...args) { + + // can't do super here :( + const proto = Object.getPrototypeOf(this); + const calculatedConfig = proto[ConfigArraySymbol.finalizeConfig].apply(this, args); + + // wrap the parser to catch start/end property access + calculatedConfig.languageOptions.parser = wrapParser(calculatedConfig.languageOptions.parser); + return calculatedConfig; + }; + + let code, filename, output, beforeAST, afterAST; + + if (typeof item === "string") { + code = item; + } else { + code = item.code; + + /* + * Assumes everything on the item is a config except for the + * parameters used by this tester + */ + const itemConfig = { ...item }; + + for (const parameter of RuleTesterParameters) { + delete itemConfig[parameter]; + } + + // wrap any parsers + if (itemConfig.languageOptions && itemConfig.languageOptions.parser) { + + const parser = itemConfig.languageOptions.parser; + + if (parser && typeof parser !== "object") { + throw new Error("Parser must be an object with a parse() or parseForESLint() method."); + } + + } + + /* + * Create the config object from the tester config and this item + * specific configurations. + */ + configs.push(itemConfig); + } + + if (item.filename) { + filename = item.filename; + } + + let ruleConfig = 1; + + if (hasOwnProperty(item, "options")) { + assert(Array.isArray(item.options), "options must be an array"); + ruleConfig = [1, ...item.options]; + } + + configs.push({ + rules: { + [ruleId]: ruleConfig + } + }); + + const schema = getRuleOptionsSchema(rule); + + /* + * Setup AST getters. + * The goal is to check whether or not AST was modified when + * running the rule under test. + */ + configs.push({ + plugins: { + "rule-tester": { + rules: { + "validate-ast"() { + return { + Program(node) { + beforeAST = cloneDeeplyExcludesParent(node); + }, + "Program:exit"(node) { + afterAST = node; + } + }; + } + } + } + } + }); + + if (schema) { + ajv.validateSchema(schema); + + if (ajv.errors) { + const errors = ajv.errors.map(error => { + const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath; + + return `\t${field}: ${error.message}`; + }).join("\n"); + + throw new Error([`Schema for rule ${ruleName} is invalid:`, errors]); + } + + /* + * `ajv.validateSchema` checks for errors in the structure of the schema (by comparing the schema against a "meta-schema"), + * and it reports those errors individually. However, there are other types of schema errors that only occur when compiling + * the schema (e.g. using invalid defaults in a schema), and only one of these errors can be reported at a time. As a result, + * the schema is compiled here separately from checking for `validateSchema` errors. + */ + try { + ajv.compile(schema); + } catch (err) { + throw new Error(`Schema for rule ${ruleName} is invalid: ${err.message}`); + } + } + + // Verify the code. + const { getComments } = SourceCode.prototype; + let messages; + + // check for validation errors + try { + configs.normalizeSync(); + configs.getConfig("test.js"); + } catch (error) { + error.message = `ESLint configuration in rule-tester is invalid: ${error.message}`; + throw error; + } + + try { + SourceCode.prototype.getComments = getCommentsDeprecation; + messages = linter.verify(code, configs, filename); + } finally { + SourceCode.prototype.getComments = getComments; + } + + const fatalErrorMessage = messages.find(m => m.fatal); + + assert(!fatalErrorMessage, `A fatal parsing error occurred: ${fatalErrorMessage && fatalErrorMessage.message}`); + + // Verify if autofix makes a syntax error or not. + if (messages.some(m => m.fix)) { + output = SourceCodeFixer.applyFixes(code, messages).output; + const errorMessageInFix = linter.verify(output, configs, filename).find(m => m.fatal); + + assert(!errorMessageInFix, [ + "A fatal parsing error occurred in autofix.", + `Error: ${errorMessageInFix && errorMessageInFix.message}`, + "Autofix output:", + output + ].join("\n")); + } else { + output = code; + } + + return { + messages, + output, + beforeAST, + afterAST: cloneDeeplyExcludesParent(afterAST) + }; + } + + /** + * Check if the AST was changed + * @param {ASTNode} beforeAST AST node before running + * @param {ASTNode} afterAST AST node after running + * @returns {void} + * @private + */ + function assertASTDidntChange(beforeAST, afterAST) { + if (!equal(beforeAST, afterAST)) { + assert.fail("Rule should not modify AST."); + } + } + + /** + * Check if the template is valid or not + * all valid cases go through this + * @param {string|Object} item Item to run the rule against + * @returns {void} + * @private + */ + function testValidTemplate(item) { + const code = typeof item === "object" ? item.code : item; + + assert.ok(typeof code === "string", "Test case must specify a string value for 'code'"); + if (item.name) { + assert.ok(typeof item.name === "string", "Optional test case property 'name' must be a string"); + } + + const result = runRuleForItem(item); + const messages = result.messages; + + assert.strictEqual(messages.length, 0, util.format("Should have no errors but had %d: %s", + messages.length, + util.inspect(messages))); + + assertASTDidntChange(result.beforeAST, result.afterAST); + } + + /** + * Asserts that the message matches its expected value. If the expected + * value is a regular expression, it is checked against the actual + * value. + * @param {string} actual Actual value + * @param {string|RegExp} expected Expected value + * @returns {void} + * @private + */ + function assertMessageMatches(actual, expected) { + if (expected instanceof RegExp) { + + // assert.js doesn't have a built-in RegExp match function + assert.ok( + expected.test(actual), + `Expected '${actual}' to match ${expected}` + ); + } else { + assert.strictEqual(actual, expected); + } + } + + /** + * Check if the template is invalid or not + * all invalid cases go through this. + * @param {string|Object} item Item to run the rule against + * @returns {void} + * @private + */ + function testInvalidTemplate(item) { + assert.ok(typeof item.code === "string", "Test case must specify a string value for 'code'"); + if (item.name) { + assert.ok(typeof item.name === "string", "Optional test case property 'name' must be a string"); + } + assert.ok(item.errors || item.errors === 0, + `Did not specify errors for an invalid test of ${ruleName}`); + + if (Array.isArray(item.errors) && item.errors.length === 0) { + assert.fail("Invalid cases must have at least one error"); + } + + const ruleHasMetaMessages = hasOwnProperty(rule, "meta") && hasOwnProperty(rule.meta, "messages"); + const friendlyIDList = ruleHasMetaMessages ? `[${Object.keys(rule.meta.messages).map(key => `'${key}'`).join(", ")}]` : null; + + const result = runRuleForItem(item); + const messages = result.messages; + + if (typeof item.errors === "number") { + + if (item.errors === 0) { + assert.fail("Invalid cases must have 'error' value greater than 0"); + } + + assert.strictEqual(messages.length, item.errors, util.format("Should have %d error%s but had %d: %s", + item.errors, + item.errors === 1 ? "" : "s", + messages.length, + util.inspect(messages))); + } else { + assert.strictEqual( + messages.length, item.errors.length, util.format( + "Should have %d error%s but had %d: %s", + item.errors.length, + item.errors.length === 1 ? "" : "s", + messages.length, + util.inspect(messages) + ) + ); + + const hasMessageOfThisRule = messages.some(m => m.ruleId === ruleId); + + for (let i = 0, l = item.errors.length; i < l; i++) { + const error = item.errors[i]; + const message = messages[i]; + + assert(hasMessageOfThisRule, "Error rule name should be the same as the name of the rule being tested"); + + if (typeof error === "string" || error instanceof RegExp) { + + // Just an error message. + assertMessageMatches(message.message, error); + } else if (typeof error === "object" && error !== null) { + + /* + * Error object. + * This may have a message, messageId, data, node type, line, and/or + * column. + */ + + Object.keys(error).forEach(propertyName => { + assert.ok( + errorObjectParameters.has(propertyName), + `Invalid error property name '${propertyName}'. Expected one of ${friendlyErrorObjectParameterList}.` + ); + }); + + if (hasOwnProperty(error, "message")) { + assert.ok(!hasOwnProperty(error, "messageId"), "Error should not specify both 'message' and a 'messageId'."); + assert.ok(!hasOwnProperty(error, "data"), "Error should not specify both 'data' and 'message'."); + assertMessageMatches(message.message, error.message); + } else if (hasOwnProperty(error, "messageId")) { + assert.ok( + ruleHasMetaMessages, + "Error can not use 'messageId' if rule under test doesn't define 'meta.messages'." + ); + if (!hasOwnProperty(rule.meta.messages, error.messageId)) { + assert(false, `Invalid messageId '${error.messageId}'. Expected one of ${friendlyIDList}.`); + } + assert.strictEqual( + message.messageId, + error.messageId, + `messageId '${message.messageId}' does not match expected messageId '${error.messageId}'.` + ); + if (hasOwnProperty(error, "data")) { + + /* + * if data was provided, then directly compare the returned message to a synthetic + * interpolated message using the same message ID and data provided in the test. + * See https://github.com/eslint/eslint/issues/9890 for context. + */ + const unformattedOriginalMessage = rule.meta.messages[error.messageId]; + const rehydratedMessage = interpolate(unformattedOriginalMessage, error.data); + + assert.strictEqual( + message.message, + rehydratedMessage, + `Hydrated message "${rehydratedMessage}" does not match "${message.message}"` + ); + } + } + + assert.ok( + hasOwnProperty(error, "data") ? hasOwnProperty(error, "messageId") : true, + "Error must specify 'messageId' if 'data' is used." + ); + + if (error.type) { + assert.strictEqual(message.nodeType, error.type, `Error type should be ${error.type}, found ${message.nodeType}`); + } + + if (hasOwnProperty(error, "line")) { + assert.strictEqual(message.line, error.line, `Error line should be ${error.line}`); + } + + if (hasOwnProperty(error, "column")) { + assert.strictEqual(message.column, error.column, `Error column should be ${error.column}`); + } + + if (hasOwnProperty(error, "endLine")) { + assert.strictEqual(message.endLine, error.endLine, `Error endLine should be ${error.endLine}`); + } + + if (hasOwnProperty(error, "endColumn")) { + assert.strictEqual(message.endColumn, error.endColumn, `Error endColumn should be ${error.endColumn}`); + } + + if (hasOwnProperty(error, "suggestions")) { + + // Support asserting there are no suggestions + if (!error.suggestions || (Array.isArray(error.suggestions) && error.suggestions.length === 0)) { + if (Array.isArray(message.suggestions) && message.suggestions.length > 0) { + assert.fail(`Error should have no suggestions on error with message: "${message.message}"`); + } + } else { + assert.strictEqual(Array.isArray(message.suggestions), true, `Error should have an array of suggestions. Instead received "${message.suggestions}" on error with message: "${message.message}"`); + assert.strictEqual(message.suggestions.length, error.suggestions.length, `Error should have ${error.suggestions.length} suggestions. Instead found ${message.suggestions.length} suggestions`); + + error.suggestions.forEach((expectedSuggestion, index) => { + assert.ok( + typeof expectedSuggestion === "object" && expectedSuggestion !== null, + "Test suggestion in 'suggestions' array must be an object." + ); + Object.keys(expectedSuggestion).forEach(propertyName => { + assert.ok( + suggestionObjectParameters.has(propertyName), + `Invalid suggestion property name '${propertyName}'. Expected one of ${friendlySuggestionObjectParameterList}.` + ); + }); + + const actualSuggestion = message.suggestions[index]; + const suggestionPrefix = `Error Suggestion at index ${index} :`; + + if (hasOwnProperty(expectedSuggestion, "desc")) { + assert.ok( + !hasOwnProperty(expectedSuggestion, "data"), + `${suggestionPrefix} Test should not specify both 'desc' and 'data'.` + ); + assert.strictEqual( + actualSuggestion.desc, + expectedSuggestion.desc, + `${suggestionPrefix} desc should be "${expectedSuggestion.desc}" but got "${actualSuggestion.desc}" instead.` + ); + } + + if (hasOwnProperty(expectedSuggestion, "messageId")) { + assert.ok( + ruleHasMetaMessages, + `${suggestionPrefix} Test can not use 'messageId' if rule under test doesn't define 'meta.messages'.` + ); + assert.ok( + hasOwnProperty(rule.meta.messages, expectedSuggestion.messageId), + `${suggestionPrefix} Test has invalid messageId '${expectedSuggestion.messageId}', the rule under test allows only one of ${friendlyIDList}.` + ); + assert.strictEqual( + actualSuggestion.messageId, + expectedSuggestion.messageId, + `${suggestionPrefix} messageId should be '${expectedSuggestion.messageId}' but got '${actualSuggestion.messageId}' instead.` + ); + if (hasOwnProperty(expectedSuggestion, "data")) { + const unformattedMetaMessage = rule.meta.messages[expectedSuggestion.messageId]; + const rehydratedDesc = interpolate(unformattedMetaMessage, expectedSuggestion.data); + + assert.strictEqual( + actualSuggestion.desc, + rehydratedDesc, + `${suggestionPrefix} Hydrated test desc "${rehydratedDesc}" does not match received desc "${actualSuggestion.desc}".` + ); + } + } else { + assert.ok( + !hasOwnProperty(expectedSuggestion, "data"), + `${suggestionPrefix} Test must specify 'messageId' if 'data' is used.` + ); + } + + if (hasOwnProperty(expectedSuggestion, "output")) { + const codeWithAppliedSuggestion = SourceCodeFixer.applyFixes(item.code, [actualSuggestion]).output; + + assert.strictEqual(codeWithAppliedSuggestion, expectedSuggestion.output, `Expected the applied suggestion fix to match the test suggestion output for suggestion at index: ${index} on error with message: "${message.message}"`); + } + }); + } + } + } else { + + // Message was an unexpected type + assert.fail(`Error should be a string, object, or RegExp, but found (${util.inspect(message)})`); + } + } + } + + if (hasOwnProperty(item, "output")) { + if (item.output === null) { + assert.strictEqual( + result.output, + item.code, + "Expected no autofixes to be suggested" + ); + } else { + assert.strictEqual(result.output, item.output, "Output is incorrect."); + } + } else { + assert.strictEqual( + result.output, + item.code, + "The rule fixed the code. Please add 'output' property." + ); + } + + assertASTDidntChange(result.beforeAST, result.afterAST); + } + + /* + * This creates a mocha test suite and pipes all supplied info through + * one of the templates above. + */ + this.constructor.describe(ruleName, () => { + this.constructor.describe("valid", () => { + test.valid.forEach(valid => { + this.constructor[valid.only ? "itOnly" : "it"]( + sanitize(typeof valid === "object" ? valid.name || valid.code : valid), + () => { + testValidTemplate(valid); + } + ); + }); + }); + + this.constructor.describe("invalid", () => { + test.invalid.forEach(invalid => { + this.constructor[invalid.only ? "itOnly" : "it"]( + sanitize(invalid.name || invalid.code), + () => { + testInvalidTemplate(invalid); + } + ); + }); + }); + }); + } +} + +FlatRuleTester[DESCRIBE] = FlatRuleTester[IT] = FlatRuleTester[IT_ONLY] = null; + +module.exports = FlatRuleTester; diff --git a/node_modules/eslint/lib/rule-tester/index.js b/node_modules/eslint/lib/rule-tester/index.js new file mode 100644 index 0000000..f52d140 --- /dev/null +++ b/node_modules/eslint/lib/rule-tester/index.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = { + RuleTester: require("./rule-tester") +}; diff --git a/node_modules/eslint/lib/rule-tester/rule-tester.js b/node_modules/eslint/lib/rule-tester/rule-tester.js new file mode 100644 index 0000000..2af272b --- /dev/null +++ b/node_modules/eslint/lib/rule-tester/rule-tester.js @@ -0,0 +1,1050 @@ +/** + * @fileoverview Mocha test wrapper + * @author Ilya Volodin + */ +"use strict"; + +/* globals describe, it -- Mocha globals */ + +/* + * This is a wrapper around mocha to allow for DRY unittests for eslint + * Format: + * RuleTester.run("{ruleName}", { + * valid: [ + * "{code}", + * { code: "{code}", options: {options}, globals: {globals}, parser: "{parser}", settings: {settings} } + * ], + * invalid: [ + * { code: "{code}", errors: {numErrors} }, + * { code: "{code}", errors: ["{errorMessage}"] }, + * { code: "{code}", options: {options}, globals: {globals}, parser: "{parser}", settings: {settings}, errors: [{ message: "{errorMessage}", type: "{errorNodeType}"}] } + * ] + * }); + * + * Variables: + * {code} - String that represents the code to be tested + * {options} - Arguments that are passed to the configurable rules. + * {globals} - An object representing a list of variables that are + * registered as globals + * {parser} - String representing the parser to use + * {settings} - An object representing global settings for all rules + * {numErrors} - If failing case doesn't need to check error message, + * this integer will specify how many errors should be + * received + * {errorMessage} - Message that is returned by the rule on failure + * {errorNodeType} - AST node type that is returned by they rule as + * a cause of the failure. + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const + assert = require("assert"), + path = require("path"), + util = require("util"), + merge = require("lodash.merge"), + equal = require("fast-deep-equal"), + Traverser = require("../../lib/shared/traverser"), + { getRuleOptionsSchema, validate } = require("../shared/config-validator"), + { Linter, SourceCodeFixer, interpolate } = require("../linter"); + +const ajv = require("../shared/ajv")({ strictDefaults: true }); + +const espreePath = require.resolve("espree"); +const parserSymbol = Symbol.for("eslint.RuleTester.parser"); + +const { SourceCode } = require("../source-code"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** @typedef {import("../shared/types").Parser} Parser */ + +/* eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577 */ +/** + * A test case that is expected to pass lint. + * @typedef {Object} ValidTestCase + * @property {string} [name] Name for the test case. + * @property {string} code Code for the test case. + * @property {any[]} [options] Options for the test case. + * @property {{ [name: string]: any }} [settings] Settings for the test case. + * @property {string} [filename] The fake filename for the test case. Useful for rules that make assertion about filenames. + * @property {string} [parser] The absolute path for the parser. + * @property {{ [name: string]: any }} [parserOptions] Options for the parser. + * @property {{ [name: string]: "readonly" | "writable" | "off" }} [globals] The additional global variables. + * @property {{ [name: string]: boolean }} [env] Environments for the test case. + * @property {boolean} [only] Run only this test case or the subset of test cases with this property. + */ + +/** + * A test case that is expected to fail lint. + * @typedef {Object} InvalidTestCase + * @property {string} [name] Name for the test case. + * @property {string} code Code for the test case. + * @property {number | Array} errors Expected errors. + * @property {string | null} [output] The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested. + * @property {any[]} [options] Options for the test case. + * @property {{ [name: string]: any }} [settings] Settings for the test case. + * @property {string} [filename] The fake filename for the test case. Useful for rules that make assertion about filenames. + * @property {string} [parser] The absolute path for the parser. + * @property {{ [name: string]: any }} [parserOptions] Options for the parser. + * @property {{ [name: string]: "readonly" | "writable" | "off" }} [globals] The additional global variables. + * @property {{ [name: string]: boolean }} [env] Environments for the test case. + * @property {boolean} [only] Run only this test case or the subset of test cases with this property. + */ + +/** + * A description of a reported error used in a rule tester test. + * @typedef {Object} TestCaseError + * @property {string | RegExp} [message] Message. + * @property {string} [messageId] Message ID. + * @property {string} [type] The type of the reported AST node. + * @property {{ [name: string]: string }} [data] The data used to fill the message template. + * @property {number} [line] The 1-based line number of the reported start location. + * @property {number} [column] The 1-based column number of the reported start location. + * @property {number} [endLine] The 1-based line number of the reported end location. + * @property {number} [endColumn] The 1-based column number of the reported end location. + */ +/* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/4#issuecomment-778805577 */ + +//------------------------------------------------------------------------------ +// Private Members +//------------------------------------------------------------------------------ + +/* + * testerDefaultConfig must not be modified as it allows to reset the tester to + * the initial default configuration + */ +const testerDefaultConfig = { rules: {} }; +let defaultConfig = { rules: {} }; + +/* + * List every parameters possible on a test case that are not related to eslint + * configuration + */ +const RuleTesterParameters = [ + "name", + "code", + "filename", + "options", + "errors", + "output", + "only" +]; + +/* + * All allowed property names in error objects. + */ +const errorObjectParameters = new Set([ + "message", + "messageId", + "data", + "type", + "line", + "column", + "endLine", + "endColumn", + "suggestions" +]); +const friendlyErrorObjectParameterList = `[${[...errorObjectParameters].map(key => `'${key}'`).join(", ")}]`; + +/* + * All allowed property names in suggestion objects. + */ +const suggestionObjectParameters = new Set([ + "desc", + "messageId", + "data", + "output" +]); +const friendlySuggestionObjectParameterList = `[${[...suggestionObjectParameters].map(key => `'${key}'`).join(", ")}]`; + +const hasOwnProperty = Function.call.bind(Object.hasOwnProperty); + +/** + * Clones a given value deeply. + * Note: This ignores `parent` property. + * @param {any} x A value to clone. + * @returns {any} A cloned value. + */ +function cloneDeeplyExcludesParent(x) { + if (typeof x === "object" && x !== null) { + if (Array.isArray(x)) { + return x.map(cloneDeeplyExcludesParent); + } + + const retv = {}; + + for (const key in x) { + if (key !== "parent" && hasOwnProperty(x, key)) { + retv[key] = cloneDeeplyExcludesParent(x[key]); + } + } + + return retv; + } + + return x; +} + +/** + * Freezes a given value deeply. + * @param {any} x A value to freeze. + * @returns {void} + */ +function freezeDeeply(x) { + if (typeof x === "object" && x !== null) { + if (Array.isArray(x)) { + x.forEach(freezeDeeply); + } else { + for (const key in x) { + if (key !== "parent" && hasOwnProperty(x, key)) { + freezeDeeply(x[key]); + } + } + } + Object.freeze(x); + } +} + +/** + * Replace control characters by `\u00xx` form. + * @param {string} text The text to sanitize. + * @returns {string} The sanitized text. + */ +function sanitize(text) { + if (typeof text !== "string") { + return ""; + } + return text.replace( + /[\u0000-\u0009\u000b-\u001a]/gu, // eslint-disable-line no-control-regex -- Escaping controls + c => `\\u${c.codePointAt(0).toString(16).padStart(4, "0")}` + ); +} + +/** + * Define `start`/`end` properties as throwing error. + * @param {string} objName Object name used for error messages. + * @param {ASTNode} node The node to define. + * @returns {void} + */ +function defineStartEndAsError(objName, node) { + Object.defineProperties(node, { + start: { + get() { + throw new Error(`Use ${objName}.range[0] instead of ${objName}.start`); + }, + configurable: true, + enumerable: false + }, + end: { + get() { + throw new Error(`Use ${objName}.range[1] instead of ${objName}.end`); + }, + configurable: true, + enumerable: false + } + }); +} + + +/** + * Define `start`/`end` properties of all nodes of the given AST as throwing error. + * @param {ASTNode} ast The root node to errorize `start`/`end` properties. + * @param {Object} [visitorKeys] Visitor keys to be used for traversing the given ast. + * @returns {void} + */ +function defineStartEndAsErrorInTree(ast, visitorKeys) { + Traverser.traverse(ast, { visitorKeys, enter: defineStartEndAsError.bind(null, "node") }); + ast.tokens.forEach(defineStartEndAsError.bind(null, "token")); + ast.comments.forEach(defineStartEndAsError.bind(null, "token")); +} + +/** + * Wraps the given parser in order to intercept and modify return values from the `parse` and `parseForESLint` methods, for test purposes. + * In particular, to modify ast nodes, tokens and comments to throw on access to their `start` and `end` properties. + * @param {Parser} parser Parser object. + * @returns {Parser} Wrapped parser object. + */ +function wrapParser(parser) { + + if (typeof parser.parseForESLint === "function") { + return { + [parserSymbol]: parser, + parseForESLint(...args) { + const ret = parser.parseForESLint(...args); + + defineStartEndAsErrorInTree(ret.ast, ret.visitorKeys); + return ret; + } + }; + } + + return { + [parserSymbol]: parser, + parse(...args) { + const ast = parser.parse(...args); + + defineStartEndAsErrorInTree(ast); + return ast; + } + }; +} + +/** + * Function to replace `SourceCode.prototype.getComments`. + * @returns {void} + * @throws {Error} Deprecation message. + */ +function getCommentsDeprecation() { + throw new Error( + "`SourceCode#getComments()` is deprecated and will be removed in a future major version. Use `getCommentsBefore()`, `getCommentsAfter()`, and `getCommentsInside()` instead." + ); +} + +/** + * Emit a deprecation warning if function-style format is being used. + * @param {string} ruleName Name of the rule. + * @returns {void} + */ +function emitLegacyRuleAPIWarning(ruleName) { + if (!emitLegacyRuleAPIWarning[`warned-${ruleName}`]) { + emitLegacyRuleAPIWarning[`warned-${ruleName}`] = true; + process.emitWarning( + `"${ruleName}" rule is using the deprecated function-style format and will stop working in ESLint v9. Please use object-style format: https://eslint.org/docs/developer-guide/working-with-rules`, + "DeprecationWarning" + ); + } +} + +/** + * Emit a deprecation warning if rule has options but is missing the "meta.schema" property + * @param {string} ruleName Name of the rule. + * @returns {void} + */ +function emitMissingSchemaWarning(ruleName) { + if (!emitMissingSchemaWarning[`warned-${ruleName}`]) { + emitMissingSchemaWarning[`warned-${ruleName}`] = true; + process.emitWarning( + `"${ruleName}" rule has options but is missing the "meta.schema" property and will stop working in ESLint v9. Please add a schema: https://eslint.org/docs/developer-guide/working-with-rules#options-schemas`, + "DeprecationWarning" + ); + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +// default separators for testing +const DESCRIBE = Symbol("describe"); +const IT = Symbol("it"); +const IT_ONLY = Symbol("itOnly"); + +/** + * This is `it` default handler if `it` don't exist. + * @this {Mocha} + * @param {string} text The description of the test case. + * @param {Function} method The logic of the test case. + * @throws {Error} Any error upon execution of `method`. + * @returns {any} Returned value of `method`. + */ +function itDefaultHandler(text, method) { + try { + return method.call(this); + } catch (err) { + if (err instanceof assert.AssertionError) { + err.message += ` (${util.inspect(err.actual)} ${err.operator} ${util.inspect(err.expected)})`; + } + throw err; + } +} + +/** + * This is `describe` default handler if `describe` don't exist. + * @this {Mocha} + * @param {string} text The description of the test case. + * @param {Function} method The logic of the test case. + * @returns {any} Returned value of `method`. + */ +function describeDefaultHandler(text, method) { + return method.call(this); +} + +/** + * Mocha test wrapper. + */ +class RuleTester { + + /** + * Creates a new instance of RuleTester. + * @param {Object} [testerConfig] Optional, extra configuration for the tester + */ + constructor(testerConfig) { + + /** + * The configuration to use for this tester. Combination of the tester + * configuration and the default configuration. + * @type {Object} + */ + this.testerConfig = merge( + {}, + defaultConfig, + testerConfig, + { rules: { "rule-tester/validate-ast": "error" } } + ); + + /** + * Rule definitions to define before tests. + * @type {Object} + */ + this.rules = {}; + this.linter = new Linter(); + } + + /** + * Set the configuration to use for all future tests + * @param {Object} config the configuration to use. + * @throws {TypeError} If non-object config. + * @returns {void} + */ + static setDefaultConfig(config) { + if (typeof config !== "object") { + throw new TypeError("RuleTester.setDefaultConfig: config must be an object"); + } + defaultConfig = config; + + // Make sure the rules object exists since it is assumed to exist later + defaultConfig.rules = defaultConfig.rules || {}; + } + + /** + * Get the current configuration used for all tests + * @returns {Object} the current configuration + */ + static getDefaultConfig() { + return defaultConfig; + } + + /** + * Reset the configuration to the initial configuration of the tester removing + * any changes made until now. + * @returns {void} + */ + static resetDefaultConfig() { + defaultConfig = merge({}, testerDefaultConfig); + } + + + /* + * If people use `mocha test.js --watch` command, `describe` and `it` function + * instances are different for each execution. So `describe` and `it` should get fresh instance + * always. + */ + static get describe() { + return ( + this[DESCRIBE] || + (typeof describe === "function" ? describe : describeDefaultHandler) + ); + } + + static set describe(value) { + this[DESCRIBE] = value; + } + + static get it() { + return ( + this[IT] || + (typeof it === "function" ? it : itDefaultHandler) + ); + } + + static set it(value) { + this[IT] = value; + } + + /** + * Adds the `only` property to a test to run it in isolation. + * @param {string | ValidTestCase | InvalidTestCase} item A single test to run by itself. + * @returns {ValidTestCase | InvalidTestCase} The test with `only` set. + */ + static only(item) { + if (typeof item === "string") { + return { code: item, only: true }; + } + + return { ...item, only: true }; + } + + static get itOnly() { + if (typeof this[IT_ONLY] === "function") { + return this[IT_ONLY]; + } + if (typeof this[IT] === "function" && typeof this[IT].only === "function") { + return Function.bind.call(this[IT].only, this[IT]); + } + if (typeof it === "function" && typeof it.only === "function") { + return Function.bind.call(it.only, it); + } + + if (typeof this[DESCRIBE] === "function" || typeof this[IT] === "function") { + throw new Error( + "Set `RuleTester.itOnly` to use `only` with a custom test framework.\n" + + "See https://eslint.org/docs/developer-guide/nodejs-api#customizing-ruletester for more." + ); + } + if (typeof it === "function") { + throw new Error("The current test framework does not support exclusive tests with `only`."); + } + throw new Error("To use `only`, use RuleTester with a test framework that provides `it.only()` like Mocha."); + } + + static set itOnly(value) { + this[IT_ONLY] = value; + } + + /** + * Define a rule for one particular run of tests. + * @param {string} name The name of the rule to define. + * @param {Function} rule The rule definition. + * @returns {void} + */ + defineRule(name, rule) { + this.rules[name] = rule; + } + + /** + * Adds a new rule test to execute. + * @param {string} ruleName The name of the rule to run. + * @param {Function} rule The rule to test. + * @param {{ + * valid: (ValidTestCase | string)[], + * invalid: InvalidTestCase[] + * }} test The collection of tests to run. + * @throws {TypeError|Error} If non-object `test`, or if a required + * scenario of the given type is missing. + * @returns {void} + */ + run(ruleName, rule, test) { + + const testerConfig = this.testerConfig, + requiredScenarios = ["valid", "invalid"], + scenarioErrors = [], + linter = this.linter; + + if (!test || typeof test !== "object") { + throw new TypeError(`Test Scenarios for rule ${ruleName} : Could not find test scenario object`); + } + + requiredScenarios.forEach(scenarioType => { + if (!test[scenarioType]) { + scenarioErrors.push(`Could not find any ${scenarioType} test scenarios`); + } + }); + + if (scenarioErrors.length > 0) { + throw new Error([ + `Test Scenarios for rule ${ruleName} is invalid:` + ].concat(scenarioErrors).join("\n")); + } + + if (typeof rule === "function") { + emitLegacyRuleAPIWarning(ruleName); + } + + linter.defineRule(ruleName, Object.assign({}, rule, { + + // Create a wrapper rule that freezes the `context` properties. + create(context) { + freezeDeeply(context.options); + freezeDeeply(context.settings); + freezeDeeply(context.parserOptions); + + return (typeof rule === "function" ? rule : rule.create)(context); + } + })); + + linter.defineRules(this.rules); + + /** + * Run the rule for the given item + * @param {string|Object} item Item to run the rule against + * @throws {Error} If an invalid schema. + * @returns {Object} Eslint run result + * @private + */ + function runRuleForItem(item) { + let config = merge({}, testerConfig), + code, filename, output, beforeAST, afterAST; + + if (typeof item === "string") { + code = item; + } else { + code = item.code; + + /* + * Assumes everything on the item is a config except for the + * parameters used by this tester + */ + const itemConfig = { ...item }; + + for (const parameter of RuleTesterParameters) { + delete itemConfig[parameter]; + } + + /* + * Create the config object from the tester config and this item + * specific configurations. + */ + config = merge( + config, + itemConfig + ); + } + + if (item.filename) { + filename = item.filename; + } + + if (hasOwnProperty(item, "options")) { + assert(Array.isArray(item.options), "options must be an array"); + if ( + item.options.length > 0 && + typeof rule === "object" && + ( + !rule.meta || (rule.meta && (typeof rule.meta.schema === "undefined" || rule.meta.schema === null)) + ) + ) { + emitMissingSchemaWarning(ruleName); + } + config.rules[ruleName] = [1].concat(item.options); + } else { + config.rules[ruleName] = 1; + } + + const schema = getRuleOptionsSchema(rule); + + /* + * Setup AST getters. + * The goal is to check whether or not AST was modified when + * running the rule under test. + */ + linter.defineRule("rule-tester/validate-ast", () => ({ + Program(node) { + beforeAST = cloneDeeplyExcludesParent(node); + }, + "Program:exit"(node) { + afterAST = node; + } + })); + + if (typeof config.parser === "string") { + assert(path.isAbsolute(config.parser), "Parsers provided as strings to RuleTester must be absolute paths"); + } else { + config.parser = espreePath; + } + + linter.defineParser(config.parser, wrapParser(require(config.parser))); + + if (schema) { + ajv.validateSchema(schema); + + if (ajv.errors) { + const errors = ajv.errors.map(error => { + const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath; + + return `\t${field}: ${error.message}`; + }).join("\n"); + + throw new Error([`Schema for rule ${ruleName} is invalid:`, errors]); + } + + /* + * `ajv.validateSchema` checks for errors in the structure of the schema (by comparing the schema against a "meta-schema"), + * and it reports those errors individually. However, there are other types of schema errors that only occur when compiling + * the schema (e.g. using invalid defaults in a schema), and only one of these errors can be reported at a time. As a result, + * the schema is compiled here separately from checking for `validateSchema` errors. + */ + try { + ajv.compile(schema); + } catch (err) { + throw new Error(`Schema for rule ${ruleName} is invalid: ${err.message}`); + } + } + + validate(config, "rule-tester", id => (id === ruleName ? rule : null)); + + // Verify the code. + const { getComments } = SourceCode.prototype; + let messages; + + try { + SourceCode.prototype.getComments = getCommentsDeprecation; + messages = linter.verify(code, config, filename); + } finally { + SourceCode.prototype.getComments = getComments; + } + + const fatalErrorMessage = messages.find(m => m.fatal); + + assert(!fatalErrorMessage, `A fatal parsing error occurred: ${fatalErrorMessage && fatalErrorMessage.message}`); + + // Verify if autofix makes a syntax error or not. + if (messages.some(m => m.fix)) { + output = SourceCodeFixer.applyFixes(code, messages).output; + const errorMessageInFix = linter.verify(output, config, filename).find(m => m.fatal); + + assert(!errorMessageInFix, [ + "A fatal parsing error occurred in autofix.", + `Error: ${errorMessageInFix && errorMessageInFix.message}`, + "Autofix output:", + output + ].join("\n")); + } else { + output = code; + } + + return { + messages, + output, + beforeAST, + afterAST: cloneDeeplyExcludesParent(afterAST) + }; + } + + /** + * Check if the AST was changed + * @param {ASTNode} beforeAST AST node before running + * @param {ASTNode} afterAST AST node after running + * @returns {void} + * @private + */ + function assertASTDidntChange(beforeAST, afterAST) { + if (!equal(beforeAST, afterAST)) { + assert.fail("Rule should not modify AST."); + } + } + + /** + * Check if the template is valid or not + * all valid cases go through this + * @param {string|Object} item Item to run the rule against + * @returns {void} + * @private + */ + function testValidTemplate(item) { + const code = typeof item === "object" ? item.code : item; + + assert.ok(typeof code === "string", "Test case must specify a string value for 'code'"); + if (item.name) { + assert.ok(typeof item.name === "string", "Optional test case property 'name' must be a string"); + } + + const result = runRuleForItem(item); + const messages = result.messages; + + assert.strictEqual(messages.length, 0, util.format("Should have no errors but had %d: %s", + messages.length, + util.inspect(messages))); + + assertASTDidntChange(result.beforeAST, result.afterAST); + } + + /** + * Asserts that the message matches its expected value. If the expected + * value is a regular expression, it is checked against the actual + * value. + * @param {string} actual Actual value + * @param {string|RegExp} expected Expected value + * @returns {void} + * @private + */ + function assertMessageMatches(actual, expected) { + if (expected instanceof RegExp) { + + // assert.js doesn't have a built-in RegExp match function + assert.ok( + expected.test(actual), + `Expected '${actual}' to match ${expected}` + ); + } else { + assert.strictEqual(actual, expected); + } + } + + /** + * Check if the template is invalid or not + * all invalid cases go through this. + * @param {string|Object} item Item to run the rule against + * @returns {void} + * @private + */ + function testInvalidTemplate(item) { + assert.ok(typeof item.code === "string", "Test case must specify a string value for 'code'"); + if (item.name) { + assert.ok(typeof item.name === "string", "Optional test case property 'name' must be a string"); + } + assert.ok(item.errors || item.errors === 0, + `Did not specify errors for an invalid test of ${ruleName}`); + + if (Array.isArray(item.errors) && item.errors.length === 0) { + assert.fail("Invalid cases must have at least one error"); + } + + const ruleHasMetaMessages = hasOwnProperty(rule, "meta") && hasOwnProperty(rule.meta, "messages"); + const friendlyIDList = ruleHasMetaMessages ? `[${Object.keys(rule.meta.messages).map(key => `'${key}'`).join(", ")}]` : null; + + const result = runRuleForItem(item); + const messages = result.messages; + + if (typeof item.errors === "number") { + + if (item.errors === 0) { + assert.fail("Invalid cases must have 'error' value greater than 0"); + } + + assert.strictEqual(messages.length, item.errors, util.format("Should have %d error%s but had %d: %s", + item.errors, + item.errors === 1 ? "" : "s", + messages.length, + util.inspect(messages))); + } else { + assert.strictEqual( + messages.length, item.errors.length, util.format( + "Should have %d error%s but had %d: %s", + item.errors.length, + item.errors.length === 1 ? "" : "s", + messages.length, + util.inspect(messages) + ) + ); + + const hasMessageOfThisRule = messages.some(m => m.ruleId === ruleName); + + for (let i = 0, l = item.errors.length; i < l; i++) { + const error = item.errors[i]; + const message = messages[i]; + + assert(hasMessageOfThisRule, "Error rule name should be the same as the name of the rule being tested"); + + if (typeof error === "string" || error instanceof RegExp) { + + // Just an error message. + assertMessageMatches(message.message, error); + } else if (typeof error === "object" && error !== null) { + + /* + * Error object. + * This may have a message, messageId, data, node type, line, and/or + * column. + */ + + Object.keys(error).forEach(propertyName => { + assert.ok( + errorObjectParameters.has(propertyName), + `Invalid error property name '${propertyName}'. Expected one of ${friendlyErrorObjectParameterList}.` + ); + }); + + if (hasOwnProperty(error, "message")) { + assert.ok(!hasOwnProperty(error, "messageId"), "Error should not specify both 'message' and a 'messageId'."); + assert.ok(!hasOwnProperty(error, "data"), "Error should not specify both 'data' and 'message'."); + assertMessageMatches(message.message, error.message); + } else if (hasOwnProperty(error, "messageId")) { + assert.ok( + ruleHasMetaMessages, + "Error can not use 'messageId' if rule under test doesn't define 'meta.messages'." + ); + if (!hasOwnProperty(rule.meta.messages, error.messageId)) { + assert(false, `Invalid messageId '${error.messageId}'. Expected one of ${friendlyIDList}.`); + } + assert.strictEqual( + message.messageId, + error.messageId, + `messageId '${message.messageId}' does not match expected messageId '${error.messageId}'.` + ); + if (hasOwnProperty(error, "data")) { + + /* + * if data was provided, then directly compare the returned message to a synthetic + * interpolated message using the same message ID and data provided in the test. + * See https://github.com/eslint/eslint/issues/9890 for context. + */ + const unformattedOriginalMessage = rule.meta.messages[error.messageId]; + const rehydratedMessage = interpolate(unformattedOriginalMessage, error.data); + + assert.strictEqual( + message.message, + rehydratedMessage, + `Hydrated message "${rehydratedMessage}" does not match "${message.message}"` + ); + } + } + + assert.ok( + hasOwnProperty(error, "data") ? hasOwnProperty(error, "messageId") : true, + "Error must specify 'messageId' if 'data' is used." + ); + + if (error.type) { + assert.strictEqual(message.nodeType, error.type, `Error type should be ${error.type}, found ${message.nodeType}`); + } + + if (hasOwnProperty(error, "line")) { + assert.strictEqual(message.line, error.line, `Error line should be ${error.line}`); + } + + if (hasOwnProperty(error, "column")) { + assert.strictEqual(message.column, error.column, `Error column should be ${error.column}`); + } + + if (hasOwnProperty(error, "endLine")) { + assert.strictEqual(message.endLine, error.endLine, `Error endLine should be ${error.endLine}`); + } + + if (hasOwnProperty(error, "endColumn")) { + assert.strictEqual(message.endColumn, error.endColumn, `Error endColumn should be ${error.endColumn}`); + } + + if (hasOwnProperty(error, "suggestions")) { + + // Support asserting there are no suggestions + if (!error.suggestions || (Array.isArray(error.suggestions) && error.suggestions.length === 0)) { + if (Array.isArray(message.suggestions) && message.suggestions.length > 0) { + assert.fail(`Error should have no suggestions on error with message: "${message.message}"`); + } + } else { + assert.strictEqual(Array.isArray(message.suggestions), true, `Error should have an array of suggestions. Instead received "${message.suggestions}" on error with message: "${message.message}"`); + assert.strictEqual(message.suggestions.length, error.suggestions.length, `Error should have ${error.suggestions.length} suggestions. Instead found ${message.suggestions.length} suggestions`); + + error.suggestions.forEach((expectedSuggestion, index) => { + assert.ok( + typeof expectedSuggestion === "object" && expectedSuggestion !== null, + "Test suggestion in 'suggestions' array must be an object." + ); + Object.keys(expectedSuggestion).forEach(propertyName => { + assert.ok( + suggestionObjectParameters.has(propertyName), + `Invalid suggestion property name '${propertyName}'. Expected one of ${friendlySuggestionObjectParameterList}.` + ); + }); + + const actualSuggestion = message.suggestions[index]; + const suggestionPrefix = `Error Suggestion at index ${index} :`; + + if (hasOwnProperty(expectedSuggestion, "desc")) { + assert.ok( + !hasOwnProperty(expectedSuggestion, "data"), + `${suggestionPrefix} Test should not specify both 'desc' and 'data'.` + ); + assert.strictEqual( + actualSuggestion.desc, + expectedSuggestion.desc, + `${suggestionPrefix} desc should be "${expectedSuggestion.desc}" but got "${actualSuggestion.desc}" instead.` + ); + } + + if (hasOwnProperty(expectedSuggestion, "messageId")) { + assert.ok( + ruleHasMetaMessages, + `${suggestionPrefix} Test can not use 'messageId' if rule under test doesn't define 'meta.messages'.` + ); + assert.ok( + hasOwnProperty(rule.meta.messages, expectedSuggestion.messageId), + `${suggestionPrefix} Test has invalid messageId '${expectedSuggestion.messageId}', the rule under test allows only one of ${friendlyIDList}.` + ); + assert.strictEqual( + actualSuggestion.messageId, + expectedSuggestion.messageId, + `${suggestionPrefix} messageId should be '${expectedSuggestion.messageId}' but got '${actualSuggestion.messageId}' instead.` + ); + if (hasOwnProperty(expectedSuggestion, "data")) { + const unformattedMetaMessage = rule.meta.messages[expectedSuggestion.messageId]; + const rehydratedDesc = interpolate(unformattedMetaMessage, expectedSuggestion.data); + + assert.strictEqual( + actualSuggestion.desc, + rehydratedDesc, + `${suggestionPrefix} Hydrated test desc "${rehydratedDesc}" does not match received desc "${actualSuggestion.desc}".` + ); + } + } else { + assert.ok( + !hasOwnProperty(expectedSuggestion, "data"), + `${suggestionPrefix} Test must specify 'messageId' if 'data' is used.` + ); + } + + if (hasOwnProperty(expectedSuggestion, "output")) { + const codeWithAppliedSuggestion = SourceCodeFixer.applyFixes(item.code, [actualSuggestion]).output; + + assert.strictEqual(codeWithAppliedSuggestion, expectedSuggestion.output, `Expected the applied suggestion fix to match the test suggestion output for suggestion at index: ${index} on error with message: "${message.message}"`); + } + }); + } + } + } else { + + // Message was an unexpected type + assert.fail(`Error should be a string, object, or RegExp, but found (${util.inspect(message)})`); + } + } + } + + if (hasOwnProperty(item, "output")) { + if (item.output === null) { + assert.strictEqual( + result.output, + item.code, + "Expected no autofixes to be suggested" + ); + } else { + assert.strictEqual(result.output, item.output, "Output is incorrect."); + } + } else { + assert.strictEqual( + result.output, + item.code, + "The rule fixed the code. Please add 'output' property." + ); + } + + assertASTDidntChange(result.beforeAST, result.afterAST); + } + + /* + * This creates a mocha test suite and pipes all supplied info through + * one of the templates above. + */ + this.constructor.describe(ruleName, () => { + this.constructor.describe("valid", () => { + test.valid.forEach(valid => { + this.constructor[valid.only ? "itOnly" : "it"]( + sanitize(typeof valid === "object" ? valid.name || valid.code : valid), + () => { + testValidTemplate(valid); + } + ); + }); + }); + + this.constructor.describe("invalid", () => { + test.invalid.forEach(invalid => { + this.constructor[invalid.only ? "itOnly" : "it"]( + sanitize(invalid.name || invalid.code), + () => { + testInvalidTemplate(invalid); + } + ); + }); + }); + }); + } +} + +RuleTester[DESCRIBE] = RuleTester[IT] = RuleTester[IT_ONLY] = null; + +module.exports = RuleTester; diff --git a/node_modules/eslint/lib/rules/accessor-pairs.js b/node_modules/eslint/lib/rules/accessor-pairs.js new file mode 100644 index 0000000..112d0dd --- /dev/null +++ b/node_modules/eslint/lib/rules/accessor-pairs.js @@ -0,0 +1,354 @@ +/** + * @fileoverview Rule to enforce getter and setter pairs in objects and classes. + * @author Gyandeep Singh + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * Property name if it can be computed statically, otherwise the list of the tokens of the key node. + * @typedef {string|Token[]} Key + */ + +/** + * Accessor nodes with the same key. + * @typedef {Object} AccessorData + * @property {Key} key Accessor's key + * @property {ASTNode[]} getters List of getter nodes. + * @property {ASTNode[]} setters List of setter nodes. + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not the given lists represent the equal tokens in the same order. + * Tokens are compared by their properties, not by instance. + * @param {Token[]} left First list of tokens. + * @param {Token[]} right Second list of tokens. + * @returns {boolean} `true` if the lists have same tokens. + */ +function areEqualTokenLists(left, right) { + if (left.length !== right.length) { + return false; + } + + for (let i = 0; i < left.length; i++) { + const leftToken = left[i], + rightToken = right[i]; + + if (leftToken.type !== rightToken.type || leftToken.value !== rightToken.value) { + return false; + } + } + + return true; +} + +/** + * Checks whether or not the given keys are equal. + * @param {Key} left First key. + * @param {Key} right Second key. + * @returns {boolean} `true` if the keys are equal. + */ +function areEqualKeys(left, right) { + if (typeof left === "string" && typeof right === "string") { + + // Statically computed names. + return left === right; + } + if (Array.isArray(left) && Array.isArray(right)) { + + // Token lists. + return areEqualTokenLists(left, right); + } + + return false; +} + +/** + * Checks whether or not a given node is of an accessor kind ('get' or 'set'). + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is of an accessor kind. + */ +function isAccessorKind(node) { + return node.kind === "get" || node.kind === "set"; +} + +/** + * Checks whether or not a given node is an argument of a specified method call. + * @param {ASTNode} node A node to check. + * @param {number} index An expected index of the node in arguments. + * @param {string} object An expected name of the object of the method. + * @param {string} property An expected name of the method. + * @returns {boolean} `true` if the node is an argument of the specified method call. + */ +function isArgumentOfMethodCall(node, index, object, property) { + const parent = node.parent; + + return ( + parent.type === "CallExpression" && + astUtils.isSpecificMemberAccess(parent.callee, object, property) && + parent.arguments[index] === node + ); +} + +/** + * Checks whether or not a given node is a property descriptor. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is a property descriptor. + */ +function isPropertyDescriptor(node) { + + // Object.defineProperty(obj, "foo", {set: ...}) + if (isArgumentOfMethodCall(node, 2, "Object", "defineProperty") || + isArgumentOfMethodCall(node, 2, "Reflect", "defineProperty") + ) { + return true; + } + + /* + * Object.defineProperties(obj, {foo: {set: ...}}) + * Object.create(proto, {foo: {set: ...}}) + */ + const grandparent = node.parent.parent; + + return grandparent.type === "ObjectExpression" && ( + isArgumentOfMethodCall(grandparent, 1, "Object", "create") || + isArgumentOfMethodCall(grandparent, 1, "Object", "defineProperties") + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce getter and setter pairs in objects and classes", + recommended: false, + url: "https://eslint.org/docs/rules/accessor-pairs" + }, + + schema: [{ + type: "object", + properties: { + getWithoutSet: { + type: "boolean", + default: false + }, + setWithoutGet: { + type: "boolean", + default: true + }, + enforceForClassMembers: { + type: "boolean", + default: true + } + }, + additionalProperties: false + }], + + messages: { + missingGetterInPropertyDescriptor: "Getter is not present in property descriptor.", + missingSetterInPropertyDescriptor: "Setter is not present in property descriptor.", + missingGetterInObjectLiteral: "Getter is not present for {{ name }}.", + missingSetterInObjectLiteral: "Setter is not present for {{ name }}.", + missingGetterInClass: "Getter is not present for class {{ name }}.", + missingSetterInClass: "Setter is not present for class {{ name }}." + } + }, + create(context) { + const config = context.options[0] || {}; + const checkGetWithoutSet = config.getWithoutSet === true; + const checkSetWithoutGet = config.setWithoutGet !== false; + const enforceForClassMembers = config.enforceForClassMembers !== false; + const sourceCode = context.getSourceCode(); + + /** + * Reports the given node. + * @param {ASTNode} node The node to report. + * @param {string} messageKind "missingGetter" or "missingSetter". + * @returns {void} + * @private + */ + function report(node, messageKind) { + if (node.type === "Property") { + context.report({ + node, + messageId: `${messageKind}InObjectLiteral`, + loc: astUtils.getFunctionHeadLoc(node.value, sourceCode), + data: { name: astUtils.getFunctionNameWithKind(node.value) } + }); + } else if (node.type === "MethodDefinition") { + context.report({ + node, + messageId: `${messageKind}InClass`, + loc: astUtils.getFunctionHeadLoc(node.value, sourceCode), + data: { name: astUtils.getFunctionNameWithKind(node.value) } + }); + } else { + context.report({ + node, + messageId: `${messageKind}InPropertyDescriptor` + }); + } + } + + /** + * Reports each of the nodes in the given list using the same messageId. + * @param {ASTNode[]} nodes Nodes to report. + * @param {string} messageKind "missingGetter" or "missingSetter". + * @returns {void} + * @private + */ + function reportList(nodes, messageKind) { + for (const node of nodes) { + report(node, messageKind); + } + } + + /** + * Creates a new `AccessorData` object for the given getter or setter node. + * @param {ASTNode} node A getter or setter node. + * @returns {AccessorData} New `AccessorData` object that contains the given node. + * @private + */ + function createAccessorData(node) { + const name = astUtils.getStaticPropertyName(node); + const key = (name !== null) ? name : sourceCode.getTokens(node.key); + + return { + key, + getters: node.kind === "get" ? [node] : [], + setters: node.kind === "set" ? [node] : [] + }; + } + + /** + * Merges the given `AccessorData` object into the given accessors list. + * @param {AccessorData[]} accessors The list to merge into. + * @param {AccessorData} accessorData The object to merge. + * @returns {AccessorData[]} The same instance with the merged object. + * @private + */ + function mergeAccessorData(accessors, accessorData) { + const equalKeyElement = accessors.find(a => areEqualKeys(a.key, accessorData.key)); + + if (equalKeyElement) { + equalKeyElement.getters.push(...accessorData.getters); + equalKeyElement.setters.push(...accessorData.setters); + } else { + accessors.push(accessorData); + } + + return accessors; + } + + /** + * Checks accessor pairs in the given list of nodes. + * @param {ASTNode[]} nodes The list to check. + * @returns {void} + * @private + */ + function checkList(nodes) { + const accessors = nodes + .filter(isAccessorKind) + .map(createAccessorData) + .reduce(mergeAccessorData, []); + + for (const { getters, setters } of accessors) { + if (checkSetWithoutGet && setters.length && !getters.length) { + reportList(setters, "missingGetter"); + } + if (checkGetWithoutSet && getters.length && !setters.length) { + reportList(getters, "missingSetter"); + } + } + } + + /** + * Checks accessor pairs in an object literal. + * @param {ASTNode} node `ObjectExpression` node to check. + * @returns {void} + * @private + */ + function checkObjectLiteral(node) { + checkList(node.properties.filter(p => p.type === "Property")); + } + + /** + * Checks accessor pairs in a property descriptor. + * @param {ASTNode} node Property descriptor `ObjectExpression` node to check. + * @returns {void} + * @private + */ + function checkPropertyDescriptor(node) { + const namesToCheck = new Set(node.properties + .filter(p => p.type === "Property" && p.kind === "init" && !p.computed) + .map(({ key }) => key.name)); + + const hasGetter = namesToCheck.has("get"); + const hasSetter = namesToCheck.has("set"); + + if (checkSetWithoutGet && hasSetter && !hasGetter) { + report(node, "missingGetter"); + } + if (checkGetWithoutSet && hasGetter && !hasSetter) { + report(node, "missingSetter"); + } + } + + /** + * Checks the given object expression as an object literal and as a possible property descriptor. + * @param {ASTNode} node `ObjectExpression` node to check. + * @returns {void} + * @private + */ + function checkObjectExpression(node) { + checkObjectLiteral(node); + if (isPropertyDescriptor(node)) { + checkPropertyDescriptor(node); + } + } + + /** + * Checks the given class body. + * @param {ASTNode} node `ClassBody` node to check. + * @returns {void} + * @private + */ + function checkClassBody(node) { + const methodDefinitions = node.body.filter(m => m.type === "MethodDefinition"); + + checkList(methodDefinitions.filter(m => m.static)); + checkList(methodDefinitions.filter(m => !m.static)); + } + + const listeners = {}; + + if (checkSetWithoutGet || checkGetWithoutSet) { + listeners.ObjectExpression = checkObjectExpression; + if (enforceForClassMembers) { + listeners.ClassBody = checkClassBody; + } + } + + return listeners; + } +}; diff --git a/node_modules/eslint/lib/rules/array-bracket-newline.js b/node_modules/eslint/lib/rules/array-bracket-newline.js new file mode 100644 index 0000000..deeae81 --- /dev/null +++ b/node_modules/eslint/lib/rules/array-bracket-newline.js @@ -0,0 +1,258 @@ +/** + * @fileoverview Rule to enforce linebreaks after open and before close array brackets + * @author Jan Peer Stöcklmair + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce linebreaks after opening and before closing array brackets", + recommended: false, + url: "https://eslint.org/docs/rules/array-bracket-newline" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["always", "never", "consistent"] + }, + { + type: "object", + properties: { + multiline: { + type: "boolean" + }, + minItems: { + type: ["integer", "null"], + minimum: 0 + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + unexpectedOpeningLinebreak: "There should be no linebreak after '['.", + unexpectedClosingLinebreak: "There should be no linebreak before ']'.", + missingOpeningLinebreak: "A linebreak is required after '['.", + missingClosingLinebreak: "A linebreak is required before ']'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + + //---------------------------------------------------------------------- + // Helpers + //---------------------------------------------------------------------- + + /** + * Normalizes a given option value. + * @param {string|Object|undefined} option An option value to parse. + * @returns {{multiline: boolean, minItems: number}} Normalized option object. + */ + function normalizeOptionValue(option) { + let consistent = false; + let multiline = false; + let minItems = 0; + + if (option) { + if (option === "consistent") { + consistent = true; + minItems = Number.POSITIVE_INFINITY; + } else if (option === "always" || option.minItems === 0) { + minItems = 0; + } else if (option === "never") { + minItems = Number.POSITIVE_INFINITY; + } else { + multiline = Boolean(option.multiline); + minItems = option.minItems || Number.POSITIVE_INFINITY; + } + } else { + consistent = false; + multiline = true; + minItems = Number.POSITIVE_INFINITY; + } + + return { consistent, multiline, minItems }; + } + + /** + * Normalizes a given option value. + * @param {string|Object|undefined} options An option value to parse. + * @returns {{ArrayExpression: {multiline: boolean, minItems: number}, ArrayPattern: {multiline: boolean, minItems: number}}} Normalized option object. + */ + function normalizeOptions(options) { + const value = normalizeOptionValue(options); + + return { ArrayExpression: value, ArrayPattern: value }; + } + + /** + * Reports that there shouldn't be a linebreak after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportNoBeginningLinebreak(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "unexpectedOpeningLinebreak", + fix(fixer) { + const nextToken = sourceCode.getTokenAfter(token, { includeComments: true }); + + if (astUtils.isCommentToken(nextToken)) { + return null; + } + + return fixer.removeRange([token.range[1], nextToken.range[0]]); + } + }); + } + + /** + * Reports that there shouldn't be a linebreak before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportNoEndingLinebreak(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "unexpectedClosingLinebreak", + fix(fixer) { + const previousToken = sourceCode.getTokenBefore(token, { includeComments: true }); + + if (astUtils.isCommentToken(previousToken)) { + return null; + } + + return fixer.removeRange([previousToken.range[1], token.range[0]]); + } + }); + } + + /** + * Reports that there should be a linebreak after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredBeginningLinebreak(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "missingOpeningLinebreak", + fix(fixer) { + return fixer.insertTextAfter(token, "\n"); + } + }); + } + + /** + * Reports that there should be a linebreak before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredEndingLinebreak(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "missingClosingLinebreak", + fix(fixer) { + return fixer.insertTextBefore(token, "\n"); + } + }); + } + + /** + * Reports a given node if it violated this rule. + * @param {ASTNode} node A node to check. This is an ArrayExpression node or an ArrayPattern node. + * @returns {void} + */ + function check(node) { + const elements = node.elements; + const normalizedOptions = normalizeOptions(context.options[0]); + const options = normalizedOptions[node.type]; + const openBracket = sourceCode.getFirstToken(node); + const closeBracket = sourceCode.getLastToken(node); + const firstIncComment = sourceCode.getTokenAfter(openBracket, { includeComments: true }); + const lastIncComment = sourceCode.getTokenBefore(closeBracket, { includeComments: true }); + const first = sourceCode.getTokenAfter(openBracket); + const last = sourceCode.getTokenBefore(closeBracket); + + const needsLinebreaks = ( + elements.length >= options.minItems || + ( + options.multiline && + elements.length > 0 && + firstIncComment.loc.start.line !== lastIncComment.loc.end.line + ) || + ( + elements.length === 0 && + firstIncComment.type === "Block" && + firstIncComment.loc.start.line !== lastIncComment.loc.end.line && + firstIncComment === lastIncComment + ) || + ( + options.consistent && + openBracket.loc.end.line !== first.loc.start.line + ) + ); + + /* + * Use tokens or comments to check multiline or not. + * But use only tokens to check whether linebreaks are needed. + * This allows: + * var arr = [ // eslint-disable-line foo + * 'a' + * ] + */ + + if (needsLinebreaks) { + if (astUtils.isTokenOnSameLine(openBracket, first)) { + reportRequiredBeginningLinebreak(node, openBracket); + } + if (astUtils.isTokenOnSameLine(last, closeBracket)) { + reportRequiredEndingLinebreak(node, closeBracket); + } + } else { + if (!astUtils.isTokenOnSameLine(openBracket, first)) { + reportNoBeginningLinebreak(node, openBracket); + } + if (!astUtils.isTokenOnSameLine(last, closeBracket)) { + reportNoEndingLinebreak(node, closeBracket); + } + } + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + ArrayPattern: check, + ArrayExpression: check + }; + } +}; diff --git a/node_modules/eslint/lib/rules/array-bracket-spacing.js b/node_modules/eslint/lib/rules/array-bracket-spacing.js new file mode 100644 index 0000000..5e7cea9 --- /dev/null +++ b/node_modules/eslint/lib/rules/array-bracket-spacing.js @@ -0,0 +1,241 @@ +/** + * @fileoverview Disallows or enforces spaces inside of array brackets. + * @author Jamund Ferguson + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing inside array brackets", + recommended: false, + url: "https://eslint.org/docs/rules/array-bracket-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + singleValue: { + type: "boolean" + }, + objectsInArrays: { + type: "boolean" + }, + arraysInArrays: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedSpaceAfter: "There should be no space after '{{tokenValue}}'.", + unexpectedSpaceBefore: "There should be no space before '{{tokenValue}}'.", + missingSpaceAfter: "A space is required after '{{tokenValue}}'.", + missingSpaceBefore: "A space is required before '{{tokenValue}}'." + } + }, + create(context) { + const spaced = context.options[0] === "always", + sourceCode = context.getSourceCode(); + + /** + * Determines whether an option is set, relative to the spacing option. + * If spaced is "always", then check whether option is set to false. + * If spaced is "never", then check whether option is set to true. + * @param {Object} option The option to exclude. + * @returns {boolean} Whether or not the property is excluded. + */ + function isOptionSet(option) { + return context.options[1] ? context.options[1][option] === !spaced : false; + } + + const options = { + spaced, + singleElementException: isOptionSet("singleValue"), + objectsInArraysException: isOptionSet("objectsInArrays"), + arraysInArraysException: isOptionSet("arraysInArrays") + }; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Reports that there shouldn't be a space after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportNoBeginningSpace(node, token) { + const nextToken = sourceCode.getTokenAfter(token); + + context.report({ + node, + loc: { start: token.loc.end, end: nextToken.loc.start }, + messageId: "unexpectedSpaceAfter", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.removeRange([token.range[1], nextToken.range[0]]); + } + }); + } + + /** + * Reports that there shouldn't be a space before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportNoEndingSpace(node, token) { + const previousToken = sourceCode.getTokenBefore(token); + + context.report({ + node, + loc: { start: previousToken.loc.end, end: token.loc.start }, + messageId: "unexpectedSpaceBefore", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.removeRange([previousToken.range[1], token.range[0]]); + } + }); + } + + /** + * Reports that there should be a space after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredBeginningSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "missingSpaceAfter", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.insertTextAfter(token, " "); + } + }); + } + + /** + * Reports that there should be a space before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredEndingSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "missingSpaceBefore", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.insertTextBefore(token, " "); + } + }); + } + + /** + * Determines if a node is an object type + * @param {ASTNode} node The node to check. + * @returns {boolean} Whether or not the node is an object type. + */ + function isObjectType(node) { + return node && (node.type === "ObjectExpression" || node.type === "ObjectPattern"); + } + + /** + * Determines if a node is an array type + * @param {ASTNode} node The node to check. + * @returns {boolean} Whether or not the node is an array type. + */ + function isArrayType(node) { + return node && (node.type === "ArrayExpression" || node.type === "ArrayPattern"); + } + + /** + * Validates the spacing around array brackets + * @param {ASTNode} node The node we're checking for spacing + * @returns {void} + */ + function validateArraySpacing(node) { + if (options.spaced && node.elements.length === 0) { + return; + } + + const first = sourceCode.getFirstToken(node), + second = sourceCode.getFirstToken(node, 1), + last = node.typeAnnotation + ? sourceCode.getTokenBefore(node.typeAnnotation) + : sourceCode.getLastToken(node), + penultimate = sourceCode.getTokenBefore(last), + firstElement = node.elements[0], + lastElement = node.elements[node.elements.length - 1]; + + const openingBracketMustBeSpaced = + options.objectsInArraysException && isObjectType(firstElement) || + options.arraysInArraysException && isArrayType(firstElement) || + options.singleElementException && node.elements.length === 1 + ? !options.spaced : options.spaced; + + const closingBracketMustBeSpaced = + options.objectsInArraysException && isObjectType(lastElement) || + options.arraysInArraysException && isArrayType(lastElement) || + options.singleElementException && node.elements.length === 1 + ? !options.spaced : options.spaced; + + if (astUtils.isTokenOnSameLine(first, second)) { + if (openingBracketMustBeSpaced && !sourceCode.isSpaceBetweenTokens(first, second)) { + reportRequiredBeginningSpace(node, first); + } + if (!openingBracketMustBeSpaced && sourceCode.isSpaceBetweenTokens(first, second)) { + reportNoBeginningSpace(node, first); + } + } + + if (first !== penultimate && astUtils.isTokenOnSameLine(penultimate, last)) { + if (closingBracketMustBeSpaced && !sourceCode.isSpaceBetweenTokens(penultimate, last)) { + reportRequiredEndingSpace(node, last); + } + if (!closingBracketMustBeSpaced && sourceCode.isSpaceBetweenTokens(penultimate, last)) { + reportNoEndingSpace(node, last); + } + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + ArrayPattern: validateArraySpacing, + ArrayExpression: validateArraySpacing + }; + } +}; diff --git a/node_modules/eslint/lib/rules/array-callback-return.js b/node_modules/eslint/lib/rules/array-callback-return.js new file mode 100644 index 0000000..bac25b1 --- /dev/null +++ b/node_modules/eslint/lib/rules/array-callback-return.js @@ -0,0 +1,296 @@ +/** + * @fileoverview Rule to enforce return statements in callbacks of array's methods + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const TARGET_NODE_TYPE = /^(?:Arrow)?FunctionExpression$/u; +const TARGET_METHODS = /^(?:every|filter|find(?:Last)?(?:Index)?|flatMap|forEach|map|reduce(?:Right)?|some|sort)$/u; + +/** + * Checks a given code path segment is reachable. + * @param {CodePathSegment} segment A segment to check. + * @returns {boolean} `true` if the segment is reachable. + */ +function isReachable(segment) { + return segment.reachable; +} + +/** + * Checks a given node is a member access which has the specified name's + * property. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is a member access which has + * the specified name's property. The node may be a `(Chain|Member)Expression` node. + */ +function isTargetMethod(node) { + return astUtils.isSpecificMemberAccess(node, null, TARGET_METHODS); +} + +/** + * Returns a human-legible description of an array method + * @param {string} arrayMethodName A method name to fully qualify + * @returns {string} the method name prefixed with `Array.` if it is a class method, + * or else `Array.prototype.` if it is an instance method. + */ +function fullMethodName(arrayMethodName) { + if (["from", "of", "isArray"].includes(arrayMethodName)) { + return "Array.".concat(arrayMethodName); + } + return "Array.prototype.".concat(arrayMethodName); +} + +/** + * Checks whether or not a given node is a function expression which is the + * callback of an array method, returning the method name. + * @param {ASTNode} node A node to check. This is one of + * FunctionExpression or ArrowFunctionExpression. + * @returns {string} The method name if the node is a callback method, + * null otherwise. + */ +function getArrayMethodName(node) { + let currentNode = node; + + while (currentNode) { + const parent = currentNode.parent; + + switch (parent.type) { + + /* + * Looks up the destination. e.g., + * foo.every(nativeFoo || function foo() { ... }); + */ + case "LogicalExpression": + case "ConditionalExpression": + case "ChainExpression": + currentNode = parent; + break; + + /* + * If the upper function is IIFE, checks the destination of the return value. + * e.g. + * foo.every((function() { + * // setup... + * return function callback() { ... }; + * })()); + */ + case "ReturnStatement": { + const func = astUtils.getUpperFunction(parent); + + if (func === null || !astUtils.isCallee(func)) { + return null; + } + currentNode = func.parent; + break; + } + + /* + * e.g. + * Array.from([], function() {}); + * list.every(function() {}); + */ + case "CallExpression": + if (astUtils.isArrayFromMethod(parent.callee)) { + if ( + parent.arguments.length >= 2 && + parent.arguments[1] === currentNode + ) { + return "from"; + } + } + if (isTargetMethod(parent.callee)) { + if ( + parent.arguments.length >= 1 && + parent.arguments[0] === currentNode + ) { + return astUtils.getStaticPropertyName(parent.callee); + } + } + return null; + + // Otherwise this node is not target. + default: + return null; + } + } + + /* c8 ignore next */ + return null; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Enforce `return` statements in callbacks of array methods", + recommended: false, + url: "https://eslint.org/docs/rules/array-callback-return" + }, + + schema: [ + { + type: "object", + properties: { + allowImplicit: { + type: "boolean", + default: false + }, + checkForEach: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + expectedAtEnd: "{{arrayMethodName}}() expects a value to be returned at the end of {{name}}.", + expectedInside: "{{arrayMethodName}}() expects a return value from {{name}}.", + expectedReturnValue: "{{arrayMethodName}}() expects a return value from {{name}}.", + expectedNoReturnValue: "{{arrayMethodName}}() expects no useless return value from {{name}}." + } + }, + + create(context) { + + const options = context.options[0] || { allowImplicit: false, checkForEach: false }; + const sourceCode = context.getSourceCode(); + + let funcInfo = { + arrayMethodName: null, + upper: null, + codePath: null, + hasReturn: false, + shouldCheck: false, + node: null + }; + + /** + * Checks whether or not the last code path segment is reachable. + * Then reports this function if the segment is reachable. + * + * If the last code path segment is reachable, there are paths which are not + * returned or thrown. + * @param {ASTNode} node A node to check. + * @returns {void} + */ + function checkLastSegment(node) { + + if (!funcInfo.shouldCheck) { + return; + } + + let messageId = null; + + if (funcInfo.arrayMethodName === "forEach") { + if (options.checkForEach && node.type === "ArrowFunctionExpression" && node.expression) { + messageId = "expectedNoReturnValue"; + } + } else { + if (node.body.type === "BlockStatement" && funcInfo.codePath.currentSegments.some(isReachable)) { + messageId = funcInfo.hasReturn ? "expectedAtEnd" : "expectedInside"; + } + } + + if (messageId) { + const name = astUtils.getFunctionNameWithKind(node); + + context.report({ + node, + loc: astUtils.getFunctionHeadLoc(node, sourceCode), + messageId, + data: { name, arrayMethodName: fullMethodName(funcInfo.arrayMethodName) } + }); + } + } + + return { + + // Stacks this function's information. + onCodePathStart(codePath, node) { + + let methodName = null; + + if (TARGET_NODE_TYPE.test(node.type)) { + methodName = getArrayMethodName(node); + } + + funcInfo = { + arrayMethodName: methodName, + upper: funcInfo, + codePath, + hasReturn: false, + shouldCheck: + methodName && + !node.async && + !node.generator, + node + }; + }, + + // Pops this function's information. + onCodePathEnd() { + funcInfo = funcInfo.upper; + }, + + // Checks the return statement is valid. + ReturnStatement(node) { + + if (!funcInfo.shouldCheck) { + return; + } + + funcInfo.hasReturn = true; + + let messageId = null; + + if (funcInfo.arrayMethodName === "forEach") { + + // if checkForEach: true, returning a value at any path inside a forEach is not allowed + if (options.checkForEach && node.argument) { + messageId = "expectedNoReturnValue"; + } + } else { + + // if allowImplicit: false, should also check node.argument + if (!options.allowImplicit && !node.argument) { + messageId = "expectedReturnValue"; + } + } + + if (messageId) { + context.report({ + node, + messageId, + data: { + name: astUtils.getFunctionNameWithKind(funcInfo.node), + arrayMethodName: fullMethodName(funcInfo.arrayMethodName) + } + }); + } + }, + + // Reports a given function if the last path is reachable. + "FunctionExpression:exit": checkLastSegment, + "ArrowFunctionExpression:exit": checkLastSegment + }; + } +}; diff --git a/node_modules/eslint/lib/rules/array-element-newline.js b/node_modules/eslint/lib/rules/array-element-newline.js new file mode 100644 index 0000000..c762755 --- /dev/null +++ b/node_modules/eslint/lib/rules/array-element-newline.js @@ -0,0 +1,301 @@ +/** + * @fileoverview Rule to enforce line breaks after each array element + * @author Jan Peer Stöcklmair + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce line breaks after each array element", + recommended: false, + url: "https://eslint.org/docs/rules/array-element-newline" + }, + + fixable: "whitespace", + + schema: { + definitions: { + basicConfig: { + oneOf: [ + { + enum: ["always", "never", "consistent"] + }, + { + type: "object", + properties: { + multiline: { + type: "boolean" + }, + minItems: { + type: ["integer", "null"], + minimum: 0 + } + }, + additionalProperties: false + } + ] + } + }, + items: [ + { + oneOf: [ + { + $ref: "#/definitions/basicConfig" + }, + { + type: "object", + properties: { + ArrayExpression: { + $ref: "#/definitions/basicConfig" + }, + ArrayPattern: { + $ref: "#/definitions/basicConfig" + } + }, + additionalProperties: false, + minProperties: 1 + } + ] + } + ] + }, + + messages: { + unexpectedLineBreak: "There should be no linebreak here.", + missingLineBreak: "There should be a linebreak after this element." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + //---------------------------------------------------------------------- + // Helpers + //---------------------------------------------------------------------- + + /** + * Normalizes a given option value. + * @param {string|Object|undefined} providedOption An option value to parse. + * @returns {{multiline: boolean, minItems: number}} Normalized option object. + */ + function normalizeOptionValue(providedOption) { + let consistent = false; + let multiline = false; + let minItems; + + const option = providedOption || "always"; + + if (!option || option === "always" || option.minItems === 0) { + minItems = 0; + } else if (option === "never") { + minItems = Number.POSITIVE_INFINITY; + } else if (option === "consistent") { + consistent = true; + minItems = Number.POSITIVE_INFINITY; + } else { + multiline = Boolean(option.multiline); + minItems = option.minItems || Number.POSITIVE_INFINITY; + } + + return { consistent, multiline, minItems }; + } + + /** + * Normalizes a given option value. + * @param {string|Object|undefined} options An option value to parse. + * @returns {{ArrayExpression: {multiline: boolean, minItems: number}, ArrayPattern: {multiline: boolean, minItems: number}}} Normalized option object. + */ + function normalizeOptions(options) { + if (options && (options.ArrayExpression || options.ArrayPattern)) { + let expressionOptions, patternOptions; + + if (options.ArrayExpression) { + expressionOptions = normalizeOptionValue(options.ArrayExpression); + } + + if (options.ArrayPattern) { + patternOptions = normalizeOptionValue(options.ArrayPattern); + } + + return { ArrayExpression: expressionOptions, ArrayPattern: patternOptions }; + } + + const value = normalizeOptionValue(options); + + return { ArrayExpression: value, ArrayPattern: value }; + } + + /** + * Reports that there shouldn't be a line break after the first token + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportNoLineBreak(token) { + const tokenBefore = sourceCode.getTokenBefore(token, { includeComments: true }); + + context.report({ + loc: { + start: tokenBefore.loc.end, + end: token.loc.start + }, + messageId: "unexpectedLineBreak", + fix(fixer) { + if (astUtils.isCommentToken(tokenBefore)) { + return null; + } + + if (!astUtils.isTokenOnSameLine(tokenBefore, token)) { + return fixer.replaceTextRange([tokenBefore.range[1], token.range[0]], " "); + } + + /* + * This will check if the comma is on the same line as the next element + * Following array: + * [ + * 1 + * , 2 + * , 3 + * ] + * + * will be fixed to: + * [ + * 1, 2, 3 + * ] + */ + const twoTokensBefore = sourceCode.getTokenBefore(tokenBefore, { includeComments: true }); + + if (astUtils.isCommentToken(twoTokensBefore)) { + return null; + } + + return fixer.replaceTextRange([twoTokensBefore.range[1], tokenBefore.range[0]], ""); + + } + }); + } + + /** + * Reports that there should be a line break after the first token + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredLineBreak(token) { + const tokenBefore = sourceCode.getTokenBefore(token, { includeComments: true }); + + context.report({ + loc: { + start: tokenBefore.loc.end, + end: token.loc.start + }, + messageId: "missingLineBreak", + fix(fixer) { + return fixer.replaceTextRange([tokenBefore.range[1], token.range[0]], "\n"); + } + }); + } + + /** + * Reports a given node if it violated this rule. + * @param {ASTNode} node A node to check. This is an ObjectExpression node or an ObjectPattern node. + * @returns {void} + */ + function check(node) { + const elements = node.elements; + const normalizedOptions = normalizeOptions(context.options[0]); + const options = normalizedOptions[node.type]; + + if (!options) { + return; + } + + let elementBreak = false; + + /* + * MULTILINE: true + * loop through every element and check + * if at least one element has linebreaks inside + * this ensures that following is not valid (due to elements are on the same line): + * + * [ + * 1, + * 2, + * 3 + * ] + */ + if (options.multiline) { + elementBreak = elements + .filter(element => element !== null) + .some(element => element.loc.start.line !== element.loc.end.line); + } + + const linebreaksCount = node.elements.map((element, i) => { + const previousElement = elements[i - 1]; + + if (i === 0 || element === null || previousElement === null) { + return false; + } + + const commaToken = sourceCode.getFirstTokenBetween(previousElement, element, astUtils.isCommaToken); + const lastTokenOfPreviousElement = sourceCode.getTokenBefore(commaToken); + const firstTokenOfCurrentElement = sourceCode.getTokenAfter(commaToken); + + return !astUtils.isTokenOnSameLine(lastTokenOfPreviousElement, firstTokenOfCurrentElement); + }).filter(isBreak => isBreak === true).length; + + const needsLinebreaks = ( + elements.length >= options.minItems || + ( + options.multiline && + elementBreak + ) || + ( + options.consistent && + linebreaksCount > 0 && + linebreaksCount < node.elements.length + ) + ); + + elements.forEach((element, i) => { + const previousElement = elements[i - 1]; + + if (i === 0 || element === null || previousElement === null) { + return; + } + + const commaToken = sourceCode.getFirstTokenBetween(previousElement, element, astUtils.isCommaToken); + const lastTokenOfPreviousElement = sourceCode.getTokenBefore(commaToken); + const firstTokenOfCurrentElement = sourceCode.getTokenAfter(commaToken); + + if (needsLinebreaks) { + if (astUtils.isTokenOnSameLine(lastTokenOfPreviousElement, firstTokenOfCurrentElement)) { + reportRequiredLineBreak(firstTokenOfCurrentElement); + } + } else { + if (!astUtils.isTokenOnSameLine(lastTokenOfPreviousElement, firstTokenOfCurrentElement)) { + reportNoLineBreak(firstTokenOfCurrentElement); + } + } + }); + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + ArrayPattern: check, + ArrayExpression: check + }; + } +}; diff --git a/node_modules/eslint/lib/rules/arrow-body-style.js b/node_modules/eslint/lib/rules/arrow-body-style.js new file mode 100644 index 0000000..8bb9e8c --- /dev/null +++ b/node_modules/eslint/lib/rules/arrow-body-style.js @@ -0,0 +1,296 @@ +/** + * @fileoverview Rule to require braces in arrow function body. + * @author Alberto Rodríguez + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require braces around arrow function bodies", + recommended: false, + url: "https://eslint.org/docs/rules/arrow-body-style" + }, + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["always", "never"] + } + ], + minItems: 0, + maxItems: 1 + }, + { + type: "array", + items: [ + { + enum: ["as-needed"] + }, + { + type: "object", + properties: { + requireReturnForObjectLiteral: { type: "boolean" } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + + fixable: "code", + + messages: { + unexpectedOtherBlock: "Unexpected block statement surrounding arrow body.", + unexpectedEmptyBlock: "Unexpected block statement surrounding arrow body; put a value of `undefined` immediately after the `=>`.", + unexpectedObjectBlock: "Unexpected block statement surrounding arrow body; parenthesize the returned value and move it immediately after the `=>`.", + unexpectedSingleBlock: "Unexpected block statement surrounding arrow body; move the returned value immediately after the `=>`.", + expectedBlock: "Expected block statement surrounding arrow body." + } + }, + + create(context) { + const options = context.options; + const always = options[0] === "always"; + const asNeeded = !options[0] || options[0] === "as-needed"; + const never = options[0] === "never"; + const requireReturnForObjectLiteral = options[1] && options[1].requireReturnForObjectLiteral; + const sourceCode = context.getSourceCode(); + let funcInfo = null; + + /** + * Checks whether the given node has ASI problem or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if it changes semantics if `;` or `}` followed by the token are removed. + */ + function hasASIProblem(token) { + return token && token.type === "Punctuator" && /^[([/`+-]/u.test(token.value); + } + + /** + * Gets the closing parenthesis by the given node. + * @param {ASTNode} node first node after an opening parenthesis. + * @returns {Token} The found closing parenthesis token. + */ + function findClosingParen(node) { + let nodeToCheck = node; + + while (!astUtils.isParenthesised(sourceCode, nodeToCheck)) { + nodeToCheck = nodeToCheck.parent; + } + return sourceCode.getTokenAfter(nodeToCheck); + } + + /** + * Check whether the node is inside of a for loop's init + * @param {ASTNode} node node is inside for loop + * @returns {boolean} `true` if the node is inside of a for loop, else `false` + */ + function isInsideForLoopInitializer(node) { + if (node && node.parent) { + if (node.parent.type === "ForStatement" && node.parent.init === node) { + return true; + } + return isInsideForLoopInitializer(node.parent); + } + return false; + } + + /** + * Determines whether a arrow function body needs braces + * @param {ASTNode} node The arrow function node. + * @returns {void} + */ + function validate(node) { + const arrowBody = node.body; + + if (arrowBody.type === "BlockStatement") { + const blockBody = arrowBody.body; + + if (blockBody.length !== 1 && !never) { + return; + } + + if (asNeeded && requireReturnForObjectLiteral && blockBody[0].type === "ReturnStatement" && + blockBody[0].argument && blockBody[0].argument.type === "ObjectExpression") { + return; + } + + if (never || asNeeded && blockBody[0].type === "ReturnStatement") { + let messageId; + + if (blockBody.length === 0) { + messageId = "unexpectedEmptyBlock"; + } else if (blockBody.length > 1) { + messageId = "unexpectedOtherBlock"; + } else if (blockBody[0].argument === null) { + messageId = "unexpectedSingleBlock"; + } else if (astUtils.isOpeningBraceToken(sourceCode.getFirstToken(blockBody[0], { skip: 1 }))) { + messageId = "unexpectedObjectBlock"; + } else { + messageId = "unexpectedSingleBlock"; + } + + context.report({ + node, + loc: arrowBody.loc, + messageId, + fix(fixer) { + const fixes = []; + + if (blockBody.length !== 1 || + blockBody[0].type !== "ReturnStatement" || + !blockBody[0].argument || + hasASIProblem(sourceCode.getTokenAfter(arrowBody)) + ) { + return fixes; + } + + const openingBrace = sourceCode.getFirstToken(arrowBody); + const closingBrace = sourceCode.getLastToken(arrowBody); + const firstValueToken = sourceCode.getFirstToken(blockBody[0], 1); + const lastValueToken = sourceCode.getLastToken(blockBody[0]); + const commentsExist = + sourceCode.commentsExistBetween(openingBrace, firstValueToken) || + sourceCode.commentsExistBetween(lastValueToken, closingBrace); + + /* + * Remove tokens around the return value. + * If comments don't exist, remove extra spaces as well. + */ + if (commentsExist) { + fixes.push( + fixer.remove(openingBrace), + fixer.remove(closingBrace), + fixer.remove(sourceCode.getTokenAfter(openingBrace)) // return keyword + ); + } else { + fixes.push( + fixer.removeRange([openingBrace.range[0], firstValueToken.range[0]]), + fixer.removeRange([lastValueToken.range[1], closingBrace.range[1]]) + ); + } + + /* + * If the first token of the return value is `{` or the return value is a sequence expression, + * enclose the return value by parentheses to avoid syntax error. + */ + if (astUtils.isOpeningBraceToken(firstValueToken) || blockBody[0].argument.type === "SequenceExpression" || (funcInfo.hasInOperator && isInsideForLoopInitializer(node))) { + if (!astUtils.isParenthesised(sourceCode, blockBody[0].argument)) { + fixes.push( + fixer.insertTextBefore(firstValueToken, "("), + fixer.insertTextAfter(lastValueToken, ")") + ); + } + } + + /* + * If the last token of the return statement is semicolon, remove it. + * Non-block arrow body is an expression, not a statement. + */ + if (astUtils.isSemicolonToken(lastValueToken)) { + fixes.push(fixer.remove(lastValueToken)); + } + + return fixes; + } + }); + } + } else { + if (always || (asNeeded && requireReturnForObjectLiteral && arrowBody.type === "ObjectExpression")) { + context.report({ + node, + loc: arrowBody.loc, + messageId: "expectedBlock", + fix(fixer) { + const fixes = []; + const arrowToken = sourceCode.getTokenBefore(arrowBody, astUtils.isArrowToken); + const [firstTokenAfterArrow, secondTokenAfterArrow] = sourceCode.getTokensAfter(arrowToken, { count: 2 }); + const lastToken = sourceCode.getLastToken(node); + + let parenthesisedObjectLiteral = null; + + if ( + astUtils.isOpeningParenToken(firstTokenAfterArrow) && + astUtils.isOpeningBraceToken(secondTokenAfterArrow) + ) { + const braceNode = sourceCode.getNodeByRangeIndex(secondTokenAfterArrow.range[0]); + + if (braceNode.type === "ObjectExpression") { + parenthesisedObjectLiteral = braceNode; + } + } + + // If the value is object literal, remove parentheses which were forced by syntax. + if (parenthesisedObjectLiteral) { + const openingParenToken = firstTokenAfterArrow; + const openingBraceToken = secondTokenAfterArrow; + + if (astUtils.isTokenOnSameLine(openingParenToken, openingBraceToken)) { + fixes.push(fixer.replaceText(openingParenToken, "{return ")); + } else { + + // Avoid ASI + fixes.push( + fixer.replaceText(openingParenToken, "{"), + fixer.insertTextBefore(openingBraceToken, "return ") + ); + } + + // Closing paren for the object doesn't have to be lastToken, e.g.: () => ({}).foo() + fixes.push(fixer.remove(findClosingParen(parenthesisedObjectLiteral))); + fixes.push(fixer.insertTextAfter(lastToken, "}")); + + } else { + fixes.push(fixer.insertTextBefore(firstTokenAfterArrow, "{return ")); + fixes.push(fixer.insertTextAfter(lastToken, "}")); + } + + return fixes; + } + }); + } + } + } + + return { + "BinaryExpression[operator='in']"() { + let info = funcInfo; + + while (info) { + info.hasInOperator = true; + info = info.upper; + } + }, + ArrowFunctionExpression() { + funcInfo = { + upper: funcInfo, + hasInOperator: false + }; + }, + "ArrowFunctionExpression:exit"(node) { + validate(node); + funcInfo = funcInfo.upper; + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/arrow-parens.js b/node_modules/eslint/lib/rules/arrow-parens.js new file mode 100644 index 0000000..05012fc --- /dev/null +++ b/node_modules/eslint/lib/rules/arrow-parens.js @@ -0,0 +1,183 @@ +/** + * @fileoverview Rule to require parens in arrow function arguments. + * @author Jxck + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines if the given arrow function has block body. + * @param {ASTNode} node `ArrowFunctionExpression` node. + * @returns {boolean} `true` if the function has block body. + */ +function hasBlockBody(node) { + return node.body.type === "BlockStatement"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require parentheses around arrow function arguments", + recommended: false, + url: "https://eslint.org/docs/rules/arrow-parens" + }, + + fixable: "code", + + schema: [ + { + enum: ["always", "as-needed"] + }, + { + type: "object", + properties: { + requireForBlockBody: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedParens: "Unexpected parentheses around single function argument.", + expectedParens: "Expected parentheses around arrow function argument.", + + unexpectedParensInline: "Unexpected parentheses around single function argument having a body with no curly braces.", + expectedParensBlock: "Expected parentheses around arrow function argument having a body with curly braces." + } + }, + + create(context) { + const asNeeded = context.options[0] === "as-needed"; + const requireForBlockBody = asNeeded && context.options[1] && context.options[1].requireForBlockBody === true; + + const sourceCode = context.getSourceCode(); + + /** + * Finds opening paren of parameters for the given arrow function, if it exists. + * It is assumed that the given arrow function has exactly one parameter. + * @param {ASTNode} node `ArrowFunctionExpression` node. + * @returns {Token|null} the opening paren, or `null` if the given arrow function doesn't have parens of parameters. + */ + function findOpeningParenOfParams(node) { + const tokenBeforeParams = sourceCode.getTokenBefore(node.params[0]); + + if ( + tokenBeforeParams && + astUtils.isOpeningParenToken(tokenBeforeParams) && + node.range[0] <= tokenBeforeParams.range[0] + ) { + return tokenBeforeParams; + } + + return null; + } + + /** + * Finds closing paren of parameters for the given arrow function. + * It is assumed that the given arrow function has parens of parameters and that it has exactly one parameter. + * @param {ASTNode} node `ArrowFunctionExpression` node. + * @returns {Token} the closing paren of parameters. + */ + function getClosingParenOfParams(node) { + return sourceCode.getTokenAfter(node.params[0], astUtils.isClosingParenToken); + } + + /** + * Determines whether the given arrow function has comments inside parens of parameters. + * It is assumed that the given arrow function has parens of parameters. + * @param {ASTNode} node `ArrowFunctionExpression` node. + * @param {Token} openingParen Opening paren of parameters. + * @returns {boolean} `true` if the function has at least one comment inside of parens of parameters. + */ + function hasCommentsInParensOfParams(node, openingParen) { + return sourceCode.commentsExistBetween(openingParen, getClosingParenOfParams(node)); + } + + /** + * Determines whether the given arrow function has unexpected tokens before opening paren of parameters, + * in which case it will be assumed that the existing parens of parameters are necessary. + * Only tokens within the range of the arrow function (tokens that are part of the arrow function) are taken into account. + * Example: (a) => b + * @param {ASTNode} node `ArrowFunctionExpression` node. + * @param {Token} openingParen Opening paren of parameters. + * @returns {boolean} `true` if the function has at least one unexpected token. + */ + function hasUnexpectedTokensBeforeOpeningParen(node, openingParen) { + const expectedCount = node.async ? 1 : 0; + + return sourceCode.getFirstToken(node, { skip: expectedCount }) !== openingParen; + } + + return { + "ArrowFunctionExpression[params.length=1]"(node) { + const shouldHaveParens = !asNeeded || requireForBlockBody && hasBlockBody(node); + const openingParen = findOpeningParenOfParams(node); + const hasParens = openingParen !== null; + const [param] = node.params; + + if (shouldHaveParens && !hasParens) { + context.report({ + node, + messageId: requireForBlockBody ? "expectedParensBlock" : "expectedParens", + loc: param.loc, + *fix(fixer) { + yield fixer.insertTextBefore(param, "("); + yield fixer.insertTextAfter(param, ")"); + } + }); + } + + if ( + !shouldHaveParens && + hasParens && + param.type === "Identifier" && + !param.typeAnnotation && + !node.returnType && + !hasCommentsInParensOfParams(node, openingParen) && + !hasUnexpectedTokensBeforeOpeningParen(node, openingParen) + ) { + context.report({ + node, + messageId: requireForBlockBody ? "unexpectedParensInline" : "unexpectedParens", + loc: param.loc, + *fix(fixer) { + const tokenBeforeOpeningParen = sourceCode.getTokenBefore(openingParen); + const closingParen = getClosingParenOfParams(node); + + if ( + tokenBeforeOpeningParen && + tokenBeforeOpeningParen.range[1] === openingParen.range[0] && + !astUtils.canTokensBeAdjacent(tokenBeforeOpeningParen, sourceCode.getFirstToken(param)) + ) { + yield fixer.insertTextBefore(openingParen, " "); + } + + // remove parens, whitespace inside parens, and possible trailing comma + yield fixer.removeRange([openingParen.range[0], param.range[0]]); + yield fixer.removeRange([param.range[1], closingParen.range[1]]); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/arrow-spacing.js b/node_modules/eslint/lib/rules/arrow-spacing.js new file mode 100644 index 0000000..2dcc175 --- /dev/null +++ b/node_modules/eslint/lib/rules/arrow-spacing.js @@ -0,0 +1,161 @@ +/** + * @fileoverview Rule to define spacing before/after arrow function's arrow. + * @author Jxck + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing before and after the arrow in arrow functions", + recommended: false, + url: "https://eslint.org/docs/rules/arrow-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + before: { + type: "boolean", + default: true + }, + after: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + expectedBefore: "Missing space before =>.", + unexpectedBefore: "Unexpected space before =>.", + + expectedAfter: "Missing space after =>.", + unexpectedAfter: "Unexpected space after =>." + } + }, + + create(context) { + + // merge rules with default + const rule = Object.assign({}, context.options[0]); + + rule.before = rule.before !== false; + rule.after = rule.after !== false; + + const sourceCode = context.getSourceCode(); + + /** + * Get tokens of arrow(`=>`) and before/after arrow. + * @param {ASTNode} node The arrow function node. + * @returns {Object} Tokens of arrow and before/after arrow. + */ + function getTokens(node) { + const arrow = sourceCode.getTokenBefore(node.body, astUtils.isArrowToken); + + return { + before: sourceCode.getTokenBefore(arrow), + arrow, + after: sourceCode.getTokenAfter(arrow) + }; + } + + /** + * Count spaces before/after arrow(`=>`) token. + * @param {Object} tokens Tokens before/after arrow. + * @returns {Object} count of space before/after arrow. + */ + function countSpaces(tokens) { + const before = tokens.arrow.range[0] - tokens.before.range[1]; + const after = tokens.after.range[0] - tokens.arrow.range[1]; + + return { before, after }; + } + + /** + * Determines whether space(s) before after arrow(`=>`) is satisfy rule. + * if before/after value is `true`, there should be space(s). + * if before/after value is `false`, there should be no space. + * @param {ASTNode} node The arrow function node. + * @returns {void} + */ + function spaces(node) { + const tokens = getTokens(node); + const countSpace = countSpaces(tokens); + + if (rule.before) { + + // should be space(s) before arrow + if (countSpace.before === 0) { + context.report({ + node: tokens.before, + messageId: "expectedBefore", + fix(fixer) { + return fixer.insertTextBefore(tokens.arrow, " "); + } + }); + } + } else { + + // should be no space before arrow + if (countSpace.before > 0) { + context.report({ + node: tokens.before, + messageId: "unexpectedBefore", + fix(fixer) { + return fixer.removeRange([tokens.before.range[1], tokens.arrow.range[0]]); + } + }); + } + } + + if (rule.after) { + + // should be space(s) after arrow + if (countSpace.after === 0) { + context.report({ + node: tokens.after, + messageId: "expectedAfter", + fix(fixer) { + return fixer.insertTextAfter(tokens.arrow, " "); + } + }); + } + } else { + + // should be no space after arrow + if (countSpace.after > 0) { + context.report({ + node: tokens.after, + messageId: "unexpectedAfter", + fix(fixer) { + return fixer.removeRange([tokens.arrow.range[1], tokens.after.range[0]]); + } + }); + } + } + } + + return { + ArrowFunctionExpression: spaces + }; + } +}; diff --git a/node_modules/eslint/lib/rules/block-scoped-var.js b/node_modules/eslint/lib/rules/block-scoped-var.js new file mode 100644 index 0000000..731d06d --- /dev/null +++ b/node_modules/eslint/lib/rules/block-scoped-var.js @@ -0,0 +1,124 @@ +/** + * @fileoverview Rule to check for "block scoped" variables by binding context + * @author Matt DuVall + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce the use of variables within the scope they are defined", + recommended: false, + url: "https://eslint.org/docs/rules/block-scoped-var" + }, + + schema: [], + + messages: { + outOfScope: "'{{name}}' used outside of binding context." + } + }, + + create(context) { + let stack = []; + + /** + * Makes a block scope. + * @param {ASTNode} node A node of a scope. + * @returns {void} + */ + function enterScope(node) { + stack.push(node.range); + } + + /** + * Pops the last block scope. + * @returns {void} + */ + function exitScope() { + stack.pop(); + } + + /** + * Reports a given reference. + * @param {eslint-scope.Reference} reference A reference to report. + * @returns {void} + */ + function report(reference) { + const identifier = reference.identifier; + + context.report({ node: identifier, messageId: "outOfScope", data: { name: identifier.name } }); + } + + /** + * Finds and reports references which are outside of valid scopes. + * @param {ASTNode} node A node to get variables. + * @returns {void} + */ + function checkForVariables(node) { + if (node.kind !== "var") { + return; + } + + // Defines a predicate to check whether or not a given reference is outside of valid scope. + const scopeRange = stack[stack.length - 1]; + + /** + * Check if a reference is out of scope + * @param {ASTNode} reference node to examine + * @returns {boolean} True is its outside the scope + * @private + */ + function isOutsideOfScope(reference) { + const idRange = reference.identifier.range; + + return idRange[0] < scopeRange[0] || idRange[1] > scopeRange[1]; + } + + // Gets declared variables, and checks its references. + const variables = context.getDeclaredVariables(node); + + for (let i = 0; i < variables.length; ++i) { + + // Reports. + variables[i] + .references + .filter(isOutsideOfScope) + .forEach(report); + } + } + + return { + Program(node) { + stack = [node.range]; + }, + + // Manages scopes. + BlockStatement: enterScope, + "BlockStatement:exit": exitScope, + ForStatement: enterScope, + "ForStatement:exit": exitScope, + ForInStatement: enterScope, + "ForInStatement:exit": exitScope, + ForOfStatement: enterScope, + "ForOfStatement:exit": exitScope, + SwitchStatement: enterScope, + "SwitchStatement:exit": exitScope, + CatchClause: enterScope, + "CatchClause:exit": exitScope, + StaticBlock: enterScope, + "StaticBlock:exit": exitScope, + + // Finds and reports references which are outside of valid scope. + VariableDeclaration: checkForVariables + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/block-spacing.js b/node_modules/eslint/lib/rules/block-spacing.js new file mode 100644 index 0000000..9fbf159 --- /dev/null +++ b/node_modules/eslint/lib/rules/block-spacing.js @@ -0,0 +1,171 @@ +/** + * @fileoverview A rule to disallow or enforce spaces inside of single line blocks. + * @author Toru Nagashima + */ + +"use strict"; + +const util = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow or enforce spaces inside of blocks after opening block and before closing block", + recommended: false, + url: "https://eslint.org/docs/rules/block-spacing" + }, + + fixable: "whitespace", + + schema: [ + { enum: ["always", "never"] } + ], + + messages: { + missing: "Requires a space {{location}} '{{token}}'.", + extra: "Unexpected space(s) {{location}} '{{token}}'." + } + }, + + create(context) { + const always = (context.options[0] !== "never"), + messageId = always ? "missing" : "extra", + sourceCode = context.getSourceCode(); + + /** + * Gets the open brace token from a given node. + * @param {ASTNode} node A BlockStatement/StaticBlock/SwitchStatement node to get. + * @returns {Token} The token of the open brace. + */ + function getOpenBrace(node) { + if (node.type === "SwitchStatement") { + if (node.cases.length > 0) { + return sourceCode.getTokenBefore(node.cases[0]); + } + return sourceCode.getLastToken(node, 1); + } + + if (node.type === "StaticBlock") { + return sourceCode.getFirstToken(node, { skip: 1 }); // skip the `static` token + } + + // "BlockStatement" + return sourceCode.getFirstToken(node); + } + + /** + * Checks whether or not: + * - given tokens are on same line. + * - there is/isn't a space between given tokens. + * @param {Token} left A token to check. + * @param {Token} right The token which is next to `left`. + * @returns {boolean} + * When the option is `"always"`, `true` if there are one or more spaces between given tokens. + * When the option is `"never"`, `true` if there are not any spaces between given tokens. + * If given tokens are not on same line, it's always `true`. + */ + function isValid(left, right) { + return ( + !util.isTokenOnSameLine(left, right) || + sourceCode.isSpaceBetweenTokens(left, right) === always + ); + } + + /** + * Checks and reports invalid spacing style inside braces. + * @param {ASTNode} node A BlockStatement/StaticBlock/SwitchStatement node to check. + * @returns {void} + */ + function checkSpacingInsideBraces(node) { + + // Gets braces and the first/last token of content. + const openBrace = getOpenBrace(node); + const closeBrace = sourceCode.getLastToken(node); + const firstToken = sourceCode.getTokenAfter(openBrace, { includeComments: true }); + const lastToken = sourceCode.getTokenBefore(closeBrace, { includeComments: true }); + + // Skip if the node is invalid or empty. + if (openBrace.type !== "Punctuator" || + openBrace.value !== "{" || + closeBrace.type !== "Punctuator" || + closeBrace.value !== "}" || + firstToken === closeBrace + ) { + return; + } + + // Skip line comments for option never + if (!always && firstToken.type === "Line") { + return; + } + + // Check. + if (!isValid(openBrace, firstToken)) { + let loc = openBrace.loc; + + if (messageId === "extra") { + loc = { + start: openBrace.loc.end, + end: firstToken.loc.start + }; + } + + context.report({ + node, + loc, + messageId, + data: { + location: "after", + token: openBrace.value + }, + fix(fixer) { + if (always) { + return fixer.insertTextBefore(firstToken, " "); + } + + return fixer.removeRange([openBrace.range[1], firstToken.range[0]]); + } + }); + } + if (!isValid(lastToken, closeBrace)) { + let loc = closeBrace.loc; + + if (messageId === "extra") { + loc = { + start: lastToken.loc.end, + end: closeBrace.loc.start + }; + } + context.report({ + node, + loc, + messageId, + data: { + location: "before", + token: closeBrace.value + }, + fix(fixer) { + if (always) { + return fixer.insertTextAfter(lastToken, " "); + } + + return fixer.removeRange([lastToken.range[1], closeBrace.range[0]]); + } + }); + } + } + + return { + BlockStatement: checkSpacingInsideBraces, + StaticBlock: checkSpacingInsideBraces, + SwitchStatement: checkSpacingInsideBraces + }; + } +}; diff --git a/node_modules/eslint/lib/rules/brace-style.js b/node_modules/eslint/lib/rules/brace-style.js new file mode 100644 index 0000000..52d8920 --- /dev/null +++ b/node_modules/eslint/lib/rules/brace-style.js @@ -0,0 +1,194 @@ +/** + * @fileoverview Rule to flag block statements that do not use the one true brace style + * @author Ian Christian Myers + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent brace style for blocks", + recommended: false, + url: "https://eslint.org/docs/rules/brace-style" + }, + + schema: [ + { + enum: ["1tbs", "stroustrup", "allman"] + }, + { + type: "object", + properties: { + allowSingleLine: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + fixable: "whitespace", + + messages: { + nextLineOpen: "Opening curly brace does not appear on the same line as controlling statement.", + sameLineOpen: "Opening curly brace appears on the same line as controlling statement.", + blockSameLine: "Statement inside of curly braces should be on next line.", + nextLineClose: "Closing curly brace does not appear on the same line as the subsequent block.", + singleLineClose: "Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.", + sameLineClose: "Closing curly brace appears on the same line as the subsequent block." + } + }, + + create(context) { + const style = context.options[0] || "1tbs", + params = context.options[1] || {}, + sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Fixes a place where a newline unexpectedly appears + * @param {Token} firstToken The token before the unexpected newline + * @param {Token} secondToken The token after the unexpected newline + * @returns {Function} A fixer function to remove the newlines between the tokens + */ + function removeNewlineBetween(firstToken, secondToken) { + const textRange = [firstToken.range[1], secondToken.range[0]]; + const textBetween = sourceCode.text.slice(textRange[0], textRange[1]); + + // Don't do a fix if there is a comment between the tokens + if (textBetween.trim()) { + return null; + } + return fixer => fixer.replaceTextRange(textRange, " "); + } + + /** + * Validates a pair of curly brackets based on the user's config + * @param {Token} openingCurly The opening curly bracket + * @param {Token} closingCurly The closing curly bracket + * @returns {void} + */ + function validateCurlyPair(openingCurly, closingCurly) { + const tokenBeforeOpeningCurly = sourceCode.getTokenBefore(openingCurly); + const tokenAfterOpeningCurly = sourceCode.getTokenAfter(openingCurly); + const tokenBeforeClosingCurly = sourceCode.getTokenBefore(closingCurly); + const singleLineException = params.allowSingleLine && astUtils.isTokenOnSameLine(openingCurly, closingCurly); + + if (style !== "allman" && !astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly, openingCurly)) { + context.report({ + node: openingCurly, + messageId: "nextLineOpen", + fix: removeNewlineBetween(tokenBeforeOpeningCurly, openingCurly) + }); + } + + if (style === "allman" && astUtils.isTokenOnSameLine(tokenBeforeOpeningCurly, openingCurly) && !singleLineException) { + context.report({ + node: openingCurly, + messageId: "sameLineOpen", + fix: fixer => fixer.insertTextBefore(openingCurly, "\n") + }); + } + + if (astUtils.isTokenOnSameLine(openingCurly, tokenAfterOpeningCurly) && tokenAfterOpeningCurly !== closingCurly && !singleLineException) { + context.report({ + node: openingCurly, + messageId: "blockSameLine", + fix: fixer => fixer.insertTextAfter(openingCurly, "\n") + }); + } + + if (tokenBeforeClosingCurly !== openingCurly && !singleLineException && astUtils.isTokenOnSameLine(tokenBeforeClosingCurly, closingCurly)) { + context.report({ + node: closingCurly, + messageId: "singleLineClose", + fix: fixer => fixer.insertTextBefore(closingCurly, "\n") + }); + } + } + + /** + * Validates the location of a token that appears before a keyword (e.g. a newline before `else`) + * @param {Token} curlyToken The closing curly token. This is assumed to precede a keyword token (such as `else` or `finally`). + * @returns {void} + */ + function validateCurlyBeforeKeyword(curlyToken) { + const keywordToken = sourceCode.getTokenAfter(curlyToken); + + if (style === "1tbs" && !astUtils.isTokenOnSameLine(curlyToken, keywordToken)) { + context.report({ + node: curlyToken, + messageId: "nextLineClose", + fix: removeNewlineBetween(curlyToken, keywordToken) + }); + } + + if (style !== "1tbs" && astUtils.isTokenOnSameLine(curlyToken, keywordToken)) { + context.report({ + node: curlyToken, + messageId: "sameLineClose", + fix: fixer => fixer.insertTextAfter(curlyToken, "\n") + }); + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + BlockStatement(node) { + if (!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)) { + validateCurlyPair(sourceCode.getFirstToken(node), sourceCode.getLastToken(node)); + } + }, + StaticBlock(node) { + validateCurlyPair( + sourceCode.getFirstToken(node, { skip: 1 }), // skip the `static` token + sourceCode.getLastToken(node) + ); + }, + ClassBody(node) { + validateCurlyPair(sourceCode.getFirstToken(node), sourceCode.getLastToken(node)); + }, + SwitchStatement(node) { + const closingCurly = sourceCode.getLastToken(node); + const openingCurly = sourceCode.getTokenBefore(node.cases.length ? node.cases[0] : closingCurly); + + validateCurlyPair(openingCurly, closingCurly); + }, + IfStatement(node) { + if (node.consequent.type === "BlockStatement" && node.alternate) { + + // Handle the keyword after the `if` block (before `else`) + validateCurlyBeforeKeyword(sourceCode.getLastToken(node.consequent)); + } + }, + TryStatement(node) { + + // Handle the keyword after the `try` block (before `catch` or `finally`) + validateCurlyBeforeKeyword(sourceCode.getLastToken(node.block)); + + if (node.handler && node.finalizer) { + + // Handle the keyword after the `catch` block (before `finally`) + validateCurlyBeforeKeyword(sourceCode.getLastToken(node.handler.body)); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/callback-return.js b/node_modules/eslint/lib/rules/callback-return.js new file mode 100644 index 0000000..fe5b649 --- /dev/null +++ b/node_modules/eslint/lib/rules/callback-return.js @@ -0,0 +1,187 @@ +/** + * @fileoverview Enforce return after a callback. + * @author Jamund Ferguson + * @deprecated in ESLint v7.0.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Require `return` statements after callbacks", + recommended: false, + url: "https://eslint.org/docs/rules/callback-return" + }, + + schema: [{ + type: "array", + items: { type: "string" } + }], + + messages: { + missingReturn: "Expected return with your callback function." + } + }, + + create(context) { + + const callbacks = context.options[0] || ["callback", "cb", "next"], + sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Find the closest parent matching a list of types. + * @param {ASTNode} node The node whose parents we are searching + * @param {Array} types The node types to match + * @returns {ASTNode} The matched node or undefined. + */ + function findClosestParentOfType(node, types) { + if (!node.parent) { + return null; + } + if (!types.includes(node.parent.type)) { + return findClosestParentOfType(node.parent, types); + } + return node.parent; + } + + /** + * Check to see if a node contains only identifiers + * @param {ASTNode} node The node to check + * @returns {boolean} Whether or not the node contains only identifiers + */ + function containsOnlyIdentifiers(node) { + if (node.type === "Identifier") { + return true; + } + + if (node.type === "MemberExpression") { + if (node.object.type === "Identifier") { + return true; + } + if (node.object.type === "MemberExpression") { + return containsOnlyIdentifiers(node.object); + } + } + + return false; + } + + /** + * Check to see if a CallExpression is in our callback list. + * @param {ASTNode} node The node to check against our callback names list. + * @returns {boolean} Whether or not this function matches our callback name. + */ + function isCallback(node) { + return containsOnlyIdentifiers(node.callee) && callbacks.includes(sourceCode.getText(node.callee)); + } + + /** + * Determines whether or not the callback is part of a callback expression. + * @param {ASTNode} node The callback node + * @param {ASTNode} parentNode The expression node + * @returns {boolean} Whether or not this is part of a callback expression + */ + function isCallbackExpression(node, parentNode) { + + // ensure the parent node exists and is an expression + if (!parentNode || parentNode.type !== "ExpressionStatement") { + return false; + } + + // cb() + if (parentNode.expression === node) { + return true; + } + + // special case for cb && cb() and similar + if (parentNode.expression.type === "BinaryExpression" || parentNode.expression.type === "LogicalExpression") { + if (parentNode.expression.right === node) { + return true; + } + } + + return false; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + CallExpression(node) { + + // if we're not a callback we can return + if (!isCallback(node)) { + return; + } + + // find the closest block, return or loop + const closestBlock = findClosestParentOfType(node, ["BlockStatement", "ReturnStatement", "ArrowFunctionExpression"]) || {}; + + // if our parent is a return we know we're ok + if (closestBlock.type === "ReturnStatement") { + return; + } + + // arrow functions don't always have blocks and implicitly return + if (closestBlock.type === "ArrowFunctionExpression") { + return; + } + + // block statements are part of functions and most if statements + if (closestBlock.type === "BlockStatement") { + + // find the last item in the block + const lastItem = closestBlock.body[closestBlock.body.length - 1]; + + // if the callback is the last thing in a block that might be ok + if (isCallbackExpression(node, lastItem)) { + + const parentType = closestBlock.parent.type; + + // but only if the block is part of a function + if (parentType === "FunctionExpression" || + parentType === "FunctionDeclaration" || + parentType === "ArrowFunctionExpression" + ) { + return; + } + + } + + // ending a block with a return is also ok + if (lastItem.type === "ReturnStatement") { + + // but only if the callback is immediately before + if (isCallbackExpression(node, closestBlock.body[closestBlock.body.length - 2])) { + return; + } + } + + } + + // as long as you're the child of a function at this point you should be asked to return + if (findClosestParentOfType(node, ["FunctionDeclaration", "FunctionExpression", "ArrowFunctionExpression"])) { + context.report({ node, messageId: "missingReturn" }); + } + + } + + }; + } +}; diff --git a/node_modules/eslint/lib/rules/camelcase.js b/node_modules/eslint/lib/rules/camelcase.js new file mode 100644 index 0000000..ee1b6bf --- /dev/null +++ b/node_modules/eslint/lib/rules/camelcase.js @@ -0,0 +1,398 @@ +/** + * @fileoverview Rule to flag non-camelcased identifiers + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce camelcase naming convention", + recommended: false, + url: "https://eslint.org/docs/rules/camelcase" + }, + + schema: [ + { + type: "object", + properties: { + ignoreDestructuring: { + type: "boolean", + default: false + }, + ignoreImports: { + type: "boolean", + default: false + }, + ignoreGlobals: { + type: "boolean", + default: false + }, + properties: { + enum: ["always", "never"] + }, + allow: { + type: "array", + items: [ + { + type: "string" + } + ], + minItems: 0, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + notCamelCase: "Identifier '{{name}}' is not in camel case.", + notCamelCasePrivate: "#{{name}} is not in camel case." + } + }, + + create(context) { + const options = context.options[0] || {}; + const properties = options.properties === "never" ? "never" : "always"; + const ignoreDestructuring = options.ignoreDestructuring; + const ignoreImports = options.ignoreImports; + const ignoreGlobals = options.ignoreGlobals; + const allow = options.allow || []; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + // contains reported nodes to avoid reporting twice on destructuring with shorthand notation + const reported = new Set(); + + /** + * Checks if a string contains an underscore and isn't all upper-case + * @param {string} name The string to check. + * @returns {boolean} if the string is underscored + * @private + */ + function isUnderscored(name) { + const nameBody = name.replace(/^_+|_+$/gu, ""); + + // if there's an underscore, it might be A_CONSTANT, which is okay + return nameBody.includes("_") && nameBody !== nameBody.toUpperCase(); + } + + /** + * Checks if a string match the ignore list + * @param {string} name The string to check. + * @returns {boolean} if the string is ignored + * @private + */ + function isAllowed(name) { + return allow.some( + entry => name === entry || name.match(new RegExp(entry, "u")) + ); + } + + /** + * Checks if a given name is good or not. + * @param {string} name The name to check. + * @returns {boolean} `true` if the name is good. + * @private + */ + function isGoodName(name) { + return !isUnderscored(name) || isAllowed(name); + } + + /** + * Checks if a given identifier reference or member expression is an assignment + * target. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is an assignment target. + */ + function isAssignmentTarget(node) { + const parent = node.parent; + + switch (parent.type) { + case "AssignmentExpression": + case "AssignmentPattern": + return parent.left === node; + + case "Property": + return ( + parent.parent.type === "ObjectPattern" && + parent.value === node + ); + case "ArrayPattern": + case "RestElement": + return true; + + default: + return false; + } + } + + /** + * Checks if a given binding identifier uses the original name as-is. + * - If it's in object destructuring or object expression, the original name is its property name. + * - If it's in import declaration, the original name is its exported name. + * @param {ASTNode} node The `Identifier` node to check. + * @returns {boolean} `true` if the identifier uses the original name as-is. + */ + function equalsToOriginalName(node) { + const localName = node.name; + const valueNode = node.parent.type === "AssignmentPattern" + ? node.parent + : node; + const parent = valueNode.parent; + + switch (parent.type) { + case "Property": + return ( + (parent.parent.type === "ObjectPattern" || parent.parent.type === "ObjectExpression") && + parent.value === valueNode && + !parent.computed && + parent.key.type === "Identifier" && + parent.key.name === localName + ); + + case "ImportSpecifier": + return ( + parent.local === node && + astUtils.getModuleExportName(parent.imported) === localName + ); + + default: + return false; + } + } + + /** + * Reports an AST node as a rule violation. + * @param {ASTNode} node The node to report. + * @returns {void} + * @private + */ + function report(node) { + if (reported.has(node.range[0])) { + return; + } + reported.add(node.range[0]); + + // Report it. + context.report({ + node, + messageId: node.type === "PrivateIdentifier" + ? "notCamelCasePrivate" + : "notCamelCase", + data: { name: node.name } + }); + } + + /** + * Reports an identifier reference or a binding identifier. + * @param {ASTNode} node The `Identifier` node to report. + * @returns {void} + */ + function reportReferenceId(node) { + + /* + * For backward compatibility, if it's in callings then ignore it. + * Not sure why it is. + */ + if ( + node.parent.type === "CallExpression" || + node.parent.type === "NewExpression" + ) { + return; + } + + /* + * For backward compatibility, if it's a default value of + * destructuring/parameters then ignore it. + * Not sure why it is. + */ + if ( + node.parent.type === "AssignmentPattern" && + node.parent.right === node + ) { + return; + } + + /* + * The `ignoreDestructuring` flag skips the identifiers that uses + * the property name as-is. + */ + if (ignoreDestructuring && equalsToOriginalName(node)) { + return; + } + + report(node); + } + + return { + + // Report camelcase of global variable references ------------------ + Program() { + const scope = context.getScope(); + + if (!ignoreGlobals) { + + // Defined globals in config files or directive comments. + for (const variable of scope.variables) { + if ( + variable.identifiers.length > 0 || + isGoodName(variable.name) + ) { + continue; + } + for (const reference of variable.references) { + + /* + * For backward compatibility, this rule reports read-only + * references as well. + */ + reportReferenceId(reference.identifier); + } + } + } + + // Undefined globals. + for (const reference of scope.through) { + const id = reference.identifier; + + if (isGoodName(id.name)) { + continue; + } + + /* + * For backward compatibility, this rule reports read-only + * references as well. + */ + reportReferenceId(id); + } + }, + + // Report camelcase of declared variables -------------------------- + [[ + "VariableDeclaration", + "FunctionDeclaration", + "FunctionExpression", + "ArrowFunctionExpression", + "ClassDeclaration", + "ClassExpression", + "CatchClause" + ]](node) { + for (const variable of context.getDeclaredVariables(node)) { + if (isGoodName(variable.name)) { + continue; + } + const id = variable.identifiers[0]; + + // Report declaration. + if (!(ignoreDestructuring && equalsToOriginalName(id))) { + report(id); + } + + /* + * For backward compatibility, report references as well. + * It looks unnecessary because declarations are reported. + */ + for (const reference of variable.references) { + if (reference.init) { + continue; // Skip the write references of initializers. + } + reportReferenceId(reference.identifier); + } + } + }, + + // Report camelcase in properties ---------------------------------- + [[ + "ObjectExpression > Property[computed!=true] > Identifier.key", + "MethodDefinition[computed!=true] > Identifier.key", + "PropertyDefinition[computed!=true] > Identifier.key", + "MethodDefinition > PrivateIdentifier.key", + "PropertyDefinition > PrivateIdentifier.key" + ]](node) { + if (properties === "never" || isGoodName(node.name)) { + return; + } + report(node); + }, + "MemberExpression[computed!=true] > Identifier.property"(node) { + if ( + properties === "never" || + !isAssignmentTarget(node.parent) || // ← ignore read-only references. + isGoodName(node.name) + ) { + return; + } + report(node); + }, + + // Report camelcase in import -------------------------------------- + ImportDeclaration(node) { + for (const variable of context.getDeclaredVariables(node)) { + if (isGoodName(variable.name)) { + continue; + } + const id = variable.identifiers[0]; + + // Report declaration. + if (!(ignoreImports && equalsToOriginalName(id))) { + report(id); + } + + /* + * For backward compatibility, report references as well. + * It looks unnecessary because declarations are reported. + */ + for (const reference of variable.references) { + reportReferenceId(reference.identifier); + } + } + }, + + // Report camelcase in re-export ----------------------------------- + [[ + "ExportAllDeclaration > Identifier.exported", + "ExportSpecifier > Identifier.exported" + ]](node) { + if (isGoodName(node.name)) { + return; + } + report(node); + }, + + // Report camelcase in labels -------------------------------------- + [[ + "LabeledStatement > Identifier.label", + + /* + * For backward compatibility, report references as well. + * It looks unnecessary because declarations are reported. + */ + "BreakStatement > Identifier.label", + "ContinueStatement > Identifier.label" + ]](node) { + if (isGoodName(node.name)) { + return; + } + report(node); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/capitalized-comments.js b/node_modules/eslint/lib/rules/capitalized-comments.js new file mode 100644 index 0000000..ba798d4 --- /dev/null +++ b/node_modules/eslint/lib/rules/capitalized-comments.js @@ -0,0 +1,300 @@ +/** + * @fileoverview enforce or disallow capitalization of the first letter of a comment + * @author Kevin Partington + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const LETTER_PATTERN = require("./utils/patterns/letters"); +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const DEFAULT_IGNORE_PATTERN = astUtils.COMMENTS_IGNORE_PATTERN, + WHITESPACE = /\s/gu, + MAYBE_URL = /^\s*[^:/?#\s]+:\/\/[^?#]/u; // TODO: Combine w/ max-len pattern? + +/* + * Base schema body for defining the basic capitalization rule, ignorePattern, + * and ignoreInlineComments values. + * This can be used in a few different ways in the actual schema. + */ +const SCHEMA_BODY = { + type: "object", + properties: { + ignorePattern: { + type: "string" + }, + ignoreInlineComments: { + type: "boolean" + }, + ignoreConsecutiveComments: { + type: "boolean" + } + }, + additionalProperties: false +}; +const DEFAULTS = { + ignorePattern: "", + ignoreInlineComments: false, + ignoreConsecutiveComments: false +}; + +/** + * Get normalized options for either block or line comments from the given + * user-provided options. + * - If the user-provided options is just a string, returns a normalized + * set of options using default values for all other options. + * - If the user-provided options is an object, then a normalized option + * set is returned. Options specified in overrides will take priority + * over options specified in the main options object, which will in + * turn take priority over the rule's defaults. + * @param {Object|string} rawOptions The user-provided options. + * @param {string} which Either "line" or "block". + * @returns {Object} The normalized options. + */ +function getNormalizedOptions(rawOptions, which) { + return Object.assign({}, DEFAULTS, rawOptions[which] || rawOptions); +} + +/** + * Get normalized options for block and line comments. + * @param {Object|string} rawOptions The user-provided options. + * @returns {Object} An object with "Line" and "Block" keys and corresponding + * normalized options objects. + */ +function getAllNormalizedOptions(rawOptions = {}) { + return { + Line: getNormalizedOptions(rawOptions, "line"), + Block: getNormalizedOptions(rawOptions, "block") + }; +} + +/** + * Creates a regular expression for each ignorePattern defined in the rule + * options. + * + * This is done in order to avoid invoking the RegExp constructor repeatedly. + * @param {Object} normalizedOptions The normalized rule options. + * @returns {void} + */ +function createRegExpForIgnorePatterns(normalizedOptions) { + Object.keys(normalizedOptions).forEach(key => { + const ignorePatternStr = normalizedOptions[key].ignorePattern; + + if (ignorePatternStr) { + const regExp = RegExp(`^\\s*(?:${ignorePatternStr})`, "u"); + + normalizedOptions[key].ignorePatternRegExp = regExp; + } + }); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce or disallow capitalization of the first letter of a comment", + recommended: false, + url: "https://eslint.org/docs/rules/capitalized-comments" + }, + + fixable: "code", + + schema: [ + { enum: ["always", "never"] }, + { + oneOf: [ + SCHEMA_BODY, + { + type: "object", + properties: { + line: SCHEMA_BODY, + block: SCHEMA_BODY + }, + additionalProperties: false + } + ] + } + ], + + messages: { + unexpectedLowercaseComment: "Comments should not begin with a lowercase character.", + unexpectedUppercaseComment: "Comments should not begin with an uppercase character." + } + }, + + create(context) { + + const capitalize = context.options[0] || "always", + normalizedOptions = getAllNormalizedOptions(context.options[1]), + sourceCode = context.getSourceCode(); + + createRegExpForIgnorePatterns(normalizedOptions); + + //---------------------------------------------------------------------- + // Helpers + //---------------------------------------------------------------------- + + /** + * Checks whether a comment is an inline comment. + * + * For the purpose of this rule, a comment is inline if: + * 1. The comment is preceded by a token on the same line; and + * 2. The command is followed by a token on the same line. + * + * Note that the comment itself need not be single-line! + * + * Also, it follows from this definition that only block comments can + * be considered as possibly inline. This is because line comments + * would consume any following tokens on the same line as the comment. + * @param {ASTNode} comment The comment node to check. + * @returns {boolean} True if the comment is an inline comment, false + * otherwise. + */ + function isInlineComment(comment) { + const previousToken = sourceCode.getTokenBefore(comment, { includeComments: true }), + nextToken = sourceCode.getTokenAfter(comment, { includeComments: true }); + + return Boolean( + previousToken && + nextToken && + comment.loc.start.line === previousToken.loc.end.line && + comment.loc.end.line === nextToken.loc.start.line + ); + } + + /** + * Determine if a comment follows another comment. + * @param {ASTNode} comment The comment to check. + * @returns {boolean} True if the comment follows a valid comment. + */ + function isConsecutiveComment(comment) { + const previousTokenOrComment = sourceCode.getTokenBefore(comment, { includeComments: true }); + + return Boolean( + previousTokenOrComment && + ["Block", "Line"].includes(previousTokenOrComment.type) + ); + } + + /** + * Check a comment to determine if it is valid for this rule. + * @param {ASTNode} comment The comment node to process. + * @param {Object} options The options for checking this comment. + * @returns {boolean} True if the comment is valid, false otherwise. + */ + function isCommentValid(comment, options) { + + // 1. Check for default ignore pattern. + if (DEFAULT_IGNORE_PATTERN.test(comment.value)) { + return true; + } + + // 2. Check for custom ignore pattern. + const commentWithoutAsterisks = comment.value + .replace(/\*/gu, ""); + + if (options.ignorePatternRegExp && options.ignorePatternRegExp.test(commentWithoutAsterisks)) { + return true; + } + + // 3. Check for inline comments. + if (options.ignoreInlineComments && isInlineComment(comment)) { + return true; + } + + // 4. Is this a consecutive comment (and are we tolerating those)? + if (options.ignoreConsecutiveComments && isConsecutiveComment(comment)) { + return true; + } + + // 5. Does the comment start with a possible URL? + if (MAYBE_URL.test(commentWithoutAsterisks)) { + return true; + } + + // 6. Is the initial word character a letter? + const commentWordCharsOnly = commentWithoutAsterisks + .replace(WHITESPACE, ""); + + if (commentWordCharsOnly.length === 0) { + return true; + } + + const firstWordChar = commentWordCharsOnly[0]; + + if (!LETTER_PATTERN.test(firstWordChar)) { + return true; + } + + // 7. Check the case of the initial word character. + const isUppercase = firstWordChar !== firstWordChar.toLocaleLowerCase(), + isLowercase = firstWordChar !== firstWordChar.toLocaleUpperCase(); + + if (capitalize === "always" && isLowercase) { + return false; + } + if (capitalize === "never" && isUppercase) { + return false; + } + + return true; + } + + /** + * Process a comment to determine if it needs to be reported. + * @param {ASTNode} comment The comment node to process. + * @returns {void} + */ + function processComment(comment) { + const options = normalizedOptions[comment.type], + commentValid = isCommentValid(comment, options); + + if (!commentValid) { + const messageId = capitalize === "always" + ? "unexpectedLowercaseComment" + : "unexpectedUppercaseComment"; + + context.report({ + node: null, // Intentionally using loc instead + loc: comment.loc, + messageId, + fix(fixer) { + const match = comment.value.match(LETTER_PATTERN); + + return fixer.replaceTextRange( + + // Offset match.index by 2 to account for the first 2 characters that start the comment (// or /*) + [comment.range[0] + match.index + 2, comment.range[0] + match.index + 3], + capitalize === "always" ? match[0].toLocaleUpperCase() : match[0].toLocaleLowerCase() + ); + } + }); + } + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + Program() { + const comments = sourceCode.getAllComments(); + + comments.filter(token => token.type !== "Shebang").forEach(processComment); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/class-methods-use-this.js b/node_modules/eslint/lib/rules/class-methods-use-this.js new file mode 100644 index 0000000..05a9158 --- /dev/null +++ b/node_modules/eslint/lib/rules/class-methods-use-this.js @@ -0,0 +1,187 @@ +/** + * @fileoverview Rule to enforce that all class methods use 'this'. + * @author Patrick Williams + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce that class methods utilize `this`", + recommended: false, + url: "https://eslint.org/docs/rules/class-methods-use-this" + }, + + schema: [{ + type: "object", + properties: { + exceptMethods: { + type: "array", + items: { + type: "string" + } + }, + enforceForClassFields: { + type: "boolean", + default: true + } + }, + additionalProperties: false + }], + + messages: { + missingThis: "Expected 'this' to be used by class {{name}}." + } + }, + create(context) { + const config = Object.assign({}, context.options[0]); + const enforceForClassFields = config.enforceForClassFields !== false; + const exceptMethods = new Set(config.exceptMethods || []); + + const stack = []; + + /** + * Push `this` used flag initialized with `false` onto the stack. + * @returns {void} + */ + function pushContext() { + stack.push(false); + } + + /** + * Pop `this` used flag from the stack. + * @returns {boolean | undefined} `this` used flag + */ + function popContext() { + return stack.pop(); + } + + /** + * Initializes the current context to false and pushes it onto the stack. + * These booleans represent whether 'this' has been used in the context. + * @returns {void} + * @private + */ + function enterFunction() { + pushContext(); + } + + /** + * Check if the node is an instance method + * @param {ASTNode} node node to check + * @returns {boolean} True if its an instance method + * @private + */ + function isInstanceMethod(node) { + switch (node.type) { + case "MethodDefinition": + return !node.static && node.kind !== "constructor"; + case "PropertyDefinition": + return !node.static && enforceForClassFields; + default: + return false; + } + } + + /** + * Check if the node is an instance method not excluded by config + * @param {ASTNode} node node to check + * @returns {boolean} True if it is an instance method, and not excluded by config + * @private + */ + function isIncludedInstanceMethod(node) { + if (isInstanceMethod(node)) { + if (node.computed) { + return true; + } + + const hashIfNeeded = node.key.type === "PrivateIdentifier" ? "#" : ""; + const name = node.key.type === "Literal" + ? astUtils.getStaticStringValue(node.key) + : (node.key.name || ""); + + return !exceptMethods.has(hashIfNeeded + name); + } + return false; + } + + /** + * Checks if we are leaving a function that is a method, and reports if 'this' has not been used. + * Static methods and the constructor are exempt. + * Then pops the context off the stack. + * @param {ASTNode} node A function node that was entered. + * @returns {void} + * @private + */ + function exitFunction(node) { + const methodUsesThis = popContext(); + + if (isIncludedInstanceMethod(node.parent) && !methodUsesThis) { + context.report({ + node, + loc: astUtils.getFunctionHeadLoc(node, context.getSourceCode()), + messageId: "missingThis", + data: { + name: astUtils.getFunctionNameWithKind(node) + } + }); + } + } + + /** + * Mark the current context as having used 'this'. + * @returns {void} + * @private + */ + function markThisUsed() { + if (stack.length) { + stack[stack.length - 1] = true; + } + } + + return { + FunctionDeclaration: enterFunction, + "FunctionDeclaration:exit": exitFunction, + FunctionExpression: enterFunction, + "FunctionExpression:exit": exitFunction, + + /* + * Class field value are implicit functions. + */ + "PropertyDefinition > *.key:exit": pushContext, + "PropertyDefinition:exit": popContext, + + /* + * Class static blocks are implicit functions. They aren't required to use `this`, + * but we have to push context so that it captures any use of `this` in the static block + * separately from enclosing contexts, because static blocks have their own `this` and it + * shouldn't count as used `this` in enclosing contexts. + */ + StaticBlock: pushContext, + "StaticBlock:exit": popContext, + + ThisExpression: markThisUsed, + Super: markThisUsed, + ...( + enforceForClassFields && { + "PropertyDefinition > ArrowFunctionExpression.value": enterFunction, + "PropertyDefinition > ArrowFunctionExpression.value:exit": exitFunction + } + ) + }; + } +}; diff --git a/node_modules/eslint/lib/rules/comma-dangle.js b/node_modules/eslint/lib/rules/comma-dangle.js new file mode 100644 index 0000000..9518da9 --- /dev/null +++ b/node_modules/eslint/lib/rules/comma-dangle.js @@ -0,0 +1,370 @@ +/** + * @fileoverview Rule to forbid or enforce dangling commas. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const DEFAULT_OPTIONS = Object.freeze({ + arrays: "never", + objects: "never", + imports: "never", + exports: "never", + functions: "never" +}); + +/** + * Checks whether or not a trailing comma is allowed in a given node. + * If the `lastItem` is `RestElement` or `RestProperty`, it disallows trailing commas. + * @param {ASTNode} lastItem The node of the last element in the given node. + * @returns {boolean} `true` if a trailing comma is allowed. + */ +function isTrailingCommaAllowed(lastItem) { + return !( + lastItem.type === "RestElement" || + lastItem.type === "RestProperty" || + lastItem.type === "ExperimentalRestProperty" + ); +} + +/** + * Normalize option value. + * @param {string|Object|undefined} optionValue The 1st option value to normalize. + * @param {number} ecmaVersion The normalized ECMAScript version. + * @returns {Object} The normalized option value. + */ +function normalizeOptions(optionValue, ecmaVersion) { + if (typeof optionValue === "string") { + return { + arrays: optionValue, + objects: optionValue, + imports: optionValue, + exports: optionValue, + functions: (!ecmaVersion || ecmaVersion < 8) ? "ignore" : optionValue + }; + } + if (typeof optionValue === "object" && optionValue !== null) { + return { + arrays: optionValue.arrays || DEFAULT_OPTIONS.arrays, + objects: optionValue.objects || DEFAULT_OPTIONS.objects, + imports: optionValue.imports || DEFAULT_OPTIONS.imports, + exports: optionValue.exports || DEFAULT_OPTIONS.exports, + functions: optionValue.functions || DEFAULT_OPTIONS.functions + }; + } + + return DEFAULT_OPTIONS; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow trailing commas", + recommended: false, + url: "https://eslint.org/docs/rules/comma-dangle" + }, + + fixable: "code", + + schema: { + definitions: { + value: { + enum: [ + "always-multiline", + "always", + "never", + "only-multiline" + ] + }, + valueWithIgnore: { + enum: [ + "always-multiline", + "always", + "ignore", + "never", + "only-multiline" + ] + } + }, + type: "array", + items: [ + { + oneOf: [ + { + $ref: "#/definitions/value" + }, + { + type: "object", + properties: { + arrays: { $ref: "#/definitions/valueWithIgnore" }, + objects: { $ref: "#/definitions/valueWithIgnore" }, + imports: { $ref: "#/definitions/valueWithIgnore" }, + exports: { $ref: "#/definitions/valueWithIgnore" }, + functions: { $ref: "#/definitions/valueWithIgnore" } + }, + additionalProperties: false + } + ] + } + ], + additionalItems: false + }, + + messages: { + unexpected: "Unexpected trailing comma.", + missing: "Missing trailing comma." + } + }, + + create(context) { + const options = normalizeOptions(context.options[0], context.parserOptions.ecmaVersion); + + const sourceCode = context.getSourceCode(); + + /** + * Gets the last item of the given node. + * @param {ASTNode} node The node to get. + * @returns {ASTNode|null} The last node or null. + */ + function getLastItem(node) { + + /** + * Returns the last element of an array + * @param {any[]} array The input array + * @returns {any} The last element + */ + function last(array) { + return array[array.length - 1]; + } + + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + return last(node.properties); + case "ArrayExpression": + case "ArrayPattern": + return last(node.elements); + case "ImportDeclaration": + case "ExportNamedDeclaration": + return last(node.specifiers); + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + return last(node.params); + case "CallExpression": + case "NewExpression": + return last(node.arguments); + default: + return null; + } + } + + /** + * Gets the trailing comma token of the given node. + * If the trailing comma does not exist, this returns the token which is + * the insertion point of the trailing comma token. + * @param {ASTNode} node The node to get. + * @param {ASTNode} lastItem The last item of the node. + * @returns {Token} The trailing comma token or the insertion point. + */ + function getTrailingToken(node, lastItem) { + switch (node.type) { + case "ObjectExpression": + case "ArrayExpression": + case "CallExpression": + case "NewExpression": + return sourceCode.getLastToken(node, 1); + default: { + const nextToken = sourceCode.getTokenAfter(lastItem); + + if (astUtils.isCommaToken(nextToken)) { + return nextToken; + } + return sourceCode.getLastToken(lastItem); + } + } + } + + /** + * Checks whether or not a given node is multiline. + * This rule handles a given node as multiline when the closing parenthesis + * and the last element are not on the same line. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is multiline. + */ + function isMultiline(node) { + const lastItem = getLastItem(node); + + if (!lastItem) { + return false; + } + + const penultimateToken = getTrailingToken(node, lastItem); + const lastToken = sourceCode.getTokenAfter(penultimateToken); + + return lastToken.loc.end.line !== penultimateToken.loc.end.line; + } + + /** + * Reports a trailing comma if it exists. + * @param {ASTNode} node A node to check. Its type is one of + * ObjectExpression, ObjectPattern, ArrayExpression, ArrayPattern, + * ImportDeclaration, and ExportNamedDeclaration. + * @returns {void} + */ + function forbidTrailingComma(node) { + const lastItem = getLastItem(node); + + if (!lastItem || (node.type === "ImportDeclaration" && lastItem.type !== "ImportSpecifier")) { + return; + } + + const trailingToken = getTrailingToken(node, lastItem); + + if (astUtils.isCommaToken(trailingToken)) { + context.report({ + node: lastItem, + loc: trailingToken.loc, + messageId: "unexpected", + *fix(fixer) { + yield fixer.remove(trailingToken); + + /* + * Extend the range of the fix to include surrounding tokens to ensure + * that the element after which the comma is removed stays _last_. + * This intentionally makes conflicts in fix ranges with rules that may be + * adding or removing elements in the same autofix pass. + * https://github.com/eslint/eslint/issues/15660 + */ + yield fixer.insertTextBefore(sourceCode.getTokenBefore(trailingToken), ""); + yield fixer.insertTextAfter(sourceCode.getTokenAfter(trailingToken), ""); + } + }); + } + } + + /** + * Reports the last element of a given node if it does not have a trailing + * comma. + * + * If a given node is `ArrayPattern` which has `RestElement`, the trailing + * comma is disallowed, so report if it exists. + * @param {ASTNode} node A node to check. Its type is one of + * ObjectExpression, ObjectPattern, ArrayExpression, ArrayPattern, + * ImportDeclaration, and ExportNamedDeclaration. + * @returns {void} + */ + function forceTrailingComma(node) { + const lastItem = getLastItem(node); + + if (!lastItem || (node.type === "ImportDeclaration" && lastItem.type !== "ImportSpecifier")) { + return; + } + if (!isTrailingCommaAllowed(lastItem)) { + forbidTrailingComma(node); + return; + } + + const trailingToken = getTrailingToken(node, lastItem); + + if (trailingToken.value !== ",") { + context.report({ + node: lastItem, + loc: { + start: trailingToken.loc.end, + end: astUtils.getNextLocation(sourceCode, trailingToken.loc.end) + }, + messageId: "missing", + *fix(fixer) { + yield fixer.insertTextAfter(trailingToken, ","); + + /* + * Extend the range of the fix to include surrounding tokens to ensure + * that the element after which the comma is inserted stays _last_. + * This intentionally makes conflicts in fix ranges with rules that may be + * adding or removing elements in the same autofix pass. + * https://github.com/eslint/eslint/issues/15660 + */ + yield fixer.insertTextBefore(trailingToken, ""); + yield fixer.insertTextAfter(sourceCode.getTokenAfter(trailingToken), ""); + } + }); + } + } + + /** + * If a given node is multiline, reports the last element of a given node + * when it does not have a trailing comma. + * Otherwise, reports a trailing comma if it exists. + * @param {ASTNode} node A node to check. Its type is one of + * ObjectExpression, ObjectPattern, ArrayExpression, ArrayPattern, + * ImportDeclaration, and ExportNamedDeclaration. + * @returns {void} + */ + function forceTrailingCommaIfMultiline(node) { + if (isMultiline(node)) { + forceTrailingComma(node); + } else { + forbidTrailingComma(node); + } + } + + /** + * Only if a given node is not multiline, reports the last element of a given node + * when it does not have a trailing comma. + * Otherwise, reports a trailing comma if it exists. + * @param {ASTNode} node A node to check. Its type is one of + * ObjectExpression, ObjectPattern, ArrayExpression, ArrayPattern, + * ImportDeclaration, and ExportNamedDeclaration. + * @returns {void} + */ + function allowTrailingCommaIfMultiline(node) { + if (!isMultiline(node)) { + forbidTrailingComma(node); + } + } + + const predicate = { + always: forceTrailingComma, + "always-multiline": forceTrailingCommaIfMultiline, + "only-multiline": allowTrailingCommaIfMultiline, + never: forbidTrailingComma, + ignore: () => {} + }; + + return { + ObjectExpression: predicate[options.objects], + ObjectPattern: predicate[options.objects], + + ArrayExpression: predicate[options.arrays], + ArrayPattern: predicate[options.arrays], + + ImportDeclaration: predicate[options.imports], + + ExportNamedDeclaration: predicate[options.exports], + + FunctionDeclaration: predicate[options.functions], + FunctionExpression: predicate[options.functions], + ArrowFunctionExpression: predicate[options.functions], + CallExpression: predicate[options.functions], + NewExpression: predicate[options.functions] + }; + } +}; diff --git a/node_modules/eslint/lib/rules/comma-spacing.js b/node_modules/eslint/lib/rules/comma-spacing.js new file mode 100644 index 0000000..76d5dc4 --- /dev/null +++ b/node_modules/eslint/lib/rules/comma-spacing.js @@ -0,0 +1,189 @@ +/** + * @fileoverview Comma spacing - validates spacing before and after comma + * @author Vignesh Anand aka vegetableman. + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing before and after commas", + recommended: false, + url: "https://eslint.org/docs/rules/comma-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + before: { + type: "boolean", + default: false + }, + after: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + missing: "A space is required {{loc}} ','.", + unexpected: "There should be no space {{loc}} ','." + } + }, + + create(context) { + + const sourceCode = context.getSourceCode(); + const tokensAndComments = sourceCode.tokensAndComments; + + const options = { + before: context.options[0] ? context.options[0].before : false, + after: context.options[0] ? context.options[0].after : true + }; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + // list of comma tokens to ignore for the check of leading whitespace + const commaTokensToIgnore = []; + + /** + * Reports a spacing error with an appropriate message. + * @param {ASTNode} node The binary expression node to report. + * @param {string} loc Is the error "before" or "after" the comma? + * @param {ASTNode} otherNode The node at the left or right of `node` + * @returns {void} + * @private + */ + function report(node, loc, otherNode) { + context.report({ + node, + fix(fixer) { + if (options[loc]) { + if (loc === "before") { + return fixer.insertTextBefore(node, " "); + } + return fixer.insertTextAfter(node, " "); + + } + let start, end; + const newText = ""; + + if (loc === "before") { + start = otherNode.range[1]; + end = node.range[0]; + } else { + start = node.range[1]; + end = otherNode.range[0]; + } + + return fixer.replaceTextRange([start, end], newText); + + }, + messageId: options[loc] ? "missing" : "unexpected", + data: { + loc + } + }); + } + + /** + * Adds null elements of the given ArrayExpression or ArrayPattern node to the ignore list. + * @param {ASTNode} node An ArrayExpression or ArrayPattern node. + * @returns {void} + */ + function addNullElementsToIgnoreList(node) { + let previousToken = sourceCode.getFirstToken(node); + + node.elements.forEach(element => { + let token; + + if (element === null) { + token = sourceCode.getTokenAfter(previousToken); + + if (astUtils.isCommaToken(token)) { + commaTokensToIgnore.push(token); + } + } else { + token = sourceCode.getTokenAfter(element); + } + + previousToken = token; + }); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + "Program:exit"() { + tokensAndComments.forEach((token, i) => { + + if (!astUtils.isCommaToken(token)) { + return; + } + + const previousToken = tokensAndComments[i - 1]; + const nextToken = tokensAndComments[i + 1]; + + if ( + previousToken && + !astUtils.isCommaToken(previousToken) && // ignore spacing between two commas + + /* + * `commaTokensToIgnore` are ending commas of `null` elements (array holes/elisions). + * In addition to spacing between two commas, this can also ignore: + * + * - Spacing after `[` (controlled by array-bracket-spacing) + * Example: [ , ] + * ^ + * - Spacing after a comment (for backwards compatibility, this was possibly unintentional) + * Example: [a, /* * / ,] + * ^ + */ + !commaTokensToIgnore.includes(token) && + + astUtils.isTokenOnSameLine(previousToken, token) && + options.before !== sourceCode.isSpaceBetweenTokens(previousToken, token) + ) { + report(token, "before", previousToken); + } + + if ( + nextToken && + !astUtils.isCommaToken(nextToken) && // ignore spacing between two commas + !astUtils.isClosingParenToken(nextToken) && // controlled by space-in-parens + !astUtils.isClosingBracketToken(nextToken) && // controlled by array-bracket-spacing + !astUtils.isClosingBraceToken(nextToken) && // controlled by object-curly-spacing + !(!options.after && nextToken.type === "Line") && // special case, allow space before line comment + astUtils.isTokenOnSameLine(token, nextToken) && + options.after !== sourceCode.isSpaceBetweenTokens(token, nextToken) + ) { + report(token, "after", nextToken); + } + }); + }, + ArrayExpression: addNullElementsToIgnoreList, + ArrayPattern: addNullElementsToIgnoreList + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/comma-style.js b/node_modules/eslint/lib/rules/comma-style.js new file mode 100644 index 0000000..4969f59 --- /dev/null +++ b/node_modules/eslint/lib/rules/comma-style.js @@ -0,0 +1,311 @@ +/** + * @fileoverview Comma style - enforces comma styles of two types: last and first + * @author Vignesh Anand aka vegetableman + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent comma style", + recommended: false, + url: "https://eslint.org/docs/rules/comma-style" + }, + + fixable: "code", + + schema: [ + { + enum: ["first", "last"] + }, + { + type: "object", + properties: { + exceptions: { + type: "object", + additionalProperties: { + type: "boolean" + } + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedLineBeforeAndAfterComma: "Bad line breaking before and after ','.", + expectedCommaFirst: "',' should be placed first.", + expectedCommaLast: "',' should be placed last." + } + }, + + create(context) { + const style = context.options[0] || "last", + sourceCode = context.getSourceCode(); + const exceptions = { + ArrayPattern: true, + ArrowFunctionExpression: true, + CallExpression: true, + FunctionDeclaration: true, + FunctionExpression: true, + ImportDeclaration: true, + ObjectPattern: true, + NewExpression: true + }; + + if (context.options.length === 2 && Object.prototype.hasOwnProperty.call(context.options[1], "exceptions")) { + const keys = Object.keys(context.options[1].exceptions); + + for (let i = 0; i < keys.length; i++) { + exceptions[keys[i]] = context.options[1].exceptions[keys[i]]; + } + } + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Modified text based on the style + * @param {string} styleType Style type + * @param {string} text Source code text + * @returns {string} modified text + * @private + */ + function getReplacedText(styleType, text) { + switch (styleType) { + case "between": + return `,${text.replace(astUtils.LINEBREAK_MATCHER, "")}`; + + case "first": + return `${text},`; + + case "last": + return `,${text}`; + + default: + return ""; + } + } + + /** + * Determines the fixer function for a given style. + * @param {string} styleType comma style + * @param {ASTNode} previousItemToken The token to check. + * @param {ASTNode} commaToken The token to check. + * @param {ASTNode} currentItemToken The token to check. + * @returns {Function} Fixer function + * @private + */ + function getFixerFunction(styleType, previousItemToken, commaToken, currentItemToken) { + const text = + sourceCode.text.slice(previousItemToken.range[1], commaToken.range[0]) + + sourceCode.text.slice(commaToken.range[1], currentItemToken.range[0]); + const range = [previousItemToken.range[1], currentItemToken.range[0]]; + + return function(fixer) { + return fixer.replaceTextRange(range, getReplacedText(styleType, text)); + }; + } + + /** + * Validates the spacing around single items in lists. + * @param {Token} previousItemToken The last token from the previous item. + * @param {Token} commaToken The token representing the comma. + * @param {Token} currentItemToken The first token of the current item. + * @param {Token} reportItem The item to use when reporting an error. + * @returns {void} + * @private + */ + function validateCommaItemSpacing(previousItemToken, commaToken, currentItemToken, reportItem) { + + // if single line + if (astUtils.isTokenOnSameLine(commaToken, currentItemToken) && + astUtils.isTokenOnSameLine(previousItemToken, commaToken)) { + + // do nothing. + + } else if (!astUtils.isTokenOnSameLine(commaToken, currentItemToken) && + !astUtils.isTokenOnSameLine(previousItemToken, commaToken)) { + + const comment = sourceCode.getCommentsAfter(commaToken)[0]; + const styleType = comment && comment.type === "Block" && astUtils.isTokenOnSameLine(commaToken, comment) + ? style + : "between"; + + // lone comma + context.report({ + node: reportItem, + loc: commaToken.loc, + messageId: "unexpectedLineBeforeAndAfterComma", + fix: getFixerFunction(styleType, previousItemToken, commaToken, currentItemToken) + }); + + } else if (style === "first" && !astUtils.isTokenOnSameLine(commaToken, currentItemToken)) { + + context.report({ + node: reportItem, + loc: commaToken.loc, + messageId: "expectedCommaFirst", + fix: getFixerFunction(style, previousItemToken, commaToken, currentItemToken) + }); + + } else if (style === "last" && astUtils.isTokenOnSameLine(commaToken, currentItemToken)) { + + context.report({ + node: reportItem, + loc: commaToken.loc, + messageId: "expectedCommaLast", + fix: getFixerFunction(style, previousItemToken, commaToken, currentItemToken) + }); + } + } + + /** + * Checks the comma placement with regards to a declaration/property/element + * @param {ASTNode} node The binary expression node to check + * @param {string} property The property of the node containing child nodes. + * @private + * @returns {void} + */ + function validateComma(node, property) { + const items = node[property], + arrayLiteral = (node.type === "ArrayExpression" || node.type === "ArrayPattern"); + + if (items.length > 1 || arrayLiteral) { + + // seed as opening [ + let previousItemToken = sourceCode.getFirstToken(node); + + items.forEach(item => { + const commaToken = item ? sourceCode.getTokenBefore(item) : previousItemToken, + currentItemToken = item ? sourceCode.getFirstToken(item) : sourceCode.getTokenAfter(commaToken), + reportItem = item || currentItemToken; + + /* + * This works by comparing three token locations: + * - previousItemToken is the last token of the previous item + * - commaToken is the location of the comma before the current item + * - currentItemToken is the first token of the current item + * + * These values get switched around if item is undefined. + * previousItemToken will refer to the last token not belonging + * to the current item, which could be a comma or an opening + * square bracket. currentItemToken could be a comma. + * + * All comparisons are done based on these tokens directly, so + * they are always valid regardless of an undefined item. + */ + if (astUtils.isCommaToken(commaToken)) { + validateCommaItemSpacing(previousItemToken, commaToken, currentItemToken, reportItem); + } + + if (item) { + const tokenAfterItem = sourceCode.getTokenAfter(item, astUtils.isNotClosingParenToken); + + previousItemToken = tokenAfterItem + ? sourceCode.getTokenBefore(tokenAfterItem) + : sourceCode.ast.tokens[sourceCode.ast.tokens.length - 1]; + } else { + previousItemToken = currentItemToken; + } + }); + + /* + * Special case for array literals that have empty last items, such + * as [ 1, 2, ]. These arrays only have two items show up in the + * AST, so we need to look at the token to verify that there's no + * dangling comma. + */ + if (arrayLiteral) { + + const lastToken = sourceCode.getLastToken(node), + nextToLastToken = sourceCode.getTokenBefore(lastToken); + + if (astUtils.isCommaToken(nextToLastToken)) { + validateCommaItemSpacing( + sourceCode.getTokenBefore(nextToLastToken), + nextToLastToken, + lastToken, + lastToken + ); + } + } + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + const nodes = {}; + + if (!exceptions.VariableDeclaration) { + nodes.VariableDeclaration = function(node) { + validateComma(node, "declarations"); + }; + } + if (!exceptions.ObjectExpression) { + nodes.ObjectExpression = function(node) { + validateComma(node, "properties"); + }; + } + if (!exceptions.ObjectPattern) { + nodes.ObjectPattern = function(node) { + validateComma(node, "properties"); + }; + } + if (!exceptions.ArrayExpression) { + nodes.ArrayExpression = function(node) { + validateComma(node, "elements"); + }; + } + if (!exceptions.ArrayPattern) { + nodes.ArrayPattern = function(node) { + validateComma(node, "elements"); + }; + } + if (!exceptions.FunctionDeclaration) { + nodes.FunctionDeclaration = function(node) { + validateComma(node, "params"); + }; + } + if (!exceptions.FunctionExpression) { + nodes.FunctionExpression = function(node) { + validateComma(node, "params"); + }; + } + if (!exceptions.ArrowFunctionExpression) { + nodes.ArrowFunctionExpression = function(node) { + validateComma(node, "params"); + }; + } + if (!exceptions.CallExpression) { + nodes.CallExpression = function(node) { + validateComma(node, "arguments"); + }; + } + if (!exceptions.ImportDeclaration) { + nodes.ImportDeclaration = function(node) { + validateComma(node, "specifiers"); + }; + } + if (!exceptions.NewExpression) { + nodes.NewExpression = function(node) { + validateComma(node, "arguments"); + }; + } + + return nodes; + } +}; diff --git a/node_modules/eslint/lib/rules/complexity.js b/node_modules/eslint/lib/rules/complexity.js new file mode 100644 index 0000000..541d3a9 --- /dev/null +++ b/node_modules/eslint/lib/rules/complexity.js @@ -0,0 +1,165 @@ +/** + * @fileoverview Counts the cyclomatic complexity of each function of the script. See http://en.wikipedia.org/wiki/Cyclomatic_complexity. + * Counts the number of if, conditional, for, while, try, switch/case, + * @author Patrick Brosset + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum cyclomatic complexity allowed in a program", + recommended: false, + url: "https://eslint.org/docs/rules/complexity" + }, + + schema: [ + { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + type: "object", + properties: { + maximum: { + type: "integer", + minimum: 0 + }, + max: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + complex: "{{name}} has a complexity of {{complexity}}. Maximum allowed is {{max}}." + } + }, + + create(context) { + const option = context.options[0]; + let THRESHOLD = 20; + + if ( + typeof option === "object" && + (Object.prototype.hasOwnProperty.call(option, "maximum") || Object.prototype.hasOwnProperty.call(option, "max")) + ) { + THRESHOLD = option.maximum || option.max; + } else if (typeof option === "number") { + THRESHOLD = option; + } + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + // Using a stack to store complexity per code path + const complexities = []; + + /** + * Increase the complexity of the code path in context + * @returns {void} + * @private + */ + function increaseComplexity() { + complexities[complexities.length - 1]++; + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + + onCodePathStart() { + + // The initial complexity is 1, representing one execution path in the CodePath + complexities.push(1); + }, + + // Each branching in the code adds 1 to the complexity + CatchClause: increaseComplexity, + ConditionalExpression: increaseComplexity, + LogicalExpression: increaseComplexity, + ForStatement: increaseComplexity, + ForInStatement: increaseComplexity, + ForOfStatement: increaseComplexity, + IfStatement: increaseComplexity, + WhileStatement: increaseComplexity, + DoWhileStatement: increaseComplexity, + + // Avoid `default` + "SwitchCase[test]": increaseComplexity, + + // Logical assignment operators have short-circuiting behavior + AssignmentExpression(node) { + if (astUtils.isLogicalAssignmentOperator(node.operator)) { + increaseComplexity(); + } + }, + + onCodePathEnd(codePath, node) { + const complexity = complexities.pop(); + + /* + * This rule only evaluates complexity of functions, so "program" is excluded. + * Class field initializers and class static blocks are implicit functions. Therefore, + * they shouldn't contribute to the enclosing function's complexity, but their + * own complexity should be evaluated. + */ + if ( + codePath.origin !== "function" && + codePath.origin !== "class-field-initializer" && + codePath.origin !== "class-static-block" + ) { + return; + } + + if (complexity > THRESHOLD) { + let name; + + if (codePath.origin === "class-field-initializer") { + name = "class field initializer"; + } else if (codePath.origin === "class-static-block") { + name = "class static block"; + } else { + name = astUtils.getFunctionNameWithKind(node); + } + + context.report({ + node, + messageId: "complex", + data: { + name: upperCaseFirst(name), + complexity, + max: THRESHOLD + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/computed-property-spacing.js b/node_modules/eslint/lib/rules/computed-property-spacing.js new file mode 100644 index 0000000..3d033fc --- /dev/null +++ b/node_modules/eslint/lib/rules/computed-property-spacing.js @@ -0,0 +1,205 @@ +/** + * @fileoverview Disallows or enforces spaces inside computed properties. + * @author Jamund Ferguson + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing inside computed property brackets", + recommended: false, + url: "https://eslint.org/docs/rules/computed-property-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + enforceForClassMembers: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedSpaceBefore: "There should be no space before '{{tokenValue}}'.", + unexpectedSpaceAfter: "There should be no space after '{{tokenValue}}'.", + + missingSpaceBefore: "A space is required before '{{tokenValue}}'.", + missingSpaceAfter: "A space is required after '{{tokenValue}}'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const propertyNameMustBeSpaced = context.options[0] === "always"; // default is "never" + const enforceForClassMembers = !context.options[1] || context.options[1].enforceForClassMembers; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Reports that there shouldn't be a space after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @param {Token} tokenAfter The token after `token`. + * @returns {void} + */ + function reportNoBeginningSpace(node, token, tokenAfter) { + context.report({ + node, + loc: { start: token.loc.end, end: tokenAfter.loc.start }, + messageId: "unexpectedSpaceAfter", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.removeRange([token.range[1], tokenAfter.range[0]]); + } + }); + } + + /** + * Reports that there shouldn't be a space before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @param {Token} tokenBefore The token before `token`. + * @returns {void} + */ + function reportNoEndingSpace(node, token, tokenBefore) { + context.report({ + node, + loc: { start: tokenBefore.loc.end, end: token.loc.start }, + messageId: "unexpectedSpaceBefore", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.removeRange([tokenBefore.range[1], token.range[0]]); + } + }); + } + + /** + * Reports that there should be a space after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredBeginningSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "missingSpaceAfter", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.insertTextAfter(token, " "); + } + }); + } + + /** + * Reports that there should be a space before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredEndingSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "missingSpaceBefore", + data: { + tokenValue: token.value + }, + fix(fixer) { + return fixer.insertTextBefore(token, " "); + } + }); + } + + /** + * Returns a function that checks the spacing of a node on the property name + * that was passed in. + * @param {string} propertyName The property on the node to check for spacing + * @returns {Function} A function that will check spacing on a node + */ + function checkSpacing(propertyName) { + return function(node) { + if (!node.computed) { + return; + } + + const property = node[propertyName]; + + const before = sourceCode.getTokenBefore(property, astUtils.isOpeningBracketToken), + first = sourceCode.getTokenAfter(before, { includeComments: true }), + after = sourceCode.getTokenAfter(property, astUtils.isClosingBracketToken), + last = sourceCode.getTokenBefore(after, { includeComments: true }); + + if (astUtils.isTokenOnSameLine(before, first)) { + if (propertyNameMustBeSpaced) { + if (!sourceCode.isSpaceBetweenTokens(before, first) && astUtils.isTokenOnSameLine(before, first)) { + reportRequiredBeginningSpace(node, before); + } + } else { + if (sourceCode.isSpaceBetweenTokens(before, first)) { + reportNoBeginningSpace(node, before, first); + } + } + } + + if (astUtils.isTokenOnSameLine(last, after)) { + if (propertyNameMustBeSpaced) { + if (!sourceCode.isSpaceBetweenTokens(last, after) && astUtils.isTokenOnSameLine(last, after)) { + reportRequiredEndingSpace(node, after); + } + } else { + if (sourceCode.isSpaceBetweenTokens(last, after)) { + reportNoEndingSpace(node, after, last); + } + } + } + }; + } + + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + const listeners = { + Property: checkSpacing("key"), + MemberExpression: checkSpacing("property") + }; + + if (enforceForClassMembers) { + listeners.MethodDefinition = + listeners.PropertyDefinition = listeners.Property; + } + + return listeners; + + } +}; diff --git a/node_modules/eslint/lib/rules/consistent-return.js b/node_modules/eslint/lib/rules/consistent-return.js new file mode 100644 index 0000000..f007297 --- /dev/null +++ b/node_modules/eslint/lib/rules/consistent-return.js @@ -0,0 +1,185 @@ +/** + * @fileoverview Rule to flag consistent return values + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given code path segment is unreachable. + * @param {CodePathSegment} segment A CodePathSegment to check. + * @returns {boolean} `true` if the segment is unreachable. + */ +function isUnreachable(segment) { + return !segment.reachable; +} + +/** + * Checks whether a given node is a `constructor` method in an ES6 class + * @param {ASTNode} node A node to check + * @returns {boolean} `true` if the node is a `constructor` method + */ +function isClassConstructor(node) { + return node.type === "FunctionExpression" && + node.parent && + node.parent.type === "MethodDefinition" && + node.parent.kind === "constructor"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require `return` statements to either always or never specify values", + recommended: false, + url: "https://eslint.org/docs/rules/consistent-return" + }, + + schema: [{ + type: "object", + properties: { + treatUndefinedAsUnspecified: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + + messages: { + missingReturn: "Expected to return a value at the end of {{name}}.", + missingReturnValue: "{{name}} expected a return value.", + unexpectedReturnValue: "{{name}} expected no return value." + } + }, + + create(context) { + const options = context.options[0] || {}; + const treatUndefinedAsUnspecified = options.treatUndefinedAsUnspecified === true; + let funcInfo = null; + + /** + * Checks whether of not the implicit returning is consistent if the last + * code path segment is reachable. + * @param {ASTNode} node A program/function node to check. + * @returns {void} + */ + function checkLastSegment(node) { + let loc, name; + + /* + * Skip if it expected no return value or unreachable. + * When unreachable, all paths are returned or thrown. + */ + if (!funcInfo.hasReturnValue || + funcInfo.codePath.currentSegments.every(isUnreachable) || + astUtils.isES5Constructor(node) || + isClassConstructor(node) + ) { + return; + } + + // Adjust a location and a message. + if (node.type === "Program") { + + // The head of program. + loc = { line: 1, column: 0 }; + name = "program"; + } else if (node.type === "ArrowFunctionExpression") { + + // `=>` token + loc = context.getSourceCode().getTokenBefore(node.body, astUtils.isArrowToken).loc; + } else if ( + node.parent.type === "MethodDefinition" || + (node.parent.type === "Property" && node.parent.method) + ) { + + // Method name. + loc = node.parent.key.loc; + } else { + + // Function name or `function` keyword. + loc = (node.id || context.getSourceCode().getFirstToken(node)).loc; + } + + if (!name) { + name = astUtils.getFunctionNameWithKind(node); + } + + // Reports. + context.report({ + node, + loc, + messageId: "missingReturn", + data: { name } + }); + } + + return { + + // Initializes/Disposes state of each code path. + onCodePathStart(codePath, node) { + funcInfo = { + upper: funcInfo, + codePath, + hasReturn: false, + hasReturnValue: false, + messageId: "", + node + }; + }, + onCodePathEnd() { + funcInfo = funcInfo.upper; + }, + + // Reports a given return statement if it's inconsistent. + ReturnStatement(node) { + const argument = node.argument; + let hasReturnValue = Boolean(argument); + + if (treatUndefinedAsUnspecified && hasReturnValue) { + hasReturnValue = !astUtils.isSpecificId(argument, "undefined") && argument.operator !== "void"; + } + + if (!funcInfo.hasReturn) { + funcInfo.hasReturn = true; + funcInfo.hasReturnValue = hasReturnValue; + funcInfo.messageId = hasReturnValue ? "missingReturnValue" : "unexpectedReturnValue"; + funcInfo.data = { + name: funcInfo.node.type === "Program" + ? "Program" + : upperCaseFirst(astUtils.getFunctionNameWithKind(funcInfo.node)) + }; + } else if (funcInfo.hasReturnValue !== hasReturnValue) { + context.report({ + node, + messageId: funcInfo.messageId, + data: funcInfo.data + }); + } + }, + + // Reports a given program/function if the implicit returning is not consistent. + "Program:exit": checkLastSegment, + "FunctionDeclaration:exit": checkLastSegment, + "FunctionExpression:exit": checkLastSegment, + "ArrowFunctionExpression:exit": checkLastSegment + }; + } +}; diff --git a/node_modules/eslint/lib/rules/consistent-this.js b/node_modules/eslint/lib/rules/consistent-this.js new file mode 100644 index 0000000..947873b --- /dev/null +++ b/node_modules/eslint/lib/rules/consistent-this.js @@ -0,0 +1,151 @@ +/** + * @fileoverview Rule to enforce consistent naming of "this" context variables + * @author Raphael Pigulla + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce consistent naming when capturing the current execution context", + recommended: false, + url: "https://eslint.org/docs/rules/consistent-this" + }, + + schema: { + type: "array", + items: { + type: "string", + minLength: 1 + }, + uniqueItems: true + }, + + messages: { + aliasNotAssignedToThis: "Designated alias '{{name}}' is not assigned to 'this'.", + unexpectedAlias: "Unexpected alias '{{name}}' for 'this'." + } + }, + + create(context) { + let aliases = []; + + if (context.options.length === 0) { + aliases.push("that"); + } else { + aliases = context.options; + } + + /** + * Reports that a variable declarator or assignment expression is assigning + * a non-'this' value to the specified alias. + * @param {ASTNode} node The assigning node. + * @param {string} name the name of the alias that was incorrectly used. + * @returns {void} + */ + function reportBadAssignment(node, name) { + context.report({ node, messageId: "aliasNotAssignedToThis", data: { name } }); + } + + /** + * Checks that an assignment to an identifier only assigns 'this' to the + * appropriate alias, and the alias is only assigned to 'this'. + * @param {ASTNode} node The assigning node. + * @param {Identifier} name The name of the variable assigned to. + * @param {Expression} value The value of the assignment. + * @returns {void} + */ + function checkAssignment(node, name, value) { + const isThis = value.type === "ThisExpression"; + + if (aliases.includes(name)) { + if (!isThis || node.operator && node.operator !== "=") { + reportBadAssignment(node, name); + } + } else if (isThis) { + context.report({ node, messageId: "unexpectedAlias", data: { name } }); + } + } + + /** + * Ensures that a variable declaration of the alias in a program or function + * is assigned to the correct value. + * @param {string} alias alias the check the assignment of. + * @param {Object} scope scope of the current code we are checking. + * @private + * @returns {void} + */ + function checkWasAssigned(alias, scope) { + const variable = scope.set.get(alias); + + if (!variable) { + return; + } + + if (variable.defs.some(def => def.node.type === "VariableDeclarator" && + def.node.init !== null)) { + return; + } + + /* + * The alias has been declared and not assigned: check it was + * assigned later in the same scope. + */ + if (!variable.references.some(reference => { + const write = reference.writeExpr; + + return ( + reference.from === scope && + write && write.type === "ThisExpression" && + write.parent.operator === "=" + ); + })) { + variable.defs.map(def => def.node).forEach(node => { + reportBadAssignment(node, alias); + }); + } + } + + /** + * Check each alias to ensure that is was assigned to the correct value. + * @returns {void} + */ + function ensureWasAssigned() { + const scope = context.getScope(); + + aliases.forEach(alias => { + checkWasAssigned(alias, scope); + }); + } + + return { + "Program:exit": ensureWasAssigned, + "FunctionExpression:exit": ensureWasAssigned, + "FunctionDeclaration:exit": ensureWasAssigned, + + VariableDeclarator(node) { + const id = node.id; + const isDestructuring = + id.type === "ArrayPattern" || id.type === "ObjectPattern"; + + if (node.init !== null && !isDestructuring) { + checkAssignment(node, id.name, node.init); + } + }, + + AssignmentExpression(node) { + if (node.left.type === "Identifier") { + checkAssignment(node, node.left.name, node.right); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/constructor-super.js b/node_modules/eslint/lib/rules/constructor-super.js new file mode 100644 index 0000000..fff6584 --- /dev/null +++ b/node_modules/eslint/lib/rules/constructor-super.js @@ -0,0 +1,423 @@ +/** + * @fileoverview A rule to verify `super()` callings in constructor. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether a given code path segment is reachable or not. + * @param {CodePathSegment} segment A code path segment to check. + * @returns {boolean} `true` if the segment is reachable. + */ +function isReachable(segment) { + return segment.reachable; +} + +/** + * Checks whether or not a given node is a constructor. + * @param {ASTNode} node A node to check. This node type is one of + * `Program`, `FunctionDeclaration`, `FunctionExpression`, and + * `ArrowFunctionExpression`. + * @returns {boolean} `true` if the node is a constructor. + */ +function isConstructorFunction(node) { + return ( + node.type === "FunctionExpression" && + node.parent.type === "MethodDefinition" && + node.parent.kind === "constructor" + ); +} + +/** + * Checks whether a given node can be a constructor or not. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node can be a constructor. + */ +function isPossibleConstructor(node) { + if (!node) { + return false; + } + + switch (node.type) { + case "ClassExpression": + case "FunctionExpression": + case "ThisExpression": + case "MemberExpression": + case "CallExpression": + case "NewExpression": + case "ChainExpression": + case "YieldExpression": + case "TaggedTemplateExpression": + case "MetaProperty": + return true; + + case "Identifier": + return node.name !== "undefined"; + + case "AssignmentExpression": + if (["=", "&&="].includes(node.operator)) { + return isPossibleConstructor(node.right); + } + + if (["||=", "??="].includes(node.operator)) { + return ( + isPossibleConstructor(node.left) || + isPossibleConstructor(node.right) + ); + } + + /** + * All other assignment operators are mathematical assignment operators (arithmetic or bitwise). + * An assignment expression with a mathematical operator can either evaluate to a primitive value, + * or throw, depending on the operands. Thus, it cannot evaluate to a constructor function. + */ + return false; + + case "LogicalExpression": + + /* + * If the && operator short-circuits, the left side was falsy and therefore not a constructor, and if + * it doesn't short-circuit, it takes the value from the right side, so the right side must always be a + * possible constructor. A future improvement could verify that the left side could be truthy by + * excluding falsy literals. + */ + if (node.operator === "&&") { + return isPossibleConstructor(node.right); + } + + return ( + isPossibleConstructor(node.left) || + isPossibleConstructor(node.right) + ); + + case "ConditionalExpression": + return ( + isPossibleConstructor(node.alternate) || + isPossibleConstructor(node.consequent) + ); + + case "SequenceExpression": { + const lastExpression = node.expressions[node.expressions.length - 1]; + + return isPossibleConstructor(lastExpression); + } + + default: + return false; + } +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Require `super()` calls in constructors", + recommended: true, + url: "https://eslint.org/docs/rules/constructor-super" + }, + + schema: [], + + messages: { + missingSome: "Lacked a call of 'super()' in some code paths.", + missingAll: "Expected to call 'super()'.", + + duplicate: "Unexpected duplicate 'super()'.", + badSuper: "Unexpected 'super()' because 'super' is not a constructor.", + unexpected: "Unexpected 'super()'." + } + }, + + create(context) { + + /* + * {{hasExtends: boolean, scope: Scope, codePath: CodePath}[]} + * Information for each constructor. + * - upper: Information of the upper constructor. + * - hasExtends: A flag which shows whether own class has a valid `extends` + * part. + * - scope: The scope of own class. + * - codePath: The code path object of the constructor. + */ + let funcInfo = null; + + /* + * {Map} + * Information for each code path segment. + * - calledInSomePaths: A flag of be called `super()` in some code paths. + * - calledInEveryPaths: A flag of be called `super()` in all code paths. + * - validNodes: + */ + let segInfoMap = Object.create(null); + + /** + * Gets the flag which shows `super()` is called in some paths. + * @param {CodePathSegment} segment A code path segment to get. + * @returns {boolean} The flag which shows `super()` is called in some paths + */ + function isCalledInSomePath(segment) { + return segment.reachable && segInfoMap[segment.id].calledInSomePaths; + } + + /** + * Gets the flag which shows `super()` is called in all paths. + * @param {CodePathSegment} segment A code path segment to get. + * @returns {boolean} The flag which shows `super()` is called in all paths. + */ + function isCalledInEveryPath(segment) { + + /* + * If specific segment is the looped segment of the current segment, + * skip the segment. + * If not skipped, this never becomes true after a loop. + */ + if (segment.nextSegments.length === 1 && + segment.nextSegments[0].isLoopedPrevSegment(segment) + ) { + return true; + } + return segment.reachable && segInfoMap[segment.id].calledInEveryPaths; + } + + return { + + /** + * Stacks a constructor information. + * @param {CodePath} codePath A code path which was started. + * @param {ASTNode} node The current node. + * @returns {void} + */ + onCodePathStart(codePath, node) { + if (isConstructorFunction(node)) { + + // Class > ClassBody > MethodDefinition > FunctionExpression + const classNode = node.parent.parent.parent; + const superClass = classNode.superClass; + + funcInfo = { + upper: funcInfo, + isConstructor: true, + hasExtends: Boolean(superClass), + superIsConstructor: isPossibleConstructor(superClass), + codePath + }; + } else { + funcInfo = { + upper: funcInfo, + isConstructor: false, + hasExtends: false, + superIsConstructor: false, + codePath + }; + } + }, + + /** + * Pops a constructor information. + * And reports if `super()` lacked. + * @param {CodePath} codePath A code path which was ended. + * @param {ASTNode} node The current node. + * @returns {void} + */ + onCodePathEnd(codePath, node) { + const hasExtends = funcInfo.hasExtends; + + // Pop. + funcInfo = funcInfo.upper; + + if (!hasExtends) { + return; + } + + // Reports if `super()` lacked. + const segments = codePath.returnedSegments; + const calledInEveryPaths = segments.every(isCalledInEveryPath); + const calledInSomePaths = segments.some(isCalledInSomePath); + + if (!calledInEveryPaths) { + context.report({ + messageId: calledInSomePaths + ? "missingSome" + : "missingAll", + node: node.parent + }); + } + }, + + /** + * Initialize information of a given code path segment. + * @param {CodePathSegment} segment A code path segment to initialize. + * @returns {void} + */ + onCodePathSegmentStart(segment) { + if (!(funcInfo && funcInfo.isConstructor && funcInfo.hasExtends)) { + return; + } + + // Initialize info. + const info = segInfoMap[segment.id] = { + calledInSomePaths: false, + calledInEveryPaths: false, + validNodes: [] + }; + + // When there are previous segments, aggregates these. + const prevSegments = segment.prevSegments; + + if (prevSegments.length > 0) { + info.calledInSomePaths = prevSegments.some(isCalledInSomePath); + info.calledInEveryPaths = prevSegments.every(isCalledInEveryPath); + } + }, + + /** + * Update information of the code path segment when a code path was + * looped. + * @param {CodePathSegment} fromSegment The code path segment of the + * end of a loop. + * @param {CodePathSegment} toSegment A code path segment of the head + * of a loop. + * @returns {void} + */ + onCodePathSegmentLoop(fromSegment, toSegment) { + if (!(funcInfo && funcInfo.isConstructor && funcInfo.hasExtends)) { + return; + } + + // Update information inside of the loop. + const isRealLoop = toSegment.prevSegments.length >= 2; + + funcInfo.codePath.traverseSegments( + { first: toSegment, last: fromSegment }, + segment => { + const info = segInfoMap[segment.id]; + const prevSegments = segment.prevSegments; + + // Updates flags. + info.calledInSomePaths = prevSegments.some(isCalledInSomePath); + info.calledInEveryPaths = prevSegments.every(isCalledInEveryPath); + + // If flags become true anew, reports the valid nodes. + if (info.calledInSomePaths || isRealLoop) { + const nodes = info.validNodes; + + info.validNodes = []; + + for (let i = 0; i < nodes.length; ++i) { + const node = nodes[i]; + + context.report({ + messageId: "duplicate", + node + }); + } + } + } + ); + }, + + /** + * Checks for a call of `super()`. + * @param {ASTNode} node A CallExpression node to check. + * @returns {void} + */ + "CallExpression:exit"(node) { + if (!(funcInfo && funcInfo.isConstructor)) { + return; + } + + // Skips except `super()`. + if (node.callee.type !== "Super") { + return; + } + + // Reports if needed. + if (funcInfo.hasExtends) { + const segments = funcInfo.codePath.currentSegments; + let duplicate = false; + let info = null; + + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + if (segment.reachable) { + info = segInfoMap[segment.id]; + + duplicate = duplicate || info.calledInSomePaths; + info.calledInSomePaths = info.calledInEveryPaths = true; + } + } + + if (info) { + if (duplicate) { + context.report({ + messageId: "duplicate", + node + }); + } else if (!funcInfo.superIsConstructor) { + context.report({ + messageId: "badSuper", + node + }); + } else { + info.validNodes.push(node); + } + } + } else if (funcInfo.codePath.currentSegments.some(isReachable)) { + context.report({ + messageId: "unexpected", + node + }); + } + }, + + /** + * Set the mark to the returned path as `super()` was called. + * @param {ASTNode} node A ReturnStatement node to check. + * @returns {void} + */ + ReturnStatement(node) { + if (!(funcInfo && funcInfo.isConstructor && funcInfo.hasExtends)) { + return; + } + + // Skips if no argument. + if (!node.argument) { + return; + } + + // Returning argument is a substitute of 'super()'. + const segments = funcInfo.codePath.currentSegments; + + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + if (segment.reachable) { + const info = segInfoMap[segment.id]; + + info.calledInSomePaths = info.calledInEveryPaths = true; + } + } + }, + + /** + * Resets state. + * @returns {void} + */ + "Program:exit"() { + segInfoMap = Object.create(null); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/curly.js b/node_modules/eslint/lib/rules/curly.js new file mode 100644 index 0000000..7b5d140 --- /dev/null +++ b/node_modules/eslint/lib/rules/curly.js @@ -0,0 +1,486 @@ +/** + * @fileoverview Rule to flag statements without curly braces + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce consistent brace style for all control statements", + recommended: false, + url: "https://eslint.org/docs/rules/curly" + }, + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["all"] + } + ], + minItems: 0, + maxItems: 1 + }, + { + type: "array", + items: [ + { + enum: ["multi", "multi-line", "multi-or-nest"] + }, + { + enum: ["consistent"] + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + + fixable: "code", + + messages: { + missingCurlyAfter: "Expected { after '{{name}}'.", + missingCurlyAfterCondition: "Expected { after '{{name}}' condition.", + unexpectedCurlyAfter: "Unnecessary { after '{{name}}'.", + unexpectedCurlyAfterCondition: "Unnecessary { after '{{name}}' condition." + } + }, + + create(context) { + + const multiOnly = (context.options[0] === "multi"); + const multiLine = (context.options[0] === "multi-line"); + const multiOrNest = (context.options[0] === "multi-or-nest"); + const consistent = (context.options[1] === "consistent"); + + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Determines if a given node is a one-liner that's on the same line as it's preceding code. + * @param {ASTNode} node The node to check. + * @returns {boolean} True if the node is a one-liner that's on the same line as it's preceding code. + * @private + */ + function isCollapsedOneLiner(node) { + const before = sourceCode.getTokenBefore(node); + const last = sourceCode.getLastToken(node); + const lastExcludingSemicolon = astUtils.isSemicolonToken(last) ? sourceCode.getTokenBefore(last) : last; + + return before.loc.start.line === lastExcludingSemicolon.loc.end.line; + } + + /** + * Determines if a given node is a one-liner. + * @param {ASTNode} node The node to check. + * @returns {boolean} True if the node is a one-liner. + * @private + */ + function isOneLiner(node) { + if (node.type === "EmptyStatement") { + return true; + } + + const first = sourceCode.getFirstToken(node); + const last = sourceCode.getLastToken(node); + const lastExcludingSemicolon = astUtils.isSemicolonToken(last) ? sourceCode.getTokenBefore(last) : last; + + return first.loc.start.line === lastExcludingSemicolon.loc.end.line; + } + + /** + * Determines if the given node is a lexical declaration (let, const, function, or class) + * @param {ASTNode} node The node to check + * @returns {boolean} True if the node is a lexical declaration + * @private + */ + function isLexicalDeclaration(node) { + if (node.type === "VariableDeclaration") { + return node.kind === "const" || node.kind === "let"; + } + + return node.type === "FunctionDeclaration" || node.type === "ClassDeclaration"; + } + + /** + * Checks if the given token is an `else` token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is an `else` token. + */ + function isElseKeywordToken(token) { + return token.value === "else" && token.type === "Keyword"; + } + + /** + * Determines whether the given node has an `else` keyword token as the first token after. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is followed by an `else` keyword token. + */ + function isFollowedByElseKeyword(node) { + const nextToken = sourceCode.getTokenAfter(node); + + return Boolean(nextToken) && isElseKeywordToken(nextToken); + } + + /** + * Determines if a semicolon needs to be inserted after removing a set of curly brackets, in order to avoid a SyntaxError. + * @param {Token} closingBracket The } token + * @returns {boolean} `true` if a semicolon needs to be inserted after the last statement in the block. + */ + function needsSemicolon(closingBracket) { + const tokenBefore = sourceCode.getTokenBefore(closingBracket); + const tokenAfter = sourceCode.getTokenAfter(closingBracket); + const lastBlockNode = sourceCode.getNodeByRangeIndex(tokenBefore.range[0]); + + if (astUtils.isSemicolonToken(tokenBefore)) { + + // If the last statement already has a semicolon, don't add another one. + return false; + } + + if (!tokenAfter) { + + // If there are no statements after this block, there is no need to add a semicolon. + return false; + } + + if (lastBlockNode.type === "BlockStatement" && lastBlockNode.parent.type !== "FunctionExpression" && lastBlockNode.parent.type !== "ArrowFunctionExpression") { + + /* + * If the last node surrounded by curly brackets is a BlockStatement (other than a FunctionExpression or an ArrowFunctionExpression), + * don't insert a semicolon. Otherwise, the semicolon would be parsed as a separate statement, which would cause + * a SyntaxError if it was followed by `else`. + */ + return false; + } + + if (tokenBefore.loc.end.line === tokenAfter.loc.start.line) { + + // If the next token is on the same line, insert a semicolon. + return true; + } + + if (/^[([/`+-]/u.test(tokenAfter.value)) { + + // If the next token starts with a character that would disrupt ASI, insert a semicolon. + return true; + } + + if (tokenBefore.type === "Punctuator" && (tokenBefore.value === "++" || tokenBefore.value === "--")) { + + // If the last token is ++ or --, insert a semicolon to avoid disrupting ASI. + return true; + } + + // Otherwise, do not insert a semicolon. + return false; + } + + /** + * Determines whether the code represented by the given node contains an `if` statement + * that would become associated with an `else` keyword directly appended to that code. + * + * Examples where it returns `true`: + * + * if (a) + * foo(); + * + * if (a) { + * foo(); + * } + * + * if (a) + * foo(); + * else if (b) + * bar(); + * + * while (a) + * if (b) + * if(c) + * foo(); + * else + * bar(); + * + * Examples where it returns `false`: + * + * if (a) + * foo(); + * else + * bar(); + * + * while (a) { + * if (b) + * if(c) + * foo(); + * else + * bar(); + * } + * + * while (a) + * if (b) { + * if(c) + * foo(); + * } + * else + * bar(); + * @param {ASTNode} node Node representing the code to check. + * @returns {boolean} `true` if an `if` statement within the code would become associated with an `else` appended to that code. + */ + function hasUnsafeIf(node) { + switch (node.type) { + case "IfStatement": + if (!node.alternate) { + return true; + } + return hasUnsafeIf(node.alternate); + case "ForStatement": + case "ForInStatement": + case "ForOfStatement": + case "LabeledStatement": + case "WithStatement": + case "WhileStatement": + return hasUnsafeIf(node.body); + default: + return false; + } + } + + /** + * Determines whether the existing curly braces around the single statement are necessary to preserve the semantics of the code. + * The braces, which make the given block body, are necessary in either of the following situations: + * + * 1. The statement is a lexical declaration. + * 2. Without the braces, an `if` within the statement would become associated with an `else` after the closing brace: + * + * if (a) { + * if (b) + * foo(); + * } + * else + * bar(); + * + * if (a) + * while (b) + * while (c) { + * while (d) + * if (e) + * while(f) + * foo(); + * } + * else + * bar(); + * @param {ASTNode} node `BlockStatement` body with exactly one statement directly inside. The statement can have its own nested statements. + * @returns {boolean} `true` if the braces are necessary - removing them (replacing the given `BlockStatement` body with its single statement content) + * would change the semantics of the code or produce a syntax error. + */ + function areBracesNecessary(node) { + const statement = node.body[0]; + + return isLexicalDeclaration(statement) || + hasUnsafeIf(statement) && isFollowedByElseKeyword(node); + } + + /** + * Prepares to check the body of a node to see if it's a block statement. + * @param {ASTNode} node The node to report if there's a problem. + * @param {ASTNode} body The body node to check for blocks. + * @param {string} name The name to report if there's a problem. + * @param {{ condition: boolean }} opts Options to pass to the report functions + * @returns {Object} a prepared check object, with "actual", "expected", "check" properties. + * "actual" will be `true` or `false` whether the body is already a block statement. + * "expected" will be `true` or `false` if the body should be a block statement or not, or + * `null` if it doesn't matter, depending on the rule options. It can be modified to change + * the final behavior of "check". + * "check" will be a function reporting appropriate problems depending on the other + * properties. + */ + function prepareCheck(node, body, name, opts) { + const hasBlock = (body.type === "BlockStatement"); + let expected = null; + + if (hasBlock && (body.body.length !== 1 || areBracesNecessary(body))) { + expected = true; + } else if (multiOnly) { + expected = false; + } else if (multiLine) { + if (!isCollapsedOneLiner(body)) { + expected = true; + } + + // otherwise, the body is allowed to have braces or not to have braces + + } else if (multiOrNest) { + if (hasBlock) { + const statement = body.body[0]; + const leadingCommentsInBlock = sourceCode.getCommentsBefore(statement); + + expected = !isOneLiner(statement) || leadingCommentsInBlock.length > 0; + } else { + expected = !isOneLiner(body); + } + } else { + + // default "all" + expected = true; + } + + return { + actual: hasBlock, + expected, + check() { + if (this.expected !== null && this.expected !== this.actual) { + if (this.expected) { + context.report({ + node, + loc: body.loc, + messageId: opts && opts.condition ? "missingCurlyAfterCondition" : "missingCurlyAfter", + data: { + name + }, + fix: fixer => fixer.replaceText(body, `{${sourceCode.getText(body)}}`) + }); + } else { + context.report({ + node, + loc: body.loc, + messageId: opts && opts.condition ? "unexpectedCurlyAfterCondition" : "unexpectedCurlyAfter", + data: { + name + }, + fix(fixer) { + + /* + * `do while` expressions sometimes need a space to be inserted after `do`. + * e.g. `do{foo()} while (bar)` should be corrected to `do foo() while (bar)` + */ + const needsPrecedingSpace = node.type === "DoWhileStatement" && + sourceCode.getTokenBefore(body).range[1] === body.range[0] && + !astUtils.canTokensBeAdjacent("do", sourceCode.getFirstToken(body, { skip: 1 })); + + const openingBracket = sourceCode.getFirstToken(body); + const closingBracket = sourceCode.getLastToken(body); + const lastTokenInBlock = sourceCode.getTokenBefore(closingBracket); + + if (needsSemicolon(closingBracket)) { + + /* + * If removing braces would cause a SyntaxError due to multiple statements on the same line (or + * change the semantics of the code due to ASI), don't perform a fix. + */ + return null; + } + + const resultingBodyText = sourceCode.getText().slice(openingBracket.range[1], lastTokenInBlock.range[0]) + + sourceCode.getText(lastTokenInBlock) + + sourceCode.getText().slice(lastTokenInBlock.range[1], closingBracket.range[0]); + + return fixer.replaceText(body, (needsPrecedingSpace ? " " : "") + resultingBodyText); + } + }); + } + } + } + }; + } + + /** + * Prepares to check the bodies of a "if", "else if" and "else" chain. + * @param {ASTNode} node The first IfStatement node of the chain. + * @returns {Object[]} prepared checks for each body of the chain. See `prepareCheck` for more + * information. + */ + function prepareIfChecks(node) { + const preparedChecks = []; + + for (let currentNode = node; currentNode; currentNode = currentNode.alternate) { + preparedChecks.push(prepareCheck(currentNode, currentNode.consequent, "if", { condition: true })); + if (currentNode.alternate && currentNode.alternate.type !== "IfStatement") { + preparedChecks.push(prepareCheck(currentNode, currentNode.alternate, "else")); + break; + } + } + + if (consistent) { + + /* + * If any node should have or already have braces, make sure they + * all have braces. + * If all nodes shouldn't have braces, make sure they don't. + */ + const expected = preparedChecks.some(preparedCheck => { + if (preparedCheck.expected !== null) { + return preparedCheck.expected; + } + return preparedCheck.actual; + }); + + preparedChecks.forEach(preparedCheck => { + preparedCheck.expected = expected; + }); + } + + return preparedChecks; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + IfStatement(node) { + const parent = node.parent; + const isElseIf = parent.type === "IfStatement" && parent.alternate === node; + + if (!isElseIf) { + + // This is a top `if`, check the whole `if-else-if` chain + prepareIfChecks(node).forEach(preparedCheck => { + preparedCheck.check(); + }); + } + + // Skip `else if`, it's already checked (when the top `if` was visited) + }, + + WhileStatement(node) { + prepareCheck(node, node.body, "while", { condition: true }).check(); + }, + + DoWhileStatement(node) { + prepareCheck(node, node.body, "do").check(); + }, + + ForStatement(node) { + prepareCheck(node, node.body, "for", { condition: true }).check(); + }, + + ForInStatement(node) { + prepareCheck(node, node.body, "for-in").check(); + }, + + ForOfStatement(node) { + prepareCheck(node, node.body, "for-of").check(); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/default-case-last.js b/node_modules/eslint/lib/rules/default-case-last.js new file mode 100644 index 0000000..313a0d8 --- /dev/null +++ b/node_modules/eslint/lib/rules/default-case-last.js @@ -0,0 +1,44 @@ +/** + * @fileoverview Rule to enforce default clauses in switch statements to be last + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce default clauses in switch statements to be last", + recommended: false, + url: "https://eslint.org/docs/rules/default-case-last" + }, + + schema: [], + + messages: { + notLast: "Default clause should be the last clause." + } + }, + + create(context) { + return { + SwitchStatement(node) { + const cases = node.cases, + indexOfDefault = cases.findIndex(c => c.test === null); + + if (indexOfDefault !== -1 && indexOfDefault !== cases.length - 1) { + const defaultClause = cases[indexOfDefault]; + + context.report({ node: defaultClause, messageId: "notLast" }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/default-case.js b/node_modules/eslint/lib/rules/default-case.js new file mode 100644 index 0000000..f28de1a --- /dev/null +++ b/node_modules/eslint/lib/rules/default-case.js @@ -0,0 +1,97 @@ +/** + * @fileoverview require default case in switch statements + * @author Aliaksei Shytkin + */ +"use strict"; + +const DEFAULT_COMMENT_PATTERN = /^no default$/iu; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require `default` cases in `switch` statements", + recommended: false, + url: "https://eslint.org/docs/rules/default-case" + }, + + schema: [{ + type: "object", + properties: { + commentPattern: { + type: "string" + } + }, + additionalProperties: false + }], + + messages: { + missingDefaultCase: "Expected a default case." + } + }, + + create(context) { + const options = context.options[0] || {}; + const commentPattern = options.commentPattern + ? new RegExp(options.commentPattern, "u") + : DEFAULT_COMMENT_PATTERN; + + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Shortcut to get last element of array + * @param {*[]} collection Array + * @returns {any} Last element + */ + function last(collection) { + return collection[collection.length - 1]; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + SwitchStatement(node) { + + if (!node.cases.length) { + + /* + * skip check of empty switch because there is no easy way + * to extract comments inside it now + */ + return; + } + + const hasDefault = node.cases.some(v => v.test === null); + + if (!hasDefault) { + + let comment; + + const lastCase = last(node.cases); + const comments = sourceCode.getCommentsAfter(lastCase); + + if (comments.length) { + comment = last(comments); + } + + if (!comment || !commentPattern.test(comment.value.trim())) { + context.report({ node, messageId: "missingDefaultCase" }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/default-param-last.js b/node_modules/eslint/lib/rules/default-param-last.js new file mode 100644 index 0000000..61df5f6 --- /dev/null +++ b/node_modules/eslint/lib/rules/default-param-last.js @@ -0,0 +1,62 @@ +/** + * @fileoverview enforce default parameters to be last + * @author Chiawen Chen + */ + +"use strict"; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce default parameters to be last", + recommended: false, + url: "https://eslint.org/docs/rules/default-param-last" + }, + + schema: [], + + messages: { + shouldBeLast: "Default parameters should be last." + } + }, + + create(context) { + + /** + * Handler for function contexts. + * @param {ASTNode} node function node + * @returns {void} + */ + function handleFunction(node) { + let hasSeenPlainParam = false; + + for (let i = node.params.length - 1; i >= 0; i -= 1) { + const param = node.params[i]; + + if ( + param.type !== "AssignmentPattern" && + param.type !== "RestElement" + ) { + hasSeenPlainParam = true; + continue; + } + + if (hasSeenPlainParam && param.type === "AssignmentPattern") { + context.report({ + node: param, + messageId: "shouldBeLast" + }); + } + } + } + + return { + FunctionDeclaration: handleFunction, + FunctionExpression: handleFunction, + ArrowFunctionExpression: handleFunction + }; + } +}; diff --git a/node_modules/eslint/lib/rules/dot-location.js b/node_modules/eslint/lib/rules/dot-location.js new file mode 100644 index 0000000..36b50b2 --- /dev/null +++ b/node_modules/eslint/lib/rules/dot-location.js @@ -0,0 +1,105 @@ +/** + * @fileoverview Validates newlines before and after dots + * @author Greg Cochard + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent newlines before and after dots", + recommended: false, + url: "https://eslint.org/docs/rules/dot-location" + }, + + schema: [ + { + enum: ["object", "property"] + } + ], + + fixable: "code", + + messages: { + expectedDotAfterObject: "Expected dot to be on same line as object.", + expectedDotBeforeProperty: "Expected dot to be on same line as property." + } + }, + + create(context) { + + const config = context.options[0]; + + // default to onObject if no preference is passed + const onObject = config === "object" || !config; + + const sourceCode = context.getSourceCode(); + + /** + * Reports if the dot between object and property is on the correct location. + * @param {ASTNode} node The `MemberExpression` node. + * @returns {void} + */ + function checkDotLocation(node) { + const property = node.property; + const dotToken = sourceCode.getTokenBefore(property); + + if (onObject) { + + // `obj` expression can be parenthesized, but those paren tokens are not a part of the `obj` node. + const tokenBeforeDot = sourceCode.getTokenBefore(dotToken); + + if (!astUtils.isTokenOnSameLine(tokenBeforeDot, dotToken)) { + context.report({ + node, + loc: dotToken.loc, + messageId: "expectedDotAfterObject", + *fix(fixer) { + if (dotToken.value.startsWith(".") && astUtils.isDecimalIntegerNumericToken(tokenBeforeDot)) { + yield fixer.insertTextAfter(tokenBeforeDot, ` ${dotToken.value}`); + } else { + yield fixer.insertTextAfter(tokenBeforeDot, dotToken.value); + } + yield fixer.remove(dotToken); + } + }); + } + } else if (!astUtils.isTokenOnSameLine(dotToken, property)) { + context.report({ + node, + loc: dotToken.loc, + messageId: "expectedDotBeforeProperty", + *fix(fixer) { + yield fixer.remove(dotToken); + yield fixer.insertTextBefore(property, dotToken.value); + } + }); + } + } + + /** + * Checks the spacing of the dot within a member expression. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkNode(node) { + if (!node.computed) { + checkDotLocation(node); + } + } + + return { + MemberExpression: checkNode + }; + } +}; diff --git a/node_modules/eslint/lib/rules/dot-notation.js b/node_modules/eslint/lib/rules/dot-notation.js new file mode 100644 index 0000000..5f6e818 --- /dev/null +++ b/node_modules/eslint/lib/rules/dot-notation.js @@ -0,0 +1,177 @@ +/** + * @fileoverview Rule to warn about using dot notation instead of square bracket notation when possible. + * @author Josh Perez + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const keywords = require("./utils/keywords"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const validIdentifier = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/u; + +// `null` literal must be handled separately. +const literalTypesToCheck = new Set(["string", "boolean"]); + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce dot notation whenever possible", + recommended: false, + url: "https://eslint.org/docs/rules/dot-notation" + }, + + schema: [ + { + type: "object", + properties: { + allowKeywords: { + type: "boolean", + default: true + }, + allowPattern: { + type: "string", + default: "" + } + }, + additionalProperties: false + } + ], + + fixable: "code", + + messages: { + useDot: "[{{key}}] is better written in dot notation.", + useBrackets: ".{{key}} is a syntax error." + } + }, + + create(context) { + const options = context.options[0] || {}; + const allowKeywords = options.allowKeywords === void 0 || options.allowKeywords; + const sourceCode = context.getSourceCode(); + + let allowPattern; + + if (options.allowPattern) { + allowPattern = new RegExp(options.allowPattern, "u"); + } + + /** + * Check if the property is valid dot notation + * @param {ASTNode} node The dot notation node + * @param {string} value Value which is to be checked + * @returns {void} + */ + function checkComputedProperty(node, value) { + if ( + validIdentifier.test(value) && + (allowKeywords || !keywords.includes(String(value))) && + !(allowPattern && allowPattern.test(value)) + ) { + const formattedValue = node.property.type === "Literal" ? JSON.stringify(value) : `\`${value}\``; + + context.report({ + node: node.property, + messageId: "useDot", + data: { + key: formattedValue + }, + *fix(fixer) { + const leftBracket = sourceCode.getTokenAfter(node.object, astUtils.isOpeningBracketToken); + const rightBracket = sourceCode.getLastToken(node); + const nextToken = sourceCode.getTokenAfter(node); + + // Don't perform any fixes if there are comments inside the brackets. + if (sourceCode.commentsExistBetween(leftBracket, rightBracket)) { + return; + } + + // Replace the brackets by an identifier. + if (!node.optional) { + yield fixer.insertTextBefore( + leftBracket, + astUtils.isDecimalInteger(node.object) ? " ." : "." + ); + } + yield fixer.replaceTextRange( + [leftBracket.range[0], rightBracket.range[1]], + value + ); + + // Insert a space after the property if it will be connected to the next token. + if ( + nextToken && + rightBracket.range[1] === nextToken.range[0] && + !astUtils.canTokensBeAdjacent(String(value), nextToken) + ) { + yield fixer.insertTextAfter(node, " "); + } + } + }); + } + } + + return { + MemberExpression(node) { + if ( + node.computed && + node.property.type === "Literal" && + (literalTypesToCheck.has(typeof node.property.value) || astUtils.isNullLiteral(node.property)) + ) { + checkComputedProperty(node, node.property.value); + } + if ( + node.computed && + node.property.type === "TemplateLiteral" && + node.property.expressions.length === 0 + ) { + checkComputedProperty(node, node.property.quasis[0].value.cooked); + } + if ( + !allowKeywords && + !node.computed && + node.property.type === "Identifier" && + keywords.includes(String(node.property.name)) + ) { + context.report({ + node: node.property, + messageId: "useBrackets", + data: { + key: node.property.name + }, + *fix(fixer) { + const dotToken = sourceCode.getTokenBefore(node.property); + + // A statement that starts with `let[` is parsed as a destructuring variable declaration, not a MemberExpression. + if (node.object.type === "Identifier" && node.object.name === "let" && !node.optional) { + return; + } + + // Don't perform any fixes if there are comments between the dot and the property name. + if (sourceCode.commentsExistBetween(dotToken, node.property)) { + return; + } + + // Replace the identifier to brackets. + if (!node.optional) { + yield fixer.remove(dotToken); + } + yield fixer.replaceText(node.property, `["${node.property.name}"]`); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/eol-last.js b/node_modules/eslint/lib/rules/eol-last.js new file mode 100644 index 0000000..fb87971 --- /dev/null +++ b/node_modules/eslint/lib/rules/eol-last.js @@ -0,0 +1,112 @@ +/** + * @fileoverview Require or disallow newline at the end of files + * @author Nodeca Team + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow newline at the end of files", + recommended: false, + url: "https://eslint.org/docs/rules/eol-last" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never", "unix", "windows"] + } + ], + + messages: { + missing: "Newline required at end of file but not found.", + unexpected: "Newline not allowed at end of file." + } + }, + create(context) { + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program: function checkBadEOF(node) { + const sourceCode = context.getSourceCode(), + src = sourceCode.getText(), + lastLine = sourceCode.lines[sourceCode.lines.length - 1], + location = { + column: lastLine.length, + line: sourceCode.lines.length + }, + LF = "\n", + CRLF = `\r${LF}`, + endsWithNewline = src.endsWith(LF); + + /* + * Empty source is always valid: No content in file so we don't + * need to lint for a newline on the last line of content. + */ + if (!src.length) { + return; + } + + let mode = context.options[0] || "always", + appendCRLF = false; + + if (mode === "unix") { + + // `"unix"` should behave exactly as `"always"` + mode = "always"; + } + if (mode === "windows") { + + // `"windows"` should behave exactly as `"always"`, but append CRLF in the fixer for backwards compatibility + mode = "always"; + appendCRLF = true; + } + if (mode === "always" && !endsWithNewline) { + + // File is not newline-terminated, but should be + context.report({ + node, + loc: location, + messageId: "missing", + fix(fixer) { + return fixer.insertTextAfterRange([0, src.length], appendCRLF ? CRLF : LF); + } + }); + } else if (mode === "never" && endsWithNewline) { + + const secondLastLine = sourceCode.lines[sourceCode.lines.length - 2]; + + // File is newline-terminated, but shouldn't be + context.report({ + node, + loc: { + start: { line: sourceCode.lines.length - 1, column: secondLastLine.length }, + end: { line: sourceCode.lines.length, column: 0 } + }, + messageId: "unexpected", + fix(fixer) { + const finalEOLs = /(?:\r?\n)+$/u, + match = finalEOLs.exec(sourceCode.text), + start = match.index, + end = sourceCode.text.length; + + return fixer.replaceTextRange([start, end], ""); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/eqeqeq.js b/node_modules/eslint/lib/rules/eqeqeq.js new file mode 100644 index 0000000..b3990e2 --- /dev/null +++ b/node_modules/eslint/lib/rules/eqeqeq.js @@ -0,0 +1,174 @@ +/** + * @fileoverview Rule to flag statements that use != and == instead of !== and === + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require the use of `===` and `!==`", + recommended: false, + url: "https://eslint.org/docs/rules/eqeqeq" + }, + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["always"] + }, + { + type: "object", + properties: { + null: { + enum: ["always", "never", "ignore"] + } + }, + additionalProperties: false + } + ], + additionalItems: false + }, + { + type: "array", + items: [ + { + enum: ["smart", "allow-null"] + } + ], + additionalItems: false + } + ] + }, + + fixable: "code", + + messages: { + unexpected: "Expected '{{expectedOperator}}' and instead saw '{{actualOperator}}'." + } + }, + + create(context) { + const config = context.options[0] || "always"; + const options = context.options[1] || {}; + const sourceCode = context.getSourceCode(); + + const nullOption = (config === "always") + ? options.null || "always" + : "ignore"; + const enforceRuleForNull = (nullOption === "always"); + const enforceInverseRuleForNull = (nullOption === "never"); + + /** + * Checks if an expression is a typeof expression + * @param {ASTNode} node The node to check + * @returns {boolean} if the node is a typeof expression + */ + function isTypeOf(node) { + return node.type === "UnaryExpression" && node.operator === "typeof"; + } + + /** + * Checks if either operand of a binary expression is a typeof operation + * @param {ASTNode} node The node to check + * @returns {boolean} if one of the operands is typeof + * @private + */ + function isTypeOfBinary(node) { + return isTypeOf(node.left) || isTypeOf(node.right); + } + + /** + * Checks if operands are literals of the same type (via typeof) + * @param {ASTNode} node The node to check + * @returns {boolean} if operands are of same type + * @private + */ + function areLiteralsAndSameType(node) { + return node.left.type === "Literal" && node.right.type === "Literal" && + typeof node.left.value === typeof node.right.value; + } + + /** + * Checks if one of the operands is a literal null + * @param {ASTNode} node The node to check + * @returns {boolean} if operands are null + * @private + */ + function isNullCheck(node) { + return astUtils.isNullLiteral(node.right) || astUtils.isNullLiteral(node.left); + } + + /** + * Reports a message for this rule. + * @param {ASTNode} node The binary expression node that was checked + * @param {string} expectedOperator The operator that was expected (either '==', '!=', '===', or '!==') + * @returns {void} + * @private + */ + function report(node, expectedOperator) { + const operatorToken = sourceCode.getFirstTokenBetween( + node.left, + node.right, + token => token.value === node.operator + ); + + context.report({ + node, + loc: operatorToken.loc, + messageId: "unexpected", + data: { expectedOperator, actualOperator: node.operator }, + fix(fixer) { + + // If the comparison is a `typeof` comparison or both sides are literals with the same type, then it's safe to fix. + if (isTypeOfBinary(node) || areLiteralsAndSameType(node)) { + return fixer.replaceText(operatorToken, expectedOperator); + } + return null; + } + }); + } + + return { + BinaryExpression(node) { + const isNull = isNullCheck(node); + + if (node.operator !== "==" && node.operator !== "!=") { + if (enforceInverseRuleForNull && isNull) { + report(node, node.operator.slice(0, -1)); + } + return; + } + + if (config === "smart" && (isTypeOfBinary(node) || + areLiteralsAndSameType(node) || isNull)) { + return; + } + + if (!enforceRuleForNull && isNull) { + return; + } + + report(node, `${node.operator}=`); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/for-direction.js b/node_modules/eslint/lib/rules/for-direction.js new file mode 100644 index 0000000..7df3d7e --- /dev/null +++ b/node_modules/eslint/lib/rules/for-direction.js @@ -0,0 +1,126 @@ +/** + * @fileoverview enforce "for" loop update clause moving the counter in the right direction.(for-direction) + * @author Aladdin-ADD + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Enforce \"for\" loop update clause moving the counter in the right direction.", + recommended: true, + url: "https://eslint.org/docs/rules/for-direction" + }, + + fixable: null, + schema: [], + + messages: { + incorrectDirection: "The update clause in this loop moves the variable in the wrong direction." + } + }, + + create(context) { + + /** + * report an error. + * @param {ASTNode} node the node to report. + * @returns {void} + */ + function report(node) { + context.report({ + node, + messageId: "incorrectDirection" + }); + } + + /** + * check the right side of the assignment + * @param {ASTNode} update UpdateExpression to check + * @param {int} dir expected direction that could either be turned around or invalidated + * @returns {int} return dir, the negated dir or zero if it's not clear for identifiers + */ + function getRightDirection(update, dir) { + if (update.right.type === "UnaryExpression") { + if (update.right.operator === "-") { + return -dir; + } + } else if (update.right.type === "Identifier") { + return 0; + } + return dir; + } + + /** + * check UpdateExpression add/sub the counter + * @param {ASTNode} update UpdateExpression to check + * @param {string} counter variable name to check + * @returns {int} if add return 1, if sub return -1, if nochange, return 0 + */ + function getUpdateDirection(update, counter) { + if (update.argument.type === "Identifier" && update.argument.name === counter) { + if (update.operator === "++") { + return 1; + } + if (update.operator === "--") { + return -1; + } + } + return 0; + } + + /** + * check AssignmentExpression add/sub the counter + * @param {ASTNode} update AssignmentExpression to check + * @param {string} counter variable name to check + * @returns {int} if add return 1, if sub return -1, if nochange, return 0 + */ + function getAssignmentDirection(update, counter) { + if (update.left.name === counter) { + if (update.operator === "+=") { + return getRightDirection(update, 1); + } + if (update.operator === "-=") { + return getRightDirection(update, -1); + } + } + return 0; + } + return { + ForStatement(node) { + + if (node.test && node.test.type === "BinaryExpression" && node.test.left.type === "Identifier" && node.update) { + const counter = node.test.left.name; + const operator = node.test.operator; + const update = node.update; + + let wrongDirection; + + if (operator === "<" || operator === "<=") { + wrongDirection = -1; + } else if (operator === ">" || operator === ">=") { + wrongDirection = 1; + } else { + return; + } + + if (update.type === "UpdateExpression") { + if (getUpdateDirection(update, counter) === wrongDirection) { + report(node); + } + } else if (update.type === "AssignmentExpression" && getAssignmentDirection(update, counter) === wrongDirection) { + report(node); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/func-call-spacing.js b/node_modules/eslint/lib/rules/func-call-spacing.js new file mode 100644 index 0000000..fec6763 --- /dev/null +++ b/node_modules/eslint/lib/rules/func-call-spacing.js @@ -0,0 +1,230 @@ +/** + * @fileoverview Rule to control spacing within function calls + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow spacing between function identifiers and their invocations", + recommended: false, + url: "https://eslint.org/docs/rules/func-call-spacing" + }, + + fixable: "whitespace", + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["never"] + } + ], + minItems: 0, + maxItems: 1 + }, + { + type: "array", + items: [ + { + enum: ["always"] + }, + { + type: "object", + properties: { + allowNewlines: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + + messages: { + unexpectedWhitespace: "Unexpected whitespace between function name and paren.", + unexpectedNewline: "Unexpected newline between function name and paren.", + missing: "Missing space between function name and paren." + } + }, + + create(context) { + + const never = context.options[0] !== "always"; + const allowNewlines = !never && context.options[1] && context.options[1].allowNewlines; + const sourceCode = context.getSourceCode(); + const text = sourceCode.getText(); + + /** + * Check if open space is present in a function name + * @param {ASTNode} node node to evaluate + * @param {Token} leftToken The last token of the callee. This may be the closing parenthesis that encloses the callee. + * @param {Token} rightToken Tha first token of the arguments. this is the opening parenthesis that encloses the arguments. + * @returns {void} + * @private + */ + function checkSpacing(node, leftToken, rightToken) { + const textBetweenTokens = text.slice(leftToken.range[1], rightToken.range[0]).replace(/\/\*.*?\*\//gu, ""); + const hasWhitespace = /\s/u.test(textBetweenTokens); + const hasNewline = hasWhitespace && astUtils.LINEBREAK_MATCHER.test(textBetweenTokens); + + /* + * never allowNewlines hasWhitespace hasNewline message + * F F F F Missing space between function name and paren. + * F F F T (Invalid `!hasWhitespace && hasNewline`) + * F F T T Unexpected newline between function name and paren. + * F F T F (OK) + * F T T F (OK) + * F T T T (OK) + * F T F T (Invalid `!hasWhitespace && hasNewline`) + * F T F F Missing space between function name and paren. + * T T F F (Invalid `never && allowNewlines`) + * T T F T (Invalid `!hasWhitespace && hasNewline`) + * T T T T (Invalid `never && allowNewlines`) + * T T T F (Invalid `never && allowNewlines`) + * T F T F Unexpected space between function name and paren. + * T F T T Unexpected space between function name and paren. + * T F F T (Invalid `!hasWhitespace && hasNewline`) + * T F F F (OK) + * + * T T Unexpected space between function name and paren. + * F F Missing space between function name and paren. + * F F T Unexpected newline between function name and paren. + */ + + if (never && hasWhitespace) { + context.report({ + node, + loc: { + start: leftToken.loc.end, + end: { + line: rightToken.loc.start.line, + column: rightToken.loc.start.column - 1 + } + }, + messageId: "unexpectedWhitespace", + fix(fixer) { + + // Don't remove comments. + if (sourceCode.commentsExistBetween(leftToken, rightToken)) { + return null; + } + + // If `?.` exists, it doesn't hide no-unexpected-multiline errors + if (node.optional) { + return fixer.replaceTextRange([leftToken.range[1], rightToken.range[0]], "?."); + } + + /* + * Only autofix if there is no newline + * https://github.com/eslint/eslint/issues/7787 + */ + if (hasNewline) { + return null; + } + return fixer.removeRange([leftToken.range[1], rightToken.range[0]]); + } + }); + } else if (!never && !hasWhitespace) { + context.report({ + node, + loc: { + start: { + line: leftToken.loc.end.line, + column: leftToken.loc.end.column - 1 + }, + end: rightToken.loc.start + }, + messageId: "missing", + fix(fixer) { + if (node.optional) { + return null; // Not sure if inserting a space to either before/after `?.` token. + } + return fixer.insertTextBefore(rightToken, " "); + } + }); + } else if (!never && !allowNewlines && hasNewline) { + context.report({ + node, + loc: { + start: leftToken.loc.end, + end: rightToken.loc.start + }, + messageId: "unexpectedNewline", + fix(fixer) { + + /* + * Only autofix if there is no newline + * https://github.com/eslint/eslint/issues/7787 + * But if `?.` exists, it doesn't hide no-unexpected-multiline errors + */ + if (!node.optional) { + return null; + } + + // Don't remove comments. + if (sourceCode.commentsExistBetween(leftToken, rightToken)) { + return null; + } + + const range = [leftToken.range[1], rightToken.range[0]]; + const qdToken = sourceCode.getTokenAfter(leftToken); + + if (qdToken.range[0] === leftToken.range[1]) { + return fixer.replaceTextRange(range, "?. "); + } + if (qdToken.range[1] === rightToken.range[0]) { + return fixer.replaceTextRange(range, " ?."); + } + return fixer.replaceTextRange(range, " ?. "); + } + }); + } + } + + return { + "CallExpression, NewExpression"(node) { + const lastToken = sourceCode.getLastToken(node); + const lastCalleeToken = sourceCode.getLastToken(node.callee); + const parenToken = sourceCode.getFirstTokenBetween(lastCalleeToken, lastToken, astUtils.isOpeningParenToken); + const prevToken = parenToken && sourceCode.getTokenBefore(parenToken, astUtils.isNotQuestionDotToken); + + // Parens in NewExpression are optional + if (!(parenToken && parenToken.range[1] < node.range[1])) { + return; + } + + checkSpacing(node, prevToken, parenToken); + }, + + ImportExpression(node) { + const leftToken = sourceCode.getFirstToken(node); + const rightToken = sourceCode.getTokenAfter(leftToken); + + checkSpacing(node, leftToken, rightToken); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/func-name-matching.js b/node_modules/eslint/lib/rules/func-name-matching.js new file mode 100644 index 0000000..391b2a2 --- /dev/null +++ b/node_modules/eslint/lib/rules/func-name-matching.js @@ -0,0 +1,253 @@ +/** + * @fileoverview Rule to require function names to match the name of the variable or property to which they are assigned. + * @author Annie Zhang, Pavel Strashkin + */ + +"use strict"; + +//-------------------------------------------------------------------------- +// Requirements +//-------------------------------------------------------------------------- + +const astUtils = require("./utils/ast-utils"); +const esutils = require("esutils"); + +//-------------------------------------------------------------------------- +// Helpers +//-------------------------------------------------------------------------- + +/** + * Determines if a pattern is `module.exports` or `module["exports"]` + * @param {ASTNode} pattern The left side of the AssignmentExpression + * @returns {boolean} True if the pattern is `module.exports` or `module["exports"]` + */ +function isModuleExports(pattern) { + if (pattern.type === "MemberExpression" && pattern.object.type === "Identifier" && pattern.object.name === "module") { + + // module.exports + if (pattern.property.type === "Identifier" && pattern.property.name === "exports") { + return true; + } + + // module["exports"] + if (pattern.property.type === "Literal" && pattern.property.value === "exports") { + return true; + } + } + return false; +} + +/** + * Determines if a string name is a valid identifier + * @param {string} name The string to be checked + * @param {int} ecmaVersion The ECMAScript version if specified in the parserOptions config + * @returns {boolean} True if the string is a valid identifier + */ +function isIdentifier(name, ecmaVersion) { + if (ecmaVersion >= 6) { + return esutils.keyword.isIdentifierES6(name); + } + return esutils.keyword.isIdentifierES5(name); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const alwaysOrNever = { enum: ["always", "never"] }; +const optionsObject = { + type: "object", + properties: { + considerPropertyDescriptor: { + type: "boolean" + }, + includeCommonJSModuleExports: { + type: "boolean" + } + }, + additionalProperties: false +}; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require function names to match the name of the variable or property to which they are assigned", + recommended: false, + url: "https://eslint.org/docs/rules/func-name-matching" + }, + + schema: { + anyOf: [{ + type: "array", + additionalItems: false, + items: [alwaysOrNever, optionsObject] + }, { + type: "array", + additionalItems: false, + items: [optionsObject] + }] + }, + + messages: { + matchProperty: "Function name `{{funcName}}` should match property name `{{name}}`.", + matchVariable: "Function name `{{funcName}}` should match variable name `{{name}}`.", + notMatchProperty: "Function name `{{funcName}}` should not match property name `{{name}}`.", + notMatchVariable: "Function name `{{funcName}}` should not match variable name `{{name}}`." + } + }, + + create(context) { + const options = (typeof context.options[0] === "object" ? context.options[0] : context.options[1]) || {}; + const nameMatches = typeof context.options[0] === "string" ? context.options[0] : "always"; + const considerPropertyDescriptor = options.considerPropertyDescriptor; + const includeModuleExports = options.includeCommonJSModuleExports; + const ecmaVersion = context.parserOptions && context.parserOptions.ecmaVersion ? context.parserOptions.ecmaVersion : 5; + + /** + * Check whether node is a certain CallExpression. + * @param {string} objName object name + * @param {string} funcName function name + * @param {ASTNode} node The node to check + * @returns {boolean} `true` if node matches CallExpression + */ + function isPropertyCall(objName, funcName, node) { + if (!node) { + return false; + } + return node.type === "CallExpression" && astUtils.isSpecificMemberAccess(node.callee, objName, funcName); + } + + /** + * Compares identifiers based on the nameMatches option + * @param {string} x the first identifier + * @param {string} y the second identifier + * @returns {boolean} whether the two identifiers should warn. + */ + function shouldWarn(x, y) { + return (nameMatches === "always" && x !== y) || (nameMatches === "never" && x === y); + } + + /** + * Reports + * @param {ASTNode} node The node to report + * @param {string} name The variable or property name + * @param {string} funcName The function name + * @param {boolean} isProp True if the reported node is a property assignment + * @returns {void} + */ + function report(node, name, funcName, isProp) { + let messageId; + + if (nameMatches === "always" && isProp) { + messageId = "matchProperty"; + } else if (nameMatches === "always") { + messageId = "matchVariable"; + } else if (isProp) { + messageId = "notMatchProperty"; + } else { + messageId = "notMatchVariable"; + } + context.report({ + node, + messageId, + data: { + name, + funcName + } + }); + } + + /** + * Determines whether a given node is a string literal + * @param {ASTNode} node The node to check + * @returns {boolean} `true` if the node is a string literal + */ + function isStringLiteral(node) { + return node.type === "Literal" && typeof node.value === "string"; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + VariableDeclarator(node) { + if (!node.init || node.init.type !== "FunctionExpression" || node.id.type !== "Identifier") { + return; + } + if (node.init.id && shouldWarn(node.id.name, node.init.id.name)) { + report(node, node.id.name, node.init.id.name, false); + } + }, + + AssignmentExpression(node) { + if ( + node.right.type !== "FunctionExpression" || + (node.left.computed && node.left.property.type !== "Literal") || + (!includeModuleExports && isModuleExports(node.left)) || + (node.left.type !== "Identifier" && node.left.type !== "MemberExpression") + ) { + return; + } + + const isProp = node.left.type === "MemberExpression"; + const name = isProp ? astUtils.getStaticPropertyName(node.left) : node.left.name; + + if (node.right.id && name && isIdentifier(name) && shouldWarn(name, node.right.id.name)) { + report(node, name, node.right.id.name, isProp); + } + }, + + "Property, PropertyDefinition[value]"(node) { + if (!(node.value.type === "FunctionExpression" && node.value.id)) { + return; + } + + if (node.key.type === "Identifier" && !node.computed) { + const functionName = node.value.id.name; + let propertyName = node.key.name; + + if ( + considerPropertyDescriptor && + propertyName === "value" && + node.parent.type === "ObjectExpression" + ) { + if (isPropertyCall("Object", "defineProperty", node.parent.parent) || isPropertyCall("Reflect", "defineProperty", node.parent.parent)) { + const property = node.parent.parent.arguments[1]; + + if (isStringLiteral(property) && shouldWarn(property.value, functionName)) { + report(node, property.value, functionName, true); + } + } else if (isPropertyCall("Object", "defineProperties", node.parent.parent.parent.parent)) { + propertyName = node.parent.parent.key.name; + if (!node.parent.parent.computed && shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + } else if (isPropertyCall("Object", "create", node.parent.parent.parent.parent)) { + propertyName = node.parent.parent.key.name; + if (!node.parent.parent.computed && shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + } else if (shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + } else if (shouldWarn(propertyName, functionName)) { + report(node, propertyName, functionName, true); + } + return; + } + + if ( + isStringLiteral(node.key) && + isIdentifier(node.key.value, ecmaVersion) && + shouldWarn(node.key.value, node.value.id.name) + ) { + report(node, node.key.value, node.value.id.name, true); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/func-names.js b/node_modules/eslint/lib/rules/func-names.js new file mode 100644 index 0000000..ee46645 --- /dev/null +++ b/node_modules/eslint/lib/rules/func-names.js @@ -0,0 +1,191 @@ +/** + * @fileoverview Rule to warn when a function expression does not have a name. + * @author Kyle T. Nunery + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +/** + * Checks whether or not a given variable is a function name. + * @param {eslint-scope.Variable} variable A variable to check. + * @returns {boolean} `true` if the variable is a function name. + */ +function isFunctionName(variable) { + return variable && variable.defs[0].type === "FunctionName"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require or disallow named `function` expressions", + recommended: false, + url: "https://eslint.org/docs/rules/func-names" + }, + + schema: { + definitions: { + value: { + enum: [ + "always", + "as-needed", + "never" + ] + } + }, + items: [ + { + $ref: "#/definitions/value" + }, + { + type: "object", + properties: { + generators: { + $ref: "#/definitions/value" + } + }, + additionalProperties: false + } + ] + }, + + messages: { + unnamed: "Unexpected unnamed {{name}}.", + named: "Unexpected named {{name}}." + } + }, + + create(context) { + + const sourceCode = context.getSourceCode(); + + /** + * Returns the config option for the given node. + * @param {ASTNode} node A node to get the config for. + * @returns {string} The config option. + */ + function getConfigForNode(node) { + if ( + node.generator && + context.options.length > 1 && + context.options[1].generators + ) { + return context.options[1].generators; + } + + return context.options[0] || "always"; + } + + /** + * Determines whether the current FunctionExpression node is a get, set, or + * shorthand method in an object literal or a class. + * @param {ASTNode} node A node to check. + * @returns {boolean} True if the node is a get, set, or shorthand method. + */ + function isObjectOrClassMethod(node) { + const parent = node.parent; + + return (parent.type === "MethodDefinition" || ( + parent.type === "Property" && ( + parent.method || + parent.kind === "get" || + parent.kind === "set" + ) + )); + } + + /** + * Determines whether the current FunctionExpression node has a name that would be + * inferred from context in a conforming ES6 environment. + * @param {ASTNode} node A node to check. + * @returns {boolean} True if the node would have a name assigned automatically. + */ + function hasInferredName(node) { + const parent = node.parent; + + return isObjectOrClassMethod(node) || + (parent.type === "VariableDeclarator" && parent.id.type === "Identifier" && parent.init === node) || + (parent.type === "Property" && parent.value === node) || + (parent.type === "PropertyDefinition" && parent.value === node) || + (parent.type === "AssignmentExpression" && parent.left.type === "Identifier" && parent.right === node) || + (parent.type === "AssignmentPattern" && parent.left.type === "Identifier" && parent.right === node); + } + + /** + * Reports that an unnamed function should be named + * @param {ASTNode} node The node to report in the event of an error. + * @returns {void} + */ + function reportUnexpectedUnnamedFunction(node) { + context.report({ + node, + messageId: "unnamed", + loc: astUtils.getFunctionHeadLoc(node, sourceCode), + data: { name: astUtils.getFunctionNameWithKind(node) } + }); + } + + /** + * Reports that a named function should be unnamed + * @param {ASTNode} node The node to report in the event of an error. + * @returns {void} + */ + function reportUnexpectedNamedFunction(node) { + context.report({ + node, + messageId: "named", + loc: astUtils.getFunctionHeadLoc(node, sourceCode), + data: { name: astUtils.getFunctionNameWithKind(node) } + }); + } + + /** + * The listener for function nodes. + * @param {ASTNode} node function node + * @returns {void} + */ + function handleFunction(node) { + + // Skip recursive functions. + const nameVar = context.getDeclaredVariables(node)[0]; + + if (isFunctionName(nameVar) && nameVar.references.length > 0) { + return; + } + + const hasName = Boolean(node.id && node.id.name); + const config = getConfigForNode(node); + + if (config === "never") { + if (hasName && node.type !== "FunctionDeclaration") { + reportUnexpectedNamedFunction(node); + } + } else if (config === "as-needed") { + if (!hasName && !hasInferredName(node)) { + reportUnexpectedUnnamedFunction(node); + } + } else { + if (!hasName && !isObjectOrClassMethod(node)) { + reportUnexpectedUnnamedFunction(node); + } + } + } + + return { + "FunctionExpression:exit": handleFunction, + "ExportDefaultDeclaration > FunctionDeclaration": handleFunction + }; + } +}; diff --git a/node_modules/eslint/lib/rules/func-style.js b/node_modules/eslint/lib/rules/func-style.js new file mode 100644 index 0000000..0e1ba9f --- /dev/null +++ b/node_modules/eslint/lib/rules/func-style.js @@ -0,0 +1,98 @@ +/** + * @fileoverview Rule to enforce a particular function style + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce the consistent use of either `function` declarations or expressions", + recommended: false, + url: "https://eslint.org/docs/rules/func-style" + }, + + schema: [ + { + enum: ["declaration", "expression"] + }, + { + type: "object", + properties: { + allowArrowFunctions: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + expression: "Expected a function expression.", + declaration: "Expected a function declaration." + } + }, + + create(context) { + + const style = context.options[0], + allowArrowFunctions = context.options[1] && context.options[1].allowArrowFunctions, + enforceDeclarations = (style === "declaration"), + stack = []; + + const nodesToCheck = { + FunctionDeclaration(node) { + stack.push(false); + + if (!enforceDeclarations && node.parent.type !== "ExportDefaultDeclaration") { + context.report({ node, messageId: "expression" }); + } + }, + "FunctionDeclaration:exit"() { + stack.pop(); + }, + + FunctionExpression(node) { + stack.push(false); + + if (enforceDeclarations && node.parent.type === "VariableDeclarator") { + context.report({ node: node.parent, messageId: "declaration" }); + } + }, + "FunctionExpression:exit"() { + stack.pop(); + }, + + ThisExpression() { + if (stack.length > 0) { + stack[stack.length - 1] = true; + } + } + }; + + if (!allowArrowFunctions) { + nodesToCheck.ArrowFunctionExpression = function() { + stack.push(false); + }; + + nodesToCheck["ArrowFunctionExpression:exit"] = function(node) { + const hasThisExpr = stack.pop(); + + if (enforceDeclarations && !hasThisExpr && node.parent.type === "VariableDeclarator") { + context.report({ node: node.parent, messageId: "declaration" }); + } + }; + } + + return nodesToCheck; + + } +}; diff --git a/node_modules/eslint/lib/rules/function-call-argument-newline.js b/node_modules/eslint/lib/rules/function-call-argument-newline.js new file mode 100644 index 0000000..4661091 --- /dev/null +++ b/node_modules/eslint/lib/rules/function-call-argument-newline.js @@ -0,0 +1,122 @@ +/** + * @fileoverview Rule to enforce line breaks between arguments of a function call + * @author Alexey Gonchar + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce line breaks between arguments of a function call", + recommended: false, + url: "https://eslint.org/docs/rules/function-call-argument-newline" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never", "consistent"] + } + ], + + messages: { + unexpectedLineBreak: "There should be no line break here.", + missingLineBreak: "There should be a line break after this argument." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + const checkers = { + unexpected: { + messageId: "unexpectedLineBreak", + check: (prevToken, currentToken) => prevToken.loc.end.line !== currentToken.loc.start.line, + createFix: (token, tokenBefore) => fixer => + fixer.replaceTextRange([tokenBefore.range[1], token.range[0]], " ") + }, + missing: { + messageId: "missingLineBreak", + check: (prevToken, currentToken) => prevToken.loc.end.line === currentToken.loc.start.line, + createFix: (token, tokenBefore) => fixer => + fixer.replaceTextRange([tokenBefore.range[1], token.range[0]], "\n") + } + }; + + /** + * Check all arguments for line breaks in the CallExpression + * @param {CallExpression} node node to evaluate + * @param {{ messageId: string, check: Function }} checker selected checker + * @returns {void} + * @private + */ + function checkArguments(node, checker) { + for (let i = 1; i < node.arguments.length; i++) { + const prevArgToken = sourceCode.getLastToken(node.arguments[i - 1]); + const currentArgToken = sourceCode.getFirstToken(node.arguments[i]); + + if (checker.check(prevArgToken, currentArgToken)) { + const tokenBefore = sourceCode.getTokenBefore( + currentArgToken, + { includeComments: true } + ); + + const hasLineCommentBefore = tokenBefore.type === "Line"; + + context.report({ + node, + loc: { + start: tokenBefore.loc.end, + end: currentArgToken.loc.start + }, + messageId: checker.messageId, + fix: hasLineCommentBefore ? null : checker.createFix(currentArgToken, tokenBefore) + }); + } + } + } + + /** + * Check if open space is present in a function name + * @param {CallExpression} node node to evaluate + * @returns {void} + * @private + */ + function check(node) { + if (node.arguments.length < 2) { + return; + } + + const option = context.options[0] || "always"; + + if (option === "never") { + checkArguments(node, checkers.unexpected); + } else if (option === "always") { + checkArguments(node, checkers.missing); + } else if (option === "consistent") { + const firstArgToken = sourceCode.getLastToken(node.arguments[0]); + const secondArgToken = sourceCode.getFirstToken(node.arguments[1]); + + if (firstArgToken.loc.end.line === secondArgToken.loc.start.line) { + checkArguments(node, checkers.unexpected); + } else { + checkArguments(node, checkers.missing); + } + } + } + + return { + CallExpression: check, + NewExpression: check + }; + } +}; diff --git a/node_modules/eslint/lib/rules/function-paren-newline.js b/node_modules/eslint/lib/rules/function-paren-newline.js new file mode 100644 index 0000000..e61d17b --- /dev/null +++ b/node_modules/eslint/lib/rules/function-paren-newline.js @@ -0,0 +1,289 @@ +/** + * @fileoverview enforce consistent line breaks inside function parentheses + * @author Teddy Katz + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent line breaks inside function parentheses", + recommended: false, + url: "https://eslint.org/docs/rules/function-paren-newline" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["always", "never", "consistent", "multiline", "multiline-arguments"] + }, + { + type: "object", + properties: { + minItems: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + expectedBefore: "Expected newline before ')'.", + expectedAfter: "Expected newline after '('.", + expectedBetween: "Expected newline between arguments/params.", + unexpectedBefore: "Unexpected newline before ')'.", + unexpectedAfter: "Unexpected newline after '('." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const rawOption = context.options[0] || "multiline"; + const multilineOption = rawOption === "multiline"; + const multilineArgumentsOption = rawOption === "multiline-arguments"; + const consistentOption = rawOption === "consistent"; + let minItems; + + if (typeof rawOption === "object") { + minItems = rawOption.minItems; + } else if (rawOption === "always") { + minItems = 0; + } else if (rawOption === "never") { + minItems = Infinity; + } else { + minItems = null; + } + + //---------------------------------------------------------------------- + // Helpers + //---------------------------------------------------------------------- + + /** + * Determines whether there should be newlines inside function parens + * @param {ASTNode[]} elements The arguments or parameters in the list + * @param {boolean} hasLeftNewline `true` if the left paren has a newline in the current code. + * @returns {boolean} `true` if there should be newlines inside the function parens + */ + function shouldHaveNewlines(elements, hasLeftNewline) { + if (multilineArgumentsOption && elements.length === 1) { + return hasLeftNewline; + } + if (multilineOption || multilineArgumentsOption) { + return elements.some((element, index) => index !== elements.length - 1 && element.loc.end.line !== elements[index + 1].loc.start.line); + } + if (consistentOption) { + return hasLeftNewline; + } + return elements.length >= minItems; + } + + /** + * Validates parens + * @param {Object} parens An object with keys `leftParen` for the left paren token, and `rightParen` for the right paren token + * @param {ASTNode[]} elements The arguments or parameters in the list + * @returns {void} + */ + function validateParens(parens, elements) { + const leftParen = parens.leftParen; + const rightParen = parens.rightParen; + const tokenAfterLeftParen = sourceCode.getTokenAfter(leftParen); + const tokenBeforeRightParen = sourceCode.getTokenBefore(rightParen); + const hasLeftNewline = !astUtils.isTokenOnSameLine(leftParen, tokenAfterLeftParen); + const hasRightNewline = !astUtils.isTokenOnSameLine(tokenBeforeRightParen, rightParen); + const needsNewlines = shouldHaveNewlines(elements, hasLeftNewline); + + if (hasLeftNewline && !needsNewlines) { + context.report({ + node: leftParen, + messageId: "unexpectedAfter", + fix(fixer) { + return sourceCode.getText().slice(leftParen.range[1], tokenAfterLeftParen.range[0]).trim() + + // If there is a comment between the ( and the first element, don't do a fix. + ? null + : fixer.removeRange([leftParen.range[1], tokenAfterLeftParen.range[0]]); + } + }); + } else if (!hasLeftNewline && needsNewlines) { + context.report({ + node: leftParen, + messageId: "expectedAfter", + fix: fixer => fixer.insertTextAfter(leftParen, "\n") + }); + } + + if (hasRightNewline && !needsNewlines) { + context.report({ + node: rightParen, + messageId: "unexpectedBefore", + fix(fixer) { + return sourceCode.getText().slice(tokenBeforeRightParen.range[1], rightParen.range[0]).trim() + + // If there is a comment between the last element and the ), don't do a fix. + ? null + : fixer.removeRange([tokenBeforeRightParen.range[1], rightParen.range[0]]); + } + }); + } else if (!hasRightNewline && needsNewlines) { + context.report({ + node: rightParen, + messageId: "expectedBefore", + fix: fixer => fixer.insertTextBefore(rightParen, "\n") + }); + } + } + + /** + * Validates a list of arguments or parameters + * @param {Object} parens An object with keys `leftParen` for the left paren token, and `rightParen` for the right paren token + * @param {ASTNode[]} elements The arguments or parameters in the list + * @returns {void} + */ + function validateArguments(parens, elements) { + const leftParen = parens.leftParen; + const tokenAfterLeftParen = sourceCode.getTokenAfter(leftParen); + const hasLeftNewline = !astUtils.isTokenOnSameLine(leftParen, tokenAfterLeftParen); + const needsNewlines = shouldHaveNewlines(elements, hasLeftNewline); + + for (let i = 0; i <= elements.length - 2; i++) { + const currentElement = elements[i]; + const nextElement = elements[i + 1]; + const hasNewLine = currentElement.loc.end.line !== nextElement.loc.start.line; + + if (!hasNewLine && needsNewlines) { + context.report({ + node: currentElement, + messageId: "expectedBetween", + fix: fixer => fixer.insertTextBefore(nextElement, "\n") + }); + } + } + } + + /** + * Gets the left paren and right paren tokens of a node. + * @param {ASTNode} node The node with parens + * @throws {TypeError} Unexpected node type. + * @returns {Object} An object with keys `leftParen` for the left paren token, and `rightParen` for the right paren token. + * Can also return `null` if an expression has no parens (e.g. a NewExpression with no arguments, or an ArrowFunctionExpression + * with a single parameter) + */ + function getParenTokens(node) { + switch (node.type) { + case "NewExpression": + if (!node.arguments.length && + !( + astUtils.isOpeningParenToken(sourceCode.getLastToken(node, { skip: 1 })) && + astUtils.isClosingParenToken(sourceCode.getLastToken(node)) && + node.callee.range[1] < node.range[1] + ) + ) { + + // If the NewExpression does not have parens (e.g. `new Foo`), return null. + return null; + } + + // falls through + + case "CallExpression": + return { + leftParen: sourceCode.getTokenAfter(node.callee, astUtils.isOpeningParenToken), + rightParen: sourceCode.getLastToken(node) + }; + + case "FunctionDeclaration": + case "FunctionExpression": { + const leftParen = sourceCode.getFirstToken(node, astUtils.isOpeningParenToken); + const rightParen = node.params.length + ? sourceCode.getTokenAfter(node.params[node.params.length - 1], astUtils.isClosingParenToken) + : sourceCode.getTokenAfter(leftParen); + + return { leftParen, rightParen }; + } + + case "ArrowFunctionExpression": { + const firstToken = sourceCode.getFirstToken(node, { skip: (node.async ? 1 : 0) }); + + if (!astUtils.isOpeningParenToken(firstToken)) { + + // If the ArrowFunctionExpression has a single param without parens, return null. + return null; + } + + const rightParen = node.params.length + ? sourceCode.getTokenAfter(node.params[node.params.length - 1], astUtils.isClosingParenToken) + : sourceCode.getTokenAfter(firstToken); + + return { + leftParen: firstToken, + rightParen + }; + } + + case "ImportExpression": { + const leftParen = sourceCode.getFirstToken(node, 1); + const rightParen = sourceCode.getLastToken(node); + + return { leftParen, rightParen }; + } + + default: + throw new TypeError(`unexpected node with type ${node.type}`); + } + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + [[ + "ArrowFunctionExpression", + "CallExpression", + "FunctionDeclaration", + "FunctionExpression", + "ImportExpression", + "NewExpression" + ]](node) { + const parens = getParenTokens(node); + let params; + + if (node.type === "ImportExpression") { + params = [node.source]; + } else if (astUtils.isFunction(node)) { + params = node.params; + } else { + params = node.arguments; + } + + if (parens) { + validateParens(parens, params); + + if (multilineArgumentsOption) { + validateArguments(parens, params); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/generator-star-spacing.js b/node_modules/eslint/lib/rules/generator-star-spacing.js new file mode 100644 index 0000000..d32b21f --- /dev/null +++ b/node_modules/eslint/lib/rules/generator-star-spacing.js @@ -0,0 +1,206 @@ +/** + * @fileoverview Rule to check the spacing around the * in generator functions. + * @author Jamund Ferguson + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const OVERRIDE_SCHEMA = { + oneOf: [ + { + enum: ["before", "after", "both", "neither"] + }, + { + type: "object", + properties: { + before: { type: "boolean" }, + after: { type: "boolean" } + }, + additionalProperties: false + } + ] +}; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing around `*` operators in generator functions", + recommended: false, + url: "https://eslint.org/docs/rules/generator-star-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["before", "after", "both", "neither"] + }, + { + type: "object", + properties: { + before: { type: "boolean" }, + after: { type: "boolean" }, + named: OVERRIDE_SCHEMA, + anonymous: OVERRIDE_SCHEMA, + method: OVERRIDE_SCHEMA + }, + additionalProperties: false + } + ] + } + ], + + messages: { + missingBefore: "Missing space before *.", + missingAfter: "Missing space after *.", + unexpectedBefore: "Unexpected space before *.", + unexpectedAfter: "Unexpected space after *." + } + }, + + create(context) { + + const optionDefinitions = { + before: { before: true, after: false }, + after: { before: false, after: true }, + both: { before: true, after: true }, + neither: { before: false, after: false } + }; + + /** + * Returns resolved option definitions based on an option and defaults + * @param {any} option The option object or string value + * @param {Object} defaults The defaults to use if options are not present + * @returns {Object} the resolved object definition + */ + function optionToDefinition(option, defaults) { + if (!option) { + return defaults; + } + + return typeof option === "string" + ? optionDefinitions[option] + : Object.assign({}, defaults, option); + } + + const modes = (function(option) { + const defaults = optionToDefinition(option, optionDefinitions.before); + + return { + named: optionToDefinition(option.named, defaults), + anonymous: optionToDefinition(option.anonymous, defaults), + method: optionToDefinition(option.method, defaults) + }; + }(context.options[0] || {})); + + const sourceCode = context.getSourceCode(); + + /** + * Checks if the given token is a star token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a star token. + */ + function isStarToken(token) { + return token.value === "*" && token.type === "Punctuator"; + } + + /** + * Gets the generator star token of the given function node. + * @param {ASTNode} node The function node to get. + * @returns {Token} Found star token. + */ + function getStarToken(node) { + return sourceCode.getFirstToken( + (node.parent.method || node.parent.type === "MethodDefinition") ? node.parent : node, + isStarToken + ); + } + + /** + * capitalize a given string. + * @param {string} str the given string. + * @returns {string} the capitalized string. + */ + function capitalize(str) { + return str[0].toUpperCase() + str.slice(1); + } + + /** + * Checks the spacing between two tokens before or after the star token. + * @param {string} kind Either "named", "anonymous", or "method" + * @param {string} side Either "before" or "after". + * @param {Token} leftToken `function` keyword token if side is "before", or + * star token if side is "after". + * @param {Token} rightToken Star token if side is "before", or identifier + * token if side is "after". + * @returns {void} + */ + function checkSpacing(kind, side, leftToken, rightToken) { + if (!!(rightToken.range[0] - leftToken.range[1]) !== modes[kind][side]) { + const after = leftToken.value === "*"; + const spaceRequired = modes[kind][side]; + const node = after ? leftToken : rightToken; + const messageId = `${spaceRequired ? "missing" : "unexpected"}${capitalize(side)}`; + + context.report({ + node, + messageId, + fix(fixer) { + if (spaceRequired) { + if (after) { + return fixer.insertTextAfter(node, " "); + } + return fixer.insertTextBefore(node, " "); + } + return fixer.removeRange([leftToken.range[1], rightToken.range[0]]); + } + }); + } + } + + /** + * Enforces the spacing around the star if node is a generator function. + * @param {ASTNode} node A function expression or declaration node. + * @returns {void} + */ + function checkFunction(node) { + if (!node.generator) { + return; + } + + const starToken = getStarToken(node); + const prevToken = sourceCode.getTokenBefore(starToken); + const nextToken = sourceCode.getTokenAfter(starToken); + + let kind = "named"; + + if (node.parent.type === "MethodDefinition" || (node.parent.type === "Property" && node.parent.method)) { + kind = "method"; + } else if (!node.id) { + kind = "anonymous"; + } + + // Only check before when preceded by `function`|`static` keyword + if (!(kind === "method" && starToken === sourceCode.getFirstToken(node.parent))) { + checkSpacing(kind, "before", prevToken, starToken); + } + + checkSpacing(kind, "after", starToken, nextToken); + } + + return { + FunctionDeclaration: checkFunction, + FunctionExpression: checkFunction + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/getter-return.js b/node_modules/eslint/lib/rules/getter-return.js new file mode 100644 index 0000000..5209ab1 --- /dev/null +++ b/node_modules/eslint/lib/rules/getter-return.js @@ -0,0 +1,173 @@ +/** + * @fileoverview Enforces that a return statement is present in property getters. + * @author Aladdin-ADD(hh_2013@foxmail.com) + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ +const TARGET_NODE_TYPE = /^(?:Arrow)?FunctionExpression$/u; + +/** + * Checks a given code path segment is reachable. + * @param {CodePathSegment} segment A segment to check. + * @returns {boolean} `true` if the segment is reachable. + */ +function isReachable(segment) { + return segment.reachable; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Enforce `return` statements in getters", + recommended: true, + url: "https://eslint.org/docs/rules/getter-return" + }, + + fixable: null, + + schema: [ + { + type: "object", + properties: { + allowImplicit: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + expected: "Expected to return a value in {{name}}.", + expectedAlways: "Expected {{name}} to always return a value." + } + }, + + create(context) { + + const options = context.options[0] || { allowImplicit: false }; + const sourceCode = context.getSourceCode(); + + let funcInfo = { + upper: null, + codePath: null, + hasReturn: false, + shouldCheck: false, + node: null + }; + + /** + * Checks whether or not the last code path segment is reachable. + * Then reports this function if the segment is reachable. + * + * If the last code path segment is reachable, there are paths which are not + * returned or thrown. + * @param {ASTNode} node A node to check. + * @returns {void} + */ + function checkLastSegment(node) { + if (funcInfo.shouldCheck && + funcInfo.codePath.currentSegments.some(isReachable) + ) { + context.report({ + node, + loc: astUtils.getFunctionHeadLoc(node, sourceCode), + messageId: funcInfo.hasReturn ? "expectedAlways" : "expected", + data: { + name: astUtils.getFunctionNameWithKind(funcInfo.node) + } + }); + } + } + + /** + * Checks whether a node means a getter function. + * @param {ASTNode} node a node to check. + * @returns {boolean} if node means a getter, return true; else return false. + */ + function isGetter(node) { + const parent = node.parent; + + if (TARGET_NODE_TYPE.test(node.type) && node.body.type === "BlockStatement") { + if (parent.kind === "get") { + return true; + } + if (parent.type === "Property" && astUtils.getStaticPropertyName(parent) === "get" && parent.parent.type === "ObjectExpression") { + + // Object.defineProperty() + if (parent.parent.parent.type === "CallExpression" && + astUtils.getStaticPropertyName(parent.parent.parent.callee) === "defineProperty") { + return true; + } + + // Object.defineProperties() + if (parent.parent.parent.type === "Property" && + parent.parent.parent.parent.type === "ObjectExpression" && + parent.parent.parent.parent.parent.type === "CallExpression" && + astUtils.getStaticPropertyName(parent.parent.parent.parent.parent.callee) === "defineProperties") { + return true; + } + } + } + return false; + } + return { + + // Stacks this function's information. + onCodePathStart(codePath, node) { + funcInfo = { + upper: funcInfo, + codePath, + hasReturn: false, + shouldCheck: isGetter(node), + node + }; + }, + + // Pops this function's information. + onCodePathEnd() { + funcInfo = funcInfo.upper; + }, + + // Checks the return statement is valid. + ReturnStatement(node) { + if (funcInfo.shouldCheck) { + funcInfo.hasReturn = true; + + // if allowImplicit: false, should also check node.argument + if (!options.allowImplicit && !node.argument) { + context.report({ + node, + messageId: "expected", + data: { + name: astUtils.getFunctionNameWithKind(funcInfo.node) + } + }); + } + } + }, + + // Reports a given function if the last path is reachable. + "FunctionExpression:exit": checkLastSegment, + "ArrowFunctionExpression:exit": checkLastSegment + }; + } +}; diff --git a/node_modules/eslint/lib/rules/global-require.js b/node_modules/eslint/lib/rules/global-require.js new file mode 100644 index 0000000..ceb0a8e --- /dev/null +++ b/node_modules/eslint/lib/rules/global-require.js @@ -0,0 +1,88 @@ +/** + * @fileoverview Rule for disallowing require() outside of the top-level module context + * @author Jamund Ferguson + * @deprecated in ESLint v7.0.0 + */ + +"use strict"; + +const ACCEPTABLE_PARENTS = new Set([ + "AssignmentExpression", + "VariableDeclarator", + "MemberExpression", + "ExpressionStatement", + "CallExpression", + "ConditionalExpression", + "Program", + "VariableDeclaration", + "ChainExpression" +]); + +/** + * Finds the eslint-scope reference in the given scope. + * @param {Object} scope The scope to search. + * @param {ASTNode} node The identifier node. + * @returns {Reference|null} Returns the found reference or null if none were found. + */ +function findReference(scope, node) { + const references = scope.references.filter(reference => reference.identifier.range[0] === node.range[0] && + reference.identifier.range[1] === node.range[1]); + + if (references.length === 1) { + return references[0]; + } + + /* c8 ignore next */ + return null; + +} + +/** + * Checks if the given identifier node is shadowed in the given scope. + * @param {Object} scope The current scope. + * @param {ASTNode} node The identifier node to check. + * @returns {boolean} Whether or not the name is shadowed. + */ +function isShadowed(scope, node) { + const reference = findReference(scope, node); + + return reference && reference.resolved && reference.resolved.defs.length > 0; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Require `require()` calls to be placed at top-level module scope", + recommended: false, + url: "https://eslint.org/docs/rules/global-require" + }, + + schema: [], + messages: { + unexpected: "Unexpected require()." + } + }, + + create(context) { + return { + CallExpression(node) { + const currentScope = context.getScope(); + + if (node.callee.name === "require" && !isShadowed(currentScope, node.callee)) { + const isGoodRequire = context.getAncestors().every(parent => ACCEPTABLE_PARENTS.has(parent.type)); + + if (!isGoodRequire) { + context.report({ node, messageId: "unexpected" }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/grouped-accessor-pairs.js b/node_modules/eslint/lib/rules/grouped-accessor-pairs.js new file mode 100644 index 0000000..21374be --- /dev/null +++ b/node_modules/eslint/lib/rules/grouped-accessor-pairs.js @@ -0,0 +1,224 @@ +/** + * @fileoverview Rule to require grouped accessor pairs in object literals and classes + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * Property name if it can be computed statically, otherwise the list of the tokens of the key node. + * @typedef {string|Token[]} Key + */ + +/** + * Accessor nodes with the same key. + * @typedef {Object} AccessorData + * @property {Key} key Accessor's key + * @property {ASTNode[]} getters List of getter nodes. + * @property {ASTNode[]} setters List of setter nodes. + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not the given lists represent the equal tokens in the same order. + * Tokens are compared by their properties, not by instance. + * @param {Token[]} left First list of tokens. + * @param {Token[]} right Second list of tokens. + * @returns {boolean} `true` if the lists have same tokens. + */ +function areEqualTokenLists(left, right) { + if (left.length !== right.length) { + return false; + } + + for (let i = 0; i < left.length; i++) { + const leftToken = left[i], + rightToken = right[i]; + + if (leftToken.type !== rightToken.type || leftToken.value !== rightToken.value) { + return false; + } + } + + return true; +} + +/** + * Checks whether or not the given keys are equal. + * @param {Key} left First key. + * @param {Key} right Second key. + * @returns {boolean} `true` if the keys are equal. + */ +function areEqualKeys(left, right) { + if (typeof left === "string" && typeof right === "string") { + + // Statically computed names. + return left === right; + } + if (Array.isArray(left) && Array.isArray(right)) { + + // Token lists. + return areEqualTokenLists(left, right); + } + + return false; +} + +/** + * Checks whether or not a given node is of an accessor kind ('get' or 'set'). + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is of an accessor kind. + */ +function isAccessorKind(node) { + return node.kind === "get" || node.kind === "set"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require grouped accessor pairs in object literals and classes", + recommended: false, + url: "https://eslint.org/docs/rules/grouped-accessor-pairs" + }, + + schema: [ + { + enum: ["anyOrder", "getBeforeSet", "setBeforeGet"] + } + ], + + messages: { + notGrouped: "Accessor pair {{ formerName }} and {{ latterName }} should be grouped.", + invalidOrder: "Expected {{ latterName }} to be before {{ formerName }}." + } + }, + + create(context) { + const order = context.options[0] || "anyOrder"; + const sourceCode = context.getSourceCode(); + + /** + * Reports the given accessor pair. + * @param {string} messageId messageId to report. + * @param {ASTNode} formerNode getter/setter node that is defined before `latterNode`. + * @param {ASTNode} latterNode getter/setter node that is defined after `formerNode`. + * @returns {void} + * @private + */ + function report(messageId, formerNode, latterNode) { + context.report({ + node: latterNode, + messageId, + loc: astUtils.getFunctionHeadLoc(latterNode.value, sourceCode), + data: { + formerName: astUtils.getFunctionNameWithKind(formerNode.value), + latterName: astUtils.getFunctionNameWithKind(latterNode.value) + } + }); + } + + /** + * Creates a new `AccessorData` object for the given getter or setter node. + * @param {ASTNode} node A getter or setter node. + * @returns {AccessorData} New `AccessorData` object that contains the given node. + * @private + */ + function createAccessorData(node) { + const name = astUtils.getStaticPropertyName(node); + const key = (name !== null) ? name : sourceCode.getTokens(node.key); + + return { + key, + getters: node.kind === "get" ? [node] : [], + setters: node.kind === "set" ? [node] : [] + }; + } + + /** + * Merges the given `AccessorData` object into the given accessors list. + * @param {AccessorData[]} accessors The list to merge into. + * @param {AccessorData} accessorData The object to merge. + * @returns {AccessorData[]} The same instance with the merged object. + * @private + */ + function mergeAccessorData(accessors, accessorData) { + const equalKeyElement = accessors.find(a => areEqualKeys(a.key, accessorData.key)); + + if (equalKeyElement) { + equalKeyElement.getters.push(...accessorData.getters); + equalKeyElement.setters.push(...accessorData.setters); + } else { + accessors.push(accessorData); + } + + return accessors; + } + + /** + * Checks accessor pairs in the given list of nodes. + * @param {ASTNode[]} nodes The list to check. + * @param {Function} shouldCheck – Predicate that returns `true` if the node should be checked. + * @returns {void} + * @private + */ + function checkList(nodes, shouldCheck) { + const accessors = nodes + .filter(shouldCheck) + .filter(isAccessorKind) + .map(createAccessorData) + .reduce(mergeAccessorData, []); + + for (const { getters, setters } of accessors) { + + // Don't report accessor properties that have duplicate getters or setters. + if (getters.length === 1 && setters.length === 1) { + const [getter] = getters, + [setter] = setters, + getterIndex = nodes.indexOf(getter), + setterIndex = nodes.indexOf(setter), + formerNode = getterIndex < setterIndex ? getter : setter, + latterNode = getterIndex < setterIndex ? setter : getter; + + if (Math.abs(getterIndex - setterIndex) > 1) { + report("notGrouped", formerNode, latterNode); + } else if ( + (order === "getBeforeSet" && getterIndex > setterIndex) || + (order === "setBeforeGet" && getterIndex < setterIndex) + ) { + report("invalidOrder", formerNode, latterNode); + } + } + } + } + + return { + ObjectExpression(node) { + checkList(node.properties, n => n.type === "Property"); + }, + ClassBody(node) { + checkList(node.body, n => n.type === "MethodDefinition" && !n.static); + checkList(node.body, n => n.type === "MethodDefinition" && n.static); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/guard-for-in.js b/node_modules/eslint/lib/rules/guard-for-in.js new file mode 100644 index 0000000..3b99143 --- /dev/null +++ b/node_modules/eslint/lib/rules/guard-for-in.js @@ -0,0 +1,76 @@ +/** + * @fileoverview Rule to flag for-in loops without if statements inside + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require `for-in` loops to include an `if` statement", + recommended: false, + url: "https://eslint.org/docs/rules/guard-for-in" + }, + + schema: [], + messages: { + wrap: "The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype." + } + }, + + create(context) { + + return { + + ForInStatement(node) { + const body = node.body; + + // empty statement + if (body.type === "EmptyStatement") { + return; + } + + // if statement + if (body.type === "IfStatement") { + return; + } + + // empty block + if (body.type === "BlockStatement" && body.body.length === 0) { + return; + } + + // block with just if statement + if (body.type === "BlockStatement" && body.body.length === 1 && body.body[0].type === "IfStatement") { + return; + } + + // block that starts with if statement + if (body.type === "BlockStatement" && body.body.length >= 1 && body.body[0].type === "IfStatement") { + const i = body.body[0]; + + // ... whose consequent is a continue + if (i.consequent.type === "ContinueStatement") { + return; + } + + // ... whose consequent is a block that contains only a continue + if (i.consequent.type === "BlockStatement" && i.consequent.body.length === 1 && i.consequent.body[0].type === "ContinueStatement") { + return; + } + } + + context.report({ node, messageId: "wrap" }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/handle-callback-err.js b/node_modules/eslint/lib/rules/handle-callback-err.js new file mode 100644 index 0000000..5189564 --- /dev/null +++ b/node_modules/eslint/lib/rules/handle-callback-err.js @@ -0,0 +1,100 @@ +/** + * @fileoverview Ensure handling of errors when we know they exist. + * @author Jamund Ferguson + * @deprecated in ESLint v7.0.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Require error handling in callbacks", + recommended: false, + url: "https://eslint.org/docs/rules/handle-callback-err" + }, + + schema: [ + { + type: "string" + } + ], + messages: { + expected: "Expected error to be handled." + } + }, + + create(context) { + + const errorArgument = context.options[0] || "err"; + + /** + * Checks if the given argument should be interpreted as a regexp pattern. + * @param {string} stringToCheck The string which should be checked. + * @returns {boolean} Whether or not the string should be interpreted as a pattern. + */ + function isPattern(stringToCheck) { + const firstChar = stringToCheck[0]; + + return firstChar === "^"; + } + + /** + * Checks if the given name matches the configured error argument. + * @param {string} name The name which should be compared. + * @returns {boolean} Whether or not the given name matches the configured error variable name. + */ + function matchesConfiguredErrorName(name) { + if (isPattern(errorArgument)) { + const regexp = new RegExp(errorArgument, "u"); + + return regexp.test(name); + } + return name === errorArgument; + } + + /** + * Get the parameters of a given function scope. + * @param {Object} scope The function scope. + * @returns {Array} All parameters of the given scope. + */ + function getParameters(scope) { + return scope.variables.filter(variable => variable.defs[0] && variable.defs[0].type === "Parameter"); + } + + /** + * Check to see if we're handling the error object properly. + * @param {ASTNode} node The AST node to check. + * @returns {void} + */ + function checkForError(node) { + const scope = context.getScope(), + parameters = getParameters(scope), + firstParameter = parameters[0]; + + if (firstParameter && matchesConfiguredErrorName(firstParameter.name)) { + if (firstParameter.references.length === 0) { + context.report({ node, messageId: "expected" }); + } + } + } + + return { + FunctionDeclaration: checkForError, + FunctionExpression: checkForError, + ArrowFunctionExpression: checkForError + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/id-blacklist.js b/node_modules/eslint/lib/rules/id-blacklist.js new file mode 100644 index 0000000..5ea61e9 --- /dev/null +++ b/node_modules/eslint/lib/rules/id-blacklist.js @@ -0,0 +1,245 @@ +/** + * @fileoverview Rule that warns when identifier names that are + * specified in the configuration are used. + * @author Keith Cirkel (http://keithcirkel.co.uk) + * @deprecated in ESLint v7.5.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether the given node represents assignment target in a normal assignment or destructuring. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is assignment target. + */ +function isAssignmentTarget(node) { + const parent = node.parent; + + return ( + + // normal assignment + ( + parent.type === "AssignmentExpression" && + parent.left === node + ) || + + // destructuring + parent.type === "ArrayPattern" || + parent.type === "RestElement" || + ( + parent.type === "Property" && + parent.value === node && + parent.parent.type === "ObjectPattern" + ) || + ( + parent.type === "AssignmentPattern" && + parent.left === node + ) + ); +} + +/** + * Checks whether the given node represents an imported name that is renamed in the same import/export specifier. + * + * Examples: + * import { a as b } from 'mod'; // node `a` is renamed import + * export { a as b } from 'mod'; // node `a` is renamed import + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a renamed import. + */ +function isRenamedImport(node) { + const parent = node.parent; + + return ( + ( + parent.type === "ImportSpecifier" && + parent.imported !== parent.local && + parent.imported === node + ) || + ( + parent.type === "ExportSpecifier" && + parent.parent.source && // re-export + parent.local !== parent.exported && + parent.local === node + ) + ); +} + +/** + * Checks whether the given node is a renamed identifier node in an ObjectPattern destructuring. + * + * Examples: + * const { a : b } = foo; // node `a` is renamed node. + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a renamed node in an ObjectPattern destructuring. + */ +function isRenamedInDestructuring(node) { + const parent = node.parent; + + return ( + ( + !parent.computed && + parent.type === "Property" && + parent.parent.type === "ObjectPattern" && + parent.value !== node && + parent.key === node + ) + ); +} + +/** + * Checks whether the given node represents shorthand definition of a property in an object literal. + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a shorthand property definition. + */ +function isShorthandPropertyDefinition(node) { + const parent = node.parent; + + return ( + parent.type === "Property" && + parent.parent.type === "ObjectExpression" && + parent.shorthand + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + replacedBy: ["id-denylist"], + + type: "suggestion", + + docs: { + description: "Disallow specified identifiers", + recommended: false, + url: "https://eslint.org/docs/rules/id-blacklist" + }, + + schema: { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + }, + messages: { + restricted: "Identifier '{{name}}' is restricted." + } + }, + + create(context) { + + const denyList = new Set(context.options); + const reportedNodes = new Set(); + + let globalScope; + + /** + * Checks whether the given name is restricted. + * @param {string} name The name to check. + * @returns {boolean} `true` if the name is restricted. + * @private + */ + function isRestricted(name) { + return denyList.has(name); + } + + /** + * Checks whether the given node represents a reference to a global variable that is not declared in the source code. + * These identifiers will be allowed, as it is assumed that user has no control over the names of external global variables. + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a reference to a global variable. + */ + function isReferenceToGlobalVariable(node) { + const variable = globalScope.set.get(node.name); + + return variable && variable.defs.length === 0 && + variable.references.some(ref => ref.identifier === node); + } + + /** + * Determines whether the given node should be checked. + * @param {ASTNode} node `Identifier` node. + * @returns {boolean} `true` if the node should be checked. + */ + function shouldCheck(node) { + const parent = node.parent; + + /* + * Member access has special rules for checking property names. + * Read access to a property with a restricted name is allowed, because it can be on an object that user has no control over. + * Write access isn't allowed, because it potentially creates a new property with a restricted name. + */ + if ( + parent.type === "MemberExpression" && + parent.property === node && + !parent.computed + ) { + return isAssignmentTarget(parent); + } + + return ( + parent.type !== "CallExpression" && + parent.type !== "NewExpression" && + !isRenamedImport(node) && + !isRenamedInDestructuring(node) && + !( + isReferenceToGlobalVariable(node) && + !isShorthandPropertyDefinition(node) + ) + ); + } + + /** + * Reports an AST node as a rule violation. + * @param {ASTNode} node The node to report. + * @returns {void} + * @private + */ + function report(node) { + + /* + * We used the range instead of the node because it's possible + * for the same identifier to be represented by two different + * nodes, with the most clear example being shorthand properties: + * { foo } + * In this case, "foo" is represented by one node for the name + * and one for the value. The only way to know they are the same + * is to look at the range. + */ + if (!reportedNodes.has(node.range.toString())) { + context.report({ + node, + messageId: "restricted", + data: { + name: node.name + } + }); + reportedNodes.add(node.range.toString()); + } + + } + + return { + + Program() { + globalScope = context.getScope(); + }, + + Identifier(node) { + if (isRestricted(node.name) && shouldCheck(node)) { + report(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/id-denylist.js b/node_modules/eslint/lib/rules/id-denylist.js new file mode 100644 index 0000000..fe0a0b5 --- /dev/null +++ b/node_modules/eslint/lib/rules/id-denylist.js @@ -0,0 +1,227 @@ +/** + * @fileoverview Rule that warns when identifier names that are + * specified in the configuration are used. + * @author Keith Cirkel (http://keithcirkel.co.uk) + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether the given node represents assignment target in a normal assignment or destructuring. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is assignment target. + */ +function isAssignmentTarget(node) { + const parent = node.parent; + + return ( + + // normal assignment + ( + parent.type === "AssignmentExpression" && + parent.left === node + ) || + + // destructuring + parent.type === "ArrayPattern" || + parent.type === "RestElement" || + ( + parent.type === "Property" && + parent.value === node && + parent.parent.type === "ObjectPattern" + ) || + ( + parent.type === "AssignmentPattern" && + parent.left === node + ) + ); +} + +/** + * Checks whether the given node represents an imported name that is renamed in the same import/export specifier. + * + * Examples: + * import { a as b } from 'mod'; // node `a` is renamed import + * export { a as b } from 'mod'; // node `a` is renamed import + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a renamed import. + */ +function isRenamedImport(node) { + const parent = node.parent; + + return ( + ( + parent.type === "ImportSpecifier" && + parent.imported !== parent.local && + parent.imported === node + ) || + ( + parent.type === "ExportSpecifier" && + parent.parent.source && // re-export + parent.local !== parent.exported && + parent.local === node + ) + ); +} + +/** + * Checks whether the given node is an ObjectPattern destructuring. + * + * Examples: + * const { a : b } = foo; + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is in an ObjectPattern destructuring. + */ +function isPropertyNameInDestructuring(node) { + const parent = node.parent; + + return ( + ( + !parent.computed && + parent.type === "Property" && + parent.parent.type === "ObjectPattern" && + parent.key === node + ) + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow specified identifiers", + recommended: false, + url: "https://eslint.org/docs/rules/id-denylist" + }, + + schema: { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + }, + messages: { + restricted: "Identifier '{{name}}' is restricted.", + restrictedPrivate: "Identifier '#{{name}}' is restricted." + } + }, + + create(context) { + + const denyList = new Set(context.options); + const reportedNodes = new Set(); + + let globalScope; + + /** + * Checks whether the given name is restricted. + * @param {string} name The name to check. + * @returns {boolean} `true` if the name is restricted. + * @private + */ + function isRestricted(name) { + return denyList.has(name); + } + + /** + * Checks whether the given node represents a reference to a global variable that is not declared in the source code. + * These identifiers will be allowed, as it is assumed that user has no control over the names of external global variables. + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a reference to a global variable. + */ + function isReferenceToGlobalVariable(node) { + const variable = globalScope.set.get(node.name); + + return variable && variable.defs.length === 0 && + variable.references.some(ref => ref.identifier === node); + } + + /** + * Determines whether the given node should be checked. + * @param {ASTNode} node `Identifier` node. + * @returns {boolean} `true` if the node should be checked. + */ + function shouldCheck(node) { + const parent = node.parent; + + /* + * Member access has special rules for checking property names. + * Read access to a property with a restricted name is allowed, because it can be on an object that user has no control over. + * Write access isn't allowed, because it potentially creates a new property with a restricted name. + */ + if ( + parent.type === "MemberExpression" && + parent.property === node && + !parent.computed + ) { + return isAssignmentTarget(parent); + } + + return ( + parent.type !== "CallExpression" && + parent.type !== "NewExpression" && + !isRenamedImport(node) && + !isPropertyNameInDestructuring(node) && + !isReferenceToGlobalVariable(node) + ); + } + + /** + * Reports an AST node as a rule violation. + * @param {ASTNode} node The node to report. + * @returns {void} + * @private + */ + function report(node) { + + /* + * We used the range instead of the node because it's possible + * for the same identifier to be represented by two different + * nodes, with the most clear example being shorthand properties: + * { foo } + * In this case, "foo" is represented by one node for the name + * and one for the value. The only way to know they are the same + * is to look at the range. + */ + if (!reportedNodes.has(node.range.toString())) { + const isPrivate = node.type === "PrivateIdentifier"; + + context.report({ + node, + messageId: isPrivate ? "restrictedPrivate" : "restricted", + data: { + name: node.name + } + }); + reportedNodes.add(node.range.toString()); + } + } + + return { + + Program() { + globalScope = context.getScope(); + }, + + [[ + "Identifier", + "PrivateIdentifier" + ]](node) { + if (isRestricted(node.name) && shouldCheck(node)) { + report(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/id-length.js b/node_modules/eslint/lib/rules/id-length.js new file mode 100644 index 0000000..99f833f --- /dev/null +++ b/node_modules/eslint/lib/rules/id-length.js @@ -0,0 +1,169 @@ +/** + * @fileoverview Rule that warns when identifier names are shorter or longer + * than the values provided in configuration. + * @author Burak Yigit Kaya aka BYK + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce minimum and maximum identifier lengths", + recommended: false, + url: "https://eslint.org/docs/rules/id-length" + }, + + schema: [ + { + type: "object", + properties: { + min: { + type: "integer", + default: 2 + }, + max: { + type: "integer" + }, + exceptions: { + type: "array", + uniqueItems: true, + items: { + type: "string" + } + }, + exceptionPatterns: { + type: "array", + uniqueItems: true, + items: { + type: "string" + } + }, + properties: { + enum: ["always", "never"] + } + }, + additionalProperties: false + } + ], + messages: { + tooShort: "Identifier name '{{name}}' is too short (< {{min}}).", + tooShortPrivate: "Identifier name '#{{name}}' is too short (< {{min}}).", + tooLong: "Identifier name '{{name}}' is too long (> {{max}}).", + tooLongPrivate: "Identifier name #'{{name}}' is too long (> {{max}})." + } + }, + + create(context) { + const options = context.options[0] || {}; + const minLength = typeof options.min !== "undefined" ? options.min : 2; + const maxLength = typeof options.max !== "undefined" ? options.max : Infinity; + const properties = options.properties !== "never"; + const exceptions = new Set(options.exceptions); + const exceptionPatterns = (options.exceptionPatterns || []).map(pattern => new RegExp(pattern, "u")); + const reportedNodes = new Set(); + + /** + * Checks if a string matches the provided exception patterns + * @param {string} name The string to check. + * @returns {boolean} if the string is a match + * @private + */ + function matchesExceptionPattern(name) { + return exceptionPatterns.some(pattern => pattern.test(name)); + } + + const SUPPORTED_EXPRESSIONS = { + MemberExpression: properties && function(parent) { + return !parent.computed && ( + + // regular property assignment + (parent.parent.left === parent && parent.parent.type === "AssignmentExpression" || + + // or the last identifier in an ObjectPattern destructuring + parent.parent.type === "Property" && parent.parent.value === parent && + parent.parent.parent.type === "ObjectPattern" && parent.parent.parent.parent.left === parent.parent.parent) + ); + }, + AssignmentPattern(parent, node) { + return parent.left === node; + }, + VariableDeclarator(parent, node) { + return parent.id === node; + }, + Property(parent, node) { + + if (parent.parent.type === "ObjectPattern") { + const isKeyAndValueSame = parent.value.name === parent.key.name; + + return ( + !isKeyAndValueSame && parent.value === node || + isKeyAndValueSame && parent.key === node && properties + ); + } + return properties && !parent.computed && parent.key.name === node.name; + }, + ImportDefaultSpecifier: true, + RestElement: true, + FunctionExpression: true, + ArrowFunctionExpression: true, + ClassDeclaration: true, + FunctionDeclaration: true, + MethodDefinition: true, + PropertyDefinition: true, + CatchClause: true, + ArrayPattern: true + }; + + return { + [[ + "Identifier", + "PrivateIdentifier" + ]](node) { + const name = node.name; + const parent = node.parent; + + const isShort = name.length < minLength; + const isLong = name.length > maxLength; + + if (!(isShort || isLong) || exceptions.has(name) || matchesExceptionPattern(name)) { + return; // Nothing to report + } + + const isValidExpression = SUPPORTED_EXPRESSIONS[parent.type]; + + /* + * We used the range instead of the node because it's possible + * for the same identifier to be represented by two different + * nodes, with the most clear example being shorthand properties: + * { foo } + * In this case, "foo" is represented by one node for the name + * and one for the value. The only way to know they are the same + * is to look at the range. + */ + if (isValidExpression && !reportedNodes.has(node.range.toString()) && (isValidExpression === true || isValidExpression(parent, node))) { + reportedNodes.add(node.range.toString()); + + let messageId = isShort ? "tooShort" : "tooLong"; + + if (node.type === "PrivateIdentifier") { + messageId += "Private"; + } + + context.report({ + node, + messageId, + data: { name, min: minLength, max: maxLength } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/id-match.js b/node_modules/eslint/lib/rules/id-match.js new file mode 100644 index 0000000..ec87af1 --- /dev/null +++ b/node_modules/eslint/lib/rules/id-match.js @@ -0,0 +1,298 @@ +/** + * @fileoverview Rule to flag non-matching identifiers + * @author Matthieu Larcher + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require identifiers to match a specified regular expression", + recommended: false, + url: "https://eslint.org/docs/rules/id-match" + }, + + schema: [ + { + type: "string" + }, + { + type: "object", + properties: { + properties: { + type: "boolean", + default: false + }, + classFields: { + type: "boolean", + default: false + }, + onlyDeclarations: { + type: "boolean", + default: false + }, + ignoreDestructuring: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + messages: { + notMatch: "Identifier '{{name}}' does not match the pattern '{{pattern}}'.", + notMatchPrivate: "Identifier '#{{name}}' does not match the pattern '{{pattern}}'." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Options + //-------------------------------------------------------------------------- + const pattern = context.options[0] || "^.+$", + regexp = new RegExp(pattern, "u"); + + const options = context.options[1] || {}, + checkProperties = !!options.properties, + checkClassFields = !!options.classFields, + onlyDeclarations = !!options.onlyDeclarations, + ignoreDestructuring = !!options.ignoreDestructuring; + + let globalScope; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + // contains reported nodes to avoid reporting twice on destructuring with shorthand notation + const reportedNodes = new Set(); + const ALLOWED_PARENT_TYPES = new Set(["CallExpression", "NewExpression"]); + const DECLARATION_TYPES = new Set(["FunctionDeclaration", "VariableDeclarator"]); + const IMPORT_TYPES = new Set(["ImportSpecifier", "ImportNamespaceSpecifier", "ImportDefaultSpecifier"]); + + /** + * Checks whether the given node represents a reference to a global variable that is not declared in the source code. + * These identifiers will be allowed, as it is assumed that user has no control over the names of external global variables. + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a reference to a global variable. + */ + function isReferenceToGlobalVariable(node) { + const variable = globalScope.set.get(node.name); + + return variable && variable.defs.length === 0 && + variable.references.some(ref => ref.identifier === node); + } + + /** + * Checks if a string matches the provided pattern + * @param {string} name The string to check. + * @returns {boolean} if the string is a match + * @private + */ + function isInvalid(name) { + return !regexp.test(name); + } + + /** + * Checks if a parent of a node is an ObjectPattern. + * @param {ASTNode} node The node to check. + * @returns {boolean} if the node is inside an ObjectPattern + * @private + */ + function isInsideObjectPattern(node) { + let { parent } = node; + + while (parent) { + if (parent.type === "ObjectPattern") { + return true; + } + + parent = parent.parent; + } + + return false; + } + + /** + * Verifies if we should report an error or not based on the effective + * parent node and the identifier name. + * @param {ASTNode} effectiveParent The effective parent node of the node to be reported + * @param {string} name The identifier name of the identifier node + * @returns {boolean} whether an error should be reported or not + */ + function shouldReport(effectiveParent, name) { + return (!onlyDeclarations || DECLARATION_TYPES.has(effectiveParent.type)) && + !ALLOWED_PARENT_TYPES.has(effectiveParent.type) && isInvalid(name); + } + + /** + * Reports an AST node as a rule violation. + * @param {ASTNode} node The node to report. + * @returns {void} + * @private + */ + function report(node) { + + /* + * We used the range instead of the node because it's possible + * for the same identifier to be represented by two different + * nodes, with the most clear example being shorthand properties: + * { foo } + * In this case, "foo" is represented by one node for the name + * and one for the value. The only way to know they are the same + * is to look at the range. + */ + if (!reportedNodes.has(node.range.toString())) { + + const messageId = (node.type === "PrivateIdentifier") + ? "notMatchPrivate" : "notMatch"; + + context.report({ + node, + messageId, + data: { + name: node.name, + pattern + } + }); + reportedNodes.add(node.range.toString()); + } + } + + return { + + Program() { + globalScope = context.getScope(); + }, + + Identifier(node) { + const name = node.name, + parent = node.parent, + effectiveParent = (parent.type === "MemberExpression") ? parent.parent : parent; + + if (isReferenceToGlobalVariable(node)) { + return; + } + + if (parent.type === "MemberExpression") { + + if (!checkProperties) { + return; + } + + // Always check object names + if (parent.object.type === "Identifier" && + parent.object.name === name) { + if (isInvalid(name)) { + report(node); + } + + // Report AssignmentExpressions left side's assigned variable id + } else if (effectiveParent.type === "AssignmentExpression" && + effectiveParent.left.type === "MemberExpression" && + effectiveParent.left.property.name === node.name) { + if (isInvalid(name)) { + report(node); + } + + // Report AssignmentExpressions only if they are the left side of the assignment + } else if (effectiveParent.type === "AssignmentExpression" && effectiveParent.right.type !== "MemberExpression") { + if (isInvalid(name)) { + report(node); + } + } + + // For https://github.com/eslint/eslint/issues/15123 + } else if ( + parent.type === "Property" && + parent.parent.type === "ObjectExpression" && + parent.key === node && + !parent.computed + ) { + if (checkProperties && isInvalid(name)) { + report(node); + } + + /* + * Properties have their own rules, and + * AssignmentPattern nodes can be treated like Properties: + * e.g.: const { no_camelcased = false } = bar; + */ + } else if (parent.type === "Property" || parent.type === "AssignmentPattern") { + + if (parent.parent && parent.parent.type === "ObjectPattern") { + if (!ignoreDestructuring && parent.shorthand && parent.value.left && isInvalid(name)) { + report(node); + } + + const assignmentKeyEqualsValue = parent.key.name === parent.value.name; + + // prevent checking righthand side of destructured object + if (!assignmentKeyEqualsValue && parent.key === node) { + return; + } + + const valueIsInvalid = parent.value.name && isInvalid(name); + + // ignore destructuring if the option is set, unless a new identifier is created + if (valueIsInvalid && !(assignmentKeyEqualsValue && ignoreDestructuring)) { + report(node); + } + } + + // never check properties or always ignore destructuring + if ((!checkProperties && !parent.computed) || (ignoreDestructuring && isInsideObjectPattern(node))) { + return; + } + + // don't check right hand side of AssignmentExpression to prevent duplicate warnings + if (parent.right !== node && shouldReport(effectiveParent, name)) { + report(node); + } + + // Check if it's an import specifier + } else if (IMPORT_TYPES.has(parent.type)) { + + // Report only if the local imported identifier is invalid + if (parent.local && parent.local.name === node.name && isInvalid(name)) { + report(node); + } + + } else if (parent.type === "PropertyDefinition") { + + if (checkClassFields && isInvalid(name)) { + report(node); + } + + // Report anything that is invalid that isn't a CallExpression + } else if (shouldReport(effectiveParent, name)) { + report(node); + } + }, + + "PrivateIdentifier"(node) { + + const isClassField = node.parent.type === "PropertyDefinition"; + + if (isClassField && !checkClassFields) { + return; + } + + if (isInvalid(node.name)) { + report(node); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js b/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js new file mode 100644 index 0000000..c765960 --- /dev/null +++ b/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js @@ -0,0 +1,81 @@ +/** + * @fileoverview enforce the location of arrow function bodies + * @author Sharmila Jesupaul + */ +"use strict"; + +const { isCommentToken, isNotOpeningParenToken } = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce the location of arrow function bodies", + recommended: false, + url: "https://eslint.org/docs/rules/implicit-arrow-linebreak" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["beside", "below"] + } + ], + messages: { + expected: "Expected a linebreak before this expression.", + unexpected: "Expected no linebreak before this expression." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const option = context.options[0] || "beside"; + + /** + * Validates the location of an arrow function body + * @param {ASTNode} node The arrow function body + * @returns {void} + */ + function validateExpression(node) { + if (node.body.type === "BlockStatement") { + return; + } + + const arrowToken = sourceCode.getTokenBefore(node.body, isNotOpeningParenToken); + const firstTokenOfBody = sourceCode.getTokenAfter(arrowToken); + + if (arrowToken.loc.end.line === firstTokenOfBody.loc.start.line && option === "below") { + context.report({ + node: firstTokenOfBody, + messageId: "expected", + fix: fixer => fixer.insertTextBefore(firstTokenOfBody, "\n") + }); + } else if (arrowToken.loc.end.line !== firstTokenOfBody.loc.start.line && option === "beside") { + context.report({ + node: firstTokenOfBody, + messageId: "unexpected", + fix(fixer) { + if (sourceCode.getFirstTokenBetween(arrowToken, firstTokenOfBody, { includeComments: true, filter: isCommentToken })) { + return null; + } + + return fixer.replaceTextRange([arrowToken.range[1], firstTokenOfBody.range[0]], " "); + } + }); + } + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + return { + ArrowFunctionExpression: node => validateExpression(node) + }; + } +}; diff --git a/node_modules/eslint/lib/rules/indent-legacy.js b/node_modules/eslint/lib/rules/indent-legacy.js new file mode 100644 index 0000000..d4793bd --- /dev/null +++ b/node_modules/eslint/lib/rules/indent-legacy.js @@ -0,0 +1,1126 @@ +/** + * @fileoverview This option sets a specific tab width for your code + * + * This rule has been ported and modified from nodeca. + * @author Vitaly Puzrin + * @author Gyandeep Singh + * @deprecated in ESLint v4.0.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ +// this rule has known coverage issues, but it's deprecated and shouldn't be updated in the future anyway. +/* c8 ignore next */ +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent indentation", + recommended: false, + url: "https://eslint.org/docs/rules/indent-legacy" + }, + + deprecated: true, + + replacedBy: ["indent"], + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["tab"] + }, + { + type: "integer", + minimum: 0 + } + ] + }, + { + type: "object", + properties: { + SwitchCase: { + type: "integer", + minimum: 0 + }, + VariableDeclarator: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + type: "object", + properties: { + var: { + type: "integer", + minimum: 0 + }, + let: { + type: "integer", + minimum: 0 + }, + const: { + type: "integer", + minimum: 0 + } + } + } + ] + }, + outerIIFEBody: { + type: "integer", + minimum: 0 + }, + MemberExpression: { + type: "integer", + minimum: 0 + }, + FunctionDeclaration: { + type: "object", + properties: { + parameters: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["first"] + } + ] + }, + body: { + type: "integer", + minimum: 0 + } + } + }, + FunctionExpression: { + type: "object", + properties: { + parameters: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["first"] + } + ] + }, + body: { + type: "integer", + minimum: 0 + } + } + }, + CallExpression: { + type: "object", + properties: { + parameters: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["first"] + } + ] + } + } + }, + ArrayExpression: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["first"] + } + ] + }, + ObjectExpression: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["first"] + } + ] + } + }, + additionalProperties: false + } + ], + messages: { + expected: "Expected indentation of {{expected}} but found {{actual}}." + } + }, + + create(context) { + const DEFAULT_VARIABLE_INDENT = 1; + const DEFAULT_PARAMETER_INDENT = null; // For backwards compatibility, don't check parameter indentation unless specified in the config + const DEFAULT_FUNCTION_BODY_INDENT = 1; + + let indentType = "space"; + let indentSize = 4; + const options = { + SwitchCase: 0, + VariableDeclarator: { + var: DEFAULT_VARIABLE_INDENT, + let: DEFAULT_VARIABLE_INDENT, + const: DEFAULT_VARIABLE_INDENT + }, + outerIIFEBody: null, + FunctionDeclaration: { + parameters: DEFAULT_PARAMETER_INDENT, + body: DEFAULT_FUNCTION_BODY_INDENT + }, + FunctionExpression: { + parameters: DEFAULT_PARAMETER_INDENT, + body: DEFAULT_FUNCTION_BODY_INDENT + }, + CallExpression: { + arguments: DEFAULT_PARAMETER_INDENT + }, + ArrayExpression: 1, + ObjectExpression: 1 + }; + + const sourceCode = context.getSourceCode(); + + if (context.options.length) { + if (context.options[0] === "tab") { + indentSize = 1; + indentType = "tab"; + } else /* c8 ignore start */ if (typeof context.options[0] === "number") { + indentSize = context.options[0]; + indentType = "space"; + }/* c8 ignore stop */ + + if (context.options[1]) { + const opts = context.options[1]; + + options.SwitchCase = opts.SwitchCase || 0; + const variableDeclaratorRules = opts.VariableDeclarator; + + if (typeof variableDeclaratorRules === "number") { + options.VariableDeclarator = { + var: variableDeclaratorRules, + let: variableDeclaratorRules, + const: variableDeclaratorRules + }; + } else if (typeof variableDeclaratorRules === "object") { + Object.assign(options.VariableDeclarator, variableDeclaratorRules); + } + + if (typeof opts.outerIIFEBody === "number") { + options.outerIIFEBody = opts.outerIIFEBody; + } + + if (typeof opts.MemberExpression === "number") { + options.MemberExpression = opts.MemberExpression; + } + + if (typeof opts.FunctionDeclaration === "object") { + Object.assign(options.FunctionDeclaration, opts.FunctionDeclaration); + } + + if (typeof opts.FunctionExpression === "object") { + Object.assign(options.FunctionExpression, opts.FunctionExpression); + } + + if (typeof opts.CallExpression === "object") { + Object.assign(options.CallExpression, opts.CallExpression); + } + + if (typeof opts.ArrayExpression === "number" || typeof opts.ArrayExpression === "string") { + options.ArrayExpression = opts.ArrayExpression; + } + + if (typeof opts.ObjectExpression === "number" || typeof opts.ObjectExpression === "string") { + options.ObjectExpression = opts.ObjectExpression; + } + } + } + + const caseIndentStore = {}; + + /** + * Creates an error message for a line, given the expected/actual indentation. + * @param {int} expectedAmount The expected amount of indentation characters for this line + * @param {int} actualSpaces The actual number of indentation spaces that were found on this line + * @param {int} actualTabs The actual number of indentation tabs that were found on this line + * @returns {string} An error message for this line + */ + function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) { + const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs" + const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space" + const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs" + let foundStatement; + + if (actualSpaces > 0 && actualTabs > 0) { + foundStatement = `${actualSpaces} ${foundSpacesWord} and ${actualTabs} ${foundTabsWord}`; // e.g. "1 space and 2 tabs" + } else if (actualSpaces > 0) { + + /* + * Abbreviate the message if the expected indentation is also spaces. + * e.g. 'Expected 4 spaces but found 2' rather than 'Expected 4 spaces but found 2 spaces' + */ + foundStatement = indentType === "space" ? actualSpaces : `${actualSpaces} ${foundSpacesWord}`; + } else if (actualTabs > 0) { + foundStatement = indentType === "tab" ? actualTabs : `${actualTabs} ${foundTabsWord}`; + } else { + foundStatement = "0"; + } + return { + expected: expectedStatement, + actual: foundStatement + }; + } + + /** + * Reports a given indent violation + * @param {ASTNode} node Node violating the indent rule + * @param {int} needed Expected indentation character count + * @param {int} gottenSpaces Indentation space count in the actual node/code + * @param {int} gottenTabs Indentation tab count in the actual node/code + * @param {Object} [loc] Error line and column location + * @param {boolean} isLastNodeCheck Is the error for last node check + * @returns {void} + */ + function report(node, needed, gottenSpaces, gottenTabs, loc, isLastNodeCheck) { + if (gottenSpaces && gottenTabs) { + + // To avoid conflicts with `no-mixed-spaces-and-tabs`, don't report lines that have both spaces and tabs. + return; + } + + const desiredIndent = (indentType === "space" ? " " : "\t").repeat(needed); + + const textRange = isLastNodeCheck + ? [node.range[1] - node.loc.end.column, node.range[1] - node.loc.end.column + gottenSpaces + gottenTabs] + : [node.range[0] - node.loc.start.column, node.range[0] - node.loc.start.column + gottenSpaces + gottenTabs]; + + context.report({ + node, + loc, + messageId: "expected", + data: createErrorMessageData(needed, gottenSpaces, gottenTabs), + fix: fixer => fixer.replaceTextRange(textRange, desiredIndent) + }); + } + + /** + * Get the actual indent of node + * @param {ASTNode|Token} node Node to examine + * @param {boolean} [byLastLine=false] get indent of node's last line + * @returns {Object} The node's indent. Contains keys `space` and `tab`, representing the indent of each character. Also + * contains keys `goodChar` and `badChar`, where `goodChar` is the amount of the user's desired indentation character, and + * `badChar` is the amount of the other indentation character. + */ + function getNodeIndent(node, byLastLine) { + const token = byLastLine ? sourceCode.getLastToken(node) : sourceCode.getFirstToken(node); + const srcCharsBeforeNode = sourceCode.getText(token, token.loc.start.column).split(""); + const indentChars = srcCharsBeforeNode.slice(0, srcCharsBeforeNode.findIndex(char => char !== " " && char !== "\t")); + const spaces = indentChars.filter(char => char === " ").length; + const tabs = indentChars.filter(char => char === "\t").length; + + return { + space: spaces, + tab: tabs, + goodChar: indentType === "space" ? spaces : tabs, + badChar: indentType === "space" ? tabs : spaces + }; + } + + /** + * Checks node is the first in its own start line. By default it looks by start line. + * @param {ASTNode} node The node to check + * @param {boolean} [byEndLocation=false] Lookup based on start position or end + * @returns {boolean} true if its the first in the its start line + */ + function isNodeFirstInLine(node, byEndLocation) { + const firstToken = byEndLocation === true ? sourceCode.getLastToken(node, 1) : sourceCode.getTokenBefore(node), + startLine = byEndLocation === true ? node.loc.end.line : node.loc.start.line, + endLine = firstToken ? firstToken.loc.end.line : -1; + + return startLine !== endLine; + } + + /** + * Check indent for node + * @param {ASTNode} node Node to check + * @param {int} neededIndent needed indent + * @returns {void} + */ + function checkNodeIndent(node, neededIndent) { + const actualIndent = getNodeIndent(node, false); + + if ( + node.type !== "ArrayExpression" && + node.type !== "ObjectExpression" && + (actualIndent.goodChar !== neededIndent || actualIndent.badChar !== 0) && + isNodeFirstInLine(node) + ) { + report(node, neededIndent, actualIndent.space, actualIndent.tab); + } + + if (node.type === "IfStatement" && node.alternate) { + const elseToken = sourceCode.getTokenBefore(node.alternate); + + checkNodeIndent(elseToken, neededIndent); + + if (!isNodeFirstInLine(node.alternate)) { + checkNodeIndent(node.alternate, neededIndent); + } + } + + if (node.type === "TryStatement" && node.handler) { + const catchToken = sourceCode.getFirstToken(node.handler); + + checkNodeIndent(catchToken, neededIndent); + } + + if (node.type === "TryStatement" && node.finalizer) { + const finallyToken = sourceCode.getTokenBefore(node.finalizer); + + checkNodeIndent(finallyToken, neededIndent); + } + + if (node.type === "DoWhileStatement") { + const whileToken = sourceCode.getTokenAfter(node.body); + + checkNodeIndent(whileToken, neededIndent); + } + } + + /** + * Check indent for nodes list + * @param {ASTNode[]} nodes list of node objects + * @param {int} indent needed indent + * @returns {void} + */ + function checkNodesIndent(nodes, indent) { + nodes.forEach(node => checkNodeIndent(node, indent)); + } + + /** + * Check last node line indent this detects, that block closed correctly + * @param {ASTNode} node Node to examine + * @param {int} lastLineIndent needed indent + * @returns {void} + */ + function checkLastNodeLineIndent(node, lastLineIndent) { + const lastToken = sourceCode.getLastToken(node); + const endIndent = getNodeIndent(lastToken, true); + + if ((endIndent.goodChar !== lastLineIndent || endIndent.badChar !== 0) && isNodeFirstInLine(node, true)) { + report( + node, + lastLineIndent, + endIndent.space, + endIndent.tab, + { line: lastToken.loc.start.line, column: lastToken.loc.start.column }, + true + ); + } + } + + /** + * Check last node line indent this detects, that block closed correctly + * This function for more complicated return statement case, where closing parenthesis may be followed by ';' + * @param {ASTNode} node Node to examine + * @param {int} firstLineIndent first line needed indent + * @returns {void} + */ + function checkLastReturnStatementLineIndent(node, firstLineIndent) { + + /* + * in case if return statement ends with ');' we have traverse back to ')' + * otherwise we'll measure indent for ';' and replace ')' + */ + const lastToken = sourceCode.getLastToken(node, astUtils.isClosingParenToken); + const textBeforeClosingParenthesis = sourceCode.getText(lastToken, lastToken.loc.start.column).slice(0, -1); + + if (textBeforeClosingParenthesis.trim()) { + + // There are tokens before the closing paren, don't report this case + return; + } + + const endIndent = getNodeIndent(lastToken, true); + + if (endIndent.goodChar !== firstLineIndent) { + report( + node, + firstLineIndent, + endIndent.space, + endIndent.tab, + { line: lastToken.loc.start.line, column: lastToken.loc.start.column }, + true + ); + } + } + + /** + * Check first node line indent is correct + * @param {ASTNode} node Node to examine + * @param {int} firstLineIndent needed indent + * @returns {void} + */ + function checkFirstNodeLineIndent(node, firstLineIndent) { + const startIndent = getNodeIndent(node, false); + + if ((startIndent.goodChar !== firstLineIndent || startIndent.badChar !== 0) && isNodeFirstInLine(node)) { + report( + node, + firstLineIndent, + startIndent.space, + startIndent.tab, + { line: node.loc.start.line, column: node.loc.start.column } + ); + } + } + + /** + * Returns a parent node of given node based on a specified type + * if not present then return null + * @param {ASTNode} node node to examine + * @param {string} type type that is being looked for + * @param {string} stopAtList end points for the evaluating code + * @returns {ASTNode|void} if found then node otherwise null + */ + function getParentNodeByType(node, type, stopAtList) { + let parent = node.parent; + const stopAtSet = new Set(stopAtList || ["Program"]); + + while (parent.type !== type && !stopAtSet.has(parent.type) && parent.type !== "Program") { + parent = parent.parent; + } + + return parent.type === type ? parent : null; + } + + /** + * Returns the VariableDeclarator based on the current node + * if not present then return null + * @param {ASTNode} node node to examine + * @returns {ASTNode|void} if found then node otherwise null + */ + function getVariableDeclaratorNode(node) { + return getParentNodeByType(node, "VariableDeclarator"); + } + + /** + * Check to see if the node is part of the multi-line variable declaration. + * Also if its on the same line as the varNode + * @param {ASTNode} node node to check + * @param {ASTNode} varNode variable declaration node to check against + * @returns {boolean} True if all the above condition satisfy + */ + function isNodeInVarOnTop(node, varNode) { + return varNode && + varNode.parent.loc.start.line === node.loc.start.line && + varNode.parent.declarations.length > 1; + } + + /** + * Check to see if the argument before the callee node is multi-line and + * there should only be 1 argument before the callee node + * @param {ASTNode} node node to check + * @returns {boolean} True if arguments are multi-line + */ + function isArgBeforeCalleeNodeMultiline(node) { + const parent = node.parent; + + if (parent.arguments.length >= 2 && parent.arguments[1] === node) { + return parent.arguments[0].loc.end.line > parent.arguments[0].loc.start.line; + } + + return false; + } + + /** + * Check to see if the node is a file level IIFE + * @param {ASTNode} node The function node to check. + * @returns {boolean} True if the node is the outer IIFE + */ + function isOuterIIFE(node) { + const parent = node.parent; + let stmt = parent.parent; + + /* + * Verify that the node is an IIEF + */ + if ( + parent.type !== "CallExpression" || + parent.callee !== node) { + + return false; + } + + /* + * Navigate legal ancestors to determine whether this IIEF is outer + */ + while ( + stmt.type === "UnaryExpression" && ( + stmt.operator === "!" || + stmt.operator === "~" || + stmt.operator === "+" || + stmt.operator === "-") || + stmt.type === "AssignmentExpression" || + stmt.type === "LogicalExpression" || + stmt.type === "SequenceExpression" || + stmt.type === "VariableDeclarator") { + + stmt = stmt.parent; + } + + return (( + stmt.type === "ExpressionStatement" || + stmt.type === "VariableDeclaration") && + stmt.parent && stmt.parent.type === "Program" + ); + } + + /** + * Check indent for function block content + * @param {ASTNode} node A BlockStatement node that is inside of a function. + * @returns {void} + */ + function checkIndentInFunctionBlock(node) { + + /* + * Search first caller in chain. + * Ex.: + * + * Models <- Identifier + * .User + * .find() + * .exec(function() { + * // function body + * }); + * + * Looks for 'Models' + */ + const calleeNode = node.parent; // FunctionExpression + let indent; + + if (calleeNode.parent && + (calleeNode.parent.type === "Property" || + calleeNode.parent.type === "ArrayExpression")) { + + // If function is part of array or object, comma can be put at left + indent = getNodeIndent(calleeNode, false).goodChar; + } else { + + // If function is standalone, simple calculate indent + indent = getNodeIndent(calleeNode).goodChar; + } + + if (calleeNode.parent.type === "CallExpression") { + const calleeParent = calleeNode.parent; + + if (calleeNode.type !== "FunctionExpression" && calleeNode.type !== "ArrowFunctionExpression") { + if (calleeParent && calleeParent.loc.start.line < node.loc.start.line) { + indent = getNodeIndent(calleeParent).goodChar; + } + } else { + if (isArgBeforeCalleeNodeMultiline(calleeNode) && + calleeParent.callee.loc.start.line === calleeParent.callee.loc.end.line && + !isNodeFirstInLine(calleeNode)) { + indent = getNodeIndent(calleeParent).goodChar; + } + } + } + + /* + * function body indent should be indent + indent size, unless this + * is a FunctionDeclaration, FunctionExpression, or outer IIFE and the corresponding options are enabled. + */ + let functionOffset = indentSize; + + if (options.outerIIFEBody !== null && isOuterIIFE(calleeNode)) { + functionOffset = options.outerIIFEBody * indentSize; + } else if (calleeNode.type === "FunctionExpression") { + functionOffset = options.FunctionExpression.body * indentSize; + } else if (calleeNode.type === "FunctionDeclaration") { + functionOffset = options.FunctionDeclaration.body * indentSize; + } + indent += functionOffset; + + // check if the node is inside a variable + const parentVarNode = getVariableDeclaratorNode(node); + + if (parentVarNode && isNodeInVarOnTop(node, parentVarNode)) { + indent += indentSize * options.VariableDeclarator[parentVarNode.parent.kind]; + } + + if (node.body.length > 0) { + checkNodesIndent(node.body, indent); + } + + checkLastNodeLineIndent(node, indent - functionOffset); + } + + + /** + * Checks if the given node starts and ends on the same line + * @param {ASTNode} node The node to check + * @returns {boolean} Whether or not the block starts and ends on the same line. + */ + function isSingleLineNode(node) { + const lastToken = sourceCode.getLastToken(node), + startLine = node.loc.start.line, + endLine = lastToken.loc.end.line; + + return startLine === endLine; + } + + /** + * Check indent for array block content or object block content + * @param {ASTNode} node node to examine + * @returns {void} + */ + function checkIndentInArrayOrObjectBlock(node) { + + // Skip inline + if (isSingleLineNode(node)) { + return; + } + + let elements = (node.type === "ArrayExpression") ? node.elements : node.properties; + + // filter out empty elements example would be [ , 2] so remove first element as espree considers it as null + elements = elements.filter(elem => elem !== null); + + let nodeIndent; + let elementsIndent; + const parentVarNode = getVariableDeclaratorNode(node); + + // TODO - come up with a better strategy in future + if (isNodeFirstInLine(node)) { + const parent = node.parent; + + nodeIndent = getNodeIndent(parent).goodChar; + if (!parentVarNode || parentVarNode.loc.start.line !== node.loc.start.line) { + if (parent.type !== "VariableDeclarator" || parentVarNode === parentVarNode.parent.declarations[0]) { + if (parent.type === "VariableDeclarator" && parentVarNode.loc.start.line === parent.loc.start.line) { + nodeIndent += (indentSize * options.VariableDeclarator[parentVarNode.parent.kind]); + } else if (parent.type === "ObjectExpression" || parent.type === "ArrayExpression") { + const parentElements = node.parent.type === "ObjectExpression" ? node.parent.properties : node.parent.elements; + + if (parentElements[0] && + parentElements[0].loc.start.line === parent.loc.start.line && + parentElements[0].loc.end.line !== parent.loc.start.line) { + + /* + * If the first element of the array spans multiple lines, don't increase the expected indentation of the rest. + * e.g. [{ + * foo: 1 + * }, + * { + * bar: 1 + * }] + * the second object is not indented. + */ + } else if (typeof options[parent.type] === "number") { + nodeIndent += options[parent.type] * indentSize; + } else { + nodeIndent = parentElements[0].loc.start.column; + } + } else if (parent.type === "CallExpression" || parent.type === "NewExpression") { + if (typeof options.CallExpression.arguments === "number") { + nodeIndent += options.CallExpression.arguments * indentSize; + } else if (options.CallExpression.arguments === "first") { + if (parent.arguments.includes(node)) { + nodeIndent = parent.arguments[0].loc.start.column; + } + } else { + nodeIndent += indentSize; + } + } else if (parent.type === "LogicalExpression" || parent.type === "ArrowFunctionExpression") { + nodeIndent += indentSize; + } + } + } + + checkFirstNodeLineIndent(node, nodeIndent); + } else { + nodeIndent = getNodeIndent(node).goodChar; + } + + if (options[node.type] === "first") { + elementsIndent = elements.length ? elements[0].loc.start.column : 0; // If there are no elements, elementsIndent doesn't matter. + } else { + elementsIndent = nodeIndent + indentSize * options[node.type]; + } + + /* + * Check if the node is a multiple variable declaration; if so, then + * make sure indentation takes that into account. + */ + if (isNodeInVarOnTop(node, parentVarNode)) { + elementsIndent += indentSize * options.VariableDeclarator[parentVarNode.parent.kind]; + } + + checkNodesIndent(elements, elementsIndent); + + if (elements.length > 0) { + + // Skip last block line check if last item in same line + if (elements[elements.length - 1].loc.end.line === node.loc.end.line) { + return; + } + } + + checkLastNodeLineIndent(node, nodeIndent + + (isNodeInVarOnTop(node, parentVarNode) ? options.VariableDeclarator[parentVarNode.parent.kind] * indentSize : 0)); + } + + /** + * Check if the node or node body is a BlockStatement or not + * @param {ASTNode} node node to test + * @returns {boolean} True if it or its body is a block statement + */ + function isNodeBodyBlock(node) { + return node.type === "BlockStatement" || node.type === "ClassBody" || (node.body && node.body.type === "BlockStatement") || + (node.consequent && node.consequent.type === "BlockStatement"); + } + + /** + * Check indentation for blocks + * @param {ASTNode} node node to check + * @returns {void} + */ + function blockIndentationCheck(node) { + + // Skip inline blocks + if (isSingleLineNode(node)) { + return; + } + + if (node.parent && ( + node.parent.type === "FunctionExpression" || + node.parent.type === "FunctionDeclaration" || + node.parent.type === "ArrowFunctionExpression") + ) { + checkIndentInFunctionBlock(node); + return; + } + + let indent; + let nodesToCheck = []; + + /* + * For this statements we should check indent from statement beginning, + * not from the beginning of the block. + */ + const statementsWithProperties = [ + "IfStatement", "WhileStatement", "ForStatement", "ForInStatement", "ForOfStatement", "DoWhileStatement", "ClassDeclaration", "TryStatement" + ]; + + if (node.parent && statementsWithProperties.includes(node.parent.type) && isNodeBodyBlock(node)) { + indent = getNodeIndent(node.parent).goodChar; + } else if (node.parent && node.parent.type === "CatchClause") { + indent = getNodeIndent(node.parent.parent).goodChar; + } else { + indent = getNodeIndent(node).goodChar; + } + + if (node.type === "IfStatement" && node.consequent.type !== "BlockStatement") { + nodesToCheck = [node.consequent]; + } else if (Array.isArray(node.body)) { + nodesToCheck = node.body; + } else { + nodesToCheck = [node.body]; + } + + if (nodesToCheck.length > 0) { + checkNodesIndent(nodesToCheck, indent + indentSize); + } + + if (node.type === "BlockStatement") { + checkLastNodeLineIndent(node, indent); + } + } + + /** + * Filter out the elements which are on the same line of each other or the node. + * basically have only 1 elements from each line except the variable declaration line. + * @param {ASTNode} node Variable declaration node + * @returns {ASTNode[]} Filtered elements + */ + function filterOutSameLineVars(node) { + return node.declarations.reduce((finalCollection, elem) => { + const lastElem = finalCollection[finalCollection.length - 1]; + + if ((elem.loc.start.line !== node.loc.start.line && !lastElem) || + (lastElem && lastElem.loc.start.line !== elem.loc.start.line)) { + finalCollection.push(elem); + } + + return finalCollection; + }, []); + } + + /** + * Check indentation for variable declarations + * @param {ASTNode} node node to examine + * @returns {void} + */ + function checkIndentInVariableDeclarations(node) { + const elements = filterOutSameLineVars(node); + const nodeIndent = getNodeIndent(node).goodChar; + const lastElement = elements[elements.length - 1]; + + const elementsIndent = nodeIndent + indentSize * options.VariableDeclarator[node.kind]; + + checkNodesIndent(elements, elementsIndent); + + // Only check the last line if there is any token after the last item + if (sourceCode.getLastToken(node).loc.end.line <= lastElement.loc.end.line) { + return; + } + + const tokenBeforeLastElement = sourceCode.getTokenBefore(lastElement); + + if (tokenBeforeLastElement.value === ",") { + + // Special case for comma-first syntax where the semicolon is indented + checkLastNodeLineIndent(node, getNodeIndent(tokenBeforeLastElement).goodChar); + } else { + checkLastNodeLineIndent(node, elementsIndent - indentSize); + } + } + + /** + * Check and decide whether to check for indentation for blockless nodes + * Scenarios are for or while statements without braces around them + * @param {ASTNode} node node to examine + * @returns {void} + */ + function blockLessNodes(node) { + if (node.body.type !== "BlockStatement") { + blockIndentationCheck(node); + } + } + + /** + * Returns the expected indentation for the case statement + * @param {ASTNode} node node to examine + * @param {int} [providedSwitchIndent] indent for switch statement + * @returns {int} indent size + */ + function expectedCaseIndent(node, providedSwitchIndent) { + const switchNode = (node.type === "SwitchStatement") ? node : node.parent; + const switchIndent = typeof providedSwitchIndent === "undefined" + ? getNodeIndent(switchNode).goodChar + : providedSwitchIndent; + let caseIndent; + + if (caseIndentStore[switchNode.loc.start.line]) { + return caseIndentStore[switchNode.loc.start.line]; + } + + if (switchNode.cases.length > 0 && options.SwitchCase === 0) { + caseIndent = switchIndent; + } else { + caseIndent = switchIndent + (indentSize * options.SwitchCase); + } + + caseIndentStore[switchNode.loc.start.line] = caseIndent; + return caseIndent; + + } + + /** + * Checks whether a return statement is wrapped in () + * @param {ASTNode} node node to examine + * @returns {boolean} the result + */ + function isWrappedInParenthesis(node) { + const regex = /^return\s*?\(\s*?\);*?/u; + + const statementWithoutArgument = sourceCode.getText(node).replace( + sourceCode.getText(node.argument), "" + ); + + return regex.test(statementWithoutArgument); + } + + return { + Program(node) { + if (node.body.length > 0) { + + // Root nodes should have no indent + checkNodesIndent(node.body, getNodeIndent(node).goodChar); + } + }, + + ClassBody: blockIndentationCheck, + + BlockStatement: blockIndentationCheck, + + WhileStatement: blockLessNodes, + + ForStatement: blockLessNodes, + + ForInStatement: blockLessNodes, + + ForOfStatement: blockLessNodes, + + DoWhileStatement: blockLessNodes, + + IfStatement(node) { + if (node.consequent.type !== "BlockStatement" && node.consequent.loc.start.line > node.loc.start.line) { + blockIndentationCheck(node); + } + }, + + VariableDeclaration(node) { + if (node.declarations[node.declarations.length - 1].loc.start.line > node.declarations[0].loc.start.line) { + checkIndentInVariableDeclarations(node); + } + }, + + ObjectExpression(node) { + checkIndentInArrayOrObjectBlock(node); + }, + + ArrayExpression(node) { + checkIndentInArrayOrObjectBlock(node); + }, + + MemberExpression(node) { + + if (typeof options.MemberExpression === "undefined") { + return; + } + + if (isSingleLineNode(node)) { + return; + } + + /* + * The typical layout of variable declarations and assignments + * alter the expectation of correct indentation. Skip them. + * TODO: Add appropriate configuration options for variable + * declarations and assignments. + */ + if (getParentNodeByType(node, "VariableDeclarator", ["FunctionExpression", "ArrowFunctionExpression"])) { + return; + } + + if (getParentNodeByType(node, "AssignmentExpression", ["FunctionExpression"])) { + return; + } + + const propertyIndent = getNodeIndent(node).goodChar + indentSize * options.MemberExpression; + + const checkNodes = [node.property]; + + const dot = sourceCode.getTokenBefore(node.property); + + if (dot.type === "Punctuator" && dot.value === ".") { + checkNodes.push(dot); + } + + checkNodesIndent(checkNodes, propertyIndent); + }, + + SwitchStatement(node) { + + // Switch is not a 'BlockStatement' + const switchIndent = getNodeIndent(node).goodChar; + const caseIndent = expectedCaseIndent(node, switchIndent); + + checkNodesIndent(node.cases, caseIndent); + + + checkLastNodeLineIndent(node, switchIndent); + }, + + SwitchCase(node) { + + // Skip inline cases + if (isSingleLineNode(node)) { + return; + } + const caseIndent = expectedCaseIndent(node); + + checkNodesIndent(node.consequent, caseIndent + indentSize); + }, + + FunctionDeclaration(node) { + if (isSingleLineNode(node)) { + return; + } + if (options.FunctionDeclaration.parameters === "first" && node.params.length) { + checkNodesIndent(node.params.slice(1), node.params[0].loc.start.column); + } else if (options.FunctionDeclaration.parameters !== null) { + checkNodesIndent(node.params, getNodeIndent(node).goodChar + indentSize * options.FunctionDeclaration.parameters); + } + }, + + FunctionExpression(node) { + if (isSingleLineNode(node)) { + return; + } + if (options.FunctionExpression.parameters === "first" && node.params.length) { + checkNodesIndent(node.params.slice(1), node.params[0].loc.start.column); + } else if (options.FunctionExpression.parameters !== null) { + checkNodesIndent(node.params, getNodeIndent(node).goodChar + indentSize * options.FunctionExpression.parameters); + } + }, + + ReturnStatement(node) { + if (isSingleLineNode(node)) { + return; + } + + const firstLineIndent = getNodeIndent(node).goodChar; + + // in case if return statement is wrapped in parenthesis + if (isWrappedInParenthesis(node)) { + checkLastReturnStatementLineIndent(node, firstLineIndent); + } else { + checkNodeIndent(node, firstLineIndent); + } + }, + + CallExpression(node) { + if (isSingleLineNode(node)) { + return; + } + if (options.CallExpression.arguments === "first" && node.arguments.length) { + checkNodesIndent(node.arguments.slice(1), node.arguments[0].loc.start.column); + } else if (options.CallExpression.arguments !== null) { + checkNodesIndent(node.arguments, getNodeIndent(node).goodChar + indentSize * options.CallExpression.arguments); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/indent.js b/node_modules/eslint/lib/rules/indent.js new file mode 100644 index 0000000..cda0203 --- /dev/null +++ b/node_modules/eslint/lib/rules/indent.js @@ -0,0 +1,1804 @@ +/** + * @fileoverview This rule sets a specific indentation style and width for your code + * + * @author Teddy Katz + * @author Vitaly Puzrin + * @author Gyandeep Singh + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { OrderedMap } = require("js-sdsl"); + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const KNOWN_NODES = new Set([ + "AssignmentExpression", + "AssignmentPattern", + "ArrayExpression", + "ArrayPattern", + "ArrowFunctionExpression", + "AwaitExpression", + "BlockStatement", + "BinaryExpression", + "BreakStatement", + "CallExpression", + "CatchClause", + "ChainExpression", + "ClassBody", + "ClassDeclaration", + "ClassExpression", + "ConditionalExpression", + "ContinueStatement", + "DoWhileStatement", + "DebuggerStatement", + "EmptyStatement", + "ExperimentalRestProperty", + "ExperimentalSpreadProperty", + "ExpressionStatement", + "ForStatement", + "ForInStatement", + "ForOfStatement", + "FunctionDeclaration", + "FunctionExpression", + "Identifier", + "IfStatement", + "Literal", + "LabeledStatement", + "LogicalExpression", + "MemberExpression", + "MetaProperty", + "MethodDefinition", + "NewExpression", + "ObjectExpression", + "ObjectPattern", + "PrivateIdentifier", + "Program", + "Property", + "PropertyDefinition", + "RestElement", + "ReturnStatement", + "SequenceExpression", + "SpreadElement", + "StaticBlock", + "Super", + "SwitchCase", + "SwitchStatement", + "TaggedTemplateExpression", + "TemplateElement", + "TemplateLiteral", + "ThisExpression", + "ThrowStatement", + "TryStatement", + "UnaryExpression", + "UpdateExpression", + "VariableDeclaration", + "VariableDeclarator", + "WhileStatement", + "WithStatement", + "YieldExpression", + "JSXFragment", + "JSXOpeningFragment", + "JSXClosingFragment", + "JSXIdentifier", + "JSXNamespacedName", + "JSXMemberExpression", + "JSXEmptyExpression", + "JSXExpressionContainer", + "JSXElement", + "JSXClosingElement", + "JSXOpeningElement", + "JSXAttribute", + "JSXSpreadAttribute", + "JSXText", + "ExportDefaultDeclaration", + "ExportNamedDeclaration", + "ExportAllDeclaration", + "ExportSpecifier", + "ImportDeclaration", + "ImportSpecifier", + "ImportDefaultSpecifier", + "ImportNamespaceSpecifier", + "ImportExpression" +]); + +/* + * General rule strategy: + * 1. An OffsetStorage instance stores a map of desired offsets, where each token has a specified offset from another + * specified token or to the first column. + * 2. As the AST is traversed, modify the desired offsets of tokens accordingly. For example, when entering a + * BlockStatement, offset all of the tokens in the BlockStatement by 1 indent level from the opening curly + * brace of the BlockStatement. + * 3. After traversing the AST, calculate the expected indentation levels of every token according to the + * OffsetStorage container. + * 4. For each line, compare the expected indentation of the first token to the actual indentation in the file, + * and report the token if the two values are not equal. + */ + + +/** + * A mutable balanced binary search tree that stores (key, value) pairs. The keys are numeric, and must be unique. + * This is intended to be a generic wrapper around a balanced binary search tree library, so that the underlying implementation + * can easily be swapped out. + */ +class BinarySearchTree { + + /** + * Creates an empty tree + */ + constructor() { + this._orderedMap = new OrderedMap(); + this._orderedMapEnd = this._orderedMap.end(); + } + + /** + * Inserts an entry into the tree. + * @param {number} key The entry's key + * @param {any} value The entry's value + * @returns {void} + */ + insert(key, value) { + this._orderedMap.setElement(key, value); + } + + /** + * Finds the entry with the largest key less than or equal to the provided key + * @param {number} key The provided key + * @returns {{key: number, value: *}|null} The found entry, or null if no such entry exists. + */ + findLe(key) { + const iterator = this._orderedMap.reverseLowerBound(key); + + if (iterator.equals(this._orderedMapEnd)) { + return {}; + } + + return { key: iterator.pointer[0], value: iterator.pointer[1] }; + } + + /** + * Deletes all of the keys in the interval [start, end) + * @param {number} start The start of the range + * @param {number} end The end of the range + * @returns {void} + */ + deleteRange(start, end) { + + // Exit without traversing the tree if the range has zero size. + if (start === end) { + return; + } + const iterator = this._orderedMap.lowerBound(start); + + if (iterator.equals(this._orderedMapEnd)) { + return; + } + + if (end > this._orderedMap.back()[0]) { + while (!iterator.equals(this._orderedMapEnd)) { + this._orderedMap.eraseElementByIterator(iterator); + } + } else { + while (iterator.pointer[0] < end) { + this._orderedMap.eraseElementByIterator(iterator); + } + } + } +} + +/** + * A helper class to get token-based info related to indentation + */ +class TokenInfo { + + /** + * @param {SourceCode} sourceCode A SourceCode object + */ + constructor(sourceCode) { + this.sourceCode = sourceCode; + this.firstTokensByLineNumber = sourceCode.tokensAndComments.reduce((map, token) => { + if (!map.has(token.loc.start.line)) { + map.set(token.loc.start.line, token); + } + if (!map.has(token.loc.end.line) && sourceCode.text.slice(token.range[1] - token.loc.end.column, token.range[1]).trim()) { + map.set(token.loc.end.line, token); + } + return map; + }, new Map()); + } + + /** + * Gets the first token on a given token's line + * @param {Token|ASTNode} token a node or token + * @returns {Token} The first token on the given line + */ + getFirstTokenOfLine(token) { + return this.firstTokensByLineNumber.get(token.loc.start.line); + } + + /** + * Determines whether a token is the first token in its line + * @param {Token} token The token + * @returns {boolean} `true` if the token is the first on its line + */ + isFirstTokenOfLine(token) { + return this.getFirstTokenOfLine(token) === token; + } + + /** + * Get the actual indent of a token + * @param {Token} token Token to examine. This should be the first token on its line. + * @returns {string} The indentation characters that precede the token + */ + getTokenIndent(token) { + return this.sourceCode.text.slice(token.range[0] - token.loc.start.column, token.range[0]); + } +} + +/** + * A class to store information on desired offsets of tokens from each other + */ +class OffsetStorage { + + /** + * @param {TokenInfo} tokenInfo a TokenInfo instance + * @param {number} indentSize The desired size of each indentation level + * @param {string} indentType The indentation character + */ + constructor(tokenInfo, indentSize, indentType) { + this._tokenInfo = tokenInfo; + this._indentSize = indentSize; + this._indentType = indentType; + + this._tree = new BinarySearchTree(); + this._tree.insert(0, { offset: 0, from: null, force: false }); + + this._lockedFirstTokens = new WeakMap(); + this._desiredIndentCache = new WeakMap(); + this._ignoredTokens = new WeakSet(); + } + + _getOffsetDescriptor(token) { + return this._tree.findLe(token.range[0]).value; + } + + /** + * Sets the offset column of token B to match the offset column of token A. + * - **WARNING**: This matches a *column*, even if baseToken is not the first token on its line. In + * most cases, `setDesiredOffset` should be used instead. + * @param {Token} baseToken The first token + * @param {Token} offsetToken The second token, whose offset should be matched to the first token + * @returns {void} + */ + matchOffsetOf(baseToken, offsetToken) { + + /* + * lockedFirstTokens is a map from a token whose indentation is controlled by the "first" option to + * the token that it depends on. For example, with the `ArrayExpression: first` option, the first + * token of each element in the array after the first will be mapped to the first token of the first + * element. The desired indentation of each of these tokens is computed based on the desired indentation + * of the "first" element, rather than through the normal offset mechanism. + */ + this._lockedFirstTokens.set(offsetToken, baseToken); + } + + /** + * Sets the desired offset of a token. + * + * This uses a line-based offset collapsing behavior to handle tokens on the same line. + * For example, consider the following two cases: + * + * ( + * [ + * bar + * ] + * ) + * + * ([ + * bar + * ]) + * + * Based on the first case, it's clear that the `bar` token needs to have an offset of 1 indent level (4 spaces) from + * the `[` token, and the `[` token has to have an offset of 1 indent level from the `(` token. Since the `(` token is + * the first on its line (with an indent of 0 spaces), the `bar` token needs to be offset by 2 indent levels (8 spaces) + * from the start of its line. + * + * However, in the second case `bar` should only be indented by 4 spaces. This is because the offset of 1 indent level + * between the `(` and the `[` tokens gets "collapsed" because the two tokens are on the same line. As a result, the + * `(` token is mapped to the `[` token with an offset of 0, and the rule correctly decides that `bar` should be indented + * by 1 indent level from the start of the line. + * + * This is useful because rule listeners can usually just call `setDesiredOffset` for all the tokens in the node, + * without needing to check which lines those tokens are on. + * + * Note that since collapsing only occurs when two tokens are on the same line, there are a few cases where non-intuitive + * behavior can occur. For example, consider the following cases: + * + * foo( + * ). + * bar( + * baz + * ) + * + * foo( + * ).bar( + * baz + * ) + * + * Based on the first example, it would seem that `bar` should be offset by 1 indent level from `foo`, and `baz` + * should be offset by 1 indent level from `bar`. However, this is not correct, because it would result in `baz` + * being indented by 2 indent levels in the second case (since `foo`, `bar`, and `baz` are all on separate lines, no + * collapsing would occur). + * + * Instead, the correct way would be to offset `baz` by 1 level from `bar`, offset `bar` by 1 level from the `)`, and + * offset the `)` by 0 levels from `foo`. This ensures that the offset between `bar` and the `)` are correctly collapsed + * in the second case. + * @param {Token} token The token + * @param {Token} fromToken The token that `token` should be offset from + * @param {number} offset The desired indent level + * @returns {void} + */ + setDesiredOffset(token, fromToken, offset) { + return this.setDesiredOffsets(token.range, fromToken, offset); + } + + /** + * Sets the desired offset of all tokens in a range + * It's common for node listeners in this file to need to apply the same offset to a large, contiguous range of tokens. + * Moreover, the offset of any given token is usually updated multiple times (roughly once for each node that contains + * it). This means that the offset of each token is updated O(AST depth) times. + * It would not be performant to store and update the offsets for each token independently, because the rule would end + * up having a time complexity of O(number of tokens * AST depth), which is quite slow for large files. + * + * Instead, the offset tree is represented as a collection of contiguous offset ranges in a file. For example, the following + * list could represent the state of the offset tree at a given point: + * + * - Tokens starting in the interval [0, 15) are aligned with the beginning of the file + * - Tokens starting in the interval [15, 30) are offset by 1 indent level from the `bar` token + * - Tokens starting in the interval [30, 43) are offset by 1 indent level from the `foo` token + * - Tokens starting in the interval [43, 820) are offset by 2 indent levels from the `bar` token + * - Tokens starting in the interval [820, ∞) are offset by 1 indent level from the `baz` token + * + * The `setDesiredOffsets` methods inserts ranges like the ones above. The third line above would be inserted by using: + * `setDesiredOffsets([30, 43], fooToken, 1);` + * @param {[number, number]} range A [start, end] pair. All tokens with range[0] <= token.start < range[1] will have the offset applied. + * @param {Token} fromToken The token that this is offset from + * @param {number} offset The desired indent level + * @param {boolean} force `true` if this offset should not use the normal collapsing behavior. This should almost always be false. + * @returns {void} + */ + setDesiredOffsets(range, fromToken, offset, force) { + + /* + * Offset ranges are stored as a collection of nodes, where each node maps a numeric key to an offset + * descriptor. The tree for the example above would have the following nodes: + * + * * key: 0, value: { offset: 0, from: null } + * * key: 15, value: { offset: 1, from: barToken } + * * key: 30, value: { offset: 1, from: fooToken } + * * key: 43, value: { offset: 2, from: barToken } + * * key: 820, value: { offset: 1, from: bazToken } + * + * To find the offset descriptor for any given token, one needs to find the node with the largest key + * which is <= token.start. To make this operation fast, the nodes are stored in a balanced binary + * search tree indexed by key. + */ + + const descriptorToInsert = { offset, from: fromToken, force }; + + const descriptorAfterRange = this._tree.findLe(range[1]).value; + + const fromTokenIsInRange = fromToken && fromToken.range[0] >= range[0] && fromToken.range[1] <= range[1]; + const fromTokenDescriptor = fromTokenIsInRange && this._getOffsetDescriptor(fromToken); + + // First, remove any existing nodes in the range from the tree. + this._tree.deleteRange(range[0] + 1, range[1]); + + // Insert a new node into the tree for this range + this._tree.insert(range[0], descriptorToInsert); + + /* + * To avoid circular offset dependencies, keep the `fromToken` token mapped to whatever it was mapped to previously, + * even if it's in the current range. + */ + if (fromTokenIsInRange) { + this._tree.insert(fromToken.range[0], fromTokenDescriptor); + this._tree.insert(fromToken.range[1], descriptorToInsert); + } + + /* + * To avoid modifying the offset of tokens after the range, insert another node to keep the offset of the following + * tokens the same as it was before. + */ + this._tree.insert(range[1], descriptorAfterRange); + } + + /** + * Gets the desired indent of a token + * @param {Token} token The token + * @returns {string} The desired indent of the token + */ + getDesiredIndent(token) { + if (!this._desiredIndentCache.has(token)) { + + if (this._ignoredTokens.has(token)) { + + /* + * If the token is ignored, use the actual indent of the token as the desired indent. + * This ensures that no errors are reported for this token. + */ + this._desiredIndentCache.set( + token, + this._tokenInfo.getTokenIndent(token) + ); + } else if (this._lockedFirstTokens.has(token)) { + const firstToken = this._lockedFirstTokens.get(token); + + this._desiredIndentCache.set( + token, + + // (indentation for the first element's line) + this.getDesiredIndent(this._tokenInfo.getFirstTokenOfLine(firstToken)) + + + // (space between the start of the first element's line and the first element) + this._indentType.repeat(firstToken.loc.start.column - this._tokenInfo.getFirstTokenOfLine(firstToken).loc.start.column) + ); + } else { + const offsetInfo = this._getOffsetDescriptor(token); + const offset = ( + offsetInfo.from && + offsetInfo.from.loc.start.line === token.loc.start.line && + !/^\s*?\n/u.test(token.value) && + !offsetInfo.force + ) ? 0 : offsetInfo.offset * this._indentSize; + + this._desiredIndentCache.set( + token, + (offsetInfo.from ? this.getDesiredIndent(offsetInfo.from) : "") + this._indentType.repeat(offset) + ); + } + } + return this._desiredIndentCache.get(token); + } + + /** + * Ignores a token, preventing it from being reported. + * @param {Token} token The token + * @returns {void} + */ + ignoreToken(token) { + if (this._tokenInfo.isFirstTokenOfLine(token)) { + this._ignoredTokens.add(token); + } + } + + /** + * Gets the first token that the given token's indentation is dependent on + * @param {Token} token The token + * @returns {Token} The token that the given token depends on, or `null` if the given token is at the top level + */ + getFirstDependency(token) { + return this._getOffsetDescriptor(token).from; + } +} + +const ELEMENT_LIST_SCHEMA = { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["first", "off"] + } + ] +}; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent indentation", + recommended: false, + url: "https://eslint.org/docs/rules/indent" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["tab"] + }, + { + type: "integer", + minimum: 0 + } + ] + }, + { + type: "object", + properties: { + SwitchCase: { + type: "integer", + minimum: 0, + default: 0 + }, + VariableDeclarator: { + oneOf: [ + ELEMENT_LIST_SCHEMA, + { + type: "object", + properties: { + var: ELEMENT_LIST_SCHEMA, + let: ELEMENT_LIST_SCHEMA, + const: ELEMENT_LIST_SCHEMA + }, + additionalProperties: false + } + ] + }, + outerIIFEBody: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["off"] + } + ] + }, + MemberExpression: { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + enum: ["off"] + } + ] + }, + FunctionDeclaration: { + type: "object", + properties: { + parameters: ELEMENT_LIST_SCHEMA, + body: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + }, + FunctionExpression: { + type: "object", + properties: { + parameters: ELEMENT_LIST_SCHEMA, + body: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + }, + StaticBlock: { + type: "object", + properties: { + body: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + }, + CallExpression: { + type: "object", + properties: { + arguments: ELEMENT_LIST_SCHEMA + }, + additionalProperties: false + }, + ArrayExpression: ELEMENT_LIST_SCHEMA, + ObjectExpression: ELEMENT_LIST_SCHEMA, + ImportDeclaration: ELEMENT_LIST_SCHEMA, + flatTernaryExpressions: { + type: "boolean", + default: false + }, + offsetTernaryExpressions: { + type: "boolean", + default: false + }, + ignoredNodes: { + type: "array", + items: { + type: "string", + not: { + pattern: ":exit$" + } + } + }, + ignoreComments: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + messages: { + wrongIndentation: "Expected indentation of {{expected}} but found {{actual}}." + } + }, + + create(context) { + const DEFAULT_VARIABLE_INDENT = 1; + const DEFAULT_PARAMETER_INDENT = 1; + const DEFAULT_FUNCTION_BODY_INDENT = 1; + + let indentType = "space"; + let indentSize = 4; + const options = { + SwitchCase: 0, + VariableDeclarator: { + var: DEFAULT_VARIABLE_INDENT, + let: DEFAULT_VARIABLE_INDENT, + const: DEFAULT_VARIABLE_INDENT + }, + outerIIFEBody: 1, + FunctionDeclaration: { + parameters: DEFAULT_PARAMETER_INDENT, + body: DEFAULT_FUNCTION_BODY_INDENT + }, + FunctionExpression: { + parameters: DEFAULT_PARAMETER_INDENT, + body: DEFAULT_FUNCTION_BODY_INDENT + }, + StaticBlock: { + body: DEFAULT_FUNCTION_BODY_INDENT + }, + CallExpression: { + arguments: DEFAULT_PARAMETER_INDENT + }, + MemberExpression: 1, + ArrayExpression: 1, + ObjectExpression: 1, + ImportDeclaration: 1, + flatTernaryExpressions: false, + ignoredNodes: [], + ignoreComments: false + }; + + if (context.options.length) { + if (context.options[0] === "tab") { + indentSize = 1; + indentType = "tab"; + } else { + indentSize = context.options[0]; + indentType = "space"; + } + + if (context.options[1]) { + Object.assign(options, context.options[1]); + + if (typeof options.VariableDeclarator === "number" || options.VariableDeclarator === "first") { + options.VariableDeclarator = { + var: options.VariableDeclarator, + let: options.VariableDeclarator, + const: options.VariableDeclarator + }; + } + } + } + + const sourceCode = context.getSourceCode(); + const tokenInfo = new TokenInfo(sourceCode); + const offsets = new OffsetStorage(tokenInfo, indentSize, indentType === "space" ? " " : "\t"); + const parameterParens = new WeakSet(); + + /** + * Creates an error message for a line, given the expected/actual indentation. + * @param {int} expectedAmount The expected amount of indentation characters for this line + * @param {int} actualSpaces The actual number of indentation spaces that were found on this line + * @param {int} actualTabs The actual number of indentation tabs that were found on this line + * @returns {string} An error message for this line + */ + function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) { + const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs" + const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space" + const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs" + let foundStatement; + + if (actualSpaces > 0) { + + /* + * Abbreviate the message if the expected indentation is also spaces. + * e.g. 'Expected 4 spaces but found 2' rather than 'Expected 4 spaces but found 2 spaces' + */ + foundStatement = indentType === "space" ? actualSpaces : `${actualSpaces} ${foundSpacesWord}`; + } else if (actualTabs > 0) { + foundStatement = indentType === "tab" ? actualTabs : `${actualTabs} ${foundTabsWord}`; + } else { + foundStatement = "0"; + } + return { + expected: expectedStatement, + actual: foundStatement + }; + } + + /** + * Reports a given indent violation + * @param {Token} token Token violating the indent rule + * @param {string} neededIndent Expected indentation string + * @returns {void} + */ + function report(token, neededIndent) { + const actualIndent = Array.from(tokenInfo.getTokenIndent(token)); + const numSpaces = actualIndent.filter(char => char === " ").length; + const numTabs = actualIndent.filter(char => char === "\t").length; + + context.report({ + node: token, + messageId: "wrongIndentation", + data: createErrorMessageData(neededIndent.length, numSpaces, numTabs), + loc: { + start: { line: token.loc.start.line, column: 0 }, + end: { line: token.loc.start.line, column: token.loc.start.column } + }, + fix(fixer) { + const range = [token.range[0] - token.loc.start.column, token.range[0]]; + const newText = neededIndent; + + return fixer.replaceTextRange(range, newText); + } + }); + } + + /** + * Checks if a token's indentation is correct + * @param {Token} token Token to examine + * @param {string} desiredIndent Desired indentation of the string + * @returns {boolean} `true` if the token's indentation is correct + */ + function validateTokenIndent(token, desiredIndent) { + const indentation = tokenInfo.getTokenIndent(token); + + return indentation === desiredIndent || + + // To avoid conflicts with no-mixed-spaces-and-tabs, don't report mixed spaces and tabs. + indentation.includes(" ") && indentation.includes("\t"); + } + + /** + * Check to see if the node is a file level IIFE + * @param {ASTNode} node The function node to check. + * @returns {boolean} True if the node is the outer IIFE + */ + function isOuterIIFE(node) { + + /* + * Verify that the node is an IIFE + */ + if (!node.parent || node.parent.type !== "CallExpression" || node.parent.callee !== node) { + return false; + } + + /* + * Navigate legal ancestors to determine whether this IIFE is outer. + * A "legal ancestor" is an expression or statement that causes the function to get executed immediately. + * For example, `!(function(){})()` is an outer IIFE even though it is preceded by a ! operator. + */ + let statement = node.parent && node.parent.parent; + + while ( + statement.type === "UnaryExpression" && ["!", "~", "+", "-"].includes(statement.operator) || + statement.type === "AssignmentExpression" || + statement.type === "LogicalExpression" || + statement.type === "SequenceExpression" || + statement.type === "VariableDeclarator" + ) { + statement = statement.parent; + } + + return (statement.type === "ExpressionStatement" || statement.type === "VariableDeclaration") && statement.parent.type === "Program"; + } + + /** + * Counts the number of linebreaks that follow the last non-whitespace character in a string + * @param {string} string The string to check + * @returns {number} The number of JavaScript linebreaks that follow the last non-whitespace character, + * or the total number of linebreaks if the string is all whitespace. + */ + function countTrailingLinebreaks(string) { + const trailingWhitespace = string.match(/\s*$/u)[0]; + const linebreakMatches = trailingWhitespace.match(astUtils.createGlobalLinebreakMatcher()); + + return linebreakMatches === null ? 0 : linebreakMatches.length; + } + + /** + * Check indentation for lists of elements (arrays, objects, function params) + * @param {ASTNode[]} elements List of elements that should be offset + * @param {Token} startToken The start token of the list that element should be aligned against, e.g. '[' + * @param {Token} endToken The end token of the list, e.g. ']' + * @param {number|string} offset The amount that the elements should be offset + * @returns {void} + */ + function addElementListIndent(elements, startToken, endToken, offset) { + + /** + * Gets the first token of a given element, including surrounding parentheses. + * @param {ASTNode} element A node in the `elements` list + * @returns {Token} The first token of this element + */ + function getFirstToken(element) { + let token = sourceCode.getTokenBefore(element); + + while (astUtils.isOpeningParenToken(token) && token !== startToken) { + token = sourceCode.getTokenBefore(token); + } + return sourceCode.getTokenAfter(token); + } + + // Run through all the tokens in the list, and offset them by one indent level (mainly for comments, other things will end up overridden) + offsets.setDesiredOffsets( + [startToken.range[1], endToken.range[0]], + startToken, + typeof offset === "number" ? offset : 1 + ); + offsets.setDesiredOffset(endToken, startToken, 0); + + // If the preference is "first" but there is no first element (e.g. sparse arrays w/ empty first slot), fall back to 1 level. + if (offset === "first" && elements.length && !elements[0]) { + return; + } + elements.forEach((element, index) => { + if (!element) { + + // Skip holes in arrays + return; + } + if (offset === "off") { + + // Ignore the first token of every element if the "off" option is used + offsets.ignoreToken(getFirstToken(element)); + } + + // Offset the following elements correctly relative to the first element + if (index === 0) { + return; + } + if (offset === "first" && tokenInfo.isFirstTokenOfLine(getFirstToken(element))) { + offsets.matchOffsetOf(getFirstToken(elements[0]), getFirstToken(element)); + } else { + const previousElement = elements[index - 1]; + const firstTokenOfPreviousElement = previousElement && getFirstToken(previousElement); + const previousElementLastToken = previousElement && sourceCode.getLastToken(previousElement); + + if ( + previousElement && + previousElementLastToken.loc.end.line - countTrailingLinebreaks(previousElementLastToken.value) > startToken.loc.end.line + ) { + offsets.setDesiredOffsets( + [previousElement.range[1], element.range[1]], + firstTokenOfPreviousElement, + 0 + ); + } + } + }); + } + + /** + * Check and decide whether to check for indentation for blockless nodes + * Scenarios are for or while statements without braces around them + * @param {ASTNode} node node to examine + * @returns {void} + */ + function addBlocklessNodeIndent(node) { + if (node.type !== "BlockStatement") { + const lastParentToken = sourceCode.getTokenBefore(node, astUtils.isNotOpeningParenToken); + + let firstBodyToken = sourceCode.getFirstToken(node); + let lastBodyToken = sourceCode.getLastToken(node); + + while ( + astUtils.isOpeningParenToken(sourceCode.getTokenBefore(firstBodyToken)) && + astUtils.isClosingParenToken(sourceCode.getTokenAfter(lastBodyToken)) + ) { + firstBodyToken = sourceCode.getTokenBefore(firstBodyToken); + lastBodyToken = sourceCode.getTokenAfter(lastBodyToken); + } + + offsets.setDesiredOffsets([firstBodyToken.range[0], lastBodyToken.range[1]], lastParentToken, 1); + } + } + + /** + * Checks the indentation for nodes that are like function calls (`CallExpression` and `NewExpression`) + * @param {ASTNode} node A CallExpression or NewExpression node + * @returns {void} + */ + function addFunctionCallIndent(node) { + let openingParen; + + if (node.arguments.length) { + openingParen = sourceCode.getFirstTokenBetween(node.callee, node.arguments[0], astUtils.isOpeningParenToken); + } else { + openingParen = sourceCode.getLastToken(node, 1); + } + const closingParen = sourceCode.getLastToken(node); + + parameterParens.add(openingParen); + parameterParens.add(closingParen); + + /* + * If `?.` token exists, set desired offset for that. + * This logic is copied from `MemberExpression`'s. + */ + if (node.optional) { + const dotToken = sourceCode.getTokenAfter(node.callee, astUtils.isQuestionDotToken); + const calleeParenCount = sourceCode.getTokensBetween(node.callee, dotToken, { filter: astUtils.isClosingParenToken }).length; + const firstTokenOfCallee = calleeParenCount + ? sourceCode.getTokenBefore(node.callee, { skip: calleeParenCount - 1 }) + : sourceCode.getFirstToken(node.callee); + const lastTokenOfCallee = sourceCode.getTokenBefore(dotToken); + const offsetBase = lastTokenOfCallee.loc.end.line === openingParen.loc.start.line + ? lastTokenOfCallee + : firstTokenOfCallee; + + offsets.setDesiredOffset(dotToken, offsetBase, 1); + } + + const offsetAfterToken = node.callee.type === "TaggedTemplateExpression" ? sourceCode.getFirstToken(node.callee.quasi) : openingParen; + const offsetToken = sourceCode.getTokenBefore(offsetAfterToken); + + offsets.setDesiredOffset(openingParen, offsetToken, 0); + + addElementListIndent(node.arguments, openingParen, closingParen, options.CallExpression.arguments); + } + + /** + * Checks the indentation of parenthesized values, given a list of tokens in a program + * @param {Token[]} tokens A list of tokens + * @returns {void} + */ + function addParensIndent(tokens) { + const parenStack = []; + const parenPairs = []; + + tokens.forEach(nextToken => { + + // Accumulate a list of parenthesis pairs + if (astUtils.isOpeningParenToken(nextToken)) { + parenStack.push(nextToken); + } else if (astUtils.isClosingParenToken(nextToken)) { + parenPairs.unshift({ left: parenStack.pop(), right: nextToken }); + } + }); + + parenPairs.forEach(pair => { + const leftParen = pair.left; + const rightParen = pair.right; + + // We only want to handle parens around expressions, so exclude parentheses that are in function parameters and function call arguments. + if (!parameterParens.has(leftParen) && !parameterParens.has(rightParen)) { + const parenthesizedTokens = new Set(sourceCode.getTokensBetween(leftParen, rightParen)); + + parenthesizedTokens.forEach(token => { + if (!parenthesizedTokens.has(offsets.getFirstDependency(token))) { + offsets.setDesiredOffset(token, leftParen, 1); + } + }); + } + + offsets.setDesiredOffset(rightParen, leftParen, 0); + }); + } + + /** + * Ignore all tokens within an unknown node whose offset do not depend + * on another token's offset within the unknown node + * @param {ASTNode} node Unknown Node + * @returns {void} + */ + function ignoreNode(node) { + const unknownNodeTokens = new Set(sourceCode.getTokens(node, { includeComments: true })); + + unknownNodeTokens.forEach(token => { + if (!unknownNodeTokens.has(offsets.getFirstDependency(token))) { + const firstTokenOfLine = tokenInfo.getFirstTokenOfLine(token); + + if (token === firstTokenOfLine) { + offsets.ignoreToken(token); + } else { + offsets.setDesiredOffset(token, firstTokenOfLine, 0); + } + } + }); + } + + /** + * Check whether the given token is on the first line of a statement. + * @param {Token} token The token to check. + * @param {ASTNode} leafNode The expression node that the token belongs directly. + * @returns {boolean} `true` if the token is on the first line of a statement. + */ + function isOnFirstLineOfStatement(token, leafNode) { + let node = leafNode; + + while (node.parent && !node.parent.type.endsWith("Statement") && !node.parent.type.endsWith("Declaration")) { + node = node.parent; + } + node = node.parent; + + return !node || node.loc.start.line === token.loc.start.line; + } + + /** + * Check whether there are any blank (whitespace-only) lines between + * two tokens on separate lines. + * @param {Token} firstToken The first token. + * @param {Token} secondToken The second token. + * @returns {boolean} `true` if the tokens are on separate lines and + * there exists a blank line between them, `false` otherwise. + */ + function hasBlankLinesBetween(firstToken, secondToken) { + const firstTokenLine = firstToken.loc.end.line; + const secondTokenLine = secondToken.loc.start.line; + + if (firstTokenLine === secondTokenLine || firstTokenLine === secondTokenLine - 1) { + return false; + } + + for (let line = firstTokenLine + 1; line < secondTokenLine; ++line) { + if (!tokenInfo.firstTokensByLineNumber.has(line)) { + return true; + } + } + + return false; + } + + const ignoredNodeFirstTokens = new Set(); + + const baseOffsetListeners = { + "ArrayExpression, ArrayPattern"(node) { + const openingBracket = sourceCode.getFirstToken(node); + const closingBracket = sourceCode.getTokenAfter([...node.elements].reverse().find(_ => _) || openingBracket, astUtils.isClosingBracketToken); + + addElementListIndent(node.elements, openingBracket, closingBracket, options.ArrayExpression); + }, + + "ObjectExpression, ObjectPattern"(node) { + const openingCurly = sourceCode.getFirstToken(node); + const closingCurly = sourceCode.getTokenAfter( + node.properties.length ? node.properties[node.properties.length - 1] : openingCurly, + astUtils.isClosingBraceToken + ); + + addElementListIndent(node.properties, openingCurly, closingCurly, options.ObjectExpression); + }, + + ArrowFunctionExpression(node) { + const maybeOpeningParen = sourceCode.getFirstToken(node, { skip: node.async ? 1 : 0 }); + + if (astUtils.isOpeningParenToken(maybeOpeningParen)) { + const openingParen = maybeOpeningParen; + const closingParen = sourceCode.getTokenBefore(node.body, astUtils.isClosingParenToken); + + parameterParens.add(openingParen); + parameterParens.add(closingParen); + addElementListIndent(node.params, openingParen, closingParen, options.FunctionExpression.parameters); + } + + addBlocklessNodeIndent(node.body); + }, + + AssignmentExpression(node) { + const operator = sourceCode.getFirstTokenBetween(node.left, node.right, token => token.value === node.operator); + + offsets.setDesiredOffsets([operator.range[0], node.range[1]], sourceCode.getLastToken(node.left), 1); + offsets.ignoreToken(operator); + offsets.ignoreToken(sourceCode.getTokenAfter(operator)); + }, + + "BinaryExpression, LogicalExpression"(node) { + const operator = sourceCode.getFirstTokenBetween(node.left, node.right, token => token.value === node.operator); + + /* + * For backwards compatibility, don't check BinaryExpression indents, e.g. + * var foo = bar && + * baz; + */ + + const tokenAfterOperator = sourceCode.getTokenAfter(operator); + + offsets.ignoreToken(operator); + offsets.ignoreToken(tokenAfterOperator); + offsets.setDesiredOffset(tokenAfterOperator, operator, 0); + }, + + "BlockStatement, ClassBody"(node) { + let blockIndentLevel; + + if (node.parent && isOuterIIFE(node.parent)) { + blockIndentLevel = options.outerIIFEBody; + } else if (node.parent && (node.parent.type === "FunctionExpression" || node.parent.type === "ArrowFunctionExpression")) { + blockIndentLevel = options.FunctionExpression.body; + } else if (node.parent && node.parent.type === "FunctionDeclaration") { + blockIndentLevel = options.FunctionDeclaration.body; + } else { + blockIndentLevel = 1; + } + + /* + * For blocks that aren't lone statements, ensure that the opening curly brace + * is aligned with the parent. + */ + if (!astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type)) { + offsets.setDesiredOffset(sourceCode.getFirstToken(node), sourceCode.getFirstToken(node.parent), 0); + } + + addElementListIndent(node.body, sourceCode.getFirstToken(node), sourceCode.getLastToken(node), blockIndentLevel); + }, + + CallExpression: addFunctionCallIndent, + + "ClassDeclaration[superClass], ClassExpression[superClass]"(node) { + const classToken = sourceCode.getFirstToken(node); + const extendsToken = sourceCode.getTokenBefore(node.superClass, astUtils.isNotOpeningParenToken); + + offsets.setDesiredOffsets([extendsToken.range[0], node.body.range[0]], classToken, 1); + }, + + ConditionalExpression(node) { + const firstToken = sourceCode.getFirstToken(node); + + // `flatTernaryExpressions` option is for the following style: + // var a = + // foo > 0 ? bar : + // foo < 0 ? baz : + // /*else*/ qiz ; + if (!options.flatTernaryExpressions || + !astUtils.isTokenOnSameLine(node.test, node.consequent) || + isOnFirstLineOfStatement(firstToken, node) + ) { + const questionMarkToken = sourceCode.getFirstTokenBetween(node.test, node.consequent, token => token.type === "Punctuator" && token.value === "?"); + const colonToken = sourceCode.getFirstTokenBetween(node.consequent, node.alternate, token => token.type === "Punctuator" && token.value === ":"); + + const firstConsequentToken = sourceCode.getTokenAfter(questionMarkToken); + const lastConsequentToken = sourceCode.getTokenBefore(colonToken); + const firstAlternateToken = sourceCode.getTokenAfter(colonToken); + + offsets.setDesiredOffset(questionMarkToken, firstToken, 1); + offsets.setDesiredOffset(colonToken, firstToken, 1); + + offsets.setDesiredOffset(firstConsequentToken, firstToken, firstConsequentToken.type === "Punctuator" && + options.offsetTernaryExpressions ? 2 : 1); + + /* + * The alternate and the consequent should usually have the same indentation. + * If they share part of a line, align the alternate against the first token of the consequent. + * This allows the alternate to be indented correctly in cases like this: + * foo ? ( + * bar + * ) : ( // this '(' is aligned with the '(' above, so it's considered to be aligned with `foo` + * baz // as a result, `baz` is offset by 1 rather than 2 + * ) + */ + if (lastConsequentToken.loc.end.line === firstAlternateToken.loc.start.line) { + offsets.setDesiredOffset(firstAlternateToken, firstConsequentToken, 0); + } else { + + /** + * If the alternate and consequent do not share part of a line, offset the alternate from the first + * token of the conditional expression. For example: + * foo ? bar + * : baz + * + * If `baz` were aligned with `bar` rather than being offset by 1 from `foo`, `baz` would end up + * having no expected indentation. + */ + offsets.setDesiredOffset(firstAlternateToken, firstToken, firstAlternateToken.type === "Punctuator" && + options.offsetTernaryExpressions ? 2 : 1); + } + } + }, + + "DoWhileStatement, WhileStatement, ForInStatement, ForOfStatement, WithStatement": node => addBlocklessNodeIndent(node.body), + + ExportNamedDeclaration(node) { + if (node.declaration === null) { + const closingCurly = sourceCode.getLastToken(node, astUtils.isClosingBraceToken); + + // Indent the specifiers in `export {foo, bar, baz}` + addElementListIndent(node.specifiers, sourceCode.getFirstToken(node, { skip: 1 }), closingCurly, 1); + + if (node.source) { + + // Indent everything after and including the `from` token in `export {foo, bar, baz} from 'qux'` + offsets.setDesiredOffsets([closingCurly.range[1], node.range[1]], sourceCode.getFirstToken(node), 1); + } + } + }, + + ForStatement(node) { + const forOpeningParen = sourceCode.getFirstToken(node, 1); + + if (node.init) { + offsets.setDesiredOffsets(node.init.range, forOpeningParen, 1); + } + if (node.test) { + offsets.setDesiredOffsets(node.test.range, forOpeningParen, 1); + } + if (node.update) { + offsets.setDesiredOffsets(node.update.range, forOpeningParen, 1); + } + addBlocklessNodeIndent(node.body); + }, + + "FunctionDeclaration, FunctionExpression"(node) { + const closingParen = sourceCode.getTokenBefore(node.body); + const openingParen = sourceCode.getTokenBefore(node.params.length ? node.params[0] : closingParen); + + parameterParens.add(openingParen); + parameterParens.add(closingParen); + addElementListIndent(node.params, openingParen, closingParen, options[node.type].parameters); + }, + + IfStatement(node) { + addBlocklessNodeIndent(node.consequent); + if (node.alternate && node.alternate.type !== "IfStatement") { + addBlocklessNodeIndent(node.alternate); + } + }, + + /* + * For blockless nodes with semicolon-first style, don't indent the semicolon. + * e.g. + * if (foo) + * bar() + * ; [1, 2, 3].map(foo) + * + * Traversal into the node sets indentation of the semicolon, so we need to override it on exit. + */ + ":matches(DoWhileStatement, ForStatement, ForInStatement, ForOfStatement, IfStatement, WhileStatement, WithStatement):exit"(node) { + let nodesToCheck; + + if (node.type === "IfStatement") { + nodesToCheck = [node.consequent]; + if (node.alternate) { + nodesToCheck.push(node.alternate); + } + } else { + nodesToCheck = [node.body]; + } + + for (const nodeToCheck of nodesToCheck) { + const lastToken = sourceCode.getLastToken(nodeToCheck); + + if (astUtils.isSemicolonToken(lastToken)) { + const tokenBeforeLast = sourceCode.getTokenBefore(lastToken); + const tokenAfterLast = sourceCode.getTokenAfter(lastToken); + + // override indentation of `;` only if its line looks like a semicolon-first style line + if ( + !astUtils.isTokenOnSameLine(tokenBeforeLast, lastToken) && + tokenAfterLast && + astUtils.isTokenOnSameLine(lastToken, tokenAfterLast) + ) { + offsets.setDesiredOffset( + lastToken, + sourceCode.getFirstToken(node), + 0 + ); + } + } + } + }, + + ImportDeclaration(node) { + if (node.specifiers.some(specifier => specifier.type === "ImportSpecifier")) { + const openingCurly = sourceCode.getFirstToken(node, astUtils.isOpeningBraceToken); + const closingCurly = sourceCode.getLastToken(node, astUtils.isClosingBraceToken); + + addElementListIndent(node.specifiers.filter(specifier => specifier.type === "ImportSpecifier"), openingCurly, closingCurly, options.ImportDeclaration); + } + + const fromToken = sourceCode.getLastToken(node, token => token.type === "Identifier" && token.value === "from"); + const sourceToken = sourceCode.getLastToken(node, token => token.type === "String"); + const semiToken = sourceCode.getLastToken(node, token => token.type === "Punctuator" && token.value === ";"); + + if (fromToken) { + const end = semiToken && semiToken.range[1] === sourceToken.range[1] ? node.range[1] : sourceToken.range[1]; + + offsets.setDesiredOffsets([fromToken.range[0], end], sourceCode.getFirstToken(node), 1); + } + }, + + ImportExpression(node) { + const openingParen = sourceCode.getFirstToken(node, 1); + const closingParen = sourceCode.getLastToken(node); + + parameterParens.add(openingParen); + parameterParens.add(closingParen); + offsets.setDesiredOffset(openingParen, sourceCode.getTokenBefore(openingParen), 0); + + addElementListIndent([node.source], openingParen, closingParen, options.CallExpression.arguments); + }, + + "MemberExpression, JSXMemberExpression, MetaProperty"(node) { + const object = node.type === "MetaProperty" ? node.meta : node.object; + const firstNonObjectToken = sourceCode.getFirstTokenBetween(object, node.property, astUtils.isNotClosingParenToken); + const secondNonObjectToken = sourceCode.getTokenAfter(firstNonObjectToken); + + const objectParenCount = sourceCode.getTokensBetween(object, node.property, { filter: astUtils.isClosingParenToken }).length; + const firstObjectToken = objectParenCount + ? sourceCode.getTokenBefore(object, { skip: objectParenCount - 1 }) + : sourceCode.getFirstToken(object); + const lastObjectToken = sourceCode.getTokenBefore(firstNonObjectToken); + const firstPropertyToken = node.computed ? firstNonObjectToken : secondNonObjectToken; + + if (node.computed) { + + // For computed MemberExpressions, match the closing bracket with the opening bracket. + offsets.setDesiredOffset(sourceCode.getLastToken(node), firstNonObjectToken, 0); + offsets.setDesiredOffsets(node.property.range, firstNonObjectToken, 1); + } + + /* + * If the object ends on the same line that the property starts, match against the last token + * of the object, to ensure that the MemberExpression is not indented. + * + * Otherwise, match against the first token of the object, e.g. + * foo + * .bar + * .baz // <-- offset by 1 from `foo` + */ + const offsetBase = lastObjectToken.loc.end.line === firstPropertyToken.loc.start.line + ? lastObjectToken + : firstObjectToken; + + if (typeof options.MemberExpression === "number") { + + // Match the dot (for non-computed properties) or the opening bracket (for computed properties) against the object. + offsets.setDesiredOffset(firstNonObjectToken, offsetBase, options.MemberExpression); + + /* + * For computed MemberExpressions, match the first token of the property against the opening bracket. + * Otherwise, match the first token of the property against the object. + */ + offsets.setDesiredOffset(secondNonObjectToken, node.computed ? firstNonObjectToken : offsetBase, options.MemberExpression); + } else { + + // If the MemberExpression option is off, ignore the dot and the first token of the property. + offsets.ignoreToken(firstNonObjectToken); + offsets.ignoreToken(secondNonObjectToken); + + // To ignore the property indentation, ensure that the property tokens depend on the ignored tokens. + offsets.setDesiredOffset(firstNonObjectToken, offsetBase, 0); + offsets.setDesiredOffset(secondNonObjectToken, firstNonObjectToken, 0); + } + }, + + NewExpression(node) { + + // Only indent the arguments if the NewExpression has parens (e.g. `new Foo(bar)` or `new Foo()`, but not `new Foo` + if (node.arguments.length > 0 || + astUtils.isClosingParenToken(sourceCode.getLastToken(node)) && + astUtils.isOpeningParenToken(sourceCode.getLastToken(node, 1))) { + addFunctionCallIndent(node); + } + }, + + Property(node) { + if (!node.shorthand && !node.method && node.kind === "init") { + const colon = sourceCode.getFirstTokenBetween(node.key, node.value, astUtils.isColonToken); + + offsets.ignoreToken(sourceCode.getTokenAfter(colon)); + } + }, + + PropertyDefinition(node) { + const firstToken = sourceCode.getFirstToken(node); + const maybeSemicolonToken = sourceCode.getLastToken(node); + let keyLastToken = null; + + // Indent key. + if (node.computed) { + const bracketTokenL = sourceCode.getTokenBefore(node.key, astUtils.isOpeningBracketToken); + const bracketTokenR = keyLastToken = sourceCode.getTokenAfter(node.key, astUtils.isClosingBracketToken); + const keyRange = [bracketTokenL.range[1], bracketTokenR.range[0]]; + + if (bracketTokenL !== firstToken) { + offsets.setDesiredOffset(bracketTokenL, firstToken, 0); + } + offsets.setDesiredOffsets(keyRange, bracketTokenL, 1); + offsets.setDesiredOffset(bracketTokenR, bracketTokenL, 0); + } else { + const idToken = keyLastToken = sourceCode.getFirstToken(node.key); + + if (idToken !== firstToken) { + offsets.setDesiredOffset(idToken, firstToken, 1); + } + } + + // Indent initializer. + if (node.value) { + const eqToken = sourceCode.getTokenBefore(node.value, astUtils.isEqToken); + const valueToken = sourceCode.getTokenAfter(eqToken); + + offsets.setDesiredOffset(eqToken, keyLastToken, 1); + offsets.setDesiredOffset(valueToken, eqToken, 1); + if (astUtils.isSemicolonToken(maybeSemicolonToken)) { + offsets.setDesiredOffset(maybeSemicolonToken, eqToken, 1); + } + } else if (astUtils.isSemicolonToken(maybeSemicolonToken)) { + offsets.setDesiredOffset(maybeSemicolonToken, keyLastToken, 1); + } + }, + + StaticBlock(node) { + const openingCurly = sourceCode.getFirstToken(node, { skip: 1 }); // skip the `static` token + const closingCurly = sourceCode.getLastToken(node); + + addElementListIndent(node.body, openingCurly, closingCurly, options.StaticBlock.body); + }, + + SwitchStatement(node) { + const openingCurly = sourceCode.getTokenAfter(node.discriminant, astUtils.isOpeningBraceToken); + const closingCurly = sourceCode.getLastToken(node); + + offsets.setDesiredOffsets([openingCurly.range[1], closingCurly.range[0]], openingCurly, options.SwitchCase); + + if (node.cases.length) { + sourceCode.getTokensBetween( + node.cases[node.cases.length - 1], + closingCurly, + { includeComments: true, filter: astUtils.isCommentToken } + ).forEach(token => offsets.ignoreToken(token)); + } + }, + + SwitchCase(node) { + if (!(node.consequent.length === 1 && node.consequent[0].type === "BlockStatement")) { + const caseKeyword = sourceCode.getFirstToken(node); + const tokenAfterCurrentCase = sourceCode.getTokenAfter(node); + + offsets.setDesiredOffsets([caseKeyword.range[1], tokenAfterCurrentCase.range[0]], caseKeyword, 1); + } + }, + + TemplateLiteral(node) { + node.expressions.forEach((expression, index) => { + const previousQuasi = node.quasis[index]; + const nextQuasi = node.quasis[index + 1]; + const tokenToAlignFrom = previousQuasi.loc.start.line === previousQuasi.loc.end.line + ? sourceCode.getFirstToken(previousQuasi) + : null; + + offsets.setDesiredOffsets([previousQuasi.range[1], nextQuasi.range[0]], tokenToAlignFrom, 1); + offsets.setDesiredOffset(sourceCode.getFirstToken(nextQuasi), tokenToAlignFrom, 0); + }); + }, + + VariableDeclaration(node) { + let variableIndent = Object.prototype.hasOwnProperty.call(options.VariableDeclarator, node.kind) + ? options.VariableDeclarator[node.kind] + : DEFAULT_VARIABLE_INDENT; + + const firstToken = sourceCode.getFirstToken(node), + lastToken = sourceCode.getLastToken(node); + + if (options.VariableDeclarator[node.kind] === "first") { + if (node.declarations.length > 1) { + addElementListIndent( + node.declarations, + firstToken, + lastToken, + "first" + ); + return; + } + + variableIndent = DEFAULT_VARIABLE_INDENT; + } + + if (node.declarations[node.declarations.length - 1].loc.start.line > node.loc.start.line) { + + /* + * VariableDeclarator indentation is a bit different from other forms of indentation, in that the + * indentation of an opening bracket sometimes won't match that of a closing bracket. For example, + * the following indentations are correct: + * + * var foo = { + * ok: true + * }; + * + * var foo = { + * ok: true, + * }, + * bar = 1; + * + * Account for when exiting the AST (after indentations have already been set for the nodes in + * the declaration) by manually increasing the indentation level of the tokens in this declarator + * on the same line as the start of the declaration, provided that there are declarators that + * follow this one. + */ + offsets.setDesiredOffsets(node.range, firstToken, variableIndent, true); + } else { + offsets.setDesiredOffsets(node.range, firstToken, variableIndent); + } + + if (astUtils.isSemicolonToken(lastToken)) { + offsets.ignoreToken(lastToken); + } + }, + + VariableDeclarator(node) { + if (node.init) { + const equalOperator = sourceCode.getTokenBefore(node.init, astUtils.isNotOpeningParenToken); + const tokenAfterOperator = sourceCode.getTokenAfter(equalOperator); + + offsets.ignoreToken(equalOperator); + offsets.ignoreToken(tokenAfterOperator); + offsets.setDesiredOffsets([tokenAfterOperator.range[0], node.range[1]], equalOperator, 1); + offsets.setDesiredOffset(equalOperator, sourceCode.getLastToken(node.id), 0); + } + }, + + "JSXAttribute[value]"(node) { + const equalsToken = sourceCode.getFirstTokenBetween(node.name, node.value, token => token.type === "Punctuator" && token.value === "="); + + offsets.setDesiredOffsets([equalsToken.range[0], node.value.range[1]], sourceCode.getFirstToken(node.name), 1); + }, + + JSXElement(node) { + if (node.closingElement) { + addElementListIndent(node.children, sourceCode.getFirstToken(node.openingElement), sourceCode.getFirstToken(node.closingElement), 1); + } + }, + + JSXOpeningElement(node) { + const firstToken = sourceCode.getFirstToken(node); + let closingToken; + + if (node.selfClosing) { + closingToken = sourceCode.getLastToken(node, { skip: 1 }); + offsets.setDesiredOffset(sourceCode.getLastToken(node), closingToken, 0); + } else { + closingToken = sourceCode.getLastToken(node); + } + offsets.setDesiredOffsets(node.name.range, sourceCode.getFirstToken(node)); + addElementListIndent(node.attributes, firstToken, closingToken, 1); + }, + + JSXClosingElement(node) { + const firstToken = sourceCode.getFirstToken(node); + + offsets.setDesiredOffsets(node.name.range, firstToken, 1); + }, + + JSXFragment(node) { + const firstOpeningToken = sourceCode.getFirstToken(node.openingFragment); + const firstClosingToken = sourceCode.getFirstToken(node.closingFragment); + + addElementListIndent(node.children, firstOpeningToken, firstClosingToken, 1); + }, + + JSXOpeningFragment(node) { + const firstToken = sourceCode.getFirstToken(node); + const closingToken = sourceCode.getLastToken(node); + + offsets.setDesiredOffsets(node.range, firstToken, 1); + offsets.matchOffsetOf(firstToken, closingToken); + }, + + JSXClosingFragment(node) { + const firstToken = sourceCode.getFirstToken(node); + const slashToken = sourceCode.getLastToken(node, { skip: 1 }); + const closingToken = sourceCode.getLastToken(node); + const tokenToMatch = astUtils.isTokenOnSameLine(slashToken, closingToken) ? slashToken : closingToken; + + offsets.setDesiredOffsets(node.range, firstToken, 1); + offsets.matchOffsetOf(firstToken, tokenToMatch); + }, + + JSXExpressionContainer(node) { + const openingCurly = sourceCode.getFirstToken(node); + const closingCurly = sourceCode.getLastToken(node); + + offsets.setDesiredOffsets( + [openingCurly.range[1], closingCurly.range[0]], + openingCurly, + 1 + ); + }, + + JSXSpreadAttribute(node) { + const openingCurly = sourceCode.getFirstToken(node); + const closingCurly = sourceCode.getLastToken(node); + + offsets.setDesiredOffsets( + [openingCurly.range[1], closingCurly.range[0]], + openingCurly, + 1 + ); + }, + + "*"(node) { + const firstToken = sourceCode.getFirstToken(node); + + // Ensure that the children of every node are indented at least as much as the first token. + if (firstToken && !ignoredNodeFirstTokens.has(firstToken)) { + offsets.setDesiredOffsets(node.range, firstToken, 0); + } + } + }; + + const listenerCallQueue = []; + + /* + * To ignore the indentation of a node: + * 1. Don't call the node's listener when entering it (if it has a listener) + * 2. Don't set any offsets against the first token of the node. + * 3. Call `ignoreNode` on the node sometime after exiting it and before validating offsets. + */ + const offsetListeners = {}; + + for (const [selector, listener] of Object.entries(baseOffsetListeners)) { + + /* + * Offset listener calls are deferred until traversal is finished, and are called as + * part of the final `Program:exit` listener. This is necessary because a node might + * be matched by multiple selectors. + * + * Example: Suppose there is an offset listener for `Identifier`, and the user has + * specified in configuration that `MemberExpression > Identifier` should be ignored. + * Due to selector specificity rules, the `Identifier` listener will get called first. However, + * if a given Identifier node is supposed to be ignored, then the `Identifier` offset listener + * should not have been called at all. Without doing extra selector matching, we don't know + * whether the Identifier matches the `MemberExpression > Identifier` selector until the + * `MemberExpression > Identifier` listener is called. + * + * To avoid this, the `Identifier` listener isn't called until traversal finishes and all + * ignored nodes are known. + */ + offsetListeners[selector] = node => listenerCallQueue.push({ listener, node }); + } + + // For each ignored node selector, set up a listener to collect it into the `ignoredNodes` set. + const ignoredNodes = new Set(); + + /** + * Ignores a node + * @param {ASTNode} node The node to ignore + * @returns {void} + */ + function addToIgnoredNodes(node) { + ignoredNodes.add(node); + ignoredNodeFirstTokens.add(sourceCode.getFirstToken(node)); + } + + const ignoredNodeListeners = options.ignoredNodes.reduce( + (listeners, ignoredSelector) => Object.assign(listeners, { [ignoredSelector]: addToIgnoredNodes }), + {} + ); + + /* + * Join the listeners, and add a listener to verify that all tokens actually have the correct indentation + * at the end. + * + * Using Object.assign will cause some offset listeners to be overwritten if the same selector also appears + * in `ignoredNodeListeners`. This isn't a problem because all of the matching nodes will be ignored, + * so those listeners wouldn't be called anyway. + */ + return Object.assign( + offsetListeners, + ignoredNodeListeners, + { + "*:exit"(node) { + + // If a node's type is nonstandard, we can't tell how its children should be offset, so ignore it. + if (!KNOWN_NODES.has(node.type)) { + addToIgnoredNodes(node); + } + }, + "Program:exit"() { + + // If ignoreComments option is enabled, ignore all comment tokens. + if (options.ignoreComments) { + sourceCode.getAllComments() + .forEach(comment => offsets.ignoreToken(comment)); + } + + // Invoke the queued offset listeners for the nodes that aren't ignored. + listenerCallQueue + .filter(nodeInfo => !ignoredNodes.has(nodeInfo.node)) + .forEach(nodeInfo => nodeInfo.listener(nodeInfo.node)); + + // Update the offsets for ignored nodes to prevent their child tokens from being reported. + ignoredNodes.forEach(ignoreNode); + + addParensIndent(sourceCode.ast.tokens); + + /* + * Create a Map from (tokenOrComment) => (precedingToken). + * This is necessary because sourceCode.getTokenBefore does not handle a comment as an argument correctly. + */ + const precedingTokens = sourceCode.ast.comments.reduce((commentMap, comment) => { + const tokenOrCommentBefore = sourceCode.getTokenBefore(comment, { includeComments: true }); + + return commentMap.set(comment, commentMap.has(tokenOrCommentBefore) ? commentMap.get(tokenOrCommentBefore) : tokenOrCommentBefore); + }, new WeakMap()); + + sourceCode.lines.forEach((line, lineIndex) => { + const lineNumber = lineIndex + 1; + + if (!tokenInfo.firstTokensByLineNumber.has(lineNumber)) { + + // Don't check indentation on blank lines + return; + } + + const firstTokenOfLine = tokenInfo.firstTokensByLineNumber.get(lineNumber); + + if (firstTokenOfLine.loc.start.line !== lineNumber) { + + // Don't check the indentation of multi-line tokens (e.g. template literals or block comments) twice. + return; + } + + if (astUtils.isCommentToken(firstTokenOfLine)) { + const tokenBefore = precedingTokens.get(firstTokenOfLine); + const tokenAfter = tokenBefore ? sourceCode.getTokenAfter(tokenBefore) : sourceCode.ast.tokens[0]; + const mayAlignWithBefore = tokenBefore && !hasBlankLinesBetween(tokenBefore, firstTokenOfLine); + const mayAlignWithAfter = tokenAfter && !hasBlankLinesBetween(firstTokenOfLine, tokenAfter); + + /* + * If a comment precedes a line that begins with a semicolon token, align to that token, i.e. + * + * let foo + * // comment + * ;(async () => {})() + */ + if (tokenAfter && astUtils.isSemicolonToken(tokenAfter) && !astUtils.isTokenOnSameLine(firstTokenOfLine, tokenAfter)) { + offsets.setDesiredOffset(firstTokenOfLine, tokenAfter, 0); + } + + // If a comment matches the expected indentation of the token immediately before or after, don't report it. + if ( + mayAlignWithBefore && validateTokenIndent(firstTokenOfLine, offsets.getDesiredIndent(tokenBefore)) || + mayAlignWithAfter && validateTokenIndent(firstTokenOfLine, offsets.getDesiredIndent(tokenAfter)) + ) { + return; + } + } + + // If the token matches the expected indentation, don't report it. + if (validateTokenIndent(firstTokenOfLine, offsets.getDesiredIndent(firstTokenOfLine))) { + return; + } + + // Otherwise, report the token/comment. + report(firstTokenOfLine, offsets.getDesiredIndent(firstTokenOfLine)); + }); + } + } + ); + } +}; diff --git a/node_modules/eslint/lib/rules/index.js b/node_modules/eslint/lib/rules/index.js new file mode 100644 index 0000000..565648c --- /dev/null +++ b/node_modules/eslint/lib/rules/index.js @@ -0,0 +1,303 @@ +/** + * @fileoverview Collects the built-in rules into a map structure so that they can be imported all at once and without + * using the file-system directly. + * @author Peter (Somogyvari) Metz + */ + +"use strict"; + +/* eslint sort-keys: ["error", "asc"] -- More readable for long list */ + +const { LazyLoadingRuleMap } = require("./utils/lazy-loading-rule-map"); + +/** @type {Map} */ +module.exports = new LazyLoadingRuleMap(Object.entries({ + "accessor-pairs": () => require("./accessor-pairs"), + "array-bracket-newline": () => require("./array-bracket-newline"), + "array-bracket-spacing": () => require("./array-bracket-spacing"), + "array-callback-return": () => require("./array-callback-return"), + "array-element-newline": () => require("./array-element-newline"), + "arrow-body-style": () => require("./arrow-body-style"), + "arrow-parens": () => require("./arrow-parens"), + "arrow-spacing": () => require("./arrow-spacing"), + "block-scoped-var": () => require("./block-scoped-var"), + "block-spacing": () => require("./block-spacing"), + "brace-style": () => require("./brace-style"), + "callback-return": () => require("./callback-return"), + camelcase: () => require("./camelcase"), + "capitalized-comments": () => require("./capitalized-comments"), + "class-methods-use-this": () => require("./class-methods-use-this"), + "comma-dangle": () => require("./comma-dangle"), + "comma-spacing": () => require("./comma-spacing"), + "comma-style": () => require("./comma-style"), + complexity: () => require("./complexity"), + "computed-property-spacing": () => require("./computed-property-spacing"), + "consistent-return": () => require("./consistent-return"), + "consistent-this": () => require("./consistent-this"), + "constructor-super": () => require("./constructor-super"), + curly: () => require("./curly"), + "default-case": () => require("./default-case"), + "default-case-last": () => require("./default-case-last"), + "default-param-last": () => require("./default-param-last"), + "dot-location": () => require("./dot-location"), + "dot-notation": () => require("./dot-notation"), + "eol-last": () => require("./eol-last"), + eqeqeq: () => require("./eqeqeq"), + "for-direction": () => require("./for-direction"), + "func-call-spacing": () => require("./func-call-spacing"), + "func-name-matching": () => require("./func-name-matching"), + "func-names": () => require("./func-names"), + "func-style": () => require("./func-style"), + "function-call-argument-newline": () => require("./function-call-argument-newline"), + "function-paren-newline": () => require("./function-paren-newline"), + "generator-star-spacing": () => require("./generator-star-spacing"), + "getter-return": () => require("./getter-return"), + "global-require": () => require("./global-require"), + "grouped-accessor-pairs": () => require("./grouped-accessor-pairs"), + "guard-for-in": () => require("./guard-for-in"), + "handle-callback-err": () => require("./handle-callback-err"), + "id-blacklist": () => require("./id-blacklist"), + "id-denylist": () => require("./id-denylist"), + "id-length": () => require("./id-length"), + "id-match": () => require("./id-match"), + "implicit-arrow-linebreak": () => require("./implicit-arrow-linebreak"), + indent: () => require("./indent"), + "indent-legacy": () => require("./indent-legacy"), + "init-declarations": () => require("./init-declarations"), + "jsx-quotes": () => require("./jsx-quotes"), + "key-spacing": () => require("./key-spacing"), + "keyword-spacing": () => require("./keyword-spacing"), + "line-comment-position": () => require("./line-comment-position"), + "linebreak-style": () => require("./linebreak-style"), + "lines-around-comment": () => require("./lines-around-comment"), + "lines-around-directive": () => require("./lines-around-directive"), + "lines-between-class-members": () => require("./lines-between-class-members"), + "logical-assignment-operators": () => require("./logical-assignment-operators"), + "max-classes-per-file": () => require("./max-classes-per-file"), + "max-depth": () => require("./max-depth"), + "max-len": () => require("./max-len"), + "max-lines": () => require("./max-lines"), + "max-lines-per-function": () => require("./max-lines-per-function"), + "max-nested-callbacks": () => require("./max-nested-callbacks"), + "max-params": () => require("./max-params"), + "max-statements": () => require("./max-statements"), + "max-statements-per-line": () => require("./max-statements-per-line"), + "multiline-comment-style": () => require("./multiline-comment-style"), + "multiline-ternary": () => require("./multiline-ternary"), + "new-cap": () => require("./new-cap"), + "new-parens": () => require("./new-parens"), + "newline-after-var": () => require("./newline-after-var"), + "newline-before-return": () => require("./newline-before-return"), + "newline-per-chained-call": () => require("./newline-per-chained-call"), + "no-alert": () => require("./no-alert"), + "no-array-constructor": () => require("./no-array-constructor"), + "no-async-promise-executor": () => require("./no-async-promise-executor"), + "no-await-in-loop": () => require("./no-await-in-loop"), + "no-bitwise": () => require("./no-bitwise"), + "no-buffer-constructor": () => require("./no-buffer-constructor"), + "no-caller": () => require("./no-caller"), + "no-case-declarations": () => require("./no-case-declarations"), + "no-catch-shadow": () => require("./no-catch-shadow"), + "no-class-assign": () => require("./no-class-assign"), + "no-compare-neg-zero": () => require("./no-compare-neg-zero"), + "no-cond-assign": () => require("./no-cond-assign"), + "no-confusing-arrow": () => require("./no-confusing-arrow"), + "no-console": () => require("./no-console"), + "no-const-assign": () => require("./no-const-assign"), + "no-constant-binary-expression": () => require("./no-constant-binary-expression"), + "no-constant-condition": () => require("./no-constant-condition"), + "no-constructor-return": () => require("./no-constructor-return"), + "no-continue": () => require("./no-continue"), + "no-control-regex": () => require("./no-control-regex"), + "no-debugger": () => require("./no-debugger"), + "no-delete-var": () => require("./no-delete-var"), + "no-div-regex": () => require("./no-div-regex"), + "no-dupe-args": () => require("./no-dupe-args"), + "no-dupe-class-members": () => require("./no-dupe-class-members"), + "no-dupe-else-if": () => require("./no-dupe-else-if"), + "no-dupe-keys": () => require("./no-dupe-keys"), + "no-duplicate-case": () => require("./no-duplicate-case"), + "no-duplicate-imports": () => require("./no-duplicate-imports"), + "no-else-return": () => require("./no-else-return"), + "no-empty": () => require("./no-empty"), + "no-empty-character-class": () => require("./no-empty-character-class"), + "no-empty-function": () => require("./no-empty-function"), + "no-empty-pattern": () => require("./no-empty-pattern"), + "no-eq-null": () => require("./no-eq-null"), + "no-eval": () => require("./no-eval"), + "no-ex-assign": () => require("./no-ex-assign"), + "no-extend-native": () => require("./no-extend-native"), + "no-extra-bind": () => require("./no-extra-bind"), + "no-extra-boolean-cast": () => require("./no-extra-boolean-cast"), + "no-extra-label": () => require("./no-extra-label"), + "no-extra-parens": () => require("./no-extra-parens"), + "no-extra-semi": () => require("./no-extra-semi"), + "no-fallthrough": () => require("./no-fallthrough"), + "no-floating-decimal": () => require("./no-floating-decimal"), + "no-func-assign": () => require("./no-func-assign"), + "no-global-assign": () => require("./no-global-assign"), + "no-implicit-coercion": () => require("./no-implicit-coercion"), + "no-implicit-globals": () => require("./no-implicit-globals"), + "no-implied-eval": () => require("./no-implied-eval"), + "no-import-assign": () => require("./no-import-assign"), + "no-inline-comments": () => require("./no-inline-comments"), + "no-inner-declarations": () => require("./no-inner-declarations"), + "no-invalid-regexp": () => require("./no-invalid-regexp"), + "no-invalid-this": () => require("./no-invalid-this"), + "no-irregular-whitespace": () => require("./no-irregular-whitespace"), + "no-iterator": () => require("./no-iterator"), + "no-label-var": () => require("./no-label-var"), + "no-labels": () => require("./no-labels"), + "no-lone-blocks": () => require("./no-lone-blocks"), + "no-lonely-if": () => require("./no-lonely-if"), + "no-loop-func": () => require("./no-loop-func"), + "no-loss-of-precision": () => require("./no-loss-of-precision"), + "no-magic-numbers": () => require("./no-magic-numbers"), + "no-misleading-character-class": () => require("./no-misleading-character-class"), + "no-mixed-operators": () => require("./no-mixed-operators"), + "no-mixed-requires": () => require("./no-mixed-requires"), + "no-mixed-spaces-and-tabs": () => require("./no-mixed-spaces-and-tabs"), + "no-multi-assign": () => require("./no-multi-assign"), + "no-multi-spaces": () => require("./no-multi-spaces"), + "no-multi-str": () => require("./no-multi-str"), + "no-multiple-empty-lines": () => require("./no-multiple-empty-lines"), + "no-native-reassign": () => require("./no-native-reassign"), + "no-negated-condition": () => require("./no-negated-condition"), + "no-negated-in-lhs": () => require("./no-negated-in-lhs"), + "no-nested-ternary": () => require("./no-nested-ternary"), + "no-new": () => require("./no-new"), + "no-new-func": () => require("./no-new-func"), + "no-new-object": () => require("./no-new-object"), + "no-new-require": () => require("./no-new-require"), + "no-new-symbol": () => require("./no-new-symbol"), + "no-new-wrappers": () => require("./no-new-wrappers"), + "no-nonoctal-decimal-escape": () => require("./no-nonoctal-decimal-escape"), + "no-obj-calls": () => require("./no-obj-calls"), + "no-octal": () => require("./no-octal"), + "no-octal-escape": () => require("./no-octal-escape"), + "no-param-reassign": () => require("./no-param-reassign"), + "no-path-concat": () => require("./no-path-concat"), + "no-plusplus": () => require("./no-plusplus"), + "no-process-env": () => require("./no-process-env"), + "no-process-exit": () => require("./no-process-exit"), + "no-promise-executor-return": () => require("./no-promise-executor-return"), + "no-proto": () => require("./no-proto"), + "no-prototype-builtins": () => require("./no-prototype-builtins"), + "no-redeclare": () => require("./no-redeclare"), + "no-regex-spaces": () => require("./no-regex-spaces"), + "no-restricted-exports": () => require("./no-restricted-exports"), + "no-restricted-globals": () => require("./no-restricted-globals"), + "no-restricted-imports": () => require("./no-restricted-imports"), + "no-restricted-modules": () => require("./no-restricted-modules"), + "no-restricted-properties": () => require("./no-restricted-properties"), + "no-restricted-syntax": () => require("./no-restricted-syntax"), + "no-return-assign": () => require("./no-return-assign"), + "no-return-await": () => require("./no-return-await"), + "no-script-url": () => require("./no-script-url"), + "no-self-assign": () => require("./no-self-assign"), + "no-self-compare": () => require("./no-self-compare"), + "no-sequences": () => require("./no-sequences"), + "no-setter-return": () => require("./no-setter-return"), + "no-shadow": () => require("./no-shadow"), + "no-shadow-restricted-names": () => require("./no-shadow-restricted-names"), + "no-spaced-func": () => require("./no-spaced-func"), + "no-sparse-arrays": () => require("./no-sparse-arrays"), + "no-sync": () => require("./no-sync"), + "no-tabs": () => require("./no-tabs"), + "no-template-curly-in-string": () => require("./no-template-curly-in-string"), + "no-ternary": () => require("./no-ternary"), + "no-this-before-super": () => require("./no-this-before-super"), + "no-throw-literal": () => require("./no-throw-literal"), + "no-trailing-spaces": () => require("./no-trailing-spaces"), + "no-undef": () => require("./no-undef"), + "no-undef-init": () => require("./no-undef-init"), + "no-undefined": () => require("./no-undefined"), + "no-underscore-dangle": () => require("./no-underscore-dangle"), + "no-unexpected-multiline": () => require("./no-unexpected-multiline"), + "no-unmodified-loop-condition": () => require("./no-unmodified-loop-condition"), + "no-unneeded-ternary": () => require("./no-unneeded-ternary"), + "no-unreachable": () => require("./no-unreachable"), + "no-unreachable-loop": () => require("./no-unreachable-loop"), + "no-unsafe-finally": () => require("./no-unsafe-finally"), + "no-unsafe-negation": () => require("./no-unsafe-negation"), + "no-unsafe-optional-chaining": () => require("./no-unsafe-optional-chaining"), + "no-unused-expressions": () => require("./no-unused-expressions"), + "no-unused-labels": () => require("./no-unused-labels"), + "no-unused-private-class-members": () => require("./no-unused-private-class-members"), + "no-unused-vars": () => require("./no-unused-vars"), + "no-use-before-define": () => require("./no-use-before-define"), + "no-useless-backreference": () => require("./no-useless-backreference"), + "no-useless-call": () => require("./no-useless-call"), + "no-useless-catch": () => require("./no-useless-catch"), + "no-useless-computed-key": () => require("./no-useless-computed-key"), + "no-useless-concat": () => require("./no-useless-concat"), + "no-useless-constructor": () => require("./no-useless-constructor"), + "no-useless-escape": () => require("./no-useless-escape"), + "no-useless-rename": () => require("./no-useless-rename"), + "no-useless-return": () => require("./no-useless-return"), + "no-var": () => require("./no-var"), + "no-void": () => require("./no-void"), + "no-warning-comments": () => require("./no-warning-comments"), + "no-whitespace-before-property": () => require("./no-whitespace-before-property"), + "no-with": () => require("./no-with"), + "nonblock-statement-body-position": () => require("./nonblock-statement-body-position"), + "object-curly-newline": () => require("./object-curly-newline"), + "object-curly-spacing": () => require("./object-curly-spacing"), + "object-property-newline": () => require("./object-property-newline"), + "object-shorthand": () => require("./object-shorthand"), + "one-var": () => require("./one-var"), + "one-var-declaration-per-line": () => require("./one-var-declaration-per-line"), + "operator-assignment": () => require("./operator-assignment"), + "operator-linebreak": () => require("./operator-linebreak"), + "padded-blocks": () => require("./padded-blocks"), + "padding-line-between-statements": () => require("./padding-line-between-statements"), + "prefer-arrow-callback": () => require("./prefer-arrow-callback"), + "prefer-const": () => require("./prefer-const"), + "prefer-destructuring": () => require("./prefer-destructuring"), + "prefer-exponentiation-operator": () => require("./prefer-exponentiation-operator"), + "prefer-named-capture-group": () => require("./prefer-named-capture-group"), + "prefer-numeric-literals": () => require("./prefer-numeric-literals"), + "prefer-object-has-own": () => require("./prefer-object-has-own"), + "prefer-object-spread": () => require("./prefer-object-spread"), + "prefer-promise-reject-errors": () => require("./prefer-promise-reject-errors"), + "prefer-reflect": () => require("./prefer-reflect"), + "prefer-regex-literals": () => require("./prefer-regex-literals"), + "prefer-rest-params": () => require("./prefer-rest-params"), + "prefer-spread": () => require("./prefer-spread"), + "prefer-template": () => require("./prefer-template"), + "quote-props": () => require("./quote-props"), + quotes: () => require("./quotes"), + radix: () => require("./radix"), + "require-atomic-updates": () => require("./require-atomic-updates"), + "require-await": () => require("./require-await"), + "require-jsdoc": () => require("./require-jsdoc"), + "require-unicode-regexp": () => require("./require-unicode-regexp"), + "require-yield": () => require("./require-yield"), + "rest-spread-spacing": () => require("./rest-spread-spacing"), + semi: () => require("./semi"), + "semi-spacing": () => require("./semi-spacing"), + "semi-style": () => require("./semi-style"), + "sort-imports": () => require("./sort-imports"), + "sort-keys": () => require("./sort-keys"), + "sort-vars": () => require("./sort-vars"), + "space-before-blocks": () => require("./space-before-blocks"), + "space-before-function-paren": () => require("./space-before-function-paren"), + "space-in-parens": () => require("./space-in-parens"), + "space-infix-ops": () => require("./space-infix-ops"), + "space-unary-ops": () => require("./space-unary-ops"), + "spaced-comment": () => require("./spaced-comment"), + strict: () => require("./strict"), + "switch-colon-spacing": () => require("./switch-colon-spacing"), + "symbol-description": () => require("./symbol-description"), + "template-curly-spacing": () => require("./template-curly-spacing"), + "template-tag-spacing": () => require("./template-tag-spacing"), + "unicode-bom": () => require("./unicode-bom"), + "use-isnan": () => require("./use-isnan"), + "valid-jsdoc": () => require("./valid-jsdoc"), + "valid-typeof": () => require("./valid-typeof"), + "vars-on-top": () => require("./vars-on-top"), + "wrap-iife": () => require("./wrap-iife"), + "wrap-regex": () => require("./wrap-regex"), + "yield-star-spacing": () => require("./yield-star-spacing"), + yoda: () => require("./yoda") +})); diff --git a/node_modules/eslint/lib/rules/init-declarations.js b/node_modules/eslint/lib/rules/init-declarations.js new file mode 100644 index 0000000..b2ddf64 --- /dev/null +++ b/node_modules/eslint/lib/rules/init-declarations.js @@ -0,0 +1,139 @@ +/** + * @fileoverview A rule to control the style of variable initializations. + * @author Colin Ihrig + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given node is a for loop. + * @param {ASTNode} block A node to check. + * @returns {boolean} `true` when the node is a for loop. + */ +function isForLoop(block) { + return block.type === "ForInStatement" || + block.type === "ForOfStatement" || + block.type === "ForStatement"; +} + +/** + * Checks whether or not a given declarator node has its initializer. + * @param {ASTNode} node A declarator node to check. + * @returns {boolean} `true` when the node has its initializer. + */ +function isInitialized(node) { + const declaration = node.parent; + const block = declaration.parent; + + if (isForLoop(block)) { + if (block.type === "ForStatement") { + return block.init === declaration; + } + return block.left === declaration; + } + return Boolean(node.init); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require or disallow initialization in variable declarations", + recommended: false, + url: "https://eslint.org/docs/rules/init-declarations" + }, + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["always"] + } + ], + minItems: 0, + maxItems: 1 + }, + { + type: "array", + items: [ + { + enum: ["never"] + }, + { + type: "object", + properties: { + ignoreForLoopInit: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + messages: { + initialized: "Variable '{{idName}}' should be initialized on declaration.", + notInitialized: "Variable '{{idName}}' should not be initialized on declaration." + } + }, + + create(context) { + + const MODE_ALWAYS = "always", + MODE_NEVER = "never"; + + const mode = context.options[0] || MODE_ALWAYS; + const params = context.options[1] || {}; + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + "VariableDeclaration:exit"(node) { + + const kind = node.kind, + declarations = node.declarations; + + for (let i = 0; i < declarations.length; ++i) { + const declaration = declarations[i], + id = declaration.id, + initialized = isInitialized(declaration), + isIgnoredForLoop = params.ignoreForLoopInit && isForLoop(node.parent); + let messageId = ""; + + if (mode === MODE_ALWAYS && !initialized) { + messageId = "initialized"; + } else if (mode === MODE_NEVER && kind !== "const" && initialized && !isIgnoredForLoop) { + messageId = "notInitialized"; + } + + if (id.type === "Identifier" && messageId) { + context.report({ + node: declaration, + messageId, + data: { + idName: id.name + } + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/jsx-quotes.js b/node_modules/eslint/lib/rules/jsx-quotes.js new file mode 100644 index 0000000..6745bb6 --- /dev/null +++ b/node_modules/eslint/lib/rules/jsx-quotes.js @@ -0,0 +1,95 @@ +/** + * @fileoverview A rule to ensure consistent quotes used in jsx syntax. + * @author Mathias Schreck + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const QUOTE_SETTINGS = { + "prefer-double": { + quote: "\"", + description: "singlequote", + convert(str) { + return str.replace(/'/gu, "\""); + } + }, + "prefer-single": { + quote: "'", + description: "doublequote", + convert(str) { + return str.replace(/"/gu, "'"); + } + } +}; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce the consistent use of either double or single quotes in JSX attributes", + recommended: false, + url: "https://eslint.org/docs/rules/jsx-quotes" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["prefer-single", "prefer-double"] + } + ], + messages: { + unexpected: "Unexpected usage of {{description}}." + } + }, + + create(context) { + const quoteOption = context.options[0] || "prefer-double", + setting = QUOTE_SETTINGS[quoteOption]; + + /** + * Checks if the given string literal node uses the expected quotes + * @param {ASTNode} node A string literal node. + * @returns {boolean} Whether or not the string literal used the expected quotes. + * @public + */ + function usesExpectedQuotes(node) { + return node.value.includes(setting.quote) || astUtils.isSurroundedBy(node.raw, setting.quote); + } + + return { + JSXAttribute(node) { + const attributeValue = node.value; + + if (attributeValue && astUtils.isStringLiteral(attributeValue) && !usesExpectedQuotes(attributeValue)) { + context.report({ + node: attributeValue, + messageId: "unexpected", + data: { + description: setting.description + }, + fix(fixer) { + return fixer.replaceText(attributeValue, setting.convert(attributeValue.raw)); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/key-spacing.js b/node_modules/eslint/lib/rules/key-spacing.js new file mode 100644 index 0000000..b764b72 --- /dev/null +++ b/node_modules/eslint/lib/rules/key-spacing.js @@ -0,0 +1,678 @@ +/** + * @fileoverview Rule to specify spacing of object literal keys and values + * @author Brandon Mills + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const GraphemeSplitter = require("grapheme-splitter"); + +const splitter = new GraphemeSplitter(); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether a string contains a line terminator as defined in + * http://www.ecma-international.org/ecma-262/5.1/#sec-7.3 + * @param {string} str String to test. + * @returns {boolean} True if str contains a line terminator. + */ +function containsLineTerminator(str) { + return astUtils.LINEBREAK_MATCHER.test(str); +} + +/** + * Gets the last element of an array. + * @param {Array} arr An array. + * @returns {any} Last element of arr. + */ +function last(arr) { + return arr[arr.length - 1]; +} + +/** + * Checks whether a node is contained on a single line. + * @param {ASTNode} node AST Node being evaluated. + * @returns {boolean} True if the node is a single line. + */ +function isSingleLine(node) { + return (node.loc.end.line === node.loc.start.line); +} + +/** + * Checks whether the properties on a single line. + * @param {ASTNode[]} properties List of Property AST nodes. + * @returns {boolean} True if all properties is on a single line. + */ +function isSingleLineProperties(properties) { + const [firstProp] = properties, + lastProp = last(properties); + + return firstProp.loc.start.line === lastProp.loc.end.line; +} + +/** + * Initializes a single option property from the configuration with defaults for undefined values + * @param {Object} toOptions Object to be initialized + * @param {Object} fromOptions Object to be initialized from + * @returns {Object} The object with correctly initialized options and values + */ +function initOptionProperty(toOptions, fromOptions) { + toOptions.mode = fromOptions.mode || "strict"; + + // Set value of beforeColon + if (typeof fromOptions.beforeColon !== "undefined") { + toOptions.beforeColon = +fromOptions.beforeColon; + } else { + toOptions.beforeColon = 0; + } + + // Set value of afterColon + if (typeof fromOptions.afterColon !== "undefined") { + toOptions.afterColon = +fromOptions.afterColon; + } else { + toOptions.afterColon = 1; + } + + // Set align if exists + if (typeof fromOptions.align !== "undefined") { + if (typeof fromOptions.align === "object") { + toOptions.align = fromOptions.align; + } else { // "string" + toOptions.align = { + on: fromOptions.align, + mode: toOptions.mode, + beforeColon: toOptions.beforeColon, + afterColon: toOptions.afterColon + }; + } + } + + return toOptions; +} + +/** + * Initializes all the option values (singleLine, multiLine and align) from the configuration with defaults for undefined values + * @param {Object} toOptions Object to be initialized + * @param {Object} fromOptions Object to be initialized from + * @returns {Object} The object with correctly initialized options and values + */ +function initOptions(toOptions, fromOptions) { + if (typeof fromOptions.align === "object") { + + // Initialize the alignment configuration + toOptions.align = initOptionProperty({}, fromOptions.align); + toOptions.align.on = fromOptions.align.on || "colon"; + toOptions.align.mode = fromOptions.align.mode || "strict"; + + toOptions.multiLine = initOptionProperty({}, (fromOptions.multiLine || fromOptions)); + toOptions.singleLine = initOptionProperty({}, (fromOptions.singleLine || fromOptions)); + + } else { // string or undefined + toOptions.multiLine = initOptionProperty({}, (fromOptions.multiLine || fromOptions)); + toOptions.singleLine = initOptionProperty({}, (fromOptions.singleLine || fromOptions)); + + // If alignment options are defined in multiLine, pull them out into the general align configuration + if (toOptions.multiLine.align) { + toOptions.align = { + on: toOptions.multiLine.align.on, + mode: toOptions.multiLine.align.mode || toOptions.multiLine.mode, + beforeColon: toOptions.multiLine.align.beforeColon, + afterColon: toOptions.multiLine.align.afterColon + }; + } + } + + return toOptions; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing between keys and values in object literal properties", + recommended: false, + url: "https://eslint.org/docs/rules/key-spacing" + }, + + fixable: "whitespace", + + schema: [{ + anyOf: [ + { + type: "object", + properties: { + align: { + anyOf: [ + { + enum: ["colon", "value"] + }, + { + type: "object", + properties: { + mode: { + enum: ["strict", "minimum"] + }, + on: { + enum: ["colon", "value"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + } + ] + }, + mode: { + enum: ["strict", "minimum"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + }, + { + type: "object", + properties: { + singleLine: { + type: "object", + properties: { + mode: { + enum: ["strict", "minimum"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + }, + multiLine: { + type: "object", + properties: { + align: { + anyOf: [ + { + enum: ["colon", "value"] + }, + { + type: "object", + properties: { + mode: { + enum: ["strict", "minimum"] + }, + on: { + enum: ["colon", "value"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + } + ] + }, + mode: { + enum: ["strict", "minimum"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + } + }, + additionalProperties: false + }, + { + type: "object", + properties: { + singleLine: { + type: "object", + properties: { + mode: { + enum: ["strict", "minimum"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + }, + multiLine: { + type: "object", + properties: { + mode: { + enum: ["strict", "minimum"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + }, + align: { + type: "object", + properties: { + mode: { + enum: ["strict", "minimum"] + }, + on: { + enum: ["colon", "value"] + }, + beforeColon: { + type: "boolean" + }, + afterColon: { + type: "boolean" + } + }, + additionalProperties: false + } + }, + additionalProperties: false + } + ] + }], + messages: { + extraKey: "Extra space after {{computed}}key '{{key}}'.", + extraValue: "Extra space before value for {{computed}}key '{{key}}'.", + missingKey: "Missing space after {{computed}}key '{{key}}'.", + missingValue: "Missing space before value for {{computed}}key '{{key}}'." + } + }, + + create(context) { + + /** + * OPTIONS + * "key-spacing": [2, { + * beforeColon: false, + * afterColon: true, + * align: "colon" // Optional, or "value" + * } + */ + const options = context.options[0] || {}, + ruleOptions = initOptions({}, options), + multiLineOptions = ruleOptions.multiLine, + singleLineOptions = ruleOptions.singleLine, + alignmentOptions = ruleOptions.align || null; + + const sourceCode = context.getSourceCode(); + + /** + * Checks whether a property is a member of the property group it follows. + * @param {ASTNode} lastMember The last Property known to be in the group. + * @param {ASTNode} candidate The next Property that might be in the group. + * @returns {boolean} True if the candidate property is part of the group. + */ + function continuesPropertyGroup(lastMember, candidate) { + const groupEndLine = lastMember.loc.start.line, + candidateStartLine = candidate.loc.start.line; + + if (candidateStartLine - groupEndLine <= 1) { + return true; + } + + /* + * Check that the first comment is adjacent to the end of the group, the + * last comment is adjacent to the candidate property, and that successive + * comments are adjacent to each other. + */ + const leadingComments = sourceCode.getCommentsBefore(candidate); + + if ( + leadingComments.length && + leadingComments[0].loc.start.line - groupEndLine <= 1 && + candidateStartLine - last(leadingComments).loc.end.line <= 1 + ) { + for (let i = 1; i < leadingComments.length; i++) { + if (leadingComments[i].loc.start.line - leadingComments[i - 1].loc.end.line > 1) { + return false; + } + } + return true; + } + + return false; + } + + /** + * Determines if the given property is key-value property. + * @param {ASTNode} property Property node to check. + * @returns {boolean} Whether the property is a key-value property. + */ + function isKeyValueProperty(property) { + return !( + (property.method || + property.shorthand || + property.kind !== "init" || property.type !== "Property") // Could be "ExperimentalSpreadProperty" or "SpreadElement" + ); + } + + /** + * Starting from the given a node (a property.key node here) looks forward + * until it finds the last token before a colon punctuator and returns it. + * @param {ASTNode} node The node to start looking from. + * @returns {ASTNode} The last token before a colon punctuator. + */ + function getLastTokenBeforeColon(node) { + const colonToken = sourceCode.getTokenAfter(node, astUtils.isColonToken); + + return sourceCode.getTokenBefore(colonToken); + } + + /** + * Starting from the given a node (a property.key node here) looks forward + * until it finds the colon punctuator and returns it. + * @param {ASTNode} node The node to start looking from. + * @returns {ASTNode} The colon punctuator. + */ + function getNextColon(node) { + return sourceCode.getTokenAfter(node, astUtils.isColonToken); + } + + /** + * Gets an object literal property's key as the identifier name or string value. + * @param {ASTNode} property Property node whose key to retrieve. + * @returns {string} The property's key. + */ + function getKey(property) { + const key = property.key; + + if (property.computed) { + return sourceCode.getText().slice(key.range[0], key.range[1]); + } + return astUtils.getStaticPropertyName(property); + } + + /** + * Reports an appropriately-formatted error if spacing is incorrect on one + * side of the colon. + * @param {ASTNode} property Key-value pair in an object literal. + * @param {string} side Side being verified - either "key" or "value". + * @param {string} whitespace Actual whitespace string. + * @param {int} expected Expected whitespace length. + * @param {string} mode Value of the mode as "strict" or "minimum" + * @returns {void} + */ + function report(property, side, whitespace, expected, mode) { + const diff = whitespace.length - expected; + + if (( + diff && mode === "strict" || + diff < 0 && mode === "minimum" || + diff > 0 && !expected && mode === "minimum") && + !(expected && containsLineTerminator(whitespace)) + ) { + const nextColon = getNextColon(property.key), + tokenBeforeColon = sourceCode.getTokenBefore(nextColon, { includeComments: true }), + tokenAfterColon = sourceCode.getTokenAfter(nextColon, { includeComments: true }), + isKeySide = side === "key", + isExtra = diff > 0, + diffAbs = Math.abs(diff), + spaces = Array(diffAbs + 1).join(" "); + + const locStart = isKeySide ? tokenBeforeColon.loc.end : nextColon.loc.start; + const locEnd = isKeySide ? nextColon.loc.start : tokenAfterColon.loc.start; + const missingLoc = isKeySide ? tokenBeforeColon.loc : tokenAfterColon.loc; + const loc = isExtra ? { start: locStart, end: locEnd } : missingLoc; + + let fix; + + if (isExtra) { + let range; + + // Remove whitespace + if (isKeySide) { + range = [tokenBeforeColon.range[1], tokenBeforeColon.range[1] + diffAbs]; + } else { + range = [tokenAfterColon.range[0] - diffAbs, tokenAfterColon.range[0]]; + } + fix = function(fixer) { + return fixer.removeRange(range); + }; + } else { + + // Add whitespace + if (isKeySide) { + fix = function(fixer) { + return fixer.insertTextAfter(tokenBeforeColon, spaces); + }; + } else { + fix = function(fixer) { + return fixer.insertTextBefore(tokenAfterColon, spaces); + }; + } + } + + let messageId = ""; + + if (isExtra) { + messageId = side === "key" ? "extraKey" : "extraValue"; + } else { + messageId = side === "key" ? "missingKey" : "missingValue"; + } + + context.report({ + node: property[side], + loc, + messageId, + data: { + computed: property.computed ? "computed " : "", + key: getKey(property) + }, + fix + }); + } + } + + /** + * Gets the number of characters in a key, including quotes around string + * keys and braces around computed property keys. + * @param {ASTNode} property Property of on object literal. + * @returns {int} Width of the key. + */ + function getKeyWidth(property) { + const startToken = sourceCode.getFirstToken(property); + const endToken = getLastTokenBeforeColon(property.key); + + return splitter.countGraphemes(sourceCode.getText().slice(startToken.range[0], endToken.range[1])); + } + + /** + * Gets the whitespace around the colon in an object literal property. + * @param {ASTNode} property Property node from an object literal. + * @returns {Object} Whitespace before and after the property's colon. + */ + function getPropertyWhitespace(property) { + const whitespace = /(\s*):(\s*)/u.exec(sourceCode.getText().slice( + property.key.range[1], property.value.range[0] + )); + + if (whitespace) { + return { + beforeColon: whitespace[1], + afterColon: whitespace[2] + }; + } + return null; + } + + /** + * Creates groups of properties. + * @param {ASTNode} node ObjectExpression node being evaluated. + * @returns {Array} Groups of property AST node lists. + */ + function createGroups(node) { + if (node.properties.length === 1) { + return [node.properties]; + } + + return node.properties.reduce((groups, property) => { + const currentGroup = last(groups), + prev = last(currentGroup); + + if (!prev || continuesPropertyGroup(prev, property)) { + currentGroup.push(property); + } else { + groups.push([property]); + } + + return groups; + }, [ + [] + ]); + } + + /** + * Verifies correct vertical alignment of a group of properties. + * @param {ASTNode[]} properties List of Property AST nodes. + * @returns {void} + */ + function verifyGroupAlignment(properties) { + const length = properties.length, + widths = properties.map(getKeyWidth), // Width of keys, including quotes + align = alignmentOptions.on; // "value" or "colon" + let targetWidth = Math.max(...widths), + beforeColon, afterColon, mode; + + if (alignmentOptions && length > 1) { // When aligning values within a group, use the alignment configuration. + beforeColon = alignmentOptions.beforeColon; + afterColon = alignmentOptions.afterColon; + mode = alignmentOptions.mode; + } else { + beforeColon = multiLineOptions.beforeColon; + afterColon = multiLineOptions.afterColon; + mode = alignmentOptions.mode; + } + + // Conditionally include one space before or after colon + targetWidth += (align === "colon" ? beforeColon : afterColon); + + for (let i = 0; i < length; i++) { + const property = properties[i]; + const whitespace = getPropertyWhitespace(property); + + if (whitespace) { // Object literal getters/setters lack a colon + const width = widths[i]; + + if (align === "value") { + report(property, "key", whitespace.beforeColon, beforeColon, mode); + report(property, "value", whitespace.afterColon, targetWidth - width, mode); + } else { // align = "colon" + report(property, "key", whitespace.beforeColon, targetWidth - width, mode); + report(property, "value", whitespace.afterColon, afterColon, mode); + } + } + } + } + + /** + * Verifies spacing of property conforms to specified options. + * @param {ASTNode} node Property node being evaluated. + * @param {Object} lineOptions Configured singleLine or multiLine options + * @returns {void} + */ + function verifySpacing(node, lineOptions) { + const actual = getPropertyWhitespace(node); + + if (actual) { // Object literal getters/setters lack colons + report(node, "key", actual.beforeColon, lineOptions.beforeColon, lineOptions.mode); + report(node, "value", actual.afterColon, lineOptions.afterColon, lineOptions.mode); + } + } + + /** + * Verifies spacing of each property in a list. + * @param {ASTNode[]} properties List of Property AST nodes. + * @param {Object} lineOptions Configured singleLine or multiLine options + * @returns {void} + */ + function verifyListSpacing(properties, lineOptions) { + const length = properties.length; + + for (let i = 0; i < length; i++) { + verifySpacing(properties[i], lineOptions); + } + } + + /** + * Verifies vertical alignment, taking into account groups of properties. + * @param {ASTNode} node ObjectExpression node being evaluated. + * @returns {void} + */ + function verifyAlignment(node) { + createGroups(node).forEach(group => { + const properties = group.filter(isKeyValueProperty); + + if (properties.length > 0 && isSingleLineProperties(properties)) { + verifyListSpacing(properties, multiLineOptions); + } else { + verifyGroupAlignment(properties); + } + }); + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + if (alignmentOptions) { // Verify vertical alignment + + return { + ObjectExpression(node) { + if (isSingleLine(node)) { + verifyListSpacing(node.properties.filter(isKeyValueProperty), singleLineOptions); + } else { + verifyAlignment(node); + } + } + }; + + } + + // Obey beforeColon and afterColon in each property as configured + return { + Property(node) { + verifySpacing(node, isSingleLine(node.parent) ? singleLineOptions : multiLineOptions); + } + }; + + + } +}; diff --git a/node_modules/eslint/lib/rules/keyword-spacing.js b/node_modules/eslint/lib/rules/keyword-spacing.js new file mode 100644 index 0000000..59a500f --- /dev/null +++ b/node_modules/eslint/lib/rules/keyword-spacing.js @@ -0,0 +1,637 @@ +/** + * @fileoverview Rule to enforce spacing before and after keywords. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"), + keywords = require("./utils/keywords"); + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const PREV_TOKEN = /^[)\]}>]$/u; +const NEXT_TOKEN = /^(?:[([{<~!]|\+\+?|--?)$/u; +const PREV_TOKEN_M = /^[)\]}>*]$/u; +const NEXT_TOKEN_M = /^[{*]$/u; +const TEMPLATE_OPEN_PAREN = /\$\{$/u; +const TEMPLATE_CLOSE_PAREN = /^\}/u; +const CHECK_TYPE = /^(?:JSXElement|RegularExpression|String|Template|PrivateIdentifier)$/u; +const KEYS = keywords.concat(["as", "async", "await", "from", "get", "let", "of", "set", "yield"]); + +// check duplications. +(function() { + KEYS.sort(); + for (let i = 1; i < KEYS.length; ++i) { + if (KEYS[i] === KEYS[i - 1]) { + throw new Error(`Duplication was found in the keyword list: ${KEYS[i]}`); + } + } +}()); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given token is a "Template" token ends with "${". + * @param {Token} token A token to check. + * @returns {boolean} `true` if the token is a "Template" token ends with "${". + */ +function isOpenParenOfTemplate(token) { + return token.type === "Template" && TEMPLATE_OPEN_PAREN.test(token.value); +} + +/** + * Checks whether or not a given token is a "Template" token starts with "}". + * @param {Token} token A token to check. + * @returns {boolean} `true` if the token is a "Template" token starts with "}". + */ +function isCloseParenOfTemplate(token) { + return token.type === "Template" && TEMPLATE_CLOSE_PAREN.test(token.value); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing before and after keywords", + recommended: false, + url: "https://eslint.org/docs/rules/keyword-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + before: { type: "boolean", default: true }, + after: { type: "boolean", default: true }, + overrides: { + type: "object", + properties: KEYS.reduce((retv, key) => { + retv[key] = { + type: "object", + properties: { + before: { type: "boolean" }, + after: { type: "boolean" } + }, + additionalProperties: false + }; + return retv; + }, {}), + additionalProperties: false + } + }, + additionalProperties: false + } + ], + messages: { + expectedBefore: "Expected space(s) before \"{{value}}\".", + expectedAfter: "Expected space(s) after \"{{value}}\".", + unexpectedBefore: "Unexpected space(s) before \"{{value}}\".", + unexpectedAfter: "Unexpected space(s) after \"{{value}}\"." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + const tokensToIgnore = new WeakSet(); + + /** + * Reports a given token if there are not space(s) before the token. + * @param {Token} token A token to report. + * @param {RegExp} pattern A pattern of the previous token to check. + * @returns {void} + */ + function expectSpaceBefore(token, pattern) { + const prevToken = sourceCode.getTokenBefore(token); + + if (prevToken && + (CHECK_TYPE.test(prevToken.type) || pattern.test(prevToken.value)) && + !isOpenParenOfTemplate(prevToken) && + !tokensToIgnore.has(prevToken) && + astUtils.isTokenOnSameLine(prevToken, token) && + !sourceCode.isSpaceBetweenTokens(prevToken, token) + ) { + context.report({ + loc: token.loc, + messageId: "expectedBefore", + data: token, + fix(fixer) { + return fixer.insertTextBefore(token, " "); + } + }); + } + } + + /** + * Reports a given token if there are space(s) before the token. + * @param {Token} token A token to report. + * @param {RegExp} pattern A pattern of the previous token to check. + * @returns {void} + */ + function unexpectSpaceBefore(token, pattern) { + const prevToken = sourceCode.getTokenBefore(token); + + if (prevToken && + (CHECK_TYPE.test(prevToken.type) || pattern.test(prevToken.value)) && + !isOpenParenOfTemplate(prevToken) && + !tokensToIgnore.has(prevToken) && + astUtils.isTokenOnSameLine(prevToken, token) && + sourceCode.isSpaceBetweenTokens(prevToken, token) + ) { + context.report({ + loc: { start: prevToken.loc.end, end: token.loc.start }, + messageId: "unexpectedBefore", + data: token, + fix(fixer) { + return fixer.removeRange([prevToken.range[1], token.range[0]]); + } + }); + } + } + + /** + * Reports a given token if there are not space(s) after the token. + * @param {Token} token A token to report. + * @param {RegExp} pattern A pattern of the next token to check. + * @returns {void} + */ + function expectSpaceAfter(token, pattern) { + const nextToken = sourceCode.getTokenAfter(token); + + if (nextToken && + (CHECK_TYPE.test(nextToken.type) || pattern.test(nextToken.value)) && + !isCloseParenOfTemplate(nextToken) && + !tokensToIgnore.has(nextToken) && + astUtils.isTokenOnSameLine(token, nextToken) && + !sourceCode.isSpaceBetweenTokens(token, nextToken) + ) { + context.report({ + loc: token.loc, + messageId: "expectedAfter", + data: token, + fix(fixer) { + return fixer.insertTextAfter(token, " "); + } + }); + } + } + + /** + * Reports a given token if there are space(s) after the token. + * @param {Token} token A token to report. + * @param {RegExp} pattern A pattern of the next token to check. + * @returns {void} + */ + function unexpectSpaceAfter(token, pattern) { + const nextToken = sourceCode.getTokenAfter(token); + + if (nextToken && + (CHECK_TYPE.test(nextToken.type) || pattern.test(nextToken.value)) && + !isCloseParenOfTemplate(nextToken) && + !tokensToIgnore.has(nextToken) && + astUtils.isTokenOnSameLine(token, nextToken) && + sourceCode.isSpaceBetweenTokens(token, nextToken) + ) { + + context.report({ + loc: { start: token.loc.end, end: nextToken.loc.start }, + messageId: "unexpectedAfter", + data: token, + fix(fixer) { + return fixer.removeRange([token.range[1], nextToken.range[0]]); + } + }); + } + } + + /** + * Parses the option object and determines check methods for each keyword. + * @param {Object|undefined} options The option object to parse. + * @returns {Object} - Normalized option object. + * Keys are keywords (there are for every keyword). + * Values are instances of `{"before": function, "after": function}`. + */ + function parseOptions(options = {}) { + const before = options.before !== false; + const after = options.after !== false; + const defaultValue = { + before: before ? expectSpaceBefore : unexpectSpaceBefore, + after: after ? expectSpaceAfter : unexpectSpaceAfter + }; + const overrides = (options && options.overrides) || {}; + const retv = Object.create(null); + + for (let i = 0; i < KEYS.length; ++i) { + const key = KEYS[i]; + const override = overrides[key]; + + if (override) { + const thisBefore = ("before" in override) ? override.before : before; + const thisAfter = ("after" in override) ? override.after : after; + + retv[key] = { + before: thisBefore ? expectSpaceBefore : unexpectSpaceBefore, + after: thisAfter ? expectSpaceAfter : unexpectSpaceAfter + }; + } else { + retv[key] = defaultValue; + } + } + + return retv; + } + + const checkMethodMap = parseOptions(context.options[0]); + + /** + * Reports a given token if usage of spacing followed by the token is + * invalid. + * @param {Token} token A token to report. + * @param {RegExp} [pattern] Optional. A pattern of the previous + * token to check. + * @returns {void} + */ + function checkSpacingBefore(token, pattern) { + checkMethodMap[token.value].before(token, pattern || PREV_TOKEN); + } + + /** + * Reports a given token if usage of spacing preceded by the token is + * invalid. + * @param {Token} token A token to report. + * @param {RegExp} [pattern] Optional. A pattern of the next + * token to check. + * @returns {void} + */ + function checkSpacingAfter(token, pattern) { + checkMethodMap[token.value].after(token, pattern || NEXT_TOKEN); + } + + /** + * Reports a given token if usage of spacing around the token is invalid. + * @param {Token} token A token to report. + * @returns {void} + */ + function checkSpacingAround(token) { + checkSpacingBefore(token); + checkSpacingAfter(token); + } + + /** + * Reports the first token of a given node if the first token is a keyword + * and usage of spacing around the token is invalid. + * @param {ASTNode|null} node A node to report. + * @returns {void} + */ + function checkSpacingAroundFirstToken(node) { + const firstToken = node && sourceCode.getFirstToken(node); + + if (firstToken && firstToken.type === "Keyword") { + checkSpacingAround(firstToken); + } + } + + /** + * Reports the first token of a given node if the first token is a keyword + * and usage of spacing followed by the token is invalid. + * + * This is used for unary operators (e.g. `typeof`), `function`, and `super`. + * Other rules are handling usage of spacing preceded by those keywords. + * @param {ASTNode|null} node A node to report. + * @returns {void} + */ + function checkSpacingBeforeFirstToken(node) { + const firstToken = node && sourceCode.getFirstToken(node); + + if (firstToken && firstToken.type === "Keyword") { + checkSpacingBefore(firstToken); + } + } + + /** + * Reports the previous token of a given node if the token is a keyword and + * usage of spacing around the token is invalid. + * @param {ASTNode|null} node A node to report. + * @returns {void} + */ + function checkSpacingAroundTokenBefore(node) { + if (node) { + const token = sourceCode.getTokenBefore(node, astUtils.isKeywordToken); + + checkSpacingAround(token); + } + } + + /** + * Reports `async` or `function` keywords of a given node if usage of + * spacing around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForFunction(node) { + const firstToken = node && sourceCode.getFirstToken(node); + + if (firstToken && + ((firstToken.type === "Keyword" && firstToken.value === "function") || + firstToken.value === "async") + ) { + checkSpacingBefore(firstToken); + } + } + + /** + * Reports `class` and `extends` keywords of a given node if usage of + * spacing around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForClass(node) { + checkSpacingAroundFirstToken(node); + checkSpacingAroundTokenBefore(node.superClass); + } + + /** + * Reports `if` and `else` keywords of a given node if usage of spacing + * around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForIfStatement(node) { + checkSpacingAroundFirstToken(node); + checkSpacingAroundTokenBefore(node.alternate); + } + + /** + * Reports `try`, `catch`, and `finally` keywords of a given node if usage + * of spacing around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForTryStatement(node) { + checkSpacingAroundFirstToken(node); + checkSpacingAroundFirstToken(node.handler); + checkSpacingAroundTokenBefore(node.finalizer); + } + + /** + * Reports `do` and `while` keywords of a given node if usage of spacing + * around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForDoWhileStatement(node) { + checkSpacingAroundFirstToken(node); + checkSpacingAroundTokenBefore(node.test); + } + + /** + * Reports `for` and `in` keywords of a given node if usage of spacing + * around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForForInStatement(node) { + checkSpacingAroundFirstToken(node); + + const inToken = sourceCode.getTokenBefore(node.right, astUtils.isNotOpeningParenToken); + const previousToken = sourceCode.getTokenBefore(inToken); + + if (previousToken.type !== "PrivateIdentifier") { + checkSpacingBefore(inToken); + } + + checkSpacingAfter(inToken); + } + + /** + * Reports `for` and `of` keywords of a given node if usage of spacing + * around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForForOfStatement(node) { + if (node.await) { + checkSpacingBefore(sourceCode.getFirstToken(node, 0)); + checkSpacingAfter(sourceCode.getFirstToken(node, 1)); + } else { + checkSpacingAroundFirstToken(node); + } + + const ofToken = sourceCode.getTokenBefore(node.right, astUtils.isNotOpeningParenToken); + const previousToken = sourceCode.getTokenBefore(ofToken); + + if (previousToken.type !== "PrivateIdentifier") { + checkSpacingBefore(ofToken); + } + + checkSpacingAfter(ofToken); + } + + /** + * Reports `import`, `export`, `as`, and `from` keywords of a given node if + * usage of spacing around those keywords is invalid. + * + * This rule handles the `*` token in module declarations. + * + * import*as A from "./a"; /*error Expected space(s) after "import". + * error Expected space(s) before "as". + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForModuleDeclaration(node) { + const firstToken = sourceCode.getFirstToken(node); + + checkSpacingBefore(firstToken, PREV_TOKEN_M); + checkSpacingAfter(firstToken, NEXT_TOKEN_M); + + if (node.type === "ExportDefaultDeclaration") { + checkSpacingAround(sourceCode.getTokenAfter(firstToken)); + } + + if (node.type === "ExportAllDeclaration" && node.exported) { + const asToken = sourceCode.getTokenBefore(node.exported); + + checkSpacingBefore(asToken, PREV_TOKEN_M); + checkSpacingAfter(asToken, NEXT_TOKEN_M); + } + + if (node.source) { + const fromToken = sourceCode.getTokenBefore(node.source); + + checkSpacingBefore(fromToken, PREV_TOKEN_M); + checkSpacingAfter(fromToken, NEXT_TOKEN_M); + } + } + + /** + * Reports `as` keyword of a given node if usage of spacing around this + * keyword is invalid. + * @param {ASTNode} node An `ImportSpecifier` node to check. + * @returns {void} + */ + function checkSpacingForImportSpecifier(node) { + if (node.imported.range[0] !== node.local.range[0]) { + const asToken = sourceCode.getTokenBefore(node.local); + + checkSpacingBefore(asToken, PREV_TOKEN_M); + } + } + + /** + * Reports `as` keyword of a given node if usage of spacing around this + * keyword is invalid. + * @param {ASTNode} node An `ExportSpecifier` node to check. + * @returns {void} + */ + function checkSpacingForExportSpecifier(node) { + if (node.local.range[0] !== node.exported.range[0]) { + const asToken = sourceCode.getTokenBefore(node.exported); + + checkSpacingBefore(asToken, PREV_TOKEN_M); + checkSpacingAfter(asToken, NEXT_TOKEN_M); + } + } + + /** + * Reports `as` keyword of a given node if usage of spacing around this + * keyword is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForImportNamespaceSpecifier(node) { + const asToken = sourceCode.getFirstToken(node, 1); + + checkSpacingBefore(asToken, PREV_TOKEN_M); + } + + /** + * Reports `static`, `get`, and `set` keywords of a given node if usage of + * spacing around those keywords is invalid. + * @param {ASTNode} node A node to report. + * @throws {Error} If unable to find token get, set, or async beside method name. + * @returns {void} + */ + function checkSpacingForProperty(node) { + if (node.static) { + checkSpacingAroundFirstToken(node); + } + if (node.kind === "get" || + node.kind === "set" || + ( + (node.method || node.type === "MethodDefinition") && + node.value.async + ) + ) { + const token = sourceCode.getTokenBefore( + node.key, + tok => { + switch (tok.value) { + case "get": + case "set": + case "async": + return true; + default: + return false; + } + } + ); + + if (!token) { + throw new Error("Failed to find token get, set, or async beside method name"); + } + + + checkSpacingAround(token); + } + } + + /** + * Reports `await` keyword of a given node if usage of spacing before + * this keyword is invalid. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function checkSpacingForAwaitExpression(node) { + checkSpacingBefore(sourceCode.getFirstToken(node)); + } + + return { + + // Statements + DebuggerStatement: checkSpacingAroundFirstToken, + WithStatement: checkSpacingAroundFirstToken, + + // Statements - Control flow + BreakStatement: checkSpacingAroundFirstToken, + ContinueStatement: checkSpacingAroundFirstToken, + ReturnStatement: checkSpacingAroundFirstToken, + ThrowStatement: checkSpacingAroundFirstToken, + TryStatement: checkSpacingForTryStatement, + + // Statements - Choice + IfStatement: checkSpacingForIfStatement, + SwitchStatement: checkSpacingAroundFirstToken, + SwitchCase: checkSpacingAroundFirstToken, + + // Statements - Loops + DoWhileStatement: checkSpacingForDoWhileStatement, + ForInStatement: checkSpacingForForInStatement, + ForOfStatement: checkSpacingForForOfStatement, + ForStatement: checkSpacingAroundFirstToken, + WhileStatement: checkSpacingAroundFirstToken, + + // Statements - Declarations + ClassDeclaration: checkSpacingForClass, + ExportNamedDeclaration: checkSpacingForModuleDeclaration, + ExportDefaultDeclaration: checkSpacingForModuleDeclaration, + ExportAllDeclaration: checkSpacingForModuleDeclaration, + FunctionDeclaration: checkSpacingForFunction, + ImportDeclaration: checkSpacingForModuleDeclaration, + VariableDeclaration: checkSpacingAroundFirstToken, + + // Expressions + ArrowFunctionExpression: checkSpacingForFunction, + AwaitExpression: checkSpacingForAwaitExpression, + ClassExpression: checkSpacingForClass, + FunctionExpression: checkSpacingForFunction, + NewExpression: checkSpacingBeforeFirstToken, + Super: checkSpacingBeforeFirstToken, + ThisExpression: checkSpacingBeforeFirstToken, + UnaryExpression: checkSpacingBeforeFirstToken, + YieldExpression: checkSpacingBeforeFirstToken, + + // Others + ImportSpecifier: checkSpacingForImportSpecifier, + ExportSpecifier: checkSpacingForExportSpecifier, + ImportNamespaceSpecifier: checkSpacingForImportNamespaceSpecifier, + MethodDefinition: checkSpacingForProperty, + PropertyDefinition: checkSpacingForProperty, + StaticBlock: checkSpacingAroundFirstToken, + Property: checkSpacingForProperty, + + // To avoid conflicts with `space-infix-ops`, e.g. `a > this.b` + "BinaryExpression[operator='>']"(node) { + const operatorToken = sourceCode.getTokenBefore(node.right, astUtils.isNotOpeningParenToken); + + tokensToIgnore.add(operatorToken); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/line-comment-position.js b/node_modules/eslint/lib/rules/line-comment-position.js new file mode 100644 index 0000000..0631ebe --- /dev/null +++ b/node_modules/eslint/lib/rules/line-comment-position.js @@ -0,0 +1,122 @@ +/** + * @fileoverview Rule to enforce the position of line comments + * @author Alberto Rodríguez + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce position of line comments", + recommended: false, + url: "https://eslint.org/docs/rules/line-comment-position" + }, + + schema: [ + { + oneOf: [ + { + enum: ["above", "beside"] + }, + { + type: "object", + properties: { + position: { + enum: ["above", "beside"] + }, + ignorePattern: { + type: "string" + }, + applyDefaultPatterns: { + type: "boolean" + }, + applyDefaultIgnorePatterns: { + type: "boolean" + } + }, + additionalProperties: false + } + ] + } + ], + messages: { + above: "Expected comment to be above code.", + beside: "Expected comment to be beside code." + } + }, + + create(context) { + const options = context.options[0]; + + let above, + ignorePattern, + applyDefaultIgnorePatterns = true; + + if (!options || typeof options === "string") { + above = !options || options === "above"; + + } else { + above = !options.position || options.position === "above"; + ignorePattern = options.ignorePattern; + + if (Object.prototype.hasOwnProperty.call(options, "applyDefaultIgnorePatterns")) { + applyDefaultIgnorePatterns = options.applyDefaultIgnorePatterns; + } else { + applyDefaultIgnorePatterns = options.applyDefaultPatterns !== false; + } + } + + const defaultIgnoreRegExp = astUtils.COMMENTS_IGNORE_PATTERN; + const fallThroughRegExp = /^\s*falls?\s?through/u; + const customIgnoreRegExp = new RegExp(ignorePattern, "u"); + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program() { + const comments = sourceCode.getAllComments(); + + comments.filter(token => token.type === "Line").forEach(node => { + if (applyDefaultIgnorePatterns && (defaultIgnoreRegExp.test(node.value) || fallThroughRegExp.test(node.value))) { + return; + } + + if (ignorePattern && customIgnoreRegExp.test(node.value)) { + return; + } + + const previous = sourceCode.getTokenBefore(node, { includeComments: true }); + const isOnSameLine = previous && previous.loc.end.line === node.loc.start.line; + + if (above) { + if (isOnSameLine) { + context.report({ + node, + messageId: "above" + }); + } + } else { + if (!isOnSameLine) { + context.report({ + node, + messageId: "beside" + }); + } + } + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/linebreak-style.js b/node_modules/eslint/lib/rules/linebreak-style.js new file mode 100644 index 0000000..a5dc39d --- /dev/null +++ b/node_modules/eslint/lib/rules/linebreak-style.js @@ -0,0 +1,105 @@ +/** + * @fileoverview Rule to enforce a single linebreak style. + * @author Erik Mueller + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent linebreak style", + recommended: false, + url: "https://eslint.org/docs/rules/linebreak-style" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["unix", "windows"] + } + ], + messages: { + expectedLF: "Expected linebreaks to be 'LF' but found 'CRLF'.", + expectedCRLF: "Expected linebreaks to be 'CRLF' but found 'LF'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Builds a fix function that replaces text at the specified range in the source text. + * @param {int[]} range The range to replace + * @param {string} text The text to insert. + * @returns {Function} Fixer function + * @private + */ + function createFix(range, text) { + return function(fixer) { + return fixer.replaceTextRange(range, text); + }; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program: function checkForLinebreakStyle(node) { + const linebreakStyle = context.options[0] || "unix", + expectedLF = linebreakStyle === "unix", + expectedLFChars = expectedLF ? "\n" : "\r\n", + source = sourceCode.getText(), + pattern = astUtils.createGlobalLinebreakMatcher(); + let match; + + let i = 0; + + while ((match = pattern.exec(source)) !== null) { + i++; + if (match[0] === expectedLFChars) { + continue; + } + + const index = match.index; + const range = [index, index + match[0].length]; + + context.report({ + node, + loc: { + start: { + line: i, + column: sourceCode.lines[i - 1].length + }, + end: { + line: i + 1, + column: 0 + } + }, + messageId: expectedLF ? "expectedLF" : "expectedCRLF", + fix: createFix(range, expectedLFChars) + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/lines-around-comment.js b/node_modules/eslint/lib/rules/lines-around-comment.js new file mode 100644 index 0000000..bd7d1cd --- /dev/null +++ b/node_modules/eslint/lib/rules/lines-around-comment.js @@ -0,0 +1,457 @@ +/** + * @fileoverview Enforces empty lines around comments. + * @author Jamund Ferguson + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Return an array with with any line numbers that are empty. + * @param {Array} lines An array of each line of the file. + * @returns {Array} An array of line numbers. + */ +function getEmptyLineNums(lines) { + const emptyLines = lines.map((line, i) => ({ + code: line.trim(), + num: i + 1 + })).filter(line => !line.code).map(line => line.num); + + return emptyLines; +} + +/** + * Return an array with with any line numbers that contain comments. + * @param {Array} comments An array of comment tokens. + * @returns {Array} An array of line numbers. + */ +function getCommentLineNums(comments) { + const lines = []; + + comments.forEach(token => { + const start = token.loc.start.line; + const end = token.loc.end.line; + + lines.push(start, end); + }); + return lines; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require empty lines around comments", + recommended: false, + url: "https://eslint.org/docs/rules/lines-around-comment" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + beforeBlockComment: { + type: "boolean", + default: true + }, + afterBlockComment: { + type: "boolean", + default: false + }, + beforeLineComment: { + type: "boolean", + default: false + }, + afterLineComment: { + type: "boolean", + default: false + }, + allowBlockStart: { + type: "boolean", + default: false + }, + allowBlockEnd: { + type: "boolean", + default: false + }, + allowClassStart: { + type: "boolean" + }, + allowClassEnd: { + type: "boolean" + }, + allowObjectStart: { + type: "boolean" + }, + allowObjectEnd: { + type: "boolean" + }, + allowArrayStart: { + type: "boolean" + }, + allowArrayEnd: { + type: "boolean" + }, + ignorePattern: { + type: "string" + }, + applyDefaultIgnorePatterns: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + messages: { + after: "Expected line after comment.", + before: "Expected line before comment." + } + }, + + create(context) { + + const options = Object.assign({}, context.options[0]); + const ignorePattern = options.ignorePattern; + const defaultIgnoreRegExp = astUtils.COMMENTS_IGNORE_PATTERN; + const customIgnoreRegExp = new RegExp(ignorePattern, "u"); + const applyDefaultIgnorePatterns = options.applyDefaultIgnorePatterns !== false; + + options.beforeBlockComment = typeof options.beforeBlockComment !== "undefined" ? options.beforeBlockComment : true; + + const sourceCode = context.getSourceCode(); + + const lines = sourceCode.lines, + numLines = lines.length + 1, + comments = sourceCode.getAllComments(), + commentLines = getCommentLineNums(comments), + emptyLines = getEmptyLineNums(lines), + commentAndEmptyLines = new Set(commentLines.concat(emptyLines)); + + /** + * Returns whether or not comments are on lines starting with or ending with code + * @param {token} token The comment token to check. + * @returns {boolean} True if the comment is not alone. + */ + function codeAroundComment(token) { + let currentToken = token; + + do { + currentToken = sourceCode.getTokenBefore(currentToken, { includeComments: true }); + } while (currentToken && astUtils.isCommentToken(currentToken)); + + if (currentToken && astUtils.isTokenOnSameLine(currentToken, token)) { + return true; + } + + currentToken = token; + do { + currentToken = sourceCode.getTokenAfter(currentToken, { includeComments: true }); + } while (currentToken && astUtils.isCommentToken(currentToken)); + + if (currentToken && astUtils.isTokenOnSameLine(token, currentToken)) { + return true; + } + + return false; + } + + /** + * Returns whether or not comments are inside a node type or not. + * @param {ASTNode} parent The Comment parent node. + * @param {string} nodeType The parent type to check against. + * @returns {boolean} True if the comment is inside nodeType. + */ + function isParentNodeType(parent, nodeType) { + return parent.type === nodeType || + (parent.body && parent.body.type === nodeType) || + (parent.consequent && parent.consequent.type === nodeType); + } + + /** + * Returns the parent node that contains the given token. + * @param {token} token The token to check. + * @returns {ASTNode|null} The parent node that contains the given token. + */ + function getParentNodeOfToken(token) { + const node = sourceCode.getNodeByRangeIndex(token.range[0]); + + /* + * For the purpose of this rule, the comment token is in a `StaticBlock` node only + * if it's inside the braces of that `StaticBlock` node. + * + * Example where this function returns `null`: + * + * static + * // comment + * { + * } + * + * Example where this function returns `StaticBlock` node: + * + * static + * { + * // comment + * } + * + */ + if (node && node.type === "StaticBlock") { + const openingBrace = sourceCode.getFirstToken(node, { skip: 1 }); // skip the `static` token + + return token.range[0] >= openingBrace.range[0] + ? node + : null; + } + + return node; + } + + /** + * Returns whether or not comments are at the parent start or not. + * @param {token} token The Comment token. + * @param {string} nodeType The parent type to check against. + * @returns {boolean} True if the comment is at parent start. + */ + function isCommentAtParentStart(token, nodeType) { + const parent = getParentNodeOfToken(token); + + if (parent && isParentNodeType(parent, nodeType)) { + let parentStartNodeOrToken = parent; + + if (parent.type === "StaticBlock") { + parentStartNodeOrToken = sourceCode.getFirstToken(parent, { skip: 1 }); // opening brace of the static block + } else if (parent.type === "SwitchStatement") { + parentStartNodeOrToken = sourceCode.getTokenAfter(parent.discriminant, { + filter: astUtils.isOpeningBraceToken + }); // opening brace of the switch statement + } + + return token.loc.start.line - parentStartNodeOrToken.loc.start.line === 1; + } + + return false; + } + + /** + * Returns whether or not comments are at the parent end or not. + * @param {token} token The Comment token. + * @param {string} nodeType The parent type to check against. + * @returns {boolean} True if the comment is at parent end. + */ + function isCommentAtParentEnd(token, nodeType) { + const parent = getParentNodeOfToken(token); + + return !!parent && isParentNodeType(parent, nodeType) && + parent.loc.end.line - token.loc.end.line === 1; + } + + /** + * Returns whether or not comments are at the block start or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at block start. + */ + function isCommentAtBlockStart(token) { + return ( + isCommentAtParentStart(token, "ClassBody") || + isCommentAtParentStart(token, "BlockStatement") || + isCommentAtParentStart(token, "StaticBlock") || + isCommentAtParentStart(token, "SwitchCase") || + isCommentAtParentStart(token, "SwitchStatement") + ); + } + + /** + * Returns whether or not comments are at the block end or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at block end. + */ + function isCommentAtBlockEnd(token) { + return ( + isCommentAtParentEnd(token, "ClassBody") || + isCommentAtParentEnd(token, "BlockStatement") || + isCommentAtParentEnd(token, "StaticBlock") || + isCommentAtParentEnd(token, "SwitchCase") || + isCommentAtParentEnd(token, "SwitchStatement") + ); + } + + /** + * Returns whether or not comments are at the class start or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at class start. + */ + function isCommentAtClassStart(token) { + return isCommentAtParentStart(token, "ClassBody"); + } + + /** + * Returns whether or not comments are at the class end or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at class end. + */ + function isCommentAtClassEnd(token) { + return isCommentAtParentEnd(token, "ClassBody"); + } + + /** + * Returns whether or not comments are at the object start or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at object start. + */ + function isCommentAtObjectStart(token) { + return isCommentAtParentStart(token, "ObjectExpression") || isCommentAtParentStart(token, "ObjectPattern"); + } + + /** + * Returns whether or not comments are at the object end or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at object end. + */ + function isCommentAtObjectEnd(token) { + return isCommentAtParentEnd(token, "ObjectExpression") || isCommentAtParentEnd(token, "ObjectPattern"); + } + + /** + * Returns whether or not comments are at the array start or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at array start. + */ + function isCommentAtArrayStart(token) { + return isCommentAtParentStart(token, "ArrayExpression") || isCommentAtParentStart(token, "ArrayPattern"); + } + + /** + * Returns whether or not comments are at the array end or not. + * @param {token} token The Comment token. + * @returns {boolean} True if the comment is at array end. + */ + function isCommentAtArrayEnd(token) { + return isCommentAtParentEnd(token, "ArrayExpression") || isCommentAtParentEnd(token, "ArrayPattern"); + } + + /** + * Checks if a comment token has lines around it (ignores inline comments) + * @param {token} token The Comment token. + * @param {Object} opts Options to determine the newline. + * @param {boolean} opts.after Should have a newline after this line. + * @param {boolean} opts.before Should have a newline before this line. + * @returns {void} + */ + function checkForEmptyLine(token, opts) { + if (applyDefaultIgnorePatterns && defaultIgnoreRegExp.test(token.value)) { + return; + } + + if (ignorePattern && customIgnoreRegExp.test(token.value)) { + return; + } + + let after = opts.after, + before = opts.before; + + const prevLineNum = token.loc.start.line - 1, + nextLineNum = token.loc.end.line + 1, + commentIsNotAlone = codeAroundComment(token); + + const blockStartAllowed = options.allowBlockStart && + isCommentAtBlockStart(token) && + !(options.allowClassStart === false && + isCommentAtClassStart(token)), + blockEndAllowed = options.allowBlockEnd && isCommentAtBlockEnd(token) && !(options.allowClassEnd === false && isCommentAtClassEnd(token)), + classStartAllowed = options.allowClassStart && isCommentAtClassStart(token), + classEndAllowed = options.allowClassEnd && isCommentAtClassEnd(token), + objectStartAllowed = options.allowObjectStart && isCommentAtObjectStart(token), + objectEndAllowed = options.allowObjectEnd && isCommentAtObjectEnd(token), + arrayStartAllowed = options.allowArrayStart && isCommentAtArrayStart(token), + arrayEndAllowed = options.allowArrayEnd && isCommentAtArrayEnd(token); + + const exceptionStartAllowed = blockStartAllowed || classStartAllowed || objectStartAllowed || arrayStartAllowed; + const exceptionEndAllowed = blockEndAllowed || classEndAllowed || objectEndAllowed || arrayEndAllowed; + + // ignore top of the file and bottom of the file + if (prevLineNum < 1) { + before = false; + } + if (nextLineNum >= numLines) { + after = false; + } + + // we ignore all inline comments + if (commentIsNotAlone) { + return; + } + + const previousTokenOrComment = sourceCode.getTokenBefore(token, { includeComments: true }); + const nextTokenOrComment = sourceCode.getTokenAfter(token, { includeComments: true }); + + // check for newline before + if (!exceptionStartAllowed && before && !commentAndEmptyLines.has(prevLineNum) && + !(astUtils.isCommentToken(previousTokenOrComment) && astUtils.isTokenOnSameLine(previousTokenOrComment, token))) { + const lineStart = token.range[0] - token.loc.start.column; + const range = [lineStart, lineStart]; + + context.report({ + node: token, + messageId: "before", + fix(fixer) { + return fixer.insertTextBeforeRange(range, "\n"); + } + }); + } + + // check for newline after + if (!exceptionEndAllowed && after && !commentAndEmptyLines.has(nextLineNum) && + !(astUtils.isCommentToken(nextTokenOrComment) && astUtils.isTokenOnSameLine(token, nextTokenOrComment))) { + context.report({ + node: token, + messageId: "after", + fix(fixer) { + return fixer.insertTextAfter(token, "\n"); + } + }); + } + + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program() { + comments.forEach(token => { + if (token.type === "Line") { + if (options.beforeLineComment || options.afterLineComment) { + checkForEmptyLine(token, { + after: options.afterLineComment, + before: options.beforeLineComment + }); + } + } else if (token.type === "Block") { + if (options.beforeBlockComment || options.afterBlockComment) { + checkForEmptyLine(token, { + after: options.afterBlockComment, + before: options.beforeBlockComment + }); + } + } + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/lines-around-directive.js b/node_modules/eslint/lib/rules/lines-around-directive.js new file mode 100644 index 0000000..816efc9 --- /dev/null +++ b/node_modules/eslint/lib/rules/lines-around-directive.js @@ -0,0 +1,201 @@ +/** + * @fileoverview Require or disallow newlines around directives. + * @author Kai Cataldo + * @deprecated in ESLint v4.0.0 + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow newlines around directives", + recommended: false, + url: "https://eslint.org/docs/rules/lines-around-directive" + }, + + schema: [{ + oneOf: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + before: { + enum: ["always", "never"] + }, + after: { + enum: ["always", "never"] + } + }, + additionalProperties: false, + minProperties: 2 + } + ] + }], + + fixable: "whitespace", + messages: { + expected: "Expected newline {{location}} \"{{value}}\" directive.", + unexpected: "Unexpected newline {{location}} \"{{value}}\" directive." + }, + deprecated: true, + replacedBy: ["padding-line-between-statements"] + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const config = context.options[0] || "always"; + const expectLineBefore = typeof config === "string" ? config : config.before; + const expectLineAfter = typeof config === "string" ? config : config.after; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Check if node is preceded by a blank newline. + * @param {ASTNode} node Node to check. + * @returns {boolean} Whether or not the passed in node is preceded by a blank newline. + */ + function hasNewlineBefore(node) { + const tokenBefore = sourceCode.getTokenBefore(node, { includeComments: true }); + const tokenLineBefore = tokenBefore ? tokenBefore.loc.end.line : 0; + + return node.loc.start.line - tokenLineBefore >= 2; + } + + /** + * Gets the last token of a node that is on the same line as the rest of the node. + * This will usually be the last token of the node, but it will be the second-to-last token if the node has a trailing + * semicolon on a different line. + * @param {ASTNode} node A directive node + * @returns {Token} The last token of the node on the line + */ + function getLastTokenOnLine(node) { + const lastToken = sourceCode.getLastToken(node); + const secondToLastToken = sourceCode.getTokenBefore(lastToken); + + return astUtils.isSemicolonToken(lastToken) && lastToken.loc.start.line > secondToLastToken.loc.end.line + ? secondToLastToken + : lastToken; + } + + /** + * Check if node is followed by a blank newline. + * @param {ASTNode} node Node to check. + * @returns {boolean} Whether or not the passed in node is followed by a blank newline. + */ + function hasNewlineAfter(node) { + const lastToken = getLastTokenOnLine(node); + const tokenAfter = sourceCode.getTokenAfter(lastToken, { includeComments: true }); + + return tokenAfter.loc.start.line - lastToken.loc.end.line >= 2; + } + + /** + * Report errors for newlines around directives. + * @param {ASTNode} node Node to check. + * @param {string} location Whether the error was found before or after the directive. + * @param {boolean} expected Whether or not a newline was expected or unexpected. + * @returns {void} + */ + function reportError(node, location, expected) { + context.report({ + node, + messageId: expected ? "expected" : "unexpected", + data: { + value: node.expression.value, + location + }, + fix(fixer) { + const lastToken = getLastTokenOnLine(node); + + if (expected) { + return location === "before" ? fixer.insertTextBefore(node, "\n") : fixer.insertTextAfter(lastToken, "\n"); + } + return fixer.removeRange(location === "before" ? [node.range[0] - 1, node.range[0]] : [lastToken.range[1], lastToken.range[1] + 1]); + } + }); + } + + /** + * Check lines around directives in node + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkDirectives(node) { + const directives = astUtils.getDirectivePrologue(node); + + if (!directives.length) { + return; + } + + const firstDirective = directives[0]; + const leadingComments = sourceCode.getCommentsBefore(firstDirective); + + /* + * Only check before the first directive if it is preceded by a comment or if it is at the top of + * the file and expectLineBefore is set to "never". This is to not force a newline at the top of + * the file if there are no comments as well as for compatibility with padded-blocks. + */ + if (leadingComments.length) { + if (expectLineBefore === "always" && !hasNewlineBefore(firstDirective)) { + reportError(firstDirective, "before", true); + } + + if (expectLineBefore === "never" && hasNewlineBefore(firstDirective)) { + reportError(firstDirective, "before", false); + } + } else if ( + node.type === "Program" && + expectLineBefore === "never" && + !leadingComments.length && + hasNewlineBefore(firstDirective) + ) { + reportError(firstDirective, "before", false); + } + + const lastDirective = directives[directives.length - 1]; + const statements = node.type === "Program" ? node.body : node.body.body; + + /* + * Do not check after the last directive if the body only + * contains a directive prologue and isn't followed by a comment to ensure + * this rule behaves well with padded-blocks. + */ + if (lastDirective === statements[statements.length - 1] && !lastDirective.trailingComments) { + return; + } + + if (expectLineAfter === "always" && !hasNewlineAfter(lastDirective)) { + reportError(lastDirective, "after", true); + } + + if (expectLineAfter === "never" && hasNewlineAfter(lastDirective)) { + reportError(lastDirective, "after", false); + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program: checkDirectives, + FunctionDeclaration: checkDirectives, + FunctionExpression: checkDirectives, + ArrowFunctionExpression: checkDirectives + }; + } +}; diff --git a/node_modules/eslint/lib/rules/lines-between-class-members.js b/node_modules/eslint/lib/rules/lines-between-class-members.js new file mode 100644 index 0000000..26357aa --- /dev/null +++ b/node_modules/eslint/lib/rules/lines-between-class-members.js @@ -0,0 +1,181 @@ +/** + * @fileoverview Rule to check empty newline between class members + * @author 薛定谔的猫 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow an empty line between class members", + recommended: false, + url: "https://eslint.org/docs/rules/lines-between-class-members" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + exceptAfterSingleLine: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + messages: { + never: "Unexpected blank line between class members.", + always: "Expected blank line between class members." + } + }, + + create(context) { + + const options = []; + + options[0] = context.options[0] || "always"; + options[1] = context.options[1] || { exceptAfterSingleLine: false }; + + const sourceCode = context.getSourceCode(); + + /** + * Gets a pair of tokens that should be used to check lines between two class member nodes. + * + * In most cases, this returns the very last token of the current node and + * the very first token of the next node. + * For example: + * + * class C { + * x = 1; // curLast: `;` nextFirst: `in` + * in = 2 + * } + * + * There is only one exception. If the given node ends with a semicolon, and it looks like + * a semicolon-less style's semicolon - one that is not on the same line as the preceding + * token, but is on the line where the next class member starts - this returns the preceding + * token and the semicolon as boundary tokens. + * For example: + * + * class C { + * x = 1 // curLast: `1` nextFirst: `;` + * ;in = 2 + * } + * When determining the desired layout of the code, we should treat this semicolon as + * a part of the next class member node instead of the one it technically belongs to. + * @param {ASTNode} curNode Current class member node. + * @param {ASTNode} nextNode Next class member node. + * @returns {Token} The actual last token of `node`. + * @private + */ + function getBoundaryTokens(curNode, nextNode) { + const lastToken = sourceCode.getLastToken(curNode); + const prevToken = sourceCode.getTokenBefore(lastToken); + const nextToken = sourceCode.getFirstToken(nextNode); // skip possible lone `;` between nodes + + const isSemicolonLessStyle = ( + astUtils.isSemicolonToken(lastToken) && + !astUtils.isTokenOnSameLine(prevToken, lastToken) && + astUtils.isTokenOnSameLine(lastToken, nextToken) + ); + + return isSemicolonLessStyle + ? { curLast: prevToken, nextFirst: lastToken } + : { curLast: lastToken, nextFirst: nextToken }; + } + + /** + * Return the last token among the consecutive tokens that have no exceed max line difference in between, before the first token in the next member. + * @param {Token} prevLastToken The last token in the previous member node. + * @param {Token} nextFirstToken The first token in the next member node. + * @param {number} maxLine The maximum number of allowed line difference between consecutive tokens. + * @returns {Token} The last token among the consecutive tokens. + */ + function findLastConsecutiveTokenAfter(prevLastToken, nextFirstToken, maxLine) { + const after = sourceCode.getTokenAfter(prevLastToken, { includeComments: true }); + + if (after !== nextFirstToken && after.loc.start.line - prevLastToken.loc.end.line <= maxLine) { + return findLastConsecutiveTokenAfter(after, nextFirstToken, maxLine); + } + return prevLastToken; + } + + /** + * Return the first token among the consecutive tokens that have no exceed max line difference in between, after the last token in the previous member. + * @param {Token} nextFirstToken The first token in the next member node. + * @param {Token} prevLastToken The last token in the previous member node. + * @param {number} maxLine The maximum number of allowed line difference between consecutive tokens. + * @returns {Token} The first token among the consecutive tokens. + */ + function findFirstConsecutiveTokenBefore(nextFirstToken, prevLastToken, maxLine) { + const before = sourceCode.getTokenBefore(nextFirstToken, { includeComments: true }); + + if (before !== prevLastToken && nextFirstToken.loc.start.line - before.loc.end.line <= maxLine) { + return findFirstConsecutiveTokenBefore(before, prevLastToken, maxLine); + } + return nextFirstToken; + } + + /** + * Checks if there is a token or comment between two tokens. + * @param {Token} before The token before. + * @param {Token} after The token after. + * @returns {boolean} True if there is a token or comment between two tokens. + */ + function hasTokenOrCommentBetween(before, after) { + return sourceCode.getTokensBetween(before, after, { includeComments: true }).length !== 0; + } + + return { + ClassBody(node) { + const body = node.body; + + for (let i = 0; i < body.length - 1; i++) { + const curFirst = sourceCode.getFirstToken(body[i]); + const { curLast, nextFirst } = getBoundaryTokens(body[i], body[i + 1]); + const isMulti = !astUtils.isTokenOnSameLine(curFirst, curLast); + const skip = !isMulti && options[1].exceptAfterSingleLine; + const beforePadding = findLastConsecutiveTokenAfter(curLast, nextFirst, 1); + const afterPadding = findFirstConsecutiveTokenBefore(nextFirst, curLast, 1); + const isPadded = afterPadding.loc.start.line - beforePadding.loc.end.line > 1; + const hasTokenInPadding = hasTokenOrCommentBetween(beforePadding, afterPadding); + const curLineLastToken = findLastConsecutiveTokenAfter(curLast, nextFirst, 0); + + if ((options[0] === "always" && !skip && !isPadded) || + (options[0] === "never" && isPadded)) { + context.report({ + node: body[i + 1], + messageId: isPadded ? "never" : "always", + fix(fixer) { + if (hasTokenInPadding) { + return null; + } + return isPadded + ? fixer.replaceTextRange([beforePadding.range[1], afterPadding.range[0]], "\n") + : fixer.insertTextAfter(curLineLastToken, "\n"); + } + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/logical-assignment-operators.js b/node_modules/eslint/lib/rules/logical-assignment-operators.js new file mode 100644 index 0000000..bd2357a --- /dev/null +++ b/node_modules/eslint/lib/rules/logical-assignment-operators.js @@ -0,0 +1,474 @@ +/** + * @fileoverview Rule to replace assignment expressions with logical operator assignment + * @author Daniel Martens + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ +const astUtils = require("./utils/ast-utils.js"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const baseTypes = new Set(["Identifier", "Super", "ThisExpression"]); + +/** + * Returns true iff either "undefined" or a void expression (eg. "void 0") + * @param {ASTNode} expression Expression to check + * @param {import('eslint-scope').Scope} scope Scope of the expression + * @returns {boolean} True iff "undefined" or "void ..." + */ +function isUndefined(expression, scope) { + if (expression.type === "Identifier" && expression.name === "undefined") { + return astUtils.isReferenceToGlobalVariable(scope, expression); + } + + return expression.type === "UnaryExpression" && + expression.operator === "void" && + expression.argument.type === "Literal" && + expression.argument.value === 0; +} + +/** + * Returns true iff the reference is either an identifier or member expression + * @param {ASTNode} expression Expression to check + * @returns {boolean} True for identifiers and member expressions + */ +function isReference(expression) { + return (expression.type === "Identifier" && expression.name !== "undefined") || + expression.type === "MemberExpression"; +} + +/** + * Returns true iff the expression checks for nullish with loose equals. + * Examples: value == null, value == void 0 + * @param {ASTNode} expression Test condition + * @param {import('eslint-scope').Scope} scope Scope of the expression + * @returns {boolean} True iff implicit nullish comparison + */ +function isImplicitNullishComparison(expression, scope) { + if (expression.type !== "BinaryExpression" || expression.operator !== "==") { + return false; + } + + const reference = isReference(expression.left) ? "left" : "right"; + const nullish = reference === "left" ? "right" : "left"; + + return isReference(expression[reference]) && + (astUtils.isNullLiteral(expression[nullish]) || isUndefined(expression[nullish], scope)); +} + +/** + * Condition with two equal comparisons. + * @param {ASTNode} expression Condition + * @returns {boolean} True iff matches ? === ? || ? === ? + */ +function isDoubleComparison(expression) { + return expression.type === "LogicalExpression" && + expression.operator === "||" && + expression.left.type === "BinaryExpression" && + expression.left.operator === "===" && + expression.right.type === "BinaryExpression" && + expression.right.operator === "==="; +} + +/** + * Returns true iff the expression checks for undefined and null. + * Example: value === null || value === undefined + * @param {ASTNode} expression Test condition + * @param {import('eslint-scope').Scope} scope Scope of the expression + * @returns {boolean} True iff explicit nullish comparison + */ +function isExplicitNullishComparison(expression, scope) { + if (!isDoubleComparison(expression)) { + return false; + } + const leftReference = isReference(expression.left.left) ? "left" : "right"; + const leftNullish = leftReference === "left" ? "right" : "left"; + const rightReference = isReference(expression.right.left) ? "left" : "right"; + const rightNullish = rightReference === "left" ? "right" : "left"; + + return astUtils.isSameReference(expression.left[leftReference], expression.right[rightReference]) && + ((astUtils.isNullLiteral(expression.left[leftNullish]) && isUndefined(expression.right[rightNullish], scope)) || + (isUndefined(expression.left[leftNullish], scope) && astUtils.isNullLiteral(expression.right[rightNullish]))); +} + +/** + * Returns true for Boolean(arg) calls + * @param {ASTNode} expression Test condition + * @param {import('eslint-scope').Scope} scope Scope of the expression + * @returns {boolean} Whether the expression is a boolean cast + */ +function isBooleanCast(expression, scope) { + return expression.type === "CallExpression" && + expression.callee.name === "Boolean" && + expression.arguments.length === 1 && + astUtils.isReferenceToGlobalVariable(scope, expression.callee); +} + +/** + * Returns true for: + * truthiness checks: value, Boolean(value), !!value + * falsyness checks: !value, !Boolean(value) + * nullish checks: value == null, value === undefined || value === null + * @param {ASTNode} expression Test condition + * @param {import('eslint-scope').Scope} scope Scope of the expression + * @returns {?{ reference: ASTNode, operator: '??'|'||'|'&&'}} Null if not a known existence + */ +function getExistence(expression, scope) { + const isNegated = expression.type === "UnaryExpression" && expression.operator === "!"; + const base = isNegated ? expression.argument : expression; + + switch (true) { + case isReference(base): + return { reference: base, operator: isNegated ? "||" : "&&" }; + case base.type === "UnaryExpression" && base.operator === "!" && isReference(base.argument): + return { reference: base.argument, operator: "&&" }; + case isBooleanCast(base, scope) && isReference(base.arguments[0]): + return { reference: base.arguments[0], operator: isNegated ? "||" : "&&" }; + case isImplicitNullishComparison(expression, scope): + return { reference: isReference(expression.left) ? expression.left : expression.right, operator: "??" }; + case isExplicitNullishComparison(expression, scope): + return { reference: isReference(expression.left.left) ? expression.left.left : expression.left.right, operator: "??" }; + default: return null; + } +} + +/** + * Returns true iff the node is inside a with block + * @param {ASTNode} node Node to check + * @returns {boolean} True iff passed node is inside a with block + */ +function isInsideWithBlock(node) { + if (node.type === "Program") { + return false; + } + + return node.parent.type === "WithStatement" && node.parent.body === node ? true : isInsideWithBlock(node.parent); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require or disallow logical assignment logical operator shorthand", + recommended: false, + url: "https://eslint.org/docs/rules/logical-assignment-operators" + }, + + schema: { + type: "array", + oneOf: [{ + items: [ + { const: "always" }, + { + type: "object", + properties: { + enforceForIfStatements: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + minItems: 0, // 0 for allowing passing no options + maxItems: 2 + }, { + items: [{ const: "never" }], + minItems: 1, + maxItems: 1 + }] + }, + fixable: "code", + // eslint-disable-next-line eslint-plugin/require-meta-has-suggestions -- Does not detect conditional suggestions + hasSuggestions: true, + messages: { + assignment: "Assignment (=) can be replaced with operator assignment ({{operator}}).", + useLogicalOperator: "Convert this assignment to use the operator {{ operator }}.", + logical: "Logical expression can be replaced with an assignment ({{ operator }}).", + convertLogical: "Replace this logical expression with an assignment with the operator {{ operator }}.", + if: "'if' statement can be replaced with a logical operator assignment with operator {{ operator }}.", + convertIf: "Replace this 'if' statement with a logical assignment with operator {{ operator }}.", + unexpected: "Unexpected logical operator assignment ({{operator}}) shorthand.", + separate: "Separate the logical assignment into an assignment with a logical operator." + } + }, + + create(context) { + const mode = context.options[0] === "never" ? "never" : "always"; + const checkIf = mode === "always" && context.options.length > 1 && context.options[1].enforceForIfStatements; + const sourceCode = context.getSourceCode(); + const isStrict = context.getScope().isStrict; + + /** + * Returns false if the access could be a getter + * @param {ASTNode} node Assignment expression + * @returns {boolean} True iff the fix is safe + */ + function cannotBeGetter(node) { + return node.type === "Identifier" && + (isStrict || !isInsideWithBlock(node)); + } + + /** + * Check whether only a single property is accessed + * @param {ASTNode} node reference + * @returns {boolean} True iff a single property is accessed + */ + function accessesSingleProperty(node) { + if (!isStrict && isInsideWithBlock(node)) { + return node.type === "Identifier"; + } + + return node.type === "MemberExpression" && + baseTypes.has(node.object.type) && + (!node.computed || (node.property.type !== "MemberExpression" && node.property.type !== "ChainExpression")); + } + + /** + * Adds a fixer or suggestion whether on the fix is safe. + * @param {{ messageId: string, node: ASTNode }} descriptor Report descriptor without fix or suggest + * @param {{ messageId: string, fix: Function }} suggestion Adds the fix or the whole suggestion as only element in "suggest" to suggestion + * @param {boolean} shouldBeFixed Fix iff the condition is true + * @returns {Object} Descriptor with either an added fix or suggestion + */ + function createConditionalFixer(descriptor, suggestion, shouldBeFixed) { + if (shouldBeFixed) { + return { + ...descriptor, + fix: suggestion.fix + }; + } + + return { + ...descriptor, + suggest: [suggestion] + }; + } + + + /** + * Returns the operator token for assignments and binary expressions + * @param {ASTNode} node AssignmentExpression or BinaryExpression + * @returns {import('eslint').AST.Token} Operator token between the left and right expression + */ + function getOperatorToken(node) { + return sourceCode.getFirstTokenBetween(node.left, node.right, token => token.value === node.operator); + } + + if (mode === "never") { + return { + + // foo ||= bar + "AssignmentExpression"(assignment) { + if (!astUtils.isLogicalAssignmentOperator(assignment.operator)) { + return; + } + + const descriptor = { + messageId: "unexpected", + node: assignment, + data: { operator: assignment.operator } + }; + const suggestion = { + messageId: "separate", + *fix(ruleFixer) { + if (sourceCode.getCommentsInside(assignment).length > 0) { + return; + } + + const operatorToken = getOperatorToken(assignment); + + // -> foo = bar + yield ruleFixer.replaceText(operatorToken, "="); + + const assignmentText = sourceCode.getText(assignment.left); + const operator = assignment.operator.slice(0, -1); + + // -> foo = foo || bar + yield ruleFixer.insertTextAfter(operatorToken, ` ${assignmentText} ${operator}`); + + const precedence = astUtils.getPrecedence(assignment.right) <= astUtils.getPrecedence({ type: "LogicalExpression", operator }); + + // ?? and || / && cannot be mixed but have same precedence + const mixed = assignment.operator === "??=" && astUtils.isLogicalExpression(assignment.right); + + if (!astUtils.isParenthesised(sourceCode, assignment.right) && (precedence || mixed)) { + + // -> foo = foo || (bar) + yield ruleFixer.insertTextBefore(assignment.right, "("); + yield ruleFixer.insertTextAfter(assignment.right, ")"); + } + } + }; + + context.report(createConditionalFixer(descriptor, suggestion, cannotBeGetter(assignment.left))); + } + }; + } + + return { + + // foo = foo || bar + "AssignmentExpression[operator='='][right.type='LogicalExpression']"(assignment) { + if (!astUtils.isSameReference(assignment.left, assignment.right.left)) { + return; + } + + const descriptor = { + messageId: "assignment", + node: assignment, + data: { operator: `${assignment.right.operator}=` } + }; + const suggestion = { + messageId: "useLogicalOperator", + data: { operator: `${assignment.right.operator}=` }, + *fix(ruleFixer) { + if (sourceCode.getCommentsInside(assignment).length > 0) { + return; + } + + // No need for parenthesis around the assignment based on precedence as the precedence stays the same even with changed operator + const assignmentOperatorToken = getOperatorToken(assignment); + + // -> foo ||= foo || bar + yield ruleFixer.insertTextBefore(assignmentOperatorToken, assignment.right.operator); + + // -> foo ||= bar + const logicalOperatorToken = getOperatorToken(assignment.right); + const firstRightOperandToken = sourceCode.getTokenAfter(logicalOperatorToken); + + yield ruleFixer.removeRange([assignment.right.range[0], firstRightOperandToken.range[0]]); + } + }; + + context.report(createConditionalFixer(descriptor, suggestion, cannotBeGetter(assignment.left))); + }, + + // foo || (foo = bar) + 'LogicalExpression[right.type="AssignmentExpression"][right.operator="="]'(logical) { + + // Right side has to be parenthesized, otherwise would be parsed as (foo || foo) = bar which is illegal + if (isReference(logical.left) && astUtils.isSameReference(logical.left, logical.right.left)) { + const descriptor = { + messageId: "logical", + node: logical, + data: { operator: `${logical.operator}=` } + }; + const suggestion = { + messageId: "convertLogical", + data: { operator: `${logical.operator}=` }, + *fix(ruleFixer) { + if (sourceCode.getCommentsInside(logical).length > 0) { + return; + } + + const requiresOuterParenthesis = logical.parent.type !== "ExpressionStatement" && + (astUtils.getPrecedence({ type: "AssignmentExpression" }) < astUtils.getPrecedence(logical.parent)); + + if (!astUtils.isParenthesised(sourceCode, logical) && requiresOuterParenthesis) { + yield ruleFixer.insertTextBefore(logical, "("); + yield ruleFixer.insertTextAfter(logical, ")"); + } + + // Also removes all opening parenthesis + yield ruleFixer.removeRange([logical.range[0], logical.right.range[0]]); // -> foo = bar) + + // Also removes all ending parenthesis + yield ruleFixer.removeRange([logical.right.range[1], logical.range[1]]); // -> foo = bar + + const operatorToken = getOperatorToken(logical.right); + + yield ruleFixer.insertTextBefore(operatorToken, logical.operator); // -> foo ||= bar + } + }; + const fix = cannotBeGetter(logical.left) || accessesSingleProperty(logical.left); + + context.report(createConditionalFixer(descriptor, suggestion, fix)); + } + }, + + // if (foo) foo = bar + "IfStatement[alternate=null]"(ifNode) { + if (!checkIf) { + return; + } + + const hasBody = ifNode.consequent.type === "BlockStatement"; + + if (hasBody && ifNode.consequent.body.length !== 1) { + return; + } + + const body = hasBody ? ifNode.consequent.body[0] : ifNode.consequent; + const scope = context.getScope(); + const existence = getExistence(ifNode.test, scope); + + if ( + body.type === "ExpressionStatement" && + body.expression.type === "AssignmentExpression" && + body.expression.operator === "=" && + existence !== null && + astUtils.isSameReference(existence.reference, body.expression.left) + ) { + const descriptor = { + messageId: "if", + node: ifNode, + data: { operator: `${existence.operator}=` } + }; + const suggestion = { + messageId: "convertIf", + data: { operator: `${existence.operator}=` }, + *fix(ruleFixer) { + if (sourceCode.getCommentsInside(ifNode).length > 0) { + return; + } + + const firstBodyToken = sourceCode.getFirstToken(body); + const prevToken = sourceCode.getTokenBefore(ifNode); + + if ( + prevToken !== null && + prevToken.value !== ";" && + prevToken.value !== "{" && + firstBodyToken.type !== "Identifier" && + firstBodyToken.type !== "Keyword" + ) { + + // Do not fix if the fixed statement could be part of the previous statement (eg. fn() if (a == null) (a) = b --> fn()(a) ??= b) + return; + } + + + const operatorToken = getOperatorToken(body.expression); + + yield ruleFixer.insertTextBefore(operatorToken, existence.operator); // -> if (foo) foo ||= bar + + yield ruleFixer.removeRange([ifNode.range[0], body.range[0]]); // -> foo ||= bar + + yield ruleFixer.removeRange([body.range[1], ifNode.range[1]]); // -> foo ||= bar, only present if "if" had a body + + const nextToken = sourceCode.getTokenAfter(body.expression); + + if (hasBody && (nextToken !== null && nextToken.value !== ";")) { + yield ruleFixer.insertTextAfter(ifNode, ";"); + } + } + }; + const shouldBeFixed = cannotBeGetter(existence.reference) || + (ifNode.test.type !== "LogicalExpression" && accessesSingleProperty(existence.reference)); + + context.report(createConditionalFixer(descriptor, suggestion, shouldBeFixed)); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/max-classes-per-file.js b/node_modules/eslint/lib/rules/max-classes-per-file.js new file mode 100644 index 0000000..0bd626f --- /dev/null +++ b/node_modules/eslint/lib/rules/max-classes-per-file.js @@ -0,0 +1,89 @@ +/** + * @fileoverview Enforce a maximum number of classes per file + * @author James Garbutt + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum number of classes per file", + recommended: false, + url: "https://eslint.org/docs/rules/max-classes-per-file" + }, + + schema: [ + { + oneOf: [ + { + type: "integer", + minimum: 1 + }, + { + type: "object", + properties: { + ignoreExpressions: { + type: "boolean" + }, + max: { + type: "integer", + minimum: 1 + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + maximumExceeded: "File has too many classes ({{ classCount }}). Maximum allowed is {{ max }}." + } + }, + create(context) { + const [option = {}] = context.options; + const [ignoreExpressions, max] = typeof option === "number" + ? [false, option || 1] + : [option.ignoreExpressions, option.max || 1]; + + let classCount = 0; + + return { + Program() { + classCount = 0; + }, + "Program:exit"(node) { + if (classCount > max) { + context.report({ + node, + messageId: "maximumExceeded", + data: { + classCount, + max + } + }); + } + }, + "ClassDeclaration"() { + classCount++; + }, + "ClassExpression"() { + if (!ignoreExpressions) { + classCount++; + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/max-depth.js b/node_modules/eslint/lib/rules/max-depth.js new file mode 100644 index 0000000..6b428ce --- /dev/null +++ b/node_modules/eslint/lib/rules/max-depth.js @@ -0,0 +1,156 @@ +/** + * @fileoverview A rule to set the maximum depth block can be nested in a function. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum depth that blocks can be nested", + recommended: false, + url: "https://eslint.org/docs/rules/max-depth" + }, + + schema: [ + { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + type: "object", + properties: { + maximum: { + type: "integer", + minimum: 0 + }, + max: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + } + ] + } + ], + messages: { + tooDeeply: "Blocks are nested too deeply ({{depth}}). Maximum allowed is {{maxDepth}}." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + const functionStack = [], + option = context.options[0]; + let maxDepth = 4; + + if ( + typeof option === "object" && + (Object.prototype.hasOwnProperty.call(option, "maximum") || Object.prototype.hasOwnProperty.call(option, "max")) + ) { + maxDepth = option.maximum || option.max; + } + if (typeof option === "number") { + maxDepth = option; + } + + /** + * When parsing a new function, store it in our function stack + * @returns {void} + * @private + */ + function startFunction() { + functionStack.push(0); + } + + /** + * When parsing is done then pop out the reference + * @returns {void} + * @private + */ + function endFunction() { + functionStack.pop(); + } + + /** + * Save the block and Evaluate the node + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function pushBlock(node) { + const len = ++functionStack[functionStack.length - 1]; + + if (len > maxDepth) { + context.report({ node, messageId: "tooDeeply", data: { depth: len, maxDepth } }); + } + } + + /** + * Pop the saved block + * @returns {void} + * @private + */ + function popBlock() { + functionStack[functionStack.length - 1]--; + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + Program: startFunction, + FunctionDeclaration: startFunction, + FunctionExpression: startFunction, + ArrowFunctionExpression: startFunction, + StaticBlock: startFunction, + + IfStatement(node) { + if (node.parent.type !== "IfStatement") { + pushBlock(node); + } + }, + SwitchStatement: pushBlock, + TryStatement: pushBlock, + DoWhileStatement: pushBlock, + WhileStatement: pushBlock, + WithStatement: pushBlock, + ForStatement: pushBlock, + ForInStatement: pushBlock, + ForOfStatement: pushBlock, + + "IfStatement:exit": popBlock, + "SwitchStatement:exit": popBlock, + "TryStatement:exit": popBlock, + "DoWhileStatement:exit": popBlock, + "WhileStatement:exit": popBlock, + "WithStatement:exit": popBlock, + "ForStatement:exit": popBlock, + "ForInStatement:exit": popBlock, + "ForOfStatement:exit": popBlock, + + "FunctionDeclaration:exit": endFunction, + "FunctionExpression:exit": endFunction, + "ArrowFunctionExpression:exit": endFunction, + "StaticBlock:exit": endFunction, + "Program:exit": endFunction + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/max-len.js b/node_modules/eslint/lib/rules/max-len.js new file mode 100644 index 0000000..0d3b2af --- /dev/null +++ b/node_modules/eslint/lib/rules/max-len.js @@ -0,0 +1,433 @@ +/** + * @fileoverview Rule to check for max length on a line. + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const OPTIONS_SCHEMA = { + type: "object", + properties: { + code: { + type: "integer", + minimum: 0 + }, + comments: { + type: "integer", + minimum: 0 + }, + tabWidth: { + type: "integer", + minimum: 0 + }, + ignorePattern: { + type: "string" + }, + ignoreComments: { + type: "boolean" + }, + ignoreStrings: { + type: "boolean" + }, + ignoreUrls: { + type: "boolean" + }, + ignoreTemplateLiterals: { + type: "boolean" + }, + ignoreRegExpLiterals: { + type: "boolean" + }, + ignoreTrailingComments: { + type: "boolean" + } + }, + additionalProperties: false +}; + +const OPTIONS_OR_INTEGER_SCHEMA = { + anyOf: [ + OPTIONS_SCHEMA, + { + type: "integer", + minimum: 0 + } + ] +}; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce a maximum line length", + recommended: false, + url: "https://eslint.org/docs/rules/max-len" + }, + + schema: [ + OPTIONS_OR_INTEGER_SCHEMA, + OPTIONS_OR_INTEGER_SCHEMA, + OPTIONS_SCHEMA + ], + messages: { + max: "This line has a length of {{lineLength}}. Maximum allowed is {{maxLength}}.", + maxComment: "This line has a comment length of {{lineLength}}. Maximum allowed is {{maxCommentLength}}." + } + }, + + create(context) { + + /* + * Inspired by http://tools.ietf.org/html/rfc3986#appendix-B, however: + * - They're matching an entire string that we know is a URI + * - We're matching part of a string where we think there *might* be a URL + * - We're only concerned about URLs, as picking out any URI would cause + * too many false positives + * - We don't care about matching the entire URL, any small segment is fine + */ + const URL_REGEXP = /[^:/?#]:\/\/[^?#]/u; + + const sourceCode = context.getSourceCode(); + + /** + * Computes the length of a line that may contain tabs. The width of each + * tab will be the number of spaces to the next tab stop. + * @param {string} line The line. + * @param {int} tabWidth The width of each tab stop in spaces. + * @returns {int} The computed line length. + * @private + */ + function computeLineLength(line, tabWidth) { + let extraCharacterCount = 0; + + line.replace(/\t/gu, (match, offset) => { + const totalOffset = offset + extraCharacterCount, + previousTabStopOffset = tabWidth ? totalOffset % tabWidth : 0, + spaceCount = tabWidth - previousTabStopOffset; + + extraCharacterCount += spaceCount - 1; // -1 for the replaced tab + }); + return Array.from(line).length + extraCharacterCount; + } + + // The options object must be the last option specified… + const options = Object.assign({}, context.options[context.options.length - 1]); + + // …but max code length… + if (typeof context.options[0] === "number") { + options.code = context.options[0]; + } + + // …and tabWidth can be optionally specified directly as integers. + if (typeof context.options[1] === "number") { + options.tabWidth = context.options[1]; + } + + const maxLength = typeof options.code === "number" ? options.code : 80, + tabWidth = typeof options.tabWidth === "number" ? options.tabWidth : 4, + ignoreComments = !!options.ignoreComments, + ignoreStrings = !!options.ignoreStrings, + ignoreTemplateLiterals = !!options.ignoreTemplateLiterals, + ignoreRegExpLiterals = !!options.ignoreRegExpLiterals, + ignoreTrailingComments = !!options.ignoreTrailingComments || !!options.ignoreComments, + ignoreUrls = !!options.ignoreUrls, + maxCommentLength = options.comments; + let ignorePattern = options.ignorePattern || null; + + if (ignorePattern) { + ignorePattern = new RegExp(ignorePattern, "u"); + } + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Tells if a given comment is trailing: it starts on the current line and + * extends to or past the end of the current line. + * @param {string} line The source line we want to check for a trailing comment on + * @param {number} lineNumber The one-indexed line number for line + * @param {ASTNode} comment The comment to inspect + * @returns {boolean} If the comment is trailing on the given line + */ + function isTrailingComment(line, lineNumber, comment) { + return comment && + (comment.loc.start.line === lineNumber && lineNumber <= comment.loc.end.line) && + (comment.loc.end.line > lineNumber || comment.loc.end.column === line.length); + } + + /** + * Tells if a comment encompasses the entire line. + * @param {string} line The source line with a trailing comment + * @param {number} lineNumber The one-indexed line number this is on + * @param {ASTNode} comment The comment to remove + * @returns {boolean} If the comment covers the entire line + */ + function isFullLineComment(line, lineNumber, comment) { + const start = comment.loc.start, + end = comment.loc.end, + isFirstTokenOnLine = !line.slice(0, comment.loc.start.column).trim(); + + return comment && + (start.line < lineNumber || (start.line === lineNumber && isFirstTokenOnLine)) && + (end.line > lineNumber || (end.line === lineNumber && end.column === line.length)); + } + + /** + * Check if a node is a JSXEmptyExpression contained in a single line JSXExpressionContainer. + * @param {ASTNode} node A node to check. + * @returns {boolean} True if the node is a JSXEmptyExpression contained in a single line JSXExpressionContainer. + */ + function isJSXEmptyExpressionInSingleLineContainer(node) { + if (!node || !node.parent || node.type !== "JSXEmptyExpression" || node.parent.type !== "JSXExpressionContainer") { + return false; + } + + const parent = node.parent; + + return parent.loc.start.line === parent.loc.end.line; + } + + /** + * Gets the line after the comment and any remaining trailing whitespace is + * stripped. + * @param {string} line The source line with a trailing comment + * @param {ASTNode} comment The comment to remove + * @returns {string} Line without comment and trailing whitespace + */ + function stripTrailingComment(line, comment) { + + // loc.column is zero-indexed + return line.slice(0, comment.loc.start.column).replace(/\s+$/u, ""); + } + + /** + * Ensure that an array exists at [key] on `object`, and add `value` to it. + * @param {Object} object the object to mutate + * @param {string} key the object's key + * @param {any} value the value to add + * @returns {void} + * @private + */ + function ensureArrayAndPush(object, key, value) { + if (!Array.isArray(object[key])) { + object[key] = []; + } + object[key].push(value); + } + + /** + * Retrieves an array containing all strings (" or ') in the source code. + * @returns {ASTNode[]} An array of string nodes. + */ + function getAllStrings() { + return sourceCode.ast.tokens.filter(token => (token.type === "String" || + (token.type === "JSXText" && sourceCode.getNodeByRangeIndex(token.range[0] - 1).type === "JSXAttribute"))); + } + + /** + * Retrieves an array containing all template literals in the source code. + * @returns {ASTNode[]} An array of template literal nodes. + */ + function getAllTemplateLiterals() { + return sourceCode.ast.tokens.filter(token => token.type === "Template"); + } + + + /** + * Retrieves an array containing all RegExp literals in the source code. + * @returns {ASTNode[]} An array of RegExp literal nodes. + */ + function getAllRegExpLiterals() { + return sourceCode.ast.tokens.filter(token => token.type === "RegularExpression"); + } + + + /** + * A reducer to group an AST node by line number, both start and end. + * @param {Object} acc the accumulator + * @param {ASTNode} node the AST node in question + * @returns {Object} the modified accumulator + * @private + */ + function groupByLineNumber(acc, node) { + for (let i = node.loc.start.line; i <= node.loc.end.line; ++i) { + ensureArrayAndPush(acc, i, node); + } + return acc; + } + + /** + * Returns an array of all comments in the source code. + * If the element in the array is a JSXEmptyExpression contained with a single line JSXExpressionContainer, + * the element is changed with JSXExpressionContainer node. + * @returns {ASTNode[]} An array of comment nodes + */ + function getAllComments() { + const comments = []; + + sourceCode.getAllComments() + .forEach(commentNode => { + const containingNode = sourceCode.getNodeByRangeIndex(commentNode.range[0]); + + if (isJSXEmptyExpressionInSingleLineContainer(containingNode)) { + + // push a unique node only + if (comments[comments.length - 1] !== containingNode.parent) { + comments.push(containingNode.parent); + } + } else { + comments.push(commentNode); + } + }); + + return comments; + } + + /** + * Check the program for max length + * @param {ASTNode} node Node to examine + * @returns {void} + * @private + */ + function checkProgramForMaxLength(node) { + + // split (honors line-ending) + const lines = sourceCode.lines, + + // list of comments to ignore + comments = ignoreComments || maxCommentLength || ignoreTrailingComments ? getAllComments() : []; + + // we iterate over comments in parallel with the lines + let commentsIndex = 0; + + const strings = getAllStrings(); + const stringsByLine = strings.reduce(groupByLineNumber, {}); + + const templateLiterals = getAllTemplateLiterals(); + const templateLiteralsByLine = templateLiterals.reduce(groupByLineNumber, {}); + + const regExpLiterals = getAllRegExpLiterals(); + const regExpLiteralsByLine = regExpLiterals.reduce(groupByLineNumber, {}); + + lines.forEach((line, i) => { + + // i is zero-indexed, line numbers are one-indexed + const lineNumber = i + 1; + + /* + * if we're checking comment length; we need to know whether this + * line is a comment + */ + let lineIsComment = false; + let textToMeasure; + + /* + * We can short-circuit the comment checks if we're already out of + * comments to check. + */ + if (commentsIndex < comments.length) { + let comment = null; + + // iterate over comments until we find one past the current line + do { + comment = comments[++commentsIndex]; + } while (comment && comment.loc.start.line <= lineNumber); + + // and step back by one + comment = comments[--commentsIndex]; + + if (isFullLineComment(line, lineNumber, comment)) { + lineIsComment = true; + textToMeasure = line; + } else if (ignoreTrailingComments && isTrailingComment(line, lineNumber, comment)) { + textToMeasure = stripTrailingComment(line, comment); + + // ignore multiple trailing comments in the same line + let lastIndex = commentsIndex; + + while (isTrailingComment(textToMeasure, lineNumber, comments[--lastIndex])) { + textToMeasure = stripTrailingComment(textToMeasure, comments[lastIndex]); + } + } else { + textToMeasure = line; + } + } else { + textToMeasure = line; + } + if (ignorePattern && ignorePattern.test(textToMeasure) || + ignoreUrls && URL_REGEXP.test(textToMeasure) || + ignoreStrings && stringsByLine[lineNumber] || + ignoreTemplateLiterals && templateLiteralsByLine[lineNumber] || + ignoreRegExpLiterals && regExpLiteralsByLine[lineNumber] + ) { + + // ignore this line + return; + } + + const lineLength = computeLineLength(textToMeasure, tabWidth); + const commentLengthApplies = lineIsComment && maxCommentLength; + + if (lineIsComment && ignoreComments) { + return; + } + + const loc = { + start: { + line: lineNumber, + column: 0 + }, + end: { + line: lineNumber, + column: textToMeasure.length + } + }; + + if (commentLengthApplies) { + if (lineLength > maxCommentLength) { + context.report({ + node, + loc, + messageId: "maxComment", + data: { + lineLength, + maxCommentLength + } + }); + } + } else if (lineLength > maxLength) { + context.report({ + node, + loc, + messageId: "max", + data: { + lineLength, + maxLength + } + }); + } + }); + } + + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + Program: checkProgramForMaxLength + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/max-lines-per-function.js b/node_modules/eslint/lib/rules/max-lines-per-function.js new file mode 100644 index 0000000..fad646c --- /dev/null +++ b/node_modules/eslint/lib/rules/max-lines-per-function.js @@ -0,0 +1,213 @@ +/** + * @fileoverview A rule to set the maximum number of line of code in a function. + * @author Pete Ward + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const OPTIONS_SCHEMA = { + type: "object", + properties: { + max: { + type: "integer", + minimum: 0 + }, + skipComments: { + type: "boolean" + }, + skipBlankLines: { + type: "boolean" + }, + IIFEs: { + type: "boolean" + } + }, + additionalProperties: false +}; + +const OPTIONS_OR_INTEGER_SCHEMA = { + oneOf: [ + OPTIONS_SCHEMA, + { + type: "integer", + minimum: 1 + } + ] +}; + +/** + * Given a list of comment nodes, return a map with numeric keys (source code line numbers) and comment token values. + * @param {Array} comments An array of comment nodes. + * @returns {Map} A map with numeric keys (source code line numbers) and comment token values. + */ +function getCommentLineNumbers(comments) { + const map = new Map(); + + comments.forEach(comment => { + for (let i = comment.loc.start.line; i <= comment.loc.end.line; i++) { + map.set(i, comment); + } + }); + return map; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum number of lines of code in a function", + recommended: false, + url: "https://eslint.org/docs/rules/max-lines-per-function" + }, + + schema: [ + OPTIONS_OR_INTEGER_SCHEMA + ], + messages: { + exceed: "{{name}} has too many lines ({{lineCount}}). Maximum allowed is {{maxLines}}." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const lines = sourceCode.lines; + + const option = context.options[0]; + let maxLines = 50; + let skipComments = false; + let skipBlankLines = false; + let IIFEs = false; + + if (typeof option === "object") { + maxLines = typeof option.max === "number" ? option.max : 50; + skipComments = !!option.skipComments; + skipBlankLines = !!option.skipBlankLines; + IIFEs = !!option.IIFEs; + } else if (typeof option === "number") { + maxLines = option; + } + + const commentLineNumbers = getCommentLineNumbers(sourceCode.getAllComments()); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Tells if a comment encompasses the entire line. + * @param {string} line The source line with a trailing comment + * @param {number} lineNumber The one-indexed line number this is on + * @param {ASTNode} comment The comment to remove + * @returns {boolean} If the comment covers the entire line + */ + function isFullLineComment(line, lineNumber, comment) { + const start = comment.loc.start, + end = comment.loc.end, + isFirstTokenOnLine = start.line === lineNumber && !line.slice(0, start.column).trim(), + isLastTokenOnLine = end.line === lineNumber && !line.slice(end.column).trim(); + + return comment && + (start.line < lineNumber || isFirstTokenOnLine) && + (end.line > lineNumber || isLastTokenOnLine); + } + + /** + * Identifies is a node is a FunctionExpression which is part of an IIFE + * @param {ASTNode} node Node to test + * @returns {boolean} True if it's an IIFE + */ + function isIIFE(node) { + return (node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression") && node.parent && node.parent.type === "CallExpression" && node.parent.callee === node; + } + + /** + * Identifies is a node is a FunctionExpression which is embedded within a MethodDefinition or Property + * @param {ASTNode} node Node to test + * @returns {boolean} True if it's a FunctionExpression embedded within a MethodDefinition or Property + */ + function isEmbedded(node) { + if (!node.parent) { + return false; + } + if (node !== node.parent.value) { + return false; + } + if (node.parent.type === "MethodDefinition") { + return true; + } + if (node.parent.type === "Property") { + return node.parent.method === true || node.parent.kind === "get" || node.parent.kind === "set"; + } + return false; + } + + /** + * Count the lines in the function + * @param {ASTNode} funcNode Function AST node + * @returns {void} + * @private + */ + function processFunction(funcNode) { + const node = isEmbedded(funcNode) ? funcNode.parent : funcNode; + + if (!IIFEs && isIIFE(node)) { + return; + } + let lineCount = 0; + + for (let i = node.loc.start.line - 1; i < node.loc.end.line; ++i) { + const line = lines[i]; + + if (skipComments) { + if (commentLineNumbers.has(i + 1) && isFullLineComment(line, i + 1, commentLineNumbers.get(i + 1))) { + continue; + } + } + + if (skipBlankLines) { + if (line.match(/^\s*$/u)) { + continue; + } + } + + lineCount++; + } + + if (lineCount > maxLines) { + const name = upperCaseFirst(astUtils.getFunctionNameWithKind(funcNode)); + + context.report({ + node, + messageId: "exceed", + data: { name, lineCount, maxLines } + }); + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + FunctionDeclaration: processFunction, + FunctionExpression: processFunction, + ArrowFunctionExpression: processFunction + }; + } +}; diff --git a/node_modules/eslint/lib/rules/max-lines.js b/node_modules/eslint/lib/rules/max-lines.js new file mode 100644 index 0000000..d0e5bad --- /dev/null +++ b/node_modules/eslint/lib/rules/max-lines.js @@ -0,0 +1,193 @@ +/** + * @fileoverview enforce a maximum file length + * @author Alberto Rodríguez + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Creates an array of numbers from `start` up to, but not including, `end` + * @param {number} start The start of the range + * @param {number} end The end of the range + * @returns {number[]} The range of numbers + */ +function range(start, end) { + return [...Array(end - start).keys()].map(x => x + start); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum number of lines per file", + recommended: false, + url: "https://eslint.org/docs/rules/max-lines" + }, + + schema: [ + { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + type: "object", + properties: { + max: { + type: "integer", + minimum: 0 + }, + skipComments: { + type: "boolean" + }, + skipBlankLines: { + type: "boolean" + } + }, + additionalProperties: false + } + ] + } + ], + messages: { + exceed: + "File has too many lines ({{actual}}). Maximum allowed is {{max}}." + } + }, + + create(context) { + const option = context.options[0]; + let max = 300; + + if ( + typeof option === "object" && + Object.prototype.hasOwnProperty.call(option, "max") + ) { + max = option.max; + } else if (typeof option === "number") { + max = option; + } + + const skipComments = option && option.skipComments; + const skipBlankLines = option && option.skipBlankLines; + + const sourceCode = context.getSourceCode(); + + /** + * Returns whether or not a token is a comment node type + * @param {Token} token The token to check + * @returns {boolean} True if the token is a comment node + */ + function isCommentNodeType(token) { + return token && (token.type === "Block" || token.type === "Line"); + } + + /** + * Returns the line numbers of a comment that don't have any code on the same line + * @param {Node} comment The comment node to check + * @returns {number[]} The line numbers + */ + function getLinesWithoutCode(comment) { + let start = comment.loc.start.line; + let end = comment.loc.end.line; + + let token; + + token = comment; + do { + token = sourceCode.getTokenBefore(token, { + includeComments: true + }); + } while (isCommentNodeType(token)); + + if (token && astUtils.isTokenOnSameLine(token, comment)) { + start += 1; + } + + token = comment; + do { + token = sourceCode.getTokenAfter(token, { + includeComments: true + }); + } while (isCommentNodeType(token)); + + if (token && astUtils.isTokenOnSameLine(comment, token)) { + end -= 1; + } + + if (start <= end) { + return range(start, end + 1); + } + return []; + } + + return { + "Program:exit"() { + let lines = sourceCode.lines.map((text, i) => ({ + lineNumber: i + 1, + text + })); + + /* + * If file ends with a linebreak, `sourceCode.lines` will have one extra empty line at the end. + * That isn't a real line, so we shouldn't count it. + */ + if (lines.length > 1 && lines[lines.length - 1].text === "") { + lines.pop(); + } + + if (skipBlankLines) { + lines = lines.filter(l => l.text.trim() !== ""); + } + + if (skipComments) { + const comments = sourceCode.getAllComments(); + + const commentLines = new Set(comments.flatMap(getLinesWithoutCode)); + + lines = lines.filter( + l => !commentLines.has(l.lineNumber) + ); + } + + if (lines.length > max) { + const loc = { + start: { + line: lines[max].lineNumber, + column: 0 + }, + end: { + line: sourceCode.lines.length, + column: sourceCode.lines[sourceCode.lines.length - 1].length + } + }; + + context.report({ + loc, + messageId: "exceed", + data: { + max, + actual: lines.length + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/max-nested-callbacks.js b/node_modules/eslint/lib/rules/max-nested-callbacks.js new file mode 100644 index 0000000..3764d5d --- /dev/null +++ b/node_modules/eslint/lib/rules/max-nested-callbacks.js @@ -0,0 +1,117 @@ +/** + * @fileoverview Rule to enforce a maximum number of nested callbacks. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum depth that callbacks can be nested", + recommended: false, + url: "https://eslint.org/docs/rules/max-nested-callbacks" + }, + + schema: [ + { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + type: "object", + properties: { + maximum: { + type: "integer", + minimum: 0 + }, + max: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + } + ] + } + ], + messages: { + exceed: "Too many nested callbacks ({{num}}). Maximum allowed is {{max}}." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Constants + //-------------------------------------------------------------------------- + const option = context.options[0]; + let THRESHOLD = 10; + + if ( + typeof option === "object" && + (Object.prototype.hasOwnProperty.call(option, "maximum") || Object.prototype.hasOwnProperty.call(option, "max")) + ) { + THRESHOLD = option.maximum || option.max; + } else if (typeof option === "number") { + THRESHOLD = option; + } + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + const callbackStack = []; + + /** + * Checks a given function node for too many callbacks. + * @param {ASTNode} node The node to check. + * @returns {void} + * @private + */ + function checkFunction(node) { + const parent = node.parent; + + if (parent.type === "CallExpression") { + callbackStack.push(node); + } + + if (callbackStack.length > THRESHOLD) { + const opts = { num: callbackStack.length, max: THRESHOLD }; + + context.report({ node, messageId: "exceed", data: opts }); + } + } + + /** + * Pops the call stack. + * @returns {void} + * @private + */ + function popStack() { + callbackStack.pop(); + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + ArrowFunctionExpression: checkFunction, + "ArrowFunctionExpression:exit": popStack, + + FunctionExpression: checkFunction, + "FunctionExpression:exit": popStack + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/max-params.js b/node_modules/eslint/lib/rules/max-params.js new file mode 100644 index 0000000..8de1ab4 --- /dev/null +++ b/node_modules/eslint/lib/rules/max-params.js @@ -0,0 +1,102 @@ +/** + * @fileoverview Rule to flag when a function has too many parameters + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum number of parameters in function definitions", + recommended: false, + url: "https://eslint.org/docs/rules/max-params" + }, + + schema: [ + { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + type: "object", + properties: { + maximum: { + type: "integer", + minimum: 0 + }, + max: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + } + ] + } + ], + messages: { + exceed: "{{name}} has too many parameters ({{count}}). Maximum allowed is {{max}}." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const option = context.options[0]; + let numParams = 3; + + if ( + typeof option === "object" && + (Object.prototype.hasOwnProperty.call(option, "maximum") || Object.prototype.hasOwnProperty.call(option, "max")) + ) { + numParams = option.maximum || option.max; + } + if (typeof option === "number") { + numParams = option; + } + + /** + * Checks a function to see if it has too many parameters. + * @param {ASTNode} node The node to check. + * @returns {void} + * @private + */ + function checkFunction(node) { + if (node.params.length > numParams) { + context.report({ + loc: astUtils.getFunctionHeadLoc(node, sourceCode), + node, + messageId: "exceed", + data: { + name: upperCaseFirst(astUtils.getFunctionNameWithKind(node)), + count: node.params.length, + max: numParams + } + }); + } + } + + return { + FunctionDeclaration: checkFunction, + ArrowFunctionExpression: checkFunction, + FunctionExpression: checkFunction + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/max-statements-per-line.js b/node_modules/eslint/lib/rules/max-statements-per-line.js new file mode 100644 index 0000000..ada9cf0 --- /dev/null +++ b/node_modules/eslint/lib/rules/max-statements-per-line.js @@ -0,0 +1,196 @@ +/** + * @fileoverview Specify the maximum number of statements allowed per line. + * @author Kenneth Williams + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce a maximum number of statements allowed per line", + recommended: false, + url: "https://eslint.org/docs/rules/max-statements-per-line" + }, + + schema: [ + { + type: "object", + properties: { + max: { + type: "integer", + minimum: 1, + default: 1 + } + }, + additionalProperties: false + } + ], + messages: { + exceed: "This line has {{numberOfStatementsOnThisLine}} {{statements}}. Maximum allowed is {{maxStatementsPerLine}}." + } + }, + + create(context) { + + const sourceCode = context.getSourceCode(), + options = context.options[0] || {}, + maxStatementsPerLine = typeof options.max !== "undefined" ? options.max : 1; + + let lastStatementLine = 0, + numberOfStatementsOnThisLine = 0, + firstExtraStatement; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + const SINGLE_CHILD_ALLOWED = /^(?:(?:DoWhile|For|ForIn|ForOf|If|Labeled|While)Statement|Export(?:Default|Named)Declaration)$/u; + + /** + * Reports with the first extra statement, and clears it. + * @returns {void} + */ + function reportFirstExtraStatementAndClear() { + if (firstExtraStatement) { + context.report({ + node: firstExtraStatement, + messageId: "exceed", + data: { + numberOfStatementsOnThisLine, + maxStatementsPerLine, + statements: numberOfStatementsOnThisLine === 1 ? "statement" : "statements" + } + }); + } + firstExtraStatement = null; + } + + /** + * Gets the actual last token of a given node. + * @param {ASTNode} node A node to get. This is a node except EmptyStatement. + * @returns {Token} The actual last token. + */ + function getActualLastToken(node) { + return sourceCode.getLastToken(node, astUtils.isNotSemicolonToken); + } + + /** + * Addresses a given node. + * It updates the state of this rule, then reports the node if the node violated this rule. + * @param {ASTNode} node A node to check. + * @returns {void} + */ + function enterStatement(node) { + const line = node.loc.start.line; + + /* + * Skip to allow non-block statements if this is direct child of control statements. + * `if (a) foo();` is counted as 1. + * But `if (a) foo(); else foo();` should be counted as 2. + */ + if (SINGLE_CHILD_ALLOWED.test(node.parent.type) && + node.parent.alternate !== node + ) { + return; + } + + // Update state. + if (line === lastStatementLine) { + numberOfStatementsOnThisLine += 1; + } else { + reportFirstExtraStatementAndClear(); + numberOfStatementsOnThisLine = 1; + lastStatementLine = line; + } + + // Reports if the node violated this rule. + if (numberOfStatementsOnThisLine === maxStatementsPerLine + 1) { + firstExtraStatement = firstExtraStatement || node; + } + } + + /** + * Updates the state of this rule with the end line of leaving node to check with the next statement. + * @param {ASTNode} node A node to check. + * @returns {void} + */ + function leaveStatement(node) { + const line = getActualLastToken(node).loc.end.line; + + // Update state. + if (line !== lastStatementLine) { + reportFirstExtraStatementAndClear(); + numberOfStatementsOnThisLine = 1; + lastStatementLine = line; + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + BreakStatement: enterStatement, + ClassDeclaration: enterStatement, + ContinueStatement: enterStatement, + DebuggerStatement: enterStatement, + DoWhileStatement: enterStatement, + ExpressionStatement: enterStatement, + ForInStatement: enterStatement, + ForOfStatement: enterStatement, + ForStatement: enterStatement, + FunctionDeclaration: enterStatement, + IfStatement: enterStatement, + ImportDeclaration: enterStatement, + LabeledStatement: enterStatement, + ReturnStatement: enterStatement, + SwitchStatement: enterStatement, + ThrowStatement: enterStatement, + TryStatement: enterStatement, + VariableDeclaration: enterStatement, + WhileStatement: enterStatement, + WithStatement: enterStatement, + ExportNamedDeclaration: enterStatement, + ExportDefaultDeclaration: enterStatement, + ExportAllDeclaration: enterStatement, + + "BreakStatement:exit": leaveStatement, + "ClassDeclaration:exit": leaveStatement, + "ContinueStatement:exit": leaveStatement, + "DebuggerStatement:exit": leaveStatement, + "DoWhileStatement:exit": leaveStatement, + "ExpressionStatement:exit": leaveStatement, + "ForInStatement:exit": leaveStatement, + "ForOfStatement:exit": leaveStatement, + "ForStatement:exit": leaveStatement, + "FunctionDeclaration:exit": leaveStatement, + "IfStatement:exit": leaveStatement, + "ImportDeclaration:exit": leaveStatement, + "LabeledStatement:exit": leaveStatement, + "ReturnStatement:exit": leaveStatement, + "SwitchStatement:exit": leaveStatement, + "ThrowStatement:exit": leaveStatement, + "TryStatement:exit": leaveStatement, + "VariableDeclaration:exit": leaveStatement, + "WhileStatement:exit": leaveStatement, + "WithStatement:exit": leaveStatement, + "ExportNamedDeclaration:exit": leaveStatement, + "ExportDefaultDeclaration:exit": leaveStatement, + "ExportAllDeclaration:exit": leaveStatement, + "Program:exit": reportFirstExtraStatementAndClear + }; + } +}; diff --git a/node_modules/eslint/lib/rules/max-statements.js b/node_modules/eslint/lib/rules/max-statements.js new file mode 100644 index 0000000..c598b10 --- /dev/null +++ b/node_modules/eslint/lib/rules/max-statements.js @@ -0,0 +1,184 @@ +/** + * @fileoverview A rule to set the maximum number of statements in a function. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a maximum number of statements allowed in function blocks", + recommended: false, + url: "https://eslint.org/docs/rules/max-statements" + }, + + schema: [ + { + oneOf: [ + { + type: "integer", + minimum: 0 + }, + { + type: "object", + properties: { + maximum: { + type: "integer", + minimum: 0 + }, + max: { + type: "integer", + minimum: 0 + } + }, + additionalProperties: false + } + ] + }, + { + type: "object", + properties: { + ignoreTopLevelFunctions: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + messages: { + exceed: "{{name}} has too many statements ({{count}}). Maximum allowed is {{max}}." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + const functionStack = [], + option = context.options[0], + ignoreTopLevelFunctions = context.options[1] && context.options[1].ignoreTopLevelFunctions || false, + topLevelFunctions = []; + let maxStatements = 10; + + if ( + typeof option === "object" && + (Object.prototype.hasOwnProperty.call(option, "maximum") || Object.prototype.hasOwnProperty.call(option, "max")) + ) { + maxStatements = option.maximum || option.max; + } else if (typeof option === "number") { + maxStatements = option; + } + + /** + * Reports a node if it has too many statements + * @param {ASTNode} node node to evaluate + * @param {int} count Number of statements in node + * @param {int} max Maximum number of statements allowed + * @returns {void} + * @private + */ + function reportIfTooManyStatements(node, count, max) { + if (count > max) { + const name = upperCaseFirst(astUtils.getFunctionNameWithKind(node)); + + context.report({ + node, + messageId: "exceed", + data: { name, count, max } + }); + } + } + + /** + * When parsing a new function, store it in our function stack + * @returns {void} + * @private + */ + function startFunction() { + functionStack.push(0); + } + + /** + * Evaluate the node at the end of function + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function endFunction(node) { + const count = functionStack.pop(); + + /* + * This rule does not apply to class static blocks, but we have to track them so + * that statements in them do not count as statements in the enclosing function. + */ + if (node.type === "StaticBlock") { + return; + } + + if (ignoreTopLevelFunctions && functionStack.length === 0) { + topLevelFunctions.push({ node, count }); + } else { + reportIfTooManyStatements(node, count, maxStatements); + } + } + + /** + * Increment the count of the functions + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function countStatements(node) { + functionStack[functionStack.length - 1] += node.body.length; + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + FunctionDeclaration: startFunction, + FunctionExpression: startFunction, + ArrowFunctionExpression: startFunction, + StaticBlock: startFunction, + + BlockStatement: countStatements, + + "FunctionDeclaration:exit": endFunction, + "FunctionExpression:exit": endFunction, + "ArrowFunctionExpression:exit": endFunction, + "StaticBlock:exit": endFunction, + + "Program:exit"() { + if (topLevelFunctions.length === 1) { + return; + } + + topLevelFunctions.forEach(element => { + const count = element.count; + const node = element.node; + + reportIfTooManyStatements(node, count, maxStatements); + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/multiline-comment-style.js b/node_modules/eslint/lib/rules/multiline-comment-style.js new file mode 100644 index 0000000..68cd666 --- /dev/null +++ b/node_modules/eslint/lib/rules/multiline-comment-style.js @@ -0,0 +1,435 @@ +/** + * @fileoverview enforce a particular style for multiline comments + * @author Teddy Katz + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce a particular style for multiline comments", + recommended: false, + url: "https://eslint.org/docs/rules/multiline-comment-style" + }, + + fixable: "whitespace", + schema: [{ enum: ["starred-block", "separate-lines", "bare-block"] }], + messages: { + expectedBlock: "Expected a block comment instead of consecutive line comments.", + expectedBareBlock: "Expected a block comment without padding stars.", + startNewline: "Expected a linebreak after '/*'.", + endNewline: "Expected a linebreak before '*/'.", + missingStar: "Expected a '*' at the start of this line.", + alignment: "Expected this line to be aligned with the start of the comment.", + expectedLines: "Expected multiple line comments instead of a block comment." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const option = context.options[0] || "starred-block"; + + //---------------------------------------------------------------------- + // Helpers + //---------------------------------------------------------------------- + + /** + * Checks if a comment line is starred. + * @param {string} line A string representing a comment line. + * @returns {boolean} Whether or not the comment line is starred. + */ + function isStarredCommentLine(line) { + return /^\s*\*/u.test(line); + } + + /** + * Checks if a comment group is in starred-block form. + * @param {Token[]} commentGroup A group of comments, containing either multiple line comments or a single block comment. + * @returns {boolean} Whether or not the comment group is in starred block form. + */ + function isStarredBlockComment([firstComment]) { + if (firstComment.type !== "Block") { + return false; + } + + const lines = firstComment.value.split(astUtils.LINEBREAK_MATCHER); + + // The first and last lines can only contain whitespace. + return lines.length > 0 && lines.every((line, i) => (i === 0 || i === lines.length - 1 ? /^\s*$/u : /^\s*\*/u).test(line)); + } + + /** + * Checks if a comment group is in JSDoc form. + * @param {Token[]} commentGroup A group of comments, containing either multiple line comments or a single block comment. + * @returns {boolean} Whether or not the comment group is in JSDoc form. + */ + function isJSDocComment([firstComment]) { + if (firstComment.type !== "Block") { + return false; + } + + const lines = firstComment.value.split(astUtils.LINEBREAK_MATCHER); + + return /^\*\s*$/u.test(lines[0]) && + lines.slice(1, -1).every(line => /^\s* /u.test(line)) && + /^\s*$/u.test(lines[lines.length - 1]); + } + + /** + * Processes a comment group that is currently in separate-line form, calculating the offset for each line. + * @param {Token[]} commentGroup A group of comments containing multiple line comments. + * @returns {string[]} An array of the processed lines. + */ + function processSeparateLineComments(commentGroup) { + const allLinesHaveLeadingSpace = commentGroup + .map(({ value }) => value) + .filter(line => line.trim().length) + .every(line => line.startsWith(" ")); + + return commentGroup.map(({ value }) => (allLinesHaveLeadingSpace ? value.replace(/^ /u, "") : value)); + } + + /** + * Processes a comment group that is currently in starred-block form, calculating the offset for each line. + * @param {Token} comment A single block comment token in starred-block form. + * @returns {string[]} An array of the processed lines. + */ + function processStarredBlockComment(comment) { + const lines = comment.value.split(astUtils.LINEBREAK_MATCHER) + .filter((line, i, linesArr) => !(i === 0 || i === linesArr.length - 1)) + .map(line => line.replace(/^\s*$/u, "")); + const allLinesHaveLeadingSpace = lines + .map(line => line.replace(/\s*\*/u, "")) + .filter(line => line.trim().length) + .every(line => line.startsWith(" ")); + + return lines.map(line => line.replace(allLinesHaveLeadingSpace ? /\s*\* ?/u : /\s*\*/u, "")); + } + + /** + * Processes a comment group that is currently in bare-block form, calculating the offset for each line. + * @param {Token} comment A single block comment token in bare-block form. + * @returns {string[]} An array of the processed lines. + */ + function processBareBlockComment(comment) { + const lines = comment.value.split(astUtils.LINEBREAK_MATCHER).map(line => line.replace(/^\s*$/u, "")); + const leadingWhitespace = `${sourceCode.text.slice(comment.range[0] - comment.loc.start.column, comment.range[0])} `; + let offset = ""; + + /* + * Calculate the offset of the least indented line and use that as the basis for offsetting all the lines. + * The first line should not be checked because it is inline with the opening block comment delimiter. + */ + for (const [i, line] of lines.entries()) { + if (!line.trim().length || i === 0) { + continue; + } + + const [, lineOffset] = line.match(/^(\s*\*?\s*)/u); + + if (lineOffset.length < leadingWhitespace.length) { + const newOffset = leadingWhitespace.slice(lineOffset.length - leadingWhitespace.length); + + if (newOffset.length > offset.length) { + offset = newOffset; + } + } + } + + return lines.map(line => { + const match = line.match(/^(\s*\*?\s*)(.*)/u); + const [, lineOffset, lineContents] = match; + + if (lineOffset.length > leadingWhitespace.length) { + return `${lineOffset.slice(leadingWhitespace.length - (offset.length + lineOffset.length))}${lineContents}`; + } + + if (lineOffset.length < leadingWhitespace.length) { + return `${lineOffset.slice(leadingWhitespace.length)}${lineContents}`; + } + + return lineContents; + }); + } + + /** + * Gets a list of comment lines in a group, formatting leading whitespace as necessary. + * @param {Token[]} commentGroup A group of comments containing either multiple line comments or a single block comment. + * @returns {string[]} A list of comment lines. + */ + function getCommentLines(commentGroup) { + const [firstComment] = commentGroup; + + if (firstComment.type === "Line") { + return processSeparateLineComments(commentGroup); + } + + if (isStarredBlockComment(commentGroup)) { + return processStarredBlockComment(firstComment); + } + + return processBareBlockComment(firstComment); + } + + /** + * Gets the initial offset (whitespace) from the beginning of a line to a given comment token. + * @param {Token} comment The token to check. + * @returns {string} The offset from the beginning of a line to the token. + */ + function getInitialOffset(comment) { + return sourceCode.text.slice(comment.range[0] - comment.loc.start.column, comment.range[0]); + } + + /** + * Converts a comment into starred-block form + * @param {Token} firstComment The first comment of the group being converted + * @param {string[]} commentLinesList A list of lines to appear in the new starred-block comment + * @returns {string} A representation of the comment value in starred-block form, excluding start and end markers + */ + function convertToStarredBlock(firstComment, commentLinesList) { + const initialOffset = getInitialOffset(firstComment); + + return `/*\n${commentLinesList.map(line => `${initialOffset} * ${line}`).join("\n")}\n${initialOffset} */`; + } + + /** + * Converts a comment into separate-line form + * @param {Token} firstComment The first comment of the group being converted + * @param {string[]} commentLinesList A list of lines to appear in the new starred-block comment + * @returns {string} A representation of the comment value in separate-line form + */ + function convertToSeparateLines(firstComment, commentLinesList) { + return commentLinesList.map(line => `// ${line}`).join(`\n${getInitialOffset(firstComment)}`); + } + + /** + * Converts a comment into bare-block form + * @param {Token} firstComment The first comment of the group being converted + * @param {string[]} commentLinesList A list of lines to appear in the new starred-block comment + * @returns {string} A representation of the comment value in bare-block form + */ + function convertToBlock(firstComment, commentLinesList) { + return `/* ${commentLinesList.join(`\n${getInitialOffset(firstComment)} `)} */`; + } + + /** + * Each method checks a group of comments to see if it's valid according to the given option. + * @param {Token[]} commentGroup A list of comments that appear together. This will either contain a single + * block comment or multiple line comments. + * @returns {void} + */ + const commentGroupCheckers = { + "starred-block"(commentGroup) { + const [firstComment] = commentGroup; + const commentLines = getCommentLines(commentGroup); + + if (commentLines.some(value => value.includes("*/"))) { + return; + } + + if (commentGroup.length > 1) { + context.report({ + loc: { + start: firstComment.loc.start, + end: commentGroup[commentGroup.length - 1].loc.end + }, + messageId: "expectedBlock", + fix(fixer) { + const range = [firstComment.range[0], commentGroup[commentGroup.length - 1].range[1]]; + + return commentLines.some(value => value.startsWith("/")) + ? null + : fixer.replaceTextRange(range, convertToStarredBlock(firstComment, commentLines)); + } + }); + } else { + const lines = firstComment.value.split(astUtils.LINEBREAK_MATCHER); + const expectedLeadingWhitespace = getInitialOffset(firstComment); + const expectedLinePrefix = `${expectedLeadingWhitespace} *`; + + if (!/^\*?\s*$/u.test(lines[0])) { + const start = firstComment.value.startsWith("*") ? firstComment.range[0] + 1 : firstComment.range[0]; + + context.report({ + loc: { + start: firstComment.loc.start, + end: { line: firstComment.loc.start.line, column: firstComment.loc.start.column + 2 } + }, + messageId: "startNewline", + fix: fixer => fixer.insertTextAfterRange([start, start + 2], `\n${expectedLinePrefix}`) + }); + } + + if (!/^\s*$/u.test(lines[lines.length - 1])) { + context.report({ + loc: { + start: { line: firstComment.loc.end.line, column: firstComment.loc.end.column - 2 }, + end: firstComment.loc.end + }, + messageId: "endNewline", + fix: fixer => fixer.replaceTextRange([firstComment.range[1] - 2, firstComment.range[1]], `\n${expectedLinePrefix}/`) + }); + } + + for (let lineNumber = firstComment.loc.start.line + 1; lineNumber <= firstComment.loc.end.line; lineNumber++) { + const lineText = sourceCode.lines[lineNumber - 1]; + const errorType = isStarredCommentLine(lineText) + ? "alignment" + : "missingStar"; + + if (!lineText.startsWith(expectedLinePrefix)) { + context.report({ + loc: { + start: { line: lineNumber, column: 0 }, + end: { line: lineNumber, column: lineText.length } + }, + messageId: errorType, + fix(fixer) { + const lineStartIndex = sourceCode.getIndexFromLoc({ line: lineNumber, column: 0 }); + + if (errorType === "alignment") { + const [, commentTextPrefix = ""] = lineText.match(/^(\s*\*)/u) || []; + const commentTextStartIndex = lineStartIndex + commentTextPrefix.length; + + return fixer.replaceTextRange([lineStartIndex, commentTextStartIndex], expectedLinePrefix); + } + + const [, commentTextPrefix = ""] = lineText.match(/^(\s*)/u) || []; + const commentTextStartIndex = lineStartIndex + commentTextPrefix.length; + let offset; + + for (const [idx, line] of lines.entries()) { + if (!/\S+/u.test(line)) { + continue; + } + + const lineTextToAlignWith = sourceCode.lines[firstComment.loc.start.line - 1 + idx]; + const [, prefix = "", initialOffset = ""] = lineTextToAlignWith.match(/^(\s*(?:\/?\*)?(\s*))/u) || []; + + offset = `${commentTextPrefix.slice(prefix.length)}${initialOffset}`; + + if (/^\s*\//u.test(lineText) && offset.length === 0) { + offset += " "; + } + break; + } + + return fixer.replaceTextRange([lineStartIndex, commentTextStartIndex], `${expectedLinePrefix}${offset}`); + } + }); + } + } + } + }, + "separate-lines"(commentGroup) { + const [firstComment] = commentGroup; + + if (firstComment.type !== "Block" || isJSDocComment(commentGroup)) { + return; + } + + const commentLines = getCommentLines(commentGroup); + const tokenAfter = sourceCode.getTokenAfter(firstComment, { includeComments: true }); + + if (tokenAfter && firstComment.loc.end.line === tokenAfter.loc.start.line) { + return; + } + + context.report({ + loc: { + start: firstComment.loc.start, + end: { line: firstComment.loc.start.line, column: firstComment.loc.start.column + 2 } + }, + messageId: "expectedLines", + fix(fixer) { + return fixer.replaceText(firstComment, convertToSeparateLines(firstComment, commentLines)); + } + }); + }, + "bare-block"(commentGroup) { + if (isJSDocComment(commentGroup)) { + return; + } + + const [firstComment] = commentGroup; + const commentLines = getCommentLines(commentGroup); + + // Disallows consecutive line comments in favor of using a block comment. + if (firstComment.type === "Line" && commentLines.length > 1 && + !commentLines.some(value => value.includes("*/"))) { + context.report({ + loc: { + start: firstComment.loc.start, + end: commentGroup[commentGroup.length - 1].loc.end + }, + messageId: "expectedBlock", + fix(fixer) { + return fixer.replaceTextRange( + [firstComment.range[0], commentGroup[commentGroup.length - 1].range[1]], + convertToBlock(firstComment, commentLines) + ); + } + }); + } + + // Prohibits block comments from having a * at the beginning of each line. + if (isStarredBlockComment(commentGroup)) { + context.report({ + loc: { + start: firstComment.loc.start, + end: { line: firstComment.loc.start.line, column: firstComment.loc.start.column + 2 } + }, + messageId: "expectedBareBlock", + fix(fixer) { + return fixer.replaceText(firstComment, convertToBlock(firstComment, commentLines)); + } + }); + } + } + }; + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + Program() { + return sourceCode.getAllComments() + .filter(comment => comment.type !== "Shebang") + .filter(comment => !astUtils.COMMENTS_IGNORE_PATTERN.test(comment.value)) + .filter(comment => { + const tokenBefore = sourceCode.getTokenBefore(comment, { includeComments: true }); + + return !tokenBefore || tokenBefore.loc.end.line < comment.loc.start.line; + }) + .reduce((commentGroups, comment, index, commentList) => { + const tokenBefore = sourceCode.getTokenBefore(comment, { includeComments: true }); + + if ( + comment.type === "Line" && + index && commentList[index - 1].type === "Line" && + tokenBefore && tokenBefore.loc.end.line === comment.loc.start.line - 1 && + tokenBefore === commentList[index - 1] + ) { + commentGroups[commentGroups.length - 1].push(comment); + } else { + commentGroups.push([comment]); + } + + return commentGroups; + }, []) + .filter(commentGroup => !(commentGroup.length === 1 && commentGroup[0].loc.start.line === commentGroup[0].loc.end.line)) + .forEach(commentGroupCheckers[option]); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/multiline-ternary.js b/node_modules/eslint/lib/rules/multiline-ternary.js new file mode 100644 index 0000000..62c84bb --- /dev/null +++ b/node_modules/eslint/lib/rules/multiline-ternary.js @@ -0,0 +1,171 @@ +/** + * @fileoverview Enforce newlines between operands of ternary expressions + * @author Kai Cataldo + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce newlines between operands of ternary expressions", + recommended: false, + url: "https://eslint.org/docs/rules/multiline-ternary" + }, + + schema: [ + { + enum: ["always", "always-multiline", "never"] + } + ], + + messages: { + expectedTestCons: "Expected newline between test and consequent of ternary expression.", + expectedConsAlt: "Expected newline between consequent and alternate of ternary expression.", + unexpectedTestCons: "Unexpected newline between test and consequent of ternary expression.", + unexpectedConsAlt: "Unexpected newline between consequent and alternate of ternary expression." + }, + + fixable: "whitespace" + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const option = context.options[0]; + const multiline = option !== "never"; + const allowSingleLine = option === "always-multiline"; + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + ConditionalExpression(node) { + const questionToken = sourceCode.getTokenAfter(node.test, astUtils.isNotClosingParenToken); + const colonToken = sourceCode.getTokenAfter(node.consequent, astUtils.isNotClosingParenToken); + + const firstTokenOfTest = sourceCode.getFirstToken(node); + const lastTokenOfTest = sourceCode.getTokenBefore(questionToken); + const firstTokenOfConsequent = sourceCode.getTokenAfter(questionToken); + const lastTokenOfConsequent = sourceCode.getTokenBefore(colonToken); + const firstTokenOfAlternate = sourceCode.getTokenAfter(colonToken); + + const areTestAndConsequentOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfTest, firstTokenOfConsequent); + const areConsequentAndAlternateOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfConsequent, firstTokenOfAlternate); + + const hasComments = !!sourceCode.getCommentsInside(node).length; + + if (!multiline) { + if (!areTestAndConsequentOnSameLine) { + context.report({ + node: node.test, + loc: { + start: firstTokenOfTest.loc.start, + end: lastTokenOfTest.loc.end + }, + messageId: "unexpectedTestCons", + fix: fixer => { + if (hasComments) { + return null; + } + const fixers = []; + const areTestAndQuestionOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfTest, questionToken); + const areQuestionAndConsOnSameLine = astUtils.isTokenOnSameLine(questionToken, firstTokenOfConsequent); + + if (!areTestAndQuestionOnSameLine) { + fixers.push(fixer.removeRange([lastTokenOfTest.range[1], questionToken.range[0]])); + } + if (!areQuestionAndConsOnSameLine) { + fixers.push(fixer.removeRange([questionToken.range[1], firstTokenOfConsequent.range[0]])); + } + + return fixers; + } + }); + } + + if (!areConsequentAndAlternateOnSameLine) { + context.report({ + node: node.consequent, + loc: { + start: firstTokenOfConsequent.loc.start, + end: lastTokenOfConsequent.loc.end + }, + messageId: "unexpectedConsAlt", + fix: fixer => { + if (hasComments) { + return null; + } + const fixers = []; + const areConsAndColonOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfConsequent, colonToken); + const areColonAndAltOnSameLine = astUtils.isTokenOnSameLine(colonToken, firstTokenOfAlternate); + + if (!areConsAndColonOnSameLine) { + fixers.push(fixer.removeRange([lastTokenOfConsequent.range[1], colonToken.range[0]])); + } + if (!areColonAndAltOnSameLine) { + fixers.push(fixer.removeRange([colonToken.range[1], firstTokenOfAlternate.range[0]])); + } + + return fixers; + } + }); + } + } else { + if (allowSingleLine && node.loc.start.line === node.loc.end.line) { + return; + } + + if (areTestAndConsequentOnSameLine) { + context.report({ + node: node.test, + loc: { + start: firstTokenOfTest.loc.start, + end: lastTokenOfTest.loc.end + }, + messageId: "expectedTestCons", + fix: fixer => (hasComments ? null : ( + fixer.replaceTextRange( + [ + lastTokenOfTest.range[1], + questionToken.range[0] + ], + "\n" + ) + )) + }); + } + + if (areConsequentAndAlternateOnSameLine) { + context.report({ + node: node.consequent, + loc: { + start: firstTokenOfConsequent.loc.start, + end: lastTokenOfConsequent.loc.end + }, + messageId: "expectedConsAlt", + fix: (fixer => (hasComments ? null : ( + fixer.replaceTextRange( + [ + lastTokenOfConsequent.range[1], + colonToken.range[0] + ], + "\n" + ) + ))) + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/new-cap.js b/node_modules/eslint/lib/rules/new-cap.js new file mode 100644 index 0000000..7e0b21e --- /dev/null +++ b/node_modules/eslint/lib/rules/new-cap.js @@ -0,0 +1,276 @@ +/** + * @fileoverview Rule to flag use of constructors without capital letters + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const CAPS_ALLOWED = [ + "Array", + "Boolean", + "Date", + "Error", + "Function", + "Number", + "Object", + "RegExp", + "String", + "Symbol", + "BigInt" +]; + +/** + * Ensure that if the key is provided, it must be an array. + * @param {Object} obj Object to check with `key`. + * @param {string} key Object key to check on `obj`. + * @param {any} fallback If obj[key] is not present, this will be returned. + * @throws {TypeError} If key is not an own array type property of `obj`. + * @returns {string[]} Returns obj[key] if it's an Array, otherwise `fallback` + */ +function checkArray(obj, key, fallback) { + + /* c8 ignore start */ + if (Object.prototype.hasOwnProperty.call(obj, key) && !Array.isArray(obj[key])) { + throw new TypeError(`${key}, if provided, must be an Array`); + }/* c8 ignore stop */ + return obj[key] || fallback; +} + +/** + * A reducer function to invert an array to an Object mapping the string form of the key, to `true`. + * @param {Object} map Accumulator object for the reduce. + * @param {string} key Object key to set to `true`. + * @returns {Object} Returns the updated Object for further reduction. + */ +function invert(map, key) { + map[key] = true; + return map; +} + +/** + * Creates an object with the cap is new exceptions as its keys and true as their values. + * @param {Object} config Rule configuration + * @returns {Object} Object with cap is new exceptions. + */ +function calculateCapIsNewExceptions(config) { + let capIsNewExceptions = checkArray(config, "capIsNewExceptions", CAPS_ALLOWED); + + if (capIsNewExceptions !== CAPS_ALLOWED) { + capIsNewExceptions = capIsNewExceptions.concat(CAPS_ALLOWED); + } + + return capIsNewExceptions.reduce(invert, {}); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require constructor names to begin with a capital letter", + recommended: false, + url: "https://eslint.org/docs/rules/new-cap" + }, + + schema: [ + { + type: "object", + properties: { + newIsCap: { + type: "boolean", + default: true + }, + capIsNew: { + type: "boolean", + default: true + }, + newIsCapExceptions: { + type: "array", + items: { + type: "string" + } + }, + newIsCapExceptionPattern: { + type: "string" + }, + capIsNewExceptions: { + type: "array", + items: { + type: "string" + } + }, + capIsNewExceptionPattern: { + type: "string" + }, + properties: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + messages: { + upper: "A function with a name starting with an uppercase letter should only be used as a constructor.", + lower: "A constructor name should not start with a lowercase letter." + } + }, + + create(context) { + + const config = Object.assign({}, context.options[0]); + + config.newIsCap = config.newIsCap !== false; + config.capIsNew = config.capIsNew !== false; + const skipProperties = config.properties === false; + + const newIsCapExceptions = checkArray(config, "newIsCapExceptions", []).reduce(invert, {}); + const newIsCapExceptionPattern = config.newIsCapExceptionPattern ? new RegExp(config.newIsCapExceptionPattern, "u") : null; + + const capIsNewExceptions = calculateCapIsNewExceptions(config); + const capIsNewExceptionPattern = config.capIsNewExceptionPattern ? new RegExp(config.capIsNewExceptionPattern, "u") : null; + + const listeners = {}; + + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Get exact callee name from expression + * @param {ASTNode} node CallExpression or NewExpression node + * @returns {string} name + */ + function extractNameFromExpression(node) { + return node.callee.type === "Identifier" + ? node.callee.name + : astUtils.getStaticPropertyName(node.callee) || ""; + } + + /** + * Returns the capitalization state of the string - + * Whether the first character is uppercase, lowercase, or non-alphabetic + * @param {string} str String + * @returns {string} capitalization state: "non-alpha", "lower", or "upper" + */ + function getCap(str) { + const firstChar = str.charAt(0); + + const firstCharLower = firstChar.toLowerCase(); + const firstCharUpper = firstChar.toUpperCase(); + + if (firstCharLower === firstCharUpper) { + + // char has no uppercase variant, so it's non-alphabetic + return "non-alpha"; + } + if (firstChar === firstCharLower) { + return "lower"; + } + return "upper"; + + } + + /** + * Check if capitalization is allowed for a CallExpression + * @param {Object} allowedMap Object mapping calleeName to a Boolean + * @param {ASTNode} node CallExpression node + * @param {string} calleeName Capitalized callee name from a CallExpression + * @param {Object} pattern RegExp object from options pattern + * @returns {boolean} Returns true if the callee may be capitalized + */ + function isCapAllowed(allowedMap, node, calleeName, pattern) { + const sourceText = sourceCode.getText(node.callee); + + if (allowedMap[calleeName] || allowedMap[sourceText]) { + return true; + } + + if (pattern && pattern.test(sourceText)) { + return true; + } + + const callee = astUtils.skipChainExpression(node.callee); + + if (calleeName === "UTC" && callee.type === "MemberExpression") { + + // allow if callee is Date.UTC + return callee.object.type === "Identifier" && + callee.object.name === "Date"; + } + + return skipProperties && callee.type === "MemberExpression"; + } + + /** + * Reports the given messageId for the given node. The location will be the start of the property or the callee. + * @param {ASTNode} node CallExpression or NewExpression node. + * @param {string} messageId The messageId to report. + * @returns {void} + */ + function report(node, messageId) { + let callee = astUtils.skipChainExpression(node.callee); + + if (callee.type === "MemberExpression") { + callee = callee.property; + } + + context.report({ node, loc: callee.loc, messageId }); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + if (config.newIsCap) { + listeners.NewExpression = function(node) { + + const constructorName = extractNameFromExpression(node); + + if (constructorName) { + const capitalization = getCap(constructorName); + const isAllowed = capitalization !== "lower" || isCapAllowed(newIsCapExceptions, node, constructorName, newIsCapExceptionPattern); + + if (!isAllowed) { + report(node, "lower"); + } + } + }; + } + + if (config.capIsNew) { + listeners.CallExpression = function(node) { + + const calleeName = extractNameFromExpression(node); + + if (calleeName) { + const capitalization = getCap(calleeName); + const isAllowed = capitalization !== "upper" || isCapAllowed(capIsNewExceptions, node, calleeName, capIsNewExceptionPattern); + + if (!isAllowed) { + report(node, "upper"); + } + } + }; + } + + return listeners; + } +}; diff --git a/node_modules/eslint/lib/rules/new-parens.js b/node_modules/eslint/lib/rules/new-parens.js new file mode 100644 index 0000000..f5a98a4 --- /dev/null +++ b/node_modules/eslint/lib/rules/new-parens.js @@ -0,0 +1,99 @@ +/** + * @fileoverview Rule to flag when using constructor without parentheses + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce or disallow parentheses when invoking a constructor with no arguments", + recommended: false, + url: "https://eslint.org/docs/rules/new-parens" + }, + + fixable: "code", + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["always", "never"] + } + ], + minItems: 0, + maxItems: 1 + } + ] + }, + messages: { + missing: "Missing '()' invoking a constructor.", + unnecessary: "Unnecessary '()' invoking a constructor with no arguments." + } + }, + + create(context) { + const options = context.options; + const always = options[0] !== "never"; // Default is always + + const sourceCode = context.getSourceCode(); + + return { + NewExpression(node) { + if (node.arguments.length !== 0) { + return; // if there are arguments, there have to be parens + } + + const lastToken = sourceCode.getLastToken(node); + const hasLastParen = lastToken && astUtils.isClosingParenToken(lastToken); + + // `hasParens` is true only if the new expression ends with its own parens, e.g., new new foo() does not end with its own parens + const hasParens = hasLastParen && + astUtils.isOpeningParenToken(sourceCode.getTokenBefore(lastToken)) && + node.callee.range[1] < node.range[1]; + + if (always) { + if (!hasParens) { + context.report({ + node, + messageId: "missing", + fix: fixer => fixer.insertTextAfter(node, "()") + }); + } + } else { + if (hasParens) { + context.report({ + node, + messageId: "unnecessary", + fix: fixer => [ + fixer.remove(sourceCode.getTokenBefore(lastToken)), + fixer.remove(lastToken), + fixer.insertTextBefore(node, "("), + fixer.insertTextAfter(node, ")") + ] + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/newline-after-var.js b/node_modules/eslint/lib/rules/newline-after-var.js new file mode 100644 index 0000000..2b4d858 --- /dev/null +++ b/node_modules/eslint/lib/rules/newline-after-var.js @@ -0,0 +1,255 @@ +/** + * @fileoverview Rule to check empty newline after "var" statement + * @author Gopal Venkatesan + * @deprecated in ESLint v4.0.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow an empty line after variable declarations", + recommended: false, + url: "https://eslint.org/docs/rules/newline-after-var" + }, + schema: [ + { + enum: ["never", "always"] + } + ], + fixable: "whitespace", + messages: { + expected: "Expected blank line after variable declarations.", + unexpected: "Unexpected blank line after variable declarations." + }, + + deprecated: true, + + replacedBy: ["padding-line-between-statements"] + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + // Default `mode` to "always". + const mode = context.options[0] === "never" ? "never" : "always"; + + // Cache starting and ending line numbers of comments for faster lookup + const commentEndLine = sourceCode.getAllComments().reduce((result, token) => { + result[token.loc.start.line] = token.loc.end.line; + return result; + }, {}); + + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Gets a token from the given node to compare line to the next statement. + * + * In general, the token is the last token of the node. However, the token is the second last token if the following conditions satisfy. + * + * - The last token is semicolon. + * - The semicolon is on a different line from the previous token of the semicolon. + * + * This behavior would address semicolon-less style code. e.g.: + * + * var foo = 1 + * + * ;(a || b).doSomething() + * @param {ASTNode} node The node to get. + * @returns {Token} The token to compare line to the next statement. + */ + function getLastToken(node) { + const lastToken = sourceCode.getLastToken(node); + + if (lastToken.type === "Punctuator" && lastToken.value === ";") { + const prevToken = sourceCode.getTokenBefore(lastToken); + + if (prevToken.loc.end.line !== lastToken.loc.start.line) { + return prevToken; + } + } + + return lastToken; + } + + /** + * Determine if provided keyword is a variable declaration + * @private + * @param {string} keyword keyword to test + * @returns {boolean} True if `keyword` is a type of var + */ + function isVar(keyword) { + return keyword === "var" || keyword === "let" || keyword === "const"; + } + + /** + * Determine if provided keyword is a variant of for specifiers + * @private + * @param {string} keyword keyword to test + * @returns {boolean} True if `keyword` is a variant of for specifier + */ + function isForTypeSpecifier(keyword) { + return keyword === "ForStatement" || keyword === "ForInStatement" || keyword === "ForOfStatement"; + } + + /** + * Determine if provided keyword is an export specifiers + * @private + * @param {string} nodeType nodeType to test + * @returns {boolean} True if `nodeType` is an export specifier + */ + function isExportSpecifier(nodeType) { + return nodeType === "ExportNamedDeclaration" || nodeType === "ExportSpecifier" || + nodeType === "ExportDefaultDeclaration" || nodeType === "ExportAllDeclaration"; + } + + /** + * Determine if provided node is the last of their parent block. + * @private + * @param {ASTNode} node node to test + * @returns {boolean} True if `node` is last of their parent block. + */ + function isLastNode(node) { + const token = sourceCode.getTokenAfter(node); + + return !token || (token.type === "Punctuator" && token.value === "}"); + } + + /** + * Gets the last line of a group of consecutive comments + * @param {number} commentStartLine The starting line of the group + * @returns {number} The number of the last comment line of the group + */ + function getLastCommentLineOfBlock(commentStartLine) { + const currentCommentEnd = commentEndLine[commentStartLine]; + + return commentEndLine[currentCommentEnd + 1] ? getLastCommentLineOfBlock(currentCommentEnd + 1) : currentCommentEnd; + } + + /** + * Determine if a token starts more than one line after a comment ends + * @param {token} token The token being checked + * @param {integer} commentStartLine The line number on which the comment starts + * @returns {boolean} True if `token` does not start immediately after a comment + */ + function hasBlankLineAfterComment(token, commentStartLine) { + return token.loc.start.line > getLastCommentLineOfBlock(commentStartLine) + 1; + } + + /** + * Checks that a blank line exists after a variable declaration when mode is + * set to "always", or checks that there is no blank line when mode is set + * to "never" + * @private + * @param {ASTNode} node `VariableDeclaration` node to test + * @returns {void} + */ + function checkForBlankLine(node) { + + /* + * lastToken is the last token on the node's line. It will usually also be the last token of the node, but it will + * sometimes be second-last if there is a semicolon on a different line. + */ + const lastToken = getLastToken(node), + + /* + * If lastToken is the last token of the node, nextToken should be the token after the node. Otherwise, nextToken + * is the last token of the node. + */ + nextToken = lastToken === sourceCode.getLastToken(node) ? sourceCode.getTokenAfter(node) : sourceCode.getLastToken(node), + nextLineNum = lastToken.loc.end.line + 1; + + // Ignore if there is no following statement + if (!nextToken) { + return; + } + + // Ignore if parent of node is a for variant + if (isForTypeSpecifier(node.parent.type)) { + return; + } + + // Ignore if parent of node is an export specifier + if (isExportSpecifier(node.parent.type)) { + return; + } + + /* + * Some coding styles use multiple `var` statements, so do nothing if + * the next token is a `var` statement. + */ + if (nextToken.type === "Keyword" && isVar(nextToken.value)) { + return; + } + + // Ignore if it is last statement in a block + if (isLastNode(node)) { + return; + } + + // Next statement is not a `var`... + const noNextLineToken = nextToken.loc.start.line > nextLineNum; + const hasNextLineComment = (typeof commentEndLine[nextLineNum] !== "undefined"); + + if (mode === "never" && noNextLineToken && !hasNextLineComment) { + context.report({ + node, + messageId: "unexpected", + data: { identifier: node.name }, + fix(fixer) { + const linesBetween = sourceCode.getText().slice(lastToken.range[1], nextToken.range[0]).split(astUtils.LINEBREAK_MATCHER); + + return fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], `${linesBetween.slice(0, -1).join("")}\n${linesBetween[linesBetween.length - 1]}`); + } + }); + } + + // Token on the next line, or comment without blank line + if ( + mode === "always" && ( + !noNextLineToken || + hasNextLineComment && !hasBlankLineAfterComment(nextToken, nextLineNum) + ) + ) { + context.report({ + node, + messageId: "expected", + data: { identifier: node.name }, + fix(fixer) { + if ((noNextLineToken ? getLastCommentLineOfBlock(nextLineNum) : lastToken.loc.end.line) === nextToken.loc.start.line) { + return fixer.insertTextBefore(nextToken, "\n\n"); + } + + return fixer.insertTextBeforeRange([nextToken.range[0] - nextToken.loc.start.column, nextToken.range[1]], "\n"); + } + }); + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + VariableDeclaration: checkForBlankLine + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/newline-before-return.js b/node_modules/eslint/lib/rules/newline-before-return.js new file mode 100644 index 0000000..007d942 --- /dev/null +++ b/node_modules/eslint/lib/rules/newline-before-return.js @@ -0,0 +1,217 @@ +/** + * @fileoverview Rule to require newlines before `return` statement + * @author Kai Cataldo + * @deprecated in ESLint v4.0.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require an empty line before `return` statements", + recommended: false, + url: "https://eslint.org/docs/rules/newline-before-return" + }, + + fixable: "whitespace", + schema: [], + messages: { + expected: "Expected newline before return statement." + }, + + deprecated: true, + replacedBy: ["padding-line-between-statements"] + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Tests whether node is preceded by supplied tokens + * @param {ASTNode} node node to check + * @param {Array} testTokens array of tokens to test against + * @returns {boolean} Whether or not the node is preceded by one of the supplied tokens + * @private + */ + function isPrecededByTokens(node, testTokens) { + const tokenBefore = sourceCode.getTokenBefore(node); + + return testTokens.includes(tokenBefore.value); + } + + /** + * Checks whether node is the first node after statement or in block + * @param {ASTNode} node node to check + * @returns {boolean} Whether or not the node is the first node after statement or in block + * @private + */ + function isFirstNode(node) { + const parentType = node.parent.type; + + if (node.parent.body) { + return Array.isArray(node.parent.body) + ? node.parent.body[0] === node + : node.parent.body === node; + } + + if (parentType === "IfStatement") { + return isPrecededByTokens(node, ["else", ")"]); + } + if (parentType === "DoWhileStatement") { + return isPrecededByTokens(node, ["do"]); + } + if (parentType === "SwitchCase") { + return isPrecededByTokens(node, [":"]); + } + return isPrecededByTokens(node, [")"]); + + } + + /** + * Returns the number of lines of comments that precede the node + * @param {ASTNode} node node to check for overlapping comments + * @param {number} lineNumTokenBefore line number of previous token, to check for overlapping comments + * @returns {number} Number of lines of comments that precede the node + * @private + */ + function calcCommentLines(node, lineNumTokenBefore) { + const comments = sourceCode.getCommentsBefore(node); + let numLinesComments = 0; + + if (!comments.length) { + return numLinesComments; + } + + comments.forEach(comment => { + numLinesComments++; + + if (comment.type === "Block") { + numLinesComments += comment.loc.end.line - comment.loc.start.line; + } + + // avoid counting lines with inline comments twice + if (comment.loc.start.line === lineNumTokenBefore) { + numLinesComments--; + } + + if (comment.loc.end.line === node.loc.start.line) { + numLinesComments--; + } + }); + + return numLinesComments; + } + + /** + * Returns the line number of the token before the node that is passed in as an argument + * @param {ASTNode} node The node to use as the start of the calculation + * @returns {number} Line number of the token before `node` + * @private + */ + function getLineNumberOfTokenBefore(node) { + const tokenBefore = sourceCode.getTokenBefore(node); + let lineNumTokenBefore; + + /** + * Global return (at the beginning of a script) is a special case. + * If there is no token before `return`, then we expect no line + * break before the return. Comments are allowed to occupy lines + * before the global return, just no blank lines. + * Setting lineNumTokenBefore to zero in that case results in the + * desired behavior. + */ + if (tokenBefore) { + lineNumTokenBefore = tokenBefore.loc.end.line; + } else { + lineNumTokenBefore = 0; // global return at beginning of script + } + + return lineNumTokenBefore; + } + + /** + * Checks whether node is preceded by a newline + * @param {ASTNode} node node to check + * @returns {boolean} Whether or not the node is preceded by a newline + * @private + */ + function hasNewlineBefore(node) { + const lineNumNode = node.loc.start.line; + const lineNumTokenBefore = getLineNumberOfTokenBefore(node); + const commentLines = calcCommentLines(node, lineNumTokenBefore); + + return (lineNumNode - lineNumTokenBefore - commentLines) > 1; + } + + /** + * Checks whether it is safe to apply a fix to a given return statement. + * + * The fix is not considered safe if the given return statement has leading comments, + * as we cannot safely determine if the newline should be added before or after the comments. + * For more information, see: https://github.com/eslint/eslint/issues/5958#issuecomment-222767211 + * @param {ASTNode} node The return statement node to check. + * @returns {boolean} `true` if it can fix the node. + * @private + */ + function canFix(node) { + const leadingComments = sourceCode.getCommentsBefore(node); + const lastLeadingComment = leadingComments[leadingComments.length - 1]; + const tokenBefore = sourceCode.getTokenBefore(node); + + if (leadingComments.length === 0) { + return true; + } + + /* + * if the last leading comment ends in the same line as the previous token and + * does not share a line with the `return` node, we can consider it safe to fix. + * Example: + * function a() { + * var b; //comment + * return; + * } + */ + if (lastLeadingComment.loc.end.line === tokenBefore.loc.end.line && + lastLeadingComment.loc.end.line !== node.loc.start.line) { + return true; + } + + return false; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + ReturnStatement(node) { + if (!isFirstNode(node) && !hasNewlineBefore(node)) { + context.report({ + node, + messageId: "expected", + fix(fixer) { + if (canFix(node)) { + const tokenBefore = sourceCode.getTokenBefore(node); + const newlines = node.loc.start.line === tokenBefore.loc.end.line ? "\n\n" : "\n"; + + return fixer.insertTextBefore(node, newlines); + } + return null; + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/newline-per-chained-call.js b/node_modules/eslint/lib/rules/newline-per-chained-call.js new file mode 100644 index 0000000..83844a5 --- /dev/null +++ b/node_modules/eslint/lib/rules/newline-per-chained-call.js @@ -0,0 +1,123 @@ +/** + * @fileoverview Rule to ensure newline per method call when chaining calls + * @author Rajendra Patil + * @author Burak Yigit Kaya + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require a newline after each call in a method chain", + recommended: false, + url: "https://eslint.org/docs/rules/newline-per-chained-call" + }, + + fixable: "whitespace", + + schema: [{ + type: "object", + properties: { + ignoreChainWithDepth: { + type: "integer", + minimum: 1, + maximum: 10, + default: 2 + } + }, + additionalProperties: false + }], + messages: { + expected: "Expected line break before `{{callee}}`." + } + }, + + create(context) { + + const options = context.options[0] || {}, + ignoreChainWithDepth = options.ignoreChainWithDepth || 2; + + const sourceCode = context.getSourceCode(); + + /** + * Get the prefix of a given MemberExpression node. + * If the MemberExpression node is a computed value it returns a + * left bracket. If not it returns a period. + * @param {ASTNode} node A MemberExpression node to get + * @returns {string} The prefix of the node. + */ + function getPrefix(node) { + if (node.computed) { + if (node.optional) { + return "?.["; + } + return "["; + } + if (node.optional) { + return "?."; + } + return "."; + } + + /** + * Gets the property text of a given MemberExpression node. + * If the text is multiline, this returns only the first line. + * @param {ASTNode} node A MemberExpression node to get. + * @returns {string} The property text of the node. + */ + function getPropertyText(node) { + const prefix = getPrefix(node); + const lines = sourceCode.getText(node.property).split(astUtils.LINEBREAK_MATCHER); + const suffix = node.computed && lines.length === 1 ? "]" : ""; + + return prefix + lines[0] + suffix; + } + + return { + "CallExpression:exit"(node) { + const callee = astUtils.skipChainExpression(node.callee); + + if (callee.type !== "MemberExpression") { + return; + } + + let parent = astUtils.skipChainExpression(callee.object); + let depth = 1; + + while (parent && parent.callee) { + depth += 1; + parent = astUtils.skipChainExpression(astUtils.skipChainExpression(parent.callee).object); + } + + if (depth > ignoreChainWithDepth && astUtils.isTokenOnSameLine(callee.object, callee.property)) { + const firstTokenAfterObject = sourceCode.getTokenAfter(callee.object, astUtils.isNotClosingParenToken); + + context.report({ + node: callee.property, + loc: { + start: firstTokenAfterObject.loc.start, + end: callee.loc.end + }, + messageId: "expected", + data: { + callee: getPropertyText(callee) + }, + fix(fixer) { + return fixer.insertTextBefore(firstTokenAfterObject, "\n"); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-alert.js b/node_modules/eslint/lib/rules/no-alert.js new file mode 100644 index 0000000..ba0125c --- /dev/null +++ b/node_modules/eslint/lib/rules/no-alert.js @@ -0,0 +1,136 @@ +/** + * @fileoverview Rule to flag use of alert, confirm, prompt + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { + getStaticPropertyName: getPropertyName, + getVariableByName, + skipChainExpression +} = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks if the given name is a prohibited identifier. + * @param {string} name The name to check + * @returns {boolean} Whether or not the name is prohibited. + */ +function isProhibitedIdentifier(name) { + return /^(alert|confirm|prompt)$/u.test(name); +} + +/** + * Finds the eslint-scope reference in the given scope. + * @param {Object} scope The scope to search. + * @param {ASTNode} node The identifier node. + * @returns {Reference|null} Returns the found reference or null if none were found. + */ +function findReference(scope, node) { + const references = scope.references.filter(reference => reference.identifier.range[0] === node.range[0] && + reference.identifier.range[1] === node.range[1]); + + if (references.length === 1) { + return references[0]; + } + return null; +} + +/** + * Checks if the given identifier node is shadowed in the given scope. + * @param {Object} scope The current scope. + * @param {string} node The identifier node to check + * @returns {boolean} Whether or not the name is shadowed. + */ +function isShadowed(scope, node) { + const reference = findReference(scope, node); + + return reference && reference.resolved && reference.resolved.defs.length > 0; +} + +/** + * Checks if the given identifier node is a ThisExpression in the global scope or the global window property. + * @param {Object} scope The current scope. + * @param {string} node The identifier node to check + * @returns {boolean} Whether or not the node is a reference to the global object. + */ +function isGlobalThisReferenceOrGlobalWindow(scope, node) { + if (scope.type === "global" && node.type === "ThisExpression") { + return true; + } + if ( + node.type === "Identifier" && + ( + node.name === "window" || + (node.name === "globalThis" && getVariableByName(scope, "globalThis")) + ) + ) { + return !isShadowed(scope, node); + } + + return false; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of `alert`, `confirm`, and `prompt`", + recommended: false, + url: "https://eslint.org/docs/rules/no-alert" + }, + + schema: [], + + messages: { + unexpected: "Unexpected {{name}}." + } + }, + + create(context) { + return { + CallExpression(node) { + const callee = skipChainExpression(node.callee), + currentScope = context.getScope(); + + // without window. + if (callee.type === "Identifier") { + const name = callee.name; + + if (!isShadowed(currentScope, callee) && isProhibitedIdentifier(callee.name)) { + context.report({ + node, + messageId: "unexpected", + data: { name } + }); + } + + } else if (callee.type === "MemberExpression" && isGlobalThisReferenceOrGlobalWindow(currentScope, callee.object)) { + const name = getPropertyName(callee); + + if (isProhibitedIdentifier(name)) { + context.report({ + node, + messageId: "unexpected", + data: { name } + }); + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-array-constructor.js b/node_modules/eslint/lib/rules/no-array-constructor.js new file mode 100644 index 0000000..93b79ab --- /dev/null +++ b/node_modules/eslint/lib/rules/no-array-constructor.js @@ -0,0 +1,54 @@ +/** + * @fileoverview Disallow construction of dense arrays using the Array constructor + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `Array` constructors", + recommended: false, + url: "https://eslint.org/docs/rules/no-array-constructor" + }, + + schema: [], + + messages: { + preferLiteral: "The array literal notation [] is preferable." + } + }, + + create(context) { + + /** + * Disallow construction of dense arrays using the Array constructor + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function check(node) { + if ( + node.arguments.length !== 1 && + node.callee.type === "Identifier" && + node.callee.name === "Array" + ) { + context.report({ node, messageId: "preferLiteral" }); + } + } + + return { + CallExpression: check, + NewExpression: check + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-async-promise-executor.js b/node_modules/eslint/lib/rules/no-async-promise-executor.js new file mode 100644 index 0000000..52c5186 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-async-promise-executor.js @@ -0,0 +1,39 @@ +/** + * @fileoverview disallow using an async function as a Promise executor + * @author Teddy Katz + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow using an async function as a Promise executor", + recommended: true, + url: "https://eslint.org/docs/rules/no-async-promise-executor" + }, + + fixable: null, + schema: [], + messages: { + async: "Promise executor functions should not be async." + } + }, + + create(context) { + return { + "NewExpression[callee.name='Promise'][arguments.0.async=true]"(node) { + context.report({ + node: context.getSourceCode().getFirstToken(node.arguments[0], token => token.value === "async"), + messageId: "async" + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-await-in-loop.js b/node_modules/eslint/lib/rules/no-await-in-loop.js new file mode 100644 index 0000000..905a793 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-await-in-loop.js @@ -0,0 +1,106 @@ +/** + * @fileoverview Rule to disallow uses of await inside of loops. + * @author Nat Mote (nmote) + */ +"use strict"; + +/** + * Check whether it should stop traversing ancestors at the given node. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if it should stop traversing. + */ +function isBoundary(node) { + const t = node.type; + + return ( + t === "FunctionDeclaration" || + t === "FunctionExpression" || + t === "ArrowFunctionExpression" || + + /* + * Don't report the await expressions on for-await-of loop since it's + * asynchronous iteration intentionally. + */ + (t === "ForOfStatement" && node.await === true) + ); +} + +/** + * Check whether the given node is in loop. + * @param {ASTNode} node A node to check. + * @param {ASTNode} parent A parent node to check. + * @returns {boolean} `true` if the node is in loop. + */ +function isLooped(node, parent) { + switch (parent.type) { + case "ForStatement": + return ( + node === parent.test || + node === parent.update || + node === parent.body + ); + + case "ForOfStatement": + case "ForInStatement": + return node === parent.body; + + case "WhileStatement": + case "DoWhileStatement": + return node === parent.test || node === parent.body; + + default: + return false; + } +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow `await` inside of loops", + recommended: false, + url: "https://eslint.org/docs/rules/no-await-in-loop" + }, + + schema: [], + + messages: { + unexpectedAwait: "Unexpected `await` inside a loop." + } + }, + create(context) { + + /** + * Validate an await expression. + * @param {ASTNode} awaitNode An AwaitExpression or ForOfStatement node to validate. + * @returns {void} + */ + function validate(awaitNode) { + if (awaitNode.type === "ForOfStatement" && !awaitNode.await) { + return; + } + + let node = awaitNode; + let parent = node.parent; + + while (parent && !isBoundary(parent)) { + if (isLooped(node, parent)) { + context.report({ + node: awaitNode, + messageId: "unexpectedAwait" + }); + return; + } + node = parent; + parent = parent.parent; + } + } + + return { + AwaitExpression: validate, + ForOfStatement: validate + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-bitwise.js b/node_modules/eslint/lib/rules/no-bitwise.js new file mode 100644 index 0000000..172ea04 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-bitwise.js @@ -0,0 +1,119 @@ +/** + * @fileoverview Rule to flag bitwise identifiers + * @author Nicholas C. Zakas + */ + +"use strict"; + +/* + * + * Set of bitwise operators. + * + */ +const BITWISE_OPERATORS = [ + "^", "|", "&", "<<", ">>", ">>>", + "^=", "|=", "&=", "<<=", ">>=", ">>>=", + "~" +]; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow bitwise operators", + recommended: false, + url: "https://eslint.org/docs/rules/no-bitwise" + }, + + schema: [ + { + type: "object", + properties: { + allow: { + type: "array", + items: { + enum: BITWISE_OPERATORS + }, + uniqueItems: true + }, + int32Hint: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpected: "Unexpected use of '{{operator}}'." + } + }, + + create(context) { + const options = context.options[0] || {}; + const allowed = options.allow || []; + const int32Hint = options.int32Hint === true; + + /** + * Reports an unexpected use of a bitwise operator. + * @param {ASTNode} node Node which contains the bitwise operator. + * @returns {void} + */ + function report(node) { + context.report({ node, messageId: "unexpected", data: { operator: node.operator } }); + } + + /** + * Checks if the given node has a bitwise operator. + * @param {ASTNode} node The node to check. + * @returns {boolean} Whether or not the node has a bitwise operator. + */ + function hasBitwiseOperator(node) { + return BITWISE_OPERATORS.includes(node.operator); + } + + /** + * Checks if exceptions were provided, e.g. `{ allow: ['~', '|'] }`. + * @param {ASTNode} node The node to check. + * @returns {boolean} Whether or not the node has a bitwise operator. + */ + function allowedOperator(node) { + return allowed.includes(node.operator); + } + + /** + * Checks if the given bitwise operator is used for integer typecasting, i.e. "|0" + * @param {ASTNode} node The node to check. + * @returns {boolean} whether the node is used in integer typecasting. + */ + function isInt32Hint(node) { + return int32Hint && node.operator === "|" && node.right && + node.right.type === "Literal" && node.right.value === 0; + } + + /** + * Report if the given node contains a bitwise operator. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkNodeForBitwiseOperator(node) { + if (hasBitwiseOperator(node) && !allowedOperator(node) && !isInt32Hint(node)) { + report(node); + } + } + + return { + AssignmentExpression: checkNodeForBitwiseOperator, + BinaryExpression: checkNodeForBitwiseOperator, + UnaryExpression: checkNodeForBitwiseOperator + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-buffer-constructor.js b/node_modules/eslint/lib/rules/no-buffer-constructor.js new file mode 100644 index 0000000..9300392 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-buffer-constructor.js @@ -0,0 +1,50 @@ +/** + * @fileoverview disallow use of the Buffer() constructor + * @author Teddy Katz + * @deprecated in ESLint v7.0.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "problem", + + docs: { + description: "Disallow use of the `Buffer()` constructor", + recommended: false, + url: "https://eslint.org/docs/rules/no-buffer-constructor" + }, + + schema: [], + + messages: { + deprecated: "{{expr}} is deprecated. Use Buffer.from(), Buffer.alloc(), or Buffer.allocUnsafe() instead." + } + }, + + create(context) { + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + "CallExpression[callee.name='Buffer'], NewExpression[callee.name='Buffer']"(node) { + context.report({ + node, + messageId: "deprecated", + data: { expr: node.type === "CallExpression" ? "Buffer()" : "new Buffer()" } + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-caller.js b/node_modules/eslint/lib/rules/no-caller.js new file mode 100644 index 0000000..884a02b --- /dev/null +++ b/node_modules/eslint/lib/rules/no-caller.js @@ -0,0 +1,46 @@ +/** + * @fileoverview Rule to flag use of arguments.callee and arguments.caller. + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of `arguments.caller` or `arguments.callee`", + recommended: false, + url: "https://eslint.org/docs/rules/no-caller" + }, + + schema: [], + + messages: { + unexpected: "Avoid arguments.{{prop}}." + } + }, + + create(context) { + + return { + + MemberExpression(node) { + const objectName = node.object.name, + propertyName = node.property.name; + + if (objectName === "arguments" && !node.computed && propertyName && propertyName.match(/^calle[er]$/u)) { + context.report({ node, messageId: "unexpected", data: { prop: propertyName } }); + } + + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-case-declarations.js b/node_modules/eslint/lib/rules/no-case-declarations.js new file mode 100644 index 0000000..6557ba3 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-case-declarations.js @@ -0,0 +1,64 @@ +/** + * @fileoverview Rule to flag use of an lexical declarations inside a case clause + * @author Erik Arvidsson + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow lexical declarations in case clauses", + recommended: true, + url: "https://eslint.org/docs/rules/no-case-declarations" + }, + + schema: [], + + messages: { + unexpected: "Unexpected lexical declaration in case block." + } + }, + + create(context) { + + /** + * Checks whether or not a node is a lexical declaration. + * @param {ASTNode} node A direct child statement of a switch case. + * @returns {boolean} Whether or not the node is a lexical declaration. + */ + function isLexicalDeclaration(node) { + switch (node.type) { + case "FunctionDeclaration": + case "ClassDeclaration": + return true; + case "VariableDeclaration": + return node.kind !== "var"; + default: + return false; + } + } + + return { + SwitchCase(node) { + for (let i = 0; i < node.consequent.length; i++) { + const statement = node.consequent[i]; + + if (isLexicalDeclaration(statement)) { + context.report({ + node: statement, + messageId: "unexpected" + }); + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-catch-shadow.js b/node_modules/eslint/lib/rules/no-catch-shadow.js new file mode 100644 index 0000000..49f1ba9 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-catch-shadow.js @@ -0,0 +1,80 @@ +/** + * @fileoverview Rule to flag variable leak in CatchClauses in IE 8 and earlier + * @author Ian Christian Myers + * @deprecated in ESLint v5.1.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `catch` clause parameters from shadowing variables in the outer scope", + recommended: false, + url: "https://eslint.org/docs/rules/no-catch-shadow" + }, + + replacedBy: ["no-shadow"], + + deprecated: true, + schema: [], + + messages: { + mutable: "Value of '{{name}}' may be overwritten in IE 8 and earlier." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Check if the parameters are been shadowed + * @param {Object} scope current scope + * @param {string} name parameter name + * @returns {boolean} True is its been shadowed + */ + function paramIsShadowing(scope, name) { + return astUtils.getVariableByName(scope, name) !== null; + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + + "CatchClause[param!=null]"(node) { + let scope = context.getScope(); + + /* + * When ecmaVersion >= 6, CatchClause creates its own scope + * so start from one upper scope to exclude the current node + */ + if (scope.block === node) { + scope = scope.upper; + } + + if (paramIsShadowing(scope, node.param.name)) { + context.report({ node, messageId: "mutable", data: { name: node.param.name } }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-class-assign.js b/node_modules/eslint/lib/rules/no-class-assign.js new file mode 100644 index 0000000..32e48e2 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-class-assign.js @@ -0,0 +1,61 @@ +/** + * @fileoverview A rule to disallow modifying variables of class declarations + * @author Toru Nagashima + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow reassigning class members", + recommended: true, + url: "https://eslint.org/docs/rules/no-class-assign" + }, + + schema: [], + + messages: { + class: "'{{name}}' is a class." + } + }, + + create(context) { + + /** + * Finds and reports references that are non initializer and writable. + * @param {Variable} variable A variable to check. + * @returns {void} + */ + function checkVariable(variable) { + astUtils.getModifyingReferences(variable.references).forEach(reference => { + context.report({ node: reference.identifier, messageId: "class", data: { name: reference.identifier.name } }); + + }); + } + + /** + * Finds and reports references that are non initializer and writable. + * @param {ASTNode} node A ClassDeclaration/ClassExpression node to check. + * @returns {void} + */ + function checkForClass(node) { + context.getDeclaredVariables(node).forEach(checkVariable); + } + + return { + ClassDeclaration: checkForClass, + ClassExpression: checkForClass + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-compare-neg-zero.js b/node_modules/eslint/lib/rules/no-compare-neg-zero.js new file mode 100644 index 0000000..9715c2f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-compare-neg-zero.js @@ -0,0 +1,60 @@ +/** + * @fileoverview The rule should warn against code that tries to compare against -0. + * @author Aladdin-ADD + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow comparing against -0", + recommended: true, + url: "https://eslint.org/docs/rules/no-compare-neg-zero" + }, + + fixable: null, + schema: [], + + messages: { + unexpected: "Do not use the '{{operator}}' operator to compare against -0." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Checks a given node is -0 + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is -0. + */ + function isNegZero(node) { + return node.type === "UnaryExpression" && node.operator === "-" && node.argument.type === "Literal" && node.argument.value === 0; + } + const OPERATORS_TO_CHECK = new Set([">", ">=", "<", "<=", "==", "===", "!=", "!=="]); + + return { + BinaryExpression(node) { + if (OPERATORS_TO_CHECK.has(node.operator)) { + if (isNegZero(node.left) || isNegZero(node.right)) { + context.report({ + node, + messageId: "unexpected", + data: { operator: node.operator } + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-cond-assign.js b/node_modules/eslint/lib/rules/no-cond-assign.js new file mode 100644 index 0000000..59efb34 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-cond-assign.js @@ -0,0 +1,159 @@ +/** + * @fileoverview Rule to flag assignment in a conditional statement's test expression + * @author Stephen Murray + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const TEST_CONDITION_PARENT_TYPES = new Set(["IfStatement", "WhileStatement", "DoWhileStatement", "ForStatement", "ConditionalExpression"]); + +const NODE_DESCRIPTIONS = { + DoWhileStatement: "a 'do...while' statement", + ForStatement: "a 'for' statement", + IfStatement: "an 'if' statement", + WhileStatement: "a 'while' statement" +}; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow assignment operators in conditional expressions", + recommended: true, + url: "https://eslint.org/docs/rules/no-cond-assign" + }, + + schema: [ + { + enum: ["except-parens", "always"] + } + ], + + messages: { + unexpected: "Unexpected assignment within {{type}}.", + + // must match JSHint's error message + missing: "Expected a conditional expression and instead saw an assignment." + } + }, + + create(context) { + + const prohibitAssign = (context.options[0] || "except-parens"); + + const sourceCode = context.getSourceCode(); + + /** + * Check whether an AST node is the test expression for a conditional statement. + * @param {!Object} node The node to test. + * @returns {boolean} `true` if the node is the text expression for a conditional statement; otherwise, `false`. + */ + function isConditionalTestExpression(node) { + return node.parent && + TEST_CONDITION_PARENT_TYPES.has(node.parent.type) && + node === node.parent.test; + } + + /** + * Given an AST node, perform a bottom-up search for the first ancestor that represents a conditional statement. + * @param {!Object} node The node to use at the start of the search. + * @returns {?Object} The closest ancestor node that represents a conditional statement. + */ + function findConditionalAncestor(node) { + let currentAncestor = node; + + do { + if (isConditionalTestExpression(currentAncestor)) { + return currentAncestor.parent; + } + } while ((currentAncestor = currentAncestor.parent) && !astUtils.isFunction(currentAncestor)); + + return null; + } + + /** + * Check whether the code represented by an AST node is enclosed in two sets of parentheses. + * @param {!Object} node The node to test. + * @returns {boolean} `true` if the code is enclosed in two sets of parentheses; otherwise, `false`. + */ + function isParenthesisedTwice(node) { + const previousToken = sourceCode.getTokenBefore(node, 1), + nextToken = sourceCode.getTokenAfter(node, 1); + + return astUtils.isParenthesised(sourceCode, node) && + previousToken && astUtils.isOpeningParenToken(previousToken) && previousToken.range[1] <= node.range[0] && + astUtils.isClosingParenToken(nextToken) && nextToken.range[0] >= node.range[1]; + } + + /** + * Check a conditional statement's test expression for top-level assignments that are not enclosed in parentheses. + * @param {!Object} node The node for the conditional statement. + * @returns {void} + */ + function testForAssign(node) { + if (node.test && + (node.test.type === "AssignmentExpression") && + (node.type === "ForStatement" + ? !astUtils.isParenthesised(sourceCode, node.test) + : !isParenthesisedTwice(node.test) + ) + ) { + + context.report({ + node: node.test, + messageId: "missing" + }); + } + } + + /** + * Check whether an assignment expression is descended from a conditional statement's test expression. + * @param {!Object} node The node for the assignment expression. + * @returns {void} + */ + function testForConditionalAncestor(node) { + const ancestor = findConditionalAncestor(node); + + if (ancestor) { + context.report({ + node, + messageId: "unexpected", + data: { + type: NODE_DESCRIPTIONS[ancestor.type] || ancestor.type + } + }); + } + } + + if (prohibitAssign === "always") { + return { + AssignmentExpression: testForConditionalAncestor + }; + } + + return { + DoWhileStatement: testForAssign, + ForStatement: testForAssign, + IfStatement: testForAssign, + WhileStatement: testForAssign, + ConditionalExpression: testForAssign + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-confusing-arrow.js b/node_modules/eslint/lib/rules/no-confusing-arrow.js new file mode 100644 index 0000000..d2b6641 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-confusing-arrow.js @@ -0,0 +1,89 @@ +/** + * @fileoverview A rule to warn against using arrow functions when they could be + * confused with comparisons + * @author Jxck + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils.js"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a node is a conditional expression. + * @param {ASTNode} node node to test + * @returns {boolean} `true` if the node is a conditional expression. + */ +function isConditional(node) { + return node && node.type === "ConditionalExpression"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow arrow functions where they could be confused with comparisons", + recommended: false, + url: "https://eslint.org/docs/rules/no-confusing-arrow" + }, + + fixable: "code", + + schema: [{ + type: "object", + properties: { + allowParens: { type: "boolean", default: true }, + onlyOneSimpleParam: { type: "boolean", default: false } + }, + additionalProperties: false + }], + + messages: { + confusing: "Arrow function used ambiguously with a conditional expression." + } + }, + + create(context) { + const config = context.options[0] || {}; + const allowParens = config.allowParens || (config.allowParens === void 0); + const onlyOneSimpleParam = config.onlyOneSimpleParam; + const sourceCode = context.getSourceCode(); + + + /** + * Reports if an arrow function contains an ambiguous conditional. + * @param {ASTNode} node A node to check and report. + * @returns {void} + */ + function checkArrowFunc(node) { + const body = node.body; + + if (isConditional(body) && + !(allowParens && astUtils.isParenthesised(sourceCode, body)) && + !(onlyOneSimpleParam && !(node.params.length === 1 && node.params[0].type === "Identifier"))) { + context.report({ + node, + messageId: "confusing", + fix(fixer) { + + // if `allowParens` is not set to true don't bother wrapping in parens + return allowParens && fixer.replaceText(node.body, `(${sourceCode.getText(node.body)})`); + } + }); + } + } + + return { + ArrowFunctionExpression: checkArrowFunc + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-console.js b/node_modules/eslint/lib/rules/no-console.js new file mode 100644 index 0000000..bad6b6f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-console.js @@ -0,0 +1,134 @@ +/** + * @fileoverview Rule to flag use of console object + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of `console`", + recommended: false, + url: "https://eslint.org/docs/rules/no-console" + }, + + schema: [ + { + type: "object", + properties: { + allow: { + type: "array", + items: { + type: "string" + }, + minItems: 1, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpected: "Unexpected console statement." + } + }, + + create(context) { + const options = context.options[0] || {}; + const allowed = options.allow || []; + + /** + * Checks whether the given reference is 'console' or not. + * @param {eslint-scope.Reference} reference The reference to check. + * @returns {boolean} `true` if the reference is 'console'. + */ + function isConsole(reference) { + const id = reference.identifier; + + return id && id.name === "console"; + } + + /** + * Checks whether the property name of the given MemberExpression node + * is allowed by options or not. + * @param {ASTNode} node The MemberExpression node to check. + * @returns {boolean} `true` if the property name of the node is allowed. + */ + function isAllowed(node) { + const propertyName = astUtils.getStaticPropertyName(node); + + return propertyName && allowed.includes(propertyName); + } + + /** + * Checks whether the given reference is a member access which is not + * allowed by options or not. + * @param {eslint-scope.Reference} reference The reference to check. + * @returns {boolean} `true` if the reference is a member access which + * is not allowed by options. + */ + function isMemberAccessExceptAllowed(reference) { + const node = reference.identifier; + const parent = node.parent; + + return ( + parent.type === "MemberExpression" && + parent.object === node && + !isAllowed(parent) + ); + } + + /** + * Reports the given reference as a violation. + * @param {eslint-scope.Reference} reference The reference to report. + * @returns {void} + */ + function report(reference) { + const node = reference.identifier.parent; + + context.report({ + node, + loc: node.loc, + messageId: "unexpected" + }); + } + + return { + "Program:exit"() { + const scope = context.getScope(); + const consoleVar = astUtils.getVariableByName(scope, "console"); + const shadowed = consoleVar && consoleVar.defs.length > 0; + + /* + * 'scope.through' includes all references to undefined + * variables. If the variable 'console' is not defined, it uses + * 'scope.through'. + */ + const references = consoleVar + ? consoleVar.references + : scope.through.filter(isConsole); + + if (!shadowed) { + references + .filter(isMemberAccessExceptAllowed) + .forEach(report); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-const-assign.js b/node_modules/eslint/lib/rules/no-const-assign.js new file mode 100644 index 0000000..55e40c8 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-const-assign.js @@ -0,0 +1,54 @@ +/** + * @fileoverview A rule to disallow modifying variables that are declared using `const` + * @author Toru Nagashima + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow reassigning `const` variables", + recommended: true, + url: "https://eslint.org/docs/rules/no-const-assign" + }, + + schema: [], + + messages: { + const: "'{{name}}' is constant." + } + }, + + create(context) { + + /** + * Finds and reports references that are non initializer and writable. + * @param {Variable} variable A variable to check. + * @returns {void} + */ + function checkVariable(variable) { + astUtils.getModifyingReferences(variable.references).forEach(reference => { + context.report({ node: reference.identifier, messageId: "const", data: { name: reference.identifier.name } }); + }); + } + + return { + VariableDeclaration(node) { + if (node.kind === "const") { + context.getDeclaredVariables(node).forEach(checkVariable); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-constant-binary-expression.js b/node_modules/eslint/lib/rules/no-constant-binary-expression.js new file mode 100644 index 0000000..dccfa2f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-constant-binary-expression.js @@ -0,0 +1,500 @@ +/** + * @fileoverview Rule to flag constant comparisons and logical expressions that always/never short circuit + * @author Jordan Eldredge + */ + +"use strict"; + +const globals = require("globals"); +const { isNullLiteral, isConstant, isReferenceToGlobalVariable, isLogicalAssignmentOperator } = require("./utils/ast-utils"); + +const NUMERIC_OR_STRING_BINARY_OPERATORS = new Set(["+", "-", "*", "/", "%", "|", "^", "&", "**", "<<", ">>", ">>>"]); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Test if an AST node has a statically knowable constant nullishness. Meaning, + * it will always resolve to a constant value of either: `null`, `undefined` + * or not `null` _or_ `undefined`. An expression that can vary between those + * three states at runtime would return `false`. + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The AST node being tested. + * @returns {boolean} Does `node` have constant nullishness? + */ +function hasConstantNullishness(scope, node) { + switch (node.type) { + case "ObjectExpression": // Objects are never nullish + case "ArrayExpression": // Arrays are never nullish + case "ArrowFunctionExpression": // Functions never nullish + case "FunctionExpression": // Functions are never nullish + case "ClassExpression": // Classes are never nullish + case "NewExpression": // Objects are never nullish + case "Literal": // Nullish, or non-nullish, literals never change + case "TemplateLiteral": // A string is never nullish + case "UpdateExpression": // Numbers are never nullish + case "BinaryExpression": // Numbers, strings, or booleans are never nullish + return true; + case "CallExpression": { + if (node.callee.type !== "Identifier") { + return false; + } + const functionName = node.callee.name; + + return (functionName === "Boolean" || functionName === "String" || functionName === "Number") && + isReferenceToGlobalVariable(scope, node.callee); + } + case "AssignmentExpression": + if (node.operator === "=") { + return hasConstantNullishness(scope, node.right); + } + + /* + * Handling short-circuiting assignment operators would require + * walking the scope. We won't attempt that (for now...) / + */ + if (isLogicalAssignmentOperator(node.operator)) { + return false; + } + + /* + * The remaining assignment expressions all result in a numeric or + * string (non-nullish) value: + * "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=" + */ + + return true; + case "UnaryExpression": + + /* + * "void" Always returns `undefined` + * "typeof" All types are strings, and thus non-nullish + * "!" Boolean is never nullish + * "delete" Returns a boolean, which is never nullish + * Math operators always return numbers or strings, neither of which + * are non-nullish "+", "-", "~" + */ + + return true; + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return hasConstantNullishness(scope, last); + } + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + +/** + * Test if an AST node is a boolean value that never changes. Specifically we + * test for: + * 1. Literal booleans (`true` or `false`) + * 2. Unary `!` expressions with a constant value + * 3. Constant booleans created via the `Boolean` global function + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The node to test + * @returns {boolean} Is `node` guaranteed to be a boolean? + */ +function isStaticBoolean(scope, node) { + switch (node.type) { + case "Literal": + return typeof node.value === "boolean"; + case "CallExpression": + return node.callee.type === "Identifier" && node.callee.name === "Boolean" && + isReferenceToGlobalVariable(scope, node.callee) && + (node.arguments.length === 0 || isConstant(scope, node.arguments[0], true)); + case "UnaryExpression": + return node.operator === "!" && isConstant(scope, node.argument, true); + default: + return false; + } +} + + +/** + * Test if an AST node will always give the same result when compared to a + * boolean value. Note that comparison to boolean values is different than + * truthiness. + * https://262.ecma-international.org/5.1/#sec-11.9.3 + * + * Javascript `==` operator works by converting the boolean to `1` (true) or + * `+0` (false) and then checks the values `==` equality to that number. + * @param {Scope} scope The scope in which node was found. + * @param {ASTNode} node The node to test. + * @returns {boolean} Will `node` always coerce to the same boolean value? + */ +function hasConstantLooseBooleanComparison(scope, node) { + switch (node.type) { + case "ObjectExpression": + case "ClassExpression": + + /** + * In theory objects like: + * + * `{toString: () => a}` + * `{valueOf: () => a}` + * + * Or a classes like: + * + * `class { static toString() { return a } }` + * `class { static valueOf() { return a } }` + * + * Are not constant verifiably when `inBooleanPosition` is + * false, but it's an edge case we've opted not to handle. + */ + return true; + case "ArrayExpression": { + const nonSpreadElements = node.elements.filter(e => + + // Elements can be `null` in sparse arrays: `[,,]`; + e !== null && e.type !== "SpreadElement"); + + + /* + * Possible future direction if needed: We could check if the + * single value would result in variable boolean comparison. + * For now we will err on the side of caution since `[x]` could + * evaluate to `[0]` or `[1]`. + */ + return node.elements.length === 0 || nonSpreadElements.length > 1; + } + case "ArrowFunctionExpression": + case "FunctionExpression": + return true; + case "UnaryExpression": + if (node.operator === "void" || // Always returns `undefined` + node.operator === "typeof" // All `typeof` strings, when coerced to number, are not 0 or 1. + ) { + return true; + } + if (node.operator === "!") { + return isConstant(scope, node.argument, true); + } + + /* + * We won't try to reason about +, -, ~, or delete + * In theory, for the mathematical operators, we could look at the + * argument and try to determine if it coerces to a constant numeric + * value. + */ + return false; + case "NewExpression": // Objects might have custom `.valueOf` or `.toString`. + return false; + case "CallExpression": { + if (node.callee.type === "Identifier" && + node.callee.name === "Boolean" && + isReferenceToGlobalVariable(scope, node.callee) + ) { + return node.arguments.length === 0 || isConstant(scope, node.arguments[0], true); + } + return false; + } + case "Literal": // True or false, literals never change + return true; + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + case "TemplateLiteral": + + /* + * In theory we could try to check if the quasi are sufficient to + * prove that the expression will always be true, but it would be + * tricky to get right. For example: `000.${foo}000` + */ + return node.expressions.length === 0; + case "AssignmentExpression": + if (node.operator === "=") { + return hasConstantLooseBooleanComparison(scope, node.right); + } + + /* + * Handling short-circuiting assignment operators would require + * walking the scope. We won't attempt that (for now...) + * + * The remaining assignment expressions all result in a numeric or + * string (non-nullish) values which could be truthy or falsy: + * "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=" + */ + return false; + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return hasConstantLooseBooleanComparison(scope, last); + } + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + + +/** + * Test if an AST node will always give the same result when _strictly_ compared + * to a boolean value. This can happen if the expression can never be boolean, or + * if it is always the same boolean value. + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The node to test + * @returns {boolean} Will `node` always give the same result when compared to a + * static boolean value? + */ +function hasConstantStrictBooleanComparison(scope, node) { + switch (node.type) { + case "ObjectExpression": // Objects are not booleans + case "ArrayExpression": // Arrays are not booleans + case "ArrowFunctionExpression": // Functions are not booleans + case "FunctionExpression": + case "ClassExpression": // Classes are not booleans + case "NewExpression": // Objects are not booleans + case "TemplateLiteral": // Strings are not booleans + case "Literal": // True, false, or not boolean, literals never change. + case "UpdateExpression": // Numbers are not booleans + return true; + case "BinaryExpression": + return NUMERIC_OR_STRING_BINARY_OPERATORS.has(node.operator); + case "UnaryExpression": { + if (node.operator === "delete") { + return false; + } + if (node.operator === "!") { + return isConstant(scope, node.argument, true); + } + + /* + * The remaining operators return either strings or numbers, neither + * of which are boolean. + */ + return true; + } + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return hasConstantStrictBooleanComparison(scope, last); + } + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + case "AssignmentExpression": + if (node.operator === "=") { + return hasConstantStrictBooleanComparison(scope, node.right); + } + + /* + * Handling short-circuiting assignment operators would require + * walking the scope. We won't attempt that (for now...) + */ + if (isLogicalAssignmentOperator(node.operator)) { + return false; + } + + /* + * The remaining assignment expressions all result in either a number + * or a string, neither of which can ever be boolean. + */ + return true; + case "CallExpression": { + if (node.callee.type !== "Identifier") { + return false; + } + const functionName = node.callee.name; + + if ( + (functionName === "String" || functionName === "Number") && + isReferenceToGlobalVariable(scope, node.callee) + ) { + return true; + } + if (functionName === "Boolean" && isReferenceToGlobalVariable(scope, node.callee)) { + return ( + node.arguments.length === 0 || isConstant(scope, node.arguments[0], true)); + } + return false; + } + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + +/** + * Test if an AST node will always result in a newly constructed object + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The node to test + * @returns {boolean} Will `node` always be new? + */ +function isAlwaysNew(scope, node) { + switch (node.type) { + case "ObjectExpression": + case "ArrayExpression": + case "ArrowFunctionExpression": + case "FunctionExpression": + case "ClassExpression": + return true; + case "NewExpression": { + if (node.callee.type !== "Identifier") { + return false; + } + + /* + * All the built-in constructors are always new, but + * user-defined constructors could return a sentinel + * object. + * + * Catching these is especially useful for primitive constructures + * which return boxed values, a surprising gotcha' in JavaScript. + */ + return Object.hasOwnProperty.call(globals.builtin, node.callee.name) && + isReferenceToGlobalVariable(scope, node.callee); + } + case "Literal": + + // Regular expressions are objects, and thus always new + return typeof node.regex === "object"; + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return isAlwaysNew(scope, last); + } + case "AssignmentExpression": + if (node.operator === "=") { + return isAlwaysNew(scope, node.right); + } + return false; + case "ConditionalExpression": + return isAlwaysNew(scope, node.consequent) && isAlwaysNew(scope, node.alternate); + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + +/** + * Checks whether or not a node is `null` or `undefined`. Similar to the one + * found in ast-utils.js, but this one correctly handles the edge case that + * `undefined` has been redefined. + * @param {Scope} scope Scope in which the expression was found. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a `null` or `undefined`. + * @public + */ +function isNullOrUndefined(scope, node) { + return ( + isNullLiteral(node) || + (node.type === "Identifier" && node.name === "undefined" && isReferenceToGlobalVariable(scope, node)) || + (node.type === "UnaryExpression" && node.operator === "void") + ); +} + + +/** + * Checks if one operand will cause the result to be constant. + * @param {Scope} scope Scope in which the expression was found. + * @param {ASTNode} a One side of the expression + * @param {ASTNode} b The other side of the expression + * @param {string} operator The binary expression operator + * @returns {ASTNode | null} The node which will cause the expression to have a constant result. + */ +function findBinaryExpressionConstantOperand(scope, a, b, operator) { + if (operator === "==" || operator === "!=") { + if ( + (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b)) || + (isStaticBoolean(scope, a) && hasConstantLooseBooleanComparison(scope, b)) + ) { + return b; + } + } else if (operator === "===" || operator === "!==") { + if ( + (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b)) || + (isStaticBoolean(scope, a) && hasConstantStrictBooleanComparison(scope, b)) + ) { + return b; + } + } + return null; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + docs: { + description: "Disallow expressions where the operation doesn't affect the value", + recommended: false, + url: "https://eslint.org/docs/rules/no-constant-binary-expression" + }, + schema: [], + messages: { + constantBinaryOperand: "Unexpected constant binary expression. Compares constantly with the {{otherSide}}-hand side of the `{{operator}}`.", + constantShortCircuit: "Unexpected constant {{property}} on the left-hand side of a `{{operator}}` expression.", + alwaysNew: "Unexpected comparison to newly constructed object. These two values can never be equal.", + bothAlwaysNew: "Unexpected comparison of two newly constructed objects. These two values can never be equal." + } + }, + + create(context) { + return { + LogicalExpression(node) { + const { operator, left } = node; + const scope = context.getScope(); + + if ((operator === "&&" || operator === "||") && isConstant(scope, left, true)) { + context.report({ node: left, messageId: "constantShortCircuit", data: { property: "truthiness", operator } }); + } else if (operator === "??" && hasConstantNullishness(scope, left)) { + context.report({ node: left, messageId: "constantShortCircuit", data: { property: "nullishness", operator } }); + } + }, + BinaryExpression(node) { + const scope = context.getScope(); + const { right, left, operator } = node; + const rightConstantOperand = findBinaryExpressionConstantOperand(scope, left, right, operator); + const leftConstantOperand = findBinaryExpressionConstantOperand(scope, right, left, operator); + + if (rightConstantOperand) { + context.report({ node: rightConstantOperand, messageId: "constantBinaryOperand", data: { operator, otherSide: "left" } }); + } else if (leftConstantOperand) { + context.report({ node: leftConstantOperand, messageId: "constantBinaryOperand", data: { operator, otherSide: "right" } }); + } else if (operator === "===" || operator === "!==") { + if (isAlwaysNew(scope, left)) { + context.report({ node: left, messageId: "alwaysNew" }); + } else if (isAlwaysNew(scope, right)) { + context.report({ node: right, messageId: "alwaysNew" }); + } + } else if (operator === "==" || operator === "!=") { + + /* + * If both sides are "new", then both sides are objects and + * therefore they will be compared by reference even with `==` + * equality. + */ + if (isAlwaysNew(scope, left) && isAlwaysNew(scope, right)) { + context.report({ node: left, messageId: "bothAlwaysNew" }); + } + } + + } + + /* + * In theory we could handle short-circuiting assignment operators, + * for some constant values, but that would require walking the + * scope to find the value of the variable being assigned. This is + * dependant on https://github.com/eslint/eslint/issues/13776 + * + * AssignmentExpression() {}, + */ + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-constant-condition.js b/node_modules/eslint/lib/rules/no-constant-condition.js new file mode 100644 index 0000000..2ef687f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-constant-condition.js @@ -0,0 +1,149 @@ +/** + * @fileoverview Rule to flag use constant conditions + * @author Christian Schulz + */ + +"use strict"; + +const { isConstant } = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow constant expressions in conditions", + recommended: true, + url: "https://eslint.org/docs/rules/no-constant-condition" + }, + + schema: [ + { + type: "object", + properties: { + checkLoops: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpected: "Unexpected constant condition." + } + }, + + create(context) { + const options = context.options[0] || {}, + checkLoops = options.checkLoops !== false, + loopSetStack = []; + + let loopsInCurrentScope = new Set(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Tracks when the given node contains a constant condition. + * @param {ASTNode} node The AST node to check. + * @returns {void} + * @private + */ + function trackConstantConditionLoop(node) { + if (node.test && isConstant(context.getScope(), node.test, true)) { + loopsInCurrentScope.add(node); + } + } + + /** + * Reports when the set contains the given constant condition node + * @param {ASTNode} node The AST node to check. + * @returns {void} + * @private + */ + function checkConstantConditionLoopInSet(node) { + if (loopsInCurrentScope.has(node)) { + loopsInCurrentScope.delete(node); + context.report({ node: node.test, messageId: "unexpected" }); + } + } + + /** + * Reports when the given node contains a constant condition. + * @param {ASTNode} node The AST node to check. + * @returns {void} + * @private + */ + function reportIfConstant(node) { + if (node.test && isConstant(context.getScope(), node.test, true)) { + context.report({ node: node.test, messageId: "unexpected" }); + } + } + + /** + * Stores current set of constant loops in loopSetStack temporarily + * and uses a new set to track constant loops + * @returns {void} + * @private + */ + function enterFunction() { + loopSetStack.push(loopsInCurrentScope); + loopsInCurrentScope = new Set(); + } + + /** + * Reports when the set still contains stored constant conditions + * @returns {void} + * @private + */ + function exitFunction() { + loopsInCurrentScope = loopSetStack.pop(); + } + + /** + * Checks node when checkLoops option is enabled + * @param {ASTNode} node The AST node to check. + * @returns {void} + * @private + */ + function checkLoop(node) { + if (checkLoops) { + trackConstantConditionLoop(node); + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + ConditionalExpression: reportIfConstant, + IfStatement: reportIfConstant, + WhileStatement: checkLoop, + "WhileStatement:exit": checkConstantConditionLoopInSet, + DoWhileStatement: checkLoop, + "DoWhileStatement:exit": checkConstantConditionLoopInSet, + ForStatement: checkLoop, + "ForStatement > .test": node => checkLoop(node.parent), + "ForStatement:exit": checkConstantConditionLoopInSet, + FunctionDeclaration: enterFunction, + "FunctionDeclaration:exit": exitFunction, + FunctionExpression: enterFunction, + "FunctionExpression:exit": exitFunction, + YieldExpression: () => loopsInCurrentScope.clear() + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-constructor-return.js b/node_modules/eslint/lib/rules/no-constructor-return.js new file mode 100644 index 0000000..911a32a --- /dev/null +++ b/node_modules/eslint/lib/rules/no-constructor-return.js @@ -0,0 +1,62 @@ +/** + * @fileoverview Rule to disallow returning value from constructor. + * @author Pig Fang + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow returning value from constructor", + recommended: false, + url: "https://eslint.org/docs/rules/no-constructor-return" + }, + + schema: {}, + + fixable: null, + + messages: { + unexpected: "Unexpected return statement in constructor." + } + }, + + create(context) { + const stack = []; + + return { + onCodePathStart(_, node) { + stack.push(node); + }, + onCodePathEnd() { + stack.pop(); + }, + ReturnStatement(node) { + const last = stack[stack.length - 1]; + + if (!last.parent) { + return; + } + + if ( + last.parent.type === "MethodDefinition" && + last.parent.kind === "constructor" && + (node.parent.parent === last || node.argument) + ) { + context.report({ + node, + messageId: "unexpected" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-continue.js b/node_modules/eslint/lib/rules/no-continue.js new file mode 100644 index 0000000..80381fc --- /dev/null +++ b/node_modules/eslint/lib/rules/no-continue.js @@ -0,0 +1,39 @@ +/** + * @fileoverview Rule to flag use of continue statement + * @author Borislav Zhivkov + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `continue` statements", + recommended: false, + url: "https://eslint.org/docs/rules/no-continue" + }, + + schema: [], + + messages: { + unexpected: "Unexpected use of continue statement." + } + }, + + create(context) { + + return { + ContinueStatement(node) { + context.report({ node, messageId: "unexpected" }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-control-regex.js b/node_modules/eslint/lib/rules/no-control-regex.js new file mode 100644 index 0000000..ba10843 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-control-regex.js @@ -0,0 +1,125 @@ +/** + * @fileoverview Rule to forbid control characters from regular expressions. + * @author Nicholas C. Zakas + */ + +"use strict"; + +const RegExpValidator = require("regexpp").RegExpValidator; +const collector = new (class { + constructor() { + this._source = ""; + this._controlChars = []; + this._validator = new RegExpValidator(this); + } + + onPatternEnter() { + this._controlChars = []; + } + + onCharacter(start, end, cp) { + if (cp >= 0x00 && + cp <= 0x1F && + ( + this._source.codePointAt(start) === cp || + this._source.slice(start, end).startsWith("\\x") || + this._source.slice(start, end).startsWith("\\u") + ) + ) { + this._controlChars.push(`\\x${`0${cp.toString(16)}`.slice(-2)}`); + } + } + + collectControlChars(regexpStr, flags) { + const uFlag = typeof flags === "string" && flags.includes("u"); + + try { + this._source = regexpStr; + this._validator.validatePattern(regexpStr, void 0, void 0, uFlag); // Call onCharacter hook + } catch { + + // Ignore syntax errors in RegExp. + } + return this._controlChars; + } +})(); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow control characters in regular expressions", + recommended: true, + url: "https://eslint.org/docs/rules/no-control-regex" + }, + + schema: [], + + messages: { + unexpected: "Unexpected control character(s) in regular expression: {{controlChars}}." + } + }, + + create(context) { + + /** + * Get the regex expression + * @param {ASTNode} node `Literal` node to evaluate + * @returns {{ pattern: string, flags: string | null } | null} Regex if found (the given node is either a regex literal + * or a string literal that is the pattern argument of a RegExp constructor call). Otherwise `null`. If flags cannot be determined, + * the `flags` property will be `null`. + * @private + */ + function getRegExp(node) { + if (node.regex) { + return node.regex; + } + if (typeof node.value === "string" && + (node.parent.type === "NewExpression" || node.parent.type === "CallExpression") && + node.parent.callee.type === "Identifier" && + node.parent.callee.name === "RegExp" && + node.parent.arguments[0] === node + ) { + const pattern = node.value; + const flags = + node.parent.arguments.length > 1 && + node.parent.arguments[1].type === "Literal" && + typeof node.parent.arguments[1].value === "string" + ? node.parent.arguments[1].value + : null; + + return { pattern, flags }; + } + + return null; + } + + return { + Literal(node) { + const regExp = getRegExp(node); + + if (regExp) { + const { pattern, flags } = regExp; + const controlCharacters = collector.collectControlChars(pattern, flags); + + if (controlCharacters.length > 0) { + context.report({ + node, + messageId: "unexpected", + data: { + controlChars: controlCharacters.join(", ") + } + }); + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-debugger.js b/node_modules/eslint/lib/rules/no-debugger.js new file mode 100644 index 0000000..3b88079 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-debugger.js @@ -0,0 +1,43 @@ +/** + * @fileoverview Rule to flag use of a debugger statement + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow the use of `debugger`", + recommended: true, + url: "https://eslint.org/docs/rules/no-debugger" + }, + + fixable: null, + schema: [], + + messages: { + unexpected: "Unexpected 'debugger' statement." + } + }, + + create(context) { + + return { + DebuggerStatement(node) { + context.report({ + node, + messageId: "unexpected" + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-delete-var.js b/node_modules/eslint/lib/rules/no-delete-var.js new file mode 100644 index 0000000..41021bd --- /dev/null +++ b/node_modules/eslint/lib/rules/no-delete-var.js @@ -0,0 +1,42 @@ +/** + * @fileoverview Rule to flag when deleting variables + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow deleting variables", + recommended: true, + url: "https://eslint.org/docs/rules/no-delete-var" + }, + + schema: [], + + messages: { + unexpected: "Variables should not be deleted." + } + }, + + create(context) { + + return { + + UnaryExpression(node) { + if (node.operator === "delete" && node.argument.type === "Identifier") { + context.report({ node, messageId: "unexpected" }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-div-regex.js b/node_modules/eslint/lib/rules/no-div-regex.js new file mode 100644 index 0000000..dd1c578 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-div-regex.js @@ -0,0 +1,53 @@ +/** + * @fileoverview Rule to check for ambiguous div operator in regexes + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow division operators explicitly at the beginning of regular expressions", + recommended: false, + url: "https://eslint.org/docs/rules/no-div-regex" + }, + + fixable: "code", + + schema: [], + + messages: { + unexpected: "A regular expression literal can be confused with '/='." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + + Literal(node) { + const token = sourceCode.getFirstToken(node); + + if (token.type === "RegularExpression" && token.value[1] === "=") { + context.report({ + node, + messageId: "unexpected", + fix(fixer) { + return fixer.replaceTextRange([token.range[0] + 1, token.range[0] + 2], "[=]"); + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-dupe-args.js b/node_modules/eslint/lib/rules/no-dupe-args.js new file mode 100644 index 0000000..faf2537 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-dupe-args.js @@ -0,0 +1,80 @@ +/** + * @fileoverview Rule to flag duplicate arguments + * @author Jamund Ferguson + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow duplicate arguments in `function` definitions", + recommended: true, + url: "https://eslint.org/docs/rules/no-dupe-args" + }, + + schema: [], + + messages: { + unexpected: "Duplicate param '{{name}}'." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Checks whether or not a given definition is a parameter's. + * @param {eslint-scope.DefEntry} def A definition to check. + * @returns {boolean} `true` if the definition is a parameter's. + */ + function isParameter(def) { + return def.type === "Parameter"; + } + + /** + * Determines if a given node has duplicate parameters. + * @param {ASTNode} node The node to check. + * @returns {void} + * @private + */ + function checkParams(node) { + const variables = context.getDeclaredVariables(node); + + for (let i = 0; i < variables.length; ++i) { + const variable = variables[i]; + + // Checks and reports duplications. + const defs = variable.defs.filter(isParameter); + + if (defs.length >= 2) { + context.report({ + node, + messageId: "unexpected", + data: { name: variable.name } + }); + } + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + FunctionDeclaration: checkParams, + FunctionExpression: checkParams + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-dupe-class-members.js b/node_modules/eslint/lib/rules/no-dupe-class-members.js new file mode 100644 index 0000000..8eca787 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-dupe-class-members.js @@ -0,0 +1,104 @@ +/** + * @fileoverview A rule to disallow duplicate name in class members. + * @author Toru Nagashima + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow duplicate class members", + recommended: true, + url: "https://eslint.org/docs/rules/no-dupe-class-members" + }, + + schema: [], + + messages: { + unexpected: "Duplicate name '{{name}}'." + } + }, + + create(context) { + let stack = []; + + /** + * Gets state of a given member name. + * @param {string} name A name of a member. + * @param {boolean} isStatic A flag which specifies that is a static member. + * @returns {Object} A state of a given member name. + * - retv.init {boolean} A flag which shows the name is declared as normal member. + * - retv.get {boolean} A flag which shows the name is declared as getter. + * - retv.set {boolean} A flag which shows the name is declared as setter. + */ + function getState(name, isStatic) { + const stateMap = stack[stack.length - 1]; + const key = `$${name}`; // to avoid "__proto__". + + if (!stateMap[key]) { + stateMap[key] = { + nonStatic: { init: false, get: false, set: false }, + static: { init: false, get: false, set: false } + }; + } + + return stateMap[key][isStatic ? "static" : "nonStatic"]; + } + + return { + + // Initializes the stack of state of member declarations. + Program() { + stack = []; + }, + + // Initializes state of member declarations for the class. + ClassBody() { + stack.push(Object.create(null)); + }, + + // Disposes the state for the class. + "ClassBody:exit"() { + stack.pop(); + }, + + // Reports the node if its name has been declared already. + "MethodDefinition, PropertyDefinition"(node) { + const name = astUtils.getStaticPropertyName(node); + const kind = node.type === "MethodDefinition" ? node.kind : "field"; + + if (name === null || kind === "constructor") { + return; + } + + const state = getState(name, node.static); + let isDuplicate = false; + + if (kind === "get") { + isDuplicate = (state.init || state.get); + state.get = true; + } else if (kind === "set") { + isDuplicate = (state.init || state.set); + state.set = true; + } else { + isDuplicate = (state.init || state.get || state.set); + state.init = true; + } + + if (isDuplicate) { + context.report({ node, messageId: "unexpected", data: { name } }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-dupe-else-if.js b/node_modules/eslint/lib/rules/no-dupe-else-if.js new file mode 100644 index 0000000..49db5ec --- /dev/null +++ b/node_modules/eslint/lib/rules/no-dupe-else-if.js @@ -0,0 +1,122 @@ +/** + * @fileoverview Rule to disallow duplicate conditions in if-else-if chains + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines whether the first given array is a subset of the second given array. + * @param {Function} comparator A function to compare two elements, should return `true` if they are equal. + * @param {Array} arrA The array to compare from. + * @param {Array} arrB The array to compare against. + * @returns {boolean} `true` if the array `arrA` is a subset of the array `arrB`. + */ +function isSubsetByComparator(comparator, arrA, arrB) { + return arrA.every(a => arrB.some(b => comparator(a, b))); +} + +/** + * Splits the given node by the given logical operator. + * @param {string} operator Logical operator `||` or `&&`. + * @param {ASTNode} node The node to split. + * @returns {ASTNode[]} Array of conditions that makes the node when joined by the operator. + */ +function splitByLogicalOperator(operator, node) { + if (node.type === "LogicalExpression" && node.operator === operator) { + return [...splitByLogicalOperator(operator, node.left), ...splitByLogicalOperator(operator, node.right)]; + } + return [node]; +} + +const splitByOr = splitByLogicalOperator.bind(null, "||"); +const splitByAnd = splitByLogicalOperator.bind(null, "&&"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow duplicate conditions in if-else-if chains", + recommended: true, + url: "https://eslint.org/docs/rules/no-dupe-else-if" + }, + + schema: [], + + messages: { + unexpected: "This branch can never execute. Its condition is a duplicate or covered by previous conditions in the if-else-if chain." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Determines whether the two given nodes are considered to be equal. In particular, given that the nodes + * represent expressions in a boolean context, `||` and `&&` can be considered as commutative operators. + * @param {ASTNode} a First node. + * @param {ASTNode} b Second node. + * @returns {boolean} `true` if the nodes are considered to be equal. + */ + function equal(a, b) { + if (a.type !== b.type) { + return false; + } + + if ( + a.type === "LogicalExpression" && + (a.operator === "||" || a.operator === "&&") && + a.operator === b.operator + ) { + return equal(a.left, b.left) && equal(a.right, b.right) || + equal(a.left, b.right) && equal(a.right, b.left); + } + + return astUtils.equalTokens(a, b, sourceCode); + } + + const isSubset = isSubsetByComparator.bind(null, equal); + + return { + IfStatement(node) { + const test = node.test, + conditionsToCheck = test.type === "LogicalExpression" && test.operator === "&&" + ? [test, ...splitByAnd(test)] + : [test]; + let current = node, + listToCheck = conditionsToCheck.map(c => splitByOr(c).map(splitByAnd)); + + while (current.parent && current.parent.type === "IfStatement" && current.parent.alternate === current) { + current = current.parent; + + const currentOrOperands = splitByOr(current.test).map(splitByAnd); + + listToCheck = listToCheck.map(orOperands => orOperands.filter( + orOperand => !currentOrOperands.some(currentOrOperand => isSubset(currentOrOperand, orOperand)) + )); + + if (listToCheck.some(orOperands => orOperands.length === 0)) { + context.report({ node: test, messageId: "unexpected" }); + break; + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-dupe-keys.js b/node_modules/eslint/lib/rules/no-dupe-keys.js new file mode 100644 index 0000000..65c34bc --- /dev/null +++ b/node_modules/eslint/lib/rules/no-dupe-keys.js @@ -0,0 +1,142 @@ +/** + * @fileoverview Rule to flag use of duplicate keys in an object. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const GET_KIND = /^(?:init|get)$/u; +const SET_KIND = /^(?:init|set)$/u; + +/** + * The class which stores properties' information of an object. + */ +class ObjectInfo { + + /** + * @param {ObjectInfo|null} upper The information of the outer object. + * @param {ASTNode} node The ObjectExpression node of this information. + */ + constructor(upper, node) { + this.upper = upper; + this.node = node; + this.properties = new Map(); + } + + /** + * Gets the information of the given Property node. + * @param {ASTNode} node The Property node to get. + * @returns {{get: boolean, set: boolean}} The information of the property. + */ + getPropertyInfo(node) { + const name = astUtils.getStaticPropertyName(node); + + if (!this.properties.has(name)) { + this.properties.set(name, { get: false, set: false }); + } + return this.properties.get(name); + } + + /** + * Checks whether the given property has been defined already or not. + * @param {ASTNode} node The Property node to check. + * @returns {boolean} `true` if the property has been defined. + */ + isPropertyDefined(node) { + const entry = this.getPropertyInfo(node); + + return ( + (GET_KIND.test(node.kind) && entry.get) || + (SET_KIND.test(node.kind) && entry.set) + ); + } + + /** + * Defines the given property. + * @param {ASTNode} node The Property node to define. + * @returns {void} + */ + defineProperty(node) { + const entry = this.getPropertyInfo(node); + + if (GET_KIND.test(node.kind)) { + entry.get = true; + } + if (SET_KIND.test(node.kind)) { + entry.set = true; + } + } +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow duplicate keys in object literals", + recommended: true, + url: "https://eslint.org/docs/rules/no-dupe-keys" + }, + + schema: [], + + messages: { + unexpected: "Duplicate key '{{name}}'." + } + }, + + create(context) { + let info = null; + + return { + ObjectExpression(node) { + info = new ObjectInfo(info, node); + }, + "ObjectExpression:exit"() { + info = info.upper; + }, + + Property(node) { + const name = astUtils.getStaticPropertyName(node); + + // Skip destructuring. + if (node.parent.type !== "ObjectExpression") { + return; + } + + // Skip if the name is not static. + if (name === null) { + return; + } + + // Reports if the name is defined already. + if (info.isPropertyDefined(node)) { + context.report({ + node: info.node, + loc: node.key.loc, + messageId: "unexpected", + data: { name } + }); + } + + // Update info. + info.defineProperty(node); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-duplicate-case.js b/node_modules/eslint/lib/rules/no-duplicate-case.js new file mode 100644 index 0000000..d436afd --- /dev/null +++ b/node_modules/eslint/lib/rules/no-duplicate-case.js @@ -0,0 +1,71 @@ +/** + * @fileoverview Rule to disallow a duplicate case label. + * @author Dieter Oberkofler + * @author Burak Yigit Kaya + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow duplicate case labels", + recommended: true, + url: "https://eslint.org/docs/rules/no-duplicate-case" + }, + + schema: [], + + messages: { + unexpected: "Duplicate case label." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Determines whether the two given nodes are considered to be equal. + * @param {ASTNode} a First node. + * @param {ASTNode} b Second node. + * @returns {boolean} `true` if the nodes are considered to be equal. + */ + function equal(a, b) { + if (a.type !== b.type) { + return false; + } + + return astUtils.equalTokens(a, b, sourceCode); + } + return { + SwitchStatement(node) { + const previousTests = []; + + for (const switchCase of node.cases) { + if (switchCase.test) { + const test = switchCase.test; + + if (previousTests.some(previousTest => equal(previousTest, test))) { + context.report({ node: switchCase, messageId: "unexpected" }); + } else { + previousTests.push(test); + } + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-duplicate-imports.js b/node_modules/eslint/lib/rules/no-duplicate-imports.js new file mode 100644 index 0000000..619e258 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-duplicate-imports.js @@ -0,0 +1,290 @@ +/** + * @fileoverview Restrict usage of duplicate imports. + * @author Simen Bekkhus + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const NAMED_TYPES = ["ImportSpecifier", "ExportSpecifier"]; +const NAMESPACE_TYPES = [ + "ImportNamespaceSpecifier", + "ExportNamespaceSpecifier" +]; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** + * Check if an import/export type belongs to (ImportSpecifier|ExportSpecifier) or (ImportNamespaceSpecifier|ExportNamespaceSpecifier). + * @param {string} importExportType An import/export type to check. + * @param {string} type Can be "named" or "namespace" + * @returns {boolean} True if import/export type belongs to (ImportSpecifier|ExportSpecifier) or (ImportNamespaceSpecifier|ExportNamespaceSpecifier) and false if it doesn't. + */ +function isImportExportSpecifier(importExportType, type) { + const arrayToCheck = type === "named" ? NAMED_TYPES : NAMESPACE_TYPES; + + return arrayToCheck.includes(importExportType); +} + +/** + * Return the type of (import|export). + * @param {ASTNode} node A node to get. + * @returns {string} The type of the (import|export). + */ +function getImportExportType(node) { + if (node.specifiers && node.specifiers.length > 0) { + const nodeSpecifiers = node.specifiers; + const index = nodeSpecifiers.findIndex( + ({ type }) => + isImportExportSpecifier(type, "named") || + isImportExportSpecifier(type, "namespace") + ); + const i = index > -1 ? index : 0; + + return nodeSpecifiers[i].type; + } + if (node.type === "ExportAllDeclaration") { + if (node.exported) { + return "ExportNamespaceSpecifier"; + } + return "ExportAll"; + } + return "SideEffectImport"; +} + +/** + * Returns a boolean indicates if two (import|export) can be merged + * @param {ASTNode} node1 A node to check. + * @param {ASTNode} node2 A node to check. + * @returns {boolean} True if two (import|export) can be merged, false if they can't. + */ +function isImportExportCanBeMerged(node1, node2) { + const importExportType1 = getImportExportType(node1); + const importExportType2 = getImportExportType(node2); + + if ( + (importExportType1 === "ExportAll" && + importExportType2 !== "ExportAll" && + importExportType2 !== "SideEffectImport") || + (importExportType1 !== "ExportAll" && + importExportType1 !== "SideEffectImport" && + importExportType2 === "ExportAll") + ) { + return false; + } + if ( + (isImportExportSpecifier(importExportType1, "namespace") && + isImportExportSpecifier(importExportType2, "named")) || + (isImportExportSpecifier(importExportType2, "namespace") && + isImportExportSpecifier(importExportType1, "named")) + ) { + return false; + } + return true; +} + +/** + * Returns a boolean if we should report (import|export). + * @param {ASTNode} node A node to be reported or not. + * @param {[ASTNode]} previousNodes An array contains previous nodes of the module imported or exported. + * @returns {boolean} True if the (import|export) should be reported. + */ +function shouldReportImportExport(node, previousNodes) { + let i = 0; + + while (i < previousNodes.length) { + if (isImportExportCanBeMerged(node, previousNodes[i])) { + return true; + } + i++; + } + return false; +} + +/** + * Returns array contains only nodes with declarations types equal to type. + * @param {[{node: ASTNode, declarationType: string}]} nodes An array contains objects, each object contains a node and a declaration type. + * @param {string} type Declaration type. + * @returns {[ASTNode]} An array contains only nodes with declarations types equal to type. + */ +function getNodesByDeclarationType(nodes, type) { + return nodes + .filter(({ declarationType }) => declarationType === type) + .map(({ node }) => node); +} + +/** + * Returns the name of the module imported or re-exported. + * @param {ASTNode} node A node to get. + * @returns {string} The name of the module, or empty string if no name. + */ +function getModule(node) { + if (node && node.source && node.source.value) { + return node.source.value.trim(); + } + return ""; +} + +/** + * Checks if the (import|export) can be merged with at least one import or one export, and reports if so. + * @param {RuleContext} context The ESLint rule context object. + * @param {ASTNode} node A node to get. + * @param {Map} modules A Map object contains as a key a module name and as value an array contains objects, each object contains a node and a declaration type. + * @param {string} declarationType A declaration type can be an import or export. + * @param {boolean} includeExports Whether or not to check for exports in addition to imports. + * @returns {void} No return value. + */ +function checkAndReport( + context, + node, + modules, + declarationType, + includeExports +) { + const module = getModule(node); + + if (modules.has(module)) { + const previousNodes = modules.get(module); + const messagesIds = []; + const importNodes = getNodesByDeclarationType(previousNodes, "import"); + let exportNodes; + + if (includeExports) { + exportNodes = getNodesByDeclarationType(previousNodes, "export"); + } + if (declarationType === "import") { + if (shouldReportImportExport(node, importNodes)) { + messagesIds.push("import"); + } + if (includeExports) { + if (shouldReportImportExport(node, exportNodes)) { + messagesIds.push("importAs"); + } + } + } else if (declarationType === "export") { + if (shouldReportImportExport(node, exportNodes)) { + messagesIds.push("export"); + } + if (shouldReportImportExport(node, importNodes)) { + messagesIds.push("exportAs"); + } + } + messagesIds.forEach(messageId => + context.report({ + node, + messageId, + data: { + module + } + })); + } +} + +/** + * @callback nodeCallback + * @param {ASTNode} node A node to handle. + */ + +/** + * Returns a function handling the (imports|exports) of a given file + * @param {RuleContext} context The ESLint rule context object. + * @param {Map} modules A Map object contains as a key a module name and as value an array contains objects, each object contains a node and a declaration type. + * @param {string} declarationType A declaration type can be an import or export. + * @param {boolean} includeExports Whether or not to check for exports in addition to imports. + * @returns {nodeCallback} A function passed to ESLint to handle the statement. + */ +function handleImportsExports( + context, + modules, + declarationType, + includeExports +) { + return function(node) { + const module = getModule(node); + + if (module) { + checkAndReport( + context, + node, + modules, + declarationType, + includeExports + ); + const currentNode = { node, declarationType }; + let nodes = [currentNode]; + + if (modules.has(module)) { + const previousNodes = modules.get(module); + + nodes = [...previousNodes, currentNode]; + } + modules.set(module, nodes); + } + }; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow duplicate module imports", + recommended: false, + url: "https://eslint.org/docs/rules/no-duplicate-imports" + }, + + schema: [ + { + type: "object", + properties: { + includeExports: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + import: "'{{module}}' import is duplicated.", + importAs: "'{{module}}' import is duplicated as export.", + export: "'{{module}}' export is duplicated.", + exportAs: "'{{module}}' export is duplicated as import." + } + }, + + create(context) { + const includeExports = (context.options[0] || {}).includeExports, + modules = new Map(); + const handlers = { + ImportDeclaration: handleImportsExports( + context, + modules, + "import", + includeExports + ) + }; + + if (includeExports) { + handlers.ExportNamedDeclaration = handleImportsExports( + context, + modules, + "export", + includeExports + ); + handlers.ExportAllDeclaration = handleImportsExports( + context, + modules, + "export", + includeExports + ); + } + return handlers; + } +}; diff --git a/node_modules/eslint/lib/rules/no-else-return.js b/node_modules/eslint/lib/rules/no-else-return.js new file mode 100644 index 0000000..d1da3aa --- /dev/null +++ b/node_modules/eslint/lib/rules/no-else-return.js @@ -0,0 +1,404 @@ +/** + * @fileoverview Rule to flag `else` after a `return` in `if` + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const FixTracker = require("./utils/fix-tracker"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `else` blocks after `return` statements in `if` statements", + recommended: false, + url: "https://eslint.org/docs/rules/no-else-return" + }, + + schema: [{ + type: "object", + properties: { + allowElseIf: { + type: "boolean", + default: true + } + }, + additionalProperties: false + }], + + fixable: "code", + + messages: { + unexpected: "Unnecessary 'else' after 'return'." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Checks whether the given names can be safely used to declare block-scoped variables + * in the given scope. Name collisions can produce redeclaration syntax errors, + * or silently change references and modify behavior of the original code. + * + * This is not a generic function. In particular, it is assumed that the scope is a function scope or + * a function's inner scope, and that the names can be valid identifiers in the given scope. + * @param {string[]} names Array of variable names. + * @param {eslint-scope.Scope} scope Function scope or a function's inner scope. + * @returns {boolean} True if all names can be safely declared, false otherwise. + */ + function isSafeToDeclare(names, scope) { + + if (names.length === 0) { + return true; + } + + const functionScope = scope.variableScope; + + /* + * If this is a function scope, scope.variables will contain parameters, implicit variables such as "arguments", + * all function-scoped variables ('var'), and block-scoped variables defined in the scope. + * If this is an inner scope, scope.variables will contain block-scoped variables defined in the scope. + * + * Redeclaring any of these would cause a syntax error, except for the implicit variables. + */ + const declaredVariables = scope.variables.filter(({ defs }) => defs.length > 0); + + if (declaredVariables.some(({ name }) => names.includes(name))) { + return false; + } + + // Redeclaring a catch variable would also cause a syntax error. + if (scope !== functionScope && scope.upper.type === "catch") { + if (scope.upper.variables.some(({ name }) => names.includes(name))) { + return false; + } + } + + /* + * Redeclaring an implicit variable, such as "arguments", would not cause a syntax error. + * However, if the variable was used, declaring a new one with the same name would change references + * and modify behavior. + */ + const usedImplicitVariables = scope.variables.filter(({ defs, references }) => + defs.length === 0 && references.length > 0); + + if (usedImplicitVariables.some(({ name }) => names.includes(name))) { + return false; + } + + /* + * Declaring a variable with a name that was already used to reference a variable from an upper scope + * would change references and modify behavior. + */ + if (scope.through.some(t => names.includes(t.identifier.name))) { + return false; + } + + /* + * If the scope is an inner scope (not the function scope), an uninitialized `var` variable declared inside + * the scope node (directly or in one of its descendants) is neither declared nor 'through' in the scope. + * + * For example, this would be a syntax error "Identifier 'a' has already been declared": + * function foo() { if (bar) { let a; if (baz) { var a; } } } + */ + if (scope !== functionScope) { + const scopeNodeRange = scope.block.range; + const variablesToCheck = functionScope.variables.filter(({ name }) => names.includes(name)); + + if (variablesToCheck.some(v => v.defs.some(({ node: { range } }) => + scopeNodeRange[0] <= range[0] && range[1] <= scopeNodeRange[1]))) { + return false; + } + } + + return true; + } + + + /** + * Checks whether the removal of `else` and its braces is safe from variable name collisions. + * @param {Node} node The 'else' node. + * @param {eslint-scope.Scope} scope The scope in which the node and the whole 'if' statement is. + * @returns {boolean} True if it is safe, false otherwise. + */ + function isSafeFromNameCollisions(node, scope) { + + if (node.type === "FunctionDeclaration") { + + // Conditional function declaration. Scope and hoisting are unpredictable, different engines work differently. + return false; + } + + if (node.type !== "BlockStatement") { + return true; + } + + const elseBlockScope = scope.childScopes.find(({ block }) => block === node); + + if (!elseBlockScope) { + + // ecmaVersion < 6, `else` block statement cannot have its own scope, no possible collisions. + return true; + } + + /* + * elseBlockScope is supposed to merge into its upper scope. elseBlockScope.variables array contains + * only block-scoped variables (such as let and const variables or class and function declarations) + * defined directly in the elseBlockScope. These are exactly the only names that could cause collisions. + */ + const namesToCheck = elseBlockScope.variables.map(({ name }) => name); + + return isSafeToDeclare(namesToCheck, scope); + } + + /** + * Display the context report if rule is violated + * @param {Node} node The 'else' node + * @returns {void} + */ + function displayReport(node) { + const currentScope = context.getScope(); + + context.report({ + node, + messageId: "unexpected", + fix: fixer => { + + if (!isSafeFromNameCollisions(node, currentScope)) { + return null; + } + + const sourceCode = context.getSourceCode(); + const startToken = sourceCode.getFirstToken(node); + const elseToken = sourceCode.getTokenBefore(startToken); + const source = sourceCode.getText(node); + const lastIfToken = sourceCode.getTokenBefore(elseToken); + let fixedSource, firstTokenOfElseBlock; + + if (startToken.type === "Punctuator" && startToken.value === "{") { + firstTokenOfElseBlock = sourceCode.getTokenAfter(startToken); + } else { + firstTokenOfElseBlock = startToken; + } + + /* + * If the if block does not have curly braces and does not end in a semicolon + * and the else block starts with (, [, /, +, ` or -, then it is not + * safe to remove the else keyword, because ASI will not add a semicolon + * after the if block + */ + const ifBlockMaybeUnsafe = node.parent.consequent.type !== "BlockStatement" && lastIfToken.value !== ";"; + const elseBlockUnsafe = /^[([/+`-]/u.test(firstTokenOfElseBlock.value); + + if (ifBlockMaybeUnsafe && elseBlockUnsafe) { + return null; + } + + const endToken = sourceCode.getLastToken(node); + const lastTokenOfElseBlock = sourceCode.getTokenBefore(endToken); + + if (lastTokenOfElseBlock.value !== ";") { + const nextToken = sourceCode.getTokenAfter(endToken); + + const nextTokenUnsafe = nextToken && /^[([/+`-]/u.test(nextToken.value); + const nextTokenOnSameLine = nextToken && nextToken.loc.start.line === lastTokenOfElseBlock.loc.start.line; + + /* + * If the else block contents does not end in a semicolon, + * and the else block starts with (, [, /, +, ` or -, then it is not + * safe to remove the else block, because ASI will not add a semicolon + * after the remaining else block contents + */ + if (nextTokenUnsafe || (nextTokenOnSameLine && nextToken.value !== "}")) { + return null; + } + } + + if (startToken.type === "Punctuator" && startToken.value === "{") { + fixedSource = source.slice(1, -1); + } else { + fixedSource = source; + } + + /* + * Extend the replacement range to include the entire + * function to avoid conflicting with no-useless-return. + * https://github.com/eslint/eslint/issues/8026 + * + * Also, to avoid name collisions between two else blocks. + */ + return new FixTracker(fixer, sourceCode) + .retainEnclosingFunction(node) + .replaceTextRange([elseToken.range[0], node.range[1]], fixedSource); + } + }); + } + + /** + * Check to see if the node is a ReturnStatement + * @param {Node} node The node being evaluated + * @returns {boolean} True if node is a return + */ + function checkForReturn(node) { + return node.type === "ReturnStatement"; + } + + /** + * Naive return checking, does not iterate through the whole + * BlockStatement because we make the assumption that the ReturnStatement + * will be the last node in the body of the BlockStatement. + * @param {Node} node The consequent/alternate node + * @returns {boolean} True if it has a return + */ + function naiveHasReturn(node) { + if (node.type === "BlockStatement") { + const body = node.body, + lastChildNode = body[body.length - 1]; + + return lastChildNode && checkForReturn(lastChildNode); + } + return checkForReturn(node); + } + + /** + * Check to see if the node is valid for evaluation, + * meaning it has an else. + * @param {Node} node The node being evaluated + * @returns {boolean} True if the node is valid + */ + function hasElse(node) { + return node.alternate && node.consequent; + } + + /** + * If the consequent is an IfStatement, check to see if it has an else + * and both its consequent and alternate path return, meaning this is + * a nested case of rule violation. If-Else not considered currently. + * @param {Node} node The consequent node + * @returns {boolean} True if this is a nested rule violation + */ + function checkForIf(node) { + return node.type === "IfStatement" && hasElse(node) && + naiveHasReturn(node.alternate) && naiveHasReturn(node.consequent); + } + + /** + * Check the consequent/body node to make sure it is not + * a ReturnStatement or an IfStatement that returns on both + * code paths. + * @param {Node} node The consequent or body node + * @returns {boolean} `true` if it is a Return/If node that always returns. + */ + function checkForReturnOrIf(node) { + return checkForReturn(node) || checkForIf(node); + } + + + /** + * Check whether a node returns in every codepath. + * @param {Node} node The node to be checked + * @returns {boolean} `true` if it returns on every codepath. + */ + function alwaysReturns(node) { + if (node.type === "BlockStatement") { + + // If we have a BlockStatement, check each consequent body node. + return node.body.some(checkForReturnOrIf); + } + + /* + * If not a block statement, make sure the consequent isn't a + * ReturnStatement or an IfStatement with returns on both paths. + */ + return checkForReturnOrIf(node); + } + + + /** + * Check the if statement, but don't catch else-if blocks. + * @returns {void} + * @param {Node} node The node for the if statement to check + * @private + */ + function checkIfWithoutElse(node) { + const parent = node.parent; + + /* + * Fixing this would require splitting one statement into two, so no error should + * be reported if this node is in a position where only one statement is allowed. + */ + if (!astUtils.STATEMENT_LIST_PARENTS.has(parent.type)) { + return; + } + + const consequents = []; + let alternate; + + for (let currentNode = node; currentNode.type === "IfStatement"; currentNode = currentNode.alternate) { + if (!currentNode.alternate) { + return; + } + consequents.push(currentNode.consequent); + alternate = currentNode.alternate; + } + + if (consequents.every(alwaysReturns)) { + displayReport(alternate); + } + } + + /** + * Check the if statement + * @returns {void} + * @param {Node} node The node for the if statement to check + * @private + */ + function checkIfWithElse(node) { + const parent = node.parent; + + + /* + * Fixing this would require splitting one statement into two, so no error should + * be reported if this node is in a position where only one statement is allowed. + */ + if (!astUtils.STATEMENT_LIST_PARENTS.has(parent.type)) { + return; + } + + const alternate = node.alternate; + + if (alternate && alwaysReturns(node.consequent)) { + displayReport(alternate); + } + } + + const allowElseIf = !(context.options[0] && context.options[0].allowElseIf === false); + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + + "IfStatement:exit": allowElseIf ? checkIfWithoutElse : checkIfWithElse + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-empty-character-class.js b/node_modules/eslint/lib/rules/no-empty-character-class.js new file mode 100644 index 0000000..2d294f4 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-empty-character-class.js @@ -0,0 +1,55 @@ +/** + * @fileoverview Rule to flag the use of empty character classes in regular expressions + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/* + * plain-English description of the following regexp: + * 0. `^` fix the match at the beginning of the string + * 1. `([^\\[]|\\.|\[([^\\\]]|\\.)+\])*`: regexp contents; 0 or more of the following + * 1.0. `[^\\[]`: any character that's not a `\` or a `[` (anything but escape sequences and character classes) + * 1.1. `\\.`: an escape sequence + * 1.2. `\[([^\\\]]|\\.)+\]`: a character class that isn't empty + * 2. `$`: fix the match at the end of the string + */ +const regex = /^([^\\[]|\\.|\[([^\\\]]|\\.)+\])*$/u; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow empty character classes in regular expressions", + recommended: true, + url: "https://eslint.org/docs/rules/no-empty-character-class" + }, + + schema: [], + + messages: { + unexpected: "Empty class." + } + }, + + create(context) { + return { + "Literal[regex]"(node) { + if (!regex.test(node.regex.pattern)) { + context.report({ node, messageId: "unexpected" }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-empty-function.js b/node_modules/eslint/lib/rules/no-empty-function.js new file mode 100644 index 0000000..4c9daa9 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-empty-function.js @@ -0,0 +1,167 @@ +/** + * @fileoverview Rule to disallow empty functions. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const ALLOW_OPTIONS = Object.freeze([ + "functions", + "arrowFunctions", + "generatorFunctions", + "methods", + "generatorMethods", + "getters", + "setters", + "constructors", + "asyncFunctions", + "asyncMethods" +]); + +/** + * Gets the kind of a given function node. + * @param {ASTNode} node A function node to get. This is one of + * an ArrowFunctionExpression, a FunctionDeclaration, or a + * FunctionExpression. + * @returns {string} The kind of the function. This is one of "functions", + * "arrowFunctions", "generatorFunctions", "asyncFunctions", "methods", + * "generatorMethods", "asyncMethods", "getters", "setters", and + * "constructors". + */ +function getKind(node) { + const parent = node.parent; + let kind = ""; + + if (node.type === "ArrowFunctionExpression") { + return "arrowFunctions"; + } + + // Detects main kind. + if (parent.type === "Property") { + if (parent.kind === "get") { + return "getters"; + } + if (parent.kind === "set") { + return "setters"; + } + kind = parent.method ? "methods" : "functions"; + + } else if (parent.type === "MethodDefinition") { + if (parent.kind === "get") { + return "getters"; + } + if (parent.kind === "set") { + return "setters"; + } + if (parent.kind === "constructor") { + return "constructors"; + } + kind = "methods"; + + } else { + kind = "functions"; + } + + // Detects prefix. + let prefix = ""; + + if (node.generator) { + prefix = "generator"; + } else if (node.async) { + prefix = "async"; + } else { + return kind; + } + return prefix + kind[0].toUpperCase() + kind.slice(1); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow empty functions", + recommended: false, + url: "https://eslint.org/docs/rules/no-empty-function" + }, + + schema: [ + { + type: "object", + properties: { + allow: { + type: "array", + items: { enum: ALLOW_OPTIONS }, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpected: "Unexpected empty {{name}}." + } + }, + + create(context) { + const options = context.options[0] || {}; + const allowed = options.allow || []; + + const sourceCode = context.getSourceCode(); + + /** + * Reports a given function node if the node matches the following patterns. + * + * - Not allowed by options. + * - The body is empty. + * - The body doesn't have any comments. + * @param {ASTNode} node A function node to report. This is one of + * an ArrowFunctionExpression, a FunctionDeclaration, or a + * FunctionExpression. + * @returns {void} + */ + function reportIfEmpty(node) { + const kind = getKind(node); + const name = astUtils.getFunctionNameWithKind(node); + const innerComments = sourceCode.getTokens(node.body, { + includeComments: true, + filter: astUtils.isCommentToken + }); + + if (!allowed.includes(kind) && + node.body.type === "BlockStatement" && + node.body.body.length === 0 && + innerComments.length === 0 + ) { + context.report({ + node, + loc: node.body.loc, + messageId: "unexpected", + data: { name } + }); + } + } + + return { + ArrowFunctionExpression: reportIfEmpty, + FunctionDeclaration: reportIfEmpty, + FunctionExpression: reportIfEmpty + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-empty-pattern.js b/node_modules/eslint/lib/rules/no-empty-pattern.js new file mode 100644 index 0000000..5a497f0 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-empty-pattern.js @@ -0,0 +1,43 @@ +/** + * @fileoverview Rule to disallow an empty pattern + * @author Alberto Rodríguez + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow empty destructuring patterns", + recommended: true, + url: "https://eslint.org/docs/rules/no-empty-pattern" + }, + + schema: [], + + messages: { + unexpected: "Unexpected empty {{type}} pattern." + } + }, + + create(context) { + return { + ObjectPattern(node) { + if (node.properties.length === 0) { + context.report({ node, messageId: "unexpected", data: { type: "object" } }); + } + }, + ArrayPattern(node) { + if (node.elements.length === 0) { + context.report({ node, messageId: "unexpected", data: { type: "array" } }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-empty.js b/node_modules/eslint/lib/rules/no-empty.js new file mode 100644 index 0000000..459140a --- /dev/null +++ b/node_modules/eslint/lib/rules/no-empty.js @@ -0,0 +1,86 @@ +/** + * @fileoverview Rule to flag use of an empty block statement + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow empty block statements", + recommended: true, + url: "https://eslint.org/docs/rules/no-empty" + }, + + schema: [ + { + type: "object", + properties: { + allowEmptyCatch: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpected: "Empty {{type}} statement." + } + }, + + create(context) { + const options = context.options[0] || {}, + allowEmptyCatch = options.allowEmptyCatch || false; + + const sourceCode = context.getSourceCode(); + + return { + BlockStatement(node) { + + // if the body is not empty, we can just return immediately + if (node.body.length !== 0) { + return; + } + + // a function is generally allowed to be empty + if (astUtils.isFunction(node.parent)) { + return; + } + + if (allowEmptyCatch && node.parent.type === "CatchClause") { + return; + } + + // any other block is only allowed to be empty, if it contains a comment + if (sourceCode.getCommentsInside(node).length > 0) { + return; + } + + context.report({ node, messageId: "unexpected", data: { type: "block" } }); + }, + + SwitchStatement(node) { + + if (typeof node.cases === "undefined" || node.cases.length === 0) { + context.report({ node, messageId: "unexpected", data: { type: "switch" } }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-eq-null.js b/node_modules/eslint/lib/rules/no-eq-null.js new file mode 100644 index 0000000..9a88680 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-eq-null.js @@ -0,0 +1,46 @@ +/** + * @fileoverview Rule to flag comparisons to null without a type-checking + * operator. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `null` comparisons without type-checking operators", + recommended: false, + url: "https://eslint.org/docs/rules/no-eq-null" + }, + + schema: [], + + messages: { + unexpected: "Use '===' to compare with null." + } + }, + + create(context) { + + return { + + BinaryExpression(node) { + const badOperator = node.operator === "==" || node.operator === "!="; + + if (node.right.type === "Literal" && node.right.raw === "null" && badOperator || + node.left.type === "Literal" && node.left.raw === "null" && badOperator) { + context.report({ node, messageId: "unexpected" }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-eval.js b/node_modules/eslint/lib/rules/no-eval.js new file mode 100644 index 0000000..03f7b1f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-eval.js @@ -0,0 +1,286 @@ +/** + * @fileoverview Rule to flag use of eval() statement + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const candidatesOfGlobalObject = Object.freeze([ + "global", + "window", + "globalThis" +]); + +/** + * Checks a given node is a MemberExpression node which has the specified name's + * property. + * @param {ASTNode} node A node to check. + * @param {string} name A name to check. + * @returns {boolean} `true` if the node is a MemberExpression node which has + * the specified name's property + */ +function isMember(node, name) { + return astUtils.isSpecificMemberAccess(node, null, name); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of `eval()`", + recommended: false, + url: "https://eslint.org/docs/rules/no-eval" + }, + + schema: [ + { + type: "object", + properties: { + allowIndirect: { type: "boolean", default: false } + }, + additionalProperties: false + } + ], + + messages: { + unexpected: "eval can be harmful." + } + }, + + create(context) { + const allowIndirect = Boolean( + context.options[0] && + context.options[0].allowIndirect + ); + const sourceCode = context.getSourceCode(); + let funcInfo = null; + + /** + * Pushs a `this` scope (non-arrow function, class static block, or class field initializer) information to the stack. + * Top-level scopes are handled separately. + * + * This is used in order to check whether or not `this` binding is a + * reference to the global object. + * @param {ASTNode} node A node of the scope. + * For functions, this is one of FunctionDeclaration, FunctionExpression. + * For class static blocks, this is StaticBlock. + * For class field initializers, this can be any node that is PropertyDefinition#value. + * @returns {void} + */ + function enterThisScope(node) { + const strict = context.getScope().isStrict; + + funcInfo = { + upper: funcInfo, + node, + strict, + isTopLevelOfScript: false, + defaultThis: false, + initialized: strict + }; + } + + /** + * Pops a variable scope from the stack. + * @returns {void} + */ + function exitThisScope() { + funcInfo = funcInfo.upper; + } + + /** + * Reports a given node. + * + * `node` is `Identifier` or `MemberExpression`. + * The parent of `node` might be `CallExpression`. + * + * The location of the report is always `eval` `Identifier` (or possibly + * `Literal`). The type of the report is `CallExpression` if the parent is + * `CallExpression`. Otherwise, it's the given node type. + * @param {ASTNode} node A node to report. + * @returns {void} + */ + function report(node) { + const parent = node.parent; + const locationNode = node.type === "MemberExpression" + ? node.property + : node; + + const reportNode = parent.type === "CallExpression" && parent.callee === node + ? parent + : node; + + context.report({ + node: reportNode, + loc: locationNode.loc, + messageId: "unexpected" + }); + } + + /** + * Reports accesses of `eval` via the global object. + * @param {eslint-scope.Scope} globalScope The global scope. + * @returns {void} + */ + function reportAccessingEvalViaGlobalObject(globalScope) { + for (let i = 0; i < candidatesOfGlobalObject.length; ++i) { + const name = candidatesOfGlobalObject[i]; + const variable = astUtils.getVariableByName(globalScope, name); + + if (!variable) { + continue; + } + + const references = variable.references; + + for (let j = 0; j < references.length; ++j) { + const identifier = references[j].identifier; + let node = identifier.parent; + + // To detect code like `window.window.eval`. + while (isMember(node, name)) { + node = node.parent; + } + + // Reports. + if (isMember(node, "eval")) { + report(node); + } + } + } + } + + /** + * Reports all accesses of `eval` (excludes direct calls to eval). + * @param {eslint-scope.Scope} globalScope The global scope. + * @returns {void} + */ + function reportAccessingEval(globalScope) { + const variable = astUtils.getVariableByName(globalScope, "eval"); + + if (!variable) { + return; + } + + const references = variable.references; + + for (let i = 0; i < references.length; ++i) { + const reference = references[i]; + const id = reference.identifier; + + if (id.name === "eval" && !astUtils.isCallee(id)) { + + // Is accessing to eval (excludes direct calls to eval) + report(id); + } + } + } + + if (allowIndirect) { + + // Checks only direct calls to eval. It's simple! + return { + "CallExpression:exit"(node) { + const callee = node.callee; + + /* + * Optional call (`eval?.("code")`) is not direct eval. + * The direct eval is only step 6.a.vi of https://tc39.es/ecma262/#sec-function-calls-runtime-semantics-evaluation + * But the optional call is https://tc39.es/ecma262/#sec-optional-chaining-chain-evaluation + */ + if (!node.optional && astUtils.isSpecificId(callee, "eval")) { + report(callee); + } + } + }; + } + + return { + "CallExpression:exit"(node) { + const callee = node.callee; + + if (astUtils.isSpecificId(callee, "eval")) { + report(callee); + } + }, + + Program(node) { + const scope = context.getScope(), + features = context.parserOptions.ecmaFeatures || {}, + strict = + scope.isStrict || + node.sourceType === "module" || + (features.globalReturn && scope.childScopes[0].isStrict), + isTopLevelOfScript = node.sourceType !== "module" && !features.globalReturn; + + funcInfo = { + upper: null, + node, + strict, + isTopLevelOfScript, + defaultThis: true, + initialized: true + }; + }, + + "Program:exit"() { + const globalScope = context.getScope(); + + exitThisScope(); + reportAccessingEval(globalScope); + reportAccessingEvalViaGlobalObject(globalScope); + }, + + FunctionDeclaration: enterThisScope, + "FunctionDeclaration:exit": exitThisScope, + FunctionExpression: enterThisScope, + "FunctionExpression:exit": exitThisScope, + "PropertyDefinition > *.value": enterThisScope, + "PropertyDefinition > *.value:exit": exitThisScope, + StaticBlock: enterThisScope, + "StaticBlock:exit": exitThisScope, + + ThisExpression(node) { + if (!isMember(node.parent, "eval")) { + return; + } + + /* + * `this.eval` is found. + * Checks whether or not the value of `this` is the global object. + */ + if (!funcInfo.initialized) { + funcInfo.initialized = true; + funcInfo.defaultThis = astUtils.isDefaultThisBinding( + funcInfo.node, + sourceCode + ); + } + + // `this` at the top level of scripts always refers to the global object + if (funcInfo.isTopLevelOfScript || (!funcInfo.strict && funcInfo.defaultThis)) { + + // `this.eval` is possible built-in `eval`. + report(node.parent); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-ex-assign.js b/node_modules/eslint/lib/rules/no-ex-assign.js new file mode 100644 index 0000000..4c77b11 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-ex-assign.js @@ -0,0 +1,52 @@ +/** + * @fileoverview Rule to flag assignment of the exception parameter + * @author Stephen Murray + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow reassigning exceptions in `catch` clauses", + recommended: true, + url: "https://eslint.org/docs/rules/no-ex-assign" + }, + + schema: [], + + messages: { + unexpected: "Do not assign to the exception parameter." + } + }, + + create(context) { + + /** + * Finds and reports references that are non initializer and writable. + * @param {Variable} variable A variable to check. + * @returns {void} + */ + function checkVariable(variable) { + astUtils.getModifyingReferences(variable.references).forEach(reference => { + context.report({ node: reference.identifier, messageId: "unexpected" }); + }); + } + + return { + CatchClause(node) { + context.getDeclaredVariables(node).forEach(checkVariable); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-extend-native.js b/node_modules/eslint/lib/rules/no-extend-native.js new file mode 100644 index 0000000..52c6bd3 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-extend-native.js @@ -0,0 +1,178 @@ +/** + * @fileoverview Rule to flag adding properties to native object's prototypes. + * @author David Nelson + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const globals = require("globals"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow extending native types", + recommended: false, + url: "https://eslint.org/docs/rules/no-extend-native" + }, + + schema: [ + { + type: "object", + properties: { + exceptions: { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpected: "{{builtin}} prototype is read only, properties should not be added." + } + }, + + create(context) { + + const config = context.options[0] || {}; + const exceptions = new Set(config.exceptions || []); + const modifiedBuiltins = new Set( + Object.keys(globals.builtin) + .filter(builtin => builtin[0].toUpperCase() === builtin[0]) + .filter(builtin => !exceptions.has(builtin)) + ); + + /** + * Reports a lint error for the given node. + * @param {ASTNode} node The node to report. + * @param {string} builtin The name of the native builtin being extended. + * @returns {void} + */ + function reportNode(node, builtin) { + context.report({ + node, + messageId: "unexpected", + data: { + builtin + } + }); + } + + /** + * Check to see if the `prototype` property of the given object + * identifier node is being accessed. + * @param {ASTNode} identifierNode The Identifier representing the object + * to check. + * @returns {boolean} True if the identifier is the object of a + * MemberExpression and its `prototype` property is being accessed, + * false otherwise. + */ + function isPrototypePropertyAccessed(identifierNode) { + return Boolean( + identifierNode && + identifierNode.parent && + identifierNode.parent.type === "MemberExpression" && + identifierNode.parent.object === identifierNode && + astUtils.getStaticPropertyName(identifierNode.parent) === "prototype" + ); + } + + /** + * Check if it's an assignment to the property of the given node. + * Example: `*.prop = 0` // the `*` is the given node. + * @param {ASTNode} node The node to check. + * @returns {boolean} True if an assignment to the property of the node. + */ + function isAssigningToPropertyOf(node) { + return ( + node.parent.type === "MemberExpression" && + node.parent.object === node && + node.parent.parent.type === "AssignmentExpression" && + node.parent.parent.left === node.parent + ); + } + + /** + * Checks if the given node is at the first argument of the method call of `Object.defineProperty()` or `Object.defineProperties()`. + * @param {ASTNode} node The node to check. + * @returns {boolean} True if the node is at the first argument of the method call of `Object.defineProperty()` or `Object.defineProperties()`. + */ + function isInDefinePropertyCall(node) { + return ( + node.parent.type === "CallExpression" && + node.parent.arguments[0] === node && + astUtils.isSpecificMemberAccess(node.parent.callee, "Object", /^definePropert(?:y|ies)$/u) + ); + } + + /** + * Check to see if object prototype access is part of a prototype + * extension. There are three ways a prototype can be extended: + * 1. Assignment to prototype property (Object.prototype.foo = 1) + * 2. Object.defineProperty()/Object.defineProperties() on a prototype + * If prototype extension is detected, report the AssignmentExpression + * or CallExpression node. + * @param {ASTNode} identifierNode The Identifier representing the object + * which prototype is being accessed and possibly extended. + * @returns {void} + */ + function checkAndReportPrototypeExtension(identifierNode) { + if (!isPrototypePropertyAccessed(identifierNode)) { + return; // This is not `*.prototype` access. + } + + /* + * `identifierNode.parent` is a MemberExpression `*.prototype`. + * If it's an optional member access, it may be wrapped by a `ChainExpression` node. + */ + const prototypeNode = + identifierNode.parent.parent.type === "ChainExpression" + ? identifierNode.parent.parent + : identifierNode.parent; + + if (isAssigningToPropertyOf(prototypeNode)) { + + // `*.prototype` -> MemberExpression -> AssignmentExpression + reportNode(prototypeNode.parent.parent, identifierNode.name); + } else if (isInDefinePropertyCall(prototypeNode)) { + + // `*.prototype` -> CallExpression + reportNode(prototypeNode.parent, identifierNode.name); + } + } + + return { + + "Program:exit"() { + const globalScope = context.getScope(); + + modifiedBuiltins.forEach(builtin => { + const builtinVar = globalScope.set.get(builtin); + + if (builtinVar && builtinVar.references) { + builtinVar.references + .map(ref => ref.identifier) + .forEach(checkAndReportPrototypeExtension); + } + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-extra-bind.js b/node_modules/eslint/lib/rules/no-extra-bind.js new file mode 100644 index 0000000..caf6d8b --- /dev/null +++ b/node_modules/eslint/lib/rules/no-extra-bind.js @@ -0,0 +1,213 @@ +/** + * @fileoverview Rule to flag unnecessary bind calls + * @author Bence Dányi + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SIDE_EFFECT_FREE_NODE_TYPES = new Set(["Literal", "Identifier", "ThisExpression", "FunctionExpression"]); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary calls to `.bind()`", + recommended: false, + url: "https://eslint.org/docs/rules/no-extra-bind" + }, + + schema: [], + fixable: "code", + + messages: { + unexpected: "The function binding is unnecessary." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + let scopeInfo = null; + + /** + * Checks if a node is free of side effects. + * + * This check is stricter than it needs to be, in order to keep the implementation simple. + * @param {ASTNode} node A node to check. + * @returns {boolean} True if the node is known to be side-effect free, false otherwise. + */ + function isSideEffectFree(node) { + return SIDE_EFFECT_FREE_NODE_TYPES.has(node.type); + } + + /** + * Reports a given function node. + * @param {ASTNode} node A node to report. This is a FunctionExpression or + * an ArrowFunctionExpression. + * @returns {void} + */ + function report(node) { + const memberNode = node.parent; + const callNode = memberNode.parent.type === "ChainExpression" + ? memberNode.parent.parent + : memberNode.parent; + + context.report({ + node: callNode, + messageId: "unexpected", + loc: memberNode.property.loc, + + fix(fixer) { + if (!isSideEffectFree(callNode.arguments[0])) { + return null; + } + + /* + * The list of the first/last token pair of a removal range. + * This is two parts because closing parentheses may exist between the method name and arguments. + * E.g. `(function(){}.bind ) (obj)` + * ^^^^^ ^^^^^ < removal ranges + * E.g. `(function(){}?.['bind'] ) ?.(obj)` + * ^^^^^^^^^^ ^^^^^^^ < removal ranges + */ + const tokenPairs = [ + [ + + // `.`, `?.`, or `[` token. + sourceCode.getTokenAfter( + memberNode.object, + astUtils.isNotClosingParenToken + ), + + // property name or `]` token. + sourceCode.getLastToken(memberNode) + ], + [ + + // `?.` or `(` token of arguments. + sourceCode.getTokenAfter( + memberNode, + astUtils.isNotClosingParenToken + ), + + // `)` token of arguments. + sourceCode.getLastToken(callNode) + ] + ]; + const firstTokenToRemove = tokenPairs[0][0]; + const lastTokenToRemove = tokenPairs[1][1]; + + if (sourceCode.commentsExistBetween(firstTokenToRemove, lastTokenToRemove)) { + return null; + } + + return tokenPairs.map(([start, end]) => + fixer.removeRange([start.range[0], end.range[1]])); + } + }); + } + + /** + * Checks whether or not a given function node is the callee of `.bind()` + * method. + * + * e.g. `(function() {}.bind(foo))` + * @param {ASTNode} node A node to report. This is a FunctionExpression or + * an ArrowFunctionExpression. + * @returns {boolean} `true` if the node is the callee of `.bind()` method. + */ + function isCalleeOfBindMethod(node) { + if (!astUtils.isSpecificMemberAccess(node.parent, null, "bind")) { + return false; + } + + // The node of `*.bind` member access. + const bindNode = node.parent.parent.type === "ChainExpression" + ? node.parent.parent + : node.parent; + + return ( + bindNode.parent.type === "CallExpression" && + bindNode.parent.callee === bindNode && + bindNode.parent.arguments.length === 1 && + bindNode.parent.arguments[0].type !== "SpreadElement" + ); + } + + /** + * Adds a scope information object to the stack. + * @param {ASTNode} node A node to add. This node is a FunctionExpression + * or a FunctionDeclaration node. + * @returns {void} + */ + function enterFunction(node) { + scopeInfo = { + isBound: isCalleeOfBindMethod(node), + thisFound: false, + upper: scopeInfo + }; + } + + /** + * Removes the scope information object from the top of the stack. + * At the same time, this reports the function node if the function has + * `.bind()` and the `this` keywords found. + * @param {ASTNode} node A node to remove. This node is a + * FunctionExpression or a FunctionDeclaration node. + * @returns {void} + */ + function exitFunction(node) { + if (scopeInfo.isBound && !scopeInfo.thisFound) { + report(node); + } + + scopeInfo = scopeInfo.upper; + } + + /** + * Reports a given arrow function if the function is callee of `.bind()` + * method. + * @param {ASTNode} node A node to report. This node is an + * ArrowFunctionExpression. + * @returns {void} + */ + function exitArrowFunction(node) { + if (isCalleeOfBindMethod(node)) { + report(node); + } + } + + /** + * Set the mark as the `this` keyword was found in this scope. + * @returns {void} + */ + function markAsThisFound() { + if (scopeInfo) { + scopeInfo.thisFound = true; + } + } + + return { + "ArrowFunctionExpression:exit": exitArrowFunction, + FunctionDeclaration: enterFunction, + "FunctionDeclaration:exit": exitFunction, + FunctionExpression: enterFunction, + "FunctionExpression:exit": exitFunction, + ThisExpression: markAsThisFound + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-extra-boolean-cast.js b/node_modules/eslint/lib/rules/no-extra-boolean-cast.js new file mode 100644 index 0000000..45252fe --- /dev/null +++ b/node_modules/eslint/lib/rules/no-extra-boolean-cast.js @@ -0,0 +1,317 @@ +/** + * @fileoverview Rule to flag unnecessary double negation in Boolean contexts + * @author Brandon Mills + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const eslintUtils = require("eslint-utils"); + +const precedence = astUtils.getPrecedence; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary boolean casts", + recommended: true, + url: "https://eslint.org/docs/rules/no-extra-boolean-cast" + }, + + schema: [{ + type: "object", + properties: { + enforceForLogicalOperands: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + fixable: "code", + + messages: { + unexpectedCall: "Redundant Boolean call.", + unexpectedNegation: "Redundant double negation." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + // Node types which have a test which will coerce values to booleans. + const BOOLEAN_NODE_TYPES = new Set([ + "IfStatement", + "DoWhileStatement", + "WhileStatement", + "ConditionalExpression", + "ForStatement" + ]); + + /** + * Check if a node is a Boolean function or constructor. + * @param {ASTNode} node the node + * @returns {boolean} If the node is Boolean function or constructor + */ + function isBooleanFunctionOrConstructorCall(node) { + + // Boolean() and new Boolean() + return (node.type === "CallExpression" || node.type === "NewExpression") && + node.callee.type === "Identifier" && + node.callee.name === "Boolean"; + } + + /** + * Checks whether the node is a logical expression and that the option is enabled + * @param {ASTNode} node the node + * @returns {boolean} if the node is a logical expression and option is enabled + */ + function isLogicalContext(node) { + return node.type === "LogicalExpression" && + (node.operator === "||" || node.operator === "&&") && + (context.options.length && context.options[0].enforceForLogicalOperands === true); + + } + + + /** + * Check if a node is in a context where its value would be coerced to a boolean at runtime. + * @param {ASTNode} node The node + * @returns {boolean} If it is in a boolean context + */ + function isInBooleanContext(node) { + return ( + (isBooleanFunctionOrConstructorCall(node.parent) && + node === node.parent.arguments[0]) || + + (BOOLEAN_NODE_TYPES.has(node.parent.type) && + node === node.parent.test) || + + // ! + (node.parent.type === "UnaryExpression" && + node.parent.operator === "!") + ); + } + + /** + * Checks whether the node is a context that should report an error + * Acts recursively if it is in a logical context + * @param {ASTNode} node the node + * @returns {boolean} If the node is in one of the flagged contexts + */ + function isInFlaggedContext(node) { + if (node.parent.type === "ChainExpression") { + return isInFlaggedContext(node.parent); + } + + return isInBooleanContext(node) || + (isLogicalContext(node.parent) && + + // For nested logical statements + isInFlaggedContext(node.parent) + ); + } + + + /** + * Check if a node has comments inside. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if it has comments inside. + */ + function hasCommentsInside(node) { + return Boolean(sourceCode.getCommentsInside(node).length); + } + + /** + * Checks if the given node is wrapped in grouping parentheses. Parentheses for constructs such as if() don't count. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is parenthesized. + * @private + */ + function isParenthesized(node) { + return eslintUtils.isParenthesized(1, node, sourceCode); + } + + /** + * Determines whether the given node needs to be parenthesized when replacing the previous node. + * It assumes that `previousNode` is the node to be reported by this rule, so it has a limited list + * of possible parent node types. By the same assumption, the node's role in a particular parent is already known. + * For example, if the parent is `ConditionalExpression`, `previousNode` must be its `test` child. + * @param {ASTNode} previousNode Previous node. + * @param {ASTNode} node The node to check. + * @throws {Error} (Unreachable.) + * @returns {boolean} `true` if the node needs to be parenthesized. + */ + function needsParens(previousNode, node) { + if (previousNode.parent.type === "ChainExpression") { + return needsParens(previousNode.parent, node); + } + if (isParenthesized(previousNode)) { + + // parentheses around the previous node will stay, so there is no need for an additional pair + return false; + } + + // parent of the previous node will become parent of the replacement node + const parent = previousNode.parent; + + switch (parent.type) { + case "CallExpression": + case "NewExpression": + return node.type === "SequenceExpression"; + case "IfStatement": + case "DoWhileStatement": + case "WhileStatement": + case "ForStatement": + return false; + case "ConditionalExpression": + return precedence(node) <= precedence(parent); + case "UnaryExpression": + return precedence(node) < precedence(parent); + case "LogicalExpression": + if (astUtils.isMixedLogicalAndCoalesceExpressions(node, parent)) { + return true; + } + if (previousNode === parent.left) { + return precedence(node) < precedence(parent); + } + return precedence(node) <= precedence(parent); + + /* c8 ignore next */ + default: + throw new Error(`Unexpected parent type: ${parent.type}`); + } + } + + return { + UnaryExpression(node) { + const parent = node.parent; + + + // Exit early if it's guaranteed not to match + if (node.operator !== "!" || + parent.type !== "UnaryExpression" || + parent.operator !== "!") { + return; + } + + + if (isInFlaggedContext(parent)) { + context.report({ + node: parent, + messageId: "unexpectedNegation", + fix(fixer) { + if (hasCommentsInside(parent)) { + return null; + } + + if (needsParens(parent, node.argument)) { + return fixer.replaceText(parent, `(${sourceCode.getText(node.argument)})`); + } + + let prefix = ""; + const tokenBefore = sourceCode.getTokenBefore(parent); + const firstReplacementToken = sourceCode.getFirstToken(node.argument); + + if ( + tokenBefore && + tokenBefore.range[1] === parent.range[0] && + !astUtils.canTokensBeAdjacent(tokenBefore, firstReplacementToken) + ) { + prefix = " "; + } + + return fixer.replaceText(parent, prefix + sourceCode.getText(node.argument)); + } + }); + } + }, + + CallExpression(node) { + if (node.callee.type !== "Identifier" || node.callee.name !== "Boolean") { + return; + } + + if (isInFlaggedContext(node)) { + context.report({ + node, + messageId: "unexpectedCall", + fix(fixer) { + const parent = node.parent; + + if (node.arguments.length === 0) { + if (parent.type === "UnaryExpression" && parent.operator === "!") { + + /* + * !Boolean() -> true + */ + + if (hasCommentsInside(parent)) { + return null; + } + + const replacement = "true"; + let prefix = ""; + const tokenBefore = sourceCode.getTokenBefore(parent); + + if ( + tokenBefore && + tokenBefore.range[1] === parent.range[0] && + !astUtils.canTokensBeAdjacent(tokenBefore, replacement) + ) { + prefix = " "; + } + + return fixer.replaceText(parent, prefix + replacement); + } + + /* + * Boolean() -> false + */ + + if (hasCommentsInside(node)) { + return null; + } + + return fixer.replaceText(node, "false"); + } + + if (node.arguments.length === 1) { + const argument = node.arguments[0]; + + if (argument.type === "SpreadElement" || hasCommentsInside(node)) { + return null; + } + + /* + * Boolean(expression) -> expression + */ + + if (needsParens(node, argument)) { + return fixer.replaceText(node, `(${sourceCode.getText(argument)})`); + } + + return fixer.replaceText(node, sourceCode.getText(argument)); + } + + // two or more arguments + return null; + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-extra-label.js b/node_modules/eslint/lib/rules/no-extra-label.js new file mode 100644 index 0000000..bda3dd0 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-extra-label.js @@ -0,0 +1,149 @@ +/** + * @fileoverview Rule to disallow unnecessary labels + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary labels", + recommended: false, + url: "https://eslint.org/docs/rules/no-extra-label" + }, + + schema: [], + fixable: "code", + + messages: { + unexpected: "This label '{{name}}' is unnecessary." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + let scopeInfo = null; + + /** + * Creates a new scope with a breakable statement. + * @param {ASTNode} node A node to create. This is a BreakableStatement. + * @returns {void} + */ + function enterBreakableStatement(node) { + scopeInfo = { + label: node.parent.type === "LabeledStatement" ? node.parent.label : null, + breakable: true, + upper: scopeInfo + }; + } + + /** + * Removes the top scope of the stack. + * @returns {void} + */ + function exitBreakableStatement() { + scopeInfo = scopeInfo.upper; + } + + /** + * Creates a new scope with a labeled statement. + * + * This ignores it if the body is a breakable statement. + * In this case it's handled in the `enterBreakableStatement` function. + * @param {ASTNode} node A node to create. This is a LabeledStatement. + * @returns {void} + */ + function enterLabeledStatement(node) { + if (!astUtils.isBreakableStatement(node.body)) { + scopeInfo = { + label: node.label, + breakable: false, + upper: scopeInfo + }; + } + } + + /** + * Removes the top scope of the stack. + * + * This ignores it if the body is a breakable statement. + * In this case it's handled in the `exitBreakableStatement` function. + * @param {ASTNode} node A node. This is a LabeledStatement. + * @returns {void} + */ + function exitLabeledStatement(node) { + if (!astUtils.isBreakableStatement(node.body)) { + scopeInfo = scopeInfo.upper; + } + } + + /** + * Reports a given control node if it's unnecessary. + * @param {ASTNode} node A node. This is a BreakStatement or a + * ContinueStatement. + * @returns {void} + */ + function reportIfUnnecessary(node) { + if (!node.label) { + return; + } + + const labelNode = node.label; + + for (let info = scopeInfo; info !== null; info = info.upper) { + if (info.breakable || info.label && info.label.name === labelNode.name) { + if (info.breakable && info.label && info.label.name === labelNode.name) { + context.report({ + node: labelNode, + messageId: "unexpected", + data: labelNode, + fix(fixer) { + const breakOrContinueToken = sourceCode.getFirstToken(node); + + if (sourceCode.commentsExistBetween(breakOrContinueToken, labelNode)) { + return null; + } + + return fixer.removeRange([breakOrContinueToken.range[1], labelNode.range[1]]); + } + }); + } + return; + } + } + } + + return { + WhileStatement: enterBreakableStatement, + "WhileStatement:exit": exitBreakableStatement, + DoWhileStatement: enterBreakableStatement, + "DoWhileStatement:exit": exitBreakableStatement, + ForStatement: enterBreakableStatement, + "ForStatement:exit": exitBreakableStatement, + ForInStatement: enterBreakableStatement, + "ForInStatement:exit": exitBreakableStatement, + ForOfStatement: enterBreakableStatement, + "ForOfStatement:exit": exitBreakableStatement, + SwitchStatement: enterBreakableStatement, + "SwitchStatement:exit": exitBreakableStatement, + LabeledStatement: enterLabeledStatement, + "LabeledStatement:exit": exitLabeledStatement, + BreakStatement: reportIfUnnecessary, + ContinueStatement: reportIfUnnecessary + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-extra-parens.js b/node_modules/eslint/lib/rules/no-extra-parens.js new file mode 100644 index 0000000..246a5a0 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-extra-parens.js @@ -0,0 +1,1235 @@ +/** + * @fileoverview Disallow parenthesising higher precedence subexpressions. + * @author Michael Ficarra + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const { isParenthesized: isParenthesizedRaw } = require("eslint-utils"); +const astUtils = require("./utils/ast-utils.js"); + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow unnecessary parentheses", + recommended: false, + url: "https://eslint.org/docs/rules/no-extra-parens" + }, + + fixable: "code", + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["functions"] + } + ], + minItems: 0, + maxItems: 1 + }, + { + type: "array", + items: [ + { + enum: ["all"] + }, + { + type: "object", + properties: { + conditionalAssign: { type: "boolean" }, + nestedBinaryExpressions: { type: "boolean" }, + returnAssign: { type: "boolean" }, + ignoreJSX: { enum: ["none", "all", "single-line", "multi-line"] }, + enforceForArrowConditionals: { type: "boolean" }, + enforceForSequenceExpressions: { type: "boolean" }, + enforceForNewInMemberExpressions: { type: "boolean" }, + enforceForFunctionPrototypeMethods: { type: "boolean" } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + + messages: { + unexpected: "Unnecessary parentheses around expression." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + const tokensToIgnore = new WeakSet(); + const precedence = astUtils.getPrecedence; + const ALL_NODES = context.options[0] !== "functions"; + const EXCEPT_COND_ASSIGN = ALL_NODES && context.options[1] && context.options[1].conditionalAssign === false; + const NESTED_BINARY = ALL_NODES && context.options[1] && context.options[1].nestedBinaryExpressions === false; + const EXCEPT_RETURN_ASSIGN = ALL_NODES && context.options[1] && context.options[1].returnAssign === false; + const IGNORE_JSX = ALL_NODES && context.options[1] && context.options[1].ignoreJSX; + const IGNORE_ARROW_CONDITIONALS = ALL_NODES && context.options[1] && + context.options[1].enforceForArrowConditionals === false; + const IGNORE_SEQUENCE_EXPRESSIONS = ALL_NODES && context.options[1] && + context.options[1].enforceForSequenceExpressions === false; + const IGNORE_NEW_IN_MEMBER_EXPR = ALL_NODES && context.options[1] && + context.options[1].enforceForNewInMemberExpressions === false; + const IGNORE_FUNCTION_PROTOTYPE_METHODS = ALL_NODES && context.options[1] && + context.options[1].enforceForFunctionPrototypeMethods === false; + + const PRECEDENCE_OF_ASSIGNMENT_EXPR = precedence({ type: "AssignmentExpression" }); + const PRECEDENCE_OF_UPDATE_EXPR = precedence({ type: "UpdateExpression" }); + + let reportsBuffer; + + /** + * Determines whether the given node is a `call` or `apply` method call, invoked directly on a `FunctionExpression` node. + * Example: function(){}.call() + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is an immediate `call` or `apply` method call. + * @private + */ + function isImmediateFunctionPrototypeMethodCall(node) { + const callNode = astUtils.skipChainExpression(node); + + if (callNode.type !== "CallExpression") { + return false; + } + const callee = astUtils.skipChainExpression(callNode.callee); + + return ( + callee.type === "MemberExpression" && + callee.object.type === "FunctionExpression" && + ["call", "apply"].includes(astUtils.getStaticPropertyName(callee)) + ); + } + + /** + * Determines if this rule should be enforced for a node given the current configuration. + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the rule should be enforced for this node. + * @private + */ + function ruleApplies(node) { + if (node.type === "JSXElement" || node.type === "JSXFragment") { + const isSingleLine = node.loc.start.line === node.loc.end.line; + + switch (IGNORE_JSX) { + + // Exclude this JSX element from linting + case "all": + return false; + + // Exclude this JSX element if it is multi-line element + case "multi-line": + return isSingleLine; + + // Exclude this JSX element if it is single-line element + case "single-line": + return !isSingleLine; + + // Nothing special to be done for JSX elements + case "none": + break; + + // no default + } + } + + if (node.type === "SequenceExpression" && IGNORE_SEQUENCE_EXPRESSIONS) { + return false; + } + + if (isImmediateFunctionPrototypeMethodCall(node) && IGNORE_FUNCTION_PROTOTYPE_METHODS) { + return false; + } + + return ALL_NODES || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression"; + } + + /** + * Determines if a node is surrounded by parentheses. + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is parenthesised. + * @private + */ + function isParenthesised(node) { + return isParenthesizedRaw(1, node, sourceCode); + } + + /** + * Determines if a node is surrounded by parentheses twice. + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is doubly parenthesised. + * @private + */ + function isParenthesisedTwice(node) { + return isParenthesizedRaw(2, node, sourceCode); + } + + /** + * Determines if a node is surrounded by (potentially) invalid parentheses. + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is incorrectly parenthesised. + * @private + */ + function hasExcessParens(node) { + return ruleApplies(node) && isParenthesised(node); + } + + /** + * Determines if a node that is expected to be parenthesised is surrounded by + * (potentially) invalid extra parentheses. + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is has an unexpected extra pair of parentheses. + * @private + */ + function hasDoubleExcessParens(node) { + return ruleApplies(node) && isParenthesisedTwice(node); + } + + /** + * Determines if a node that is expected to be parenthesised is surrounded by + * (potentially) invalid extra parentheses with considering precedence level of the node. + * If the preference level of the node is not higher or equal to precedence lower limit, it also checks + * whether the node is surrounded by parentheses twice or not. + * @param {ASTNode} node The node to be checked. + * @param {number} precedenceLowerLimit The lower limit of precedence. + * @returns {boolean} True if the node is has an unexpected extra pair of parentheses. + * @private + */ + function hasExcessParensWithPrecedence(node, precedenceLowerLimit) { + if (ruleApplies(node) && isParenthesised(node)) { + if ( + precedence(node) >= precedenceLowerLimit || + isParenthesisedTwice(node) + ) { + return true; + } + } + return false; + } + + /** + * Determines if a node test expression is allowed to have a parenthesised assignment + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the assignment can be parenthesised. + * @private + */ + function isCondAssignException(node) { + return EXCEPT_COND_ASSIGN && node.test.type === "AssignmentExpression"; + } + + /** + * Determines if a node is in a return statement + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is in a return statement. + * @private + */ + function isInReturnStatement(node) { + for (let currentNode = node; currentNode; currentNode = currentNode.parent) { + if ( + currentNode.type === "ReturnStatement" || + (currentNode.type === "ArrowFunctionExpression" && currentNode.body.type !== "BlockStatement") + ) { + return true; + } + } + + return false; + } + + /** + * Determines if a constructor function is newed-up with parens + * @param {ASTNode} newExpression The NewExpression node to be checked. + * @returns {boolean} True if the constructor is called with parens. + * @private + */ + function isNewExpressionWithParens(newExpression) { + const lastToken = sourceCode.getLastToken(newExpression); + const penultimateToken = sourceCode.getTokenBefore(lastToken); + + return newExpression.arguments.length > 0 || + ( + + // The expression should end with its own parens, e.g., new new foo() is not a new expression with parens + astUtils.isOpeningParenToken(penultimateToken) && + astUtils.isClosingParenToken(lastToken) && + newExpression.callee.range[1] < newExpression.range[1] + ); + } + + /** + * Determines if a node is or contains an assignment expression + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is or contains an assignment expression. + * @private + */ + function containsAssignment(node) { + if (node.type === "AssignmentExpression") { + return true; + } + if (node.type === "ConditionalExpression" && + (node.consequent.type === "AssignmentExpression" || node.alternate.type === "AssignmentExpression")) { + return true; + } + if ((node.left && node.left.type === "AssignmentExpression") || + (node.right && node.right.type === "AssignmentExpression")) { + return true; + } + + return false; + } + + /** + * Determines if a node is contained by or is itself a return statement and is allowed to have a parenthesised assignment + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the assignment can be parenthesised. + * @private + */ + function isReturnAssignException(node) { + if (!EXCEPT_RETURN_ASSIGN || !isInReturnStatement(node)) { + return false; + } + + if (node.type === "ReturnStatement") { + return node.argument && containsAssignment(node.argument); + } + if (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") { + return containsAssignment(node.body); + } + return containsAssignment(node); + + } + + /** + * Determines if a node following a [no LineTerminator here] restriction is + * surrounded by (potentially) invalid extra parentheses. + * @param {Token} token The token preceding the [no LineTerminator here] restriction. + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is incorrectly parenthesised. + * @private + */ + function hasExcessParensNoLineTerminator(token, node) { + if (token.loc.end.line === node.loc.start.line) { + return hasExcessParens(node); + } + + return hasDoubleExcessParens(node); + } + + /** + * Determines whether a node should be preceded by an additional space when removing parens + * @param {ASTNode} node node to evaluate; must be surrounded by parentheses + * @returns {boolean} `true` if a space should be inserted before the node + * @private + */ + function requiresLeadingSpace(node) { + const leftParenToken = sourceCode.getTokenBefore(node); + const tokenBeforeLeftParen = sourceCode.getTokenBefore(leftParenToken, { includeComments: true }); + const tokenAfterLeftParen = sourceCode.getTokenAfter(leftParenToken, { includeComments: true }); + + return tokenBeforeLeftParen && + tokenBeforeLeftParen.range[1] === leftParenToken.range[0] && + leftParenToken.range[1] === tokenAfterLeftParen.range[0] && + !astUtils.canTokensBeAdjacent(tokenBeforeLeftParen, tokenAfterLeftParen); + } + + /** + * Determines whether a node should be followed by an additional space when removing parens + * @param {ASTNode} node node to evaluate; must be surrounded by parentheses + * @returns {boolean} `true` if a space should be inserted after the node + * @private + */ + function requiresTrailingSpace(node) { + const nextTwoTokens = sourceCode.getTokensAfter(node, { count: 2 }); + const rightParenToken = nextTwoTokens[0]; + const tokenAfterRightParen = nextTwoTokens[1]; + const tokenBeforeRightParen = sourceCode.getLastToken(node); + + return rightParenToken && tokenAfterRightParen && + !sourceCode.isSpaceBetweenTokens(rightParenToken, tokenAfterRightParen) && + !astUtils.canTokensBeAdjacent(tokenBeforeRightParen, tokenAfterRightParen); + } + + /** + * Determines if a given expression node is an IIFE + * @param {ASTNode} node The node to check + * @returns {boolean} `true` if the given node is an IIFE + */ + function isIIFE(node) { + const maybeCallNode = astUtils.skipChainExpression(node); + + return maybeCallNode.type === "CallExpression" && maybeCallNode.callee.type === "FunctionExpression"; + } + + /** + * Determines if the given node can be the assignment target in destructuring or the LHS of an assignment. + * This is to avoid an autofix that could change behavior because parsers mistakenly allow invalid syntax, + * such as `(a = b) = c` and `[(a = b) = c] = []`. Ideally, this function shouldn't be necessary. + * @param {ASTNode} [node] The node to check + * @returns {boolean} `true` if the given node can be a valid assignment target + */ + function canBeAssignmentTarget(node) { + return node && (node.type === "Identifier" || node.type === "MemberExpression"); + } + + /** + * Report the node + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function report(node) { + const leftParenToken = sourceCode.getTokenBefore(node); + const rightParenToken = sourceCode.getTokenAfter(node); + + if (!isParenthesisedTwice(node)) { + if (tokensToIgnore.has(sourceCode.getFirstToken(node))) { + return; + } + + if (isIIFE(node) && !isParenthesised(node.callee)) { + return; + } + } + + /** + * Finishes reporting + * @returns {void} + * @private + */ + function finishReport() { + context.report({ + node, + loc: leftParenToken.loc, + messageId: "unexpected", + fix(fixer) { + const parenthesizedSource = sourceCode.text.slice(leftParenToken.range[1], rightParenToken.range[0]); + + return fixer.replaceTextRange([ + leftParenToken.range[0], + rightParenToken.range[1] + ], (requiresLeadingSpace(node) ? " " : "") + parenthesizedSource + (requiresTrailingSpace(node) ? " " : "")); + } + }); + } + + if (reportsBuffer) { + reportsBuffer.reports.push({ node, finishReport }); + return; + } + + finishReport(); + } + + /** + * Evaluate a argument of the node. + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkArgumentWithPrecedence(node) { + if (hasExcessParensWithPrecedence(node.argument, precedence(node))) { + report(node.argument); + } + } + + /** + * Check if a member expression contains a call expression + * @param {ASTNode} node MemberExpression node to evaluate + * @returns {boolean} true if found, false if not + */ + function doesMemberExpressionContainCallExpression(node) { + let currentNode = node.object; + let currentNodeType = node.object.type; + + while (currentNodeType === "MemberExpression") { + currentNode = currentNode.object; + currentNodeType = currentNode.type; + } + + return currentNodeType === "CallExpression"; + } + + /** + * Evaluate a new call + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkCallNew(node) { + const callee = node.callee; + + if (hasExcessParensWithPrecedence(callee, precedence(node))) { + if ( + hasDoubleExcessParens(callee) || + !( + isIIFE(node) || + + // (new A)(); new (new A)(); + ( + callee.type === "NewExpression" && + !isNewExpressionWithParens(callee) && + !( + node.type === "NewExpression" && + !isNewExpressionWithParens(node) + ) + ) || + + // new (a().b)(); new (a.b().c); + ( + node.type === "NewExpression" && + callee.type === "MemberExpression" && + doesMemberExpressionContainCallExpression(callee) + ) || + + // (a?.b)(); (a?.())(); + ( + !node.optional && + callee.type === "ChainExpression" + ) + ) + ) { + report(node.callee); + } + } + node.arguments + .filter(arg => hasExcessParensWithPrecedence(arg, PRECEDENCE_OF_ASSIGNMENT_EXPR)) + .forEach(report); + } + + /** + * Evaluate binary logicals + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkBinaryLogical(node) { + const prec = precedence(node); + const leftPrecedence = precedence(node.left); + const rightPrecedence = precedence(node.right); + const isExponentiation = node.operator === "**"; + const shouldSkipLeft = NESTED_BINARY && (node.left.type === "BinaryExpression" || node.left.type === "LogicalExpression"); + const shouldSkipRight = NESTED_BINARY && (node.right.type === "BinaryExpression" || node.right.type === "LogicalExpression"); + + if (!shouldSkipLeft && hasExcessParens(node.left)) { + if ( + !(["AwaitExpression", "UnaryExpression"].includes(node.left.type) && isExponentiation) && + !astUtils.isMixedLogicalAndCoalesceExpressions(node.left, node) && + (leftPrecedence > prec || (leftPrecedence === prec && !isExponentiation)) || + isParenthesisedTwice(node.left) + ) { + report(node.left); + } + } + + if (!shouldSkipRight && hasExcessParens(node.right)) { + if ( + !astUtils.isMixedLogicalAndCoalesceExpressions(node.right, node) && + (rightPrecedence > prec || (rightPrecedence === prec && isExponentiation)) || + isParenthesisedTwice(node.right) + ) { + report(node.right); + } + } + } + + /** + * Check the parentheses around the super class of the given class definition. + * @param {ASTNode} node The node of class declarations to check. + * @returns {void} + */ + function checkClass(node) { + if (!node.superClass) { + return; + } + + /* + * If `node.superClass` is a LeftHandSideExpression, parentheses are extra. + * Otherwise, parentheses are needed. + */ + const hasExtraParens = precedence(node.superClass) > PRECEDENCE_OF_UPDATE_EXPR + ? hasExcessParens(node.superClass) + : hasDoubleExcessParens(node.superClass); + + if (hasExtraParens) { + report(node.superClass); + } + } + + /** + * Check the parentheses around the argument of the given spread operator. + * @param {ASTNode} node The node of spread elements/properties to check. + * @returns {void} + */ + function checkSpreadOperator(node) { + if (hasExcessParensWithPrecedence(node.argument, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.argument); + } + } + + /** + * Checks the parentheses for an ExpressionStatement or ExportDefaultDeclaration + * @param {ASTNode} node The ExpressionStatement.expression or ExportDefaultDeclaration.declaration node + * @returns {void} + */ + function checkExpressionOrExportStatement(node) { + const firstToken = isParenthesised(node) ? sourceCode.getTokenBefore(node) : sourceCode.getFirstToken(node); + const secondToken = sourceCode.getTokenAfter(firstToken, astUtils.isNotOpeningParenToken); + const thirdToken = secondToken ? sourceCode.getTokenAfter(secondToken) : null; + const tokenAfterClosingParens = secondToken ? sourceCode.getTokenAfter(secondToken, astUtils.isNotClosingParenToken) : null; + + if ( + astUtils.isOpeningParenToken(firstToken) && + ( + astUtils.isOpeningBraceToken(secondToken) || + secondToken.type === "Keyword" && ( + secondToken.value === "function" || + secondToken.value === "class" || + secondToken.value === "let" && + tokenAfterClosingParens && + ( + astUtils.isOpeningBracketToken(tokenAfterClosingParens) || + tokenAfterClosingParens.type === "Identifier" + ) + ) || + secondToken && secondToken.type === "Identifier" && secondToken.value === "async" && thirdToken && thirdToken.type === "Keyword" && thirdToken.value === "function" + ) + ) { + tokensToIgnore.add(secondToken); + } + + const hasExtraParens = node.parent.type === "ExportDefaultDeclaration" + ? hasExcessParensWithPrecedence(node, PRECEDENCE_OF_ASSIGNMENT_EXPR) + : hasExcessParens(node); + + if (hasExtraParens) { + report(node); + } + } + + /** + * Finds the path from the given node to the specified ancestor. + * @param {ASTNode} node First node in the path. + * @param {ASTNode} ancestor Last node in the path. + * @returns {ASTNode[]} Path, including both nodes. + * @throws {Error} If the given node does not have the specified ancestor. + */ + function pathToAncestor(node, ancestor) { + const path = [node]; + let currentNode = node; + + while (currentNode !== ancestor) { + + currentNode = currentNode.parent; + + /* c8 ignore start */ + if (currentNode === null) { + throw new Error("Nodes are not in the ancestor-descendant relationship."); + }/* c8 ignore stop */ + + path.push(currentNode); + } + + return path; + } + + /** + * Finds the path from the given node to the specified descendant. + * @param {ASTNode} node First node in the path. + * @param {ASTNode} descendant Last node in the path. + * @returns {ASTNode[]} Path, including both nodes. + * @throws {Error} If the given node does not have the specified descendant. + */ + function pathToDescendant(node, descendant) { + return pathToAncestor(descendant, node).reverse(); + } + + /** + * Checks whether the syntax of the given ancestor of an 'in' expression inside a for-loop initializer + * is preventing the 'in' keyword from being interpreted as a part of an ill-formed for-in loop. + * @param {ASTNode} node Ancestor of an 'in' expression. + * @param {ASTNode} child Child of the node, ancestor of the same 'in' expression or the 'in' expression itself. + * @returns {boolean} True if the keyword 'in' would be interpreted as the 'in' operator, without any parenthesis. + */ + function isSafelyEnclosingInExpression(node, child) { + switch (node.type) { + case "ArrayExpression": + case "ArrayPattern": + case "BlockStatement": + case "ObjectExpression": + case "ObjectPattern": + case "TemplateLiteral": + return true; + case "ArrowFunctionExpression": + case "FunctionExpression": + return node.params.includes(child); + case "CallExpression": + case "NewExpression": + return node.arguments.includes(child); + case "MemberExpression": + return node.computed && node.property === child; + case "ConditionalExpression": + return node.consequent === child; + default: + return false; + } + } + + /** + * Starts a new reports buffering. Warnings will be stored in a buffer instead of being reported immediately. + * An additional logic that requires multiple nodes (e.g. a whole subtree) may dismiss some of the stored warnings. + * @returns {void} + */ + function startNewReportsBuffering() { + reportsBuffer = { + upper: reportsBuffer, + inExpressionNodes: [], + reports: [] + }; + } + + /** + * Ends the current reports buffering. + * @returns {void} + */ + function endCurrentReportsBuffering() { + const { upper, inExpressionNodes, reports } = reportsBuffer; + + if (upper) { + upper.inExpressionNodes.push(...inExpressionNodes); + upper.reports.push(...reports); + } else { + + // flush remaining reports + reports.forEach(({ finishReport }) => finishReport()); + } + + reportsBuffer = upper; + } + + /** + * Checks whether the given node is in the current reports buffer. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if the node is in the current buffer, false otherwise. + */ + function isInCurrentReportsBuffer(node) { + return reportsBuffer.reports.some(r => r.node === node); + } + + /** + * Removes the given node from the current reports buffer. + * @param {ASTNode} node Node to remove. + * @returns {void} + */ + function removeFromCurrentReportsBuffer(node) { + reportsBuffer.reports = reportsBuffer.reports.filter(r => r.node !== node); + } + + /** + * Checks whether a node is a MemberExpression at NewExpression's callee. + * @param {ASTNode} node node to check. + * @returns {boolean} True if the node is a MemberExpression at NewExpression's callee. false otherwise. + */ + function isMemberExpInNewCallee(node) { + if (node.type === "MemberExpression") { + return node.parent.type === "NewExpression" && node.parent.callee === node + ? true + : node.parent.object === node && isMemberExpInNewCallee(node.parent); + } + return false; + } + + return { + ArrayExpression(node) { + node.elements + .filter(e => e && hasExcessParensWithPrecedence(e, PRECEDENCE_OF_ASSIGNMENT_EXPR)) + .forEach(report); + }, + + ArrayPattern(node) { + node.elements + .filter(e => canBeAssignmentTarget(e) && hasExcessParens(e)) + .forEach(report); + }, + + ArrowFunctionExpression(node) { + if (isReturnAssignException(node)) { + return; + } + + if (node.body.type === "ConditionalExpression" && + IGNORE_ARROW_CONDITIONALS + ) { + return; + } + + if (node.body.type !== "BlockStatement") { + const firstBodyToken = sourceCode.getFirstToken(node.body, astUtils.isNotOpeningParenToken); + const tokenBeforeFirst = sourceCode.getTokenBefore(firstBodyToken); + + if (astUtils.isOpeningParenToken(tokenBeforeFirst) && astUtils.isOpeningBraceToken(firstBodyToken)) { + tokensToIgnore.add(firstBodyToken); + } + if (hasExcessParensWithPrecedence(node.body, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.body); + } + } + }, + + AssignmentExpression(node) { + if (canBeAssignmentTarget(node.left) && hasExcessParens(node.left)) { + report(node.left); + } + + if (!isReturnAssignException(node) && hasExcessParensWithPrecedence(node.right, precedence(node))) { + report(node.right); + } + }, + + BinaryExpression(node) { + if (reportsBuffer && node.operator === "in") { + reportsBuffer.inExpressionNodes.push(node); + } + + checkBinaryLogical(node); + }, + + CallExpression: checkCallNew, + + ConditionalExpression(node) { + if (isReturnAssignException(node)) { + return; + } + if ( + !isCondAssignException(node) && + hasExcessParensWithPrecedence(node.test, precedence({ type: "LogicalExpression", operator: "||" })) + ) { + report(node.test); + } + + if (hasExcessParensWithPrecedence(node.consequent, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.consequent); + } + + if (hasExcessParensWithPrecedence(node.alternate, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.alternate); + } + }, + + DoWhileStatement(node) { + if (hasExcessParens(node.test) && !isCondAssignException(node)) { + report(node.test); + } + }, + + ExportDefaultDeclaration: node => checkExpressionOrExportStatement(node.declaration), + ExpressionStatement: node => checkExpressionOrExportStatement(node.expression), + + ForInStatement(node) { + if (node.left.type !== "VariableDeclaration") { + const firstLeftToken = sourceCode.getFirstToken(node.left, astUtils.isNotOpeningParenToken); + + if ( + firstLeftToken.value === "let" && + astUtils.isOpeningBracketToken( + sourceCode.getTokenAfter(firstLeftToken, astUtils.isNotClosingParenToken) + ) + ) { + + // ForInStatement#left expression cannot start with `let[`. + tokensToIgnore.add(firstLeftToken); + } + } + + if (hasExcessParens(node.left)) { + report(node.left); + } + + if (hasExcessParens(node.right)) { + report(node.right); + } + }, + + ForOfStatement(node) { + if (node.left.type !== "VariableDeclaration") { + const firstLeftToken = sourceCode.getFirstToken(node.left, astUtils.isNotOpeningParenToken); + + if (firstLeftToken.value === "let") { + + // ForOfStatement#left expression cannot start with `let`. + tokensToIgnore.add(firstLeftToken); + } + } + + if (hasExcessParens(node.left)) { + report(node.left); + } + + if (hasExcessParensWithPrecedence(node.right, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.right); + } + }, + + ForStatement(node) { + if (node.test && hasExcessParens(node.test) && !isCondAssignException(node)) { + report(node.test); + } + + if (node.update && hasExcessParens(node.update)) { + report(node.update); + } + + if (node.init) { + + if (node.init.type !== "VariableDeclaration") { + const firstToken = sourceCode.getFirstToken(node.init, astUtils.isNotOpeningParenToken); + + if ( + firstToken.value === "let" && + astUtils.isOpeningBracketToken( + sourceCode.getTokenAfter(firstToken, astUtils.isNotClosingParenToken) + ) + ) { + + // ForStatement#init expression cannot start with `let[`. + tokensToIgnore.add(firstToken); + } + } + + startNewReportsBuffering(); + + if (hasExcessParens(node.init)) { + report(node.init); + } + } + }, + + "ForStatement > *.init:exit"(node) { + + /* + * Removing parentheses around `in` expressions might change semantics and cause errors. + * + * For example, this valid for loop: + * for (let a = (b in c); ;); + * after removing parentheses would be treated as an invalid for-in loop: + * for (let a = b in c; ;); + */ + + if (reportsBuffer.reports.length) { + reportsBuffer.inExpressionNodes.forEach(inExpressionNode => { + const path = pathToDescendant(node, inExpressionNode); + let nodeToExclude; + + for (let i = 0; i < path.length; i++) { + const pathNode = path[i]; + + if (i < path.length - 1) { + const nextPathNode = path[i + 1]; + + if (isSafelyEnclosingInExpression(pathNode, nextPathNode)) { + + // The 'in' expression in safely enclosed by the syntax of its ancestor nodes (e.g. by '{}' or '[]'). + return; + } + } + + if (isParenthesised(pathNode)) { + if (isInCurrentReportsBuffer(pathNode)) { + + // This node was supposed to be reported, but parentheses might be necessary. + + if (isParenthesisedTwice(pathNode)) { + + /* + * This node is parenthesised twice, it certainly has at least one pair of `extra` parentheses. + * If the --fix option is on, the current fixing iteration will remove only one pair of parentheses. + * The remaining pair is safely enclosing the 'in' expression. + */ + return; + } + + // Exclude the outermost node only. + if (!nodeToExclude) { + nodeToExclude = pathNode; + } + + // Don't break the loop here, there might be some safe nodes or parentheses that will stay inside. + + } else { + + // This node will stay parenthesised, the 'in' expression in safely enclosed by '()'. + return; + } + } + } + + // Exclude the node from the list (i.e. treat parentheses as necessary) + removeFromCurrentReportsBuffer(nodeToExclude); + }); + } + + endCurrentReportsBuffering(); + }, + + IfStatement(node) { + if (hasExcessParens(node.test) && !isCondAssignException(node)) { + report(node.test); + } + }, + + ImportExpression(node) { + const { source } = node; + + if (source.type === "SequenceExpression") { + if (hasDoubleExcessParens(source)) { + report(source); + } + } else if (hasExcessParens(source)) { + report(source); + } + }, + + LogicalExpression: checkBinaryLogical, + + MemberExpression(node) { + const shouldAllowWrapOnce = isMemberExpInNewCallee(node) && + doesMemberExpressionContainCallExpression(node); + const nodeObjHasExcessParens = shouldAllowWrapOnce + ? hasDoubleExcessParens(node.object) + : hasExcessParens(node.object) && + !( + isImmediateFunctionPrototypeMethodCall(node.parent) && + node.parent.callee === node && + IGNORE_FUNCTION_PROTOTYPE_METHODS + ); + + if ( + nodeObjHasExcessParens && + precedence(node.object) >= precedence(node) && + ( + node.computed || + !( + astUtils.isDecimalInteger(node.object) || + + // RegExp literal is allowed to have parens (#1589) + (node.object.type === "Literal" && node.object.regex) + ) + ) + ) { + report(node.object); + } + + if (nodeObjHasExcessParens && + node.object.type === "CallExpression" + ) { + report(node.object); + } + + if (nodeObjHasExcessParens && + !IGNORE_NEW_IN_MEMBER_EXPR && + node.object.type === "NewExpression" && + isNewExpressionWithParens(node.object)) { + report(node.object); + } + + if (nodeObjHasExcessParens && + node.optional && + node.object.type === "ChainExpression" + ) { + report(node.object); + } + + if (node.computed && hasExcessParens(node.property)) { + report(node.property); + } + }, + + "MethodDefinition[computed=true]"(node) { + if (hasExcessParensWithPrecedence(node.key, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.key); + } + }, + + NewExpression: checkCallNew, + + ObjectExpression(node) { + node.properties + .filter(property => property.value && hasExcessParensWithPrecedence(property.value, PRECEDENCE_OF_ASSIGNMENT_EXPR)) + .forEach(property => report(property.value)); + }, + + ObjectPattern(node) { + node.properties + .filter(property => { + const value = property.value; + + return canBeAssignmentTarget(value) && hasExcessParens(value); + }).forEach(property => report(property.value)); + }, + + Property(node) { + if (node.computed) { + const { key } = node; + + if (key && hasExcessParensWithPrecedence(key, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(key); + } + } + }, + + PropertyDefinition(node) { + if (node.computed && hasExcessParensWithPrecedence(node.key, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.key); + } + + if (node.value && hasExcessParensWithPrecedence(node.value, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.value); + } + }, + + RestElement(node) { + const argument = node.argument; + + if (canBeAssignmentTarget(argument) && hasExcessParens(argument)) { + report(argument); + } + }, + + ReturnStatement(node) { + const returnToken = sourceCode.getFirstToken(node); + + if (isReturnAssignException(node)) { + return; + } + + if (node.argument && + hasExcessParensNoLineTerminator(returnToken, node.argument) && + + // RegExp literal is allowed to have parens (#1589) + !(node.argument.type === "Literal" && node.argument.regex)) { + report(node.argument); + } + }, + + SequenceExpression(node) { + const precedenceOfNode = precedence(node); + + node.expressions + .filter(e => hasExcessParensWithPrecedence(e, precedenceOfNode)) + .forEach(report); + }, + + SwitchCase(node) { + if (node.test && hasExcessParens(node.test)) { + report(node.test); + } + }, + + SwitchStatement(node) { + if (hasExcessParens(node.discriminant)) { + report(node.discriminant); + } + }, + + ThrowStatement(node) { + const throwToken = sourceCode.getFirstToken(node); + + if (hasExcessParensNoLineTerminator(throwToken, node.argument)) { + report(node.argument); + } + }, + + UnaryExpression: checkArgumentWithPrecedence, + UpdateExpression(node) { + if (node.prefix) { + checkArgumentWithPrecedence(node); + } else { + const { argument } = node; + const operatorToken = sourceCode.getLastToken(node); + + if (argument.loc.end.line === operatorToken.loc.start.line) { + checkArgumentWithPrecedence(node); + } else { + if (hasDoubleExcessParens(argument)) { + report(argument); + } + } + } + }, + AwaitExpression: checkArgumentWithPrecedence, + + VariableDeclarator(node) { + if ( + node.init && hasExcessParensWithPrecedence(node.init, PRECEDENCE_OF_ASSIGNMENT_EXPR) && + + // RegExp literal is allowed to have parens (#1589) + !(node.init.type === "Literal" && node.init.regex) + ) { + report(node.init); + } + }, + + WhileStatement(node) { + if (hasExcessParens(node.test) && !isCondAssignException(node)) { + report(node.test); + } + }, + + WithStatement(node) { + if (hasExcessParens(node.object)) { + report(node.object); + } + }, + + YieldExpression(node) { + if (node.argument) { + const yieldToken = sourceCode.getFirstToken(node); + + if ((precedence(node.argument) >= precedence(node) && + hasExcessParensNoLineTerminator(yieldToken, node.argument)) || + hasDoubleExcessParens(node.argument)) { + report(node.argument); + } + } + }, + + ClassDeclaration: checkClass, + ClassExpression: checkClass, + + SpreadElement: checkSpreadOperator, + SpreadProperty: checkSpreadOperator, + ExperimentalSpreadProperty: checkSpreadOperator, + + TemplateLiteral(node) { + node.expressions + .filter(e => e && hasExcessParens(e)) + .forEach(report); + }, + + AssignmentPattern(node) { + const { left, right } = node; + + if (canBeAssignmentTarget(left) && hasExcessParens(left)) { + report(left); + } + + if (right && hasExcessParensWithPrecedence(right, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(right); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-extra-semi.js b/node_modules/eslint/lib/rules/no-extra-semi.js new file mode 100644 index 0000000..c61ad37 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-extra-semi.js @@ -0,0 +1,126 @@ +/** + * @fileoverview Rule to flag use of unnecessary semicolons + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const FixTracker = require("./utils/fix-tracker"); +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary semicolons", + recommended: true, + url: "https://eslint.org/docs/rules/no-extra-semi" + }, + + fixable: "code", + schema: [], + + messages: { + unexpected: "Unnecessary semicolon." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Reports an unnecessary semicolon error. + * @param {Node|Token} nodeOrToken A node or a token to be reported. + * @returns {void} + */ + function report(nodeOrToken) { + context.report({ + node: nodeOrToken, + messageId: "unexpected", + fix(fixer) { + + /* + * Expand the replacement range to include the surrounding + * tokens to avoid conflicting with semi. + * https://github.com/eslint/eslint/issues/7928 + */ + return new FixTracker(fixer, context.getSourceCode()) + .retainSurroundingTokens(nodeOrToken) + .remove(nodeOrToken); + } + }); + } + + /** + * Checks for a part of a class body. + * This checks tokens from a specified token to a next MethodDefinition or the end of class body. + * @param {Token} firstToken The first token to check. + * @returns {void} + */ + function checkForPartOfClassBody(firstToken) { + for (let token = firstToken; + token.type === "Punctuator" && !astUtils.isClosingBraceToken(token); + token = sourceCode.getTokenAfter(token) + ) { + if (astUtils.isSemicolonToken(token)) { + report(token); + } + } + } + + return { + + /** + * Reports this empty statement, except if the parent node is a loop. + * @param {Node} node A EmptyStatement node to be reported. + * @returns {void} + */ + EmptyStatement(node) { + const parent = node.parent, + allowedParentTypes = [ + "ForStatement", + "ForInStatement", + "ForOfStatement", + "WhileStatement", + "DoWhileStatement", + "IfStatement", + "LabeledStatement", + "WithStatement" + ]; + + if (!allowedParentTypes.includes(parent.type)) { + report(node); + } + }, + + /** + * Checks tokens from the head of this class body to the first MethodDefinition or the end of this class body. + * @param {Node} node A ClassBody node to check. + * @returns {void} + */ + ClassBody(node) { + checkForPartOfClassBody(sourceCode.getFirstToken(node, 1)); // 0 is `{`. + }, + + /** + * Checks tokens from this MethodDefinition to the next MethodDefinition or the end of this class body. + * @param {Node} node A MethodDefinition node of the start point. + * @returns {void} + */ + "MethodDefinition, PropertyDefinition, StaticBlock"(node) { + checkForPartOfClassBody(sourceCode.getTokenAfter(node)); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-fallthrough.js b/node_modules/eslint/lib/rules/no-fallthrough.js new file mode 100644 index 0000000..536aa21 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-fallthrough.js @@ -0,0 +1,152 @@ +/** + * @fileoverview Rule to flag fall-through cases in switch statements. + * @author Matt DuVall + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const DEFAULT_FALLTHROUGH_COMMENT = /falls?\s?through/iu; + +/** + * Checks whether or not a given case has a fallthrough comment. + * @param {ASTNode} caseWhichFallsThrough SwitchCase node which falls through. + * @param {ASTNode} subsequentCase The case after caseWhichFallsThrough. + * @param {RuleContext} context A rule context which stores comments. + * @param {RegExp} fallthroughCommentPattern A pattern to match comment to. + * @returns {boolean} `true` if the case has a valid fallthrough comment. + */ +function hasFallthroughComment(caseWhichFallsThrough, subsequentCase, context, fallthroughCommentPattern) { + const sourceCode = context.getSourceCode(); + + if (caseWhichFallsThrough.consequent.length === 1 && caseWhichFallsThrough.consequent[0].type === "BlockStatement") { + const trailingCloseBrace = sourceCode.getLastToken(caseWhichFallsThrough.consequent[0]); + const commentInBlock = sourceCode.getCommentsBefore(trailingCloseBrace).pop(); + + if (commentInBlock && fallthroughCommentPattern.test(commentInBlock.value)) { + return true; + } + } + + const comment = sourceCode.getCommentsBefore(subsequentCase).pop(); + + return Boolean(comment && fallthroughCommentPattern.test(comment.value)); +} + +/** + * Checks whether or not a given code path segment is reachable. + * @param {CodePathSegment} segment A CodePathSegment to check. + * @returns {boolean} `true` if the segment is reachable. + */ +function isReachable(segment) { + return segment.reachable; +} + +/** + * Checks whether a node and a token are separated by blank lines + * @param {ASTNode} node The node to check + * @param {Token} token The token to compare against + * @returns {boolean} `true` if there are blank lines between node and token + */ +function hasBlankLinesBetween(node, token) { + return token.loc.start.line > node.loc.end.line + 1; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow fallthrough of `case` statements", + recommended: true, + url: "https://eslint.org/docs/rules/no-fallthrough" + }, + + schema: [ + { + type: "object", + properties: { + commentPattern: { + type: "string", + default: "" + }, + allowEmptyCase: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + messages: { + case: "Expected a 'break' statement before 'case'.", + default: "Expected a 'break' statement before 'default'." + } + }, + + create(context) { + const options = context.options[0] || {}; + let currentCodePath = null; + const sourceCode = context.getSourceCode(); + const allowEmptyCase = options.allowEmptyCase || false; + + /* + * We need to use leading comments of the next SwitchCase node because + * trailing comments is wrong if semicolons are omitted. + */ + let fallthroughCase = null; + let fallthroughCommentPattern = null; + + if (options.commentPattern) { + fallthroughCommentPattern = new RegExp(options.commentPattern, "u"); + } else { + fallthroughCommentPattern = DEFAULT_FALLTHROUGH_COMMENT; + } + return { + onCodePathStart(codePath) { + currentCodePath = codePath; + }, + onCodePathEnd() { + currentCodePath = currentCodePath.upper; + }, + + SwitchCase(node) { + + /* + * Checks whether or not there is a fallthrough comment. + * And reports the previous fallthrough node if that does not exist. + */ + + if (fallthroughCase && (!hasFallthroughComment(fallthroughCase, node, context, fallthroughCommentPattern))) { + context.report({ + messageId: node.test ? "case" : "default", + node + }); + } + fallthroughCase = null; + }, + + "SwitchCase:exit"(node) { + const nextToken = sourceCode.getTokenAfter(node); + + /* + * `reachable` meant fall through because statements preceded by + * `break`, `return`, or `throw` are unreachable. + * And allows empty cases and the last case. + */ + if (currentCodePath.currentSegments.some(isReachable) && + (node.consequent.length > 0 || (!allowEmptyCase && hasBlankLinesBetween(node, nextToken))) && + node.parent.cases[node.parent.cases.length - 1] !== node) { + fallthroughCase = node; + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-floating-decimal.js b/node_modules/eslint/lib/rules/no-floating-decimal.js new file mode 100644 index 0000000..cce50bf --- /dev/null +++ b/node_modules/eslint/lib/rules/no-floating-decimal.js @@ -0,0 +1,70 @@ +/** + * @fileoverview Rule to flag use of a leading/trailing decimal point in a numeric literal + * @author James Allardice + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow leading or trailing decimal points in numeric literals", + recommended: false, + url: "https://eslint.org/docs/rules/no-floating-decimal" + }, + + schema: [], + fixable: "code", + messages: { + leading: "A leading decimal point can be confused with a dot.", + trailing: "A trailing decimal point can be confused with a dot." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + Literal(node) { + + if (typeof node.value === "number") { + if (node.raw.startsWith(".")) { + context.report({ + node, + messageId: "leading", + fix(fixer) { + const tokenBefore = sourceCode.getTokenBefore(node); + const needsSpaceBefore = tokenBefore && + tokenBefore.range[1] === node.range[0] && + !astUtils.canTokensBeAdjacent(tokenBefore, `0${node.raw}`); + + return fixer.insertTextBefore(node, needsSpaceBefore ? " 0" : "0"); + } + }); + } + if (node.raw.indexOf(".") === node.raw.length - 1) { + context.report({ + node, + messageId: "trailing", + fix: fixer => fixer.insertTextAfter(node, "0") + }); + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-func-assign.js b/node_modules/eslint/lib/rules/no-func-assign.js new file mode 100644 index 0000000..2c8fa6a --- /dev/null +++ b/node_modules/eslint/lib/rules/no-func-assign.js @@ -0,0 +1,76 @@ +/** + * @fileoverview Rule to flag use of function declaration identifiers as variables. + * @author Ian Christian Myers + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow reassigning `function` declarations", + recommended: true, + url: "https://eslint.org/docs/rules/no-func-assign" + }, + + schema: [], + + messages: { + isAFunction: "'{{name}}' is a function." + } + }, + + create(context) { + + /** + * Reports a reference if is non initializer and writable. + * @param {References} references Collection of reference to check. + * @returns {void} + */ + function checkReference(references) { + astUtils.getModifyingReferences(references).forEach(reference => { + context.report({ + node: reference.identifier, + messageId: "isAFunction", + data: { + name: reference.identifier.name + } + }); + }); + } + + /** + * Finds and reports references that are non initializer and writable. + * @param {Variable} variable A variable to check. + * @returns {void} + */ + function checkVariable(variable) { + if (variable.defs[0].type === "FunctionName") { + checkReference(variable.references); + } + } + + /** + * Checks parameters of a given function node. + * @param {ASTNode} node A function node to check. + * @returns {void} + */ + function checkForFunction(node) { + context.getDeclaredVariables(node).forEach(checkVariable); + } + + return { + FunctionDeclaration: checkForFunction, + FunctionExpression: checkForFunction + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-global-assign.js b/node_modules/eslint/lib/rules/no-global-assign.js new file mode 100644 index 0000000..9f2f0ee --- /dev/null +++ b/node_modules/eslint/lib/rules/no-global-assign.js @@ -0,0 +1,94 @@ +/** + * @fileoverview Rule to disallow assignments to native objects or read-only global variables + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow assignments to native objects or read-only global variables", + recommended: true, + url: "https://eslint.org/docs/rules/no-global-assign" + }, + + schema: [ + { + type: "object", + properties: { + exceptions: { + type: "array", + items: { type: "string" }, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + globalShouldNotBeModified: "Read-only global '{{name}}' should not be modified." + } + }, + + create(context) { + const config = context.options[0]; + const exceptions = (config && config.exceptions) || []; + + /** + * Reports write references. + * @param {Reference} reference A reference to check. + * @param {int} index The index of the reference in the references. + * @param {Reference[]} references The array that the reference belongs to. + * @returns {void} + */ + function checkReference(reference, index, references) { + const identifier = reference.identifier; + + if (reference.init === false && + reference.isWrite() && + + /* + * Destructuring assignments can have multiple default value, + * so possibly there are multiple writeable references for the same identifier. + */ + (index === 0 || references[index - 1].identifier !== identifier) + ) { + context.report({ + node: identifier, + messageId: "globalShouldNotBeModified", + data: { + name: identifier.name + } + }); + } + } + + /** + * Reports write references if a given variable is read-only builtin. + * @param {Variable} variable A variable to check. + * @returns {void} + */ + function checkVariable(variable) { + if (variable.writeable === false && !exceptions.includes(variable.name)) { + variable.references.forEach(checkReference); + } + } + + return { + Program() { + const globalScope = context.getScope(); + + globalScope.variables.forEach(checkVariable); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-implicit-coercion.js b/node_modules/eslint/lib/rules/no-implicit-coercion.js new file mode 100644 index 0000000..c236771 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-implicit-coercion.js @@ -0,0 +1,361 @@ +/** + * @fileoverview A rule to disallow the type conversions with shorter notations. + * @author Toru Nagashima + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const INDEX_OF_PATTERN = /^(?:i|lastI)ndexOf$/u; +const ALLOWABLE_OPERATORS = ["~", "!!", "+", "*"]; + +/** + * Parses and normalizes an option object. + * @param {Object} options An option object to parse. + * @returns {Object} The parsed and normalized option object. + */ +function parseOptions(options) { + return { + boolean: "boolean" in options ? options.boolean : true, + number: "number" in options ? options.number : true, + string: "string" in options ? options.string : true, + disallowTemplateShorthand: "disallowTemplateShorthand" in options ? options.disallowTemplateShorthand : false, + allow: options.allow || [] + }; +} + +/** + * Checks whether or not a node is a double logical negating. + * @param {ASTNode} node An UnaryExpression node to check. + * @returns {boolean} Whether or not the node is a double logical negating. + */ +function isDoubleLogicalNegating(node) { + return ( + node.operator === "!" && + node.argument.type === "UnaryExpression" && + node.argument.operator === "!" + ); +} + +/** + * Checks whether or not a node is a binary negating of `.indexOf()` method calling. + * @param {ASTNode} node An UnaryExpression node to check. + * @returns {boolean} Whether or not the node is a binary negating of `.indexOf()` method calling. + */ +function isBinaryNegatingOfIndexOf(node) { + if (node.operator !== "~") { + return false; + } + const callNode = astUtils.skipChainExpression(node.argument); + + return ( + callNode.type === "CallExpression" && + astUtils.isSpecificMemberAccess(callNode.callee, null, INDEX_OF_PATTERN) + ); +} + +/** + * Checks whether or not a node is a multiplying by one. + * @param {BinaryExpression} node A BinaryExpression node to check. + * @returns {boolean} Whether or not the node is a multiplying by one. + */ +function isMultiplyByOne(node) { + return node.operator === "*" && ( + node.left.type === "Literal" && node.left.value === 1 || + node.right.type === "Literal" && node.right.value === 1 + ); +} + +/** + * Checks whether the result of a node is numeric or not + * @param {ASTNode} node The node to test + * @returns {boolean} true if the node is a number literal or a `Number()`, `parseInt` or `parseFloat` call + */ +function isNumeric(node) { + return ( + node.type === "Literal" && typeof node.value === "number" || + node.type === "CallExpression" && ( + node.callee.name === "Number" || + node.callee.name === "parseInt" || + node.callee.name === "parseFloat" + ) + ); +} + +/** + * Returns the first non-numeric operand in a BinaryExpression. Designed to be + * used from bottom to up since it walks up the BinaryExpression trees using + * node.parent to find the result. + * @param {BinaryExpression} node The BinaryExpression node to be walked up on + * @returns {ASTNode|null} The first non-numeric item in the BinaryExpression tree or null + */ +function getNonNumericOperand(node) { + const left = node.left, + right = node.right; + + if (right.type !== "BinaryExpression" && !isNumeric(right)) { + return right; + } + + if (left.type !== "BinaryExpression" && !isNumeric(left)) { + return left; + } + + return null; +} + +/** + * Checks whether an expression evaluates to a string. + * @param {ASTNode} node node that represents the expression to check. + * @returns {boolean} Whether or not the expression evaluates to a string. + */ +function isStringType(node) { + return astUtils.isStringLiteral(node) || + ( + node.type === "CallExpression" && + node.callee.type === "Identifier" && + node.callee.name === "String" + ); +} + +/** + * Checks whether a node is an empty string literal or not. + * @param {ASTNode} node The node to check. + * @returns {boolean} Whether or not the passed in node is an + * empty string literal or not. + */ +function isEmptyString(node) { + return astUtils.isStringLiteral(node) && (node.value === "" || (node.type === "TemplateLiteral" && node.quasis.length === 1 && node.quasis[0].value.cooked === "")); +} + +/** + * Checks whether or not a node is a concatenating with an empty string. + * @param {ASTNode} node A BinaryExpression node to check. + * @returns {boolean} Whether or not the node is a concatenating with an empty string. + */ +function isConcatWithEmptyString(node) { + return node.operator === "+" && ( + (isEmptyString(node.left) && !isStringType(node.right)) || + (isEmptyString(node.right) && !isStringType(node.left)) + ); +} + +/** + * Checks whether or not a node is appended with an empty string. + * @param {ASTNode} node An AssignmentExpression node to check. + * @returns {boolean} Whether or not the node is appended with an empty string. + */ +function isAppendEmptyString(node) { + return node.operator === "+=" && isEmptyString(node.right); +} + +/** + * Returns the operand that is not an empty string from a flagged BinaryExpression. + * @param {ASTNode} node The flagged BinaryExpression node to check. + * @returns {ASTNode} The operand that is not an empty string from a flagged BinaryExpression. + */ +function getNonEmptyOperand(node) { + return isEmptyString(node.left) ? node.right : node.left; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow shorthand type conversions", + recommended: false, + url: "https://eslint.org/docs/rules/no-implicit-coercion" + }, + + fixable: "code", + + schema: [{ + type: "object", + properties: { + boolean: { + type: "boolean", + default: true + }, + number: { + type: "boolean", + default: true + }, + string: { + type: "boolean", + default: true + }, + disallowTemplateShorthand: { + type: "boolean", + default: false + }, + allow: { + type: "array", + items: { + enum: ALLOWABLE_OPERATORS + }, + uniqueItems: true + } + }, + additionalProperties: false + }], + + messages: { + useRecommendation: "use `{{recommendation}}` instead." + } + }, + + create(context) { + const options = parseOptions(context.options[0] || {}); + const sourceCode = context.getSourceCode(); + + /** + * Reports an error and autofixes the node + * @param {ASTNode} node An ast node to report the error on. + * @param {string} recommendation The recommended code for the issue + * @param {bool} shouldFix Whether this report should fix the node + * @returns {void} + */ + function report(node, recommendation, shouldFix) { + context.report({ + node, + messageId: "useRecommendation", + data: { + recommendation + }, + fix(fixer) { + if (!shouldFix) { + return null; + } + + const tokenBefore = sourceCode.getTokenBefore(node); + + if ( + tokenBefore && + tokenBefore.range[1] === node.range[0] && + !astUtils.canTokensBeAdjacent(tokenBefore, recommendation) + ) { + return fixer.replaceText(node, ` ${recommendation}`); + } + return fixer.replaceText(node, recommendation); + } + }); + } + + return { + UnaryExpression(node) { + let operatorAllowed; + + // !!foo + operatorAllowed = options.allow.includes("!!"); + if (!operatorAllowed && options.boolean && isDoubleLogicalNegating(node)) { + const recommendation = `Boolean(${sourceCode.getText(node.argument.argument)})`; + + report(node, recommendation, true); + } + + // ~foo.indexOf(bar) + operatorAllowed = options.allow.includes("~"); + if (!operatorAllowed && options.boolean && isBinaryNegatingOfIndexOf(node)) { + + // `foo?.indexOf(bar) !== -1` will be true (== found) if the `foo` is nullish. So use `>= 0` in that case. + const comparison = node.argument.type === "ChainExpression" ? ">= 0" : "!== -1"; + const recommendation = `${sourceCode.getText(node.argument)} ${comparison}`; + + report(node, recommendation, false); + } + + // +foo + operatorAllowed = options.allow.includes("+"); + if (!operatorAllowed && options.number && node.operator === "+" && !isNumeric(node.argument)) { + const recommendation = `Number(${sourceCode.getText(node.argument)})`; + + report(node, recommendation, true); + } + }, + + // Use `:exit` to prevent double reporting + "BinaryExpression:exit"(node) { + let operatorAllowed; + + // 1 * foo + operatorAllowed = options.allow.includes("*"); + const nonNumericOperand = !operatorAllowed && options.number && isMultiplyByOne(node) && getNonNumericOperand(node); + + if (nonNumericOperand) { + const recommendation = `Number(${sourceCode.getText(nonNumericOperand)})`; + + report(node, recommendation, true); + } + + // "" + foo + operatorAllowed = options.allow.includes("+"); + if (!operatorAllowed && options.string && isConcatWithEmptyString(node)) { + const recommendation = `String(${sourceCode.getText(getNonEmptyOperand(node))})`; + + report(node, recommendation, true); + } + }, + + AssignmentExpression(node) { + + // foo += "" + const operatorAllowed = options.allow.includes("+"); + + if (!operatorAllowed && options.string && isAppendEmptyString(node)) { + const code = sourceCode.getText(getNonEmptyOperand(node)); + const recommendation = `${code} = String(${code})`; + + report(node, recommendation, true); + } + }, + + TemplateLiteral(node) { + if (!options.disallowTemplateShorthand) { + return; + } + + // tag`${foo}` + if (node.parent.type === "TaggedTemplateExpression") { + return; + } + + // `` or `${foo}${bar}` + if (node.expressions.length !== 1) { + return; + } + + + // `prefix${foo}` + if (node.quasis[0].value.cooked !== "") { + return; + } + + // `${foo}postfix` + if (node.quasis[1].value.cooked !== "") { + return; + } + + // if the expression is already a string, then this isn't a coercion + if (isStringType(node.expressions[0])) { + return; + } + + const code = sourceCode.getText(node.expressions[0]); + const recommendation = `String(${code})`; + + report(node, recommendation, true); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-implicit-globals.js b/node_modules/eslint/lib/rules/no-implicit-globals.js new file mode 100644 index 0000000..934630e --- /dev/null +++ b/node_modules/eslint/lib/rules/no-implicit-globals.js @@ -0,0 +1,140 @@ +/** + * @fileoverview Rule to check for implicit global variables, functions and classes. + * @author Joshua Peek + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow declarations in the global scope", + recommended: false, + url: "https://eslint.org/docs/rules/no-implicit-globals" + }, + + schema: [{ + type: "object", + properties: { + lexicalBindings: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + + messages: { + globalNonLexicalBinding: "Unexpected {{kind}} declaration in the global scope, wrap in an IIFE for a local variable, assign as global property for a global variable.", + globalLexicalBinding: "Unexpected {{kind}} declaration in the global scope, wrap in a block or in an IIFE.", + globalVariableLeak: "Global variable leak, declare the variable if it is intended to be local.", + assignmentToReadonlyGlobal: "Unexpected assignment to read-only global variable.", + redeclarationOfReadonlyGlobal: "Unexpected redeclaration of read-only global variable." + } + }, + + create(context) { + + const checkLexicalBindings = context.options[0] && context.options[0].lexicalBindings === true; + + /** + * Reports the node. + * @param {ASTNode} node Node to report. + * @param {string} messageId Id of the message to report. + * @param {string|undefined} kind Declaration kind, can be 'var', 'const', 'let', function or class. + * @returns {void} + */ + function report(node, messageId, kind) { + context.report({ + node, + messageId, + data: { + kind + } + }); + } + + return { + Program() { + const scope = context.getScope(); + + scope.variables.forEach(variable => { + + // Only ESLint global variables have the `writable` key. + const isReadonlyEslintGlobalVariable = variable.writeable === false; + const isWritableEslintGlobalVariable = variable.writeable === true; + + if (isWritableEslintGlobalVariable) { + + // Everything is allowed with writable ESLint global variables. + return; + } + + variable.defs.forEach(def => { + const defNode = def.node; + + if (def.type === "FunctionName" || (def.type === "Variable" && def.parent.kind === "var")) { + if (isReadonlyEslintGlobalVariable) { + report(defNode, "redeclarationOfReadonlyGlobal"); + } else { + report( + defNode, + "globalNonLexicalBinding", + def.type === "FunctionName" ? "function" : `'${def.parent.kind}'` + ); + } + } + + if (checkLexicalBindings) { + if (def.type === "ClassName" || + (def.type === "Variable" && (def.parent.kind === "let" || def.parent.kind === "const"))) { + if (isReadonlyEslintGlobalVariable) { + report(defNode, "redeclarationOfReadonlyGlobal"); + } else { + report( + defNode, + "globalLexicalBinding", + def.type === "ClassName" ? "class" : `'${def.parent.kind}'` + ); + } + } + } + }); + }); + + // Undeclared assigned variables. + scope.implicit.variables.forEach(variable => { + const scopeVariable = scope.set.get(variable.name); + let messageId; + + if (scopeVariable) { + + // ESLint global variable + if (scopeVariable.writeable) { + return; + } + messageId = "assignmentToReadonlyGlobal"; + + } else { + + // Reference to an unknown variable, possible global leak. + messageId = "globalVariableLeak"; + } + + // def.node is an AssignmentExpression, ForInStatement or ForOfStatement. + variable.defs.forEach(def => { + report(def.node, messageId); + }); + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-implied-eval.js b/node_modules/eslint/lib/rules/no-implied-eval.js new file mode 100644 index 0000000..44f1461 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-implied-eval.js @@ -0,0 +1,131 @@ +/** + * @fileoverview Rule to flag use of implied eval via setTimeout and setInterval + * @author James Allardice + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { getStaticValue } = require("eslint-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of `eval()`-like methods", + recommended: false, + url: "https://eslint.org/docs/rules/no-implied-eval" + }, + + schema: [], + + messages: { + impliedEval: "Implied eval. Consider passing a function instead of a string." + } + }, + + create(context) { + const GLOBAL_CANDIDATES = Object.freeze(["global", "window", "globalThis"]); + const EVAL_LIKE_FUNC_PATTERN = /^(?:set(?:Interval|Timeout)|execScript)$/u; + + /** + * Checks whether a node is evaluated as a string or not. + * @param {ASTNode} node A node to check. + * @returns {boolean} True if the node is evaluated as a string. + */ + function isEvaluatedString(node) { + if ( + (node.type === "Literal" && typeof node.value === "string") || + node.type === "TemplateLiteral" + ) { + return true; + } + if (node.type === "BinaryExpression" && node.operator === "+") { + return isEvaluatedString(node.left) || isEvaluatedString(node.right); + } + return false; + } + + /** + * Reports if the `CallExpression` node has evaluated argument. + * @param {ASTNode} node A CallExpression to check. + * @returns {void} + */ + function reportImpliedEvalCallExpression(node) { + const [firstArgument] = node.arguments; + + if (firstArgument) { + + const staticValue = getStaticValue(firstArgument, context.getScope()); + const isStaticString = staticValue && typeof staticValue.value === "string"; + const isString = isStaticString || isEvaluatedString(firstArgument); + + if (isString) { + context.report({ + node, + messageId: "impliedEval" + }); + } + } + + } + + /** + * Reports calls of `implied eval` via the global references. + * @param {Variable} globalVar A global variable to check. + * @returns {void} + */ + function reportImpliedEvalViaGlobal(globalVar) { + const { references, name } = globalVar; + + references.forEach(ref => { + const identifier = ref.identifier; + let node = identifier.parent; + + while (astUtils.isSpecificMemberAccess(node, null, name)) { + node = node.parent; + } + + if (astUtils.isSpecificMemberAccess(node, null, EVAL_LIKE_FUNC_PATTERN)) { + const calleeNode = node.parent.type === "ChainExpression" ? node.parent : node; + const parent = calleeNode.parent; + + if (parent.type === "CallExpression" && parent.callee === calleeNode) { + reportImpliedEvalCallExpression(parent); + } + } + }); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + CallExpression(node) { + if (astUtils.isSpecificId(node.callee, EVAL_LIKE_FUNC_PATTERN)) { + reportImpliedEvalCallExpression(node); + } + }, + "Program:exit"() { + const globalScope = context.getScope(); + + GLOBAL_CANDIDATES + .map(candidate => astUtils.getVariableByName(globalScope, candidate)) + .filter(globalVar => !!globalVar && globalVar.defs.length === 0) + .forEach(reportImpliedEvalViaGlobal); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-import-assign.js b/node_modules/eslint/lib/rules/no-import-assign.js new file mode 100644 index 0000000..fc104fe --- /dev/null +++ b/node_modules/eslint/lib/rules/no-import-assign.js @@ -0,0 +1,239 @@ +/** + * @fileoverview Rule to flag updates of imported bindings. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const { findVariable } = require("eslint-utils"); +const astUtils = require("./utils/ast-utils"); + +const WellKnownMutationFunctions = { + Object: /^(?:assign|definePropert(?:y|ies)|freeze|setPrototypeOf)$/u, + Reflect: /^(?:(?:define|delete)Property|set(?:PrototypeOf)?)$/u +}; + +/** + * Check if a given node is LHS of an assignment node. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is LHS. + */ +function isAssignmentLeft(node) { + const { parent } = node; + + return ( + ( + parent.type === "AssignmentExpression" && + parent.left === node + ) || + + // Destructuring assignments + parent.type === "ArrayPattern" || + ( + parent.type === "Property" && + parent.value === node && + parent.parent.type === "ObjectPattern" + ) || + parent.type === "RestElement" || + ( + parent.type === "AssignmentPattern" && + parent.left === node + ) + ); +} + +/** + * Check if a given node is the operand of mutation unary operator. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is the operand of mutation unary operator. + */ +function isOperandOfMutationUnaryOperator(node) { + const argumentNode = node.parent.type === "ChainExpression" + ? node.parent + : node; + const { parent } = argumentNode; + + return ( + ( + parent.type === "UpdateExpression" && + parent.argument === argumentNode + ) || + ( + parent.type === "UnaryExpression" && + parent.operator === "delete" && + parent.argument === argumentNode + ) + ); +} + +/** + * Check if a given node is the iteration variable of `for-in`/`for-of` syntax. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is the iteration variable. + */ +function isIterationVariable(node) { + const { parent } = node; + + return ( + ( + parent.type === "ForInStatement" && + parent.left === node + ) || + ( + parent.type === "ForOfStatement" && + parent.left === node + ) + ); +} + +/** + * Check if a given node is at the first argument of a well-known mutation function. + * - `Object.assign` + * - `Object.defineProperty` + * - `Object.defineProperties` + * - `Object.freeze` + * - `Object.setPrototypeOf` + * - `Reflect.defineProperty` + * - `Reflect.deleteProperty` + * - `Reflect.set` + * - `Reflect.setPrototypeOf` + * @param {ASTNode} node The node to check. + * @param {Scope} scope A `escope.Scope` object to find variable (whichever). + * @returns {boolean} `true` if the node is at the first argument of a well-known mutation function. + */ +function isArgumentOfWellKnownMutationFunction(node, scope) { + const { parent } = node; + + if (parent.type !== "CallExpression" || parent.arguments[0] !== node) { + return false; + } + const callee = astUtils.skipChainExpression(parent.callee); + + if ( + !astUtils.isSpecificMemberAccess(callee, "Object", WellKnownMutationFunctions.Object) && + !astUtils.isSpecificMemberAccess(callee, "Reflect", WellKnownMutationFunctions.Reflect) + ) { + return false; + } + const variable = findVariable(scope, callee.object); + + return variable !== null && variable.scope.type === "global"; +} + +/** + * Check if the identifier node is placed at to update members. + * @param {ASTNode} id The Identifier node to check. + * @param {Scope} scope A `escope.Scope` object to find variable (whichever). + * @returns {boolean} `true` if the member of `id` was updated. + */ +function isMemberWrite(id, scope) { + const { parent } = id; + + return ( + ( + parent.type === "MemberExpression" && + parent.object === id && + ( + isAssignmentLeft(parent) || + isOperandOfMutationUnaryOperator(parent) || + isIterationVariable(parent) + ) + ) || + isArgumentOfWellKnownMutationFunction(id, scope) + ); +} + +/** + * Get the mutation node. + * @param {ASTNode} id The Identifier node to get. + * @returns {ASTNode} The mutation node. + */ +function getWriteNode(id) { + let node = id.parent; + + while ( + node && + node.type !== "AssignmentExpression" && + node.type !== "UpdateExpression" && + node.type !== "UnaryExpression" && + node.type !== "CallExpression" && + node.type !== "ForInStatement" && + node.type !== "ForOfStatement" + ) { + node = node.parent; + } + + return node || id; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow assigning to imported bindings", + recommended: true, + url: "https://eslint.org/docs/rules/no-import-assign" + }, + + schema: [], + + messages: { + readonly: "'{{name}}' is read-only.", + readonlyMember: "The members of '{{name}}' are read-only." + } + }, + + create(context) { + return { + ImportDeclaration(node) { + const scope = context.getScope(); + + for (const variable of context.getDeclaredVariables(node)) { + const shouldCheckMembers = variable.defs.some( + d => d.node.type === "ImportNamespaceSpecifier" + ); + let prevIdNode = null; + + for (const reference of variable.references) { + const idNode = reference.identifier; + + /* + * AssignmentPattern (e.g. `[a = 0] = b`) makes two write + * references for the same identifier. This should skip + * the one of the two in order to prevent redundant reports. + */ + if (idNode === prevIdNode) { + continue; + } + prevIdNode = idNode; + + if (reference.isWrite()) { + context.report({ + node: getWriteNode(idNode), + messageId: "readonly", + data: { name: idNode.name } + }); + } else if (shouldCheckMembers && isMemberWrite(idNode, scope)) { + context.report({ + node: getWriteNode(idNode), + messageId: "readonlyMember", + data: { name: idNode.name } + }); + } + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-inline-comments.js b/node_modules/eslint/lib/rules/no-inline-comments.js new file mode 100644 index 0000000..366f567 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-inline-comments.js @@ -0,0 +1,110 @@ +/** + * @fileoverview Enforces or disallows inline comments. + * @author Greg Cochard + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow inline comments after code", + recommended: false, + url: "https://eslint.org/docs/rules/no-inline-comments" + }, + + schema: [ + { + type: "object", + properties: { + ignorePattern: { + type: "string" + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedInlineComment: "Unexpected comment inline with code." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const options = context.options[0]; + let customIgnoreRegExp; + + if (options && options.ignorePattern) { + customIgnoreRegExp = new RegExp(options.ignorePattern, "u"); + } + + /** + * Will check that comments are not on lines starting with or ending with code + * @param {ASTNode} node The comment node to check + * @private + * @returns {void} + */ + function testCodeAroundComment(node) { + + const startLine = String(sourceCode.lines[node.loc.start.line - 1]), + endLine = String(sourceCode.lines[node.loc.end.line - 1]), + preamble = startLine.slice(0, node.loc.start.column).trim(), + postamble = endLine.slice(node.loc.end.column).trim(), + isPreambleEmpty = !preamble, + isPostambleEmpty = !postamble; + + // Nothing on both sides + if (isPreambleEmpty && isPostambleEmpty) { + return; + } + + // Matches the ignore pattern + if (customIgnoreRegExp && customIgnoreRegExp.test(node.value)) { + return; + } + + // JSX Exception + if ( + (isPreambleEmpty || preamble === "{") && + (isPostambleEmpty || postamble === "}") + ) { + const enclosingNode = sourceCode.getNodeByRangeIndex(node.range[0]); + + if (enclosingNode && enclosingNode.type === "JSXEmptyExpression") { + return; + } + } + + // Don't report ESLint directive comments + if (astUtils.isDirectiveComment(node)) { + return; + } + + context.report({ + node, + messageId: "unexpectedInlineComment" + }); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program() { + sourceCode.getAllComments() + .filter(token => token.type !== "Shebang") + .forEach(testCodeAroundComment); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-inner-declarations.js b/node_modules/eslint/lib/rules/no-inner-declarations.js new file mode 100644 index 0000000..9328166 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-inner-declarations.js @@ -0,0 +1,110 @@ +/** + * @fileoverview Rule to enforce declarations in program or function body root. + * @author Brandon Mills + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const validParent = new Set(["Program", "StaticBlock", "ExportNamedDeclaration", "ExportDefaultDeclaration"]); +const validBlockStatementParent = new Set(["FunctionDeclaration", "FunctionExpression", "ArrowFunctionExpression"]); + +/** + * Finds the nearest enclosing context where this rule allows declarations and returns its description. + * @param {ASTNode} node Node to search from. + * @returns {string} Description. One of "program", "function body", "class static block body". + */ +function getAllowedBodyDescription(node) { + let { parent } = node; + + while (parent) { + + if (parent.type === "StaticBlock") { + return "class static block body"; + } + + if (astUtils.isFunction(parent)) { + return "function body"; + } + + ({ parent } = parent); + } + + return "program"; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow variable or `function` declarations in nested blocks", + recommended: true, + url: "https://eslint.org/docs/rules/no-inner-declarations" + }, + + schema: [ + { + enum: ["functions", "both"] + } + ], + + messages: { + moveDeclToRoot: "Move {{type}} declaration to {{body}} root." + } + }, + + create(context) { + + /** + * Ensure that a given node is at a program or function body's root. + * @param {ASTNode} node Declaration node to check. + * @returns {void} + */ + function check(node) { + const parent = node.parent; + + if ( + parent.type === "BlockStatement" && validBlockStatementParent.has(parent.parent.type) + ) { + return; + } + + if (validParent.has(parent.type)) { + return; + } + + context.report({ + node, + messageId: "moveDeclToRoot", + data: { + type: (node.type === "FunctionDeclaration" ? "function" : "variable"), + body: getAllowedBodyDescription(node) + } + }); + } + + + return { + + FunctionDeclaration: check, + VariableDeclaration(node) { + if (context.options[0] === "both" && node.kind === "var") { + check(node); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-invalid-regexp.js b/node_modules/eslint/lib/rules/no-invalid-regexp.js new file mode 100644 index 0000000..0f1d9c7 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-invalid-regexp.js @@ -0,0 +1,157 @@ +/** + * @fileoverview Validate strings passed to the RegExp constructor + * @author Michael Ficarra + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const RegExpValidator = require("regexpp").RegExpValidator; +const validator = new RegExpValidator(); +const validFlags = /[dgimsuy]/gu; +const undefined1 = void 0; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow invalid regular expression strings in `RegExp` constructors", + recommended: true, + url: "https://eslint.org/docs/rules/no-invalid-regexp" + }, + + schema: [{ + type: "object", + properties: { + allowConstructorFlags: { + type: "array", + items: { + type: "string" + } + } + }, + additionalProperties: false + }], + + messages: { + regexMessage: "{{message}}." + } + }, + + create(context) { + + const options = context.options[0]; + let allowedFlags = null; + + if (options && options.allowConstructorFlags) { + const temp = options.allowConstructorFlags.join("").replace(validFlags, ""); + + if (temp) { + allowedFlags = new RegExp(`[${temp}]`, "giu"); + } + } + + /** + * Check if node is a string + * @param {ASTNode} node node to evaluate + * @returns {boolean} True if its a string + * @private + */ + function isString(node) { + return node && node.type === "Literal" && typeof node.value === "string"; + } + + /** + * Gets flags of a regular expression created by the given `RegExp()` or `new RegExp()` call + * Examples: + * new RegExp(".") // => "" + * new RegExp(".", "gu") // => "gu" + * new RegExp(".", flags) // => null + * @param {ASTNode} node `CallExpression` or `NewExpression` node + * @returns {string|null} flags if they can be determined, `null` otherwise + * @private + */ + function getFlags(node) { + if (node.arguments.length < 2) { + return ""; + } + + if (isString(node.arguments[1])) { + return node.arguments[1].value; + } + + return null; + } + + /** + * Check syntax error in a given pattern. + * @param {string} pattern The RegExp pattern to validate. + * @param {boolean} uFlag The Unicode flag. + * @returns {string|null} The syntax error. + */ + function validateRegExpPattern(pattern, uFlag) { + try { + validator.validatePattern(pattern, undefined1, undefined1, uFlag); + return null; + } catch (err) { + return err.message; + } + } + + /** + * Check syntax error in a given flags. + * @param {string} flags The RegExp flags to validate. + * @returns {string|null} The syntax error. + */ + function validateRegExpFlags(flags) { + try { + validator.validateFlags(flags); + return null; + } catch { + return `Invalid flags supplied to RegExp constructor '${flags}'`; + } + } + + return { + "CallExpression, NewExpression"(node) { + if (node.callee.type !== "Identifier" || node.callee.name !== "RegExp" || !isString(node.arguments[0])) { + return; + } + const pattern = node.arguments[0].value; + let flags = getFlags(node); + + if (flags && allowedFlags) { + flags = flags.replace(allowedFlags, ""); + } + + const message = + ( + flags && validateRegExpFlags(flags) + ) || + ( + + // If flags are unknown, report the regex only if its pattern is invalid both with and without the "u" flag + flags === null + ? validateRegExpPattern(pattern, true) && validateRegExpPattern(pattern, false) + : validateRegExpPattern(pattern, flags.includes("u")) + ); + + if (message) { + context.report({ + node, + messageId: "regexMessage", + data: { message } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-invalid-this.js b/node_modules/eslint/lib/rules/no-invalid-this.js new file mode 100644 index 0000000..b9cb43a --- /dev/null +++ b/node_modules/eslint/lib/rules/no-invalid-this.js @@ -0,0 +1,150 @@ +/** + * @fileoverview A rule to disallow `this` keywords in contexts where the value of `this` is `undefined`. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines if the given code path is a code path with lexical `this` binding. + * That is, if `this` within the code path refers to `this` of surrounding code path. + * @param {CodePath} codePath Code path. + * @param {ASTNode} node Node that started the code path. + * @returns {boolean} `true` if it is a code path with lexical `this` binding. + */ +function isCodePathWithLexicalThis(codePath, node) { + return codePath.origin === "function" && node.type === "ArrowFunctionExpression"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow use of `this` in contexts where the value of `this` is `undefined`", + recommended: false, + url: "https://eslint.org/docs/rules/no-invalid-this" + }, + + schema: [ + { + type: "object", + properties: { + capIsConstructor: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedThis: "Unexpected 'this'." + } + }, + + create(context) { + const options = context.options[0] || {}; + const capIsConstructor = options.capIsConstructor !== false; + const stack = [], + sourceCode = context.getSourceCode(); + + /** + * Gets the current checking context. + * + * The return value has a flag that whether or not `this` keyword is valid. + * The flag is initialized when got at the first time. + * @returns {{valid: boolean}} + * an object which has a flag that whether or not `this` keyword is valid. + */ + stack.getCurrent = function() { + const current = this[this.length - 1]; + + if (!current.init) { + current.init = true; + current.valid = !astUtils.isDefaultThisBinding( + current.node, + sourceCode, + { capIsConstructor } + ); + } + return current; + }; + + return { + + onCodePathStart(codePath, node) { + if (isCodePathWithLexicalThis(codePath, node)) { + return; + } + + if (codePath.origin === "program") { + const scope = context.getScope(); + const features = context.parserOptions.ecmaFeatures || {}; + + // `this` at the top level of scripts always refers to the global object + stack.push({ + init: true, + node, + valid: !( + node.sourceType === "module" || + (features.globalReturn && scope.childScopes[0].isStrict) + ) + }); + + return; + } + + /* + * `init: false` means that `valid` isn't determined yet. + * Most functions don't use `this`, and the calculation for `valid` + * is relatively costly, so we'll calculate it lazily when the first + * `this` within the function is traversed. A special case are non-strict + * functions, because `this` refers to the global object and therefore is + * always valid, so we can set `init: true` right away. + */ + stack.push({ + init: !context.getScope().isStrict, + node, + valid: true + }); + }, + + onCodePathEnd(codePath, node) { + if (isCodePathWithLexicalThis(codePath, node)) { + return; + } + + stack.pop(); + }, + + // Reports if `this` of the current context is invalid. + ThisExpression(node) { + const current = stack.getCurrent(); + + if (current && !current.valid) { + context.report({ + node, + messageId: "unexpectedThis" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-irregular-whitespace.js b/node_modules/eslint/lib/rules/no-irregular-whitespace.js new file mode 100644 index 0000000..d1646c7 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-irregular-whitespace.js @@ -0,0 +1,259 @@ +/** + * @fileoverview Rule to disallow whitespace that is not a tab or space, whitespace inside strings and comments are allowed + * @author Jonathan Kingston + * @author Christophe Porteneuve + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const ALL_IRREGULARS = /[\f\v\u0085\ufeff\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000\u2028\u2029]/u; +const IRREGULAR_WHITESPACE = /[\f\v\u0085\ufeff\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u202f\u205f\u3000]+/mgu; +const IRREGULAR_LINE_TERMINATORS = /[\u2028\u2029]/mgu; +const LINE_BREAK = astUtils.createGlobalLinebreakMatcher(); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow irregular whitespace", + recommended: true, + url: "https://eslint.org/docs/rules/no-irregular-whitespace" + }, + + schema: [ + { + type: "object", + properties: { + skipComments: { + type: "boolean", + default: false + }, + skipStrings: { + type: "boolean", + default: true + }, + skipTemplates: { + type: "boolean", + default: false + }, + skipRegExps: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + noIrregularWhitespace: "Irregular whitespace not allowed." + } + }, + + create(context) { + + // Module store of errors that we have found + let errors = []; + + // Lookup the `skipComments` option, which defaults to `false`. + const options = context.options[0] || {}; + const skipComments = !!options.skipComments; + const skipStrings = options.skipStrings !== false; + const skipRegExps = !!options.skipRegExps; + const skipTemplates = !!options.skipTemplates; + + const sourceCode = context.getSourceCode(); + const commentNodes = sourceCode.getAllComments(); + + /** + * Removes errors that occur inside the given node + * @param {ASTNode} node to check for matching errors. + * @returns {void} + * @private + */ + function removeWhitespaceError(node) { + const locStart = node.loc.start; + const locEnd = node.loc.end; + + errors = errors.filter(({ loc: { start: errorLocStart } }) => ( + errorLocStart.line < locStart.line || + errorLocStart.line === locStart.line && errorLocStart.column < locStart.column || + errorLocStart.line === locEnd.line && errorLocStart.column >= locEnd.column || + errorLocStart.line > locEnd.line + )); + } + + /** + * Checks identifier or literal nodes for errors that we are choosing to ignore and calls the relevant methods to remove the errors + * @param {ASTNode} node to check for matching errors. + * @returns {void} + * @private + */ + function removeInvalidNodeErrorsInIdentifierOrLiteral(node) { + const shouldCheckStrings = skipStrings && (typeof node.value === "string"); + const shouldCheckRegExps = skipRegExps && Boolean(node.regex); + + if (shouldCheckStrings || shouldCheckRegExps) { + + // If we have irregular characters remove them from the errors list + if (ALL_IRREGULARS.test(node.raw)) { + removeWhitespaceError(node); + } + } + } + + /** + * Checks template string literal nodes for errors that we are choosing to ignore and calls the relevant methods to remove the errors + * @param {ASTNode} node to check for matching errors. + * @returns {void} + * @private + */ + function removeInvalidNodeErrorsInTemplateLiteral(node) { + if (typeof node.value.raw === "string") { + if (ALL_IRREGULARS.test(node.value.raw)) { + removeWhitespaceError(node); + } + } + } + + /** + * Checks comment nodes for errors that we are choosing to ignore and calls the relevant methods to remove the errors + * @param {ASTNode} node to check for matching errors. + * @returns {void} + * @private + */ + function removeInvalidNodeErrorsInComment(node) { + if (ALL_IRREGULARS.test(node.value)) { + removeWhitespaceError(node); + } + } + + /** + * Checks the program source for irregular whitespace + * @param {ASTNode} node The program node + * @returns {void} + * @private + */ + function checkForIrregularWhitespace(node) { + const sourceLines = sourceCode.lines; + + sourceLines.forEach((sourceLine, lineIndex) => { + const lineNumber = lineIndex + 1; + let match; + + while ((match = IRREGULAR_WHITESPACE.exec(sourceLine)) !== null) { + errors.push({ + node, + messageId: "noIrregularWhitespace", + loc: { + start: { + line: lineNumber, + column: match.index + }, + end: { + line: lineNumber, + column: match.index + match[0].length + } + } + }); + } + }); + } + + /** + * Checks the program source for irregular line terminators + * @param {ASTNode} node The program node + * @returns {void} + * @private + */ + function checkForIrregularLineTerminators(node) { + const source = sourceCode.getText(), + sourceLines = sourceCode.lines, + linebreaks = source.match(LINE_BREAK); + let lastLineIndex = -1, + match; + + while ((match = IRREGULAR_LINE_TERMINATORS.exec(source)) !== null) { + const lineIndex = linebreaks.indexOf(match[0], lastLineIndex + 1) || 0; + + errors.push({ + node, + messageId: "noIrregularWhitespace", + loc: { + start: { + line: lineIndex + 1, + column: sourceLines[lineIndex].length + }, + end: { + line: lineIndex + 2, + column: 0 + } + } + }); + + lastLineIndex = lineIndex; + } + } + + /** + * A no-op function to act as placeholder for comment accumulation when the `skipComments` option is `false`. + * @returns {void} + * @private + */ + function noop() {} + + const nodes = {}; + + if (ALL_IRREGULARS.test(sourceCode.getText())) { + nodes.Program = function(node) { + + /* + * As we can easily fire warnings for all white space issues with + * all the source its simpler to fire them here. + * This means we can check all the application code without having + * to worry about issues caused in the parser tokens. + * When writing this code also evaluating per node was missing out + * connecting tokens in some cases. + * We can later filter the errors when they are found to be not an + * issue in nodes we don't care about. + */ + checkForIrregularWhitespace(node); + checkForIrregularLineTerminators(node); + }; + + nodes.Identifier = removeInvalidNodeErrorsInIdentifierOrLiteral; + nodes.Literal = removeInvalidNodeErrorsInIdentifierOrLiteral; + nodes.TemplateElement = skipTemplates ? removeInvalidNodeErrorsInTemplateLiteral : noop; + nodes["Program:exit"] = function() { + if (skipComments) { + + // First strip errors occurring in comment nodes. + commentNodes.forEach(removeInvalidNodeErrorsInComment); + } + + // If we have any errors remaining report on them + errors.forEach(error => context.report(error)); + }; + } else { + nodes.Program = noop; + } + + return nodes; + } +}; diff --git a/node_modules/eslint/lib/rules/no-iterator.js b/node_modules/eslint/lib/rules/no-iterator.js new file mode 100644 index 0000000..3550c7b --- /dev/null +++ b/node_modules/eslint/lib/rules/no-iterator.js @@ -0,0 +1,52 @@ +/** + * @fileoverview Rule to flag usage of __iterator__ property + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { getStaticPropertyName } = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of the `__iterator__` property", + recommended: false, + url: "https://eslint.org/docs/rules/no-iterator" + }, + + schema: [], + + messages: { + noIterator: "Reserved name '__iterator__'." + } + }, + + create(context) { + + return { + + MemberExpression(node) { + + if (getStaticPropertyName(node) === "__iterator__") { + context.report({ + node, + messageId: "noIterator" + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-label-var.js b/node_modules/eslint/lib/rules/no-label-var.js new file mode 100644 index 0000000..a07d283 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-label-var.js @@ -0,0 +1,79 @@ +/** + * @fileoverview Rule to flag labels that are the same as an identifier + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow labels that share a name with a variable", + recommended: false, + url: "https://eslint.org/docs/rules/no-label-var" + }, + + schema: [], + + messages: { + identifierClashWithLabel: "Found identifier with same name as label." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Check if the identifier is present inside current scope + * @param {Object} scope current scope + * @param {string} name To evaluate + * @returns {boolean} True if its present + * @private + */ + function findIdentifier(scope, name) { + return astUtils.getVariableByName(scope, name) !== null; + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + + LabeledStatement(node) { + + // Fetch the innermost scope. + const scope = context.getScope(); + + /* + * Recursively find the identifier walking up the scope, starting + * with the innermost scope. + */ + if (findIdentifier(scope, node.label.name)) { + context.report({ + node, + messageId: "identifierClashWithLabel" + }); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-labels.js b/node_modules/eslint/lib/rules/no-labels.js new file mode 100644 index 0000000..7257307 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-labels.js @@ -0,0 +1,149 @@ +/** + * @fileoverview Disallow Labeled Statements + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow labeled statements", + recommended: false, + url: "https://eslint.org/docs/rules/no-labels" + }, + + schema: [ + { + type: "object", + properties: { + allowLoop: { + type: "boolean", + default: false + }, + allowSwitch: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedLabel: "Unexpected labeled statement.", + unexpectedLabelInBreak: "Unexpected label in break statement.", + unexpectedLabelInContinue: "Unexpected label in continue statement." + } + }, + + create(context) { + const options = context.options[0]; + const allowLoop = options && options.allowLoop; + const allowSwitch = options && options.allowSwitch; + let scopeInfo = null; + + /** + * Gets the kind of a given node. + * @param {ASTNode} node A node to get. + * @returns {string} The kind of the node. + */ + function getBodyKind(node) { + if (astUtils.isLoop(node)) { + return "loop"; + } + if (node.type === "SwitchStatement") { + return "switch"; + } + return "other"; + } + + /** + * Checks whether the label of a given kind is allowed or not. + * @param {string} kind A kind to check. + * @returns {boolean} `true` if the kind is allowed. + */ + function isAllowed(kind) { + switch (kind) { + case "loop": return allowLoop; + case "switch": return allowSwitch; + default: return false; + } + } + + /** + * Checks whether a given name is a label of a loop or not. + * @param {string} label A name of a label to check. + * @returns {boolean} `true` if the name is a label of a loop. + */ + function getKind(label) { + let info = scopeInfo; + + while (info) { + if (info.label === label) { + return info.kind; + } + info = info.upper; + } + + /* c8 ignore next */ + return "other"; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + LabeledStatement(node) { + scopeInfo = { + label: node.label.name, + kind: getBodyKind(node.body), + upper: scopeInfo + }; + }, + + "LabeledStatement:exit"(node) { + if (!isAllowed(scopeInfo.kind)) { + context.report({ + node, + messageId: "unexpectedLabel" + }); + } + + scopeInfo = scopeInfo.upper; + }, + + BreakStatement(node) { + if (node.label && !isAllowed(getKind(node.label.name))) { + context.report({ + node, + messageId: "unexpectedLabelInBreak" + }); + } + }, + + ContinueStatement(node) { + if (node.label && !isAllowed(getKind(node.label.name))) { + context.report({ + node, + messageId: "unexpectedLabelInContinue" + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-lone-blocks.js b/node_modules/eslint/lib/rules/no-lone-blocks.js new file mode 100644 index 0000000..eb97f95 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-lone-blocks.js @@ -0,0 +1,134 @@ +/** + * @fileoverview Rule to flag blocks with no reason to exist + * @author Brandon Mills + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary nested blocks", + recommended: false, + url: "https://eslint.org/docs/rules/no-lone-blocks" + }, + + schema: [], + + messages: { + redundantBlock: "Block is redundant.", + redundantNestedBlock: "Nested block is redundant." + } + }, + + create(context) { + + // A stack of lone blocks to be checked for block-level bindings + const loneBlocks = []; + let ruleDef; + + /** + * Reports a node as invalid. + * @param {ASTNode} node The node to be reported. + * @returns {void} + */ + function report(node) { + const messageId = node.parent.type === "BlockStatement" || node.parent.type === "StaticBlock" + ? "redundantNestedBlock" + : "redundantBlock"; + + context.report({ + node, + messageId + }); + } + + /** + * Checks for any occurrence of a BlockStatement in a place where lists of statements can appear + * @param {ASTNode} node The node to check + * @returns {boolean} True if the node is a lone block. + */ + function isLoneBlock(node) { + return node.parent.type === "BlockStatement" || + node.parent.type === "StaticBlock" || + node.parent.type === "Program" || + + // Don't report blocks in switch cases if the block is the only statement of the case. + node.parent.type === "SwitchCase" && !(node.parent.consequent[0] === node && node.parent.consequent.length === 1); + } + + /** + * Checks the enclosing block of the current node for block-level bindings, + * and "marks it" as valid if any. + * @returns {void} + */ + function markLoneBlock() { + if (loneBlocks.length === 0) { + return; + } + + const block = context.getAncestors().pop(); + + if (loneBlocks[loneBlocks.length - 1] === block) { + loneBlocks.pop(); + } + } + + // Default rule definition: report all lone blocks + ruleDef = { + BlockStatement(node) { + if (isLoneBlock(node)) { + report(node); + } + } + }; + + // ES6: report blocks without block-level bindings, or that's only child of another block + if (context.languageOptions.ecmaVersion >= 2015) { + ruleDef = { + BlockStatement(node) { + if (isLoneBlock(node)) { + loneBlocks.push(node); + } + }, + "BlockStatement:exit"(node) { + if (loneBlocks.length > 0 && loneBlocks[loneBlocks.length - 1] === node) { + loneBlocks.pop(); + report(node); + } else if ( + ( + node.parent.type === "BlockStatement" || + node.parent.type === "StaticBlock" + ) && + node.parent.body.length === 1 + ) { + report(node); + } + } + }; + + ruleDef.VariableDeclaration = function(node) { + if (node.kind === "let" || node.kind === "const") { + markLoneBlock(); + } + }; + + ruleDef.FunctionDeclaration = function() { + if (context.getScope().isStrict) { + markLoneBlock(); + } + }; + + ruleDef.ClassDeclaration = markLoneBlock; + } + + return ruleDef; + } +}; diff --git a/node_modules/eslint/lib/rules/no-lonely-if.js b/node_modules/eslint/lib/rules/no-lonely-if.js new file mode 100644 index 0000000..0774b9f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-lonely-if.js @@ -0,0 +1,89 @@ +/** + * @fileoverview Rule to disallow if as the only statement in an else block + * @author Brandon Mills + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `if` statements as the only statement in `else` blocks", + recommended: false, + url: "https://eslint.org/docs/rules/no-lonely-if" + }, + + schema: [], + fixable: "code", + + messages: { + unexpectedLonelyIf: "Unexpected if as the only statement in an else block." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + IfStatement(node) { + const ancestors = context.getAncestors(), + parent = ancestors.pop(), + grandparent = ancestors.pop(); + + if (parent && parent.type === "BlockStatement" && + parent.body.length === 1 && grandparent && + grandparent.type === "IfStatement" && + parent === grandparent.alternate) { + context.report({ + node, + messageId: "unexpectedLonelyIf", + fix(fixer) { + const openingElseCurly = sourceCode.getFirstToken(parent); + const closingElseCurly = sourceCode.getLastToken(parent); + const elseKeyword = sourceCode.getTokenBefore(openingElseCurly); + const tokenAfterElseBlock = sourceCode.getTokenAfter(closingElseCurly); + const lastIfToken = sourceCode.getLastToken(node.consequent); + const sourceText = sourceCode.getText(); + + if (sourceText.slice(openingElseCurly.range[1], + node.range[0]).trim() || sourceText.slice(node.range[1], closingElseCurly.range[0]).trim()) { + + // Don't fix if there are any non-whitespace characters interfering (e.g. comments) + return null; + } + + if ( + node.consequent.type !== "BlockStatement" && lastIfToken.value !== ";" && tokenAfterElseBlock && + ( + node.consequent.loc.end.line === tokenAfterElseBlock.loc.start.line || + /^[([/+`-]/u.test(tokenAfterElseBlock.value) || + lastIfToken.value === "++" || + lastIfToken.value === "--" + ) + ) { + + /* + * If the `if` statement has no block, and is not followed by a semicolon, make sure that fixing + * the issue would not change semantics due to ASI. If this would happen, don't do a fix. + */ + return null; + } + + return fixer.replaceTextRange( + [openingElseCurly.range[0], closingElseCurly.range[1]], + (elseKeyword.range[1] === openingElseCurly.range[0] ? " " : "") + sourceCode.getText(node) + ); + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-loop-func.js b/node_modules/eslint/lib/rules/no-loop-func.js new file mode 100644 index 0000000..f81a713 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-loop-func.js @@ -0,0 +1,204 @@ +/** + * @fileoverview Rule to flag creation of function inside a loop + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Gets the containing loop node of a specified node. + * + * We don't need to check nested functions, so this ignores those. + * `Scope.through` contains references of nested functions. + * @param {ASTNode} node An AST node to get. + * @returns {ASTNode|null} The containing loop node of the specified node, or + * `null`. + */ +function getContainingLoopNode(node) { + for (let currentNode = node; currentNode.parent; currentNode = currentNode.parent) { + const parent = currentNode.parent; + + switch (parent.type) { + case "WhileStatement": + case "DoWhileStatement": + return parent; + + case "ForStatement": + + // `init` is outside of the loop. + if (parent.init !== currentNode) { + return parent; + } + break; + + case "ForInStatement": + case "ForOfStatement": + + // `right` is outside of the loop. + if (parent.right !== currentNode) { + return parent; + } + break; + + case "ArrowFunctionExpression": + case "FunctionExpression": + case "FunctionDeclaration": + + // We don't need to check nested functions. + return null; + + default: + break; + } + } + + return null; +} + +/** + * Gets the containing loop node of a given node. + * If the loop was nested, this returns the most outer loop. + * @param {ASTNode} node A node to get. This is a loop node. + * @param {ASTNode|null} excludedNode A node that the result node should not + * include. + * @returns {ASTNode} The most outer loop node. + */ +function getTopLoopNode(node, excludedNode) { + const border = excludedNode ? excludedNode.range[1] : 0; + let retv = node; + let containingLoopNode = node; + + while (containingLoopNode && containingLoopNode.range[0] >= border) { + retv = containingLoopNode; + containingLoopNode = getContainingLoopNode(containingLoopNode); + } + + return retv; +} + +/** + * Checks whether a given reference which refers to an upper scope's variable is + * safe or not. + * @param {ASTNode} loopNode A containing loop node. + * @param {eslint-scope.Reference} reference A reference to check. + * @returns {boolean} `true` if the reference is safe or not. + */ +function isSafe(loopNode, reference) { + const variable = reference.resolved; + const definition = variable && variable.defs[0]; + const declaration = definition && definition.parent; + const kind = (declaration && declaration.type === "VariableDeclaration") + ? declaration.kind + : ""; + + // Variables which are declared by `const` is safe. + if (kind === "const") { + return true; + } + + /* + * Variables which are declared by `let` in the loop is safe. + * It's a different instance from the next loop step's. + */ + if (kind === "let" && + declaration.range[0] > loopNode.range[0] && + declaration.range[1] < loopNode.range[1] + ) { + return true; + } + + /* + * WriteReferences which exist after this border are unsafe because those + * can modify the variable. + */ + const border = getTopLoopNode( + loopNode, + (kind === "let") ? declaration : null + ).range[0]; + + /** + * Checks whether a given reference is safe or not. + * The reference is every reference of the upper scope's variable we are + * looking now. + * + * It's safe if the reference matches one of the following condition. + * - is readonly. + * - doesn't exist inside a local function and after the border. + * @param {eslint-scope.Reference} upperRef A reference to check. + * @returns {boolean} `true` if the reference is safe. + */ + function isSafeReference(upperRef) { + const id = upperRef.identifier; + + return ( + !upperRef.isWrite() || + variable.scope.variableScope === upperRef.from.variableScope && + id.range[0] < border + ); + } + + return Boolean(variable) && variable.references.every(isSafeReference); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow function declarations that contain unsafe references inside loop statements", + recommended: false, + url: "https://eslint.org/docs/rules/no-loop-func" + }, + + schema: [], + + messages: { + unsafeRefs: "Function declared in a loop contains unsafe references to variable(s) {{ varNames }}." + } + }, + + create(context) { + + /** + * Reports functions which match the following condition: + * + * - has a loop node in ancestors. + * - has any references which refers to an unsafe variable. + * @param {ASTNode} node The AST node to check. + * @returns {void} + */ + function checkForLoops(node) { + const loopNode = getContainingLoopNode(node); + + if (!loopNode) { + return; + } + + const references = context.getScope().through; + const unsafeRefs = references.filter(r => !isSafe(loopNode, r)).map(r => r.identifier.name); + + if (unsafeRefs.length > 0) { + context.report({ + node, + messageId: "unsafeRefs", + data: { varNames: `'${unsafeRefs.join("', '")}'` } + }); + } + } + + return { + ArrowFunctionExpression: checkForLoops, + FunctionExpression: checkForLoops, + FunctionDeclaration: checkForLoops + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-loss-of-precision.js b/node_modules/eslint/lib/rules/no-loss-of-precision.js new file mode 100644 index 0000000..6dc6d86 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-loss-of-precision.js @@ -0,0 +1,206 @@ +/** + * @fileoverview Rule to flag numbers that will lose significant figure precision at runtime + * @author Jacob Moore + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow literal numbers that lose precision", + recommended: true, + url: "https://eslint.org/docs/rules/no-loss-of-precision" + }, + schema: [], + messages: { + noLossOfPrecision: "This number literal will lose precision at runtime." + } + }, + + create(context) { + + /** + * Returns whether the node is number literal + * @param {Node} node the node literal being evaluated + * @returns {boolean} true if the node is a number literal + */ + function isNumber(node) { + return typeof node.value === "number"; + } + + /** + * Gets the source code of the given number literal. Removes `_` numeric separators from the result. + * @param {Node} node the number `Literal` node + * @returns {string} raw source code of the literal, without numeric separators + */ + function getRaw(node) { + return node.raw.replace(/_/gu, ""); + } + + /** + * Checks whether the number is base ten + * @param {ASTNode} node the node being evaluated + * @returns {boolean} true if the node is in base ten + */ + function isBaseTen(node) { + const prefixes = ["0x", "0X", "0b", "0B", "0o", "0O"]; + + return prefixes.every(prefix => !node.raw.startsWith(prefix)) && + !/^0[0-7]+$/u.test(node.raw); + } + + /** + * Checks that the user-intended non-base ten number equals the actual number after is has been converted to the Number type + * @param {Node} node the node being evaluated + * @returns {boolean} true if they do not match + */ + function notBaseTenLosesPrecision(node) { + const rawString = getRaw(node).toUpperCase(); + let base = 0; + + if (rawString.startsWith("0B")) { + base = 2; + } else if (rawString.startsWith("0X")) { + base = 16; + } else { + base = 8; + } + + return !rawString.endsWith(node.value.toString(base).toUpperCase()); + } + + /** + * Adds a decimal point to the numeric string at index 1 + * @param {string} stringNumber the numeric string without any decimal point + * @returns {string} the numeric string with a decimal point in the proper place + */ + function addDecimalPointToNumber(stringNumber) { + return `${stringNumber.slice(0, 1)}.${stringNumber.slice(1)}`; + } + + /** + * Returns the number stripped of leading zeros + * @param {string} numberAsString the string representation of the number + * @returns {string} the stripped string + */ + function removeLeadingZeros(numberAsString) { + return numberAsString.replace(/^0*/u, ""); + } + + /** + * Returns the number stripped of trailing zeros + * @param {string} numberAsString the string representation of the number + * @returns {string} the stripped string + */ + function removeTrailingZeros(numberAsString) { + return numberAsString.replace(/0*$/u, ""); + } + + /** + * Converts an integer to to an object containing the integer's coefficient and order of magnitude + * @param {string} stringInteger the string representation of the integer being converted + * @returns {Object} the object containing the integer's coefficient and order of magnitude + */ + function normalizeInteger(stringInteger) { + const significantDigits = removeTrailingZeros(removeLeadingZeros(stringInteger)); + + return { + magnitude: stringInteger.startsWith("0") ? stringInteger.length - 2 : stringInteger.length - 1, + coefficient: addDecimalPointToNumber(significantDigits) + }; + } + + /** + * + * Converts a float to to an object containing the floats's coefficient and order of magnitude + * @param {string} stringFloat the string representation of the float being converted + * @returns {Object} the object containing the integer's coefficient and order of magnitude + */ + function normalizeFloat(stringFloat) { + const trimmedFloat = removeLeadingZeros(stringFloat); + + if (trimmedFloat.startsWith(".")) { + const decimalDigits = trimmedFloat.split(".").pop(); + const significantDigits = removeLeadingZeros(decimalDigits); + + return { + magnitude: significantDigits.length - decimalDigits.length - 1, + coefficient: addDecimalPointToNumber(significantDigits) + }; + + } + return { + magnitude: trimmedFloat.indexOf(".") - 1, + coefficient: addDecimalPointToNumber(trimmedFloat.replace(".", "")) + + }; + } + + + /** + * Converts a base ten number to proper scientific notation + * @param {string} stringNumber the string representation of the base ten number to be converted + * @returns {string} the number converted to scientific notation + */ + function convertNumberToScientificNotation(stringNumber) { + const splitNumber = stringNumber.replace("E", "e").split("e"); + const originalCoefficient = splitNumber[0]; + const normalizedNumber = stringNumber.includes(".") ? normalizeFloat(originalCoefficient) + : normalizeInteger(originalCoefficient); + const normalizedCoefficient = normalizedNumber.coefficient; + const magnitude = splitNumber.length > 1 ? (parseInt(splitNumber[1], 10) + normalizedNumber.magnitude) + : normalizedNumber.magnitude; + + return `${normalizedCoefficient}e${magnitude}`; + + } + + /** + * Checks that the user-intended base ten number equals the actual number after is has been converted to the Number type + * @param {Node} node the node being evaluated + * @returns {boolean} true if they do not match + */ + function baseTenLosesPrecision(node) { + const normalizedRawNumber = convertNumberToScientificNotation(getRaw(node)); + const requestedPrecision = normalizedRawNumber.split("e")[0].replace(".", "").length; + + if (requestedPrecision > 100) { + return true; + } + const storedNumber = node.value.toPrecision(requestedPrecision); + const normalizedStoredNumber = convertNumberToScientificNotation(storedNumber); + + return normalizedRawNumber !== normalizedStoredNumber; + } + + + /** + * Checks that the user-intended number equals the actual number after is has been converted to the Number type + * @param {Node} node the node being evaluated + * @returns {boolean} true if they do not match + */ + function losesPrecision(node) { + return isBaseTen(node) ? baseTenLosesPrecision(node) : notBaseTenLosesPrecision(node); + } + + + return { + Literal(node) { + if (node.value && isNumber(node) && losesPrecision(node)) { + context.report({ + messageId: "noLossOfPrecision", + node + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-magic-numbers.js b/node_modules/eslint/lib/rules/no-magic-numbers.js new file mode 100644 index 0000000..9b08588 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-magic-numbers.js @@ -0,0 +1,226 @@ +/** + * @fileoverview Rule to flag statements that use magic numbers (adapted from https://github.com/danielstjules/buddy.js) + * @author Vincent Lemeunier + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +// Maximum array length by the ECMAScript Specification. +const MAX_ARRAY_LENGTH = 2 ** 32 - 1; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** + * Convert the value to bigint if it's a string. Otherwise return the value as-is. + * @param {bigint|number|string} x The value to normalize. + * @returns {bigint|number} The normalized value. + */ +function normalizeIgnoreValue(x) { + if (typeof x === "string") { + return BigInt(x.slice(0, -1)); + } + return x; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow magic numbers", + recommended: false, + url: "https://eslint.org/docs/rules/no-magic-numbers" + }, + + schema: [{ + type: "object", + properties: { + detectObjects: { + type: "boolean", + default: false + }, + enforceConst: { + type: "boolean", + default: false + }, + ignore: { + type: "array", + items: { + anyOf: [ + { type: "number" }, + { type: "string", pattern: "^[+-]?(?:0|[1-9][0-9]*)n$" } + ] + }, + uniqueItems: true + }, + ignoreArrayIndexes: { + type: "boolean", + default: false + }, + ignoreDefaultValues: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + + messages: { + useConst: "Number constants declarations must use 'const'.", + noMagic: "No magic number: {{raw}}." + } + }, + + create(context) { + const config = context.options[0] || {}, + detectObjects = !!config.detectObjects, + enforceConst = !!config.enforceConst, + ignore = new Set((config.ignore || []).map(normalizeIgnoreValue)), + ignoreArrayIndexes = !!config.ignoreArrayIndexes, + ignoreDefaultValues = !!config.ignoreDefaultValues; + + const okTypes = detectObjects ? [] : ["ObjectExpression", "Property", "AssignmentExpression"]; + + /** + * Returns whether the rule is configured to ignore the given value + * @param {bigint|number} value The value to check + * @returns {boolean} true if the value is ignored + */ + function isIgnoredValue(value) { + return ignore.has(value); + } + + /** + * Returns whether the number is a default value assignment. + * @param {ASTNode} fullNumberNode `Literal` or `UnaryExpression` full number node + * @returns {boolean} true if the number is a default value + */ + function isDefaultValue(fullNumberNode) { + const parent = fullNumberNode.parent; + + return parent.type === "AssignmentPattern" && parent.right === fullNumberNode; + } + + /** + * Returns whether the given node is used as a radix within parseInt() or Number.parseInt() + * @param {ASTNode} fullNumberNode `Literal` or `UnaryExpression` full number node + * @returns {boolean} true if the node is radix + */ + function isParseIntRadix(fullNumberNode) { + const parent = fullNumberNode.parent; + + return parent.type === "CallExpression" && fullNumberNode === parent.arguments[1] && + ( + astUtils.isSpecificId(parent.callee, "parseInt") || + astUtils.isSpecificMemberAccess(parent.callee, "Number", "parseInt") + ); + } + + /** + * Returns whether the given node is a direct child of a JSX node. + * In particular, it aims to detect numbers used as prop values in JSX tags. + * Example: + * @param {ASTNode} fullNumberNode `Literal` or `UnaryExpression` full number node + * @returns {boolean} true if the node is a JSX number + */ + function isJSXNumber(fullNumberNode) { + return fullNumberNode.parent.type.indexOf("JSX") === 0; + } + + /** + * Returns whether the given node is used as an array index. + * Value must coerce to a valid array index name: "0", "1", "2" ... "4294967294". + * + * All other values, like "-1", "2.5", or "4294967295", are just "normal" object properties, + * which can be created and accessed on an array in addition to the array index properties, + * but they don't affect array's length and are not considered by methods such as .map(), .forEach() etc. + * + * The maximum array length by the specification is 2 ** 32 - 1 = 4294967295, + * thus the maximum valid index is 2 ** 32 - 2 = 4294967294. + * + * All notations are allowed, as long as the value coerces to one of "0", "1", "2" ... "4294967294". + * + * Valid examples: + * a[0], a[1], a[1.2e1], a[0xAB], a[0n], a[1n] + * a[-0] (same as a[0] because -0 coerces to "0") + * a[-0n] (-0n evaluates to 0n) + * + * Invalid examples: + * a[-1], a[-0xAB], a[-1n], a[2.5], a[1.23e1], a[12e-1] + * a[4294967295] (above the max index, it's an access to a regular property a["4294967295"]) + * a[999999999999999999999] (even if it wasn't above the max index, it would be a["1e+21"]) + * a[1e310] (same as a["Infinity"]) + * @param {ASTNode} fullNumberNode `Literal` or `UnaryExpression` full number node + * @param {bigint|number} value Value expressed by the fullNumberNode + * @returns {boolean} true if the node is a valid array index + */ + function isArrayIndex(fullNumberNode, value) { + const parent = fullNumberNode.parent; + + return parent.type === "MemberExpression" && parent.property === fullNumberNode && + (Number.isInteger(value) || typeof value === "bigint") && + value >= 0 && value < MAX_ARRAY_LENGTH; + } + + return { + Literal(node) { + if (!astUtils.isNumericLiteral(node)) { + return; + } + + let fullNumberNode; + let value; + let raw; + + // Treat unary minus as a part of the number + if (node.parent.type === "UnaryExpression" && node.parent.operator === "-") { + fullNumberNode = node.parent; + value = -node.value; + raw = `-${node.raw}`; + } else { + fullNumberNode = node; + value = node.value; + raw = node.raw; + } + + const parent = fullNumberNode.parent; + + // Always allow radix arguments and JSX props + if ( + isIgnoredValue(value) || + (ignoreDefaultValues && isDefaultValue(fullNumberNode)) || + isParseIntRadix(fullNumberNode) || + isJSXNumber(fullNumberNode) || + (ignoreArrayIndexes && isArrayIndex(fullNumberNode, value)) + ) { + return; + } + + if (parent.type === "VariableDeclarator") { + if (enforceConst && parent.parent.kind !== "const") { + context.report({ + node: fullNumberNode, + messageId: "useConst" + }); + } + } else if ( + !okTypes.includes(parent.type) || + (parent.type === "AssignmentExpression" && parent.left.type === "Identifier") + ) { + context.report({ + node: fullNumberNode, + messageId: "noMagic", + data: { + raw + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-misleading-character-class.js b/node_modules/eslint/lib/rules/no-misleading-character-class.js new file mode 100644 index 0000000..667d066 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-misleading-character-class.js @@ -0,0 +1,273 @@ +/** + * @author Toru Nagashima + */ +"use strict"; + +const { CALL, CONSTRUCT, ReferenceTracker, getStringIfConstant } = require("eslint-utils"); +const { RegExpValidator, RegExpParser, visitRegExpAST } = require("regexpp"); +const { isCombiningCharacter, isEmojiModifier, isRegionalIndicatorSymbol, isSurrogatePair } = require("./utils/unicode"); +const astUtils = require("./utils/ast-utils.js"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const REGEXPP_LATEST_ECMA_VERSION = 2022; + +/** + * Iterate character sequences of a given nodes. + * + * CharacterClassRange syntax can steal a part of character sequence, + * so this function reverts CharacterClassRange syntax and restore the sequence. + * @param {regexpp.AST.CharacterClassElement[]} nodes The node list to iterate character sequences. + * @returns {IterableIterator} The list of character sequences. + */ +function *iterateCharacterSequence(nodes) { + let seq = []; + + for (const node of nodes) { + switch (node.type) { + case "Character": + seq.push(node.value); + break; + + case "CharacterClassRange": + seq.push(node.min.value); + yield seq; + seq = [node.max.value]; + break; + + case "CharacterSet": + if (seq.length > 0) { + yield seq; + seq = []; + } + break; + + // no default + } + } + + if (seq.length > 0) { + yield seq; + } +} + +const hasCharacterSequence = { + surrogatePairWithoutUFlag(chars) { + return chars.some((c, i) => i !== 0 && isSurrogatePair(chars[i - 1], c)); + }, + + combiningClass(chars) { + return chars.some((c, i) => ( + i !== 0 && + isCombiningCharacter(c) && + !isCombiningCharacter(chars[i - 1]) + )); + }, + + emojiModifier(chars) { + return chars.some((c, i) => ( + i !== 0 && + isEmojiModifier(c) && + !isEmojiModifier(chars[i - 1]) + )); + }, + + regionalIndicatorSymbol(chars) { + return chars.some((c, i) => ( + i !== 0 && + isRegionalIndicatorSymbol(c) && + isRegionalIndicatorSymbol(chars[i - 1]) + )); + }, + + zwj(chars) { + const lastIndex = chars.length - 1; + + return chars.some((c, i) => ( + i !== 0 && + i !== lastIndex && + c === 0x200d && + chars[i - 1] !== 0x200d && + chars[i + 1] !== 0x200d + )); + } +}; + +const kinds = Object.keys(hasCharacterSequence); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow characters which are made with multiple code points in character class syntax", + recommended: true, + url: "https://eslint.org/docs/rules/no-misleading-character-class" + }, + + hasSuggestions: true, + + schema: [], + + messages: { + surrogatePairWithoutUFlag: "Unexpected surrogate pair in character class. Use 'u' flag.", + combiningClass: "Unexpected combined character in character class.", + emojiModifier: "Unexpected modified Emoji in character class.", + regionalIndicatorSymbol: "Unexpected national flag in character class.", + zwj: "Unexpected joined character sequence in character class.", + suggestUnicodeFlag: "Add unicode 'u' flag to regex." + } + }, + create(context) { + const sourceCode = context.getSourceCode(); + const parser = new RegExpParser(); + + /** + * Verify a given regular expression. + * @param {Node} node The node to report. + * @param {string} pattern The regular expression pattern to verify. + * @param {string} flags The flags of the regular expression. + * @param {Function} unicodeFixer Fixer for missing "u" flag. + * @returns {void} + */ + function verify(node, pattern, flags, unicodeFixer) { + let patternNode; + + try { + patternNode = parser.parsePattern( + pattern, + 0, + pattern.length, + flags.includes("u") + ); + } catch { + + // Ignore regular expressions with syntax errors + return; + } + + const foundKinds = new Set(); + + visitRegExpAST(patternNode, { + onCharacterClassEnter(ccNode) { + for (const chars of iterateCharacterSequence(ccNode.elements)) { + for (const kind of kinds) { + if (hasCharacterSequence[kind](chars)) { + foundKinds.add(kind); + } + } + } + } + }); + + for (const kind of foundKinds) { + let suggest; + + if (kind === "surrogatePairWithoutUFlag") { + suggest = [{ + messageId: "suggestUnicodeFlag", + fix: unicodeFixer + }]; + } + + context.report({ + node, + messageId: kind, + suggest + }); + } + } + + /** + * Checks if the given regular expression pattern would be valid with the `u` flag. + * @param {string} pattern The regular expression pattern to verify. + * @returns {boolean} `true` if the pattern would be valid with the `u` flag. + * `false` if the pattern would be invalid with the `u` flag or the configured + * ecmaVersion doesn't support the `u` flag. + */ + function isValidWithUnicodeFlag(pattern) { + const { ecmaVersion } = context.parserOptions; + + // ecmaVersion is unknown or it doesn't support the 'u' flag + if (typeof ecmaVersion !== "number" || ecmaVersion <= 5) { + return false; + } + + const validator = new RegExpValidator({ + ecmaVersion: Math.min(ecmaVersion + 2009, REGEXPP_LATEST_ECMA_VERSION) + }); + + try { + validator.validatePattern(pattern, void 0, void 0, /* uFlag = */ true); + } catch { + return false; + } + + return true; + } + + return { + "Literal[regex]"(node) { + verify(node, node.regex.pattern, node.regex.flags, fixer => { + if (!isValidWithUnicodeFlag(node.regex.pattern)) { + return null; + } + + return fixer.insertTextAfter(node, "u"); + }); + }, + "Program"() { + const scope = context.getScope(); + const tracker = new ReferenceTracker(scope); + + /* + * Iterate calls of RegExp. + * E.g., `new RegExp()`, `RegExp()`, `new window.RegExp()`, + * `const {RegExp: a} = window; new a()`, etc... + */ + for (const { node } of tracker.iterateGlobalReferences({ + RegExp: { [CALL]: true, [CONSTRUCT]: true } + })) { + const [patternNode, flagsNode] = node.arguments; + const pattern = getStringIfConstant(patternNode, scope); + const flags = getStringIfConstant(flagsNode, scope); + + if (typeof pattern === "string") { + verify(node, pattern, flags || "", fixer => { + + if (!isValidWithUnicodeFlag(pattern)) { + return null; + } + + if (node.arguments.length === 1) { + const penultimateToken = sourceCode.getLastToken(node, { skip: 1 }); // skip closing parenthesis + + return fixer.insertTextAfter( + penultimateToken, + astUtils.isCommaToken(penultimateToken) + ? ' "u",' + : ', "u"' + ); + } + + if ((flagsNode.type === "Literal" && typeof flagsNode.value === "string") || flagsNode.type === "TemplateLiteral") { + const range = [flagsNode.range[0], flagsNode.range[1] - 1]; + + return fixer.insertTextAfterRange(range, "u"); + } + + return null; + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-mixed-operators.js b/node_modules/eslint/lib/rules/no-mixed-operators.js new file mode 100644 index 0000000..cb6e936 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-mixed-operators.js @@ -0,0 +1,226 @@ +/** + * @fileoverview Rule to disallow mixed binary operators. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils.js"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const ARITHMETIC_OPERATORS = ["+", "-", "*", "/", "%", "**"]; +const BITWISE_OPERATORS = ["&", "|", "^", "~", "<<", ">>", ">>>"]; +const COMPARISON_OPERATORS = ["==", "!=", "===", "!==", ">", ">=", "<", "<="]; +const LOGICAL_OPERATORS = ["&&", "||"]; +const RELATIONAL_OPERATORS = ["in", "instanceof"]; +const TERNARY_OPERATOR = ["?:"]; +const COALESCE_OPERATOR = ["??"]; +const ALL_OPERATORS = [].concat( + ARITHMETIC_OPERATORS, + BITWISE_OPERATORS, + COMPARISON_OPERATORS, + LOGICAL_OPERATORS, + RELATIONAL_OPERATORS, + TERNARY_OPERATOR, + COALESCE_OPERATOR +); +const DEFAULT_GROUPS = [ + ARITHMETIC_OPERATORS, + BITWISE_OPERATORS, + COMPARISON_OPERATORS, + LOGICAL_OPERATORS, + RELATIONAL_OPERATORS +]; +const TARGET_NODE_TYPE = /^(?:Binary|Logical|Conditional)Expression$/u; + +/** + * Normalizes options. + * @param {Object|undefined} options A options object to normalize. + * @returns {Object} Normalized option object. + */ +function normalizeOptions(options = {}) { + const hasGroups = options.groups && options.groups.length > 0; + const groups = hasGroups ? options.groups : DEFAULT_GROUPS; + const allowSamePrecedence = options.allowSamePrecedence !== false; + + return { + groups, + allowSamePrecedence + }; +} + +/** + * Checks whether any group which includes both given operator exists or not. + * @param {Array} groups A list of groups to check. + * @param {string} left An operator. + * @param {string} right Another operator. + * @returns {boolean} `true` if such group existed. + */ +function includesBothInAGroup(groups, left, right) { + return groups.some(group => group.includes(left) && group.includes(right)); +} + +/** + * Checks whether the given node is a conditional expression and returns the test node else the left node. + * @param {ASTNode} node A node which can be a BinaryExpression or a LogicalExpression node. + * This parent node can be BinaryExpression, LogicalExpression + * , or a ConditionalExpression node + * @returns {ASTNode} node the appropriate node(left or test). + */ +function getChildNode(node) { + return node.type === "ConditionalExpression" ? node.test : node.left; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow mixed binary operators", + recommended: false, + url: "https://eslint.org/docs/rules/no-mixed-operators" + }, + + schema: [ + { + type: "object", + properties: { + groups: { + type: "array", + items: { + type: "array", + items: { enum: ALL_OPERATORS }, + minItems: 2, + uniqueItems: true + }, + uniqueItems: true + }, + allowSamePrecedence: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedMixedOperator: "Unexpected mix of '{{leftOperator}}' and '{{rightOperator}}'. Use parentheses to clarify the intended order of operations." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const options = normalizeOptions(context.options[0]); + + /** + * Checks whether a given node should be ignored by options or not. + * @param {ASTNode} node A node to check. This is a BinaryExpression + * node or a LogicalExpression node. This parent node is one of + * them, too. + * @returns {boolean} `true` if the node should be ignored. + */ + function shouldIgnore(node) { + const a = node; + const b = node.parent; + + return ( + !includesBothInAGroup(options.groups, a.operator, b.type === "ConditionalExpression" ? "?:" : b.operator) || + ( + options.allowSamePrecedence && + astUtils.getPrecedence(a) === astUtils.getPrecedence(b) + ) + ); + } + + /** + * Checks whether the operator of a given node is mixed with parent + * node's operator or not. + * @param {ASTNode} node A node to check. This is a BinaryExpression + * node or a LogicalExpression node. This parent node is one of + * them, too. + * @returns {boolean} `true` if the node was mixed. + */ + function isMixedWithParent(node) { + + return ( + node.operator !== node.parent.operator && + !astUtils.isParenthesised(sourceCode, node) + ); + } + + /** + * Gets the operator token of a given node. + * @param {ASTNode} node A node to check. This is a BinaryExpression + * node or a LogicalExpression node. + * @returns {Token} The operator token of the node. + */ + function getOperatorToken(node) { + return sourceCode.getTokenAfter(getChildNode(node), astUtils.isNotClosingParenToken); + } + + /** + * Reports both the operator of a given node and the operator of the + * parent node. + * @param {ASTNode} node A node to check. This is a BinaryExpression + * node or a LogicalExpression node. This parent node is one of + * them, too. + * @returns {void} + */ + function reportBothOperators(node) { + const parent = node.parent; + const left = (getChildNode(parent) === node) ? node : parent; + const right = (getChildNode(parent) !== node) ? node : parent; + const data = { + leftOperator: left.operator || "?:", + rightOperator: right.operator || "?:" + }; + + context.report({ + node: left, + loc: getOperatorToken(left).loc, + messageId: "unexpectedMixedOperator", + data + }); + context.report({ + node: right, + loc: getOperatorToken(right).loc, + messageId: "unexpectedMixedOperator", + data + }); + } + + /** + * Checks between the operator of this node and the operator of the + * parent node. + * @param {ASTNode} node A node to check. + * @returns {void} + */ + function check(node) { + if ( + TARGET_NODE_TYPE.test(node.parent.type) && + isMixedWithParent(node) && + !shouldIgnore(node) + ) { + reportBothOperators(node); + } + } + + return { + BinaryExpression: check, + LogicalExpression: check + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-mixed-requires.js b/node_modules/eslint/lib/rules/no-mixed-requires.js new file mode 100644 index 0000000..4e97057 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-mixed-requires.js @@ -0,0 +1,238 @@ +/** + * @fileoverview Rule to enforce grouped require statements for Node.JS + * @author Raphael Pigulla + * @deprecated in ESLint v7.0.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Disallow `require` calls to be mixed with regular variable declarations", + recommended: false, + url: "https://eslint.org/docs/rules/no-mixed-requires" + }, + + schema: [ + { + oneOf: [ + { + type: "boolean" + }, + { + type: "object", + properties: { + grouping: { + type: "boolean" + }, + allowCall: { + type: "boolean" + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + noMixRequire: "Do not mix 'require' and other declarations.", + noMixCoreModuleFileComputed: "Do not mix core, module, file and computed requires." + } + }, + + create(context) { + + const options = context.options[0]; + let grouping = false, + allowCall = false; + + if (typeof options === "object") { + grouping = options.grouping; + allowCall = options.allowCall; + } else { + grouping = !!options; + } + + /** + * Returns the list of built-in modules. + * @returns {string[]} An array of built-in Node.js modules. + */ + function getBuiltinModules() { + + /* + * This list is generated using: + * `require("repl")._builtinLibs.concat('repl').sort()` + * This particular list is as per nodejs v0.12.2 and iojs v0.7.1 + */ + return [ + "assert", "buffer", "child_process", "cluster", "crypto", + "dgram", "dns", "domain", "events", "fs", "http", "https", + "net", "os", "path", "punycode", "querystring", "readline", + "repl", "smalloc", "stream", "string_decoder", "tls", "tty", + "url", "util", "v8", "vm", "zlib" + ]; + } + + const BUILTIN_MODULES = getBuiltinModules(); + + const DECL_REQUIRE = "require", + DECL_UNINITIALIZED = "uninitialized", + DECL_OTHER = "other"; + + const REQ_CORE = "core", + REQ_FILE = "file", + REQ_MODULE = "module", + REQ_COMPUTED = "computed"; + + /** + * Determines the type of a declaration statement. + * @param {ASTNode} initExpression The init node of the VariableDeclarator. + * @returns {string} The type of declaration represented by the expression. + */ + function getDeclarationType(initExpression) { + if (!initExpression) { + + // "var x;" + return DECL_UNINITIALIZED; + } + + if (initExpression.type === "CallExpression" && + initExpression.callee.type === "Identifier" && + initExpression.callee.name === "require" + ) { + + // "var x = require('util');" + return DECL_REQUIRE; + } + if (allowCall && + initExpression.type === "CallExpression" && + initExpression.callee.type === "CallExpression" + ) { + + // "var x = require('diagnose')('sub-module');" + return getDeclarationType(initExpression.callee); + } + if (initExpression.type === "MemberExpression") { + + // "var x = require('glob').Glob;" + return getDeclarationType(initExpression.object); + } + + // "var x = 42;" + return DECL_OTHER; + } + + /** + * Determines the type of module that is loaded via require. + * @param {ASTNode} initExpression The init node of the VariableDeclarator. + * @returns {string} The module type. + */ + function inferModuleType(initExpression) { + if (initExpression.type === "MemberExpression") { + + // "var x = require('glob').Glob;" + return inferModuleType(initExpression.object); + } + if (initExpression.arguments.length === 0) { + + // "var x = require();" + return REQ_COMPUTED; + } + + const arg = initExpression.arguments[0]; + + if (arg.type !== "Literal" || typeof arg.value !== "string") { + + // "var x = require(42);" + return REQ_COMPUTED; + } + + if (BUILTIN_MODULES.includes(arg.value)) { + + // "var fs = require('fs');" + return REQ_CORE; + } + if (/^\.{0,2}\//u.test(arg.value)) { + + // "var utils = require('./utils');" + return REQ_FILE; + } + + // "var async = require('async');" + return REQ_MODULE; + + } + + /** + * Check if the list of variable declarations is mixed, i.e. whether it + * contains both require and other declarations. + * @param {ASTNode} declarations The list of VariableDeclarators. + * @returns {boolean} True if the declarations are mixed, false if not. + */ + function isMixed(declarations) { + const contains = {}; + + declarations.forEach(declaration => { + const type = getDeclarationType(declaration.init); + + contains[type] = true; + }); + + return !!( + contains[DECL_REQUIRE] && + (contains[DECL_UNINITIALIZED] || contains[DECL_OTHER]) + ); + } + + /** + * Check if all require declarations in the given list are of the same + * type. + * @param {ASTNode} declarations The list of VariableDeclarators. + * @returns {boolean} True if the declarations are grouped, false if not. + */ + function isGrouped(declarations) { + const found = {}; + + declarations.forEach(declaration => { + if (getDeclarationType(declaration.init) === DECL_REQUIRE) { + found[inferModuleType(declaration.init)] = true; + } + }); + + return Object.keys(found).length <= 1; + } + + + return { + + VariableDeclaration(node) { + + if (isMixed(node.declarations)) { + context.report({ + node, + messageId: "noMixRequire" + }); + } else if (grouping && !isGrouped(node.declarations)) { + context.report({ + node, + messageId: "noMixCoreModuleFileComputed" + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js b/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js new file mode 100644 index 0000000..b2d5a04 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js @@ -0,0 +1,113 @@ +/** + * @fileoverview Disallow mixed spaces and tabs for indentation + * @author Jary Niebur + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow mixed spaces and tabs for indentation", + recommended: true, + url: "https://eslint.org/docs/rules/no-mixed-spaces-and-tabs" + }, + + schema: [ + { + enum: ["smart-tabs", true, false] + } + ], + + messages: { + mixedSpacesAndTabs: "Mixed spaces and tabs." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + let smartTabs; + + switch (context.options[0]) { + case true: // Support old syntax, maybe add deprecation warning here + case "smart-tabs": + smartTabs = true; + break; + default: + smartTabs = false; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + "Program:exit"(node) { + const lines = sourceCode.lines, + comments = sourceCode.getAllComments(), + ignoredCommentLines = new Set(); + + // Add all lines except the first ones. + comments.forEach(comment => { + for (let i = comment.loc.start.line + 1; i <= comment.loc.end.line; i++) { + ignoredCommentLines.add(i); + } + }); + + /* + * At least one space followed by a tab + * or the reverse before non-tab/-space + * characters begin. + */ + let regex = /^(?=( +|\t+))\1(?:\t| )/u; + + if (smartTabs) { + + /* + * At least one space followed by a tab + * before non-tab/-space characters begin. + */ + regex = /^(?=(\t*))\1(?=( +))\2\t/u; + } + + lines.forEach((line, i) => { + const match = regex.exec(line); + + if (match) { + const lineNumber = i + 1; + const loc = { + start: { + line: lineNumber, + column: match[0].length - 2 + }, + end: { + line: lineNumber, + column: match[0].length + } + }; + + if (!ignoredCommentLines.has(lineNumber)) { + const containingNode = sourceCode.getNodeByRangeIndex(sourceCode.getIndexFromLoc(loc.start)); + + if (!(containingNode && ["Literal", "TemplateElement"].includes(containingNode.type))) { + context.report({ + node, + loc, + messageId: "mixedSpacesAndTabs" + }); + } + } + } + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-multi-assign.js b/node_modules/eslint/lib/rules/no-multi-assign.js new file mode 100644 index 0000000..392b33f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-multi-assign.js @@ -0,0 +1,67 @@ +/** + * @fileoverview Rule to check use of chained assignment expressions + * @author Stewart Rand + */ + +"use strict"; + + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow use of chained assignment expressions", + recommended: false, + url: "https://eslint.org/docs/rules/no-multi-assign" + }, + + schema: [{ + type: "object", + properties: { + ignoreNonDeclaration: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + + messages: { + unexpectedChain: "Unexpected chained assignment." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + const options = context.options[0] || { + ignoreNonDeclaration: false + }; + const selectors = [ + "VariableDeclarator > AssignmentExpression.init", + "PropertyDefinition > AssignmentExpression.value" + ]; + + if (!options.ignoreNonDeclaration) { + selectors.push("AssignmentExpression > AssignmentExpression.right"); + } + + return { + [selectors](node) { + context.report({ + node, + messageId: "unexpectedChain" + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-multi-spaces.js b/node_modules/eslint/lib/rules/no-multi-spaces.js new file mode 100644 index 0000000..d8d3c65 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-multi-spaces.js @@ -0,0 +1,138 @@ +/** + * @fileoverview Disallow use of multiple spaces. + * @author Nicholas C. Zakas + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow multiple spaces", + recommended: false, + url: "https://eslint.org/docs/rules/no-multi-spaces" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + exceptions: { + type: "object", + patternProperties: { + "^([A-Z][a-z]*)+$": { + type: "boolean" + } + }, + additionalProperties: false + }, + ignoreEOLComments: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + multipleSpaces: "Multiple spaces found before '{{displayValue}}'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const options = context.options[0] || {}; + const ignoreEOLComments = options.ignoreEOLComments; + const exceptions = Object.assign({ Property: true }, options.exceptions); + const hasExceptions = Object.keys(exceptions).some(key => exceptions[key]); + + /** + * Formats value of given comment token for error message by truncating its length. + * @param {Token} token comment token + * @returns {string} formatted value + * @private + */ + function formatReportedCommentValue(token) { + const valueLines = token.value.split("\n"); + const value = valueLines[0]; + const formattedValue = `${value.slice(0, 12)}...`; + + return valueLines.length === 1 && value.length <= 12 ? value : formattedValue; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program() { + sourceCode.tokensAndComments.forEach((leftToken, leftIndex, tokensAndComments) => { + if (leftIndex === tokensAndComments.length - 1) { + return; + } + const rightToken = tokensAndComments[leftIndex + 1]; + + // Ignore tokens that don't have 2 spaces between them or are on different lines + if ( + !sourceCode.text.slice(leftToken.range[1], rightToken.range[0]).includes(" ") || + leftToken.loc.end.line < rightToken.loc.start.line + ) { + return; + } + + // Ignore comments that are the last token on their line if `ignoreEOLComments` is active. + if ( + ignoreEOLComments && + astUtils.isCommentToken(rightToken) && + ( + leftIndex === tokensAndComments.length - 2 || + rightToken.loc.end.line < tokensAndComments[leftIndex + 2].loc.start.line + ) + ) { + return; + } + + // Ignore tokens that are in a node in the "exceptions" object + if (hasExceptions) { + const parentNode = sourceCode.getNodeByRangeIndex(rightToken.range[0] - 1); + + if (parentNode && exceptions[parentNode.type]) { + return; + } + } + + let displayValue; + + if (rightToken.type === "Block") { + displayValue = `/*${formatReportedCommentValue(rightToken)}*/`; + } else if (rightToken.type === "Line") { + displayValue = `//${formatReportedCommentValue(rightToken)}`; + } else { + displayValue = rightToken.value; + } + + context.report({ + node: rightToken, + loc: { start: leftToken.loc.end, end: rightToken.loc.start }, + messageId: "multipleSpaces", + data: { displayValue }, + fix: fixer => fixer.replaceTextRange([leftToken.range[1], rightToken.range[0]], " ") + }); + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-multi-str.js b/node_modules/eslint/lib/rules/no-multi-str.js new file mode 100644 index 0000000..c4400f4 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-multi-str.js @@ -0,0 +1,65 @@ +/** + * @fileoverview Rule to flag when using multiline strings + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow multiline strings", + recommended: false, + url: "https://eslint.org/docs/rules/no-multi-str" + }, + + schema: [], + + messages: { + multilineString: "Multiline support is limited to browsers supporting ES5 only." + } + }, + + create(context) { + + /** + * Determines if a given node is part of JSX syntax. + * @param {ASTNode} node The node to check. + * @returns {boolean} True if the node is a JSX node, false if not. + * @private + */ + function isJSXElement(node) { + return node.type.indexOf("JSX") === 0; + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + + Literal(node) { + if (astUtils.LINEBREAK_MATCHER.test(node.raw) && !isJSXElement(node.parent)) { + context.report({ + node, + messageId: "multilineString" + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-multiple-empty-lines.js b/node_modules/eslint/lib/rules/no-multiple-empty-lines.js new file mode 100644 index 0000000..e8b0f98 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-multiple-empty-lines.js @@ -0,0 +1,151 @@ +/** + * @fileoverview Disallows multiple blank lines. + * implementation adapted from the no-trailing-spaces rule. + * @author Greg Cochard + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow multiple empty lines", + recommended: false, + url: "https://eslint.org/docs/rules/no-multiple-empty-lines" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + max: { + type: "integer", + minimum: 0 + }, + maxEOF: { + type: "integer", + minimum: 0 + }, + maxBOF: { + type: "integer", + minimum: 0 + } + }, + required: ["max"], + additionalProperties: false + } + ], + + messages: { + blankBeginningOfFile: "Too many blank lines at the beginning of file. Max of {{max}} allowed.", + blankEndOfFile: "Too many blank lines at the end of file. Max of {{max}} allowed.", + consecutiveBlank: "More than {{max}} blank {{pluralizedLines}} not allowed." + } + }, + + create(context) { + + // Use options.max or 2 as default + let max = 2, + maxEOF = max, + maxBOF = max; + + if (context.options.length) { + max = context.options[0].max; + maxEOF = typeof context.options[0].maxEOF !== "undefined" ? context.options[0].maxEOF : max; + maxBOF = typeof context.options[0].maxBOF !== "undefined" ? context.options[0].maxBOF : max; + } + + const sourceCode = context.getSourceCode(); + + // Swallow the final newline, as some editors add it automatically and we don't want it to cause an issue + const allLines = sourceCode.lines[sourceCode.lines.length - 1] === "" ? sourceCode.lines.slice(0, -1) : sourceCode.lines; + const templateLiteralLines = new Set(); + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + TemplateLiteral(node) { + node.quasis.forEach(literalPart => { + + // Empty lines have a semantic meaning if they're inside template literals. Don't count these as empty lines. + for (let ignoredLine = literalPart.loc.start.line; ignoredLine < literalPart.loc.end.line; ignoredLine++) { + templateLiteralLines.add(ignoredLine); + } + }); + }, + "Program:exit"(node) { + return allLines + + // Given a list of lines, first get a list of line numbers that are non-empty. + .reduce((nonEmptyLineNumbers, line, index) => { + if (line.trim() || templateLiteralLines.has(index + 1)) { + nonEmptyLineNumbers.push(index + 1); + } + return nonEmptyLineNumbers; + }, []) + + // Add a value at the end to allow trailing empty lines to be checked. + .concat(allLines.length + 1) + + // Given two line numbers of non-empty lines, report the lines between if the difference is too large. + .reduce((lastLineNumber, lineNumber) => { + let messageId, maxAllowed; + + if (lastLineNumber === 0) { + messageId = "blankBeginningOfFile"; + maxAllowed = maxBOF; + } else if (lineNumber === allLines.length + 1) { + messageId = "blankEndOfFile"; + maxAllowed = maxEOF; + } else { + messageId = "consecutiveBlank"; + maxAllowed = max; + } + + if (lineNumber - lastLineNumber - 1 > maxAllowed) { + context.report({ + node, + loc: { + start: { line: lastLineNumber + maxAllowed + 1, column: 0 }, + end: { line: lineNumber, column: 0 } + }, + messageId, + data: { + max: maxAllowed, + pluralizedLines: maxAllowed === 1 ? "line" : "lines" + }, + fix(fixer) { + const rangeStart = sourceCode.getIndexFromLoc({ line: lastLineNumber + 1, column: 0 }); + + /* + * The end of the removal range is usually the start index of the next line. + * However, at the end of the file there is no next line, so the end of the + * range is just the length of the text. + */ + const lineNumberAfterRemovedLines = lineNumber - maxAllowed; + const rangeEnd = lineNumberAfterRemovedLines <= allLines.length + ? sourceCode.getIndexFromLoc({ line: lineNumberAfterRemovedLines, column: 0 }) + : sourceCode.text.length; + + return fixer.removeRange([rangeStart, rangeEnd]); + } + }); + } + + return lineNumber; + }, 0); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-native-reassign.js b/node_modules/eslint/lib/rules/no-native-reassign.js new file mode 100644 index 0000000..634fea9 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-native-reassign.js @@ -0,0 +1,97 @@ +/** + * @fileoverview Rule to disallow assignments to native objects or read-only global variables + * @author Ilya Volodin + * @deprecated in ESLint v3.3.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow assignments to native objects or read-only global variables", + recommended: false, + url: "https://eslint.org/docs/rules/no-native-reassign" + }, + + deprecated: true, + + replacedBy: ["no-global-assign"], + + schema: [ + { + type: "object", + properties: { + exceptions: { + type: "array", + items: { type: "string" }, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + nativeReassign: "Read-only global '{{name}}' should not be modified." + } + }, + + create(context) { + const config = context.options[0]; + const exceptions = (config && config.exceptions) || []; + + /** + * Reports write references. + * @param {Reference} reference A reference to check. + * @param {int} index The index of the reference in the references. + * @param {Reference[]} references The array that the reference belongs to. + * @returns {void} + */ + function checkReference(reference, index, references) { + const identifier = reference.identifier; + + if (reference.init === false && + reference.isWrite() && + + /* + * Destructuring assignments can have multiple default value, + * so possibly there are multiple writeable references for the same identifier. + */ + (index === 0 || references[index - 1].identifier !== identifier) + ) { + context.report({ + node: identifier, + messageId: "nativeReassign", + data: identifier + }); + } + } + + /** + * Reports write references if a given variable is read-only builtin. + * @param {Variable} variable A variable to check. + * @returns {void} + */ + function checkVariable(variable) { + if (variable.writeable === false && !exceptions.includes(variable.name)) { + variable.references.forEach(checkReference); + } + } + + return { + Program() { + const globalScope = context.getScope(); + + globalScope.variables.forEach(checkVariable); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-negated-condition.js b/node_modules/eslint/lib/rules/no-negated-condition.js new file mode 100644 index 0000000..3876177 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-negated-condition.js @@ -0,0 +1,95 @@ +/** + * @fileoverview Rule to disallow a negated condition + * @author Alberto Rodríguez + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow negated conditions", + recommended: false, + url: "https://eslint.org/docs/rules/no-negated-condition" + }, + + schema: [], + + messages: { + unexpectedNegated: "Unexpected negated condition." + } + }, + + create(context) { + + /** + * Determines if a given node is an if-else without a condition on the else + * @param {ASTNode} node The node to check. + * @returns {boolean} True if the node has an else without an if. + * @private + */ + function hasElseWithoutCondition(node) { + return node.alternate && node.alternate.type !== "IfStatement"; + } + + /** + * Determines if a given node is a negated unary expression + * @param {Object} test The test object to check. + * @returns {boolean} True if the node is a negated unary expression. + * @private + */ + function isNegatedUnaryExpression(test) { + return test.type === "UnaryExpression" && test.operator === "!"; + } + + /** + * Determines if a given node is a negated binary expression + * @param {Test} test The test to check. + * @returns {boolean} True if the node is a negated binary expression. + * @private + */ + function isNegatedBinaryExpression(test) { + return test.type === "BinaryExpression" && + (test.operator === "!=" || test.operator === "!=="); + } + + /** + * Determines if a given node has a negated if expression + * @param {ASTNode} node The node to check. + * @returns {boolean} True if the node has a negated if expression. + * @private + */ + function isNegatedIf(node) { + return isNegatedUnaryExpression(node.test) || isNegatedBinaryExpression(node.test); + } + + return { + IfStatement(node) { + if (!hasElseWithoutCondition(node)) { + return; + } + + if (isNegatedIf(node)) { + context.report({ + node, + messageId: "unexpectedNegated" + }); + } + }, + ConditionalExpression(node) { + if (isNegatedIf(node)) { + context.report({ + node, + messageId: "unexpectedNegated" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-negated-in-lhs.js b/node_modules/eslint/lib/rules/no-negated-in-lhs.js new file mode 100644 index 0000000..975a8d7 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-negated-in-lhs.js @@ -0,0 +1,46 @@ +/** + * @fileoverview A rule to disallow negated left operands of the `in` operator + * @author Michael Ficarra + * @deprecated in ESLint v3.3.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow negating the left operand in `in` expressions", + recommended: false, + url: "https://eslint.org/docs/rules/no-negated-in-lhs" + }, + + replacedBy: ["no-unsafe-negation"], + + deprecated: true, + schema: [], + + messages: { + negatedLHS: "The 'in' expression's left operand is negated." + } + }, + + create(context) { + + return { + + BinaryExpression(node) { + if (node.operator === "in" && node.left.type === "UnaryExpression" && node.left.operator === "!") { + context.report({ node, messageId: "negatedLHS" }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-nested-ternary.js b/node_modules/eslint/lib/rules/no-nested-ternary.js new file mode 100644 index 0000000..fe97823 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-nested-ternary.js @@ -0,0 +1,44 @@ +/** + * @fileoverview Rule to flag nested ternary expressions + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow nested ternary expressions", + recommended: false, + url: "https://eslint.org/docs/rules/no-nested-ternary" + }, + + schema: [], + + messages: { + noNestedTernary: "Do not nest ternary expressions." + } + }, + + create(context) { + + return { + ConditionalExpression(node) { + if (node.alternate.type === "ConditionalExpression" || + node.consequent.type === "ConditionalExpression") { + context.report({ + node, + messageId: "noNestedTernary" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-new-func.js b/node_modules/eslint/lib/rules/no-new-func.js new file mode 100644 index 0000000..4759f38 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-new-func.js @@ -0,0 +1,86 @@ +/** + * @fileoverview Rule to flag when using new Function + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const callMethods = new Set(["apply", "bind", "call"]); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `new` operators with the `Function` object", + recommended: false, + url: "https://eslint.org/docs/rules/no-new-func" + }, + + schema: [], + + messages: { + noFunctionConstructor: "The Function constructor is eval." + } + }, + + create(context) { + + return { + "Program:exit"() { + const globalScope = context.getScope(); + const variable = globalScope.set.get("Function"); + + if (variable && variable.defs.length === 0) { + variable.references.forEach(ref => { + const node = ref.identifier; + const { parent } = node; + let evalNode; + + if (parent) { + if (node === parent.callee && ( + parent.type === "NewExpression" || + parent.type === "CallExpression" + )) { + evalNode = parent; + } else if ( + parent.type === "MemberExpression" && + node === parent.object && + callMethods.has(astUtils.getStaticPropertyName(parent)) + ) { + const maybeCallee = parent.parent.type === "ChainExpression" ? parent.parent : parent; + + if (maybeCallee.parent.type === "CallExpression" && maybeCallee.parent.callee === maybeCallee) { + evalNode = maybeCallee.parent; + } + } + } + + if (evalNode) { + context.report({ + node: evalNode, + messageId: "noFunctionConstructor" + }); + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-new-object.js b/node_modules/eslint/lib/rules/no-new-object.js new file mode 100644 index 0000000..4dbe8db --- /dev/null +++ b/node_modules/eslint/lib/rules/no-new-object.js @@ -0,0 +1,57 @@ +/** + * @fileoverview A rule to disallow calls to the Object constructor + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `Object` constructors", + recommended: false, + url: "https://eslint.org/docs/rules/no-new-object" + }, + + schema: [], + + messages: { + preferLiteral: "The object literal notation {} is preferable." + } + }, + + create(context) { + return { + NewExpression(node) { + const variable = astUtils.getVariableByName( + context.getScope(), + node.callee.name + ); + + if (variable && variable.identifiers.length > 0) { + return; + } + + if (node.callee.name === "Object") { + context.report({ + node, + messageId: "preferLiteral" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-new-require.js b/node_modules/eslint/lib/rules/no-new-require.js new file mode 100644 index 0000000..63ca057 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-new-require.js @@ -0,0 +1,50 @@ +/** + * @fileoverview Rule to disallow use of new operator with the `require` function + * @author Wil Moore III + * @deprecated in ESLint v7.0.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Disallow `new` operators with calls to `require`", + recommended: false, + url: "https://eslint.org/docs/rules/no-new-require" + }, + + schema: [], + + messages: { + noNewRequire: "Unexpected use of new with require." + } + }, + + create(context) { + + return { + + NewExpression(node) { + if (node.callee.type === "Identifier" && node.callee.name === "require") { + context.report({ + node, + messageId: "noNewRequire" + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-new-symbol.js b/node_modules/eslint/lib/rules/no-new-symbol.js new file mode 100644 index 0000000..534201c --- /dev/null +++ b/node_modules/eslint/lib/rules/no-new-symbol.js @@ -0,0 +1,54 @@ +/** + * @fileoverview Rule to disallow use of the new operator with the `Symbol` object + * @author Alberto Rodríguez + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow `new` operators with the `Symbol` object", + recommended: true, + url: "https://eslint.org/docs/rules/no-new-symbol" + }, + + schema: [], + + messages: { + noNewSymbol: "`Symbol` cannot be called as a constructor." + } + }, + + create(context) { + + return { + "Program:exit"() { + const globalScope = context.getScope(); + const variable = globalScope.set.get("Symbol"); + + if (variable && variable.defs.length === 0) { + variable.references.forEach(ref => { + const node = ref.identifier; + const parent = node.parent; + + if (parent && parent.type === "NewExpression" && parent.callee === node) { + context.report({ + node, + messageId: "noNewSymbol" + }); + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-new-wrappers.js b/node_modules/eslint/lib/rules/no-new-wrappers.js new file mode 100644 index 0000000..ff44efc --- /dev/null +++ b/node_modules/eslint/lib/rules/no-new-wrappers.js @@ -0,0 +1,48 @@ +/** + * @fileoverview Rule to flag when using constructor for wrapper objects + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `new` operators with the `String`, `Number`, and `Boolean` objects", + recommended: false, + url: "https://eslint.org/docs/rules/no-new-wrappers" + }, + + schema: [], + + messages: { + noConstructor: "Do not use {{fn}} as a constructor." + } + }, + + create(context) { + + return { + + NewExpression(node) { + const wrapperObjects = ["String", "Number", "Boolean"]; + + if (wrapperObjects.includes(node.callee.name)) { + context.report({ + node, + messageId: "noConstructor", + data: { fn: node.callee.name } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-new.js b/node_modules/eslint/lib/rules/no-new.js new file mode 100644 index 0000000..c434505 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-new.js @@ -0,0 +1,43 @@ +/** + * @fileoverview Rule to flag statements with function invocation preceded by + * "new" and not part of assignment + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `new` operators outside of assignments or comparisons", + recommended: false, + url: "https://eslint.org/docs/rules/no-new" + }, + + schema: [], + + messages: { + noNewStatement: "Do not use 'new' for side effects." + } + }, + + create(context) { + + return { + "ExpressionStatement > NewExpression"(node) { + context.report({ + node: node.parent, + messageId: "noNewStatement" + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js b/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js new file mode 100644 index 0000000..63e2264 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js @@ -0,0 +1,148 @@ +/** + * @fileoverview Rule to disallow `\8` and `\9` escape sequences in string literals. + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const QUICK_TEST_REGEX = /\\[89]/u; + +/** + * Returns unicode escape sequence that represents the given character. + * @param {string} character A single code unit. + * @returns {string} "\uXXXX" sequence. + */ +function getUnicodeEscape(character) { + return `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `\\8` and `\\9` escape sequences in string literals", + recommended: true, + url: "https://eslint.org/docs/rules/no-nonoctal-decimal-escape" + }, + + hasSuggestions: true, + + schema: [], + + messages: { + decimalEscape: "Don't use '{{decimalEscape}}' escape sequence.", + + // suggestions + refactor: "Replace '{{original}}' with '{{replacement}}'. This maintains the current functionality.", + escapeBackslash: "Replace '{{original}}' with '{{replacement}}' to include the actual backslash character." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Creates a new Suggestion object. + * @param {string} messageId "refactor" or "escapeBackslash". + * @param {int[]} range The range to replace. + * @param {string} replacement New text for the range. + * @returns {Object} Suggestion + */ + function createSuggestion(messageId, range, replacement) { + return { + messageId, + data: { + original: sourceCode.getText().slice(...range), + replacement + }, + fix(fixer) { + return fixer.replaceTextRange(range, replacement); + } + }; + } + + return { + Literal(node) { + if (typeof node.value !== "string") { + return; + } + + if (!QUICK_TEST_REGEX.test(node.raw)) { + return; + } + + const regex = /(?:[^\\]|(?\\.))*?(?\\[89])/suy; + let match; + + while ((match = regex.exec(node.raw))) { + const { previousEscape, decimalEscape } = match.groups; + const decimalEscapeRangeEnd = node.range[0] + match.index + match[0].length; + const decimalEscapeRangeStart = decimalEscapeRangeEnd - decimalEscape.length; + const decimalEscapeRange = [decimalEscapeRangeStart, decimalEscapeRangeEnd]; + const suggest = []; + + // When `regex` is matched, `previousEscape` can only capture characters adjacent to `decimalEscape` + if (previousEscape === "\\0") { + + /* + * Now we have a NULL escape "\0" immediately followed by a decimal escape, e.g.: "\0\8". + * Fixing this to "\08" would turn "\0" into a legacy octal escape. To avoid producing + * an octal escape while fixing a decimal escape, we provide different suggestions. + */ + suggest.push( + createSuggestion( // "\0\8" -> "\u00008" + "refactor", + [decimalEscapeRangeStart - previousEscape.length, decimalEscapeRangeEnd], + `${getUnicodeEscape("\0")}${decimalEscape[1]}` + ), + createSuggestion( // "\8" -> "\u0038" + "refactor", + decimalEscapeRange, + getUnicodeEscape(decimalEscape[1]) + ) + ); + } else { + suggest.push( + createSuggestion( // "\8" -> "8" + "refactor", + decimalEscapeRange, + decimalEscape[1] + ) + ); + } + + suggest.push( + createSuggestion( // "\8" -> "\\8" + "escapeBackslash", + decimalEscapeRange, + `\\${decimalEscape}` + ) + ); + + context.report({ + node, + loc: { + start: sourceCode.getLocFromIndex(decimalEscapeRangeStart), + end: sourceCode.getLocFromIndex(decimalEscapeRangeEnd) + }, + messageId: "decimalEscape", + data: { + decimalEscape + }, + suggest + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-obj-calls.js b/node_modules/eslint/lib/rules/no-obj-calls.js new file mode 100644 index 0000000..86355d8 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-obj-calls.js @@ -0,0 +1,84 @@ +/** + * @fileoverview Rule to flag use of an object property of the global object (Math and JSON) as a function + * @author James Allardice + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { CALL, CONSTRUCT, ReferenceTracker } = require("eslint-utils"); +const getPropertyName = require("./utils/ast-utils").getStaticPropertyName; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const nonCallableGlobals = ["Atomics", "JSON", "Math", "Reflect"]; + +/** + * Returns the name of the node to report + * @param {ASTNode} node A node to report + * @returns {string} name to report + */ +function getReportNodeName(node) { + if (node.type === "ChainExpression") { + return getReportNodeName(node.expression); + } + if (node.type === "MemberExpression") { + return getPropertyName(node); + } + return node.name; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow calling global object properties as functions", + recommended: true, + url: "https://eslint.org/docs/rules/no-obj-calls" + }, + + schema: [], + + messages: { + unexpectedCall: "'{{name}}' is not a function.", + unexpectedRefCall: "'{{name}}' is reference to '{{ref}}', which is not a function." + } + }, + + create(context) { + + return { + Program() { + const scope = context.getScope(); + const tracker = new ReferenceTracker(scope); + const traceMap = {}; + + for (const g of nonCallableGlobals) { + traceMap[g] = { + [CALL]: true, + [CONSTRUCT]: true + }; + } + + for (const { node, path } of tracker.iterateGlobalReferences(traceMap)) { + const name = getReportNodeName(node.callee); + const ref = path[0]; + const messageId = name === ref ? "unexpectedCall" : "unexpectedRefCall"; + + context.report({ node, messageId, data: { name, ref } }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-octal-escape.js b/node_modules/eslint/lib/rules/no-octal-escape.js new file mode 100644 index 0000000..81a8a74 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-octal-escape.js @@ -0,0 +1,56 @@ +/** + * @fileoverview Rule to flag octal escape sequences in string literals. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow octal escape sequences in string literals", + recommended: false, + url: "https://eslint.org/docs/rules/no-octal-escape" + }, + + schema: [], + + messages: { + octalEscapeSequence: "Don't use octal: '\\{{sequence}}'. Use '\\u....' instead." + } + }, + + create(context) { + + return { + + Literal(node) { + if (typeof node.value !== "string") { + return; + } + + // \0 represents a valid NULL character if it isn't followed by a digit. + const match = node.raw.match( + /^(?:[^\\]|\\.)*?\\([0-3][0-7]{1,2}|[4-7][0-7]|0(?=[89])|[1-7])/su + ); + + if (match) { + context.report({ + node, + messageId: "octalEscapeSequence", + data: { sequence: match[1] } + }); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-octal.js b/node_modules/eslint/lib/rules/no-octal.js new file mode 100644 index 0000000..eec5691 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-octal.js @@ -0,0 +1,45 @@ +/** + * @fileoverview Rule to flag when initializing octal literal + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow octal literals", + recommended: true, + url: "https://eslint.org/docs/rules/no-octal" + }, + + schema: [], + + messages: { + noOctal: "Octal literals should not be used." + } + }, + + create(context) { + + return { + + Literal(node) { + if (typeof node.value === "number" && /^0[0-9]/u.test(node.raw)) { + context.report({ + node, + messageId: "noOctal" + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-param-reassign.js b/node_modules/eslint/lib/rules/no-param-reassign.js new file mode 100644 index 0000000..f89435c --- /dev/null +++ b/node_modules/eslint/lib/rules/no-param-reassign.js @@ -0,0 +1,229 @@ +/** + * @fileoverview Disallow reassignment of function parameters. + * @author Nat Burns + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const stopNodePattern = /(?:Statement|Declaration|Function(?:Expression)?|Program)$/u; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow reassigning `function` parameters", + recommended: false, + url: "https://eslint.org/docs/rules/no-param-reassign" + }, + + schema: [ + { + oneOf: [ + { + type: "object", + properties: { + props: { + enum: [false] + } + }, + additionalProperties: false + }, + { + type: "object", + properties: { + props: { + enum: [true] + }, + ignorePropertyModificationsFor: { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + }, + ignorePropertyModificationsForRegex: { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + assignmentToFunctionParam: "Assignment to function parameter '{{name}}'.", + assignmentToFunctionParamProp: "Assignment to property of function parameter '{{name}}'." + } + }, + + create(context) { + const props = context.options[0] && context.options[0].props; + const ignoredPropertyAssignmentsFor = context.options[0] && context.options[0].ignorePropertyModificationsFor || []; + const ignoredPropertyAssignmentsForRegex = context.options[0] && context.options[0].ignorePropertyModificationsForRegex || []; + + /** + * Checks whether or not the reference modifies properties of its variable. + * @param {Reference} reference A reference to check. + * @returns {boolean} Whether or not the reference modifies properties of its variable. + */ + function isModifyingProp(reference) { + let node = reference.identifier; + let parent = node.parent; + + while (parent && (!stopNodePattern.test(parent.type) || + parent.type === "ForInStatement" || parent.type === "ForOfStatement")) { + switch (parent.type) { + + // e.g. foo.a = 0; + case "AssignmentExpression": + return parent.left === node; + + // e.g. ++foo.a; + case "UpdateExpression": + return true; + + // e.g. delete foo.a; + case "UnaryExpression": + if (parent.operator === "delete") { + return true; + } + break; + + // e.g. for (foo.a in b) {} + case "ForInStatement": + case "ForOfStatement": + if (parent.left === node) { + return true; + } + + // this is a stop node for parent.right and parent.body + return false; + + // EXCLUDES: e.g. cache.get(foo.a).b = 0; + case "CallExpression": + if (parent.callee !== node) { + return false; + } + break; + + // EXCLUDES: e.g. cache[foo.a] = 0; + case "MemberExpression": + if (parent.property === node) { + return false; + } + break; + + // EXCLUDES: e.g. ({ [foo]: a }) = bar; + case "Property": + if (parent.key === node) { + return false; + } + + break; + + // EXCLUDES: e.g. (foo ? a : b).c = bar; + case "ConditionalExpression": + if (parent.test === node) { + return false; + } + + break; + + // no default + } + + node = parent; + parent = node.parent; + } + + return false; + } + + /** + * Tests that an identifier name matches any of the ignored property assignments. + * First we test strings in ignoredPropertyAssignmentsFor. + * Then we instantiate and test RegExp objects from ignoredPropertyAssignmentsForRegex strings. + * @param {string} identifierName A string that describes the name of an identifier to + * ignore property assignments for. + * @returns {boolean} Whether the string matches an ignored property assignment regular expression or not. + */ + function isIgnoredPropertyAssignment(identifierName) { + return ignoredPropertyAssignmentsFor.includes(identifierName) || + ignoredPropertyAssignmentsForRegex.some(ignored => new RegExp(ignored, "u").test(identifierName)); + } + + /** + * Reports a reference if is non initializer and writable. + * @param {Reference} reference A reference to check. + * @param {int} index The index of the reference in the references. + * @param {Reference[]} references The array that the reference belongs to. + * @returns {void} + */ + function checkReference(reference, index, references) { + const identifier = reference.identifier; + + if (identifier && + !reference.init && + + /* + * Destructuring assignments can have multiple default value, + * so possibly there are multiple writeable references for the same identifier. + */ + (index === 0 || references[index - 1].identifier !== identifier) + ) { + if (reference.isWrite()) { + context.report({ + node: identifier, + messageId: "assignmentToFunctionParam", + data: { name: identifier.name } + }); + } else if (props && isModifyingProp(reference) && !isIgnoredPropertyAssignment(identifier.name)) { + context.report({ + node: identifier, + messageId: "assignmentToFunctionParamProp", + data: { name: identifier.name } + }); + } + } + } + + /** + * Finds and reports references that are non initializer and writable. + * @param {Variable} variable A variable to check. + * @returns {void} + */ + function checkVariable(variable) { + if (variable.defs[0].type === "Parameter") { + variable.references.forEach(checkReference); + } + } + + /** + * Checks parameters of a given function node. + * @param {ASTNode} node A function node to check. + * @returns {void} + */ + function checkForFunction(node) { + context.getDeclaredVariables(node).forEach(checkVariable); + } + + return { + + // `:exit` is needed for the `node.parent` property of identifier nodes. + "FunctionDeclaration:exit": checkForFunction, + "FunctionExpression:exit": checkForFunction, + "ArrowFunctionExpression:exit": checkForFunction + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-path-concat.js b/node_modules/eslint/lib/rules/no-path-concat.js new file mode 100644 index 0000000..8502c51 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-path-concat.js @@ -0,0 +1,64 @@ +/** + * @fileoverview Disallow string concatenation when using __dirname and __filename + * @author Nicholas C. Zakas + * @deprecated in ESLint v7.0.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Disallow string concatenation with `__dirname` and `__filename`", + recommended: false, + url: "https://eslint.org/docs/rules/no-path-concat" + }, + + schema: [], + + messages: { + usePathFunctions: "Use path.join() or path.resolve() instead of + to create paths." + } + }, + + create(context) { + + const MATCHER = /^__(?:dir|file)name$/u; + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + BinaryExpression(node) { + + const left = node.left, + right = node.right; + + if (node.operator === "+" && + ((left.type === "Identifier" && MATCHER.test(left.name)) || + (right.type === "Identifier" && MATCHER.test(right.name))) + ) { + + context.report({ + node, + messageId: "usePathFunctions" + }); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-plusplus.js b/node_modules/eslint/lib/rules/no-plusplus.js new file mode 100644 index 0000000..cda6b05 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-plusplus.js @@ -0,0 +1,105 @@ +/** + * @fileoverview Rule to flag use of unary increment and decrement operators. + * @author Ian Christian Myers + * @author Brody McKee (github.com/mrmckeb) + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines whether the given node is the update node of a `ForStatement`. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is `ForStatement` update. + */ +function isForStatementUpdate(node) { + const parent = node.parent; + + return parent.type === "ForStatement" && parent.update === node; +} + +/** + * Determines whether the given node is considered to be a for loop "afterthought" by the logic of this rule. + * In particular, it returns `true` if the given node is either: + * - The update node of a `ForStatement`: for (;; i++) {} + * - An operand of a sequence expression that is the update node: for (;; foo(), i++) {} + * - An operand of a sequence expression that is child of another sequence expression, etc., + * up to the sequence expression that is the update node: for (;; foo(), (bar(), (baz(), i++))) {} + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is a for loop afterthought. + */ +function isForLoopAfterthought(node) { + const parent = node.parent; + + if (parent.type === "SequenceExpression") { + return isForLoopAfterthought(parent); + } + + return isForStatementUpdate(node); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the unary operators `++` and `--`", + recommended: false, + url: "https://eslint.org/docs/rules/no-plusplus" + }, + + schema: [ + { + type: "object", + properties: { + allowForLoopAfterthoughts: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedUnaryOp: "Unary operator '{{operator}}' used." + } + }, + + create(context) { + + const config = context.options[0]; + let allowForLoopAfterthoughts = false; + + if (typeof config === "object") { + allowForLoopAfterthoughts = config.allowForLoopAfterthoughts === true; + } + + return { + + UpdateExpression(node) { + if (allowForLoopAfterthoughts && isForLoopAfterthought(node)) { + return; + } + + context.report({ + node, + messageId: "unexpectedUnaryOp", + data: { + operator: node.operator + } + }); + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-process-env.js b/node_modules/eslint/lib/rules/no-process-env.js new file mode 100644 index 0000000..5db7c94 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-process-env.js @@ -0,0 +1,51 @@ +/** + * @fileoverview Disallow the use of process.env() + * @author Vignesh Anand + * @deprecated in ESLint v7.0.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Disallow the use of `process.env`", + recommended: false, + url: "https://eslint.org/docs/rules/no-process-env" + }, + + schema: [], + + messages: { + unexpectedProcessEnv: "Unexpected use of process.env." + } + }, + + create(context) { + + return { + + MemberExpression(node) { + const objectName = node.object.name, + propertyName = node.property.name; + + if (objectName === "process" && !node.computed && propertyName && propertyName === "env") { + context.report({ node, messageId: "unexpectedProcessEnv" }); + } + + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-process-exit.js b/node_modules/eslint/lib/rules/no-process-exit.js new file mode 100644 index 0000000..ca3ecfe --- /dev/null +++ b/node_modules/eslint/lib/rules/no-process-exit.js @@ -0,0 +1,47 @@ +/** + * @fileoverview Disallow the use of process.exit() + * @author Nicholas C. Zakas + * @deprecated in ESLint v7.0.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Disallow the use of `process.exit()`", + recommended: false, + url: "https://eslint.org/docs/rules/no-process-exit" + }, + + schema: [], + + messages: { + noProcessExit: "Don't use process.exit(); throw an error instead." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + "CallExpression > MemberExpression.callee[object.name = 'process'][property.name = 'exit']"(node) { + context.report({ node: node.parent, messageId: "noProcessExit" }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-promise-executor-return.js b/node_modules/eslint/lib/rules/no-promise-executor-return.js new file mode 100644 index 0000000..caa195f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-promise-executor-return.js @@ -0,0 +1,121 @@ +/** + * @fileoverview Rule to disallow returning values from Promise executor functions + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { findVariable } = require("eslint-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const functionTypesToCheck = new Set(["ArrowFunctionExpression", "FunctionExpression"]); + +/** + * Determines whether the given identifier node is a reference to a global variable. + * @param {ASTNode} node `Identifier` node to check. + * @param {Scope} scope Scope to which the node belongs. + * @returns {boolean} True if the identifier is a reference to a global variable. + */ +function isGlobalReference(node, scope) { + const variable = findVariable(scope, node); + + return variable !== null && variable.scope.type === "global" && variable.defs.length === 0; +} + +/** + * Finds function's outer scope. + * @param {Scope} scope Function's own scope. + * @returns {Scope} Function's outer scope. + */ +function getOuterScope(scope) { + const upper = scope.upper; + + if (upper.type === "function-expression-name") { + return upper.upper; + } + return upper; +} + +/** + * Determines whether the given function node is used as a Promise executor. + * @param {ASTNode} node The node to check. + * @param {Scope} scope Function's own scope. + * @returns {boolean} `true` if the node is a Promise executor. + */ +function isPromiseExecutor(node, scope) { + const parent = node.parent; + + return parent.type === "NewExpression" && + parent.arguments[0] === node && + parent.callee.type === "Identifier" && + parent.callee.name === "Promise" && + isGlobalReference(parent.callee, getOuterScope(scope)); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow returning values from Promise executor functions", + recommended: false, + url: "https://eslint.org/docs/rules/no-promise-executor-return" + }, + + schema: [], + + messages: { + returnsValue: "Return values from promise executor functions cannot be read." + } + }, + + create(context) { + + let funcInfo = null; + + /** + * Reports the given node. + * @param {ASTNode} node Node to report. + * @returns {void} + */ + function report(node) { + context.report({ node, messageId: "returnsValue" }); + } + + return { + + onCodePathStart(_, node) { + funcInfo = { + upper: funcInfo, + shouldCheck: functionTypesToCheck.has(node.type) && isPromiseExecutor(node, context.getScope()) + }; + + if (funcInfo.shouldCheck && node.type === "ArrowFunctionExpression" && node.expression) { + report(node.body); + } + }, + + onCodePathEnd() { + funcInfo = funcInfo.upper; + }, + + ReturnStatement(node) { + if (funcInfo.shouldCheck && node.argument) { + report(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-proto.js b/node_modules/eslint/lib/rules/no-proto.js new file mode 100644 index 0000000..771d206 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-proto.js @@ -0,0 +1,48 @@ +/** + * @fileoverview Rule to flag usage of __proto__ property + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { getStaticPropertyName } = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of the `__proto__` property", + recommended: false, + url: "https://eslint.org/docs/rules/no-proto" + }, + + schema: [], + + messages: { + unexpectedProto: "The '__proto__' property is deprecated." + } + }, + + create(context) { + + return { + + MemberExpression(node) { + if (getStaticPropertyName(node) === "__proto__") { + context.report({ node, messageId: "unexpectedProto" }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-prototype-builtins.js b/node_modules/eslint/lib/rules/no-prototype-builtins.js new file mode 100644 index 0000000..ea27633 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-prototype-builtins.js @@ -0,0 +1,71 @@ +/** + * @fileoverview Rule to disallow use of Object.prototype builtins on objects + * @author Andrew Levine + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow calling some `Object.prototype` methods directly on objects", + recommended: true, + url: "https://eslint.org/docs/rules/no-prototype-builtins" + }, + + schema: [], + + messages: { + prototypeBuildIn: "Do not access Object.prototype method '{{prop}}' from target object." + } + }, + + create(context) { + const DISALLOWED_PROPS = new Set([ + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable" + ]); + + /** + * Reports if a disallowed property is used in a CallExpression + * @param {ASTNode} node The CallExpression node. + * @returns {void} + */ + function disallowBuiltIns(node) { + + const callee = astUtils.skipChainExpression(node.callee); + + if (callee.type !== "MemberExpression") { + return; + } + + const propName = astUtils.getStaticPropertyName(callee); + + if (propName !== null && DISALLOWED_PROPS.has(propName)) { + context.report({ + messageId: "prototypeBuildIn", + loc: callee.property.loc, + data: { prop: propName }, + node + }); + } + } + + return { + CallExpression: disallowBuiltIns + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-redeclare.js b/node_modules/eslint/lib/rules/no-redeclare.js new file mode 100644 index 0000000..59749cb --- /dev/null +++ b/node_modules/eslint/lib/rules/no-redeclare.js @@ -0,0 +1,174 @@ +/** + * @fileoverview Rule to flag when the same variable is declared more then once. + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow variable redeclaration", + recommended: true, + url: "https://eslint.org/docs/rules/no-redeclare" + }, + + messages: { + redeclared: "'{{id}}' is already defined.", + redeclaredAsBuiltin: "'{{id}}' is already defined as a built-in global variable.", + redeclaredBySyntax: "'{{id}}' is already defined by a variable declaration." + }, + + schema: [ + { + type: "object", + properties: { + builtinGlobals: { type: "boolean", default: true } + }, + additionalProperties: false + } + ] + }, + + create(context) { + const options = { + builtinGlobals: Boolean( + context.options.length === 0 || + context.options[0].builtinGlobals + ) + }; + const sourceCode = context.getSourceCode(); + + /** + * Iterate declarations of a given variable. + * @param {escope.variable} variable The variable object to iterate declarations. + * @returns {IterableIterator<{type:string,node:ASTNode,loc:SourceLocation}>} The declarations. + */ + function *iterateDeclarations(variable) { + if (options.builtinGlobals && ( + variable.eslintImplicitGlobalSetting === "readonly" || + variable.eslintImplicitGlobalSetting === "writable" + )) { + yield { type: "builtin" }; + } + + for (const id of variable.identifiers) { + yield { type: "syntax", node: id, loc: id.loc }; + } + + if (variable.eslintExplicitGlobalComments) { + for (const comment of variable.eslintExplicitGlobalComments) { + yield { + type: "comment", + node: comment, + loc: astUtils.getNameLocationInGlobalDirectiveComment( + sourceCode, + comment, + variable.name + ) + }; + } + } + } + + /** + * Find variables in a given scope and flag redeclared ones. + * @param {Scope} scope An eslint-scope scope object. + * @returns {void} + * @private + */ + function findVariablesInScope(scope) { + for (const variable of scope.variables) { + const [ + declaration, + ...extraDeclarations + ] = iterateDeclarations(variable); + + if (extraDeclarations.length === 0) { + continue; + } + + /* + * If the type of a declaration is different from the type of + * the first declaration, it shows the location of the first + * declaration. + */ + const detailMessageId = declaration.type === "builtin" + ? "redeclaredAsBuiltin" + : "redeclaredBySyntax"; + const data = { id: variable.name }; + + // Report extra declarations. + for (const { type, node, loc } of extraDeclarations) { + const messageId = type === declaration.type + ? "redeclared" + : detailMessageId; + + context.report({ node, loc, messageId, data }); + } + } + } + + /** + * Find variables in the current scope. + * @param {ASTNode} node The node of the current scope. + * @returns {void} + * @private + */ + function checkForBlock(node) { + const scope = context.getScope(); + + /* + * In ES5, some node type such as `BlockStatement` doesn't have that scope. + * `scope.block` is a different node in such a case. + */ + if (scope.block === node) { + findVariablesInScope(scope); + } + } + + return { + Program() { + const scope = context.getScope(); + + findVariablesInScope(scope); + + // Node.js or ES modules has a special scope. + if ( + scope.type === "global" && + scope.childScopes[0] && + + // The special scope's block is the Program node. + scope.block === scope.childScopes[0].block + ) { + findVariablesInScope(scope.childScopes[0]); + } + }, + + FunctionDeclaration: checkForBlock, + FunctionExpression: checkForBlock, + ArrowFunctionExpression: checkForBlock, + + StaticBlock: checkForBlock, + + BlockStatement: checkForBlock, + ForStatement: checkForBlock, + ForInStatement: checkForBlock, + ForOfStatement: checkForBlock, + SwitchStatement: checkForBlock + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-regex-spaces.js b/node_modules/eslint/lib/rules/no-regex-spaces.js new file mode 100644 index 0000000..6d74aab --- /dev/null +++ b/node_modules/eslint/lib/rules/no-regex-spaces.js @@ -0,0 +1,180 @@ +/** + * @fileoverview Rule to count multiple spaces in regular expressions + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const regexpp = require("regexpp"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const regExpParser = new regexpp.RegExpParser(); +const DOUBLE_SPACE = / {2}/u; + +/** + * Check if node is a string + * @param {ASTNode} node node to evaluate + * @returns {boolean} True if its a string + * @private + */ +function isString(node) { + return node && node.type === "Literal" && typeof node.value === "string"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow multiple spaces in regular expressions", + recommended: true, + url: "https://eslint.org/docs/rules/no-regex-spaces" + }, + + schema: [], + fixable: "code", + + messages: { + multipleSpaces: "Spaces are hard to count. Use {{{length}}}." + } + }, + + create(context) { + + /** + * Validate regular expression + * @param {ASTNode} nodeToReport Node to report. + * @param {string} pattern Regular expression pattern to validate. + * @param {string} rawPattern Raw representation of the pattern in the source code. + * @param {number} rawPatternStartRange Start range of the pattern in the source code. + * @param {string} flags Regular expression flags. + * @returns {void} + * @private + */ + function checkRegex(nodeToReport, pattern, rawPattern, rawPatternStartRange, flags) { + + // Skip if there are no consecutive spaces in the source code, to avoid reporting e.g., RegExp(' \ '). + if (!DOUBLE_SPACE.test(rawPattern)) { + return; + } + + const characterClassNodes = []; + let regExpAST; + + try { + regExpAST = regExpParser.parsePattern(pattern, 0, pattern.length, flags.includes("u")); + } catch { + + // Ignore regular expressions with syntax errors + return; + } + + regexpp.visitRegExpAST(regExpAST, { + onCharacterClassEnter(ccNode) { + characterClassNodes.push(ccNode); + } + }); + + const spacesPattern = /( {2,})(?: [+*{?]|[^+*{?]|$)/gu; + let match; + + while ((match = spacesPattern.exec(pattern))) { + const { 1: { length }, index } = match; + + // Report only consecutive spaces that are not in character classes. + if ( + characterClassNodes.every(({ start, end }) => index < start || end <= index) + ) { + context.report({ + node: nodeToReport, + messageId: "multipleSpaces", + data: { length }, + fix(fixer) { + if (pattern !== rawPattern) { + return null; + } + return fixer.replaceTextRange( + [rawPatternStartRange + index, rawPatternStartRange + index + length], + ` {${length}}` + ); + } + }); + + // Report only the first occurrence of consecutive spaces + return; + } + } + } + + /** + * Validate regular expression literals + * @param {ASTNode} node node to validate + * @returns {void} + * @private + */ + function checkLiteral(node) { + if (node.regex) { + const pattern = node.regex.pattern; + const rawPattern = node.raw.slice(1, node.raw.lastIndexOf("/")); + const rawPatternStartRange = node.range[0] + 1; + const flags = node.regex.flags; + + checkRegex( + node, + pattern, + rawPattern, + rawPatternStartRange, + flags + ); + } + } + + /** + * Validate strings passed to the RegExp constructor + * @param {ASTNode} node node to validate + * @returns {void} + * @private + */ + function checkFunction(node) { + const scope = context.getScope(); + const regExpVar = astUtils.getVariableByName(scope, "RegExp"); + const shadowed = regExpVar && regExpVar.defs.length > 0; + const patternNode = node.arguments[0]; + const flagsNode = node.arguments[1]; + + if (node.callee.type === "Identifier" && node.callee.name === "RegExp" && isString(patternNode) && !shadowed) { + const pattern = patternNode.value; + const rawPattern = patternNode.raw.slice(1, -1); + const rawPatternStartRange = patternNode.range[0] + 1; + const flags = isString(flagsNode) ? flagsNode.value : ""; + + checkRegex( + node, + pattern, + rawPattern, + rawPatternStartRange, + flags + ); + } + } + + return { + Literal: checkLiteral, + CallExpression: checkFunction, + NewExpression: checkFunction + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-restricted-exports.js b/node_modules/eslint/lib/rules/no-restricted-exports.js new file mode 100644 index 0000000..d99e892 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-restricted-exports.js @@ -0,0 +1,96 @@ +/** + * @fileoverview Rule to disallow specified names in exports + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow specified names in exports", + recommended: false, + url: "https://eslint.org/docs/rules/no-restricted-exports" + }, + + schema: [{ + type: "object", + properties: { + restrictedNamedExports: { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + } + }, + additionalProperties: false + }], + + messages: { + restrictedNamed: "'{{name}}' is restricted from being used as an exported name." + } + }, + + create(context) { + + const restrictedNames = new Set(context.options[0] && context.options[0].restrictedNamedExports); + + /** + * Checks and reports given exported name. + * @param {ASTNode} node exported `Identifier` or string `Literal` node to check. + * @returns {void} + */ + function checkExportedName(node) { + const name = astUtils.getModuleExportName(node); + + if (restrictedNames.has(name)) { + context.report({ + node, + messageId: "restrictedNamed", + data: { name } + }); + } + } + + return { + ExportAllDeclaration(node) { + if (node.exported) { + checkExportedName(node.exported); + } + }, + + ExportNamedDeclaration(node) { + const declaration = node.declaration; + + if (declaration) { + if (declaration.type === "FunctionDeclaration" || declaration.type === "ClassDeclaration") { + checkExportedName(declaration.id); + } else if (declaration.type === "VariableDeclaration") { + context.getDeclaredVariables(declaration) + .map(v => v.defs.find(d => d.parent === declaration)) + .map(d => d.name) // Identifier nodes + .forEach(checkExportedName); + } + } else { + node.specifiers + .map(s => s.exported) + .forEach(checkExportedName); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-restricted-globals.js b/node_modules/eslint/lib/rules/no-restricted-globals.js new file mode 100644 index 0000000..b666238 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-restricted-globals.js @@ -0,0 +1,122 @@ +/** + * @fileoverview Restrict usage of specified globals. + * @author Benoît Zugmeyer + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow specified global variables", + recommended: false, + url: "https://eslint.org/docs/rules/no-restricted-globals" + }, + + schema: { + type: "array", + items: { + oneOf: [ + { + type: "string" + }, + { + type: "object", + properties: { + name: { type: "string" }, + message: { type: "string" } + }, + required: ["name"], + additionalProperties: false + } + ] + }, + uniqueItems: true, + minItems: 0 + }, + + messages: { + defaultMessage: "Unexpected use of '{{name}}'.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + customMessage: "Unexpected use of '{{name}}'. {{customMessage}}" + } + }, + + create(context) { + + // If no globals are restricted, we don't need to do anything + if (context.options.length === 0) { + return {}; + } + + const restrictedGlobalMessages = context.options.reduce((memo, option) => { + if (typeof option === "string") { + memo[option] = null; + } else { + memo[option.name] = option.message; + } + + return memo; + }, {}); + + /** + * Report a variable to be used as a restricted global. + * @param {Reference} reference the variable reference + * @returns {void} + * @private + */ + function reportReference(reference) { + const name = reference.identifier.name, + customMessage = restrictedGlobalMessages[name], + messageId = customMessage + ? "customMessage" + : "defaultMessage"; + + context.report({ + node: reference.identifier, + messageId, + data: { + name, + customMessage + } + }); + } + + /** + * Check if the given name is a restricted global name. + * @param {string} name name of a variable + * @returns {boolean} whether the variable is a restricted global or not + * @private + */ + function isRestricted(name) { + return Object.prototype.hasOwnProperty.call(restrictedGlobalMessages, name); + } + + return { + Program() { + const scope = context.getScope(); + + // Report variables declared elsewhere (ex: variables defined as "global" by eslint) + scope.variables.forEach(variable => { + if (!variable.defs.length && isRestricted(variable.name)) { + variable.references.forEach(reportReference); + } + }); + + // Report variables not declared at all + scope.through.forEach(reference => { + if (isRestricted(reference.identifier.name)) { + reportReference(reference); + } + }); + + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-restricted-imports.js b/node_modules/eslint/lib/rules/no-restricted-imports.js new file mode 100644 index 0000000..f483867 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-restricted-imports.js @@ -0,0 +1,387 @@ +/** + * @fileoverview Restrict usage of specified node imports. + * @author Guy Ellis + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const ignore = require("ignore"); + +const arrayOfStringsOrObjects = { + type: "array", + items: { + anyOf: [ + { type: "string" }, + { + type: "object", + properties: { + name: { type: "string" }, + message: { + type: "string", + minLength: 1 + }, + importNames: { + type: "array", + items: { + type: "string" + } + } + }, + additionalProperties: false, + required: ["name"] + } + ] + }, + uniqueItems: true +}; + +const arrayOfStringsOrObjectPatterns = { + anyOf: [ + { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + }, + { + type: "array", + items: { + type: "object", + properties: { + importNames: { + type: "array", + items: { + type: "string" + }, + minItems: 1, + uniqueItems: true + }, + group: { + type: "array", + items: { + type: "string" + }, + minItems: 1, + uniqueItems: true + }, + message: { + type: "string", + minLength: 1 + }, + caseSensitive: { + type: "boolean" + } + }, + additionalProperties: false, + required: ["group"] + }, + uniqueItems: true + } + ] +}; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow specified modules when loaded by `import`", + recommended: false, + url: "https://eslint.org/docs/rules/no-restricted-imports" + }, + + messages: { + path: "'{{importSource}}' import is restricted from being used.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + pathWithCustomMessage: "'{{importSource}}' import is restricted from being used. {{customMessage}}", + + patterns: "'{{importSource}}' import is restricted from being used by a pattern.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + patternWithCustomMessage: "'{{importSource}}' import is restricted from being used by a pattern. {{customMessage}}", + + patternAndImportName: "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + patternAndImportNameWithCustomMessage: "'{{importName}}' import from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}", + + patternAndEverything: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + patternAndEverythingWithCustomMessage: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted from being used by a pattern. {{customMessage}}", + + everything: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + everythingWithCustomMessage: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted. {{customMessage}}", + + importName: "'{{importName}}' import from '{{importSource}}' is restricted.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + importNameWithCustomMessage: "'{{importName}}' import from '{{importSource}}' is restricted. {{customMessage}}" + }, + + schema: { + anyOf: [ + arrayOfStringsOrObjects, + { + type: "array", + items: [{ + type: "object", + properties: { + paths: arrayOfStringsOrObjects, + patterns: arrayOfStringsOrObjectPatterns + }, + additionalProperties: false + }], + additionalItems: false + } + ] + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const options = Array.isArray(context.options) ? context.options : []; + const isPathAndPatternsObject = + typeof options[0] === "object" && + (Object.prototype.hasOwnProperty.call(options[0], "paths") || Object.prototype.hasOwnProperty.call(options[0], "patterns")); + + const restrictedPaths = (isPathAndPatternsObject ? options[0].paths : context.options) || []; + const restrictedPathMessages = restrictedPaths.reduce((memo, importSource) => { + if (typeof importSource === "string") { + memo[importSource] = { message: null }; + } else { + memo[importSource.name] = { + message: importSource.message, + importNames: importSource.importNames + }; + } + return memo; + }, {}); + + // Handle patterns too, either as strings or groups + let restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || []; + + // standardize to array of objects if we have an array of strings + if (restrictedPatterns.length > 0 && typeof restrictedPatterns[0] === "string") { + restrictedPatterns = [{ group: restrictedPatterns }]; + } + + // relative paths are supported for this rule + const restrictedPatternGroups = restrictedPatterns.map(({ group, message, caseSensitive, importNames }) => ({ + matcher: ignore({ allowRelativePaths: true, ignorecase: !caseSensitive }).add(group), + customMessage: message, + importNames + })); + + // if no imports are restricted we don't need to check + if (Object.keys(restrictedPaths).length === 0 && restrictedPatternGroups.length === 0) { + return {}; + } + + /** + * Report a restricted path. + * @param {string} importSource path of the import + * @param {Map} importNames Map of import names that are being imported + * @param {node} node representing the restricted path reference + * @returns {void} + * @private + */ + function checkRestrictedPathAndReport(importSource, importNames, node) { + if (!Object.prototype.hasOwnProperty.call(restrictedPathMessages, importSource)) { + return; + } + + const customMessage = restrictedPathMessages[importSource].message; + const restrictedImportNames = restrictedPathMessages[importSource].importNames; + + if (restrictedImportNames) { + if (importNames.has("*")) { + const specifierData = importNames.get("*")[0]; + + context.report({ + node, + messageId: customMessage ? "everythingWithCustomMessage" : "everything", + loc: specifierData.loc, + data: { + importSource, + importNames: restrictedImportNames, + customMessage + } + }); + } + + restrictedImportNames.forEach(importName => { + if (importNames.has(importName)) { + const specifiers = importNames.get(importName); + + specifiers.forEach(specifier => { + context.report({ + node, + messageId: customMessage ? "importNameWithCustomMessage" : "importName", + loc: specifier.loc, + data: { + importSource, + customMessage, + importName + } + }); + }); + } + }); + } else { + context.report({ + node, + messageId: customMessage ? "pathWithCustomMessage" : "path", + data: { + importSource, + customMessage + } + }); + } + } + + /** + * Report a restricted path specifically for patterns. + * @param {node} node representing the restricted path reference + * @param {Object} group contains an Ignore instance for paths, the customMessage to show on failure, + * and any restricted import names that have been specified in the config + * @param {Map} importNames Map of import names that are being imported + * @returns {void} + * @private + */ + function reportPathForPatterns(node, group, importNames) { + const importSource = node.source.value.trim(); + + const customMessage = group.customMessage; + const restrictedImportNames = group.importNames; + + /* + * If we are not restricting to any specific import names and just the pattern itself, + * report the error and move on + */ + if (!restrictedImportNames) { + context.report({ + node, + messageId: customMessage ? "patternWithCustomMessage" : "patterns", + data: { + importSource, + customMessage + } + }); + return; + } + + if (importNames.has("*")) { + const specifierData = importNames.get("*")[0]; + + context.report({ + node, + messageId: customMessage ? "patternAndEverythingWithCustomMessage" : "patternAndEverything", + loc: specifierData.loc, + data: { + importSource, + importNames: restrictedImportNames, + customMessage + } + }); + } + + restrictedImportNames.forEach(importName => { + if (!importNames.has(importName)) { + return; + } + + const specifiers = importNames.get(importName); + + specifiers.forEach(specifier => { + context.report({ + node, + messageId: customMessage ? "patternAndImportNameWithCustomMessage" : "patternAndImportName", + loc: specifier.loc, + data: { + importSource, + customMessage, + importName + } + }); + }); + }); + } + + /** + * Check if the given importSource is restricted by a pattern. + * @param {string} importSource path of the import + * @param {Object} group contains a Ignore instance for paths, and the customMessage to show if it fails + * @returns {boolean} whether the variable is a restricted pattern or not + * @private + */ + function isRestrictedPattern(importSource, group) { + return group.matcher.ignores(importSource); + } + + /** + * Checks a node to see if any problems should be reported. + * @param {ASTNode} node The node to check. + * @returns {void} + * @private + */ + function checkNode(node) { + const importSource = node.source.value.trim(); + const importNames = new Map(); + + if (node.type === "ExportAllDeclaration") { + const starToken = sourceCode.getFirstToken(node, 1); + + importNames.set("*", [{ loc: starToken.loc }]); + } else if (node.specifiers) { + for (const specifier of node.specifiers) { + let name; + const specifierData = { loc: specifier.loc }; + + if (specifier.type === "ImportDefaultSpecifier") { + name = "default"; + } else if (specifier.type === "ImportNamespaceSpecifier") { + name = "*"; + } else if (specifier.imported) { + name = astUtils.getModuleExportName(specifier.imported); + } else if (specifier.local) { + name = astUtils.getModuleExportName(specifier.local); + } + + if (typeof name === "string") { + if (importNames.has(name)) { + importNames.get(name).push(specifierData); + } else { + importNames.set(name, [specifierData]); + } + } + } + } + + checkRestrictedPathAndReport(importSource, importNames, node); + restrictedPatternGroups.forEach(group => { + if (isRestrictedPattern(importSource, group)) { + reportPathForPatterns(node, group, importNames); + } + }); + } + + return { + ImportDeclaration: checkNode, + ExportNamedDeclaration(node) { + if (node.source) { + checkNode(node); + } + }, + ExportAllDeclaration: checkNode + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-restricted-modules.js b/node_modules/eslint/lib/rules/no-restricted-modules.js new file mode 100644 index 0000000..c37694f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-restricted-modules.js @@ -0,0 +1,216 @@ +/** + * @fileoverview Restrict usage of specified node modules. + * @author Christian Schulz + * @deprecated in ESLint v7.0.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const ignore = require("ignore"); + +const arrayOfStrings = { + type: "array", + items: { type: "string" }, + uniqueItems: true +}; + +const arrayOfStringsOrObjects = { + type: "array", + items: { + anyOf: [ + { type: "string" }, + { + type: "object", + properties: { + name: { type: "string" }, + message: { + type: "string", + minLength: 1 + } + }, + additionalProperties: false, + required: ["name"] + } + ] + }, + uniqueItems: true +}; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Disallow specified modules when loaded by `require`", + recommended: false, + url: "https://eslint.org/docs/rules/no-restricted-modules" + }, + + schema: { + anyOf: [ + arrayOfStringsOrObjects, + { + type: "array", + items: { + type: "object", + properties: { + paths: arrayOfStringsOrObjects, + patterns: arrayOfStrings + }, + additionalProperties: false + }, + additionalItems: false + } + ] + }, + + messages: { + defaultMessage: "'{{name}}' module is restricted from being used.", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + customMessage: "'{{name}}' module is restricted from being used. {{customMessage}}", + patternMessage: "'{{name}}' module is restricted from being used by a pattern." + } + }, + + create(context) { + const options = Array.isArray(context.options) ? context.options : []; + const isPathAndPatternsObject = + typeof options[0] === "object" && + (Object.prototype.hasOwnProperty.call(options[0], "paths") || Object.prototype.hasOwnProperty.call(options[0], "patterns")); + + const restrictedPaths = (isPathAndPatternsObject ? options[0].paths : context.options) || []; + const restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || []; + + const restrictedPathMessages = restrictedPaths.reduce((memo, importName) => { + if (typeof importName === "string") { + memo[importName] = null; + } else { + memo[importName.name] = importName.message; + } + return memo; + }, {}); + + // if no imports are restricted we don't need to check + if (Object.keys(restrictedPaths).length === 0 && restrictedPatterns.length === 0) { + return {}; + } + + // relative paths are supported for this rule + const ig = ignore({ allowRelativePaths: true }).add(restrictedPatterns); + + + /** + * Function to check if a node is a string literal. + * @param {ASTNode} node The node to check. + * @returns {boolean} If the node is a string literal. + */ + function isStringLiteral(node) { + return node && node.type === "Literal" && typeof node.value === "string"; + } + + /** + * Function to check if a node is a static string template literal. + * @param {ASTNode} node The node to check. + * @returns {boolean} If the node is a string template literal. + */ + function isStaticTemplateLiteral(node) { + return node && node.type === "TemplateLiteral" && node.expressions.length === 0; + } + + /** + * Function to check if a node is a require call. + * @param {ASTNode} node The node to check. + * @returns {boolean} If the node is a require call. + */ + function isRequireCall(node) { + return node.callee.type === "Identifier" && node.callee.name === "require"; + } + + /** + * Extract string from Literal or TemplateLiteral node + * @param {ASTNode} node The node to extract from + * @returns {string|null} Extracted string or null if node doesn't represent a string + */ + function getFirstArgumentString(node) { + if (isStringLiteral(node)) { + return node.value.trim(); + } + + if (isStaticTemplateLiteral(node)) { + return node.quasis[0].value.cooked.trim(); + } + + return null; + } + + /** + * Report a restricted path. + * @param {node} node representing the restricted path reference + * @param {string} name restricted path + * @returns {void} + * @private + */ + function reportPath(node, name) { + const customMessage = restrictedPathMessages[name]; + const messageId = customMessage + ? "customMessage" + : "defaultMessage"; + + context.report({ + node, + messageId, + data: { + name, + customMessage + } + }); + } + + /** + * Check if the given name is a restricted path name + * @param {string} name name of a variable + * @returns {boolean} whether the variable is a restricted path or not + * @private + */ + function isRestrictedPath(name) { + return Object.prototype.hasOwnProperty.call(restrictedPathMessages, name); + } + + return { + CallExpression(node) { + if (isRequireCall(node)) { + + // node has arguments + if (node.arguments.length) { + const name = getFirstArgumentString(node.arguments[0]); + + // if first argument is a string literal or a static string template literal + if (name) { + + // check if argument value is in restricted modules array + if (isRestrictedPath(name)) { + reportPath(node, name); + } + + if (restrictedPatterns.length > 0 && ig.ignores(name)) { + context.report({ + node, + messageId: "patternMessage", + data: { name } + }); + } + } + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-restricted-properties.js b/node_modules/eslint/lib/rules/no-restricted-properties.js new file mode 100644 index 0000000..7c03498 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-restricted-properties.js @@ -0,0 +1,181 @@ +/** + * @fileoverview Rule to disallow certain object properties + * @author Will Klein & Eli White + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow certain properties on certain objects", + recommended: false, + url: "https://eslint.org/docs/rules/no-restricted-properties" + }, + + schema: { + type: "array", + items: { + anyOf: [ // `object` and `property` are both optional, but at least one of them must be provided. + { + type: "object", + properties: { + object: { + type: "string" + }, + property: { + type: "string" + }, + message: { + type: "string" + } + }, + additionalProperties: false, + required: ["object"] + }, + { + type: "object", + properties: { + object: { + type: "string" + }, + property: { + type: "string" + }, + message: { + type: "string" + } + }, + additionalProperties: false, + required: ["property"] + } + ] + }, + uniqueItems: true + }, + + messages: { + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + restrictedObjectProperty: "'{{objectName}}.{{propertyName}}' is restricted from being used.{{message}}", + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + restrictedProperty: "'{{propertyName}}' is restricted from being used.{{message}}" + } + }, + + create(context) { + const restrictedCalls = context.options; + + if (restrictedCalls.length === 0) { + return {}; + } + + const restrictedProperties = new Map(); + const globallyRestrictedObjects = new Map(); + const globallyRestrictedProperties = new Map(); + + restrictedCalls.forEach(option => { + const objectName = option.object; + const propertyName = option.property; + + if (typeof objectName === "undefined") { + globallyRestrictedProperties.set(propertyName, { message: option.message }); + } else if (typeof propertyName === "undefined") { + globallyRestrictedObjects.set(objectName, { message: option.message }); + } else { + if (!restrictedProperties.has(objectName)) { + restrictedProperties.set(objectName, new Map()); + } + + restrictedProperties.get(objectName).set(propertyName, { + message: option.message + }); + } + }); + + /** + * Checks to see whether a property access is restricted, and reports it if so. + * @param {ASTNode} node The node to report + * @param {string} objectName The name of the object + * @param {string} propertyName The name of the property + * @returns {undefined} + */ + function checkPropertyAccess(node, objectName, propertyName) { + if (propertyName === null) { + return; + } + const matchedObject = restrictedProperties.get(objectName); + const matchedObjectProperty = matchedObject ? matchedObject.get(propertyName) : globallyRestrictedObjects.get(objectName); + const globalMatchedProperty = globallyRestrictedProperties.get(propertyName); + + if (matchedObjectProperty) { + const message = matchedObjectProperty.message ? ` ${matchedObjectProperty.message}` : ""; + + context.report({ + node, + messageId: "restrictedObjectProperty", + data: { + objectName, + propertyName, + message + } + }); + } else if (globalMatchedProperty) { + const message = globalMatchedProperty.message ? ` ${globalMatchedProperty.message}` : ""; + + context.report({ + node, + messageId: "restrictedProperty", + data: { + propertyName, + message + } + }); + } + } + + /** + * Checks property accesses in a destructuring assignment expression, e.g. `var foo; ({foo} = bar);` + * @param {ASTNode} node An AssignmentExpression or AssignmentPattern node + * @returns {undefined} + */ + function checkDestructuringAssignment(node) { + if (node.right.type === "Identifier") { + const objectName = node.right.name; + + if (node.left.type === "ObjectPattern") { + node.left.properties.forEach(property => { + checkPropertyAccess(node.left, objectName, astUtils.getStaticPropertyName(property)); + }); + } + } + } + + return { + MemberExpression(node) { + checkPropertyAccess(node, node.object && node.object.name, astUtils.getStaticPropertyName(node)); + }, + VariableDeclarator(node) { + if (node.init && node.init.type === "Identifier") { + const objectName = node.init.name; + + if (node.id.type === "ObjectPattern") { + node.id.properties.forEach(property => { + checkPropertyAccess(node.id, objectName, astUtils.getStaticPropertyName(property)); + }); + } + } + }, + AssignmentExpression: checkDestructuringAssignment, + AssignmentPattern: checkDestructuringAssignment + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-restricted-syntax.js b/node_modules/eslint/lib/rules/no-restricted-syntax.js new file mode 100644 index 0000000..76369cf --- /dev/null +++ b/node_modules/eslint/lib/rules/no-restricted-syntax.js @@ -0,0 +1,70 @@ +/** + * @fileoverview Rule to flag use of certain node types + * @author Burak Yigit Kaya + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow specified syntax", + recommended: false, + url: "https://eslint.org/docs/rules/no-restricted-syntax" + }, + + schema: { + type: "array", + items: { + oneOf: [ + { + type: "string" + }, + { + type: "object", + properties: { + selector: { type: "string" }, + message: { type: "string" } + }, + required: ["selector"], + additionalProperties: false + } + ] + }, + uniqueItems: true, + minItems: 0 + }, + + messages: { + // eslint-disable-next-line eslint-plugin/report-message-format -- Custom message might not end in a period + restrictedSyntax: "{{message}}" + } + }, + + create(context) { + return context.options.reduce((result, selectorOrObject) => { + const isStringFormat = (typeof selectorOrObject === "string"); + const hasCustomMessage = !isStringFormat && Boolean(selectorOrObject.message); + + const selector = isStringFormat ? selectorOrObject : selectorOrObject.selector; + const message = hasCustomMessage ? selectorOrObject.message : `Using '${selector}' is not allowed.`; + + return Object.assign(result, { + [selector](node) { + context.report({ + node, + messageId: "restrictedSyntax", + data: { message } + }); + } + }); + }, {}); + + } +}; diff --git a/node_modules/eslint/lib/rules/no-return-assign.js b/node_modules/eslint/lib/rules/no-return-assign.js new file mode 100644 index 0000000..ccaf2c1 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-return-assign.js @@ -0,0 +1,80 @@ +/** + * @fileoverview Rule to flag when return statement contains assignment + * @author Ilya Volodin + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SENTINEL_TYPE = /^(?:[a-zA-Z]+?Statement|ArrowFunctionExpression|FunctionExpression|ClassExpression)$/u; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow assignment operators in `return` statements", + recommended: false, + url: "https://eslint.org/docs/rules/no-return-assign" + }, + + schema: [ + { + enum: ["except-parens", "always"] + } + ], + + messages: { + returnAssignment: "Return statement should not contain assignment.", + arrowAssignment: "Arrow function should not return assignment." + } + }, + + create(context) { + const always = (context.options[0] || "except-parens") !== "except-parens"; + const sourceCode = context.getSourceCode(); + + return { + AssignmentExpression(node) { + if (!always && astUtils.isParenthesised(sourceCode, node)) { + return; + } + + let currentChild = node; + let parent = currentChild.parent; + + // Find ReturnStatement or ArrowFunctionExpression in ancestors. + while (parent && !SENTINEL_TYPE.test(parent.type)) { + currentChild = parent; + parent = parent.parent; + } + + // Reports. + if (parent && parent.type === "ReturnStatement") { + context.report({ + node: parent, + messageId: "returnAssignment" + }); + } else if (parent && parent.type === "ArrowFunctionExpression" && parent.body === currentChild) { + context.report({ + node: parent, + messageId: "arrowAssignment" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-return-await.js b/node_modules/eslint/lib/rules/no-return-await.js new file mode 100644 index 0000000..3007c8c --- /dev/null +++ b/node_modules/eslint/lib/rules/no-return-await.js @@ -0,0 +1,103 @@ +/** + * @fileoverview Disallows unnecessary `return await` + * @author Jordan Harband + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary `return await`", + + recommended: false, + + url: "https://eslint.org/docs/rules/no-return-await" + }, + + fixable: null, + + schema: [ + ], + + messages: { + redundantUseOfAwait: "Redundant use of `await` on a return value." + } + }, + + create(context) { + + /** + * Reports a found unnecessary `await` expression. + * @param {ASTNode} node The node representing the `await` expression to report + * @returns {void} + */ + function reportUnnecessaryAwait(node) { + context.report({ + node: context.getSourceCode().getFirstToken(node), + loc: node.loc, + messageId: "redundantUseOfAwait" + }); + } + + /** + * Determines whether a thrown error from this node will be caught/handled within this function rather than immediately halting + * this function. For example, a statement in a `try` block will always have an error handler. A statement in + * a `catch` block will only have an error handler if there is also a `finally` block. + * @param {ASTNode} node A node representing a location where an could be thrown + * @returns {boolean} `true` if a thrown error will be caught/handled in this function + */ + function hasErrorHandler(node) { + let ancestor = node; + + while (!astUtils.isFunction(ancestor) && ancestor.type !== "Program") { + if (ancestor.parent.type === "TryStatement" && (ancestor === ancestor.parent.block || ancestor === ancestor.parent.handler && ancestor.parent.finalizer)) { + return true; + } + ancestor = ancestor.parent; + } + return false; + } + + /** + * Checks if a node is placed in tail call position. Once `return` arguments (or arrow function expressions) can be a complex expression, + * an `await` expression could or could not be unnecessary by the definition of this rule. So we're looking for `await` expressions that are in tail position. + * @param {ASTNode} node A node representing the `await` expression to check + * @returns {boolean} The checking result + */ + function isInTailCallPosition(node) { + if (node.parent.type === "ArrowFunctionExpression") { + return true; + } + if (node.parent.type === "ReturnStatement") { + return !hasErrorHandler(node.parent); + } + if (node.parent.type === "ConditionalExpression" && (node === node.parent.consequent || node === node.parent.alternate)) { + return isInTailCallPosition(node.parent); + } + if (node.parent.type === "LogicalExpression" && node === node.parent.right) { + return isInTailCallPosition(node.parent); + } + if (node.parent.type === "SequenceExpression" && node === node.parent.expressions[node.parent.expressions.length - 1]) { + return isInTailCallPosition(node.parent); + } + return false; + } + + return { + AwaitExpression(node) { + if (isInTailCallPosition(node) && !hasErrorHandler(node)) { + reportUnnecessaryAwait(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-script-url.js b/node_modules/eslint/lib/rules/no-script-url.js new file mode 100644 index 0000000..4147900 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-script-url.js @@ -0,0 +1,61 @@ +/** + * @fileoverview Rule to flag when using javascript: urls + * @author Ilya Volodin + */ +/* eslint no-script-url: 0 -- Code is checking to report such URLs */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `javascript:` urls", + recommended: false, + url: "https://eslint.org/docs/rules/no-script-url" + }, + + schema: [], + + messages: { + unexpectedScriptURL: "Script URL is a form of eval." + } + }, + + create(context) { + + /** + * Check whether a node's static value starts with "javascript:" or not. + * And report an error for unexpected script URL. + * @param {ASTNode} node node to check + * @returns {void} + */ + function check(node) { + const value = astUtils.getStaticStringValue(node); + + if (typeof value === "string" && value.toLowerCase().indexOf("javascript:") === 0) { + context.report({ node, messageId: "unexpectedScriptURL" }); + } + } + return { + Literal(node) { + if (node.value && typeof node.value === "string") { + check(node); + } + }, + TemplateLiteral(node) { + if (!(node.parent && node.parent.type === "TaggedTemplateExpression")) { + check(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-self-assign.js b/node_modules/eslint/lib/rules/no-self-assign.js new file mode 100644 index 0000000..348ee8d --- /dev/null +++ b/node_modules/eslint/lib/rules/no-self-assign.js @@ -0,0 +1,183 @@ +/** + * @fileoverview Rule to disallow assignments where both sides are exactly the same + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SPACES = /\s+/gu; + +/** + * Traverses 2 Pattern nodes in parallel, then reports self-assignments. + * @param {ASTNode|null} left A left node to traverse. This is a Pattern or + * a Property. + * @param {ASTNode|null} right A right node to traverse. This is a Pattern or + * a Property. + * @param {boolean} props The flag to check member expressions as well. + * @param {Function} report A callback function to report. + * @returns {void} + */ +function eachSelfAssignment(left, right, props, report) { + if (!left || !right) { + + // do nothing + } else if ( + left.type === "Identifier" && + right.type === "Identifier" && + left.name === right.name + ) { + report(right); + } else if ( + left.type === "ArrayPattern" && + right.type === "ArrayExpression" + ) { + const end = Math.min(left.elements.length, right.elements.length); + + for (let i = 0; i < end; ++i) { + const leftElement = left.elements[i]; + const rightElement = right.elements[i]; + + // Avoid cases such as [...a] = [...a, 1] + if ( + leftElement && + leftElement.type === "RestElement" && + i < right.elements.length - 1 + ) { + break; + } + + eachSelfAssignment(leftElement, rightElement, props, report); + + // After a spread element, those indices are unknown. + if (rightElement && rightElement.type === "SpreadElement") { + break; + } + } + } else if ( + left.type === "RestElement" && + right.type === "SpreadElement" + ) { + eachSelfAssignment(left.argument, right.argument, props, report); + } else if ( + left.type === "ObjectPattern" && + right.type === "ObjectExpression" && + right.properties.length >= 1 + ) { + + /* + * Gets the index of the last spread property. + * It's possible to overwrite properties followed by it. + */ + let startJ = 0; + + for (let i = right.properties.length - 1; i >= 0; --i) { + const propType = right.properties[i].type; + + if (propType === "SpreadElement" || propType === "ExperimentalSpreadProperty") { + startJ = i + 1; + break; + } + } + + for (let i = 0; i < left.properties.length; ++i) { + for (let j = startJ; j < right.properties.length; ++j) { + eachSelfAssignment( + left.properties[i], + right.properties[j], + props, + report + ); + } + } + } else if ( + left.type === "Property" && + right.type === "Property" && + right.kind === "init" && + !right.method + ) { + const leftName = astUtils.getStaticPropertyName(left); + + if (leftName !== null && leftName === astUtils.getStaticPropertyName(right)) { + eachSelfAssignment(left.value, right.value, props, report); + } + } else if ( + props && + astUtils.skipChainExpression(left).type === "MemberExpression" && + astUtils.skipChainExpression(right).type === "MemberExpression" && + astUtils.isSameReference(left, right) + ) { + report(right); + } +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow assignments where both sides are exactly the same", + recommended: true, + url: "https://eslint.org/docs/rules/no-self-assign" + }, + + schema: [ + { + type: "object", + properties: { + props: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + selfAssignment: "'{{name}}' is assigned to itself." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const [{ props = true } = {}] = context.options; + + /** + * Reports a given node as self assignments. + * @param {ASTNode} node A node to report. This is an Identifier node. + * @returns {void} + */ + function report(node) { + context.report({ + node, + messageId: "selfAssignment", + data: { + name: sourceCode.getText(node).replace(SPACES, "") + } + }); + } + + return { + AssignmentExpression(node) { + if (["=", "&&=", "||=", "??="].includes(node.operator)) { + eachSelfAssignment(node.left, node.right, props, report); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-self-compare.js b/node_modules/eslint/lib/rules/no-self-compare.js new file mode 100644 index 0000000..dab0db4 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-self-compare.js @@ -0,0 +1,60 @@ +/** + * @fileoverview Rule to flag comparison where left part is the same as the right + * part. + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow comparisons where both sides are exactly the same", + recommended: false, + url: "https://eslint.org/docs/rules/no-self-compare" + }, + + schema: [], + + messages: { + comparingToSelf: "Comparing to itself is potentially pointless." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Determines whether two nodes are composed of the same tokens. + * @param {ASTNode} nodeA The first node + * @param {ASTNode} nodeB The second node + * @returns {boolean} true if the nodes have identical token representations + */ + function hasSameTokens(nodeA, nodeB) { + const tokensA = sourceCode.getTokens(nodeA); + const tokensB = sourceCode.getTokens(nodeB); + + return tokensA.length === tokensB.length && + tokensA.every((token, index) => token.type === tokensB[index].type && token.value === tokensB[index].value); + } + + return { + + BinaryExpression(node) { + const operators = new Set(["===", "==", "!==", "!=", ">", "<", ">=", "<="]); + + if (operators.has(node.operator) && hasSameTokens(node.left, node.right)) { + context.report({ node, messageId: "comparingToSelf" }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-sequences.js b/node_modules/eslint/lib/rules/no-sequences.js new file mode 100644 index 0000000..2c0c27c --- /dev/null +++ b/node_modules/eslint/lib/rules/no-sequences.js @@ -0,0 +1,138 @@ +/** + * @fileoverview Rule to flag use of comma operator + * @author Brandon Mills + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const DEFAULT_OPTIONS = { + allowInParentheses: true +}; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow comma operators", + recommended: false, + url: "https://eslint.org/docs/rules/no-sequences" + }, + + schema: [{ + properties: { + allowInParentheses: { + type: "boolean", + default: true + } + }, + additionalProperties: false + }], + + messages: { + unexpectedCommaExpression: "Unexpected use of comma operator." + } + }, + + create(context) { + const options = Object.assign({}, DEFAULT_OPTIONS, context.options[0]); + const sourceCode = context.getSourceCode(); + + /** + * Parts of the grammar that are required to have parens. + */ + const parenthesized = { + DoWhileStatement: "test", + IfStatement: "test", + SwitchStatement: "discriminant", + WhileStatement: "test", + WithStatement: "object", + ArrowFunctionExpression: "body" + + /* + * Omitting CallExpression - commas are parsed as argument separators + * Omitting NewExpression - commas are parsed as argument separators + * Omitting ForInStatement - parts aren't individually parenthesised + * Omitting ForStatement - parts aren't individually parenthesised + */ + }; + + /** + * Determines whether a node is required by the grammar to be wrapped in + * parens, e.g. the test of an if statement. + * @param {ASTNode} node The AST node + * @returns {boolean} True if parens around node belong to parent node. + */ + function requiresExtraParens(node) { + return node.parent && parenthesized[node.parent.type] && + node === node.parent[parenthesized[node.parent.type]]; + } + + /** + * Check if a node is wrapped in parens. + * @param {ASTNode} node The AST node + * @returns {boolean} True if the node has a paren on each side. + */ + function isParenthesised(node) { + return astUtils.isParenthesised(sourceCode, node); + } + + /** + * Check if a node is wrapped in two levels of parens. + * @param {ASTNode} node The AST node + * @returns {boolean} True if two parens surround the node on each side. + */ + function isParenthesisedTwice(node) { + const previousToken = sourceCode.getTokenBefore(node, 1), + nextToken = sourceCode.getTokenAfter(node, 1); + + return isParenthesised(node) && previousToken && nextToken && + astUtils.isOpeningParenToken(previousToken) && previousToken.range[1] <= node.range[0] && + astUtils.isClosingParenToken(nextToken) && nextToken.range[0] >= node.range[1]; + } + + return { + SequenceExpression(node) { + + // Always allow sequences in for statement update + if (node.parent.type === "ForStatement" && + (node === node.parent.init || node === node.parent.update)) { + return; + } + + // Wrapping a sequence in extra parens indicates intent + if (options.allowInParentheses) { + if (requiresExtraParens(node)) { + if (isParenthesisedTwice(node)) { + return; + } + } else { + if (isParenthesised(node)) { + return; + } + } + } + + const firstCommaToken = sourceCode.getTokenAfter(node.expressions[0], astUtils.isCommaToken); + + context.report({ node, loc: firstCommaToken.loc, messageId: "unexpectedCommaExpression" }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-setter-return.js b/node_modules/eslint/lib/rules/no-setter-return.js new file mode 100644 index 0000000..25e8f14 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-setter-return.js @@ -0,0 +1,225 @@ +/** + * @fileoverview Rule to disallow returning values from setters + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { findVariable } = require("eslint-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines whether the given identifier node is a reference to a global variable. + * @param {ASTNode} node `Identifier` node to check. + * @param {Scope} scope Scope to which the node belongs. + * @returns {boolean} True if the identifier is a reference to a global variable. + */ +function isGlobalReference(node, scope) { + const variable = findVariable(scope, node); + + return variable !== null && variable.scope.type === "global" && variable.defs.length === 0; +} + +/** + * Determines whether the given node is an argument of the specified global method call, at the given `index` position. + * E.g., for given `index === 1`, this function checks for `objectName.methodName(foo, node)`, where objectName is a global variable. + * @param {ASTNode} node The node to check. + * @param {Scope} scope Scope to which the node belongs. + * @param {string} objectName Name of the global object. + * @param {string} methodName Name of the method. + * @param {number} index The given position. + * @returns {boolean} `true` if the node is argument at the given position. + */ +function isArgumentOfGlobalMethodCall(node, scope, objectName, methodName, index) { + const callNode = node.parent; + + return callNode.type === "CallExpression" && + callNode.arguments[index] === node && + astUtils.isSpecificMemberAccess(callNode.callee, objectName, methodName) && + isGlobalReference(astUtils.skipChainExpression(callNode.callee).object, scope); +} + +/** + * Determines whether the given node is used as a property descriptor. + * @param {ASTNode} node The node to check. + * @param {Scope} scope Scope to which the node belongs. + * @returns {boolean} `true` if the node is a property descriptor. + */ +function isPropertyDescriptor(node, scope) { + if ( + isArgumentOfGlobalMethodCall(node, scope, "Object", "defineProperty", 2) || + isArgumentOfGlobalMethodCall(node, scope, "Reflect", "defineProperty", 2) + ) { + return true; + } + + const parent = node.parent; + + if ( + parent.type === "Property" && + parent.value === node + ) { + const grandparent = parent.parent; + + if ( + grandparent.type === "ObjectExpression" && + ( + isArgumentOfGlobalMethodCall(grandparent, scope, "Object", "create", 1) || + isArgumentOfGlobalMethodCall(grandparent, scope, "Object", "defineProperties", 1) + ) + ) { + return true; + } + } + + return false; +} + +/** + * Determines whether the given function node is used as a setter function. + * @param {ASTNode} node The node to check. + * @param {Scope} scope Scope to which the node belongs. + * @returns {boolean} `true` if the node is a setter. + */ +function isSetter(node, scope) { + const parent = node.parent; + + if ( + (parent.type === "Property" || parent.type === "MethodDefinition") && + parent.kind === "set" && + parent.value === node + ) { + + // Setter in an object literal or in a class + return true; + } + + if ( + parent.type === "Property" && + parent.value === node && + astUtils.getStaticPropertyName(parent) === "set" && + parent.parent.type === "ObjectExpression" && + isPropertyDescriptor(parent.parent, scope) + ) { + + // Setter in a property descriptor + return true; + } + + return false; +} + +/** + * Finds function's outer scope. + * @param {Scope} scope Function's own scope. + * @returns {Scope} Function's outer scope. + */ +function getOuterScope(scope) { + const upper = scope.upper; + + if (upper.type === "function-expression-name") { + return upper.upper; + } + + return upper; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow returning values from setters", + recommended: true, + url: "https://eslint.org/docs/rules/no-setter-return" + }, + + schema: [], + + messages: { + returnsValue: "Setter cannot return a value." + } + }, + + create(context) { + let funcInfo = null; + + /** + * Creates and pushes to the stack a function info object for the given function node. + * @param {ASTNode} node The function node. + * @returns {void} + */ + function enterFunction(node) { + const outerScope = getOuterScope(context.getScope()); + + funcInfo = { + upper: funcInfo, + isSetter: isSetter(node, outerScope) + }; + } + + /** + * Pops the current function info object from the stack. + * @returns {void} + */ + function exitFunction() { + funcInfo = funcInfo.upper; + } + + /** + * Reports the given node. + * @param {ASTNode} node Node to report. + * @returns {void} + */ + function report(node) { + context.report({ node, messageId: "returnsValue" }); + } + + return { + + /* + * Function declarations cannot be setters, but we still have to track them in the `funcInfo` stack to avoid + * false positives, because a ReturnStatement node can belong to a function declaration inside a setter. + * + * Note: A previously declared function can be referenced and actually used as a setter in a property descriptor, + * but that's out of scope for this rule. + */ + FunctionDeclaration: enterFunction, + FunctionExpression: enterFunction, + ArrowFunctionExpression(node) { + enterFunction(node); + + if (funcInfo.isSetter && node.expression) { + + // { set: foo => bar } property descriptor. Report implicit return 'bar' as the equivalent for a return statement. + report(node.body); + } + }, + + "FunctionDeclaration:exit": exitFunction, + "FunctionExpression:exit": exitFunction, + "ArrowFunctionExpression:exit": exitFunction, + + ReturnStatement(node) { + + // Global returns (e.g., at the top level of a Node module) don't have `funcInfo`. + if (funcInfo && funcInfo.isSetter && node.argument) { + report(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-shadow-restricted-names.js b/node_modules/eslint/lib/rules/no-shadow-restricted-names.js new file mode 100644 index 0000000..a7d6d00 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-shadow-restricted-names.js @@ -0,0 +1,64 @@ +/** + * @fileoverview Disallow shadowing of NaN, undefined, and Infinity (ES5 section 15.1.1) + * @author Michael Ficarra + */ +"use strict"; + +/** + * Determines if a variable safely shadows undefined. + * This is the case when a variable named `undefined` is never assigned to a value (i.e. it always shares the same value + * as the global). + * @param {eslintScope.Variable} variable The variable to check + * @returns {boolean} true if this variable safely shadows `undefined` + */ +function safelyShadowsUndefined(variable) { + return variable.name === "undefined" && + variable.references.every(ref => !ref.isWrite()) && + variable.defs.every(def => def.node.type === "VariableDeclarator" && def.node.init === null); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow identifiers from shadowing restricted names", + recommended: true, + url: "https://eslint.org/docs/rules/no-shadow-restricted-names" + }, + + schema: [], + + messages: { + shadowingRestrictedName: "Shadowing of global property '{{name}}'." + } + }, + + create(context) { + + + const RESTRICTED = new Set(["undefined", "NaN", "Infinity", "arguments", "eval"]); + + return { + "VariableDeclaration, :function, CatchClause"(node) { + for (const variable of context.getDeclaredVariables(node)) { + if (variable.defs.length > 0 && RESTRICTED.has(variable.name) && !safelyShadowsUndefined(variable)) { + context.report({ + node: variable.defs[0].name, + messageId: "shadowingRestrictedName", + data: { + name: variable.name + } + }); + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-shadow.js b/node_modules/eslint/lib/rules/no-shadow.js new file mode 100644 index 0000000..3af9354 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-shadow.js @@ -0,0 +1,335 @@ +/** + * @fileoverview Rule to flag on declaring variables already declared in the outer scope + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const FUNC_EXPR_NODE_TYPES = new Set(["ArrowFunctionExpression", "FunctionExpression"]); +const CALL_EXPR_NODE_TYPE = new Set(["CallExpression"]); +const FOR_IN_OF_TYPE = /^For(?:In|Of)Statement$/u; +const SENTINEL_TYPE = /^(?:(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|CatchClause|ImportDeclaration|ExportNamedDeclaration)$/u; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow variable declarations from shadowing variables declared in the outer scope", + recommended: false, + url: "https://eslint.org/docs/rules/no-shadow" + }, + + schema: [ + { + type: "object", + properties: { + builtinGlobals: { type: "boolean", default: false }, + hoist: { enum: ["all", "functions", "never"], default: "functions" }, + allow: { + type: "array", + items: { + type: "string" + } + }, + ignoreOnInitialization: { type: "boolean", default: false } + }, + additionalProperties: false + } + ], + + messages: { + noShadow: "'{{name}}' is already declared in the upper scope on line {{shadowedLine}} column {{shadowedColumn}}.", + noShadowGlobal: "'{{name}}' is already a global variable." + } + }, + + create(context) { + + const options = { + builtinGlobals: context.options[0] && context.options[0].builtinGlobals, + hoist: (context.options[0] && context.options[0].hoist) || "functions", + allow: (context.options[0] && context.options[0].allow) || [], + ignoreOnInitialization: context.options[0] && context.options[0].ignoreOnInitialization + }; + + /** + * Checks whether or not a given location is inside of the range of a given node. + * @param {ASTNode} node An node to check. + * @param {number} location A location to check. + * @returns {boolean} `true` if the location is inside of the range of the node. + */ + function isInRange(node, location) { + return node && node.range[0] <= location && location <= node.range[1]; + } + + /** + * Searches from the current node through its ancestry to find a matching node. + * @param {ASTNode} node a node to get. + * @param {(node: ASTNode) => boolean} match a callback that checks whether or not the node verifies its condition or not. + * @returns {ASTNode|null} the matching node. + */ + function findSelfOrAncestor(node, match) { + let currentNode = node; + + while (currentNode && !match(currentNode)) { + currentNode = currentNode.parent; + } + return currentNode; + } + + /** + * Finds function's outer scope. + * @param {Scope} scope Function's own scope. + * @returns {Scope} Function's outer scope. + */ + function getOuterScope(scope) { + const upper = scope.upper; + + if (upper.type === "function-expression-name") { + return upper.upper; + } + return upper; + } + + /** + * Checks if a variable and a shadowedVariable have the same init pattern ancestor. + * @param {Object} variable a variable to check. + * @param {Object} shadowedVariable a shadowedVariable to check. + * @returns {boolean} Whether or not the variable and the shadowedVariable have the same init pattern ancestor. + */ + function isInitPatternNode(variable, shadowedVariable) { + const outerDef = shadowedVariable.defs[0]; + + if (!outerDef) { + return false; + } + + const { variableScope } = variable.scope; + + + if (!(FUNC_EXPR_NODE_TYPES.has(variableScope.block.type) && getOuterScope(variableScope) === shadowedVariable.scope)) { + return false; + } + + const fun = variableScope.block; + const { parent } = fun; + + const callExpression = findSelfOrAncestor( + parent, + node => CALL_EXPR_NODE_TYPE.has(node.type) + ); + + if (!callExpression) { + return false; + } + + let node = outerDef.name; + const location = callExpression.range[1]; + + while (node) { + if (node.type === "VariableDeclarator") { + if (isInRange(node.init, location)) { + return true; + } + if (FOR_IN_OF_TYPE.test(node.parent.parent.type) && + isInRange(node.parent.parent.right, location) + ) { + return true; + } + break; + } else if (node.type === "AssignmentPattern") { + if (isInRange(node.right, location)) { + return true; + } + } else if (SENTINEL_TYPE.test(node.type)) { + break; + } + + node = node.parent; + } + + return false; + } + + /** + * Check if variable name is allowed. + * @param {ASTNode} variable The variable to check. + * @returns {boolean} Whether or not the variable name is allowed. + */ + function isAllowed(variable) { + return options.allow.includes(variable.name); + } + + /** + * Checks if a variable of the class name in the class scope of ClassDeclaration. + * + * ClassDeclaration creates two variables of its name into its outer scope and its class scope. + * So we should ignore the variable in the class scope. + * @param {Object} variable The variable to check. + * @returns {boolean} Whether or not the variable of the class name in the class scope of ClassDeclaration. + */ + function isDuplicatedClassNameVariable(variable) { + const block = variable.scope.block; + + return block.type === "ClassDeclaration" && block.id === variable.identifiers[0]; + } + + /** + * Checks if a variable is inside the initializer of scopeVar. + * + * To avoid reporting at declarations such as `var a = function a() {};`. + * But it should report `var a = function(a) {};` or `var a = function() { function a() {} };`. + * @param {Object} variable The variable to check. + * @param {Object} scopeVar The scope variable to look for. + * @returns {boolean} Whether or not the variable is inside initializer of scopeVar. + */ + function isOnInitializer(variable, scopeVar) { + const outerScope = scopeVar.scope; + const outerDef = scopeVar.defs[0]; + const outer = outerDef && outerDef.parent && outerDef.parent.range; + const innerScope = variable.scope; + const innerDef = variable.defs[0]; + const inner = innerDef && innerDef.name.range; + + return ( + outer && + inner && + outer[0] < inner[0] && + inner[1] < outer[1] && + ((innerDef.type === "FunctionName" && innerDef.node.type === "FunctionExpression") || innerDef.node.type === "ClassExpression") && + outerScope === innerScope.upper + ); + } + + /** + * Get a range of a variable's identifier node. + * @param {Object} variable The variable to get. + * @returns {Array|undefined} The range of the variable's identifier node. + */ + function getNameRange(variable) { + const def = variable.defs[0]; + + return def && def.name.range; + } + + /** + * Get declared line and column of a variable. + * @param {eslint-scope.Variable} variable The variable to get. + * @returns {Object} The declared line and column of the variable. + */ + function getDeclaredLocation(variable) { + const identifier = variable.identifiers[0]; + let obj; + + if (identifier) { + obj = { + global: false, + line: identifier.loc.start.line, + column: identifier.loc.start.column + 1 + }; + } else { + obj = { + global: true + }; + } + return obj; + } + + /** + * Checks if a variable is in TDZ of scopeVar. + * @param {Object} variable The variable to check. + * @param {Object} scopeVar The variable of TDZ. + * @returns {boolean} Whether or not the variable is in TDZ of scopeVar. + */ + function isInTdz(variable, scopeVar) { + const outerDef = scopeVar.defs[0]; + const inner = getNameRange(variable); + const outer = getNameRange(scopeVar); + + return ( + inner && + outer && + inner[1] < outer[0] && + + // Excepts FunctionDeclaration if is {"hoist":"function"}. + (options.hoist !== "functions" || !outerDef || outerDef.node.type !== "FunctionDeclaration") + ); + } + + /** + * Checks the current context for shadowed variables. + * @param {Scope} scope Fixme + * @returns {void} + */ + function checkForShadows(scope) { + const variables = scope.variables; + + for (let i = 0; i < variables.length; ++i) { + const variable = variables[i]; + + // Skips "arguments" or variables of a class name in the class scope of ClassDeclaration. + if (variable.identifiers.length === 0 || + isDuplicatedClassNameVariable(variable) || + isAllowed(variable) + ) { + continue; + } + + // Gets shadowed variable. + const shadowed = astUtils.getVariableByName(scope.upper, variable.name); + + if (shadowed && + (shadowed.identifiers.length > 0 || (options.builtinGlobals && "writeable" in shadowed)) && + !isOnInitializer(variable, shadowed) && + !(options.ignoreOnInitialization && isInitPatternNode(variable, shadowed)) && + !(options.hoist !== "all" && isInTdz(variable, shadowed)) + ) { + const location = getDeclaredLocation(shadowed); + const messageId = location.global ? "noShadowGlobal" : "noShadow"; + const data = { name: variable.name }; + + if (!location.global) { + data.shadowedLine = location.line; + data.shadowedColumn = location.column; + } + context.report({ + node: variable.identifiers[0], + messageId, + data + }); + } + } + } + + return { + "Program:exit"() { + const globalScope = context.getScope(); + const stack = globalScope.childScopes.slice(); + + while (stack.length) { + const scope = stack.pop(); + + stack.push(...scope.childScopes); + checkForShadows(scope); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-spaced-func.js b/node_modules/eslint/lib/rules/no-spaced-func.js new file mode 100644 index 0000000..97e2da0 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-spaced-func.js @@ -0,0 +1,83 @@ +/** + * @fileoverview Rule to check that spaced function application + * @author Matt DuVall + * @deprecated in ESLint v3.3.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow spacing between function identifiers and their applications (deprecated)", + recommended: false, + url: "https://eslint.org/docs/rules/no-spaced-func" + }, + + deprecated: true, + + replacedBy: ["func-call-spacing"], + + fixable: "whitespace", + schema: [], + + messages: { + noSpacedFunction: "Unexpected space between function name and paren." + } + }, + + create(context) { + + const sourceCode = context.getSourceCode(); + + /** + * Check if open space is present in a function name + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function detectOpenSpaces(node) { + const lastCalleeToken = sourceCode.getLastToken(node.callee); + let prevToken = lastCalleeToken, + parenToken = sourceCode.getTokenAfter(lastCalleeToken); + + // advances to an open parenthesis. + while ( + parenToken && + parenToken.range[1] < node.range[1] && + parenToken.value !== "(" + ) { + prevToken = parenToken; + parenToken = sourceCode.getTokenAfter(parenToken); + } + + // look for a space between the callee and the open paren + if (parenToken && + parenToken.range[1] < node.range[1] && + sourceCode.isSpaceBetweenTokens(prevToken, parenToken) + ) { + context.report({ + node, + loc: lastCalleeToken.loc.start, + messageId: "noSpacedFunction", + fix(fixer) { + return fixer.removeRange([prevToken.range[1], parenToken.range[0]]); + } + }); + } + } + + return { + CallExpression: detectOpenSpaces, + NewExpression: detectOpenSpaces + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-sparse-arrays.js b/node_modules/eslint/lib/rules/no-sparse-arrays.js new file mode 100644 index 0000000..0e95fe4 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-sparse-arrays.js @@ -0,0 +1,50 @@ +/** + * @fileoverview Disallow sparse arrays + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow sparse arrays", + recommended: true, + url: "https://eslint.org/docs/rules/no-sparse-arrays" + }, + + schema: [], + + messages: { + unexpectedSparseArray: "Unexpected comma in middle of array." + } + }, + + create(context) { + + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + ArrayExpression(node) { + + const emptySpot = node.elements.includes(null); + + if (emptySpot) { + context.report({ node, messageId: "unexpectedSparseArray" }); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-sync.js b/node_modules/eslint/lib/rules/no-sync.js new file mode 100644 index 0000000..71360c6 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-sync.js @@ -0,0 +1,64 @@ +/** + * @fileoverview Rule to check for properties whose identifier ends with the string Sync + * @author Matt DuVall + * @deprecated in ESLint v7.0.0 + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + deprecated: true, + + replacedBy: [], + + type: "suggestion", + + docs: { + description: "Disallow synchronous methods", + recommended: false, + url: "https://eslint.org/docs/rules/no-sync" + }, + + schema: [ + { + type: "object", + properties: { + allowAtRootLevel: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + noSync: "Unexpected sync method: '{{propertyName}}'." + } + }, + + create(context) { + const selector = context.options[0] && context.options[0].allowAtRootLevel + ? ":function MemberExpression[property.name=/.*Sync$/]" + : "MemberExpression[property.name=/.*Sync$/]"; + + return { + [selector](node) { + context.report({ + node, + messageId: "noSync", + data: { + propertyName: node.property.name + } + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-tabs.js b/node_modules/eslint/lib/rules/no-tabs.js new file mode 100644 index 0000000..1b4834e --- /dev/null +++ b/node_modules/eslint/lib/rules/no-tabs.js @@ -0,0 +1,78 @@ +/** + * @fileoverview Rule to check for tabs inside a file + * @author Gyandeep Singh + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const tabRegex = /\t+/gu; +const anyNonWhitespaceRegex = /\S/u; + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow all tabs", + recommended: false, + url: "https://eslint.org/docs/rules/no-tabs" + }, + schema: [{ + type: "object", + properties: { + allowIndentationTabs: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + + messages: { + unexpectedTab: "Unexpected tab character." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const allowIndentationTabs = context.options && context.options[0] && context.options[0].allowIndentationTabs; + + return { + Program(node) { + sourceCode.getLines().forEach((line, index) => { + let match; + + while ((match = tabRegex.exec(line)) !== null) { + if (allowIndentationTabs && !anyNonWhitespaceRegex.test(line.slice(0, match.index))) { + continue; + } + + context.report({ + node, + loc: { + start: { + line: index + 1, + column: match.index + }, + end: { + line: index + 1, + column: match.index + match[0].length + } + }, + messageId: "unexpectedTab" + }); + } + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-template-curly-in-string.js b/node_modules/eslint/lib/rules/no-template-curly-in-string.js new file mode 100644 index 0000000..4f4e9ee --- /dev/null +++ b/node_modules/eslint/lib/rules/no-template-curly-in-string.js @@ -0,0 +1,44 @@ +/** + * @fileoverview Warn when using template string syntax in regular strings + * @author Jeroen Engels + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow template literal placeholder syntax in regular strings", + recommended: false, + url: "https://eslint.org/docs/rules/no-template-curly-in-string" + }, + + schema: [], + + messages: { + unexpectedTemplateExpression: "Unexpected template string expression." + } + }, + + create(context) { + const regex = /\$\{[^}]+\}/u; + + return { + Literal(node) { + if (typeof node.value === "string" && regex.test(node.value)) { + context.report({ + node, + messageId: "unexpectedTemplateExpression" + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-ternary.js b/node_modules/eslint/lib/rules/no-ternary.js new file mode 100644 index 0000000..a185808 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-ternary.js @@ -0,0 +1,41 @@ +/** + * @fileoverview Rule to flag use of ternary operators. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow ternary operators", + recommended: false, + url: "https://eslint.org/docs/rules/no-ternary" + }, + + schema: [], + + messages: { + noTernaryOperator: "Ternary operator used." + } + }, + + create(context) { + + return { + + ConditionalExpression(node) { + context.report({ node, messageId: "noTernaryOperator" }); + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-this-before-super.js b/node_modules/eslint/lib/rules/no-this-before-super.js new file mode 100644 index 0000000..b4e48e8 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-this-before-super.js @@ -0,0 +1,304 @@ +/** + * @fileoverview A rule to disallow using `this`/`super` before `super()`. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given node is a constructor. + * @param {ASTNode} node A node to check. This node type is one of + * `Program`, `FunctionDeclaration`, `FunctionExpression`, and + * `ArrowFunctionExpression`. + * @returns {boolean} `true` if the node is a constructor. + */ +function isConstructorFunction(node) { + return ( + node.type === "FunctionExpression" && + node.parent.type === "MethodDefinition" && + node.parent.kind === "constructor" + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow `this`/`super` before calling `super()` in constructors", + recommended: true, + url: "https://eslint.org/docs/rules/no-this-before-super" + }, + + schema: [], + + messages: { + noBeforeSuper: "'{{kind}}' is not allowed before 'super()'." + } + }, + + create(context) { + + /* + * Information for each constructor. + * - upper: Information of the upper constructor. + * - hasExtends: A flag which shows whether the owner class has a valid + * `extends` part. + * - scope: The scope of the owner class. + * - codePath: The code path of this constructor. + */ + let funcInfo = null; + + /* + * Information for each code path segment. + * Each key is the id of a code path segment. + * Each value is an object: + * - superCalled: The flag which shows `super()` called in all code paths. + * - invalidNodes: The array of invalid ThisExpression and Super nodes. + */ + let segInfoMap = Object.create(null); + + /** + * Gets whether or not `super()` is called in a given code path segment. + * @param {CodePathSegment} segment A code path segment to get. + * @returns {boolean} `true` if `super()` is called. + */ + function isCalled(segment) { + return !segment.reachable || segInfoMap[segment.id].superCalled; + } + + /** + * Checks whether or not this is in a constructor. + * @returns {boolean} `true` if this is in a constructor. + */ + function isInConstructorOfDerivedClass() { + return Boolean(funcInfo && funcInfo.isConstructor && funcInfo.hasExtends); + } + + /** + * Checks whether or not this is before `super()` is called. + * @returns {boolean} `true` if this is before `super()` is called. + */ + function isBeforeCallOfSuper() { + return ( + isInConstructorOfDerivedClass() && + !funcInfo.codePath.currentSegments.every(isCalled) + ); + } + + /** + * Sets a given node as invalid. + * @param {ASTNode} node A node to set as invalid. This is one of + * a ThisExpression and a Super. + * @returns {void} + */ + function setInvalid(node) { + const segments = funcInfo.codePath.currentSegments; + + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + if (segment.reachable) { + segInfoMap[segment.id].invalidNodes.push(node); + } + } + } + + /** + * Sets the current segment as `super` was called. + * @returns {void} + */ + function setSuperCalled() { + const segments = funcInfo.codePath.currentSegments; + + for (let i = 0; i < segments.length; ++i) { + const segment = segments[i]; + + if (segment.reachable) { + segInfoMap[segment.id].superCalled = true; + } + } + } + + return { + + /** + * Adds information of a constructor into the stack. + * @param {CodePath} codePath A code path which was started. + * @param {ASTNode} node The current node. + * @returns {void} + */ + onCodePathStart(codePath, node) { + if (isConstructorFunction(node)) { + + // Class > ClassBody > MethodDefinition > FunctionExpression + const classNode = node.parent.parent.parent; + + funcInfo = { + upper: funcInfo, + isConstructor: true, + hasExtends: Boolean( + classNode.superClass && + !astUtils.isNullOrUndefined(classNode.superClass) + ), + codePath + }; + } else { + funcInfo = { + upper: funcInfo, + isConstructor: false, + hasExtends: false, + codePath + }; + } + }, + + /** + * Removes the top of stack item. + * + * And this traverses all segments of this code path then reports every + * invalid node. + * @param {CodePath} codePath A code path which was ended. + * @returns {void} + */ + onCodePathEnd(codePath) { + const isDerivedClass = funcInfo.hasExtends; + + funcInfo = funcInfo.upper; + if (!isDerivedClass) { + return; + } + + codePath.traverseSegments((segment, controller) => { + const info = segInfoMap[segment.id]; + + for (let i = 0; i < info.invalidNodes.length; ++i) { + const invalidNode = info.invalidNodes[i]; + + context.report({ + messageId: "noBeforeSuper", + node: invalidNode, + data: { + kind: invalidNode.type === "Super" ? "super" : "this" + } + }); + } + + if (info.superCalled) { + controller.skip(); + } + }); + }, + + /** + * Initialize information of a given code path segment. + * @param {CodePathSegment} segment A code path segment to initialize. + * @returns {void} + */ + onCodePathSegmentStart(segment) { + if (!isInConstructorOfDerivedClass()) { + return; + } + + // Initialize info. + segInfoMap[segment.id] = { + superCalled: ( + segment.prevSegments.length > 0 && + segment.prevSegments.every(isCalled) + ), + invalidNodes: [] + }; + }, + + /** + * Update information of the code path segment when a code path was + * looped. + * @param {CodePathSegment} fromSegment The code path segment of the + * end of a loop. + * @param {CodePathSegment} toSegment A code path segment of the head + * of a loop. + * @returns {void} + */ + onCodePathSegmentLoop(fromSegment, toSegment) { + if (!isInConstructorOfDerivedClass()) { + return; + } + + // Update information inside of the loop. + funcInfo.codePath.traverseSegments( + { first: toSegment, last: fromSegment }, + (segment, controller) => { + const info = segInfoMap[segment.id]; + + if (info.superCalled) { + info.invalidNodes = []; + controller.skip(); + } else if ( + segment.prevSegments.length > 0 && + segment.prevSegments.every(isCalled) + ) { + info.superCalled = true; + info.invalidNodes = []; + } + } + ); + }, + + /** + * Reports if this is before `super()`. + * @param {ASTNode} node A target node. + * @returns {void} + */ + ThisExpression(node) { + if (isBeforeCallOfSuper()) { + setInvalid(node); + } + }, + + /** + * Reports if this is before `super()`. + * @param {ASTNode} node A target node. + * @returns {void} + */ + Super(node) { + if (!astUtils.isCallee(node) && isBeforeCallOfSuper()) { + setInvalid(node); + } + }, + + /** + * Marks `super()` called. + * @param {ASTNode} node A target node. + * @returns {void} + */ + "CallExpression:exit"(node) { + if (node.callee.type === "Super" && isBeforeCallOfSuper()) { + setSuperCalled(); + } + }, + + /** + * Resets state. + * @returns {void} + */ + "Program:exit"() { + segInfoMap = Object.create(null); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-throw-literal.js b/node_modules/eslint/lib/rules/no-throw-literal.js new file mode 100644 index 0000000..3656c83 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-throw-literal.js @@ -0,0 +1,51 @@ +/** + * @fileoverview Rule to restrict what can be thrown as an exception. + * @author Dieter Oberkofler + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow throwing literals as exceptions", + recommended: false, + url: "https://eslint.org/docs/rules/no-throw-literal" + }, + + schema: [], + + messages: { + object: "Expected an error object to be thrown.", + undef: "Do not throw undefined." + } + }, + + create(context) { + + return { + + ThrowStatement(node) { + if (!astUtils.couldBeError(node.argument)) { + context.report({ node, messageId: "object" }); + } else if (node.argument.type === "Identifier") { + if (node.argument.name === "undefined") { + context.report({ node, messageId: "undef" }); + } + } + + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-trailing-spaces.js b/node_modules/eslint/lib/rules/no-trailing-spaces.js new file mode 100644 index 0000000..a02a880 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-trailing-spaces.js @@ -0,0 +1,190 @@ +/** + * @fileoverview Disallow trailing spaces at the end of lines. + * @author Nodeca Team + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow trailing whitespace at the end of lines", + recommended: false, + url: "https://eslint.org/docs/rules/no-trailing-spaces" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + skipBlankLines: { + type: "boolean", + default: false + }, + ignoreComments: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + trailingSpace: "Trailing spaces not allowed." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + const BLANK_CLASS = "[ \t\u00a0\u2000-\u200b\u3000]", + SKIP_BLANK = `^${BLANK_CLASS}*$`, + NONBLANK = `${BLANK_CLASS}+$`; + + const options = context.options[0] || {}, + skipBlankLines = options.skipBlankLines || false, + ignoreComments = options.ignoreComments || false; + + /** + * Report the error message + * @param {ASTNode} node node to report + * @param {int[]} location range information + * @param {int[]} fixRange Range based on the whole program + * @returns {void} + */ + function report(node, location, fixRange) { + + /* + * Passing node is a bit dirty, because message data will contain big + * text in `source`. But... who cares :) ? + * One more kludge will not make worse the bloody wizardry of this + * plugin. + */ + context.report({ + node, + loc: location, + messageId: "trailingSpace", + fix(fixer) { + return fixer.removeRange(fixRange); + } + }); + } + + /** + * Given a list of comment nodes, return the line numbers for those comments. + * @param {Array} comments An array of comment nodes. + * @returns {number[]} An array of line numbers containing comments. + */ + function getCommentLineNumbers(comments) { + const lines = new Set(); + + comments.forEach(comment => { + const endLine = comment.type === "Block" + ? comment.loc.end.line - 1 + : comment.loc.end.line; + + for (let i = comment.loc.start.line; i <= endLine; i++) { + lines.add(i); + } + }); + + return lines; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + Program: function checkTrailingSpaces(node) { + + /* + * Let's hack. Since Espree does not return whitespace nodes, + * fetch the source code and do matching via regexps. + */ + + const re = new RegExp(NONBLANK, "u"), + skipMatch = new RegExp(SKIP_BLANK, "u"), + lines = sourceCode.lines, + linebreaks = sourceCode.getText().match(astUtils.createGlobalLinebreakMatcher()), + comments = sourceCode.getAllComments(), + commentLineNumbers = getCommentLineNumbers(comments); + + let totalLength = 0, + fixRange = []; + + for (let i = 0, ii = lines.length; i < ii; i++) { + const lineNumber = i + 1; + + /* + * Always add linebreak length to line length to accommodate for line break (\n or \r\n) + * Because during the fix time they also reserve one spot in the array. + * Usually linebreak length is 2 for \r\n (CRLF) and 1 for \n (LF) + */ + const linebreakLength = linebreaks && linebreaks[i] ? linebreaks[i].length : 1; + const lineLength = lines[i].length + linebreakLength; + + const matches = re.exec(lines[i]); + + if (matches) { + const location = { + start: { + line: lineNumber, + column: matches.index + }, + end: { + line: lineNumber, + column: lineLength - linebreakLength + } + }; + + const rangeStart = totalLength + location.start.column; + const rangeEnd = totalLength + location.end.column; + const containingNode = sourceCode.getNodeByRangeIndex(rangeStart); + + if (containingNode && containingNode.type === "TemplateElement" && + rangeStart > containingNode.parent.range[0] && + rangeEnd < containingNode.parent.range[1]) { + totalLength += lineLength; + continue; + } + + /* + * If the line has only whitespace, and skipBlankLines + * is true, don't report it + */ + if (skipBlankLines && skipMatch.test(lines[i])) { + totalLength += lineLength; + continue; + } + + fixRange = [rangeStart, rangeEnd]; + + if (!ignoreComments || !commentLineNumbers.has(lineNumber)) { + report(node, location, fixRange); + } + } + + totalLength += lineLength; + } + } + + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-undef-init.js b/node_modules/eslint/lib/rules/no-undef-init.js new file mode 100644 index 0000000..2cb1c3f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-undef-init.js @@ -0,0 +1,75 @@ +/** + * @fileoverview Rule to flag when initializing to undefined + * @author Ilya Volodin + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow initializing variables to `undefined`", + recommended: false, + url: "https://eslint.org/docs/rules/no-undef-init" + }, + + schema: [], + fixable: "code", + + messages: { + unnecessaryUndefinedInit: "It's not necessary to initialize '{{name}}' to undefined." + } + }, + + create(context) { + + const sourceCode = context.getSourceCode(); + + return { + + VariableDeclarator(node) { + const name = sourceCode.getText(node.id), + init = node.init && node.init.name, + scope = context.getScope(), + undefinedVar = astUtils.getVariableByName(scope, "undefined"), + shadowed = undefinedVar && undefinedVar.defs.length > 0, + lastToken = sourceCode.getLastToken(node); + + if (init === "undefined" && node.parent.kind !== "const" && !shadowed) { + context.report({ + node, + messageId: "unnecessaryUndefinedInit", + data: { name }, + fix(fixer) { + if (node.parent.kind === "var") { + return null; + } + + if (node.id.type === "ArrayPattern" || node.id.type === "ObjectPattern") { + + // Don't fix destructuring assignment to `undefined`. + return null; + } + + if (sourceCode.commentsExistBetween(node.id, lastToken)) { + return null; + } + + return fixer.removeRange([node.id.range[1], node.range[1]]); + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-undef.js b/node_modules/eslint/lib/rules/no-undef.js new file mode 100644 index 0000000..e920ce6 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-undef.js @@ -0,0 +1,78 @@ +/** + * @fileoverview Rule to flag references to undeclared variables. + * @author Mark Macdonald + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks if the given node is the argument of a typeof operator. + * @param {ASTNode} node The AST node being checked. + * @returns {boolean} Whether or not the node is the argument of a typeof operator. + */ +function hasTypeOfOperator(node) { + const parent = node.parent; + + return parent.type === "UnaryExpression" && parent.operator === "typeof"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow the use of undeclared variables unless mentioned in `/*global */` comments", + recommended: true, + url: "https://eslint.org/docs/rules/no-undef" + }, + + schema: [ + { + type: "object", + properties: { + typeof: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + messages: { + undef: "'{{name}}' is not defined." + } + }, + + create(context) { + const options = context.options[0]; + const considerTypeOf = options && options.typeof === true || false; + + return { + "Program:exit"(/* node */) { + const globalScope = context.getScope(); + + globalScope.through.forEach(ref => { + const identifier = ref.identifier; + + if (!considerTypeOf && hasTypeOfOperator(identifier)) { + return; + } + + context.report({ + node: identifier, + messageId: "undef", + data: identifier + }); + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-undefined.js b/node_modules/eslint/lib/rules/no-undefined.js new file mode 100644 index 0000000..e006320 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-undefined.js @@ -0,0 +1,84 @@ +/** + * @fileoverview Rule to flag references to the undefined variable. + * @author Michael Ficarra + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of `undefined` as an identifier", + recommended: false, + url: "https://eslint.org/docs/rules/no-undefined" + }, + + schema: [], + + messages: { + unexpectedUndefined: "Unexpected use of undefined." + } + }, + + create(context) { + + /** + * Report an invalid "undefined" identifier node. + * @param {ASTNode} node The node to report. + * @returns {void} + */ + function report(node) { + context.report({ + node, + messageId: "unexpectedUndefined" + }); + } + + /** + * Checks the given scope for references to `undefined` and reports + * all references found. + * @param {eslint-scope.Scope} scope The scope to check. + * @returns {void} + */ + function checkScope(scope) { + const undefinedVar = scope.set.get("undefined"); + + if (!undefinedVar) { + return; + } + + const references = undefinedVar.references; + + const defs = undefinedVar.defs; + + // Report non-initializing references (those are covered in defs below) + references + .filter(ref => !ref.init) + .forEach(ref => report(ref.identifier)); + + defs.forEach(def => report(def.name)); + } + + return { + "Program:exit"() { + const globalScope = context.getScope(); + + const stack = [globalScope]; + + while (stack.length) { + const scope = stack.pop(); + + stack.push(...scope.childScopes); + checkScope(scope); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-underscore-dangle.js b/node_modules/eslint/lib/rules/no-underscore-dangle.js new file mode 100644 index 0000000..eb3e404 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-underscore-dangle.js @@ -0,0 +1,309 @@ +/** + * @fileoverview Rule to flag dangling underscores in variable declarations. + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow dangling underscores in identifiers", + recommended: false, + url: "https://eslint.org/docs/rules/no-underscore-dangle" + }, + + schema: [ + { + type: "object", + properties: { + allow: { + type: "array", + items: { + type: "string" + } + }, + allowAfterThis: { + type: "boolean", + default: false + }, + allowAfterSuper: { + type: "boolean", + default: false + }, + allowAfterThisConstructor: { + type: "boolean", + default: false + }, + enforceInMethodNames: { + type: "boolean", + default: false + }, + allowFunctionParams: { + type: "boolean", + default: true + }, + enforceInClassFields: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedUnderscore: "Unexpected dangling '_' in '{{identifier}}'." + } + }, + + create(context) { + + const options = context.options[0] || {}; + const ALLOWED_VARIABLES = options.allow ? options.allow : []; + const allowAfterThis = typeof options.allowAfterThis !== "undefined" ? options.allowAfterThis : false; + const allowAfterSuper = typeof options.allowAfterSuper !== "undefined" ? options.allowAfterSuper : false; + const allowAfterThisConstructor = typeof options.allowAfterThisConstructor !== "undefined" ? options.allowAfterThisConstructor : false; + const enforceInMethodNames = typeof options.enforceInMethodNames !== "undefined" ? options.enforceInMethodNames : false; + const enforceInClassFields = typeof options.enforceInClassFields !== "undefined" ? options.enforceInClassFields : false; + const allowFunctionParams = typeof options.allowFunctionParams !== "undefined" ? options.allowFunctionParams : true; + + //------------------------------------------------------------------------- + // Helpers + //------------------------------------------------------------------------- + + /** + * Check if identifier is present inside the allowed option + * @param {string} identifier name of the node + * @returns {boolean} true if its is present + * @private + */ + function isAllowed(identifier) { + return ALLOWED_VARIABLES.includes(identifier); + } + + /** + * Check if identifier has a dangling underscore + * @param {string} identifier name of the node + * @returns {boolean} true if its is present + * @private + */ + function hasDanglingUnderscore(identifier) { + const len = identifier.length; + + return identifier !== "_" && (identifier[0] === "_" || identifier[len - 1] === "_"); + } + + /** + * Check if identifier is a special case member expression + * @param {string} identifier name of the node + * @returns {boolean} true if its is a special case + * @private + */ + function isSpecialCaseIdentifierForMemberExpression(identifier) { + return identifier === "__proto__"; + } + + /** + * Check if identifier is a special case variable expression + * @param {string} identifier name of the node + * @returns {boolean} true if its is a special case + * @private + */ + function isSpecialCaseIdentifierInVariableExpression(identifier) { + + // Checks for the underscore library usage here + return identifier === "_"; + } + + /** + * Check if a node is a member reference of this.constructor + * @param {ASTNode} node node to evaluate + * @returns {boolean} true if it is a reference on this.constructor + * @private + */ + function isThisConstructorReference(node) { + return node.object.type === "MemberExpression" && + node.object.property.name === "constructor" && + node.object.object.type === "ThisExpression"; + } + + /** + * Check if function parameter has a dangling underscore. + * @param {ASTNode} node function node to evaluate + * @returns {void} + * @private + */ + function checkForDanglingUnderscoreInFunctionParameters(node) { + if (!allowFunctionParams) { + node.params.forEach(param => { + const { type } = param; + let nodeToCheck; + + if (type === "RestElement") { + nodeToCheck = param.argument; + } else if (type === "AssignmentPattern") { + nodeToCheck = param.left; + } else { + nodeToCheck = param; + } + + if (nodeToCheck.type === "Identifier") { + const identifier = nodeToCheck.name; + + if (hasDanglingUnderscore(identifier) && !isAllowed(identifier)) { + context.report({ + node: param, + messageId: "unexpectedUnderscore", + data: { + identifier + } + }); + } + } + }); + } + } + + /** + * Check if function has a dangling underscore + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkForDanglingUnderscoreInFunction(node) { + if (node.type === "FunctionDeclaration" && node.id) { + const identifier = node.id.name; + + if (typeof identifier !== "undefined" && hasDanglingUnderscore(identifier) && !isAllowed(identifier)) { + context.report({ + node, + messageId: "unexpectedUnderscore", + data: { + identifier + } + }); + } + } + checkForDanglingUnderscoreInFunctionParameters(node); + } + + /** + * Check if variable expression has a dangling underscore + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkForDanglingUnderscoreInVariableExpression(node) { + const identifier = node.id.name; + + if (typeof identifier !== "undefined" && hasDanglingUnderscore(identifier) && + !isSpecialCaseIdentifierInVariableExpression(identifier) && !isAllowed(identifier)) { + context.report({ + node, + messageId: "unexpectedUnderscore", + data: { + identifier + } + }); + } + } + + /** + * Check if member expression has a dangling underscore + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkForDanglingUnderscoreInMemberExpression(node) { + const identifier = node.property.name, + isMemberOfThis = node.object.type === "ThisExpression", + isMemberOfSuper = node.object.type === "Super", + isMemberOfThisConstructor = isThisConstructorReference(node); + + if (typeof identifier !== "undefined" && hasDanglingUnderscore(identifier) && + !(isMemberOfThis && allowAfterThis) && + !(isMemberOfSuper && allowAfterSuper) && + !(isMemberOfThisConstructor && allowAfterThisConstructor) && + !isSpecialCaseIdentifierForMemberExpression(identifier) && !isAllowed(identifier)) { + context.report({ + node, + messageId: "unexpectedUnderscore", + data: { + identifier + } + }); + } + } + + /** + * Check if method declaration or method property has a dangling underscore + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkForDanglingUnderscoreInMethod(node) { + const identifier = node.key.name; + const isMethod = node.type === "MethodDefinition" || node.type === "Property" && node.method; + + if (typeof identifier !== "undefined" && enforceInMethodNames && isMethod && hasDanglingUnderscore(identifier) && !isAllowed(identifier)) { + context.report({ + node, + messageId: "unexpectedUnderscore", + data: { + identifier: node.key.type === "PrivateIdentifier" + ? `#${identifier}` + : identifier + } + }); + } + } + + /** + * Check if a class field has a dangling underscore + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkForDanglingUnderscoreInClassField(node) { + const identifier = node.key.name; + + if (typeof identifier !== "undefined" && hasDanglingUnderscore(identifier) && + enforceInClassFields && + !isAllowed(identifier)) { + context.report({ + node, + messageId: "unexpectedUnderscore", + data: { + identifier: node.key.type === "PrivateIdentifier" + ? `#${identifier}` + : identifier + } + }); + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + FunctionDeclaration: checkForDanglingUnderscoreInFunction, + VariableDeclarator: checkForDanglingUnderscoreInVariableExpression, + MemberExpression: checkForDanglingUnderscoreInMemberExpression, + MethodDefinition: checkForDanglingUnderscoreInMethod, + PropertyDefinition: checkForDanglingUnderscoreInClassField, + Property: checkForDanglingUnderscoreInMethod, + FunctionExpression: checkForDanglingUnderscoreInFunction, + ArrowFunctionExpression: checkForDanglingUnderscoreInFunction + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-unexpected-multiline.js b/node_modules/eslint/lib/rules/no-unexpected-multiline.js new file mode 100644 index 0000000..2ca6731 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unexpected-multiline.js @@ -0,0 +1,120 @@ +/** + * @fileoverview Rule to spot scenarios where a newline looks like it is ending a statement, but is not. + * @author Glen Mailer + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow confusing multiline expressions", + recommended: true, + url: "https://eslint.org/docs/rules/no-unexpected-multiline" + }, + + schema: [], + messages: { + function: "Unexpected newline between function and ( of function call.", + property: "Unexpected newline between object and [ of property access.", + taggedTemplate: "Unexpected newline between template tag and template literal.", + division: "Unexpected newline between numerator and division operator." + } + }, + + create(context) { + + const REGEX_FLAG_MATCHER = /^[gimsuy]+$/u; + + const sourceCode = context.getSourceCode(); + + /** + * Check to see if there is a newline between the node and the following open bracket + * line's expression + * @param {ASTNode} node The node to check. + * @param {string} messageId The error messageId to use. + * @returns {void} + * @private + */ + function checkForBreakAfter(node, messageId) { + const openParen = sourceCode.getTokenAfter(node, astUtils.isNotClosingParenToken); + const nodeExpressionEnd = sourceCode.getTokenBefore(openParen); + + if (openParen.loc.start.line !== nodeExpressionEnd.loc.end.line) { + context.report({ + node, + loc: openParen.loc, + messageId + }); + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + + MemberExpression(node) { + if (!node.computed || node.optional) { + return; + } + checkForBreakAfter(node.object, "property"); + }, + + TaggedTemplateExpression(node) { + const { quasi } = node; + + // handles common tags, parenthesized tags, and typescript's generic type arguments + const tokenBefore = sourceCode.getTokenBefore(quasi); + + if (tokenBefore.loc.end.line !== quasi.loc.start.line) { + context.report({ + node, + loc: { + start: quasi.loc.start, + end: { + line: quasi.loc.start.line, + column: quasi.loc.start.column + 1 + } + }, + messageId: "taggedTemplate" + }); + } + }, + + CallExpression(node) { + if (node.arguments.length === 0 || node.optional) { + return; + } + checkForBreakAfter(node.callee, "function"); + }, + + "BinaryExpression[operator='/'] > BinaryExpression[operator='/'].left"(node) { + const secondSlash = sourceCode.getTokenAfter(node, token => token.value === "/"); + const tokenAfterOperator = sourceCode.getTokenAfter(secondSlash); + + if ( + tokenAfterOperator.type === "Identifier" && + REGEX_FLAG_MATCHER.test(tokenAfterOperator.value) && + secondSlash.range[1] === tokenAfterOperator.range[0] + ) { + checkForBreakAfter(node.left, "division"); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js b/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js new file mode 100644 index 0000000..12f61e9 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js @@ -0,0 +1,360 @@ +/** + * @fileoverview Rule to disallow use of unmodified expressions in loop conditions + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const Traverser = require("../shared/traverser"), + astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SENTINEL_PATTERN = /(?:(?:Call|Class|Function|Member|New|Yield)Expression|Statement|Declaration)$/u; +const LOOP_PATTERN = /^(?:DoWhile|For|While)Statement$/u; // for-in/of statements don't have `test` property. +const GROUP_PATTERN = /^(?:BinaryExpression|ConditionalExpression)$/u; +const SKIP_PATTERN = /^(?:ArrowFunction|Class|Function)Expression$/u; +const DYNAMIC_PATTERN = /^(?:Call|Member|New|TaggedTemplate|Yield)Expression$/u; + +/** + * @typedef {Object} LoopConditionInfo + * @property {eslint-scope.Reference} reference - The reference. + * @property {ASTNode} group - BinaryExpression or ConditionalExpression nodes + * that the reference is belonging to. + * @property {Function} isInLoop - The predicate which checks a given reference + * is in this loop. + * @property {boolean} modified - The flag that the reference is modified in + * this loop. + */ + +/** + * Checks whether or not a given reference is a write reference. + * @param {eslint-scope.Reference} reference A reference to check. + * @returns {boolean} `true` if the reference is a write reference. + */ +function isWriteReference(reference) { + if (reference.init) { + const def = reference.resolved && reference.resolved.defs[0]; + + if (!def || def.type !== "Variable" || def.parent.kind !== "var") { + return false; + } + } + return reference.isWrite(); +} + +/** + * Checks whether or not a given loop condition info does not have the modified + * flag. + * @param {LoopConditionInfo} condition A loop condition info to check. + * @returns {boolean} `true` if the loop condition info is "unmodified". + */ +function isUnmodified(condition) { + return !condition.modified; +} + +/** + * Checks whether or not a given loop condition info does not have the modified + * flag and does not have the group this condition belongs to. + * @param {LoopConditionInfo} condition A loop condition info to check. + * @returns {boolean} `true` if the loop condition info is "unmodified". + */ +function isUnmodifiedAndNotBelongToGroup(condition) { + return !(condition.modified || condition.group); +} + +/** + * Checks whether or not a given reference is inside of a given node. + * @param {ASTNode} node A node to check. + * @param {eslint-scope.Reference} reference A reference to check. + * @returns {boolean} `true` if the reference is inside of the node. + */ +function isInRange(node, reference) { + const or = node.range; + const ir = reference.identifier.range; + + return or[0] <= ir[0] && ir[1] <= or[1]; +} + +/** + * Checks whether or not a given reference is inside of a loop node's condition. + * @param {ASTNode} node A node to check. + * @param {eslint-scope.Reference} reference A reference to check. + * @returns {boolean} `true` if the reference is inside of the loop node's + * condition. + */ +const isInLoop = { + WhileStatement: isInRange, + DoWhileStatement: isInRange, + ForStatement(node, reference) { + return ( + isInRange(node, reference) && + !(node.init && isInRange(node.init, reference)) + ); + } +}; + +/** + * Gets the function which encloses a given reference. + * This supports only FunctionDeclaration. + * @param {eslint-scope.Reference} reference A reference to get. + * @returns {ASTNode|null} The function node or null. + */ +function getEncloseFunctionDeclaration(reference) { + let node = reference.identifier; + + while (node) { + if (node.type === "FunctionDeclaration") { + return node.id ? node : null; + } + + node = node.parent; + } + + return null; +} + +/** + * Updates the "modified" flags of given loop conditions with given modifiers. + * @param {LoopConditionInfo[]} conditions The loop conditions to be updated. + * @param {eslint-scope.Reference[]} modifiers The references to update. + * @returns {void} + */ +function updateModifiedFlag(conditions, modifiers) { + + for (let i = 0; i < conditions.length; ++i) { + const condition = conditions[i]; + + for (let j = 0; !condition.modified && j < modifiers.length; ++j) { + const modifier = modifiers[j]; + let funcNode, funcVar; + + /* + * Besides checking for the condition being in the loop, we want to + * check the function that this modifier is belonging to is called + * in the loop. + * FIXME: This should probably be extracted to a function. + */ + const inLoop = condition.isInLoop(modifier) || Boolean( + (funcNode = getEncloseFunctionDeclaration(modifier)) && + (funcVar = astUtils.getVariableByName(modifier.from.upper, funcNode.id.name)) && + funcVar.references.some(condition.isInLoop) + ); + + condition.modified = inLoop; + } + } +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow unmodified loop conditions", + recommended: false, + url: "https://eslint.org/docs/rules/no-unmodified-loop-condition" + }, + + schema: [], + + messages: { + loopConditionNotModified: "'{{name}}' is not modified in this loop." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + let groupMap = null; + + /** + * Reports a given condition info. + * @param {LoopConditionInfo} condition A loop condition info to report. + * @returns {void} + */ + function report(condition) { + const node = condition.reference.identifier; + + context.report({ + node, + messageId: "loopConditionNotModified", + data: node + }); + } + + /** + * Registers given conditions to the group the condition belongs to. + * @param {LoopConditionInfo[]} conditions A loop condition info to + * register. + * @returns {void} + */ + function registerConditionsToGroup(conditions) { + for (let i = 0; i < conditions.length; ++i) { + const condition = conditions[i]; + + if (condition.group) { + let group = groupMap.get(condition.group); + + if (!group) { + group = []; + groupMap.set(condition.group, group); + } + group.push(condition); + } + } + } + + /** + * Reports references which are inside of unmodified groups. + * @param {LoopConditionInfo[]} conditions A loop condition info to report. + * @returns {void} + */ + function checkConditionsInGroup(conditions) { + if (conditions.every(isUnmodified)) { + conditions.forEach(report); + } + } + + /** + * Checks whether or not a given group node has any dynamic elements. + * @param {ASTNode} root A node to check. + * This node is one of BinaryExpression or ConditionalExpression. + * @returns {boolean} `true` if the node is dynamic. + */ + function hasDynamicExpressions(root) { + let retv = false; + + Traverser.traverse(root, { + visitorKeys: sourceCode.visitorKeys, + enter(node) { + if (DYNAMIC_PATTERN.test(node.type)) { + retv = true; + this.break(); + } else if (SKIP_PATTERN.test(node.type)) { + this.skip(); + } + } + }); + + return retv; + } + + /** + * Creates the loop condition information from a given reference. + * @param {eslint-scope.Reference} reference A reference to create. + * @returns {LoopConditionInfo|null} Created loop condition info, or null. + */ + function toLoopCondition(reference) { + if (reference.init) { + return null; + } + + let group = null; + let child = reference.identifier; + let node = child.parent; + + while (node) { + if (SENTINEL_PATTERN.test(node.type)) { + if (LOOP_PATTERN.test(node.type) && node.test === child) { + + // This reference is inside of a loop condition. + return { + reference, + group, + isInLoop: isInLoop[node.type].bind(null, node), + modified: false + }; + } + + // This reference is outside of a loop condition. + break; + } + + /* + * If it's inside of a group, OK if either operand is modified. + * So stores the group this reference belongs to. + */ + if (GROUP_PATTERN.test(node.type)) { + + // If this expression is dynamic, no need to check. + if (hasDynamicExpressions(node)) { + break; + } else { + group = node; + } + } + + child = node; + node = node.parent; + } + + return null; + } + + /** + * Finds unmodified references which are inside of a loop condition. + * Then reports the references which are outside of groups. + * @param {eslint-scope.Variable} variable A variable to report. + * @returns {void} + */ + function checkReferences(variable) { + + // Gets references that exist in loop conditions. + const conditions = variable + .references + .map(toLoopCondition) + .filter(Boolean); + + if (conditions.length === 0) { + return; + } + + // Registers the conditions to belonging groups. + registerConditionsToGroup(conditions); + + // Check the conditions are modified. + const modifiers = variable.references.filter(isWriteReference); + + if (modifiers.length > 0) { + updateModifiedFlag(conditions, modifiers); + } + + /* + * Reports the conditions which are not belonging to groups. + * Others will be reported after all variables are done. + */ + conditions + .filter(isUnmodifiedAndNotBelongToGroup) + .forEach(report); + } + + return { + "Program:exit"() { + const queue = [context.getScope()]; + + groupMap = new Map(); + + let scope; + + while ((scope = queue.pop())) { + queue.push(...scope.childScopes); + scope.variables.forEach(checkReferences); + } + + groupMap.forEach(checkConditionsInGroup); + groupMap = null; + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unneeded-ternary.js b/node_modules/eslint/lib/rules/no-unneeded-ternary.js new file mode 100644 index 0000000..c193282 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unneeded-ternary.js @@ -0,0 +1,166 @@ +/** + * @fileoverview Rule to flag no-unneeded-ternary + * @author Gyandeep Singh + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +// Operators that always result in a boolean value +const BOOLEAN_OPERATORS = new Set(["==", "===", "!=", "!==", ">", ">=", "<", "<=", "in", "instanceof"]); +const OPERATOR_INVERSES = { + "==": "!=", + "!=": "==", + "===": "!==", + "!==": "===" + + // Operators like < and >= are not true inverses, since both will return false with NaN. +}; +const OR_PRECEDENCE = astUtils.getPrecedence({ type: "LogicalExpression", operator: "||" }); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow ternary operators when simpler alternatives exist", + recommended: false, + url: "https://eslint.org/docs/rules/no-unneeded-ternary" + }, + + schema: [ + { + type: "object", + properties: { + defaultAssignment: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + fixable: "code", + + messages: { + unnecessaryConditionalExpression: "Unnecessary use of boolean literals in conditional expression.", + unnecessaryConditionalAssignment: "Unnecessary use of conditional expression for default assignment." + } + }, + + create(context) { + const options = context.options[0] || {}; + const defaultAssignment = options.defaultAssignment !== false; + const sourceCode = context.getSourceCode(); + + /** + * Test if the node is a boolean literal + * @param {ASTNode} node The node to report. + * @returns {boolean} True if the its a boolean literal + * @private + */ + function isBooleanLiteral(node) { + return node.type === "Literal" && typeof node.value === "boolean"; + } + + /** + * Creates an expression that represents the boolean inverse of the expression represented by the original node + * @param {ASTNode} node A node representing an expression + * @returns {string} A string representing an inverted expression + */ + function invertExpression(node) { + if (node.type === "BinaryExpression" && Object.prototype.hasOwnProperty.call(OPERATOR_INVERSES, node.operator)) { + const operatorToken = sourceCode.getFirstTokenBetween( + node.left, + node.right, + token => token.value === node.operator + ); + const text = sourceCode.getText(); + + return text.slice(node.range[0], + operatorToken.range[0]) + OPERATOR_INVERSES[node.operator] + text.slice(operatorToken.range[1], node.range[1]); + } + + if (astUtils.getPrecedence(node) < astUtils.getPrecedence({ type: "UnaryExpression" })) { + return `!(${astUtils.getParenthesisedText(sourceCode, node)})`; + } + return `!${astUtils.getParenthesisedText(sourceCode, node)}`; + } + + /** + * Tests if a given node always evaluates to a boolean value + * @param {ASTNode} node An expression node + * @returns {boolean} True if it is determined that the node will always evaluate to a boolean value + */ + function isBooleanExpression(node) { + return node.type === "BinaryExpression" && BOOLEAN_OPERATORS.has(node.operator) || + node.type === "UnaryExpression" && node.operator === "!"; + } + + /** + * Test if the node matches the pattern id ? id : expression + * @param {ASTNode} node The ConditionalExpression to check. + * @returns {boolean} True if the pattern is matched, and false otherwise + * @private + */ + function matchesDefaultAssignment(node) { + return node.test.type === "Identifier" && + node.consequent.type === "Identifier" && + node.test.name === node.consequent.name; + } + + return { + + ConditionalExpression(node) { + if (isBooleanLiteral(node.alternate) && isBooleanLiteral(node.consequent)) { + context.report({ + node, + messageId: "unnecessaryConditionalExpression", + fix(fixer) { + if (node.consequent.value === node.alternate.value) { + + // Replace `foo ? true : true` with just `true`, but don't replace `foo() ? true : true` + return node.test.type === "Identifier" ? fixer.replaceText(node, node.consequent.value.toString()) : null; + } + if (node.alternate.value) { + + // Replace `foo() ? false : true` with `!(foo())` + return fixer.replaceText(node, invertExpression(node.test)); + } + + // Replace `foo ? true : false` with `foo` if `foo` is guaranteed to be a boolean, or `!!foo` otherwise. + + return fixer.replaceText(node, isBooleanExpression(node.test) ? astUtils.getParenthesisedText(sourceCode, node.test) : `!${invertExpression(node.test)}`); + } + }); + } else if (!defaultAssignment && matchesDefaultAssignment(node)) { + context.report({ + node, + messageId: "unnecessaryConditionalAssignment", + fix: fixer => { + const shouldParenthesizeAlternate = + ( + astUtils.getPrecedence(node.alternate) < OR_PRECEDENCE || + astUtils.isCoalesceExpression(node.alternate) + ) && + !astUtils.isParenthesised(sourceCode, node.alternate); + const alternateText = shouldParenthesizeAlternate + ? `(${sourceCode.getText(node.alternate)})` + : astUtils.getParenthesisedText(sourceCode, node.alternate); + const testText = astUtils.getParenthesisedText(sourceCode, node.test); + + return fixer.replaceText(node, `${testText} || ${alternateText}`); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unreachable-loop.js b/node_modules/eslint/lib/rules/no-unreachable-loop.js new file mode 100644 index 0000000..c42c922 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unreachable-loop.js @@ -0,0 +1,150 @@ +/** + * @fileoverview Rule to disallow loops with a body that allows only one iteration + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const allLoopTypes = ["WhileStatement", "DoWhileStatement", "ForStatement", "ForInStatement", "ForOfStatement"]; + +/** + * Determines whether the given node is the first node in the code path to which a loop statement + * 'loops' for the next iteration. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is a looping target. + */ +function isLoopingTarget(node) { + const parent = node.parent; + + if (parent) { + switch (parent.type) { + case "WhileStatement": + return node === parent.test; + case "DoWhileStatement": + return node === parent.body; + case "ForStatement": + return node === (parent.update || parent.test || parent.body); + case "ForInStatement": + case "ForOfStatement": + return node === parent.left; + + // no default + } + } + + return false; +} + +/** + * Creates an array with elements from the first given array that are not included in the second given array. + * @param {Array} arrA The array to compare from. + * @param {Array} arrB The array to compare against. + * @returns {Array} a new array that represents `arrA \ arrB`. + */ +function getDifference(arrA, arrB) { + return arrA.filter(a => !arrB.includes(a)); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow loops with a body that allows only one iteration", + recommended: false, + url: "https://eslint.org/docs/rules/no-unreachable-loop" + }, + + schema: [{ + type: "object", + properties: { + ignore: { + type: "array", + items: { + enum: allLoopTypes + }, + uniqueItems: true + } + }, + additionalProperties: false + }], + + messages: { + invalid: "Invalid loop. Its body allows only one iteration." + } + }, + + create(context) { + const ignoredLoopTypes = context.options[0] && context.options[0].ignore || [], + loopTypesToCheck = getDifference(allLoopTypes, ignoredLoopTypes), + loopSelector = loopTypesToCheck.join(","), + loopsByTargetSegments = new Map(), + loopsToReport = new Set(); + + let currentCodePath = null; + + return { + onCodePathStart(codePath) { + currentCodePath = codePath; + }, + + onCodePathEnd() { + currentCodePath = currentCodePath.upper; + }, + + [loopSelector](node) { + + /** + * Ignore unreachable loop statements to avoid unnecessary complexity in the implementation, or false positives otherwise. + * For unreachable segments, the code path analysis does not raise events required for this implementation. + */ + if (currentCodePath.currentSegments.some(segment => segment.reachable)) { + loopsToReport.add(node); + } + }, + + onCodePathSegmentStart(segment, node) { + if (isLoopingTarget(node)) { + const loop = node.parent; + + loopsByTargetSegments.set(segment, loop); + } + }, + + onCodePathSegmentLoop(_, toSegment, node) { + const loop = loopsByTargetSegments.get(toSegment); + + /** + * The second iteration is reachable, meaning that the loop is valid by the logic of this rule, + * only if there is at least one loop event with the appropriate target (which has been already + * determined in the `loopsByTargetSegments` map), raised from either: + * + * - the end of the loop's body (in which case `node === loop`) + * - a `continue` statement + * + * This condition skips loop events raised from `ForInStatement > .right` and `ForOfStatement > .right` nodes. + */ + if (node === loop || node.type === "ContinueStatement") { + + // Removes loop if it exists in the set. Otherwise, `Set#delete` has no effect and doesn't throw. + loopsToReport.delete(loop); + } + }, + + "Program:exit"() { + loopsToReport.forEach( + node => context.report({ node, messageId: "invalid" }) + ); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unreachable.js b/node_modules/eslint/lib/rules/no-unreachable.js new file mode 100644 index 0000000..dea8681 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unreachable.js @@ -0,0 +1,264 @@ +/** + * @fileoverview Checks for unreachable code due to return, throws, break, and continue. + * @author Joel Feenstra + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * @typedef {Object} ConstructorInfo + * @property {ConstructorInfo | null} upper Info about the constructor that encloses this constructor. + * @property {boolean} hasSuperCall The flag about having `super()` expressions. + */ + +/** + * Checks whether or not a given variable declarator has the initializer. + * @param {ASTNode} node A VariableDeclarator node to check. + * @returns {boolean} `true` if the node has the initializer. + */ +function isInitialized(node) { + return Boolean(node.init); +} + +/** + * Checks whether or not a given code path segment is unreachable. + * @param {CodePathSegment} segment A CodePathSegment to check. + * @returns {boolean} `true` if the segment is unreachable. + */ +function isUnreachable(segment) { + return !segment.reachable; +} + +/** + * The class to distinguish consecutive unreachable statements. + */ +class ConsecutiveRange { + constructor(sourceCode) { + this.sourceCode = sourceCode; + this.startNode = null; + this.endNode = null; + } + + /** + * The location object of this range. + * @type {Object} + */ + get location() { + return { + start: this.startNode.loc.start, + end: this.endNode.loc.end + }; + } + + /** + * `true` if this range is empty. + * @type {boolean} + */ + get isEmpty() { + return !(this.startNode && this.endNode); + } + + /** + * Checks whether the given node is inside of this range. + * @param {ASTNode|Token} node The node to check. + * @returns {boolean} `true` if the node is inside of this range. + */ + contains(node) { + return ( + node.range[0] >= this.startNode.range[0] && + node.range[1] <= this.endNode.range[1] + ); + } + + /** + * Checks whether the given node is consecutive to this range. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is consecutive to this range. + */ + isConsecutive(node) { + return this.contains(this.sourceCode.getTokenBefore(node)); + } + + /** + * Merges the given node to this range. + * @param {ASTNode} node The node to merge. + * @returns {void} + */ + merge(node) { + this.endNode = node; + } + + /** + * Resets this range by the given node or null. + * @param {ASTNode|null} node The node to reset, or null. + * @returns {void} + */ + reset(node) { + this.startNode = this.endNode = node; + } +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements", + recommended: true, + url: "https://eslint.org/docs/rules/no-unreachable" + }, + + schema: [], + + messages: { + unreachableCode: "Unreachable code." + } + }, + + create(context) { + let currentCodePath = null; + + /** @type {ConstructorInfo | null} */ + let constructorInfo = null; + + /** @type {ConsecutiveRange} */ + const range = new ConsecutiveRange(context.getSourceCode()); + + /** + * Reports a given node if it's unreachable. + * @param {ASTNode} node A statement node to report. + * @returns {void} + */ + function reportIfUnreachable(node) { + let nextNode = null; + + if (node && (node.type === "PropertyDefinition" || currentCodePath.currentSegments.every(isUnreachable))) { + + // Store this statement to distinguish consecutive statements. + if (range.isEmpty) { + range.reset(node); + return; + } + + // Skip if this statement is inside of the current range. + if (range.contains(node)) { + return; + } + + // Merge if this statement is consecutive to the current range. + if (range.isConsecutive(node)) { + range.merge(node); + return; + } + + nextNode = node; + } + + /* + * Report the current range since this statement is reachable or is + * not consecutive to the current range. + */ + if (!range.isEmpty) { + context.report({ + messageId: "unreachableCode", + loc: range.location, + node: range.startNode + }); + } + + // Update the current range. + range.reset(nextNode); + } + + return { + + // Manages the current code path. + onCodePathStart(codePath) { + currentCodePath = codePath; + }, + + onCodePathEnd() { + currentCodePath = currentCodePath.upper; + }, + + // Registers for all statement nodes (excludes FunctionDeclaration). + BlockStatement: reportIfUnreachable, + BreakStatement: reportIfUnreachable, + ClassDeclaration: reportIfUnreachable, + ContinueStatement: reportIfUnreachable, + DebuggerStatement: reportIfUnreachable, + DoWhileStatement: reportIfUnreachable, + ExpressionStatement: reportIfUnreachable, + ForInStatement: reportIfUnreachable, + ForOfStatement: reportIfUnreachable, + ForStatement: reportIfUnreachable, + IfStatement: reportIfUnreachable, + ImportDeclaration: reportIfUnreachable, + LabeledStatement: reportIfUnreachable, + ReturnStatement: reportIfUnreachable, + SwitchStatement: reportIfUnreachable, + ThrowStatement: reportIfUnreachable, + TryStatement: reportIfUnreachable, + + VariableDeclaration(node) { + if (node.kind !== "var" || node.declarations.some(isInitialized)) { + reportIfUnreachable(node); + } + }, + + WhileStatement: reportIfUnreachable, + WithStatement: reportIfUnreachable, + ExportNamedDeclaration: reportIfUnreachable, + ExportDefaultDeclaration: reportIfUnreachable, + ExportAllDeclaration: reportIfUnreachable, + + "Program:exit"() { + reportIfUnreachable(); + }, + + /* + * Instance fields defined in a subclass are never created if the constructor of the subclass + * doesn't call `super()`, so their definitions are unreachable code. + */ + "MethodDefinition[kind='constructor']"() { + constructorInfo = { + upper: constructorInfo, + hasSuperCall: false + }; + }, + "MethodDefinition[kind='constructor']:exit"(node) { + const { hasSuperCall } = constructorInfo; + + constructorInfo = constructorInfo.upper; + + // skip typescript constructors without the body + if (!node.value.body) { + return; + } + + const classDefinition = node.parent.parent; + + if (classDefinition.superClass && !hasSuperCall) { + for (const element of classDefinition.body.body) { + if (element.type === "PropertyDefinition" && !element.static) { + reportIfUnreachable(element); + } + } + } + }, + "CallExpression > Super.callee"() { + if (constructorInfo) { + constructorInfo.hasSuperCall = true; + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unsafe-finally.js b/node_modules/eslint/lib/rules/no-unsafe-finally.js new file mode 100644 index 0000000..80adb0f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unsafe-finally.js @@ -0,0 +1,111 @@ +/** + * @fileoverview Rule to flag unsafe statements in finally block + * @author Onur Temizkan + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SENTINEL_NODE_TYPE_RETURN_THROW = /^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression)$/u; +const SENTINEL_NODE_TYPE_BREAK = /^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|DoWhileStatement|WhileStatement|ForOfStatement|ForInStatement|ForStatement|SwitchStatement)$/u; +const SENTINEL_NODE_TYPE_CONTINUE = /^(?:Program|(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|DoWhileStatement|WhileStatement|ForOfStatement|ForInStatement|ForStatement)$/u; + + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow control flow statements in `finally` blocks", + recommended: true, + url: "https://eslint.org/docs/rules/no-unsafe-finally" + }, + + schema: [], + + messages: { + unsafeUsage: "Unsafe usage of {{nodeType}}." + } + }, + create(context) { + + /** + * Checks if the node is the finalizer of a TryStatement + * @param {ASTNode} node node to check. + * @returns {boolean} - true if the node is the finalizer of a TryStatement + */ + function isFinallyBlock(node) { + return node.parent.type === "TryStatement" && node.parent.finalizer === node; + } + + /** + * Climbs up the tree if the node is not a sentinel node + * @param {ASTNode} node node to check. + * @param {string} label label of the break or continue statement + * @returns {boolean} - return whether the node is a finally block or a sentinel node + */ + function isInFinallyBlock(node, label) { + let labelInside = false; + let sentinelNodeType; + + if (node.type === "BreakStatement" && !node.label) { + sentinelNodeType = SENTINEL_NODE_TYPE_BREAK; + } else if (node.type === "ContinueStatement") { + sentinelNodeType = SENTINEL_NODE_TYPE_CONTINUE; + } else { + sentinelNodeType = SENTINEL_NODE_TYPE_RETURN_THROW; + } + + for ( + let currentNode = node; + currentNode && !sentinelNodeType.test(currentNode.type); + currentNode = currentNode.parent + ) { + if (currentNode.parent.label && label && (currentNode.parent.label.name === label.name)) { + labelInside = true; + } + if (isFinallyBlock(currentNode)) { + if (label && labelInside) { + return false; + } + return true; + } + } + return false; + } + + /** + * Checks whether the possibly-unsafe statement is inside a finally block. + * @param {ASTNode} node node to check. + * @returns {void} + */ + function check(node) { + if (isInFinallyBlock(node, node.label)) { + context.report({ + messageId: "unsafeUsage", + data: { + nodeType: node.type + }, + node, + line: node.loc.line, + column: node.loc.column + }); + } + } + + return { + ReturnStatement: check, + ThrowStatement: check, + BreakStatement: check, + ContinueStatement: check + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unsafe-negation.js b/node_modules/eslint/lib/rules/no-unsafe-negation.js new file mode 100644 index 0000000..5dd150f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unsafe-negation.js @@ -0,0 +1,128 @@ +/** + * @fileoverview Rule to disallow negating the left operand of relational operators + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether the given operator is `in` or `instanceof` + * @param {string} op The operator type to check. + * @returns {boolean} `true` if the operator is `in` or `instanceof` + */ +function isInOrInstanceOfOperator(op) { + return op === "in" || op === "instanceof"; +} + +/** + * Checks whether the given operator is an ordering relational operator or not. + * @param {string} op The operator type to check. + * @returns {boolean} `true` if the operator is an ordering relational operator. + */ +function isOrderingRelationalOperator(op) { + return op === "<" || op === ">" || op === ">=" || op === "<="; +} + +/** + * Checks whether the given node is a logical negation expression or not. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is a logical negation expression. + */ +function isNegation(node) { + return node.type === "UnaryExpression" && node.operator === "!"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow negating the left operand of relational operators", + recommended: true, + url: "https://eslint.org/docs/rules/no-unsafe-negation" + }, + + hasSuggestions: true, + + schema: [ + { + type: "object", + properties: { + enforceForOrderingRelations: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + fixable: null, + + messages: { + unexpected: "Unexpected negating the left operand of '{{operator}}' operator.", + suggestNegatedExpression: "Negate '{{operator}}' expression instead of its left operand. This changes the current behavior.", + suggestParenthesisedNegation: "Wrap negation in '()' to make the intention explicit. This preserves the current behavior." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const options = context.options[0] || {}; + const enforceForOrderingRelations = options.enforceForOrderingRelations === true; + + return { + BinaryExpression(node) { + const operator = node.operator; + const orderingRelationRuleApplies = enforceForOrderingRelations && isOrderingRelationalOperator(operator); + + if ( + (isInOrInstanceOfOperator(operator) || orderingRelationRuleApplies) && + isNegation(node.left) && + !astUtils.isParenthesised(sourceCode, node.left) + ) { + context.report({ + node, + loc: node.left.loc, + messageId: "unexpected", + data: { operator }, + suggest: [ + { + messageId: "suggestNegatedExpression", + data: { operator }, + fix(fixer) { + const negationToken = sourceCode.getFirstToken(node.left); + const fixRange = [negationToken.range[1], node.range[1]]; + const text = sourceCode.text.slice(fixRange[0], fixRange[1]); + + return fixer.replaceTextRange(fixRange, `(${text})`); + } + }, + { + messageId: "suggestParenthesisedNegation", + fix(fixer) { + return fixer.replaceText(node.left, `(${sourceCode.getText(node.left)})`); + } + } + ] + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js b/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js new file mode 100644 index 0000000..9913907 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js @@ -0,0 +1,205 @@ +/** + * @fileoverview Rule to disallow unsafe optional chaining + * @author Yeon JuAn + */ + +"use strict"; + +const UNSAFE_ARITHMETIC_OPERATORS = new Set(["+", "-", "/", "*", "%", "**"]); +const UNSAFE_ASSIGNMENT_OPERATORS = new Set(["+=", "-=", "/=", "*=", "%=", "**="]); +const UNSAFE_RELATIONAL_OPERATORS = new Set(["in", "instanceof"]); + +/** + * Checks whether a node is a destructuring pattern or not + * @param {ASTNode} node node to check + * @returns {boolean} `true` if a node is a destructuring pattern, otherwise `false` + */ +function isDestructuringPattern(node) { + return node.type === "ObjectPattern" || node.type === "ArrayPattern"; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow use of optional chaining in contexts where the `undefined` value is not allowed", + recommended: true, + url: "https://eslint.org/docs/rules/no-unsafe-optional-chaining" + }, + schema: [{ + type: "object", + properties: { + disallowArithmeticOperators: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + fixable: null, + messages: { + unsafeOptionalChain: "Unsafe usage of optional chaining. If it short-circuits with 'undefined' the evaluation will throw TypeError.", + unsafeArithmetic: "Unsafe arithmetic operation on optional chaining. It can result in NaN." + } + }, + + create(context) { + const options = context.options[0] || {}; + const disallowArithmeticOperators = (options.disallowArithmeticOperators) || false; + + /** + * Reports unsafe usage of optional chaining + * @param {ASTNode} node node to report + * @returns {void} + */ + function reportUnsafeUsage(node) { + context.report({ + messageId: "unsafeOptionalChain", + node + }); + } + + /** + * Reports unsafe arithmetic operation on optional chaining + * @param {ASTNode} node node to report + * @returns {void} + */ + function reportUnsafeArithmetic(node) { + context.report({ + messageId: "unsafeArithmetic", + node + }); + } + + /** + * Checks and reports if a node can short-circuit with `undefined` by optional chaining. + * @param {ASTNode} [node] node to check + * @param {Function} reportFunc report function + * @returns {void} + */ + function checkUndefinedShortCircuit(node, reportFunc) { + if (!node) { + return; + } + switch (node.type) { + case "LogicalExpression": + if (node.operator === "||" || node.operator === "??") { + checkUndefinedShortCircuit(node.right, reportFunc); + } else if (node.operator === "&&") { + checkUndefinedShortCircuit(node.left, reportFunc); + checkUndefinedShortCircuit(node.right, reportFunc); + } + break; + case "SequenceExpression": + checkUndefinedShortCircuit( + node.expressions[node.expressions.length - 1], + reportFunc + ); + break; + case "ConditionalExpression": + checkUndefinedShortCircuit(node.consequent, reportFunc); + checkUndefinedShortCircuit(node.alternate, reportFunc); + break; + case "AwaitExpression": + checkUndefinedShortCircuit(node.argument, reportFunc); + break; + case "ChainExpression": + reportFunc(node); + break; + default: + break; + } + } + + /** + * Checks unsafe usage of optional chaining + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkUnsafeUsage(node) { + checkUndefinedShortCircuit(node, reportUnsafeUsage); + } + + /** + * Checks unsafe arithmetic operations on optional chaining + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkUnsafeArithmetic(node) { + checkUndefinedShortCircuit(node, reportUnsafeArithmetic); + } + + return { + "AssignmentExpression, AssignmentPattern"(node) { + if (isDestructuringPattern(node.left)) { + checkUnsafeUsage(node.right); + } + }, + "ClassDeclaration, ClassExpression"(node) { + checkUnsafeUsage(node.superClass); + }, + CallExpression(node) { + if (!node.optional) { + checkUnsafeUsage(node.callee); + } + }, + NewExpression(node) { + checkUnsafeUsage(node.callee); + }, + VariableDeclarator(node) { + if (isDestructuringPattern(node.id)) { + checkUnsafeUsage(node.init); + } + }, + MemberExpression(node) { + if (!node.optional) { + checkUnsafeUsage(node.object); + } + }, + TaggedTemplateExpression(node) { + checkUnsafeUsage(node.tag); + }, + ForOfStatement(node) { + checkUnsafeUsage(node.right); + }, + SpreadElement(node) { + if (node.parent && node.parent.type !== "ObjectExpression") { + checkUnsafeUsage(node.argument); + } + }, + BinaryExpression(node) { + if (UNSAFE_RELATIONAL_OPERATORS.has(node.operator)) { + checkUnsafeUsage(node.right); + } + if ( + disallowArithmeticOperators && + UNSAFE_ARITHMETIC_OPERATORS.has(node.operator) + ) { + checkUnsafeArithmetic(node.right); + checkUnsafeArithmetic(node.left); + } + }, + WithStatement(node) { + checkUnsafeUsage(node.object); + }, + UnaryExpression(node) { + if ( + disallowArithmeticOperators && + UNSAFE_ARITHMETIC_OPERATORS.has(node.operator) + ) { + checkUnsafeArithmetic(node.argument); + } + }, + AssignmentExpression(node) { + if ( + disallowArithmeticOperators && + UNSAFE_ASSIGNMENT_OPERATORS.has(node.operator) + ) { + checkUnsafeArithmetic(node.right); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unused-expressions.js b/node_modules/eslint/lib/rules/no-unused-expressions.js new file mode 100644 index 0000000..d34d584 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unused-expressions.js @@ -0,0 +1,189 @@ +/** + * @fileoverview Flag expressions in statement position that do not side effect + * @author Michael Ficarra + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** + * Returns `true`. + * @returns {boolean} `true`. + */ +function alwaysTrue() { + return true; +} + +/** + * Returns `false`. + * @returns {boolean} `false`. + */ +function alwaysFalse() { + return false; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unused expressions", + recommended: false, + url: "https://eslint.org/docs/rules/no-unused-expressions" + }, + + schema: [ + { + type: "object", + properties: { + allowShortCircuit: { + type: "boolean", + default: false + }, + allowTernary: { + type: "boolean", + default: false + }, + allowTaggedTemplates: { + type: "boolean", + default: false + }, + enforceForJSX: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unusedExpression: "Expected an assignment or function call and instead saw an expression." + } + }, + + create(context) { + const config = context.options[0] || {}, + allowShortCircuit = config.allowShortCircuit || false, + allowTernary = config.allowTernary || false, + allowTaggedTemplates = config.allowTaggedTemplates || false, + enforceForJSX = config.enforceForJSX || false; + + /** + * Has AST suggesting a directive. + * @param {ASTNode} node any node + * @returns {boolean} whether the given node structurally represents a directive + */ + function looksLikeDirective(node) { + return node.type === "ExpressionStatement" && + node.expression.type === "Literal" && typeof node.expression.value === "string"; + } + + /** + * Gets the leading sequence of members in a list that pass the predicate. + * @param {Function} predicate ([a] -> Boolean) the function used to make the determination + * @param {a[]} list the input list + * @returns {a[]} the leading sequence of members in the given list that pass the given predicate + */ + function takeWhile(predicate, list) { + for (let i = 0; i < list.length; ++i) { + if (!predicate(list[i])) { + return list.slice(0, i); + } + } + return list.slice(); + } + + /** + * Gets leading directives nodes in a Node body. + * @param {ASTNode} node a Program or BlockStatement node + * @returns {ASTNode[]} the leading sequence of directive nodes in the given node's body + */ + function directives(node) { + return takeWhile(looksLikeDirective, node.body); + } + + /** + * Detect if a Node is a directive. + * @param {ASTNode} node any node + * @param {ASTNode[]} ancestors the given node's ancestors + * @returns {boolean} whether the given node is considered a directive in its current position + */ + function isDirective(node, ancestors) { + const parent = ancestors[ancestors.length - 1], + grandparent = ancestors[ancestors.length - 2]; + + /** + * https://tc39.es/ecma262/#directive-prologue + * + * Only `FunctionBody`, `ScriptBody` and `ModuleBody` can have directive prologue. + * Class static blocks do not have directive prologue. + */ + return (parent.type === "Program" || parent.type === "BlockStatement" && + (/Function/u.test(grandparent.type))) && + directives(parent).includes(node); + } + + /** + * The member functions return `true` if the type has no side-effects. + * Unknown nodes are handled as `false`, then this rule ignores those. + */ + const Checker = Object.assign(Object.create(null), { + isDisallowed(node) { + return (Checker[node.type] || alwaysFalse)(node); + }, + + ArrayExpression: alwaysTrue, + ArrowFunctionExpression: alwaysTrue, + BinaryExpression: alwaysTrue, + ChainExpression(node) { + return Checker.isDisallowed(node.expression); + }, + ClassExpression: alwaysTrue, + ConditionalExpression(node) { + if (allowTernary) { + return Checker.isDisallowed(node.consequent) || Checker.isDisallowed(node.alternate); + } + return true; + }, + FunctionExpression: alwaysTrue, + Identifier: alwaysTrue, + JSXElement() { + return enforceForJSX; + }, + JSXFragment() { + return enforceForJSX; + }, + Literal: alwaysTrue, + LogicalExpression(node) { + if (allowShortCircuit) { + return Checker.isDisallowed(node.right); + } + return true; + }, + MemberExpression: alwaysTrue, + MetaProperty: alwaysTrue, + ObjectExpression: alwaysTrue, + SequenceExpression: alwaysTrue, + TaggedTemplateExpression() { + return !allowTaggedTemplates; + }, + TemplateLiteral: alwaysTrue, + ThisExpression: alwaysTrue, + UnaryExpression(node) { + return node.operator !== "void" && node.operator !== "delete"; + } + }); + + return { + ExpressionStatement(node) { + if (Checker.isDisallowed(node.expression) && !isDirective(node, context.getAncestors())) { + context.report({ node, messageId: "unusedExpression" }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unused-labels.js b/node_modules/eslint/lib/rules/no-unused-labels.js new file mode 100644 index 0000000..305226a --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unused-labels.js @@ -0,0 +1,110 @@ +/** + * @fileoverview Rule to disallow unused labels. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unused labels", + recommended: true, + url: "https://eslint.org/docs/rules/no-unused-labels" + }, + + schema: [], + + fixable: "code", + + messages: { + unused: "'{{name}}:' is defined but never used." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + let scopeInfo = null; + + /** + * Adds a scope info to the stack. + * @param {ASTNode} node A node to add. This is a LabeledStatement. + * @returns {void} + */ + function enterLabeledScope(node) { + scopeInfo = { + label: node.label.name, + used: false, + upper: scopeInfo + }; + } + + /** + * Removes the top of the stack. + * At the same time, this reports the label if it's never used. + * @param {ASTNode} node A node to report. This is a LabeledStatement. + * @returns {void} + */ + function exitLabeledScope(node) { + if (!scopeInfo.used) { + context.report({ + node: node.label, + messageId: "unused", + data: node.label, + fix(fixer) { + + /* + * Only perform a fix if there are no comments between the label and the body. This will be the case + * when there is exactly one token/comment (the ":") between the label and the body. + */ + if (sourceCode.getTokenAfter(node.label, { includeComments: true }) === + sourceCode.getTokenBefore(node.body, { includeComments: true })) { + return fixer.removeRange([node.range[0], node.body.range[0]]); + } + + return null; + } + }); + } + + scopeInfo = scopeInfo.upper; + } + + /** + * Marks the label of a given node as used. + * @param {ASTNode} node A node to mark. This is a BreakStatement or + * ContinueStatement. + * @returns {void} + */ + function markAsUsed(node) { + if (!node.label) { + return; + } + + const label = node.label.name; + let info = scopeInfo; + + while (info) { + if (info.label === label) { + info.used = true; + break; + } + info = info.upper; + } + } + + return { + LabeledStatement: enterLabeledScope, + "LabeledStatement:exit": exitLabeledScope, + BreakStatement: markAsUsed, + ContinueStatement: markAsUsed + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unused-private-class-members.js b/node_modules/eslint/lib/rules/no-unused-private-class-members.js new file mode 100644 index 0000000..e62a9ed --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unused-private-class-members.js @@ -0,0 +1,195 @@ +/** + * @fileoverview Rule to flag declared but unused private class members + * @author Tim van der Lippe + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow unused private class members", + recommended: false, + url: "https://eslint.org/docs/rules/no-unused-private-class-members" + }, + + schema: [], + + messages: { + unusedPrivateClassMember: "'{{classMemberName}}' is defined but never used." + } + }, + + create(context) { + const trackedClasses = []; + + /** + * Check whether the current node is in a write only assignment. + * @param {ASTNode} privateIdentifierNode Node referring to a private identifier + * @returns {boolean} Whether the node is in a write only assignment + * @private + */ + function isWriteOnlyAssignment(privateIdentifierNode) { + const parentStatement = privateIdentifierNode.parent.parent; + const isAssignmentExpression = parentStatement.type === "AssignmentExpression"; + + if (!isAssignmentExpression && + parentStatement.type !== "ForInStatement" && + parentStatement.type !== "ForOfStatement" && + parentStatement.type !== "AssignmentPattern") { + return false; + } + + // It is a write-only usage, since we still allow usages on the right for reads + if (parentStatement.left !== privateIdentifierNode.parent) { + return false; + } + + // For any other operator (such as '+=') we still consider it a read operation + if (isAssignmentExpression && parentStatement.operator !== "=") { + + /* + * However, if the read operation is "discarded" in an empty statement, then + * we consider it write only. + */ + return parentStatement.parent.type === "ExpressionStatement"; + } + + return true; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + // Collect all declared members up front and assume they are all unused + ClassBody(classBodyNode) { + const privateMembers = new Map(); + + trackedClasses.unshift(privateMembers); + for (const bodyMember of classBodyNode.body) { + if (bodyMember.type === "PropertyDefinition" || bodyMember.type === "MethodDefinition") { + if (bodyMember.key.type === "PrivateIdentifier") { + privateMembers.set(bodyMember.key.name, { + declaredNode: bodyMember, + isAccessor: bodyMember.type === "MethodDefinition" && + (bodyMember.kind === "set" || bodyMember.kind === "get") + }); + } + } + } + }, + + /* + * Process all usages of the private identifier and remove a member from + * `declaredAndUnusedPrivateMembers` if we deem it used. + */ + PrivateIdentifier(privateIdentifierNode) { + const classBody = trackedClasses.find(classProperties => classProperties.has(privateIdentifierNode.name)); + + // Can't happen, as it is a parser to have a missing class body, but let's code defensively here. + if (!classBody) { + return; + } + + // In case any other usage was already detected, we can short circuit the logic here. + const memberDefinition = classBody.get(privateIdentifierNode.name); + + if (memberDefinition.isUsed) { + return; + } + + // The definition of the class member itself + if (privateIdentifierNode.parent.type === "PropertyDefinition" || + privateIdentifierNode.parent.type === "MethodDefinition") { + return; + } + + /* + * Any usage of an accessor is considered a read, as the getter/setter can have + * side-effects in its definition. + */ + if (memberDefinition.isAccessor) { + memberDefinition.isUsed = true; + return; + } + + // Any assignments to this member, except for assignments that also read + if (isWriteOnlyAssignment(privateIdentifierNode)) { + return; + } + + const wrappingExpressionType = privateIdentifierNode.parent.parent.type; + const parentOfWrappingExpressionType = privateIdentifierNode.parent.parent.parent.type; + + // A statement which only increments (`this.#x++;`) + if (wrappingExpressionType === "UpdateExpression" && + parentOfWrappingExpressionType === "ExpressionStatement") { + return; + } + + /* + * ({ x: this.#usedInDestructuring } = bar); + * + * But should treat the following as a read: + * ({ [this.#x]: a } = foo); + */ + if (wrappingExpressionType === "Property" && + parentOfWrappingExpressionType === "ObjectPattern" && + privateIdentifierNode.parent.parent.value === privateIdentifierNode.parent) { + return; + } + + // [...this.#unusedInRestPattern] = bar; + if (wrappingExpressionType === "RestElement") { + return; + } + + // [this.#unusedInAssignmentPattern] = bar; + if (wrappingExpressionType === "ArrayPattern") { + return; + } + + /* + * We can't delete the memberDefinition, as we need to keep track of which member we are marking as used. + * In the case of nested classes, we only mark the first member we encounter as used. If you were to delete + * the member, then any subsequent usage could incorrectly mark the member of an encapsulating parent class + * as used, which is incorrect. + */ + memberDefinition.isUsed = true; + }, + + /* + * Post-process the class members and report any remaining members. + * Since private members can only be accessed in the current class context, + * we can safely assume that all usages are within the current class body. + */ + "ClassBody:exit"() { + const unusedPrivateMembers = trackedClasses.shift(); + + for (const [classMemberName, { declaredNode, isUsed }] of unusedPrivateMembers.entries()) { + if (isUsed) { + continue; + } + context.report({ + node: declaredNode, + loc: declaredNode.key.loc, + messageId: "unusedPrivateClassMember", + data: { + classMemberName: `#${classMemberName}` + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unused-vars.js b/node_modules/eslint/lib/rules/no-unused-vars.js new file mode 100644 index 0000000..778889a --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unused-vars.js @@ -0,0 +1,717 @@ +/** + * @fileoverview Rule to flag declared but unused variables + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * Bag of data used for formatting the `unusedVar` lint message. + * @typedef {Object} UnusedVarMessageData + * @property {string} varName The name of the unused var. + * @property {'defined'|'assigned a value'} action Description of the vars state. + * @property {string} additional Any additional info to be appended at the end. + */ + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow unused variables", + recommended: true, + url: "https://eslint.org/docs/rules/no-unused-vars" + }, + + schema: [ + { + oneOf: [ + { + enum: ["all", "local"] + }, + { + type: "object", + properties: { + vars: { + enum: ["all", "local"] + }, + varsIgnorePattern: { + type: "string" + }, + args: { + enum: ["all", "after-used", "none"] + }, + ignoreRestSiblings: { + type: "boolean" + }, + argsIgnorePattern: { + type: "string" + }, + caughtErrors: { + enum: ["all", "none"] + }, + caughtErrorsIgnorePattern: { + type: "string" + }, + destructuredArrayIgnorePattern: { + type: "string" + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + unusedVar: "'{{varName}}' is {{action}} but never used{{additional}}." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + const REST_PROPERTY_TYPE = /^(?:RestElement|(?:Experimental)?RestProperty)$/u; + + const config = { + vars: "all", + args: "after-used", + ignoreRestSiblings: false, + caughtErrors: "none" + }; + + const firstOption = context.options[0]; + + if (firstOption) { + if (typeof firstOption === "string") { + config.vars = firstOption; + } else { + config.vars = firstOption.vars || config.vars; + config.args = firstOption.args || config.args; + config.ignoreRestSiblings = firstOption.ignoreRestSiblings || config.ignoreRestSiblings; + config.caughtErrors = firstOption.caughtErrors || config.caughtErrors; + + if (firstOption.varsIgnorePattern) { + config.varsIgnorePattern = new RegExp(firstOption.varsIgnorePattern, "u"); + } + + if (firstOption.argsIgnorePattern) { + config.argsIgnorePattern = new RegExp(firstOption.argsIgnorePattern, "u"); + } + + if (firstOption.caughtErrorsIgnorePattern) { + config.caughtErrorsIgnorePattern = new RegExp(firstOption.caughtErrorsIgnorePattern, "u"); + } + + if (firstOption.destructuredArrayIgnorePattern) { + config.destructuredArrayIgnorePattern = new RegExp(firstOption.destructuredArrayIgnorePattern, "u"); + } + } + } + + /** + * Generates the message data about the variable being defined and unused, + * including the ignore pattern if configured. + * @param {Variable} unusedVar eslint-scope variable object. + * @returns {UnusedVarMessageData} The message data to be used with this unused variable. + */ + function getDefinedMessageData(unusedVar) { + const defType = unusedVar.defs && unusedVar.defs[0] && unusedVar.defs[0].type; + let type; + let pattern; + + if (defType === "CatchClause" && config.caughtErrorsIgnorePattern) { + type = "args"; + pattern = config.caughtErrorsIgnorePattern.toString(); + } else if (defType === "Parameter" && config.argsIgnorePattern) { + type = "args"; + pattern = config.argsIgnorePattern.toString(); + } else if (defType !== "Parameter" && config.varsIgnorePattern) { + type = "vars"; + pattern = config.varsIgnorePattern.toString(); + } + + const additional = type ? `. Allowed unused ${type} must match ${pattern}` : ""; + + return { + varName: unusedVar.name, + action: "defined", + additional + }; + } + + /** + * Generate the warning message about the variable being + * assigned and unused, including the ignore pattern if configured. + * @param {Variable} unusedVar eslint-scope variable object. + * @returns {UnusedVarMessageData} The message data to be used with this unused variable. + */ + function getAssignedMessageData(unusedVar) { + const def = unusedVar.defs[0]; + let additional = ""; + + if (config.destructuredArrayIgnorePattern && def && def.name.parent.type === "ArrayPattern") { + additional = `. Allowed unused elements of array destructuring patterns must match ${config.destructuredArrayIgnorePattern.toString()}`; + } else if (config.varsIgnorePattern) { + additional = `. Allowed unused vars must match ${config.varsIgnorePattern.toString()}`; + } + + return { + varName: unusedVar.name, + action: "assigned a value", + additional + }; + } + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + const STATEMENT_TYPE = /(?:Statement|Declaration)$/u; + + /** + * Determines if a given variable is being exported from a module. + * @param {Variable} variable eslint-scope variable object. + * @returns {boolean} True if the variable is exported, false if not. + * @private + */ + function isExported(variable) { + + const definition = variable.defs[0]; + + if (definition) { + + let node = definition.node; + + if (node.type === "VariableDeclarator") { + node = node.parent; + } else if (definition.type === "Parameter") { + return false; + } + + return node.parent.type.indexOf("Export") === 0; + } + return false; + + } + + /** + * Checks whether a node is a sibling of the rest property or not. + * @param {ASTNode} node a node to check + * @returns {boolean} True if the node is a sibling of the rest property, otherwise false. + */ + function hasRestSibling(node) { + return node.type === "Property" && + node.parent.type === "ObjectPattern" && + REST_PROPERTY_TYPE.test(node.parent.properties[node.parent.properties.length - 1].type); + } + + /** + * Determines if a variable has a sibling rest property + * @param {Variable} variable eslint-scope variable object. + * @returns {boolean} True if the variable is exported, false if not. + * @private + */ + function hasRestSpreadSibling(variable) { + if (config.ignoreRestSiblings) { + const hasRestSiblingDefinition = variable.defs.some(def => hasRestSibling(def.name.parent)); + const hasRestSiblingReference = variable.references.some(ref => hasRestSibling(ref.identifier.parent)); + + return hasRestSiblingDefinition || hasRestSiblingReference; + } + + return false; + } + + /** + * Determines if a reference is a read operation. + * @param {Reference} ref An eslint-scope Reference + * @returns {boolean} whether the given reference represents a read operation + * @private + */ + function isReadRef(ref) { + return ref.isRead(); + } + + /** + * Determine if an identifier is referencing an enclosing function name. + * @param {Reference} ref The reference to check. + * @param {ASTNode[]} nodes The candidate function nodes. + * @returns {boolean} True if it's a self-reference, false if not. + * @private + */ + function isSelfReference(ref, nodes) { + let scope = ref.from; + + while (scope) { + if (nodes.includes(scope.block)) { + return true; + } + + scope = scope.upper; + } + + return false; + } + + /** + * Gets a list of function definitions for a specified variable. + * @param {Variable} variable eslint-scope variable object. + * @returns {ASTNode[]} Function nodes. + * @private + */ + function getFunctionDefinitions(variable) { + const functionDefinitions = []; + + variable.defs.forEach(def => { + const { type, node } = def; + + // FunctionDeclarations + if (type === "FunctionName") { + functionDefinitions.push(node); + } + + // FunctionExpressions + if (type === "Variable" && node.init && + (node.init.type === "FunctionExpression" || node.init.type === "ArrowFunctionExpression")) { + functionDefinitions.push(node.init); + } + }); + return functionDefinitions; + } + + /** + * Checks the position of given nodes. + * @param {ASTNode} inner A node which is expected as inside. + * @param {ASTNode} outer A node which is expected as outside. + * @returns {boolean} `true` if the `inner` node exists in the `outer` node. + * @private + */ + function isInside(inner, outer) { + return ( + inner.range[0] >= outer.range[0] && + inner.range[1] <= outer.range[1] + ); + } + + /** + * Checks whether a given node is unused expression or not. + * @param {ASTNode} node The node itself + * @returns {boolean} The node is an unused expression. + * @private + */ + function isUnusedExpression(node) { + const parent = node.parent; + + if (parent.type === "ExpressionStatement") { + return true; + } + + if (parent.type === "SequenceExpression") { + const isLastExpression = parent.expressions[parent.expressions.length - 1] === node; + + if (!isLastExpression) { + return true; + } + return isUnusedExpression(parent); + } + + return false; + } + + /** + * If a given reference is left-hand side of an assignment, this gets + * the right-hand side node of the assignment. + * + * In the following cases, this returns null. + * + * - The reference is not the LHS of an assignment expression. + * - The reference is inside of a loop. + * - The reference is inside of a function scope which is different from + * the declaration. + * @param {eslint-scope.Reference} ref A reference to check. + * @param {ASTNode} prevRhsNode The previous RHS node. + * @returns {ASTNode|null} The RHS node or null. + * @private + */ + function getRhsNode(ref, prevRhsNode) { + const id = ref.identifier; + const parent = id.parent; + const refScope = ref.from.variableScope; + const varScope = ref.resolved.scope.variableScope; + const canBeUsedLater = refScope !== varScope || astUtils.isInLoop(id); + + /* + * Inherits the previous node if this reference is in the node. + * This is for `a = a + a`-like code. + */ + if (prevRhsNode && isInside(id, prevRhsNode)) { + return prevRhsNode; + } + + if (parent.type === "AssignmentExpression" && + isUnusedExpression(parent) && + id === parent.left && + !canBeUsedLater + ) { + return parent.right; + } + return null; + } + + /** + * Checks whether a given function node is stored to somewhere or not. + * If the function node is stored, the function can be used later. + * @param {ASTNode} funcNode A function node to check. + * @param {ASTNode} rhsNode The RHS node of the previous assignment. + * @returns {boolean} `true` if under the following conditions: + * - the funcNode is assigned to a variable. + * - the funcNode is bound as an argument of a function call. + * - the function is bound to a property and the object satisfies above conditions. + * @private + */ + function isStorableFunction(funcNode, rhsNode) { + let node = funcNode; + let parent = funcNode.parent; + + while (parent && isInside(parent, rhsNode)) { + switch (parent.type) { + case "SequenceExpression": + if (parent.expressions[parent.expressions.length - 1] !== node) { + return false; + } + break; + + case "CallExpression": + case "NewExpression": + return parent.callee !== node; + + case "AssignmentExpression": + case "TaggedTemplateExpression": + case "YieldExpression": + return true; + + default: + if (STATEMENT_TYPE.test(parent.type)) { + + /* + * If it encountered statements, this is a complex pattern. + * Since analyzing complex patterns is hard, this returns `true` to avoid false positive. + */ + return true; + } + } + + node = parent; + parent = parent.parent; + } + + return false; + } + + /** + * Checks whether a given Identifier node exists inside of a function node which can be used later. + * + * "can be used later" means: + * - the function is assigned to a variable. + * - the function is bound to a property and the object can be used later. + * - the function is bound as an argument of a function call. + * + * If a reference exists in a function which can be used later, the reference is read when the function is called. + * @param {ASTNode} id An Identifier node to check. + * @param {ASTNode} rhsNode The RHS node of the previous assignment. + * @returns {boolean} `true` if the `id` node exists inside of a function node which can be used later. + * @private + */ + function isInsideOfStorableFunction(id, rhsNode) { + const funcNode = astUtils.getUpperFunction(id); + + return ( + funcNode && + isInside(funcNode, rhsNode) && + isStorableFunction(funcNode, rhsNode) + ); + } + + /** + * Checks whether a given reference is a read to update itself or not. + * @param {eslint-scope.Reference} ref A reference to check. + * @param {ASTNode} rhsNode The RHS node of the previous assignment. + * @returns {boolean} The reference is a read to update itself. + * @private + */ + function isReadForItself(ref, rhsNode) { + const id = ref.identifier; + const parent = id.parent; + + return ref.isRead() && ( + + // self update. e.g. `a += 1`, `a++` + ( + ( + parent.type === "AssignmentExpression" && + parent.left === id && + isUnusedExpression(parent) + ) || + ( + parent.type === "UpdateExpression" && + isUnusedExpression(parent) + ) + ) || + + // in RHS of an assignment for itself. e.g. `a = a + 1` + ( + rhsNode && + isInside(id, rhsNode) && + !isInsideOfStorableFunction(id, rhsNode) + ) + ); + } + + /** + * Determine if an identifier is used either in for-in or for-of loops. + * @param {Reference} ref The reference to check. + * @returns {boolean} whether reference is used in the for-in loops + * @private + */ + function isForInOfRef(ref) { + let target = ref.identifier.parent; + + + // "for (var ...) { return; }" + if (target.type === "VariableDeclarator") { + target = target.parent.parent; + } + + if (target.type !== "ForInStatement" && target.type !== "ForOfStatement") { + return false; + } + + // "for (...) { return; }" + if (target.body.type === "BlockStatement") { + target = target.body.body[0]; + + // "for (...) return;" + } else { + target = target.body; + } + + // For empty loop body + if (!target) { + return false; + } + + return target.type === "ReturnStatement"; + } + + /** + * Determines if the variable is used. + * @param {Variable} variable The variable to check. + * @returns {boolean} True if the variable is used + * @private + */ + function isUsedVariable(variable) { + const functionNodes = getFunctionDefinitions(variable), + isFunctionDefinition = functionNodes.length > 0; + let rhsNode = null; + + return variable.references.some(ref => { + if (isForInOfRef(ref)) { + return true; + } + + const forItself = isReadForItself(ref, rhsNode); + + rhsNode = getRhsNode(ref, rhsNode); + + return ( + isReadRef(ref) && + !forItself && + !(isFunctionDefinition && isSelfReference(ref, functionNodes)) + ); + }); + } + + /** + * Checks whether the given variable is after the last used parameter. + * @param {eslint-scope.Variable} variable The variable to check. + * @returns {boolean} `true` if the variable is defined after the last + * used parameter. + */ + function isAfterLastUsedArg(variable) { + const def = variable.defs[0]; + const params = context.getDeclaredVariables(def.node); + const posteriorParams = params.slice(params.indexOf(variable) + 1); + + // If any used parameters occur after this parameter, do not report. + return !posteriorParams.some(v => v.references.length > 0 || v.eslintUsed); + } + + /** + * Gets an array of variables without read references. + * @param {Scope} scope an eslint-scope Scope object. + * @param {Variable[]} unusedVars an array that saving result. + * @returns {Variable[]} unused variables of the scope and descendant scopes. + * @private + */ + function collectUnusedVariables(scope, unusedVars) { + const variables = scope.variables; + const childScopes = scope.childScopes; + let i, l; + + if (scope.type !== "global" || config.vars === "all") { + for (i = 0, l = variables.length; i < l; ++i) { + const variable = variables[i]; + + // skip a variable of class itself name in the class scope + if (scope.type === "class" && scope.block.id === variable.identifiers[0]) { + continue; + } + + // skip function expression names and variables marked with markVariableAsUsed() + if (scope.functionExpressionScope || variable.eslintUsed) { + continue; + } + + // skip implicit "arguments" variable + if (scope.type === "function" && variable.name === "arguments" && variable.identifiers.length === 0) { + continue; + } + + // explicit global variables don't have definitions. + const def = variable.defs[0]; + + if (def) { + const type = def.type; + const refUsedInArrayPatterns = variable.references.some(ref => ref.identifier.parent.type === "ArrayPattern"); + + // skip elements of array destructuring patterns + if ( + ( + def.name.parent.type === "ArrayPattern" || + refUsedInArrayPatterns + ) && + config.destructuredArrayIgnorePattern && + config.destructuredArrayIgnorePattern.test(def.name.name) + ) { + continue; + } + + // skip catch variables + if (type === "CatchClause") { + if (config.caughtErrors === "none") { + continue; + } + + // skip ignored parameters + if (config.caughtErrorsIgnorePattern && config.caughtErrorsIgnorePattern.test(def.name.name)) { + continue; + } + } + + if (type === "Parameter") { + + // skip any setter argument + if ((def.node.parent.type === "Property" || def.node.parent.type === "MethodDefinition") && def.node.parent.kind === "set") { + continue; + } + + // if "args" option is "none", skip any parameter + if (config.args === "none") { + continue; + } + + // skip ignored parameters + if (config.argsIgnorePattern && config.argsIgnorePattern.test(def.name.name)) { + continue; + } + + // if "args" option is "after-used", skip used variables + if (config.args === "after-used" && astUtils.isFunction(def.name.parent) && !isAfterLastUsedArg(variable)) { + continue; + } + } else { + + // skip ignored variables + if (config.varsIgnorePattern && config.varsIgnorePattern.test(def.name.name)) { + continue; + } + } + } + + if (!isUsedVariable(variable) && !isExported(variable) && !hasRestSpreadSibling(variable)) { + unusedVars.push(variable); + } + } + } + + for (i = 0, l = childScopes.length; i < l; ++i) { + collectUnusedVariables(childScopes[i], unusedVars); + } + + return unusedVars; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + "Program:exit"(programNode) { + const unusedVars = collectUnusedVariables(context.getScope(), []); + + for (let i = 0, l = unusedVars.length; i < l; ++i) { + const unusedVar = unusedVars[i]; + + // Report the first declaration. + if (unusedVar.defs.length > 0) { + + // report last write reference, https://github.com/eslint/eslint/issues/14324 + const writeReferences = unusedVar.references.filter(ref => ref.isWrite() && ref.from.variableScope === unusedVar.scope.variableScope); + + let referenceToReport; + + if (writeReferences.length > 0) { + referenceToReport = writeReferences[writeReferences.length - 1]; + } + + context.report({ + node: referenceToReport ? referenceToReport.identifier : unusedVar.identifiers[0], + messageId: "unusedVar", + data: unusedVar.references.some(ref => ref.isWrite()) + ? getAssignedMessageData(unusedVar) + : getDefinedMessageData(unusedVar) + }); + + // If there are no regular declaration, report the first `/*globals*/` comment directive. + } else if (unusedVar.eslintExplicitGlobalComments) { + const directiveComment = unusedVar.eslintExplicitGlobalComments[0]; + + context.report({ + node: programNode, + loc: astUtils.getNameLocationInGlobalDirectiveComment(sourceCode, directiveComment, unusedVar.name), + messageId: "unusedVar", + data: getDefinedMessageData(unusedVar) + }); + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/no-use-before-define.js b/node_modules/eslint/lib/rules/no-use-before-define.js new file mode 100644 index 0000000..592c083 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-use-before-define.js @@ -0,0 +1,347 @@ +/** + * @fileoverview Rule to flag use of variables before they are defined + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SENTINEL_TYPE = /^(?:(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|CatchClause|ImportDeclaration|ExportNamedDeclaration)$/u; +const FOR_IN_OF_TYPE = /^For(?:In|Of)Statement$/u; + +/** + * Parses a given value as options. + * @param {any} options A value to parse. + * @returns {Object} The parsed options. + */ +function parseOptions(options) { + let functions = true; + let classes = true; + let variables = true; + let allowNamedExports = false; + + if (typeof options === "string") { + functions = (options !== "nofunc"); + } else if (typeof options === "object" && options !== null) { + functions = options.functions !== false; + classes = options.classes !== false; + variables = options.variables !== false; + allowNamedExports = !!options.allowNamedExports; + } + + return { functions, classes, variables, allowNamedExports }; +} + +/** + * Checks whether or not a given location is inside of the range of a given node. + * @param {ASTNode} node An node to check. + * @param {number} location A location to check. + * @returns {boolean} `true` if the location is inside of the range of the node. + */ +function isInRange(node, location) { + return node && node.range[0] <= location && location <= node.range[1]; +} + +/** + * Checks whether or not a given location is inside of the range of a class static initializer. + * Static initializers are static blocks and initializers of static fields. + * @param {ASTNode} node `ClassBody` node to check static initializers. + * @param {number} location A location to check. + * @returns {boolean} `true` if the location is inside of a class static initializer. + */ +function isInClassStaticInitializerRange(node, location) { + return node.body.some(classMember => ( + ( + classMember.type === "StaticBlock" && + isInRange(classMember, location) + ) || + ( + classMember.type === "PropertyDefinition" && + classMember.static && + classMember.value && + isInRange(classMember.value, location) + ) + )); +} + +/** + * Checks whether a given scope is the scope of a a class static initializer. + * Static initializers are static blocks and initializers of static fields. + * @param {eslint-scope.Scope} scope A scope to check. + * @returns {boolean} `true` if the scope is a class static initializer scope. + */ +function isClassStaticInitializerScope(scope) { + if (scope.type === "class-static-block") { + return true; + } + + if (scope.type === "class-field-initializer") { + + // `scope.block` is PropertyDefinition#value node + const propertyDefinition = scope.block.parent; + + return propertyDefinition.static; + } + + return false; +} + +/** + * Checks whether a given reference is evaluated in an execution context + * that isn't the one where the variable it refers to is defined. + * Execution contexts are: + * - top-level + * - functions + * - class field initializers (implicit functions) + * - class static blocks (implicit functions) + * Static class field initializers and class static blocks are automatically run during the class definition evaluation, + * and therefore we'll consider them as a part of the parent execution context. + * Example: + * + * const x = 1; + * + * x; // returns `false` + * () => x; // returns `true` + * + * class C { + * field = x; // returns `true` + * static field = x; // returns `false` + * + * method() { + * x; // returns `true` + * } + * + * static method() { + * x; // returns `true` + * } + * + * static { + * x; // returns `false` + * } + * } + * @param {eslint-scope.Reference} reference A reference to check. + * @returns {boolean} `true` if the reference is from a separate execution context. + */ +function isFromSeparateExecutionContext(reference) { + const variable = reference.resolved; + let scope = reference.from; + + // Scope#variableScope represents execution context + while (variable.scope.variableScope !== scope.variableScope) { + if (isClassStaticInitializerScope(scope.variableScope)) { + scope = scope.variableScope.upper; + } else { + return true; + } + } + + return false; +} + +/** + * Checks whether or not a given reference is evaluated during the initialization of its variable. + * + * This returns `true` in the following cases: + * + * var a = a + * var [a = a] = list + * var {a = a} = obj + * for (var a in a) {} + * for (var a of a) {} + * var C = class { [C]; }; + * var C = class { static foo = C; }; + * var C = class { static { foo = C; } }; + * class C extends C {} + * class C extends (class { static foo = C; }) {} + * class C { [C]; } + * @param {Reference} reference A reference to check. + * @returns {boolean} `true` if the reference is evaluated during the initialization. + */ +function isEvaluatedDuringInitialization(reference) { + if (isFromSeparateExecutionContext(reference)) { + + /* + * Even if the reference appears in the initializer, it isn't evaluated during the initialization. + * For example, `const x = () => x;` is valid. + */ + return false; + } + + const location = reference.identifier.range[1]; + const definition = reference.resolved.defs[0]; + + if (definition.type === "ClassName") { + + // `ClassDeclaration` or `ClassExpression` + const classDefinition = definition.node; + + return ( + isInRange(classDefinition, location) && + + /* + * Class binding is initialized before running static initializers. + * For example, `class C { static foo = C; static { bar = C; } }` is valid. + */ + !isInClassStaticInitializerRange(classDefinition.body, location) + ); + } + + let node = definition.name.parent; + + while (node) { + if (node.type === "VariableDeclarator") { + if (isInRange(node.init, location)) { + return true; + } + if (FOR_IN_OF_TYPE.test(node.parent.parent.type) && + isInRange(node.parent.parent.right, location) + ) { + return true; + } + break; + } else if (node.type === "AssignmentPattern") { + if (isInRange(node.right, location)) { + return true; + } + } else if (SENTINEL_TYPE.test(node.type)) { + break; + } + + node = node.parent; + } + + return false; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow the use of variables before they are defined", + recommended: false, + url: "https://eslint.org/docs/rules/no-use-before-define" + }, + + schema: [ + { + oneOf: [ + { + enum: ["nofunc"] + }, + { + type: "object", + properties: { + functions: { type: "boolean" }, + classes: { type: "boolean" }, + variables: { type: "boolean" }, + allowNamedExports: { type: "boolean" } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + usedBeforeDefined: "'{{name}}' was used before it was defined." + } + }, + + create(context) { + const options = parseOptions(context.options[0]); + + /** + * Determines whether a given reference should be checked. + * + * Returns `false` if the reference is: + * - initialization's (e.g., `let a = 1`). + * - referring to an undefined variable (i.e., if it's an unresolved reference). + * - referring to a variable that is defined, but not in the given source code + * (e.g., global environment variable or `arguments` in functions). + * - allowed by options. + * @param {eslint-scope.Reference} reference The reference + * @returns {boolean} `true` if the reference should be checked + */ + function shouldCheck(reference) { + if (reference.init) { + return false; + } + + const { identifier } = reference; + + if ( + options.allowNamedExports && + identifier.parent.type === "ExportSpecifier" && + identifier.parent.local === identifier + ) { + return false; + } + + const variable = reference.resolved; + + if (!variable || variable.defs.length === 0) { + return false; + } + + const definitionType = variable.defs[0].type; + + if (!options.functions && definitionType === "FunctionName") { + return false; + } + + if ( + ( + !options.variables && definitionType === "Variable" || + !options.classes && definitionType === "ClassName" + ) && + + // don't skip checking the reference if it's in the same execution context, because of TDZ + isFromSeparateExecutionContext(reference) + ) { + return false; + } + + return true; + } + + /** + * Finds and validates all references in a given scope and its child scopes. + * @param {eslint-scope.Scope} scope The scope object. + * @returns {void} + */ + function checkReferencesInScope(scope) { + scope.references.filter(shouldCheck).forEach(reference => { + const variable = reference.resolved; + const definitionIdentifier = variable.defs[0].name; + + if ( + reference.identifier.range[1] < definitionIdentifier.range[1] || + isEvaluatedDuringInitialization(reference) + ) { + context.report({ + node: reference.identifier, + messageId: "usedBeforeDefined", + data: reference.identifier + }); + } + }); + + scope.childScopes.forEach(checkReferencesInScope); + } + + return { + Program() { + checkReferencesInScope(context.getScope()); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-backreference.js b/node_modules/eslint/lib/rules/no-useless-backreference.js new file mode 100644 index 0000000..f23535b --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-backreference.js @@ -0,0 +1,192 @@ +/** + * @fileoverview Rule to disallow useless backreferences in regular expressions + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { CALL, CONSTRUCT, ReferenceTracker, getStringIfConstant } = require("eslint-utils"); +const { RegExpParser, visitRegExpAST } = require("regexpp"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const parser = new RegExpParser(); + +/** + * Finds the path from the given `regexpp` AST node to the root node. + * @param {regexpp.Node} node Node. + * @returns {regexpp.Node[]} Array that starts with the given node and ends with the root node. + */ +function getPathToRoot(node) { + const path = []; + let current = node; + + do { + path.push(current); + current = current.parent; + } while (current); + + return path; +} + +/** + * Determines whether the given `regexpp` AST node is a lookaround node. + * @param {regexpp.Node} node Node. + * @returns {boolean} `true` if it is a lookaround node. + */ +function isLookaround(node) { + return node.type === "Assertion" && + (node.kind === "lookahead" || node.kind === "lookbehind"); +} + +/** + * Determines whether the given `regexpp` AST node is a negative lookaround node. + * @param {regexpp.Node} node Node. + * @returns {boolean} `true` if it is a negative lookaround node. + */ +function isNegativeLookaround(node) { + return isLookaround(node) && node.negate; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow useless backreferences in regular expressions", + recommended: true, + url: "https://eslint.org/docs/rules/no-useless-backreference" + }, + + schema: [], + + messages: { + nested: "Backreference '{{ bref }}' will be ignored. It references group '{{ group }}' from within that group.", + forward: "Backreference '{{ bref }}' will be ignored. It references group '{{ group }}' which appears later in the pattern.", + backward: "Backreference '{{ bref }}' will be ignored. It references group '{{ group }}' which appears before in the same lookbehind.", + disjunctive: "Backreference '{{ bref }}' will be ignored. It references group '{{ group }}' which is in another alternative.", + intoNegativeLookaround: "Backreference '{{ bref }}' will be ignored. It references group '{{ group }}' which is in a negative lookaround." + } + }, + + create(context) { + + /** + * Checks and reports useless backreferences in the given regular expression. + * @param {ASTNode} node Node that represents regular expression. A regex literal or RegExp constructor call. + * @param {string} pattern Regular expression pattern. + * @param {string} flags Regular expression flags. + * @returns {void} + */ + function checkRegex(node, pattern, flags) { + let regExpAST; + + try { + regExpAST = parser.parsePattern(pattern, 0, pattern.length, flags.includes("u")); + } catch { + + // Ignore regular expressions with syntax errors + return; + } + + visitRegExpAST(regExpAST, { + onBackreferenceEnter(bref) { + const group = bref.resolved, + brefPath = getPathToRoot(bref), + groupPath = getPathToRoot(group); + let messageId = null; + + if (brefPath.includes(group)) { + + // group is bref's ancestor => bref is nested ('nested reference') => group hasn't matched yet when bref starts to match. + messageId = "nested"; + } else { + + // Start from the root to find the lowest common ancestor. + let i = brefPath.length - 1, + j = groupPath.length - 1; + + do { + i--; + j--; + } while (brefPath[i] === groupPath[j]); + + const indexOfLowestCommonAncestor = j + 1, + groupCut = groupPath.slice(0, indexOfLowestCommonAncestor), + commonPath = groupPath.slice(indexOfLowestCommonAncestor), + lowestCommonLookaround = commonPath.find(isLookaround), + isMatchingBackward = lowestCommonLookaround && lowestCommonLookaround.kind === "lookbehind"; + + if (!isMatchingBackward && bref.end <= group.start) { + + // bref is left, group is right ('forward reference') => group hasn't matched yet when bref starts to match. + messageId = "forward"; + } else if (isMatchingBackward && group.end <= bref.start) { + + // the opposite of the previous when the regex is matching backward in a lookbehind context. + messageId = "backward"; + } else if (groupCut[groupCut.length - 1].type === "Alternative") { + + // group's and bref's ancestor nodes below the lowest common ancestor are sibling alternatives => they're disjunctive. + messageId = "disjunctive"; + } else if (groupCut.some(isNegativeLookaround)) { + + // group is in a negative lookaround which isn't bref's ancestor => group has already failed when bref starts to match. + messageId = "intoNegativeLookaround"; + } + } + + if (messageId) { + context.report({ + node, + messageId, + data: { + bref: bref.raw, + group: group.raw + } + }); + } + } + }); + } + + return { + "Literal[regex]"(node) { + const { pattern, flags } = node.regex; + + checkRegex(node, pattern, flags); + }, + Program() { + const scope = context.getScope(), + tracker = new ReferenceTracker(scope), + traceMap = { + RegExp: { + [CALL]: true, + [CONSTRUCT]: true + } + }; + + for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + const [patternNode, flagsNode] = node.arguments, + pattern = getStringIfConstant(patternNode, scope), + flags = getStringIfConstant(flagsNode, scope); + + if (typeof pattern === "string") { + checkRegex(node, pattern, flags || ""); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-call.js b/node_modules/eslint/lib/rules/no-useless-call.js new file mode 100644 index 0000000..2d3ae4e --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-call.js @@ -0,0 +1,90 @@ +/** + * @fileoverview A rule to disallow unnecessary `.call()` and `.apply()`. + * @author Toru Nagashima + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a node is a `.call()`/`.apply()`. + * @param {ASTNode} node A CallExpression node to check. + * @returns {boolean} Whether or not the node is a `.call()`/`.apply()`. + */ +function isCallOrNonVariadicApply(node) { + const callee = astUtils.skipChainExpression(node.callee); + + return ( + callee.type === "MemberExpression" && + callee.property.type === "Identifier" && + callee.computed === false && + ( + (callee.property.name === "call" && node.arguments.length >= 1) || + (callee.property.name === "apply" && node.arguments.length === 2 && node.arguments[1].type === "ArrayExpression") + ) + ); +} + + +/** + * Checks whether or not `thisArg` is not changed by `.call()`/`.apply()`. + * @param {ASTNode|null} expectedThis The node that is the owner of the applied function. + * @param {ASTNode} thisArg The node that is given to the first argument of the `.call()`/`.apply()`. + * @param {SourceCode} sourceCode The ESLint source code object. + * @returns {boolean} Whether or not `thisArg` is not changed by `.call()`/`.apply()`. + */ +function isValidThisArg(expectedThis, thisArg, sourceCode) { + if (!expectedThis) { + return astUtils.isNullOrUndefined(thisArg); + } + return astUtils.equalTokens(expectedThis, thisArg, sourceCode); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary calls to `.call()` and `.apply()`", + recommended: false, + url: "https://eslint.org/docs/rules/no-useless-call" + }, + + schema: [], + + messages: { + unnecessaryCall: "Unnecessary '.{{name}}()'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + CallExpression(node) { + if (!isCallOrNonVariadicApply(node)) { + return; + } + + const callee = astUtils.skipChainExpression(node.callee); + const applied = astUtils.skipChainExpression(callee.object); + const expectedThis = (applied.type === "MemberExpression") ? applied.object : null; + const thisArg = node.arguments[0]; + + if (isValidThisArg(expectedThis, thisArg, sourceCode)) { + context.report({ node, messageId: "unnecessaryCall", data: { name: callee.property.name } }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-catch.js b/node_modules/eslint/lib/rules/no-useless-catch.js new file mode 100644 index 0000000..36c356e --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-catch.js @@ -0,0 +1,57 @@ +/** + * @fileoverview Reports useless `catch` clauses that just rethrow their error. + * @author Teddy Katz + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary `catch` clauses", + recommended: true, + url: "https://eslint.org/docs/rules/no-useless-catch" + }, + + schema: [], + + messages: { + unnecessaryCatchClause: "Unnecessary catch clause.", + unnecessaryCatch: "Unnecessary try/catch wrapper." + } + }, + + create(context) { + return { + CatchClause(node) { + if ( + node.param && + node.param.type === "Identifier" && + node.body.body.length && + node.body.body[0].type === "ThrowStatement" && + node.body.body[0].argument.type === "Identifier" && + node.body.body[0].argument.name === node.param.name + ) { + if (node.parent.finalizer) { + context.report({ + node, + messageId: "unnecessaryCatchClause" + }); + } else { + context.report({ + node: node.parent, + messageId: "unnecessaryCatch" + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-computed-key.js b/node_modules/eslint/lib/rules/no-useless-computed-key.js new file mode 100644 index 0000000..f7f1217 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-computed-key.js @@ -0,0 +1,168 @@ +/** + * @fileoverview Rule to disallow unnecessary computed property keys in object literals + * @author Burak Yigit Kaya + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines whether the computed key syntax is unnecessarily used for the given node. + * In particular, it determines whether removing the square brackets and using the content between them + * directly as the key (e.g. ['foo'] -> 'foo') would produce valid syntax and preserve the same behavior. + * Valid non-computed keys are only: identifiers, number literals and string literals. + * Only literals can preserve the same behavior, with a few exceptions for specific node types: + * Property + * - { ["__proto__"]: foo } defines a property named "__proto__" + * { "__proto__": foo } defines object's prototype + * PropertyDefinition + * - class C { ["constructor"]; } defines an instance field named "constructor" + * class C { "constructor"; } produces a parsing error + * - class C { static ["constructor"]; } defines a static field named "constructor" + * class C { static "constructor"; } produces a parsing error + * - class C { static ["prototype"]; } produces a runtime error (doesn't break the whole script) + * class C { static "prototype"; } produces a parsing error (breaks the whole script) + * MethodDefinition + * - class C { ["constructor"]() {} } defines a prototype method named "constructor" + * class C { "constructor"() {} } defines the constructor + * - class C { static ["prototype"]() {} } produces a runtime error (doesn't break the whole script) + * class C { static "prototype"() {} } produces a parsing error (breaks the whole script) + * @param {ASTNode} node The node to check. It can be `Property`, `PropertyDefinition` or `MethodDefinition`. + * @throws {Error} (Unreachable.) + * @returns {void} `true` if the node has useless computed key. + */ +function hasUselessComputedKey(node) { + if (!node.computed) { + return false; + } + + const { key } = node; + + if (key.type !== "Literal") { + return false; + } + + const { value } = key; + + if (typeof value !== "number" && typeof value !== "string") { + return false; + } + + switch (node.type) { + case "Property": + return value !== "__proto__"; + + case "PropertyDefinition": + if (node.static) { + return value !== "constructor" && value !== "prototype"; + } + + return value !== "constructor"; + + case "MethodDefinition": + if (node.static) { + return value !== "prototype"; + } + + return value !== "constructor"; + + /* c8 ignore next */ + default: + throw new Error(`Unexpected node type: ${node.type}`); + } + +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary computed property keys in objects and classes", + recommended: false, + url: "https://eslint.org/docs/rules/no-useless-computed-key" + }, + + schema: [{ + type: "object", + properties: { + enforceForClassMembers: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + fixable: "code", + + messages: { + unnecessarilyComputedProperty: "Unnecessarily computed property [{{property}}] found." + } + }, + create(context) { + const sourceCode = context.getSourceCode(); + const enforceForClassMembers = context.options[0] && context.options[0].enforceForClassMembers; + + /** + * Reports a given node if it violated this rule. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function check(node) { + if (hasUselessComputedKey(node)) { + const { key } = node; + + context.report({ + node, + messageId: "unnecessarilyComputedProperty", + data: { property: sourceCode.getText(key) }, + fix(fixer) { + const leftSquareBracket = sourceCode.getTokenBefore(key, astUtils.isOpeningBracketToken); + const rightSquareBracket = sourceCode.getTokenAfter(key, astUtils.isClosingBracketToken); + + // If there are comments between the brackets and the property name, don't do a fix. + if (sourceCode.commentsExistBetween(leftSquareBracket, rightSquareBracket)) { + return null; + } + + const tokenBeforeLeftBracket = sourceCode.getTokenBefore(leftSquareBracket); + + // Insert a space before the key to avoid changing identifiers, e.g. ({ get[2]() {} }) to ({ get2() {} }) + const needsSpaceBeforeKey = tokenBeforeLeftBracket.range[1] === leftSquareBracket.range[0] && + !astUtils.canTokensBeAdjacent(tokenBeforeLeftBracket, sourceCode.getFirstToken(key)); + + const replacementKey = (needsSpaceBeforeKey ? " " : "") + key.raw; + + return fixer.replaceTextRange([leftSquareBracket.range[0], rightSquareBracket.range[1]], replacementKey); + } + }); + } + } + + /** + * A no-op function to act as placeholder for checking a node when the `enforceForClassMembers` option is `false`. + * @returns {void} + * @private + */ + function noop() {} + + return { + Property: check, + MethodDefinition: enforceForClassMembers ? check : noop, + PropertyDefinition: enforceForClassMembers ? check : noop + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-concat.js b/node_modules/eslint/lib/rules/no-useless-concat.js new file mode 100644 index 0000000..26c5206 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-concat.js @@ -0,0 +1,115 @@ +/** + * @fileoverview disallow unnecessary concatenation of template strings + * @author Henry Zhu + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given node is a concatenation. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is a concatenation. + */ +function isConcatenation(node) { + return node.type === "BinaryExpression" && node.operator === "+"; +} + +/** + * Checks if the given token is a `+` token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a `+` token. + */ +function isConcatOperatorToken(token) { + return token.value === "+" && token.type === "Punctuator"; +} + +/** + * Get's the right most node on the left side of a BinaryExpression with + operator. + * @param {ASTNode} node A BinaryExpression node to check. + * @returns {ASTNode} node + */ +function getLeft(node) { + let left = node.left; + + while (isConcatenation(left)) { + left = left.right; + } + return left; +} + +/** + * Get's the left most node on the right side of a BinaryExpression with + operator. + * @param {ASTNode} node A BinaryExpression node to check. + * @returns {ASTNode} node + */ +function getRight(node) { + let right = node.right; + + while (isConcatenation(right)) { + right = right.left; + } + return right; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary concatenation of literals or template literals", + recommended: false, + url: "https://eslint.org/docs/rules/no-useless-concat" + }, + + schema: [], + + messages: { + unexpectedConcat: "Unexpected string concatenation of literals." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + BinaryExpression(node) { + + // check if not concatenation + if (node.operator !== "+") { + return; + } + + // account for the `foo + "a" + "b"` case + const left = getLeft(node); + const right = getRight(node); + + if (astUtils.isStringLiteral(left) && + astUtils.isStringLiteral(right) && + astUtils.isTokenOnSameLine(left, right) + ) { + const operatorToken = sourceCode.getFirstTokenBetween(left, right, isConcatOperatorToken); + + context.report({ + node, + loc: operatorToken.loc, + messageId: "unexpectedConcat" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-constructor.js b/node_modules/eslint/lib/rules/no-useless-constructor.js new file mode 100644 index 0000000..38c3bc3 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-constructor.js @@ -0,0 +1,189 @@ +/** + * @fileoverview Rule to flag the use of redundant constructors in classes. + * @author Alberto Rodríguez + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether a given array of statements is a single call of `super`. + * @param {ASTNode[]} body An array of statements to check. + * @returns {boolean} `true` if the body is a single call of `super`. + */ +function isSingleSuperCall(body) { + return ( + body.length === 1 && + body[0].type === "ExpressionStatement" && + body[0].expression.type === "CallExpression" && + body[0].expression.callee.type === "Super" + ); +} + +/** + * Checks whether a given node is a pattern which doesn't have any side effects. + * Default parameters and Destructuring parameters can have side effects. + * @param {ASTNode} node A pattern node. + * @returns {boolean} `true` if the node doesn't have any side effects. + */ +function isSimple(node) { + return node.type === "Identifier" || node.type === "RestElement"; +} + +/** + * Checks whether a given array of expressions is `...arguments` or not. + * `super(...arguments)` passes all arguments through. + * @param {ASTNode[]} superArgs An array of expressions to check. + * @returns {boolean} `true` if the superArgs is `...arguments`. + */ +function isSpreadArguments(superArgs) { + return ( + superArgs.length === 1 && + superArgs[0].type === "SpreadElement" && + superArgs[0].argument.type === "Identifier" && + superArgs[0].argument.name === "arguments" + ); +} + +/** + * Checks whether given 2 nodes are identifiers which have the same name or not. + * @param {ASTNode} ctorParam A node to check. + * @param {ASTNode} superArg A node to check. + * @returns {boolean} `true` if the nodes are identifiers which have the same + * name. + */ +function isValidIdentifierPair(ctorParam, superArg) { + return ( + ctorParam.type === "Identifier" && + superArg.type === "Identifier" && + ctorParam.name === superArg.name + ); +} + +/** + * Checks whether given 2 nodes are a rest/spread pair which has the same values. + * @param {ASTNode} ctorParam A node to check. + * @param {ASTNode} superArg A node to check. + * @returns {boolean} `true` if the nodes are a rest/spread pair which has the + * same values. + */ +function isValidRestSpreadPair(ctorParam, superArg) { + return ( + ctorParam.type === "RestElement" && + superArg.type === "SpreadElement" && + isValidIdentifierPair(ctorParam.argument, superArg.argument) + ); +} + +/** + * Checks whether given 2 nodes have the same value or not. + * @param {ASTNode} ctorParam A node to check. + * @param {ASTNode} superArg A node to check. + * @returns {boolean} `true` if the nodes have the same value or not. + */ +function isValidPair(ctorParam, superArg) { + return ( + isValidIdentifierPair(ctorParam, superArg) || + isValidRestSpreadPair(ctorParam, superArg) + ); +} + +/** + * Checks whether the parameters of a constructor and the arguments of `super()` + * have the same values or not. + * @param {ASTNode} ctorParams The parameters of a constructor to check. + * @param {ASTNode} superArgs The arguments of `super()` to check. + * @returns {boolean} `true` if those have the same values. + */ +function isPassingThrough(ctorParams, superArgs) { + if (ctorParams.length !== superArgs.length) { + return false; + } + + for (let i = 0; i < ctorParams.length; ++i) { + if (!isValidPair(ctorParams[i], superArgs[i])) { + return false; + } + } + + return true; +} + +/** + * Checks whether the constructor body is a redundant super call. + * @param {Array} body constructor body content. + * @param {Array} ctorParams The params to check against super call. + * @returns {boolean} true if the constructor body is redundant + */ +function isRedundantSuperCall(body, ctorParams) { + return ( + isSingleSuperCall(body) && + ctorParams.every(isSimple) && + ( + isSpreadArguments(body[0].expression.arguments) || + isPassingThrough(ctorParams, body[0].expression.arguments) + ) + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary constructors", + recommended: false, + url: "https://eslint.org/docs/rules/no-useless-constructor" + }, + + schema: [], + + messages: { + noUselessConstructor: "Useless constructor." + } + }, + + create(context) { + + /** + * Checks whether a node is a redundant constructor + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkForConstructor(node) { + if (node.kind !== "constructor") { + return; + } + + /* + * Prevent crashing on parsers which do not require class constructor + * to have a body, e.g. typescript and flow + */ + if (!node.value.body) { + return; + } + + const body = node.value.body.body; + const ctorParams = node.value.params; + const superClass = node.parent.parent.superClass; + + if (superClass ? isRedundantSuperCall(body, ctorParams) : (body.length === 0)) { + context.report({ + node, + messageId: "noUselessConstructor" + }); + } + } + + return { + MethodDefinition: checkForConstructor + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-escape.js b/node_modules/eslint/lib/rules/no-useless-escape.js new file mode 100644 index 0000000..2046a14 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-escape.js @@ -0,0 +1,254 @@ +/** + * @fileoverview Look for useless escapes in strings and regexes + * @author Onur Temizkan + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** + * Returns the union of two sets. + * @param {Set} setA The first set + * @param {Set} setB The second set + * @returns {Set} The union of the two sets + */ +function union(setA, setB) { + return new Set(function *() { + yield* setA; + yield* setB; + }()); +} + +const VALID_STRING_ESCAPES = union(new Set("\\nrvtbfux"), astUtils.LINEBREAKS); +const REGEX_GENERAL_ESCAPES = new Set("\\bcdDfnpPrsStvwWxu0123456789]"); +const REGEX_NON_CHARCLASS_ESCAPES = union(REGEX_GENERAL_ESCAPES, new Set("^/.$*+?[{}|()Bk")); + +/** + * Parses a regular expression into a list of characters with character class info. + * @param {string} regExpText The raw text used to create the regular expression + * @returns {Object[]} A list of characters, each with info on escaping and whether they're in a character class. + * @example + * + * parseRegExp("a\\b[cd-]"); + * + * // returns: + * [ + * { text: "a", index: 0, escaped: false, inCharClass: false, startsCharClass: false, endsCharClass: false }, + * { text: "b", index: 2, escaped: true, inCharClass: false, startsCharClass: false, endsCharClass: false }, + * { text: "c", index: 4, escaped: false, inCharClass: true, startsCharClass: true, endsCharClass: false }, + * { text: "d", index: 5, escaped: false, inCharClass: true, startsCharClass: false, endsCharClass: false }, + * { text: "-", index: 6, escaped: false, inCharClass: true, startsCharClass: false, endsCharClass: false } + * ]; + * + */ +function parseRegExp(regExpText) { + const charList = []; + + regExpText.split("").reduce((state, char, index) => { + if (!state.escapeNextChar) { + if (char === "\\") { + return Object.assign(state, { escapeNextChar: true }); + } + if (char === "[" && !state.inCharClass) { + return Object.assign(state, { inCharClass: true, startingCharClass: true }); + } + if (char === "]" && state.inCharClass) { + if (charList.length && charList[charList.length - 1].inCharClass) { + charList[charList.length - 1].endsCharClass = true; + } + return Object.assign(state, { inCharClass: false, startingCharClass: false }); + } + } + charList.push({ + text: char, + index, + escaped: state.escapeNextChar, + inCharClass: state.inCharClass, + startsCharClass: state.startingCharClass, + endsCharClass: false + }); + return Object.assign(state, { escapeNextChar: false, startingCharClass: false }); + }, { escapeNextChar: false, inCharClass: false, startingCharClass: false }); + + return charList; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow unnecessary escape characters", + recommended: true, + url: "https://eslint.org/docs/rules/no-useless-escape" + }, + + hasSuggestions: true, + + messages: { + unnecessaryEscape: "Unnecessary escape character: \\{{character}}.", + removeEscape: "Remove the `\\`. This maintains the current functionality.", + escapeBackslash: "Replace the `\\` with `\\\\` to include the actual backslash character." + }, + + schema: [] + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Reports a node + * @param {ASTNode} node The node to report + * @param {number} startOffset The backslash's offset from the start of the node + * @param {string} character The uselessly escaped character (not including the backslash) + * @returns {void} + */ + function report(node, startOffset, character) { + const rangeStart = node.range[0] + startOffset; + const range = [rangeStart, rangeStart + 1]; + const start = sourceCode.getLocFromIndex(rangeStart); + + context.report({ + node, + loc: { + start, + end: { line: start.line, column: start.column + 1 } + }, + messageId: "unnecessaryEscape", + data: { character }, + suggest: [ + { + messageId: "removeEscape", + fix(fixer) { + return fixer.removeRange(range); + } + }, + { + messageId: "escapeBackslash", + fix(fixer) { + return fixer.insertTextBeforeRange(range, "\\"); + } + } + ] + }); + } + + /** + * Checks if the escape character in given string slice is unnecessary. + * @private + * @param {ASTNode} node node to validate. + * @param {string} match string slice to validate. + * @returns {void} + */ + function validateString(node, match) { + const isTemplateElement = node.type === "TemplateElement"; + const escapedChar = match[0][1]; + let isUnnecessaryEscape = !VALID_STRING_ESCAPES.has(escapedChar); + let isQuoteEscape; + + if (isTemplateElement) { + isQuoteEscape = escapedChar === "`"; + + if (escapedChar === "$") { + + // Warn if `\$` is not followed by `{` + isUnnecessaryEscape = match.input[match.index + 2] !== "{"; + } else if (escapedChar === "{") { + + /* + * Warn if `\{` is not preceded by `$`. If preceded by `$`, escaping + * is necessary and the rule should not warn. If preceded by `/$`, the rule + * will warn for the `/$` instead, as it is the first unnecessarily escaped character. + */ + isUnnecessaryEscape = match.input[match.index - 1] !== "$"; + } + } else { + isQuoteEscape = escapedChar === node.raw[0]; + } + + if (isUnnecessaryEscape && !isQuoteEscape) { + report(node, match.index, match[0].slice(1)); + } + } + + /** + * Checks if a node has an escape. + * @param {ASTNode} node node to check. + * @returns {void} + */ + function check(node) { + const isTemplateElement = node.type === "TemplateElement"; + + if ( + isTemplateElement && + node.parent && + node.parent.parent && + node.parent.parent.type === "TaggedTemplateExpression" && + node.parent === node.parent.parent.quasi + ) { + + // Don't report tagged template literals, because the backslash character is accessible to the tag function. + return; + } + + if (typeof node.value === "string" || isTemplateElement) { + + /* + * JSXAttribute doesn't have any escape sequence: https://facebook.github.io/jsx/. + * In addition, backticks are not supported by JSX yet: https://github.com/facebook/jsx/issues/25. + */ + if (node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement" || node.parent.type === "JSXFragment") { + return; + } + + const value = isTemplateElement ? sourceCode.getText(node) : node.raw; + const pattern = /\\[^\d]/gu; + let match; + + while ((match = pattern.exec(value))) { + validateString(node, match); + } + } else if (node.regex) { + parseRegExp(node.regex.pattern) + + /* + * The '-' character is a special case, because it's only valid to escape it if it's in a character + * class, and is not at either edge of the character class. To account for this, don't consider '-' + * characters to be valid in general, and filter out '-' characters that appear in the middle of a + * character class. + */ + .filter(charInfo => !(charInfo.text === "-" && charInfo.inCharClass && !charInfo.startsCharClass && !charInfo.endsCharClass)) + + /* + * The '^' character is also a special case; it must always be escaped outside of character classes, but + * it only needs to be escaped in character classes if it's at the beginning of the character class. To + * account for this, consider it to be a valid escape character outside of character classes, and filter + * out '^' characters that appear at the start of a character class. + */ + .filter(charInfo => !(charInfo.text === "^" && charInfo.startsCharClass)) + + // Filter out characters that aren't escaped. + .filter(charInfo => charInfo.escaped) + + // Filter out characters that are valid to escape, based on their position in the regular expression. + .filter(charInfo => !(charInfo.inCharClass ? REGEX_GENERAL_ESCAPES : REGEX_NON_CHARCLASS_ESCAPES).has(charInfo.text)) + + // Report all the remaining characters. + .forEach(charInfo => report(node, charInfo.index, charInfo.text)); + } + + } + + return { + Literal: check, + TemplateElement: check + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-rename.js b/node_modules/eslint/lib/rules/no-useless-rename.js new file mode 100644 index 0000000..908605f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-rename.js @@ -0,0 +1,172 @@ +/** + * @fileoverview Disallow renaming import, export, and destructured assignments to the same name. + * @author Kai Cataldo + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow renaming import, export, and destructured assignments to the same name", + recommended: false, + url: "https://eslint.org/docs/rules/no-useless-rename" + }, + + fixable: "code", + + schema: [ + { + type: "object", + properties: { + ignoreDestructuring: { type: "boolean", default: false }, + ignoreImport: { type: "boolean", default: false }, + ignoreExport: { type: "boolean", default: false } + }, + additionalProperties: false + } + ], + + messages: { + unnecessarilyRenamed: "{{type}} {{name}} unnecessarily renamed." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(), + options = context.options[0] || {}, + ignoreDestructuring = options.ignoreDestructuring === true, + ignoreImport = options.ignoreImport === true, + ignoreExport = options.ignoreExport === true; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Reports error for unnecessarily renamed assignments + * @param {ASTNode} node node to report + * @param {ASTNode} initial node with initial name value + * @param {string} type the type of the offending node + * @returns {void} + */ + function reportError(node, initial, type) { + const name = initial.type === "Identifier" ? initial.name : initial.value; + + return context.report({ + node, + messageId: "unnecessarilyRenamed", + data: { + name, + type + }, + fix(fixer) { + const replacementNode = node.type === "Property" ? node.value : node.local; + + if (sourceCode.getCommentsInside(node).length > sourceCode.getCommentsInside(replacementNode).length) { + return null; + } + + // Don't autofix code such as `({foo: (foo) = a} = obj);`, parens are not allowed in shorthand properties. + if ( + replacementNode.type === "AssignmentPattern" && + astUtils.isParenthesised(sourceCode, replacementNode.left) + ) { + return null; + } + + return fixer.replaceText(node, sourceCode.getText(replacementNode)); + } + }); + } + + /** + * Checks whether a destructured assignment is unnecessarily renamed + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkDestructured(node) { + if (ignoreDestructuring) { + return; + } + + for (const property of node.properties) { + + /** + * Properties using shorthand syntax and rest elements can not be renamed. + * If the property is computed, we have no idea if a rename is useless or not. + */ + if (property.type !== "Property" || property.shorthand || property.computed) { + continue; + } + + const key = (property.key.type === "Identifier" && property.key.name) || (property.key.type === "Literal" && property.key.value); + const renamedKey = property.value.type === "AssignmentPattern" ? property.value.left.name : property.value.name; + + if (key === renamedKey) { + reportError(property, property.key, "Destructuring assignment"); + } + } + } + + /** + * Checks whether an import is unnecessarily renamed + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkImport(node) { + if (ignoreImport) { + return; + } + + if ( + node.imported.range[0] !== node.local.range[0] && + astUtils.getModuleExportName(node.imported) === node.local.name + ) { + reportError(node, node.imported, "Import"); + } + } + + /** + * Checks whether an export is unnecessarily renamed + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkExport(node) { + if (ignoreExport) { + return; + } + + if ( + node.local.range[0] !== node.exported.range[0] && + astUtils.getModuleExportName(node.local) === astUtils.getModuleExportName(node.exported) + ) { + reportError(node, node.local, "Export"); + } + + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + ObjectPattern: checkDestructured, + ImportSpecifier: checkImport, + ExportSpecifier: checkExport + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-useless-return.js b/node_modules/eslint/lib/rules/no-useless-return.js new file mode 100644 index 0000000..be8d4df --- /dev/null +++ b/node_modules/eslint/lib/rules/no-useless-return.js @@ -0,0 +1,305 @@ +/** + * @fileoverview Disallow redundant return statements + * @author Teddy Katz + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"), + FixTracker = require("./utils/fix-tracker"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Removes the given element from the array. + * @param {Array} array The source array to remove. + * @param {any} element The target item to remove. + * @returns {void} + */ +function remove(array, element) { + const index = array.indexOf(element); + + if (index !== -1) { + array.splice(index, 1); + } +} + +/** + * Checks whether it can remove the given return statement or not. + * @param {ASTNode} node The return statement node to check. + * @returns {boolean} `true` if the node is removable. + */ +function isRemovable(node) { + return astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type); +} + +/** + * Checks whether the given return statement is in a `finally` block or not. + * @param {ASTNode} node The return statement node to check. + * @returns {boolean} `true` if the node is in a `finally` block. + */ +function isInFinally(node) { + for ( + let currentNode = node; + currentNode && currentNode.parent && !astUtils.isFunction(currentNode); + currentNode = currentNode.parent + ) { + if (currentNode.parent.type === "TryStatement" && currentNode.parent.finalizer === currentNode) { + return true; + } + } + + return false; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow redundant return statements", + recommended: false, + url: "https://eslint.org/docs/rules/no-useless-return" + }, + + fixable: "code", + schema: [], + + messages: { + unnecessaryReturn: "Unnecessary return statement." + } + }, + + create(context) { + const segmentInfoMap = new WeakMap(); + const usedUnreachableSegments = new WeakSet(); + const sourceCode = context.getSourceCode(); + let scopeInfo = null; + + /** + * Checks whether the given segment is terminated by a return statement or not. + * @param {CodePathSegment} segment The segment to check. + * @returns {boolean} `true` if the segment is terminated by a return statement, or if it's still a part of unreachable. + */ + function isReturned(segment) { + const info = segmentInfoMap.get(segment); + + return !info || info.returned; + } + + /** + * Collects useless return statements from the given previous segments. + * + * A previous segment may be an unreachable segment. + * In that case, the information object of the unreachable segment is not + * initialized because `onCodePathSegmentStart` event is not notified for + * unreachable segments. + * This goes to the previous segments of the unreachable segment recursively + * if the unreachable segment was generated by a return statement. Otherwise, + * this ignores the unreachable segment. + * + * This behavior would simulate code paths for the case that the return + * statement does not exist. + * @param {ASTNode[]} uselessReturns The collected return statements. + * @param {CodePathSegment[]} prevSegments The previous segments to traverse. + * @param {WeakSet} [providedTraversedSegments] A set of segments that have already been traversed in this call + * @returns {ASTNode[]} `uselessReturns`. + */ + function getUselessReturns(uselessReturns, prevSegments, providedTraversedSegments) { + const traversedSegments = providedTraversedSegments || new WeakSet(); + + for (const segment of prevSegments) { + if (!segment.reachable) { + if (!traversedSegments.has(segment)) { + traversedSegments.add(segment); + getUselessReturns( + uselessReturns, + segment.allPrevSegments.filter(isReturned), + traversedSegments + ); + } + continue; + } + + uselessReturns.push(...segmentInfoMap.get(segment).uselessReturns); + } + + return uselessReturns; + } + + /** + * Removes the return statements on the given segment from the useless return + * statement list. + * + * This segment may be an unreachable segment. + * In that case, the information object of the unreachable segment is not + * initialized because `onCodePathSegmentStart` event is not notified for + * unreachable segments. + * This goes to the previous segments of the unreachable segment recursively + * if the unreachable segment was generated by a return statement. Otherwise, + * this ignores the unreachable segment. + * + * This behavior would simulate code paths for the case that the return + * statement does not exist. + * @param {CodePathSegment} segment The segment to get return statements. + * @returns {void} + */ + function markReturnStatementsOnSegmentAsUsed(segment) { + if (!segment.reachable) { + usedUnreachableSegments.add(segment); + segment.allPrevSegments + .filter(isReturned) + .filter(prevSegment => !usedUnreachableSegments.has(prevSegment)) + .forEach(markReturnStatementsOnSegmentAsUsed); + return; + } + + const info = segmentInfoMap.get(segment); + + for (const node of info.uselessReturns) { + remove(scopeInfo.uselessReturns, node); + } + info.uselessReturns = []; + } + + /** + * Removes the return statements on the current segments from the useless + * return statement list. + * + * This function will be called at every statement except FunctionDeclaration, + * BlockStatement, and BreakStatement. + * + * - FunctionDeclarations are always executed whether it's returned or not. + * - BlockStatements do nothing. + * - BreakStatements go the next merely. + * @returns {void} + */ + function markReturnStatementsOnCurrentSegmentsAsUsed() { + scopeInfo + .codePath + .currentSegments + .forEach(markReturnStatementsOnSegmentAsUsed); + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + + // Makes and pushs a new scope information. + onCodePathStart(codePath) { + scopeInfo = { + upper: scopeInfo, + uselessReturns: [], + codePath + }; + }, + + // Reports useless return statements if exist. + onCodePathEnd() { + for (const node of scopeInfo.uselessReturns) { + context.report({ + node, + loc: node.loc, + messageId: "unnecessaryReturn", + fix(fixer) { + if (isRemovable(node) && !sourceCode.getCommentsInside(node).length) { + + /* + * Extend the replacement range to include the + * entire function to avoid conflicting with + * no-else-return. + * https://github.com/eslint/eslint/issues/8026 + */ + return new FixTracker(fixer, sourceCode) + .retainEnclosingFunction(node) + .remove(node); + } + return null; + } + }); + } + + scopeInfo = scopeInfo.upper; + }, + + /* + * Initializes segments. + * NOTE: This event is notified for only reachable segments. + */ + onCodePathSegmentStart(segment) { + const info = { + uselessReturns: getUselessReturns([], segment.allPrevSegments), + returned: false + }; + + // Stores the info. + segmentInfoMap.set(segment, info); + }, + + // Adds ReturnStatement node to check whether it's useless or not. + ReturnStatement(node) { + if (node.argument) { + markReturnStatementsOnCurrentSegmentsAsUsed(); + } + if ( + node.argument || + astUtils.isInLoop(node) || + isInFinally(node) || + + // Ignore `return` statements in unreachable places (https://github.com/eslint/eslint/issues/11647). + !scopeInfo.codePath.currentSegments.some(s => s.reachable) + ) { + return; + } + + for (const segment of scopeInfo.codePath.currentSegments) { + const info = segmentInfoMap.get(segment); + + if (info) { + info.uselessReturns.push(node); + info.returned = true; + } + } + scopeInfo.uselessReturns.push(node); + }, + + /* + * Registers for all statement nodes except FunctionDeclaration, BlockStatement, BreakStatement. + * Removes return statements of the current segments from the useless return statement list. + */ + ClassDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed, + ContinueStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + DebuggerStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + DoWhileStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + EmptyStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + ExpressionStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + ForInStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + ForOfStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + ForStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + IfStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + ImportDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed, + LabeledStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + SwitchStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + ThrowStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + TryStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + VariableDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed, + WhileStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + WithStatement: markReturnStatementsOnCurrentSegmentsAsUsed, + ExportNamedDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed, + ExportDefaultDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed, + ExportAllDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-var.js b/node_modules/eslint/lib/rules/no-var.js new file mode 100644 index 0000000..cfb64ef --- /dev/null +++ b/node_modules/eslint/lib/rules/no-var.js @@ -0,0 +1,334 @@ +/** + * @fileoverview Rule to check for the usage of var. + * @author Jamund Ferguson + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Check whether a given variable is a global variable or not. + * @param {eslint-scope.Variable} variable The variable to check. + * @returns {boolean} `true` if the variable is a global variable. + */ +function isGlobal(variable) { + return Boolean(variable.scope) && variable.scope.type === "global"; +} + +/** + * Finds the nearest function scope or global scope walking up the scope + * hierarchy. + * @param {eslint-scope.Scope} scope The scope to traverse. + * @returns {eslint-scope.Scope} a function scope or global scope containing the given + * scope. + */ +function getEnclosingFunctionScope(scope) { + let currentScope = scope; + + while (currentScope.type !== "function" && currentScope.type !== "global") { + currentScope = currentScope.upper; + } + return currentScope; +} + +/** + * Checks whether the given variable has any references from a more specific + * function expression (i.e. a closure). + * @param {eslint-scope.Variable} variable A variable to check. + * @returns {boolean} `true` if the variable is used from a closure. + */ +function isReferencedInClosure(variable) { + const enclosingFunctionScope = getEnclosingFunctionScope(variable.scope); + + return variable.references.some(reference => + getEnclosingFunctionScope(reference.from) !== enclosingFunctionScope); +} + +/** + * Checks whether the given node is the assignee of a loop. + * @param {ASTNode} node A VariableDeclaration node to check. + * @returns {boolean} `true` if the declaration is assigned as part of loop + * iteration. + */ +function isLoopAssignee(node) { + return (node.parent.type === "ForOfStatement" || node.parent.type === "ForInStatement") && + node === node.parent.left; +} + +/** + * Checks whether the given variable declaration is immediately initialized. + * @param {ASTNode} node A VariableDeclaration node to check. + * @returns {boolean} `true` if the declaration has an initializer. + */ +function isDeclarationInitialized(node) { + return node.declarations.every(declarator => declarator.init !== null); +} + +const SCOPE_NODE_TYPE = /^(?:Program|BlockStatement|SwitchStatement|ForStatement|ForInStatement|ForOfStatement)$/u; + +/** + * Gets the scope node which directly contains a given node. + * @param {ASTNode} node A node to get. This is a `VariableDeclaration` or + * an `Identifier`. + * @returns {ASTNode} A scope node. This is one of `Program`, `BlockStatement`, + * `SwitchStatement`, `ForStatement`, `ForInStatement`, and + * `ForOfStatement`. + */ +function getScopeNode(node) { + for (let currentNode = node; currentNode; currentNode = currentNode.parent) { + if (SCOPE_NODE_TYPE.test(currentNode.type)) { + return currentNode; + } + } + + /* c8 ignore next */ + return null; +} + +/** + * Checks whether a given variable is redeclared or not. + * @param {eslint-scope.Variable} variable A variable to check. + * @returns {boolean} `true` if the variable is redeclared. + */ +function isRedeclared(variable) { + return variable.defs.length >= 2; +} + +/** + * Checks whether a given variable is used from outside of the specified scope. + * @param {ASTNode} scopeNode A scope node to check. + * @returns {Function} The predicate function which checks whether a given + * variable is used from outside of the specified scope. + */ +function isUsedFromOutsideOf(scopeNode) { + + /** + * Checks whether a given reference is inside of the specified scope or not. + * @param {eslint-scope.Reference} reference A reference to check. + * @returns {boolean} `true` if the reference is inside of the specified + * scope. + */ + function isOutsideOfScope(reference) { + const scope = scopeNode.range; + const id = reference.identifier.range; + + return id[0] < scope[0] || id[1] > scope[1]; + } + + return function(variable) { + return variable.references.some(isOutsideOfScope); + }; +} + +/** + * Creates the predicate function which checks whether a variable has their references in TDZ. + * + * The predicate function would return `true`: + * + * - if a reference is before the declarator. E.g. (var a = b, b = 1;)(var {a = b, b} = {};) + * - if a reference is in the expression of their default value. E.g. (var {a = a} = {};) + * - if a reference is in the expression of their initializer. E.g. (var a = a;) + * @param {ASTNode} node The initializer node of VariableDeclarator. + * @returns {Function} The predicate function. + * @private + */ +function hasReferenceInTDZ(node) { + const initStart = node.range[0]; + const initEnd = node.range[1]; + + return variable => { + const id = variable.defs[0].name; + const idStart = id.range[0]; + const defaultValue = (id.parent.type === "AssignmentPattern" ? id.parent.right : null); + const defaultStart = defaultValue && defaultValue.range[0]; + const defaultEnd = defaultValue && defaultValue.range[1]; + + return variable.references.some(reference => { + const start = reference.identifier.range[0]; + const end = reference.identifier.range[1]; + + return !reference.init && ( + start < idStart || + (defaultValue !== null && start >= defaultStart && end <= defaultEnd) || + (start >= initStart && end <= initEnd) + ); + }); + }; +} + +/** + * Checks whether a given variable has name that is allowed for 'var' declarations, + * but disallowed for `let` declarations. + * @param {eslint-scope.Variable} variable The variable to check. + * @returns {boolean} `true` if the variable has a disallowed name. + */ +function hasNameDisallowedForLetDeclarations(variable) { + return variable.name === "let"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require `let` or `const` instead of `var`", + recommended: false, + url: "https://eslint.org/docs/rules/no-var" + }, + + schema: [], + fixable: "code", + + messages: { + unexpectedVar: "Unexpected var, use let or const instead." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Checks whether the variables which are defined by the given declarator node have their references in TDZ. + * @param {ASTNode} declarator The VariableDeclarator node to check. + * @returns {boolean} `true` if one of the variables which are defined by the given declarator node have their references in TDZ. + */ + function hasSelfReferenceInTDZ(declarator) { + if (!declarator.init) { + return false; + } + const variables = context.getDeclaredVariables(declarator); + + return variables.some(hasReferenceInTDZ(declarator.init)); + } + + /** + * Checks whether it can fix a given variable declaration or not. + * It cannot fix if the following cases: + * + * - A variable is a global variable. + * - A variable is declared on a SwitchCase node. + * - A variable is redeclared. + * - A variable is used from outside the scope. + * - A variable is used from a closure within a loop. + * - A variable might be used before it is assigned within a loop. + * - A variable might be used in TDZ. + * - A variable is declared in statement position (e.g. a single-line `IfStatement`) + * - A variable has name that is disallowed for `let` declarations. + * + * ## A variable is declared on a SwitchCase node. + * + * If this rule modifies 'var' declarations on a SwitchCase node, it + * would generate the warnings of 'no-case-declarations' rule. And the + * 'eslint:recommended' preset includes 'no-case-declarations' rule, so + * this rule doesn't modify those declarations. + * + * ## A variable is redeclared. + * + * The language spec disallows redeclarations of `let` declarations. + * Those variables would cause syntax errors. + * + * ## A variable is used from outside the scope. + * + * The language spec disallows accesses from outside of the scope for + * `let` declarations. Those variables would cause reference errors. + * + * ## A variable is used from a closure within a loop. + * + * A `var` declaration within a loop shares the same variable instance + * across all loop iterations, while a `let` declaration creates a new + * instance for each iteration. This means if a variable in a loop is + * referenced by any closure, changing it from `var` to `let` would + * change the behavior in a way that is generally unsafe. + * + * ## A variable might be used before it is assigned within a loop. + * + * Within a loop, a `let` declaration without an initializer will be + * initialized to null, while a `var` declaration will retain its value + * from the previous iteration, so it is only safe to change `var` to + * `let` if we can statically determine that the variable is always + * assigned a value before its first access in the loop body. To keep + * the implementation simple, we only convert `var` to `let` within + * loops when the variable is a loop assignee or the declaration has an + * initializer. + * @param {ASTNode} node A variable declaration node to check. + * @returns {boolean} `true` if it can fix the node. + */ + function canFix(node) { + const variables = context.getDeclaredVariables(node); + const scopeNode = getScopeNode(node); + + if (node.parent.type === "SwitchCase" || + node.declarations.some(hasSelfReferenceInTDZ) || + variables.some(isGlobal) || + variables.some(isRedeclared) || + variables.some(isUsedFromOutsideOf(scopeNode)) || + variables.some(hasNameDisallowedForLetDeclarations) + ) { + return false; + } + + if (astUtils.isInLoop(node)) { + if (variables.some(isReferencedInClosure)) { + return false; + } + if (!isLoopAssignee(node) && !isDeclarationInitialized(node)) { + return false; + } + } + + if ( + !isLoopAssignee(node) && + !(node.parent.type === "ForStatement" && node.parent.init === node) && + !astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type) + ) { + + // If the declaration is not in a block, e.g. `if (foo) var bar = 1;`, then it can't be fixed. + return false; + } + + return true; + } + + /** + * Reports a given variable declaration node. + * @param {ASTNode} node A variable declaration node to report. + * @returns {void} + */ + function report(node) { + context.report({ + node, + messageId: "unexpectedVar", + + fix(fixer) { + const varToken = sourceCode.getFirstToken(node, { filter: t => t.value === "var" }); + + return canFix(node) + ? fixer.replaceText(varToken, "let") + : null; + } + }); + } + + return { + "VariableDeclaration:exit"(node) { + if (node.kind === "var") { + report(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-void.js b/node_modules/eslint/lib/rules/no-void.js new file mode 100644 index 0000000..15c4730 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-void.js @@ -0,0 +1,64 @@ +/** + * @fileoverview Rule to disallow use of void operator. + * @author Mike Sidorov + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `void` operators", + recommended: false, + url: "https://eslint.org/docs/rules/no-void" + }, + + messages: { + noVoid: "Expected 'undefined' and instead saw 'void'." + }, + + schema: [ + { + type: "object", + properties: { + allowAsStatement: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ] + }, + + create(context) { + const allowAsStatement = + context.options[0] && context.options[0].allowAsStatement; + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + 'UnaryExpression[operator="void"]'(node) { + if ( + allowAsStatement && + node.parent && + node.parent.type === "ExpressionStatement" + ) { + return; + } + context.report({ + node, + messageId: "noVoid" + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-warning-comments.js b/node_modules/eslint/lib/rules/no-warning-comments.js new file mode 100644 index 0000000..9754f50 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-warning-comments.js @@ -0,0 +1,201 @@ +/** + * @fileoverview Rule that warns about used warning comments + * @author Alexander Schmidt + */ + +"use strict"; + +const escapeRegExp = require("escape-string-regexp"); +const astUtils = require("./utils/ast-utils"); + +const CHAR_LIMIT = 40; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow specified warning terms in comments", + recommended: false, + url: "https://eslint.org/docs/rules/no-warning-comments" + }, + + schema: [ + { + type: "object", + properties: { + terms: { + type: "array", + items: { + type: "string" + } + }, + location: { + enum: ["start", "anywhere"] + }, + decoration: { + type: "array", + items: { + type: "string", + pattern: "^\\S$" + }, + minItems: 1, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedComment: "Unexpected '{{matchedTerm}}' comment: '{{comment}}'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(), + configuration = context.options[0] || {}, + warningTerms = configuration.terms || ["todo", "fixme", "xxx"], + location = configuration.location || "start", + decoration = [...configuration.decoration || []].join(""), + selfConfigRegEx = /\bno-warning-comments\b/u; + + /** + * Convert a warning term into a RegExp which will match a comment containing that whole word in the specified + * location ("start" or "anywhere"). If the term starts or ends with non word characters, then the match will not + * require word boundaries on that side. + * @param {string} term A term to convert to a RegExp + * @returns {RegExp} The term converted to a RegExp + */ + function convertToRegExp(term) { + const escaped = escapeRegExp(term); + const escapedDecoration = escapeRegExp(decoration); + + /* + * When matching at the start, ignore leading whitespace, and + * there's no need to worry about word boundaries. + * + * These expressions for the prefix and suffix are designed as follows: + * ^ handles any terms at the beginning of a comment. + * e.g. terms ["TODO"] matches `//TODO something` + * $ handles any terms at the end of a comment + * e.g. terms ["TODO"] matches `// something TODO` + * \b handles terms preceded/followed by word boundary + * e.g. terms: ["!FIX", "FIX!"] matches `// FIX!something` or `// something!FIX` + * terms: ["FIX"] matches `// FIX!` or `// !FIX`, but not `// fixed or affix` + * + * For location start: + * [\s]* handles optional leading spaces + * e.g. terms ["TODO"] matches `// TODO something` + * [\s\*]* (where "\*" is the escaped string of decoration) + * handles optional leading spaces or decoration characters (for "start" location only) + * e.g. terms ["TODO"] matches `/**** TODO something ... ` + */ + const wordBoundary = "\\b"; + + let prefix = ""; + + if (location === "start") { + prefix = `^[\\s${escapedDecoration}]*`; + } else if (/^\w/u.test(term)) { + prefix = wordBoundary; + } + + const suffix = /\w$/u.test(term) ? wordBoundary : ""; + const flags = "iu"; // Case-insensitive with Unicode case folding. + + /* + * For location "start", the typical regex is: + * /^[\s]*ESCAPED_TERM\b/iu. + * Or if decoration characters are specified (e.g. "*"), then any of + * those characters may appear in any order at the start: + * /^[\s\*]*ESCAPED_TERM\b/iu. + * + * For location "anywhere" the typical regex is + * /\bESCAPED_TERM\b/iu + * + * If it starts or ends with non-word character, the prefix and suffix are empty, respectively. + */ + return new RegExp(`${prefix}${escaped}${suffix}`, flags); + } + + const warningRegExps = warningTerms.map(convertToRegExp); + + /** + * Checks the specified comment for matches of the configured warning terms and returns the matches. + * @param {string} comment The comment which is checked. + * @returns {Array} All matched warning terms for this comment. + */ + function commentContainsWarningTerm(comment) { + const matches = []; + + warningRegExps.forEach((regex, index) => { + if (regex.test(comment)) { + matches.push(warningTerms[index]); + } + }); + + return matches; + } + + /** + * Checks the specified node for matching warning comments and reports them. + * @param {ASTNode} node The AST node being checked. + * @returns {void} undefined. + */ + function checkComment(node) { + const comment = node.value; + + if ( + astUtils.isDirectiveComment(node) && + selfConfigRegEx.test(comment) + ) { + return; + } + + const matches = commentContainsWarningTerm(comment); + + matches.forEach(matchedTerm => { + let commentToDisplay = ""; + let truncated = false; + + for (const c of comment.trim().split(/\s+/u)) { + const tmp = commentToDisplay ? `${commentToDisplay} ${c}` : c; + + if (tmp.length <= CHAR_LIMIT) { + commentToDisplay = tmp; + } else { + truncated = true; + break; + } + } + + context.report({ + node, + messageId: "unexpectedComment", + data: { + matchedTerm, + comment: `${commentToDisplay}${ + truncated ? "..." : "" + }` + } + }); + }); + } + + return { + Program() { + const comments = sourceCode.getAllComments(); + + comments + .filter(token => token.type !== "Shebang") + .forEach(checkComment); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-whitespace-before-property.js b/node_modules/eslint/lib/rules/no-whitespace-before-property.js new file mode 100644 index 0000000..6732381 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-whitespace-before-property.js @@ -0,0 +1,113 @@ +/** + * @fileoverview Rule to disallow whitespace before properties + * @author Kai Cataldo + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Disallow whitespace before properties", + recommended: false, + url: "https://eslint.org/docs/rules/no-whitespace-before-property" + }, + + fixable: "whitespace", + schema: [], + + messages: { + unexpectedWhitespace: "Unexpected whitespace before property {{propName}}." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Reports whitespace before property token + * @param {ASTNode} node the node to report in the event of an error + * @param {Token} leftToken the left token + * @param {Token} rightToken the right token + * @returns {void} + * @private + */ + function reportError(node, leftToken, rightToken) { + context.report({ + node, + messageId: "unexpectedWhitespace", + data: { + propName: sourceCode.getText(node.property) + }, + fix(fixer) { + let replacementText = ""; + + if (!node.computed && !node.optional && astUtils.isDecimalInteger(node.object)) { + + /* + * If the object is a number literal, fixing it to something like 5.toString() would cause a SyntaxError. + * Don't fix this case. + */ + return null; + } + + // Don't fix if comments exist. + if (sourceCode.commentsExistBetween(leftToken, rightToken)) { + return null; + } + + if (node.optional) { + replacementText = "?."; + } else if (!node.computed) { + replacementText = "."; + } + + return fixer.replaceTextRange([leftToken.range[1], rightToken.range[0]], replacementText); + } + }); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + MemberExpression(node) { + let rightToken; + let leftToken; + + if (!astUtils.isTokenOnSameLine(node.object, node.property)) { + return; + } + + if (node.computed) { + rightToken = sourceCode.getTokenBefore(node.property, astUtils.isOpeningBracketToken); + leftToken = sourceCode.getTokenBefore(rightToken, node.optional ? 1 : 0); + } else { + rightToken = sourceCode.getFirstToken(node.property); + leftToken = sourceCode.getTokenBefore(rightToken, 1); + } + + if (sourceCode.isSpaceBetweenTokens(leftToken, rightToken)) { + reportError(node, leftToken, rightToken); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-with.js b/node_modules/eslint/lib/rules/no-with.js new file mode 100644 index 0000000..33de68d --- /dev/null +++ b/node_modules/eslint/lib/rules/no-with.js @@ -0,0 +1,39 @@ +/** + * @fileoverview Rule to flag use of with statement + * @author Nicholas C. Zakas + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `with` statements", + recommended: true, + url: "https://eslint.org/docs/rules/no-with" + }, + + schema: [], + + messages: { + unexpectedWith: "Unexpected use of 'with' statement." + } + }, + + create(context) { + + return { + WithStatement(node) { + context.report({ node, messageId: "unexpectedWith" }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/nonblock-statement-body-position.js b/node_modules/eslint/lib/rules/nonblock-statement-body-position.js new file mode 100644 index 0000000..cefecf3 --- /dev/null +++ b/node_modules/eslint/lib/rules/nonblock-statement-body-position.js @@ -0,0 +1,124 @@ +/** + * @fileoverview enforce the location of single-line statements + * @author Teddy Katz + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const POSITION_SCHEMA = { enum: ["beside", "below", "any"] }; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce the location of single-line statements", + recommended: false, + url: "https://eslint.org/docs/rules/nonblock-statement-body-position" + }, + + fixable: "whitespace", + + schema: [ + POSITION_SCHEMA, + { + properties: { + overrides: { + properties: { + if: POSITION_SCHEMA, + else: POSITION_SCHEMA, + while: POSITION_SCHEMA, + do: POSITION_SCHEMA, + for: POSITION_SCHEMA + }, + additionalProperties: false + } + }, + additionalProperties: false + } + ], + + messages: { + expectNoLinebreak: "Expected no linebreak before this statement.", + expectLinebreak: "Expected a linebreak before this statement." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + //---------------------------------------------------------------------- + // Helpers + //---------------------------------------------------------------------- + + /** + * Gets the applicable preference for a particular keyword + * @param {string} keywordName The name of a keyword, e.g. 'if' + * @returns {string} The applicable option for the keyword, e.g. 'beside' + */ + function getOption(keywordName) { + return context.options[1] && context.options[1].overrides && context.options[1].overrides[keywordName] || + context.options[0] || + "beside"; + } + + /** + * Validates the location of a single-line statement + * @param {ASTNode} node The single-line statement + * @param {string} keywordName The applicable keyword name for the single-line statement + * @returns {void} + */ + function validateStatement(node, keywordName) { + const option = getOption(keywordName); + + if (node.type === "BlockStatement" || option === "any") { + return; + } + + const tokenBefore = sourceCode.getTokenBefore(node); + + if (tokenBefore.loc.end.line === node.loc.start.line && option === "below") { + context.report({ + node, + messageId: "expectLinebreak", + fix: fixer => fixer.insertTextBefore(node, "\n") + }); + } else if (tokenBefore.loc.end.line !== node.loc.start.line && option === "beside") { + context.report({ + node, + messageId: "expectNoLinebreak", + fix(fixer) { + if (sourceCode.getText().slice(tokenBefore.range[1], node.range[0]).trim()) { + return null; + } + return fixer.replaceTextRange([tokenBefore.range[1], node.range[0]], " "); + } + }); + } + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + IfStatement(node) { + validateStatement(node.consequent, "if"); + + // Check the `else` node, but don't check 'else if' statements. + if (node.alternate && node.alternate.type !== "IfStatement") { + validateStatement(node.alternate, "else"); + } + }, + WhileStatement: node => validateStatement(node.body, "while"), + DoWhileStatement: node => validateStatement(node.body, "do"), + ForStatement: node => validateStatement(node.body, "for"), + ForInStatement: node => validateStatement(node.body, "for"), + ForOfStatement: node => validateStatement(node.body, "for") + }; + } +}; diff --git a/node_modules/eslint/lib/rules/object-curly-newline.js b/node_modules/eslint/lib/rules/object-curly-newline.js new file mode 100644 index 0000000..2f80049 --- /dev/null +++ b/node_modules/eslint/lib/rules/object-curly-newline.js @@ -0,0 +1,321 @@ +/** + * @fileoverview Rule to require or disallow line breaks inside braces. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +// Schema objects. +const OPTION_VALUE = { + oneOf: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + multiline: { + type: "boolean" + }, + minProperties: { + type: "integer", + minimum: 0 + }, + consistent: { + type: "boolean" + } + }, + additionalProperties: false, + minProperties: 1 + } + ] +}; + +/** + * Normalizes a given option value. + * @param {string|Object|undefined} value An option value to parse. + * @returns {{multiline: boolean, minProperties: number, consistent: boolean}} Normalized option object. + */ +function normalizeOptionValue(value) { + let multiline = false; + let minProperties = Number.POSITIVE_INFINITY; + let consistent = false; + + if (value) { + if (value === "always") { + minProperties = 0; + } else if (value === "never") { + minProperties = Number.POSITIVE_INFINITY; + } else { + multiline = Boolean(value.multiline); + minProperties = value.minProperties || Number.POSITIVE_INFINITY; + consistent = Boolean(value.consistent); + } + } else { + consistent = true; + } + + return { multiline, minProperties, consistent }; +} + +/** + * Checks if a value is an object. + * @param {any} value The value to check + * @returns {boolean} `true` if the value is an object, otherwise `false` + */ +function isObject(value) { + return typeof value === "object" && value !== null; +} + +/** + * Checks if an option is a node-specific option + * @param {any} option The option to check + * @returns {boolean} `true` if the option is node-specific, otherwise `false` + */ +function isNodeSpecificOption(option) { + return isObject(option) || typeof option === "string"; +} + +/** + * Normalizes a given option value. + * @param {string|Object|undefined} options An option value to parse. + * @returns {{ + * ObjectExpression: {multiline: boolean, minProperties: number, consistent: boolean}, + * ObjectPattern: {multiline: boolean, minProperties: number, consistent: boolean}, + * ImportDeclaration: {multiline: boolean, minProperties: number, consistent: boolean}, + * ExportNamedDeclaration : {multiline: boolean, minProperties: number, consistent: boolean} + * }} Normalized option object. + */ +function normalizeOptions(options) { + if (isObject(options) && Object.values(options).some(isNodeSpecificOption)) { + return { + ObjectExpression: normalizeOptionValue(options.ObjectExpression), + ObjectPattern: normalizeOptionValue(options.ObjectPattern), + ImportDeclaration: normalizeOptionValue(options.ImportDeclaration), + ExportNamedDeclaration: normalizeOptionValue(options.ExportDeclaration) + }; + } + + const value = normalizeOptionValue(options); + + return { ObjectExpression: value, ObjectPattern: value, ImportDeclaration: value, ExportNamedDeclaration: value }; +} + +/** + * Determines if ObjectExpression, ObjectPattern, ImportDeclaration or ExportNamedDeclaration + * node needs to be checked for missing line breaks + * @param {ASTNode} node Node under inspection + * @param {Object} options option specific to node type + * @param {Token} first First object property + * @param {Token} last Last object property + * @returns {boolean} `true` if node needs to be checked for missing line breaks + */ +function areLineBreaksRequired(node, options, first, last) { + let objectProperties; + + if (node.type === "ObjectExpression" || node.type === "ObjectPattern") { + objectProperties = node.properties; + } else { + + // is ImportDeclaration or ExportNamedDeclaration + objectProperties = node.specifiers + .filter(s => s.type === "ImportSpecifier" || s.type === "ExportSpecifier"); + } + + return objectProperties.length >= options.minProperties || + ( + options.multiline && + objectProperties.length > 0 && + first.loc.start.line !== last.loc.end.line + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent line breaks after opening and before closing braces", + recommended: false, + url: "https://eslint.org/docs/rules/object-curly-newline" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + OPTION_VALUE, + { + type: "object", + properties: { + ObjectExpression: OPTION_VALUE, + ObjectPattern: OPTION_VALUE, + ImportDeclaration: OPTION_VALUE, + ExportDeclaration: OPTION_VALUE + }, + additionalProperties: false, + minProperties: 1 + } + ] + } + ], + + messages: { + unexpectedLinebreakBeforeClosingBrace: "Unexpected line break before this closing brace.", + unexpectedLinebreakAfterOpeningBrace: "Unexpected line break after this opening brace.", + expectedLinebreakBeforeClosingBrace: "Expected a line break before this closing brace.", + expectedLinebreakAfterOpeningBrace: "Expected a line break after this opening brace." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const normalizedOptions = normalizeOptions(context.options[0]); + + /** + * Reports a given node if it violated this rule. + * @param {ASTNode} node A node to check. This is an ObjectExpression, ObjectPattern, ImportDeclaration or ExportNamedDeclaration node. + * @returns {void} + */ + function check(node) { + const options = normalizedOptions[node.type]; + + if ( + (node.type === "ImportDeclaration" && + !node.specifiers.some(specifier => specifier.type === "ImportSpecifier")) || + (node.type === "ExportNamedDeclaration" && + !node.specifiers.some(specifier => specifier.type === "ExportSpecifier")) + ) { + return; + } + + const openBrace = sourceCode.getFirstToken(node, token => token.value === "{"); + + let closeBrace; + + if (node.typeAnnotation) { + closeBrace = sourceCode.getTokenBefore(node.typeAnnotation); + } else { + closeBrace = sourceCode.getLastToken(node, token => token.value === "}"); + } + + let first = sourceCode.getTokenAfter(openBrace, { includeComments: true }); + let last = sourceCode.getTokenBefore(closeBrace, { includeComments: true }); + + const needsLineBreaks = areLineBreaksRequired(node, options, first, last); + + const hasCommentsFirstToken = astUtils.isCommentToken(first); + const hasCommentsLastToken = astUtils.isCommentToken(last); + + /* + * Use tokens or comments to check multiline or not. + * But use only tokens to check whether line breaks are needed. + * This allows: + * var obj = { // eslint-disable-line foo + * a: 1 + * } + */ + first = sourceCode.getTokenAfter(openBrace); + last = sourceCode.getTokenBefore(closeBrace); + + if (needsLineBreaks) { + if (astUtils.isTokenOnSameLine(openBrace, first)) { + context.report({ + messageId: "expectedLinebreakAfterOpeningBrace", + node, + loc: openBrace.loc, + fix(fixer) { + if (hasCommentsFirstToken) { + return null; + } + + return fixer.insertTextAfter(openBrace, "\n"); + } + }); + } + if (astUtils.isTokenOnSameLine(last, closeBrace)) { + context.report({ + messageId: "expectedLinebreakBeforeClosingBrace", + node, + loc: closeBrace.loc, + fix(fixer) { + if (hasCommentsLastToken) { + return null; + } + + return fixer.insertTextBefore(closeBrace, "\n"); + } + }); + } + } else { + const consistent = options.consistent; + const hasLineBreakBetweenOpenBraceAndFirst = !astUtils.isTokenOnSameLine(openBrace, first); + const hasLineBreakBetweenCloseBraceAndLast = !astUtils.isTokenOnSameLine(last, closeBrace); + + if ( + (!consistent && hasLineBreakBetweenOpenBraceAndFirst) || + (consistent && hasLineBreakBetweenOpenBraceAndFirst && !hasLineBreakBetweenCloseBraceAndLast) + ) { + context.report({ + messageId: "unexpectedLinebreakAfterOpeningBrace", + node, + loc: openBrace.loc, + fix(fixer) { + if (hasCommentsFirstToken) { + return null; + } + + return fixer.removeRange([ + openBrace.range[1], + first.range[0] + ]); + } + }); + } + if ( + (!consistent && hasLineBreakBetweenCloseBraceAndLast) || + (consistent && !hasLineBreakBetweenOpenBraceAndFirst && hasLineBreakBetweenCloseBraceAndLast) + ) { + context.report({ + messageId: "unexpectedLinebreakBeforeClosingBrace", + node, + loc: closeBrace.loc, + fix(fixer) { + if (hasCommentsLastToken) { + return null; + } + + return fixer.removeRange([ + last.range[1], + closeBrace.range[0] + ]); + } + }); + } + } + } + + return { + ObjectExpression: check, + ObjectPattern: check, + ImportDeclaration: check, + ExportNamedDeclaration: check + }; + } +}; diff --git a/node_modules/eslint/lib/rules/object-curly-spacing.js b/node_modules/eslint/lib/rules/object-curly-spacing.js new file mode 100644 index 0000000..d6a8e59 --- /dev/null +++ b/node_modules/eslint/lib/rules/object-curly-spacing.js @@ -0,0 +1,308 @@ +/** + * @fileoverview Disallows or enforces spaces inside of object literals. + * @author Jamund Ferguson + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing inside braces", + recommended: false, + url: "https://eslint.org/docs/rules/object-curly-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + arraysInObjects: { + type: "boolean" + }, + objectsInObjects: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + + messages: { + requireSpaceBefore: "A space is required before '{{token}}'.", + requireSpaceAfter: "A space is required after '{{token}}'.", + unexpectedSpaceBefore: "There should be no space before '{{token}}'.", + unexpectedSpaceAfter: "There should be no space after '{{token}}'." + } + }, + + create(context) { + const spaced = context.options[0] === "always", + sourceCode = context.getSourceCode(); + + /** + * Determines whether an option is set, relative to the spacing option. + * If spaced is "always", then check whether option is set to false. + * If spaced is "never", then check whether option is set to true. + * @param {Object} option The option to exclude. + * @returns {boolean} Whether or not the property is excluded. + */ + function isOptionSet(option) { + return context.options[1] ? context.options[1][option] === !spaced : false; + } + + const options = { + spaced, + arraysInObjectsException: isOptionSet("arraysInObjects"), + objectsInObjectsException: isOptionSet("objectsInObjects") + }; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Reports that there shouldn't be a space after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportNoBeginningSpace(node, token) { + const nextToken = context.getSourceCode().getTokenAfter(token, { includeComments: true }); + + context.report({ + node, + loc: { start: token.loc.end, end: nextToken.loc.start }, + messageId: "unexpectedSpaceAfter", + data: { + token: token.value + }, + fix(fixer) { + return fixer.removeRange([token.range[1], nextToken.range[0]]); + } + }); + } + + /** + * Reports that there shouldn't be a space before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportNoEndingSpace(node, token) { + const previousToken = context.getSourceCode().getTokenBefore(token, { includeComments: true }); + + context.report({ + node, + loc: { start: previousToken.loc.end, end: token.loc.start }, + messageId: "unexpectedSpaceBefore", + data: { + token: token.value + }, + fix(fixer) { + return fixer.removeRange([previousToken.range[1], token.range[0]]); + } + }); + } + + /** + * Reports that there should be a space after the first token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredBeginningSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "requireSpaceAfter", + data: { + token: token.value + }, + fix(fixer) { + return fixer.insertTextAfter(token, " "); + } + }); + } + + /** + * Reports that there should be a space before the last token + * @param {ASTNode} node The node to report in the event of an error. + * @param {Token} token The token to use for the report. + * @returns {void} + */ + function reportRequiredEndingSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: "requireSpaceBefore", + data: { + token: token.value + }, + fix(fixer) { + return fixer.insertTextBefore(token, " "); + } + }); + } + + /** + * Determines if spacing in curly braces is valid. + * @param {ASTNode} node The AST node to check. + * @param {Token} first The first token to check (should be the opening brace) + * @param {Token} second The second token to check (should be first after the opening brace) + * @param {Token} penultimate The penultimate token to check (should be last before closing brace) + * @param {Token} last The last token to check (should be closing brace) + * @returns {void} + */ + function validateBraceSpacing(node, first, second, penultimate, last) { + if (astUtils.isTokenOnSameLine(first, second)) { + const firstSpaced = sourceCode.isSpaceBetweenTokens(first, second); + + if (options.spaced && !firstSpaced) { + reportRequiredBeginningSpace(node, first); + } + if (!options.spaced && firstSpaced && second.type !== "Line") { + reportNoBeginningSpace(node, first); + } + } + + if (astUtils.isTokenOnSameLine(penultimate, last)) { + const shouldCheckPenultimate = ( + options.arraysInObjectsException && astUtils.isClosingBracketToken(penultimate) || + options.objectsInObjectsException && astUtils.isClosingBraceToken(penultimate) + ); + const penultimateType = shouldCheckPenultimate && sourceCode.getNodeByRangeIndex(penultimate.range[0]).type; + + const closingCurlyBraceMustBeSpaced = ( + options.arraysInObjectsException && penultimateType === "ArrayExpression" || + options.objectsInObjectsException && (penultimateType === "ObjectExpression" || penultimateType === "ObjectPattern") + ) ? !options.spaced : options.spaced; + + const lastSpaced = sourceCode.isSpaceBetweenTokens(penultimate, last); + + if (closingCurlyBraceMustBeSpaced && !lastSpaced) { + reportRequiredEndingSpace(node, last); + } + if (!closingCurlyBraceMustBeSpaced && lastSpaced) { + reportNoEndingSpace(node, last); + } + } + } + + /** + * Gets '}' token of an object node. + * + * Because the last token of object patterns might be a type annotation, + * this traverses tokens preceded by the last property, then returns the + * first '}' token. + * @param {ASTNode} node The node to get. This node is an + * ObjectExpression or an ObjectPattern. And this node has one or + * more properties. + * @returns {Token} '}' token. + */ + function getClosingBraceOfObject(node) { + const lastProperty = node.properties[node.properties.length - 1]; + + return sourceCode.getTokenAfter(lastProperty, astUtils.isClosingBraceToken); + } + + /** + * Reports a given object node if spacing in curly braces is invalid. + * @param {ASTNode} node An ObjectExpression or ObjectPattern node to check. + * @returns {void} + */ + function checkForObject(node) { + if (node.properties.length === 0) { + return; + } + + const first = sourceCode.getFirstToken(node), + last = getClosingBraceOfObject(node), + second = sourceCode.getTokenAfter(first, { includeComments: true }), + penultimate = sourceCode.getTokenBefore(last, { includeComments: true }); + + validateBraceSpacing(node, first, second, penultimate, last); + } + + /** + * Reports a given import node if spacing in curly braces is invalid. + * @param {ASTNode} node An ImportDeclaration node to check. + * @returns {void} + */ + function checkForImport(node) { + if (node.specifiers.length === 0) { + return; + } + + let firstSpecifier = node.specifiers[0]; + const lastSpecifier = node.specifiers[node.specifiers.length - 1]; + + if (lastSpecifier.type !== "ImportSpecifier") { + return; + } + if (firstSpecifier.type !== "ImportSpecifier") { + firstSpecifier = node.specifiers[1]; + } + + const first = sourceCode.getTokenBefore(firstSpecifier), + last = sourceCode.getTokenAfter(lastSpecifier, astUtils.isNotCommaToken), + second = sourceCode.getTokenAfter(first, { includeComments: true }), + penultimate = sourceCode.getTokenBefore(last, { includeComments: true }); + + validateBraceSpacing(node, first, second, penultimate, last); + } + + /** + * Reports a given export node if spacing in curly braces is invalid. + * @param {ASTNode} node An ExportNamedDeclaration node to check. + * @returns {void} + */ + function checkForExport(node) { + if (node.specifiers.length === 0) { + return; + } + + const firstSpecifier = node.specifiers[0], + lastSpecifier = node.specifiers[node.specifiers.length - 1], + first = sourceCode.getTokenBefore(firstSpecifier), + last = sourceCode.getTokenAfter(lastSpecifier, astUtils.isNotCommaToken), + second = sourceCode.getTokenAfter(first, { includeComments: true }), + penultimate = sourceCode.getTokenBefore(last, { includeComments: true }); + + validateBraceSpacing(node, first, second, penultimate, last); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + // var {x} = y; + ObjectPattern: checkForObject, + + // var y = {x: 'y'} + ObjectExpression: checkForObject, + + // import {y} from 'x'; + ImportDeclaration: checkForImport, + + // export {name} from 'yo'; + ExportNamedDeclaration: checkForExport + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/object-property-newline.js b/node_modules/eslint/lib/rules/object-property-newline.js new file mode 100644 index 0000000..bc079a1 --- /dev/null +++ b/node_modules/eslint/lib/rules/object-property-newline.js @@ -0,0 +1,99 @@ +/** + * @fileoverview Rule to enforce placing object properties on separate lines. + * @author Vitor Balocco + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce placing object properties on separate lines", + recommended: false, + url: "https://eslint.org/docs/rules/object-property-newline" + }, + + schema: [ + { + type: "object", + properties: { + allowAllPropertiesOnSameLine: { + type: "boolean", + default: false + }, + allowMultiplePropertiesPerLine: { // Deprecated + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + fixable: "whitespace", + + messages: { + propertiesOnNewlineAll: "Object properties must go on a new line if they aren't all on the same line.", + propertiesOnNewline: "Object properties must go on a new line." + } + }, + + create(context) { + const allowSameLine = context.options[0] && ( + (context.options[0].allowAllPropertiesOnSameLine || context.options[0].allowMultiplePropertiesPerLine /* Deprecated */) + ); + const messageId = allowSameLine + ? "propertiesOnNewlineAll" + : "propertiesOnNewline"; + + const sourceCode = context.getSourceCode(); + + return { + ObjectExpression(node) { + if (allowSameLine) { + if (node.properties.length > 1) { + const firstTokenOfFirstProperty = sourceCode.getFirstToken(node.properties[0]); + const lastTokenOfLastProperty = sourceCode.getLastToken(node.properties[node.properties.length - 1]); + + if (firstTokenOfFirstProperty.loc.end.line === lastTokenOfLastProperty.loc.start.line) { + + // All keys and values are on the same line + return; + } + } + } + + for (let i = 1; i < node.properties.length; i++) { + const lastTokenOfPreviousProperty = sourceCode.getLastToken(node.properties[i - 1]); + const firstTokenOfCurrentProperty = sourceCode.getFirstToken(node.properties[i]); + + if (lastTokenOfPreviousProperty.loc.end.line === firstTokenOfCurrentProperty.loc.start.line) { + context.report({ + node, + loc: firstTokenOfCurrentProperty.loc, + messageId, + fix(fixer) { + const comma = sourceCode.getTokenBefore(firstTokenOfCurrentProperty); + const rangeAfterComma = [comma.range[1], firstTokenOfCurrentProperty.range[0]]; + + // Don't perform a fix if there are any comments between the comma and the next property. + if (sourceCode.text.slice(rangeAfterComma[0], rangeAfterComma[1]).trim()) { + return null; + } + + return fixer.replaceTextRange(rangeAfterComma, "\n"); + } + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/object-shorthand.js b/node_modules/eslint/lib/rules/object-shorthand.js new file mode 100644 index 0000000..b755aea --- /dev/null +++ b/node_modules/eslint/lib/rules/object-shorthand.js @@ -0,0 +1,519 @@ +/** + * @fileoverview Rule to enforce concise object methods and properties. + * @author Jamund Ferguson + */ + +"use strict"; + +const OPTIONS = { + always: "always", + never: "never", + methods: "methods", + properties: "properties", + consistent: "consistent", + consistentAsNeeded: "consistent-as-needed" +}; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require or disallow method and property shorthand syntax for object literals", + recommended: false, + url: "https://eslint.org/docs/rules/object-shorthand" + }, + + fixable: "code", + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["always", "methods", "properties", "never", "consistent", "consistent-as-needed"] + } + ], + minItems: 0, + maxItems: 1 + }, + { + type: "array", + items: [ + { + enum: ["always", "methods", "properties"] + }, + { + type: "object", + properties: { + avoidQuotes: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + }, + { + type: "array", + items: [ + { + enum: ["always", "methods"] + }, + { + type: "object", + properties: { + ignoreConstructors: { + type: "boolean" + }, + methodsIgnorePattern: { + type: "string" + }, + avoidQuotes: { + type: "boolean" + }, + avoidExplicitReturnArrows: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + + messages: { + expectedAllPropertiesShorthanded: "Expected shorthand for all properties.", + expectedLiteralMethodLongform: "Expected longform method syntax for string literal keys.", + expectedPropertyShorthand: "Expected property shorthand.", + expectedPropertyLongform: "Expected longform property syntax.", + expectedMethodShorthand: "Expected method shorthand.", + expectedMethodLongform: "Expected longform method syntax.", + unexpectedMix: "Unexpected mix of shorthand and non-shorthand properties." + } + }, + + create(context) { + const APPLY = context.options[0] || OPTIONS.always; + const APPLY_TO_METHODS = APPLY === OPTIONS.methods || APPLY === OPTIONS.always; + const APPLY_TO_PROPS = APPLY === OPTIONS.properties || APPLY === OPTIONS.always; + const APPLY_NEVER = APPLY === OPTIONS.never; + const APPLY_CONSISTENT = APPLY === OPTIONS.consistent; + const APPLY_CONSISTENT_AS_NEEDED = APPLY === OPTIONS.consistentAsNeeded; + + const PARAMS = context.options[1] || {}; + const IGNORE_CONSTRUCTORS = PARAMS.ignoreConstructors; + const METHODS_IGNORE_PATTERN = PARAMS.methodsIgnorePattern + ? new RegExp(PARAMS.methodsIgnorePattern, "u") + : null; + const AVOID_QUOTES = PARAMS.avoidQuotes; + const AVOID_EXPLICIT_RETURN_ARROWS = !!PARAMS.avoidExplicitReturnArrows; + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + const CTOR_PREFIX_REGEX = /[^_$0-9]/u; + + /** + * Determines if the first character of the name is a capital letter. + * @param {string} name The name of the node to evaluate. + * @returns {boolean} True if the first character of the property name is a capital letter, false if not. + * @private + */ + function isConstructor(name) { + const match = CTOR_PREFIX_REGEX.exec(name); + + // Not a constructor if name has no characters apart from '_', '$' and digits e.g. '_', '$$', '_8' + if (!match) { + return false; + } + + const firstChar = name.charAt(match.index); + + return firstChar === firstChar.toUpperCase(); + } + + /** + * Determines if the property can have a shorthand form. + * @param {ASTNode} property Property AST node + * @returns {boolean} True if the property can have a shorthand form + * @private + */ + function canHaveShorthand(property) { + return (property.kind !== "set" && property.kind !== "get" && property.type !== "SpreadElement" && property.type !== "SpreadProperty" && property.type !== "ExperimentalSpreadProperty"); + } + + /** + * Checks whether a node is a string literal. + * @param {ASTNode} node Any AST node. + * @returns {boolean} `true` if it is a string literal. + */ + function isStringLiteral(node) { + return node.type === "Literal" && typeof node.value === "string"; + } + + /** + * Determines if the property is a shorthand or not. + * @param {ASTNode} property Property AST node + * @returns {boolean} True if the property is considered shorthand, false if not. + * @private + */ + function isShorthand(property) { + + // property.method is true when `{a(){}}`. + return (property.shorthand || property.method); + } + + /** + * Determines if the property's key and method or value are named equally. + * @param {ASTNode} property Property AST node + * @returns {boolean} True if the key and value are named equally, false if not. + * @private + */ + function isRedundant(property) { + const value = property.value; + + if (value.type === "FunctionExpression") { + return !value.id; // Only anonymous should be shorthand method. + } + if (value.type === "Identifier") { + return astUtils.getStaticPropertyName(property) === value.name; + } + + return false; + } + + /** + * Ensures that an object's properties are consistently shorthand, or not shorthand at all. + * @param {ASTNode} node Property AST node + * @param {boolean} checkRedundancy Whether to check longform redundancy + * @returns {void} + */ + function checkConsistency(node, checkRedundancy) { + + // We are excluding getters/setters and spread properties as they are considered neither longform nor shorthand. + const properties = node.properties.filter(canHaveShorthand); + + // Do we still have properties left after filtering the getters and setters? + if (properties.length > 0) { + const shorthandProperties = properties.filter(isShorthand); + + /* + * If we do not have an equal number of longform properties as + * shorthand properties, we are using the annotations inconsistently + */ + if (shorthandProperties.length !== properties.length) { + + // We have at least 1 shorthand property + if (shorthandProperties.length > 0) { + context.report({ node, messageId: "unexpectedMix" }); + } else if (checkRedundancy) { + + /* + * If all properties of the object contain a method or value with a name matching it's key, + * all the keys are redundant. + */ + const canAlwaysUseShorthand = properties.every(isRedundant); + + if (canAlwaysUseShorthand) { + context.report({ node, messageId: "expectedAllPropertiesShorthanded" }); + } + } + } + } + } + + /** + * Fixes a FunctionExpression node by making it into a shorthand property. + * @param {SourceCodeFixer} fixer The fixer object + * @param {ASTNode} node A `Property` node that has a `FunctionExpression` or `ArrowFunctionExpression` as its value + * @returns {Object} A fix for this node + */ + function makeFunctionShorthand(fixer, node) { + const firstKeyToken = node.computed + ? sourceCode.getFirstToken(node, astUtils.isOpeningBracketToken) + : sourceCode.getFirstToken(node.key); + const lastKeyToken = node.computed + ? sourceCode.getFirstTokenBetween(node.key, node.value, astUtils.isClosingBracketToken) + : sourceCode.getLastToken(node.key); + const keyText = sourceCode.text.slice(firstKeyToken.range[0], lastKeyToken.range[1]); + let keyPrefix = ""; + + // key: /* */ () => {} + if (sourceCode.commentsExistBetween(lastKeyToken, node.value)) { + return null; + } + + if (node.value.async) { + keyPrefix += "async "; + } + if (node.value.generator) { + keyPrefix += "*"; + } + + const fixRange = [firstKeyToken.range[0], node.range[1]]; + const methodPrefix = keyPrefix + keyText; + + if (node.value.type === "FunctionExpression") { + const functionToken = sourceCode.getTokens(node.value).find(token => token.type === "Keyword" && token.value === "function"); + const tokenBeforeParams = node.value.generator ? sourceCode.getTokenAfter(functionToken) : functionToken; + + return fixer.replaceTextRange( + fixRange, + methodPrefix + sourceCode.text.slice(tokenBeforeParams.range[1], node.value.range[1]) + ); + } + + const arrowToken = sourceCode.getTokenBefore(node.value.body, astUtils.isArrowToken); + const fnBody = sourceCode.text.slice(arrowToken.range[1], node.value.range[1]); + + let shouldAddParensAroundParameters = false; + let tokenBeforeParams; + + if (node.value.params.length === 0) { + tokenBeforeParams = sourceCode.getFirstToken(node.value, astUtils.isOpeningParenToken); + } else { + tokenBeforeParams = sourceCode.getTokenBefore(node.value.params[0]); + } + + if (node.value.params.length === 1) { + const hasParen = astUtils.isOpeningParenToken(tokenBeforeParams); + const isTokenOutsideNode = tokenBeforeParams.range[0] < node.range[0]; + + shouldAddParensAroundParameters = !hasParen || isTokenOutsideNode; + } + + const sliceStart = shouldAddParensAroundParameters + ? node.value.params[0].range[0] + : tokenBeforeParams.range[0]; + const sliceEnd = sourceCode.getTokenBefore(arrowToken).range[1]; + + const oldParamText = sourceCode.text.slice(sliceStart, sliceEnd); + const newParamText = shouldAddParensAroundParameters ? `(${oldParamText})` : oldParamText; + + return fixer.replaceTextRange( + fixRange, + methodPrefix + newParamText + fnBody + ); + + } + + /** + * Fixes a FunctionExpression node by making it into a longform property. + * @param {SourceCodeFixer} fixer The fixer object + * @param {ASTNode} node A `Property` node that has a `FunctionExpression` as its value + * @returns {Object} A fix for this node + */ + function makeFunctionLongform(fixer, node) { + const firstKeyToken = node.computed ? sourceCode.getTokens(node).find(token => token.value === "[") : sourceCode.getFirstToken(node.key); + const lastKeyToken = node.computed ? sourceCode.getTokensBetween(node.key, node.value).find(token => token.value === "]") : sourceCode.getLastToken(node.key); + const keyText = sourceCode.text.slice(firstKeyToken.range[0], lastKeyToken.range[1]); + let functionHeader = "function"; + + if (node.value.async) { + functionHeader = `async ${functionHeader}`; + } + if (node.value.generator) { + functionHeader = `${functionHeader}*`; + } + + return fixer.replaceTextRange([node.range[0], lastKeyToken.range[1]], `${keyText}: ${functionHeader}`); + } + + /* + * To determine whether a given arrow function has a lexical identifier (`this`, `arguments`, `super`, or `new.target`), + * create a stack of functions that define these identifiers (i.e. all functions except arrow functions) as the AST is + * traversed. Whenever a new function is encountered, create a new entry on the stack (corresponding to a different lexical + * scope of `this`), and whenever a function is exited, pop that entry off the stack. When an arrow function is entered, + * keep a reference to it on the current stack entry, and remove that reference when the arrow function is exited. + * When a lexical identifier is encountered, mark all the arrow functions on the current stack entry by adding them + * to an `arrowsWithLexicalIdentifiers` set. Any arrow function in that set will not be reported by this rule, + * because converting it into a method would change the value of one of the lexical identifiers. + */ + const lexicalScopeStack = []; + const arrowsWithLexicalIdentifiers = new WeakSet(); + const argumentsIdentifiers = new WeakSet(); + + /** + * Enters a function. This creates a new lexical identifier scope, so a new Set of arrow functions is pushed onto the stack. + * Also, this marks all `arguments` identifiers so that they can be detected later. + * @returns {void} + */ + function enterFunction() { + lexicalScopeStack.unshift(new Set()); + context.getScope().variables.filter(variable => variable.name === "arguments").forEach(variable => { + variable.references.map(ref => ref.identifier).forEach(identifier => argumentsIdentifiers.add(identifier)); + }); + } + + /** + * Exits a function. This pops the current set of arrow functions off the lexical scope stack. + * @returns {void} + */ + function exitFunction() { + lexicalScopeStack.shift(); + } + + /** + * Marks the current function as having a lexical keyword. This implies that all arrow functions + * in the current lexical scope contain a reference to this lexical keyword. + * @returns {void} + */ + function reportLexicalIdentifier() { + lexicalScopeStack[0].forEach(arrowFunction => arrowsWithLexicalIdentifiers.add(arrowFunction)); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program: enterFunction, + FunctionDeclaration: enterFunction, + FunctionExpression: enterFunction, + "Program:exit": exitFunction, + "FunctionDeclaration:exit": exitFunction, + "FunctionExpression:exit": exitFunction, + + ArrowFunctionExpression(node) { + lexicalScopeStack[0].add(node); + }, + "ArrowFunctionExpression:exit"(node) { + lexicalScopeStack[0].delete(node); + }, + + ThisExpression: reportLexicalIdentifier, + Super: reportLexicalIdentifier, + MetaProperty(node) { + if (node.meta.name === "new" && node.property.name === "target") { + reportLexicalIdentifier(); + } + }, + Identifier(node) { + if (argumentsIdentifiers.has(node)) { + reportLexicalIdentifier(); + } + }, + + ObjectExpression(node) { + if (APPLY_CONSISTENT) { + checkConsistency(node, false); + } else if (APPLY_CONSISTENT_AS_NEEDED) { + checkConsistency(node, true); + } + }, + + "Property:exit"(node) { + const isConciseProperty = node.method || node.shorthand; + + // Ignore destructuring assignment + if (node.parent.type === "ObjectPattern") { + return; + } + + // getters and setters are ignored + if (node.kind === "get" || node.kind === "set") { + return; + } + + // only computed methods can fail the following checks + if (node.computed && node.value.type !== "FunctionExpression" && node.value.type !== "ArrowFunctionExpression") { + return; + } + + //-------------------------------------------------------------- + // Checks for property/method shorthand. + if (isConciseProperty) { + if (node.method && (APPLY_NEVER || AVOID_QUOTES && isStringLiteral(node.key))) { + const messageId = APPLY_NEVER ? "expectedMethodLongform" : "expectedLiteralMethodLongform"; + + // { x() {} } should be written as { x: function() {} } + context.report({ + node, + messageId, + fix: fixer => makeFunctionLongform(fixer, node) + }); + } else if (APPLY_NEVER) { + + // { x } should be written as { x: x } + context.report({ + node, + messageId: "expectedPropertyLongform", + fix: fixer => fixer.insertTextAfter(node.key, `: ${node.key.name}`) + }); + } + } else if (APPLY_TO_METHODS && !node.value.id && (node.value.type === "FunctionExpression" || node.value.type === "ArrowFunctionExpression")) { + if (IGNORE_CONSTRUCTORS && node.key.type === "Identifier" && isConstructor(node.key.name)) { + return; + } + + if (METHODS_IGNORE_PATTERN) { + const propertyName = astUtils.getStaticPropertyName(node); + + if (propertyName !== null && METHODS_IGNORE_PATTERN.test(propertyName)) { + return; + } + } + + if (AVOID_QUOTES && isStringLiteral(node.key)) { + return; + } + + // {[x]: function(){}} should be written as {[x]() {}} + if (node.value.type === "FunctionExpression" || + node.value.type === "ArrowFunctionExpression" && + node.value.body.type === "BlockStatement" && + AVOID_EXPLICIT_RETURN_ARROWS && + !arrowsWithLexicalIdentifiers.has(node.value) + ) { + context.report({ + node, + messageId: "expectedMethodShorthand", + fix: fixer => makeFunctionShorthand(fixer, node) + }); + } + } else if (node.value.type === "Identifier" && node.key.name === node.value.name && APPLY_TO_PROPS) { + + // {x: x} should be written as {x} + context.report({ + node, + messageId: "expectedPropertyShorthand", + fix(fixer) { + return fixer.replaceText(node, node.value.name); + } + }); + } else if (node.value.type === "Identifier" && node.key.type === "Literal" && node.key.value === node.value.name && APPLY_TO_PROPS) { + if (AVOID_QUOTES) { + return; + } + + // {"x": x} should be written as {x} + context.report({ + node, + messageId: "expectedPropertyShorthand", + fix(fixer) { + return fixer.replaceText(node, node.value.name); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/one-var-declaration-per-line.js b/node_modules/eslint/lib/rules/one-var-declaration-per-line.js new file mode 100644 index 0000000..65be092 --- /dev/null +++ b/node_modules/eslint/lib/rules/one-var-declaration-per-line.js @@ -0,0 +1,92 @@ +/** + * @fileoverview Rule to check multiple var declarations per line + * @author Alberto Rodríguez + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require or disallow newlines around variable declarations", + recommended: false, + url: "https://eslint.org/docs/rules/one-var-declaration-per-line" + }, + + schema: [ + { + enum: ["always", "initializations"] + } + ], + + fixable: "whitespace", + + messages: { + expectVarOnNewline: "Expected variable declaration to be on a new line." + } + }, + + create(context) { + + const always = context.options[0] === "always"; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + + /** + * Determine if provided keyword is a variant of for specifiers + * @private + * @param {string} keyword keyword to test + * @returns {boolean} True if `keyword` is a variant of for specifier + */ + function isForTypeSpecifier(keyword) { + return keyword === "ForStatement" || keyword === "ForInStatement" || keyword === "ForOfStatement"; + } + + /** + * Checks newlines around variable declarations. + * @private + * @param {ASTNode} node `VariableDeclaration` node to test + * @returns {void} + */ + function checkForNewLine(node) { + if (isForTypeSpecifier(node.parent.type)) { + return; + } + + const declarations = node.declarations; + let prev; + + declarations.forEach(current => { + if (prev && prev.loc.end.line === current.loc.start.line) { + if (always || prev.init || current.init) { + context.report({ + node, + messageId: "expectVarOnNewline", + loc: current.loc, + fix: fixer => fixer.insertTextBefore(current, "\n") + }); + } + } + prev = current; + }); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + VariableDeclaration: checkForNewLine + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/one-var.js b/node_modules/eslint/lib/rules/one-var.js new file mode 100644 index 0000000..a8e2a1d --- /dev/null +++ b/node_modules/eslint/lib/rules/one-var.js @@ -0,0 +1,567 @@ +/** + * @fileoverview A rule to control the use of single variable declarations. + * @author Ian Christian Myers + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines whether the given node is in a statement list. + * @param {ASTNode} node node to check + * @returns {boolean} `true` if the given node is in a statement list + */ +function isInStatementList(node) { + return astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce variables to be declared either together or separately in functions", + recommended: false, + url: "https://eslint.org/docs/rules/one-var" + }, + + fixable: "code", + + schema: [ + { + oneOf: [ + { + enum: ["always", "never", "consecutive"] + }, + { + type: "object", + properties: { + separateRequires: { + type: "boolean" + }, + var: { + enum: ["always", "never", "consecutive"] + }, + let: { + enum: ["always", "never", "consecutive"] + }, + const: { + enum: ["always", "never", "consecutive"] + } + }, + additionalProperties: false + }, + { + type: "object", + properties: { + initialized: { + enum: ["always", "never", "consecutive"] + }, + uninitialized: { + enum: ["always", "never", "consecutive"] + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + combineUninitialized: "Combine this with the previous '{{type}}' statement with uninitialized variables.", + combineInitialized: "Combine this with the previous '{{type}}' statement with initialized variables.", + splitUninitialized: "Split uninitialized '{{type}}' declarations into multiple statements.", + splitInitialized: "Split initialized '{{type}}' declarations into multiple statements.", + splitRequires: "Split requires to be separated into a single block.", + combine: "Combine this with the previous '{{type}}' statement.", + split: "Split '{{type}}' declarations into multiple statements." + } + }, + + create(context) { + const MODE_ALWAYS = "always"; + const MODE_NEVER = "never"; + const MODE_CONSECUTIVE = "consecutive"; + const mode = context.options[0] || MODE_ALWAYS; + + const options = {}; + + if (typeof mode === "string") { // simple options configuration with just a string + options.var = { uninitialized: mode, initialized: mode }; + options.let = { uninitialized: mode, initialized: mode }; + options.const = { uninitialized: mode, initialized: mode }; + } else if (typeof mode === "object") { // options configuration is an object + options.separateRequires = !!mode.separateRequires; + options.var = { uninitialized: mode.var, initialized: mode.var }; + options.let = { uninitialized: mode.let, initialized: mode.let }; + options.const = { uninitialized: mode.const, initialized: mode.const }; + if (Object.prototype.hasOwnProperty.call(mode, "uninitialized")) { + options.var.uninitialized = mode.uninitialized; + options.let.uninitialized = mode.uninitialized; + options.const.uninitialized = mode.uninitialized; + } + if (Object.prototype.hasOwnProperty.call(mode, "initialized")) { + options.var.initialized = mode.initialized; + options.let.initialized = mode.initialized; + options.const.initialized = mode.initialized; + } + } + + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + const functionStack = []; + const blockStack = []; + + /** + * Increments the blockStack counter. + * @returns {void} + * @private + */ + function startBlock() { + blockStack.push({ + let: { initialized: false, uninitialized: false }, + const: { initialized: false, uninitialized: false } + }); + } + + /** + * Increments the functionStack counter. + * @returns {void} + * @private + */ + function startFunction() { + functionStack.push({ initialized: false, uninitialized: false }); + startBlock(); + } + + /** + * Decrements the blockStack counter. + * @returns {void} + * @private + */ + function endBlock() { + blockStack.pop(); + } + + /** + * Decrements the functionStack counter. + * @returns {void} + * @private + */ + function endFunction() { + functionStack.pop(); + endBlock(); + } + + /** + * Check if a variable declaration is a require. + * @param {ASTNode} decl variable declaration Node + * @returns {bool} if decl is a require, return true; else return false. + * @private + */ + function isRequire(decl) { + return decl.init && decl.init.type === "CallExpression" && decl.init.callee.name === "require"; + } + + /** + * Records whether initialized/uninitialized/required variables are defined in current scope. + * @param {string} statementType node.kind, one of: "var", "let", or "const" + * @param {ASTNode[]} declarations List of declarations + * @param {Object} currentScope The scope being investigated + * @returns {void} + * @private + */ + function recordTypes(statementType, declarations, currentScope) { + for (let i = 0; i < declarations.length; i++) { + if (declarations[i].init === null) { + if (options[statementType] && options[statementType].uninitialized === MODE_ALWAYS) { + currentScope.uninitialized = true; + } + } else { + if (options[statementType] && options[statementType].initialized === MODE_ALWAYS) { + if (options.separateRequires && isRequire(declarations[i])) { + currentScope.required = true; + } else { + currentScope.initialized = true; + } + } + } + } + } + + /** + * Determines the current scope (function or block) + * @param {string} statementType node.kind, one of: "var", "let", or "const" + * @returns {Object} The scope associated with statementType + */ + function getCurrentScope(statementType) { + let currentScope; + + if (statementType === "var") { + currentScope = functionStack[functionStack.length - 1]; + } else if (statementType === "let") { + currentScope = blockStack[blockStack.length - 1].let; + } else if (statementType === "const") { + currentScope = blockStack[blockStack.length - 1].const; + } + return currentScope; + } + + /** + * Counts the number of initialized and uninitialized declarations in a list of declarations + * @param {ASTNode[]} declarations List of declarations + * @returns {Object} Counts of 'uninitialized' and 'initialized' declarations + * @private + */ + function countDeclarations(declarations) { + const counts = { uninitialized: 0, initialized: 0 }; + + for (let i = 0; i < declarations.length; i++) { + if (declarations[i].init === null) { + counts.uninitialized++; + } else { + counts.initialized++; + } + } + return counts; + } + + /** + * Determines if there is more than one var statement in the current scope. + * @param {string} statementType node.kind, one of: "var", "let", or "const" + * @param {ASTNode[]} declarations List of declarations + * @returns {boolean} Returns true if it is the first var declaration, false if not. + * @private + */ + function hasOnlyOneStatement(statementType, declarations) { + + const declarationCounts = countDeclarations(declarations); + const currentOptions = options[statementType] || {}; + const currentScope = getCurrentScope(statementType); + const hasRequires = declarations.some(isRequire); + + if (currentOptions.uninitialized === MODE_ALWAYS && currentOptions.initialized === MODE_ALWAYS) { + if (currentScope.uninitialized || currentScope.initialized) { + if (!hasRequires) { + return false; + } + } + } + + if (declarationCounts.uninitialized > 0) { + if (currentOptions.uninitialized === MODE_ALWAYS && currentScope.uninitialized) { + return false; + } + } + if (declarationCounts.initialized > 0) { + if (currentOptions.initialized === MODE_ALWAYS && currentScope.initialized) { + if (!hasRequires) { + return false; + } + } + } + if (currentScope.required && hasRequires) { + return false; + } + recordTypes(statementType, declarations, currentScope); + return true; + } + + /** + * Fixer to join VariableDeclaration's into a single declaration + * @param {VariableDeclarator[]} declarations The `VariableDeclaration` to join + * @returns {Function} The fixer function + */ + function joinDeclarations(declarations) { + const declaration = declarations[0]; + const body = Array.isArray(declaration.parent.parent.body) ? declaration.parent.parent.body : []; + const currentIndex = body.findIndex(node => node.range[0] === declaration.parent.range[0]); + const previousNode = body[currentIndex - 1]; + + return fixer => { + const type = sourceCode.getTokenBefore(declaration); + const prevSemi = sourceCode.getTokenBefore(type); + const res = []; + + if (previousNode && previousNode.kind === sourceCode.getText(type)) { + if (prevSemi.value === ";") { + res.push(fixer.replaceText(prevSemi, ",")); + } else { + res.push(fixer.insertTextAfter(prevSemi, ",")); + } + res.push(fixer.replaceText(type, "")); + } + + return res; + }; + } + + /** + * Fixer to split a VariableDeclaration into individual declarations + * @param {VariableDeclaration} declaration The `VariableDeclaration` to split + * @returns {Function|null} The fixer function + */ + function splitDeclarations(declaration) { + const { parent } = declaration; + + // don't autofix code such as: if (foo) var x, y; + if (!isInStatementList(parent.type === "ExportNamedDeclaration" ? parent : declaration)) { + return null; + } + + return fixer => declaration.declarations.map(declarator => { + const tokenAfterDeclarator = sourceCode.getTokenAfter(declarator); + + if (tokenAfterDeclarator === null) { + return null; + } + + const afterComma = sourceCode.getTokenAfter(tokenAfterDeclarator, { includeComments: true }); + + if (tokenAfterDeclarator.value !== ",") { + return null; + } + + const exportPlacement = declaration.parent.type === "ExportNamedDeclaration" ? "export " : ""; + + /* + * `var x,y` + * tokenAfterDeclarator ^^ afterComma + */ + if (afterComma.range[0] === tokenAfterDeclarator.range[1]) { + return fixer.replaceText(tokenAfterDeclarator, `; ${exportPlacement}${declaration.kind} `); + } + + /* + * `var x, + * tokenAfterDeclarator ^ + * y` + * ^ afterComma + */ + if ( + afterComma.loc.start.line > tokenAfterDeclarator.loc.end.line || + afterComma.type === "Line" || + afterComma.type === "Block" + ) { + let lastComment = afterComma; + + while (lastComment.type === "Line" || lastComment.type === "Block") { + lastComment = sourceCode.getTokenAfter(lastComment, { includeComments: true }); + } + + return fixer.replaceTextRange( + [tokenAfterDeclarator.range[0], lastComment.range[0]], + `;${sourceCode.text.slice(tokenAfterDeclarator.range[1], lastComment.range[0])}${exportPlacement}${declaration.kind} ` + ); + } + + return fixer.replaceText(tokenAfterDeclarator, `; ${exportPlacement}${declaration.kind}`); + }).filter(x => x); + } + + /** + * Checks a given VariableDeclaration node for errors. + * @param {ASTNode} node The VariableDeclaration node to check + * @returns {void} + * @private + */ + function checkVariableDeclaration(node) { + const parent = node.parent; + const type = node.kind; + + if (!options[type]) { + return; + } + + const declarations = node.declarations; + const declarationCounts = countDeclarations(declarations); + const mixedRequires = declarations.some(isRequire) && !declarations.every(isRequire); + + if (options[type].initialized === MODE_ALWAYS) { + if (options.separateRequires && mixedRequires) { + context.report({ + node, + messageId: "splitRequires" + }); + } + } + + // consecutive + const nodeIndex = (parent.body && parent.body.length > 0 && parent.body.indexOf(node)) || 0; + + if (nodeIndex > 0) { + const previousNode = parent.body[nodeIndex - 1]; + const isPreviousNodeDeclaration = previousNode.type === "VariableDeclaration"; + const declarationsWithPrevious = declarations.concat(previousNode.declarations || []); + + if ( + isPreviousNodeDeclaration && + previousNode.kind === type && + !(declarationsWithPrevious.some(isRequire) && !declarationsWithPrevious.every(isRequire)) + ) { + const previousDeclCounts = countDeclarations(previousNode.declarations); + + if (options[type].initialized === MODE_CONSECUTIVE && options[type].uninitialized === MODE_CONSECUTIVE) { + context.report({ + node, + messageId: "combine", + data: { + type + }, + fix: joinDeclarations(declarations) + }); + } else if (options[type].initialized === MODE_CONSECUTIVE && declarationCounts.initialized > 0 && previousDeclCounts.initialized > 0) { + context.report({ + node, + messageId: "combineInitialized", + data: { + type + }, + fix: joinDeclarations(declarations) + }); + } else if (options[type].uninitialized === MODE_CONSECUTIVE && + declarationCounts.uninitialized > 0 && + previousDeclCounts.uninitialized > 0) { + context.report({ + node, + messageId: "combineUninitialized", + data: { + type + }, + fix: joinDeclarations(declarations) + }); + } + } + } + + // always + if (!hasOnlyOneStatement(type, declarations)) { + if (options[type].initialized === MODE_ALWAYS && options[type].uninitialized === MODE_ALWAYS) { + context.report({ + node, + messageId: "combine", + data: { + type + }, + fix: joinDeclarations(declarations) + }); + } else { + if (options[type].initialized === MODE_ALWAYS && declarationCounts.initialized > 0) { + context.report({ + node, + messageId: "combineInitialized", + data: { + type + }, + fix: joinDeclarations(declarations) + }); + } + if (options[type].uninitialized === MODE_ALWAYS && declarationCounts.uninitialized > 0) { + if (node.parent.left === node && (node.parent.type === "ForInStatement" || node.parent.type === "ForOfStatement")) { + return; + } + context.report({ + node, + messageId: "combineUninitialized", + data: { + type + }, + fix: joinDeclarations(declarations) + }); + } + } + } + + // never + if (parent.type !== "ForStatement" || parent.init !== node) { + const totalDeclarations = declarationCounts.uninitialized + declarationCounts.initialized; + + if (totalDeclarations > 1) { + if (options[type].initialized === MODE_NEVER && options[type].uninitialized === MODE_NEVER) { + + // both initialized and uninitialized + context.report({ + node, + messageId: "split", + data: { + type + }, + fix: splitDeclarations(node) + }); + } else if (options[type].initialized === MODE_NEVER && declarationCounts.initialized > 0) { + + // initialized + context.report({ + node, + messageId: "splitInitialized", + data: { + type + }, + fix: splitDeclarations(node) + }); + } else if (options[type].uninitialized === MODE_NEVER && declarationCounts.uninitialized > 0) { + + // uninitialized + context.report({ + node, + messageId: "splitUninitialized", + data: { + type + }, + fix: splitDeclarations(node) + }); + } + } + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + Program: startFunction, + FunctionDeclaration: startFunction, + FunctionExpression: startFunction, + ArrowFunctionExpression: startFunction, + StaticBlock: startFunction, // StaticBlock creates a new scope for `var` variables + + BlockStatement: startBlock, + ForStatement: startBlock, + ForInStatement: startBlock, + ForOfStatement: startBlock, + SwitchStatement: startBlock, + VariableDeclaration: checkVariableDeclaration, + "ForStatement:exit": endBlock, + "ForOfStatement:exit": endBlock, + "ForInStatement:exit": endBlock, + "SwitchStatement:exit": endBlock, + "BlockStatement:exit": endBlock, + + "Program:exit": endFunction, + "FunctionDeclaration:exit": endFunction, + "FunctionExpression:exit": endFunction, + "ArrowFunctionExpression:exit": endFunction, + "StaticBlock:exit": endFunction + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/operator-assignment.js b/node_modules/eslint/lib/rules/operator-assignment.js new file mode 100644 index 0000000..ed9cb96 --- /dev/null +++ b/node_modules/eslint/lib/rules/operator-assignment.js @@ -0,0 +1,209 @@ +/** + * @fileoverview Rule to replace assignment expressions with operator assignment + * @author Brandon Mills + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether an operator is commutative and has an operator assignment + * shorthand form. + * @param {string} operator Operator to check. + * @returns {boolean} True if the operator is commutative and has a + * shorthand form. + */ +function isCommutativeOperatorWithShorthand(operator) { + return ["*", "&", "^", "|"].includes(operator); +} + +/** + * Checks whether an operator is not commutative and has an operator assignment + * shorthand form. + * @param {string} operator Operator to check. + * @returns {boolean} True if the operator is not commutative and has + * a shorthand form. + */ +function isNonCommutativeOperatorWithShorthand(operator) { + return ["+", "-", "/", "%", "<<", ">>", ">>>", "**"].includes(operator); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** + * Determines if the left side of a node can be safely fixed (i.e. if it activates the same getters/setters and) + * toString calls regardless of whether assignment shorthand is used) + * @param {ASTNode} node The node on the left side of the expression + * @returns {boolean} `true` if the node can be fixed + */ +function canBeFixed(node) { + return ( + node.type === "Identifier" || + ( + node.type === "MemberExpression" && + (node.object.type === "Identifier" || node.object.type === "ThisExpression") && + (!node.computed || node.property.type === "Literal") + ) + ); +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require or disallow assignment operator shorthand where possible", + recommended: false, + url: "https://eslint.org/docs/rules/operator-assignment" + }, + + schema: [ + { + enum: ["always", "never"] + } + ], + + fixable: "code", + messages: { + replaced: "Assignment (=) can be replaced with operator assignment ({{operator}}).", + unexpected: "Unexpected operator assignment ({{operator}}) shorthand." + } + }, + + create(context) { + + const sourceCode = context.getSourceCode(); + + /** + * Returns the operator token of an AssignmentExpression or BinaryExpression + * @param {ASTNode} node An AssignmentExpression or BinaryExpression node + * @returns {Token} The operator token in the node + */ + function getOperatorToken(node) { + return sourceCode.getFirstTokenBetween(node.left, node.right, token => token.value === node.operator); + } + + /** + * Ensures that an assignment uses the shorthand form where possible. + * @param {ASTNode} node An AssignmentExpression node. + * @returns {void} + */ + function verify(node) { + if (node.operator !== "=" || node.right.type !== "BinaryExpression") { + return; + } + + const left = node.left; + const expr = node.right; + const operator = expr.operator; + + if (isCommutativeOperatorWithShorthand(operator) || isNonCommutativeOperatorWithShorthand(operator)) { + const replacementOperator = `${operator}=`; + + if (astUtils.isSameReference(left, expr.left, true)) { + context.report({ + node, + messageId: "replaced", + data: { operator: replacementOperator }, + fix(fixer) { + if (canBeFixed(left) && canBeFixed(expr.left)) { + const equalsToken = getOperatorToken(node); + const operatorToken = getOperatorToken(expr); + const leftText = sourceCode.getText().slice(node.range[0], equalsToken.range[0]); + const rightText = sourceCode.getText().slice(operatorToken.range[1], node.right.range[1]); + + // Check for comments that would be removed. + if (sourceCode.commentsExistBetween(equalsToken, operatorToken)) { + return null; + } + + return fixer.replaceText(node, `${leftText}${replacementOperator}${rightText}`); + } + return null; + } + }); + } else if (astUtils.isSameReference(left, expr.right, true) && isCommutativeOperatorWithShorthand(operator)) { + + /* + * This case can't be fixed safely. + * If `a` and `b` both have custom valueOf() behavior, then fixing `a = b * a` to `a *= b` would + * change the execution order of the valueOf() functions. + */ + context.report({ + node, + messageId: "replaced", + data: { operator: replacementOperator } + }); + } + } + } + + /** + * Warns if an assignment expression uses operator assignment shorthand. + * @param {ASTNode} node An AssignmentExpression node. + * @returns {void} + */ + function prohibit(node) { + if (node.operator !== "=" && !astUtils.isLogicalAssignmentOperator(node.operator)) { + context.report({ + node, + messageId: "unexpected", + data: { operator: node.operator }, + fix(fixer) { + if (canBeFixed(node.left)) { + const firstToken = sourceCode.getFirstToken(node); + const operatorToken = getOperatorToken(node); + const leftText = sourceCode.getText().slice(node.range[0], operatorToken.range[0]); + const newOperator = node.operator.slice(0, -1); + let rightText; + + // Check for comments that would be duplicated. + if (sourceCode.commentsExistBetween(firstToken, operatorToken)) { + return null; + } + + // If this change would modify precedence (e.g. `foo *= bar + 1` => `foo = foo * (bar + 1)`), parenthesize the right side. + if ( + astUtils.getPrecedence(node.right) <= astUtils.getPrecedence({ type: "BinaryExpression", operator: newOperator }) && + !astUtils.isParenthesised(sourceCode, node.right) + ) { + rightText = `${sourceCode.text.slice(operatorToken.range[1], node.right.range[0])}(${sourceCode.getText(node.right)})`; + } else { + const tokenAfterOperator = sourceCode.getTokenAfter(operatorToken, { includeComments: true }); + let rightTextPrefix = ""; + + if ( + operatorToken.range[1] === tokenAfterOperator.range[0] && + !astUtils.canTokensBeAdjacent({ type: "Punctuator", value: newOperator }, tokenAfterOperator) + ) { + rightTextPrefix = " "; // foo+=+bar -> foo= foo+ +bar + } + + rightText = `${rightTextPrefix}${sourceCode.text.slice(operatorToken.range[1], node.range[1])}`; + } + + return fixer.replaceText(node, `${leftText}= ${leftText}${newOperator}${rightText}`); + } + return null; + } + }); + } + } + + return { + AssignmentExpression: context.options[0] !== "never" ? verify : prohibit + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/operator-linebreak.js b/node_modules/eslint/lib/rules/operator-linebreak.js new file mode 100644 index 0000000..03b603e --- /dev/null +++ b/node_modules/eslint/lib/rules/operator-linebreak.js @@ -0,0 +1,250 @@ +/** + * @fileoverview Operator linebreak - enforces operator linebreak style of two types: after and before + * @author Benoît Zugmeyer + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent linebreak style for operators", + recommended: false, + url: "https://eslint.org/docs/rules/operator-linebreak" + }, + + schema: [ + { + enum: ["after", "before", "none", null] + }, + { + type: "object", + properties: { + overrides: { + type: "object", + additionalProperties: { + enum: ["after", "before", "none", "ignore"] + } + } + }, + additionalProperties: false + } + ], + + fixable: "code", + + messages: { + operatorAtBeginning: "'{{operator}}' should be placed at the beginning of the line.", + operatorAtEnd: "'{{operator}}' should be placed at the end of the line.", + badLinebreak: "Bad line breaking before and after '{{operator}}'.", + noLinebreak: "There should be no line break before or after '{{operator}}'." + } + }, + + create(context) { + + const usedDefaultGlobal = !context.options[0]; + const globalStyle = context.options[0] || "after"; + const options = context.options[1] || {}; + const styleOverrides = options.overrides ? Object.assign({}, options.overrides) : {}; + + if (usedDefaultGlobal && !styleOverrides["?"]) { + styleOverrides["?"] = "before"; + } + + if (usedDefaultGlobal && !styleOverrides[":"]) { + styleOverrides[":"] = "before"; + } + + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Gets a fixer function to fix rule issues + * @param {Token} operatorToken The operator token of an expression + * @param {string} desiredStyle The style for the rule. One of 'before', 'after', 'none' + * @returns {Function} A fixer function + */ + function getFixer(operatorToken, desiredStyle) { + return fixer => { + const tokenBefore = sourceCode.getTokenBefore(operatorToken); + const tokenAfter = sourceCode.getTokenAfter(operatorToken); + const textBefore = sourceCode.text.slice(tokenBefore.range[1], operatorToken.range[0]); + const textAfter = sourceCode.text.slice(operatorToken.range[1], tokenAfter.range[0]); + const hasLinebreakBefore = !astUtils.isTokenOnSameLine(tokenBefore, operatorToken); + const hasLinebreakAfter = !astUtils.isTokenOnSameLine(operatorToken, tokenAfter); + let newTextBefore, newTextAfter; + + if (hasLinebreakBefore !== hasLinebreakAfter && desiredStyle !== "none") { + + // If there is a comment before and after the operator, don't do a fix. + if (sourceCode.getTokenBefore(operatorToken, { includeComments: true }) !== tokenBefore && + sourceCode.getTokenAfter(operatorToken, { includeComments: true }) !== tokenAfter) { + + return null; + } + + /* + * If there is only one linebreak and it's on the wrong side of the operator, swap the text before and after the operator. + * foo && + * bar + * would get fixed to + * foo + * && bar + */ + newTextBefore = textAfter; + newTextAfter = textBefore; + } else { + const LINEBREAK_REGEX = astUtils.createGlobalLinebreakMatcher(); + + // Otherwise, if no linebreak is desired and no comments interfere, replace the linebreaks with empty strings. + newTextBefore = desiredStyle === "before" || textBefore.trim() ? textBefore : textBefore.replace(LINEBREAK_REGEX, ""); + newTextAfter = desiredStyle === "after" || textAfter.trim() ? textAfter : textAfter.replace(LINEBREAK_REGEX, ""); + + // If there was no change (due to interfering comments), don't output a fix. + if (newTextBefore === textBefore && newTextAfter === textAfter) { + return null; + } + } + + if (newTextAfter === "" && tokenAfter.type === "Punctuator" && "+-".includes(operatorToken.value) && tokenAfter.value === operatorToken.value) { + + // To avoid accidentally creating a ++ or -- operator, insert a space if the operator is a +/- and the following token is a unary +/-. + newTextAfter += " "; + } + + return fixer.replaceTextRange([tokenBefore.range[1], tokenAfter.range[0]], newTextBefore + operatorToken.value + newTextAfter); + }; + } + + /** + * Checks the operator placement + * @param {ASTNode} node The node to check + * @param {ASTNode} rightSide The node that comes after the operator in `node` + * @param {string} operator The operator + * @private + * @returns {void} + */ + function validateNode(node, rightSide, operator) { + + /* + * Find the operator token by searching from the right side, because between the left side and the operator + * there could be additional tokens from type annotations. Search specifically for the token which + * value equals the operator, in order to skip possible opening parentheses before the right side node. + */ + const operatorToken = sourceCode.getTokenBefore(rightSide, token => token.value === operator); + const leftToken = sourceCode.getTokenBefore(operatorToken); + const rightToken = sourceCode.getTokenAfter(operatorToken); + const operatorStyleOverride = styleOverrides[operator]; + const style = operatorStyleOverride || globalStyle; + const fix = getFixer(operatorToken, style); + + // if single line + if (astUtils.isTokenOnSameLine(leftToken, operatorToken) && + astUtils.isTokenOnSameLine(operatorToken, rightToken)) { + + // do nothing. + + } else if (operatorStyleOverride !== "ignore" && !astUtils.isTokenOnSameLine(leftToken, operatorToken) && + !astUtils.isTokenOnSameLine(operatorToken, rightToken)) { + + // lone operator + context.report({ + node, + loc: operatorToken.loc, + messageId: "badLinebreak", + data: { + operator + }, + fix + }); + + } else if (style === "before" && astUtils.isTokenOnSameLine(leftToken, operatorToken)) { + + context.report({ + node, + loc: operatorToken.loc, + messageId: "operatorAtBeginning", + data: { + operator + }, + fix + }); + + } else if (style === "after" && astUtils.isTokenOnSameLine(operatorToken, rightToken)) { + + context.report({ + node, + loc: operatorToken.loc, + messageId: "operatorAtEnd", + data: { + operator + }, + fix + }); + + } else if (style === "none") { + + context.report({ + node, + loc: operatorToken.loc, + messageId: "noLinebreak", + data: { + operator + }, + fix + }); + + } + } + + /** + * Validates a binary expression using `validateNode` + * @param {BinaryExpression|LogicalExpression|AssignmentExpression} node node to be validated + * @returns {void} + */ + function validateBinaryExpression(node) { + validateNode(node, node.right, node.operator); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + BinaryExpression: validateBinaryExpression, + LogicalExpression: validateBinaryExpression, + AssignmentExpression: validateBinaryExpression, + VariableDeclarator(node) { + if (node.init) { + validateNode(node, node.init, "="); + } + }, + PropertyDefinition(node) { + if (node.value) { + validateNode(node, node.value, "="); + } + }, + ConditionalExpression(node) { + validateNode(node, node.consequent, "?"); + validateNode(node, node.alternate, ":"); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/padded-blocks.js b/node_modules/eslint/lib/rules/padded-blocks.js new file mode 100644 index 0000000..bc19428 --- /dev/null +++ b/node_modules/eslint/lib/rules/padded-blocks.js @@ -0,0 +1,307 @@ +/** + * @fileoverview A rule to ensure blank lines within blocks. + * @author Mathias Schreck + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow padding within blocks", + recommended: false, + url: "https://eslint.org/docs/rules/padded-blocks" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + blocks: { + enum: ["always", "never"] + }, + switches: { + enum: ["always", "never"] + }, + classes: { + enum: ["always", "never"] + } + }, + additionalProperties: false, + minProperties: 1 + } + ] + }, + { + type: "object", + properties: { + allowSingleLineBlocks: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + + messages: { + alwaysPadBlock: "Block must be padded by blank lines.", + neverPadBlock: "Block must not be padded by blank lines." + } + }, + + create(context) { + const options = {}; + const typeOptions = context.options[0] || "always"; + const exceptOptions = context.options[1] || {}; + + if (typeof typeOptions === "string") { + const shouldHavePadding = typeOptions === "always"; + + options.blocks = shouldHavePadding; + options.switches = shouldHavePadding; + options.classes = shouldHavePadding; + } else { + if (Object.prototype.hasOwnProperty.call(typeOptions, "blocks")) { + options.blocks = typeOptions.blocks === "always"; + } + if (Object.prototype.hasOwnProperty.call(typeOptions, "switches")) { + options.switches = typeOptions.switches === "always"; + } + if (Object.prototype.hasOwnProperty.call(typeOptions, "classes")) { + options.classes = typeOptions.classes === "always"; + } + } + + if (Object.prototype.hasOwnProperty.call(exceptOptions, "allowSingleLineBlocks")) { + options.allowSingleLineBlocks = exceptOptions.allowSingleLineBlocks === true; + } + + const sourceCode = context.getSourceCode(); + + /** + * Gets the open brace token from a given node. + * @param {ASTNode} node A BlockStatement or SwitchStatement node from which to get the open brace. + * @returns {Token} The token of the open brace. + */ + function getOpenBrace(node) { + if (node.type === "SwitchStatement") { + return sourceCode.getTokenBefore(node.cases[0]); + } + + if (node.type === "StaticBlock") { + return sourceCode.getFirstToken(node, { skip: 1 }); // skip the `static` token + } + + // `BlockStatement` or `ClassBody` + return sourceCode.getFirstToken(node); + } + + /** + * Checks if the given parameter is a comment node + * @param {ASTNode|Token} node An AST node or token + * @returns {boolean} True if node is a comment + */ + function isComment(node) { + return node.type === "Line" || node.type === "Block"; + } + + /** + * Checks if there is padding between two tokens + * @param {Token} first The first token + * @param {Token} second The second token + * @returns {boolean} True if there is at least a line between the tokens + */ + function isPaddingBetweenTokens(first, second) { + return second.loc.start.line - first.loc.end.line >= 2; + } + + + /** + * Checks if the given token has a blank line after it. + * @param {Token} token The token to check. + * @returns {boolean} Whether or not the token is followed by a blank line. + */ + function getFirstBlockToken(token) { + let prev, + first = token; + + do { + prev = first; + first = sourceCode.getTokenAfter(first, { includeComments: true }); + } while (isComment(first) && first.loc.start.line === prev.loc.end.line); + + return first; + } + + /** + * Checks if the given token is preceded by a blank line. + * @param {Token} token The token to check + * @returns {boolean} Whether or not the token is preceded by a blank line + */ + function getLastBlockToken(token) { + let last = token, + next; + + do { + next = last; + last = sourceCode.getTokenBefore(last, { includeComments: true }); + } while (isComment(last) && last.loc.end.line === next.loc.start.line); + + return last; + } + + /** + * Checks if a node should be padded, according to the rule config. + * @param {ASTNode} node The AST node to check. + * @throws {Error} (Unreachable) + * @returns {boolean} True if the node should be padded, false otherwise. + */ + function requirePaddingFor(node) { + switch (node.type) { + case "BlockStatement": + case "StaticBlock": + return options.blocks; + case "SwitchStatement": + return options.switches; + case "ClassBody": + return options.classes; + + /* c8 ignore next */ + default: + throw new Error("unreachable"); + } + } + + /** + * Checks the given BlockStatement node to be padded if the block is not empty. + * @param {ASTNode} node The AST node of a BlockStatement. + * @returns {void} undefined. + */ + function checkPadding(node) { + const openBrace = getOpenBrace(node), + firstBlockToken = getFirstBlockToken(openBrace), + tokenBeforeFirst = sourceCode.getTokenBefore(firstBlockToken, { includeComments: true }), + closeBrace = sourceCode.getLastToken(node), + lastBlockToken = getLastBlockToken(closeBrace), + tokenAfterLast = sourceCode.getTokenAfter(lastBlockToken, { includeComments: true }), + blockHasTopPadding = isPaddingBetweenTokens(tokenBeforeFirst, firstBlockToken), + blockHasBottomPadding = isPaddingBetweenTokens(lastBlockToken, tokenAfterLast); + + if (options.allowSingleLineBlocks && astUtils.isTokenOnSameLine(tokenBeforeFirst, tokenAfterLast)) { + return; + } + + if (requirePaddingFor(node)) { + + if (!blockHasTopPadding) { + context.report({ + node, + loc: { + start: tokenBeforeFirst.loc.start, + end: firstBlockToken.loc.start + }, + fix(fixer) { + return fixer.insertTextAfter(tokenBeforeFirst, "\n"); + }, + messageId: "alwaysPadBlock" + }); + } + if (!blockHasBottomPadding) { + context.report({ + node, + loc: { + end: tokenAfterLast.loc.start, + start: lastBlockToken.loc.end + }, + fix(fixer) { + return fixer.insertTextBefore(tokenAfterLast, "\n"); + }, + messageId: "alwaysPadBlock" + }); + } + } else { + if (blockHasTopPadding) { + + context.report({ + node, + loc: { + start: tokenBeforeFirst.loc.start, + end: firstBlockToken.loc.start + }, + fix(fixer) { + return fixer.replaceTextRange([tokenBeforeFirst.range[1], firstBlockToken.range[0] - firstBlockToken.loc.start.column], "\n"); + }, + messageId: "neverPadBlock" + }); + } + + if (blockHasBottomPadding) { + + context.report({ + node, + loc: { + end: tokenAfterLast.loc.start, + start: lastBlockToken.loc.end + }, + messageId: "neverPadBlock", + fix(fixer) { + return fixer.replaceTextRange([lastBlockToken.range[1], tokenAfterLast.range[0] - tokenAfterLast.loc.start.column], "\n"); + } + }); + } + } + } + + const rule = {}; + + if (Object.prototype.hasOwnProperty.call(options, "switches")) { + rule.SwitchStatement = function(node) { + if (node.cases.length === 0) { + return; + } + checkPadding(node); + }; + } + + if (Object.prototype.hasOwnProperty.call(options, "blocks")) { + rule.BlockStatement = function(node) { + if (node.body.length === 0) { + return; + } + checkPadding(node); + }; + rule.StaticBlock = rule.BlockStatement; + } + + if (Object.prototype.hasOwnProperty.call(options, "classes")) { + rule.ClassBody = function(node) { + if (node.body.length === 0) { + return; + } + checkPadding(node); + }; + } + + return rule; + } +}; diff --git a/node_modules/eslint/lib/rules/padding-line-between-statements.js b/node_modules/eslint/lib/rules/padding-line-between-statements.js new file mode 100644 index 0000000..9d730bf --- /dev/null +++ b/node_modules/eslint/lib/rules/padding-line-between-statements.js @@ -0,0 +1,632 @@ +/** + * @fileoverview Rule to require or disallow newlines between statements + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const LT = `[${Array.from(astUtils.LINEBREAKS).join("")}]`; +const PADDING_LINE_SEQUENCE = new RegExp( + String.raw`^(\s*?${LT})\s*${LT}(\s*;?)$`, + "u" +); +const CJS_EXPORT = /^(?:module\s*\.\s*)?exports(?:\s*\.|\s*\[|$)/u; +const CJS_IMPORT = /^require\(/u; + +/** + * Creates tester which check if a node starts with specific keyword. + * @param {string} keyword The keyword to test. + * @returns {Object} the created tester. + * @private + */ +function newKeywordTester(keyword) { + return { + test: (node, sourceCode) => + sourceCode.getFirstToken(node).value === keyword + }; +} + +/** + * Creates tester which check if a node starts with specific keyword and spans a single line. + * @param {string} keyword The keyword to test. + * @returns {Object} the created tester. + * @private + */ +function newSinglelineKeywordTester(keyword) { + return { + test: (node, sourceCode) => + node.loc.start.line === node.loc.end.line && + sourceCode.getFirstToken(node).value === keyword + }; +} + +/** + * Creates tester which check if a node starts with specific keyword and spans multiple lines. + * @param {string} keyword The keyword to test. + * @returns {Object} the created tester. + * @private + */ +function newMultilineKeywordTester(keyword) { + return { + test: (node, sourceCode) => + node.loc.start.line !== node.loc.end.line && + sourceCode.getFirstToken(node).value === keyword + }; +} + +/** + * Creates tester which check if a node is specific type. + * @param {string} type The node type to test. + * @returns {Object} the created tester. + * @private + */ +function newNodeTypeTester(type) { + return { + test: node => + node.type === type + }; +} + +/** + * Checks the given node is an expression statement of IIFE. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is an expression statement of IIFE. + * @private + */ +function isIIFEStatement(node) { + if (node.type === "ExpressionStatement") { + let call = astUtils.skipChainExpression(node.expression); + + if (call.type === "UnaryExpression") { + call = astUtils.skipChainExpression(call.argument); + } + return call.type === "CallExpression" && astUtils.isFunction(call.callee); + } + return false; +} + +/** + * Checks whether the given node is a block-like statement. + * This checks the last token of the node is the closing brace of a block. + * @param {SourceCode} sourceCode The source code to get tokens. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is a block-like statement. + * @private + */ +function isBlockLikeStatement(sourceCode, node) { + + // do-while with a block is a block-like statement. + if (node.type === "DoWhileStatement" && node.body.type === "BlockStatement") { + return true; + } + + /* + * IIFE is a block-like statement specially from + * JSCS#disallowPaddingNewLinesAfterBlocks. + */ + if (isIIFEStatement(node)) { + return true; + } + + // Checks the last token is a closing brace of blocks. + const lastToken = sourceCode.getLastToken(node, astUtils.isNotSemicolonToken); + const belongingNode = lastToken && astUtils.isClosingBraceToken(lastToken) + ? sourceCode.getNodeByRangeIndex(lastToken.range[0]) + : null; + + return Boolean(belongingNode) && ( + belongingNode.type === "BlockStatement" || + belongingNode.type === "SwitchStatement" + ); +} + +/** + * Check whether the given node is a directive or not. + * @param {ASTNode} node The node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {boolean} `true` if the node is a directive. + */ +function isDirective(node, sourceCode) { + return ( + node.type === "ExpressionStatement" && + ( + node.parent.type === "Program" || + ( + node.parent.type === "BlockStatement" && + astUtils.isFunction(node.parent.parent) + ) + ) && + node.expression.type === "Literal" && + typeof node.expression.value === "string" && + !astUtils.isParenthesised(sourceCode, node.expression) + ); +} + +/** + * Check whether the given node is a part of directive prologue or not. + * @param {ASTNode} node The node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {boolean} `true` if the node is a part of directive prologue. + */ +function isDirectivePrologue(node, sourceCode) { + if (isDirective(node, sourceCode)) { + for (const sibling of node.parent.body) { + if (sibling === node) { + break; + } + if (!isDirective(sibling, sourceCode)) { + return false; + } + } + return true; + } + return false; +} + +/** + * Gets the actual last token. + * + * If a semicolon is semicolon-less style's semicolon, this ignores it. + * For example: + * + * foo() + * ;[1, 2, 3].forEach(bar) + * @param {SourceCode} sourceCode The source code to get tokens. + * @param {ASTNode} node The node to get. + * @returns {Token} The actual last token. + * @private + */ +function getActualLastToken(sourceCode, node) { + const semiToken = sourceCode.getLastToken(node); + const prevToken = sourceCode.getTokenBefore(semiToken); + const nextToken = sourceCode.getTokenAfter(semiToken); + const isSemicolonLessStyle = Boolean( + prevToken && + nextToken && + prevToken.range[0] >= node.range[0] && + astUtils.isSemicolonToken(semiToken) && + semiToken.loc.start.line !== prevToken.loc.end.line && + semiToken.loc.end.line === nextToken.loc.start.line + ); + + return isSemicolonLessStyle ? prevToken : semiToken; +} + +/** + * This returns the concatenation of the first 2 captured strings. + * @param {string} _ Unused. Whole matched string. + * @param {string} trailingSpaces The trailing spaces of the first line. + * @param {string} indentSpaces The indentation spaces of the last line. + * @returns {string} The concatenation of trailingSpaces and indentSpaces. + * @private + */ +function replacerToRemovePaddingLines(_, trailingSpaces, indentSpaces) { + return trailingSpaces + indentSpaces; +} + +/** + * Check and report statements for `any` configuration. + * It does nothing. + * @returns {void} + * @private + */ +function verifyForAny() { +} + +/** + * Check and report statements for `never` configuration. + * This autofix removes blank lines between the given 2 statements. + * However, if comments exist between 2 blank lines, it does not remove those + * blank lines automatically. + * @param {RuleContext} context The rule context to report. + * @param {ASTNode} _ Unused. The previous node to check. + * @param {ASTNode} nextNode The next node to check. + * @param {Array} paddingLines The array of token pairs that blank + * lines exist between the pair. + * @returns {void} + * @private + */ +function verifyForNever(context, _, nextNode, paddingLines) { + if (paddingLines.length === 0) { + return; + } + + context.report({ + node: nextNode, + messageId: "unexpectedBlankLine", + fix(fixer) { + if (paddingLines.length >= 2) { + return null; + } + + const prevToken = paddingLines[0][0]; + const nextToken = paddingLines[0][1]; + const start = prevToken.range[1]; + const end = nextToken.range[0]; + const text = context.getSourceCode().text + .slice(start, end) + .replace(PADDING_LINE_SEQUENCE, replacerToRemovePaddingLines); + + return fixer.replaceTextRange([start, end], text); + } + }); +} + +/** + * Check and report statements for `always` configuration. + * This autofix inserts a blank line between the given 2 statements. + * If the `prevNode` has trailing comments, it inserts a blank line after the + * trailing comments. + * @param {RuleContext} context The rule context to report. + * @param {ASTNode} prevNode The previous node to check. + * @param {ASTNode} nextNode The next node to check. + * @param {Array} paddingLines The array of token pairs that blank + * lines exist between the pair. + * @returns {void} + * @private + */ +function verifyForAlways(context, prevNode, nextNode, paddingLines) { + if (paddingLines.length > 0) { + return; + } + + context.report({ + node: nextNode, + messageId: "expectedBlankLine", + fix(fixer) { + const sourceCode = context.getSourceCode(); + let prevToken = getActualLastToken(sourceCode, prevNode); + const nextToken = sourceCode.getFirstTokenBetween( + prevToken, + nextNode, + { + includeComments: true, + + /** + * Skip the trailing comments of the previous node. + * This inserts a blank line after the last trailing comment. + * + * For example: + * + * foo(); // trailing comment. + * // comment. + * bar(); + * + * Get fixed to: + * + * foo(); // trailing comment. + * + * // comment. + * bar(); + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is not a trailing comment. + * @private + */ + filter(token) { + if (astUtils.isTokenOnSameLine(prevToken, token)) { + prevToken = token; + return false; + } + return true; + } + } + ) || nextNode; + const insertText = astUtils.isTokenOnSameLine(prevToken, nextToken) + ? "\n\n" + : "\n"; + + return fixer.insertTextAfter(prevToken, insertText); + } + }); +} + +/** + * Types of blank lines. + * `any`, `never`, and `always` are defined. + * Those have `verify` method to check and report statements. + * @private + */ +const PaddingTypes = { + any: { verify: verifyForAny }, + never: { verify: verifyForNever }, + always: { verify: verifyForAlways } +}; + +/** + * Types of statements. + * Those have `test` method to check it matches to the given statement. + * @private + */ +const StatementTypes = { + "*": { test: () => true }, + "block-like": { + test: (node, sourceCode) => isBlockLikeStatement(sourceCode, node) + }, + "cjs-export": { + test: (node, sourceCode) => + node.type === "ExpressionStatement" && + node.expression.type === "AssignmentExpression" && + CJS_EXPORT.test(sourceCode.getText(node.expression.left)) + }, + "cjs-import": { + test: (node, sourceCode) => + node.type === "VariableDeclaration" && + node.declarations.length > 0 && + Boolean(node.declarations[0].init) && + CJS_IMPORT.test(sourceCode.getText(node.declarations[0].init)) + }, + directive: { + test: isDirectivePrologue + }, + expression: { + test: (node, sourceCode) => + node.type === "ExpressionStatement" && + !isDirectivePrologue(node, sourceCode) + }, + iife: { + test: isIIFEStatement + }, + "multiline-block-like": { + test: (node, sourceCode) => + node.loc.start.line !== node.loc.end.line && + isBlockLikeStatement(sourceCode, node) + }, + "multiline-expression": { + test: (node, sourceCode) => + node.loc.start.line !== node.loc.end.line && + node.type === "ExpressionStatement" && + !isDirectivePrologue(node, sourceCode) + }, + + "multiline-const": newMultilineKeywordTester("const"), + "multiline-let": newMultilineKeywordTester("let"), + "multiline-var": newMultilineKeywordTester("var"), + "singleline-const": newSinglelineKeywordTester("const"), + "singleline-let": newSinglelineKeywordTester("let"), + "singleline-var": newSinglelineKeywordTester("var"), + + block: newNodeTypeTester("BlockStatement"), + empty: newNodeTypeTester("EmptyStatement"), + function: newNodeTypeTester("FunctionDeclaration"), + + break: newKeywordTester("break"), + case: newKeywordTester("case"), + class: newKeywordTester("class"), + const: newKeywordTester("const"), + continue: newKeywordTester("continue"), + debugger: newKeywordTester("debugger"), + default: newKeywordTester("default"), + do: newKeywordTester("do"), + export: newKeywordTester("export"), + for: newKeywordTester("for"), + if: newKeywordTester("if"), + import: newKeywordTester("import"), + let: newKeywordTester("let"), + return: newKeywordTester("return"), + switch: newKeywordTester("switch"), + throw: newKeywordTester("throw"), + try: newKeywordTester("try"), + var: newKeywordTester("var"), + while: newKeywordTester("while"), + with: newKeywordTester("with") +}; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow padding lines between statements", + recommended: false, + url: "https://eslint.org/docs/rules/padding-line-between-statements" + }, + + fixable: "whitespace", + + schema: { + definitions: { + paddingType: { + enum: Object.keys(PaddingTypes) + }, + statementType: { + anyOf: [ + { enum: Object.keys(StatementTypes) }, + { + type: "array", + items: { enum: Object.keys(StatementTypes) }, + minItems: 1, + uniqueItems: true + } + ] + } + }, + type: "array", + items: { + type: "object", + properties: { + blankLine: { $ref: "#/definitions/paddingType" }, + prev: { $ref: "#/definitions/statementType" }, + next: { $ref: "#/definitions/statementType" } + }, + additionalProperties: false, + required: ["blankLine", "prev", "next"] + } + }, + + messages: { + unexpectedBlankLine: "Unexpected blank line before this statement.", + expectedBlankLine: "Expected blank line before this statement." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const configureList = context.options || []; + let scopeInfo = null; + + /** + * Processes to enter to new scope. + * This manages the current previous statement. + * @returns {void} + * @private + */ + function enterScope() { + scopeInfo = { + upper: scopeInfo, + prevNode: null + }; + } + + /** + * Processes to exit from the current scope. + * @returns {void} + * @private + */ + function exitScope() { + scopeInfo = scopeInfo.upper; + } + + /** + * Checks whether the given node matches the given type. + * @param {ASTNode} node The statement node to check. + * @param {string|string[]} type The statement type to check. + * @returns {boolean} `true` if the statement node matched the type. + * @private + */ + function match(node, type) { + let innerStatementNode = node; + + while (innerStatementNode.type === "LabeledStatement") { + innerStatementNode = innerStatementNode.body; + } + if (Array.isArray(type)) { + return type.some(match.bind(null, innerStatementNode)); + } + return StatementTypes[type].test(innerStatementNode, sourceCode); + } + + /** + * Finds the last matched configure from configureList. + * @param {ASTNode} prevNode The previous statement to match. + * @param {ASTNode} nextNode The current statement to match. + * @returns {Object} The tester of the last matched configure. + * @private + */ + function getPaddingType(prevNode, nextNode) { + for (let i = configureList.length - 1; i >= 0; --i) { + const configure = configureList[i]; + const matched = + match(prevNode, configure.prev) && + match(nextNode, configure.next); + + if (matched) { + return PaddingTypes[configure.blankLine]; + } + } + return PaddingTypes.any; + } + + /** + * Gets padding line sequences between the given 2 statements. + * Comments are separators of the padding line sequences. + * @param {ASTNode} prevNode The previous statement to count. + * @param {ASTNode} nextNode The current statement to count. + * @returns {Array} The array of token pairs. + * @private + */ + function getPaddingLineSequences(prevNode, nextNode) { + const pairs = []; + let prevToken = getActualLastToken(sourceCode, prevNode); + + if (nextNode.loc.start.line - prevToken.loc.end.line >= 2) { + do { + const token = sourceCode.getTokenAfter( + prevToken, + { includeComments: true } + ); + + if (token.loc.start.line - prevToken.loc.end.line >= 2) { + pairs.push([prevToken, token]); + } + prevToken = token; + + } while (prevToken.range[0] < nextNode.range[0]); + } + + return pairs; + } + + /** + * Verify padding lines between the given node and the previous node. + * @param {ASTNode} node The node to verify. + * @returns {void} + * @private + */ + function verify(node) { + const parentType = node.parent.type; + const validParent = + astUtils.STATEMENT_LIST_PARENTS.has(parentType) || + parentType === "SwitchStatement"; + + if (!validParent) { + return; + } + + // Save this node as the current previous statement. + const prevNode = scopeInfo.prevNode; + + // Verify. + if (prevNode) { + const type = getPaddingType(prevNode, node); + const paddingLines = getPaddingLineSequences(prevNode, node); + + type.verify(context, prevNode, node, paddingLines); + } + + scopeInfo.prevNode = node; + } + + /** + * Verify padding lines between the given node and the previous node. + * Then process to enter to new scope. + * @param {ASTNode} node The node to verify. + * @returns {void} + * @private + */ + function verifyThenEnterScope(node) { + verify(node); + enterScope(); + } + + return { + Program: enterScope, + BlockStatement: enterScope, + SwitchStatement: enterScope, + StaticBlock: enterScope, + "Program:exit": exitScope, + "BlockStatement:exit": exitScope, + "SwitchStatement:exit": exitScope, + "StaticBlock:exit": exitScope, + + ":statement": verify, + + SwitchCase: verifyThenEnterScope, + "SwitchCase:exit": exitScope + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-arrow-callback.js b/node_modules/eslint/lib/rules/prefer-arrow-callback.js new file mode 100644 index 0000000..8af7161 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-arrow-callback.js @@ -0,0 +1,380 @@ +/** + * @fileoverview A rule to suggest using arrow functions as callbacks. + * @author Toru Nagashima + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given variable is a function name. + * @param {eslint-scope.Variable} variable A variable to check. + * @returns {boolean} `true` if the variable is a function name. + */ +function isFunctionName(variable) { + return variable && variable.defs[0].type === "FunctionName"; +} + +/** + * Checks whether or not a given MetaProperty node equals to a given value. + * @param {ASTNode} node A MetaProperty node to check. + * @param {string} metaName The name of `MetaProperty.meta`. + * @param {string} propertyName The name of `MetaProperty.property`. + * @returns {boolean} `true` if the node is the specific value. + */ +function checkMetaProperty(node, metaName, propertyName) { + return node.meta.name === metaName && node.property.name === propertyName; +} + +/** + * Gets the variable object of `arguments` which is defined implicitly. + * @param {eslint-scope.Scope} scope A scope to get. + * @returns {eslint-scope.Variable} The found variable object. + */ +function getVariableOfArguments(scope) { + const variables = scope.variables; + + for (let i = 0; i < variables.length; ++i) { + const variable = variables[i]; + + if (variable.name === "arguments") { + + /* + * If there was a parameter which is named "arguments", the + * implicit "arguments" is not defined. + * So does fast return with null. + */ + return (variable.identifiers.length === 0) ? variable : null; + } + } + + /* c8 ignore next */ + return null; +} + +/** + * Checks whether or not a given node is a callback. + * @param {ASTNode} node A node to check. + * @throws {Error} (Unreachable.) + * @returns {Object} + * {boolean} retv.isCallback - `true` if the node is a callback. + * {boolean} retv.isLexicalThis - `true` if the node is with `.bind(this)`. + */ +function getCallbackInfo(node) { + const retv = { isCallback: false, isLexicalThis: false }; + let currentNode = node; + let parent = node.parent; + let bound = false; + + while (currentNode) { + switch (parent.type) { + + // Checks parents recursively. + + case "LogicalExpression": + case "ChainExpression": + case "ConditionalExpression": + break; + + // Checks whether the parent node is `.bind(this)` call. + case "MemberExpression": + if ( + parent.object === currentNode && + !parent.property.computed && + parent.property.type === "Identifier" && + parent.property.name === "bind" + ) { + const maybeCallee = parent.parent.type === "ChainExpression" + ? parent.parent + : parent; + + if (astUtils.isCallee(maybeCallee)) { + if (!bound) { + bound = true; // Use only the first `.bind()` to make `isLexicalThis` value. + retv.isLexicalThis = ( + maybeCallee.parent.arguments.length === 1 && + maybeCallee.parent.arguments[0].type === "ThisExpression" + ); + } + parent = maybeCallee.parent; + } else { + return retv; + } + } else { + return retv; + } + break; + + // Checks whether the node is a callback. + case "CallExpression": + case "NewExpression": + if (parent.callee !== currentNode) { + retv.isCallback = true; + } + return retv; + + default: + return retv; + } + + currentNode = parent; + parent = parent.parent; + } + + /* c8 ignore next */ + throw new Error("unreachable"); +} + +/** + * Checks whether a simple list of parameters contains any duplicates. This does not handle complex + * parameter lists (e.g. with destructuring), since complex parameter lists are a SyntaxError with duplicate + * parameter names anyway. Instead, it always returns `false` for complex parameter lists. + * @param {ASTNode[]} paramsList The list of parameters for a function + * @returns {boolean} `true` if the list of parameters contains any duplicates + */ +function hasDuplicateParams(paramsList) { + return paramsList.every(param => param.type === "Identifier") && paramsList.length !== new Set(paramsList.map(param => param.name)).size; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require using arrow functions for callbacks", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-arrow-callback" + }, + + schema: [ + { + type: "object", + properties: { + allowNamedFunctions: { + type: "boolean", + default: false + }, + allowUnboundThis: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + fixable: "code", + + messages: { + preferArrowCallback: "Unexpected function expression." + } + }, + + create(context) { + const options = context.options[0] || {}; + + const allowUnboundThis = options.allowUnboundThis !== false; // default to true + const allowNamedFunctions = options.allowNamedFunctions; + const sourceCode = context.getSourceCode(); + + /* + * {Array<{this: boolean, super: boolean, meta: boolean}>} + * - this - A flag which shows there are one or more ThisExpression. + * - super - A flag which shows there are one or more Super. + * - meta - A flag which shows there are one or more MethProperty. + */ + let stack = []; + + /** + * Pushes new function scope with all `false` flags. + * @returns {void} + */ + function enterScope() { + stack.push({ this: false, super: false, meta: false }); + } + + /** + * Pops a function scope from the stack. + * @returns {{this: boolean, super: boolean, meta: boolean}} The information of the last scope. + */ + function exitScope() { + return stack.pop(); + } + + return { + + // Reset internal state. + Program() { + stack = []; + }, + + // If there are below, it cannot replace with arrow functions merely. + ThisExpression() { + const info = stack[stack.length - 1]; + + if (info) { + info.this = true; + } + }, + + Super() { + const info = stack[stack.length - 1]; + + if (info) { + info.super = true; + } + }, + + MetaProperty(node) { + const info = stack[stack.length - 1]; + + if (info && checkMetaProperty(node, "new", "target")) { + info.meta = true; + } + }, + + // To skip nested scopes. + FunctionDeclaration: enterScope, + "FunctionDeclaration:exit": exitScope, + + // Main. + FunctionExpression: enterScope, + "FunctionExpression:exit"(node) { + const scopeInfo = exitScope(); + + // Skip named function expressions + if (allowNamedFunctions && node.id && node.id.name) { + return; + } + + // Skip generators. + if (node.generator) { + return; + } + + // Skip recursive functions. + const nameVar = context.getDeclaredVariables(node)[0]; + + if (isFunctionName(nameVar) && nameVar.references.length > 0) { + return; + } + + // Skip if it's using arguments. + const variable = getVariableOfArguments(context.getScope()); + + if (variable && variable.references.length > 0) { + return; + } + + // Reports if it's a callback which can replace with arrows. + const callbackInfo = getCallbackInfo(node); + + if (callbackInfo.isCallback && + (!allowUnboundThis || !scopeInfo.this || callbackInfo.isLexicalThis) && + !scopeInfo.super && + !scopeInfo.meta + ) { + context.report({ + node, + messageId: "preferArrowCallback", + *fix(fixer) { + if ((!callbackInfo.isLexicalThis && scopeInfo.this) || hasDuplicateParams(node.params)) { + + /* + * If the callback function does not have .bind(this) and contains a reference to `this`, there + * is no way to determine what `this` should be, so don't perform any fixes. + * If the callback function has duplicates in its list of parameters (possible in sloppy mode), + * don't replace it with an arrow function, because this is a SyntaxError with arrow functions. + */ + return; + } + + // Remove `.bind(this)` if exists. + if (callbackInfo.isLexicalThis) { + const memberNode = node.parent; + + /* + * If `.bind(this)` exists but the parent is not `.bind(this)`, don't remove it automatically. + * E.g. `(foo || function(){}).bind(this)` + */ + if (memberNode.type !== "MemberExpression") { + return; + } + + const callNode = memberNode.parent; + const firstTokenToRemove = sourceCode.getTokenAfter(memberNode.object, astUtils.isNotClosingParenToken); + const lastTokenToRemove = sourceCode.getLastToken(callNode); + + /* + * If the member expression is parenthesized, don't remove the right paren. + * E.g. `(function(){}.bind)(this)` + * ^^^^^^^^^^^^ + */ + if (astUtils.isParenthesised(sourceCode, memberNode)) { + return; + } + + // If comments exist in the `.bind(this)`, don't remove those. + if (sourceCode.commentsExistBetween(firstTokenToRemove, lastTokenToRemove)) { + return; + } + + yield fixer.removeRange([firstTokenToRemove.range[0], lastTokenToRemove.range[1]]); + } + + // Convert the function expression to an arrow function. + const functionToken = sourceCode.getFirstToken(node, node.async ? 1 : 0); + const leftParenToken = sourceCode.getTokenAfter(functionToken, astUtils.isOpeningParenToken); + + if (sourceCode.commentsExistBetween(functionToken, leftParenToken)) { + + // Remove only extra tokens to keep comments. + yield fixer.remove(functionToken); + if (node.id) { + yield fixer.remove(node.id); + } + } else { + + // Remove extra tokens and spaces. + yield fixer.removeRange([functionToken.range[0], leftParenToken.range[0]]); + } + yield fixer.insertTextBefore(node.body, "=> "); + + // Get the node that will become the new arrow function. + let replacedNode = callbackInfo.isLexicalThis ? node.parent.parent : node; + + if (replacedNode.type === "ChainExpression") { + replacedNode = replacedNode.parent; + } + + /* + * If the replaced node is part of a BinaryExpression, LogicalExpression, or MemberExpression, then + * the arrow function needs to be parenthesized, because `foo || () => {}` is invalid syntax even + * though `foo || function() {}` is valid. + */ + if ( + replacedNode.parent.type !== "CallExpression" && + replacedNode.parent.type !== "ConditionalExpression" && + !astUtils.isParenthesised(sourceCode, replacedNode) && + !astUtils.isParenthesised(sourceCode, node) + ) { + yield fixer.insertTextBefore(replacedNode, "("); + yield fixer.insertTextAfter(replacedNode, ")"); + } + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-const.js b/node_modules/eslint/lib/rules/prefer-const.js new file mode 100644 index 0000000..e3d2db7 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-const.js @@ -0,0 +1,501 @@ +/** + * @fileoverview A rule to suggest using of const declaration for variables that are never reassigned after declared. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const FixTracker = require("./utils/fix-tracker"); +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const PATTERN_TYPE = /^(?:.+?Pattern|RestElement|SpreadProperty|ExperimentalRestProperty|Property)$/u; +const DECLARATION_HOST_TYPE = /^(?:Program|BlockStatement|StaticBlock|SwitchCase)$/u; +const DESTRUCTURING_HOST_TYPE = /^(?:VariableDeclarator|AssignmentExpression)$/u; + +/** + * Checks whether a given node is located at `ForStatement.init` or not. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is located at `ForStatement.init`. + */ +function isInitOfForStatement(node) { + return node.parent.type === "ForStatement" && node.parent.init === node; +} + +/** + * Checks whether a given Identifier node becomes a VariableDeclaration or not. + * @param {ASTNode} identifier An Identifier node to check. + * @returns {boolean} `true` if the node can become a VariableDeclaration. + */ +function canBecomeVariableDeclaration(identifier) { + let node = identifier.parent; + + while (PATTERN_TYPE.test(node.type)) { + node = node.parent; + } + + return ( + node.type === "VariableDeclarator" || + ( + node.type === "AssignmentExpression" && + node.parent.type === "ExpressionStatement" && + DECLARATION_HOST_TYPE.test(node.parent.parent.type) + ) + ); +} + +/** + * Checks if an property or element is from outer scope or function parameters + * in destructing pattern. + * @param {string} name A variable name to be checked. + * @param {eslint-scope.Scope} initScope A scope to start find. + * @returns {boolean} Indicates if the variable is from outer scope or function parameters. + */ +function isOuterVariableInDestructing(name, initScope) { + + if (initScope.through.some(ref => ref.resolved && ref.resolved.name === name)) { + return true; + } + + const variable = astUtils.getVariableByName(initScope, name); + + if (variable !== null) { + return variable.defs.some(def => def.type === "Parameter"); + } + + return false; +} + +/** + * Gets the VariableDeclarator/AssignmentExpression node that a given reference + * belongs to. + * This is used to detect a mix of reassigned and never reassigned in a + * destructuring. + * @param {eslint-scope.Reference} reference A reference to get. + * @returns {ASTNode|null} A VariableDeclarator/AssignmentExpression node or + * null. + */ +function getDestructuringHost(reference) { + if (!reference.isWrite()) { + return null; + } + let node = reference.identifier.parent; + + while (PATTERN_TYPE.test(node.type)) { + node = node.parent; + } + + if (!DESTRUCTURING_HOST_TYPE.test(node.type)) { + return null; + } + return node; +} + +/** + * Determines if a destructuring assignment node contains + * any MemberExpression nodes. This is used to determine if a + * variable that is only written once using destructuring can be + * safely converted into a const declaration. + * @param {ASTNode} node The ObjectPattern or ArrayPattern node to check. + * @returns {boolean} True if the destructuring pattern contains + * a MemberExpression, false if not. + */ +function hasMemberExpressionAssignment(node) { + switch (node.type) { + case "ObjectPattern": + return node.properties.some(prop => { + if (prop) { + + /* + * Spread elements have an argument property while + * others have a value property. Because different + * parsers use different node types for spread elements, + * we just check if there is an argument property. + */ + return hasMemberExpressionAssignment(prop.argument || prop.value); + } + + return false; + }); + + case "ArrayPattern": + return node.elements.some(element => { + if (element) { + return hasMemberExpressionAssignment(element); + } + + return false; + }); + + case "AssignmentPattern": + return hasMemberExpressionAssignment(node.left); + + case "MemberExpression": + return true; + + // no default + } + + return false; +} + +/** + * Gets an identifier node of a given variable. + * + * If the initialization exists or one or more reading references exist before + * the first assignment, the identifier node is the node of the declaration. + * Otherwise, the identifier node is the node of the first assignment. + * + * If the variable should not change to const, this function returns null. + * - If the variable is reassigned. + * - If the variable is never initialized nor assigned. + * - If the variable is initialized in a different scope from the declaration. + * - If the unique assignment of the variable cannot change to a declaration. + * e.g. `if (a) b = 1` / `return (b = 1)` + * - If the variable is declared in the global scope and `eslintUsed` is `true`. + * `/*exported foo` directive comment makes such variables. This rule does not + * warn such variables because this rule cannot distinguish whether the + * exported variables are reassigned or not. + * @param {eslint-scope.Variable} variable A variable to get. + * @param {boolean} ignoreReadBeforeAssign + * The value of `ignoreReadBeforeAssign` option. + * @returns {ASTNode|null} + * An Identifier node if the variable should change to const. + * Otherwise, null. + */ +function getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign) { + if (variable.eslintUsed && variable.scope.type === "global") { + return null; + } + + // Finds the unique WriteReference. + let writer = null; + let isReadBeforeInit = false; + const references = variable.references; + + for (let i = 0; i < references.length; ++i) { + const reference = references[i]; + + if (reference.isWrite()) { + const isReassigned = ( + writer !== null && + writer.identifier !== reference.identifier + ); + + if (isReassigned) { + return null; + } + + const destructuringHost = getDestructuringHost(reference); + + if (destructuringHost !== null && destructuringHost.left !== void 0) { + const leftNode = destructuringHost.left; + let hasOuterVariables = false, + hasNonIdentifiers = false; + + if (leftNode.type === "ObjectPattern") { + const properties = leftNode.properties; + + hasOuterVariables = properties + .filter(prop => prop.value) + .map(prop => prop.value.name) + .some(name => isOuterVariableInDestructing(name, variable.scope)); + + hasNonIdentifiers = hasMemberExpressionAssignment(leftNode); + + } else if (leftNode.type === "ArrayPattern") { + const elements = leftNode.elements; + + hasOuterVariables = elements + .map(element => element && element.name) + .some(name => isOuterVariableInDestructing(name, variable.scope)); + + hasNonIdentifiers = hasMemberExpressionAssignment(leftNode); + } + + if (hasOuterVariables || hasNonIdentifiers) { + return null; + } + + } + + writer = reference; + + } else if (reference.isRead() && writer === null) { + if (ignoreReadBeforeAssign) { + return null; + } + isReadBeforeInit = true; + } + } + + /* + * If the assignment is from a different scope, ignore it. + * If the assignment cannot change to a declaration, ignore it. + */ + const shouldBeConst = ( + writer !== null && + writer.from === variable.scope && + canBecomeVariableDeclaration(writer.identifier) + ); + + if (!shouldBeConst) { + return null; + } + + if (isReadBeforeInit) { + return variable.defs[0].name; + } + + return writer.identifier; +} + +/** + * Groups by the VariableDeclarator/AssignmentExpression node that each + * reference of given variables belongs to. + * This is used to detect a mix of reassigned and never reassigned in a + * destructuring. + * @param {eslint-scope.Variable[]} variables Variables to group by destructuring. + * @param {boolean} ignoreReadBeforeAssign + * The value of `ignoreReadBeforeAssign` option. + * @returns {Map} Grouped identifier nodes. + */ +function groupByDestructuring(variables, ignoreReadBeforeAssign) { + const identifierMap = new Map(); + + for (let i = 0; i < variables.length; ++i) { + const variable = variables[i]; + const references = variable.references; + const identifier = getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign); + let prevId = null; + + for (let j = 0; j < references.length; ++j) { + const reference = references[j]; + const id = reference.identifier; + + /* + * Avoid counting a reference twice or more for default values of + * destructuring. + */ + if (id === prevId) { + continue; + } + prevId = id; + + // Add the identifier node into the destructuring group. + const group = getDestructuringHost(reference); + + if (group) { + if (identifierMap.has(group)) { + identifierMap.get(group).push(identifier); + } else { + identifierMap.set(group, [identifier]); + } + } + } + } + + return identifierMap; +} + +/** + * Finds the nearest parent of node with a given type. + * @param {ASTNode} node The node to search from. + * @param {string} type The type field of the parent node. + * @param {Function} shouldStop A predicate that returns true if the traversal should stop, and false otherwise. + * @returns {ASTNode} The closest ancestor with the specified type; null if no such ancestor exists. + */ +function findUp(node, type, shouldStop) { + if (!node || shouldStop(node)) { + return null; + } + if (node.type === type) { + return node; + } + return findUp(node.parent, type, shouldStop); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require `const` declarations for variables that are never reassigned after declared", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-const" + }, + + fixable: "code", + + schema: [ + { + type: "object", + properties: { + destructuring: { enum: ["any", "all"], default: "any" }, + ignoreReadBeforeAssign: { type: "boolean", default: false } + }, + additionalProperties: false + } + ], + messages: { + useConst: "'{{name}}' is never reassigned. Use 'const' instead." + } + }, + + create(context) { + const options = context.options[0] || {}; + const sourceCode = context.getSourceCode(); + const shouldMatchAnyDestructuredVariable = options.destructuring !== "all"; + const ignoreReadBeforeAssign = options.ignoreReadBeforeAssign === true; + const variables = []; + let reportCount = 0; + let checkedId = null; + let checkedName = ""; + + + /** + * Reports given identifier nodes if all of the nodes should be declared + * as const. + * + * The argument 'nodes' is an array of Identifier nodes. + * This node is the result of 'getIdentifierIfShouldBeConst()', so it's + * nullable. In simple declaration or assignment cases, the length of + * the array is 1. In destructuring cases, the length of the array can + * be 2 or more. + * @param {(eslint-scope.Reference|null)[]} nodes + * References which are grouped by destructuring to report. + * @returns {void} + */ + function checkGroup(nodes) { + const nodesToReport = nodes.filter(Boolean); + + if (nodes.length && (shouldMatchAnyDestructuredVariable || nodesToReport.length === nodes.length)) { + const varDeclParent = findUp(nodes[0], "VariableDeclaration", parentNode => parentNode.type.endsWith("Statement")); + const isVarDecParentNull = varDeclParent === null; + + if (!isVarDecParentNull && varDeclParent.declarations.length > 0) { + const firstDeclaration = varDeclParent.declarations[0]; + + if (firstDeclaration.init) { + const firstDecParent = firstDeclaration.init.parent; + + /* + * First we check the declaration type and then depending on + * if the type is a "VariableDeclarator" or its an "ObjectPattern" + * we compare the name and id from the first identifier, if the names are different + * we assign the new name, id and reset the count of reportCount and nodeCount in + * order to check each block for the number of reported errors and base our fix + * based on comparing nodes.length and nodesToReport.length. + */ + + if (firstDecParent.type === "VariableDeclarator") { + + if (firstDecParent.id.name !== checkedName) { + checkedName = firstDecParent.id.name; + reportCount = 0; + } + + if (firstDecParent.id.type === "ObjectPattern") { + if (firstDecParent.init.name !== checkedName) { + checkedName = firstDecParent.init.name; + reportCount = 0; + } + } + + if (firstDecParent.id !== checkedId) { + checkedId = firstDecParent.id; + reportCount = 0; + } + } + } + } + + let shouldFix = varDeclParent && + + // Don't do a fix unless all variables in the declarations are initialized (or it's in a for-in or for-of loop) + (varDeclParent.parent.type === "ForInStatement" || varDeclParent.parent.type === "ForOfStatement" || + varDeclParent.declarations.every(declaration => declaration.init)) && + + /* + * If options.destructuring is "all", then this warning will not occur unless + * every assignment in the destructuring should be const. In that case, it's safe + * to apply the fix. + */ + nodesToReport.length === nodes.length; + + if (!isVarDecParentNull && varDeclParent.declarations && varDeclParent.declarations.length !== 1) { + + if (varDeclParent && varDeclParent.declarations && varDeclParent.declarations.length >= 1) { + + /* + * Add nodesToReport.length to a count, then comparing the count to the length + * of the declarations in the current block. + */ + + reportCount += nodesToReport.length; + + let totalDeclarationsCount = 0; + + varDeclParent.declarations.forEach(declaration => { + if (declaration.id.type === "ObjectPattern") { + totalDeclarationsCount += declaration.id.properties.length; + } else if (declaration.id.type === "ArrayPattern") { + totalDeclarationsCount += declaration.id.elements.length; + } else { + totalDeclarationsCount += 1; + } + }); + + shouldFix = shouldFix && (reportCount === totalDeclarationsCount); + } + } + + nodesToReport.forEach(node => { + context.report({ + node, + messageId: "useConst", + data: node, + fix: shouldFix + ? fixer => { + const letKeywordToken = sourceCode.getFirstToken(varDeclParent, t => t.value === varDeclParent.kind); + + /** + * Extend the replacement range to the whole declaration, + * in order to prevent other fixes in the same pass + * https://github.com/eslint/eslint/issues/13899 + */ + return new FixTracker(fixer, sourceCode) + .retainRange(varDeclParent.range) + .replaceTextRange(letKeywordToken.range, "const"); + } + : null + }); + }); + } + } + + return { + "Program:exit"() { + groupByDestructuring(variables, ignoreReadBeforeAssign).forEach(checkGroup); + }, + + VariableDeclaration(node) { + if (node.kind === "let" && !isInitOfForStatement(node)) { + variables.push(...context.getDeclaredVariables(node)); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-destructuring.js b/node_modules/eslint/lib/rules/prefer-destructuring.js new file mode 100644 index 0000000..fdf46f6 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-destructuring.js @@ -0,0 +1,301 @@ +/** + * @fileoverview Prefer destructuring from arrays and objects + * @author Alex LaFroscia + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const PRECEDENCE_OF_ASSIGNMENT_EXPR = astUtils.getPrecedence({ type: "AssignmentExpression" }); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require destructuring from arrays and/or objects", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-destructuring" + }, + + fixable: "code", + + schema: [ + { + + /* + * old support {array: Boolean, object: Boolean} + * new support {VariableDeclarator: {}, AssignmentExpression: {}} + */ + oneOf: [ + { + type: "object", + properties: { + VariableDeclarator: { + type: "object", + properties: { + array: { + type: "boolean" + }, + object: { + type: "boolean" + } + }, + additionalProperties: false + }, + AssignmentExpression: { + type: "object", + properties: { + array: { + type: "boolean" + }, + object: { + type: "boolean" + } + }, + additionalProperties: false + } + }, + additionalProperties: false + }, + { + type: "object", + properties: { + array: { + type: "boolean" + }, + object: { + type: "boolean" + } + }, + additionalProperties: false + } + ] + }, + { + type: "object", + properties: { + enforceForRenamedProperties: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + + messages: { + preferDestructuring: "Use {{type}} destructuring." + } + }, + create(context) { + + const enabledTypes = context.options[0]; + const enforceForRenamedProperties = context.options[1] && context.options[1].enforceForRenamedProperties; + let normalizedOptions = { + VariableDeclarator: { array: true, object: true }, + AssignmentExpression: { array: true, object: true } + }; + + if (enabledTypes) { + normalizedOptions = typeof enabledTypes.array !== "undefined" || typeof enabledTypes.object !== "undefined" + ? { VariableDeclarator: enabledTypes, AssignmentExpression: enabledTypes } + : enabledTypes; + } + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Checks if destructuring type should be checked. + * @param {string} nodeType "AssignmentExpression" or "VariableDeclarator" + * @param {string} destructuringType "array" or "object" + * @returns {boolean} `true` if the destructuring type should be checked for the given node + */ + function shouldCheck(nodeType, destructuringType) { + return normalizedOptions && + normalizedOptions[nodeType] && + normalizedOptions[nodeType][destructuringType]; + } + + /** + * Determines if the given node is accessing an array index + * + * This is used to differentiate array index access from object property + * access. + * @param {ASTNode} node the node to evaluate + * @returns {boolean} whether or not the node is an integer + */ + function isArrayIndexAccess(node) { + return Number.isInteger(node.property.value); + } + + /** + * Report that the given node should use destructuring + * @param {ASTNode} reportNode the node to report + * @param {string} type the type of destructuring that should have been done + * @param {Function|null} fix the fix function or null to pass to context.report + * @returns {void} + */ + function report(reportNode, type, fix) { + context.report({ + node: reportNode, + messageId: "preferDestructuring", + data: { type }, + fix + }); + } + + /** + * Determines if a node should be fixed into object destructuring + * + * The fixer only fixes the simplest case of object destructuring, + * like: `let x = a.x`; + * + * Assignment expression is not fixed. + * Array destructuring is not fixed. + * Renamed property is not fixed. + * @param {ASTNode} node the node to evaluate + * @returns {boolean} whether or not the node should be fixed + */ + function shouldFix(node) { + return node.type === "VariableDeclarator" && + node.id.type === "Identifier" && + node.init.type === "MemberExpression" && + !node.init.computed && + node.init.property.type === "Identifier" && + node.id.name === node.init.property.name; + } + + /** + * Fix a node into object destructuring. + * This function only handles the simplest case of object destructuring, + * see {@link shouldFix}. + * @param {SourceCodeFixer} fixer the fixer object + * @param {ASTNode} node the node to be fixed. + * @returns {Object} a fix for the node + */ + function fixIntoObjectDestructuring(fixer, node) { + const rightNode = node.init; + const sourceCode = context.getSourceCode(); + + // Don't fix if that would remove any comments. Only comments inside `rightNode.object` can be preserved. + if (sourceCode.getCommentsInside(node).length > sourceCode.getCommentsInside(rightNode.object).length) { + return null; + } + + let objectText = sourceCode.getText(rightNode.object); + + if (astUtils.getPrecedence(rightNode.object) < PRECEDENCE_OF_ASSIGNMENT_EXPR) { + objectText = `(${objectText})`; + } + + return fixer.replaceText( + node, + `{${rightNode.property.name}} = ${objectText}` + ); + } + + /** + * Check that the `prefer-destructuring` rules are followed based on the + * given left- and right-hand side of the assignment. + * + * Pulled out into a separate method so that VariableDeclarators and + * AssignmentExpressions can share the same verification logic. + * @param {ASTNode} leftNode the left-hand side of the assignment + * @param {ASTNode} rightNode the right-hand side of the assignment + * @param {ASTNode} reportNode the node to report the error on + * @returns {void} + */ + function performCheck(leftNode, rightNode, reportNode) { + if ( + rightNode.type !== "MemberExpression" || + rightNode.object.type === "Super" || + rightNode.property.type === "PrivateIdentifier" + ) { + return; + } + + if (isArrayIndexAccess(rightNode)) { + if (shouldCheck(reportNode.type, "array")) { + report(reportNode, "array", null); + } + return; + } + + const fix = shouldFix(reportNode) + ? fixer => fixIntoObjectDestructuring(fixer, reportNode) + : null; + + if (shouldCheck(reportNode.type, "object") && enforceForRenamedProperties) { + report(reportNode, "object", fix); + return; + } + + if (shouldCheck(reportNode.type, "object")) { + const property = rightNode.property; + + if ( + (property.type === "Literal" && leftNode.name === property.value) || + (property.type === "Identifier" && leftNode.name === property.name && !rightNode.computed) + ) { + report(reportNode, "object", fix); + } + } + } + + /** + * Check if a given variable declarator is coming from an property access + * that should be using destructuring instead + * @param {ASTNode} node the variable declarator to check + * @returns {void} + */ + function checkVariableDeclarator(node) { + + // Skip if variable is declared without assignment + if (!node.init) { + return; + } + + // We only care about member expressions past this point + if (node.init.type !== "MemberExpression") { + return; + } + + performCheck(node.id, node.init, node); + } + + /** + * Run the `prefer-destructuring` check on an AssignmentExpression + * @param {ASTNode} node the AssignmentExpression node + * @returns {void} + */ + function checkAssignmentExpression(node) { + if (node.operator === "=") { + performCheck(node.left, node.right, node); + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + VariableDeclarator: checkVariableDeclarator, + AssignmentExpression: checkAssignmentExpression + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js b/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js new file mode 100644 index 0000000..fec5319 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js @@ -0,0 +1,190 @@ +/** + * @fileoverview Rule to disallow Math.pow in favor of the ** operator + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { CALL, ReferenceTracker } = require("eslint-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const PRECEDENCE_OF_EXPONENTIATION_EXPR = astUtils.getPrecedence({ type: "BinaryExpression", operator: "**" }); + +/** + * Determines whether the given node needs parens if used as the base in an exponentiation binary expression. + * @param {ASTNode} base The node to check. + * @returns {boolean} `true` if the node needs to be parenthesised. + */ +function doesBaseNeedParens(base) { + return ( + + // '**' is right-associative, parens are needed when Math.pow(a ** b, c) is converted to (a ** b) ** c + astUtils.getPrecedence(base) <= PRECEDENCE_OF_EXPONENTIATION_EXPR || + + // An unary operator cannot be used immediately before an exponentiation expression + base.type === "AwaitExpression" || + base.type === "UnaryExpression" + ); +} + +/** + * Determines whether the given node needs parens if used as the exponent in an exponentiation binary expression. + * @param {ASTNode} exponent The node to check. + * @returns {boolean} `true` if the node needs to be parenthesised. + */ +function doesExponentNeedParens(exponent) { + + // '**' is right-associative, there is no need for parens when Math.pow(a, b ** c) is converted to a ** b ** c + return astUtils.getPrecedence(exponent) < PRECEDENCE_OF_EXPONENTIATION_EXPR; +} + +/** + * Determines whether an exponentiation binary expression at the place of the given node would need parens. + * @param {ASTNode} node A node that would be replaced by an exponentiation binary expression. + * @param {SourceCode} sourceCode A SourceCode object. + * @returns {boolean} `true` if the expression needs to be parenthesised. + */ +function doesExponentiationExpressionNeedParens(node, sourceCode) { + const parent = node.parent.type === "ChainExpression" ? node.parent.parent : node.parent; + + const needsParens = ( + parent.type === "ClassDeclaration" || + ( + parent.type.endsWith("Expression") && + astUtils.getPrecedence(parent) >= PRECEDENCE_OF_EXPONENTIATION_EXPR && + !(parent.type === "BinaryExpression" && parent.operator === "**" && parent.right === node) && + !((parent.type === "CallExpression" || parent.type === "NewExpression") && parent.arguments.includes(node)) && + !(parent.type === "MemberExpression" && parent.computed && parent.property === node) && + !(parent.type === "ArrayExpression") + ) + ); + + return needsParens && !astUtils.isParenthesised(sourceCode, node); +} + +/** + * Optionally parenthesizes given text. + * @param {string} text The text to parenthesize. + * @param {boolean} shouldParenthesize If `true`, the text will be parenthesised. + * @returns {string} parenthesised or unchanged text. + */ +function parenthesizeIfShould(text, shouldParenthesize) { + return shouldParenthesize ? `(${text})` : text; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow the use of `Math.pow` in favor of the `**` operator", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-exponentiation-operator" + }, + + schema: [], + fixable: "code", + + messages: { + useExponentiation: "Use the '**' operator instead of 'Math.pow'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Reports the given node. + * @param {ASTNode} node 'Math.pow()' node to report. + * @returns {void} + */ + function report(node) { + context.report({ + node, + messageId: "useExponentiation", + fix(fixer) { + if ( + node.arguments.length !== 2 || + node.arguments.some(arg => arg.type === "SpreadElement") || + sourceCode.getCommentsInside(node).length > 0 + ) { + return null; + } + + const base = node.arguments[0], + exponent = node.arguments[1], + baseText = sourceCode.getText(base), + exponentText = sourceCode.getText(exponent), + shouldParenthesizeBase = doesBaseNeedParens(base), + shouldParenthesizeExponent = doesExponentNeedParens(exponent), + shouldParenthesizeAll = doesExponentiationExpressionNeedParens(node, sourceCode); + + let prefix = "", + suffix = ""; + + if (!shouldParenthesizeAll) { + if (!shouldParenthesizeBase) { + const firstReplacementToken = sourceCode.getFirstToken(base), + tokenBefore = sourceCode.getTokenBefore(node); + + if ( + tokenBefore && + tokenBefore.range[1] === node.range[0] && + !astUtils.canTokensBeAdjacent(tokenBefore, firstReplacementToken) + ) { + prefix = " "; // a+Math.pow(++b, c) -> a+ ++b**c + } + } + if (!shouldParenthesizeExponent) { + const lastReplacementToken = sourceCode.getLastToken(exponent), + tokenAfter = sourceCode.getTokenAfter(node); + + if ( + tokenAfter && + node.range[1] === tokenAfter.range[0] && + !astUtils.canTokensBeAdjacent(lastReplacementToken, tokenAfter) + ) { + suffix = " "; // Math.pow(a, b)in c -> a**b in c + } + } + } + + const baseReplacement = parenthesizeIfShould(baseText, shouldParenthesizeBase), + exponentReplacement = parenthesizeIfShould(exponentText, shouldParenthesizeExponent), + replacement = parenthesizeIfShould(`${baseReplacement}**${exponentReplacement}`, shouldParenthesizeAll); + + return fixer.replaceText(node, `${prefix}${replacement}${suffix}`); + } + }); + } + + return { + Program() { + const scope = context.getScope(); + const tracker = new ReferenceTracker(scope); + const trackMap = { + Math: { + pow: { [CALL]: true } + } + }; + + for (const { node } of tracker.iterateGlobalReferences(trackMap)) { + report(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-named-capture-group.js b/node_modules/eslint/lib/rules/prefer-named-capture-group.js new file mode 100644 index 0000000..1a13ffa --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-named-capture-group.js @@ -0,0 +1,110 @@ +/** + * @fileoverview Rule to enforce requiring named capture groups in regular expression. + * @author Pig Fang + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { + CALL, + CONSTRUCT, + ReferenceTracker, + getStringIfConstant +} = require("eslint-utils"); +const regexpp = require("regexpp"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const parser = new regexpp.RegExpParser(); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce using named capture group in regular expression", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-named-capture-group" + }, + + schema: [], + + messages: { + required: "Capture group '{{group}}' should be converted to a named or non-capturing group." + } + }, + + create(context) { + + /** + * Function to check regular expression. + * @param {string} pattern The regular expression pattern to be check. + * @param {ASTNode} node AST node which contains regular expression. + * @param {boolean} uFlag Flag indicates whether unicode mode is enabled or not. + * @returns {void} + */ + function checkRegex(pattern, node, uFlag) { + let ast; + + try { + ast = parser.parsePattern(pattern, 0, pattern.length, uFlag); + } catch { + + // ignore regex syntax errors + return; + } + + regexpp.visitRegExpAST(ast, { + onCapturingGroupEnter(group) { + if (!group.name) { + context.report({ + node, + messageId: "required", + data: { + group: group.raw + } + }); + } + } + }); + } + + return { + Literal(node) { + if (node.regex) { + checkRegex(node.regex.pattern, node, node.regex.flags.includes("u")); + } + }, + Program() { + const scope = context.getScope(); + const tracker = new ReferenceTracker(scope); + const traceMap = { + RegExp: { + [CALL]: true, + [CONSTRUCT]: true + } + }; + + for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + const regex = getStringIfConstant(node.arguments[0]); + const flags = getStringIfConstant(node.arguments[1]); + + if (regex) { + checkRegex(regex, node, flags && flags.includes("u")); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-numeric-literals.js b/node_modules/eslint/lib/rules/prefer-numeric-literals.js new file mode 100644 index 0000000..5f70158 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-numeric-literals.js @@ -0,0 +1,148 @@ +/** + * @fileoverview Rule to disallow `parseInt()` in favor of binary, octal, and hexadecimal literals + * @author Annie Zhang, Henry Zhu + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const radixMap = new Map([ + [2, { system: "binary", literalPrefix: "0b" }], + [8, { system: "octal", literalPrefix: "0o" }], + [16, { system: "hexadecimal", literalPrefix: "0x" }] +]); + +/** + * Checks to see if a CallExpression's callee node is `parseInt` or + * `Number.parseInt`. + * @param {ASTNode} calleeNode The callee node to evaluate. + * @returns {boolean} True if the callee is `parseInt` or `Number.parseInt`, + * false otherwise. + */ +function isParseInt(calleeNode) { + return ( + astUtils.isSpecificId(calleeNode, "parseInt") || + astUtils.isSpecificMemberAccess(calleeNode, "Number", "parseInt") + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-numeric-literals" + }, + + schema: [], + + messages: { + useLiteral: "Use {{system}} literals instead of {{functionName}}()." + }, + + fixable: "code" + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + + "CallExpression[arguments.length=2]"(node) { + const [strNode, radixNode] = node.arguments, + str = astUtils.getStaticStringValue(strNode), + radix = radixNode.value; + + if ( + str !== null && + astUtils.isStringLiteral(strNode) && + radixNode.type === "Literal" && + typeof radix === "number" && + radixMap.has(radix) && + isParseInt(node.callee) + ) { + + const { system, literalPrefix } = radixMap.get(radix); + + context.report({ + node, + messageId: "useLiteral", + data: { + system, + functionName: sourceCode.getText(node.callee) + }, + fix(fixer) { + if (sourceCode.getCommentsInside(node).length) { + return null; + } + + const replacement = `${literalPrefix}${str}`; + + if (+replacement !== parseInt(str, radix)) { + + /* + * If the newly-produced literal would be invalid, (e.g. 0b1234), + * or it would yield an incorrect parseInt result for some other reason, don't make a fix. + * + * If `str` had numeric separators, `+replacement` will evaluate to `NaN` because unary `+` + * per the specification doesn't support numeric separators. Thus, the above condition will be `true` + * (`NaN !== anything` is always `true`) regardless of the `parseInt(str, radix)` value. + * Consequently, no autofixes will be made. This is correct behavior because `parseInt` also + * doesn't support numeric separators, but it does parse part of the string before the first `_`, + * so the autofix would be invalid: + * + * parseInt("1_1", 2) // === 1 + * 0b1_1 // === 3 + */ + return null; + } + + const tokenBefore = sourceCode.getTokenBefore(node), + tokenAfter = sourceCode.getTokenAfter(node); + let prefix = "", + suffix = ""; + + if ( + tokenBefore && + tokenBefore.range[1] === node.range[0] && + !astUtils.canTokensBeAdjacent(tokenBefore, replacement) + ) { + prefix = " "; + } + + if ( + tokenAfter && + node.range[1] === tokenAfter.range[0] && + !astUtils.canTokensBeAdjacent(replacement, tokenAfter) + ) { + suffix = " "; + } + + return fixer.replaceText(node, `${prefix}${replacement}${suffix}`); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-object-has-own.js b/node_modules/eslint/lib/rules/prefer-object-has-own.js new file mode 100644 index 0000000..023d0a6 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-object-has-own.js @@ -0,0 +1,112 @@ +/** + * @fileoverview Prefers Object.hasOwn() instead of Object.prototype.hasOwnProperty.call() + * @author Nitin Kumar + * @author Gautam Arora + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks if the given node is considered to be an access to a property of `Object.prototype`. + * @param {ASTNode} node `MemberExpression` node to evaluate. + * @returns {boolean} `true` if `node.object` is `Object`, `Object.prototype`, or `{}` (empty 'ObjectExpression' node). + */ +function hasLeftHandObject(node) { + + /* + * ({}).hasOwnProperty.call(obj, prop) - `true` + * ({ foo }.hasOwnProperty.call(obj, prop)) - `false`, object literal should be empty + */ + if (node.object.type === "ObjectExpression" && node.object.properties.length === 0) { + return true; + } + + const objectNodeToCheck = node.object.type === "MemberExpression" && astUtils.getStaticPropertyName(node.object) === "prototype" ? node.object.object : node.object; + + if (objectNodeToCheck.type === "Identifier" && objectNodeToCheck.name === "Object") { + return true; + } + + return false; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + docs: { + description: + "Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-object-has-own" + }, + schema: [], + messages: { + useHasOwn: "Use 'Object.hasOwn()' instead of 'Object.prototype.hasOwnProperty.call()'." + }, + fixable: "code" + }, + create(context) { + return { + CallExpression(node) { + if (!(node.callee.type === "MemberExpression" && node.callee.object.type === "MemberExpression")) { + return; + } + + const calleePropertyName = astUtils.getStaticPropertyName(node.callee); + const objectPropertyName = astUtils.getStaticPropertyName(node.callee.object); + const isObject = hasLeftHandObject(node.callee.object); + + // check `Object` scope + const scope = context.getScope(); + const variable = astUtils.getVariableByName(scope, "Object"); + + if ( + calleePropertyName === "call" && + objectPropertyName === "hasOwnProperty" && + isObject && + variable && variable.scope.type === "global" + ) { + context.report({ + node, + messageId: "useHasOwn", + fix(fixer) { + const sourceCode = context.getSourceCode(); + + if (sourceCode.getCommentsInside(node.callee).length > 0) { + return null; + } + + const tokenJustBeforeNode = sourceCode.getTokenBefore(node.callee, { includeComments: true }); + + // for https://github.com/eslint/eslint/pull/15346#issuecomment-991417335 + if ( + tokenJustBeforeNode && + tokenJustBeforeNode.range[1] === node.callee.range[0] && + !astUtils.canTokensBeAdjacent(tokenJustBeforeNode, "Object.hasOwn") + ) { + return fixer.replaceText(node.callee, " Object.hasOwn"); + } + + return fixer.replaceText(node.callee, "Object.hasOwn"); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-object-spread.js b/node_modules/eslint/lib/rules/prefer-object-spread.js new file mode 100644 index 0000000..0819200 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-object-spread.js @@ -0,0 +1,299 @@ +/** + * @fileoverview Prefers object spread property over Object.assign + * @author Sharmila Jesupaul + * See LICENSE file in root directory for full license. + */ + +"use strict"; + +const { CALL, ReferenceTracker } = require("eslint-utils"); +const { + isCommaToken, + isOpeningParenToken, + isClosingParenToken, + isParenthesised +} = require("./utils/ast-utils"); + +const ANY_SPACE = /\s/u; + +/** + * Helper that checks if the Object.assign call has array spread + * @param {ASTNode} node The node that the rule warns on + * @returns {boolean} - Returns true if the Object.assign call has array spread + */ +function hasArraySpread(node) { + return node.arguments.some(arg => arg.type === "SpreadElement"); +} + +/** + * Determines whether the given node is an accessor property (getter/setter). + * @param {ASTNode} node Node to check. + * @returns {boolean} `true` if the node is a getter or a setter. + */ +function isAccessorProperty(node) { + return node.type === "Property" && + (node.kind === "get" || node.kind === "set"); +} + +/** + * Determines whether the given object expression node has accessor properties (getters/setters). + * @param {ASTNode} node `ObjectExpression` node to check. + * @returns {boolean} `true` if the node has at least one getter/setter. + */ +function hasAccessors(node) { + return node.properties.some(isAccessorProperty); +} + +/** + * Determines whether the given call expression node has object expression arguments with accessor properties (getters/setters). + * @param {ASTNode} node `CallExpression` node to check. + * @returns {boolean} `true` if the node has at least one argument that is an object expression with at least one getter/setter. + */ +function hasArgumentsWithAccessors(node) { + return node.arguments + .filter(arg => arg.type === "ObjectExpression") + .some(hasAccessors); +} + +/** + * Helper that checks if the node needs parentheses to be valid JS. + * The default is to wrap the node in parentheses to avoid parsing errors. + * @param {ASTNode} node The node that the rule warns on + * @param {Object} sourceCode in context sourcecode object + * @returns {boolean} - Returns true if the node needs parentheses + */ +function needsParens(node, sourceCode) { + const parent = node.parent; + + switch (parent.type) { + case "VariableDeclarator": + case "ArrayExpression": + case "ReturnStatement": + case "CallExpression": + case "Property": + return false; + case "AssignmentExpression": + return parent.left === node && !isParenthesised(sourceCode, node); + default: + return !isParenthesised(sourceCode, node); + } +} + +/** + * Determines if an argument needs parentheses. The default is to not add parens. + * @param {ASTNode} node The node to be checked. + * @param {Object} sourceCode in context sourcecode object + * @returns {boolean} True if the node needs parentheses + */ +function argNeedsParens(node, sourceCode) { + switch (node.type) { + case "AssignmentExpression": + case "ArrowFunctionExpression": + case "ConditionalExpression": + return !isParenthesised(sourceCode, node); + default: + return false; + } +} + +/** + * Get the parenthesis tokens of a given ObjectExpression node. + * This includes the braces of the object literal and enclosing parentheses. + * @param {ASTNode} node The node to get. + * @param {Token} leftArgumentListParen The opening paren token of the argument list. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {Token[]} The parenthesis tokens of the node. This is sorted by the location. + */ +function getParenTokens(node, leftArgumentListParen, sourceCode) { + const parens = [sourceCode.getFirstToken(node), sourceCode.getLastToken(node)]; + let leftNext = sourceCode.getTokenBefore(node); + let rightNext = sourceCode.getTokenAfter(node); + + // Note: don't include the parens of the argument list. + while ( + leftNext && + rightNext && + leftNext.range[0] > leftArgumentListParen.range[0] && + isOpeningParenToken(leftNext) && + isClosingParenToken(rightNext) + ) { + parens.push(leftNext, rightNext); + leftNext = sourceCode.getTokenBefore(leftNext); + rightNext = sourceCode.getTokenAfter(rightNext); + } + + return parens.sort((a, b) => a.range[0] - b.range[0]); +} + +/** + * Get the range of a given token and around whitespaces. + * @param {Token} token The token to get range. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {number} The end of the range of the token and around whitespaces. + */ +function getStartWithSpaces(token, sourceCode) { + const text = sourceCode.text; + let start = token.range[0]; + + // If the previous token is a line comment then skip this step to avoid commenting this token out. + { + const prevToken = sourceCode.getTokenBefore(token, { includeComments: true }); + + if (prevToken && prevToken.type === "Line") { + return start; + } + } + + // Detect spaces before the token. + while (ANY_SPACE.test(text[start - 1] || "")) { + start -= 1; + } + + return start; +} + +/** + * Get the range of a given token and around whitespaces. + * @param {Token} token The token to get range. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {number} The start of the range of the token and around whitespaces. + */ +function getEndWithSpaces(token, sourceCode) { + const text = sourceCode.text; + let end = token.range[1]; + + // Detect spaces after the token. + while (ANY_SPACE.test(text[end] || "")) { + end += 1; + } + + return end; +} + +/** + * Autofixes the Object.assign call to use an object spread instead. + * @param {ASTNode|null} node The node that the rule warns on, i.e. the Object.assign call + * @param {string} sourceCode sourceCode of the Object.assign call + * @returns {Function} autofixer - replaces the Object.assign with a spread object. + */ +function defineFixer(node, sourceCode) { + return function *(fixer) { + const leftParen = sourceCode.getTokenAfter(node.callee, isOpeningParenToken); + const rightParen = sourceCode.getLastToken(node); + + // Remove everything before the opening paren: callee `Object.assign`, type arguments, and whitespace between the callee and the paren. + yield fixer.removeRange([node.range[0], leftParen.range[0]]); + + // Replace the parens of argument list to braces. + if (needsParens(node, sourceCode)) { + yield fixer.replaceText(leftParen, "({"); + yield fixer.replaceText(rightParen, "})"); + } else { + yield fixer.replaceText(leftParen, "{"); + yield fixer.replaceText(rightParen, "}"); + } + + // Process arguments. + for (const argNode of node.arguments) { + const innerParens = getParenTokens(argNode, leftParen, sourceCode); + const left = innerParens.shift(); + const right = innerParens.pop(); + + if (argNode.type === "ObjectExpression") { + const maybeTrailingComma = sourceCode.getLastToken(argNode, 1); + const maybeArgumentComma = sourceCode.getTokenAfter(right); + + /* + * Make bare this object literal. + * And remove spaces inside of the braces for better formatting. + */ + for (const innerParen of innerParens) { + yield fixer.remove(innerParen); + } + const leftRange = [left.range[0], getEndWithSpaces(left, sourceCode)]; + const rightRange = [ + Math.max(getStartWithSpaces(right, sourceCode), leftRange[1]), // Ensure ranges don't overlap + right.range[1] + ]; + + yield fixer.removeRange(leftRange); + yield fixer.removeRange(rightRange); + + // Remove the comma of this argument if it's duplication. + if ( + (argNode.properties.length === 0 || isCommaToken(maybeTrailingComma)) && + isCommaToken(maybeArgumentComma) + ) { + yield fixer.remove(maybeArgumentComma); + } + } else { + + // Make spread. + if (argNeedsParens(argNode, sourceCode)) { + yield fixer.insertTextBefore(left, "...("); + yield fixer.insertTextAfter(right, ")"); + } else { + yield fixer.insertTextBefore(left, "..."); + } + } + } + }; +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: + "Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead.", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-object-spread" + }, + + schema: [], + fixable: "code", + + messages: { + useSpreadMessage: "Use an object spread instead of `Object.assign` eg: `{ ...foo }`.", + useLiteralMessage: "Use an object literal instead of `Object.assign`. eg: `{ foo: bar }`." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + Program() { + const scope = context.getScope(); + const tracker = new ReferenceTracker(scope); + const trackMap = { + Object: { + assign: { [CALL]: true } + } + }; + + // Iterate all calls of `Object.assign` (only of the global variable `Object`). + for (const { node } of tracker.iterateGlobalReferences(trackMap)) { + if ( + node.arguments.length >= 1 && + node.arguments[0].type === "ObjectExpression" && + !hasArraySpread(node) && + !( + node.arguments.length > 1 && + hasArgumentsWithAccessors(node) + ) + ) { + const messageId = node.arguments.length === 1 + ? "useLiteralMessage" + : "useSpreadMessage"; + const fix = defineFixer(node, sourceCode); + + context.report({ node, messageId, fix }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js b/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js new file mode 100644 index 0000000..bd7bdcb --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js @@ -0,0 +1,131 @@ +/** + * @fileoverview restrict values that can be used as Promise rejection reasons + * @author Teddy Katz + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require using Error objects as Promise rejection reasons", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-promise-reject-errors" + }, + + fixable: null, + + schema: [ + { + type: "object", + properties: { + allowEmptyReject: { type: "boolean", default: false } + }, + additionalProperties: false + } + ], + + messages: { + rejectAnError: "Expected the Promise rejection reason to be an Error." + } + }, + + create(context) { + + const ALLOW_EMPTY_REJECT = context.options.length && context.options[0].allowEmptyReject; + + //---------------------------------------------------------------------- + // Helpers + //---------------------------------------------------------------------- + + /** + * Checks the argument of a reject() or Promise.reject() CallExpression, and reports it if it can't be an Error + * @param {ASTNode} callExpression A CallExpression node which is used to reject a Promise + * @returns {void} + */ + function checkRejectCall(callExpression) { + if (!callExpression.arguments.length && ALLOW_EMPTY_REJECT) { + return; + } + if ( + !callExpression.arguments.length || + !astUtils.couldBeError(callExpression.arguments[0]) || + callExpression.arguments[0].type === "Identifier" && callExpression.arguments[0].name === "undefined" + ) { + context.report({ + node: callExpression, + messageId: "rejectAnError" + }); + } + } + + /** + * Determines whether a function call is a Promise.reject() call + * @param {ASTNode} node A CallExpression node + * @returns {boolean} `true` if the call is a Promise.reject() call + */ + function isPromiseRejectCall(node) { + return astUtils.isSpecificMemberAccess(node.callee, "Promise", "reject"); + } + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + return { + + // Check `Promise.reject(value)` calls. + CallExpression(node) { + if (isPromiseRejectCall(node)) { + checkRejectCall(node); + } + }, + + /* + * Check for `new Promise((resolve, reject) => {})`, and check for reject() calls. + * This function is run on "NewExpression:exit" instead of "NewExpression" to ensure that + * the nodes in the expression already have the `parent` property. + */ + "NewExpression:exit"(node) { + if ( + node.callee.type === "Identifier" && node.callee.name === "Promise" && + node.arguments.length && astUtils.isFunction(node.arguments[0]) && + node.arguments[0].params.length > 1 && node.arguments[0].params[1].type === "Identifier" + ) { + context.getDeclaredVariables(node.arguments[0]) + + /* + * Find the first variable that matches the second parameter's name. + * If the first parameter has the same name as the second parameter, then the variable will actually + * be "declared" when the first parameter is evaluated, but then it will be immediately overwritten + * by the second parameter. It's not possible for an expression with the variable to be evaluated before + * the variable is overwritten, because functions with duplicate parameters cannot have destructuring or + * default assignments in their parameter lists. Therefore, it's not necessary to explicitly account for + * this case. + */ + .find(variable => variable.name === node.arguments[0].params[1].name) + + // Get the references to that variable. + .references + + // Only check the references that read the parameter's value. + .filter(ref => ref.isRead()) + + // Only check the references that are used as the callee in a function call, e.g. `reject(foo)`. + .filter(ref => ref.identifier.parent.type === "CallExpression" && ref.identifier === ref.identifier.parent.callee) + + // Check the argument of the function call to determine whether it's an Error. + .forEach(ref => checkRejectCall(ref.identifier.parent)); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-reflect.js b/node_modules/eslint/lib/rules/prefer-reflect.js new file mode 100644 index 0000000..68ffa88 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-reflect.js @@ -0,0 +1,127 @@ +/** + * @fileoverview Rule to suggest using "Reflect" api over Function/Object methods + * @author Keith Cirkel + * @deprecated in ESLint v3.9.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require `Reflect` methods where applicable", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-reflect" + }, + + deprecated: true, + + replacedBy: [], + + schema: [ + { + type: "object", + properties: { + exceptions: { + type: "array", + items: { + enum: [ + "apply", + "call", + "delete", + "defineProperty", + "getOwnPropertyDescriptor", + "getPrototypeOf", + "setPrototypeOf", + "isExtensible", + "getOwnPropertyNames", + "preventExtensions" + ] + }, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + preferReflect: "Avoid using {{existing}}, instead use {{substitute}}." + } + }, + + create(context) { + const existingNames = { + apply: "Function.prototype.apply", + call: "Function.prototype.call", + defineProperty: "Object.defineProperty", + getOwnPropertyDescriptor: "Object.getOwnPropertyDescriptor", + getPrototypeOf: "Object.getPrototypeOf", + setPrototypeOf: "Object.setPrototypeOf", + isExtensible: "Object.isExtensible", + getOwnPropertyNames: "Object.getOwnPropertyNames", + preventExtensions: "Object.preventExtensions" + }; + + const reflectSubstitutes = { + apply: "Reflect.apply", + call: "Reflect.apply", + defineProperty: "Reflect.defineProperty", + getOwnPropertyDescriptor: "Reflect.getOwnPropertyDescriptor", + getPrototypeOf: "Reflect.getPrototypeOf", + setPrototypeOf: "Reflect.setPrototypeOf", + isExtensible: "Reflect.isExtensible", + getOwnPropertyNames: "Reflect.getOwnPropertyNames", + preventExtensions: "Reflect.preventExtensions" + }; + + const exceptions = (context.options[0] || {}).exceptions || []; + + /** + * Reports the Reflect violation based on the `existing` and `substitute` + * @param {Object} node The node that violates the rule. + * @param {string} existing The existing method name that has been used. + * @param {string} substitute The Reflect substitute that should be used. + * @returns {void} + */ + function report(node, existing, substitute) { + context.report({ + node, + messageId: "preferReflect", + data: { + existing, + substitute + } + }); + } + + return { + CallExpression(node) { + const methodName = (node.callee.property || {}).name; + const isReflectCall = (node.callee.object || {}).name === "Reflect"; + const hasReflectSubstitute = Object.prototype.hasOwnProperty.call(reflectSubstitutes, methodName); + const userConfiguredException = exceptions.includes(methodName); + + if (hasReflectSubstitute && !isReflectCall && !userConfiguredException) { + report(node, existingNames[methodName], reflectSubstitutes[methodName]); + } + }, + UnaryExpression(node) { + const isDeleteOperator = node.operator === "delete"; + const targetsIdentifier = node.argument.type === "Identifier"; + const userConfiguredException = exceptions.includes("delete"); + + if (isDeleteOperator && !targetsIdentifier && !userConfiguredException) { + report(node, "the delete keyword", "Reflect.deleteProperty"); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-regex-literals.js b/node_modules/eslint/lib/rules/prefer-regex-literals.js new file mode 100644 index 0000000..f30eddb --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-regex-literals.js @@ -0,0 +1,396 @@ +/** + * @fileoverview Rule to disallow use of the `RegExp` constructor in favor of regular expression literals + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const { CALL, CONSTRUCT, ReferenceTracker, findVariable } = require("eslint-utils"); +const { RegExpValidator, visitRegExpAST, RegExpParser } = require("regexpp"); +const { canTokensBeAdjacent } = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const REGEXPP_LATEST_ECMA_VERSION = 2022; + +/** + * Determines whether the given node is a string literal. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if the node is a string literal. + */ +function isStringLiteral(node) { + return node.type === "Literal" && typeof node.value === "string"; +} + +/** + * Determines whether the given node is a regex literal. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if the node is a regex literal. + */ +function isRegexLiteral(node) { + return node.type === "Literal" && Object.prototype.hasOwnProperty.call(node, "regex"); +} + +/** + * Determines whether the given node is a template literal without expressions. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if the node is a template literal without expressions. + */ +function isStaticTemplateLiteral(node) { + return node.type === "TemplateLiteral" && node.expressions.length === 0; +} + +const validPrecedingTokens = new Set([ + "(", + ";", + "[", + ",", + "=", + "+", + "*", + "-", + "?", + "~", + "%", + "**", + "!", + "typeof", + "instanceof", + "&&", + "||", + "??", + "return", + "...", + "delete", + "void", + "in", + "<", + ">", + "<=", + ">=", + "==", + "===", + "!=", + "!==", + "<<", + ">>", + ">>>", + "&", + "|", + "^", + ":", + "{", + "=>", + "*=", + "<<=", + ">>=", + ">>>=", + "^=", + "|=", + "&=", + "??=", + "||=", + "&&=", + "**=", + "+=", + "-=", + "/=", + "%=", + "/", + "do", + "break", + "continue", + "debugger", + "case", + "throw" +]); + + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow use of the `RegExp` constructor in favor of regular expression literals", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-regex-literals" + }, + + hasSuggestions: true, + + schema: [ + { + type: "object", + properties: { + disallowRedundantWrapping: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedRegExp: "Use a regular expression literal instead of the 'RegExp' constructor.", + replaceWithLiteral: "Replace with an equivalent regular expression literal.", + unexpectedRedundantRegExp: "Regular expression literal is unnecessarily wrapped within a 'RegExp' constructor.", + unexpectedRedundantRegExpWithFlags: "Use regular expression literal with flags instead of the 'RegExp' constructor." + } + }, + + create(context) { + const [{ disallowRedundantWrapping = false } = {}] = context.options; + const sourceCode = context.getSourceCode(); + + /** + * Determines whether the given identifier node is a reference to a global variable. + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} True if the identifier is a reference to a global variable. + */ + function isGlobalReference(node) { + const scope = context.getScope(); + const variable = findVariable(scope, node); + + return variable !== null && variable.scope.type === "global" && variable.defs.length === 0; + } + + /** + * Determines whether the given node is a String.raw`` tagged template expression + * with a static template literal. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if the node is String.raw`` with a static template. + */ + function isStringRawTaggedStaticTemplateLiteral(node) { + return node.type === "TaggedTemplateExpression" && + astUtils.isSpecificMemberAccess(node.tag, "String", "raw") && + isGlobalReference(astUtils.skipChainExpression(node.tag).object) && + isStaticTemplateLiteral(node.quasi); + } + + /** + * Gets the value of a string + * @param {ASTNode} node The node to get the string of. + * @returns {string|null} The value of the node. + */ + function getStringValue(node) { + if (isStringLiteral(node)) { + return node.value; + } + + if (isStaticTemplateLiteral(node)) { + return node.quasis[0].value.cooked; + } + + if (isStringRawTaggedStaticTemplateLiteral(node)) { + return node.quasi.quasis[0].value.raw; + } + + return null; + } + + /** + * Determines whether the given node is considered to be a static string by the logic of this rule. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if the node is a static string. + */ + function isStaticString(node) { + return isStringLiteral(node) || + isStaticTemplateLiteral(node) || + isStringRawTaggedStaticTemplateLiteral(node); + } + + /** + * Determines whether the relevant arguments of the given are all static string literals. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if all arguments are static strings. + */ + function hasOnlyStaticStringArguments(node) { + const args = node.arguments; + + if ((args.length === 1 || args.length === 2) && args.every(isStaticString)) { + return true; + } + + return false; + } + + /** + * Determines whether the arguments of the given node indicate that a regex literal is unnecessarily wrapped. + * @param {ASTNode} node Node to check. + * @returns {boolean} True if the node already contains a regex literal argument. + */ + function isUnnecessarilyWrappedRegexLiteral(node) { + const args = node.arguments; + + if (args.length === 1 && isRegexLiteral(args[0])) { + return true; + } + + if (args.length === 2 && isRegexLiteral(args[0]) && isStaticString(args[1])) { + return true; + } + + return false; + } + + /** + * Returns a ecmaVersion compatible for regexpp. + * @param {any} ecmaVersion The ecmaVersion to convert. + * @returns {import("regexpp/ecma-versions").EcmaVersion} The resulting ecmaVersion compatible for regexpp. + */ + function getRegexppEcmaVersion(ecmaVersion) { + if (typeof ecmaVersion !== "number" || ecmaVersion <= 5) { + return 5; + } + return Math.min(ecmaVersion + 2009, REGEXPP_LATEST_ECMA_VERSION); + } + + /** + * Makes a character escaped or else returns null. + * @param {string} character The character to escape. + * @returns {string} The resulting escaped character. + */ + function resolveEscapes(character) { + switch (character) { + case "\n": + case "\\\n": + return "\\n"; + + case "\r": + case "\\\r": + return "\\r"; + + case "\t": + case "\\\t": + return "\\t"; + + case "\v": + case "\\\v": + return "\\v"; + + case "\f": + case "\\\f": + return "\\f"; + + case "/": + return "\\/"; + + default: + return null; + } + } + + return { + Program() { + const scope = context.getScope(); + const tracker = new ReferenceTracker(scope); + const traceMap = { + RegExp: { + [CALL]: true, + [CONSTRUCT]: true + } + }; + + for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + if (disallowRedundantWrapping && isUnnecessarilyWrappedRegexLiteral(node)) { + if (node.arguments.length === 2) { + context.report({ node, messageId: "unexpectedRedundantRegExpWithFlags" }); + } else { + context.report({ node, messageId: "unexpectedRedundantRegExp" }); + } + } else if (hasOnlyStaticStringArguments(node)) { + let regexContent = getStringValue(node.arguments[0]); + let noFix = false; + let flags; + + if (node.arguments[1]) { + flags = getStringValue(node.arguments[1]); + } + + const regexppEcmaVersion = getRegexppEcmaVersion(context.parserOptions.ecmaVersion); + const RegExpValidatorInstance = new RegExpValidator({ ecmaVersion: regexppEcmaVersion }); + + try { + RegExpValidatorInstance.validatePattern(regexContent, 0, regexContent.length, flags ? flags.includes("u") : false); + if (flags) { + RegExpValidatorInstance.validateFlags(flags); + } + } catch { + noFix = true; + } + + const tokenBefore = sourceCode.getTokenBefore(node); + + if (tokenBefore && !validPrecedingTokens.has(tokenBefore.value)) { + noFix = true; + } + + if (!/^[-a-zA-Z0-9\\[\](){} \t\r\n\v\f!@#$%^&*+^_=/~`.> 0) { + noFix = true; + } + + if (regexContent && !noFix) { + let charIncrease = 0; + + const ast = new RegExpParser({ ecmaVersion: regexppEcmaVersion }).parsePattern(regexContent, 0, regexContent.length, flags ? flags.includes("u") : false); + + visitRegExpAST(ast, { + onCharacterEnter(characterNode) { + const escaped = resolveEscapes(characterNode.raw); + + if (escaped) { + regexContent = + regexContent.slice(0, characterNode.start + charIncrease) + + escaped + + regexContent.slice(characterNode.end + charIncrease); + + if (characterNode.raw.length === 1) { + charIncrease += 1; + } + } + } + }); + } + + const newRegExpValue = `/${regexContent || "(?:)"}/${flags || ""}`; + + context.report({ + node, + messageId: "unexpectedRegExp", + suggest: noFix ? [] : [{ + messageId: "replaceWithLiteral", + fix(fixer) { + const tokenAfter = sourceCode.getTokenAfter(node); + + return fixer.replaceText( + node, + (tokenBefore && !canTokensBeAdjacent(tokenBefore, newRegExpValue) && tokenBefore.range[1] === node.range[0] ? " " : "") + + newRegExpValue + + (tokenAfter && !canTokensBeAdjacent(newRegExpValue, tokenAfter) && node.range[1] === tokenAfter.range[0] ? " " : "") + ); + } + }] + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-rest-params.js b/node_modules/eslint/lib/rules/prefer-rest-params.js new file mode 100644 index 0000000..14b9ae5 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-rest-params.js @@ -0,0 +1,115 @@ +/** + * @fileoverview Rule to + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Gets the variable object of `arguments` which is defined implicitly. + * @param {eslint-scope.Scope} scope A scope to get. + * @returns {eslint-scope.Variable} The found variable object. + */ +function getVariableOfArguments(scope) { + const variables = scope.variables; + + for (let i = 0; i < variables.length; ++i) { + const variable = variables[i]; + + if (variable.name === "arguments") { + + /* + * If there was a parameter which is named "arguments", the implicit "arguments" is not defined. + * So does fast return with null. + */ + return (variable.identifiers.length === 0) ? variable : null; + } + } + + /* c8 ignore next */ + return null; +} + +/** + * Checks if the given reference is not normal member access. + * + * - arguments .... true // not member access + * - arguments[i] .... true // computed member access + * - arguments[0] .... true // computed member access + * - arguments.length .... false // normal member access + * @param {eslint-scope.Reference} reference The reference to check. + * @returns {boolean} `true` if the reference is not normal member access. + */ +function isNotNormalMemberAccess(reference) { + const id = reference.identifier; + const parent = id.parent; + + return !( + parent.type === "MemberExpression" && + parent.object === id && + !parent.computed + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require rest parameters instead of `arguments`", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-rest-params" + }, + + schema: [], + + messages: { + preferRestParams: "Use the rest parameters instead of 'arguments'." + } + }, + + create(context) { + + /** + * Reports a given reference. + * @param {eslint-scope.Reference} reference A reference to report. + * @returns {void} + */ + function report(reference) { + context.report({ + node: reference.identifier, + loc: reference.identifier.loc, + messageId: "preferRestParams" + }); + } + + /** + * Reports references of the implicit `arguments` variable if exist. + * @returns {void} + */ + function checkForArguments() { + const argumentsVar = getVariableOfArguments(context.getScope()); + + if (argumentsVar) { + argumentsVar + .references + .filter(isNotNormalMemberAccess) + .forEach(report); + } + } + + return { + "FunctionDeclaration:exit": checkForArguments, + "FunctionExpression:exit": checkForArguments + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-spread.js b/node_modules/eslint/lib/rules/prefer-spread.js new file mode 100644 index 0000000..c8909fc --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-spread.js @@ -0,0 +1,87 @@ +/** + * @fileoverview A rule to suggest using of the spread operator instead of `.apply()`. + * @author Toru Nagashima + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a node is a `.apply()` for variadic. + * @param {ASTNode} node A CallExpression node to check. + * @returns {boolean} Whether or not the node is a `.apply()` for variadic. + */ +function isVariadicApplyCalling(node) { + return ( + astUtils.isSpecificMemberAccess(node.callee, null, "apply") && + node.arguments.length === 2 && + node.arguments[1].type !== "ArrayExpression" && + node.arguments[1].type !== "SpreadElement" + ); +} + +/** + * Checks whether or not `thisArg` is not changed by `.apply()`. + * @param {ASTNode|null} expectedThis The node that is the owner of the applied function. + * @param {ASTNode} thisArg The node that is given to the first argument of the `.apply()`. + * @param {RuleContext} context The ESLint rule context object. + * @returns {boolean} Whether or not `thisArg` is not changed by `.apply()`. + */ +function isValidThisArg(expectedThis, thisArg, context) { + if (!expectedThis) { + return astUtils.isNullOrUndefined(thisArg); + } + return astUtils.equalTokens(expectedThis, thisArg, context); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require spread operators instead of `.apply()`", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-spread" + }, + + schema: [], + fixable: null, + + messages: { + preferSpread: "Use the spread operator instead of '.apply()'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + CallExpression(node) { + if (!isVariadicApplyCalling(node)) { + return; + } + + const applied = astUtils.skipChainExpression(astUtils.skipChainExpression(node.callee).object); + const expectedThis = (applied.type === "MemberExpression") ? applied.object : null; + const thisArg = node.arguments[0]; + + if (isValidThisArg(expectedThis, thisArg, sourceCode)) { + context.report({ + node, + messageId: "preferSpread" + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/prefer-template.js b/node_modules/eslint/lib/rules/prefer-template.js new file mode 100644 index 0000000..167c187 --- /dev/null +++ b/node_modules/eslint/lib/rules/prefer-template.js @@ -0,0 +1,275 @@ +/** + * @fileoverview A rule to suggest using template literals instead of string concatenation. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether or not a given node is a concatenation. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is a concatenation. + */ +function isConcatenation(node) { + return node.type === "BinaryExpression" && node.operator === "+"; +} + +/** + * Gets the top binary expression node for concatenation in parents of a given node. + * @param {ASTNode} node A node to get. + * @returns {ASTNode} the top binary expression node in parents of a given node. + */ +function getTopConcatBinaryExpression(node) { + let currentNode = node; + + while (isConcatenation(currentNode.parent)) { + currentNode = currentNode.parent; + } + return currentNode; +} + +/** + * Checks whether or not a node contains a string literal with an octal or non-octal decimal escape sequence + * @param {ASTNode} node A node to check + * @returns {boolean} `true` if at least one string literal within the node contains + * an octal or non-octal decimal escape sequence + */ +function hasOctalOrNonOctalDecimalEscapeSequence(node) { + if (isConcatenation(node)) { + return ( + hasOctalOrNonOctalDecimalEscapeSequence(node.left) || + hasOctalOrNonOctalDecimalEscapeSequence(node.right) + ); + } + + // No need to check TemplateLiterals – would throw parsing error + if (node.type === "Literal" && typeof node.value === "string") { + return astUtils.hasOctalOrNonOctalDecimalEscapeSequence(node.raw); + } + + return false; +} + +/** + * Checks whether or not a given binary expression has string literals. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node has string literals. + */ +function hasStringLiteral(node) { + if (isConcatenation(node)) { + + // `left` is deeper than `right` normally. + return hasStringLiteral(node.right) || hasStringLiteral(node.left); + } + return astUtils.isStringLiteral(node); +} + +/** + * Checks whether or not a given binary expression has non string literals. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node has non string literals. + */ +function hasNonStringLiteral(node) { + if (isConcatenation(node)) { + + // `left` is deeper than `right` normally. + return hasNonStringLiteral(node.right) || hasNonStringLiteral(node.left); + } + return !astUtils.isStringLiteral(node); +} + +/** + * Determines whether a given node will start with a template curly expression (`${}`) when being converted to a template literal. + * @param {ASTNode} node The node that will be fixed to a template literal + * @returns {boolean} `true` if the node will start with a template curly. + */ +function startsWithTemplateCurly(node) { + if (node.type === "BinaryExpression") { + return startsWithTemplateCurly(node.left); + } + if (node.type === "TemplateLiteral") { + return node.expressions.length && node.quasis.length && node.quasis[0].range[0] === node.quasis[0].range[1]; + } + return node.type !== "Literal" || typeof node.value !== "string"; +} + +/** + * Determines whether a given node end with a template curly expression (`${}`) when being converted to a template literal. + * @param {ASTNode} node The node that will be fixed to a template literal + * @returns {boolean} `true` if the node will end with a template curly. + */ +function endsWithTemplateCurly(node) { + if (node.type === "BinaryExpression") { + return startsWithTemplateCurly(node.right); + } + if (node.type === "TemplateLiteral") { + return node.expressions.length && node.quasis.length && node.quasis[node.quasis.length - 1].range[0] === node.quasis[node.quasis.length - 1].range[1]; + } + return node.type !== "Literal" || typeof node.value !== "string"; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require template literals instead of string concatenation", + recommended: false, + url: "https://eslint.org/docs/rules/prefer-template" + }, + + schema: [], + fixable: "code", + + messages: { + unexpectedStringConcatenation: "Unexpected string concatenation." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + let done = Object.create(null); + + /** + * Gets the non-token text between two nodes, ignoring any other tokens that appear between the two tokens. + * @param {ASTNode} node1 The first node + * @param {ASTNode} node2 The second node + * @returns {string} The text between the nodes, excluding other tokens + */ + function getTextBetween(node1, node2) { + const allTokens = [node1].concat(sourceCode.getTokensBetween(node1, node2)).concat(node2); + const sourceText = sourceCode.getText(); + + return allTokens.slice(0, -1).reduce((accumulator, token, index) => accumulator + sourceText.slice(token.range[1], allTokens[index + 1].range[0]), ""); + } + + /** + * Returns a template literal form of the given node. + * @param {ASTNode} currentNode A node that should be converted to a template literal + * @param {string} textBeforeNode Text that should appear before the node + * @param {string} textAfterNode Text that should appear after the node + * @returns {string} A string form of this node, represented as a template literal + */ + function getTemplateLiteral(currentNode, textBeforeNode, textAfterNode) { + if (currentNode.type === "Literal" && typeof currentNode.value === "string") { + + /* + * If the current node is a string literal, escape any instances of ${ or ` to prevent them from being interpreted + * as a template placeholder. However, if the code already contains a backslash before the ${ or ` + * for some reason, don't add another backslash, because that would change the meaning of the code (it would cause + * an actual backslash character to appear before the dollar sign). + */ + return `\`${currentNode.raw.slice(1, -1).replace(/\\*(\$\{|`)/gu, matched => { + if (matched.lastIndexOf("\\") % 2) { + return `\\${matched}`; + } + return matched; + + // Unescape any quotes that appear in the original Literal that no longer need to be escaped. + }).replace(new RegExp(`\\\\${currentNode.raw[0]}`, "gu"), currentNode.raw[0])}\``; + } + + if (currentNode.type === "TemplateLiteral") { + return sourceCode.getText(currentNode); + } + + if (isConcatenation(currentNode) && hasStringLiteral(currentNode)) { + const plusSign = sourceCode.getFirstTokenBetween(currentNode.left, currentNode.right, token => token.value === "+"); + const textBeforePlus = getTextBetween(currentNode.left, plusSign); + const textAfterPlus = getTextBetween(plusSign, currentNode.right); + const leftEndsWithCurly = endsWithTemplateCurly(currentNode.left); + const rightStartsWithCurly = startsWithTemplateCurly(currentNode.right); + + if (leftEndsWithCurly) { + + // If the left side of the expression ends with a template curly, add the extra text to the end of the curly bracket. + // `foo${bar}` /* comment */ + 'baz' --> `foo${bar /* comment */ }${baz}` + return getTemplateLiteral(currentNode.left, textBeforeNode, textBeforePlus + textAfterPlus).slice(0, -1) + + getTemplateLiteral(currentNode.right, null, textAfterNode).slice(1); + } + if (rightStartsWithCurly) { + + // Otherwise, if the right side of the expression starts with a template curly, add the text there. + // 'foo' /* comment */ + `${bar}baz` --> `foo${ /* comment */ bar}baz` + return getTemplateLiteral(currentNode.left, textBeforeNode, null).slice(0, -1) + + getTemplateLiteral(currentNode.right, textBeforePlus + textAfterPlus, textAfterNode).slice(1); + } + + /* + * Otherwise, these nodes should not be combined into a template curly, since there is nowhere to put + * the text between them. + */ + return `${getTemplateLiteral(currentNode.left, textBeforeNode, null)}${textBeforePlus}+${textAfterPlus}${getTemplateLiteral(currentNode.right, textAfterNode, null)}`; + } + + return `\`\${${textBeforeNode || ""}${sourceCode.getText(currentNode)}${textAfterNode || ""}}\``; + } + + /** + * Returns a fixer object that converts a non-string binary expression to a template literal + * @param {SourceCodeFixer} fixer The fixer object + * @param {ASTNode} node A node that should be converted to a template literal + * @returns {Object} A fix for this binary expression + */ + function fixNonStringBinaryExpression(fixer, node) { + const topBinaryExpr = getTopConcatBinaryExpression(node.parent); + + if (hasOctalOrNonOctalDecimalEscapeSequence(topBinaryExpr)) { + return null; + } + + return fixer.replaceText(topBinaryExpr, getTemplateLiteral(topBinaryExpr, null, null)); + } + + /** + * Reports if a given node is string concatenation with non string literals. + * @param {ASTNode} node A node to check. + * @returns {void} + */ + function checkForStringConcat(node) { + if (!astUtils.isStringLiteral(node) || !isConcatenation(node.parent)) { + return; + } + + const topBinaryExpr = getTopConcatBinaryExpression(node.parent); + + // Checks whether or not this node had been checked already. + if (done[topBinaryExpr.range[0]]) { + return; + } + done[topBinaryExpr.range[0]] = true; + + if (hasNonStringLiteral(topBinaryExpr)) { + context.report({ + node: topBinaryExpr, + messageId: "unexpectedStringConcatenation", + fix: fixer => fixNonStringBinaryExpression(fixer, node) + }); + } + } + + return { + Program() { + done = Object.create(null); + }, + + Literal: checkForStringConcat, + TemplateLiteral: checkForStringConcat + }; + } +}; diff --git a/node_modules/eslint/lib/rules/quote-props.js b/node_modules/eslint/lib/rules/quote-props.js new file mode 100644 index 0000000..db94239 --- /dev/null +++ b/node_modules/eslint/lib/rules/quote-props.js @@ -0,0 +1,307 @@ +/** + * @fileoverview Rule to flag non-quoted property names in object literals. + * @author Mathias Bynens + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const espree = require("espree"); +const astUtils = require("./utils/ast-utils"); +const keywords = require("./utils/keywords"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require quotes around object literal property names", + recommended: false, + url: "https://eslint.org/docs/rules/quote-props" + }, + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["always", "as-needed", "consistent", "consistent-as-needed"] + } + ], + minItems: 0, + maxItems: 1 + }, + { + type: "array", + items: [ + { + enum: ["always", "as-needed", "consistent", "consistent-as-needed"] + }, + { + type: "object", + properties: { + keywords: { + type: "boolean" + }, + unnecessary: { + type: "boolean" + }, + numbers: { + type: "boolean" + } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + + fixable: "code", + messages: { + requireQuotesDueToReservedWord: "Properties should be quoted as '{{property}}' is a reserved word.", + inconsistentlyQuotedProperty: "Inconsistently quoted property '{{key}}' found.", + unnecessarilyQuotedProperty: "Unnecessarily quoted property '{{property}}' found.", + unquotedReservedProperty: "Unquoted reserved word '{{property}}' used as key.", + unquotedNumericProperty: "Unquoted number literal '{{property}}' used as key.", + unquotedPropertyFound: "Unquoted property '{{property}}' found.", + redundantQuoting: "Properties shouldn't be quoted as all quotes are redundant." + } + }, + + create(context) { + + const MODE = context.options[0], + KEYWORDS = context.options[1] && context.options[1].keywords, + CHECK_UNNECESSARY = !context.options[1] || context.options[1].unnecessary !== false, + NUMBERS = context.options[1] && context.options[1].numbers, + + sourceCode = context.getSourceCode(); + + + /** + * Checks whether a certain string constitutes an ES3 token + * @param {string} tokenStr The string to be checked. + * @returns {boolean} `true` if it is an ES3 token. + */ + function isKeyword(tokenStr) { + return keywords.includes(tokenStr); + } + + /** + * Checks if an espree-tokenized key has redundant quotes (i.e. whether quotes are unnecessary) + * @param {string} rawKey The raw key value from the source + * @param {espreeTokens} tokens The espree-tokenized node key + * @param {boolean} [skipNumberLiterals=false] Indicates whether number literals should be checked + * @returns {boolean} Whether or not a key has redundant quotes. + * @private + */ + function areQuotesRedundant(rawKey, tokens, skipNumberLiterals) { + return tokens.length === 1 && tokens[0].start === 0 && tokens[0].end === rawKey.length && + (["Identifier", "Keyword", "Null", "Boolean"].includes(tokens[0].type) || + (tokens[0].type === "Numeric" && !skipNumberLiterals && String(+tokens[0].value) === tokens[0].value)); + } + + /** + * Returns a string representation of a property node with quotes removed + * @param {ASTNode} key Key AST Node, which may or may not be quoted + * @returns {string} A replacement string for this property + */ + function getUnquotedKey(key) { + return key.type === "Identifier" ? key.name : key.value; + } + + /** + * Returns a string representation of a property node with quotes added + * @param {ASTNode} key Key AST Node, which may or may not be quoted + * @returns {string} A replacement string for this property + */ + function getQuotedKey(key) { + if (key.type === "Literal" && typeof key.value === "string") { + + // If the key is already a string literal, don't replace the quotes with double quotes. + return sourceCode.getText(key); + } + + // Otherwise, the key is either an identifier or a number literal. + return `"${key.type === "Identifier" ? key.name : key.value}"`; + } + + /** + * Ensures that a property's key is quoted only when necessary + * @param {ASTNode} node Property AST node + * @returns {void} + */ + function checkUnnecessaryQuotes(node) { + const key = node.key; + + if (node.method || node.computed || node.shorthand) { + return; + } + + if (key.type === "Literal" && typeof key.value === "string") { + let tokens; + + try { + tokens = espree.tokenize(key.value); + } catch { + return; + } + + if (tokens.length !== 1) { + return; + } + + const isKeywordToken = isKeyword(tokens[0].value); + + if (isKeywordToken && KEYWORDS) { + return; + } + + if (CHECK_UNNECESSARY && areQuotesRedundant(key.value, tokens, NUMBERS)) { + context.report({ + node, + messageId: "unnecessarilyQuotedProperty", + data: { property: key.value }, + fix: fixer => fixer.replaceText(key, getUnquotedKey(key)) + }); + } + } else if (KEYWORDS && key.type === "Identifier" && isKeyword(key.name)) { + context.report({ + node, + messageId: "unquotedReservedProperty", + data: { property: key.name }, + fix: fixer => fixer.replaceText(key, getQuotedKey(key)) + }); + } else if (NUMBERS && key.type === "Literal" && astUtils.isNumericLiteral(key)) { + context.report({ + node, + messageId: "unquotedNumericProperty", + data: { property: key.value }, + fix: fixer => fixer.replaceText(key, getQuotedKey(key)) + }); + } + } + + /** + * Ensures that a property's key is quoted + * @param {ASTNode} node Property AST node + * @returns {void} + */ + function checkOmittedQuotes(node) { + const key = node.key; + + if (!node.method && !node.computed && !node.shorthand && !(key.type === "Literal" && typeof key.value === "string")) { + context.report({ + node, + messageId: "unquotedPropertyFound", + data: { property: key.name || key.value }, + fix: fixer => fixer.replaceText(key, getQuotedKey(key)) + }); + } + } + + /** + * Ensures that an object's keys are consistently quoted, optionally checks for redundancy of quotes + * @param {ASTNode} node Property AST node + * @param {boolean} checkQuotesRedundancy Whether to check quotes' redundancy + * @returns {void} + */ + function checkConsistency(node, checkQuotesRedundancy) { + const quotedProps = [], + unquotedProps = []; + let keywordKeyName = null, + necessaryQuotes = false; + + node.properties.forEach(property => { + const key = property.key; + + if (!key || property.method || property.computed || property.shorthand) { + return; + } + + if (key.type === "Literal" && typeof key.value === "string") { + + quotedProps.push(property); + + if (checkQuotesRedundancy) { + let tokens; + + try { + tokens = espree.tokenize(key.value); + } catch { + necessaryQuotes = true; + return; + } + + necessaryQuotes = necessaryQuotes || !areQuotesRedundant(key.value, tokens) || KEYWORDS && isKeyword(tokens[0].value); + } + } else if (KEYWORDS && checkQuotesRedundancy && key.type === "Identifier" && isKeyword(key.name)) { + unquotedProps.push(property); + necessaryQuotes = true; + keywordKeyName = key.name; + } else { + unquotedProps.push(property); + } + }); + + if (checkQuotesRedundancy && quotedProps.length && !necessaryQuotes) { + quotedProps.forEach(property => { + context.report({ + node: property, + messageId: "redundantQuoting", + fix: fixer => fixer.replaceText(property.key, getUnquotedKey(property.key)) + }); + }); + } else if (unquotedProps.length && keywordKeyName) { + unquotedProps.forEach(property => { + context.report({ + node: property, + messageId: "requireQuotesDueToReservedWord", + data: { property: keywordKeyName }, + fix: fixer => fixer.replaceText(property.key, getQuotedKey(property.key)) + }); + }); + } else if (quotedProps.length && unquotedProps.length) { + unquotedProps.forEach(property => { + context.report({ + node: property, + messageId: "inconsistentlyQuotedProperty", + data: { key: property.key.name || property.key.value }, + fix: fixer => fixer.replaceText(property.key, getQuotedKey(property.key)) + }); + }); + } + } + + return { + Property(node) { + if (MODE === "always" || !MODE) { + checkOmittedQuotes(node); + } + if (MODE === "as-needed") { + checkUnnecessaryQuotes(node); + } + }, + ObjectExpression(node) { + if (MODE === "consistent") { + checkConsistency(node, false); + } + if (MODE === "consistent-as-needed") { + checkConsistency(node, true); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/quotes.js b/node_modules/eslint/lib/rules/quotes.js new file mode 100644 index 0000000..ab7b38b --- /dev/null +++ b/node_modules/eslint/lib/rules/quotes.js @@ -0,0 +1,347 @@ +/** + * @fileoverview A rule to choose between single and double quote marks + * @author Matt DuVall , Brandon Payton + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +const QUOTE_SETTINGS = { + double: { + quote: "\"", + alternateQuote: "'", + description: "doublequote" + }, + single: { + quote: "'", + alternateQuote: "\"", + description: "singlequote" + }, + backtick: { + quote: "`", + alternateQuote: "\"", + description: "backtick" + } +}; + +// An unescaped newline is a newline preceded by an even number of backslashes. +const UNESCAPED_LINEBREAK_PATTERN = new RegExp(String.raw`(^|[^\\])(\\\\)*[${Array.from(astUtils.LINEBREAKS).join("")}]`, "u"); + +/** + * Switches quoting of javascript string between ' " and ` + * escaping and unescaping as necessary. + * Only escaping of the minimal set of characters is changed. + * Note: escaping of newlines when switching from backtick to other quotes is not handled. + * @param {string} str A string to convert. + * @returns {string} The string with changed quotes. + * @private + */ +QUOTE_SETTINGS.double.convert = +QUOTE_SETTINGS.single.convert = +QUOTE_SETTINGS.backtick.convert = function(str) { + const newQuote = this.quote; + const oldQuote = str[0]; + + if (newQuote === oldQuote) { + return str; + } + return newQuote + str.slice(1, -1).replace(/\\(\$\{|\r\n?|\n|.)|["'`]|\$\{|(\r\n?|\n)/gu, (match, escaped, newline) => { + if (escaped === oldQuote || oldQuote === "`" && escaped === "${") { + return escaped; // unescape + } + if (match === newQuote || newQuote === "`" && match === "${") { + return `\\${match}`; // escape + } + if (newline && oldQuote === "`") { + return "\\n"; // escape newlines + } + return match; + }) + newQuote; +}; + +const AVOID_ESCAPE = "avoid-escape"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce the consistent use of either backticks, double, or single quotes", + recommended: false, + url: "https://eslint.org/docs/rules/quotes" + }, + + fixable: "code", + + schema: [ + { + enum: ["single", "double", "backtick"] + }, + { + anyOf: [ + { + enum: ["avoid-escape"] + }, + { + type: "object", + properties: { + avoidEscape: { + type: "boolean" + }, + allowTemplateLiterals: { + type: "boolean" + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + wrongQuotes: "Strings must use {{description}}." + } + }, + + create(context) { + + const quoteOption = context.options[0], + settings = QUOTE_SETTINGS[quoteOption || "double"], + options = context.options[1], + allowTemplateLiterals = options && options.allowTemplateLiterals === true, + sourceCode = context.getSourceCode(); + let avoidEscape = options && options.avoidEscape === true; + + // deprecated + if (options === AVOID_ESCAPE) { + avoidEscape = true; + } + + /** + * Determines if a given node is part of JSX syntax. + * + * This function returns `true` in the following cases: + * + * - `
` ... If the literal is an attribute value, the parent of the literal is `JSXAttribute`. + * - `
foo
` ... If the literal is a text content, the parent of the literal is `JSXElement`. + * - `<>foo` ... If the literal is a text content, the parent of the literal is `JSXFragment`. + * + * In particular, this function returns `false` in the following cases: + * + * - `
` + * - `
{"foo"}
` + * + * In both cases, inside of the braces is handled as normal JavaScript. + * The braces are `JSXExpressionContainer` nodes. + * @param {ASTNode} node The Literal node to check. + * @returns {boolean} True if the node is a part of JSX, false if not. + * @private + */ + function isJSXLiteral(node) { + return node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement" || node.parent.type === "JSXFragment"; + } + + /** + * Checks whether or not a given node is a directive. + * The directive is a `ExpressionStatement` which has only a string literal. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a directive. + * @private + */ + function isDirective(node) { + return ( + node.type === "ExpressionStatement" && + node.expression.type === "Literal" && + typeof node.expression.value === "string" + ); + } + + /** + * Checks whether or not a given node is a part of directive prologues. + * See also: http://www.ecma-international.org/ecma-262/6.0/#sec-directive-prologues-and-the-use-strict-directive + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a part of directive prologues. + * @private + */ + function isPartOfDirectivePrologue(node) { + const block = node.parent.parent; + + if (block.type !== "Program" && (block.type !== "BlockStatement" || !astUtils.isFunction(block.parent))) { + return false; + } + + // Check the node is at a prologue. + for (let i = 0; i < block.body.length; ++i) { + const statement = block.body[i]; + + if (statement === node.parent) { + return true; + } + if (!isDirective(statement)) { + break; + } + } + + return false; + } + + /** + * Checks whether or not a given node is allowed as non backtick. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is allowed as non backtick. + * @private + */ + function isAllowedAsNonBacktick(node) { + const parent = node.parent; + + switch (parent.type) { + + // Directive Prologues. + case "ExpressionStatement": + return isPartOfDirectivePrologue(node); + + // LiteralPropertyName. + case "Property": + case "PropertyDefinition": + case "MethodDefinition": + return parent.key === node && !parent.computed; + + // ModuleSpecifier. + case "ImportDeclaration": + case "ExportNamedDeclaration": + return parent.source === node; + + // ModuleExportName or ModuleSpecifier. + case "ExportAllDeclaration": + return parent.exported === node || parent.source === node; + + // ModuleExportName. + case "ImportSpecifier": + return parent.imported === node; + + // ModuleExportName. + case "ExportSpecifier": + return parent.local === node || parent.exported === node; + + // Others don't allow. + default: + return false; + } + } + + /** + * Checks whether or not a given TemplateLiteral node is actually using any of the special features provided by template literal strings. + * @param {ASTNode} node A TemplateLiteral node to check. + * @returns {boolean} Whether or not the TemplateLiteral node is using any of the special features provided by template literal strings. + * @private + */ + function isUsingFeatureOfTemplateLiteral(node) { + const hasTag = node.parent.type === "TaggedTemplateExpression" && node === node.parent.quasi; + + if (hasTag) { + return true; + } + + const hasStringInterpolation = node.expressions.length > 0; + + if (hasStringInterpolation) { + return true; + } + + const isMultilineString = node.quasis.length >= 1 && UNESCAPED_LINEBREAK_PATTERN.test(node.quasis[0].value.raw); + + if (isMultilineString) { + return true; + } + + return false; + } + + return { + + Literal(node) { + const val = node.value, + rawVal = node.raw; + + if (settings && typeof val === "string") { + let isValid = (quoteOption === "backtick" && isAllowedAsNonBacktick(node)) || + isJSXLiteral(node) || + astUtils.isSurroundedBy(rawVal, settings.quote); + + if (!isValid && avoidEscape) { + isValid = astUtils.isSurroundedBy(rawVal, settings.alternateQuote) && rawVal.includes(settings.quote); + } + + if (!isValid) { + context.report({ + node, + messageId: "wrongQuotes", + data: { + description: settings.description + }, + fix(fixer) { + if (quoteOption === "backtick" && astUtils.hasOctalOrNonOctalDecimalEscapeSequence(rawVal)) { + + /* + * An octal or non-octal decimal escape sequence in a template literal would + * produce syntax error, even in non-strict mode. + */ + return null; + } + + return fixer.replaceText(node, settings.convert(node.raw)); + } + }); + } + } + }, + + TemplateLiteral(node) { + + // Don't throw an error if backticks are expected or a template literal feature is in use. + if ( + allowTemplateLiterals || + quoteOption === "backtick" || + isUsingFeatureOfTemplateLiteral(node) + ) { + return; + } + + context.report({ + node, + messageId: "wrongQuotes", + data: { + description: settings.description + }, + fix(fixer) { + if (isPartOfDirectivePrologue(node)) { + + /* + * TemplateLiterals in a directive prologue aren't actually directives, but if they're + * in the directive prologue, then fixing them might turn them into directives and change + * the behavior of the code. + */ + return null; + } + return fixer.replaceText(node, settings.convert(sourceCode.getText(node))); + } + }); + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/radix.js b/node_modules/eslint/lib/rules/radix.js new file mode 100644 index 0000000..0618d98 --- /dev/null +++ b/node_modules/eslint/lib/rules/radix.js @@ -0,0 +1,198 @@ +/** + * @fileoverview Rule to flag use of parseInt without a radix argument + * @author James Allardice + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const MODE_ALWAYS = "always", + MODE_AS_NEEDED = "as-needed"; + +const validRadixValues = new Set(Array.from({ length: 37 - 2 }, (_, index) => index + 2)); + +/** + * Checks whether a given variable is shadowed or not. + * @param {eslint-scope.Variable} variable A variable to check. + * @returns {boolean} `true` if the variable is shadowed. + */ +function isShadowed(variable) { + return variable.defs.length >= 1; +} + +/** + * Checks whether a given node is a MemberExpression of `parseInt` method or not. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is a MemberExpression of `parseInt` + * method. + */ +function isParseIntMethod(node) { + return ( + node.type === "MemberExpression" && + !node.computed && + node.property.type === "Identifier" && + node.property.name === "parseInt" + ); +} + +/** + * Checks whether a given node is a valid value of radix or not. + * + * The following values are invalid. + * + * - A literal except integers between 2 and 36. + * - undefined. + * @param {ASTNode} radix A node of radix to check. + * @returns {boolean} `true` if the node is valid. + */ +function isValidRadix(radix) { + return !( + (radix.type === "Literal" && !validRadixValues.has(radix.value)) || + (radix.type === "Identifier" && radix.name === "undefined") + ); +} + +/** + * Checks whether a given node is a default value of radix or not. + * @param {ASTNode} radix A node of radix to check. + * @returns {boolean} `true` if the node is the literal node of `10`. + */ +function isDefaultRadix(radix) { + return radix.type === "Literal" && radix.value === 10; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce the consistent use of the radix argument when using `parseInt()`", + recommended: false, + url: "https://eslint.org/docs/rules/radix" + }, + + hasSuggestions: true, + + schema: [ + { + enum: ["always", "as-needed"] + } + ], + + messages: { + missingParameters: "Missing parameters.", + redundantRadix: "Redundant radix parameter.", + missingRadix: "Missing radix parameter.", + invalidRadix: "Invalid radix parameter, must be an integer between 2 and 36.", + addRadixParameter10: "Add radix parameter `10` for parsing decimal numbers." + } + }, + + create(context) { + const mode = context.options[0] || MODE_ALWAYS; + + /** + * Checks the arguments of a given CallExpression node and reports it if it + * offends this rule. + * @param {ASTNode} node A CallExpression node to check. + * @returns {void} + */ + function checkArguments(node) { + const args = node.arguments; + + switch (args.length) { + case 0: + context.report({ + node, + messageId: "missingParameters" + }); + break; + + case 1: + if (mode === MODE_ALWAYS) { + context.report({ + node, + messageId: "missingRadix", + suggest: [ + { + messageId: "addRadixParameter10", + fix(fixer) { + const sourceCode = context.getSourceCode(); + const tokens = sourceCode.getTokens(node); + const lastToken = tokens[tokens.length - 1]; // Parenthesis. + const secondToLastToken = tokens[tokens.length - 2]; // May or may not be a comma. + const hasTrailingComma = secondToLastToken.type === "Punctuator" && secondToLastToken.value === ","; + + return fixer.insertTextBefore(lastToken, hasTrailingComma ? " 10," : ", 10"); + } + } + ] + }); + } + break; + + default: + if (mode === MODE_AS_NEEDED && isDefaultRadix(args[1])) { + context.report({ + node, + messageId: "redundantRadix" + }); + } else if (!isValidRadix(args[1])) { + context.report({ + node, + messageId: "invalidRadix" + }); + } + break; + } + } + + return { + "Program:exit"() { + const scope = context.getScope(); + let variable; + + // Check `parseInt()` + variable = astUtils.getVariableByName(scope, "parseInt"); + if (variable && !isShadowed(variable)) { + variable.references.forEach(reference => { + const node = reference.identifier; + + if (astUtils.isCallee(node)) { + checkArguments(node.parent); + } + }); + } + + // Check `Number.parseInt()` + variable = astUtils.getVariableByName(scope, "Number"); + if (variable && !isShadowed(variable)) { + variable.references.forEach(reference => { + const node = reference.identifier.parent; + const maybeCallee = node.parent.type === "ChainExpression" + ? node.parent + : node; + + if (isParseIntMethod(node) && astUtils.isCallee(maybeCallee)) { + checkArguments(maybeCallee.parent); + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/require-atomic-updates.js b/node_modules/eslint/lib/rules/require-atomic-updates.js new file mode 100644 index 0000000..7a5f822 --- /dev/null +++ b/node_modules/eslint/lib/rules/require-atomic-updates.js @@ -0,0 +1,317 @@ +/** + * @fileoverview disallow assignments that can lead to race conditions due to usage of `await` or `yield` + * @author Teddy Katz + * @author Toru Nagashima + */ +"use strict"; + +/** + * Make the map from identifiers to each reference. + * @param {escope.Scope} scope The scope to get references. + * @param {Map} [outReferenceMap] The map from identifier nodes to each reference object. + * @returns {Map} `referenceMap`. + */ +function createReferenceMap(scope, outReferenceMap = new Map()) { + for (const reference of scope.references) { + if (reference.resolved === null) { + continue; + } + + outReferenceMap.set(reference.identifier, reference); + } + for (const childScope of scope.childScopes) { + if (childScope.type !== "function") { + createReferenceMap(childScope, outReferenceMap); + } + } + + return outReferenceMap; +} + +/** + * Get `reference.writeExpr` of a given reference. + * If it's the read reference of MemberExpression in LHS, returns RHS in order to address `a.b = await a` + * @param {escope.Reference} reference The reference to get. + * @returns {Expression|null} The `reference.writeExpr`. + */ +function getWriteExpr(reference) { + if (reference.writeExpr) { + return reference.writeExpr; + } + let node = reference.identifier; + + while (node) { + const t = node.parent.type; + + if (t === "AssignmentExpression" && node.parent.left === node) { + return node.parent.right; + } + if (t === "MemberExpression" && node.parent.object === node) { + node = node.parent; + continue; + } + + break; + } + + return null; +} + +/** + * Checks if an expression is a variable that can only be observed within the given function. + * @param {Variable|null} variable The variable to check + * @param {boolean} isMemberAccess If `true` then this is a member access. + * @returns {boolean} `true` if the variable is local to the given function, and is never referenced in a closure. + */ +function isLocalVariableWithoutEscape(variable, isMemberAccess) { + if (!variable) { + return false; // A global variable which was not defined. + } + + // If the reference is a property access and the variable is a parameter, it handles the variable is not local. + if (isMemberAccess && variable.defs.some(d => d.type === "Parameter")) { + return false; + } + + const functionScope = variable.scope.variableScope; + + return variable.references.every(reference => + reference.from.variableScope === functionScope); +} + +/** + * Represents segment information. + */ +class SegmentInfo { + constructor() { + this.info = new WeakMap(); + } + + /** + * Initialize the segment information. + * @param {PathSegment} segment The segment to initialize. + * @returns {void} + */ + initialize(segment) { + const outdatedReadVariables = new Set(); + const freshReadVariables = new Set(); + + for (const prevSegment of segment.prevSegments) { + const info = this.info.get(prevSegment); + + if (info) { + info.outdatedReadVariables.forEach(Set.prototype.add, outdatedReadVariables); + info.freshReadVariables.forEach(Set.prototype.add, freshReadVariables); + } + } + + this.info.set(segment, { outdatedReadVariables, freshReadVariables }); + } + + /** + * Mark a given variable as read on given segments. + * @param {PathSegment[]} segments The segments that it read the variable on. + * @param {Variable} variable The variable to be read. + * @returns {void} + */ + markAsRead(segments, variable) { + for (const segment of segments) { + const info = this.info.get(segment); + + if (info) { + info.freshReadVariables.add(variable); + + // If a variable is freshly read again, then it's no more out-dated. + info.outdatedReadVariables.delete(variable); + } + } + } + + /** + * Move `freshReadVariables` to `outdatedReadVariables`. + * @param {PathSegment[]} segments The segments to process. + * @returns {void} + */ + makeOutdated(segments) { + for (const segment of segments) { + const info = this.info.get(segment); + + if (info) { + info.freshReadVariables.forEach(Set.prototype.add, info.outdatedReadVariables); + info.freshReadVariables.clear(); + } + } + } + + /** + * Check if a given variable is outdated on the current segments. + * @param {PathSegment[]} segments The current segments. + * @param {Variable} variable The variable to check. + * @returns {boolean} `true` if the variable is outdated on the segments. + */ + isOutdated(segments, variable) { + for (const segment of segments) { + const info = this.info.get(segment); + + if (info && info.outdatedReadVariables.has(variable)) { + return true; + } + } + return false; + } +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Disallow assignments that can lead to race conditions due to usage of `await` or `yield`", + recommended: false, + url: "https://eslint.org/docs/rules/require-atomic-updates" + }, + + fixable: null, + + schema: [{ + type: "object", + properties: { + allowProperties: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + + messages: { + nonAtomicUpdate: "Possible race condition: `{{value}}` might be reassigned based on an outdated value of `{{value}}`.", + nonAtomicObjectUpdate: "Possible race condition: `{{value}}` might be assigned based on an outdated state of `{{object}}`." + } + }, + + create(context) { + const allowProperties = !!context.options[0] && context.options[0].allowProperties; + + const sourceCode = context.getSourceCode(); + const assignmentReferences = new Map(); + const segmentInfo = new SegmentInfo(); + let stack = null; + + return { + onCodePathStart(codePath) { + const scope = context.getScope(); + const shouldVerify = + scope.type === "function" && + (scope.block.async || scope.block.generator); + + stack = { + upper: stack, + codePath, + referenceMap: shouldVerify ? createReferenceMap(scope) : null + }; + }, + onCodePathEnd() { + stack = stack.upper; + }, + + // Initialize the segment information. + onCodePathSegmentStart(segment) { + segmentInfo.initialize(segment); + }, + + // Handle references to prepare verification. + Identifier(node) { + const { codePath, referenceMap } = stack; + const reference = referenceMap && referenceMap.get(node); + + // Ignore if this is not a valid variable reference. + if (!reference) { + return; + } + const variable = reference.resolved; + const writeExpr = getWriteExpr(reference); + const isMemberAccess = reference.identifier.parent.type === "MemberExpression"; + + // Add a fresh read variable. + if (reference.isRead() && !(writeExpr && writeExpr.parent.operator === "=")) { + segmentInfo.markAsRead(codePath.currentSegments, variable); + } + + /* + * Register the variable to verify after ESLint traversed the `writeExpr` node + * if this reference is an assignment to a variable which is referred from other closure. + */ + if (writeExpr && + writeExpr.parent.right === writeExpr && // ← exclude variable declarations. + !isLocalVariableWithoutEscape(variable, isMemberAccess) + ) { + let refs = assignmentReferences.get(writeExpr); + + if (!refs) { + refs = []; + assignmentReferences.set(writeExpr, refs); + } + + refs.push(reference); + } + }, + + /* + * Verify assignments. + * If the reference exists in `outdatedReadVariables` list, report it. + */ + ":expression:exit"(node) { + const { codePath, referenceMap } = stack; + + // referenceMap exists if this is in a resumable function scope. + if (!referenceMap) { + return; + } + + // Mark the read variables on this code path as outdated. + if (node.type === "AwaitExpression" || node.type === "YieldExpression") { + segmentInfo.makeOutdated(codePath.currentSegments); + } + + // Verify. + const references = assignmentReferences.get(node); + + if (references) { + assignmentReferences.delete(node); + + for (const reference of references) { + const variable = reference.resolved; + + if (segmentInfo.isOutdated(codePath.currentSegments, variable)) { + if (node.parent.left === reference.identifier) { + context.report({ + node: node.parent, + messageId: "nonAtomicUpdate", + data: { + value: variable.name + } + }); + } else if (!allowProperties) { + context.report({ + node: node.parent, + messageId: "nonAtomicObjectUpdate", + data: { + value: sourceCode.getText(node.parent.left), + object: variable.name + } + }); + } + + } + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/require-await.js b/node_modules/eslint/lib/rules/require-await.js new file mode 100644 index 0000000..1add255 --- /dev/null +++ b/node_modules/eslint/lib/rules/require-await.js @@ -0,0 +1,113 @@ +/** + * @fileoverview Rule to disallow async functions which have no `await` expression. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Capitalize the 1st letter of the given text. + * @param {string} text The text to capitalize. + * @returns {string} The text that the 1st letter was capitalized. + */ +function capitalizeFirstLetter(text) { + return text[0].toUpperCase() + text.slice(1); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow async functions which have no `await` expression", + recommended: false, + url: "https://eslint.org/docs/rules/require-await" + }, + + schema: [], + + messages: { + missingAwait: "{{name}} has no 'await' expression." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + let scopeInfo = null; + + /** + * Push the scope info object to the stack. + * @returns {void} + */ + function enterFunction() { + scopeInfo = { + upper: scopeInfo, + hasAwait: false + }; + } + + /** + * Pop the top scope info object from the stack. + * Also, it reports the function if needed. + * @param {ASTNode} node The node to report. + * @returns {void} + */ + function exitFunction(node) { + if (!node.generator && node.async && !scopeInfo.hasAwait && !astUtils.isEmptyFunction(node)) { + context.report({ + node, + loc: astUtils.getFunctionHeadLoc(node, sourceCode), + messageId: "missingAwait", + data: { + name: capitalizeFirstLetter( + astUtils.getFunctionNameWithKind(node) + ) + } + }); + } + + scopeInfo = scopeInfo.upper; + } + + return { + FunctionDeclaration: enterFunction, + FunctionExpression: enterFunction, + ArrowFunctionExpression: enterFunction, + "FunctionDeclaration:exit": exitFunction, + "FunctionExpression:exit": exitFunction, + "ArrowFunctionExpression:exit": exitFunction, + + AwaitExpression() { + if (!scopeInfo) { + return; + } + + scopeInfo.hasAwait = true; + }, + ForOfStatement(node) { + if (!scopeInfo) { + return; + } + + if (node.await) { + scopeInfo.hasAwait = true; + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/require-jsdoc.js b/node_modules/eslint/lib/rules/require-jsdoc.js new file mode 100644 index 0000000..755f6df --- /dev/null +++ b/node_modules/eslint/lib/rules/require-jsdoc.js @@ -0,0 +1,122 @@ +/** + * @fileoverview Rule to check for jsdoc presence. + * @author Gyandeep Singh + * @deprecated in ESLint v5.10.0 + */ +"use strict"; + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require JSDoc comments", + recommended: false, + url: "https://eslint.org/docs/rules/require-jsdoc" + }, + + schema: [ + { + type: "object", + properties: { + require: { + type: "object", + properties: { + ClassDeclaration: { + type: "boolean", + default: false + }, + MethodDefinition: { + type: "boolean", + default: false + }, + FunctionDeclaration: { + type: "boolean", + default: true + }, + ArrowFunctionExpression: { + type: "boolean", + default: false + }, + FunctionExpression: { + type: "boolean", + default: false + } + }, + additionalProperties: false, + default: {} + } + }, + additionalProperties: false + } + ], + + deprecated: true, + replacedBy: [], + + messages: { + missingJSDocComment: "Missing JSDoc comment." + } + }, + + create(context) { + const source = context.getSourceCode(); + const DEFAULT_OPTIONS = { + FunctionDeclaration: true, + MethodDefinition: false, + ClassDeclaration: false, + ArrowFunctionExpression: false, + FunctionExpression: false + }; + const options = Object.assign(DEFAULT_OPTIONS, context.options[0] && context.options[0].require); + + /** + * Report the error message + * @param {ASTNode} node node to report + * @returns {void} + */ + function report(node) { + context.report({ node, messageId: "missingJSDocComment" }); + } + + /** + * Check if the jsdoc comment is present or not. + * @param {ASTNode} node node to examine + * @returns {void} + */ + function checkJsDoc(node) { + const jsdocComment = source.getJSDocComment(node); + + if (!jsdocComment) { + report(node); + } + } + + return { + FunctionDeclaration(node) { + if (options.FunctionDeclaration) { + checkJsDoc(node); + } + }, + FunctionExpression(node) { + if ( + (options.MethodDefinition && node.parent.type === "MethodDefinition") || + (options.FunctionExpression && (node.parent.type === "VariableDeclarator" || (node.parent.type === "Property" && node === node.parent.value))) + ) { + checkJsDoc(node); + } + }, + ClassDeclaration(node) { + if (options.ClassDeclaration) { + checkJsDoc(node); + } + }, + ArrowFunctionExpression(node) { + if (options.ArrowFunctionExpression && node.parent.type === "VariableDeclarator") { + checkJsDoc(node); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/require-unicode-regexp.js b/node_modules/eslint/lib/rules/require-unicode-regexp.js new file mode 100644 index 0000000..4236af6 --- /dev/null +++ b/node_modules/eslint/lib/rules/require-unicode-regexp.js @@ -0,0 +1,69 @@ +/** + * @fileoverview Rule to enforce the use of `u` flag on RegExp. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { + CALL, + CONSTRUCT, + ReferenceTracker, + getStringIfConstant +} = require("eslint-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce the use of `u` flag on RegExp", + recommended: false, + url: "https://eslint.org/docs/rules/require-unicode-regexp" + }, + + messages: { + requireUFlag: "Use the 'u' flag." + }, + + schema: [] + }, + + create(context) { + return { + "Literal[regex]"(node) { + const flags = node.regex.flags || ""; + + if (!flags.includes("u")) { + context.report({ node, messageId: "requireUFlag" }); + } + }, + + Program() { + const scope = context.getScope(); + const tracker = new ReferenceTracker(scope); + const trackMap = { + RegExp: { [CALL]: true, [CONSTRUCT]: true } + }; + + for (const { node } of tracker.iterateGlobalReferences(trackMap)) { + const flagsNode = node.arguments[1]; + const flags = getStringIfConstant(flagsNode, scope); + + if (!flagsNode || (typeof flags === "string" && !flags.includes("u"))) { + context.report({ node, messageId: "requireUFlag" }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/require-yield.js b/node_modules/eslint/lib/rules/require-yield.js new file mode 100644 index 0000000..b3f1341 --- /dev/null +++ b/node_modules/eslint/lib/rules/require-yield.js @@ -0,0 +1,77 @@ +/** + * @fileoverview Rule to flag the generator functions that does not have yield. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require generator functions to contain `yield`", + recommended: true, + url: "https://eslint.org/docs/rules/require-yield" + }, + + schema: [], + + messages: { + missingYield: "This generator function does not have 'yield'." + } + }, + + create(context) { + const stack = []; + + /** + * If the node is a generator function, start counting `yield` keywords. + * @param {Node} node A function node to check. + * @returns {void} + */ + function beginChecking(node) { + if (node.generator) { + stack.push(0); + } + } + + /** + * If the node is a generator function, end counting `yield` keywords, then + * reports result. + * @param {Node} node A function node to check. + * @returns {void} + */ + function endChecking(node) { + if (!node.generator) { + return; + } + + const countYield = stack.pop(); + + if (countYield === 0 && node.body.body.length > 0) { + context.report({ node, messageId: "missingYield" }); + } + } + + return { + FunctionDeclaration: beginChecking, + "FunctionDeclaration:exit": endChecking, + FunctionExpression: beginChecking, + "FunctionExpression:exit": endChecking, + + // Increases the count of `yield` keyword. + YieldExpression() { + + if (stack.length > 0) { + stack[stack.length - 1] += 1; + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/rest-spread-spacing.js b/node_modules/eslint/lib/rules/rest-spread-spacing.js new file mode 100644 index 0000000..17f9aa0 --- /dev/null +++ b/node_modules/eslint/lib/rules/rest-spread-spacing.js @@ -0,0 +1,120 @@ +/** + * @fileoverview Enforce spacing between rest and spread operators and their expressions. + * @author Kai Cataldo + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce spacing between rest and spread operators and their expressions", + recommended: false, + url: "https://eslint.org/docs/rules/rest-spread-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + } + ], + + messages: { + unexpectedWhitespace: "Unexpected whitespace after {{type}} operator.", + expectedWhitespace: "Expected whitespace after {{type}} operator." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(), + alwaysSpace = context.options[0] === "always"; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Checks whitespace between rest/spread operators and their expressions + * @param {ASTNode} node The node to check + * @returns {void} + */ + function checkWhiteSpace(node) { + const operator = sourceCode.getFirstToken(node), + nextToken = sourceCode.getTokenAfter(operator), + hasWhitespace = sourceCode.isSpaceBetweenTokens(operator, nextToken); + let type; + + switch (node.type) { + case "SpreadElement": + type = "spread"; + if (node.parent.type === "ObjectExpression") { + type += " property"; + } + break; + case "RestElement": + type = "rest"; + if (node.parent.type === "ObjectPattern") { + type += " property"; + } + break; + case "ExperimentalSpreadProperty": + type = "spread property"; + break; + case "ExperimentalRestProperty": + type = "rest property"; + break; + default: + return; + } + + if (alwaysSpace && !hasWhitespace) { + context.report({ + node, + loc: operator.loc, + messageId: "expectedWhitespace", + data: { + type + }, + fix(fixer) { + return fixer.replaceTextRange([operator.range[1], nextToken.range[0]], " "); + } + }); + } else if (!alwaysSpace && hasWhitespace) { + context.report({ + node, + loc: { + start: operator.loc.end, + end: nextToken.loc.start + }, + messageId: "unexpectedWhitespace", + data: { + type + }, + fix(fixer) { + return fixer.removeRange([operator.range[1], nextToken.range[0]]); + } + }); + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + SpreadElement: checkWhiteSpace, + RestElement: checkWhiteSpace, + ExperimentalSpreadProperty: checkWhiteSpace, + ExperimentalRestProperty: checkWhiteSpace + }; + } +}; diff --git a/node_modules/eslint/lib/rules/semi-spacing.js b/node_modules/eslint/lib/rules/semi-spacing.js new file mode 100644 index 0000000..875cb62 --- /dev/null +++ b/node_modules/eslint/lib/rules/semi-spacing.js @@ -0,0 +1,245 @@ +/** + * @fileoverview Validates spacing before and after semicolon + * @author Mathias Schreck + */ + +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing before and after semicolons", + recommended: false, + url: "https://eslint.org/docs/rules/semi-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + before: { + type: "boolean", + default: false + }, + after: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedWhitespaceBefore: "Unexpected whitespace before semicolon.", + unexpectedWhitespaceAfter: "Unexpected whitespace after semicolon.", + missingWhitespaceBefore: "Missing whitespace before semicolon.", + missingWhitespaceAfter: "Missing whitespace after semicolon." + } + }, + + create(context) { + + const config = context.options[0], + sourceCode = context.getSourceCode(); + let requireSpaceBefore = false, + requireSpaceAfter = true; + + if (typeof config === "object") { + requireSpaceBefore = config.before; + requireSpaceAfter = config.after; + } + + /** + * Checks if a given token has leading whitespace. + * @param {Object} token The token to check. + * @returns {boolean} True if the given token has leading space, false if not. + */ + function hasLeadingSpace(token) { + const tokenBefore = sourceCode.getTokenBefore(token); + + return tokenBefore && astUtils.isTokenOnSameLine(tokenBefore, token) && sourceCode.isSpaceBetweenTokens(tokenBefore, token); + } + + /** + * Checks if a given token has trailing whitespace. + * @param {Object} token The token to check. + * @returns {boolean} True if the given token has trailing space, false if not. + */ + function hasTrailingSpace(token) { + const tokenAfter = sourceCode.getTokenAfter(token); + + return tokenAfter && astUtils.isTokenOnSameLine(token, tokenAfter) && sourceCode.isSpaceBetweenTokens(token, tokenAfter); + } + + /** + * Checks if the given token is the last token in its line. + * @param {Token} token The token to check. + * @returns {boolean} Whether or not the token is the last in its line. + */ + function isLastTokenInCurrentLine(token) { + const tokenAfter = sourceCode.getTokenAfter(token); + + return !(tokenAfter && astUtils.isTokenOnSameLine(token, tokenAfter)); + } + + /** + * Checks if the given token is the first token in its line + * @param {Token} token The token to check. + * @returns {boolean} Whether or not the token is the first in its line. + */ + function isFirstTokenInCurrentLine(token) { + const tokenBefore = sourceCode.getTokenBefore(token); + + return !(tokenBefore && astUtils.isTokenOnSameLine(token, tokenBefore)); + } + + /** + * Checks if the next token of a given token is a closing parenthesis. + * @param {Token} token The token to check. + * @returns {boolean} Whether or not the next token of a given token is a closing parenthesis. + */ + function isBeforeClosingParen(token) { + const nextToken = sourceCode.getTokenAfter(token); + + return (nextToken && astUtils.isClosingBraceToken(nextToken) || astUtils.isClosingParenToken(nextToken)); + } + + /** + * Report location example : + * + * for unexpected space `before` + * + * var a = 'b' ; + * ^^^ + * + * for unexpected space `after` + * + * var a = 'b'; c = 10; + * ^^ + * + * Reports if the given token has invalid spacing. + * @param {Token} token The semicolon token to check. + * @param {ASTNode} node The corresponding node of the token. + * @returns {void} + */ + function checkSemicolonSpacing(token, node) { + if (astUtils.isSemicolonToken(token)) { + if (hasLeadingSpace(token)) { + if (!requireSpaceBefore) { + const tokenBefore = sourceCode.getTokenBefore(token); + const loc = { + start: tokenBefore.loc.end, + end: token.loc.start + }; + + context.report({ + node, + loc, + messageId: "unexpectedWhitespaceBefore", + fix(fixer) { + + return fixer.removeRange([tokenBefore.range[1], token.range[0]]); + } + }); + } + } else { + if (requireSpaceBefore) { + const loc = token.loc; + + context.report({ + node, + loc, + messageId: "missingWhitespaceBefore", + fix(fixer) { + return fixer.insertTextBefore(token, " "); + } + }); + } + } + + if (!isFirstTokenInCurrentLine(token) && !isLastTokenInCurrentLine(token) && !isBeforeClosingParen(token)) { + if (hasTrailingSpace(token)) { + if (!requireSpaceAfter) { + const tokenAfter = sourceCode.getTokenAfter(token); + const loc = { + start: token.loc.end, + end: tokenAfter.loc.start + }; + + context.report({ + node, + loc, + messageId: "unexpectedWhitespaceAfter", + fix(fixer) { + + return fixer.removeRange([token.range[1], tokenAfter.range[0]]); + } + }); + } + } else { + if (requireSpaceAfter) { + const loc = token.loc; + + context.report({ + node, + loc, + messageId: "missingWhitespaceAfter", + fix(fixer) { + return fixer.insertTextAfter(token, " "); + } + }); + } + } + } + } + } + + /** + * Checks the spacing of the semicolon with the assumption that the last token is the semicolon. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkNode(node) { + const token = sourceCode.getLastToken(node); + + checkSemicolonSpacing(token, node); + } + + return { + VariableDeclaration: checkNode, + ExpressionStatement: checkNode, + BreakStatement: checkNode, + ContinueStatement: checkNode, + DebuggerStatement: checkNode, + DoWhileStatement: checkNode, + ReturnStatement: checkNode, + ThrowStatement: checkNode, + ImportDeclaration: checkNode, + ExportNamedDeclaration: checkNode, + ExportAllDeclaration: checkNode, + ExportDefaultDeclaration: checkNode, + ForStatement(node) { + if (node.init) { + checkSemicolonSpacing(sourceCode.getTokenAfter(node.init), node); + } + + if (node.test) { + checkSemicolonSpacing(sourceCode.getTokenAfter(node.test), node); + } + }, + PropertyDefinition: checkNode + }; + } +}; diff --git a/node_modules/eslint/lib/rules/semi-style.js b/node_modules/eslint/lib/rules/semi-style.js new file mode 100644 index 0000000..424858b --- /dev/null +++ b/node_modules/eslint/lib/rules/semi-style.js @@ -0,0 +1,155 @@ +/** + * @fileoverview Rule to enforce location of semicolons. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +const SELECTOR = [ + "BreakStatement", "ContinueStatement", "DebuggerStatement", + "DoWhileStatement", "ExportAllDeclaration", + "ExportDefaultDeclaration", "ExportNamedDeclaration", + "ExpressionStatement", "ImportDeclaration", "ReturnStatement", + "ThrowStatement", "VariableDeclaration", "PropertyDefinition" +].join(","); + +/** + * Get the child node list of a given node. + * This returns `BlockStatement#body`, `StaticBlock#body`, `Program#body`, + * `ClassBody#body`, or `SwitchCase#consequent`. + * This is used to check whether a node is the first/last child. + * @param {Node} node A node to get child node list. + * @returns {Node[]|null} The child node list. + */ +function getChildren(node) { + const t = node.type; + + if ( + t === "BlockStatement" || + t === "StaticBlock" || + t === "Program" || + t === "ClassBody" + ) { + return node.body; + } + if (t === "SwitchCase") { + return node.consequent; + } + return null; +} + +/** + * Check whether a given node is the last statement in the parent block. + * @param {Node} node A node to check. + * @returns {boolean} `true` if the node is the last statement in the parent block. + */ +function isLastChild(node) { + const t = node.parent.type; + + if (t === "IfStatement" && node.parent.consequent === node && node.parent.alternate) { // before `else` keyword. + return true; + } + if (t === "DoWhileStatement") { // before `while` keyword. + return true; + } + const nodeList = getChildren(node.parent); + + return nodeList !== null && nodeList[nodeList.length - 1] === node; // before `}` or etc. +} + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce location of semicolons", + recommended: false, + url: "https://eslint.org/docs/rules/semi-style" + }, + + schema: [{ enum: ["last", "first"] }], + fixable: "whitespace", + + messages: { + expectedSemiColon: "Expected this semicolon to be at {{pos}}." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const option = context.options[0] || "last"; + + /** + * Check the given semicolon token. + * @param {Token} semiToken The semicolon token to check. + * @param {"first"|"last"} expected The expected location to check. + * @returns {void} + */ + function check(semiToken, expected) { + const prevToken = sourceCode.getTokenBefore(semiToken); + const nextToken = sourceCode.getTokenAfter(semiToken); + const prevIsSameLine = !prevToken || astUtils.isTokenOnSameLine(prevToken, semiToken); + const nextIsSameLine = !nextToken || astUtils.isTokenOnSameLine(semiToken, nextToken); + + if ((expected === "last" && !prevIsSameLine) || (expected === "first" && !nextIsSameLine)) { + context.report({ + loc: semiToken.loc, + messageId: "expectedSemiColon", + data: { + pos: (expected === "last") + ? "the end of the previous line" + : "the beginning of the next line" + }, + fix(fixer) { + if (prevToken && nextToken && sourceCode.commentsExistBetween(prevToken, nextToken)) { + return null; + } + + const start = prevToken ? prevToken.range[1] : semiToken.range[0]; + const end = nextToken ? nextToken.range[0] : semiToken.range[1]; + const text = (expected === "last") ? ";\n" : "\n;"; + + return fixer.replaceTextRange([start, end], text); + } + }); + } + } + + return { + [SELECTOR](node) { + if (option === "first" && isLastChild(node)) { + return; + } + + const lastToken = sourceCode.getLastToken(node); + + if (astUtils.isSemicolonToken(lastToken)) { + check(lastToken, option); + } + }, + + ForStatement(node) { + const firstSemi = node.init && sourceCode.getTokenAfter(node.init, astUtils.isSemicolonToken); + const secondSemi = node.test && sourceCode.getTokenAfter(node.test, astUtils.isSemicolonToken); + + if (firstSemi) { + check(firstSemi, "last"); + } + if (secondSemi) { + check(secondSemi, "last"); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/semi.js b/node_modules/eslint/lib/rules/semi.js new file mode 100644 index 0000000..1e49273 --- /dev/null +++ b/node_modules/eslint/lib/rules/semi.js @@ -0,0 +1,410 @@ +/** + * @fileoverview Rule to flag missing semicolons. + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const FixTracker = require("./utils/fix-tracker"); +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow semicolons instead of ASI", + recommended: false, + url: "https://eslint.org/docs/rules/semi" + }, + + fixable: "code", + + schema: { + anyOf: [ + { + type: "array", + items: [ + { + enum: ["never"] + }, + { + type: "object", + properties: { + beforeStatementContinuationChars: { + enum: ["always", "any", "never"] + } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + }, + { + type: "array", + items: [ + { + enum: ["always"] + }, + { + type: "object", + properties: { + omitLastInOneLineBlock: { type: "boolean" } + }, + additionalProperties: false + } + ], + minItems: 0, + maxItems: 2 + } + ] + }, + + messages: { + missingSemi: "Missing semicolon.", + extraSemi: "Extra semicolon." + } + }, + + create(context) { + + const OPT_OUT_PATTERN = /^[-[(/+`]/u; // One of [(/+-` + const unsafeClassFieldNames = new Set(["get", "set", "static"]); + const unsafeClassFieldFollowers = new Set(["*", "in", "instanceof"]); + const options = context.options[1]; + const never = context.options[0] === "never"; + const exceptOneLine = Boolean(options && options.omitLastInOneLineBlock); + const beforeStatementContinuationChars = options && options.beforeStatementContinuationChars || "any"; + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Reports a semicolon error with appropriate location and message. + * @param {ASTNode} node The node with an extra or missing semicolon. + * @param {boolean} missing True if the semicolon is missing. + * @returns {void} + */ + function report(node, missing) { + const lastToken = sourceCode.getLastToken(node); + let messageId, + fix, + loc; + + if (!missing) { + messageId = "missingSemi"; + loc = { + start: lastToken.loc.end, + end: astUtils.getNextLocation(sourceCode, lastToken.loc.end) + }; + fix = function(fixer) { + return fixer.insertTextAfter(lastToken, ";"); + }; + } else { + messageId = "extraSemi"; + loc = lastToken.loc; + fix = function(fixer) { + + /* + * Expand the replacement range to include the surrounding + * tokens to avoid conflicting with no-extra-semi. + * https://github.com/eslint/eslint/issues/7928 + */ + return new FixTracker(fixer, sourceCode) + .retainSurroundingTokens(lastToken) + .remove(lastToken); + }; + } + + context.report({ + node, + loc, + messageId, + fix + }); + + } + + /** + * Check whether a given semicolon token is redundant. + * @param {Token} semiToken A semicolon token to check. + * @returns {boolean} `true` if the next token is `;` or `}`. + */ + function isRedundantSemi(semiToken) { + const nextToken = sourceCode.getTokenAfter(semiToken); + + return ( + !nextToken || + astUtils.isClosingBraceToken(nextToken) || + astUtils.isSemicolonToken(nextToken) + ); + } + + /** + * Check whether a given token is the closing brace of an arrow function. + * @param {Token} lastToken A token to check. + * @returns {boolean} `true` if the token is the closing brace of an arrow function. + */ + function isEndOfArrowBlock(lastToken) { + if (!astUtils.isClosingBraceToken(lastToken)) { + return false; + } + const node = sourceCode.getNodeByRangeIndex(lastToken.range[0]); + + return ( + node.type === "BlockStatement" && + node.parent.type === "ArrowFunctionExpression" + ); + } + + /** + * Checks if a given PropertyDefinition node followed by a semicolon + * can safely remove that semicolon. It is not to safe to remove if + * the class field name is "get", "set", or "static", or if + * followed by a generator method. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node cannot have the semicolon + * removed. + */ + function maybeClassFieldAsiHazard(node) { + + if (node.type !== "PropertyDefinition") { + return false; + } + + /* + * Computed property names and non-identifiers are always safe + * as they can be distinguished from keywords easily. + */ + const needsNameCheck = !node.computed && node.key.type === "Identifier"; + + /* + * Certain names are problematic unless they also have a + * a way to distinguish between keywords and property + * names. + */ + if (needsNameCheck && unsafeClassFieldNames.has(node.key.name)) { + + /* + * Special case: If the field name is `static`, + * it is only valid if the field is marked as static, + * so "static static" is okay but "static" is not. + */ + const isStaticStatic = node.static && node.key.name === "static"; + + /* + * For other unsafe names, we only care if there is no + * initializer. No initializer = hazard. + */ + if (!isStaticStatic && !node.value) { + return true; + } + } + + const followingToken = sourceCode.getTokenAfter(node); + + return unsafeClassFieldFollowers.has(followingToken.value); + } + + /** + * Check whether a given node is on the same line with the next token. + * @param {Node} node A statement node to check. + * @returns {boolean} `true` if the node is on the same line with the next token. + */ + function isOnSameLineWithNextToken(node) { + const prevToken = sourceCode.getLastToken(node, 1); + const nextToken = sourceCode.getTokenAfter(node); + + return !!nextToken && astUtils.isTokenOnSameLine(prevToken, nextToken); + } + + /** + * Check whether a given node can connect the next line if the next line is unreliable. + * @param {Node} node A statement node to check. + * @returns {boolean} `true` if the node can connect the next line. + */ + function maybeAsiHazardAfter(node) { + const t = node.type; + + if (t === "DoWhileStatement" || + t === "BreakStatement" || + t === "ContinueStatement" || + t === "DebuggerStatement" || + t === "ImportDeclaration" || + t === "ExportAllDeclaration" + ) { + return false; + } + if (t === "ReturnStatement") { + return Boolean(node.argument); + } + if (t === "ExportNamedDeclaration") { + return Boolean(node.declaration); + } + if (isEndOfArrowBlock(sourceCode.getLastToken(node, 1))) { + return false; + } + + return true; + } + + /** + * Check whether a given token can connect the previous statement. + * @param {Token} token A token to check. + * @returns {boolean} `true` if the token is one of `[`, `(`, `/`, `+`, `-`, ```, `++`, and `--`. + */ + function maybeAsiHazardBefore(token) { + return ( + Boolean(token) && + OPT_OUT_PATTERN.test(token.value) && + token.value !== "++" && + token.value !== "--" + ); + } + + /** + * Check if the semicolon of a given node is unnecessary, only true if: + * - next token is a valid statement divider (`;` or `}`). + * - next token is on a new line and the node is not connectable to the new line. + * @param {Node} node A statement node to check. + * @returns {boolean} whether the semicolon is unnecessary. + */ + function canRemoveSemicolon(node) { + if (isRedundantSemi(sourceCode.getLastToken(node))) { + return true; // `;;` or `;}` + } + if (maybeClassFieldAsiHazard(node)) { + return false; + } + if (isOnSameLineWithNextToken(node)) { + return false; // One liner. + } + + // continuation characters should not apply to class fields + if ( + node.type !== "PropertyDefinition" && + beforeStatementContinuationChars === "never" && + !maybeAsiHazardAfter(node) + ) { + return true; // ASI works. This statement doesn't connect to the next. + } + if (!maybeAsiHazardBefore(sourceCode.getTokenAfter(node))) { + return true; // ASI works. The next token doesn't connect to this statement. + } + + return false; + } + + /** + * Checks a node to see if it's the last item in a one-liner block. + * Block is any `BlockStatement` or `StaticBlock` node. Block is a one-liner if its + * braces (and consequently everything between them) are on the same line. + * @param {ASTNode} node The node to check. + * @returns {boolean} whether the node is the last item in a one-liner block. + */ + function isLastInOneLinerBlock(node) { + const parent = node.parent; + const nextToken = sourceCode.getTokenAfter(node); + + if (!nextToken || nextToken.value !== "}") { + return false; + } + + if (parent.type === "BlockStatement") { + return parent.loc.start.line === parent.loc.end.line; + } + + if (parent.type === "StaticBlock") { + const openingBrace = sourceCode.getFirstToken(parent, { skip: 1 }); // skip the `static` token + + return openingBrace.loc.start.line === parent.loc.end.line; + } + + return false; + } + + /** + * Checks a node to see if it's followed by a semicolon. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkForSemicolon(node) { + const isSemi = astUtils.isSemicolonToken(sourceCode.getLastToken(node)); + + if (never) { + if (isSemi && canRemoveSemicolon(node)) { + report(node, true); + } else if ( + !isSemi && beforeStatementContinuationChars === "always" && + node.type !== "PropertyDefinition" && + maybeAsiHazardBefore(sourceCode.getTokenAfter(node)) + ) { + report(node); + } + } else { + const oneLinerBlock = (exceptOneLine && isLastInOneLinerBlock(node)); + + if (isSemi && oneLinerBlock) { + report(node, true); + } else if (!isSemi && !oneLinerBlock) { + report(node); + } + } + } + + /** + * Checks to see if there's a semicolon after a variable declaration. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkForSemicolonForVariableDeclaration(node) { + const parent = node.parent; + + if ((parent.type !== "ForStatement" || parent.init !== node) && + (!/^For(?:In|Of)Statement/u.test(parent.type) || parent.left !== node) + ) { + checkForSemicolon(node); + } + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + VariableDeclaration: checkForSemicolonForVariableDeclaration, + ExpressionStatement: checkForSemicolon, + ReturnStatement: checkForSemicolon, + ThrowStatement: checkForSemicolon, + DoWhileStatement: checkForSemicolon, + DebuggerStatement: checkForSemicolon, + BreakStatement: checkForSemicolon, + ContinueStatement: checkForSemicolon, + ImportDeclaration: checkForSemicolon, + ExportAllDeclaration: checkForSemicolon, + ExportNamedDeclaration(node) { + if (!node.declaration) { + checkForSemicolon(node); + } + }, + ExportDefaultDeclaration(node) { + if (!/(?:Class|Function)Declaration/u.test(node.declaration.type)) { + checkForSemicolon(node); + } + }, + PropertyDefinition: checkForSemicolon + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/sort-imports.js b/node_modules/eslint/lib/rules/sort-imports.js new file mode 100644 index 0000000..bfb0765 --- /dev/null +++ b/node_modules/eslint/lib/rules/sort-imports.js @@ -0,0 +1,241 @@ +/** + * @fileoverview Rule to require sorting of import declarations + * @author Christian Schuller + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce sorted import declarations within modules", + recommended: false, + url: "https://eslint.org/docs/rules/sort-imports" + }, + + schema: [ + { + type: "object", + properties: { + ignoreCase: { + type: "boolean", + default: false + }, + memberSyntaxSortOrder: { + type: "array", + items: { + enum: ["none", "all", "multiple", "single"] + }, + uniqueItems: true, + minItems: 4, + maxItems: 4 + }, + ignoreDeclarationSort: { + type: "boolean", + default: false + }, + ignoreMemberSort: { + type: "boolean", + default: false + }, + allowSeparatedGroups: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + fixable: "code", + + messages: { + sortImportsAlphabetically: "Imports should be sorted alphabetically.", + sortMembersAlphabetically: "Member '{{memberName}}' of the import declaration should be sorted alphabetically.", + unexpectedSyntaxOrder: "Expected '{{syntaxA}}' syntax before '{{syntaxB}}' syntax." + } + }, + + create(context) { + + const configuration = context.options[0] || {}, + ignoreCase = configuration.ignoreCase || false, + ignoreDeclarationSort = configuration.ignoreDeclarationSort || false, + ignoreMemberSort = configuration.ignoreMemberSort || false, + memberSyntaxSortOrder = configuration.memberSyntaxSortOrder || ["none", "all", "multiple", "single"], + allowSeparatedGroups = configuration.allowSeparatedGroups || false, + sourceCode = context.getSourceCode(); + let previousDeclaration = null; + + /** + * Gets the used member syntax style. + * + * import "my-module.js" --> none + * import * as myModule from "my-module.js" --> all + * import {myMember} from "my-module.js" --> single + * import {foo, bar} from "my-module.js" --> multiple + * @param {ASTNode} node the ImportDeclaration node. + * @returns {string} used member parameter style, ["all", "multiple", "single"] + */ + function usedMemberSyntax(node) { + if (node.specifiers.length === 0) { + return "none"; + } + if (node.specifiers[0].type === "ImportNamespaceSpecifier") { + return "all"; + } + if (node.specifiers.length === 1) { + return "single"; + } + return "multiple"; + + } + + /** + * Gets the group by member parameter index for given declaration. + * @param {ASTNode} node the ImportDeclaration node. + * @returns {number} the declaration group by member index. + */ + function getMemberParameterGroupIndex(node) { + return memberSyntaxSortOrder.indexOf(usedMemberSyntax(node)); + } + + /** + * Gets the local name of the first imported module. + * @param {ASTNode} node the ImportDeclaration node. + * @returns {?string} the local name of the first imported module. + */ + function getFirstLocalMemberName(node) { + if (node.specifiers[0]) { + return node.specifiers[0].local.name; + } + return null; + + } + + /** + * Calculates number of lines between two nodes. It is assumed that the given `left` node appears before + * the given `right` node in the source code. Lines are counted from the end of the `left` node till the + * start of the `right` node. If the given nodes are on the same line, it returns `0`, same as if they were + * on two consecutive lines. + * @param {ASTNode} left node that appears before the given `right` node. + * @param {ASTNode} right node that appears after the given `left` node. + * @returns {number} number of lines between nodes. + */ + function getNumberOfLinesBetween(left, right) { + return Math.max(right.loc.start.line - left.loc.end.line - 1, 0); + } + + return { + ImportDeclaration(node) { + if (!ignoreDeclarationSort) { + if ( + previousDeclaration && + allowSeparatedGroups && + getNumberOfLinesBetween(previousDeclaration, node) > 0 + ) { + + // reset declaration sort + previousDeclaration = null; + } + + if (previousDeclaration) { + const currentMemberSyntaxGroupIndex = getMemberParameterGroupIndex(node), + previousMemberSyntaxGroupIndex = getMemberParameterGroupIndex(previousDeclaration); + let currentLocalMemberName = getFirstLocalMemberName(node), + previousLocalMemberName = getFirstLocalMemberName(previousDeclaration); + + if (ignoreCase) { + previousLocalMemberName = previousLocalMemberName && previousLocalMemberName.toLowerCase(); + currentLocalMemberName = currentLocalMemberName && currentLocalMemberName.toLowerCase(); + } + + /* + * When the current declaration uses a different member syntax, + * then check if the ordering is correct. + * Otherwise, make a default string compare (like rule sort-vars to be consistent) of the first used local member name. + */ + if (currentMemberSyntaxGroupIndex !== previousMemberSyntaxGroupIndex) { + if (currentMemberSyntaxGroupIndex < previousMemberSyntaxGroupIndex) { + context.report({ + node, + messageId: "unexpectedSyntaxOrder", + data: { + syntaxA: memberSyntaxSortOrder[currentMemberSyntaxGroupIndex], + syntaxB: memberSyntaxSortOrder[previousMemberSyntaxGroupIndex] + } + }); + } + } else { + if (previousLocalMemberName && + currentLocalMemberName && + currentLocalMemberName < previousLocalMemberName + ) { + context.report({ + node, + messageId: "sortImportsAlphabetically" + }); + } + } + } + + previousDeclaration = node; + } + + if (!ignoreMemberSort) { + const importSpecifiers = node.specifiers.filter(specifier => specifier.type === "ImportSpecifier"); + const getSortableName = ignoreCase ? specifier => specifier.local.name.toLowerCase() : specifier => specifier.local.name; + const firstUnsortedIndex = importSpecifiers.map(getSortableName).findIndex((name, index, array) => array[index - 1] > name); + + if (firstUnsortedIndex !== -1) { + context.report({ + node: importSpecifiers[firstUnsortedIndex], + messageId: "sortMembersAlphabetically", + data: { memberName: importSpecifiers[firstUnsortedIndex].local.name }, + fix(fixer) { + if (importSpecifiers.some(specifier => + sourceCode.getCommentsBefore(specifier).length || sourceCode.getCommentsAfter(specifier).length)) { + + // If there are comments in the ImportSpecifier list, don't rearrange the specifiers. + return null; + } + + return fixer.replaceTextRange( + [importSpecifiers[0].range[0], importSpecifiers[importSpecifiers.length - 1].range[1]], + importSpecifiers + + // Clone the importSpecifiers array to avoid mutating it + .slice() + + // Sort the array into the desired order + .sort((specifierA, specifierB) => { + const aName = getSortableName(specifierA); + const bName = getSortableName(specifierB); + + return aName > bName ? 1 : -1; + }) + + // Build a string out of the sorted list of import specifiers and the text between the originals + .reduce((sourceText, specifier, index) => { + const textAfterSpecifier = index === importSpecifiers.length - 1 + ? "" + : sourceCode.getText().slice(importSpecifiers[index].range[1], importSpecifiers[index + 1].range[0]); + + return sourceText + sourceCode.getText(specifier) + textAfterSpecifier; + }, "") + ); + } + }); + } + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/sort-keys.js b/node_modules/eslint/lib/rules/sort-keys.js new file mode 100644 index 0000000..1523ab7 --- /dev/null +++ b/node_modules/eslint/lib/rules/sort-keys.js @@ -0,0 +1,230 @@ +/** + * @fileoverview Rule to require object keys to be sorted + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"), + naturalCompare = require("natural-compare"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Gets the property name of the given `Property` node. + * + * - If the property's key is an `Identifier` node, this returns the key's name + * whether it's a computed property or not. + * - If the property has a static name, this returns the static name. + * - Otherwise, this returns null. + * @param {ASTNode} node The `Property` node to get. + * @returns {string|null} The property name or null. + * @private + */ +function getPropertyName(node) { + const staticName = astUtils.getStaticPropertyName(node); + + if (staticName !== null) { + return staticName; + } + + return node.key.name || null; +} + +/** + * Functions which check that the given 2 names are in specific order. + * + * Postfix `I` is meant insensitive. + * Postfix `N` is meant natural. + * @private + */ +const isValidOrders = { + asc(a, b) { + return a <= b; + }, + ascI(a, b) { + return a.toLowerCase() <= b.toLowerCase(); + }, + ascN(a, b) { + return naturalCompare(a, b) <= 0; + }, + ascIN(a, b) { + return naturalCompare(a.toLowerCase(), b.toLowerCase()) <= 0; + }, + desc(a, b) { + return isValidOrders.asc(b, a); + }, + descI(a, b) { + return isValidOrders.ascI(b, a); + }, + descN(a, b) { + return isValidOrders.ascN(b, a); + }, + descIN(a, b) { + return isValidOrders.ascIN(b, a); + } +}; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require object keys to be sorted", + recommended: false, + url: "https://eslint.org/docs/rules/sort-keys" + }, + + schema: [ + { + enum: ["asc", "desc"] + }, + { + type: "object", + properties: { + caseSensitive: { + type: "boolean", + default: true + }, + natural: { + type: "boolean", + default: false + }, + minKeys: { + type: "integer", + minimum: 2, + default: 2 + }, + allowLineSeparatedGroups: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + sortKeys: "Expected object keys to be in {{natural}}{{insensitive}}{{order}}ending order. '{{thisName}}' should be before '{{prevName}}'." + } + }, + + create(context) { + + // Parse options. + const order = context.options[0] || "asc"; + const options = context.options[1]; + const insensitive = options && options.caseSensitive === false; + const natural = options && options.natural; + const minKeys = options && options.minKeys; + const allowLineSeparatedGroups = options && options.allowLineSeparatedGroups || false; + const isValidOrder = isValidOrders[ + order + (insensitive ? "I" : "") + (natural ? "N" : "") + ]; + + // The stack to save the previous property's name for each object literals. + let stack = null; + const sourceCode = context.getSourceCode(); + + return { + ObjectExpression(node) { + stack = { + upper: stack, + prevNode: null, + prevBlankLine: false, + prevName: null, + numKeys: node.properties.length + }; + }, + + "ObjectExpression:exit"() { + stack = stack.upper; + }, + + SpreadElement(node) { + if (node.parent.type === "ObjectExpression") { + stack.prevName = null; + } + }, + + Property(node) { + if (node.parent.type === "ObjectPattern") { + return; + } + + const prevName = stack.prevName; + const numKeys = stack.numKeys; + const thisName = getPropertyName(node); + + // Get tokens between current node and previous node + const tokens = stack.prevNode && sourceCode + .getTokensBetween(stack.prevNode, node, { includeComments: true }); + + let isBlankLineBetweenNodes = stack.prevBlankLine; + + if (tokens) { + + // check blank line between tokens + tokens.forEach((token, index) => { + const previousToken = tokens[index - 1]; + + if (previousToken && (token.loc.start.line - previousToken.loc.end.line > 1)) { + isBlankLineBetweenNodes = true; + } + }); + + // check blank line between the current node and the last token + if (!isBlankLineBetweenNodes && (node.loc.start.line - tokens[tokens.length - 1].loc.end.line > 1)) { + isBlankLineBetweenNodes = true; + } + + // check blank line between the first token and the previous node + if (!isBlankLineBetweenNodes && (tokens[0].loc.start.line - stack.prevNode.loc.end.line > 1)) { + isBlankLineBetweenNodes = true; + } + } + + stack.prevNode = node; + + if (thisName !== null) { + stack.prevName = thisName; + } + + if (allowLineSeparatedGroups && isBlankLineBetweenNodes) { + stack.prevBlankLine = thisName === null; + return; + } + + if (prevName === null || thisName === null || numKeys < minKeys) { + return; + } + + if (!isValidOrder(prevName, thisName)) { + context.report({ + node, + loc: node.key.loc, + messageId: "sortKeys", + data: { + thisName, + prevName, + order, + insensitive: insensitive ? "insensitive " : "", + natural: natural ? "natural " : "" + } + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/sort-vars.js b/node_modules/eslint/lib/rules/sort-vars.js new file mode 100644 index 0000000..ec0718e --- /dev/null +++ b/node_modules/eslint/lib/rules/sort-vars.js @@ -0,0 +1,104 @@ +/** + * @fileoverview Rule to require sorting of variables within a single Variable Declaration block + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require variables within the same declaration block to be sorted", + recommended: false, + url: "https://eslint.org/docs/rules/sort-vars" + }, + + schema: [ + { + type: "object", + properties: { + ignoreCase: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + fixable: "code", + + messages: { + sortVars: "Variables within the same declaration block should be sorted alphabetically." + } + }, + + create(context) { + + const configuration = context.options[0] || {}, + ignoreCase = configuration.ignoreCase || false, + sourceCode = context.getSourceCode(); + + return { + VariableDeclaration(node) { + const idDeclarations = node.declarations.filter(decl => decl.id.type === "Identifier"); + const getSortableName = ignoreCase ? decl => decl.id.name.toLowerCase() : decl => decl.id.name; + const unfixable = idDeclarations.some(decl => decl.init !== null && decl.init.type !== "Literal"); + let fixed = false; + + idDeclarations.slice(1).reduce((memo, decl) => { + const lastVariableName = getSortableName(memo), + currentVariableName = getSortableName(decl); + + if (currentVariableName < lastVariableName) { + context.report({ + node: decl, + messageId: "sortVars", + fix(fixer) { + if (unfixable || fixed) { + return null; + } + return fixer.replaceTextRange( + [idDeclarations[0].range[0], idDeclarations[idDeclarations.length - 1].range[1]], + idDeclarations + + // Clone the idDeclarations array to avoid mutating it + .slice() + + // Sort the array into the desired order + .sort((declA, declB) => { + const aName = getSortableName(declA); + const bName = getSortableName(declB); + + return aName > bName ? 1 : -1; + }) + + // Build a string out of the sorted list of identifier declarations and the text between the originals + .reduce((sourceText, identifier, index) => { + const textAfterIdentifier = index === idDeclarations.length - 1 + ? "" + : sourceCode.getText().slice(idDeclarations[index].range[1], idDeclarations[index + 1].range[0]); + + return sourceText + sourceCode.getText(identifier) + textAfterIdentifier; + }, "") + + ); + } + }); + fixed = true; + return memo; + } + return decl; + + }, idDeclarations[0]); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/space-before-blocks.js b/node_modules/eslint/lib/rules/space-before-blocks.js new file mode 100644 index 0000000..ffd33dd --- /dev/null +++ b/node_modules/eslint/lib/rules/space-before-blocks.js @@ -0,0 +1,201 @@ +/** + * @fileoverview A rule to ensure whitespace before blocks. + * @author Mathias Schreck + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether the given node represents the body of a function. + * @param {ASTNode} node the node to check. + * @returns {boolean} `true` if the node is function body. + */ +function isFunctionBody(node) { + const parent = node.parent; + + return ( + node.type === "BlockStatement" && + astUtils.isFunction(parent) && + parent.body === node + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing before blocks", + recommended: false, + url: "https://eslint.org/docs/rules/space-before-blocks" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + keywords: { + enum: ["always", "never", "off"] + }, + functions: { + enum: ["always", "never", "off"] + }, + classes: { + enum: ["always", "never", "off"] + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + unexpectedSpace: "Unexpected space before opening brace.", + missingSpace: "Missing space before opening brace." + } + }, + + create(context) { + const config = context.options[0], + sourceCode = context.getSourceCode(); + let alwaysFunctions = true, + alwaysKeywords = true, + alwaysClasses = true, + neverFunctions = false, + neverKeywords = false, + neverClasses = false; + + if (typeof config === "object") { + alwaysFunctions = config.functions === "always"; + alwaysKeywords = config.keywords === "always"; + alwaysClasses = config.classes === "always"; + neverFunctions = config.functions === "never"; + neverKeywords = config.keywords === "never"; + neverClasses = config.classes === "never"; + } else if (config === "never") { + alwaysFunctions = false; + alwaysKeywords = false; + alwaysClasses = false; + neverFunctions = true; + neverKeywords = true; + neverClasses = true; + } + + /** + * Checks whether the spacing before the given block is already controlled by another rule: + * - `arrow-spacing` checks spaces after `=>`. + * - `keyword-spacing` checks spaces after keywords in certain contexts. + * - `switch-colon-spacing` checks spaces after `:` of switch cases. + * @param {Token} precedingToken first token before the block. + * @param {ASTNode|Token} node `BlockStatement` node or `{` token of a `SwitchStatement` node. + * @returns {boolean} `true` if requiring or disallowing spaces before the given block could produce conflicts with other rules. + */ + function isConflicted(precedingToken, node) { + return ( + astUtils.isArrowToken(precedingToken) || + ( + astUtils.isKeywordToken(precedingToken) && + !isFunctionBody(node) + ) || + ( + astUtils.isColonToken(precedingToken) && + node.parent && + node.parent.type === "SwitchCase" && + precedingToken === astUtils.getSwitchCaseColonToken(node.parent, sourceCode) + ) + ); + } + + /** + * Checks the given BlockStatement node has a preceding space if it doesn’t start on a new line. + * @param {ASTNode|Token} node The AST node of a BlockStatement. + * @returns {void} undefined. + */ + function checkPrecedingSpace(node) { + const precedingToken = sourceCode.getTokenBefore(node); + + if (precedingToken && !isConflicted(precedingToken, node) && astUtils.isTokenOnSameLine(precedingToken, node)) { + const hasSpace = sourceCode.isSpaceBetweenTokens(precedingToken, node); + let requireSpace; + let requireNoSpace; + + if (isFunctionBody(node)) { + requireSpace = alwaysFunctions; + requireNoSpace = neverFunctions; + } else if (node.type === "ClassBody") { + requireSpace = alwaysClasses; + requireNoSpace = neverClasses; + } else { + requireSpace = alwaysKeywords; + requireNoSpace = neverKeywords; + } + + if (requireSpace && !hasSpace) { + context.report({ + node, + messageId: "missingSpace", + fix(fixer) { + return fixer.insertTextBefore(node, " "); + } + }); + } else if (requireNoSpace && hasSpace) { + context.report({ + node, + messageId: "unexpectedSpace", + fix(fixer) { + return fixer.removeRange([precedingToken.range[1], node.range[0]]); + } + }); + } + } + } + + /** + * Checks if the CaseBlock of an given SwitchStatement node has a preceding space. + * @param {ASTNode} node The node of a SwitchStatement. + * @returns {void} undefined. + */ + function checkSpaceBeforeCaseBlock(node) { + const cases = node.cases; + let openingBrace; + + if (cases.length > 0) { + openingBrace = sourceCode.getTokenBefore(cases[0]); + } else { + openingBrace = sourceCode.getLastToken(node, 1); + } + + checkPrecedingSpace(openingBrace); + } + + return { + BlockStatement: checkPrecedingSpace, + ClassBody: checkPrecedingSpace, + SwitchStatement: checkSpaceBeforeCaseBlock + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/space-before-function-paren.js b/node_modules/eslint/lib/rules/space-before-function-paren.js new file mode 100644 index 0000000..b56ac3c --- /dev/null +++ b/node_modules/eslint/lib/rules/space-before-function-paren.js @@ -0,0 +1,164 @@ +/** + * @fileoverview Rule to validate spacing before function paren. + * @author Mathias Schreck + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing before `function` definition opening parenthesis", + recommended: false, + url: "https://eslint.org/docs/rules/space-before-function-paren" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + anonymous: { + enum: ["always", "never", "ignore"] + }, + named: { + enum: ["always", "never", "ignore"] + }, + asyncArrow: { + enum: ["always", "never", "ignore"] + } + }, + additionalProperties: false + } + ] + } + ], + + messages: { + unexpectedSpace: "Unexpected space before function parentheses.", + missingSpace: "Missing space before function parentheses." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const baseConfig = typeof context.options[0] === "string" ? context.options[0] : "always"; + const overrideConfig = typeof context.options[0] === "object" ? context.options[0] : {}; + + /** + * Determines whether a function has a name. + * @param {ASTNode} node The function node. + * @returns {boolean} Whether the function has a name. + */ + function isNamedFunction(node) { + if (node.id) { + return true; + } + + const parent = node.parent; + + return parent.type === "MethodDefinition" || + (parent.type === "Property" && + ( + parent.kind === "get" || + parent.kind === "set" || + parent.method + ) + ); + } + + /** + * Gets the config for a given function + * @param {ASTNode} node The function node + * @returns {string} "always", "never", or "ignore" + */ + function getConfigForFunction(node) { + if (node.type === "ArrowFunctionExpression") { + + // Always ignore non-async functions and arrow functions without parens, e.g. async foo => bar + if (node.async && astUtils.isOpeningParenToken(sourceCode.getFirstToken(node, { skip: 1 }))) { + return overrideConfig.asyncArrow || baseConfig; + } + } else if (isNamedFunction(node)) { + return overrideConfig.named || baseConfig; + + // `generator-star-spacing` should warn anonymous generators. E.g. `function* () {}` + } else if (!node.generator) { + return overrideConfig.anonymous || baseConfig; + } + + return "ignore"; + } + + /** + * Checks the parens of a function node + * @param {ASTNode} node A function node + * @returns {void} + */ + function checkFunction(node) { + const functionConfig = getConfigForFunction(node); + + if (functionConfig === "ignore") { + return; + } + + const rightToken = sourceCode.getFirstToken(node, astUtils.isOpeningParenToken); + const leftToken = sourceCode.getTokenBefore(rightToken); + const hasSpacing = sourceCode.isSpaceBetweenTokens(leftToken, rightToken); + + if (hasSpacing && functionConfig === "never") { + context.report({ + node, + loc: { + start: leftToken.loc.end, + end: rightToken.loc.start + }, + messageId: "unexpectedSpace", + fix(fixer) { + const comments = sourceCode.getCommentsBefore(rightToken); + + // Don't fix anything if there's a single line comment between the left and the right token + if (comments.some(comment => comment.type === "Line")) { + return null; + } + return fixer.replaceTextRange( + [leftToken.range[1], rightToken.range[0]], + comments.reduce((text, comment) => text + sourceCode.getText(comment), "") + ); + } + }); + } else if (!hasSpacing && functionConfig === "always") { + context.report({ + node, + loc: rightToken.loc, + messageId: "missingSpace", + fix: fixer => fixer.insertTextAfter(leftToken, " ") + }); + } + } + + return { + ArrowFunctionExpression: checkFunction, + FunctionDeclaration: checkFunction, + FunctionExpression: checkFunction + }; + } +}; diff --git a/node_modules/eslint/lib/rules/space-in-parens.js b/node_modules/eslint/lib/rules/space-in-parens.js new file mode 100644 index 0000000..42d9bb5 --- /dev/null +++ b/node_modules/eslint/lib/rules/space-in-parens.js @@ -0,0 +1,282 @@ +/** + * @fileoverview Disallows or enforces spaces inside of parentheses. + * @author Jonathan Rajavuori + */ +"use strict"; + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing inside parentheses", + recommended: false, + url: "https://eslint.org/docs/rules/space-in-parens" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + exceptions: { + type: "array", + items: { + enum: ["{}", "[]", "()", "empty"] + }, + uniqueItems: true + } + }, + additionalProperties: false + } + ], + + messages: { + missingOpeningSpace: "There must be a space after this paren.", + missingClosingSpace: "There must be a space before this paren.", + rejectedOpeningSpace: "There should be no space after this paren.", + rejectedClosingSpace: "There should be no space before this paren." + } + }, + + create(context) { + const ALWAYS = context.options[0] === "always", + exceptionsArrayOptions = (context.options[1] && context.options[1].exceptions) || [], + options = {}; + + let exceptions; + + if (exceptionsArrayOptions.length) { + options.braceException = exceptionsArrayOptions.includes("{}"); + options.bracketException = exceptionsArrayOptions.includes("[]"); + options.parenException = exceptionsArrayOptions.includes("()"); + options.empty = exceptionsArrayOptions.includes("empty"); + } + + /** + * Produces an object with the opener and closer exception values + * @returns {Object} `openers` and `closers` exception values + * @private + */ + function getExceptions() { + const openers = [], + closers = []; + + if (options.braceException) { + openers.push("{"); + closers.push("}"); + } + + if (options.bracketException) { + openers.push("["); + closers.push("]"); + } + + if (options.parenException) { + openers.push("("); + closers.push(")"); + } + + if (options.empty) { + openers.push(")"); + closers.push("("); + } + + return { + openers, + closers + }; + } + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + const sourceCode = context.getSourceCode(); + + /** + * Determines if a token is one of the exceptions for the opener paren + * @param {Object} token The token to check + * @returns {boolean} True if the token is one of the exceptions for the opener paren + */ + function isOpenerException(token) { + return exceptions.openers.includes(token.value); + } + + /** + * Determines if a token is one of the exceptions for the closer paren + * @param {Object} token The token to check + * @returns {boolean} True if the token is one of the exceptions for the closer paren + */ + function isCloserException(token) { + return exceptions.closers.includes(token.value); + } + + /** + * Determines if an opening paren is immediately followed by a required space + * @param {Object} openingParenToken The paren token + * @param {Object} tokenAfterOpeningParen The token after it + * @returns {boolean} True if the opening paren is missing a required space + */ + function openerMissingSpace(openingParenToken, tokenAfterOpeningParen) { + if (sourceCode.isSpaceBetweenTokens(openingParenToken, tokenAfterOpeningParen)) { + return false; + } + + if (!options.empty && astUtils.isClosingParenToken(tokenAfterOpeningParen)) { + return false; + } + + if (ALWAYS) { + return !isOpenerException(tokenAfterOpeningParen); + } + return isOpenerException(tokenAfterOpeningParen); + } + + /** + * Determines if an opening paren is immediately followed by a disallowed space + * @param {Object} openingParenToken The paren token + * @param {Object} tokenAfterOpeningParen The token after it + * @returns {boolean} True if the opening paren has a disallowed space + */ + function openerRejectsSpace(openingParenToken, tokenAfterOpeningParen) { + if (!astUtils.isTokenOnSameLine(openingParenToken, tokenAfterOpeningParen)) { + return false; + } + + if (tokenAfterOpeningParen.type === "Line") { + return false; + } + + if (!sourceCode.isSpaceBetweenTokens(openingParenToken, tokenAfterOpeningParen)) { + return false; + } + + if (ALWAYS) { + return isOpenerException(tokenAfterOpeningParen); + } + return !isOpenerException(tokenAfterOpeningParen); + } + + /** + * Determines if a closing paren is immediately preceded by a required space + * @param {Object} tokenBeforeClosingParen The token before the paren + * @param {Object} closingParenToken The paren token + * @returns {boolean} True if the closing paren is missing a required space + */ + function closerMissingSpace(tokenBeforeClosingParen, closingParenToken) { + if (sourceCode.isSpaceBetweenTokens(tokenBeforeClosingParen, closingParenToken)) { + return false; + } + + if (!options.empty && astUtils.isOpeningParenToken(tokenBeforeClosingParen)) { + return false; + } + + if (ALWAYS) { + return !isCloserException(tokenBeforeClosingParen); + } + return isCloserException(tokenBeforeClosingParen); + } + + /** + * Determines if a closer paren is immediately preceded by a disallowed space + * @param {Object} tokenBeforeClosingParen The token before the paren + * @param {Object} closingParenToken The paren token + * @returns {boolean} True if the closing paren has a disallowed space + */ + function closerRejectsSpace(tokenBeforeClosingParen, closingParenToken) { + if (!astUtils.isTokenOnSameLine(tokenBeforeClosingParen, closingParenToken)) { + return false; + } + + if (!sourceCode.isSpaceBetweenTokens(tokenBeforeClosingParen, closingParenToken)) { + return false; + } + + if (ALWAYS) { + return isCloserException(tokenBeforeClosingParen); + } + return !isCloserException(tokenBeforeClosingParen); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + Program: function checkParenSpaces(node) { + exceptions = getExceptions(); + const tokens = sourceCode.tokensAndComments; + + tokens.forEach((token, i) => { + const prevToken = tokens[i - 1]; + const nextToken = tokens[i + 1]; + + // if token is not an opening or closing paren token, do nothing + if (!astUtils.isOpeningParenToken(token) && !astUtils.isClosingParenToken(token)) { + return; + } + + // if token is an opening paren and is not followed by a required space + if (token.value === "(" && openerMissingSpace(token, nextToken)) { + context.report({ + node, + loc: token.loc, + messageId: "missingOpeningSpace", + fix(fixer) { + return fixer.insertTextAfter(token, " "); + } + }); + } + + // if token is an opening paren and is followed by a disallowed space + if (token.value === "(" && openerRejectsSpace(token, nextToken)) { + context.report({ + node, + loc: { start: token.loc.end, end: nextToken.loc.start }, + messageId: "rejectedOpeningSpace", + fix(fixer) { + return fixer.removeRange([token.range[1], nextToken.range[0]]); + } + }); + } + + // if token is a closing paren and is not preceded by a required space + if (token.value === ")" && closerMissingSpace(prevToken, token)) { + context.report({ + node, + loc: token.loc, + messageId: "missingClosingSpace", + fix(fixer) { + return fixer.insertTextBefore(token, " "); + } + }); + } + + // if token is a closing paren and is preceded by a disallowed space + if (token.value === ")" && closerRejectsSpace(prevToken, token)) { + context.report({ + node, + loc: { start: prevToken.loc.end, end: token.loc.start }, + messageId: "rejectedClosingSpace", + fix(fixer) { + return fixer.removeRange([prevToken.range[1], token.range[0]]); + } + }); + } + }); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/space-infix-ops.js b/node_modules/eslint/lib/rules/space-infix-ops.js new file mode 100644 index 0000000..141c269 --- /dev/null +++ b/node_modules/eslint/lib/rules/space-infix-ops.js @@ -0,0 +1,195 @@ +/** + * @fileoverview Require spaces around infix operators + * @author Michael Ficarra + */ +"use strict"; + +const { isEqToken } = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require spacing around infix operators", + recommended: false, + url: "https://eslint.org/docs/rules/space-infix-ops" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + int32Hint: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + missingSpace: "Operator '{{operator}}' must be spaced." + } + }, + + create(context) { + const int32Hint = context.options[0] ? context.options[0].int32Hint === true : false; + const sourceCode = context.getSourceCode(); + + /** + * Returns the first token which violates the rule + * @param {ASTNode} left The left node of the main node + * @param {ASTNode} right The right node of the main node + * @param {string} op The operator of the main node + * @returns {Object} The violator token or null + * @private + */ + function getFirstNonSpacedToken(left, right, op) { + const operator = sourceCode.getFirstTokenBetween(left, right, token => token.value === op); + const prev = sourceCode.getTokenBefore(operator); + const next = sourceCode.getTokenAfter(operator); + + if (!sourceCode.isSpaceBetweenTokens(prev, operator) || !sourceCode.isSpaceBetweenTokens(operator, next)) { + return operator; + } + + return null; + } + + /** + * Reports an AST node as a rule violation + * @param {ASTNode} mainNode The node to report + * @param {Object} culpritToken The token which has a problem + * @returns {void} + * @private + */ + function report(mainNode, culpritToken) { + context.report({ + node: mainNode, + loc: culpritToken.loc, + messageId: "missingSpace", + data: { + operator: culpritToken.value + }, + fix(fixer) { + const previousToken = sourceCode.getTokenBefore(culpritToken); + const afterToken = sourceCode.getTokenAfter(culpritToken); + let fixString = ""; + + if (culpritToken.range[0] - previousToken.range[1] === 0) { + fixString = " "; + } + + fixString += culpritToken.value; + + if (afterToken.range[0] - culpritToken.range[1] === 0) { + fixString += " "; + } + + return fixer.replaceText(culpritToken, fixString); + } + }); + } + + /** + * Check if the node is binary then report + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkBinary(node) { + const leftNode = (node.left.typeAnnotation) ? node.left.typeAnnotation : node.left; + const rightNode = node.right; + + // search for = in AssignmentPattern nodes + const operator = node.operator || "="; + + const nonSpacedNode = getFirstNonSpacedToken(leftNode, rightNode, operator); + + if (nonSpacedNode) { + if (!(int32Hint && sourceCode.getText(node).endsWith("|0"))) { + report(node, nonSpacedNode); + } + } + } + + /** + * Check if the node is conditional + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkConditional(node) { + const nonSpacedConsequentNode = getFirstNonSpacedToken(node.test, node.consequent, "?"); + const nonSpacedAlternateNode = getFirstNonSpacedToken(node.consequent, node.alternate, ":"); + + if (nonSpacedConsequentNode) { + report(node, nonSpacedConsequentNode); + } + + if (nonSpacedAlternateNode) { + report(node, nonSpacedAlternateNode); + } + } + + /** + * Check if the node is a variable + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkVar(node) { + const leftNode = (node.id.typeAnnotation) ? node.id.typeAnnotation : node.id; + const rightNode = node.init; + + if (rightNode) { + const nonSpacedNode = getFirstNonSpacedToken(leftNode, rightNode, "="); + + if (nonSpacedNode) { + report(node, nonSpacedNode); + } + } + } + + return { + AssignmentExpression: checkBinary, + AssignmentPattern: checkBinary, + BinaryExpression: checkBinary, + LogicalExpression: checkBinary, + ConditionalExpression: checkConditional, + VariableDeclarator: checkVar, + + PropertyDefinition(node) { + if (!node.value) { + return; + } + + /* + * Because of computed properties and type annotations, some + * tokens may exist between `node.key` and `=`. + * Therefore, find the `=` from the right. + */ + const operatorToken = sourceCode.getTokenBefore(node.value, isEqToken); + const leftToken = sourceCode.getTokenBefore(operatorToken); + const rightToken = sourceCode.getTokenAfter(operatorToken); + + if ( + !sourceCode.isSpaceBetweenTokens(leftToken, operatorToken) || + !sourceCode.isSpaceBetweenTokens(operatorToken, rightToken) + ) { + report(node, operatorToken); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/space-unary-ops.js b/node_modules/eslint/lib/rules/space-unary-ops.js new file mode 100644 index 0000000..1d9141d --- /dev/null +++ b/node_modules/eslint/lib/rules/space-unary-ops.js @@ -0,0 +1,321 @@ +/** + * @fileoverview This rule should require or disallow spaces before or after unary operations. + * @author Marcin Kumorek + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce consistent spacing before or after unary operators", + recommended: false, + url: "https://eslint.org/docs/rules/space-unary-ops" + }, + + fixable: "whitespace", + + schema: [ + { + type: "object", + properties: { + words: { + type: "boolean", + default: true + }, + nonwords: { + type: "boolean", + default: false + }, + overrides: { + type: "object", + additionalProperties: { + type: "boolean" + } + } + }, + additionalProperties: false + } + ], + messages: { + unexpectedBefore: "Unexpected space before unary operator '{{operator}}'.", + unexpectedAfter: "Unexpected space after unary operator '{{operator}}'.", + unexpectedAfterWord: "Unexpected space after unary word operator '{{word}}'.", + wordOperator: "Unary word operator '{{word}}' must be followed by whitespace.", + operator: "Unary operator '{{operator}}' must be followed by whitespace.", + beforeUnaryExpressions: "Space is required before unary expressions '{{token}}'." + } + }, + + create(context) { + const options = context.options[0] || { words: true, nonwords: false }; + + const sourceCode = context.getSourceCode(); + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Check if the node is the first "!" in a "!!" convert to Boolean expression + * @param {ASTnode} node AST node + * @returns {boolean} Whether or not the node is first "!" in "!!" + */ + function isFirstBangInBangBangExpression(node) { + return node && node.type === "UnaryExpression" && node.argument.operator === "!" && + node.argument && node.argument.type === "UnaryExpression" && node.argument.operator === "!"; + } + + /** + * Checks if an override exists for a given operator. + * @param {string} operator Operator + * @returns {boolean} Whether or not an override has been provided for the operator + */ + function overrideExistsForOperator(operator) { + return options.overrides && Object.prototype.hasOwnProperty.call(options.overrides, operator); + } + + /** + * Gets the value that the override was set to for this operator + * @param {string} operator Operator + * @returns {boolean} Whether or not an override enforces a space with this operator + */ + function overrideEnforcesSpaces(operator) { + return options.overrides[operator]; + } + + /** + * Verify Unary Word Operator has spaces after the word operator + * @param {ASTnode} node AST node + * @param {Object} firstToken first token from the AST node + * @param {Object} secondToken second token from the AST node + * @param {string} word The word to be used for reporting + * @returns {void} + */ + function verifyWordHasSpaces(node, firstToken, secondToken, word) { + if (secondToken.range[0] === firstToken.range[1]) { + context.report({ + node, + messageId: "wordOperator", + data: { + word + }, + fix(fixer) { + return fixer.insertTextAfter(firstToken, " "); + } + }); + } + } + + /** + * Verify Unary Word Operator doesn't have spaces after the word operator + * @param {ASTnode} node AST node + * @param {Object} firstToken first token from the AST node + * @param {Object} secondToken second token from the AST node + * @param {string} word The word to be used for reporting + * @returns {void} + */ + function verifyWordDoesntHaveSpaces(node, firstToken, secondToken, word) { + if (astUtils.canTokensBeAdjacent(firstToken, secondToken)) { + if (secondToken.range[0] > firstToken.range[1]) { + context.report({ + node, + messageId: "unexpectedAfterWord", + data: { + word + }, + fix(fixer) { + return fixer.removeRange([firstToken.range[1], secondToken.range[0]]); + } + }); + } + } + } + + /** + * Check Unary Word Operators for spaces after the word operator + * @param {ASTnode} node AST node + * @param {Object} firstToken first token from the AST node + * @param {Object} secondToken second token from the AST node + * @param {string} word The word to be used for reporting + * @returns {void} + */ + function checkUnaryWordOperatorForSpaces(node, firstToken, secondToken, word) { + if (overrideExistsForOperator(word)) { + if (overrideEnforcesSpaces(word)) { + verifyWordHasSpaces(node, firstToken, secondToken, word); + } else { + verifyWordDoesntHaveSpaces(node, firstToken, secondToken, word); + } + } else if (options.words) { + verifyWordHasSpaces(node, firstToken, secondToken, word); + } else { + verifyWordDoesntHaveSpaces(node, firstToken, secondToken, word); + } + } + + /** + * Verifies YieldExpressions satisfy spacing requirements + * @param {ASTnode} node AST node + * @returns {void} + */ + function checkForSpacesAfterYield(node) { + const tokens = sourceCode.getFirstTokens(node, 3), + word = "yield"; + + if (!node.argument || node.delegate) { + return; + } + + checkUnaryWordOperatorForSpaces(node, tokens[0], tokens[1], word); + } + + /** + * Verifies AwaitExpressions satisfy spacing requirements + * @param {ASTNode} node AwaitExpression AST node + * @returns {void} + */ + function checkForSpacesAfterAwait(node) { + const tokens = sourceCode.getFirstTokens(node, 3); + + checkUnaryWordOperatorForSpaces(node, tokens[0], tokens[1], "await"); + } + + /** + * Verifies UnaryExpression, UpdateExpression and NewExpression have spaces before or after the operator + * @param {ASTnode} node AST node + * @param {Object} firstToken First token in the expression + * @param {Object} secondToken Second token in the expression + * @returns {void} + */ + function verifyNonWordsHaveSpaces(node, firstToken, secondToken) { + if (node.prefix) { + if (isFirstBangInBangBangExpression(node)) { + return; + } + if (firstToken.range[1] === secondToken.range[0]) { + context.report({ + node, + messageId: "operator", + data: { + operator: firstToken.value + }, + fix(fixer) { + return fixer.insertTextAfter(firstToken, " "); + } + }); + } + } else { + if (firstToken.range[1] === secondToken.range[0]) { + context.report({ + node, + messageId: "beforeUnaryExpressions", + data: { + token: secondToken.value + }, + fix(fixer) { + return fixer.insertTextBefore(secondToken, " "); + } + }); + } + } + } + + /** + * Verifies UnaryExpression, UpdateExpression and NewExpression don't have spaces before or after the operator + * @param {ASTnode} node AST node + * @param {Object} firstToken First token in the expression + * @param {Object} secondToken Second token in the expression + * @returns {void} + */ + function verifyNonWordsDontHaveSpaces(node, firstToken, secondToken) { + if (node.prefix) { + if (secondToken.range[0] > firstToken.range[1]) { + context.report({ + node, + messageId: "unexpectedAfter", + data: { + operator: firstToken.value + }, + fix(fixer) { + if (astUtils.canTokensBeAdjacent(firstToken, secondToken)) { + return fixer.removeRange([firstToken.range[1], secondToken.range[0]]); + } + return null; + } + }); + } + } else { + if (secondToken.range[0] > firstToken.range[1]) { + context.report({ + node, + messageId: "unexpectedBefore", + data: { + operator: secondToken.value + }, + fix(fixer) { + return fixer.removeRange([firstToken.range[1], secondToken.range[0]]); + } + }); + } + } + } + + /** + * Verifies UnaryExpression, UpdateExpression and NewExpression satisfy spacing requirements + * @param {ASTnode} node AST node + * @returns {void} + */ + function checkForSpaces(node) { + const tokens = node.type === "UpdateExpression" && !node.prefix + ? sourceCode.getLastTokens(node, 2) + : sourceCode.getFirstTokens(node, 2); + const firstToken = tokens[0]; + const secondToken = tokens[1]; + + if ((node.type === "NewExpression" || node.prefix) && firstToken.type === "Keyword") { + checkUnaryWordOperatorForSpaces(node, firstToken, secondToken, firstToken.value); + return; + } + + const operator = node.prefix ? tokens[0].value : tokens[1].value; + + if (overrideExistsForOperator(operator)) { + if (overrideEnforcesSpaces(operator)) { + verifyNonWordsHaveSpaces(node, firstToken, secondToken); + } else { + verifyNonWordsDontHaveSpaces(node, firstToken, secondToken); + } + } else if (options.nonwords) { + verifyNonWordsHaveSpaces(node, firstToken, secondToken); + } else { + verifyNonWordsDontHaveSpaces(node, firstToken, secondToken); + } + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + UnaryExpression: checkForSpaces, + UpdateExpression: checkForSpaces, + NewExpression: checkForSpaces, + YieldExpression: checkForSpacesAfterYield, + AwaitExpression: checkForSpacesAfterAwait + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/spaced-comment.js b/node_modules/eslint/lib/rules/spaced-comment.js new file mode 100644 index 0000000..6aedeae --- /dev/null +++ b/node_modules/eslint/lib/rules/spaced-comment.js @@ -0,0 +1,382 @@ +/** + * @fileoverview Source code for spaced-comments rule + * @author Gyandeep Singh + */ +"use strict"; + +const escapeRegExp = require("escape-string-regexp"); +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Escapes the control characters of a given string. + * @param {string} s A string to escape. + * @returns {string} An escaped string. + */ +function escape(s) { + return `(?:${escapeRegExp(s)})`; +} + +/** + * Escapes the control characters of a given string. + * And adds a repeat flag. + * @param {string} s A string to escape. + * @returns {string} An escaped string. + */ +function escapeAndRepeat(s) { + return `${escape(s)}+`; +} + +/** + * Parses `markers` option. + * If markers don't include `"*"`, this adds `"*"` to allow JSDoc comments. + * @param {string[]} [markers] A marker list. + * @returns {string[]} A marker list. + */ +function parseMarkersOption(markers) { + + // `*` is a marker for JSDoc comments. + if (!markers.includes("*")) { + return markers.concat("*"); + } + + return markers; +} + +/** + * Creates string pattern for exceptions. + * Generated pattern: + * + * 1. A space or an exception pattern sequence. + * @param {string[]} exceptions An exception pattern list. + * @returns {string} A regular expression string for exceptions. + */ +function createExceptionsPattern(exceptions) { + let pattern = ""; + + /* + * A space or an exception pattern sequence. + * [] ==> "\s" + * ["-"] ==> "(?:\s|\-+$)" + * ["-", "="] ==> "(?:\s|(?:\-+|=+)$)" + * ["-", "=", "--=="] ==> "(?:\s|(?:\-+|=+|(?:\-\-==)+)$)" ==> https://jex.im/regulex/#!embed=false&flags=&re=(%3F%3A%5Cs%7C(%3F%3A%5C-%2B%7C%3D%2B%7C(%3F%3A%5C-%5C-%3D%3D)%2B)%24) + */ + if (exceptions.length === 0) { + + // a space. + pattern += "\\s"; + } else { + + // a space or... + pattern += "(?:\\s|"; + + if (exceptions.length === 1) { + + // a sequence of the exception pattern. + pattern += escapeAndRepeat(exceptions[0]); + } else { + + // a sequence of one of the exception patterns. + pattern += "(?:"; + pattern += exceptions.map(escapeAndRepeat).join("|"); + pattern += ")"; + } + pattern += `(?:$|[${Array.from(astUtils.LINEBREAKS).join("")}]))`; + } + + return pattern; +} + +/** + * Creates RegExp object for `always` mode. + * Generated pattern for beginning of comment: + * + * 1. First, a marker or nothing. + * 2. Next, a space or an exception pattern sequence. + * @param {string[]} markers A marker list. + * @param {string[]} exceptions An exception pattern list. + * @returns {RegExp} A RegExp object for the beginning of a comment in `always` mode. + */ +function createAlwaysStylePattern(markers, exceptions) { + let pattern = "^"; + + /* + * A marker or nothing. + * ["*"] ==> "\*?" + * ["*", "!"] ==> "(?:\*|!)?" + * ["*", "/", "!<"] ==> "(?:\*|\/|(?:!<))?" ==> https://jex.im/regulex/#!embed=false&flags=&re=(%3F%3A%5C*%7C%5C%2F%7C(%3F%3A!%3C))%3F + */ + if (markers.length === 1) { + + // the marker. + pattern += escape(markers[0]); + } else { + + // one of markers. + pattern += "(?:"; + pattern += markers.map(escape).join("|"); + pattern += ")"; + } + + pattern += "?"; // or nothing. + pattern += createExceptionsPattern(exceptions); + + return new RegExp(pattern, "u"); +} + +/** + * Creates RegExp object for `never` mode. + * Generated pattern for beginning of comment: + * + * 1. First, a marker or nothing (captured). + * 2. Next, a space or a tab. + * @param {string[]} markers A marker list. + * @returns {RegExp} A RegExp object for `never` mode. + */ +function createNeverStylePattern(markers) { + const pattern = `^(${markers.map(escape).join("|")})?[ \t]+`; + + return new RegExp(pattern, "u"); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce consistent spacing after the `//` or `/*` in a comment", + recommended: false, + url: "https://eslint.org/docs/rules/spaced-comment" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + exceptions: { + type: "array", + items: { + type: "string" + } + }, + markers: { + type: "array", + items: { + type: "string" + } + }, + line: { + type: "object", + properties: { + exceptions: { + type: "array", + items: { + type: "string" + } + }, + markers: { + type: "array", + items: { + type: "string" + } + } + }, + additionalProperties: false + }, + block: { + type: "object", + properties: { + exceptions: { + type: "array", + items: { + type: "string" + } + }, + markers: { + type: "array", + items: { + type: "string" + } + }, + balanced: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + }, + additionalProperties: false + } + ], + + messages: { + unexpectedSpaceAfterMarker: "Unexpected space or tab after marker ({{refChar}}) in comment.", + expectedExceptionAfter: "Expected exception block, space or tab after '{{refChar}}' in comment.", + unexpectedSpaceBefore: "Unexpected space or tab before '*/' in comment.", + unexpectedSpaceAfter: "Unexpected space or tab after '{{refChar}}' in comment.", + expectedSpaceBefore: "Expected space or tab before '*/' in comment.", + expectedSpaceAfter: "Expected space or tab after '{{refChar}}' in comment." + } + }, + + create(context) { + + const sourceCode = context.getSourceCode(); + + // Unless the first option is never, require a space + const requireSpace = context.options[0] !== "never"; + + /* + * Parse the second options. + * If markers don't include `"*"`, it's added automatically for JSDoc + * comments. + */ + const config = context.options[1] || {}; + const balanced = config.block && config.block.balanced; + + const styleRules = ["block", "line"].reduce((rule, type) => { + const markers = parseMarkersOption(config[type] && config[type].markers || config.markers || []); + const exceptions = config[type] && config[type].exceptions || config.exceptions || []; + const endNeverPattern = "[ \t]+$"; + + // Create RegExp object for valid patterns. + rule[type] = { + beginRegex: requireSpace ? createAlwaysStylePattern(markers, exceptions) : createNeverStylePattern(markers), + endRegex: balanced && requireSpace ? new RegExp(`${createExceptionsPattern(exceptions)}$`, "u") : new RegExp(endNeverPattern, "u"), + hasExceptions: exceptions.length > 0, + captureMarker: new RegExp(`^(${markers.map(escape).join("|")})`, "u"), + markers: new Set(markers) + }; + + return rule; + }, {}); + + /** + * Reports a beginning spacing error with an appropriate message. + * @param {ASTNode} node A comment node to check. + * @param {string} messageId An error message to report. + * @param {Array} match An array of match results for markers. + * @param {string} refChar Character used for reference in the error message. + * @returns {void} + */ + function reportBegin(node, messageId, match, refChar) { + const type = node.type.toLowerCase(), + commentIdentifier = type === "block" ? "/*" : "//"; + + context.report({ + node, + fix(fixer) { + const start = node.range[0]; + let end = start + 2; + + if (requireSpace) { + if (match) { + end += match[0].length; + } + return fixer.insertTextAfterRange([start, end], " "); + } + end += match[0].length; + return fixer.replaceTextRange([start, end], commentIdentifier + (match[1] ? match[1] : "")); + + }, + messageId, + data: { refChar } + }); + } + + /** + * Reports an ending spacing error with an appropriate message. + * @param {ASTNode} node A comment node to check. + * @param {string} messageId An error message to report. + * @param {string} match An array of the matched whitespace characters. + * @returns {void} + */ + function reportEnd(node, messageId, match) { + context.report({ + node, + fix(fixer) { + if (requireSpace) { + return fixer.insertTextAfterRange([node.range[0], node.range[1] - 2], " "); + } + const end = node.range[1] - 2, + start = end - match[0].length; + + return fixer.replaceTextRange([start, end], ""); + + }, + messageId + }); + } + + /** + * Reports a given comment if it's invalid. + * @param {ASTNode} node a comment node to check. + * @returns {void} + */ + function checkCommentForSpace(node) { + const type = node.type.toLowerCase(), + rule = styleRules[type], + commentIdentifier = type === "block" ? "/*" : "//"; + + // Ignores empty comments and comments that consist only of a marker. + if (node.value.length === 0 || rule.markers.has(node.value)) { + return; + } + + const beginMatch = rule.beginRegex.exec(node.value); + const endMatch = rule.endRegex.exec(node.value); + + // Checks. + if (requireSpace) { + if (!beginMatch) { + const hasMarker = rule.captureMarker.exec(node.value); + const marker = hasMarker ? commentIdentifier + hasMarker[0] : commentIdentifier; + + if (rule.hasExceptions) { + reportBegin(node, "expectedExceptionAfter", hasMarker, marker); + } else { + reportBegin(node, "expectedSpaceAfter", hasMarker, marker); + } + } + + if (balanced && type === "block" && !endMatch) { + reportEnd(node, "expectedSpaceBefore"); + } + } else { + if (beginMatch) { + if (!beginMatch[1]) { + reportBegin(node, "unexpectedSpaceAfter", beginMatch, commentIdentifier); + } else { + reportBegin(node, "unexpectedSpaceAfterMarker", beginMatch, beginMatch[1]); + } + } + + if (balanced && type === "block" && endMatch) { + reportEnd(node, "unexpectedSpaceBefore", endMatch); + } + } + } + + return { + Program() { + const comments = sourceCode.getAllComments(); + + comments.filter(token => token.type !== "Shebang").forEach(checkCommentForSpace); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/strict.js b/node_modules/eslint/lib/rules/strict.js new file mode 100644 index 0000000..75bb561 --- /dev/null +++ b/node_modules/eslint/lib/rules/strict.js @@ -0,0 +1,277 @@ +/** + * @fileoverview Rule to control usage of strict mode directives. + * @author Brandon Mills + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Gets all of the Use Strict Directives in the Directive Prologue of a group of + * statements. + * @param {ASTNode[]} statements Statements in the program or function body. + * @returns {ASTNode[]} All of the Use Strict Directives. + */ +function getUseStrictDirectives(statements) { + const directives = []; + + for (let i = 0; i < statements.length; i++) { + const statement = statements[i]; + + if ( + statement.type === "ExpressionStatement" && + statement.expression.type === "Literal" && + statement.expression.value === "use strict" + ) { + directives[i] = statement; + } else { + break; + } + } + + return directives; +} + +/** + * Checks whether a given parameter is a simple parameter. + * @param {ASTNode} node A pattern node to check. + * @returns {boolean} `true` if the node is an Identifier node. + */ +function isSimpleParameter(node) { + return node.type === "Identifier"; +} + +/** + * Checks whether a given parameter list is a simple parameter list. + * @param {ASTNode[]} params A parameter list to check. + * @returns {boolean} `true` if the every parameter is an Identifier node. + */ +function isSimpleParameterList(params) { + return params.every(isSimpleParameter); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require or disallow strict mode directives", + recommended: false, + url: "https://eslint.org/docs/rules/strict" + }, + + schema: [ + { + enum: ["never", "global", "function", "safe"] + } + ], + + fixable: "code", + messages: { + function: "Use the function form of 'use strict'.", + global: "Use the global form of 'use strict'.", + multiple: "Multiple 'use strict' directives.", + never: "Strict mode is not permitted.", + unnecessary: "Unnecessary 'use strict' directive.", + module: "'use strict' is unnecessary inside of modules.", + implied: "'use strict' is unnecessary when implied strict mode is enabled.", + unnecessaryInClasses: "'use strict' is unnecessary inside of classes.", + nonSimpleParameterList: "'use strict' directive inside a function with non-simple parameter list throws a syntax error since ES2016.", + wrap: "Wrap {{name}} in a function with 'use strict' directive." + } + }, + + create(context) { + + const ecmaFeatures = context.parserOptions.ecmaFeatures || {}, + scopes = [], + classScopes = []; + let mode = context.options[0] || "safe"; + + if (ecmaFeatures.impliedStrict) { + mode = "implied"; + } else if (mode === "safe") { + mode = ecmaFeatures.globalReturn || context.languageOptions.sourceType === "commonjs" ? "global" : "function"; + } + + /** + * Determines whether a reported error should be fixed, depending on the error type. + * @param {string} errorType The type of error + * @returns {boolean} `true` if the reported error should be fixed + */ + function shouldFix(errorType) { + return errorType === "multiple" || errorType === "unnecessary" || errorType === "module" || errorType === "implied" || errorType === "unnecessaryInClasses"; + } + + /** + * Gets a fixer function to remove a given 'use strict' directive. + * @param {ASTNode} node The directive that should be removed + * @returns {Function} A fixer function + */ + function getFixFunction(node) { + return fixer => fixer.remove(node); + } + + /** + * Report a slice of an array of nodes with a given message. + * @param {ASTNode[]} nodes Nodes. + * @param {string} start Index to start from. + * @param {string} end Index to end before. + * @param {string} messageId Message to display. + * @param {boolean} fix `true` if the directive should be fixed (i.e. removed) + * @returns {void} + */ + function reportSlice(nodes, start, end, messageId, fix) { + nodes.slice(start, end).forEach(node => { + context.report({ node, messageId, fix: fix ? getFixFunction(node) : null }); + }); + } + + /** + * Report all nodes in an array with a given message. + * @param {ASTNode[]} nodes Nodes. + * @param {string} messageId Message id to display. + * @param {boolean} fix `true` if the directive should be fixed (i.e. removed) + * @returns {void} + */ + function reportAll(nodes, messageId, fix) { + reportSlice(nodes, 0, nodes.length, messageId, fix); + } + + /** + * Report all nodes in an array, except the first, with a given message. + * @param {ASTNode[]} nodes Nodes. + * @param {string} messageId Message id to display. + * @param {boolean} fix `true` if the directive should be fixed (i.e. removed) + * @returns {void} + */ + function reportAllExceptFirst(nodes, messageId, fix) { + reportSlice(nodes, 1, nodes.length, messageId, fix); + } + + /** + * Entering a function in 'function' mode pushes a new nested scope onto the + * stack. The new scope is true if the nested function is strict mode code. + * @param {ASTNode} node The function declaration or expression. + * @param {ASTNode[]} useStrictDirectives The Use Strict Directives of the node. + * @returns {void} + */ + function enterFunctionInFunctionMode(node, useStrictDirectives) { + const isInClass = classScopes.length > 0, + isParentGlobal = scopes.length === 0 && classScopes.length === 0, + isParentStrict = scopes.length > 0 && scopes[scopes.length - 1], + isStrict = useStrictDirectives.length > 0; + + if (isStrict) { + if (!isSimpleParameterList(node.params)) { + context.report({ node: useStrictDirectives[0], messageId: "nonSimpleParameterList" }); + } else if (isParentStrict) { + context.report({ node: useStrictDirectives[0], messageId: "unnecessary", fix: getFixFunction(useStrictDirectives[0]) }); + } else if (isInClass) { + context.report({ node: useStrictDirectives[0], messageId: "unnecessaryInClasses", fix: getFixFunction(useStrictDirectives[0]) }); + } + + reportAllExceptFirst(useStrictDirectives, "multiple", true); + } else if (isParentGlobal) { + if (isSimpleParameterList(node.params)) { + context.report({ node, messageId: "function" }); + } else { + context.report({ + node, + messageId: "wrap", + data: { name: astUtils.getFunctionNameWithKind(node) } + }); + } + } + + scopes.push(isParentStrict || isStrict); + } + + /** + * Exiting a function in 'function' mode pops its scope off the stack. + * @returns {void} + */ + function exitFunctionInFunctionMode() { + scopes.pop(); + } + + /** + * Enter a function and either: + * - Push a new nested scope onto the stack (in 'function' mode). + * - Report all the Use Strict Directives (in the other modes). + * @param {ASTNode} node The function declaration or expression. + * @returns {void} + */ + function enterFunction(node) { + const isBlock = node.body.type === "BlockStatement", + useStrictDirectives = isBlock + ? getUseStrictDirectives(node.body.body) : []; + + if (mode === "function") { + enterFunctionInFunctionMode(node, useStrictDirectives); + } else if (useStrictDirectives.length > 0) { + if (isSimpleParameterList(node.params)) { + reportAll(useStrictDirectives, mode, shouldFix(mode)); + } else { + context.report({ node: useStrictDirectives[0], messageId: "nonSimpleParameterList" }); + reportAllExceptFirst(useStrictDirectives, "multiple", true); + } + } + } + + const rule = { + Program(node) { + const useStrictDirectives = getUseStrictDirectives(node.body); + + if (node.sourceType === "module") { + mode = "module"; + } + + if (mode === "global") { + if (node.body.length > 0 && useStrictDirectives.length === 0) { + context.report({ node, messageId: "global" }); + } + reportAllExceptFirst(useStrictDirectives, "multiple", true); + } else { + reportAll(useStrictDirectives, mode, shouldFix(mode)); + } + }, + FunctionDeclaration: enterFunction, + FunctionExpression: enterFunction, + ArrowFunctionExpression: enterFunction + }; + + if (mode === "function") { + Object.assign(rule, { + + // Inside of class bodies are always strict mode. + ClassBody() { + classScopes.push(true); + }, + "ClassBody:exit"() { + classScopes.pop(); + }, + + "FunctionDeclaration:exit": exitFunctionInFunctionMode, + "FunctionExpression:exit": exitFunctionInFunctionMode, + "ArrowFunctionExpression:exit": exitFunctionInFunctionMode + }); + } + + return rule; + } +}; diff --git a/node_modules/eslint/lib/rules/switch-colon-spacing.js b/node_modules/eslint/lib/rules/switch-colon-spacing.js new file mode 100644 index 0000000..c1df496 --- /dev/null +++ b/node_modules/eslint/lib/rules/switch-colon-spacing.js @@ -0,0 +1,129 @@ +/** + * @fileoverview Rule to enforce spacing around colons of switch statements. + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Enforce spacing around colons of switch statements", + recommended: false, + url: "https://eslint.org/docs/rules/switch-colon-spacing" + }, + + schema: [ + { + type: "object", + properties: { + before: { type: "boolean", default: false }, + after: { type: "boolean", default: true } + }, + additionalProperties: false + } + ], + fixable: "whitespace", + messages: { + expectedBefore: "Expected space(s) before this colon.", + expectedAfter: "Expected space(s) after this colon.", + unexpectedBefore: "Unexpected space(s) before this colon.", + unexpectedAfter: "Unexpected space(s) after this colon." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const options = context.options[0] || {}; + const beforeSpacing = options.before === true; // false by default + const afterSpacing = options.after !== false; // true by default + + /** + * Check whether the spacing between the given 2 tokens is valid or not. + * @param {Token} left The left token to check. + * @param {Token} right The right token to check. + * @param {boolean} expected The expected spacing to check. `true` if there should be a space. + * @returns {boolean} `true` if the spacing between the tokens is valid. + */ + function isValidSpacing(left, right, expected) { + return ( + astUtils.isClosingBraceToken(right) || + !astUtils.isTokenOnSameLine(left, right) || + sourceCode.isSpaceBetweenTokens(left, right) === expected + ); + } + + /** + * Check whether comments exist between the given 2 tokens. + * @param {Token} left The left token to check. + * @param {Token} right The right token to check. + * @returns {boolean} `true` if comments exist between the given 2 tokens. + */ + function commentsExistBetween(left, right) { + return sourceCode.getFirstTokenBetween( + left, + right, + { + includeComments: true, + filter: astUtils.isCommentToken + } + ) !== null; + } + + /** + * Fix the spacing between the given 2 tokens. + * @param {RuleFixer} fixer The fixer to fix. + * @param {Token} left The left token of fix range. + * @param {Token} right The right token of fix range. + * @param {boolean} spacing The spacing style. `true` if there should be a space. + * @returns {Fix|null} The fix object. + */ + function fix(fixer, left, right, spacing) { + if (commentsExistBetween(left, right)) { + return null; + } + if (spacing) { + return fixer.insertTextAfter(left, " "); + } + return fixer.removeRange([left.range[1], right.range[0]]); + } + + return { + SwitchCase(node) { + const colonToken = astUtils.getSwitchCaseColonToken(node, sourceCode); + const beforeToken = sourceCode.getTokenBefore(colonToken); + const afterToken = sourceCode.getTokenAfter(colonToken); + + if (!isValidSpacing(beforeToken, colonToken, beforeSpacing)) { + context.report({ + node, + loc: colonToken.loc, + messageId: beforeSpacing ? "expectedBefore" : "unexpectedBefore", + fix: fixer => fix(fixer, beforeToken, colonToken, beforeSpacing) + }); + } + if (!isValidSpacing(colonToken, afterToken, afterSpacing)) { + context.report({ + node, + loc: colonToken.loc, + messageId: afterSpacing ? "expectedAfter" : "unexpectedAfter", + fix: fixer => fix(fixer, colonToken, afterToken, afterSpacing) + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/symbol-description.js b/node_modules/eslint/lib/rules/symbol-description.js new file mode 100644 index 0000000..1c8a364 --- /dev/null +++ b/node_modules/eslint/lib/rules/symbol-description.js @@ -0,0 +1,71 @@ +/** + * @fileoverview Rule to enforce description with the `Symbol` object + * @author Jarek Rencz + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require symbol descriptions", + recommended: false, + url: "https://eslint.org/docs/rules/symbol-description" + }, + fixable: null, + schema: [], + messages: { + expected: "Expected Symbol to have a description." + } + }, + + create(context) { + + /** + * Reports if node does not conform the rule in case rule is set to + * report missing description + * @param {ASTNode} node A CallExpression node to check. + * @returns {void} + */ + function checkArgument(node) { + if (node.arguments.length === 0) { + context.report({ + node, + messageId: "expected" + }); + } + } + + return { + "Program:exit"() { + const scope = context.getScope(); + const variable = astUtils.getVariableByName(scope, "Symbol"); + + if (variable && variable.defs.length === 0) { + variable.references.forEach(reference => { + const node = reference.identifier; + + if (astUtils.isCallee(node)) { + checkArgument(node.parent); + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/template-curly-spacing.js b/node_modules/eslint/lib/rules/template-curly-spacing.js new file mode 100644 index 0000000..35d4bba --- /dev/null +++ b/node_modules/eslint/lib/rules/template-curly-spacing.js @@ -0,0 +1,141 @@ +/** + * @fileoverview Rule to enforce spacing around embedded expressions of template strings + * @author Toru Nagashima + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow spacing around embedded expressions of template strings", + recommended: false, + url: "https://eslint.org/docs/rules/template-curly-spacing" + }, + + fixable: "whitespace", + + schema: [ + { enum: ["always", "never"] } + ], + messages: { + expectedBefore: "Expected space(s) before '}'.", + expectedAfter: "Expected space(s) after '${'.", + unexpectedBefore: "Unexpected space(s) before '}'.", + unexpectedAfter: "Unexpected space(s) after '${'." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + const always = context.options[0] === "always"; + + /** + * Checks spacing before `}` of a given token. + * @param {Token} token A token to check. This is a Template token. + * @returns {void} + */ + function checkSpacingBefore(token) { + if (!token.value.startsWith("}")) { + return; // starts with a backtick, this is the first template element in the template literal + } + + const prevToken = sourceCode.getTokenBefore(token, { includeComments: true }), + hasSpace = sourceCode.isSpaceBetween(prevToken, token); + + if (!astUtils.isTokenOnSameLine(prevToken, token)) { + return; + } + + if (always && !hasSpace) { + context.report({ + loc: { + start: token.loc.start, + end: { + line: token.loc.start.line, + column: token.loc.start.column + 1 + } + }, + messageId: "expectedBefore", + fix: fixer => fixer.insertTextBefore(token, " ") + }); + } + + if (!always && hasSpace) { + context.report({ + loc: { + start: prevToken.loc.end, + end: token.loc.start + }, + messageId: "unexpectedBefore", + fix: fixer => fixer.removeRange([prevToken.range[1], token.range[0]]) + }); + } + } + + /** + * Checks spacing after `${` of a given token. + * @param {Token} token A token to check. This is a Template token. + * @returns {void} + */ + function checkSpacingAfter(token) { + if (!token.value.endsWith("${")) { + return; // ends with a backtick, this is the last template element in the template literal + } + + const nextToken = sourceCode.getTokenAfter(token, { includeComments: true }), + hasSpace = sourceCode.isSpaceBetween(token, nextToken); + + if (!astUtils.isTokenOnSameLine(token, nextToken)) { + return; + } + + if (always && !hasSpace) { + context.report({ + loc: { + start: { + line: token.loc.end.line, + column: token.loc.end.column - 2 + }, + end: token.loc.end + }, + messageId: "expectedAfter", + fix: fixer => fixer.insertTextAfter(token, " ") + }); + } + + if (!always && hasSpace) { + context.report({ + loc: { + start: token.loc.end, + end: nextToken.loc.start + }, + messageId: "unexpectedAfter", + fix: fixer => fixer.removeRange([token.range[1], nextToken.range[0]]) + }); + } + } + + return { + TemplateElement(node) { + const token = sourceCode.getFirstToken(node); + + checkSpacingBefore(token); + checkSpacingAfter(token); + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/template-tag-spacing.js b/node_modules/eslint/lib/rules/template-tag-spacing.js new file mode 100644 index 0000000..3140fa0 --- /dev/null +++ b/node_modules/eslint/lib/rules/template-tag-spacing.js @@ -0,0 +1,90 @@ +/** + * @fileoverview Rule to check spacing between template tags and their literals + * @author Jonathan Wilsson + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow spacing between template tags and their literals", + recommended: false, + url: "https://eslint.org/docs/rules/template-tag-spacing" + }, + + fixable: "whitespace", + + schema: [ + { enum: ["always", "never"] } + ], + messages: { + unexpected: "Unexpected space between template tag and template literal.", + missing: "Missing space between template tag and template literal." + } + }, + + create(context) { + const never = context.options[0] !== "always"; + const sourceCode = context.getSourceCode(); + + /** + * Check if a space is present between a template tag and its literal + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkSpacing(node) { + const tagToken = sourceCode.getTokenBefore(node.quasi); + const literalToken = sourceCode.getFirstToken(node.quasi); + const hasWhitespace = sourceCode.isSpaceBetweenTokens(tagToken, literalToken); + + if (never && hasWhitespace) { + context.report({ + node, + loc: { + start: tagToken.loc.end, + end: literalToken.loc.start + }, + messageId: "unexpected", + fix(fixer) { + const comments = sourceCode.getCommentsBefore(node.quasi); + + // Don't fix anything if there's a single line comment after the template tag + if (comments.some(comment => comment.type === "Line")) { + return null; + } + + return fixer.replaceTextRange( + [tagToken.range[1], literalToken.range[0]], + comments.reduce((text, comment) => text + sourceCode.getText(comment), "") + ); + } + }); + } else if (!never && !hasWhitespace) { + context.report({ + node, + loc: { + start: node.loc.start, + end: literalToken.loc.start + }, + messageId: "missing", + fix(fixer) { + return fixer.insertTextAfter(tagToken, " "); + } + }); + } + } + + return { + TaggedTemplateExpression: checkSpacing + }; + } +}; diff --git a/node_modules/eslint/lib/rules/unicode-bom.js b/node_modules/eslint/lib/rules/unicode-bom.js new file mode 100644 index 0000000..482d3bb --- /dev/null +++ b/node_modules/eslint/lib/rules/unicode-bom.js @@ -0,0 +1,73 @@ +/** + * @fileoverview Require or disallow Unicode BOM + * @author Andrew Johnston + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow Unicode byte order mark (BOM)", + recommended: false, + url: "https://eslint.org/docs/rules/unicode-bom" + }, + + fixable: "whitespace", + + schema: [ + { + enum: ["always", "never"] + } + ], + messages: { + expected: "Expected Unicode BOM (Byte Order Mark).", + unexpected: "Unexpected Unicode BOM (Byte Order Mark)." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + Program: function checkUnicodeBOM(node) { + + const sourceCode = context.getSourceCode(), + location = { column: 0, line: 1 }, + requireBOM = context.options[0] || "never"; + + if (!sourceCode.hasBOM && (requireBOM === "always")) { + context.report({ + node, + loc: location, + messageId: "expected", + fix(fixer) { + return fixer.insertTextBeforeRange([0, 1], "\uFEFF"); + } + }); + } else if (sourceCode.hasBOM && (requireBOM === "never")) { + context.report({ + node, + loc: location, + messageId: "unexpected", + fix(fixer) { + return fixer.removeRange([-1, 0]); + } + }); + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/use-isnan.js b/node_modules/eslint/lib/rules/use-isnan.js new file mode 100644 index 0000000..219d695 --- /dev/null +++ b/node_modules/eslint/lib/rules/use-isnan.js @@ -0,0 +1,141 @@ +/** + * @fileoverview Rule to flag comparisons to the value NaN + * @author James Allardice + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines if the given node is a NaN `Identifier` node. + * @param {ASTNode|null} node The node to check. + * @returns {boolean} `true` if the node is 'NaN' identifier. + */ +function isNaNIdentifier(node) { + return Boolean(node) && ( + astUtils.isSpecificId(node, "NaN") || + astUtils.isSpecificMemberAccess(node, "Number", "NaN") + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Require calls to `isNaN()` when checking for `NaN`", + recommended: true, + url: "https://eslint.org/docs/rules/use-isnan" + }, + + schema: [ + { + type: "object", + properties: { + enforceForSwitchCase: { + type: "boolean", + default: true + }, + enforceForIndexOf: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + messages: { + comparisonWithNaN: "Use the isNaN function to compare with NaN.", + switchNaN: "'switch(NaN)' can never match a case clause. Use Number.isNaN instead of the switch.", + caseNaN: "'case NaN' can never match. Use Number.isNaN before the switch.", + indexOfNaN: "Array prototype method '{{ methodName }}' cannot find NaN." + } + }, + + create(context) { + + const enforceForSwitchCase = !context.options[0] || context.options[0].enforceForSwitchCase; + const enforceForIndexOf = context.options[0] && context.options[0].enforceForIndexOf; + + /** + * Checks the given `BinaryExpression` node for `foo === NaN` and other comparisons. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkBinaryExpression(node) { + if ( + /^(?:[<>]|[!=]=)=?$/u.test(node.operator) && + (isNaNIdentifier(node.left) || isNaNIdentifier(node.right)) + ) { + context.report({ node, messageId: "comparisonWithNaN" }); + } + } + + /** + * Checks the discriminant and all case clauses of the given `SwitchStatement` node for `switch(NaN)` and `case NaN:` + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkSwitchStatement(node) { + if (isNaNIdentifier(node.discriminant)) { + context.report({ node, messageId: "switchNaN" }); + } + + for (const switchCase of node.cases) { + if (isNaNIdentifier(switchCase.test)) { + context.report({ node: switchCase, messageId: "caseNaN" }); + } + } + } + + /** + * Checks the given `CallExpression` node for `.indexOf(NaN)` and `.lastIndexOf(NaN)`. + * @param {ASTNode} node The node to check. + * @returns {void} + */ + function checkCallExpression(node) { + const callee = astUtils.skipChainExpression(node.callee); + + if (callee.type === "MemberExpression") { + const methodName = astUtils.getStaticPropertyName(callee); + + if ( + (methodName === "indexOf" || methodName === "lastIndexOf") && + node.arguments.length === 1 && + isNaNIdentifier(node.arguments[0]) + ) { + context.report({ node, messageId: "indexOfNaN", data: { methodName } }); + } + } + } + + const listeners = { + BinaryExpression: checkBinaryExpression + }; + + if (enforceForSwitchCase) { + listeners.SwitchStatement = checkSwitchStatement; + } + + if (enforceForIndexOf) { + listeners.CallExpression = checkCallExpression; + } + + return listeners; + } +}; diff --git a/node_modules/eslint/lib/rules/utils/ast-utils.js b/node_modules/eslint/lib/rules/utils/ast-utils.js new file mode 100644 index 0000000..f4a18cf --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/ast-utils.js @@ -0,0 +1,2124 @@ +/** + * @fileoverview Common utils for AST. + * @author Gyandeep Singh + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const esutils = require("esutils"); +const espree = require("espree"); +const escapeRegExp = require("escape-string-regexp"); +const { + breakableTypePattern, + createGlobalLinebreakMatcher, + lineBreakPattern, + shebangPattern +} = require("../../shared/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const anyFunctionPattern = /^(?:Function(?:Declaration|Expression)|ArrowFunctionExpression)$/u; +const anyLoopPattern = /^(?:DoWhile|For|ForIn|ForOf|While)Statement$/u; +const arrayOrTypedArrayPattern = /Array$/u; +const arrayMethodPattern = /^(?:every|filter|find|findIndex|forEach|map|some)$/u; +const bindOrCallOrApplyPattern = /^(?:bind|call|apply)$/u; +const thisTagPattern = /^[\s*]*@this/mu; + + +const COMMENTS_IGNORE_PATTERN = /^\s*(?:eslint|jshint\s+|jslint\s+|istanbul\s+|globals?\s+|exported\s+|jscs)/u; +const ESLINT_DIRECTIVE_PATTERN = /^(?:eslint[- ]|(?:globals?|exported) )/u; +const LINEBREAKS = new Set(["\r\n", "\r", "\n", "\u2028", "\u2029"]); + +// A set of node types that can contain a list of statements +const STATEMENT_LIST_PARENTS = new Set(["Program", "BlockStatement", "StaticBlock", "SwitchCase"]); + +const DECIMAL_INTEGER_PATTERN = /^(?:0|0[0-7]*[89]\d*|[1-9](?:_?\d)*)$/u; + +// Tests the presence of at least one LegacyOctalEscapeSequence or NonOctalDecimalEscapeSequence in a raw string +const OCTAL_OR_NON_OCTAL_DECIMAL_ESCAPE_PATTERN = /^(?:[^\\]|\\.)*\\(?:[1-9]|0[0-9])/su; + +const LOGICAL_ASSIGNMENT_OPERATORS = new Set(["&&=", "||=", "??="]); + +/** + * Checks reference if is non initializer and writable. + * @param {Reference} reference A reference to check. + * @param {int} index The index of the reference in the references. + * @param {Reference[]} references The array that the reference belongs to. + * @returns {boolean} Success/Failure + * @private + */ +function isModifyingReference(reference, index, references) { + const identifier = reference.identifier; + + /* + * Destructuring assignments can have multiple default value, so + * possibly there are multiple writeable references for the same + * identifier. + */ + const modifyingDifferentIdentifier = index === 0 || + references[index - 1].identifier !== identifier; + + return (identifier && + reference.init === false && + reference.isWrite() && + modifyingDifferentIdentifier + ); +} + +/** + * Checks whether the given string starts with uppercase or not. + * @param {string} s The string to check. + * @returns {boolean} `true` if the string starts with uppercase. + */ +function startsWithUpperCase(s) { + return s[0] !== s[0].toLocaleLowerCase(); +} + +/** + * Checks whether or not a node is a constructor. + * @param {ASTNode} node A function node to check. + * @returns {boolean} Whether or not a node is a constructor. + */ +function isES5Constructor(node) { + return (node.id && startsWithUpperCase(node.id.name)); +} + +/** + * Finds a function node from ancestors of a node. + * @param {ASTNode} node A start node to find. + * @returns {Node|null} A found function node. + */ +function getUpperFunction(node) { + for (let currentNode = node; currentNode; currentNode = currentNode.parent) { + if (anyFunctionPattern.test(currentNode.type)) { + return currentNode; + } + } + return null; +} + +/** + * Checks whether a given node is a function node or not. + * The following types are function nodes: + * + * - ArrowFunctionExpression + * - FunctionDeclaration + * - FunctionExpression + * @param {ASTNode|null} node A node to check. + * @returns {boolean} `true` if the node is a function node. + */ +function isFunction(node) { + return Boolean(node && anyFunctionPattern.test(node.type)); +} + +/** + * Checks whether a given node is a loop node or not. + * The following types are loop nodes: + * + * - DoWhileStatement + * - ForInStatement + * - ForOfStatement + * - ForStatement + * - WhileStatement + * @param {ASTNode|null} node A node to check. + * @returns {boolean} `true` if the node is a loop node. + */ +function isLoop(node) { + return Boolean(node && anyLoopPattern.test(node.type)); +} + +/** + * Checks whether the given node is in a loop or not. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is in a loop. + */ +function isInLoop(node) { + for (let currentNode = node; currentNode && !isFunction(currentNode); currentNode = currentNode.parent) { + if (isLoop(currentNode)) { + return true; + } + } + + return false; +} + +/** + * Determines whether the given node is a `null` literal. + * @param {ASTNode} node The node to check + * @returns {boolean} `true` if the node is a `null` literal + */ +function isNullLiteral(node) { + + /* + * Checking `node.value === null` does not guarantee that a literal is a null literal. + * When parsing values that cannot be represented in the current environment (e.g. unicode + * regexes in Node 4), `node.value` is set to `null` because it wouldn't be possible to + * set `node.value` to a unicode regex. To make sure a literal is actually `null`, check + * `node.regex` instead. Also see: https://github.com/eslint/eslint/issues/8020 + */ + return node.type === "Literal" && node.value === null && !node.regex && !node.bigint; +} + +/** + * Checks whether or not a node is `null` or `undefined`. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a `null` or `undefined`. + * @public + */ +function isNullOrUndefined(node) { + return ( + isNullLiteral(node) || + (node.type === "Identifier" && node.name === "undefined") || + (node.type === "UnaryExpression" && node.operator === "void") + ); +} + +/** + * Checks whether or not a node is callee. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is callee. + */ +function isCallee(node) { + return node.parent.type === "CallExpression" && node.parent.callee === node; +} + +/** + * Returns the result of the string conversion applied to the evaluated value of the given expression node, + * if it can be determined statically. + * + * This function returns a `string` value for all `Literal` nodes and simple `TemplateLiteral` nodes only. + * In all other cases, this function returns `null`. + * @param {ASTNode} node Expression node. + * @returns {string|null} String value if it can be determined. Otherwise, `null`. + */ +function getStaticStringValue(node) { + switch (node.type) { + case "Literal": + if (node.value === null) { + if (isNullLiteral(node)) { + return String(node.value); // "null" + } + if (node.regex) { + return `/${node.regex.pattern}/${node.regex.flags}`; + } + if (node.bigint) { + return node.bigint; + } + + // Otherwise, this is an unknown literal. The function will return null. + + } else { + return String(node.value); + } + break; + case "TemplateLiteral": + if (node.expressions.length === 0 && node.quasis.length === 1) { + return node.quasis[0].value.cooked; + } + break; + + // no default + } + + return null; +} + +/** + * Gets the property name of a given node. + * The node can be a MemberExpression, a Property, or a MethodDefinition. + * + * If the name is dynamic, this returns `null`. + * + * For examples: + * + * a.b // => "b" + * a["b"] // => "b" + * a['b'] // => "b" + * a[`b`] // => "b" + * a[100] // => "100" + * a[b] // => null + * a["a" + "b"] // => null + * a[tag`b`] // => null + * a[`${b}`] // => null + * + * let a = {b: 1} // => "b" + * let a = {["b"]: 1} // => "b" + * let a = {['b']: 1} // => "b" + * let a = {[`b`]: 1} // => "b" + * let a = {[100]: 1} // => "100" + * let a = {[b]: 1} // => null + * let a = {["a" + "b"]: 1} // => null + * let a = {[tag`b`]: 1} // => null + * let a = {[`${b}`]: 1} // => null + * @param {ASTNode} node The node to get. + * @returns {string|null} The property name if static. Otherwise, null. + */ +function getStaticPropertyName(node) { + let prop; + + switch (node && node.type) { + case "ChainExpression": + return getStaticPropertyName(node.expression); + + case "Property": + case "PropertyDefinition": + case "MethodDefinition": + prop = node.key; + break; + + case "MemberExpression": + prop = node.property; + break; + + // no default + } + + if (prop) { + if (prop.type === "Identifier" && !node.computed) { + return prop.name; + } + + return getStaticStringValue(prop); + } + + return null; +} + +/** + * Retrieve `ChainExpression#expression` value if the given node a `ChainExpression` node. Otherwise, pass through it. + * @param {ASTNode} node The node to address. + * @returns {ASTNode} The `ChainExpression#expression` value if the node is a `ChainExpression` node. Otherwise, the node. + */ +function skipChainExpression(node) { + return node && node.type === "ChainExpression" ? node.expression : node; +} + +/** + * Check if the `actual` is an expected value. + * @param {string} actual The string value to check. + * @param {string | RegExp} expected The expected string value or pattern. + * @returns {boolean} `true` if the `actual` is an expected value. + */ +function checkText(actual, expected) { + return typeof expected === "string" + ? actual === expected + : expected.test(actual); +} + +/** + * Check if a given node is an Identifier node with a given name. + * @param {ASTNode} node The node to check. + * @param {string | RegExp} name The expected name or the expected pattern of the object name. + * @returns {boolean} `true` if the node is an Identifier node with the name. + */ +function isSpecificId(node, name) { + return node.type === "Identifier" && checkText(node.name, name); +} + +/** + * Check if a given node is member access with a given object name and property name pair. + * This is regardless of optional or not. + * @param {ASTNode} node The node to check. + * @param {string | RegExp | null} objectName The expected name or the expected pattern of the object name. If this is nullish, this method doesn't check object. + * @param {string | RegExp | null} propertyName The expected name or the expected pattern of the property name. If this is nullish, this method doesn't check property. + * @returns {boolean} `true` if the node is member access with the object name and property name pair. + * The node is a `MemberExpression` or `ChainExpression`. + */ +function isSpecificMemberAccess(node, objectName, propertyName) { + const checkNode = skipChainExpression(node); + + if (checkNode.type !== "MemberExpression") { + return false; + } + + if (objectName && !isSpecificId(checkNode.object, objectName)) { + return false; + } + + if (propertyName) { + const actualPropertyName = getStaticPropertyName(checkNode); + + if (typeof actualPropertyName !== "string" || !checkText(actualPropertyName, propertyName)) { + return false; + } + } + + return true; +} + +/** + * Check if two literal nodes are the same value. + * @param {ASTNode} left The Literal node to compare. + * @param {ASTNode} right The other Literal node to compare. + * @returns {boolean} `true` if the two literal nodes are the same value. + */ +function equalLiteralValue(left, right) { + + // RegExp literal. + if (left.regex || right.regex) { + return Boolean( + left.regex && + right.regex && + left.regex.pattern === right.regex.pattern && + left.regex.flags === right.regex.flags + ); + } + + // BigInt literal. + if (left.bigint || right.bigint) { + return left.bigint === right.bigint; + } + + return left.value === right.value; +} + +/** + * Check if two expressions reference the same value. For example: + * a = a + * a.b = a.b + * a[0] = a[0] + * a['b'] = a['b'] + * @param {ASTNode} left The left side of the comparison. + * @param {ASTNode} right The right side of the comparison. + * @param {boolean} [disableStaticComputedKey] Don't address `a.b` and `a["b"]` are the same if `true`. For backward compatibility. + * @returns {boolean} `true` if both sides match and reference the same value. + */ +function isSameReference(left, right, disableStaticComputedKey = false) { + if (left.type !== right.type) { + + // Handle `a.b` and `a?.b` are samely. + if (left.type === "ChainExpression") { + return isSameReference(left.expression, right, disableStaticComputedKey); + } + if (right.type === "ChainExpression") { + return isSameReference(left, right.expression, disableStaticComputedKey); + } + + return false; + } + + switch (left.type) { + case "Super": + case "ThisExpression": + return true; + + case "Identifier": + case "PrivateIdentifier": + return left.name === right.name; + case "Literal": + return equalLiteralValue(left, right); + + case "ChainExpression": + return isSameReference(left.expression, right.expression, disableStaticComputedKey); + + case "MemberExpression": { + if (!disableStaticComputedKey) { + const nameA = getStaticPropertyName(left); + + // x.y = x["y"] + if (nameA !== null) { + return ( + isSameReference(left.object, right.object, disableStaticComputedKey) && + nameA === getStaticPropertyName(right) + ); + } + } + + /* + * x[0] = x[0] + * x[y] = x[y] + * x.y = x.y + */ + return ( + left.computed === right.computed && + isSameReference(left.object, right.object, disableStaticComputedKey) && + isSameReference(left.property, right.property, disableStaticComputedKey) + ); + } + + default: + return false; + } +} + +/** + * Checks whether or not a node is `Reflect.apply`. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a `Reflect.apply`. + */ +function isReflectApply(node) { + return isSpecificMemberAccess(node, "Reflect", "apply"); +} + +/** + * Checks whether or not a node is `Array.from`. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a `Array.from`. + */ +function isArrayFromMethod(node) { + return isSpecificMemberAccess(node, arrayOrTypedArrayPattern, "from"); +} + +/** + * Checks whether or not a node is a method which has `thisArg`. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a method which has `thisArg`. + */ +function isMethodWhichHasThisArg(node) { + return isSpecificMemberAccess(node, null, arrayMethodPattern); +} + +/** + * Creates the negate function of the given function. + * @param {Function} f The function to negate. + * @returns {Function} Negated function. + */ +function negate(f) { + return token => !f(token); +} + +/** + * Checks whether or not a node has a `@this` tag in its comments. + * @param {ASTNode} node A node to check. + * @param {SourceCode} sourceCode A SourceCode instance to get comments. + * @returns {boolean} Whether or not the node has a `@this` tag in its comments. + */ +function hasJSDocThisTag(node, sourceCode) { + const jsdocComment = sourceCode.getJSDocComment(node); + + if (jsdocComment && thisTagPattern.test(jsdocComment.value)) { + return true; + } + + // Checks `@this` in its leading comments for callbacks, + // because callbacks don't have its JSDoc comment. + // e.g. + // sinon.test(/* @this sinon.Sandbox */function() { this.spy(); }); + return sourceCode.getCommentsBefore(node).some(comment => thisTagPattern.test(comment.value)); +} + +/** + * Determines if a node is surrounded by parentheses. + * @param {SourceCode} sourceCode The ESLint source code object + * @param {ASTNode} node The node to be checked. + * @returns {boolean} True if the node is parenthesised. + * @private + */ +function isParenthesised(sourceCode, node) { + const previousToken = sourceCode.getTokenBefore(node), + nextToken = sourceCode.getTokenAfter(node); + + return Boolean(previousToken && nextToken) && + previousToken.value === "(" && previousToken.range[1] <= node.range[0] && + nextToken.value === ")" && nextToken.range[0] >= node.range[1]; +} + +/** + * Checks if the given token is a `=` token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a `=` token. + */ +function isEqToken(token) { + return token.value === "=" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is an arrow token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is an arrow token. + */ +function isArrowToken(token) { + return token.value === "=>" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a comma token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a comma token. + */ +function isCommaToken(token) { + return token.value === "," && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a dot token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a dot token. + */ +function isDotToken(token) { + return token.value === "." && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a `?.` token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a `?.` token. + */ +function isQuestionDotToken(token) { + return token.value === "?." && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a semicolon token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a semicolon token. + */ +function isSemicolonToken(token) { + return token.value === ";" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a colon token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a colon token. + */ +function isColonToken(token) { + return token.value === ":" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is an opening parenthesis token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is an opening parenthesis token. + */ +function isOpeningParenToken(token) { + return token.value === "(" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a closing parenthesis token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a closing parenthesis token. + */ +function isClosingParenToken(token) { + return token.value === ")" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is an opening square bracket token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is an opening square bracket token. + */ +function isOpeningBracketToken(token) { + return token.value === "[" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a closing square bracket token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a closing square bracket token. + */ +function isClosingBracketToken(token) { + return token.value === "]" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is an opening brace token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is an opening brace token. + */ +function isOpeningBraceToken(token) { + return token.value === "{" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a closing brace token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a closing brace token. + */ +function isClosingBraceToken(token) { + return token.value === "}" && token.type === "Punctuator"; +} + +/** + * Checks if the given token is a comment token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a comment token. + */ +function isCommentToken(token) { + return token.type === "Line" || token.type === "Block" || token.type === "Shebang"; +} + +/** + * Checks if the given token is a keyword token or not. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the token is a keyword token. + */ +function isKeywordToken(token) { + return token.type === "Keyword"; +} + +/** + * Gets the `(` token of the given function node. + * @param {ASTNode} node The function node to get. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {Token} `(` token. + */ +function getOpeningParenOfParams(node, sourceCode) { + + // If the node is an arrow function and doesn't have parens, this returns the identifier of the first param. + if (node.type === "ArrowFunctionExpression" && node.params.length === 1) { + const argToken = sourceCode.getFirstToken(node.params[0]); + const maybeParenToken = sourceCode.getTokenBefore(argToken); + + return isOpeningParenToken(maybeParenToken) ? maybeParenToken : argToken; + } + + // Otherwise, returns paren. + return node.id + ? sourceCode.getTokenAfter(node.id, isOpeningParenToken) + : sourceCode.getFirstToken(node, isOpeningParenToken); +} + +/** + * Checks whether or not the tokens of two given nodes are same. + * @param {ASTNode} left A node 1 to compare. + * @param {ASTNode} right A node 2 to compare. + * @param {SourceCode} sourceCode The ESLint source code object. + * @returns {boolean} the source code for the given node. + */ +function equalTokens(left, right, sourceCode) { + const tokensL = sourceCode.getTokens(left); + const tokensR = sourceCode.getTokens(right); + + if (tokensL.length !== tokensR.length) { + return false; + } + for (let i = 0; i < tokensL.length; ++i) { + if (tokensL[i].type !== tokensR[i].type || + tokensL[i].value !== tokensR[i].value + ) { + return false; + } + } + + return true; +} + +/** + * Check if the given node is a true logical expression or not. + * + * The three binary expressions logical-or (`||`), logical-and (`&&`), and + * coalesce (`??`) are known as `ShortCircuitExpression`. + * But ESTree represents those by `LogicalExpression` node. + * + * This function rejects coalesce expressions of `LogicalExpression` node. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is `&&` or `||`. + * @see https://tc39.es/ecma262/#prod-ShortCircuitExpression + */ +function isLogicalExpression(node) { + return ( + node.type === "LogicalExpression" && + (node.operator === "&&" || node.operator === "||") + ); +} + +/** + * Check if the given node is a nullish coalescing expression or not. + * + * The three binary expressions logical-or (`||`), logical-and (`&&`), and + * coalesce (`??`) are known as `ShortCircuitExpression`. + * But ESTree represents those by `LogicalExpression` node. + * + * This function finds only coalesce expressions of `LogicalExpression` node. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is `??`. + */ +function isCoalesceExpression(node) { + return node.type === "LogicalExpression" && node.operator === "??"; +} + +/** + * Check if given two nodes are the pair of a logical expression and a coalesce expression. + * @param {ASTNode} left A node to check. + * @param {ASTNode} right Another node to check. + * @returns {boolean} `true` if the two nodes are the pair of a logical expression and a coalesce expression. + */ +function isMixedLogicalAndCoalesceExpressions(left, right) { + return ( + (isLogicalExpression(left) && isCoalesceExpression(right)) || + (isCoalesceExpression(left) && isLogicalExpression(right)) + ); +} + +/** + * Checks if the given operator is a logical assignment operator. + * @param {string} operator The operator to check. + * @returns {boolean} `true` if the operator is a logical assignment operator. + */ +function isLogicalAssignmentOperator(operator) { + return LOGICAL_ASSIGNMENT_OPERATORS.has(operator); +} + +/** + * Get the colon token of the given SwitchCase node. + * @param {ASTNode} node The SwitchCase node to get. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {Token} The colon token of the node. + */ +function getSwitchCaseColonToken(node, sourceCode) { + if (node.test) { + return sourceCode.getTokenAfter(node.test, isColonToken); + } + return sourceCode.getFirstToken(node, 1); +} + +/** + * Gets ESM module export name represented by the given node. + * @param {ASTNode} node `Identifier` or string `Literal` node in a position + * that represents a module export name: + * - `ImportSpecifier#imported` + * - `ExportSpecifier#local` (if it is a re-export from another module) + * - `ExportSpecifier#exported` + * - `ExportAllDeclaration#exported` + * @returns {string} The module export name. + */ +function getModuleExportName(node) { + if (node.type === "Identifier") { + return node.name; + } + + // string literal + return node.value; +} + +/** + * Returns literal's value converted to the Boolean type + * @param {ASTNode} node any `Literal` node + * @returns {boolean | null} `true` when node is truthy, `false` when node is falsy, + * `null` when it cannot be determined. + */ +function getBooleanValue(node) { + if (node.value === null) { + + /* + * it might be a null literal or bigint/regex literal in unsupported environments . + * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es5.md#regexpliteral + * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es2020.md#bigintliteral + */ + + if (node.raw === "null") { + return false; + } + + // regex is always truthy + if (typeof node.regex === "object") { + return true; + } + + return null; + } + + return !!node.value; +} + +/** + * Checks if a branch node of LogicalExpression short circuits the whole condition + * @param {ASTNode} node The branch of main condition which needs to be checked + * @param {string} operator The operator of the main LogicalExpression. + * @returns {boolean} true when condition short circuits whole condition + */ +function isLogicalIdentity(node, operator) { + switch (node.type) { + case "Literal": + return (operator === "||" && getBooleanValue(node) === true) || + (operator === "&&" && getBooleanValue(node) === false); + + case "UnaryExpression": + return (operator === "&&" && node.operator === "void"); + + case "LogicalExpression": + + /* + * handles `a && false || b` + * `false` is an identity element of `&&` but not `||` + */ + return operator === node.operator && + ( + isLogicalIdentity(node.left, operator) || + isLogicalIdentity(node.right, operator) + ); + + case "AssignmentExpression": + return ["||=", "&&="].includes(node.operator) && + operator === node.operator.slice(0, -1) && + isLogicalIdentity(node.right, operator); + + // no default + } + return false; +} + +/** + * Checks if an identifier is a reference to a global variable. + * @param {Scope} scope The scope in which the identifier is referenced. + * @param {ASTNode} node An identifier node to check. + * @returns {boolean} `true` if the identifier is a reference to a global variable. + */ +function isReferenceToGlobalVariable(scope, node) { + const reference = scope.references.find(ref => ref.identifier === node); + + return Boolean( + reference && + reference.resolved && + reference.resolved.scope.type === "global" && + reference.resolved.defs.length === 0 + ); +} + + +/** + * Checks if a node has a constant truthiness value. + * @param {Scope} scope Scope in which the node appears. + * @param {ASTNode} node The AST node to check. + * @param {boolean} inBooleanPosition `true` if checking the test of a + * condition. `false` in all other cases. When `false`, checks if -- for + * both string and number -- if coerced to that type, the value will + * be constant. + * @returns {boolean} true when node's truthiness is constant + * @private + */ +function isConstant(scope, node, inBooleanPosition) { + + // node.elements can return null values in the case of sparse arrays ex. [,] + if (!node) { + return true; + } + switch (node.type) { + case "Literal": + case "ArrowFunctionExpression": + case "FunctionExpression": + return true; + case "ClassExpression": + case "ObjectExpression": + + /** + * In theory objects like: + * + * `{toString: () => a}` + * `{valueOf: () => a}` + * + * Or a classes like: + * + * `class { static toString() { return a } }` + * `class { static valueOf() { return a } }` + * + * Are not constant verifiably when `inBooleanPosition` is + * false, but it's an edge case we've opted not to handle. + */ + return true; + case "TemplateLiteral": + return (inBooleanPosition && node.quasis.some(quasi => quasi.value.cooked.length)) || + node.expressions.every(exp => isConstant(scope, exp, false)); + + case "ArrayExpression": { + if (!inBooleanPosition) { + return node.elements.every(element => isConstant(scope, element, false)); + } + return true; + } + + case "UnaryExpression": + if ( + node.operator === "void" || + node.operator === "typeof" && inBooleanPosition + ) { + return true; + } + + if (node.operator === "!") { + return isConstant(scope, node.argument, true); + } + + return isConstant(scope, node.argument, false); + + case "BinaryExpression": + return isConstant(scope, node.left, false) && + isConstant(scope, node.right, false) && + node.operator !== "in"; + + case "LogicalExpression": { + const isLeftConstant = isConstant(scope, node.left, inBooleanPosition); + const isRightConstant = isConstant(scope, node.right, inBooleanPosition); + const isLeftShortCircuit = (isLeftConstant && isLogicalIdentity(node.left, node.operator)); + const isRightShortCircuit = (inBooleanPosition && isRightConstant && isLogicalIdentity(node.right, node.operator)); + + return (isLeftConstant && isRightConstant) || + isLeftShortCircuit || + isRightShortCircuit; + } + case "NewExpression": + return inBooleanPosition; + case "AssignmentExpression": + if (node.operator === "=") { + return isConstant(scope, node.right, inBooleanPosition); + } + + if (["||=", "&&="].includes(node.operator) && inBooleanPosition) { + return isLogicalIdentity(node.right, node.operator.slice(0, -1)); + } + + return false; + + case "SequenceExpression": + return isConstant(scope, node.expressions[node.expressions.length - 1], inBooleanPosition); + case "SpreadElement": + return isConstant(scope, node.argument, inBooleanPosition); + case "CallExpression": + if (node.callee.type === "Identifier" && node.callee.name === "Boolean") { + if (node.arguments.length === 0 || isConstant(scope, node.arguments[0], true)) { + return isReferenceToGlobalVariable(scope, node.callee); + } + } + return false; + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + + // no default + } + return false; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { + COMMENTS_IGNORE_PATTERN, + LINEBREAKS, + LINEBREAK_MATCHER: lineBreakPattern, + SHEBANG_MATCHER: shebangPattern, + STATEMENT_LIST_PARENTS, + + /** + * Determines whether two adjacent tokens are on the same line. + * @param {Object} left The left token object. + * @param {Object} right The right token object. + * @returns {boolean} Whether or not the tokens are on the same line. + * @public + */ + isTokenOnSameLine(left, right) { + return left.loc.end.line === right.loc.start.line; + }, + + isNullOrUndefined, + isCallee, + isES5Constructor, + getUpperFunction, + isFunction, + isLoop, + isInLoop, + isArrayFromMethod, + isParenthesised, + createGlobalLinebreakMatcher, + equalTokens, + + isArrowToken, + isClosingBraceToken, + isClosingBracketToken, + isClosingParenToken, + isColonToken, + isCommaToken, + isCommentToken, + isDotToken, + isQuestionDotToken, + isKeywordToken, + isNotClosingBraceToken: negate(isClosingBraceToken), + isNotClosingBracketToken: negate(isClosingBracketToken), + isNotClosingParenToken: negate(isClosingParenToken), + isNotColonToken: negate(isColonToken), + isNotCommaToken: negate(isCommaToken), + isNotDotToken: negate(isDotToken), + isNotQuestionDotToken: negate(isQuestionDotToken), + isNotOpeningBraceToken: negate(isOpeningBraceToken), + isNotOpeningBracketToken: negate(isOpeningBracketToken), + isNotOpeningParenToken: negate(isOpeningParenToken), + isNotSemicolonToken: negate(isSemicolonToken), + isOpeningBraceToken, + isOpeningBracketToken, + isOpeningParenToken, + isSemicolonToken, + isEqToken, + + /** + * Checks whether or not a given node is a string literal. + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is a string literal. + */ + isStringLiteral(node) { + return ( + (node.type === "Literal" && typeof node.value === "string") || + node.type === "TemplateLiteral" + ); + }, + + /** + * Checks whether a given node is a breakable statement or not. + * The node is breakable if the node is one of the following type: + * + * - DoWhileStatement + * - ForInStatement + * - ForOfStatement + * - ForStatement + * - SwitchStatement + * - WhileStatement + * @param {ASTNode} node A node to check. + * @returns {boolean} `true` if the node is breakable. + */ + isBreakableStatement(node) { + return breakableTypePattern.test(node.type); + }, + + /** + * Gets references which are non initializer and writable. + * @param {Reference[]} references An array of references. + * @returns {Reference[]} An array of only references which are non initializer and writable. + * @public + */ + getModifyingReferences(references) { + return references.filter(isModifyingReference); + }, + + /** + * Validate that a string passed in is surrounded by the specified character + * @param {string} val The text to check. + * @param {string} character The character to see if it's surrounded by. + * @returns {boolean} True if the text is surrounded by the character, false if not. + * @private + */ + isSurroundedBy(val, character) { + return val[0] === character && val[val.length - 1] === character; + }, + + /** + * Returns whether the provided node is an ESLint directive comment or not + * @param {Line|Block} node The comment token to be checked + * @returns {boolean} `true` if the node is an ESLint directive comment + */ + isDirectiveComment(node) { + const comment = node.value.trim(); + + return ( + node.type === "Line" && comment.startsWith("eslint-") || + node.type === "Block" && ESLINT_DIRECTIVE_PATTERN.test(comment) + ); + }, + + /** + * Gets the trailing statement of a given node. + * + * if (code) + * consequent; + * + * When taking this `IfStatement`, returns `consequent;` statement. + * @param {ASTNode} A node to get. + * @returns {ASTNode|null} The trailing statement's node. + */ + getTrailingStatement: esutils.ast.trailingStatement, + + /** + * Finds the variable by a given name in a given scope and its upper scopes. + * @param {eslint-scope.Scope} initScope A scope to start find. + * @param {string} name A variable name to find. + * @returns {eslint-scope.Variable|null} A found variable or `null`. + */ + getVariableByName(initScope, name) { + let scope = initScope; + + while (scope) { + const variable = scope.set.get(name); + + if (variable) { + return variable; + } + + scope = scope.upper; + } + + return null; + }, + + /** + * Checks whether or not a given function node is the default `this` binding. + * + * First, this checks the node: + * + * - The given node is not in `PropertyDefinition#value` position. + * - The given node is not `StaticBlock`. + * - The function name does not start with uppercase. It's a convention to capitalize the names + * of constructor functions. This check is not performed if `capIsConstructor` is set to `false`. + * - The function does not have a JSDoc comment that has a @this tag. + * + * Next, this checks the location of the node. + * If the location is below, this judges `this` is valid. + * + * - The location is not on an object literal. + * - The location is not assigned to a variable which starts with an uppercase letter. Applies to anonymous + * functions only, as the name of the variable is considered to be the name of the function in this case. + * This check is not performed if `capIsConstructor` is set to `false`. + * - The location is not on an ES2015 class. + * - Its `bind`/`call`/`apply` method is not called directly. + * - The function is not a callback of array methods (such as `.forEach()`) if `thisArg` is given. + * @param {ASTNode} node A function node to check. It also can be an implicit function, like `StaticBlock` + * or any expression that is `PropertyDefinition#value` node. + * @param {SourceCode} sourceCode A SourceCode instance to get comments. + * @param {boolean} [capIsConstructor = true] `false` disables the assumption that functions which name starts + * with an uppercase or are assigned to a variable which name starts with an uppercase are constructors. + * @returns {boolean} The function node is the default `this` binding. + */ + isDefaultThisBinding(node, sourceCode, { capIsConstructor = true } = {}) { + + /* + * Class field initializers are implicit functions, but ESTree doesn't have the AST node of field initializers. + * Therefore, A expression node at `PropertyDefinition#value` is a function. + * In this case, `this` is always not default binding. + */ + if (node.parent.type === "PropertyDefinition" && node.parent.value === node) { + return false; + } + + // Class static blocks are implicit functions. In this case, `this` is always not default binding. + if (node.type === "StaticBlock") { + return false; + } + + if ( + (capIsConstructor && isES5Constructor(node)) || + hasJSDocThisTag(node, sourceCode) + ) { + return false; + } + const isAnonymous = node.id === null; + let currentNode = node; + + while (currentNode) { + const parent = currentNode.parent; + + switch (parent.type) { + + /* + * Looks up the destination. + * e.g., obj.foo = nativeFoo || function foo() { ... }; + */ + case "LogicalExpression": + case "ConditionalExpression": + case "ChainExpression": + currentNode = parent; + break; + + /* + * If the upper function is IIFE, checks the destination of the return value. + * e.g. + * obj.foo = (function() { + * // setup... + * return function foo() { ... }; + * })(); + * obj.foo = (() => + * function foo() { ... } + * )(); + */ + case "ReturnStatement": { + const func = getUpperFunction(parent); + + if (func === null || !isCallee(func)) { + return true; + } + currentNode = func.parent; + break; + } + case "ArrowFunctionExpression": + if (currentNode !== parent.body || !isCallee(parent)) { + return true; + } + currentNode = parent.parent; + break; + + /* + * e.g. + * var obj = { foo() { ... } }; + * var obj = { foo: function() { ... } }; + * class A { constructor() { ... } } + * class A { foo() { ... } } + * class A { get foo() { ... } } + * class A { set foo() { ... } } + * class A { static foo() { ... } } + * class A { foo = function() { ... } } + */ + case "Property": + case "PropertyDefinition": + case "MethodDefinition": + return parent.value !== currentNode; + + /* + * e.g. + * obj.foo = function foo() { ... }; + * Foo = function() { ... }; + * [obj.foo = function foo() { ... }] = a; + * [Foo = function() { ... }] = a; + */ + case "AssignmentExpression": + case "AssignmentPattern": + if (parent.left.type === "MemberExpression") { + return false; + } + if ( + capIsConstructor && + isAnonymous && + parent.left.type === "Identifier" && + startsWithUpperCase(parent.left.name) + ) { + return false; + } + return true; + + /* + * e.g. + * var Foo = function() { ... }; + */ + case "VariableDeclarator": + return !( + capIsConstructor && + isAnonymous && + parent.init === currentNode && + parent.id.type === "Identifier" && + startsWithUpperCase(parent.id.name) + ); + + /* + * e.g. + * var foo = function foo() { ... }.bind(obj); + * (function foo() { ... }).call(obj); + * (function foo() { ... }).apply(obj, []); + */ + case "MemberExpression": + if ( + parent.object === currentNode && + isSpecificMemberAccess(parent, null, bindOrCallOrApplyPattern) + ) { + const maybeCalleeNode = parent.parent.type === "ChainExpression" + ? parent.parent + : parent; + + return !( + isCallee(maybeCalleeNode) && + maybeCalleeNode.parent.arguments.length >= 1 && + !isNullOrUndefined(maybeCalleeNode.parent.arguments[0]) + ); + } + return true; + + /* + * e.g. + * Reflect.apply(function() {}, obj, []); + * Array.from([], function() {}, obj); + * list.forEach(function() {}, obj); + */ + case "CallExpression": + if (isReflectApply(parent.callee)) { + return ( + parent.arguments.length !== 3 || + parent.arguments[0] !== currentNode || + isNullOrUndefined(parent.arguments[1]) + ); + } + if (isArrayFromMethod(parent.callee)) { + return ( + parent.arguments.length !== 3 || + parent.arguments[1] !== currentNode || + isNullOrUndefined(parent.arguments[2]) + ); + } + if (isMethodWhichHasThisArg(parent.callee)) { + return ( + parent.arguments.length !== 2 || + parent.arguments[0] !== currentNode || + isNullOrUndefined(parent.arguments[1]) + ); + } + return true; + + // Otherwise `this` is default. + default: + return true; + } + } + + /* c8 ignore next */ + return true; + }, + + /** + * Get the precedence level based on the node type + * @param {ASTNode} node node to evaluate + * @returns {int} precedence level + * @private + */ + getPrecedence(node) { + switch (node.type) { + case "SequenceExpression": + return 0; + + case "AssignmentExpression": + case "ArrowFunctionExpression": + case "YieldExpression": + return 1; + + case "ConditionalExpression": + return 3; + + case "LogicalExpression": + switch (node.operator) { + case "||": + case "??": + return 4; + case "&&": + return 5; + + // no default + } + + /* falls through */ + + case "BinaryExpression": + + switch (node.operator) { + case "|": + return 6; + case "^": + return 7; + case "&": + return 8; + case "==": + case "!=": + case "===": + case "!==": + return 9; + case "<": + case "<=": + case ">": + case ">=": + case "in": + case "instanceof": + return 10; + case "<<": + case ">>": + case ">>>": + return 11; + case "+": + case "-": + return 12; + case "*": + case "/": + case "%": + return 13; + case "**": + return 15; + + // no default + } + + /* falls through */ + + case "UnaryExpression": + case "AwaitExpression": + return 16; + + case "UpdateExpression": + return 17; + + case "CallExpression": + case "ChainExpression": + case "ImportExpression": + return 18; + + case "NewExpression": + return 19; + + default: + return 20; + } + }, + + /** + * Checks whether the given node is an empty block node or not. + * @param {ASTNode|null} node The node to check. + * @returns {boolean} `true` if the node is an empty block. + */ + isEmptyBlock(node) { + return Boolean(node && node.type === "BlockStatement" && node.body.length === 0); + }, + + /** + * Checks whether the given node is an empty function node or not. + * @param {ASTNode|null} node The node to check. + * @returns {boolean} `true` if the node is an empty function. + */ + isEmptyFunction(node) { + return isFunction(node) && module.exports.isEmptyBlock(node.body); + }, + + /** + * Get directives from directive prologue of a Program or Function node. + * @param {ASTNode} node The node to check. + * @returns {ASTNode[]} The directives found in the directive prologue. + */ + getDirectivePrologue(node) { + const directives = []; + + // Directive prologues only occur at the top of files or functions. + if ( + node.type === "Program" || + node.type === "FunctionDeclaration" || + node.type === "FunctionExpression" || + + /* + * Do not check arrow functions with implicit return. + * `() => "use strict";` returns the string `"use strict"`. + */ + (node.type === "ArrowFunctionExpression" && node.body.type === "BlockStatement") + ) { + const statements = node.type === "Program" ? node.body : node.body.body; + + for (const statement of statements) { + if ( + statement.type === "ExpressionStatement" && + statement.expression.type === "Literal" + ) { + directives.push(statement); + } else { + break; + } + } + } + + return directives; + }, + + + /** + * Determines whether this node is a decimal integer literal. If a node is a decimal integer literal, a dot added + * after the node will be parsed as a decimal point, rather than a property-access dot. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if this node is a decimal integer. + * @example + * + * 0 // true + * 5 // true + * 50 // true + * 5_000 // true + * 1_234_56 // true + * 08 // true + * 0192 // true + * 5. // false + * .5 // false + * 5.0 // false + * 5.00_00 // false + * 05 // false + * 0x5 // false + * 0b101 // false + * 0b11_01 // false + * 0o5 // false + * 5e0 // false + * 5e1_000 // false + * 5n // false + * 1_000n // false + * "5" // false + * + */ + isDecimalInteger(node) { + return node.type === "Literal" && typeof node.value === "number" && + DECIMAL_INTEGER_PATTERN.test(node.raw); + }, + + /** + * Determines whether this token is a decimal integer numeric token. + * This is similar to isDecimalInteger(), but for tokens. + * @param {Token} token The token to check. + * @returns {boolean} `true` if this token is a decimal integer. + */ + isDecimalIntegerNumericToken(token) { + return token.type === "Numeric" && DECIMAL_INTEGER_PATTERN.test(token.value); + }, + + /** + * Gets the name and kind of the given function node. + * + * - `function foo() {}` .................... `function 'foo'` + * - `(function foo() {})` .................. `function 'foo'` + * - `(function() {})` ...................... `function` + * - `function* foo() {}` ................... `generator function 'foo'` + * - `(function* foo() {})` ................. `generator function 'foo'` + * - `(function*() {})` ..................... `generator function` + * - `() => {}` ............................. `arrow function` + * - `async () => {}` ....................... `async arrow function` + * - `({ foo: function foo() {} })` ......... `method 'foo'` + * - `({ foo: function() {} })` ............. `method 'foo'` + * - `({ ['foo']: function() {} })` ......... `method 'foo'` + * - `({ [foo]: function() {} })` ........... `method` + * - `({ foo() {} })` ....................... `method 'foo'` + * - `({ foo: function* foo() {} })` ........ `generator method 'foo'` + * - `({ foo: function*() {} })` ............ `generator method 'foo'` + * - `({ ['foo']: function*() {} })` ........ `generator method 'foo'` + * - `({ [foo]: function*() {} })` .......... `generator method` + * - `({ *foo() {} })` ...................... `generator method 'foo'` + * - `({ foo: async function foo() {} })` ... `async method 'foo'` + * - `({ foo: async function() {} })` ....... `async method 'foo'` + * - `({ ['foo']: async function() {} })` ... `async method 'foo'` + * - `({ [foo]: async function() {} })` ..... `async method` + * - `({ async foo() {} })` ................. `async method 'foo'` + * - `({ get foo() {} })` ................... `getter 'foo'` + * - `({ set foo(a) {} })` .................. `setter 'foo'` + * - `class A { constructor() {} }` ......... `constructor` + * - `class A { foo() {} }` ................. `method 'foo'` + * - `class A { *foo() {} }` ................ `generator method 'foo'` + * - `class A { async foo() {} }` ........... `async method 'foo'` + * - `class A { ['foo']() {} }` ............. `method 'foo'` + * - `class A { *['foo']() {} }` ............ `generator method 'foo'` + * - `class A { async ['foo']() {} }` ....... `async method 'foo'` + * - `class A { [foo]() {} }` ............... `method` + * - `class A { *[foo]() {} }` .............. `generator method` + * - `class A { async [foo]() {} }` ......... `async method` + * - `class A { get foo() {} }` ............. `getter 'foo'` + * - `class A { set foo(a) {} }` ............ `setter 'foo'` + * - `class A { static foo() {} }` .......... `static method 'foo'` + * - `class A { static *foo() {} }` ......... `static generator method 'foo'` + * - `class A { static async foo() {} }` .... `static async method 'foo'` + * - `class A { static get foo() {} }` ...... `static getter 'foo'` + * - `class A { static set foo(a) {} }` ..... `static setter 'foo'` + * - `class A { foo = () => {}; }` .......... `method 'foo'` + * - `class A { foo = function() {}; }` ..... `method 'foo'` + * - `class A { foo = function bar() {}; }` . `method 'foo'` + * - `class A { static foo = () => {}; }` ... `static method 'foo'` + * - `class A { '#foo' = () => {}; }` ....... `method '#foo'` + * - `class A { #foo = () => {}; }` ......... `private method #foo` + * - `class A { static #foo = () => {}; }` .. `static private method #foo` + * - `class A { '#foo'() {} }` .............. `method '#foo'` + * - `class A { #foo() {} }` ................ `private method #foo` + * - `class A { static #foo() {} }` ......... `static private method #foo` + * @param {ASTNode} node The function node to get. + * @returns {string} The name and kind of the function node. + */ + getFunctionNameWithKind(node) { + const parent = node.parent; + const tokens = []; + + if (parent.type === "MethodDefinition" || parent.type === "PropertyDefinition") { + + // The proposal uses `static` word consistently before visibility words: https://github.com/tc39/proposal-static-class-features + if (parent.static) { + tokens.push("static"); + } + if (!parent.computed && parent.key.type === "PrivateIdentifier") { + tokens.push("private"); + } + } + if (node.async) { + tokens.push("async"); + } + if (node.generator) { + tokens.push("generator"); + } + + if (parent.type === "Property" || parent.type === "MethodDefinition") { + if (parent.kind === "constructor") { + return "constructor"; + } + if (parent.kind === "get") { + tokens.push("getter"); + } else if (parent.kind === "set") { + tokens.push("setter"); + } else { + tokens.push("method"); + } + } else if (parent.type === "PropertyDefinition") { + tokens.push("method"); + } else { + if (node.type === "ArrowFunctionExpression") { + tokens.push("arrow"); + } + tokens.push("function"); + } + + if (parent.type === "Property" || parent.type === "MethodDefinition" || parent.type === "PropertyDefinition") { + if (!parent.computed && parent.key.type === "PrivateIdentifier") { + tokens.push(`#${parent.key.name}`); + } else { + const name = getStaticPropertyName(parent); + + if (name !== null) { + tokens.push(`'${name}'`); + } else if (node.id) { + tokens.push(`'${node.id.name}'`); + } + } + } else if (node.id) { + tokens.push(`'${node.id.name}'`); + } + + return tokens.join(" "); + }, + + /** + * Gets the location of the given function node for reporting. + * + * - `function foo() {}` + * ^^^^^^^^^^^^ + * - `(function foo() {})` + * ^^^^^^^^^^^^ + * - `(function() {})` + * ^^^^^^^^ + * - `function* foo() {}` + * ^^^^^^^^^^^^^ + * - `(function* foo() {})` + * ^^^^^^^^^^^^^ + * - `(function*() {})` + * ^^^^^^^^^ + * - `() => {}` + * ^^ + * - `async () => {}` + * ^^ + * - `({ foo: function foo() {} })` + * ^^^^^^^^^^^^^^^^^ + * - `({ foo: function() {} })` + * ^^^^^^^^^^^^^ + * - `({ ['foo']: function() {} })` + * ^^^^^^^^^^^^^^^^^ + * - `({ [foo]: function() {} })` + * ^^^^^^^^^^^^^^^ + * - `({ foo() {} })` + * ^^^ + * - `({ foo: function* foo() {} })` + * ^^^^^^^^^^^^^^^^^^ + * - `({ foo: function*() {} })` + * ^^^^^^^^^^^^^^ + * - `({ ['foo']: function*() {} })` + * ^^^^^^^^^^^^^^^^^^ + * - `({ [foo]: function*() {} })` + * ^^^^^^^^^^^^^^^^ + * - `({ *foo() {} })` + * ^^^^ + * - `({ foo: async function foo() {} })` + * ^^^^^^^^^^^^^^^^^^^^^^^ + * - `({ foo: async function() {} })` + * ^^^^^^^^^^^^^^^^^^^ + * - `({ ['foo']: async function() {} })` + * ^^^^^^^^^^^^^^^^^^^^^^^ + * - `({ [foo]: async function() {} })` + * ^^^^^^^^^^^^^^^^^^^^^ + * - `({ async foo() {} })` + * ^^^^^^^^^ + * - `({ get foo() {} })` + * ^^^^^^^ + * - `({ set foo(a) {} })` + * ^^^^^^^ + * - `class A { constructor() {} }` + * ^^^^^^^^^^^ + * - `class A { foo() {} }` + * ^^^ + * - `class A { *foo() {} }` + * ^^^^ + * - `class A { async foo() {} }` + * ^^^^^^^^^ + * - `class A { ['foo']() {} }` + * ^^^^^^^ + * - `class A { *['foo']() {} }` + * ^^^^^^^^ + * - `class A { async ['foo']() {} }` + * ^^^^^^^^^^^^^ + * - `class A { [foo]() {} }` + * ^^^^^ + * - `class A { *[foo]() {} }` + * ^^^^^^ + * - `class A { async [foo]() {} }` + * ^^^^^^^^^^^ + * - `class A { get foo() {} }` + * ^^^^^^^ + * - `class A { set foo(a) {} }` + * ^^^^^^^ + * - `class A { static foo() {} }` + * ^^^^^^^^^^ + * - `class A { static *foo() {} }` + * ^^^^^^^^^^^ + * - `class A { static async foo() {} }` + * ^^^^^^^^^^^^^^^^ + * - `class A { static get foo() {} }` + * ^^^^^^^^^^^^^^ + * - `class A { static set foo(a) {} }` + * ^^^^^^^^^^^^^^ + * - `class A { foo = function() {} }` + * ^^^^^^^^^^^^^^ + * - `class A { static foo = function() {} }` + * ^^^^^^^^^^^^^^^^^^^^^ + * - `class A { foo = (a, b) => {} }` + * ^^^^^^ + * @param {ASTNode} node The function node to get. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {string} The location of the function node for reporting. + */ + getFunctionHeadLoc(node, sourceCode) { + const parent = node.parent; + let start = null; + let end = null; + + if (parent.type === "Property" || parent.type === "MethodDefinition" || parent.type === "PropertyDefinition") { + start = parent.loc.start; + end = getOpeningParenOfParams(node, sourceCode).loc.start; + } else if (node.type === "ArrowFunctionExpression") { + const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken); + + start = arrowToken.loc.start; + end = arrowToken.loc.end; + } else { + start = node.loc.start; + end = getOpeningParenOfParams(node, sourceCode).loc.start; + } + + return { + start: Object.assign({}, start), + end: Object.assign({}, end) + }; + }, + + /** + * Gets next location when the result is not out of bound, otherwise returns null. + * + * Assumptions: + * + * - The given location represents a valid location in the given source code. + * - Columns are 0-based. + * - Lines are 1-based. + * - Column immediately after the last character in a line (not incl. linebreaks) is considered to be a valid location. + * - If the source code ends with a linebreak, `sourceCode.lines` array will have an extra element (empty string) at the end. + * The start (column 0) of that extra line is considered to be a valid location. + * + * Examples of successive locations (line, column): + * + * code: foo + * locations: (1, 0) -> (1, 1) -> (1, 2) -> (1, 3) -> null + * + * code: foo + * locations: (1, 0) -> (1, 1) -> (1, 2) -> (1, 3) -> (2, 0) -> null + * + * code: foo + * locations: (1, 0) -> (1, 1) -> (1, 2) -> (1, 3) -> (2, 0) -> null + * + * code: ab + * locations: (1, 0) -> (1, 1) -> (2, 0) -> (2, 1) -> null + * + * code: ab + * locations: (1, 0) -> (1, 1) -> (2, 0) -> (2, 1) -> (3, 0) -> null + * + * code: ab + * locations: (1, 0) -> (1, 1) -> (2, 0) -> (2, 1) -> (3, 0) -> null + * + * code: a + * locations: (1, 0) -> (1, 1) -> (2, 0) -> (3, 0) -> null + * + * code: + * locations: (1, 0) -> (2, 0) -> null + * + * code: + * locations: (1, 0) -> null + * @param {SourceCode} sourceCode The sourceCode + * @param {{line: number, column: number}} location The location + * @returns {{line: number, column: number} | null} Next location + */ + getNextLocation(sourceCode, { line, column }) { + if (column < sourceCode.lines[line - 1].length) { + return { + line, + column: column + 1 + }; + } + + if (line < sourceCode.lines.length) { + return { + line: line + 1, + column: 0 + }; + } + + return null; + }, + + /** + * Gets the parenthesized text of a node. This is similar to sourceCode.getText(node), but it also includes any parentheses + * surrounding the node. + * @param {SourceCode} sourceCode The source code object + * @param {ASTNode} node An expression node + * @returns {string} The text representing the node, with all surrounding parentheses included + */ + getParenthesisedText(sourceCode, node) { + let leftToken = sourceCode.getFirstToken(node); + let rightToken = sourceCode.getLastToken(node); + + while ( + sourceCode.getTokenBefore(leftToken) && + sourceCode.getTokenBefore(leftToken).type === "Punctuator" && + sourceCode.getTokenBefore(leftToken).value === "(" && + sourceCode.getTokenAfter(rightToken) && + sourceCode.getTokenAfter(rightToken).type === "Punctuator" && + sourceCode.getTokenAfter(rightToken).value === ")" + ) { + leftToken = sourceCode.getTokenBefore(leftToken); + rightToken = sourceCode.getTokenAfter(rightToken); + } + + return sourceCode.getText().slice(leftToken.range[0], rightToken.range[1]); + }, + + /** + * Determine if a node has a possibility to be an Error object + * @param {ASTNode} node ASTNode to check + * @returns {boolean} True if there is a chance it contains an Error obj + */ + couldBeError(node) { + switch (node.type) { + case "Identifier": + case "CallExpression": + case "NewExpression": + case "MemberExpression": + case "TaggedTemplateExpression": + case "YieldExpression": + case "AwaitExpression": + case "ChainExpression": + return true; // possibly an error object. + + case "AssignmentExpression": + if (["=", "&&="].includes(node.operator)) { + return module.exports.couldBeError(node.right); + } + + if (["||=", "??="].includes(node.operator)) { + return module.exports.couldBeError(node.left) || module.exports.couldBeError(node.right); + } + + /** + * All other assignment operators are mathematical assignment operators (arithmetic or bitwise). + * An assignment expression with a mathematical operator can either evaluate to a primitive value, + * or throw, depending on the operands. Thus, it cannot evaluate to an `Error` object. + */ + return false; + + case "SequenceExpression": { + const exprs = node.expressions; + + return exprs.length !== 0 && module.exports.couldBeError(exprs[exprs.length - 1]); + } + + case "LogicalExpression": + + /* + * If the && operator short-circuits, the left side was falsy and therefore not an error, and if it + * doesn't short-circuit, it takes the value from the right side, so the right side must always be + * a plausible error. A future improvement could verify that the left side could be truthy by + * excluding falsy literals. + */ + if (node.operator === "&&") { + return module.exports.couldBeError(node.right); + } + + return module.exports.couldBeError(node.left) || module.exports.couldBeError(node.right); + + case "ConditionalExpression": + return module.exports.couldBeError(node.consequent) || module.exports.couldBeError(node.alternate); + + default: + return false; + } + }, + + /** + * Check if a given node is a numeric literal or not. + * @param {ASTNode} node The node to check. + * @returns {boolean} `true` if the node is a number or bigint literal. + */ + isNumericLiteral(node) { + return ( + node.type === "Literal" && + (typeof node.value === "number" || Boolean(node.bigint)) + ); + }, + + /** + * Determines whether two tokens can safely be placed next to each other without merging into a single token + * @param {Token|string} leftValue The left token. If this is a string, it will be tokenized and the last token will be used. + * @param {Token|string} rightValue The right token. If this is a string, it will be tokenized and the first token will be used. + * @returns {boolean} If the tokens cannot be safely placed next to each other, returns `false`. If the tokens can be placed + * next to each other, behavior is undefined (although it should return `true` in most cases). + */ + canTokensBeAdjacent(leftValue, rightValue) { + const espreeOptions = { + ecmaVersion: espree.latestEcmaVersion, + comment: true, + range: true + }; + + let leftToken; + + if (typeof leftValue === "string") { + let tokens; + + try { + tokens = espree.tokenize(leftValue, espreeOptions); + } catch { + return false; + } + + const comments = tokens.comments; + + leftToken = tokens[tokens.length - 1]; + if (comments.length) { + const lastComment = comments[comments.length - 1]; + + if (!leftToken || lastComment.range[0] > leftToken.range[0]) { + leftToken = lastComment; + } + } + } else { + leftToken = leftValue; + } + + /* + * If a hashbang comment was passed as a token object from SourceCode, + * its type will be "Shebang" because of the way ESLint itself handles hashbangs. + * If a hashbang comment was passed in a string and then tokenized in this function, + * its type will be "Hashbang" because of the way Espree tokenizes hashbangs. + */ + if (leftToken.type === "Shebang" || leftToken.type === "Hashbang") { + return false; + } + + let rightToken; + + if (typeof rightValue === "string") { + let tokens; + + try { + tokens = espree.tokenize(rightValue, espreeOptions); + } catch { + return false; + } + + const comments = tokens.comments; + + rightToken = tokens[0]; + if (comments.length) { + const firstComment = comments[0]; + + if (!rightToken || firstComment.range[0] < rightToken.range[0]) { + rightToken = firstComment; + } + } + } else { + rightToken = rightValue; + } + + if (leftToken.type === "Punctuator" || rightToken.type === "Punctuator") { + if (leftToken.type === "Punctuator" && rightToken.type === "Punctuator") { + const PLUS_TOKENS = new Set(["+", "++"]); + const MINUS_TOKENS = new Set(["-", "--"]); + + return !( + PLUS_TOKENS.has(leftToken.value) && PLUS_TOKENS.has(rightToken.value) || + MINUS_TOKENS.has(leftToken.value) && MINUS_TOKENS.has(rightToken.value) + ); + } + if (leftToken.type === "Punctuator" && leftToken.value === "/") { + return !["Block", "Line", "RegularExpression"].includes(rightToken.type); + } + return true; + } + + if ( + leftToken.type === "String" || rightToken.type === "String" || + leftToken.type === "Template" || rightToken.type === "Template" + ) { + return true; + } + + if (leftToken.type !== "Numeric" && rightToken.type === "Numeric" && rightToken.value.startsWith(".")) { + return true; + } + + if (leftToken.type === "Block" || rightToken.type === "Block" || rightToken.type === "Line") { + return true; + } + + if (rightToken.type === "PrivateIdentifier") { + return true; + } + + return false; + }, + + /** + * Get the `loc` object of a given name in a `/*globals` directive comment. + * @param {SourceCode} sourceCode The source code to convert index to loc. + * @param {Comment} comment The `/*globals` directive comment which include the name. + * @param {string} name The name to find. + * @returns {SourceLocation} The `loc` object. + */ + getNameLocationInGlobalDirectiveComment(sourceCode, comment, name) { + const namePattern = new RegExp(`[\\s,]${escapeRegExp(name)}(?:$|[\\s,:])`, "gu"); + + // To ignore the first text "global". + namePattern.lastIndex = comment.value.indexOf("global") + 6; + + // Search a given variable name. + const match = namePattern.exec(comment.value); + + // Convert the index to loc. + const start = sourceCode.getLocFromIndex( + comment.range[0] + + "/*".length + + (match ? match.index + 1 : 0) + ); + const end = { + line: start.line, + column: start.column + (match ? name.length : 1) + }; + + return { start, end }; + }, + + /** + * Determines whether the given raw string contains an octal escape sequence + * or a non-octal decimal escape sequence ("\8", "\9"). + * + * "\1", "\2" ... "\7", "\8", "\9" + * "\00", "\01" ... "\07", "\08", "\09" + * + * "\0", when not followed by a digit, is not an octal escape sequence. + * @param {string} rawString A string in its raw representation. + * @returns {boolean} `true` if the string contains at least one octal escape sequence + * or at least one non-octal decimal escape sequence. + */ + hasOctalOrNonOctalDecimalEscapeSequence(rawString) { + return OCTAL_OR_NON_OCTAL_DECIMAL_ESCAPE_PATTERN.test(rawString); + }, + + isReferenceToGlobalVariable, + isLogicalExpression, + isCoalesceExpression, + isMixedLogicalAndCoalesceExpressions, + isNullLiteral, + getStaticStringValue, + getStaticPropertyName, + skipChainExpression, + isSpecificId, + isSpecificMemberAccess, + equalLiteralValue, + isSameReference, + isLogicalAssignmentOperator, + getSwitchCaseColonToken, + getModuleExportName, + isConstant +}; diff --git a/node_modules/eslint/lib/rules/utils/fix-tracker.js b/node_modules/eslint/lib/rules/utils/fix-tracker.js new file mode 100644 index 0000000..589870b --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/fix-tracker.js @@ -0,0 +1,114 @@ +/** + * @fileoverview Helper class to aid in constructing fix commands. + * @author Alan Pierce + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./ast-utils"); + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * A helper class to combine fix options into a fix command. Currently, it + * exposes some "retain" methods that extend the range of the text being + * replaced so that other fixes won't touch that region in the same pass. + */ +class FixTracker { + + /** + * Create a new FixTracker. + * @param {ruleFixer} fixer A ruleFixer instance. + * @param {SourceCode} sourceCode A SourceCode object for the current code. + */ + constructor(fixer, sourceCode) { + this.fixer = fixer; + this.sourceCode = sourceCode; + this.retainedRange = null; + } + + /** + * Mark the given range as "retained", meaning that other fixes may not + * may not modify this region in the same pass. + * @param {int[]} range The range to retain. + * @returns {FixTracker} The same RuleFixer, for chained calls. + */ + retainRange(range) { + this.retainedRange = range; + return this; + } + + /** + * Given a node, find the function containing it (or the entire program) and + * mark it as retained, meaning that other fixes may not modify it in this + * pass. This is useful for avoiding conflicts in fixes that modify control + * flow. + * @param {ASTNode} node The node to use as a starting point. + * @returns {FixTracker} The same RuleFixer, for chained calls. + */ + retainEnclosingFunction(node) { + const functionNode = astUtils.getUpperFunction(node); + + return this.retainRange(functionNode ? functionNode.range : this.sourceCode.ast.range); + } + + /** + * Given a node or token, find the token before and afterward, and mark that + * range as retained, meaning that other fixes may not modify it in this + * pass. This is useful for avoiding conflicts in fixes that make a small + * change to the code where the AST should not be changed. + * @param {ASTNode|Token} nodeOrToken The node or token to use as a starting + * point. The token to the left and right are use in the range. + * @returns {FixTracker} The same RuleFixer, for chained calls. + */ + retainSurroundingTokens(nodeOrToken) { + const tokenBefore = this.sourceCode.getTokenBefore(nodeOrToken) || nodeOrToken; + const tokenAfter = this.sourceCode.getTokenAfter(nodeOrToken) || nodeOrToken; + + return this.retainRange([tokenBefore.range[0], tokenAfter.range[1]]); + } + + /** + * Create a fix command that replaces the given range with the given text, + * accounting for any retained ranges. + * @param {int[]} range The range to remove in the fix. + * @param {string} text The text to insert in place of the range. + * @returns {Object} The fix command. + */ + replaceTextRange(range, text) { + let actualRange; + + if (this.retainedRange) { + actualRange = [ + Math.min(this.retainedRange[0], range[0]), + Math.max(this.retainedRange[1], range[1]) + ]; + } else { + actualRange = range; + } + + return this.fixer.replaceTextRange( + actualRange, + this.sourceCode.text.slice(actualRange[0], range[0]) + + text + + this.sourceCode.text.slice(range[1], actualRange[1]) + ); + } + + /** + * Create a fix command that removes the given node or token, accounting for + * any retained ranges. + * @param {ASTNode|Token} nodeOrToken The node or token to remove. + * @returns {Object} The fix command. + */ + remove(nodeOrToken) { + return this.replaceTextRange(nodeOrToken.range, ""); + } +} + +module.exports = FixTracker; diff --git a/node_modules/eslint/lib/rules/utils/keywords.js b/node_modules/eslint/lib/rules/utils/keywords.js new file mode 100644 index 0000000..3fbb777 --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/keywords.js @@ -0,0 +1,67 @@ +/** + * @fileoverview A shared list of ES3 keywords. + * @author Josh Perez + */ +"use strict"; + +module.exports = [ + "abstract", + "boolean", + "break", + "byte", + "case", + "catch", + "char", + "class", + "const", + "continue", + "debugger", + "default", + "delete", + "do", + "double", + "else", + "enum", + "export", + "extends", + "false", + "final", + "finally", + "float", + "for", + "function", + "goto", + "if", + "implements", + "import", + "in", + "instanceof", + "int", + "interface", + "long", + "native", + "new", + "null", + "package", + "private", + "protected", + "public", + "return", + "short", + "static", + "super", + "switch", + "synchronized", + "this", + "throw", + "throws", + "transient", + "true", + "try", + "typeof", + "var", + "void", + "volatile", + "while", + "with" +]; diff --git a/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js b/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js new file mode 100644 index 0000000..7f116a2 --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js @@ -0,0 +1,115 @@ +/** + * @fileoverview `Map` to load rules lazily. + * @author Toru Nagashima + */ +"use strict"; + +const debug = require("debug")("eslint:rules"); + +/** @typedef {import("./types").Rule} Rule */ + +/** + * The `Map` object that loads each rule when it's accessed. + * @example + * const rules = new LazyLoadingRuleMap([ + * ["eqeqeq", () => require("eqeqeq")], + * ["semi", () => require("semi")], + * ["no-unused-vars", () => require("no-unused-vars")] + * ]); + * + * rules.get("semi"); // call `() => require("semi")` here. + * + * @extends {Map Rule>} + */ +class LazyLoadingRuleMap extends Map { + + /** + * Initialize this map. + * @param {Array<[string, function(): Rule]>} loaders The rule loaders. + */ + constructor(loaders) { + let remaining = loaders.length; + + super( + debug.enabled + ? loaders.map(([ruleId, load]) => { + let cache = null; + + return [ + ruleId, + () => { + if (!cache) { + debug("Loading rule %o (remaining=%d)", ruleId, --remaining); + cache = load(); + } + return cache; + } + ]; + }) + : loaders + ); + + // `super(...iterable)` uses `this.set()`, so disable it here. + Object.defineProperty(LazyLoadingRuleMap.prototype, "set", { + configurable: true, + value: void 0 + }); + } + + /** + * Get a rule. + * Each rule will be loaded on the first access. + * @param {string} ruleId The rule ID to get. + * @returns {Rule|undefined} The rule. + */ + get(ruleId) { + const load = super.get(ruleId); + + return load && load(); + } + + /** + * Iterate rules. + * @returns {IterableIterator} Rules. + */ + *values() { + for (const load of super.values()) { + yield load(); + } + } + + /** + * Iterate rules. + * @returns {IterableIterator<[string, Rule]>} Rules. + */ + *entries() { + for (const [ruleId, load] of super.entries()) { + yield [ruleId, load()]; + } + } + + /** + * Call a function with each rule. + * @param {Function} callbackFn The callback function. + * @param {any} [thisArg] The object to pass to `this` of the callback function. + * @returns {void} + */ + forEach(callbackFn, thisArg) { + for (const [ruleId, load] of super.entries()) { + callbackFn.call(thisArg, load(), ruleId, this); + } + } +} + +// Forbid mutation. +Object.defineProperties(LazyLoadingRuleMap.prototype, { + clear: { configurable: true, value: void 0 }, + delete: { configurable: true, value: void 0 }, + [Symbol.iterator]: { + configurable: true, + writable: true, + value: LazyLoadingRuleMap.prototype.entries + } +}); + +module.exports = { LazyLoadingRuleMap }; diff --git a/node_modules/eslint/lib/rules/utils/patterns/letters.js b/node_modules/eslint/lib/rules/utils/patterns/letters.js new file mode 100644 index 0000000..9bb2de3 --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/patterns/letters.js @@ -0,0 +1,36 @@ +/** + * @fileoverview Pattern for detecting any letter (even letters outside of ASCII). + * NOTE: This file was generated using this script in JSCS based on the Unicode 7.0.0 standard: https://github.com/jscs-dev/node-jscs/blob/f5ed14427deb7e7aac84f3056a5aab2d9f3e563e/publish/helpers/generate-patterns.js + * Do not edit this file by hand-- please use https://github.com/mathiasbynens/regenerate to regenerate the regular expression exported from this file. + * @author Kevin Partington + * @license MIT License (from JSCS). See below. + */ + +/* + * The MIT License (MIT) + * + * Copyright 2013-2016 Dulin Marat and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +"use strict"; + +module.exports = /[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/u; diff --git a/node_modules/eslint/lib/rules/utils/unicode/index.js b/node_modules/eslint/lib/rules/utils/unicode/index.js new file mode 100644 index 0000000..02eea50 --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/unicode/index.js @@ -0,0 +1,11 @@ +/** + * @author Toru Nagashima + */ +"use strict"; + +module.exports = { + isCombiningCharacter: require("./is-combining-character"), + isEmojiModifier: require("./is-emoji-modifier"), + isRegionalIndicatorSymbol: require("./is-regional-indicator-symbol"), + isSurrogatePair: require("./is-surrogate-pair") +}; diff --git a/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js b/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js new file mode 100644 index 0000000..0498b99 --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js @@ -0,0 +1,13 @@ +/** + * @author Toru Nagashima + */ +"use strict"; + +/** + * Check whether a given character is a combining mark or not. + * @param {number} codePoint The character code to check. + * @returns {boolean} `true` if the character belongs to the category, any of `Mc`, `Me`, and `Mn`. + */ +module.exports = function isCombiningCharacter(codePoint) { + return /^[\p{Mc}\p{Me}\p{Mn}]$/u.test(String.fromCodePoint(codePoint)); +}; diff --git a/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js b/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js new file mode 100644 index 0000000..1bd5f55 --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js @@ -0,0 +1,13 @@ +/** + * @author Toru Nagashima + */ +"use strict"; + +/** + * Check whether a given character is an emoji modifier. + * @param {number} code The character code to check. + * @returns {boolean} `true` if the character is an emoji modifier. + */ +module.exports = function isEmojiModifier(code) { + return code >= 0x1F3FB && code <= 0x1F3FF; +}; diff --git a/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js b/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js new file mode 100644 index 0000000..c48ed46 --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js @@ -0,0 +1,13 @@ +/** + * @author Toru Nagashima + */ +"use strict"; + +/** + * Check whether a given character is a regional indicator symbol. + * @param {number} code The character code to check. + * @returns {boolean} `true` if the character is a regional indicator symbol. + */ +module.exports = function isRegionalIndicatorSymbol(code) { + return code >= 0x1F1E6 && code <= 0x1F1FF; +}; diff --git a/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js b/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js new file mode 100644 index 0000000..b8e5c1c --- /dev/null +++ b/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js @@ -0,0 +1,14 @@ +/** + * @author Toru Nagashima + */ +"use strict"; + +/** + * Check whether given two characters are a surrogate pair. + * @param {number} lead The code of the lead character. + * @param {number} tail The code of the tail character. + * @returns {boolean} `true` if the character pair is a surrogate pair. + */ +module.exports = function isSurrogatePair(lead, tail) { + return lead >= 0xD800 && lead < 0xDC00 && tail >= 0xDC00 && tail < 0xE000; +}; diff --git a/node_modules/eslint/lib/rules/valid-jsdoc.js b/node_modules/eslint/lib/rules/valid-jsdoc.js new file mode 100644 index 0000000..25be39f --- /dev/null +++ b/node_modules/eslint/lib/rules/valid-jsdoc.js @@ -0,0 +1,516 @@ +/** + * @fileoverview Validates JSDoc comments are syntactically correct + * @author Nicholas C. Zakas + * @deprecated in ESLint v5.10.0 + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const doctrine = require("doctrine"); + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Enforce valid JSDoc comments", + recommended: false, + url: "https://eslint.org/docs/rules/valid-jsdoc" + }, + + schema: [ + { + type: "object", + properties: { + prefer: { + type: "object", + additionalProperties: { + type: "string" + } + }, + preferType: { + type: "object", + additionalProperties: { + type: "string" + } + }, + requireReturn: { + type: "boolean", + default: true + }, + requireParamDescription: { + type: "boolean", + default: true + }, + requireReturnDescription: { + type: "boolean", + default: true + }, + matchDescription: { + type: "string" + }, + requireReturnType: { + type: "boolean", + default: true + }, + requireParamType: { + type: "boolean", + default: true + } + }, + additionalProperties: false + } + ], + + fixable: "code", + messages: { + unexpectedTag: "Unexpected @{{title}} tag; function has no return statement.", + expected: "Expected JSDoc for '{{name}}' but found '{{jsdocName}}'.", + use: "Use @{{name}} instead.", + useType: "Use '{{expectedTypeName}}' instead of '{{currentTypeName}}'.", + syntaxError: "JSDoc syntax error.", + missingBrace: "JSDoc type missing brace.", + missingParamDesc: "Missing JSDoc parameter description for '{{name}}'.", + missingParamType: "Missing JSDoc parameter type for '{{name}}'.", + missingReturnType: "Missing JSDoc return type.", + missingReturnDesc: "Missing JSDoc return description.", + missingReturn: "Missing JSDoc @{{returns}} for function.", + missingParam: "Missing JSDoc for parameter '{{name}}'.", + duplicateParam: "Duplicate JSDoc parameter '{{name}}'.", + unsatisfiedDesc: "JSDoc description does not satisfy the regex pattern." + }, + + deprecated: true, + replacedBy: [] + }, + + create(context) { + + const options = context.options[0] || {}, + prefer = options.prefer || {}, + sourceCode = context.getSourceCode(), + + // these both default to true, so you have to explicitly make them false + requireReturn = options.requireReturn !== false, + requireParamDescription = options.requireParamDescription !== false, + requireReturnDescription = options.requireReturnDescription !== false, + requireReturnType = options.requireReturnType !== false, + requireParamType = options.requireParamType !== false, + preferType = options.preferType || {}, + checkPreferType = Object.keys(preferType).length !== 0; + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + // Using a stack to store if a function returns or not (handling nested functions) + const fns = []; + + /** + * Check if node type is a Class + * @param {ASTNode} node node to check. + * @returns {boolean} True is its a class + * @private + */ + function isTypeClass(node) { + return node.type === "ClassExpression" || node.type === "ClassDeclaration"; + } + + /** + * When parsing a new function, store it in our function stack. + * @param {ASTNode} node A function node to check. + * @returns {void} + * @private + */ + function startFunction(node) { + fns.push({ + returnPresent: (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") || + isTypeClass(node) || node.async + }); + } + + /** + * Indicate that return has been found in the current function. + * @param {ASTNode} node The return node. + * @returns {void} + * @private + */ + function addReturn(node) { + const functionState = fns[fns.length - 1]; + + if (functionState && node.argument !== null) { + functionState.returnPresent = true; + } + } + + /** + * Check if return tag type is void or undefined + * @param {Object} tag JSDoc tag + * @returns {boolean} True if its of type void or undefined + * @private + */ + function isValidReturnType(tag) { + return tag.type === null || tag.type.name === "void" || tag.type.type === "UndefinedLiteral"; + } + + /** + * Check if type should be validated based on some exceptions + * @param {Object} type JSDoc tag + * @returns {boolean} True if it can be validated + * @private + */ + function canTypeBeValidated(type) { + return type !== "UndefinedLiteral" && // {undefined} as there is no name property available. + type !== "NullLiteral" && // {null} + type !== "NullableLiteral" && // {?} + type !== "FunctionType" && // {function(a)} + type !== "AllLiteral"; // {*} + } + + /** + * Extract the current and expected type based on the input type object + * @param {Object} type JSDoc tag + * @returns {{currentType: Doctrine.Type, expectedTypeName: string}} The current type annotation and + * the expected name of the annotation + * @private + */ + function getCurrentExpectedTypes(type) { + let currentType; + + if (type.name) { + currentType = type; + } else if (type.expression) { + currentType = type.expression; + } + + return { + currentType, + expectedTypeName: currentType && preferType[currentType.name] + }; + } + + /** + * Gets the location of a JSDoc node in a file + * @param {Token} jsdocComment The comment that this node is parsed from + * @param {{range: number[]}} parsedJsdocNode A tag or other node which was parsed from this comment + * @returns {{start: SourceLocation, end: SourceLocation}} The 0-based source location for the tag + */ + function getAbsoluteRange(jsdocComment, parsedJsdocNode) { + return { + start: sourceCode.getLocFromIndex(jsdocComment.range[0] + 2 + parsedJsdocNode.range[0]), + end: sourceCode.getLocFromIndex(jsdocComment.range[0] + 2 + parsedJsdocNode.range[1]) + }; + } + + /** + * Validate type for a given JSDoc node + * @param {Object} jsdocNode JSDoc node + * @param {Object} type JSDoc tag + * @returns {void} + * @private + */ + function validateType(jsdocNode, type) { + if (!type || !canTypeBeValidated(type.type)) { + return; + } + + const typesToCheck = []; + let elements = []; + + switch (type.type) { + case "TypeApplication": // {Array.} + elements = type.applications[0].type === "UnionType" ? type.applications[0].elements : type.applications; + typesToCheck.push(getCurrentExpectedTypes(type)); + break; + case "RecordType": // {{20:String}} + elements = type.fields; + break; + case "UnionType": // {String|number|Test} + case "ArrayType": // {[String, number, Test]} + elements = type.elements; + break; + case "FieldType": // Array.<{count: number, votes: number}> + if (type.value) { + typesToCheck.push(getCurrentExpectedTypes(type.value)); + } + break; + default: + typesToCheck.push(getCurrentExpectedTypes(type)); + } + + elements.forEach(validateType.bind(null, jsdocNode)); + + typesToCheck.forEach(typeToCheck => { + if (typeToCheck.expectedTypeName && + typeToCheck.expectedTypeName !== typeToCheck.currentType.name) { + context.report({ + node: jsdocNode, + messageId: "useType", + loc: getAbsoluteRange(jsdocNode, typeToCheck.currentType), + data: { + currentTypeName: typeToCheck.currentType.name, + expectedTypeName: typeToCheck.expectedTypeName + }, + fix(fixer) { + return fixer.replaceTextRange( + typeToCheck.currentType.range.map(indexInComment => jsdocNode.range[0] + 2 + indexInComment), + typeToCheck.expectedTypeName + ); + } + }); + } + }); + } + + /** + * Validate the JSDoc node and output warnings if anything is wrong. + * @param {ASTNode} node The AST node to check. + * @returns {void} + * @private + */ + function checkJSDoc(node) { + const jsdocNode = sourceCode.getJSDocComment(node), + functionData = fns.pop(), + paramTagsByName = Object.create(null), + paramTags = []; + let hasReturns = false, + returnsTag, + hasConstructor = false, + isInterface = false, + isOverride = false, + isAbstract = false; + + // make sure only to validate JSDoc comments + if (jsdocNode) { + let jsdoc; + + try { + jsdoc = doctrine.parse(jsdocNode.value, { + strict: true, + unwrap: true, + sloppy: true, + range: true + }); + } catch (ex) { + + if (/braces/iu.test(ex.message)) { + context.report({ node: jsdocNode, messageId: "missingBrace" }); + } else { + context.report({ node: jsdocNode, messageId: "syntaxError" }); + } + + return; + } + + jsdoc.tags.forEach(tag => { + + switch (tag.title.toLowerCase()) { + + case "param": + case "arg": + case "argument": + paramTags.push(tag); + break; + + case "return": + case "returns": + hasReturns = true; + returnsTag = tag; + break; + + case "constructor": + case "class": + hasConstructor = true; + break; + + case "override": + case "inheritdoc": + isOverride = true; + break; + + case "abstract": + case "virtual": + isAbstract = true; + break; + + case "interface": + isInterface = true; + break; + + // no default + } + + // check tag preferences + if (Object.prototype.hasOwnProperty.call(prefer, tag.title) && tag.title !== prefer[tag.title]) { + const entireTagRange = getAbsoluteRange(jsdocNode, tag); + + context.report({ + node: jsdocNode, + messageId: "use", + loc: { + start: entireTagRange.start, + end: { + line: entireTagRange.start.line, + column: entireTagRange.start.column + `@${tag.title}`.length + } + }, + data: { name: prefer[tag.title] }, + fix(fixer) { + return fixer.replaceTextRange( + [ + jsdocNode.range[0] + tag.range[0] + 3, + jsdocNode.range[0] + tag.range[0] + tag.title.length + 3 + ], + prefer[tag.title] + ); + } + }); + } + + // validate the types + if (checkPreferType && tag.type) { + validateType(jsdocNode, tag.type); + } + }); + + paramTags.forEach(param => { + if (requireParamType && !param.type) { + context.report({ + node: jsdocNode, + messageId: "missingParamType", + loc: getAbsoluteRange(jsdocNode, param), + data: { name: param.name } + }); + } + if (!param.description && requireParamDescription) { + context.report({ + node: jsdocNode, + messageId: "missingParamDesc", + loc: getAbsoluteRange(jsdocNode, param), + data: { name: param.name } + }); + } + if (paramTagsByName[param.name]) { + context.report({ + node: jsdocNode, + messageId: "duplicateParam", + loc: getAbsoluteRange(jsdocNode, param), + data: { name: param.name } + }); + } else if (!param.name.includes(".")) { + paramTagsByName[param.name] = param; + } + }); + + if (hasReturns) { + if (!requireReturn && !functionData.returnPresent && (returnsTag.type === null || !isValidReturnType(returnsTag)) && !isAbstract) { + context.report({ + node: jsdocNode, + messageId: "unexpectedTag", + loc: getAbsoluteRange(jsdocNode, returnsTag), + data: { + title: returnsTag.title + } + }); + } else { + if (requireReturnType && !returnsTag.type) { + context.report({ node: jsdocNode, messageId: "missingReturnType" }); + } + + if (!isValidReturnType(returnsTag) && !returnsTag.description && requireReturnDescription) { + context.report({ node: jsdocNode, messageId: "missingReturnDesc" }); + } + } + } + + // check for functions missing @returns + if (!isOverride && !hasReturns && !hasConstructor && !isInterface && + node.parent.kind !== "get" && node.parent.kind !== "constructor" && + node.parent.kind !== "set" && !isTypeClass(node)) { + if (requireReturn || (functionData.returnPresent && !node.async)) { + context.report({ + node: jsdocNode, + messageId: "missingReturn", + data: { + returns: prefer.returns || "returns" + } + }); + } + } + + // check the parameters + const jsdocParamNames = Object.keys(paramTagsByName); + + if (node.params) { + node.params.forEach((param, paramsIndex) => { + const bindingParam = param.type === "AssignmentPattern" + ? param.left + : param; + + // TODO(nzakas): Figure out logical things to do with destructured, default, rest params + if (bindingParam.type === "Identifier") { + const name = bindingParam.name; + + if (jsdocParamNames[paramsIndex] && (name !== jsdocParamNames[paramsIndex])) { + context.report({ + node: jsdocNode, + messageId: "expected", + loc: getAbsoluteRange(jsdocNode, paramTagsByName[jsdocParamNames[paramsIndex]]), + data: { + name, + jsdocName: jsdocParamNames[paramsIndex] + } + }); + } else if (!paramTagsByName[name] && !isOverride) { + context.report({ + node: jsdocNode, + messageId: "missingParam", + data: { + name + } + }); + } + } + }); + } + + if (options.matchDescription) { + const regex = new RegExp(options.matchDescription, "u"); + + if (!regex.test(jsdoc.description)) { + context.report({ node: jsdocNode, messageId: "unsatisfiedDesc" }); + } + } + + } + + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + ArrowFunctionExpression: startFunction, + FunctionExpression: startFunction, + FunctionDeclaration: startFunction, + ClassExpression: startFunction, + ClassDeclaration: startFunction, + "ArrowFunctionExpression:exit": checkJSDoc, + "FunctionExpression:exit": checkJSDoc, + "FunctionDeclaration:exit": checkJSDoc, + "ClassExpression:exit": checkJSDoc, + "ClassDeclaration:exit": checkJSDoc, + ReturnStatement: addReturn + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/valid-typeof.js b/node_modules/eslint/lib/rules/valid-typeof.js new file mode 100644 index 0000000..908d572 --- /dev/null +++ b/node_modules/eslint/lib/rules/valid-typeof.js @@ -0,0 +1,121 @@ +/** + * @fileoverview Ensures that the results of typeof are compared against a valid string + * @author Ian Christian Myers + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + + docs: { + description: "Enforce comparing `typeof` expressions against valid strings", + recommended: true, + url: "https://eslint.org/docs/rules/valid-typeof" + }, + + hasSuggestions: true, + + schema: [ + { + type: "object", + properties: { + requireStringLiterals: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + messages: { + invalidValue: "Invalid typeof comparison value.", + notString: "Typeof comparisons should be to string literals.", + suggestString: 'Use `"{{type}}"` instead of `{{type}}`.' + } + }, + + create(context) { + + const VALID_TYPES = new Set(["symbol", "undefined", "object", "boolean", "number", "string", "function", "bigint"]), + OPERATORS = new Set(["==", "===", "!=", "!=="]); + + const requireStringLiterals = context.options[0] && context.options[0].requireStringLiterals; + + let globalScope; + + /** + * Checks whether the given node represents a reference to a global variable that is not declared in the source code. + * These identifiers will be allowed, as it is assumed that user has no control over the names of external global variables. + * @param {ASTNode} node `Identifier` node to check. + * @returns {boolean} `true` if the node is a reference to a global variable. + */ + function isReferenceToGlobalVariable(node) { + const variable = globalScope.set.get(node.name); + + return variable && variable.defs.length === 0 && + variable.references.some(ref => ref.identifier === node); + } + + /** + * Determines whether a node is a typeof expression. + * @param {ASTNode} node The node + * @returns {boolean} `true` if the node is a typeof expression + */ + function isTypeofExpression(node) { + return node.type === "UnaryExpression" && node.operator === "typeof"; + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + Program() { + globalScope = context.getScope(); + }, + + UnaryExpression(node) { + if (isTypeofExpression(node)) { + const parent = context.getAncestors().pop(); + + if (parent.type === "BinaryExpression" && OPERATORS.has(parent.operator)) { + const sibling = parent.left === node ? parent.right : parent.left; + + if (sibling.type === "Literal" || sibling.type === "TemplateLiteral" && !sibling.expressions.length) { + const value = sibling.type === "Literal" ? sibling.value : sibling.quasis[0].value.cooked; + + if (!VALID_TYPES.has(value)) { + context.report({ node: sibling, messageId: "invalidValue" }); + } + } else if (sibling.type === "Identifier" && sibling.name === "undefined" && isReferenceToGlobalVariable(sibling)) { + context.report({ + node: sibling, + messageId: requireStringLiterals ? "notString" : "invalidValue", + suggest: [ + { + messageId: "suggestString", + data: { type: "undefined" }, + fix(fixer) { + return fixer.replaceText(sibling, '"undefined"'); + } + } + ] + }); + } else if (requireStringLiterals && !isTypeofExpression(sibling)) { + context.report({ node: sibling, messageId: "notString" }); + } + } + } + } + + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/vars-on-top.js b/node_modules/eslint/lib/rules/vars-on-top.js new file mode 100644 index 0000000..99e2b4a --- /dev/null +++ b/node_modules/eslint/lib/rules/vars-on-top.js @@ -0,0 +1,157 @@ +/** + * @fileoverview Rule to enforce var declarations are only at the top of a function. + * @author Danny Fritz + * @author Gyandeep Singh + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Require `var` declarations be placed at the top of their containing scope", + recommended: false, + url: "https://eslint.org/docs/rules/vars-on-top" + }, + + schema: [], + messages: { + top: "All 'var' declarations must be at the top of the function scope." + } + }, + + create(context) { + + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + + /** + * Has AST suggesting a directive. + * @param {ASTNode} node any node + * @returns {boolean} whether the given node structurally represents a directive + */ + function looksLikeDirective(node) { + return node.type === "ExpressionStatement" && + node.expression.type === "Literal" && typeof node.expression.value === "string"; + } + + /** + * Check to see if its a ES6 import declaration + * @param {ASTNode} node any node + * @returns {boolean} whether the given node represents a import declaration + */ + function looksLikeImport(node) { + return node.type === "ImportDeclaration" || node.type === "ImportSpecifier" || + node.type === "ImportDefaultSpecifier" || node.type === "ImportNamespaceSpecifier"; + } + + /** + * Checks whether a given node is a variable declaration or not. + * @param {ASTNode} node any node + * @returns {boolean} `true` if the node is a variable declaration. + */ + function isVariableDeclaration(node) { + return ( + node.type === "VariableDeclaration" || + ( + node.type === "ExportNamedDeclaration" && + node.declaration && + node.declaration.type === "VariableDeclaration" + ) + ); + } + + /** + * Checks whether this variable is on top of the block body + * @param {ASTNode} node The node to check + * @param {ASTNode[]} statements collection of ASTNodes for the parent node block + * @returns {boolean} True if var is on top otherwise false + */ + function isVarOnTop(node, statements) { + const l = statements.length; + let i = 0; + + // Skip over directives and imports. Static blocks don't have either. + if (node.parent.type !== "StaticBlock") { + for (; i < l; ++i) { + if (!looksLikeDirective(statements[i]) && !looksLikeImport(statements[i])) { + break; + } + } + } + + for (; i < l; ++i) { + if (!isVariableDeclaration(statements[i])) { + return false; + } + if (statements[i] === node) { + return true; + } + } + + return false; + } + + /** + * Checks whether variable is on top at the global level + * @param {ASTNode} node The node to check + * @param {ASTNode} parent Parent of the node + * @returns {void} + */ + function globalVarCheck(node, parent) { + if (!isVarOnTop(node, parent.body)) { + context.report({ node, messageId: "top" }); + } + } + + /** + * Checks whether variable is on top at functional block scope level + * @param {ASTNode} node The node to check + * @returns {void} + */ + function blockScopeVarCheck(node) { + const { parent } = node; + + if ( + parent.type === "BlockStatement" && + /Function/u.test(parent.parent.type) && + isVarOnTop(node, parent.body) + ) { + return; + } + + if ( + parent.type === "StaticBlock" && + isVarOnTop(node, parent.body) + ) { + return; + } + + context.report({ node, messageId: "top" }); + } + + //-------------------------------------------------------------------------- + // Public API + //-------------------------------------------------------------------------- + + return { + "VariableDeclaration[kind='var']"(node) { + if (node.parent.type === "ExportNamedDeclaration") { + globalVarCheck(node.parent, node.parent.parent); + } else if (node.parent.type === "Program") { + globalVarCheck(node, node.parent); + } else { + blockScopeVarCheck(node); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/wrap-iife.js b/node_modules/eslint/lib/rules/wrap-iife.js new file mode 100644 index 0000000..4c2c927 --- /dev/null +++ b/node_modules/eslint/lib/rules/wrap-iife.js @@ -0,0 +1,204 @@ +/** + * @fileoverview Rule to flag when IIFE is not wrapped in parens + * @author Ilya Volodin + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); +const eslintUtils = require("eslint-utils"); + +//---------------------------------------------------------------------- +// Helpers +//---------------------------------------------------------------------- + +/** + * Check if the given node is callee of a `NewExpression` node + * @param {ASTNode} node node to check + * @returns {boolean} True if the node is callee of a `NewExpression` node + * @private + */ +function isCalleeOfNewExpression(node) { + const maybeCallee = node.parent.type === "ChainExpression" + ? node.parent + : node; + + return ( + maybeCallee.parent.type === "NewExpression" && + maybeCallee.parent.callee === maybeCallee + ); +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require parentheses around immediate `function` invocations", + recommended: false, + url: "https://eslint.org/docs/rules/wrap-iife" + }, + + schema: [ + { + enum: ["outside", "inside", "any"] + }, + { + type: "object", + properties: { + functionPrototypeMethods: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + fixable: "code", + messages: { + wrapInvocation: "Wrap an immediate function invocation in parentheses.", + wrapExpression: "Wrap only the function expression in parens.", + moveInvocation: "Move the invocation into the parens that contain the function." + } + }, + + create(context) { + + const style = context.options[0] || "outside"; + const includeFunctionPrototypeMethods = context.options[1] && context.options[1].functionPrototypeMethods; + + const sourceCode = context.getSourceCode(); + + /** + * Check if the node is wrapped in any (). All parens count: grouping parens and parens for constructs such as if() + * @param {ASTNode} node node to evaluate + * @returns {boolean} True if it is wrapped in any parens + * @private + */ + function isWrappedInAnyParens(node) { + return astUtils.isParenthesised(sourceCode, node); + } + + /** + * Check if the node is wrapped in grouping (). Parens for constructs such as if() don't count + * @param {ASTNode} node node to evaluate + * @returns {boolean} True if it is wrapped in grouping parens + * @private + */ + function isWrappedInGroupingParens(node) { + return eslintUtils.isParenthesized(1, node, sourceCode); + } + + /** + * Get the function node from an IIFE + * @param {ASTNode} node node to evaluate + * @returns {ASTNode} node that is the function expression of the given IIFE, or null if none exist + */ + function getFunctionNodeFromIIFE(node) { + const callee = astUtils.skipChainExpression(node.callee); + + if (callee.type === "FunctionExpression") { + return callee; + } + + if (includeFunctionPrototypeMethods && + callee.type === "MemberExpression" && + callee.object.type === "FunctionExpression" && + (astUtils.getStaticPropertyName(callee) === "call" || astUtils.getStaticPropertyName(callee) === "apply") + ) { + return callee.object; + } + + return null; + } + + + return { + CallExpression(node) { + const innerNode = getFunctionNodeFromIIFE(node); + + if (!innerNode) { + return; + } + + const isCallExpressionWrapped = isWrappedInAnyParens(node), + isFunctionExpressionWrapped = isWrappedInAnyParens(innerNode); + + if (!isCallExpressionWrapped && !isFunctionExpressionWrapped) { + context.report({ + node, + messageId: "wrapInvocation", + fix(fixer) { + const nodeToSurround = style === "inside" ? innerNode : node; + + return fixer.replaceText(nodeToSurround, `(${sourceCode.getText(nodeToSurround)})`); + } + }); + } else if (style === "inside" && !isFunctionExpressionWrapped) { + context.report({ + node, + messageId: "wrapExpression", + fix(fixer) { + + // The outer call expression will always be wrapped at this point. + + if (isWrappedInGroupingParens(node) && !isCalleeOfNewExpression(node)) { + + /* + * Parenthesize the function expression and remove unnecessary grouping parens around the call expression. + * Replace the range between the end of the function expression and the end of the call expression. + * for example, in `(function(foo) {}(bar))`, the range `(bar))` should get replaced with `)(bar)`. + */ + + const parenAfter = sourceCode.getTokenAfter(node); + + return fixer.replaceTextRange( + [innerNode.range[1], parenAfter.range[1]], + `)${sourceCode.getText().slice(innerNode.range[1], parenAfter.range[0])}` + ); + } + + /* + * Call expression is wrapped in mandatory parens such as if(), or in necessary grouping parens. + * These parens cannot be removed, so just parenthesize the function expression. + */ + + return fixer.replaceText(innerNode, `(${sourceCode.getText(innerNode)})`); + } + }); + } else if (style === "outside" && !isCallExpressionWrapped) { + context.report({ + node, + messageId: "moveInvocation", + fix(fixer) { + + /* + * The inner function expression will always be wrapped at this point. + * It's only necessary to replace the range between the end of the function expression + * and the call expression. For example, in `(function(foo) {})(bar)`, the range `)(bar)` + * should get replaced with `(bar))`. + */ + const parenAfter = sourceCode.getTokenAfter(innerNode); + + return fixer.replaceTextRange( + [parenAfter.range[0], node.range[1]], + `${sourceCode.getText().slice(parenAfter.range[1], node.range[1])})` + ); + } + }); + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/wrap-regex.js b/node_modules/eslint/lib/rules/wrap-regex.js new file mode 100644 index 0000000..b24d360 --- /dev/null +++ b/node_modules/eslint/lib/rules/wrap-regex.js @@ -0,0 +1,59 @@ +/** + * @fileoverview Rule to flag when regex literals are not wrapped in parens + * @author Matt DuVall + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require parenthesis around regex literals", + recommended: false, + url: "https://eslint.org/docs/rules/wrap-regex" + }, + + schema: [], + fixable: "code", + + messages: { + requireParens: "Wrap the regexp literal in parens to disambiguate the slash." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + return { + + Literal(node) { + const token = sourceCode.getFirstToken(node), + nodeType = token.type; + + if (nodeType === "RegularExpression") { + const beforeToken = sourceCode.getTokenBefore(node); + const afterToken = sourceCode.getTokenAfter(node); + const ancestors = context.getAncestors(); + const grandparent = ancestors[ancestors.length - 1]; + + if (grandparent.type === "MemberExpression" && grandparent.object === node && + !(beforeToken && beforeToken.value === "(" && afterToken && afterToken.value === ")")) { + context.report({ + node, + messageId: "requireParens", + fix: fixer => fixer.replaceText(node, `(${sourceCode.getText(node)})`) + }); + } + } + } + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/yield-star-spacing.js b/node_modules/eslint/lib/rules/yield-star-spacing.js new file mode 100644 index 0000000..c2e07aa --- /dev/null +++ b/node_modules/eslint/lib/rules/yield-star-spacing.js @@ -0,0 +1,127 @@ +/** + * @fileoverview Rule to check the spacing around the * in yield* expressions. + * @author Bryan Smith + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "layout", + + docs: { + description: "Require or disallow spacing around the `*` in `yield*` expressions", + recommended: false, + url: "https://eslint.org/docs/rules/yield-star-spacing" + }, + + fixable: "whitespace", + + schema: [ + { + oneOf: [ + { + enum: ["before", "after", "both", "neither"] + }, + { + type: "object", + properties: { + before: { type: "boolean" }, + after: { type: "boolean" } + }, + additionalProperties: false + } + ] + } + ], + messages: { + missingBefore: "Missing space before *.", + missingAfter: "Missing space after *.", + unexpectedBefore: "Unexpected space before *.", + unexpectedAfter: "Unexpected space after *." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + const mode = (function(option) { + if (!option || typeof option === "string") { + return { + before: { before: true, after: false }, + after: { before: false, after: true }, + both: { before: true, after: true }, + neither: { before: false, after: false } + }[option || "after"]; + } + return option; + }(context.options[0])); + + /** + * Checks the spacing between two tokens before or after the star token. + * @param {string} side Either "before" or "after". + * @param {Token} leftToken `function` keyword token if side is "before", or + * star token if side is "after". + * @param {Token} rightToken Star token if side is "before", or identifier + * token if side is "after". + * @returns {void} + */ + function checkSpacing(side, leftToken, rightToken) { + if (sourceCode.isSpaceBetweenTokens(leftToken, rightToken) !== mode[side]) { + const after = leftToken.value === "*"; + const spaceRequired = mode[side]; + const node = after ? leftToken : rightToken; + let messageId = ""; + + if (spaceRequired) { + messageId = side === "before" ? "missingBefore" : "missingAfter"; + } else { + messageId = side === "before" ? "unexpectedBefore" : "unexpectedAfter"; + } + + context.report({ + node, + messageId, + fix(fixer) { + if (spaceRequired) { + if (after) { + return fixer.insertTextAfter(node, " "); + } + return fixer.insertTextBefore(node, " "); + } + return fixer.removeRange([leftToken.range[1], rightToken.range[0]]); + } + }); + } + } + + /** + * Enforces the spacing around the star if node is a yield* expression. + * @param {ASTNode} node A yield expression node. + * @returns {void} + */ + function checkExpression(node) { + if (!node.delegate) { + return; + } + + const tokens = sourceCode.getFirstTokens(node, 3); + const yieldToken = tokens[0]; + const starToken = tokens[1]; + const nextToken = tokens[2]; + + checkSpacing("before", yieldToken, starToken); + checkSpacing("after", starToken, nextToken); + } + + return { + YieldExpression: checkExpression + }; + + } +}; diff --git a/node_modules/eslint/lib/rules/yoda.js b/node_modules/eslint/lib/rules/yoda.js new file mode 100644 index 0000000..eb9a32a --- /dev/null +++ b/node_modules/eslint/lib/rules/yoda.js @@ -0,0 +1,362 @@ +/** + * @fileoverview Rule to require or disallow yoda comparisons + * @author Nicholas C. Zakas + */ +"use strict"; + +//-------------------------------------------------------------------------- +// Requirements +//-------------------------------------------------------------------------- + +const astUtils = require("./utils/ast-utils"); + +//-------------------------------------------------------------------------- +// Helpers +//-------------------------------------------------------------------------- + +/** + * Determines whether an operator is a comparison operator. + * @param {string} operator The operator to check. + * @returns {boolean} Whether or not it is a comparison operator. + */ +function isComparisonOperator(operator) { + return /^(==|===|!=|!==|<|>|<=|>=)$/u.test(operator); +} + +/** + * Determines whether an operator is an equality operator. + * @param {string} operator The operator to check. + * @returns {boolean} Whether or not it is an equality operator. + */ +function isEqualityOperator(operator) { + return /^(==|===)$/u.test(operator); +} + +/** + * Determines whether an operator is one used in a range test. + * Allowed operators are `<` and `<=`. + * @param {string} operator The operator to check. + * @returns {boolean} Whether the operator is used in range tests. + */ +function isRangeTestOperator(operator) { + return ["<", "<="].includes(operator); +} + +/** + * Determines whether a non-Literal node is a negative number that should be + * treated as if it were a single Literal node. + * @param {ASTNode} node Node to test. + * @returns {boolean} True if the node is a negative number that looks like a + * real literal and should be treated as such. + */ +function isNegativeNumericLiteral(node) { + return ( + node.type === "UnaryExpression" && + node.operator === "-" && + node.prefix && + astUtils.isNumericLiteral(node.argument) + ); +} + +/** + * Determines whether a node is a Template Literal which can be determined statically. + * @param {ASTNode} node Node to test + * @returns {boolean} True if the node is a Template Literal without expression. + */ +function isStaticTemplateLiteral(node) { + return node.type === "TemplateLiteral" && node.expressions.length === 0; +} + +/** + * Determines whether a non-Literal node should be treated as a single Literal node. + * @param {ASTNode} node Node to test + * @returns {boolean} True if the node should be treated as a single Literal node. + */ +function looksLikeLiteral(node) { + return isNegativeNumericLiteral(node) || isStaticTemplateLiteral(node); +} + +/** + * Attempts to derive a Literal node from nodes that are treated like literals. + * @param {ASTNode} node Node to normalize. + * @returns {ASTNode} One of the following options. + * 1. The original node if the node is already a Literal + * 2. A normalized Literal node with the negative number as the value if the + * node represents a negative number literal. + * 3. A normalized Literal node with the string as the value if the node is + * a Template Literal without expression. + * 4. Otherwise `null`. + */ +function getNormalizedLiteral(node) { + if (node.type === "Literal") { + return node; + } + + if (isNegativeNumericLiteral(node)) { + return { + type: "Literal", + value: -node.argument.value, + raw: `-${node.argument.value}` + }; + } + + if (isStaticTemplateLiteral(node)) { + return { + type: "Literal", + value: node.quasis[0].value.cooked, + raw: node.quasis[0].value.raw + }; + } + + return null; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: 'Require or disallow "Yoda" conditions', + recommended: false, + url: "https://eslint.org/docs/rules/yoda" + }, + + schema: [ + { + enum: ["always", "never"] + }, + { + type: "object", + properties: { + exceptRange: { + type: "boolean", + default: false + }, + onlyEquality: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + + fixable: "code", + messages: { + expected: + "Expected literal to be on the {{expectedSide}} side of {{operator}}." + } + }, + + create(context) { + + // Default to "never" (!always) if no option + const always = context.options[0] === "always"; + const exceptRange = + context.options[1] && context.options[1].exceptRange; + const onlyEquality = + context.options[1] && context.options[1].onlyEquality; + + const sourceCode = context.getSourceCode(); + + /** + * Determines whether node represents a range test. + * A range test is a "between" test like `(0 <= x && x < 1)` or an "outside" + * test like `(x < 0 || 1 <= x)`. It must be wrapped in parentheses, and + * both operators must be `<` or `<=`. Finally, the literal on the left side + * must be less than or equal to the literal on the right side so that the + * test makes any sense. + * @param {ASTNode} node LogicalExpression node to test. + * @returns {boolean} Whether node is a range test. + */ + function isRangeTest(node) { + const left = node.left, + right = node.right; + + /** + * Determines whether node is of the form `0 <= x && x < 1`. + * @returns {boolean} Whether node is a "between" range test. + */ + function isBetweenTest() { + if (node.operator === "&&" && astUtils.isSameReference(left.right, right.left)) { + const leftLiteral = getNormalizedLiteral(left.left); + const rightLiteral = getNormalizedLiteral(right.right); + + if (leftLiteral === null && rightLiteral === null) { + return false; + } + + if (rightLiteral === null || leftLiteral === null) { + return true; + } + + if (leftLiteral.value <= rightLiteral.value) { + return true; + } + } + return false; + } + + /** + * Determines whether node is of the form `x < 0 || 1 <= x`. + * @returns {boolean} Whether node is an "outside" range test. + */ + function isOutsideTest() { + if (node.operator === "||" && astUtils.isSameReference(left.left, right.right)) { + const leftLiteral = getNormalizedLiteral(left.right); + const rightLiteral = getNormalizedLiteral(right.left); + + if (leftLiteral === null && rightLiteral === null) { + return false; + } + + if (rightLiteral === null || leftLiteral === null) { + return true; + } + + if (leftLiteral.value <= rightLiteral.value) { + return true; + } + } + + return false; + } + + /** + * Determines whether node is wrapped in parentheses. + * @returns {boolean} Whether node is preceded immediately by an open + * paren token and followed immediately by a close + * paren token. + */ + function isParenWrapped() { + return astUtils.isParenthesised(sourceCode, node); + } + + return ( + node.type === "LogicalExpression" && + left.type === "BinaryExpression" && + right.type === "BinaryExpression" && + isRangeTestOperator(left.operator) && + isRangeTestOperator(right.operator) && + (isBetweenTest() || isOutsideTest()) && + isParenWrapped() + ); + } + + const OPERATOR_FLIP_MAP = { + "===": "===", + "!==": "!==", + "==": "==", + "!=": "!=", + "<": ">", + ">": "<", + "<=": ">=", + ">=": "<=" + }; + + /** + * Returns a string representation of a BinaryExpression node with its sides/operator flipped around. + * @param {ASTNode} node The BinaryExpression node + * @returns {string} A string representation of the node with the sides and operator flipped + */ + function getFlippedString(node) { + const operatorToken = sourceCode.getFirstTokenBetween( + node.left, + node.right, + token => token.value === node.operator + ); + const lastLeftToken = sourceCode.getTokenBefore(operatorToken); + const firstRightToken = sourceCode.getTokenAfter(operatorToken); + + const source = sourceCode.getText(); + + const leftText = source.slice( + node.range[0], + lastLeftToken.range[1] + ); + const textBeforeOperator = source.slice( + lastLeftToken.range[1], + operatorToken.range[0] + ); + const textAfterOperator = source.slice( + operatorToken.range[1], + firstRightToken.range[0] + ); + const rightText = source.slice( + firstRightToken.range[0], + node.range[1] + ); + + const tokenBefore = sourceCode.getTokenBefore(node); + const tokenAfter = sourceCode.getTokenAfter(node); + let prefix = ""; + let suffix = ""; + + if ( + tokenBefore && + tokenBefore.range[1] === node.range[0] && + !astUtils.canTokensBeAdjacent(tokenBefore, firstRightToken) + ) { + prefix = " "; + } + + if ( + tokenAfter && + node.range[1] === tokenAfter.range[0] && + !astUtils.canTokensBeAdjacent(lastLeftToken, tokenAfter) + ) { + suffix = " "; + } + + return ( + prefix + + rightText + + textBeforeOperator + + OPERATOR_FLIP_MAP[operatorToken.value] + + textAfterOperator + + leftText + + suffix + ); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + BinaryExpression(node) { + const expectedLiteral = always ? node.left : node.right; + const expectedNonLiteral = always ? node.right : node.left; + + // If `expectedLiteral` is not a literal, and `expectedNonLiteral` is a literal, raise an error. + if ( + (expectedNonLiteral.type === "Literal" || + looksLikeLiteral(expectedNonLiteral)) && + !( + expectedLiteral.type === "Literal" || + looksLikeLiteral(expectedLiteral) + ) && + !(!isEqualityOperator(node.operator) && onlyEquality) && + isComparisonOperator(node.operator) && + !(exceptRange && isRangeTest(context.getAncestors().pop())) + ) { + context.report({ + node, + messageId: "expected", + data: { + operator: node.operator, + expectedSide: always ? "left" : "right" + }, + fix: fixer => + fixer.replaceText(node, getFlippedString(node)) + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/shared/ajv.js b/node_modules/eslint/lib/shared/ajv.js new file mode 100644 index 0000000..f4f6a62 --- /dev/null +++ b/node_modules/eslint/lib/shared/ajv.js @@ -0,0 +1,34 @@ +/** + * @fileoverview The instance of Ajv validator. + * @author Evgeny Poberezkin + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const Ajv = require("ajv"), + metaSchema = require("ajv/lib/refs/json-schema-draft-04.json"); + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = (additionalOptions = {}) => { + const ajv = new Ajv({ + meta: false, + useDefaults: true, + validateSchema: false, + missingRefs: "ignore", + verbose: true, + schemaId: "auto", + ...additionalOptions + }); + + ajv.addMetaSchema(metaSchema); + // eslint-disable-next-line no-underscore-dangle -- Ajv's API + ajv._opts.defaultMeta = metaSchema.id; + + return ajv; +}; diff --git a/node_modules/eslint/lib/shared/ast-utils.js b/node_modules/eslint/lib/shared/ast-utils.js new file mode 100644 index 0000000..4ebd49c --- /dev/null +++ b/node_modules/eslint/lib/shared/ast-utils.js @@ -0,0 +1,29 @@ +/** + * @fileoverview Common utils for AST. + * + * This file contains only shared items for core and rules. + * If you make a utility for rules, please see `../rules/utils/ast-utils.js`. + * + * @author Toru Nagashima + */ +"use strict"; + +const breakableTypePattern = /^(?:(?:Do)?While|For(?:In|Of)?|Switch)Statement$/u; +const lineBreakPattern = /\r\n|[\r\n\u2028\u2029]/u; +const shebangPattern = /^#!([^\r\n]+)/u; + +/** + * Creates a version of the `lineBreakPattern` regex with the global flag. + * Global regexes are mutable, so this needs to be a function instead of a constant. + * @returns {RegExp} A global regular expression that matches line terminators + */ +function createGlobalLinebreakMatcher() { + return new RegExp(lineBreakPattern.source, "gu"); +} + +module.exports = { + breakableTypePattern, + lineBreakPattern, + createGlobalLinebreakMatcher, + shebangPattern +}; diff --git a/node_modules/eslint/lib/shared/config-validator.js b/node_modules/eslint/lib/shared/config-validator.js new file mode 100644 index 0000000..47353ac --- /dev/null +++ b/node_modules/eslint/lib/shared/config-validator.js @@ -0,0 +1,347 @@ +/* + * STOP!!! DO NOT MODIFY. + * + * This file is part of the ongoing work to move the eslintrc-style config + * system into the @eslint/eslintrc package. This file needs to remain + * unchanged in order for this work to proceed. + * + * If you think you need to change this file, please contact @nzakas first. + * + * Thanks in advance for your cooperation. + */ + +/** + * @fileoverview Validates configs. + * @author Brandon Mills + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const + util = require("util"), + configSchema = require("../../conf/config-schema"), + BuiltInRules = require("../rules"), + { + Legacy: { + ConfigOps, + environments: BuiltInEnvironments + } + } = require("@eslint/eslintrc"), + { emitDeprecationWarning } = require("./deprecation-warnings"); + +const ajv = require("./ajv")(); +const ruleValidators = new WeakMap(); +const noop = Function.prototype; + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ +let validateSchema; +const severityMap = { + error: 2, + warn: 1, + off: 0 +}; + +/** + * Gets a complete options schema for a rule. + * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object + * @returns {Object} JSON Schema for the rule's options. + */ +function getRuleOptionsSchema(rule) { + if (!rule) { + return null; + } + + const schema = rule.schema || rule.meta && rule.meta.schema; + + // Given a tuple of schemas, insert warning level at the beginning + if (Array.isArray(schema)) { + if (schema.length) { + return { + type: "array", + items: schema, + minItems: 0, + maxItems: schema.length + }; + } + return { + type: "array", + minItems: 0, + maxItems: 0 + }; + + } + + // Given a full schema, leave it alone + return schema || null; +} + +/** + * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid. + * @param {options} options The given options for the rule. + * @throws {Error} Wrong severity value. + * @returns {number|string} The rule's severity value + */ +function validateRuleSeverity(options) { + const severity = Array.isArray(options) ? options[0] : options; + const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity; + + if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) { + return normSeverity; + } + + throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util.inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`); + +} + +/** + * Validates the non-severity options passed to a rule, based on its schema. + * @param {{create: Function}} rule The rule to validate + * @param {Array} localOptions The options for the rule, excluding severity + * @throws {Error} Any rule validation errors. + * @returns {void} + */ +function validateRuleSchema(rule, localOptions) { + if (!ruleValidators.has(rule)) { + const schema = getRuleOptionsSchema(rule); + + if (schema) { + ruleValidators.set(rule, ajv.compile(schema)); + } + } + + const validateRule = ruleValidators.get(rule); + + if (validateRule) { + validateRule(localOptions); + if (validateRule.errors) { + throw new Error(validateRule.errors.map( + error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n` + ).join("")); + } + } +} + +/** + * Validates a rule's options against its schema. + * @param {{create: Function}|null} rule The rule that the config is being validated for + * @param {string} ruleId The rule's unique name. + * @param {Array|number} options The given options for the rule. + * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined, + * no source is prepended to the message. + * @throws {Error} Upon any bad rule configuration. + * @returns {void} + */ +function validateRuleOptions(rule, ruleId, options, source = null) { + try { + const severity = validateRuleSeverity(options); + + if (severity !== 0) { + validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []); + } + } catch (err) { + const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`; + + if (typeof source === "string") { + throw new Error(`${source}:\n\t${enhancedMessage}`); + } else { + throw new Error(enhancedMessage); + } + } +} + +/** + * Validates an environment object + * @param {Object} environment The environment config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {(envId:string) => Object} [getAdditionalEnv] A map from strings to loaded environments. + * @returns {void} + */ +function validateEnvironment( + environment, + source, + getAdditionalEnv = noop +) { + + // not having an environment is ok + if (!environment) { + return; + } + + Object.keys(environment).forEach(id => { + const env = getAdditionalEnv(id) || BuiltInEnvironments.get(id) || null; + + if (!env) { + const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`; + + throw new Error(message); + } + }); +} + +/** + * Validates a rules config object + * @param {Object} rulesConfig The rules config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {(ruleId:string) => Object} getAdditionalRule A map from strings to loaded rules + * @returns {void} + */ +function validateRules( + rulesConfig, + source, + getAdditionalRule = noop +) { + if (!rulesConfig) { + return; + } + + Object.keys(rulesConfig).forEach(id => { + const rule = getAdditionalRule(id) || BuiltInRules.get(id) || null; + + validateRuleOptions(rule, id, rulesConfig[id], source); + }); +} + +/** + * Validates a `globals` section of a config file + * @param {Object} globalsConfig The `globals` section + * @param {string|null} source The name of the configuration source to report in the event of an error. + * @returns {void} + */ +function validateGlobals(globalsConfig, source = null) { + if (!globalsConfig) { + return; + } + + Object.entries(globalsConfig) + .forEach(([configuredGlobal, configuredValue]) => { + try { + ConfigOps.normalizeConfigGlobal(configuredValue); + } catch (err) { + throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`); + } + }); +} + +/** + * Validate `processor` configuration. + * @param {string|undefined} processorName The processor name. + * @param {string} source The name of config file. + * @param {(id:string) => Processor} getProcessor The getter of defined processors. + * @throws {Error} For invalid processor configuration. + * @returns {void} + */ +function validateProcessor(processorName, source, getProcessor) { + if (processorName && !getProcessor(processorName)) { + throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`); + } +} + +/** + * Formats an array of schema validation errors. + * @param {Array} errors An array of error messages to format. + * @returns {string} Formatted error message + */ +function formatErrors(errors) { + return errors.map(error => { + if (error.keyword === "additionalProperties") { + const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty; + + return `Unexpected top-level property "${formattedPropertyPath}"`; + } + if (error.keyword === "type") { + const formattedField = error.dataPath.slice(1); + const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema; + const formattedValue = JSON.stringify(error.data); + + return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`; + } + + const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath; + + return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`; + }).map(message => `\t- ${message}.\n`).join(""); +} + +/** + * Validates the top level properties of the config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @throws {Error} For any config invalid per the schema. + * @returns {void} + */ +function validateConfigSchema(config, source = null) { + validateSchema = validateSchema || ajv.compile(configSchema); + + if (!validateSchema(config)) { + throw new Error(`ESLint configuration in ${source} is invalid:\n${formatErrors(validateSchema.errors)}`); + } + + if (Object.hasOwnProperty.call(config, "ecmaFeatures")) { + emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES"); + } +} + +/** + * Validates an entire config object. + * @param {Object} config The config object to validate. + * @param {string} source The name of the configuration source to report in any errors. + * @param {(ruleId:string) => Object} [getAdditionalRule] A map from strings to loaded rules. + * @param {(envId:string) => Object} [getAdditionalEnv] A map from strings to loaded envs. + * @returns {void} + */ +function validate(config, source, getAdditionalRule, getAdditionalEnv) { + validateConfigSchema(config, source); + validateRules(config.rules, source, getAdditionalRule); + validateEnvironment(config.env, source, getAdditionalEnv); + validateGlobals(config.globals, source); + + for (const override of config.overrides || []) { + validateRules(override.rules, source, getAdditionalRule); + validateEnvironment(override.env, source, getAdditionalEnv); + validateGlobals(config.globals, source); + } +} + +const validated = new WeakSet(); + +/** + * Validate config array object. + * @param {ConfigArray} configArray The config array to validate. + * @returns {void} + */ +function validateConfigArray(configArray) { + const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments); + const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors); + const getPluginRule = Map.prototype.get.bind(configArray.pluginRules); + + // Validate. + for (const element of configArray) { + if (validated.has(element)) { + continue; + } + validated.add(element); + + validateEnvironment(element.env, element.name, getPluginEnv); + validateGlobals(element.globals, element.name); + validateProcessor(element.processor, element.name, getPluginProcessor); + validateRules(element.rules, element.name, getPluginRule); + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { + getRuleOptionsSchema, + validate, + validateConfigArray, + validateConfigSchema, + validateRuleOptions +}; diff --git a/node_modules/eslint/lib/shared/deprecation-warnings.js b/node_modules/eslint/lib/shared/deprecation-warnings.js new file mode 100644 index 0000000..d09cafb --- /dev/null +++ b/node_modules/eslint/lib/shared/deprecation-warnings.js @@ -0,0 +1,58 @@ +/** + * @fileoverview Provide the function that emits deprecation warnings. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const path = require("path"); + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +// Definitions for deprecation warnings. +const deprecationWarningMessages = { + ESLINT_LEGACY_ECMAFEATURES: + "The 'ecmaFeatures' config file property is deprecated and has no effect." +}; + +const sourceFileErrorCache = new Set(); + +/** + * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted + * for each unique file path, but repeated invocations with the same file path have no effect. + * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active. + * @param {string} source The name of the configuration source to report the warning for. + * @param {string} errorCode The warning message to show. + * @returns {void} + */ +function emitDeprecationWarning(source, errorCode) { + const cacheKey = JSON.stringify({ source, errorCode }); + + if (sourceFileErrorCache.has(cacheKey)) { + return; + } + + sourceFileErrorCache.add(cacheKey); + + const rel = path.relative(process.cwd(), source); + const message = deprecationWarningMessages[errorCode]; + + process.emitWarning( + `${message} (found in "${rel}")`, + "DeprecationWarning", + errorCode + ); +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { + emitDeprecationWarning +}; diff --git a/node_modules/eslint/lib/shared/logging.js b/node_modules/eslint/lib/shared/logging.js new file mode 100644 index 0000000..fd5e8a6 --- /dev/null +++ b/node_modules/eslint/lib/shared/logging.js @@ -0,0 +1,30 @@ +/** + * @fileoverview Handle logging for ESLint + * @author Gyandeep Singh + */ + +"use strict"; + +/* eslint no-console: "off" -- Logging util */ + +/* c8 ignore next */ +module.exports = { + + /** + * Cover for console.log + * @param {...any} args The elements to log. + * @returns {void} + */ + info(...args) { + console.log(...args); + }, + + /** + * Cover for console.error + * @param {...any} args The elements to log. + * @returns {void} + */ + error(...args) { + console.error(...args); + } +}; diff --git a/node_modules/eslint/lib/shared/relative-module-resolver.js b/node_modules/eslint/lib/shared/relative-module-resolver.js new file mode 100644 index 0000000..18a6949 --- /dev/null +++ b/node_modules/eslint/lib/shared/relative-module-resolver.js @@ -0,0 +1,50 @@ +/* + * STOP!!! DO NOT MODIFY. + * + * This file is part of the ongoing work to move the eslintrc-style config + * system into the @eslint/eslintrc package. This file needs to remain + * unchanged in order for this work to proceed. + * + * If you think you need to change this file, please contact @nzakas first. + * + * Thanks in advance for your cooperation. + */ + +/** + * Utility for resolving a module relative to another module + * @author Teddy Katz + */ + +"use strict"; + +const { createRequire } = require("module"); + +module.exports = { + + /** + * Resolves a Node module relative to another module + * @param {string} moduleName The name of a Node module, or a path to a Node module. + * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be + * a file rather than a directory, but the file need not actually exist. + * @throws {Error} Any error from `module.createRequire` or its `resolve`. + * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath` + */ + resolve(moduleName, relativeToPath) { + try { + return createRequire(relativeToPath).resolve(moduleName); + } catch (error) { + + // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future. + if ( + typeof error === "object" && + error !== null && + error.code === "MODULE_NOT_FOUND" && + !error.requireStack && + error.message.includes(moduleName) + ) { + error.message += `\nRequire stack:\n- ${relativeToPath}`; + } + throw error; + } + } +}; diff --git a/node_modules/eslint/lib/shared/runtime-info.js b/node_modules/eslint/lib/shared/runtime-info.js new file mode 100644 index 0000000..56c0898 --- /dev/null +++ b/node_modules/eslint/lib/shared/runtime-info.js @@ -0,0 +1,167 @@ +/** + * @fileoverview Utility to get information about the execution environment. + * @author Kai Cataldo + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const path = require("path"); +const spawn = require("cross-spawn"); +const os = require("os"); +const log = require("../shared/logging"); +const packageJson = require("../../package.json"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Generates and returns execution environment information. + * @returns {string} A string that contains execution environment information. + */ +function environment() { + const cache = new Map(); + + /** + * Checks if a path is a child of a directory. + * @param {string} parentPath The parent path to check. + * @param {string} childPath The path to check. + * @returns {boolean} Whether or not the given path is a child of a directory. + */ + function isChildOfDirectory(parentPath, childPath) { + return !path.relative(parentPath, childPath).startsWith(".."); + } + + /** + * Synchronously executes a shell command and formats the result. + * @param {string} cmd The command to execute. + * @param {Array} args The arguments to be executed with the command. + * @throws {Error} As may be collected by `cross-spawn.sync`. + * @returns {string} The version returned by the command. + */ + function execCommand(cmd, args) { + const key = [cmd, ...args].join(" "); + + if (cache.has(key)) { + return cache.get(key); + } + + const process = spawn.sync(cmd, args, { encoding: "utf8" }); + + if (process.error) { + throw process.error; + } + + const result = process.stdout.trim(); + + cache.set(key, result); + return result; + } + + /** + * Normalizes a version number. + * @param {string} versionStr The string to normalize. + * @returns {string} The normalized version number. + */ + function normalizeVersionStr(versionStr) { + return versionStr.startsWith("v") ? versionStr : `v${versionStr}`; + } + + /** + * Gets bin version. + * @param {string} bin The bin to check. + * @throws {Error} As may be collected by `cross-spawn.sync`. + * @returns {string} The normalized version returned by the command. + */ + function getBinVersion(bin) { + const binArgs = ["--version"]; + + try { + return normalizeVersionStr(execCommand(bin, binArgs)); + } catch (e) { + log.error(`Error finding ${bin} version running the command \`${bin} ${binArgs.join(" ")}\``); + throw e; + } + } + + /** + * Gets installed npm package version. + * @param {string} pkg The package to check. + * @param {boolean} global Whether to check globally or not. + * @throws {Error} As may be collected by `cross-spawn.sync`. + * @returns {string} The normalized version returned by the command. + */ + function getNpmPackageVersion(pkg, { global = false } = {}) { + const npmBinArgs = ["bin", "-g"]; + const npmLsArgs = ["ls", "--depth=0", "--json", "eslint"]; + + if (global) { + npmLsArgs.push("-g"); + } + + try { + const parsedStdout = JSON.parse(execCommand("npm", npmLsArgs)); + + /* + * Checking globally returns an empty JSON object, while local checks + * include the name and version of the local project. + */ + if (Object.keys(parsedStdout).length === 0 || !(parsedStdout.dependencies && parsedStdout.dependencies.eslint)) { + return "Not found"; + } + + const [, processBinPath] = process.argv; + let npmBinPath; + + try { + npmBinPath = execCommand("npm", npmBinArgs); + } catch (e) { + log.error(`Error finding npm binary path when running command \`npm ${npmBinArgs.join(" ")}\``); + throw e; + } + + const isGlobal = isChildOfDirectory(npmBinPath, processBinPath); + let pkgVersion = parsedStdout.dependencies.eslint.version; + + if ((global && isGlobal) || (!global && !isGlobal)) { + pkgVersion += " (Currently used)"; + } + + return normalizeVersionStr(pkgVersion); + } catch (e) { + log.error(`Error finding ${pkg} version running the command \`npm ${npmLsArgs.join(" ")}\``); + throw e; + } + } + + return [ + "Environment Info:", + "", + `Node version: ${getBinVersion("node")}`, + `npm version: ${getBinVersion("npm")}`, + `Local ESLint version: ${getNpmPackageVersion("eslint", { global: false })}`, + `Global ESLint version: ${getNpmPackageVersion("eslint", { global: true })}`, + `Operating System: ${os.platform()} ${os.release()}` + ].join("\n"); +} + +/** + * Returns version of currently executing ESLint. + * @returns {string} The version from the currently executing ESLint's package.json. + */ +function version() { + return `v${packageJson.version}`; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +module.exports = { + environment, + version +}; diff --git a/node_modules/eslint/lib/shared/string-utils.js b/node_modules/eslint/lib/shared/string-utils.js new file mode 100644 index 0000000..e4a55d7 --- /dev/null +++ b/node_modules/eslint/lib/shared/string-utils.js @@ -0,0 +1,22 @@ +/** + * @fileoverview Utilities to operate on strings. + * @author Stephen Wade + */ + +"use strict"; + +/** + * Converts the first letter of a string to uppercase. + * @param {string} string The string to operate on + * @returns {string} The converted string + */ +function upperCaseFirst(string) { + if (string.length <= 1) { + return string.toUpperCase(); + } + return string[0].toUpperCase() + string.slice(1); +} + +module.exports = { + upperCaseFirst +}; diff --git a/node_modules/eslint/lib/shared/traverser.js b/node_modules/eslint/lib/shared/traverser.js new file mode 100644 index 0000000..be0ed59 --- /dev/null +++ b/node_modules/eslint/lib/shared/traverser.js @@ -0,0 +1,195 @@ +/** + * @fileoverview Traverser to traverse AST trees. + * @author Nicholas C. Zakas + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const vk = require("eslint-visitor-keys"); +const debug = require("debug")("eslint:traverser"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Do nothing. + * @returns {void} + */ +function noop() { + + // do nothing. +} + +/** + * Check whether the given value is an ASTNode or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is an ASTNode. + */ +function isNode(x) { + return x !== null && typeof x === "object" && typeof x.type === "string"; +} + +/** + * Get the visitor keys of a given node. + * @param {Object} visitorKeys The map of visitor keys. + * @param {ASTNode} node The node to get their visitor keys. + * @returns {string[]} The visitor keys of the node. + */ +function getVisitorKeys(visitorKeys, node) { + let keys = visitorKeys[node.type]; + + if (!keys) { + keys = vk.getKeys(node); + debug("Unknown node type \"%s\": Estimated visitor keys %j", node.type, keys); + } + + return keys; +} + +/** + * The traverser class to traverse AST trees. + */ +class Traverser { + constructor() { + this._current = null; + this._parents = []; + this._skipped = false; + this._broken = false; + this._visitorKeys = null; + this._enter = null; + this._leave = null; + } + + /** + * Gives current node. + * @returns {ASTNode} The current node. + */ + current() { + return this._current; + } + + /** + * Gives a a copy of the ancestor nodes. + * @returns {ASTNode[]} The ancestor nodes. + */ + parents() { + return this._parents.slice(0); + } + + /** + * Break the current traversal. + * @returns {void} + */ + break() { + this._broken = true; + } + + /** + * Skip child nodes for the current traversal. + * @returns {void} + */ + skip() { + this._skipped = true; + } + + /** + * Traverse the given AST tree. + * @param {ASTNode} node The root node to traverse. + * @param {Object} options The option object. + * @param {Object} [options.visitorKeys=DEFAULT_VISITOR_KEYS] The keys of each node types to traverse child nodes. Default is `./default-visitor-keys.json`. + * @param {Function} [options.enter=noop] The callback function which is called on entering each node. + * @param {Function} [options.leave=noop] The callback function which is called on leaving each node. + * @returns {void} + */ + traverse(node, options) { + this._current = null; + this._parents = []; + this._skipped = false; + this._broken = false; + this._visitorKeys = options.visitorKeys || vk.KEYS; + this._enter = options.enter || noop; + this._leave = options.leave || noop; + this._traverse(node, null); + } + + /** + * Traverse the given AST tree recursively. + * @param {ASTNode} node The current node. + * @param {ASTNode|null} parent The parent node. + * @returns {void} + * @private + */ + _traverse(node, parent) { + if (!isNode(node)) { + return; + } + + this._current = node; + this._skipped = false; + this._enter(node, parent); + + if (!this._skipped && !this._broken) { + const keys = getVisitorKeys(this._visitorKeys, node); + + if (keys.length >= 1) { + this._parents.push(node); + for (let i = 0; i < keys.length && !this._broken; ++i) { + const child = node[keys[i]]; + + if (Array.isArray(child)) { + for (let j = 0; j < child.length && !this._broken; ++j) { + this._traverse(child[j], node); + } + } else { + this._traverse(child, node); + } + } + this._parents.pop(); + } + } + + if (!this._broken) { + this._leave(node, parent); + } + + this._current = parent; + } + + /** + * Calculates the keys to use for traversal. + * @param {ASTNode} node The node to read keys from. + * @returns {string[]} An array of keys to visit on the node. + * @private + */ + static getKeys(node) { + return vk.getKeys(node); + } + + /** + * Traverse the given AST tree. + * @param {ASTNode} node The root node to traverse. + * @param {Object} options The option object. + * @param {Object} [options.visitorKeys=DEFAULT_VISITOR_KEYS] The keys of each node types to traverse child nodes. Default is `./default-visitor-keys.json`. + * @param {Function} [options.enter=noop] The callback function which is called on entering each node. + * @param {Function} [options.leave=noop] The callback function which is called on leaving each node. + * @returns {void} + */ + static traverse(node, options) { + new Traverser().traverse(node, options); + } + + /** + * The default visitor keys. + * @type {Object} + */ + static get DEFAULT_VISITOR_KEYS() { + return vk.KEYS; + } +} + +module.exports = Traverser; diff --git a/node_modules/eslint/lib/shared/types.js b/node_modules/eslint/lib/shared/types.js new file mode 100644 index 0000000..60f9f1d --- /dev/null +++ b/node_modules/eslint/lib/shared/types.js @@ -0,0 +1,199 @@ +/** + * @fileoverview Define common types for input completion. + * @author Toru Nagashima + */ +"use strict"; + +/** @type {any} */ +module.exports = {}; + +/** @typedef {boolean | "off" | "readable" | "readonly" | "writable" | "writeable"} GlobalConf */ +/** @typedef {0 | 1 | 2 | "off" | "warn" | "error"} SeverityConf */ +/** @typedef {SeverityConf | [SeverityConf, ...any[]]} RuleConf */ + +/** + * @typedef {Object} EcmaFeatures + * @property {boolean} [globalReturn] Enabling `return` statements at the top-level. + * @property {boolean} [jsx] Enabling JSX syntax. + * @property {boolean} [impliedStrict] Enabling strict mode always. + */ + +/** + * @typedef {Object} ParserOptions + * @property {EcmaFeatures} [ecmaFeatures] The optional features. + * @property {3|5|6|7|8|9|10|11|12|13|14|2015|2016|2017|2018|2019|2020|2021|2022|2023} [ecmaVersion] The ECMAScript version (or revision number). + * @property {"script"|"module"} [sourceType] The source code type. + * @property {boolean} [allowReserved] Allowing the use of reserved words as identifiers in ES3. + */ + +/** + * @typedef {Object} LanguageOptions + * @property {number|"latest"} [ecmaVersion] The ECMAScript version (or revision number). + * @property {Record} [globals] The global variable settings. + * @property {"script"|"module"|"commonjs"} [sourceType] The source code type. + * @property {string|Object} [parser] The parser to use. + * @property {Object} [parserOptions] The parser options to use. + */ + +/** + * @typedef {Object} ConfigData + * @property {Record} [env] The environment settings. + * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. + * @property {Record} [globals] The global variable settings. + * @property {string | string[]} [ignorePatterns] The glob patterns that ignore to lint. + * @property {boolean} [noInlineConfig] The flag that disables directive comments. + * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. + * @property {string} [parser] The path to a parser or the package name of a parser. + * @property {ParserOptions} [parserOptions] The parser options. + * @property {string[]} [plugins] The plugin specifiers. + * @property {string} [processor] The processor specifier. + * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. + * @property {boolean} [root] The root flag. + * @property {Record} [rules] The rule settings. + * @property {Object} [settings] The shared settings. + */ + +/** + * @typedef {Object} OverrideConfigData + * @property {Record} [env] The environment settings. + * @property {string | string[]} [excludedFiles] The glob patterns for excluded files. + * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. + * @property {string | string[]} files The glob patterns for target files. + * @property {Record} [globals] The global variable settings. + * @property {boolean} [noInlineConfig] The flag that disables directive comments. + * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. + * @property {string} [parser] The path to a parser or the package name of a parser. + * @property {ParserOptions} [parserOptions] The parser options. + * @property {string[]} [plugins] The plugin specifiers. + * @property {string} [processor] The processor specifier. + * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. + * @property {Record} [rules] The rule settings. + * @property {Object} [settings] The shared settings. + */ + +/** + * @typedef {Object} ParseResult + * @property {Object} ast The AST. + * @property {ScopeManager} [scopeManager] The scope manager of the AST. + * @property {Record} [services] The services that the parser provides. + * @property {Record} [visitorKeys] The visitor keys of the AST. + */ + +/** + * @typedef {Object} Parser + * @property {(text:string, options:ParserOptions) => Object} parse The definition of global variables. + * @property {(text:string, options:ParserOptions) => ParseResult} [parseForESLint] The parser options that will be enabled under this environment. + */ + +/** + * @typedef {Object} Environment + * @property {Record} [globals] The definition of global variables. + * @property {ParserOptions} [parserOptions] The parser options that will be enabled under this environment. + */ + +/** + * @typedef {Object} LintMessage + * @property {number|undefined} column The 1-based column number. + * @property {number} [endColumn] The 1-based column number of the end location. + * @property {number} [endLine] The 1-based line number of the end location. + * @property {boolean} fatal If `true` then this is a fatal error. + * @property {{range:[number,number], text:string}} [fix] Information for autofix. + * @property {number|undefined} line The 1-based line number. + * @property {string} message The error message. + * @property {string|null} ruleId The ID of the rule which makes this message. + * @property {0|1|2} severity The severity of this message. + * @property {Array<{desc?: string, messageId?: string, fix: {range: [number, number], text: string}}>} [suggestions] Information for suggestions. + */ + +/** + * @typedef {Object} SuppressedLintMessage + * @property {number|undefined} column The 1-based column number. + * @property {number} [endColumn] The 1-based column number of the end location. + * @property {number} [endLine] The 1-based line number of the end location. + * @property {boolean} fatal If `true` then this is a fatal error. + * @property {{range:[number,number], text:string}} [fix] Information for autofix. + * @property {number|undefined} line The 1-based line number. + * @property {string} message The error message. + * @property {string|null} ruleId The ID of the rule which makes this message. + * @property {0|1|2} severity The severity of this message. + * @property {Array<{kind: string, justification: string}>} suppressions The suppression info. + * @property {Array<{desc?: string, messageId?: string, fix: {range: [number, number], text: string}}>} [suggestions] Information for suggestions. + */ + +/** + * @typedef {Object} SuggestionResult + * @property {string} desc A short description. + * @property {string} [messageId] Id referencing a message for the description. + * @property {{ text: string, range: number[] }} fix fix result info + */ + +/** + * @typedef {Object} Processor + * @property {(text:string, filename:string) => Array} [preprocess] The function to extract code blocks. + * @property {(messagesList:LintMessage[][], filename:string) => LintMessage[]} [postprocess] The function to merge messages. + * @property {boolean} [supportsAutofix] If `true` then it means the processor supports autofix. + */ + +/** + * @typedef {Object} RuleMetaDocs + * @property {string} description The description of the rule. + * @property {boolean} recommended If `true` then the rule is included in `eslint:recommended` preset. + * @property {string} url The URL of the rule documentation. + */ + +/** + * @typedef {Object} RuleMeta + * @property {boolean} [deprecated] If `true` then the rule has been deprecated. + * @property {RuleMetaDocs} docs The document information of the rule. + * @property {"code"|"whitespace"} [fixable] The autofix type. + * @property {boolean} [hasSuggestions] If `true` then the rule provides suggestions. + * @property {Record} [messages] The messages the rule reports. + * @property {string[]} [replacedBy] The IDs of the alternative rules. + * @property {Array|Object} schema The option schema of the rule. + * @property {"problem"|"suggestion"|"layout"} type The rule type. + */ + +/** + * @typedef {Object} Rule + * @property {Function} create The factory of the rule. + * @property {RuleMeta} meta The meta data of the rule. + */ + +/** + * @typedef {Object} Plugin + * @property {Record} [configs] The definition of plugin configs. + * @property {Record} [environments] The definition of plugin environments. + * @property {Record} [processors] The definition of plugin processors. + * @property {Record} [rules] The definition of plugin rules. + */ + +/** + * Information of deprecated rules. + * @typedef {Object} DeprecatedRuleInfo + * @property {string} ruleId The rule ID. + * @property {string[]} replacedBy The rule IDs that replace this deprecated rule. + */ + +/** + * A linting result. + * @typedef {Object} LintResult + * @property {string} filePath The path to the file that was linted. + * @property {LintMessage[]} messages All of the messages for the result. + * @property {SuppressedLintMessage[]} suppressedMessages All of the suppressed messages for the result. + * @property {number} errorCount Number of errors for the result. + * @property {number} fatalErrorCount Number of fatal errors for the result. + * @property {number} warningCount Number of warnings for the result. + * @property {number} fixableErrorCount Number of fixable errors for the result. + * @property {number} fixableWarningCount Number of fixable warnings for the result. + * @property {string} [source] The source code of the file that was linted. + * @property {string} [output] The source code of the file that was linted, with as many fixes applied as possible. + * @property {DeprecatedRuleInfo[]} usedDeprecatedRules The list of used deprecated rules. + */ + +/** + * A formatter function. + * @callback FormatterFunction + * @param {LintResult[]} results The list of linting results. + * @param {{cwd: string, rulesMeta: Record}} [context] A context object. + * @returns {string | Promise} Formatted text. + */ diff --git a/node_modules/eslint/lib/source-code/index.js b/node_modules/eslint/lib/source-code/index.js new file mode 100644 index 0000000..76e2786 --- /dev/null +++ b/node_modules/eslint/lib/source-code/index.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = { + SourceCode: require("./source-code") +}; diff --git a/node_modules/eslint/lib/source-code/source-code.js b/node_modules/eslint/lib/source-code/source-code.js new file mode 100644 index 0000000..49b2820 --- /dev/null +++ b/node_modules/eslint/lib/source-code/source-code.js @@ -0,0 +1,593 @@ +/** + * @fileoverview Abstraction of JavaScript source code. + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const + { isCommentToken } = require("eslint-utils"), + TokenStore = require("./token-store"), + astUtils = require("../shared/ast-utils"), + Traverser = require("../shared/traverser"); + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + +/** + * Validates that the given AST has the required information. + * @param {ASTNode} ast The Program node of the AST to check. + * @throws {Error} If the AST doesn't contain the correct information. + * @returns {void} + * @private + */ +function validate(ast) { + if (!ast.tokens) { + throw new Error("AST is missing the tokens array."); + } + + if (!ast.comments) { + throw new Error("AST is missing the comments array."); + } + + if (!ast.loc) { + throw new Error("AST is missing location information."); + } + + if (!ast.range) { + throw new Error("AST is missing range information"); + } +} + +/** + * Check to see if its a ES6 export declaration. + * @param {ASTNode} astNode An AST node. + * @returns {boolean} whether the given node represents an export declaration. + * @private + */ +function looksLikeExport(astNode) { + return astNode.type === "ExportDefaultDeclaration" || astNode.type === "ExportNamedDeclaration" || + astNode.type === "ExportAllDeclaration" || astNode.type === "ExportSpecifier"; +} + +/** + * Merges two sorted lists into a larger sorted list in O(n) time. + * @param {Token[]} tokens The list of tokens. + * @param {Token[]} comments The list of comments. + * @returns {Token[]} A sorted list of tokens and comments. + * @private + */ +function sortedMerge(tokens, comments) { + const result = []; + let tokenIndex = 0; + let commentIndex = 0; + + while (tokenIndex < tokens.length || commentIndex < comments.length) { + if (commentIndex >= comments.length || tokenIndex < tokens.length && tokens[tokenIndex].range[0] < comments[commentIndex].range[0]) { + result.push(tokens[tokenIndex++]); + } else { + result.push(comments[commentIndex++]); + } + } + + return result; +} + +/** + * Determines if two nodes or tokens overlap. + * @param {ASTNode|Token} first The first node or token to check. + * @param {ASTNode|Token} second The second node or token to check. + * @returns {boolean} True if the two nodes or tokens overlap. + * @private + */ +function nodesOrTokensOverlap(first, second) { + return (first.range[0] <= second.range[0] && first.range[1] >= second.range[0]) || + (second.range[0] <= first.range[0] && second.range[1] >= first.range[0]); +} + +/** + * Determines if two nodes or tokens have at least one whitespace character + * between them. Order does not matter. Returns false if the given nodes or + * tokens overlap. + * @param {SourceCode} sourceCode The source code object. + * @param {ASTNode|Token} first The first node or token to check between. + * @param {ASTNode|Token} second The second node or token to check between. + * @param {boolean} checkInsideOfJSXText If `true` is present, check inside of JSXText tokens for backward compatibility. + * @returns {boolean} True if there is a whitespace character between + * any of the tokens found between the two given nodes or tokens. + * @public + */ +function isSpaceBetween(sourceCode, first, second, checkInsideOfJSXText) { + if (nodesOrTokensOverlap(first, second)) { + return false; + } + + const [startingNodeOrToken, endingNodeOrToken] = first.range[1] <= second.range[0] + ? [first, second] + : [second, first]; + const firstToken = sourceCode.getLastToken(startingNodeOrToken) || startingNodeOrToken; + const finalToken = sourceCode.getFirstToken(endingNodeOrToken) || endingNodeOrToken; + let currentToken = firstToken; + + while (currentToken !== finalToken) { + const nextToken = sourceCode.getTokenAfter(currentToken, { includeComments: true }); + + if ( + currentToken.range[1] !== nextToken.range[0] || + + /* + * For backward compatibility, check spaces in JSXText. + * https://github.com/eslint/eslint/issues/12614 + */ + ( + checkInsideOfJSXText && + nextToken !== finalToken && + nextToken.type === "JSXText" && + /\s/u.test(nextToken.value) + ) + ) { + return true; + } + + currentToken = nextToken; + } + + return false; +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * Represents parsed source code. + */ +class SourceCode extends TokenStore { + + /** + * @param {string|Object} textOrConfig The source code text or config object. + * @param {string} textOrConfig.text The source code text. + * @param {ASTNode} textOrConfig.ast The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped. + * @param {Object|null} textOrConfig.parserServices The parser services. + * @param {ScopeManager|null} textOrConfig.scopeManager The scope of this source code. + * @param {Object|null} textOrConfig.visitorKeys The visitor keys to traverse AST. + * @param {ASTNode} [astIfNoConfig] The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped. + */ + constructor(textOrConfig, astIfNoConfig) { + let text, ast, parserServices, scopeManager, visitorKeys; + + // Process overloading. + if (typeof textOrConfig === "string") { + text = textOrConfig; + ast = astIfNoConfig; + } else if (typeof textOrConfig === "object" && textOrConfig !== null) { + text = textOrConfig.text; + ast = textOrConfig.ast; + parserServices = textOrConfig.parserServices; + scopeManager = textOrConfig.scopeManager; + visitorKeys = textOrConfig.visitorKeys; + } + + validate(ast); + super(ast.tokens, ast.comments); + + /** + * The flag to indicate that the source code has Unicode BOM. + * @type {boolean} + */ + this.hasBOM = (text.charCodeAt(0) === 0xFEFF); + + /** + * The original text source code. + * BOM was stripped from this text. + * @type {string} + */ + this.text = (this.hasBOM ? text.slice(1) : text); + + /** + * The parsed AST for the source code. + * @type {ASTNode} + */ + this.ast = ast; + + /** + * The parser services of this source code. + * @type {Object} + */ + this.parserServices = parserServices || {}; + + /** + * The scope of this source code. + * @type {ScopeManager|null} + */ + this.scopeManager = scopeManager || null; + + /** + * The visitor keys to traverse AST. + * @type {Object} + */ + this.visitorKeys = visitorKeys || Traverser.DEFAULT_VISITOR_KEYS; + + // Check the source text for the presence of a shebang since it is parsed as a standard line comment. + const shebangMatched = this.text.match(astUtils.shebangPattern); + const hasShebang = shebangMatched && ast.comments.length && ast.comments[0].value === shebangMatched[1]; + + if (hasShebang) { + ast.comments[0].type = "Shebang"; + } + + this.tokensAndComments = sortedMerge(ast.tokens, ast.comments); + + /** + * The source code split into lines according to ECMA-262 specification. + * This is done to avoid each rule needing to do so separately. + * @type {string[]} + */ + this.lines = []; + this.lineStartIndices = [0]; + + const lineEndingPattern = astUtils.createGlobalLinebreakMatcher(); + let match; + + /* + * Previously, this was implemented using a regex that + * matched a sequence of non-linebreak characters followed by a + * linebreak, then adding the lengths of the matches. However, + * this caused a catastrophic backtracking issue when the end + * of a file contained a large number of non-newline characters. + * To avoid this, the current implementation just matches newlines + * and uses match.index to get the correct line start indices. + */ + while ((match = lineEndingPattern.exec(this.text))) { + this.lines.push(this.text.slice(this.lineStartIndices[this.lineStartIndices.length - 1], match.index)); + this.lineStartIndices.push(match.index + match[0].length); + } + this.lines.push(this.text.slice(this.lineStartIndices[this.lineStartIndices.length - 1])); + + // Cache for comments found using getComments(). + this._commentCache = new WeakMap(); + + // don't allow modification of this object + Object.freeze(this); + Object.freeze(this.lines); + } + + /** + * Split the source code into multiple lines based on the line delimiters. + * @param {string} text Source code as a string. + * @returns {string[]} Array of source code lines. + * @public + */ + static splitLines(text) { + return text.split(astUtils.createGlobalLinebreakMatcher()); + } + + /** + * Gets the source code for the given node. + * @param {ASTNode} [node] The AST node to get the text for. + * @param {int} [beforeCount] The number of characters before the node to retrieve. + * @param {int} [afterCount] The number of characters after the node to retrieve. + * @returns {string} The text representing the AST node. + * @public + */ + getText(node, beforeCount, afterCount) { + if (node) { + return this.text.slice(Math.max(node.range[0] - (beforeCount || 0), 0), + node.range[1] + (afterCount || 0)); + } + return this.text; + } + + /** + * Gets the entire source text split into an array of lines. + * @returns {Array} The source text as an array of lines. + * @public + */ + getLines() { + return this.lines; + } + + /** + * Retrieves an array containing all comments in the source code. + * @returns {ASTNode[]} An array of comment nodes. + * @public + */ + getAllComments() { + return this.ast.comments; + } + + /** + * Gets all comments for the given node. + * @param {ASTNode} node The AST node to get the comments for. + * @returns {Object} An object containing a leading and trailing array + * of comments indexed by their position. + * @public + * @deprecated replaced by getCommentsBefore(), getCommentsAfter(), and getCommentsInside(). + */ + getComments(node) { + if (this._commentCache.has(node)) { + return this._commentCache.get(node); + } + + const comments = { + leading: [], + trailing: [] + }; + + /* + * Return all comments as leading comments of the Program node when + * there is no executable code. + */ + if (node.type === "Program") { + if (node.body.length === 0) { + comments.leading = node.comments; + } + } else { + + /* + * Return comments as trailing comments of nodes that only contain + * comments (to mimic the comment attachment behavior present in Espree). + */ + if ((node.type === "BlockStatement" || node.type === "ClassBody") && node.body.length === 0 || + node.type === "ObjectExpression" && node.properties.length === 0 || + node.type === "ArrayExpression" && node.elements.length === 0 || + node.type === "SwitchStatement" && node.cases.length === 0 + ) { + comments.trailing = this.getTokens(node, { + includeComments: true, + filter: isCommentToken + }); + } + + /* + * Iterate over tokens before and after node and collect comment tokens. + * Do not include comments that exist outside of the parent node + * to avoid duplication. + */ + let currentToken = this.getTokenBefore(node, { includeComments: true }); + + while (currentToken && isCommentToken(currentToken)) { + if (node.parent && node.parent.type !== "Program" && (currentToken.start < node.parent.start)) { + break; + } + comments.leading.push(currentToken); + currentToken = this.getTokenBefore(currentToken, { includeComments: true }); + } + + comments.leading.reverse(); + + currentToken = this.getTokenAfter(node, { includeComments: true }); + + while (currentToken && isCommentToken(currentToken)) { + if (node.parent && node.parent.type !== "Program" && (currentToken.end > node.parent.end)) { + break; + } + comments.trailing.push(currentToken); + currentToken = this.getTokenAfter(currentToken, { includeComments: true }); + } + } + + this._commentCache.set(node, comments); + return comments; + } + + /** + * Retrieves the JSDoc comment for a given node. + * @param {ASTNode} node The AST node to get the comment for. + * @returns {Token|null} The Block comment token containing the JSDoc comment + * for the given node or null if not found. + * @public + * @deprecated + */ + getJSDocComment(node) { + + /** + * Checks for the presence of a JSDoc comment for the given node and returns it. + * @param {ASTNode} astNode The AST node to get the comment for. + * @returns {Token|null} The Block comment token containing the JSDoc comment + * for the given node or null if not found. + * @private + */ + const findJSDocComment = astNode => { + const tokenBefore = this.getTokenBefore(astNode, { includeComments: true }); + + if ( + tokenBefore && + isCommentToken(tokenBefore) && + tokenBefore.type === "Block" && + tokenBefore.value.charAt(0) === "*" && + astNode.loc.start.line - tokenBefore.loc.end.line <= 1 + ) { + return tokenBefore; + } + + return null; + }; + let parent = node.parent; + + switch (node.type) { + case "ClassDeclaration": + case "FunctionDeclaration": + return findJSDocComment(looksLikeExport(parent) ? parent : node); + + case "ClassExpression": + return findJSDocComment(parent.parent); + + case "ArrowFunctionExpression": + case "FunctionExpression": + if (parent.type !== "CallExpression" && parent.type !== "NewExpression") { + while ( + !this.getCommentsBefore(parent).length && + !/Function/u.test(parent.type) && + parent.type !== "MethodDefinition" && + parent.type !== "Property" + ) { + parent = parent.parent; + + if (!parent) { + break; + } + } + + if (parent && parent.type !== "FunctionDeclaration" && parent.type !== "Program") { + return findJSDocComment(parent); + } + } + + return findJSDocComment(node); + + // falls through + default: + return null; + } + } + + /** + * Gets the deepest node containing a range index. + * @param {int} index Range index of the desired node. + * @returns {ASTNode} The node if found or null if not found. + * @public + */ + getNodeByRangeIndex(index) { + let result = null; + + Traverser.traverse(this.ast, { + visitorKeys: this.visitorKeys, + enter(node) { + if (node.range[0] <= index && index < node.range[1]) { + result = node; + } else { + this.skip(); + } + }, + leave(node) { + if (node === result) { + this.break(); + } + } + }); + + return result; + } + + /** + * Determines if two nodes or tokens have at least one whitespace character + * between them. Order does not matter. Returns false if the given nodes or + * tokens overlap. + * @param {ASTNode|Token} first The first node or token to check between. + * @param {ASTNode|Token} second The second node or token to check between. + * @returns {boolean} True if there is a whitespace character between + * any of the tokens found between the two given nodes or tokens. + * @public + */ + isSpaceBetween(first, second) { + return isSpaceBetween(this, first, second, false); + } + + /** + * Determines if two nodes or tokens have at least one whitespace character + * between them. Order does not matter. Returns false if the given nodes or + * tokens overlap. + * For backward compatibility, this method returns true if there are + * `JSXText` tokens that contain whitespaces between the two. + * @param {ASTNode|Token} first The first node or token to check between. + * @param {ASTNode|Token} second The second node or token to check between. + * @returns {boolean} True if there is a whitespace character between + * any of the tokens found between the two given nodes or tokens. + * @deprecated in favor of isSpaceBetween(). + * @public + */ + isSpaceBetweenTokens(first, second) { + return isSpaceBetween(this, first, second, true); + } + + /** + * Converts a source text index into a (line, column) pair. + * @param {number} index The index of a character in a file + * @throws {TypeError} If non-numeric index or index out of range. + * @returns {Object} A {line, column} location object with a 0-indexed column + * @public + */ + getLocFromIndex(index) { + if (typeof index !== "number") { + throw new TypeError("Expected `index` to be a number."); + } + + if (index < 0 || index > this.text.length) { + throw new RangeError(`Index out of range (requested index ${index}, but source text has length ${this.text.length}).`); + } + + /* + * For an argument of this.text.length, return the location one "spot" past the last character + * of the file. If the last character is a linebreak, the location will be column 0 of the next + * line; otherwise, the location will be in the next column on the same line. + * + * See getIndexFromLoc for the motivation for this special case. + */ + if (index === this.text.length) { + return { line: this.lines.length, column: this.lines[this.lines.length - 1].length }; + } + + /* + * To figure out which line index is on, determine the last place at which index could + * be inserted into lineStartIndices to keep the list sorted. + */ + const lineNumber = index >= this.lineStartIndices[this.lineStartIndices.length - 1] + ? this.lineStartIndices.length + : this.lineStartIndices.findIndex(el => index < el); + + return { line: lineNumber, column: index - this.lineStartIndices[lineNumber - 1] }; + } + + /** + * Converts a (line, column) pair into a range index. + * @param {Object} loc A line/column location + * @param {number} loc.line The line number of the location (1-indexed) + * @param {number} loc.column The column number of the location (0-indexed) + * @throws {TypeError|RangeError} If `loc` is not an object with a numeric + * `line` and `column`, if the `line` is less than or equal to zero or + * the line or column is out of the expected range. + * @returns {number} The range index of the location in the file. + * @public + */ + getIndexFromLoc(loc) { + if (typeof loc !== "object" || typeof loc.line !== "number" || typeof loc.column !== "number") { + throw new TypeError("Expected `loc` to be an object with numeric `line` and `column` properties."); + } + + if (loc.line <= 0) { + throw new RangeError(`Line number out of range (line ${loc.line} requested). Line numbers should be 1-based.`); + } + + if (loc.line > this.lineStartIndices.length) { + throw new RangeError(`Line number out of range (line ${loc.line} requested, but only ${this.lineStartIndices.length} lines present).`); + } + + const lineStartIndex = this.lineStartIndices[loc.line - 1]; + const lineEndIndex = loc.line === this.lineStartIndices.length ? this.text.length : this.lineStartIndices[loc.line]; + const positionIndex = lineStartIndex + loc.column; + + /* + * By design, getIndexFromLoc({ line: lineNum, column: 0 }) should return the start index of + * the given line, provided that the line number is valid element of this.lines. Since the + * last element of this.lines is an empty string for files with trailing newlines, add a + * special case where getting the index for the first location after the end of the file + * will return the length of the file, rather than throwing an error. This allows rules to + * use getIndexFromLoc consistently without worrying about edge cases at the end of a file. + */ + if ( + loc.line === this.lineStartIndices.length && positionIndex > lineEndIndex || + loc.line < this.lineStartIndices.length && positionIndex >= lineEndIndex + ) { + throw new RangeError(`Column number out of range (column ${loc.column} requested, but the length of line ${loc.line} is ${lineEndIndex - lineStartIndex}).`); + } + + return positionIndex; + } +} + +module.exports = SourceCode; diff --git a/node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js b/node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js new file mode 100644 index 0000000..7255a62 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js @@ -0,0 +1,57 @@ +/** + * @fileoverview Define the cursor which iterates tokens and comments in reverse. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const Cursor = require("./cursor"); +const utils = require("./utils"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The cursor which iterates tokens and comments in reverse. + */ +module.exports = class BackwardTokenCommentCursor extends Cursor { + + /** + * Initializes this cursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + */ + constructor(tokens, comments, indexMap, startLoc, endLoc) { + super(); + this.tokens = tokens; + this.comments = comments; + this.tokenIndex = utils.getLastIndex(tokens, indexMap, endLoc); + this.commentIndex = utils.search(comments, endLoc) - 1; + this.border = startLoc; + } + + /** @inheritdoc */ + moveNext() { + const token = (this.tokenIndex >= 0) ? this.tokens[this.tokenIndex] : null; + const comment = (this.commentIndex >= 0) ? this.comments[this.commentIndex] : null; + + if (token && (!comment || token.range[1] > comment.range[1])) { + this.current = token; + this.tokenIndex -= 1; + } else if (comment) { + this.current = comment; + this.commentIndex -= 1; + } else { + this.current = null; + } + + return Boolean(this.current) && (this.border === -1 || this.current.range[0] >= this.border); + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js b/node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js new file mode 100644 index 0000000..454a244 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js @@ -0,0 +1,58 @@ +/** + * @fileoverview Define the cursor which iterates tokens only in reverse. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const Cursor = require("./cursor"); +const utils = require("./utils"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The cursor which iterates tokens only in reverse. + */ +module.exports = class BackwardTokenCursor extends Cursor { + + /** + * Initializes this cursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + */ + constructor(tokens, comments, indexMap, startLoc, endLoc) { + super(); + this.tokens = tokens; + this.index = utils.getLastIndex(tokens, indexMap, endLoc); + this.indexEnd = utils.getFirstIndex(tokens, indexMap, startLoc); + } + + /** @inheritdoc */ + moveNext() { + if (this.index >= this.indexEnd) { + this.current = this.tokens[this.index]; + this.index -= 1; + return true; + } + return false; + } + + /* + * + * Shorthand for performance. + * + */ + + /** @inheritdoc */ + getOneToken() { + return (this.index >= this.indexEnd) ? this.tokens[this.index] : null; + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/cursor.js b/node_modules/eslint/lib/source-code/token-store/cursor.js new file mode 100644 index 0000000..0b72600 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/cursor.js @@ -0,0 +1,76 @@ +/** + * @fileoverview Define the abstract class about cursors which iterate tokens. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The abstract class about cursors which iterate tokens. + * + * This class has 2 abstract methods. + * + * - `current: Token | Comment | null` ... The current token. + * - `moveNext(): boolean` ... Moves this cursor to the next token. If the next token didn't exist, it returns `false`. + * + * This is similar to ES2015 Iterators. + * However, Iterators were slow (at 2017-01), so I created this class as similar to C# IEnumerable. + * + * There are the following known sub classes. + * + * - ForwardTokenCursor .......... The cursor which iterates tokens only. + * - BackwardTokenCursor ......... The cursor which iterates tokens only in reverse. + * - ForwardTokenCommentCursor ... The cursor which iterates tokens and comments. + * - BackwardTokenCommentCursor .. The cursor which iterates tokens and comments in reverse. + * - DecorativeCursor + * - FilterCursor ............ The cursor which ignores the specified tokens. + * - SkipCursor .............. The cursor which ignores the first few tokens. + * - LimitCursor ............. The cursor which limits the count of tokens. + * + */ +module.exports = class Cursor { + + /** + * Initializes this cursor. + */ + constructor() { + this.current = null; + } + + /** + * Gets the first token. + * This consumes this cursor. + * @returns {Token|Comment} The first token or null. + */ + getOneToken() { + return this.moveNext() ? this.current : null; + } + + /** + * Gets the first tokens. + * This consumes this cursor. + * @returns {(Token|Comment)[]} All tokens. + */ + getAllTokens() { + const tokens = []; + + while (this.moveNext()) { + tokens.push(this.current); + } + + return tokens; + } + + /** + * Moves this cursor to the next token. + * @returns {boolean} `true` if the next token exists. + * @abstract + */ + /* c8 ignore next */ + moveNext() { // eslint-disable-line class-methods-use-this -- Unused + throw new Error("Not implemented."); + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/cursors.js b/node_modules/eslint/lib/source-code/token-store/cursors.js new file mode 100644 index 0000000..30c72b6 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/cursors.js @@ -0,0 +1,90 @@ +/** + * @fileoverview Define 2 token factories; forward and backward. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const BackwardTokenCommentCursor = require("./backward-token-comment-cursor"); +const BackwardTokenCursor = require("./backward-token-cursor"); +const FilterCursor = require("./filter-cursor"); +const ForwardTokenCommentCursor = require("./forward-token-comment-cursor"); +const ForwardTokenCursor = require("./forward-token-cursor"); +const LimitCursor = require("./limit-cursor"); +const SkipCursor = require("./skip-cursor"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * The cursor factory. + * @private + */ +class CursorFactory { + + /** + * Initializes this cursor. + * @param {Function} TokenCursor The class of the cursor which iterates tokens only. + * @param {Function} TokenCommentCursor The class of the cursor which iterates the mix of tokens and comments. + */ + constructor(TokenCursor, TokenCommentCursor) { + this.TokenCursor = TokenCursor; + this.TokenCommentCursor = TokenCommentCursor; + } + + /** + * Creates a base cursor instance that can be decorated by createCursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + * @param {boolean} includeComments The flag to iterate comments as well. + * @returns {Cursor} The created base cursor. + */ + createBaseCursor(tokens, comments, indexMap, startLoc, endLoc, includeComments) { + const Cursor = includeComments ? this.TokenCommentCursor : this.TokenCursor; + + return new Cursor(tokens, comments, indexMap, startLoc, endLoc); + } + + /** + * Creates a cursor that iterates tokens with normalized options. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + * @param {boolean} includeComments The flag to iterate comments as well. + * @param {Function|null} filter The predicate function to choose tokens. + * @param {number} skip The count of tokens the cursor skips. + * @param {number} count The maximum count of tokens the cursor iterates. Zero is no iteration for backward compatibility. + * @returns {Cursor} The created cursor. + */ + createCursor(tokens, comments, indexMap, startLoc, endLoc, includeComments, filter, skip, count) { + let cursor = this.createBaseCursor(tokens, comments, indexMap, startLoc, endLoc, includeComments); + + if (filter) { + cursor = new FilterCursor(cursor, filter); + } + if (skip >= 1) { + cursor = new SkipCursor(cursor, skip); + } + if (count >= 0) { + cursor = new LimitCursor(cursor, count); + } + + return cursor; + } +} + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +exports.forward = new CursorFactory(ForwardTokenCursor, ForwardTokenCommentCursor); +exports.backward = new CursorFactory(BackwardTokenCursor, BackwardTokenCommentCursor); diff --git a/node_modules/eslint/lib/source-code/token-store/decorative-cursor.js b/node_modules/eslint/lib/source-code/token-store/decorative-cursor.js new file mode 100644 index 0000000..3ee7b0b --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/decorative-cursor.js @@ -0,0 +1,39 @@ +/** + * @fileoverview Define the abstract class about cursors which manipulate another cursor. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const Cursor = require("./cursor"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The abstract class about cursors which manipulate another cursor. + */ +module.exports = class DecorativeCursor extends Cursor { + + /** + * Initializes this cursor. + * @param {Cursor} cursor The cursor to be decorated. + */ + constructor(cursor) { + super(); + this.cursor = cursor; + } + + /** @inheritdoc */ + moveNext() { + const retv = this.cursor.moveNext(); + + this.current = this.cursor.current; + + return retv; + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/filter-cursor.js b/node_modules/eslint/lib/source-code/token-store/filter-cursor.js new file mode 100644 index 0000000..08c4f22 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/filter-cursor.js @@ -0,0 +1,43 @@ +/** + * @fileoverview Define the cursor which ignores specified tokens. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const DecorativeCursor = require("./decorative-cursor"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The decorative cursor which ignores specified tokens. + */ +module.exports = class FilterCursor extends DecorativeCursor { + + /** + * Initializes this cursor. + * @param {Cursor} cursor The cursor to be decorated. + * @param {Function} predicate The predicate function to decide tokens this cursor iterates. + */ + constructor(cursor, predicate) { + super(cursor); + this.predicate = predicate; + } + + /** @inheritdoc */ + moveNext() { + const predicate = this.predicate; + + while (super.moveNext()) { + if (predicate(this.current)) { + return true; + } + } + return false; + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js b/node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js new file mode 100644 index 0000000..50c7a39 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js @@ -0,0 +1,57 @@ +/** + * @fileoverview Define the cursor which iterates tokens and comments. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const Cursor = require("./cursor"); +const utils = require("./utils"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The cursor which iterates tokens and comments. + */ +module.exports = class ForwardTokenCommentCursor extends Cursor { + + /** + * Initializes this cursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + */ + constructor(tokens, comments, indexMap, startLoc, endLoc) { + super(); + this.tokens = tokens; + this.comments = comments; + this.tokenIndex = utils.getFirstIndex(tokens, indexMap, startLoc); + this.commentIndex = utils.search(comments, startLoc); + this.border = endLoc; + } + + /** @inheritdoc */ + moveNext() { + const token = (this.tokenIndex < this.tokens.length) ? this.tokens[this.tokenIndex] : null; + const comment = (this.commentIndex < this.comments.length) ? this.comments[this.commentIndex] : null; + + if (token && (!comment || token.range[0] < comment.range[0])) { + this.current = token; + this.tokenIndex += 1; + } else if (comment) { + this.current = comment; + this.commentIndex += 1; + } else { + this.current = null; + } + + return Boolean(this.current) && (this.border === -1 || this.current.range[1] <= this.border); + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js b/node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js new file mode 100644 index 0000000..e8c1860 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js @@ -0,0 +1,63 @@ +/** + * @fileoverview Define the cursor which iterates tokens only. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const Cursor = require("./cursor"); +const utils = require("./utils"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The cursor which iterates tokens only. + */ +module.exports = class ForwardTokenCursor extends Cursor { + + /** + * Initializes this cursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + */ + constructor(tokens, comments, indexMap, startLoc, endLoc) { + super(); + this.tokens = tokens; + this.index = utils.getFirstIndex(tokens, indexMap, startLoc); + this.indexEnd = utils.getLastIndex(tokens, indexMap, endLoc); + } + + /** @inheritdoc */ + moveNext() { + if (this.index <= this.indexEnd) { + this.current = this.tokens[this.index]; + this.index += 1; + return true; + } + return false; + } + + /* + * + * Shorthand for performance. + * + */ + + /** @inheritdoc */ + getOneToken() { + return (this.index <= this.indexEnd) ? this.tokens[this.index] : null; + } + + /** @inheritdoc */ + getAllTokens() { + return this.tokens.slice(this.index, this.indexEnd + 1); + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/index.js b/node_modules/eslint/lib/source-code/token-store/index.js new file mode 100644 index 0000000..25db8a4 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/index.js @@ -0,0 +1,627 @@ +/** + * @fileoverview Object to handle access and retrieval of tokens. + * @author Brandon Mills + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const assert = require("assert"); +const { isCommentToken } = require("eslint-utils"); +const cursors = require("./cursors"); +const ForwardTokenCursor = require("./forward-token-cursor"); +const PaddedTokenCursor = require("./padded-token-cursor"); +const utils = require("./utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const TOKENS = Symbol("tokens"); +const COMMENTS = Symbol("comments"); +const INDEX_MAP = Symbol("indexMap"); + +/** + * Creates the map from locations to indices in `tokens`. + * + * The first/last location of tokens is mapped to the index of the token. + * The first/last location of comments is mapped to the index of the next token of each comment. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @returns {Object} The map from locations to indices in `tokens`. + * @private + */ +function createIndexMap(tokens, comments) { + const map = Object.create(null); + let tokenIndex = 0; + let commentIndex = 0; + let nextStart = 0; + let range = null; + + while (tokenIndex < tokens.length || commentIndex < comments.length) { + nextStart = (commentIndex < comments.length) ? comments[commentIndex].range[0] : Number.MAX_SAFE_INTEGER; + while (tokenIndex < tokens.length && (range = tokens[tokenIndex].range)[0] < nextStart) { + map[range[0]] = tokenIndex; + map[range[1] - 1] = tokenIndex; + tokenIndex += 1; + } + + nextStart = (tokenIndex < tokens.length) ? tokens[tokenIndex].range[0] : Number.MAX_SAFE_INTEGER; + while (commentIndex < comments.length && (range = comments[commentIndex].range)[0] < nextStart) { + map[range[0]] = tokenIndex; + map[range[1] - 1] = tokenIndex; + commentIndex += 1; + } + } + + return map; +} + +/** + * Creates the cursor iterates tokens with options. + * @param {CursorFactory} factory The cursor factory to initialize cursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + * @param {number|Function|Object} [opts=0] The option object. If this is a number then it's `opts.skip`. If this is a function then it's `opts.filter`. + * @param {boolean} [opts.includeComments=false] The flag to iterate comments as well. + * @param {Function|null} [opts.filter=null] The predicate function to choose tokens. + * @param {number} [opts.skip=0] The count of tokens the cursor skips. + * @returns {Cursor} The created cursor. + * @private + */ +function createCursorWithSkip(factory, tokens, comments, indexMap, startLoc, endLoc, opts) { + let includeComments = false; + let skip = 0; + let filter = null; + + if (typeof opts === "number") { + skip = opts | 0; + } else if (typeof opts === "function") { + filter = opts; + } else if (opts) { + includeComments = !!opts.includeComments; + skip = opts.skip | 0; + filter = opts.filter || null; + } + assert(skip >= 0, "options.skip should be zero or a positive integer."); + assert(!filter || typeof filter === "function", "options.filter should be a function."); + + return factory.createCursor(tokens, comments, indexMap, startLoc, endLoc, includeComments, filter, skip, -1); +} + +/** + * Creates the cursor iterates tokens with options. + * @param {CursorFactory} factory The cursor factory to initialize cursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + * @param {number|Function|Object} [opts=0] The option object. If this is a number then it's `opts.count`. If this is a function then it's `opts.filter`. + * @param {boolean} [opts.includeComments] The flag to iterate comments as well. + * @param {Function|null} [opts.filter=null] The predicate function to choose tokens. + * @param {number} [opts.count=0] The maximum count of tokens the cursor iterates. Zero is no iteration for backward compatibility. + * @returns {Cursor} The created cursor. + * @private + */ +function createCursorWithCount(factory, tokens, comments, indexMap, startLoc, endLoc, opts) { + let includeComments = false; + let count = 0; + let countExists = false; + let filter = null; + + if (typeof opts === "number") { + count = opts | 0; + countExists = true; + } else if (typeof opts === "function") { + filter = opts; + } else if (opts) { + includeComments = !!opts.includeComments; + count = opts.count | 0; + countExists = typeof opts.count === "number"; + filter = opts.filter || null; + } + assert(count >= 0, "options.count should be zero or a positive integer."); + assert(!filter || typeof filter === "function", "options.filter should be a function."); + + return factory.createCursor(tokens, comments, indexMap, startLoc, endLoc, includeComments, filter, 0, countExists ? count : -1); +} + +/** + * Creates the cursor iterates tokens with options. + * This is overload function of the below. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + * @param {Function|Object} opts The option object. If this is a function then it's `opts.filter`. + * @param {boolean} [opts.includeComments] The flag to iterate comments as well. + * @param {Function|null} [opts.filter=null] The predicate function to choose tokens. + * @param {number} [opts.count=0] The maximum count of tokens the cursor iterates. Zero is no iteration for backward compatibility. + * @returns {Cursor} The created cursor. + * @private + */ +/** + * Creates the cursor iterates tokens with options. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + * @param {number} [beforeCount=0] The number of tokens before the node to retrieve. + * @param {boolean} [afterCount=0] The number of tokens after the node to retrieve. + * @returns {Cursor} The created cursor. + * @private + */ +function createCursorWithPadding(tokens, comments, indexMap, startLoc, endLoc, beforeCount, afterCount) { + if (typeof beforeCount === "undefined" && typeof afterCount === "undefined") { + return new ForwardTokenCursor(tokens, comments, indexMap, startLoc, endLoc); + } + if (typeof beforeCount === "number" || typeof beforeCount === "undefined") { + return new PaddedTokenCursor(tokens, comments, indexMap, startLoc, endLoc, beforeCount | 0, afterCount | 0); + } + return createCursorWithCount(cursors.forward, tokens, comments, indexMap, startLoc, endLoc, beforeCount); +} + +/** + * Gets comment tokens that are adjacent to the current cursor position. + * @param {Cursor} cursor A cursor instance. + * @returns {Array} An array of comment tokens adjacent to the current cursor position. + * @private + */ +function getAdjacentCommentTokensFromCursor(cursor) { + const tokens = []; + let currentToken = cursor.getOneToken(); + + while (currentToken && isCommentToken(currentToken)) { + tokens.push(currentToken); + currentToken = cursor.getOneToken(); + } + + return tokens; +} + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The token store. + * + * This class provides methods to get tokens by locations as fast as possible. + * The methods are a part of public API, so we should be careful if it changes this class. + * + * People can get tokens in O(1) by the hash map which is mapping from the location of tokens/comments to tokens. + * Also people can get a mix of tokens and comments in O(log k), the k is the number of comments. + * Assuming that comments to be much fewer than tokens, this does not make hash map from token's locations to comments to reduce memory cost. + * This uses binary-searching instead for comments. + */ +module.exports = class TokenStore { + + /** + * Initializes this token store. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + */ + constructor(tokens, comments) { + this[TOKENS] = tokens; + this[COMMENTS] = comments; + this[INDEX_MAP] = createIndexMap(tokens, comments); + } + + //-------------------------------------------------------------------------- + // Gets single token. + //-------------------------------------------------------------------------- + + /** + * Gets the token starting at the specified index. + * @param {number} offset Index of the start of the token's range. + * @param {Object} [options=0] The option object. + * @param {boolean} [options.includeComments=false] The flag to iterate comments as well. + * @returns {Token|null} The token starting at index, or null if no such token. + */ + getTokenByRangeStart(offset, options) { + const includeComments = options && options.includeComments; + const token = cursors.forward.createBaseCursor( + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + offset, + -1, + includeComments + ).getOneToken(); + + if (token && token.range[0] === offset) { + return token; + } + return null; + } + + /** + * Gets the first token of the given node. + * @param {ASTNode} node The AST node. + * @param {number|Function|Object} [options=0] The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`. + * @param {boolean} [options.includeComments=false] The flag to iterate comments as well. + * @param {Function|null} [options.filter=null] The predicate function to choose tokens. + * @param {number} [options.skip=0] The count of tokens the cursor skips. + * @returns {Token|null} An object representing the token. + */ + getFirstToken(node, options) { + return createCursorWithSkip( + cursors.forward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + node.range[0], + node.range[1], + options + ).getOneToken(); + } + + /** + * Gets the last token of the given node. + * @param {ASTNode} node The AST node. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstToken() + * @returns {Token|null} An object representing the token. + */ + getLastToken(node, options) { + return createCursorWithSkip( + cursors.backward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + node.range[0], + node.range[1], + options + ).getOneToken(); + } + + /** + * Gets the token that precedes a given node or token. + * @param {ASTNode|Token|Comment} node The AST node or token. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstToken() + * @returns {Token|null} An object representing the token. + */ + getTokenBefore(node, options) { + return createCursorWithSkip( + cursors.backward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + -1, + node.range[0], + options + ).getOneToken(); + } + + /** + * Gets the token that follows a given node or token. + * @param {ASTNode|Token|Comment} node The AST node or token. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstToken() + * @returns {Token|null} An object representing the token. + */ + getTokenAfter(node, options) { + return createCursorWithSkip( + cursors.forward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + node.range[1], + -1, + options + ).getOneToken(); + } + + /** + * Gets the first token between two non-overlapping nodes. + * @param {ASTNode|Token|Comment} left Node before the desired token range. + * @param {ASTNode|Token|Comment} right Node after the desired token range. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstToken() + * @returns {Token|null} An object representing the token. + */ + getFirstTokenBetween(left, right, options) { + return createCursorWithSkip( + cursors.forward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + left.range[1], + right.range[0], + options + ).getOneToken(); + } + + /** + * Gets the last token between two non-overlapping nodes. + * @param {ASTNode|Token|Comment} left Node before the desired token range. + * @param {ASTNode|Token|Comment} right Node after the desired token range. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstToken() + * @returns {Token|null} An object representing the token. + */ + getLastTokenBetween(left, right, options) { + return createCursorWithSkip( + cursors.backward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + left.range[1], + right.range[0], + options + ).getOneToken(); + } + + /** + * Gets the token that precedes a given node or token in the token stream. + * This is defined for backward compatibility. Use `includeComments` option instead. + * TODO: We have a plan to remove this in a future major version. + * @param {ASTNode|Token|Comment} node The AST node or token. + * @param {number} [skip=0] A number of tokens to skip. + * @returns {Token|null} An object representing the token. + * @deprecated + */ + getTokenOrCommentBefore(node, skip) { + return this.getTokenBefore(node, { includeComments: true, skip }); + } + + /** + * Gets the token that follows a given node or token in the token stream. + * This is defined for backward compatibility. Use `includeComments` option instead. + * TODO: We have a plan to remove this in a future major version. + * @param {ASTNode|Token|Comment} node The AST node or token. + * @param {number} [skip=0] A number of tokens to skip. + * @returns {Token|null} An object representing the token. + * @deprecated + */ + getTokenOrCommentAfter(node, skip) { + return this.getTokenAfter(node, { includeComments: true, skip }); + } + + //-------------------------------------------------------------------------- + // Gets multiple tokens. + //-------------------------------------------------------------------------- + + /** + * Gets the first `count` tokens of the given node. + * @param {ASTNode} node The AST node. + * @param {number|Function|Object} [options=0] The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. + * @param {boolean} [options.includeComments=false] The flag to iterate comments as well. + * @param {Function|null} [options.filter=null] The predicate function to choose tokens. + * @param {number} [options.count=0] The maximum count of tokens the cursor iterates. + * @returns {Token[]} Tokens. + */ + getFirstTokens(node, options) { + return createCursorWithCount( + cursors.forward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + node.range[0], + node.range[1], + options + ).getAllTokens(); + } + + /** + * Gets the last `count` tokens of the given node. + * @param {ASTNode} node The AST node. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstTokens() + * @returns {Token[]} Tokens. + */ + getLastTokens(node, options) { + return createCursorWithCount( + cursors.backward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + node.range[0], + node.range[1], + options + ).getAllTokens().reverse(); + } + + /** + * Gets the `count` tokens that precedes a given node or token. + * @param {ASTNode|Token|Comment} node The AST node or token. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstTokens() + * @returns {Token[]} Tokens. + */ + getTokensBefore(node, options) { + return createCursorWithCount( + cursors.backward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + -1, + node.range[0], + options + ).getAllTokens().reverse(); + } + + /** + * Gets the `count` tokens that follows a given node or token. + * @param {ASTNode|Token|Comment} node The AST node or token. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstTokens() + * @returns {Token[]} Tokens. + */ + getTokensAfter(node, options) { + return createCursorWithCount( + cursors.forward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + node.range[1], + -1, + options + ).getAllTokens(); + } + + /** + * Gets the first `count` tokens between two non-overlapping nodes. + * @param {ASTNode|Token|Comment} left Node before the desired token range. + * @param {ASTNode|Token|Comment} right Node after the desired token range. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstTokens() + * @returns {Token[]} Tokens between left and right. + */ + getFirstTokensBetween(left, right, options) { + return createCursorWithCount( + cursors.forward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + left.range[1], + right.range[0], + options + ).getAllTokens(); + } + + /** + * Gets the last `count` tokens between two non-overlapping nodes. + * @param {ASTNode|Token|Comment} left Node before the desired token range. + * @param {ASTNode|Token|Comment} right Node after the desired token range. + * @param {number|Function|Object} [options=0] The option object. Same options as getFirstTokens() + * @returns {Token[]} Tokens between left and right. + */ + getLastTokensBetween(left, right, options) { + return createCursorWithCount( + cursors.backward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + left.range[1], + right.range[0], + options + ).getAllTokens().reverse(); + } + + /** + * Gets all tokens that are related to the given node. + * @param {ASTNode} node The AST node. + * @param {Function|Object} options The option object. If this is a function then it's `options.filter`. + * @param {boolean} [options.includeComments=false] The flag to iterate comments as well. + * @param {Function|null} [options.filter=null] The predicate function to choose tokens. + * @param {number} [options.count=0] The maximum count of tokens the cursor iterates. + * @returns {Token[]} Array of objects representing tokens. + */ + /** + * Gets all tokens that are related to the given node. + * @param {ASTNode} node The AST node. + * @param {int} [beforeCount=0] The number of tokens before the node to retrieve. + * @param {int} [afterCount=0] The number of tokens after the node to retrieve. + * @returns {Token[]} Array of objects representing tokens. + */ + getTokens(node, beforeCount, afterCount) { + return createCursorWithPadding( + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + node.range[0], + node.range[1], + beforeCount, + afterCount + ).getAllTokens(); + } + + /** + * Gets all of the tokens between two non-overlapping nodes. + * @param {ASTNode|Token|Comment} left Node before the desired token range. + * @param {ASTNode|Token|Comment} right Node after the desired token range. + * @param {Function|Object} options The option object. If this is a function then it's `options.filter`. + * @param {boolean} [options.includeComments=false] The flag to iterate comments as well. + * @param {Function|null} [options.filter=null] The predicate function to choose tokens. + * @param {number} [options.count=0] The maximum count of tokens the cursor iterates. + * @returns {Token[]} Tokens between left and right. + */ + /** + * Gets all of the tokens between two non-overlapping nodes. + * @param {ASTNode|Token|Comment} left Node before the desired token range. + * @param {ASTNode|Token|Comment} right Node after the desired token range. + * @param {int} [padding=0] Number of extra tokens on either side of center. + * @returns {Token[]} Tokens between left and right. + */ + getTokensBetween(left, right, padding) { + return createCursorWithPadding( + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + left.range[1], + right.range[0], + padding, + padding + ).getAllTokens(); + } + + //-------------------------------------------------------------------------- + // Others. + //-------------------------------------------------------------------------- + + /** + * Checks whether any comments exist or not between the given 2 nodes. + * @param {ASTNode} left The node to check. + * @param {ASTNode} right The node to check. + * @returns {boolean} `true` if one or more comments exist. + */ + commentsExistBetween(left, right) { + const index = utils.search(this[COMMENTS], left.range[1]); + + return ( + index < this[COMMENTS].length && + this[COMMENTS][index].range[1] <= right.range[0] + ); + } + + /** + * Gets all comment tokens directly before the given node or token. + * @param {ASTNode|token} nodeOrToken The AST node or token to check for adjacent comment tokens. + * @returns {Array} An array of comments in occurrence order. + */ + getCommentsBefore(nodeOrToken) { + const cursor = createCursorWithCount( + cursors.backward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + -1, + nodeOrToken.range[0], + { includeComments: true } + ); + + return getAdjacentCommentTokensFromCursor(cursor).reverse(); + } + + /** + * Gets all comment tokens directly after the given node or token. + * @param {ASTNode|token} nodeOrToken The AST node or token to check for adjacent comment tokens. + * @returns {Array} An array of comments in occurrence order. + */ + getCommentsAfter(nodeOrToken) { + const cursor = createCursorWithCount( + cursors.forward, + this[TOKENS], + this[COMMENTS], + this[INDEX_MAP], + nodeOrToken.range[1], + -1, + { includeComments: true } + ); + + return getAdjacentCommentTokensFromCursor(cursor); + } + + /** + * Gets all comment tokens inside the given node. + * @param {ASTNode} node The AST node to get the comments for. + * @returns {Array} An array of comments in occurrence order. + */ + getCommentsInside(node) { + return this.getTokens(node, { + includeComments: true, + filter: isCommentToken + }); + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/limit-cursor.js b/node_modules/eslint/lib/source-code/token-store/limit-cursor.js new file mode 100644 index 0000000..0fd92a7 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/limit-cursor.js @@ -0,0 +1,40 @@ +/** + * @fileoverview Define the cursor which limits the number of tokens. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const DecorativeCursor = require("./decorative-cursor"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The decorative cursor which limits the number of tokens. + */ +module.exports = class LimitCursor extends DecorativeCursor { + + /** + * Initializes this cursor. + * @param {Cursor} cursor The cursor to be decorated. + * @param {number} count The count of tokens this cursor iterates. + */ + constructor(cursor, count) { + super(cursor); + this.count = count; + } + + /** @inheritdoc */ + moveNext() { + if (this.count > 0) { + this.count -= 1; + return super.moveNext(); + } + return false; + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js b/node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js new file mode 100644 index 0000000..89349fa --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js @@ -0,0 +1,38 @@ +/** + * @fileoverview Define the cursor which iterates tokens only, with inflated range. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const ForwardTokenCursor = require("./forward-token-cursor"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The cursor which iterates tokens only, with inflated range. + * This is for the backward compatibility of padding options. + */ +module.exports = class PaddedTokenCursor extends ForwardTokenCursor { + + /** + * Initializes this cursor. + * @param {Token[]} tokens The array of tokens. + * @param {Comment[]} comments The array of comments. + * @param {Object} indexMap The map from locations to indices in `tokens`. + * @param {number} startLoc The start location of the iteration range. + * @param {number} endLoc The end location of the iteration range. + * @param {number} beforeCount The number of tokens this cursor iterates before start. + * @param {number} afterCount The number of tokens this cursor iterates after end. + */ + constructor(tokens, comments, indexMap, startLoc, endLoc, beforeCount, afterCount) { + super(tokens, comments, indexMap, startLoc, endLoc); + this.index = Math.max(0, this.index - beforeCount); + this.indexEnd = Math.min(tokens.length - 1, this.indexEnd + afterCount); + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/skip-cursor.js b/node_modules/eslint/lib/source-code/token-store/skip-cursor.js new file mode 100644 index 0000000..f068f53 --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/skip-cursor.js @@ -0,0 +1,42 @@ +/** + * @fileoverview Define the cursor which ignores the first few tokens. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const DecorativeCursor = require("./decorative-cursor"); + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The decorative cursor which ignores the first few tokens. + */ +module.exports = class SkipCursor extends DecorativeCursor { + + /** + * Initializes this cursor. + * @param {Cursor} cursor The cursor to be decorated. + * @param {number} count The count of tokens this cursor skips. + */ + constructor(cursor, count) { + super(cursor); + this.count = count; + } + + /** @inheritdoc */ + moveNext() { + while (this.count > 0) { + this.count -= 1; + if (!super.moveNext()) { + return false; + } + } + return super.moveNext(); + } +}; diff --git a/node_modules/eslint/lib/source-code/token-store/utils.js b/node_modules/eslint/lib/source-code/token-store/utils.js new file mode 100644 index 0000000..a2bd77d --- /dev/null +++ b/node_modules/eslint/lib/source-code/token-store/utils.js @@ -0,0 +1,92 @@ +/** + * @fileoverview Define utility functions for token store. + * @author Toru Nagashima + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Gets `token.range[0]` from the given token. + * @param {Node|Token|Comment} token The token to get. + * @returns {number} The start location. + * @private + */ +function getStartLocation(token) { + return token.range[0]; +} + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * Finds the index of the first token which is after the given location. + * If it was not found, this returns `tokens.length`. + * @param {(Token|Comment)[]} tokens It searches the token in this list. + * @param {number} location The location to search. + * @returns {number} The found index or `tokens.length`. + */ +exports.search = function search(tokens, location) { + const index = tokens.findIndex(el => location <= getStartLocation(el)); + + return index === -1 ? tokens.length : index; +}; + +/** + * Gets the index of the `startLoc` in `tokens`. + * `startLoc` can be the value of `node.range[1]`, so this checks about `startLoc - 1` as well. + * @param {(Token|Comment)[]} tokens The tokens to find an index. + * @param {Object} indexMap The map from locations to indices. + * @param {number} startLoc The location to get an index. + * @returns {number} The index. + */ +exports.getFirstIndex = function getFirstIndex(tokens, indexMap, startLoc) { + if (startLoc in indexMap) { + return indexMap[startLoc]; + } + if ((startLoc - 1) in indexMap) { + const index = indexMap[startLoc - 1]; + const token = (index >= 0 && index < tokens.length) ? tokens[index] : null; + + /* + * For the map of "comment's location -> token's index", it points the next token of a comment. + * In that case, +1 is unnecessary. + */ + if (token && token.range[0] >= startLoc) { + return index; + } + return index + 1; + } + return 0; +}; + +/** + * Gets the index of the `endLoc` in `tokens`. + * The information of end locations are recorded at `endLoc - 1` in `indexMap`, so this checks about `endLoc - 1` as well. + * @param {(Token|Comment)[]} tokens The tokens to find an index. + * @param {Object} indexMap The map from locations to indices. + * @param {number} endLoc The location to get an index. + * @returns {number} The index. + */ +exports.getLastIndex = function getLastIndex(tokens, indexMap, endLoc) { + if (endLoc in indexMap) { + return indexMap[endLoc] - 1; + } + if ((endLoc - 1) in indexMap) { + const index = indexMap[endLoc - 1]; + const token = (index >= 0 && index < tokens.length) ? tokens[index] : null; + + /* + * For the map of "comment's location -> token's index", it points the next token of a comment. + * In that case, -1 is necessary. + */ + if (token && token.range[1] > endLoc) { + return index - 1; + } + return index; + } + return tokens.length - 1; +}; diff --git a/node_modules/eslint/lib/unsupported-api.js b/node_modules/eslint/lib/unsupported-api.js new file mode 100644 index 0000000..c1daf54 --- /dev/null +++ b/node_modules/eslint/lib/unsupported-api.js @@ -0,0 +1,27 @@ +/** + * @fileoverview APIs that are not officially supported by ESLint. + * These APIs may change or be removed at any time. Use at your + * own risk. + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const { FileEnumerator } = require("./cli-engine/file-enumerator"); +const { FlatESLint } = require("./eslint/flat-eslint"); +const FlatRuleTester = require("./rule-tester/flat-rule-tester"); + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +module.exports = { + builtinRules: require("./rules"), + FlatESLint, + FlatRuleTester, + FileEnumerator +}; diff --git a/node_modules/eslint/messages/all-files-ignored.js b/node_modules/eslint/messages/all-files-ignored.js new file mode 100644 index 0000000..70877a4 --- /dev/null +++ b/node_modules/eslint/messages/all-files-ignored.js @@ -0,0 +1,16 @@ +"use strict"; + +module.exports = function(it) { + const { pattern } = it; + + return ` +You are linting "${pattern}", but all of the files matching the glob pattern "${pattern}" are ignored. + +If you don't want to lint these files, remove the pattern "${pattern}" from the list of arguments passed to ESLint. + +If you do want to lint these files, try the following solutions: + +* Check your .eslintignore file, or the eslintIgnore property in package.json, to ensure that the files are not configured to be ignored. +* Explicitly list the files from this glob that you'd like to lint on the command-line, rather than providing a glob as an argument. +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/extend-config-missing.js b/node_modules/eslint/messages/extend-config-missing.js new file mode 100644 index 0000000..5b3498f --- /dev/null +++ b/node_modules/eslint/messages/extend-config-missing.js @@ -0,0 +1,13 @@ +"use strict"; + +module.exports = function(it) { + const { configName, importerName } = it; + + return ` +ESLint couldn't find the config "${configName}" to extend from. Please check that the name of the config is correct. + +The config "${configName}" was referenced from the config file in "${importerName}". + +If you still have problems, please stop by https://eslint.org/chat/help to chat with the team. +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/failed-to-read-json.js b/node_modules/eslint/messages/failed-to-read-json.js new file mode 100644 index 0000000..e7c6cb5 --- /dev/null +++ b/node_modules/eslint/messages/failed-to-read-json.js @@ -0,0 +1,11 @@ +"use strict"; + +module.exports = function(it) { + const { path, message } = it; + + return ` +Failed to read JSON file at ${path}: + +${message} +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/file-not-found.js b/node_modules/eslint/messages/file-not-found.js new file mode 100644 index 0000000..1a62fcf --- /dev/null +++ b/node_modules/eslint/messages/file-not-found.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = function(it) { + const { pattern, globDisabled } = it; + + return ` +No files matching the pattern "${pattern}"${globDisabled ? " (with disabling globs)" : ""} were found. +Please check for typing mistakes in the pattern. +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/no-config-found.js b/node_modules/eslint/messages/no-config-found.js new file mode 100644 index 0000000..9860410 --- /dev/null +++ b/node_modules/eslint/messages/no-config-found.js @@ -0,0 +1,15 @@ +"use strict"; + +module.exports = function(it) { + const { directoryPath } = it; + + return ` +ESLint couldn't find a configuration file. To set up a configuration file for this project, please run: + + npm init @eslint/config + +ESLint looked for configuration files in ${directoryPath} and its ancestors. If it found none, it then looked in your home directory. + +If you think you already have a configuration file or if you need more help, please stop by the ESLint chat room: https://eslint.org/chat/help +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/plugin-conflict.js b/node_modules/eslint/messages/plugin-conflict.js new file mode 100644 index 0000000..c8c060e --- /dev/null +++ b/node_modules/eslint/messages/plugin-conflict.js @@ -0,0 +1,22 @@ +"use strict"; + +module.exports = function(it) { + const { pluginId, plugins } = it; + + let result = `ESLint couldn't determine the plugin "${pluginId}" uniquely. +`; + + for (const { filePath, importerName } of plugins) { + result += ` +- ${filePath} (loaded in "${importerName}")`; + } + + result += ` + +Please remove the "plugins" setting from either config or remove either plugin installation. + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`; + + return result; +}; diff --git a/node_modules/eslint/messages/plugin-invalid.js b/node_modules/eslint/messages/plugin-invalid.js new file mode 100644 index 0000000..8b471d4 --- /dev/null +++ b/node_modules/eslint/messages/plugin-invalid.js @@ -0,0 +1,16 @@ +"use strict"; + +module.exports = function(it) { + const { configName, importerName } = it; + + return ` +"${configName}" is invalid syntax for a config specifier. + +* If your intention is to extend from a configuration exported from the plugin, add the configuration name after a slash: e.g. "${configName}/myConfig". +* If this is the name of a shareable config instead of a plugin, remove the "plugin:" prefix: i.e. "${configName.slice("plugin:".length)}". + +"${configName}" was referenced from the config file in "${importerName}". + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/plugin-missing.js b/node_modules/eslint/messages/plugin-missing.js new file mode 100644 index 0000000..0b7d34e --- /dev/null +++ b/node_modules/eslint/messages/plugin-missing.js @@ -0,0 +1,19 @@ +"use strict"; + +module.exports = function(it) { + const { pluginName, resolvePluginsRelativeTo, importerName } = it; + + return ` +ESLint couldn't find the plugin "${pluginName}". + +(The package "${pluginName}" was not found when loaded as a Node module from the directory "${resolvePluginsRelativeTo}".) + +It's likely that the plugin isn't installed correctly. Try reinstalling by running the following: + + npm install ${pluginName}@latest --save-dev + +The plugin "${pluginName}" was referenced from the config file in "${importerName}". + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/print-config-with-directory-path.js b/node_modules/eslint/messages/print-config-with-directory-path.js new file mode 100644 index 0000000..f65bdaa --- /dev/null +++ b/node_modules/eslint/messages/print-config-with-directory-path.js @@ -0,0 +1,8 @@ +"use strict"; + +module.exports = function() { + return ` +The '--print-config' CLI option requires a path to a source code file rather than a directory. +See also: https://eslint.org/docs/user-guide/command-line-interface#--print-config +`.trimStart(); +}; diff --git a/node_modules/eslint/messages/whitespace-found.js b/node_modules/eslint/messages/whitespace-found.js new file mode 100644 index 0000000..8a801bc --- /dev/null +++ b/node_modules/eslint/messages/whitespace-found.js @@ -0,0 +1,11 @@ +"use strict"; + +module.exports = function(it) { + const { pluginName } = it; + + return ` +ESLint couldn't find the plugin "${pluginName}". because there is whitespace in the name. Please check your configuration and remove all whitespace from the plugin name. + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`.trimStart(); +}; diff --git a/node_modules/eslint/package.json b/node_modules/eslint/package.json new file mode 100644 index 0000000..2c608dc --- /dev/null +++ b/node_modules/eslint/package.json @@ -0,0 +1,171 @@ +{ + "name": "eslint", + "version": "8.24.0", + "author": "Nicholas C. Zakas ", + "description": "An AST-based pattern checker for JavaScript.", + "bin": { + "eslint": "./bin/eslint.js" + }, + "main": "./lib/api.js", + "exports": { + "./package.json": "./package.json", + ".": "./lib/api.js", + "./use-at-your-own-risk": "./lib/unsupported-api.js" + }, + "scripts": { + "test": "node Makefile.js test", + "test:cli": "mocha", + "lint": "node Makefile.js lint", + "lint:docsjs": "node Makefile.js lintDocsJS", + "fix": "node Makefile.js lint -- fix", + "fix:docsjs": "node Makefile.js lintDocsJS -- fix", + "fuzz": "node Makefile.js fuzz", + "generate-release": "node Makefile.js generateRelease", + "generate-alpharelease": "node Makefile.js generatePrerelease -- alpha", + "generate-betarelease": "node Makefile.js generatePrerelease -- beta", + "generate-rcrelease": "node Makefile.js generatePrerelease -- rc", + "publish-release": "node Makefile.js publishRelease", + "gensite": "node Makefile.js gensite", + "webpack": "node Makefile.js webpack", + "perf": "node Makefile.js perf", + "docs:update-links": "node tools/fetch-docs-links.js" + }, + "gitHooks": { + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.js": "eslint --fix", + "*.md": "markdownlint --fix", + "docs/src/rules/*.md": [ + "node tools/fetch-docs-links.js", + "git add docs/src/_data/further_reading_links.json" + ], + "docs/**/*.svg": "npx svgo -r --multipass" + }, + "files": [ + "LICENSE", + "README.md", + "bin", + "conf", + "lib", + "messages" + ], + "repository": "eslint/eslint", + "funding": "https://opencollective.com/eslint", + "homepage": "https://eslint.org", + "bugs": "https://github.com/eslint/eslint/issues/", + "dependencies": { + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "devDependencies": { + "@babel/core": "^7.4.3", + "@babel/preset-env": "^7.4.3", + "babel-loader": "^8.0.5", + "c8": "^7.12.0", + "chai": "^4.0.1", + "cheerio": "^0.22.0", + "common-tags": "^1.8.0", + "core-js": "^3.1.3", + "ejs": "^3.0.2", + "eslint": "file:.", + "eslint-config-eslint": "file:packages/eslint-config-eslint", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-eslint-plugin": "^4.4.0", + "eslint-plugin-internal-rules": "file:tools/internal-rules", + "eslint-plugin-jsdoc": "^38.1.6", + "eslint-plugin-n": "^15.2.4", + "eslint-plugin-unicorn": "^42.0.0", + "eslint-release": "^3.2.0", + "eslump": "^3.0.0", + "esprima": "^4.0.1", + "fast-glob": "^3.2.11", + "fs-teardown": "^0.1.3", + "glob": "^7.1.6", + "got": "^11.8.3", + "gray-matter": "^4.0.3", + "jsdoc": "^3.5.5", + "karma": "^6.1.1", + "karma-chrome-launcher": "^3.1.0", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", + "karma-webpack": "^5.0.0", + "lint-staged": "^11.0.0", + "load-perf": "^0.2.0", + "markdownlint": "^0.25.1", + "markdownlint-cli": "^0.31.1", + "marked": "^4.0.8", + "memfs": "^3.0.1", + "metascraper": "^5.25.7", + "metascraper-description": "^5.25.7", + "metascraper-image": "^5.29.3", + "metascraper-logo": "^5.25.7", + "metascraper-logo-favicon": "^5.25.7", + "metascraper-title": "^5.25.7", + "mocha": "^8.3.2", + "mocha-junit-reporter": "^2.0.0", + "node-polyfill-webpack-plugin": "^1.0.3", + "npm-license": "^0.3.3", + "pirates": "^4.0.5", + "progress": "^2.0.3", + "proxyquire": "^2.0.1", + "puppeteer": "^13.7.0", + "recast": "^0.20.4", + "regenerator-runtime": "^0.13.2", + "semver": "^7.3.5", + "shelljs": "^0.8.2", + "sinon": "^11.0.0", + "temp": "^0.9.0", + "webpack": "^5.23.0", + "webpack-cli": "^4.5.0", + "yorkie": "^2.0.0" + }, + "keywords": [ + "ast", + "lint", + "javascript", + "ecmascript", + "espree" + ], + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } +} diff --git a/node_modules/espree/LICENSE b/node_modules/espree/LICENSE new file mode 100644 index 0000000..b18469f --- /dev/null +++ b/node_modules/espree/LICENSE @@ -0,0 +1,25 @@ +BSD 2-Clause License + +Copyright (c) Open JS Foundation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/espree/README.md b/node_modules/espree/README.md new file mode 100644 index 0000000..58e2298 --- /dev/null +++ b/node_modules/espree/README.md @@ -0,0 +1,244 @@ +[![npm version](https://img.shields.io/npm/v/espree.svg)](https://www.npmjs.com/package/espree) +[![npm downloads](https://img.shields.io/npm/dm/espree.svg)](https://www.npmjs.com/package/espree) +[![Build Status](https://github.com/eslint/espree/workflows/CI/badge.svg)](https://github.com/eslint/espree/actions) +[![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=9348450)](https://www.bountysource.com/trackers/9348450-eslint?utm_source=9348450&utm_medium=shield&utm_campaign=TRACKER_BADGE) + +# Espree + +Espree started out as a fork of [Esprima](http://esprima.org) v1.2.2, the last stable published released of Esprima before work on ECMAScript 6 began. Espree is now built on top of [Acorn](https://github.com/ternjs/acorn), which has a modular architecture that allows extension of core functionality. The goal of Espree is to produce output that is similar to Esprima with a similar API so that it can be used in place of Esprima. + +## Usage + +Install: + +``` +npm i espree +``` + +To use in an ESM file: + +```js +import * as espree from "espree"; + +const ast = espree.parse(code); +``` + +To use in a Common JS file: + +```js +const espree = require("espree"); + +const ast = espree.parse(code); +``` + +## API + +### `parse()` + +`parse` parses the given code and returns a abstract syntax tree (AST). It takes two parameters. + +- `code` [string]() - the code which needs to be parsed. +- `options (Optional)` [Object]() - read more about this [here](#options). + +```js +import * as espree from "espree"; + +const ast = espree.parse(code); +``` + +**Example :** + +```js +const ast = espree.parse('let foo = "bar"', { ecmaVersion: 6 }); +console.log(ast); +``` + +
Output +

+ +``` +Node { + type: 'Program', + start: 0, + end: 15, + body: [ + Node { + type: 'VariableDeclaration', + start: 0, + end: 15, + declarations: [Array], + kind: 'let' + } + ], + sourceType: 'script' +} +``` + +

+
+ +### `tokenize()` + +`tokenize` returns the tokens of a given code. It takes two parameters. + +- `code` [string]() - the code which needs to be parsed. +- `options (Optional)` [Object]() - read more about this [here](#options). + +Even if `options` is empty or undefined or `options.tokens` is `false`, it assigns it to `true` in order to get the `tokens` array + +**Example :** + +```js +import * as espree from "espree"; + +const tokens = espree.tokenize('let foo = "bar"', { ecmaVersion: 6 }); +console.log(tokens); +``` + +
Output +

+ +``` +Token { type: 'Keyword', value: 'let', start: 0, end: 3 }, +Token { type: 'Identifier', value: 'foo', start: 4, end: 7 }, +Token { type: 'Punctuator', value: '=', start: 8, end: 9 }, +Token { type: 'String', value: '"bar"', start: 10, end: 15 } +``` + +

+
+ +### `version` + +Returns the current `espree` version + +### `VisitorKeys` + +Returns all visitor keys for traversing the AST from [eslint-visitor-keys](https://github.com/eslint/eslint-visitor-keys) + +### `latestEcmaVersion` + +Returns the latest ECMAScript supported by `espree` + +### `supportedEcmaVersions` + +Returns an array of all supported ECMAScript versions + +## Options + +```js +const options = { + // attach range information to each node + range: false, + + // attach line/column location information to each node + loc: false, + + // create a top-level comments array containing all comments + comment: false, + + // create a top-level tokens array containing all tokens + tokens: false, + + // Set to 3, 5 (the default), 6, 7, 8, 9, 10, 11, 12, or 13 to specify the version of ECMAScript syntax you want to use. + // You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), 2018 (same as 9), 2019 (same as 10), 2020 (same as 11), 2021 (same as 12), or 2022 (same as 13) to use the year-based naming. + // You can also set "latest" to use the most recently supported version. + ecmaVersion: 3, + + allowReserved: true, // only allowed when ecmaVersion is 3 + + // specify which type of script you're parsing ("script", "module", or "commonjs") + sourceType: "script", + + // specify additional language features + ecmaFeatures: { + + // enable JSX parsing + jsx: false, + + // enable return in global scope (set to true automatically when sourceType is "commonjs") + globalReturn: false, + + // enable implied strict mode (if ecmaVersion >= 5) + impliedStrict: false + } +} +``` + +## Esprima Compatibility Going Forward + +The primary goal is to produce the exact same AST structure and tokens as Esprima, and that takes precedence over anything else. (The AST structure being the [ESTree](https://github.com/estree/estree) API with JSX extensions.) Separate from that, Espree may deviate from what Esprima outputs in terms of where and how comments are attached, as well as what additional information is available on AST nodes. That is to say, Espree may add more things to the AST nodes than Esprima does but the overall AST structure produced will be the same. + +Espree may also deviate from Esprima in the interface it exposes. + +## Contributing + +Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/espree/issues). + +Espree is licensed under a permissive BSD 2-clause license. + +## Security Policy + +We work hard to ensure that Espree is safe for everyone and that security issues are addressed quickly and responsibly. Read the full [security policy](https://github.com/eslint/.github/blob/master/SECURITY.md). + +## Build Commands + +* `npm test` - run all linting and tests +* `npm run lint` - run all linting + +## Differences from Espree 2.x + +* The `tokenize()` method does not use `ecmaFeatures`. Any string will be tokenized completely based on ECMAScript 6 semantics. +* Trailing whitespace no longer is counted as part of a node. +* `let` and `const` declarations are no longer parsed by default. You must opt-in by using an `ecmaVersion` newer than `5` or setting `sourceType` to `module`. +* The `esparse` and `esvalidate` binary scripts have been removed. +* There is no `tolerant` option. We will investigate adding this back in the future. + +## Known Incompatibilities + +In an effort to help those wanting to transition from other parsers to Espree, the following is a list of noteworthy incompatibilities with other parsers. These are known differences that we do not intend to change. + +### Esprima 1.2.2 + +* Esprima counts trailing whitespace as part of each AST node while Espree does not. In Espree, the end of a node is where the last token occurs. +* Espree does not parse `let` and `const` declarations by default. +* Error messages returned for parsing errors are different. +* There are two addition properties on every node and token: `start` and `end`. These represent the same data as `range` and are used internally by Acorn. + +### Esprima 2.x + +* Esprima 2.x uses a different comment attachment algorithm that results in some comments being added in different places than Espree. The algorithm Espree uses is the same one used in Esprima 1.2.2. + +## Frequently Asked Questions + +### Why another parser + +[ESLint](http://eslint.org) had been relying on Esprima as its parser from the beginning. While that was fine when the JavaScript language was evolving slowly, the pace of development increased dramatically and Esprima had fallen behind. ESLint, like many other tools reliant on Esprima, has been stuck in using new JavaScript language features until Esprima updates, and that caused our users frustration. + +We decided the only way for us to move forward was to create our own parser, bringing us inline with JSHint and JSLint, and allowing us to keep implementing new features as we need them. We chose to fork Esprima instead of starting from scratch in order to move as quickly as possible with a compatible API. + +With Espree 2.0.0, we are no longer a fork of Esprima but rather a translation layer between Acorn and Esprima syntax. This allows us to put work back into a community-supported parser (Acorn) that is continuing to grow and evolve while maintaining an Esprima-compatible parser for those utilities still built on Esprima. + +### Have you tried working with Esprima? + +Yes. Since the start of ESLint, we've regularly filed bugs and feature requests with Esprima and will continue to do so. However, there are some different philosophies around how the projects work that need to be worked through. The initial goal was to have Espree track Esprima and eventually merge the two back together, but we ultimately decided that building on top of Acorn was a better choice due to Acorn's plugin support. + +### Why don't you just use Acorn? + +Acorn is a great JavaScript parser that produces an AST that is compatible with Esprima. Unfortunately, ESLint relies on more than just the AST to do its job. It relies on Esprima's tokens and comment attachment features to get a complete picture of the source code. We investigated switching to Acorn, but the inconsistencies between Esprima and Acorn created too much work for a project like ESLint. + +We are building on top of Acorn, however, so that we can contribute back and help make Acorn even better. + +### What ECMAScript features do you support? + +Espree supports all ECMAScript 2022 features and partially supports ECMAScript 2023 features. + +Because ECMAScript 2023 is still under development, we are implementing features as they are finalized. Currently, Espree supports: + +* [Hashbang grammar](https://github.com/tc39/proposal-hashbang) + +See [finished-proposals.md](https://github.com/tc39/proposals/blob/master/finished-proposals.md) to know what features are finalized. + +### How do you determine which experimental features to support? + +In general, we do not support experimental JavaScript features. We may make exceptions from time to time depending on the maturity of the features. diff --git a/node_modules/espree/dist/espree.cjs b/node_modules/espree/dist/espree.cjs new file mode 100644 index 0000000..62bf7a3 --- /dev/null +++ b/node_modules/espree/dist/espree.cjs @@ -0,0 +1,938 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var acorn = require('acorn'); +var jsx = require('acorn-jsx'); +var visitorKeys = require('eslint-visitor-keys'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); +} + +var acorn__namespace = /*#__PURE__*/_interopNamespace(acorn); +var jsx__default = /*#__PURE__*/_interopDefaultLegacy(jsx); +var visitorKeys__namespace = /*#__PURE__*/_interopNamespace(visitorKeys); + +/** + * @fileoverview Translates tokens between Acorn format and Esprima format. + * @author Nicholas C. Zakas + */ +/* eslint no-underscore-dangle: 0 */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +// none! + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + + +// Esprima Token Types +const Token = { + Boolean: "Boolean", + EOF: "", + Identifier: "Identifier", + PrivateIdentifier: "PrivateIdentifier", + Keyword: "Keyword", + Null: "Null", + Numeric: "Numeric", + Punctuator: "Punctuator", + String: "String", + RegularExpression: "RegularExpression", + Template: "Template", + JSXIdentifier: "JSXIdentifier", + JSXText: "JSXText" +}; + +/** + * Converts part of a template into an Esprima token. + * @param {AcornToken[]} tokens The Acorn tokens representing the template. + * @param {string} code The source code. + * @returns {EsprimaToken} The Esprima equivalent of the template token. + * @private + */ +function convertTemplatePart(tokens, code) { + const firstToken = tokens[0], + lastTemplateToken = tokens[tokens.length - 1]; + + const token = { + type: Token.Template, + value: code.slice(firstToken.start, lastTemplateToken.end) + }; + + if (firstToken.loc) { + token.loc = { + start: firstToken.loc.start, + end: lastTemplateToken.loc.end + }; + } + + if (firstToken.range) { + token.start = firstToken.range[0]; + token.end = lastTemplateToken.range[1]; + token.range = [token.start, token.end]; + } + + return token; +} + +/** + * Contains logic to translate Acorn tokens into Esprima tokens. + * @param {Object} acornTokTypes The Acorn token types. + * @param {string} code The source code Acorn is parsing. This is necessary + * to correct the "value" property of some tokens. + * @constructor + */ +function TokenTranslator(acornTokTypes, code) { + + // token types + this._acornTokTypes = acornTokTypes; + + // token buffer for templates + this._tokens = []; + + // track the last curly brace + this._curlyBrace = null; + + // the source code + this._code = code; + +} + +TokenTranslator.prototype = { + constructor: TokenTranslator, + + /** + * Translates a single Esprima token to a single Acorn token. This may be + * inaccurate due to how templates are handled differently in Esprima and + * Acorn, but should be accurate for all other tokens. + * @param {AcornToken} token The Acorn token to translate. + * @param {Object} extra Espree extra object. + * @returns {EsprimaToken} The Esprima version of the token. + */ + translate(token, extra) { + + const type = token.type, + tt = this._acornTokTypes; + + if (type === tt.name) { + token.type = Token.Identifier; + + // TODO: See if this is an Acorn bug + if (token.value === "static") { + token.type = Token.Keyword; + } + + if (extra.ecmaVersion > 5 && (token.value === "yield" || token.value === "let")) { + token.type = Token.Keyword; + } + + } else if (type === tt.privateId) { + token.type = Token.PrivateIdentifier; + + } else if (type === tt.semi || type === tt.comma || + type === tt.parenL || type === tt.parenR || + type === tt.braceL || type === tt.braceR || + type === tt.dot || type === tt.bracketL || + type === tt.colon || type === tt.question || + type === tt.bracketR || type === tt.ellipsis || + type === tt.arrow || type === tt.jsxTagStart || + type === tt.incDec || type === tt.starstar || + type === tt.jsxTagEnd || type === tt.prefix || + type === tt.questionDot || + (type.binop && !type.keyword) || + type.isAssign) { + + token.type = Token.Punctuator; + token.value = this._code.slice(token.start, token.end); + } else if (type === tt.jsxName) { + token.type = Token.JSXIdentifier; + } else if (type.label === "jsxText" || type === tt.jsxAttrValueToken) { + token.type = Token.JSXText; + } else if (type.keyword) { + if (type.keyword === "true" || type.keyword === "false") { + token.type = Token.Boolean; + } else if (type.keyword === "null") { + token.type = Token.Null; + } else { + token.type = Token.Keyword; + } + } else if (type === tt.num) { + token.type = Token.Numeric; + token.value = this._code.slice(token.start, token.end); + } else if (type === tt.string) { + + if (extra.jsxAttrValueToken) { + extra.jsxAttrValueToken = false; + token.type = Token.JSXText; + } else { + token.type = Token.String; + } + + token.value = this._code.slice(token.start, token.end); + } else if (type === tt.regexp) { + token.type = Token.RegularExpression; + const value = token.value; + + token.regex = { + flags: value.flags, + pattern: value.pattern + }; + token.value = `/${value.pattern}/${value.flags}`; + } + + return token; + }, + + /** + * Function to call during Acorn's onToken handler. + * @param {AcornToken} token The Acorn token. + * @param {Object} extra The Espree extra object. + * @returns {void} + */ + onToken(token, extra) { + + const that = this, + tt = this._acornTokTypes, + tokens = extra.tokens, + templateTokens = this._tokens; + + /** + * Flushes the buffered template tokens and resets the template + * tracking. + * @returns {void} + * @private + */ + function translateTemplateTokens() { + tokens.push(convertTemplatePart(that._tokens, that._code)); + that._tokens = []; + } + + if (token.type === tt.eof) { + + // might be one last curlyBrace + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + } + + return; + } + + if (token.type === tt.backQuote) { + + // if there's already a curly, it's not part of the template + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + this._curlyBrace = null; + } + + templateTokens.push(token); + + // it's the end + if (templateTokens.length > 1) { + translateTemplateTokens(); + } + + return; + } + if (token.type === tt.dollarBraceL) { + templateTokens.push(token); + translateTemplateTokens(); + return; + } + if (token.type === tt.braceR) { + + // if there's already a curly, it's not part of the template + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + } + + // store new curly for later + this._curlyBrace = token; + return; + } + if (token.type === tt.template || token.type === tt.invalidTemplate) { + if (this._curlyBrace) { + templateTokens.push(this._curlyBrace); + this._curlyBrace = null; + } + + templateTokens.push(token); + return; + } + + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + this._curlyBrace = null; + } + + tokens.push(this.translate(token, extra)); + } +}; + +/** + * @fileoverview A collection of methods for processing Espree's options. + * @author Kai Cataldo + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SUPPORTED_VERSIONS = [ + 3, + 5, + 6, // 2015 + 7, // 2016 + 8, // 2017 + 9, // 2018 + 10, // 2019 + 11, // 2020 + 12, // 2021 + 13, // 2022 + 14 // 2023 +]; + +/** + * Get the latest ECMAScript version supported by Espree. + * @returns {number} The latest ECMAScript version. + */ +function getLatestEcmaVersion() { + return SUPPORTED_VERSIONS[SUPPORTED_VERSIONS.length - 1]; +} + +/** + * Get the list of ECMAScript versions supported by Espree. + * @returns {number[]} An array containing the supported ECMAScript versions. + */ +function getSupportedEcmaVersions() { + return [...SUPPORTED_VERSIONS]; +} + +/** + * Normalize ECMAScript version from the initial config + * @param {(number|"latest")} ecmaVersion ECMAScript version from the initial config + * @throws {Error} throws an error if the ecmaVersion is invalid. + * @returns {number} normalized ECMAScript version + */ +function normalizeEcmaVersion(ecmaVersion = 5) { + + let version = ecmaVersion === "latest" ? getLatestEcmaVersion() : ecmaVersion; + + if (typeof version !== "number") { + throw new Error(`ecmaVersion must be a number or "latest". Received value of type ${typeof ecmaVersion} instead.`); + } + + // Calculate ECMAScript edition number from official year version starting with + // ES2015, which corresponds with ES6 (or a difference of 2009). + if (version >= 2015) { + version -= 2009; + } + + if (!SUPPORTED_VERSIONS.includes(version)) { + throw new Error("Invalid ecmaVersion."); + } + + return version; +} + +/** + * Normalize sourceType from the initial config + * @param {string} sourceType to normalize + * @throws {Error} throw an error if sourceType is invalid + * @returns {string} normalized sourceType + */ +function normalizeSourceType(sourceType = "script") { + if (sourceType === "script" || sourceType === "module") { + return sourceType; + } + + if (sourceType === "commonjs") { + return "script"; + } + + throw new Error("Invalid sourceType."); +} + +/** + * Normalize parserOptions + * @param {Object} options the parser options to normalize + * @throws {Error} throw an error if found invalid option. + * @returns {Object} normalized options + */ +function normalizeOptions(options) { + const ecmaVersion = normalizeEcmaVersion(options.ecmaVersion); + const sourceType = normalizeSourceType(options.sourceType); + const ranges = options.range === true; + const locations = options.loc === true; + + if (ecmaVersion !== 3 && options.allowReserved) { + + // a value of `false` is intentionally allowed here, so a shared config can overwrite it when needed + throw new Error("`allowReserved` is only supported when ecmaVersion is 3"); + } + if (typeof options.allowReserved !== "undefined" && typeof options.allowReserved !== "boolean") { + throw new Error("`allowReserved`, when present, must be `true` or `false`"); + } + const allowReserved = ecmaVersion === 3 ? (options.allowReserved || "never") : false; + const ecmaFeatures = options.ecmaFeatures || {}; + const allowReturnOutsideFunction = options.sourceType === "commonjs" || + Boolean(ecmaFeatures.globalReturn); + + if (sourceType === "module" && ecmaVersion < 6) { + throw new Error("sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options."); + } + + return Object.assign({}, options, { + ecmaVersion, + sourceType, + ranges, + locations, + allowReserved, + allowReturnOutsideFunction + }); +} + +/* eslint-disable no-param-reassign*/ + + +const STATE = Symbol("espree's internal state"); +const ESPRIMA_FINISH_NODE = Symbol("espree's esprimaFinishNode"); + + +/** + * Converts an Acorn comment to a Esprima comment. + * @param {boolean} block True if it's a block comment, false if not. + * @param {string} text The text of the comment. + * @param {int} start The index at which the comment starts. + * @param {int} end The index at which the comment ends. + * @param {Location} startLoc The location at which the comment starts. + * @param {Location} endLoc The location at which the comment ends. + * @param {string} code The source code being parsed. + * @returns {Object} The comment object. + * @private + */ +function convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc, code) { + let type; + + if (block) { + type = "Block"; + } else if (code.slice(start, start + 2) === "#!") { + type = "Hashbang"; + } else { + type = "Line"; + } + + const comment = { + type, + value: text + }; + + if (typeof start === "number") { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + + if (typeof startLoc === "object") { + comment.loc = { + start: startLoc, + end: endLoc + }; + } + + return comment; +} + +var espree = () => Parser => { + const tokTypes = Object.assign({}, Parser.acorn.tokTypes); + + if (Parser.acornJsx) { + Object.assign(tokTypes, Parser.acornJsx.tokTypes); + } + + return class Espree extends Parser { + constructor(opts, code) { + if (typeof opts !== "object" || opts === null) { + opts = {}; + } + if (typeof code !== "string" && !(code instanceof String)) { + code = String(code); + } + + // save original source type in case of commonjs + const originalSourceType = opts.sourceType; + const options = normalizeOptions(opts); + const ecmaFeatures = options.ecmaFeatures || {}; + const tokenTranslator = + options.tokens === true + ? new TokenTranslator(tokTypes, code) + : null; + + /* + * Data that is unique to Espree and is not represented internally + * in Acorn. + * + * For ES2023 hashbangs, Espree will call `onComment()` during the + * constructor, so we must define state before having access to + * `this`. + */ + const state = { + originalSourceType: originalSourceType || options.sourceType, + tokens: tokenTranslator ? [] : null, + comments: options.comment === true ? [] : null, + impliedStrict: ecmaFeatures.impliedStrict === true && options.ecmaVersion >= 5, + ecmaVersion: options.ecmaVersion, + jsxAttrValueToken: false, + lastToken: null, + templateElements: [] + }; + + // Initialize acorn parser. + super({ + + // do not use spread, because we don't want to pass any unknown options to acorn + ecmaVersion: options.ecmaVersion, + sourceType: options.sourceType, + ranges: options.ranges, + locations: options.locations, + allowReserved: options.allowReserved, + + // Truthy value is true for backward compatibility. + allowReturnOutsideFunction: options.allowReturnOutsideFunction, + + // Collect tokens + onToken: token => { + if (tokenTranslator) { + + // Use `tokens`, `ecmaVersion`, and `jsxAttrValueToken` in the state. + tokenTranslator.onToken(token, state); + } + if (token.type !== tokTypes.eof) { + state.lastToken = token; + } + }, + + // Collect comments + onComment: (block, text, start, end, startLoc, endLoc) => { + if (state.comments) { + const comment = convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc, code); + + state.comments.push(comment); + } + } + }, code); + + /* + * We put all of this data into a symbol property as a way to avoid + * potential naming conflicts with future versions of Acorn. + */ + this[STATE] = state; + } + + tokenize() { + do { + this.next(); + } while (this.type !== tokTypes.eof); + + // Consume the final eof token + this.next(); + + const extra = this[STATE]; + const tokens = extra.tokens; + + if (extra.comments) { + tokens.comments = extra.comments; + } + + return tokens; + } + + finishNode(...args) { + const result = super.finishNode(...args); + + return this[ESPRIMA_FINISH_NODE](result); + } + + finishNodeAt(...args) { + const result = super.finishNodeAt(...args); + + return this[ESPRIMA_FINISH_NODE](result); + } + + parse() { + const extra = this[STATE]; + const program = super.parse(); + + program.sourceType = extra.originalSourceType; + + if (extra.comments) { + program.comments = extra.comments; + } + if (extra.tokens) { + program.tokens = extra.tokens; + } + + /* + * Adjust opening and closing position of program to match Esprima. + * Acorn always starts programs at range 0 whereas Esprima starts at the + * first AST node's start (the only real difference is when there's leading + * whitespace or leading comments). Acorn also counts trailing whitespace + * as part of the program whereas Esprima only counts up to the last token. + */ + if (program.body.length) { + const [firstNode] = program.body; + + if (program.range) { + program.range[0] = firstNode.range[0]; + } + if (program.loc) { + program.loc.start = firstNode.loc.start; + } + program.start = firstNode.start; + } + if (extra.lastToken) { + if (program.range) { + program.range[1] = extra.lastToken.range[1]; + } + if (program.loc) { + program.loc.end = extra.lastToken.loc.end; + } + program.end = extra.lastToken.end; + } + + + /* + * https://github.com/eslint/espree/issues/349 + * Ensure that template elements have correct range information. + * This is one location where Acorn produces a different value + * for its start and end properties vs. the values present in the + * range property. In order to avoid confusion, we set the start + * and end properties to the values that are present in range. + * This is done here, instead of in finishNode(), because Acorn + * uses the values of start and end internally while parsing, making + * it dangerous to change those values while parsing is ongoing. + * By waiting until the end of parsing, we can safely change these + * values without affect any other part of the process. + */ + this[STATE].templateElements.forEach(templateElement => { + const startOffset = -1; + const endOffset = templateElement.tail ? 1 : 2; + + templateElement.start += startOffset; + templateElement.end += endOffset; + + if (templateElement.range) { + templateElement.range[0] += startOffset; + templateElement.range[1] += endOffset; + } + + if (templateElement.loc) { + templateElement.loc.start.column += startOffset; + templateElement.loc.end.column += endOffset; + } + }); + + return program; + } + + parseTopLevel(node) { + if (this[STATE].impliedStrict) { + this.strict = true; + } + return super.parseTopLevel(node); + } + + /** + * Overwrites the default raise method to throw Esprima-style errors. + * @param {int} pos The position of the error. + * @param {string} message The error message. + * @throws {SyntaxError} A syntax error. + * @returns {void} + */ + raise(pos, message) { + const loc = Parser.acorn.getLineInfo(this.input, pos); + const err = new SyntaxError(message); + + err.index = pos; + err.lineNumber = loc.line; + err.column = loc.column + 1; // acorn uses 0-based columns + throw err; + } + + /** + * Overwrites the default raise method to throw Esprima-style errors. + * @param {int} pos The position of the error. + * @param {string} message The error message. + * @throws {SyntaxError} A syntax error. + * @returns {void} + */ + raiseRecoverable(pos, message) { + this.raise(pos, message); + } + + /** + * Overwrites the default unexpected method to throw Esprima-style errors. + * @param {int} pos The position of the error. + * @throws {SyntaxError} A syntax error. + * @returns {void} + */ + unexpected(pos) { + let message = "Unexpected token"; + + if (pos !== null && pos !== void 0) { + this.pos = pos; + + if (this.options.locations) { + while (this.pos < this.lineStart) { + this.lineStart = this.input.lastIndexOf("\n", this.lineStart - 2) + 1; + --this.curLine; + } + } + + this.nextToken(); + } + + if (this.end > this.start) { + message += ` ${this.input.slice(this.start, this.end)}`; + } + + this.raise(this.start, message); + } + + /* + * Esprima-FB represents JSX strings as tokens called "JSXText", but Acorn-JSX + * uses regular tt.string without any distinction between this and regular JS + * strings. As such, we intercept an attempt to read a JSX string and set a flag + * on extra so that when tokens are converted, the next token will be switched + * to JSXText via onToken. + */ + jsx_readString(quote) { // eslint-disable-line camelcase + const result = super.jsx_readString(quote); + + if (this.type === tokTypes.string) { + this[STATE].jsxAttrValueToken = true; + } + return result; + } + + /** + * Performs last-minute Esprima-specific compatibility checks and fixes. + * @param {ASTNode} result The node to check. + * @returns {ASTNode} The finished node. + */ + [ESPRIMA_FINISH_NODE](result) { + + // Acorn doesn't count the opening and closing backticks as part of templates + // so we have to adjust ranges/locations appropriately. + if (result.type === "TemplateElement") { + + // save template element references to fix start/end later + this[STATE].templateElements.push(result); + } + + if (result.type.includes("Function") && !result.generator) { + result.generator = false; + } + + return result; + } + }; +}; + +const version$1 = "9.4.0"; + +/** + * @fileoverview Main Espree file that converts Acorn into Esprima output. + * + * This file contains code from the following MIT-licensed projects: + * 1. Acorn + * 2. Babylon + * 3. Babel-ESLint + * + * This file also contains code from Esprima, which is BSD licensed. + * + * Acorn is Copyright 2012-2015 Acorn Contributors (https://github.com/marijnh/acorn/blob/master/AUTHORS) + * Babylon is Copyright 2014-2015 various contributors (https://github.com/babel/babel/blob/master/packages/babylon/AUTHORS) + * Babel-ESLint is Copyright 2014-2015 Sebastian McKenzie + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Esprima is Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +// To initialize lazily. +const parsers = { + _regular: null, + _jsx: null, + + get regular() { + if (this._regular === null) { + this._regular = acorn__namespace.Parser.extend(espree()); + } + return this._regular; + }, + + get jsx() { + if (this._jsx === null) { + this._jsx = acorn__namespace.Parser.extend(jsx__default["default"](), espree()); + } + return this._jsx; + }, + + get(options) { + const useJsx = Boolean( + options && + options.ecmaFeatures && + options.ecmaFeatures.jsx + ); + + return useJsx ? this.jsx : this.regular; + } +}; + +//------------------------------------------------------------------------------ +// Tokenizer +//------------------------------------------------------------------------------ + +/** + * Tokenizes the given code. + * @param {string} code The code to tokenize. + * @param {Object} options Options defining how to tokenize. + * @returns {Token[]} An array of tokens. + * @throws {SyntaxError} If the input code is invalid. + * @private + */ +function tokenize(code, options) { + const Parser = parsers.get(options); + + // Ensure to collect tokens. + if (!options || options.tokens !== true) { + options = Object.assign({}, options, { tokens: true }); // eslint-disable-line no-param-reassign + } + + return new Parser(options, code).tokenize(); +} + +//------------------------------------------------------------------------------ +// Parser +//------------------------------------------------------------------------------ + +/** + * Parses the given code. + * @param {string} code The code to tokenize. + * @param {Object} options Options defining how to tokenize. + * @returns {ASTNode} The "Program" AST node. + * @throws {SyntaxError} If the input code is invalid. + */ +function parse(code, options) { + const Parser = parsers.get(options); + + return new Parser(options, code).parse(); +} + +//------------------------------------------------------------------------------ +// Public +//------------------------------------------------------------------------------ + +const version = version$1; + +/* istanbul ignore next */ +const VisitorKeys = (function() { + return visitorKeys__namespace.KEYS; +}()); + +// Derive node types from VisitorKeys +/* istanbul ignore next */ +const Syntax = (function() { + let name, + types = {}; + + if (typeof Object.create === "function") { + types = Object.create(null); + } + + for (name in VisitorKeys) { + if (Object.hasOwnProperty.call(VisitorKeys, name)) { + types[name] = name; + } + } + + if (typeof Object.freeze === "function") { + Object.freeze(types); + } + + return types; +}()); + +const latestEcmaVersion = getLatestEcmaVersion(); + +const supportedEcmaVersions = getSupportedEcmaVersions(); + +exports.Syntax = Syntax; +exports.VisitorKeys = VisitorKeys; +exports.latestEcmaVersion = latestEcmaVersion; +exports.parse = parse; +exports.supportedEcmaVersions = supportedEcmaVersions; +exports.tokenize = tokenize; +exports.version = version; +//# sourceMappingURL=espree.cjs.map diff --git a/node_modules/espree/espree.js b/node_modules/espree/espree.js new file mode 100644 index 0000000..71e3d47 --- /dev/null +++ b/node_modules/espree/espree.js @@ -0,0 +1,173 @@ +/** + * @fileoverview Main Espree file that converts Acorn into Esprima output. + * + * This file contains code from the following MIT-licensed projects: + * 1. Acorn + * 2. Babylon + * 3. Babel-ESLint + * + * This file also contains code from Esprima, which is BSD licensed. + * + * Acorn is Copyright 2012-2015 Acorn Contributors (https://github.com/marijnh/acorn/blob/master/AUTHORS) + * Babylon is Copyright 2014-2015 various contributors (https://github.com/babel/babel/blob/master/packages/babylon/AUTHORS) + * Babel-ESLint is Copyright 2014-2015 Sebastian McKenzie + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Esprima is Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* eslint no-undefined:0, no-use-before-define: 0 */ + +import * as acorn from "acorn"; +import jsx from "acorn-jsx"; +import espree from "./lib/espree.js"; +import espreeVersion from "./lib/version.js"; +import * as visitorKeys from "eslint-visitor-keys"; +import { getLatestEcmaVersion, getSupportedEcmaVersions } from "./lib/options.js"; + + +// To initialize lazily. +const parsers = { + _regular: null, + _jsx: null, + + get regular() { + if (this._regular === null) { + this._regular = acorn.Parser.extend(espree()); + } + return this._regular; + }, + + get jsx() { + if (this._jsx === null) { + this._jsx = acorn.Parser.extend(jsx(), espree()); + } + return this._jsx; + }, + + get(options) { + const useJsx = Boolean( + options && + options.ecmaFeatures && + options.ecmaFeatures.jsx + ); + + return useJsx ? this.jsx : this.regular; + } +}; + +//------------------------------------------------------------------------------ +// Tokenizer +//------------------------------------------------------------------------------ + +/** + * Tokenizes the given code. + * @param {string} code The code to tokenize. + * @param {Object} options Options defining how to tokenize. + * @returns {Token[]} An array of tokens. + * @throws {SyntaxError} If the input code is invalid. + * @private + */ +export function tokenize(code, options) { + const Parser = parsers.get(options); + + // Ensure to collect tokens. + if (!options || options.tokens !== true) { + options = Object.assign({}, options, { tokens: true }); // eslint-disable-line no-param-reassign + } + + return new Parser(options, code).tokenize(); +} + +//------------------------------------------------------------------------------ +// Parser +//------------------------------------------------------------------------------ + +/** + * Parses the given code. + * @param {string} code The code to tokenize. + * @param {Object} options Options defining how to tokenize. + * @returns {ASTNode} The "Program" AST node. + * @throws {SyntaxError} If the input code is invalid. + */ +export function parse(code, options) { + const Parser = parsers.get(options); + + return new Parser(options, code).parse(); +} + +//------------------------------------------------------------------------------ +// Public +//------------------------------------------------------------------------------ + +export const version = espreeVersion; + +/* istanbul ignore next */ +export const VisitorKeys = (function() { + return visitorKeys.KEYS; +}()); + +// Derive node types from VisitorKeys +/* istanbul ignore next */ +export const Syntax = (function() { + let name, + types = {}; + + if (typeof Object.create === "function") { + types = Object.create(null); + } + + for (name in VisitorKeys) { + if (Object.hasOwnProperty.call(VisitorKeys, name)) { + types[name] = name; + } + } + + if (typeof Object.freeze === "function") { + Object.freeze(types); + } + + return types; +}()); + +export const latestEcmaVersion = getLatestEcmaVersion(); + +export const supportedEcmaVersions = getSupportedEcmaVersions(); diff --git a/node_modules/espree/lib/espree.js b/node_modules/espree/lib/espree.js new file mode 100644 index 0000000..262dd27 --- /dev/null +++ b/node_modules/espree/lib/espree.js @@ -0,0 +1,348 @@ +/* eslint-disable no-param-reassign*/ +import TokenTranslator from "./token-translator.js"; +import { normalizeOptions } from "./options.js"; + + +const STATE = Symbol("espree's internal state"); +const ESPRIMA_FINISH_NODE = Symbol("espree's esprimaFinishNode"); + + +/** + * Converts an Acorn comment to a Esprima comment. + * @param {boolean} block True if it's a block comment, false if not. + * @param {string} text The text of the comment. + * @param {int} start The index at which the comment starts. + * @param {int} end The index at which the comment ends. + * @param {Location} startLoc The location at which the comment starts. + * @param {Location} endLoc The location at which the comment ends. + * @param {string} code The source code being parsed. + * @returns {Object} The comment object. + * @private + */ +function convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc, code) { + let type; + + if (block) { + type = "Block"; + } else if (code.slice(start, start + 2) === "#!") { + type = "Hashbang"; + } else { + type = "Line"; + } + + const comment = { + type, + value: text + }; + + if (typeof start === "number") { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + + if (typeof startLoc === "object") { + comment.loc = { + start: startLoc, + end: endLoc + }; + } + + return comment; +} + +export default () => Parser => { + const tokTypes = Object.assign({}, Parser.acorn.tokTypes); + + if (Parser.acornJsx) { + Object.assign(tokTypes, Parser.acornJsx.tokTypes); + } + + return class Espree extends Parser { + constructor(opts, code) { + if (typeof opts !== "object" || opts === null) { + opts = {}; + } + if (typeof code !== "string" && !(code instanceof String)) { + code = String(code); + } + + // save original source type in case of commonjs + const originalSourceType = opts.sourceType; + const options = normalizeOptions(opts); + const ecmaFeatures = options.ecmaFeatures || {}; + const tokenTranslator = + options.tokens === true + ? new TokenTranslator(tokTypes, code) + : null; + + /* + * Data that is unique to Espree and is not represented internally + * in Acorn. + * + * For ES2023 hashbangs, Espree will call `onComment()` during the + * constructor, so we must define state before having access to + * `this`. + */ + const state = { + originalSourceType: originalSourceType || options.sourceType, + tokens: tokenTranslator ? [] : null, + comments: options.comment === true ? [] : null, + impliedStrict: ecmaFeatures.impliedStrict === true && options.ecmaVersion >= 5, + ecmaVersion: options.ecmaVersion, + jsxAttrValueToken: false, + lastToken: null, + templateElements: [] + }; + + // Initialize acorn parser. + super({ + + // do not use spread, because we don't want to pass any unknown options to acorn + ecmaVersion: options.ecmaVersion, + sourceType: options.sourceType, + ranges: options.ranges, + locations: options.locations, + allowReserved: options.allowReserved, + + // Truthy value is true for backward compatibility. + allowReturnOutsideFunction: options.allowReturnOutsideFunction, + + // Collect tokens + onToken: token => { + if (tokenTranslator) { + + // Use `tokens`, `ecmaVersion`, and `jsxAttrValueToken` in the state. + tokenTranslator.onToken(token, state); + } + if (token.type !== tokTypes.eof) { + state.lastToken = token; + } + }, + + // Collect comments + onComment: (block, text, start, end, startLoc, endLoc) => { + if (state.comments) { + const comment = convertAcornCommentToEsprimaComment(block, text, start, end, startLoc, endLoc, code); + + state.comments.push(comment); + } + } + }, code); + + /* + * We put all of this data into a symbol property as a way to avoid + * potential naming conflicts with future versions of Acorn. + */ + this[STATE] = state; + } + + tokenize() { + do { + this.next(); + } while (this.type !== tokTypes.eof); + + // Consume the final eof token + this.next(); + + const extra = this[STATE]; + const tokens = extra.tokens; + + if (extra.comments) { + tokens.comments = extra.comments; + } + + return tokens; + } + + finishNode(...args) { + const result = super.finishNode(...args); + + return this[ESPRIMA_FINISH_NODE](result); + } + + finishNodeAt(...args) { + const result = super.finishNodeAt(...args); + + return this[ESPRIMA_FINISH_NODE](result); + } + + parse() { + const extra = this[STATE]; + const program = super.parse(); + + program.sourceType = extra.originalSourceType; + + if (extra.comments) { + program.comments = extra.comments; + } + if (extra.tokens) { + program.tokens = extra.tokens; + } + + /* + * Adjust opening and closing position of program to match Esprima. + * Acorn always starts programs at range 0 whereas Esprima starts at the + * first AST node's start (the only real difference is when there's leading + * whitespace or leading comments). Acorn also counts trailing whitespace + * as part of the program whereas Esprima only counts up to the last token. + */ + if (program.body.length) { + const [firstNode] = program.body; + + if (program.range) { + program.range[0] = firstNode.range[0]; + } + if (program.loc) { + program.loc.start = firstNode.loc.start; + } + program.start = firstNode.start; + } + if (extra.lastToken) { + if (program.range) { + program.range[1] = extra.lastToken.range[1]; + } + if (program.loc) { + program.loc.end = extra.lastToken.loc.end; + } + program.end = extra.lastToken.end; + } + + + /* + * https://github.com/eslint/espree/issues/349 + * Ensure that template elements have correct range information. + * This is one location where Acorn produces a different value + * for its start and end properties vs. the values present in the + * range property. In order to avoid confusion, we set the start + * and end properties to the values that are present in range. + * This is done here, instead of in finishNode(), because Acorn + * uses the values of start and end internally while parsing, making + * it dangerous to change those values while parsing is ongoing. + * By waiting until the end of parsing, we can safely change these + * values without affect any other part of the process. + */ + this[STATE].templateElements.forEach(templateElement => { + const startOffset = -1; + const endOffset = templateElement.tail ? 1 : 2; + + templateElement.start += startOffset; + templateElement.end += endOffset; + + if (templateElement.range) { + templateElement.range[0] += startOffset; + templateElement.range[1] += endOffset; + } + + if (templateElement.loc) { + templateElement.loc.start.column += startOffset; + templateElement.loc.end.column += endOffset; + } + }); + + return program; + } + + parseTopLevel(node) { + if (this[STATE].impliedStrict) { + this.strict = true; + } + return super.parseTopLevel(node); + } + + /** + * Overwrites the default raise method to throw Esprima-style errors. + * @param {int} pos The position of the error. + * @param {string} message The error message. + * @throws {SyntaxError} A syntax error. + * @returns {void} + */ + raise(pos, message) { + const loc = Parser.acorn.getLineInfo(this.input, pos); + const err = new SyntaxError(message); + + err.index = pos; + err.lineNumber = loc.line; + err.column = loc.column + 1; // acorn uses 0-based columns + throw err; + } + + /** + * Overwrites the default raise method to throw Esprima-style errors. + * @param {int} pos The position of the error. + * @param {string} message The error message. + * @throws {SyntaxError} A syntax error. + * @returns {void} + */ + raiseRecoverable(pos, message) { + this.raise(pos, message); + } + + /** + * Overwrites the default unexpected method to throw Esprima-style errors. + * @param {int} pos The position of the error. + * @throws {SyntaxError} A syntax error. + * @returns {void} + */ + unexpected(pos) { + let message = "Unexpected token"; + + if (pos !== null && pos !== void 0) { + this.pos = pos; + + if (this.options.locations) { + while (this.pos < this.lineStart) { + this.lineStart = this.input.lastIndexOf("\n", this.lineStart - 2) + 1; + --this.curLine; + } + } + + this.nextToken(); + } + + if (this.end > this.start) { + message += ` ${this.input.slice(this.start, this.end)}`; + } + + this.raise(this.start, message); + } + + /* + * Esprima-FB represents JSX strings as tokens called "JSXText", but Acorn-JSX + * uses regular tt.string without any distinction between this and regular JS + * strings. As such, we intercept an attempt to read a JSX string and set a flag + * on extra so that when tokens are converted, the next token will be switched + * to JSXText via onToken. + */ + jsx_readString(quote) { // eslint-disable-line camelcase + const result = super.jsx_readString(quote); + + if (this.type === tokTypes.string) { + this[STATE].jsxAttrValueToken = true; + } + return result; + } + + /** + * Performs last-minute Esprima-specific compatibility checks and fixes. + * @param {ASTNode} result The node to check. + * @returns {ASTNode} The finished node. + */ + [ESPRIMA_FINISH_NODE](result) { + + // Acorn doesn't count the opening and closing backticks as part of templates + // so we have to adjust ranges/locations appropriately. + if (result.type === "TemplateElement") { + + // save template element references to fix start/end later + this[STATE].templateElements.push(result); + } + + if (result.type.includes("Function") && !result.generator) { + result.generator = false; + } + + return result; + } + }; +}; diff --git a/node_modules/espree/lib/features.js b/node_modules/espree/lib/features.js new file mode 100644 index 0000000..31467d2 --- /dev/null +++ b/node_modules/espree/lib/features.js @@ -0,0 +1,27 @@ +/** + * @fileoverview The list of feature flags supported by the parser and their default + * settings. + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +// None! + +//------------------------------------------------------------------------------ +// Public +//------------------------------------------------------------------------------ + +export default { + + // React JSX parsing + jsx: false, + + // allow return statement in global scope + globalReturn: false, + + // allow implied strict mode + impliedStrict: false +}; diff --git a/node_modules/espree/lib/options.js b/node_modules/espree/lib/options.js new file mode 100644 index 0000000..d284807 --- /dev/null +++ b/node_modules/espree/lib/options.js @@ -0,0 +1,122 @@ +/** + * @fileoverview A collection of methods for processing Espree's options. + * @author Kai Cataldo + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const SUPPORTED_VERSIONS = [ + 3, + 5, + 6, // 2015 + 7, // 2016 + 8, // 2017 + 9, // 2018 + 10, // 2019 + 11, // 2020 + 12, // 2021 + 13, // 2022 + 14 // 2023 +]; + +/** + * Get the latest ECMAScript version supported by Espree. + * @returns {number} The latest ECMAScript version. + */ +export function getLatestEcmaVersion() { + return SUPPORTED_VERSIONS[SUPPORTED_VERSIONS.length - 1]; +} + +/** + * Get the list of ECMAScript versions supported by Espree. + * @returns {number[]} An array containing the supported ECMAScript versions. + */ +export function getSupportedEcmaVersions() { + return [...SUPPORTED_VERSIONS]; +} + +/** + * Normalize ECMAScript version from the initial config + * @param {(number|"latest")} ecmaVersion ECMAScript version from the initial config + * @throws {Error} throws an error if the ecmaVersion is invalid. + * @returns {number} normalized ECMAScript version + */ +function normalizeEcmaVersion(ecmaVersion = 5) { + + let version = ecmaVersion === "latest" ? getLatestEcmaVersion() : ecmaVersion; + + if (typeof version !== "number") { + throw new Error(`ecmaVersion must be a number or "latest". Received value of type ${typeof ecmaVersion} instead.`); + } + + // Calculate ECMAScript edition number from official year version starting with + // ES2015, which corresponds with ES6 (or a difference of 2009). + if (version >= 2015) { + version -= 2009; + } + + if (!SUPPORTED_VERSIONS.includes(version)) { + throw new Error("Invalid ecmaVersion."); + } + + return version; +} + +/** + * Normalize sourceType from the initial config + * @param {string} sourceType to normalize + * @throws {Error} throw an error if sourceType is invalid + * @returns {string} normalized sourceType + */ +function normalizeSourceType(sourceType = "script") { + if (sourceType === "script" || sourceType === "module") { + return sourceType; + } + + if (sourceType === "commonjs") { + return "script"; + } + + throw new Error("Invalid sourceType."); +} + +/** + * Normalize parserOptions + * @param {Object} options the parser options to normalize + * @throws {Error} throw an error if found invalid option. + * @returns {Object} normalized options + */ +export function normalizeOptions(options) { + const ecmaVersion = normalizeEcmaVersion(options.ecmaVersion); + const sourceType = normalizeSourceType(options.sourceType); + const ranges = options.range === true; + const locations = options.loc === true; + + if (ecmaVersion !== 3 && options.allowReserved) { + + // a value of `false` is intentionally allowed here, so a shared config can overwrite it when needed + throw new Error("`allowReserved` is only supported when ecmaVersion is 3"); + } + if (typeof options.allowReserved !== "undefined" && typeof options.allowReserved !== "boolean") { + throw new Error("`allowReserved`, when present, must be `true` or `false`"); + } + const allowReserved = ecmaVersion === 3 ? (options.allowReserved || "never") : false; + const ecmaFeatures = options.ecmaFeatures || {}; + const allowReturnOutsideFunction = options.sourceType === "commonjs" || + Boolean(ecmaFeatures.globalReturn); + + if (sourceType === "module" && ecmaVersion < 6) { + throw new Error("sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options."); + } + + return Object.assign({}, options, { + ecmaVersion, + sourceType, + ranges, + locations, + allowReserved, + allowReturnOutsideFunction + }); +} diff --git a/node_modules/espree/lib/token-translator.js b/node_modules/espree/lib/token-translator.js new file mode 100644 index 0000000..9aa5e22 --- /dev/null +++ b/node_modules/espree/lib/token-translator.js @@ -0,0 +1,265 @@ +/** + * @fileoverview Translates tokens between Acorn format and Esprima format. + * @author Nicholas C. Zakas + */ +/* eslint no-underscore-dangle: 0 */ + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +// none! + +//------------------------------------------------------------------------------ +// Private +//------------------------------------------------------------------------------ + + +// Esprima Token Types +const Token = { + Boolean: "Boolean", + EOF: "", + Identifier: "Identifier", + PrivateIdentifier: "PrivateIdentifier", + Keyword: "Keyword", + Null: "Null", + Numeric: "Numeric", + Punctuator: "Punctuator", + String: "String", + RegularExpression: "RegularExpression", + Template: "Template", + JSXIdentifier: "JSXIdentifier", + JSXText: "JSXText" +}; + +/** + * Converts part of a template into an Esprima token. + * @param {AcornToken[]} tokens The Acorn tokens representing the template. + * @param {string} code The source code. + * @returns {EsprimaToken} The Esprima equivalent of the template token. + * @private + */ +function convertTemplatePart(tokens, code) { + const firstToken = tokens[0], + lastTemplateToken = tokens[tokens.length - 1]; + + const token = { + type: Token.Template, + value: code.slice(firstToken.start, lastTemplateToken.end) + }; + + if (firstToken.loc) { + token.loc = { + start: firstToken.loc.start, + end: lastTemplateToken.loc.end + }; + } + + if (firstToken.range) { + token.start = firstToken.range[0]; + token.end = lastTemplateToken.range[1]; + token.range = [token.start, token.end]; + } + + return token; +} + +/** + * Contains logic to translate Acorn tokens into Esprima tokens. + * @param {Object} acornTokTypes The Acorn token types. + * @param {string} code The source code Acorn is parsing. This is necessary + * to correct the "value" property of some tokens. + * @constructor + */ +function TokenTranslator(acornTokTypes, code) { + + // token types + this._acornTokTypes = acornTokTypes; + + // token buffer for templates + this._tokens = []; + + // track the last curly brace + this._curlyBrace = null; + + // the source code + this._code = code; + +} + +TokenTranslator.prototype = { + constructor: TokenTranslator, + + /** + * Translates a single Esprima token to a single Acorn token. This may be + * inaccurate due to how templates are handled differently in Esprima and + * Acorn, but should be accurate for all other tokens. + * @param {AcornToken} token The Acorn token to translate. + * @param {Object} extra Espree extra object. + * @returns {EsprimaToken} The Esprima version of the token. + */ + translate(token, extra) { + + const type = token.type, + tt = this._acornTokTypes; + + if (type === tt.name) { + token.type = Token.Identifier; + + // TODO: See if this is an Acorn bug + if (token.value === "static") { + token.type = Token.Keyword; + } + + if (extra.ecmaVersion > 5 && (token.value === "yield" || token.value === "let")) { + token.type = Token.Keyword; + } + + } else if (type === tt.privateId) { + token.type = Token.PrivateIdentifier; + + } else if (type === tt.semi || type === tt.comma || + type === tt.parenL || type === tt.parenR || + type === tt.braceL || type === tt.braceR || + type === tt.dot || type === tt.bracketL || + type === tt.colon || type === tt.question || + type === tt.bracketR || type === tt.ellipsis || + type === tt.arrow || type === tt.jsxTagStart || + type === tt.incDec || type === tt.starstar || + type === tt.jsxTagEnd || type === tt.prefix || + type === tt.questionDot || + (type.binop && !type.keyword) || + type.isAssign) { + + token.type = Token.Punctuator; + token.value = this._code.slice(token.start, token.end); + } else if (type === tt.jsxName) { + token.type = Token.JSXIdentifier; + } else if (type.label === "jsxText" || type === tt.jsxAttrValueToken) { + token.type = Token.JSXText; + } else if (type.keyword) { + if (type.keyword === "true" || type.keyword === "false") { + token.type = Token.Boolean; + } else if (type.keyword === "null") { + token.type = Token.Null; + } else { + token.type = Token.Keyword; + } + } else if (type === tt.num) { + token.type = Token.Numeric; + token.value = this._code.slice(token.start, token.end); + } else if (type === tt.string) { + + if (extra.jsxAttrValueToken) { + extra.jsxAttrValueToken = false; + token.type = Token.JSXText; + } else { + token.type = Token.String; + } + + token.value = this._code.slice(token.start, token.end); + } else if (type === tt.regexp) { + token.type = Token.RegularExpression; + const value = token.value; + + token.regex = { + flags: value.flags, + pattern: value.pattern + }; + token.value = `/${value.pattern}/${value.flags}`; + } + + return token; + }, + + /** + * Function to call during Acorn's onToken handler. + * @param {AcornToken} token The Acorn token. + * @param {Object} extra The Espree extra object. + * @returns {void} + */ + onToken(token, extra) { + + const that = this, + tt = this._acornTokTypes, + tokens = extra.tokens, + templateTokens = this._tokens; + + /** + * Flushes the buffered template tokens and resets the template + * tracking. + * @returns {void} + * @private + */ + function translateTemplateTokens() { + tokens.push(convertTemplatePart(that._tokens, that._code)); + that._tokens = []; + } + + if (token.type === tt.eof) { + + // might be one last curlyBrace + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + } + + return; + } + + if (token.type === tt.backQuote) { + + // if there's already a curly, it's not part of the template + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + this._curlyBrace = null; + } + + templateTokens.push(token); + + // it's the end + if (templateTokens.length > 1) { + translateTemplateTokens(); + } + + return; + } + if (token.type === tt.dollarBraceL) { + templateTokens.push(token); + translateTemplateTokens(); + return; + } + if (token.type === tt.braceR) { + + // if there's already a curly, it's not part of the template + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + } + + // store new curly for later + this._curlyBrace = token; + return; + } + if (token.type === tt.template || token.type === tt.invalidTemplate) { + if (this._curlyBrace) { + templateTokens.push(this._curlyBrace); + this._curlyBrace = null; + } + + templateTokens.push(token); + return; + } + + if (this._curlyBrace) { + tokens.push(this.translate(this._curlyBrace, extra)); + this._curlyBrace = null; + } + + tokens.push(this.translate(token, extra)); + } +}; + +//------------------------------------------------------------------------------ +// Public +//------------------------------------------------------------------------------ + +export default TokenTranslator; diff --git a/node_modules/espree/lib/version.js b/node_modules/espree/lib/version.js new file mode 100644 index 0000000..dd06554 --- /dev/null +++ b/node_modules/espree/lib/version.js @@ -0,0 +1,3 @@ +const version = "9.4.0"; + +export default version; diff --git a/node_modules/espree/package.json b/node_modules/espree/package.json new file mode 100644 index 0000000..d1b7ad8 --- /dev/null +++ b/node_modules/espree/package.json @@ -0,0 +1,82 @@ +{ + "name": "espree", + "description": "An Esprima-compatible JavaScript parser built on Acorn", + "author": "Nicholas C. Zakas ", + "homepage": "https://github.com/eslint/espree", + "main": "dist/espree.cjs", + "type": "module", + "exports": { + ".": [ + { + "import": "./espree.js", + "require": "./dist/espree.cjs", + "default": "./dist/espree.cjs" + }, + "./dist/espree.cjs" + ], + "./package.json": "./package.json" + }, + "version": "9.4.0", + "files": [ + "lib", + "dist/espree.cjs", + "espree.js" + ], + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "repository": "eslint/espree", + "bugs": { + "url": "https://github.com/eslint/espree/issues" + }, + "funding": "https://opencollective.com/eslint", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^17.1.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^11.2.0", + "c8": "^7.11.0", + "chai": "^4.3.6", + "eslint": "^8.13.0", + "eslint-config-eslint": "^7.0.0", + "eslint-plugin-jsdoc": "^39.2.4", + "eslint-plugin-node": "^11.1.0", + "eslint-release": "^3.2.0", + "esprima-fb": "^8001.2001.0-dev-harmony-fb", + "mocha": "^9.2.2", + "npm-run-all": "^4.1.5", + "rollup": "^2.41.2", + "shelljs": "^0.3.0" + }, + "keywords": [ + "ast", + "ecmascript", + "javascript", + "parser", + "syntax", + "acorn" + ], + "scripts": { + "unit": "npm-run-all -s unit:*", + "unit:esm": "c8 mocha --color --reporter progress --timeout 30000 'tests/lib/**/*.js'", + "unit:cjs": "mocha --color --reporter progress --timeout 30000 tests/lib/commonjs.cjs", + "test": "npm-run-all -p unit lint", + "lint": "eslint .", + "fixlint": "npm run lint -- --fix", + "build": "rollup -c rollup.config.js", + "update-version": "node tools/update-version.js", + "pretest": "npm run build", + "prepublishOnly": "npm run update-version && npm run build", + "sync-docs": "node sync-docs.js", + "generate-release": "eslint-generate-release", + "generate-alpharelease": "eslint-generate-prerelease alpha", + "generate-betarelease": "eslint-generate-prerelease beta", + "generate-rcrelease": "eslint-generate-prerelease rc", + "publish-release": "eslint-publish-release" + } +} diff --git a/node_modules/esquery/README.md b/node_modules/esquery/README.md new file mode 100644 index 0000000..8264efc --- /dev/null +++ b/node_modules/esquery/README.md @@ -0,0 +1,27 @@ +ESQuery is a library for querying the AST output by Esprima for patterns of syntax using a CSS style selector system. Check out the demo: + +[demo](https://estools.github.io/esquery/) + +The following selectors are supported: +* AST node type: `ForStatement` +* [wildcard](http://dev.w3.org/csswg/selectors4/#universal-selector): `*` +* [attribute existence](http://dev.w3.org/csswg/selectors4/#attribute-selectors): `[attr]` +* [attribute value](http://dev.w3.org/csswg/selectors4/#attribute-selectors): `[attr="foo"]` or `[attr=123]` +* attribute regex: `[attr=/foo.*/]` or (with flags) `[attr=/foo.*/is]` +* attribute conditions: `[attr!="foo"]`, `[attr>2]`, `[attr<3]`, `[attr>=2]`, or `[attr<=3]` +* nested attribute: `[attr.level2="foo"]` +* field: `FunctionDeclaration > Identifier.id` +* [First](http://dev.w3.org/csswg/selectors4/#the-first-child-pseudo) or [last](http://dev.w3.org/csswg/selectors4/#the-last-child-pseudo) child: `:first-child` or `:last-child` +* [nth-child](http://dev.w3.org/csswg/selectors4/#the-nth-child-pseudo) (no ax+b support): `:nth-child(2)` +* [nth-last-child](http://dev.w3.org/csswg/selectors4/#the-nth-last-child-pseudo) (no ax+b support): `:nth-last-child(1)` +* [descendant](http://dev.w3.org/csswg/selectors4/#descendant-combinators): `ancestor descendant` +* [child](http://dev.w3.org/csswg/selectors4/#child-combinators): `parent > child` +* [following sibling](http://dev.w3.org/csswg/selectors4/#general-sibling-combinators): `node ~ sibling` +* [adjacent sibling](http://dev.w3.org/csswg/selectors4/#adjacent-sibling-combinators): `node + adjacent` +* [negation](http://dev.w3.org/csswg/selectors4/#negation-pseudo): `:not(ForStatement)` +* [has](https://drafts.csswg.org/selectors-4/#has-pseudo): `:has(ForStatement)` +* [matches-any](http://dev.w3.org/csswg/selectors4/#matches): `:matches([attr] > :first-child, :last-child)` +* [subject indicator](http://dev.w3.org/csswg/selectors4/#subject): `!IfStatement > [name="foo"]` +* class of AST node: `:statement`, `:expression`, `:declaration`, `:function`, or `:pattern` + +[![Build Status](https://travis-ci.org/estools/esquery.png?branch=master)](https://travis-ci.org/estools/esquery) diff --git a/node_modules/esquery/dist/esquery.esm.js b/node_modules/esquery/dist/esquery.esm.js new file mode 100644 index 0000000..7a62b8b --- /dev/null +++ b/node_modules/esquery/dist/esquery.esm.js @@ -0,0 +1,4793 @@ +function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); +} + +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} + +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; +} + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _createForOfIteratorHelper(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function () {}; + + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = o[Symbol.iterator](); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} + +var estraverse = createCommonjsModule(function (module, exports) { + /* + Copyright (C) 2012-2013 Yusuke Suzuki + Copyright (C) 2012 Ariya Hidayat + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /*jslint vars:false, bitwise:true*/ + + /*jshint indent:4*/ + + /*global exports:true*/ + (function clone(exports) { + + var Syntax, VisitorOption, VisitorKeys, BREAK, SKIP, REMOVE; + + function deepCopy(obj) { + var ret = {}, + key, + val; + + for (key in obj) { + if (obj.hasOwnProperty(key)) { + val = obj[key]; + + if (typeof val === 'object' && val !== null) { + ret[key] = deepCopy(val); + } else { + ret[key] = val; + } + } + } + + return ret; + } // based on LLVM libc++ upper_bound / lower_bound + // MIT License + + + function upperBound(array, func) { + var diff, len, i, current; + len = array.length; + i = 0; + + while (len) { + diff = len >>> 1; + current = i + diff; + + if (func(array[current])) { + len = diff; + } else { + i = current + 1; + len -= diff + 1; + } + } + + return i; + } + + Syntax = { + AssignmentExpression: 'AssignmentExpression', + AssignmentPattern: 'AssignmentPattern', + ArrayExpression: 'ArrayExpression', + ArrayPattern: 'ArrayPattern', + ArrowFunctionExpression: 'ArrowFunctionExpression', + AwaitExpression: 'AwaitExpression', + // CAUTION: It's deferred to ES7. + BlockStatement: 'BlockStatement', + BinaryExpression: 'BinaryExpression', + BreakStatement: 'BreakStatement', + CallExpression: 'CallExpression', + CatchClause: 'CatchClause', + ChainExpression: 'ChainExpression', + ClassBody: 'ClassBody', + ClassDeclaration: 'ClassDeclaration', + ClassExpression: 'ClassExpression', + ComprehensionBlock: 'ComprehensionBlock', + // CAUTION: It's deferred to ES7. + ComprehensionExpression: 'ComprehensionExpression', + // CAUTION: It's deferred to ES7. + ConditionalExpression: 'ConditionalExpression', + ContinueStatement: 'ContinueStatement', + DebuggerStatement: 'DebuggerStatement', + DirectiveStatement: 'DirectiveStatement', + DoWhileStatement: 'DoWhileStatement', + EmptyStatement: 'EmptyStatement', + ExportAllDeclaration: 'ExportAllDeclaration', + ExportDefaultDeclaration: 'ExportDefaultDeclaration', + ExportNamedDeclaration: 'ExportNamedDeclaration', + ExportSpecifier: 'ExportSpecifier', + ExpressionStatement: 'ExpressionStatement', + ForStatement: 'ForStatement', + ForInStatement: 'ForInStatement', + ForOfStatement: 'ForOfStatement', + FunctionDeclaration: 'FunctionDeclaration', + FunctionExpression: 'FunctionExpression', + GeneratorExpression: 'GeneratorExpression', + // CAUTION: It's deferred to ES7. + Identifier: 'Identifier', + IfStatement: 'IfStatement', + ImportExpression: 'ImportExpression', + ImportDeclaration: 'ImportDeclaration', + ImportDefaultSpecifier: 'ImportDefaultSpecifier', + ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', + ImportSpecifier: 'ImportSpecifier', + Literal: 'Literal', + LabeledStatement: 'LabeledStatement', + LogicalExpression: 'LogicalExpression', + MemberExpression: 'MemberExpression', + MetaProperty: 'MetaProperty', + MethodDefinition: 'MethodDefinition', + ModuleSpecifier: 'ModuleSpecifier', + NewExpression: 'NewExpression', + ObjectExpression: 'ObjectExpression', + ObjectPattern: 'ObjectPattern', + Program: 'Program', + Property: 'Property', + RestElement: 'RestElement', + ReturnStatement: 'ReturnStatement', + SequenceExpression: 'SequenceExpression', + SpreadElement: 'SpreadElement', + Super: 'Super', + SwitchStatement: 'SwitchStatement', + SwitchCase: 'SwitchCase', + TaggedTemplateExpression: 'TaggedTemplateExpression', + TemplateElement: 'TemplateElement', + TemplateLiteral: 'TemplateLiteral', + ThisExpression: 'ThisExpression', + ThrowStatement: 'ThrowStatement', + TryStatement: 'TryStatement', + UnaryExpression: 'UnaryExpression', + UpdateExpression: 'UpdateExpression', + VariableDeclaration: 'VariableDeclaration', + VariableDeclarator: 'VariableDeclarator', + WhileStatement: 'WhileStatement', + WithStatement: 'WithStatement', + YieldExpression: 'YieldExpression' + }; + VisitorKeys = { + AssignmentExpression: ['left', 'right'], + AssignmentPattern: ['left', 'right'], + ArrayExpression: ['elements'], + ArrayPattern: ['elements'], + ArrowFunctionExpression: ['params', 'body'], + AwaitExpression: ['argument'], + // CAUTION: It's deferred to ES7. + BlockStatement: ['body'], + BinaryExpression: ['left', 'right'], + BreakStatement: ['label'], + CallExpression: ['callee', 'arguments'], + CatchClause: ['param', 'body'], + ChainExpression: ['expression'], + ClassBody: ['body'], + ClassDeclaration: ['id', 'superClass', 'body'], + ClassExpression: ['id', 'superClass', 'body'], + ComprehensionBlock: ['left', 'right'], + // CAUTION: It's deferred to ES7. + ComprehensionExpression: ['blocks', 'filter', 'body'], + // CAUTION: It's deferred to ES7. + ConditionalExpression: ['test', 'consequent', 'alternate'], + ContinueStatement: ['label'], + DebuggerStatement: [], + DirectiveStatement: [], + DoWhileStatement: ['body', 'test'], + EmptyStatement: [], + ExportAllDeclaration: ['source'], + ExportDefaultDeclaration: ['declaration'], + ExportNamedDeclaration: ['declaration', 'specifiers', 'source'], + ExportSpecifier: ['exported', 'local'], + ExpressionStatement: ['expression'], + ForStatement: ['init', 'test', 'update', 'body'], + ForInStatement: ['left', 'right', 'body'], + ForOfStatement: ['left', 'right', 'body'], + FunctionDeclaration: ['id', 'params', 'body'], + FunctionExpression: ['id', 'params', 'body'], + GeneratorExpression: ['blocks', 'filter', 'body'], + // CAUTION: It's deferred to ES7. + Identifier: [], + IfStatement: ['test', 'consequent', 'alternate'], + ImportExpression: ['source'], + ImportDeclaration: ['specifiers', 'source'], + ImportDefaultSpecifier: ['local'], + ImportNamespaceSpecifier: ['local'], + ImportSpecifier: ['imported', 'local'], + Literal: [], + LabeledStatement: ['label', 'body'], + LogicalExpression: ['left', 'right'], + MemberExpression: ['object', 'property'], + MetaProperty: ['meta', 'property'], + MethodDefinition: ['key', 'value'], + ModuleSpecifier: [], + NewExpression: ['callee', 'arguments'], + ObjectExpression: ['properties'], + ObjectPattern: ['properties'], + Program: ['body'], + Property: ['key', 'value'], + RestElement: ['argument'], + ReturnStatement: ['argument'], + SequenceExpression: ['expressions'], + SpreadElement: ['argument'], + Super: [], + SwitchStatement: ['discriminant', 'cases'], + SwitchCase: ['test', 'consequent'], + TaggedTemplateExpression: ['tag', 'quasi'], + TemplateElement: [], + TemplateLiteral: ['quasis', 'expressions'], + ThisExpression: [], + ThrowStatement: ['argument'], + TryStatement: ['block', 'handler', 'finalizer'], + UnaryExpression: ['argument'], + UpdateExpression: ['argument'], + VariableDeclaration: ['declarations'], + VariableDeclarator: ['id', 'init'], + WhileStatement: ['test', 'body'], + WithStatement: ['object', 'body'], + YieldExpression: ['argument'] + }; // unique id + + BREAK = {}; + SKIP = {}; + REMOVE = {}; + VisitorOption = { + Break: BREAK, + Skip: SKIP, + Remove: REMOVE + }; + + function Reference(parent, key) { + this.parent = parent; + this.key = key; + } + + Reference.prototype.replace = function replace(node) { + this.parent[this.key] = node; + }; + + Reference.prototype.remove = function remove() { + if (Array.isArray(this.parent)) { + this.parent.splice(this.key, 1); + return true; + } else { + this.replace(null); + return false; + } + }; + + function Element(node, path, wrap, ref) { + this.node = node; + this.path = path; + this.wrap = wrap; + this.ref = ref; + } + + function Controller() {} // API: + // return property path array from root to current node + + + Controller.prototype.path = function path() { + var i, iz, j, jz, result, element; + + function addToPath(result, path) { + if (Array.isArray(path)) { + for (j = 0, jz = path.length; j < jz; ++j) { + result.push(path[j]); + } + } else { + result.push(path); + } + } // root node + + + if (!this.__current.path) { + return null; + } // first node is sentinel, second node is root element + + + result = []; + + for (i = 2, iz = this.__leavelist.length; i < iz; ++i) { + element = this.__leavelist[i]; + addToPath(result, element.path); + } + + addToPath(result, this.__current.path); + return result; + }; // API: + // return type of current node + + + Controller.prototype.type = function () { + var node = this.current(); + return node.type || this.__current.wrap; + }; // API: + // return array of parent elements + + + Controller.prototype.parents = function parents() { + var i, iz, result; // first node is sentinel + + result = []; + + for (i = 1, iz = this.__leavelist.length; i < iz; ++i) { + result.push(this.__leavelist[i].node); + } + + return result; + }; // API: + // return current node + + + Controller.prototype.current = function current() { + return this.__current.node; + }; + + Controller.prototype.__execute = function __execute(callback, element) { + var previous, result; + result = undefined; + previous = this.__current; + this.__current = element; + this.__state = null; + + if (callback) { + result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node); + } + + this.__current = previous; + return result; + }; // API: + // notify control skip / break + + + Controller.prototype.notify = function notify(flag) { + this.__state = flag; + }; // API: + // skip child nodes of current node + + + Controller.prototype.skip = function () { + this.notify(SKIP); + }; // API: + // break traversals + + + Controller.prototype['break'] = function () { + this.notify(BREAK); + }; // API: + // remove node + + + Controller.prototype.remove = function () { + this.notify(REMOVE); + }; + + Controller.prototype.__initialize = function (root, visitor) { + this.visitor = visitor; + this.root = root; + this.__worklist = []; + this.__leavelist = []; + this.__current = null; + this.__state = null; + this.__fallback = null; + + if (visitor.fallback === 'iteration') { + this.__fallback = Object.keys; + } else if (typeof visitor.fallback === 'function') { + this.__fallback = visitor.fallback; + } + + this.__keys = VisitorKeys; + + if (visitor.keys) { + this.__keys = Object.assign(Object.create(this.__keys), visitor.keys); + } + }; + + function isNode(node) { + if (node == null) { + return false; + } + + return typeof node === 'object' && typeof node.type === 'string'; + } + + function isProperty(nodeType, key) { + return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; + } + + function candidateExistsInLeaveList(leavelist, candidate) { + for (var i = leavelist.length - 1; i >= 0; --i) { + if (leavelist[i].node === candidate) { + return true; + } + } + + return false; + } + + Controller.prototype.traverse = function traverse(root, visitor) { + var worklist, leavelist, element, node, nodeType, ret, key, current, current2, candidates, candidate, sentinel; + + this.__initialize(root, visitor); + + sentinel = {}; // reference + + worklist = this.__worklist; + leavelist = this.__leavelist; // initialize + + worklist.push(new Element(root, null, null, null)); + leavelist.push(new Element(null, null, null, null)); + + while (worklist.length) { + element = worklist.pop(); + + if (element === sentinel) { + element = leavelist.pop(); + ret = this.__execute(visitor.leave, element); + + if (this.__state === BREAK || ret === BREAK) { + return; + } + + continue; + } + + if (element.node) { + ret = this.__execute(visitor.enter, element); + + if (this.__state === BREAK || ret === BREAK) { + return; + } + + worklist.push(sentinel); + leavelist.push(element); + + if (this.__state === SKIP || ret === SKIP) { + continue; + } + + node = element.node; + nodeType = node.type || element.wrap; + candidates = this.__keys[nodeType]; + + if (!candidates) { + if (this.__fallback) { + candidates = this.__fallback(node); + } else { + throw new Error('Unknown node type ' + nodeType + '.'); + } + } + + current = candidates.length; + + while ((current -= 1) >= 0) { + key = candidates[current]; + candidate = node[key]; + + if (!candidate) { + continue; + } + + if (Array.isArray(candidate)) { + current2 = candidate.length; + + while ((current2 -= 1) >= 0) { + if (!candidate[current2]) { + continue; + } + + if (candidateExistsInLeaveList(leavelist, candidate[current2])) { + continue; + } + + if (isProperty(nodeType, candidates[current])) { + element = new Element(candidate[current2], [key, current2], 'Property', null); + } else if (isNode(candidate[current2])) { + element = new Element(candidate[current2], [key, current2], null, null); + } else { + continue; + } + + worklist.push(element); + } + } else if (isNode(candidate)) { + if (candidateExistsInLeaveList(leavelist, candidate)) { + continue; + } + + worklist.push(new Element(candidate, key, null, null)); + } + } + } + } + }; + + Controller.prototype.replace = function replace(root, visitor) { + var worklist, leavelist, node, nodeType, target, element, current, current2, candidates, candidate, sentinel, outer, key; + + function removeElem(element) { + var i, key, nextElem, parent; + + if (element.ref.remove()) { + // When the reference is an element of an array. + key = element.ref.key; + parent = element.ref.parent; // If removed from array, then decrease following items' keys. + + i = worklist.length; + + while (i--) { + nextElem = worklist[i]; + + if (nextElem.ref && nextElem.ref.parent === parent) { + if (nextElem.ref.key < key) { + break; + } + + --nextElem.ref.key; + } + } + } + } + + this.__initialize(root, visitor); + + sentinel = {}; // reference + + worklist = this.__worklist; + leavelist = this.__leavelist; // initialize + + outer = { + root: root + }; + element = new Element(root, null, null, new Reference(outer, 'root')); + worklist.push(element); + leavelist.push(element); + + while (worklist.length) { + element = worklist.pop(); + + if (element === sentinel) { + element = leavelist.pop(); + target = this.__execute(visitor.leave, element); // node may be replaced with null, + // so distinguish between undefined and null in this place + + if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { + // replace + element.ref.replace(target); + } + + if (this.__state === REMOVE || target === REMOVE) { + removeElem(element); + } + + if (this.__state === BREAK || target === BREAK) { + return outer.root; + } + + continue; + } + + target = this.__execute(visitor.enter, element); // node may be replaced with null, + // so distinguish between undefined and null in this place + + if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { + // replace + element.ref.replace(target); + element.node = target; + } + + if (this.__state === REMOVE || target === REMOVE) { + removeElem(element); + element.node = null; + } + + if (this.__state === BREAK || target === BREAK) { + return outer.root; + } // node may be null + + + node = element.node; + + if (!node) { + continue; + } + + worklist.push(sentinel); + leavelist.push(element); + + if (this.__state === SKIP || target === SKIP) { + continue; + } + + nodeType = node.type || element.wrap; + candidates = this.__keys[nodeType]; + + if (!candidates) { + if (this.__fallback) { + candidates = this.__fallback(node); + } else { + throw new Error('Unknown node type ' + nodeType + '.'); + } + } + + current = candidates.length; + + while ((current -= 1) >= 0) { + key = candidates[current]; + candidate = node[key]; + + if (!candidate) { + continue; + } + + if (Array.isArray(candidate)) { + current2 = candidate.length; + + while ((current2 -= 1) >= 0) { + if (!candidate[current2]) { + continue; + } + + if (isProperty(nodeType, candidates[current])) { + element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2)); + } else if (isNode(candidate[current2])) { + element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2)); + } else { + continue; + } + + worklist.push(element); + } + } else if (isNode(candidate)) { + worklist.push(new Element(candidate, key, null, new Reference(node, key))); + } + } + } + + return outer.root; + }; + + function traverse(root, visitor) { + var controller = new Controller(); + return controller.traverse(root, visitor); + } + + function replace(root, visitor) { + var controller = new Controller(); + return controller.replace(root, visitor); + } + + function extendCommentRange(comment, tokens) { + var target; + target = upperBound(tokens, function search(token) { + return token.range[0] > comment.range[0]; + }); + comment.extendedRange = [comment.range[0], comment.range[1]]; + + if (target !== tokens.length) { + comment.extendedRange[1] = tokens[target].range[0]; + } + + target -= 1; + + if (target >= 0) { + comment.extendedRange[0] = tokens[target].range[1]; + } + + return comment; + } + + function attachComments(tree, providedComments, tokens) { + // At first, we should calculate extended comment ranges. + var comments = [], + comment, + len, + i, + cursor; + + if (!tree.range) { + throw new Error('attachComments needs range information'); + } // tokens array is empty, we attach comments to tree as 'leadingComments' + + + if (!tokens.length) { + if (providedComments.length) { + for (i = 0, len = providedComments.length; i < len; i += 1) { + comment = deepCopy(providedComments[i]); + comment.extendedRange = [0, tree.range[0]]; + comments.push(comment); + } + + tree.leadingComments = comments; + } + + return tree; + } + + for (i = 0, len = providedComments.length; i < len; i += 1) { + comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens)); + } // This is based on John Freeman's implementation. + + + cursor = 0; + traverse(tree, { + enter: function (node) { + var comment; + + while (cursor < comments.length) { + comment = comments[cursor]; + + if (comment.extendedRange[1] > node.range[0]) { + break; + } + + if (comment.extendedRange[1] === node.range[0]) { + if (!node.leadingComments) { + node.leadingComments = []; + } + + node.leadingComments.push(comment); + comments.splice(cursor, 1); + } else { + cursor += 1; + } + } // already out of owned node + + + if (cursor === comments.length) { + return VisitorOption.Break; + } + + if (comments[cursor].extendedRange[0] > node.range[1]) { + return VisitorOption.Skip; + } + } + }); + cursor = 0; + traverse(tree, { + leave: function (node) { + var comment; + + while (cursor < comments.length) { + comment = comments[cursor]; + + if (node.range[1] < comment.extendedRange[0]) { + break; + } + + if (node.range[1] === comment.extendedRange[0]) { + if (!node.trailingComments) { + node.trailingComments = []; + } + + node.trailingComments.push(comment); + comments.splice(cursor, 1); + } else { + cursor += 1; + } + } // already out of owned node + + + if (cursor === comments.length) { + return VisitorOption.Break; + } + + if (comments[cursor].extendedRange[0] > node.range[1]) { + return VisitorOption.Skip; + } + } + }); + return tree; + } + + exports.Syntax = Syntax; + exports.traverse = traverse; + exports.replace = replace; + exports.attachComments = attachComments; + exports.VisitorKeys = VisitorKeys; + exports.VisitorOption = VisitorOption; + exports.Controller = Controller; + + exports.cloneEnvironment = function () { + return clone({}); + }; + + return exports; + })(exports); + /* vim: set sw=4 ts=4 et tw=80 : */ + +}); + +var parser = createCommonjsModule(function (module) { + /* + * Generated by PEG.js 0.10.0. + * + * http://pegjs.org/ + */ + (function (root, factory) { + if ( module.exports) { + module.exports = factory(); + } + })(commonjsGlobal, function () { + + function peg$subclass(child, parent) { + function ctor() { + this.constructor = child; + } + + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + } + + function peg$SyntaxError(message, expected, found, location) { + this.message = message; + this.expected = expected; + this.found = found; + this.location = location; + this.name = "SyntaxError"; + + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, peg$SyntaxError); + } + } + + peg$subclass(peg$SyntaxError, Error); + + peg$SyntaxError.buildMessage = function (expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function literal(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + "class": function _class(expectation) { + var escapedParts = "", + i; + + for (i = 0; i < expectation.parts.length; i++) { + escapedParts += expectation.parts[i] instanceof Array ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) : classEscape(expectation.parts[i]); + } + + return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; + }, + any: function any(expectation) { + return "any character"; + }, + end: function end(expectation) { + return "end of input"; + }, + other: function other(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\0/g, '\\0').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/[\x00-\x0F]/g, function (ch) { + return '\\x0' + hex(ch); + }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { + return '\\x' + hex(ch); + }); + } + + function classEscape(s) { + return s.replace(/\\/g, '\\\\').replace(/\]/g, '\\]').replace(/\^/g, '\\^').replace(/-/g, '\\-').replace(/\0/g, '\\0').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/[\x00-\x0F]/g, function (ch) { + return '\\x0' + hex(ch); + }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { + return '\\x' + hex(ch); + }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = new Array(expected.length), + i, + j; + + for (i = 0; i < expected.length; i++) { + descriptions[i] = describeExpectation(expected[i]); + } + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + ", or " + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; + }; + + function peg$parse(input, options) { + options = options !== void 0 ? options : {}; + + var peg$FAILED = {}, + peg$startRuleFunctions = { + start: peg$parsestart + }, + peg$startRuleFunction = peg$parsestart, + peg$c0 = function peg$c0(ss) { + return ss.length === 1 ? ss[0] : { + type: 'matches', + selectors: ss + }; + }, + peg$c1 = function peg$c1() { + return void 0; + }, + peg$c2 = " ", + peg$c3 = peg$literalExpectation(" ", false), + peg$c4 = /^[^ [\],():#!=><~+.]/, + peg$c5 = peg$classExpectation([" ", "[", "]", ",", "(", ")", ":", "#", "!", "=", ">", "<", "~", "+", "."], true, false), + peg$c6 = function peg$c6(i) { + return i.join(''); + }, + peg$c7 = ">", + peg$c8 = peg$literalExpectation(">", false), + peg$c9 = function peg$c9() { + return 'child'; + }, + peg$c10 = "~", + peg$c11 = peg$literalExpectation("~", false), + peg$c12 = function peg$c12() { + return 'sibling'; + }, + peg$c13 = "+", + peg$c14 = peg$literalExpectation("+", false), + peg$c15 = function peg$c15() { + return 'adjacent'; + }, + peg$c16 = function peg$c16() { + return 'descendant'; + }, + peg$c17 = ",", + peg$c18 = peg$literalExpectation(",", false), + peg$c19 = function peg$c19(s, ss) { + return [s].concat(ss.map(function (s) { + return s[3]; + })); + }, + peg$c20 = function peg$c20(a, ops) { + return ops.reduce(function (memo, rhs) { + return { + type: rhs[0], + left: memo, + right: rhs[1] + }; + }, a); + }, + peg$c21 = "!", + peg$c22 = peg$literalExpectation("!", false), + peg$c23 = function peg$c23(subject, as) { + var b = as.length === 1 ? as[0] : { + type: 'compound', + selectors: as + }; + if (subject) b.subject = true; + return b; + }, + peg$c24 = "*", + peg$c25 = peg$literalExpectation("*", false), + peg$c26 = function peg$c26(a) { + return { + type: 'wildcard', + value: a + }; + }, + peg$c27 = "#", + peg$c28 = peg$literalExpectation("#", false), + peg$c29 = function peg$c29(i) { + return { + type: 'identifier', + value: i + }; + }, + peg$c30 = "[", + peg$c31 = peg$literalExpectation("[", false), + peg$c32 = "]", + peg$c33 = peg$literalExpectation("]", false), + peg$c34 = function peg$c34(v) { + return v; + }, + peg$c35 = /^[>", "<", "!"], false, false), + peg$c37 = "=", + peg$c38 = peg$literalExpectation("=", false), + peg$c39 = function peg$c39(a) { + return (a || '') + '='; + }, + peg$c40 = /^[><]/, + peg$c41 = peg$classExpectation([">", "<"], false, false), + peg$c42 = ".", + peg$c43 = peg$literalExpectation(".", false), + peg$c44 = function peg$c44(a, as) { + return [].concat.apply([a], as).join(''); + }, + peg$c45 = function peg$c45(name, op, value) { + return { + type: 'attribute', + name: name, + operator: op, + value: value + }; + }, + peg$c46 = function peg$c46(name) { + return { + type: 'attribute', + name: name + }; + }, + peg$c47 = "\"", + peg$c48 = peg$literalExpectation("\"", false), + peg$c49 = /^[^\\"]/, + peg$c50 = peg$classExpectation(["\\", "\""], true, false), + peg$c51 = "\\", + peg$c52 = peg$literalExpectation("\\", false), + peg$c53 = peg$anyExpectation(), + peg$c54 = function peg$c54(a, b) { + return a + b; + }, + peg$c55 = function peg$c55(d) { + return { + type: 'literal', + value: strUnescape(d.join('')) + }; + }, + peg$c56 = "'", + peg$c57 = peg$literalExpectation("'", false), + peg$c58 = /^[^\\']/, + peg$c59 = peg$classExpectation(["\\", "'"], true, false), + peg$c60 = /^[0-9]/, + peg$c61 = peg$classExpectation([["0", "9"]], false, false), + peg$c62 = function peg$c62(a, b) { + // Can use `a.flat().join('')` once supported + var leadingDecimals = a ? [].concat.apply([], a).join('') : ''; + return { + type: 'literal', + value: parseFloat(leadingDecimals + b.join('')) + }; + }, + peg$c63 = function peg$c63(i) { + return { + type: 'literal', + value: i + }; + }, + peg$c64 = "type(", + peg$c65 = peg$literalExpectation("type(", false), + peg$c66 = /^[^ )]/, + peg$c67 = peg$classExpectation([" ", ")"], true, false), + peg$c68 = ")", + peg$c69 = peg$literalExpectation(")", false), + peg$c70 = function peg$c70(t) { + return { + type: 'type', + value: t.join('') + }; + }, + peg$c71 = /^[imsu]/, + peg$c72 = peg$classExpectation(["i", "m", "s", "u"], false, false), + peg$c73 = "/", + peg$c74 = peg$literalExpectation("/", false), + peg$c75 = /^[^\/]/, + peg$c76 = peg$classExpectation(["/"], true, false), + peg$c77 = function peg$c77(d, flgs) { + return { + type: 'regexp', + value: new RegExp(d.join(''), flgs ? flgs.join('') : '') + }; + }, + peg$c78 = function peg$c78(i, is) { + return { + type: 'field', + name: is.reduce(function (memo, p) { + return memo + p[0] + p[1]; + }, i) + }; + }, + peg$c79 = ":not(", + peg$c80 = peg$literalExpectation(":not(", false), + peg$c81 = function peg$c81(ss) { + return { + type: 'not', + selectors: ss + }; + }, + peg$c82 = ":matches(", + peg$c83 = peg$literalExpectation(":matches(", false), + peg$c84 = function peg$c84(ss) { + return { + type: 'matches', + selectors: ss + }; + }, + peg$c85 = ":has(", + peg$c86 = peg$literalExpectation(":has(", false), + peg$c87 = function peg$c87(ss) { + return { + type: 'has', + selectors: ss + }; + }, + peg$c88 = ":first-child", + peg$c89 = peg$literalExpectation(":first-child", false), + peg$c90 = function peg$c90() { + return nth(1); + }, + peg$c91 = ":last-child", + peg$c92 = peg$literalExpectation(":last-child", false), + peg$c93 = function peg$c93() { + return nthLast(1); + }, + peg$c94 = ":nth-child(", + peg$c95 = peg$literalExpectation(":nth-child(", false), + peg$c96 = function peg$c96(n) { + return nth(parseInt(n.join(''), 10)); + }, + peg$c97 = ":nth-last-child(", + peg$c98 = peg$literalExpectation(":nth-last-child(", false), + peg$c99 = function peg$c99(n) { + return nthLast(parseInt(n.join(''), 10)); + }, + peg$c100 = ":", + peg$c101 = peg$literalExpectation(":", false), + peg$c102 = "statement", + peg$c103 = peg$literalExpectation("statement", true), + peg$c104 = "expression", + peg$c105 = peg$literalExpectation("expression", true), + peg$c106 = "declaration", + peg$c107 = peg$literalExpectation("declaration", true), + peg$c108 = "function", + peg$c109 = peg$literalExpectation("function", true), + peg$c110 = "pattern", + peg$c111 = peg$literalExpectation("pattern", true), + peg$c112 = function peg$c112(c) { + return { + type: 'class', + name: c + }; + }, + peg$currPos = 0, + peg$posDetailsCache = [{ + line: 1, + column: 1 + }], + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$resultsCache = {}, + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function peg$literalExpectation(text, ignoreCase) { + return { + type: "literal", + text: text, + ignoreCase: ignoreCase + }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { + type: "class", + parts: parts, + inverted: inverted, + ignoreCase: ignoreCase + }; + } + + function peg$anyExpectation() { + return { + type: "any" + }; + } + + function peg$endExpectation() { + return { + type: "end" + }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos], + p; + + if (details) { + return details; + } else { + p = pos - 1; + + while (!peg$posDetailsCache[p]) { + p--; + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + return details; + } + } + + function peg$computeLocation(startPos, endPos) { + var startPosDetails = peg$computePosDetails(startPos), + endPosDetails = peg$computePosDetails(endPos); + return { + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { + return; + } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location); + } + + function peg$parsestart() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 0, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + s2 = peg$parseselectors(); + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c0(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + s1 = peg$c1(); + } + + s0 = s1; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parse_() { + var s0, s1; + var key = peg$currPos * 30 + 1, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = []; + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + + while (s1 !== peg$FAILED) { + s0.push(s1); + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseidentifierName() { + var s0, s1, s2; + var key = peg$currPos * 30 + 2, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = []; + + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c5); + } + } + + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c5); + } + } + } + } else { + s1 = peg$FAILED; + } + + if (s1 !== peg$FAILED) { + s1 = peg$c6(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsebinaryOp() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 3, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 62) { + s2 = peg$c7; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c8); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c9(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 126) { + s2 = peg$c10; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c11); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c12(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 43) { + s2 = peg$c13; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c14); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c15(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s1 = peg$c16(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseselectors() { + var s0, s1, s2, s3, s4, s5, s6, s7; + var key = peg$currPos * 30 + 4, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseselector(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c18); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c18); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c19(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseselector() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 5, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parsesequence(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c20(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsesequence() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 6, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c22); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseatom(); + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseatom(); + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + s1 = peg$c23(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseatom() { + var s0; + var key = peg$currPos * 30 + 7, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$parsewildcard(); + + if (s0 === peg$FAILED) { + s0 = peg$parseidentifier(); + + if (s0 === peg$FAILED) { + s0 = peg$parseattr(); + + if (s0 === peg$FAILED) { + s0 = peg$parsefield(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenegation(); + + if (s0 === peg$FAILED) { + s0 = peg$parsematches(); + + if (s0 === peg$FAILED) { + s0 = peg$parsehas(); + + if (s0 === peg$FAILED) { + s0 = peg$parsefirstChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parselastChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenthChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenthLastChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parseclass(); + } + } + } + } + } + } + } + } + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsewildcard() { + var s0, s1; + var key = peg$currPos * 30 + 8, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 42) { + s1 = peg$c24; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c25); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c26(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseidentifier() { + var s0, s1, s2; + var key = peg$currPos * 30 + 9, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 35) { + s1 = peg$c27; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c28); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + + if (s2 !== peg$FAILED) { + s1 = peg$c29(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattr() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 10, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c30; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c31); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrValue(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c32; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c33); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c34(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrOps() { + var s0, s1, s2; + var key = peg$currPos * 30 + 11, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (peg$c35.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c36); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c38); + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + if (peg$c40.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + + { + peg$fail(peg$c41); + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrEqOps() { + var s0, s1, s2; + var key = peg$currPos * 30 + 12, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c22); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c38); + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrName() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 13, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c44(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrValue() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 14, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrEqOps(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsetype(); + + if (s5 === peg$FAILED) { + s5 = peg$parseregex(); + } + + if (s5 !== peg$FAILED) { + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrOps(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsestring(); + + if (s5 === peg$FAILED) { + s5 = peg$parsenumber(); + + if (s5 === peg$FAILED) { + s5 = peg$parsepath(); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s1 = peg$c46(s1); + } + + s0 = s1; + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsestring() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 15, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c47; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c48); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c50); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c50); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c47; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c48); + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 39) { + s1 = peg$c56; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c57); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c59); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c59); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 39) { + s3 = peg$c56; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c57); + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenumber() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 16, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s3 = peg$c42; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + s1 = peg$c62(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsepath() { + var s0, s1; + var key = peg$currPos * 30 + 17, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + + if (s1 !== peg$FAILED) { + s1 = peg$c63(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsetype() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 18, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c64) { + s1 = peg$c64; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c65); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c67); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c67); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c70(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseflags() { + var s0, s1; + var key = peg$currPos * 30 + 19, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = []; + + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c72); + } + } + + if (s1 !== peg$FAILED) { + while (s1 !== peg$FAILED) { + s0.push(s1); + + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c72); + } + } + } + } else { + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseregex() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 30 + 20, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 47) { + s1 = peg$c73; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c74); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c76); + } + } + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c76); + } + } + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 47) { + s3 = peg$c73; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c74); + } + } + + if (s3 !== peg$FAILED) { + s4 = peg$parseflags(); + + if (s4 === peg$FAILED) { + s4 = null; + } + + if (s4 !== peg$FAILED) { + s1 = peg$c77(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsefield() { + var s0, s1, s2, s3, s4, s5, s6; + var key = peg$currPos * 30 + 21, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s1 = peg$c42; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c78(s2, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenegation() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 22, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c79) { + s1 = peg$c79; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c80); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c81(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsematches() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 23, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 9) === peg$c82) { + s1 = peg$c82; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c83); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c84(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsehas() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 24, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c85) { + s1 = peg$c85; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c86); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c87(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsefirstChild() { + var s0, s1; + var key = peg$currPos * 30 + 25, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 12) === peg$c88) { + s1 = peg$c88; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c89); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c90(); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parselastChild() { + var s0, s1; + var key = peg$currPos * 30 + 26, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 11) === peg$c91) { + s1 = peg$c91; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c92); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c93(); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenthChild() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 27, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 11) === peg$c94) { + s1 = peg$c94; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c95); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c96(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenthLastChild() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 28, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 16) === peg$c97) { + s1 = peg$c97; + peg$currPos += 16; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c98); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c99(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseclass() { + var s0, s1, s2; + var key = peg$currPos * 30 + 29, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 58) { + s1 = peg$c100; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c101); + } + } + + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 9).toLowerCase() === peg$c102) { + s2 = input.substr(peg$currPos, 9); + peg$currPos += 9; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c103); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 10).toLowerCase() === peg$c104) { + s2 = input.substr(peg$currPos, 10); + peg$currPos += 10; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c105); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 11).toLowerCase() === peg$c106) { + s2 = input.substr(peg$currPos, 11); + peg$currPos += 11; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c107); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 8).toLowerCase() === peg$c108) { + s2 = input.substr(peg$currPos, 8); + peg$currPos += 8; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c109); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c110) { + s2 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c111); + } + } + } + } + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c112(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function nth(n) { + return { + type: 'nth-child', + index: { + type: 'literal', + value: n + } + }; + } + + function nthLast(n) { + return { + type: 'nth-last-child', + index: { + type: 'literal', + value: n + } + }; + } + + function strUnescape(s) { + return s.replace(/\\(.)/g, function (match, ch) { + switch (ch) { + case 'b': + return '\b'; + + case 'f': + return '\f'; + + case 'n': + return '\n'; + + case 'r': + return '\r'; + + case 't': + return '\t'; + + case 'v': + return '\v'; + + default: + return ch; + } + }); + } + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)); + } + } + + return { + SyntaxError: peg$SyntaxError, + parse: peg$parse + }; + }); +}); + +function _objectEntries(obj) { + var entries = []; + var keys = Object.keys(obj); + + for (var k = 0; k < keys.length; k++) entries.push([keys[k], obj[keys[k]]]); + + return entries; +} +/** +* @typedef {"LEFT_SIDE"|"RIGHT_SIDE"} Side +*/ + +var LEFT_SIDE = 'LEFT_SIDE'; +var RIGHT_SIDE = 'RIGHT_SIDE'; +/** + * @external AST + * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html + */ + +/** + * One of the rules of `grammar.pegjs` + * @typedef {PlainObject} SelectorAST + * @see grammar.pegjs +*/ + +/** + * The `sequence` production of `grammar.pegjs` + * @typedef {PlainObject} SelectorSequenceAST +*/ + +/** + * Get the value of a property which may be multiple levels down + * in the object. + * @param {?PlainObject} obj + * @param {string} key + * @returns {undefined|boolean|string|number|external:AST} + */ + +function getPath(obj, key) { + var keys = key.split('.'); + + var _iterator = _createForOfIteratorHelper(keys), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _key = _step.value; + + if (obj == null) { + return obj; + } + + obj = obj[_key]; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return obj; +} +/** + * Determine whether `node` can be reached by following `path`, + * starting at `ancestor`. + * @param {?external:AST} node + * @param {?external:AST} ancestor + * @param {string[]} path + * @returns {boolean} + */ + + +function inPath(node, ancestor, path) { + if (path.length === 0) { + return node === ancestor; + } + + if (ancestor == null) { + return false; + } + + var field = ancestor[path[0]]; + var remainingPath = path.slice(1); + + if (Array.isArray(field)) { + var _iterator2 = _createForOfIteratorHelper(field), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var component = _step2.value; + + if (inPath(node, component, remainingPath)) { + return true; + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return false; + } else { + return inPath(node, field, remainingPath); + } +} +/** + * @callback TraverseOptionFallback + * @param {external:AST} node The given node. + * @returns {string[]} An array of visitor keys for the given node. + */ + +/** + * @typedef {object} ESQueryOptions + * @property { { [nodeType: string]: string[] } } [visitorKeys] By passing `visitorKeys` mapping, we can extend the properties of the nodes that traverse the node. + * @property {TraverseOptionFallback} [fallback] By passing `fallback` option, we can control the properties of traversing nodes when encountering unknown nodes. + */ + +/** + * Given a `node` and its ancestors, determine if `node` is matched + * by `selector`. + * @param {?external:AST} node + * @param {?SelectorAST} selector + * @param {external:AST[]} [ancestry=[]] + * @param {ESQueryOptions} [options] + * @throws {Error} Unknowns (operator, class name, selector type, or + * selector value type) + * @returns {boolean} + */ + + +function matches(node, selector, ancestry, options) { + if (!selector) { + return true; + } + + if (!node) { + return false; + } + + if (!ancestry) { + ancestry = []; + } + + switch (selector.type) { + case 'wildcard': + return true; + + case 'identifier': + return selector.value.toLowerCase() === node.type.toLowerCase(); + + case 'field': + { + var path = selector.name.split('.'); + var ancestor = ancestry[path.length - 1]; + return inPath(node, ancestor, path); + } + + case 'matches': + var _iterator3 = _createForOfIteratorHelper(selector.selectors), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var sel = _step3.value; + + if (matches(node, sel, ancestry, options)) { + return true; + } + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + + return false; + + case 'compound': + var _iterator4 = _createForOfIteratorHelper(selector.selectors), + _step4; + + try { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var _sel = _step4.value; + + if (!matches(node, _sel, ancestry, options)) { + return false; + } + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); + } + + return true; + + case 'not': + var _iterator5 = _createForOfIteratorHelper(selector.selectors), + _step5; + + try { + for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { + var _sel2 = _step5.value; + + if (matches(node, _sel2, ancestry, options)) { + return false; + } + } + } catch (err) { + _iterator5.e(err); + } finally { + _iterator5.f(); + } + + return true; + + case 'has': + { + var _ret = function () { + var collector = []; + + var _iterator6 = _createForOfIteratorHelper(selector.selectors), + _step6; + + try { + var _loop = function _loop() { + var sel = _step6.value; + var a = []; + estraverse.traverse(node, { + enter: function enter(node, parent) { + if (parent != null) { + a.unshift(parent); + } + + if (matches(node, sel, a, options)) { + collector.push(node); + } + }, + leave: function leave() { + a.shift(); + }, + keys: options && options.visitorKeys, + fallback: options && options.fallback || 'iteration' + }); + }; + + for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { + _loop(); + } + } catch (err) { + _iterator6.e(err); + } finally { + _iterator6.f(); + } + + return { + v: collector.length !== 0 + }; + }(); + + if (_typeof(_ret) === "object") return _ret.v; + } + + case 'child': + if (matches(node, selector.right, ancestry, options)) { + return matches(ancestry[0], selector.left, ancestry.slice(1), options); + } + + return false; + + case 'descendant': + if (matches(node, selector.right, ancestry, options)) { + for (var i = 0, l = ancestry.length; i < l; ++i) { + if (matches(ancestry[i], selector.left, ancestry.slice(i + 1), options)) { + return true; + } + } + } + + return false; + + case 'attribute': + { + var p = getPath(node, selector.name); + + switch (selector.operator) { + case void 0: + return p != null; + + case '=': + switch (selector.value.type) { + case 'regexp': + return typeof p === 'string' && selector.value.value.test(p); + + case 'literal': + return "".concat(selector.value.value) === "".concat(p); + + case 'type': + return selector.value.value === _typeof(p); + } + + throw new Error("Unknown selector value type: ".concat(selector.value.type)); + + case '!=': + switch (selector.value.type) { + case 'regexp': + return !selector.value.value.test(p); + + case 'literal': + return "".concat(selector.value.value) !== "".concat(p); + + case 'type': + return selector.value.value !== _typeof(p); + } + + throw new Error("Unknown selector value type: ".concat(selector.value.type)); + + case '<=': + return p <= selector.value.value; + + case '<': + return p < selector.value.value; + + case '>': + return p > selector.value.value; + + case '>=': + return p >= selector.value.value; + } + + throw new Error("Unknown operator: ".concat(selector.operator)); + } + + case 'sibling': + return matches(node, selector.right, ancestry, options) && sibling(node, selector.left, ancestry, LEFT_SIDE, options) || selector.left.subject && matches(node, selector.left, ancestry, options) && sibling(node, selector.right, ancestry, RIGHT_SIDE, options); + + case 'adjacent': + return matches(node, selector.right, ancestry, options) && adjacent(node, selector.left, ancestry, LEFT_SIDE, options) || selector.right.subject && matches(node, selector.left, ancestry, options) && adjacent(node, selector.right, ancestry, RIGHT_SIDE, options); + + case 'nth-child': + return matches(node, selector.right, ancestry, options) && nthChild(node, ancestry, function () { + return selector.index.value - 1; + }, options); + + case 'nth-last-child': + return matches(node, selector.right, ancestry, options) && nthChild(node, ancestry, function (length) { + return length - selector.index.value; + }, options); + + case 'class': + switch (selector.name.toLowerCase()) { + case 'statement': + if (node.type.slice(-9) === 'Statement') return true; + // fallthrough: interface Declaration <: Statement { } + + case 'declaration': + return node.type.slice(-11) === 'Declaration'; + + case 'pattern': + if (node.type.slice(-7) === 'Pattern') return true; + // fallthrough: interface Expression <: Node, Pattern { } + + case 'expression': + return node.type.slice(-10) === 'Expression' || node.type.slice(-7) === 'Literal' || node.type === 'Identifier' && (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty') || node.type === 'MetaProperty'; + + case 'function': + return node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression'; + } + + throw new Error("Unknown class name: ".concat(selector.name)); + } + + throw new Error("Unknown selector type: ".concat(selector.type)); +} +/** + * Get visitor keys of a given node. + * @param {external:AST} node The AST node to get keys. + * @param {ESQueryOptions|undefined} options + * @returns {string[]} Visitor keys of the node. + */ + + +function getVisitorKeys(node, options) { + var nodeType = node.type; + + if (options && options.visitorKeys && options.visitorKeys[nodeType]) { + return options.visitorKeys[nodeType]; + } + + if (estraverse.VisitorKeys[nodeType]) { + return estraverse.VisitorKeys[nodeType]; + } + + if (options && typeof options.fallback === 'function') { + return options.fallback(node); + } // 'iteration' fallback + + + return Object.keys(node).filter(function (key) { + return key !== 'type'; + }); +} +/** + * Check whether the given value is an ASTNode or not. + * @param {any} node The value to check. + * @returns {boolean} `true` if the value is an ASTNode. + */ + + +function isNode(node) { + return node !== null && _typeof(node) === 'object' && typeof node.type === 'string'; +} +/** + * Determines if the given node has a sibling that matches the + * given selector. + * @param {external:AST} node + * @param {SelectorSequenceAST} selector + * @param {external:AST[]} ancestry + * @param {Side} side + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + +function sibling(node, selector, ancestry, side, options) { + var _ancestry = _slicedToArray(ancestry, 1), + parent = _ancestry[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator7 = _createForOfIteratorHelper(keys), + _step7; + + try { + for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { + var key = _step7.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var startIndex = listProp.indexOf(node); + + if (startIndex < 0) { + continue; + } + + var lowerBound = void 0, + upperBound = void 0; + + if (side === LEFT_SIDE) { + lowerBound = 0; + upperBound = startIndex; + } else { + lowerBound = startIndex + 1; + upperBound = listProp.length; + } + + for (var k = lowerBound; k < upperBound; ++k) { + if (isNode(listProp[k]) && matches(listProp[k], selector, ancestry, options)) { + return true; + } + } + } + } + } catch (err) { + _iterator7.e(err); + } finally { + _iterator7.f(); + } + + return false; +} +/** + * Determines if the given node has an adjacent sibling that matches + * the given selector. + * @param {external:AST} node + * @param {SelectorSequenceAST} selector + * @param {external:AST[]} ancestry + * @param {Side} side + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + +function adjacent(node, selector, ancestry, side, options) { + var _ancestry2 = _slicedToArray(ancestry, 1), + parent = _ancestry2[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator8 = _createForOfIteratorHelper(keys), + _step8; + + try { + for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { + var key = _step8.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var idx = listProp.indexOf(node); + + if (idx < 0) { + continue; + } + + if (side === LEFT_SIDE && idx > 0 && isNode(listProp[idx - 1]) && matches(listProp[idx - 1], selector, ancestry, options)) { + return true; + } + + if (side === RIGHT_SIDE && idx < listProp.length - 1 && isNode(listProp[idx + 1]) && matches(listProp[idx + 1], selector, ancestry, options)) { + return true; + } + } + } + } catch (err) { + _iterator8.e(err); + } finally { + _iterator8.f(); + } + + return false; +} +/** +* @callback IndexFunction +* @param {Integer} len Containing list's length +* @returns {Integer} +*/ + +/** + * Determines if the given node is the nth child, determined by + * `idxFn`, which is given the containing list's length. + * @param {external:AST} node + * @param {external:AST[]} ancestry + * @param {IndexFunction} idxFn + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + +function nthChild(node, ancestry, idxFn, options) { + var _ancestry3 = _slicedToArray(ancestry, 1), + parent = _ancestry3[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator9 = _createForOfIteratorHelper(keys), + _step9; + + try { + for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { + var key = _step9.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var idx = listProp.indexOf(node); + + if (idx >= 0 && idx === idxFn(listProp.length)) { + return true; + } + } + } + } catch (err) { + _iterator9.e(err); + } finally { + _iterator9.f(); + } + + return false; +} +/** + * For each selector node marked as a subject, find the portion of the + * selector that the subject must match. + * @param {SelectorAST} selector + * @param {SelectorAST} [ancestor] Defaults to `selector` + * @returns {SelectorAST[]} + */ + + +function subjects(selector, ancestor) { + if (selector == null || _typeof(selector) != 'object') { + return []; + } + + if (ancestor == null) { + ancestor = selector; + } + + var results = selector.subject ? [ancestor] : []; + + for (var _i = 0, _Object$entries = _objectEntries(selector); _i < _Object$entries.length; _i++) { + var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), + p = _Object$entries$_i[0], + sel = _Object$entries$_i[1]; + + results.push.apply(results, _toConsumableArray(subjects(sel, p === 'left' ? sel : ancestor))); + } + + return results; +} +/** +* @callback TraverseVisitor +* @param {?external:AST} node +* @param {?external:AST} parent +* @param {external:AST[]} ancestry +*/ + +/** + * From a JS AST and a selector AST, collect all JS AST nodes that + * match the selector. + * @param {external:AST} ast + * @param {?SelectorAST} selector + * @param {TraverseVisitor} visitor + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + +function traverse(ast, selector, visitor, options) { + if (!selector) { + return; + } + + var ancestry = []; + var altSubjects = subjects(selector); + estraverse.traverse(ast, { + enter: function enter(node, parent) { + if (parent != null) { + ancestry.unshift(parent); + } + + if (matches(node, selector, ancestry, options)) { + if (altSubjects.length) { + for (var i = 0, l = altSubjects.length; i < l; ++i) { + if (matches(node, altSubjects[i], ancestry, options)) { + visitor(node, parent, ancestry); + } + + for (var k = 0, m = ancestry.length; k < m; ++k) { + var succeedingAncestry = ancestry.slice(k + 1); + + if (matches(ancestry[k], altSubjects[i], succeedingAncestry, options)) { + visitor(ancestry[k], parent, succeedingAncestry); + } + } + } + } else { + visitor(node, parent, ancestry); + } + } + }, + leave: function leave() { + ancestry.shift(); + }, + keys: options && options.visitorKeys, + fallback: options && options.fallback || 'iteration' + }); +} +/** + * From a JS AST and a selector AST, collect all JS AST nodes that + * match the selector. + * @param {external:AST} ast + * @param {?SelectorAST} selector + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + +function match(ast, selector, options) { + var results = []; + traverse(ast, selector, function (node) { + results.push(node); + }, options); + return results; +} +/** + * Parse a selector string and return its AST. + * @param {string} selector + * @returns {SelectorAST} + */ + + +function parse(selector) { + return parser.parse(selector); +} +/** + * Query the code AST using the selector string. + * @param {external:AST} ast + * @param {string} selector + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + +function query(ast, selector, options) { + return match(ast, parse(selector), options); +} + +query.parse = parse; +query.match = match; +query.traverse = traverse; +query.matches = matches; +query.query = query; + +export default query; diff --git a/node_modules/esquery/dist/esquery.esm.min.js b/node_modules/esquery/dist/esquery.esm.min.js new file mode 100644 index 0000000..cd5ac34 --- /dev/null +++ b/node_modules/esquery/dist/esquery.esm.min.js @@ -0,0 +1,2 @@ +function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw o}}return r}(e,t)||n(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||n(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){if(e){if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){l=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(l)throw i}}}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function i(e,t){return e(t={exports:{}},t.exports),t.exports}var s=i((function(e,t){!function e(t){var r,n,a,o,i,s;function l(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?l(r):r);return n}function u(e,t){this.parent=e,this.key=t}function c(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function f(){}function p(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function h(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function y(e,t){for(var r=e.length-1;r>=0;--r)if(e[r].node===t)return!0;return!1}function d(e,t){return(new f).traverse(e,t)}function m(e,t){var r;return r=function(e,t){var r,n,a,o;for(n=e.length,a=0;n;)t(e[o=a+(r=n>>>1)])?n=r:(a=o+1,n-=r+1);return a}(t,(function(t){return t.range[0]>e.range[0]})),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},a={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:o={},Skip:i={},Remove:s={}},u.prototype.replace=function(e){this.parent[this.key]=e},u.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},f.prototype.path=function(){var e,t,r,n,a;function o(e,t){if(Array.isArray(t))for(r=0,n=t.length;r=0;)if(v=s[f=x[d]])if(Array.isArray(v)){for(m=v.length;(m-=1)>=0;)if(v[m]&&!y(n,v[m])){if(h(l,x[d]))a=new c(v[m],[f,m],"Property",null);else{if(!p(v[m]))continue;a=new c(v[m],[f,m],null,null)}r.push(a)}}else if(p(v)){if(y(n,v))continue;r.push(new c(v,f,null,null))}}}else if(a=n.pop(),u=this.__execute(t.leave,a),this.__state===o||u===o)return},f.prototype.replace=function(e,t){var r,n,a,l,f,y,d,m,x,v,g,b,A;function E(e){var t,n,a,o;if(e.ref.remove())for(n=e.ref.key,o=e.ref.parent,t=r.length;t--;)if((a=r[t]).ref&&a.ref.parent===o){if(a.ref.key=0;)if(v=a[A=x[d]])if(Array.isArray(v)){for(m=v.length;(m-=1)>=0;)if(v[m]){if(h(l,x[d]))y=new c(v[m],[A,m],"Property",new u(v,m));else{if(!p(v[m]))continue;y=new c(v[m],[A,m],null,new u(v,m))}r.push(y)}}else p(v)&&r.push(new c(v,A,null,new u(a,A)))}}else if(y=n.pop(),void 0!==(f=this.__execute(t.leave,y))&&f!==o&&f!==i&&f!==s&&y.ref.replace(f),this.__state!==s&&f!==s||E(y),this.__state===o||f===o)return b.root;return b.root},t.Syntax=r,t.traverse=d,t.replace=function(e,t){return(new f).replace(e,t)},t.attachComments=function(e,t,r){var a,o,i,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(i=0,o=t.length;ie.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?n.Break:u[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),s=0,d(e,{leave:function(e){for(var t;se.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=a,t.VisitorOption=n,t.Controller=f,t.cloneEnvironment=function(){return e({})},t}(t)})),l=i((function(e){e.exports&&(e.exports=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;t<~+.]/,p=me([" ","[","]",",","(",")",":","#","!","=",">","<","~","+","."],!0,!1),h=de(">",!1),y=de("~",!1),d=de("+",!1),m=de(",",!1),x=de("!",!1),v=de("*",!1),g=de("#",!1),b=de("[",!1),A=de("]",!1),E=/^[>","<","!"],!1,!1),_=de("=",!1),w=function(e){return(e||"")+"="},C=/^[><]/,P=me([">","<"],!1,!1),k=de(".",!1),D=function(e,t,r){return{type:"attribute",name:e,operator:t,value:r}},j=de('"',!1),I=/^[^\\"]/,T=me(["\\",'"'],!0,!1),F=de("\\",!1),L={type:"any"},O=function(e,t){return e+t},R=function(e){return{type:"literal",value:(t=e.join(""),t.replace(/\\(.)/g,(function(e,t){switch(t){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";default:return t}})))};var t},B=de("'",!1),M=/^[^\\']/,U=me(["\\","'"],!0,!1),V=/^[0-9]/,q=me([["0","9"]],!1,!1),N=de("type(",!1),W=/^[^ )]/,K=me([" ",")"],!0,!1),G=de(")",!1),z=/^[imsu]/,H=me(["i","m","s","u"],!1,!1),Y=de("/",!1),$=/^[^\/]/,J=me(["/"],!0,!1),Q=de(":not(",!1),X=de(":matches(",!1),Z=de(":has(",!1),ee=de(":first-child",!1),te=de(":last-child",!1),re=de(":nth-child(",!1),ne=de(":nth-last-child(",!1),ae=de(":",!1),oe=de("statement",!0),ie=de("expression",!0),se=de("declaration",!0),le=de("function",!0),ue=de("pattern",!0),ce=0,fe=[{line:1,column:1}],pe=0,he=[],ye={};if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');u=l[r.startRule]}function de(e,t){return{type:"literal",text:e,ignoreCase:t}}function me(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function xe(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};rpe&&(pe=ce,he=[]),he.push(e))}function be(){var e,t,r,n,a=30*ce+0,o=ye[a];return o?(ce=o.nextPos,o.result):(e=ce,(t=Ae())!==s&&(r=_e())!==s&&Ae()!==s?e=t=1===(n=r).length?n[0]:{type:"matches",selectors:n}:(ce=e,e=s),e===s&&(e=ce,(t=Ae())!==s&&(t=void 0),e=t),ye[a]={nextPos:ce,result:e},e)}function Ae(){var e,r,n=30*ce+1,a=ye[n];if(a)return ce=a.nextPos,a.result;for(e=[],32===t.charCodeAt(ce)?(r=" ",ce++):(r=s,ge(c));r!==s;)e.push(r),32===t.charCodeAt(ce)?(r=" ",ce++):(r=s,ge(c));return ye[n]={nextPos:ce,result:e},e}function Ee(){var e,r,n,a=30*ce+2,o=ye[a];if(o)return ce=o.nextPos,o.result;if(r=[],f.test(t.charAt(ce))?(n=t.charAt(ce),ce++):(n=s,ge(p)),n!==s)for(;n!==s;)r.push(n),f.test(t.charAt(ce))?(n=t.charAt(ce),ce++):(n=s,ge(p));else r=s;return r!==s&&(r=r.join("")),e=r,ye[a]={nextPos:ce,result:e},e}function Se(){var e,r,n,a=30*ce+3,o=ye[a];return o?(ce=o.nextPos,o.result):(e=ce,(r=Ae())!==s?(62===t.charCodeAt(ce)?(n=">",ce++):(n=s,ge(h)),n!==s&&Ae()!==s?e=r="child":(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=Ae())!==s?(126===t.charCodeAt(ce)?(n="~",ce++):(n=s,ge(y)),n!==s&&Ae()!==s?e=r="sibling":(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=Ae())!==s?(43===t.charCodeAt(ce)?(n="+",ce++):(n=s,ge(d)),n!==s&&Ae()!==s?e=r="adjacent":(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,32===t.charCodeAt(ce)?(r=" ",ce++):(r=s,ge(c)),r!==s&&(n=Ae())!==s?e=r="descendant":(ce=e,e=s)))),ye[a]={nextPos:ce,result:e},e)}function _e(){var e,r,n,a,o,i,l,u,c=30*ce+4,f=ye[c];if(f)return ce=f.nextPos,f.result;if(e=ce,(r=we())!==s){for(n=[],a=ce,(o=Ae())!==s?(44===t.charCodeAt(ce)?(i=",",ce++):(i=s,ge(m)),i!==s&&(l=Ae())!==s&&(u=we())!==s?a=o=[o,i,l,u]:(ce=a,a=s)):(ce=a,a=s);a!==s;)n.push(a),a=ce,(o=Ae())!==s?(44===t.charCodeAt(ce)?(i=",",ce++):(i=s,ge(m)),i!==s&&(l=Ae())!==s&&(u=we())!==s?a=o=[o,i,l,u]:(ce=a,a=s)):(ce=a,a=s);n!==s?e=r=[r].concat(n.map((function(e){return e[3]}))):(ce=e,e=s)}else ce=e,e=s;return ye[c]={nextPos:ce,result:e},e}function we(){var e,t,r,n,a,o,i,l=30*ce+5,u=ye[l];if(u)return ce=u.nextPos,u.result;if(e=ce,(t=Ce())!==s){for(r=[],n=ce,(a=Se())!==s&&(o=Ce())!==s?n=a=[a,o]:(ce=n,n=s);n!==s;)r.push(n),n=ce,(a=Se())!==s&&(o=Ce())!==s?n=a=[a,o]:(ce=n,n=s);r!==s?(i=t,e=t=r.reduce((function(e,t){return{type:t[0],left:e,right:t[1]}}),i)):(ce=e,e=s)}else ce=e,e=s;return ye[l]={nextPos:ce,result:e},e}function Ce(){var e,r,n,a,o,i,l,u=30*ce+6,c=ye[u];if(c)return ce=c.nextPos,c.result;if(e=ce,33===t.charCodeAt(ce)?(r="!",ce++):(r=s,ge(x)),r===s&&(r=null),r!==s){if(n=[],(a=Pe())!==s)for(;a!==s;)n.push(a),a=Pe();else n=s;n!==s?(o=r,l=1===(i=n).length?i[0]:{type:"compound",selectors:i},o&&(l.subject=!0),e=r=l):(ce=e,e=s)}else ce=e,e=s;return ye[u]={nextPos:ce,result:e},e}function Pe(){var e,r=30*ce+7,n=ye[r];return n?(ce=n.nextPos,n.result):((e=function(){var e,r,n=30*ce+8,a=ye[n];return a?(ce=a.nextPos,a.result):(42===t.charCodeAt(ce)?(r="*",ce++):(r=s,ge(v)),r!==s&&(r={type:"wildcard",value:r}),e=r,ye[n]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,a=30*ce+9,o=ye[a];return o?(ce=o.nextPos,o.result):(e=ce,35===t.charCodeAt(ce)?(r="#",ce++):(r=s,ge(g)),r===s&&(r=null),r!==s&&(n=Ee())!==s?e=r={type:"identifier",value:n}:(ce=e,e=s),ye[a]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,a,o=30*ce+10,i=ye[o];return i?(ce=i.nextPos,i.result):(e=ce,91===t.charCodeAt(ce)?(r="[",ce++):(r=s,ge(b)),r!==s&&Ae()!==s&&(n=function(){var e,r,n,a,o=30*ce+14,i=ye[o];return i?(ce=i.nextPos,i.result):(e=ce,(r=ke())!==s&&Ae()!==s&&(n=function(){var e,r,n,a=30*ce+12,o=ye[a];return o?(ce=o.nextPos,o.result):(e=ce,33===t.charCodeAt(ce)?(r="!",ce++):(r=s,ge(x)),r===s&&(r=null),r!==s?(61===t.charCodeAt(ce)?(n="=",ce++):(n=s,ge(_)),n!==s?(r=w(r),e=r):(ce=e,e=s)):(ce=e,e=s),ye[a]={nextPos:ce,result:e},e)}())!==s&&Ae()!==s?((a=function(){var e,r,n,a,o,i=30*ce+18,l=ye[i];if(l)return ce=l.nextPos,l.result;if(e=ce,"type("===t.substr(ce,5)?(r="type(",ce+=5):(r=s,ge(N)),r!==s)if(Ae()!==s){if(n=[],W.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(K)),a!==s)for(;a!==s;)n.push(a),W.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(K));else n=s;n!==s&&(a=Ae())!==s?(41===t.charCodeAt(ce)?(o=")",ce++):(o=s,ge(G)),o!==s?(r={type:"type",value:n.join("")},e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[i]={nextPos:ce,result:e},e}())===s&&(a=function(){var e,r,n,a,o,i,l=30*ce+20,u=ye[l];if(u)return ce=u.nextPos,u.result;if(e=ce,47===t.charCodeAt(ce)?(r="/",ce++):(r=s,ge(Y)),r!==s){if(n=[],$.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(J)),a!==s)for(;a!==s;)n.push(a),$.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(J));else n=s;n!==s?(47===t.charCodeAt(ce)?(a="/",ce++):(a=s,ge(Y)),a!==s?((o=function(){var e,r,n=30*ce+19,a=ye[n];if(a)return ce=a.nextPos,a.result;if(e=[],z.test(t.charAt(ce))?(r=t.charAt(ce),ce++):(r=s,ge(H)),r!==s)for(;r!==s;)e.push(r),z.test(t.charAt(ce))?(r=t.charAt(ce),ce++):(r=s,ge(H));else e=s;return ye[n]={nextPos:ce,result:e},e}())===s&&(o=null),o!==s?(i=o,r={type:"regexp",value:new RegExp(n.join(""),i?i.join(""):"")},e=r):(ce=e,e=s)):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;return ye[l]={nextPos:ce,result:e},e}()),a!==s?(r=D(r,n,a),e=r):(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=ke())!==s&&Ae()!==s&&(n=function(){var e,r,n,a=30*ce+11,o=ye[a];return o?(ce=o.nextPos,o.result):(e=ce,E.test(t.charAt(ce))?(r=t.charAt(ce),ce++):(r=s,ge(S)),r===s&&(r=null),r!==s?(61===t.charCodeAt(ce)?(n="=",ce++):(n=s,ge(_)),n!==s?(r=w(r),e=r):(ce=e,e=s)):(ce=e,e=s),e===s&&(C.test(t.charAt(ce))?(e=t.charAt(ce),ce++):(e=s,ge(P))),ye[a]={nextPos:ce,result:e},e)}())!==s&&Ae()!==s?((a=function(){var e,r,n,a,o,i,l=30*ce+15,u=ye[l];if(u)return ce=u.nextPos,u.result;if(e=ce,34===t.charCodeAt(ce)?(r='"',ce++):(r=s,ge(j)),r!==s){for(n=[],I.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(T)),a===s&&(a=ce,92===t.charCodeAt(ce)?(o="\\",ce++):(o=s,ge(F)),o!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(o=O(o,i),a=o):(ce=a,a=s)):(ce=a,a=s));a!==s;)n.push(a),I.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(T)),a===s&&(a=ce,92===t.charCodeAt(ce)?(o="\\",ce++):(o=s,ge(F)),o!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(o=O(o,i),a=o):(ce=a,a=s)):(ce=a,a=s));n!==s?(34===t.charCodeAt(ce)?(a='"',ce++):(a=s,ge(j)),a!==s?(r=R(n),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;if(e===s)if(e=ce,39===t.charCodeAt(ce)?(r="'",ce++):(r=s,ge(B)),r!==s){for(n=[],M.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(U)),a===s&&(a=ce,92===t.charCodeAt(ce)?(o="\\",ce++):(o=s,ge(F)),o!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(o=O(o,i),a=o):(ce=a,a=s)):(ce=a,a=s));a!==s;)n.push(a),M.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(U)),a===s&&(a=ce,92===t.charCodeAt(ce)?(o="\\",ce++):(o=s,ge(F)),o!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(o=O(o,i),a=o):(ce=a,a=s)):(ce=a,a=s));n!==s?(39===t.charCodeAt(ce)?(a="'",ce++):(a=s,ge(B)),a!==s?(r=R(n),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;return ye[l]={nextPos:ce,result:e},e}())===s&&(a=function(){var e,r,n,a,o,i,l,u=30*ce+16,c=ye[u];if(c)return ce=c.nextPos,c.result;for(e=ce,r=ce,n=[],V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q));a!==s;)n.push(a),V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q));if(n!==s?(46===t.charCodeAt(ce)?(a=".",ce++):(a=s,ge(k)),a!==s?r=n=[n,a]:(ce=r,r=s)):(ce=r,r=s),r===s&&(r=null),r!==s){if(n=[],V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q)),a!==s)for(;a!==s;)n.push(a),V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q));else n=s;n!==s?(i=n,l=(o=r)?[].concat.apply([],o).join(""):"",r={type:"literal",value:parseFloat(l+i.join(""))},e=r):(ce=e,e=s)}else ce=e,e=s;return ye[u]={nextPos:ce,result:e},e}())===s&&(a=function(){var e,t,r=30*ce+17,n=ye[r];return n?(ce=n.nextPos,n.result):((t=Ee())!==s&&(t={type:"literal",value:t}),e=t,ye[r]={nextPos:ce,result:e},e)}()),a!==s?(r=D(r,n,a),e=r):(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=ke())!==s&&(r={type:"attribute",name:r}),e=r)),ye[o]={nextPos:ce,result:e},e)}())!==s&&Ae()!==s?(93===t.charCodeAt(ce)?(a="]",ce++):(a=s,ge(A)),a!==s?e=r=n:(ce=e,e=s)):(ce=e,e=s),ye[o]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,a,o,i,l,u,c=30*ce+21,f=ye[c];if(f)return ce=f.nextPos,f.result;if(e=ce,46===t.charCodeAt(ce)?(r=".",ce++):(r=s,ge(k)),r!==s)if((n=Ee())!==s){for(a=[],o=ce,46===t.charCodeAt(ce)?(i=".",ce++):(i=s,ge(k)),i!==s&&(l=Ee())!==s?o=i=[i,l]:(ce=o,o=s);o!==s;)a.push(o),o=ce,46===t.charCodeAt(ce)?(i=".",ce++):(i=s,ge(k)),i!==s&&(l=Ee())!==s?o=i=[i,l]:(ce=o,o=s);a!==s?(u=n,r={type:"field",name:a.reduce((function(e,t){return e+t[0]+t[1]}),u)},e=r):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[c]={nextPos:ce,result:e},e}())===s&&(e=function(){var e,r,n,a,o=30*ce+22,i=ye[o];return i?(ce=i.nextPos,i.result):(e=ce,":not("===t.substr(ce,5)?(r=":not(",ce+=5):(r=s,ge(Q)),r!==s&&Ae()!==s&&(n=_e())!==s&&Ae()!==s?(41===t.charCodeAt(ce)?(a=")",ce++):(a=s,ge(G)),a!==s?e=r={type:"not",selectors:n}:(ce=e,e=s)):(ce=e,e=s),ye[o]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,a,o=30*ce+23,i=ye[o];return i?(ce=i.nextPos,i.result):(e=ce,":matches("===t.substr(ce,9)?(r=":matches(",ce+=9):(r=s,ge(X)),r!==s&&Ae()!==s&&(n=_e())!==s&&Ae()!==s?(41===t.charCodeAt(ce)?(a=")",ce++):(a=s,ge(G)),a!==s?e=r={type:"matches",selectors:n}:(ce=e,e=s)):(ce=e,e=s),ye[o]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,a,o=30*ce+24,i=ye[o];return i?(ce=i.nextPos,i.result):(e=ce,":has("===t.substr(ce,5)?(r=":has(",ce+=5):(r=s,ge(Z)),r!==s&&Ae()!==s&&(n=_e())!==s&&Ae()!==s?(41===t.charCodeAt(ce)?(a=")",ce++):(a=s,ge(G)),a!==s?e=r={type:"has",selectors:n}:(ce=e,e=s)):(ce=e,e=s),ye[o]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n=30*ce+25,a=ye[n];return a?(ce=a.nextPos,a.result):(":first-child"===t.substr(ce,12)?(r=":first-child",ce+=12):(r=s,ge(ee)),r!==s&&(r=De(1)),e=r,ye[n]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n=30*ce+26,a=ye[n];return a?(ce=a.nextPos,a.result):(":last-child"===t.substr(ce,11)?(r=":last-child",ce+=11):(r=s,ge(te)),r!==s&&(r=je(1)),e=r,ye[n]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,a,o,i=30*ce+27,l=ye[i];if(l)return ce=l.nextPos,l.result;if(e=ce,":nth-child("===t.substr(ce,11)?(r=":nth-child(",ce+=11):(r=s,ge(re)),r!==s)if(Ae()!==s){if(n=[],V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q)),a!==s)for(;a!==s;)n.push(a),V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q));else n=s;n!==s&&(a=Ae())!==s?(41===t.charCodeAt(ce)?(o=")",ce++):(o=s,ge(G)),o!==s?(r=De(parseInt(n.join(""),10)),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[i]={nextPos:ce,result:e},e}())===s&&(e=function(){var e,r,n,a,o,i=30*ce+28,l=ye[i];if(l)return ce=l.nextPos,l.result;if(e=ce,":nth-last-child("===t.substr(ce,16)?(r=":nth-last-child(",ce+=16):(r=s,ge(ne)),r!==s)if(Ae()!==s){if(n=[],V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q)),a!==s)for(;a!==s;)n.push(a),V.test(t.charAt(ce))?(a=t.charAt(ce),ce++):(a=s,ge(q));else n=s;n!==s&&(a=Ae())!==s?(41===t.charCodeAt(ce)?(o=")",ce++):(o=s,ge(G)),o!==s?(r=je(parseInt(n.join(""),10)),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[i]={nextPos:ce,result:e},e}())===s&&(e=function(){var e,r,n,a=30*ce+29,o=ye[a];return o?(ce=o.nextPos,o.result):(e=ce,58===t.charCodeAt(ce)?(r=":",ce++):(r=s,ge(ae)),r!==s?("statement"===t.substr(ce,9).toLowerCase()?(n=t.substr(ce,9),ce+=9):(n=s,ge(oe)),n===s&&("expression"===t.substr(ce,10).toLowerCase()?(n=t.substr(ce,10),ce+=10):(n=s,ge(ie)),n===s&&("declaration"===t.substr(ce,11).toLowerCase()?(n=t.substr(ce,11),ce+=11):(n=s,ge(se)),n===s&&("function"===t.substr(ce,8).toLowerCase()?(n=t.substr(ce,8),ce+=8):(n=s,ge(le)),n===s&&("pattern"===t.substr(ce,7).toLowerCase()?(n=t.substr(ce,7),ce+=7):(n=s,ge(ue)))))),n!==s?e=r={type:"class",name:n}:(ce=e,e=s)):(ce=e,e=s),ye[a]={nextPos:ce,result:e},e)}()),ye[r]={nextPos:ce,result:e},e)}function ke(){var e,r,n,a,o,i,l,u,c=30*ce+13,f=ye[c];if(f)return ce=f.nextPos,f.result;if(e=ce,(r=Ee())!==s){for(n=[],a=ce,46===t.charCodeAt(ce)?(o=".",ce++):(o=s,ge(k)),o!==s&&(i=Ee())!==s?a=o=[o,i]:(ce=a,a=s);a!==s;)n.push(a),a=ce,46===t.charCodeAt(ce)?(o=".",ce++):(o=s,ge(k)),o!==s&&(i=Ee())!==s?a=o=[o,i]:(ce=a,a=s);n!==s?(l=r,u=n,e=r=[].concat.apply([l],u).join("")):(ce=e,e=s)}else ce=e,e=s;return ye[c]={nextPos:ce,result:e},e}function De(e){return{type:"nth-child",index:{type:"literal",value:e}}}function je(e){return{type:"nth-last-child",index:{type:"literal",value:e}}}if((n=u())!==s&&ce===t.length)return n;throw n!==s&&ce":return w>r.value.value;case">=":return w>=r.value.value}throw new Error("Unknown operator: ".concat(r.operator));case"sibling":return u(t,r.right,n,a)&&p(t,r.left,n,"LEFT_SIDE",a)||r.left.subject&&u(t,r.left,n,a)&&p(t,r.right,n,"RIGHT_SIDE",a);case"adjacent":return u(t,r.right,n,a)&&h(t,r.left,n,"LEFT_SIDE",a)||r.right.subject&&u(t,r.left,n,a)&&h(t,r.right,n,"RIGHT_SIDE",a);case"nth-child":return u(t,r.right,n,a)&&y(t,n,(function(){return r.index.value-1}),a);case"nth-last-child":return u(t,r.right,n,a)&&y(t,n,(function(e){return e-r.index.value}),a);case"class":switch(r.name.toLowerCase()){case"statement":if("Statement"===t.type.slice(-9))return!0;case"declaration":return"Declaration"===t.type.slice(-11);case"pattern":if("Pattern"===t.type.slice(-7))return!0;case"expression":return"Expression"===t.type.slice(-10)||"Literal"===t.type.slice(-7)||"Identifier"===t.type&&(0===n.length||"MetaProperty"!==n[0].type)||"MetaProperty"===t.type;case"function":return"FunctionDeclaration"===t.type||"FunctionExpression"===t.type||"ArrowFunctionExpression"===t.type}throw new Error("Unknown class name: ".concat(r.name))}throw new Error("Unknown selector type: ".concat(r.type))}function c(e,t){var r=e.type;return t&&t.visitorKeys&&t.visitorKeys[r]?t.visitorKeys[r]:s.VisitorKeys[r]?s.VisitorKeys[r]:t&&"function"==typeof t.fallback?t.fallback(e):Object.keys(e).filter((function(e){return"type"!==e}))}function f(t){return null!==t&&"object"===e(t)&&"string"==typeof t.type}function p(e,r,n,a,i){var s=t(n,1)[0];if(!s)return!1;var l,p=o(c(s,i));try{for(p.s();!(l=p.n()).done;){var h=s[l.value];if(Array.isArray(h)){var y=h.indexOf(e);if(y<0)continue;var d=void 0,m=void 0;"LEFT_SIDE"===a?(d=0,m=y):(d=y+1,m=h.length);for(var x=d;x0&&f(h[y-1])&&u(h[y-1],r,n,i))return!0;if("RIGHT_SIDE"===a&&y=0&&f===n(u.length))return!0}}}catch(e){l.e(e)}finally{l.f()}return!1}function d(n,a){if(null==n||"object"!=e(n))return[];null==a&&(a=n);for(var o=n.subject?[a]:[],i=0,s=function(e){for(var t=[],r=Object.keys(e),n=0;n\n Copyright (C) 2012 Ariya Hidayat \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true*/\n(function clone(exports) {\n 'use strict';\n\n var Syntax,\n VisitorOption,\n VisitorKeys,\n BREAK,\n SKIP,\n REMOVE;\n\n function deepCopy(obj) {\n var ret = {}, key, val;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n val = obj[key];\n if (typeof val === 'object' && val !== null) {\n ret[key] = deepCopy(val);\n } else {\n ret[key] = val;\n }\n }\n }\n return ret;\n }\n\n // based on LLVM libc++ upper_bound / lower_bound\n // MIT License\n\n function upperBound(array, func) {\n var diff, len, i, current;\n\n len = array.length;\n i = 0;\n\n while (len) {\n diff = len >>> 1;\n current = i + diff;\n if (func(array[current])) {\n len = diff;\n } else {\n i = current + 1;\n len -= diff + 1;\n }\n }\n return i;\n }\n\n Syntax = {\n AssignmentExpression: 'AssignmentExpression',\n AssignmentPattern: 'AssignmentPattern',\n ArrayExpression: 'ArrayExpression',\n ArrayPattern: 'ArrayPattern',\n ArrowFunctionExpression: 'ArrowFunctionExpression',\n AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n BlockStatement: 'BlockStatement',\n BinaryExpression: 'BinaryExpression',\n BreakStatement: 'BreakStatement',\n CallExpression: 'CallExpression',\n CatchClause: 'CatchClause',\n ChainExpression: 'ChainExpression',\n ClassBody: 'ClassBody',\n ClassDeclaration: 'ClassDeclaration',\n ClassExpression: 'ClassExpression',\n ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7.\n ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7.\n ConditionalExpression: 'ConditionalExpression',\n ContinueStatement: 'ContinueStatement',\n DebuggerStatement: 'DebuggerStatement',\n DirectiveStatement: 'DirectiveStatement',\n DoWhileStatement: 'DoWhileStatement',\n EmptyStatement: 'EmptyStatement',\n ExportAllDeclaration: 'ExportAllDeclaration',\n ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n ExportNamedDeclaration: 'ExportNamedDeclaration',\n ExportSpecifier: 'ExportSpecifier',\n ExpressionStatement: 'ExpressionStatement',\n ForStatement: 'ForStatement',\n ForInStatement: 'ForInStatement',\n ForOfStatement: 'ForOfStatement',\n FunctionDeclaration: 'FunctionDeclaration',\n FunctionExpression: 'FunctionExpression',\n GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7.\n Identifier: 'Identifier',\n IfStatement: 'IfStatement',\n ImportExpression: 'ImportExpression',\n ImportDeclaration: 'ImportDeclaration',\n ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n ImportSpecifier: 'ImportSpecifier',\n Literal: 'Literal',\n LabeledStatement: 'LabeledStatement',\n LogicalExpression: 'LogicalExpression',\n MemberExpression: 'MemberExpression',\n MetaProperty: 'MetaProperty',\n MethodDefinition: 'MethodDefinition',\n ModuleSpecifier: 'ModuleSpecifier',\n NewExpression: 'NewExpression',\n ObjectExpression: 'ObjectExpression',\n ObjectPattern: 'ObjectPattern',\n Program: 'Program',\n Property: 'Property',\n RestElement: 'RestElement',\n ReturnStatement: 'ReturnStatement',\n SequenceExpression: 'SequenceExpression',\n SpreadElement: 'SpreadElement',\n Super: 'Super',\n SwitchStatement: 'SwitchStatement',\n SwitchCase: 'SwitchCase',\n TaggedTemplateExpression: 'TaggedTemplateExpression',\n TemplateElement: 'TemplateElement',\n TemplateLiteral: 'TemplateLiteral',\n ThisExpression: 'ThisExpression',\n ThrowStatement: 'ThrowStatement',\n TryStatement: 'TryStatement',\n UnaryExpression: 'UnaryExpression',\n UpdateExpression: 'UpdateExpression',\n VariableDeclaration: 'VariableDeclaration',\n VariableDeclarator: 'VariableDeclarator',\n WhileStatement: 'WhileStatement',\n WithStatement: 'WithStatement',\n YieldExpression: 'YieldExpression'\n };\n\n VisitorKeys = {\n AssignmentExpression: ['left', 'right'],\n AssignmentPattern: ['left', 'right'],\n ArrayExpression: ['elements'],\n ArrayPattern: ['elements'],\n ArrowFunctionExpression: ['params', 'body'],\n AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.\n BlockStatement: ['body'],\n BinaryExpression: ['left', 'right'],\n BreakStatement: ['label'],\n CallExpression: ['callee', 'arguments'],\n CatchClause: ['param', 'body'],\n ChainExpression: ['expression'],\n ClassBody: ['body'],\n ClassDeclaration: ['id', 'superClass', 'body'],\n ClassExpression: ['id', 'superClass', 'body'],\n ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.\n ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n ConditionalExpression: ['test', 'consequent', 'alternate'],\n ContinueStatement: ['label'],\n DebuggerStatement: [],\n DirectiveStatement: [],\n DoWhileStatement: ['body', 'test'],\n EmptyStatement: [],\n ExportAllDeclaration: ['source'],\n ExportDefaultDeclaration: ['declaration'],\n ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],\n ExportSpecifier: ['exported', 'local'],\n ExpressionStatement: ['expression'],\n ForStatement: ['init', 'test', 'update', 'body'],\n ForInStatement: ['left', 'right', 'body'],\n ForOfStatement: ['left', 'right', 'body'],\n FunctionDeclaration: ['id', 'params', 'body'],\n FunctionExpression: ['id', 'params', 'body'],\n GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n Identifier: [],\n IfStatement: ['test', 'consequent', 'alternate'],\n ImportExpression: ['source'],\n ImportDeclaration: ['specifiers', 'source'],\n ImportDefaultSpecifier: ['local'],\n ImportNamespaceSpecifier: ['local'],\n ImportSpecifier: ['imported', 'local'],\n Literal: [],\n LabeledStatement: ['label', 'body'],\n LogicalExpression: ['left', 'right'],\n MemberExpression: ['object', 'property'],\n MetaProperty: ['meta', 'property'],\n MethodDefinition: ['key', 'value'],\n ModuleSpecifier: [],\n NewExpression: ['callee', 'arguments'],\n ObjectExpression: ['properties'],\n ObjectPattern: ['properties'],\n Program: ['body'],\n Property: ['key', 'value'],\n RestElement: [ 'argument' ],\n ReturnStatement: ['argument'],\n SequenceExpression: ['expressions'],\n SpreadElement: ['argument'],\n Super: [],\n SwitchStatement: ['discriminant', 'cases'],\n SwitchCase: ['test', 'consequent'],\n TaggedTemplateExpression: ['tag', 'quasi'],\n TemplateElement: [],\n TemplateLiteral: ['quasis', 'expressions'],\n ThisExpression: [],\n ThrowStatement: ['argument'],\n TryStatement: ['block', 'handler', 'finalizer'],\n UnaryExpression: ['argument'],\n UpdateExpression: ['argument'],\n VariableDeclaration: ['declarations'],\n VariableDeclarator: ['id', 'init'],\n WhileStatement: ['test', 'body'],\n WithStatement: ['object', 'body'],\n YieldExpression: ['argument']\n };\n\n // unique id\n BREAK = {};\n SKIP = {};\n REMOVE = {};\n\n VisitorOption = {\n Break: BREAK,\n Skip: SKIP,\n Remove: REMOVE\n };\n\n function Reference(parent, key) {\n this.parent = parent;\n this.key = key;\n }\n\n Reference.prototype.replace = function replace(node) {\n this.parent[this.key] = node;\n };\n\n Reference.prototype.remove = function remove() {\n if (Array.isArray(this.parent)) {\n this.parent.splice(this.key, 1);\n return true;\n } else {\n this.replace(null);\n return false;\n }\n };\n\n function Element(node, path, wrap, ref) {\n this.node = node;\n this.path = path;\n this.wrap = wrap;\n this.ref = ref;\n }\n\n function Controller() { }\n\n // API:\n // return property path array from root to current node\n Controller.prototype.path = function path() {\n var i, iz, j, jz, result, element;\n\n function addToPath(result, path) {\n if (Array.isArray(path)) {\n for (j = 0, jz = path.length; j < jz; ++j) {\n result.push(path[j]);\n }\n } else {\n result.push(path);\n }\n }\n\n // root node\n if (!this.__current.path) {\n return null;\n }\n\n // first node is sentinel, second node is root element\n result = [];\n for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {\n element = this.__leavelist[i];\n addToPath(result, element.path);\n }\n addToPath(result, this.__current.path);\n return result;\n };\n\n // API:\n // return type of current node\n Controller.prototype.type = function () {\n var node = this.current();\n return node.type || this.__current.wrap;\n };\n\n // API:\n // return array of parent elements\n Controller.prototype.parents = function parents() {\n var i, iz, result;\n\n // first node is sentinel\n result = [];\n for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {\n result.push(this.__leavelist[i].node);\n }\n\n return result;\n };\n\n // API:\n // return current node\n Controller.prototype.current = function current() {\n return this.__current.node;\n };\n\n Controller.prototype.__execute = function __execute(callback, element) {\n var previous, result;\n\n result = undefined;\n\n previous = this.__current;\n this.__current = element;\n this.__state = null;\n if (callback) {\n result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);\n }\n this.__current = previous;\n\n return result;\n };\n\n // API:\n // notify control skip / break\n Controller.prototype.notify = function notify(flag) {\n this.__state = flag;\n };\n\n // API:\n // skip child nodes of current node\n Controller.prototype.skip = function () {\n this.notify(SKIP);\n };\n\n // API:\n // break traversals\n Controller.prototype['break'] = function () {\n this.notify(BREAK);\n };\n\n // API:\n // remove node\n Controller.prototype.remove = function () {\n this.notify(REMOVE);\n };\n\n Controller.prototype.__initialize = function(root, visitor) {\n this.visitor = visitor;\n this.root = root;\n this.__worklist = [];\n this.__leavelist = [];\n this.__current = null;\n this.__state = null;\n this.__fallback = null;\n if (visitor.fallback === 'iteration') {\n this.__fallback = Object.keys;\n } else if (typeof visitor.fallback === 'function') {\n this.__fallback = visitor.fallback;\n }\n\n this.__keys = VisitorKeys;\n if (visitor.keys) {\n this.__keys = Object.assign(Object.create(this.__keys), visitor.keys);\n }\n };\n\n function isNode(node) {\n if (node == null) {\n return false;\n }\n return typeof node === 'object' && typeof node.type === 'string';\n }\n\n function isProperty(nodeType, key) {\n return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;\n }\n \n function candidateExistsInLeaveList(leavelist, candidate) {\n for (var i = leavelist.length - 1; i >= 0; --i) {\n if (leavelist[i].node === candidate) {\n return true;\n }\n }\n return false;\n }\n\n Controller.prototype.traverse = function traverse(root, visitor) {\n var worklist,\n leavelist,\n element,\n node,\n nodeType,\n ret,\n key,\n current,\n current2,\n candidates,\n candidate,\n sentinel;\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n worklist.push(new Element(root, null, null, null));\n leavelist.push(new Element(null, null, null, null));\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n ret = this.__execute(visitor.leave, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n continue;\n }\n\n if (element.node) {\n\n ret = this.__execute(visitor.enter, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || ret === SKIP) {\n continue;\n }\n\n node = element.node;\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n\n if (candidateExistsInLeaveList(leavelist, candidate[current2])) {\n continue;\n }\n\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', null);\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, null);\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n if (candidateExistsInLeaveList(leavelist, candidate)) {\n continue;\n }\n\n worklist.push(new Element(candidate, key, null, null));\n }\n }\n }\n }\n };\n\n Controller.prototype.replace = function replace(root, visitor) {\n var worklist,\n leavelist,\n node,\n nodeType,\n target,\n element,\n current,\n current2,\n candidates,\n candidate,\n sentinel,\n outer,\n key;\n\n function removeElem(element) {\n var i,\n key,\n nextElem,\n parent;\n\n if (element.ref.remove()) {\n // When the reference is an element of an array.\n key = element.ref.key;\n parent = element.ref.parent;\n\n // If removed from array, then decrease following items' keys.\n i = worklist.length;\n while (i--) {\n nextElem = worklist[i];\n if (nextElem.ref && nextElem.ref.parent === parent) {\n if (nextElem.ref.key < key) {\n break;\n }\n --nextElem.ref.key;\n }\n }\n }\n }\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n outer = {\n root: root\n };\n element = new Element(root, null, null, new Reference(outer, 'root'));\n worklist.push(element);\n leavelist.push(element);\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n target = this.__execute(visitor.leave, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n continue;\n }\n\n target = this.__execute(visitor.enter, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n element.node = target;\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n element.node = null;\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n\n // node may be null\n node = element.node;\n if (!node) {\n continue;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || target === SKIP) {\n continue;\n }\n\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n worklist.push(new Element(candidate, key, null, new Reference(node, key)));\n }\n }\n }\n\n return outer.root;\n };\n\n function traverse(root, visitor) {\n var controller = new Controller();\n return controller.traverse(root, visitor);\n }\n\n function replace(root, visitor) {\n var controller = new Controller();\n return controller.replace(root, visitor);\n }\n\n function extendCommentRange(comment, tokens) {\n var target;\n\n target = upperBound(tokens, function search(token) {\n return token.range[0] > comment.range[0];\n });\n\n comment.extendedRange = [comment.range[0], comment.range[1]];\n\n if (target !== tokens.length) {\n comment.extendedRange[1] = tokens[target].range[0];\n }\n\n target -= 1;\n if (target >= 0) {\n comment.extendedRange[0] = tokens[target].range[1];\n }\n\n return comment;\n }\n\n function attachComments(tree, providedComments, tokens) {\n // At first, we should calculate extended comment ranges.\n var comments = [], comment, len, i, cursor;\n\n if (!tree.range) {\n throw new Error('attachComments needs range information');\n }\n\n // tokens array is empty, we attach comments to tree as 'leadingComments'\n if (!tokens.length) {\n if (providedComments.length) {\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comment = deepCopy(providedComments[i]);\n comment.extendedRange = [0, tree.range[0]];\n comments.push(comment);\n }\n tree.leadingComments = comments;\n }\n return tree;\n }\n\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));\n }\n\n // This is based on John Freeman's implementation.\n cursor = 0;\n traverse(tree, {\n enter: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (comment.extendedRange[1] > node.range[0]) {\n break;\n }\n\n if (comment.extendedRange[1] === node.range[0]) {\n if (!node.leadingComments) {\n node.leadingComments = [];\n }\n node.leadingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n cursor = 0;\n traverse(tree, {\n leave: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (node.range[1] < comment.extendedRange[0]) {\n break;\n }\n\n if (node.range[1] === comment.extendedRange[0]) {\n if (!node.trailingComments) {\n node.trailingComments = [];\n }\n node.trailingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n return tree;\n }\n\n exports.Syntax = Syntax;\n exports.traverse = traverse;\n exports.replace = replace;\n exports.attachComments = attachComments;\n exports.VisitorKeys = VisitorKeys;\n exports.VisitorOption = VisitorOption;\n exports.Controller = Controller;\n exports.cloneEnvironment = function () { return clone({}); };\n\n return exports;\n}(exports));\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n(function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n }\n})(this, function() {\n \"use strict\";\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n }\n\n peg$subclass(peg$SyntaxError, Error);\n\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n },\n\n \"class\": function(expectation) {\n var escapedParts = \"\",\n i;\n\n for (i = 0; i < expectation.parts.length; i++) {\n escapedParts += expectation.parts[i] instanceof Array\n ? classEscape(expectation.parts[i][0]) + \"-\" + classEscape(expectation.parts[i][1])\n : classEscape(expectation.parts[i]);\n }\n\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n },\n\n any: function(expectation) {\n return \"any character\";\n },\n\n end: function(expectation) {\n return \"end of input\";\n },\n\n other: function(expectation) {\n return expectation.description;\n }\n };\n\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function classEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\]/g, '\\\\]')\n .replace(/\\^/g, '\\\\^')\n .replace(/-/g, '\\\\-')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n\n function describeExpected(expected) {\n var descriptions = new Array(expected.length),\n i, j;\n\n for (i = 0; i < expected.length; i++) {\n descriptions[i] = describeExpectation(expected[i]);\n }\n\n descriptions.sort();\n\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n\n function describeFound(found) {\n return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n }\n\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n\n var peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = function(ss) {\n return ss.length === 1 ? ss[0] : { type: 'matches', selectors: ss };\n },\n peg$c1 = function() { return void 0; },\n peg$c2 = \" \",\n peg$c3 = peg$literalExpectation(\" \", false),\n peg$c4 = /^[^ [\\],():#!=><~+.]/,\n peg$c5 = peg$classExpectation([\" \", \"[\", \"]\", \",\", \"(\", \")\", \":\", \"#\", \"!\", \"=\", \">\", \"<\", \"~\", \"+\", \".\"], true, false),\n peg$c6 = function(i) { return i.join(''); },\n peg$c7 = \">\",\n peg$c8 = peg$literalExpectation(\">\", false),\n peg$c9 = function() { return 'child'; },\n peg$c10 = \"~\",\n peg$c11 = peg$literalExpectation(\"~\", false),\n peg$c12 = function() { return 'sibling'; },\n peg$c13 = \"+\",\n peg$c14 = peg$literalExpectation(\"+\", false),\n peg$c15 = function() { return 'adjacent'; },\n peg$c16 = function() { return 'descendant'; },\n peg$c17 = \",\",\n peg$c18 = peg$literalExpectation(\",\", false),\n peg$c19 = function(s, ss) {\n return [s].concat(ss.map(function (s) { return s[3]; }));\n },\n peg$c20 = function(a, ops) {\n return ops.reduce(function (memo, rhs) {\n return { type: rhs[0], left: memo, right: rhs[1] };\n }, a);\n },\n peg$c21 = \"!\",\n peg$c22 = peg$literalExpectation(\"!\", false),\n peg$c23 = function(subject, as) {\n const b = as.length === 1 ? as[0] : { type: 'compound', selectors: as };\n if(subject) b.subject = true;\n return b;\n },\n peg$c24 = \"*\",\n peg$c25 = peg$literalExpectation(\"*\", false),\n peg$c26 = function(a) { return { type: 'wildcard', value: a }; },\n peg$c27 = \"#\",\n peg$c28 = peg$literalExpectation(\"#\", false),\n peg$c29 = function(i) { return { type: 'identifier', value: i }; },\n peg$c30 = \"[\",\n peg$c31 = peg$literalExpectation(\"[\", false),\n peg$c32 = \"]\",\n peg$c33 = peg$literalExpectation(\"]\", false),\n peg$c34 = function(v) { return v; },\n peg$c35 = /^[>\", \"<\", \"!\"], false, false),\n peg$c37 = \"=\",\n peg$c38 = peg$literalExpectation(\"=\", false),\n peg$c39 = function(a) { return (a || '') + '='; },\n peg$c40 = /^[><]/,\n peg$c41 = peg$classExpectation([\">\", \"<\"], false, false),\n peg$c42 = \".\",\n peg$c43 = peg$literalExpectation(\".\", false),\n peg$c44 = function(a, as) {\n return [].concat.apply([a], as).join('');\n },\n peg$c45 = function(name, op, value) {\n return { type: 'attribute', name: name, operator: op, value: value };\n },\n peg$c46 = function(name) { return { type: 'attribute', name: name }; },\n peg$c47 = \"\\\"\",\n peg$c48 = peg$literalExpectation(\"\\\"\", false),\n peg$c49 = /^[^\\\\\"]/,\n peg$c50 = peg$classExpectation([\"\\\\\", \"\\\"\"], true, false),\n peg$c51 = \"\\\\\",\n peg$c52 = peg$literalExpectation(\"\\\\\", false),\n peg$c53 = peg$anyExpectation(),\n peg$c54 = function(a, b) { return a + b; },\n peg$c55 = function(d) {\n return { type: 'literal', value: strUnescape(d.join('')) };\n },\n peg$c56 = \"'\",\n peg$c57 = peg$literalExpectation(\"'\", false),\n peg$c58 = /^[^\\\\']/,\n peg$c59 = peg$classExpectation([\"\\\\\", \"'\"], true, false),\n peg$c60 = /^[0-9]/,\n peg$c61 = peg$classExpectation([[\"0\", \"9\"]], false, false),\n peg$c62 = function(a, b) {\n // Can use `a.flat().join('')` once supported\n const leadingDecimals = a ? [].concat.apply([], a).join('') : '';\n return { type: 'literal', value: parseFloat(leadingDecimals + b.join('')) };\n },\n peg$c63 = function(i) { return { type: 'literal', value: i }; },\n peg$c64 = \"type(\",\n peg$c65 = peg$literalExpectation(\"type(\", false),\n peg$c66 = /^[^ )]/,\n peg$c67 = peg$classExpectation([\" \", \")\"], true, false),\n peg$c68 = \")\",\n peg$c69 = peg$literalExpectation(\")\", false),\n peg$c70 = function(t) { return { type: 'type', value: t.join('') }; },\n peg$c71 = /^[imsu]/,\n peg$c72 = peg$classExpectation([\"i\", \"m\", \"s\", \"u\"], false, false),\n peg$c73 = \"/\",\n peg$c74 = peg$literalExpectation(\"/\", false),\n peg$c75 = /^[^\\/]/,\n peg$c76 = peg$classExpectation([\"/\"], true, false),\n peg$c77 = function(d, flgs) { return {\n type: 'regexp', value: new RegExp(d.join(''), flgs ? flgs.join('') : '') };\n },\n peg$c78 = function(i, is) {\n return { type: 'field', name: is.reduce(function(memo, p){ return memo + p[0] + p[1]; }, i)};\n },\n peg$c79 = \":not(\",\n peg$c80 = peg$literalExpectation(\":not(\", false),\n peg$c81 = function(ss) { return { type: 'not', selectors: ss }; },\n peg$c82 = \":matches(\",\n peg$c83 = peg$literalExpectation(\":matches(\", false),\n peg$c84 = function(ss) { return { type: 'matches', selectors: ss }; },\n peg$c85 = \":has(\",\n peg$c86 = peg$literalExpectation(\":has(\", false),\n peg$c87 = function(ss) { return { type: 'has', selectors: ss }; },\n peg$c88 = \":first-child\",\n peg$c89 = peg$literalExpectation(\":first-child\", false),\n peg$c90 = function() { return nth(1); },\n peg$c91 = \":last-child\",\n peg$c92 = peg$literalExpectation(\":last-child\", false),\n peg$c93 = function() { return nthLast(1); },\n peg$c94 = \":nth-child(\",\n peg$c95 = peg$literalExpectation(\":nth-child(\", false),\n peg$c96 = function(n) { return nth(parseInt(n.join(''), 10)); },\n peg$c97 = \":nth-last-child(\",\n peg$c98 = peg$literalExpectation(\":nth-last-child(\", false),\n peg$c99 = function(n) { return nthLast(parseInt(n.join(''), 10)); },\n peg$c100 = \":\",\n peg$c101 = peg$literalExpectation(\":\", false),\n peg$c102 = \"statement\",\n peg$c103 = peg$literalExpectation(\"statement\", true),\n peg$c104 = \"expression\",\n peg$c105 = peg$literalExpectation(\"expression\", true),\n peg$c106 = \"declaration\",\n peg$c107 = peg$literalExpectation(\"declaration\", true),\n peg$c108 = \"function\",\n peg$c109 = peg$literalExpectation(\"function\", true),\n peg$c110 = \"pattern\",\n peg$c111 = peg$literalExpectation(\"pattern\", true),\n peg$c112 = function(c) {\n return { type: 'class', name: c };\n },\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1 }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$resultsCache = {},\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location\n );\n }\n\n function error(message, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos], p;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsestart() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 0,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselectors();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1();\n }\n s0 = s1;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 1,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = [];\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseidentifierName() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 2,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c4.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c4.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c6(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsebinaryOp() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 3,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s2 = peg$c7;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c9();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 126) {\n s2 = peg$c10;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c12();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 43) {\n s2 = peg$c13;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c14); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c15();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseselectors() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n var key = peg$currPos * 30 + 4,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseselector();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c17;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseselector();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c17;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseselector();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c19(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 5,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parsesequence();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parsebinaryOp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesequence();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parsebinaryOp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesequence();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsesequence() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 6,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseatom();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseatom();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseatom() {\n var s0;\n\n var key = peg$currPos * 30 + 7,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$parsewildcard();\n if (s0 === peg$FAILED) {\n s0 = peg$parseidentifier();\n if (s0 === peg$FAILED) {\n s0 = peg$parseattr();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefield();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenegation();\n if (s0 === peg$FAILED) {\n s0 = peg$parsematches();\n if (s0 === peg$FAILED) {\n s0 = peg$parsehas();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefirstChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parselastChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenthChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenthLastChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parseclass();\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsewildcard() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 8,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 42) {\n s1 = peg$c24;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseidentifier() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 9,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c27;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c28); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseidentifierName();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c29(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattr() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 10,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c30;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrValue();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s5 = peg$c32;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrOps() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 11,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (peg$c35.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c37;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n if (peg$c40.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrEqOps() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 12,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c37;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrName() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 13,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseidentifierName();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c42;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parseidentifierName();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c42;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parseidentifierName();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c44(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrValue() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 14,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrEqOps();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsetype();\n if (s5 === peg$FAILED) {\n s5 = peg$parseregex();\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c45(s1, s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrOps();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsestring();\n if (s5 === peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 === peg$FAILED) {\n s5 = peg$parsepath();\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c45(s1, s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(s1);\n }\n s0 = s1;\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsestring() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 15,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c47;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c48); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c47;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c48); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c56;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c58.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c58.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c56;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 16,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c42;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c62(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsepath() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 17,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseidentifierName();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c63(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsetype() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 18,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c64) {\n s1 = peg$c64;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c65); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c70(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseflags() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 19,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = [];\n if (peg$c71.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c72); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c71.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c72); }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseregex() {\n var s0, s1, s2, s3, s4;\n\n var key = peg$currPos * 30 + 20,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c73;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c74); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c75.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c76); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c75.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c76); }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s3 = peg$c73;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c74); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseflags();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77(s2, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsefield() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n var key = peg$currPos * 30 + 21,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s1 = peg$c42;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseidentifierName();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s5 = peg$c42;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseidentifierName();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s5 = peg$c42;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseidentifierName();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenegation() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 22,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c79) {\n s1 = peg$c79;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c80); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c81(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsematches() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 23,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 9) === peg$c82) {\n s1 = peg$c82;\n peg$currPos += 9;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c83); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c84(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsehas() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 24,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c85) {\n s1 = peg$c85;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c86); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsefirstChild() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 25,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 12) === peg$c88) {\n s1 = peg$c88;\n peg$currPos += 12;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c89); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c90();\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parselastChild() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 26,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 11) === peg$c91) {\n s1 = peg$c91;\n peg$currPos += 11;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c92); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c93();\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenthChild() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 27,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 11) === peg$c94) {\n s1 = peg$c94;\n peg$currPos += 11;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c95); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c96(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenthLastChild() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 28,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 16) === peg$c97) {\n s1 = peg$c97;\n peg$currPos += 16;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c98); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c99(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseclass() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 29,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 58) {\n s1 = peg$c100;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c101); }\n }\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 9).toLowerCase() === peg$c102) {\n s2 = input.substr(peg$currPos, 9);\n peg$currPos += 9;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c103); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 10).toLowerCase() === peg$c104) {\n s2 = input.substr(peg$currPos, 10);\n peg$currPos += 10;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c105); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 11).toLowerCase() === peg$c106) {\n s2 = input.substr(peg$currPos, 11);\n peg$currPos += 11;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c107); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 8).toLowerCase() === peg$c108) {\n s2 = input.substr(peg$currPos, 8);\n peg$currPos += 8;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 7).toLowerCase() === peg$c110) {\n s2 = input.substr(peg$currPos, 7);\n peg$currPos += 7;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n }\n }\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c112(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n\n function nth(n) { return { type: 'nth-child', index: { type: 'literal', value: n } }; }\n function nthLast(n) { return { type: 'nth-last-child', index: { type: 'literal', value: n } }; }\n function strUnescape(s) {\n return s.replace(/\\\\(.)/g, function(match, ch) {\n switch(ch) {\n case 'b': return '\\b';\n case 'f': return '\\f';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 't': return '\\t';\n case 'v': return '\\v';\n default: return ch;\n }\n });\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n});\n","/* vim: set sw=4 sts=4 : */\nimport estraverse from 'estraverse';\nimport parser from './parser.js';\n\n/**\n* @typedef {\"LEFT_SIDE\"|\"RIGHT_SIDE\"} Side\n*/\n\nconst LEFT_SIDE = 'LEFT_SIDE';\nconst RIGHT_SIDE = 'RIGHT_SIDE';\n\n/**\n * @external AST\n * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html\n */\n\n/**\n * One of the rules of `grammar.pegjs`\n * @typedef {PlainObject} SelectorAST\n * @see grammar.pegjs\n*/\n\n/**\n * The `sequence` production of `grammar.pegjs`\n * @typedef {PlainObject} SelectorSequenceAST\n*/\n\n/**\n * Get the value of a property which may be multiple levels down\n * in the object.\n * @param {?PlainObject} obj\n * @param {string} key\n * @returns {undefined|boolean|string|number|external:AST}\n */\nfunction getPath(obj, key) {\n const keys = key.split('.');\n for (const key of keys) {\n if (obj == null) { return obj; }\n obj = obj[key];\n }\n return obj;\n}\n\n/**\n * Determine whether `node` can be reached by following `path`,\n * starting at `ancestor`.\n * @param {?external:AST} node\n * @param {?external:AST} ancestor\n * @param {string[]} path\n * @returns {boolean}\n */\nfunction inPath(node, ancestor, path) {\n if (path.length === 0) { return node === ancestor; }\n if (ancestor == null) { return false; }\n const field = ancestor[path[0]];\n const remainingPath = path.slice(1);\n if (Array.isArray(field)) {\n for (const component of field) {\n if (inPath(node, component, remainingPath)) { return true; }\n }\n return false;\n } else {\n return inPath(node, field, remainingPath);\n }\n}\n\n/**\n * @callback TraverseOptionFallback\n * @param {external:AST} node The given node.\n * @returns {string[]} An array of visitor keys for the given node.\n */\n/**\n * @typedef {object} ESQueryOptions\n * @property { { [nodeType: string]: string[] } } [visitorKeys] By passing `visitorKeys` mapping, we can extend the properties of the nodes that traverse the node.\n * @property {TraverseOptionFallback} [fallback] By passing `fallback` option, we can control the properties of traversing nodes when encountering unknown nodes.\n */\n\n/**\n * Given a `node` and its ancestors, determine if `node` is matched\n * by `selector`.\n * @param {?external:AST} node\n * @param {?SelectorAST} selector\n * @param {external:AST[]} [ancestry=[]]\n * @param {ESQueryOptions} [options]\n * @throws {Error} Unknowns (operator, class name, selector type, or\n * selector value type)\n * @returns {boolean}\n */\nfunction matches(node, selector, ancestry, options) {\n if (!selector) { return true; }\n if (!node) { return false; }\n if (!ancestry) { ancestry = []; }\n\n switch(selector.type) {\n case 'wildcard':\n return true;\n\n case 'identifier':\n return selector.value.toLowerCase() === node.type.toLowerCase();\n\n case 'field': {\n const path = selector.name.split('.');\n const ancestor = ancestry[path.length - 1];\n return inPath(node, ancestor, path);\n\n }\n case 'matches':\n for (const sel of selector.selectors) {\n if (matches(node, sel, ancestry, options)) { return true; }\n }\n return false;\n\n case 'compound':\n for (const sel of selector.selectors) {\n if (!matches(node, sel, ancestry, options)) { return false; }\n }\n return true;\n\n case 'not':\n for (const sel of selector.selectors) {\n if (matches(node, sel, ancestry, options)) { return false; }\n }\n return true;\n\n case 'has': {\n const collector = [];\n for (const sel of selector.selectors) {\n const a = [];\n estraverse.traverse(node, {\n enter (node, parent) {\n if (parent != null) { a.unshift(parent); }\n if (matches(node, sel, a, options)) {\n collector.push(node);\n }\n },\n leave () { a.shift(); },\n keys: options && options.visitorKeys,\n fallback: options && options.fallback || 'iteration'\n });\n }\n return collector.length !== 0;\n\n }\n case 'child':\n if (matches(node, selector.right, ancestry, options)) {\n return matches(ancestry[0], selector.left, ancestry.slice(1), options);\n }\n return false;\n\n case 'descendant':\n if (matches(node, selector.right, ancestry, options)) {\n for (let i = 0, l = ancestry.length; i < l; ++i) {\n if (matches(ancestry[i], selector.left, ancestry.slice(i + 1), options)) {\n return true;\n }\n }\n }\n return false;\n\n case 'attribute': {\n const p = getPath(node, selector.name);\n switch (selector.operator) {\n case void 0:\n return p != null;\n case '=':\n switch (selector.value.type) {\n case 'regexp': return typeof p === 'string' && selector.value.value.test(p);\n case 'literal': return `${selector.value.value}` === `${p}`;\n case 'type': return selector.value.value === typeof p;\n }\n throw new Error(`Unknown selector value type: ${selector.value.type}`);\n case '!=':\n switch (selector.value.type) {\n case 'regexp': return !selector.value.value.test(p);\n case 'literal': return `${selector.value.value}` !== `${p}`;\n case 'type': return selector.value.value !== typeof p;\n }\n throw new Error(`Unknown selector value type: ${selector.value.type}`);\n case '<=': return p <= selector.value.value;\n case '<': return p < selector.value.value;\n case '>': return p > selector.value.value;\n case '>=': return p >= selector.value.value;\n }\n throw new Error(`Unknown operator: ${selector.operator}`);\n }\n case 'sibling':\n return matches(node, selector.right, ancestry, options) &&\n sibling(node, selector.left, ancestry, LEFT_SIDE, options) ||\n selector.left.subject &&\n matches(node, selector.left, ancestry, options) &&\n sibling(node, selector.right, ancestry, RIGHT_SIDE, options);\n case 'adjacent':\n return matches(node, selector.right, ancestry, options) &&\n adjacent(node, selector.left, ancestry, LEFT_SIDE, options) ||\n selector.right.subject &&\n matches(node, selector.left, ancestry, options) &&\n adjacent(node, selector.right, ancestry, RIGHT_SIDE, options);\n\n case 'nth-child':\n return matches(node, selector.right, ancestry, options) &&\n nthChild(node, ancestry, function () {\n return selector.index.value - 1;\n }, options);\n\n case 'nth-last-child':\n return matches(node, selector.right, ancestry, options) &&\n nthChild(node, ancestry, function (length) {\n return length - selector.index.value;\n }, options);\n\n case 'class':\n switch(selector.name.toLowerCase()){\n case 'statement':\n if(node.type.slice(-9) === 'Statement') return true;\n // fallthrough: interface Declaration <: Statement { }\n case 'declaration':\n return node.type.slice(-11) === 'Declaration';\n case 'pattern':\n if(node.type.slice(-7) === 'Pattern') return true;\n // fallthrough: interface Expression <: Node, Pattern { }\n case 'expression':\n return node.type.slice(-10) === 'Expression' ||\n node.type.slice(-7) === 'Literal' ||\n (\n node.type === 'Identifier' &&\n (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty')\n ) ||\n node.type === 'MetaProperty';\n case 'function':\n return node.type === 'FunctionDeclaration' ||\n node.type === 'FunctionExpression' ||\n node.type === 'ArrowFunctionExpression';\n }\n throw new Error(`Unknown class name: ${selector.name}`);\n }\n\n throw new Error(`Unknown selector type: ${selector.type}`);\n}\n\n/**\n * Get visitor keys of a given node.\n * @param {external:AST} node The AST node to get keys.\n * @param {ESQueryOptions|undefined} options\n * @returns {string[]} Visitor keys of the node.\n */\nfunction getVisitorKeys(node, options) {\n const nodeType = node.type;\n if (options && options.visitorKeys && options.visitorKeys[nodeType]) {\n return options.visitorKeys[nodeType];\n }\n if (estraverse.VisitorKeys[nodeType]) {\n return estraverse.VisitorKeys[nodeType];\n }\n if (options && typeof options.fallback === 'function') {\n return options.fallback(node);\n }\n // 'iteration' fallback\n return Object.keys(node).filter(function (key) {\n return key !== 'type';\n });\n}\n\n\n/**\n * Check whether the given value is an ASTNode or not.\n * @param {any} node The value to check.\n * @returns {boolean} `true` if the value is an ASTNode.\n */\nfunction isNode(node) {\n return node !== null && typeof node === 'object' && typeof node.type === 'string';\n}\n\n/**\n * Determines if the given node has a sibling that matches the\n * given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction sibling(node, selector, ancestry, side, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const startIndex = listProp.indexOf(node);\n if (startIndex < 0) { continue; }\n let lowerBound, upperBound;\n if (side === LEFT_SIDE) {\n lowerBound = 0;\n upperBound = startIndex;\n } else {\n lowerBound = startIndex + 1;\n upperBound = listProp.length;\n }\n for (let k = lowerBound; k < upperBound; ++k) {\n if (isNode(listProp[k]) && matches(listProp[k], selector, ancestry, options)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\n/**\n * Determines if the given node has an adjacent sibling that matches\n * the given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction adjacent(node, selector, ancestry, side, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const idx = listProp.indexOf(node);\n if (idx < 0) { continue; }\n if (side === LEFT_SIDE && idx > 0 && isNode(listProp[idx - 1]) && matches(listProp[idx - 1], selector, ancestry, options)) {\n return true;\n }\n if (side === RIGHT_SIDE && idx < listProp.length - 1 && isNode(listProp[idx + 1]) && matches(listProp[idx + 1], selector, ancestry, options)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n* @callback IndexFunction\n* @param {Integer} len Containing list's length\n* @returns {Integer}\n*/\n\n/**\n * Determines if the given node is the nth child, determined by\n * `idxFn`, which is given the containing list's length.\n * @param {external:AST} node\n * @param {external:AST[]} ancestry\n * @param {IndexFunction} idxFn\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction nthChild(node, ancestry, idxFn, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const idx = listProp.indexOf(node);\n if (idx >= 0 && idx === idxFn(listProp.length)) { return true; }\n }\n }\n return false;\n}\n\n/**\n * For each selector node marked as a subject, find the portion of the\n * selector that the subject must match.\n * @param {SelectorAST} selector\n * @param {SelectorAST} [ancestor] Defaults to `selector`\n * @returns {SelectorAST[]}\n */\nfunction subjects(selector, ancestor) {\n if (selector == null || typeof selector != 'object') { return []; }\n if (ancestor == null) { ancestor = selector; }\n const results = selector.subject ? [ancestor] : [];\n for (const [p, sel] of Object.entries(selector)) {\n results.push(...subjects(sel, p === 'left' ? sel : ancestor));\n }\n return results;\n}\n\n/**\n* @callback TraverseVisitor\n* @param {?external:AST} node\n* @param {?external:AST} parent\n* @param {external:AST[]} ancestry\n*/\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @param {TraverseVisitor} visitor\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction traverse(ast, selector, visitor, options) {\n if (!selector) { return; }\n const ancestry = [];\n const altSubjects = subjects(selector);\n estraverse.traverse(ast, {\n enter (node, parent) {\n if (parent != null) { ancestry.unshift(parent); }\n if (matches(node, selector, ancestry, options)) {\n if (altSubjects.length) {\n for (let i = 0, l = altSubjects.length; i < l; ++i) {\n if (matches(node, altSubjects[i], ancestry, options)) {\n visitor(node, parent, ancestry);\n }\n for (let k = 0, m = ancestry.length; k < m; ++k) {\n const succeedingAncestry = ancestry.slice(k + 1);\n if (matches(ancestry[k], altSubjects[i], succeedingAncestry, options)) {\n visitor(ancestry[k], parent, succeedingAncestry);\n }\n }\n }\n } else {\n visitor(node, parent, ancestry);\n }\n }\n },\n leave () { ancestry.shift(); },\n keys: options && options.visitorKeys,\n fallback: options && options.fallback || 'iteration'\n });\n}\n\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction match(ast, selector, options) {\n const results = [];\n traverse(ast, selector, function (node) {\n results.push(node);\n }, options);\n return results;\n}\n\n/**\n * Parse a selector string and return its AST.\n * @param {string} selector\n * @returns {SelectorAST}\n */\nfunction parse(selector) {\n return parser.parse(selector);\n}\n\n/**\n * Query the code AST using the selector string.\n * @param {external:AST} ast\n * @param {string} selector\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction query(ast, selector, options) {\n return match(ast, parse(selector), options);\n}\n\nquery.parse = parse;\nquery.match = match;\nquery.traverse = traverse;\nquery.matches = matches;\nquery.query = query;\n\nexport default query;\n"],"names":["clone","exports","Syntax","VisitorOption","VisitorKeys","BREAK","SKIP","REMOVE","deepCopy","obj","key","val","ret","hasOwnProperty","Reference","parent","Element","node","path","wrap","ref","Controller","isNode","type","isProperty","nodeType","ObjectExpression","ObjectPattern","candidateExistsInLeaveList","leavelist","candidate","i","length","traverse","root","visitor","extendCommentRange","comment","tokens","target","array","func","diff","len","current","upperBound","token","range","extendedRange","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BlockStatement","BinaryExpression","BreakStatement","CallExpression","CatchClause","ChainExpression","ClassBody","ClassDeclaration","ClassExpression","ComprehensionBlock","ComprehensionExpression","ConditionalExpression","ContinueStatement","DebuggerStatement","DirectiveStatement","DoWhileStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForInStatement","ForOfStatement","FunctionDeclaration","FunctionExpression","GeneratorExpression","Identifier","IfStatement","ImportExpression","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","ModuleSpecifier","NewExpression","Program","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchStatement","SwitchCase","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","Break","Skip","Remove","prototype","replace","this","remove","Array","isArray","splice","iz","j","jz","result","addToPath","push","__current","__leavelist","parents","__execute","callback","element","previous","undefined","__state","call","notify","flag","skip","__initialize","__worklist","__fallback","fallback","Object","keys","__keys","assign","create","worklist","current2","candidates","sentinel","pop","enter","Error","leave","outer","removeElem","nextElem","attachComments","tree","providedComments","cursor","comments","leadingComments","trailingComments","cloneEnvironment","module","peg$SyntaxError","message","expected","found","location","name","captureStackTrace","child","ctor","constructor","peg$subclass","buildMessage","DESCRIBE_EXPECTATION_FNS","literal","expectation","literalEscape","text","escapedParts","parts","classEscape","inverted","any","end","other","description","hex","ch","charCodeAt","toString","toUpperCase","s","descriptions","sort","slice","join","describeExpected","describeFound","SyntaxError","parse","input","options","peg$result","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c3","peg$literalExpectation","peg$c4","peg$c5","peg$classExpectation","peg$c8","peg$c11","peg$c14","peg$c18","peg$c22","peg$c25","peg$c28","peg$c31","peg$c33","peg$c35","peg$c36","peg$c38","peg$c39","a","peg$c40","peg$c41","peg$c43","peg$c45","op","value","operator","peg$c48","peg$c49","peg$c50","peg$c52","peg$c53","peg$c54","b","peg$c55","d","match","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c65","peg$c66","peg$c67","peg$c69","peg$c71","peg$c72","peg$c74","peg$c75","peg$c76","peg$c80","peg$c83","peg$c86","peg$c89","peg$c92","peg$c95","peg$c98","peg$c101","peg$c103","peg$c105","peg$c107","peg$c109","peg$c111","peg$currPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","ignoreCase","peg$computePosDetails","pos","p","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","offset","peg$fail","s0","s1","s2","ss","cached","peg$resultsCache","nextPos","peg$parse_","peg$parseselectors","selectors","peg$c1","peg$parseidentifierName","test","charAt","peg$parsebinaryOp","s3","s4","s5","s6","s7","peg$parseselector","concat","map","peg$parsesequence","reduce","memo","rhs","left","right","subject","as","peg$parseatom","peg$parsewildcard","peg$parseidentifier","peg$parseattrName","peg$parseattrEqOps","substr","peg$parsetype","flgs","peg$parseflags","RegExp","peg$parseregex","peg$parseattrOps","peg$parsestring","leadingDecimals","apply","parseFloat","peg$parsenumber","peg$parsepath","peg$parseattrValue","peg$parseattr","peg$parsefield","peg$parsenegation","peg$parsematches","peg$parsehas","nth","peg$parsefirstChild","nthLast","peg$parselastChild","parseInt","peg$parsenthChild","peg$parsenthLastChild","toLowerCase","peg$parseclass","n","index","factory","matches","selector","ancestry","split","ancestor","inPath","field","remainingPath","sel","collector","estraverse","unshift","shift","visitorKeys","l","getPath","sibling","adjacent","nthChild","getVisitorKeys","filter","_typeof","side","listProp","startIndex","indexOf","lowerBound","k","idx","idxFn","subjects","results","_objectEntries","ast","altSubjects","m","succeedingAncestry","parser","query"],"mappings":"o2EA2BUA,EAAMC,OAGRC,EACAC,EACAC,EACAC,EACAC,EACAC,WAEKC,EAASC,OACAC,EAAKC,EAAfC,EAAM,OACLF,KAAOD,EACJA,EAAII,eAAeH,KACnBC,EAAMF,EAAIC,GAENE,EAAIF,GADW,iBAARC,GAA4B,OAARA,EAChBH,EAASG,GAETA,UAIhBC,WA4LFE,EAAUC,EAAQL,QAClBK,OAASA,OACTL,IAAMA,WAiBNM,EAAQC,EAAMC,EAAMC,EAAMC,QAC1BH,KAAOA,OACPC,KAAOA,OACPC,KAAOA,OACPC,IAAMA,WAGNC,cAuHAC,EAAOL,UACA,MAARA,IAGmB,iBAATA,GAA0C,iBAAdA,EAAKM,eAG1CC,EAAWC,EAAUf,UAClBe,IAAavB,EAAOwB,kBAAoBD,IAAavB,EAAOyB,gBAAkB,eAAiBjB,WAGlGkB,EAA2BC,EAAWC,OACtC,IAAIC,EAAIF,EAAUG,OAAS,EAAGD,GAAK,IAAKA,KACrCF,EAAUE,GAAGd,OAASa,SACf,SAGR,WAwQFG,EAASC,EAAMC,UACH,IAAId,GACHY,SAASC,EAAMC,YAQ5BC,EAAmBC,EAASC,OAC7BC,SAEJA,WA7mBgBC,EAAOC,OACnBC,EAAMC,EAAKZ,EAAGa,MAElBD,EAAMH,EAAMR,OACZD,EAAI,EAEGY,GAGCF,EAAKD,EADTI,EAAUb,GADVW,EAAOC,IAAQ,KAGXA,EAAMD,GAENX,EAAIa,EAAU,EACdD,GAAOD,EAAO,UAGfX,EA6lBEc,CAAWP,GAAQ,SAAgBQ,UACjCA,EAAMC,MAAM,GAAKV,EAAQU,MAAM,MAG1CV,EAAQW,cAAgB,CAACX,EAAQU,MAAM,GAAIV,EAAQU,MAAM,IAErDR,IAAWD,EAAON,SAClBK,EAAQW,cAAc,GAAKV,EAAOC,GAAQQ,MAAM,KAGpDR,GAAU,IACI,IACVF,EAAQW,cAAc,GAAKV,EAAOC,GAAQQ,MAAM,IAG7CV,SAzmBXnC,EAAS,CACL+C,qBAAsB,uBACtBC,kBAAmB,oBACnBC,gBAAiB,kBACjBC,aAAc,eACdC,wBAAyB,0BACzBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,iBAAkB,mBAClBC,eAAgB,iBAChBC,eAAgB,iBAChBC,YAAa,cACbC,gBAAiB,kBACjBC,UAAW,YACXC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,wBAAyB,0BACzBC,sBAAuB,wBACvBC,kBAAmB,oBACnBC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,eAAgB,iBAChBC,qBAAsB,uBACtBC,yBAA0B,2BAC1BC,uBAAwB,yBACxBC,gBAAiB,kBACjBC,oBAAqB,sBACrBC,aAAc,eACdC,eAAgB,iBAChBC,eAAgB,iBAChBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,WAAY,aACZC,YAAa,cACbC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,uBAAwB,yBACxBC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,QAAS,UACTC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,aAAc,eACdC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,cAAe,gBACfvE,iBAAkB,mBAClBC,cAAe,gBACfuE,QAAS,UACTC,SAAU,WACVC,YAAa,cACbC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,cAAe,gBACfC,MAAO,QACPC,gBAAiB,kBACjBC,WAAY,aACZC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,eAAgB,iBAChBC,aAAc,eACdC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,eAAgB,iBAChBC,cAAe,gBACfC,gBAAiB,mBAGrBnH,EAAc,CACV6C,qBAAsB,CAAC,OAAQ,SAC/BC,kBAAmB,CAAC,OAAQ,SAC5BC,gBAAiB,CAAC,YAClBC,aAAc,CAAC,YACfC,wBAAyB,CAAC,SAAU,QACpCC,gBAAiB,CAAC,YAClBC,eAAgB,CAAC,QACjBC,iBAAkB,CAAC,OAAQ,SAC3BC,eAAgB,CAAC,SACjBC,eAAgB,CAAC,SAAU,aAC3BC,YAAa,CAAC,QAAS,QACvBC,gBAAiB,CAAC,cAClBC,UAAW,CAAC,QACZC,iBAAkB,CAAC,KAAM,aAAc,QACvCC,gBAAiB,CAAC,KAAM,aAAc,QACtCC,mBAAoB,CAAC,OAAQ,SAC7BC,wBAAyB,CAAC,SAAU,SAAU,QAC9CC,sBAAuB,CAAC,OAAQ,aAAc,aAC9CC,kBAAmB,CAAC,SACpBC,kBAAmB,GACnBC,mBAAoB,GACpBC,iBAAkB,CAAC,OAAQ,QAC3BC,eAAgB,GAChBC,qBAAsB,CAAC,UACvBC,yBAA0B,CAAC,eAC3BC,uBAAwB,CAAC,cAAe,aAAc,UACtDC,gBAAiB,CAAC,WAAY,SAC9BC,oBAAqB,CAAC,cACtBC,aAAc,CAAC,OAAQ,OAAQ,SAAU,QACzCC,eAAgB,CAAC,OAAQ,QAAS,QAClCC,eAAgB,CAAC,OAAQ,QAAS,QAClCC,oBAAqB,CAAC,KAAM,SAAU,QACtCC,mBAAoB,CAAC,KAAM,SAAU,QACrCC,oBAAqB,CAAC,SAAU,SAAU,QAC1CC,WAAY,GACZC,YAAa,CAAC,OAAQ,aAAc,aACpCC,iBAAkB,CAAC,UACnBC,kBAAmB,CAAC,aAAc,UAClCC,uBAAwB,CAAC,SACzBC,yBAA0B,CAAC,SAC3BC,gBAAiB,CAAC,WAAY,SAC9BC,QAAS,GACTC,iBAAkB,CAAC,QAAS,QAC5BC,kBAAmB,CAAC,OAAQ,SAC5BC,iBAAkB,CAAC,SAAU,YAC7BC,aAAc,CAAC,OAAQ,YACvBC,iBAAkB,CAAC,MAAO,SAC1BC,gBAAiB,GACjBC,cAAe,CAAC,SAAU,aAC1BvE,iBAAkB,CAAC,cACnBC,cAAe,CAAC,cAChBuE,QAAS,CAAC,QACVC,SAAU,CAAC,MAAO,SAClBC,YAAa,CAAE,YACfC,gBAAiB,CAAC,YAClBC,mBAAoB,CAAC,eACrBC,cAAe,CAAC,YAChBC,MAAO,GACPC,gBAAiB,CAAC,eAAgB,SAClCC,WAAY,CAAC,OAAQ,cACrBC,yBAA0B,CAAC,MAAO,SAClCC,gBAAiB,GACjBC,gBAAiB,CAAC,SAAU,eAC5BC,eAAgB,GAChBC,eAAgB,CAAC,YACjBC,aAAc,CAAC,QAAS,UAAW,aACnCC,gBAAiB,CAAC,YAClBC,iBAAkB,CAAC,YACnBC,oBAAqB,CAAC,gBACtBC,mBAAoB,CAAC,KAAM,QAC3BC,eAAgB,CAAC,OAAQ,QACzBC,cAAe,CAAC,SAAU,QAC1BC,gBAAiB,CAAC,aAQtBpH,EAAgB,CACZqH,MALJnH,EAAQ,GAMJoH,KALJnH,EAAO,GAMHoH,OALJnH,EAAS,IAaTO,EAAU6G,UAAUC,QAAU,SAAiB3G,QACtCF,OAAO8G,KAAKnH,KAAOO,GAG5BH,EAAU6G,UAAUG,OAAS,kBACrBC,MAAMC,QAAQH,KAAK9G,cACdA,OAAOkH,OAAOJ,KAAKnH,IAAK,IACtB,SAEFkH,QAAQ,OACN,IAefvG,EAAWsG,UAAUzG,KAAO,eACpBa,EAAGmG,EAAIC,EAAGC,EAAIC,WAETC,EAAUD,EAAQnH,MACnB6G,MAAMC,QAAQ9G,OACTiH,EAAI,EAAGC,EAAKlH,EAAKc,OAAQmG,EAAIC,IAAMD,EACpCE,EAAOE,KAAKrH,EAAKiH,SAGrBE,EAAOE,KAAKrH,OAKf2G,KAAKW,UAAUtH,YACT,SAIXmH,EAAS,GACJtG,EAAI,EAAGmG,EAAKL,KAAKY,YAAYzG,OAAQD,EAAImG,IAAMnG,EAEhDuG,EAAUD,EADAR,KAAKY,YAAY1G,GACDb,aAE9BoH,EAAUD,EAAQR,KAAKW,UAAUtH,MAC1BmH,GAKXhH,EAAWsG,UAAUpG,KAAO,kBACbsG,KAAKjF,UACJrB,MAAQsG,KAAKW,UAAUrH,MAKvCE,EAAWsG,UAAUe,QAAU,eACvB3G,EAAGmG,EAAIG,MAGXA,EAAS,GACJtG,EAAI,EAAGmG,EAAKL,KAAKY,YAAYzG,OAAQD,EAAImG,IAAMnG,EAChDsG,EAAOE,KAAKV,KAAKY,YAAY1G,GAAGd,aAG7BoH,GAKXhH,EAAWsG,UAAU/E,QAAU,kBACpBiF,KAAKW,UAAUvH,MAG1BI,EAAWsG,UAAUgB,UAAY,SAAmBC,EAAUC,OACtDC,EAAUT,SAEdA,OAASU,EAETD,EAAYjB,KAAKW,eACZA,UAAYK,OACZG,QAAU,KACXJ,IACAP,EAASO,EAASK,KAAKpB,KAAMgB,EAAQ5H,KAAM4G,KAAKY,YAAYZ,KAAKY,YAAYzG,OAAS,GAAGf,YAExFuH,UAAYM,EAEVT,GAKXhH,EAAWsG,UAAUuB,OAAS,SAAgBC,QACrCH,QAAUG,GAKnB9H,EAAWsG,UAAUyB,KAAO,gBACnBF,OAAO5I,IAKhBe,EAAWsG,UAAX,MAAgC,gBACvBuB,OAAO7I,IAKhBgB,EAAWsG,UAAUG,OAAS,gBACrBoB,OAAO3I,IAGhBc,EAAWsG,UAAU0B,aAAe,SAASnH,EAAMC,QAC1CA,QAAUA,OACVD,KAAOA,OACPoH,WAAa,QACbb,YAAc,QACdD,UAAY,UACZQ,QAAU,UACVO,WAAa,KACO,cAArBpH,EAAQqH,cACHD,WAAaE,OAAOC,KACU,mBAArBvH,EAAQqH,gBACjBD,WAAapH,EAAQqH,eAGzBG,OAASvJ,EACV+B,EAAQuH,YACHC,OAASF,OAAOG,OAAOH,OAAOI,OAAOhC,KAAK8B,QAASxH,EAAQuH,QAwBxErI,EAAWsG,UAAU1F,SAAW,SAAkBC,EAAMC,OAChD2H,EACAjI,EACAgH,EACA5H,EACAQ,EACAb,EACAF,EACAkC,EACAmH,EACAC,EACAlI,EACAmI,WAECZ,aAAanH,EAAMC,GAExB8H,EAAW,GAGXH,EAAWjC,KAAKyB,WAChBzH,EAAYgG,KAAKY,YAGjBqB,EAASvB,KAAK,IAAIvH,EAAQkB,EAAM,KAAM,KAAM,OAC5CL,EAAU0G,KAAK,IAAIvH,EAAQ,KAAM,KAAM,KAAM,OAEtC8I,EAAS9H,YACZ6G,EAAUiB,EAASI,SAEHD,MAWZpB,EAAQ5H,KAAM,IAEdL,EAAMiH,KAAKc,UAAUxG,EAAQgI,MAAOtB,GAEhChB,KAAKmB,UAAY3I,GAASO,IAAQP,YAItCyJ,EAASvB,KAAK0B,GACdpI,EAAU0G,KAAKM,GAEXhB,KAAKmB,UAAY1I,GAAQM,IAAQN,cAKrCmB,GADAR,EAAO4H,EAAQ5H,MACCM,MAAQsH,EAAQ1H,OAChC6I,EAAanC,KAAK8B,OAAOlI,IACR,KACToG,KAAK0B,iBAGC,IAAIa,MAAM,qBAAuB3I,EAAW,KAFlDuI,EAAanC,KAAK0B,WAAWtI,OAMrC2B,EAAUoH,EAAWhI,QACbY,GAAW,IAAM,MAErBd,EAAYb,EADZP,EAAMsJ,EAAWpH,OAMbmF,MAAMC,QAAQlG,QACdiI,EAAWjI,EAAUE,QACb+H,GAAY,IAAM,MACjBjI,EAAUiI,KAIXnI,EAA2BC,EAAWC,EAAUiI,QAIhDvI,EAAWC,EAAUuI,EAAWpH,IAChCiG,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,WAAY,UACrE,CAAA,IAAIzI,EAAOQ,EAAUiI,aACxBlB,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,KAAM,MAItED,EAASvB,KAAKM,SAEf,GAAIvH,EAAOQ,GAAY,IACtBF,EAA2BC,EAAWC,YAI1CgI,EAASvB,KAAK,IAAIvH,EAAQc,EAAWpB,EAAK,KAAM,iBArExDmI,EAAUhH,EAAUqI,MAEpBtJ,EAAMiH,KAAKc,UAAUxG,EAAQkI,MAAOxB,GAEhChB,KAAKmB,UAAY3I,GAASO,IAAQP,UAwElDgB,EAAWsG,UAAUC,QAAU,SAAiB1F,EAAMC,OAC9C2H,EACAjI,EACAZ,EACAQ,EACAc,EACAsG,EACAjG,EACAmH,EACAC,EACAlI,EACAmI,EACAK,EACA5J,WAEK6J,EAAW1B,OACZ9G,EACArB,EACA8J,EACAzJ,KAEA8H,EAAQzH,IAAI0G,aAEZpH,EAAMmI,EAAQzH,IAAIV,IAClBK,EAAS8H,EAAQzH,IAAIL,OAGrBgB,EAAI+H,EAAS9H,OACND,SACHyI,EAAWV,EAAS/H,IACPX,KAAOoJ,EAASpJ,IAAIL,SAAWA,EAAQ,IAC3CyJ,EAASpJ,IAAIV,IAAMA,UAGtB8J,EAASpJ,IAAIV,cAM1B2I,aAAanH,EAAMC,GAExB8H,EAAW,GAGXH,EAAWjC,KAAKyB,WAChBzH,EAAYgG,KAAKY,YAMjBI,EAAU,IAAI7H,EAAQkB,EAAM,KAAM,KAAM,IAAIpB,EAH5CwJ,EAAQ,CACJpI,KAAMA,GAEmD,SAC7D4H,EAASvB,KAAKM,GACdhH,EAAU0G,KAAKM,GAERiB,EAAS9H,YACZ6G,EAAUiB,EAASI,SAEHD,WA0BDlB,KAJfxG,EAASsF,KAAKc,UAAUxG,EAAQgI,MAAOtB,KAIXtG,IAAWlC,GAASkC,IAAWjC,GAAQiC,IAAWhC,IAE1EsI,EAAQzH,IAAIwG,QAAQrF,GACpBsG,EAAQ5H,KAAOsB,GAGfsF,KAAKmB,UAAYzI,GAAUgC,IAAWhC,IACtCgK,EAAW1B,GACXA,EAAQ5H,KAAO,MAGf4G,KAAKmB,UAAY3I,GAASkC,IAAWlC,SAC9BiK,EAAMpI,SAIjBjB,EAAO4H,EAAQ5H,QAKf6I,EAASvB,KAAK0B,GACdpI,EAAU0G,KAAKM,GAEXhB,KAAKmB,UAAY1I,GAAQiC,IAAWjC,OAIxCmB,EAAWR,EAAKM,MAAQsH,EAAQ1H,OAChC6I,EAAanC,KAAK8B,OAAOlI,IACR,KACToG,KAAK0B,iBAGC,IAAIa,MAAM,qBAAuB3I,EAAW,KAFlDuI,EAAanC,KAAK0B,WAAWtI,OAMrC2B,EAAUoH,EAAWhI,QACbY,GAAW,IAAM,MAErBd,EAAYb,EADZP,EAAMsJ,EAAWpH,OAMbmF,MAAMC,QAAQlG,QACdiI,EAAWjI,EAAUE,QACb+H,GAAY,IAAM,MACjBjI,EAAUiI,OAGXvI,EAAWC,EAAUuI,EAAWpH,IAChCiG,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,WAAY,IAAIjJ,EAAUgB,EAAWiI,QAC9F,CAAA,IAAIzI,EAAOQ,EAAUiI,aACxBlB,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,KAAM,IAAIjJ,EAAUgB,EAAWiI,IAI/FD,EAASvB,KAAKM,SAEXvH,EAAOQ,IACdgI,EAASvB,KAAK,IAAIvH,EAAQc,EAAWpB,EAAK,KAAM,IAAII,EAAUG,EAAMP,cAvFxEmI,EAAUhH,EAAUqI,WAMLnB,KAJfxG,EAASsF,KAAKc,UAAUxG,EAAQkI,MAAOxB,KAIXtG,IAAWlC,GAASkC,IAAWjC,GAAQiC,IAAWhC,GAE1EsI,EAAQzH,IAAIwG,QAAQrF,GAGpBsF,KAAKmB,UAAYzI,GAAUgC,IAAWhC,GACtCgK,EAAW1B,GAGXhB,KAAKmB,UAAY3I,GAASkC,IAAWlC,SAC9BiK,EAAMpI,YA4ElBoI,EAAMpI,MAiIjBjC,EAAQC,OAASA,EACjBD,EAAQgC,SAAWA,EACnBhC,EAAQ2H,iBA3HS1F,EAAMC,UACF,IAAId,GACHuG,QAAQ1F,EAAMC,IA0HpClC,EAAQwK,wBAlGgBC,EAAMC,EAAkBrI,OAEzBD,EAASM,EAAKZ,EAAG6I,EAAhCC,EAAW,OAEVH,EAAK3H,YACA,IAAIqH,MAAM,8CAIf9H,EAAON,OAAQ,IACZ2I,EAAiB3I,OAAQ,KACpBD,EAAI,EAAGY,EAAMgI,EAAiB3I,OAAQD,EAAIY,EAAKZ,GAAK,GACrDM,EAAU7B,EAASmK,EAAiB5I,KAC5BiB,cAAgB,CAAC,EAAG0H,EAAK3H,MAAM,IACvC8H,EAAStC,KAAKlG,GAElBqI,EAAKI,gBAAkBD,SAEpBH,MAGN3I,EAAI,EAAGY,EAAMgI,EAAiB3I,OAAQD,EAAIY,EAAKZ,GAAK,EACrD8I,EAAStC,KAAKnG,EAAmB5B,EAASmK,EAAiB5I,IAAKO,WAIpEsI,EAAS,EACT3I,EAASyI,EAAM,CACXP,MAAO,SAAUlJ,WACToB,EAEGuI,EAASC,EAAS7I,WACrBK,EAAUwI,EAASD,IACP5H,cAAc,GAAK/B,EAAK8B,MAAM,KAItCV,EAAQW,cAAc,KAAO/B,EAAK8B,MAAM,IACnC9B,EAAK6J,kBACN7J,EAAK6J,gBAAkB,IAE3B7J,EAAK6J,gBAAgBvC,KAAKlG,GAC1BwI,EAAS5C,OAAO2C,EAAQ,IAExBA,GAAU,SAKdA,IAAWC,EAAS7I,OACb7B,EAAcqH,MAGrBqD,EAASD,GAAQ5H,cAAc,GAAK/B,EAAK8B,MAAM,GACxC5C,EAAcsH,eAKjCmD,EAAS,EACT3I,EAASyI,EAAM,CACXL,MAAO,SAAUpJ,WACToB,EAEGuI,EAASC,EAAS7I,SACrBK,EAAUwI,EAASD,KACf3J,EAAK8B,MAAM,GAAKV,EAAQW,cAAc,MAItC/B,EAAK8B,MAAM,KAAOV,EAAQW,cAAc,IACnC/B,EAAK8J,mBACN9J,EAAK8J,iBAAmB,IAE5B9J,EAAK8J,iBAAiBxC,KAAKlG,GAC3BwI,EAAS5C,OAAO2C,EAAQ,IAExBA,GAAU,SAKdA,IAAWC,EAAS7I,OACb7B,EAAcqH,MAGrBqD,EAASD,GAAQ5H,cAAc,GAAK/B,EAAK8B,MAAM,GACxC5C,EAAcsH,eAK1BiD,GAOXzK,EAAQG,YAAcA,EACtBH,EAAQE,cAAgBA,EACxBF,EAAQoB,WAAaA,EACrBpB,EAAQ+K,iBAAmB,kBAAqBhL,EAAM,KAE/CC,GACTA,uBCvxByCgL,EAAOhL,UAC9CgL,UAEK,oBASEC,EAAgBC,EAASC,EAAUC,EAAOC,QAC5CH,QAAWA,OACXC,SAAWA,OACXC,MAAWA,OACXC,SAAWA,OACXC,KAAW,cAEuB,mBAA5BnB,MAAMoB,mBACfpB,MAAMoB,kBAAkB3D,KAAMqD,mBAdZO,EAAO1K,YAClB2K,SAAcC,YAAcF,EACrCC,EAAK/D,UAAY5G,EAAO4G,UACxB8D,EAAM9D,UAAY,IAAI+D,EAexBE,CAAaV,EAAiBd,OAE9Bc,EAAgBW,aAAe,SAAST,EAAUC,OAC5CS,EAA2B,CACzBC,QAAS,SAASC,SACT,IAAOC,EAAcD,EAAYE,MAAQ,WAGzC,SAASF,OAEZjK,EADAoK,EAAe,OAGdpK,EAAI,EAAGA,EAAIiK,EAAYI,MAAMpK,OAAQD,IACxCoK,GAAgBH,EAAYI,MAAMrK,aAAcgG,MAC5CsE,EAAYL,EAAYI,MAAMrK,GAAG,IAAM,IAAMsK,EAAYL,EAAYI,MAAMrK,GAAG,IAC9EsK,EAAYL,EAAYI,MAAMrK,UAG7B,KAAOiK,EAAYM,SAAW,IAAM,IAAMH,EAAe,KAGlEI,IAAK,SAASP,SACL,iBAGTQ,IAAK,SAASR,SACL,gBAGTS,MAAO,SAAST,UACPA,EAAYU,uBAIlBC,EAAIC,UACJA,EAAGC,WAAW,GAAGC,SAAS,IAAIC,uBAG9Bd,EAAce,UACdA,EACJpF,QAAQ,MAAO,QACfA,QAAQ,KAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,gBAAyB,SAASgF,SAAa,OAASD,EAAIC,MACpEhF,QAAQ,yBAAyB,SAASgF,SAAa,MAASD,EAAIC,eAGhEP,EAAYW,UACZA,EACJpF,QAAQ,MAAO,QACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,KAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,gBAAyB,SAASgF,SAAa,OAASD,EAAIC,MACpEhF,QAAQ,yBAAyB,SAASgF,SAAa,MAASD,EAAIC,YA6ClE,qBAtCmBxB,OAEpBrJ,EAAGoG,EANoB6D,EAKvBiB,EAAe,IAAIlF,MAAMqD,EAASpJ,YAGjCD,EAAI,EAAGA,EAAIqJ,EAASpJ,OAAQD,IAC/BkL,EAAalL,IATYiK,EASaZ,EAASrJ,GAR1C+J,EAAyBE,EAAYzK,MAAMyK,OAWlDiB,EAAaC,OAETD,EAAajL,OAAS,EAAG,KACtBD,EAAI,EAAGoG,EAAI,EAAGpG,EAAIkL,EAAajL,OAAQD,IACtCkL,EAAalL,EAAI,KAAOkL,EAAalL,KACvCkL,EAAa9E,GAAK8E,EAAalL,GAC/BoG,KAGJ8E,EAAajL,OAASmG,SAGhB8E,EAAajL,aACd,SACIiL,EAAa,QAEjB,SACIA,EAAa,GAAK,OAASA,EAAa,kBAGxCA,EAAaE,MAAM,GAAI,GAAGC,KAAK,MAClC,QACAH,EAAaA,EAAajL,OAAS,IAQxBqL,CAAiBjC,GAAY,iBAJ3BC,UACdA,EAAQ,IAAOY,EAAcZ,GAAS,IAAO,eAGMiC,CAAcjC,GAAS,WA25E9E,CACLkC,YAAarC,EACbsC,eA15EiBC,EAAOC,GACxBA,OAAsB,IAAZA,EAAqBA,EAAU,OA8JrCC,EAwH8BvC,EAAUC,EAAOC,EApR/CsC,EAAa,GAEbC,EAAyB,CAAEC,MAAOC,IAClCC,EAAyBD,GAOzBE,EAASC,GAAuB,KAAK,GACrCC,EAAS,uBACTC,EAASC,GAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAM,GAAM,GAGjHC,EAASJ,GAAuB,KAAK,GAGrCK,EAAUL,GAAuB,KAAK,GAGtCM,EAAUN,GAAuB,KAAK,GAItCO,EAAUP,GAAuB,KAAK,GAUtCQ,EAAUR,GAAuB,KAAK,GAOtCS,EAAUT,GAAuB,KAAK,GAGtCU,EAAUV,GAAuB,KAAK,GAGtCW,EAAUX,GAAuB,KAAK,GAEtCY,EAAUZ,GAAuB,KAAK,GAEtCa,EAAU,SACVC,EAAUX,GAAqB,CAAC,IAAK,IAAK,MAAM,GAAO,GAEvDY,EAAUf,GAAuB,KAAK,GACtCgB,EAAU,SAASC,UAAaA,GAAK,IAAM,KAC3CC,EAAU,QACVC,EAAUhB,GAAqB,CAAC,IAAK,MAAM,GAAO,GAElDiB,EAAUpB,GAAuB,KAAK,GAItCqB,EAAU,SAAShE,EAAMiE,EAAIC,SAChB,CAAElO,KAAM,YAAagK,KAAMA,EAAMmE,SAAUF,EAAIC,MAAOA,IAInEE,EAAUzB,GAAuB,KAAM,GACvC0B,EAAU,UACVC,EAAUxB,GAAqB,CAAC,KAAM,MAAO,GAAM,GAEnDyB,EAAU5B,GAAuB,MAAM,GACvC6B,EA6HK,CAAExO,KAAM,OA5HbyO,EAAU,SAASb,EAAGc,UAAYd,EAAIc,GACtCC,EAAU,SAASC,SACJ,CAAE5O,KAAM,UAAWkO,OAsyEfzC,EAtyEkCmD,EAAE/C,KAAK,IAuyErDJ,EAAEpF,QAAQ,UAAU,SAASwI,EAAOxD,UAClCA,OACA,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,oBACDA,YATDI,GAnyEnBqD,EAAUnC,GAAuB,KAAK,GACtCoC,EAAU,UACVC,EAAUlC,GAAqB,CAAC,KAAM,MAAM,GAAM,GAClDmC,EAAU,SACVC,EAAUpC,GAAqB,CAAC,CAAC,IAAK,OAAO,GAAO,GAQpDqC,EAAUxC,GAAuB,SAAS,GAC1CyC,EAAU,SACVC,EAAUvC,GAAqB,CAAC,IAAK,MAAM,GAAM,GAEjDwC,EAAU3C,GAAuB,KAAK,GAEtC4C,EAAU,UACVC,EAAU1C,GAAqB,CAAC,IAAK,IAAK,IAAK,MAAM,GAAO,GAE5D2C,EAAU9C,GAAuB,KAAK,GACtC+C,EAAU,SACVC,EAAU7C,GAAqB,CAAC,MAAM,GAAM,GAQ5C8C,EAAUjD,GAAuB,SAAS,GAG1CkD,EAAUlD,GAAuB,aAAa,GAG9CmD,EAAUnD,GAAuB,SAAS,GAG1CoD,GAAUpD,GAAuB,gBAAgB,GAGjDqD,GAAUrD,GAAuB,eAAe,GAGhDsD,GAAUtD,GAAuB,eAAe,GAGhDuD,GAAUvD,GAAuB,oBAAoB,GAGrDwD,GAAWxD,GAAuB,KAAK,GAEvCyD,GAAWzD,GAAuB,aAAa,GAE/C0D,GAAW1D,GAAuB,cAAc,GAEhD2D,GAAW3D,GAAuB,eAAe,GAEjD4D,GAAW5D,GAAuB,YAAY,GAE9C6D,GAAW7D,GAAuB,WAAW,GAK7C8D,GAAuB,EAEvBC,GAAuB,CAAC,CAAEC,KAAM,EAAGC,OAAQ,IAC3CC,GAAuB,EACvBC,GAAuB,GACvBC,GAEmB,MAInB,cAAe5E,EAAS,MACpBA,EAAQ6E,aAAa1E,SACnB,IAAIzD,MAAM,mCAAqCsD,EAAQ6E,UAAY,MAG3EvE,EAAwBH,EAAuBH,EAAQ6E,oBA2BhDrE,GAAuBhC,EAAMsG,SAC7B,CAAEjR,KAAM,UAAW2K,KAAMA,EAAMsG,WAAYA,YAG3CnE,GAAqBjC,EAAOE,EAAUkG,SACtC,CAAEjR,KAAM,QAAS6K,MAAOA,EAAOE,SAAUA,EAAUkG,WAAYA,YAe/DC,GAAsBC,OACWC,EAApCC,EAAUX,GAAoBS,MAE9BE,SACKA,MAEPD,EAAID,EAAM,GACFT,GAAoBU,IAC1BA,QAIFC,EAAU,CACRV,MAFFU,EAAUX,GAAoBU,IAEZT,KAChBC,OAAQS,EAAQT,QAGXQ,EAAID,GACmB,KAAxBjF,EAAMZ,WAAW8F,IACnBC,EAAQV,OACRU,EAAQT,OAAS,GAEjBS,EAAQT,SAGVQ,WAGFV,GAAoBS,GAAOE,EACpBA,WAIFC,GAAoBC,EAAUC,OACjCC,EAAkBP,GAAsBK,GACxCG,EAAkBR,GAAsBM,SAErC,CACLjF,MAAO,CACLoF,OAAQJ,EACRZ,KAAQc,EAAgBd,KACxBC,OAAQa,EAAgBb,QAE1B3F,IAAK,CACH0G,OAAQH,EACRb,KAAQe,EAAcf,KACtBC,OAAQc,EAAcd,kBAKnBgB,GAAS/H,GACZ4G,GAAcI,KAEdJ,GAAcI,KAChBA,GAAiBJ,GACjBK,GAAsB,IAGxBA,GAAoB9J,KAAK6C,aAgBlB2C,SACHqF,EAAIC,EAAIC,EAzRQC,EA2RhB7S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,IACLqB,EAAKM,QACM/F,IACT0F,EAAKM,QACMhG,GACJ+F,OACM/F,EAGTwF,EADAC,EA3SqB,KADPE,EA4SFD,GA3SFtR,OAAeuR,EAAG,GAAK,CAAEhS,KAAM,UAAWsS,UAAWN,IAsTnEvB,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKM,QACM/F,IAETyF,OAAKS,GAEPV,EAAKC,GAGPI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,YAGAO,SACHP,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,WAGhB+K,EAAK,GACiC,KAAlC3F,EAAMZ,WAAWmF,KACnBqB,EAnVS,IAoVTrB,OAEAqB,EAAKzF,EACwBuF,GAASlF,IAEjCoF,IAAOzF,GACZwF,EAAG7K,KAAK8K,GAC8B,KAAlC5F,EAAMZ,WAAWmF,KACnBqB,EA5VO,IA6VPrB,OAEAqB,EAAKzF,EACwBuF,GAASlF,WAI1CwF,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAW,SACHX,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAIhBgL,EAAK,GACDlF,EAAO6F,KAAKvG,EAAMwG,OAAOjC,MAC3BsB,EAAK7F,EAAMwG,OAAOjC,IAClBA,OAEAsB,EAAK1F,EACwBuF,GAAS/E,IAEpCkF,IAAO1F,OACF0F,IAAO1F,GACZyF,EAAG9K,KAAK+K,GACJnF,EAAO6F,KAAKvG,EAAMwG,OAAOjC,MAC3BsB,EAAK7F,EAAMwG,OAAOjC,IAClBA,OAEAsB,EAAK1F,EACwBuF,GAAS/E,SAI1CiF,EAAKzF,SAEHyF,IAAOzF,IAETyF,EAAYA,EA1YoBjG,KAAK,KA4YvCgG,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAc,SACHd,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,IACLqB,EAAKM,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EAlaO,IAmaPtB,OAEAsB,EAAK1F,EACwBuF,GAAS7E,IAEpCgF,IAAO1F,GACJ+F,OACM/F,EAGTwF,EADAC,EA1ayB,SAib3BrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKM,QACM/F,GAC6B,MAAlCH,EAAMZ,WAAWmF,KACnBsB,EA5bM,IA6bNtB,OAEAsB,EAAK1F,EACwBuF,GAAS5E,IAEpC+E,IAAO1F,GACJ+F,OACM/F,EAGTwF,EADAC,EApcwB,WA2c1BrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKM,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EAtdI,IAudJtB,OAEAsB,EAAK1F,EACwBuF,GAAS3E,IAEpC8E,IAAO1F,GACJ+F,OACM/F,EAGTwF,EADAC,EA9dsB,YAqexBrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA5fG,IA6fHrB,OAEAqB,EAAKzF,EACwBuF,GAASlF,IAEpCoF,IAAOzF,IACT0F,EAAKK,QACM/F,EAGTwF,EADAC,EAxfsB,cA+fxBrB,GAAcoB,EACdA,EAAKxF,MAMb6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,YAGAQ,SACHR,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EAAIC,EAAIC,EAE5B7T,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,IACLqB,EAAKmB,QACM5G,EAAY,KACrB0F,EAAK,GACLa,EAAKnC,IACLoC,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EA9hBM,IA+hBNrC,OAEAqC,EAAKzG,EACwBuF,GAAS1E,IAEpC4F,IAAOzG,IACT0G,EAAKX,QACM/F,IACT2G,EAAKC,QACM5G,EAETuG,EADAC,EAAK,CAACA,EAAIC,EAAIC,EAAIC,IAWtBvC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,GAEAuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKnC,IACLoC,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAjkBI,IAkkBJrC,OAEAqC,EAAKzG,EACwBuF,GAAS1E,IAEpC4F,IAAOzG,IACT0G,EAAKX,QACM/F,IACT2G,EAAKC,QACM5G,EAETuG,EADAC,EAAK,CAACA,EAAIC,EAAIC,EAAIC,IAWtBvC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,GAGL0F,IAAO1F,EAGTwF,EADAC,EA9lBO,CA8lBMA,GA9lBFoB,OA8lBMnB,EA9lBIoB,KAAI,SAAU1H,UAAYA,EAAE,QAimBjDgF,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAoB,SACHpB,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EA7mBHlF,EA+mBjBzO,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,IACLqB,EAAKsB,QACM/G,EAAY,KACrB0F,EAAK,GACLa,EAAKnC,IACLoC,EAAKF,QACMtG,IACTyG,EAAKM,QACM/G,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAEAuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKnC,IACLoC,EAAKF,QACMtG,IACTyG,EAAKM,QACM/G,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAGL0F,IAAO1F,GA7pBQuB,EA+pBJkE,EACbD,EADAC,EAAiBC,EA9pBJsB,QAAO,SAAUC,EAAMC,SACzB,CAAEvT,KAAMuT,EAAI,GAAIC,KAAMF,EAAMG,MAAOF,EAAI,MAC7C3F,KA+pBL6C,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAuB,SACHvB,EAAIC,EAAIC,EAAIa,EAzqBKc,EAASC,EAClBjF,EA0qBRvP,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAxrBU,IAyrBVrB,OAEAqB,EAAKzF,EACwBuF,GAASzE,IAEpC2E,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,EAAY,IACrB0F,EAAK,IACLa,EAAKgB,QACMvH,OACFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKgB,UAGP7B,EAAK1F,EAEH0F,IAAO1F,GA1sBQqH,EA4sBJ5B,EA3sBLpD,EAAkB,KADAiF,EA4sBT5B,GA3sBFtR,OAAekT,EAAG,GAAK,CAAE3T,KAAM,WAAYsS,UAAWqB,GAChED,IAAShF,EAAEgF,SAAU,GA2sB1B7B,EADAC,EAzsBSpD,IA4sBT+B,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGA+B,SACH/B,EAEA1S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,iBAyCIA,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAIsB,KAAlCoF,EAAMZ,WAAWmF,KACnBqB,EAzxBU,IA0xBVrB,OAEAqB,EAAKzF,EACwBuF,GAASxE,IAEpC0E,IAAOzF,IAETyF,EA/xB+B,CAAE9R,KAAM,WAAYkO,MA+xBtC4D,IAEfD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GApEFgC,MACMxH,IACTwF,iBAsEEA,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EArzBU,IAszBVrB,OAEAqB,EAAKzF,EACwBuF,GAASvE,IAEpCyE,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,IACT0F,EAAKS,QACMnG,EAGTwF,EADAC,EAh0B6B,CAAE9R,KAAM,aAAckO,MAg0BtC6D,IAOftB,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA7GAiC,MACMzH,IACTwF,iBA+GAA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA71BU,IA81BVrB,OAEAqB,EAAKzF,EACwBuF,GAAStE,IAEpCwE,IAAOzF,GACJ+F,OACM/F,IACTuG,iBAoOAf,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,IACLqB,EAAKiC,QACM1H,GACJ+F,OACM/F,IACTuG,iBAhJAf,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAp+BU,IAq+BVrB,OAEAqB,EAAKzF,EACwBuF,GAASzE,IAEpC2E,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EA39BQ,IA49BRtB,OAEAsB,EAAK1F,EACwBuF,GAASlE,IAEpCqE,IAAO1F,GAETyF,EAAKnE,EAAQmE,GACbD,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAmGEmC,MACM3H,GACJ+F,OACM/F,IACTyG,iBAgcJjB,EAAIC,EAAQc,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GA7/CO,UA8/CRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EA//CU,QAggDVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAASzC,IAEpC2C,IAAOzF,KACJ+F,OACM/F,EAAY,IACrBuG,EAAK,GACDxD,EAAQqD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAASvC,IAEpCwD,IAAOxG,OACFwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACJzD,EAAQqD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAASvC,SAI1CuD,EAAKvG,EAEHuG,IAAOvG,IACTwG,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EA9hDE,IA+hDFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,GAETyF,EApiDuB,CAAE9R,KAAM,OAAQkO,MAoiD1B0E,EApiDmC/G,KAAK,KAqiDrDgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAOToE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAjhBMqC,MACM7H,IACTyG,iBA2jBNjB,EAAIC,EAAIC,EAAIa,EAAIC,EAlmDIsB,EAomDpBhV,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAnnDU,IAonDVrB,OAEAqB,EAAKzF,EACwBuF,GAASnC,IAEpCqC,IAAOzF,EAAY,IACrB0F,EAAK,GACDrC,EAAQ+C,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAASjC,IAEpCiD,IAAOvG,OACFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJlD,EAAQ+C,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAASjC,SAI1CoC,EAAK1F,EAEH0F,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EAlpDM,IAmpDNnC,OAEAmC,EAAKvG,EACwBuF,GAASnC,IAEpCmD,IAAOvG,IACTwG,iBA3FFhB,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAK,GACDtC,EAAQkD,KAAKvG,EAAMwG,OAAOjC,MAC5BqB,EAAK5F,EAAMwG,OAAOjC,IAClBA,OAEAqB,EAAKzF,EACwBuF,GAASpC,IAEpCsC,IAAOzF,OACFyF,IAAOzF,GACZwF,EAAG7K,KAAK8K,GACJvC,EAAQkD,KAAKvG,EAAMwG,OAAOjC,MAC5BqB,EAAK5F,EAAMwG,OAAOjC,IAClBA,OAEAqB,EAAKzF,EACwBuF,GAASpC,SAI1CqC,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAuDIuC,MACM/H,IACTwG,EAAK,MAEHA,IAAOxG,GAzpDO8H,EA2pDCtB,EAAjBf,EA3pD+B,CAC/B9R,KAAM,SAAUkO,MAAO,IAAImG,OA0pDdtC,EA1pDuBlG,KAAK,IAAKsI,EAAOA,EAAKtI,KAAK,IAAM,KA2pDrEgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAzoBQyC,IAEHxB,IAAOzG,GAETyF,EAAK9D,EAAQ8D,EAAIc,EAAIE,GACrBjB,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKiC,QACM1H,GACJ+F,OACM/F,IACTuG,iBAhPFf,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACDjD,EAAQiF,KAAKvG,EAAMwG,OAAOjC,MAC5BqB,EAAK5F,EAAMwG,OAAOjC,IAClBA,OAEAqB,EAAKzF,EACwBuF,GAASnE,IAEpCqE,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EAj6BQ,IAk6BRtB,OAEAsB,EAAK1F,EACwBuF,GAASlE,IAEpCqE,IAAO1F,GAETyF,EAAKnE,EAAQmE,GACbD,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACLwB,EAAQ4E,KAAKvG,EAAMwG,OAAOjC,MAC5BoB,EAAK3F,EAAMwG,OAAOjC,IAClBA,OAEAoB,EAAKxF,EACwBuF,GAAS9D,KAI1CoE,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA0LI0C,MACMlI,GACJ+F,OACM/F,IACTyG,iBAgDNjB,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA5qCU,IA6qCVrB,OAEAqB,EAAKzF,EACwBuF,GAASxD,IAEpC0D,IAAOzF,EAAY,KACrB0F,EAAK,GACD1D,EAAQoE,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAStD,IAEpCsE,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EA1rCM,KA2rCNpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAGFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJvE,EAAQoE,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAStD,IAEpCsE,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAjuCI,KAkuCJpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAIP0F,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EAnwCM,IAowCNnC,OAEAmC,EAAKvG,EACwBuF,GAASxD,IAEpCwE,IAAOvG,GAETyF,EAAKnD,EAAQoD,GACbF,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,KAEHwF,IAAOxF,KACTwF,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAjxCQ,IAkxCRrB,OAEAqB,EAAKzF,EACwBuF,GAAS9C,IAEpCgD,IAAOzF,EAAY,KACrB0F,EAAK,GACDhD,EAAQ0D,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS5C,IAEpC4D,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EA1yCI,KA2yCJpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAGFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJ7D,EAAQ0D,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS5C,IAEpC4D,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAj1CE,KAk1CFpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAIP0F,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EAx2CI,IAy2CJnC,OAEAmC,EAAKvG,EACwBuF,GAAS9C,IAEpC8D,IAAOvG,GAETyF,EAAKnD,EAAQoD,GACbF,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAIT6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EA9RQ2C,MACMnI,IACTyG,iBAgSRjB,EAAIC,EAAIC,EAAIa,EAh4CKhF,EAAGc,EAER+F,EAg4CZtV,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,WAGhB+K,EAAKpB,GACLqB,EAAKrB,GACLsB,EAAK,GACD9C,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,IAEjC0D,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJ3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,OAGtC6C,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EA37CQ,IA47CRnC,OAEAmC,EAAKvG,EACwBuF,GAAS7D,IAEpC6E,IAAOvG,EAETyF,EADAC,EAAK,CAACA,EAAIa,IAGVnC,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,EAAY,IACrB0F,EAAK,GACD9C,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,IAEpC0D,IAAOvG,OACFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJ3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,SAI1C6C,EAAK1F,EAEH0F,IAAO1F,GA58CWqC,EA88CHqD,EA58CL0C,GAFK7G,EA88CJkE,GA58CqB,GAAGoB,OAAOwB,MAAM,GAAI9G,GAAG/B,KAAK,IAAM,GA48CpEiG,EA38Ca,CAAE9R,KAAM,UAAWkO,MAAOyG,WAAWF,EAAkB/F,EAAE7C,KAAK,MA48C3EgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EA3XU+C,MACMvI,IACTyG,iBA6XVjB,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAIhBgL,EAAKU,QACMnG,IAETyF,EAz+C+B,CAAE9R,KAAM,UAAWkO,MAy+CrC4D,IAEfD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAlZYgD,IAGL/B,IAAOzG,GAETyF,EAAK9D,EAAQ8D,EAAIc,EAAIE,GACrBjB,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKiC,QACM1H,IAETyF,EAppC8B,CAAE9R,KAAM,YAAagK,KAopCtC8H,IAEfD,EAAKC,IAITI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA1UEiD,MACMzI,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAz2BE,IA02BFrC,OAEAqC,EAAKzG,EACwBuF,GAASrE,IAEpCuF,IAAOzG,EAGTwF,EADAC,EAAac,GAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA3KEkD,MACM1I,IACTwF,iBA0gCFA,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EAAIC,EAjrDPvS,EAmrDjBrB,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA9uDU,IA+uDVrB,OAEAqB,EAAKzF,EACwBuF,GAAS7D,IAEpC+D,IAAOzF,MACT0F,EAAKS,QACMnG,EAAY,KACrBuG,EAAK,GACLC,EAAKpC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqC,EA1vDM,IA2vDNrC,OAEAqC,EAAKzG,EACwBuF,GAAS7D,IAEpC+E,IAAOzG,IACT0G,EAAKP,QACMnG,EAETwG,EADAC,EAAK,CAACA,EAAIC,IAOZtC,GAAcoC,EACdA,EAAKxG,GAEAwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACRA,EAAKpC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqC,EAjxDI,IAkxDJrC,OAEAqC,EAAKzG,EACwBuF,GAAS7D,IAEpC+E,IAAOzG,IACT0G,EAAKP,QACMnG,EAETwG,EADAC,EAAK,CAACA,EAAIC,IAOZtC,GAAcoC,EACdA,EAAKxG,GAGLuG,IAAOvG,GArvDM7L,EAuvDFuR,EAAbD,EAtvDK,CAAE9R,KAAM,QAASgK,KAsvDL4I,EAtvDcS,QAAO,SAASC,EAAMlC,UAAWkC,EAAOlC,EAAE,GAAKA,EAAE,KAAO5Q,IAuvDvFqR,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAjmCImD,MACM3I,IACTwF,iBAmmCJA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GApxDO,UAqxDRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EAtxDU,QAuxDVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAAShC,IAEpCkC,IAAOzF,GACJ+F,OACM/F,IACTuG,EAAKP,QACMhG,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAnzDE,IAozDFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,EAGTwF,EADAC,EA1yDwB,CAAE9R,KAAM,MAAOsS,UA0yD1BM,IAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA/pCMoD,MACM5I,IACTwF,iBAiqCNA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GAj1DO,cAk1DRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EAn1DU,YAo1DVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAAS/B,IAEpCiC,IAAOzF,GACJ+F,OACM/F,IACTuG,EAAKP,QACMhG,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAn3DE,IAo3DFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,EAGTwF,EADAC,EAv2DwB,CAAE9R,KAAM,UAAWsS,UAu2D9BM,IAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA7tCQqD,MACM7I,IACTwF,iBA+tCRA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GA94DO,UA+4DRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EAh5DU,QAi5DVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAAS9B,IAEpCgC,IAAOzF,GACJ+F,OACM/F,IACTuG,EAAKP,QACMhG,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAn7DE,IAo7DFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,EAGTwF,EADAC,EAp6DwB,CAAE9R,KAAM,MAAOsS,UAo6D1BM,IAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA3xCUsD,MACM9I,IACTwF,iBA6xCVA,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAx8DJ,iBA48DRoF,EAAM+H,OAAOxD,GAAa,KAC5BqB,EA78DU,eA88DVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS7B,KAEpC+B,IAAOzF,IAETyF,EAn9D8BsD,GAAI,IAq9DpCvD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAxzCYwD,MACMhJ,IACTwF,iBA0zCZA,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAp+DJ,gBAw+DRoF,EAAM+H,OAAOxD,GAAa,KAC5BqB,EAz+DU,cA0+DVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS5B,KAEpC8B,IAAOzF,IAETyF,EA/+D8BwD,GAAQ,IAi/DxCzD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAr1Cc0D,MACMlJ,IACTwF,iBAu1CdA,EAAIC,EAAQc,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GAngEO,gBAogERvE,EAAM+H,OAAOxD,GAAa,KAC5BqB,EArgEU,cAsgEVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS3B,KAEpC6B,IAAOzF,KACJ+F,OACM/F,EAAY,IACrBuG,EAAK,GACD3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,IAEpC2D,IAAOxG,OACFwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACJ5D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,SAI1C0D,EAAKvG,EAEHuG,IAAOvG,IACTwG,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAtkEE,IAukEFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,GAETyF,EA9iEuBsD,GAAII,SA8iEd5C,EA9iEyB/G,KAAK,IAAK,KA+iEhDgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAOToE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAx6CgB4D,MACMpJ,IACTwF,iBA06ChBA,EAAIC,EAAQc,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GArlEO,qBAslERvE,EAAM+H,OAAOxD,GAAa,KAC5BqB,EAvlEU,mBAwlEVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS1B,KAEpC4B,IAAOzF,KACJ+F,OACM/F,EAAY,IACrBuG,EAAK,GACD3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,IAEpC2D,IAAOxG,OACFwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACJ5D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,SAI1C0D,EAAKvG,EAEHuG,IAAOvG,IACTwG,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EA3pEE,IA4pEFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,GAETyF,EAhoEuBwD,GAAQE,SAgoElB5C,EAhoE6B/G,KAAK,IAAK,KAioEpDgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAOToE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EA3/CkB6D,MACMrJ,IACTwF,iBA6/ClBA,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAzqEW,IA0qEXrB,OAEAqB,EAAKzF,EACwBuF,GAASzB,KAEpC2B,IAAOzF,GA7qEE,cA8qEPH,EAAM+H,OAAOxD,GAAa,GAAGkF,eAC/B5D,EAAK7F,EAAM+H,OAAOxD,GAAa,GAC/BA,IAAe,IAEfsB,EAAK1F,EACwBuF,GAASxB,KAEpC2B,IAAO1F,IAnrEA,eAorELH,EAAM+H,OAAOxD,GAAa,IAAIkF,eAChC5D,EAAK7F,EAAM+H,OAAOxD,GAAa,IAC/BA,IAAe,KAEfsB,EAAK1F,EACwBuF,GAASvB,KAEpC0B,IAAO1F,IAzrEF,gBA0rEHH,EAAM+H,OAAOxD,GAAa,IAAIkF,eAChC5D,EAAK7F,EAAM+H,OAAOxD,GAAa,IAC/BA,IAAe,KAEfsB,EAAK1F,EACwBuF,GAAStB,KAEpCyB,IAAO1F,IA/rEJ,aAgsEDH,EAAM+H,OAAOxD,GAAa,GAAGkF,eAC/B5D,EAAK7F,EAAM+H,OAAOxD,GAAa,GAC/BA,IAAe,IAEfsB,EAAK1F,EACwBuF,GAASrB,KAEpCwB,IAAO1F,IArsEN,YAssECH,EAAM+H,OAAOxD,GAAa,GAAGkF,eAC/B5D,EAAK7F,EAAM+H,OAAOxD,GAAa,GAC/BA,IAAe,IAEfsB,EAAK1F,EACwBuF,GAASpB,SAM5CuB,IAAO1F,EAGTwF,EADAC,EAhtEO,CAAE9R,KAAM,QAASgK,KAgtEV+H,IAGdtB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA3kDoB+D,IAa3B1D,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,YAwPAkC,SACHlC,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EA7+BHlF,EAAG+F,EA++BpBxU,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,IACLqB,EAAKU,QACMnG,EAAY,KACrB0F,EAAK,GACLa,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAhgCQ,IAigCRpC,OAEAoC,EAAKxG,EACwBuF,GAAS7D,IAEpC8E,IAAOxG,IACTyG,EAAKN,QACMnG,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAEAuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAvhCM,IAwhCNpC,OAEAoC,EAAKxG,EACwBuF,GAAS7D,IAEpC8E,IAAOxG,IACTyG,EAAKN,QACMnG,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAGL0F,IAAO1F,GAziCQuB,EA2iCJkE,EA3iCO6B,EA2iCH5B,EACjBF,EADAC,EA1iCS,GAAGoB,OAAOwB,MAAM,CAAC9G,GAAI+F,GAAI9H,KAAK,MA6iCvC4E,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WA4vCEuD,GAAIS,SAAY,CAAE7V,KAAM,YAAa8V,MAAO,CAAE9V,KAAM,UAAWkO,MAAO2H,aACtEP,GAAQO,SAAY,CAAE7V,KAAM,iBAAkB8V,MAAO,CAAE9V,KAAM,UAAWkO,MAAO2H,QAgB1FzJ,EAAaK,OAEMJ,GAAcoE,KAAgBvE,EAAMzL,cAC9C2L,QAEHA,IAAeC,GAAcoE,GAAcvE,EAAMzL,QACnDmR,GA7rEK,CAAE5R,KAAM,QAyEiB6J,EAwnE9BiH,GAxnEwChH,EAynExC+G,GAAiB3E,EAAMzL,OAASyL,EAAMwG,OAAO7B,IAAkB,KAznEhB9G,EA0nE/C8G,GAAiB3E,EAAMzL,OACnB6Q,GAAoBT,GAAgBA,GAAiB,GACrDS,GAAoBT,GAAgBA,IA3nEnC,IAAIlH,EACTA,EAAgBW,aAAaT,EAAUC,GACvCD,EACAC,EACAC,KAhaagM,OC+ErB,SAASC,EAAQtW,EAAMuW,EAAUC,EAAU/J,OAClC8J,SAAmB,MACnBvW,SAAe,SACfwW,IAAYA,EAAW,IAErBD,EAASjW,UACP,kBACM,MAEN,oBACMiW,EAAS/H,MAAMyH,gBAAkBjW,EAAKM,KAAK2V,kBAEjD,YACKhW,EAAOsW,EAASjM,KAAKmM,MAAM,KAC3BC,EAAWF,EAASvW,EAAKc,OAAS,UAnDpD,SAAS4V,EAAO3W,EAAM0W,EAAUzW,MACR,IAAhBA,EAAKc,cAAuBf,IAAS0W,KACzB,MAAZA,SAA2B,MACzBE,EAAQF,EAASzW,EAAK,IACtB4W,EAAgB5W,EAAKiM,MAAM,MAC7BpF,MAAMC,QAAQ6P,GAAQ,WACEA,kCAAO,IACvBD,EAAO3W,UAAiB6W,UAAyB,wCAElD,SAEAF,EAAO3W,EAAM4W,EAAOC,GAyChBF,CAAO3W,EAAM0W,EAAUzW,OAG7B,oBACiBsW,EAAS3D,0CAAW,KAA3BkE,aACHR,EAAQtW,EAAM8W,EAAKN,EAAU/J,UAAmB,wCAEjD,MAEN,qBACiB8J,EAAS3D,0CAAW,KAA3BkE,cACFR,EAAQtW,EAAM8W,EAAKN,EAAU/J,UAAmB,wCAElD,MAEN,gBACiB8J,EAAS3D,0CAAW,KAA3BkE,aACHR,EAAQtW,EAAM8W,EAAKN,EAAU/J,UAAmB,wCAEjD,MAEN,6BACKsK,EAAY,OACAR,EAAS3D,oCAAhBkE,UACD5I,EAAI,GACV8I,EAAWhW,SAAShB,EAAM,CACtBkJ,eAAOlJ,EAAMF,GACK,MAAVA,GAAkBoO,EAAE+I,QAAQnX,GAC5BwW,EAAQtW,EAAM8W,EAAK5I,EAAGzB,IACtBsK,EAAUzP,KAAKtH,IAGvBoJ,iBAAW8E,EAAEgJ,SACbzO,KAAMgE,GAAWA,EAAQ0K,YACzB5O,SAAUkE,GAAWA,EAAQlE,UAAY,qFAGrB,IAArBwO,EAAUhW,6CAGhB,gBACGuV,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IACjC6J,EAAQE,EAAS,GAAID,EAASzC,KAAM0C,EAAStK,MAAM,GAAIO,OAIjE,gBACG6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,OACnC,IAAI3L,EAAI,EAAGsW,EAAIZ,EAASzV,OAAQD,EAAIsW,IAAKtW,KACtCwV,EAAQE,EAAS1V,GAAIyV,EAASzC,KAAM0C,EAAStK,MAAMpL,EAAI,GAAI2L,UACpD,SAIZ,MAEN,gBACKiF,EA9HlB,SAAiBlS,EAAKC,aACLA,EAAIgX,MAAM,qCACC,KAAbhX,aACI,MAAPD,SAAsBA,EAC1BA,EAAMA,EAAIC,yCAEPD,EAwHW6X,CAAQrX,EAAMuW,EAASjM,aACzBiM,EAAS9H,oBACR,SACW,MAALiD,MACN,WACO6E,EAAS/H,MAAMlO,UACd,eAA8B,iBAANoR,GAAkB6E,EAAS/H,MAAMA,MAAMuE,KAAKrB,OACpE,gBAAkB,UAAG6E,EAAS/H,MAAMA,mBAAekD,OACnD,cAAe6E,EAAS/H,MAAMA,UAAiBkD,SAElD,IAAIvI,6CAAsCoN,EAAS/H,MAAMlO,WAC9D,YACOiW,EAAS/H,MAAMlO,UACd,gBAAkBiW,EAAS/H,MAAMA,MAAMuE,KAAKrB,OAC5C,gBAAkB,UAAG6E,EAAS/H,MAAMA,mBAAekD,OACnD,cAAe6E,EAAS/H,MAAMA,UAAiBkD,SAElD,IAAIvI,6CAAsCoN,EAAS/H,MAAMlO,WAC9D,YAAaoR,GAAK6E,EAAS/H,MAAMA,UACjC,WAAYkD,EAAI6E,EAAS/H,MAAMA,UAC/B,WAAYkD,EAAI6E,EAAS/H,MAAMA,UAC/B,YAAakD,GAAK6E,EAAS/H,MAAMA,YAEpC,IAAIrF,kCAA2BoN,EAAS9H,eAE7C,iBACM6H,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C6K,EAAQtX,EAAMuW,EAASzC,KAAM0C,EAnL3B,YAmLgD/J,IAClD8J,EAASzC,KAAKE,SACdsC,EAAQtW,EAAMuW,EAASzC,KAAM0C,EAAU/J,IACvC6K,EAAQtX,EAAMuW,EAASxC,MAAOyC,EArL3B,aAqLiD/J,OACvD,kBACM6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C8K,EAASvX,EAAMuW,EAASzC,KAAM0C,EAzL5B,YAyLiD/J,IACnD8J,EAASxC,MAAMC,SACfsC,EAAQtW,EAAMuW,EAASzC,KAAM0C,EAAU/J,IACvC8K,EAASvX,EAAMuW,EAASxC,MAAOyC,EA3L5B,aA2LkD/J,OAExD,mBACM6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C+K,EAASxX,EAAMwW,GAAU,kBACdD,EAASH,MAAM5H,MAAQ,IAC/B/B,OAEN,wBACM6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C+K,EAASxX,EAAMwW,GAAU,SAAUzV,UACxBA,EAASwV,EAASH,MAAM5H,QAChC/B,OAEN,eACM8J,EAASjM,KAAK2L,mBACZ,eAC0B,cAAxBjW,EAAKM,KAAK4L,OAAO,GAAoB,OAAO,MAE9C,oBAC+B,gBAAzBlM,EAAKM,KAAK4L,OAAO,QACvB,aAC0B,YAAxBlM,EAAKM,KAAK4L,OAAO,GAAkB,OAAO,MAE5C,mBAC+B,eAAzBlM,EAAKM,KAAK4L,OAAO,KACI,YAAxBlM,EAAKM,KAAK4L,OAAO,IAEC,eAAdlM,EAAKM,OACgB,IAApBkW,EAASzV,QAAqC,iBAArByV,EAAS,GAAGlW,OAE5B,iBAAdN,EAAKM,SACR,iBACoB,wBAAdN,EAAKM,MACM,uBAAdN,EAAKM,MACS,4BAAdN,EAAKM,WAEX,IAAI6I,oCAA6BoN,EAASjM,aAGlD,IAAInB,uCAAgCoN,EAASjW,OASvD,SAASmX,EAAezX,EAAMyM,OACpBjM,EAAWR,EAAKM,YAClBmM,GAAWA,EAAQ0K,aAAe1K,EAAQ0K,YAAY3W,GAC/CiM,EAAQ0K,YAAY3W,GAE3BwW,EAAW7X,YAAYqB,GAChBwW,EAAW7X,YAAYqB,GAE9BiM,GAAuC,mBAArBA,EAAQlE,SACnBkE,EAAQlE,SAASvI,GAGrBwI,OAAOC,KAAKzI,GAAM0X,QAAO,SAAUjY,SACvB,SAARA,KAUf,SAASY,EAAOL,UACI,OAATA,GAAiC,WAAhB2X,EAAO3X,IAA0C,iBAAdA,EAAKM,KAapE,SAASgX,EAAQtX,EAAMuW,EAAUC,EAAUoB,EAAMnL,OACtC3M,IAAU0W,YACZ1W,SAAiB,YACT2X,EAAe3X,EAAQ2M,mCACZ,KACdoL,EAAW/X,cACbgH,MAAMC,QAAQ8Q,GAAW,KACnBC,EAAaD,EAASE,QAAQ/X,MAChC8X,EAAa,eACbE,SAAYpW,SA3RV,cA4RFgW,GACAI,EAAa,EACbpW,EAAakW,IAEbE,EAAaF,EAAa,EAC1BlW,EAAaiW,EAAS9W,YAErB,IAAIkX,EAAID,EAAYC,EAAIrW,IAAcqW,KACnC5X,EAAOwX,EAASI,KAAO3B,EAAQuB,EAASI,GAAI1B,EAAUC,EAAU/J,UACzD,yCAKhB,EAaX,SAAS8K,EAASvX,EAAMuW,EAAUC,EAAUoB,EAAMnL,OACvC3M,IAAU0W,YACZ1W,SAAiB,YACT2X,EAAe3X,EAAQ2M,mCACZ,KACdoL,EAAW/X,cACbgH,MAAMC,QAAQ8Q,GAAW,KACnBK,EAAML,EAASE,QAAQ/X,MACzBkY,EAAM,cA/TJ,cAgUFN,GAAsBM,EAAM,GAAK7X,EAAOwX,EAASK,EAAM,KAAO5B,EAAQuB,EAASK,EAAM,GAAI3B,EAAUC,EAAU/J,UACtG,KAhUJ,eAkUHmL,GAAuBM,EAAML,EAAS9W,OAAS,GAAKV,EAAOwX,EAASK,EAAM,KAAQ5B,EAAQuB,EAASK,EAAM,GAAI3B,EAAUC,EAAU/J,UAC1H,yCAIZ,EAkBX,SAAS+K,EAASxX,EAAMwW,EAAU2B,EAAO1L,OAC9B3M,IAAU0W,YACZ1W,SAAiB,YACT2X,EAAe3X,EAAQ2M,mCACZ,KACdoL,EAAW/X,cACbgH,MAAMC,QAAQ8Q,GAAW,KACnBK,EAAML,EAASE,QAAQ/X,MACzBkY,GAAO,GAAKA,IAAQC,EAAMN,EAAS9W,eAAkB,yCAG1D,EAUX,SAASqX,EAAS7B,EAAUG,MACR,MAAZH,GAAuC,UAAnBoB,EAAOpB,SAA+B,GAC9C,MAAZG,IAAoBA,EAAWH,WAC7B8B,EAAU9B,EAASvC,QAAU,CAAC0C,GAAY,sGACzB4B,CAAe/B,kBAAW,iBAArC7E,OAAGoF,OACXuB,EAAQ/Q,WAAR+Q,IAAgBD,EAAStB,EAAW,SAANpF,EAAeoF,EAAMJ,YAEhD2B,EAmBX,SAASrX,EAASuX,EAAKhC,EAAUrV,EAASuL,MACjC8J,OACCC,EAAW,GACXgC,EAAcJ,EAAS7B,GAC7BS,EAAWhW,SAASuX,EAAK,CACrBrP,eAAOlJ,EAAMF,MACK,MAAVA,GAAkB0W,EAASS,QAAQnX,GACnCwW,EAAQtW,EAAMuW,EAAUC,EAAU/J,MAC9B+L,EAAYzX,WACP,IAAID,EAAI,EAAGsW,EAAIoB,EAAYzX,OAAQD,EAAIsW,IAAKtW,EAAG,CAC5CwV,EAAQtW,EAAMwY,EAAY1X,GAAI0V,EAAU/J,IACxCvL,EAAQlB,EAAMF,EAAQ0W,OAErB,IAAIyB,EAAI,EAAGQ,EAAIjC,EAASzV,OAAQkX,EAAIQ,IAAKR,EAAG,KACvCS,EAAqBlC,EAAStK,MAAM+L,EAAI,GAC1C3B,EAAQE,EAASyB,GAAIO,EAAY1X,GAAI4X,EAAoBjM,IACzDvL,EAAQsV,EAASyB,GAAInY,EAAQ4Y,SAKzCxX,EAAQlB,EAAMF,EAAQ0W,IAIlCpN,iBAAWoN,EAASU,SACpBzO,KAAMgE,GAAWA,EAAQ0K,YACzB5O,SAAUkE,GAAWA,EAAQlE,UAAY,eAajD,SAAS4G,EAAMoJ,EAAKhC,EAAU9J,OACpB4L,EAAU,UAChBrX,EAASuX,EAAKhC,GAAU,SAAUvW,GAC9BqY,EAAQ/Q,KAAKtH,KACdyM,GACI4L,EAQX,SAAS9L,EAAMgK,UACJoC,EAAOpM,MAAMgK,GAUxB,SAASqC,EAAML,EAAKhC,EAAU9J,UACnB0C,EAAMoJ,EAAKhM,EAAMgK,GAAW9J,GAGvCmM,EAAMrM,MAAQA,EACdqM,EAAMzJ,MAAQA,EACdyJ,EAAM5X,SAAWA,EACjB4X,EAAMtC,QAAUA,EAChBsC,EAAMA,MAAQA"} \ No newline at end of file diff --git a/node_modules/esquery/dist/esquery.js b/node_modules/esquery/dist/esquery.js new file mode 100644 index 0000000..adc2a5e --- /dev/null +++ b/node_modules/esquery/dist/esquery.js @@ -0,0 +1,4801 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.esquery = factory()); +}(this, (function () { 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); + } + + function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + function _createForOfIteratorHelper(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function () {}; + + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = o[Symbol.iterator](); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var estraverse = createCommonjsModule(function (module, exports) { + /* + Copyright (C) 2012-2013 Yusuke Suzuki + Copyright (C) 2012 Ariya Hidayat + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /*jslint vars:false, bitwise:true*/ + + /*jshint indent:4*/ + + /*global exports:true*/ + (function clone(exports) { + + var Syntax, VisitorOption, VisitorKeys, BREAK, SKIP, REMOVE; + + function deepCopy(obj) { + var ret = {}, + key, + val; + + for (key in obj) { + if (obj.hasOwnProperty(key)) { + val = obj[key]; + + if (typeof val === 'object' && val !== null) { + ret[key] = deepCopy(val); + } else { + ret[key] = val; + } + } + } + + return ret; + } // based on LLVM libc++ upper_bound / lower_bound + // MIT License + + + function upperBound(array, func) { + var diff, len, i, current; + len = array.length; + i = 0; + + while (len) { + diff = len >>> 1; + current = i + diff; + + if (func(array[current])) { + len = diff; + } else { + i = current + 1; + len -= diff + 1; + } + } + + return i; + } + + Syntax = { + AssignmentExpression: 'AssignmentExpression', + AssignmentPattern: 'AssignmentPattern', + ArrayExpression: 'ArrayExpression', + ArrayPattern: 'ArrayPattern', + ArrowFunctionExpression: 'ArrowFunctionExpression', + AwaitExpression: 'AwaitExpression', + // CAUTION: It's deferred to ES7. + BlockStatement: 'BlockStatement', + BinaryExpression: 'BinaryExpression', + BreakStatement: 'BreakStatement', + CallExpression: 'CallExpression', + CatchClause: 'CatchClause', + ChainExpression: 'ChainExpression', + ClassBody: 'ClassBody', + ClassDeclaration: 'ClassDeclaration', + ClassExpression: 'ClassExpression', + ComprehensionBlock: 'ComprehensionBlock', + // CAUTION: It's deferred to ES7. + ComprehensionExpression: 'ComprehensionExpression', + // CAUTION: It's deferred to ES7. + ConditionalExpression: 'ConditionalExpression', + ContinueStatement: 'ContinueStatement', + DebuggerStatement: 'DebuggerStatement', + DirectiveStatement: 'DirectiveStatement', + DoWhileStatement: 'DoWhileStatement', + EmptyStatement: 'EmptyStatement', + ExportAllDeclaration: 'ExportAllDeclaration', + ExportDefaultDeclaration: 'ExportDefaultDeclaration', + ExportNamedDeclaration: 'ExportNamedDeclaration', + ExportSpecifier: 'ExportSpecifier', + ExpressionStatement: 'ExpressionStatement', + ForStatement: 'ForStatement', + ForInStatement: 'ForInStatement', + ForOfStatement: 'ForOfStatement', + FunctionDeclaration: 'FunctionDeclaration', + FunctionExpression: 'FunctionExpression', + GeneratorExpression: 'GeneratorExpression', + // CAUTION: It's deferred to ES7. + Identifier: 'Identifier', + IfStatement: 'IfStatement', + ImportExpression: 'ImportExpression', + ImportDeclaration: 'ImportDeclaration', + ImportDefaultSpecifier: 'ImportDefaultSpecifier', + ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', + ImportSpecifier: 'ImportSpecifier', + Literal: 'Literal', + LabeledStatement: 'LabeledStatement', + LogicalExpression: 'LogicalExpression', + MemberExpression: 'MemberExpression', + MetaProperty: 'MetaProperty', + MethodDefinition: 'MethodDefinition', + ModuleSpecifier: 'ModuleSpecifier', + NewExpression: 'NewExpression', + ObjectExpression: 'ObjectExpression', + ObjectPattern: 'ObjectPattern', + Program: 'Program', + Property: 'Property', + RestElement: 'RestElement', + ReturnStatement: 'ReturnStatement', + SequenceExpression: 'SequenceExpression', + SpreadElement: 'SpreadElement', + Super: 'Super', + SwitchStatement: 'SwitchStatement', + SwitchCase: 'SwitchCase', + TaggedTemplateExpression: 'TaggedTemplateExpression', + TemplateElement: 'TemplateElement', + TemplateLiteral: 'TemplateLiteral', + ThisExpression: 'ThisExpression', + ThrowStatement: 'ThrowStatement', + TryStatement: 'TryStatement', + UnaryExpression: 'UnaryExpression', + UpdateExpression: 'UpdateExpression', + VariableDeclaration: 'VariableDeclaration', + VariableDeclarator: 'VariableDeclarator', + WhileStatement: 'WhileStatement', + WithStatement: 'WithStatement', + YieldExpression: 'YieldExpression' + }; + VisitorKeys = { + AssignmentExpression: ['left', 'right'], + AssignmentPattern: ['left', 'right'], + ArrayExpression: ['elements'], + ArrayPattern: ['elements'], + ArrowFunctionExpression: ['params', 'body'], + AwaitExpression: ['argument'], + // CAUTION: It's deferred to ES7. + BlockStatement: ['body'], + BinaryExpression: ['left', 'right'], + BreakStatement: ['label'], + CallExpression: ['callee', 'arguments'], + CatchClause: ['param', 'body'], + ChainExpression: ['expression'], + ClassBody: ['body'], + ClassDeclaration: ['id', 'superClass', 'body'], + ClassExpression: ['id', 'superClass', 'body'], + ComprehensionBlock: ['left', 'right'], + // CAUTION: It's deferred to ES7. + ComprehensionExpression: ['blocks', 'filter', 'body'], + // CAUTION: It's deferred to ES7. + ConditionalExpression: ['test', 'consequent', 'alternate'], + ContinueStatement: ['label'], + DebuggerStatement: [], + DirectiveStatement: [], + DoWhileStatement: ['body', 'test'], + EmptyStatement: [], + ExportAllDeclaration: ['source'], + ExportDefaultDeclaration: ['declaration'], + ExportNamedDeclaration: ['declaration', 'specifiers', 'source'], + ExportSpecifier: ['exported', 'local'], + ExpressionStatement: ['expression'], + ForStatement: ['init', 'test', 'update', 'body'], + ForInStatement: ['left', 'right', 'body'], + ForOfStatement: ['left', 'right', 'body'], + FunctionDeclaration: ['id', 'params', 'body'], + FunctionExpression: ['id', 'params', 'body'], + GeneratorExpression: ['blocks', 'filter', 'body'], + // CAUTION: It's deferred to ES7. + Identifier: [], + IfStatement: ['test', 'consequent', 'alternate'], + ImportExpression: ['source'], + ImportDeclaration: ['specifiers', 'source'], + ImportDefaultSpecifier: ['local'], + ImportNamespaceSpecifier: ['local'], + ImportSpecifier: ['imported', 'local'], + Literal: [], + LabeledStatement: ['label', 'body'], + LogicalExpression: ['left', 'right'], + MemberExpression: ['object', 'property'], + MetaProperty: ['meta', 'property'], + MethodDefinition: ['key', 'value'], + ModuleSpecifier: [], + NewExpression: ['callee', 'arguments'], + ObjectExpression: ['properties'], + ObjectPattern: ['properties'], + Program: ['body'], + Property: ['key', 'value'], + RestElement: ['argument'], + ReturnStatement: ['argument'], + SequenceExpression: ['expressions'], + SpreadElement: ['argument'], + Super: [], + SwitchStatement: ['discriminant', 'cases'], + SwitchCase: ['test', 'consequent'], + TaggedTemplateExpression: ['tag', 'quasi'], + TemplateElement: [], + TemplateLiteral: ['quasis', 'expressions'], + ThisExpression: [], + ThrowStatement: ['argument'], + TryStatement: ['block', 'handler', 'finalizer'], + UnaryExpression: ['argument'], + UpdateExpression: ['argument'], + VariableDeclaration: ['declarations'], + VariableDeclarator: ['id', 'init'], + WhileStatement: ['test', 'body'], + WithStatement: ['object', 'body'], + YieldExpression: ['argument'] + }; // unique id + + BREAK = {}; + SKIP = {}; + REMOVE = {}; + VisitorOption = { + Break: BREAK, + Skip: SKIP, + Remove: REMOVE + }; + + function Reference(parent, key) { + this.parent = parent; + this.key = key; + } + + Reference.prototype.replace = function replace(node) { + this.parent[this.key] = node; + }; + + Reference.prototype.remove = function remove() { + if (Array.isArray(this.parent)) { + this.parent.splice(this.key, 1); + return true; + } else { + this.replace(null); + return false; + } + }; + + function Element(node, path, wrap, ref) { + this.node = node; + this.path = path; + this.wrap = wrap; + this.ref = ref; + } + + function Controller() {} // API: + // return property path array from root to current node + + + Controller.prototype.path = function path() { + var i, iz, j, jz, result, element; + + function addToPath(result, path) { + if (Array.isArray(path)) { + for (j = 0, jz = path.length; j < jz; ++j) { + result.push(path[j]); + } + } else { + result.push(path); + } + } // root node + + + if (!this.__current.path) { + return null; + } // first node is sentinel, second node is root element + + + result = []; + + for (i = 2, iz = this.__leavelist.length; i < iz; ++i) { + element = this.__leavelist[i]; + addToPath(result, element.path); + } + + addToPath(result, this.__current.path); + return result; + }; // API: + // return type of current node + + + Controller.prototype.type = function () { + var node = this.current(); + return node.type || this.__current.wrap; + }; // API: + // return array of parent elements + + + Controller.prototype.parents = function parents() { + var i, iz, result; // first node is sentinel + + result = []; + + for (i = 1, iz = this.__leavelist.length; i < iz; ++i) { + result.push(this.__leavelist[i].node); + } + + return result; + }; // API: + // return current node + + + Controller.prototype.current = function current() { + return this.__current.node; + }; + + Controller.prototype.__execute = function __execute(callback, element) { + var previous, result; + result = undefined; + previous = this.__current; + this.__current = element; + this.__state = null; + + if (callback) { + result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node); + } + + this.__current = previous; + return result; + }; // API: + // notify control skip / break + + + Controller.prototype.notify = function notify(flag) { + this.__state = flag; + }; // API: + // skip child nodes of current node + + + Controller.prototype.skip = function () { + this.notify(SKIP); + }; // API: + // break traversals + + + Controller.prototype['break'] = function () { + this.notify(BREAK); + }; // API: + // remove node + + + Controller.prototype.remove = function () { + this.notify(REMOVE); + }; + + Controller.prototype.__initialize = function (root, visitor) { + this.visitor = visitor; + this.root = root; + this.__worklist = []; + this.__leavelist = []; + this.__current = null; + this.__state = null; + this.__fallback = null; + + if (visitor.fallback === 'iteration') { + this.__fallback = Object.keys; + } else if (typeof visitor.fallback === 'function') { + this.__fallback = visitor.fallback; + } + + this.__keys = VisitorKeys; + + if (visitor.keys) { + this.__keys = Object.assign(Object.create(this.__keys), visitor.keys); + } + }; + + function isNode(node) { + if (node == null) { + return false; + } + + return typeof node === 'object' && typeof node.type === 'string'; + } + + function isProperty(nodeType, key) { + return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; + } + + function candidateExistsInLeaveList(leavelist, candidate) { + for (var i = leavelist.length - 1; i >= 0; --i) { + if (leavelist[i].node === candidate) { + return true; + } + } + + return false; + } + + Controller.prototype.traverse = function traverse(root, visitor) { + var worklist, leavelist, element, node, nodeType, ret, key, current, current2, candidates, candidate, sentinel; + + this.__initialize(root, visitor); + + sentinel = {}; // reference + + worklist = this.__worklist; + leavelist = this.__leavelist; // initialize + + worklist.push(new Element(root, null, null, null)); + leavelist.push(new Element(null, null, null, null)); + + while (worklist.length) { + element = worklist.pop(); + + if (element === sentinel) { + element = leavelist.pop(); + ret = this.__execute(visitor.leave, element); + + if (this.__state === BREAK || ret === BREAK) { + return; + } + + continue; + } + + if (element.node) { + ret = this.__execute(visitor.enter, element); + + if (this.__state === BREAK || ret === BREAK) { + return; + } + + worklist.push(sentinel); + leavelist.push(element); + + if (this.__state === SKIP || ret === SKIP) { + continue; + } + + node = element.node; + nodeType = node.type || element.wrap; + candidates = this.__keys[nodeType]; + + if (!candidates) { + if (this.__fallback) { + candidates = this.__fallback(node); + } else { + throw new Error('Unknown node type ' + nodeType + '.'); + } + } + + current = candidates.length; + + while ((current -= 1) >= 0) { + key = candidates[current]; + candidate = node[key]; + + if (!candidate) { + continue; + } + + if (Array.isArray(candidate)) { + current2 = candidate.length; + + while ((current2 -= 1) >= 0) { + if (!candidate[current2]) { + continue; + } + + if (candidateExistsInLeaveList(leavelist, candidate[current2])) { + continue; + } + + if (isProperty(nodeType, candidates[current])) { + element = new Element(candidate[current2], [key, current2], 'Property', null); + } else if (isNode(candidate[current2])) { + element = new Element(candidate[current2], [key, current2], null, null); + } else { + continue; + } + + worklist.push(element); + } + } else if (isNode(candidate)) { + if (candidateExistsInLeaveList(leavelist, candidate)) { + continue; + } + + worklist.push(new Element(candidate, key, null, null)); + } + } + } + } + }; + + Controller.prototype.replace = function replace(root, visitor) { + var worklist, leavelist, node, nodeType, target, element, current, current2, candidates, candidate, sentinel, outer, key; + + function removeElem(element) { + var i, key, nextElem, parent; + + if (element.ref.remove()) { + // When the reference is an element of an array. + key = element.ref.key; + parent = element.ref.parent; // If removed from array, then decrease following items' keys. + + i = worklist.length; + + while (i--) { + nextElem = worklist[i]; + + if (nextElem.ref && nextElem.ref.parent === parent) { + if (nextElem.ref.key < key) { + break; + } + + --nextElem.ref.key; + } + } + } + } + + this.__initialize(root, visitor); + + sentinel = {}; // reference + + worklist = this.__worklist; + leavelist = this.__leavelist; // initialize + + outer = { + root: root + }; + element = new Element(root, null, null, new Reference(outer, 'root')); + worklist.push(element); + leavelist.push(element); + + while (worklist.length) { + element = worklist.pop(); + + if (element === sentinel) { + element = leavelist.pop(); + target = this.__execute(visitor.leave, element); // node may be replaced with null, + // so distinguish between undefined and null in this place + + if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { + // replace + element.ref.replace(target); + } + + if (this.__state === REMOVE || target === REMOVE) { + removeElem(element); + } + + if (this.__state === BREAK || target === BREAK) { + return outer.root; + } + + continue; + } + + target = this.__execute(visitor.enter, element); // node may be replaced with null, + // so distinguish between undefined and null in this place + + if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { + // replace + element.ref.replace(target); + element.node = target; + } + + if (this.__state === REMOVE || target === REMOVE) { + removeElem(element); + element.node = null; + } + + if (this.__state === BREAK || target === BREAK) { + return outer.root; + } // node may be null + + + node = element.node; + + if (!node) { + continue; + } + + worklist.push(sentinel); + leavelist.push(element); + + if (this.__state === SKIP || target === SKIP) { + continue; + } + + nodeType = node.type || element.wrap; + candidates = this.__keys[nodeType]; + + if (!candidates) { + if (this.__fallback) { + candidates = this.__fallback(node); + } else { + throw new Error('Unknown node type ' + nodeType + '.'); + } + } + + current = candidates.length; + + while ((current -= 1) >= 0) { + key = candidates[current]; + candidate = node[key]; + + if (!candidate) { + continue; + } + + if (Array.isArray(candidate)) { + current2 = candidate.length; + + while ((current2 -= 1) >= 0) { + if (!candidate[current2]) { + continue; + } + + if (isProperty(nodeType, candidates[current])) { + element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2)); + } else if (isNode(candidate[current2])) { + element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2)); + } else { + continue; + } + + worklist.push(element); + } + } else if (isNode(candidate)) { + worklist.push(new Element(candidate, key, null, new Reference(node, key))); + } + } + } + + return outer.root; + }; + + function traverse(root, visitor) { + var controller = new Controller(); + return controller.traverse(root, visitor); + } + + function replace(root, visitor) { + var controller = new Controller(); + return controller.replace(root, visitor); + } + + function extendCommentRange(comment, tokens) { + var target; + target = upperBound(tokens, function search(token) { + return token.range[0] > comment.range[0]; + }); + comment.extendedRange = [comment.range[0], comment.range[1]]; + + if (target !== tokens.length) { + comment.extendedRange[1] = tokens[target].range[0]; + } + + target -= 1; + + if (target >= 0) { + comment.extendedRange[0] = tokens[target].range[1]; + } + + return comment; + } + + function attachComments(tree, providedComments, tokens) { + // At first, we should calculate extended comment ranges. + var comments = [], + comment, + len, + i, + cursor; + + if (!tree.range) { + throw new Error('attachComments needs range information'); + } // tokens array is empty, we attach comments to tree as 'leadingComments' + + + if (!tokens.length) { + if (providedComments.length) { + for (i = 0, len = providedComments.length; i < len; i += 1) { + comment = deepCopy(providedComments[i]); + comment.extendedRange = [0, tree.range[0]]; + comments.push(comment); + } + + tree.leadingComments = comments; + } + + return tree; + } + + for (i = 0, len = providedComments.length; i < len; i += 1) { + comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens)); + } // This is based on John Freeman's implementation. + + + cursor = 0; + traverse(tree, { + enter: function (node) { + var comment; + + while (cursor < comments.length) { + comment = comments[cursor]; + + if (comment.extendedRange[1] > node.range[0]) { + break; + } + + if (comment.extendedRange[1] === node.range[0]) { + if (!node.leadingComments) { + node.leadingComments = []; + } + + node.leadingComments.push(comment); + comments.splice(cursor, 1); + } else { + cursor += 1; + } + } // already out of owned node + + + if (cursor === comments.length) { + return VisitorOption.Break; + } + + if (comments[cursor].extendedRange[0] > node.range[1]) { + return VisitorOption.Skip; + } + } + }); + cursor = 0; + traverse(tree, { + leave: function (node) { + var comment; + + while (cursor < comments.length) { + comment = comments[cursor]; + + if (node.range[1] < comment.extendedRange[0]) { + break; + } + + if (node.range[1] === comment.extendedRange[0]) { + if (!node.trailingComments) { + node.trailingComments = []; + } + + node.trailingComments.push(comment); + comments.splice(cursor, 1); + } else { + cursor += 1; + } + } // already out of owned node + + + if (cursor === comments.length) { + return VisitorOption.Break; + } + + if (comments[cursor].extendedRange[0] > node.range[1]) { + return VisitorOption.Skip; + } + } + }); + return tree; + } + + exports.Syntax = Syntax; + exports.traverse = traverse; + exports.replace = replace; + exports.attachComments = attachComments; + exports.VisitorKeys = VisitorKeys; + exports.VisitorOption = VisitorOption; + exports.Controller = Controller; + + exports.cloneEnvironment = function () { + return clone({}); + }; + + return exports; + })(exports); + /* vim: set sw=4 ts=4 et tw=80 : */ + + }); + + var parser = createCommonjsModule(function (module) { + /* + * Generated by PEG.js 0.10.0. + * + * http://pegjs.org/ + */ + (function (root, factory) { + if ( module.exports) { + module.exports = factory(); + } + })(commonjsGlobal, function () { + + function peg$subclass(child, parent) { + function ctor() { + this.constructor = child; + } + + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + } + + function peg$SyntaxError(message, expected, found, location) { + this.message = message; + this.expected = expected; + this.found = found; + this.location = location; + this.name = "SyntaxError"; + + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, peg$SyntaxError); + } + } + + peg$subclass(peg$SyntaxError, Error); + + peg$SyntaxError.buildMessage = function (expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function literal(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + "class": function _class(expectation) { + var escapedParts = "", + i; + + for (i = 0; i < expectation.parts.length; i++) { + escapedParts += expectation.parts[i] instanceof Array ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) : classEscape(expectation.parts[i]); + } + + return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; + }, + any: function any(expectation) { + return "any character"; + }, + end: function end(expectation) { + return "end of input"; + }, + other: function other(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\0/g, '\\0').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/[\x00-\x0F]/g, function (ch) { + return '\\x0' + hex(ch); + }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { + return '\\x' + hex(ch); + }); + } + + function classEscape(s) { + return s.replace(/\\/g, '\\\\').replace(/\]/g, '\\]').replace(/\^/g, '\\^').replace(/-/g, '\\-').replace(/\0/g, '\\0').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/[\x00-\x0F]/g, function (ch) { + return '\\x0' + hex(ch); + }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { + return '\\x' + hex(ch); + }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = new Array(expected.length), + i, + j; + + for (i = 0; i < expected.length; i++) { + descriptions[i] = describeExpectation(expected[i]); + } + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + ", or " + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; + }; + + function peg$parse(input, options) { + options = options !== void 0 ? options : {}; + + var peg$FAILED = {}, + peg$startRuleFunctions = { + start: peg$parsestart + }, + peg$startRuleFunction = peg$parsestart, + peg$c0 = function peg$c0(ss) { + return ss.length === 1 ? ss[0] : { + type: 'matches', + selectors: ss + }; + }, + peg$c1 = function peg$c1() { + return void 0; + }, + peg$c2 = " ", + peg$c3 = peg$literalExpectation(" ", false), + peg$c4 = /^[^ [\],():#!=><~+.]/, + peg$c5 = peg$classExpectation([" ", "[", "]", ",", "(", ")", ":", "#", "!", "=", ">", "<", "~", "+", "."], true, false), + peg$c6 = function peg$c6(i) { + return i.join(''); + }, + peg$c7 = ">", + peg$c8 = peg$literalExpectation(">", false), + peg$c9 = function peg$c9() { + return 'child'; + }, + peg$c10 = "~", + peg$c11 = peg$literalExpectation("~", false), + peg$c12 = function peg$c12() { + return 'sibling'; + }, + peg$c13 = "+", + peg$c14 = peg$literalExpectation("+", false), + peg$c15 = function peg$c15() { + return 'adjacent'; + }, + peg$c16 = function peg$c16() { + return 'descendant'; + }, + peg$c17 = ",", + peg$c18 = peg$literalExpectation(",", false), + peg$c19 = function peg$c19(s, ss) { + return [s].concat(ss.map(function (s) { + return s[3]; + })); + }, + peg$c20 = function peg$c20(a, ops) { + return ops.reduce(function (memo, rhs) { + return { + type: rhs[0], + left: memo, + right: rhs[1] + }; + }, a); + }, + peg$c21 = "!", + peg$c22 = peg$literalExpectation("!", false), + peg$c23 = function peg$c23(subject, as) { + var b = as.length === 1 ? as[0] : { + type: 'compound', + selectors: as + }; + if (subject) b.subject = true; + return b; + }, + peg$c24 = "*", + peg$c25 = peg$literalExpectation("*", false), + peg$c26 = function peg$c26(a) { + return { + type: 'wildcard', + value: a + }; + }, + peg$c27 = "#", + peg$c28 = peg$literalExpectation("#", false), + peg$c29 = function peg$c29(i) { + return { + type: 'identifier', + value: i + }; + }, + peg$c30 = "[", + peg$c31 = peg$literalExpectation("[", false), + peg$c32 = "]", + peg$c33 = peg$literalExpectation("]", false), + peg$c34 = function peg$c34(v) { + return v; + }, + peg$c35 = /^[>", "<", "!"], false, false), + peg$c37 = "=", + peg$c38 = peg$literalExpectation("=", false), + peg$c39 = function peg$c39(a) { + return (a || '') + '='; + }, + peg$c40 = /^[><]/, + peg$c41 = peg$classExpectation([">", "<"], false, false), + peg$c42 = ".", + peg$c43 = peg$literalExpectation(".", false), + peg$c44 = function peg$c44(a, as) { + return [].concat.apply([a], as).join(''); + }, + peg$c45 = function peg$c45(name, op, value) { + return { + type: 'attribute', + name: name, + operator: op, + value: value + }; + }, + peg$c46 = function peg$c46(name) { + return { + type: 'attribute', + name: name + }; + }, + peg$c47 = "\"", + peg$c48 = peg$literalExpectation("\"", false), + peg$c49 = /^[^\\"]/, + peg$c50 = peg$classExpectation(["\\", "\""], true, false), + peg$c51 = "\\", + peg$c52 = peg$literalExpectation("\\", false), + peg$c53 = peg$anyExpectation(), + peg$c54 = function peg$c54(a, b) { + return a + b; + }, + peg$c55 = function peg$c55(d) { + return { + type: 'literal', + value: strUnescape(d.join('')) + }; + }, + peg$c56 = "'", + peg$c57 = peg$literalExpectation("'", false), + peg$c58 = /^[^\\']/, + peg$c59 = peg$classExpectation(["\\", "'"], true, false), + peg$c60 = /^[0-9]/, + peg$c61 = peg$classExpectation([["0", "9"]], false, false), + peg$c62 = function peg$c62(a, b) { + // Can use `a.flat().join('')` once supported + var leadingDecimals = a ? [].concat.apply([], a).join('') : ''; + return { + type: 'literal', + value: parseFloat(leadingDecimals + b.join('')) + }; + }, + peg$c63 = function peg$c63(i) { + return { + type: 'literal', + value: i + }; + }, + peg$c64 = "type(", + peg$c65 = peg$literalExpectation("type(", false), + peg$c66 = /^[^ )]/, + peg$c67 = peg$classExpectation([" ", ")"], true, false), + peg$c68 = ")", + peg$c69 = peg$literalExpectation(")", false), + peg$c70 = function peg$c70(t) { + return { + type: 'type', + value: t.join('') + }; + }, + peg$c71 = /^[imsu]/, + peg$c72 = peg$classExpectation(["i", "m", "s", "u"], false, false), + peg$c73 = "/", + peg$c74 = peg$literalExpectation("/", false), + peg$c75 = /^[^\/]/, + peg$c76 = peg$classExpectation(["/"], true, false), + peg$c77 = function peg$c77(d, flgs) { + return { + type: 'regexp', + value: new RegExp(d.join(''), flgs ? flgs.join('') : '') + }; + }, + peg$c78 = function peg$c78(i, is) { + return { + type: 'field', + name: is.reduce(function (memo, p) { + return memo + p[0] + p[1]; + }, i) + }; + }, + peg$c79 = ":not(", + peg$c80 = peg$literalExpectation(":not(", false), + peg$c81 = function peg$c81(ss) { + return { + type: 'not', + selectors: ss + }; + }, + peg$c82 = ":matches(", + peg$c83 = peg$literalExpectation(":matches(", false), + peg$c84 = function peg$c84(ss) { + return { + type: 'matches', + selectors: ss + }; + }, + peg$c85 = ":has(", + peg$c86 = peg$literalExpectation(":has(", false), + peg$c87 = function peg$c87(ss) { + return { + type: 'has', + selectors: ss + }; + }, + peg$c88 = ":first-child", + peg$c89 = peg$literalExpectation(":first-child", false), + peg$c90 = function peg$c90() { + return nth(1); + }, + peg$c91 = ":last-child", + peg$c92 = peg$literalExpectation(":last-child", false), + peg$c93 = function peg$c93() { + return nthLast(1); + }, + peg$c94 = ":nth-child(", + peg$c95 = peg$literalExpectation(":nth-child(", false), + peg$c96 = function peg$c96(n) { + return nth(parseInt(n.join(''), 10)); + }, + peg$c97 = ":nth-last-child(", + peg$c98 = peg$literalExpectation(":nth-last-child(", false), + peg$c99 = function peg$c99(n) { + return nthLast(parseInt(n.join(''), 10)); + }, + peg$c100 = ":", + peg$c101 = peg$literalExpectation(":", false), + peg$c102 = "statement", + peg$c103 = peg$literalExpectation("statement", true), + peg$c104 = "expression", + peg$c105 = peg$literalExpectation("expression", true), + peg$c106 = "declaration", + peg$c107 = peg$literalExpectation("declaration", true), + peg$c108 = "function", + peg$c109 = peg$literalExpectation("function", true), + peg$c110 = "pattern", + peg$c111 = peg$literalExpectation("pattern", true), + peg$c112 = function peg$c112(c) { + return { + type: 'class', + name: c + }; + }, + peg$currPos = 0, + peg$posDetailsCache = [{ + line: 1, + column: 1 + }], + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$resultsCache = {}, + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function peg$literalExpectation(text, ignoreCase) { + return { + type: "literal", + text: text, + ignoreCase: ignoreCase + }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { + type: "class", + parts: parts, + inverted: inverted, + ignoreCase: ignoreCase + }; + } + + function peg$anyExpectation() { + return { + type: "any" + }; + } + + function peg$endExpectation() { + return { + type: "end" + }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos], + p; + + if (details) { + return details; + } else { + p = pos - 1; + + while (!peg$posDetailsCache[p]) { + p--; + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + return details; + } + } + + function peg$computeLocation(startPos, endPos) { + var startPosDetails = peg$computePosDetails(startPos), + endPosDetails = peg$computePosDetails(endPos); + return { + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { + return; + } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location); + } + + function peg$parsestart() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 0, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + s2 = peg$parseselectors(); + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c0(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + s1 = peg$c1(); + } + + s0 = s1; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parse_() { + var s0, s1; + var key = peg$currPos * 30 + 1, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = []; + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + + while (s1 !== peg$FAILED) { + s0.push(s1); + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseidentifierName() { + var s0, s1, s2; + var key = peg$currPos * 30 + 2, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = []; + + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c5); + } + } + + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c5); + } + } + } + } else { + s1 = peg$FAILED; + } + + if (s1 !== peg$FAILED) { + s1 = peg$c6(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsebinaryOp() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 3, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 62) { + s2 = peg$c7; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c8); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c9(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 126) { + s2 = peg$c10; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c11); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c12(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 43) { + s2 = peg$c13; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c14); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c15(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s1 = peg$c16(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseselectors() { + var s0, s1, s2, s3, s4, s5, s6, s7; + var key = peg$currPos * 30 + 4, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseselector(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c18); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c18); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c19(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseselector() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 5, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parsesequence(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c20(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsesequence() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 6, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c22); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseatom(); + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseatom(); + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + s1 = peg$c23(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseatom() { + var s0; + var key = peg$currPos * 30 + 7, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$parsewildcard(); + + if (s0 === peg$FAILED) { + s0 = peg$parseidentifier(); + + if (s0 === peg$FAILED) { + s0 = peg$parseattr(); + + if (s0 === peg$FAILED) { + s0 = peg$parsefield(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenegation(); + + if (s0 === peg$FAILED) { + s0 = peg$parsematches(); + + if (s0 === peg$FAILED) { + s0 = peg$parsehas(); + + if (s0 === peg$FAILED) { + s0 = peg$parsefirstChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parselastChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenthChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenthLastChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parseclass(); + } + } + } + } + } + } + } + } + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsewildcard() { + var s0, s1; + var key = peg$currPos * 30 + 8, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 42) { + s1 = peg$c24; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c25); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c26(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseidentifier() { + var s0, s1, s2; + var key = peg$currPos * 30 + 9, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 35) { + s1 = peg$c27; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c28); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + + if (s2 !== peg$FAILED) { + s1 = peg$c29(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattr() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 10, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c30; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c31); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrValue(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c32; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c33); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c34(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrOps() { + var s0, s1, s2; + var key = peg$currPos * 30 + 11, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (peg$c35.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c36); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c38); + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + if (peg$c40.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + + { + peg$fail(peg$c41); + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrEqOps() { + var s0, s1, s2; + var key = peg$currPos * 30 + 12, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c22); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c38); + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrName() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 13, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c44(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrValue() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 14, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrEqOps(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsetype(); + + if (s5 === peg$FAILED) { + s5 = peg$parseregex(); + } + + if (s5 !== peg$FAILED) { + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrOps(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsestring(); + + if (s5 === peg$FAILED) { + s5 = peg$parsenumber(); + + if (s5 === peg$FAILED) { + s5 = peg$parsepath(); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s1 = peg$c46(s1); + } + + s0 = s1; + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsestring() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 15, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c47; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c48); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c50); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c50); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c47; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c48); + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 39) { + s1 = peg$c56; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c57); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c59); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c59); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 39) { + s3 = peg$c56; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c57); + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenumber() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 16, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s3 = peg$c42; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + s1 = peg$c62(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsepath() { + var s0, s1; + var key = peg$currPos * 30 + 17, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + + if (s1 !== peg$FAILED) { + s1 = peg$c63(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsetype() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 18, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c64) { + s1 = peg$c64; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c65); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c67); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c67); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c70(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseflags() { + var s0, s1; + var key = peg$currPos * 30 + 19, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = []; + + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c72); + } + } + + if (s1 !== peg$FAILED) { + while (s1 !== peg$FAILED) { + s0.push(s1); + + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c72); + } + } + } + } else { + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseregex() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 30 + 20, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 47) { + s1 = peg$c73; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c74); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c76); + } + } + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c76); + } + } + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 47) { + s3 = peg$c73; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c74); + } + } + + if (s3 !== peg$FAILED) { + s4 = peg$parseflags(); + + if (s4 === peg$FAILED) { + s4 = null; + } + + if (s4 !== peg$FAILED) { + s1 = peg$c77(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsefield() { + var s0, s1, s2, s3, s4, s5, s6; + var key = peg$currPos * 30 + 21, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s1 = peg$c42; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c78(s2, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenegation() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 22, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c79) { + s1 = peg$c79; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c80); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c81(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsematches() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 23, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 9) === peg$c82) { + s1 = peg$c82; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c83); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c84(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsehas() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 24, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c85) { + s1 = peg$c85; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c86); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c87(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsefirstChild() { + var s0, s1; + var key = peg$currPos * 30 + 25, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 12) === peg$c88) { + s1 = peg$c88; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c89); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c90(); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parselastChild() { + var s0, s1; + var key = peg$currPos * 30 + 26, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 11) === peg$c91) { + s1 = peg$c91; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c92); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c93(); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenthChild() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 27, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 11) === peg$c94) { + s1 = peg$c94; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c95); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c96(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenthLastChild() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 28, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 16) === peg$c97) { + s1 = peg$c97; + peg$currPos += 16; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c98); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c99(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseclass() { + var s0, s1, s2; + var key = peg$currPos * 30 + 29, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 58) { + s1 = peg$c100; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c101); + } + } + + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 9).toLowerCase() === peg$c102) { + s2 = input.substr(peg$currPos, 9); + peg$currPos += 9; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c103); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 10).toLowerCase() === peg$c104) { + s2 = input.substr(peg$currPos, 10); + peg$currPos += 10; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c105); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 11).toLowerCase() === peg$c106) { + s2 = input.substr(peg$currPos, 11); + peg$currPos += 11; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c107); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 8).toLowerCase() === peg$c108) { + s2 = input.substr(peg$currPos, 8); + peg$currPos += 8; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c109); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c110) { + s2 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c111); + } + } + } + } + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c112(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function nth(n) { + return { + type: 'nth-child', + index: { + type: 'literal', + value: n + } + }; + } + + function nthLast(n) { + return { + type: 'nth-last-child', + index: { + type: 'literal', + value: n + } + }; + } + + function strUnescape(s) { + return s.replace(/\\(.)/g, function (match, ch) { + switch (ch) { + case 'b': + return '\b'; + + case 'f': + return '\f'; + + case 'n': + return '\n'; + + case 'r': + return '\r'; + + case 't': + return '\t'; + + case 'v': + return '\v'; + + default: + return ch; + } + }); + } + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)); + } + } + + return { + SyntaxError: peg$SyntaxError, + parse: peg$parse + }; + }); + }); + + function _objectEntries(obj) { + var entries = []; + var keys = Object.keys(obj); + + for (var k = 0; k < keys.length; k++) entries.push([keys[k], obj[keys[k]]]); + + return entries; + } + /** + * @typedef {"LEFT_SIDE"|"RIGHT_SIDE"} Side + */ + + var LEFT_SIDE = 'LEFT_SIDE'; + var RIGHT_SIDE = 'RIGHT_SIDE'; + /** + * @external AST + * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html + */ + + /** + * One of the rules of `grammar.pegjs` + * @typedef {PlainObject} SelectorAST + * @see grammar.pegjs + */ + + /** + * The `sequence` production of `grammar.pegjs` + * @typedef {PlainObject} SelectorSequenceAST + */ + + /** + * Get the value of a property which may be multiple levels down + * in the object. + * @param {?PlainObject} obj + * @param {string} key + * @returns {undefined|boolean|string|number|external:AST} + */ + + function getPath(obj, key) { + var keys = key.split('.'); + + var _iterator = _createForOfIteratorHelper(keys), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _key = _step.value; + + if (obj == null) { + return obj; + } + + obj = obj[_key]; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return obj; + } + /** + * Determine whether `node` can be reached by following `path`, + * starting at `ancestor`. + * @param {?external:AST} node + * @param {?external:AST} ancestor + * @param {string[]} path + * @returns {boolean} + */ + + + function inPath(node, ancestor, path) { + if (path.length === 0) { + return node === ancestor; + } + + if (ancestor == null) { + return false; + } + + var field = ancestor[path[0]]; + var remainingPath = path.slice(1); + + if (Array.isArray(field)) { + var _iterator2 = _createForOfIteratorHelper(field), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var component = _step2.value; + + if (inPath(node, component, remainingPath)) { + return true; + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return false; + } else { + return inPath(node, field, remainingPath); + } + } + /** + * @callback TraverseOptionFallback + * @param {external:AST} node The given node. + * @returns {string[]} An array of visitor keys for the given node. + */ + + /** + * @typedef {object} ESQueryOptions + * @property { { [nodeType: string]: string[] } } [visitorKeys] By passing `visitorKeys` mapping, we can extend the properties of the nodes that traverse the node. + * @property {TraverseOptionFallback} [fallback] By passing `fallback` option, we can control the properties of traversing nodes when encountering unknown nodes. + */ + + /** + * Given a `node` and its ancestors, determine if `node` is matched + * by `selector`. + * @param {?external:AST} node + * @param {?SelectorAST} selector + * @param {external:AST[]} [ancestry=[]] + * @param {ESQueryOptions} [options] + * @throws {Error} Unknowns (operator, class name, selector type, or + * selector value type) + * @returns {boolean} + */ + + + function matches(node, selector, ancestry, options) { + if (!selector) { + return true; + } + + if (!node) { + return false; + } + + if (!ancestry) { + ancestry = []; + } + + switch (selector.type) { + case 'wildcard': + return true; + + case 'identifier': + return selector.value.toLowerCase() === node.type.toLowerCase(); + + case 'field': + { + var path = selector.name.split('.'); + var ancestor = ancestry[path.length - 1]; + return inPath(node, ancestor, path); + } + + case 'matches': + var _iterator3 = _createForOfIteratorHelper(selector.selectors), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var sel = _step3.value; + + if (matches(node, sel, ancestry, options)) { + return true; + } + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + + return false; + + case 'compound': + var _iterator4 = _createForOfIteratorHelper(selector.selectors), + _step4; + + try { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var _sel = _step4.value; + + if (!matches(node, _sel, ancestry, options)) { + return false; + } + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); + } + + return true; + + case 'not': + var _iterator5 = _createForOfIteratorHelper(selector.selectors), + _step5; + + try { + for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { + var _sel2 = _step5.value; + + if (matches(node, _sel2, ancestry, options)) { + return false; + } + } + } catch (err) { + _iterator5.e(err); + } finally { + _iterator5.f(); + } + + return true; + + case 'has': + { + var _ret = function () { + var collector = []; + + var _iterator6 = _createForOfIteratorHelper(selector.selectors), + _step6; + + try { + var _loop = function _loop() { + var sel = _step6.value; + var a = []; + estraverse.traverse(node, { + enter: function enter(node, parent) { + if (parent != null) { + a.unshift(parent); + } + + if (matches(node, sel, a, options)) { + collector.push(node); + } + }, + leave: function leave() { + a.shift(); + }, + keys: options && options.visitorKeys, + fallback: options && options.fallback || 'iteration' + }); + }; + + for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { + _loop(); + } + } catch (err) { + _iterator6.e(err); + } finally { + _iterator6.f(); + } + + return { + v: collector.length !== 0 + }; + }(); + + if (_typeof(_ret) === "object") return _ret.v; + } + + case 'child': + if (matches(node, selector.right, ancestry, options)) { + return matches(ancestry[0], selector.left, ancestry.slice(1), options); + } + + return false; + + case 'descendant': + if (matches(node, selector.right, ancestry, options)) { + for (var i = 0, l = ancestry.length; i < l; ++i) { + if (matches(ancestry[i], selector.left, ancestry.slice(i + 1), options)) { + return true; + } + } + } + + return false; + + case 'attribute': + { + var p = getPath(node, selector.name); + + switch (selector.operator) { + case void 0: + return p != null; + + case '=': + switch (selector.value.type) { + case 'regexp': + return typeof p === 'string' && selector.value.value.test(p); + + case 'literal': + return "".concat(selector.value.value) === "".concat(p); + + case 'type': + return selector.value.value === _typeof(p); + } + + throw new Error("Unknown selector value type: ".concat(selector.value.type)); + + case '!=': + switch (selector.value.type) { + case 'regexp': + return !selector.value.value.test(p); + + case 'literal': + return "".concat(selector.value.value) !== "".concat(p); + + case 'type': + return selector.value.value !== _typeof(p); + } + + throw new Error("Unknown selector value type: ".concat(selector.value.type)); + + case '<=': + return p <= selector.value.value; + + case '<': + return p < selector.value.value; + + case '>': + return p > selector.value.value; + + case '>=': + return p >= selector.value.value; + } + + throw new Error("Unknown operator: ".concat(selector.operator)); + } + + case 'sibling': + return matches(node, selector.right, ancestry, options) && sibling(node, selector.left, ancestry, LEFT_SIDE, options) || selector.left.subject && matches(node, selector.left, ancestry, options) && sibling(node, selector.right, ancestry, RIGHT_SIDE, options); + + case 'adjacent': + return matches(node, selector.right, ancestry, options) && adjacent(node, selector.left, ancestry, LEFT_SIDE, options) || selector.right.subject && matches(node, selector.left, ancestry, options) && adjacent(node, selector.right, ancestry, RIGHT_SIDE, options); + + case 'nth-child': + return matches(node, selector.right, ancestry, options) && nthChild(node, ancestry, function () { + return selector.index.value - 1; + }, options); + + case 'nth-last-child': + return matches(node, selector.right, ancestry, options) && nthChild(node, ancestry, function (length) { + return length - selector.index.value; + }, options); + + case 'class': + switch (selector.name.toLowerCase()) { + case 'statement': + if (node.type.slice(-9) === 'Statement') return true; + // fallthrough: interface Declaration <: Statement { } + + case 'declaration': + return node.type.slice(-11) === 'Declaration'; + + case 'pattern': + if (node.type.slice(-7) === 'Pattern') return true; + // fallthrough: interface Expression <: Node, Pattern { } + + case 'expression': + return node.type.slice(-10) === 'Expression' || node.type.slice(-7) === 'Literal' || node.type === 'Identifier' && (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty') || node.type === 'MetaProperty'; + + case 'function': + return node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression'; + } + + throw new Error("Unknown class name: ".concat(selector.name)); + } + + throw new Error("Unknown selector type: ".concat(selector.type)); + } + /** + * Get visitor keys of a given node. + * @param {external:AST} node The AST node to get keys. + * @param {ESQueryOptions|undefined} options + * @returns {string[]} Visitor keys of the node. + */ + + + function getVisitorKeys(node, options) { + var nodeType = node.type; + + if (options && options.visitorKeys && options.visitorKeys[nodeType]) { + return options.visitorKeys[nodeType]; + } + + if (estraverse.VisitorKeys[nodeType]) { + return estraverse.VisitorKeys[nodeType]; + } + + if (options && typeof options.fallback === 'function') { + return options.fallback(node); + } // 'iteration' fallback + + + return Object.keys(node).filter(function (key) { + return key !== 'type'; + }); + } + /** + * Check whether the given value is an ASTNode or not. + * @param {any} node The value to check. + * @returns {boolean} `true` if the value is an ASTNode. + */ + + + function isNode(node) { + return node !== null && _typeof(node) === 'object' && typeof node.type === 'string'; + } + /** + * Determines if the given node has a sibling that matches the + * given selector. + * @param {external:AST} node + * @param {SelectorSequenceAST} selector + * @param {external:AST[]} ancestry + * @param {Side} side + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + + function sibling(node, selector, ancestry, side, options) { + var _ancestry = _slicedToArray(ancestry, 1), + parent = _ancestry[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator7 = _createForOfIteratorHelper(keys), + _step7; + + try { + for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { + var key = _step7.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var startIndex = listProp.indexOf(node); + + if (startIndex < 0) { + continue; + } + + var lowerBound = void 0, + upperBound = void 0; + + if (side === LEFT_SIDE) { + lowerBound = 0; + upperBound = startIndex; + } else { + lowerBound = startIndex + 1; + upperBound = listProp.length; + } + + for (var k = lowerBound; k < upperBound; ++k) { + if (isNode(listProp[k]) && matches(listProp[k], selector, ancestry, options)) { + return true; + } + } + } + } + } catch (err) { + _iterator7.e(err); + } finally { + _iterator7.f(); + } + + return false; + } + /** + * Determines if the given node has an adjacent sibling that matches + * the given selector. + * @param {external:AST} node + * @param {SelectorSequenceAST} selector + * @param {external:AST[]} ancestry + * @param {Side} side + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + + function adjacent(node, selector, ancestry, side, options) { + var _ancestry2 = _slicedToArray(ancestry, 1), + parent = _ancestry2[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator8 = _createForOfIteratorHelper(keys), + _step8; + + try { + for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { + var key = _step8.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var idx = listProp.indexOf(node); + + if (idx < 0) { + continue; + } + + if (side === LEFT_SIDE && idx > 0 && isNode(listProp[idx - 1]) && matches(listProp[idx - 1], selector, ancestry, options)) { + return true; + } + + if (side === RIGHT_SIDE && idx < listProp.length - 1 && isNode(listProp[idx + 1]) && matches(listProp[idx + 1], selector, ancestry, options)) { + return true; + } + } + } + } catch (err) { + _iterator8.e(err); + } finally { + _iterator8.f(); + } + + return false; + } + /** + * @callback IndexFunction + * @param {Integer} len Containing list's length + * @returns {Integer} + */ + + /** + * Determines if the given node is the nth child, determined by + * `idxFn`, which is given the containing list's length. + * @param {external:AST} node + * @param {external:AST[]} ancestry + * @param {IndexFunction} idxFn + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + + function nthChild(node, ancestry, idxFn, options) { + var _ancestry3 = _slicedToArray(ancestry, 1), + parent = _ancestry3[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator9 = _createForOfIteratorHelper(keys), + _step9; + + try { + for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { + var key = _step9.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var idx = listProp.indexOf(node); + + if (idx >= 0 && idx === idxFn(listProp.length)) { + return true; + } + } + } + } catch (err) { + _iterator9.e(err); + } finally { + _iterator9.f(); + } + + return false; + } + /** + * For each selector node marked as a subject, find the portion of the + * selector that the subject must match. + * @param {SelectorAST} selector + * @param {SelectorAST} [ancestor] Defaults to `selector` + * @returns {SelectorAST[]} + */ + + + function subjects(selector, ancestor) { + if (selector == null || _typeof(selector) != 'object') { + return []; + } + + if (ancestor == null) { + ancestor = selector; + } + + var results = selector.subject ? [ancestor] : []; + + for (var _i = 0, _Object$entries = _objectEntries(selector); _i < _Object$entries.length; _i++) { + var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), + p = _Object$entries$_i[0], + sel = _Object$entries$_i[1]; + + results.push.apply(results, _toConsumableArray(subjects(sel, p === 'left' ? sel : ancestor))); + } + + return results; + } + /** + * @callback TraverseVisitor + * @param {?external:AST} node + * @param {?external:AST} parent + * @param {external:AST[]} ancestry + */ + + /** + * From a JS AST and a selector AST, collect all JS AST nodes that + * match the selector. + * @param {external:AST} ast + * @param {?SelectorAST} selector + * @param {TraverseVisitor} visitor + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + + function traverse(ast, selector, visitor, options) { + if (!selector) { + return; + } + + var ancestry = []; + var altSubjects = subjects(selector); + estraverse.traverse(ast, { + enter: function enter(node, parent) { + if (parent != null) { + ancestry.unshift(parent); + } + + if (matches(node, selector, ancestry, options)) { + if (altSubjects.length) { + for (var i = 0, l = altSubjects.length; i < l; ++i) { + if (matches(node, altSubjects[i], ancestry, options)) { + visitor(node, parent, ancestry); + } + + for (var k = 0, m = ancestry.length; k < m; ++k) { + var succeedingAncestry = ancestry.slice(k + 1); + + if (matches(ancestry[k], altSubjects[i], succeedingAncestry, options)) { + visitor(ancestry[k], parent, succeedingAncestry); + } + } + } + } else { + visitor(node, parent, ancestry); + } + } + }, + leave: function leave() { + ancestry.shift(); + }, + keys: options && options.visitorKeys, + fallback: options && options.fallback || 'iteration' + }); + } + /** + * From a JS AST and a selector AST, collect all JS AST nodes that + * match the selector. + * @param {external:AST} ast + * @param {?SelectorAST} selector + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + + function match(ast, selector, options) { + var results = []; + traverse(ast, selector, function (node) { + results.push(node); + }, options); + return results; + } + /** + * Parse a selector string and return its AST. + * @param {string} selector + * @returns {SelectorAST} + */ + + + function parse(selector) { + return parser.parse(selector); + } + /** + * Query the code AST using the selector string. + * @param {external:AST} ast + * @param {string} selector + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + + function query(ast, selector, options) { + return match(ast, parse(selector), options); + } + + query.parse = parse; + query.match = match; + query.traverse = traverse; + query.matches = matches; + query.query = query; + + return query; + +}))); diff --git a/node_modules/esquery/dist/esquery.lite.js b/node_modules/esquery/dist/esquery.lite.js new file mode 100644 index 0000000..8a181ab --- /dev/null +++ b/node_modules/esquery/dist/esquery.lite.js @@ -0,0 +1,3995 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('estraverse')) : + typeof define === 'function' && define.amd ? define(['estraverse'], factory) : + (global = global || self, global.esquery = factory(global.estraverse)); +}(this, (function (estraverse) { 'use strict'; + + estraverse = estraverse && Object.prototype.hasOwnProperty.call(estraverse, 'default') ? estraverse['default'] : estraverse; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); + } + + function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + function _createForOfIteratorHelper(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function () {}; + + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = o[Symbol.iterator](); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var parser = createCommonjsModule(function (module) { + /* + * Generated by PEG.js 0.10.0. + * + * http://pegjs.org/ + */ + (function (root, factory) { + if ( module.exports) { + module.exports = factory(); + } + })(commonjsGlobal, function () { + + function peg$subclass(child, parent) { + function ctor() { + this.constructor = child; + } + + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + } + + function peg$SyntaxError(message, expected, found, location) { + this.message = message; + this.expected = expected; + this.found = found; + this.location = location; + this.name = "SyntaxError"; + + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, peg$SyntaxError); + } + } + + peg$subclass(peg$SyntaxError, Error); + + peg$SyntaxError.buildMessage = function (expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function literal(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + "class": function _class(expectation) { + var escapedParts = "", + i; + + for (i = 0; i < expectation.parts.length; i++) { + escapedParts += expectation.parts[i] instanceof Array ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) : classEscape(expectation.parts[i]); + } + + return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; + }, + any: function any(expectation) { + return "any character"; + }, + end: function end(expectation) { + return "end of input"; + }, + other: function other(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\0/g, '\\0').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/[\x00-\x0F]/g, function (ch) { + return '\\x0' + hex(ch); + }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { + return '\\x' + hex(ch); + }); + } + + function classEscape(s) { + return s.replace(/\\/g, '\\\\').replace(/\]/g, '\\]').replace(/\^/g, '\\^').replace(/-/g, '\\-').replace(/\0/g, '\\0').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/[\x00-\x0F]/g, function (ch) { + return '\\x0' + hex(ch); + }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { + return '\\x' + hex(ch); + }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = new Array(expected.length), + i, + j; + + for (i = 0; i < expected.length; i++) { + descriptions[i] = describeExpectation(expected[i]); + } + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + ", or " + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; + }; + + function peg$parse(input, options) { + options = options !== void 0 ? options : {}; + + var peg$FAILED = {}, + peg$startRuleFunctions = { + start: peg$parsestart + }, + peg$startRuleFunction = peg$parsestart, + peg$c0 = function peg$c0(ss) { + return ss.length === 1 ? ss[0] : { + type: 'matches', + selectors: ss + }; + }, + peg$c1 = function peg$c1() { + return void 0; + }, + peg$c2 = " ", + peg$c3 = peg$literalExpectation(" ", false), + peg$c4 = /^[^ [\],():#!=><~+.]/, + peg$c5 = peg$classExpectation([" ", "[", "]", ",", "(", ")", ":", "#", "!", "=", ">", "<", "~", "+", "."], true, false), + peg$c6 = function peg$c6(i) { + return i.join(''); + }, + peg$c7 = ">", + peg$c8 = peg$literalExpectation(">", false), + peg$c9 = function peg$c9() { + return 'child'; + }, + peg$c10 = "~", + peg$c11 = peg$literalExpectation("~", false), + peg$c12 = function peg$c12() { + return 'sibling'; + }, + peg$c13 = "+", + peg$c14 = peg$literalExpectation("+", false), + peg$c15 = function peg$c15() { + return 'adjacent'; + }, + peg$c16 = function peg$c16() { + return 'descendant'; + }, + peg$c17 = ",", + peg$c18 = peg$literalExpectation(",", false), + peg$c19 = function peg$c19(s, ss) { + return [s].concat(ss.map(function (s) { + return s[3]; + })); + }, + peg$c20 = function peg$c20(a, ops) { + return ops.reduce(function (memo, rhs) { + return { + type: rhs[0], + left: memo, + right: rhs[1] + }; + }, a); + }, + peg$c21 = "!", + peg$c22 = peg$literalExpectation("!", false), + peg$c23 = function peg$c23(subject, as) { + var b = as.length === 1 ? as[0] : { + type: 'compound', + selectors: as + }; + if (subject) b.subject = true; + return b; + }, + peg$c24 = "*", + peg$c25 = peg$literalExpectation("*", false), + peg$c26 = function peg$c26(a) { + return { + type: 'wildcard', + value: a + }; + }, + peg$c27 = "#", + peg$c28 = peg$literalExpectation("#", false), + peg$c29 = function peg$c29(i) { + return { + type: 'identifier', + value: i + }; + }, + peg$c30 = "[", + peg$c31 = peg$literalExpectation("[", false), + peg$c32 = "]", + peg$c33 = peg$literalExpectation("]", false), + peg$c34 = function peg$c34(v) { + return v; + }, + peg$c35 = /^[>", "<", "!"], false, false), + peg$c37 = "=", + peg$c38 = peg$literalExpectation("=", false), + peg$c39 = function peg$c39(a) { + return (a || '') + '='; + }, + peg$c40 = /^[><]/, + peg$c41 = peg$classExpectation([">", "<"], false, false), + peg$c42 = ".", + peg$c43 = peg$literalExpectation(".", false), + peg$c44 = function peg$c44(a, as) { + return [].concat.apply([a], as).join(''); + }, + peg$c45 = function peg$c45(name, op, value) { + return { + type: 'attribute', + name: name, + operator: op, + value: value + }; + }, + peg$c46 = function peg$c46(name) { + return { + type: 'attribute', + name: name + }; + }, + peg$c47 = "\"", + peg$c48 = peg$literalExpectation("\"", false), + peg$c49 = /^[^\\"]/, + peg$c50 = peg$classExpectation(["\\", "\""], true, false), + peg$c51 = "\\", + peg$c52 = peg$literalExpectation("\\", false), + peg$c53 = peg$anyExpectation(), + peg$c54 = function peg$c54(a, b) { + return a + b; + }, + peg$c55 = function peg$c55(d) { + return { + type: 'literal', + value: strUnescape(d.join('')) + }; + }, + peg$c56 = "'", + peg$c57 = peg$literalExpectation("'", false), + peg$c58 = /^[^\\']/, + peg$c59 = peg$classExpectation(["\\", "'"], true, false), + peg$c60 = /^[0-9]/, + peg$c61 = peg$classExpectation([["0", "9"]], false, false), + peg$c62 = function peg$c62(a, b) { + // Can use `a.flat().join('')` once supported + var leadingDecimals = a ? [].concat.apply([], a).join('') : ''; + return { + type: 'literal', + value: parseFloat(leadingDecimals + b.join('')) + }; + }, + peg$c63 = function peg$c63(i) { + return { + type: 'literal', + value: i + }; + }, + peg$c64 = "type(", + peg$c65 = peg$literalExpectation("type(", false), + peg$c66 = /^[^ )]/, + peg$c67 = peg$classExpectation([" ", ")"], true, false), + peg$c68 = ")", + peg$c69 = peg$literalExpectation(")", false), + peg$c70 = function peg$c70(t) { + return { + type: 'type', + value: t.join('') + }; + }, + peg$c71 = /^[imsu]/, + peg$c72 = peg$classExpectation(["i", "m", "s", "u"], false, false), + peg$c73 = "/", + peg$c74 = peg$literalExpectation("/", false), + peg$c75 = /^[^\/]/, + peg$c76 = peg$classExpectation(["/"], true, false), + peg$c77 = function peg$c77(d, flgs) { + return { + type: 'regexp', + value: new RegExp(d.join(''), flgs ? flgs.join('') : '') + }; + }, + peg$c78 = function peg$c78(i, is) { + return { + type: 'field', + name: is.reduce(function (memo, p) { + return memo + p[0] + p[1]; + }, i) + }; + }, + peg$c79 = ":not(", + peg$c80 = peg$literalExpectation(":not(", false), + peg$c81 = function peg$c81(ss) { + return { + type: 'not', + selectors: ss + }; + }, + peg$c82 = ":matches(", + peg$c83 = peg$literalExpectation(":matches(", false), + peg$c84 = function peg$c84(ss) { + return { + type: 'matches', + selectors: ss + }; + }, + peg$c85 = ":has(", + peg$c86 = peg$literalExpectation(":has(", false), + peg$c87 = function peg$c87(ss) { + return { + type: 'has', + selectors: ss + }; + }, + peg$c88 = ":first-child", + peg$c89 = peg$literalExpectation(":first-child", false), + peg$c90 = function peg$c90() { + return nth(1); + }, + peg$c91 = ":last-child", + peg$c92 = peg$literalExpectation(":last-child", false), + peg$c93 = function peg$c93() { + return nthLast(1); + }, + peg$c94 = ":nth-child(", + peg$c95 = peg$literalExpectation(":nth-child(", false), + peg$c96 = function peg$c96(n) { + return nth(parseInt(n.join(''), 10)); + }, + peg$c97 = ":nth-last-child(", + peg$c98 = peg$literalExpectation(":nth-last-child(", false), + peg$c99 = function peg$c99(n) { + return nthLast(parseInt(n.join(''), 10)); + }, + peg$c100 = ":", + peg$c101 = peg$literalExpectation(":", false), + peg$c102 = "statement", + peg$c103 = peg$literalExpectation("statement", true), + peg$c104 = "expression", + peg$c105 = peg$literalExpectation("expression", true), + peg$c106 = "declaration", + peg$c107 = peg$literalExpectation("declaration", true), + peg$c108 = "function", + peg$c109 = peg$literalExpectation("function", true), + peg$c110 = "pattern", + peg$c111 = peg$literalExpectation("pattern", true), + peg$c112 = function peg$c112(c) { + return { + type: 'class', + name: c + }; + }, + peg$currPos = 0, + peg$posDetailsCache = [{ + line: 1, + column: 1 + }], + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$resultsCache = {}, + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function peg$literalExpectation(text, ignoreCase) { + return { + type: "literal", + text: text, + ignoreCase: ignoreCase + }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { + type: "class", + parts: parts, + inverted: inverted, + ignoreCase: ignoreCase + }; + } + + function peg$anyExpectation() { + return { + type: "any" + }; + } + + function peg$endExpectation() { + return { + type: "end" + }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos], + p; + + if (details) { + return details; + } else { + p = pos - 1; + + while (!peg$posDetailsCache[p]) { + p--; + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + return details; + } + } + + function peg$computeLocation(startPos, endPos) { + var startPosDetails = peg$computePosDetails(startPos), + endPosDetails = peg$computePosDetails(endPos); + return { + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { + return; + } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location); + } + + function peg$parsestart() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 0, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + s2 = peg$parseselectors(); + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c0(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + s1 = peg$c1(); + } + + s0 = s1; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parse_() { + var s0, s1; + var key = peg$currPos * 30 + 1, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = []; + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + + while (s1 !== peg$FAILED) { + s0.push(s1); + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseidentifierName() { + var s0, s1, s2; + var key = peg$currPos * 30 + 2, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = []; + + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c5); + } + } + + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c5); + } + } + } + } else { + s1 = peg$FAILED; + } + + if (s1 !== peg$FAILED) { + s1 = peg$c6(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsebinaryOp() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 3, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 62) { + s2 = peg$c7; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c8); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c9(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 126) { + s2 = peg$c10; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c11); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c12(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 43) { + s2 = peg$c13; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c14); + } + } + + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + + if (s3 !== peg$FAILED) { + s1 = peg$c15(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c3); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s1 = peg$c16(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseselectors() { + var s0, s1, s2, s3, s4, s5, s6, s7; + var key = peg$currPos * 30 + 4, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseselector(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c18); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c18); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c19(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseselector() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 5, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parsesequence(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c20(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsesequence() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 6, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c22); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseatom(); + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseatom(); + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + s1 = peg$c23(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseatom() { + var s0; + var key = peg$currPos * 30 + 7, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$parsewildcard(); + + if (s0 === peg$FAILED) { + s0 = peg$parseidentifier(); + + if (s0 === peg$FAILED) { + s0 = peg$parseattr(); + + if (s0 === peg$FAILED) { + s0 = peg$parsefield(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenegation(); + + if (s0 === peg$FAILED) { + s0 = peg$parsematches(); + + if (s0 === peg$FAILED) { + s0 = peg$parsehas(); + + if (s0 === peg$FAILED) { + s0 = peg$parsefirstChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parselastChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenthChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parsenthLastChild(); + + if (s0 === peg$FAILED) { + s0 = peg$parseclass(); + } + } + } + } + } + } + } + } + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsewildcard() { + var s0, s1; + var key = peg$currPos * 30 + 8, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 42) { + s1 = peg$c24; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c25); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c26(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseidentifier() { + var s0, s1, s2; + var key = peg$currPos * 30 + 9, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 35) { + s1 = peg$c27; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c28); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + + if (s2 !== peg$FAILED) { + s1 = peg$c29(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattr() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 10, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c30; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c31); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrValue(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c32; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c33); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c34(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrOps() { + var s0, s1, s2; + var key = peg$currPos * 30 + 11, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (peg$c35.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c36); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c38); + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + if (peg$c40.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + + { + peg$fail(peg$c41); + } + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrEqOps() { + var s0, s1, s2; + var key = peg$currPos * 30 + 12, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c22); + } + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c38); + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrName() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 13, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c44(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseattrValue() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 14, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrEqOps(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsetype(); + + if (s5 === peg$FAILED) { + s5 = peg$parseregex(); + } + + if (s5 !== peg$FAILED) { + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseattrOps(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + s5 = peg$parsestring(); + + if (s5 === peg$FAILED) { + s5 = peg$parsenumber(); + + if (s5 === peg$FAILED) { + s5 = peg$parsepath(); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + + if (s1 !== peg$FAILED) { + s1 = peg$c46(s1); + } + + s0 = s1; + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsestring() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 15, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c47; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c48); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c50); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c50); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c47; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c48); + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + if (s0 === peg$FAILED) { + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 39) { + s1 = peg$c56; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c57); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c59); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c59); + } + } + + if (s3 === peg$FAILED) { + s3 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c52); + } + } + + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c53); + } + } + + if (s5 !== peg$FAILED) { + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 39) { + s3 = peg$c56; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c57); + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenumber() { + var s0, s1, s2, s3; + var key = peg$currPos * 30 + 16, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s3 = peg$c42; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + + if (s1 === peg$FAILED) { + s1 = null; + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + s1 = peg$c62(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsepath() { + var s0, s1; + var key = peg$currPos * 30 + 17, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + + if (s1 !== peg$FAILED) { + s1 = peg$c63(s1); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsetype() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 18, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c64) { + s1 = peg$c64; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c65); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c67); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c67); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c70(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseflags() { + var s0, s1; + var key = peg$currPos * 30 + 19, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = []; + + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c72); + } + } + + if (s1 !== peg$FAILED) { + while (s1 !== peg$FAILED) { + s0.push(s1); + + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c72); + } + } + } + } else { + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseregex() { + var s0, s1, s2, s3, s4; + var key = peg$currPos * 30 + 20, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 47) { + s1 = peg$c73; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c74); + } + } + + if (s1 !== peg$FAILED) { + s2 = []; + + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c76); + } + } + + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c76); + } + } + } + } else { + s2 = peg$FAILED; + } + + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 47) { + s3 = peg$c73; + peg$currPos++; + } else { + s3 = peg$FAILED; + + { + peg$fail(peg$c74); + } + } + + if (s3 !== peg$FAILED) { + s4 = peg$parseflags(); + + if (s4 === peg$FAILED) { + s4 = null; + } + + if (s4 !== peg$FAILED) { + s1 = peg$c77(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsefield() { + var s0, s1, s2, s3, s4, s5, s6; + var key = peg$currPos * 30 + 21, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s1 = peg$c42; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c43); + } + } + + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + + if (s3 !== peg$FAILED) { + s1 = peg$c78(s2, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenegation() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 22, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c79) { + s1 = peg$c79; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c80); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c81(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsematches() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 23, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 9) === peg$c82) { + s1 = peg$c82; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c83); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c84(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsehas() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 24, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 5) === peg$c85) { + s1 = peg$c85; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c86); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c87(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsefirstChild() { + var s0, s1; + var key = peg$currPos * 30 + 25, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 12) === peg$c88) { + s1 = peg$c88; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c89); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c90(); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parselastChild() { + var s0, s1; + var key = peg$currPos * 30 + 26, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 11) === peg$c91) { + s1 = peg$c91; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c92); + } + } + + if (s1 !== peg$FAILED) { + s1 = peg$c93(); + } + + s0 = s1; + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenthChild() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 27, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 11) === peg$c94) { + s1 = peg$c94; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c95); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c96(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parsenthLastChild() { + var s0, s1, s2, s3, s4, s5; + var key = peg$currPos * 30 + 28, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.substr(peg$currPos, 16) === peg$c97) { + s1 = peg$c97; + peg$currPos += 16; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c98); + } + } + + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + + if (s2 !== peg$FAILED) { + s3 = []; + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + + { + peg$fail(peg$c61); + } + } + } + } else { + s3 = peg$FAILED; + } + + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + + { + peg$fail(peg$c69); + } + } + + if (s5 !== peg$FAILED) { + s1 = peg$c99(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function peg$parseclass() { + var s0, s1, s2; + var key = peg$currPos * 30 + 29, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + return cached.result; + } + + s0 = peg$currPos; + + if (input.charCodeAt(peg$currPos) === 58) { + s1 = peg$c100; + peg$currPos++; + } else { + s1 = peg$FAILED; + + { + peg$fail(peg$c101); + } + } + + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 9).toLowerCase() === peg$c102) { + s2 = input.substr(peg$currPos, 9); + peg$currPos += 9; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c103); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 10).toLowerCase() === peg$c104) { + s2 = input.substr(peg$currPos, 10); + peg$currPos += 10; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c105); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 11).toLowerCase() === peg$c106) { + s2 = input.substr(peg$currPos, 11); + peg$currPos += 11; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c107); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 8).toLowerCase() === peg$c108) { + s2 = input.substr(peg$currPos, 8); + peg$currPos += 8; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c109); + } + } + + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c110) { + s2 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s2 = peg$FAILED; + + { + peg$fail(peg$c111); + } + } + } + } + } + } + + if (s2 !== peg$FAILED) { + s1 = peg$c112(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { + nextPos: peg$currPos, + result: s0 + }; + return s0; + } + + function nth(n) { + return { + type: 'nth-child', + index: { + type: 'literal', + value: n + } + }; + } + + function nthLast(n) { + return { + type: 'nth-last-child', + index: { + type: 'literal', + value: n + } + }; + } + + function strUnescape(s) { + return s.replace(/\\(.)/g, function (match, ch) { + switch (ch) { + case 'b': + return '\b'; + + case 'f': + return '\f'; + + case 'n': + return '\n'; + + case 'r': + return '\r'; + + case 't': + return '\t'; + + case 'v': + return '\v'; + + default: + return ch; + } + }); + } + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)); + } + } + + return { + SyntaxError: peg$SyntaxError, + parse: peg$parse + }; + }); + }); + + function _objectEntries(obj) { + var entries = []; + var keys = Object.keys(obj); + + for (var k = 0; k < keys.length; k++) entries.push([keys[k], obj[keys[k]]]); + + return entries; + } + /** + * @typedef {"LEFT_SIDE"|"RIGHT_SIDE"} Side + */ + + var LEFT_SIDE = 'LEFT_SIDE'; + var RIGHT_SIDE = 'RIGHT_SIDE'; + /** + * @external AST + * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html + */ + + /** + * One of the rules of `grammar.pegjs` + * @typedef {PlainObject} SelectorAST + * @see grammar.pegjs + */ + + /** + * The `sequence` production of `grammar.pegjs` + * @typedef {PlainObject} SelectorSequenceAST + */ + + /** + * Get the value of a property which may be multiple levels down + * in the object. + * @param {?PlainObject} obj + * @param {string} key + * @returns {undefined|boolean|string|number|external:AST} + */ + + function getPath(obj, key) { + var keys = key.split('.'); + + var _iterator = _createForOfIteratorHelper(keys), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _key = _step.value; + + if (obj == null) { + return obj; + } + + obj = obj[_key]; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return obj; + } + /** + * Determine whether `node` can be reached by following `path`, + * starting at `ancestor`. + * @param {?external:AST} node + * @param {?external:AST} ancestor + * @param {string[]} path + * @returns {boolean} + */ + + + function inPath(node, ancestor, path) { + if (path.length === 0) { + return node === ancestor; + } + + if (ancestor == null) { + return false; + } + + var field = ancestor[path[0]]; + var remainingPath = path.slice(1); + + if (Array.isArray(field)) { + var _iterator2 = _createForOfIteratorHelper(field), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var component = _step2.value; + + if (inPath(node, component, remainingPath)) { + return true; + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return false; + } else { + return inPath(node, field, remainingPath); + } + } + /** + * @callback TraverseOptionFallback + * @param {external:AST} node The given node. + * @returns {string[]} An array of visitor keys for the given node. + */ + + /** + * @typedef {object} ESQueryOptions + * @property { { [nodeType: string]: string[] } } [visitorKeys] By passing `visitorKeys` mapping, we can extend the properties of the nodes that traverse the node. + * @property {TraverseOptionFallback} [fallback] By passing `fallback` option, we can control the properties of traversing nodes when encountering unknown nodes. + */ + + /** + * Given a `node` and its ancestors, determine if `node` is matched + * by `selector`. + * @param {?external:AST} node + * @param {?SelectorAST} selector + * @param {external:AST[]} [ancestry=[]] + * @param {ESQueryOptions} [options] + * @throws {Error} Unknowns (operator, class name, selector type, or + * selector value type) + * @returns {boolean} + */ + + + function matches(node, selector, ancestry, options) { + if (!selector) { + return true; + } + + if (!node) { + return false; + } + + if (!ancestry) { + ancestry = []; + } + + switch (selector.type) { + case 'wildcard': + return true; + + case 'identifier': + return selector.value.toLowerCase() === node.type.toLowerCase(); + + case 'field': + { + var path = selector.name.split('.'); + var ancestor = ancestry[path.length - 1]; + return inPath(node, ancestor, path); + } + + case 'matches': + var _iterator3 = _createForOfIteratorHelper(selector.selectors), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var sel = _step3.value; + + if (matches(node, sel, ancestry, options)) { + return true; + } + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + + return false; + + case 'compound': + var _iterator4 = _createForOfIteratorHelper(selector.selectors), + _step4; + + try { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var _sel = _step4.value; + + if (!matches(node, _sel, ancestry, options)) { + return false; + } + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); + } + + return true; + + case 'not': + var _iterator5 = _createForOfIteratorHelper(selector.selectors), + _step5; + + try { + for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { + var _sel2 = _step5.value; + + if (matches(node, _sel2, ancestry, options)) { + return false; + } + } + } catch (err) { + _iterator5.e(err); + } finally { + _iterator5.f(); + } + + return true; + + case 'has': + { + var _ret = function () { + var collector = []; + + var _iterator6 = _createForOfIteratorHelper(selector.selectors), + _step6; + + try { + var _loop = function _loop() { + var sel = _step6.value; + var a = []; + estraverse.traverse(node, { + enter: function enter(node, parent) { + if (parent != null) { + a.unshift(parent); + } + + if (matches(node, sel, a, options)) { + collector.push(node); + } + }, + leave: function leave() { + a.shift(); + }, + keys: options && options.visitorKeys, + fallback: options && options.fallback || 'iteration' + }); + }; + + for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { + _loop(); + } + } catch (err) { + _iterator6.e(err); + } finally { + _iterator6.f(); + } + + return { + v: collector.length !== 0 + }; + }(); + + if (_typeof(_ret) === "object") return _ret.v; + } + + case 'child': + if (matches(node, selector.right, ancestry, options)) { + return matches(ancestry[0], selector.left, ancestry.slice(1), options); + } + + return false; + + case 'descendant': + if (matches(node, selector.right, ancestry, options)) { + for (var i = 0, l = ancestry.length; i < l; ++i) { + if (matches(ancestry[i], selector.left, ancestry.slice(i + 1), options)) { + return true; + } + } + } + + return false; + + case 'attribute': + { + var p = getPath(node, selector.name); + + switch (selector.operator) { + case void 0: + return p != null; + + case '=': + switch (selector.value.type) { + case 'regexp': + return typeof p === 'string' && selector.value.value.test(p); + + case 'literal': + return "".concat(selector.value.value) === "".concat(p); + + case 'type': + return selector.value.value === _typeof(p); + } + + throw new Error("Unknown selector value type: ".concat(selector.value.type)); + + case '!=': + switch (selector.value.type) { + case 'regexp': + return !selector.value.value.test(p); + + case 'literal': + return "".concat(selector.value.value) !== "".concat(p); + + case 'type': + return selector.value.value !== _typeof(p); + } + + throw new Error("Unknown selector value type: ".concat(selector.value.type)); + + case '<=': + return p <= selector.value.value; + + case '<': + return p < selector.value.value; + + case '>': + return p > selector.value.value; + + case '>=': + return p >= selector.value.value; + } + + throw new Error("Unknown operator: ".concat(selector.operator)); + } + + case 'sibling': + return matches(node, selector.right, ancestry, options) && sibling(node, selector.left, ancestry, LEFT_SIDE, options) || selector.left.subject && matches(node, selector.left, ancestry, options) && sibling(node, selector.right, ancestry, RIGHT_SIDE, options); + + case 'adjacent': + return matches(node, selector.right, ancestry, options) && adjacent(node, selector.left, ancestry, LEFT_SIDE, options) || selector.right.subject && matches(node, selector.left, ancestry, options) && adjacent(node, selector.right, ancestry, RIGHT_SIDE, options); + + case 'nth-child': + return matches(node, selector.right, ancestry, options) && nthChild(node, ancestry, function () { + return selector.index.value - 1; + }, options); + + case 'nth-last-child': + return matches(node, selector.right, ancestry, options) && nthChild(node, ancestry, function (length) { + return length - selector.index.value; + }, options); + + case 'class': + switch (selector.name.toLowerCase()) { + case 'statement': + if (node.type.slice(-9) === 'Statement') return true; + // fallthrough: interface Declaration <: Statement { } + + case 'declaration': + return node.type.slice(-11) === 'Declaration'; + + case 'pattern': + if (node.type.slice(-7) === 'Pattern') return true; + // fallthrough: interface Expression <: Node, Pattern { } + + case 'expression': + return node.type.slice(-10) === 'Expression' || node.type.slice(-7) === 'Literal' || node.type === 'Identifier' && (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty') || node.type === 'MetaProperty'; + + case 'function': + return node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression'; + } + + throw new Error("Unknown class name: ".concat(selector.name)); + } + + throw new Error("Unknown selector type: ".concat(selector.type)); + } + /** + * Get visitor keys of a given node. + * @param {external:AST} node The AST node to get keys. + * @param {ESQueryOptions|undefined} options + * @returns {string[]} Visitor keys of the node. + */ + + + function getVisitorKeys(node, options) { + var nodeType = node.type; + + if (options && options.visitorKeys && options.visitorKeys[nodeType]) { + return options.visitorKeys[nodeType]; + } + + if (estraverse.VisitorKeys[nodeType]) { + return estraverse.VisitorKeys[nodeType]; + } + + if (options && typeof options.fallback === 'function') { + return options.fallback(node); + } // 'iteration' fallback + + + return Object.keys(node).filter(function (key) { + return key !== 'type'; + }); + } + /** + * Check whether the given value is an ASTNode or not. + * @param {any} node The value to check. + * @returns {boolean} `true` if the value is an ASTNode. + */ + + + function isNode(node) { + return node !== null && _typeof(node) === 'object' && typeof node.type === 'string'; + } + /** + * Determines if the given node has a sibling that matches the + * given selector. + * @param {external:AST} node + * @param {SelectorSequenceAST} selector + * @param {external:AST[]} ancestry + * @param {Side} side + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + + function sibling(node, selector, ancestry, side, options) { + var _ancestry = _slicedToArray(ancestry, 1), + parent = _ancestry[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator7 = _createForOfIteratorHelper(keys), + _step7; + + try { + for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { + var key = _step7.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var startIndex = listProp.indexOf(node); + + if (startIndex < 0) { + continue; + } + + var lowerBound = void 0, + upperBound = void 0; + + if (side === LEFT_SIDE) { + lowerBound = 0; + upperBound = startIndex; + } else { + lowerBound = startIndex + 1; + upperBound = listProp.length; + } + + for (var k = lowerBound; k < upperBound; ++k) { + if (isNode(listProp[k]) && matches(listProp[k], selector, ancestry, options)) { + return true; + } + } + } + } + } catch (err) { + _iterator7.e(err); + } finally { + _iterator7.f(); + } + + return false; + } + /** + * Determines if the given node has an adjacent sibling that matches + * the given selector. + * @param {external:AST} node + * @param {SelectorSequenceAST} selector + * @param {external:AST[]} ancestry + * @param {Side} side + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + + function adjacent(node, selector, ancestry, side, options) { + var _ancestry2 = _slicedToArray(ancestry, 1), + parent = _ancestry2[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator8 = _createForOfIteratorHelper(keys), + _step8; + + try { + for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { + var key = _step8.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var idx = listProp.indexOf(node); + + if (idx < 0) { + continue; + } + + if (side === LEFT_SIDE && idx > 0 && isNode(listProp[idx - 1]) && matches(listProp[idx - 1], selector, ancestry, options)) { + return true; + } + + if (side === RIGHT_SIDE && idx < listProp.length - 1 && isNode(listProp[idx + 1]) && matches(listProp[idx + 1], selector, ancestry, options)) { + return true; + } + } + } + } catch (err) { + _iterator8.e(err); + } finally { + _iterator8.f(); + } + + return false; + } + /** + * @callback IndexFunction + * @param {Integer} len Containing list's length + * @returns {Integer} + */ + + /** + * Determines if the given node is the nth child, determined by + * `idxFn`, which is given the containing list's length. + * @param {external:AST} node + * @param {external:AST[]} ancestry + * @param {IndexFunction} idxFn + * @param {ESQueryOptions|undefined} options + * @returns {boolean} + */ + + + function nthChild(node, ancestry, idxFn, options) { + var _ancestry3 = _slicedToArray(ancestry, 1), + parent = _ancestry3[0]; + + if (!parent) { + return false; + } + + var keys = getVisitorKeys(parent, options); + + var _iterator9 = _createForOfIteratorHelper(keys), + _step9; + + try { + for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { + var key = _step9.value; + var listProp = parent[key]; + + if (Array.isArray(listProp)) { + var idx = listProp.indexOf(node); + + if (idx >= 0 && idx === idxFn(listProp.length)) { + return true; + } + } + } + } catch (err) { + _iterator9.e(err); + } finally { + _iterator9.f(); + } + + return false; + } + /** + * For each selector node marked as a subject, find the portion of the + * selector that the subject must match. + * @param {SelectorAST} selector + * @param {SelectorAST} [ancestor] Defaults to `selector` + * @returns {SelectorAST[]} + */ + + + function subjects(selector, ancestor) { + if (selector == null || _typeof(selector) != 'object') { + return []; + } + + if (ancestor == null) { + ancestor = selector; + } + + var results = selector.subject ? [ancestor] : []; + + for (var _i = 0, _Object$entries = _objectEntries(selector); _i < _Object$entries.length; _i++) { + var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), + p = _Object$entries$_i[0], + sel = _Object$entries$_i[1]; + + results.push.apply(results, _toConsumableArray(subjects(sel, p === 'left' ? sel : ancestor))); + } + + return results; + } + /** + * @callback TraverseVisitor + * @param {?external:AST} node + * @param {?external:AST} parent + * @param {external:AST[]} ancestry + */ + + /** + * From a JS AST and a selector AST, collect all JS AST nodes that + * match the selector. + * @param {external:AST} ast + * @param {?SelectorAST} selector + * @param {TraverseVisitor} visitor + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + + function traverse(ast, selector, visitor, options) { + if (!selector) { + return; + } + + var ancestry = []; + var altSubjects = subjects(selector); + estraverse.traverse(ast, { + enter: function enter(node, parent) { + if (parent != null) { + ancestry.unshift(parent); + } + + if (matches(node, selector, ancestry, options)) { + if (altSubjects.length) { + for (var i = 0, l = altSubjects.length; i < l; ++i) { + if (matches(node, altSubjects[i], ancestry, options)) { + visitor(node, parent, ancestry); + } + + for (var k = 0, m = ancestry.length; k < m; ++k) { + var succeedingAncestry = ancestry.slice(k + 1); + + if (matches(ancestry[k], altSubjects[i], succeedingAncestry, options)) { + visitor(ancestry[k], parent, succeedingAncestry); + } + } + } + } else { + visitor(node, parent, ancestry); + } + } + }, + leave: function leave() { + ancestry.shift(); + }, + keys: options && options.visitorKeys, + fallback: options && options.fallback || 'iteration' + }); + } + /** + * From a JS AST and a selector AST, collect all JS AST nodes that + * match the selector. + * @param {external:AST} ast + * @param {?SelectorAST} selector + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + + function match(ast, selector, options) { + var results = []; + traverse(ast, selector, function (node) { + results.push(node); + }, options); + return results; + } + /** + * Parse a selector string and return its AST. + * @param {string} selector + * @returns {SelectorAST} + */ + + + function parse(selector) { + return parser.parse(selector); + } + /** + * Query the code AST using the selector string. + * @param {external:AST} ast + * @param {string} selector + * @param {ESQueryOptions} [options] + * @returns {external:AST[]} + */ + + + function query(ast, selector, options) { + return match(ast, parse(selector), options); + } + + query.parse = parse; + query.match = match; + query.traverse = traverse; + query.matches = matches; + query.query = query; + + return query; + +}))); diff --git a/node_modules/esquery/dist/esquery.lite.min.js b/node_modules/esquery/dist/esquery.lite.min.js new file mode 100644 index 0000000..70d7b76 --- /dev/null +++ b/node_modules/esquery/dist/esquery.lite.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("estraverse")):"function"==typeof define&&define.amd?define(["estraverse"],e):(t=t||self).esquery=e(t.estraverse)}(this,(function(t){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var u,s=t[Symbol.iterator]();!(n=(u=s.next()).done)&&(r.push(u.value),!e||r.length!==e);n=!0);}catch(t){a=!0,o=t}finally{try{n||null==s.return||s.return()}finally{if(a)throw o}}return r}(t,e)||a(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t){return function(t){if(Array.isArray(t))return o(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||a(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){if(t){if("string"==typeof t)return o(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,s=!0,c=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){c=!0,u=t},f:function(){try{s||null==r.return||r.return()}finally{if(c)throw u}}}}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var s=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t){t.exports&&(t.exports=function(){function t(e,r,n,a){this.message=e,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}return function(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}(t,Error),t.buildMessage=function(t,e){var r={literal:function(t){return'"'+a(t.text)+'"'},class:function(t){var e,r="";for(e=0;e0){for(e=1,n=1;e<~+.]/,h=dt([" ","[","]",",","(",")",":","#","!","=",">","<","~","+","."],!0,!1),p=vt(">",!1),y=vt("~",!1),v=vt("+",!1),d=vt(",",!1),A=vt("!",!1),x=vt("*",!1),g=vt("#",!1),b=vt("[",!1),m=vt("]",!1),P=/^[>","<","!"],!1,!1),C=vt("=",!1),j=function(t){return(t||"")+"="},S=/^[><]/,E=dt([">","<"],!1,!1),I=vt(".",!1),k=function(t,e,r){return{type:"attribute",name:t,operator:e,value:r}},F=vt('"',!1),T=/^[^\\"]/,L=dt(["\\",'"'],!0,!1),O=vt("\\",!1),D={type:"any"},R=function(t,e){return t+e},K=function(t){return{type:"literal",value:(e=t.join(""),e.replace(/\\(.)/g,(function(t,e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";default:return e}})))};var e},U=vt("'",!1),_=/^[^\\']/,M=dt(["\\","'"],!0,!1),q=/^[0-9]/,G=dt([["0","9"]],!1,!1),H=vt("type(",!1),V=/^[^ )]/,$=dt([" ",")"],!0,!1),z=vt(")",!1),B=/^[imsu]/,J=dt(["i","m","s","u"],!1,!1),N=vt("/",!1),Q=/^[^\/]/,W=dt(["/"],!0,!1),X=vt(":not(",!1),Y=vt(":matches(",!1),Z=vt(":has(",!1),tt=vt(":first-child",!1),et=vt(":last-child",!1),rt=vt(":nth-child(",!1),nt=vt(":nth-last-child(",!1),at=vt(":",!1),ot=vt("statement",!0),ut=vt("expression",!0),st=vt("declaration",!0),ct=vt("function",!0),it=vt("pattern",!0),lt=0,ft=[{line:1,column:1}],ht=0,pt=[],yt={};if("startRule"in r){if(!(r.startRule in c))throw new Error("Can't start parsing from rule \""+r.startRule+'".');i=c[r.startRule]}function vt(t,e){return{type:"literal",text:t,ignoreCase:e}}function dt(t,e,r){return{type:"class",parts:t,inverted:e,ignoreCase:r}}function At(t){var r,n=ft[t];if(n)return n;for(r=t-1;!ft[r];)r--;for(n={line:(n=ft[r]).line,column:n.column};rht&&(ht=lt,pt=[]),pt.push(t))}function bt(){var t,e,r,n,a=30*lt+0,o=yt[a];return o?(lt=o.nextPos,o.result):(t=lt,(e=mt())!==s&&(r=Ct())!==s&&mt()!==s?t=e=1===(n=r).length?n[0]:{type:"matches",selectors:n}:(lt=t,t=s),t===s&&(t=lt,(e=mt())!==s&&(e=void 0),t=e),yt[a]={nextPos:lt,result:t},t)}function mt(){var t,r,n=30*lt+1,a=yt[n];if(a)return lt=a.nextPos,a.result;for(t=[],32===e.charCodeAt(lt)?(r=" ",lt++):(r=s,gt(l));r!==s;)t.push(r),32===e.charCodeAt(lt)?(r=" ",lt++):(r=s,gt(l));return yt[n]={nextPos:lt,result:t},t}function Pt(){var t,r,n,a=30*lt+2,o=yt[a];if(o)return lt=o.nextPos,o.result;if(r=[],f.test(e.charAt(lt))?(n=e.charAt(lt),lt++):(n=s,gt(h)),n!==s)for(;n!==s;)r.push(n),f.test(e.charAt(lt))?(n=e.charAt(lt),lt++):(n=s,gt(h));else r=s;return r!==s&&(r=r.join("")),t=r,yt[a]={nextPos:lt,result:t},t}function wt(){var t,r,n,a=30*lt+3,o=yt[a];return o?(lt=o.nextPos,o.result):(t=lt,(r=mt())!==s?(62===e.charCodeAt(lt)?(n=">",lt++):(n=s,gt(p)),n!==s&&mt()!==s?t=r="child":(lt=t,t=s)):(lt=t,t=s),t===s&&(t=lt,(r=mt())!==s?(126===e.charCodeAt(lt)?(n="~",lt++):(n=s,gt(y)),n!==s&&mt()!==s?t=r="sibling":(lt=t,t=s)):(lt=t,t=s),t===s&&(t=lt,(r=mt())!==s?(43===e.charCodeAt(lt)?(n="+",lt++):(n=s,gt(v)),n!==s&&mt()!==s?t=r="adjacent":(lt=t,t=s)):(lt=t,t=s),t===s&&(t=lt,32===e.charCodeAt(lt)?(r=" ",lt++):(r=s,gt(l)),r!==s&&(n=mt())!==s?t=r="descendant":(lt=t,t=s)))),yt[a]={nextPos:lt,result:t},t)}function Ct(){var t,r,n,a,o,u,c,i,l=30*lt+4,f=yt[l];if(f)return lt=f.nextPos,f.result;if(t=lt,(r=jt())!==s){for(n=[],a=lt,(o=mt())!==s?(44===e.charCodeAt(lt)?(u=",",lt++):(u=s,gt(d)),u!==s&&(c=mt())!==s&&(i=jt())!==s?a=o=[o,u,c,i]:(lt=a,a=s)):(lt=a,a=s);a!==s;)n.push(a),a=lt,(o=mt())!==s?(44===e.charCodeAt(lt)?(u=",",lt++):(u=s,gt(d)),u!==s&&(c=mt())!==s&&(i=jt())!==s?a=o=[o,u,c,i]:(lt=a,a=s)):(lt=a,a=s);n!==s?t=r=[r].concat(n.map((function(t){return t[3]}))):(lt=t,t=s)}else lt=t,t=s;return yt[l]={nextPos:lt,result:t},t}function jt(){var t,e,r,n,a,o,u,c=30*lt+5,i=yt[c];if(i)return lt=i.nextPos,i.result;if(t=lt,(e=St())!==s){for(r=[],n=lt,(a=wt())!==s&&(o=St())!==s?n=a=[a,o]:(lt=n,n=s);n!==s;)r.push(n),n=lt,(a=wt())!==s&&(o=St())!==s?n=a=[a,o]:(lt=n,n=s);r!==s?(u=e,t=e=r.reduce((function(t,e){return{type:e[0],left:t,right:e[1]}}),u)):(lt=t,t=s)}else lt=t,t=s;return yt[c]={nextPos:lt,result:t},t}function St(){var t,r,n,a,o,u,c,i=30*lt+6,l=yt[i];if(l)return lt=l.nextPos,l.result;if(t=lt,33===e.charCodeAt(lt)?(r="!",lt++):(r=s,gt(A)),r===s&&(r=null),r!==s){if(n=[],(a=Et())!==s)for(;a!==s;)n.push(a),a=Et();else n=s;n!==s?(o=r,c=1===(u=n).length?u[0]:{type:"compound",selectors:u},o&&(c.subject=!0),t=r=c):(lt=t,t=s)}else lt=t,t=s;return yt[i]={nextPos:lt,result:t},t}function Et(){var t,r=30*lt+7,n=yt[r];return n?(lt=n.nextPos,n.result):((t=function(){var t,r,n=30*lt+8,a=yt[n];return a?(lt=a.nextPos,a.result):(42===e.charCodeAt(lt)?(r="*",lt++):(r=s,gt(x)),r!==s&&(r={type:"wildcard",value:r}),t=r,yt[n]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n,a=30*lt+9,o=yt[a];return o?(lt=o.nextPos,o.result):(t=lt,35===e.charCodeAt(lt)?(r="#",lt++):(r=s,gt(g)),r===s&&(r=null),r!==s&&(n=Pt())!==s?t=r={type:"identifier",value:n}:(lt=t,t=s),yt[a]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n,a,o=30*lt+10,u=yt[o];return u?(lt=u.nextPos,u.result):(t=lt,91===e.charCodeAt(lt)?(r="[",lt++):(r=s,gt(b)),r!==s&&mt()!==s&&(n=function(){var t,r,n,a,o=30*lt+14,u=yt[o];return u?(lt=u.nextPos,u.result):(t=lt,(r=It())!==s&&mt()!==s&&(n=function(){var t,r,n,a=30*lt+12,o=yt[a];return o?(lt=o.nextPos,o.result):(t=lt,33===e.charCodeAt(lt)?(r="!",lt++):(r=s,gt(A)),r===s&&(r=null),r!==s?(61===e.charCodeAt(lt)?(n="=",lt++):(n=s,gt(C)),n!==s?(r=j(r),t=r):(lt=t,t=s)):(lt=t,t=s),yt[a]={nextPos:lt,result:t},t)}())!==s&&mt()!==s?((a=function(){var t,r,n,a,o,u=30*lt+18,c=yt[u];if(c)return lt=c.nextPos,c.result;if(t=lt,"type("===e.substr(lt,5)?(r="type(",lt+=5):(r=s,gt(H)),r!==s)if(mt()!==s){if(n=[],V.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt($)),a!==s)for(;a!==s;)n.push(a),V.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt($));else n=s;n!==s&&(a=mt())!==s?(41===e.charCodeAt(lt)?(o=")",lt++):(o=s,gt(z)),o!==s?(r={type:"type",value:n.join("")},t=r):(lt=t,t=s)):(lt=t,t=s)}else lt=t,t=s;else lt=t,t=s;return yt[u]={nextPos:lt,result:t},t}())===s&&(a=function(){var t,r,n,a,o,u,c=30*lt+20,i=yt[c];if(i)return lt=i.nextPos,i.result;if(t=lt,47===e.charCodeAt(lt)?(r="/",lt++):(r=s,gt(N)),r!==s){if(n=[],Q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(W)),a!==s)for(;a!==s;)n.push(a),Q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(W));else n=s;n!==s?(47===e.charCodeAt(lt)?(a="/",lt++):(a=s,gt(N)),a!==s?((o=function(){var t,r,n=30*lt+19,a=yt[n];if(a)return lt=a.nextPos,a.result;if(t=[],B.test(e.charAt(lt))?(r=e.charAt(lt),lt++):(r=s,gt(J)),r!==s)for(;r!==s;)t.push(r),B.test(e.charAt(lt))?(r=e.charAt(lt),lt++):(r=s,gt(J));else t=s;return yt[n]={nextPos:lt,result:t},t}())===s&&(o=null),o!==s?(u=o,r={type:"regexp",value:new RegExp(n.join(""),u?u.join(""):"")},t=r):(lt=t,t=s)):(lt=t,t=s)):(lt=t,t=s)}else lt=t,t=s;return yt[c]={nextPos:lt,result:t},t}()),a!==s?(r=k(r,n,a),t=r):(lt=t,t=s)):(lt=t,t=s),t===s&&(t=lt,(r=It())!==s&&mt()!==s&&(n=function(){var t,r,n,a=30*lt+11,o=yt[a];return o?(lt=o.nextPos,o.result):(t=lt,P.test(e.charAt(lt))?(r=e.charAt(lt),lt++):(r=s,gt(w)),r===s&&(r=null),r!==s?(61===e.charCodeAt(lt)?(n="=",lt++):(n=s,gt(C)),n!==s?(r=j(r),t=r):(lt=t,t=s)):(lt=t,t=s),t===s&&(S.test(e.charAt(lt))?(t=e.charAt(lt),lt++):(t=s,gt(E))),yt[a]={nextPos:lt,result:t},t)}())!==s&&mt()!==s?((a=function(){var t,r,n,a,o,u,c=30*lt+15,i=yt[c];if(i)return lt=i.nextPos,i.result;if(t=lt,34===e.charCodeAt(lt)?(r='"',lt++):(r=s,gt(F)),r!==s){for(n=[],T.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(L)),a===s&&(a=lt,92===e.charCodeAt(lt)?(o="\\",lt++):(o=s,gt(O)),o!==s?(e.length>lt?(u=e.charAt(lt),lt++):(u=s,gt(D)),u!==s?(o=R(o,u),a=o):(lt=a,a=s)):(lt=a,a=s));a!==s;)n.push(a),T.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(L)),a===s&&(a=lt,92===e.charCodeAt(lt)?(o="\\",lt++):(o=s,gt(O)),o!==s?(e.length>lt?(u=e.charAt(lt),lt++):(u=s,gt(D)),u!==s?(o=R(o,u),a=o):(lt=a,a=s)):(lt=a,a=s));n!==s?(34===e.charCodeAt(lt)?(a='"',lt++):(a=s,gt(F)),a!==s?(r=K(n),t=r):(lt=t,t=s)):(lt=t,t=s)}else lt=t,t=s;if(t===s)if(t=lt,39===e.charCodeAt(lt)?(r="'",lt++):(r=s,gt(U)),r!==s){for(n=[],_.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(M)),a===s&&(a=lt,92===e.charCodeAt(lt)?(o="\\",lt++):(o=s,gt(O)),o!==s?(e.length>lt?(u=e.charAt(lt),lt++):(u=s,gt(D)),u!==s?(o=R(o,u),a=o):(lt=a,a=s)):(lt=a,a=s));a!==s;)n.push(a),_.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(M)),a===s&&(a=lt,92===e.charCodeAt(lt)?(o="\\",lt++):(o=s,gt(O)),o!==s?(e.length>lt?(u=e.charAt(lt),lt++):(u=s,gt(D)),u!==s?(o=R(o,u),a=o):(lt=a,a=s)):(lt=a,a=s));n!==s?(39===e.charCodeAt(lt)?(a="'",lt++):(a=s,gt(U)),a!==s?(r=K(n),t=r):(lt=t,t=s)):(lt=t,t=s)}else lt=t,t=s;return yt[c]={nextPos:lt,result:t},t}())===s&&(a=function(){var t,r,n,a,o,u,c,i=30*lt+16,l=yt[i];if(l)return lt=l.nextPos,l.result;for(t=lt,r=lt,n=[],q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G));a!==s;)n.push(a),q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G));if(n!==s?(46===e.charCodeAt(lt)?(a=".",lt++):(a=s,gt(I)),a!==s?r=n=[n,a]:(lt=r,r=s)):(lt=r,r=s),r===s&&(r=null),r!==s){if(n=[],q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G)),a!==s)for(;a!==s;)n.push(a),q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G));else n=s;n!==s?(u=n,c=(o=r)?[].concat.apply([],o).join(""):"",r={type:"literal",value:parseFloat(c+u.join(""))},t=r):(lt=t,t=s)}else lt=t,t=s;return yt[i]={nextPos:lt,result:t},t}())===s&&(a=function(){var t,e,r=30*lt+17,n=yt[r];return n?(lt=n.nextPos,n.result):((e=Pt())!==s&&(e={type:"literal",value:e}),t=e,yt[r]={nextPos:lt,result:t},t)}()),a!==s?(r=k(r,n,a),t=r):(lt=t,t=s)):(lt=t,t=s),t===s&&(t=lt,(r=It())!==s&&(r={type:"attribute",name:r}),t=r)),yt[o]={nextPos:lt,result:t},t)}())!==s&&mt()!==s?(93===e.charCodeAt(lt)?(a="]",lt++):(a=s,gt(m)),a!==s?t=r=n:(lt=t,t=s)):(lt=t,t=s),yt[o]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n,a,o,u,c,i,l=30*lt+21,f=yt[l];if(f)return lt=f.nextPos,f.result;if(t=lt,46===e.charCodeAt(lt)?(r=".",lt++):(r=s,gt(I)),r!==s)if((n=Pt())!==s){for(a=[],o=lt,46===e.charCodeAt(lt)?(u=".",lt++):(u=s,gt(I)),u!==s&&(c=Pt())!==s?o=u=[u,c]:(lt=o,o=s);o!==s;)a.push(o),o=lt,46===e.charCodeAt(lt)?(u=".",lt++):(u=s,gt(I)),u!==s&&(c=Pt())!==s?o=u=[u,c]:(lt=o,o=s);a!==s?(i=n,r={type:"field",name:a.reduce((function(t,e){return t+e[0]+e[1]}),i)},t=r):(lt=t,t=s)}else lt=t,t=s;else lt=t,t=s;return yt[l]={nextPos:lt,result:t},t}())===s&&(t=function(){var t,r,n,a,o=30*lt+22,u=yt[o];return u?(lt=u.nextPos,u.result):(t=lt,":not("===e.substr(lt,5)?(r=":not(",lt+=5):(r=s,gt(X)),r!==s&&mt()!==s&&(n=Ct())!==s&&mt()!==s?(41===e.charCodeAt(lt)?(a=")",lt++):(a=s,gt(z)),a!==s?t=r={type:"not",selectors:n}:(lt=t,t=s)):(lt=t,t=s),yt[o]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n,a,o=30*lt+23,u=yt[o];return u?(lt=u.nextPos,u.result):(t=lt,":matches("===e.substr(lt,9)?(r=":matches(",lt+=9):(r=s,gt(Y)),r!==s&&mt()!==s&&(n=Ct())!==s&&mt()!==s?(41===e.charCodeAt(lt)?(a=")",lt++):(a=s,gt(z)),a!==s?t=r={type:"matches",selectors:n}:(lt=t,t=s)):(lt=t,t=s),yt[o]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n,a,o=30*lt+24,u=yt[o];return u?(lt=u.nextPos,u.result):(t=lt,":has("===e.substr(lt,5)?(r=":has(",lt+=5):(r=s,gt(Z)),r!==s&&mt()!==s&&(n=Ct())!==s&&mt()!==s?(41===e.charCodeAt(lt)?(a=")",lt++):(a=s,gt(z)),a!==s?t=r={type:"has",selectors:n}:(lt=t,t=s)):(lt=t,t=s),yt[o]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n=30*lt+25,a=yt[n];return a?(lt=a.nextPos,a.result):(":first-child"===e.substr(lt,12)?(r=":first-child",lt+=12):(r=s,gt(tt)),r!==s&&(r=kt(1)),t=r,yt[n]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n=30*lt+26,a=yt[n];return a?(lt=a.nextPos,a.result):(":last-child"===e.substr(lt,11)?(r=":last-child",lt+=11):(r=s,gt(et)),r!==s&&(r=Ft(1)),t=r,yt[n]={nextPos:lt,result:t},t)}())===s&&(t=function(){var t,r,n,a,o,u=30*lt+27,c=yt[u];if(c)return lt=c.nextPos,c.result;if(t=lt,":nth-child("===e.substr(lt,11)?(r=":nth-child(",lt+=11):(r=s,gt(rt)),r!==s)if(mt()!==s){if(n=[],q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G)),a!==s)for(;a!==s;)n.push(a),q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G));else n=s;n!==s&&(a=mt())!==s?(41===e.charCodeAt(lt)?(o=")",lt++):(o=s,gt(z)),o!==s?(r=kt(parseInt(n.join(""),10)),t=r):(lt=t,t=s)):(lt=t,t=s)}else lt=t,t=s;else lt=t,t=s;return yt[u]={nextPos:lt,result:t},t}())===s&&(t=function(){var t,r,n,a,o,u=30*lt+28,c=yt[u];if(c)return lt=c.nextPos,c.result;if(t=lt,":nth-last-child("===e.substr(lt,16)?(r=":nth-last-child(",lt+=16):(r=s,gt(nt)),r!==s)if(mt()!==s){if(n=[],q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G)),a!==s)for(;a!==s;)n.push(a),q.test(e.charAt(lt))?(a=e.charAt(lt),lt++):(a=s,gt(G));else n=s;n!==s&&(a=mt())!==s?(41===e.charCodeAt(lt)?(o=")",lt++):(o=s,gt(z)),o!==s?(r=Ft(parseInt(n.join(""),10)),t=r):(lt=t,t=s)):(lt=t,t=s)}else lt=t,t=s;else lt=t,t=s;return yt[u]={nextPos:lt,result:t},t}())===s&&(t=function(){var t,r,n,a=30*lt+29,o=yt[a];return o?(lt=o.nextPos,o.result):(t=lt,58===e.charCodeAt(lt)?(r=":",lt++):(r=s,gt(at)),r!==s?("statement"===e.substr(lt,9).toLowerCase()?(n=e.substr(lt,9),lt+=9):(n=s,gt(ot)),n===s&&("expression"===e.substr(lt,10).toLowerCase()?(n=e.substr(lt,10),lt+=10):(n=s,gt(ut)),n===s&&("declaration"===e.substr(lt,11).toLowerCase()?(n=e.substr(lt,11),lt+=11):(n=s,gt(st)),n===s&&("function"===e.substr(lt,8).toLowerCase()?(n=e.substr(lt,8),lt+=8):(n=s,gt(ct)),n===s&&("pattern"===e.substr(lt,7).toLowerCase()?(n=e.substr(lt,7),lt+=7):(n=s,gt(it)))))),n!==s?t=r={type:"class",name:n}:(lt=t,t=s)):(lt=t,t=s),yt[a]={nextPos:lt,result:t},t)}()),yt[r]={nextPos:lt,result:t},t)}function It(){var t,r,n,a,o,u,c,i,l=30*lt+13,f=yt[l];if(f)return lt=f.nextPos,f.result;if(t=lt,(r=Pt())!==s){for(n=[],a=lt,46===e.charCodeAt(lt)?(o=".",lt++):(o=s,gt(I)),o!==s&&(u=Pt())!==s?a=o=[o,u]:(lt=a,a=s);a!==s;)n.push(a),a=lt,46===e.charCodeAt(lt)?(o=".",lt++):(o=s,gt(I)),o!==s&&(u=Pt())!==s?a=o=[o,u]:(lt=a,a=s);n!==s?(c=r,i=n,t=r=[].concat.apply([c],i).join("")):(lt=t,t=s)}else lt=t,t=s;return yt[l]={nextPos:lt,result:t},t}function kt(t){return{type:"nth-child",index:{type:"literal",value:t}}}function Ft(t){return{type:"nth-last-child",index:{type:"literal",value:t}}}if((n=i())!==s&<===e.length)return n;throw n!==s&<":return j>n.value.value;case">=":return j>=n.value.value}throw new Error("Unknown operator: ".concat(n.operator));case"sibling":return c(r,n.right,a,o)&&f(r,n.left,a,"LEFT_SIDE",o)||n.left.subject&&c(r,n.left,a,o)&&f(r,n.right,a,"RIGHT_SIDE",o);case"adjacent":return c(r,n.right,a,o)&&h(r,n.left,a,"LEFT_SIDE",o)||n.right.subject&&c(r,n.left,a,o)&&h(r,n.right,a,"RIGHT_SIDE",o);case"nth-child":return c(r,n.right,a,o)&&p(r,a,(function(){return n.index.value-1}),o);case"nth-last-child":return c(r,n.right,a,o)&&p(r,a,(function(t){return t-n.index.value}),o);case"class":switch(n.name.toLowerCase()){case"statement":if("Statement"===r.type.slice(-9))return!0;case"declaration":return"Declaration"===r.type.slice(-11);case"pattern":if("Pattern"===r.type.slice(-7))return!0;case"expression":return"Expression"===r.type.slice(-10)||"Literal"===r.type.slice(-7)||"Identifier"===r.type&&(0===a.length||"MetaProperty"!==a[0].type)||"MetaProperty"===r.type;case"function":return"FunctionDeclaration"===r.type||"FunctionExpression"===r.type||"ArrowFunctionExpression"===r.type}throw new Error("Unknown class name: ".concat(n.name))}throw new Error("Unknown selector type: ".concat(n.type))}function i(e,r){var n=e.type;return r&&r.visitorKeys&&r.visitorKeys[n]?r.visitorKeys[n]:t.VisitorKeys[n]?t.VisitorKeys[n]:r&&"function"==typeof r.fallback?r.fallback(e):Object.keys(e).filter((function(t){return"type"!==t}))}function l(t){return null!==t&&"object"===e(t)&&"string"==typeof t.type}function f(t,e,n,a,o){var s=r(n,1)[0];if(!s)return!1;var f,h=u(i(s,o));try{for(h.s();!(f=h.n()).done;){var p=s[f.value];if(Array.isArray(p)){var y=p.indexOf(t);if(y<0)continue;var v=void 0,d=void 0;"LEFT_SIDE"===a?(v=0,d=y):(v=y+1,d=p.length);for(var A=v;A0&&l(p[y-1])&&c(p[y-1],e,n,o))return!0;if("RIGHT_SIDE"===a&&y=0&&f===n(l.length))return!0}}}catch(t){c.e(t)}finally{c.f()}return!1}function y(t,a){if(null==t||"object"!=e(t))return[];null==a&&(a=t);for(var o=t.subject?[a]:[],u=0,s=function(t){for(var e=[],r=Object.keys(t),n=0;n 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n\n function describeFound(found) {\n return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n }\n\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n\n var peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = function(ss) {\n return ss.length === 1 ? ss[0] : { type: 'matches', selectors: ss };\n },\n peg$c1 = function() { return void 0; },\n peg$c2 = \" \",\n peg$c3 = peg$literalExpectation(\" \", false),\n peg$c4 = /^[^ [\\],():#!=><~+.]/,\n peg$c5 = peg$classExpectation([\" \", \"[\", \"]\", \",\", \"(\", \")\", \":\", \"#\", \"!\", \"=\", \">\", \"<\", \"~\", \"+\", \".\"], true, false),\n peg$c6 = function(i) { return i.join(''); },\n peg$c7 = \">\",\n peg$c8 = peg$literalExpectation(\">\", false),\n peg$c9 = function() { return 'child'; },\n peg$c10 = \"~\",\n peg$c11 = peg$literalExpectation(\"~\", false),\n peg$c12 = function() { return 'sibling'; },\n peg$c13 = \"+\",\n peg$c14 = peg$literalExpectation(\"+\", false),\n peg$c15 = function() { return 'adjacent'; },\n peg$c16 = function() { return 'descendant'; },\n peg$c17 = \",\",\n peg$c18 = peg$literalExpectation(\",\", false),\n peg$c19 = function(s, ss) {\n return [s].concat(ss.map(function (s) { return s[3]; }));\n },\n peg$c20 = function(a, ops) {\n return ops.reduce(function (memo, rhs) {\n return { type: rhs[0], left: memo, right: rhs[1] };\n }, a);\n },\n peg$c21 = \"!\",\n peg$c22 = peg$literalExpectation(\"!\", false),\n peg$c23 = function(subject, as) {\n const b = as.length === 1 ? as[0] : { type: 'compound', selectors: as };\n if(subject) b.subject = true;\n return b;\n },\n peg$c24 = \"*\",\n peg$c25 = peg$literalExpectation(\"*\", false),\n peg$c26 = function(a) { return { type: 'wildcard', value: a }; },\n peg$c27 = \"#\",\n peg$c28 = peg$literalExpectation(\"#\", false),\n peg$c29 = function(i) { return { type: 'identifier', value: i }; },\n peg$c30 = \"[\",\n peg$c31 = peg$literalExpectation(\"[\", false),\n peg$c32 = \"]\",\n peg$c33 = peg$literalExpectation(\"]\", false),\n peg$c34 = function(v) { return v; },\n peg$c35 = /^[>\", \"<\", \"!\"], false, false),\n peg$c37 = \"=\",\n peg$c38 = peg$literalExpectation(\"=\", false),\n peg$c39 = function(a) { return (a || '') + '='; },\n peg$c40 = /^[><]/,\n peg$c41 = peg$classExpectation([\">\", \"<\"], false, false),\n peg$c42 = \".\",\n peg$c43 = peg$literalExpectation(\".\", false),\n peg$c44 = function(a, as) {\n return [].concat.apply([a], as).join('');\n },\n peg$c45 = function(name, op, value) {\n return { type: 'attribute', name: name, operator: op, value: value };\n },\n peg$c46 = function(name) { return { type: 'attribute', name: name }; },\n peg$c47 = \"\\\"\",\n peg$c48 = peg$literalExpectation(\"\\\"\", false),\n peg$c49 = /^[^\\\\\"]/,\n peg$c50 = peg$classExpectation([\"\\\\\", \"\\\"\"], true, false),\n peg$c51 = \"\\\\\",\n peg$c52 = peg$literalExpectation(\"\\\\\", false),\n peg$c53 = peg$anyExpectation(),\n peg$c54 = function(a, b) { return a + b; },\n peg$c55 = function(d) {\n return { type: 'literal', value: strUnescape(d.join('')) };\n },\n peg$c56 = \"'\",\n peg$c57 = peg$literalExpectation(\"'\", false),\n peg$c58 = /^[^\\\\']/,\n peg$c59 = peg$classExpectation([\"\\\\\", \"'\"], true, false),\n peg$c60 = /^[0-9]/,\n peg$c61 = peg$classExpectation([[\"0\", \"9\"]], false, false),\n peg$c62 = function(a, b) {\n // Can use `a.flat().join('')` once supported\n const leadingDecimals = a ? [].concat.apply([], a).join('') : '';\n return { type: 'literal', value: parseFloat(leadingDecimals + b.join('')) };\n },\n peg$c63 = function(i) { return { type: 'literal', value: i }; },\n peg$c64 = \"type(\",\n peg$c65 = peg$literalExpectation(\"type(\", false),\n peg$c66 = /^[^ )]/,\n peg$c67 = peg$classExpectation([\" \", \")\"], true, false),\n peg$c68 = \")\",\n peg$c69 = peg$literalExpectation(\")\", false),\n peg$c70 = function(t) { return { type: 'type', value: t.join('') }; },\n peg$c71 = /^[imsu]/,\n peg$c72 = peg$classExpectation([\"i\", \"m\", \"s\", \"u\"], false, false),\n peg$c73 = \"/\",\n peg$c74 = peg$literalExpectation(\"/\", false),\n peg$c75 = /^[^\\/]/,\n peg$c76 = peg$classExpectation([\"/\"], true, false),\n peg$c77 = function(d, flgs) { return {\n type: 'regexp', value: new RegExp(d.join(''), flgs ? flgs.join('') : '') };\n },\n peg$c78 = function(i, is) {\n return { type: 'field', name: is.reduce(function(memo, p){ return memo + p[0] + p[1]; }, i)};\n },\n peg$c79 = \":not(\",\n peg$c80 = peg$literalExpectation(\":not(\", false),\n peg$c81 = function(ss) { return { type: 'not', selectors: ss }; },\n peg$c82 = \":matches(\",\n peg$c83 = peg$literalExpectation(\":matches(\", false),\n peg$c84 = function(ss) { return { type: 'matches', selectors: ss }; },\n peg$c85 = \":has(\",\n peg$c86 = peg$literalExpectation(\":has(\", false),\n peg$c87 = function(ss) { return { type: 'has', selectors: ss }; },\n peg$c88 = \":first-child\",\n peg$c89 = peg$literalExpectation(\":first-child\", false),\n peg$c90 = function() { return nth(1); },\n peg$c91 = \":last-child\",\n peg$c92 = peg$literalExpectation(\":last-child\", false),\n peg$c93 = function() { return nthLast(1); },\n peg$c94 = \":nth-child(\",\n peg$c95 = peg$literalExpectation(\":nth-child(\", false),\n peg$c96 = function(n) { return nth(parseInt(n.join(''), 10)); },\n peg$c97 = \":nth-last-child(\",\n peg$c98 = peg$literalExpectation(\":nth-last-child(\", false),\n peg$c99 = function(n) { return nthLast(parseInt(n.join(''), 10)); },\n peg$c100 = \":\",\n peg$c101 = peg$literalExpectation(\":\", false),\n peg$c102 = \"statement\",\n peg$c103 = peg$literalExpectation(\"statement\", true),\n peg$c104 = \"expression\",\n peg$c105 = peg$literalExpectation(\"expression\", true),\n peg$c106 = \"declaration\",\n peg$c107 = peg$literalExpectation(\"declaration\", true),\n peg$c108 = \"function\",\n peg$c109 = peg$literalExpectation(\"function\", true),\n peg$c110 = \"pattern\",\n peg$c111 = peg$literalExpectation(\"pattern\", true),\n peg$c112 = function(c) {\n return { type: 'class', name: c };\n },\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1 }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$resultsCache = {},\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location\n );\n }\n\n function error(message, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos], p;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsestart() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 0,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselectors();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1();\n }\n s0 = s1;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 1,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = [];\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseidentifierName() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 2,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c4.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c4.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c6(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsebinaryOp() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 3,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s2 = peg$c7;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c9();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 126) {\n s2 = peg$c10;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c12();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 43) {\n s2 = peg$c13;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c14); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c15();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseselectors() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n var key = peg$currPos * 30 + 4,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseselector();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c17;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseselector();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c17;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseselector();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c19(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 5,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parsesequence();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parsebinaryOp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesequence();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parsebinaryOp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesequence();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsesequence() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 6,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseatom();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseatom();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseatom() {\n var s0;\n\n var key = peg$currPos * 30 + 7,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$parsewildcard();\n if (s0 === peg$FAILED) {\n s0 = peg$parseidentifier();\n if (s0 === peg$FAILED) {\n s0 = peg$parseattr();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefield();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenegation();\n if (s0 === peg$FAILED) {\n s0 = peg$parsematches();\n if (s0 === peg$FAILED) {\n s0 = peg$parsehas();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefirstChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parselastChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenthChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenthLastChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parseclass();\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsewildcard() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 8,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 42) {\n s1 = peg$c24;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseidentifier() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 9,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c27;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c28); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseidentifierName();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c29(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattr() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 10,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c30;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrValue();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s5 = peg$c32;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrOps() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 11,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (peg$c35.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c37;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n if (peg$c40.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrEqOps() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 12,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c37;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrName() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 13,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseidentifierName();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c42;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parseidentifierName();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c42;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parseidentifierName();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c44(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrValue() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 14,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrEqOps();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsetype();\n if (s5 === peg$FAILED) {\n s5 = peg$parseregex();\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c45(s1, s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrOps();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsestring();\n if (s5 === peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 === peg$FAILED) {\n s5 = peg$parsepath();\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c45(s1, s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(s1);\n }\n s0 = s1;\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsestring() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 15,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c47;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c48); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c47;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c48); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c56;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c58.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c58.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c56;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 16,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c42;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c62(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsepath() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 17,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseidentifierName();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c63(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsetype() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 18,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c64) {\n s1 = peg$c64;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c65); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c70(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseflags() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 19,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = [];\n if (peg$c71.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c72); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c71.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c72); }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseregex() {\n var s0, s1, s2, s3, s4;\n\n var key = peg$currPos * 30 + 20,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c73;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c74); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c75.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c76); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c75.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c76); }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s3 = peg$c73;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c74); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseflags();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77(s2, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsefield() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n var key = peg$currPos * 30 + 21,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s1 = peg$c42;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseidentifierName();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s5 = peg$c42;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseidentifierName();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s5 = peg$c42;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseidentifierName();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenegation() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 22,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c79) {\n s1 = peg$c79;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c80); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c81(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsematches() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 23,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 9) === peg$c82) {\n s1 = peg$c82;\n peg$currPos += 9;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c83); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c84(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsehas() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 24,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c85) {\n s1 = peg$c85;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c86); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsefirstChild() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 25,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 12) === peg$c88) {\n s1 = peg$c88;\n peg$currPos += 12;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c89); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c90();\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parselastChild() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 26,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 11) === peg$c91) {\n s1 = peg$c91;\n peg$currPos += 11;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c92); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c93();\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenthChild() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 27,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 11) === peg$c94) {\n s1 = peg$c94;\n peg$currPos += 11;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c95); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c96(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenthLastChild() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 28,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 16) === peg$c97) {\n s1 = peg$c97;\n peg$currPos += 16;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c98); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c99(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseclass() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 29,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 58) {\n s1 = peg$c100;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c101); }\n }\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 9).toLowerCase() === peg$c102) {\n s2 = input.substr(peg$currPos, 9);\n peg$currPos += 9;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c103); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 10).toLowerCase() === peg$c104) {\n s2 = input.substr(peg$currPos, 10);\n peg$currPos += 10;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c105); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 11).toLowerCase() === peg$c106) {\n s2 = input.substr(peg$currPos, 11);\n peg$currPos += 11;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c107); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 8).toLowerCase() === peg$c108) {\n s2 = input.substr(peg$currPos, 8);\n peg$currPos += 8;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 7).toLowerCase() === peg$c110) {\n s2 = input.substr(peg$currPos, 7);\n peg$currPos += 7;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n }\n }\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c112(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n\n function nth(n) { return { type: 'nth-child', index: { type: 'literal', value: n } }; }\n function nthLast(n) { return { type: 'nth-last-child', index: { type: 'literal', value: n } }; }\n function strUnescape(s) {\n return s.replace(/\\\\(.)/g, function(match, ch) {\n switch(ch) {\n case 'b': return '\\b';\n case 'f': return '\\f';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 't': return '\\t';\n case 'v': return '\\v';\n default: return ch;\n }\n });\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n});\n","/* vim: set sw=4 sts=4 : */\nimport estraverse from 'estraverse';\nimport parser from './parser.js';\n\n/**\n* @typedef {\"LEFT_SIDE\"|\"RIGHT_SIDE\"} Side\n*/\n\nconst LEFT_SIDE = 'LEFT_SIDE';\nconst RIGHT_SIDE = 'RIGHT_SIDE';\n\n/**\n * @external AST\n * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html\n */\n\n/**\n * One of the rules of `grammar.pegjs`\n * @typedef {PlainObject} SelectorAST\n * @see grammar.pegjs\n*/\n\n/**\n * The `sequence` production of `grammar.pegjs`\n * @typedef {PlainObject} SelectorSequenceAST\n*/\n\n/**\n * Get the value of a property which may be multiple levels down\n * in the object.\n * @param {?PlainObject} obj\n * @param {string} key\n * @returns {undefined|boolean|string|number|external:AST}\n */\nfunction getPath(obj, key) {\n const keys = key.split('.');\n for (const key of keys) {\n if (obj == null) { return obj; }\n obj = obj[key];\n }\n return obj;\n}\n\n/**\n * Determine whether `node` can be reached by following `path`,\n * starting at `ancestor`.\n * @param {?external:AST} node\n * @param {?external:AST} ancestor\n * @param {string[]} path\n * @returns {boolean}\n */\nfunction inPath(node, ancestor, path) {\n if (path.length === 0) { return node === ancestor; }\n if (ancestor == null) { return false; }\n const field = ancestor[path[0]];\n const remainingPath = path.slice(1);\n if (Array.isArray(field)) {\n for (const component of field) {\n if (inPath(node, component, remainingPath)) { return true; }\n }\n return false;\n } else {\n return inPath(node, field, remainingPath);\n }\n}\n\n/**\n * @callback TraverseOptionFallback\n * @param {external:AST} node The given node.\n * @returns {string[]} An array of visitor keys for the given node.\n */\n/**\n * @typedef {object} ESQueryOptions\n * @property { { [nodeType: string]: string[] } } [visitorKeys] By passing `visitorKeys` mapping, we can extend the properties of the nodes that traverse the node.\n * @property {TraverseOptionFallback} [fallback] By passing `fallback` option, we can control the properties of traversing nodes when encountering unknown nodes.\n */\n\n/**\n * Given a `node` and its ancestors, determine if `node` is matched\n * by `selector`.\n * @param {?external:AST} node\n * @param {?SelectorAST} selector\n * @param {external:AST[]} [ancestry=[]]\n * @param {ESQueryOptions} [options]\n * @throws {Error} Unknowns (operator, class name, selector type, or\n * selector value type)\n * @returns {boolean}\n */\nfunction matches(node, selector, ancestry, options) {\n if (!selector) { return true; }\n if (!node) { return false; }\n if (!ancestry) { ancestry = []; }\n\n switch(selector.type) {\n case 'wildcard':\n return true;\n\n case 'identifier':\n return selector.value.toLowerCase() === node.type.toLowerCase();\n\n case 'field': {\n const path = selector.name.split('.');\n const ancestor = ancestry[path.length - 1];\n return inPath(node, ancestor, path);\n\n }\n case 'matches':\n for (const sel of selector.selectors) {\n if (matches(node, sel, ancestry, options)) { return true; }\n }\n return false;\n\n case 'compound':\n for (const sel of selector.selectors) {\n if (!matches(node, sel, ancestry, options)) { return false; }\n }\n return true;\n\n case 'not':\n for (const sel of selector.selectors) {\n if (matches(node, sel, ancestry, options)) { return false; }\n }\n return true;\n\n case 'has': {\n const collector = [];\n for (const sel of selector.selectors) {\n const a = [];\n estraverse.traverse(node, {\n enter (node, parent) {\n if (parent != null) { a.unshift(parent); }\n if (matches(node, sel, a, options)) {\n collector.push(node);\n }\n },\n leave () { a.shift(); },\n keys: options && options.visitorKeys,\n fallback: options && options.fallback || 'iteration'\n });\n }\n return collector.length !== 0;\n\n }\n case 'child':\n if (matches(node, selector.right, ancestry, options)) {\n return matches(ancestry[0], selector.left, ancestry.slice(1), options);\n }\n return false;\n\n case 'descendant':\n if (matches(node, selector.right, ancestry, options)) {\n for (let i = 0, l = ancestry.length; i < l; ++i) {\n if (matches(ancestry[i], selector.left, ancestry.slice(i + 1), options)) {\n return true;\n }\n }\n }\n return false;\n\n case 'attribute': {\n const p = getPath(node, selector.name);\n switch (selector.operator) {\n case void 0:\n return p != null;\n case '=':\n switch (selector.value.type) {\n case 'regexp': return typeof p === 'string' && selector.value.value.test(p);\n case 'literal': return `${selector.value.value}` === `${p}`;\n case 'type': return selector.value.value === typeof p;\n }\n throw new Error(`Unknown selector value type: ${selector.value.type}`);\n case '!=':\n switch (selector.value.type) {\n case 'regexp': return !selector.value.value.test(p);\n case 'literal': return `${selector.value.value}` !== `${p}`;\n case 'type': return selector.value.value !== typeof p;\n }\n throw new Error(`Unknown selector value type: ${selector.value.type}`);\n case '<=': return p <= selector.value.value;\n case '<': return p < selector.value.value;\n case '>': return p > selector.value.value;\n case '>=': return p >= selector.value.value;\n }\n throw new Error(`Unknown operator: ${selector.operator}`);\n }\n case 'sibling':\n return matches(node, selector.right, ancestry, options) &&\n sibling(node, selector.left, ancestry, LEFT_SIDE, options) ||\n selector.left.subject &&\n matches(node, selector.left, ancestry, options) &&\n sibling(node, selector.right, ancestry, RIGHT_SIDE, options);\n case 'adjacent':\n return matches(node, selector.right, ancestry, options) &&\n adjacent(node, selector.left, ancestry, LEFT_SIDE, options) ||\n selector.right.subject &&\n matches(node, selector.left, ancestry, options) &&\n adjacent(node, selector.right, ancestry, RIGHT_SIDE, options);\n\n case 'nth-child':\n return matches(node, selector.right, ancestry, options) &&\n nthChild(node, ancestry, function () {\n return selector.index.value - 1;\n }, options);\n\n case 'nth-last-child':\n return matches(node, selector.right, ancestry, options) &&\n nthChild(node, ancestry, function (length) {\n return length - selector.index.value;\n }, options);\n\n case 'class':\n switch(selector.name.toLowerCase()){\n case 'statement':\n if(node.type.slice(-9) === 'Statement') return true;\n // fallthrough: interface Declaration <: Statement { }\n case 'declaration':\n return node.type.slice(-11) === 'Declaration';\n case 'pattern':\n if(node.type.slice(-7) === 'Pattern') return true;\n // fallthrough: interface Expression <: Node, Pattern { }\n case 'expression':\n return node.type.slice(-10) === 'Expression' ||\n node.type.slice(-7) === 'Literal' ||\n (\n node.type === 'Identifier' &&\n (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty')\n ) ||\n node.type === 'MetaProperty';\n case 'function':\n return node.type === 'FunctionDeclaration' ||\n node.type === 'FunctionExpression' ||\n node.type === 'ArrowFunctionExpression';\n }\n throw new Error(`Unknown class name: ${selector.name}`);\n }\n\n throw new Error(`Unknown selector type: ${selector.type}`);\n}\n\n/**\n * Get visitor keys of a given node.\n * @param {external:AST} node The AST node to get keys.\n * @param {ESQueryOptions|undefined} options\n * @returns {string[]} Visitor keys of the node.\n */\nfunction getVisitorKeys(node, options) {\n const nodeType = node.type;\n if (options && options.visitorKeys && options.visitorKeys[nodeType]) {\n return options.visitorKeys[nodeType];\n }\n if (estraverse.VisitorKeys[nodeType]) {\n return estraverse.VisitorKeys[nodeType];\n }\n if (options && typeof options.fallback === 'function') {\n return options.fallback(node);\n }\n // 'iteration' fallback\n return Object.keys(node).filter(function (key) {\n return key !== 'type';\n });\n}\n\n\n/**\n * Check whether the given value is an ASTNode or not.\n * @param {any} node The value to check.\n * @returns {boolean} `true` if the value is an ASTNode.\n */\nfunction isNode(node) {\n return node !== null && typeof node === 'object' && typeof node.type === 'string';\n}\n\n/**\n * Determines if the given node has a sibling that matches the\n * given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction sibling(node, selector, ancestry, side, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const startIndex = listProp.indexOf(node);\n if (startIndex < 0) { continue; }\n let lowerBound, upperBound;\n if (side === LEFT_SIDE) {\n lowerBound = 0;\n upperBound = startIndex;\n } else {\n lowerBound = startIndex + 1;\n upperBound = listProp.length;\n }\n for (let k = lowerBound; k < upperBound; ++k) {\n if (isNode(listProp[k]) && matches(listProp[k], selector, ancestry, options)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\n/**\n * Determines if the given node has an adjacent sibling that matches\n * the given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction adjacent(node, selector, ancestry, side, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const idx = listProp.indexOf(node);\n if (idx < 0) { continue; }\n if (side === LEFT_SIDE && idx > 0 && isNode(listProp[idx - 1]) && matches(listProp[idx - 1], selector, ancestry, options)) {\n return true;\n }\n if (side === RIGHT_SIDE && idx < listProp.length - 1 && isNode(listProp[idx + 1]) && matches(listProp[idx + 1], selector, ancestry, options)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n* @callback IndexFunction\n* @param {Integer} len Containing list's length\n* @returns {Integer}\n*/\n\n/**\n * Determines if the given node is the nth child, determined by\n * `idxFn`, which is given the containing list's length.\n * @param {external:AST} node\n * @param {external:AST[]} ancestry\n * @param {IndexFunction} idxFn\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction nthChild(node, ancestry, idxFn, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const idx = listProp.indexOf(node);\n if (idx >= 0 && idx === idxFn(listProp.length)) { return true; }\n }\n }\n return false;\n}\n\n/**\n * For each selector node marked as a subject, find the portion of the\n * selector that the subject must match.\n * @param {SelectorAST} selector\n * @param {SelectorAST} [ancestor] Defaults to `selector`\n * @returns {SelectorAST[]}\n */\nfunction subjects(selector, ancestor) {\n if (selector == null || typeof selector != 'object') { return []; }\n if (ancestor == null) { ancestor = selector; }\n const results = selector.subject ? [ancestor] : [];\n for (const [p, sel] of Object.entries(selector)) {\n results.push(...subjects(sel, p === 'left' ? sel : ancestor));\n }\n return results;\n}\n\n/**\n* @callback TraverseVisitor\n* @param {?external:AST} node\n* @param {?external:AST} parent\n* @param {external:AST[]} ancestry\n*/\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @param {TraverseVisitor} visitor\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction traverse(ast, selector, visitor, options) {\n if (!selector) { return; }\n const ancestry = [];\n const altSubjects = subjects(selector);\n estraverse.traverse(ast, {\n enter (node, parent) {\n if (parent != null) { ancestry.unshift(parent); }\n if (matches(node, selector, ancestry, options)) {\n if (altSubjects.length) {\n for (let i = 0, l = altSubjects.length; i < l; ++i) {\n if (matches(node, altSubjects[i], ancestry, options)) {\n visitor(node, parent, ancestry);\n }\n for (let k = 0, m = ancestry.length; k < m; ++k) {\n const succeedingAncestry = ancestry.slice(k + 1);\n if (matches(ancestry[k], altSubjects[i], succeedingAncestry, options)) {\n visitor(ancestry[k], parent, succeedingAncestry);\n }\n }\n }\n } else {\n visitor(node, parent, ancestry);\n }\n }\n },\n leave () { ancestry.shift(); },\n keys: options && options.visitorKeys,\n fallback: options && options.fallback || 'iteration'\n });\n}\n\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction match(ast, selector, options) {\n const results = [];\n traverse(ast, selector, function (node) {\n results.push(node);\n }, options);\n return results;\n}\n\n/**\n * Parse a selector string and return its AST.\n * @param {string} selector\n * @returns {SelectorAST}\n */\nfunction parse(selector) {\n return parser.parse(selector);\n}\n\n/**\n * Query the code AST using the selector string.\n * @param {external:AST} ast\n * @param {string} selector\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction query(ast, selector, options) {\n return match(ast, parse(selector), options);\n}\n\nquery.parse = parse;\nquery.match = match;\nquery.traverse = traverse;\nquery.matches = matches;\nquery.query = query;\n\nexport default query;\n"],"names":["module","exports","peg$SyntaxError","message","expected","found","location","name","Error","captureStackTrace","this","child","parent","ctor","constructor","prototype","peg$subclass","buildMessage","DESCRIBE_EXPECTATION_FNS","literal","expectation","literalEscape","text","i","escapedParts","parts","length","Array","classEscape","inverted","any","end","other","description","hex","ch","charCodeAt","toString","toUpperCase","s","replace","j","descriptions","type","sort","slice","join","describeExpected","describeFound","SyntaxError","parse","input","options","peg$result","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c3","peg$literalExpectation","peg$c4","peg$c5","peg$classExpectation","peg$c8","peg$c11","peg$c14","peg$c18","peg$c22","peg$c25","peg$c28","peg$c31","peg$c33","peg$c35","peg$c36","peg$c38","peg$c39","a","peg$c40","peg$c41","peg$c43","peg$c45","op","value","operator","peg$c48","peg$c49","peg$c50","peg$c52","peg$c53","peg$c54","b","peg$c55","d","match","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c65","peg$c66","peg$c67","peg$c69","peg$c71","peg$c72","peg$c74","peg$c75","peg$c76","peg$c80","peg$c83","peg$c86","peg$c89","peg$c92","peg$c95","peg$c98","peg$c101","peg$c103","peg$c105","peg$c107","peg$c109","peg$c111","peg$currPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$resultsCache","startRule","ignoreCase","peg$computePosDetails","pos","p","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","offset","peg$fail","push","s0","s1","s2","ss","key","cached","nextPos","result","peg$parse_","peg$parseselectors","selectors","peg$c1","peg$parseidentifierName","test","charAt","peg$parsebinaryOp","s3","s4","s5","s6","s7","peg$parseselector","concat","map","peg$parsesequence","reduce","memo","rhs","left","right","subject","as","peg$parseatom","peg$parsewildcard","peg$parseidentifier","peg$parseattrName","peg$parseattrEqOps","substr","peg$parsetype","flgs","peg$parseflags","RegExp","peg$parseregex","peg$parseattrOps","peg$parsestring","leadingDecimals","apply","parseFloat","peg$parsenumber","peg$parsepath","peg$parseattrValue","peg$parseattr","peg$parsefield","peg$parsenegation","peg$parsematches","peg$parsehas","nth","peg$parsefirstChild","nthLast","peg$parselastChild","parseInt","peg$parsenthChild","peg$parsenthLastChild","toLowerCase","peg$parseclass","n","index","factory","matches","node","selector","ancestry","path","split","ancestor","inPath","field","remainingPath","isArray","sel","collector","estraverse","traverse","enter","unshift","leave","shift","keys","visitorKeys","fallback","l","obj","getPath","sibling","adjacent","nthChild","getVisitorKeys","nodeType","VisitorKeys","Object","filter","isNode","_typeof","side","listProp","startIndex","indexOf","lowerBound","upperBound","k","idx","idxFn","subjects","results","_objectEntries","ast","visitor","altSubjects","m","succeedingAncestry","parser","query"],"mappings":"uoFAQ2CA,EAAOC,UAC9CD,UAEK,oBASEE,EAAgBC,EAASC,EAAUC,EAAOC,QAC5CH,QAAWA,OACXC,SAAWA,OACXC,MAAWA,OACXC,SAAWA,OACXC,KAAW,cAEuB,mBAA5BC,MAAMC,mBACfD,MAAMC,kBAAkBC,KAAMR,mBAdZS,EAAOC,YAClBC,SAAcC,YAAcH,EACrCE,EAAKE,UAAYH,EAAOG,UACxBJ,EAAMI,UAAY,IAAIF,EAexBG,CAAad,EAAiBM,OAE9BN,EAAgBe,aAAe,SAASb,EAAUC,OAC5Ca,EAA2B,CACzBC,QAAS,SAASC,SACT,IAAOC,EAAcD,EAAYE,MAAQ,WAGzC,SAASF,OAEZG,EADAC,EAAe,OAGdD,EAAI,EAAGA,EAAIH,EAAYK,MAAMC,OAAQH,IACxCC,GAAgBJ,EAAYK,MAAMF,aAAcI,MAC5CC,EAAYR,EAAYK,MAAMF,GAAG,IAAM,IAAMK,EAAYR,EAAYK,MAAMF,GAAG,IAC9EK,EAAYR,EAAYK,MAAMF,UAG7B,KAAOH,EAAYS,SAAW,IAAM,IAAML,EAAe,KAGlEM,IAAK,SAASV,SACL,iBAGTW,IAAK,SAASX,SACL,gBAGTY,MAAO,SAASZ,UACPA,EAAYa,uBAIlBC,EAAIC,UACJA,EAAGC,WAAW,GAAGC,SAAS,IAAIC,uBAG9BjB,EAAckB,UACdA,EACJC,QAAQ,MAAO,QACfA,QAAQ,KAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,gBAAyB,SAASL,SAAa,OAASD,EAAIC,MACpEK,QAAQ,yBAAyB,SAASL,SAAa,MAASD,EAAIC,eAGhEP,EAAYW,UACZA,EACJC,QAAQ,MAAO,QACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,KAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,gBAAyB,SAASL,SAAa,OAASD,EAAIC,MACpEK,QAAQ,yBAAyB,SAASL,SAAa,MAASD,EAAIC,YA6ClE,qBAtCmB/B,OAEpBmB,EAAGkB,EANoBrB,EAKvBsB,EAAe,IAAIf,MAAMvB,EAASsB,YAGjCH,EAAI,EAAGA,EAAInB,EAASsB,OAAQH,IAC/BmB,EAAanB,IATYH,EASahB,EAASmB,GAR1CL,EAAyBE,EAAYuB,MAAMvB,OAWlDsB,EAAaE,OAETF,EAAahB,OAAS,EAAG,KACtBH,EAAI,EAAGkB,EAAI,EAAGlB,EAAImB,EAAahB,OAAQH,IACtCmB,EAAanB,EAAI,KAAOmB,EAAanB,KACvCmB,EAAaD,GAAKC,EAAanB,GAC/BkB,KAGJC,EAAahB,OAASe,SAGhBC,EAAahB,aACd,SACIgB,EAAa,QAEjB,SACIA,EAAa,GAAK,OAASA,EAAa,kBAGxCA,EAAaG,MAAM,GAAI,GAAGC,KAAK,MAClC,QACAJ,EAAaA,EAAahB,OAAS,IAQxBqB,CAAiB3C,GAAY,iBAJ3BC,UACdA,EAAQ,IAAOgB,EAAchB,GAAS,IAAO,eAGM2C,CAAc3C,GAAS,WA25E9E,CACL4C,YAAa/C,EACbgD,eA15EiBC,EAAOC,GACxBA,OAAsB,IAAZA,EAAqBA,EAAU,OA8JrCC,EAwH8BjD,EAAUC,EAAOC,EApR/CgD,EAAa,GAEbC,EAAyB,CAAEC,MAAOC,IAClCC,EAAyBD,GAOzBE,EAASC,GAAuB,KAAK,GACrCC,EAAS,uBACTC,EAASC,GAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAM,GAAM,GAGjHC,EAASJ,GAAuB,KAAK,GAGrCK,EAAUL,GAAuB,KAAK,GAGtCM,EAAUN,GAAuB,KAAK,GAItCO,EAAUP,GAAuB,KAAK,GAUtCQ,EAAUR,GAAuB,KAAK,GAOtCS,EAAUT,GAAuB,KAAK,GAGtCU,EAAUV,GAAuB,KAAK,GAGtCW,EAAUX,GAAuB,KAAK,GAEtCY,EAAUZ,GAAuB,KAAK,GAEtCa,EAAU,SACVC,EAAUX,GAAqB,CAAC,IAAK,IAAK,MAAM,GAAO,GAEvDY,EAAUf,GAAuB,KAAK,GACtCgB,EAAU,SAASC,UAAaA,GAAK,IAAM,KAC3CC,EAAU,QACVC,EAAUhB,GAAqB,CAAC,IAAK,MAAM,GAAO,GAElDiB,EAAUpB,GAAuB,KAAK,GAItCqB,EAAU,SAAS1E,EAAM2E,EAAIC,SAChB,CAAExC,KAAM,YAAapC,KAAMA,EAAM6E,SAAUF,EAAIC,MAAOA,IAInEE,EAAUzB,GAAuB,KAAM,GACvC0B,EAAU,UACVC,EAAUxB,GAAqB,CAAC,KAAM,MAAO,GAAM,GAEnDyB,EAAU5B,GAAuB,MAAM,GACvC6B,EA6HK,CAAE9C,KAAM,OA5Hb+C,EAAU,SAASb,EAAGc,UAAYd,EAAIc,GACtCC,EAAU,SAASC,SACJ,CAAElD,KAAM,UAAWwC,OAsyEf5C,EAtyEkCsD,EAAE/C,KAAK,IAuyErDP,EAAEC,QAAQ,UAAU,SAASsD,EAAO3D,UAClCA,OACA,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,oBACDA,YATDI,GAnyEnBwD,EAAUnC,GAAuB,KAAK,GACtCoC,EAAU,UACVC,EAAUlC,GAAqB,CAAC,KAAM,MAAM,GAAM,GAClDmC,EAAU,SACVC,EAAUpC,GAAqB,CAAC,CAAC,IAAK,OAAO,GAAO,GAQpDqC,EAAUxC,GAAuB,SAAS,GAC1CyC,EAAU,SACVC,EAAUvC,GAAqB,CAAC,IAAK,MAAM,GAAM,GAEjDwC,EAAU3C,GAAuB,KAAK,GAEtC4C,EAAU,UACVC,EAAU1C,GAAqB,CAAC,IAAK,IAAK,IAAK,MAAM,GAAO,GAE5D2C,EAAU9C,GAAuB,KAAK,GACtC+C,EAAU,SACVC,EAAU7C,GAAqB,CAAC,MAAM,GAAM,GAQ5C8C,EAAUjD,GAAuB,SAAS,GAG1CkD,EAAUlD,GAAuB,aAAa,GAG9CmD,EAAUnD,GAAuB,SAAS,GAG1CoD,GAAUpD,GAAuB,gBAAgB,GAGjDqD,GAAUrD,GAAuB,eAAe,GAGhDsD,GAAUtD,GAAuB,eAAe,GAGhDuD,GAAUvD,GAAuB,oBAAoB,GAGrDwD,GAAWxD,GAAuB,KAAK,GAEvCyD,GAAWzD,GAAuB,aAAa,GAE/C0D,GAAW1D,GAAuB,cAAc,GAEhD2D,GAAW3D,GAAuB,eAAe,GAEjD4D,GAAW5D,GAAuB,YAAY,GAE9C6D,GAAW7D,GAAuB,WAAW,GAK7C8D,GAAuB,EAEvBC,GAAuB,CAAC,CAAEC,KAAM,EAAGC,OAAQ,IAC3CC,GAAuB,EACvBC,GAAuB,GAGvBC,GAAmB,MAInB,cAAe5E,EAAS,MACpBA,EAAQ6E,aAAa1E,SACnB,IAAI/C,MAAM,mCAAqC4C,EAAQ6E,UAAY,MAG3EvE,EAAwBH,EAAuBH,EAAQ6E,oBA2BhDrE,GAAuBtC,EAAM4G,SAC7B,CAAEvF,KAAM,UAAWrB,KAAMA,EAAM4G,WAAYA,YAG3CnE,GAAqBtC,EAAOI,EAAUqG,SACtC,CAAEvF,KAAM,QAASlB,MAAOA,EAAOI,SAAUA,EAAUqG,WAAYA,YAe/DC,GAAsBC,OACWC,EAApCC,EAAUX,GAAoBS,MAE9BE,SACKA,MAEPD,EAAID,EAAM,GACFT,GAAoBU,IAC1BA,QAIFC,EAAU,CACRV,MAFFU,EAAUX,GAAoBU,IAEZT,KAChBC,OAAQS,EAAQT,QAGXQ,EAAID,GACmB,KAAxBjF,EAAMf,WAAWiG,IACnBC,EAAQV,OACRU,EAAQT,OAAS,GAEjBS,EAAQT,SAGVQ,WAGFV,GAAoBS,GAAOE,EACpBA,WAIFC,GAAoBC,EAAUC,OACjCC,EAAkBP,GAAsBK,GACxCG,EAAkBR,GAAsBM,SAErC,CACLjF,MAAO,CACLoF,OAAQJ,EACRZ,KAAQc,EAAgBd,KACxBC,OAAQa,EAAgBb,QAE1B9F,IAAK,CACH6G,OAAQH,EACRb,KAAQe,EAAcf,KACtBC,OAAQc,EAAcd,kBAKnBgB,GAASzI,GACZsH,GAAcI,KAEdJ,GAAcI,KAChBA,GAAiBJ,GACjBK,GAAsB,IAGxBA,GAAoBe,KAAK1I,aAgBlBqD,SACHsF,EAAIC,EAAIC,EAzRQC,EA2RhBC,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,IACLsB,EAAKO,QACMjG,IACT2F,EAAKO,QACMlG,GACJiG,OACMjG,EAGTyF,EADAC,EA3SqB,KADPE,EA4SFD,GA3SFvH,OAAewH,EAAG,GAAK,CAAEvG,KAAM,UAAW8G,UAAWP,IAsTnExB,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAKrB,IACLsB,EAAKO,QACMjG,IAET0F,OAAKU,GAEPX,EAAKC,GAGPhB,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,YAGAQ,SACHR,EAAIC,EAEJG,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,WAGhBP,EAAK,GACiC,KAAlC5F,EAAMf,WAAWsF,KACnBsB,EAnVS,IAoVTtB,OAEAsB,EAAK1F,EACwBuF,GAASlF,IAEjCqF,IAAO1F,GACZyF,EAAGD,KAAKE,GAC8B,KAAlC7F,EAAMf,WAAWsF,KACnBsB,EA5VO,IA6VPtB,OAEAsB,EAAK1F,EACwBuF,GAASlF,WAI1CqE,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,WAGAY,SACHZ,EAAIC,EAAIC,EAERE,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAIhBN,EAAK,GACDnF,EAAO+F,KAAKzG,EAAM0G,OAAOnC,MAC3BuB,EAAK9F,EAAM0G,OAAOnC,IAClBA,OAEAuB,EAAK3F,EACwBuF,GAAS/E,IAEpCmF,IAAO3F,OACF2F,IAAO3F,GACZ0F,EAAGF,KAAKG,GACJpF,EAAO+F,KAAKzG,EAAM0G,OAAOnC,MAC3BuB,EAAK9F,EAAM0G,OAAOnC,IAClBA,OAEAuB,EAAK3F,EACwBuF,GAAS/E,SAI1CkF,EAAK1F,SAEH0F,IAAO1F,IAET0F,EAAYA,EA1YoBlG,KAAK,KA4YvCiG,EAAKC,EAELhB,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,WAGAe,SACHf,EAAIC,EAAIC,EAERE,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,IACLsB,EAAKO,QACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuB,EAlaO,IAmaPvB,OAEAuB,EAAK3F,EACwBuF,GAAS7E,IAEpCiF,IAAO3F,GACJiG,OACMjG,EAGTyF,EADAC,EA1ayB,SAib3BtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAKrB,IACLsB,EAAKO,QACMjG,GAC6B,MAAlCH,EAAMf,WAAWsF,KACnBuB,EA5bM,IA6bNvB,OAEAuB,EAAK3F,EACwBuF,GAAS5E,IAEpCgF,IAAO3F,GACJiG,OACMjG,EAGTyF,EADAC,EApcwB,WA2c1BtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAKrB,IACLsB,EAAKO,QACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuB,EAtdI,IAudJvB,OAEAuB,EAAK3F,EACwBuF,GAAS3E,IAEpC+E,IAAO3F,GACJiG,OACMjG,EAGTyF,EADAC,EA9dsB,YAqexBtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EA5fG,IA6fHtB,OAEAsB,EAAK1F,EACwBuF,GAASlF,IAEpCqF,IAAO1F,IACT2F,EAAKM,QACMjG,EAGTyF,EADAC,EAxfsB,cA+fxBtB,GAAcqB,EACdA,EAAKzF,MAMb0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,YAGAS,SACHT,EAAIC,EAAIC,EAAIc,EAAIC,EAAIC,EAAIC,EAAIC,EAE5BhB,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,IACLsB,EAAKoB,QACM9G,EAAY,KACrB2F,EAAK,GACLc,EAAKrC,IACLsC,EAAKT,QACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EA9hBM,IA+hBNvC,OAEAuC,EAAK3G,EACwBuF,GAAS1E,IAEpC8F,IAAO3G,IACT4G,EAAKX,QACMjG,IACT6G,EAAKC,QACM9G,EAETyG,EADAC,EAAK,CAACA,EAAIC,EAAIC,EAAIC,IAWtBzC,GAAcqC,EACdA,EAAKzG,KAGPoE,GAAcqC,EACdA,EAAKzG,GAEAyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACRA,EAAKrC,IACLsC,EAAKT,QACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EAjkBI,IAkkBJvC,OAEAuC,EAAK3G,EACwBuF,GAAS1E,IAEpC8F,IAAO3G,IACT4G,EAAKX,QACMjG,IACT6G,EAAKC,QACM9G,EAETyG,EADAC,EAAK,CAACA,EAAIC,EAAIC,EAAIC,IAWtBzC,GAAcqC,EACdA,EAAKzG,KAGPoE,GAAcqC,EACdA,EAAKzG,GAGL2F,IAAO3F,EAGTyF,EADAC,EA9lBO,CA8lBMA,GA9lBFqB,OA8lBMpB,EA9lBIqB,KAAI,SAAU/H,UAAYA,EAAE,QAimBjDmF,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,WAGAqB,SACHrB,EAAIC,EAAIC,EAAIc,EAAIC,EAAIC,EA7mBHpF,EA+mBjBsE,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,IACLsB,EAAKuB,QACMjH,EAAY,KACrB2F,EAAK,GACLc,EAAKrC,IACLsC,EAAKF,QACMxG,IACT2G,EAAKM,QACMjH,EAETyG,EADAC,EAAK,CAACA,EAAIC,IAOZvC,GAAcqC,EACdA,EAAKzG,GAEAyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACRA,EAAKrC,IACLsC,EAAKF,QACMxG,IACT2G,EAAKM,QACMjH,EAETyG,EADAC,EAAK,CAACA,EAAIC,IAOZvC,GAAcqC,EACdA,EAAKzG,GAGL2F,IAAO3F,GA7pBQuB,EA+pBJmE,EACbD,EADAC,EAAiBC,EA9pBJuB,QAAO,SAAUC,EAAMC,SACzB,CAAE/H,KAAM+H,EAAI,GAAIC,KAAMF,EAAMG,MAAOF,EAAI,MAC7C7F,KA+pBL6C,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,WAGAwB,SACHxB,EAAIC,EAAIC,EAAIc,EAzqBKc,EAASC,EAClBnF,EA0qBRwD,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EAxrBU,IAyrBVtB,OAEAsB,EAAK1F,EACwBuF,GAASzE,IAEpC4E,IAAO1F,IACT0F,EAAK,MAEHA,IAAO1F,EAAY,IACrB2F,EAAK,IACLc,EAAKgB,QACMzH,OACFyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACRA,EAAKgB,UAGP9B,EAAK3F,EAEH2F,IAAO3F,GA1sBQuH,EA4sBJ7B,EA3sBLrD,EAAkB,KADAmF,EA4sBT7B,GA3sBFvH,OAAeoJ,EAAG,GAAK,CAAEnI,KAAM,WAAY8G,UAAWqB,GAChED,IAASlF,EAAEkF,SAAU,GA2sB1B9B,EADAC,EAzsBSrD,IA4sBT+B,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,WAGAgC,SACHhC,EAEAI,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,iBAyCIA,EAAIC,EAEJG,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAIsB,KAAlCnG,EAAMf,WAAWsF,KACnBsB,EAzxBU,IA0xBVtB,OAEAsB,EAAK1F,EACwBuF,GAASxE,IAEpC2E,IAAO1F,IAET0F,EA/xB+B,CAAErG,KAAM,WAAYwC,MA+xBtC6D,IAEfD,EAAKC,EAELhB,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GApEFiC,MACM1H,IACTyF,iBAsEEA,EAAIC,EAAIC,EAERE,EAAuB,GAAdzB,GAAmB,EAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EArzBU,IAszBVtB,OAEAsB,EAAK1F,EACwBuF,GAASvE,IAEpC0E,IAAO1F,IACT0F,EAAK,MAEHA,IAAO1F,IACT2F,EAAKU,QACMrG,EAGTyF,EADAC,EAh0B6B,CAAErG,KAAM,aAAcwC,MAg0BtC8D,IAOfvB,GAAcqB,EACdA,EAAKzF,GAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA7GAkC,MACM3H,IACTyF,iBA+GAA,EAAIC,EAAQe,EAAQE,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EA71BU,IA81BVtB,OAEAsB,EAAK1F,EACwBuF,GAAStE,IAEpCyE,IAAO1F,GACJiG,OACMjG,IACTyG,iBAoOAhB,EAAIC,EAAQe,EAAQE,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,IACLsB,EAAKkC,QACM5H,GACJiG,OACMjG,IACTyG,iBAhJAhB,EAAIC,EAAIC,EAERE,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EAp+BU,IAq+BVtB,OAEAsB,EAAK1F,EACwBuF,GAASzE,IAEpC4E,IAAO1F,IACT0F,EAAK,MAEHA,IAAO1F,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuB,EA39BQ,IA49BRvB,OAEAuB,EAAK3F,EACwBuF,GAASlE,IAEpCsE,IAAO3F,GAET0F,EAAKpE,EAAQoE,GACbD,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GAmGEoC,MACM7H,GACJiG,OACMjG,IACT2G,iBAgcJlB,EAAIC,EAAQe,EAAIC,EAAIC,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,GA7/CO,UA8/CRvE,EAAMiI,OAAO1D,GAAa,IAC5BsB,EA//CU,QAggDVtB,IAAe,IAEfsB,EAAK1F,EACwBuF,GAASzC,IAEpC4C,IAAO1F,KACJiG,OACMjG,EAAY,IACrByG,EAAK,GACD1D,EAAQuD,KAAKzG,EAAM0G,OAAOnC,MAC5BsC,EAAK7G,EAAM0G,OAAOnC,IAClBA,OAEAsC,EAAK1G,EACwBuF,GAASvC,IAEpC0D,IAAO1G,OACF0G,IAAO1G,GACZyG,EAAGjB,KAAKkB,GACJ3D,EAAQuD,KAAKzG,EAAM0G,OAAOnC,MAC5BsC,EAAK7G,EAAM0G,OAAOnC,IAClBA,OAEAsC,EAAK1G,EACwBuF,GAASvC,SAI1CyD,EAAKzG,EAEHyG,IAAOzG,IACT0G,EAAKT,QACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EA9hDE,IA+hDFvC,OAEAuC,EAAK3G,EACwBuF,GAAStC,IAEpC0D,IAAO3G,GAET0F,EApiDuB,CAAErG,KAAM,OAAQwC,MAoiD1B4E,EApiDmCjH,KAAK,KAqiDrDiG,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAOToE,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,OAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EAjhBMsC,MACM/H,IACT2G,iBA2jBNlB,EAAIC,EAAIC,EAAIc,EAAIC,EAlmDIsB,EAomDpBnC,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EAnnDU,IAonDVtB,OAEAsB,EAAK1F,EACwBuF,GAASnC,IAEpCsC,IAAO1F,EAAY,IACrB2F,EAAK,GACDtC,EAAQiD,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASjC,IAEpCmD,IAAOzG,OACFyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACJpD,EAAQiD,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASjC,SAI1CqC,EAAK3F,EAEH2F,IAAO3F,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBqC,EAlpDM,IAmpDNrC,OAEAqC,EAAKzG,EACwBuF,GAASnC,IAEpCqD,IAAOzG,IACT0G,iBA3FFjB,EAAIC,EAEJG,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAK,GACDvC,EAAQoD,KAAKzG,EAAM0G,OAAOnC,MAC5BsB,EAAK7F,EAAM0G,OAAOnC,IAClBA,OAEAsB,EAAK1F,EACwBuF,GAASpC,IAEpCuC,IAAO1F,OACF0F,IAAO1F,GACZyF,EAAGD,KAAKE,GACJxC,EAAQoD,KAAKzG,EAAM0G,OAAOnC,MAC5BsB,EAAK7F,EAAM0G,OAAOnC,IAClBA,OAEAsB,EAAK1F,EACwBuF,GAASpC,SAI1CsC,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EAuDIwC,MACMjI,IACT0G,EAAK,MAEHA,IAAO1G,GAzpDOgI,EA2pDCtB,EAAjBhB,EA3pD+B,CAC/BrG,KAAM,SAAUwC,MAAO,IAAIqG,OA0pDdvC,EA1pDuBnG,KAAK,IAAKwI,EAAOA,EAAKxI,KAAK,IAAM,KA2pDrEiG,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EAzoBQ0C,IAEHxB,IAAO3G,GAET0F,EAAK/D,EAAQ+D,EAAIe,EAAIE,GACrBlB,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAeboE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAKrB,IACLsB,EAAKkC,QACM5H,GACJiG,OACMjG,IACTyG,iBAhPFhB,EAAIC,EAAIC,EAERE,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GACDjD,EAAQmF,KAAKzG,EAAM0G,OAAOnC,MAC5BsB,EAAK7F,EAAM0G,OAAOnC,IAClBA,OAEAsB,EAAK1F,EACwBuF,GAASnE,IAEpCsE,IAAO1F,IACT0F,EAAK,MAEHA,IAAO1F,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuB,EAj6BQ,IAk6BRvB,OAEAuB,EAAK3F,EACwBuF,GAASlE,IAEpCsE,IAAO3F,GAET0F,EAAKpE,EAAQoE,GACbD,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACLwB,EAAQ8E,KAAKzG,EAAM0G,OAAOnC,MAC5BqB,EAAK5F,EAAM0G,OAAOnC,IAClBA,OAEAqB,EAAKzF,EACwBuF,GAAS9D,KAI1CiD,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA0LI2C,MACMpI,GACJiG,OACMjG,IACT2G,iBAgDNlB,EAAIC,EAAIC,EAAIc,EAAIC,EAAIC,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EA5qCU,IA6qCVtB,OAEAsB,EAAK1F,EACwBuF,GAASxD,IAEpC2D,IAAO1F,EAAY,KACrB2F,EAAK,GACD3D,EAAQsE,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAStD,IAEpCwE,IAAOzG,IACTyG,EAAKrC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsC,EA1rCM,KA2rCNtC,OAEAsC,EAAK1G,EACwBuF,GAASrD,IAEpCwE,IAAO1G,GACLH,EAAMzB,OAASgG,IACjBuC,EAAK9G,EAAM0G,OAAOnC,IAClBA,OAEAuC,EAAK3G,EACwBuF,GAASpD,IAEpCwE,IAAO3G,GAET0G,EAAKtE,EAAQsE,EAAIC,GACjBF,EAAKC,IAELtC,GAAcqC,EACdA,EAAKzG,KAGPoE,GAAcqC,EACdA,EAAKzG,IAGFyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACJzE,EAAQsE,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAStD,IAEpCwE,IAAOzG,IACTyG,EAAKrC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsC,EAjuCI,KAkuCJtC,OAEAsC,EAAK1G,EACwBuF,GAASrD,IAEpCwE,IAAO1G,GACLH,EAAMzB,OAASgG,IACjBuC,EAAK9G,EAAM0G,OAAOnC,IAClBA,OAEAuC,EAAK3G,EACwBuF,GAASpD,IAEpCwE,IAAO3G,GAET0G,EAAKtE,EAAQsE,EAAIC,GACjBF,EAAKC,IAELtC,GAAcqC,EACdA,EAAKzG,KAGPoE,GAAcqC,EACdA,EAAKzG,IAIP2F,IAAO3F,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBqC,EAnwCM,IAowCNrC,OAEAqC,EAAKzG,EACwBuF,GAASxD,IAEpC0E,IAAOzG,GAET0F,EAAKpD,EAAQqD,GACbF,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,KAEHyF,IAAOzF,KACTyF,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EAjxCQ,IAkxCRtB,OAEAsB,EAAK1F,EACwBuF,GAAS9C,IAEpCiD,IAAO1F,EAAY,KACrB2F,EAAK,GACDjD,EAAQ4D,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAS5C,IAEpC8D,IAAOzG,IACTyG,EAAKrC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsC,EA1yCI,KA2yCJtC,OAEAsC,EAAK1G,EACwBuF,GAASrD,IAEpCwE,IAAO1G,GACLH,EAAMzB,OAASgG,IACjBuC,EAAK9G,EAAM0G,OAAOnC,IAClBA,OAEAuC,EAAK3G,EACwBuF,GAASpD,IAEpCwE,IAAO3G,GAET0G,EAAKtE,EAAQsE,EAAIC,GACjBF,EAAKC,IAELtC,GAAcqC,EACdA,EAAKzG,KAGPoE,GAAcqC,EACdA,EAAKzG,IAGFyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACJ/D,EAAQ4D,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAS5C,IAEpC8D,IAAOzG,IACTyG,EAAKrC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsC,EAj1CE,KAk1CFtC,OAEAsC,EAAK1G,EACwBuF,GAASrD,IAEpCwE,IAAO1G,GACLH,EAAMzB,OAASgG,IACjBuC,EAAK9G,EAAM0G,OAAOnC,IAClBA,OAEAuC,EAAK3G,EACwBuF,GAASpD,IAEpCwE,IAAO3G,GAET0G,EAAKtE,EAAQsE,EAAIC,GACjBF,EAAKC,IAELtC,GAAcqC,EACdA,EAAKzG,KAGPoE,GAAcqC,EACdA,EAAKzG,IAIP2F,IAAO3F,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBqC,EAx2CI,IAy2CJrC,OAEAqC,EAAKzG,EACwBuF,GAAS9C,IAEpCgE,IAAOzG,GAET0F,EAAKpD,EAAQqD,GACbF,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,SAIT0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EA9RQ4C,MACMrI,IACT2G,iBAgSRlB,EAAIC,EAAIC,EAAIc,EAh4CKlF,EAAGc,EAERiG,EAg4CZzC,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,WAGhBP,EAAKrB,GACLsB,EAAKtB,GACLuB,EAAK,GACD/C,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAS1C,IAEjC4D,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACJ7D,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAS1C,OAGtC8C,IAAO3F,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBqC,EA37CQ,IA47CRrC,OAEAqC,EAAKzG,EACwBuF,GAAS7D,IAEpC+E,IAAOzG,EAET0F,EADAC,EAAK,CAACA,EAAIc,IAGVrC,GAAcsB,EACdA,EAAK1F,KAGPoE,GAAcsB,EACdA,EAAK1F,GAEH0F,IAAO1F,IACT0F,EAAK,MAEHA,IAAO1F,EAAY,IACrB2F,EAAK,GACD/C,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAS1C,IAEpC4D,IAAOzG,OACFyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACJ7D,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BqC,EAAK5G,EAAM0G,OAAOnC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAAS1C,SAI1C8C,EAAK3F,EAEH2F,IAAO3F,GA58CWqC,EA88CHsD,EA58CL2C,GAFK/G,EA88CJmE,GA58CqB,GAAGqB,OAAOwB,MAAM,GAAIhH,GAAG/B,KAAK,IAAM,GA48CpEkG,EA38Ca,CAAErG,KAAM,UAAWwC,MAAO2G,WAAWF,EAAkBjG,EAAE7C,KAAK,MA48C3EiG,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EA3XUgD,MACMzI,IACT2G,iBA6XVlB,EAAIC,EAEJG,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAIhBN,EAAKW,QACMrG,IAET0F,EAz+C+B,CAAErG,KAAM,UAAWwC,MAy+CrC6D,IAEfD,EAAKC,EAELhB,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GAlZYiD,IAGL/B,IAAO3G,GAET0F,EAAK/D,EAAQ+D,EAAIe,EAAIE,GACrBlB,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAeboE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAKrB,IACLsB,EAAKkC,QACM5H,IAET0F,EAppC8B,CAAErG,KAAM,YAAapC,KAopCtCyI,IAEfD,EAAKC,IAIThB,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA1UEkD,MACM3I,GACJiG,OACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EAz2BE,IA02BFvC,OAEAuC,EAAK3G,EACwBuF,GAASrE,IAEpCyF,IAAO3G,EAGTyF,EADAC,EAAae,GAGbrC,GAAcqB,EACdA,EAAKzF,KAeboE,GAAcqB,EACdA,EAAKzF,GAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA3KEmD,MACM5I,IACTyF,iBA0gCFA,EAAIC,EAAIC,EAAIc,EAAIC,EAAIC,EAAIC,EAjrDP3I,EAmrDjB4H,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EA9uDU,IA+uDVtB,OAEAsB,EAAK1F,EACwBuF,GAAS7D,IAEpCgE,IAAO1F,MACT2F,EAAKU,QACMrG,EAAY,KACrByG,EAAK,GACLC,EAAKtC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBuC,EA1vDM,IA2vDNvC,OAEAuC,EAAK3G,EACwBuF,GAAS7D,IAEpCiF,IAAO3G,IACT4G,EAAKP,QACMrG,EAET0G,EADAC,EAAK,CAACA,EAAIC,IAOZxC,GAAcsC,EACdA,EAAK1G,GAEA0G,IAAO1G,GACZyG,EAAGjB,KAAKkB,GACRA,EAAKtC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBuC,EAjxDI,IAkxDJvC,OAEAuC,EAAK3G,EACwBuF,GAAS7D,IAEpCiF,IAAO3G,IACT4G,EAAKP,QACMrG,EAET0G,EADAC,EAAK,CAACA,EAAIC,IAOZxC,GAAcsC,EACdA,EAAK1G,GAGLyG,IAAOzG,GArvDM/B,EAuvDF0H,EAAbD,EAtvDK,CAAErG,KAAM,QAASpC,KAsvDLwJ,EAtvDcS,QAAO,SAASC,EAAMpC,UAAWoC,EAAOpC,EAAE,GAAKA,EAAE,KAAO9G,IAuvDvFwH,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,OAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EAjmCIoD,MACM7I,IACTyF,iBAmmCJA,EAAIC,EAAQe,EAAQE,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GApxDO,UAqxDRvE,EAAMiI,OAAO1D,GAAa,IAC5BsB,EAtxDU,QAuxDVtB,IAAe,IAEfsB,EAAK1F,EACwBuF,GAAShC,IAEpCmC,IAAO1F,GACJiG,OACMjG,IACTyG,EAAKP,QACMlG,GACJiG,OACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EAnzDE,IAozDFvC,OAEAuC,EAAK3G,EACwBuF,GAAStC,IAEpC0D,IAAO3G,EAGTyF,EADAC,EA1yDwB,CAAErG,KAAM,MAAO8G,UA0yD1BM,IAGbrC,GAAcqB,EACdA,EAAKzF,KAeboE,GAAcqB,EACdA,EAAKzF,GAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA/pCMqD,MACM9I,IACTyF,iBAiqCNA,EAAIC,EAAQe,EAAQE,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GAj1DO,cAk1DRvE,EAAMiI,OAAO1D,GAAa,IAC5BsB,EAn1DU,YAo1DVtB,IAAe,IAEfsB,EAAK1F,EACwBuF,GAAS/B,IAEpCkC,IAAO1F,GACJiG,OACMjG,IACTyG,EAAKP,QACMlG,GACJiG,OACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EAn3DE,IAo3DFvC,OAEAuC,EAAK3G,EACwBuF,GAAStC,IAEpC0D,IAAO3G,EAGTyF,EADAC,EAv2DwB,CAAErG,KAAM,UAAW8G,UAu2D9BM,IAGbrC,GAAcqB,EACdA,EAAKzF,KAeboE,GAAcqB,EACdA,EAAKzF,GAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA7tCQsD,MACM/I,IACTyF,iBA+tCRA,EAAIC,EAAQe,EAAQE,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GA94DO,UA+4DRvE,EAAMiI,OAAO1D,GAAa,IAC5BsB,EAh5DU,QAi5DVtB,IAAe,IAEfsB,EAAK1F,EACwBuF,GAAS9B,IAEpCiC,IAAO1F,GACJiG,OACMjG,IACTyG,EAAKP,QACMlG,GACJiG,OACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EAn7DE,IAo7DFvC,OAEAuC,EAAK3G,EACwBuF,GAAStC,IAEpC0D,IAAO3G,EAGTyF,EADAC,EAp6DwB,CAAErG,KAAM,MAAO8G,UAo6D1BM,IAGbrC,GAAcqB,EACdA,EAAKzF,KAeboE,GAAcqB,EACdA,EAAKzF,GAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA3xCUuD,MACMhJ,IACTyF,iBA6xCVA,EAAIC,EAEJG,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAx8DJ,iBA48DRnG,EAAMiI,OAAO1D,GAAa,KAC5BsB,EA78DU,eA88DVtB,IAAe,KAEfsB,EAAK1F,EACwBuF,GAAS7B,KAEpCgC,IAAO1F,IAET0F,EAn9D8BuD,GAAI,IAq9DpCxD,EAAKC,EAELhB,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GAxzCYyD,MACMlJ,IACTyF,iBA0zCZA,EAAIC,EAEJG,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAp+DJ,gBAw+DRnG,EAAMiI,OAAO1D,GAAa,KAC5BsB,EAz+DU,cA0+DVtB,IAAe,KAEfsB,EAAK1F,EACwBuF,GAAS5B,KAEpC+B,IAAO1F,IAET0F,EA/+D8ByD,GAAQ,IAi/DxC1D,EAAKC,EAELhB,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GAr1Cc2D,MACMpJ,IACTyF,iBAu1CdA,EAAIC,EAAQe,EAAIC,EAAIC,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,GAngEO,gBAogERvE,EAAMiI,OAAO1D,GAAa,KAC5BsB,EArgEU,cAsgEVtB,IAAe,KAEfsB,EAAK1F,EACwBuF,GAAS3B,KAEpC8B,IAAO1F,KACJiG,OACMjG,EAAY,IACrByG,EAAK,GACD7D,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BsC,EAAK7G,EAAM0G,OAAOnC,IAClBA,OAEAsC,EAAK1G,EACwBuF,GAAS1C,IAEpC6D,IAAO1G,OACF0G,IAAO1G,GACZyG,EAAGjB,KAAKkB,GACJ9D,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BsC,EAAK7G,EAAM0G,OAAOnC,IAClBA,OAEAsC,EAAK1G,EACwBuF,GAAS1C,SAI1C4D,EAAKzG,EAEHyG,IAAOzG,IACT0G,EAAKT,QACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EAtkEE,IAukEFvC,OAEAuC,EAAK3G,EACwBuF,GAAStC,IAEpC0D,IAAO3G,GAET0F,EA9iEuBuD,GAAII,SA8iEd5C,EA9iEyBjH,KAAK,IAAK,KA+iEhDiG,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAOToE,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,OAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EAx6CgB6D,MACMtJ,IACTyF,iBA06ChBA,EAAIC,EAAQe,EAAIC,EAAIC,EAEpBd,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,GArlEO,qBAslERvE,EAAMiI,OAAO1D,GAAa,KAC5BsB,EAvlEU,mBAwlEVtB,IAAe,KAEfsB,EAAK1F,EACwBuF,GAAS1B,KAEpC6B,IAAO1F,KACJiG,OACMjG,EAAY,IACrByG,EAAK,GACD7D,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BsC,EAAK7G,EAAM0G,OAAOnC,IAClBA,OAEAsC,EAAK1G,EACwBuF,GAAS1C,IAEpC6D,IAAO1G,OACF0G,IAAO1G,GACZyG,EAAGjB,KAAKkB,GACJ9D,EAAQ0D,KAAKzG,EAAM0G,OAAOnC,MAC5BsC,EAAK7G,EAAM0G,OAAOnC,IAClBA,OAEAsC,EAAK1G,EACwBuF,GAAS1C,SAI1C4D,EAAKzG,EAEHyG,IAAOzG,IACT0G,EAAKT,QACMjG,GAC6B,KAAlCH,EAAMf,WAAWsF,KACnBuC,EA3pEE,IA4pEFvC,OAEAuC,EAAK3G,EACwBuF,GAAStC,IAEpC0D,IAAO3G,GAET0F,EAhoEuByD,GAAQE,SAgoElB5C,EAhoE6BjH,KAAK,IAAK,KAioEpDiG,EAAKC,IAELtB,GAAcqB,EACdA,EAAKzF,KAOToE,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,OAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,EA3/CkB8D,MACMvJ,IACTyF,iBA6/ClBA,EAAIC,EAAIC,EAERE,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,UAE1BC,GACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,SAGhBP,EAAKrB,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsB,EAzqEW,IA0qEXtB,OAEAsB,EAAK1F,EACwBuF,GAASzB,KAEpC4B,IAAO1F,GA7qEE,cA8qEPH,EAAMiI,OAAO1D,GAAa,GAAGoF,eAC/B7D,EAAK9F,EAAMiI,OAAO1D,GAAa,GAC/BA,IAAe,IAEfuB,EAAK3F,EACwBuF,GAASxB,KAEpC4B,IAAO3F,IAnrEA,eAorELH,EAAMiI,OAAO1D,GAAa,IAAIoF,eAChC7D,EAAK9F,EAAMiI,OAAO1D,GAAa,IAC/BA,IAAe,KAEfuB,EAAK3F,EACwBuF,GAASvB,KAEpC2B,IAAO3F,IAzrEF,gBA0rEHH,EAAMiI,OAAO1D,GAAa,IAAIoF,eAChC7D,EAAK9F,EAAMiI,OAAO1D,GAAa,IAC/BA,IAAe,KAEfuB,EAAK3F,EACwBuF,GAAStB,KAEpC0B,IAAO3F,IA/rEJ,aAgsEDH,EAAMiI,OAAO1D,GAAa,GAAGoF,eAC/B7D,EAAK9F,EAAMiI,OAAO1D,GAAa,GAC/BA,IAAe,IAEfuB,EAAK3F,EACwBuF,GAASrB,KAEpCyB,IAAO3F,IArsEN,YAssECH,EAAMiI,OAAO1D,GAAa,GAAGoF,eAC/B7D,EAAK9F,EAAMiI,OAAO1D,GAAa,GAC/BA,IAAe,IAEfuB,EAAK3F,EACwBuF,GAASpB,SAM5CwB,IAAO3F,EAGTyF,EADAC,EAhtEO,CAAErG,KAAM,QAASpC,KAgtEV0I,IAGdvB,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,GA3kDoBgE,IAa3B/E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,YAwPAmC,SACHnC,EAAIC,EAAIC,EAAIc,EAAIC,EAAIC,EA7+BHpF,EAAGiG,EA++BpB3B,EAAuB,GAAdzB,GAAmB,GAC5B0B,EAASpB,GAAiBmB,MAE1BC,SACF1B,GAAc0B,EAAOC,QAEdD,EAAOE,UAGhBP,EAAKrB,IACLsB,EAAKW,QACMrG,EAAY,KACrB2F,EAAK,GACLc,EAAKrC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsC,EAhgCQ,IAigCRtC,OAEAsC,EAAK1G,EACwBuF,GAAS7D,IAEpCgF,IAAO1G,IACT2G,EAAKN,QACMrG,EAETyG,EADAC,EAAK,CAACA,EAAIC,IAOZvC,GAAcqC,EACdA,EAAKzG,GAEAyG,IAAOzG,GACZ2F,EAAGH,KAAKiB,GACRA,EAAKrC,GACiC,KAAlCvE,EAAMf,WAAWsF,KACnBsC,EAvhCM,IAwhCNtC,OAEAsC,EAAK1G,EACwBuF,GAAS7D,IAEpCgF,IAAO1G,IACT2G,EAAKN,QACMrG,EAETyG,EADAC,EAAK,CAACA,EAAIC,IAOZvC,GAAcqC,EACdA,EAAKzG,GAGL2F,IAAO3F,GAziCQuB,EA2iCJmE,EA3iCO8B,EA2iCH7B,EACjBF,EADAC,EA1iCS,GAAGqB,OAAOwB,MAAM,CAAChH,GAAIiG,GAAIhI,KAAK,MA6iCvC4E,GAAcqB,EACdA,EAAKzF,QAGPoE,GAAcqB,EACdA,EAAKzF,SAGP0E,GAAiBmB,GAAO,CAAEE,QAAS3B,GAAa4B,OAAQP,GAEjDA,WA4vCEwD,GAAIS,SAAY,CAAErK,KAAM,YAAasK,MAAO,CAAEtK,KAAM,UAAWwC,MAAO6H,aACtEP,GAAQO,SAAY,CAAErK,KAAM,iBAAkBsK,MAAO,CAAEtK,KAAM,UAAWwC,MAAO6H,QAgB1F3J,EAAaK,OAEMJ,GAAcoE,KAAgBvE,EAAMzB,cAC9C2B,QAEHA,IAAeC,GAAcoE,GAAcvE,EAAMzB,QACnDmH,GA7rEK,CAAElG,KAAM,QAyEiBvC,EAwnE9B2H,GAxnEwC1H,EAynExCyH,GAAiB3E,EAAMzB,OAASyB,EAAM0G,OAAO/B,IAAkB,KAznEhBxH,EA0nE/CwH,GAAiB3E,EAAMzB,OACnB6G,GAAoBT,GAAgBA,GAAiB,GACrDS,GAAoBT,GAAgBA,IA3nEnC,IAAI5H,EACTA,EAAgBe,aAAab,EAAUC,GACvCD,EACAC,EACAC,KAhaa4M,OC+ErB,SAASC,EAAQC,EAAMC,EAAUC,EAAUlK,OAClCiK,SAAmB,MACnBD,SAAe,SACfE,IAAYA,EAAW,IAErBD,EAAS1K,UACP,kBACM,MAEN,oBACM0K,EAASlI,MAAM2H,gBAAkBM,EAAKzK,KAAKmK,kBAEjD,YACKS,EAAOF,EAAS9M,KAAKiN,MAAM,KAC3BC,EAAWH,EAASC,EAAK7L,OAAS,UAnDpD,SAASgM,EAAON,EAAMK,EAAUF,MACR,IAAhBA,EAAK7L,cAAuB0L,IAASK,KACzB,MAAZA,SAA2B,MACzBE,EAAQF,EAASF,EAAK,IACtBK,EAAgBL,EAAK1K,MAAM,MAC7BlB,MAAMkM,QAAQF,GAAQ,WACEA,kCAAO,IACvBD,EAAON,UAAiBQ,UAAyB,wCAElD,SAEAF,EAAON,EAAMO,EAAOC,GAyChBF,CAAON,EAAMK,EAAUF,OAG7B,oBACiBF,EAAS5D,0CAAW,KAA3BqE,aACHX,EAAQC,EAAMU,EAAKR,EAAUlK,UAAmB,wCAEjD,MAEN,qBACiBiK,EAAS5D,0CAAW,KAA3BqE,cACFX,EAAQC,EAAMU,EAAKR,EAAUlK,UAAmB,wCAElD,MAEN,gBACiBiK,EAAS5D,0CAAW,KAA3BqE,aACHX,EAAQC,EAAMU,EAAKR,EAAUlK,UAAmB,wCAEjD,MAEN,6BACK2K,EAAY,OACAV,EAAS5D,oCAAhBqE,UACDjJ,EAAI,GACVmJ,EAAWC,SAASb,EAAM,CACtBc,eAAOd,EAAMxM,GACK,MAAVA,GAAkBiE,EAAEsJ,QAAQvN,GAC5BuM,EAAQC,EAAMU,EAAKjJ,EAAGzB,IACtB2K,EAAUjF,KAAKsE,IAGvBgB,iBAAWvJ,EAAEwJ,SACbC,KAAMlL,GAAWA,EAAQmL,YACzBC,SAAUpL,GAAWA,EAAQoL,UAAY,qFAGrB,IAArBT,EAAUrM,6CAGhB,gBACGyL,EAAQC,EAAMC,EAASzC,MAAO0C,EAAUlK,IACjC+J,EAAQG,EAAS,GAAID,EAAS1C,KAAM2C,EAASzK,MAAM,GAAIO,OAIjE,gBACG+J,EAAQC,EAAMC,EAASzC,MAAO0C,EAAUlK,OACnC,IAAI7B,EAAI,EAAGkN,EAAInB,EAAS5L,OAAQH,EAAIkN,IAAKlN,KACtC4L,EAAQG,EAAS/L,GAAI8L,EAAS1C,KAAM2C,EAASzK,MAAMtB,EAAI,GAAI6B,UACpD,SAIZ,MAEN,gBACKiF,EA9HlB,SAAiBqG,EAAKvF,aACLA,EAAIqE,MAAM,qCACC,KAAbrE,aACI,MAAPuF,SAAsBA,EAC1BA,EAAMA,EAAIvF,yCAEPuF,EAwHWC,CAAQvB,EAAMC,EAAS9M,aACzB8M,EAASjI,oBACR,SACW,MAALiD,MACN,WACOgF,EAASlI,MAAMxC,UACd,eAA8B,iBAAN0F,GAAkBgF,EAASlI,MAAMA,MAAMyE,KAAKvB,OACpE,gBAAkB,UAAGgF,EAASlI,MAAMA,mBAAekD,OACnD,cAAegF,EAASlI,MAAMA,UAAiBkD,SAElD,IAAI7H,6CAAsC6M,EAASlI,MAAMxC,WAC9D,YACO0K,EAASlI,MAAMxC,UACd,gBAAkB0K,EAASlI,MAAMA,MAAMyE,KAAKvB,OAC5C,gBAAkB,UAAGgF,EAASlI,MAAMA,mBAAekD,OACnD,cAAegF,EAASlI,MAAMA,UAAiBkD,SAElD,IAAI7H,6CAAsC6M,EAASlI,MAAMxC,WAC9D,YAAa0F,GAAKgF,EAASlI,MAAMA,UACjC,WAAYkD,EAAIgF,EAASlI,MAAMA,UAC/B,WAAYkD,EAAIgF,EAASlI,MAAMA,UAC/B,YAAakD,GAAKgF,EAASlI,MAAMA,YAEpC,IAAI3E,kCAA2B6M,EAASjI,eAE7C,iBACM+H,EAAQC,EAAMC,EAASzC,MAAO0C,EAAUlK,IAC3CwL,EAAQxB,EAAMC,EAAS1C,KAAM2C,EAnL3B,YAmLgDlK,IAClDiK,EAAS1C,KAAKE,SACdsC,EAAQC,EAAMC,EAAS1C,KAAM2C,EAAUlK,IACvCwL,EAAQxB,EAAMC,EAASzC,MAAO0C,EArL3B,aAqLiDlK,OACvD,kBACM+J,EAAQC,EAAMC,EAASzC,MAAO0C,EAAUlK,IAC3CyL,EAASzB,EAAMC,EAAS1C,KAAM2C,EAzL5B,YAyLiDlK,IACnDiK,EAASzC,MAAMC,SACfsC,EAAQC,EAAMC,EAAS1C,KAAM2C,EAAUlK,IACvCyL,EAASzB,EAAMC,EAASzC,MAAO0C,EA3L5B,aA2LkDlK,OAExD,mBACM+J,EAAQC,EAAMC,EAASzC,MAAO0C,EAAUlK,IAC3C0L,EAAS1B,EAAME,GAAU,kBACdD,EAASJ,MAAM9H,MAAQ,IAC/B/B,OAEN,wBACM+J,EAAQC,EAAMC,EAASzC,MAAO0C,EAAUlK,IAC3C0L,EAAS1B,EAAME,GAAU,SAAU5L,UACxBA,EAAS2L,EAASJ,MAAM9H,QAChC/B,OAEN,eACMiK,EAAS9M,KAAKuM,mBACZ,eAC0B,cAAxBM,EAAKzK,KAAKE,OAAO,GAAoB,OAAO,MAE9C,oBAC+B,gBAAzBuK,EAAKzK,KAAKE,OAAO,QACvB,aAC0B,YAAxBuK,EAAKzK,KAAKE,OAAO,GAAkB,OAAO,MAE5C,mBAC+B,eAAzBuK,EAAKzK,KAAKE,OAAO,KACI,YAAxBuK,EAAKzK,KAAKE,OAAO,IAEC,eAAduK,EAAKzK,OACgB,IAApB2K,EAAS5L,QAAqC,iBAArB4L,EAAS,GAAG3K,OAE5B,iBAAdyK,EAAKzK,SACR,iBACoB,wBAAdyK,EAAKzK,MACM,uBAAdyK,EAAKzK,MACS,4BAAdyK,EAAKzK,WAEX,IAAInC,oCAA6B6M,EAAS9M,aAGlD,IAAIC,uCAAgC6M,EAAS1K,OASvD,SAASoM,EAAe3B,EAAMhK,OACpB4L,EAAW5B,EAAKzK,YAClBS,GAAWA,EAAQmL,aAAenL,EAAQmL,YAAYS,GAC/C5L,EAAQmL,YAAYS,GAE3BhB,EAAWiB,YAAYD,GAChBhB,EAAWiB,YAAYD,GAE9B5L,GAAuC,mBAArBA,EAAQoL,SACnBpL,EAAQoL,SAASpB,GAGrB8B,OAAOZ,KAAKlB,GAAM+B,QAAO,SAAUhG,SACvB,SAARA,KAUf,SAASiG,EAAOhC,UACI,OAATA,GAAiC,WAAhBiC,EAAOjC,IAA0C,iBAAdA,EAAKzK,KAapE,SAASiM,EAAQxB,EAAMC,EAAUC,EAAUgC,EAAMlM,OACtCxC,IAAU0M,YACZ1M,SAAiB,YACTmO,EAAenO,EAAQwC,mCACZ,KACdmM,EAAW3O,cACbe,MAAMkM,QAAQ0B,GAAW,KACnBC,EAAaD,EAASE,QAAQrC,MAChCoC,EAAa,eACbE,SAAYC,SA3RV,cA4RFL,GACAI,EAAa,EACbC,EAAaH,IAEbE,EAAaF,EAAa,EAC1BG,EAAaJ,EAAS7N,YAErB,IAAIkO,EAAIF,EAAYE,EAAID,IAAcC,KACnCR,EAAOG,EAASK,KAAOzC,EAAQoC,EAASK,GAAIvC,EAAUC,EAAUlK,UACzD,yCAKhB,EAaX,SAASyL,EAASzB,EAAMC,EAAUC,EAAUgC,EAAMlM,OACvCxC,IAAU0M,YACZ1M,SAAiB,YACTmO,EAAenO,EAAQwC,mCACZ,KACdmM,EAAW3O,cACbe,MAAMkM,QAAQ0B,GAAW,KACnBM,EAAMN,EAASE,QAAQrC,MACzByC,EAAM,cA/TJ,cAgUFP,GAAsBO,EAAM,GAAKT,EAAOG,EAASM,EAAM,KAAO1C,EAAQoC,EAASM,EAAM,GAAIxC,EAAUC,EAAUlK,UACtG,KAhUJ,eAkUHkM,GAAuBO,EAAMN,EAAS7N,OAAS,GAAK0N,EAAOG,EAASM,EAAM,KAAQ1C,EAAQoC,EAASM,EAAM,GAAIxC,EAAUC,EAAUlK,UAC1H,yCAIZ,EAkBX,SAAS0L,EAAS1B,EAAME,EAAUwC,EAAO1M,OAC9BxC,IAAU0M,YACZ1M,SAAiB,YACTmO,EAAenO,EAAQwC,mCACZ,KACdmM,EAAW3O,cACbe,MAAMkM,QAAQ0B,GAAW,KACnBM,EAAMN,EAASE,QAAQrC,MACzByC,GAAO,GAAKA,IAAQC,EAAMP,EAAS7N,eAAkB,yCAG1D,EAUX,SAASqO,EAAS1C,EAAUI,MACR,MAAZJ,GAAuC,UAAnBgC,EAAOhC,SAA+B,GAC9C,MAAZI,IAAoBA,EAAWJ,WAC7B2C,EAAU3C,EAASxC,QAAU,CAAC4C,GAAY,sGACzBwC,CAAe5C,kBAAW,iBAArChF,OAAGyF,OACXkC,EAAQlH,WAARkH,IAAgBD,EAASjC,EAAW,SAANzF,EAAeyF,EAAML,YAEhDuC,EAmBX,SAAS/B,EAASiC,EAAK7C,EAAU8C,EAAS/M,MACjCiK,OACCC,EAAW,GACX8C,EAAcL,EAAS1C,GAC7BW,EAAWC,SAASiC,EAAK,CACrBhC,eAAOd,EAAMxM,MACK,MAAVA,GAAkB0M,EAASa,QAAQvN,GACnCuM,EAAQC,EAAMC,EAAUC,EAAUlK,MAC9BgN,EAAY1O,WACP,IAAIH,EAAI,EAAGkN,EAAI2B,EAAY1O,OAAQH,EAAIkN,IAAKlN,EAAG,CAC5C4L,EAAQC,EAAMgD,EAAY7O,GAAI+L,EAAUlK,IACxC+M,EAAQ/C,EAAMxM,EAAQ0M,OAErB,IAAIsC,EAAI,EAAGS,EAAI/C,EAAS5L,OAAQkO,EAAIS,IAAKT,EAAG,KACvCU,EAAqBhD,EAASzK,MAAM+M,EAAI,GAC1CzC,EAAQG,EAASsC,GAAIQ,EAAY7O,GAAI+O,EAAoBlN,IACzD+M,EAAQ7C,EAASsC,GAAIhP,EAAQ0P,SAKzCH,EAAQ/C,EAAMxM,EAAQ0M,IAIlCc,iBAAWd,EAASe,SACpBC,KAAMlL,GAAWA,EAAQmL,YACzBC,SAAUpL,GAAWA,EAAQoL,UAAY,eAajD,SAAS1I,EAAMoK,EAAK7C,EAAUjK,OACpB4M,EAAU,UAChB/B,EAASiC,EAAK7C,GAAU,SAAUD,GAC9B4C,EAAQlH,KAAKsE,KACdhK,GACI4M,EAQX,SAAS9M,EAAMmK,UACJkD,EAAOrN,MAAMmK,GAUxB,SAASmD,EAAMN,EAAK7C,EAAUjK,UACnB0C,EAAMoK,EAAKhN,EAAMmK,GAAWjK,UAGvCoN,EAAMtN,MAAQA,EACdsN,EAAM1K,MAAQA,EACd0K,EAAMvC,SAAWA,EACjBuC,EAAMrD,QAAUA,EAChBqD,EAAMA,MAAQA"} \ No newline at end of file diff --git a/node_modules/esquery/dist/esquery.min.js b/node_modules/esquery/dist/esquery.min.js new file mode 100644 index 0000000..279d1c7 --- /dev/null +++ b/node_modules/esquery/dist/esquery.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).esquery=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw a}}return r}(e,t)||n(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||n(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){l=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(l)throw i}}}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function i(e,t){return e(t={exports:{}},t.exports),t.exports}var s=i((function(e,t){!function e(t){var r,n,o,a,i,s;function l(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?l(r):r);return n}function u(e,t){this.parent=e,this.key=t}function c(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function f(){}function p(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function h(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function y(e,t){for(var r=e.length-1;r>=0;--r)if(e[r].node===t)return!0;return!1}function d(e,t){return(new f).traverse(e,t)}function m(e,t){var r;return r=function(e,t){var r,n,o,a;for(n=e.length,o=0;n;)t(e[a=o+(r=n>>>1)])?n=r:(o=a+1,n-=r+1);return o}(t,(function(t){return t.range[0]>e.range[0]})),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},o={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:a={},Skip:i={},Remove:s={}},u.prototype.replace=function(e){this.parent[this.key]=e},u.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},f.prototype.path=function(){var e,t,r,n,o;function a(e,t){if(Array.isArray(t))for(r=0,n=t.length;r=0;)if(v=s[f=x[d]])if(Array.isArray(v)){for(m=v.length;(m-=1)>=0;)if(v[m]&&!y(n,v[m])){if(h(l,x[d]))o=new c(v[m],[f,m],"Property",null);else{if(!p(v[m]))continue;o=new c(v[m],[f,m],null,null)}r.push(o)}}else if(p(v)){if(y(n,v))continue;r.push(new c(v,f,null,null))}}}else if(o=n.pop(),u=this.__execute(t.leave,o),this.__state===a||u===a)return},f.prototype.replace=function(e,t){var r,n,o,l,f,y,d,m,x,v,g,b,A;function E(e){var t,n,o,a;if(e.ref.remove())for(n=e.ref.key,a=e.ref.parent,t=r.length;t--;)if((o=r[t]).ref&&o.ref.parent===a){if(o.ref.key=0;)if(v=o[A=x[d]])if(Array.isArray(v)){for(m=v.length;(m-=1)>=0;)if(v[m]){if(h(l,x[d]))y=new c(v[m],[A,m],"Property",new u(v,m));else{if(!p(v[m]))continue;y=new c(v[m],[A,m],null,new u(v,m))}r.push(y)}}else p(v)&&r.push(new c(v,A,null,new u(o,A)))}}else if(y=n.pop(),void 0!==(f=this.__execute(t.leave,y))&&f!==a&&f!==i&&f!==s&&y.ref.replace(f),this.__state!==s&&f!==s||E(y),this.__state===a||f===a)return b.root;return b.root},t.Syntax=r,t.traverse=d,t.replace=function(e,t){return(new f).replace(e,t)},t.attachComments=function(e,t,r){var o,a,i,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(i=0,a=t.length;ie.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?n.Break:u[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),s=0,d(e,{leave:function(e){for(var t;se.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=o,t.VisitorOption=n,t.Controller=f,t.cloneEnvironment=function(){return e({})},t}(t)})),l=i((function(e){e.exports&&(e.exports=function(){function e(t,r,n,o){this.message=t,this.expected=r,this.found=n,this.location=o,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;t<~+.]/,p=me([" ","[","]",",","(",")",":","#","!","=",">","<","~","+","."],!0,!1),h=de(">",!1),y=de("~",!1),d=de("+",!1),m=de(",",!1),x=de("!",!1),v=de("*",!1),g=de("#",!1),b=de("[",!1),A=de("]",!1),E=/^[>","<","!"],!1,!1),_=de("=",!1),w=function(e){return(e||"")+"="},C=/^[><]/,P=me([">","<"],!1,!1),k=de(".",!1),D=function(e,t,r){return{type:"attribute",name:e,operator:t,value:r}},j=de('"',!1),I=/^[^\\"]/,T=me(["\\",'"'],!0,!1),F=de("\\",!1),L={type:"any"},O=function(e,t){return e+t},R=function(e){return{type:"literal",value:(t=e.join(""),t.replace(/\\(.)/g,(function(e,t){switch(t){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";default:return t}})))};var t},B=de("'",!1),M=/^[^\\']/,U=me(["\\","'"],!0,!1),q=/^[0-9]/,V=me([["0","9"]],!1,!1),N=de("type(",!1),W=/^[^ )]/,K=me([" ",")"],!0,!1),G=de(")",!1),z=/^[imsu]/,H=me(["i","m","s","u"],!1,!1),Y=de("/",!1),$=/^[^\/]/,J=me(["/"],!0,!1),Q=de(":not(",!1),X=de(":matches(",!1),Z=de(":has(",!1),ee=de(":first-child",!1),te=de(":last-child",!1),re=de(":nth-child(",!1),ne=de(":nth-last-child(",!1),oe=de(":",!1),ae=de("statement",!0),ie=de("expression",!0),se=de("declaration",!0),le=de("function",!0),ue=de("pattern",!0),ce=0,fe=[{line:1,column:1}],pe=0,he=[],ye={};if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');u=l[r.startRule]}function de(e,t){return{type:"literal",text:e,ignoreCase:t}}function me(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function xe(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};rpe&&(pe=ce,he=[]),he.push(e))}function be(){var e,t,r,n,o=30*ce+0,a=ye[o];return a?(ce=a.nextPos,a.result):(e=ce,(t=Ae())!==s&&(r=_e())!==s&&Ae()!==s?e=t=1===(n=r).length?n[0]:{type:"matches",selectors:n}:(ce=e,e=s),e===s&&(e=ce,(t=Ae())!==s&&(t=void 0),e=t),ye[o]={nextPos:ce,result:e},e)}function Ae(){var e,r,n=30*ce+1,o=ye[n];if(o)return ce=o.nextPos,o.result;for(e=[],32===t.charCodeAt(ce)?(r=" ",ce++):(r=s,ge(c));r!==s;)e.push(r),32===t.charCodeAt(ce)?(r=" ",ce++):(r=s,ge(c));return ye[n]={nextPos:ce,result:e},e}function Ee(){var e,r,n,o=30*ce+2,a=ye[o];if(a)return ce=a.nextPos,a.result;if(r=[],f.test(t.charAt(ce))?(n=t.charAt(ce),ce++):(n=s,ge(p)),n!==s)for(;n!==s;)r.push(n),f.test(t.charAt(ce))?(n=t.charAt(ce),ce++):(n=s,ge(p));else r=s;return r!==s&&(r=r.join("")),e=r,ye[o]={nextPos:ce,result:e},e}function Se(){var e,r,n,o=30*ce+3,a=ye[o];return a?(ce=a.nextPos,a.result):(e=ce,(r=Ae())!==s?(62===t.charCodeAt(ce)?(n=">",ce++):(n=s,ge(h)),n!==s&&Ae()!==s?e=r="child":(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=Ae())!==s?(126===t.charCodeAt(ce)?(n="~",ce++):(n=s,ge(y)),n!==s&&Ae()!==s?e=r="sibling":(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=Ae())!==s?(43===t.charCodeAt(ce)?(n="+",ce++):(n=s,ge(d)),n!==s&&Ae()!==s?e=r="adjacent":(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,32===t.charCodeAt(ce)?(r=" ",ce++):(r=s,ge(c)),r!==s&&(n=Ae())!==s?e=r="descendant":(ce=e,e=s)))),ye[o]={nextPos:ce,result:e},e)}function _e(){var e,r,n,o,a,i,l,u,c=30*ce+4,f=ye[c];if(f)return ce=f.nextPos,f.result;if(e=ce,(r=we())!==s){for(n=[],o=ce,(a=Ae())!==s?(44===t.charCodeAt(ce)?(i=",",ce++):(i=s,ge(m)),i!==s&&(l=Ae())!==s&&(u=we())!==s?o=a=[a,i,l,u]:(ce=o,o=s)):(ce=o,o=s);o!==s;)n.push(o),o=ce,(a=Ae())!==s?(44===t.charCodeAt(ce)?(i=",",ce++):(i=s,ge(m)),i!==s&&(l=Ae())!==s&&(u=we())!==s?o=a=[a,i,l,u]:(ce=o,o=s)):(ce=o,o=s);n!==s?e=r=[r].concat(n.map((function(e){return e[3]}))):(ce=e,e=s)}else ce=e,e=s;return ye[c]={nextPos:ce,result:e},e}function we(){var e,t,r,n,o,a,i,l=30*ce+5,u=ye[l];if(u)return ce=u.nextPos,u.result;if(e=ce,(t=Ce())!==s){for(r=[],n=ce,(o=Se())!==s&&(a=Ce())!==s?n=o=[o,a]:(ce=n,n=s);n!==s;)r.push(n),n=ce,(o=Se())!==s&&(a=Ce())!==s?n=o=[o,a]:(ce=n,n=s);r!==s?(i=t,e=t=r.reduce((function(e,t){return{type:t[0],left:e,right:t[1]}}),i)):(ce=e,e=s)}else ce=e,e=s;return ye[l]={nextPos:ce,result:e},e}function Ce(){var e,r,n,o,a,i,l,u=30*ce+6,c=ye[u];if(c)return ce=c.nextPos,c.result;if(e=ce,33===t.charCodeAt(ce)?(r="!",ce++):(r=s,ge(x)),r===s&&(r=null),r!==s){if(n=[],(o=Pe())!==s)for(;o!==s;)n.push(o),o=Pe();else n=s;n!==s?(a=r,l=1===(i=n).length?i[0]:{type:"compound",selectors:i},a&&(l.subject=!0),e=r=l):(ce=e,e=s)}else ce=e,e=s;return ye[u]={nextPos:ce,result:e},e}function Pe(){var e,r=30*ce+7,n=ye[r];return n?(ce=n.nextPos,n.result):((e=function(){var e,r,n=30*ce+8,o=ye[n];return o?(ce=o.nextPos,o.result):(42===t.charCodeAt(ce)?(r="*",ce++):(r=s,ge(v)),r!==s&&(r={type:"wildcard",value:r}),e=r,ye[n]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,o=30*ce+9,a=ye[o];return a?(ce=a.nextPos,a.result):(e=ce,35===t.charCodeAt(ce)?(r="#",ce++):(r=s,ge(g)),r===s&&(r=null),r!==s&&(n=Ee())!==s?e=r={type:"identifier",value:n}:(ce=e,e=s),ye[o]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,o,a=30*ce+10,i=ye[a];return i?(ce=i.nextPos,i.result):(e=ce,91===t.charCodeAt(ce)?(r="[",ce++):(r=s,ge(b)),r!==s&&Ae()!==s&&(n=function(){var e,r,n,o,a=30*ce+14,i=ye[a];return i?(ce=i.nextPos,i.result):(e=ce,(r=ke())!==s&&Ae()!==s&&(n=function(){var e,r,n,o=30*ce+12,a=ye[o];return a?(ce=a.nextPos,a.result):(e=ce,33===t.charCodeAt(ce)?(r="!",ce++):(r=s,ge(x)),r===s&&(r=null),r!==s?(61===t.charCodeAt(ce)?(n="=",ce++):(n=s,ge(_)),n!==s?(r=w(r),e=r):(ce=e,e=s)):(ce=e,e=s),ye[o]={nextPos:ce,result:e},e)}())!==s&&Ae()!==s?((o=function(){var e,r,n,o,a,i=30*ce+18,l=ye[i];if(l)return ce=l.nextPos,l.result;if(e=ce,"type("===t.substr(ce,5)?(r="type(",ce+=5):(r=s,ge(N)),r!==s)if(Ae()!==s){if(n=[],W.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(K)),o!==s)for(;o!==s;)n.push(o),W.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(K));else n=s;n!==s&&(o=Ae())!==s?(41===t.charCodeAt(ce)?(a=")",ce++):(a=s,ge(G)),a!==s?(r={type:"type",value:n.join("")},e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[i]={nextPos:ce,result:e},e}())===s&&(o=function(){var e,r,n,o,a,i,l=30*ce+20,u=ye[l];if(u)return ce=u.nextPos,u.result;if(e=ce,47===t.charCodeAt(ce)?(r="/",ce++):(r=s,ge(Y)),r!==s){if(n=[],$.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(J)),o!==s)for(;o!==s;)n.push(o),$.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(J));else n=s;n!==s?(47===t.charCodeAt(ce)?(o="/",ce++):(o=s,ge(Y)),o!==s?((a=function(){var e,r,n=30*ce+19,o=ye[n];if(o)return ce=o.nextPos,o.result;if(e=[],z.test(t.charAt(ce))?(r=t.charAt(ce),ce++):(r=s,ge(H)),r!==s)for(;r!==s;)e.push(r),z.test(t.charAt(ce))?(r=t.charAt(ce),ce++):(r=s,ge(H));else e=s;return ye[n]={nextPos:ce,result:e},e}())===s&&(a=null),a!==s?(i=a,r={type:"regexp",value:new RegExp(n.join(""),i?i.join(""):"")},e=r):(ce=e,e=s)):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;return ye[l]={nextPos:ce,result:e},e}()),o!==s?(r=D(r,n,o),e=r):(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=ke())!==s&&Ae()!==s&&(n=function(){var e,r,n,o=30*ce+11,a=ye[o];return a?(ce=a.nextPos,a.result):(e=ce,E.test(t.charAt(ce))?(r=t.charAt(ce),ce++):(r=s,ge(S)),r===s&&(r=null),r!==s?(61===t.charCodeAt(ce)?(n="=",ce++):(n=s,ge(_)),n!==s?(r=w(r),e=r):(ce=e,e=s)):(ce=e,e=s),e===s&&(C.test(t.charAt(ce))?(e=t.charAt(ce),ce++):(e=s,ge(P))),ye[o]={nextPos:ce,result:e},e)}())!==s&&Ae()!==s?((o=function(){var e,r,n,o,a,i,l=30*ce+15,u=ye[l];if(u)return ce=u.nextPos,u.result;if(e=ce,34===t.charCodeAt(ce)?(r='"',ce++):(r=s,ge(j)),r!==s){for(n=[],I.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(T)),o===s&&(o=ce,92===t.charCodeAt(ce)?(a="\\",ce++):(a=s,ge(F)),a!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(a=O(a,i),o=a):(ce=o,o=s)):(ce=o,o=s));o!==s;)n.push(o),I.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(T)),o===s&&(o=ce,92===t.charCodeAt(ce)?(a="\\",ce++):(a=s,ge(F)),a!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(a=O(a,i),o=a):(ce=o,o=s)):(ce=o,o=s));n!==s?(34===t.charCodeAt(ce)?(o='"',ce++):(o=s,ge(j)),o!==s?(r=R(n),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;if(e===s)if(e=ce,39===t.charCodeAt(ce)?(r="'",ce++):(r=s,ge(B)),r!==s){for(n=[],M.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(U)),o===s&&(o=ce,92===t.charCodeAt(ce)?(a="\\",ce++):(a=s,ge(F)),a!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(a=O(a,i),o=a):(ce=o,o=s)):(ce=o,o=s));o!==s;)n.push(o),M.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(U)),o===s&&(o=ce,92===t.charCodeAt(ce)?(a="\\",ce++):(a=s,ge(F)),a!==s?(t.length>ce?(i=t.charAt(ce),ce++):(i=s,ge(L)),i!==s?(a=O(a,i),o=a):(ce=o,o=s)):(ce=o,o=s));n!==s?(39===t.charCodeAt(ce)?(o="'",ce++):(o=s,ge(B)),o!==s?(r=R(n),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;return ye[l]={nextPos:ce,result:e},e}())===s&&(o=function(){var e,r,n,o,a,i,l,u=30*ce+16,c=ye[u];if(c)return ce=c.nextPos,c.result;for(e=ce,r=ce,n=[],q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V));o!==s;)n.push(o),q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V));if(n!==s?(46===t.charCodeAt(ce)?(o=".",ce++):(o=s,ge(k)),o!==s?r=n=[n,o]:(ce=r,r=s)):(ce=r,r=s),r===s&&(r=null),r!==s){if(n=[],q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V)),o!==s)for(;o!==s;)n.push(o),q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V));else n=s;n!==s?(i=n,l=(a=r)?[].concat.apply([],a).join(""):"",r={type:"literal",value:parseFloat(l+i.join(""))},e=r):(ce=e,e=s)}else ce=e,e=s;return ye[u]={nextPos:ce,result:e},e}())===s&&(o=function(){var e,t,r=30*ce+17,n=ye[r];return n?(ce=n.nextPos,n.result):((t=Ee())!==s&&(t={type:"literal",value:t}),e=t,ye[r]={nextPos:ce,result:e},e)}()),o!==s?(r=D(r,n,o),e=r):(ce=e,e=s)):(ce=e,e=s),e===s&&(e=ce,(r=ke())!==s&&(r={type:"attribute",name:r}),e=r)),ye[a]={nextPos:ce,result:e},e)}())!==s&&Ae()!==s?(93===t.charCodeAt(ce)?(o="]",ce++):(o=s,ge(A)),o!==s?e=r=n:(ce=e,e=s)):(ce=e,e=s),ye[a]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,o,a,i,l,u,c=30*ce+21,f=ye[c];if(f)return ce=f.nextPos,f.result;if(e=ce,46===t.charCodeAt(ce)?(r=".",ce++):(r=s,ge(k)),r!==s)if((n=Ee())!==s){for(o=[],a=ce,46===t.charCodeAt(ce)?(i=".",ce++):(i=s,ge(k)),i!==s&&(l=Ee())!==s?a=i=[i,l]:(ce=a,a=s);a!==s;)o.push(a),a=ce,46===t.charCodeAt(ce)?(i=".",ce++):(i=s,ge(k)),i!==s&&(l=Ee())!==s?a=i=[i,l]:(ce=a,a=s);o!==s?(u=n,r={type:"field",name:o.reduce((function(e,t){return e+t[0]+t[1]}),u)},e=r):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[c]={nextPos:ce,result:e},e}())===s&&(e=function(){var e,r,n,o,a=30*ce+22,i=ye[a];return i?(ce=i.nextPos,i.result):(e=ce,":not("===t.substr(ce,5)?(r=":not(",ce+=5):(r=s,ge(Q)),r!==s&&Ae()!==s&&(n=_e())!==s&&Ae()!==s?(41===t.charCodeAt(ce)?(o=")",ce++):(o=s,ge(G)),o!==s?e=r={type:"not",selectors:n}:(ce=e,e=s)):(ce=e,e=s),ye[a]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,o,a=30*ce+23,i=ye[a];return i?(ce=i.nextPos,i.result):(e=ce,":matches("===t.substr(ce,9)?(r=":matches(",ce+=9):(r=s,ge(X)),r!==s&&Ae()!==s&&(n=_e())!==s&&Ae()!==s?(41===t.charCodeAt(ce)?(o=")",ce++):(o=s,ge(G)),o!==s?e=r={type:"matches",selectors:n}:(ce=e,e=s)):(ce=e,e=s),ye[a]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,o,a=30*ce+24,i=ye[a];return i?(ce=i.nextPos,i.result):(e=ce,":has("===t.substr(ce,5)?(r=":has(",ce+=5):(r=s,ge(Z)),r!==s&&Ae()!==s&&(n=_e())!==s&&Ae()!==s?(41===t.charCodeAt(ce)?(o=")",ce++):(o=s,ge(G)),o!==s?e=r={type:"has",selectors:n}:(ce=e,e=s)):(ce=e,e=s),ye[a]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n=30*ce+25,o=ye[n];return o?(ce=o.nextPos,o.result):(":first-child"===t.substr(ce,12)?(r=":first-child",ce+=12):(r=s,ge(ee)),r!==s&&(r=De(1)),e=r,ye[n]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n=30*ce+26,o=ye[n];return o?(ce=o.nextPos,o.result):(":last-child"===t.substr(ce,11)?(r=":last-child",ce+=11):(r=s,ge(te)),r!==s&&(r=je(1)),e=r,ye[n]={nextPos:ce,result:e},e)}())===s&&(e=function(){var e,r,n,o,a,i=30*ce+27,l=ye[i];if(l)return ce=l.nextPos,l.result;if(e=ce,":nth-child("===t.substr(ce,11)?(r=":nth-child(",ce+=11):(r=s,ge(re)),r!==s)if(Ae()!==s){if(n=[],q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V)),o!==s)for(;o!==s;)n.push(o),q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V));else n=s;n!==s&&(o=Ae())!==s?(41===t.charCodeAt(ce)?(a=")",ce++):(a=s,ge(G)),a!==s?(r=De(parseInt(n.join(""),10)),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[i]={nextPos:ce,result:e},e}())===s&&(e=function(){var e,r,n,o,a,i=30*ce+28,l=ye[i];if(l)return ce=l.nextPos,l.result;if(e=ce,":nth-last-child("===t.substr(ce,16)?(r=":nth-last-child(",ce+=16):(r=s,ge(ne)),r!==s)if(Ae()!==s){if(n=[],q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V)),o!==s)for(;o!==s;)n.push(o),q.test(t.charAt(ce))?(o=t.charAt(ce),ce++):(o=s,ge(V));else n=s;n!==s&&(o=Ae())!==s?(41===t.charCodeAt(ce)?(a=")",ce++):(a=s,ge(G)),a!==s?(r=je(parseInt(n.join(""),10)),e=r):(ce=e,e=s)):(ce=e,e=s)}else ce=e,e=s;else ce=e,e=s;return ye[i]={nextPos:ce,result:e},e}())===s&&(e=function(){var e,r,n,o=30*ce+29,a=ye[o];return a?(ce=a.nextPos,a.result):(e=ce,58===t.charCodeAt(ce)?(r=":",ce++):(r=s,ge(oe)),r!==s?("statement"===t.substr(ce,9).toLowerCase()?(n=t.substr(ce,9),ce+=9):(n=s,ge(ae)),n===s&&("expression"===t.substr(ce,10).toLowerCase()?(n=t.substr(ce,10),ce+=10):(n=s,ge(ie)),n===s&&("declaration"===t.substr(ce,11).toLowerCase()?(n=t.substr(ce,11),ce+=11):(n=s,ge(se)),n===s&&("function"===t.substr(ce,8).toLowerCase()?(n=t.substr(ce,8),ce+=8):(n=s,ge(le)),n===s&&("pattern"===t.substr(ce,7).toLowerCase()?(n=t.substr(ce,7),ce+=7):(n=s,ge(ue)))))),n!==s?e=r={type:"class",name:n}:(ce=e,e=s)):(ce=e,e=s),ye[o]={nextPos:ce,result:e},e)}()),ye[r]={nextPos:ce,result:e},e)}function ke(){var e,r,n,o,a,i,l,u,c=30*ce+13,f=ye[c];if(f)return ce=f.nextPos,f.result;if(e=ce,(r=Ee())!==s){for(n=[],o=ce,46===t.charCodeAt(ce)?(a=".",ce++):(a=s,ge(k)),a!==s&&(i=Ee())!==s?o=a=[a,i]:(ce=o,o=s);o!==s;)n.push(o),o=ce,46===t.charCodeAt(ce)?(a=".",ce++):(a=s,ge(k)),a!==s&&(i=Ee())!==s?o=a=[a,i]:(ce=o,o=s);n!==s?(l=r,u=n,e=r=[].concat.apply([l],u).join("")):(ce=e,e=s)}else ce=e,e=s;return ye[c]={nextPos:ce,result:e},e}function De(e){return{type:"nth-child",index:{type:"literal",value:e}}}function je(e){return{type:"nth-last-child",index:{type:"literal",value:e}}}if((n=u())!==s&&ce===t.length)return n;throw n!==s&&ce":return w>r.value.value;case">=":return w>=r.value.value}throw new Error("Unknown operator: ".concat(r.operator));case"sibling":return u(t,r.right,n,o)&&p(t,r.left,n,"LEFT_SIDE",o)||r.left.subject&&u(t,r.left,n,o)&&p(t,r.right,n,"RIGHT_SIDE",o);case"adjacent":return u(t,r.right,n,o)&&h(t,r.left,n,"LEFT_SIDE",o)||r.right.subject&&u(t,r.left,n,o)&&h(t,r.right,n,"RIGHT_SIDE",o);case"nth-child":return u(t,r.right,n,o)&&y(t,n,(function(){return r.index.value-1}),o);case"nth-last-child":return u(t,r.right,n,o)&&y(t,n,(function(e){return e-r.index.value}),o);case"class":switch(r.name.toLowerCase()){case"statement":if("Statement"===t.type.slice(-9))return!0;case"declaration":return"Declaration"===t.type.slice(-11);case"pattern":if("Pattern"===t.type.slice(-7))return!0;case"expression":return"Expression"===t.type.slice(-10)||"Literal"===t.type.slice(-7)||"Identifier"===t.type&&(0===n.length||"MetaProperty"!==n[0].type)||"MetaProperty"===t.type;case"function":return"FunctionDeclaration"===t.type||"FunctionExpression"===t.type||"ArrowFunctionExpression"===t.type}throw new Error("Unknown class name: ".concat(r.name))}throw new Error("Unknown selector type: ".concat(r.type))}function c(e,t){var r=e.type;return t&&t.visitorKeys&&t.visitorKeys[r]?t.visitorKeys[r]:s.VisitorKeys[r]?s.VisitorKeys[r]:t&&"function"==typeof t.fallback?t.fallback(e):Object.keys(e).filter((function(e){return"type"!==e}))}function f(t){return null!==t&&"object"===e(t)&&"string"==typeof t.type}function p(e,r,n,o,i){var s=t(n,1)[0];if(!s)return!1;var l,p=a(c(s,i));try{for(p.s();!(l=p.n()).done;){var h=s[l.value];if(Array.isArray(h)){var y=h.indexOf(e);if(y<0)continue;var d=void 0,m=void 0;"LEFT_SIDE"===o?(d=0,m=y):(d=y+1,m=h.length);for(var x=d;x0&&f(h[y-1])&&u(h[y-1],r,n,i))return!0;if("RIGHT_SIDE"===o&&y=0&&f===n(u.length))return!0}}}catch(e){l.e(e)}finally{l.f()}return!1}function d(n,o){if(null==n||"object"!=e(n))return[];null==o&&(o=n);for(var a=n.subject?[o]:[],i=0,s=function(e){for(var t=[],r=Object.keys(e),n=0;n\n Copyright (C) 2012 Ariya Hidayat \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true*/\n(function clone(exports) {\n 'use strict';\n\n var Syntax,\n VisitorOption,\n VisitorKeys,\n BREAK,\n SKIP,\n REMOVE;\n\n function deepCopy(obj) {\n var ret = {}, key, val;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n val = obj[key];\n if (typeof val === 'object' && val !== null) {\n ret[key] = deepCopy(val);\n } else {\n ret[key] = val;\n }\n }\n }\n return ret;\n }\n\n // based on LLVM libc++ upper_bound / lower_bound\n // MIT License\n\n function upperBound(array, func) {\n var diff, len, i, current;\n\n len = array.length;\n i = 0;\n\n while (len) {\n diff = len >>> 1;\n current = i + diff;\n if (func(array[current])) {\n len = diff;\n } else {\n i = current + 1;\n len -= diff + 1;\n }\n }\n return i;\n }\n\n Syntax = {\n AssignmentExpression: 'AssignmentExpression',\n AssignmentPattern: 'AssignmentPattern',\n ArrayExpression: 'ArrayExpression',\n ArrayPattern: 'ArrayPattern',\n ArrowFunctionExpression: 'ArrowFunctionExpression',\n AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n BlockStatement: 'BlockStatement',\n BinaryExpression: 'BinaryExpression',\n BreakStatement: 'BreakStatement',\n CallExpression: 'CallExpression',\n CatchClause: 'CatchClause',\n ChainExpression: 'ChainExpression',\n ClassBody: 'ClassBody',\n ClassDeclaration: 'ClassDeclaration',\n ClassExpression: 'ClassExpression',\n ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7.\n ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7.\n ConditionalExpression: 'ConditionalExpression',\n ContinueStatement: 'ContinueStatement',\n DebuggerStatement: 'DebuggerStatement',\n DirectiveStatement: 'DirectiveStatement',\n DoWhileStatement: 'DoWhileStatement',\n EmptyStatement: 'EmptyStatement',\n ExportAllDeclaration: 'ExportAllDeclaration',\n ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n ExportNamedDeclaration: 'ExportNamedDeclaration',\n ExportSpecifier: 'ExportSpecifier',\n ExpressionStatement: 'ExpressionStatement',\n ForStatement: 'ForStatement',\n ForInStatement: 'ForInStatement',\n ForOfStatement: 'ForOfStatement',\n FunctionDeclaration: 'FunctionDeclaration',\n FunctionExpression: 'FunctionExpression',\n GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7.\n Identifier: 'Identifier',\n IfStatement: 'IfStatement',\n ImportExpression: 'ImportExpression',\n ImportDeclaration: 'ImportDeclaration',\n ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n ImportSpecifier: 'ImportSpecifier',\n Literal: 'Literal',\n LabeledStatement: 'LabeledStatement',\n LogicalExpression: 'LogicalExpression',\n MemberExpression: 'MemberExpression',\n MetaProperty: 'MetaProperty',\n MethodDefinition: 'MethodDefinition',\n ModuleSpecifier: 'ModuleSpecifier',\n NewExpression: 'NewExpression',\n ObjectExpression: 'ObjectExpression',\n ObjectPattern: 'ObjectPattern',\n Program: 'Program',\n Property: 'Property',\n RestElement: 'RestElement',\n ReturnStatement: 'ReturnStatement',\n SequenceExpression: 'SequenceExpression',\n SpreadElement: 'SpreadElement',\n Super: 'Super',\n SwitchStatement: 'SwitchStatement',\n SwitchCase: 'SwitchCase',\n TaggedTemplateExpression: 'TaggedTemplateExpression',\n TemplateElement: 'TemplateElement',\n TemplateLiteral: 'TemplateLiteral',\n ThisExpression: 'ThisExpression',\n ThrowStatement: 'ThrowStatement',\n TryStatement: 'TryStatement',\n UnaryExpression: 'UnaryExpression',\n UpdateExpression: 'UpdateExpression',\n VariableDeclaration: 'VariableDeclaration',\n VariableDeclarator: 'VariableDeclarator',\n WhileStatement: 'WhileStatement',\n WithStatement: 'WithStatement',\n YieldExpression: 'YieldExpression'\n };\n\n VisitorKeys = {\n AssignmentExpression: ['left', 'right'],\n AssignmentPattern: ['left', 'right'],\n ArrayExpression: ['elements'],\n ArrayPattern: ['elements'],\n ArrowFunctionExpression: ['params', 'body'],\n AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.\n BlockStatement: ['body'],\n BinaryExpression: ['left', 'right'],\n BreakStatement: ['label'],\n CallExpression: ['callee', 'arguments'],\n CatchClause: ['param', 'body'],\n ChainExpression: ['expression'],\n ClassBody: ['body'],\n ClassDeclaration: ['id', 'superClass', 'body'],\n ClassExpression: ['id', 'superClass', 'body'],\n ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.\n ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n ConditionalExpression: ['test', 'consequent', 'alternate'],\n ContinueStatement: ['label'],\n DebuggerStatement: [],\n DirectiveStatement: [],\n DoWhileStatement: ['body', 'test'],\n EmptyStatement: [],\n ExportAllDeclaration: ['source'],\n ExportDefaultDeclaration: ['declaration'],\n ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],\n ExportSpecifier: ['exported', 'local'],\n ExpressionStatement: ['expression'],\n ForStatement: ['init', 'test', 'update', 'body'],\n ForInStatement: ['left', 'right', 'body'],\n ForOfStatement: ['left', 'right', 'body'],\n FunctionDeclaration: ['id', 'params', 'body'],\n FunctionExpression: ['id', 'params', 'body'],\n GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n Identifier: [],\n IfStatement: ['test', 'consequent', 'alternate'],\n ImportExpression: ['source'],\n ImportDeclaration: ['specifiers', 'source'],\n ImportDefaultSpecifier: ['local'],\n ImportNamespaceSpecifier: ['local'],\n ImportSpecifier: ['imported', 'local'],\n Literal: [],\n LabeledStatement: ['label', 'body'],\n LogicalExpression: ['left', 'right'],\n MemberExpression: ['object', 'property'],\n MetaProperty: ['meta', 'property'],\n MethodDefinition: ['key', 'value'],\n ModuleSpecifier: [],\n NewExpression: ['callee', 'arguments'],\n ObjectExpression: ['properties'],\n ObjectPattern: ['properties'],\n Program: ['body'],\n Property: ['key', 'value'],\n RestElement: [ 'argument' ],\n ReturnStatement: ['argument'],\n SequenceExpression: ['expressions'],\n SpreadElement: ['argument'],\n Super: [],\n SwitchStatement: ['discriminant', 'cases'],\n SwitchCase: ['test', 'consequent'],\n TaggedTemplateExpression: ['tag', 'quasi'],\n TemplateElement: [],\n TemplateLiteral: ['quasis', 'expressions'],\n ThisExpression: [],\n ThrowStatement: ['argument'],\n TryStatement: ['block', 'handler', 'finalizer'],\n UnaryExpression: ['argument'],\n UpdateExpression: ['argument'],\n VariableDeclaration: ['declarations'],\n VariableDeclarator: ['id', 'init'],\n WhileStatement: ['test', 'body'],\n WithStatement: ['object', 'body'],\n YieldExpression: ['argument']\n };\n\n // unique id\n BREAK = {};\n SKIP = {};\n REMOVE = {};\n\n VisitorOption = {\n Break: BREAK,\n Skip: SKIP,\n Remove: REMOVE\n };\n\n function Reference(parent, key) {\n this.parent = parent;\n this.key = key;\n }\n\n Reference.prototype.replace = function replace(node) {\n this.parent[this.key] = node;\n };\n\n Reference.prototype.remove = function remove() {\n if (Array.isArray(this.parent)) {\n this.parent.splice(this.key, 1);\n return true;\n } else {\n this.replace(null);\n return false;\n }\n };\n\n function Element(node, path, wrap, ref) {\n this.node = node;\n this.path = path;\n this.wrap = wrap;\n this.ref = ref;\n }\n\n function Controller() { }\n\n // API:\n // return property path array from root to current node\n Controller.prototype.path = function path() {\n var i, iz, j, jz, result, element;\n\n function addToPath(result, path) {\n if (Array.isArray(path)) {\n for (j = 0, jz = path.length; j < jz; ++j) {\n result.push(path[j]);\n }\n } else {\n result.push(path);\n }\n }\n\n // root node\n if (!this.__current.path) {\n return null;\n }\n\n // first node is sentinel, second node is root element\n result = [];\n for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {\n element = this.__leavelist[i];\n addToPath(result, element.path);\n }\n addToPath(result, this.__current.path);\n return result;\n };\n\n // API:\n // return type of current node\n Controller.prototype.type = function () {\n var node = this.current();\n return node.type || this.__current.wrap;\n };\n\n // API:\n // return array of parent elements\n Controller.prototype.parents = function parents() {\n var i, iz, result;\n\n // first node is sentinel\n result = [];\n for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {\n result.push(this.__leavelist[i].node);\n }\n\n return result;\n };\n\n // API:\n // return current node\n Controller.prototype.current = function current() {\n return this.__current.node;\n };\n\n Controller.prototype.__execute = function __execute(callback, element) {\n var previous, result;\n\n result = undefined;\n\n previous = this.__current;\n this.__current = element;\n this.__state = null;\n if (callback) {\n result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);\n }\n this.__current = previous;\n\n return result;\n };\n\n // API:\n // notify control skip / break\n Controller.prototype.notify = function notify(flag) {\n this.__state = flag;\n };\n\n // API:\n // skip child nodes of current node\n Controller.prototype.skip = function () {\n this.notify(SKIP);\n };\n\n // API:\n // break traversals\n Controller.prototype['break'] = function () {\n this.notify(BREAK);\n };\n\n // API:\n // remove node\n Controller.prototype.remove = function () {\n this.notify(REMOVE);\n };\n\n Controller.prototype.__initialize = function(root, visitor) {\n this.visitor = visitor;\n this.root = root;\n this.__worklist = [];\n this.__leavelist = [];\n this.__current = null;\n this.__state = null;\n this.__fallback = null;\n if (visitor.fallback === 'iteration') {\n this.__fallback = Object.keys;\n } else if (typeof visitor.fallback === 'function') {\n this.__fallback = visitor.fallback;\n }\n\n this.__keys = VisitorKeys;\n if (visitor.keys) {\n this.__keys = Object.assign(Object.create(this.__keys), visitor.keys);\n }\n };\n\n function isNode(node) {\n if (node == null) {\n return false;\n }\n return typeof node === 'object' && typeof node.type === 'string';\n }\n\n function isProperty(nodeType, key) {\n return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;\n }\n \n function candidateExistsInLeaveList(leavelist, candidate) {\n for (var i = leavelist.length - 1; i >= 0; --i) {\n if (leavelist[i].node === candidate) {\n return true;\n }\n }\n return false;\n }\n\n Controller.prototype.traverse = function traverse(root, visitor) {\n var worklist,\n leavelist,\n element,\n node,\n nodeType,\n ret,\n key,\n current,\n current2,\n candidates,\n candidate,\n sentinel;\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n worklist.push(new Element(root, null, null, null));\n leavelist.push(new Element(null, null, null, null));\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n ret = this.__execute(visitor.leave, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n continue;\n }\n\n if (element.node) {\n\n ret = this.__execute(visitor.enter, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || ret === SKIP) {\n continue;\n }\n\n node = element.node;\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n\n if (candidateExistsInLeaveList(leavelist, candidate[current2])) {\n continue;\n }\n\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', null);\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, null);\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n if (candidateExistsInLeaveList(leavelist, candidate)) {\n continue;\n }\n\n worklist.push(new Element(candidate, key, null, null));\n }\n }\n }\n }\n };\n\n Controller.prototype.replace = function replace(root, visitor) {\n var worklist,\n leavelist,\n node,\n nodeType,\n target,\n element,\n current,\n current2,\n candidates,\n candidate,\n sentinel,\n outer,\n key;\n\n function removeElem(element) {\n var i,\n key,\n nextElem,\n parent;\n\n if (element.ref.remove()) {\n // When the reference is an element of an array.\n key = element.ref.key;\n parent = element.ref.parent;\n\n // If removed from array, then decrease following items' keys.\n i = worklist.length;\n while (i--) {\n nextElem = worklist[i];\n if (nextElem.ref && nextElem.ref.parent === parent) {\n if (nextElem.ref.key < key) {\n break;\n }\n --nextElem.ref.key;\n }\n }\n }\n }\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n outer = {\n root: root\n };\n element = new Element(root, null, null, new Reference(outer, 'root'));\n worklist.push(element);\n leavelist.push(element);\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n target = this.__execute(visitor.leave, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n continue;\n }\n\n target = this.__execute(visitor.enter, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n element.node = target;\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n element.node = null;\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n\n // node may be null\n node = element.node;\n if (!node) {\n continue;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || target === SKIP) {\n continue;\n }\n\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n worklist.push(new Element(candidate, key, null, new Reference(node, key)));\n }\n }\n }\n\n return outer.root;\n };\n\n function traverse(root, visitor) {\n var controller = new Controller();\n return controller.traverse(root, visitor);\n }\n\n function replace(root, visitor) {\n var controller = new Controller();\n return controller.replace(root, visitor);\n }\n\n function extendCommentRange(comment, tokens) {\n var target;\n\n target = upperBound(tokens, function search(token) {\n return token.range[0] > comment.range[0];\n });\n\n comment.extendedRange = [comment.range[0], comment.range[1]];\n\n if (target !== tokens.length) {\n comment.extendedRange[1] = tokens[target].range[0];\n }\n\n target -= 1;\n if (target >= 0) {\n comment.extendedRange[0] = tokens[target].range[1];\n }\n\n return comment;\n }\n\n function attachComments(tree, providedComments, tokens) {\n // At first, we should calculate extended comment ranges.\n var comments = [], comment, len, i, cursor;\n\n if (!tree.range) {\n throw new Error('attachComments needs range information');\n }\n\n // tokens array is empty, we attach comments to tree as 'leadingComments'\n if (!tokens.length) {\n if (providedComments.length) {\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comment = deepCopy(providedComments[i]);\n comment.extendedRange = [0, tree.range[0]];\n comments.push(comment);\n }\n tree.leadingComments = comments;\n }\n return tree;\n }\n\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));\n }\n\n // This is based on John Freeman's implementation.\n cursor = 0;\n traverse(tree, {\n enter: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (comment.extendedRange[1] > node.range[0]) {\n break;\n }\n\n if (comment.extendedRange[1] === node.range[0]) {\n if (!node.leadingComments) {\n node.leadingComments = [];\n }\n node.leadingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n cursor = 0;\n traverse(tree, {\n leave: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (node.range[1] < comment.extendedRange[0]) {\n break;\n }\n\n if (node.range[1] === comment.extendedRange[0]) {\n if (!node.trailingComments) {\n node.trailingComments = [];\n }\n node.trailingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n return tree;\n }\n\n exports.Syntax = Syntax;\n exports.traverse = traverse;\n exports.replace = replace;\n exports.attachComments = attachComments;\n exports.VisitorKeys = VisitorKeys;\n exports.VisitorOption = VisitorOption;\n exports.Controller = Controller;\n exports.cloneEnvironment = function () { return clone({}); };\n\n return exports;\n}(exports));\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n(function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n }\n})(this, function() {\n \"use strict\";\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n }\n\n peg$subclass(peg$SyntaxError, Error);\n\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n },\n\n \"class\": function(expectation) {\n var escapedParts = \"\",\n i;\n\n for (i = 0; i < expectation.parts.length; i++) {\n escapedParts += expectation.parts[i] instanceof Array\n ? classEscape(expectation.parts[i][0]) + \"-\" + classEscape(expectation.parts[i][1])\n : classEscape(expectation.parts[i]);\n }\n\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n },\n\n any: function(expectation) {\n return \"any character\";\n },\n\n end: function(expectation) {\n return \"end of input\";\n },\n\n other: function(expectation) {\n return expectation.description;\n }\n };\n\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function classEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\]/g, '\\\\]')\n .replace(/\\^/g, '\\\\^')\n .replace(/-/g, '\\\\-')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n\n function describeExpected(expected) {\n var descriptions = new Array(expected.length),\n i, j;\n\n for (i = 0; i < expected.length; i++) {\n descriptions[i] = describeExpectation(expected[i]);\n }\n\n descriptions.sort();\n\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n\n function describeFound(found) {\n return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n }\n\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n\n var peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = function(ss) {\n return ss.length === 1 ? ss[0] : { type: 'matches', selectors: ss };\n },\n peg$c1 = function() { return void 0; },\n peg$c2 = \" \",\n peg$c3 = peg$literalExpectation(\" \", false),\n peg$c4 = /^[^ [\\],():#!=><~+.]/,\n peg$c5 = peg$classExpectation([\" \", \"[\", \"]\", \",\", \"(\", \")\", \":\", \"#\", \"!\", \"=\", \">\", \"<\", \"~\", \"+\", \".\"], true, false),\n peg$c6 = function(i) { return i.join(''); },\n peg$c7 = \">\",\n peg$c8 = peg$literalExpectation(\">\", false),\n peg$c9 = function() { return 'child'; },\n peg$c10 = \"~\",\n peg$c11 = peg$literalExpectation(\"~\", false),\n peg$c12 = function() { return 'sibling'; },\n peg$c13 = \"+\",\n peg$c14 = peg$literalExpectation(\"+\", false),\n peg$c15 = function() { return 'adjacent'; },\n peg$c16 = function() { return 'descendant'; },\n peg$c17 = \",\",\n peg$c18 = peg$literalExpectation(\",\", false),\n peg$c19 = function(s, ss) {\n return [s].concat(ss.map(function (s) { return s[3]; }));\n },\n peg$c20 = function(a, ops) {\n return ops.reduce(function (memo, rhs) {\n return { type: rhs[0], left: memo, right: rhs[1] };\n }, a);\n },\n peg$c21 = \"!\",\n peg$c22 = peg$literalExpectation(\"!\", false),\n peg$c23 = function(subject, as) {\n const b = as.length === 1 ? as[0] : { type: 'compound', selectors: as };\n if(subject) b.subject = true;\n return b;\n },\n peg$c24 = \"*\",\n peg$c25 = peg$literalExpectation(\"*\", false),\n peg$c26 = function(a) { return { type: 'wildcard', value: a }; },\n peg$c27 = \"#\",\n peg$c28 = peg$literalExpectation(\"#\", false),\n peg$c29 = function(i) { return { type: 'identifier', value: i }; },\n peg$c30 = \"[\",\n peg$c31 = peg$literalExpectation(\"[\", false),\n peg$c32 = \"]\",\n peg$c33 = peg$literalExpectation(\"]\", false),\n peg$c34 = function(v) { return v; },\n peg$c35 = /^[>\", \"<\", \"!\"], false, false),\n peg$c37 = \"=\",\n peg$c38 = peg$literalExpectation(\"=\", false),\n peg$c39 = function(a) { return (a || '') + '='; },\n peg$c40 = /^[><]/,\n peg$c41 = peg$classExpectation([\">\", \"<\"], false, false),\n peg$c42 = \".\",\n peg$c43 = peg$literalExpectation(\".\", false),\n peg$c44 = function(a, as) {\n return [].concat.apply([a], as).join('');\n },\n peg$c45 = function(name, op, value) {\n return { type: 'attribute', name: name, operator: op, value: value };\n },\n peg$c46 = function(name) { return { type: 'attribute', name: name }; },\n peg$c47 = \"\\\"\",\n peg$c48 = peg$literalExpectation(\"\\\"\", false),\n peg$c49 = /^[^\\\\\"]/,\n peg$c50 = peg$classExpectation([\"\\\\\", \"\\\"\"], true, false),\n peg$c51 = \"\\\\\",\n peg$c52 = peg$literalExpectation(\"\\\\\", false),\n peg$c53 = peg$anyExpectation(),\n peg$c54 = function(a, b) { return a + b; },\n peg$c55 = function(d) {\n return { type: 'literal', value: strUnescape(d.join('')) };\n },\n peg$c56 = \"'\",\n peg$c57 = peg$literalExpectation(\"'\", false),\n peg$c58 = /^[^\\\\']/,\n peg$c59 = peg$classExpectation([\"\\\\\", \"'\"], true, false),\n peg$c60 = /^[0-9]/,\n peg$c61 = peg$classExpectation([[\"0\", \"9\"]], false, false),\n peg$c62 = function(a, b) {\n // Can use `a.flat().join('')` once supported\n const leadingDecimals = a ? [].concat.apply([], a).join('') : '';\n return { type: 'literal', value: parseFloat(leadingDecimals + b.join('')) };\n },\n peg$c63 = function(i) { return { type: 'literal', value: i }; },\n peg$c64 = \"type(\",\n peg$c65 = peg$literalExpectation(\"type(\", false),\n peg$c66 = /^[^ )]/,\n peg$c67 = peg$classExpectation([\" \", \")\"], true, false),\n peg$c68 = \")\",\n peg$c69 = peg$literalExpectation(\")\", false),\n peg$c70 = function(t) { return { type: 'type', value: t.join('') }; },\n peg$c71 = /^[imsu]/,\n peg$c72 = peg$classExpectation([\"i\", \"m\", \"s\", \"u\"], false, false),\n peg$c73 = \"/\",\n peg$c74 = peg$literalExpectation(\"/\", false),\n peg$c75 = /^[^\\/]/,\n peg$c76 = peg$classExpectation([\"/\"], true, false),\n peg$c77 = function(d, flgs) { return {\n type: 'regexp', value: new RegExp(d.join(''), flgs ? flgs.join('') : '') };\n },\n peg$c78 = function(i, is) {\n return { type: 'field', name: is.reduce(function(memo, p){ return memo + p[0] + p[1]; }, i)};\n },\n peg$c79 = \":not(\",\n peg$c80 = peg$literalExpectation(\":not(\", false),\n peg$c81 = function(ss) { return { type: 'not', selectors: ss }; },\n peg$c82 = \":matches(\",\n peg$c83 = peg$literalExpectation(\":matches(\", false),\n peg$c84 = function(ss) { return { type: 'matches', selectors: ss }; },\n peg$c85 = \":has(\",\n peg$c86 = peg$literalExpectation(\":has(\", false),\n peg$c87 = function(ss) { return { type: 'has', selectors: ss }; },\n peg$c88 = \":first-child\",\n peg$c89 = peg$literalExpectation(\":first-child\", false),\n peg$c90 = function() { return nth(1); },\n peg$c91 = \":last-child\",\n peg$c92 = peg$literalExpectation(\":last-child\", false),\n peg$c93 = function() { return nthLast(1); },\n peg$c94 = \":nth-child(\",\n peg$c95 = peg$literalExpectation(\":nth-child(\", false),\n peg$c96 = function(n) { return nth(parseInt(n.join(''), 10)); },\n peg$c97 = \":nth-last-child(\",\n peg$c98 = peg$literalExpectation(\":nth-last-child(\", false),\n peg$c99 = function(n) { return nthLast(parseInt(n.join(''), 10)); },\n peg$c100 = \":\",\n peg$c101 = peg$literalExpectation(\":\", false),\n peg$c102 = \"statement\",\n peg$c103 = peg$literalExpectation(\"statement\", true),\n peg$c104 = \"expression\",\n peg$c105 = peg$literalExpectation(\"expression\", true),\n peg$c106 = \"declaration\",\n peg$c107 = peg$literalExpectation(\"declaration\", true),\n peg$c108 = \"function\",\n peg$c109 = peg$literalExpectation(\"function\", true),\n peg$c110 = \"pattern\",\n peg$c111 = peg$literalExpectation(\"pattern\", true),\n peg$c112 = function(c) {\n return { type: 'class', name: c };\n },\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1 }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$resultsCache = {},\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location\n );\n }\n\n function error(message, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos], p;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsestart() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 0,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselectors();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1();\n }\n s0 = s1;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 1,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = [];\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseidentifierName() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 2,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c4.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c4.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c6(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsebinaryOp() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 3,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s2 = peg$c7;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c9();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 126) {\n s2 = peg$c10;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c12();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 43) {\n s2 = peg$c13;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c14); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c15();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c16();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseselectors() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n var key = peg$currPos * 30 + 4,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseselector();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c17;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseselector();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c17;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseselector();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c19(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 5,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parsesequence();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parsebinaryOp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesequence();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parsebinaryOp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesequence();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsesequence() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 6,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseatom();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseatom();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseatom() {\n var s0;\n\n var key = peg$currPos * 30 + 7,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$parsewildcard();\n if (s0 === peg$FAILED) {\n s0 = peg$parseidentifier();\n if (s0 === peg$FAILED) {\n s0 = peg$parseattr();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefield();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenegation();\n if (s0 === peg$FAILED) {\n s0 = peg$parsematches();\n if (s0 === peg$FAILED) {\n s0 = peg$parsehas();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefirstChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parselastChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenthChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenthLastChild();\n if (s0 === peg$FAILED) {\n s0 = peg$parseclass();\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsewildcard() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 8,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 42) {\n s1 = peg$c24;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseidentifier() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 9,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c27;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c28); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseidentifierName();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c29(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattr() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 10,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c30;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrValue();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s5 = peg$c32;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrOps() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 11,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (peg$c35.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c37;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n if (peg$c40.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrEqOps() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 12,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c37;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrName() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 13,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseidentifierName();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c42;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parseidentifierName();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c42;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parseidentifierName();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c44(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseattrValue() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 14,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrEqOps();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsetype();\n if (s5 === peg$FAILED) {\n s5 = peg$parseregex();\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c45(s1, s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseattrOps();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsestring();\n if (s5 === peg$FAILED) {\n s5 = peg$parsenumber();\n if (s5 === peg$FAILED) {\n s5 = peg$parsepath();\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c45(s1, s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseattrName();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(s1);\n }\n s0 = s1;\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsestring() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 15,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c47;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c48); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c47;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c48); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c56;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c58.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c58.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s3 === peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s4 = peg$c54(s4, s5);\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c56;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3;\n\n var key = peg$currPos * 30 + 16,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c42;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c62(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsepath() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 17,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n s1 = peg$parseidentifierName();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c63(s1);\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsetype() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 18,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c64) {\n s1 = peg$c64;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c65); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c70(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseflags() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 19,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = [];\n if (peg$c71.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c72); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c71.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c72); }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseregex() {\n var s0, s1, s2, s3, s4;\n\n var key = peg$currPos * 30 + 20,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c73;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c74); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c75.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c76); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c75.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c76); }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s3 = peg$c73;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c74); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseflags();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77(s2, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsefield() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n var key = peg$currPos * 30 + 21,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s1 = peg$c42;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseidentifierName();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s5 = peg$c42;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseidentifierName();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s5 = peg$c42;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseidentifierName();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenegation() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 22,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c79) {\n s1 = peg$c79;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c80); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c81(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsematches() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 23,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 9) === peg$c82) {\n s1 = peg$c82;\n peg$currPos += 9;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c83); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c84(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsehas() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 24,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c85) {\n s1 = peg$c85;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c86); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseselectors();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsefirstChild() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 25,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 12) === peg$c88) {\n s1 = peg$c88;\n peg$currPos += 12;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c89); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c90();\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parselastChild() {\n var s0, s1;\n\n var key = peg$currPos * 30 + 26,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 11) === peg$c91) {\n s1 = peg$c91;\n peg$currPos += 11;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c92); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c93();\n }\n s0 = s1;\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenthChild() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 27,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 11) === peg$c94) {\n s1 = peg$c94;\n peg$currPos += 11;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c95); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c96(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parsenthLastChild() {\n var s0, s1, s2, s3, s4, s5;\n\n var key = peg$currPos * 30 + 28,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 16) === peg$c97) {\n s1 = peg$c97;\n peg$currPos += 16;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c98); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c60.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c68;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c99(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n function peg$parseclass() {\n var s0, s1, s2;\n\n var key = peg$currPos * 30 + 29,\n cached = peg$resultsCache[key];\n\n if (cached) {\n peg$currPos = cached.nextPos;\n\n return cached.result;\n }\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 58) {\n s1 = peg$c100;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c101); }\n }\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 9).toLowerCase() === peg$c102) {\n s2 = input.substr(peg$currPos, 9);\n peg$currPos += 9;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c103); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 10).toLowerCase() === peg$c104) {\n s2 = input.substr(peg$currPos, 10);\n peg$currPos += 10;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c105); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 11).toLowerCase() === peg$c106) {\n s2 = input.substr(peg$currPos, 11);\n peg$currPos += 11;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c107); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 8).toLowerCase() === peg$c108) {\n s2 = input.substr(peg$currPos, 8);\n peg$currPos += 8;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 7).toLowerCase() === peg$c110) {\n s2 = input.substr(peg$currPos, 7);\n peg$currPos += 7;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n }\n }\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c112(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n return s0;\n }\n\n\n function nth(n) { return { type: 'nth-child', index: { type: 'literal', value: n } }; }\n function nthLast(n) { return { type: 'nth-last-child', index: { type: 'literal', value: n } }; }\n function strUnescape(s) {\n return s.replace(/\\\\(.)/g, function(match, ch) {\n switch(ch) {\n case 'b': return '\\b';\n case 'f': return '\\f';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 't': return '\\t';\n case 'v': return '\\v';\n default: return ch;\n }\n });\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n});\n","/* vim: set sw=4 sts=4 : */\nimport estraverse from 'estraverse';\nimport parser from './parser.js';\n\n/**\n* @typedef {\"LEFT_SIDE\"|\"RIGHT_SIDE\"} Side\n*/\n\nconst LEFT_SIDE = 'LEFT_SIDE';\nconst RIGHT_SIDE = 'RIGHT_SIDE';\n\n/**\n * @external AST\n * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html\n */\n\n/**\n * One of the rules of `grammar.pegjs`\n * @typedef {PlainObject} SelectorAST\n * @see grammar.pegjs\n*/\n\n/**\n * The `sequence` production of `grammar.pegjs`\n * @typedef {PlainObject} SelectorSequenceAST\n*/\n\n/**\n * Get the value of a property which may be multiple levels down\n * in the object.\n * @param {?PlainObject} obj\n * @param {string} key\n * @returns {undefined|boolean|string|number|external:AST}\n */\nfunction getPath(obj, key) {\n const keys = key.split('.');\n for (const key of keys) {\n if (obj == null) { return obj; }\n obj = obj[key];\n }\n return obj;\n}\n\n/**\n * Determine whether `node` can be reached by following `path`,\n * starting at `ancestor`.\n * @param {?external:AST} node\n * @param {?external:AST} ancestor\n * @param {string[]} path\n * @returns {boolean}\n */\nfunction inPath(node, ancestor, path) {\n if (path.length === 0) { return node === ancestor; }\n if (ancestor == null) { return false; }\n const field = ancestor[path[0]];\n const remainingPath = path.slice(1);\n if (Array.isArray(field)) {\n for (const component of field) {\n if (inPath(node, component, remainingPath)) { return true; }\n }\n return false;\n } else {\n return inPath(node, field, remainingPath);\n }\n}\n\n/**\n * @callback TraverseOptionFallback\n * @param {external:AST} node The given node.\n * @returns {string[]} An array of visitor keys for the given node.\n */\n/**\n * @typedef {object} ESQueryOptions\n * @property { { [nodeType: string]: string[] } } [visitorKeys] By passing `visitorKeys` mapping, we can extend the properties of the nodes that traverse the node.\n * @property {TraverseOptionFallback} [fallback] By passing `fallback` option, we can control the properties of traversing nodes when encountering unknown nodes.\n */\n\n/**\n * Given a `node` and its ancestors, determine if `node` is matched\n * by `selector`.\n * @param {?external:AST} node\n * @param {?SelectorAST} selector\n * @param {external:AST[]} [ancestry=[]]\n * @param {ESQueryOptions} [options]\n * @throws {Error} Unknowns (operator, class name, selector type, or\n * selector value type)\n * @returns {boolean}\n */\nfunction matches(node, selector, ancestry, options) {\n if (!selector) { return true; }\n if (!node) { return false; }\n if (!ancestry) { ancestry = []; }\n\n switch(selector.type) {\n case 'wildcard':\n return true;\n\n case 'identifier':\n return selector.value.toLowerCase() === node.type.toLowerCase();\n\n case 'field': {\n const path = selector.name.split('.');\n const ancestor = ancestry[path.length - 1];\n return inPath(node, ancestor, path);\n\n }\n case 'matches':\n for (const sel of selector.selectors) {\n if (matches(node, sel, ancestry, options)) { return true; }\n }\n return false;\n\n case 'compound':\n for (const sel of selector.selectors) {\n if (!matches(node, sel, ancestry, options)) { return false; }\n }\n return true;\n\n case 'not':\n for (const sel of selector.selectors) {\n if (matches(node, sel, ancestry, options)) { return false; }\n }\n return true;\n\n case 'has': {\n const collector = [];\n for (const sel of selector.selectors) {\n const a = [];\n estraverse.traverse(node, {\n enter (node, parent) {\n if (parent != null) { a.unshift(parent); }\n if (matches(node, sel, a, options)) {\n collector.push(node);\n }\n },\n leave () { a.shift(); },\n keys: options && options.visitorKeys,\n fallback: options && options.fallback || 'iteration'\n });\n }\n return collector.length !== 0;\n\n }\n case 'child':\n if (matches(node, selector.right, ancestry, options)) {\n return matches(ancestry[0], selector.left, ancestry.slice(1), options);\n }\n return false;\n\n case 'descendant':\n if (matches(node, selector.right, ancestry, options)) {\n for (let i = 0, l = ancestry.length; i < l; ++i) {\n if (matches(ancestry[i], selector.left, ancestry.slice(i + 1), options)) {\n return true;\n }\n }\n }\n return false;\n\n case 'attribute': {\n const p = getPath(node, selector.name);\n switch (selector.operator) {\n case void 0:\n return p != null;\n case '=':\n switch (selector.value.type) {\n case 'regexp': return typeof p === 'string' && selector.value.value.test(p);\n case 'literal': return `${selector.value.value}` === `${p}`;\n case 'type': return selector.value.value === typeof p;\n }\n throw new Error(`Unknown selector value type: ${selector.value.type}`);\n case '!=':\n switch (selector.value.type) {\n case 'regexp': return !selector.value.value.test(p);\n case 'literal': return `${selector.value.value}` !== `${p}`;\n case 'type': return selector.value.value !== typeof p;\n }\n throw new Error(`Unknown selector value type: ${selector.value.type}`);\n case '<=': return p <= selector.value.value;\n case '<': return p < selector.value.value;\n case '>': return p > selector.value.value;\n case '>=': return p >= selector.value.value;\n }\n throw new Error(`Unknown operator: ${selector.operator}`);\n }\n case 'sibling':\n return matches(node, selector.right, ancestry, options) &&\n sibling(node, selector.left, ancestry, LEFT_SIDE, options) ||\n selector.left.subject &&\n matches(node, selector.left, ancestry, options) &&\n sibling(node, selector.right, ancestry, RIGHT_SIDE, options);\n case 'adjacent':\n return matches(node, selector.right, ancestry, options) &&\n adjacent(node, selector.left, ancestry, LEFT_SIDE, options) ||\n selector.right.subject &&\n matches(node, selector.left, ancestry, options) &&\n adjacent(node, selector.right, ancestry, RIGHT_SIDE, options);\n\n case 'nth-child':\n return matches(node, selector.right, ancestry, options) &&\n nthChild(node, ancestry, function () {\n return selector.index.value - 1;\n }, options);\n\n case 'nth-last-child':\n return matches(node, selector.right, ancestry, options) &&\n nthChild(node, ancestry, function (length) {\n return length - selector.index.value;\n }, options);\n\n case 'class':\n switch(selector.name.toLowerCase()){\n case 'statement':\n if(node.type.slice(-9) === 'Statement') return true;\n // fallthrough: interface Declaration <: Statement { }\n case 'declaration':\n return node.type.slice(-11) === 'Declaration';\n case 'pattern':\n if(node.type.slice(-7) === 'Pattern') return true;\n // fallthrough: interface Expression <: Node, Pattern { }\n case 'expression':\n return node.type.slice(-10) === 'Expression' ||\n node.type.slice(-7) === 'Literal' ||\n (\n node.type === 'Identifier' &&\n (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty')\n ) ||\n node.type === 'MetaProperty';\n case 'function':\n return node.type === 'FunctionDeclaration' ||\n node.type === 'FunctionExpression' ||\n node.type === 'ArrowFunctionExpression';\n }\n throw new Error(`Unknown class name: ${selector.name}`);\n }\n\n throw new Error(`Unknown selector type: ${selector.type}`);\n}\n\n/**\n * Get visitor keys of a given node.\n * @param {external:AST} node The AST node to get keys.\n * @param {ESQueryOptions|undefined} options\n * @returns {string[]} Visitor keys of the node.\n */\nfunction getVisitorKeys(node, options) {\n const nodeType = node.type;\n if (options && options.visitorKeys && options.visitorKeys[nodeType]) {\n return options.visitorKeys[nodeType];\n }\n if (estraverse.VisitorKeys[nodeType]) {\n return estraverse.VisitorKeys[nodeType];\n }\n if (options && typeof options.fallback === 'function') {\n return options.fallback(node);\n }\n // 'iteration' fallback\n return Object.keys(node).filter(function (key) {\n return key !== 'type';\n });\n}\n\n\n/**\n * Check whether the given value is an ASTNode or not.\n * @param {any} node The value to check.\n * @returns {boolean} `true` if the value is an ASTNode.\n */\nfunction isNode(node) {\n return node !== null && typeof node === 'object' && typeof node.type === 'string';\n}\n\n/**\n * Determines if the given node has a sibling that matches the\n * given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction sibling(node, selector, ancestry, side, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const startIndex = listProp.indexOf(node);\n if (startIndex < 0) { continue; }\n let lowerBound, upperBound;\n if (side === LEFT_SIDE) {\n lowerBound = 0;\n upperBound = startIndex;\n } else {\n lowerBound = startIndex + 1;\n upperBound = listProp.length;\n }\n for (let k = lowerBound; k < upperBound; ++k) {\n if (isNode(listProp[k]) && matches(listProp[k], selector, ancestry, options)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\n/**\n * Determines if the given node has an adjacent sibling that matches\n * the given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction adjacent(node, selector, ancestry, side, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const idx = listProp.indexOf(node);\n if (idx < 0) { continue; }\n if (side === LEFT_SIDE && idx > 0 && isNode(listProp[idx - 1]) && matches(listProp[idx - 1], selector, ancestry, options)) {\n return true;\n }\n if (side === RIGHT_SIDE && idx < listProp.length - 1 && isNode(listProp[idx + 1]) && matches(listProp[idx + 1], selector, ancestry, options)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n* @callback IndexFunction\n* @param {Integer} len Containing list's length\n* @returns {Integer}\n*/\n\n/**\n * Determines if the given node is the nth child, determined by\n * `idxFn`, which is given the containing list's length.\n * @param {external:AST} node\n * @param {external:AST[]} ancestry\n * @param {IndexFunction} idxFn\n * @param {ESQueryOptions|undefined} options\n * @returns {boolean}\n */\nfunction nthChild(node, ancestry, idxFn, options) {\n const [parent] = ancestry;\n if (!parent) { return false; }\n const keys = getVisitorKeys(parent, options);\n for (const key of keys) {\n const listProp = parent[key];\n if (Array.isArray(listProp)) {\n const idx = listProp.indexOf(node);\n if (idx >= 0 && idx === idxFn(listProp.length)) { return true; }\n }\n }\n return false;\n}\n\n/**\n * For each selector node marked as a subject, find the portion of the\n * selector that the subject must match.\n * @param {SelectorAST} selector\n * @param {SelectorAST} [ancestor] Defaults to `selector`\n * @returns {SelectorAST[]}\n */\nfunction subjects(selector, ancestor) {\n if (selector == null || typeof selector != 'object') { return []; }\n if (ancestor == null) { ancestor = selector; }\n const results = selector.subject ? [ancestor] : [];\n for (const [p, sel] of Object.entries(selector)) {\n results.push(...subjects(sel, p === 'left' ? sel : ancestor));\n }\n return results;\n}\n\n/**\n* @callback TraverseVisitor\n* @param {?external:AST} node\n* @param {?external:AST} parent\n* @param {external:AST[]} ancestry\n*/\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @param {TraverseVisitor} visitor\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction traverse(ast, selector, visitor, options) {\n if (!selector) { return; }\n const ancestry = [];\n const altSubjects = subjects(selector);\n estraverse.traverse(ast, {\n enter (node, parent) {\n if (parent != null) { ancestry.unshift(parent); }\n if (matches(node, selector, ancestry, options)) {\n if (altSubjects.length) {\n for (let i = 0, l = altSubjects.length; i < l; ++i) {\n if (matches(node, altSubjects[i], ancestry, options)) {\n visitor(node, parent, ancestry);\n }\n for (let k = 0, m = ancestry.length; k < m; ++k) {\n const succeedingAncestry = ancestry.slice(k + 1);\n if (matches(ancestry[k], altSubjects[i], succeedingAncestry, options)) {\n visitor(ancestry[k], parent, succeedingAncestry);\n }\n }\n }\n } else {\n visitor(node, parent, ancestry);\n }\n }\n },\n leave () { ancestry.shift(); },\n keys: options && options.visitorKeys,\n fallback: options && options.fallback || 'iteration'\n });\n}\n\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction match(ast, selector, options) {\n const results = [];\n traverse(ast, selector, function (node) {\n results.push(node);\n }, options);\n return results;\n}\n\n/**\n * Parse a selector string and return its AST.\n * @param {string} selector\n * @returns {SelectorAST}\n */\nfunction parse(selector) {\n return parser.parse(selector);\n}\n\n/**\n * Query the code AST using the selector string.\n * @param {external:AST} ast\n * @param {string} selector\n * @param {ESQueryOptions} [options]\n * @returns {external:AST[]}\n */\nfunction query(ast, selector, options) {\n return match(ast, parse(selector), options);\n}\n\nquery.parse = parse;\nquery.match = match;\nquery.traverse = traverse;\nquery.matches = matches;\nquery.query = query;\n\nexport default query;\n"],"names":["clone","exports","Syntax","VisitorOption","VisitorKeys","BREAK","SKIP","REMOVE","deepCopy","obj","key","val","ret","hasOwnProperty","Reference","parent","Element","node","path","wrap","ref","Controller","isNode","type","isProperty","nodeType","ObjectExpression","ObjectPattern","candidateExistsInLeaveList","leavelist","candidate","i","length","traverse","root","visitor","extendCommentRange","comment","tokens","target","array","func","diff","len","current","upperBound","token","range","extendedRange","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BlockStatement","BinaryExpression","BreakStatement","CallExpression","CatchClause","ChainExpression","ClassBody","ClassDeclaration","ClassExpression","ComprehensionBlock","ComprehensionExpression","ConditionalExpression","ContinueStatement","DebuggerStatement","DirectiveStatement","DoWhileStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForInStatement","ForOfStatement","FunctionDeclaration","FunctionExpression","GeneratorExpression","Identifier","IfStatement","ImportExpression","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","ModuleSpecifier","NewExpression","Program","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchStatement","SwitchCase","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","Break","Skip","Remove","prototype","replace","this","remove","Array","isArray","splice","iz","j","jz","result","addToPath","push","__current","__leavelist","parents","__execute","callback","element","previous","undefined","__state","call","notify","flag","skip","__initialize","__worklist","__fallback","fallback","Object","keys","__keys","assign","create","worklist","current2","candidates","sentinel","pop","enter","Error","leave","outer","removeElem","nextElem","attachComments","tree","providedComments","cursor","comments","leadingComments","trailingComments","cloneEnvironment","module","peg$SyntaxError","message","expected","found","location","name","captureStackTrace","child","ctor","constructor","peg$subclass","buildMessage","DESCRIBE_EXPECTATION_FNS","literal","expectation","literalEscape","text","escapedParts","parts","classEscape","inverted","any","end","other","description","hex","ch","charCodeAt","toString","toUpperCase","s","descriptions","sort","slice","join","describeExpected","describeFound","SyntaxError","parse","input","options","peg$result","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c3","peg$literalExpectation","peg$c4","peg$c5","peg$classExpectation","peg$c8","peg$c11","peg$c14","peg$c18","peg$c22","peg$c25","peg$c28","peg$c31","peg$c33","peg$c35","peg$c36","peg$c38","peg$c39","a","peg$c40","peg$c41","peg$c43","peg$c45","op","value","operator","peg$c48","peg$c49","peg$c50","peg$c52","peg$c53","peg$c54","b","peg$c55","d","match","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c65","peg$c66","peg$c67","peg$c69","peg$c71","peg$c72","peg$c74","peg$c75","peg$c76","peg$c80","peg$c83","peg$c86","peg$c89","peg$c92","peg$c95","peg$c98","peg$c101","peg$c103","peg$c105","peg$c107","peg$c109","peg$c111","peg$currPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","ignoreCase","peg$computePosDetails","pos","p","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","offset","peg$fail","s0","s1","s2","ss","cached","peg$resultsCache","nextPos","peg$parse_","peg$parseselectors","selectors","peg$c1","peg$parseidentifierName","test","charAt","peg$parsebinaryOp","s3","s4","s5","s6","s7","peg$parseselector","concat","map","peg$parsesequence","reduce","memo","rhs","left","right","subject","as","peg$parseatom","peg$parsewildcard","peg$parseidentifier","peg$parseattrName","peg$parseattrEqOps","substr","peg$parsetype","flgs","peg$parseflags","RegExp","peg$parseregex","peg$parseattrOps","peg$parsestring","leadingDecimals","apply","parseFloat","peg$parsenumber","peg$parsepath","peg$parseattrValue","peg$parseattr","peg$parsefield","peg$parsenegation","peg$parsematches","peg$parsehas","nth","peg$parsefirstChild","nthLast","peg$parselastChild","parseInt","peg$parsenthChild","peg$parsenthLastChild","toLowerCase","peg$parseclass","n","index","factory","matches","selector","ancestry","split","ancestor","inPath","field","remainingPath","sel","collector","estraverse","unshift","shift","visitorKeys","l","getPath","sibling","adjacent","nthChild","getVisitorKeys","filter","_typeof","side","listProp","startIndex","indexOf","lowerBound","k","idx","idxFn","subjects","results","_objectEntries","ast","altSubjects","m","succeedingAncestry","parser","query"],"mappings":"kiFA2BUA,EAAMC,OAGRC,EACAC,EACAC,EACAC,EACAC,EACAC,WAEKC,EAASC,OACAC,EAAKC,EAAfC,EAAM,OACLF,KAAOD,EACJA,EAAII,eAAeH,KACnBC,EAAMF,EAAIC,GAENE,EAAIF,GADW,iBAARC,GAA4B,OAARA,EAChBH,EAASG,GAETA,UAIhBC,WA4LFE,EAAUC,EAAQL,QAClBK,OAASA,OACTL,IAAMA,WAiBNM,EAAQC,EAAMC,EAAMC,EAAMC,QAC1BH,KAAOA,OACPC,KAAOA,OACPC,KAAOA,OACPC,IAAMA,WAGNC,cAuHAC,EAAOL,UACA,MAARA,IAGmB,iBAATA,GAA0C,iBAAdA,EAAKM,eAG1CC,EAAWC,EAAUf,UAClBe,IAAavB,EAAOwB,kBAAoBD,IAAavB,EAAOyB,gBAAkB,eAAiBjB,WAGlGkB,EAA2BC,EAAWC,OACtC,IAAIC,EAAIF,EAAUG,OAAS,EAAGD,GAAK,IAAKA,KACrCF,EAAUE,GAAGd,OAASa,SACf,SAGR,WAwQFG,EAASC,EAAMC,UACH,IAAId,GACHY,SAASC,EAAMC,YAQ5BC,EAAmBC,EAASC,OAC7BC,SAEJA,WA7mBgBC,EAAOC,OACnBC,EAAMC,EAAKZ,EAAGa,MAElBD,EAAMH,EAAMR,OACZD,EAAI,EAEGY,GAGCF,EAAKD,EADTI,EAAUb,GADVW,EAAOC,IAAQ,KAGXA,EAAMD,GAENX,EAAIa,EAAU,EACdD,GAAOD,EAAO,UAGfX,EA6lBEc,CAAWP,GAAQ,SAAgBQ,UACjCA,EAAMC,MAAM,GAAKV,EAAQU,MAAM,MAG1CV,EAAQW,cAAgB,CAACX,EAAQU,MAAM,GAAIV,EAAQU,MAAM,IAErDR,IAAWD,EAAON,SAClBK,EAAQW,cAAc,GAAKV,EAAOC,GAAQQ,MAAM,KAGpDR,GAAU,IACI,IACVF,EAAQW,cAAc,GAAKV,EAAOC,GAAQQ,MAAM,IAG7CV,SAzmBXnC,EAAS,CACL+C,qBAAsB,uBACtBC,kBAAmB,oBACnBC,gBAAiB,kBACjBC,aAAc,eACdC,wBAAyB,0BACzBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,iBAAkB,mBAClBC,eAAgB,iBAChBC,eAAgB,iBAChBC,YAAa,cACbC,gBAAiB,kBACjBC,UAAW,YACXC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,wBAAyB,0BACzBC,sBAAuB,wBACvBC,kBAAmB,oBACnBC,kBAAmB,oBACnBC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,eAAgB,iBAChBC,qBAAsB,uBACtBC,yBAA0B,2BAC1BC,uBAAwB,yBACxBC,gBAAiB,kBACjBC,oBAAqB,sBACrBC,aAAc,eACdC,eAAgB,iBAChBC,eAAgB,iBAChBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,WAAY,aACZC,YAAa,cACbC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,uBAAwB,yBACxBC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,QAAS,UACTC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,aAAc,eACdC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,cAAe,gBACfvE,iBAAkB,mBAClBC,cAAe,gBACfuE,QAAS,UACTC,SAAU,WACVC,YAAa,cACbC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,cAAe,gBACfC,MAAO,QACPC,gBAAiB,kBACjBC,WAAY,aACZC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,eAAgB,iBAChBC,aAAc,eACdC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,eAAgB,iBAChBC,cAAe,gBACfC,gBAAiB,mBAGrBnH,EAAc,CACV6C,qBAAsB,CAAC,OAAQ,SAC/BC,kBAAmB,CAAC,OAAQ,SAC5BC,gBAAiB,CAAC,YAClBC,aAAc,CAAC,YACfC,wBAAyB,CAAC,SAAU,QACpCC,gBAAiB,CAAC,YAClBC,eAAgB,CAAC,QACjBC,iBAAkB,CAAC,OAAQ,SAC3BC,eAAgB,CAAC,SACjBC,eAAgB,CAAC,SAAU,aAC3BC,YAAa,CAAC,QAAS,QACvBC,gBAAiB,CAAC,cAClBC,UAAW,CAAC,QACZC,iBAAkB,CAAC,KAAM,aAAc,QACvCC,gBAAiB,CAAC,KAAM,aAAc,QACtCC,mBAAoB,CAAC,OAAQ,SAC7BC,wBAAyB,CAAC,SAAU,SAAU,QAC9CC,sBAAuB,CAAC,OAAQ,aAAc,aAC9CC,kBAAmB,CAAC,SACpBC,kBAAmB,GACnBC,mBAAoB,GACpBC,iBAAkB,CAAC,OAAQ,QAC3BC,eAAgB,GAChBC,qBAAsB,CAAC,UACvBC,yBAA0B,CAAC,eAC3BC,uBAAwB,CAAC,cAAe,aAAc,UACtDC,gBAAiB,CAAC,WAAY,SAC9BC,oBAAqB,CAAC,cACtBC,aAAc,CAAC,OAAQ,OAAQ,SAAU,QACzCC,eAAgB,CAAC,OAAQ,QAAS,QAClCC,eAAgB,CAAC,OAAQ,QAAS,QAClCC,oBAAqB,CAAC,KAAM,SAAU,QACtCC,mBAAoB,CAAC,KAAM,SAAU,QACrCC,oBAAqB,CAAC,SAAU,SAAU,QAC1CC,WAAY,GACZC,YAAa,CAAC,OAAQ,aAAc,aACpCC,iBAAkB,CAAC,UACnBC,kBAAmB,CAAC,aAAc,UAClCC,uBAAwB,CAAC,SACzBC,yBAA0B,CAAC,SAC3BC,gBAAiB,CAAC,WAAY,SAC9BC,QAAS,GACTC,iBAAkB,CAAC,QAAS,QAC5BC,kBAAmB,CAAC,OAAQ,SAC5BC,iBAAkB,CAAC,SAAU,YAC7BC,aAAc,CAAC,OAAQ,YACvBC,iBAAkB,CAAC,MAAO,SAC1BC,gBAAiB,GACjBC,cAAe,CAAC,SAAU,aAC1BvE,iBAAkB,CAAC,cACnBC,cAAe,CAAC,cAChBuE,QAAS,CAAC,QACVC,SAAU,CAAC,MAAO,SAClBC,YAAa,CAAE,YACfC,gBAAiB,CAAC,YAClBC,mBAAoB,CAAC,eACrBC,cAAe,CAAC,YAChBC,MAAO,GACPC,gBAAiB,CAAC,eAAgB,SAClCC,WAAY,CAAC,OAAQ,cACrBC,yBAA0B,CAAC,MAAO,SAClCC,gBAAiB,GACjBC,gBAAiB,CAAC,SAAU,eAC5BC,eAAgB,GAChBC,eAAgB,CAAC,YACjBC,aAAc,CAAC,QAAS,UAAW,aACnCC,gBAAiB,CAAC,YAClBC,iBAAkB,CAAC,YACnBC,oBAAqB,CAAC,gBACtBC,mBAAoB,CAAC,KAAM,QAC3BC,eAAgB,CAAC,OAAQ,QACzBC,cAAe,CAAC,SAAU,QAC1BC,gBAAiB,CAAC,aAQtBpH,EAAgB,CACZqH,MALJnH,EAAQ,GAMJoH,KALJnH,EAAO,GAMHoH,OALJnH,EAAS,IAaTO,EAAU6G,UAAUC,QAAU,SAAiB3G,QACtCF,OAAO8G,KAAKnH,KAAOO,GAG5BH,EAAU6G,UAAUG,OAAS,kBACrBC,MAAMC,QAAQH,KAAK9G,cACdA,OAAOkH,OAAOJ,KAAKnH,IAAK,IACtB,SAEFkH,QAAQ,OACN,IAefvG,EAAWsG,UAAUzG,KAAO,eACpBa,EAAGmG,EAAIC,EAAGC,EAAIC,WAETC,EAAUD,EAAQnH,MACnB6G,MAAMC,QAAQ9G,OACTiH,EAAI,EAAGC,EAAKlH,EAAKc,OAAQmG,EAAIC,IAAMD,EACpCE,EAAOE,KAAKrH,EAAKiH,SAGrBE,EAAOE,KAAKrH,OAKf2G,KAAKW,UAAUtH,YACT,SAIXmH,EAAS,GACJtG,EAAI,EAAGmG,EAAKL,KAAKY,YAAYzG,OAAQD,EAAImG,IAAMnG,EAEhDuG,EAAUD,EADAR,KAAKY,YAAY1G,GACDb,aAE9BoH,EAAUD,EAAQR,KAAKW,UAAUtH,MAC1BmH,GAKXhH,EAAWsG,UAAUpG,KAAO,kBACbsG,KAAKjF,UACJrB,MAAQsG,KAAKW,UAAUrH,MAKvCE,EAAWsG,UAAUe,QAAU,eACvB3G,EAAGmG,EAAIG,MAGXA,EAAS,GACJtG,EAAI,EAAGmG,EAAKL,KAAKY,YAAYzG,OAAQD,EAAImG,IAAMnG,EAChDsG,EAAOE,KAAKV,KAAKY,YAAY1G,GAAGd,aAG7BoH,GAKXhH,EAAWsG,UAAU/E,QAAU,kBACpBiF,KAAKW,UAAUvH,MAG1BI,EAAWsG,UAAUgB,UAAY,SAAmBC,EAAUC,OACtDC,EAAUT,SAEdA,OAASU,EAETD,EAAYjB,KAAKW,eACZA,UAAYK,OACZG,QAAU,KACXJ,IACAP,EAASO,EAASK,KAAKpB,KAAMgB,EAAQ5H,KAAM4G,KAAKY,YAAYZ,KAAKY,YAAYzG,OAAS,GAAGf,YAExFuH,UAAYM,EAEVT,GAKXhH,EAAWsG,UAAUuB,OAAS,SAAgBC,QACrCH,QAAUG,GAKnB9H,EAAWsG,UAAUyB,KAAO,gBACnBF,OAAO5I,IAKhBe,EAAWsG,UAAX,MAAgC,gBACvBuB,OAAO7I,IAKhBgB,EAAWsG,UAAUG,OAAS,gBACrBoB,OAAO3I,IAGhBc,EAAWsG,UAAU0B,aAAe,SAASnH,EAAMC,QAC1CA,QAAUA,OACVD,KAAOA,OACPoH,WAAa,QACbb,YAAc,QACdD,UAAY,UACZQ,QAAU,UACVO,WAAa,KACO,cAArBpH,EAAQqH,cACHD,WAAaE,OAAOC,KACU,mBAArBvH,EAAQqH,gBACjBD,WAAapH,EAAQqH,eAGzBG,OAASvJ,EACV+B,EAAQuH,YACHC,OAASF,OAAOG,OAAOH,OAAOI,OAAOhC,KAAK8B,QAASxH,EAAQuH,QAwBxErI,EAAWsG,UAAU1F,SAAW,SAAkBC,EAAMC,OAChD2H,EACAjI,EACAgH,EACA5H,EACAQ,EACAb,EACAF,EACAkC,EACAmH,EACAC,EACAlI,EACAmI,WAECZ,aAAanH,EAAMC,GAExB8H,EAAW,GAGXH,EAAWjC,KAAKyB,WAChBzH,EAAYgG,KAAKY,YAGjBqB,EAASvB,KAAK,IAAIvH,EAAQkB,EAAM,KAAM,KAAM,OAC5CL,EAAU0G,KAAK,IAAIvH,EAAQ,KAAM,KAAM,KAAM,OAEtC8I,EAAS9H,YACZ6G,EAAUiB,EAASI,SAEHD,MAWZpB,EAAQ5H,KAAM,IAEdL,EAAMiH,KAAKc,UAAUxG,EAAQgI,MAAOtB,GAEhChB,KAAKmB,UAAY3I,GAASO,IAAQP,YAItCyJ,EAASvB,KAAK0B,GACdpI,EAAU0G,KAAKM,GAEXhB,KAAKmB,UAAY1I,GAAQM,IAAQN,cAKrCmB,GADAR,EAAO4H,EAAQ5H,MACCM,MAAQsH,EAAQ1H,OAChC6I,EAAanC,KAAK8B,OAAOlI,IACR,KACToG,KAAK0B,iBAGC,IAAIa,MAAM,qBAAuB3I,EAAW,KAFlDuI,EAAanC,KAAK0B,WAAWtI,OAMrC2B,EAAUoH,EAAWhI,QACbY,GAAW,IAAM,MAErBd,EAAYb,EADZP,EAAMsJ,EAAWpH,OAMbmF,MAAMC,QAAQlG,QACdiI,EAAWjI,EAAUE,QACb+H,GAAY,IAAM,MACjBjI,EAAUiI,KAIXnI,EAA2BC,EAAWC,EAAUiI,QAIhDvI,EAAWC,EAAUuI,EAAWpH,IAChCiG,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,WAAY,UACrE,CAAA,IAAIzI,EAAOQ,EAAUiI,aACxBlB,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,KAAM,MAItED,EAASvB,KAAKM,SAEf,GAAIvH,EAAOQ,GAAY,IACtBF,EAA2BC,EAAWC,YAI1CgI,EAASvB,KAAK,IAAIvH,EAAQc,EAAWpB,EAAK,KAAM,iBArExDmI,EAAUhH,EAAUqI,MAEpBtJ,EAAMiH,KAAKc,UAAUxG,EAAQkI,MAAOxB,GAEhChB,KAAKmB,UAAY3I,GAASO,IAAQP,UAwElDgB,EAAWsG,UAAUC,QAAU,SAAiB1F,EAAMC,OAC9C2H,EACAjI,EACAZ,EACAQ,EACAc,EACAsG,EACAjG,EACAmH,EACAC,EACAlI,EACAmI,EACAK,EACA5J,WAEK6J,EAAW1B,OACZ9G,EACArB,EACA8J,EACAzJ,KAEA8H,EAAQzH,IAAI0G,aAEZpH,EAAMmI,EAAQzH,IAAIV,IAClBK,EAAS8H,EAAQzH,IAAIL,OAGrBgB,EAAI+H,EAAS9H,OACND,SACHyI,EAAWV,EAAS/H,IACPX,KAAOoJ,EAASpJ,IAAIL,SAAWA,EAAQ,IAC3CyJ,EAASpJ,IAAIV,IAAMA,UAGtB8J,EAASpJ,IAAIV,cAM1B2I,aAAanH,EAAMC,GAExB8H,EAAW,GAGXH,EAAWjC,KAAKyB,WAChBzH,EAAYgG,KAAKY,YAMjBI,EAAU,IAAI7H,EAAQkB,EAAM,KAAM,KAAM,IAAIpB,EAH5CwJ,EAAQ,CACJpI,KAAMA,GAEmD,SAC7D4H,EAASvB,KAAKM,GACdhH,EAAU0G,KAAKM,GAERiB,EAAS9H,YACZ6G,EAAUiB,EAASI,SAEHD,WA0BDlB,KAJfxG,EAASsF,KAAKc,UAAUxG,EAAQgI,MAAOtB,KAIXtG,IAAWlC,GAASkC,IAAWjC,GAAQiC,IAAWhC,IAE1EsI,EAAQzH,IAAIwG,QAAQrF,GACpBsG,EAAQ5H,KAAOsB,GAGfsF,KAAKmB,UAAYzI,GAAUgC,IAAWhC,IACtCgK,EAAW1B,GACXA,EAAQ5H,KAAO,MAGf4G,KAAKmB,UAAY3I,GAASkC,IAAWlC,SAC9BiK,EAAMpI,SAIjBjB,EAAO4H,EAAQ5H,QAKf6I,EAASvB,KAAK0B,GACdpI,EAAU0G,KAAKM,GAEXhB,KAAKmB,UAAY1I,GAAQiC,IAAWjC,OAIxCmB,EAAWR,EAAKM,MAAQsH,EAAQ1H,OAChC6I,EAAanC,KAAK8B,OAAOlI,IACR,KACToG,KAAK0B,iBAGC,IAAIa,MAAM,qBAAuB3I,EAAW,KAFlDuI,EAAanC,KAAK0B,WAAWtI,OAMrC2B,EAAUoH,EAAWhI,QACbY,GAAW,IAAM,MAErBd,EAAYb,EADZP,EAAMsJ,EAAWpH,OAMbmF,MAAMC,QAAQlG,QACdiI,EAAWjI,EAAUE,QACb+H,GAAY,IAAM,MACjBjI,EAAUiI,OAGXvI,EAAWC,EAAUuI,EAAWpH,IAChCiG,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,WAAY,IAAIjJ,EAAUgB,EAAWiI,QAC9F,CAAA,IAAIzI,EAAOQ,EAAUiI,aACxBlB,EAAU,IAAI7H,EAAQc,EAAUiI,GAAW,CAACrJ,EAAKqJ,GAAW,KAAM,IAAIjJ,EAAUgB,EAAWiI,IAI/FD,EAASvB,KAAKM,SAEXvH,EAAOQ,IACdgI,EAASvB,KAAK,IAAIvH,EAAQc,EAAWpB,EAAK,KAAM,IAAII,EAAUG,EAAMP,cAvFxEmI,EAAUhH,EAAUqI,WAMLnB,KAJfxG,EAASsF,KAAKc,UAAUxG,EAAQkI,MAAOxB,KAIXtG,IAAWlC,GAASkC,IAAWjC,GAAQiC,IAAWhC,GAE1EsI,EAAQzH,IAAIwG,QAAQrF,GAGpBsF,KAAKmB,UAAYzI,GAAUgC,IAAWhC,GACtCgK,EAAW1B,GAGXhB,KAAKmB,UAAY3I,GAASkC,IAAWlC,SAC9BiK,EAAMpI,YA4ElBoI,EAAMpI,MAiIjBjC,EAAQC,OAASA,EACjBD,EAAQgC,SAAWA,EACnBhC,EAAQ2H,iBA3HS1F,EAAMC,UACF,IAAId,GACHuG,QAAQ1F,EAAMC,IA0HpClC,EAAQwK,wBAlGgBC,EAAMC,EAAkBrI,OAEzBD,EAASM,EAAKZ,EAAG6I,EAAhCC,EAAW,OAEVH,EAAK3H,YACA,IAAIqH,MAAM,8CAIf9H,EAAON,OAAQ,IACZ2I,EAAiB3I,OAAQ,KACpBD,EAAI,EAAGY,EAAMgI,EAAiB3I,OAAQD,EAAIY,EAAKZ,GAAK,GACrDM,EAAU7B,EAASmK,EAAiB5I,KAC5BiB,cAAgB,CAAC,EAAG0H,EAAK3H,MAAM,IACvC8H,EAAStC,KAAKlG,GAElBqI,EAAKI,gBAAkBD,SAEpBH,MAGN3I,EAAI,EAAGY,EAAMgI,EAAiB3I,OAAQD,EAAIY,EAAKZ,GAAK,EACrD8I,EAAStC,KAAKnG,EAAmB5B,EAASmK,EAAiB5I,IAAKO,WAIpEsI,EAAS,EACT3I,EAASyI,EAAM,CACXP,MAAO,SAAUlJ,WACToB,EAEGuI,EAASC,EAAS7I,WACrBK,EAAUwI,EAASD,IACP5H,cAAc,GAAK/B,EAAK8B,MAAM,KAItCV,EAAQW,cAAc,KAAO/B,EAAK8B,MAAM,IACnC9B,EAAK6J,kBACN7J,EAAK6J,gBAAkB,IAE3B7J,EAAK6J,gBAAgBvC,KAAKlG,GAC1BwI,EAAS5C,OAAO2C,EAAQ,IAExBA,GAAU,SAKdA,IAAWC,EAAS7I,OACb7B,EAAcqH,MAGrBqD,EAASD,GAAQ5H,cAAc,GAAK/B,EAAK8B,MAAM,GACxC5C,EAAcsH,eAKjCmD,EAAS,EACT3I,EAASyI,EAAM,CACXL,MAAO,SAAUpJ,WACToB,EAEGuI,EAASC,EAAS7I,SACrBK,EAAUwI,EAASD,KACf3J,EAAK8B,MAAM,GAAKV,EAAQW,cAAc,MAItC/B,EAAK8B,MAAM,KAAOV,EAAQW,cAAc,IACnC/B,EAAK8J,mBACN9J,EAAK8J,iBAAmB,IAE5B9J,EAAK8J,iBAAiBxC,KAAKlG,GAC3BwI,EAAS5C,OAAO2C,EAAQ,IAExBA,GAAU,SAKdA,IAAWC,EAAS7I,OACb7B,EAAcqH,MAGrBqD,EAASD,GAAQ5H,cAAc,GAAK/B,EAAK8B,MAAM,GACxC5C,EAAcsH,eAK1BiD,GAOXzK,EAAQG,YAAcA,EACtBH,EAAQE,cAAgBA,EACxBF,EAAQoB,WAAaA,EACrBpB,EAAQ+K,iBAAmB,kBAAqBhL,EAAM,KAE/CC,GACTA,uBCvxByCgL,EAAOhL,UAC9CgL,UAEK,oBASEC,EAAgBC,EAASC,EAAUC,EAAOC,QAC5CH,QAAWA,OACXC,SAAWA,OACXC,MAAWA,OACXC,SAAWA,OACXC,KAAW,cAEuB,mBAA5BnB,MAAMoB,mBACfpB,MAAMoB,kBAAkB3D,KAAMqD,mBAdZO,EAAO1K,YAClB2K,SAAcC,YAAcF,EACrCC,EAAK/D,UAAY5G,EAAO4G,UACxB8D,EAAM9D,UAAY,IAAI+D,EAexBE,CAAaV,EAAiBd,OAE9Bc,EAAgBW,aAAe,SAAST,EAAUC,OAC5CS,EAA2B,CACzBC,QAAS,SAASC,SACT,IAAOC,EAAcD,EAAYE,MAAQ,WAGzC,SAASF,OAEZjK,EADAoK,EAAe,OAGdpK,EAAI,EAAGA,EAAIiK,EAAYI,MAAMpK,OAAQD,IACxCoK,GAAgBH,EAAYI,MAAMrK,aAAcgG,MAC5CsE,EAAYL,EAAYI,MAAMrK,GAAG,IAAM,IAAMsK,EAAYL,EAAYI,MAAMrK,GAAG,IAC9EsK,EAAYL,EAAYI,MAAMrK,UAG7B,KAAOiK,EAAYM,SAAW,IAAM,IAAMH,EAAe,KAGlEI,IAAK,SAASP,SACL,iBAGTQ,IAAK,SAASR,SACL,gBAGTS,MAAO,SAAST,UACPA,EAAYU,uBAIlBC,EAAIC,UACJA,EAAGC,WAAW,GAAGC,SAAS,IAAIC,uBAG9Bd,EAAce,UACdA,EACJpF,QAAQ,MAAO,QACfA,QAAQ,KAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,gBAAyB,SAASgF,SAAa,OAASD,EAAIC,MACpEhF,QAAQ,yBAAyB,SAASgF,SAAa,MAASD,EAAIC,eAGhEP,EAAYW,UACZA,EACJpF,QAAQ,MAAO,QACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,KAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,gBAAyB,SAASgF,SAAa,OAASD,EAAIC,MACpEhF,QAAQ,yBAAyB,SAASgF,SAAa,MAASD,EAAIC,YA6ClE,qBAtCmBxB,OAEpBrJ,EAAGoG,EANoB6D,EAKvBiB,EAAe,IAAIlF,MAAMqD,EAASpJ,YAGjCD,EAAI,EAAGA,EAAIqJ,EAASpJ,OAAQD,IAC/BkL,EAAalL,IATYiK,EASaZ,EAASrJ,GAR1C+J,EAAyBE,EAAYzK,MAAMyK,OAWlDiB,EAAaC,OAETD,EAAajL,OAAS,EAAG,KACtBD,EAAI,EAAGoG,EAAI,EAAGpG,EAAIkL,EAAajL,OAAQD,IACtCkL,EAAalL,EAAI,KAAOkL,EAAalL,KACvCkL,EAAa9E,GAAK8E,EAAalL,GAC/BoG,KAGJ8E,EAAajL,OAASmG,SAGhB8E,EAAajL,aACd,SACIiL,EAAa,QAEjB,SACIA,EAAa,GAAK,OAASA,EAAa,kBAGxCA,EAAaE,MAAM,GAAI,GAAGC,KAAK,MAClC,QACAH,EAAaA,EAAajL,OAAS,IAQxBqL,CAAiBjC,GAAY,iBAJ3BC,UACdA,EAAQ,IAAOY,EAAcZ,GAAS,IAAO,eAGMiC,CAAcjC,GAAS,WA25E9E,CACLkC,YAAarC,EACbsC,eA15EiBC,EAAOC,GACxBA,OAAsB,IAAZA,EAAqBA,EAAU,OA8JrCC,EAwH8BvC,EAAUC,EAAOC,EApR/CsC,EAAa,GAEbC,EAAyB,CAAEC,MAAOC,IAClCC,EAAyBD,GAOzBE,EAASC,GAAuB,KAAK,GACrCC,EAAS,uBACTC,EAASC,GAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAM,GAAM,GAGjHC,EAASJ,GAAuB,KAAK,GAGrCK,EAAUL,GAAuB,KAAK,GAGtCM,EAAUN,GAAuB,KAAK,GAItCO,EAAUP,GAAuB,KAAK,GAUtCQ,EAAUR,GAAuB,KAAK,GAOtCS,EAAUT,GAAuB,KAAK,GAGtCU,EAAUV,GAAuB,KAAK,GAGtCW,EAAUX,GAAuB,KAAK,GAEtCY,EAAUZ,GAAuB,KAAK,GAEtCa,EAAU,SACVC,EAAUX,GAAqB,CAAC,IAAK,IAAK,MAAM,GAAO,GAEvDY,EAAUf,GAAuB,KAAK,GACtCgB,EAAU,SAASC,UAAaA,GAAK,IAAM,KAC3CC,EAAU,QACVC,EAAUhB,GAAqB,CAAC,IAAK,MAAM,GAAO,GAElDiB,EAAUpB,GAAuB,KAAK,GAItCqB,EAAU,SAAShE,EAAMiE,EAAIC,SAChB,CAAElO,KAAM,YAAagK,KAAMA,EAAMmE,SAAUF,EAAIC,MAAOA,IAInEE,EAAUzB,GAAuB,KAAM,GACvC0B,EAAU,UACVC,EAAUxB,GAAqB,CAAC,KAAM,MAAO,GAAM,GAEnDyB,EAAU5B,GAAuB,MAAM,GACvC6B,EA6HK,CAAExO,KAAM,OA5HbyO,EAAU,SAASb,EAAGc,UAAYd,EAAIc,GACtCC,EAAU,SAASC,SACJ,CAAE5O,KAAM,UAAWkO,OAsyEfzC,EAtyEkCmD,EAAE/C,KAAK,IAuyErDJ,EAAEpF,QAAQ,UAAU,SAASwI,EAAOxD,UAClCA,OACA,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,SACZ,UAAY,oBACDA,YATDI,GAnyEnBqD,EAAUnC,GAAuB,KAAK,GACtCoC,EAAU,UACVC,EAAUlC,GAAqB,CAAC,KAAM,MAAM,GAAM,GAClDmC,EAAU,SACVC,EAAUpC,GAAqB,CAAC,CAAC,IAAK,OAAO,GAAO,GAQpDqC,EAAUxC,GAAuB,SAAS,GAC1CyC,EAAU,SACVC,EAAUvC,GAAqB,CAAC,IAAK,MAAM,GAAM,GAEjDwC,EAAU3C,GAAuB,KAAK,GAEtC4C,EAAU,UACVC,EAAU1C,GAAqB,CAAC,IAAK,IAAK,IAAK,MAAM,GAAO,GAE5D2C,EAAU9C,GAAuB,KAAK,GACtC+C,EAAU,SACVC,EAAU7C,GAAqB,CAAC,MAAM,GAAM,GAQ5C8C,EAAUjD,GAAuB,SAAS,GAG1CkD,EAAUlD,GAAuB,aAAa,GAG9CmD,EAAUnD,GAAuB,SAAS,GAG1CoD,GAAUpD,GAAuB,gBAAgB,GAGjDqD,GAAUrD,GAAuB,eAAe,GAGhDsD,GAAUtD,GAAuB,eAAe,GAGhDuD,GAAUvD,GAAuB,oBAAoB,GAGrDwD,GAAWxD,GAAuB,KAAK,GAEvCyD,GAAWzD,GAAuB,aAAa,GAE/C0D,GAAW1D,GAAuB,cAAc,GAEhD2D,GAAW3D,GAAuB,eAAe,GAEjD4D,GAAW5D,GAAuB,YAAY,GAE9C6D,GAAW7D,GAAuB,WAAW,GAK7C8D,GAAuB,EAEvBC,GAAuB,CAAC,CAAEC,KAAM,EAAGC,OAAQ,IAC3CC,GAAuB,EACvBC,GAAuB,GACvBC,GAEmB,MAInB,cAAe5E,EAAS,MACpBA,EAAQ6E,aAAa1E,SACnB,IAAIzD,MAAM,mCAAqCsD,EAAQ6E,UAAY,MAG3EvE,EAAwBH,EAAuBH,EAAQ6E,oBA2BhDrE,GAAuBhC,EAAMsG,SAC7B,CAAEjR,KAAM,UAAW2K,KAAMA,EAAMsG,WAAYA,YAG3CnE,GAAqBjC,EAAOE,EAAUkG,SACtC,CAAEjR,KAAM,QAAS6K,MAAOA,EAAOE,SAAUA,EAAUkG,WAAYA,YAe/DC,GAAsBC,OACWC,EAApCC,EAAUX,GAAoBS,MAE9BE,SACKA,MAEPD,EAAID,EAAM,GACFT,GAAoBU,IAC1BA,QAIFC,EAAU,CACRV,MAFFU,EAAUX,GAAoBU,IAEZT,KAChBC,OAAQS,EAAQT,QAGXQ,EAAID,GACmB,KAAxBjF,EAAMZ,WAAW8F,IACnBC,EAAQV,OACRU,EAAQT,OAAS,GAEjBS,EAAQT,SAGVQ,WAGFV,GAAoBS,GAAOE,EACpBA,WAIFC,GAAoBC,EAAUC,OACjCC,EAAkBP,GAAsBK,GACxCG,EAAkBR,GAAsBM,SAErC,CACLjF,MAAO,CACLoF,OAAQJ,EACRZ,KAAQc,EAAgBd,KACxBC,OAAQa,EAAgBb,QAE1B3F,IAAK,CACH0G,OAAQH,EACRb,KAAQe,EAAcf,KACtBC,OAAQc,EAAcd,kBAKnBgB,GAAS/H,GACZ4G,GAAcI,KAEdJ,GAAcI,KAChBA,GAAiBJ,GACjBK,GAAsB,IAGxBA,GAAoB9J,KAAK6C,aAgBlB2C,SACHqF,EAAIC,EAAIC,EAzRQC,EA2RhB7S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,IACLqB,EAAKM,QACM/F,IACT0F,EAAKM,QACMhG,GACJ+F,OACM/F,EAGTwF,EADAC,EA3SqB,KADPE,EA4SFD,GA3SFtR,OAAeuR,EAAG,GAAK,CAAEhS,KAAM,UAAWsS,UAAWN,IAsTnEvB,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKM,QACM/F,IAETyF,OAAKS,GAEPV,EAAKC,GAGPI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,YAGAO,SACHP,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,WAGhB+K,EAAK,GACiC,KAAlC3F,EAAMZ,WAAWmF,KACnBqB,EAnVS,IAoVTrB,OAEAqB,EAAKzF,EACwBuF,GAASlF,IAEjCoF,IAAOzF,GACZwF,EAAG7K,KAAK8K,GAC8B,KAAlC5F,EAAMZ,WAAWmF,KACnBqB,EA5VO,IA6VPrB,OAEAqB,EAAKzF,EACwBuF,GAASlF,WAI1CwF,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAW,SACHX,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAIhBgL,EAAK,GACDlF,EAAO6F,KAAKvG,EAAMwG,OAAOjC,MAC3BsB,EAAK7F,EAAMwG,OAAOjC,IAClBA,OAEAsB,EAAK1F,EACwBuF,GAAS/E,IAEpCkF,IAAO1F,OACF0F,IAAO1F,GACZyF,EAAG9K,KAAK+K,GACJnF,EAAO6F,KAAKvG,EAAMwG,OAAOjC,MAC3BsB,EAAK7F,EAAMwG,OAAOjC,IAClBA,OAEAsB,EAAK1F,EACwBuF,GAAS/E,SAI1CiF,EAAKzF,SAEHyF,IAAOzF,IAETyF,EAAYA,EA1YoBjG,KAAK,KA4YvCgG,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAc,SACHd,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,IACLqB,EAAKM,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EAlaO,IAmaPtB,OAEAsB,EAAK1F,EACwBuF,GAAS7E,IAEpCgF,IAAO1F,GACJ+F,OACM/F,EAGTwF,EADAC,EA1ayB,SAib3BrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKM,QACM/F,GAC6B,MAAlCH,EAAMZ,WAAWmF,KACnBsB,EA5bM,IA6bNtB,OAEAsB,EAAK1F,EACwBuF,GAAS5E,IAEpC+E,IAAO1F,GACJ+F,OACM/F,EAGTwF,EADAC,EApcwB,WA2c1BrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKM,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EAtdI,IAudJtB,OAEAsB,EAAK1F,EACwBuF,GAAS3E,IAEpC8E,IAAO1F,GACJ+F,OACM/F,EAGTwF,EADAC,EA9dsB,YAqexBrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA5fG,IA6fHrB,OAEAqB,EAAKzF,EACwBuF,GAASlF,IAEpCoF,IAAOzF,IACT0F,EAAKK,QACM/F,EAGTwF,EADAC,EAxfsB,cA+fxBrB,GAAcoB,EACdA,EAAKxF,MAMb6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,YAGAQ,SACHR,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EAAIC,EAAIC,EAE5B7T,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,IACLqB,EAAKmB,QACM5G,EAAY,KACrB0F,EAAK,GACLa,EAAKnC,IACLoC,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EA9hBM,IA+hBNrC,OAEAqC,EAAKzG,EACwBuF,GAAS1E,IAEpC4F,IAAOzG,IACT0G,EAAKX,QACM/F,IACT2G,EAAKC,QACM5G,EAETuG,EADAC,EAAK,CAACA,EAAIC,EAAIC,EAAIC,IAWtBvC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,GAEAuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKnC,IACLoC,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAjkBI,IAkkBJrC,OAEAqC,EAAKzG,EACwBuF,GAAS1E,IAEpC4F,IAAOzG,IACT0G,EAAKX,QACM/F,IACT2G,EAAKC,QACM5G,EAETuG,EADAC,EAAK,CAACA,EAAIC,EAAIC,EAAIC,IAWtBvC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,GAGL0F,IAAO1F,EAGTwF,EADAC,EA9lBO,CA8lBMA,GA9lBFoB,OA8lBMnB,EA9lBIoB,KAAI,SAAU1H,UAAYA,EAAE,QAimBjDgF,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAoB,SACHpB,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EA7mBHlF,EA+mBjBzO,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,IACLqB,EAAKsB,QACM/G,EAAY,KACrB0F,EAAK,GACLa,EAAKnC,IACLoC,EAAKF,QACMtG,IACTyG,EAAKM,QACM/G,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAEAuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKnC,IACLoC,EAAKF,QACMtG,IACTyG,EAAKM,QACM/G,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAGL0F,IAAO1F,GA7pBQuB,EA+pBJkE,EACbD,EADAC,EAAiBC,EA9pBJsB,QAAO,SAAUC,EAAMC,SACzB,CAAEvT,KAAMuT,EAAI,GAAIC,KAAMF,EAAMG,MAAOF,EAAI,MAC7C3F,KA+pBL6C,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGAuB,SACHvB,EAAIC,EAAIC,EAAIa,EAzqBKc,EAASC,EAClBjF,EA0qBRvP,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAxrBU,IAyrBVrB,OAEAqB,EAAKzF,EACwBuF,GAASzE,IAEpC2E,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,EAAY,IACrB0F,EAAK,IACLa,EAAKgB,QACMvH,OACFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKgB,UAGP7B,EAAK1F,EAEH0F,IAAO1F,GA1sBQqH,EA4sBJ5B,EA3sBLpD,EAAkB,KADAiF,EA4sBT5B,GA3sBFtR,OAAekT,EAAG,GAAK,CAAE3T,KAAM,WAAYsS,UAAWqB,GAChED,IAAShF,EAAEgF,SAAU,GA2sB1B7B,EADAC,EAzsBSpD,IA4sBT+B,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WAGA+B,SACH/B,EAEA1S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,iBAyCIA,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAIsB,KAAlCoF,EAAMZ,WAAWmF,KACnBqB,EAzxBU,IA0xBVrB,OAEAqB,EAAKzF,EACwBuF,GAASxE,IAEpC0E,IAAOzF,IAETyF,EA/xB+B,CAAE9R,KAAM,WAAYkO,MA+xBtC4D,IAEfD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GApEFgC,MACMxH,IACTwF,iBAsEEA,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,EAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EArzBU,IAszBVrB,OAEAqB,EAAKzF,EACwBuF,GAASvE,IAEpCyE,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,IACT0F,EAAKS,QACMnG,EAGTwF,EADAC,EAh0B6B,CAAE9R,KAAM,aAAckO,MAg0BtC6D,IAOftB,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA7GAiC,MACMzH,IACTwF,iBA+GAA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA71BU,IA81BVrB,OAEAqB,EAAKzF,EACwBuF,GAAStE,IAEpCwE,IAAOzF,GACJ+F,OACM/F,IACTuG,iBAoOAf,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,IACLqB,EAAKiC,QACM1H,GACJ+F,OACM/F,IACTuG,iBAhJAf,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAp+BU,IAq+BVrB,OAEAqB,EAAKzF,EACwBuF,GAASzE,IAEpC2E,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EA39BQ,IA49BRtB,OAEAsB,EAAK1F,EACwBuF,GAASlE,IAEpCqE,IAAO1F,GAETyF,EAAKnE,EAAQmE,GACbD,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAmGEmC,MACM3H,GACJ+F,OACM/F,IACTyG,iBAgcJjB,EAAIC,EAAQc,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GA7/CO,UA8/CRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EA//CU,QAggDVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAASzC,IAEpC2C,IAAOzF,KACJ+F,OACM/F,EAAY,IACrBuG,EAAK,GACDxD,EAAQqD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAASvC,IAEpCwD,IAAOxG,OACFwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACJzD,EAAQqD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAASvC,SAI1CuD,EAAKvG,EAEHuG,IAAOvG,IACTwG,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EA9hDE,IA+hDFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,GAETyF,EApiDuB,CAAE9R,KAAM,OAAQkO,MAoiD1B0E,EApiDmC/G,KAAK,KAqiDrDgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAOToE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAjhBMqC,MACM7H,IACTyG,iBA2jBNjB,EAAIC,EAAIC,EAAIa,EAAIC,EAlmDIsB,EAomDpBhV,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAnnDU,IAonDVrB,OAEAqB,EAAKzF,EACwBuF,GAASnC,IAEpCqC,IAAOzF,EAAY,IACrB0F,EAAK,GACDrC,EAAQ+C,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAASjC,IAEpCiD,IAAOvG,OACFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJlD,EAAQ+C,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAASjC,SAI1CoC,EAAK1F,EAEH0F,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EAlpDM,IAmpDNnC,OAEAmC,EAAKvG,EACwBuF,GAASnC,IAEpCmD,IAAOvG,IACTwG,iBA3FFhB,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAK,GACDtC,EAAQkD,KAAKvG,EAAMwG,OAAOjC,MAC5BqB,EAAK5F,EAAMwG,OAAOjC,IAClBA,OAEAqB,EAAKzF,EACwBuF,GAASpC,IAEpCsC,IAAOzF,OACFyF,IAAOzF,GACZwF,EAAG7K,KAAK8K,GACJvC,EAAQkD,KAAKvG,EAAMwG,OAAOjC,MAC5BqB,EAAK5F,EAAMwG,OAAOjC,IAClBA,OAEAqB,EAAKzF,EACwBuF,GAASpC,SAI1CqC,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAuDIuC,MACM/H,IACTwG,EAAK,MAEHA,IAAOxG,GAzpDO8H,EA2pDCtB,EAAjBf,EA3pD+B,CAC/B9R,KAAM,SAAUkO,MAAO,IAAImG,OA0pDdtC,EA1pDuBlG,KAAK,IAAKsI,EAAOA,EAAKtI,KAAK,IAAM,KA2pDrEgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAzoBQyC,IAEHxB,IAAOzG,GAETyF,EAAK9D,EAAQ8D,EAAIc,EAAIE,GACrBjB,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKiC,QACM1H,GACJ+F,OACM/F,IACTuG,iBAhPFf,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACDjD,EAAQiF,KAAKvG,EAAMwG,OAAOjC,MAC5BqB,EAAK5F,EAAMwG,OAAOjC,IAClBA,OAEAqB,EAAKzF,EACwBuF,GAASnE,IAEpCqE,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBsB,EAj6BQ,IAk6BRtB,OAEAsB,EAAK1F,EACwBuF,GAASlE,IAEpCqE,IAAO1F,GAETyF,EAAKnE,EAAQmE,GACbD,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACLwB,EAAQ4E,KAAKvG,EAAMwG,OAAOjC,MAC5BoB,EAAK3F,EAAMwG,OAAOjC,IAClBA,OAEAoB,EAAKxF,EACwBuF,GAAS9D,KAI1CoE,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA0LI0C,MACMlI,GACJ+F,OACM/F,IACTyG,iBAgDNjB,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA5qCU,IA6qCVrB,OAEAqB,EAAKzF,EACwBuF,GAASxD,IAEpC0D,IAAOzF,EAAY,KACrB0F,EAAK,GACD1D,EAAQoE,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAStD,IAEpCsE,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EA1rCM,KA2rCNpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAGFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJvE,EAAQoE,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAStD,IAEpCsE,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAjuCI,KAkuCJpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAIP0F,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EAnwCM,IAowCNnC,OAEAmC,EAAKvG,EACwBuF,GAASxD,IAEpCwE,IAAOvG,GAETyF,EAAKnD,EAAQoD,GACbF,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,KAEHwF,IAAOxF,KACTwF,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAjxCQ,IAkxCRrB,OAEAqB,EAAKzF,EACwBuF,GAAS9C,IAEpCgD,IAAOzF,EAAY,KACrB0F,EAAK,GACDhD,EAAQ0D,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS5C,IAEpC4D,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EA1yCI,KA2yCJpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAGFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJ7D,EAAQ0D,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS5C,IAEpC4D,IAAOvG,IACTuG,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAj1CE,KAk1CFpC,OAEAoC,EAAKxG,EACwBuF,GAASrD,IAEpCsE,IAAOxG,GACLH,EAAMzL,OAASgQ,IACjBqC,EAAK5G,EAAMwG,OAAOjC,IAClBA,OAEAqC,EAAKzG,EACwBuF,GAASpD,IAEpCsE,IAAOzG,GAETwG,EAAKpE,EAAQoE,EAAIC,GACjBF,EAAKC,IAELpC,GAAcmC,EACdA,EAAKvG,KAGPoE,GAAcmC,EACdA,EAAKvG,IAIP0F,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EAx2CI,IAy2CJnC,OAEAmC,EAAKvG,EACwBuF,GAAS9C,IAEpC8D,IAAOvG,GAETyF,EAAKnD,EAAQoD,GACbF,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAIT6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EA9RQ2C,MACMnI,IACTyG,iBAgSRjB,EAAIC,EAAIC,EAAIa,EAh4CKhF,EAAGc,EAER+F,EAg4CZtV,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,WAGhB+K,EAAKpB,GACLqB,EAAKrB,GACLsB,EAAK,GACD9C,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,IAEjC0D,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJ3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,OAGtC6C,IAAO1F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBmC,EA37CQ,IA47CRnC,OAEAmC,EAAKvG,EACwBuF,GAAS7D,IAEpC6E,IAAOvG,EAETyF,EADAC,EAAK,CAACA,EAAIa,IAGVnC,GAAcqB,EACdA,EAAKzF,KAGPoE,GAAcqB,EACdA,EAAKzF,GAEHyF,IAAOzF,IACTyF,EAAK,MAEHA,IAAOzF,EAAY,IACrB0F,EAAK,GACD9C,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,IAEpC0D,IAAOvG,OACFuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACJ3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BmC,EAAK1G,EAAMwG,OAAOjC,IAClBA,OAEAmC,EAAKvG,EACwBuF,GAAS1C,SAI1C6C,EAAK1F,EAEH0F,IAAO1F,GA58CWqC,EA88CHqD,EA58CL0C,GAFK7G,EA88CJkE,GA58CqB,GAAGoB,OAAOwB,MAAM,GAAI9G,GAAG/B,KAAK,IAAM,GA48CpEiG,EA38Ca,CAAE9R,KAAM,UAAWkO,MAAOyG,WAAWF,EAAkB/F,EAAE7C,KAAK,MA48C3EgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EA3XU+C,MACMvI,IACTyG,iBA6XVjB,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAIhBgL,EAAKU,QACMnG,IAETyF,EAz+C+B,CAAE9R,KAAM,UAAWkO,MAy+CrC4D,IAEfD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAlZYgD,IAGL/B,IAAOzG,GAETyF,EAAK9D,EAAQ8D,EAAIc,EAAIE,GACrBjB,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAEHwF,IAAOxF,IACTwF,EAAKpB,IACLqB,EAAKiC,QACM1H,IAETyF,EAppC8B,CAAE9R,KAAM,YAAagK,KAopCtC8H,IAEfD,EAAKC,IAITI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA1UEiD,MACMzI,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAz2BE,IA02BFrC,OAEAqC,EAAKzG,EACwBuF,GAASrE,IAEpCuF,IAAOzG,EAGTwF,EADAC,EAAac,GAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA3KEkD,MACM1I,IACTwF,iBA0gCFA,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EAAIC,EAjrDPvS,EAmrDjBrB,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EA9uDU,IA+uDVrB,OAEAqB,EAAKzF,EACwBuF,GAAS7D,IAEpC+D,IAAOzF,MACT0F,EAAKS,QACMnG,EAAY,KACrBuG,EAAK,GACLC,EAAKpC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqC,EA1vDM,IA2vDNrC,OAEAqC,EAAKzG,EACwBuF,GAAS7D,IAEpC+E,IAAOzG,IACT0G,EAAKP,QACMnG,EAETwG,EADAC,EAAK,CAACA,EAAIC,IAOZtC,GAAcoC,EACdA,EAAKxG,GAEAwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACRA,EAAKpC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqC,EAjxDI,IAkxDJrC,OAEAqC,EAAKzG,EACwBuF,GAAS7D,IAEpC+E,IAAOzG,IACT0G,EAAKP,QACMnG,EAETwG,EADAC,EAAK,CAACA,EAAIC,IAOZtC,GAAcoC,EACdA,EAAKxG,GAGLuG,IAAOvG,GArvDM7L,EAuvDFuR,EAAbD,EAtvDK,CAAE9R,KAAM,QAASgK,KAsvDL4I,EAtvDcS,QAAO,SAASC,EAAMlC,UAAWkC,EAAOlC,EAAE,GAAKA,EAAE,KAAO5Q,IAuvDvFqR,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAjmCImD,MACM3I,IACTwF,iBAmmCJA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GApxDO,UAqxDRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EAtxDU,QAuxDVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAAShC,IAEpCkC,IAAOzF,GACJ+F,OACM/F,IACTuG,EAAKP,QACMhG,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAnzDE,IAozDFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,EAGTwF,EADAC,EA1yDwB,CAAE9R,KAAM,MAAOsS,UA0yD1BM,IAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA/pCMoD,MACM5I,IACTwF,iBAiqCNA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GAj1DO,cAk1DRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EAn1DU,YAo1DVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAAS/B,IAEpCiC,IAAOzF,GACJ+F,OACM/F,IACTuG,EAAKP,QACMhG,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAn3DE,IAo3DFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,EAGTwF,EADAC,EAv2DwB,CAAE9R,KAAM,UAAWsS,UAu2D9BM,IAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA7tCQqD,MACM7I,IACTwF,iBA+tCRA,EAAIC,EAAQc,EAAQE,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GA94DO,UA+4DRvE,EAAM+H,OAAOxD,GAAa,IAC5BqB,EAh5DU,QAi5DVrB,IAAe,IAEfqB,EAAKzF,EACwBuF,GAAS9B,IAEpCgC,IAAOzF,GACJ+F,OACM/F,IACTuG,EAAKP,QACMhG,GACJ+F,OACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAn7DE,IAo7DFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,EAGTwF,EADAC,EAp6DwB,CAAE9R,KAAM,MAAOsS,UAo6D1BM,IAGbnC,GAAcoB,EACdA,EAAKxF,KAeboE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA3xCUsD,MACM9I,IACTwF,iBA6xCVA,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAx8DJ,iBA48DRoF,EAAM+H,OAAOxD,GAAa,KAC5BqB,EA78DU,eA88DVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS7B,KAEpC+B,IAAOzF,IAETyF,EAn9D8BsD,GAAI,IAq9DpCvD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAxzCYwD,MACMhJ,IACTwF,iBA0zCZA,EAAIC,EAEJ3S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAp+DJ,gBAw+DRoF,EAAM+H,OAAOxD,GAAa,KAC5BqB,EAz+DU,cA0+DVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS5B,KAEpC8B,IAAOzF,IAETyF,EA/+D8BwD,GAAQ,IAi/DxCzD,EAAKC,EAELI,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GAr1Cc0D,MACMlJ,IACTwF,iBAu1CdA,EAAIC,EAAQc,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GAngEO,gBAogERvE,EAAM+H,OAAOxD,GAAa,KAC5BqB,EArgEU,cAsgEVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS3B,KAEpC6B,IAAOzF,KACJ+F,OACM/F,EAAY,IACrBuG,EAAK,GACD3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,IAEpC2D,IAAOxG,OACFwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACJ5D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,SAI1C0D,EAAKvG,EAEHuG,IAAOvG,IACTwG,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EAtkEE,IAukEFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,GAETyF,EA9iEuBsD,GAAII,SA8iEd5C,EA9iEyB/G,KAAK,IAAK,KA+iEhDgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAOToE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EAx6CgB4D,MACMpJ,IACTwF,iBA06ChBA,EAAIC,EAAQc,EAAIC,EAAIC,EAEpB3T,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,GArlEO,qBAslERvE,EAAM+H,OAAOxD,GAAa,KAC5BqB,EAvlEU,mBAwlEVrB,IAAe,KAEfqB,EAAKzF,EACwBuF,GAAS1B,KAEpC4B,IAAOzF,KACJ+F,OACM/F,EAAY,IACrBuG,EAAK,GACD3D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,IAEpC2D,IAAOxG,OACFwG,IAAOxG,GACZuG,EAAG5L,KAAK6L,GACJ5D,EAAQwD,KAAKvG,EAAMwG,OAAOjC,MAC5BoC,EAAK3G,EAAMwG,OAAOjC,IAClBA,OAEAoC,EAAKxG,EACwBuF,GAAS1C,SAI1C0D,EAAKvG,EAEHuG,IAAOvG,IACTwG,EAAKT,QACM/F,GAC6B,KAAlCH,EAAMZ,WAAWmF,KACnBqC,EA3pEE,IA4pEFrC,OAEAqC,EAAKzG,EACwBuF,GAAStC,IAEpCwD,IAAOzG,GAETyF,EAhoEuBwD,GAAQE,SAgoElB5C,EAhoE6B/G,KAAK,IAAK,KAioEpDgG,EAAKC,IAELrB,GAAcoB,EACdA,EAAKxF,KAOToE,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,OAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,EA3/CkB6D,MACMrJ,IACTwF,iBA6/ClBA,EAAIC,EAAIC,EAER5S,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,UAE1B8S,GACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,SAGhB+K,EAAKpB,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBqB,EAzqEW,IA0qEXrB,OAEAqB,EAAKzF,EACwBuF,GAASzB,KAEpC2B,IAAOzF,GA7qEE,cA8qEPH,EAAM+H,OAAOxD,GAAa,GAAGkF,eAC/B5D,EAAK7F,EAAM+H,OAAOxD,GAAa,GAC/BA,IAAe,IAEfsB,EAAK1F,EACwBuF,GAASxB,KAEpC2B,IAAO1F,IAnrEA,eAorELH,EAAM+H,OAAOxD,GAAa,IAAIkF,eAChC5D,EAAK7F,EAAM+H,OAAOxD,GAAa,IAC/BA,IAAe,KAEfsB,EAAK1F,EACwBuF,GAASvB,KAEpC0B,IAAO1F,IAzrEF,gBA0rEHH,EAAM+H,OAAOxD,GAAa,IAAIkF,eAChC5D,EAAK7F,EAAM+H,OAAOxD,GAAa,IAC/BA,IAAe,KAEfsB,EAAK1F,EACwBuF,GAAStB,KAEpCyB,IAAO1F,IA/rEJ,aAgsEDH,EAAM+H,OAAOxD,GAAa,GAAGkF,eAC/B5D,EAAK7F,EAAM+H,OAAOxD,GAAa,GAC/BA,IAAe,IAEfsB,EAAK1F,EACwBuF,GAASrB,KAEpCwB,IAAO1F,IArsEN,YAssECH,EAAM+H,OAAOxD,GAAa,GAAGkF,eAC/B5D,EAAK7F,EAAM+H,OAAOxD,GAAa,GAC/BA,IAAe,IAEfsB,EAAK1F,EACwBuF,GAASpB,SAM5CuB,IAAO1F,EAGTwF,EADAC,EAhtEO,CAAE9R,KAAM,QAASgK,KAgtEV+H,IAGdtB,GAAcoB,EACdA,EAAKxF,KAGPoE,GAAcoB,EACdA,EAAKxF,GAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,GA3kDoB+D,IAa3B1D,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,YAwPAkC,SACHlC,EAAIC,EAAIC,EAAIa,EAAIC,EAAIC,EA7+BHlF,EAAG+F,EA++BpBxU,EAAuB,GAAdsR,GAAmB,GAC5BwB,EAASC,GAAiB/S,MAE1B8S,SACFxB,GAAcwB,EAAOE,QAEdF,EAAOnL,UAGhB+K,EAAKpB,IACLqB,EAAKU,QACMnG,EAAY,KACrB0F,EAAK,GACLa,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAhgCQ,IAigCRpC,OAEAoC,EAAKxG,EACwBuF,GAAS7D,IAEpC8E,IAAOxG,IACTyG,EAAKN,QACMnG,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAEAuG,IAAOvG,GACZ0F,EAAG/K,KAAK4L,GACRA,EAAKnC,GACiC,KAAlCvE,EAAMZ,WAAWmF,KACnBoC,EAvhCM,IAwhCNpC,OAEAoC,EAAKxG,EACwBuF,GAAS7D,IAEpC8E,IAAOxG,IACTyG,EAAKN,QACMnG,EAETuG,EADAC,EAAK,CAACA,EAAIC,IAOZrC,GAAcmC,EACdA,EAAKvG,GAGL0F,IAAO1F,GAziCQuB,EA2iCJkE,EA3iCO6B,EA2iCH5B,EACjBF,EADAC,EA1iCS,GAAGoB,OAAOwB,MAAM,CAAC9G,GAAI+F,GAAI9H,KAAK,MA6iCvC4E,GAAcoB,EACdA,EAAKxF,QAGPoE,GAAcoB,EACdA,EAAKxF,SAGP6F,GAAiB/S,GAAO,CAAEgT,QAAS1B,GAAa3J,OAAQ+K,GAEjDA,WA4vCEuD,GAAIS,SAAY,CAAE7V,KAAM,YAAa8V,MAAO,CAAE9V,KAAM,UAAWkO,MAAO2H,aACtEP,GAAQO,SAAY,CAAE7V,KAAM,iBAAkB8V,MAAO,CAAE9V,KAAM,UAAWkO,MAAO2H,QAgB1FzJ,EAAaK,OAEMJ,GAAcoE,KAAgBvE,EAAMzL,cAC9C2L,QAEHA,IAAeC,GAAcoE,GAAcvE,EAAMzL,QACnDmR,GA7rEK,CAAE5R,KAAM,QAyEiB6J,EAwnE9BiH,GAxnEwChH,EAynExC+G,GAAiB3E,EAAMzL,OAASyL,EAAMwG,OAAO7B,IAAkB,KAznEhB9G,EA0nE/C8G,GAAiB3E,EAAMzL,OACnB6Q,GAAoBT,GAAgBA,GAAiB,GACrDS,GAAoBT,GAAgBA,IA3nEnC,IAAIlH,EACTA,EAAgBW,aAAaT,EAAUC,GACvCD,EACAC,EACAC,KAhaagM,OC+ErB,SAASC,EAAQtW,EAAMuW,EAAUC,EAAU/J,OAClC8J,SAAmB,MACnBvW,SAAe,SACfwW,IAAYA,EAAW,IAErBD,EAASjW,UACP,kBACM,MAEN,oBACMiW,EAAS/H,MAAMyH,gBAAkBjW,EAAKM,KAAK2V,kBAEjD,YACKhW,EAAOsW,EAASjM,KAAKmM,MAAM,KAC3BC,EAAWF,EAASvW,EAAKc,OAAS,UAnDpD,SAAS4V,EAAO3W,EAAM0W,EAAUzW,MACR,IAAhBA,EAAKc,cAAuBf,IAAS0W,KACzB,MAAZA,SAA2B,MACzBE,EAAQF,EAASzW,EAAK,IACtB4W,EAAgB5W,EAAKiM,MAAM,MAC7BpF,MAAMC,QAAQ6P,GAAQ,WACEA,kCAAO,IACvBD,EAAO3W,UAAiB6W,UAAyB,wCAElD,SAEAF,EAAO3W,EAAM4W,EAAOC,GAyChBF,CAAO3W,EAAM0W,EAAUzW,OAG7B,oBACiBsW,EAAS3D,0CAAW,KAA3BkE,aACHR,EAAQtW,EAAM8W,EAAKN,EAAU/J,UAAmB,wCAEjD,MAEN,qBACiB8J,EAAS3D,0CAAW,KAA3BkE,cACFR,EAAQtW,EAAM8W,EAAKN,EAAU/J,UAAmB,wCAElD,MAEN,gBACiB8J,EAAS3D,0CAAW,KAA3BkE,aACHR,EAAQtW,EAAM8W,EAAKN,EAAU/J,UAAmB,wCAEjD,MAEN,6BACKsK,EAAY,OACAR,EAAS3D,oCAAhBkE,UACD5I,EAAI,GACV8I,EAAWhW,SAAShB,EAAM,CACtBkJ,eAAOlJ,EAAMF,GACK,MAAVA,GAAkBoO,EAAE+I,QAAQnX,GAC5BwW,EAAQtW,EAAM8W,EAAK5I,EAAGzB,IACtBsK,EAAUzP,KAAKtH,IAGvBoJ,iBAAW8E,EAAEgJ,SACbzO,KAAMgE,GAAWA,EAAQ0K,YACzB5O,SAAUkE,GAAWA,EAAQlE,UAAY,qFAGrB,IAArBwO,EAAUhW,6CAGhB,gBACGuV,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IACjC6J,EAAQE,EAAS,GAAID,EAASzC,KAAM0C,EAAStK,MAAM,GAAIO,OAIjE,gBACG6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,OACnC,IAAI3L,EAAI,EAAGsW,EAAIZ,EAASzV,OAAQD,EAAIsW,IAAKtW,KACtCwV,EAAQE,EAAS1V,GAAIyV,EAASzC,KAAM0C,EAAStK,MAAMpL,EAAI,GAAI2L,UACpD,SAIZ,MAEN,gBACKiF,EA9HlB,SAAiBlS,EAAKC,aACLA,EAAIgX,MAAM,qCACC,KAAbhX,aACI,MAAPD,SAAsBA,EAC1BA,EAAMA,EAAIC,yCAEPD,EAwHW6X,CAAQrX,EAAMuW,EAASjM,aACzBiM,EAAS9H,oBACR,SACW,MAALiD,MACN,WACO6E,EAAS/H,MAAMlO,UACd,eAA8B,iBAANoR,GAAkB6E,EAAS/H,MAAMA,MAAMuE,KAAKrB,OACpE,gBAAkB,UAAG6E,EAAS/H,MAAMA,mBAAekD,OACnD,cAAe6E,EAAS/H,MAAMA,UAAiBkD,SAElD,IAAIvI,6CAAsCoN,EAAS/H,MAAMlO,WAC9D,YACOiW,EAAS/H,MAAMlO,UACd,gBAAkBiW,EAAS/H,MAAMA,MAAMuE,KAAKrB,OAC5C,gBAAkB,UAAG6E,EAAS/H,MAAMA,mBAAekD,OACnD,cAAe6E,EAAS/H,MAAMA,UAAiBkD,SAElD,IAAIvI,6CAAsCoN,EAAS/H,MAAMlO,WAC9D,YAAaoR,GAAK6E,EAAS/H,MAAMA,UACjC,WAAYkD,EAAI6E,EAAS/H,MAAMA,UAC/B,WAAYkD,EAAI6E,EAAS/H,MAAMA,UAC/B,YAAakD,GAAK6E,EAAS/H,MAAMA,YAEpC,IAAIrF,kCAA2BoN,EAAS9H,eAE7C,iBACM6H,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C6K,EAAQtX,EAAMuW,EAASzC,KAAM0C,EAnL3B,YAmLgD/J,IAClD8J,EAASzC,KAAKE,SACdsC,EAAQtW,EAAMuW,EAASzC,KAAM0C,EAAU/J,IACvC6K,EAAQtX,EAAMuW,EAASxC,MAAOyC,EArL3B,aAqLiD/J,OACvD,kBACM6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C8K,EAASvX,EAAMuW,EAASzC,KAAM0C,EAzL5B,YAyLiD/J,IACnD8J,EAASxC,MAAMC,SACfsC,EAAQtW,EAAMuW,EAASzC,KAAM0C,EAAU/J,IACvC8K,EAASvX,EAAMuW,EAASxC,MAAOyC,EA3L5B,aA2LkD/J,OAExD,mBACM6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C+K,EAASxX,EAAMwW,GAAU,kBACdD,EAASH,MAAM5H,MAAQ,IAC/B/B,OAEN,wBACM6J,EAAQtW,EAAMuW,EAASxC,MAAOyC,EAAU/J,IAC3C+K,EAASxX,EAAMwW,GAAU,SAAUzV,UACxBA,EAASwV,EAASH,MAAM5H,QAChC/B,OAEN,eACM8J,EAASjM,KAAK2L,mBACZ,eAC0B,cAAxBjW,EAAKM,KAAK4L,OAAO,GAAoB,OAAO,MAE9C,oBAC+B,gBAAzBlM,EAAKM,KAAK4L,OAAO,QACvB,aAC0B,YAAxBlM,EAAKM,KAAK4L,OAAO,GAAkB,OAAO,MAE5C,mBAC+B,eAAzBlM,EAAKM,KAAK4L,OAAO,KACI,YAAxBlM,EAAKM,KAAK4L,OAAO,IAEC,eAAdlM,EAAKM,OACgB,IAApBkW,EAASzV,QAAqC,iBAArByV,EAAS,GAAGlW,OAE5B,iBAAdN,EAAKM,SACR,iBACoB,wBAAdN,EAAKM,MACM,uBAAdN,EAAKM,MACS,4BAAdN,EAAKM,WAEX,IAAI6I,oCAA6BoN,EAASjM,aAGlD,IAAInB,uCAAgCoN,EAASjW,OASvD,SAASmX,EAAezX,EAAMyM,OACpBjM,EAAWR,EAAKM,YAClBmM,GAAWA,EAAQ0K,aAAe1K,EAAQ0K,YAAY3W,GAC/CiM,EAAQ0K,YAAY3W,GAE3BwW,EAAW7X,YAAYqB,GAChBwW,EAAW7X,YAAYqB,GAE9BiM,GAAuC,mBAArBA,EAAQlE,SACnBkE,EAAQlE,SAASvI,GAGrBwI,OAAOC,KAAKzI,GAAM0X,QAAO,SAAUjY,SACvB,SAARA,KAUf,SAASY,EAAOL,UACI,OAATA,GAAiC,WAAhB2X,EAAO3X,IAA0C,iBAAdA,EAAKM,KAapE,SAASgX,EAAQtX,EAAMuW,EAAUC,EAAUoB,EAAMnL,OACtC3M,IAAU0W,YACZ1W,SAAiB,YACT2X,EAAe3X,EAAQ2M,mCACZ,KACdoL,EAAW/X,cACbgH,MAAMC,QAAQ8Q,GAAW,KACnBC,EAAaD,EAASE,QAAQ/X,MAChC8X,EAAa,eACbE,SAAYpW,SA3RV,cA4RFgW,GACAI,EAAa,EACbpW,EAAakW,IAEbE,EAAaF,EAAa,EAC1BlW,EAAaiW,EAAS9W,YAErB,IAAIkX,EAAID,EAAYC,EAAIrW,IAAcqW,KACnC5X,EAAOwX,EAASI,KAAO3B,EAAQuB,EAASI,GAAI1B,EAAUC,EAAU/J,UACzD,yCAKhB,EAaX,SAAS8K,EAASvX,EAAMuW,EAAUC,EAAUoB,EAAMnL,OACvC3M,IAAU0W,YACZ1W,SAAiB,YACT2X,EAAe3X,EAAQ2M,mCACZ,KACdoL,EAAW/X,cACbgH,MAAMC,QAAQ8Q,GAAW,KACnBK,EAAML,EAASE,QAAQ/X,MACzBkY,EAAM,cA/TJ,cAgUFN,GAAsBM,EAAM,GAAK7X,EAAOwX,EAASK,EAAM,KAAO5B,EAAQuB,EAASK,EAAM,GAAI3B,EAAUC,EAAU/J,UACtG,KAhUJ,eAkUHmL,GAAuBM,EAAML,EAAS9W,OAAS,GAAKV,EAAOwX,EAASK,EAAM,KAAQ5B,EAAQuB,EAASK,EAAM,GAAI3B,EAAUC,EAAU/J,UAC1H,yCAIZ,EAkBX,SAAS+K,EAASxX,EAAMwW,EAAU2B,EAAO1L,OAC9B3M,IAAU0W,YACZ1W,SAAiB,YACT2X,EAAe3X,EAAQ2M,mCACZ,KACdoL,EAAW/X,cACbgH,MAAMC,QAAQ8Q,GAAW,KACnBK,EAAML,EAASE,QAAQ/X,MACzBkY,GAAO,GAAKA,IAAQC,EAAMN,EAAS9W,eAAkB,yCAG1D,EAUX,SAASqX,EAAS7B,EAAUG,MACR,MAAZH,GAAuC,UAAnBoB,EAAOpB,SAA+B,GAC9C,MAAZG,IAAoBA,EAAWH,WAC7B8B,EAAU9B,EAASvC,QAAU,CAAC0C,GAAY,sGACzB4B,CAAe/B,kBAAW,iBAArC7E,OAAGoF,OACXuB,EAAQ/Q,WAAR+Q,IAAgBD,EAAStB,EAAW,SAANpF,EAAeoF,EAAMJ,YAEhD2B,EAmBX,SAASrX,EAASuX,EAAKhC,EAAUrV,EAASuL,MACjC8J,OACCC,EAAW,GACXgC,EAAcJ,EAAS7B,GAC7BS,EAAWhW,SAASuX,EAAK,CACrBrP,eAAOlJ,EAAMF,MACK,MAAVA,GAAkB0W,EAASS,QAAQnX,GACnCwW,EAAQtW,EAAMuW,EAAUC,EAAU/J,MAC9B+L,EAAYzX,WACP,IAAID,EAAI,EAAGsW,EAAIoB,EAAYzX,OAAQD,EAAIsW,IAAKtW,EAAG,CAC5CwV,EAAQtW,EAAMwY,EAAY1X,GAAI0V,EAAU/J,IACxCvL,EAAQlB,EAAMF,EAAQ0W,OAErB,IAAIyB,EAAI,EAAGQ,EAAIjC,EAASzV,OAAQkX,EAAIQ,IAAKR,EAAG,KACvCS,EAAqBlC,EAAStK,MAAM+L,EAAI,GAC1C3B,EAAQE,EAASyB,GAAIO,EAAY1X,GAAI4X,EAAoBjM,IACzDvL,EAAQsV,EAASyB,GAAInY,EAAQ4Y,SAKzCxX,EAAQlB,EAAMF,EAAQ0W,IAIlCpN,iBAAWoN,EAASU,SACpBzO,KAAMgE,GAAWA,EAAQ0K,YACzB5O,SAAUkE,GAAWA,EAAQlE,UAAY,eAajD,SAAS4G,EAAMoJ,EAAKhC,EAAU9J,OACpB4L,EAAU,UAChBrX,EAASuX,EAAKhC,GAAU,SAAUvW,GAC9BqY,EAAQ/Q,KAAKtH,KACdyM,GACI4L,EAQX,SAAS9L,EAAMgK,UACJoC,EAAOpM,MAAMgK,GAUxB,SAASqC,EAAML,EAAKhC,EAAU9J,UACnB0C,EAAMoJ,EAAKhM,EAAMgK,GAAW9J,UAGvCmM,EAAMrM,MAAQA,EACdqM,EAAMzJ,MAAQA,EACdyJ,EAAM5X,SAAWA,EACjB4X,EAAMtC,QAAUA,EAChBsC,EAAMA,MAAQA"} \ No newline at end of file diff --git a/node_modules/esquery/license.txt b/node_modules/esquery/license.txt new file mode 100644 index 0000000..52f915e --- /dev/null +++ b/node_modules/esquery/license.txt @@ -0,0 +1,24 @@ +Copyright (c) 2013, Joel Feenstra +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the ESQuery nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL JOEL FEENSTRA BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/esquery/package.json b/node_modules/esquery/package.json new file mode 100644 index 0000000..3d81875 --- /dev/null +++ b/node_modules/esquery/package.json @@ -0,0 +1,78 @@ +{ + "name": "esquery", + "version": "1.4.0", + "author": "Joel Feenstra ", + "contributors": [], + "description": "A query library for ECMAScript AST using a CSS selector like query language.", + "main": "dist/esquery.min.js", + "module": "dist/esquery.esm.min.js", + "files": [ + "dist/*.js", + "dist/*.map", + "parser.js", + "license.txt", + "README.md" + ], + "nyc": { + "branches": 100, + "lines": 100, + "functions": 100, + "statements": 100, + "reporter": [ + "html", + "text" + ], + "exclude": [ + "parser.js", + "dist", + "tests" + ] + }, + "scripts": { + "prepublishOnly": "npm run build && npm test", + "build:parser": "rm parser.js && pegjs --cache --format umd -o \"parser.js\" \"grammar.pegjs\"", + "build:browser": "rollup -c", + "build": "npm run build:parser && npm run build:browser", + "mocha": "mocha --require chai/register-assert --require @babel/register tests", + "test": "nyc npm run mocha && npm run lint", + "test:ci": "npm run mocha", + "lint": "eslint ." + }, + "repository": { + "type": "git", + "url": "https://github.com/estools/esquery.git" + }, + "bugs": "https://github.com/estools/esquery/issues", + "homepage": "https://github.com/estools/esquery/", + "keywords": [ + "ast", + "ecmascript", + "javascript", + "query" + ], + "devDependencies": { + "@babel/core": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/register": "^7.9.0", + "@rollup/plugin-commonjs": "^11.1.0", + "@rollup/plugin-json": "^4.0.2", + "@rollup/plugin-node-resolve": "^7.1.3", + "babel-plugin-transform-es2017-object-entries": "0.0.5", + "chai": "^4.2.0", + "eslint": "^6.8.0", + "esprima": "~4.0.1", + "mocha": "^7.1.1", + "nyc": "^15.0.1", + "pegjs": "~0.10.0", + "rollup": "^1.32.1", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-terser": "^5.3.0" + }, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10" + }, + "dependencies": { + "estraverse": "^5.1.0" + } +} diff --git a/node_modules/esquery/parser.js b/node_modules/esquery/parser.js new file mode 100644 index 0000000..36d590c --- /dev/null +++ b/node_modules/esquery/parser.js @@ -0,0 +1,2602 @@ +/* + * Generated by PEG.js 0.10.0. + * + * http://pegjs.org/ + */ +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([], factory); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(); + } +})(this, function() { + "use strict"; + + function peg$subclass(child, parent) { + function ctor() { this.constructor = child; } + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + } + + function peg$SyntaxError(message, expected, found, location) { + this.message = message; + this.expected = expected; + this.found = found; + this.location = location; + this.name = "SyntaxError"; + + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, peg$SyntaxError); + } + } + + peg$subclass(peg$SyntaxError, Error); + + peg$SyntaxError.buildMessage = function(expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + + "class": function(expectation) { + var escapedParts = "", + i; + + for (i = 0; i < expectation.parts.length; i++) { + escapedParts += expectation.parts[i] instanceof Array + ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) + : classEscape(expectation.parts[i]); + } + + return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; + }, + + any: function(expectation) { + return "any character"; + }, + + end: function(expectation) { + return "end of input"; + }, + + other: function(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function classEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/\]/g, '\\]') + .replace(/\^/g, '\\^') + .replace(/-/g, '\\-') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = new Array(expected.length), + i, j; + + for (i = 0; i < expected.length; i++) { + descriptions[i] = describeExpectation(expected[i]); + } + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + + ", or " + + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; + }; + + function peg$parse(input, options) { + options = options !== void 0 ? options : {}; + + var peg$FAILED = {}, + + peg$startRuleFunctions = { start: peg$parsestart }, + peg$startRuleFunction = peg$parsestart, + + peg$c0 = function(ss) { + return ss.length === 1 ? ss[0] : { type: 'matches', selectors: ss }; + }, + peg$c1 = function() { return void 0; }, + peg$c2 = " ", + peg$c3 = peg$literalExpectation(" ", false), + peg$c4 = /^[^ [\],():#!=><~+.]/, + peg$c5 = peg$classExpectation([" ", "[", "]", ",", "(", ")", ":", "#", "!", "=", ">", "<", "~", "+", "."], true, false), + peg$c6 = function(i) { return i.join(''); }, + peg$c7 = ">", + peg$c8 = peg$literalExpectation(">", false), + peg$c9 = function() { return 'child'; }, + peg$c10 = "~", + peg$c11 = peg$literalExpectation("~", false), + peg$c12 = function() { return 'sibling'; }, + peg$c13 = "+", + peg$c14 = peg$literalExpectation("+", false), + peg$c15 = function() { return 'adjacent'; }, + peg$c16 = function() { return 'descendant'; }, + peg$c17 = ",", + peg$c18 = peg$literalExpectation(",", false), + peg$c19 = function(s, ss) { + return [s].concat(ss.map(function (s) { return s[3]; })); + }, + peg$c20 = function(a, ops) { + return ops.reduce(function (memo, rhs) { + return { type: rhs[0], left: memo, right: rhs[1] }; + }, a); + }, + peg$c21 = "!", + peg$c22 = peg$literalExpectation("!", false), + peg$c23 = function(subject, as) { + const b = as.length === 1 ? as[0] : { type: 'compound', selectors: as }; + if(subject) b.subject = true; + return b; + }, + peg$c24 = "*", + peg$c25 = peg$literalExpectation("*", false), + peg$c26 = function(a) { return { type: 'wildcard', value: a }; }, + peg$c27 = "#", + peg$c28 = peg$literalExpectation("#", false), + peg$c29 = function(i) { return { type: 'identifier', value: i }; }, + peg$c30 = "[", + peg$c31 = peg$literalExpectation("[", false), + peg$c32 = "]", + peg$c33 = peg$literalExpectation("]", false), + peg$c34 = function(v) { return v; }, + peg$c35 = /^[>", "<", "!"], false, false), + peg$c37 = "=", + peg$c38 = peg$literalExpectation("=", false), + peg$c39 = function(a) { return (a || '') + '='; }, + peg$c40 = /^[><]/, + peg$c41 = peg$classExpectation([">", "<"], false, false), + peg$c42 = ".", + peg$c43 = peg$literalExpectation(".", false), + peg$c44 = function(a, as) { + return [].concat.apply([a], as).join(''); + }, + peg$c45 = function(name, op, value) { + return { type: 'attribute', name: name, operator: op, value: value }; + }, + peg$c46 = function(name) { return { type: 'attribute', name: name }; }, + peg$c47 = "\"", + peg$c48 = peg$literalExpectation("\"", false), + peg$c49 = /^[^\\"]/, + peg$c50 = peg$classExpectation(["\\", "\""], true, false), + peg$c51 = "\\", + peg$c52 = peg$literalExpectation("\\", false), + peg$c53 = peg$anyExpectation(), + peg$c54 = function(a, b) { return a + b; }, + peg$c55 = function(d) { + return { type: 'literal', value: strUnescape(d.join('')) }; + }, + peg$c56 = "'", + peg$c57 = peg$literalExpectation("'", false), + peg$c58 = /^[^\\']/, + peg$c59 = peg$classExpectation(["\\", "'"], true, false), + peg$c60 = /^[0-9]/, + peg$c61 = peg$classExpectation([["0", "9"]], false, false), + peg$c62 = function(a, b) { + // Can use `a.flat().join('')` once supported + const leadingDecimals = a ? [].concat.apply([], a).join('') : ''; + return { type: 'literal', value: parseFloat(leadingDecimals + b.join('')) }; + }, + peg$c63 = function(i) { return { type: 'literal', value: i }; }, + peg$c64 = "type(", + peg$c65 = peg$literalExpectation("type(", false), + peg$c66 = /^[^ )]/, + peg$c67 = peg$classExpectation([" ", ")"], true, false), + peg$c68 = ")", + peg$c69 = peg$literalExpectation(")", false), + peg$c70 = function(t) { return { type: 'type', value: t.join('') }; }, + peg$c71 = /^[imsu]/, + peg$c72 = peg$classExpectation(["i", "m", "s", "u"], false, false), + peg$c73 = "/", + peg$c74 = peg$literalExpectation("/", false), + peg$c75 = /^[^\/]/, + peg$c76 = peg$classExpectation(["/"], true, false), + peg$c77 = function(d, flgs) { return { + type: 'regexp', value: new RegExp(d.join(''), flgs ? flgs.join('') : '') }; + }, + peg$c78 = function(i, is) { + return { type: 'field', name: is.reduce(function(memo, p){ return memo + p[0] + p[1]; }, i)}; + }, + peg$c79 = ":not(", + peg$c80 = peg$literalExpectation(":not(", false), + peg$c81 = function(ss) { return { type: 'not', selectors: ss }; }, + peg$c82 = ":matches(", + peg$c83 = peg$literalExpectation(":matches(", false), + peg$c84 = function(ss) { return { type: 'matches', selectors: ss }; }, + peg$c85 = ":has(", + peg$c86 = peg$literalExpectation(":has(", false), + peg$c87 = function(ss) { return { type: 'has', selectors: ss }; }, + peg$c88 = ":first-child", + peg$c89 = peg$literalExpectation(":first-child", false), + peg$c90 = function() { return nth(1); }, + peg$c91 = ":last-child", + peg$c92 = peg$literalExpectation(":last-child", false), + peg$c93 = function() { return nthLast(1); }, + peg$c94 = ":nth-child(", + peg$c95 = peg$literalExpectation(":nth-child(", false), + peg$c96 = function(n) { return nth(parseInt(n.join(''), 10)); }, + peg$c97 = ":nth-last-child(", + peg$c98 = peg$literalExpectation(":nth-last-child(", false), + peg$c99 = function(n) { return nthLast(parseInt(n.join(''), 10)); }, + peg$c100 = ":", + peg$c101 = peg$literalExpectation(":", false), + peg$c102 = "statement", + peg$c103 = peg$literalExpectation("statement", true), + peg$c104 = "expression", + peg$c105 = peg$literalExpectation("expression", true), + peg$c106 = "declaration", + peg$c107 = peg$literalExpectation("declaration", true), + peg$c108 = "function", + peg$c109 = peg$literalExpectation("function", true), + peg$c110 = "pattern", + peg$c111 = peg$literalExpectation("pattern", true), + peg$c112 = function(c) { + return { type: 'class', name: c }; + }, + + peg$currPos = 0, + peg$savedPos = 0, + peg$posDetailsCache = [{ line: 1, column: 1 }], + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$silentFails = 0, + + peg$resultsCache = {}, + + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function text() { + return input.substring(peg$savedPos, peg$currPos); + } + + function location() { + return peg$computeLocation(peg$savedPos, peg$currPos); + } + + function expected(description, location) { + location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) + + throw peg$buildStructuredError( + [peg$otherExpectation(description)], + input.substring(peg$savedPos, peg$currPos), + location + ); + } + + function error(message, location) { + location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) + + throw peg$buildSimpleError(message, location); + } + + function peg$literalExpectation(text, ignoreCase) { + return { type: "literal", text: text, ignoreCase: ignoreCase }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; + } + + function peg$anyExpectation() { + return { type: "any" }; + } + + function peg$endExpectation() { + return { type: "end" }; + } + + function peg$otherExpectation(description) { + return { type: "other", description: description }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos], p; + + if (details) { + return details; + } else { + p = pos - 1; + while (!peg$posDetailsCache[p]) { + p--; + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + return details; + } + } + + function peg$computeLocation(startPos, endPos) { + var startPosDetails = peg$computePosDetails(startPos), + endPosDetails = peg$computePosDetails(endPos); + + return { + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { return; } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildSimpleError(message, location) { + return new peg$SyntaxError(message, null, null, location); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError( + peg$SyntaxError.buildMessage(expected, found), + expected, + found, + location + ); + } + + function peg$parsestart() { + var s0, s1, s2, s3; + + var key = peg$currPos * 30 + 0, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + s2 = peg$parseselectors(); + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c0(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c1(); + } + s0 = s1; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parse_() { + var s0, s1; + + var key = peg$currPos * 30 + 1, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = []; + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c3); } + } + while (s1 !== peg$FAILED) { + s0.push(s1); + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c3); } + } + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseidentifierName() { + var s0, s1, s2; + + var key = peg$currPos * 30 + 2, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = []; + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c5); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c4.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c5); } + } + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c6(s1); + } + s0 = s1; + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsebinaryOp() { + var s0, s1, s2, s3; + + var key = peg$currPos * 30 + 3, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 62) { + s2 = peg$c7; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c8); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c9(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 126) { + s2 = peg$c10; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c11); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c12(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parse_(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 43) { + s2 = peg$c13; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c14); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse_(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c15(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c2; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c3); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c16(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseselectors() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + var key = peg$currPos * 30 + 4, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseselector(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c17; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseselector(); + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c19(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseselector() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 5, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parsesequence(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parsebinaryOp(); + if (s4 !== peg$FAILED) { + s5 = peg$parsesequence(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c20(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsesequence() { + var s0, s1, s2, s3; + + var key = peg$currPos * 30 + 6, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c22); } + } + if (s1 === peg$FAILED) { + s1 = null; + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseatom(); + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseatom(); + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c23(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseatom() { + var s0; + + var key = peg$currPos * 30 + 7, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$parsewildcard(); + if (s0 === peg$FAILED) { + s0 = peg$parseidentifier(); + if (s0 === peg$FAILED) { + s0 = peg$parseattr(); + if (s0 === peg$FAILED) { + s0 = peg$parsefield(); + if (s0 === peg$FAILED) { + s0 = peg$parsenegation(); + if (s0 === peg$FAILED) { + s0 = peg$parsematches(); + if (s0 === peg$FAILED) { + s0 = peg$parsehas(); + if (s0 === peg$FAILED) { + s0 = peg$parsefirstChild(); + if (s0 === peg$FAILED) { + s0 = peg$parselastChild(); + if (s0 === peg$FAILED) { + s0 = peg$parsenthChild(); + if (s0 === peg$FAILED) { + s0 = peg$parsenthLastChild(); + if (s0 === peg$FAILED) { + s0 = peg$parseclass(); + } + } + } + } + } + } + } + } + } + } + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsewildcard() { + var s0, s1; + + var key = peg$currPos * 30 + 8, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 42) { + s1 = peg$c24; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c25); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c26(s1); + } + s0 = s1; + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseidentifier() { + var s0, s1, s2; + + var key = peg$currPos * 30 + 9, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 35) { + s1 = peg$c27; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c28); } + } + if (s1 === peg$FAILED) { + s1 = null; + } + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c29(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseattr() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 10, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c30; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c31); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseattrValue(); + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c32; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c33); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c34(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseattrOps() { + var s0, s1, s2; + + var key = peg$currPos * 30 + 11, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (peg$c35.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c36); } + } + if (s1 === peg$FAILED) { + s1 = null; + } + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c38); } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + if (peg$c40.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c41); } + } + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseattrEqOps() { + var s0, s1, s2; + + var key = peg$currPos * 30 + 12, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 33) { + s1 = peg$c21; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c22); } + } + if (s1 === peg$FAILED) { + s1 = null; + } + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c38); } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c39(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseattrName() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 13, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c43); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 46) { + s4 = peg$c42; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c43); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseidentifierName(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c44(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseattrValue() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 14, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseattrName(); + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseattrEqOps(); + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parsetype(); + if (s5 === peg$FAILED) { + s5 = peg$parseregex(); + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseattrOps(); + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parsestring(); + if (s5 === peg$FAILED) { + s5 = peg$parsenumber(); + if (s5 === peg$FAILED) { + s5 = peg$parsepath(); + } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c45(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseattrName(); + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c46(s1); + } + s0 = s1; + } + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsestring() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 15, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c47; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c48); } + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c50); } + } + if (s3 === peg$FAILED) { + s3 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c52); } + } + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c53); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c49.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c50); } + } + if (s3 === peg$FAILED) { + s3 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c52); } + } + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c53); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c47; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c48); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 39) { + s1 = peg$c56; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c57); } + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c59); } + } + if (s3 === peg$FAILED) { + s3 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c52); } + } + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c53); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c58.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c59); } + } + if (s3 === peg$FAILED) { + s3 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s4 = peg$c51; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c52); } + } + if (s4 !== peg$FAILED) { + if (input.length > peg$currPos) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c53); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c54(s4, s5); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 39) { + s3 = peg$c56; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c57); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsenumber() { + var s0, s1, s2, s3; + + var key = peg$currPos * 30 + 16, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 46) { + s3 = peg$c42; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c43); } + } + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + if (s1 === peg$FAILED) { + s1 = null; + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c60.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c62(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsepath() { + var s0, s1; + + var key = peg$currPos * 30 + 17, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + s1 = peg$parseidentifierName(); + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c63(s1); + } + s0 = s1; + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsetype() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 18, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c64) { + s1 = peg$c64; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c65); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = []; + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c67); } + } + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c66.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c67); } + } + } + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c69); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c70(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseflags() { + var s0, s1; + + var key = peg$currPos * 30 + 19, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = []; + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c72); } + } + if (s1 !== peg$FAILED) { + while (s1 !== peg$FAILED) { + s0.push(s1); + if (peg$c71.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c72); } + } + } + } else { + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseregex() { + var s0, s1, s2, s3, s4; + + var key = peg$currPos * 30 + 20, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 47) { + s1 = peg$c73; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c74); } + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c76); } + } + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c75.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c76); } + } + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 47) { + s3 = peg$c73; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c74); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parseflags(); + if (s4 === peg$FAILED) { + s4 = null; + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c77(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsefield() { + var s0, s1, s2, s3, s4, s5, s6; + + var key = peg$currPos * 30 + 21, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 46) { + s1 = peg$c42; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c43); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseidentifierName(); + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c43); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 46) { + s5 = peg$c42; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c43); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parseidentifierName(); + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c78(s2, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsenegation() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 22, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c79) { + s1 = peg$c79; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c80); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c69); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c81(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsematches() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 23, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 9) === peg$c82) { + s1 = peg$c82; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c83); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c69); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c84(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsehas() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 24, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c85) { + s1 = peg$c85; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c86); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseselectors(); + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c69); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c87(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsefirstChild() { + var s0, s1; + + var key = peg$currPos * 30 + 25, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 12) === peg$c88) { + s1 = peg$c88; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c89); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c90(); + } + s0 = s1; + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parselastChild() { + var s0, s1; + + var key = peg$currPos * 30 + 26, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 11) === peg$c91) { + s1 = peg$c91; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c92); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c93(); + } + s0 = s1; + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsenthChild() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 27, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 11) === peg$c94) { + s1 = peg$c94; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c95); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = []; + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + } + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c69); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c96(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parsenthLastChild() { + var s0, s1, s2, s3, s4, s5; + + var key = peg$currPos * 30 + 28, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.substr(peg$currPos, 16) === peg$c97) { + s1 = peg$c97; + peg$currPos += 16; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c98); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = []; + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c60.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c61); } + } + } + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c68; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c69); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c99(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + function peg$parseclass() { + var s0, s1, s2; + + var key = peg$currPos * 30 + 29, + cached = peg$resultsCache[key]; + + if (cached) { + peg$currPos = cached.nextPos; + + return cached.result; + } + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 58) { + s1 = peg$c100; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c101); } + } + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 9).toLowerCase() === peg$c102) { + s2 = input.substr(peg$currPos, 9); + peg$currPos += 9; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c103); } + } + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 10).toLowerCase() === peg$c104) { + s2 = input.substr(peg$currPos, 10); + peg$currPos += 10; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c105); } + } + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 11).toLowerCase() === peg$c106) { + s2 = input.substr(peg$currPos, 11); + peg$currPos += 11; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c107); } + } + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 8).toLowerCase() === peg$c108) { + s2 = input.substr(peg$currPos, 8); + peg$currPos += 8; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c109); } + } + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c110) { + s2 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c111); } + } + } + } + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c112(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; + + return s0; + } + + + function nth(n) { return { type: 'nth-child', index: { type: 'literal', value: n } }; } + function nthLast(n) { return { type: 'nth-last-child', index: { type: 'literal', value: n } }; } + function strUnescape(s) { + return s.replace(/\\(.)/g, function(match, ch) { + switch(ch) { + case 'b': return '\b'; + case 'f': return '\f'; + case 'n': return '\n'; + case 'r': return '\r'; + case 't': return '\t'; + case 'v': return '\v'; + default: return ch; + } + }); + } + + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError( + peg$maxFailExpected, + peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, + peg$maxFailPos < input.length + ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) + : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) + ); + } + } + + return { + SyntaxError: peg$SyntaxError, + parse: peg$parse + }; +}); diff --git a/node_modules/esrecurse/.babelrc b/node_modules/esrecurse/.babelrc new file mode 100644 index 0000000..a0765e1 --- /dev/null +++ b/node_modules/esrecurse/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015"] +} diff --git a/node_modules/esrecurse/README.md b/node_modules/esrecurse/README.md new file mode 100644 index 0000000..ffea6b4 --- /dev/null +++ b/node_modules/esrecurse/README.md @@ -0,0 +1,171 @@ +### Esrecurse [![Build Status](https://travis-ci.org/estools/esrecurse.svg?branch=master)](https://travis-ci.org/estools/esrecurse) + +Esrecurse ([esrecurse](https://github.com/estools/esrecurse)) is +[ECMAScript](https://www.ecma-international.org/publications/standards/Ecma-262.htm) +recursive traversing functionality. + +### Example Usage + +The following code will output all variables declared at the root of a file. + +```javascript +esrecurse.visit(ast, { + XXXStatement: function (node) { + this.visit(node.left); + // do something... + this.visit(node.right); + } +}); +``` + +We can use `Visitor` instance. + +```javascript +var visitor = new esrecurse.Visitor({ + XXXStatement: function (node) { + this.visit(node.left); + // do something... + this.visit(node.right); + } +}); + +visitor.visit(ast); +``` + +We can inherit `Visitor` instance easily. + +```javascript +class Derived extends esrecurse.Visitor { + constructor() + { + super(null); + } + + XXXStatement(node) { + } +} +``` + +```javascript +function DerivedVisitor() { + esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */); +} +util.inherits(DerivedVisitor, esrecurse.Visitor); +DerivedVisitor.prototype.XXXStatement = function (node) { + this.visit(node.left); + // do something... + this.visit(node.right); +}; +``` + +And you can invoke default visiting operation inside custom visit operation. + +```javascript +function DerivedVisitor() { + esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */); +} +util.inherits(DerivedVisitor, esrecurse.Visitor); +DerivedVisitor.prototype.XXXStatement = function (node) { + // do something... + this.visitChildren(node); +}; +``` + +The `childVisitorKeys` option does customize the behaviour of `this.visitChildren(node)`. +We can use user-defined node types. + +```javascript +// This tree contains a user-defined `TestExpression` node. +var tree = { + type: 'TestExpression', + + // This 'argument' is the property containing the other **node**. + argument: { + type: 'Literal', + value: 20 + }, + + // This 'extended' is the property not containing the other **node**. + extended: true +}; +esrecurse.visit( + ast, + { + Literal: function (node) { + // do something... + } + }, + { + // Extending the existing traversing rules. + childVisitorKeys: { + // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ] + TestExpression: ['argument'] + } + } +); +``` + +We can use the `fallback` option as well. +If the `fallback` option is `"iteration"`, `esrecurse` would visit all enumerable properties of unknown nodes. +Please note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`). + +```javascript +esrecurse.visit( + ast, + { + Literal: function (node) { + // do something... + } + }, + { + fallback: 'iteration' + } +); +``` + +If the `fallback` option is a function, `esrecurse` calls this function to determine the enumerable properties of unknown nodes. +Please note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`). + +```javascript +esrecurse.visit( + ast, + { + Literal: function (node) { + // do something... + } + }, + { + fallback: function (node) { + return Object.keys(node).filter(function(key) { + return key !== 'argument' + }); + } + } +); +``` + +### License + +Copyright (C) 2014 [Yusuke Suzuki](https://github.com/Constellation) + (twitter: [@Constellation](https://twitter.com/Constellation)) and other contributors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/esrecurse/esrecurse.js b/node_modules/esrecurse/esrecurse.js new file mode 100644 index 0000000..15d57df --- /dev/null +++ b/node_modules/esrecurse/esrecurse.js @@ -0,0 +1,117 @@ +/* + Copyright (C) 2014 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +(function () { + 'use strict'; + + var estraverse = require('estraverse'); + + function isNode(node) { + if (node == null) { + return false; + } + return typeof node === 'object' && typeof node.type === 'string'; + } + + function isProperty(nodeType, key) { + return (nodeType === estraverse.Syntax.ObjectExpression || nodeType === estraverse.Syntax.ObjectPattern) && key === 'properties'; + } + + function Visitor(visitor, options) { + options = options || {}; + + this.__visitor = visitor || this; + this.__childVisitorKeys = options.childVisitorKeys + ? Object.assign({}, estraverse.VisitorKeys, options.childVisitorKeys) + : estraverse.VisitorKeys; + if (options.fallback === 'iteration') { + this.__fallback = Object.keys; + } else if (typeof options.fallback === 'function') { + this.__fallback = options.fallback; + } + } + + /* Default method for visiting children. + * When you need to call default visiting operation inside custom visiting + * operation, you can use it with `this.visitChildren(node)`. + */ + Visitor.prototype.visitChildren = function (node) { + var type, children, i, iz, j, jz, child; + + if (node == null) { + return; + } + + type = node.type || estraverse.Syntax.Property; + + children = this.__childVisitorKeys[type]; + if (!children) { + if (this.__fallback) { + children = this.__fallback(node); + } else { + throw new Error('Unknown node type ' + type + '.'); + } + } + + for (i = 0, iz = children.length; i < iz; ++i) { + child = node[children[i]]; + if (child) { + if (Array.isArray(child)) { + for (j = 0, jz = child.length; j < jz; ++j) { + if (child[j]) { + if (isNode(child[j]) || isProperty(type, children[i])) { + this.visit(child[j]); + } + } + } + } else if (isNode(child)) { + this.visit(child); + } + } + } + }; + + /* Dispatching node. */ + Visitor.prototype.visit = function (node) { + var type; + + if (node == null) { + return; + } + + type = node.type || estraverse.Syntax.Property; + if (this.__visitor[type]) { + this.__visitor[type].call(this, node); + return; + } + this.visitChildren(node); + }; + + exports.version = require('./package.json').version; + exports.Visitor = Visitor; + exports.visit = function (node, visitor, options) { + var v = new Visitor(visitor, options); + v.visit(node); + }; +}()); +/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/esrecurse/gulpfile.babel.js b/node_modules/esrecurse/gulpfile.babel.js new file mode 100644 index 0000000..aa881c9 --- /dev/null +++ b/node_modules/esrecurse/gulpfile.babel.js @@ -0,0 +1,92 @@ +// Copyright (C) 2014 Yusuke Suzuki +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import gulp from 'gulp'; +import mocha from 'gulp-mocha'; +import eslint from 'gulp-eslint'; +import minimist from 'minimist'; +import git from 'gulp-git'; +import bump from 'gulp-bump'; +import filter from 'gulp-filter'; +import tagVersion from 'gulp-tag-version'; +import 'babel-register'; + +const SOURCE = [ + '*.js' +]; + +let ESLINT_OPTION = { + parser: 'babel-eslint', + parserOptions: { + 'sourceType': 'module' + }, + rules: { + 'quotes': 0, + 'eqeqeq': 0, + 'no-use-before-define': 0, + 'no-shadow': 0, + 'no-new': 0, + 'no-underscore-dangle': 0, + 'no-multi-spaces': 0, + 'no-native-reassign': 0, + 'no-loop-func': 0 + }, + env: { + 'node': true + } +}; + +gulp.task('test', function() { + let options = minimist(process.argv.slice(2), { + string: 'test', + default: { + test: 'test/*.js' + } + } + ); + return gulp.src(options.test).pipe(mocha({reporter: 'spec'})); +}); + +gulp.task('lint', () => + gulp.src(SOURCE) + .pipe(eslint(ESLINT_OPTION)) + .pipe(eslint.formatEach('stylish', process.stderr)) + .pipe(eslint.failOnError()) +); + +let inc = importance => + gulp.src(['./package.json']) + .pipe(bump({type: importance})) + .pipe(gulp.dest('./')) + .pipe(git.commit('Bumps package version')) + .pipe(filter('package.json')) + .pipe(tagVersion({ + prefix: '' + })) +; + +gulp.task('travis', [ 'lint', 'test' ]); +gulp.task('default', [ 'travis' ]); + +gulp.task('patch', [ ], () => inc('patch')); +gulp.task('minor', [ ], () => inc('minor')); +gulp.task('major', [ ], () => inc('major')); diff --git a/node_modules/esrecurse/package.json b/node_modules/esrecurse/package.json new file mode 100755 index 0000000..dec5b1b --- /dev/null +++ b/node_modules/esrecurse/package.json @@ -0,0 +1,52 @@ +{ + "name": "esrecurse", + "description": "ECMAScript AST recursive visitor", + "homepage": "https://github.com/estools/esrecurse", + "main": "esrecurse.js", + "version": "4.3.0", + "engines": { + "node": ">=4.0" + }, + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "web": "https://github.com/Constellation" + } + ], + "repository": { + "type": "git", + "url": "https://github.com/estools/esrecurse.git" + }, + "dependencies": { + "estraverse": "^5.2.0" + }, + "devDependencies": { + "babel-cli": "^6.24.1", + "babel-eslint": "^7.2.3", + "babel-preset-es2015": "^6.24.1", + "babel-register": "^6.24.1", + "chai": "^4.0.2", + "esprima": "^4.0.0", + "gulp": "^3.9.0", + "gulp-bump": "^2.7.0", + "gulp-eslint": "^4.0.0", + "gulp-filter": "^5.0.0", + "gulp-git": "^2.4.1", + "gulp-mocha": "^4.3.1", + "gulp-tag-version": "^1.2.1", + "jsdoc": "^3.3.0-alpha10", + "minimist": "^1.1.0" + }, + "license": "BSD-2-Clause", + "scripts": { + "test": "gulp travis", + "unit-test": "gulp test", + "lint": "gulp lint" + }, + "babel": { + "presets": [ + "es2015" + ] + } +} diff --git a/node_modules/estraverse/.jshintrc b/node_modules/estraverse/.jshintrc new file mode 100644 index 0000000..f642dae --- /dev/null +++ b/node_modules/estraverse/.jshintrc @@ -0,0 +1,16 @@ +{ + "curly": true, + "eqeqeq": true, + "immed": true, + "eqnull": true, + "latedef": true, + "noarg": true, + "noempty": true, + "quotmark": "single", + "undef": true, + "unused": true, + "strict": true, + "trailing": true, + + "node": true +} diff --git a/node_modules/estraverse/LICENSE.BSD b/node_modules/estraverse/LICENSE.BSD new file mode 100644 index 0000000..3e580c3 --- /dev/null +++ b/node_modules/estraverse/LICENSE.BSD @@ -0,0 +1,19 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/estraverse/README.md b/node_modules/estraverse/README.md new file mode 100644 index 0000000..ccd3377 --- /dev/null +++ b/node_modules/estraverse/README.md @@ -0,0 +1,153 @@ +### Estraverse [![Build Status](https://secure.travis-ci.org/estools/estraverse.svg)](http://travis-ci.org/estools/estraverse) + +Estraverse ([estraverse](http://github.com/estools/estraverse)) is +[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) +traversal functions from [esmangle project](http://github.com/estools/esmangle). + +### Documentation + +You can find usage docs at [wiki page](https://github.com/estools/estraverse/wiki/Usage). + +### Example Usage + +The following code will output all variables declared at the root of a file. + +```javascript +estraverse.traverse(ast, { + enter: function (node, parent) { + if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration') + return estraverse.VisitorOption.Skip; + }, + leave: function (node, parent) { + if (node.type == 'VariableDeclarator') + console.log(node.id.name); + } +}); +``` + +We can use `this.skip`, `this.remove` and `this.break` functions instead of using Skip, Remove and Break. + +```javascript +estraverse.traverse(ast, { + enter: function (node) { + this.break(); + } +}); +``` + +And estraverse provides `estraverse.replace` function. When returning node from `enter`/`leave`, current node is replaced with it. + +```javascript +result = estraverse.replace(tree, { + enter: function (node) { + // Replace it with replaced. + if (node.type === 'Literal') + return replaced; + } +}); +``` + +By passing `visitor.keys` mapping, we can extend estraverse traversing functionality. + +```javascript +// This tree contains a user-defined `TestExpression` node. +var tree = { + type: 'TestExpression', + + // This 'argument' is the property containing the other **node**. + argument: { + type: 'Literal', + value: 20 + }, + + // This 'extended' is the property not containing the other **node**. + extended: true +}; +estraverse.traverse(tree, { + enter: function (node) { }, + + // Extending the existing traversing rules. + keys: { + // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ] + TestExpression: ['argument'] + } +}); +``` + +By passing `visitor.fallback` option, we can control the behavior when encountering unknown nodes. + +```javascript +// This tree contains a user-defined `TestExpression` node. +var tree = { + type: 'TestExpression', + + // This 'argument' is the property containing the other **node**. + argument: { + type: 'Literal', + value: 20 + }, + + // This 'extended' is the property not containing the other **node**. + extended: true +}; +estraverse.traverse(tree, { + enter: function (node) { }, + + // Iterating the child **nodes** of unknown nodes. + fallback: 'iteration' +}); +``` + +When `visitor.fallback` is a function, we can determine which keys to visit on each node. + +```javascript +// This tree contains a user-defined `TestExpression` node. +var tree = { + type: 'TestExpression', + + // This 'argument' is the property containing the other **node**. + argument: { + type: 'Literal', + value: 20 + }, + + // This 'extended' is the property not containing the other **node**. + extended: true +}; +estraverse.traverse(tree, { + enter: function (node) { }, + + // Skip the `argument` property of each node + fallback: function(node) { + return Object.keys(node).filter(function(key) { + return key !== 'argument'; + }); + } +}); +``` + +### License + +Copyright (C) 2012-2016 [Yusuke Suzuki](http://github.com/Constellation) + (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/estraverse/estraverse.js b/node_modules/estraverse/estraverse.js new file mode 100644 index 0000000..f0d9af9 --- /dev/null +++ b/node_modules/estraverse/estraverse.js @@ -0,0 +1,805 @@ +/* + Copyright (C) 2012-2013 Yusuke Suzuki + Copyright (C) 2012 Ariya Hidayat + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/*jslint vars:false, bitwise:true*/ +/*jshint indent:4*/ +/*global exports:true*/ +(function clone(exports) { + 'use strict'; + + var Syntax, + VisitorOption, + VisitorKeys, + BREAK, + SKIP, + REMOVE; + + function deepCopy(obj) { + var ret = {}, key, val; + for (key in obj) { + if (obj.hasOwnProperty(key)) { + val = obj[key]; + if (typeof val === 'object' && val !== null) { + ret[key] = deepCopy(val); + } else { + ret[key] = val; + } + } + } + return ret; + } + + // based on LLVM libc++ upper_bound / lower_bound + // MIT License + + function upperBound(array, func) { + var diff, len, i, current; + + len = array.length; + i = 0; + + while (len) { + diff = len >>> 1; + current = i + diff; + if (func(array[current])) { + len = diff; + } else { + i = current + 1; + len -= diff + 1; + } + } + return i; + } + + Syntax = { + AssignmentExpression: 'AssignmentExpression', + AssignmentPattern: 'AssignmentPattern', + ArrayExpression: 'ArrayExpression', + ArrayPattern: 'ArrayPattern', + ArrowFunctionExpression: 'ArrowFunctionExpression', + AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7. + BlockStatement: 'BlockStatement', + BinaryExpression: 'BinaryExpression', + BreakStatement: 'BreakStatement', + CallExpression: 'CallExpression', + CatchClause: 'CatchClause', + ChainExpression: 'ChainExpression', + ClassBody: 'ClassBody', + ClassDeclaration: 'ClassDeclaration', + ClassExpression: 'ClassExpression', + ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7. + ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7. + ConditionalExpression: 'ConditionalExpression', + ContinueStatement: 'ContinueStatement', + DebuggerStatement: 'DebuggerStatement', + DirectiveStatement: 'DirectiveStatement', + DoWhileStatement: 'DoWhileStatement', + EmptyStatement: 'EmptyStatement', + ExportAllDeclaration: 'ExportAllDeclaration', + ExportDefaultDeclaration: 'ExportDefaultDeclaration', + ExportNamedDeclaration: 'ExportNamedDeclaration', + ExportSpecifier: 'ExportSpecifier', + ExpressionStatement: 'ExpressionStatement', + ForStatement: 'ForStatement', + ForInStatement: 'ForInStatement', + ForOfStatement: 'ForOfStatement', + FunctionDeclaration: 'FunctionDeclaration', + FunctionExpression: 'FunctionExpression', + GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7. + Identifier: 'Identifier', + IfStatement: 'IfStatement', + ImportExpression: 'ImportExpression', + ImportDeclaration: 'ImportDeclaration', + ImportDefaultSpecifier: 'ImportDefaultSpecifier', + ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', + ImportSpecifier: 'ImportSpecifier', + Literal: 'Literal', + LabeledStatement: 'LabeledStatement', + LogicalExpression: 'LogicalExpression', + MemberExpression: 'MemberExpression', + MetaProperty: 'MetaProperty', + MethodDefinition: 'MethodDefinition', + ModuleSpecifier: 'ModuleSpecifier', + NewExpression: 'NewExpression', + ObjectExpression: 'ObjectExpression', + ObjectPattern: 'ObjectPattern', + PrivateIdentifier: 'PrivateIdentifier', + Program: 'Program', + Property: 'Property', + PropertyDefinition: 'PropertyDefinition', + RestElement: 'RestElement', + ReturnStatement: 'ReturnStatement', + SequenceExpression: 'SequenceExpression', + SpreadElement: 'SpreadElement', + Super: 'Super', + SwitchStatement: 'SwitchStatement', + SwitchCase: 'SwitchCase', + TaggedTemplateExpression: 'TaggedTemplateExpression', + TemplateElement: 'TemplateElement', + TemplateLiteral: 'TemplateLiteral', + ThisExpression: 'ThisExpression', + ThrowStatement: 'ThrowStatement', + TryStatement: 'TryStatement', + UnaryExpression: 'UnaryExpression', + UpdateExpression: 'UpdateExpression', + VariableDeclaration: 'VariableDeclaration', + VariableDeclarator: 'VariableDeclarator', + WhileStatement: 'WhileStatement', + WithStatement: 'WithStatement', + YieldExpression: 'YieldExpression' + }; + + VisitorKeys = { + AssignmentExpression: ['left', 'right'], + AssignmentPattern: ['left', 'right'], + ArrayExpression: ['elements'], + ArrayPattern: ['elements'], + ArrowFunctionExpression: ['params', 'body'], + AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7. + BlockStatement: ['body'], + BinaryExpression: ['left', 'right'], + BreakStatement: ['label'], + CallExpression: ['callee', 'arguments'], + CatchClause: ['param', 'body'], + ChainExpression: ['expression'], + ClassBody: ['body'], + ClassDeclaration: ['id', 'superClass', 'body'], + ClassExpression: ['id', 'superClass', 'body'], + ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7. + ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. + ConditionalExpression: ['test', 'consequent', 'alternate'], + ContinueStatement: ['label'], + DebuggerStatement: [], + DirectiveStatement: [], + DoWhileStatement: ['body', 'test'], + EmptyStatement: [], + ExportAllDeclaration: ['source'], + ExportDefaultDeclaration: ['declaration'], + ExportNamedDeclaration: ['declaration', 'specifiers', 'source'], + ExportSpecifier: ['exported', 'local'], + ExpressionStatement: ['expression'], + ForStatement: ['init', 'test', 'update', 'body'], + ForInStatement: ['left', 'right', 'body'], + ForOfStatement: ['left', 'right', 'body'], + FunctionDeclaration: ['id', 'params', 'body'], + FunctionExpression: ['id', 'params', 'body'], + GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. + Identifier: [], + IfStatement: ['test', 'consequent', 'alternate'], + ImportExpression: ['source'], + ImportDeclaration: ['specifiers', 'source'], + ImportDefaultSpecifier: ['local'], + ImportNamespaceSpecifier: ['local'], + ImportSpecifier: ['imported', 'local'], + Literal: [], + LabeledStatement: ['label', 'body'], + LogicalExpression: ['left', 'right'], + MemberExpression: ['object', 'property'], + MetaProperty: ['meta', 'property'], + MethodDefinition: ['key', 'value'], + ModuleSpecifier: [], + NewExpression: ['callee', 'arguments'], + ObjectExpression: ['properties'], + ObjectPattern: ['properties'], + PrivateIdentifier: [], + Program: ['body'], + Property: ['key', 'value'], + PropertyDefinition: ['key', 'value'], + RestElement: [ 'argument' ], + ReturnStatement: ['argument'], + SequenceExpression: ['expressions'], + SpreadElement: ['argument'], + Super: [], + SwitchStatement: ['discriminant', 'cases'], + SwitchCase: ['test', 'consequent'], + TaggedTemplateExpression: ['tag', 'quasi'], + TemplateElement: [], + TemplateLiteral: ['quasis', 'expressions'], + ThisExpression: [], + ThrowStatement: ['argument'], + TryStatement: ['block', 'handler', 'finalizer'], + UnaryExpression: ['argument'], + UpdateExpression: ['argument'], + VariableDeclaration: ['declarations'], + VariableDeclarator: ['id', 'init'], + WhileStatement: ['test', 'body'], + WithStatement: ['object', 'body'], + YieldExpression: ['argument'] + }; + + // unique id + BREAK = {}; + SKIP = {}; + REMOVE = {}; + + VisitorOption = { + Break: BREAK, + Skip: SKIP, + Remove: REMOVE + }; + + function Reference(parent, key) { + this.parent = parent; + this.key = key; + } + + Reference.prototype.replace = function replace(node) { + this.parent[this.key] = node; + }; + + Reference.prototype.remove = function remove() { + if (Array.isArray(this.parent)) { + this.parent.splice(this.key, 1); + return true; + } else { + this.replace(null); + return false; + } + }; + + function Element(node, path, wrap, ref) { + this.node = node; + this.path = path; + this.wrap = wrap; + this.ref = ref; + } + + function Controller() { } + + // API: + // return property path array from root to current node + Controller.prototype.path = function path() { + var i, iz, j, jz, result, element; + + function addToPath(result, path) { + if (Array.isArray(path)) { + for (j = 0, jz = path.length; j < jz; ++j) { + result.push(path[j]); + } + } else { + result.push(path); + } + } + + // root node + if (!this.__current.path) { + return null; + } + + // first node is sentinel, second node is root element + result = []; + for (i = 2, iz = this.__leavelist.length; i < iz; ++i) { + element = this.__leavelist[i]; + addToPath(result, element.path); + } + addToPath(result, this.__current.path); + return result; + }; + + // API: + // return type of current node + Controller.prototype.type = function () { + var node = this.current(); + return node.type || this.__current.wrap; + }; + + // API: + // return array of parent elements + Controller.prototype.parents = function parents() { + var i, iz, result; + + // first node is sentinel + result = []; + for (i = 1, iz = this.__leavelist.length; i < iz; ++i) { + result.push(this.__leavelist[i].node); + } + + return result; + }; + + // API: + // return current node + Controller.prototype.current = function current() { + return this.__current.node; + }; + + Controller.prototype.__execute = function __execute(callback, element) { + var previous, result; + + result = undefined; + + previous = this.__current; + this.__current = element; + this.__state = null; + if (callback) { + result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node); + } + this.__current = previous; + + return result; + }; + + // API: + // notify control skip / break + Controller.prototype.notify = function notify(flag) { + this.__state = flag; + }; + + // API: + // skip child nodes of current node + Controller.prototype.skip = function () { + this.notify(SKIP); + }; + + // API: + // break traversals + Controller.prototype['break'] = function () { + this.notify(BREAK); + }; + + // API: + // remove node + Controller.prototype.remove = function () { + this.notify(REMOVE); + }; + + Controller.prototype.__initialize = function(root, visitor) { + this.visitor = visitor; + this.root = root; + this.__worklist = []; + this.__leavelist = []; + this.__current = null; + this.__state = null; + this.__fallback = null; + if (visitor.fallback === 'iteration') { + this.__fallback = Object.keys; + } else if (typeof visitor.fallback === 'function') { + this.__fallback = visitor.fallback; + } + + this.__keys = VisitorKeys; + if (visitor.keys) { + this.__keys = Object.assign(Object.create(this.__keys), visitor.keys); + } + }; + + function isNode(node) { + if (node == null) { + return false; + } + return typeof node === 'object' && typeof node.type === 'string'; + } + + function isProperty(nodeType, key) { + return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; + } + + function candidateExistsInLeaveList(leavelist, candidate) { + for (var i = leavelist.length - 1; i >= 0; --i) { + if (leavelist[i].node === candidate) { + return true; + } + } + return false; + } + + Controller.prototype.traverse = function traverse(root, visitor) { + var worklist, + leavelist, + element, + node, + nodeType, + ret, + key, + current, + current2, + candidates, + candidate, + sentinel; + + this.__initialize(root, visitor); + + sentinel = {}; + + // reference + worklist = this.__worklist; + leavelist = this.__leavelist; + + // initialize + worklist.push(new Element(root, null, null, null)); + leavelist.push(new Element(null, null, null, null)); + + while (worklist.length) { + element = worklist.pop(); + + if (element === sentinel) { + element = leavelist.pop(); + + ret = this.__execute(visitor.leave, element); + + if (this.__state === BREAK || ret === BREAK) { + return; + } + continue; + } + + if (element.node) { + + ret = this.__execute(visitor.enter, element); + + if (this.__state === BREAK || ret === BREAK) { + return; + } + + worklist.push(sentinel); + leavelist.push(element); + + if (this.__state === SKIP || ret === SKIP) { + continue; + } + + node = element.node; + nodeType = node.type || element.wrap; + candidates = this.__keys[nodeType]; + if (!candidates) { + if (this.__fallback) { + candidates = this.__fallback(node); + } else { + throw new Error('Unknown node type ' + nodeType + '.'); + } + } + + current = candidates.length; + while ((current -= 1) >= 0) { + key = candidates[current]; + candidate = node[key]; + if (!candidate) { + continue; + } + + if (Array.isArray(candidate)) { + current2 = candidate.length; + while ((current2 -= 1) >= 0) { + if (!candidate[current2]) { + continue; + } + + if (candidateExistsInLeaveList(leavelist, candidate[current2])) { + continue; + } + + if (isProperty(nodeType, candidates[current])) { + element = new Element(candidate[current2], [key, current2], 'Property', null); + } else if (isNode(candidate[current2])) { + element = new Element(candidate[current2], [key, current2], null, null); + } else { + continue; + } + worklist.push(element); + } + } else if (isNode(candidate)) { + if (candidateExistsInLeaveList(leavelist, candidate)) { + continue; + } + + worklist.push(new Element(candidate, key, null, null)); + } + } + } + } + }; + + Controller.prototype.replace = function replace(root, visitor) { + var worklist, + leavelist, + node, + nodeType, + target, + element, + current, + current2, + candidates, + candidate, + sentinel, + outer, + key; + + function removeElem(element) { + var i, + key, + nextElem, + parent; + + if (element.ref.remove()) { + // When the reference is an element of an array. + key = element.ref.key; + parent = element.ref.parent; + + // If removed from array, then decrease following items' keys. + i = worklist.length; + while (i--) { + nextElem = worklist[i]; + if (nextElem.ref && nextElem.ref.parent === parent) { + if (nextElem.ref.key < key) { + break; + } + --nextElem.ref.key; + } + } + } + } + + this.__initialize(root, visitor); + + sentinel = {}; + + // reference + worklist = this.__worklist; + leavelist = this.__leavelist; + + // initialize + outer = { + root: root + }; + element = new Element(root, null, null, new Reference(outer, 'root')); + worklist.push(element); + leavelist.push(element); + + while (worklist.length) { + element = worklist.pop(); + + if (element === sentinel) { + element = leavelist.pop(); + + target = this.__execute(visitor.leave, element); + + // node may be replaced with null, + // so distinguish between undefined and null in this place + if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { + // replace + element.ref.replace(target); + } + + if (this.__state === REMOVE || target === REMOVE) { + removeElem(element); + } + + if (this.__state === BREAK || target === BREAK) { + return outer.root; + } + continue; + } + + target = this.__execute(visitor.enter, element); + + // node may be replaced with null, + // so distinguish between undefined and null in this place + if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { + // replace + element.ref.replace(target); + element.node = target; + } + + if (this.__state === REMOVE || target === REMOVE) { + removeElem(element); + element.node = null; + } + + if (this.__state === BREAK || target === BREAK) { + return outer.root; + } + + // node may be null + node = element.node; + if (!node) { + continue; + } + + worklist.push(sentinel); + leavelist.push(element); + + if (this.__state === SKIP || target === SKIP) { + continue; + } + + nodeType = node.type || element.wrap; + candidates = this.__keys[nodeType]; + if (!candidates) { + if (this.__fallback) { + candidates = this.__fallback(node); + } else { + throw new Error('Unknown node type ' + nodeType + '.'); + } + } + + current = candidates.length; + while ((current -= 1) >= 0) { + key = candidates[current]; + candidate = node[key]; + if (!candidate) { + continue; + } + + if (Array.isArray(candidate)) { + current2 = candidate.length; + while ((current2 -= 1) >= 0) { + if (!candidate[current2]) { + continue; + } + if (isProperty(nodeType, candidates[current])) { + element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2)); + } else if (isNode(candidate[current2])) { + element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2)); + } else { + continue; + } + worklist.push(element); + } + } else if (isNode(candidate)) { + worklist.push(new Element(candidate, key, null, new Reference(node, key))); + } + } + } + + return outer.root; + }; + + function traverse(root, visitor) { + var controller = new Controller(); + return controller.traverse(root, visitor); + } + + function replace(root, visitor) { + var controller = new Controller(); + return controller.replace(root, visitor); + } + + function extendCommentRange(comment, tokens) { + var target; + + target = upperBound(tokens, function search(token) { + return token.range[0] > comment.range[0]; + }); + + comment.extendedRange = [comment.range[0], comment.range[1]]; + + if (target !== tokens.length) { + comment.extendedRange[1] = tokens[target].range[0]; + } + + target -= 1; + if (target >= 0) { + comment.extendedRange[0] = tokens[target].range[1]; + } + + return comment; + } + + function attachComments(tree, providedComments, tokens) { + // At first, we should calculate extended comment ranges. + var comments = [], comment, len, i, cursor; + + if (!tree.range) { + throw new Error('attachComments needs range information'); + } + + // tokens array is empty, we attach comments to tree as 'leadingComments' + if (!tokens.length) { + if (providedComments.length) { + for (i = 0, len = providedComments.length; i < len; i += 1) { + comment = deepCopy(providedComments[i]); + comment.extendedRange = [0, tree.range[0]]; + comments.push(comment); + } + tree.leadingComments = comments; + } + return tree; + } + + for (i = 0, len = providedComments.length; i < len; i += 1) { + comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens)); + } + + // This is based on John Freeman's implementation. + cursor = 0; + traverse(tree, { + enter: function (node) { + var comment; + + while (cursor < comments.length) { + comment = comments[cursor]; + if (comment.extendedRange[1] > node.range[0]) { + break; + } + + if (comment.extendedRange[1] === node.range[0]) { + if (!node.leadingComments) { + node.leadingComments = []; + } + node.leadingComments.push(comment); + comments.splice(cursor, 1); + } else { + cursor += 1; + } + } + + // already out of owned node + if (cursor === comments.length) { + return VisitorOption.Break; + } + + if (comments[cursor].extendedRange[0] > node.range[1]) { + return VisitorOption.Skip; + } + } + }); + + cursor = 0; + traverse(tree, { + leave: function (node) { + var comment; + + while (cursor < comments.length) { + comment = comments[cursor]; + if (node.range[1] < comment.extendedRange[0]) { + break; + } + + if (node.range[1] === comment.extendedRange[0]) { + if (!node.trailingComments) { + node.trailingComments = []; + } + node.trailingComments.push(comment); + comments.splice(cursor, 1); + } else { + cursor += 1; + } + } + + // already out of owned node + if (cursor === comments.length) { + return VisitorOption.Break; + } + + if (comments[cursor].extendedRange[0] > node.range[1]) { + return VisitorOption.Skip; + } + } + }); + + return tree; + } + + exports.Syntax = Syntax; + exports.traverse = traverse; + exports.replace = replace; + exports.attachComments = attachComments; + exports.VisitorKeys = VisitorKeys; + exports.VisitorOption = VisitorOption; + exports.Controller = Controller; + exports.cloneEnvironment = function () { return clone({}); }; + + return exports; +}(exports)); +/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/estraverse/gulpfile.js b/node_modules/estraverse/gulpfile.js new file mode 100644 index 0000000..8772bbc --- /dev/null +++ b/node_modules/estraverse/gulpfile.js @@ -0,0 +1,70 @@ +/* + Copyright (C) 2014 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +'use strict'; + +var gulp = require('gulp'), + git = require('gulp-git'), + bump = require('gulp-bump'), + filter = require('gulp-filter'), + tagVersion = require('gulp-tag-version'); + +var TEST = [ 'test/*.js' ]; +var POWERED = [ 'powered-test/*.js' ]; +var SOURCE = [ 'src/**/*.js' ]; + +/** + * Bumping version number and tagging the repository with it. + * Please read http://semver.org/ + * + * You can use the commands + * + * gulp patch # makes v0.1.0 -> v0.1.1 + * gulp feature # makes v0.1.1 -> v0.2.0 + * gulp release # makes v0.2.1 -> v1.0.0 + * + * To bump the version numbers accordingly after you did a patch, + * introduced a feature or made a backwards-incompatible release. + */ + +function inc(importance) { + // get all the files to bump version in + return gulp.src(['./package.json']) + // bump the version number in those files + .pipe(bump({type: importance})) + // save it back to filesystem + .pipe(gulp.dest('./')) + // commit the changed version number + .pipe(git.commit('Bumps package version')) + // read only one file to get the version number + .pipe(filter('package.json')) + // **tag it in the repository** + .pipe(tagVersion({ + prefix: '' + })); +} + +gulp.task('patch', [ ], function () { return inc('patch'); }) +gulp.task('minor', [ ], function () { return inc('minor'); }) +gulp.task('major', [ ], function () { return inc('major'); }) diff --git a/node_modules/estraverse/package.json b/node_modules/estraverse/package.json new file mode 100644 index 0000000..a863218 --- /dev/null +++ b/node_modules/estraverse/package.json @@ -0,0 +1,40 @@ +{ + "name": "estraverse", + "description": "ECMAScript JS AST traversal functions", + "homepage": "https://github.com/estools/estraverse", + "main": "estraverse.js", + "version": "5.3.0", + "engines": { + "node": ">=4.0" + }, + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "web": "http://github.com/Constellation" + } + ], + "repository": { + "type": "git", + "url": "http://github.com/estools/estraverse.git" + }, + "devDependencies": { + "babel-preset-env": "^1.6.1", + "babel-register": "^6.3.13", + "chai": "^2.1.1", + "espree": "^1.11.0", + "gulp": "^3.8.10", + "gulp-bump": "^0.2.2", + "gulp-filter": "^2.0.0", + "gulp-git": "^1.0.1", + "gulp-tag-version": "^1.3.0", + "jshint": "^2.5.6", + "mocha": "^2.1.0" + }, + "license": "BSD-2-Clause", + "scripts": { + "test": "npm run-script lint && npm run-script unit-test", + "lint": "jshint estraverse.js", + "unit-test": "mocha --compilers js:babel-register" + } +} diff --git a/node_modules/esutils/LICENSE.BSD b/node_modules/esutils/LICENSE.BSD new file mode 100644 index 0000000..3e580c3 --- /dev/null +++ b/node_modules/esutils/LICENSE.BSD @@ -0,0 +1,19 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/esutils/README.md b/node_modules/esutils/README.md new file mode 100644 index 0000000..517526c --- /dev/null +++ b/node_modules/esutils/README.md @@ -0,0 +1,174 @@ +### esutils [![Build Status](https://secure.travis-ci.org/estools/esutils.svg)](http://travis-ci.org/estools/esutils) +esutils ([esutils](http://github.com/estools/esutils)) is +utility box for ECMAScript language tools. + +### API + +### ast + +#### ast.isExpression(node) + +Returns true if `node` is an Expression as defined in ECMA262 edition 5.1 section +[11](https://es5.github.io/#x11). + +#### ast.isStatement(node) + +Returns true if `node` is a Statement as defined in ECMA262 edition 5.1 section +[12](https://es5.github.io/#x12). + +#### ast.isIterationStatement(node) + +Returns true if `node` is an IterationStatement as defined in ECMA262 edition +5.1 section [12.6](https://es5.github.io/#x12.6). + +#### ast.isSourceElement(node) + +Returns true if `node` is a SourceElement as defined in ECMA262 edition 5.1 +section [14](https://es5.github.io/#x14). + +#### ast.trailingStatement(node) + +Returns `Statement?` if `node` has trailing `Statement`. +```js +if (cond) + consequent; +``` +When taking this `IfStatement`, returns `consequent;` statement. + +#### ast.isProblematicIfStatement(node) + +Returns true if `node` is a problematic IfStatement. If `node` is a problematic `IfStatement`, `node` cannot be represented as an one on one JavaScript code. +```js +{ + type: 'IfStatement', + consequent: { + type: 'WithStatement', + body: { + type: 'IfStatement', + consequent: {type: 'EmptyStatement'} + } + }, + alternate: {type: 'EmptyStatement'} +} +``` +The above node cannot be represented as a JavaScript code, since the top level `else` alternate belongs to an inner `IfStatement`. + + +### code + +#### code.isDecimalDigit(code) + +Return true if provided code is decimal digit. + +#### code.isHexDigit(code) + +Return true if provided code is hexadecimal digit. + +#### code.isOctalDigit(code) + +Return true if provided code is octal digit. + +#### code.isWhiteSpace(code) + +Return true if provided code is white space. White space characters are formally defined in ECMA262. + +#### code.isLineTerminator(code) + +Return true if provided code is line terminator. Line terminator characters are formally defined in ECMA262. + +#### code.isIdentifierStart(code) + +Return true if provided code can be the first character of ECMA262 Identifier. They are formally defined in ECMA262. + +#### code.isIdentifierPart(code) + +Return true if provided code can be the trailing character of ECMA262 Identifier. They are formally defined in ECMA262. + +### keyword + +#### keyword.isKeywordES5(id, strict) + +Returns `true` if provided identifier string is a Keyword or Future Reserved Word +in ECMA262 edition 5.1. They are formally defined in ECMA262 sections +[7.6.1.1](http://es5.github.io/#x7.6.1.1) and [7.6.1.2](http://es5.github.io/#x7.6.1.2), +respectively. If the `strict` flag is truthy, this function additionally checks whether +`id` is a Keyword or Future Reserved Word under strict mode. + +#### keyword.isKeywordES6(id, strict) + +Returns `true` if provided identifier string is a Keyword or Future Reserved Word +in ECMA262 edition 6. They are formally defined in ECMA262 sections +[11.6.2.1](http://ecma-international.org/ecma-262/6.0/#sec-keywords) and +[11.6.2.2](http://ecma-international.org/ecma-262/6.0/#sec-future-reserved-words), +respectively. If the `strict` flag is truthy, this function additionally checks whether +`id` is a Keyword or Future Reserved Word under strict mode. + +#### keyword.isReservedWordES5(id, strict) + +Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 5.1. +They are formally defined in ECMA262 section [7.6.1](http://es5.github.io/#x7.6.1). +If the `strict` flag is truthy, this function additionally checks whether `id` +is a Reserved Word under strict mode. + +#### keyword.isReservedWordES6(id, strict) + +Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 6. +They are formally defined in ECMA262 section [11.6.2](http://ecma-international.org/ecma-262/6.0/#sec-reserved-words). +If the `strict` flag is truthy, this function additionally checks whether `id` +is a Reserved Word under strict mode. + +#### keyword.isRestrictedWord(id) + +Returns `true` if provided identifier string is one of `eval` or `arguments`. +They are restricted in strict mode code throughout ECMA262 edition 5.1 and +in ECMA262 edition 6 section [12.1.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers-static-semantics-early-errors). + +#### keyword.isIdentifierNameES5(id) + +Return true if provided identifier string is an IdentifierName as specified in +ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6). + +#### keyword.isIdentifierNameES6(id) + +Return true if provided identifier string is an IdentifierName as specified in +ECMA262 edition 6 section [11.6](http://ecma-international.org/ecma-262/6.0/#sec-names-and-keywords). + +#### keyword.isIdentifierES5(id, strict) + +Return true if provided identifier string is an Identifier as specified in +ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6). If the `strict` +flag is truthy, this function additionally checks whether `id` is an Identifier +under strict mode. + +#### keyword.isIdentifierES6(id, strict) + +Return true if provided identifier string is an Identifier as specified in +ECMA262 edition 6 section [12.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers). +If the `strict` flag is truthy, this function additionally checks whether `id` +is an Identifier under strict mode. + +### License + +Copyright (C) 2013 [Yusuke Suzuki](http://github.com/Constellation) + (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/esutils/lib/ast.js b/node_modules/esutils/lib/ast.js new file mode 100644 index 0000000..8faadae --- /dev/null +++ b/node_modules/esutils/lib/ast.js @@ -0,0 +1,144 @@ +/* + Copyright (C) 2013 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +(function () { + 'use strict'; + + function isExpression(node) { + if (node == null) { return false; } + switch (node.type) { + case 'ArrayExpression': + case 'AssignmentExpression': + case 'BinaryExpression': + case 'CallExpression': + case 'ConditionalExpression': + case 'FunctionExpression': + case 'Identifier': + case 'Literal': + case 'LogicalExpression': + case 'MemberExpression': + case 'NewExpression': + case 'ObjectExpression': + case 'SequenceExpression': + case 'ThisExpression': + case 'UnaryExpression': + case 'UpdateExpression': + return true; + } + return false; + } + + function isIterationStatement(node) { + if (node == null) { return false; } + switch (node.type) { + case 'DoWhileStatement': + case 'ForInStatement': + case 'ForStatement': + case 'WhileStatement': + return true; + } + return false; + } + + function isStatement(node) { + if (node == null) { return false; } + switch (node.type) { + case 'BlockStatement': + case 'BreakStatement': + case 'ContinueStatement': + case 'DebuggerStatement': + case 'DoWhileStatement': + case 'EmptyStatement': + case 'ExpressionStatement': + case 'ForInStatement': + case 'ForStatement': + case 'IfStatement': + case 'LabeledStatement': + case 'ReturnStatement': + case 'SwitchStatement': + case 'ThrowStatement': + case 'TryStatement': + case 'VariableDeclaration': + case 'WhileStatement': + case 'WithStatement': + return true; + } + return false; + } + + function isSourceElement(node) { + return isStatement(node) || node != null && node.type === 'FunctionDeclaration'; + } + + function trailingStatement(node) { + switch (node.type) { + case 'IfStatement': + if (node.alternate != null) { + return node.alternate; + } + return node.consequent; + + case 'LabeledStatement': + case 'ForStatement': + case 'ForInStatement': + case 'WhileStatement': + case 'WithStatement': + return node.body; + } + return null; + } + + function isProblematicIfStatement(node) { + var current; + + if (node.type !== 'IfStatement') { + return false; + } + if (node.alternate == null) { + return false; + } + current = node.consequent; + do { + if (current.type === 'IfStatement') { + if (current.alternate == null) { + return true; + } + } + current = trailingStatement(current); + } while (current); + + return false; + } + + module.exports = { + isExpression: isExpression, + isStatement: isStatement, + isIterationStatement: isIterationStatement, + isSourceElement: isSourceElement, + isProblematicIfStatement: isProblematicIfStatement, + + trailingStatement: trailingStatement + }; +}()); +/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/esutils/lib/code.js b/node_modules/esutils/lib/code.js new file mode 100644 index 0000000..23136af --- /dev/null +++ b/node_modules/esutils/lib/code.js @@ -0,0 +1,135 @@ +/* + Copyright (C) 2013-2014 Yusuke Suzuki + Copyright (C) 2014 Ivan Nikulin + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +(function () { + 'use strict'; + + var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch; + + // See `tools/generate-identifier-regex.js`. + ES5Regex = { + // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierStart: + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, + // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierPart: + NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/ + }; + + ES6Regex = { + // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierStart: + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/, + // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierPart: + NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ + }; + + function isDecimalDigit(ch) { + return 0x30 <= ch && ch <= 0x39; // 0..9 + } + + function isHexDigit(ch) { + return 0x30 <= ch && ch <= 0x39 || // 0..9 + 0x61 <= ch && ch <= 0x66 || // a..f + 0x41 <= ch && ch <= 0x46; // A..F + } + + function isOctalDigit(ch) { + return ch >= 0x30 && ch <= 0x37; // 0..7 + } + + // 7.2 White Space + + NON_ASCII_WHITESPACES = [ + 0x1680, + 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, + 0x202F, 0x205F, + 0x3000, + 0xFEFF + ]; + + function isWhiteSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || + ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0; + } + + // 7.3 Line Terminators + + function isLineTerminator(ch) { + return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; + } + + // 7.6 Identifier Names and Identifiers + + function fromCodePoint(cp) { + if (cp <= 0xFFFF) { return String.fromCharCode(cp); } + var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800); + var cu2 = String.fromCharCode(((cp - 0x10000) % 0x400) + 0xDC00); + return cu1 + cu2; + } + + IDENTIFIER_START = new Array(0x80); + for(ch = 0; ch < 0x80; ++ch) { + IDENTIFIER_START[ch] = + ch >= 0x61 && ch <= 0x7A || // a..z + ch >= 0x41 && ch <= 0x5A || // A..Z + ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore) + } + + IDENTIFIER_PART = new Array(0x80); + for(ch = 0; ch < 0x80; ++ch) { + IDENTIFIER_PART[ch] = + ch >= 0x61 && ch <= 0x7A || // a..z + ch >= 0x41 && ch <= 0x5A || // A..Z + ch >= 0x30 && ch <= 0x39 || // 0..9 + ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore) + } + + function isIdentifierStartES5(ch) { + return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch)); + } + + function isIdentifierPartES5(ch) { + return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch)); + } + + function isIdentifierStartES6(ch) { + return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch)); + } + + function isIdentifierPartES6(ch) { + return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch)); + } + + module.exports = { + isDecimalDigit: isDecimalDigit, + isHexDigit: isHexDigit, + isOctalDigit: isOctalDigit, + isWhiteSpace: isWhiteSpace, + isLineTerminator: isLineTerminator, + isIdentifierStartES5: isIdentifierStartES5, + isIdentifierPartES5: isIdentifierPartES5, + isIdentifierStartES6: isIdentifierStartES6, + isIdentifierPartES6: isIdentifierPartES6 + }; +}()); +/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/esutils/lib/keyword.js b/node_modules/esutils/lib/keyword.js new file mode 100644 index 0000000..13c8c6a --- /dev/null +++ b/node_modules/esutils/lib/keyword.js @@ -0,0 +1,165 @@ +/* + Copyright (C) 2013 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +(function () { + 'use strict'; + + var code = require('./code'); + + function isStrictModeReservedWordES6(id) { + switch (id) { + case 'implements': + case 'interface': + case 'package': + case 'private': + case 'protected': + case 'public': + case 'static': + case 'let': + return true; + default: + return false; + } + } + + function isKeywordES5(id, strict) { + // yield should not be treated as keyword under non-strict mode. + if (!strict && id === 'yield') { + return false; + } + return isKeywordES6(id, strict); + } + + function isKeywordES6(id, strict) { + if (strict && isStrictModeReservedWordES6(id)) { + return true; + } + + switch (id.length) { + case 2: + return (id === 'if') || (id === 'in') || (id === 'do'); + case 3: + return (id === 'var') || (id === 'for') || (id === 'new') || (id === 'try'); + case 4: + return (id === 'this') || (id === 'else') || (id === 'case') || + (id === 'void') || (id === 'with') || (id === 'enum'); + case 5: + return (id === 'while') || (id === 'break') || (id === 'catch') || + (id === 'throw') || (id === 'const') || (id === 'yield') || + (id === 'class') || (id === 'super'); + case 6: + return (id === 'return') || (id === 'typeof') || (id === 'delete') || + (id === 'switch') || (id === 'export') || (id === 'import'); + case 7: + return (id === 'default') || (id === 'finally') || (id === 'extends'); + case 8: + return (id === 'function') || (id === 'continue') || (id === 'debugger'); + case 10: + return (id === 'instanceof'); + default: + return false; + } + } + + function isReservedWordES5(id, strict) { + return id === 'null' || id === 'true' || id === 'false' || isKeywordES5(id, strict); + } + + function isReservedWordES6(id, strict) { + return id === 'null' || id === 'true' || id === 'false' || isKeywordES6(id, strict); + } + + function isRestrictedWord(id) { + return id === 'eval' || id === 'arguments'; + } + + function isIdentifierNameES5(id) { + var i, iz, ch; + + if (id.length === 0) { return false; } + + ch = id.charCodeAt(0); + if (!code.isIdentifierStartES5(ch)) { + return false; + } + + for (i = 1, iz = id.length; i < iz; ++i) { + ch = id.charCodeAt(i); + if (!code.isIdentifierPartES5(ch)) { + return false; + } + } + return true; + } + + function decodeUtf16(lead, trail) { + return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; + } + + function isIdentifierNameES6(id) { + var i, iz, ch, lowCh, check; + + if (id.length === 0) { return false; } + + check = code.isIdentifierStartES6; + for (i = 0, iz = id.length; i < iz; ++i) { + ch = id.charCodeAt(i); + if (0xD800 <= ch && ch <= 0xDBFF) { + ++i; + if (i >= iz) { return false; } + lowCh = id.charCodeAt(i); + if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) { + return false; + } + ch = decodeUtf16(ch, lowCh); + } + if (!check(ch)) { + return false; + } + check = code.isIdentifierPartES6; + } + return true; + } + + function isIdentifierES5(id, strict) { + return isIdentifierNameES5(id) && !isReservedWordES5(id, strict); + } + + function isIdentifierES6(id, strict) { + return isIdentifierNameES6(id) && !isReservedWordES6(id, strict); + } + + module.exports = { + isKeywordES5: isKeywordES5, + isKeywordES6: isKeywordES6, + isReservedWordES5: isReservedWordES5, + isReservedWordES6: isReservedWordES6, + isRestrictedWord: isRestrictedWord, + isIdentifierNameES5: isIdentifierNameES5, + isIdentifierNameES6: isIdentifierNameES6, + isIdentifierES5: isIdentifierES5, + isIdentifierES6: isIdentifierES6 + }; +}()); +/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/esutils/lib/utils.js b/node_modules/esutils/lib/utils.js new file mode 100644 index 0000000..ce18faa --- /dev/null +++ b/node_modules/esutils/lib/utils.js @@ -0,0 +1,33 @@ +/* + Copyright (C) 2013 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +(function () { + 'use strict'; + + exports.ast = require('./ast'); + exports.code = require('./code'); + exports.keyword = require('./keyword'); +}()); +/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/esutils/package.json b/node_modules/esutils/package.json new file mode 100644 index 0000000..8396f4c --- /dev/null +++ b/node_modules/esutils/package.json @@ -0,0 +1,44 @@ +{ + "name": "esutils", + "description": "utility box for ECMAScript language tools", + "homepage": "https://github.com/estools/esutils", + "main": "lib/utils.js", + "version": "2.0.3", + "engines": { + "node": ">=0.10.0" + }, + "directories": { + "lib": "./lib" + }, + "files": [ + "LICENSE.BSD", + "README.md", + "lib" + ], + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "web": "http://github.com/Constellation" + } + ], + "repository": { + "type": "git", + "url": "http://github.com/estools/esutils.git" + }, + "devDependencies": { + "chai": "~1.7.2", + "coffee-script": "~1.6.3", + "jshint": "2.6.3", + "mocha": "~2.2.1", + "regenerate": "~1.3.1", + "unicode-9.0.0": "~0.7.0" + }, + "license": "BSD-2-Clause", + "scripts": { + "test": "npm run-script lint && npm run-script unit-test", + "lint": "jshint lib/*.js", + "unit-test": "mocha --compilers coffee:coffee-script -R spec", + "generate-regex": "node tools/generate-identifier-regex.js" + } +} diff --git a/node_modules/fast-deep-equal/LICENSE b/node_modules/fast-deep-equal/LICENSE new file mode 100644 index 0000000..7f15435 --- /dev/null +++ b/node_modules/fast-deep-equal/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/fast-deep-equal/README.md b/node_modules/fast-deep-equal/README.md new file mode 100644 index 0000000..d3f4ffc --- /dev/null +++ b/node_modules/fast-deep-equal/README.md @@ -0,0 +1,96 @@ +# fast-deep-equal +The fastest deep equal with ES6 Map, Set and Typed arrays support. + +[![Build Status](https://travis-ci.org/epoberezkin/fast-deep-equal.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-deep-equal) +[![npm](https://img.shields.io/npm/v/fast-deep-equal.svg)](https://www.npmjs.com/package/fast-deep-equal) +[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-deep-equal/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-deep-equal?branch=master) + + +## Install + +```bash +npm install fast-deep-equal +``` + + +## Features + +- ES5 compatible +- works in node.js (8+) and browsers (IE9+) +- checks equality of Date and RegExp objects by value. + +ES6 equal (`require('fast-deep-equal/es6')`) also supports: +- Maps +- Sets +- Typed arrays + + +## Usage + +```javascript +var equal = require('fast-deep-equal'); +console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true +``` + +To support ES6 Maps, Sets and Typed arrays equality use: + +```javascript +var equal = require('fast-deep-equal/es6'); +console.log(equal(Int16Array([1, 2]), Int16Array([1, 2]))); // true +``` + +To use with React (avoiding the traversal of React elements' _owner +property that contains circular references and is not needed when +comparing the elements - borrowed from [react-fast-compare](https://github.com/FormidableLabs/react-fast-compare)): + +```javascript +var equal = require('fast-deep-equal/react'); +var equal = require('fast-deep-equal/es6/react'); +``` + + +## Performance benchmark + +Node.js v12.6.0: + +``` +fast-deep-equal x 261,950 ops/sec ±0.52% (89 runs sampled) +fast-deep-equal/es6 x 212,991 ops/sec ±0.34% (92 runs sampled) +fast-equals x 230,957 ops/sec ±0.83% (85 runs sampled) +nano-equal x 187,995 ops/sec ±0.53% (88 runs sampled) +shallow-equal-fuzzy x 138,302 ops/sec ±0.49% (90 runs sampled) +underscore.isEqual x 74,423 ops/sec ±0.38% (89 runs sampled) +lodash.isEqual x 36,637 ops/sec ±0.72% (90 runs sampled) +deep-equal x 2,310 ops/sec ±0.37% (90 runs sampled) +deep-eql x 35,312 ops/sec ±0.67% (91 runs sampled) +ramda.equals x 12,054 ops/sec ±0.40% (91 runs sampled) +util.isDeepStrictEqual x 46,440 ops/sec ±0.43% (90 runs sampled) +assert.deepStrictEqual x 456 ops/sec ±0.71% (88 runs sampled) + +The fastest is fast-deep-equal +``` + +To run benchmark (requires node.js 6+): + +```bash +npm run benchmark +``` + +__Please note__: this benchmark runs against the available test cases. To choose the most performant library for your application, it is recommended to benchmark against your data and to NOT expect this benchmark to reflect the performance difference in your application. + + +## Enterprise support + +fast-deep-equal package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-deep-equal?utm_source=npm-fast-deep-equal&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers. + + +## Security contact + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues. + + +## License + +[MIT](https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE) diff --git a/node_modules/fast-deep-equal/es6/index.d.ts b/node_modules/fast-deep-equal/es6/index.d.ts new file mode 100644 index 0000000..c7eb9c7 --- /dev/null +++ b/node_modules/fast-deep-equal/es6/index.d.ts @@ -0,0 +1,2 @@ +declare const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/es6/index.js b/node_modules/fast-deep-equal/es6/index.js new file mode 100644 index 0000000..d980be2 --- /dev/null +++ b/node_modules/fast-deep-equal/es6/index.js @@ -0,0 +1,72 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + + var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + if ((a instanceof Map) && (b instanceof Map)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + for (i of a.entries()) + if (!equal(i[1], b.get(i[0]))) return false; + return true; + } + + if ((a instanceof Set) && (b instanceof Set)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + return true; + } + + if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (a[i] !== b[i]) return false; + return true; + } + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; diff --git a/node_modules/fast-deep-equal/es6/react.d.ts b/node_modules/fast-deep-equal/es6/react.d.ts new file mode 100644 index 0000000..c7eb9c7 --- /dev/null +++ b/node_modules/fast-deep-equal/es6/react.d.ts @@ -0,0 +1,2 @@ +declare const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/es6/react.js b/node_modules/fast-deep-equal/es6/react.js new file mode 100644 index 0000000..98e2f9b --- /dev/null +++ b/node_modules/fast-deep-equal/es6/react.js @@ -0,0 +1,79 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + + var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + if ((a instanceof Map) && (b instanceof Map)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + for (i of a.entries()) + if (!equal(i[1], b.get(i[0]))) return false; + return true; + } + + if ((a instanceof Set) && (b instanceof Set)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + return true; + } + + if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (a[i] !== b[i]) return false; + return true; + } + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (key === '_owner' && a.$$typeof) { + // React-specific: avoid traversing React elements' _owner. + // _owner contains circular references + // and is not needed when comparing the actual elements (and not their owners) + continue; + } + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; diff --git a/node_modules/fast-deep-equal/index.d.ts b/node_modules/fast-deep-equal/index.d.ts new file mode 100644 index 0000000..3c042ca --- /dev/null +++ b/node_modules/fast-deep-equal/index.d.ts @@ -0,0 +1,4 @@ +declare module 'fast-deep-equal' { + const equal: (a: any, b: any) => boolean; + export = equal; +} diff --git a/node_modules/fast-deep-equal/index.js b/node_modules/fast-deep-equal/index.js new file mode 100644 index 0000000..30dd1ba --- /dev/null +++ b/node_modules/fast-deep-equal/index.js @@ -0,0 +1,46 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; diff --git a/node_modules/fast-deep-equal/package.json b/node_modules/fast-deep-equal/package.json new file mode 100644 index 0000000..3cfe66c --- /dev/null +++ b/node_modules/fast-deep-equal/package.json @@ -0,0 +1,61 @@ +{ + "name": "fast-deep-equal", + "version": "3.1.3", + "description": "Fast deep equal", + "main": "index.js", + "scripts": { + "eslint": "eslint *.js benchmark/*.js spec/*.js", + "build": "node build", + "benchmark": "npm i && npm run build && cd ./benchmark && npm i && node ./", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts", + "test": "npm run build && npm run eslint && npm run test-ts && npm run test-cov", + "prepublish": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" + }, + "keywords": [ + "fast", + "equal", + "deep-equal" + ], + "author": "Evgeny Poberezkin", + "license": "MIT", + "bugs": { + "url": "https://github.com/epoberezkin/fast-deep-equal/issues" + }, + "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", + "devDependencies": { + "coveralls": "^3.1.0", + "dot": "^1.1.2", + "eslint": "^7.2.0", + "mocha": "^7.2.0", + "nyc": "^15.1.0", + "pre-commit": "^1.2.2", + "react": "^16.12.0", + "react-test-renderer": "^16.12.0", + "sinon": "^9.0.2", + "typescript": "^3.9.5" + }, + "nyc": { + "exclude": [ + "**/spec/**", + "node_modules" + ], + "reporter": [ + "lcov", + "text-summary" + ] + }, + "files": [ + "index.js", + "index.d.ts", + "react.js", + "react.d.ts", + "es6/" + ], + "types": "index.d.ts" +} diff --git a/node_modules/fast-deep-equal/react.d.ts b/node_modules/fast-deep-equal/react.d.ts new file mode 100644 index 0000000..c7eb9c7 --- /dev/null +++ b/node_modules/fast-deep-equal/react.d.ts @@ -0,0 +1,2 @@ +declare const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/react.js b/node_modules/fast-deep-equal/react.js new file mode 100644 index 0000000..3489b98 --- /dev/null +++ b/node_modules/fast-deep-equal/react.js @@ -0,0 +1,53 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (key === '_owner' && a.$$typeof) { + // React-specific: avoid traversing React elements' _owner. + // _owner contains circular references + // and is not needed when comparing the actual elements (and not their owners) + continue; + } + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; diff --git a/node_modules/fast-diff/.travis.yml b/node_modules/fast-diff/.travis.yml new file mode 100644 index 0000000..ffb9f71 --- /dev/null +++ b/node_modules/fast-diff/.travis.yml @@ -0,0 +1,2 @@ +language: node_js +node_js: '0.10' diff --git a/node_modules/fast-diff/README.md b/node_modules/fast-diff/README.md new file mode 100644 index 0000000..e786a3a --- /dev/null +++ b/node_modules/fast-diff/README.md @@ -0,0 +1,24 @@ +# Fast Diff [![Build Status](https://travis-ci.org/jhchen/fast-diff.svg)](https://travis-ci.org/jhchen/fast-diff) + +This is a simplified import of the excellent [diff-match-patch](https://code.google.com/p/google-diff-match-patch/) library by [Neil Fraser](https://neil.fraser.name/) into the Node.js environment. The match and patch parts are removed, as well as all the extra diff options. What remains is incredibly fast diffing between two strings. + + The diff function is an implementation of ["An O(ND) Difference Algorithm and its Variations" (Myers, 1986)](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.4.6927&rep=rep1&type=pdf) with the suggested divide and conquer strategy along with several [optimizations](http://neil.fraser.name/news/2007/10/09/) Neil added. + +```js +var diff = require('fast-diff'); + +var good = 'Good dog'; +var bad = 'Bad dog'; + +var result = diff(good, bad); +// [[-1, "Goo"], [1, "Ba"], [0, "d dog"]] + +// Respect suggested edit location (cursor position), added in v1.1 +diff('aaa', 'aaaa', 1) +// [[0, "a"], [1, "a"], [0, "aa"]] + +// For convenience +diff.INSERT === 1; +diff.EQUAL === 0; +diff.DELETE === -1; +``` diff --git a/node_modules/fast-diff/diff.d.ts b/node_modules/fast-diff/diff.d.ts new file mode 100644 index 0000000..9df2e96 --- /dev/null +++ b/node_modules/fast-diff/diff.d.ts @@ -0,0 +1,20 @@ +declare function diff( + text1: string, + text2: string, + cursorPos?: number | diff.CursorInfo +): diff.Diff[]; + +declare namespace diff { + type Diff = [-1 | 0 | 1, string]; + + const DELETE: -1; + const INSERT: 1; + const EQUAL: 0; + + interface CursorInfo { + oldRange: { index: number; length: number }; + newRange: { index: number; length: number }; + } +} + +export = diff; diff --git a/node_modules/fast-diff/diff.js b/node_modules/fast-diff/diff.js new file mode 100644 index 0000000..ce53152 --- /dev/null +++ b/node_modules/fast-diff/diff.js @@ -0,0 +1,774 @@ +/** + * This library modifies the diff-patch-match library by Neil Fraser + * by removing the patch and match functionality and certain advanced + * options in the diff function. The original license is as follows: + * + * === + * + * Diff Match and Patch + * + * Copyright 2006 Google Inc. + * http://code.google.com/p/google-diff-match-patch/ + * + * 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. + */ + + +/** + * The data structure representing a diff is an array of tuples: + * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] + * which means: delete 'Hello', add 'Goodbye' and keep ' world.' + */ +var DIFF_DELETE = -1; +var DIFF_INSERT = 1; +var DIFF_EQUAL = 0; + + +/** + * Find the differences between two texts. Simplifies the problem by stripping + * any common prefix or suffix off the texts before diffing. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info + * @return {Array} Array of diff tuples. + */ +function diff_main(text1, text2, cursor_pos, _fix_unicode) { + // Check for equality + if (text1 === text2) { + if (text1) { + return [[DIFF_EQUAL, text1]]; + } + return []; + } + + if (cursor_pos != null) { + var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos); + if (editdiff) { + return editdiff; + } + } + + // Trim off common prefix (speedup). + var commonlength = diff_commonPrefix(text1, text2); + var commonprefix = text1.substring(0, commonlength); + text1 = text1.substring(commonlength); + text2 = text2.substring(commonlength); + + // Trim off common suffix (speedup). + commonlength = diff_commonSuffix(text1, text2); + var commonsuffix = text1.substring(text1.length - commonlength); + text1 = text1.substring(0, text1.length - commonlength); + text2 = text2.substring(0, text2.length - commonlength); + + // Compute the diff on the middle block. + var diffs = diff_compute_(text1, text2); + + // Restore the prefix and suffix. + if (commonprefix) { + diffs.unshift([DIFF_EQUAL, commonprefix]); + } + if (commonsuffix) { + diffs.push([DIFF_EQUAL, commonsuffix]); + } + diff_cleanupMerge(diffs, _fix_unicode); + return diffs; +}; + + +/** + * Find the differences between two texts. Assumes that the texts do not + * have any common prefix or suffix. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @return {Array} Array of diff tuples. + */ +function diff_compute_(text1, text2) { + var diffs; + + if (!text1) { + // Just add some text (speedup). + return [[DIFF_INSERT, text2]]; + } + + if (!text2) { + // Just delete some text (speedup). + return [[DIFF_DELETE, text1]]; + } + + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + var i = longtext.indexOf(shorttext); + if (i !== -1) { + // Shorter text is inside the longer text (speedup). + diffs = [ + [DIFF_INSERT, longtext.substring(0, i)], + [DIFF_EQUAL, shorttext], + [DIFF_INSERT, longtext.substring(i + shorttext.length)] + ]; + // Swap insertions for deletions if diff is reversed. + if (text1.length > text2.length) { + diffs[0][0] = diffs[2][0] = DIFF_DELETE; + } + return diffs; + } + + if (shorttext.length === 1) { + // Single character string. + // After the previous speedup, the character can't be an equality. + return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; + } + + // Check to see if the problem can be split in two. + var hm = diff_halfMatch_(text1, text2); + if (hm) { + // A half-match was found, sort out the return data. + var text1_a = hm[0]; + var text1_b = hm[1]; + var text2_a = hm[2]; + var text2_b = hm[3]; + var mid_common = hm[4]; + // Send both pairs off for separate processing. + var diffs_a = diff_main(text1_a, text2_a); + var diffs_b = diff_main(text1_b, text2_b); + // Merge the results. + return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b); + } + + return diff_bisect_(text1, text2); +}; + + +/** + * Find the 'middle snake' of a diff, split the problem in two + * and return the recursively constructed diff. + * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @return {Array} Array of diff tuples. + * @private + */ +function diff_bisect_(text1, text2) { + // Cache the text lengths to prevent multiple calls. + var text1_length = text1.length; + var text2_length = text2.length; + var max_d = Math.ceil((text1_length + text2_length) / 2); + var v_offset = max_d; + var v_length = 2 * max_d; + var v1 = new Array(v_length); + var v2 = new Array(v_length); + // Setting all elements to -1 is faster in Chrome & Firefox than mixing + // integers and undefined. + for (var x = 0; x < v_length; x++) { + v1[x] = -1; + v2[x] = -1; + } + v1[v_offset + 1] = 0; + v2[v_offset + 1] = 0; + var delta = text1_length - text2_length; + // If the total number of characters is odd, then the front path will collide + // with the reverse path. + var front = (delta % 2 !== 0); + // Offsets for start and end of k loop. + // Prevents mapping of space beyond the grid. + var k1start = 0; + var k1end = 0; + var k2start = 0; + var k2end = 0; + for (var d = 0; d < max_d; d++) { + // Walk the front path one step. + for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { + var k1_offset = v_offset + k1; + var x1; + if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) { + x1 = v1[k1_offset + 1]; + } else { + x1 = v1[k1_offset - 1] + 1; + } + var y1 = x1 - k1; + while ( + x1 < text1_length && y1 < text2_length && + text1.charAt(x1) === text2.charAt(y1) + ) { + x1++; + y1++; + } + v1[k1_offset] = x1; + if (x1 > text1_length) { + // Ran off the right of the graph. + k1end += 2; + } else if (y1 > text2_length) { + // Ran off the bottom of the graph. + k1start += 2; + } else if (front) { + var k2_offset = v_offset + delta - k1; + if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) { + // Mirror x2 onto top-left coordinate system. + var x2 = text1_length - v2[k2_offset]; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit_(text1, text2, x1, y1); + } + } + } + } + + // Walk the reverse path one step. + for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { + var k2_offset = v_offset + k2; + var x2; + if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) { + x2 = v2[k2_offset + 1]; + } else { + x2 = v2[k2_offset - 1] + 1; + } + var y2 = x2 - k2; + while ( + x2 < text1_length && y2 < text2_length && + text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1) + ) { + x2++; + y2++; + } + v2[k2_offset] = x2; + if (x2 > text1_length) { + // Ran off the left of the graph. + k2end += 2; + } else if (y2 > text2_length) { + // Ran off the top of the graph. + k2start += 2; + } else if (!front) { + var k1_offset = v_offset + delta - k2; + if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) { + var x1 = v1[k1_offset]; + var y1 = v_offset + x1 - k1_offset; + // Mirror x2 onto top-left coordinate system. + x2 = text1_length - x2; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit_(text1, text2, x1, y1); + } + } + } + } + } + // Diff took too long and hit the deadline or + // number of diffs equals number of characters, no commonality at all. + return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; +}; + + +/** + * Given the location of the 'middle snake', split the diff in two parts + * and recurse. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {number} x Index of split point in text1. + * @param {number} y Index of split point in text2. + * @return {Array} Array of diff tuples. + */ +function diff_bisectSplit_(text1, text2, x, y) { + var text1a = text1.substring(0, x); + var text2a = text2.substring(0, y); + var text1b = text1.substring(x); + var text2b = text2.substring(y); + + // Compute both diffs serially. + var diffs = diff_main(text1a, text2a); + var diffsb = diff_main(text1b, text2b); + + return diffs.concat(diffsb); +}; + + +/** + * Determine the common prefix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the start of each + * string. + */ +function diff_commonPrefix(text1, text2) { + // Quick check for common null cases. + if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) { + return 0; + } + // Binary search. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + var pointerstart = 0; + while (pointermin < pointermid) { + if ( + text1.substring(pointerstart, pointermid) == + text2.substring(pointerstart, pointermid) + ) { + pointermin = pointermid; + pointerstart = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + + if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) { + pointermid--; + } + + return pointermid; +}; + + +/** + * Determine the common suffix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the end of each string. + */ +function diff_commonSuffix(text1, text2) { + // Quick check for common null cases. + if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) { + return 0; + } + // Binary search. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + var pointerend = 0; + while (pointermin < pointermid) { + if ( + text1.substring(text1.length - pointermid, text1.length - pointerend) == + text2.substring(text2.length - pointermid, text2.length - pointerend) + ) { + pointermin = pointermid; + pointerend = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + + if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) { + pointermid--; + } + + return pointermid; +}; + + +/** + * Do the two texts share a substring which is at least half the length of the + * longer text? + * This speedup can produce non-minimal diffs. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {Array.} Five element Array, containing the prefix of + * text1, the suffix of text1, the prefix of text2, the suffix of + * text2 and the common middle. Or null if there was no match. + */ +function diff_halfMatch_(text1, text2) { + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { + return null; // Pointless. + } + + /** + * Does a substring of shorttext exist within longtext such that the substring + * is at least half the length of longtext? + * Closure, but does not reference any external variables. + * @param {string} longtext Longer string. + * @param {string} shorttext Shorter string. + * @param {number} i Start index of quarter length substring within longtext. + * @return {Array.} Five element Array, containing the prefix of + * longtext, the suffix of longtext, the prefix of shorttext, the suffix + * of shorttext and the common middle. Or null if there was no match. + * @private + */ + function diff_halfMatchI_(longtext, shorttext, i) { + // Start with a 1/4 length substring at position i as a seed. + var seed = longtext.substring(i, i + Math.floor(longtext.length / 4)); + var j = -1; + var best_common = ''; + var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; + while ((j = shorttext.indexOf(seed, j + 1)) !== -1) { + var prefixLength = diff_commonPrefix( + longtext.substring(i), shorttext.substring(j)); + var suffixLength = diff_commonSuffix( + longtext.substring(0, i), shorttext.substring(0, j)); + if (best_common.length < suffixLength + prefixLength) { + best_common = shorttext.substring( + j - suffixLength, j) + shorttext.substring(j, j + prefixLength); + best_longtext_a = longtext.substring(0, i - suffixLength); + best_longtext_b = longtext.substring(i + prefixLength); + best_shorttext_a = shorttext.substring(0, j - suffixLength); + best_shorttext_b = shorttext.substring(j + prefixLength); + } + } + if (best_common.length * 2 >= longtext.length) { + return [ + best_longtext_a, best_longtext_b, + best_shorttext_a, best_shorttext_b, best_common + ]; + } else { + return null; + } + } + + // First check if the second quarter is the seed for a half-match. + var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4)); + // Check again based on the third quarter. + var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2)); + var hm; + if (!hm1 && !hm2) { + return null; + } else if (!hm2) { + hm = hm1; + } else if (!hm1) { + hm = hm2; + } else { + // Both matched. Select the longest. + hm = hm1[4].length > hm2[4].length ? hm1 : hm2; + } + + // A half-match was found, sort out the return data. + var text1_a, text1_b, text2_a, text2_b; + if (text1.length > text2.length) { + text1_a = hm[0]; + text1_b = hm[1]; + text2_a = hm[2]; + text2_b = hm[3]; + } else { + text2_a = hm[0]; + text2_b = hm[1]; + text1_a = hm[2]; + text1_b = hm[3]; + } + var mid_common = hm[4]; + return [text1_a, text1_b, text2_a, text2_b, mid_common]; +}; + + +/** + * Reorder and merge like edit sections. Merge equalities. + * Any edit section can move as long as it doesn't cross an equality. + * @param {Array} diffs Array of diff tuples. + * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff + */ +function diff_cleanupMerge(diffs, fix_unicode) { + diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end. + var pointer = 0; + var count_delete = 0; + var count_insert = 0; + var text_delete = ''; + var text_insert = ''; + var commonlength; + while (pointer < diffs.length) { + if (pointer < diffs.length - 1 && !diffs[pointer][1]) { + diffs.splice(pointer, 1); + continue; + } + switch (diffs[pointer][0]) { + case DIFF_INSERT: + + count_insert++; + text_insert += diffs[pointer][1]; + pointer++; + break; + case DIFF_DELETE: + count_delete++; + text_delete += diffs[pointer][1]; + pointer++; + break; + case DIFF_EQUAL: + var previous_equality = pointer - count_insert - count_delete - 1; + if (fix_unicode) { + // prevent splitting of unicode surrogate pairs. when fix_unicode is true, + // we assume that the old and new text in the diff are complete and correct + // unicode-encoded JS strings, but the tuple boundaries may fall between + // surrogate pairs. we fix this by shaving off stray surrogates from the end + // of the previous equality and the beginning of this equality. this may create + // empty equalities or a common prefix or suffix. for example, if AB and AC are + // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and + // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this + // particular case, both equalities go away, we absorb any previous inequalities, + // and we keep scanning for the next equality before rewriting the tuples. + if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) { + var stray = diffs[previous_equality][1].slice(-1); + diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1); + text_delete = stray + text_delete; + text_insert = stray + text_insert; + if (!diffs[previous_equality][1]) { + // emptied out previous equality, so delete it and include previous delete/insert + diffs.splice(previous_equality, 1); + pointer--; + var k = previous_equality - 1; + if (diffs[k] && diffs[k][0] === DIFF_INSERT) { + count_insert++; + text_insert = diffs[k][1] + text_insert; + k--; + } + if (diffs[k] && diffs[k][0] === DIFF_DELETE) { + count_delete++; + text_delete = diffs[k][1] + text_delete; + k--; + } + previous_equality = k; + } + } + if (starts_with_pair_end(diffs[pointer][1])) { + var stray = diffs[pointer][1].charAt(0); + diffs[pointer][1] = diffs[pointer][1].slice(1); + text_delete += stray; + text_insert += stray; + } + } + if (pointer < diffs.length - 1 && !diffs[pointer][1]) { + // for empty equality not at end, wait for next equality + diffs.splice(pointer, 1); + break; + } + if (text_delete.length > 0 || text_insert.length > 0) { + // note that diff_commonPrefix and diff_commonSuffix are unicode-aware + if (text_delete.length > 0 && text_insert.length > 0) { + // Factor out any common prefixes. + commonlength = diff_commonPrefix(text_insert, text_delete); + if (commonlength !== 0) { + if (previous_equality >= 0) { + diffs[previous_equality][1] += text_insert.substring(0, commonlength); + } else { + diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]); + pointer++; + } + text_insert = text_insert.substring(commonlength); + text_delete = text_delete.substring(commonlength); + } + // Factor out any common suffixes. + commonlength = diff_commonSuffix(text_insert, text_delete); + if (commonlength !== 0) { + diffs[pointer][1] = + text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1]; + text_insert = text_insert.substring(0, text_insert.length - commonlength); + text_delete = text_delete.substring(0, text_delete.length - commonlength); + } + } + // Delete the offending records and add the merged ones. + var n = count_insert + count_delete; + if (text_delete.length === 0 && text_insert.length === 0) { + diffs.splice(pointer - n, n); + pointer = pointer - n; + } else if (text_delete.length === 0) { + diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]); + pointer = pointer - n + 1; + } else if (text_insert.length === 0) { + diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]); + pointer = pointer - n + 1; + } else { + diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]); + pointer = pointer - n + 2; + } + } + if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) { + // Merge this equality with the previous one. + diffs[pointer - 1][1] += diffs[pointer][1]; + diffs.splice(pointer, 1); + } else { + pointer++; + } + count_insert = 0; + count_delete = 0; + text_delete = ''; + text_insert = ''; + break; + } + } + if (diffs[diffs.length - 1][1] === '') { + diffs.pop(); // Remove the dummy entry at the end. + } + + // Second pass: look for single edits surrounded on both sides by equalities + // which can be shifted sideways to eliminate an equality. + // e.g: ABAC -> ABAC + var changes = false; + pointer = 1; + // Intentionally ignore the first and last element (don't need checking). + while (pointer < diffs.length - 1) { + if (diffs[pointer - 1][0] === DIFF_EQUAL && + diffs[pointer + 1][0] === DIFF_EQUAL) { + // This is a single edit surrounded by equalities. + if (diffs[pointer][1].substring(diffs[pointer][1].length - + diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) { + // Shift the edit over the previous equality. + diffs[pointer][1] = diffs[pointer - 1][1] + + diffs[pointer][1].substring(0, diffs[pointer][1].length - + diffs[pointer - 1][1].length); + diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; + diffs.splice(pointer - 1, 1); + changes = true; + } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == + diffs[pointer + 1][1]) { + // Shift the edit over the next equality. + diffs[pointer - 1][1] += diffs[pointer + 1][1]; + diffs[pointer][1] = + diffs[pointer][1].substring(diffs[pointer + 1][1].length) + + diffs[pointer + 1][1]; + diffs.splice(pointer + 1, 1); + changes = true; + } + } + pointer++; + } + // If shifts were made, the diff needs reordering and another shift sweep. + if (changes) { + diff_cleanupMerge(diffs, fix_unicode); + } +}; + +function is_surrogate_pair_start(charCode) { + return charCode >= 0xD800 && charCode <= 0xDBFF; +} + +function is_surrogate_pair_end(charCode) { + return charCode >= 0xDC00 && charCode <= 0xDFFF; +} + +function starts_with_pair_end(str) { + return is_surrogate_pair_end(str.charCodeAt(0)); +} + +function ends_with_pair_start(str) { + return is_surrogate_pair_start(str.charCodeAt(str.length - 1)); +} + +function remove_empty_tuples(tuples) { + var ret = []; + for (var i = 0; i < tuples.length; i++) { + if (tuples[i][1].length > 0) { + ret.push(tuples[i]); + } + } + return ret; +} + +function make_edit_splice(before, oldMiddle, newMiddle, after) { + if (ends_with_pair_start(before) || starts_with_pair_end(after)) { + return null; + } + return remove_empty_tuples([ + [DIFF_EQUAL, before], + [DIFF_DELETE, oldMiddle], + [DIFF_INSERT, newMiddle], + [DIFF_EQUAL, after] + ]); +} + +function find_cursor_edit_diff(oldText, newText, cursor_pos) { + // note: this runs after equality check has ruled out exact equality + var oldRange = typeof cursor_pos === 'number' ? + { index: cursor_pos, length: 0 } : cursor_pos.oldRange; + var newRange = typeof cursor_pos === 'number' ? + null : cursor_pos.newRange; + // take into account the old and new selection to generate the best diff + // possible for a text edit. for example, a text change from "xxx" to "xx" + // could be a delete or forwards-delete of any one of the x's, or the + // result of selecting two of the x's and typing "x". + var oldLength = oldText.length; + var newLength = newText.length; + if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) { + // see if we have an insert or delete before or after cursor + var oldCursor = oldRange.index; + var oldBefore = oldText.slice(0, oldCursor); + var oldAfter = oldText.slice(oldCursor); + var maybeNewCursor = newRange ? newRange.index : null; + editBefore: { + // is this an insert or delete right before oldCursor? + var newCursor = oldCursor + newLength - oldLength; + if (maybeNewCursor !== null && maybeNewCursor !== newCursor) { + break editBefore; + } + if (newCursor < 0 || newCursor > newLength) { + break editBefore; + } + var newBefore = newText.slice(0, newCursor); + var newAfter = newText.slice(newCursor); + if (newAfter !== oldAfter) { + break editBefore; + } + var prefixLength = Math.min(oldCursor, newCursor); + var oldPrefix = oldBefore.slice(0, prefixLength); + var newPrefix = newBefore.slice(0, prefixLength); + if (oldPrefix !== newPrefix) { + break editBefore; + } + var oldMiddle = oldBefore.slice(prefixLength); + var newMiddle = newBefore.slice(prefixLength); + return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter); + } + editAfter: { + // is this an insert or delete right after oldCursor? + if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) { + break editAfter; + } + var cursor = oldCursor; + var newBefore = newText.slice(0, cursor); + var newAfter = newText.slice(cursor); + if (newBefore !== oldBefore) { + break editAfter; + } + var suffixLength = Math.min(oldLength - cursor, newLength - cursor); + var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength); + var newSuffix = newAfter.slice(newAfter.length - suffixLength); + if (oldSuffix !== newSuffix) { + break editAfter; + } + var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength); + var newMiddle = newAfter.slice(0, newAfter.length - suffixLength); + return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix); + } + } + if (oldRange.length > 0 && newRange && newRange.length === 0) { + replaceRange: { + // see if diff could be a splice of the old selection range + var oldPrefix = oldText.slice(0, oldRange.index); + var oldSuffix = oldText.slice(oldRange.index + oldRange.length); + var prefixLength = oldPrefix.length; + var suffixLength = oldSuffix.length; + if (newLength < prefixLength + suffixLength) { + break replaceRange; + } + var newPrefix = newText.slice(0, prefixLength); + var newSuffix = newText.slice(newLength - suffixLength); + if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) { + break replaceRange; + } + var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength); + var newMiddle = newText.slice(prefixLength, newLength - suffixLength); + return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix); + } + } + + return null; +} + +function diff(text1, text2, cursor_pos) { + // only pass fix_unicode=true at the top level, not when diff_main is + // recursively invoked + return diff_main(text1, text2, cursor_pos, true); +} + +diff.INSERT = DIFF_INSERT; +diff.DELETE = DIFF_DELETE; +diff.EQUAL = DIFF_EQUAL; + +module.exports = diff; diff --git a/node_modules/fast-diff/package.json b/node_modules/fast-diff/package.json new file mode 100644 index 0000000..b1a7a29 --- /dev/null +++ b/node_modules/fast-diff/package.json @@ -0,0 +1,26 @@ +{ + "name": "fast-diff", + "version": "1.2.0", + "description": "Fast Javascript text diff", + "author": "Jason Chen ", + "main": "diff.js", + "types": "diff.d.ts", + "devDependencies": { + "lodash": "~3.9.3", + "seedrandom": "~2.4.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/jhchen/fast-diff" + }, + "bugs": { + "url": "https://github.com/jhchen/fast-diff/issues" + }, + "scripts": { + "test": "node test.js" + }, + "license": "Apache-2.0", + "keywords": [ + "diff" + ] +} diff --git a/node_modules/fast-diff/test.js b/node_modules/fast-diff/test.js new file mode 100644 index 0000000..76573e8 --- /dev/null +++ b/node_modules/fast-diff/test.js @@ -0,0 +1,334 @@ +var _ = require('lodash'); +var seedrandom = require('seedrandom'); +var diff = require('./diff.js'); + +var ITERATIONS = 10000; +var ALPHABET = 'GATTACA'; +var LENGTH = 100; +var EMOJI_MAX_LENGTH = 50; + +var seed = Math.floor(Math.random() * 10000); +var random = seedrandom(seed); + +console.log('Running regression tests...'); +[ + ['GAATAAAAAAAGATTAACAT', 'AAAAACTTGTAATTAACAAC'], + ['🔘🤘🔗🔗', '🔗🤗🤗__🤗🤘🤘🤗🔗🤘🔗'], + ['🔗🤗🤗__🤗🤘🤘🤗🔗🤘🔗', '🤗🤘🔘'], + ['🤘🤘🔘🔘_🔘🔗🤘🤗🤗__🔗🤘', '🤘🔘🤘🔗🤘🤘🔗🤗🤘🔘🔘'], + ['🤗🤘🤗🔘🤘🔘🤗_🤗🔗🤘🤗_🤘🔗🤗🤘🔗🤘🤘🤘🔗🤗🔗🔗🔗🤗_🤘🔗🤗🤗🔘🤗🤗🤘🤗', + '_🤗🤘_🤘🤘🔘🤗🔘🤘_🔘🤗🔗🔘🔗🤘🔗🤘🤗🔗🔗🔗🤘🔘_🤗🤘🤘🤘__🤘_🔘🤘🤘_🔗🤘🔘'], + ['🔗🤘🤗🔘🔘🤗', '🤘🤘🤘🤗🔘🔗🔗'], + ['🔘_🔗🔗🔗🤗🔗', '🤘🤗🔗🤗_🤘🔘_'], +].forEach(function (data) { + var result = diff(data[0], data[1]); + applyDiff(result, data[0], data[1]); +}); + +console.log('Running computing ' + ITERATIONS + ' diffs with seed ' + seed + '...'); + +console.log('Generating strings...'); +var strings = []; +for (var i = 0; i <= ITERATIONS; ++i) { + var chars = []; + for (var l = 0; l < LENGTH; ++l) { + var letter = ALPHABET.substr(Math.floor(random() * ALPHABET.length), 1); + chars.push(letter); + } + strings.push(chars.join('')); +} + +console.log('Running fuzz tests *without* cursor information...'); +for (var i = 0; i < ITERATIONS; ++i) { + var result = diff(strings[i], strings[i + 1]); + applyDiff(result, strings[i], strings[i + 1]); +} + +console.log('Running fuzz tests *with* cursor information'); +for (var i = 0; i < ITERATIONS; ++i) { + var cursor_pos = Math.floor(random() * strings[i].length + 1); + var diffs = diff(strings[i], strings[i + 1], cursor_pos); + applyDiff(diffs, strings[i], strings[i + 1]); +} + +function parseDiff(str) { + if (!str) { + return []; + } + return str.split(/(?=[+\-=])/).map(function (piece) { + var symbol = piece.charAt(0); + var text = piece.slice(1); + return [ + symbol === '+' ? diff.INSERT : symbol === '-' ? diff.DELETE : diff.EQUAL, + text + ] + }); +} + +console.log('Running cursor tests'); +[ + ['', 0, '', null, ''], + + ['', 0, 'a', null, '+a'], + ['a', 0, 'aa', null, '+a=a'], + ['a', 1, 'aa', null, '=a+a'], + ['aa', 0, 'aaa', null, '+a=aa'], + ['aa', 1, 'aaa', null, '=a+a=a'], + ['aa', 2, 'aaa', null, '=aa+a'], + ['aaa', 0, 'aaaa', null, '+a=aaa'], + ['aaa', 1, 'aaaa', null, '=a+a=aa'], + ['aaa', 2, 'aaaa', null, '=aa+a=a'], + ['aaa', 3, 'aaaa', null, '=aaa+a'], + + ['a', 0, '', null, '-a'], + ['a', 1, '', null, '-a'], + ['aa', 0, 'a', null, '-a=a'], + ['aa', 1, 'a', null, '-a=a'], + ['aa', 2, 'a', null, '=a-a'], + ['aaa', 0, 'aa', null, '-a=aa'], + ['aaa', 1, 'aa', null, '-a=aa'], + ['aaa', 2, 'aa', null, '=a-a=a'], + ['aaa', 3, 'aa', null, '=aa-a'], + + ['', 0, '', 0, ''], + + ['', 0, 'a', 1, '+a'], + ['a', 0, 'aa', 1, '+a=a'], + ['a', 1, 'aa', 2, '=a+a'], + ['aa', 0, 'aaa', 1, '+a=aa'], + ['aa', 1, 'aaa', 2, '=a+a=a'], + ['aa', 2, 'aaa', 3, '=aa+a'], + ['aaa', 0, 'aaaa', 1, '+a=aaa'], + ['aaa', 1, 'aaaa', 2, '=a+a=aa'], + ['aaa', 2, 'aaaa', 3, '=aa+a=a'], + ['aaa', 3, 'aaaa', 4, '=aaa+a'], + + ['a', 1, '', 0, '-a'], + ['aa', 1, 'a', 0, '-a=a'], + ['aa', 2, 'a', 1, '=a-a'], + ['aaa', 1, 'aa', 0, '-a=aa'], + ['aaa', 2, 'aa', 1, '=a-a=a'], + ['aaa', 3, 'aa', 2, '=aa-a'], + + ['a', 1, '', 0, '-a'], + ['aa', 1, 'a', 0, '-a=a'], + ['aa', 2, 'a', 1, '=a-a'], + ['aaa', 1, 'aa', 0, '-a=aa'], + ['aaa', 2, 'aa', 1, '=a-a=a'], + ['aaa', 3, 'aa', 2, '=aa-a'], + + // forward-delete + ['a', 0, '', 0, '-a'], + ['aa', 0, 'a', 0, '-a=a'], + ['aa', 1, 'a', 1, '=a-a'], + ['aaa', 0, 'aa', 0, '-a=aa'], + ['aaa', 1, 'aa', 1, '=a-a=a'], + ['aaa', 2, 'aa', 2, '=aa-a'], + + ['bob', 0, 'bobob', null, '+bo=bob'], + ['bob', 1, 'bobob', null, '=b+ob=ob'], + ['bob', 2, 'bobob', null, '=bo+bo=b'], + ['bob', 3, 'bobob', null, '=bob+ob'], + ['bob', 0, 'bobob', 2, '+bo=bob'], + ['bob', 1, 'bobob', 3, '=b+ob=ob'], + ['bob', 2, 'bobob', 4, '=bo+bo=b'], + ['bob', 3, 'bobob', 5, '=bob+ob'], + ['bobob', 2, 'bob', null, '-bo=bob'], + ['bobob', 3, 'bob', null, '=b-ob=ob'], + ['bobob', 4, 'bob', null, '=bo-bo=b'], + ['bobob', 5, 'bob', null, '=bob-ob'], + ['bobob', 2, 'bob', 0, '-bo=bob'], + ['bobob', 3, 'bob', 1, '=b-ob=ob'], + ['bobob', 4, 'bob', 2, '=bo-bo=b'], + ['bobob', 5, 'bob', 3, '=bob-ob'], + + ['bob', 1, 'b', null, '=b-ob'], + + ['hello', [0, 5], 'h', 1, '-hello+h'], + ['yay', [0, 3], 'y', 1, '-yay+y'], + ['bobob', [1, 4], 'bob', 2, '=b-obo+o=b'], + +].forEach(function (data) { + var oldText = data[0]; + var newText = data[2]; + var oldRange = typeof data[1] === 'number' ? + { index: data[1], length: 0 } : + { index: data[1][0], length: data[1][1] - data[1][0] }; + var newRange = typeof data[3] === 'number' ? + { index: data[3], length: 0 } : + data[3] === null ? null : { index: data[3][0], length: data[3][1] - data[3][0] }; + var expected = parseDiff(data[4]); + if (newRange === null && typeof data[1] !== 'number') { + throw new Error('invalid test case'); + } + var cursorInfo = newRange === null ? data[1] : { + oldRange: oldRange, + newRange: newRange, + }; + doCursorTest(oldText, newText, cursorInfo, expected); + doCursorTest('x' + oldText, 'x' + newText, shiftCursorInfo(cursorInfo, 1), diffPrepend(expected, 'x')); + doCursorTest(oldText + 'x', newText + 'x', cursorInfo, diffAppend(expected, 'x')); +}); + +function diffPrepend(tuples, text) { + if (tuples.length > 0 && tuples[0][0] === diff.EQUAL) { + return [[diff.EQUAL, text + tuples[0][1]]].concat(tuples.slice(1)); + } else { + return [[diff.EQUAL, text]].concat(tuples); + } +} + +function diffAppend(tuples, text) { + var lastTuple = tuples[tuples.length - 1]; + if (lastTuple && lastTuple[0] === diff.EQUAL) { + return tuples.slice(0, -1).concat([[diff.EQUAL, lastTuple[1] + text]]); + } else { + return tuples.concat([[diff.EQUAL, text]]); + } +} + +function shiftCursorInfo(cursorInfo, amount) { + if (typeof cursorInfo === 'number') { + return cursorInfo + amount; + } else { + return { + oldRange: { + index: cursorInfo.oldRange.index + amount, + length: cursorInfo.oldRange.length, + }, + newRange: { + index: cursorInfo.newRange.index + amount, + length: cursorInfo.newRange.length, + }, + } + } +} + +function doCursorTest(oldText, newText, cursorInfo, expected) { + var result = diff(oldText, newText, cursorInfo); + if (!_.isEqual(result, expected)) { + console.log([oldText, newText, cursorInfo]); + console.log(result, '!==', expected); + throw new Error('cursor test failed'); + } +} + +console.log('Running emoji tests'); +[ + ['🐶', '🐯', '-🐶+🐯'], + ['👨🏽', '👩🏽', '-👨+👩=🏽'], + ['👩🏼', '👩🏽', '=👩-🏼+🏽'], + + ['🍏🍎', '🍎', '-🍏=🍎'], + ['🍎', '🍏🍎', '+🍏=🍎'], + +].forEach(function (data) { + var oldText = data[0]; + var newText = data[1]; + var expected = parseDiff(data[2]); + doEmojiTest(oldText, newText, expected); + doEmojiTest('x' + oldText, 'x' + newText, diffPrepend(expected, 'x')); + doEmojiTest(oldText + 'x', newText + 'x', diffAppend(expected, 'x')); +}); + +function doEmojiTest(oldText, newText, expected) { + var result = diff(oldText, newText); + if (!_.isEqual(result, expected)) { + console.log(oldText, newText, expected); + console.log(result, '!==', expected); + throw new Error('Emoji simple test case failed'); + } +} + +// emojis chosen to share high and low surrogates! +var EMOJI_ALPHABET = ['_', '🤗', '🔗', '🤘', '🔘']; + +console.log('Generating emoji strings...'); +var emoji_strings = []; +for (var i = 0; i <= ITERATIONS; ++i) { + var letters = []; + var len = Math.floor(random() * EMOJI_MAX_LENGTH); + for (var l = 0; l < len; ++l) { + var letter = EMOJI_ALPHABET[Math.floor(random() * EMOJI_ALPHABET.length)]; + letters.push(letter); + } + emoji_strings.push(letters.join('')); +} + +console.log('Running emoji fuzz tests...'); +for (var i = 0; i < ITERATIONS; ++i) { + var oldText = emoji_strings[i]; + var newText = emoji_strings[i + 1]; + var result = diff(oldText, newText); + applyDiff(result, oldText, newText); +} + +// Applies a diff to text, throwing an error if diff is invalid or incorrect +function applyDiff(diffs, text, expectedResult) { + var pos = 0; + function throwError(message) { + console.log(diffs, text, expectedResult); + throw new Error(message); + } + function expect(expected) { + var found = text.substr(pos, expected.length); + if (found !== expected) { + throwError('Expected "' + expected + '", found "' + found + '"'); + } + } + var result = ''; + var inserts_since_last_equality = 0; + var deletes_since_last_equality = 0; + for (var i = 0; i < diffs.length; i++) { + var d = diffs[i]; + if (!d[1]) { + throwError('Empty tuple in diff') + } + var firstCharCode = d[1].charCodeAt(0); + var lastCharCode = d[1].slice(-1).charCodeAt(0); + if (firstCharCode >= 0xDC00 && firstCharCode <= 0xDFFF || + lastCharCode >= 0xD800 && lastCharCode <= 0xDBFF) { + throwError('Bad unicode diff tuple') + } + switch (d[0]) { + case diff.EQUAL: + if (i !== 0 && !inserts_since_last_equality && !deletes_since_last_equality) { + throwError('two consecutive equalities in diff'); + } + inserts_since_last_equality = 0; + deletes_since_last_equality = 0; + expect(d[1]); + result += d[1]; + pos += d[1].length; + break; + case diff.DELETE: + if (deletes_since_last_equality) { + throwError('multiple deletes between equalities') + } + if (inserts_since_last_equality) { + throwError('delete following insert in diff') + } + deletes_since_last_equality++; + expect(d[1]); + pos += d[1].length; + break + case diff.INSERT: + if (inserts_since_last_equality) { + throwError('multiple inserts between equalities') + } + inserts_since_last_equality++; + result += d[1]; + break; + } + } + if (pos !== text.length) { + throwError('Diff did not consume entire input text'); + } + if (result !== expectedResult) { + console.log(diffs, text, expectedResult, result); + throw new Error('Diff not correct') + } + return result; +} + +console.log("Success!"); diff --git a/node_modules/fast-glob/LICENSE b/node_modules/fast-glob/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/fast-glob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/fast-glob/README.md b/node_modules/fast-glob/README.md new file mode 100644 index 0000000..393f4fe --- /dev/null +++ b/node_modules/fast-glob/README.md @@ -0,0 +1,795 @@ +# fast-glob + +> It's a very fast and efficient [glob][glob_definition] library for [Node.js][node_js]. + +This package provides methods for traversing the file system and returning pathnames that matched a defined set of a specified pattern according to the rules used by the Unix Bash shell with some simplifications, meanwhile results are returned in **arbitrary order**. Quick, simple, effective. + +## Table of Contents + +
+Details + +* [Highlights](#highlights) +* [Donation](#donation) +* [Old and modern mode](#old-and-modern-mode) +* [Pattern syntax](#pattern-syntax) + * [Basic syntax](#basic-syntax) + * [Advanced syntax](#advanced-syntax) +* [Installation](#installation) +* [API](#api) + * [Asynchronous](#asynchronous) + * [Synchronous](#synchronous) + * [Stream](#stream) + * [patterns](#patterns) + * [[options]](#options) + * [Helpers](#helpers) + * [generateTasks](#generatetaskspatterns-options) + * [isDynamicPattern](#isdynamicpatternpattern-options) + * [escapePath](#escapepathpattern) +* [Options](#options-3) + * [Common](#common) + * [concurrency](#concurrency) + * [cwd](#cwd) + * [deep](#deep) + * [followSymbolicLinks](#followsymboliclinks) + * [fs](#fs) + * [ignore](#ignore) + * [suppressErrors](#suppresserrors) + * [throwErrorOnBrokenSymbolicLink](#throwerroronbrokensymboliclink) + * [Output control](#output-control) + * [absolute](#absolute) + * [markDirectories](#markdirectories) + * [objectMode](#objectmode) + * [onlyDirectories](#onlydirectories) + * [onlyFiles](#onlyfiles) + * [stats](#stats) + * [unique](#unique) + * [Matching control](#matching-control) + * [braceExpansion](#braceexpansion) + * [caseSensitiveMatch](#casesensitivematch) + * [dot](#dot) + * [extglob](#extglob) + * [globstar](#globstar) + * [baseNameMatch](#basenamematch) +* [FAQ](#faq) + * [What is a static or dynamic pattern?](#what-is-a-static-or-dynamic-pattern) + * [How to write patterns on Windows?](#how-to-write-patterns-on-windows) + * [Why are parentheses match wrong?](#why-are-parentheses-match-wrong) + * [How to exclude directory from reading?](#how-to-exclude-directory-from-reading) + * [How to use UNC path?](#how-to-use-unc-path) + * [Compatible with `node-glob`?](#compatible-with-node-glob) +* [Benchmarks](#benchmarks) + * [Server](#server) + * [Nettop](#nettop) +* [Changelog](#changelog) +* [License](#license) + +
+ +## Highlights + +* Fast. Probably the fastest. +* Supports multiple and negative patterns. +* Synchronous, Promise and Stream API. +* Object mode. Can return more than just strings. +* Error-tolerant. + +## Donation + +Do you like this project? Support it by donating, creating an issue or pull request. + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)][paypal_mrmlnc] + +## Old and modern mode + +This package works in two modes, depending on the environment in which it is used. + +* **Old mode**. Node.js below 10.10 or when the [`stats`](#stats) option is *enabled*. +* **Modern mode**. Node.js 10.10+ and the [`stats`](#stats) option is *disabled*. + +The modern mode is faster. Learn more about the [internal mechanism][nodelib_fs_scandir_old_and_modern_modern]. + +## Pattern syntax + +> :warning: Always use forward-slashes in glob expressions (patterns and [`ignore`](#ignore) option). Use backslashes for escaping characters. + +There is more than one form of syntax: basic and advanced. Below is a brief overview of the supported features. Also pay attention to our [FAQ](#faq). + +> :book: This package uses a [`micromatch`][micromatch] as a library for pattern matching. + +### Basic syntax + +* An asterisk (`*`) — matches everything except slashes (path separators), hidden files (names starting with `.`). +* A double star or globstar (`**`) — matches zero or more directories. +* Question mark (`?`) – matches any single character except slashes (path separators). +* Sequence (`[seq]`) — matches any character in sequence. + +> :book: A few additional words about the [basic matching behavior][picomatch_matching_behavior]. + +Some examples: + +* `src/**/*.js` — matches all files in the `src` directory (any level of nesting) that have the `.js` extension. +* `src/*.??` — matches all files in the `src` directory (only first level of nesting) that have a two-character extension. +* `file-[01].js` — matches files: `file-0.js`, `file-1.js`. + +### Advanced syntax + +* [Escapes characters][micromatch_backslashes] (`\\`) — matching special characters (`$^*+?()[]`) as literals. +* [POSIX character classes][picomatch_posix_brackets] (`[[:digit:]]`). +* [Extended globs][micromatch_extglobs] (`?(pattern-list)`). +* [Bash style brace expansions][micromatch_braces] (`{}`). +* [Regexp character classes][micromatch_regex_character_classes] (`[1-5]`). +* [Regex groups][regular_expressions_brackets] (`(a|b)`). + +> :book: A few additional words about the [advanced matching behavior][micromatch_extended_globbing]. + +Some examples: + +* `src/**/*.{css,scss}` — matches all files in the `src` directory (any level of nesting) that have the `.css` or `.scss` extension. +* `file-[[:digit:]].js` — matches files: `file-0.js`, `file-1.js`, …, `file-9.js`. +* `file-{1..3}.js` — matches files: `file-1.js`, `file-2.js`, `file-3.js`. +* `file-(1|2)` — matches files: `file-1.js`, `file-2.js`. + +## Installation + +```console +npm install fast-glob +``` + +## API + +### Asynchronous + +```js +fg(patterns, [options]) +``` + +Returns a `Promise` with an array of matching entries. + +```js +const fg = require('fast-glob'); + +const entries = await fg(['.editorconfig', '**/index.js'], { dot: true }); + +// ['.editorconfig', 'services/index.js'] +``` + +### Synchronous + +```js +fg.sync(patterns, [options]) +``` + +Returns an array of matching entries. + +```js +const fg = require('fast-glob'); + +const entries = fg.sync(['.editorconfig', '**/index.js'], { dot: true }); + +// ['.editorconfig', 'services/index.js'] +``` + +### Stream + +```js +fg.stream(patterns, [options]) +``` + +Returns a [`ReadableStream`][node_js_stream_readable_streams] when the `data` event will be emitted with matching entry. + +```js +const fg = require('fast-glob'); + +const stream = fg.stream(['.editorconfig', '**/index.js'], { dot: true }); + +for await (const entry of stream) { + // .editorconfig + // services/index.js +} +``` + +#### patterns + +* Required: `true` +* Type: `string | string[]` + +Any correct pattern(s). + +> :1234: [Pattern syntax](#pattern-syntax) +> +> :warning: This package does not respect the order of patterns. First, all the negative patterns are applied, and only then the positive patterns. If you want to get a certain order of records, use sorting or split calls. + +#### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +### Helpers + +#### `generateTasks(patterns, [options])` + +Returns the internal representation of patterns ([`Task`](./src/managers/tasks.ts) is a combining patterns by base directory). + +```js +fg.generateTasks('*'); + +[{ + base: '.', // Parent directory for all patterns inside this task + dynamic: true, // Dynamic or static patterns are in this task + patterns: ['*'], + positive: ['*'], + negative: [] +}] +``` + +##### patterns + +* Required: `true` +* Type: `string | string[]` + +Any correct pattern(s). + +##### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +#### `isDynamicPattern(pattern, [options])` + +Returns `true` if the passed pattern is a dynamic pattern. + +> :1234: [What is a static or dynamic pattern?](#what-is-a-static-or-dynamic-pattern) + +```js +fg.isDynamicPattern('*'); // true +fg.isDynamicPattern('abc'); // false +``` + +##### pattern + +* Required: `true` +* Type: `string` + +Any correct pattern. + +##### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +#### `escapePath(pattern)` + +Returns a path with escaped special characters (`*?|(){}[]`, `!` at the beginning of line, `@+!` before the opening parenthesis). + +```js +fg.escapePath('!abc'); // \\!abc +fg.escapePath('C:/Program Files (x86)'); // C:/Program Files \\(x86\\) +``` + +##### pattern + +* Required: `true` +* Type: `string` + +Any string, for example, a path to a file. + +## Options + +### Common options + +#### concurrency + +* Type: `number` +* Default: `os.cpus().length` + +Specifies the maximum number of concurrent requests from a reader to read directories. + +> :book: The higher the number, the higher the performance and load on the file system. If you want to read in quiet mode, set the value to a comfortable number or `1`. + +#### cwd + +* Type: `string` +* Default: `process.cwd()` + +The current working directory in which to search. + +#### deep + +* Type: `number` +* Default: `Infinity` + +Specifies the maximum depth of a read directory relative to the start directory. + +For example, you have the following tree: + +```js +dir/ +└── one/ // 1 + └── two/ // 2 + └── file.js // 3 +``` + +```js +// With base directory +fg.sync('dir/**', { onlyFiles: false, deep: 1 }); // ['dir/one'] +fg.sync('dir/**', { onlyFiles: false, deep: 2 }); // ['dir/one', 'dir/one/two'] + +// With cwd option +fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 1 }); // ['one'] +fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 2 }); // ['one', 'one/two'] +``` + +> :book: If you specify a pattern with some base directory, this directory will not participate in the calculation of the depth of the found directories. Think of it as a [`cwd`](#cwd) option. + +#### followSymbolicLinks + +* Type: `boolean` +* Default: `true` + +Indicates whether to traverse descendants of symbolic link directories when expanding `**` patterns. + +> :book: Note that this option does not affect the base directory of the pattern. For example, if `./a` is a symlink to directory `./b` and you specified `['./a**', './b/**']` patterns, then directory `./a` will still be read. + +> :book: If the [`stats`](#stats) option is specified, the information about the symbolic link (`fs.lstat`) will be replaced with information about the entry (`fs.stat`) behind it. + +#### fs + +* Type: `FileSystemAdapter` +* Default: `fs.*` + +Custom implementation of methods for working with the file system. + +```ts +export interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; + readdir?: typeof fs.readdir; + readdirSync?: typeof fs.readdirSync; +} +``` + +#### ignore + +* Type: `string[]` +* Default: `[]` + +An array of glob patterns to exclude matches. This is an alternative way to use negative patterns. + +```js +dir/ +├── package-lock.json +└── package.json +``` + +```js +fg.sync(['*.json', '!package-lock.json']); // ['package.json'] +fg.sync('*.json', { ignore: ['package-lock.json'] }); // ['package.json'] +``` + +#### suppressErrors + +* Type: `boolean` +* Default: `false` + +By default this package suppress only `ENOENT` errors. Set to `true` to suppress any error. + +> :book: Can be useful when the directory has entries with a special level of access. + +#### throwErrorOnBrokenSymbolicLink + +* Type: `boolean` +* Default: `false` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +> :book: This option has no effect on errors when reading the symbolic link directory. + +### Output control + +#### absolute + +* Type: `boolean` +* Default: `false` + +Return the absolute path for entries. + +```js +fg.sync('*.js', { absolute: false }); // ['index.js'] +fg.sync('*.js', { absolute: true }); // ['/home/user/index.js'] +``` + +> :book: This option is required if you want to use negative patterns with absolute path, for example, `!${__dirname}/*.js`. + +#### markDirectories + +* Type: `boolean` +* Default: `false` + +Mark the directory path with the final slash. + +```js +fg.sync('*', { onlyFiles: false, markDirectories: false }); // ['index.js', 'controllers'] +fg.sync('*', { onlyFiles: false, markDirectories: true }); // ['index.js', 'controllers/'] +``` + +#### objectMode + +* Type: `boolean` +* Default: `false` + +Returns objects (instead of strings) describing entries. + +```js +fg.sync('*', { objectMode: false }); // ['src/index.js'] +fg.sync('*', { objectMode: true }); // [{ name: 'index.js', path: 'src/index.js', dirent: }] +``` + +The object has the following fields: + +* name (`string`) — the last part of the path (basename) +* path (`string`) — full path relative to the pattern base directory +* dirent ([`fs.Dirent`][node_js_fs_class_fs_dirent]) — instance of `fs.Dirent` + +> :book: An object is an internal representation of entry, so getting it does not affect performance. + +#### onlyDirectories + +* Type: `boolean` +* Default: `false` + +Return only directories. + +```js +fg.sync('*', { onlyDirectories: false }); // ['index.js', 'src'] +fg.sync('*', { onlyDirectories: true }); // ['src'] +``` + +> :book: If `true`, the [`onlyFiles`](#onlyfiles) option is automatically `false`. + +#### onlyFiles + +* Type: `boolean` +* Default: `true` + +Return only files. + +```js +fg.sync('*', { onlyFiles: false }); // ['index.js', 'src'] +fg.sync('*', { onlyFiles: true }); // ['index.js'] +``` + +#### stats + +* Type: `boolean` +* Default: `false` + +Enables an [object mode](#objectmode) with an additional field: + +* stats ([`fs.Stats`][node_js_fs_class_fs_stats]) — instance of `fs.Stats` + +```js +fg.sync('*', { stats: false }); // ['src/index.js'] +fg.sync('*', { stats: true }); // [{ name: 'index.js', path: 'src/index.js', dirent: , stats: }] +``` + +> :book: Returns `fs.stat` instead of `fs.lstat` for symbolic links when the [`followSymbolicLinks`](#followsymboliclinks) option is specified. +> +> :warning: Unlike [object mode](#objectmode) this mode requires additional calls to the file system. On average, this mode is slower at least twice. See [old and modern mode](#old-and-modern-mode) for more details. + +#### unique + +* Type: `boolean` +* Default: `true` + +Ensures that the returned entries are unique. + +```js +fg.sync(['*.json', 'package.json'], { unique: false }); // ['package.json', 'package.json'] +fg.sync(['*.json', 'package.json'], { unique: true }); // ['package.json'] +``` + +If `true` and similar entries are found, the result is the first found. + +### Matching control + +#### braceExpansion + +* Type: `boolean` +* Default: `true` + +Enables Bash-like brace expansion. + +> :1234: [Syntax description][bash_hackers_syntax_expansion_brace] or more [detailed description][micromatch_braces]. + +```js +dir/ +├── abd +├── acd +└── a{b,c}d +``` + +```js +fg.sync('a{b,c}d', { braceExpansion: false }); // ['a{b,c}d'] +fg.sync('a{b,c}d', { braceExpansion: true }); // ['abd', 'acd'] +``` + +#### caseSensitiveMatch + +* Type: `boolean` +* Default: `true` + +Enables a [case-sensitive][wikipedia_case_sensitivity] mode for matching files. + +```js +dir/ +├── file.txt +└── File.txt +``` + +```js +fg.sync('file.txt', { caseSensitiveMatch: false }); // ['file.txt', 'File.txt'] +fg.sync('file.txt', { caseSensitiveMatch: true }); // ['file.txt'] +``` + +#### dot + +* Type: `boolean` +* Default: `false` + +Allow patterns to match entries that begin with a period (`.`). + +> :book: Note that an explicit dot in a portion of the pattern will always match dot files. + +```js +dir/ +├── .editorconfig +└── package.json +``` + +```js +fg.sync('*', { dot: false }); // ['package.json'] +fg.sync('*', { dot: true }); // ['.editorconfig', 'package.json'] +``` + +#### extglob + +* Type: `boolean` +* Default: `true` + +Enables Bash-like `extglob` functionality. + +> :1234: [Syntax description][micromatch_extglobs]. + +```js +dir/ +├── README.md +└── package.json +``` + +```js +fg.sync('*.+(json|md)', { extglob: false }); // [] +fg.sync('*.+(json|md)', { extglob: true }); // ['README.md', 'package.json'] +``` + +#### globstar + +* Type: `boolean` +* Default: `true` + +Enables recursively repeats a pattern containing `**`. If `false`, `**` behaves exactly like `*`. + +```js +dir/ +└── a + └── b +``` + +```js +fg.sync('**', { onlyFiles: false, globstar: false }); // ['a'] +fg.sync('**', { onlyFiles: false, globstar: true }); // ['a', 'a/b'] +``` + +#### baseNameMatch + +* Type: `boolean` +* Default: `false` + +If set to `true`, then patterns without slashes will be matched against the basename of the path if it contains slashes. + +```js +dir/ +└── one/ + └── file.md +``` + +```js +fg.sync('*.md', { baseNameMatch: false }); // [] +fg.sync('*.md', { baseNameMatch: true }); // ['one/file.md'] +``` + +## FAQ + +## What is a static or dynamic pattern? + +All patterns can be divided into two types: + +* **static**. A pattern is considered static if it can be used to get an entry on the file system without using matching mechanisms. For example, the `file.js` pattern is a static pattern because we can just verify that it exists on the file system. +* **dynamic**. A pattern is considered dynamic if it cannot be used directly to find occurrences without using a matching mechanisms. For example, the `*` pattern is a dynamic pattern because we cannot use this pattern directly. + +A pattern is considered dynamic if it contains the following characters (`…` — any characters or their absence) or options: + +* The [`caseSensitiveMatch`](#casesensitivematch) option is disabled +* `\\` (the escape character) +* `*`, `?`, `!` (at the beginning of line) +* `[…]` +* `(…|…)` +* `@(…)`, `!(…)`, `*(…)`, `?(…)`, `+(…)` (respects the [`extglob`](#extglob) option) +* `{…,…}`, `{…..…}` (respects the [`braceExpansion`](#braceexpansion) option) + +## How to write patterns on Windows? + +Always use forward-slashes in glob expressions (patterns and [`ignore`](#ignore) option). Use backslashes for escaping characters. With the [`cwd`](#cwd) option use a convenient format. + +**Bad** + +```ts +[ + 'directory\\*', + path.join(process.cwd(), '**') +] +``` + +**Good** + +```ts +[ + 'directory/*', + path.join(process.cwd(), '**').replace(/\\/g, '/') +] +``` + +> :book: Use the [`normalize-path`][npm_normalize_path] or the [`unixify`][npm_unixify] package to convert Windows-style path to a Unix-style path. + +Read more about [matching with backslashes][micromatch_backslashes]. + +## Why are parentheses match wrong? + +```js +dir/ +└── (special-*file).txt +``` + +```js +fg.sync(['(special-*file).txt']) // [] +``` + +Refers to Bash. You need to escape special characters: + +```js +fg.sync(['\\(special-*file\\).txt']) // ['(special-*file).txt'] +``` + +Read more about [matching special characters as literals][picomatch_matching_special_characters_as_literals]. + +## How to exclude directory from reading? + +You can use a negative pattern like this: `!**/node_modules` or `!**/node_modules/**`. Also you can use [`ignore`](#ignore) option. Just look at the example below. + +```js +first/ +├── file.md +└── second/ + └── file.txt +``` + +If you don't want to read the `second` directory, you must write the following pattern: `!**/second` or `!**/second/**`. + +```js +fg.sync(['**/*.md', '!**/second']); // ['first/file.md'] +fg.sync(['**/*.md'], { ignore: ['**/second/**'] }); // ['first/file.md'] +``` + +> :warning: When you write `!**/second/**/*` it means that the directory will be **read**, but all the entries will not be included in the results. + +You have to understand that if you write the pattern to exclude directories, then the directory will not be read under any circumstances. + +## How to use UNC path? + +You cannot use [Uniform Naming Convention (UNC)][unc_path] paths as patterns (due to syntax), but you can use them as [`cwd`](#cwd) directory. + +```ts +fg.sync('*', { cwd: '\\\\?\\C:\\Python27' /* or //?/C:/Python27 */ }); +fg.sync('Python27/*', { cwd: '\\\\?\\C:\\' /* or //?/C:/ */ }); +``` + +## Compatible with `node-glob`? + +| node-glob | fast-glob | +| :----------: | :-------: | +| `cwd` | [`cwd`](#cwd) | +| `root` | – | +| `dot` | [`dot`](#dot) | +| `nomount` | – | +| `mark` | [`markDirectories`](#markdirectories) | +| `nosort` | – | +| `nounique` | [`unique`](#unique) | +| `nobrace` | [`braceExpansion`](#braceexpansion) | +| `noglobstar` | [`globstar`](#globstar) | +| `noext` | [`extglob`](#extglob) | +| `nocase` | [`caseSensitiveMatch`](#casesensitivematch) | +| `matchBase` | [`baseNameMatch`](#basenamematch) | +| `nodir` | [`onlyFiles`](#onlyfiles) | +| `ignore` | [`ignore`](#ignore) | +| `follow` | [`followSymbolicLinks`](#followsymboliclinks) | +| `realpath` | – | +| `absolute` | [`absolute`](#absolute) | + +## Benchmarks + +### Server + +Link: [Vultr Bare Metal][vultr_pricing_baremetal] + +* Processor: E3-1270v6 (8 CPU) +* RAM: 32GB +* Disk: SSD ([Intel DC S3520 SSDSC2BB240G7][intel_ssd]) + +You can see results [here][github_gist_benchmark_server] for latest release. + +### Nettop + +Link: [Zotac bi323][zotac_bi323] + +* Processor: Intel N3150 (4 CPU) +* RAM: 8GB +* Disk: SSD ([Silicon Power SP060GBSS3S55S25][silicon_power_ssd]) + +You can see results [here][github_gist_benchmark_nettop] for latest release. + +## Changelog + +See the [Releases section of our GitHub project][github_releases] for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. + +[bash_hackers_syntax_expansion_brace]: https://wiki.bash-hackers.org/syntax/expansion/brace +[github_gist_benchmark_nettop]: https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fg-benchmark-nettop-product-txt +[github_gist_benchmark_server]: https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fg-benchmark-server-product-txt +[github_releases]: https://github.com/mrmlnc/fast-glob/releases +[glob_definition]: https://en.wikipedia.org/wiki/Glob_(programming) +[glob_linux_man]: http://man7.org/linux/man-pages/man3/glob.3.html +[intel_ssd]: https://ark.intel.com/content/www/us/en/ark/products/93012/intel-ssd-dc-s3520-series-240gb-2-5in-sata-6gb-s-3d1-mlc.html +[micromatch_backslashes]: https://github.com/micromatch/micromatch#backslashes +[micromatch_braces]: https://github.com/micromatch/braces +[micromatch_extended_globbing]: https://github.com/micromatch/micromatch#extended-globbing +[micromatch_extglobs]: https://github.com/micromatch/micromatch#extglobs +[micromatch_regex_character_classes]: https://github.com/micromatch/micromatch#regex-character-classes +[micromatch]: https://github.com/micromatch/micromatch +[node_js_fs_class_fs_dirent]: https://nodejs.org/api/fs.html#fs_class_fs_dirent +[node_js_fs_class_fs_stats]: https://nodejs.org/api/fs.html#fs_class_fs_stats +[node_js_stream_readable_streams]: https://nodejs.org/api/stream.html#stream_readable_streams +[node_js]: https://nodejs.org/en +[nodelib_fs_scandir_old_and_modern_modern]: https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode +[npm_normalize_path]: https://www.npmjs.com/package/normalize-path +[npm_unixify]: https://www.npmjs.com/package/unixify +[paypal_mrmlnc]:https://paypal.me/mrmlnc +[picomatch_matching_behavior]: https://github.com/micromatch/picomatch#matching-behavior-vs-bash +[picomatch_matching_special_characters_as_literals]: https://github.com/micromatch/picomatch#matching-special-characters-as-literals +[picomatch_posix_brackets]: https://github.com/micromatch/picomatch#posix-brackets +[regular_expressions_brackets]: https://www.regular-expressions.info/brackets.html +[silicon_power_ssd]: https://www.silicon-power.com/web/product-1 +[unc_path]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/62e862f4-2a51-452e-8eeb-dc4ff5ee33cc +[vultr_pricing_baremetal]: https://www.vultr.com/pricing/baremetal +[wikipedia_case_sensitivity]: https://en.wikipedia.org/wiki/Case_sensitivity +[zotac_bi323]: https://www.zotac.com/ee/product/mini_pcs/zbox-bi323 diff --git a/node_modules/fast-glob/node_modules/glob-parent/CHANGELOG.md b/node_modules/fast-glob/node_modules/glob-parent/CHANGELOG.md new file mode 100644 index 0000000..fb9de96 --- /dev/null +++ b/node_modules/fast-glob/node_modules/glob-parent/CHANGELOG.md @@ -0,0 +1,110 @@ +### [5.1.2](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2) (2021-03-06) + + +### Bug Fixes + +* eliminate ReDoS ([#36](https://github.com/gulpjs/glob-parent/issues/36)) ([f923116](https://github.com/gulpjs/glob-parent/commit/f9231168b0041fea3f8f954b3cceb56269fc6366)) + +### [5.1.1](https://github.com/gulpjs/glob-parent/compare/v5.1.0...v5.1.1) (2021-01-27) + + +### Bug Fixes + +* unescape exclamation mark ([#26](https://github.com/gulpjs/glob-parent/issues/26)) ([a98874f](https://github.com/gulpjs/glob-parent/commit/a98874f1a59e407f4fb1beb0db4efa8392da60bb)) + +## [5.1.0](https://github.com/gulpjs/glob-parent/compare/v5.0.0...v5.1.0) (2021-01-27) + + +### Features + +* add `flipBackslashes` option to disable auto conversion of slashes (closes [#24](https://github.com/gulpjs/glob-parent/issues/24)) ([#25](https://github.com/gulpjs/glob-parent/issues/25)) ([eecf91d](https://github.com/gulpjs/glob-parent/commit/eecf91d5e3834ed78aee39c4eaaae654d76b87b3)) + +## [5.0.0](https://github.com/gulpjs/glob-parent/compare/v4.0.0...v5.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* Drop support for node <6 & bump dependencies + +### Miscellaneous Chores + +* Drop support for node <6 & bump dependencies ([896c0c0](https://github.com/gulpjs/glob-parent/commit/896c0c00b4e7362f60b96e7fc295ae929245255a)) + +## [4.0.0](https://github.com/gulpjs/glob-parent/compare/v3.1.0...v4.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* question marks are valid path characters on Windows so avoid flagging as a glob when alone +* Update is-glob dependency + +### Features + +* hoist regexps and strings for performance gains ([4a80667](https://github.com/gulpjs/glob-parent/commit/4a80667c69355c76a572a5892b0f133c8e1f457e)) +* question marks are valid path characters on Windows so avoid flagging as a glob when alone ([2a551dd](https://github.com/gulpjs/glob-parent/commit/2a551dd0dc3235e78bf3c94843d4107072d17841)) +* Update is-glob dependency ([e41fcd8](https://github.com/gulpjs/glob-parent/commit/e41fcd895d1f7bc617dba45c9d935a7949b9c281)) + +## [3.1.0](https://github.com/gulpjs/glob-parent/compare/v3.0.1...v3.1.0) (2021-01-27) + + +### Features + +* allow basic win32 backslash use ([272afa5](https://github.com/gulpjs/glob-parent/commit/272afa5fd070fc0f796386a5993d4ee4a846988b)) +* handle extglobs (parentheses) containing separators ([7db1bdb](https://github.com/gulpjs/glob-parent/commit/7db1bdb0756e55fd14619e8ce31aa31b17b117fd)) +* new approach to braces/brackets handling ([8269bd8](https://github.com/gulpjs/glob-parent/commit/8269bd89290d99fac9395a354fb56fdcdb80f0be)) +* pre-process braces/brackets sections ([9ef8a87](https://github.com/gulpjs/glob-parent/commit/9ef8a87f66b1a43d0591e7a8e4fc5a18415ee388)) +* preserve escaped brace/bracket at end of string ([8cfb0ba](https://github.com/gulpjs/glob-parent/commit/8cfb0ba84202d51571340dcbaf61b79d16a26c76)) + + +### Bug Fixes + +* trailing escaped square brackets ([99ec9fe](https://github.com/gulpjs/glob-parent/commit/99ec9fecc60ee488ded20a94dd4f18b4f55c4ccf)) + +### [3.0.1](https://github.com/gulpjs/glob-parent/compare/v3.0.0...v3.0.1) (2021-01-27) + + +### Features + +* use path-dirname ponyfill ([cdbea5f](https://github.com/gulpjs/glob-parent/commit/cdbea5f32a58a54e001a75ddd7c0fccd4776aacc)) + + +### Bug Fixes + +* unescape glob-escaped dirnames on output ([598c533](https://github.com/gulpjs/glob-parent/commit/598c533bdf49c1428bc063aa9b8db40c5a86b030)) + +## [3.0.0](https://github.com/gulpjs/glob-parent/compare/v2.0.0...v3.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* update is-glob dependency + +### Features + +* update is-glob dependency ([5c5f8ef](https://github.com/gulpjs/glob-parent/commit/5c5f8efcee362a8e7638cf8220666acd8784f6bd)) + +## [2.0.0](https://github.com/gulpjs/glob-parent/compare/v1.3.0...v2.0.0) (2021-01-27) + + +### Features + +* move up to dirname regardless of glob characters ([f97fb83](https://github.com/gulpjs/glob-parent/commit/f97fb83be2e0a9fc8d3b760e789d2ecadd6aa0c2)) + +## [1.3.0](https://github.com/gulpjs/glob-parent/compare/v1.2.0...v1.3.0) (2021-01-27) + +## [1.2.0](https://github.com/gulpjs/glob-parent/compare/v1.1.0...v1.2.0) (2021-01-27) + + +### Reverts + +* feat: make regex test strings smaller ([dc80fa9](https://github.com/gulpjs/glob-parent/commit/dc80fa9658dca20549cfeba44bbd37d5246fcce0)) + +## [1.1.0](https://github.com/gulpjs/glob-parent/compare/v1.0.0...v1.1.0) (2021-01-27) + + +### Features + +* make regex test strings smaller ([cd83220](https://github.com/gulpjs/glob-parent/commit/cd832208638f45169f986d80fcf66e401f35d233)) + +## 1.0.0 (2021-01-27) + diff --git a/node_modules/fast-glob/node_modules/glob-parent/LICENSE b/node_modules/fast-glob/node_modules/glob-parent/LICENSE new file mode 100644 index 0000000..63222d7 --- /dev/null +++ b/node_modules/fast-glob/node_modules/glob-parent/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2015, 2019 Elan Shanker + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/fast-glob/node_modules/glob-parent/README.md b/node_modules/fast-glob/node_modules/glob-parent/README.md new file mode 100644 index 0000000..36a2793 --- /dev/null +++ b/node_modules/fast-glob/node_modules/glob-parent/README.md @@ -0,0 +1,137 @@ +

+ + + +

+ +# glob-parent + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Azure Pipelines Build Status][azure-pipelines-image]][azure-pipelines-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url] + +Extract the non-magic parent path from a glob string. + +## Usage + +```js +var globParent = require('glob-parent'); + +globParent('path/to/*.js'); // 'path/to' +globParent('/root/path/to/*.js'); // '/root/path/to' +globParent('/*.js'); // '/' +globParent('*.js'); // '.' +globParent('**/*.js'); // '.' +globParent('path/{to,from}'); // 'path' +globParent('path/!(to|from)'); // 'path' +globParent('path/?(to|from)'); // 'path' +globParent('path/+(to|from)'); // 'path' +globParent('path/*(to|from)'); // 'path' +globParent('path/@(to|from)'); // 'path' +globParent('path/**/*'); // 'path' + +// if provided a non-glob path, returns the nearest dir +globParent('path/foo/bar.js'); // 'path/foo' +globParent('path/foo/'); // 'path/foo' +globParent('path/foo'); // 'path' (see issue #3 for details) +``` + +## API + +### `globParent(maybeGlobString, [options])` + +Takes a string and returns the part of the path before the glob begins. Be aware of Escaping rules and Limitations below. + +#### options + +```js +{ + // Disables the automatic conversion of slashes for Windows + flipBackslashes: true +} +``` + +## Escaping + +The following characters have special significance in glob patterns and must be escaped if you want them to be treated as regular path characters: + +- `?` (question mark) unless used as a path segment alone +- `*` (asterisk) +- `|` (pipe) +- `(` (opening parenthesis) +- `)` (closing parenthesis) +- `{` (opening curly brace) +- `}` (closing curly brace) +- `[` (opening bracket) +- `]` (closing bracket) + +**Example** + +```js +globParent('foo/[bar]/') // 'foo' +globParent('foo/\\[bar]/') // 'foo/[bar]' +``` + +## Limitations + +### Braces & Brackets +This library attempts a quick and imperfect method of determining which path +parts have glob magic without fully parsing/lexing the pattern. There are some +advanced use cases that can trip it up, such as nested braces where the outer +pair is escaped and the inner one contains a path separator. If you find +yourself in the unlikely circumstance of being affected by this or need to +ensure higher-fidelity glob handling in your library, it is recommended that you +pre-process your input with [expand-braces] and/or [expand-brackets]. + +### Windows +Backslashes are not valid path separators for globs. If a path with backslashes +is provided anyway, for simple cases, glob-parent will replace the path +separator for you and return the non-glob parent path (now with +forward-slashes, which are still valid as Windows path separators). + +This cannot be used in conjunction with escape characters. + +```js +// BAD +globParent('C:\\Program Files \\(x86\\)\\*.ext') // 'C:/Program Files /(x86/)' + +// GOOD +globParent('C:/Program Files\\(x86\\)/*.ext') // 'C:/Program Files (x86)' +``` + +If you are using escape characters for a pattern without path parts (i.e. +relative to `cwd`), prefix with `./` to avoid confusing glob-parent. + +```js +// BAD +globParent('foo \\[bar]') // 'foo ' +globParent('foo \\[bar]*') // 'foo ' + +// GOOD +globParent('./foo \\[bar]') // 'foo [bar]' +globParent('./foo \\[bar]*') // '.' +``` + +## License + +ISC + +[expand-braces]: https://github.com/jonschlinkert/expand-braces +[expand-brackets]: https://github.com/jonschlinkert/expand-brackets + +[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg +[npm-url]: https://www.npmjs.com/package/glob-parent +[npm-image]: https://img.shields.io/npm/v/glob-parent.svg + +[azure-pipelines-url]: https://dev.azure.com/gulpjs/gulp/_build/latest?definitionId=2&branchName=master +[azure-pipelines-image]: https://dev.azure.com/gulpjs/gulp/_apis/build/status/glob-parent?branchName=master + +[travis-url]: https://travis-ci.org/gulpjs/glob-parent +[travis-image]: https://img.shields.io/travis/gulpjs/glob-parent.svg?label=travis-ci + +[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glob-parent +[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glob-parent.svg?label=appveyor + +[coveralls-url]: https://coveralls.io/r/gulpjs/glob-parent +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg + +[gitter-url]: https://gitter.im/gulpjs/gulp +[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg diff --git a/node_modules/fast-glob/node_modules/glob-parent/index.js b/node_modules/fast-glob/node_modules/glob-parent/index.js new file mode 100644 index 0000000..09e257e --- /dev/null +++ b/node_modules/fast-glob/node_modules/glob-parent/index.js @@ -0,0 +1,42 @@ +'use strict'; + +var isGlob = require('is-glob'); +var pathPosixDirname = require('path').posix.dirname; +var isWin32 = require('os').platform() === 'win32'; + +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + +/** + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} + */ +module.exports = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); + + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + + // special case for strings ending in enclosure containing path separator + if (enclosure.test(str)) { + str += slash; + } + + // preserves full path in case of trailing path separator + str += 'a'; + + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); + + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; diff --git a/node_modules/fast-glob/node_modules/glob-parent/package.json b/node_modules/fast-glob/node_modules/glob-parent/package.json new file mode 100644 index 0000000..125c971 --- /dev/null +++ b/node_modules/fast-glob/node_modules/glob-parent/package.json @@ -0,0 +1,48 @@ +{ + "name": "glob-parent", + "version": "5.1.2", + "description": "Extract the non-magic parent path from a glob string.", + "author": "Gulp Team (https://gulpjs.com/)", + "contributors": [ + "Elan Shanker (https://github.com/es128)", + "Blaine Bublitz " + ], + "repository": "gulpjs/glob-parent", + "license": "ISC", + "engines": { + "node": ">= 6" + }, + "main": "index.js", + "files": [ + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "pretest": "npm run lint", + "test": "nyc mocha --async-only", + "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "dependencies": { + "is-glob": "^4.0.1" + }, + "devDependencies": { + "coveralls": "^3.0.11", + "eslint": "^2.13.1", + "eslint-config-gulp": "^3.0.1", + "expect": "^1.20.2", + "mocha": "^6.0.2", + "nyc": "^13.3.0" + }, + "keywords": [ + "glob", + "parent", + "strip", + "path", + "dirname", + "directory", + "base", + "wildcard" + ] +} diff --git a/node_modules/fast-glob/out/index.d.ts b/node_modules/fast-glob/out/index.d.ts new file mode 100644 index 0000000..54daa45 --- /dev/null +++ b/node_modules/fast-glob/out/index.d.ts @@ -0,0 +1,27 @@ +/// +import * as taskManager from './managers/tasks'; +import { Options as OptionsInternal } from './settings'; +import { Entry as EntryInternal, FileSystemAdapter as FileSystemAdapterInternal, Pattern as PatternInternal } from './types'; +declare type EntryObjectModePredicate = { + [TKey in keyof Pick]-?: true; +}; +declare type EntryStatsPredicate = { + [TKey in keyof Pick]-?: true; +}; +declare type EntryObjectPredicate = EntryObjectModePredicate | EntryStatsPredicate; +declare function FastGlob(source: PatternInternal | PatternInternal[], options: OptionsInternal & EntryObjectPredicate): Promise; +declare function FastGlob(source: PatternInternal | PatternInternal[], options?: OptionsInternal): Promise; +declare namespace FastGlob { + type Options = OptionsInternal; + type Entry = EntryInternal; + type Task = taskManager.Task; + type Pattern = PatternInternal; + type FileSystemAdapter = FileSystemAdapterInternal; + function sync(source: PatternInternal | PatternInternal[], options: OptionsInternal & EntryObjectPredicate): EntryInternal[]; + function sync(source: PatternInternal | PatternInternal[], options?: OptionsInternal): string[]; + function stream(source: PatternInternal | PatternInternal[], options?: OptionsInternal): NodeJS.ReadableStream; + function generateTasks(source: PatternInternal | PatternInternal[], options?: OptionsInternal): Task[]; + function isDynamicPattern(source: PatternInternal, options?: OptionsInternal): boolean; + function escapePath(source: PatternInternal): PatternInternal; +} +export = FastGlob; diff --git a/node_modules/fast-glob/out/index.js b/node_modules/fast-glob/out/index.js new file mode 100644 index 0000000..5397852 --- /dev/null +++ b/node_modules/fast-glob/out/index.js @@ -0,0 +1,68 @@ +"use strict"; +const taskManager = require("./managers/tasks"); +const patternManager = require("./managers/patterns"); +const async_1 = require("./providers/async"); +const stream_1 = require("./providers/stream"); +const sync_1 = require("./providers/sync"); +const settings_1 = require("./settings"); +const utils = require("./utils"); +async function FastGlob(source, options) { + assertPatternsInput(source); + const works = getWorks(source, async_1.default, options); + const result = await Promise.all(works); + return utils.array.flatten(result); +} +// https://github.com/typescript-eslint/typescript-eslint/issues/60 +// eslint-disable-next-line no-redeclare +(function (FastGlob) { + function sync(source, options) { + assertPatternsInput(source); + const works = getWorks(source, sync_1.default, options); + return utils.array.flatten(works); + } + FastGlob.sync = sync; + function stream(source, options) { + assertPatternsInput(source); + const works = getWorks(source, stream_1.default, options); + /** + * The stream returned by the provider cannot work with an asynchronous iterator. + * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. + * This affects performance (+25%). I don't see best solution right now. + */ + return utils.stream.merge(works); + } + FastGlob.stream = stream; + function generateTasks(source, options) { + assertPatternsInput(source); + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + return taskManager.generate(patterns, settings); + } + FastGlob.generateTasks = generateTasks; + function isDynamicPattern(source, options) { + assertPatternsInput(source); + const settings = new settings_1.default(options); + return utils.pattern.isDynamicPattern(source, settings); + } + FastGlob.isDynamicPattern = isDynamicPattern; + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escape(source); + } + FastGlob.escapePath = escapePath; +})(FastGlob || (FastGlob = {})); +function getWorks(source, _Provider, options) { + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + const tasks = taskManager.generate(patterns, settings); + const provider = new _Provider(settings); + return tasks.map(provider.read, provider); +} +function assertPatternsInput(input) { + const source = [].concat(input); + const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item)); + if (!isValidSource) { + throw new TypeError('Patterns must be a string (non empty) or an array of strings'); + } +} +module.exports = FastGlob; diff --git a/node_modules/fast-glob/out/managers/patterns.d.ts b/node_modules/fast-glob/out/managers/patterns.d.ts new file mode 100644 index 0000000..2a7d7ae --- /dev/null +++ b/node_modules/fast-glob/out/managers/patterns.d.ts @@ -0,0 +1,6 @@ +export declare function transform(patterns: string[]): string[]; +/** + * This package only works with forward slashes as a path separator. + * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. + */ +export declare function removeDuplicateSlashes(pattern: string): string; diff --git a/node_modules/fast-glob/out/managers/patterns.js b/node_modules/fast-glob/out/managers/patterns.js new file mode 100644 index 0000000..a2f0593 --- /dev/null +++ b/node_modules/fast-glob/out/managers/patterns.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeDuplicateSlashes = exports.transform = void 0; +/** + * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string. + * The latter is due to the presence of the device path at the beginning of the UNC path. + * @todo rewrite to negative lookbehind with the next major release. + */ +const DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; +function transform(patterns) { + return patterns.map((pattern) => removeDuplicateSlashes(pattern)); +} +exports.transform = transform; +/** + * This package only works with forward slashes as a path separator. + * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. + */ +function removeDuplicateSlashes(pattern) { + return pattern.replace(DOUBLE_SLASH_RE, '/'); +} +exports.removeDuplicateSlashes = removeDuplicateSlashes; diff --git a/node_modules/fast-glob/out/managers/tasks.d.ts b/node_modules/fast-glob/out/managers/tasks.d.ts new file mode 100644 index 0000000..aa746a8 --- /dev/null +++ b/node_modules/fast-glob/out/managers/tasks.d.ts @@ -0,0 +1,22 @@ +import Settings from '../settings'; +import { Pattern, PatternsGroup } from '../types'; +export declare type Task = { + base: string; + dynamic: boolean; + patterns: Pattern[]; + positive: Pattern[]; + negative: Pattern[]; +}; +export declare function generate(patterns: Pattern[], settings: Settings): Task[]; +/** + * Returns tasks grouped by basic pattern directories. + * + * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. + * This is necessary because directory traversal starts at the base directory and goes deeper. + */ +export declare function convertPatternsToTasks(positive: Pattern[], negative: Pattern[], dynamic: boolean): Task[]; +export declare function getPositivePatterns(patterns: Pattern[]): Pattern[]; +export declare function getNegativePatternsAsPositive(patterns: Pattern[], ignore: Pattern[]): Pattern[]; +export declare function groupPatternsByBaseDirectory(patterns: Pattern[]): PatternsGroup; +export declare function convertPatternGroupsToTasks(positive: PatternsGroup, negative: Pattern[], dynamic: boolean): Task[]; +export declare function convertPatternGroupToTask(base: string, positive: Pattern[], negative: Pattern[], dynamic: boolean): Task; diff --git a/node_modules/fast-glob/out/managers/tasks.js b/node_modules/fast-glob/out/managers/tasks.js new file mode 100644 index 0000000..b69ce87 --- /dev/null +++ b/node_modules/fast-glob/out/managers/tasks.js @@ -0,0 +1,80 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; +const utils = require("../utils"); +function generate(patterns, settings) { + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); + const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true); + return staticTasks.concat(dynamicTasks); +} +exports.generate = generate; +/** + * Returns tasks grouped by basic pattern directories. + * + * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. + * This is necessary because directory traversal starts at the base directory and goes deeper. + */ +function convertPatternsToTasks(positive, negative, dynamic) { + const tasks = []; + const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive); + const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive); + const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); + const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); + tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); + /* + * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory + * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest. + */ + if ('.' in insideCurrentDirectoryGroup) { + tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic)); + } + else { + tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); + } + return tasks; +} +exports.convertPatternsToTasks = convertPatternsToTasks; +function getPositivePatterns(patterns) { + return utils.pattern.getPositivePatterns(patterns); +} +exports.getPositivePatterns = getPositivePatterns; +function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils.pattern.convertToPositivePattern); + return positive; +} +exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; +function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils.pattern.getBaseDirectory(pattern); + if (base in collection) { + collection[base].push(pattern); + } + else { + collection[base] = [pattern]; + } + return collection; + }, group); +} +exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; +function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map((base) => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); +} +exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; +function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern)) + }; +} +exports.convertPatternGroupToTask = convertPatternGroupToTask; diff --git a/node_modules/fast-glob/out/providers/async.d.ts b/node_modules/fast-glob/out/providers/async.d.ts new file mode 100644 index 0000000..14665b1 --- /dev/null +++ b/node_modules/fast-glob/out/providers/async.d.ts @@ -0,0 +1,9 @@ +import { Task } from '../managers/tasks'; +import { Entry, EntryItem, ReaderOptions } from '../types'; +import ReaderAsync from '../readers/async'; +import Provider from './provider'; +export default class ProviderAsync extends Provider> { + protected _reader: ReaderAsync; + read(task: Task): Promise; + api(root: string, task: Task, options: ReaderOptions): Promise; +} diff --git a/node_modules/fast-glob/out/providers/async.js b/node_modules/fast-glob/out/providers/async.js new file mode 100644 index 0000000..c8732e0 --- /dev/null +++ b/node_modules/fast-glob/out/providers/async.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const async_1 = require("../readers/async"); +const provider_1 = require("./provider"); +class ProviderAsync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new async_1.default(this._settings); + } + async read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = await this.api(root, task, options); + return entries.map((entry) => options.transform(entry)); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderAsync; diff --git a/node_modules/fast-glob/out/providers/filters/deep.d.ts b/node_modules/fast-glob/out/providers/filters/deep.d.ts new file mode 100644 index 0000000..22586a9 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/deep.d.ts @@ -0,0 +1,16 @@ +import { MicromatchOptions, EntryFilterFunction, Pattern } from '../../types'; +import Settings from '../../settings'; +export default class DeepFilter { + private readonly _settings; + private readonly _micromatchOptions; + constructor(_settings: Settings, _micromatchOptions: MicromatchOptions); + getFilter(basePath: string, positive: Pattern[], negative: Pattern[]): EntryFilterFunction; + private _getMatcher; + private _getNegativePatternsRe; + private _filter; + private _isSkippedByDeep; + private _getEntryLevel; + private _isSkippedSymbolicLink; + private _isSkippedByPositivePatterns; + private _isSkippedByNegativePatterns; +} diff --git a/node_modules/fast-glob/out/providers/filters/deep.js b/node_modules/fast-glob/out/providers/filters/deep.js new file mode 100644 index 0000000..819c260 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/deep.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +const partial_1 = require("../matchers/partial"); +class DeepFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + } + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); + const negativeRe = this._getNegativePatternsRe(negative); + return (entry) => this._filter(basePath, entry, matcher, negativeRe); + } + _getMatcher(patterns) { + return new partial_1.default(patterns, this._settings, this._micromatchOptions); + } + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern); + return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; + } + if (this._isSkippedSymbolicLink(entry)) { + return false; + } + const filepath = utils.path.removeLeadingDotSegment(entry.path); + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; + } + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } + _isSkippedByDeep(basePath, entryPath) { + /** + * Avoid unnecessary depth calculations when it doesn't matter. + */ + if (this._settings.deep === Infinity) { + return false; + } + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; + } + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split('/').length; + if (basePath === '') { + return entryPathDepth; + } + const basePathDepth = basePath.split('/').length; + return entryPathDepth - basePathDepth; + } + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils.pattern.matchAny(entryPath, patternsRe); + } +} +exports.default = DeepFilter; diff --git a/node_modules/fast-glob/out/providers/filters/entry.d.ts b/node_modules/fast-glob/out/providers/filters/entry.d.ts new file mode 100644 index 0000000..2f21c43 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/entry.d.ts @@ -0,0 +1,16 @@ +import Settings from '../../settings'; +import { EntryFilterFunction, MicromatchOptions, Pattern } from '../../types'; +export default class EntryFilter { + private readonly _settings; + private readonly _micromatchOptions; + readonly index: Map; + constructor(_settings: Settings, _micromatchOptions: MicromatchOptions); + getFilter(positive: Pattern[], negative: Pattern[]): EntryFilterFunction; + private _filter; + private _isDuplicateEntry; + private _createIndexRecord; + private _onlyFileFilter; + private _onlyDirectoryFilter; + private _isSkippedByAbsoluteNegativePatterns; + private _isMatchToPatterns; +} diff --git a/node_modules/fast-glob/out/providers/filters/entry.js b/node_modules/fast-glob/out/providers/filters/entry.js new file mode 100644 index 0000000..bf11320 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/entry.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class EntryFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = new Map(); + } + getFilter(positive, negative) { + const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions); + return (entry) => this._filter(entry, positiveRe, negativeRe); + } + _filter(entry, positiveRe, negativeRe) { + if (this._settings.unique && this._isDuplicateEntry(entry)) { + return false; + } + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; + } + if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + return false; + } + const filepath = this._settings.baseNameMatch ? entry.name : entry.path; + const isDirectory = entry.dirent.isDirectory(); + const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(entry.path, negativeRe, isDirectory); + if (this._settings.unique && isMatched) { + this._createIndexRecord(entry); + } + return isMatched; + } + _isDuplicateEntry(entry) { + return this.index.has(entry.path); + } + _createIndexRecord(entry) { + this.index.set(entry.path, undefined); + } + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); + } + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; + } + const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath); + return utils.pattern.matchAny(fullpath, patternsRe); + } + _isMatchToPatterns(entryPath, patternsRe, isDirectory) { + const filepath = utils.path.removeLeadingDotSegment(entryPath); + // Trying to match files and directories by patterns. + const isMatched = utils.pattern.matchAny(filepath, patternsRe); + // A pattern with a trailling slash can be used for directory matching. + // To apply such pattern, we need to add a tralling slash to the path. + if (!isMatched && isDirectory) { + return utils.pattern.matchAny(filepath + '/', patternsRe); + } + return isMatched; + } +} +exports.default = EntryFilter; diff --git a/node_modules/fast-glob/out/providers/filters/error.d.ts b/node_modules/fast-glob/out/providers/filters/error.d.ts new file mode 100644 index 0000000..1e9d738 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/error.d.ts @@ -0,0 +1,8 @@ +import Settings from '../../settings'; +import { ErrorFilterFunction } from '../../types'; +export default class ErrorFilter { + private readonly _settings; + constructor(_settings: Settings); + getFilter(): ErrorFilterFunction; + private _isNonFatalError; +} diff --git a/node_modules/fast-glob/out/providers/filters/error.js b/node_modules/fast-glob/out/providers/filters/error.js new file mode 100644 index 0000000..f93bdc0 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/error.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class ErrorFilter { + constructor(_settings) { + this._settings = _settings; + } + getFilter() { + return (error) => this._isNonFatalError(error); + } + _isNonFatalError(error) { + return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + } +} +exports.default = ErrorFilter; diff --git a/node_modules/fast-glob/out/providers/matchers/matcher.d.ts b/node_modules/fast-glob/out/providers/matchers/matcher.d.ts new file mode 100644 index 0000000..fde0bd5 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/matcher.d.ts @@ -0,0 +1,33 @@ +import { Pattern, MicromatchOptions, PatternRe } from '../../types'; +import Settings from '../../settings'; +export declare type PatternSegment = StaticPatternSegment | DynamicPatternSegment; +declare type StaticPatternSegment = { + dynamic: false; + pattern: Pattern; +}; +declare type DynamicPatternSegment = { + dynamic: true; + pattern: Pattern; + patternRe: PatternRe; +}; +export declare type PatternSection = PatternSegment[]; +export declare type PatternInfo = { + /** + * Indicates that the pattern has a globstar (more than a single section). + */ + complete: boolean; + pattern: Pattern; + segments: PatternSegment[]; + sections: PatternSection[]; +}; +export default abstract class Matcher { + private readonly _patterns; + private readonly _settings; + private readonly _micromatchOptions; + protected readonly _storage: PatternInfo[]; + constructor(_patterns: Pattern[], _settings: Settings, _micromatchOptions: MicromatchOptions); + private _fillStorage; + private _getPatternSegments; + private _splitSegmentsIntoSections; +} +export {}; diff --git a/node_modules/fast-glob/out/providers/matchers/matcher.js b/node_modules/fast-glob/out/providers/matchers/matcher.js new file mode 100644 index 0000000..44b2cc7 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/matcher.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class Matcher { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; + this._fillStorage(); + } + _fillStorage() { + /** + * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level). + * So, before expand patterns with brace expansion into separated patterns. + */ + const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns); + for (const pattern of patterns) { + const segments = this._getPatternSegments(pattern); + const sections = this._splitSegmentsIntoSections(segments); + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); + } + } + _getPatternSegments(pattern) { + const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map((part) => { + const dynamic = utils.pattern.isDynamicPattern(part, this._settings); + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } + return { + dynamic: true, + pattern: part, + patternRe: utils.pattern.makeRe(part, this._micromatchOptions) + }; + }); + } + _splitSegmentsIntoSections(segments) { + return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern)); + } +} +exports.default = Matcher; diff --git a/node_modules/fast-glob/out/providers/matchers/partial.d.ts b/node_modules/fast-glob/out/providers/matchers/partial.d.ts new file mode 100644 index 0000000..a5c93ba --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/partial.d.ts @@ -0,0 +1,4 @@ +import Matcher from './matcher'; +export default class PartialMatcher extends Matcher { + match(filepath: string): boolean; +} diff --git a/node_modules/fast-glob/out/providers/matchers/partial.js b/node_modules/fast-glob/out/providers/matchers/partial.js new file mode 100644 index 0000000..f6a77e0 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/partial.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const matcher_1 = require("./matcher"); +class PartialMatcher extends matcher_1.default { + match(filepath) { + const parts = filepath.split('/'); + const levels = parts.length; + const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels); + for (const pattern of patterns) { + const section = pattern.sections[0]; + /** + * In this case, the pattern has a globstar and we must read all directories unconditionally, + * but only if the level has reached the end of the first group. + * + * fixtures/{a,b}/** + * ^ true/false ^ always true + */ + if (!pattern.complete && levels > section.length) { + return true; + } + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } + if (!segment.dynamic && segment.pattern === part) { + return true; + } + return false; + }); + if (match) { + return true; + } + } + return false; + } +} +exports.default = PartialMatcher; diff --git a/node_modules/fast-glob/out/providers/provider.d.ts b/node_modules/fast-glob/out/providers/provider.d.ts new file mode 100644 index 0000000..ccafd17 --- /dev/null +++ b/node_modules/fast-glob/out/providers/provider.d.ts @@ -0,0 +1,19 @@ +import { Task } from '../managers/tasks'; +import Settings from '../settings'; +import { MicromatchOptions, ReaderOptions } from '../types'; +import DeepFilter from './filters/deep'; +import EntryFilter from './filters/entry'; +import ErrorFilter from './filters/error'; +import EntryTransformer from './transformers/entry'; +export default abstract class Provider { + protected readonly _settings: Settings; + readonly errorFilter: ErrorFilter; + readonly entryFilter: EntryFilter; + readonly deepFilter: DeepFilter; + readonly entryTransformer: EntryTransformer; + constructor(_settings: Settings); + abstract read(_task: Task): T; + protected _getRootDirectory(task: Task): string; + protected _getReaderOptions(task: Task): ReaderOptions; + protected _getMicromatchOptions(): MicromatchOptions; +} diff --git a/node_modules/fast-glob/out/providers/provider.js b/node_modules/fast-glob/out/providers/provider.js new file mode 100644 index 0000000..5afb389 --- /dev/null +++ b/node_modules/fast-glob/out/providers/provider.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const deep_1 = require("./filters/deep"); +const entry_1 = require("./filters/entry"); +const error_1 = require("./filters/error"); +const entry_2 = require("./transformers/entry"); +class Provider { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error_1.default(this._settings); + this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry_2.default(this._settings); + } + _getRootDirectory(task) { + return path.resolve(this._settings.cwd, task.base); + } + _getReaderOptions(task) { + const basePath = task.base === '.' ? '' : task.base; + return { + basePath, + pathSegmentSeparator: '/', + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.negative), + errorFilter: this.errorFilter.getFilter(), + followSymbolicLinks: this._settings.followSymbolicLinks, + fs: this._settings.fs, + stats: this._settings.stats, + throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, + transform: this.entryTransformer.getTransformer() + }; + } + _getMicromatchOptions() { + return { + dot: this._settings.dot, + matchBase: this._settings.baseNameMatch, + nobrace: !this._settings.braceExpansion, + nocase: !this._settings.caseSensitiveMatch, + noext: !this._settings.extglob, + noglobstar: !this._settings.globstar, + posix: true, + strictSlashes: false + }; + } +} +exports.default = Provider; diff --git a/node_modules/fast-glob/out/providers/stream.d.ts b/node_modules/fast-glob/out/providers/stream.d.ts new file mode 100644 index 0000000..bfa9201 --- /dev/null +++ b/node_modules/fast-glob/out/providers/stream.d.ts @@ -0,0 +1,11 @@ +/// +import { Readable } from 'stream'; +import { Task } from '../managers/tasks'; +import ReaderStream from '../readers/stream'; +import { ReaderOptions } from '../types'; +import Provider from './provider'; +export default class ProviderStream extends Provider { + protected _reader: ReaderStream; + read(task: Task): Readable; + api(root: string, task: Task, options: ReaderOptions): Readable; +} diff --git a/node_modules/fast-glob/out/providers/stream.js b/node_modules/fast-glob/out/providers/stream.js new file mode 100644 index 0000000..9e81c21 --- /dev/null +++ b/node_modules/fast-glob/out/providers/stream.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const stream_2 = require("../readers/stream"); +const provider_1 = require("./provider"); +class ProviderStream extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_2.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const source = this.api(root, task, options); + const destination = new stream_1.Readable({ objectMode: true, read: () => { } }); + source + .once('error', (error) => destination.emit('error', error)) + .on('data', (entry) => destination.emit('data', options.transform(entry))) + .once('end', () => destination.emit('end')); + destination + .once('close', () => source.destroy()); + return destination; + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderStream; diff --git a/node_modules/fast-glob/out/providers/sync.d.ts b/node_modules/fast-glob/out/providers/sync.d.ts new file mode 100644 index 0000000..5861db4 --- /dev/null +++ b/node_modules/fast-glob/out/providers/sync.d.ts @@ -0,0 +1,9 @@ +import { Task } from '../managers/tasks'; +import ReaderSync from '../readers/sync'; +import { Entry, EntryItem, ReaderOptions } from '../types'; +import Provider from './provider'; +export default class ProviderSync extends Provider { + protected _reader: ReaderSync; + read(task: Task): EntryItem[]; + api(root: string, task: Task, options: ReaderOptions): Entry[]; +} diff --git a/node_modules/fast-glob/out/providers/sync.js b/node_modules/fast-glob/out/providers/sync.js new file mode 100644 index 0000000..9ed8f7c --- /dev/null +++ b/node_modules/fast-glob/out/providers/sync.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sync_1 = require("../readers/sync"); +const provider_1 = require("./provider"); +class ProviderSync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new sync_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = this.api(root, task, options); + return entries.map(options.transform); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderSync; diff --git a/node_modules/fast-glob/out/providers/transformers/entry.d.ts b/node_modules/fast-glob/out/providers/transformers/entry.d.ts new file mode 100644 index 0000000..1874a38 --- /dev/null +++ b/node_modules/fast-glob/out/providers/transformers/entry.d.ts @@ -0,0 +1,8 @@ +import Settings from '../../settings'; +import { EntryTransformerFunction } from '../../types'; +export default class EntryTransformer { + private readonly _settings; + constructor(_settings: Settings); + getTransformer(): EntryTransformerFunction; + private _transform; +} diff --git a/node_modules/fast-glob/out/providers/transformers/entry.js b/node_modules/fast-glob/out/providers/transformers/entry.js new file mode 100644 index 0000000..3bef803 --- /dev/null +++ b/node_modules/fast-glob/out/providers/transformers/entry.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class EntryTransformer { + constructor(_settings) { + this._settings = _settings; + } + getTransformer() { + return (entry) => this._transform(entry); + } + _transform(entry) { + let filepath = entry.path; + if (this._settings.absolute) { + filepath = utils.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils.path.unixify(filepath); + } + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += '/'; + } + if (!this._settings.objectMode) { + return filepath; + } + return Object.assign(Object.assign({}, entry), { path: filepath }); + } +} +exports.default = EntryTransformer; diff --git a/node_modules/fast-glob/out/readers/async.d.ts b/node_modules/fast-glob/out/readers/async.d.ts new file mode 100644 index 0000000..4bfa296 --- /dev/null +++ b/node_modules/fast-glob/out/readers/async.d.ts @@ -0,0 +1,10 @@ +import * as fsWalk from '@nodelib/fs.walk'; +import { Entry, ReaderOptions, Pattern } from '../types'; +import Reader from './reader'; +import ReaderStream from './stream'; +export default class ReaderAsync extends Reader> { + protected _walkAsync: typeof fsWalk.walk; + protected _readerStream: ReaderStream; + dynamic(root: string, options: ReaderOptions): Promise; + static(patterns: Pattern[], options: ReaderOptions): Promise; +} diff --git a/node_modules/fast-glob/out/readers/async.js b/node_modules/fast-glob/out/readers/async.js new file mode 100644 index 0000000..c43e34a --- /dev/null +++ b/node_modules/fast-glob/out/readers/async.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +const stream_1 = require("./stream"); +class ReaderAsync extends reader_1.default { + constructor() { + super(...arguments); + this._walkAsync = fsWalk.walk; + this._readerStream = new stream_1.default(this._settings); + } + dynamic(root, options) { + return new Promise((resolve, reject) => { + this._walkAsync(root, options, (error, entries) => { + if (error === null) { + resolve(entries); + } + else { + reject(error); + } + }); + }); + } + async static(patterns, options) { + const entries = []; + const stream = this._readerStream.static(patterns, options); + // After #235, replace it with an asynchronous iterator. + return new Promise((resolve, reject) => { + stream.once('error', reject); + stream.on('data', (entry) => entries.push(entry)); + stream.once('end', () => resolve(entries)); + }); + } +} +exports.default = ReaderAsync; diff --git a/node_modules/fast-glob/out/readers/reader.d.ts b/node_modules/fast-glob/out/readers/reader.d.ts new file mode 100644 index 0000000..293b588 --- /dev/null +++ b/node_modules/fast-glob/out/readers/reader.d.ts @@ -0,0 +1,15 @@ +/// +import * as fs from 'fs'; +import * as fsStat from '@nodelib/fs.stat'; +import Settings from '../settings'; +import { Entry, ErrnoException, Pattern, ReaderOptions } from '../types'; +export default abstract class Reader { + protected readonly _settings: Settings; + protected readonly _fsStatSettings: fsStat.Settings; + constructor(_settings: Settings); + abstract dynamic(root: string, options: ReaderOptions): T; + abstract static(patterns: Pattern[], options: ReaderOptions): T; + protected _getFullEntryPath(filepath: string): string; + protected _makeEntry(stats: fs.Stats, pattern: Pattern): Entry; + protected _isFatalError(error: ErrnoException): boolean; +} diff --git a/node_modules/fast-glob/out/readers/reader.js b/node_modules/fast-glob/out/readers/reader.js new file mode 100644 index 0000000..9e9469c --- /dev/null +++ b/node_modules/fast-glob/out/readers/reader.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsStat = require("@nodelib/fs.stat"); +const utils = require("../utils"); +class Reader { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } + _getFullEntryPath(filepath) { + return path.resolve(this._settings.cwd, filepath); + } + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils.fs.createDirentFromStats(pattern, stats) + }; + if (this._settings.stats) { + entry.stats = stats; + } + return entry; + } + _isFatalError(error) { + return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + } +} +exports.default = Reader; diff --git a/node_modules/fast-glob/out/readers/stream.d.ts b/node_modules/fast-glob/out/readers/stream.d.ts new file mode 100644 index 0000000..b0c7018 --- /dev/null +++ b/node_modules/fast-glob/out/readers/stream.d.ts @@ -0,0 +1,14 @@ +/// +import { Readable } from 'stream'; +import * as fsStat from '@nodelib/fs.stat'; +import * as fsWalk from '@nodelib/fs.walk'; +import { Pattern, ReaderOptions } from '../types'; +import Reader from './reader'; +export default class ReaderStream extends Reader { + protected _walkStream: typeof fsWalk.walkStream; + protected _stat: typeof fsStat.stat; + dynamic(root: string, options: ReaderOptions): Readable; + static(patterns: Pattern[], options: ReaderOptions): Readable; + private _getEntry; + private _getStat; +} diff --git a/node_modules/fast-glob/out/readers/stream.js b/node_modules/fast-glob/out/readers/stream.js new file mode 100644 index 0000000..33b96f5 --- /dev/null +++ b/node_modules/fast-glob/out/readers/stream.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const fsStat = require("@nodelib/fs.stat"); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +class ReaderStream extends reader_1.default { + constructor() { + super(...arguments); + this._walkStream = fsWalk.walkStream; + this._stat = fsStat.stat; + } + dynamic(root, options) { + return this._walkStream(root, options); + } + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1.PassThrough({ objectMode: true }); + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options) + .then((entry) => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } + if (index === filepaths.length - 1) { + stream.end(); + } + done(); + }) + .catch(done); + }; + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); + } + return stream; + } + _getEntry(filepath, pattern, options) { + return this._getStat(filepath) + .then((stats) => this._makeEntry(stats, pattern)) + .catch((error) => { + if (options.errorFilter(error)) { + return null; + } + throw error; + }); + } + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); + }); + }); + } +} +exports.default = ReaderStream; diff --git a/node_modules/fast-glob/out/readers/sync.d.ts b/node_modules/fast-glob/out/readers/sync.d.ts new file mode 100644 index 0000000..1943ac6 --- /dev/null +++ b/node_modules/fast-glob/out/readers/sync.d.ts @@ -0,0 +1,12 @@ +import * as fsStat from '@nodelib/fs.stat'; +import * as fsWalk from '@nodelib/fs.walk'; +import { Entry, Pattern, ReaderOptions } from '../types'; +import Reader from './reader'; +export default class ReaderSync extends Reader { + protected _walkSync: typeof fsWalk.walkSync; + protected _statSync: typeof fsStat.statSync; + dynamic(root: string, options: ReaderOptions): Entry[]; + static(patterns: Pattern[], options: ReaderOptions): Entry[]; + private _getEntry; + private _getStat; +} diff --git a/node_modules/fast-glob/out/readers/sync.js b/node_modules/fast-glob/out/readers/sync.js new file mode 100644 index 0000000..c4e4a01 --- /dev/null +++ b/node_modules/fast-glob/out/readers/sync.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsStat = require("@nodelib/fs.stat"); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +class ReaderSync extends reader_1.default { + constructor() { + super(...arguments); + this._walkSync = fsWalk.walkSync; + this._statSync = fsStat.statSync; + } + dynamic(root, options) { + return this._walkSync(root, options); + } + static(patterns, options) { + const entries = []; + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); + const entry = this._getEntry(filepath, pattern, options); + if (entry === null || !options.entryFilter(entry)) { + continue; + } + entries.push(entry); + } + return entries; + } + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); + return this._makeEntry(stats, pattern); + } + catch (error) { + if (options.errorFilter(error)) { + return null; + } + throw error; + } + } + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } +} +exports.default = ReaderSync; diff --git a/node_modules/fast-glob/out/settings.d.ts b/node_modules/fast-glob/out/settings.d.ts new file mode 100644 index 0000000..4e97c9b --- /dev/null +++ b/node_modules/fast-glob/out/settings.d.ts @@ -0,0 +1,164 @@ +import { FileSystemAdapter, Pattern } from './types'; +export declare const DEFAULT_FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare type Options = { + /** + * Return the absolute path for entries. + * + * @default false + */ + absolute?: boolean; + /** + * If set to `true`, then patterns without slashes will be matched against + * the basename of the path if it contains slashes. + * + * @default false + */ + baseNameMatch?: boolean; + /** + * Enables Bash-like brace expansion. + * + * @default true + */ + braceExpansion?: boolean; + /** + * Enables a case-sensitive mode for matching files. + * + * @default true + */ + caseSensitiveMatch?: boolean; + /** + * Specifies the maximum number of concurrent requests from a reader to read + * directories. + * + * @default os.cpus().length + */ + concurrency?: number; + /** + * The current working directory in which to search. + * + * @default process.cwd() + */ + cwd?: string; + /** + * Specifies the maximum depth of a read directory relative to the start + * directory. + * + * @default Infinity + */ + deep?: number; + /** + * Allow patterns to match entries that begin with a period (`.`). + * + * @default false + */ + dot?: boolean; + /** + * Enables Bash-like `extglob` functionality. + * + * @default true + */ + extglob?: boolean; + /** + * Indicates whether to traverse descendants of symbolic link directories. + * + * @default true + */ + followSymbolicLinks?: boolean; + /** + * Custom implementation of methods for working with the file system. + * + * @default fs.* + */ + fs?: Partial; + /** + * Enables recursively repeats a pattern containing `**`. + * If `false`, `**` behaves exactly like `*`. + * + * @default true + */ + globstar?: boolean; + /** + * An array of glob patterns to exclude matches. + * This is an alternative way to use negative patterns. + * + * @default [] + */ + ignore?: Pattern[]; + /** + * Mark the directory path with the final slash. + * + * @default false + */ + markDirectories?: boolean; + /** + * Returns objects (instead of strings) describing entries. + * + * @default false + */ + objectMode?: boolean; + /** + * Return only directories. + * + * @default false + */ + onlyDirectories?: boolean; + /** + * Return only files. + * + * @default true + */ + onlyFiles?: boolean; + /** + * Enables an object mode (`objectMode`) with an additional `stats` field. + * + * @default false + */ + stats?: boolean; + /** + * By default this package suppress only `ENOENT` errors. + * Set to `true` to suppress any error. + * + * @default false + */ + suppressErrors?: boolean; + /** + * Throw an error when symbolic link is broken if `true` or safely + * return `lstat` call if `false`. + * + * @default false + */ + throwErrorOnBrokenSymbolicLink?: boolean; + /** + * Ensures that the returned entries are unique. + * + * @default true + */ + unique?: boolean; +}; +export default class Settings { + private readonly _options; + readonly absolute: boolean; + readonly baseNameMatch: boolean; + readonly braceExpansion: boolean; + readonly caseSensitiveMatch: boolean; + readonly concurrency: number; + readonly cwd: string; + readonly deep: number; + readonly dot: boolean; + readonly extglob: boolean; + readonly followSymbolicLinks: boolean; + readonly fs: FileSystemAdapter; + readonly globstar: boolean; + readonly ignore: Pattern[]; + readonly markDirectories: boolean; + readonly objectMode: boolean; + readonly onlyDirectories: boolean; + readonly onlyFiles: boolean; + readonly stats: boolean; + readonly suppressErrors: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + readonly unique: boolean; + constructor(_options?: Options); + private _getValue; + private _getFileSystemMethods; +} diff --git a/node_modules/fast-glob/out/settings.js b/node_modules/fast-glob/out/settings.js new file mode 100644 index 0000000..f95ac8f --- /dev/null +++ b/node_modules/fast-glob/out/settings.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +const os = require("os"); +/** + * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero. + * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107 + */ +const CPU_COUNT = Math.max(os.cpus().length, 1); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + lstatSync: fs.lstatSync, + stat: fs.stat, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +class Settings { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); + if (this.onlyDirectories) { + this.onlyFiles = false; + } + if (this.stats) { + this.objectMode = true; + } + } + _getValue(option, value) { + return option === undefined ? value : option; + } + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } +} +exports.default = Settings; diff --git a/node_modules/fast-glob/out/types/index.d.ts b/node_modules/fast-glob/out/types/index.d.ts new file mode 100644 index 0000000..e828689 --- /dev/null +++ b/node_modules/fast-glob/out/types/index.d.ts @@ -0,0 +1,31 @@ +/// +import * as fsWalk from '@nodelib/fs.walk'; +export declare type ErrnoException = NodeJS.ErrnoException; +export declare type Entry = fsWalk.Entry; +export declare type EntryItem = string | Entry; +export declare type Pattern = string; +export declare type PatternRe = RegExp; +export declare type PatternsGroup = Record; +export declare type ReaderOptions = fsWalk.Options & { + transform(entry: Entry): EntryItem; + deepFilter: DeepFilterFunction; + entryFilter: EntryFilterFunction; + errorFilter: ErrorFilterFunction; + fs: FileSystemAdapter; + stats: boolean; +}; +export declare type ErrorFilterFunction = fsWalk.ErrorFilterFunction; +export declare type EntryFilterFunction = fsWalk.EntryFilterFunction; +export declare type DeepFilterFunction = fsWalk.DeepFilterFunction; +export declare type EntryTransformerFunction = (entry: Entry) => EntryItem; +export declare type MicromatchOptions = { + dot?: boolean; + matchBase?: boolean; + nobrace?: boolean; + nocase?: boolean; + noext?: boolean; + noglobstar?: boolean; + posix?: boolean; + strictSlashes?: boolean; +}; +export declare type FileSystemAdapter = fsWalk.FileSystemAdapter; diff --git a/node_modules/fast-glob/out/types/index.js b/node_modules/fast-glob/out/types/index.js new file mode 100644 index 0000000..ce03781 --- /dev/null +++ b/node_modules/fast-glob/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fast-glob/out/utils/array.d.ts b/node_modules/fast-glob/out/utils/array.d.ts new file mode 100644 index 0000000..7e585bc --- /dev/null +++ b/node_modules/fast-glob/out/utils/array.d.ts @@ -0,0 +1,2 @@ +export declare function flatten(items: T[][]): T[]; +export declare function splitWhen(items: T[], predicate: (item: T) => boolean): T[][]; diff --git a/node_modules/fast-glob/out/utils/array.js b/node_modules/fast-glob/out/utils/array.js new file mode 100644 index 0000000..f43f114 --- /dev/null +++ b/node_modules/fast-glob/out/utils/array.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.splitWhen = exports.flatten = void 0; +function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); +} +exports.flatten = flatten; +function splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } + else { + result[groupIndex].push(item); + } + } + return result; +} +exports.splitWhen = splitWhen; diff --git a/node_modules/fast-glob/out/utils/errno.d.ts b/node_modules/fast-glob/out/utils/errno.d.ts new file mode 100644 index 0000000..0e52c0d --- /dev/null +++ b/node_modules/fast-glob/out/utils/errno.d.ts @@ -0,0 +1,2 @@ +import { ErrnoException } from '../types'; +export declare function isEnoentCodeError(error: ErrnoException): boolean; diff --git a/node_modules/fast-glob/out/utils/errno.js b/node_modules/fast-glob/out/utils/errno.js new file mode 100644 index 0000000..178ace6 --- /dev/null +++ b/node_modules/fast-glob/out/utils/errno.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEnoentCodeError = void 0; +function isEnoentCodeError(error) { + return error.code === 'ENOENT'; +} +exports.isEnoentCodeError = isEnoentCodeError; diff --git a/node_modules/fast-glob/out/utils/fs.d.ts b/node_modules/fast-glob/out/utils/fs.d.ts new file mode 100644 index 0000000..926c5ae --- /dev/null +++ b/node_modules/fast-glob/out/utils/fs.d.ts @@ -0,0 +1,4 @@ +/// +import * as fs from 'fs'; +import { Dirent } from '@nodelib/fs.walk'; +export declare function createDirentFromStats(name: string, stats: fs.Stats): Dirent; diff --git a/node_modules/fast-glob/out/utils/fs.js b/node_modules/fast-glob/out/utils/fs.js new file mode 100644 index 0000000..f15b8cf --- /dev/null +++ b/node_modules/fast-glob/out/utils/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; diff --git a/node_modules/fast-glob/out/utils/index.d.ts b/node_modules/fast-glob/out/utils/index.d.ts new file mode 100644 index 0000000..d3e4f8f --- /dev/null +++ b/node_modules/fast-glob/out/utils/index.d.ts @@ -0,0 +1,8 @@ +import * as array from './array'; +import * as errno from './errno'; +import * as fs from './fs'; +import * as path from './path'; +import * as pattern from './pattern'; +import * as stream from './stream'; +import * as string from './string'; +export { array, errno, fs, path, pattern, stream, string }; diff --git a/node_modules/fast-glob/out/utils/index.js b/node_modules/fast-glob/out/utils/index.js new file mode 100644 index 0000000..8fc6703 --- /dev/null +++ b/node_modules/fast-glob/out/utils/index.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; +const array = require("./array"); +exports.array = array; +const errno = require("./errno"); +exports.errno = errno; +const fs = require("./fs"); +exports.fs = fs; +const path = require("./path"); +exports.path = path; +const pattern = require("./pattern"); +exports.pattern = pattern; +const stream = require("./stream"); +exports.stream = stream; +const string = require("./string"); +exports.string = string; diff --git a/node_modules/fast-glob/out/utils/path.d.ts b/node_modules/fast-glob/out/utils/path.d.ts new file mode 100644 index 0000000..f90dc54 --- /dev/null +++ b/node_modules/fast-glob/out/utils/path.d.ts @@ -0,0 +1,8 @@ +import { Pattern } from '../types'; +/** + * Designed to work only with simple paths: `dir\\file`. + */ +export declare function unixify(filepath: string): string; +export declare function makeAbsolute(cwd: string, filepath: string): string; +export declare function escape(pattern: Pattern): Pattern; +export declare function removeLeadingDotSegment(entry: string): string; diff --git a/node_modules/fast-glob/out/utils/path.js b/node_modules/fast-glob/out/utils/path.js new file mode 100644 index 0000000..966fcc9 --- /dev/null +++ b/node_modules/fast-glob/out/utils/path.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0; +const path = require("path"); +const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ +const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; +/** + * Designed to work only with simple paths: `dir\\file`. + */ +function unixify(filepath) { + return filepath.replace(/\\/g, '/'); +} +exports.unixify = unixify; +function makeAbsolute(cwd, filepath) { + return path.resolve(cwd, filepath); +} +exports.makeAbsolute = makeAbsolute; +function escape(pattern) { + return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); +} +exports.escape = escape; +function removeLeadingDotSegment(entry) { + // We do not use `startsWith` because this is 10x slower than current implementation for some cases. + // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with + if (entry.charAt(0) === '.') { + const secondCharactery = entry.charAt(1); + if (secondCharactery === '/' || secondCharactery === '\\') { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } + } + return entry; +} +exports.removeLeadingDotSegment = removeLeadingDotSegment; diff --git a/node_modules/fast-glob/out/utils/pattern.d.ts b/node_modules/fast-glob/out/utils/pattern.d.ts new file mode 100644 index 0000000..23b1eed --- /dev/null +++ b/node_modules/fast-glob/out/utils/pattern.d.ts @@ -0,0 +1,42 @@ +import { MicromatchOptions, Pattern, PatternRe } from '../types'; +declare type PatternTypeOptions = { + braceExpansion?: boolean; + caseSensitiveMatch?: boolean; + extglob?: boolean; +}; +export declare function isStaticPattern(pattern: Pattern, options?: PatternTypeOptions): boolean; +export declare function isDynamicPattern(pattern: Pattern, options?: PatternTypeOptions): boolean; +export declare function convertToPositivePattern(pattern: Pattern): Pattern; +export declare function convertToNegativePattern(pattern: Pattern): Pattern; +export declare function isNegativePattern(pattern: Pattern): boolean; +export declare function isPositivePattern(pattern: Pattern): boolean; +export declare function getNegativePatterns(patterns: Pattern[]): Pattern[]; +export declare function getPositivePatterns(patterns: Pattern[]): Pattern[]; +/** + * Returns patterns that can be applied inside the current directory. + * + * @example + * // ['./*', '*', 'a/*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +export declare function getPatternsInsideCurrentDirectory(patterns: Pattern[]): Pattern[]; +/** + * Returns patterns to be expanded relative to (outside) the current directory. + * + * @example + * // ['../*', './../*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +export declare function getPatternsOutsideCurrentDirectory(patterns: Pattern[]): Pattern[]; +export declare function isPatternRelatedToParentDirectory(pattern: Pattern): boolean; +export declare function getBaseDirectory(pattern: Pattern): string; +export declare function hasGlobStar(pattern: Pattern): boolean; +export declare function endsWithSlashGlobStar(pattern: Pattern): boolean; +export declare function isAffectDepthOfReadingPattern(pattern: Pattern): boolean; +export declare function expandPatternsWithBraceExpansion(patterns: Pattern[]): Pattern[]; +export declare function expandBraceExpansion(pattern: Pattern): Pattern[]; +export declare function getPatternParts(pattern: Pattern, options: MicromatchOptions): Pattern[]; +export declare function makeRe(pattern: Pattern, options: MicromatchOptions): PatternRe; +export declare function convertPatternsToRe(patterns: Pattern[], options: MicromatchOptions): PatternRe[]; +export declare function matchAny(entry: string, patternsRe: PatternRe[]): boolean; +export {}; diff --git a/node_modules/fast-glob/out/utils/pattern.js b/node_modules/fast-glob/out/utils/pattern.js new file mode 100644 index 0000000..0eafc75 --- /dev/null +++ b/node_modules/fast-glob/out/utils/pattern.js @@ -0,0 +1,169 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; +const path = require("path"); +const globParent = require("glob-parent"); +const micromatch = require("micromatch"); +const GLOBSTAR = '**'; +const ESCAPE_SYMBOL = '\\'; +const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; +const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; +const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; +const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; +const BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; +function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); +} +exports.isStaticPattern = isStaticPattern; +function isDynamicPattern(pattern, options = {}) { + /** + * A special case with an empty string is necessary for matching patterns that start with a forward slash. + * An empty string cannot be a dynamic pattern. + * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. + */ + if (pattern === '') { + return false; + } + /** + * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check + * filepath directly (without read directory). + */ + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; + } + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.braceExpansion !== false && hasBraceExpansion(pattern)) { + return true; + } + return false; +} +exports.isDynamicPattern = isDynamicPattern; +function hasBraceExpansion(pattern) { + const openingBraceIndex = pattern.indexOf('{'); + if (openingBraceIndex === -1) { + return false; + } + const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1); + if (closingBraceIndex === -1) { + return false; + } + const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); + return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); +} +function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; +} +exports.convertToPositivePattern = convertToPositivePattern; +function convertToNegativePattern(pattern) { + return '!' + pattern; +} +exports.convertToNegativePattern = convertToNegativePattern; +function isNegativePattern(pattern) { + return pattern.startsWith('!') && pattern[1] !== '('; +} +exports.isNegativePattern = isNegativePattern; +function isPositivePattern(pattern) { + return !isNegativePattern(pattern); +} +exports.isPositivePattern = isPositivePattern; +function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); +} +exports.getNegativePatterns = getNegativePatterns; +function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); +} +exports.getPositivePatterns = getPositivePatterns; +/** + * Returns patterns that can be applied inside the current directory. + * + * @example + * // ['./*', '*', 'a/*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsInsideCurrentDirectory(patterns) { + return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); +} +exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; +/** + * Returns patterns to be expanded relative to (outside) the current directory. + * + * @example + * // ['../*', './../*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsOutsideCurrentDirectory(patterns) { + return patterns.filter(isPatternRelatedToParentDirectory); +} +exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; +function isPatternRelatedToParentDirectory(pattern) { + return pattern.startsWith('..') || pattern.startsWith('./..'); +} +exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; +function getBaseDirectory(pattern) { + return globParent(pattern, { flipBackslashes: false }); +} +exports.getBaseDirectory = getBaseDirectory; +function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); +} +exports.hasGlobStar = hasGlobStar; +function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); +} +exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +function isAffectDepthOfReadingPattern(pattern) { + const basename = path.basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); +} +exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; +function expandPatternsWithBraceExpansion(patterns) { + return patterns.reduce((collection, pattern) => { + return collection.concat(expandBraceExpansion(pattern)); + }, []); +} +exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; +function expandBraceExpansion(pattern) { + return micromatch.braces(pattern, { + expand: true, + nodupes: true + }); +} +exports.expandBraceExpansion = expandBraceExpansion; +function getPatternParts(pattern, options) { + let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true })); + /** + * The scan method returns an empty array in some cases. + * See micromatch/picomatch#58 for more details. + */ + if (parts.length === 0) { + parts = [pattern]; + } + /** + * The scan method does not return an empty part for the pattern with a forward slash. + * This is another part of micromatch/picomatch#58. + */ + if (parts[0].startsWith('/')) { + parts[0] = parts[0].slice(1); + parts.unshift(''); + } + return parts; +} +exports.getPatternParts = getPatternParts; +function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); +} +exports.makeRe = makeRe; +function convertPatternsToRe(patterns, options) { + return patterns.map((pattern) => makeRe(pattern, options)); +} +exports.convertPatternsToRe = convertPatternsToRe; +function matchAny(entry, patternsRe) { + return patternsRe.some((patternRe) => patternRe.test(entry)); +} +exports.matchAny = matchAny; diff --git a/node_modules/fast-glob/out/utils/stream.d.ts b/node_modules/fast-glob/out/utils/stream.d.ts new file mode 100644 index 0000000..167fab0 --- /dev/null +++ b/node_modules/fast-glob/out/utils/stream.d.ts @@ -0,0 +1,3 @@ +/// +import { Readable } from 'stream'; +export declare function merge(streams: Readable[]): NodeJS.ReadableStream; diff --git a/node_modules/fast-glob/out/utils/stream.js b/node_modules/fast-glob/out/utils/stream.js new file mode 100644 index 0000000..f1ab1f5 --- /dev/null +++ b/node_modules/fast-glob/out/utils/stream.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.merge = void 0; +const merge2 = require("merge2"); +function merge(streams) { + const mergedStream = merge2(streams); + streams.forEach((stream) => { + stream.once('error', (error) => mergedStream.emit('error', error)); + }); + mergedStream.once('close', () => propagateCloseEventToSources(streams)); + mergedStream.once('end', () => propagateCloseEventToSources(streams)); + return mergedStream; +} +exports.merge = merge; +function propagateCloseEventToSources(streams) { + streams.forEach((stream) => stream.emit('close')); +} diff --git a/node_modules/fast-glob/out/utils/string.d.ts b/node_modules/fast-glob/out/utils/string.d.ts new file mode 100644 index 0000000..d306bc9 --- /dev/null +++ b/node_modules/fast-glob/out/utils/string.d.ts @@ -0,0 +1,2 @@ +export declare function isString(input: unknown): input is string; +export declare function isEmpty(input: string): boolean; diff --git a/node_modules/fast-glob/out/utils/string.js b/node_modules/fast-glob/out/utils/string.js new file mode 100644 index 0000000..738c227 --- /dev/null +++ b/node_modules/fast-glob/out/utils/string.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEmpty = exports.isString = void 0; +function isString(input) { + return typeof input === 'string'; +} +exports.isString = isString; +function isEmpty(input) { + return input === ''; +} +exports.isEmpty = isEmpty; diff --git a/node_modules/fast-glob/package.json b/node_modules/fast-glob/package.json new file mode 100644 index 0000000..d74e403 --- /dev/null +++ b/node_modules/fast-glob/package.json @@ -0,0 +1,94 @@ +{ + "name": "fast-glob", + "version": "3.2.12", + "description": "It's a very fast and efficient glob library for Node.js", + "license": "MIT", + "repository": "mrmlnc/fast-glob", + "author": { + "name": "Denis Malinochkin", + "url": "https://mrmlnc.com" + }, + "engines": { + "node": ">=8.6.0" + }, + "main": "out/index.js", + "typings": "out/index.d.ts", + "files": [ + "out", + "!out/{benchmark,tests}", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "keywords": [ + "glob", + "patterns", + "fast", + "implementation" + ], + "devDependencies": { + "@nodelib/fs.macchiato": "^1.0.1", + "@types/compute-stdev": "^1.0.0", + "@types/easy-table": "^0.0.32", + "@types/glob": "^7.1.1", + "@types/glob-parent": "^5.1.0", + "@types/is-ci": "^2.0.0", + "@types/merge2": "^1.1.4", + "@types/micromatch": "^4.0.0", + "@types/minimist": "^1.2.0", + "@types/mocha": "^5.2.7", + "@types/node": "^12.7.8", + "@types/rimraf": "^2.0.2", + "@types/sinon": "^7.5.0", + "compute-stdev": "^1.0.0", + "easy-table": "^1.1.1", + "eslint": "^6.5.1", + "eslint-config-mrmlnc": "^1.1.0", + "execa": "^2.0.4", + "fast-glob": "^3.0.4", + "fdir": "^5.1.0", + "glob": "^7.1.4", + "is-ci": "^2.0.0", + "log-update": "^4.0.0", + "minimist": "^1.2.0", + "mocha": "^6.2.1", + "rimraf": "^3.0.0", + "sinon": "^7.5.0", + "tiny-glob": "^0.2.6", + "typescript": "^3.6.3" + }, + "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" + }, + "scripts": { + "clean": "rimraf out", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "smoke": "mocha \"out/**/*.smoke.js\" -s 0", + "smoke:sync": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(sync\\)\"", + "smoke:async": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(async\\)\"", + "smoke:stream": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(stream\\)\"", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile -- --sourceMap --watch", + "bench": "npm run bench-async && npm run bench-stream && npm run bench-sync", + "bench-async": "npm run bench-async-flatten && npm run bench-async-deep && npm run bench-async-partial-flatten && npm run bench-async-partial-deep", + "bench-stream": "npm run bench-stream-flatten && npm run bench-stream-deep && npm run bench-stream-partial-flatten && npm run bench-stream-partial-deep", + "bench-sync": "npm run bench-sync-flatten && npm run bench-sync-deep && npm run bench-sync-partial-flatten && npm run bench-sync-partial-deep", + "bench-async-flatten": "node ./out/benchmark --mode async --pattern \"*\"", + "bench-async-deep": "node ./out/benchmark --mode async --pattern \"**\"", + "bench-async-partial-flatten": "node ./out/benchmark --mode async --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-async-partial-deep": "node ./out/benchmark --mode async --pattern \"{fixtures,out}/**\"", + "bench-stream-flatten": "node ./out/benchmark --mode stream --pattern \"*\"", + "bench-stream-deep": "node ./out/benchmark --mode stream --pattern \"**\"", + "bench-stream-partial-flatten": "node ./out/benchmark --mode stream --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-stream-partial-deep": "node ./out/benchmark --mode stream --pattern \"{fixtures,out}/**\"", + "bench-sync-flatten": "node ./out/benchmark --mode sync --pattern \"*\"", + "bench-sync-deep": "node ./out/benchmark --mode sync --pattern \"**\"", + "bench-sync-partial-flatten": "node ./out/benchmark --mode sync --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-sync-partial-deep": "node ./out/benchmark --mode sync --pattern \"{fixtures,out}/**\"" + } +} diff --git a/node_modules/fast-json-stable-stringify/.eslintrc.yml b/node_modules/fast-json-stable-stringify/.eslintrc.yml new file mode 100644 index 0000000..1c77b0d --- /dev/null +++ b/node_modules/fast-json-stable-stringify/.eslintrc.yml @@ -0,0 +1,26 @@ +extends: eslint:recommended +env: + node: true + browser: true +rules: + block-scoped-var: 2 + callback-return: 2 + dot-notation: 2 + indent: 2 + linebreak-style: [2, unix] + new-cap: 2 + no-console: [2, allow: [warn, error]] + no-else-return: 2 + no-eq-null: 2 + no-fallthrough: 2 + no-invalid-this: 2 + no-return-assign: 2 + no-shadow: 1 + no-trailing-spaces: 2 + no-use-before-define: [2, nofunc] + quotes: [2, single, avoid-escape] + semi: [2, always] + strict: [2, global] + valid-jsdoc: [2, requireReturn: false] + no-control-regex: 0 + no-useless-escape: 2 diff --git a/node_modules/fast-json-stable-stringify/.github/FUNDING.yml b/node_modules/fast-json-stable-stringify/.github/FUNDING.yml new file mode 100644 index 0000000..61f9daa --- /dev/null +++ b/node_modules/fast-json-stable-stringify/.github/FUNDING.yml @@ -0,0 +1 @@ +tidelift: "npm/fast-json-stable-stringify" diff --git a/node_modules/fast-json-stable-stringify/.travis.yml b/node_modules/fast-json-stable-stringify/.travis.yml new file mode 100644 index 0000000..b61e8f0 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - "8" + - "10" + - "12" + - "13" +after_script: + - coveralls < coverage/lcov.info diff --git a/node_modules/fast-json-stable-stringify/LICENSE b/node_modules/fast-json-stable-stringify/LICENSE new file mode 100644 index 0000000..c932223 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/LICENSE @@ -0,0 +1,21 @@ +This software is released under the MIT license: + +Copyright (c) 2017 Evgeny Poberezkin +Copyright (c) 2013 James Halliday + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/fast-json-stable-stringify/README.md b/node_modules/fast-json-stable-stringify/README.md new file mode 100644 index 0000000..02cf49f --- /dev/null +++ b/node_modules/fast-json-stable-stringify/README.md @@ -0,0 +1,131 @@ +# fast-json-stable-stringify + +Deterministic `JSON.stringify()` - a faster version of [@substack](https://github.com/substack)'s json-stable-strigify without [jsonify](https://github.com/substack/jsonify). + +You can also pass in a custom comparison function. + +[![Build Status](https://travis-ci.org/epoberezkin/fast-json-stable-stringify.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-json-stable-stringify) +[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-json-stable-stringify/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-json-stable-stringify?branch=master) + +# example + +``` js +var stringify = require('fast-json-stable-stringify'); +var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; +console.log(stringify(obj)); +``` + +output: + +``` +{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8} +``` + + +# methods + +``` js +var stringify = require('fast-json-stable-stringify') +``` + +## var str = stringify(obj, opts) + +Return a deterministic stringified string `str` from the object `obj`. + + +## options + +### cmp + +If `opts` is given, you can supply an `opts.cmp` to have a custom comparison +function for object keys. Your function `opts.cmp` is called with these +parameters: + +``` js +opts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue }) +``` + +For example, to sort on the object key names in reverse order you could write: + +``` js +var stringify = require('fast-json-stable-stringify'); + +var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; +var s = stringify(obj, function (a, b) { + return a.key < b.key ? 1 : -1; +}); +console.log(s); +``` + +which results in the output string: + +``` +{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3} +``` + +Or if you wanted to sort on the object values in reverse order, you could write: + +``` +var stringify = require('fast-json-stable-stringify'); + +var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 }; +var s = stringify(obj, function (a, b) { + return a.value < b.value ? 1 : -1; +}); +console.log(s); +``` + +which outputs: + +``` +{"d":6,"c":5,"b":[{"z":3,"y":2,"x":1},9],"a":10} +``` + +### cycles + +Pass `true` in `opts.cycles` to stringify circular property as `__cycle__` - the result will not be a valid JSON string in this case. + +TypeError will be thrown in case of circular object without this option. + + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install fast-json-stable-stringify +``` + + +# benchmark + +To run benchmark (requires Node.js 6+): +``` +node benchmark +``` + +Results: +``` +fast-json-stable-stringify x 17,189 ops/sec ±1.43% (83 runs sampled) +json-stable-stringify x 13,634 ops/sec ±1.39% (85 runs sampled) +fast-stable-stringify x 20,212 ops/sec ±1.20% (84 runs sampled) +faster-stable-stringify x 15,549 ops/sec ±1.12% (84 runs sampled) +The fastest is fast-stable-stringify +``` + + +## Enterprise support + +fast-json-stable-stringify package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-json-stable-stringify?utm_source=npm-fast-json-stable-stringify&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers. + + +## Security contact + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues. + + +# license + +[MIT](https://github.com/epoberezkin/fast-json-stable-stringify/blob/master/LICENSE) diff --git a/node_modules/fast-json-stable-stringify/benchmark/index.js b/node_modules/fast-json-stable-stringify/benchmark/index.js new file mode 100644 index 0000000..e725f9f --- /dev/null +++ b/node_modules/fast-json-stable-stringify/benchmark/index.js @@ -0,0 +1,31 @@ +'use strict'; + +const Benchmark = require('benchmark'); +const suite = new Benchmark.Suite; +const testData = require('./test.json'); + + +const stringifyPackages = { + // 'JSON.stringify': JSON.stringify, + 'fast-json-stable-stringify': require('../index'), + 'json-stable-stringify': true, + 'fast-stable-stringify': true, + 'faster-stable-stringify': true +}; + + +for (const name in stringifyPackages) { + let func = stringifyPackages[name]; + if (func === true) func = require(name); + + suite.add(name, function() { + func(testData); + }); +} + +suite + .on('cycle', (event) => console.log(String(event.target))) + .on('complete', function () { + console.log('The fastest is ' + this.filter('fastest').map('name')); + }) + .run({async: true}); diff --git a/node_modules/fast-json-stable-stringify/benchmark/test.json b/node_modules/fast-json-stable-stringify/benchmark/test.json new file mode 100644 index 0000000..c9118c1 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/benchmark/test.json @@ -0,0 +1,137 @@ +[ + { + "_id": "59ef4a83ee8364808d761beb", + "index": 0, + "guid": "e50ffae9-7128-4148-9ee5-40c3fc523c5d", + "isActive": false, + "balance": "$2,341.81", + "picture": "http://placehold.it/32x32", + "age": 28, + "eyeColor": "brown", + "name": "Carey Savage", + "gender": "female", + "company": "VERAQ", + "email": "careysavage@veraq.com", + "phone": "+1 (897) 574-3014", + "address": "458 Willow Street, Henrietta, California, 7234", + "about": "Nisi reprehenderit nulla ad officia pariatur non dolore laboris irure cupidatat laborum. Minim eu ex Lorem adipisicing exercitation irure minim sunt est enim mollit incididunt voluptate nulla. Ut mollit anim reprehenderit et aliqua ex esse aliquip. Aute sit duis deserunt do incididunt consequat minim qui dolor commodo deserunt et voluptate.\r\n", + "registered": "2014-05-21T01:56:51 -01:00", + "latitude": 63.89502, + "longitude": 62.369807, + "tags": [ + "nostrud", + "nisi", + "consectetur", + "ullamco", + "cupidatat", + "culpa", + "commodo" + ], + "friends": [ + { + "id": 0, + "name": "Henry Walls" + }, + { + "id": 1, + "name": "Janice Baker" + }, + { + "id": 2, + "name": "Russell Bush" + } + ], + "greeting": "Hello, Carey Savage! You have 4 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "59ef4a83ff5774a691454e89", + "index": 1, + "guid": "2bee9efc-4095-4c2e-87ef-d08c8054c89d", + "isActive": true, + "balance": "$1,618.15", + "picture": "http://placehold.it/32x32", + "age": 35, + "eyeColor": "blue", + "name": "Elinor Pearson", + "gender": "female", + "company": "FLEXIGEN", + "email": "elinorpearson@flexigen.com", + "phone": "+1 (923) 548-3751", + "address": "600 Bayview Avenue, Draper, Montana, 3088", + "about": "Mollit commodo ea sit Lorem velit. Irure anim esse Lorem sint quis officia ut. Aliqua nisi dolore in aute deserunt mollit ex ea in mollit.\r\n", + "registered": "2017-04-22T07:58:41 -01:00", + "latitude": -87.824919, + "longitude": 69.538927, + "tags": [ + "fugiat", + "labore", + "proident", + "quis", + "eiusmod", + "qui", + "est" + ], + "friends": [ + { + "id": 0, + "name": "Massey Wagner" + }, + { + "id": 1, + "name": "Marcella Ferrell" + }, + { + "id": 2, + "name": "Evans Mckee" + } + ], + "greeting": "Hello, Elinor Pearson! You have 3 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "59ef4a839ec8a4be4430b36b", + "index": 2, + "guid": "ddd6e8c0-95bd-416d-8b46-a768d6363809", + "isActive": false, + "balance": "$2,046.95", + "picture": "http://placehold.it/32x32", + "age": 40, + "eyeColor": "green", + "name": "Irwin Davidson", + "gender": "male", + "company": "DANJA", + "email": "irwindavidson@danja.com", + "phone": "+1 (883) 537-2041", + "address": "439 Cook Street, Chapin, Kentucky, 7398", + "about": "Irure velit non commodo aliqua exercitation ut nostrud minim magna. Dolor ad ad ut irure eu. Non pariatur dolor eiusmod ipsum do et exercitation cillum. Et amet laboris minim eiusmod ullamco magna ea reprehenderit proident sunt.\r\n", + "registered": "2016-09-01T07:49:08 -01:00", + "latitude": -49.803812, + "longitude": 104.93279, + "tags": [ + "consequat", + "enim", + "quis", + "magna", + "est", + "culpa", + "tempor" + ], + "friends": [ + { + "id": 0, + "name": "Ruth Hansen" + }, + { + "id": 1, + "name": "Kathrine Austin" + }, + { + "id": 2, + "name": "Rivera Munoz" + } + ], + "greeting": "Hello, Irwin Davidson! You have 2 unread messages.", + "favoriteFruit": "banana" + } +] diff --git a/node_modules/fast-json-stable-stringify/example/key_cmp.js b/node_modules/fast-json-stable-stringify/example/key_cmp.js new file mode 100644 index 0000000..d5f6675 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/key_cmp.js @@ -0,0 +1,7 @@ +var stringify = require('../'); + +var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; +var s = stringify(obj, function (a, b) { + return a.key < b.key ? 1 : -1; +}); +console.log(s); diff --git a/node_modules/fast-json-stable-stringify/example/nested.js b/node_modules/fast-json-stable-stringify/example/nested.js new file mode 100644 index 0000000..9a672fc --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/nested.js @@ -0,0 +1,3 @@ +var stringify = require('../'); +var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; +console.log(stringify(obj)); diff --git a/node_modules/fast-json-stable-stringify/example/str.js b/node_modules/fast-json-stable-stringify/example/str.js new file mode 100644 index 0000000..9b4b3cd --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/str.js @@ -0,0 +1,3 @@ +var stringify = require('../'); +var obj = { c: 6, b: [4,5], a: 3 }; +console.log(stringify(obj)); diff --git a/node_modules/fast-json-stable-stringify/example/value_cmp.js b/node_modules/fast-json-stable-stringify/example/value_cmp.js new file mode 100644 index 0000000..09f1c5f --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/value_cmp.js @@ -0,0 +1,7 @@ +var stringify = require('../'); + +var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 }; +var s = stringify(obj, function (a, b) { + return a.value < b.value ? 1 : -1; +}); +console.log(s); diff --git a/node_modules/fast-json-stable-stringify/index.d.ts b/node_modules/fast-json-stable-stringify/index.d.ts new file mode 100644 index 0000000..23e46ca --- /dev/null +++ b/node_modules/fast-json-stable-stringify/index.d.ts @@ -0,0 +1,4 @@ +declare module 'fast-json-stable-stringify' { + function stringify(obj: any): string; + export = stringify; +} diff --git a/node_modules/fast-json-stable-stringify/index.js b/node_modules/fast-json-stable-stringify/index.js new file mode 100644 index 0000000..c44e6a4 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/index.js @@ -0,0 +1,59 @@ +'use strict'; + +module.exports = function (data, opts) { + if (!opts) opts = {}; + if (typeof opts === 'function') opts = { cmp: opts }; + var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false; + + var cmp = opts.cmp && (function (f) { + return function (node) { + return function (a, b) { + var aobj = { key: a, value: node[a] }; + var bobj = { key: b, value: node[b] }; + return f(aobj, bobj); + }; + }; + })(opts.cmp); + + var seen = []; + return (function stringify (node) { + if (node && node.toJSON && typeof node.toJSON === 'function') { + node = node.toJSON(); + } + + if (node === undefined) return; + if (typeof node == 'number') return isFinite(node) ? '' + node : 'null'; + if (typeof node !== 'object') return JSON.stringify(node); + + var i, out; + if (Array.isArray(node)) { + out = '['; + for (i = 0; i < node.length; i++) { + if (i) out += ','; + out += stringify(node[i]) || 'null'; + } + return out + ']'; + } + + if (node === null) return 'null'; + + if (seen.indexOf(node) !== -1) { + if (cycles) return JSON.stringify('__cycle__'); + throw new TypeError('Converting circular structure to JSON'); + } + + var seenIndex = seen.push(node) - 1; + var keys = Object.keys(node).sort(cmp && cmp(node)); + out = ''; + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = stringify(node[key]); + + if (!value) continue; + if (out) out += ','; + out += JSON.stringify(key) + ':' + value; + } + seen.splice(seenIndex, 1); + return '{' + out + '}'; + })(data); +}; diff --git a/node_modules/fast-json-stable-stringify/package.json b/node_modules/fast-json-stable-stringify/package.json new file mode 100644 index 0000000..ad2c8bf --- /dev/null +++ b/node_modules/fast-json-stable-stringify/package.json @@ -0,0 +1,52 @@ +{ + "name": "fast-json-stable-stringify", + "version": "2.1.0", + "description": "deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify", + "main": "index.js", + "types": "index.d.ts", + "dependencies": {}, + "devDependencies": { + "benchmark": "^2.1.4", + "coveralls": "^3.0.0", + "eslint": "^6.7.0", + "fast-stable-stringify": "latest", + "faster-stable-stringify": "latest", + "json-stable-stringify": "latest", + "nyc": "^14.1.0", + "pre-commit": "^1.2.2", + "tape": "^4.11.0" + }, + "scripts": { + "eslint": "eslint index.js test", + "test-spec": "tape test/*.js", + "test": "npm run eslint && nyc npm run test-spec" + }, + "repository": { + "type": "git", + "url": "git://github.com/epoberezkin/fast-json-stable-stringify.git" + }, + "homepage": "https://github.com/epoberezkin/fast-json-stable-stringify", + "keywords": [ + "json", + "stringify", + "deterministic", + "hash", + "stable" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "license": "MIT", + "nyc": { + "exclude": [ + "test", + "node_modules" + ], + "reporter": [ + "lcov", + "text-summary" + ] + } +} diff --git a/node_modules/fast-json-stable-stringify/test/cmp.js b/node_modules/fast-json-stable-stringify/test/cmp.js new file mode 100644 index 0000000..4efd6b5 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/cmp.js @@ -0,0 +1,13 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('custom comparison function', function (t) { + t.plan(1); + var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; + var s = stringify(obj, function (a, b) { + return a.key < b.key ? 1 : -1; + }); + t.equal(s, '{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}'); +}); diff --git a/node_modules/fast-json-stable-stringify/test/nested.js b/node_modules/fast-json-stable-stringify/test/nested.js new file mode 100644 index 0000000..167a358 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/nested.js @@ -0,0 +1,44 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('nested', function (t) { + t.plan(1); + var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; + t.equal(stringify(obj), '{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}'); +}); + +test('cyclic (default)', function (t) { + t.plan(1); + var one = { a: 1 }; + var two = { a: 2, one: one }; + one.two = two; + try { + stringify(one); + } catch (ex) { + t.equal(ex.toString(), 'TypeError: Converting circular structure to JSON'); + } +}); + +test('cyclic (specifically allowed)', function (t) { + t.plan(1); + var one = { a: 1 }; + var two = { a: 2, one: one }; + one.two = two; + t.equal(stringify(one, {cycles:true}), '{"a":1,"two":{"a":2,"one":"__cycle__"}}'); +}); + +test('repeated non-cyclic value', function(t) { + t.plan(1); + var one = { x: 1 }; + var two = { a: one, b: one }; + t.equal(stringify(two), '{"a":{"x":1},"b":{"x":1}}'); +}); + +test('acyclic but with reused obj-property pointers', function (t) { + t.plan(1); + var x = { a: 1 }; + var y = { b: x, c: x }; + t.equal(stringify(y), '{"b":{"a":1},"c":{"a":1}}'); +}); diff --git a/node_modules/fast-json-stable-stringify/test/str.js b/node_modules/fast-json-stable-stringify/test/str.js new file mode 100644 index 0000000..99a9ade --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/str.js @@ -0,0 +1,46 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('simple object', function (t) { + t.plan(1); + var obj = { c: 6, b: [4,5], a: 3, z: null }; + t.equal(stringify(obj), '{"a":3,"b":[4,5],"c":6,"z":null}'); +}); + +test('object with undefined', function (t) { + t.plan(1); + var obj = { a: 3, z: undefined }; + t.equal(stringify(obj), '{"a":3}'); +}); + +test('object with null', function (t) { + t.plan(1); + var obj = { a: 3, z: null }; + t.equal(stringify(obj), '{"a":3,"z":null}'); +}); + +test('object with NaN and Infinity', function (t) { + t.plan(1); + var obj = { a: 3, b: NaN, c: Infinity }; + t.equal(stringify(obj), '{"a":3,"b":null,"c":null}'); +}); + +test('array with undefined', function (t) { + t.plan(1); + var obj = [4, undefined, 6]; + t.equal(stringify(obj), '[4,null,6]'); +}); + +test('object with empty string', function (t) { + t.plan(1); + var obj = { a: 3, z: '' }; + t.equal(stringify(obj), '{"a":3,"z":""}'); +}); + +test('array with empty string', function (t) { + t.plan(1); + var obj = [4, '', 6]; + t.equal(stringify(obj), '[4,"",6]'); +}); diff --git a/node_modules/fast-json-stable-stringify/test/to-json.js b/node_modules/fast-json-stable-stringify/test/to-json.js new file mode 100644 index 0000000..2fb2cfa --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/to-json.js @@ -0,0 +1,22 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('toJSON function', function (t) { + t.plan(1); + var obj = { one: 1, two: 2, toJSON: function() { return { one: 1 }; } }; + t.equal(stringify(obj), '{"one":1}' ); +}); + +test('toJSON returns string', function (t) { + t.plan(1); + var obj = { one: 1, two: 2, toJSON: function() { return 'one'; } }; + t.equal(stringify(obj), '"one"'); +}); + +test('toJSON returns array', function (t) { + t.plan(1); + var obj = { one: 1, two: 2, toJSON: function() { return ['one']; } }; + t.equal(stringify(obj), '["one"]'); +}); diff --git a/node_modules/fast-levenshtein/LICENSE.md b/node_modules/fast-levenshtein/LICENSE.md new file mode 100644 index 0000000..6212406 --- /dev/null +++ b/node_modules/fast-levenshtein/LICENSE.md @@ -0,0 +1,25 @@ +(MIT License) + +Copyright (c) 2013 [Ramesh Nair](http://www.hiddentao.com/) + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + diff --git a/node_modules/fast-levenshtein/README.md b/node_modules/fast-levenshtein/README.md new file mode 100644 index 0000000..a778995 --- /dev/null +++ b/node_modules/fast-levenshtein/README.md @@ -0,0 +1,104 @@ +# fast-levenshtein - Levenshtein algorithm in Javascript + +[![Build Status](https://secure.travis-ci.org/hiddentao/fast-levenshtein.png)](http://travis-ci.org/hiddentao/fast-levenshtein) +[![NPM module](https://badge.fury.io/js/fast-levenshtein.png)](https://badge.fury.io/js/fast-levenshtein) +[![NPM downloads](https://img.shields.io/npm/dm/fast-levenshtein.svg?maxAge=2592000)](https://www.npmjs.com/package/fast-levenshtein) +[![Follow on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/hiddentao) + +An efficient Javascript implementation of the [Levenshtein algorithm](http://en.wikipedia.org/wiki/Levenshtein_distance) with locale-specific collator support. + +## Features + +* Works in node.js and in the browser. +* Better performance than other implementations by not needing to store the whole matrix ([more info](http://www.codeproject.com/Articles/13525/Fast-memory-efficient-Levenshtein-algorithm)). +* Locale-sensitive string comparisions if needed. +* Comprehensive test suite and performance benchmark. +* Small: <1 KB minified and gzipped + +## Installation + +### node.js + +Install using [npm](http://npmjs.org/): + +```bash +$ npm install fast-levenshtein +``` + +### Browser + +Using bower: + +```bash +$ bower install fast-levenshtein +``` + +If you are not using any module loader system then the API will then be accessible via the `window.Levenshtein` object. + +## Examples + +**Default usage** + +```javascript +var levenshtein = require('fast-levenshtein'); + +var distance = levenshtein.get('back', 'book'); // 2 +var distance = levenshtein.get('我愛你', '我叫你'); // 1 +``` + +**Locale-sensitive string comparisons** + +It supports using [Intl.Collator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator) for locale-sensitive string comparisons: + +```javascript +var levenshtein = require('fast-levenshtein'); + +levenshtein.get('mikailovitch', 'Mikhaïlovitch', { useCollator: true}); +// 1 +``` + +## Building and Testing + +To build the code and run the tests: + +```bash +$ npm install -g grunt-cli +$ npm install +$ npm run build +``` + +## Performance + +_Thanks to [Titus Wormer](https://github.com/wooorm) for [encouraging me](https://github.com/hiddentao/fast-levenshtein/issues/1) to do this._ + +Benchmarked against other node.js levenshtein distance modules (on Macbook Air 2012, Core i7, 8GB RAM): + +```bash +Running suite Implementation comparison [benchmark/speed.js]... +>> levenshtein-edit-distance x 234 ops/sec ±3.02% (73 runs sampled) +>> levenshtein-component x 422 ops/sec ±4.38% (83 runs sampled) +>> levenshtein-deltas x 283 ops/sec ±3.83% (78 runs sampled) +>> natural x 255 ops/sec ±0.76% (88 runs sampled) +>> levenshtein x 180 ops/sec ±3.55% (86 runs sampled) +>> fast-levenshtein x 1,792 ops/sec ±2.72% (95 runs sampled) +Benchmark done. +Fastest test is fast-levenshtein at 4.2x faster than levenshtein-component +``` + +You can run this benchmark yourself by doing: + +```bash +$ npm install +$ npm run build +$ npm run benchmark +``` + +## Contributing + +If you wish to submit a pull request please update and/or create new tests for any changes you make and ensure the grunt build passes. + +See [CONTRIBUTING.md](https://github.com/hiddentao/fast-levenshtein/blob/master/CONTRIBUTING.md) for details. + +## License + +MIT - see [LICENSE.md](https://github.com/hiddentao/fast-levenshtein/blob/master/LICENSE.md) diff --git a/node_modules/fast-levenshtein/levenshtein.js b/node_modules/fast-levenshtein/levenshtein.js new file mode 100644 index 0000000..dbe3628 --- /dev/null +++ b/node_modules/fast-levenshtein/levenshtein.js @@ -0,0 +1,136 @@ +(function() { + 'use strict'; + + var collator; + try { + collator = (typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined") ? Intl.Collator("generic", { sensitivity: "base" }) : null; + } catch (err){ + console.log("Collator could not be initialized and wouldn't be used"); + } + // arrays to re-use + var prevRow = [], + str2Char = []; + + /** + * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. + */ + var Levenshtein = { + /** + * Calculate levenshtein distance of the two strings. + * + * @param str1 String the first string. + * @param str2 String the second string. + * @param [options] Additional options. + * @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison. + * @return Integer the levenshtein distance (0 and above). + */ + get: function(str1, str2, options) { + var useCollator = (options && collator && options.useCollator); + + var str1Len = str1.length, + str2Len = str2.length; + + // base cases + if (str1Len === 0) return str2Len; + if (str2Len === 0) return str1Len; + + // two rows + var curCol, nextCol, i, j, tmp; + + // initialise previous row + for (i=0; i tmp) { + nextCol = tmp; + } + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) { + nextCol = tmp; + } + + // copy current col value into previous (in preparation for next iteration) + prevRow[j] = curCol; + } + + // copy last col value into previous (in preparation for next iteration) + prevRow[j] = nextCol; + } + } + else { + // calculate current row distance from previous row without collator + for (i = 0; i < str1Len; ++i) { + nextCol = i + 1; + + for (j = 0; j < str2Len; ++j) { + curCol = nextCol; + + // substution + strCmp = str1.charCodeAt(i) === str2Char[j]; + + nextCol = prevRow[j] + (strCmp ? 0 : 1); + + // insertion + tmp = curCol + 1; + if (nextCol > tmp) { + nextCol = tmp; + } + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) { + nextCol = tmp; + } + + // copy current col value into previous (in preparation for next iteration) + prevRow[j] = curCol; + } + + // copy last col value into previous (in preparation for next iteration) + prevRow[j] = nextCol; + } + } + return nextCol; + } + + }; + + // amd + if (typeof define !== "undefined" && define !== null && define.amd) { + define(function() { + return Levenshtein; + }); + } + // commonjs + else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) { + module.exports = Levenshtein; + } + // web worker + else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') { + self.Levenshtein = Levenshtein; + } + // browser main thread + else if (typeof window !== "undefined" && window !== null) { + window.Levenshtein = Levenshtein; + } +}()); + diff --git a/node_modules/fast-levenshtein/package.json b/node_modules/fast-levenshtein/package.json new file mode 100644 index 0000000..5b4736d --- /dev/null +++ b/node_modules/fast-levenshtein/package.json @@ -0,0 +1,39 @@ +{ + "name": "fast-levenshtein", + "version": "2.0.6", + "description": "Efficient implementation of Levenshtein algorithm with locale-specific collator support.", + "main": "levenshtein.js", + "files": [ + "levenshtein.js" + ], + "scripts": { + "build": "grunt build", + "prepublish": "npm run build", + "benchmark": "grunt benchmark", + "test": "mocha" + }, + "devDependencies": { + "chai": "~1.5.0", + "grunt": "~0.4.1", + "grunt-benchmark": "~0.2.0", + "grunt-cli": "^1.2.0", + "grunt-contrib-jshint": "~0.4.3", + "grunt-contrib-uglify": "~0.2.0", + "grunt-mocha-test": "~0.2.2", + "grunt-npm-install": "~0.1.0", + "load-grunt-tasks": "~0.6.0", + "lodash": "^4.0.1", + "mocha": "~1.9.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/hiddentao/fast-levenshtein.git" + }, + "keywords": [ + "levenshtein", + "distance", + "string" + ], + "author": "Ramesh Nair (http://www.hiddentao.com/)", + "license": "MIT" +} diff --git a/node_modules/fastq/.github/dependabot.yml b/node_modules/fastq/.github/dependabot.yml new file mode 100644 index 0000000..7e7cbe1 --- /dev/null +++ b/node_modules/fastq/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 + ignore: + - dependency-name: standard + versions: + - 16.0.3 diff --git a/node_modules/fastq/.github/workflows/ci.yml b/node_modules/fastq/.github/workflows/ci.yml new file mode 100644 index 0000000..50e66b5 --- /dev/null +++ b/node_modules/fastq/.github/workflows/ci.yml @@ -0,0 +1,50 @@ +name: ci + +on: [push, pull_request] + +jobs: + legacy: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: ['0.10', '0.12', 4.x, 6.x, 8.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install + run: | + npm install --production && npm install tape + + - name: Run tests + run: | + npm run legacy + + test: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [10.x, 12.x, 13.x, 14.x, 15.x, 16.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install + run: | + npm install + + - name: Run tests + run: | + npm run test diff --git a/node_modules/fastq/LICENSE b/node_modules/fastq/LICENSE new file mode 100644 index 0000000..27c7bb4 --- /dev/null +++ b/node_modules/fastq/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015-2020, Matteo Collina + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/fastq/README.md b/node_modules/fastq/README.md new file mode 100644 index 0000000..9a908de --- /dev/null +++ b/node_modules/fastq/README.md @@ -0,0 +1,309 @@ +# fastq + +![ci][ci-url] +[![npm version][npm-badge]][npm-url] +[![Dependency Status][david-badge]][david-url] + +Fast, in memory work queue. + +Benchmarks (1 million tasks): + +* setImmediate: 812ms +* fastq: 854ms +* async.queue: 1298ms +* neoAsync.queue: 1249ms + +Obtained on node 12.16.1, on a dedicated server. + +If you need zero-overhead series function call, check out +[fastseries](http://npm.im/fastseries). For zero-overhead parallel +function call, check out [fastparallel](http://npm.im/fastparallel). + +[![js-standard-style](https://raw.githubusercontent.com/feross/standard/master/badge.png)](https://github.com/feross/standard) + + * Installation + * Usage + * API + * Licence & copyright + +## Install + +`npm i fastq --save` + +## Usage (callback API) + +```js +'use strict' + +const queue = require('fastq')(worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log('the result is', result) +}) + +function worker (arg, cb) { + cb(null, arg * 2) +} +``` + +## Usage (promise API) + +```js +const queue = require('fastq').promise(worker, 1) + +async function worker (arg) { + return arg * 2 +} + +async function run () { + const result = await queue.push(42) + console.log('the result is', result) +} + +run() +``` + +### Setting "this" + +```js +'use strict' + +const that = { hello: 'world' } +const queue = require('fastq')(that, worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log(this) + console.log('the result is', result) +}) + +function worker (arg, cb) { + console.log(this) + cb(null, arg * 2) +} +``` + +### Using with TypeScript (callback API) + +```ts +'use strict' + +import * as fastq from "fastq"; +import type { queue, done } from "fastq"; + +type Task = { + id: number +} + +const q: queue = fastq(worker, 1) + +q.push({ id: 42}) + +function worker (arg: Task, cb: done) { + console.log(arg.id) + cb(null) +} +``` + +### Using with TypeScript (promise API) + +```ts +'use strict' + +import * as fastq from "fastq"; +import type { queueAsPromised } from "fastq"; + +type Task = { + id: number +} + +const q: queueAsPromised = fastq.promise(asyncWorker, 1) + +q.push({ id: 42}).catch((err) => console.error(err)) + +async function asyncWorker (arg: Task): Promise { + // No need for a try-catch block, fastq handles errors automatically + console.log(arg.id) +} +``` + +## API + +* fastqueue() +* queue#push() +* queue#unshift() +* queue#pause() +* queue#resume() +* queue#idle() +* queue#length() +* queue#getQueue() +* queue#kill() +* queue#killAndDrain() +* queue#error() +* queue#concurrency +* queue#drain +* queue#empty +* queue#saturated +* fastqueue.promise() + +------------------------------------------------------- + +### fastqueue([that], worker, concurrency) + +Creates a new queue. + +Arguments: + +* `that`, optional context of the `worker` function. +* `worker`, worker function, it would be called with `that` as `this`, + if that is specified. +* `concurrency`, number of concurrent tasks that could be executed in + parallel. + +------------------------------------------------------- + +### queue.push(task, done) + +Add a task at the end of the queue. `done(err, result)` will be called +when the task was processed. + +------------------------------------------------------- + +### queue.unshift(task, done) + +Add a task at the beginning of the queue. `done(err, result)` will be called +when the task was processed. + +------------------------------------------------------- + +### queue.pause() + +Pause the processing of tasks. Currently worked tasks are not +stopped. + +------------------------------------------------------- + +### queue.resume() + +Resume the processing of tasks. + +------------------------------------------------------- + +### queue.idle() + +Returns `false` if there are tasks being processed or waiting to be processed. +`true` otherwise. + +------------------------------------------------------- + +### queue.length() + +Returns the number of tasks waiting to be processed (in the queue). + +------------------------------------------------------- + +### queue.getQueue() + +Returns all the tasks be processed (in the queue). Returns empty array when there are no tasks + +------------------------------------------------------- + +### queue.kill() + +Removes all tasks waiting to be processed, and reset `drain` to an empty +function. + +------------------------------------------------------- + +### queue.killAndDrain() + +Same than `kill` but the `drain` function will be called before reset to empty. + +------------------------------------------------------- + +### queue.error(handler) + +Set a global error handler. `handler(err, task)` will be called +when any of the tasks return an error. + +------------------------------------------------------- + +### queue.concurrency + +Property that returns the number of concurrent tasks that could be executed in +parallel. It can be altered at runtime. + +------------------------------------------------------- + +### queue.drain + +Function that will be called when the last +item from the queue has been processed by a worker. +It can be altered at runtime. + +------------------------------------------------------- + +### queue.empty + +Function that will be called when the last +item from the queue has been assigned to a worker. +It can be altered at runtime. + +------------------------------------------------------- + +### queue.saturated + +Function that will be called when the queue hits the concurrency +limit. +It can be altered at runtime. + +------------------------------------------------------- + +### fastqueue.promise([that], worker(arg), concurrency) + +Creates a new queue with `Promise` apis. It also offers all the methods +and properties of the object returned by [`fastqueue`](#fastqueue) with the modified +[`push`](#pushPromise) and [`unshift`](#unshiftPromise) methods. + +Node v10+ is required to use the promisified version. + +Arguments: +* `that`, optional context of the `worker` function. +* `worker`, worker function, it would be called with `that` as `this`, + if that is specified. It MUST return a `Promise`. +* `concurrency`, number of concurrent tasks that could be executed in + parallel. + + +#### queue.push(task) => Promise + +Add a task at the end of the queue. The returned `Promise` will be fulfilled (rejected) +when the task is completed successfully (unsuccessfully). + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + + +#### queue.unshift(task) => Promise + +Add a task at the beginning of the queue. The returned `Promise` will be fulfilled (rejected) +when the task is completed successfully (unsuccessfully). + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + + +#### queue.drained() => Promise + +Wait for the queue to be drained. The returned `Promise` will be resolved when all tasks in the queue have been processed by a worker. + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + +## License + +ISC + +[ci-url]: https://github.com/mcollina/fastq/workflows/ci/badge.svg +[npm-badge]: https://badge.fury.io/js/fastq.svg +[npm-url]: https://badge.fury.io/js/fastq +[david-badge]: https://david-dm.org/mcollina/fastq.svg +[david-url]: https://david-dm.org/mcollina/fastq diff --git a/node_modules/fastq/bench.js b/node_modules/fastq/bench.js new file mode 100644 index 0000000..4eaa829 --- /dev/null +++ b/node_modules/fastq/bench.js @@ -0,0 +1,66 @@ +'use strict' + +const max = 1000000 +const fastqueue = require('./')(worker, 1) +const { promisify } = require('util') +const immediate = promisify(setImmediate) +const qPromise = require('./').promise(immediate, 1) +const async = require('async') +const neo = require('neo-async') +const asyncqueue = async.queue(worker, 1) +const neoqueue = neo.queue(worker, 1) + +function bench (func, done) { + const key = max + '*' + func.name + let count = -1 + + console.time(key) + end() + + function end () { + if (++count < max) { + func(end) + } else { + console.timeEnd(key) + if (done) { + done() + } + } + } +} + +function benchFastQ (done) { + fastqueue.push(42, done) +} + +function benchAsyncQueue (done) { + asyncqueue.push(42, done) +} + +function benchNeoQueue (done) { + neoqueue.push(42, done) +} + +function worker (arg, cb) { + setImmediate(cb) +} + +function benchSetImmediate (cb) { + worker(42, cb) +} + +function benchFastQPromise (done) { + qPromise.push(42).then(function () { done() }, done) +} + +function runBench (done) { + async.eachSeries([ + benchSetImmediate, + benchFastQ, + benchNeoQueue, + benchAsyncQueue, + benchFastQPromise + ], bench, done) +} + +runBench(runBench) diff --git a/node_modules/fastq/example.js b/node_modules/fastq/example.js new file mode 100644 index 0000000..665fdc8 --- /dev/null +++ b/node_modules/fastq/example.js @@ -0,0 +1,14 @@ +'use strict' + +/* eslint-disable no-var */ + +var queue = require('./')(worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log('the result is', result) +}) + +function worker (arg, cb) { + cb(null, 42 * 2) +} diff --git a/node_modules/fastq/example.mjs b/node_modules/fastq/example.mjs new file mode 100644 index 0000000..81be789 --- /dev/null +++ b/node_modules/fastq/example.mjs @@ -0,0 +1,11 @@ +import { promise as queueAsPromised } from './queue.js' + +/* eslint-disable */ + +const queue = queueAsPromised(worker, 1) + +console.log('the result is', await queue.push(42)) + +async function worker (arg) { + return 42 * 2 +} diff --git a/node_modules/fastq/index.d.ts b/node_modules/fastq/index.d.ts new file mode 100644 index 0000000..ec5ed5c --- /dev/null +++ b/node_modules/fastq/index.d.ts @@ -0,0 +1,37 @@ +declare function fastq(context: C, worker: fastq.worker, concurrency: number): fastq.queue +declare function fastq(worker: fastq.worker, concurrency: number): fastq.queue + +declare namespace fastq { + type worker = (this: C, task: T, cb: fastq.done) => void + type asyncWorker = (this: C, task: T) => Promise + type done = (err: Error | null, result?: R) => void + type errorHandler = (err: Error, task: T) => void + + interface queue { + push(task: T, done?: done): void + unshift(task: T, done?: done): void + pause(): any + resume(): any + idle(): boolean + length(): number + getQueue(): T[] + kill(): any + killAndDrain(): any + error(handler: errorHandler): void + concurrency: number + drain(): any + empty: () => void + saturated: () => void + } + + interface queueAsPromised extends queue { + push(task: T): Promise + unshift(task: T): Promise + drained(): Promise + } + + function promise(context: C, worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised + function promise(worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised +} + +export = fastq diff --git a/node_modules/fastq/package.json b/node_modules/fastq/package.json new file mode 100644 index 0000000..9837031 --- /dev/null +++ b/node_modules/fastq/package.json @@ -0,0 +1,52 @@ +{ + "name": "fastq", + "version": "1.13.0", + "description": "Fast, in memory work queue", + "main": "queue.js", + "scripts": { + "lint": "standard --verbose | snazzy", + "unit": "nyc --lines 100 --branches 100 --functions 100 --check-coverage --reporter=text tape test/test.js test/promise.js", + "coverage": "nyc --reporter=html --reporter=cobertura --reporter=text tape test/test.js test/promise.js", + "test:report": "npm run lint && npm run unit:report", + "test": "npm run lint && npm run unit && npm run typescript", + "typescript": "tsc --project ./test/tsconfig.json", + "legacy": "tape test/test.js" + }, + "pre-commit": [ + "test" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/fastq.git" + }, + "keywords": [ + "fast", + "queue", + "async", + "worker" + ], + "author": "Matteo Collina ", + "license": "ISC", + "bugs": { + "url": "https://github.com/mcollina/fastq/issues" + }, + "homepage": "https://github.com/mcollina/fastq#readme", + "devDependencies": { + "async": "^3.1.0", + "neo-async": "^2.6.1", + "nyc": "^15.0.0", + "pre-commit": "^1.2.2", + "snazzy": "^9.0.0", + "standard": "^16.0.0", + "tape": "^5.0.0", + "typescript": "^4.0.2" + }, + "dependencies": { + "reusify": "^1.0.4" + }, + "standard": { + "ignore": [ + "example.mjs" + ] + } +} diff --git a/node_modules/fastq/queue.js b/node_modules/fastq/queue.js new file mode 100644 index 0000000..84e7bbd --- /dev/null +++ b/node_modules/fastq/queue.js @@ -0,0 +1,283 @@ +'use strict' + +/* eslint-disable no-var */ + +var reusify = require('reusify') + +function fastqueue (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } + + if (concurrency < 1) { + throw new Error('fastqueue concurrency must be greater than 1') + } + + var cache = reusify(Task) + var queueHead = null + var queueTail = null + var _running = 0 + var errorHandler = null + + var self = { + push: push, + drain: noop, + saturated: noop, + pause: pause, + paused: false, + concurrency: concurrency, + running: running, + resume: resume, + idle: idle, + length: length, + getQueue: getQueue, + unshift: unshift, + empty: noop, + kill: kill, + killAndDrain: killAndDrain, + error: error + } + + return self + + function running () { + return _running + } + + function pause () { + self.paused = true + } + + function length () { + var current = queueHead + var counter = 0 + + while (current) { + current = current.next + counter++ + } + + return counter + } + + function getQueue () { + var current = queueHead + var tasks = [] + + while (current) { + tasks.push(current.value) + current = current.next + } + + return tasks + } + + function resume () { + if (!self.paused) return + self.paused = false + for (var i = 0; i < self.concurrency; i++) { + _running++ + release() + } + } + + function idle () { + return _running === 0 && self.length() === 0 + } + + function push (value, done) { + var current = cache.get() + + current.context = context + current.release = release + current.value = value + current.callback = done || noop + current.errorHandler = errorHandler + + if (_running === self.concurrency || self.paused) { + if (queueTail) { + queueTail.next = current + queueTail = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) + } + } + + function unshift (value, done) { + var current = cache.get() + + current.context = context + current.release = release + current.value = value + current.callback = done || noop + + if (_running === self.concurrency || self.paused) { + if (queueHead) { + current.next = queueHead + queueHead = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) + } + } + + function release (holder) { + if (holder) { + cache.release(holder) + } + var next = queueHead + if (next) { + if (!self.paused) { + if (queueTail === queueHead) { + queueTail = null + } + queueHead = next.next + next.next = null + worker.call(context, next.value, next.worked) + if (queueTail === null) { + self.empty() + } + } else { + _running-- + } + } else if (--_running === 0) { + self.drain() + } + } + + function kill () { + queueHead = null + queueTail = null + self.drain = noop + } + + function killAndDrain () { + queueHead = null + queueTail = null + self.drain() + self.drain = noop + } + + function error (handler) { + errorHandler = handler + } +} + +function noop () {} + +function Task () { + this.value = null + this.callback = noop + this.next = null + this.release = noop + this.context = null + this.errorHandler = null + + var self = this + + this.worked = function worked (err, result) { + var callback = self.callback + var errorHandler = self.errorHandler + var val = self.value + self.value = null + self.callback = noop + if (self.errorHandler) { + errorHandler(err, val) + } + callback.call(self.context, err, result) + self.release(self) + } +} + +function queueAsPromised (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } + + function asyncWrapper (arg, cb) { + worker.call(this, arg) + .then(function (res) { + cb(null, res) + }, cb) + } + + var queue = fastqueue(context, asyncWrapper, concurrency) + + var pushCb = queue.push + var unshiftCb = queue.unshift + + queue.push = push + queue.unshift = unshift + queue.drained = drained + + return queue + + function push (value) { + var p = new Promise(function (resolve, reject) { + pushCb(value, function (err, result) { + if (err) { + reject(err) + return + } + resolve(result) + }) + }) + + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) + + return p + } + + function unshift (value) { + var p = new Promise(function (resolve, reject) { + unshiftCb(value, function (err, result) { + if (err) { + reject(err) + return + } + resolve(result) + }) + }) + + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) + + return p + } + + function drained () { + var previousDrain = queue.drain + + var p = new Promise(function (resolve) { + queue.drain = function () { + previousDrain() + resolve() + } + }) + + return p + } +} + +module.exports = fastqueue +module.exports.promise = queueAsPromised diff --git a/node_modules/fastq/test/example.ts b/node_modules/fastq/test/example.ts new file mode 100644 index 0000000..c454e9d --- /dev/null +++ b/node_modules/fastq/test/example.ts @@ -0,0 +1,81 @@ +import * as fastq from '../' +import { promise as queueAsPromised } from '../' + +// Basic example + +const queue = fastq(worker, 1) + +queue.push('world', (err, result) => { + if (err) throw err + console.log('the result is', result) +}) + +queue.push('push without cb') + +queue.concurrency + +queue.drain() + +queue.empty = () => undefined + +console.log('the queue tasks are', queue.getQueue()) + +queue.idle() + +queue.kill() + +queue.killAndDrain() + +queue.length + +queue.pause() + +queue.resume() + +queue.saturated = () => undefined + +queue.unshift('world', (err, result) => { + if (err) throw err + console.log('the result is', result) +}) + +queue.unshift('unshift without cb') + +function worker(task: any, cb: fastq.done) { + cb(null, 'hello ' + task) +} + +// Generics example + +interface GenericsContext { + base: number; +} + +const genericsQueue = fastq({ base: 6 }, genericsWorker, 1) + +genericsQueue.push(7, (err, done) => { + if (err) throw err + console.log('the result is', done) +}) + +genericsQueue.unshift(7, (err, done) => { + if (err) throw err + console.log('the result is', done) +}) + +function genericsWorker(this: GenericsContext, task: number, cb: fastq.done) { + cb(null, 'the meaning of life is ' + (this.base * task)) +} + +const queue2 = queueAsPromised(asyncWorker, 1) + +async function asyncWorker(task: any) { + return 'hello ' + task +} + +async function run () { + await queue.push(42) + await queue.unshift(42) +} + +run() diff --git a/node_modules/fastq/test/promise.js b/node_modules/fastq/test/promise.js new file mode 100644 index 0000000..6e123d6 --- /dev/null +++ b/node_modules/fastq/test/promise.js @@ -0,0 +1,221 @@ +'use strict' + +const test = require('tape') +const buildQueue = require('../').promise +const { promisify } = require('util') +const sleep = promisify(setTimeout) +const immediate = promisify(setImmediate) + +test('concurrency', function (t) { + t.plan(2) + t.throws(buildQueue.bind(null, worker, 0)) + t.doesNotThrow(buildQueue.bind(null, worker, 1)) + + async function worker (arg) { + return true + } +}) + +test('worker execution', async function (t) { + const queue = buildQueue(worker, 1) + + const result = await queue.push(42) + + t.equal(result, true, 'result matches') + + async function worker (arg) { + t.equal(arg, 42) + return true + } +}) + +test('limit', async function (t) { + const queue = buildQueue(worker, 1) + + const [res1, res2] = await Promise.all([queue.push(10), queue.push(0)]) + t.equal(res1, 10, 'the result matches') + t.equal(res2, 0, 'the result matches') + + async function worker (arg) { + await sleep(arg) + return arg + } +}) + +test('multiple executions', async function (t) { + const queue = buildQueue(worker, 1) + const toExec = [1, 2, 3, 4, 5] + const expected = ['a', 'b', 'c', 'd', 'e'] + let count = 0 + + await Promise.all(toExec.map(async function (task, i) { + const result = await queue.push(task) + t.equal(result, expected[i], 'the result matches') + })) + + async function worker (arg) { + t.equal(arg, toExec[count], 'arg matches') + return expected[count++] + } +}) + +test('drained', async function (t) { + const queue = buildQueue(worker, 2) + + const toExec = new Array(10).fill(10) + let count = 0 + + async function worker (arg) { + await sleep(arg) + count++ + } + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() + + t.equal(count, toExec.length) + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() + + t.equal(count, toExec.length * 2) +}) + +test('drained with exception should not throw', async function (t) { + const queue = buildQueue(worker, 2) + + const toExec = new Array(10).fill(10) + + async function worker () { + throw new Error('foo') + } + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() +}) + +test('drained with drain function', async function (t) { + let drainCalled = false + const queue = buildQueue(worker, 2) + + queue.drain = function () { + drainCalled = true + } + + const toExec = new Array(10).fill(10) + let count = 0 + + async function worker (arg) { + await sleep(arg) + count++ + } + + toExec.forEach(function () { + queue.push() + }) + + await queue.drained() + + t.equal(count, toExec.length) + t.equal(drainCalled, true) +}) + +test('set this', async function (t) { + t.plan(1) + const that = {} + const queue = buildQueue(that, worker, 1) + + await queue.push(42) + + async function worker (arg) { + t.equal(this, that, 'this matches') + } +}) + +test('unshift', async function (t) { + const queue = buildQueue(worker, 1) + const expected = [1, 2, 3, 4] + + await Promise.all([ + queue.push(1), + queue.push(4), + queue.unshift(3), + queue.unshift(2) + ]) + + t.is(expected.length, 0) + + async function worker (arg) { + t.equal(expected.shift(), arg, 'tasks come in order') + } +}) + +test('push with worker throwing error', async function (t) { + t.plan(5) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + q.error(function (err, task) { + t.ok(err instanceof Error, 'global error handler should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + t.equal(task, 42, 'The task executed should be passed') + }) + try { + await q.push(42) + } catch (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + } +}) + +test('unshift with worker throwing error', async function (t) { + t.plan(2) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + try { + await q.unshift(42) + } catch (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + } +}) + +test('no unhandledRejection (push)', async function (t) { + function handleRejection () { + t.fail('unhandledRejection') + } + process.once('unhandledRejection', handleRejection) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + + q.push(42) + + await immediate() + process.removeListener('unhandledRejection', handleRejection) +}) + +test('no unhandledRejection (unshift)', async function (t) { + function handleRejection () { + t.fail('unhandledRejection') + } + process.once('unhandledRejection', handleRejection) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + + q.unshift(42) + + await immediate() + process.removeListener('unhandledRejection', handleRejection) +}) diff --git a/node_modules/fastq/test/test.js b/node_modules/fastq/test/test.js new file mode 100644 index 0000000..1cc78a5 --- /dev/null +++ b/node_modules/fastq/test/test.js @@ -0,0 +1,566 @@ +'use strict' + +/* eslint-disable no-var */ + +var test = require('tape') +var buildQueue = require('../') + +test('concurrency', function (t) { + t.plan(2) + t.throws(buildQueue.bind(null, worker, 0)) + t.doesNotThrow(buildQueue.bind(null, worker, 1)) + + function worker (arg, cb) { + cb(null, true) + } +}) + +test('worker execution', function (t) { + t.plan(3) + + var queue = buildQueue(worker, 1) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + function worker (arg, cb) { + t.equal(arg, 42) + cb(null, true) + } +}) + +test('limit', function (t) { + t.plan(4) + + var expected = [10, 0] + var queue = buildQueue(worker, 1) + + queue.push(10, result) + queue.push(0, result) + + function result (err, arg) { + t.error(err, 'no error') + t.equal(arg, expected.shift(), 'the result matches') + } + + function worker (arg, cb) { + setTimeout(cb, arg, null, arg) + } +}) + +test('multiple executions', function (t) { + t.plan(15) + + var queue = buildQueue(worker, 1) + var toExec = [1, 2, 3, 4, 5] + var count = 0 + + toExec.forEach(function (task) { + queue.push(task, done) + }) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, toExec[count - 1], 'the result matches') + } + + function worker (arg, cb) { + t.equal(arg, toExec[count], 'arg matches') + count++ + setImmediate(cb, null, arg) + } +}) + +test('multiple executions, one after another', function (t) { + t.plan(15) + + var queue = buildQueue(worker, 1) + var toExec = [1, 2, 3, 4, 5] + var count = 0 + + queue.push(toExec[0], done) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, toExec[count - 1], 'the result matches') + if (count < toExec.length) { + queue.push(toExec[count], done) + } + } + + function worker (arg, cb) { + t.equal(arg, toExec[count], 'arg matches') + count++ + setImmediate(cb, null, arg) + } +}) + +test('set this', function (t) { + t.plan(3) + + var that = {} + var queue = buildQueue(that, worker, 1) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(this, that, 'this matches') + }) + + function worker (arg, cb) { + t.equal(this, that, 'this matches') + cb(null, true) + } +}) + +test('drain', function (t) { + t.plan(4) + + var queue = buildQueue(worker, 1) + var worked = false + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + queue.drain = function () { + t.equal(true, worked, 'drained') + } + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + setImmediate(cb, null, true) + } +}) + +test('pause && resume', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + var worked = false + + t.notOk(queue.paused, 'it should not be paused') + + queue.pause() + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + t.notOk(worked, 'it should be paused') + t.ok(queue.paused, 'it should be paused') + + queue.resume() + queue.resume() // second resume is a no-op + + t.notOk(queue.paused, 'it should not be paused') + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + cb(null, true) + } +}) + +test('pause in flight && resume', function (t) { + t.plan(9) + + var queue = buildQueue(worker, 1) + var expected = [42, 24] + + t.notOk(queue.paused, 'it should not be paused') + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.ok(queue.paused, 'it should be paused') + process.nextTick(function () { queue.resume() }) + }) + + queue.push(24, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.notOk(queue.paused, 'it should not be paused') + }) + + queue.pause() + + function worker (arg, cb) { + t.equal(arg, expected.shift()) + process.nextTick(function () { cb(null, true) }) + } +}) + +test('altering concurrency', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + var count = 0 + + queue.pause() + + queue.push(24, workDone) + queue.push(24, workDone) + + queue.concurrency = 2 + + queue.resume() + + t.equal(queue.running(), 2, '2 jobs running') + + function workDone (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + } + + function worker (arg, cb) { + t.equal(0, count, 'works in parallel') + setImmediate(function () { + count++ + cb(null, true) + }) + } +}) + +test('idle()', function (t) { + t.plan(12) + + var queue = buildQueue(worker, 1) + + t.ok(queue.idle(), 'queue is idle') + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.notOk(queue.idle(), 'queue is not idle') + }) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + // it will go idle after executing this function + setImmediate(function () { + t.ok(queue.idle(), 'queue is now idle') + }) + }) + + t.notOk(queue.idle(), 'queue is not idle') + + function worker (arg, cb) { + t.notOk(queue.idle(), 'queue is not idle') + t.equal(arg, 42) + setImmediate(cb, null, true) + } +}) + +test('saturated', function (t) { + t.plan(9) + + var queue = buildQueue(worker, 1) + var preworked = 0 + var worked = 0 + + queue.saturated = function () { + t.pass('saturated') + t.equal(preworked, 1, 'started 1 task') + t.equal(worked, 0, 'worked zero task') + } + + queue.push(42, done) + queue.push(42, done) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + } + + function worker (arg, cb) { + t.equal(arg, 42) + preworked++ + setImmediate(function () { + worked++ + cb(null, true) + }) + } +}) + +test('length', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + + t.equal(queue.length(), 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.length(), 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.length(), 1, 'one task waiting') + queue.push(42, done) + t.equal(queue.length(), 2, 'two tasks waiting') + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('getQueue', function (t) { + t.plan(10) + + var queue = buildQueue(worker, 1) + + t.equal(queue.getQueue().length, 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.getQueue().length, 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.getQueue().length, 1, 'one task waiting') + t.equal(queue.getQueue()[0], 42, 'should be equal') + queue.push(43, done) + t.equal(queue.getQueue().length, 2, 'two tasks waiting') + t.equal(queue.getQueue()[0], 42, 'should be equal') + t.equal(queue.getQueue()[1], 43, 'should be equal') + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('unshift', function (t) { + t.plan(8) + + var queue = buildQueue(worker, 1) + var expected = [1, 2, 3, 4] + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('unshift && empty', function (t) { + t.plan(2) + + var queue = buildQueue(worker, 1) + var completed = false + + queue.pause() + + queue.empty = function () { + t.notOk(completed, 'the task has not completed yet') + } + + queue.unshift(1, done) + + queue.resume() + + function done (err, result) { + completed = true + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('push && empty', function (t) { + t.plan(2) + + var queue = buildQueue(worker, 1) + var completed = false + + queue.pause() + + queue.empty = function () { + t.notOk(completed, 'the task has not completed yet') + } + + queue.push(1, done) + + queue.resume() + + function done (err, result) { + completed = true + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('kill', function (t) { + t.plan(5) + + var queue = buildQueue(worker, 1) + var expected = [1] + + var predrain = queue.drain + + queue.drain = function drain () { + t.fail('drain should never be called') + } + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + queue.kill() + + function done (err, result) { + t.error(err, 'no error') + setImmediate(function () { + t.equal(queue.length(), 0, 'no queued tasks') + t.equal(queue.running(), 0, 'no running tasks') + t.equal(queue.drain, predrain, 'drain is back to default') + }) + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('killAndDrain', function (t) { + t.plan(6) + + var queue = buildQueue(worker, 1) + var expected = [1] + + var predrain = queue.drain + + queue.drain = function drain () { + t.pass('drain has been called') + } + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + queue.killAndDrain() + + function done (err, result) { + t.error(err, 'no error') + setImmediate(function () { + t.equal(queue.length(), 0, 'no queued tasks') + t.equal(queue.running(), 0, 'no running tasks') + t.equal(queue.drain, predrain, 'drain is back to default') + }) + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('pause && idle', function (t) { + t.plan(11) + + var queue = buildQueue(worker, 1) + var worked = false + + t.notOk(queue.paused, 'it should not be paused') + t.ok(queue.idle(), 'should be idle') + + queue.pause() + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + t.notOk(worked, 'it should be paused') + t.ok(queue.paused, 'it should be paused') + t.notOk(queue.idle(), 'should not be idle') + + queue.resume() + + t.notOk(queue.paused, 'it should not be paused') + t.notOk(queue.idle(), 'it should not be idle') + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + process.nextTick(cb.bind(null, null, true)) + process.nextTick(function () { + t.ok(queue.idle(), 'is should be idle') + }) + } +}) + +test('push without cb', function (t) { + t.plan(1) + + var queue = buildQueue(worker, 1) + + queue.push(42) + + function worker (arg, cb) { + t.equal(arg, 42) + cb() + } +}) + +test('unshift without cb', function (t) { + t.plan(1) + + var queue = buildQueue(worker, 1) + + queue.unshift(42) + + function worker (arg, cb) { + t.equal(arg, 42) + cb() + } +}) + +test('push with worker throwing error', function (t) { + t.plan(5) + var q = buildQueue(function (task, cb) { + cb(new Error('test error'), null) + }, 1) + q.error(function (err, task) { + t.ok(err instanceof Error, 'global error handler should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + t.equal(task, 42, 'The task executed should be passed') + }) + q.push(42, function (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + }) +}) diff --git a/node_modules/fastq/test/tsconfig.json b/node_modules/fastq/test/tsconfig.json new file mode 100644 index 0000000..66e16e9 --- /dev/null +++ b/node_modules/fastq/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "noEmit": true, + "strict": true + }, + "files": [ + "./example.ts" + ] +} diff --git a/node_modules/file-entry-cache/LICENSE b/node_modules/file-entry-cache/LICENSE new file mode 100644 index 0000000..c58c339 --- /dev/null +++ b/node_modules/file-entry-cache/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Roy Riojas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/file-entry-cache/README.md b/node_modules/file-entry-cache/README.md new file mode 100644 index 0000000..854a512 --- /dev/null +++ b/node_modules/file-entry-cache/README.md @@ -0,0 +1,112 @@ +# file-entry-cache +> Super simple cache for file metadata, useful for process that work o a given series of files +> and that only need to repeat the job on the changed ones since the previous run of the process — Edit + +[![NPM Version](http://img.shields.io/npm/v/file-entry-cache.svg?style=flat)](https://npmjs.org/package/file-entry-cache) +[![Build Status](http://img.shields.io/travis/royriojas/file-entry-cache.svg?style=flat)](https://travis-ci.org/royriojas/file-entry-cache) + +## install + +```bash +npm i --save file-entry-cache +``` + +## Usage + +The module exposes two functions `create` and `createFromFile`. + +## `create(cacheName, [directory, useCheckSum])` +- **cacheName**: the name of the cache to be created +- **directory**: Optional the directory to load the cache from +- **usecheckSum**: Whether to use md5 checksum to verify if file changed. If false the default will be to use the mtime and size of the file. + +## `createFromFile(pathToCache, [useCheckSum])` +- **pathToCache**: the path to the cache file (this combines the cache name and directory) +- **useCheckSum**: Whether to use md5 checksum to verify if file changed. If false the default will be to use the mtime and size of the file. + +```js +// loads the cache, if one does not exists for the given +// Id a new one will be prepared to be created +var fileEntryCache = require('file-entry-cache'); + +var cache = fileEntryCache.create('testCache'); + +var files = expand('../fixtures/*.txt'); + +// the first time this method is called, will return all the files +var oFiles = cache.getUpdatedFiles(files); + +// this will persist this to disk checking each file stats and +// updating the meta attributes `size` and `mtime`. +// custom fields could also be added to the meta object and will be persisted +// in order to retrieve them later +cache.reconcile(); + +// use this if you want the non visited file entries to be kept in the cache +// for more than one execution +// +// cache.reconcile( true /* noPrune */) + +// on a second run +var cache2 = fileEntryCache.create('testCache'); + +// will return now only the files that were modified or none +// if no files were modified previous to the execution of this function +var oFiles = cache.getUpdatedFiles(files); + +// if you want to prevent a file from being considered non modified +// something useful if a file failed some sort of validation +// you can then remove the entry from the cache doing +cache.removeEntry('path/to/file'); // path to file should be the same path of the file received on `getUpdatedFiles` +// that will effectively make the file to appear again as modified until the validation is passed. In that +// case you should not remove it from the cache + +// if you need all the files, so you can determine what to do with the changed ones +// you can call +var oFiles = cache.normalizeEntries(files); + +// oFiles will be an array of objects like the following +entry = { + key: 'some/name/file', the path to the file + changed: true, // if the file was changed since previous run + meta: { + size: 3242, // the size of the file + mtime: 231231231, // the modification time of the file + data: {} // some extra field stored for this file (useful to save the result of a transformation on the file + } +} + +``` + +## Motivation for this module + +I needed a super simple and dumb **in-memory cache** with optional disk persistence (write-back cache) in order to make +a script that will beautify files with `esformatter` to execute only on the files that were changed since the last run. + +In doing so the process of beautifying files was reduced from several seconds to a small fraction of a second. + +This module uses [flat-cache](https://www.npmjs.com/package/flat-cache) a super simple `key/value` cache storage with +optional file persistance. + +The main idea is to read the files when the task begins, apply the transforms required, and if the process succeed, +then store the new state of the files. The next time this module request for `getChangedFiles` will return only +the files that were modified. Making the process to end faster. + +This module could also be used by processes that modify the files applying a transform, in that case the result of the +transform could be stored in the `meta` field, of the entries. Anything added to the meta field will be persisted. +Those processes won't need to call `getChangedFiles` they will instead call `normalizeEntries` that will return the +entries with a `changed` field that can be used to determine if the file was changed or not. If it was not changed +the transformed stored data could be used instead of actually applying the transformation, saving time in case of only +a few files changed. + +In the worst case scenario all the files will be processed. In the best case scenario only a few of them will be processed. + +## Important notes +- The values set on the meta attribute of the entries should be `stringify-able` ones if possible, flat-cache uses `circular-json` to try to persist circular structures, but this should be considered experimental. The best results are always obtained with non circular values +- All the changes to the cache state are done to memory first and only persisted after reconcile. + +## License + +MIT + + diff --git a/node_modules/file-entry-cache/cache.js b/node_modules/file-entry-cache/cache.js new file mode 100644 index 0000000..6b15767 --- /dev/null +++ b/node_modules/file-entry-cache/cache.js @@ -0,0 +1,291 @@ +var path = require('path'); +var crypto = require('crypto'); + +module.exports = { + createFromFile: function (filePath, useChecksum) { + var fname = path.basename(filePath); + var dir = path.dirname(filePath); + return this.create(fname, dir, useChecksum); + }, + + create: function (cacheId, _path, useChecksum) { + var fs = require('fs'); + var flatCache = require('flat-cache'); + var cache = flatCache.load(cacheId, _path); + var normalizedEntries = {}; + + var removeNotFoundFiles = function removeNotFoundFiles() { + const cachedEntries = cache.keys(); + // remove not found entries + cachedEntries.forEach(function remover(fPath) { + try { + fs.statSync(fPath); + } catch (err) { + if (err.code === 'ENOENT') { + cache.removeKey(fPath); + } + } + }); + }; + + removeNotFoundFiles(); + + return { + /** + * the flat cache storage used to persist the metadata of the `files + * @type {Object} + */ + cache: cache, + + /** + * Given a buffer, calculate md5 hash of its content. + * @method getHash + * @param {Buffer} buffer buffer to calculate hash on + * @return {String} content hash digest + */ + getHash: function (buffer) { + return crypto.createHash('md5').update(buffer).digest('hex'); + }, + + /** + * Return whether or not a file has changed since last time reconcile was called. + * @method hasFileChanged + * @param {String} file the filepath to check + * @return {Boolean} wheter or not the file has changed + */ + hasFileChanged: function (file) { + return this.getFileDescriptor(file).changed; + }, + + /** + * given an array of file paths it return and object with three arrays: + * - changedFiles: Files that changed since previous run + * - notChangedFiles: Files that haven't change + * - notFoundFiles: Files that were not found, probably deleted + * + * @param {Array} files the files to analyze and compare to the previous seen files + * @return {[type]} [description] + */ + analyzeFiles: function (files) { + var me = this; + files = files || []; + + var res = { + changedFiles: [], + notFoundFiles: [], + notChangedFiles: [], + }; + + me.normalizeEntries(files).forEach(function (entry) { + if (entry.changed) { + res.changedFiles.push(entry.key); + return; + } + if (entry.notFound) { + res.notFoundFiles.push(entry.key); + return; + } + res.notChangedFiles.push(entry.key); + }); + return res; + }, + + getFileDescriptor: function (file) { + var fstat; + + try { + fstat = fs.statSync(file); + } catch (ex) { + this.removeEntry(file); + return { key: file, notFound: true, err: ex }; + } + + if (useChecksum) { + return this._getFileDescriptorUsingChecksum(file); + } + + return this._getFileDescriptorUsingMtimeAndSize(file, fstat); + }, + + _getFileDescriptorUsingMtimeAndSize: function (file, fstat) { + var meta = cache.getKey(file); + var cacheExists = !!meta; + + var cSize = fstat.size; + var cTime = fstat.mtime.getTime(); + + var isDifferentDate; + var isDifferentSize; + + if (!meta) { + meta = { size: cSize, mtime: cTime }; + } else { + isDifferentDate = cTime !== meta.mtime; + isDifferentSize = cSize !== meta.size; + } + + var nEntry = (normalizedEntries[file] = { + key: file, + changed: !cacheExists || isDifferentDate || isDifferentSize, + meta: meta, + }); + + return nEntry; + }, + + _getFileDescriptorUsingChecksum: function (file) { + var meta = cache.getKey(file); + var cacheExists = !!meta; + + var contentBuffer; + try { + contentBuffer = fs.readFileSync(file); + } catch (ex) { + contentBuffer = ''; + } + + var isDifferent = true; + var hash = this.getHash(contentBuffer); + + if (!meta) { + meta = { hash: hash }; + } else { + isDifferent = hash !== meta.hash; + } + + var nEntry = (normalizedEntries[file] = { + key: file, + changed: !cacheExists || isDifferent, + meta: meta, + }); + + return nEntry; + }, + + /** + * Return the list o the files that changed compared + * against the ones stored in the cache + * + * @method getUpdated + * @param files {Array} the array of files to compare against the ones in the cache + * @returns {Array} + */ + getUpdatedFiles: function (files) { + var me = this; + files = files || []; + + return me + .normalizeEntries(files) + .filter(function (entry) { + return entry.changed; + }) + .map(function (entry) { + return entry.key; + }); + }, + + /** + * return the list of files + * @method normalizeEntries + * @param files + * @returns {*} + */ + normalizeEntries: function (files) { + files = files || []; + + var me = this; + var nEntries = files.map(function (file) { + return me.getFileDescriptor(file); + }); + + //normalizeEntries = nEntries; + return nEntries; + }, + + /** + * Remove an entry from the file-entry-cache. Useful to force the file to still be considered + * modified the next time the process is run + * + * @method removeEntry + * @param entryName + */ + removeEntry: function (entryName) { + delete normalizedEntries[entryName]; + cache.removeKey(entryName); + }, + + /** + * Delete the cache file from the disk + * @method deleteCacheFile + */ + deleteCacheFile: function () { + cache.removeCacheFile(); + }, + + /** + * remove the cache from the file and clear the memory cache + */ + destroy: function () { + normalizedEntries = {}; + cache.destroy(); + }, + + _getMetaForFileUsingCheckSum: function (cacheEntry) { + var contentBuffer = fs.readFileSync(cacheEntry.key); + var hash = this.getHash(contentBuffer); + var meta = Object.assign(cacheEntry.meta, { hash: hash }); + delete meta.size; + delete meta.mtime; + return meta; + }, + + _getMetaForFileUsingMtimeAndSize: function (cacheEntry) { + var stat = fs.statSync(cacheEntry.key); + var meta = Object.assign(cacheEntry.meta, { + size: stat.size, + mtime: stat.mtime.getTime(), + }); + delete meta.hash; + return meta; + }, + + /** + * Sync the files and persist them to the cache + * @method reconcile + */ + reconcile: function (noPrune) { + removeNotFoundFiles(); + + noPrune = typeof noPrune === 'undefined' ? true : noPrune; + + var entries = normalizedEntries; + var keys = Object.keys(entries); + + if (keys.length === 0) { + return; + } + + var me = this; + + keys.forEach(function (entryName) { + var cacheEntry = entries[entryName]; + + try { + var meta = useChecksum + ? me._getMetaForFileUsingCheckSum(cacheEntry) + : me._getMetaForFileUsingMtimeAndSize(cacheEntry); + cache.setKey(entryName, meta); + } catch (err) { + // if the file does not exists we don't save it + // other errors are just thrown + if (err.code !== 'ENOENT') { + throw err; + } + } + }); + + cache.save(noPrune); + }, + }; + }, +}; diff --git a/node_modules/file-entry-cache/changelog.md b/node_modules/file-entry-cache/changelog.md new file mode 100644 index 0000000..64d62a0 --- /dev/null +++ b/node_modules/file-entry-cache/changelog.md @@ -0,0 +1,163 @@ + +# file-entry-cache - Changelog +## v6.0.1 +- **Other changes** + - Delete previous mtime when checksum is used and vice versa - [abcf0f9]( https://github.com/royriojas/file-entry-cache/commit/abcf0f9 ), [Milos Djermanovic](https://github.com/Milos Djermanovic), 19/02/2021 18:19:43 + + + - Adds travis jobs on ppc64le - [92e4d4a]( https://github.com/royriojas/file-entry-cache/commit/92e4d4a ), [dineshks1](https://github.com/dineshks1), 25/11/2020 04:52:11 + + +## v6.0.0 +- **Refactoring** + - Align file-entry-cache with latest eslint - [4c6f1fb]( https://github.com/royriojas/file-entry-cache/commit/4c6f1fb ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:43:09 + + + - Upgrade deps - [8ab3257]( https://github.com/royriojas/file-entry-cache/commit/8ab3257 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:41:53 + + + - updated packages - [3dd4231]( https://github.com/royriojas/file-entry-cache/commit/3dd4231 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:29:37 + + + - Upgrade flat-cache to version 3 - [d7c60ef]( https://github.com/royriojas/file-entry-cache/commit/d7c60ef ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:18:04 + + +## v5.0.1 +- **Bug Fixes** + - Fix missing checksum comparison from reconcile since now we use mtime and size by default. - [e858aa9]( https://github.com/royriojas/file-entry-cache/commit/e858aa9 ), [Roy Riojas](https://github.com/Roy Riojas), 04/02/2019 09:30:22 + + Old mode using checkSum can still be used by passing the `useCheckSum` parameter to the `create` or `createFromFile` methods. + +## v5.0.0 +- **Refactoring** + - Make checksum comparison optional - [b0f9ae0]( https://github.com/royriojas/file-entry-cache/commit/b0f9ae0 ), [Roy Riojas](https://github.com/Roy Riojas), 03/02/2019 18:17:39 + + To determine if a file has changed we were using the checksum in the newer versions, but eslint was relying on the old behavior where we use the mtime and file size to determine if a file changed. That's why we decided to make the checksum check optional. + + To use it: + + ```js + // to make the cache use the checkSum check do the following: + var fCache = fileEntryCache.create(cacheName, dir, useCheckSum); // pass the third parameter as true + var otherCache = fileEntryCache.createFromFile(cacheName, useCheckSum); // pass the second parameter as true + ``` + +## v4.0.0 +- **Build Scripts Changes** + - use the same node versions eslint use - [563cfee]( https://github.com/royriojas/file-entry-cache/commit/563cfee ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 20:29:34 + + +- **Other changes** + - Remove object-assign dependency. - [d0f598e]( https://github.com/royriojas/file-entry-cache/commit/d0f598e ), [Corey Farrell](https://github.com/Corey Farrell), 08/01/2019 20:09:51 + + node.js >=4 is required so object-assign is no longer needed, the native + Object.assign can be used instead. + +## v3.0.0 +- **Build Scripts Changes** + - Upgrade flat-cache dep to latest - [078b0df]( https://github.com/royriojas/file-entry-cache/commit/078b0df ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 18:54:40 + + + - Commit new package-lock.json file - [245fe62]( https://github.com/royriojas/file-entry-cache/commit/245fe62 ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 17:56:21 + + +- **Refactoring** + - add eslintrc file - [6dd32d8]( https://github.com/royriojas/file-entry-cache/commit/6dd32d8 ), [Roy Riojas](https://github.com/Roy Riojas), 22/08/2018 09:58:17 + + +- **Other changes** + - Move variable definition out of else block - [ea05441]( https://github.com/royriojas/file-entry-cache/commit/ea05441 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 25/04/2017 11:19:00 + + + - Add script and cmd to test hash/checksum performance - [7f60e0a]( https://github.com/royriojas/file-entry-cache/commit/7f60e0a ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 24/04/2017 14:43:12 + + + - Calculate md5 hexdigest instead of Adler-32 checksum - [f9e5c69]( https://github.com/royriojas/file-entry-cache/commit/f9e5c69 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 24/04/2017 14:43:12 + + + - How to reproduce - [4edc2dc]( https://github.com/royriojas/file-entry-cache/commit/4edc2dc ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 24/04/2017 13:49:32 + + + - Test handling of removed files - [09d9ec5]( https://github.com/royriojas/file-entry-cache/commit/09d9ec5 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 19/04/2017 19:51:50 + + + - Use content checksum instead of mtime and fsize - [343b340]( https://github.com/royriojas/file-entry-cache/commit/343b340 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 19/04/2017 19:51:47 + + +- **Revert** + - Revert "How to reproduce" - [4b4e54a]( https://github.com/royriojas/file-entry-cache/commit/4b4e54a ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 25/04/2017 11:15:36 + + This reverts commit 4edc2dcec01574247bfc2e0a2fe26527332b7df3. + +## v2.0.0 +- **Features** + - do not persist and prune removed files from cache. Relates to [#2](https://github.com/royriojas/file-entry-cache/issues/2) - [408374d]( https://github.com/royriojas/file-entry-cache/commit/408374d ), [Roy Riojas](https://github.com/Roy Riojas), 16/08/2016 13:47:58 + + +## v1.3.1 +- **Build Scripts Changes** + - remove older node version - [0a26ac4]( https://github.com/royriojas/file-entry-cache/commit/0a26ac4 ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 04:09:17 + + +## v1.3.0 +- **Features** + - Add an option to not prune non visited keys. Closes [#2](https://github.com/royriojas/file-entry-cache/issues/2) - [b1a64db]( https://github.com/royriojas/file-entry-cache/commit/b1a64db ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 03:52:12 + + +## v1.2.4 +- **Enhancements** + - Expose the flat-cache instance - [f34c557]( https://github.com/royriojas/file-entry-cache/commit/f34c557 ), [royriojas](https://github.com/royriojas), 23/09/2015 18:26:33 + + +## v1.2.3 +- **Build Scripts Changes** + - update flat-cache dep - [cc7b9ce]( https://github.com/royriojas/file-entry-cache/commit/cc7b9ce ), [royriojas](https://github.com/royriojas), 11/09/2015 16:04:44 + + +## v1.2.2 +- **Build Scripts Changes** + - Add changelogx section to package.json - [a3916ff]( https://github.com/royriojas/file-entry-cache/commit/a3916ff ), [royriojas](https://github.com/royriojas), 11/09/2015 16:00:26 + + +## v1.2.1 +- **Build Scripts Changes** + - update flat-cache dep - [e49b0d4]( https://github.com/royriojas/file-entry-cache/commit/e49b0d4 ), [royriojas](https://github.com/royriojas), 11/09/2015 15:55:25 + + +- **Other changes** + - Update dependencies Replaced lodash.assign with smaller object-assign Fixed tests for windows - [0ad3000]( https://github.com/royriojas/file-entry-cache/commit/0ad3000 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 11/09/2015 15:44:18 + + +## v1.2.0 +- **Features** + - analyzeFiles now returns also the files that were removed - [6ac2431]( https://github.com/royriojas/file-entry-cache/commit/6ac2431 ), [royriojas](https://github.com/royriojas), 04/09/2015 12:40:53 + + +## v1.1.1 +- **Features** + - Add method to check if a file hasChanged - [3640e2b]( https://github.com/royriojas/file-entry-cache/commit/3640e2b ), [Roy Riojas](https://github.com/Roy Riojas), 30/08/2015 05:33:32 + + +## v1.1.0 +- **Features** + - Create the cache directly from a file path - [a23de61]( https://github.com/royriojas/file-entry-cache/commit/a23de61 ), [Roy Riojas](https://github.com/Roy Riojas), 30/08/2015 04:41:33 + + + - Add a method to remove an entry from the filecache - [7af29fc]( https://github.com/royriojas/file-entry-cache/commit/7af29fc ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 23:25:32 + + + - cache module finished - [1f95544]( https://github.com/royriojas/file-entry-cache/commit/1f95544 ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 01:08:08 + + +- **Build Scripts Changes** + - set the version for the first release - [7472eaa]( https://github.com/royriojas/file-entry-cache/commit/7472eaa ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 01:29:54 + + +- **Documentation** + - Updated documentation - [557358f]( https://github.com/royriojas/file-entry-cache/commit/557358f ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 01:29:29 + + +- **Other changes** + - Initial commit - [3d5f42b]( https://github.com/royriojas/file-entry-cache/commit/3d5f42b ), [Roy Riojas](https://github.com/Roy Riojas), 01/03/2015 21:58:29 + + diff --git a/node_modules/file-entry-cache/package.json b/node_modules/file-entry-cache/package.json new file mode 100644 index 0000000..f03ef48 --- /dev/null +++ b/node_modules/file-entry-cache/package.json @@ -0,0 +1,80 @@ +{ + "name": "file-entry-cache", + "version": "6.0.1", + "description": "Super simple cache for file metadata, useful for process that work o a given series of files and that only need to repeat the job on the changed ones since the previous run of the process", + "repository": "royriojas/file-entry-cache", + "license": "MIT", + "author": { + "name": "Roy Riojas", + "url": "http://royriojas.com" + }, + "main": "cache.js", + "files": [ + "cache.js" + ], + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "scripts": { + "eslint": "eslint --cache --cache-location=node_modules/.cache/ 'cache.js' 'test/**/*.js' 'perf.js'", + "autofix": "npm run eslint -- --fix", + "install-hooks": "prepush install && changelogx install-hook && precommit install", + "changelog": "changelogx -f markdown -o ./changelog.md", + "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", + "pre-v": "npm run test", + "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", + "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", + "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", + "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", + "test": "npm run eslint --silent && mocha -R spec test/specs", + "perf": "node perf.js", + "cover": "istanbul cover test/runner.js html text-summary", + "watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" + }, + "prepush": [ + "npm run eslint --silent" + ], + "precommit": [ + "npm run eslint --silent" + ], + "keywords": [ + "file cache", + "task cache files", + "file cache", + "key par", + "key value", + "cache" + ], + "changelogx": { + "ignoreRegExp": [ + "BLD: Release", + "DOC: Generate Changelog", + "Generated Changelog" + ], + "issueIDRegExp": "#(\\d+)", + "commitURL": "https://github.com/royriojas/file-entry-cache/commit/{0}", + "authorURL": "https://github.com/{0}", + "issueIDURL": "https://github.com/royriojas/file-entry-cache/issues/{0}", + "projectName": "file-entry-cache" + }, + "devDependencies": { + "chai": "^4.2.0", + "changelogx": "^5.0.6", + "del": "^6.0.0", + "eslint": "^7.13.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-mocha": "^8.0.0", + "eslint-plugin-prettier": "^3.1.4", + "glob-expand": "^0.2.1", + "istanbul": "^0.4.5", + "mocha": "^8.2.1", + "precommit": "^1.2.2", + "prepush": "^3.1.11", + "prettier": "^2.1.2", + "watch-run": "^1.2.5", + "write": "^2.0.0" + }, + "dependencies": { + "flat-cache": "^3.0.4" + } +} diff --git a/node_modules/fill-range/LICENSE b/node_modules/fill-range/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/fill-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/fill-range/README.md b/node_modules/fill-range/README.md new file mode 100644 index 0000000..8d756fe --- /dev/null +++ b/node_modules/fill-range/README.md @@ -0,0 +1,237 @@ +# fill-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range) + +> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save fill-range +``` + +## Usage + +Expands numbers and letters, optionally using a `step` as the last argument. _(Numbers may be defined as JavaScript numbers or strings)_. + +```js +const fill = require('fill-range'); +// fill(from, to[, step, options]); + +console.log(fill('1', '10')); //=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] +console.log(fill('1', '10', { toRegex: true })); //=> [1-9]|10 +``` + +**Params** + +* `from`: **{String|Number}** the number or letter to start with +* `to`: **{String|Number}** the number or letter to end with +* `step`: **{String|Number|Object|Function}** Optionally pass a [step](#optionsstep) to use. +* `options`: **{Object|Function}**: See all available [options](#options) + +## Examples + +By default, an array of values is returned. + +**Alphabetical ranges** + +```js +console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e'] +console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ] +``` + +**Numerical ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ] +``` + +**Negative ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ] +console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ] +``` + +**Steps (increments)** + +```js +// numerical ranges with increments +console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ] +console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ] +console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ] + +// alphabetical ranges with increments +console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ] +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ] +``` + +## Options + +### options.step + +**Type**: `number` (formatted as a string or number) + +**Default**: `undefined` + +**Description**: The increment to use for the range. Can be used with letters or numbers. + +**Example(s)** + +```js +// numbers +console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ] +console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ] +console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ] + +// letters +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ] +console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ] +``` + +### options.strictRanges + +**Type**: `boolean` + +**Default**: `false` + +**Description**: By default, `null` is returned when an invalid range is passed. Enable this option to throw a `RangeError` on invalid ranges. + +**Example(s)** + +The following are all invalid: + +```js +fill('1.1', '2'); // decimals not supported in ranges +fill('a', '2'); // incompatible range values +fill(1, 10, 'foo'); // invalid "step" argument +``` + +### options.stringify + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Cast all returned values to strings. By default, integers are returned as numbers. + +**Example(s)** + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill(1, 5, { stringify: true })); //=> [ '1', '2', '3', '4', '5' ] +``` + +### options.toRegex + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Create a regex-compatible source string, instead of expanding values to an array. + +**Example(s)** + +```js +// alphabetical range +console.log(fill('a', 'e', { toRegex: true })); //=> '[a-e]' +// alphabetical with step +console.log(fill('a', 'z', 3, { toRegex: true })); //=> 'a|d|g|j|m|p|s|v|y' +// numerical range +console.log(fill('1', '100', { toRegex: true })); //=> '[1-9]|[1-9][0-9]|100' +// numerical range with zero padding +console.log(fill('000001', '100000', { toRegex: true })); +//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000' +``` + +### options.transform + +**Type**: `function` + +**Default**: `undefined` + +**Description**: Customize each value in the returned array (or [string](#optionstoRegex)). _(you can also pass this function as the last argument to `fill()`)_. + +**Example(s)** + +```js +// add zero padding +console.log(fill(1, 5, value => String(value).padStart(4, '0'))); +//=> ['0001', '0002', '0003', '0004', '0005'] +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 116 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [paulmillr](https://github.com/paulmillr) | +| 2 | [realityking](https://github.com/realityking) | +| 2 | [bluelovers](https://github.com/bluelovers) | +| 1 | [edorivai](https://github.com/edorivai) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/node_modules/fill-range/index.js b/node_modules/fill-range/index.js new file mode 100644 index 0000000..97ce35a --- /dev/null +++ b/node_modules/fill-range/index.js @@ -0,0 +1,249 @@ +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ + +'use strict'; + +const util = require('util'); +const toRegexRange = require('to-regex-range'); + +const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; + +const isValidValue = value => { + return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; + +const isNumber = num => Number.isInteger(+num); + +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; + while (value[++index] === '0'); + return index > 0; +}; + +const stringify = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; + } + return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); + } + if (toNumber === false) { + return String(input); + } + return input; +}; + +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) input = '0' + input; + return negative ? ('-' + input) : input; +}; + +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; + + if (parts.positives.length) { + positives = parts.positives.join('|'); + } + + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; + } + + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + + if (options.wrap) { + return `(${prefix}${result})`; + } + + return result; +}; + +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, { wrap: false, ...options }); + } + + let start = String.fromCharCode(a); + if (a === b) return start; + + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; + +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } + return toRegexRange(start, end, options); +}; + +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util.inspect(...args)); +}; + +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; + +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; +}; + +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } + + // fix negative zero + if (a === 0) a = 0; + if (b === 0) b = 0; + + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify(start, end, options) === false; + let format = options.transform || transform(toNumber); + + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + + let parts = { negatives: [], positives: [] }; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return step > 1 + ? toSequence(parts, options) + : toRegex(range, null, { wrap: false, ...options }); + } + + return range; +}; + +const fillLetters = (start, end, step = 1, options = {}) => { + if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { + return invalidRange(start, end, options); + } + + + let format = options.transform || (val => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + + return range; +}; + +const fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + + if (typeof step === 'function') { + return fill(start, end, 1, { transform: step }); + } + + if (isObject(step)) { + return fill(start, end, 0, step); + } + + let opts = { ...options }; + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; + + if (!isNumber(step)) { + if (step != null && !isObject(step)) return invalidStep(step, opts); + return fill(start, end, 1, step); + } + + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; + +module.exports = fill; diff --git a/node_modules/fill-range/package.json b/node_modules/fill-range/package.json new file mode 100644 index 0000000..07d3076 --- /dev/null +++ b/node_modules/fill-range/package.json @@ -0,0 +1,69 @@ +{ + "name": "fill-range", + "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", + "version": "7.0.1", + "homepage": "https://github.com/jonschlinkert/fill-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Edo Rivai (edo.rivai.nl)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Paul Miller (paulmillr.com)", + "Rouven Weßling (www.rouvenwessling.de)", + "(https://github.com/wtgtybhertgeghgtwtg)" + ], + "repository": "jonschlinkert/fill-range", + "bugs": { + "url": "https://github.com/jonschlinkert/fill-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "devDependencies": { + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1" + }, + "keywords": [ + "alpha", + "alphabetical", + "array", + "bash", + "brace", + "expand", + "expansion", + "fill", + "glob", + "match", + "matches", + "matching", + "number", + "numerical", + "range", + "ranges", + "regex", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/find-up/index.d.ts b/node_modules/find-up/index.d.ts new file mode 100644 index 0000000..6746bb7 --- /dev/null +++ b/node_modules/find-up/index.d.ts @@ -0,0 +1,138 @@ +/* eslint-disable @typescript-eslint/unified-signatures */ +import {Options as LocatePathOptions} from 'locate-path'; + +declare const stop: unique symbol; + +declare namespace findUp { + interface Options extends LocatePathOptions {} + + type StopSymbol = typeof stop; + + type Match = string | StopSymbol | undefined; +} + +declare const findUp: { + sync: { + /** + Synchronously check if a path exists. + + @param path - Path to the file or directory. + @returns Whether the path exists. + + @example + ``` + import findUp = require('find-up'); + + console.log(findUp.sync.exists('/Users/sindresorhus/unicorn.png')); + //=> true + ``` + */ + exists: (path: string) => boolean; + + /** + Synchronously find a file or directory by walking up parent directories. + + @param name - Name of the file or directory to find. Can be multiple. + @returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. + */ + (name: string | readonly string[], options?: findUp.Options): string | undefined; + + /** + Synchronously find a file or directory by walking up parent directories. + + @param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. + @returns The first path found or `undefined` if none could be found. + + @example + ``` + import path = require('path'); + import findUp = require('find-up'); + + console.log(findUp.sync(directory => { + const hasUnicorns = findUp.sync.exists(path.join(directory, 'unicorn.png')); + return hasUnicorns && directory; + }, {type: 'directory'})); + //=> '/Users/sindresorhus' + ``` + */ + (matcher: (directory: string) => findUp.Match, options?: findUp.Options): string | undefined; + }; + + /** + Check if a path exists. + + @param path - Path to a file or directory. + @returns Whether the path exists. + + @example + ``` + import findUp = require('find-up'); + + (async () => { + console.log(await findUp.exists('/Users/sindresorhus/unicorn.png')); + //=> true + })(); + ``` + */ + exists: (path: string) => Promise; + + /** + Return this in a `matcher` function to stop the search and force `findUp` to immediately return `undefined`. + */ + readonly stop: findUp.StopSymbol; + + /** + Find a file or directory by walking up parent directories. + + @param name - Name of the file or directory to find. Can be multiple. + @returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. + + @example + ``` + // / + // └── Users + // └── sindresorhus + // ├── unicorn.png + // └── foo + // └── bar + // ├── baz + // └── example.js + + // example.js + import findUp = require('find-up'); + + (async () => { + console.log(await findUp('unicorn.png')); + //=> '/Users/sindresorhus/unicorn.png' + + console.log(await findUp(['rainbow.png', 'unicorn.png'])); + //=> '/Users/sindresorhus/unicorn.png' + })(); + ``` + */ + (name: string | readonly string[], options?: findUp.Options): Promise; + + /** + Find a file or directory by walking up parent directories. + + @param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. + @returns The first path found or `undefined` if none could be found. + + @example + ``` + import path = require('path'); + import findUp = require('find-up'); + + (async () => { + console.log(await findUp(async directory => { + const hasUnicorns = await findUp.exists(path.join(directory, 'unicorn.png')); + return hasUnicorns && directory; + }, {type: 'directory'})); + //=> '/Users/sindresorhus' + })(); + ``` + */ + (matcher: (directory: string) => (findUp.Match | Promise), options?: findUp.Options): Promise; +}; + +export = findUp; diff --git a/node_modules/find-up/index.js b/node_modules/find-up/index.js new file mode 100644 index 0000000..ce564e5 --- /dev/null +++ b/node_modules/find-up/index.js @@ -0,0 +1,89 @@ +'use strict'; +const path = require('path'); +const locatePath = require('locate-path'); +const pathExists = require('path-exists'); + +const stop = Symbol('findUp.stop'); + +module.exports = async (name, options = {}) => { + let directory = path.resolve(options.cwd || ''); + const {root} = path.parse(directory); + const paths = [].concat(name); + + const runMatcher = async locateOptions => { + if (typeof name !== 'function') { + return locatePath(paths, locateOptions); + } + + const foundPath = await name(locateOptions.cwd); + if (typeof foundPath === 'string') { + return locatePath([foundPath], locateOptions); + } + + return foundPath; + }; + + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-next-line no-await-in-loop + const foundPath = await runMatcher({...options, cwd: directory}); + + if (foundPath === stop) { + return; + } + + if (foundPath) { + return path.resolve(directory, foundPath); + } + + if (directory === root) { + return; + } + + directory = path.dirname(directory); + } +}; + +module.exports.sync = (name, options = {}) => { + let directory = path.resolve(options.cwd || ''); + const {root} = path.parse(directory); + const paths = [].concat(name); + + const runMatcher = locateOptions => { + if (typeof name !== 'function') { + return locatePath.sync(paths, locateOptions); + } + + const foundPath = name(locateOptions.cwd); + if (typeof foundPath === 'string') { + return locatePath.sync([foundPath], locateOptions); + } + + return foundPath; + }; + + // eslint-disable-next-line no-constant-condition + while (true) { + const foundPath = runMatcher({...options, cwd: directory}); + + if (foundPath === stop) { + return; + } + + if (foundPath) { + return path.resolve(directory, foundPath); + } + + if (directory === root) { + return; + } + + directory = path.dirname(directory); + } +}; + +module.exports.exists = pathExists; + +module.exports.sync.exists = pathExists.sync; + +module.exports.stop = stop; diff --git a/node_modules/find-up/license b/node_modules/find-up/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/find-up/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/find-up/package.json b/node_modules/find-up/package.json new file mode 100644 index 0000000..56db6dd --- /dev/null +++ b/node_modules/find-up/package.json @@ -0,0 +1,54 @@ +{ + "name": "find-up", + "version": "5.0.0", + "description": "Find a file or directory by walking up parent directories", + "license": "MIT", + "repository": "sindresorhus/find-up", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "file", + "search", + "match", + "package", + "resolve", + "parent", + "parents", + "folder", + "directory", + "walk", + "walking", + "path" + ], + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "devDependencies": { + "ava": "^2.1.0", + "is-path-inside": "^2.1.0", + "tempy": "^0.6.0", + "tsd": "^0.13.1", + "xo": "^0.33.0" + } +} diff --git a/node_modules/find-up/readme.md b/node_modules/find-up/readme.md new file mode 100644 index 0000000..7ad908a --- /dev/null +++ b/node_modules/find-up/readme.md @@ -0,0 +1,151 @@ +# find-up [![Build Status](https://travis-ci.com/sindresorhus/find-up.svg?branch=master)](https://travis-ci.com/github/sindresorhus/find-up) + +> Find a file or directory by walking up parent directories + +## Install + +``` +$ npm install find-up +``` + +## Usage + +``` +/ +└── Users + └── sindresorhus + ├── unicorn.png + └── foo + └── bar + ├── baz + └── example.js +``` + +`example.js` + +```js +const path = require('path'); +const findUp = require('find-up'); + +(async () => { + console.log(await findUp('unicorn.png')); + //=> '/Users/sindresorhus/unicorn.png' + + console.log(await findUp(['rainbow.png', 'unicorn.png'])); + //=> '/Users/sindresorhus/unicorn.png' + + console.log(await findUp(async directory => { + const hasUnicorns = await findUp.exists(path.join(directory, 'unicorn.png')); + return hasUnicorns && directory; + }, {type: 'directory'})); + //=> '/Users/sindresorhus' +})(); +``` + +## API + +### findUp(name, options?) +### findUp(matcher, options?) + +Returns a `Promise` for either the path or `undefined` if it couldn't be found. + +### findUp([...name], options?) + +Returns a `Promise` for either the first path found (by respecting the order of the array) or `undefined` if none could be found. + +### findUp.sync(name, options?) +### findUp.sync(matcher, options?) + +Returns a path or `undefined` if it couldn't be found. + +### findUp.sync([...name], options?) + +Returns the first path found (by respecting the order of the array) or `undefined` if none could be found. + +#### name + +Type: `string` + +Name of the file or directory to find. + +#### matcher + +Type: `Function` + +A function that will be called with each directory until it returns a `string` with the path, which stops the search, or the root directory has been reached and nothing was found. Useful if you want to match files with certain patterns, set of permissions, or other advanced use-cases. + +When using async mode, the `matcher` may optionally be an async or promise-returning function that returns the path. + +#### options + +Type: `object` + +##### cwd + +Type: `string`\ +Default: `process.cwd()` + +Directory to start from. + +##### type + +Type: `string`\ +Default: `'file'`\ +Values: `'file'` `'directory'` + +The type of paths that can match. + +##### allowSymlinks + +Type: `boolean`\ +Default: `true` + +Allow symbolic links to match if they point to the chosen path type. + +### findUp.exists(path) + +Returns a `Promise` of whether the path exists. + +### findUp.sync.exists(path) + +Returns a `boolean` of whether the path exists. + +#### path + +Type: `string` + +Path to a file or directory. + +### findUp.stop + +A [`Symbol`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) that can be returned by a `matcher` function to stop the search and cause `findUp` to immediately return `undefined`. Useful as a performance optimization in case the current working directory is deeply nested in the filesystem. + +```js +const path = require('path'); +const findUp = require('find-up'); + +(async () => { + await findUp(directory => { + return path.basename(directory) === 'work' ? findUp.stop : 'logo.png'; + }); +})(); +``` + +## Related + +- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module +- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file +- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package +- [resolve-from](https://github.com/sindresorhus/resolve-from) - Resolve the path of a module like `require.resolve()` but from a given path + +--- + +
+ + Get professional support for 'find-up' with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/flat-cache/LICENSE b/node_modules/flat-cache/LICENSE new file mode 100644 index 0000000..c58c339 --- /dev/null +++ b/node_modules/flat-cache/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Roy Riojas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/flat-cache/README.md b/node_modules/flat-cache/README.md new file mode 100644 index 0000000..03e256a --- /dev/null +++ b/node_modules/flat-cache/README.md @@ -0,0 +1,73 @@ +# flat-cache +> A stupidly simple key/value storage using files to persist the data + +[![NPM Version](http://img.shields.io/npm/v/flat-cache.svg?style=flat)](https://npmjs.org/package/flat-cache) +[![Build Status](https://api.travis-ci.org/royriojas/flat-cache.svg?branch=master)](https://travis-ci.org/royriojas/flat-cache) + +## install + +```bash +npm i --save flat-cache +``` + +## Usage + +```js +var flatCache = require('flat-cache') +// loads the cache, if one does not exists for the given +// Id a new one will be prepared to be created +var cache = flatCache.load('cacheId'); + +// sets a key on the cache +cache.setKey('key', { foo: 'var' }); + +// get a key from the cache +cache.getKey('key') // { foo: 'var' } + +// fetch the entire persisted object +cache.all() // { 'key': { foo: 'var' } } + +// remove a key +cache.removeKey('key'); // removes a key from the cache + +// save it to disk +cache.save(); // very important, if you don't save no changes will be persisted. +// cache.save( true /* noPrune */) // can be used to prevent the removal of non visited keys + +// loads the cache from a given directory, if one does +// not exists for the given Id a new one will be prepared to be created +var cache = flatCache.load('cacheId', path.resolve('./path/to/folder')); + +// The following methods are useful to clear the cache +// delete a given cache +flatCache.clearCacheById('cacheId') // removes the cacheId document if one exists. + +// delete all cache +flatCache.clearAll(); // remove the cache directory +``` + +## Motivation for this module + +I needed a super simple and dumb **in-memory cache** with optional disk persistance in order to make +a script that will beutify files with `esformatter` only execute on the files that were changed since the last run. +To make that possible we need to store the `fileSize` and `modificationTime` of the files. So a simple `key/value` +storage was needed and Bam! this module was born. + +## Important notes +- If no directory is especified when the `load` method is called, a folder named `.cache` will be created + inside the module directory when `cache.save` is called. If you're committing your `node_modules` to any vcs, you + might want to ignore the default `.cache` folder, or specify a custom directory. +- The values set on the keys of the cache should be `stringify-able` ones, meaning no circular references +- All the changes to the cache state are done to memory +- I could have used a timer or `Object.observe` to deliver the changes to disk, but I wanted to keep this module + intentionally dumb and simple +- Non visited keys are removed when `cache.save()` is called. If this is not desired, you can pass `true` to the save call + like: `cache.save( true /* noPrune */ )`. + +## License + +MIT + +## Changelog + +[changelog](./changelog.md) diff --git a/node_modules/flat-cache/changelog.md b/node_modules/flat-cache/changelog.md new file mode 100644 index 0000000..1ad0fdf --- /dev/null +++ b/node_modules/flat-cache/changelog.md @@ -0,0 +1,328 @@ + +# flat-cache - Changelog +## v3.0.4 +- **Refactoring** + - add files by name to the list of exported files - [89a2698]( https://github.com/royriojas/flat-cache/commit/89a2698 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:35:39 + + +## v3.0.3 +- **Bug Fixes** + - Fix wrong eslint command - [f268e42]( https://github.com/royriojas/flat-cache/commit/f268e42 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:15:04 + + +## v3.0.2 +- **Refactoring** + - Update the files paths - [6983a80]( https://github.com/royriojas/flat-cache/commit/6983a80 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:58:39 + + + - Move code to src/ - [18ed6e8]( https://github.com/royriojas/flat-cache/commit/18ed6e8 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:57:17 + + + - Change eslint-cache location - [beed74c]( https://github.com/royriojas/flat-cache/commit/beed74c ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:48:32 + + +## v3.0.1 +- **Refactoring** + - Remove unused deps - [8c6d9dc]( https://github.com/royriojas/flat-cache/commit/8c6d9dc ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:43:29 + + +## v3.0.0 +- **Refactoring** + - Fix engines - [52b824c]( https://github.com/royriojas/flat-cache/commit/52b824c ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:01:52 + + +- **Other changes** + - Replace write with combination of mkdir and writeFile ([#49](https://github.com/royriojas/flat-cache/issues/49)) - [ef48276]( https://github.com/royriojas/flat-cache/commit/ef48276 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 08/11/2020 00:17:15 + + Node v10 introduced a great "recursive" option for mkdir which allows to + get rid from mkdirp package and easily rewrite "write" package usage + with two function calls. + + https://nodejs.org/api/fs.html#fs_fs_mkdir_path_options_callback + - Added a testcase for clearAll ([#48](https://github.com/royriojas/flat-cache/issues/48)) - [45b51ca]( https://github.com/royriojas/flat-cache/commit/45b51ca ), [Aaron Chen](https://github.com/Aaron Chen), 21/05/2020 08:40:03 + + + - requet node>=10 - [a5c482c]( https://github.com/royriojas/flat-cache/commit/a5c482c ), [yumetodo](https://github.com/yumetodo), 10/04/2020 23:14:53 + + thanks @SuperITMan + + - Update README.md - [29fe40b]( https://github.com/royriojas/flat-cache/commit/29fe40b ), [Roy Riojas](https://github.com/Roy Riojas), 10/04/2020 20:08:05 + + + - reduce vulnerability to 1 - [e9db1b2]( https://github.com/royriojas/flat-cache/commit/e9db1b2 ), [yumetodo](https://github.com/yumetodo), 30/03/2020 11:10:43 + + + - reduce vulnerabilities dependencies to 8 - [b58d196]( https://github.com/royriojas/flat-cache/commit/b58d196 ), [yumetodo](https://github.com/yumetodo), 30/03/2020 10:54:56 + + + - use prettier instead of esbeautifier - [03b1db7]( https://github.com/royriojas/flat-cache/commit/03b1db7 ), [yumetodo](https://github.com/yumetodo), 30/03/2020 10:27:14 + + + - update proxyquire - [c2f048d]( https://github.com/royriojas/flat-cache/commit/c2f048d ), [yumetodo](https://github.com/yumetodo), 30/03/2020 10:16:16 + + + - update flatted and mocha - [a0e56da]( https://github.com/royriojas/flat-cache/commit/a0e56da ), [yumetodo](https://github.com/yumetodo), 30/03/2020 09:46:45 + + mocha > mkdirp is updated + istanble >>> optimist > minimist is not updated + + - drop support node.js < 10 in develop - [beba691]( https://github.com/royriojas/flat-cache/commit/beba691 ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:31:09 + + see mkdirp + + - npm aufit fix(still remains) - [ce166cb]( https://github.com/royriojas/flat-cache/commit/ce166cb ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:18:08 + + 37 vulnerabilities required manual review and could not be updated + + - updtate sinon - [9f2d1b6]( https://github.com/royriojas/flat-cache/commit/9f2d1b6 ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:17:51 + + + - apply eslint-plugin-mocha - [07343b5]( https://github.com/royriojas/flat-cache/commit/07343b5 ), [yumetodo](https://github.com/yumetodo), 13/03/2020 22:17:21 + + + - Less strint version check ([#44](https://github.com/royriojas/flat-cache/issues/44)) - [92aca1c]( https://github.com/royriojas/flat-cache/commit/92aca1c ), [Wojciech Maj](https://github.com/Wojciech Maj), 13/11/2019 16:18:25 + + * Use ^ version matching for production dependencies + + * Run npm audit fix + +- **Bug Fixes** + - update dependencies and use eslint directly - [73fbed2]( https://github.com/royriojas/flat-cache/commit/73fbed2 ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:17:27 + + +## v2.0.1 +- **Refactoring** + - upgrade node modules to latest versions - [6402ed3]( https://github.com/royriojas/flat-cache/commit/6402ed3 ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 18:47:05 + + +## v2.0.0 +- **Bug Fixes** + - upgrade package.json lock file - [8d21c7b]( https://github.com/royriojas/flat-cache/commit/8d21c7b ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 17:03:13 + + + - Use the same versions of node_js that eslint use - [8d23379]( https://github.com/royriojas/flat-cache/commit/8d23379 ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 16:25:11 + + +- **Other changes** + - Replace circular-json with flatted ([#36](https://github.com/royriojas/flat-cache/issues/36)) - [b93aced]( https://github.com/royriojas/flat-cache/commit/b93aced ), [C. K. Tang](https://github.com/C. K. Tang), 08/01/2019 17:03:01 + + + - Change JSON parser from circular-json to flatted & 1 more changes ([#37](https://github.com/royriojas/flat-cache/issues/37)) - [745e65a]( https://github.com/royriojas/flat-cache/commit/745e65a ), [Andy Chen](https://github.com/Andy Chen), 08/01/2019 16:17:20 + + * Change JSON parser from circular-json to flatted & 1 more changes + + * Change JSON parser from circular-json + * Audited 2 vulnerabilities + + * Update package.json + + * Update Engine require + + * There's a bunch of dependencies in this pkg requires node >=4, so I changed it to 4 + + * Remove and add node versions + + * I have seen this pkg is not available with node 0.12 so I removed it + * I have added a popular used LTS version of node - 10 + +## v1.3.4 +- **Refactoring** + - Add del.js and utils.js to the list of files to be beautified - [9d0ca9b]( https://github.com/royriojas/flat-cache/commit/9d0ca9b ), [Roy Riojas](https://github.com/Roy Riojas), 14/11/2018 12:19:02 + + +## v1.3.3 +- **Refactoring** + - Make sure package-lock.json is up to date - [a7d2598]( https://github.com/royriojas/flat-cache/commit/a7d2598 ), [Roy Riojas](https://github.com/Roy Riojas), 14/11/2018 11:36:08 + + +- **Other changes** + - Removed the need for del ([#33](https://github.com/royriojas/flat-cache/issues/33)) - [c429012]( https://github.com/royriojas/flat-cache/commit/c429012 ), [S. Gilroy](https://github.com/S. Gilroy), 13/11/2018 13:56:37 + + * Removed the need for del + + Removed the need for del as newer versions have broken backwards + compatibility. del mainly uses rimraf for deleting folders + and files, replaceing it with rimraf only is a minimal change. + + * Disable glob on rimraf calls + + * Added glob disable to wrong call + + * Wrapped rimraf to simplify solution + +## v1.3.2 +- **Refactoring** + - remove yarn.lock file - [704c6c4]( https://github.com/royriojas/flat-cache/commit/704c6c4 ), [Roy Riojas](https://github.com/Roy Riojas), 07/11/2018 15:41:08 + + +- **Other changes** + - replace circular-json with flatted ([#23](https://github.com/royriojas/flat-cache/issues/23))" - [db12d74]( https://github.com/royriojas/flat-cache/commit/db12d74 ), [Roy Riojas](https://github.com/Roy Riojas), 07/11/2018 15:40:39 + + This reverts commit 00f689277a75e85fef28e6a048fad227afc525e6. + +## v1.3.1 +- **Refactoring** + - upgrade deps to remove some security warnings - [f405719]( https://github.com/royriojas/flat-cache/commit/f405719 ), [Roy Riojas](https://github.com/Roy Riojas), 06/11/2018 12:07:31 + + +- **Bug Fixes** + - replace circular-json with flatted ([#23](https://github.com/royriojas/flat-cache/issues/23)) - [00f6892]( https://github.com/royriojas/flat-cache/commit/00f6892 ), [Terry](https://github.com/Terry), 05/11/2018 18:44:16 + + +- **Other changes** + - update del to v3.0.0 ([#26](https://github.com/royriojas/flat-cache/issues/26)) - [d42883f]( https://github.com/royriojas/flat-cache/commit/d42883f ), [Patrick Silva](https://github.com/Patrick Silva), 03/11/2018 01:00:44 + + Closes #25 +## v1.3.0 +- **Other changes** + - Added #all method ([#16](https://github.com/royriojas/flat-cache/issues/16)) - [12293be]( https://github.com/royriojas/flat-cache/commit/12293be ), [Ozair Patel](https://github.com/Ozair Patel), 25/09/2017 14:46:38 + + * Added #all method + + * Added #all method test + + * Updated readme + + * Added yarn.lock + + * Added more keys for #all test + + * Beautified file + + - fix changelog title style ([#14](https://github.com/royriojas/flat-cache/issues/14)) - [af8338a]( https://github.com/royriojas/flat-cache/commit/af8338a ), [前端小武](https://github.com/前端小武), 19/12/2016 20:34:48 + + +## v1.2.2 +- **Bug Fixes** + - Do not crash if cache file is invalid JSON. ([#13](https://github.com/royriojas/flat-cache/issues/13)) - [87beaa6]( https://github.com/royriojas/flat-cache/commit/87beaa6 ), [Roy Riojas](https://github.com/Roy Riojas), 19/12/2016 18:03:35 + + Fixes #12 + + Not sure under which situations a cache file might exist that does + not contain a valid JSON structure, but just in case to cover + the possibility of this happening a try catch block has been added + + If the cache is somehow not valid the cache will be discarded an a + a new cache will be stored instead +- **Other changes** + - Added travis ci support for modern node versions ([#11](https://github.com/royriojas/flat-cache/issues/11)) - [1c2b1f7]( https://github.com/royriojas/flat-cache/commit/1c2b1f7 ), [Amila Welihinda](https://github.com/Amila Welihinda), 10/11/2016 23:47:52 + + + - Bumping `circular-son` version ([#10](https://github.com/royriojas/flat-cache/issues/10)) - [4d5e861]( https://github.com/royriojas/flat-cache/commit/4d5e861 ), [Andrea Giammarchi](https://github.com/Andrea Giammarchi), 02/08/2016 07:13:52 + + As mentioned in https://github.com/WebReflection/circular-json/issues/25 `circular-json` wan't rightly implementing the license field. + + Latest version bump changed only that bit so that ESLint should now be happy. +## v1.2.1 +- **Bug Fixes** + - Add missing utils.js file to the package. closes [#8](https://github.com/royriojas/flat-cache/issues/8) - [ec10cf2]( https://github.com/royriojas/flat-cache/commit/ec10cf2 ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 02:18:57 + + +## v1.2.0 +- **Documentation** + - Add documentation about noPrune option - [23e11f9]( https://github.com/royriojas/flat-cache/commit/23e11f9 ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 02:06:49 + + +## v1.0.11 +- **Features** + - Add noPrune option to cache.save() method. closes [#7](https://github.com/royriojas/flat-cache/issues/7) - [2c8016a]( https://github.com/royriojas/flat-cache/commit/2c8016a ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 02:00:29 + + + - Add json read and write utility based on circular-json - [c31081e]( https://github.com/royriojas/flat-cache/commit/c31081e ), [Jean Ponchon](https://github.com/Jean Ponchon), 28/07/2016 08:58:17 + + +- **Bug Fixes** + - Remove UTF16 BOM stripping - [4a41e22]( https://github.com/royriojas/flat-cache/commit/4a41e22 ), [Jean Ponchon](https://github.com/Jean Ponchon), 29/07/2016 02:18:06 + + Since we control both writing and reading of JSON stream, there no needs + to handle unicode BOM. + - Use circular-json to handle circular references (fix [#5](https://github.com/royriojas/flat-cache/issues/5)) - [cd7aeed]( https://github.com/royriojas/flat-cache/commit/cd7aeed ), [Jean Ponchon](https://github.com/Jean Ponchon), 25/07/2016 11:11:59 + + +- **Tests Related fixes** + - Add missing file from eslint test - [d6fa3c3]( https://github.com/royriojas/flat-cache/commit/d6fa3c3 ), [Jean Ponchon](https://github.com/Jean Ponchon), 29/07/2016 02:15:51 + + + - Add test for circular json serialization / deserialization - [07d2ddd]( https://github.com/royriojas/flat-cache/commit/07d2ddd ), [Jean Ponchon](https://github.com/Jean Ponchon), 28/07/2016 08:59:36 + + +- **Refactoring** + - Remove unused read-json-sync - [2be1c24]( https://github.com/royriojas/flat-cache/commit/2be1c24 ), [Jean Ponchon](https://github.com/Jean Ponchon), 28/07/2016 08:59:18 + + +- **Build Scripts Changes** + - travis tests on 0.12 and 4x - [3a613fd]( https://github.com/royriojas/flat-cache/commit/3a613fd ), [royriojas](https://github.com/royriojas), 15/11/2015 14:34:40 + + +## v1.0.10 +- **Build Scripts Changes** + - add eslint-fix task - [fd29e52]( https://github.com/royriojas/flat-cache/commit/fd29e52 ), [royriojas](https://github.com/royriojas), 01/11/2015 15:04:08 + + + - make sure the test script also verify beautification and linting of files before running tests - [e94e176]( https://github.com/royriojas/flat-cache/commit/e94e176 ), [royriojas](https://github.com/royriojas), 01/11/2015 11:54:48 + + +- **Other changes** + - add clearAll for cacheDir - [97383d9]( https://github.com/royriojas/flat-cache/commit/97383d9 ), [xieyaowu](https://github.com/xieyaowu), 31/10/2015 21:02:18 + + +## v1.0.9 +- **Bug Fixes** + - wrong default values for changelogx user repo name - [7bb52d1]( https://github.com/royriojas/flat-cache/commit/7bb52d1 ), [royriojas](https://github.com/royriojas), 11/09/2015 15:59:30 + + +## v1.0.8 +- **Build Scripts Changes** + - test against node 4 - [c395b66]( https://github.com/royriojas/flat-cache/commit/c395b66 ), [royriojas](https://github.com/royriojas), 11/09/2015 15:51:39 + + +## v1.0.7 +- **Other changes** + - Move dependencies into devDep - [7e47099]( https://github.com/royriojas/flat-cache/commit/7e47099 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 11/09/2015 15:10:57 + + +- **Documentation** + - Add missing changelog link - [f51197a]( https://github.com/royriojas/flat-cache/commit/f51197a ), [royriojas](https://github.com/royriojas), 11/09/2015 14:48:05 + + +## v1.0.6 +- **Build Scripts Changes** + - Add helpers/code check scripts - [bdb82f3]( https://github.com/royriojas/flat-cache/commit/bdb82f3 ), [royriojas](https://github.com/royriojas), 11/09/2015 14:44:31 + + +## v1.0.5 +- **Documentation** + - better description for the module - [436817f]( https://github.com/royriojas/flat-cache/commit/436817f ), [royriojas](https://github.com/royriojas), 11/09/2015 14:35:33 + + +- **Other changes** + - Update dependencies - [be88aa3]( https://github.com/royriojas/flat-cache/commit/be88aa3 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 11/09/2015 13:47:41 + + +## v1.0.4 +- **Refactoring** + - load a cache file using the full filepath - [b8f68c2]( https://github.com/royriojas/flat-cache/commit/b8f68c2 ), [Roy Riojas](https://github.com/Roy Riojas), 30/08/2015 04:19:14 + + +- **Documentation** + - Add documentation about `clearAll` and `clearCacheById` - [13947c1]( https://github.com/royriojas/flat-cache/commit/13947c1 ), [Roy Riojas](https://github.com/Roy Riojas), 01/03/2015 23:44:05 + + +- **Features** + - Add methods to remove the cache documents created - [af40443]( https://github.com/royriojas/flat-cache/commit/af40443 ), [Roy Riojas](https://github.com/Roy Riojas), 01/03/2015 23:39:27 + + +## v1.0.1 +- **Other changes** + - Update README.md - [c2b6805]( https://github.com/royriojas/flat-cache/commit/c2b6805 ), [Roy Riojas](https://github.com/Roy Riojas), 26/02/2015 04:28:07 + + +## v1.0.0 +- **Refactoring** + - flat-cache v.1.0.0 - [c984274]( https://github.com/royriojas/flat-cache/commit/c984274 ), [Roy Riojas](https://github.com/Roy Riojas), 26/02/2015 04:11:50 + + +- **Other changes** + - Initial commit - [d43cccf]( https://github.com/royriojas/flat-cache/commit/d43cccf ), [Roy Riojas](https://github.com/Roy Riojas), 26/02/2015 01:12:16 + + diff --git a/node_modules/flat-cache/package.json b/node_modules/flat-cache/package.json new file mode 100644 index 0000000..8bc6f87 --- /dev/null +++ b/node_modules/flat-cache/package.json @@ -0,0 +1,84 @@ +{ + "name": "flat-cache", + "version": "3.0.4", + "description": "A stupidly simple key/value storage using files to persist some data", + "repository": "royriojas/flat-cache", + "license": "MIT", + "author": { + "name": "Roy Riojas", + "url": "http://royriojas.com" + }, + "main": "src/cache.js", + "files": [ + "src/cache.js", + "src/del.js", + "src/utils.js" + ], + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "precommit": [ + "npm run verify --silent" + ], + "prepush": [ + "npm run verify --silent" + ], + "scripts": { + "eslint": "eslint --cache --cache-location=node_modules/.cache/ ./src/**/*.js ./test/**/*.js", + "eslint-fix": "npm run eslint -- --fix", + "autofix": "npm run eslint-fix", + "check": "npm run eslint", + "verify": "npm run eslint && npm run test:cache", + "install-hooks": "prepush install && changelogx install-hook && precommit install", + "changelog": "changelogx -f markdown -o ./changelog.md", + "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", + "pre-v": "npm run verify", + "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", + "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", + "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", + "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", + "test:cache": "mocha -R spec test/specs", + "test": "npm run verify --silent", + "cover": "istanbul cover test/runner.js html text-summary", + "watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" + }, + "keywords": [ + "json cache", + "simple cache", + "file cache", + "key par", + "key value", + "cache" + ], + "changelogx": { + "ignoreRegExp": [ + "BLD: Release", + "DOC: Generate Changelog", + "Generated Changelog" + ], + "issueIDRegExp": "#(\\d+)", + "commitURL": "https://github.com/royriojas/flat-cache/commit/{0}", + "authorURL": "https://github.com/{0}", + "issueIDURL": "https://github.com/royriojas/flat-cache/issues/{0}", + "projectName": "flat-cache" + }, + "devDependencies": { + "chai": "^4.2.0", + "changelogx": "^5.0.6", + "eslint": "^7.13.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-mocha": "^8.0.0", + "eslint-plugin-prettier": "^3.1.4", + "glob-expand": "^0.2.1", + "istanbul": "^0.4.5", + "mocha": "^8.2.1", + "precommit": "^1.2.2", + "prepush": "^3.1.11", + "prettier": "^2.1.2", + "watch-run": "^1.2.5" + }, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } +} diff --git a/node_modules/flat-cache/src/cache.js b/node_modules/flat-cache/src/cache.js new file mode 100644 index 0000000..a58c287 --- /dev/null +++ b/node_modules/flat-cache/src/cache.js @@ -0,0 +1,197 @@ +var path = require('path'); +var fs = require('fs'); +var utils = require('./utils'); +var del = require('./del'); +var writeJSON = utils.writeJSON; + +var cache = { + /** + * Load a cache identified by the given Id. If the element does not exists, then initialize an empty + * cache storage. If specified `cacheDir` will be used as the directory to persist the data to. If omitted + * then the cache module directory `./cache` will be used instead + * + * @method load + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param [cacheDir] {String} directory for the cache entry + */ + load: function (docId, cacheDir) { + var me = this; + + me._visited = {}; + me._persisted = {}; + me._pathToFile = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, '../.cache/', docId); + + if (fs.existsSync(me._pathToFile)) { + me._persisted = utils.tryParse(me._pathToFile, {}); + } + }, + + /** + * Load the cache from the provided file + * @method loadFile + * @param {String} pathToFile the path to the file containing the info for the cache + */ + loadFile: function (pathToFile) { + var me = this; + var dir = path.dirname(pathToFile); + var fName = path.basename(pathToFile); + + me.load(fName, dir); + }, + + /** + * Returns the entire persisted object + * @method all + * @returns {*} + */ + all: function () { + return this._persisted; + }, + + keys: function () { + return Object.keys(this._persisted); + }, + /** + * sets a key to a given value + * @method setKey + * @param key {string} the key to set + * @param value {object} the value of the key. Could be any object that can be serialized with JSON.stringify + */ + setKey: function (key, value) { + this._visited[key] = true; + this._persisted[key] = value; + }, + /** + * remove a given key from the cache + * @method removeKey + * @param key {String} the key to remove from the object + */ + removeKey: function (key) { + delete this._visited[key]; // esfmt-ignore-line + delete this._persisted[key]; // esfmt-ignore-line + }, + /** + * Return the value of the provided key + * @method getKey + * @param key {String} the name of the key to retrieve + * @returns {*} the value from the key + */ + getKey: function (key) { + this._visited[key] = true; + return this._persisted[key]; + }, + + /** + * Remove keys that were not accessed/set since the + * last time the `prune` method was called. + * @method _prune + * @private + */ + _prune: function () { + var me = this; + var obj = {}; + + var keys = Object.keys(me._visited); + + // no keys visited for either get or set value + if (keys.length === 0) { + return; + } + + keys.forEach(function (key) { + obj[key] = me._persisted[key]; + }); + + me._visited = {}; + me._persisted = obj; + }, + + /** + * Save the state of the cache identified by the docId to disk + * as a JSON structure + * @param [noPrune=false] {Boolean} whether to remove from cache the non visited files + * @method save + */ + save: function (noPrune) { + var me = this; + + !noPrune && me._prune(); + writeJSON(me._pathToFile, me._persisted); + }, + + /** + * remove the file where the cache is persisted + * @method removeCacheFile + * @return {Boolean} true or false if the file was successfully deleted + */ + removeCacheFile: function () { + return del(this._pathToFile); + }, + /** + * Destroy the file cache and cache content. + * @method destroy + */ + destroy: function () { + var me = this; + me._visited = {}; + me._persisted = {}; + + me.removeCacheFile(); + }, +}; + +module.exports = { + /** + * Alias for create. Should be considered depreacted. Will be removed in next releases + * + * @method load + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param [cacheDir] {String} directory for the cache entry + * @returns {cache} cache instance + */ + load: function (docId, cacheDir) { + return this.create(docId, cacheDir); + }, + + /** + * Load a cache identified by the given Id. If the element does not exists, then initialize an empty + * cache storage. + * + * @method create + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param [cacheDir] {String} directory for the cache entry + * @returns {cache} cache instance + */ + create: function (docId, cacheDir) { + var obj = Object.create(cache); + obj.load(docId, cacheDir); + return obj; + }, + + createFromFile: function (filePath) { + var obj = Object.create(cache); + obj.loadFile(filePath); + return obj; + }, + /** + * Clear the cache identified by the given id. Caches stored in a different cache directory can be deleted directly + * + * @method clearCache + * @param docId {String} the id of the cache, would also be used as the name of the file cache + * @param cacheDir {String} the directory where the cache file was written + * @returns {Boolean} true if the cache folder was deleted. False otherwise + */ + clearCacheById: function (docId, cacheDir) { + var filePath = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, '../.cache/', docId); + return del(filePath); + }, + /** + * Remove all cache stored in the cache directory + * @method clearAll + * @returns {Boolean} true if the cache folder was deleted. False otherwise + */ + clearAll: function (cacheDir) { + var filePath = cacheDir ? path.resolve(cacheDir) : path.resolve(__dirname, '../.cache/'); + return del(filePath); + }, +}; diff --git a/node_modules/flat-cache/src/del.js b/node_modules/flat-cache/src/del.js new file mode 100644 index 0000000..8908744 --- /dev/null +++ b/node_modules/flat-cache/src/del.js @@ -0,0 +1,13 @@ +var rimraf = require('rimraf').sync; +var fs = require('fs'); + +module.exports = function del(file) { + if (fs.existsSync(file)) { + //if rimraf doesn't throw then the file has been deleted or didn't exist + rimraf(file, { + glob: false, + }); + return true; + } + return false; +}; diff --git a/node_modules/flat-cache/src/utils.js b/node_modules/flat-cache/src/utils.js new file mode 100644 index 0000000..05f5ac3 --- /dev/null +++ b/node_modules/flat-cache/src/utils.js @@ -0,0 +1,44 @@ +var fs = require('fs'); +var path = require('path'); +var flatted = require('flatted'); + +module.exports = { + tryParse: function (filePath, defaultValue) { + var result; + try { + result = this.readJSON(filePath); + } catch (ex) { + result = defaultValue; + } + return result; + }, + + /** + * Read json file synchronously using flatted + * + * @method readJSON + * @param {String} filePath Json filepath + * @returns {*} parse result + */ + readJSON: function (filePath) { + return flatted.parse( + fs.readFileSync(filePath, { + encoding: 'utf8', + }) + ); + }, + + /** + * Write json file synchronously using circular-json + * + * @method writeJSON + * @param {String} filePath Json filepath + * @param {*} data Object to serialize + */ + writeJSON: function (filePath, data) { + fs.mkdirSync(path.dirname(filePath), { + recursive: true, + }); + fs.writeFileSync(filePath, flatted.stringify(data)); + }, +}; diff --git a/node_modules/flatted/LICENSE b/node_modules/flatted/LICENSE new file mode 100644 index 0000000..506dc47 --- /dev/null +++ b/node_modules/flatted/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/flatted/README.md b/node_modules/flatted/README.md new file mode 100644 index 0000000..2e466b6 --- /dev/null +++ b/node_modules/flatted/README.md @@ -0,0 +1,111 @@ +# flatted + +[![Downloads](https://img.shields.io/npm/dm/flatted.svg)](https://www.npmjs.com/package/flatted) [![Coverage Status](https://coveralls.io/repos/github/WebReflection/flatted/badge.svg?branch=main)](https://coveralls.io/github/WebReflection/flatted?branch=main) [![Build Status](https://travis-ci.com/WebReflection/flatted.svg?branch=main)](https://travis-ci.com/WebReflection/flatted) [![License: ISC](https://img.shields.io/badge/License-ISC-yellow.svg)](https://opensource.org/licenses/ISC) ![WebReflection status](https://offline.report/status/webreflection.svg) + +![snow flake](./flatted.jpg) + +**Social Media Photo by [Matt Seymour](https://unsplash.com/@mattseymour) on [Unsplash](https://unsplash.com/)** + +## Announcement 📣 + +There is a standard approach to recursion and more data-types than what JSON allows, and it's part of the [Structured Clone polyfill](https://github.com/ungap/structured-clone/#readme). + +Beside acting as a polyfill, its `@ungap/structured-clone/json` export provides both `stringify` and `parse`, and it's been tested for being faster than *flatted*, but its produced output is also smaller than *flatted* in general. + +The *@ungap/structured-clone* module is, in short, a drop in replacement for *flatted*, but it's not compatible with *flatted* specialized syntax. + +However, if recursion, as well as more data-types, are what you are after, or interesting for your projects/use cases, consider switching to this new module whenever you can 👍 + +- - - + +A super light (0.5K) and fast circular JSON parser, directly from the creator of [CircularJSON](https://github.com/WebReflection/circular-json/#circularjson). + +Now available also for **[PHP](./php/flatted.php)**. + +```js +npm i flatted +``` + +Usable via [CDN](https://unpkg.com/flatted) or as regular module. + +```js +// ESM +import {parse, stringify, toJSON, fromJSON} from 'flatted'; + +// CJS +const {parse, stringify, toJSON, fromJSON} = require('flatted'); + +const a = [{}]; +a[0].a = a; +a.push(a); + +stringify(a); // [["1","0"],{"a":"0"}] +``` + +## toJSON and fromJSON + +If you'd like to implicitly survive JSON serialization, these two helpers helps: + +```js +import {toJSON, fromJSON} from 'flatted'; + +class RecursiveMap extends Map { + static fromJSON(any) { + return new this(fromJSON(any)); + } + toJSON() { + return toJSON([...this.entries()]); + } +} + +const recursive = new RecursiveMap; +const same = {}; +same.same = same; +recursive.set('same', same); + +const asString = JSON.stringify(recursive); +const asMap = RecursiveMap.fromJSON(JSON.parse(asString)); +asMap.get('same') === asMap.get('same').same; +// true +``` + + +## Flatted VS JSON + +As it is for every other specialized format capable of serializing and deserializing circular data, you should never `JSON.parse(Flatted.stringify(data))`, and you should never `Flatted.parse(JSON.stringify(data))`. + +The only way this could work is to `Flatted.parse(Flatted.stringify(data))`, as it is also for _CircularJSON_ or any other, otherwise there's no granted data integrity. + +Also please note this project serializes and deserializes only data compatible with JSON, so that sockets, or anything else with internal classes different from those allowed by JSON standard, won't be serialized and unserialized as expected. + + +### New in V1: Exact same JSON API + + * Added a [reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Syntax) parameter to `.parse(string, reviver)` and revive your own objects. + * Added a [replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Syntax) and a `space` parameter to `.stringify(object, replacer, space)` for feature parity with JSON signature. + + +### Compatibility +All ECMAScript engines compatible with `Map`, `Set`, `Object.keys`, and `Array.prototype.reduce` will work, even if polyfilled. + + +### How does it work ? +While stringifying, all Objects, including Arrays, and strings, are flattened out and replaced as unique index. `*` + +Once parsed, all indexes will be replaced through the flattened collection. + +`*` represented as string to avoid conflicts with numbers + +```js +// logic example +var a = [{one: 1}, {two: '2'}]; +a[0].a = a; +// a is the main object, will be at index '0' +// {one: 1} is the second object, index '1' +// {two: '2'} the third, in '2', and it has a string +// which will be found at index '3' + +Flatted.stringify(a); +// [["1","2"],{"one":1,"a":"0"},{"two":"3"},"2"] +// a[one,two] {one: 1, a} {two: '2'} '2' +``` diff --git a/node_modules/flatted/cjs/index.js b/node_modules/flatted/cjs/index.js new file mode 100644 index 0000000..c2c9486 --- /dev/null +++ b/node_modules/flatted/cjs/index.js @@ -0,0 +1,99 @@ +'use strict'; +/*! (c) 2020 Andrea Giammarchi */ + +const {parse: $parse, stringify: $stringify} = JSON; +const {keys} = Object; + +const Primitive = String; // it could be Number +const primitive = 'string'; // it could be 'number' + +const ignore = {}; +const object = 'object'; + +const noop = (_, value) => value; + +const primitives = value => ( + value instanceof Primitive ? Primitive(value) : value +); + +const Primitives = (_, value) => ( + typeof value === primitive ? new Primitive(value) : value +); + +const revive = (input, parsed, output, $) => { + const lazy = []; + for (let ke = keys(output), {length} = ke, y = 0; y < length; y++) { + const k = ke[y]; + const value = output[k]; + if (value instanceof Primitive) { + const tmp = input[value]; + if (typeof tmp === object && !parsed.has(tmp)) { + parsed.add(tmp); + output[k] = ignore; + lazy.push({k, a: [input, parsed, tmp, $]}); + } + else + output[k] = $.call(output, k, tmp); + } + else if (output[k] !== ignore) + output[k] = $.call(output, k, value); + } + for (let {length} = lazy, i = 0; i < length; i++) { + const {k, a} = lazy[i]; + output[k] = $.call(output, k, revive.apply(null, a)); + } + return output; +}; + +const set = (known, input, value) => { + const index = Primitive(input.push(value) - 1); + known.set(value, index); + return index; +}; + +const parse = (text, reviver) => { + const input = $parse(text, Primitives).map(primitives); + const value = input[0]; + const $ = reviver || noop; + const tmp = typeof value === object && value ? + revive(input, new Set, value, $) : + value; + return $.call({'': tmp}, '', tmp); +}; +exports.parse = parse; + +const stringify = (value, replacer, space) => { + const $ = replacer && typeof replacer === object ? + (k, v) => (k === '' || -1 < replacer.indexOf(k) ? v : void 0) : + (replacer || noop); + const known = new Map; + const input = []; + const output = []; + let i = +set(known, input, $.call({'': value}, '', value)); + let firstRun = !i; + while (i < input.length) { + firstRun = true; + output[i] = $stringify(input[i++], replace, space); + } + return '[' + output.join(',') + ']'; + function replace(key, value) { + if (firstRun) { + firstRun = !firstRun; + return value; + } + const after = $.call(this, key, value); + switch (typeof after) { + case object: + if (after === null) return after; + case primitive: + return known.get(after) || set(known, input, after); + } + return after; + } +}; +exports.stringify = stringify; + +const toJSON = any => $parse(stringify(any)); +exports.toJSON = toJSON; +const fromJSON = any => parse($stringify(any)); +exports.fromJSON = fromJSON; diff --git a/node_modules/flatted/cjs/package.json b/node_modules/flatted/cjs/package.json new file mode 100644 index 0000000..0292b99 --- /dev/null +++ b/node_modules/flatted/cjs/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/node_modules/flatted/es.js b/node_modules/flatted/es.js new file mode 100644 index 0000000..8e4cf0c --- /dev/null +++ b/node_modules/flatted/es.js @@ -0,0 +1,2 @@ +self.Flatted=function(t){"use strict"; +/*! (c) 2020 Andrea Giammarchi */const{parse:e,stringify:n}=JSON,{keys:r}=Object,s=String,o="string",c={},l="object",a=(t,e)=>e,f=t=>t instanceof s?s(t):t,i=(t,e)=>typeof e===o?new s(e):e,u=(t,e,n,o)=>{const a=[];for(let f=r(n),{length:i}=f,u=0;u{const r=s(e.push(n)-1);return t.set(n,r),r},y=(t,n)=>{const r=e(t,i).map(f),s=r[0],o=n||a,c=typeof s===l&&s?u(r,new Set,s,o):s;return o.call({"":c},"",c)},g=(t,e,r)=>{const s=e&&typeof e===l?(t,n)=>""===t||-1y(n(t)),t.parse=y,t.stringify=g,t.toJSON=t=>e(g(t)),t}({}); diff --git a/node_modules/flatted/esm.js b/node_modules/flatted/esm.js new file mode 100644 index 0000000..c20ae09 --- /dev/null +++ b/node_modules/flatted/esm.js @@ -0,0 +1,2 @@ +/*! (c) 2020 Andrea Giammarchi */ +const{parse:t,stringify:e}=JSON,{keys:n}=Object,o=String,c={},r=(t,e)=>e,s=t=>t instanceof o?o(t):t,l=(t,e)=>"string"==typeof e?new o(e):e,a=(t,e,r,s)=>{const l=[];for(let a=n(r),{length:f}=a,i=0;i{const c=o(e.push(n)-1);return t.set(n,c),c},i=(e,n)=>{const o=t(e,l).map(s),c=o[0],f=n||r,i="object"==typeof c&&c?a(o,new Set,c,f):c;return f.call({"":i},"",i)},p=(t,n,o)=>{const c=n&&"object"==typeof n?(t,e)=>""===t||-1t(p(e)),g=t=>i(e(t));export{g as fromJSON,i as parse,p as stringify,u as toJSON}; diff --git a/node_modules/flatted/esm/index.js b/node_modules/flatted/esm/index.js new file mode 100644 index 0000000..9a8c239 --- /dev/null +++ b/node_modules/flatted/esm/index.js @@ -0,0 +1,94 @@ +/*! (c) 2020 Andrea Giammarchi */ + +const {parse: $parse, stringify: $stringify} = JSON; +const {keys} = Object; + +const Primitive = String; // it could be Number +const primitive = 'string'; // it could be 'number' + +const ignore = {}; +const object = 'object'; + +const noop = (_, value) => value; + +const primitives = value => ( + value instanceof Primitive ? Primitive(value) : value +); + +const Primitives = (_, value) => ( + typeof value === primitive ? new Primitive(value) : value +); + +const revive = (input, parsed, output, $) => { + const lazy = []; + for (let ke = keys(output), {length} = ke, y = 0; y < length; y++) { + const k = ke[y]; + const value = output[k]; + if (value instanceof Primitive) { + const tmp = input[value]; + if (typeof tmp === object && !parsed.has(tmp)) { + parsed.add(tmp); + output[k] = ignore; + lazy.push({k, a: [input, parsed, tmp, $]}); + } + else + output[k] = $.call(output, k, tmp); + } + else if (output[k] !== ignore) + output[k] = $.call(output, k, value); + } + for (let {length} = lazy, i = 0; i < length; i++) { + const {k, a} = lazy[i]; + output[k] = $.call(output, k, revive.apply(null, a)); + } + return output; +}; + +const set = (known, input, value) => { + const index = Primitive(input.push(value) - 1); + known.set(value, index); + return index; +}; + +export const parse = (text, reviver) => { + const input = $parse(text, Primitives).map(primitives); + const value = input[0]; + const $ = reviver || noop; + const tmp = typeof value === object && value ? + revive(input, new Set, value, $) : + value; + return $.call({'': tmp}, '', tmp); +}; + +export const stringify = (value, replacer, space) => { + const $ = replacer && typeof replacer === object ? + (k, v) => (k === '' || -1 < replacer.indexOf(k) ? v : void 0) : + (replacer || noop); + const known = new Map; + const input = []; + const output = []; + let i = +set(known, input, $.call({'': value}, '', value)); + let firstRun = !i; + while (i < input.length) { + firstRun = true; + output[i] = $stringify(input[i++], replace, space); + } + return '[' + output.join(',') + ']'; + function replace(key, value) { + if (firstRun) { + firstRun = !firstRun; + return value; + } + const after = $.call(this, key, value); + switch (typeof after) { + case object: + if (after === null) return after; + case primitive: + return known.get(after) || set(known, input, after); + } + return after; + } +}; + +export const toJSON = any => $parse(stringify(any)); +export const fromJSON = any => parse($stringify(any)); diff --git a/node_modules/flatted/index.js b/node_modules/flatted/index.js new file mode 100644 index 0000000..afb193d --- /dev/null +++ b/node_modules/flatted/index.js @@ -0,0 +1,135 @@ +self.Flatted = (function (exports) { + 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + + /*! (c) 2020 Andrea Giammarchi */ + var $parse = JSON.parse, + $stringify = JSON.stringify; + var keys = Object.keys; + var Primitive = String; // it could be Number + + var primitive = 'string'; // it could be 'number' + + var ignore = {}; + var object = 'object'; + + var noop = function noop(_, value) { + return value; + }; + + var primitives = function primitives(value) { + return value instanceof Primitive ? Primitive(value) : value; + }; + + var Primitives = function Primitives(_, value) { + return _typeof(value) === primitive ? new Primitive(value) : value; + }; + + var revive = function revive(input, parsed, output, $) { + var lazy = []; + + for (var ke = keys(output), length = ke.length, y = 0; y < length; y++) { + var k = ke[y]; + var value = output[k]; + + if (value instanceof Primitive) { + var tmp = input[value]; + + if (_typeof(tmp) === object && !parsed.has(tmp)) { + parsed.add(tmp); + output[k] = ignore; + lazy.push({ + k: k, + a: [input, parsed, tmp, $] + }); + } else output[k] = $.call(output, k, tmp); + } else if (output[k] !== ignore) output[k] = $.call(output, k, value); + } + + for (var _length = lazy.length, i = 0; i < _length; i++) { + var _lazy$i = lazy[i], + _k = _lazy$i.k, + a = _lazy$i.a; + output[_k] = $.call(output, _k, revive.apply(null, a)); + } + + return output; + }; + + var set = function set(known, input, value) { + var index = Primitive(input.push(value) - 1); + known.set(value, index); + return index; + }; + + var parse = function parse(text, reviver) { + var input = $parse(text, Primitives).map(primitives); + var value = input[0]; + var $ = reviver || noop; + var tmp = _typeof(value) === object && value ? revive(input, new Set(), value, $) : value; + return $.call({ + '': tmp + }, '', tmp); + }; + var stringify = function stringify(value, replacer, space) { + var $ = replacer && _typeof(replacer) === object ? function (k, v) { + return k === '' || -1 < replacer.indexOf(k) ? v : void 0; + } : replacer || noop; + var known = new Map(); + var input = []; + var output = []; + var i = +set(known, input, $.call({ + '': value + }, '', value)); + var firstRun = !i; + + while (i < input.length) { + firstRun = true; + output[i] = $stringify(input[i++], replace, space); + } + + return '[' + output.join(',') + ']'; + + function replace(key, value) { + if (firstRun) { + firstRun = !firstRun; + return value; + } + + var after = $.call(this, key, value); + + switch (_typeof(after)) { + case object: + if (after === null) return after; + + case primitive: + return known.get(after) || set(known, input, after); + } + + return after; + } + }; + var toJSON = function toJSON(any) { + return $parse(stringify(any)); + }; + var fromJSON = function fromJSON(any) { + return parse($stringify(any)); + }; + + exports.fromJSON = fromJSON; + exports.parse = parse; + exports.stringify = stringify; + exports.toJSON = toJSON; + + return exports; + +})({}); diff --git a/node_modules/flatted/min.js b/node_modules/flatted/min.js new file mode 100644 index 0000000..b7a8efc --- /dev/null +++ b/node_modules/flatted/min.js @@ -0,0 +1,2 @@ +self.Flatted=function(n){"use strict";function t(n){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},t(n) +/*! (c) 2020 Andrea Giammarchi */}var r=JSON.parse,e=JSON.stringify,o=Object.keys,u=String,f="string",i={},c="object",a=function(n,t){return t},l=function(n){return n instanceof u?u(n):n},s=function(n,r){return t(r)===f?new u(r):r},y=function n(r,e,f,a){for(var l=[],s=o(f),y=s.length,p=0;p ./coverage/lcov.info" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/WebReflection/flatted.git" + }, + "keywords": [ + "circular", + "JSON", + "fast", + "parser", + "minimal" + ], + "author": "Andrea Giammarchi", + "license": "ISC", + "bugs": { + "url": "https://github.com/WebReflection/flatted/issues" + }, + "homepage": "https://github.com/WebReflection/flatted#readme", + "devDependencies": { + "@babel/core": "^7.18.10", + "@babel/preset-env": "^7.18.10", + "@ungap/structured-clone": "^1.0.1", + "ascjs": "^5.0.1", + "c8": "^7.12.0", + "circular-json": "^0.5.9", + "circular-json-es6": "^2.0.2", + "jsan": "^3.1.14", + "rollup": "^2.78.1", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-terser": "^7.0.2", + "terser": "^5.14.2" + }, + "module": "./esm/index.js", + "type": "module", + "exports": { + ".": { + "types": "./types.d.ts", + "import": "./esm/index.js", + "default": "./cjs/index.js" + }, + "./esm": "./esm.js", + "./package.json": "./package.json" + } +} diff --git a/node_modules/flatted/php/flatted.php b/node_modules/flatted/php/flatted.php new file mode 100644 index 0000000..30585bf --- /dev/null +++ b/node_modules/flatted/php/flatted.php @@ -0,0 +1,156 @@ +value = $value; + } +} + +class Flatted { + + // public utilities + public static function parse($json, $assoc = false, $depth = 512, $options = 0) { + $input = array_map( + 'Flatted::asString', + array_map( + 'Flatted::wrap', + json_decode($json, $assoc, $depth, $options) + ) + ); + $value = &$input[0]; + $set = array(); + $set[] = &$value; + if (is_array($value)) + return Flatted::loop(false, array_keys($value), $input, $set, $value); + if (is_object($value)) + return Flatted::loop(true, Flatted::keys($value), $input, $set, $value); + return $value; + } + + public static function stringify($value, $options = 0, $depth = 512) { + $known = new stdClass; + $known->key = array(); + $known->value = array(); + $input = array(); + $output = array(); + $i = intval(Flatted::index($known, $input, $value)); + while ($i < count($input)) { + $output[$i] = Flatted::transform($known, $input, $input[$i]); + $i++; + } + return json_encode($output, $options, $depth); + } + + // private helpers + private static function asString($value) { + return $value instanceof FlattedString ? $value->value : $value; + } + + private static function index(&$known, &$input, &$value) { + $input[] = &$value; + $index = strval(count($input) - 1); + $known->key[] = &$value; + $known->value[] = &$index; + return $index; + } + + private static function keys(&$value) { + $obj = new ReflectionObject($value); + $props = $obj->getProperties(); + $keys = array(); + foreach ($props as $prop) + $keys[] = $prop->getName(); + return $keys; + } + + private static function loop($obj, $keys, &$input, &$set, &$output) { + foreach ($keys as $key) { + $value = $obj ? $output->$key : $output[$key]; + if ($value instanceof FlattedString) + Flatted::ref($obj, $key, $input[$value->value], $input, $set, $output); + } + return $output; + } + + private static function relate(&$known, &$input, &$value) { + if (is_string($value) || is_array($value) || is_object($value)) { + $key = array_search($value, $known->key, true); + if ($key !== false) + return $known->value[$key]; + return Flatted::index($known, $input, $value); + } + return $value; + } + + private static function ref($obj, &$key, &$value, &$input, &$set, &$output) { + if (is_array($value) && !in_array($value, $set, true)) { + $set[] = $value; + $value = Flatted::loop(false, array_keys($value), $input, $set, $value); + } + elseif (is_object($value) && !in_array($value, $set, true)) { + $set[] = $value; + $value = Flatted::loop(true, Flatted::keys($value), $input, $set, $value); + } + if ($obj) { + $output->$key = &$value; + } + else { + $output[$key] = &$value; + } + } + + private static function transform(&$known, &$input, &$value) { + if (is_array($value)) { + return array_map( + function ($value) use(&$known, &$input) { + return Flatted::relate($known, $input, $value); + }, + $value + ); + } + if (is_object($value)) { + $object = new stdClass; + $keys = Flatted::keys($value); + foreach ($keys as $key) + $object->$key = Flatted::relate($known, $input, $value->$key); + return $object; + } + return $value; + } + + private static function wrap($value) { + if (is_string($value)) { + return new FlattedString($value); + } + if (is_array($value)) { + return array_map('Flatted::wrap', $value); + } + if (is_object($value)) { + $keys = Flatted::keys($value); + foreach ($keys as $key) { + $value->$key = self::wrap($value->$key); + } + return $value; + } + return $value; + } +} +?> \ No newline at end of file diff --git a/node_modules/flatted/types.d.ts b/node_modules/flatted/types.d.ts new file mode 100644 index 0000000..d38b4a1 --- /dev/null +++ b/node_modules/flatted/types.d.ts @@ -0,0 +1,62 @@ +interface Flatted { + /** + * Converts a JavaScript Object Notation (using Flatted encoding) string into an object. + * @param text A valid Flatted string. + * @param reviver A function that transforms the results. This function is called for each member of the object. + * If a member contains nested objects, the nested objects are transformed before the parent object is. + */ + parse( + text: string, + reviver?: (this: any, key: string, value: any) => any + ): any; + /** + * Converts a JavaScript value to a JavaScript Object Notation (using Flatted encoding) string. + * @param value A JavaScript value, usually an object or array, to be converted. + * @param replacer A function that transforms the results. + * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read. + */ + stringify( + value: any, + replacer?: (this: any, key: string, value: any) => any, + space?: string | number + ): string; + /** + * Converts a JavaScript value to a JavaScript Object Notation (using Flatted encoding) string. + * @param value A JavaScript value, usually an object or array, to be converted. + * @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified. + * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read. + */ + stringify( + value: any, + replacer?: (number | string)[] | null, + space?: string | number + ): string; + /** + * Helper to allow explicit conversions with classes. + * @param value The JSON to convert to JavaScript value + */ + fromJSON(value: any): any; + /** + * Helper to allow explicit conversions with classes. + * @param value A JavaScript value, usually an object or array, to be converted. + */ + toJSON(value: any): any; +} + +/** + * Fast and minimal circular JSON parser. + * logic example +```js +var a = [{one: 1}, {two: '2'}]; +a[0].a = a; +// a is the main object, will be at index '0' +// {one: 1} is the second object, index '1' +// {two: '2'} the third, in '2', and it has a string +// which will be found at index '3' +Flatted.stringify(a); +// [["1","2"],{"one":1,"a":"0"},{"two":"3"},"2"] +// a[one,two] {one: 1, a} {two: '2'} '2' +``` + */ +declare const Flatted: Flatted; +export = Flatted; diff --git a/node_modules/fs.realpath/LICENSE b/node_modules/fs.realpath/LICENSE new file mode 100644 index 0000000..5bd884c --- /dev/null +++ b/node_modules/fs.realpath/LICENSE @@ -0,0 +1,43 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---- + +This library bundles a version of the `fs.realpath` and `fs.realpathSync` +methods from Node.js v0.10 under the terms of the Node.js MIT license. + +Node's license follows, also included at the header of `old.js` which contains +the licensed code: + + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. diff --git a/node_modules/fs.realpath/README.md b/node_modules/fs.realpath/README.md new file mode 100644 index 0000000..a42ceac --- /dev/null +++ b/node_modules/fs.realpath/README.md @@ -0,0 +1,33 @@ +# fs.realpath + +A backwards-compatible fs.realpath for Node v6 and above + +In Node v6, the JavaScript implementation of fs.realpath was replaced +with a faster (but less resilient) native implementation. That raises +new and platform-specific errors and cannot handle long or excessively +symlink-looping paths. + +This module handles those cases by detecting the new errors and +falling back to the JavaScript implementation. On versions of Node +prior to v6, it has no effect. + +## USAGE + +```js +var rp = require('fs.realpath') + +// async version +rp.realpath(someLongAndLoopingPath, function (er, real) { + // the ELOOP was handled, but it was a bit slower +}) + +// sync version +var real = rp.realpathSync(someLongAndLoopingPath) + +// monkeypatch at your own risk! +// This replaces the fs.realpath/fs.realpathSync builtins +rp.monkeypatch() + +// un-do the monkeypatching +rp.unmonkeypatch() +``` diff --git a/node_modules/fs.realpath/index.js b/node_modules/fs.realpath/index.js new file mode 100644 index 0000000..b09c7c7 --- /dev/null +++ b/node_modules/fs.realpath/index.js @@ -0,0 +1,66 @@ +module.exports = realpath +realpath.realpath = realpath +realpath.sync = realpathSync +realpath.realpathSync = realpathSync +realpath.monkeypatch = monkeypatch +realpath.unmonkeypatch = unmonkeypatch + +var fs = require('fs') +var origRealpath = fs.realpath +var origRealpathSync = fs.realpathSync + +var version = process.version +var ok = /^v[0-5]\./.test(version) +var old = require('./old.js') + +function newError (er) { + return er && er.syscall === 'realpath' && ( + er.code === 'ELOOP' || + er.code === 'ENOMEM' || + er.code === 'ENAMETOOLONG' + ) +} + +function realpath (p, cache, cb) { + if (ok) { + return origRealpath(p, cache, cb) + } + + if (typeof cache === 'function') { + cb = cache + cache = null + } + origRealpath(p, cache, function (er, result) { + if (newError(er)) { + old.realpath(p, cache, cb) + } else { + cb(er, result) + } + }) +} + +function realpathSync (p, cache) { + if (ok) { + return origRealpathSync(p, cache) + } + + try { + return origRealpathSync(p, cache) + } catch (er) { + if (newError(er)) { + return old.realpathSync(p, cache) + } else { + throw er + } + } +} + +function monkeypatch () { + fs.realpath = realpath + fs.realpathSync = realpathSync +} + +function unmonkeypatch () { + fs.realpath = origRealpath + fs.realpathSync = origRealpathSync +} diff --git a/node_modules/fs.realpath/old.js b/node_modules/fs.realpath/old.js new file mode 100644 index 0000000..b40305e --- /dev/null +++ b/node_modules/fs.realpath/old.js @@ -0,0 +1,303 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var pathModule = require('path'); +var isWindows = process.platform === 'win32'; +var fs = require('fs'); + +// JavaScript implementation of realpath, ported from node pre-v6 + +var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + +function rethrow() { + // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and + // is fairly slow to generate. + var callback; + if (DEBUG) { + var backtrace = new Error; + callback = debugCallback; + } else + callback = missingCallback; + + return callback; + + function debugCallback(err) { + if (err) { + backtrace.message = err.message; + err = backtrace; + missingCallback(err); + } + } + + function missingCallback(err) { + if (err) { + if (process.throwDeprecation) + throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs + else if (!process.noDeprecation) { + var msg = 'fs: missing callback ' + (err.stack || err.message); + if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + } + } + } +} + +function maybeCallback(cb) { + return typeof cb === 'function' ? cb : rethrow(); +} + +var normalize = pathModule.normalize; + +// Regexp that finds the next partion of a (partial) path +// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] +if (isWindows) { + var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; +} else { + var nextPartRe = /(.*?)(?:[\/]+|$)/g; +} + +// Regex to find the device root, including trailing slash. E.g. 'c:\\'. +if (isWindows) { + var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; +} else { + var splitRootRe = /^[\/]*/; +} + +exports.realpathSync = function realpathSync(p, cache) { + // make p is absolute + p = pathModule.resolve(p); + + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return cache[p]; + } + + var original = p, + seenLinks = {}, + knownHard = {}; + + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; + + start(); + + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; + + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstatSync(base); + knownHard[base] = true; + } + } + + // walk down the path, swapping out linked pathparts for their real + // values + // NB: p.length changes. + while (pos < p.length) { + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + continue; + } + + var resolvedLink; + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // some known symbolic link. no need to stat again. + resolvedLink = cache[base]; + } else { + var stat = fs.lstatSync(base); + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + continue; + } + + // read the link if it wasn't read before + // dev/ino always return 0 on windows, so skip the check. + var linkTarget = null; + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + linkTarget = seenLinks[id]; + } + } + if (linkTarget === null) { + fs.statSync(base); + linkTarget = fs.readlinkSync(base); + } + resolvedLink = pathModule.resolve(previous, linkTarget); + // track this, if given a cache. + if (cache) cache[base] = resolvedLink; + if (!isWindows) seenLinks[id] = linkTarget; + } + + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } + + if (cache) cache[original] = p; + + return p; +}; + + +exports.realpath = function realpath(p, cache, cb) { + if (typeof cb !== 'function') { + cb = maybeCallback(cache); + cache = null; + } + + // make p is absolute + p = pathModule.resolve(p); + + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return process.nextTick(cb.bind(null, null, cache[p])); + } + + var original = p, + seenLinks = {}, + knownHard = {}; + + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; + + start(); + + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; + + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstat(base, function(err) { + if (err) return cb(err); + knownHard[base] = true; + LOOP(); + }); + } else { + process.nextTick(LOOP); + } + } + + // walk down the path, swapping out linked pathparts for their real + // values + function LOOP() { + // stop if scanned past end of path + if (pos >= p.length) { + if (cache) cache[original] = p; + return cb(null, p); + } + + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + return process.nextTick(LOOP); + } + + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // known symbolic link. no need to stat again. + return gotResolvedLink(cache[base]); + } + + return fs.lstat(base, gotStat); + } + + function gotStat(err, stat) { + if (err) return cb(err); + + // if not a symlink, skip to the next path part + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + return process.nextTick(LOOP); + } + + // stat & read the link if not read before + // call gotTarget as soon as the link target is known + // dev/ino always return 0 on windows, so skip the check. + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + return gotTarget(null, seenLinks[id], base); + } + } + fs.stat(base, function(err) { + if (err) return cb(err); + + fs.readlink(base, function(err, target) { + if (!isWindows) seenLinks[id] = target; + gotTarget(err, target); + }); + }); + } + + function gotTarget(err, target, base) { + if (err) return cb(err); + + var resolvedLink = pathModule.resolve(previous, target); + if (cache) cache[base] = resolvedLink; + gotResolvedLink(resolvedLink); + } + + function gotResolvedLink(resolvedLink) { + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } +}; diff --git a/node_modules/fs.realpath/package.json b/node_modules/fs.realpath/package.json new file mode 100644 index 0000000..3edc57d --- /dev/null +++ b/node_modules/fs.realpath/package.json @@ -0,0 +1,26 @@ +{ + "name": "fs.realpath", + "version": "1.0.0", + "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "scripts": { + "test": "tap test/*.js --cov" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/fs.realpath.git" + }, + "keywords": [ + "realpath", + "fs", + "polyfill" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "files": [ + "old.js", + "index.js" + ] +} diff --git a/node_modules/glob-parent/LICENSE b/node_modules/glob-parent/LICENSE new file mode 100644 index 0000000..d701b08 --- /dev/null +++ b/node_modules/glob-parent/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2015, 2019 Elan Shanker, 2021 Blaine Bublitz , Eric Schoffstall and other contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/glob-parent/README.md b/node_modules/glob-parent/README.md new file mode 100644 index 0000000..6ae18a1 --- /dev/null +++ b/node_modules/glob-parent/README.md @@ -0,0 +1,134 @@ +

+ + + +

+ +# glob-parent + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Coveralls Status][coveralls-image]][coveralls-url] + +Extract the non-magic parent path from a glob string. + +## Usage + +```js +var globParent = require('glob-parent'); + +globParent('path/to/*.js'); // 'path/to' +globParent('/root/path/to/*.js'); // '/root/path/to' +globParent('/*.js'); // '/' +globParent('*.js'); // '.' +globParent('**/*.js'); // '.' +globParent('path/{to,from}'); // 'path' +globParent('path/!(to|from)'); // 'path' +globParent('path/?(to|from)'); // 'path' +globParent('path/+(to|from)'); // 'path' +globParent('path/*(to|from)'); // 'path' +globParent('path/@(to|from)'); // 'path' +globParent('path/**/*'); // 'path' + +// if provided a non-glob path, returns the nearest dir +globParent('path/foo/bar.js'); // 'path/foo' +globParent('path/foo/'); // 'path/foo' +globParent('path/foo'); // 'path' (see issue #3 for details) +``` + +## API + +### `globParent(maybeGlobString, [options])` + +Takes a string and returns the part of the path before the glob begins. Be aware of Escaping rules and Limitations below. + +#### options + +```js +{ + // Disables the automatic conversion of slashes for Windows + flipBackslashes: true; +} +``` + +## Escaping + +The following characters have special significance in glob patterns and must be escaped if you want them to be treated as regular path characters: + +- `?` (question mark) unless used as a path segment alone +- `*` (asterisk) +- `|` (pipe) +- `(` (opening parenthesis) +- `)` (closing parenthesis) +- `{` (opening curly brace) +- `}` (closing curly brace) +- `[` (opening bracket) +- `]` (closing bracket) + +**Example** + +```js +globParent('foo/[bar]/'); // 'foo' +globParent('foo/\\[bar]/'); // 'foo/[bar]' +``` + +## Limitations + +### Braces & Brackets + +This library attempts a quick and imperfect method of determining which path +parts have glob magic without fully parsing/lexing the pattern. There are some +advanced use cases that can trip it up, such as nested braces where the outer +pair is escaped and the inner one contains a path separator. If you find +yourself in the unlikely circumstance of being affected by this or need to +ensure higher-fidelity glob handling in your library, it is recommended that you +pre-process your input with [expand-braces] and/or [expand-brackets]. + +### Windows + +Backslashes are not valid path separators for globs. If a path with backslashes +is provided anyway, for simple cases, glob-parent will replace the path +separator for you and return the non-glob parent path (now with +forward-slashes, which are still valid as Windows path separators). + +This cannot be used in conjunction with escape characters. + +```js +// BAD +globParent('C:\\Program Files \\(x86\\)\\*.ext'); // 'C:/Program Files /(x86/)' + +// GOOD +globParent('C:/Program Files\\(x86\\)/*.ext'); // 'C:/Program Files (x86)' +``` + +If you are using escape characters for a pattern without path parts (i.e. +relative to `cwd`), prefix with `./` to avoid confusing glob-parent. + +```js +// BAD +globParent('foo \\[bar]'); // 'foo ' +globParent('foo \\[bar]*'); // 'foo ' + +// GOOD +globParent('./foo \\[bar]'); // 'foo [bar]' +globParent('./foo \\[bar]*'); // '.' +``` + +## License + +ISC + + +[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg?style=flat-square +[npm-url]: https://www.npmjs.com/package/glob-parent +[npm-image]: https://img.shields.io/npm/v/glob-parent.svg?style=flat-square + +[ci-url]: https://github.com/gulpjs/glob-parent/actions?query=workflow:dev +[ci-image]: https://img.shields.io/github/workflow/status/gulpjs/glob-parent/dev?style=flat-square + +[coveralls-url]: https://coveralls.io/r/gulpjs/glob-parent +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg?style=flat-square + + + +[expand-braces]: https://github.com/jonschlinkert/expand-braces +[expand-brackets]: https://github.com/jonschlinkert/expand-brackets + diff --git a/node_modules/glob-parent/index.js b/node_modules/glob-parent/index.js new file mode 100644 index 0000000..09dde64 --- /dev/null +++ b/node_modules/glob-parent/index.js @@ -0,0 +1,75 @@ +'use strict'; + +var isGlob = require('is-glob'); +var pathPosixDirname = require('path').posix.dirname; +var isWin32 = require('os').platform() === 'win32'; + +var slash = '/'; +var backslash = /\\/g; +var escaped = /\\([!*?|[\](){}])/g; + +/** + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + */ +module.exports = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); + + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + + // special case for strings ending in enclosure containing path separator + if (isEnclosure(str)) { + str += slash; + } + + // preserves full path in case of trailing path separator + str += 'a'; + + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlobby(str)); + + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; + +function isEnclosure(str) { + var lastChar = str.slice(-1); + + var enclosureStart; + switch (lastChar) { + case '}': + enclosureStart = '{'; + break; + case ']': + enclosureStart = '['; + break; + default: + return false; + } + + var foundIndex = str.indexOf(enclosureStart); + if (foundIndex < 0) { + return false; + } + + return str.slice(foundIndex + 1, -1).includes(slash); +} + +function isGlobby(str) { + if (/\([^()]+$/.test(str)) { + return true; + } + if (str[0] === '{' || str[0] === '[') { + return true; + } + if (/[^\\][{[]/.test(str)) { + return true; + } + return isGlob(str); +} diff --git a/node_modules/glob-parent/package.json b/node_modules/glob-parent/package.json new file mode 100644 index 0000000..baeab42 --- /dev/null +++ b/node_modules/glob-parent/package.json @@ -0,0 +1,54 @@ +{ + "name": "glob-parent", + "version": "6.0.2", + "description": "Extract the non-magic parent path from a glob string.", + "author": "Gulp Team (https://gulpjs.com/)", + "contributors": [ + "Elan Shanker (https://github.com/es128)", + "Blaine Bublitz " + ], + "repository": "gulpjs/glob-parent", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + }, + "main": "index.js", + "files": [ + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "pretest": "npm run lint", + "test": "nyc mocha --async-only" + }, + "dependencies": { + "is-glob": "^4.0.3" + }, + "devDependencies": { + "eslint": "^7.0.0", + "eslint-config-gulp": "^5.0.0", + "expect": "^26.0.1", + "mocha": "^7.1.2", + "nyc": "^15.0.1" + }, + "nyc": { + "reporter": [ + "lcov", + "text-summary" + ] + }, + "prettier": { + "singleQuote": true + }, + "keywords": [ + "glob", + "parent", + "strip", + "path", + "dirname", + "directory", + "base", + "wildcard" + ] +} diff --git a/node_modules/glob/LICENSE b/node_modules/glob/LICENSE new file mode 100644 index 0000000..42ca266 --- /dev/null +++ b/node_modules/glob/LICENSE @@ -0,0 +1,21 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +## Glob Logo + +Glob's logo created by Tanya Brassie , licensed +under a Creative Commons Attribution-ShareAlike 4.0 International License +https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md new file mode 100644 index 0000000..83f0c83 --- /dev/null +++ b/node_modules/glob/README.md @@ -0,0 +1,378 @@ +# Glob + +Match files using the patterns the shell uses, like stars and stuff. + +[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) + +This is a glob implementation in JavaScript. It uses the `minimatch` +library to do its matching. + +![a fun cartoon logo made of glob characters](logo/glob.png) + +## Usage + +Install with npm + +``` +npm i glob +``` + +```javascript +var glob = require("glob") + +// options is optional +glob("**/*.js", options, function (er, files) { + // files is an array of filenames. + // If the `nonull` option is set, and nothing + // was found, then files is ["**/*.js"] + // er is an error object or null. +}) +``` + +## Glob Primer + +"Globs" are the patterns you type when you do stuff like `ls *.js` on +the command line, or put `build/*` in a `.gitignore` file. + +Before parsing the path part patterns, braced sections are expanded +into a set. Braced sections start with `{` and end with `}`, with any +number of comma-delimited sections within. Braced sections may contain +slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. + +The following characters have special magic meaning when used in a +path portion: + +* `*` Matches 0 or more characters in a single path portion +* `?` Matches 1 character +* `[...]` Matches a range of characters, similar to a RegExp range. + If the first character of the range is `!` or `^` then it matches + any character not in the range. +* `!(pattern|pattern|pattern)` Matches anything that does not match + any of the patterns provided. +* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the + patterns provided. +* `+(pattern|pattern|pattern)` Matches one or more occurrences of the + patterns provided. +* `*(a|b|c)` Matches zero or more occurrences of the patterns provided +* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns + provided +* `**` If a "globstar" is alone in a path portion, then it matches + zero or more directories and subdirectories searching for matches. + It does not crawl symlinked directories. + +### Dots + +If a file or directory path portion has a `.` as the first character, +then it will not match any glob pattern unless that pattern's +corresponding path part also has a `.` as its first character. + +For example, the pattern `a/.*/c` would match the file at `a/.b/c`. +However the pattern `a/*/c` would not, because `*` does not start with +a dot character. + +You can make glob treat dots as normal characters by setting +`dot:true` in the options. + +### Basename Matching + +If you set `matchBase:true` in the options, and the pattern has no +slashes in it, then it will seek for any file anywhere in the tree +with a matching basename. For example, `*.js` would match +`test/simple/basic.js`. + +### Empty Sets + +If no matching files are found, then an empty array is returned. This +differs from the shell, where the pattern itself is returned. For +example: + + $ echo a*s*d*f + a*s*d*f + +To get the bash-style behavior, set the `nonull:true` in the options. + +### See Also: + +* `man sh` +* `man bash` (Search for "Pattern Matching") +* `man 3 fnmatch` +* `man 5 gitignore` +* [minimatch documentation](https://github.com/isaacs/minimatch) + +## glob.hasMagic(pattern, [options]) + +Returns `true` if there are any special characters in the pattern, and +`false` otherwise. + +Note that the options affect the results. If `noext:true` is set in +the options object, then `+(a|b)` will not be considered a magic +pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` +then that is considered magical, unless `nobrace:true` is set in the +options. + +## glob(pattern, [options], cb) + +* `pattern` `{String}` Pattern to be matched +* `options` `{Object}` +* `cb` `{Function}` + * `err` `{Error | null}` + * `matches` `{Array}` filenames found matching the pattern + +Perform an asynchronous glob search. + +## glob.sync(pattern, [options]) + +* `pattern` `{String}` Pattern to be matched +* `options` `{Object}` +* return: `{Array}` filenames found matching the pattern + +Perform a synchronous glob search. + +## Class: glob.Glob + +Create a Glob object by instantiating the `glob.Glob` class. + +```javascript +var Glob = require("glob").Glob +var mg = new Glob(pattern, options, cb) +``` + +It's an EventEmitter, and starts walking the filesystem to find matches +immediately. + +### new glob.Glob(pattern, [options], [cb]) + +* `pattern` `{String}` pattern to search for +* `options` `{Object}` +* `cb` `{Function}` Called when an error occurs, or matches are found + * `err` `{Error | null}` + * `matches` `{Array}` filenames found matching the pattern + +Note that if the `sync` flag is set in the options, then matches will +be immediately available on the `g.found` member. + +### Properties + +* `minimatch` The minimatch object that the glob uses. +* `options` The options object passed in. +* `aborted` Boolean which is set to true when calling `abort()`. There + is no way at this time to continue a glob search after aborting, but + you can re-use the statCache to avoid having to duplicate syscalls. +* `cache` Convenience object. Each field has the following possible + values: + * `false` - Path does not exist + * `true` - Path exists + * `'FILE'` - Path exists, and is not a directory + * `'DIR'` - Path exists, and is a directory + * `[file, entries, ...]` - Path exists, is a directory, and the + array value is the results of `fs.readdir` +* `statCache` Cache of `fs.stat` results, to prevent statting the same + path multiple times. +* `symlinks` A record of which paths are symbolic links, which is + relevant in resolving `**` patterns. +* `realpathCache` An optional object which is passed to `fs.realpath` + to minimize unnecessary syscalls. It is stored on the instantiated + Glob object, and may be re-used. + +### Events + +* `end` When the matching is finished, this is emitted with all the + matches found. If the `nonull` option is set, and no match was found, + then the `matches` list contains the original pattern. The matches + are sorted, unless the `nosort` flag is set. +* `match` Every time a match is found, this is emitted with the specific + thing that matched. It is not deduplicated or resolved to a realpath. +* `error` Emitted when an unexpected error is encountered, or whenever + any fs error occurs if `options.strict` is set. +* `abort` When `abort()` is called, this event is raised. + +### Methods + +* `pause` Temporarily stop the search +* `resume` Resume the search +* `abort` Stop the search forever + +### Options + +All the options that can be passed to Minimatch can also be passed to +Glob to change pattern matching behavior. Also, some have been added, +or have glob-specific ramifications. + +All options are false by default, unless otherwise noted. + +All options are added to the Glob object, as well. + +If you are running many `glob` operations, you can pass a Glob object +as the `options` argument to a subsequent operation to shortcut some +`stat` and `readdir` calls. At the very least, you may pass in shared +`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that +parallel glob operations will be sped up by sharing information about +the filesystem. + +* `cwd` The current working directory in which to search. Defaults + to `process.cwd()`. +* `root` The place where patterns starting with `/` will be mounted + onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix + systems, and `C:\` or some such on Windows.) +* `dot` Include `.dot` files in normal matches and `globstar` matches. + Note that an explicit dot in a portion of the pattern will always + match dot files. +* `nomount` By default, a pattern starting with a forward-slash will be + "mounted" onto the root setting, so that a valid filesystem path is + returned. Set this flag to disable that behavior. +* `mark` Add a `/` character to directory matches. Note that this + requires additional stat calls. +* `nosort` Don't sort the results. +* `stat` Set to true to stat *all* results. This reduces performance + somewhat, and is completely unnecessary, unless `readdir` is presumed + to be an untrustworthy indicator of file existence. +* `silent` When an unusual error is encountered when attempting to + read a directory, a warning will be printed to stderr. Set the + `silent` option to true to suppress these warnings. +* `strict` When an unusual error is encountered when attempting to + read a directory, the process will just continue on in search of + other matches. Set the `strict` option to raise an error in these + cases. +* `cache` See `cache` property above. Pass in a previously generated + cache object to save some fs calls. +* `statCache` A cache of results of filesystem information, to prevent + unnecessary stat calls. While it should not normally be necessary + to set this, you may pass the statCache from one glob() call to the + options object of another, if you know that the filesystem will not + change between calls. (See "Race Conditions" below.) +* `symlinks` A cache of known symbolic links. You may pass in a + previously generated `symlinks` object to save `lstat` calls when + resolving `**` matches. +* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. +* `nounique` In some cases, brace-expanded patterns can result in the + same file showing up multiple times in the result set. By default, + this implementation prevents duplicates in the result set. Set this + flag to disable that behavior. +* `nonull` Set to never return an empty set, instead returning a set + containing the pattern itself. This is the default in glob(3). +* `debug` Set to enable debug logging in minimatch and glob. +* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. +* `noglobstar` Do not match `**` against multiple filenames. (Ie, + treat it as a normal `*` instead.) +* `noext` Do not match `+(a|b)` "extglob" patterns. +* `nocase` Perform a case-insensitive match. Note: on + case-insensitive filesystems, non-magic patterns will match by + default, since `stat` and `readdir` will not raise errors. +* `matchBase` Perform a basename-only match if the pattern does not + contain any slash characters. That is, `*.js` would be treated as + equivalent to `**/*.js`, matching all js files in all directories. +* `nodir` Do not match directories, only files. (Note: to match + *only* directories, simply put a `/` at the end of the pattern.) +* `ignore` Add a pattern or an array of glob patterns to exclude matches. + Note: `ignore` patterns are *always* in `dot:true` mode, regardless + of any other settings. +* `follow` Follow symlinked directories when expanding `**` patterns. + Note that this can result in a lot of duplicate references in the + presence of cyclic links. +* `realpath` Set to true to call `fs.realpath` on all of the results. + In the case of a symlink that cannot be resolved, the full absolute + path to the matched entry is returned (though it will usually be a + broken symlink) +* `absolute` Set to true to always receive absolute paths for matched + files. Unlike `realpath`, this also affects the values returned in + the `match` event. +* `fs` File-system object with Node's `fs` API. By default, the built-in + `fs` module will be used. Set to a volume provided by a library like + `memfs` to avoid using the "real" file-system. + +## Comparisons to other fnmatch/glob implementations + +While strict compliance with the existing standards is a worthwhile +goal, some discrepancies exist between node-glob and other +implementations, and are intentional. + +The double-star character `**` is supported by default, unless the +`noglobstar` flag is set. This is supported in the manner of bsdglob +and bash 4.3, where `**` only has special significance if it is the only +thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but +`a/**b` will not. + +Note that symlinked directories are not crawled as part of a `**`, +though their contents may match against subsequent portions of the +pattern. This prevents infinite loops and duplicates and the like. + +If an escaped pattern has no matches, and the `nonull` flag is set, +then glob returns the pattern as-provided, rather than +interpreting the character escapes. For example, +`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than +`"*a?"`. This is akin to setting the `nullglob` option in bash, except +that it does not resolve escaped pattern characters. + +If brace expansion is not disabled, then it is performed before any +other interpretation of the glob pattern. Thus, a pattern like +`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded +**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are +checked for validity. Since those two are valid, matching proceeds. + +### Comments and Negation + +Previously, this module let you mark a pattern as a "comment" if it +started with a `#` character, or a "negated" pattern if it started +with a `!` character. + +These options were deprecated in version 5, and removed in version 6. + +To specify things that should not match, use the `ignore` option. + +## Windows + +**Please only use forward-slashes in glob expressions.** + +Though windows uses either `/` or `\` as its path separator, only `/` +characters are used by this glob implementation. You must use +forward-slashes **only** in glob expressions. Back-slashes will always +be interpreted as escape characters, not path separators. + +Results from absolute patterns such as `/foo/*` are mounted onto the +root setting using `path.join`. On windows, this will by default result +in `/foo/*` matching `C:\foo\bar.txt`. + +## Race Conditions + +Glob searching, by its very nature, is susceptible to race conditions, +since it relies on directory walking and such. + +As a result, it is possible that a file that exists when glob looks for +it may have been deleted or modified by the time it returns the result. + +As part of its internal implementation, this program caches all stat +and readdir calls that it makes, in order to cut down on system +overhead. However, this also makes it even more susceptible to races, +especially if the cache or statCache objects are reused between glob +calls. + +Users are thus advised not to use a glob result as a guarantee of +filesystem state in the face of rapid changes. For the vast majority +of operations, this is never a problem. + +## Glob Logo +Glob's logo was created by [Tanya Brassie](http://tanyabrassie.com/). Logo files can be found [here](https://github.com/isaacs/node-glob/tree/master/logo). + +The logo is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/). + +## Contributing + +Any change to behavior (including bugfixes) must come with a test. + +Patches that fail tests or reduce performance will be rejected. + +``` +# to run tests +npm test + +# to re-generate test fixtures +npm run test-regen + +# to benchmark against bash/zsh +npm run bench + +# to profile javascript +npm run prof +``` + +![](oh-my-glob.gif) diff --git a/node_modules/glob/common.js b/node_modules/glob/common.js new file mode 100644 index 0000000..424c46e --- /dev/null +++ b/node_modules/glob/common.js @@ -0,0 +1,238 @@ +exports.setopts = setopts +exports.ownProp = ownProp +exports.makeAbs = makeAbs +exports.finish = finish +exports.mark = mark +exports.isIgnored = isIgnored +exports.childrenIgnored = childrenIgnored + +function ownProp (obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field) +} + +var fs = require("fs") +var path = require("path") +var minimatch = require("minimatch") +var isAbsolute = require("path-is-absolute") +var Minimatch = minimatch.Minimatch + +function alphasort (a, b) { + return a.localeCompare(b, 'en') +} + +function setupIgnores (self, options) { + self.ignore = options.ignore || [] + + if (!Array.isArray(self.ignore)) + self.ignore = [self.ignore] + + if (self.ignore.length) { + self.ignore = self.ignore.map(ignoreMap) + } +} + +// ignore patterns are always in dot:true mode. +function ignoreMap (pattern) { + var gmatcher = null + if (pattern.slice(-3) === '/**') { + var gpattern = pattern.replace(/(\/\*\*)+$/, '') + gmatcher = new Minimatch(gpattern, { dot: true }) + } + + return { + matcher: new Minimatch(pattern, { dot: true }), + gmatcher: gmatcher + } +} + +function setopts (self, pattern, options) { + if (!options) + options = {} + + // base-matching: just use globstar for that. + if (options.matchBase && -1 === pattern.indexOf("/")) { + if (options.noglobstar) { + throw new Error("base matching requires globstar") + } + pattern = "**/" + pattern + } + + self.silent = !!options.silent + self.pattern = pattern + self.strict = options.strict !== false + self.realpath = !!options.realpath + self.realpathCache = options.realpathCache || Object.create(null) + self.follow = !!options.follow + self.dot = !!options.dot + self.mark = !!options.mark + self.nodir = !!options.nodir + if (self.nodir) + self.mark = true + self.sync = !!options.sync + self.nounique = !!options.nounique + self.nonull = !!options.nonull + self.nosort = !!options.nosort + self.nocase = !!options.nocase + self.stat = !!options.stat + self.noprocess = !!options.noprocess + self.absolute = !!options.absolute + self.fs = options.fs || fs + + self.maxLength = options.maxLength || Infinity + self.cache = options.cache || Object.create(null) + self.statCache = options.statCache || Object.create(null) + self.symlinks = options.symlinks || Object.create(null) + + setupIgnores(self, options) + + self.changedCwd = false + var cwd = process.cwd() + if (!ownProp(options, "cwd")) + self.cwd = cwd + else { + self.cwd = path.resolve(options.cwd) + self.changedCwd = self.cwd !== cwd + } + + self.root = options.root || path.resolve(self.cwd, "/") + self.root = path.resolve(self.root) + if (process.platform === "win32") + self.root = self.root.replace(/\\/g, "/") + + // TODO: is an absolute `cwd` supposed to be resolved against `root`? + // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') + self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd) + if (process.platform === "win32") + self.cwdAbs = self.cwdAbs.replace(/\\/g, "/") + self.nomount = !!options.nomount + + // disable comments and negation in Minimatch. + // Note that they are not supported in Glob itself anyway. + options.nonegate = true + options.nocomment = true + // always treat \ in patterns as escapes, not path separators + options.allowWindowsEscape = false + + self.minimatch = new Minimatch(pattern, options) + self.options = self.minimatch.options +} + +function finish (self) { + var nou = self.nounique + var all = nou ? [] : Object.create(null) + + for (var i = 0, l = self.matches.length; i < l; i ++) { + var matches = self.matches[i] + if (!matches || Object.keys(matches).length === 0) { + if (self.nonull) { + // do like the shell, and spit out the literal glob + var literal = self.minimatch.globSet[i] + if (nou) + all.push(literal) + else + all[literal] = true + } + } else { + // had matches + var m = Object.keys(matches) + if (nou) + all.push.apply(all, m) + else + m.forEach(function (m) { + all[m] = true + }) + } + } + + if (!nou) + all = Object.keys(all) + + if (!self.nosort) + all = all.sort(alphasort) + + // at *some* point we statted all of these + if (self.mark) { + for (var i = 0; i < all.length; i++) { + all[i] = self._mark(all[i]) + } + if (self.nodir) { + all = all.filter(function (e) { + var notDir = !(/\/$/.test(e)) + var c = self.cache[e] || self.cache[makeAbs(self, e)] + if (notDir && c) + notDir = c !== 'DIR' && !Array.isArray(c) + return notDir + }) + } + } + + if (self.ignore.length) + all = all.filter(function(m) { + return !isIgnored(self, m) + }) + + self.found = all +} + +function mark (self, p) { + var abs = makeAbs(self, p) + var c = self.cache[abs] + var m = p + if (c) { + var isDir = c === 'DIR' || Array.isArray(c) + var slash = p.slice(-1) === '/' + + if (isDir && !slash) + m += '/' + else if (!isDir && slash) + m = m.slice(0, -1) + + if (m !== p) { + var mabs = makeAbs(self, m) + self.statCache[mabs] = self.statCache[abs] + self.cache[mabs] = self.cache[abs] + } + } + + return m +} + +// lotta situps... +function makeAbs (self, f) { + var abs = f + if (f.charAt(0) === '/') { + abs = path.join(self.root, f) + } else if (isAbsolute(f) || f === '') { + abs = f + } else if (self.changedCwd) { + abs = path.resolve(self.cwd, f) + } else { + abs = path.resolve(f) + } + + if (process.platform === 'win32') + abs = abs.replace(/\\/g, '/') + + return abs +} + + +// Return true, if pattern ends with globstar '**', for the accompanying parent directory. +// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents +function isIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) + }) +} + +function childrenIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path)) + }) +} diff --git a/node_modules/glob/glob.js b/node_modules/glob/glob.js new file mode 100644 index 0000000..37a4d7e --- /dev/null +++ b/node_modules/glob/glob.js @@ -0,0 +1,790 @@ +// Approach: +// +// 1. Get the minimatch set +// 2. For each pattern in the set, PROCESS(pattern, false) +// 3. Store matches per-set, then uniq them +// +// PROCESS(pattern, inGlobStar) +// Get the first [n] items from pattern that are all strings +// Join these together. This is PREFIX. +// If there is no more remaining, then stat(PREFIX) and +// add to matches if it succeeds. END. +// +// If inGlobStar and PREFIX is symlink and points to dir +// set ENTRIES = [] +// else readdir(PREFIX) as ENTRIES +// If fail, END +// +// with ENTRIES +// If pattern[n] is GLOBSTAR +// // handle the case where the globstar match is empty +// // by pruning it out, and testing the resulting pattern +// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) +// // handle other cases. +// for ENTRY in ENTRIES (not dotfiles) +// // attach globstar + tail onto the entry +// // Mark that this entry is a globstar match +// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) +// +// else // not globstar +// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) +// Test ENTRY against pattern[n] +// If fails, continue +// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) +// +// Caveat: +// Cache all stats and readdirs results to minimize syscall. Since all +// we ever care about is existence and directory-ness, we can just keep +// `true` for files, and [children,...] for directories, or `false` for +// things that don't exist. + +module.exports = glob + +var rp = require('fs.realpath') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var inherits = require('inherits') +var EE = require('events').EventEmitter +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var globSync = require('./sync.js') +var common = require('./common.js') +var setopts = common.setopts +var ownProp = common.ownProp +var inflight = require('inflight') +var util = require('util') +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored + +var once = require('once') + +function glob (pattern, options, cb) { + if (typeof options === 'function') cb = options, options = {} + if (!options) options = {} + + if (options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return globSync(pattern, options) + } + + return new Glob(pattern, options, cb) +} + +glob.sync = globSync +var GlobSync = glob.GlobSync = globSync.GlobSync + +// old api surface +glob.glob = glob + +function extend (origin, add) { + if (add === null || typeof add !== 'object') { + return origin + } + + var keys = Object.keys(add) + var i = keys.length + while (i--) { + origin[keys[i]] = add[keys[i]] + } + return origin +} + +glob.hasMagic = function (pattern, options_) { + var options = extend({}, options_) + options.noprocess = true + + var g = new Glob(pattern, options) + var set = g.minimatch.set + + if (!pattern) + return false + + if (set.length > 1) + return true + + for (var j = 0; j < set[0].length; j++) { + if (typeof set[0][j] !== 'string') + return true + } + + return false +} + +glob.Glob = Glob +inherits(Glob, EE) +function Glob (pattern, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + + if (options && options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return new GlobSync(pattern, options) + } + + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb) + + setopts(this, pattern, options) + this._didRealPath = false + + // process each pattern in the minimatch set + var n = this.minimatch.set.length + + // The matches are stored as {: true,...} so that + // duplicates are automagically pruned. + // Later, we do an Object.keys() on these. + // Keep them as a list so we can fill in when nonull is set. + this.matches = new Array(n) + + if (typeof cb === 'function') { + cb = once(cb) + this.on('error', cb) + this.on('end', function (matches) { + cb(null, matches) + }) + } + + var self = this + this._processing = 0 + + this._emitQueue = [] + this._processQueue = [] + this.paused = false + + if (this.noprocess) + return this + + if (n === 0) + return done() + + var sync = true + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false, done) + } + sync = false + + function done () { + --self._processing + if (self._processing <= 0) { + if (sync) { + process.nextTick(function () { + self._finish() + }) + } else { + self._finish() + } + } + } +} + +Glob.prototype._finish = function () { + assert(this instanceof Glob) + if (this.aborted) + return + + if (this.realpath && !this._didRealpath) + return this._realpath() + + common.finish(this) + this.emit('end', this.found) +} + +Glob.prototype._realpath = function () { + if (this._didRealpath) + return + + this._didRealpath = true + + var n = this.matches.length + if (n === 0) + return this._finish() + + var self = this + for (var i = 0; i < this.matches.length; i++) + this._realpathSet(i, next) + + function next () { + if (--n === 0) + self._finish() + } +} + +Glob.prototype._realpathSet = function (index, cb) { + var matchset = this.matches[index] + if (!matchset) + return cb() + + var found = Object.keys(matchset) + var self = this + var n = found.length + + if (n === 0) + return cb() + + var set = this.matches[index] = Object.create(null) + found.forEach(function (p, i) { + // If there's a problem with the stat, then it means that + // one or more of the links in the realpath couldn't be + // resolved. just return the abs value in that case. + p = self._makeAbs(p) + rp.realpath(p, self.realpathCache, function (er, real) { + if (!er) + set[real] = true + else if (er.syscall === 'stat') + set[p] = true + else + self.emit('error', er) // srsly wtf right here + + if (--n === 0) { + self.matches[index] = set + cb() + } + }) + }) +} + +Glob.prototype._mark = function (p) { + return common.mark(this, p) +} + +Glob.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} + +Glob.prototype.abort = function () { + this.aborted = true + this.emit('abort') +} + +Glob.prototype.pause = function () { + if (!this.paused) { + this.paused = true + this.emit('pause') + } +} + +Glob.prototype.resume = function () { + if (this.paused) { + this.emit('resume') + this.paused = false + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0) + this._emitQueue.length = 0 + for (var i = 0; i < eq.length; i ++) { + var e = eq[i] + this._emitMatch(e[0], e[1]) + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0) + this._processQueue.length = 0 + for (var i = 0; i < pq.length; i ++) { + var p = pq[i] + this._processing-- + this._process(p[0], p[1], p[2], p[3]) + } + } + } +} + +Glob.prototype._process = function (pattern, index, inGlobStar, cb) { + assert(this instanceof Glob) + assert(typeof cb === 'function') + + if (this.aborted) + return + + this._processing++ + if (this.paused) { + this._processQueue.push([pattern, index, inGlobStar, cb]) + return + } + + //console.error('PROCESS %d', this._processing, pattern) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // see if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index, cb) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || + isAbsolute(pattern.map(function (p) { + return typeof p === 'string' ? p : '[*]' + }).join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip _processing + if (childrenIgnored(this, read)) + return cb() + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) +} + +Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + +Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return cb() + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return cb() + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return cb() + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + this._process([e].concat(remain), index, inGlobStar, cb) + } + cb() +} + +Glob.prototype._emitMatch = function (index, e) { + if (this.aborted) + return + + if (isIgnored(this, e)) + return + + if (this.paused) { + this._emitQueue.push([index, e]) + return + } + + var abs = isAbsolute(e) ? e : this._makeAbs(e) + + if (this.mark) + e = this._mark(e) + + if (this.absolute) + e = abs + + if (this.matches[index][e]) + return + + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return + } + + this.matches[index][e] = true + + var st = this.statCache[abs] + if (st) + this.emit('stat', e, st) + + this.emit('match', e) +} + +Glob.prototype._readdirInGlobStar = function (abs, cb) { + if (this.aborted) + return + + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false, cb) + + var lstatkey = 'lstat\0' + abs + var self = this + var lstatcb = inflight(lstatkey, lstatcb_) + + if (lstatcb) + self.fs.lstat(abs, lstatcb) + + function lstatcb_ (er, lstat) { + if (er && er.code === 'ENOENT') + return cb() + + var isSym = lstat && lstat.isSymbolicLink() + self.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) { + self.cache[abs] = 'FILE' + cb() + } else + self._readdir(abs, false, cb) + } +} + +Glob.prototype._readdir = function (abs, inGlobStar, cb) { + if (this.aborted) + return + + cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) + if (!cb) + return + + //console.error('RD %j %j', +inGlobStar, abs) + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return cb() + + if (Array.isArray(c)) + return cb(null, c) + } + + var self = this + self.fs.readdir(abs, readdirCb(this, abs, cb)) +} + +function readdirCb (self, abs, cb) { + return function (er, entries) { + if (er) + self._readdirError(abs, er, cb) + else + self._readdirEntries(abs, entries, cb) + } +} + +Glob.prototype._readdirEntries = function (abs, entries, cb) { + if (this.aborted) + return + + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + return cb(null, entries) +} + +Glob.prototype._readdirError = function (f, er, cb) { + if (this.aborted) + return + + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f) + this.cache[abs] = 'FILE' + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd) + error.path = this.cwd + error.code = er.code + this.emit('error', error) + this.abort() + } + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) { + this.emit('error', er) + // If the error is handled, then we abort + // if not, we threw out of here + this.abort() + } + if (!this.silent) + console.error('glob error', er) + break + } + + return cb() +} + +Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + + +Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + //console.error('pgs2', prefix, remain[0], entries) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return cb() + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false, cb) + + var isSym = this.symlinks[abs] + var len = entries.length + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return cb() + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true, cb) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true, cb) + } + + cb() +} + +Glob.prototype._processSimple = function (prefix, index, cb) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var self = this + this._stat(prefix, function (er, exists) { + self._processSimple2(prefix, index, er, exists, cb) + }) +} +Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { + + //console.error('ps2', prefix, exists) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return cb() + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this._emitMatch(index, prefix) + cb() +} + +// Returns either 'DIR', 'FILE', or false +Glob.prototype._stat = function (f, cb) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return cb() + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return cb(null, c) + + if (needDir && c === 'FILE') + return cb() + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (stat !== undefined) { + if (stat === false) + return cb(null, stat) + else { + var type = stat.isDirectory() ? 'DIR' : 'FILE' + if (needDir && type === 'FILE') + return cb() + else + return cb(null, type, stat) + } + } + + var self = this + var statcb = inflight('stat\0' + abs, lstatcb_) + if (statcb) + self.fs.lstat(abs, statcb) + + function lstatcb_ (er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + // If it's a symlink, then treat it as the target, unless + // the target does not exist, then treat it as a file. + return self.fs.stat(abs, function (er, stat) { + if (er) + self._stat2(f, abs, null, lstat, cb) + else + self._stat2(f, abs, er, stat, cb) + }) + } else { + self._stat2(f, abs, er, lstat, cb) + } + } +} + +Glob.prototype._stat2 = function (f, abs, er, stat, cb) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false + return cb() + } + + var needDir = f.slice(-1) === '/' + this.statCache[abs] = stat + + if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) + return cb(null, false, stat) + + var c = true + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE' + this.cache[abs] = this.cache[abs] || c + + if (needDir && c === 'FILE') + return cb() + + return cb(null, c, stat) +} diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json new file mode 100644 index 0000000..5940b64 --- /dev/null +++ b/node_modules/glob/package.json @@ -0,0 +1,55 @@ +{ + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "name": "glob", + "description": "a little globber", + "version": "7.2.3", + "publishConfig": { + "tag": "v7-legacy" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" + }, + "main": "glob.js", + "files": [ + "glob.js", + "sync.js", + "common.js" + ], + "engines": { + "node": "*" + }, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "devDependencies": { + "memfs": "^3.2.0", + "mkdirp": "0", + "rimraf": "^2.2.8", + "tap": "^15.0.6", + "tick": "0.0.6" + }, + "tap": { + "before": "test/00-setup.js", + "after": "test/zz-cleanup.js", + "jobs": 1 + }, + "scripts": { + "prepublish": "npm run benchclean", + "profclean": "rm -f v8.log profile.txt", + "test": "tap", + "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", + "bench": "bash benchmark.sh", + "prof": "bash prof.sh && cat profile.txt", + "benchclean": "node benchclean.js" + }, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } +} diff --git a/node_modules/glob/sync.js b/node_modules/glob/sync.js new file mode 100644 index 0000000..2c4f480 --- /dev/null +++ b/node_modules/glob/sync.js @@ -0,0 +1,486 @@ +module.exports = globSync +globSync.GlobSync = GlobSync + +var rp = require('fs.realpath') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var Glob = require('./glob.js').Glob +var util = require('util') +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var common = require('./common.js') +var setopts = common.setopts +var ownProp = common.ownProp +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored + +function globSync (pattern, options) { + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + return new GlobSync(pattern, options).found +} + +function GlobSync (pattern, options) { + if (!pattern) + throw new Error('must provide pattern') + + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + if (!(this instanceof GlobSync)) + return new GlobSync(pattern, options) + + setopts(this, pattern, options) + + if (this.noprocess) + return this + + var n = this.minimatch.set.length + this.matches = new Array(n) + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false) + } + this._finish() +} + +GlobSync.prototype._finish = function () { + assert.ok(this instanceof GlobSync) + if (this.realpath) { + var self = this + this.matches.forEach(function (matchset, index) { + var set = self.matches[index] = Object.create(null) + for (var p in matchset) { + try { + p = self._makeAbs(p) + var real = rp.realpathSync(p, self.realpathCache) + set[real] = true + } catch (er) { + if (er.syscall === 'stat') + set[self._makeAbs(p)] = true + else + throw er + } + } + }) + } + common.finish(this) +} + + +GlobSync.prototype._process = function (pattern, index, inGlobStar) { + assert.ok(this instanceof GlobSync) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // See if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || + isAbsolute(pattern.map(function (p) { + return typeof p === 'string' ? p : '[*]' + }).join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip processing + if (childrenIgnored(this, read)) + return + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar) +} + + +GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar) + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix.slice(-1) !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) + newPattern = [prefix, e] + else + newPattern = [e] + this._process(newPattern.concat(remain), index, inGlobStar) + } +} + + +GlobSync.prototype._emitMatch = function (index, e) { + if (isIgnored(this, e)) + return + + var abs = this._makeAbs(e) + + if (this.mark) + e = this._mark(e) + + if (this.absolute) { + e = abs + } + + if (this.matches[index][e]) + return + + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return + } + + this.matches[index][e] = true + + if (this.stat) + this._stat(e) +} + + +GlobSync.prototype._readdirInGlobStar = function (abs) { + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false) + + var entries + var lstat + var stat + try { + lstat = this.fs.lstatSync(abs) + } catch (er) { + if (er.code === 'ENOENT') { + // lstat failed, doesn't exist + return null + } + } + + var isSym = lstat && lstat.isSymbolicLink() + this.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) + this.cache[abs] = 'FILE' + else + entries = this._readdir(abs, false) + + return entries +} + +GlobSync.prototype._readdir = function (abs, inGlobStar) { + var entries + + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return null + + if (Array.isArray(c)) + return c + } + + try { + return this._readdirEntries(abs, this.fs.readdirSync(abs)) + } catch (er) { + this._readdirError(abs, er) + return null + } +} + +GlobSync.prototype._readdirEntries = function (abs, entries) { + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + + // mark and cache dir-ness + return entries +} + +GlobSync.prototype._readdirError = function (f, er) { + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f) + this.cache[abs] = 'FILE' + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd) + error.path = this.cwd + error.code = er.code + throw error + } + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) + throw er + if (!this.silent) + console.error('glob error', er) + break + } +} + +GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { + + var entries = this._readdir(abs, inGlobStar) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false) + + var len = entries.length + var isSym = this.symlinks[abs] + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true) + } +} + +GlobSync.prototype._processSimple = function (prefix, index) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var exists = this._stat(prefix) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this._emitMatch(index, prefix) +} + +// Returns either 'DIR', 'FILE', or false +GlobSync.prototype._stat = function (f) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return false + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return c + + if (needDir && c === 'FILE') + return false + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (!stat) { + var lstat + try { + lstat = this.fs.lstatSync(abs) + } catch (er) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false + return false + } + } + + if (lstat && lstat.isSymbolicLink()) { + try { + stat = this.fs.statSync(abs) + } catch (er) { + stat = lstat + } + } else { + stat = lstat + } + } + + this.statCache[abs] = stat + + var c = true + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE' + + this.cache[abs] = this.cache[abs] || c + + if (needDir && c === 'FILE') + return false + + return c +} + +GlobSync.prototype._mark = function (p) { + return common.mark(this, p) +} + +GlobSync.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} diff --git a/node_modules/globals/globals.json b/node_modules/globals/globals.json new file mode 100644 index 0000000..c24ab96 --- /dev/null +++ b/node_modules/globals/globals.json @@ -0,0 +1,1800 @@ +{ + "builtin": { + "AggregateError": false, + "Array": false, + "ArrayBuffer": false, + "Atomics": false, + "BigInt": false, + "BigInt64Array": false, + "BigUint64Array": false, + "Boolean": false, + "constructor": false, + "DataView": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "FinalizationRegistry": false, + "Float32Array": false, + "Float64Array": false, + "Function": false, + "globalThis": false, + "hasOwnProperty": false, + "Infinity": false, + "Int16Array": false, + "Int32Array": false, + "Int8Array": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Map": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "Promise": false, + "propertyIsEnumerable": false, + "Proxy": false, + "RangeError": false, + "ReferenceError": false, + "Reflect": false, + "RegExp": false, + "Set": false, + "SharedArrayBuffer": false, + "String": false, + "Symbol": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "Uint16Array": false, + "Uint32Array": false, + "Uint8Array": false, + "Uint8ClampedArray": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false, + "WeakMap": false, + "WeakRef": false, + "WeakSet": false + }, + "es5": { + "Array": false, + "Boolean": false, + "constructor": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "Function": false, + "hasOwnProperty": false, + "Infinity": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "propertyIsEnumerable": false, + "RangeError": false, + "ReferenceError": false, + "RegExp": false, + "String": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false + }, + "es2015": { + "Array": false, + "ArrayBuffer": false, + "Boolean": false, + "constructor": false, + "DataView": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "Float32Array": false, + "Float64Array": false, + "Function": false, + "hasOwnProperty": false, + "Infinity": false, + "Int16Array": false, + "Int32Array": false, + "Int8Array": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Map": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "Promise": false, + "propertyIsEnumerable": false, + "Proxy": false, + "RangeError": false, + "ReferenceError": false, + "Reflect": false, + "RegExp": false, + "Set": false, + "String": false, + "Symbol": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "Uint16Array": false, + "Uint32Array": false, + "Uint8Array": false, + "Uint8ClampedArray": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false, + "WeakMap": false, + "WeakSet": false + }, + "es2017": { + "Array": false, + "ArrayBuffer": false, + "Atomics": false, + "Boolean": false, + "constructor": false, + "DataView": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "Float32Array": false, + "Float64Array": false, + "Function": false, + "hasOwnProperty": false, + "Infinity": false, + "Int16Array": false, + "Int32Array": false, + "Int8Array": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Map": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "Promise": false, + "propertyIsEnumerable": false, + "Proxy": false, + "RangeError": false, + "ReferenceError": false, + "Reflect": false, + "RegExp": false, + "Set": false, + "SharedArrayBuffer": false, + "String": false, + "Symbol": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "Uint16Array": false, + "Uint32Array": false, + "Uint8Array": false, + "Uint8ClampedArray": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false, + "WeakMap": false, + "WeakSet": false + }, + "es2020": { + "Array": false, + "ArrayBuffer": false, + "Atomics": false, + "BigInt": false, + "BigInt64Array": false, + "BigUint64Array": false, + "Boolean": false, + "constructor": false, + "DataView": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "Float32Array": false, + "Float64Array": false, + "Function": false, + "globalThis": false, + "hasOwnProperty": false, + "Infinity": false, + "Int16Array": false, + "Int32Array": false, + "Int8Array": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Map": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "Promise": false, + "propertyIsEnumerable": false, + "Proxy": false, + "RangeError": false, + "ReferenceError": false, + "Reflect": false, + "RegExp": false, + "Set": false, + "SharedArrayBuffer": false, + "String": false, + "Symbol": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "Uint16Array": false, + "Uint32Array": false, + "Uint8Array": false, + "Uint8ClampedArray": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false, + "WeakMap": false, + "WeakSet": false + }, + "es2021": { + "AggregateError": false, + "Array": false, + "ArrayBuffer": false, + "Atomics": false, + "BigInt": false, + "BigInt64Array": false, + "BigUint64Array": false, + "Boolean": false, + "constructor": false, + "DataView": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "FinalizationRegistry": false, + "Float32Array": false, + "Float64Array": false, + "Function": false, + "globalThis": false, + "hasOwnProperty": false, + "Infinity": false, + "Int16Array": false, + "Int32Array": false, + "Int8Array": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Map": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "Promise": false, + "propertyIsEnumerable": false, + "Proxy": false, + "RangeError": false, + "ReferenceError": false, + "Reflect": false, + "RegExp": false, + "Set": false, + "SharedArrayBuffer": false, + "String": false, + "Symbol": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "Uint16Array": false, + "Uint32Array": false, + "Uint8Array": false, + "Uint8ClampedArray": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false, + "WeakMap": false, + "WeakRef": false, + "WeakSet": false + }, + "browser": { + "AbortController": false, + "AbortSignal": false, + "addEventListener": false, + "alert": false, + "AnalyserNode": false, + "Animation": false, + "AnimationEffectReadOnly": false, + "AnimationEffectTiming": false, + "AnimationEffectTimingReadOnly": false, + "AnimationEvent": false, + "AnimationPlaybackEvent": false, + "AnimationTimeline": false, + "applicationCache": false, + "ApplicationCache": false, + "ApplicationCacheErrorEvent": false, + "atob": false, + "Attr": false, + "Audio": false, + "AudioBuffer": false, + "AudioBufferSourceNode": false, + "AudioContext": false, + "AudioDestinationNode": false, + "AudioListener": false, + "AudioNode": false, + "AudioParam": false, + "AudioProcessingEvent": false, + "AudioScheduledSourceNode": false, + "AudioWorkletGlobalScope": false, + "AudioWorkletNode": false, + "AudioWorkletProcessor": false, + "BarProp": false, + "BaseAudioContext": false, + "BatteryManager": false, + "BeforeUnloadEvent": false, + "BiquadFilterNode": false, + "Blob": false, + "BlobEvent": false, + "blur": false, + "BroadcastChannel": false, + "btoa": false, + "BudgetService": false, + "ByteLengthQueuingStrategy": false, + "Cache": false, + "caches": false, + "CacheStorage": false, + "cancelAnimationFrame": false, + "cancelIdleCallback": false, + "CanvasCaptureMediaStreamTrack": false, + "CanvasGradient": false, + "CanvasPattern": false, + "CanvasRenderingContext2D": false, + "ChannelMergerNode": false, + "ChannelSplitterNode": false, + "CharacterData": false, + "clearInterval": false, + "clearTimeout": false, + "clientInformation": false, + "ClipboardEvent": false, + "close": false, + "closed": false, + "CloseEvent": false, + "Comment": false, + "CompositionEvent": false, + "confirm": false, + "console": false, + "ConstantSourceNode": false, + "ConvolverNode": false, + "CountQueuingStrategy": false, + "createImageBitmap": false, + "Credential": false, + "CredentialsContainer": false, + "crypto": false, + "Crypto": false, + "CryptoKey": false, + "CSS": false, + "CSSConditionRule": false, + "CSSFontFaceRule": false, + "CSSGroupingRule": false, + "CSSImportRule": false, + "CSSKeyframeRule": false, + "CSSKeyframesRule": false, + "CSSMatrixComponent": false, + "CSSMediaRule": false, + "CSSNamespaceRule": false, + "CSSPageRule": false, + "CSSPerspective": false, + "CSSRotate": false, + "CSSRule": false, + "CSSRuleList": false, + "CSSScale": false, + "CSSSkew": false, + "CSSSkewX": false, + "CSSSkewY": false, + "CSSStyleDeclaration": false, + "CSSStyleRule": false, + "CSSStyleSheet": false, + "CSSSupportsRule": false, + "CSSTransformValue": false, + "CSSTranslate": false, + "CustomElementRegistry": false, + "customElements": false, + "CustomEvent": false, + "DataTransfer": false, + "DataTransferItem": false, + "DataTransferItemList": false, + "defaultstatus": false, + "defaultStatus": false, + "DelayNode": false, + "DeviceMotionEvent": false, + "DeviceOrientationEvent": false, + "devicePixelRatio": false, + "dispatchEvent": false, + "document": false, + "Document": false, + "DocumentFragment": false, + "DocumentType": false, + "DOMError": false, + "DOMException": false, + "DOMImplementation": false, + "DOMMatrix": false, + "DOMMatrixReadOnly": false, + "DOMParser": false, + "DOMPoint": false, + "DOMPointReadOnly": false, + "DOMQuad": false, + "DOMRect": false, + "DOMRectList": false, + "DOMRectReadOnly": false, + "DOMStringList": false, + "DOMStringMap": false, + "DOMTokenList": false, + "DragEvent": false, + "DynamicsCompressorNode": false, + "Element": false, + "ErrorEvent": false, + "event": false, + "Event": false, + "EventSource": false, + "EventTarget": false, + "external": false, + "fetch": false, + "File": false, + "FileList": false, + "FileReader": false, + "find": false, + "focus": false, + "FocusEvent": false, + "FontFace": false, + "FontFaceSetLoadEvent": false, + "FormData": false, + "FormDataEvent": false, + "frameElement": false, + "frames": false, + "GainNode": false, + "Gamepad": false, + "GamepadButton": false, + "GamepadEvent": false, + "getComputedStyle": false, + "getSelection": false, + "HashChangeEvent": false, + "Headers": false, + "history": false, + "History": false, + "HTMLAllCollection": false, + "HTMLAnchorElement": false, + "HTMLAreaElement": false, + "HTMLAudioElement": false, + "HTMLBaseElement": false, + "HTMLBodyElement": false, + "HTMLBRElement": false, + "HTMLButtonElement": false, + "HTMLCanvasElement": false, + "HTMLCollection": false, + "HTMLContentElement": false, + "HTMLDataElement": false, + "HTMLDataListElement": false, + "HTMLDetailsElement": false, + "HTMLDialogElement": false, + "HTMLDirectoryElement": false, + "HTMLDivElement": false, + "HTMLDListElement": false, + "HTMLDocument": false, + "HTMLElement": false, + "HTMLEmbedElement": false, + "HTMLFieldSetElement": false, + "HTMLFontElement": false, + "HTMLFormControlsCollection": false, + "HTMLFormElement": false, + "HTMLFrameElement": false, + "HTMLFrameSetElement": false, + "HTMLHeadElement": false, + "HTMLHeadingElement": false, + "HTMLHRElement": false, + "HTMLHtmlElement": false, + "HTMLIFrameElement": false, + "HTMLImageElement": false, + "HTMLInputElement": false, + "HTMLLabelElement": false, + "HTMLLegendElement": false, + "HTMLLIElement": false, + "HTMLLinkElement": false, + "HTMLMapElement": false, + "HTMLMarqueeElement": false, + "HTMLMediaElement": false, + "HTMLMenuElement": false, + "HTMLMetaElement": false, + "HTMLMeterElement": false, + "HTMLModElement": false, + "HTMLObjectElement": false, + "HTMLOListElement": false, + "HTMLOptGroupElement": false, + "HTMLOptionElement": false, + "HTMLOptionsCollection": false, + "HTMLOutputElement": false, + "HTMLParagraphElement": false, + "HTMLParamElement": false, + "HTMLPictureElement": false, + "HTMLPreElement": false, + "HTMLProgressElement": false, + "HTMLQuoteElement": false, + "HTMLScriptElement": false, + "HTMLSelectElement": false, + "HTMLShadowElement": false, + "HTMLSlotElement": false, + "HTMLSourceElement": false, + "HTMLSpanElement": false, + "HTMLStyleElement": false, + "HTMLTableCaptionElement": false, + "HTMLTableCellElement": false, + "HTMLTableColElement": false, + "HTMLTableElement": false, + "HTMLTableRowElement": false, + "HTMLTableSectionElement": false, + "HTMLTemplateElement": false, + "HTMLTextAreaElement": false, + "HTMLTimeElement": false, + "HTMLTitleElement": false, + "HTMLTrackElement": false, + "HTMLUListElement": false, + "HTMLUnknownElement": false, + "HTMLVideoElement": false, + "IDBCursor": false, + "IDBCursorWithValue": false, + "IDBDatabase": false, + "IDBFactory": false, + "IDBIndex": false, + "IDBKeyRange": false, + "IDBObjectStore": false, + "IDBOpenDBRequest": false, + "IDBRequest": false, + "IDBTransaction": false, + "IDBVersionChangeEvent": false, + "IdleDeadline": false, + "IIRFilterNode": false, + "Image": false, + "ImageBitmap": false, + "ImageBitmapRenderingContext": false, + "ImageCapture": false, + "ImageData": false, + "indexedDB": false, + "innerHeight": false, + "innerWidth": false, + "InputEvent": false, + "IntersectionObserver": false, + "IntersectionObserverEntry": false, + "Intl": false, + "isSecureContext": false, + "KeyboardEvent": false, + "KeyframeEffect": false, + "KeyframeEffectReadOnly": false, + "length": false, + "localStorage": false, + "location": true, + "Location": false, + "locationbar": false, + "matchMedia": false, + "MediaDeviceInfo": false, + "MediaDevices": false, + "MediaElementAudioSourceNode": false, + "MediaEncryptedEvent": false, + "MediaError": false, + "MediaKeyMessageEvent": false, + "MediaKeySession": false, + "MediaKeyStatusMap": false, + "MediaKeySystemAccess": false, + "MediaList": false, + "MediaMetadata": false, + "MediaQueryList": false, + "MediaQueryListEvent": false, + "MediaRecorder": false, + "MediaSettingsRange": false, + "MediaSource": false, + "MediaStream": false, + "MediaStreamAudioDestinationNode": false, + "MediaStreamAudioSourceNode": false, + "MediaStreamEvent": false, + "MediaStreamTrack": false, + "MediaStreamTrackEvent": false, + "menubar": false, + "MessageChannel": false, + "MessageEvent": false, + "MessagePort": false, + "MIDIAccess": false, + "MIDIConnectionEvent": false, + "MIDIInput": false, + "MIDIInputMap": false, + "MIDIMessageEvent": false, + "MIDIOutput": false, + "MIDIOutputMap": false, + "MIDIPort": false, + "MimeType": false, + "MimeTypeArray": false, + "MouseEvent": false, + "moveBy": false, + "moveTo": false, + "MutationEvent": false, + "MutationObserver": false, + "MutationRecord": false, + "name": false, + "NamedNodeMap": false, + "NavigationPreloadManager": false, + "navigator": false, + "Navigator": false, + "NetworkInformation": false, + "Node": false, + "NodeFilter": false, + "NodeIterator": false, + "NodeList": false, + "Notification": false, + "OfflineAudioCompletionEvent": false, + "OfflineAudioContext": false, + "offscreenBuffering": false, + "OffscreenCanvas": true, + "OffscreenCanvasRenderingContext2D": false, + "onabort": true, + "onafterprint": true, + "onanimationend": true, + "onanimationiteration": true, + "onanimationstart": true, + "onappinstalled": true, + "onauxclick": true, + "onbeforeinstallprompt": true, + "onbeforeprint": true, + "onbeforeunload": true, + "onblur": true, + "oncancel": true, + "oncanplay": true, + "oncanplaythrough": true, + "onchange": true, + "onclick": true, + "onclose": true, + "oncontextmenu": true, + "oncuechange": true, + "ondblclick": true, + "ondevicemotion": true, + "ondeviceorientation": true, + "ondeviceorientationabsolute": true, + "ondrag": true, + "ondragend": true, + "ondragenter": true, + "ondragleave": true, + "ondragover": true, + "ondragstart": true, + "ondrop": true, + "ondurationchange": true, + "onemptied": true, + "onended": true, + "onerror": true, + "onfocus": true, + "ongotpointercapture": true, + "onhashchange": true, + "oninput": true, + "oninvalid": true, + "onkeydown": true, + "onkeypress": true, + "onkeyup": true, + "onlanguagechange": true, + "onload": true, + "onloadeddata": true, + "onloadedmetadata": true, + "onloadstart": true, + "onlostpointercapture": true, + "onmessage": true, + "onmessageerror": true, + "onmousedown": true, + "onmouseenter": true, + "onmouseleave": true, + "onmousemove": true, + "onmouseout": true, + "onmouseover": true, + "onmouseup": true, + "onmousewheel": true, + "onoffline": true, + "ononline": true, + "onpagehide": true, + "onpageshow": true, + "onpause": true, + "onplay": true, + "onplaying": true, + "onpointercancel": true, + "onpointerdown": true, + "onpointerenter": true, + "onpointerleave": true, + "onpointermove": true, + "onpointerout": true, + "onpointerover": true, + "onpointerup": true, + "onpopstate": true, + "onprogress": true, + "onratechange": true, + "onrejectionhandled": true, + "onreset": true, + "onresize": true, + "onscroll": true, + "onsearch": true, + "onseeked": true, + "onseeking": true, + "onselect": true, + "onstalled": true, + "onstorage": true, + "onsubmit": true, + "onsuspend": true, + "ontimeupdate": true, + "ontoggle": true, + "ontransitionend": true, + "onunhandledrejection": true, + "onunload": true, + "onvolumechange": true, + "onwaiting": true, + "onwheel": true, + "open": false, + "openDatabase": false, + "opener": false, + "Option": false, + "origin": false, + "OscillatorNode": false, + "outerHeight": false, + "outerWidth": false, + "OverconstrainedError": false, + "PageTransitionEvent": false, + "pageXOffset": false, + "pageYOffset": false, + "PannerNode": false, + "parent": false, + "Path2D": false, + "PaymentAddress": false, + "PaymentRequest": false, + "PaymentRequestUpdateEvent": false, + "PaymentResponse": false, + "performance": false, + "Performance": false, + "PerformanceEntry": false, + "PerformanceLongTaskTiming": false, + "PerformanceMark": false, + "PerformanceMeasure": false, + "PerformanceNavigation": false, + "PerformanceNavigationTiming": false, + "PerformanceObserver": false, + "PerformanceObserverEntryList": false, + "PerformancePaintTiming": false, + "PerformanceResourceTiming": false, + "PerformanceTiming": false, + "PeriodicWave": false, + "Permissions": false, + "PermissionStatus": false, + "personalbar": false, + "PhotoCapabilities": false, + "Plugin": false, + "PluginArray": false, + "PointerEvent": false, + "PopStateEvent": false, + "postMessage": false, + "Presentation": false, + "PresentationAvailability": false, + "PresentationConnection": false, + "PresentationConnectionAvailableEvent": false, + "PresentationConnectionCloseEvent": false, + "PresentationConnectionList": false, + "PresentationReceiver": false, + "PresentationRequest": false, + "print": false, + "ProcessingInstruction": false, + "ProgressEvent": false, + "PromiseRejectionEvent": false, + "prompt": false, + "PushManager": false, + "PushSubscription": false, + "PushSubscriptionOptions": false, + "queueMicrotask": false, + "RadioNodeList": false, + "Range": false, + "ReadableStream": false, + "registerProcessor": false, + "RemotePlayback": false, + "removeEventListener": false, + "reportError": false, + "Request": false, + "requestAnimationFrame": false, + "requestIdleCallback": false, + "resizeBy": false, + "ResizeObserver": false, + "ResizeObserverEntry": false, + "resizeTo": false, + "Response": false, + "RTCCertificate": false, + "RTCDataChannel": false, + "RTCDataChannelEvent": false, + "RTCDtlsTransport": false, + "RTCIceCandidate": false, + "RTCIceGatherer": false, + "RTCIceTransport": false, + "RTCPeerConnection": false, + "RTCPeerConnectionIceEvent": false, + "RTCRtpContributingSource": false, + "RTCRtpReceiver": false, + "RTCRtpSender": false, + "RTCSctpTransport": false, + "RTCSessionDescription": false, + "RTCStatsReport": false, + "RTCTrackEvent": false, + "screen": false, + "Screen": false, + "screenLeft": false, + "ScreenOrientation": false, + "screenTop": false, + "screenX": false, + "screenY": false, + "ScriptProcessorNode": false, + "scroll": false, + "scrollbars": false, + "scrollBy": false, + "scrollTo": false, + "scrollX": false, + "scrollY": false, + "SecurityPolicyViolationEvent": false, + "Selection": false, + "self": false, + "ServiceWorker": false, + "ServiceWorkerContainer": false, + "ServiceWorkerRegistration": false, + "sessionStorage": false, + "setInterval": false, + "setTimeout": false, + "ShadowRoot": false, + "SharedWorker": false, + "SourceBuffer": false, + "SourceBufferList": false, + "speechSynthesis": false, + "SpeechSynthesisEvent": false, + "SpeechSynthesisUtterance": false, + "StaticRange": false, + "status": false, + "statusbar": false, + "StereoPannerNode": false, + "stop": false, + "Storage": false, + "StorageEvent": false, + "StorageManager": false, + "structuredClone": false, + "styleMedia": false, + "StyleSheet": false, + "StyleSheetList": false, + "SubmitEvent": false, + "SubtleCrypto": false, + "SVGAElement": false, + "SVGAngle": false, + "SVGAnimatedAngle": false, + "SVGAnimatedBoolean": false, + "SVGAnimatedEnumeration": false, + "SVGAnimatedInteger": false, + "SVGAnimatedLength": false, + "SVGAnimatedLengthList": false, + "SVGAnimatedNumber": false, + "SVGAnimatedNumberList": false, + "SVGAnimatedPreserveAspectRatio": false, + "SVGAnimatedRect": false, + "SVGAnimatedString": false, + "SVGAnimatedTransformList": false, + "SVGAnimateElement": false, + "SVGAnimateMotionElement": false, + "SVGAnimateTransformElement": false, + "SVGAnimationElement": false, + "SVGCircleElement": false, + "SVGClipPathElement": false, + "SVGComponentTransferFunctionElement": false, + "SVGDefsElement": false, + "SVGDescElement": false, + "SVGDiscardElement": false, + "SVGElement": false, + "SVGEllipseElement": false, + "SVGFEBlendElement": false, + "SVGFEColorMatrixElement": false, + "SVGFEComponentTransferElement": false, + "SVGFECompositeElement": false, + "SVGFEConvolveMatrixElement": false, + "SVGFEDiffuseLightingElement": false, + "SVGFEDisplacementMapElement": false, + "SVGFEDistantLightElement": false, + "SVGFEDropShadowElement": false, + "SVGFEFloodElement": false, + "SVGFEFuncAElement": false, + "SVGFEFuncBElement": false, + "SVGFEFuncGElement": false, + "SVGFEFuncRElement": false, + "SVGFEGaussianBlurElement": false, + "SVGFEImageElement": false, + "SVGFEMergeElement": false, + "SVGFEMergeNodeElement": false, + "SVGFEMorphologyElement": false, + "SVGFEOffsetElement": false, + "SVGFEPointLightElement": false, + "SVGFESpecularLightingElement": false, + "SVGFESpotLightElement": false, + "SVGFETileElement": false, + "SVGFETurbulenceElement": false, + "SVGFilterElement": false, + "SVGForeignObjectElement": false, + "SVGGElement": false, + "SVGGeometryElement": false, + "SVGGradientElement": false, + "SVGGraphicsElement": false, + "SVGImageElement": false, + "SVGLength": false, + "SVGLengthList": false, + "SVGLinearGradientElement": false, + "SVGLineElement": false, + "SVGMarkerElement": false, + "SVGMaskElement": false, + "SVGMatrix": false, + "SVGMetadataElement": false, + "SVGMPathElement": false, + "SVGNumber": false, + "SVGNumberList": false, + "SVGPathElement": false, + "SVGPatternElement": false, + "SVGPoint": false, + "SVGPointList": false, + "SVGPolygonElement": false, + "SVGPolylineElement": false, + "SVGPreserveAspectRatio": false, + "SVGRadialGradientElement": false, + "SVGRect": false, + "SVGRectElement": false, + "SVGScriptElement": false, + "SVGSetElement": false, + "SVGStopElement": false, + "SVGStringList": false, + "SVGStyleElement": false, + "SVGSVGElement": false, + "SVGSwitchElement": false, + "SVGSymbolElement": false, + "SVGTextContentElement": false, + "SVGTextElement": false, + "SVGTextPathElement": false, + "SVGTextPositioningElement": false, + "SVGTitleElement": false, + "SVGTransform": false, + "SVGTransformList": false, + "SVGTSpanElement": false, + "SVGUnitTypes": false, + "SVGUseElement": false, + "SVGViewElement": false, + "TaskAttributionTiming": false, + "Text": false, + "TextDecoder": false, + "TextEncoder": false, + "TextEvent": false, + "TextMetrics": false, + "TextTrack": false, + "TextTrackCue": false, + "TextTrackCueList": false, + "TextTrackList": false, + "TimeRanges": false, + "toolbar": false, + "top": false, + "Touch": false, + "TouchEvent": false, + "TouchList": false, + "TrackEvent": false, + "TransformStream": false, + "TransitionEvent": false, + "TreeWalker": false, + "UIEvent": false, + "URL": false, + "URLSearchParams": false, + "ValidityState": false, + "visualViewport": false, + "VisualViewport": false, + "VTTCue": false, + "WaveShaperNode": false, + "WebAssembly": false, + "WebGL2RenderingContext": false, + "WebGLActiveInfo": false, + "WebGLBuffer": false, + "WebGLContextEvent": false, + "WebGLFramebuffer": false, + "WebGLProgram": false, + "WebGLQuery": false, + "WebGLRenderbuffer": false, + "WebGLRenderingContext": false, + "WebGLSampler": false, + "WebGLShader": false, + "WebGLShaderPrecisionFormat": false, + "WebGLSync": false, + "WebGLTexture": false, + "WebGLTransformFeedback": false, + "WebGLUniformLocation": false, + "WebGLVertexArrayObject": false, + "WebSocket": false, + "WheelEvent": false, + "window": false, + "Window": false, + "Worker": false, + "WritableStream": false, + "XMLDocument": false, + "XMLHttpRequest": false, + "XMLHttpRequestEventTarget": false, + "XMLHttpRequestUpload": false, + "XMLSerializer": false, + "XPathEvaluator": false, + "XPathExpression": false, + "XPathResult": false, + "XSLTProcessor": false + }, + "worker": { + "addEventListener": false, + "applicationCache": false, + "atob": false, + "Blob": false, + "BroadcastChannel": false, + "btoa": false, + "Cache": false, + "caches": false, + "clearInterval": false, + "clearTimeout": false, + "close": true, + "console": false, + "CustomEvent": false, + "ErrorEvent": false, + "Event": false, + "fetch": false, + "FileReaderSync": false, + "FormData": false, + "Headers": false, + "IDBCursor": false, + "IDBCursorWithValue": false, + "IDBDatabase": false, + "IDBFactory": false, + "IDBIndex": false, + "IDBKeyRange": false, + "IDBObjectStore": false, + "IDBOpenDBRequest": false, + "IDBRequest": false, + "IDBTransaction": false, + "IDBVersionChangeEvent": false, + "ImageData": false, + "importScripts": true, + "indexedDB": false, + "location": false, + "MessageChannel": false, + "MessageEvent": false, + "MessagePort": false, + "name": false, + "navigator": false, + "Notification": false, + "onclose": true, + "onconnect": true, + "onerror": true, + "onlanguagechange": true, + "onmessage": true, + "onoffline": true, + "ononline": true, + "onrejectionhandled": true, + "onunhandledrejection": true, + "performance": false, + "Performance": false, + "PerformanceEntry": false, + "PerformanceMark": false, + "PerformanceMeasure": false, + "PerformanceNavigation": false, + "PerformanceResourceTiming": false, + "PerformanceTiming": false, + "postMessage": true, + "Promise": false, + "queueMicrotask": false, + "removeEventListener": false, + "reportError": false, + "Request": false, + "Response": false, + "self": true, + "ServiceWorkerRegistration": false, + "setInterval": false, + "setTimeout": false, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": false, + "WebSocket": false, + "Worker": false, + "WorkerGlobalScope": false, + "XMLHttpRequest": false + }, + "node": { + "__dirname": false, + "__filename": false, + "AbortController": false, + "AbortSignal": false, + "atob": false, + "btoa": false, + "Buffer": false, + "clearImmediate": false, + "clearInterval": false, + "clearTimeout": false, + "console": false, + "DOMException": false, + "Event": false, + "EventTarget": false, + "exports": true, + "fetch": false, + "global": false, + "Intl": false, + "MessageChannel": false, + "MessageEvent": false, + "MessagePort": false, + "module": false, + "performance": false, + "process": false, + "queueMicrotask": false, + "require": false, + "setImmediate": false, + "setInterval": false, + "setTimeout": false, + "structuredClone": false, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": false + }, + "nodeBuiltin": { + "AbortController": false, + "AbortSignal": false, + "atob": false, + "btoa": false, + "Buffer": false, + "clearImmediate": false, + "clearInterval": false, + "clearTimeout": false, + "console": false, + "DOMException": false, + "Event": false, + "EventTarget": false, + "fetch": false, + "global": false, + "Intl": false, + "MessageChannel": false, + "MessageEvent": false, + "MessagePort": false, + "performance": false, + "process": false, + "queueMicrotask": false, + "setImmediate": false, + "setInterval": false, + "setTimeout": false, + "structuredClone": false, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": false + }, + "commonjs": { + "exports": true, + "global": false, + "module": false, + "require": false + }, + "amd": { + "define": false, + "require": false + }, + "mocha": { + "after": false, + "afterEach": false, + "before": false, + "beforeEach": false, + "context": false, + "describe": false, + "it": false, + "mocha": false, + "run": false, + "setup": false, + "specify": false, + "suite": false, + "suiteSetup": false, + "suiteTeardown": false, + "teardown": false, + "test": false, + "xcontext": false, + "xdescribe": false, + "xit": false, + "xspecify": false + }, + "jasmine": { + "afterAll": false, + "afterEach": false, + "beforeAll": false, + "beforeEach": false, + "describe": false, + "expect": false, + "expectAsync": false, + "fail": false, + "fdescribe": false, + "fit": false, + "it": false, + "jasmine": false, + "pending": false, + "runs": false, + "spyOn": false, + "spyOnAllFunctions": false, + "spyOnProperty": false, + "waits": false, + "waitsFor": false, + "xdescribe": false, + "xit": false + }, + "jest": { + "afterAll": false, + "afterEach": false, + "beforeAll": false, + "beforeEach": false, + "describe": false, + "expect": false, + "fdescribe": false, + "fit": false, + "it": false, + "jest": false, + "pit": false, + "require": false, + "test": false, + "xdescribe": false, + "xit": false, + "xtest": false + }, + "qunit": { + "asyncTest": false, + "deepEqual": false, + "equal": false, + "expect": false, + "module": false, + "notDeepEqual": false, + "notEqual": false, + "notOk": false, + "notPropEqual": false, + "notStrictEqual": false, + "ok": false, + "propEqual": false, + "QUnit": false, + "raises": false, + "start": false, + "stop": false, + "strictEqual": false, + "test": false, + "throws": false + }, + "phantomjs": { + "console": true, + "exports": true, + "phantom": true, + "require": true, + "WebPage": true + }, + "couch": { + "emit": false, + "exports": false, + "getRow": false, + "log": false, + "module": false, + "provides": false, + "require": false, + "respond": false, + "send": false, + "start": false, + "sum": false + }, + "rhino": { + "defineClass": false, + "deserialize": false, + "gc": false, + "help": false, + "importClass": false, + "importPackage": false, + "java": false, + "load": false, + "loadClass": false, + "Packages": false, + "print": false, + "quit": false, + "readFile": false, + "readUrl": false, + "runCommand": false, + "seal": false, + "serialize": false, + "spawn": false, + "sync": false, + "toint32": false, + "version": false + }, + "nashorn": { + "__DIR__": false, + "__FILE__": false, + "__LINE__": false, + "com": false, + "edu": false, + "exit": false, + "java": false, + "Java": false, + "javafx": false, + "JavaImporter": false, + "javax": false, + "JSAdapter": false, + "load": false, + "loadWithNewGlobal": false, + "org": false, + "Packages": false, + "print": false, + "quit": false + }, + "wsh": { + "ActiveXObject": false, + "CollectGarbage": false, + "Debug": false, + "Enumerator": false, + "GetObject": false, + "RuntimeObject": false, + "ScriptEngine": false, + "ScriptEngineBuildVersion": false, + "ScriptEngineMajorVersion": false, + "ScriptEngineMinorVersion": false, + "VBArray": false, + "WScript": false, + "WSH": false + }, + "jquery": { + "$": false, + "jQuery": false + }, + "yui": { + "YAHOO": false, + "YAHOO_config": false, + "YUI": false, + "YUI_config": false + }, + "shelljs": { + "cat": false, + "cd": false, + "chmod": false, + "config": false, + "cp": false, + "dirs": false, + "echo": false, + "env": false, + "error": false, + "exec": false, + "exit": false, + "find": false, + "grep": false, + "ln": false, + "ls": false, + "mkdir": false, + "mv": false, + "popd": false, + "pushd": false, + "pwd": false, + "rm": false, + "sed": false, + "set": false, + "target": false, + "tempdir": false, + "test": false, + "touch": false, + "which": false + }, + "prototypejs": { + "$": false, + "$$": false, + "$A": false, + "$break": false, + "$continue": false, + "$F": false, + "$H": false, + "$R": false, + "$w": false, + "Abstract": false, + "Ajax": false, + "Autocompleter": false, + "Builder": false, + "Class": false, + "Control": false, + "Draggable": false, + "Draggables": false, + "Droppables": false, + "Effect": false, + "Element": false, + "Enumerable": false, + "Event": false, + "Field": false, + "Form": false, + "Hash": false, + "Insertion": false, + "ObjectRange": false, + "PeriodicalExecuter": false, + "Position": false, + "Prototype": false, + "Scriptaculous": false, + "Selector": false, + "Sortable": false, + "SortableObserver": false, + "Sound": false, + "Template": false, + "Toggle": false, + "Try": false + }, + "meteor": { + "$": false, + "Accounts": false, + "AccountsClient": false, + "AccountsCommon": false, + "AccountsServer": false, + "App": false, + "Assets": false, + "Blaze": false, + "check": false, + "Cordova": false, + "DDP": false, + "DDPRateLimiter": false, + "DDPServer": false, + "Deps": false, + "EJSON": false, + "Email": false, + "HTTP": false, + "Log": false, + "Match": false, + "Meteor": false, + "Mongo": false, + "MongoInternals": false, + "Npm": false, + "Package": false, + "Plugin": false, + "process": false, + "Random": false, + "ReactiveDict": false, + "ReactiveVar": false, + "Router": false, + "ServiceConfiguration": false, + "Session": false, + "share": false, + "Spacebars": false, + "Template": false, + "Tinytest": false, + "Tracker": false, + "UI": false, + "Utils": false, + "WebApp": false, + "WebAppInternals": false + }, + "mongo": { + "_isWindows": false, + "_rand": false, + "BulkWriteResult": false, + "cat": false, + "cd": false, + "connect": false, + "db": false, + "getHostName": false, + "getMemInfo": false, + "hostname": false, + "ISODate": false, + "listFiles": false, + "load": false, + "ls": false, + "md5sumFile": false, + "mkdir": false, + "Mongo": false, + "NumberInt": false, + "NumberLong": false, + "ObjectId": false, + "PlanCache": false, + "print": false, + "printjson": false, + "pwd": false, + "quit": false, + "removeFile": false, + "rs": false, + "sh": false, + "UUID": false, + "version": false, + "WriteResult": false + }, + "applescript": { + "$": false, + "Application": false, + "Automation": false, + "console": false, + "delay": false, + "Library": false, + "ObjC": false, + "ObjectSpecifier": false, + "Path": false, + "Progress": false, + "Ref": false + }, + "serviceworker": { + "addEventListener": false, + "applicationCache": false, + "atob": false, + "Blob": false, + "BroadcastChannel": false, + "btoa": false, + "Cache": false, + "caches": false, + "CacheStorage": false, + "clearInterval": false, + "clearTimeout": false, + "Client": false, + "clients": false, + "Clients": false, + "close": true, + "console": false, + "CustomEvent": false, + "ErrorEvent": false, + "Event": false, + "ExtendableEvent": false, + "ExtendableMessageEvent": false, + "fetch": false, + "FetchEvent": false, + "FileReaderSync": false, + "FormData": false, + "Headers": false, + "IDBCursor": false, + "IDBCursorWithValue": false, + "IDBDatabase": false, + "IDBFactory": false, + "IDBIndex": false, + "IDBKeyRange": false, + "IDBObjectStore": false, + "IDBOpenDBRequest": false, + "IDBRequest": false, + "IDBTransaction": false, + "IDBVersionChangeEvent": false, + "ImageData": false, + "importScripts": false, + "indexedDB": false, + "location": false, + "MessageChannel": false, + "MessageEvent": false, + "MessagePort": false, + "name": false, + "navigator": false, + "Notification": false, + "onclose": true, + "onconnect": true, + "onerror": true, + "onfetch": true, + "oninstall": true, + "onlanguagechange": true, + "onmessage": true, + "onmessageerror": true, + "onnotificationclick": true, + "onnotificationclose": true, + "onoffline": true, + "ononline": true, + "onpush": true, + "onpushsubscriptionchange": true, + "onrejectionhandled": true, + "onsync": true, + "onunhandledrejection": true, + "performance": false, + "Performance": false, + "PerformanceEntry": false, + "PerformanceMark": false, + "PerformanceMeasure": false, + "PerformanceNavigation": false, + "PerformanceResourceTiming": false, + "PerformanceTiming": false, + "postMessage": true, + "Promise": false, + "queueMicrotask": false, + "registration": false, + "removeEventListener": false, + "Request": false, + "Response": false, + "self": false, + "ServiceWorker": false, + "ServiceWorkerContainer": false, + "ServiceWorkerGlobalScope": false, + "ServiceWorkerMessageEvent": false, + "ServiceWorkerRegistration": false, + "setInterval": false, + "setTimeout": false, + "skipWaiting": false, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": false, + "WebSocket": false, + "WindowClient": false, + "Worker": false, + "WorkerGlobalScope": false, + "XMLHttpRequest": false + }, + "atomtest": { + "advanceClock": false, + "atom": false, + "fakeClearInterval": false, + "fakeClearTimeout": false, + "fakeSetInterval": false, + "fakeSetTimeout": false, + "resetTimeouts": false, + "waitsForPromise": false + }, + "embertest": { + "andThen": false, + "click": false, + "currentPath": false, + "currentRouteName": false, + "currentURL": false, + "fillIn": false, + "find": false, + "findAll": false, + "findWithAssert": false, + "keyEvent": false, + "pauseTest": false, + "resumeTest": false, + "triggerEvent": false, + "visit": false, + "wait": false + }, + "protractor": { + "$": false, + "$$": false, + "browser": false, + "by": false, + "By": false, + "DartObject": false, + "element": false, + "protractor": false + }, + "shared-node-browser": { + "AbortController": false, + "AbortSignal": false, + "atob": false, + "btoa": false, + "clearInterval": false, + "clearTimeout": false, + "console": false, + "DOMException": false, + "Event": false, + "EventTarget": false, + "fetch": false, + "Intl": false, + "MessageChannel": false, + "MessageEvent": false, + "MessagePort": false, + "performance": false, + "queueMicrotask": false, + "setInterval": false, + "setTimeout": false, + "structuredClone": false, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": false + }, + "webextensions": { + "browser": false, + "chrome": false, + "opr": false + }, + "greasemonkey": { + "cloneInto": false, + "createObjectIn": false, + "exportFunction": false, + "GM": false, + "GM_addElement": false, + "GM_addStyle": false, + "GM_addValueChangeListener": false, + "GM_deleteValue": false, + "GM_download": false, + "GM_getResourceText": false, + "GM_getResourceURL": false, + "GM_getTab": false, + "GM_getTabs": false, + "GM_getValue": false, + "GM_info": false, + "GM_listValues": false, + "GM_log": false, + "GM_notification": false, + "GM_openInTab": false, + "GM_registerMenuCommand": false, + "GM_removeValueChangeListener": false, + "GM_saveTab": false, + "GM_setClipboard": false, + "GM_setValue": false, + "GM_unregisterMenuCommand": false, + "GM_xmlhttpRequest": false, + "unsafeWindow": false + }, + "devtools": { + "$": false, + "$_": false, + "$$": false, + "$0": false, + "$1": false, + "$2": false, + "$3": false, + "$4": false, + "$x": false, + "chrome": false, + "clear": false, + "copy": false, + "debug": false, + "dir": false, + "dirxml": false, + "getEventListeners": false, + "inspect": false, + "keys": false, + "monitor": false, + "monitorEvents": false, + "profile": false, + "profileEnd": false, + "queryObjects": false, + "table": false, + "undebug": false, + "unmonitor": false, + "unmonitorEvents": false, + "values": false + } +} diff --git a/node_modules/globals/index.d.ts b/node_modules/globals/index.d.ts new file mode 100644 index 0000000..a842e4c --- /dev/null +++ b/node_modules/globals/index.d.ts @@ -0,0 +1,6 @@ +import {ReadonlyDeep} from 'type-fest'; +import globalsJson = require('./globals.json'); + +declare const globals: ReadonlyDeep; + +export = globals; diff --git a/node_modules/globals/index.js b/node_modules/globals/index.js new file mode 100644 index 0000000..a951582 --- /dev/null +++ b/node_modules/globals/index.js @@ -0,0 +1,2 @@ +'use strict'; +module.exports = require('./globals.json'); diff --git a/node_modules/globals/license b/node_modules/globals/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/globals/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/globals/package.json b/node_modules/globals/package.json new file mode 100644 index 0000000..f38232e --- /dev/null +++ b/node_modules/globals/package.json @@ -0,0 +1,55 @@ +{ + "name": "globals", + "version": "13.17.0", + "description": "Global identifiers from different JavaScript environments", + "license": "MIT", + "repository": "sindresorhus/globals", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "index.d.ts", + "globals.json" + ], + "keywords": [ + "globals", + "global", + "identifiers", + "variables", + "vars", + "jshint", + "eslint", + "environments" + ], + "dependencies": { + "type-fest": "^0.20.2" + }, + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.14.0", + "xo": "^0.36.1" + }, + "xo": { + "ignores": [ + "get-browser-globals.js" + ], + "rules": { + "node/no-unsupported-features/es-syntax": "off" + } + }, + "tsd": { + "compilerOptions": { + "resolveJsonModule": true + } + } +} diff --git a/node_modules/globals/readme.md b/node_modules/globals/readme.md new file mode 100644 index 0000000..0ef22c3 --- /dev/null +++ b/node_modules/globals/readme.md @@ -0,0 +1,56 @@ +# globals + +> Global identifiers from different JavaScript environments + +It's just a [JSON file](globals.json), so use it in any environment. + +This package is used by ESLint. + +**This package [no longer accepts](https://github.com/sindresorhus/globals/issues/82) new environments. If you need it for ESLint, just [create a plugin](http://eslint.org/docs/developer-guide/working-with-plugins#environments-in-plugins).** + +## Install + +``` +$ npm install globals +``` + +## Usage + +```js +const globals = require('globals'); + +console.log(globals.browser); +/* +{ + addEventListener: false, + applicationCache: false, + ArrayBuffer: false, + atob: false, + … +} +*/ +``` + +Each global is given a value of `true` or `false`. A value of `true` indicates that the variable may be overwritten. A value of `false` indicates that the variable should be considered read-only. This information is used by static analysis tools to flag incorrect behavior. We assume all variables should be `false` unless we hear otherwise. + +For Node.js this package provides two sets of globals: + +- `globals.nodeBuiltin`: Globals available to all code running in Node.js. + These will usually be available as properties on the `global` object and include `process`, `Buffer`, but not CommonJS arguments like `require`. + See: https://nodejs.org/api/globals.html +- `globals.node`: A combination of the globals from `nodeBuiltin` plus all CommonJS arguments ("CommonJS module scope"). + See: https://nodejs.org/api/modules.html#modules_the_module_scope + +When analyzing code that is known to run outside of a CommonJS wrapper, for example, JavaScript modules, `nodeBuiltin` can find accidental CommonJS references. + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/globby/gitignore.js b/node_modules/globby/gitignore.js new file mode 100644 index 0000000..2f77baa --- /dev/null +++ b/node_modules/globby/gitignore.js @@ -0,0 +1,120 @@ +'use strict'; +const {promisify} = require('util'); +const fs = require('fs'); +const path = require('path'); +const fastGlob = require('fast-glob'); +const gitIgnore = require('ignore'); +const slash = require('slash'); + +const DEFAULT_IGNORE = [ + '**/node_modules/**', + '**/flow-typed/**', + '**/coverage/**', + '**/.git' +]; + +const readFileP = promisify(fs.readFile); + +const mapGitIgnorePatternTo = base => ignore => { + if (ignore.startsWith('!')) { + return '!' + path.posix.join(base, ignore.slice(1)); + } + + return path.posix.join(base, ignore); +}; + +const parseGitIgnore = (content, options) => { + const base = slash(path.relative(options.cwd, path.dirname(options.fileName))); + + return content + .split(/\r?\n/) + .filter(Boolean) + .filter(line => !line.startsWith('#')) + .map(mapGitIgnorePatternTo(base)); +}; + +const reduceIgnore = files => { + const ignores = gitIgnore(); + for (const file of files) { + ignores.add(parseGitIgnore(file.content, { + cwd: file.cwd, + fileName: file.filePath + })); + } + + return ignores; +}; + +const ensureAbsolutePathForCwd = (cwd, p) => { + cwd = slash(cwd); + if (path.isAbsolute(p)) { + if (slash(p).startsWith(cwd)) { + return p; + } + + throw new Error(`Path ${p} is not in cwd ${cwd}`); + } + + return path.join(cwd, p); +}; + +const getIsIgnoredPredecate = (ignores, cwd) => { + return p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, p.path || p)))); +}; + +const getFile = async (file, cwd) => { + const filePath = path.join(cwd, file); + const content = await readFileP(filePath, 'utf8'); + + return { + cwd, + filePath, + content + }; +}; + +const getFileSync = (file, cwd) => { + const filePath = path.join(cwd, file); + const content = fs.readFileSync(filePath, 'utf8'); + + return { + cwd, + filePath, + content + }; +}; + +const normalizeOptions = ({ + ignore = [], + cwd = slash(process.cwd()) +} = {}) => { + return {ignore, cwd}; +}; + +module.exports = async options => { + options = normalizeOptions(options); + + const paths = await fastGlob('**/.gitignore', { + ignore: DEFAULT_IGNORE.concat(options.ignore), + cwd: options.cwd + }); + + const files = await Promise.all(paths.map(file => getFile(file, options.cwd))); + const ignores = reduceIgnore(files); + + return getIsIgnoredPredecate(ignores, options.cwd); +}; + +module.exports.sync = options => { + options = normalizeOptions(options); + + const paths = fastGlob.sync('**/.gitignore', { + ignore: DEFAULT_IGNORE.concat(options.ignore), + cwd: options.cwd + }); + + const files = paths.map(file => getFileSync(file, options.cwd)); + const ignores = reduceIgnore(files); + + return getIsIgnoredPredecate(ignores, options.cwd); +}; diff --git a/node_modules/globby/index.d.ts b/node_modules/globby/index.d.ts new file mode 100644 index 0000000..2e563fc --- /dev/null +++ b/node_modules/globby/index.d.ts @@ -0,0 +1,186 @@ +import {Options as FastGlobOptions, Entry as FastGlobEntry} from 'fast-glob'; + +declare namespace globby { + type ExpandDirectoriesOption = + | boolean + | readonly string[] + | {files?: readonly string[]; extensions?: readonly string[]}; + + type Entry = FastGlobEntry; + + interface GlobbyOptions extends FastGlobOptions { + /** + If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. + + Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. + + @default true + + @example + ``` + import globby = require('globby'); + + (async () => { + const paths = await globby('images', { + expandDirectories: { + files: ['cat', 'unicorn', '*.jpg'], + extensions: ['png'] + } + }); + + console.log(paths); + //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] + })(); + ``` + */ + readonly expandDirectories?: ExpandDirectoriesOption; + + /** + Respect ignore patterns in `.gitignore` files that apply to the globbed files. + + @default false + */ + readonly gitignore?: boolean; + } + + interface GlobTask { + readonly pattern: string; + readonly options: GlobbyOptions; + } + + interface GitignoreOptions { + readonly cwd?: string; + readonly ignore?: readonly string[]; + } + + type FilterFunction = (path: string) => boolean; +} + +interface Gitignore { + /** + @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. + */ + sync: (options?: globby.GitignoreOptions) => globby.FilterFunction; + + /** + `.gitignore` files matched by the ignore config are not used for the resulting filter function. + + @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. + + @example + ``` + import {gitignore} from 'globby'; + + (async () => { + const isIgnored = await gitignore(); + console.log(isIgnored('some/file')); + })(); + ``` + */ + (options?: globby.GitignoreOptions): Promise; +} + +declare const globby: { + /** + Find files and directories using glob patterns. + + Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + + @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). + @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. + @returns The matching paths. + */ + sync: (( + patterns: string | readonly string[], + options: globby.GlobbyOptions & {objectMode: true} + ) => globby.Entry[]) & (( + patterns: string | readonly string[], + options?: globby.GlobbyOptions + ) => string[]); + + /** + Find files and directories using glob patterns. + + Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + + @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). + @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. + @returns The stream of matching paths. + + @example + ``` + import globby = require('globby'); + + (async () => { + for await (const path of globby.stream('*.tmp')) { + console.log(path); + } + })(); + ``` + */ + stream: ( + patterns: string | readonly string[], + options?: globby.GlobbyOptions + ) => NodeJS.ReadableStream; + + /** + Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. + + @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). + @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. + @returns An object in the format `{pattern: string, options: object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. + */ + generateGlobTasks: ( + patterns: string | readonly string[], + options?: globby.GlobbyOptions + ) => globby.GlobTask[]; + + /** + Note that the options affect the results. + + This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). + + @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). + @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3). + @returns Whether there are any special glob characters in the `patterns`. + */ + hasMagic: ( + patterns: string | readonly string[], + options?: FastGlobOptions + ) => boolean; + + readonly gitignore: Gitignore; + + ( + patterns: string | readonly string[], + options: globby.GlobbyOptions & {objectMode: true} + ): Promise; + + /** + Find files and directories using glob patterns. + + Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + + @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). + @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. + @returns The matching paths. + + @example + ``` + import globby = require('globby'); + + (async () => { + const paths = await globby(['*', '!cake']); + + console.log(paths); + //=> ['unicorn', 'rainbow'] + })(); + ``` + */ + ( + patterns: string | readonly string[], + options?: globby.GlobbyOptions + ): Promise; +}; + +export = globby; diff --git a/node_modules/globby/index.js b/node_modules/globby/index.js new file mode 100644 index 0000000..b2d503b --- /dev/null +++ b/node_modules/globby/index.js @@ -0,0 +1,181 @@ +'use strict'; +const fs = require('fs'); +const arrayUnion = require('array-union'); +const merge2 = require('merge2'); +const fastGlob = require('fast-glob'); +const dirGlob = require('dir-glob'); +const gitignore = require('./gitignore'); +const {FilterStream, UniqueStream} = require('./stream-utils'); + +const DEFAULT_FILTER = () => false; + +const isNegative = pattern => pattern[0] === '!'; + +const assertPatternsInput = patterns => { + if (!patterns.every(pattern => typeof pattern === 'string')) { + throw new TypeError('Patterns must be a string or an array of strings'); + } +}; + +const checkCwdOption = (options = {}) => { + if (!options.cwd) { + return; + } + + let stat; + try { + stat = fs.statSync(options.cwd); + } catch { + return; + } + + if (!stat.isDirectory()) { + throw new Error('The `cwd` option must be a path to a directory'); + } +}; + +const getPathString = p => p.stats instanceof fs.Stats ? p.path : p; + +const generateGlobTasks = (patterns, taskOptions) => { + patterns = arrayUnion([].concat(patterns)); + assertPatternsInput(patterns); + checkCwdOption(taskOptions); + + const globTasks = []; + + taskOptions = { + ignore: [], + expandDirectories: true, + ...taskOptions + }; + + for (const [index, pattern] of patterns.entries()) { + if (isNegative(pattern)) { + continue; + } + + const ignore = patterns + .slice(index) + .filter(pattern => isNegative(pattern)) + .map(pattern => pattern.slice(1)); + + const options = { + ...taskOptions, + ignore: taskOptions.ignore.concat(ignore) + }; + + globTasks.push({pattern, options}); + } + + return globTasks; +}; + +const globDirs = (task, fn) => { + let options = {}; + if (task.options.cwd) { + options.cwd = task.options.cwd; + } + + if (Array.isArray(task.options.expandDirectories)) { + options = { + ...options, + files: task.options.expandDirectories + }; + } else if (typeof task.options.expandDirectories === 'object') { + options = { + ...options, + ...task.options.expandDirectories + }; + } + + return fn(task.pattern, options); +}; + +const getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern]; + +const getFilterSync = options => { + return options && options.gitignore ? + gitignore.sync({cwd: options.cwd, ignore: options.ignore}) : + DEFAULT_FILTER; +}; + +const globToTask = task => glob => { + const {options} = task; + if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { + options.ignore = dirGlob.sync(options.ignore); + } + + return { + pattern: glob, + options + }; +}; + +module.exports = async (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const getFilter = async () => { + return options && options.gitignore ? + gitignore({cwd: options.cwd, ignore: options.ignore}) : + DEFAULT_FILTER; + }; + + const getTasks = async () => { + const tasks = await Promise.all(globTasks.map(async task => { + const globs = await getPattern(task, dirGlob); + return Promise.all(globs.map(globToTask(task))); + })); + + return arrayUnion(...tasks); + }; + + const [filter, tasks] = await Promise.all([getFilter(), getTasks()]); + const paths = await Promise.all(tasks.map(task => fastGlob(task.pattern, task.options))); + + return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_))); +}; + +module.exports.sync = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const tasks = []; + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); + tasks.push(...newTask); + } + + const filter = getFilterSync(options); + + let matches = []; + for (const task of tasks) { + matches = arrayUnion(matches, fastGlob.sync(task.pattern, task.options)); + } + + return matches.filter(path_ => !filter(path_)); +}; + +module.exports.stream = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const tasks = []; + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); + tasks.push(...newTask); + } + + const filter = getFilterSync(options); + const filterStream = new FilterStream(p => !filter(p)); + const uniqueStream = new UniqueStream(); + + return merge2(tasks.map(task => fastGlob.stream(task.pattern, task.options))) + .pipe(filterStream) + .pipe(uniqueStream); +}; + +module.exports.generateGlobTasks = generateGlobTasks; + +module.exports.hasMagic = (patterns, options) => [] + .concat(patterns) + .some(pattern => fastGlob.isDynamicPattern(pattern, options)); + +module.exports.gitignore = gitignore; diff --git a/node_modules/globby/license b/node_modules/globby/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/globby/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/globby/package.json b/node_modules/globby/package.json new file mode 100644 index 0000000..a458778 --- /dev/null +++ b/node_modules/globby/package.json @@ -0,0 +1,82 @@ +{ + "name": "globby", + "version": "11.1.0", + "description": "User-friendly glob matching", + "license": "MIT", + "repository": "sindresorhus/globby", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "bench": "npm update glob-stream fast-glob && matcha bench.js", + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "gitignore.js", + "stream-utils.js" + ], + "keywords": [ + "all", + "array", + "directories", + "expand", + "files", + "filesystem", + "filter", + "find", + "fnmatch", + "folders", + "fs", + "glob", + "globbing", + "globs", + "gulpfriendly", + "match", + "matcher", + "minimatch", + "multi", + "multiple", + "paths", + "pattern", + "patterns", + "traverse", + "util", + "utility", + "wildcard", + "wildcards", + "promise", + "gitignore", + "git" + ], + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "devDependencies": { + "ava": "^3.13.0", + "get-stream": "^6.0.0", + "glob-stream": "^6.1.0", + "globby": "sindresorhus/globby#main", + "matcha": "^0.7.0", + "rimraf": "^3.0.2", + "tsd": "^0.13.1", + "xo": "^0.33.1" + }, + "xo": { + "ignores": [ + "fixtures" + ] + } +} diff --git a/node_modules/globby/readme.md b/node_modules/globby/readme.md new file mode 100644 index 0000000..b39ae43 --- /dev/null +++ b/node_modules/globby/readme.md @@ -0,0 +1,170 @@ +# globby + +> User-friendly glob matching + +Based on [`fast-glob`](https://github.com/mrmlnc/fast-glob) but adds a bunch of useful features. + +## Features + +- Promise API +- Multiple patterns +- Negated patterns: `['foo*', '!foobar']` +- Expands directories: `foo` → `foo/**/*` +- Supports `.gitignore` + +## Install + +``` +$ npm install globby +``` + +## Usage + +``` +├── unicorn +├── cake +└── rainbow +``` + +```js +const globby = require('globby'); + +(async () => { + const paths = await globby(['*', '!cake']); + + console.log(paths); + //=> ['unicorn', 'rainbow'] +})(); +``` + +## API + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +### globby(patterns, options?) + +Returns a `Promise` of matching paths. + +#### patterns + +Type: `string | string[]` + +See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). + +#### options + +Type: `object` + +See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones below. + +##### expandDirectories + +Type: `boolean | string[] | object`\ +Default: `true` + +If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `object` with `files` and `extensions` like below: + +```js +const globby = require('globby'); + +(async () => { + const paths = await globby('images', { + expandDirectories: { + files: ['cat', 'unicorn', '*.jpg'], + extensions: ['png'] + } + }); + + console.log(paths); + //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] +})(); +``` + +Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. + +##### gitignore + +Type: `boolean`\ +Default: `false` + +Respect ignore patterns in `.gitignore` files that apply to the globbed files. + +### globby.sync(patterns, options?) + +Returns `string[]` of matching paths. + +### globby.stream(patterns, options?) + +Returns a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_readable_streams) of matching paths. + +Since Node.js 10, [readable streams are iterable](https://nodejs.org/api/stream.html#stream_readable_symbol_asynciterator), so you can loop over glob matches in a [`for await...of` loop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) like this: + +```js +const globby = require('globby'); + +(async () => { + for await (const path of globby.stream('*.tmp')) { + console.log(path); + } +})(); +``` + +### globby.generateGlobTasks(patterns, options?) + +Returns an `object[]` in the format `{pattern: string, options: Object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. + +Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. + +### globby.hasMagic(patterns, options?) + +Returns a `boolean` of whether there are any special glob characters in the `patterns`. + +Note that the options affect the results. + +This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). + +### globby.gitignore(options?) + +Returns a `Promise<(path: string) => boolean>` indicating whether a given path is ignored via a `.gitignore` file. + +Takes `cwd?: string` and `ignore?: string[]` as options. `.gitignore` files matched by the ignore config are not used for the resulting filter function. + +```js +const {gitignore} = require('globby'); + +(async () => { + const isIgnored = await gitignore(); + console.log(isIgnored('some/file')); +})(); +``` + +### globby.gitignore.sync(options?) + +Returns a `(path: string) => boolean` indicating whether a given path is ignored via a `.gitignore` file. + +Takes the same options as `globby.gitignore`. + +## Globbing patterns + +Just a quick overview. + +- `*` matches any number of characters, but not `/` +- `?` matches a single character, but not `/` +- `**` matches any number of characters, including `/`, as long as it's the only thing in a path part +- `{}` allows for a comma-separated list of "or" expressions +- `!` at the beginning of a pattern will negate the match + +[Various patterns and expected matches.](https://github.com/sindresorhus/multimatch/blob/main/test/test.js) + +## globby for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of globby and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-globby?utm_source=npm-globby&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Related + +- [multimatch](https://github.com/sindresorhus/multimatch) - Match against a list instead of the filesystem +- [matcher](https://github.com/sindresorhus/matcher) - Simple wildcard matching +- [del](https://github.com/sindresorhus/del) - Delete files and directories +- [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed diff --git a/node_modules/globby/stream-utils.js b/node_modules/globby/stream-utils.js new file mode 100644 index 0000000..98aedc8 --- /dev/null +++ b/node_modules/globby/stream-utils.js @@ -0,0 +1,46 @@ +'use strict'; +const {Transform} = require('stream'); + +class ObjectTransform extends Transform { + constructor() { + super({ + objectMode: true + }); + } +} + +class FilterStream extends ObjectTransform { + constructor(filter) { + super(); + this._filter = filter; + } + + _transform(data, encoding, callback) { + if (this._filter(data)) { + this.push(data); + } + + callback(); + } +} + +class UniqueStream extends ObjectTransform { + constructor() { + super(); + this._pushed = new Set(); + } + + _transform(data, encoding, callback) { + if (!this._pushed.has(data)) { + this.push(data); + this._pushed.add(data); + } + + callback(); + } +} + +module.exports = { + FilterStream, + UniqueStream +}; diff --git a/node_modules/grapheme-splitter/LICENSE b/node_modules/grapheme-splitter/LICENSE new file mode 100644 index 0000000..4f0f53d --- /dev/null +++ b/node_modules/grapheme-splitter/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Orlin Georgiev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/grapheme-splitter/README.md b/node_modules/grapheme-splitter/README.md new file mode 100644 index 0000000..394a0af --- /dev/null +++ b/node_modules/grapheme-splitter/README.md @@ -0,0 +1,111 @@ +# Background + +In JavaScript there is not always a one-to-one relationship between string characters and what a user would call a separate visual "letter". Some symbols are represented by several characters. This can cause issues when splitting strings and inadvertently cutting a multi-char letter in half, or when you need the actual number of letters in a string. + +For example, emoji characters like "🌷","🎁","💩","😜" and "👍" are represented by two JavaScript characters each (high surrogate and low surrogate). That is, + +```javascript +"🌷".length == 2 +``` +The combined emoji are even longer: +```javascript +"🏳️‍🌈".length == 6 +``` + +What's more, some languages often include combining marks - characters that are used to modify the letters before them. Common examples are the German letter ü and the Spanish letter ñ. Sometimes they can be represented alternatively both as a single character and as a letter + combining mark, with both forms equally valid: + +```javascript +var two = "ñ"; // unnormalized two-char n+◌̃ , i.e. "\u006E\u0303"; +var one = "ñ"; // normalized single-char, i.e. "\u00F1" +console.log(one!=two); // prints 'true' +``` + +Unicode normalization, as performed by the popular punycode.js library or ECMAScript 6's String.normalize, can **sometimes** fix those differences and turn two-char sequences into single characters. But it is **not** enough in all cases. Some languages like Hindi make extensive use of combining marks on their letters, that have no dedicated single-codepoint Unicode sequences, due to the sheer number of possible combinations. +For example, the Hindi word "अनुच्छेद" is comprised of 5 letters and 3 combining marks: + +अ + न + ु + च + ् + छ + े + द + +which is in fact just 5 user-perceived letters: + +अ + नु + च् + छे + द + +and which Unicode normalization would not combine properly. +There are also the unusual letter+combining mark combinations which have no dedicated Unicode codepoint. The string Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘ obviously has 5 separate letters, but is in fact comprised of 58 JavaScript characters, most of which are combining marks. + +Enter the grapheme-splitter.js library. It can be used to properly split JavaScript strings into what a human user would call separate letters (or "extended grapheme clusters" in Unicode terminology), no matter what their internal representation is. It is an implementation on the [Default Grapheme Cluster Boundary](http://unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table) of [UAX #29](http://www.unicode.org/reports/tr29/). + +# Installation + +You can use the index.js file directly as-is. Or you you can install `grapheme-splitter` to your project using the NPM command below: + +``` +$ npm install --save grapheme-splitter +``` + +# Tests + +To run the tests on `grapheme-splitter`, use the command below: + +``` +$ npm test +``` + +# Usage + +Just initialize and use: + +```javascript +var splitter = new GraphemeSplitter(); + +// split the string to an array of grapheme clusters (one string each) +var graphemes = splitter.splitGraphemes(string); + +// iterate the string to an iterable iterator of grapheme clusters (one string each) +var graphemes = splitter.iterateGraphemes(string); + +// or do this if you just need their number +var graphemeCount = splitter.countGraphemes(string); +``` + +# Examples + +```javascript +var splitter = new GraphemeSplitter(); + +// plain latin alphabet - nothing spectacular +splitter.splitGraphemes("abcd"); // returns ["a", "b", "c", "d"] + +// two-char emojis and six-char combined emoji +splitter.splitGraphemes("🌷🎁💩😜👍🏳️‍🌈"); // returns ["🌷","🎁","💩","😜","👍","🏳️‍🌈"] + +// diacritics as combining marks, 10 JavaScript chars +splitter.splitGraphemes("Ĺo͂řȩm̅"); // returns ["Ĺ","o͂","ř","ȩ","m̅"] + +// individual Korean characters (Jamo), 4 JavaScript chars +splitter.splitGraphemes("뎌쉐"); // returns ["뎌","쉐"] + +// Hindi text with combining marks, 8 JavaScript chars +splitter.splitGraphemes("अनुच्छेद"); // returns ["अ","नु","च्","छे","द"] + +// demonic multiple combining marks, 75 JavaScript chars +splitter.splitGraphemes("Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞"); // returns ["Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍","A̴̵̜̰͔ͫ͗͢","L̠ͨͧͩ͘","G̴̻͈͍͔̹̑͗̎̅͛́","Ǫ̵̹̻̝̳͂̌̌͘","!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞"] +``` + +# TypeScript + +Grapheme splitter includes TypeScript declarations. + +```typescript +import GraphemeSplitter = require('grapheme-splitter') + +const splitter = new GraphemeSplitter() + +const split: string[] = splitter.splitGraphemes('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞') +``` + +# Acknowledgements + +This library is heavily influenced by Devon Govett's excellent grapheme-breaker CoffeeScript library at https://github.com/devongovett/grapheme-breaker with an emphasis on ease of integration and pure JavaScript implementation. + + + diff --git a/node_modules/grapheme-splitter/index.d.ts b/node_modules/grapheme-splitter/index.d.ts new file mode 100644 index 0000000..61162ac --- /dev/null +++ b/node_modules/grapheme-splitter/index.d.ts @@ -0,0 +1,24 @@ +// Type definitions for grapheme-splitter + +/*~ Note that ES6 modules cannot directly export class objects. + *~ This file should be imported using the CommonJS-style: + *~ + *~ import GraphemeSplitter = require('grapheme-splitter') + *~ + *~ Refer to the documentation to understand common + *~ workarounds for this limitation of ES6 modules. + *~ + *~ https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html + */ + +declare class GraphemeSplitter { + constructor(); + /** iterate the string to an iterable iterator of grapheme clusters */ + iterateGraphemes(s: string): IterableIterator; + /** split the string to an array of grapheme clusters */ + splitGraphemes(s: string): string[]; + /** count the number of grapheme clusters in a string */ + countGraphemes(s: string): number; +} + +export = GraphemeSplitter; diff --git a/node_modules/grapheme-splitter/index.js b/node_modules/grapheme-splitter/index.js new file mode 100644 index 0000000..d555591 --- /dev/null +++ b/node_modules/grapheme-splitter/index.js @@ -0,0 +1,1743 @@ +/* +Breaks a Javascript string into individual user-perceived "characters" +called extended grapheme clusters by implementing the Unicode UAX-29 standard, version 10.0.0 + +Usage: +var splitter = new GraphemeSplitter(); +//returns an array of strings, one string for each grapheme cluster +var graphemes = splitter.splitGraphemes(string); + +*/ +function GraphemeSplitter(){ + var CR = 0, + LF = 1, + Control = 2, + Extend = 3, + Regional_Indicator = 4, + SpacingMark = 5, + L = 6, + V = 7, + T = 8, + LV = 9, + LVT = 10, + Other = 11, + Prepend = 12, + E_Base = 13, + E_Modifier = 14, + ZWJ = 15, + Glue_After_Zwj = 16, + E_Base_GAZ = 17; + + // BreakTypes + var NotBreak = 0, + BreakStart = 1, + Break = 2, + BreakLastRegional = 3, + BreakPenultimateRegional = 4; + + function isSurrogate(str, pos) { + return 0xd800 <= str.charCodeAt(pos) && str.charCodeAt(pos) <= 0xdbff && + 0xdc00 <= str.charCodeAt(pos + 1) && str.charCodeAt(pos + 1) <= 0xdfff; + } + + // Private function, gets a Unicode code point from a JavaScript UTF-16 string + // handling surrogate pairs appropriately + function codePointAt(str, idx){ + if(idx === undefined){ + idx = 0; + } + var code = str.charCodeAt(idx); + + // if a high surrogate + if (0xD800 <= code && code <= 0xDBFF && + idx < str.length - 1){ + var hi = code; + var low = str.charCodeAt(idx + 1); + if (0xDC00 <= low && low <= 0xDFFF){ + return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; + } + return hi; + } + + // if a low surrogate + if (0xDC00 <= code && code <= 0xDFFF && + idx >= 1){ + var hi = str.charCodeAt(idx - 1); + var low = code; + if (0xD800 <= hi && hi <= 0xDBFF){ + return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; + } + return low; + } + + //just return the char if an unmatched surrogate half or a + //single-char codepoint + return code; + } + + // Private function, returns whether a break is allowed between the + // two given grapheme breaking classes + function shouldBreak(start, mid, end){ + var all = [start].concat(mid).concat([end]); + var previous = all[all.length - 2] + var next = end + + // Lookahead termintor for: + // GB10. (E_Base | EBG) Extend* ? E_Modifier + var eModifierIndex = all.lastIndexOf(E_Modifier) + if(eModifierIndex > 1 && + all.slice(1, eModifierIndex).every(function(c){return c == Extend}) && + [Extend, E_Base, E_Base_GAZ].indexOf(start) == -1){ + return Break + } + + // Lookahead termintor for: + // GB12. ^ (RI RI)* RI ? RI + // GB13. [^RI] (RI RI)* RI ? RI + var rIIndex = all.lastIndexOf(Regional_Indicator) + if(rIIndex > 0 && + all.slice(1, rIIndex).every(function(c){return c == Regional_Indicator}) && + [Prepend, Regional_Indicator].indexOf(previous) == -1) { + if(all.filter(function(c){return c == Regional_Indicator}).length % 2 == 1) { + return BreakLastRegional + } + else { + return BreakPenultimateRegional + } + } + + // GB3. CR X LF + if(previous == CR && next == LF){ + return NotBreak; + } + // GB4. (Control|CR|LF) ÷ + else if(previous == Control || previous == CR || previous == LF){ + if(next == E_Modifier && mid.every(function(c){return c == Extend})){ + return Break + } + else { + return BreakStart + } + } + // GB5. ÷ (Control|CR|LF) + else if(next == Control || next == CR || next == LF){ + return BreakStart; + } + // GB6. L X (L|V|LV|LVT) + else if(previous == L && + (next == L || next == V || next == LV || next == LVT)){ + return NotBreak; + } + // GB7. (LV|V) X (V|T) + else if((previous == LV || previous == V) && + (next == V || next == T)){ + return NotBreak; + } + // GB8. (LVT|T) X (T) + else if((previous == LVT || previous == T) && + next == T){ + return NotBreak; + } + // GB9. X (Extend|ZWJ) + else if (next == Extend || next == ZWJ){ + return NotBreak; + } + // GB9a. X SpacingMark + else if(next == SpacingMark){ + return NotBreak; + } + // GB9b. Prepend X + else if (previous == Prepend){ + return NotBreak; + } + + // GB10. (E_Base | EBG) Extend* ? E_Modifier + var previousNonExtendIndex = all.indexOf(Extend) != -1 ? all.lastIndexOf(Extend) - 1 : all.length - 2; + if([E_Base, E_Base_GAZ].indexOf(all[previousNonExtendIndex]) != -1 && + all.slice(previousNonExtendIndex + 1, -1).every(function(c){return c == Extend}) && + next == E_Modifier){ + return NotBreak; + } + + // GB11. ZWJ ? (Glue_After_Zwj | EBG) + if(previous == ZWJ && [Glue_After_Zwj, E_Base_GAZ].indexOf(next) != -1) { + return NotBreak; + } + + // GB12. ^ (RI RI)* RI ? RI + // GB13. [^RI] (RI RI)* RI ? RI + if(mid.indexOf(Regional_Indicator) != -1) { + return Break; + } + if(previous == Regional_Indicator && next == Regional_Indicator) { + return NotBreak; + } + + // GB999. Any ? Any + return BreakStart; + } + + // Returns the next grapheme break in the string after the given index + this.nextBreak = function(string, index){ + if(index === undefined){ + index = 0; + } + if(index < 0){ + return 0; + } + if(index >= string.length - 1){ + return string.length; + } + var prev = getGraphemeBreakProperty(codePointAt(string, index)); + var mid = [] + for (var i = index + 1; i < string.length; i++) { + // check for already processed low surrogates + if(isSurrogate(string, i - 1)){ + continue; + } + + var next = getGraphemeBreakProperty(codePointAt(string, i)); + if(shouldBreak(prev, mid, next)){ + return i; + } + + mid.push(next); + } + return string.length; + }; + + // Breaks the given string into an array of grapheme cluster strings + this.splitGraphemes = function(str){ + var res = []; + var index = 0; + var brk; + while((brk = this.nextBreak(str, index)) < str.length){ + res.push(str.slice(index, brk)); + index = brk; + } + if(index < str.length){ + res.push(str.slice(index)); + } + return res; + }; + + // Returns the iterator of grapheme clusters there are in the given string + this.iterateGraphemes = function(str) { + var index = 0; + var res = { + next: (function() { + var value; + var brk; + if ((brk = this.nextBreak(str, index)) < str.length) { + value = str.slice(index, brk); + index = brk; + return { value: value, done: false }; + } + if (index < str.length) { + value = str.slice(index); + index = str.length; + return { value: value, done: false }; + } + return { value: undefined, done: true }; + }).bind(this) + }; + // ES2015 @@iterator method (iterable) for spread syntax and for...of statement + if (typeof Symbol !== 'undefined' && Symbol.iterator) { + res[Symbol.iterator] = function() {return res}; + } + return res; + }; + + // Returns the number of grapheme clusters there are in the given string + this.countGraphemes = function(str){ + var count = 0; + var index = 0; + var brk; + while((brk = this.nextBreak(str, index)) < str.length){ + index = brk; + count++; + } + if(index < str.length){ + count++; + } + return count; + }; + + //given a Unicode code point, determines this symbol's grapheme break property + function getGraphemeBreakProperty(code){ + + //grapheme break property for Unicode 10.0.0, + //taken from http://www.unicode.org/Public/10.0.0/ucd/auxiliary/GraphemeBreakProperty.txt + //and adapted to JavaScript rules + + if( + (0x0600 <= code && code <= 0x0605) || // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE + 0x06DD == code || // Cf ARABIC END OF AYAH + 0x070F == code || // Cf SYRIAC ABBREVIATION MARK + 0x08E2 == code || // Cf ARABIC DISPUTED END OF AYAH + 0x0D4E == code || // Lo MALAYALAM LETTER DOT REPH + 0x110BD == code || // Cf KAITHI NUMBER SIGN + (0x111C2 <= code && code <= 0x111C3) || // Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA + 0x11A3A == code || // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA + (0x11A86 <= code && code <= 0x11A89) || // Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA + 0x11D46 == code // Lo MASARAM GONDI REPHA + ){ + return Prepend; + } + if( + 0x000D == code // Cc + ){ + return CR; + } + + if( + 0x000A == code // Cc + ){ + return LF; + } + + + if( + (0x0000 <= code && code <= 0x0009) || // Cc [10] .. + (0x000B <= code && code <= 0x000C) || // Cc [2] .. + (0x000E <= code && code <= 0x001F) || // Cc [18] .. + (0x007F <= code && code <= 0x009F) || // Cc [33] .. + 0x00AD == code || // Cf SOFT HYPHEN + 0x061C == code || // Cf ARABIC LETTER MARK + + 0x180E == code || // Cf MONGOLIAN VOWEL SEPARATOR + 0x200B == code || // Cf ZERO WIDTH SPACE + (0x200E <= code && code <= 0x200F) || // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK + 0x2028 == code || // Zl LINE SEPARATOR + 0x2029 == code || // Zp PARAGRAPH SEPARATOR + (0x202A <= code && code <= 0x202E) || // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE + (0x2060 <= code && code <= 0x2064) || // Cf [5] WORD JOINER..INVISIBLE PLUS + 0x2065 == code || // Cn + (0x2066 <= code && code <= 0x206F) || // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES + (0xD800 <= code && code <= 0xDFFF) || // Cs [2048] .. + 0xFEFF == code || // Cf ZERO WIDTH NO-BREAK SPACE + (0xFFF0 <= code && code <= 0xFFF8) || // Cn [9] .. + (0xFFF9 <= code && code <= 0xFFFB) || // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR + (0x1BCA0 <= code && code <= 0x1BCA3) || // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP + (0x1D173 <= code && code <= 0x1D17A) || // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE + 0xE0000 == code || // Cn + 0xE0001 == code || // Cf LANGUAGE TAG + (0xE0002 <= code && code <= 0xE001F) || // Cn [30] .. + (0xE0080 <= code && code <= 0xE00FF) || // Cn [128] .. + (0xE01F0 <= code && code <= 0xE0FFF) // Cn [3600] .. + ){ + return Control; + } + + + if( + (0x0300 <= code && code <= 0x036F) || // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X + (0x0483 <= code && code <= 0x0487) || // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE + (0x0488 <= code && code <= 0x0489) || // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN + (0x0591 <= code && code <= 0x05BD) || // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG + 0x05BF == code || // Mn HEBREW POINT RAFE + (0x05C1 <= code && code <= 0x05C2) || // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT + (0x05C4 <= code && code <= 0x05C5) || // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT + 0x05C7 == code || // Mn HEBREW POINT QAMATS QATAN + (0x0610 <= code && code <= 0x061A) || // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA + (0x064B <= code && code <= 0x065F) || // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW + 0x0670 == code || // Mn ARABIC LETTER SUPERSCRIPT ALEF + (0x06D6 <= code && code <= 0x06DC) || // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN + (0x06DF <= code && code <= 0x06E4) || // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA + (0x06E7 <= code && code <= 0x06E8) || // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON + (0x06EA <= code && code <= 0x06ED) || // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM + 0x0711 == code || // Mn SYRIAC LETTER SUPERSCRIPT ALAPH + (0x0730 <= code && code <= 0x074A) || // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH + (0x07A6 <= code && code <= 0x07B0) || // Mn [11] THAANA ABAFILI..THAANA SUKUN + (0x07EB <= code && code <= 0x07F3) || // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE + (0x0816 <= code && code <= 0x0819) || // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH + (0x081B <= code && code <= 0x0823) || // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A + (0x0825 <= code && code <= 0x0827) || // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U + (0x0829 <= code && code <= 0x082D) || // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA + (0x0859 <= code && code <= 0x085B) || // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK + (0x08D4 <= code && code <= 0x08E1) || // Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA + (0x08E3 <= code && code <= 0x0902) || // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA + 0x093A == code || // Mn DEVANAGARI VOWEL SIGN OE + 0x093C == code || // Mn DEVANAGARI SIGN NUKTA + (0x0941 <= code && code <= 0x0948) || // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI + 0x094D == code || // Mn DEVANAGARI SIGN VIRAMA + (0x0951 <= code && code <= 0x0957) || // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE + (0x0962 <= code && code <= 0x0963) || // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL + 0x0981 == code || // Mn BENGALI SIGN CANDRABINDU + 0x09BC == code || // Mn BENGALI SIGN NUKTA + 0x09BE == code || // Mc BENGALI VOWEL SIGN AA + (0x09C1 <= code && code <= 0x09C4) || // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR + 0x09CD == code || // Mn BENGALI SIGN VIRAMA + 0x09D7 == code || // Mc BENGALI AU LENGTH MARK + (0x09E2 <= code && code <= 0x09E3) || // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL + (0x0A01 <= code && code <= 0x0A02) || // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI + 0x0A3C == code || // Mn GURMUKHI SIGN NUKTA + (0x0A41 <= code && code <= 0x0A42) || // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU + (0x0A47 <= code && code <= 0x0A48) || // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI + (0x0A4B <= code && code <= 0x0A4D) || // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA + 0x0A51 == code || // Mn GURMUKHI SIGN UDAAT + (0x0A70 <= code && code <= 0x0A71) || // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK + 0x0A75 == code || // Mn GURMUKHI SIGN YAKASH + (0x0A81 <= code && code <= 0x0A82) || // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA + 0x0ABC == code || // Mn GUJARATI SIGN NUKTA + (0x0AC1 <= code && code <= 0x0AC5) || // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E + (0x0AC7 <= code && code <= 0x0AC8) || // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI + 0x0ACD == code || // Mn GUJARATI SIGN VIRAMA + (0x0AE2 <= code && code <= 0x0AE3) || // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL + (0x0AFA <= code && code <= 0x0AFF) || // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE + 0x0B01 == code || // Mn ORIYA SIGN CANDRABINDU + 0x0B3C == code || // Mn ORIYA SIGN NUKTA + 0x0B3E == code || // Mc ORIYA VOWEL SIGN AA + 0x0B3F == code || // Mn ORIYA VOWEL SIGN I + (0x0B41 <= code && code <= 0x0B44) || // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR + 0x0B4D == code || // Mn ORIYA SIGN VIRAMA + 0x0B56 == code || // Mn ORIYA AI LENGTH MARK + 0x0B57 == code || // Mc ORIYA AU LENGTH MARK + (0x0B62 <= code && code <= 0x0B63) || // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL + 0x0B82 == code || // Mn TAMIL SIGN ANUSVARA + 0x0BBE == code || // Mc TAMIL VOWEL SIGN AA + 0x0BC0 == code || // Mn TAMIL VOWEL SIGN II + 0x0BCD == code || // Mn TAMIL SIGN VIRAMA + 0x0BD7 == code || // Mc TAMIL AU LENGTH MARK + 0x0C00 == code || // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE + (0x0C3E <= code && code <= 0x0C40) || // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II + (0x0C46 <= code && code <= 0x0C48) || // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI + (0x0C4A <= code && code <= 0x0C4D) || // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA + (0x0C55 <= code && code <= 0x0C56) || // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK + (0x0C62 <= code && code <= 0x0C63) || // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL + 0x0C81 == code || // Mn KANNADA SIGN CANDRABINDU + 0x0CBC == code || // Mn KANNADA SIGN NUKTA + 0x0CBF == code || // Mn KANNADA VOWEL SIGN I + 0x0CC2 == code || // Mc KANNADA VOWEL SIGN UU + 0x0CC6 == code || // Mn KANNADA VOWEL SIGN E + (0x0CCC <= code && code <= 0x0CCD) || // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA + (0x0CD5 <= code && code <= 0x0CD6) || // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK + (0x0CE2 <= code && code <= 0x0CE3) || // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL + (0x0D00 <= code && code <= 0x0D01) || // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU + (0x0D3B <= code && code <= 0x0D3C) || // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA + 0x0D3E == code || // Mc MALAYALAM VOWEL SIGN AA + (0x0D41 <= code && code <= 0x0D44) || // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR + 0x0D4D == code || // Mn MALAYALAM SIGN VIRAMA + 0x0D57 == code || // Mc MALAYALAM AU LENGTH MARK + (0x0D62 <= code && code <= 0x0D63) || // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL + 0x0DCA == code || // Mn SINHALA SIGN AL-LAKUNA + 0x0DCF == code || // Mc SINHALA VOWEL SIGN AELA-PILLA + (0x0DD2 <= code && code <= 0x0DD4) || // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA + 0x0DD6 == code || // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA + 0x0DDF == code || // Mc SINHALA VOWEL SIGN GAYANUKITTA + 0x0E31 == code || // Mn THAI CHARACTER MAI HAN-AKAT + (0x0E34 <= code && code <= 0x0E3A) || // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU + (0x0E47 <= code && code <= 0x0E4E) || // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN + 0x0EB1 == code || // Mn LAO VOWEL SIGN MAI KAN + (0x0EB4 <= code && code <= 0x0EB9) || // Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU + (0x0EBB <= code && code <= 0x0EBC) || // Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO + (0x0EC8 <= code && code <= 0x0ECD) || // Mn [6] LAO TONE MAI EK..LAO NIGGAHITA + (0x0F18 <= code && code <= 0x0F19) || // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS + 0x0F35 == code || // Mn TIBETAN MARK NGAS BZUNG NYI ZLA + 0x0F37 == code || // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS + 0x0F39 == code || // Mn TIBETAN MARK TSA -PHRU + (0x0F71 <= code && code <= 0x0F7E) || // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO + (0x0F80 <= code && code <= 0x0F84) || // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA + (0x0F86 <= code && code <= 0x0F87) || // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS + (0x0F8D <= code && code <= 0x0F97) || // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA + (0x0F99 <= code && code <= 0x0FBC) || // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA + 0x0FC6 == code || // Mn TIBETAN SYMBOL PADMA GDAN + (0x102D <= code && code <= 0x1030) || // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU + (0x1032 <= code && code <= 0x1037) || // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW + (0x1039 <= code && code <= 0x103A) || // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT + (0x103D <= code && code <= 0x103E) || // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA + (0x1058 <= code && code <= 0x1059) || // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL + (0x105E <= code && code <= 0x1060) || // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA + (0x1071 <= code && code <= 0x1074) || // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE + 0x1082 == code || // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA + (0x1085 <= code && code <= 0x1086) || // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y + 0x108D == code || // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE + 0x109D == code || // Mn MYANMAR VOWEL SIGN AITON AI + (0x135D <= code && code <= 0x135F) || // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK + (0x1712 <= code && code <= 0x1714) || // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA + (0x1732 <= code && code <= 0x1734) || // Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD + (0x1752 <= code && code <= 0x1753) || // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U + (0x1772 <= code && code <= 0x1773) || // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U + (0x17B4 <= code && code <= 0x17B5) || // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA + (0x17B7 <= code && code <= 0x17BD) || // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA + 0x17C6 == code || // Mn KHMER SIGN NIKAHIT + (0x17C9 <= code && code <= 0x17D3) || // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT + 0x17DD == code || // Mn KHMER SIGN ATTHACAN + (0x180B <= code && code <= 0x180D) || // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE + (0x1885 <= code && code <= 0x1886) || // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA + 0x18A9 == code || // Mn MONGOLIAN LETTER ALI GALI DAGALGA + (0x1920 <= code && code <= 0x1922) || // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U + (0x1927 <= code && code <= 0x1928) || // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O + 0x1932 == code || // Mn LIMBU SMALL LETTER ANUSVARA + (0x1939 <= code && code <= 0x193B) || // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I + (0x1A17 <= code && code <= 0x1A18) || // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U + 0x1A1B == code || // Mn BUGINESE VOWEL SIGN AE + 0x1A56 == code || // Mn TAI THAM CONSONANT SIGN MEDIAL LA + (0x1A58 <= code && code <= 0x1A5E) || // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA + 0x1A60 == code || // Mn TAI THAM SIGN SAKOT + 0x1A62 == code || // Mn TAI THAM VOWEL SIGN MAI SAT + (0x1A65 <= code && code <= 0x1A6C) || // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW + (0x1A73 <= code && code <= 0x1A7C) || // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN + 0x1A7F == code || // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT + (0x1AB0 <= code && code <= 0x1ABD) || // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW + 0x1ABE == code || // Me COMBINING PARENTHESES OVERLAY + (0x1B00 <= code && code <= 0x1B03) || // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG + 0x1B34 == code || // Mn BALINESE SIGN REREKAN + (0x1B36 <= code && code <= 0x1B3A) || // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA + 0x1B3C == code || // Mn BALINESE VOWEL SIGN LA LENGA + 0x1B42 == code || // Mn BALINESE VOWEL SIGN PEPET + (0x1B6B <= code && code <= 0x1B73) || // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG + (0x1B80 <= code && code <= 0x1B81) || // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR + (0x1BA2 <= code && code <= 0x1BA5) || // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU + (0x1BA8 <= code && code <= 0x1BA9) || // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG + (0x1BAB <= code && code <= 0x1BAD) || // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA + 0x1BE6 == code || // Mn BATAK SIGN TOMPI + (0x1BE8 <= code && code <= 0x1BE9) || // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE + 0x1BED == code || // Mn BATAK VOWEL SIGN KARO O + (0x1BEF <= code && code <= 0x1BF1) || // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H + (0x1C2C <= code && code <= 0x1C33) || // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T + (0x1C36 <= code && code <= 0x1C37) || // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA + (0x1CD0 <= code && code <= 0x1CD2) || // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA + (0x1CD4 <= code && code <= 0x1CE0) || // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA + (0x1CE2 <= code && code <= 0x1CE8) || // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL + 0x1CED == code || // Mn VEDIC SIGN TIRYAK + 0x1CF4 == code || // Mn VEDIC TONE CANDRA ABOVE + (0x1CF8 <= code && code <= 0x1CF9) || // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE + (0x1DC0 <= code && code <= 0x1DF9) || // Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW + (0x1DFB <= code && code <= 0x1DFF) || // Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + 0x200C == code || // Cf ZERO WIDTH NON-JOINER + (0x20D0 <= code && code <= 0x20DC) || // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE + (0x20DD <= code && code <= 0x20E0) || // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH + 0x20E1 == code || // Mn COMBINING LEFT RIGHT ARROW ABOVE + (0x20E2 <= code && code <= 0x20E4) || // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE + (0x20E5 <= code && code <= 0x20F0) || // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE + (0x2CEF <= code && code <= 0x2CF1) || // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS + 0x2D7F == code || // Mn TIFINAGH CONSONANT JOINER + (0x2DE0 <= code && code <= 0x2DFF) || // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS + (0x302A <= code && code <= 0x302D) || // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK + (0x302E <= code && code <= 0x302F) || // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK + (0x3099 <= code && code <= 0x309A) || // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK + 0xA66F == code || // Mn COMBINING CYRILLIC VZMET + (0xA670 <= code && code <= 0xA672) || // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN + (0xA674 <= code && code <= 0xA67D) || // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK + (0xA69E <= code && code <= 0xA69F) || // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E + (0xA6F0 <= code && code <= 0xA6F1) || // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS + 0xA802 == code || // Mn SYLOTI NAGRI SIGN DVISVARA + 0xA806 == code || // Mn SYLOTI NAGRI SIGN HASANTA + 0xA80B == code || // Mn SYLOTI NAGRI SIGN ANUSVARA + (0xA825 <= code && code <= 0xA826) || // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E + (0xA8C4 <= code && code <= 0xA8C5) || // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU + (0xA8E0 <= code && code <= 0xA8F1) || // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA + (0xA926 <= code && code <= 0xA92D) || // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU + (0xA947 <= code && code <= 0xA951) || // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R + (0xA980 <= code && code <= 0xA982) || // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR + 0xA9B3 == code || // Mn JAVANESE SIGN CECAK TELU + (0xA9B6 <= code && code <= 0xA9B9) || // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT + 0xA9BC == code || // Mn JAVANESE VOWEL SIGN PEPET + 0xA9E5 == code || // Mn MYANMAR SIGN SHAN SAW + (0xAA29 <= code && code <= 0xAA2E) || // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE + (0xAA31 <= code && code <= 0xAA32) || // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE + (0xAA35 <= code && code <= 0xAA36) || // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA + 0xAA43 == code || // Mn CHAM CONSONANT SIGN FINAL NG + 0xAA4C == code || // Mn CHAM CONSONANT SIGN FINAL M + 0xAA7C == code || // Mn MYANMAR SIGN TAI LAING TONE-2 + 0xAAB0 == code || // Mn TAI VIET MAI KANG + (0xAAB2 <= code && code <= 0xAAB4) || // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U + (0xAAB7 <= code && code <= 0xAAB8) || // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA + (0xAABE <= code && code <= 0xAABF) || // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK + 0xAAC1 == code || // Mn TAI VIET TONE MAI THO + (0xAAEC <= code && code <= 0xAAED) || // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI + 0xAAF6 == code || // Mn MEETEI MAYEK VIRAMA + 0xABE5 == code || // Mn MEETEI MAYEK VOWEL SIGN ANAP + 0xABE8 == code || // Mn MEETEI MAYEK VOWEL SIGN UNAP + 0xABED == code || // Mn MEETEI MAYEK APUN IYEK + 0xFB1E == code || // Mn HEBREW POINT JUDEO-SPANISH VARIKA + (0xFE00 <= code && code <= 0xFE0F) || // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 + (0xFE20 <= code && code <= 0xFE2F) || // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF + (0xFF9E <= code && code <= 0xFF9F) || // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK + 0x101FD == code || // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE + 0x102E0 == code || // Mn COPTIC EPACT THOUSANDS MARK + (0x10376 <= code && code <= 0x1037A) || // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII + (0x10A01 <= code && code <= 0x10A03) || // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R + (0x10A05 <= code && code <= 0x10A06) || // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O + (0x10A0C <= code && code <= 0x10A0F) || // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA + (0x10A38 <= code && code <= 0x10A3A) || // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW + 0x10A3F == code || // Mn KHAROSHTHI VIRAMA + (0x10AE5 <= code && code <= 0x10AE6) || // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW + 0x11001 == code || // Mn BRAHMI SIGN ANUSVARA + (0x11038 <= code && code <= 0x11046) || // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA + (0x1107F <= code && code <= 0x11081) || // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA + (0x110B3 <= code && code <= 0x110B6) || // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI + (0x110B9 <= code && code <= 0x110BA) || // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA + (0x11100 <= code && code <= 0x11102) || // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA + (0x11127 <= code && code <= 0x1112B) || // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU + (0x1112D <= code && code <= 0x11134) || // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA + 0x11173 == code || // Mn MAHAJANI SIGN NUKTA + (0x11180 <= code && code <= 0x11181) || // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA + (0x111B6 <= code && code <= 0x111BE) || // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O + (0x111CA <= code && code <= 0x111CC) || // Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK + (0x1122F <= code && code <= 0x11231) || // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI + 0x11234 == code || // Mn KHOJKI SIGN ANUSVARA + (0x11236 <= code && code <= 0x11237) || // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA + 0x1123E == code || // Mn KHOJKI SIGN SUKUN + 0x112DF == code || // Mn KHUDAWADI SIGN ANUSVARA + (0x112E3 <= code && code <= 0x112EA) || // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA + (0x11300 <= code && code <= 0x11301) || // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU + 0x1133C == code || // Mn GRANTHA SIGN NUKTA + 0x1133E == code || // Mc GRANTHA VOWEL SIGN AA + 0x11340 == code || // Mn GRANTHA VOWEL SIGN II + 0x11357 == code || // Mc GRANTHA AU LENGTH MARK + (0x11366 <= code && code <= 0x1136C) || // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX + (0x11370 <= code && code <= 0x11374) || // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA + (0x11438 <= code && code <= 0x1143F) || // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI + (0x11442 <= code && code <= 0x11444) || // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA + 0x11446 == code || // Mn NEWA SIGN NUKTA + 0x114B0 == code || // Mc TIRHUTA VOWEL SIGN AA + (0x114B3 <= code && code <= 0x114B8) || // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL + 0x114BA == code || // Mn TIRHUTA VOWEL SIGN SHORT E + 0x114BD == code || // Mc TIRHUTA VOWEL SIGN SHORT O + (0x114BF <= code && code <= 0x114C0) || // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA + (0x114C2 <= code && code <= 0x114C3) || // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA + 0x115AF == code || // Mc SIDDHAM VOWEL SIGN AA + (0x115B2 <= code && code <= 0x115B5) || // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR + (0x115BC <= code && code <= 0x115BD) || // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA + (0x115BF <= code && code <= 0x115C0) || // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA + (0x115DC <= code && code <= 0x115DD) || // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU + (0x11633 <= code && code <= 0x1163A) || // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI + 0x1163D == code || // Mn MODI SIGN ANUSVARA + (0x1163F <= code && code <= 0x11640) || // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA + 0x116AB == code || // Mn TAKRI SIGN ANUSVARA + 0x116AD == code || // Mn TAKRI VOWEL SIGN AA + (0x116B0 <= code && code <= 0x116B5) || // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU + 0x116B7 == code || // Mn TAKRI SIGN NUKTA + (0x1171D <= code && code <= 0x1171F) || // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA + (0x11722 <= code && code <= 0x11725) || // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU + (0x11727 <= code && code <= 0x1172B) || // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER + (0x11A01 <= code && code <= 0x11A06) || // Mn [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O + (0x11A09 <= code && code <= 0x11A0A) || // Mn [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK + (0x11A33 <= code && code <= 0x11A38) || // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA + (0x11A3B <= code && code <= 0x11A3E) || // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA + 0x11A47 == code || // Mn ZANABAZAR SQUARE SUBJOINER + (0x11A51 <= code && code <= 0x11A56) || // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE + (0x11A59 <= code && code <= 0x11A5B) || // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK + (0x11A8A <= code && code <= 0x11A96) || // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA + (0x11A98 <= code && code <= 0x11A99) || // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER + (0x11C30 <= code && code <= 0x11C36) || // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L + (0x11C38 <= code && code <= 0x11C3D) || // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA + 0x11C3F == code || // Mn BHAIKSUKI SIGN VIRAMA + (0x11C92 <= code && code <= 0x11CA7) || // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA + (0x11CAA <= code && code <= 0x11CB0) || // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA + (0x11CB2 <= code && code <= 0x11CB3) || // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E + (0x11CB5 <= code && code <= 0x11CB6) || // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + (0x11D31 <= code && code <= 0x11D36) || // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R + 0x11D3A == code || // Mn MASARAM GONDI VOWEL SIGN E + (0x11D3C <= code && code <= 0x11D3D) || // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O + (0x11D3F <= code && code <= 0x11D45) || // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA + 0x11D47 == code || // Mn MASARAM GONDI RA-KARA + (0x16AF0 <= code && code <= 0x16AF4) || // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE + (0x16B30 <= code && code <= 0x16B36) || // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM + (0x16F8F <= code && code <= 0x16F92) || // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW + (0x1BC9D <= code && code <= 0x1BC9E) || // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK + 0x1D165 == code || // Mc MUSICAL SYMBOL COMBINING STEM + (0x1D167 <= code && code <= 0x1D169) || // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 + (0x1D16E <= code && code <= 0x1D172) || // Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 + (0x1D17B <= code && code <= 0x1D182) || // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE + (0x1D185 <= code && code <= 0x1D18B) || // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE + (0x1D1AA <= code && code <= 0x1D1AD) || // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO + (0x1D242 <= code && code <= 0x1D244) || // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME + (0x1DA00 <= code && code <= 0x1DA36) || // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN + (0x1DA3B <= code && code <= 0x1DA6C) || // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT + 0x1DA75 == code || // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS + 0x1DA84 == code || // Mn SIGNWRITING LOCATION HEAD NECK + (0x1DA9B <= code && code <= 0x1DA9F) || // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 + (0x1DAA1 <= code && code <= 0x1DAAF) || // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 + (0x1E000 <= code && code <= 0x1E006) || // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE + (0x1E008 <= code && code <= 0x1E018) || // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU + (0x1E01B <= code && code <= 0x1E021) || // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI + (0x1E023 <= code && code <= 0x1E024) || // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS + (0x1E026 <= code && code <= 0x1E02A) || // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + (0x1E8D0 <= code && code <= 0x1E8D6) || // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS + (0x1E944 <= code && code <= 0x1E94A) || // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA + (0xE0020 <= code && code <= 0xE007F) || // Cf [96] TAG SPACE..CANCEL TAG + (0xE0100 <= code && code <= 0xE01EF) // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + ){ + return Extend; + } + + + if( + (0x1F1E6 <= code && code <= 0x1F1FF) // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z + ){ + return Regional_Indicator; + } + + if( + 0x0903 == code || // Mc DEVANAGARI SIGN VISARGA + 0x093B == code || // Mc DEVANAGARI VOWEL SIGN OOE + (0x093E <= code && code <= 0x0940) || // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II + (0x0949 <= code && code <= 0x094C) || // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU + (0x094E <= code && code <= 0x094F) || // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW + (0x0982 <= code && code <= 0x0983) || // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA + (0x09BF <= code && code <= 0x09C0) || // Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II + (0x09C7 <= code && code <= 0x09C8) || // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI + (0x09CB <= code && code <= 0x09CC) || // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU + 0x0A03 == code || // Mc GURMUKHI SIGN VISARGA + (0x0A3E <= code && code <= 0x0A40) || // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II + 0x0A83 == code || // Mc GUJARATI SIGN VISARGA + (0x0ABE <= code && code <= 0x0AC0) || // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II + 0x0AC9 == code || // Mc GUJARATI VOWEL SIGN CANDRA O + (0x0ACB <= code && code <= 0x0ACC) || // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU + (0x0B02 <= code && code <= 0x0B03) || // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA + 0x0B40 == code || // Mc ORIYA VOWEL SIGN II + (0x0B47 <= code && code <= 0x0B48) || // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI + (0x0B4B <= code && code <= 0x0B4C) || // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU + 0x0BBF == code || // Mc TAMIL VOWEL SIGN I + (0x0BC1 <= code && code <= 0x0BC2) || // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU + (0x0BC6 <= code && code <= 0x0BC8) || // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI + (0x0BCA <= code && code <= 0x0BCC) || // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU + (0x0C01 <= code && code <= 0x0C03) || // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA + (0x0C41 <= code && code <= 0x0C44) || // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR + (0x0C82 <= code && code <= 0x0C83) || // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA + 0x0CBE == code || // Mc KANNADA VOWEL SIGN AA + (0x0CC0 <= code && code <= 0x0CC1) || // Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U + (0x0CC3 <= code && code <= 0x0CC4) || // Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR + (0x0CC7 <= code && code <= 0x0CC8) || // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI + (0x0CCA <= code && code <= 0x0CCB) || // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO + (0x0D02 <= code && code <= 0x0D03) || // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA + (0x0D3F <= code && code <= 0x0D40) || // Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II + (0x0D46 <= code && code <= 0x0D48) || // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI + (0x0D4A <= code && code <= 0x0D4C) || // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU + (0x0D82 <= code && code <= 0x0D83) || // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA + (0x0DD0 <= code && code <= 0x0DD1) || // Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA + (0x0DD8 <= code && code <= 0x0DDE) || // Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA + (0x0DF2 <= code && code <= 0x0DF3) || // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA + 0x0E33 == code || // Lo THAI CHARACTER SARA AM + 0x0EB3 == code || // Lo LAO VOWEL SIGN AM + (0x0F3E <= code && code <= 0x0F3F) || // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES + 0x0F7F == code || // Mc TIBETAN SIGN RNAM BCAD + 0x1031 == code || // Mc MYANMAR VOWEL SIGN E + (0x103B <= code && code <= 0x103C) || // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA + (0x1056 <= code && code <= 0x1057) || // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR + 0x1084 == code || // Mc MYANMAR VOWEL SIGN SHAN E + 0x17B6 == code || // Mc KHMER VOWEL SIGN AA + (0x17BE <= code && code <= 0x17C5) || // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU + (0x17C7 <= code && code <= 0x17C8) || // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU + (0x1923 <= code && code <= 0x1926) || // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU + (0x1929 <= code && code <= 0x192B) || // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA + (0x1930 <= code && code <= 0x1931) || // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA + (0x1933 <= code && code <= 0x1938) || // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA + (0x1A19 <= code && code <= 0x1A1A) || // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O + 0x1A55 == code || // Mc TAI THAM CONSONANT SIGN MEDIAL RA + 0x1A57 == code || // Mc TAI THAM CONSONANT SIGN LA TANG LAI + (0x1A6D <= code && code <= 0x1A72) || // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI + 0x1B04 == code || // Mc BALINESE SIGN BISAH + 0x1B35 == code || // Mc BALINESE VOWEL SIGN TEDUNG + 0x1B3B == code || // Mc BALINESE VOWEL SIGN RA REPA TEDUNG + (0x1B3D <= code && code <= 0x1B41) || // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG + (0x1B43 <= code && code <= 0x1B44) || // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG + 0x1B82 == code || // Mc SUNDANESE SIGN PANGWISAD + 0x1BA1 == code || // Mc SUNDANESE CONSONANT SIGN PAMINGKAL + (0x1BA6 <= code && code <= 0x1BA7) || // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG + 0x1BAA == code || // Mc SUNDANESE SIGN PAMAAEH + 0x1BE7 == code || // Mc BATAK VOWEL SIGN E + (0x1BEA <= code && code <= 0x1BEC) || // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O + 0x1BEE == code || // Mc BATAK VOWEL SIGN U + (0x1BF2 <= code && code <= 0x1BF3) || // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN + (0x1C24 <= code && code <= 0x1C2B) || // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU + (0x1C34 <= code && code <= 0x1C35) || // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG + 0x1CE1 == code || // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA + (0x1CF2 <= code && code <= 0x1CF3) || // Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA + 0x1CF7 == code || // Mc VEDIC SIGN ATIKRAMA + (0xA823 <= code && code <= 0xA824) || // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I + 0xA827 == code || // Mc SYLOTI NAGRI VOWEL SIGN OO + (0xA880 <= code && code <= 0xA881) || // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA + (0xA8B4 <= code && code <= 0xA8C3) || // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU + (0xA952 <= code && code <= 0xA953) || // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA + 0xA983 == code || // Mc JAVANESE SIGN WIGNYAN + (0xA9B4 <= code && code <= 0xA9B5) || // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG + (0xA9BA <= code && code <= 0xA9BB) || // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE + (0xA9BD <= code && code <= 0xA9C0) || // Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON + (0xAA2F <= code && code <= 0xAA30) || // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI + (0xAA33 <= code && code <= 0xAA34) || // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA + 0xAA4D == code || // Mc CHAM CONSONANT SIGN FINAL H + 0xAAEB == code || // Mc MEETEI MAYEK VOWEL SIGN II + (0xAAEE <= code && code <= 0xAAEF) || // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU + 0xAAF5 == code || // Mc MEETEI MAYEK VOWEL SIGN VISARGA + (0xABE3 <= code && code <= 0xABE4) || // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP + (0xABE6 <= code && code <= 0xABE7) || // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP + (0xABE9 <= code && code <= 0xABEA) || // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG + 0xABEC == code || // Mc MEETEI MAYEK LUM IYEK + 0x11000 == code || // Mc BRAHMI SIGN CANDRABINDU + 0x11002 == code || // Mc BRAHMI SIGN VISARGA + 0x11082 == code || // Mc KAITHI SIGN VISARGA + (0x110B0 <= code && code <= 0x110B2) || // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II + (0x110B7 <= code && code <= 0x110B8) || // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU + 0x1112C == code || // Mc CHAKMA VOWEL SIGN E + 0x11182 == code || // Mc SHARADA SIGN VISARGA + (0x111B3 <= code && code <= 0x111B5) || // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II + (0x111BF <= code && code <= 0x111C0) || // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA + (0x1122C <= code && code <= 0x1122E) || // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II + (0x11232 <= code && code <= 0x11233) || // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU + 0x11235 == code || // Mc KHOJKI SIGN VIRAMA + (0x112E0 <= code && code <= 0x112E2) || // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II + (0x11302 <= code && code <= 0x11303) || // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA + 0x1133F == code || // Mc GRANTHA VOWEL SIGN I + (0x11341 <= code && code <= 0x11344) || // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR + (0x11347 <= code && code <= 0x11348) || // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI + (0x1134B <= code && code <= 0x1134D) || // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA + (0x11362 <= code && code <= 0x11363) || // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL + (0x11435 <= code && code <= 0x11437) || // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II + (0x11440 <= code && code <= 0x11441) || // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU + 0x11445 == code || // Mc NEWA SIGN VISARGA + (0x114B1 <= code && code <= 0x114B2) || // Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II + 0x114B9 == code || // Mc TIRHUTA VOWEL SIGN E + (0x114BB <= code && code <= 0x114BC) || // Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O + 0x114BE == code || // Mc TIRHUTA VOWEL SIGN AU + 0x114C1 == code || // Mc TIRHUTA SIGN VISARGA + (0x115B0 <= code && code <= 0x115B1) || // Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II + (0x115B8 <= code && code <= 0x115BB) || // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU + 0x115BE == code || // Mc SIDDHAM SIGN VISARGA + (0x11630 <= code && code <= 0x11632) || // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II + (0x1163B <= code && code <= 0x1163C) || // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU + 0x1163E == code || // Mc MODI SIGN VISARGA + 0x116AC == code || // Mc TAKRI SIGN VISARGA + (0x116AE <= code && code <= 0x116AF) || // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II + 0x116B6 == code || // Mc TAKRI SIGN VIRAMA + (0x11720 <= code && code <= 0x11721) || // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA + 0x11726 == code || // Mc AHOM VOWEL SIGN E + (0x11A07 <= code && code <= 0x11A08) || // Mc [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU + 0x11A39 == code || // Mc ZANABAZAR SQUARE SIGN VISARGA + (0x11A57 <= code && code <= 0x11A58) || // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU + 0x11A97 == code || // Mc SOYOMBO SIGN VISARGA + 0x11C2F == code || // Mc BHAIKSUKI VOWEL SIGN AA + 0x11C3E == code || // Mc BHAIKSUKI SIGN VISARGA + 0x11CA9 == code || // Mc MARCHEN SUBJOINED LETTER YA + 0x11CB1 == code || // Mc MARCHEN VOWEL SIGN I + 0x11CB4 == code || // Mc MARCHEN VOWEL SIGN O + (0x16F51 <= code && code <= 0x16F7E) || // Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG + 0x1D166 == code || // Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM + 0x1D16D == code // Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT + ){ + return SpacingMark; + } + + + if( + (0x1100 <= code && code <= 0x115F) || // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER + (0xA960 <= code && code <= 0xA97C) // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH + ){ + return L; + } + + if( + (0x1160 <= code && code <= 0x11A7) || // Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE + (0xD7B0 <= code && code <= 0xD7C6) // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E + ){ + return V; + } + + + if( + (0x11A8 <= code && code <= 0x11FF) || // Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN + (0xD7CB <= code && code <= 0xD7FB) // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH + ){ + return T; + } + + if( + 0xAC00 == code || // Lo HANGUL SYLLABLE GA + 0xAC1C == code || // Lo HANGUL SYLLABLE GAE + 0xAC38 == code || // Lo HANGUL SYLLABLE GYA + 0xAC54 == code || // Lo HANGUL SYLLABLE GYAE + 0xAC70 == code || // Lo HANGUL SYLLABLE GEO + 0xAC8C == code || // Lo HANGUL SYLLABLE GE + 0xACA8 == code || // Lo HANGUL SYLLABLE GYEO + 0xACC4 == code || // Lo HANGUL SYLLABLE GYE + 0xACE0 == code || // Lo HANGUL SYLLABLE GO + 0xACFC == code || // Lo HANGUL SYLLABLE GWA + 0xAD18 == code || // Lo HANGUL SYLLABLE GWAE + 0xAD34 == code || // Lo HANGUL SYLLABLE GOE + 0xAD50 == code || // Lo HANGUL SYLLABLE GYO + 0xAD6C == code || // Lo HANGUL SYLLABLE GU + 0xAD88 == code || // Lo HANGUL SYLLABLE GWEO + 0xADA4 == code || // Lo HANGUL SYLLABLE GWE + 0xADC0 == code || // Lo HANGUL SYLLABLE GWI + 0xADDC == code || // Lo HANGUL SYLLABLE GYU + 0xADF8 == code || // Lo HANGUL SYLLABLE GEU + 0xAE14 == code || // Lo HANGUL SYLLABLE GYI + 0xAE30 == code || // Lo HANGUL SYLLABLE GI + 0xAE4C == code || // Lo HANGUL SYLLABLE GGA + 0xAE68 == code || // Lo HANGUL SYLLABLE GGAE + 0xAE84 == code || // Lo HANGUL SYLLABLE GGYA + 0xAEA0 == code || // Lo HANGUL SYLLABLE GGYAE + 0xAEBC == code || // Lo HANGUL SYLLABLE GGEO + 0xAED8 == code || // Lo HANGUL SYLLABLE GGE + 0xAEF4 == code || // Lo HANGUL SYLLABLE GGYEO + 0xAF10 == code || // Lo HANGUL SYLLABLE GGYE + 0xAF2C == code || // Lo HANGUL SYLLABLE GGO + 0xAF48 == code || // Lo HANGUL SYLLABLE GGWA + 0xAF64 == code || // Lo HANGUL SYLLABLE GGWAE + 0xAF80 == code || // Lo HANGUL SYLLABLE GGOE + 0xAF9C == code || // Lo HANGUL SYLLABLE GGYO + 0xAFB8 == code || // Lo HANGUL SYLLABLE GGU + 0xAFD4 == code || // Lo HANGUL SYLLABLE GGWEO + 0xAFF0 == code || // Lo HANGUL SYLLABLE GGWE + 0xB00C == code || // Lo HANGUL SYLLABLE GGWI + 0xB028 == code || // Lo HANGUL SYLLABLE GGYU + 0xB044 == code || // Lo HANGUL SYLLABLE GGEU + 0xB060 == code || // Lo HANGUL SYLLABLE GGYI + 0xB07C == code || // Lo HANGUL SYLLABLE GGI + 0xB098 == code || // Lo HANGUL SYLLABLE NA + 0xB0B4 == code || // Lo HANGUL SYLLABLE NAE + 0xB0D0 == code || // Lo HANGUL SYLLABLE NYA + 0xB0EC == code || // Lo HANGUL SYLLABLE NYAE + 0xB108 == code || // Lo HANGUL SYLLABLE NEO + 0xB124 == code || // Lo HANGUL SYLLABLE NE + 0xB140 == code || // Lo HANGUL SYLLABLE NYEO + 0xB15C == code || // Lo HANGUL SYLLABLE NYE + 0xB178 == code || // Lo HANGUL SYLLABLE NO + 0xB194 == code || // Lo HANGUL SYLLABLE NWA + 0xB1B0 == code || // Lo HANGUL SYLLABLE NWAE + 0xB1CC == code || // Lo HANGUL SYLLABLE NOE + 0xB1E8 == code || // Lo HANGUL SYLLABLE NYO + 0xB204 == code || // Lo HANGUL SYLLABLE NU + 0xB220 == code || // Lo HANGUL SYLLABLE NWEO + 0xB23C == code || // Lo HANGUL SYLLABLE NWE + 0xB258 == code || // Lo HANGUL SYLLABLE NWI + 0xB274 == code || // Lo HANGUL SYLLABLE NYU + 0xB290 == code || // Lo HANGUL SYLLABLE NEU + 0xB2AC == code || // Lo HANGUL SYLLABLE NYI + 0xB2C8 == code || // Lo HANGUL SYLLABLE NI + 0xB2E4 == code || // Lo HANGUL SYLLABLE DA + 0xB300 == code || // Lo HANGUL SYLLABLE DAE + 0xB31C == code || // Lo HANGUL SYLLABLE DYA + 0xB338 == code || // Lo HANGUL SYLLABLE DYAE + 0xB354 == code || // Lo HANGUL SYLLABLE DEO + 0xB370 == code || // Lo HANGUL SYLLABLE DE + 0xB38C == code || // Lo HANGUL SYLLABLE DYEO + 0xB3A8 == code || // Lo HANGUL SYLLABLE DYE + 0xB3C4 == code || // Lo HANGUL SYLLABLE DO + 0xB3E0 == code || // Lo HANGUL SYLLABLE DWA + 0xB3FC == code || // Lo HANGUL SYLLABLE DWAE + 0xB418 == code || // Lo HANGUL SYLLABLE DOE + 0xB434 == code || // Lo HANGUL SYLLABLE DYO + 0xB450 == code || // Lo HANGUL SYLLABLE DU + 0xB46C == code || // Lo HANGUL SYLLABLE DWEO + 0xB488 == code || // Lo HANGUL SYLLABLE DWE + 0xB4A4 == code || // Lo HANGUL SYLLABLE DWI + 0xB4C0 == code || // Lo HANGUL SYLLABLE DYU + 0xB4DC == code || // Lo HANGUL SYLLABLE DEU + 0xB4F8 == code || // Lo HANGUL SYLLABLE DYI + 0xB514 == code || // Lo HANGUL SYLLABLE DI + 0xB530 == code || // Lo HANGUL SYLLABLE DDA + 0xB54C == code || // Lo HANGUL SYLLABLE DDAE + 0xB568 == code || // Lo HANGUL SYLLABLE DDYA + 0xB584 == code || // Lo HANGUL SYLLABLE DDYAE + 0xB5A0 == code || // Lo HANGUL SYLLABLE DDEO + 0xB5BC == code || // Lo HANGUL SYLLABLE DDE + 0xB5D8 == code || // Lo HANGUL SYLLABLE DDYEO + 0xB5F4 == code || // Lo HANGUL SYLLABLE DDYE + 0xB610 == code || // Lo HANGUL SYLLABLE DDO + 0xB62C == code || // Lo HANGUL SYLLABLE DDWA + 0xB648 == code || // Lo HANGUL SYLLABLE DDWAE + 0xB664 == code || // Lo HANGUL SYLLABLE DDOE + 0xB680 == code || // Lo HANGUL SYLLABLE DDYO + 0xB69C == code || // Lo HANGUL SYLLABLE DDU + 0xB6B8 == code || // Lo HANGUL SYLLABLE DDWEO + 0xB6D4 == code || // Lo HANGUL SYLLABLE DDWE + 0xB6F0 == code || // Lo HANGUL SYLLABLE DDWI + 0xB70C == code || // Lo HANGUL SYLLABLE DDYU + 0xB728 == code || // Lo HANGUL SYLLABLE DDEU + 0xB744 == code || // Lo HANGUL SYLLABLE DDYI + 0xB760 == code || // Lo HANGUL SYLLABLE DDI + 0xB77C == code || // Lo HANGUL SYLLABLE RA + 0xB798 == code || // Lo HANGUL SYLLABLE RAE + 0xB7B4 == code || // Lo HANGUL SYLLABLE RYA + 0xB7D0 == code || // Lo HANGUL SYLLABLE RYAE + 0xB7EC == code || // Lo HANGUL SYLLABLE REO + 0xB808 == code || // Lo HANGUL SYLLABLE RE + 0xB824 == code || // Lo HANGUL SYLLABLE RYEO + 0xB840 == code || // Lo HANGUL SYLLABLE RYE + 0xB85C == code || // Lo HANGUL SYLLABLE RO + 0xB878 == code || // Lo HANGUL SYLLABLE RWA + 0xB894 == code || // Lo HANGUL SYLLABLE RWAE + 0xB8B0 == code || // Lo HANGUL SYLLABLE ROE + 0xB8CC == code || // Lo HANGUL SYLLABLE RYO + 0xB8E8 == code || // Lo HANGUL SYLLABLE RU + 0xB904 == code || // Lo HANGUL SYLLABLE RWEO + 0xB920 == code || // Lo HANGUL SYLLABLE RWE + 0xB93C == code || // Lo HANGUL SYLLABLE RWI + 0xB958 == code || // Lo HANGUL SYLLABLE RYU + 0xB974 == code || // Lo HANGUL SYLLABLE REU + 0xB990 == code || // Lo HANGUL SYLLABLE RYI + 0xB9AC == code || // Lo HANGUL SYLLABLE RI + 0xB9C8 == code || // Lo HANGUL SYLLABLE MA + 0xB9E4 == code || // Lo HANGUL SYLLABLE MAE + 0xBA00 == code || // Lo HANGUL SYLLABLE MYA + 0xBA1C == code || // Lo HANGUL SYLLABLE MYAE + 0xBA38 == code || // Lo HANGUL SYLLABLE MEO + 0xBA54 == code || // Lo HANGUL SYLLABLE ME + 0xBA70 == code || // Lo HANGUL SYLLABLE MYEO + 0xBA8C == code || // Lo HANGUL SYLLABLE MYE + 0xBAA8 == code || // Lo HANGUL SYLLABLE MO + 0xBAC4 == code || // Lo HANGUL SYLLABLE MWA + 0xBAE0 == code || // Lo HANGUL SYLLABLE MWAE + 0xBAFC == code || // Lo HANGUL SYLLABLE MOE + 0xBB18 == code || // Lo HANGUL SYLLABLE MYO + 0xBB34 == code || // Lo HANGUL SYLLABLE MU + 0xBB50 == code || // Lo HANGUL SYLLABLE MWEO + 0xBB6C == code || // Lo HANGUL SYLLABLE MWE + 0xBB88 == code || // Lo HANGUL SYLLABLE MWI + 0xBBA4 == code || // Lo HANGUL SYLLABLE MYU + 0xBBC0 == code || // Lo HANGUL SYLLABLE MEU + 0xBBDC == code || // Lo HANGUL SYLLABLE MYI + 0xBBF8 == code || // Lo HANGUL SYLLABLE MI + 0xBC14 == code || // Lo HANGUL SYLLABLE BA + 0xBC30 == code || // Lo HANGUL SYLLABLE BAE + 0xBC4C == code || // Lo HANGUL SYLLABLE BYA + 0xBC68 == code || // Lo HANGUL SYLLABLE BYAE + 0xBC84 == code || // Lo HANGUL SYLLABLE BEO + 0xBCA0 == code || // Lo HANGUL SYLLABLE BE + 0xBCBC == code || // Lo HANGUL SYLLABLE BYEO + 0xBCD8 == code || // Lo HANGUL SYLLABLE BYE + 0xBCF4 == code || // Lo HANGUL SYLLABLE BO + 0xBD10 == code || // Lo HANGUL SYLLABLE BWA + 0xBD2C == code || // Lo HANGUL SYLLABLE BWAE + 0xBD48 == code || // Lo HANGUL SYLLABLE BOE + 0xBD64 == code || // Lo HANGUL SYLLABLE BYO + 0xBD80 == code || // Lo HANGUL SYLLABLE BU + 0xBD9C == code || // Lo HANGUL SYLLABLE BWEO + 0xBDB8 == code || // Lo HANGUL SYLLABLE BWE + 0xBDD4 == code || // Lo HANGUL SYLLABLE BWI + 0xBDF0 == code || // Lo HANGUL SYLLABLE BYU + 0xBE0C == code || // Lo HANGUL SYLLABLE BEU + 0xBE28 == code || // Lo HANGUL SYLLABLE BYI + 0xBE44 == code || // Lo HANGUL SYLLABLE BI + 0xBE60 == code || // Lo HANGUL SYLLABLE BBA + 0xBE7C == code || // Lo HANGUL SYLLABLE BBAE + 0xBE98 == code || // Lo HANGUL SYLLABLE BBYA + 0xBEB4 == code || // Lo HANGUL SYLLABLE BBYAE + 0xBED0 == code || // Lo HANGUL SYLLABLE BBEO + 0xBEEC == code || // Lo HANGUL SYLLABLE BBE + 0xBF08 == code || // Lo HANGUL SYLLABLE BBYEO + 0xBF24 == code || // Lo HANGUL SYLLABLE BBYE + 0xBF40 == code || // Lo HANGUL SYLLABLE BBO + 0xBF5C == code || // Lo HANGUL SYLLABLE BBWA + 0xBF78 == code || // Lo HANGUL SYLLABLE BBWAE + 0xBF94 == code || // Lo HANGUL SYLLABLE BBOE + 0xBFB0 == code || // Lo HANGUL SYLLABLE BBYO + 0xBFCC == code || // Lo HANGUL SYLLABLE BBU + 0xBFE8 == code || // Lo HANGUL SYLLABLE BBWEO + 0xC004 == code || // Lo HANGUL SYLLABLE BBWE + 0xC020 == code || // Lo HANGUL SYLLABLE BBWI + 0xC03C == code || // Lo HANGUL SYLLABLE BBYU + 0xC058 == code || // Lo HANGUL SYLLABLE BBEU + 0xC074 == code || // Lo HANGUL SYLLABLE BBYI + 0xC090 == code || // Lo HANGUL SYLLABLE BBI + 0xC0AC == code || // Lo HANGUL SYLLABLE SA + 0xC0C8 == code || // Lo HANGUL SYLLABLE SAE + 0xC0E4 == code || // Lo HANGUL SYLLABLE SYA + 0xC100 == code || // Lo HANGUL SYLLABLE SYAE + 0xC11C == code || // Lo HANGUL SYLLABLE SEO + 0xC138 == code || // Lo HANGUL SYLLABLE SE + 0xC154 == code || // Lo HANGUL SYLLABLE SYEO + 0xC170 == code || // Lo HANGUL SYLLABLE SYE + 0xC18C == code || // Lo HANGUL SYLLABLE SO + 0xC1A8 == code || // Lo HANGUL SYLLABLE SWA + 0xC1C4 == code || // Lo HANGUL SYLLABLE SWAE + 0xC1E0 == code || // Lo HANGUL SYLLABLE SOE + 0xC1FC == code || // Lo HANGUL SYLLABLE SYO + 0xC218 == code || // Lo HANGUL SYLLABLE SU + 0xC234 == code || // Lo HANGUL SYLLABLE SWEO + 0xC250 == code || // Lo HANGUL SYLLABLE SWE + 0xC26C == code || // Lo HANGUL SYLLABLE SWI + 0xC288 == code || // Lo HANGUL SYLLABLE SYU + 0xC2A4 == code || // Lo HANGUL SYLLABLE SEU + 0xC2C0 == code || // Lo HANGUL SYLLABLE SYI + 0xC2DC == code || // Lo HANGUL SYLLABLE SI + 0xC2F8 == code || // Lo HANGUL SYLLABLE SSA + 0xC314 == code || // Lo HANGUL SYLLABLE SSAE + 0xC330 == code || // Lo HANGUL SYLLABLE SSYA + 0xC34C == code || // Lo HANGUL SYLLABLE SSYAE + 0xC368 == code || // Lo HANGUL SYLLABLE SSEO + 0xC384 == code || // Lo HANGUL SYLLABLE SSE + 0xC3A0 == code || // Lo HANGUL SYLLABLE SSYEO + 0xC3BC == code || // Lo HANGUL SYLLABLE SSYE + 0xC3D8 == code || // Lo HANGUL SYLLABLE SSO + 0xC3F4 == code || // Lo HANGUL SYLLABLE SSWA + 0xC410 == code || // Lo HANGUL SYLLABLE SSWAE + 0xC42C == code || // Lo HANGUL SYLLABLE SSOE + 0xC448 == code || // Lo HANGUL SYLLABLE SSYO + 0xC464 == code || // Lo HANGUL SYLLABLE SSU + 0xC480 == code || // Lo HANGUL SYLLABLE SSWEO + 0xC49C == code || // Lo HANGUL SYLLABLE SSWE + 0xC4B8 == code || // Lo HANGUL SYLLABLE SSWI + 0xC4D4 == code || // Lo HANGUL SYLLABLE SSYU + 0xC4F0 == code || // Lo HANGUL SYLLABLE SSEU + 0xC50C == code || // Lo HANGUL SYLLABLE SSYI + 0xC528 == code || // Lo HANGUL SYLLABLE SSI + 0xC544 == code || // Lo HANGUL SYLLABLE A + 0xC560 == code || // Lo HANGUL SYLLABLE AE + 0xC57C == code || // Lo HANGUL SYLLABLE YA + 0xC598 == code || // Lo HANGUL SYLLABLE YAE + 0xC5B4 == code || // Lo HANGUL SYLLABLE EO + 0xC5D0 == code || // Lo HANGUL SYLLABLE E + 0xC5EC == code || // Lo HANGUL SYLLABLE YEO + 0xC608 == code || // Lo HANGUL SYLLABLE YE + 0xC624 == code || // Lo HANGUL SYLLABLE O + 0xC640 == code || // Lo HANGUL SYLLABLE WA + 0xC65C == code || // Lo HANGUL SYLLABLE WAE + 0xC678 == code || // Lo HANGUL SYLLABLE OE + 0xC694 == code || // Lo HANGUL SYLLABLE YO + 0xC6B0 == code || // Lo HANGUL SYLLABLE U + 0xC6CC == code || // Lo HANGUL SYLLABLE WEO + 0xC6E8 == code || // Lo HANGUL SYLLABLE WE + 0xC704 == code || // Lo HANGUL SYLLABLE WI + 0xC720 == code || // Lo HANGUL SYLLABLE YU + 0xC73C == code || // Lo HANGUL SYLLABLE EU + 0xC758 == code || // Lo HANGUL SYLLABLE YI + 0xC774 == code || // Lo HANGUL SYLLABLE I + 0xC790 == code || // Lo HANGUL SYLLABLE JA + 0xC7AC == code || // Lo HANGUL SYLLABLE JAE + 0xC7C8 == code || // Lo HANGUL SYLLABLE JYA + 0xC7E4 == code || // Lo HANGUL SYLLABLE JYAE + 0xC800 == code || // Lo HANGUL SYLLABLE JEO + 0xC81C == code || // Lo HANGUL SYLLABLE JE + 0xC838 == code || // Lo HANGUL SYLLABLE JYEO + 0xC854 == code || // Lo HANGUL SYLLABLE JYE + 0xC870 == code || // Lo HANGUL SYLLABLE JO + 0xC88C == code || // Lo HANGUL SYLLABLE JWA + 0xC8A8 == code || // Lo HANGUL SYLLABLE JWAE + 0xC8C4 == code || // Lo HANGUL SYLLABLE JOE + 0xC8E0 == code || // Lo HANGUL SYLLABLE JYO + 0xC8FC == code || // Lo HANGUL SYLLABLE JU + 0xC918 == code || // Lo HANGUL SYLLABLE JWEO + 0xC934 == code || // Lo HANGUL SYLLABLE JWE + 0xC950 == code || // Lo HANGUL SYLLABLE JWI + 0xC96C == code || // Lo HANGUL SYLLABLE JYU + 0xC988 == code || // Lo HANGUL SYLLABLE JEU + 0xC9A4 == code || // Lo HANGUL SYLLABLE JYI + 0xC9C0 == code || // Lo HANGUL SYLLABLE JI + 0xC9DC == code || // Lo HANGUL SYLLABLE JJA + 0xC9F8 == code || // Lo HANGUL SYLLABLE JJAE + 0xCA14 == code || // Lo HANGUL SYLLABLE JJYA + 0xCA30 == code || // Lo HANGUL SYLLABLE JJYAE + 0xCA4C == code || // Lo HANGUL SYLLABLE JJEO + 0xCA68 == code || // Lo HANGUL SYLLABLE JJE + 0xCA84 == code || // Lo HANGUL SYLLABLE JJYEO + 0xCAA0 == code || // Lo HANGUL SYLLABLE JJYE + 0xCABC == code || // Lo HANGUL SYLLABLE JJO + 0xCAD8 == code || // Lo HANGUL SYLLABLE JJWA + 0xCAF4 == code || // Lo HANGUL SYLLABLE JJWAE + 0xCB10 == code || // Lo HANGUL SYLLABLE JJOE + 0xCB2C == code || // Lo HANGUL SYLLABLE JJYO + 0xCB48 == code || // Lo HANGUL SYLLABLE JJU + 0xCB64 == code || // Lo HANGUL SYLLABLE JJWEO + 0xCB80 == code || // Lo HANGUL SYLLABLE JJWE + 0xCB9C == code || // Lo HANGUL SYLLABLE JJWI + 0xCBB8 == code || // Lo HANGUL SYLLABLE JJYU + 0xCBD4 == code || // Lo HANGUL SYLLABLE JJEU + 0xCBF0 == code || // Lo HANGUL SYLLABLE JJYI + 0xCC0C == code || // Lo HANGUL SYLLABLE JJI + 0xCC28 == code || // Lo HANGUL SYLLABLE CA + 0xCC44 == code || // Lo HANGUL SYLLABLE CAE + 0xCC60 == code || // Lo HANGUL SYLLABLE CYA + 0xCC7C == code || // Lo HANGUL SYLLABLE CYAE + 0xCC98 == code || // Lo HANGUL SYLLABLE CEO + 0xCCB4 == code || // Lo HANGUL SYLLABLE CE + 0xCCD0 == code || // Lo HANGUL SYLLABLE CYEO + 0xCCEC == code || // Lo HANGUL SYLLABLE CYE + 0xCD08 == code || // Lo HANGUL SYLLABLE CO + 0xCD24 == code || // Lo HANGUL SYLLABLE CWA + 0xCD40 == code || // Lo HANGUL SYLLABLE CWAE + 0xCD5C == code || // Lo HANGUL SYLLABLE COE + 0xCD78 == code || // Lo HANGUL SYLLABLE CYO + 0xCD94 == code || // Lo HANGUL SYLLABLE CU + 0xCDB0 == code || // Lo HANGUL SYLLABLE CWEO + 0xCDCC == code || // Lo HANGUL SYLLABLE CWE + 0xCDE8 == code || // Lo HANGUL SYLLABLE CWI + 0xCE04 == code || // Lo HANGUL SYLLABLE CYU + 0xCE20 == code || // Lo HANGUL SYLLABLE CEU + 0xCE3C == code || // Lo HANGUL SYLLABLE CYI + 0xCE58 == code || // Lo HANGUL SYLLABLE CI + 0xCE74 == code || // Lo HANGUL SYLLABLE KA + 0xCE90 == code || // Lo HANGUL SYLLABLE KAE + 0xCEAC == code || // Lo HANGUL SYLLABLE KYA + 0xCEC8 == code || // Lo HANGUL SYLLABLE KYAE + 0xCEE4 == code || // Lo HANGUL SYLLABLE KEO + 0xCF00 == code || // Lo HANGUL SYLLABLE KE + 0xCF1C == code || // Lo HANGUL SYLLABLE KYEO + 0xCF38 == code || // Lo HANGUL SYLLABLE KYE + 0xCF54 == code || // Lo HANGUL SYLLABLE KO + 0xCF70 == code || // Lo HANGUL SYLLABLE KWA + 0xCF8C == code || // Lo HANGUL SYLLABLE KWAE + 0xCFA8 == code || // Lo HANGUL SYLLABLE KOE + 0xCFC4 == code || // Lo HANGUL SYLLABLE KYO + 0xCFE0 == code || // Lo HANGUL SYLLABLE KU + 0xCFFC == code || // Lo HANGUL SYLLABLE KWEO + 0xD018 == code || // Lo HANGUL SYLLABLE KWE + 0xD034 == code || // Lo HANGUL SYLLABLE KWI + 0xD050 == code || // Lo HANGUL SYLLABLE KYU + 0xD06C == code || // Lo HANGUL SYLLABLE KEU + 0xD088 == code || // Lo HANGUL SYLLABLE KYI + 0xD0A4 == code || // Lo HANGUL SYLLABLE KI + 0xD0C0 == code || // Lo HANGUL SYLLABLE TA + 0xD0DC == code || // Lo HANGUL SYLLABLE TAE + 0xD0F8 == code || // Lo HANGUL SYLLABLE TYA + 0xD114 == code || // Lo HANGUL SYLLABLE TYAE + 0xD130 == code || // Lo HANGUL SYLLABLE TEO + 0xD14C == code || // Lo HANGUL SYLLABLE TE + 0xD168 == code || // Lo HANGUL SYLLABLE TYEO + 0xD184 == code || // Lo HANGUL SYLLABLE TYE + 0xD1A0 == code || // Lo HANGUL SYLLABLE TO + 0xD1BC == code || // Lo HANGUL SYLLABLE TWA + 0xD1D8 == code || // Lo HANGUL SYLLABLE TWAE + 0xD1F4 == code || // Lo HANGUL SYLLABLE TOE + 0xD210 == code || // Lo HANGUL SYLLABLE TYO + 0xD22C == code || // Lo HANGUL SYLLABLE TU + 0xD248 == code || // Lo HANGUL SYLLABLE TWEO + 0xD264 == code || // Lo HANGUL SYLLABLE TWE + 0xD280 == code || // Lo HANGUL SYLLABLE TWI + 0xD29C == code || // Lo HANGUL SYLLABLE TYU + 0xD2B8 == code || // Lo HANGUL SYLLABLE TEU + 0xD2D4 == code || // Lo HANGUL SYLLABLE TYI + 0xD2F0 == code || // Lo HANGUL SYLLABLE TI + 0xD30C == code || // Lo HANGUL SYLLABLE PA + 0xD328 == code || // Lo HANGUL SYLLABLE PAE + 0xD344 == code || // Lo HANGUL SYLLABLE PYA + 0xD360 == code || // Lo HANGUL SYLLABLE PYAE + 0xD37C == code || // Lo HANGUL SYLLABLE PEO + 0xD398 == code || // Lo HANGUL SYLLABLE PE + 0xD3B4 == code || // Lo HANGUL SYLLABLE PYEO + 0xD3D0 == code || // Lo HANGUL SYLLABLE PYE + 0xD3EC == code || // Lo HANGUL SYLLABLE PO + 0xD408 == code || // Lo HANGUL SYLLABLE PWA + 0xD424 == code || // Lo HANGUL SYLLABLE PWAE + 0xD440 == code || // Lo HANGUL SYLLABLE POE + 0xD45C == code || // Lo HANGUL SYLLABLE PYO + 0xD478 == code || // Lo HANGUL SYLLABLE PU + 0xD494 == code || // Lo HANGUL SYLLABLE PWEO + 0xD4B0 == code || // Lo HANGUL SYLLABLE PWE + 0xD4CC == code || // Lo HANGUL SYLLABLE PWI + 0xD4E8 == code || // Lo HANGUL SYLLABLE PYU + 0xD504 == code || // Lo HANGUL SYLLABLE PEU + 0xD520 == code || // Lo HANGUL SYLLABLE PYI + 0xD53C == code || // Lo HANGUL SYLLABLE PI + 0xD558 == code || // Lo HANGUL SYLLABLE HA + 0xD574 == code || // Lo HANGUL SYLLABLE HAE + 0xD590 == code || // Lo HANGUL SYLLABLE HYA + 0xD5AC == code || // Lo HANGUL SYLLABLE HYAE + 0xD5C8 == code || // Lo HANGUL SYLLABLE HEO + 0xD5E4 == code || // Lo HANGUL SYLLABLE HE + 0xD600 == code || // Lo HANGUL SYLLABLE HYEO + 0xD61C == code || // Lo HANGUL SYLLABLE HYE + 0xD638 == code || // Lo HANGUL SYLLABLE HO + 0xD654 == code || // Lo HANGUL SYLLABLE HWA + 0xD670 == code || // Lo HANGUL SYLLABLE HWAE + 0xD68C == code || // Lo HANGUL SYLLABLE HOE + 0xD6A8 == code || // Lo HANGUL SYLLABLE HYO + 0xD6C4 == code || // Lo HANGUL SYLLABLE HU + 0xD6E0 == code || // Lo HANGUL SYLLABLE HWEO + 0xD6FC == code || // Lo HANGUL SYLLABLE HWE + 0xD718 == code || // Lo HANGUL SYLLABLE HWI + 0xD734 == code || // Lo HANGUL SYLLABLE HYU + 0xD750 == code || // Lo HANGUL SYLLABLE HEU + 0xD76C == code || // Lo HANGUL SYLLABLE HYI + 0xD788 == code // Lo HANGUL SYLLABLE HI + ){ + return LV; + } + + if( + (0xAC01 <= code && code <= 0xAC1B) || // Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH + (0xAC1D <= code && code <= 0xAC37) || // Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH + (0xAC39 <= code && code <= 0xAC53) || // Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH + (0xAC55 <= code && code <= 0xAC6F) || // Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH + (0xAC71 <= code && code <= 0xAC8B) || // Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH + (0xAC8D <= code && code <= 0xACA7) || // Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH + (0xACA9 <= code && code <= 0xACC3) || // Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH + (0xACC5 <= code && code <= 0xACDF) || // Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH + (0xACE1 <= code && code <= 0xACFB) || // Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH + (0xACFD <= code && code <= 0xAD17) || // Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH + (0xAD19 <= code && code <= 0xAD33) || // Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH + (0xAD35 <= code && code <= 0xAD4F) || // Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH + (0xAD51 <= code && code <= 0xAD6B) || // Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH + (0xAD6D <= code && code <= 0xAD87) || // Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH + (0xAD89 <= code && code <= 0xADA3) || // Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH + (0xADA5 <= code && code <= 0xADBF) || // Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH + (0xADC1 <= code && code <= 0xADDB) || // Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH + (0xADDD <= code && code <= 0xADF7) || // Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH + (0xADF9 <= code && code <= 0xAE13) || // Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH + (0xAE15 <= code && code <= 0xAE2F) || // Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH + (0xAE31 <= code && code <= 0xAE4B) || // Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH + (0xAE4D <= code && code <= 0xAE67) || // Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH + (0xAE69 <= code && code <= 0xAE83) || // Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH + (0xAE85 <= code && code <= 0xAE9F) || // Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH + (0xAEA1 <= code && code <= 0xAEBB) || // Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH + (0xAEBD <= code && code <= 0xAED7) || // Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH + (0xAED9 <= code && code <= 0xAEF3) || // Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH + (0xAEF5 <= code && code <= 0xAF0F) || // Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH + (0xAF11 <= code && code <= 0xAF2B) || // Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH + (0xAF2D <= code && code <= 0xAF47) || // Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH + (0xAF49 <= code && code <= 0xAF63) || // Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH + (0xAF65 <= code && code <= 0xAF7F) || // Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH + (0xAF81 <= code && code <= 0xAF9B) || // Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH + (0xAF9D <= code && code <= 0xAFB7) || // Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH + (0xAFB9 <= code && code <= 0xAFD3) || // Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH + (0xAFD5 <= code && code <= 0xAFEF) || // Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH + (0xAFF1 <= code && code <= 0xB00B) || // Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH + (0xB00D <= code && code <= 0xB027) || // Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH + (0xB029 <= code && code <= 0xB043) || // Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH + (0xB045 <= code && code <= 0xB05F) || // Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH + (0xB061 <= code && code <= 0xB07B) || // Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH + (0xB07D <= code && code <= 0xB097) || // Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH + (0xB099 <= code && code <= 0xB0B3) || // Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH + (0xB0B5 <= code && code <= 0xB0CF) || // Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH + (0xB0D1 <= code && code <= 0xB0EB) || // Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH + (0xB0ED <= code && code <= 0xB107) || // Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH + (0xB109 <= code && code <= 0xB123) || // Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH + (0xB125 <= code && code <= 0xB13F) || // Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH + (0xB141 <= code && code <= 0xB15B) || // Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH + (0xB15D <= code && code <= 0xB177) || // Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH + (0xB179 <= code && code <= 0xB193) || // Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH + (0xB195 <= code && code <= 0xB1AF) || // Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH + (0xB1B1 <= code && code <= 0xB1CB) || // Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH + (0xB1CD <= code && code <= 0xB1E7) || // Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH + (0xB1E9 <= code && code <= 0xB203) || // Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH + (0xB205 <= code && code <= 0xB21F) || // Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH + (0xB221 <= code && code <= 0xB23B) || // Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH + (0xB23D <= code && code <= 0xB257) || // Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH + (0xB259 <= code && code <= 0xB273) || // Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH + (0xB275 <= code && code <= 0xB28F) || // Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH + (0xB291 <= code && code <= 0xB2AB) || // Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH + (0xB2AD <= code && code <= 0xB2C7) || // Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH + (0xB2C9 <= code && code <= 0xB2E3) || // Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH + (0xB2E5 <= code && code <= 0xB2FF) || // Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH + (0xB301 <= code && code <= 0xB31B) || // Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH + (0xB31D <= code && code <= 0xB337) || // Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH + (0xB339 <= code && code <= 0xB353) || // Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH + (0xB355 <= code && code <= 0xB36F) || // Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH + (0xB371 <= code && code <= 0xB38B) || // Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH + (0xB38D <= code && code <= 0xB3A7) || // Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH + (0xB3A9 <= code && code <= 0xB3C3) || // Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH + (0xB3C5 <= code && code <= 0xB3DF) || // Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH + (0xB3E1 <= code && code <= 0xB3FB) || // Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH + (0xB3FD <= code && code <= 0xB417) || // Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH + (0xB419 <= code && code <= 0xB433) || // Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH + (0xB435 <= code && code <= 0xB44F) || // Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH + (0xB451 <= code && code <= 0xB46B) || // Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH + (0xB46D <= code && code <= 0xB487) || // Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH + (0xB489 <= code && code <= 0xB4A3) || // Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH + (0xB4A5 <= code && code <= 0xB4BF) || // Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH + (0xB4C1 <= code && code <= 0xB4DB) || // Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH + (0xB4DD <= code && code <= 0xB4F7) || // Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH + (0xB4F9 <= code && code <= 0xB513) || // Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH + (0xB515 <= code && code <= 0xB52F) || // Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH + (0xB531 <= code && code <= 0xB54B) || // Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH + (0xB54D <= code && code <= 0xB567) || // Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH + (0xB569 <= code && code <= 0xB583) || // Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH + (0xB585 <= code && code <= 0xB59F) || // Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH + (0xB5A1 <= code && code <= 0xB5BB) || // Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH + (0xB5BD <= code && code <= 0xB5D7) || // Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH + (0xB5D9 <= code && code <= 0xB5F3) || // Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH + (0xB5F5 <= code && code <= 0xB60F) || // Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH + (0xB611 <= code && code <= 0xB62B) || // Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH + (0xB62D <= code && code <= 0xB647) || // Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH + (0xB649 <= code && code <= 0xB663) || // Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH + (0xB665 <= code && code <= 0xB67F) || // Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH + (0xB681 <= code && code <= 0xB69B) || // Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH + (0xB69D <= code && code <= 0xB6B7) || // Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH + (0xB6B9 <= code && code <= 0xB6D3) || // Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH + (0xB6D5 <= code && code <= 0xB6EF) || // Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH + (0xB6F1 <= code && code <= 0xB70B) || // Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH + (0xB70D <= code && code <= 0xB727) || // Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH + (0xB729 <= code && code <= 0xB743) || // Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH + (0xB745 <= code && code <= 0xB75F) || // Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH + (0xB761 <= code && code <= 0xB77B) || // Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH + (0xB77D <= code && code <= 0xB797) || // Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH + (0xB799 <= code && code <= 0xB7B3) || // Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH + (0xB7B5 <= code && code <= 0xB7CF) || // Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH + (0xB7D1 <= code && code <= 0xB7EB) || // Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH + (0xB7ED <= code && code <= 0xB807) || // Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH + (0xB809 <= code && code <= 0xB823) || // Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH + (0xB825 <= code && code <= 0xB83F) || // Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH + (0xB841 <= code && code <= 0xB85B) || // Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH + (0xB85D <= code && code <= 0xB877) || // Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH + (0xB879 <= code && code <= 0xB893) || // Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH + (0xB895 <= code && code <= 0xB8AF) || // Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH + (0xB8B1 <= code && code <= 0xB8CB) || // Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH + (0xB8CD <= code && code <= 0xB8E7) || // Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH + (0xB8E9 <= code && code <= 0xB903) || // Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH + (0xB905 <= code && code <= 0xB91F) || // Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH + (0xB921 <= code && code <= 0xB93B) || // Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH + (0xB93D <= code && code <= 0xB957) || // Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH + (0xB959 <= code && code <= 0xB973) || // Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH + (0xB975 <= code && code <= 0xB98F) || // Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH + (0xB991 <= code && code <= 0xB9AB) || // Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH + (0xB9AD <= code && code <= 0xB9C7) || // Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH + (0xB9C9 <= code && code <= 0xB9E3) || // Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH + (0xB9E5 <= code && code <= 0xB9FF) || // Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH + (0xBA01 <= code && code <= 0xBA1B) || // Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH + (0xBA1D <= code && code <= 0xBA37) || // Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH + (0xBA39 <= code && code <= 0xBA53) || // Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH + (0xBA55 <= code && code <= 0xBA6F) || // Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH + (0xBA71 <= code && code <= 0xBA8B) || // Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH + (0xBA8D <= code && code <= 0xBAA7) || // Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH + (0xBAA9 <= code && code <= 0xBAC3) || // Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH + (0xBAC5 <= code && code <= 0xBADF) || // Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH + (0xBAE1 <= code && code <= 0xBAFB) || // Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH + (0xBAFD <= code && code <= 0xBB17) || // Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH + (0xBB19 <= code && code <= 0xBB33) || // Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH + (0xBB35 <= code && code <= 0xBB4F) || // Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH + (0xBB51 <= code && code <= 0xBB6B) || // Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH + (0xBB6D <= code && code <= 0xBB87) || // Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH + (0xBB89 <= code && code <= 0xBBA3) || // Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH + (0xBBA5 <= code && code <= 0xBBBF) || // Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH + (0xBBC1 <= code && code <= 0xBBDB) || // Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH + (0xBBDD <= code && code <= 0xBBF7) || // Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH + (0xBBF9 <= code && code <= 0xBC13) || // Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH + (0xBC15 <= code && code <= 0xBC2F) || // Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH + (0xBC31 <= code && code <= 0xBC4B) || // Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH + (0xBC4D <= code && code <= 0xBC67) || // Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH + (0xBC69 <= code && code <= 0xBC83) || // Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH + (0xBC85 <= code && code <= 0xBC9F) || // Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH + (0xBCA1 <= code && code <= 0xBCBB) || // Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH + (0xBCBD <= code && code <= 0xBCD7) || // Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH + (0xBCD9 <= code && code <= 0xBCF3) || // Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH + (0xBCF5 <= code && code <= 0xBD0F) || // Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH + (0xBD11 <= code && code <= 0xBD2B) || // Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH + (0xBD2D <= code && code <= 0xBD47) || // Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH + (0xBD49 <= code && code <= 0xBD63) || // Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH + (0xBD65 <= code && code <= 0xBD7F) || // Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH + (0xBD81 <= code && code <= 0xBD9B) || // Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH + (0xBD9D <= code && code <= 0xBDB7) || // Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH + (0xBDB9 <= code && code <= 0xBDD3) || // Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH + (0xBDD5 <= code && code <= 0xBDEF) || // Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH + (0xBDF1 <= code && code <= 0xBE0B) || // Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH + (0xBE0D <= code && code <= 0xBE27) || // Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH + (0xBE29 <= code && code <= 0xBE43) || // Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH + (0xBE45 <= code && code <= 0xBE5F) || // Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH + (0xBE61 <= code && code <= 0xBE7B) || // Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH + (0xBE7D <= code && code <= 0xBE97) || // Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH + (0xBE99 <= code && code <= 0xBEB3) || // Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH + (0xBEB5 <= code && code <= 0xBECF) || // Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH + (0xBED1 <= code && code <= 0xBEEB) || // Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH + (0xBEED <= code && code <= 0xBF07) || // Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH + (0xBF09 <= code && code <= 0xBF23) || // Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH + (0xBF25 <= code && code <= 0xBF3F) || // Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH + (0xBF41 <= code && code <= 0xBF5B) || // Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH + (0xBF5D <= code && code <= 0xBF77) || // Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH + (0xBF79 <= code && code <= 0xBF93) || // Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH + (0xBF95 <= code && code <= 0xBFAF) || // Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH + (0xBFB1 <= code && code <= 0xBFCB) || // Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH + (0xBFCD <= code && code <= 0xBFE7) || // Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH + (0xBFE9 <= code && code <= 0xC003) || // Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH + (0xC005 <= code && code <= 0xC01F) || // Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH + (0xC021 <= code && code <= 0xC03B) || // Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH + (0xC03D <= code && code <= 0xC057) || // Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH + (0xC059 <= code && code <= 0xC073) || // Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH + (0xC075 <= code && code <= 0xC08F) || // Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH + (0xC091 <= code && code <= 0xC0AB) || // Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH + (0xC0AD <= code && code <= 0xC0C7) || // Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH + (0xC0C9 <= code && code <= 0xC0E3) || // Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH + (0xC0E5 <= code && code <= 0xC0FF) || // Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH + (0xC101 <= code && code <= 0xC11B) || // Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH + (0xC11D <= code && code <= 0xC137) || // Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH + (0xC139 <= code && code <= 0xC153) || // Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH + (0xC155 <= code && code <= 0xC16F) || // Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH + (0xC171 <= code && code <= 0xC18B) || // Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH + (0xC18D <= code && code <= 0xC1A7) || // Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH + (0xC1A9 <= code && code <= 0xC1C3) || // Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH + (0xC1C5 <= code && code <= 0xC1DF) || // Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH + (0xC1E1 <= code && code <= 0xC1FB) || // Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH + (0xC1FD <= code && code <= 0xC217) || // Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH + (0xC219 <= code && code <= 0xC233) || // Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH + (0xC235 <= code && code <= 0xC24F) || // Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH + (0xC251 <= code && code <= 0xC26B) || // Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH + (0xC26D <= code && code <= 0xC287) || // Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH + (0xC289 <= code && code <= 0xC2A3) || // Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH + (0xC2A5 <= code && code <= 0xC2BF) || // Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH + (0xC2C1 <= code && code <= 0xC2DB) || // Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH + (0xC2DD <= code && code <= 0xC2F7) || // Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH + (0xC2F9 <= code && code <= 0xC313) || // Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH + (0xC315 <= code && code <= 0xC32F) || // Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH + (0xC331 <= code && code <= 0xC34B) || // Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH + (0xC34D <= code && code <= 0xC367) || // Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH + (0xC369 <= code && code <= 0xC383) || // Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH + (0xC385 <= code && code <= 0xC39F) || // Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH + (0xC3A1 <= code && code <= 0xC3BB) || // Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH + (0xC3BD <= code && code <= 0xC3D7) || // Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH + (0xC3D9 <= code && code <= 0xC3F3) || // Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH + (0xC3F5 <= code && code <= 0xC40F) || // Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH + (0xC411 <= code && code <= 0xC42B) || // Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH + (0xC42D <= code && code <= 0xC447) || // Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH + (0xC449 <= code && code <= 0xC463) || // Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH + (0xC465 <= code && code <= 0xC47F) || // Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH + (0xC481 <= code && code <= 0xC49B) || // Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH + (0xC49D <= code && code <= 0xC4B7) || // Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH + (0xC4B9 <= code && code <= 0xC4D3) || // Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH + (0xC4D5 <= code && code <= 0xC4EF) || // Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH + (0xC4F1 <= code && code <= 0xC50B) || // Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH + (0xC50D <= code && code <= 0xC527) || // Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH + (0xC529 <= code && code <= 0xC543) || // Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH + (0xC545 <= code && code <= 0xC55F) || // Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH + (0xC561 <= code && code <= 0xC57B) || // Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH + (0xC57D <= code && code <= 0xC597) || // Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH + (0xC599 <= code && code <= 0xC5B3) || // Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH + (0xC5B5 <= code && code <= 0xC5CF) || // Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH + (0xC5D1 <= code && code <= 0xC5EB) || // Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH + (0xC5ED <= code && code <= 0xC607) || // Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH + (0xC609 <= code && code <= 0xC623) || // Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH + (0xC625 <= code && code <= 0xC63F) || // Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH + (0xC641 <= code && code <= 0xC65B) || // Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH + (0xC65D <= code && code <= 0xC677) || // Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH + (0xC679 <= code && code <= 0xC693) || // Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH + (0xC695 <= code && code <= 0xC6AF) || // Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH + (0xC6B1 <= code && code <= 0xC6CB) || // Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH + (0xC6CD <= code && code <= 0xC6E7) || // Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH + (0xC6E9 <= code && code <= 0xC703) || // Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH + (0xC705 <= code && code <= 0xC71F) || // Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH + (0xC721 <= code && code <= 0xC73B) || // Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH + (0xC73D <= code && code <= 0xC757) || // Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH + (0xC759 <= code && code <= 0xC773) || // Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH + (0xC775 <= code && code <= 0xC78F) || // Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH + (0xC791 <= code && code <= 0xC7AB) || // Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH + (0xC7AD <= code && code <= 0xC7C7) || // Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH + (0xC7C9 <= code && code <= 0xC7E3) || // Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH + (0xC7E5 <= code && code <= 0xC7FF) || // Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH + (0xC801 <= code && code <= 0xC81B) || // Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH + (0xC81D <= code && code <= 0xC837) || // Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH + (0xC839 <= code && code <= 0xC853) || // Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH + (0xC855 <= code && code <= 0xC86F) || // Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH + (0xC871 <= code && code <= 0xC88B) || // Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH + (0xC88D <= code && code <= 0xC8A7) || // Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH + (0xC8A9 <= code && code <= 0xC8C3) || // Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH + (0xC8C5 <= code && code <= 0xC8DF) || // Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH + (0xC8E1 <= code && code <= 0xC8FB) || // Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH + (0xC8FD <= code && code <= 0xC917) || // Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH + (0xC919 <= code && code <= 0xC933) || // Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH + (0xC935 <= code && code <= 0xC94F) || // Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH + (0xC951 <= code && code <= 0xC96B) || // Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH + (0xC96D <= code && code <= 0xC987) || // Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH + (0xC989 <= code && code <= 0xC9A3) || // Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH + (0xC9A5 <= code && code <= 0xC9BF) || // Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH + (0xC9C1 <= code && code <= 0xC9DB) || // Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH + (0xC9DD <= code && code <= 0xC9F7) || // Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH + (0xC9F9 <= code && code <= 0xCA13) || // Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH + (0xCA15 <= code && code <= 0xCA2F) || // Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH + (0xCA31 <= code && code <= 0xCA4B) || // Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH + (0xCA4D <= code && code <= 0xCA67) || // Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH + (0xCA69 <= code && code <= 0xCA83) || // Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH + (0xCA85 <= code && code <= 0xCA9F) || // Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH + (0xCAA1 <= code && code <= 0xCABB) || // Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH + (0xCABD <= code && code <= 0xCAD7) || // Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH + (0xCAD9 <= code && code <= 0xCAF3) || // Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH + (0xCAF5 <= code && code <= 0xCB0F) || // Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH + (0xCB11 <= code && code <= 0xCB2B) || // Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH + (0xCB2D <= code && code <= 0xCB47) || // Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH + (0xCB49 <= code && code <= 0xCB63) || // Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH + (0xCB65 <= code && code <= 0xCB7F) || // Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH + (0xCB81 <= code && code <= 0xCB9B) || // Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH + (0xCB9D <= code && code <= 0xCBB7) || // Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH + (0xCBB9 <= code && code <= 0xCBD3) || // Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH + (0xCBD5 <= code && code <= 0xCBEF) || // Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH + (0xCBF1 <= code && code <= 0xCC0B) || // Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH + (0xCC0D <= code && code <= 0xCC27) || // Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH + (0xCC29 <= code && code <= 0xCC43) || // Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH + (0xCC45 <= code && code <= 0xCC5F) || // Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH + (0xCC61 <= code && code <= 0xCC7B) || // Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH + (0xCC7D <= code && code <= 0xCC97) || // Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH + (0xCC99 <= code && code <= 0xCCB3) || // Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH + (0xCCB5 <= code && code <= 0xCCCF) || // Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH + (0xCCD1 <= code && code <= 0xCCEB) || // Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH + (0xCCED <= code && code <= 0xCD07) || // Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH + (0xCD09 <= code && code <= 0xCD23) || // Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH + (0xCD25 <= code && code <= 0xCD3F) || // Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH + (0xCD41 <= code && code <= 0xCD5B) || // Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH + (0xCD5D <= code && code <= 0xCD77) || // Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH + (0xCD79 <= code && code <= 0xCD93) || // Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH + (0xCD95 <= code && code <= 0xCDAF) || // Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH + (0xCDB1 <= code && code <= 0xCDCB) || // Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH + (0xCDCD <= code && code <= 0xCDE7) || // Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH + (0xCDE9 <= code && code <= 0xCE03) || // Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH + (0xCE05 <= code && code <= 0xCE1F) || // Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH + (0xCE21 <= code && code <= 0xCE3B) || // Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH + (0xCE3D <= code && code <= 0xCE57) || // Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH + (0xCE59 <= code && code <= 0xCE73) || // Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH + (0xCE75 <= code && code <= 0xCE8F) || // Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH + (0xCE91 <= code && code <= 0xCEAB) || // Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH + (0xCEAD <= code && code <= 0xCEC7) || // Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH + (0xCEC9 <= code && code <= 0xCEE3) || // Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH + (0xCEE5 <= code && code <= 0xCEFF) || // Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH + (0xCF01 <= code && code <= 0xCF1B) || // Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH + (0xCF1D <= code && code <= 0xCF37) || // Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH + (0xCF39 <= code && code <= 0xCF53) || // Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH + (0xCF55 <= code && code <= 0xCF6F) || // Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH + (0xCF71 <= code && code <= 0xCF8B) || // Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH + (0xCF8D <= code && code <= 0xCFA7) || // Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH + (0xCFA9 <= code && code <= 0xCFC3) || // Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH + (0xCFC5 <= code && code <= 0xCFDF) || // Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH + (0xCFE1 <= code && code <= 0xCFFB) || // Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH + (0xCFFD <= code && code <= 0xD017) || // Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH + (0xD019 <= code && code <= 0xD033) || // Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH + (0xD035 <= code && code <= 0xD04F) || // Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH + (0xD051 <= code && code <= 0xD06B) || // Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH + (0xD06D <= code && code <= 0xD087) || // Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH + (0xD089 <= code && code <= 0xD0A3) || // Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH + (0xD0A5 <= code && code <= 0xD0BF) || // Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH + (0xD0C1 <= code && code <= 0xD0DB) || // Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH + (0xD0DD <= code && code <= 0xD0F7) || // Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH + (0xD0F9 <= code && code <= 0xD113) || // Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH + (0xD115 <= code && code <= 0xD12F) || // Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH + (0xD131 <= code && code <= 0xD14B) || // Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH + (0xD14D <= code && code <= 0xD167) || // Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH + (0xD169 <= code && code <= 0xD183) || // Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH + (0xD185 <= code && code <= 0xD19F) || // Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH + (0xD1A1 <= code && code <= 0xD1BB) || // Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH + (0xD1BD <= code && code <= 0xD1D7) || // Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH + (0xD1D9 <= code && code <= 0xD1F3) || // Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH + (0xD1F5 <= code && code <= 0xD20F) || // Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH + (0xD211 <= code && code <= 0xD22B) || // Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH + (0xD22D <= code && code <= 0xD247) || // Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH + (0xD249 <= code && code <= 0xD263) || // Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH + (0xD265 <= code && code <= 0xD27F) || // Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH + (0xD281 <= code && code <= 0xD29B) || // Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH + (0xD29D <= code && code <= 0xD2B7) || // Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH + (0xD2B9 <= code && code <= 0xD2D3) || // Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH + (0xD2D5 <= code && code <= 0xD2EF) || // Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH + (0xD2F1 <= code && code <= 0xD30B) || // Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH + (0xD30D <= code && code <= 0xD327) || // Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH + (0xD329 <= code && code <= 0xD343) || // Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH + (0xD345 <= code && code <= 0xD35F) || // Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH + (0xD361 <= code && code <= 0xD37B) || // Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH + (0xD37D <= code && code <= 0xD397) || // Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH + (0xD399 <= code && code <= 0xD3B3) || // Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH + (0xD3B5 <= code && code <= 0xD3CF) || // Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH + (0xD3D1 <= code && code <= 0xD3EB) || // Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH + (0xD3ED <= code && code <= 0xD407) || // Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH + (0xD409 <= code && code <= 0xD423) || // Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH + (0xD425 <= code && code <= 0xD43F) || // Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH + (0xD441 <= code && code <= 0xD45B) || // Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH + (0xD45D <= code && code <= 0xD477) || // Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH + (0xD479 <= code && code <= 0xD493) || // Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH + (0xD495 <= code && code <= 0xD4AF) || // Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH + (0xD4B1 <= code && code <= 0xD4CB) || // Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH + (0xD4CD <= code && code <= 0xD4E7) || // Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH + (0xD4E9 <= code && code <= 0xD503) || // Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH + (0xD505 <= code && code <= 0xD51F) || // Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH + (0xD521 <= code && code <= 0xD53B) || // Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH + (0xD53D <= code && code <= 0xD557) || // Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH + (0xD559 <= code && code <= 0xD573) || // Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH + (0xD575 <= code && code <= 0xD58F) || // Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH + (0xD591 <= code && code <= 0xD5AB) || // Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH + (0xD5AD <= code && code <= 0xD5C7) || // Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH + (0xD5C9 <= code && code <= 0xD5E3) || // Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH + (0xD5E5 <= code && code <= 0xD5FF) || // Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH + (0xD601 <= code && code <= 0xD61B) || // Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH + (0xD61D <= code && code <= 0xD637) || // Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH + (0xD639 <= code && code <= 0xD653) || // Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH + (0xD655 <= code && code <= 0xD66F) || // Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH + (0xD671 <= code && code <= 0xD68B) || // Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH + (0xD68D <= code && code <= 0xD6A7) || // Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH + (0xD6A9 <= code && code <= 0xD6C3) || // Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH + (0xD6C5 <= code && code <= 0xD6DF) || // Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH + (0xD6E1 <= code && code <= 0xD6FB) || // Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH + (0xD6FD <= code && code <= 0xD717) || // Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH + (0xD719 <= code && code <= 0xD733) || // Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH + (0xD735 <= code && code <= 0xD74F) || // Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH + (0xD751 <= code && code <= 0xD76B) || // Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH + (0xD76D <= code && code <= 0xD787) || // Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH + (0xD789 <= code && code <= 0xD7A3) // Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH + ){ + return LVT; + } + + if( + 0x261D == code || // So WHITE UP POINTING INDEX + 0x26F9 == code || // So PERSON WITH BALL + (0x270A <= code && code <= 0x270D) || // So [4] RAISED FIST..WRITING HAND + 0x1F385 == code || // So FATHER CHRISTMAS + (0x1F3C2 <= code && code <= 0x1F3C4) || // So [3] SNOWBOARDER..SURFER + 0x1F3C7 == code || // So HORSE RACING + (0x1F3CA <= code && code <= 0x1F3CC) || // So [3] SWIMMER..GOLFER + (0x1F442 <= code && code <= 0x1F443) || // So [2] EAR..NOSE + (0x1F446 <= code && code <= 0x1F450) || // So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN + 0x1F46E == code || // So POLICE OFFICER + (0x1F470 <= code && code <= 0x1F478) || // So [9] BRIDE WITH VEIL..PRINCESS + 0x1F47C == code || // So BABY ANGEL + (0x1F481 <= code && code <= 0x1F483) || // So [3] INFORMATION DESK PERSON..DANCER + (0x1F485 <= code && code <= 0x1F487) || // So [3] NAIL POLISH..HAIRCUT + 0x1F4AA == code || // So FLEXED BICEPS + (0x1F574 <= code && code <= 0x1F575) || // So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY + 0x1F57A == code || // So MAN DANCING + 0x1F590 == code || // So RAISED HAND WITH FINGERS SPLAYED + (0x1F595 <= code && code <= 0x1F596) || // So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS + (0x1F645 <= code && code <= 0x1F647) || // So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY + (0x1F64B <= code && code <= 0x1F64F) || // So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS + 0x1F6A3 == code || // So ROWBOAT + (0x1F6B4 <= code && code <= 0x1F6B6) || // So [3] BICYCLIST..PEDESTRIAN + 0x1F6C0 == code || // So BATH + 0x1F6CC == code || // So SLEEPING ACCOMMODATION + (0x1F918 <= code && code <= 0x1F91C) || // So [5] SIGN OF THE HORNS..RIGHT-FACING FIST + (0x1F91E <= code && code <= 0x1F91F) || // So [2] HAND WITH INDEX AND MIDDLE FINGERS CROSSED..I LOVE YOU HAND SIGN + 0x1F926 == code || // So FACE PALM + (0x1F930 <= code && code <= 0x1F939) || // So [10] PREGNANT WOMAN..JUGGLING + (0x1F93D <= code && code <= 0x1F93E) || // So [2] WATER POLO..HANDBALL + (0x1F9D1 <= code && code <= 0x1F9DD) // So [13] ADULT..ELF + ){ + return E_Base; + } + + if( + (0x1F3FB <= code && code <= 0x1F3FF) // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 + ){ + return E_Modifier; + } + + if( + 0x200D == code // Cf ZERO WIDTH JOINER + ){ + return ZWJ; + } + + if( + 0x2640 == code || // So FEMALE SIGN + 0x2642 == code || // So MALE SIGN + (0x2695 <= code && code <= 0x2696) || // So [2] STAFF OF AESCULAPIUS..SCALES + 0x2708 == code || // So AIRPLANE + 0x2764 == code || // So HEAVY BLACK HEART + 0x1F308 == code || // So RAINBOW + 0x1F33E == code || // So EAR OF RICE + 0x1F373 == code || // So COOKING + 0x1F393 == code || // So GRADUATION CAP + 0x1F3A4 == code || // So MICROPHONE + 0x1F3A8 == code || // So ARTIST PALETTE + 0x1F3EB == code || // So SCHOOL + 0x1F3ED == code || // So FACTORY + 0x1F48B == code || // So KISS MARK + (0x1F4BB <= code && code <= 0x1F4BC) || // So [2] PERSONAL COMPUTER..BRIEFCASE + 0x1F527 == code || // So WRENCH + 0x1F52C == code || // So MICROSCOPE + 0x1F5E8 == code || // So LEFT SPEECH BUBBLE + 0x1F680 == code || // So ROCKET + 0x1F692 == code // So FIRE ENGINE + ){ + return Glue_After_Zwj; + } + + if( + (0x1F466 <= code && code <= 0x1F469) // So [4] BOY..WOMAN + ){ + return E_Base_GAZ; + } + + + //all unlisted characters have a grapheme break property of "Other" + return Other; + } + return this; +} + +if (typeof module != 'undefined' && module.exports) { + module.exports = GraphemeSplitter; +} diff --git a/node_modules/grapheme-splitter/package.json b/node_modules/grapheme-splitter/package.json new file mode 100644 index 0000000..61479af --- /dev/null +++ b/node_modules/grapheme-splitter/package.json @@ -0,0 +1,34 @@ +{ + "name": "grapheme-splitter", + "version": "1.0.4", + "description": "A JavaScript library that breaks strings into their individual user-perceived characters. It supports emojis!", + "homepage": "https://github.com/orling/grapheme-splitter", + "author": "Orlin Georgiev", + "contributors": [ + { + "name": "Lucas Tadeu Teixeira", + "email": "lucas@fastmail.nl", + "url": "https://lucas.is" + } + ], + "main": "index.js", + "license": "MIT", + "keywords": [ + "utf-8", + "strings", + "emoji", + "split" + ], + "scripts": { + "test": "tape tests/grapheme_splitter_tests.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/orling/grapheme-splitter.git" + }, + "bugs": "https://github.com/orling/grapheme-splitter/issues", + "dependencies": {}, + "devDependencies": { + "tape": "^4.6.3" + } +} diff --git a/node_modules/grapheme-splitter/tests/GraphemeBreakTest.txt b/node_modules/grapheme-splitter/tests/GraphemeBreakTest.txt new file mode 100644 index 0000000..3d0820b --- /dev/null +++ b/node_modules/grapheme-splitter/tests/GraphemeBreakTest.txt @@ -0,0 +1,850 @@ +# GraphemeBreakTest-10.0.0.txt +# Date: 2017-04-14, 05:40:29 GMT +# © 2017 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# +# Unicode Character Database +# For documentation, see http://www.unicode.org/reports/tr44/ +# +# Default Grapheme_Cluster_Break Test +# +# Format: +# (# )? +# contains hex Unicode code points, with +# ÷ wherever there is a break opportunity, and +# × wherever there is not. +# the format can change, but currently it shows: +# - the sample character name +# - (x) the Grapheme_Cluster_Break property value for the sample character +# - [x] the rule that determines whether there is a break or not, +# as listed in the Rules section of GraphemeBreakTest.html +# +# These samples may be extended or changed in the future. +# +÷ 0020 ÷ 0020 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0020 × 0308 ÷ 0020 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0020 ÷ 000D ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] (CR) ÷ [0.3] +÷ 0020 × 0308 ÷ 000D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0020 ÷ 000A ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] (LF) ÷ [0.3] +÷ 0020 × 0308 ÷ 000A ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0020 ÷ 0001 ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] (Control) ÷ [0.3] +÷ 0020 × 0308 ÷ 0001 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0020 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0020 × 0308 × 0300 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0020 ÷ 0600 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0020 × 0308 ÷ 0600 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0020 × 0903 ÷ # ÷ [0.2] SPACE (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0020 × 0308 × 0903 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0020 ÷ 1100 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0020 × 0308 ÷ 1100 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0020 ÷ 1160 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0020 × 0308 ÷ 1160 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0020 ÷ 11A8 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0020 × 0308 ÷ 11A8 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0020 ÷ AC00 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0020 × 0308 ÷ AC00 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0020 ÷ AC01 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0020 × 0308 ÷ AC01 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0020 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0020 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0020 ÷ 261D ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0020 × 0308 ÷ 261D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0020 ÷ 1F3FB ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0020 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0020 × 200D ÷ # ÷ [0.2] SPACE (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0020 × 0308 × 200D ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0020 ÷ 2640 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0020 × 0308 ÷ 2640 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0020 ÷ 1F466 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0020 × 0308 ÷ 1F466 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0020 ÷ 0378 ÷ # ÷ [0.2] SPACE (Other) ÷ [999.0] (Other) ÷ [0.3] +÷ 0020 × 0308 ÷ 0378 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 0020 ÷ D800 ÷ # ÷ [0.2] SPACE (Other) ÷ [5.0] (Control) ÷ [0.3] +÷ 0020 × 0308 ÷ D800 ÷ # ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 000D ÷ 0020 ÷ # ÷ [0.2] (CR) ÷ [4.0] SPACE (Other) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 000D ÷ 000D ÷ # ÷ [0.2] (CR) ÷ [4.0] (CR) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 000D ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 000D × 000A ÷ # ÷ [0.2] (CR) × [3.0] (LF) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 000A ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 000D ÷ 0001 ÷ # ÷ [0.2] (CR) ÷ [4.0] (Control) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 000D ÷ 0300 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 000D ÷ 0308 × 0300 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 000D ÷ 0600 ÷ # ÷ [0.2] (CR) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 000D ÷ 0903 ÷ # ÷ [0.2] (CR) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 000D ÷ 0308 × 0903 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 000D ÷ 1100 ÷ # ÷ [0.2] (CR) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 000D ÷ 1160 ÷ # ÷ [0.2] (CR) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 000D ÷ 11A8 ÷ # ÷ [0.2] (CR) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 000D ÷ AC00 ÷ # ÷ [0.2] (CR) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 000D ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 000D ÷ AC01 ÷ # ÷ [0.2] (CR) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 000D ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 000D ÷ 1F1E6 ÷ # ÷ [0.2] (CR) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 000D ÷ 261D ÷ # ÷ [0.2] (CR) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 261D ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 000D ÷ 1F3FB ÷ # ÷ [0.2] (CR) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 000D ÷ 200D ÷ # ÷ [0.2] (CR) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 000D ÷ 0308 × 200D ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 000D ÷ 2640 ÷ # ÷ [0.2] (CR) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 000D ÷ 1F466 ÷ # ÷ [0.2] (CR) ÷ [4.0] BOY (EBG) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 000D ÷ 0378 ÷ # ÷ [0.2] (CR) ÷ [4.0] (Other) ÷ [0.3] +÷ 000D ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 000D ÷ D800 ÷ # ÷ [0.2] (CR) ÷ [4.0] (Control) ÷ [0.3] +÷ 000D ÷ 0308 ÷ D800 ÷ # ÷ [0.2] (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 000A ÷ 0020 ÷ # ÷ [0.2] (LF) ÷ [4.0] SPACE (Other) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 000A ÷ 000D ÷ # ÷ [0.2] (LF) ÷ [4.0] (CR) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 000D ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 000A ÷ 000A ÷ # ÷ [0.2] (LF) ÷ [4.0] (LF) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 000A ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 000A ÷ 0001 ÷ # ÷ [0.2] (LF) ÷ [4.0] (Control) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 000A ÷ 0300 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 000A ÷ 0308 × 0300 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 000A ÷ 0600 ÷ # ÷ [0.2] (LF) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 000A ÷ 0903 ÷ # ÷ [0.2] (LF) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 000A ÷ 0308 × 0903 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 000A ÷ 1100 ÷ # ÷ [0.2] (LF) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 000A ÷ 1160 ÷ # ÷ [0.2] (LF) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 000A ÷ 11A8 ÷ # ÷ [0.2] (LF) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 000A ÷ AC00 ÷ # ÷ [0.2] (LF) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 000A ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 000A ÷ AC01 ÷ # ÷ [0.2] (LF) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 000A ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 000A ÷ 1F1E6 ÷ # ÷ [0.2] (LF) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 000A ÷ 261D ÷ # ÷ [0.2] (LF) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 261D ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 000A ÷ 1F3FB ÷ # ÷ [0.2] (LF) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 000A ÷ 200D ÷ # ÷ [0.2] (LF) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 000A ÷ 0308 × 200D ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 000A ÷ 2640 ÷ # ÷ [0.2] (LF) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 000A ÷ 1F466 ÷ # ÷ [0.2] (LF) ÷ [4.0] BOY (EBG) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 000A ÷ 0378 ÷ # ÷ [0.2] (LF) ÷ [4.0] (Other) ÷ [0.3] +÷ 000A ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 000A ÷ D800 ÷ # ÷ [0.2] (LF) ÷ [4.0] (Control) ÷ [0.3] +÷ 000A ÷ 0308 ÷ D800 ÷ # ÷ [0.2] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0001 ÷ 0020 ÷ # ÷ [0.2] (Control) ÷ [4.0] SPACE (Other) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0001 ÷ 000D ÷ # ÷ [0.2] (Control) ÷ [4.0] (CR) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0001 ÷ 000A ÷ # ÷ [0.2] (Control) ÷ [4.0] (LF) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0001 ÷ 0001 ÷ # ÷ [0.2] (Control) ÷ [4.0] (Control) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0001 ÷ 0300 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0001 ÷ 0308 × 0300 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0001 ÷ 0600 ÷ # ÷ [0.2] (Control) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0001 ÷ 0903 ÷ # ÷ [0.2] (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0001 ÷ 0308 × 0903 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0001 ÷ 1100 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0001 ÷ 1160 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0001 ÷ 11A8 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0001 ÷ AC00 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0001 ÷ AC01 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0001 ÷ 1F1E6 ÷ # ÷ [0.2] (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0001 ÷ 261D ÷ # ÷ [0.2] (Control) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 261D ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0001 ÷ 1F3FB ÷ # ÷ [0.2] (Control) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0001 ÷ 200D ÷ # ÷ [0.2] (Control) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0001 ÷ 0308 × 200D ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0001 ÷ 2640 ÷ # ÷ [0.2] (Control) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0001 ÷ 1F466 ÷ # ÷ [0.2] (Control) ÷ [4.0] BOY (EBG) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0001 ÷ 0378 ÷ # ÷ [0.2] (Control) ÷ [4.0] (Other) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 0001 ÷ D800 ÷ # ÷ [0.2] (Control) ÷ [4.0] (Control) ÷ [0.3] +÷ 0001 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0300 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0300 × 0308 ÷ 0020 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0300 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0300 × 0308 ÷ 000D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0300 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0300 × 0308 ÷ 000A ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0300 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0300 × 0308 ÷ 0001 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0300 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0300 × 0308 × 0300 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0300 ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0300 × 0308 ÷ 0600 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0300 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0300 × 0308 × 0903 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0300 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0300 × 0308 ÷ 1100 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0300 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0300 × 0308 ÷ 1160 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0300 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0300 × 0308 ÷ 11A8 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0300 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0300 × 0308 ÷ AC00 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0300 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0300 × 0308 ÷ AC01 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0300 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0300 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0300 ÷ 261D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0300 × 0308 ÷ 261D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0300 ÷ 1F3FB ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0300 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0300 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0300 × 0308 × 200D ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0300 ÷ 2640 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0300 × 0308 ÷ 2640 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0300 ÷ 1F466 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0300 × 0308 ÷ 1F466 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0300 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 0300 × 0308 ÷ 0378 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 0300 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0300 × 0308 ÷ D800 ÷ # ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0600 × 0020 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] SPACE (Other) ÷ [0.3] +÷ 0600 × 0308 ÷ 0020 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0600 ÷ 000D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0600 × 0308 ÷ 000D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0600 ÷ 000A ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0600 × 0308 ÷ 000A ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0600 ÷ 0001 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0600 × 0308 ÷ 0001 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0600 × 0300 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0600 × 0308 × 0300 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0600 × 0600 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0600 × 0308 ÷ 0600 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0600 × 0903 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0600 × 0308 × 0903 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0600 × 1100 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0600 × 0308 ÷ 1100 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0600 × 1160 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0600 × 0308 ÷ 1160 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0600 × 11A8 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0600 × 0308 ÷ 11A8 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0600 × AC00 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0600 × 0308 ÷ AC00 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0600 × AC01 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0600 × 0308 ÷ AC01 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0600 × 1F1E6 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0600 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0600 × 261D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0600 × 0308 ÷ 261D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0600 × 1F3FB ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0600 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0600 × 200D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0600 × 0308 × 200D ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0600 × 2640 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0600 × 0308 ÷ 2640 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0600 × 1F466 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] BOY (EBG) ÷ [0.3] +÷ 0600 × 0308 ÷ 1F466 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0600 × 0378 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.2] (Other) ÷ [0.3] +÷ 0600 × 0308 ÷ 0378 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 0600 ÷ D800 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0600 × 0308 ÷ D800 ÷ # ÷ [0.2] ARABIC NUMBER SIGN (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0903 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0903 × 0308 ÷ 0020 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0903 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] (CR) ÷ [0.3] +÷ 0903 × 0308 ÷ 000D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0903 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] (LF) ÷ [0.3] +÷ 0903 × 0308 ÷ 000A ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0903 ÷ 0001 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] (Control) ÷ [0.3] +÷ 0903 × 0308 ÷ 0001 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0903 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0903 × 0308 × 0300 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0903 ÷ 0600 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0903 × 0308 ÷ 0600 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0903 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0903 × 0308 × 0903 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0903 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0903 × 0308 ÷ 1100 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0903 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0903 × 0308 ÷ 1160 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0903 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0903 × 0308 ÷ 11A8 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0903 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0903 × 0308 ÷ AC00 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0903 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0903 × 0308 ÷ AC01 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0903 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0903 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0903 ÷ 261D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0903 × 0308 ÷ 261D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0903 ÷ 1F3FB ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0903 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0903 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0903 × 0308 × 200D ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0903 ÷ 2640 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0903 × 0308 ÷ 2640 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0903 ÷ 1F466 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0903 × 0308 ÷ 1F466 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0903 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] (Other) ÷ [0.3] +÷ 0903 × 0308 ÷ 0378 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 0903 ÷ D800 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] (Control) ÷ [0.3] +÷ 0903 × 0308 ÷ D800 ÷ # ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1100 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1100 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1100 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] (CR) ÷ [0.3] +÷ 1100 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 1100 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] (LF) ÷ [0.3] +÷ 1100 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 1100 ÷ 0001 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] (Control) ÷ [0.3] +÷ 1100 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1100 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1100 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1100 ÷ 0600 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1100 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1100 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1100 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1100 × 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1100 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1100 × 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1100 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1100 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1100 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1100 × AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1100 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1100 × AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1100 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1100 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1100 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1100 ÷ 261D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1100 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1100 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1100 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1100 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1100 × 0308 × 200D ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1100 ÷ 2640 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1100 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1100 ÷ 1F466 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1100 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1100 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] (Other) ÷ [0.3] +÷ 1100 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 1100 ÷ D800 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] (Control) ÷ [0.3] +÷ 1100 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1160 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1160 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1160 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] (CR) ÷ [0.3] +÷ 1160 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 1160 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] (LF) ÷ [0.3] +÷ 1160 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 1160 ÷ 0001 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] (Control) ÷ [0.3] +÷ 1160 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1160 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1160 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1160 ÷ 0600 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1160 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1160 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1160 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1160 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1160 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1160 × 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1160 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1160 × 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1160 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1160 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1160 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1160 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1160 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1160 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1160 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1160 ÷ 261D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1160 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1160 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1160 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1160 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1160 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1160 ÷ 2640 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1160 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1160 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1160 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1160 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] (Other) ÷ [0.3] +÷ 1160 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 1160 ÷ D800 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] (Control) ÷ [0.3] +÷ 1160 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 11A8 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 11A8 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 11A8 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] (CR) ÷ [0.3] +÷ 11A8 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 11A8 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] (LF) ÷ [0.3] +÷ 11A8 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 11A8 ÷ 0001 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] (Control) ÷ [0.3] +÷ 11A8 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 11A8 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 11A8 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 11A8 ÷ 0600 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 11A8 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 11A8 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 11A8 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 11A8 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 11A8 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 11A8 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 11A8 × 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 11A8 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 11A8 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 11A8 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 11A8 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 11A8 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 11A8 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 11A8 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 11A8 ÷ 261D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 11A8 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 11A8 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 11A8 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 11A8 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 11A8 × 0308 × 200D ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 11A8 ÷ 2640 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 11A8 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 11A8 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 11A8 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 11A8 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] (Other) ÷ [0.3] +÷ 11A8 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 11A8 ÷ D800 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] (Control) ÷ [0.3] +÷ 11A8 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ AC00 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ AC00 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ AC00 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] (CR) ÷ [0.3] +÷ AC00 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ AC00 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] (LF) ÷ [0.3] +÷ AC00 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ AC00 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] (Control) ÷ [0.3] +÷ AC00 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ AC00 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ AC00 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ AC00 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ AC00 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ AC00 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ AC00 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ AC00 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ AC00 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ AC00 × 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ AC00 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ AC00 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ AC00 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ AC00 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ AC00 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ AC00 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ AC00 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ AC00 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ AC00 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ AC00 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ AC00 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ AC00 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ AC00 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ AC00 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ AC00 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ AC00 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ AC00 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ AC00 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ AC00 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ AC00 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] (Other) ÷ [0.3] +÷ AC00 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ AC00 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] (Control) ÷ [0.3] +÷ AC00 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ AC01 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ AC01 × 0308 ÷ 0020 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ AC01 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] (CR) ÷ [0.3] +÷ AC01 × 0308 ÷ 000D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ AC01 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] (LF) ÷ [0.3] +÷ AC01 × 0308 ÷ 000A ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ AC01 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] (Control) ÷ [0.3] +÷ AC01 × 0308 ÷ 0001 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ AC01 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ AC01 × 0308 × 0300 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ AC01 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ AC01 × 0308 ÷ 0600 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ AC01 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ AC01 × 0308 × 0903 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ AC01 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ AC01 × 0308 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ AC01 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ AC01 × 0308 ÷ 1160 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ AC01 × 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ AC01 × 0308 ÷ 11A8 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ AC01 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ AC01 × 0308 ÷ AC00 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ AC01 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ AC01 × 0308 ÷ AC01 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ AC01 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ AC01 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ AC01 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ AC01 × 0308 ÷ 261D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ AC01 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ AC01 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ AC01 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ AC01 × 0308 × 200D ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ AC01 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ AC01 × 0308 ÷ 2640 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ AC01 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ AC01 × 0308 ÷ 1F466 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ AC01 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] (Other) ÷ [0.3] +÷ AC01 × 0308 ÷ 0378 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ AC01 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] (Control) ÷ [0.3] +÷ AC01 × 0308 ÷ D800 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F1E6 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 0020 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1F1E6 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] (CR) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 000D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 1F1E6 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] (LF) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 000A ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 1F1E6 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 0001 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F1E6 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1F1E6 × 0308 × 0300 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1F1E6 ÷ 0600 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 0600 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1F1E6 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1F1E6 × 0308 × 0903 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1F1E6 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 1100 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1F1E6 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 1160 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1F1E6 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 11A8 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1F1E6 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ AC00 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1F1E6 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ AC01 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1F1E6 × 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [12.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1F1E6 ÷ 261D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 261D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1F1E6 ÷ 1F3FB ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1F1E6 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1F1E6 × 0308 × 200D ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1F1E6 ÷ 2640 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 2640 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1F1E6 ÷ 1F466 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 1F466 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1F1E6 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [999.0] (Other) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ 0378 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 1F1E6 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F1E6 × 0308 ÷ D800 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 261D ÷ 0020 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 261D × 0308 ÷ 0020 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 261D ÷ 000D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] (CR) ÷ [0.3] +÷ 261D × 0308 ÷ 000D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 261D ÷ 000A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] (LF) ÷ [0.3] +÷ 261D × 0308 ÷ 000A ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 261D ÷ 0001 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] (Control) ÷ [0.3] +÷ 261D × 0308 ÷ 0001 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 261D × 0300 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 261D × 0308 × 0300 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 261D ÷ 0600 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 261D × 0308 ÷ 0600 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 261D × 0903 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 261D × 0308 × 0903 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 261D ÷ 1100 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 261D × 0308 ÷ 1100 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 261D ÷ 1160 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 261D × 0308 ÷ 1160 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 261D ÷ 11A8 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 261D × 0308 ÷ 11A8 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 261D ÷ AC00 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 261D × 0308 ÷ AC00 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 261D ÷ AC01 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 261D × 0308 ÷ AC01 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 261D ÷ 1F1E6 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 261D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 261D ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 261D × 0308 ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 261D × 1F3FB ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 261D × 0308 × 1F3FB ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 261D × 200D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 261D × 0308 × 200D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 261D ÷ 2640 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 261D × 0308 ÷ 2640 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 261D ÷ 1F466 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 261D × 0308 ÷ 1F466 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 261D ÷ 0378 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [999.0] (Other) ÷ [0.3] +÷ 261D × 0308 ÷ 0378 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 261D ÷ D800 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) ÷ [5.0] (Control) ÷ [0.3] +÷ 261D × 0308 ÷ D800 ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F3FB ÷ 0020 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 0020 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1F3FB ÷ 000D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] (CR) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 000D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 1F3FB ÷ 000A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] (LF) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 000A ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 1F3FB ÷ 0001 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 0001 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F3FB × 0300 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1F3FB × 0308 × 0300 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1F3FB ÷ 0600 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 0600 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1F3FB × 0903 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1F3FB × 0308 × 0903 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1F3FB ÷ 1100 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 1100 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1F3FB ÷ 1160 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 1160 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1F3FB ÷ 11A8 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 11A8 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1F3FB ÷ AC00 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1F3FB × 0308 ÷ AC00 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1F3FB ÷ AC01 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1F3FB × 0308 ÷ AC01 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1F3FB ÷ 1F1E6 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1F3FB ÷ 261D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 261D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1F3FB ÷ 1F3FB ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 1F3FB ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1F3FB × 200D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1F3FB × 0308 × 200D ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1F3FB ÷ 2640 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 2640 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1F3FB ÷ 1F466 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 1F466 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1F3FB ÷ 0378 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] (Other) ÷ [0.3] +÷ 1F3FB × 0308 ÷ 0378 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 1F3FB ÷ D800 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F3FB × 0308 ÷ D800 ÷ # ÷ [0.2] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 200D ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 200D × 0308 ÷ 0020 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 200D ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] (CR) ÷ [0.3] +÷ 200D × 0308 ÷ 000D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 200D ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] (LF) ÷ [0.3] +÷ 200D × 0308 ÷ 000A ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 200D ÷ 0001 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] (Control) ÷ [0.3] +÷ 200D × 0308 ÷ 0001 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 200D × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 200D × 0308 × 0300 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 200D ÷ 0600 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 200D × 0308 ÷ 0600 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 200D × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 200D × 0308 × 0903 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 200D ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 200D × 0308 ÷ 1100 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 200D ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 200D × 0308 ÷ 1160 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 200D ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 200D × 0308 ÷ 11A8 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 200D ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 200D × 0308 ÷ AC00 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 200D ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 200D × 0308 ÷ AC01 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 200D ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 200D × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 200D ÷ 261D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 200D × 0308 ÷ 261D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 200D ÷ 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 200D × 0308 ÷ 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 200D × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 200D × 0308 × 200D ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 200D × 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 200D × 0308 ÷ 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 200D × 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] BOY (EBG) ÷ [0.3] +÷ 200D × 0308 ÷ 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 200D ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] (Other) ÷ [0.3] +÷ 200D × 0308 ÷ 0378 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 200D ÷ D800 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) ÷ [5.0] (Control) ÷ [0.3] +÷ 200D × 0308 ÷ D800 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 2640 ÷ 0020 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 2640 × 0308 ÷ 0020 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 2640 ÷ 000D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] (CR) ÷ [0.3] +÷ 2640 × 0308 ÷ 000D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 2640 ÷ 000A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] (LF) ÷ [0.3] +÷ 2640 × 0308 ÷ 000A ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 2640 ÷ 0001 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] (Control) ÷ [0.3] +÷ 2640 × 0308 ÷ 0001 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 2640 × 0300 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 2640 × 0308 × 0300 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 2640 ÷ 0600 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 2640 × 0308 ÷ 0600 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 2640 × 0903 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 2640 × 0308 × 0903 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 2640 ÷ 1100 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 2640 × 0308 ÷ 1100 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 2640 ÷ 1160 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 2640 × 0308 ÷ 1160 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 2640 ÷ 11A8 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 2640 × 0308 ÷ 11A8 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 2640 ÷ AC00 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 2640 × 0308 ÷ AC00 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 2640 ÷ AC01 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 2640 × 0308 ÷ AC01 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 2640 ÷ 1F1E6 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 2640 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 2640 ÷ 261D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 2640 × 0308 ÷ 261D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 2640 ÷ 1F3FB ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 2640 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 2640 × 200D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 2640 × 0308 × 200D ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 2640 ÷ 2640 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 2640 × 0308 ÷ 2640 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 2640 ÷ 1F466 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 2640 × 0308 ÷ 1F466 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 2640 ÷ 0378 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [999.0] (Other) ÷ [0.3] +÷ 2640 × 0308 ÷ 0378 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 2640 ÷ D800 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) ÷ [5.0] (Control) ÷ [0.3] +÷ 2640 × 0308 ÷ D800 ÷ # ÷ [0.2] FEMALE SIGN (Glue_After_Zwj) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F466 ÷ 0020 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1F466 × 0308 ÷ 0020 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1F466 ÷ 000D ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] (CR) ÷ [0.3] +÷ 1F466 × 0308 ÷ 000D ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 1F466 ÷ 000A ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] (LF) ÷ [0.3] +÷ 1F466 × 0308 ÷ 000A ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 1F466 ÷ 0001 ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F466 × 0308 ÷ 0001 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F466 × 0300 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1F466 × 0308 × 0300 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 1F466 ÷ 0600 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1F466 × 0308 ÷ 0600 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 1F466 × 0903 ÷ # ÷ [0.2] BOY (EBG) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1F466 × 0308 × 0903 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 1F466 ÷ 1100 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1F466 × 0308 ÷ 1100 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1F466 ÷ 1160 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1F466 × 0308 ÷ 1160 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 1F466 ÷ 11A8 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1F466 × 0308 ÷ 11A8 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 1F466 ÷ AC00 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1F466 × 0308 ÷ AC00 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 1F466 ÷ AC01 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1F466 × 0308 ÷ AC01 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 1F466 ÷ 1F1E6 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1F466 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 1F466 ÷ 261D ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1F466 × 0308 ÷ 261D ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1F466 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1F466 × 0308 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 1F466 × 200D ÷ # ÷ [0.2] BOY (EBG) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1F466 × 0308 × 200D ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 1F466 ÷ 2640 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1F466 × 0308 ÷ 2640 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 1F466 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1F466 × 0308 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 1F466 ÷ 0378 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] (Other) ÷ [0.3] +÷ 1F466 × 0308 ÷ 0378 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 1F466 ÷ D800 ÷ # ÷ [0.2] BOY (EBG) ÷ [5.0] (Control) ÷ [0.3] +÷ 1F466 × 0308 ÷ D800 ÷ # ÷ [0.2] BOY (EBG) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0378 ÷ 0020 ÷ # ÷ [0.2] (Other) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0378 × 0308 ÷ 0020 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 0378 ÷ 000D ÷ # ÷ [0.2] (Other) ÷ [5.0] (CR) ÷ [0.3] +÷ 0378 × 0308 ÷ 000D ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ 0378 ÷ 000A ÷ # ÷ [0.2] (Other) ÷ [5.0] (LF) ÷ [0.3] +÷ 0378 × 0308 ÷ 000A ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ 0378 ÷ 0001 ÷ # ÷ [0.2] (Other) ÷ [5.0] (Control) ÷ [0.3] +÷ 0378 × 0308 ÷ 0001 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 0378 × 0300 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0378 × 0308 × 0300 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ 0378 ÷ 0600 ÷ # ÷ [0.2] (Other) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0378 × 0308 ÷ 0600 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ 0378 × 0903 ÷ # ÷ [0.2] (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0378 × 0308 × 0903 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ 0378 ÷ 1100 ÷ # ÷ [0.2] (Other) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0378 × 0308 ÷ 1100 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 0378 ÷ 1160 ÷ # ÷ [0.2] (Other) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0378 × 0308 ÷ 1160 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ 0378 ÷ 11A8 ÷ # ÷ [0.2] (Other) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0378 × 0308 ÷ 11A8 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ 0378 ÷ AC00 ÷ # ÷ [0.2] (Other) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0378 × 0308 ÷ AC00 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ 0378 ÷ AC01 ÷ # ÷ [0.2] (Other) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0378 × 0308 ÷ AC01 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ 0378 ÷ 1F1E6 ÷ # ÷ [0.2] (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0378 × 0308 ÷ 1F1E6 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ 0378 ÷ 261D ÷ # ÷ [0.2] (Other) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0378 × 0308 ÷ 261D ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 0378 ÷ 1F3FB ÷ # ÷ [0.2] (Other) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0378 × 0308 ÷ 1F3FB ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 0378 × 200D ÷ # ÷ [0.2] (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0378 × 0308 × 200D ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0378 ÷ 2640 ÷ # ÷ [0.2] (Other) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0378 × 0308 ÷ 2640 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 0378 ÷ 1F466 ÷ # ÷ [0.2] (Other) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0378 × 0308 ÷ 1F466 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ 0378 ÷ 0378 ÷ # ÷ [0.2] (Other) ÷ [999.0] (Other) ÷ [0.3] +÷ 0378 × 0308 ÷ 0378 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ 0378 ÷ D800 ÷ # ÷ [0.2] (Other) ÷ [5.0] (Control) ÷ [0.3] +÷ 0378 × 0308 ÷ D800 ÷ # ÷ [0.2] (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ D800 ÷ 0020 ÷ # ÷ [0.2] (Control) ÷ [4.0] SPACE (Other) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 0020 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ D800 ÷ 000D ÷ # ÷ [0.2] (Control) ÷ [4.0] (CR) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 000D ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (CR) ÷ [0.3] +÷ D800 ÷ 000A ÷ # ÷ [0.2] (Control) ÷ [4.0] (LF) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 000A ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (LF) ÷ [0.3] +÷ D800 ÷ 0001 ÷ # ÷ [0.2] (Control) ÷ [4.0] (Control) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 0001 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ D800 ÷ 0300 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ D800 ÷ 0308 × 0300 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3] +÷ D800 ÷ 0600 ÷ # ÷ [0.2] (Control) ÷ [4.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 0600 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) ÷ [0.3] +÷ D800 ÷ 0903 ÷ # ÷ [0.2] (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ D800 ÷ 0308 × 0903 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3] +÷ D800 ÷ 1100 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 1100 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ D800 ÷ 1160 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 1160 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3] +÷ D800 ÷ 11A8 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 11A8 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3] +÷ D800 ÷ AC00 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ D800 ÷ 0308 ÷ AC00 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3] +÷ D800 ÷ AC01 ÷ # ÷ [0.2] (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ D800 ÷ 0308 ÷ AC01 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3] +÷ D800 ÷ 1F1E6 ÷ # ÷ [0.2] (Control) ÷ [4.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 1F1E6 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) ÷ [0.3] +÷ D800 ÷ 261D ÷ # ÷ [0.2] (Control) ÷ [4.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 261D ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ D800 ÷ 1F3FB ÷ # ÷ [0.2] (Control) ÷ [4.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 1F3FB ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ D800 ÷ 200D ÷ # ÷ [0.2] (Control) ÷ [4.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ D800 ÷ 0308 × 200D ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ D800 ÷ 2640 ÷ # ÷ [0.2] (Control) ÷ [4.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 2640 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ D800 ÷ 1F466 ÷ # ÷ [0.2] (Control) ÷ [4.0] BOY (EBG) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 1F466 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] BOY (EBG) ÷ [0.3] +÷ D800 ÷ 0378 ÷ # ÷ [0.2] (Control) ÷ [4.0] (Other) ÷ [0.3] +÷ D800 ÷ 0308 ÷ 0378 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] (Other) ÷ [0.3] +÷ D800 ÷ D800 ÷ # ÷ [0.2] (Control) ÷ [4.0] (Control) ÷ [0.3] +÷ D800 ÷ 0308 ÷ D800 ÷ # ÷ [0.2] (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] (Control) ÷ [0.3] +÷ 000D × 000A ÷ 0061 ÷ 000A ÷ 0308 ÷ # ÷ [0.2] (CR) × [3.0] (LF) ÷ [4.0] LATIN SMALL LETTER A (Other) ÷ [5.0] (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [0.3] +÷ 0061 × 0308 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [0.3] +÷ 0020 × 200D ÷ 0646 ÷ # ÷ [0.2] SPACE (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] ARABIC LETTER NOON (Other) ÷ [0.3] +÷ 0646 × 200D ÷ 0020 ÷ # ÷ [0.2] ARABIC LETTER NOON (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] SPACE (Other) ÷ [0.3] +÷ 1100 × 1100 ÷ # ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ AC00 × 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ AC01 × 11A8 ÷ 1100 ÷ # ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3] +÷ 1F1E6 × 1F1E7 ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [12.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 0061 ÷ 1F1E6 × 1F1E7 ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 0061 ÷ 1F1E6 × 1F1E7 × 200D ÷ 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 0061 ÷ 1F1E6 × 200D ÷ 1F1E7 × 1F1E8 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 0061 ÷ 1F1E6 × 1F1E7 ÷ 1F1E8 × 1F1E9 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER A (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER B (RI) ÷ [999.0] REGIONAL INDICATOR SYMBOL LETTER C (RI) × [13.0] REGIONAL INDICATOR SYMBOL LETTER D (RI) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 0061 × 200D ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] ZERO WIDTH JOINER (ZWJ) ÷ [0.3] +÷ 0061 × 0308 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 0061 × 0903 ÷ 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 0061 ÷ 0600 × 0062 ÷ # ÷ [0.2] LATIN SMALL LETTER A (Other) ÷ [999.0] ARABIC NUMBER SIGN (Prepend) × [9.2] LATIN SMALL LETTER B (Other) ÷ [0.3] +÷ 261D × 1F3FB ÷ 261D ÷ # ÷ [0.2] WHITE UP POINTING INDEX (E_Base) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [999.0] WHITE UP POINTING INDEX (E_Base) ÷ [0.3] +÷ 1F466 × 1F3FB ÷ # ÷ [0.2] BOY (EBG) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 200D × 1F466 × 1F3FB ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] BOY (EBG) × [10.0] EMOJI MODIFIER FITZPATRICK TYPE-1-2 (E_Modifier) ÷ [0.3] +÷ 200D × 2640 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] FEMALE SIGN (Glue_After_Zwj) ÷ [0.3] +÷ 200D × 1F466 ÷ # ÷ [0.2] ZERO WIDTH JOINER (ZWJ) × [11.0] BOY (EBG) ÷ [0.3] +÷ 1F466 ÷ 1F466 ÷ # ÷ [0.2] BOY (EBG) ÷ [999.0] BOY (EBG) ÷ [0.3] +# +# Lines: 822 +# +# EOF diff --git a/node_modules/grapheme-splitter/tests/grapheme_splitter_tests.js b/node_modules/grapheme-splitter/tests/grapheme_splitter_tests.js new file mode 100644 index 0000000..3cba559 --- /dev/null +++ b/node_modules/grapheme-splitter/tests/grapheme_splitter_tests.js @@ -0,0 +1,83 @@ +const fs = require('fs') +const test = require('tape') + +const GraphemeSplitter = require('../index') + +function ucs2encode(array) { + return array.map( value => { + let output = ''; + + if (value > 0xFFFF) { + value -= 0x10000; + output += String.fromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + + output += String.fromCharCode(value); + return output; + }).join(''); +} + +function testDataFromLine(line) { + const codePoints = line.split(/\s*[×÷]\s*/).map(c => parseInt(c, 16)); + const input = ucs2encode(codePoints); + + const expected = line.split(/\s*÷\s*/) .map(sequence => { + const codePoints = sequence.split(/\s*×\s*/).map(c => parseInt(c, 16)) + return ucs2encode(codePoints) + }); + + return { input, expected }; +} + +const testData = fs.readFileSync('tests/GraphemeBreakTest.txt', 'utf-8') + .split('\n') + .filter(line => + line != null && line.length > 0 && !line.startsWith('#')) + .map(line => line.split('#')[0]) + .map(testDataFromLine); + +// --------------------------------------------------------------------------- +// Test cases +// --------------------------------------------------------------------------- +test('splitGraphemes returns properly split list from string', t => { + const splitter = new GraphemeSplitter(); + + t.plan(testData.length); + + testData.forEach( ({ input, expected }) => { + const result = splitter.splitGraphemes(input); + + t.deepLooseEqual(result, expected); + }); + + t.end(); +}); + +test('iterateGraphemes returns properly split iterator from string', t => { + const splitter = new GraphemeSplitter(); + + t.plan(testData.length); + + testData.forEach( ({ input, expected }) => { + const result = splitter.iterateGraphemes(input); + + t.deepLooseEqual([...result], expected); + }); + + t.end(); +}); + +test('countGraphemes returns the correct number of graphemes in string', t => { + const splitter = new GraphemeSplitter(); + + t.plan(testData.length); + + testData.forEach( ({ input, expected }) => { + const result = splitter.countGraphemes(input); + + t.equal(result, expected.length); + }); + + t.end(); +}); diff --git a/node_modules/has-flag/index.d.ts b/node_modules/has-flag/index.d.ts new file mode 100644 index 0000000..a0a48c8 --- /dev/null +++ b/node_modules/has-flag/index.d.ts @@ -0,0 +1,39 @@ +/** +Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag. + +@param flag - CLI flag to look for. The `--` prefix is optional. +@param argv - CLI arguments. Default: `process.argv`. +@returns Whether the flag exists. + +@example +``` +// $ ts-node foo.ts -f --unicorn --foo=bar -- --rainbow + +// foo.ts +import hasFlag = require('has-flag'); + +hasFlag('unicorn'); +//=> true + +hasFlag('--unicorn'); +//=> true + +hasFlag('f'); +//=> true + +hasFlag('-f'); +//=> true + +hasFlag('foo=bar'); +//=> true + +hasFlag('foo'); +//=> false + +hasFlag('rainbow'); +//=> false +``` +*/ +declare function hasFlag(flag: string, argv?: string[]): boolean; + +export = hasFlag; diff --git a/node_modules/has-flag/index.js b/node_modules/has-flag/index.js new file mode 100644 index 0000000..b6f80b1 --- /dev/null +++ b/node_modules/has-flag/index.js @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +}; diff --git a/node_modules/has-flag/license b/node_modules/has-flag/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/has-flag/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/has-flag/package.json b/node_modules/has-flag/package.json new file mode 100644 index 0000000..a9cba4b --- /dev/null +++ b/node_modules/has-flag/package.json @@ -0,0 +1,46 @@ +{ + "name": "has-flag", + "version": "4.0.0", + "description": "Check if argv has a specific flag", + "license": "MIT", + "repository": "sindresorhus/has-flag", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "has", + "check", + "detect", + "contains", + "find", + "flag", + "cli", + "command-line", + "argv", + "process", + "arg", + "args", + "argument", + "arguments", + "getopt", + "minimist", + "optimist" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/has-flag/readme.md b/node_modules/has-flag/readme.md new file mode 100644 index 0000000..3f72dff --- /dev/null +++ b/node_modules/has-flag/readme.md @@ -0,0 +1,89 @@ +# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag) + +> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag + +Correctly stops looking after an `--` argument terminator. + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- + + +## Install + +``` +$ npm install has-flag +``` + + +## Usage + +```js +// foo.js +const hasFlag = require('has-flag'); + +hasFlag('unicorn'); +//=> true + +hasFlag('--unicorn'); +//=> true + +hasFlag('f'); +//=> true + +hasFlag('-f'); +//=> true + +hasFlag('foo=bar'); +//=> true + +hasFlag('foo'); +//=> false + +hasFlag('rainbow'); +//=> false +``` + +``` +$ node foo.js -f --unicorn --foo=bar -- --rainbow +``` + + +## API + +### hasFlag(flag, [argv]) + +Returns a boolean for whether the flag exists. + +#### flag + +Type: `string` + +CLI flag to look for. The `--` prefix is optional. + +#### argv + +Type: `string[]`
+Default: `process.argv` + +CLI arguments. + + +## Security + +To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/ignore/LICENSE-MIT b/node_modules/ignore/LICENSE-MIT new file mode 100644 index 0000000..825533e --- /dev/null +++ b/node_modules/ignore/LICENSE-MIT @@ -0,0 +1,21 @@ +Copyright (c) 2013 Kael Zhang , contributors +http://kael.me/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/ignore/README.md b/node_modules/ignore/README.md new file mode 100644 index 0000000..584508c --- /dev/null +++ b/node_modules/ignore/README.md @@ -0,0 +1,412 @@ + + + + + + + + + + + + + +
LinuxOS XWindowsCoverageDownloads
+ + Build Status + + + Windows Build Status + + + Coverage Status + + + npm module downloads per month +
+ +# ignore + +`ignore` is a manager, filter and parser which implemented in pure JavaScript according to the [.gitignore spec 2.22.1](http://git-scm.com/docs/gitignore). + +`ignore` is used by eslint, gitbook and [many others](https://www.npmjs.com/browse/depended/ignore). + +Pay **ATTENTION** that [`minimatch`](https://www.npmjs.org/package/minimatch) (which used by `fstream-ignore`) does not follow the gitignore spec. + +To filter filenames according to a .gitignore file, I recommend this npm package, `ignore`. + +To parse an `.npmignore` file, you should use `minimatch`, because an `.npmignore` file is parsed by npm using `minimatch` and it does not work in the .gitignore way. + +### Tested on + +`ignore` is fully tested, and has more than **five hundreds** of unit tests. + +- Linux + Node: `0.8` - `7.x` +- Windows + Node: `0.10` - `7.x`, node < `0.10` is not tested due to the lack of support of appveyor. + +Actually, `ignore` does not rely on any versions of node specially. + +Since `4.0.0`, ignore will no longer support `node < 6` by default, to use in node < 6, `require('ignore/legacy')`. For details, see [CHANGELOG](https://github.com/kaelzhang/node-ignore/blob/master/CHANGELOG.md). + +## Table Of Main Contents + +- [Usage](#usage) +- [`Pathname` Conventions](#pathname-conventions) +- See Also: + - [`glob-gitignore`](https://www.npmjs.com/package/glob-gitignore) matches files using patterns and filters them according to gitignore rules. +- [Upgrade Guide](#upgrade-guide) + +## Install + +```sh +npm i ignore +``` + +## Usage + +```js +import ignore from 'ignore' +const ig = ignore().add(['.abc/*', '!.abc/d/']) +``` + +### Filter the given paths + +```js +const paths = [ + '.abc/a.js', // filtered out + '.abc/d/e.js' // included +] + +ig.filter(paths) // ['.abc/d/e.js'] +ig.ignores('.abc/a.js') // true +``` + +### As the filter function + +```js +paths.filter(ig.createFilter()); // ['.abc/d/e.js'] +``` + +### Win32 paths will be handled + +```js +ig.filter(['.abc\\a.js', '.abc\\d\\e.js']) +// if the code above runs on windows, the result will be +// ['.abc\\d\\e.js'] +``` + +## Why another ignore? + +- `ignore` is a standalone module, and is much simpler so that it could easy work with other programs, unlike [isaacs](https://npmjs.org/~isaacs)'s [fstream-ignore](https://npmjs.org/package/fstream-ignore) which must work with the modules of the fstream family. + +- `ignore` only contains utility methods to filter paths according to the specified ignore rules, so + - `ignore` never try to find out ignore rules by traversing directories or fetching from git configurations. + - `ignore` don't cares about sub-modules of git projects. + +- Exactly according to [gitignore man page](http://git-scm.com/docs/gitignore), fixes some known matching issues of fstream-ignore, such as: + - '`/*.js`' should only match '`a.js`', but not '`abc/a.js`'. + - '`**/foo`' should match '`foo`' anywhere. + - Prevent re-including a file if a parent directory of that file is excluded. + - Handle trailing whitespaces: + - `'a '`(one space) should not match `'a '`(two spaces). + - `'a \ '` matches `'a '` + - All test cases are verified with the result of `git check-ignore`. + +# Methods + +## .add(pattern: string | Ignore): this +## .add(patterns: Array): this + +- **pattern** `String | Ignore` An ignore pattern string, or the `Ignore` instance +- **patterns** `Array` Array of ignore patterns. + +Adds a rule or several rules to the current manager. + +Returns `this` + +Notice that a line starting with `'#'`(hash) is treated as a comment. Put a backslash (`'\'`) in front of the first hash for patterns that begin with a hash, if you want to ignore a file with a hash at the beginning of the filename. + +```js +ignore().add('#abc').ignores('#abc') // false +ignore().add('\#abc').ignores('#abc') // true +``` + +`pattern` could either be a line of ignore pattern or a string of multiple ignore patterns, which means we could just `ignore().add()` the content of a ignore file: + +```js +ignore() +.add(fs.readFileSync(filenameOfGitignore).toString()) +.filter(filenames) +``` + +`pattern` could also be an `ignore` instance, so that we could easily inherit the rules of another `Ignore` instance. + +## .addIgnoreFile(path) + +REMOVED in `3.x` for now. + +To upgrade `ignore@2.x` up to `3.x`, use + +```js +import fs from 'fs' + +if (fs.existsSync(filename)) { + ignore().add(fs.readFileSync(filename).toString()) +} +``` + +instead. + +## .filter(paths: Array<Pathname>): Array<Pathname> + +```ts +type Pathname = string +``` + +Filters the given array of pathnames, and returns the filtered array. + +- **paths** `Array.` The array of `pathname`s to be filtered. + +### `Pathname` Conventions: + +#### 1. `Pathname` should be a `path.relative()`d pathname + +`Pathname` should be a string that have been `path.join()`ed, or the return value of `path.relative()` to the current directory, + +```js +// WRONG, an error will be thrown +ig.ignores('./abc') + +// WRONG, for it will never happen, and an error will be thrown +// If the gitignore rule locates at the root directory, +// `'/abc'` should be changed to `'abc'`. +// ``` +// path.relative('/', '/abc') -> 'abc' +// ``` +ig.ignores('/abc') + +// WRONG, that it is an absolute path on Windows, an error will be thrown +ig.ignores('C:\\abc') + +// Right +ig.ignores('abc') + +// Right +ig.ignores(path.join('./abc')) // path.join('./abc') -> 'abc' +``` + +In other words, each `Pathname` here should be a relative path to the directory of the gitignore rules. + +Suppose the dir structure is: + +``` +/path/to/your/repo + |-- a + | |-- a.js + | + |-- .b + | + |-- .c + |-- .DS_store +``` + +Then the `paths` might be like this: + +```js +[ + 'a/a.js' + '.b', + '.c/.DS_store' +] +``` + +#### 2. filenames and dirnames + +`node-ignore` does NO `fs.stat` during path matching, so for the example below: + +```js +// First, we add a ignore pattern to ignore a directory +ig.add('config/') + +// `ig` does NOT know if 'config', in the real world, +// is a normal file, directory or something. + +ig.ignores('config') +// `ig` treats `config` as a file, so it returns `false` + +ig.ignores('config/') +// returns `true` +``` + +Specially for people who develop some library based on `node-ignore`, it is important to understand that. + +Usually, you could use [`glob`](http://npmjs.org/package/glob) with `option.mark = true` to fetch the structure of the current directory: + +```js +import glob from 'glob' + +glob('**', { + // Adds a / character to directory matches. + mark: true +}, (err, files) => { + if (err) { + return console.error(err) + } + + let filtered = ignore().add(patterns).filter(files) + console.log(filtered) +}) +``` + +## .ignores(pathname: Pathname): boolean + +> new in 3.2.0 + +Returns `Boolean` whether `pathname` should be ignored. + +```js +ig.ignores('.abc/a.js') // true +``` + +## .createFilter() + +Creates a filter function which could filter an array of paths with `Array.prototype.filter`. + +Returns `function(path)` the filter function. + +## .test(pathname: Pathname) since 5.0.0 + +Returns `TestResult` + +```ts +interface TestResult { + ignored: boolean + // true if the `pathname` is finally unignored by some negative pattern + unignored: boolean +} +``` + +- `{ignored: true, unignored: false}`: the `pathname` is ignored +- `{ignored: false, unignored: true}`: the `pathname` is unignored +- `{ignored: false, unignored: false}`: the `pathname` is never matched by any ignore rules. + +## static `ignore.isPathValid(pathname): boolean` since 5.0.0 + +Check whether the `pathname` is an valid `path.relative()`d path according to the [convention](#1-pathname-should-be-a-pathrelatived-pathname). + +This method is **NOT** used to check if an ignore pattern is valid. + +```js +ignore.isPathValid('./foo') // false +``` + +## ignore(options) + +### `options.ignorecase` since 4.0.0 + +Similar as the `core.ignorecase` option of [git-config](https://git-scm.com/docs/git-config), `node-ignore` will be case insensitive if `options.ignorecase` is set to `true` (the default value), otherwise case sensitive. + +```js +const ig = ignore({ + ignorecase: false +}) + +ig.add('*.png') + +ig.ignores('*.PNG') // false +``` + +### `options.ignoreCase?: boolean` since 5.2.0 + +Which is alternative to `options.ignoreCase` + +### `options.allowRelativePaths?: boolean` since 5.2.0 + +This option brings backward compatibility with projects which based on `ignore@4.x`. If `options.allowRelativePaths` is `true`, `ignore` will not check whether the given path to be tested is [`path.relative()`d](#pathname-conventions). + +However, passing a relative path, such as `'./foo'` or `'../foo'`, to test if it is ignored or not is not a good practise, which might lead to unexpected behavior + +```js +ignore({ + allowRelativePaths: true +}).ignores('../foo/bar.js') // And it will not throw +``` + +**** + +# Upgrade Guide + +## Upgrade 4.x -> 5.x + +Since `5.0.0`, if an invalid `Pathname` passed into `ig.ignores()`, an error will be thrown, unless `options.allowRelative = true` is passed to the `Ignore` factory. + +While `ignore < 5.0.0` did not make sure what the return value was, as well as + +```ts +.ignores(pathname: Pathname): boolean + +.filter(pathnames: Array): Array + +.createFilter(): (pathname: Pathname) => boolean + +.test(pathname: Pathname): {ignored: boolean, unignored: boolean} +``` + +See the convention [here](#1-pathname-should-be-a-pathrelatived-pathname) for details. + +If there are invalid pathnames, the conversion and filtration should be done by users. + +```js +import {isPathValid} from 'ignore' // introduced in 5.0.0 + +const paths = [ + // invalid + ////////////////// + '', + false, + '../foo', + '.', + ////////////////// + + // valid + 'foo' +] +.filter(isValidPath) + +ig.filter(paths) +``` + +## Upgrade 3.x -> 4.x + +Since `4.0.0`, `ignore` will no longer support node < 6, to use `ignore` in node < 6: + +```js +var ignore = require('ignore/legacy') +``` + +## Upgrade 2.x -> 3.x + +- All `options` of 2.x are unnecessary and removed, so just remove them. +- `ignore()` instance is no longer an [`EventEmitter`](nodejs.org/api/events.html), and all events are unnecessary and removed. +- `.addIgnoreFile()` is removed, see the [.addIgnoreFile](#addignorefilepath) section for details. + +**** + +# Collaborators + +- [@whitecolor](https://github.com/whitecolor) *Alex* +- [@SamyPesse](https://github.com/SamyPesse) *Samy Pessé* +- [@azproduction](https://github.com/azproduction) *Mikhail Davydov* +- [@TrySound](https://github.com/TrySound) *Bogdan Chadkin* +- [@JanMattner](https://github.com/JanMattner) *Jan Mattner* +- [@ntwb](https://github.com/ntwb) *Stephen Edgar* +- [@kasperisager](https://github.com/kasperisager) *Kasper Isager* +- [@sandersn](https://github.com/sandersn) *Nathan Shively-Sanders* diff --git a/node_modules/ignore/index.d.ts b/node_modules/ignore/index.d.ts new file mode 100644 index 0000000..520eafa --- /dev/null +++ b/node_modules/ignore/index.d.ts @@ -0,0 +1,61 @@ +type Pathname = string + +interface TestResult { + ignored: boolean + unignored: boolean +} + +export interface Ignore { + /** + * Adds one or several rules to the current manager. + * @param {string[]} patterns + * @returns IgnoreBase + */ + add(patterns: string | Ignore | readonly (string | Ignore)[]): this + + /** + * Filters the given array of pathnames, and returns the filtered array. + * NOTICE that each path here should be a relative path to the root of your repository. + * @param paths the array of paths to be filtered. + * @returns The filtered array of paths + */ + filter(pathnames: readonly Pathname[]): Pathname[] + + /** + * Creates a filter function which could filter + * an array of paths with Array.prototype.filter. + */ + createFilter(): (pathname: Pathname) => boolean + + /** + * Returns Boolean whether pathname should be ignored. + * @param {string} pathname a path to check + * @returns boolean + */ + ignores(pathname: Pathname): boolean + + /** + * Returns whether pathname should be ignored or unignored + * @param {string} pathname a path to check + * @returns TestResult + */ + test(pathname: Pathname): TestResult +} + +interface Options { + ignorecase?: boolean + // For compatibility + ignoreCase?: boolean + allowRelativePaths?: boolean +} + +/** + * Creates new ignore manager. + */ +declare function ignore(options?: Options): Ignore + +declare namespace ignore { + export function isPathValid (pathname: string): boolean +} + +export default ignore diff --git a/node_modules/ignore/index.js b/node_modules/ignore/index.js new file mode 100644 index 0000000..d935eb1 --- /dev/null +++ b/node_modules/ignore/index.js @@ -0,0 +1,603 @@ +// A simple implementation of make-array +function makeArray (subject) { + return Array.isArray(subject) + ? subject + : [subject] +} + +const EMPTY = '' +const SPACE = ' ' +const ESCAPE = '\\' +const REGEX_TEST_BLANK_LINE = /^\s+$/ +const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/ +const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/ +const REGEX_SPLITALL_CRLF = /\r?\n/g +// /foo, +// ./foo, +// ../foo, +// . +// .. +const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/ + +const SLASH = '/' +const KEY_IGNORE = typeof Symbol !== 'undefined' + ? Symbol.for('node-ignore') + /* istanbul ignore next */ + : 'node-ignore' + +const define = (object, key, value) => + Object.defineProperty(object, key, {value}) + +const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g + +const RETURN_FALSE = () => false + +// Sanitize the range of a regular expression +// The cases are complicated, see test cases for details +const sanitizeRange = range => range.replace( + REGEX_REGEXP_RANGE, + (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) + ? match + // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY +) + +// See fixtures #59 +const cleanRangeBackSlash = slashes => { + const {length} = slashes + return slashes.slice(0, length - length % 2) +} + +// > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` + +// '`foo/`' should not continue with the '`..`' +const REPLACERS = [ + + // > Trailing spaces are ignored unless they are quoted with backslash ("\") + [ + // (a\ ) -> (a ) + // (a ) -> (a) + // (a \ ) -> (a ) + /\\?\s+$/, + match => match.indexOf('\\') === 0 + ? SPACE + : EMPTY + ], + + // replace (\ ) with ' ' + [ + /\\\s/g, + () => SPACE + ], + + // Escape metacharacters + // which is written down by users but means special for regular expressions. + + // > There are 12 characters with special meanings: + // > - the backslash \, + // > - the caret ^, + // > - the dollar sign $, + // > - the period or dot ., + // > - the vertical bar or pipe symbol |, + // > - the question mark ?, + // > - the asterisk or star *, + // > - the plus sign +, + // > - the opening parenthesis (, + // > - the closing parenthesis ), + // > - and the opening square bracket [, + // > - the opening curly brace {, + // > These special characters are often called "metacharacters". + [ + /[\\$.|*+(){^]/g, + match => `\\${match}` + ], + + [ + // > a question mark (?) matches a single character + /(?!\\)\?/g, + () => '[^/]' + ], + + // leading slash + [ + + // > A leading slash matches the beginning of the pathname. + // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". + // A leading slash matches the beginning of the pathname + /^\//, + () => '^' + ], + + // replace special metacharacter slash after the leading slash + [ + /\//g, + () => '\\/' + ], + + [ + // > A leading "**" followed by a slash means match in all directories. + // > For example, "**/foo" matches file or directory "foo" anywhere, + // > the same as pattern "foo". + // > "**/foo/bar" matches file or directory "bar" anywhere that is directly + // > under directory "foo". + // Notice that the '*'s have been replaced as '\\*' + /^\^*\\\*\\\*\\\//, + + // '**/foo' <-> 'foo' + () => '^(?:.*\\/)?' + ], + + // starting + [ + // there will be no leading '/' + // (which has been replaced by section "leading slash") + // If starts with '**', adding a '^' to the regular expression also works + /^(?=[^^])/, + function startingReplacer () { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) + // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' + + // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^' + } + ], + + // two globstars + [ + // Use lookahead assertions so that we could match more than one `'/**'` + /\\\/\\\*\\\*(?=\\\/|$)/g, + + // Zero, one or several directories + // should not use '*', or it will be replaced by the next replacer + + // Check if it is not the last `'/**'` + (_, index, str) => index + 6 < str.length + + // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' + + // case: /** + // > A trailing `"/**"` matches everything inside. + + // #21: everything inside but it should not include the current folder + : '\\/.+' + ], + + // intermediate wildcards + [ + // Never replace escaped '*' + // ignore rule '\*' will match the path '*' + + // 'abc.*/' -> go + // 'abc.*' -> skip this rule + /(^|[^\\]+)\\\*(?=.+)/g, + + // '*.js' matches '.js' + // '*.js' doesn't match 'abc' + (_, p1) => `${p1}[^\\/]*` + ], + + [ + // unescape, revert step 3 except for back slash + // For example, if a user escape a '\\*', + // after step 3, the result will be '\\\\\\*' + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + + [ + // '\\\\' -> '\\' + /\\\\/g, + () => ESCAPE + ], + + [ + // > The range notation, e.g. [a-zA-Z], + // > can be used to match one of the characters in a range. + + // `\` is escaped by step 3 + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE + // '\\[bar]' -> '\\\\[bar\\]' + ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` + : close === ']' + ? endEscape.length % 2 === 0 + // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? `[${sanitizeRange(range)}${endEscape}]` + // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' + : '[]' + ], + + // ending + [ + // 'js' will not match 'js.' + // 'ab' will not match 'abc' + /(?:[^*])$/, + + // WTF! + // https://git-scm.com/docs/gitignore + // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) + // which re-fixes #24, #38 + + // > If there is a separator at the end of the pattern then the pattern + // > will only match directories, otherwise the pattern can match both + // > files and directories. + + // 'js*' will not match 'a.js' + // 'js/' will not match 'a.js' + // 'js' will match 'a.js' and 'a.js/' + match => /\/$/.test(match) + // foo/ will not match 'foo' + ? `${match}$` + // foo matches 'foo' and 'foo/' + : `${match}(?=$|\\/$)` + ], + + // trailing wildcard + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 + // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything + + // '\\\/': + // 'abc/*' does not match 'abc/' + ? `${p1}[^/]+` + + // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*' + + return `${prefix}(?=$|\\/$)` + } + ], +] + +// A simple cache, because an ignore rule only has only one certain meaning +const regexCache = Object.create(null) + +// @param {pattern} +const makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern] + + if (!source) { + source = REPLACERS.reduce( + (prev, current) => prev.replace(current[0], current[1].bind(pattern)), + pattern + ) + regexCache[pattern] = source + } + + return ignoreCase + ? new RegExp(source, 'i') + : new RegExp(source) +} + +const isString = subject => typeof subject === 'string' + +// > A blank line matches no files, so it can serve as a separator for readability. +const checkPattern = pattern => pattern + && isString(pattern) + && !REGEX_TEST_BLANK_LINE.test(pattern) + + // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0 + +const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF) + +class IgnoreRule { + constructor ( + origin, + pattern, + negative, + regex + ) { + this.origin = origin + this.pattern = pattern + this.negative = negative + this.regex = regex + } +} + +const createRule = (pattern, ignoreCase) => { + const origin = pattern + let negative = false + + // > An optional prefix "!" which negates the pattern; + if (pattern.indexOf('!') === 0) { + negative = true + pattern = pattern.substr(1) + } + + pattern = pattern + // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') + // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#') + + const regex = makeRegex(pattern, ignoreCase) + + return new IgnoreRule( + origin, + pattern, + negative, + regex + ) +} + +const throwError = (message, Ctor) => { + throw new Ctor(message) +} + +const checkPath = (path, originalPath, doThrow) => { + if (!isString(path)) { + return doThrow( + `path must be a string, but got \`${originalPath}\``, + TypeError + ) + } + + // We don't know if we should ignore EMPTY, so throw + if (!path) { + return doThrow(`path must not be empty`, TypeError) + } + + // Check if it is a relative path + if (checkPath.isNotRelative(path)) { + const r = '`path.relative()`d' + return doThrow( + `path should be a ${r} string, but got "${originalPath}"`, + RangeError + ) + } + + return true +} + +const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path) + +checkPath.isNotRelative = isNotRelative +checkPath.convert = p => p + +class Ignore { + constructor ({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define(this, KEY_IGNORE, true) + + this._rules = [] + this._ignoreCase = ignoreCase + this._allowRelativePaths = allowRelativePaths + this._initCache() + } + + _initCache () { + this._ignoreCache = Object.create(null) + this._testCache = Object.create(null) + } + + _addPattern (pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules) + this._added = true + return + } + + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase) + this._added = true + this._rules.push(rule) + } + } + + // @param {Array | string | Ignore} pattern + add (pattern) { + this._added = false + + makeArray( + isString(pattern) + ? splitPattern(pattern) + : pattern + ).forEach(this._addPattern, this) + + // Some rules have just added to the ignore, + // making the behavior changed. + if (this._added) { + this._initCache() + } + + return this + } + + // legacy + addPattern (pattern) { + return this.add(pattern) + } + + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + + // @returns {TestResult} true if a file is ignored + _testOne (path, checkUnignored) { + let ignored = false + let unignored = false + + this._rules.forEach(rule => { + const {negative} = rule + if ( + unignored === negative && ignored !== unignored + || negative && !ignored && !unignored && !checkUnignored + ) { + return + } + + const matched = rule.regex.test(path) + + if (matched) { + ignored = !negative + unignored = negative + } + }) + + return { + ignored, + unignored + } + } + + // @returns {TestResult} + _test (originalPath, cache, checkUnignored, slices) { + const path = originalPath + // Supports nullable path + && checkPath.convert(originalPath) + + checkPath( + path, + originalPath, + this._allowRelativePaths + ? RETURN_FALSE + : throwError + ) + + return this._t(path, cache, checkUnignored, slices) + } + + _t (path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path] + } + + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH) + } + + slices.pop() + + // If the path has no parent directory, just test it + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored) + } + + const parent = this._t( + slices.join(SLASH) + SLASH, + cache, + checkUnignored, + slices + ) + + // If the path contains a parent directory, check the parent first + return cache[path] = parent.ignored + // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent + : this._testOne(path, checkUnignored) + } + + ignores (path) { + return this._test(path, this._ignoreCache, false).ignored + } + + createFilter () { + return path => !this.ignores(path) + } + + filter (paths) { + return makeArray(paths).filter(this.createFilter()) + } + + // @returns {TestResult} + test (path) { + return this._test(path, this._testCache, true) + } +} + +const factory = options => new Ignore(options) + +const isPathValid = path => + checkPath(path && checkPath.convert(path), path, RETURN_FALSE) + +factory.isPathValid = isPathValid + +// Fixes typescript +factory.default = factory + +module.exports = factory + +// Windows +// -------------------------------------------------------------- +/* istanbul ignore if */ +if ( + // Detect `process` so that it can run in browsers. + typeof process !== 'undefined' + && ( + process.env && process.env.IGNORE_TEST_WIN32 + || process.platform === 'win32' + ) +) { + /* eslint no-control-regex: "off" */ + const makePosix = str => /^\\\\\?\\/.test(str) + || /["<>|\u0000-\u001F]+/u.test(str) + ? str + : str.replace(/\\/g, '/') + + checkPath.convert = makePosix + + // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i + checkPath.isNotRelative = path => + REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) + || isNotRelative(path) +} diff --git a/node_modules/ignore/legacy.js b/node_modules/ignore/legacy.js new file mode 100644 index 0000000..b579d6f --- /dev/null +++ b/node_modules/ignore/legacy.js @@ -0,0 +1,498 @@ +"use strict"; + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +// A simple implementation of make-array +function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; +} + +var EMPTY = ''; +var SPACE = ' '; +var ESCAPE = '\\'; +var REGEX_TEST_BLANK_LINE = /^\s+$/; +var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; +var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; +var REGEX_SPLITALL_CRLF = /\r?\n/g; // /foo, +// ./foo, +// ../foo, +// . +// .. + +var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; +var SLASH = '/'; +var KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol["for"]('node-ignore') +/* istanbul ignore next */ +: 'node-ignore'; + +var define = function define(object, key, value) { + return Object.defineProperty(object, key, { + value: value + }); +}; + +var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + +var RETURN_FALSE = function RETURN_FALSE() { + return false; +}; // Sanitize the range of a regular expression +// The cases are complicated, see test cases for details + + +var sanitizeRange = function sanitizeRange(range) { + return range.replace(REGEX_REGEXP_RANGE, function (match, from, to) { + return from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY; + }); +}; // See fixtures #59 + + +var cleanRangeBackSlash = function cleanRangeBackSlash(slashes) { + var length = slashes.length; + return slashes.slice(0, length - length % 2); +}; // > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` +// '`foo/`' should not continue with the '`..`' + + +var REPLACERS = [// > Trailing spaces are ignored unless they are quoted with backslash ("\") +[// (a\ ) -> (a ) +// (a ) -> (a) +// (a \ ) -> (a ) +/\\?\s+$/, function (match) { + return match.indexOf('\\') === 0 ? SPACE : EMPTY; +}], // replace (\ ) with ' ' +[/\\\s/g, function () { + return SPACE; +}], // Escape metacharacters +// which is written down by users but means special for regular expressions. +// > There are 12 characters with special meanings: +// > - the backslash \, +// > - the caret ^, +// > - the dollar sign $, +// > - the period or dot ., +// > - the vertical bar or pipe symbol |, +// > - the question mark ?, +// > - the asterisk or star *, +// > - the plus sign +, +// > - the opening parenthesis (, +// > - the closing parenthesis ), +// > - and the opening square bracket [, +// > - the opening curly brace {, +// > These special characters are often called "metacharacters". +[/[\\$.|*+(){^]/g, function (match) { + return "\\".concat(match); +}], [// > a question mark (?) matches a single character +/(?!\\)\?/g, function () { + return '[^/]'; +}], // leading slash +[// > A leading slash matches the beginning of the pathname. +// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". +// A leading slash matches the beginning of the pathname +/^\//, function () { + return '^'; +}], // replace special metacharacter slash after the leading slash +[/\//g, function () { + return '\\/'; +}], [// > A leading "**" followed by a slash means match in all directories. +// > For example, "**/foo" matches file or directory "foo" anywhere, +// > the same as pattern "foo". +// > "**/foo/bar" matches file or directory "bar" anywhere that is directly +// > under directory "foo". +// Notice that the '*'s have been replaced as '\\*' +/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo' +function () { + return '^(?:.*\\/)?'; +}], // starting +[// there will be no leading '/' +// (which has been replaced by section "leading slash") +// If starts with '**', adding a '^' to the regular expression also works +/^(?=[^^])/, function startingReplacer() { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^'; +}], // two globstars +[// Use lookahead assertions so that we could match more than one `'/**'` +/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories +// should not use '*', or it will be replaced by the next replacer +// Check if it is not the last `'/**'` +function (_, index, str) { + return index + 6 < str.length // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' // case: /** + // > A trailing `"/**"` matches everything inside. + // #21: everything inside but it should not include the current folder + : '\\/.+'; +}], // intermediate wildcards +[// Never replace escaped '*' +// ignore rule '\*' will match the path '*' +// 'abc.*/' -> go +// 'abc.*' -> skip this rule +/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js' +// '*.js' doesn't match 'abc' +function (_, p1) { + return "".concat(p1, "[^\\/]*"); +}], [// unescape, revert step 3 except for back slash +// For example, if a user escape a '\\*', +// after step 3, the result will be '\\\\\\*' +/\\\\\\(?=[$.|*+(){^])/g, function () { + return ESCAPE; +}], [// '\\\\' -> '\\' +/\\\\/g, function () { + return ESCAPE; +}], [// > The range notation, e.g. [a-zA-Z], +// > can be used to match one of the characters in a range. +// `\` is escaped by step 3 +/(\\)?\[([^\]/]*?)(\\*)($|\])/g, function (match, leadEscape, range, endEscape, close) { + return leadEscape === ESCAPE // '\\[bar]' -> '\\\\[bar\\]' + ? "\\[".concat(range).concat(cleanRangeBackSlash(endEscape)).concat(close) : close === ']' ? endEscape.length % 2 === 0 // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? "[".concat(sanitizeRange(range)).concat(endEscape, "]") // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' : '[]'; +}], // ending +[// 'js' will not match 'js.' +// 'ab' will not match 'abc' +/(?:[^*])$/, // WTF! +// https://git-scm.com/docs/gitignore +// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) +// which re-fixes #24, #38 +// > If there is a separator at the end of the pattern then the pattern +// > will only match directories, otherwise the pattern can match both +// > files and directories. +// 'js*' will not match 'a.js' +// 'js/' will not match 'a.js' +// 'js' will match 'a.js' and 'a.js/' +function (match) { + return /\/$/.test(match) // foo/ will not match 'foo' + ? "".concat(match, "$") // foo matches 'foo' and 'foo/' + : "".concat(match, "(?=$|\\/$)"); +}], // trailing wildcard +[/(\^|\\\/)?\\\*$/, function (_, p1) { + var prefix = p1 // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything + // '\\\/': + // 'abc/*' does not match 'abc/' + ? "".concat(p1, "[^/]+") // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*'; + return "".concat(prefix, "(?=$|\\/$)"); +}]]; // A simple cache, because an ignore rule only has only one certain meaning + +var regexCache = Object.create(null); // @param {pattern} + +var makeRegex = function makeRegex(pattern, ignoreCase) { + var source = regexCache[pattern]; + + if (!source) { + source = REPLACERS.reduce(function (prev, current) { + return prev.replace(current[0], current[1].bind(pattern)); + }, pattern); + regexCache[pattern] = source; + } + + return ignoreCase ? new RegExp(source, 'i') : new RegExp(source); +}; + +var isString = function isString(subject) { + return typeof subject === 'string'; +}; // > A blank line matches no files, so it can serve as a separator for readability. + + +var checkPattern = function checkPattern(pattern) { + return pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0; +}; + +var splitPattern = function splitPattern(pattern) { + return pattern.split(REGEX_SPLITALL_CRLF); +}; + +var IgnoreRule = function IgnoreRule(origin, pattern, negative, regex) { + _classCallCheck(this, IgnoreRule); + + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex; +}; + +var createRule = function createRule(pattern, ignoreCase) { + var origin = pattern; + var negative = false; // > An optional prefix "!" which negates the pattern; + + if (pattern.indexOf('!') === 0) { + negative = true; + pattern = pattern.substr(1); + } + + pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#'); + var regex = makeRegex(pattern, ignoreCase); + return new IgnoreRule(origin, pattern, negative, regex); +}; + +var throwError = function throwError(message, Ctor) { + throw new Ctor(message); +}; + +var checkPath = function checkPath(path, originalPath, doThrow) { + if (!isString(path)) { + return doThrow("path must be a string, but got `".concat(originalPath, "`"), TypeError); + } // We don't know if we should ignore EMPTY, so throw + + + if (!path) { + return doThrow("path must not be empty", TypeError); + } // Check if it is a relative path + + + if (checkPath.isNotRelative(path)) { + var r = '`path.relative()`d'; + return doThrow("path should be a ".concat(r, " string, but got \"").concat(originalPath, "\""), RangeError); + } + + return true; +}; + +var isNotRelative = function isNotRelative(path) { + return REGEX_TEST_INVALID_PATH.test(path); +}; + +checkPath.isNotRelative = isNotRelative; + +checkPath.convert = function (p) { + return p; +}; + +var Ignore = /*#__PURE__*/function () { + function Ignore() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$ignorecase = _ref.ignorecase, + ignorecase = _ref$ignorecase === void 0 ? true : _ref$ignorecase, + _ref$ignoreCase = _ref.ignoreCase, + ignoreCase = _ref$ignoreCase === void 0 ? ignorecase : _ref$ignoreCase, + _ref$allowRelativePat = _ref.allowRelativePaths, + allowRelativePaths = _ref$allowRelativePat === void 0 ? false : _ref$allowRelativePat; + + _classCallCheck(this, Ignore); + + define(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + + this._initCache(); + } + + _createClass(Ignore, [{ + key: "_initCache", + value: function _initCache() { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); + } + }, { + key: "_addPattern", + value: function _addPattern(pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + + if (checkPattern(pattern)) { + var rule = createRule(pattern, this._ignoreCase); + this._added = true; + + this._rules.push(rule); + } + } // @param {Array | string | Ignore} pattern + + }, { + key: "add", + value: function add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore, + // making the behavior changed. + + if (this._added) { + this._initCache(); + } + + return this; + } // legacy + + }, { + key: "addPattern", + value: function addPattern(pattern) { + return this.add(pattern); + } // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + // @returns {TestResult} true if a file is ignored + + }, { + key: "_testOne", + value: function _testOne(path, checkUnignored) { + var ignored = false; + var unignored = false; + + this._rules.forEach(function (rule) { + var negative = rule.negative; + + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + + var matched = rule.regex.test(path); + + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + + return { + ignored: ignored, + unignored: unignored + }; + } // @returns {TestResult} + + }, { + key: "_test", + value: function _test(originalPath, cache, checkUnignored, slices) { + var path = originalPath // Supports nullable path + && checkPath.convert(originalPath); + checkPath(path, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError); + return this._t(path, cache, checkUnignored, slices); + } + }, { + key: "_t", + value: function _t(path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path]; + } + + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH); + } + + slices.pop(); // If the path has no parent directory, just test it + + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored); + } + + var parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); // If the path contains a parent directory, check the parent first + + + return cache[path] = parent.ignored // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent : this._testOne(path, checkUnignored); + } + }, { + key: "ignores", + value: function ignores(path) { + return this._test(path, this._ignoreCache, false).ignored; + } + }, { + key: "createFilter", + value: function createFilter() { + var _this = this; + + return function (path) { + return !_this.ignores(path); + }; + } + }, { + key: "filter", + value: function filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } // @returns {TestResult} + + }, { + key: "test", + value: function test(path) { + return this._test(path, this._testCache, true); + } + }]); + + return Ignore; +}(); + +var factory = function factory(options) { + return new Ignore(options); +}; + +var isPathValid = function isPathValid(path) { + return checkPath(path && checkPath.convert(path), path, RETURN_FALSE); +}; + +factory.isPathValid = isPathValid; // Fixes typescript + +factory["default"] = factory; +module.exports = factory; // Windows +// -------------------------------------------------------------- + +/* istanbul ignore if */ + +if ( // Detect `process` so that it can run in browsers. +typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { + /* eslint no-control-regex: "off" */ + var makePosix = function makePosix(str) { + return /^\\\\\?\\/.test(str) || /[\0-\x1F"<>\|]+/.test(str) ? str : str.replace(/\\/g, '/'); + }; + + checkPath.convert = makePosix; // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + + var REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + + checkPath.isNotRelative = function (path) { + return REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path); + }; +} diff --git a/node_modules/ignore/package.json b/node_modules/ignore/package.json new file mode 100644 index 0000000..45de575 --- /dev/null +++ b/node_modules/ignore/package.json @@ -0,0 +1,71 @@ +{ + "name": "ignore", + "version": "5.2.0", + "description": "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.", + "files": [ + "legacy.js", + "index.js", + "index.d.ts", + "LICENSE-MIT" + ], + "scripts": { + "prepublishOnly": "npm run build", + "build": "babel -o legacy.js index.js", + "test:lint": "eslint .", + "test:tsc": "tsc ./test/ts/simple.ts --lib ES6", + "test:ts": "node ./test/ts/simple.js", + "tap": "tap --reporter classic", + "test:git": "npm run tap test/git-check-ignore.js", + "test:ignore": "npm run tap test/ignore.js", + "test:others": "npm run tap test/others.js", + "test:cases": "npm run tap test/*.js -- --coverage", + "test:only": "npm run test:lint && npm run test:tsc && npm run test:ts && npm run test:cases", + "test": "npm run test:only", + "test:win32": "IGNORE_TEST_WIN32=1 npm run test", + "posttest": "tap --coverage-report=html && codecov" + }, + "repository": { + "type": "git", + "url": "git@github.com:kaelzhang/node-ignore.git" + }, + "keywords": [ + "ignore", + ".gitignore", + "gitignore", + "npmignore", + "rules", + "manager", + "filter", + "regexp", + "regex", + "fnmatch", + "glob", + "asterisks", + "regular-expression" + ], + "author": "kael", + "license": "MIT", + "bugs": { + "url": "https://github.com/kaelzhang/node-ignore/issues" + }, + "devDependencies": { + "@babel/cli": "^7.8.4", + "@babel/core": "^7.9.6", + "@babel/preset-env": "^7.9.6", + "codecov": "^3.7.0", + "debug": "^4.1.1", + "eslint": "^7.0.0", + "eslint-config-ostai": "^3.0.0", + "eslint-plugin-import": "^2.20.2", + "mkdirp": "^1.0.4", + "pre-suf": "^1.1.1", + "rimraf": "^3.0.2", + "spawn-sync": "^2.0.0", + "tap": "^14.10.7", + "tmp": "0.2.1", + "typescript": "^3.9.3" + }, + "engines": { + "node": ">= 4" + } +} diff --git a/node_modules/import-fresh/index.d.ts b/node_modules/import-fresh/index.d.ts new file mode 100644 index 0000000..36d7e20 --- /dev/null +++ b/node_modules/import-fresh/index.d.ts @@ -0,0 +1,30 @@ +/** +Import a module while bypassing the cache. + +@example +``` +// foo.js +let i = 0; +module.exports = () => ++i; + +// index.js +import importFresh = require('import-fresh'); + +require('./foo')(); +//=> 1 + +require('./foo')(); +//=> 2 + +importFresh('./foo')(); +//=> 1 + +importFresh('./foo')(); +//=> 1 + +const foo = importFresh('./foo'); +``` +*/ +declare function importFresh(moduleId: string): T; + +export = importFresh; diff --git a/node_modules/import-fresh/index.js b/node_modules/import-fresh/index.js new file mode 100644 index 0000000..0a4c5d5 --- /dev/null +++ b/node_modules/import-fresh/index.js @@ -0,0 +1,33 @@ +'use strict'; +const path = require('path'); +const resolveFrom = require('resolve-from'); +const parentModule = require('parent-module'); + +module.exports = moduleId => { + if (typeof moduleId !== 'string') { + throw new TypeError('Expected a string'); + } + + const parentPath = parentModule(__filename); + + const cwd = parentPath ? path.dirname(parentPath) : __dirname; + const filePath = resolveFrom(cwd, moduleId); + + const oldModule = require.cache[filePath]; + // Delete itself from module parent + if (oldModule && oldModule.parent) { + let i = oldModule.parent.children.length; + + while (i--) { + if (oldModule.parent.children[i].id === filePath) { + oldModule.parent.children.splice(i, 1); + } + } + } + + delete require.cache[filePath]; // Delete module from cache + + const parent = require.cache[parentPath]; // If `filePath` and `parentPath` are the same, cache will already be deleted so we won't get a memory leak in next step + + return parent === undefined ? require(filePath) : parent.require(filePath); // In case cache doesn't have parent, fall back to normal require +}; diff --git a/node_modules/import-fresh/license b/node_modules/import-fresh/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/import-fresh/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/import-fresh/package.json b/node_modules/import-fresh/package.json new file mode 100644 index 0000000..0c09362 --- /dev/null +++ b/node_modules/import-fresh/package.json @@ -0,0 +1,43 @@ +{ + "name": "import-fresh", + "version": "3.3.0", + "description": "Import a module while bypassing the cache", + "license": "MIT", + "repository": "sindresorhus/import-fresh", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava && tsd", + "heapdump": "node heapdump.js" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "require", + "cache", + "uncache", + "uncached", + "module", + "fresh", + "bypass" + ], + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "devDependencies": { + "ava": "^1.0.1", + "heapdump": "^0.3.12", + "tsd": "^0.7.3", + "xo": "^0.23.0" + } +} diff --git a/node_modules/import-fresh/readme.md b/node_modules/import-fresh/readme.md new file mode 100644 index 0000000..bd14c79 --- /dev/null +++ b/node_modules/import-fresh/readme.md @@ -0,0 +1,48 @@ +# import-fresh + +> Import a module while bypassing the [cache](https://nodejs.org/api/modules.html#modules_caching) + +Useful for testing purposes when you need to freshly import a module. + +## Install + +``` +$ npm install import-fresh +``` + +## Usage + +```js +// foo.js +let i = 0; +module.exports = () => ++i; +``` + +```js +const importFresh = require('import-fresh'); + +require('./foo')(); +//=> 1 + +require('./foo')(); +//=> 2 + +importFresh('./foo')(); +//=> 1 + +importFresh('./foo')(); +//=> 1 +``` + +## import-fresh for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of import-fresh and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-import-fresh?utm_source=npm-import-fresh&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Related + +- [clear-module](https://github.com/sindresorhus/clear-module) - Clear a module from the import cache +- [import-from](https://github.com/sindresorhus/import-from) - Import a module from a given path +- [import-cwd](https://github.com/sindresorhus/import-cwd) - Import a module from the current working directory +- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import modules lazily diff --git a/node_modules/imurmurhash/README.md b/node_modules/imurmurhash/README.md new file mode 100644 index 0000000..f35b20a --- /dev/null +++ b/node_modules/imurmurhash/README.md @@ -0,0 +1,122 @@ +iMurmurHash.js +============== + +An incremental implementation of the MurmurHash3 (32-bit) hashing algorithm for JavaScript based on [Gary Court's implementation](https://github.com/garycourt/murmurhash-js) with [kazuyukitanimura's modifications](https://github.com/kazuyukitanimura/murmurhash-js). + +This version works significantly faster than the non-incremental version if you need to hash many small strings into a single hash, since string concatenation (to build the single string to pass the non-incremental version) is fairly costly. In one case tested, using the incremental version was about 50% faster than concatenating 5-10 strings and then hashing. + +Installation +------------ + +To use iMurmurHash in the browser, [download the latest version](https://raw.github.com/jensyt/imurmurhash-js/master/imurmurhash.min.js) and include it as a script on your site. + +```html + + +``` + +--- + +To use iMurmurHash in Node.js, install the module using NPM: + +```bash +npm install imurmurhash +``` + +Then simply include it in your scripts: + +```javascript +MurmurHash3 = require('imurmurhash'); +``` + +Quick Example +------------- + +```javascript +// Create the initial hash +var hashState = MurmurHash3('string'); + +// Incrementally add text +hashState.hash('more strings'); +hashState.hash('even more strings'); + +// All calls can be chained if desired +hashState.hash('and').hash('some').hash('more'); + +// Get a result +hashState.result(); +// returns 0xe4ccfe6b +``` + +Functions +--------- + +### MurmurHash3 ([string], [seed]) +Get a hash state object, optionally initialized with the given _string_ and _seed_. _Seed_ must be a positive integer if provided. Calling this function without the `new` keyword will return a cached state object that has been reset. This is safe to use as long as the object is only used from a single thread and no other hashes are created while operating on this one. If this constraint cannot be met, you can use `new` to create a new state object. For example: + +```javascript +// Use the cached object, calling the function again will return the same +// object (but reset, so the current state would be lost) +hashState = MurmurHash3(); +... + +// Create a new object that can be safely used however you wish. Calling the +// function again will simply return a new state object, and no state loss +// will occur, at the cost of creating more objects. +hashState = new MurmurHash3(); +``` + +Both methods can be mixed however you like if you have different use cases. + +--- + +### MurmurHash3.prototype.hash (string) +Incrementally add _string_ to the hash. This can be called as many times as you want for the hash state object, including after a call to `result()`. Returns `this` so calls can be chained. + +--- + +### MurmurHash3.prototype.result () +Get the result of the hash as a 32-bit positive integer. This performs the tail and finalizer portions of the algorithm, but does not store the result in the state object. This means that it is perfectly safe to get results and then continue adding strings via `hash`. + +```javascript +// Do the whole string at once +MurmurHash3('this is a test string').result(); +// 0x70529328 + +// Do part of the string, get a result, then the other part +var m = MurmurHash3('this is a'); +m.result(); +// 0xbfc4f834 +m.hash(' test string').result(); +// 0x70529328 (same as above) +``` + +--- + +### MurmurHash3.prototype.reset ([seed]) +Reset the state object for reuse, optionally using the given _seed_ (defaults to 0 like the constructor). Returns `this` so calls can be chained. + +--- + +License (MIT) +------------- +Copyright (c) 2013 Gary Court, Jens Taylor + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/imurmurhash/imurmurhash.js b/node_modules/imurmurhash/imurmurhash.js new file mode 100644 index 0000000..e63146a --- /dev/null +++ b/node_modules/imurmurhash/imurmurhash.js @@ -0,0 +1,138 @@ +/** + * @preserve + * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) + * + * @author Jens Taylor + * @see http://github.com/homebrewing/brauhaus-diff + * @author Gary Court + * @see http://github.com/garycourt/murmurhash-js + * @author Austin Appleby + * @see http://sites.google.com/site/murmurhash/ + */ +(function(){ + var cache; + + // Call this function without `new` to use the cached object (good for + // single-threaded environments), or with `new` to create a new object. + // + // @param {string} key A UTF-16 or ASCII string + // @param {number} seed An optional positive integer + // @return {object} A MurmurHash3 object for incremental hashing + function MurmurHash3(key, seed) { + var m = this instanceof MurmurHash3 ? this : cache; + m.reset(seed) + if (typeof key === 'string' && key.length > 0) { + m.hash(key); + } + + if (m !== this) { + return m; + } + }; + + // Incrementally add a string to this hash + // + // @param {string} key A UTF-16 or ASCII string + // @return {object} this + MurmurHash3.prototype.hash = function(key) { + var h1, k1, i, top, len; + + len = key.length; + this.len += len; + + k1 = this.k1; + i = 0; + switch (this.rem) { + case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; + case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; + case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; + case 3: + k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; + k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; + } + + this.rem = (len + this.rem) & 3; // & 3 is same as % 4 + len -= this.rem; + if (len > 0) { + h1 = this.h1; + while (1) { + k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; + + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; + + if (i >= len) { + break; + } + + k1 = ((key.charCodeAt(i++) & 0xffff)) ^ + ((key.charCodeAt(i++) & 0xffff) << 8) ^ + ((key.charCodeAt(i++) & 0xffff) << 16); + top = key.charCodeAt(i++); + k1 ^= ((top & 0xff) << 24) ^ + ((top & 0xff00) >> 8); + } + + k1 = 0; + switch (this.rem) { + case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; + case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; + case 1: k1 ^= (key.charCodeAt(i) & 0xffff); + } + + this.h1 = h1; + } + + this.k1 = k1; + return this; + }; + + // Get the result of this hash + // + // @return {number} The 32-bit hash + MurmurHash3.prototype.result = function() { + var k1, h1; + + k1 = this.k1; + h1 = this.h1; + + if (k1 > 0) { + k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; + h1 ^= k1; + } + + h1 ^= this.len; + + h1 ^= h1 >>> 16; + h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; + h1 ^= h1 >>> 13; + h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; + h1 ^= h1 >>> 16; + + return h1 >>> 0; + }; + + // Reset the hash object for reuse + // + // @param {number} seed An optional positive integer + MurmurHash3.prototype.reset = function(seed) { + this.h1 = typeof seed === 'number' ? seed : 0; + this.rem = this.k1 = this.len = 0; + return this; + }; + + // A cached object to use. This can be safely used if you're in a single- + // threaded environment, otherwise you need to create new hashes to use. + cache = new MurmurHash3(); + + if (typeof(module) != 'undefined') { + module.exports = MurmurHash3; + } else { + this.MurmurHash3 = MurmurHash3; + } +}()); diff --git a/node_modules/imurmurhash/imurmurhash.min.js b/node_modules/imurmurhash/imurmurhash.min.js new file mode 100644 index 0000000..dc0ee88 --- /dev/null +++ b/node_modules/imurmurhash/imurmurhash.min.js @@ -0,0 +1,12 @@ +/** + * @preserve + * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) + * + * @author Jens Taylor + * @see http://github.com/homebrewing/brauhaus-diff + * @author Gary Court + * @see http://github.com/garycourt/murmurhash-js + * @author Austin Appleby + * @see http://sites.google.com/site/murmurhash/ + */ +!function(){function t(h,r){var s=this instanceof t?this:e;return s.reset(r),"string"==typeof h&&h.length>0&&s.hash(h),s!==this?s:void 0}var e;t.prototype.hash=function(t){var e,h,r,s,i;switch(i=t.length,this.len+=i,h=this.k1,r=0,this.rem){case 0:h^=i>r?65535&t.charCodeAt(r++):0;case 1:h^=i>r?(65535&t.charCodeAt(r++))<<8:0;case 2:h^=i>r?(65535&t.charCodeAt(r++))<<16:0;case 3:h^=i>r?(255&t.charCodeAt(r))<<24:0,h^=i>r?(65280&t.charCodeAt(r++))>>8:0}if(this.rem=3&i+this.rem,i-=this.rem,i>0){for(e=this.h1;;){if(h=4294967295&11601*h+3432906752*(65535&h),h=h<<15|h>>>17,h=4294967295&13715*h+461832192*(65535&h),e^=h,e=e<<13|e>>>19,e=4294967295&5*e+3864292196,r>=i)break;h=65535&t.charCodeAt(r++)^(65535&t.charCodeAt(r++))<<8^(65535&t.charCodeAt(r++))<<16,s=t.charCodeAt(r++),h^=(255&s)<<24^(65280&s)>>8}switch(h=0,this.rem){case 3:h^=(65535&t.charCodeAt(r+2))<<16;case 2:h^=(65535&t.charCodeAt(r+1))<<8;case 1:h^=65535&t.charCodeAt(r)}this.h1=e}return this.k1=h,this},t.prototype.result=function(){var t,e;return t=this.k1,e=this.h1,t>0&&(t=4294967295&11601*t+3432906752*(65535&t),t=t<<15|t>>>17,t=4294967295&13715*t+461832192*(65535&t),e^=t),e^=this.len,e^=e>>>16,e=4294967295&51819*e+2246770688*(65535&e),e^=e>>>13,e=4294967295&44597*e+3266445312*(65535&e),e^=e>>>16,e>>>0},t.prototype.reset=function(t){return this.h1="number"==typeof t?t:0,this.rem=this.k1=this.len=0,this},e=new t,"undefined"!=typeof module?module.exports=t:this.MurmurHash3=t}(); \ No newline at end of file diff --git a/node_modules/imurmurhash/package.json b/node_modules/imurmurhash/package.json new file mode 100644 index 0000000..8a93edb --- /dev/null +++ b/node_modules/imurmurhash/package.json @@ -0,0 +1,40 @@ +{ + "name": "imurmurhash", + "version": "0.1.4", + "description": "An incremental implementation of MurmurHash3", + "homepage": "https://github.com/jensyt/imurmurhash-js", + "main": "imurmurhash.js", + "files": [ + "imurmurhash.js", + "imurmurhash.min.js", + "package.json", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/jensyt/imurmurhash-js" + }, + "bugs": { + "url": "https://github.com/jensyt/imurmurhash-js/issues" + }, + "keywords": [ + "murmur", + "murmurhash", + "murmurhash3", + "hash", + "incremental" + ], + "author": { + "name": "Jens Taylor", + "email": "jensyt@gmail.com", + "url": "https://github.com/homebrewing" + }, + "license": "MIT", + "dependencies": { + }, + "devDependencies": { + }, + "engines": { + "node": ">=0.8.19" + } +} diff --git a/node_modules/inflight/LICENSE b/node_modules/inflight/LICENSE new file mode 100644 index 0000000..05eeeb8 --- /dev/null +++ b/node_modules/inflight/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/inflight/README.md b/node_modules/inflight/README.md new file mode 100644 index 0000000..6dc8929 --- /dev/null +++ b/node_modules/inflight/README.md @@ -0,0 +1,37 @@ +# inflight + +Add callbacks to requests in flight to avoid async duplication + +## USAGE + +```javascript +var inflight = require('inflight') + +// some request that does some stuff +function req(key, callback) { + // key is any random string. like a url or filename or whatever. + // + // will return either a falsey value, indicating that the + // request for this key is already in flight, or a new callback + // which when called will call all callbacks passed to inflightk + // with the same key + callback = inflight(key, callback) + + // If we got a falsey value back, then there's already a req going + if (!callback) return + + // this is where you'd fetch the url or whatever + // callback is also once()-ified, so it can safely be assigned + // to multiple events etc. First call wins. + setTimeout(function() { + callback(null, key) + }, 100) +} + +// only assigns a single setTimeout +// when it dings, all cbs get called +req('foo', cb1) +req('foo', cb2) +req('foo', cb3) +req('foo', cb4) +``` diff --git a/node_modules/inflight/inflight.js b/node_modules/inflight/inflight.js new file mode 100644 index 0000000..48202b3 --- /dev/null +++ b/node_modules/inflight/inflight.js @@ -0,0 +1,54 @@ +var wrappy = require('wrappy') +var reqs = Object.create(null) +var once = require('once') + +module.exports = wrappy(inflight) + +function inflight (key, cb) { + if (reqs[key]) { + reqs[key].push(cb) + return null + } else { + reqs[key] = [cb] + return makeres(key) + } +} + +function makeres (key) { + return once(function RES () { + var cbs = reqs[key] + var len = cbs.length + var args = slice(arguments) + + // XXX It's somewhat ambiguous whether a new callback added in this + // pass should be queued for later execution if something in the + // list of callbacks throws, or if it should just be discarded. + // However, it's such an edge case that it hardly matters, and either + // choice is likely as surprising as the other. + // As it happens, we do go ahead and schedule it for later execution. + try { + for (var i = 0; i < len; i++) { + cbs[i].apply(null, args) + } + } finally { + if (cbs.length > len) { + // added more in the interim. + // de-zalgo, just in case, but don't call again. + cbs.splice(0, len) + process.nextTick(function () { + RES.apply(null, args) + }) + } else { + delete reqs[key] + } + } + }) +} + +function slice (args) { + var length = args.length + var array = [] + + for (var i = 0; i < length; i++) array[i] = args[i] + return array +} diff --git a/node_modules/inflight/package.json b/node_modules/inflight/package.json new file mode 100644 index 0000000..6084d35 --- /dev/null +++ b/node_modules/inflight/package.json @@ -0,0 +1,29 @@ +{ + "name": "inflight", + "version": "1.0.6", + "description": "Add callbacks to requests in flight to avoid async duplication", + "main": "inflight.js", + "files": [ + "inflight.js" + ], + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + }, + "devDependencies": { + "tap": "^7.1.2" + }, + "scripts": { + "test": "tap test.js --100" + }, + "repository": { + "type": "git", + "url": "https://github.com/npm/inflight.git" + }, + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "bugs": { + "url": "https://github.com/isaacs/inflight/issues" + }, + "homepage": "https://github.com/isaacs/inflight", + "license": "ISC" +} diff --git a/node_modules/inherits/LICENSE b/node_modules/inherits/LICENSE new file mode 100644 index 0000000..dea3013 --- /dev/null +++ b/node_modules/inherits/LICENSE @@ -0,0 +1,16 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + diff --git a/node_modules/inherits/README.md b/node_modules/inherits/README.md new file mode 100644 index 0000000..b1c5665 --- /dev/null +++ b/node_modules/inherits/README.md @@ -0,0 +1,42 @@ +Browser-friendly inheritance fully compatible with standard node.js +[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). + +This package exports standard `inherits` from node.js `util` module in +node environment, but also provides alternative browser-friendly +implementation through [browser +field](https://gist.github.com/shtylman/4339901). Alternative +implementation is a literal copy of standard one located in standalone +module to avoid requiring of `util`. It also has a shim for old +browsers with no `Object.create` support. + +While keeping you sure you are using standard `inherits` +implementation in node.js environment, it allows bundlers such as +[browserify](https://github.com/substack/node-browserify) to not +include full `util` package to your client code if all you need is +just `inherits` function. It worth, because browser shim for `util` +package is large and `inherits` is often the single function you need +from it. + +It's recommended to use this package instead of +`require('util').inherits` for any code that has chances to be used +not only in node.js but in browser too. + +## usage + +```js +var inherits = require('inherits'); +// then use exactly as the standard one +``` + +## note on version ~1.0 + +Version ~1.0 had completely different motivation and is not compatible +neither with 2.0 nor with standard node.js `inherits`. + +If you are using version ~1.0 and planning to switch to ~2.0, be +careful: + +* new version uses `super_` instead of `super` for referencing + superclass +* new version overwrites current prototype while old one preserves any + existing fields on it diff --git a/node_modules/inherits/inherits.js b/node_modules/inherits/inherits.js new file mode 100644 index 0000000..f71f2d9 --- /dev/null +++ b/node_modules/inherits/inherits.js @@ -0,0 +1,9 @@ +try { + var util = require('util'); + /* istanbul ignore next */ + if (typeof util.inherits !== 'function') throw ''; + module.exports = util.inherits; +} catch (e) { + /* istanbul ignore next */ + module.exports = require('./inherits_browser.js'); +} diff --git a/node_modules/inherits/inherits_browser.js b/node_modules/inherits/inherits_browser.js new file mode 100644 index 0000000..86bbb3d --- /dev/null +++ b/node_modules/inherits/inherits_browser.js @@ -0,0 +1,27 @@ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }) + } + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } +} diff --git a/node_modules/inherits/package.json b/node_modules/inherits/package.json new file mode 100644 index 0000000..37b4366 --- /dev/null +++ b/node_modules/inherits/package.json @@ -0,0 +1,29 @@ +{ + "name": "inherits", + "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", + "version": "2.0.4", + "keywords": [ + "inheritance", + "class", + "klass", + "oop", + "object-oriented", + "inherits", + "browser", + "browserify" + ], + "main": "./inherits.js", + "browser": "./inherits_browser.js", + "repository": "git://github.com/isaacs/inherits", + "license": "ISC", + "scripts": { + "test": "tap" + }, + "devDependencies": { + "tap": "^14.2.4" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ] +} diff --git a/node_modules/is-extglob/LICENSE b/node_modules/is-extglob/LICENSE new file mode 100644 index 0000000..842218c --- /dev/null +++ b/node_modules/is-extglob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2016, Jon Schlinkert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-extglob/README.md b/node_modules/is-extglob/README.md new file mode 100644 index 0000000..0416af5 --- /dev/null +++ b/node_modules/is-extglob/README.md @@ -0,0 +1,107 @@ +# is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob) + +> Returns true if a string has an extglob. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-extglob +``` + +## Usage + +```js +var isExtglob = require('is-extglob'); +``` + +**True** + +```js +isExtglob('?(abc)'); +isExtglob('@(abc)'); +isExtglob('!(abc)'); +isExtglob('*(abc)'); +isExtglob('+(abc)'); +``` + +**False** + +Escaped extglobs: + +```js +isExtglob('\\?(abc)'); +isExtglob('\\@(abc)'); +isExtglob('\\!(abc)'); +isExtglob('\\*(abc)'); +isExtglob('\\+(abc)'); +``` + +Everything else... + +```js +isExtglob('foo.js'); +isExtglob('!foo.js'); +isExtglob('*.js'); +isExtglob('**/abc.js'); +isExtglob('abc/*.js'); +isExtglob('abc/(aaa|bbb).js'); +isExtglob('abc/[a-z].js'); +isExtglob('abc/{a,b}.js'); +isExtglob('abc/?.js'); +isExtglob('abc.js'); +isExtglob('abc/def/ghi.js'); +``` + +## History + +**v2.0** + +Adds support for escaping. Escaped exglobs no longer return true. + +## About + +### Related projects + +* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") +* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") + +### Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +### Building docs + +_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ + +To generate the readme and API documentation with [verb](https://github.com/verbose/verb): + +```sh +$ npm install -g verb verb-generate-readme && verb +``` + +### Running tests + +Install dev dependencies: + +```sh +$ npm install -d && npm test +``` + +### Author + +**Jon Schlinkert** + +* [github/jonschlinkert](https://github.com/jonschlinkert) +* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) + +### License + +Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._ \ No newline at end of file diff --git a/node_modules/is-extglob/index.js b/node_modules/is-extglob/index.js new file mode 100644 index 0000000..c1d986f --- /dev/null +++ b/node_modules/is-extglob/index.js @@ -0,0 +1,20 @@ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ + +module.exports = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; + } + + var match; + while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } + + return false; +}; diff --git a/node_modules/is-extglob/package.json b/node_modules/is-extglob/package.json new file mode 100644 index 0000000..7a90836 --- /dev/null +++ b/node_modules/is-extglob/package.json @@ -0,0 +1,69 @@ +{ + "name": "is-extglob", + "description": "Returns true if a string has an extglob.", + "version": "2.1.1", + "homepage": "https://github.com/jonschlinkert/is-extglob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "repository": "jonschlinkert/is-extglob", + "bugs": { + "url": "https://github.com/jonschlinkert/is-extglob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "has-glob", + "is-glob", + "micromatch" + ] + }, + "reflinks": [ + "verb", + "verb-generate-readme" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/is-glob/LICENSE b/node_modules/is-glob/LICENSE new file mode 100644 index 0000000..3f2eca1 --- /dev/null +++ b/node_modules/is-glob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-glob/README.md b/node_modules/is-glob/README.md new file mode 100644 index 0000000..740724b --- /dev/null +++ b/node_modules/is-glob/README.md @@ -0,0 +1,206 @@ +# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/github/workflow/status/micromatch/is-glob/dev)](https://github.com/micromatch/is-glob/actions) + +> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-glob +``` + +You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob). + +## Usage + +```js +var isGlob = require('is-glob'); +``` + +### Default behavior + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js'); +isGlob('*.js'); +isGlob('**/abc.js'); +isGlob('abc/*.js'); +isGlob('abc/(aaa|bbb).js'); +isGlob('abc/[a-z].js'); +isGlob('abc/{a,b}.js'); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js'); +isGlob('abc/!(a).js'); +isGlob('abc/+(a).js'); +isGlob('abc/*(a).js'); +isGlob('abc/?(a).js'); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('abc/\\@(a).js'); +isGlob('abc/\\!(a).js'); +isGlob('abc/\\+(a).js'); +isGlob('abc/\\*(a).js'); +isGlob('abc/\\?(a).js'); +isGlob('\\!foo.js'); +isGlob('\\*.js'); +isGlob('\\*\\*/abc.js'); +isGlob('abc/\\*.js'); +isGlob('abc/\\(aaa|bbb).js'); +isGlob('abc/\\[a-z].js'); +isGlob('abc/\\{a,b}.js'); +//=> false +``` + +Patterns that do not have glob patterns return `false`: + +```js +isGlob('abc.js'); +isGlob('abc/def/ghi.js'); +isGlob('foo.js'); +isGlob('abc/@.js'); +isGlob('abc/+.js'); +isGlob('abc/?.js'); +isGlob(); +isGlob(null); +//=> false +``` + +Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)): + +```js +isGlob(['**/*.js']); +isGlob(['foo.js']); +//=> false +``` + +### Option strict + +When `options.strict === false` the behavior is less strict in determining if a pattern is a glob. Meaning that +some patterns that would return `false` may return `true`. This is done so that matching libraries like [micromatch](https://github.com/micromatch/micromatch) have a chance at determining if the pattern is a glob or not. + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js', {strict: false}); +isGlob('*.js', {strict: false}); +isGlob('**/abc.js', {strict: false}); +isGlob('abc/*.js', {strict: false}); +isGlob('abc/(aaa|bbb).js', {strict: false}); +isGlob('abc/[a-z].js', {strict: false}); +isGlob('abc/{a,b}.js', {strict: false}); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js', {strict: false}); +isGlob('abc/!(a).js', {strict: false}); +isGlob('abc/+(a).js', {strict: false}); +isGlob('abc/*(a).js', {strict: false}); +isGlob('abc/?(a).js', {strict: false}); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('\\!foo.js', {strict: false}); +isGlob('\\*.js', {strict: false}); +isGlob('\\*\\*/abc.js', {strict: false}); +isGlob('abc/\\*.js', {strict: false}); +isGlob('abc/\\(aaa|bbb).js', {strict: false}); +isGlob('abc/\\[a-z].js', {strict: false}); +isGlob('abc/\\{a,b}.js', {strict: false}); +//=> false +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit") +* [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks") +* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.") +* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 47 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [doowb](https://github.com/doowb) | +| 1 | [phated](https://github.com/phated) | +| 1 | [danhper](https://github.com/danhper) | +| 1 | [paulmillr](https://github.com/paulmillr) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 27, 2019._ \ No newline at end of file diff --git a/node_modules/is-glob/index.js b/node_modules/is-glob/index.js new file mode 100644 index 0000000..620f563 --- /dev/null +++ b/node_modules/is-glob/index.js @@ -0,0 +1,150 @@ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +var isExtglob = require('is-extglob'); +var chars = { '{': '}', '(': ')', '[': ']'}; +var strictCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + var pipeIndex = -2; + var closeSquareIndex = -2; + var closeCurlyIndex = -2; + var closeParenIndex = -2; + var backSlashIndex = -2; + while (index < str.length) { + if (str[index] === '*') { + return true; + } + + if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { + return true; + } + + if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { + if (closeSquareIndex < index) { + closeSquareIndex = str.indexOf(']', index); + } + if (closeSquareIndex > index) { + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + } + } + + if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { + closeCurlyIndex = str.indexOf('}', index); + if (closeCurlyIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { + return true; + } + } + } + + if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { + closeParenIndex = str.indexOf(')', index); + if (closeParenIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + + if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { + if (pipeIndex < index) { + pipeIndex = str.indexOf('|', index); + } + if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { + closeParenIndex = str.indexOf(')', pipeIndex); + if (closeParenIndex > pipeIndex) { + backSlashIndex = str.indexOf('\\', pipeIndex); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +var relaxedCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + while (index < str.length) { + if (/[*?{}()[\]]/.test(str[index])) { + return true; + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +module.exports = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; + } + + if (isExtglob(str)) { + return true; + } + + var check = strictCheck; + + // optionally relax check + if (options && options.strict === false) { + check = relaxedCheck; + } + + return check(str); +}; diff --git a/node_modules/is-glob/package.json b/node_modules/is-glob/package.json new file mode 100644 index 0000000..858af03 --- /dev/null +++ b/node_modules/is-glob/package.json @@ -0,0 +1,81 @@ +{ + "name": "is-glob", + "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", + "version": "4.0.3", + "homepage": "https://github.com/micromatch/is-glob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Daniel Perez (https://tuvistavie.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/is-glob", + "bugs": { + "url": "https://github.com/micromatch/is-glob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha && node benchmark.js" + }, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "layout": "default", + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "assemble", + "base", + "update", + "verb" + ] + }, + "reflinks": [ + "assemble", + "bach", + "base", + "composer", + "gulp", + "has-glob", + "is-valid-glob", + "micromatch", + "npm", + "scaffold", + "verb", + "vinyl" + ] + } +} diff --git a/node_modules/is-number/LICENSE b/node_modules/is-number/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/is-number/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-number/README.md b/node_modules/is-number/README.md new file mode 100644 index 0000000..eb8149e --- /dev/null +++ b/node_modules/is-number/README.md @@ -0,0 +1,187 @@ +# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number) + +> Returns true if the value is a finite number. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-number +``` + +## Why is this needed? + +In JavaScript, it's not always as straightforward as it should be to reliably check if a value is a number. It's common for devs to use `+`, `-`, or `Number()` to cast a string value to a number (for example, when values are returned from user input, regex matches, parsers, etc). But there are many non-intuitive edge cases that yield unexpected results: + +```js +console.log(+[]); //=> 0 +console.log(+''); //=> 0 +console.log(+' '); //=> 0 +console.log(typeof NaN); //=> 'number' +``` + +This library offers a performant way to smooth out edge cases like these. + +## Usage + +```js +const isNumber = require('is-number'); +``` + +See the [tests](./test.js) for more examples. + +### true + +```js +isNumber(5e3); // true +isNumber(0xff); // true +isNumber(-1.1); // true +isNumber(0); // true +isNumber(1); // true +isNumber(1.1); // true +isNumber(10); // true +isNumber(10.10); // true +isNumber(100); // true +isNumber('-1.1'); // true +isNumber('0'); // true +isNumber('012'); // true +isNumber('0xff'); // true +isNumber('1'); // true +isNumber('1.1'); // true +isNumber('10'); // true +isNumber('10.10'); // true +isNumber('100'); // true +isNumber('5e3'); // true +isNumber(parseInt('012')); // true +isNumber(parseFloat('012')); // true +``` + +### False + +Everything else is false, as you would expect: + +```js +isNumber(Infinity); // false +isNumber(NaN); // false +isNumber(null); // false +isNumber(undefined); // false +isNumber(''); // false +isNumber(' '); // false +isNumber('foo'); // false +isNumber([1]); // false +isNumber([]); // false +isNumber(function () {}); // false +isNumber({}); // false +``` + +## Release history + +### 7.0.0 + +* Refactor. Now uses `.isFinite` if it exists. +* Performance is about the same as v6.0 when the value is a string or number. But it's now 3x-4x faster when the value is not a string or number. + +### 6.0.0 + +* Optimizations, thanks to @benaadams. + +### 5.0.0 + +**Breaking changes** + +* removed support for `instanceof Number` and `instanceof String` + +## Benchmarks + +As with all benchmarks, take these with a grain of salt. See the [benchmarks](./benchmark/index.js) for more detail. + +``` +# all +v7.0 x 413,222 ops/sec ±2.02% (86 runs sampled) +v6.0 x 111,061 ops/sec ±1.29% (85 runs sampled) +parseFloat x 317,596 ops/sec ±1.36% (86 runs sampled) +fastest is 'v7.0' + +# string +v7.0 x 3,054,496 ops/sec ±1.05% (89 runs sampled) +v6.0 x 2,957,781 ops/sec ±0.98% (88 runs sampled) +parseFloat x 3,071,060 ops/sec ±1.13% (88 runs sampled) +fastest is 'parseFloat,v7.0' + +# number +v7.0 x 3,146,895 ops/sec ±0.89% (89 runs sampled) +v6.0 x 3,214,038 ops/sec ±1.07% (89 runs sampled) +parseFloat x 3,077,588 ops/sec ±1.07% (87 runs sampled) +fastest is 'v6.0' +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") +* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 49 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [charlike-old](https://github.com/charlike-old) | +| 1 | [benaadams](https://github.com/benaadams) | +| 1 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 15, 2018._ \ No newline at end of file diff --git a/node_modules/is-number/index.js b/node_modules/is-number/index.js new file mode 100644 index 0000000..27f19b7 --- /dev/null +++ b/node_modules/is-number/index.js @@ -0,0 +1,18 @@ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +module.exports = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; +}; diff --git a/node_modules/is-number/package.json b/node_modules/is-number/package.json new file mode 100644 index 0000000..3715072 --- /dev/null +++ b/node_modules/is-number/package.json @@ -0,0 +1,82 @@ +{ + "name": "is-number", + "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", + "version": "7.0.0", + "homepage": "https://github.com/jonschlinkert/is-number", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Olsten Larck (https://i.am.charlike.online)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "jonschlinkert/is-number", + "bugs": { + "url": "https://github.com/jonschlinkert/is-number/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.12.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "ansi": "^0.3.1", + "benchmark": "^2.1.4", + "gulp-format-md": "^1.0.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "cast", + "check", + "coerce", + "coercion", + "finite", + "integer", + "is", + "isnan", + "is-nan", + "is-num", + "is-number", + "isnumber", + "isfinite", + "istype", + "kind", + "math", + "nan", + "num", + "number", + "numeric", + "parseFloat", + "parseInt", + "test", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "related": { + "list": [ + "is-plain-object", + "is-primitive", + "isobject", + "kind-of" + ] + }, + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/is-plain-object/LICENSE b/node_modules/is-plain-object/LICENSE new file mode 100644 index 0000000..3f2eca1 --- /dev/null +++ b/node_modules/is-plain-object/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-plain-object/README.md b/node_modules/is-plain-object/README.md new file mode 100644 index 0000000..5c074ab --- /dev/null +++ b/node_modules/is-plain-object/README.md @@ -0,0 +1,125 @@ +# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object) + +> Returns true if an object was created by the `Object` constructor, or Object.create(null). + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-plain-object +``` + +Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null. + +## Usage + +with es modules +```js +import { isPlainObject } from 'is-plain-object'; +``` + +or with commonjs +```js +const { isPlainObject } = require('is-plain-object'); +``` + +**true** when created by the `Object` constructor, or Object.create(null). + +```js +isPlainObject(Object.create({})); +//=> true +isPlainObject(Object.create(Object.prototype)); +//=> true +isPlainObject({foo: 'bar'}); +//=> true +isPlainObject({}); +//=> true +isPlainObject(null); +//=> true +``` + +**false** when not created by the `Object` constructor. + +```js +isPlainObject(1); +//=> false +isPlainObject(['foo', 'bar']); +//=> false +isPlainObject([]); +//=> false +isPlainObject(new Foo); +//=> false +isPlainObject(Object.create(null)); +//=> false +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 19 | [jonschlinkert](https://github.com/jonschlinkert) | +| 6 | [TrySound](https://github.com/TrySound) | +| 6 | [stevenvachon](https://github.com/stevenvachon) | +| 3 | [onokumus](https://github.com/onokumus) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ diff --git a/node_modules/is-plain-object/dist/is-plain-object.js b/node_modules/is-plain-object/dist/is-plain-object.js new file mode 100644 index 0000000..d134e4f --- /dev/null +++ b/node_modules/is-plain-object/dist/is-plain-object.js @@ -0,0 +1,38 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +exports.isPlainObject = isPlainObject; diff --git a/node_modules/is-plain-object/dist/is-plain-object.mjs b/node_modules/is-plain-object/dist/is-plain-object.mjs new file mode 100644 index 0000000..c2d9f35 --- /dev/null +++ b/node_modules/is-plain-object/dist/is-plain-object.mjs @@ -0,0 +1,34 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +export { isPlainObject }; diff --git a/node_modules/is-plain-object/is-plain-object.d.ts b/node_modules/is-plain-object/is-plain-object.d.ts new file mode 100644 index 0000000..a359940 --- /dev/null +++ b/node_modules/is-plain-object/is-plain-object.d.ts @@ -0,0 +1 @@ +export function isPlainObject(o: any): boolean; diff --git a/node_modules/is-plain-object/package.json b/node_modules/is-plain-object/package.json new file mode 100644 index 0000000..3ea169a --- /dev/null +++ b/node_modules/is-plain-object/package.json @@ -0,0 +1,85 @@ +{ + "name": "is-plain-object", + "description": "Returns true if an object was created by the `Object` constructor, or Object.create(null).", + "version": "5.0.0", + "homepage": "https://github.com/jonschlinkert/is-plain-object", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Osman Nuri Okumuş (http://onokumus.com)", + "Steven Vachon (https://svachon.com)", + "(https://github.com/wtgtybhertgeghgtwtg)", + "Bogdan Chadkin (https://github.com/TrySound)" + ], + "repository": "jonschlinkert/is-plain-object", + "bugs": { + "url": "https://github.com/jonschlinkert/is-plain-object/issues" + }, + "license": "MIT", + "main": "dist/is-plain-object.js", + "module": "dist/is-plain-object.mjs", + "types": "is-plain-object.d.ts", + "files": [ + "is-plain-object.d.ts", + "dist" + ], + "exports": { + ".": { + "import": "./dist/is-plain-object.mjs", + "require": "./dist/is-plain-object.js" + }, + "./package.json": "./package.json" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "build": "rollup -c", + "test_browser": "mocha-headless-chrome --args=disable-web-security -f test/browser.html", + "test_node": "mocha -r esm", + "test": "npm run test_node && npm run build && npm run test_browser", + "prepare": "rollup -c" + }, + "devDependencies": { + "chai": "^4.2.0", + "esm": "^3.2.22", + "gulp-format-md": "^1.0.0", + "mocha": "^6.1.4", + "mocha-headless-chrome": "^3.1.0", + "rollup": "^2.22.1" + }, + "keywords": [ + "check", + "is", + "is-object", + "isobject", + "javascript", + "kind", + "kind-of", + "object", + "plain", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "is-number", + "isobject", + "kind-of" + ] + }, + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/isexe/.npmignore b/node_modules/isexe/.npmignore new file mode 100644 index 0000000..c1cb757 --- /dev/null +++ b/node_modules/isexe/.npmignore @@ -0,0 +1,2 @@ +.nyc_output/ +coverage/ diff --git a/node_modules/isexe/LICENSE b/node_modules/isexe/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/isexe/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/isexe/README.md b/node_modules/isexe/README.md new file mode 100644 index 0000000..35769e8 --- /dev/null +++ b/node_modules/isexe/README.md @@ -0,0 +1,51 @@ +# isexe + +Minimal module to check if a file is executable, and a normal file. + +Uses `fs.stat` and tests against the `PATHEXT` environment variable on +Windows. + +## USAGE + +```javascript +var isexe = require('isexe') +isexe('some-file-name', function (err, isExe) { + if (err) { + console.error('probably file does not exist or something', err) + } else if (isExe) { + console.error('this thing can be run') + } else { + console.error('cannot be run') + } +}) + +// same thing but synchronous, throws errors +var isExe = isexe.sync('some-file-name') + +// treat errors as just "not executable" +isexe('maybe-missing-file', { ignoreErrors: true }, callback) +var isExe = isexe.sync('maybe-missing-file', { ignoreErrors: true }) +``` + +## API + +### `isexe(path, [options], [callback])` + +Check if the path is executable. If no callback provided, and a +global `Promise` object is available, then a Promise will be returned. + +Will raise whatever errors may be raised by `fs.stat`, unless +`options.ignoreErrors` is set to true. + +### `isexe.sync(path, [options])` + +Same as `isexe` but returns the value and throws any errors raised. + +### Options + +* `ignoreErrors` Treat all errors as "no, this is not executable", but + don't raise them. +* `uid` Number to use as the user id +* `gid` Number to use as the group id +* `pathExt` List of path extensions to use instead of `PATHEXT` + environment variable on Windows. diff --git a/node_modules/isexe/index.js b/node_modules/isexe/index.js new file mode 100644 index 0000000..553fb32 --- /dev/null +++ b/node_modules/isexe/index.js @@ -0,0 +1,57 @@ +var fs = require('fs') +var core +if (process.platform === 'win32' || global.TESTING_WINDOWS) { + core = require('./windows.js') +} else { + core = require('./mode.js') +} + +module.exports = isexe +isexe.sync = sync + +function isexe (path, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } + + if (!cb) { + if (typeof Promise !== 'function') { + throw new TypeError('callback not provided') + } + + return new Promise(function (resolve, reject) { + isexe(path, options || {}, function (er, is) { + if (er) { + reject(er) + } else { + resolve(is) + } + }) + }) + } + + core(path, options || {}, function (er, is) { + // ignore EACCES because that just means we aren't allowed to run it + if (er) { + if (er.code === 'EACCES' || options && options.ignoreErrors) { + er = null + is = false + } + } + cb(er, is) + }) +} + +function sync (path, options) { + // my kingdom for a filtered catch + try { + return core.sync(path, options || {}) + } catch (er) { + if (options && options.ignoreErrors || er.code === 'EACCES') { + return false + } else { + throw er + } + } +} diff --git a/node_modules/isexe/mode.js b/node_modules/isexe/mode.js new file mode 100644 index 0000000..1995ea4 --- /dev/null +++ b/node_modules/isexe/mode.js @@ -0,0 +1,41 @@ +module.exports = isexe +isexe.sync = sync + +var fs = require('fs') + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), options) +} + +function checkStat (stat, options) { + return stat.isFile() && checkMode(stat, options) +} + +function checkMode (stat, options) { + var mod = stat.mode + var uid = stat.uid + var gid = stat.gid + + var myUid = options.uid !== undefined ? + options.uid : process.getuid && process.getuid() + var myGid = options.gid !== undefined ? + options.gid : process.getgid && process.getgid() + + var u = parseInt('100', 8) + var g = parseInt('010', 8) + var o = parseInt('001', 8) + var ug = u | g + + var ret = (mod & o) || + (mod & g) && gid === myGid || + (mod & u) && uid === myUid || + (mod & ug) && myUid === 0 + + return ret +} diff --git a/node_modules/isexe/package.json b/node_modules/isexe/package.json new file mode 100644 index 0000000..e452689 --- /dev/null +++ b/node_modules/isexe/package.json @@ -0,0 +1,31 @@ +{ + "name": "isexe", + "version": "2.0.0", + "description": "Minimal module to check if a file is executable.", + "main": "index.js", + "directories": { + "test": "test" + }, + "devDependencies": { + "mkdirp": "^0.5.1", + "rimraf": "^2.5.0", + "tap": "^10.3.0" + }, + "scripts": { + "test": "tap test/*.js --100", + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --all; git push origin --tags" + }, + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/isexe.git" + }, + "keywords": [], + "bugs": { + "url": "https://github.com/isaacs/isexe/issues" + }, + "homepage": "https://github.com/isaacs/isexe#readme" +} diff --git a/node_modules/isexe/test/basic.js b/node_modules/isexe/test/basic.js new file mode 100644 index 0000000..d926df6 --- /dev/null +++ b/node_modules/isexe/test/basic.js @@ -0,0 +1,221 @@ +var t = require('tap') +var fs = require('fs') +var path = require('path') +var fixture = path.resolve(__dirname, 'fixtures') +var meow = fixture + '/meow.cat' +var mine = fixture + '/mine.cat' +var ours = fixture + '/ours.cat' +var fail = fixture + '/fail.false' +var noent = fixture + '/enoent.exe' +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') + +var isWindows = process.platform === 'win32' +var hasAccess = typeof fs.access === 'function' +var winSkip = isWindows && 'windows' +var accessSkip = !hasAccess && 'no fs.access function' +var hasPromise = typeof Promise === 'function' +var promiseSkip = !hasPromise && 'no global Promise' + +function reset () { + delete require.cache[require.resolve('../')] + return require('../') +} + +t.test('setup fixtures', function (t) { + rimraf.sync(fixture) + mkdirp.sync(fixture) + fs.writeFileSync(meow, '#!/usr/bin/env cat\nmeow\n') + fs.chmodSync(meow, parseInt('0755', 8)) + fs.writeFileSync(fail, '#!/usr/bin/env false\n') + fs.chmodSync(fail, parseInt('0644', 8)) + fs.writeFileSync(mine, '#!/usr/bin/env cat\nmine\n') + fs.chmodSync(mine, parseInt('0744', 8)) + fs.writeFileSync(ours, '#!/usr/bin/env cat\nours\n') + fs.chmodSync(ours, parseInt('0754', 8)) + t.end() +}) + +t.test('promise', { skip: promiseSkip }, function (t) { + var isexe = reset() + t.test('meow async', function (t) { + isexe(meow).then(function (is) { + t.ok(is) + t.end() + }) + }) + t.test('fail async', function (t) { + isexe(fail).then(function (is) { + t.notOk(is) + t.end() + }) + }) + t.test('noent async', function (t) { + isexe(noent).catch(function (er) { + t.ok(er) + t.end() + }) + }) + t.test('noent ignore async', function (t) { + isexe(noent, { ignoreErrors: true }).then(function (is) { + t.notOk(is) + t.end() + }) + }) + t.end() +}) + +t.test('no promise', function (t) { + global.Promise = null + var isexe = reset() + t.throws('try to meow a promise', function () { + isexe(meow) + }) + t.end() +}) + +t.test('access', { skip: accessSkip || winSkip }, function (t) { + runTest(t) +}) + +t.test('mode', { skip: winSkip }, function (t) { + delete fs.access + delete fs.accessSync + var isexe = reset() + t.ok(isexe.sync(ours, { uid: 0, gid: 0 })) + t.ok(isexe.sync(mine, { uid: 0, gid: 0 })) + runTest(t) +}) + +t.test('windows', function (t) { + global.TESTING_WINDOWS = true + var pathExt = '.EXE;.CAT;.CMD;.COM' + t.test('pathExt option', function (t) { + runTest(t, { pathExt: '.EXE;.CAT;.CMD;.COM' }) + }) + t.test('pathExt env', function (t) { + process.env.PATHEXT = pathExt + runTest(t) + }) + t.test('no pathExt', function (t) { + // with a pathExt of '', any filename is fine. + // so the "fail" one would still pass. + runTest(t, { pathExt: '', skipFail: true }) + }) + t.test('pathext with empty entry', function (t) { + // with a pathExt of '', any filename is fine. + // so the "fail" one would still pass. + runTest(t, { pathExt: ';' + pathExt, skipFail: true }) + }) + t.end() +}) + +t.test('cleanup', function (t) { + rimraf.sync(fixture) + t.end() +}) + +function runTest (t, options) { + var isexe = reset() + + var optionsIgnore = Object.create(options || {}) + optionsIgnore.ignoreErrors = true + + if (!options || !options.skipFail) { + t.notOk(isexe.sync(fail, options)) + } + t.notOk(isexe.sync(noent, optionsIgnore)) + if (!options) { + t.ok(isexe.sync(meow)) + } else { + t.ok(isexe.sync(meow, options)) + } + + t.ok(isexe.sync(mine, options)) + t.ok(isexe.sync(ours, options)) + t.throws(function () { + isexe.sync(noent, options) + }) + + t.test('meow async', function (t) { + if (!options) { + isexe(meow, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + } else { + isexe(meow, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + } + }) + + t.test('mine async', function (t) { + isexe(mine, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + }) + + t.test('ours async', function (t) { + isexe(ours, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + }) + + if (!options || !options.skipFail) { + t.test('fail async', function (t) { + isexe(fail, options, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + } + + t.test('noent async', function (t) { + isexe(noent, options, function (er, is) { + t.ok(er) + t.notOk(is) + t.end() + }) + }) + + t.test('noent ignore async', function (t) { + isexe(noent, optionsIgnore, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + + t.test('directory is not executable', function (t) { + isexe(__dirname, options, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + + t.end() +} diff --git a/node_modules/isexe/windows.js b/node_modules/isexe/windows.js new file mode 100644 index 0000000..3499673 --- /dev/null +++ b/node_modules/isexe/windows.js @@ -0,0 +1,42 @@ +module.exports = isexe +isexe.sync = sync + +var fs = require('fs') + +function checkPathExt (path, options) { + var pathext = options.pathExt !== undefined ? + options.pathExt : process.env.PATHEXT + + if (!pathext) { + return true + } + + pathext = pathext.split(';') + if (pathext.indexOf('') !== -1) { + return true + } + for (var i = 0; i < pathext.length; i++) { + var p = pathext[i].toLowerCase() + if (p && path.substr(-p.length).toLowerCase() === p) { + return true + } + } + return false +} + +function checkStat (stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) { + return false + } + return checkPathExt(path, options) +} + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, path, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), path, options) +} diff --git a/node_modules/js-sdsl/CHANGELOG.md b/node_modules/js-sdsl/CHANGELOG.md new file mode 100644 index 0000000..c54c967 --- /dev/null +++ b/node_modules/js-sdsl/CHANGELOG.md @@ -0,0 +1,160 @@ +# Change Log + +All notable changes to this project will be documented in this file. + +The format is based on Keep a Changelog and this project adheres to Semantic Versioning. + +## [4.1.5] - 2022.09.30 + +### Added + +- Add `find`, `remove`, `updateItem` and `toArray` functions to `PriorityQueue`. +- Support single package release (use scope @js-sdsl). + +## [4.1.5-beta.1] - 2022.09.23 + +### Fixed + +- Get wrong tree index when size is 0. + +## [4.1.5-beta.0] - 2022.09.23 + +### Added + +- Add `index` property to tree iterator which represents the sequential index of the iterator in the tree. + +### Changed + +- Minimal optimization with private properties mangling, macro inlining and const enum. +- Private properties are now mangled. +- Remove `checkWithinAccessParams` function. +- Constants of `HashContainer` are moved to `HashContainerConst` const enum. +- The iteratorType parameter in the constructor now changed from `boolean` type to `IteratorType` const enum type. +- The type of `TreeNode.color` is now changed from `boolean` to `TreeNodeColor` const enum. +- Turn some member exports into export-only types. + +### Fixed + +- Fixed wrong iterator error message. + +## [4.1.4] - 2022.09.07 + +### Added + +- Add some notes. + +### Changed + +- Optimize hash container. +- Abstracting out the hash container. + +### Fixed + +- Fixed tree get height function return one larger than the real height. +- Tree-shaking not work in ES module. +- `Queue` and `Deque` should return `undefined` when container is empty. + +## [4.1.4-beta.0] - 2022.08.31 + +### Added + +- Add function update key by iterator. +- Add iterator copy function to get a copy of itself. +- Add insert by iterator hint function in tree container. + +### Changed + +- Changed OrderedMap's iterator pointer get from `Object.defineProperty'` to `Proxy`. +- Improve iterator performance by remove some judgment. +- Change iterator type description from `normal` and `reverse` to boolean. + +## [4.1.2-beta.0] - 2022.08.27 + +### Added + +- Make `SequentialContainer` and `TreeBaseContainer` export in the index. + +### Changed + +- Change rbTree binary search from recursive to loop implementation (don't effect using). +- Reduce memory waste during deque initialization. + +### Fixed + +- Fixed priority queue not dereference on pop. + +## [4.1.1] - 2022.08.23 + +### Fixed + +- Forgot to reset root node on rotation in red-black tree delete operation. +- Fix iterator invalidation after tree container removes iterator. + +## [4.1.0] - 2022.08.21 + +### Changed + +- Change some functions from recursive to loop implementation (don't effect using). +- Change some iterator function parameter type. +- Change commonjs target to `es6`. +- Change `Deque` from sequential queue to circular queue. +- Optimize so many places (don't affect using). + +### Fixed + +- Fix `Vector` length bugs. + +## [4.0.3] - 2022-08-13 + +### Changed + +- Change `if (this.empty())` to `if (!this.length)`. +- Change some unit test. +- Change class type and optimized type design. + +### Fixed + +- Fix can push undefined to deque. + +## [4.0.0] - 2022-07-30 + +### Changed + +- Remove InternalError error as much as possible (don't affect using). +- Change `HashSet` api `eraseElementByValue`'s name to `eraseElementByKey`. +- Change some unit tests to improve coverage (don't affect using). + +## [4.0.0-beta.0] - 2022-07-24 + +### Added + +- Complete test examples (don't effect using). +- The error thrown is standardized, you can catch it according to the error type. + +### Changed + +- Refactor all container from function to class (don't affect using). +- Abstracting tree containers and hash containers, change `Set`'s and `Map`'s name to `OrderedSet` and `OrderedMap` to distinguish it from the official container. +- Change `OrderedSet` api `eraseElementByValue`'s name to `eraseElementByKey`. + +### Fixed + +- Fixed so many bugs. + +## [3.0.0-beta.0] - 2022-04-29 + +### Added + +- Bidirectional iterator is provided for all containers except Stack, Queue, HashSet and HashMap. +- Added begin, end, rBegin and rEnd functions to some containers for using iterator. +- Added `eraseElementByIterator` function. + +### Changed + +- Changed Pair type `T, K` to `K, V` (don't affect using). +- Changed `find`, `lowerBound`, `upperBound`, `reverseLowerBound` and `reverseUpperBound` function's returned value to `Iterator`. + +### Fixed + +- Fixed an error when the insert value was 0. +- Fixed the problem that the lower version browser does not recognize symbol Compilation error caused by iterator. diff --git a/node_modules/js-sdsl/LICENSE b/node_modules/js-sdsl/LICENSE new file mode 100644 index 0000000..d46bd7e --- /dev/null +++ b/node_modules/js-sdsl/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Zilong Yao + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/js-sdsl/README.md b/node_modules/js-sdsl/README.md new file mode 100644 index 0000000..5c4f174 --- /dev/null +++ b/node_modules/js-sdsl/README.md @@ -0,0 +1,149 @@ +

+ + js-sdsl logo + +

+ +

A javascript standard data structure library which benchmark against C++ STL

+ +

+ NPM Version + Build Status + Coverage Status + GITHUB Star + NPM Downloads + Gzip Size + Rate this package + MIT-license + GITHUB-language +

+ +

English | 简体中文

+ +## Included data structures + +- Vector +- Stack +- Queue +- LinkList +- Deque +- PriorityQueue +- OrderedSet (using RBTree) +- OrderedMap (using RBTree) +- HashSet +- HashMap + +## Benchmark + +We are benchmarking against other popular data structure libraries. In some ways we're better than the best library. See [benchmark](https://js-sdsl.github.io/#/test/benchmark-analyze). + +## Supported platforms + +- node.js (using es6) +- react/vue (using es5) +- browser (support most browsers) + +## Download + +Download directly + +- [js-sdsl.js](https://unpkg.com/js-sdsl/dist/umd/js-sdsl.js) (for development) +- [js-sdsl.min.js](https://unpkg.com/js-sdsl/dist/umd/js-sdsl.min.js) (for production) + +Or install js-sdsl using npm + +```bash +npm install js-sdsl +``` + +## Usage + +You can visit our [official website](https://js-sdsl.github.io/) to get more information. + +To help you have a better use, we also provide this [API document](https://js-sdsl.github.io/js-sdsl/index.html). + +### For browser + +```html + + +``` + +### For npm + +```javascript +// esModule +import { OrderedMap } from 'js-sdsl'; +// commonJs +const { OrderedMap } = require('js-sdsl'); +const myOrderedMap = new OrderedMap(); +myOrderedMap.setElement(1, 2); +console.log(myOrderedMap.getElementByKey(1)); // 2 +``` + +## Build by source code + +You can pull this repository and run `yarn build` to rebuild this library. + +## Test + +### Unit test + +We use jest library to write unit tests, you can see test coverage on [coveralls](https://coveralls.io/github/js-sdsl/js-sdsl). You can run `yarn test:unit` command to reproduce it. + +### For performance + +We tested most of the functions for efficiency. You can go to [`gh-pages/performance.md`](https://github.com/js-sdsl/js-sdsl/blob/gh-pages/performance.md) to see our running results or reproduce it with `yarn test:performance` command. + +You can also visit [here](https://js-sdsl.github.io/#/test/performance-test) to get the result. + +## Maintainers + +[@ZLY201](https://github.com/ZLY201) + +## Contributing + +Feel free to dive in! Open an issue or submit PRs. It may be helpful to read the [Contributor Guide](https://github.com/js-sdsl/js-sdsl/blob/main/.github/CONTRIBUTING.md). + +### Contributors + +Thanks goes to these wonderful people: + + + + + + + + + + + +

Takatoshi Kondo

💻 ⚠️

noname

💻
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + +## License + +[MIT](https://github.com/js-sdsl/js-sdsl/blob/main/LICENSE) © ZLY201 diff --git a/node_modules/js-sdsl/README.zh-CN.md b/node_modules/js-sdsl/README.zh-CN.md new file mode 100644 index 0000000..7695db0 --- /dev/null +++ b/node_modules/js-sdsl/README.zh-CN.md @@ -0,0 +1,151 @@ +

+ + js-sdsl logo + +

+ +

一款参考 C++ STL 实现的 JavaScript 标准数据结构库

+ +

+ NPM Version + Build Status + Coverage Status + GITHUB Star + NPM Downloads + Gzip Size + Rate this package + MIT-license + GITHUB-language +

+ +

English | 简体中文

+ +## 包含的数据结构 + +- Vector +- Stack +- Queue +- LinkList +- Deque +- PriorityQueue +- OrderedSet (using RBTree) +- OrderedMap (using RBTree) +- HashSet +- HashMap + +## 基准测试 + +我们和其他数据结构库进行了基准测试,在某些场景我们甚至超过了当前最流行的库 + +查看 [benchmark](https://js-sdsl.github.io/#/zh-cn/test/benchmark-analyze) 以获取更多信息 + +## 支持的平台 + +- node.js (using es6) +- react/vue (using es5) +- browser (support most browsers) + +## 下载 + +使用 cdn 直接引入 + +- [js-sdsl.js](https://unpkg.com/js-sdsl/dist/umd/js-sdsl.js) (for development) +- [js-sdsl.min.js](https://unpkg.com/js-sdsl/dist/umd/js-sdsl.min.js) (for production) + +使用 npm 下载 + +```bash +npm install js-sdsl +``` + +## 使用说明 + +您可以[访问我们的主页](https://js-sdsl.github.io/)获取更多信息 + +并且我们提供了完整的 [API 文档](https://js-sdsl.github.io/js-sdsl/index.html)供您参考 + +### 在浏览器中使用 + +```html + + +``` + +### npm 引入 + +```javascript +// esModule +import { OrderedMap } from 'js-sdsl'; +// commonJs +const { OrderedMap } = require('js-sdsl'); +const myOrderedMap = new OrderedMap(); +myOrderedMap.setElement(1, 2); +console.log(myOrderedMap.getElementByKey(1)); // 2 +``` + +## 从源码构建 + +您可以克隆此仓库后运行 `yarn build` 命令重新构建这个库 + +## 测试 + +### 单元测试 + +我们使用 `jest` 库来编写我们的单元测试,并将结果同步到了 [coveralls](https://coveralls.io/github/js-sdsl/js-sdsl) 上,你可以使用 `yarn test:unit` 命令来重建它 + +### 对于性能的校验 + +我们对于编写的所有 API 进行了性能测试,并将结果同步到了 [`gh-pages/performance.md`](https://github.com/js-sdsl/js-sdsl/blob/gh-pages/performance.md) 中,你可以通过 `yarn test:performance` 命令来重现它 + +您也可以访问[我们的网站](https://js-sdsl.github.io/#/zh-cn/test/performance-test)来获取结果 + +## 维护者 + +[@ZLY201](https://github.com/ZLY201) + +## 贡献 + +我们欢迎所有的开发人员提交 issue 或 pull request,阅读[贡献者指南](https://github.com/js-sdsl/js-sdsl/blob/main/.github/CONTRIBUTING.md)可能会有所帮助 + +### 贡献者 + +感谢对本项目做出贡献的开发者们: + + + + + + + + + + + +

Takatoshi Kondo

💻 ⚠️

noname

💻
+ + + + + + +本项目遵循 [all-contributors](https://github.com/all-contributors/all-contributors) 规范。 欢迎任何形式的贡献! + +## 许可证 + +[MIT](https://github.com/js-sdsl/js-sdsl/blob/main/LICENSE) © ZLY201 diff --git a/node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.d.ts b/node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.d.ts new file mode 100644 index 0000000..d194929 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.d.ts @@ -0,0 +1,120 @@ +export declare const enum IteratorType { + NORMAL = 0, + REVERSE = 1 +} +export declare abstract class ContainerIterator { + /** + * @description Iterator's type. + */ + readonly iteratorType: IteratorType; + protected constructor(iteratorType?: IteratorType); + /** + * @description Pointers to element. + * @return The value of the pointer's element. + */ + abstract get pointer(): T; + /** + * @description Set pointer's value (some containers are unavailable). + * @param newValue The new value you want to set. + */ + abstract set pointer(newValue: T); + /** + * @description Move `this` iterator to pre. + */ + abstract pre(): this; + /** + * @description Move `this` iterator to next. + */ + abstract next(): this; + /** + * @param obj The other iterator you want to compare. + * @return Boolean about if this equals to obj. + * @example container.find(1).equals(container.end()); + */ + abstract equals(obj: ContainerIterator): boolean; + /** + * @description Get a copy of itself.
+ * We do not guarantee the safety of this function.
+ * Please ensure that the iterator will not fail. + * @return The copy of self. + */ + abstract copy(): ContainerIterator; +} +export declare abstract class Base { + /** + * @return The size of the container. + */ + size(): number; + /** + * @return Boolean about if the container is empty. + */ + empty(): boolean; + /** + * @description Clear the container. + */ + abstract clear(): void; +} +export declare abstract class Container extends Base { + /** + * @return Iterator pointing to the beginning element. + */ + abstract begin(): ContainerIterator; + /** + * @return Iterator pointing to the super end like c++. + */ + abstract end(): ContainerIterator; + /** + * @return Iterator pointing to the end element. + */ + abstract rBegin(): ContainerIterator; + /** + * @return Iterator pointing to the super begin like c++. + */ + abstract rEnd(): ContainerIterator; + /** + * @return The first element of the container. + */ + abstract front(): T | undefined; + /** + * @return The last element of the container. + */ + abstract back(): T | undefined; + /** + * @description Iterate over all elements in the container. + * @param callback Callback function like Array.forEach. + */ + abstract forEach(callback: (element: T, index: number) => void): void; + /** + * @param element The element you want to find. + * @return An iterator pointing to the element if found, or super end if not found. + */ + abstract find(element: T): ContainerIterator; + /** + * @description Gets the value of the element at the specified position. + */ + abstract getElementByPos(pos: number): T; + /** + * @description Removes the element at the specified position. + * @param pos The element's position you want to remove. + */ + abstract eraseElementByPos(pos: number): void; + /** + * @description Removes element by iterator and move `iter` to next. + * @param iter The iterator you want to erase. + * @example container.eraseElementByIterator(container.begin()); + */ + abstract eraseElementByIterator(iter: ContainerIterator): ContainerIterator; + /** + * @description Using for `for...of` syntax like Array. + */ + abstract [Symbol.iterator](): Generator; +} +export declare type initContainer = ({ + size: number; +} | { + length: number; +} | { + size(): number; +}) & { + forEach(callback: (element: T) => void): void; +}; diff --git a/node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.js b/node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.js new file mode 100644 index 0000000..6825cf1 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.ContainerIterator = exports.Container = exports.Base = void 0; + +class ContainerIterator { + constructor(t = 0) { + this.iteratorType = t; + } +} + +exports.ContainerIterator = ContainerIterator; + +class Base { + constructor() { + this.o = 0; + } + size() { + return this.o; + } + empty() { + return this.o === 0; + } +} + +exports.Base = Base; + +class Container extends Base {} + +exports.Container = Container; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.d.ts b/node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.d.ts new file mode 100644 index 0000000..1a7603c --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.d.ts @@ -0,0 +1,25 @@ +import { Base } from "../../ContainerBase"; +declare abstract class HashContainer extends Base { + protected constructor(initBucketNum?: number, hashFunc?: (x: K) => number); + clear(): void; + /** + * @description Iterate over all elements in the container. + * @param callback Callback function like Array.forEach. + */ + abstract forEach(callback: (element: unknown, index: number) => void): void; + /** + * @description Remove the elements of the specified value. + * @param key The element you want to remove. + */ + abstract eraseElementByKey(key: K): void; + /** + * @param key The element you want to find. + * @return Boolean about if the specified element in the hash set. + */ + abstract find(key: K): void; + /** + * @description Using for `for...of` syntax like Array. + */ + abstract [Symbol.iterator](): Generator; +} +export default HashContainer; diff --git a/node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.js b/node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.js new file mode 100644 index 0000000..e2bd678 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.js @@ -0,0 +1,42 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _ContainerBase = require("../../ContainerBase"); + +class HashContainer extends _ContainerBase.Base { + constructor(e = 16, t = (e => { + let t; + if (typeof e !== "string") { + t = JSON.stringify(e); + } else t = e; + let r = 0; + const s = t.length; + for (let e = 0; e < s; e++) { + const s = t.charCodeAt(e); + r = (r << 5) - r + s; + r |= 0; + } + return r >>> 0; + })) { + super(); + if (e < 16 || (e & e - 1) !== 0) { + throw new RangeError("InitBucketNum range error"); + } + this.u = this.te = e; + this.l = t; + } + clear() { + this.o = 0; + this.u = this.te; + this.i = []; + } +} + +var _default = HashContainer; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.d.ts b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.d.ts new file mode 100644 index 0000000..8f54fb3 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.d.ts @@ -0,0 +1,22 @@ +import { initContainer } from "../ContainerBase"; +import HashContainer from './Base'; +declare class HashMap extends HashContainer { + constructor(container?: initContainer<[K, V]>, initBucketNum?: number, hashFunc?: (x: K) => number); + forEach(callback: (element: [K, V], index: number) => void): void; + /** + * @description Insert a new key-value pair to hash map or set value by key. + * @param key The key you want to insert. + * @param value The value you want to insert. + * @example HashMap.setElement(1, 2); // insert a key-value pair [1, 2] + */ + setElement(key: K, value: V): void; + /** + * @description Get the value of the element which has the specified key. + * @param key The key you want to get. + */ + getElementByKey(key: K): V | undefined; + eraseElementByKey(key: K): void; + find(key: K): boolean; + [Symbol.iterator](): Generator<[K, V], void, unknown>; +} +export default HashMap; diff --git a/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.js b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.js new file mode 100644 index 0000000..3f55caf --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.js @@ -0,0 +1,178 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _Base = _interopRequireDefault(require("./Base")); + +var _Vector = _interopRequireDefault(require("../SequentialContainer/Vector")); + +var _OrderedMap = _interopRequireDefault(require("../TreeContainer/OrderedMap")); + +function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; +} + +class HashMap extends _Base.default { + constructor(e = [], t, s) { + super(t, s); + this.i = []; + e.forEach((e => this.setElement(e[0], e[1]))); + } + h() { + if (this.u >= 1073741824) return; + const e = []; + const t = this.u; + this.u <<= 1; + const s = Object.keys(this.i); + const r = s.length; + for (let n = 0; n < r; ++n) { + const r = parseInt(s[n]); + const i = this.i[r]; + const o = i.size(); + if (o === 0) continue; + if (o === 1) { + const t = i.front(); + e[this.l(t[0]) & this.u - 1] = new _Vector.default([ t ], false); + continue; + } + const c = []; + const f = []; + i.forEach((e => { + const s = this.l(e[0]); + if ((s & t) === 0) { + c.push(e); + } else f.push(e); + })); + if (i instanceof _OrderedMap.default) { + if (c.length > 6) { + e[r] = new _OrderedMap.default(c); + } else { + e[r] = new _Vector.default(c, false); + } + if (f.length > 6) { + e[r + t] = new _OrderedMap.default(f); + } else { + e[r + t] = new _Vector.default(f, false); + } + } else { + e[r] = new _Vector.default(c, false); + e[r + t] = new _Vector.default(f, false); + } + } + this.i = e; + } + forEach(e) { + const t = Object.values(this.i); + const s = t.length; + let r = 0; + for (let n = 0; n < s; ++n) { + t[n].forEach((t => e(t, r++))); + } + } + setElement(e, t) { + const s = this.l(e) & this.u - 1; + const r = this.i[s]; + if (!r) { + this.o += 1; + this.i[s] = new _Vector.default([ [ e, t ] ], false); + } else { + const n = r.size(); + if (r instanceof _Vector.default) { + for (const s of r) { + if (s[0] === e) { + s[1] = t; + return; + } + } + r.pushBack([ e, t ]); + if (n + 1 >= 8) { + if (this.u <= 64) { + this.o += 1; + this.h(); + return; + } + this.i[s] = new _OrderedMap.default(this.i[s]); + } + this.o += 1; + } else { + r.setElement(e, t); + const s = r.size(); + this.o += s - n; + } + } + if (this.o > this.u * .75) { + this.h(); + } + } + getElementByKey(e) { + const t = this.l(e) & this.u - 1; + const s = this.i[t]; + if (!s) return undefined; + if (s instanceof _OrderedMap.default) { + return s.getElementByKey(e); + } else { + for (const t of s) { + if (t[0] === e) return t[1]; + } + return undefined; + } + } + eraseElementByKey(e) { + const t = this.l(e) & this.u - 1; + const s = this.i[t]; + if (!s) return; + if (s instanceof _Vector.default) { + let t = 0; + for (const r of s) { + if (r[0] === e) { + s.eraseElementByPos(t); + this.o -= 1; + return; + } + t += 1; + } + } else { + const r = s.size(); + s.eraseElementByKey(e); + const n = s.size(); + this.o += n - r; + if (n <= 6) { + this.i[t] = new _Vector.default(s); + } + } + } + find(e) { + const t = this.l(e) & this.u - 1; + const s = this.i[t]; + if (!s) return false; + if (s instanceof _OrderedMap.default) { + return !s.find(e).equals(s.end()); + } + for (const t of s) { + if (t[0] === e) return true; + } + return false; + } + [Symbol.iterator]() { + return function*() { + const e = Object.values(this.i); + const t = e.length; + for (let s = 0; s < t; ++s) { + const t = e[s]; + for (const e of t) { + yield e; + } + } + }.bind(this)(); + } +} + +var _default = HashMap; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.d.ts b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.d.ts new file mode 100644 index 0000000..42655eb --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.d.ts @@ -0,0 +1,15 @@ +import HashContainer from './Base'; +import { initContainer } from "../ContainerBase"; +declare class HashSet extends HashContainer { + constructor(container?: initContainer, initBucketNum?: number, _hashFunc?: (x: K) => number); + forEach(callback: (element: K, index: number) => void): void; + /** + * @description Insert element to hash set. + * @param element The element you want to insert. + */ + insert(element: K): void; + eraseElementByKey(key: K): void; + find(element: K): boolean; + [Symbol.iterator](): Generator; +} +export default HashSet; diff --git a/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.js b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.js new file mode 100644 index 0000000..78c3c25 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.js @@ -0,0 +1,149 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _Base = _interopRequireDefault(require("./Base")); + +var _Vector = _interopRequireDefault(require("../SequentialContainer/Vector")); + +var _OrderedSet = _interopRequireDefault(require("../TreeContainer/OrderedSet")); + +function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; +} + +class HashSet extends _Base.default { + constructor(e = [], t, s) { + super(t, s); + this.i = []; + e.forEach((e => this.insert(e))); + } + h() { + if (this.u >= 1073741824) return; + const e = []; + const t = this.u; + this.u <<= 1; + const s = Object.keys(this.i); + const i = s.length; + for (let r = 0; r < i; ++r) { + const i = parseInt(s[r]); + const n = this.i[i]; + const o = n.size(); + if (o === 0) continue; + if (o === 1) { + const t = n.front(); + e[this.l(t) & this.u - 1] = new _Vector.default([ t ], false); + continue; + } + const c = []; + const f = []; + n.forEach((e => { + const s = this.l(e); + if ((s & t) === 0) { + c.push(e); + } else f.push(e); + })); + if (n instanceof _OrderedSet.default) { + if (c.length > 6) { + e[i] = new _OrderedSet.default(c); + } else { + e[i] = new _Vector.default(c, false); + } + if (f.length > 6) { + e[i + t] = new _OrderedSet.default(f); + } else { + e[i + t] = new _Vector.default(f, false); + } + } else { + e[i] = new _Vector.default(c, false); + e[i + t] = new _Vector.default(f, false); + } + } + this.i = e; + } + forEach(e) { + const t = Object.values(this.i); + const s = t.length; + let i = 0; + for (let r = 0; r < s; ++r) { + t[r].forEach((t => e(t, i++))); + } + } + insert(e) { + const t = this.l(e) & this.u - 1; + const s = this.i[t]; + if (!s) { + this.i[t] = new _Vector.default([ e ], false); + this.o += 1; + } else { + const i = s.size(); + if (s instanceof _Vector.default) { + if (!s.find(e).equals(s.end())) return; + s.pushBack(e); + if (i + 1 >= 8) { + if (this.u <= 64) { + this.o += 1; + this.h(); + return; + } + this.i[t] = new _OrderedSet.default(s); + } + this.o += 1; + } else { + s.insert(e); + const t = s.size(); + this.o += t - i; + } + } + if (this.o > this.u * .75) { + this.h(); + } + } + eraseElementByKey(e) { + const t = this.l(e) & this.u - 1; + const s = this.i[t]; + if (!s) return; + const i = s.size(); + if (i === 0) return; + if (s instanceof _Vector.default) { + s.eraseElementByValue(e); + const t = s.size(); + this.o += t - i; + } else { + s.eraseElementByKey(e); + const r = s.size(); + this.o += r - i; + if (r <= 6) { + this.i[t] = new _Vector.default(s); + } + } + } + find(e) { + const t = this.l(e) & this.u - 1; + const s = this.i[t]; + if (!s) return false; + return !s.find(e).equals(s.end()); + } + [Symbol.iterator]() { + return function*() { + const e = Object.values(this.i); + const t = e.length; + for (let s = 0; s < t; ++s) { + const t = e[s]; + for (const e of t) { + yield e; + } + } + }.bind(this)(); + } +} + +var _default = HashSet; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.d.ts b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.d.ts new file mode 100644 index 0000000..ceef4c0 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.d.ts @@ -0,0 +1,48 @@ +import { Base, initContainer } from "../ContainerBase"; +declare class PriorityQueue extends Base { + /** + * @description PriorityQueue's constructor. + * @param container Initialize container, must have a forEach function. + * @param cmp Compare function. + * @param copy When the container is an array, you can choose to directly operate on the original object of + * the array or perform a shallow copy. The default is shallow copy. + */ + constructor(container?: initContainer, cmp?: (x: T, y: T) => number, copy?: boolean); + clear(): void; + /** + * @description Push element into a container in order. + * @param item The element you want to push. + */ + push(item: T): void; + /** + * @description Removes the top element. + */ + pop(): void; + /** + * @description Accesses the top element. + */ + top(): T | undefined; + /** + * @description Check if element is in heap. + * @param item The item want to find. + * @return Boolean about if element is in heap. + */ + find(item: T): boolean; + /** + * @description Remove specified item from heap. + * @param item The item want to remove. + * @return Boolean about if remove success. + */ + remove(item: T): boolean; + /** + * @description Update item and it's pos in the heap. + * @param item The item want to update. + * @return Boolean about if update success. + */ + updateItem(item: T): boolean; + /** + * @return Return a copy array of heap. + */ + toArray(): T[]; +} +export default PriorityQueue; diff --git a/node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.js b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.js new file mode 100644 index 0000000..a4b2cbb --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.js @@ -0,0 +1,112 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _ContainerBase = require("../ContainerBase"); + +class PriorityQueue extends _ContainerBase.Base { + constructor(t = [], s = ((t, s) => { + if (t > s) return -1; + if (t < s) return 1; + return 0; + }), i = true) { + super(); + this.p = s; + if (Array.isArray(t)) { + this._ = i ? [ ...t ] : t; + } else { + this._ = []; + t.forEach((t => this._.push(t))); + } + this.o = this._.length; + const e = this.o >> 1; + for (let t = this.o - 1 >> 1; t >= 0; --t) { + this.v(t, e); + } + } + B(t) { + const s = this._[t]; + while (t > 0) { + const i = t - 1 >> 1; + const e = this._[i]; + if (this.p(e, s) <= 0) break; + this._[t] = e; + t = i; + } + this._[t] = s; + } + v(t, s) { + const i = this._[t]; + while (t < s) { + let s = t << 1 | 1; + const e = s + 1; + let h = this._[s]; + if (e < this.o && this.p(h, this._[e]) > 0) { + s = e; + h = this._[e]; + } + if (this.p(h, i) >= 0) break; + this._[t] = h; + t = s; + } + this._[t] = i; + } + clear() { + this.o = 0; + this._.length = 0; + } + push(t) { + this._.push(t); + this.B(this.o); + this.o += 1; + } + pop() { + if (!this.o) return; + const t = this._.pop(); + this.o -= 1; + if (this.o) { + this._[0] = t; + this.v(0, this.o >> 1); + } + } + top() { + return this._[0]; + } + find(t) { + return this._.indexOf(t) >= 0; + } + remove(t) { + const s = this._.indexOf(t); + if (s < 0) return false; + if (s === 0) { + this.pop(); + } else if (s === this.o - 1) { + this._.pop(); + this.o -= 1; + } else { + this._.splice(s, 1, this._.pop()); + this.o -= 1; + this.B(s); + this.v(s, this.o >> 1); + } + return true; + } + updateItem(t) { + const s = this._.indexOf(t); + if (s < 0) return false; + this.B(s); + this.v(s, this.o >> 1); + return true; + } + toArray() { + return [ ...this._ ]; + } +} + +var _default = PriorityQueue; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.d.ts b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.d.ts new file mode 100644 index 0000000..0bc1bf6 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.d.ts @@ -0,0 +1,18 @@ +import { Base, initContainer } from "../ContainerBase"; +declare class Queue extends Base { + constructor(container?: initContainer); + clear(): void; + /** + * @description Inserts element to queue's end. + */ + push(element: T): void; + /** + * @description Removes the first element. + */ + pop(): void; + /** + * @description Access the first element. + */ + front(): T | undefined; +} +export default Queue; diff --git a/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.js b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.js new file mode 100644 index 0000000..1c13846 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.js @@ -0,0 +1,44 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _Deque = _interopRequireDefault(require("../SequentialContainer/Deque")); + +var _ContainerBase = require("../ContainerBase"); + +function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; +} + +class Queue extends _ContainerBase.Base { + constructor(e = []) { + super(); + this.q = new _Deque.default(e); + this.o = this.q.size(); + } + clear() { + this.q.clear(); + this.o = 0; + } + push(e) { + this.q.pushBack(e); + this.o += 1; + } + pop() { + this.q.popFront(); + if (this.o) this.o -= 1; + } + front() { + return this.q.front(); + } +} + +var _default = Queue; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.d.ts b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.d.ts new file mode 100644 index 0000000..1582374 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.d.ts @@ -0,0 +1,18 @@ +import { Base, initContainer } from "../ContainerBase"; +declare class Stack extends Base { + constructor(container?: initContainer); + clear(): void; + /** + * @description Insert element to stack's end. + */ + push(element: T): void; + /** + * @description Removes the end element. + */ + pop(): void; + /** + * @description Accesses the end element. + */ + top(): T | undefined; +} +export default Stack; diff --git a/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.js b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.js new file mode 100644 index 0000000..220d01c --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.js @@ -0,0 +1,36 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _ContainerBase = require("../ContainerBase"); + +class Stack extends _ContainerBase.Base { + constructor(t = []) { + super(); + this.C = []; + t.forEach((t => this.push(t))); + } + clear() { + this.o = 0; + this.C.length = 0; + } + push(t) { + this.C.push(t); + this.o += 1; + } + pop() { + this.C.pop(); + if (this.o > 0) this.o -= 1; + } + top() { + return this.C[this.o - 1]; + } +} + +var _default = Stack; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.d.ts b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.d.ts new file mode 100644 index 0000000..21fdb96 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.d.ts @@ -0,0 +1,8 @@ +import { ContainerIterator } from "../../ContainerBase"; +export declare abstract class RandomIterator extends ContainerIterator { + pre: () => this; + next: () => this; + get pointer(): T; + set pointer(newValue: T); + equals(obj: RandomIterator): boolean; +} diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.js b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.js new file mode 100644 index 0000000..b3b0769 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.RandomIterator = void 0; + +var _ContainerBase = require("../../ContainerBase"); + +class RandomIterator extends _ContainerBase.ContainerIterator { + constructor(t, r, e, i, s) { + super(s); + this.I = t; + this.D = r; + this.g = e; + this.m = i; + if (this.iteratorType === 0) { + this.pre = function() { + if (this.I === 0) { + throw new RangeError("Random iterator access denied!"); + } + this.I -= 1; + return this; + }; + this.next = function() { + if (this.I === this.D()) { + throw new RangeError("Random Iterator access denied!"); + } + this.I += 1; + return this; + }; + } else { + this.pre = function() { + if (this.I === this.D() - 1) { + throw new RangeError("Random iterator access denied!"); + } + this.I += 1; + return this; + }; + this.next = function() { + if (this.I === -1) { + throw new RangeError("Random iterator access denied!"); + } + this.I -= 1; + return this; + }; + } + } + get pointer() { + if (this.I < 0 || this.I > this.D() - 1) { + throw new RangeError; + } + return this.g(this.I); + } + set pointer(t) { + if (this.I < 0 || this.I > this.D() - 1) { + throw new RangeError; + } + this.m(this.I, t); + } + equals(t) { + return this.I === t.I; + } +} + +exports.RandomIterator = RandomIterator; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.d.ts b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.d.ts new file mode 100644 index 0000000..ed3b995 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.d.ts @@ -0,0 +1,44 @@ +import { Container } from "../../ContainerBase"; +declare abstract class SequentialContainer extends Container { + /** + * @description Push the element to the back. + * @param element The element you want to push. + */ + abstract pushBack(element: T): void; + /** + * @description Removes the last element. + */ + abstract popBack(): void; + /** + * @description Sets element by position. + * @param pos The position you want to change. + * @param element The element's value you want to update. + */ + abstract setElementByPos(pos: number, element: T): void; + /** + * @description Removes the elements of the specified value. + * @param value The value you want to remove. + */ + abstract eraseElementByValue(value: T): void; + /** + * @description Insert several elements after the specified position. + * @param pos The position you want to insert. + * @param element The element you want to insert. + * @param num The number of elements you want to insert (default 1). + */ + abstract insert(pos: number, element: T, num?: number): void; + /** + * @description Reverses the container. + */ + abstract reverse(): void; + /** + * @description Removes the duplication of elements in the container. + */ + abstract unique(): void; + /** + * @description Sort the container. + * @param cmp Comparison function. + */ + abstract sort(cmp?: (x: T, y: T) => number): void; +} +export default SequentialContainer; diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.js b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.js new file mode 100644 index 0000000..620c525 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.js @@ -0,0 +1,15 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _ContainerBase = require("../../ContainerBase"); + +class SequentialContainer extends _ContainerBase.Container {} + +var _default = SequentialContainer; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.d.ts b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.d.ts new file mode 100644 index 0000000..43adc28 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.d.ts @@ -0,0 +1,50 @@ +import SequentialContainer from './Base'; +import { initContainer } from "../ContainerBase"; +import { RandomIterator } from "./Base/RandomIterator"; +export declare class DequeIterator extends RandomIterator { + copy(): DequeIterator; +} +declare class Deque extends SequentialContainer { + constructor(container?: initContainer, _bucketSize?: number); + clear(): void; + front(): T | undefined; + back(): T | undefined; + begin(): DequeIterator; + end(): DequeIterator; + rBegin(): DequeIterator; + rEnd(): DequeIterator; + pushBack(element: T): void; + popBack(): void; + /** + * @description Push the element to the front. + * @param element The element you want to push. + */ + pushFront(element: T): void; + /** + * @description Remove the _first element. + */ + popFront(): void; + forEach(callback: (element: T, index: number) => void): void; + getElementByPos(pos: number): T; + setElementByPos(pos: number, element: T): void; + insert(pos: number, element: T, num?: number): void; + /** + * @description Remove all elements after the specified position (excluding the specified position). + * @param pos The previous position of the _first removed element. + * @example deque.cut(1); // Then deque's size will be 2. deque -> [0, 1] + */ + cut(pos: number): void; + eraseElementByPos(pos: number): void; + eraseElementByValue(value: T): void; + eraseElementByIterator(iter: DequeIterator): DequeIterator; + find(element: T): DequeIterator; + reverse(): void; + unique(): void; + sort(cmp?: (x: T, y: T) => number): void; + /** + * @description Remove as much useless space as possible. + */ + shrinkToFit(): void; + [Symbol.iterator](): Generator; +} +export default Deque; diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.js b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.js new file mode 100644 index 0000000..ac86464 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.js @@ -0,0 +1,324 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = exports.DequeIterator = void 0; + +var _Base = _interopRequireDefault(require("./Base")); + +var _RandomIterator = require("./Base/RandomIterator"); + +function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; +} + +class DequeIterator extends _RandomIterator.RandomIterator { + copy() { + return new DequeIterator(this.I, this.D, this.g, this.m, this.iteratorType); + } +} + +exports.DequeIterator = DequeIterator; + +class Deque extends _Base.default { + constructor(t = [], i = 1 << 12) { + super(); + this.R = 0; + this.k = 0; + this.N = 0; + this.M = 0; + this.u = 0; + this.P = []; + let s; + if ("size" in t) { + if (typeof t.size === "number") { + s = t.size; + } else { + s = t.size(); + } + } else if ("length" in t) { + s = t.length; + } else { + throw new RangeError("Can't get container's size!"); + } + this.A = i; + this.u = Math.max(Math.ceil(s / this.A), 1); + for (let t = 0; t < this.u; ++t) { + this.P.push(new Array(this.A)); + } + const h = Math.ceil(s / this.A); + this.R = this.N = (this.u >> 1) - (h >> 1); + this.k = this.M = this.A - s % this.A >> 1; + t.forEach((t => this.pushBack(t))); + this.size = this.size.bind(this); + this.getElementByPos = this.getElementByPos.bind(this); + this.setElementByPos = this.setElementByPos.bind(this); + } + h() { + const t = []; + const i = Math.max(this.u >> 1, 1); + for (let s = 0; s < i; ++s) { + t[s] = new Array(this.A); + } + for (let i = this.R; i < this.u; ++i) { + t[t.length] = this.P[i]; + } + for (let i = 0; i < this.N; ++i) { + t[t.length] = this.P[i]; + } + t[t.length] = [ ...this.P[this.N] ]; + this.R = i; + this.N = t.length - 1; + for (let s = 0; s < i; ++s) { + t[t.length] = new Array(this.A); + } + this.P = t; + this.u = t.length; + } + F(t) { + const i = this.k + t + 1; + const s = i % this.A; + let h = s - 1; + let e = this.R + (i - s) / this.A; + if (s === 0) e -= 1; + e %= this.u; + if (h < 0) h += this.A; + return { + curNodeBucketIndex: e, + curNodePointerIndex: h + }; + } + clear() { + this.P = [ [] ]; + this.u = 1; + this.R = this.N = this.o = 0; + this.k = this.M = this.A >> 1; + } + front() { + return this.P[this.R][this.k]; + } + back() { + return this.P[this.N][this.M]; + } + begin() { + return new DequeIterator(0, this.size, this.getElementByPos, this.setElementByPos); + } + end() { + return new DequeIterator(this.o, this.size, this.getElementByPos, this.setElementByPos); + } + rBegin() { + return new DequeIterator(this.o - 1, this.size, this.getElementByPos, this.setElementByPos, 1); + } + rEnd() { + return new DequeIterator(-1, this.size, this.getElementByPos, this.setElementByPos, 1); + } + pushBack(t) { + if (this.o) { + if (this.M < this.A - 1) { + this.M += 1; + } else if (this.N < this.u - 1) { + this.N += 1; + this.M = 0; + } else { + this.N = 0; + this.M = 0; + } + if (this.N === this.R && this.M === this.k) this.h(); + } + this.o += 1; + this.P[this.N][this.M] = t; + } + popBack() { + if (!this.o) return; + this.P[this.N][this.M] = undefined; + if (this.o !== 1) { + if (this.M > 0) { + this.M -= 1; + } else if (this.N > 0) { + this.N -= 1; + this.M = this.A - 1; + } else { + this.N = this.u - 1; + this.M = this.A - 1; + } + } + this.o -= 1; + } + pushFront(t) { + if (this.o) { + if (this.k > 0) { + this.k -= 1; + } else if (this.R > 0) { + this.R -= 1; + this.k = this.A - 1; + } else { + this.R = this.u - 1; + this.k = this.A - 1; + } + if (this.R === this.N && this.k === this.M) this.h(); + } + this.o += 1; + this.P[this.R][this.k] = t; + } + popFront() { + if (!this.o) return; + this.P[this.R][this.k] = undefined; + if (this.o !== 1) { + if (this.k < this.A - 1) { + this.k += 1; + } else if (this.R < this.u - 1) { + this.R += 1; + this.k = 0; + } else { + this.R = 0; + this.k = 0; + } + } + this.o -= 1; + } + forEach(t) { + for (let i = 0; i < this.o; ++i) { + t(this.getElementByPos(i), i); + } + } + getElementByPos(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + const {curNodeBucketIndex: i, curNodePointerIndex: s} = this.F(t); + return this.P[i][s]; + } + setElementByPos(t, i) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + const {curNodeBucketIndex: s, curNodePointerIndex: h} = this.F(t); + this.P[s][h] = i; + } + insert(t, i, s = 1) { + if (t < 0 || t > this.o) { + throw new RangeError; + } + if (t === 0) { + while (s--) this.pushFront(i); + } else if (t === this.o) { + while (s--) this.pushBack(i); + } else { + const h = []; + for (let i = t; i < this.o; ++i) { + h.push(this.getElementByPos(i)); + } + this.cut(t - 1); + for (let t = 0; t < s; ++t) this.pushBack(i); + for (let t = 0; t < h.length; ++t) this.pushBack(h[t]); + } + } + cut(t) { + if (t < 0) { + this.clear(); + return; + } + const {curNodeBucketIndex: i, curNodePointerIndex: s} = this.F(t); + this.N = i; + this.M = s; + this.o = t + 1; + } + eraseElementByPos(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + if (t === 0) this.popFront(); else if (t === this.o - 1) this.popBack(); else { + const i = []; + for (let s = t + 1; s < this.o; ++s) { + i.push(this.getElementByPos(s)); + } + this.cut(t); + this.popBack(); + i.forEach((t => this.pushBack(t))); + } + } + eraseElementByValue(t) { + if (!this.o) return; + const i = []; + for (let s = 0; s < this.o; ++s) { + const h = this.getElementByPos(s); + if (h !== t) i.push(h); + } + const s = i.length; + for (let t = 0; t < s; ++t) this.setElementByPos(t, i[t]); + this.cut(s - 1); + } + eraseElementByIterator(t) { + const i = t.I; + this.eraseElementByPos(i); + t = t.next(); + return t; + } + find(t) { + for (let i = 0; i < this.o; ++i) { + if (this.getElementByPos(i) === t) { + return new DequeIterator(i, this.size, this.getElementByPos, this.setElementByPos); + } + } + return this.end(); + } + reverse() { + let t = 0; + let i = this.o - 1; + while (t < i) { + const s = this.getElementByPos(t); + this.setElementByPos(t, this.getElementByPos(i)); + this.setElementByPos(i, s); + t += 1; + i -= 1; + } + } + unique() { + if (this.o <= 1) return; + let t = 1; + let i = this.getElementByPos(0); + for (let s = 1; s < this.o; ++s) { + const h = this.getElementByPos(s); + if (h !== i) { + i = h; + this.setElementByPos(t++, h); + } + } + while (this.o > t) this.popBack(); + } + sort(t) { + const i = []; + for (let t = 0; t < this.o; ++t) { + i.push(this.getElementByPos(t)); + } + i.sort(t); + for (let t = 0; t < this.o; ++t) this.setElementByPos(t, i[t]); + } + shrinkToFit() { + if (!this.o) return; + const t = []; + this.forEach((i => t.push(i))); + this.u = Math.max(Math.ceil(this.o / this.A), 1); + this.o = this.R = this.N = this.k = this.M = 0; + this.P = []; + for (let t = 0; t < this.u; ++t) { + this.P.push(new Array(this.A)); + } + for (let i = 0; i < t.length; ++i) this.pushBack(t[i]); + } + [Symbol.iterator]() { + return function*() { + for (let t = 0; t < this.o; ++t) { + yield this.getElementByPos(t); + } + }.bind(this)(); + } +} + +var _default = Deque; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.d.ts b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.d.ts new file mode 100644 index 0000000..acb1456 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.d.ts @@ -0,0 +1,49 @@ +import SequentialContainer from './Base'; +import { ContainerIterator, initContainer } from "../ContainerBase"; +export declare class LinkListIterator extends ContainerIterator { + pre: () => this; + next: () => this; + get pointer(): T; + set pointer(newValue: T); + equals(obj: LinkListIterator): boolean; + copy(): LinkListIterator; +} +declare class LinkList extends SequentialContainer { + constructor(container?: initContainer); + clear(): void; + begin(): LinkListIterator; + end(): LinkListIterator; + rBegin(): LinkListIterator; + rEnd(): LinkListIterator; + front(): T | undefined; + back(): T | undefined; + forEach(callback: (element: T, index: number) => void): void; + getElementByPos(pos: number): T; + eraseElementByPos(pos: number): void; + eraseElementByValue(_value: T): void; + eraseElementByIterator(iter: LinkListIterator): LinkListIterator; + pushBack(element: T): void; + popBack(): void; + setElementByPos(pos: number, element: T): void; + insert(pos: number, element: T, num?: number): void; + find(element: T): LinkListIterator; + reverse(): void; + unique(): void; + sort(cmp?: (x: T, y: T) => number): void; + /** + * @description Push an element to the front. + * @param element The element you want to push. + */ + pushFront(element: T): void; + /** + * @description Removes the first element. + */ + popFront(): void; + /** + * @description Merges two sorted lists. + * @param list The other list you want to merge (must be sorted). + */ + merge(list: LinkList): void; + [Symbol.iterator](): Generator; +} +export default LinkList; diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.js b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.js new file mode 100644 index 0000000..e4a0d73 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.js @@ -0,0 +1,366 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = exports.LinkNode = exports.LinkListIterator = void 0; + +var _Base = _interopRequireDefault(require("./Base")); + +var _ContainerBase = require("../ContainerBase"); + +function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; +} + +class LinkNode { + constructor(t) { + this.L = undefined; + this.j = undefined; + this.O = undefined; + this.L = t; + } +} + +exports.LinkNode = LinkNode; + +class LinkListIterator extends _ContainerBase.ContainerIterator { + constructor(t, i, s) { + super(s); + this.I = t; + this.S = i; + if (this.iteratorType === 0) { + this.pre = function() { + if (this.I.j === this.S) { + throw new RangeError("LinkList iterator access denied!"); + } + this.I = this.I.j; + return this; + }; + this.next = function() { + if (this.I === this.S) { + throw new RangeError("LinkList iterator access denied!"); + } + this.I = this.I.O; + return this; + }; + } else { + this.pre = function() { + if (this.I.O === this.S) { + throw new RangeError("LinkList iterator access denied!"); + } + this.I = this.I.O; + return this; + }; + this.next = function() { + if (this.I === this.S) { + throw new RangeError("LinkList iterator access denied!"); + } + this.I = this.I.j; + return this; + }; + } + } + get pointer() { + if (this.I === this.S) { + throw new RangeError("LinkList iterator access denied!"); + } + return this.I.L; + } + set pointer(t) { + if (this.I === this.S) { + throw new RangeError("LinkList iterator access denied!"); + } + this.I.L = t; + } + equals(t) { + return this.I === t.I; + } + copy() { + return new LinkListIterator(this.I, this.S, this.iteratorType); + } +} + +exports.LinkListIterator = LinkListIterator; + +class LinkList extends _Base.default { + constructor(t = []) { + super(); + this.S = new LinkNode; + this.V = undefined; + this.G = undefined; + t.forEach((t => this.pushBack(t))); + } + clear() { + this.o = 0; + this.V = this.G = undefined; + this.S.j = this.S.O = undefined; + } + begin() { + return new LinkListIterator(this.V || this.S, this.S); + } + end() { + return new LinkListIterator(this.S, this.S); + } + rBegin() { + return new LinkListIterator(this.G || this.S, this.S, 1); + } + rEnd() { + return new LinkListIterator(this.S, this.S, 1); + } + front() { + return this.V ? this.V.L : undefined; + } + back() { + return this.G ? this.G.L : undefined; + } + forEach(t) { + if (!this.o) return; + let i = this.V; + let s = 0; + while (i !== this.S) { + t(i.L, s++); + i = i.O; + } + } + getElementByPos(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + let i = this.V; + while (t--) { + i = i.O; + } + return i.L; + } + eraseElementByPos(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + if (t === 0) this.popFront(); else if (t === this.o - 1) this.popBack(); else { + let i = this.V; + while (t--) { + i = i.O; + } + i = i; + const s = i.j; + const e = i.O; + e.j = s; + s.O = e; + this.o -= 1; + } + } + eraseElementByValue(t) { + while (this.V && this.V.L === t) this.popFront(); + while (this.G && this.G.L === t) this.popBack(); + if (!this.V) return; + let i = this.V; + while (i !== this.S) { + if (i.L === t) { + const t = i.j; + const s = i.O; + s.j = t; + t.O = s; + this.o -= 1; + } + i = i.O; + } + } + eraseElementByIterator(t) { + const i = t.I; + if (i === this.S) { + throw new RangeError("Invalid iterator"); + } + t = t.next(); + if (this.V === i) this.popFront(); else if (this.G === i) this.popBack(); else { + const t = i.j; + const s = i.O; + s.j = t; + t.O = s; + this.o -= 1; + } + return t; + } + pushBack(t) { + this.o += 1; + const i = new LinkNode(t); + if (!this.G) { + this.V = this.G = i; + this.S.O = this.V; + this.V.j = this.S; + } else { + this.G.O = i; + i.j = this.G; + this.G = i; + } + this.G.O = this.S; + this.S.j = this.G; + } + popBack() { + if (!this.G) return; + this.o -= 1; + if (this.V === this.G) { + this.V = this.G = undefined; + this.S.O = undefined; + } else { + this.G = this.G.j; + this.G.O = this.S; + } + this.S.j = this.G; + } + setElementByPos(t, i) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + let s = this.V; + while (t--) { + s = s.O; + } + s.L = i; + } + insert(t, i, s = 1) { + if (t < 0 || t > this.o) { + throw new RangeError; + } + if (s <= 0) return; + if (t === 0) { + while (s--) this.pushFront(i); + } else if (t === this.o) { + while (s--) this.pushBack(i); + } else { + let e = this.V; + for (let i = 1; i < t; ++i) { + e = e.O; + } + const h = e.O; + this.o += s; + while (s--) { + e.O = new LinkNode(i); + e.O.j = e; + e = e.O; + } + e.O = h; + h.j = e; + } + } + find(t) { + if (!this.V) return this.end(); + let i = this.V; + while (i !== this.S) { + if (i.L === t) { + return new LinkListIterator(i, this.S); + } + i = i.O; + } + return this.end(); + } + reverse() { + if (this.o <= 1) return; + let t = this.V; + let i = this.G; + let s = 0; + while (s << 1 < this.o) { + const e = t.L; + t.L = i.L; + i.L = e; + t = t.O; + i = i.j; + s += 1; + } + } + unique() { + if (this.o <= 1) return; + let t = this.V; + while (t !== this.S) { + let i = t; + while (i.O && i.L === i.O.L) { + i = i.O; + this.o -= 1; + } + t.O = i.O; + t.O.j = t; + t = t.O; + } + } + sort(t) { + if (this.o <= 1) return; + const i = []; + this.forEach((t => i.push(t))); + i.sort(t); + let s = this.V; + i.forEach((t => { + s.L = t; + s = s.O; + })); + } + pushFront(t) { + this.o += 1; + const i = new LinkNode(t); + if (!this.V) { + this.V = this.G = i; + this.G.O = this.S; + this.S.j = this.G; + } else { + i.O = this.V; + this.V.j = i; + this.V = i; + } + this.S.O = this.V; + this.V.j = this.S; + } + popFront() { + if (!this.V) return; + this.o -= 1; + if (this.V === this.G) { + this.V = this.G = undefined; + this.S.j = this.G; + } else { + this.V = this.V.O; + this.V.j = this.S; + } + this.S.O = this.V; + } + merge(t) { + if (!this.V) { + t.forEach((t => this.pushBack(t))); + return; + } + let i = this.V; + t.forEach((t => { + while (i && i !== this.S && i.L <= t) { + i = i.O; + } + if (i === this.S) { + this.pushBack(t); + i = this.G; + } else if (i === this.V) { + this.pushFront(t); + i = this.V; + } else { + this.o += 1; + const s = i.j; + s.O = new LinkNode(t); + s.O.j = s; + s.O.O = i; + i.j = s.O; + } + })); + } + [Symbol.iterator]() { + return function*() { + if (!this.V) return; + let t = this.V; + while (t !== this.S) { + yield t.L; + t = t.O; + } + }.bind(this)(); + } +} + +var _default = LinkList; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.d.ts b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.d.ts new file mode 100644 index 0000000..b7d8c40 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.d.ts @@ -0,0 +1,37 @@ +import SequentialContainer from './Base'; +import { initContainer } from "../ContainerBase"; +import { RandomIterator } from "./Base/RandomIterator"; +export declare class VectorIterator extends RandomIterator { + copy(): VectorIterator; +} +declare class Vector extends SequentialContainer { + /** + * @description Vector's constructor. + * @param container Initialize container, must have a forEach function. + * @param copy When the container is an array, you can choose to directly operate on the original object of + * the array or perform a shallow copy. The default is shallow copy. + */ + constructor(container?: initContainer, copy?: boolean); + clear(): void; + begin(): VectorIterator; + end(): VectorIterator; + rBegin(): VectorIterator; + rEnd(): VectorIterator; + front(): T | undefined; + back(): T | undefined; + forEach(callback: (element: T, index: number) => void): void; + getElementByPos(pos: number): T; + eraseElementByPos(pos: number): void; + eraseElementByValue(value: T): void; + eraseElementByIterator(iter: VectorIterator): VectorIterator; + pushBack(element: T): void; + popBack(): void; + setElementByPos(pos: number, element: T): void; + insert(pos: number, element: T, num?: number): void; + find(element: T): VectorIterator; + reverse(): void; + unique(): void; + sort(cmp?: (x: T, y: T) => number): void; + [Symbol.iterator](): Generator; +} +export default Vector; diff --git a/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.js b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.js new file mode 100644 index 0000000..ddd106f --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.js @@ -0,0 +1,150 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = exports.VectorIterator = void 0; + +var _Base = _interopRequireDefault(require("./Base")); + +var _RandomIterator = require("./Base/RandomIterator"); + +function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; +} + +class VectorIterator extends _RandomIterator.RandomIterator { + copy() { + return new VectorIterator(this.I, this.D, this.g, this.m, this.iteratorType); + } +} + +exports.VectorIterator = VectorIterator; + +class Vector extends _Base.default { + constructor(t = [], e = true) { + super(); + if (Array.isArray(t)) { + this.H = e ? [ ...t ] : t; + this.o = t.length; + } else { + this.H = []; + t.forEach((t => this.pushBack(t))); + } + this.size = this.size.bind(this); + this.getElementByPos = this.getElementByPos.bind(this); + this.setElementByPos = this.setElementByPos.bind(this); + } + clear() { + this.o = 0; + this.H.length = 0; + } + begin() { + return new VectorIterator(0, this.size, this.getElementByPos, this.setElementByPos); + } + end() { + return new VectorIterator(this.o, this.size, this.getElementByPos, this.setElementByPos); + } + rBegin() { + return new VectorIterator(this.o - 1, this.size, this.getElementByPos, this.setElementByPos, 1); + } + rEnd() { + return new VectorIterator(-1, this.size, this.getElementByPos, this.setElementByPos, 1); + } + front() { + return this.H[0]; + } + back() { + return this.H[this.o - 1]; + } + forEach(t) { + for (let e = 0; e < this.o; ++e) { + t(this.H[e], e); + } + } + getElementByPos(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + return this.H[t]; + } + eraseElementByPos(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + this.H.splice(t, 1); + this.o -= 1; + } + eraseElementByValue(t) { + let e = 0; + for (let r = 0; r < this.o; ++r) { + if (this.H[r] !== t) { + this.H[e++] = this.H[r]; + } + } + this.o = this.H.length = e; + } + eraseElementByIterator(t) { + const e = t.I; + t = t.next(); + this.eraseElementByPos(e); + return t; + } + pushBack(t) { + this.H.push(t); + this.o += 1; + } + popBack() { + if (!this.o) return; + this.H.pop(); + this.o -= 1; + } + setElementByPos(t, e) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + this.H[t] = e; + } + insert(t, e, r = 1) { + if (t < 0 || t > this.o) { + throw new RangeError; + } + this.H.splice(t, 0, ...new Array(r).fill(e)); + this.o += r; + } + find(t) { + for (let e = 0; e < this.o; ++e) { + if (this.H[e] === t) { + return new VectorIterator(e, this.size, this.getElementByPos, this.getElementByPos); + } + } + return this.end(); + } + reverse() { + this.H.reverse(); + } + unique() { + let t = 1; + for (let e = 1; e < this.o; ++e) { + if (this.H[e] !== this.H[e - 1]) { + this.H[t++] = this.H[e]; + } + } + this.o = this.H.length = t; + } + sort(t) { + this.H.sort(t); + } + [Symbol.iterator]() { + return function*() { + return yield* this.H; + }.bind(this)(); + } +} + +var _default = Vector; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.d.ts b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.d.ts new file mode 100644 index 0000000..8ef9837 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.d.ts @@ -0,0 +1,15 @@ +import { ContainerIterator } from "../../ContainerBase"; +declare abstract class TreeIterator extends ContainerIterator { + pre: () => this; + next: () => this; + /** + * @description Get the sequential index of the iterator in the tree container.
+ * + * Note: + * + * This function only takes effect when the specified tree container `enableIndex = true`. + */ + get index(): number; + equals(obj: TreeIterator): boolean; +} +export default TreeIterator; diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.js b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.js new file mode 100644 index 0000000..0ff7b5e --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.js @@ -0,0 +1,80 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _ContainerBase = require("../../ContainerBase"); + +class TreeIterator extends _ContainerBase.ContainerIterator { + constructor(t, e, r) { + super(r); + this.I = t; + this.S = e; + if (this.iteratorType === 0) { + this.pre = function() { + if (this.I === this.S.U) { + throw new RangeError("Tree iterator access denied!"); + } + this.I = this.I.pre(); + return this; + }; + this.next = function() { + if (this.I === this.S) { + throw new RangeError("Tree iterator access denied!"); + } + this.I = this.I.next(); + return this; + }; + } else { + this.pre = function() { + if (this.I === this.S.J) { + throw new RangeError("Tree iterator access denied!"); + } + this.I = this.I.next(); + return this; + }; + this.next = function() { + if (this.I === this.S) { + throw new RangeError("Tree iterator access denied!"); + } + this.I = this.I.pre(); + return this; + }; + } + } + get index() { + let t = this.I; + const e = this.S.tt; + if (t === this.S) { + if (e) { + return e.et - 1; + } + return 0; + } + let r = 0; + if (t.U) { + r += t.U.et; + } + while (t !== e) { + const e = t.tt; + if (t === e.J) { + r += 1; + if (e.U) { + r += e.U.et; + } + } + t = e; + } + return r; + } + equals(t) { + return this.I === t.I; + } +} + +var _default = TreeIterator; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.d.ts b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.d.ts new file mode 100644 index 0000000..ddd9933 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.d.ts @@ -0,0 +1,36 @@ +export declare class TreeNode { + constructor(_key?: K, _value?: V); + /** + * @description Get the pre node. + * @return TreeNode about the pre node. + */ + pre(): TreeNode; + /** + * @description Get the next node. + * @return TreeNode about the next node. + */ + next(): TreeNode; + /** + * @description Rotate _left. + * @return TreeNode about moved to original position after rotation. + */ + rotateLeft(): TreeNode; + /** + * @description Rotate _right. + * @return TreeNode about moved to original position after rotation. + */ + rotateRight(): TreeNode; +} +export declare class TreeNodeEnableIndex extends TreeNode { + /** + * @description Rotate _left and do recount. + * @return TreeNode about moved to original position after rotation. + */ + rotateLeft(): TreeNodeEnableIndex; + /** + * @description Rotate _right and do recount. + * @return TreeNode about moved to original position after rotation. + */ + rotateRight(): TreeNode; + recount(): void; +} diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.js b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.js new file mode 100644 index 0000000..c59ca74 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.js @@ -0,0 +1,113 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.TreeNodeEnableIndex = exports.TreeNode = void 0; + +class TreeNode { + constructor(e, t) { + this.se = 1; + this.T = undefined; + this.L = undefined; + this.U = undefined; + this.J = undefined; + this.tt = undefined; + this.T = e; + this.L = t; + } + pre() { + let e = this; + if (e.se === 1 && e.tt.tt === e) { + e = e.J; + } else if (e.U) { + e = e.U; + while (e.J) { + e = e.J; + } + } else { + let t = e.tt; + while (t.U === e) { + e = t; + t = e.tt; + } + e = t; + } + return e; + } + next() { + let e = this; + if (e.J) { + e = e.J; + while (e.U) { + e = e.U; + } + return e; + } else { + let t = e.tt; + while (t.J === e) { + e = t; + t = e.tt; + } + if (e.J !== t) { + return t; + } else return e; + } + } + rotateLeft() { + const e = this.tt; + const t = this.J; + const s = t.U; + if (e.tt === this) e.tt = t; else if (e.U === this) e.U = t; else e.J = t; + t.tt = e; + t.U = this; + this.tt = t; + this.J = s; + if (s) s.tt = this; + return t; + } + rotateRight() { + const e = this.tt; + const t = this.U; + const s = t.J; + if (e.tt === this) e.tt = t; else if (e.U === this) e.U = t; else e.J = t; + t.tt = e; + t.J = this; + this.tt = t; + this.U = s; + if (s) s.tt = this; + return t; + } +} + +exports.TreeNode = TreeNode; + +class TreeNodeEnableIndex extends TreeNode { + constructor() { + super(...arguments); + this.U = undefined; + this.J = undefined; + this.tt = undefined; + this.et = 1; + } + rotateLeft() { + const e = super.rotateLeft(); + this.recount(); + e.recount(); + return e; + } + rotateRight() { + const e = super.rotateRight(); + this.recount(); + e.recount(); + return e; + } + recount() { + this.et = 1; + if (this.U) this.et += this.U.et; + if (this.J) this.et += this.J.et; + } +} + +exports.TreeNodeEnableIndex = TreeNodeEnableIndex; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.d.ts b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.d.ts new file mode 100644 index 0000000..340b071 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.d.ts @@ -0,0 +1,55 @@ +import type TreeIterator from './TreeIterator'; +import { Container } from "../../ContainerBase"; +declare abstract class TreeContainer extends Container { + /** + * @param cmp The compare function. + * @param enableIndex Whether to enable iterator indexing function. + */ + protected constructor(cmp?: (x: K, y: K) => number, enableIndex?: boolean); + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element not less than the given _key. + */ + abstract lowerBound(_key: K): TreeIterator; + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element greater than the given _key. + */ + abstract upperBound(_key: K): TreeIterator; + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element not greater than the given _key. + */ + abstract reverseLowerBound(_key: K): TreeIterator; + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element less than the given _key. + */ + abstract reverseUpperBound(_key: K): TreeIterator; + /** + * @description Union the other tree to self. + * @param other The other tree container you want to merge. + */ + abstract union(other: TreeContainer): void; + clear(): void; + /** + * @description Update node's _key by iterator. + * @param iter The iterator you want to change. + * @param _key The _key you want to update. + * @return Boolean about if the modification is successful. + */ + updateKeyByIterator(iter: TreeIterator, _key: K): boolean; + eraseElementByPos(pos: number): void; + /** + * @description Remove the element of the specified _key. + * @param _key The _key you want to remove. + */ + eraseElementByKey(_key: K): void; + eraseElementByIterator(iter: TreeIterator): TreeIterator; + /** + * @description Get the height of the tree. + * @return Number about the height of the RB-tree. + */ + getHeight(): number; +} +export default TreeContainer; diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.js b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.js new file mode 100644 index 0000000..d2646c6 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.js @@ -0,0 +1,483 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = void 0; + +var _ContainerBase = require("../../ContainerBase"); + +var _TreeNode = require("./TreeNode"); + +class TreeContainer extends _ContainerBase.Container { + constructor(e = ((e, t) => { + if (e < t) return -1; + if (e > t) return 1; + return 0; + }), t = false) { + super(); + this.X = undefined; + this.ie = (e, t) => { + if (e === undefined) return false; + const i = this.ie(e.U, t); + if (i) return true; + if (t(e)) return true; + return this.ie(e.J, t); + }; + this.p = e; + if (t) { + this.ne = _TreeNode.TreeNodeEnableIndex; + this.ee = function(e, t, i) { + const s = this.he(e, t, i); + if (s) { + let e = s.tt; + while (e !== this.S) { + e.et += 1; + e = e.tt; + } + const t = this.fe(s); + if (t) { + const {parentNode: e, grandParent: i, curNode: s} = t; + e.recount(); + i.recount(); + s.recount(); + } + } + }; + this.ue = function(e) { + let t = this.le(e); + while (t !== this.S) { + t.et -= 1; + t = t.tt; + } + }; + } else { + this.ne = _TreeNode.TreeNode; + this.ee = function(e, t, i) { + const s = this.he(e, t, i); + if (s) this.fe(s); + }; + this.ue = this.le; + } + this.S = new this.ne; + } + W(e, t) { + let i; + while (e) { + const s = this.p(e.T, t); + if (s < 0) { + e = e.J; + } else if (s > 0) { + i = e; + e = e.U; + } else return e; + } + return i === undefined ? this.S : i; + } + Y(e, t) { + let i; + while (e) { + const s = this.p(e.T, t); + if (s <= 0) { + e = e.J; + } else { + i = e; + e = e.U; + } + } + return i === undefined ? this.S : i; + } + Z(e, t) { + let i; + while (e) { + const s = this.p(e.T, t); + if (s < 0) { + i = e; + e = e.J; + } else if (s > 0) { + e = e.U; + } else return e; + } + return i === undefined ? this.S : i; + } + $(e, t) { + let i; + while (e) { + const s = this.p(e.T, t); + if (s < 0) { + i = e; + e = e.J; + } else { + e = e.U; + } + } + return i === undefined ? this.S : i; + } + oe(e) { + while (true) { + const t = e.tt; + if (t === this.S) return; + if (e.se === 1) { + e.se = 0; + return; + } + if (e === t.U) { + const i = t.J; + if (i.se === 1) { + i.se = 0; + t.se = 1; + if (t === this.X) { + this.X = t.rotateLeft(); + } else t.rotateLeft(); + } else { + if (i.J && i.J.se === 1) { + i.se = t.se; + t.se = 0; + i.J.se = 0; + if (t === this.X) { + this.X = t.rotateLeft(); + } else t.rotateLeft(); + return; + } else if (i.U && i.U.se === 1) { + i.se = 1; + i.U.se = 0; + i.rotateRight(); + } else { + i.se = 1; + e = t; + } + } + } else { + const i = t.U; + if (i.se === 1) { + i.se = 0; + t.se = 1; + if (t === this.X) { + this.X = t.rotateRight(); + } else t.rotateRight(); + } else { + if (i.U && i.U.se === 1) { + i.se = t.se; + t.se = 0; + i.U.se = 0; + if (t === this.X) { + this.X = t.rotateRight(); + } else t.rotateRight(); + return; + } else if (i.J && i.J.se === 1) { + i.se = 1; + i.J.se = 0; + i.rotateLeft(); + } else { + i.se = 1; + e = t; + } + } + } + } + } + le(e) { + if (this.o === 1) { + this.clear(); + return this.S; + } + let t = e; + while (t.U || t.J) { + if (t.J) { + t = t.J; + while (t.U) t = t.U; + } else { + t = t.U; + } + [e.T, t.T] = [ t.T, e.T ]; + [e.L, t.L] = [ t.L, e.L ]; + e = t; + } + if (this.S.U === t) { + this.S.U = t.tt; + } else if (this.S.J === t) { + this.S.J = t.tt; + } + this.oe(t); + const i = t.tt; + if (t === i.U) { + i.U = undefined; + } else i.J = undefined; + this.o -= 1; + this.X.se = 0; + return i; + } + fe(e) { + while (true) { + const t = e.tt; + if (t.se === 0) return; + const i = t.tt; + if (t === i.U) { + const s = i.J; + if (s && s.se === 1) { + s.se = t.se = 0; + if (i === this.X) return; + i.se = 1; + e = i; + continue; + } else if (e === t.J) { + e.se = 0; + if (e.U) e.U.tt = t; + if (e.J) e.J.tt = i; + t.J = e.U; + i.U = e.J; + e.U = t; + e.J = i; + if (i === this.X) { + this.X = e; + this.S.tt = e; + } else { + const t = i.tt; + if (t.U === i) { + t.U = e; + } else t.J = e; + } + e.tt = i.tt; + t.tt = e; + i.tt = e; + i.se = 1; + return { + parentNode: t, + grandParent: i, + curNode: e + }; + } else { + t.se = 0; + if (i === this.X) { + this.X = i.rotateRight(); + } else i.rotateRight(); + i.se = 1; + } + } else { + const s = i.U; + if (s && s.se === 1) { + s.se = t.se = 0; + if (i === this.X) return; + i.se = 1; + e = i; + continue; + } else if (e === t.U) { + e.se = 0; + if (e.U) e.U.tt = i; + if (e.J) e.J.tt = t; + i.J = e.U; + t.U = e.J; + e.U = i; + e.J = t; + if (i === this.X) { + this.X = e; + this.S.tt = e; + } else { + const t = i.tt; + if (t.U === i) { + t.U = e; + } else t.J = e; + } + e.tt = i.tt; + t.tt = e; + i.tt = e; + i.se = 1; + return { + parentNode: t, + grandParent: i, + curNode: e + }; + } else { + t.se = 0; + if (i === this.X) { + this.X = i.rotateLeft(); + } else i.rotateLeft(); + i.se = 1; + } + } + return; + } + } + he(e, t, i) { + if (this.X === undefined) { + this.o += 1; + this.X = new this.ne(e, t); + this.X.se = 0; + this.X.tt = this.S; + this.S.tt = this.X; + this.S.U = this.X; + this.S.J = this.X; + return; + } + let s; + const r = this.S.U; + const n = this.p(r.T, e); + if (n === 0) { + r.L = t; + return; + } else if (n > 0) { + r.U = new this.ne(e, t); + r.U.tt = r; + s = r.U; + this.S.U = s; + } else { + const r = this.S.J; + const n = this.p(r.T, e); + if (n === 0) { + r.L = t; + return; + } else if (n < 0) { + r.J = new this.ne(e, t); + r.J.tt = r; + s = r.J; + this.S.J = s; + } else { + if (i !== undefined) { + const r = i.I; + if (r !== this.S) { + const i = this.p(r.T, e); + if (i === 0) { + r.L = t; + return; + } else if (i > 0) { + const i = r.pre(); + const n = this.p(i.T, e); + if (n === 0) { + i.L = t; + return; + } else if (n < 0) { + s = new this.ne(e, t); + if (i.J === undefined) { + i.J = s; + s.tt = i; + } else { + r.U = s; + s.tt = r; + } + } + } + } + } + if (s === undefined) { + s = this.X; + while (true) { + const i = this.p(s.T, e); + if (i > 0) { + if (s.U === undefined) { + s.U = new this.ne(e, t); + s.U.tt = s; + s = s.U; + break; + } + s = s.U; + } else if (i < 0) { + if (s.J === undefined) { + s.J = new this.ne(e, t); + s.J.tt = s; + s = s.J; + break; + } + s = s.J; + } else { + s.L = t; + return; + } + } + } + } + } + this.o += 1; + return s; + } + clear() { + this.o = 0; + this.X = undefined; + this.S.tt = undefined; + this.S.U = this.S.J = undefined; + } + updateKeyByIterator(e, t) { + const i = e.I; + if (i === this.S) { + throw new TypeError("Invalid iterator!"); + } + if (this.o === 1) { + i.T = t; + return true; + } + if (i === this.S.U) { + if (this.p(i.next().T, t) > 0) { + i.T = t; + return true; + } + return false; + } + if (i === this.S.J) { + if (this.p(i.pre().T, t) < 0) { + i.T = t; + return true; + } + return false; + } + const s = i.pre().T; + if (this.p(s, t) >= 0) return false; + const r = i.next().T; + if (this.p(r, t) <= 0) return false; + i.T = t; + return true; + } + eraseElementByPos(e) { + if (e < 0 || e > this.o - 1) { + throw new RangeError; + } + let t = 0; + this.ie(this.X, (i => { + if (e === t) { + this.ue(i); + return true; + } + t += 1; + return false; + })); + } + re(e, t) { + while (e) { + const i = this.p(e.T, t); + if (i < 0) { + e = e.J; + } else if (i > 0) { + e = e.U; + } else return e; + } + return e; + } + eraseElementByKey(e) { + if (!this.o) return; + const t = this.re(this.X, e); + if (t === undefined) return; + this.ue(t); + } + eraseElementByIterator(e) { + const t = e.I; + if (t === this.S) { + throw new RangeError("Invalid iterator"); + } + if (t.J === undefined) { + e = e.next(); + } + this.ue(t); + return e; + } + getHeight() { + if (!this.o) return 0; + const traversal = e => { + if (!e) return 0; + return Math.max(traversal(e.U), traversal(e.J)) + 1; + }; + return traversal(this.X); + } +} + +var _default = TreeContainer; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.d.ts b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.d.ts new file mode 100644 index 0000000..06d5466 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.d.ts @@ -0,0 +1,42 @@ +import TreeContainer from './Base'; +import TreeIterator from './Base/TreeIterator'; +import { initContainer } from "../ContainerBase"; +export declare class OrderedMapIterator extends TreeIterator { + get pointer(): [K, V]; + copy(): OrderedMapIterator; +} +declare class OrderedMap extends TreeContainer { + /** + * @param container The initialization container. + * @param cmp The compare function. + * @param enableIndex Whether to enable iterator indexing function. + */ + constructor(container?: initContainer<[K, V]>, cmp?: (x: K, y: K) => number, enableIndex?: boolean); + begin(): OrderedMapIterator; + end(): OrderedMapIterator; + rBegin(): OrderedMapIterator; + rEnd(): OrderedMapIterator; + front(): [K, V] | undefined; + back(): [K, V] | undefined; + forEach(callback: (element: [K, V], index: number) => void): void; + lowerBound(_key: K): OrderedMapIterator; + upperBound(_key: K): OrderedMapIterator; + reverseLowerBound(_key: K): OrderedMapIterator; + reverseUpperBound(_key: K): OrderedMapIterator; + /** + * @description Insert a _key-_value pair or set _value by the given _key. + * @param _key The _key want to insert. + * @param _value The _value want to set. + * @param hint You can give an iterator hint to improve insertion efficiency. + */ + setElement(_key: K, _value: V, hint?: OrderedMapIterator): void; + find(_key: K): OrderedMapIterator; + /** + * @description Get the _value of the element of the specified _key. + */ + getElementByKey(_key: K): V | undefined; + getElementByPos(pos: number): [K, V]; + union(other: OrderedMap): void; + [Symbol.iterator](): Generator<[K, V], void, undefined>; +} +export default OrderedMap; diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.js b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.js new file mode 100644 index 0000000..ed6eacb --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.js @@ -0,0 +1,136 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = exports.OrderedMapIterator = void 0; + +var _Base = _interopRequireDefault(require("./Base")); + +var _TreeIterator = _interopRequireDefault(require("./Base/TreeIterator")); + +function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; +} + +class OrderedMapIterator extends _TreeIterator.default { + get pointer() { + if (this.I === this.S) { + throw new RangeError("OrderedMap iterator access denied"); + } + return new Proxy([], { + get: (e, r) => { + if (r === "0") return this.I.T; else if (r === "1") return this.I.L; + }, + set: (e, r, t) => { + if (r !== "1") { + throw new TypeError("props must be 1"); + } + this.I.L = t; + return true; + } + }); + } + copy() { + return new OrderedMapIterator(this.I, this.S, this.iteratorType); + } +} + +exports.OrderedMapIterator = OrderedMapIterator; + +class OrderedMap extends _Base.default { + constructor(e = [], r, t) { + super(r, t); + this.K = function*(e) { + if (e === undefined) return; + yield* this.K(e.U); + yield [ e.T, e.L ]; + yield* this.K(e.J); + }; + e.forEach((([e, r]) => this.setElement(e, r))); + } + begin() { + return new OrderedMapIterator(this.S.U || this.S, this.S); + } + end() { + return new OrderedMapIterator(this.S, this.S); + } + rBegin() { + return new OrderedMapIterator(this.S.J || this.S, this.S, 1); + } + rEnd() { + return new OrderedMapIterator(this.S, this.S, 1); + } + front() { + if (!this.o) return undefined; + const e = this.S.U; + return [ e.T, e.L ]; + } + back() { + if (!this.o) return undefined; + const e = this.S.J; + return [ e.T, e.L ]; + } + forEach(e) { + let r = 0; + for (const t of this) e(t, r++); + } + lowerBound(e) { + const r = this.W(this.X, e); + return new OrderedMapIterator(r, this.S); + } + upperBound(e) { + const r = this.Y(this.X, e); + return new OrderedMapIterator(r, this.S); + } + reverseLowerBound(e) { + const r = this.Z(this.X, e); + return new OrderedMapIterator(r, this.S); + } + reverseUpperBound(e) { + const r = this.$(this.X, e); + return new OrderedMapIterator(r, this.S); + } + setElement(e, r, t) { + this.ee(e, r, t); + } + find(e) { + const r = this.re(this.X, e); + if (r !== undefined) { + return new OrderedMapIterator(r, this.S); + } + return this.end(); + } + getElementByKey(e) { + const r = this.re(this.X, e); + return r ? r.L : undefined; + } + getElementByPos(e) { + if (e < 0 || e > this.o - 1) { + throw new RangeError; + } + let r; + let t = 0; + for (const s of this) { + if (t === e) { + r = s; + break; + } + t += 1; + } + return r; + } + union(e) { + e.forEach((([e, r]) => this.setElement(e, r))); + } + [Symbol.iterator]() { + return this.K(this.X); + } +} + +var _default = OrderedMap; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.d.ts b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.d.ts new file mode 100644 index 0000000..bd70b71 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.d.ts @@ -0,0 +1,37 @@ +import TreeContainer from './Base'; +import TreeIterator from './Base/TreeIterator'; +import { initContainer } from "../ContainerBase"; +export declare class OrderedSetIterator extends TreeIterator { + get pointer(): K; + copy(): OrderedSetIterator; +} +declare class OrderedSet extends TreeContainer { + /** + * @param container The initialization container. + * @param cmp The compare function. + * @param enableIndex Whether to enable iterator indexing function. + */ + constructor(container?: initContainer, cmp?: (x: K, y: K) => number, enableIndex?: boolean); + begin(): OrderedSetIterator; + end(): OrderedSetIterator; + rBegin(): OrderedSetIterator; + rEnd(): OrderedSetIterator; + front(): K | undefined; + back(): K | undefined; + forEach(callback: (element: K, index: number) => void): void; + getElementByPos(pos: number): K; + /** + * @description Insert element to set. + * @param _key The _key want to insert. + * @param hint You can give an iterator hint to improve insertion efficiency. + */ + insert(_key: K, hint?: OrderedSetIterator): void; + find(element: K): OrderedSetIterator; + lowerBound(_key: K): OrderedSetIterator; + upperBound(_key: K): OrderedSetIterator; + reverseLowerBound(_key: K): OrderedSetIterator; + reverseUpperBound(_key: K): OrderedSetIterator; + union(other: OrderedSet): void; + [Symbol.iterator](): Generator; +} +export default OrderedSet; diff --git a/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.js b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.js new file mode 100644 index 0000000..012d11e --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.js @@ -0,0 +1,117 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +exports.default = exports.OrderedSetIterator = void 0; + +var _Base = _interopRequireDefault(require("./Base")); + +var _TreeIterator = _interopRequireDefault(require("./Base/TreeIterator")); + +function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; +} + +class OrderedSetIterator extends _TreeIterator.default { + get pointer() { + if (this.I === this.S) { + throw new RangeError("OrderedSet iterator access denied!"); + } + return this.I.T; + } + copy() { + return new OrderedSetIterator(this.I, this.S, this.iteratorType); + } +} + +exports.OrderedSetIterator = OrderedSetIterator; + +class OrderedSet extends _Base.default { + constructor(e = [], t, r) { + super(t, r); + this.K = function*(e) { + if (e === undefined) return; + yield* this.K(e.U); + yield e.T; + yield* this.K(e.J); + }; + e.forEach((e => this.insert(e))); + } + begin() { + return new OrderedSetIterator(this.S.U || this.S, this.S); + } + end() { + return new OrderedSetIterator(this.S, this.S); + } + rBegin() { + return new OrderedSetIterator(this.S.J || this.S, this.S, 1); + } + rEnd() { + return new OrderedSetIterator(this.S, this.S, 1); + } + front() { + return this.S.U ? this.S.U.T : undefined; + } + back() { + return this.S.J ? this.S.J.T : undefined; + } + forEach(e) { + let t = 0; + for (const r of this) e(r, t++); + } + getElementByPos(e) { + if (e < 0 || e > this.o - 1) { + throw new RangeError; + } + let t; + let r = 0; + for (const i of this) { + if (r === e) { + t = i; + break; + } + r += 1; + } + return t; + } + insert(e, t) { + this.ee(e, undefined, t); + } + find(e) { + const t = this.re(this.X, e); + if (t !== undefined) { + return new OrderedSetIterator(t, this.S); + } + return this.end(); + } + lowerBound(e) { + const t = this.W(this.X, e); + return new OrderedSetIterator(t, this.S); + } + upperBound(e) { + const t = this.Y(this.X, e); + return new OrderedSetIterator(t, this.S); + } + reverseLowerBound(e) { + const t = this.Z(this.X, e); + return new OrderedSetIterator(t, this.S); + } + reverseUpperBound(e) { + const t = this.$(this.X, e); + return new OrderedSetIterator(t, this.S); + } + union(e) { + e.forEach((e => this.insert(e))); + } + [Symbol.iterator]() { + return this.K(this.X); + } +} + +var _default = OrderedSet; + +exports.default = _default; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/cjs/index.d.ts b/node_modules/js-sdsl/dist/cjs/index.d.ts new file mode 100644 index 0000000..3683194 --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/index.d.ts @@ -0,0 +1,19 @@ +export { default as Stack } from "./container/OtherContainer/Stack"; +export { default as Queue } from "./container/OtherContainer/Queue"; +export { default as PriorityQueue } from "./container/OtherContainer/PriorityQueue"; +export { default as Vector } from "./container/SequentialContainer/Vector"; +export { default as LinkList } from "./container/SequentialContainer/LinkList"; +export { default as Deque } from "./container/SequentialContainer/Deque"; +export { default as OrderedSet } from "./container/TreeContainer/OrderedSet"; +export { default as OrderedMap } from "./container/TreeContainer/OrderedMap"; +export { default as HashSet } from "./container/HashContainer/HashSet"; +export { default as HashMap } from "./container/HashContainer/HashMap"; +export type { VectorIterator } from "./container/SequentialContainer/Vector"; +export type { LinkListIterator } from "./container/SequentialContainer/LinkList"; +export type { DequeIterator } from "./container/SequentialContainer/Deque"; +export type { OrderedSetIterator } from "./container/TreeContainer/OrderedSet"; +export type { OrderedMapIterator } from "./container/TreeContainer/OrderedMap"; +export type { IteratorType, Container, ContainerIterator } from "./container/ContainerBase"; +export type { default as SequentialContainer } from "./container/SequentialContainer/Base"; +export type { default as TreeContainer } from "./container/TreeContainer/Base"; +export type { default as HashContainer } from "./container/HashContainer/Base"; diff --git a/node_modules/js-sdsl/dist/cjs/index.js b/node_modules/js-sdsl/dist/cjs/index.js new file mode 100644 index 0000000..70e798a --- /dev/null +++ b/node_modules/js-sdsl/dist/cjs/index.js @@ -0,0 +1,101 @@ +"use strict"; + +Object.defineProperty(exports, "t", { + value: true +}); + +Object.defineProperty(exports, "Deque", { + enumerable: true, + get: function() { + return _Deque.default; + } +}); + +Object.defineProperty(exports, "HashMap", { + enumerable: true, + get: function() { + return _HashMap.default; + } +}); + +Object.defineProperty(exports, "HashSet", { + enumerable: true, + get: function() { + return _HashSet.default; + } +}); + +Object.defineProperty(exports, "LinkList", { + enumerable: true, + get: function() { + return _LinkList.default; + } +}); + +Object.defineProperty(exports, "OrderedMap", { + enumerable: true, + get: function() { + return _OrderedMap.default; + } +}); + +Object.defineProperty(exports, "OrderedSet", { + enumerable: true, + get: function() { + return _OrderedSet.default; + } +}); + +Object.defineProperty(exports, "PriorityQueue", { + enumerable: true, + get: function() { + return _PriorityQueue.default; + } +}); + +Object.defineProperty(exports, "Queue", { + enumerable: true, + get: function() { + return _Queue.default; + } +}); + +Object.defineProperty(exports, "Stack", { + enumerable: true, + get: function() { + return _Stack.default; + } +}); + +Object.defineProperty(exports, "Vector", { + enumerable: true, + get: function() { + return _Vector.default; + } +}); + +var _Stack = _interopRequireDefault(require("./container/OtherContainer/Stack")); + +var _Queue = _interopRequireDefault(require("./container/OtherContainer/Queue")); + +var _PriorityQueue = _interopRequireDefault(require("./container/OtherContainer/PriorityQueue")); + +var _Vector = _interopRequireDefault(require("./container/SequentialContainer/Vector")); + +var _LinkList = _interopRequireDefault(require("./container/SequentialContainer/LinkList")); + +var _Deque = _interopRequireDefault(require("./container/SequentialContainer/Deque")); + +var _OrderedSet = _interopRequireDefault(require("./container/TreeContainer/OrderedSet")); + +var _OrderedMap = _interopRequireDefault(require("./container/TreeContainer/OrderedMap")); + +var _HashSet = _interopRequireDefault(require("./container/HashContainer/HashSet")); + +var _HashMap = _interopRequireDefault(require("./container/HashContainer/HashMap")); + +function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; +} \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/ContainerBase/index.d.ts b/node_modules/js-sdsl/dist/esm/container/ContainerBase/index.d.ts new file mode 100644 index 0000000..d194929 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/ContainerBase/index.d.ts @@ -0,0 +1,120 @@ +export declare const enum IteratorType { + NORMAL = 0, + REVERSE = 1 +} +export declare abstract class ContainerIterator { + /** + * @description Iterator's type. + */ + readonly iteratorType: IteratorType; + protected constructor(iteratorType?: IteratorType); + /** + * @description Pointers to element. + * @return The value of the pointer's element. + */ + abstract get pointer(): T; + /** + * @description Set pointer's value (some containers are unavailable). + * @param newValue The new value you want to set. + */ + abstract set pointer(newValue: T); + /** + * @description Move `this` iterator to pre. + */ + abstract pre(): this; + /** + * @description Move `this` iterator to next. + */ + abstract next(): this; + /** + * @param obj The other iterator you want to compare. + * @return Boolean about if this equals to obj. + * @example container.find(1).equals(container.end()); + */ + abstract equals(obj: ContainerIterator): boolean; + /** + * @description Get a copy of itself.
+ * We do not guarantee the safety of this function.
+ * Please ensure that the iterator will not fail. + * @return The copy of self. + */ + abstract copy(): ContainerIterator; +} +export declare abstract class Base { + /** + * @return The size of the container. + */ + size(): number; + /** + * @return Boolean about if the container is empty. + */ + empty(): boolean; + /** + * @description Clear the container. + */ + abstract clear(): void; +} +export declare abstract class Container extends Base { + /** + * @return Iterator pointing to the beginning element. + */ + abstract begin(): ContainerIterator; + /** + * @return Iterator pointing to the super end like c++. + */ + abstract end(): ContainerIterator; + /** + * @return Iterator pointing to the end element. + */ + abstract rBegin(): ContainerIterator; + /** + * @return Iterator pointing to the super begin like c++. + */ + abstract rEnd(): ContainerIterator; + /** + * @return The first element of the container. + */ + abstract front(): T | undefined; + /** + * @return The last element of the container. + */ + abstract back(): T | undefined; + /** + * @description Iterate over all elements in the container. + * @param callback Callback function like Array.forEach. + */ + abstract forEach(callback: (element: T, index: number) => void): void; + /** + * @param element The element you want to find. + * @return An iterator pointing to the element if found, or super end if not found. + */ + abstract find(element: T): ContainerIterator; + /** + * @description Gets the value of the element at the specified position. + */ + abstract getElementByPos(pos: number): T; + /** + * @description Removes the element at the specified position. + * @param pos The element's position you want to remove. + */ + abstract eraseElementByPos(pos: number): void; + /** + * @description Removes element by iterator and move `iter` to next. + * @param iter The iterator you want to erase. + * @example container.eraseElementByIterator(container.begin()); + */ + abstract eraseElementByIterator(iter: ContainerIterator): ContainerIterator; + /** + * @description Using for `for...of` syntax like Array. + */ + abstract [Symbol.iterator](): Generator; +} +export declare type initContainer = ({ + size: number; +} | { + length: number; +} | { + size(): number; +}) & { + forEach(callback: (element: T) => void): void; +}; diff --git a/node_modules/js-sdsl/dist/esm/container/ContainerBase/index.js b/node_modules/js-sdsl/dist/esm/container/ContainerBase/index.js new file mode 100644 index 0000000..93b0746 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/ContainerBase/index.js @@ -0,0 +1,57 @@ +var __extends = this && this.t || function() { + var extendStatics = function(n, t) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(n, t) { + n.__proto__ = t; + } || function(n, t) { + for (var r in t) if (Object.prototype.hasOwnProperty.call(t, r)) n[r] = t[r]; + }; + return extendStatics(n, t); + }; + return function(n, t) { + if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + extendStatics(n, t); + function __() { + this.constructor = n; + } + n.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); + }; +}(); + +var ContainerIterator = function() { + function ContainerIterator(n) { + if (n === void 0) { + n = 0; + } + this.iteratorType = n; + } + return ContainerIterator; +}(); + +export { ContainerIterator }; + +var Base = function() { + function Base() { + this.o = 0; + } + Base.prototype.size = function() { + return this.o; + }; + Base.prototype.empty = function() { + return this.o === 0; + }; + return Base; +}(); + +export { Base }; + +var Container = function(n) { + __extends(Container, n); + function Container() { + return n !== null && n.apply(this, arguments) || this; + } + return Container; +}(Base); + +export { Container }; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.d.ts b/node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.d.ts new file mode 100644 index 0000000..1a7603c --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.d.ts @@ -0,0 +1,25 @@ +import { Base } from "../../ContainerBase"; +declare abstract class HashContainer extends Base { + protected constructor(initBucketNum?: number, hashFunc?: (x: K) => number); + clear(): void; + /** + * @description Iterate over all elements in the container. + * @param callback Callback function like Array.forEach. + */ + abstract forEach(callback: (element: unknown, index: number) => void): void; + /** + * @description Remove the elements of the specified value. + * @param key The element you want to remove. + */ + abstract eraseElementByKey(key: K): void; + /** + * @param key The element you want to find. + * @return Boolean about if the specified element in the hash set. + */ + abstract find(key: K): void; + /** + * @description Using for `for...of` syntax like Array. + */ + abstract [Symbol.iterator](): Generator; +} +export default HashContainer; diff --git a/node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.js b/node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.js new file mode 100644 index 0000000..d364266 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/HashContainer/Base/index.js @@ -0,0 +1,62 @@ +var __extends = this && this.t || function() { + var extendStatics = function(n, t) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(n, t) { + n.__proto__ = t; + } || function(n, t) { + for (var r in t) if (Object.prototype.hasOwnProperty.call(t, r)) n[r] = t[r]; + }; + return extendStatics(n, t); + }; + return function(n, t) { + if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + extendStatics(n, t); + function __() { + this.constructor = n; + } + n.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); + }; +}(); + +import { Base } from "../../ContainerBase"; + +var HashContainer = function(n) { + __extends(HashContainer, n); + function HashContainer(t, r) { + if (t === void 0) { + t = 16; + } + if (r === void 0) { + r = function(n) { + var t; + if (typeof n !== "string") { + t = JSON.stringify(n); + } else t = n; + var r = 0; + var i = t.length; + for (var e = 0; e < i; e++) { + var o = t.charCodeAt(e); + r = (r << 5) - r + o; + r |= 0; + } + return r >>> 0; + }; + } + var i = n.call(this) || this; + if (t < 16 || (t & t - 1) !== 0) { + throw new RangeError("InitBucketNum range error"); + } + i.l = i.nn = t; + i.p = r; + return i; + } + HashContainer.prototype.clear = function() { + this.o = 0; + this.l = this.nn; + this.h = []; + }; + return HashContainer; +}(Base); + +export default HashContainer; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.d.ts b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.d.ts new file mode 100644 index 0000000..8f54fb3 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.d.ts @@ -0,0 +1,22 @@ +import { initContainer } from "../ContainerBase"; +import HashContainer from './Base'; +declare class HashMap extends HashContainer { + constructor(container?: initContainer<[K, V]>, initBucketNum?: number, hashFunc?: (x: K) => number); + forEach(callback: (element: [K, V], index: number) => void): void; + /** + * @description Insert a new key-value pair to hash map or set value by key. + * @param key The key you want to insert. + * @param value The value you want to insert. + * @example HashMap.setElement(1, 2); // insert a key-value pair [1, 2] + */ + setElement(key: K, value: V): void; + /** + * @description Get the value of the element which has the specified key. + * @param key The key you want to get. + */ + getElementByKey(key: K): V | undefined; + eraseElementByKey(key: K): void; + find(key: K): boolean; + [Symbol.iterator](): Generator<[K, V], void, unknown>; +} +export default HashMap; diff --git a/node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.js b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.js new file mode 100644 index 0000000..3368191 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashMap.js @@ -0,0 +1,410 @@ +var __extends = this && this.t || function() { + var extendStatics = function(r, e) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(r, e) { + r.__proto__ = e; + } || function(r, e) { + for (var t in e) if (Object.prototype.hasOwnProperty.call(e, t)) r[t] = e[t]; + }; + return extendStatics(r, e); + }; + return function(r, e) { + if (typeof e !== "function" && e !== null) throw new TypeError("Class extends value " + String(e) + " is not a constructor or null"); + extendStatics(r, e); + function __() { + this.constructor = r; + } + r.prototype = e === null ? Object.create(e) : (__.prototype = e.prototype, new __); + }; +}(); + +var __generator = this && this.i || function(r, e) { + var t = { + label: 0, + sent: function() { + if (a[0] & 1) throw a[1]; + return a[1]; + }, + trys: [], + ops: [] + }, n, i, a, f; + return f = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (f[Symbol.iterator] = function() { + return this; + }), f; + function verb(r) { + return function(e) { + return step([ r, e ]); + }; + } + function step(f) { + if (n) throw new TypeError("Generator is already executing."); + while (t) try { + if (n = 1, i && (a = f[0] & 2 ? i["return"] : f[0] ? i["throw"] || ((a = i["return"]) && a.call(i), + 0) : i.next) && !(a = a.call(i, f[1])).done) return a; + if (i = 0, a) f = [ f[0] & 2, a.value ]; + switch (f[0]) { + case 0: + case 1: + a = f; + break; + + case 4: + t.label++; + return { + value: f[1], + done: false + }; + + case 5: + t.label++; + i = f[1]; + f = [ 0 ]; + continue; + + case 7: + f = t.ops.pop(); + t.trys.pop(); + continue; + + default: + if (!(a = t.trys, a = a.length > 0 && a[a.length - 1]) && (f[0] === 6 || f[0] === 2)) { + t = 0; + continue; + } + if (f[0] === 3 && (!a || f[1] > a[0] && f[1] < a[3])) { + t.label = f[1]; + break; + } + if (f[0] === 6 && t.label < a[1]) { + t.label = a[1]; + a = f; + break; + } + if (a && t.label < a[2]) { + t.label = a[2]; + t.ops.push(f); + break; + } + if (a[2]) t.ops.pop(); + t.trys.pop(); + continue; + } + f = e.call(r, t); + } catch (r) { + f = [ 6, r ]; + i = 0; + } finally { + n = a = 0; + } + if (f[0] & 5) throw f[1]; + return { + value: f[0] ? f[1] : void 0, + done: true + }; + } +}; + +var __values = this && this.u || function(r) { + var e = typeof Symbol === "function" && Symbol.iterator, t = e && r[e], n = 0; + if (t) return t.call(r); + if (r && typeof r.length === "number") return { + next: function() { + if (r && n >= r.length) r = void 0; + return { + value: r && r[n++], + done: !r + }; + } + }; + throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + +import HashContainer from "./Base"; + +import Vector from "../SequentialContainer/Vector"; + +import OrderedMap from "../TreeContainer/OrderedMap"; + +var HashMap = function(r) { + __extends(HashMap, r); + function HashMap(e, t, n) { + if (e === void 0) { + e = []; + } + var i = r.call(this, t, n) || this; + i.h = []; + e.forEach((function(r) { + return i.setElement(r[0], r[1]); + })); + return i; + } + HashMap.prototype.v = function() { + var r = this; + if (this.l >= 1073741824) return; + var e = []; + var t = this.l; + this.l <<= 1; + var n = Object.keys(this.h); + var i = n.length; + var _loop_1 = function(i) { + var f = parseInt(n[i]); + var s = a.h[f]; + var o = s.size(); + if (o === 0) return "continue"; + if (o === 1) { + var u = s.front(); + e[a.p(u[0]) & a.l - 1] = new Vector([ u ], false); + return "continue"; + } + var c = []; + var h = []; + s.forEach((function(e) { + var n = r.p(e[0]); + if ((n & t) === 0) { + c.push(e); + } else h.push(e); + })); + if (s instanceof OrderedMap) { + if (c.length > 6) { + e[f] = new OrderedMap(c); + } else { + e[f] = new Vector(c, false); + } + if (h.length > 6) { + e[f + t] = new OrderedMap(h); + } else { + e[f + t] = new Vector(h, false); + } + } else { + e[f] = new Vector(c, false); + e[f + t] = new Vector(h, false); + } + }; + var a = this; + for (var f = 0; f < i; ++f) { + _loop_1(f); + } + this.h = e; + }; + HashMap.prototype.forEach = function(r) { + var e = Object.values(this.h); + var t = e.length; + var n = 0; + for (var i = 0; i < t; ++i) { + e[i].forEach((function(e) { + return r(e, n++); + })); + } + }; + HashMap.prototype.setElement = function(r, e) { + var t, n; + var i = this.p(r) & this.l - 1; + var a = this.h[i]; + if (!a) { + this.o += 1; + this.h[i] = new Vector([ [ r, e ] ], false); + } else { + var f = a.size(); + if (a instanceof Vector) { + try { + for (var s = __values(a), o = s.next(); !o.done; o = s.next()) { + var u = o.value; + if (u[0] === r) { + u[1] = e; + return; + } + } + } catch (r) { + t = { + error: r + }; + } finally { + try { + if (o && !o.done && (n = s.return)) n.call(s); + } finally { + if (t) throw t.error; + } + } + a.pushBack([ r, e ]); + if (f + 1 >= 8) { + if (this.l <= 64) { + this.o += 1; + this.v(); + return; + } + this.h[i] = new OrderedMap(this.h[i]); + } + this.o += 1; + } else { + a.setElement(r, e); + var c = a.size(); + this.o += c - f; + } + } + if (this.o > this.l * .75) { + this.v(); + } + }; + HashMap.prototype.getElementByKey = function(r) { + var e, t; + var n = this.p(r) & this.l - 1; + var i = this.h[n]; + if (!i) return undefined; + if (i instanceof OrderedMap) { + return i.getElementByKey(r); + } else { + try { + for (var a = __values(i), f = a.next(); !f.done; f = a.next()) { + var s = f.value; + if (s[0] === r) return s[1]; + } + } catch (r) { + e = { + error: r + }; + } finally { + try { + if (f && !f.done && (t = a.return)) t.call(a); + } finally { + if (e) throw e.error; + } + } + return undefined; + } + }; + HashMap.prototype.eraseElementByKey = function(r) { + var e, t; + var n = this.p(r) & this.l - 1; + var i = this.h[n]; + if (!i) return; + if (i instanceof Vector) { + var a = 0; + try { + for (var f = __values(i), s = f.next(); !s.done; s = f.next()) { + var o = s.value; + if (o[0] === r) { + i.eraseElementByPos(a); + this.o -= 1; + return; + } + a += 1; + } + } catch (r) { + e = { + error: r + }; + } finally { + try { + if (s && !s.done && (t = f.return)) t.call(f); + } finally { + if (e) throw e.error; + } + } + } else { + var u = i.size(); + i.eraseElementByKey(r); + var c = i.size(); + this.o += c - u; + if (c <= 6) { + this.h[n] = new Vector(i); + } + } + }; + HashMap.prototype.find = function(r) { + var e, t; + var n = this.p(r) & this.l - 1; + var i = this.h[n]; + if (!i) return false; + if (i instanceof OrderedMap) { + return !i.find(r).equals(i.end()); + } + try { + for (var a = __values(i), f = a.next(); !f.done; f = a.next()) { + var s = f.value; + if (s[0] === r) return true; + } + } catch (r) { + e = { + error: r + }; + } finally { + try { + if (f && !f.done && (t = a.return)) t.call(a); + } finally { + if (e) throw e.error; + } + } + return false; + }; + HashMap.prototype[Symbol.iterator] = function() { + return function() { + var r, e, t, n, i, a, f, s; + var o, u; + return __generator(this, (function(c) { + switch (c.label) { + case 0: + r = Object.values(this.h); + e = r.length; + t = 0; + c.label = 1; + + case 1: + if (!(t < e)) return [ 3, 10 ]; + n = r[t]; + c.label = 2; + + case 2: + c.trys.push([ 2, 7, 8, 9 ]); + i = (o = void 0, __values(n)), a = i.next(); + c.label = 3; + + case 3: + if (!!a.done) return [ 3, 6 ]; + f = a.value; + return [ 4, f ]; + + case 4: + c.sent(); + c.label = 5; + + case 5: + a = i.next(); + return [ 3, 3 ]; + + case 6: + return [ 3, 9 ]; + + case 7: + s = c.sent(); + o = { + error: s + }; + return [ 3, 9 ]; + + case 8: + try { + if (a && !a.done && (u = i.return)) u.call(i); + } finally { + if (o) throw o.error; + } + return [ 7 ]; + + case 9: + ++t; + return [ 3, 1 ]; + + case 10: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return HashMap; +}(HashContainer); + +export default HashMap; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.d.ts b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.d.ts new file mode 100644 index 0000000..42655eb --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.d.ts @@ -0,0 +1,15 @@ +import HashContainer from './Base'; +import { initContainer } from "../ContainerBase"; +declare class HashSet extends HashContainer { + constructor(container?: initContainer, initBucketNum?: number, _hashFunc?: (x: K) => number); + forEach(callback: (element: K, index: number) => void): void; + /** + * @description Insert element to hash set. + * @param element The element you want to insert. + */ + insert(element: K): void; + eraseElementByKey(key: K): void; + find(element: K): boolean; + [Symbol.iterator](): Generator; +} +export default HashSet; diff --git a/node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.js b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.js new file mode 100644 index 0000000..bd2eaee --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/HashContainer/HashSet.js @@ -0,0 +1,325 @@ +var __extends = this && this.t || function() { + var extendStatics = function(e, t) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(e, t) { + e.__proto__ = t; + } || function(e, t) { + for (var r in t) if (Object.prototype.hasOwnProperty.call(t, r)) e[r] = t[r]; + }; + return extendStatics(e, t); + }; + return function(e, t) { + if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + extendStatics(e, t); + function __() { + this.constructor = e; + } + e.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); + }; +}(); + +var __generator = this && this.i || function(e, t) { + var r = { + label: 0, + sent: function() { + if (a[0] & 1) throw a[1]; + return a[1]; + }, + trys: [], + ops: [] + }, n, i, a, s; + return s = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (s[Symbol.iterator] = function() { + return this; + }), s; + function verb(e) { + return function(t) { + return step([ e, t ]); + }; + } + function step(s) { + if (n) throw new TypeError("Generator is already executing."); + while (r) try { + if (n = 1, i && (a = s[0] & 2 ? i["return"] : s[0] ? i["throw"] || ((a = i["return"]) && a.call(i), + 0) : i.next) && !(a = a.call(i, s[1])).done) return a; + if (i = 0, a) s = [ s[0] & 2, a.value ]; + switch (s[0]) { + case 0: + case 1: + a = s; + break; + + case 4: + r.label++; + return { + value: s[1], + done: false + }; + + case 5: + r.label++; + i = s[1]; + s = [ 0 ]; + continue; + + case 7: + s = r.ops.pop(); + r.trys.pop(); + continue; + + default: + if (!(a = r.trys, a = a.length > 0 && a[a.length - 1]) && (s[0] === 6 || s[0] === 2)) { + r = 0; + continue; + } + if (s[0] === 3 && (!a || s[1] > a[0] && s[1] < a[3])) { + r.label = s[1]; + break; + } + if (s[0] === 6 && r.label < a[1]) { + r.label = a[1]; + a = s; + break; + } + if (a && r.label < a[2]) { + r.label = a[2]; + r.ops.push(s); + break; + } + if (a[2]) r.ops.pop(); + r.trys.pop(); + continue; + } + s = t.call(e, r); + } catch (e) { + s = [ 6, e ]; + i = 0; + } finally { + n = a = 0; + } + if (s[0] & 5) throw s[1]; + return { + value: s[0] ? s[1] : void 0, + done: true + }; + } +}; + +var __values = this && this.u || function(e) { + var t = typeof Symbol === "function" && Symbol.iterator, r = t && e[t], n = 0; + if (r) return r.call(e); + if (e && typeof e.length === "number") return { + next: function() { + if (e && n >= e.length) e = void 0; + return { + value: e && e[n++], + done: !e + }; + } + }; + throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + +import HashContainer from "./Base"; + +import Vector from "../SequentialContainer/Vector"; + +import OrderedSet from "../TreeContainer/OrderedSet"; + +var HashSet = function(e) { + __extends(HashSet, e); + function HashSet(t, r, n) { + if (t === void 0) { + t = []; + } + var i = e.call(this, r, n) || this; + i.h = []; + t.forEach((function(e) { + return i.insert(e); + })); + return i; + } + HashSet.prototype.v = function() { + var e = this; + if (this.l >= 1073741824) return; + var t = []; + var r = this.l; + this.l <<= 1; + var n = Object.keys(this.h); + var i = n.length; + var _loop_1 = function(i) { + var s = parseInt(n[i]); + var o = a.h[s]; + var f = o.size(); + if (f === 0) return "continue"; + if (f === 1) { + var u = o.front(); + t[a.p(u) & a.l - 1] = new Vector([ u ], false); + return "continue"; + } + var c = []; + var h = []; + o.forEach((function(t) { + var n = e.p(t); + if ((n & r) === 0) { + c.push(t); + } else h.push(t); + })); + if (o instanceof OrderedSet) { + if (c.length > 6) { + t[s] = new OrderedSet(c); + } else { + t[s] = new Vector(c, false); + } + if (h.length > 6) { + t[s + r] = new OrderedSet(h); + } else { + t[s + r] = new Vector(h, false); + } + } else { + t[s] = new Vector(c, false); + t[s + r] = new Vector(h, false); + } + }; + var a = this; + for (var s = 0; s < i; ++s) { + _loop_1(s); + } + this.h = t; + }; + HashSet.prototype.forEach = function(e) { + var t = Object.values(this.h); + var r = t.length; + var n = 0; + for (var i = 0; i < r; ++i) { + t[i].forEach((function(t) { + return e(t, n++); + })); + } + }; + HashSet.prototype.insert = function(e) { + var t = this.p(e) & this.l - 1; + var r = this.h[t]; + if (!r) { + this.h[t] = new Vector([ e ], false); + this.o += 1; + } else { + var n = r.size(); + if (r instanceof Vector) { + if (!r.find(e).equals(r.end())) return; + r.pushBack(e); + if (n + 1 >= 8) { + if (this.l <= 64) { + this.o += 1; + this.v(); + return; + } + this.h[t] = new OrderedSet(r); + } + this.o += 1; + } else { + r.insert(e); + var i = r.size(); + this.o += i - n; + } + } + if (this.o > this.l * .75) { + this.v(); + } + }; + HashSet.prototype.eraseElementByKey = function(e) { + var t = this.p(e) & this.l - 1; + var r = this.h[t]; + if (!r) return; + var n = r.size(); + if (n === 0) return; + if (r instanceof Vector) { + r.eraseElementByValue(e); + var i = r.size(); + this.o += i - n; + } else { + r.eraseElementByKey(e); + var i = r.size(); + this.o += i - n; + if (i <= 6) { + this.h[t] = new Vector(r); + } + } + }; + HashSet.prototype.find = function(e) { + var t = this.p(e) & this.l - 1; + var r = this.h[t]; + if (!r) return false; + return !r.find(e).equals(r.end()); + }; + HashSet.prototype[Symbol.iterator] = function() { + return function() { + var e, t, r, n, i, a, s, o; + var f, u; + return __generator(this, (function(c) { + switch (c.label) { + case 0: + e = Object.values(this.h); + t = e.length; + r = 0; + c.label = 1; + + case 1: + if (!(r < t)) return [ 3, 10 ]; + n = e[r]; + c.label = 2; + + case 2: + c.trys.push([ 2, 7, 8, 9 ]); + i = (f = void 0, __values(n)), a = i.next(); + c.label = 3; + + case 3: + if (!!a.done) return [ 3, 6 ]; + s = a.value; + return [ 4, s ]; + + case 4: + c.sent(); + c.label = 5; + + case 5: + a = i.next(); + return [ 3, 3 ]; + + case 6: + return [ 3, 9 ]; + + case 7: + o = c.sent(); + f = { + error: o + }; + return [ 3, 9 ]; + + case 8: + try { + if (a && !a.done && (u = i.return)) u.call(i); + } finally { + if (f) throw f.error; + } + return [ 7 ]; + + case 9: + ++r; + return [ 3, 1 ]; + + case 10: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return HashSet; +}(HashContainer); + +export default HashSet; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.d.ts b/node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.d.ts new file mode 100644 index 0000000..ceef4c0 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.d.ts @@ -0,0 +1,48 @@ +import { Base, initContainer } from "../ContainerBase"; +declare class PriorityQueue extends Base { + /** + * @description PriorityQueue's constructor. + * @param container Initialize container, must have a forEach function. + * @param cmp Compare function. + * @param copy When the container is an array, you can choose to directly operate on the original object of + * the array or perform a shallow copy. The default is shallow copy. + */ + constructor(container?: initContainer, cmp?: (x: T, y: T) => number, copy?: boolean); + clear(): void; + /** + * @description Push element into a container in order. + * @param item The element you want to push. + */ + push(item: T): void; + /** + * @description Removes the top element. + */ + pop(): void; + /** + * @description Accesses the top element. + */ + top(): T | undefined; + /** + * @description Check if element is in heap. + * @param item The item want to find. + * @return Boolean about if element is in heap. + */ + find(item: T): boolean; + /** + * @description Remove specified item from heap. + * @param item The item want to remove. + * @return Boolean about if remove success. + */ + remove(item: T): boolean; + /** + * @description Update item and it's pos in the heap. + * @param item The item want to update. + * @return Boolean about if update success. + */ + updateItem(item: T): boolean; + /** + * @return Return a copy array of heap. + */ + toArray(): T[]; +} +export default PriorityQueue; diff --git a/node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.js b/node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.js new file mode 100644 index 0000000..7c2c3c5 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/OtherContainer/PriorityQueue.js @@ -0,0 +1,167 @@ +var __extends = this && this.t || function() { + var extendStatics = function(i, t) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(i, t) { + i.__proto__ = t; + } || function(i, t) { + for (var r in t) if (Object.prototype.hasOwnProperty.call(t, r)) i[r] = t[r]; + }; + return extendStatics(i, t); + }; + return function(i, t) { + if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + extendStatics(i, t); + function __() { + this.constructor = i; + } + i.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); + }; +}(); + +var __read = this && this._ || function(i, t) { + var r = typeof Symbol === "function" && i[Symbol.iterator]; + if (!r) return i; + var e = r.call(i), n, u = [], s; + try { + while ((t === void 0 || t-- > 0) && !(n = e.next()).done) u.push(n.value); + } catch (i) { + s = { + error: i + }; + } finally { + try { + if (n && !n.done && (r = e["return"])) r.call(e); + } finally { + if (s) throw s.error; + } + } + return u; +}; + +var __spreadArray = this && this.P || function(i, t, r) { + if (r || arguments.length === 2) for (var e = 0, n = t.length, u; e < n; e++) { + if (u || !(e in t)) { + if (!u) u = Array.prototype.slice.call(t, 0, e); + u[e] = t[e]; + } + } + return i.concat(u || Array.prototype.slice.call(t)); +}; + +import { Base } from "../ContainerBase"; + +var PriorityQueue = function(i) { + __extends(PriorityQueue, i); + function PriorityQueue(t, r, e) { + if (t === void 0) { + t = []; + } + if (r === void 0) { + r = function(i, t) { + if (i > t) return -1; + if (i < t) return 1; + return 0; + }; + } + if (e === void 0) { + e = true; + } + var n = i.call(this) || this; + n.A = r; + if (Array.isArray(t)) { + n.m = e ? __spreadArray([], __read(t), false) : t; + } else { + n.m = []; + t.forEach((function(i) { + return n.m.push(i); + })); + } + n.o = n.m.length; + var u = n.o >> 1; + for (var s = n.o - 1 >> 1; s >= 0; --s) { + n.j(s, u); + } + return n; + } + PriorityQueue.prototype.B = function(i) { + var t = this.m[i]; + while (i > 0) { + var r = i - 1 >> 1; + var e = this.m[r]; + if (this.A(e, t) <= 0) break; + this.m[i] = e; + i = r; + } + this.m[i] = t; + }; + PriorityQueue.prototype.j = function(i, t) { + var r = this.m[i]; + while (i < t) { + var e = i << 1 | 1; + var n = e + 1; + var u = this.m[e]; + if (n < this.o && this.A(u, this.m[n]) > 0) { + e = n; + u = this.m[n]; + } + if (this.A(u, r) >= 0) break; + this.m[i] = u; + i = e; + } + this.m[i] = r; + }; + PriorityQueue.prototype.clear = function() { + this.o = 0; + this.m.length = 0; + }; + PriorityQueue.prototype.push = function(i) { + this.m.push(i); + this.B(this.o); + this.o += 1; + }; + PriorityQueue.prototype.pop = function() { + if (!this.o) return; + var i = this.m.pop(); + this.o -= 1; + if (this.o) { + this.m[0] = i; + this.j(0, this.o >> 1); + } + }; + PriorityQueue.prototype.top = function() { + return this.m[0]; + }; + PriorityQueue.prototype.find = function(i) { + return this.m.indexOf(i) >= 0; + }; + PriorityQueue.prototype.remove = function(i) { + var t = this.m.indexOf(i); + if (t < 0) return false; + if (t === 0) { + this.pop(); + } else if (t === this.o - 1) { + this.m.pop(); + this.o -= 1; + } else { + this.m.splice(t, 1, this.m.pop()); + this.o -= 1; + this.B(t); + this.j(t, this.o >> 1); + } + return true; + }; + PriorityQueue.prototype.updateItem = function(i) { + var t = this.m.indexOf(i); + if (t < 0) return false; + this.B(t); + this.j(t, this.o >> 1); + return true; + }; + PriorityQueue.prototype.toArray = function() { + return __spreadArray([], __read(this.m), false); + }; + return PriorityQueue; +}(Base); + +export default PriorityQueue; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.d.ts b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.d.ts new file mode 100644 index 0000000..0bc1bf6 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.d.ts @@ -0,0 +1,18 @@ +import { Base, initContainer } from "../ContainerBase"; +declare class Queue extends Base { + constructor(container?: initContainer); + clear(): void; + /** + * @description Inserts element to queue's end. + */ + push(element: T): void; + /** + * @description Removes the first element. + */ + pop(): void; + /** + * @description Access the first element. + */ + front(): T | undefined; +} +export default Queue; diff --git a/node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.js b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.js new file mode 100644 index 0000000..5197786 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Queue.js @@ -0,0 +1,55 @@ +var __extends = this && this.t || function() { + var extendStatics = function(e, t) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(e, t) { + e.__proto__ = t; + } || function(e, t) { + for (var n in t) if (Object.prototype.hasOwnProperty.call(t, n)) e[n] = t[n]; + }; + return extendStatics(e, t); + }; + return function(e, t) { + if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + extendStatics(e, t); + function __() { + this.constructor = e; + } + e.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); + }; +}(); + +import Deque from "../SequentialContainer/Deque"; + +import { Base } from "../ContainerBase"; + +var Queue = function(e) { + __extends(Queue, e); + function Queue(t) { + if (t === void 0) { + t = []; + } + var n = e.call(this) || this; + n.q = new Deque(t); + n.o = n.q.size(); + return n; + } + Queue.prototype.clear = function() { + this.q.clear(); + this.o = 0; + }; + Queue.prototype.push = function(e) { + this.q.pushBack(e); + this.o += 1; + }; + Queue.prototype.pop = function() { + this.q.popFront(); + if (this.o) this.o -= 1; + }; + Queue.prototype.front = function() { + return this.q.front(); + }; + return Queue; +}(Base); + +export default Queue; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.d.ts b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.d.ts new file mode 100644 index 0000000..1582374 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.d.ts @@ -0,0 +1,18 @@ +import { Base, initContainer } from "../ContainerBase"; +declare class Stack extends Base { + constructor(container?: initContainer); + clear(): void; + /** + * @description Insert element to stack's end. + */ + push(element: T): void; + /** + * @description Removes the end element. + */ + pop(): void; + /** + * @description Accesses the end element. + */ + top(): T | undefined; +} +export default Stack; diff --git a/node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.js b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.js new file mode 100644 index 0000000..7f9b224 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/OtherContainer/Stack.js @@ -0,0 +1,55 @@ +var __extends = this && this.t || function() { + var extendStatics = function(t, n) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(t, n) { + t.__proto__ = n; + } || function(t, n) { + for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) t[i] = n[i]; + }; + return extendStatics(t, n); + }; + return function(t, n) { + if (typeof n !== "function" && n !== null) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null"); + extendStatics(t, n); + function __() { + this.constructor = t; + } + t.prototype = n === null ? Object.create(n) : (__.prototype = n.prototype, new __); + }; +}(); + +import { Base } from "../ContainerBase"; + +var Stack = function(t) { + __extends(Stack, t); + function Stack(n) { + if (n === void 0) { + n = []; + } + var i = t.call(this) || this; + i.S = []; + n.forEach((function(t) { + return i.push(t); + })); + return i; + } + Stack.prototype.clear = function() { + this.o = 0; + this.S.length = 0; + }; + Stack.prototype.push = function(t) { + this.S.push(t); + this.o += 1; + }; + Stack.prototype.pop = function() { + this.S.pop(); + if (this.o > 0) this.o -= 1; + }; + Stack.prototype.top = function() { + return this.S[this.o - 1]; + }; + return Stack; +}(Base); + +export default Stack; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.d.ts b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.d.ts new file mode 100644 index 0000000..21fdb96 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.d.ts @@ -0,0 +1,8 @@ +import { ContainerIterator } from "../../ContainerBase"; +export declare abstract class RandomIterator extends ContainerIterator { + pre: () => this; + next: () => this; + get pointer(): T; + set pointer(newValue: T); + equals(obj: RandomIterator): boolean; +} diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.js b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.js new file mode 100644 index 0000000..7cbf3b1 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/RandomIterator.js @@ -0,0 +1,87 @@ +var __extends = this && this.t || function() { + var extendStatics = function(t, r) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(t, r) { + t.__proto__ = r; + } || function(t, r) { + for (var n in r) if (Object.prototype.hasOwnProperty.call(r, n)) t[n] = r[n]; + }; + return extendStatics(t, r); + }; + return function(t, r) { + if (typeof r !== "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null"); + extendStatics(t, r); + function __() { + this.constructor = t; + } + t.prototype = r === null ? Object.create(r) : (__.prototype = r.prototype, new __); + }; +}(); + +import { ContainerIterator } from "../../ContainerBase"; + +var RandomIterator = function(t) { + __extends(RandomIterator, t); + function RandomIterator(r, n, e, i, o) { + var a = t.call(this, o) || this; + a.D = r; + a.I = n; + a.g = e; + a.R = i; + if (a.iteratorType === 0) { + a.pre = function() { + if (this.D === 0) { + throw new RangeError("Random iterator access denied!"); + } + this.D -= 1; + return this; + }; + a.next = function() { + if (this.D === this.I()) { + throw new RangeError("Random Iterator access denied!"); + } + this.D += 1; + return this; + }; + } else { + a.pre = function() { + if (this.D === this.I() - 1) { + throw new RangeError("Random iterator access denied!"); + } + this.D += 1; + return this; + }; + a.next = function() { + if (this.D === -1) { + throw new RangeError("Random iterator access denied!"); + } + this.D -= 1; + return this; + }; + } + return a; + } + Object.defineProperty(RandomIterator.prototype, "pointer", { + get: function() { + if (this.D < 0 || this.D > this.I() - 1) { + throw new RangeError; + } + return this.g(this.D); + }, + set: function(t) { + if (this.D < 0 || this.D > this.I() - 1) { + throw new RangeError; + } + this.R(this.D, t); + }, + enumerable: false, + configurable: true + }); + RandomIterator.prototype.equals = function(t) { + return this.D === t.D; + }; + return RandomIterator; +}(ContainerIterator); + +export { RandomIterator }; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.d.ts b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.d.ts new file mode 100644 index 0000000..ed3b995 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.d.ts @@ -0,0 +1,44 @@ +import { Container } from "../../ContainerBase"; +declare abstract class SequentialContainer extends Container { + /** + * @description Push the element to the back. + * @param element The element you want to push. + */ + abstract pushBack(element: T): void; + /** + * @description Removes the last element. + */ + abstract popBack(): void; + /** + * @description Sets element by position. + * @param pos The position you want to change. + * @param element The element's value you want to update. + */ + abstract setElementByPos(pos: number, element: T): void; + /** + * @description Removes the elements of the specified value. + * @param value The value you want to remove. + */ + abstract eraseElementByValue(value: T): void; + /** + * @description Insert several elements after the specified position. + * @param pos The position you want to insert. + * @param element The element you want to insert. + * @param num The number of elements you want to insert (default 1). + */ + abstract insert(pos: number, element: T, num?: number): void; + /** + * @description Reverses the container. + */ + abstract reverse(): void; + /** + * @description Removes the duplication of elements in the container. + */ + abstract unique(): void; + /** + * @description Sort the container. + * @param cmp Comparison function. + */ + abstract sort(cmp?: (x: T, y: T) => number): void; +} +export default SequentialContainer; diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.js b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.js new file mode 100644 index 0000000..538eed9 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Base/index.js @@ -0,0 +1,32 @@ +var __extends = this && this.t || function() { + var extendStatics = function(n, t) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(n, t) { + n.__proto__ = t; + } || function(n, t) { + for (var e in t) if (Object.prototype.hasOwnProperty.call(t, e)) n[e] = t[e]; + }; + return extendStatics(n, t); + }; + return function(n, t) { + if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + extendStatics(n, t); + function __() { + this.constructor = n; + } + n.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); + }; +}(); + +import { Container } from "../../ContainerBase"; + +var SequentialContainer = function(n) { + __extends(SequentialContainer, n); + function SequentialContainer() { + return n !== null && n.apply(this, arguments) || this; + } + return SequentialContainer; +}(Container); + +export default SequentialContainer; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.d.ts b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.d.ts new file mode 100644 index 0000000..43adc28 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.d.ts @@ -0,0 +1,50 @@ +import SequentialContainer from './Base'; +import { initContainer } from "../ContainerBase"; +import { RandomIterator } from "./Base/RandomIterator"; +export declare class DequeIterator extends RandomIterator { + copy(): DequeIterator; +} +declare class Deque extends SequentialContainer { + constructor(container?: initContainer, _bucketSize?: number); + clear(): void; + front(): T | undefined; + back(): T | undefined; + begin(): DequeIterator; + end(): DequeIterator; + rBegin(): DequeIterator; + rEnd(): DequeIterator; + pushBack(element: T): void; + popBack(): void; + /** + * @description Push the element to the front. + * @param element The element you want to push. + */ + pushFront(element: T): void; + /** + * @description Remove the _first element. + */ + popFront(): void; + forEach(callback: (element: T, index: number) => void): void; + getElementByPos(pos: number): T; + setElementByPos(pos: number, element: T): void; + insert(pos: number, element: T, num?: number): void; + /** + * @description Remove all elements after the specified position (excluding the specified position). + * @param pos The previous position of the _first removed element. + * @example deque.cut(1); // Then deque's size will be 2. deque -> [0, 1] + */ + cut(pos: number): void; + eraseElementByPos(pos: number): void; + eraseElementByValue(value: T): void; + eraseElementByIterator(iter: DequeIterator): DequeIterator; + find(element: T): DequeIterator; + reverse(): void; + unique(): void; + sort(cmp?: (x: T, y: T) => number): void; + /** + * @description Remove as much useless space as possible. + */ + shrinkToFit(): void; + [Symbol.iterator](): Generator; +} +export default Deque; diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.js b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.js new file mode 100644 index 0000000..1101ef0 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Deque.js @@ -0,0 +1,493 @@ +var __extends = this && this.t || function() { + var extendStatics = function(t, i) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(t, i) { + t.__proto__ = i; + } || function(t, i) { + for (var e in i) if (Object.prototype.hasOwnProperty.call(i, e)) t[e] = i[e]; + }; + return extendStatics(t, i); + }; + return function(t, i) { + if (typeof i !== "function" && i !== null) throw new TypeError("Class extends value " + String(i) + " is not a constructor or null"); + extendStatics(t, i); + function __() { + this.constructor = t; + } + t.prototype = i === null ? Object.create(i) : (__.prototype = i.prototype, new __); + }; +}(); + +var __generator = this && this.i || function(t, i) { + var e = { + label: 0, + sent: function() { + if (h[0] & 1) throw h[1]; + return h[1]; + }, + trys: [], + ops: [] + }, r, s, h, n; + return n = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (n[Symbol.iterator] = function() { + return this; + }), n; + function verb(t) { + return function(i) { + return step([ t, i ]); + }; + } + function step(n) { + if (r) throw new TypeError("Generator is already executing."); + while (e) try { + if (r = 1, s && (h = n[0] & 2 ? s["return"] : n[0] ? s["throw"] || ((h = s["return"]) && h.call(s), + 0) : s.next) && !(h = h.call(s, n[1])).done) return h; + if (s = 0, h) n = [ n[0] & 2, h.value ]; + switch (n[0]) { + case 0: + case 1: + h = n; + break; + + case 4: + e.label++; + return { + value: n[1], + done: false + }; + + case 5: + e.label++; + s = n[1]; + n = [ 0 ]; + continue; + + case 7: + n = e.ops.pop(); + e.trys.pop(); + continue; + + default: + if (!(h = e.trys, h = h.length > 0 && h[h.length - 1]) && (n[0] === 6 || n[0] === 2)) { + e = 0; + continue; + } + if (n[0] === 3 && (!h || n[1] > h[0] && n[1] < h[3])) { + e.label = n[1]; + break; + } + if (n[0] === 6 && e.label < h[1]) { + e.label = h[1]; + h = n; + break; + } + if (h && e.label < h[2]) { + e.label = h[2]; + e.ops.push(n); + break; + } + if (h[2]) e.ops.pop(); + e.trys.pop(); + continue; + } + n = i.call(t, e); + } catch (t) { + n = [ 6, t ]; + s = 0; + } finally { + r = h = 0; + } + if (n[0] & 5) throw n[1]; + return { + value: n[0] ? n[1] : void 0, + done: true + }; + } +}; + +var __read = this && this._ || function(t, i) { + var e = typeof Symbol === "function" && t[Symbol.iterator]; + if (!e) return t; + var r = e.call(t), s, h = [], n; + try { + while ((i === void 0 || i-- > 0) && !(s = r.next()).done) h.push(s.value); + } catch (t) { + n = { + error: t + }; + } finally { + try { + if (s && !s.done && (e = r["return"])) e.call(r); + } finally { + if (n) throw n.error; + } + } + return h; +}; + +var __spreadArray = this && this.P || function(t, i, e) { + if (e || arguments.length === 2) for (var r = 0, s = i.length, h; r < s; r++) { + if (h || !(r in i)) { + if (!h) h = Array.prototype.slice.call(i, 0, r); + h[r] = i[r]; + } + } + return t.concat(h || Array.prototype.slice.call(i)); +}; + +import SequentialContainer from "./Base"; + +import { RandomIterator } from "./Base/RandomIterator"; + +var DequeIterator = function(t) { + __extends(DequeIterator, t); + function DequeIterator() { + return t !== null && t.apply(this, arguments) || this; + } + DequeIterator.prototype.copy = function() { + return new DequeIterator(this.D, this.I, this.g, this.R, this.iteratorType); + }; + return DequeIterator; +}(RandomIterator); + +export { DequeIterator }; + +var Deque = function(t) { + __extends(Deque, t); + function Deque(i, e) { + if (i === void 0) { + i = []; + } + if (e === void 0) { + e = 1 << 12; + } + var r = t.call(this) || this; + r.M = 0; + r.k = 0; + r.C = 0; + r.O = 0; + r.l = 0; + r.N = []; + var s; + if ("size" in i) { + if (typeof i.size === "number") { + s = i.size; + } else { + s = i.size(); + } + } else if ("length" in i) { + s = i.length; + } else { + throw new RangeError("Can't get container's size!"); + } + r.T = e; + r.l = Math.max(Math.ceil(s / r.T), 1); + for (var h = 0; h < r.l; ++h) { + r.N.push(new Array(r.T)); + } + var n = Math.ceil(s / r.T); + r.M = r.C = (r.l >> 1) - (n >> 1); + r.k = r.O = r.T - s % r.T >> 1; + i.forEach((function(t) { + return r.pushBack(t); + })); + r.size = r.size.bind(r); + r.getElementByPos = r.getElementByPos.bind(r); + r.setElementByPos = r.setElementByPos.bind(r); + return r; + } + Deque.prototype.v = function() { + var t = []; + var i = Math.max(this.l >> 1, 1); + for (var e = 0; e < i; ++e) { + t[e] = new Array(this.T); + } + for (var e = this.M; e < this.l; ++e) { + t[t.length] = this.N[e]; + } + for (var e = 0; e < this.C; ++e) { + t[t.length] = this.N[e]; + } + t[t.length] = __spreadArray([], __read(this.N[this.C]), false); + this.M = i; + this.C = t.length - 1; + for (var e = 0; e < i; ++e) { + t[t.length] = new Array(this.T); + } + this.N = t; + this.l = t.length; + }; + Deque.prototype.G = function(t) { + var i = this.k + t + 1; + var e = i % this.T; + var r = e - 1; + var s = this.M + (i - e) / this.T; + if (e === 0) s -= 1; + s %= this.l; + if (r < 0) r += this.T; + return { + curNodeBucketIndex: s, + curNodePointerIndex: r + }; + }; + Deque.prototype.clear = function() { + this.N = [ [] ]; + this.l = 1; + this.M = this.C = this.o = 0; + this.k = this.O = this.T >> 1; + }; + Deque.prototype.front = function() { + return this.N[this.M][this.k]; + }; + Deque.prototype.back = function() { + return this.N[this.C][this.O]; + }; + Deque.prototype.begin = function() { + return new DequeIterator(0, this.size, this.getElementByPos, this.setElementByPos); + }; + Deque.prototype.end = function() { + return new DequeIterator(this.o, this.size, this.getElementByPos, this.setElementByPos); + }; + Deque.prototype.rBegin = function() { + return new DequeIterator(this.o - 1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Deque.prototype.rEnd = function() { + return new DequeIterator(-1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Deque.prototype.pushBack = function(t) { + if (this.o) { + if (this.O < this.T - 1) { + this.O += 1; + } else if (this.C < this.l - 1) { + this.C += 1; + this.O = 0; + } else { + this.C = 0; + this.O = 0; + } + if (this.C === this.M && this.O === this.k) this.v(); + } + this.o += 1; + this.N[this.C][this.O] = t; + }; + Deque.prototype.popBack = function() { + if (!this.o) return; + this.N[this.C][this.O] = undefined; + if (this.o !== 1) { + if (this.O > 0) { + this.O -= 1; + } else if (this.C > 0) { + this.C -= 1; + this.O = this.T - 1; + } else { + this.C = this.l - 1; + this.O = this.T - 1; + } + } + this.o -= 1; + }; + Deque.prototype.pushFront = function(t) { + if (this.o) { + if (this.k > 0) { + this.k -= 1; + } else if (this.M > 0) { + this.M -= 1; + this.k = this.T - 1; + } else { + this.M = this.l - 1; + this.k = this.T - 1; + } + if (this.M === this.C && this.k === this.O) this.v(); + } + this.o += 1; + this.N[this.M][this.k] = t; + }; + Deque.prototype.popFront = function() { + if (!this.o) return; + this.N[this.M][this.k] = undefined; + if (this.o !== 1) { + if (this.k < this.T - 1) { + this.k += 1; + } else if (this.M < this.l - 1) { + this.M += 1; + this.k = 0; + } else { + this.M = 0; + this.k = 0; + } + } + this.o -= 1; + }; + Deque.prototype.forEach = function(t) { + for (var i = 0; i < this.o; ++i) { + t(this.getElementByPos(i), i); + } + }; + Deque.prototype.getElementByPos = function(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + var i = this.G(t), e = i.curNodeBucketIndex, r = i.curNodePointerIndex; + return this.N[e][r]; + }; + Deque.prototype.setElementByPos = function(t, i) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + var e = this.G(t), r = e.curNodeBucketIndex, s = e.curNodePointerIndex; + this.N[r][s] = i; + }; + Deque.prototype.insert = function(t, i, e) { + if (e === void 0) { + e = 1; + } + if (t < 0 || t > this.o) { + throw new RangeError; + } + if (t === 0) { + while (e--) this.pushFront(i); + } else if (t === this.o) { + while (e--) this.pushBack(i); + } else { + var r = []; + for (var s = t; s < this.o; ++s) { + r.push(this.getElementByPos(s)); + } + this.cut(t - 1); + for (var s = 0; s < e; ++s) this.pushBack(i); + for (var s = 0; s < r.length; ++s) this.pushBack(r[s]); + } + }; + Deque.prototype.cut = function(t) { + if (t < 0) { + this.clear(); + return; + } + var i = this.G(t), e = i.curNodeBucketIndex, r = i.curNodePointerIndex; + this.C = e; + this.O = r; + this.o = t + 1; + }; + Deque.prototype.eraseElementByPos = function(t) { + var i = this; + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + if (t === 0) this.popFront(); else if (t === this.o - 1) this.popBack(); else { + var e = []; + for (var r = t + 1; r < this.o; ++r) { + e.push(this.getElementByPos(r)); + } + this.cut(t); + this.popBack(); + e.forEach((function(t) { + return i.pushBack(t); + })); + } + }; + Deque.prototype.eraseElementByValue = function(t) { + if (!this.o) return; + var i = []; + for (var e = 0; e < this.o; ++e) { + var r = this.getElementByPos(e); + if (r !== t) i.push(r); + } + var s = i.length; + for (var e = 0; e < s; ++e) this.setElementByPos(e, i[e]); + this.cut(s - 1); + }; + Deque.prototype.eraseElementByIterator = function(t) { + var i = t.D; + this.eraseElementByPos(i); + t = t.next(); + return t; + }; + Deque.prototype.find = function(t) { + for (var i = 0; i < this.o; ++i) { + if (this.getElementByPos(i) === t) { + return new DequeIterator(i, this.size, this.getElementByPos, this.setElementByPos); + } + } + return this.end(); + }; + Deque.prototype.reverse = function() { + var t = 0; + var i = this.o - 1; + while (t < i) { + var e = this.getElementByPos(t); + this.setElementByPos(t, this.getElementByPos(i)); + this.setElementByPos(i, e); + t += 1; + i -= 1; + } + }; + Deque.prototype.unique = function() { + if (this.o <= 1) return; + var t = 1; + var i = this.getElementByPos(0); + for (var e = 1; e < this.o; ++e) { + var r = this.getElementByPos(e); + if (r !== i) { + i = r; + this.setElementByPos(t++, r); + } + } + while (this.o > t) this.popBack(); + }; + Deque.prototype.sort = function(t) { + var i = []; + for (var e = 0; e < this.o; ++e) { + i.push(this.getElementByPos(e)); + } + i.sort(t); + for (var e = 0; e < this.o; ++e) this.setElementByPos(e, i[e]); + }; + Deque.prototype.shrinkToFit = function() { + if (!this.o) return; + var t = []; + this.forEach((function(i) { + return t.push(i); + })); + this.l = Math.max(Math.ceil(this.o / this.T), 1); + this.o = this.M = this.C = this.k = this.O = 0; + this.N = []; + for (var i = 0; i < this.l; ++i) { + this.N.push(new Array(this.T)); + } + for (var i = 0; i < t.length; ++i) this.pushBack(t[i]); + }; + Deque.prototype[Symbol.iterator] = function() { + return function() { + var t; + return __generator(this, (function(i) { + switch (i.label) { + case 0: + t = 0; + i.label = 1; + + case 1: + if (!(t < this.o)) return [ 3, 4 ]; + return [ 4, this.getElementByPos(t) ]; + + case 2: + i.sent(); + i.label = 3; + + case 3: + ++t; + return [ 3, 1 ]; + + case 4: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return Deque; +}(SequentialContainer); + +export default Deque; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.d.ts b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.d.ts new file mode 100644 index 0000000..acb1456 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.d.ts @@ -0,0 +1,49 @@ +import SequentialContainer from './Base'; +import { ContainerIterator, initContainer } from "../ContainerBase"; +export declare class LinkListIterator extends ContainerIterator { + pre: () => this; + next: () => this; + get pointer(): T; + set pointer(newValue: T); + equals(obj: LinkListIterator): boolean; + copy(): LinkListIterator; +} +declare class LinkList extends SequentialContainer { + constructor(container?: initContainer); + clear(): void; + begin(): LinkListIterator; + end(): LinkListIterator; + rBegin(): LinkListIterator; + rEnd(): LinkListIterator; + front(): T | undefined; + back(): T | undefined; + forEach(callback: (element: T, index: number) => void): void; + getElementByPos(pos: number): T; + eraseElementByPos(pos: number): void; + eraseElementByValue(_value: T): void; + eraseElementByIterator(iter: LinkListIterator): LinkListIterator; + pushBack(element: T): void; + popBack(): void; + setElementByPos(pos: number, element: T): void; + insert(pos: number, element: T, num?: number): void; + find(element: T): LinkListIterator; + reverse(): void; + unique(): void; + sort(cmp?: (x: T, y: T) => number): void; + /** + * @description Push an element to the front. + * @param element The element you want to push. + */ + pushFront(element: T): void; + /** + * @description Removes the first element. + */ + popFront(): void; + /** + * @description Merges two sorted lists. + * @param list The other list you want to merge (must be sorted). + */ + merge(list: LinkList): void; + [Symbol.iterator](): Generator; +} +export default LinkList; diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.js b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.js new file mode 100644 index 0000000..d1b0c1c --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/LinkList.js @@ -0,0 +1,500 @@ +var __extends = this && this.t || function() { + var extendStatics = function(i, t) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(i, t) { + i.__proto__ = t; + } || function(i, t) { + for (var n in t) if (Object.prototype.hasOwnProperty.call(t, n)) i[n] = t[n]; + }; + return extendStatics(i, t); + }; + return function(i, t) { + if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + extendStatics(i, t); + function __() { + this.constructor = i; + } + i.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); + }; +}(); + +var __generator = this && this.i || function(i, t) { + var n = { + label: 0, + sent: function() { + if (s[0] & 1) throw s[1]; + return s[1]; + }, + trys: [], + ops: [] + }, r, e, s, h; + return h = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (h[Symbol.iterator] = function() { + return this; + }), h; + function verb(i) { + return function(t) { + return step([ i, t ]); + }; + } + function step(h) { + if (r) throw new TypeError("Generator is already executing."); + while (n) try { + if (r = 1, e && (s = h[0] & 2 ? e["return"] : h[0] ? e["throw"] || ((s = e["return"]) && s.call(e), + 0) : e.next) && !(s = s.call(e, h[1])).done) return s; + if (e = 0, s) h = [ h[0] & 2, s.value ]; + switch (h[0]) { + case 0: + case 1: + s = h; + break; + + case 4: + n.label++; + return { + value: h[1], + done: false + }; + + case 5: + n.label++; + e = h[1]; + h = [ 0 ]; + continue; + + case 7: + h = n.ops.pop(); + n.trys.pop(); + continue; + + default: + if (!(s = n.trys, s = s.length > 0 && s[s.length - 1]) && (h[0] === 6 || h[0] === 2)) { + n = 0; + continue; + } + if (h[0] === 3 && (!s || h[1] > s[0] && h[1] < s[3])) { + n.label = h[1]; + break; + } + if (h[0] === 6 && n.label < s[1]) { + n.label = s[1]; + s = h; + break; + } + if (s && n.label < s[2]) { + n.label = s[2]; + n.ops.push(h); + break; + } + if (s[2]) n.ops.pop(); + n.trys.pop(); + continue; + } + h = t.call(i, n); + } catch (i) { + h = [ 6, i ]; + e = 0; + } finally { + r = s = 0; + } + if (h[0] & 5) throw h[1]; + return { + value: h[0] ? h[1] : void 0, + done: true + }; + } +}; + +import SequentialContainer from "./Base"; + +import { ContainerIterator } from "../ContainerBase"; + +var LinkNode = function() { + function LinkNode(i) { + this.L = undefined; + this.F = undefined; + this.H = undefined; + this.L = i; + } + return LinkNode; +}(); + +export { LinkNode }; + +var LinkListIterator = function(i) { + __extends(LinkListIterator, i); + function LinkListIterator(t, n, r) { + var e = i.call(this, r) || this; + e.D = t; + e.J = n; + if (e.iteratorType === 0) { + e.pre = function() { + if (this.D.F === this.J) { + throw new RangeError("LinkList iterator access denied!"); + } + this.D = this.D.F; + return this; + }; + e.next = function() { + if (this.D === this.J) { + throw new RangeError("LinkList iterator access denied!"); + } + this.D = this.D.H; + return this; + }; + } else { + e.pre = function() { + if (this.D.H === this.J) { + throw new RangeError("LinkList iterator access denied!"); + } + this.D = this.D.H; + return this; + }; + e.next = function() { + if (this.D === this.J) { + throw new RangeError("LinkList iterator access denied!"); + } + this.D = this.D.F; + return this; + }; + } + return e; + } + Object.defineProperty(LinkListIterator.prototype, "pointer", { + get: function() { + if (this.D === this.J) { + throw new RangeError("LinkList iterator access denied!"); + } + return this.D.L; + }, + set: function(i) { + if (this.D === this.J) { + throw new RangeError("LinkList iterator access denied!"); + } + this.D.L = i; + }, + enumerable: false, + configurable: true + }); + LinkListIterator.prototype.equals = function(i) { + return this.D === i.D; + }; + LinkListIterator.prototype.copy = function() { + return new LinkListIterator(this.D, this.J, this.iteratorType); + }; + return LinkListIterator; +}(ContainerIterator); + +export { LinkListIterator }; + +var LinkList = function(i) { + __extends(LinkList, i); + function LinkList(t) { + if (t === void 0) { + t = []; + } + var n = i.call(this) || this; + n.J = new LinkNode; + n.K = undefined; + n.U = undefined; + t.forEach((function(i) { + return n.pushBack(i); + })); + return n; + } + LinkList.prototype.clear = function() { + this.o = 0; + this.K = this.U = undefined; + this.J.F = this.J.H = undefined; + }; + LinkList.prototype.begin = function() { + return new LinkListIterator(this.K || this.J, this.J); + }; + LinkList.prototype.end = function() { + return new LinkListIterator(this.J, this.J); + }; + LinkList.prototype.rBegin = function() { + return new LinkListIterator(this.U || this.J, this.J, 1); + }; + LinkList.prototype.rEnd = function() { + return new LinkListIterator(this.J, this.J, 1); + }; + LinkList.prototype.front = function() { + return this.K ? this.K.L : undefined; + }; + LinkList.prototype.back = function() { + return this.U ? this.U.L : undefined; + }; + LinkList.prototype.forEach = function(i) { + if (!this.o) return; + var t = this.K; + var n = 0; + while (t !== this.J) { + i(t.L, n++); + t = t.H; + } + }; + LinkList.prototype.getElementByPos = function(i) { + if (i < 0 || i > this.o - 1) { + throw new RangeError; + } + var t = this.K; + while (i--) { + t = t.H; + } + return t.L; + }; + LinkList.prototype.eraseElementByPos = function(i) { + if (i < 0 || i > this.o - 1) { + throw new RangeError; + } + if (i === 0) this.popFront(); else if (i === this.o - 1) this.popBack(); else { + var t = this.K; + while (i--) { + t = t.H; + } + t = t; + var n = t.F; + var r = t.H; + r.F = n; + n.H = r; + this.o -= 1; + } + }; + LinkList.prototype.eraseElementByValue = function(i) { + while (this.K && this.K.L === i) this.popFront(); + while (this.U && this.U.L === i) this.popBack(); + if (!this.K) return; + var t = this.K; + while (t !== this.J) { + if (t.L === i) { + var n = t.F; + var r = t.H; + r.F = n; + n.H = r; + this.o -= 1; + } + t = t.H; + } + }; + LinkList.prototype.eraseElementByIterator = function(i) { + var t = i.D; + if (t === this.J) { + throw new RangeError("Invalid iterator"); + } + i = i.next(); + if (this.K === t) this.popFront(); else if (this.U === t) this.popBack(); else { + var n = t.F; + var r = t.H; + r.F = n; + n.H = r; + this.o -= 1; + } + return i; + }; + LinkList.prototype.pushBack = function(i) { + this.o += 1; + var t = new LinkNode(i); + if (!this.U) { + this.K = this.U = t; + this.J.H = this.K; + this.K.F = this.J; + } else { + this.U.H = t; + t.F = this.U; + this.U = t; + } + this.U.H = this.J; + this.J.F = this.U; + }; + LinkList.prototype.popBack = function() { + if (!this.U) return; + this.o -= 1; + if (this.K === this.U) { + this.K = this.U = undefined; + this.J.H = undefined; + } else { + this.U = this.U.F; + this.U.H = this.J; + } + this.J.F = this.U; + }; + LinkList.prototype.setElementByPos = function(i, t) { + if (i < 0 || i > this.o - 1) { + throw new RangeError; + } + var n = this.K; + while (i--) { + n = n.H; + } + n.L = t; + }; + LinkList.prototype.insert = function(i, t, n) { + if (n === void 0) { + n = 1; + } + if (i < 0 || i > this.o) { + throw new RangeError; + } + if (n <= 0) return; + if (i === 0) { + while (n--) this.pushFront(t); + } else if (i === this.o) { + while (n--) this.pushBack(t); + } else { + var r = this.K; + for (var e = 1; e < i; ++e) { + r = r.H; + } + var s = r.H; + this.o += n; + while (n--) { + r.H = new LinkNode(t); + r.H.F = r; + r = r.H; + } + r.H = s; + s.F = r; + } + }; + LinkList.prototype.find = function(i) { + if (!this.K) return this.end(); + var t = this.K; + while (t !== this.J) { + if (t.L === i) { + return new LinkListIterator(t, this.J); + } + t = t.H; + } + return this.end(); + }; + LinkList.prototype.reverse = function() { + if (this.o <= 1) return; + var i = this.K; + var t = this.U; + var n = 0; + while (n << 1 < this.o) { + var r = i.L; + i.L = t.L; + t.L = r; + i = i.H; + t = t.F; + n += 1; + } + }; + LinkList.prototype.unique = function() { + if (this.o <= 1) return; + var i = this.K; + while (i !== this.J) { + var t = i; + while (t.H && t.L === t.H.L) { + t = t.H; + this.o -= 1; + } + i.H = t.H; + i.H.F = i; + i = i.H; + } + }; + LinkList.prototype.sort = function(i) { + if (this.o <= 1) return; + var t = []; + this.forEach((function(i) { + return t.push(i); + })); + t.sort(i); + var n = this.K; + t.forEach((function(i) { + n.L = i; + n = n.H; + })); + }; + LinkList.prototype.pushFront = function(i) { + this.o += 1; + var t = new LinkNode(i); + if (!this.K) { + this.K = this.U = t; + this.U.H = this.J; + this.J.F = this.U; + } else { + t.H = this.K; + this.K.F = t; + this.K = t; + } + this.J.H = this.K; + this.K.F = this.J; + }; + LinkList.prototype.popFront = function() { + if (!this.K) return; + this.o -= 1; + if (this.K === this.U) { + this.K = this.U = undefined; + this.J.F = this.U; + } else { + this.K = this.K.H; + this.K.F = this.J; + } + this.J.H = this.K; + }; + LinkList.prototype.merge = function(i) { + var t = this; + if (!this.K) { + i.forEach((function(i) { + return t.pushBack(i); + })); + return; + } + var n = this.K; + i.forEach((function(i) { + while (n && n !== t.J && n.L <= i) { + n = n.H; + } + if (n === t.J) { + t.pushBack(i); + n = t.U; + } else if (n === t.K) { + t.pushFront(i); + n = t.K; + } else { + t.o += 1; + var r = n.F; + r.H = new LinkNode(i); + r.H.F = r; + r.H.H = n; + n.F = r.H; + } + })); + }; + LinkList.prototype[Symbol.iterator] = function() { + return function() { + var i; + return __generator(this, (function(t) { + switch (t.label) { + case 0: + if (!this.K) return [ 2 ]; + i = this.K; + t.label = 1; + + case 1: + if (!(i !== this.J)) return [ 3, 3 ]; + return [ 4, i.L ]; + + case 2: + t.sent(); + i = i.H; + return [ 3, 1 ]; + + case 3: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return LinkList; +}(SequentialContainer); + +export default LinkList; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.d.ts b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.d.ts new file mode 100644 index 0000000..b7d8c40 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.d.ts @@ -0,0 +1,37 @@ +import SequentialContainer from './Base'; +import { initContainer } from "../ContainerBase"; +import { RandomIterator } from "./Base/RandomIterator"; +export declare class VectorIterator extends RandomIterator { + copy(): VectorIterator; +} +declare class Vector extends SequentialContainer { + /** + * @description Vector's constructor. + * @param container Initialize container, must have a forEach function. + * @param copy When the container is an array, you can choose to directly operate on the original object of + * the array or perform a shallow copy. The default is shallow copy. + */ + constructor(container?: initContainer, copy?: boolean); + clear(): void; + begin(): VectorIterator; + end(): VectorIterator; + rBegin(): VectorIterator; + rEnd(): VectorIterator; + front(): T | undefined; + back(): T | undefined; + forEach(callback: (element: T, index: number) => void): void; + getElementByPos(pos: number): T; + eraseElementByPos(pos: number): void; + eraseElementByValue(value: T): void; + eraseElementByIterator(iter: VectorIterator): VectorIterator; + pushBack(element: T): void; + popBack(): void; + setElementByPos(pos: number, element: T): void; + insert(pos: number, element: T, num?: number): void; + find(element: T): VectorIterator; + reverse(): void; + unique(): void; + sort(cmp?: (x: T, y: T) => number): void; + [Symbol.iterator](): Generator; +} +export default Vector; diff --git a/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.js b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.js new file mode 100644 index 0000000..6073027 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/SequentialContainer/Vector.js @@ -0,0 +1,318 @@ +var __extends = this && this.t || function() { + var extendStatics = function(t, r) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(t, r) { + t.__proto__ = r; + } || function(t, r) { + for (var e in r) if (Object.prototype.hasOwnProperty.call(r, e)) t[e] = r[e]; + }; + return extendStatics(t, r); + }; + return function(t, r) { + if (typeof r !== "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null"); + extendStatics(t, r); + function __() { + this.constructor = t; + } + t.prototype = r === null ? Object.create(r) : (__.prototype = r.prototype, new __); + }; +}(); + +var __generator = this && this.i || function(t, r) { + var e = { + label: 0, + sent: function() { + if (o[0] & 1) throw o[1]; + return o[1]; + }, + trys: [], + ops: [] + }, n, i, o, s; + return s = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (s[Symbol.iterator] = function() { + return this; + }), s; + function verb(t) { + return function(r) { + return step([ t, r ]); + }; + } + function step(s) { + if (n) throw new TypeError("Generator is already executing."); + while (e) try { + if (n = 1, i && (o = s[0] & 2 ? i["return"] : s[0] ? i["throw"] || ((o = i["return"]) && o.call(i), + 0) : i.next) && !(o = o.call(i, s[1])).done) return o; + if (i = 0, o) s = [ s[0] & 2, o.value ]; + switch (s[0]) { + case 0: + case 1: + o = s; + break; + + case 4: + e.label++; + return { + value: s[1], + done: false + }; + + case 5: + e.label++; + i = s[1]; + s = [ 0 ]; + continue; + + case 7: + s = e.ops.pop(); + e.trys.pop(); + continue; + + default: + if (!(o = e.trys, o = o.length > 0 && o[o.length - 1]) && (s[0] === 6 || s[0] === 2)) { + e = 0; + continue; + } + if (s[0] === 3 && (!o || s[1] > o[0] && s[1] < o[3])) { + e.label = s[1]; + break; + } + if (s[0] === 6 && e.label < o[1]) { + e.label = o[1]; + o = s; + break; + } + if (o && e.label < o[2]) { + e.label = o[2]; + e.ops.push(s); + break; + } + if (o[2]) e.ops.pop(); + e.trys.pop(); + continue; + } + s = r.call(t, e); + } catch (t) { + s = [ 6, t ]; + i = 0; + } finally { + n = o = 0; + } + if (s[0] & 5) throw s[1]; + return { + value: s[0] ? s[1] : void 0, + done: true + }; + } +}; + +var __read = this && this._ || function(t, r) { + var e = typeof Symbol === "function" && t[Symbol.iterator]; + if (!e) return t; + var n = e.call(t), i, o = [], s; + try { + while ((r === void 0 || r-- > 0) && !(i = n.next()).done) o.push(i.value); + } catch (t) { + s = { + error: t + }; + } finally { + try { + if (i && !i.done && (e = n["return"])) e.call(n); + } finally { + if (s) throw s.error; + } + } + return o; +}; + +var __spreadArray = this && this.P || function(t, r, e) { + if (e || arguments.length === 2) for (var n = 0, i = r.length, o; n < i; n++) { + if (o || !(n in r)) { + if (!o) o = Array.prototype.slice.call(r, 0, n); + o[n] = r[n]; + } + } + return t.concat(o || Array.prototype.slice.call(r)); +}; + +var __values = this && this.u || function(t) { + var r = typeof Symbol === "function" && Symbol.iterator, e = r && t[r], n = 0; + if (e) return e.call(t); + if (t && typeof t.length === "number") return { + next: function() { + if (t && n >= t.length) t = void 0; + return { + value: t && t[n++], + done: !t + }; + } + }; + throw new TypeError(r ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + +import SequentialContainer from "./Base"; + +import { RandomIterator } from "./Base/RandomIterator"; + +var VectorIterator = function(t) { + __extends(VectorIterator, t); + function VectorIterator() { + return t !== null && t.apply(this, arguments) || this; + } + VectorIterator.prototype.copy = function() { + return new VectorIterator(this.D, this.I, this.g, this.R, this.iteratorType); + }; + return VectorIterator; +}(RandomIterator); + +export { VectorIterator }; + +var Vector = function(t) { + __extends(Vector, t); + function Vector(r, e) { + if (r === void 0) { + r = []; + } + if (e === void 0) { + e = true; + } + var n = t.call(this) || this; + if (Array.isArray(r)) { + n.V = e ? __spreadArray([], __read(r), false) : r; + n.o = r.length; + } else { + n.V = []; + r.forEach((function(t) { + return n.pushBack(t); + })); + } + n.size = n.size.bind(n); + n.getElementByPos = n.getElementByPos.bind(n); + n.setElementByPos = n.setElementByPos.bind(n); + return n; + } + Vector.prototype.clear = function() { + this.o = 0; + this.V.length = 0; + }; + Vector.prototype.begin = function() { + return new VectorIterator(0, this.size, this.getElementByPos, this.setElementByPos); + }; + Vector.prototype.end = function() { + return new VectorIterator(this.o, this.size, this.getElementByPos, this.setElementByPos); + }; + Vector.prototype.rBegin = function() { + return new VectorIterator(this.o - 1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Vector.prototype.rEnd = function() { + return new VectorIterator(-1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Vector.prototype.front = function() { + return this.V[0]; + }; + Vector.prototype.back = function() { + return this.V[this.o - 1]; + }; + Vector.prototype.forEach = function(t) { + for (var r = 0; r < this.o; ++r) { + t(this.V[r], r); + } + }; + Vector.prototype.getElementByPos = function(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + return this.V[t]; + }; + Vector.prototype.eraseElementByPos = function(t) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + this.V.splice(t, 1); + this.o -= 1; + }; + Vector.prototype.eraseElementByValue = function(t) { + var r = 0; + for (var e = 0; e < this.o; ++e) { + if (this.V[e] !== t) { + this.V[r++] = this.V[e]; + } + } + this.o = this.V.length = r; + }; + Vector.prototype.eraseElementByIterator = function(t) { + var r = t.D; + t = t.next(); + this.eraseElementByPos(r); + return t; + }; + Vector.prototype.pushBack = function(t) { + this.V.push(t); + this.o += 1; + }; + Vector.prototype.popBack = function() { + if (!this.o) return; + this.V.pop(); + this.o -= 1; + }; + Vector.prototype.setElementByPos = function(t, r) { + if (t < 0 || t > this.o - 1) { + throw new RangeError; + } + this.V[t] = r; + }; + Vector.prototype.insert = function(t, r, e) { + var n; + if (e === void 0) { + e = 1; + } + if (t < 0 || t > this.o) { + throw new RangeError; + } + (n = this.V).splice.apply(n, __spreadArray([ t, 0 ], __read(new Array(e).fill(r)), false)); + this.o += e; + }; + Vector.prototype.find = function(t) { + for (var r = 0; r < this.o; ++r) { + if (this.V[r] === t) { + return new VectorIterator(r, this.size, this.getElementByPos, this.getElementByPos); + } + } + return this.end(); + }; + Vector.prototype.reverse = function() { + this.V.reverse(); + }; + Vector.prototype.unique = function() { + var t = 1; + for (var r = 1; r < this.o; ++r) { + if (this.V[r] !== this.V[r - 1]) { + this.V[t++] = this.V[r]; + } + } + this.o = this.V.length = t; + }; + Vector.prototype.sort = function(t) { + this.V.sort(t); + }; + Vector.prototype[Symbol.iterator] = function() { + return function() { + return __generator(this, (function(t) { + switch (t.label) { + case 0: + return [ 5, __values(this.V) ]; + + case 1: + return [ 2, t.sent() ]; + } + })); + }.bind(this)(); + }; + return Vector; +}(SequentialContainer); + +export default Vector; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.d.ts b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.d.ts new file mode 100644 index 0000000..8ef9837 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.d.ts @@ -0,0 +1,15 @@ +import { ContainerIterator } from "../../ContainerBase"; +declare abstract class TreeIterator extends ContainerIterator { + pre: () => this; + next: () => this; + /** + * @description Get the sequential index of the iterator in the tree container.
+ * + * Note: + * + * This function only takes effect when the specified tree container `enableIndex = true`. + */ + get index(): number; + equals(obj: TreeIterator): boolean; +} +export default TreeIterator; diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.js b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.js new file mode 100644 index 0000000..a587c68 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeIterator.js @@ -0,0 +1,98 @@ +var __extends = this && this.t || function() { + var extendStatics = function(t, r) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(t, r) { + t.__proto__ = r; + } || function(t, r) { + for (var e in r) if (Object.prototype.hasOwnProperty.call(r, e)) t[e] = r[e]; + }; + return extendStatics(t, r); + }; + return function(t, r) { + if (typeof r !== "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null"); + extendStatics(t, r); + function __() { + this.constructor = t; + } + t.prototype = r === null ? Object.create(r) : (__.prototype = r.prototype, new __); + }; +}(); + +import { ContainerIterator } from "../../ContainerBase"; + +var TreeIterator = function(t) { + __extends(TreeIterator, t); + function TreeIterator(r, e, n) { + var i = t.call(this, n) || this; + i.D = r; + i.J = e; + if (i.iteratorType === 0) { + i.pre = function() { + if (this.D === this.J.Y) { + throw new RangeError("Tree iterator access denied!"); + } + this.D = this.D.pre(); + return this; + }; + i.next = function() { + if (this.D === this.J) { + throw new RangeError("Tree iterator access denied!"); + } + this.D = this.D.next(); + return this; + }; + } else { + i.pre = function() { + if (this.D === this.J.Z) { + throw new RangeError("Tree iterator access denied!"); + } + this.D = this.D.next(); + return this; + }; + i.next = function() { + if (this.D === this.J) { + throw new RangeError("Tree iterator access denied!"); + } + this.D = this.D.pre(); + return this; + }; + } + return i; + } + Object.defineProperty(TreeIterator.prototype, "index", { + get: function() { + var t = this.D; + var r = this.J.tt; + if (t === this.J) { + if (r) { + return r.rt - 1; + } + return 0; + } + var e = 0; + if (t.Y) { + e += t.Y.rt; + } + while (t !== r) { + var n = t.tt; + if (t === n.Z) { + e += 1; + if (n.Y) { + e += n.Y.rt; + } + } + t = n; + } + return e; + }, + enumerable: false, + configurable: true + }); + TreeIterator.prototype.equals = function(t) { + return this.D === t.D; + }; + return TreeIterator; +}(ContainerIterator); + +export default TreeIterator; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.d.ts b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.d.ts new file mode 100644 index 0000000..ddd9933 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.d.ts @@ -0,0 +1,36 @@ +export declare class TreeNode { + constructor(_key?: K, _value?: V); + /** + * @description Get the pre node. + * @return TreeNode about the pre node. + */ + pre(): TreeNode; + /** + * @description Get the next node. + * @return TreeNode about the next node. + */ + next(): TreeNode; + /** + * @description Rotate _left. + * @return TreeNode about moved to original position after rotation. + */ + rotateLeft(): TreeNode; + /** + * @description Rotate _right. + * @return TreeNode about moved to original position after rotation. + */ + rotateRight(): TreeNode; +} +export declare class TreeNodeEnableIndex extends TreeNode { + /** + * @description Rotate _left and do recount. + * @return TreeNode about moved to original position after rotation. + */ + rotateLeft(): TreeNodeEnableIndex; + /** + * @description Rotate _right and do recount. + * @return TreeNode about moved to original position after rotation. + */ + rotateRight(): TreeNode; + recount(): void; +} diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.js b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.js new file mode 100644 index 0000000..6eaf86f --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/TreeNode.js @@ -0,0 +1,130 @@ +var __extends = this && this.t || function() { + var extendStatics = function(e, n) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(e, n) { + e.__proto__ = n; + } || function(e, n) { + for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) e[i] = n[i]; + }; + return extendStatics(e, n); + }; + return function(e, n) { + if (typeof n !== "function" && n !== null) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null"); + extendStatics(e, n); + function __() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (__.prototype = n.prototype, new __); + }; +}(); + +var TreeNode = function() { + function TreeNode(e, n) { + this.ee = 1; + this.W = undefined; + this.L = undefined; + this.Y = undefined; + this.Z = undefined; + this.tt = undefined; + this.W = e; + this.L = n; + } + TreeNode.prototype.pre = function() { + var e = this; + if (e.ee === 1 && e.tt.tt === e) { + e = e.Z; + } else if (e.Y) { + e = e.Y; + while (e.Z) { + e = e.Z; + } + } else { + var n = e.tt; + while (n.Y === e) { + e = n; + n = e.tt; + } + e = n; + } + return e; + }; + TreeNode.prototype.next = function() { + var e = this; + if (e.Z) { + e = e.Z; + while (e.Y) { + e = e.Y; + } + return e; + } else { + var n = e.tt; + while (n.Z === e) { + e = n; + n = e.tt; + } + if (e.Z !== n) { + return n; + } else return e; + } + }; + TreeNode.prototype.rotateLeft = function() { + var e = this.tt; + var n = this.Z; + var i = n.Y; + if (e.tt === this) e.tt = n; else if (e.Y === this) e.Y = n; else e.Z = n; + n.tt = e; + n.Y = this; + this.tt = n; + this.Z = i; + if (i) i.tt = this; + return n; + }; + TreeNode.prototype.rotateRight = function() { + var e = this.tt; + var n = this.Y; + var i = n.Z; + if (e.tt === this) e.tt = n; else if (e.Y === this) e.Y = n; else e.Z = n; + n.tt = e; + n.Z = this; + this.tt = n; + this.Y = i; + if (i) i.tt = this; + return n; + }; + return TreeNode; +}(); + +export { TreeNode }; + +var TreeNodeEnableIndex = function(e) { + __extends(TreeNodeEnableIndex, e); + function TreeNodeEnableIndex() { + var n = e !== null && e.apply(this, arguments) || this; + n.Y = undefined; + n.Z = undefined; + n.tt = undefined; + n.rt = 1; + return n; + } + TreeNodeEnableIndex.prototype.rotateLeft = function() { + var n = e.prototype.rotateLeft.call(this); + this.recount(); + n.recount(); + return n; + }; + TreeNodeEnableIndex.prototype.rotateRight = function() { + var n = e.prototype.rotateRight.call(this); + this.recount(); + n.recount(); + return n; + }; + TreeNodeEnableIndex.prototype.recount = function() { + this.rt = 1; + if (this.Y) this.rt += this.Y.rt; + if (this.Z) this.rt += this.Z.rt; + }; + return TreeNodeEnableIndex; +}(TreeNode); + +export { TreeNodeEnableIndex }; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.d.ts b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.d.ts new file mode 100644 index 0000000..340b071 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.d.ts @@ -0,0 +1,55 @@ +import type TreeIterator from './TreeIterator'; +import { Container } from "../../ContainerBase"; +declare abstract class TreeContainer extends Container { + /** + * @param cmp The compare function. + * @param enableIndex Whether to enable iterator indexing function. + */ + protected constructor(cmp?: (x: K, y: K) => number, enableIndex?: boolean); + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element not less than the given _key. + */ + abstract lowerBound(_key: K): TreeIterator; + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element greater than the given _key. + */ + abstract upperBound(_key: K): TreeIterator; + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element not greater than the given _key. + */ + abstract reverseLowerBound(_key: K): TreeIterator; + /** + * @param _key The given _key you want to compare. + * @return An iterator to the first element less than the given _key. + */ + abstract reverseUpperBound(_key: K): TreeIterator; + /** + * @description Union the other tree to self. + * @param other The other tree container you want to merge. + */ + abstract union(other: TreeContainer): void; + clear(): void; + /** + * @description Update node's _key by iterator. + * @param iter The iterator you want to change. + * @param _key The _key you want to update. + * @return Boolean about if the modification is successful. + */ + updateKeyByIterator(iter: TreeIterator, _key: K): boolean; + eraseElementByPos(pos: number): void; + /** + * @description Remove the element of the specified _key. + * @param _key The _key you want to remove. + */ + eraseElementByKey(_key: K): void; + eraseElementByIterator(iter: TreeIterator): TreeIterator; + /** + * @description Get the height of the tree. + * @return Number about the height of the RB-tree. + */ + getHeight(): number; +} +export default TreeContainer; diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.js b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.js new file mode 100644 index 0000000..783932b --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/Base/index.js @@ -0,0 +1,525 @@ +var __extends = this && this.t || function() { + var extendStatics = function(e, i) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(e, i) { + e.__proto__ = i; + } || function(e, i) { + for (var r in i) if (Object.prototype.hasOwnProperty.call(i, r)) e[r] = i[r]; + }; + return extendStatics(e, i); + }; + return function(e, i) { + if (typeof i !== "function" && i !== null) throw new TypeError("Class extends value " + String(i) + " is not a constructor or null"); + extendStatics(e, i); + function __() { + this.constructor = e; + } + e.prototype = i === null ? Object.create(i) : (__.prototype = i.prototype, new __); + }; +}(); + +var __read = this && this._ || function(e, i) { + var r = typeof Symbol === "function" && e[Symbol.iterator]; + if (!r) return e; + var t = r.call(e), n, s = [], f; + try { + while ((i === void 0 || i-- > 0) && !(n = t.next()).done) s.push(n.value); + } catch (e) { + f = { + error: e + }; + } finally { + try { + if (n && !n.done && (r = t["return"])) r.call(t); + } finally { + if (f) throw f.error; + } + } + return s; +}; + +import { Container } from "../../ContainerBase"; + +import { TreeNode, TreeNodeEnableIndex } from "./TreeNode"; + +var TreeContainer = function(e) { + __extends(TreeContainer, e); + function TreeContainer(i, r) { + if (i === void 0) { + i = function(e, i) { + if (e < i) return -1; + if (e > i) return 1; + return 0; + }; + } + if (r === void 0) { + r = false; + } + var t = e.call(this) || this; + t.rr = undefined; + t.ie = function(e, i) { + if (e === undefined) return false; + var r = t.ie(e.Y, i); + if (r) return true; + if (i(e)) return true; + return t.ie(e.Z, i); + }; + t.A = i; + if (r) { + t.re = TreeNodeEnableIndex; + t.ir = function(e, i, r) { + var t = this.te(e, i, r); + if (t) { + var n = t.tt; + while (n !== this.J) { + n.rt += 1; + n = n.tt; + } + var s = this.ne(t); + if (s) { + var f = s, h = f.parentNode, u = f.grandParent, a = f.curNode; + h.recount(); + u.recount(); + a.recount(); + } + } + }; + t.se = function(e) { + var i = this.fe(e); + while (i !== this.J) { + i.rt -= 1; + i = i.tt; + } + }; + } else { + t.re = TreeNode; + t.ir = function(e, i, r) { + var t = this.te(e, i, r); + if (t) this.ne(t); + }; + t.se = t.fe; + } + t.J = new t.re; + return t; + } + TreeContainer.prototype.$ = function(e, i) { + var r; + while (e) { + var t = this.A(e.W, i); + if (t < 0) { + e = e.Z; + } else if (t > 0) { + r = e; + e = e.Y; + } else return e; + } + return r === undefined ? this.J : r; + }; + TreeContainer.prototype.er = function(e, i) { + var r; + while (e) { + var t = this.A(e.W, i); + if (t <= 0) { + e = e.Z; + } else { + r = e; + e = e.Y; + } + } + return r === undefined ? this.J : r; + }; + TreeContainer.prototype.tr = function(e, i) { + var r; + while (e) { + var t = this.A(e.W, i); + if (t < 0) { + r = e; + e = e.Z; + } else if (t > 0) { + e = e.Y; + } else return e; + } + return r === undefined ? this.J : r; + }; + TreeContainer.prototype.nr = function(e, i) { + var r; + while (e) { + var t = this.A(e.W, i); + if (t < 0) { + r = e; + e = e.Z; + } else { + e = e.Y; + } + } + return r === undefined ? this.J : r; + }; + TreeContainer.prototype.he = function(e) { + while (true) { + var i = e.tt; + if (i === this.J) return; + if (e.ee === 1) { + e.ee = 0; + return; + } + if (e === i.Y) { + var r = i.Z; + if (r.ee === 1) { + r.ee = 0; + i.ee = 1; + if (i === this.rr) { + this.rr = i.rotateLeft(); + } else i.rotateLeft(); + } else { + if (r.Z && r.Z.ee === 1) { + r.ee = i.ee; + i.ee = 0; + r.Z.ee = 0; + if (i === this.rr) { + this.rr = i.rotateLeft(); + } else i.rotateLeft(); + return; + } else if (r.Y && r.Y.ee === 1) { + r.ee = 1; + r.Y.ee = 0; + r.rotateRight(); + } else { + r.ee = 1; + e = i; + } + } + } else { + var r = i.Y; + if (r.ee === 1) { + r.ee = 0; + i.ee = 1; + if (i === this.rr) { + this.rr = i.rotateRight(); + } else i.rotateRight(); + } else { + if (r.Y && r.Y.ee === 1) { + r.ee = i.ee; + i.ee = 0; + r.Y.ee = 0; + if (i === this.rr) { + this.rr = i.rotateRight(); + } else i.rotateRight(); + return; + } else if (r.Z && r.Z.ee === 1) { + r.ee = 1; + r.Z.ee = 0; + r.rotateLeft(); + } else { + r.ee = 1; + e = i; + } + } + } + } + }; + TreeContainer.prototype.fe = function(e) { + var i, r; + if (this.o === 1) { + this.clear(); + return this.J; + } + var t = e; + while (t.Y || t.Z) { + if (t.Z) { + t = t.Z; + while (t.Y) t = t.Y; + } else { + t = t.Y; + } + i = __read([ t.W, e.W ], 2), e.W = i[0], t.W = i[1]; + r = __read([ t.L, e.L ], 2), e.L = r[0], t.L = r[1]; + e = t; + } + if (this.J.Y === t) { + this.J.Y = t.tt; + } else if (this.J.Z === t) { + this.J.Z = t.tt; + } + this.he(t); + var n = t.tt; + if (t === n.Y) { + n.Y = undefined; + } else n.Z = undefined; + this.o -= 1; + this.rr.ee = 0; + return n; + }; + TreeContainer.prototype.ne = function(e) { + while (true) { + var i = e.tt; + if (i.ee === 0) return; + var r = i.tt; + if (i === r.Y) { + var t = r.Z; + if (t && t.ee === 1) { + t.ee = i.ee = 0; + if (r === this.rr) return; + r.ee = 1; + e = r; + continue; + } else if (e === i.Z) { + e.ee = 0; + if (e.Y) e.Y.tt = i; + if (e.Z) e.Z.tt = r; + i.Z = e.Y; + r.Y = e.Z; + e.Y = i; + e.Z = r; + if (r === this.rr) { + this.rr = e; + this.J.tt = e; + } else { + var n = r.tt; + if (n.Y === r) { + n.Y = e; + } else n.Z = e; + } + e.tt = r.tt; + i.tt = e; + r.tt = e; + r.ee = 1; + return { + parentNode: i, + grandParent: r, + curNode: e + }; + } else { + i.ee = 0; + if (r === this.rr) { + this.rr = r.rotateRight(); + } else r.rotateRight(); + r.ee = 1; + } + } else { + var t = r.Y; + if (t && t.ee === 1) { + t.ee = i.ee = 0; + if (r === this.rr) return; + r.ee = 1; + e = r; + continue; + } else if (e === i.Y) { + e.ee = 0; + if (e.Y) e.Y.tt = r; + if (e.Z) e.Z.tt = i; + r.Z = e.Y; + i.Y = e.Z; + e.Y = r; + e.Z = i; + if (r === this.rr) { + this.rr = e; + this.J.tt = e; + } else { + var n = r.tt; + if (n.Y === r) { + n.Y = e; + } else n.Z = e; + } + e.tt = r.tt; + i.tt = e; + r.tt = e; + r.ee = 1; + return { + parentNode: i, + grandParent: r, + curNode: e + }; + } else { + i.ee = 0; + if (r === this.rr) { + this.rr = r.rotateLeft(); + } else r.rotateLeft(); + r.ee = 1; + } + } + return; + } + }; + TreeContainer.prototype.te = function(e, i, r) { + if (this.rr === undefined) { + this.o += 1; + this.rr = new this.re(e, i); + this.rr.ee = 0; + this.rr.tt = this.J; + this.J.tt = this.rr; + this.J.Y = this.rr; + this.J.Z = this.rr; + return; + } + var t; + var n = this.J.Y; + var s = this.A(n.W, e); + if (s === 0) { + n.L = i; + return; + } else if (s > 0) { + n.Y = new this.re(e, i); + n.Y.tt = n; + t = n.Y; + this.J.Y = t; + } else { + var f = this.J.Z; + var h = this.A(f.W, e); + if (h === 0) { + f.L = i; + return; + } else if (h < 0) { + f.Z = new this.re(e, i); + f.Z.tt = f; + t = f.Z; + this.J.Z = t; + } else { + if (r !== undefined) { + var u = r.D; + if (u !== this.J) { + var a = this.A(u.W, e); + if (a === 0) { + u.L = i; + return; + } else if (a > 0) { + var o = u.pre(); + var l = this.A(o.W, e); + if (l === 0) { + o.L = i; + return; + } else if (l < 0) { + t = new this.re(e, i); + if (o.Z === undefined) { + o.Z = t; + t.tt = o; + } else { + u.Y = t; + t.tt = u; + } + } + } + } + } + if (t === undefined) { + t = this.rr; + while (true) { + var d = this.A(t.W, e); + if (d > 0) { + if (t.Y === undefined) { + t.Y = new this.re(e, i); + t.Y.tt = t; + t = t.Y; + break; + } + t = t.Y; + } else if (d < 0) { + if (t.Z === undefined) { + t.Z = new this.re(e, i); + t.Z.tt = t; + t = t.Z; + break; + } + t = t.Z; + } else { + t.L = i; + return; + } + } + } + } + } + this.o += 1; + return t; + }; + TreeContainer.prototype.clear = function() { + this.o = 0; + this.rr = undefined; + this.J.tt = undefined; + this.J.Y = this.J.Z = undefined; + }; + TreeContainer.prototype.updateKeyByIterator = function(e, i) { + var r = e.D; + if (r === this.J) { + throw new TypeError("Invalid iterator!"); + } + if (this.o === 1) { + r.W = i; + return true; + } + if (r === this.J.Y) { + if (this.A(r.next().W, i) > 0) { + r.W = i; + return true; + } + return false; + } + if (r === this.J.Z) { + if (this.A(r.pre().W, i) < 0) { + r.W = i; + return true; + } + return false; + } + var t = r.pre().W; + if (this.A(t, i) >= 0) return false; + var n = r.next().W; + if (this.A(n, i) <= 0) return false; + r.W = i; + return true; + }; + TreeContainer.prototype.eraseElementByPos = function(e) { + var i = this; + if (e < 0 || e > this.o - 1) { + throw new RangeError; + } + var r = 0; + this.ie(this.rr, (function(t) { + if (e === r) { + i.se(t); + return true; + } + r += 1; + return false; + })); + }; + TreeContainer.prototype.ar = function(e, i) { + while (e) { + var r = this.A(e.W, i); + if (r < 0) { + e = e.Z; + } else if (r > 0) { + e = e.Y; + } else return e; + } + return e; + }; + TreeContainer.prototype.eraseElementByKey = function(e) { + if (!this.o) return; + var i = this.ar(this.rr, e); + if (i === undefined) return; + this.se(i); + }; + TreeContainer.prototype.eraseElementByIterator = function(e) { + var i = e.D; + if (i === this.J) { + throw new RangeError("Invalid iterator"); + } + if (i.Z === undefined) { + e = e.next(); + } + this.se(i); + return e; + }; + TreeContainer.prototype.getHeight = function() { + if (!this.o) return 0; + var traversal = function(e) { + if (!e) return 0; + return Math.max(traversal(e.Y), traversal(e.Z)) + 1; + }; + return traversal(this.rr); + }; + return TreeContainer; +}(Container); + +export default TreeContainer; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.d.ts b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.d.ts new file mode 100644 index 0000000..06d5466 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.d.ts @@ -0,0 +1,42 @@ +import TreeContainer from './Base'; +import TreeIterator from './Base/TreeIterator'; +import { initContainer } from "../ContainerBase"; +export declare class OrderedMapIterator extends TreeIterator { + get pointer(): [K, V]; + copy(): OrderedMapIterator; +} +declare class OrderedMap extends TreeContainer { + /** + * @param container The initialization container. + * @param cmp The compare function. + * @param enableIndex Whether to enable iterator indexing function. + */ + constructor(container?: initContainer<[K, V]>, cmp?: (x: K, y: K) => number, enableIndex?: boolean); + begin(): OrderedMapIterator; + end(): OrderedMapIterator; + rBegin(): OrderedMapIterator; + rEnd(): OrderedMapIterator; + front(): [K, V] | undefined; + back(): [K, V] | undefined; + forEach(callback: (element: [K, V], index: number) => void): void; + lowerBound(_key: K): OrderedMapIterator; + upperBound(_key: K): OrderedMapIterator; + reverseLowerBound(_key: K): OrderedMapIterator; + reverseUpperBound(_key: K): OrderedMapIterator; + /** + * @description Insert a _key-_value pair or set _value by the given _key. + * @param _key The _key want to insert. + * @param _value The _value want to set. + * @param hint You can give an iterator hint to improve insertion efficiency. + */ + setElement(_key: K, _value: V, hint?: OrderedMapIterator): void; + find(_key: K): OrderedMapIterator; + /** + * @description Get the _value of the element of the specified _key. + */ + getElementByKey(_key: K): V | undefined; + getElementByPos(pos: number): [K, V]; + union(other: OrderedMap): void; + [Symbol.iterator](): Generator<[K, V], void, undefined>; +} +export default OrderedMap; diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.js b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.js new file mode 100644 index 0000000..b223414 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedMap.js @@ -0,0 +1,334 @@ +var __extends = this && this.t || function() { + var extendStatics = function(r, e) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(r, e) { + r.__proto__ = e; + } || function(r, e) { + for (var t in e) if (Object.prototype.hasOwnProperty.call(e, t)) r[t] = e[t]; + }; + return extendStatics(r, e); + }; + return function(r, e) { + if (typeof e !== "function" && e !== null) throw new TypeError("Class extends value " + String(e) + " is not a constructor or null"); + extendStatics(r, e); + function __() { + this.constructor = r; + } + r.prototype = e === null ? Object.create(e) : (__.prototype = e.prototype, new __); + }; +}(); + +var __generator = this && this.i || function(r, e) { + var t = { + label: 0, + sent: function() { + if (a[0] & 1) throw a[1]; + return a[1]; + }, + trys: [], + ops: [] + }, n, i, a, o; + return o = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (o[Symbol.iterator] = function() { + return this; + }), o; + function verb(r) { + return function(e) { + return step([ r, e ]); + }; + } + function step(o) { + if (n) throw new TypeError("Generator is already executing."); + while (t) try { + if (n = 1, i && (a = o[0] & 2 ? i["return"] : o[0] ? i["throw"] || ((a = i["return"]) && a.call(i), + 0) : i.next) && !(a = a.call(i, o[1])).done) return a; + if (i = 0, a) o = [ o[0] & 2, a.value ]; + switch (o[0]) { + case 0: + case 1: + a = o; + break; + + case 4: + t.label++; + return { + value: o[1], + done: false + }; + + case 5: + t.label++; + i = o[1]; + o = [ 0 ]; + continue; + + case 7: + o = t.ops.pop(); + t.trys.pop(); + continue; + + default: + if (!(a = t.trys, a = a.length > 0 && a[a.length - 1]) && (o[0] === 6 || o[0] === 2)) { + t = 0; + continue; + } + if (o[0] === 3 && (!a || o[1] > a[0] && o[1] < a[3])) { + t.label = o[1]; + break; + } + if (o[0] === 6 && t.label < a[1]) { + t.label = a[1]; + a = o; + break; + } + if (a && t.label < a[2]) { + t.label = a[2]; + t.ops.push(o); + break; + } + if (a[2]) t.ops.pop(); + t.trys.pop(); + continue; + } + o = e.call(r, t); + } catch (r) { + o = [ 6, r ]; + i = 0; + } finally { + n = a = 0; + } + if (o[0] & 5) throw o[1]; + return { + value: o[0] ? o[1] : void 0, + done: true + }; + } +}; + +var __read = this && this._ || function(r, e) { + var t = typeof Symbol === "function" && r[Symbol.iterator]; + if (!t) return r; + var n = t.call(r), i, a = [], o; + try { + while ((e === void 0 || e-- > 0) && !(i = n.next()).done) a.push(i.value); + } catch (r) { + o = { + error: r + }; + } finally { + try { + if (i && !i.done && (t = n["return"])) t.call(n); + } finally { + if (o) throw o.error; + } + } + return a; +}; + +var __values = this && this.u || function(r) { + var e = typeof Symbol === "function" && Symbol.iterator, t = e && r[e], n = 0; + if (t) return t.call(r); + if (r && typeof r.length === "number") return { + next: function() { + if (r && n >= r.length) r = void 0; + return { + value: r && r[n++], + done: !r + }; + } + }; + throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + +import TreeContainer from "./Base"; + +import TreeIterator from "./Base/TreeIterator"; + +var OrderedMapIterator = function(r) { + __extends(OrderedMapIterator, r); + function OrderedMapIterator() { + return r !== null && r.apply(this, arguments) || this; + } + Object.defineProperty(OrderedMapIterator.prototype, "pointer", { + get: function() { + var r = this; + if (this.D === this.J) { + throw new RangeError("OrderedMap iterator access denied"); + } + return new Proxy([], { + get: function(e, t) { + if (t === "0") return r.D.W; else if (t === "1") return r.D.L; + }, + set: function(e, t, n) { + if (t !== "1") { + throw new TypeError("props must be 1"); + } + r.D.L = n; + return true; + } + }); + }, + enumerable: false, + configurable: true + }); + OrderedMapIterator.prototype.copy = function() { + return new OrderedMapIterator(this.D, this.J, this.iteratorType); + }; + return OrderedMapIterator; +}(TreeIterator); + +export { OrderedMapIterator }; + +var OrderedMap = function(r) { + __extends(OrderedMap, r); + function OrderedMap(e, t, n) { + if (e === void 0) { + e = []; + } + var i = r.call(this, t, n) || this; + i.X = function(r) { + return __generator(this, (function(e) { + switch (e.label) { + case 0: + if (r === undefined) return [ 2 ]; + return [ 5, __values(this.X(r.Y)) ]; + + case 1: + e.sent(); + return [ 4, [ r.W, r.L ] ]; + + case 2: + e.sent(); + return [ 5, __values(this.X(r.Z)) ]; + + case 3: + e.sent(); + return [ 2 ]; + } + })); + }; + e.forEach((function(r) { + var e = __read(r, 2), t = e[0], n = e[1]; + return i.setElement(t, n); + })); + return i; + } + OrderedMap.prototype.begin = function() { + return new OrderedMapIterator(this.J.Y || this.J, this.J); + }; + OrderedMap.prototype.end = function() { + return new OrderedMapIterator(this.J, this.J); + }; + OrderedMap.prototype.rBegin = function() { + return new OrderedMapIterator(this.J.Z || this.J, this.J, 1); + }; + OrderedMap.prototype.rEnd = function() { + return new OrderedMapIterator(this.J, this.J, 1); + }; + OrderedMap.prototype.front = function() { + if (!this.o) return undefined; + var r = this.J.Y; + return [ r.W, r.L ]; + }; + OrderedMap.prototype.back = function() { + if (!this.o) return undefined; + var r = this.J.Z; + return [ r.W, r.L ]; + }; + OrderedMap.prototype.forEach = function(r) { + var e, t; + var n = 0; + try { + for (var i = __values(this), a = i.next(); !a.done; a = i.next()) { + var o = a.value; + r(o, n++); + } + } catch (r) { + e = { + error: r + }; + } finally { + try { + if (a && !a.done && (t = i.return)) t.call(i); + } finally { + if (e) throw e.error; + } + } + }; + OrderedMap.prototype.lowerBound = function(r) { + var e = this.$(this.rr, r); + return new OrderedMapIterator(e, this.J); + }; + OrderedMap.prototype.upperBound = function(r) { + var e = this.er(this.rr, r); + return new OrderedMapIterator(e, this.J); + }; + OrderedMap.prototype.reverseLowerBound = function(r) { + var e = this.tr(this.rr, r); + return new OrderedMapIterator(e, this.J); + }; + OrderedMap.prototype.reverseUpperBound = function(r) { + var e = this.nr(this.rr, r); + return new OrderedMapIterator(e, this.J); + }; + OrderedMap.prototype.setElement = function(r, e, t) { + this.ir(r, e, t); + }; + OrderedMap.prototype.find = function(r) { + var e = this.ar(this.rr, r); + if (e !== undefined) { + return new OrderedMapIterator(e, this.J); + } + return this.end(); + }; + OrderedMap.prototype.getElementByKey = function(r) { + var e = this.ar(this.rr, r); + return e ? e.L : undefined; + }; + OrderedMap.prototype.getElementByPos = function(r) { + var e, t; + if (r < 0 || r > this.o - 1) { + throw new RangeError; + } + var n; + var i = 0; + try { + for (var a = __values(this), o = a.next(); !o.done; o = a.next()) { + var u = o.value; + if (i === r) { + n = u; + break; + } + i += 1; + } + } catch (r) { + e = { + error: r + }; + } finally { + try { + if (o && !o.done && (t = a.return)) t.call(a); + } finally { + if (e) throw e.error; + } + } + return n; + }; + OrderedMap.prototype.union = function(r) { + var e = this; + r.forEach((function(r) { + var t = __read(r, 2), n = t[0], i = t[1]; + return e.setElement(n, i); + })); + }; + OrderedMap.prototype[Symbol.iterator] = function() { + return this.X(this.rr); + }; + return OrderedMap; +}(TreeContainer); + +export default OrderedMap; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.d.ts b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.d.ts new file mode 100644 index 0000000..bd70b71 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.d.ts @@ -0,0 +1,37 @@ +import TreeContainer from './Base'; +import TreeIterator from './Base/TreeIterator'; +import { initContainer } from "../ContainerBase"; +export declare class OrderedSetIterator extends TreeIterator { + get pointer(): K; + copy(): OrderedSetIterator; +} +declare class OrderedSet extends TreeContainer { + /** + * @param container The initialization container. + * @param cmp The compare function. + * @param enableIndex Whether to enable iterator indexing function. + */ + constructor(container?: initContainer, cmp?: (x: K, y: K) => number, enableIndex?: boolean); + begin(): OrderedSetIterator; + end(): OrderedSetIterator; + rBegin(): OrderedSetIterator; + rEnd(): OrderedSetIterator; + front(): K | undefined; + back(): K | undefined; + forEach(callback: (element: K, index: number) => void): void; + getElementByPos(pos: number): K; + /** + * @description Insert element to set. + * @param _key The _key want to insert. + * @param hint You can give an iterator hint to improve insertion efficiency. + */ + insert(_key: K, hint?: OrderedSetIterator): void; + find(element: K): OrderedSetIterator; + lowerBound(_key: K): OrderedSetIterator; + upperBound(_key: K): OrderedSetIterator; + reverseLowerBound(_key: K): OrderedSetIterator; + reverseUpperBound(_key: K): OrderedSetIterator; + union(other: OrderedSet): void; + [Symbol.iterator](): Generator; +} +export default OrderedSet; diff --git a/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.js b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.js new file mode 100644 index 0000000..a4e7936 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/container/TreeContainer/OrderedSet.js @@ -0,0 +1,292 @@ +var __extends = this && this.t || function() { + var extendStatics = function(e, r) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(e, r) { + e.__proto__ = r; + } || function(e, r) { + for (var t in r) if (Object.prototype.hasOwnProperty.call(r, t)) e[t] = r[t]; + }; + return extendStatics(e, r); + }; + return function(e, r) { + if (typeof r !== "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null"); + extendStatics(e, r); + function __() { + this.constructor = e; + } + e.prototype = r === null ? Object.create(r) : (__.prototype = r.prototype, new __); + }; +}(); + +var __generator = this && this.i || function(e, r) { + var t = { + label: 0, + sent: function() { + if (o[0] & 1) throw o[1]; + return o[1]; + }, + trys: [], + ops: [] + }, n, i, o, u; + return u = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (u[Symbol.iterator] = function() { + return this; + }), u; + function verb(e) { + return function(r) { + return step([ e, r ]); + }; + } + function step(u) { + if (n) throw new TypeError("Generator is already executing."); + while (t) try { + if (n = 1, i && (o = u[0] & 2 ? i["return"] : u[0] ? i["throw"] || ((o = i["return"]) && o.call(i), + 0) : i.next) && !(o = o.call(i, u[1])).done) return o; + if (i = 0, o) u = [ u[0] & 2, o.value ]; + switch (u[0]) { + case 0: + case 1: + o = u; + break; + + case 4: + t.label++; + return { + value: u[1], + done: false + }; + + case 5: + t.label++; + i = u[1]; + u = [ 0 ]; + continue; + + case 7: + u = t.ops.pop(); + t.trys.pop(); + continue; + + default: + if (!(o = t.trys, o = o.length > 0 && o[o.length - 1]) && (u[0] === 6 || u[0] === 2)) { + t = 0; + continue; + } + if (u[0] === 3 && (!o || u[1] > o[0] && u[1] < o[3])) { + t.label = u[1]; + break; + } + if (u[0] === 6 && t.label < o[1]) { + t.label = o[1]; + o = u; + break; + } + if (o && t.label < o[2]) { + t.label = o[2]; + t.ops.push(u); + break; + } + if (o[2]) t.ops.pop(); + t.trys.pop(); + continue; + } + u = r.call(e, t); + } catch (e) { + u = [ 6, e ]; + i = 0; + } finally { + n = o = 0; + } + if (u[0] & 5) throw u[1]; + return { + value: u[0] ? u[1] : void 0, + done: true + }; + } +}; + +var __values = this && this.u || function(e) { + var r = typeof Symbol === "function" && Symbol.iterator, t = r && e[r], n = 0; + if (t) return t.call(e); + if (e && typeof e.length === "number") return { + next: function() { + if (e && n >= e.length) e = void 0; + return { + value: e && e[n++], + done: !e + }; + } + }; + throw new TypeError(r ? "Object is not iterable." : "Symbol.iterator is not defined."); +}; + +import TreeContainer from "./Base"; + +import TreeIterator from "./Base/TreeIterator"; + +var OrderedSetIterator = function(e) { + __extends(OrderedSetIterator, e); + function OrderedSetIterator() { + return e !== null && e.apply(this, arguments) || this; + } + Object.defineProperty(OrderedSetIterator.prototype, "pointer", { + get: function() { + if (this.D === this.J) { + throw new RangeError("OrderedSet iterator access denied!"); + } + return this.D.W; + }, + enumerable: false, + configurable: true + }); + OrderedSetIterator.prototype.copy = function() { + return new OrderedSetIterator(this.D, this.J, this.iteratorType); + }; + return OrderedSetIterator; +}(TreeIterator); + +export { OrderedSetIterator }; + +var OrderedSet = function(e) { + __extends(OrderedSet, e); + function OrderedSet(r, t, n) { + if (r === void 0) { + r = []; + } + var i = e.call(this, t, n) || this; + i.X = function(e) { + return __generator(this, (function(r) { + switch (r.label) { + case 0: + if (e === undefined) return [ 2 ]; + return [ 5, __values(this.X(e.Y)) ]; + + case 1: + r.sent(); + return [ 4, e.W ]; + + case 2: + r.sent(); + return [ 5, __values(this.X(e.Z)) ]; + + case 3: + r.sent(); + return [ 2 ]; + } + })); + }; + r.forEach((function(e) { + return i.insert(e); + })); + return i; + } + OrderedSet.prototype.begin = function() { + return new OrderedSetIterator(this.J.Y || this.J, this.J); + }; + OrderedSet.prototype.end = function() { + return new OrderedSetIterator(this.J, this.J); + }; + OrderedSet.prototype.rBegin = function() { + return new OrderedSetIterator(this.J.Z || this.J, this.J, 1); + }; + OrderedSet.prototype.rEnd = function() { + return new OrderedSetIterator(this.J, this.J, 1); + }; + OrderedSet.prototype.front = function() { + return this.J.Y ? this.J.Y.W : undefined; + }; + OrderedSet.prototype.back = function() { + return this.J.Z ? this.J.Z.W : undefined; + }; + OrderedSet.prototype.forEach = function(e) { + var r, t; + var n = 0; + try { + for (var i = __values(this), o = i.next(); !o.done; o = i.next()) { + var u = o.value; + e(u, n++); + } + } catch (e) { + r = { + error: e + }; + } finally { + try { + if (o && !o.done && (t = i.return)) t.call(i); + } finally { + if (r) throw r.error; + } + } + }; + OrderedSet.prototype.getElementByPos = function(e) { + var r, t; + if (e < 0 || e > this.o - 1) { + throw new RangeError; + } + var n; + var i = 0; + try { + for (var o = __values(this), u = o.next(); !u.done; u = o.next()) { + var d = u.value; + if (i === e) { + n = d; + break; + } + i += 1; + } + } catch (e) { + r = { + error: e + }; + } finally { + try { + if (u && !u.done && (t = o.return)) t.call(o); + } finally { + if (r) throw r.error; + } + } + return n; + }; + OrderedSet.prototype.insert = function(e, r) { + this.ir(e, undefined, r); + }; + OrderedSet.prototype.find = function(e) { + var r = this.ar(this.rr, e); + if (r !== undefined) { + return new OrderedSetIterator(r, this.J); + } + return this.end(); + }; + OrderedSet.prototype.lowerBound = function(e) { + var r = this.$(this.rr, e); + return new OrderedSetIterator(r, this.J); + }; + OrderedSet.prototype.upperBound = function(e) { + var r = this.er(this.rr, e); + return new OrderedSetIterator(r, this.J); + }; + OrderedSet.prototype.reverseLowerBound = function(e) { + var r = this.tr(this.rr, e); + return new OrderedSetIterator(r, this.J); + }; + OrderedSet.prototype.reverseUpperBound = function(e) { + var r = this.nr(this.rr, e); + return new OrderedSetIterator(r, this.J); + }; + OrderedSet.prototype.union = function(e) { + var r = this; + e.forEach((function(e) { + return r.insert(e); + })); + }; + OrderedSet.prototype[Symbol.iterator] = function() { + return this.X(this.rr); + }; + return OrderedSet; +}(TreeContainer); + +export default OrderedSet; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/esm/index.d.ts b/node_modules/js-sdsl/dist/esm/index.d.ts new file mode 100644 index 0000000..3683194 --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/index.d.ts @@ -0,0 +1,19 @@ +export { default as Stack } from "./container/OtherContainer/Stack"; +export { default as Queue } from "./container/OtherContainer/Queue"; +export { default as PriorityQueue } from "./container/OtherContainer/PriorityQueue"; +export { default as Vector } from "./container/SequentialContainer/Vector"; +export { default as LinkList } from "./container/SequentialContainer/LinkList"; +export { default as Deque } from "./container/SequentialContainer/Deque"; +export { default as OrderedSet } from "./container/TreeContainer/OrderedSet"; +export { default as OrderedMap } from "./container/TreeContainer/OrderedMap"; +export { default as HashSet } from "./container/HashContainer/HashSet"; +export { default as HashMap } from "./container/HashContainer/HashMap"; +export type { VectorIterator } from "./container/SequentialContainer/Vector"; +export type { LinkListIterator } from "./container/SequentialContainer/LinkList"; +export type { DequeIterator } from "./container/SequentialContainer/Deque"; +export type { OrderedSetIterator } from "./container/TreeContainer/OrderedSet"; +export type { OrderedMapIterator } from "./container/TreeContainer/OrderedMap"; +export type { IteratorType, Container, ContainerIterator } from "./container/ContainerBase"; +export type { default as SequentialContainer } from "./container/SequentialContainer/Base"; +export type { default as TreeContainer } from "./container/TreeContainer/Base"; +export type { default as HashContainer } from "./container/HashContainer/Base"; diff --git a/node_modules/js-sdsl/dist/esm/index.js b/node_modules/js-sdsl/dist/esm/index.js new file mode 100644 index 0000000..1c46fae --- /dev/null +++ b/node_modules/js-sdsl/dist/esm/index.js @@ -0,0 +1,19 @@ +export { default as Stack } from "./container/OtherContainer/Stack"; + +export { default as Queue } from "./container/OtherContainer/Queue"; + +export { default as PriorityQueue } from "./container/OtherContainer/PriorityQueue"; + +export { default as Vector } from "./container/SequentialContainer/Vector"; + +export { default as LinkList } from "./container/SequentialContainer/LinkList"; + +export { default as Deque } from "./container/SequentialContainer/Deque"; + +export { default as OrderedSet } from "./container/TreeContainer/OrderedSet"; + +export { default as OrderedMap } from "./container/TreeContainer/OrderedMap"; + +export { default as HashSet } from "./container/HashContainer/HashSet"; + +export { default as HashMap } from "./container/HashContainer/HashMap"; \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/umd/js-sdsl.js b/node_modules/js-sdsl/dist/umd/js-sdsl.js new file mode 100644 index 0000000..aa070dd --- /dev/null +++ b/node_modules/js-sdsl/dist/umd/js-sdsl.js @@ -0,0 +1,2752 @@ +(function(t, i) { + typeof exports === "object" && typeof module !== "undefined" ? i(exports) : typeof define === "function" && define.amd ? define("sdsl", [ "exports" ], i) : (t = typeof globalThis !== "undefined" ? globalThis : t || self, + i(t.sdsl = {})); +})(this, (function(t) { + "use strict"; + var extendStatics = function(t, i) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(t, i) { + t.__proto__ = i; + } || function(t, i) { + for (var e in i) if (Object.prototype.hasOwnProperty.call(i, e)) t[e] = i[e]; + }; + return extendStatics(t, i); + }; + function __extends(t, i) { + if (typeof i !== "function" && i !== null) throw new TypeError("Class extends value " + String(i) + " is not a constructor or null"); + extendStatics(t, i); + function __() { + this.constructor = t; + } + t.prototype = i === null ? Object.create(i) : (__.prototype = i.prototype, new __); + } + function __generator(t, i) { + var e = { + label: 0, + sent: function() { + if (s[0] & 1) throw s[1]; + return s[1]; + }, + trys: [], + ops: [] + }, r, n, s, h; + return h = { + next: verb(0), + throw: verb(1), + return: verb(2) + }, typeof Symbol === "function" && (h[Symbol.iterator] = function() { + return this; + }), h; + function verb(t) { + return function(i) { + return step([ t, i ]); + }; + } + function step(h) { + if (r) throw new TypeError("Generator is already executing."); + while (e) try { + if (r = 1, n && (s = h[0] & 2 ? n["return"] : h[0] ? n["throw"] || ((s = n["return"]) && s.call(n), + 0) : n.next) && !(s = s.call(n, h[1])).done) return s; + if (n = 0, s) h = [ h[0] & 2, s.value ]; + switch (h[0]) { + case 0: + case 1: + s = h; + break; + + case 4: + e.label++; + return { + value: h[1], + done: false + }; + + case 5: + e.label++; + n = h[1]; + h = [ 0 ]; + continue; + + case 7: + h = e.ops.pop(); + e.trys.pop(); + continue; + + default: + if (!(s = e.trys, s = s.length > 0 && s[s.length - 1]) && (h[0] === 6 || h[0] === 2)) { + e = 0; + continue; + } + if (h[0] === 3 && (!s || h[1] > s[0] && h[1] < s[3])) { + e.label = h[1]; + break; + } + if (h[0] === 6 && e.label < s[1]) { + e.label = s[1]; + s = h; + break; + } + if (s && e.label < s[2]) { + e.label = s[2]; + e.ops.push(h); + break; + } + if (s[2]) e.ops.pop(); + e.trys.pop(); + continue; + } + h = i.call(t, e); + } catch (t) { + h = [ 6, t ]; + n = 0; + } finally { + r = s = 0; + } + if (h[0] & 5) throw h[1]; + return { + value: h[0] ? h[1] : void 0, + done: true + }; + } + } + function __values(t) { + var i = typeof Symbol === "function" && Symbol.iterator, e = i && t[i], r = 0; + if (e) return e.call(t); + if (t && typeof t.length === "number") return { + next: function() { + if (t && r >= t.length) t = void 0; + return { + value: t && t[r++], + done: !t + }; + } + }; + throw new TypeError(i ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + function __read(t, i) { + var e = typeof Symbol === "function" && t[Symbol.iterator]; + if (!e) return t; + var r = e.call(t), n, s = [], h; + try { + while ((i === void 0 || i-- > 0) && !(n = r.next()).done) s.push(n.value); + } catch (t) { + h = { + error: t + }; + } finally { + try { + if (n && !n.done && (e = r["return"])) e.call(r); + } finally { + if (h) throw h.error; + } + } + return s; + } + function __spreadArray(t, i, e) { + if (e || arguments.length === 2) for (var r = 0, n = i.length, s; r < n; r++) { + if (s || !(r in i)) { + if (!s) s = Array.prototype.slice.call(i, 0, r); + s[r] = i[r]; + } + } + return t.concat(s || Array.prototype.slice.call(i)); + } + var i = function() { + function ContainerIterator(t) { + if (t === void 0) { + t = 0; + } + this.iteratorType = t; + } + return ContainerIterator; + }(); + var e = function() { + function Base() { + this.t = 0; + } + Base.prototype.size = function() { + return this.t; + }; + Base.prototype.empty = function() { + return this.t === 0; + }; + return Base; + }(); + var r = function(t) { + __extends(Container, t); + function Container() { + return t !== null && t.apply(this, arguments) || this; + } + return Container; + }(e); + var n = function(t) { + __extends(Stack, t); + function Stack(i) { + if (i === void 0) { + i = []; + } + var e = t.call(this) || this; + e.i = []; + i.forEach((function(t) { + return e.push(t); + })); + return e; + } + Stack.prototype.clear = function() { + this.t = 0; + this.i.length = 0; + }; + Stack.prototype.push = function(t) { + this.i.push(t); + this.t += 1; + }; + Stack.prototype.pop = function() { + this.i.pop(); + if (this.t > 0) this.t -= 1; + }; + Stack.prototype.top = function() { + return this.i[this.t - 1]; + }; + return Stack; + }(e); + var s = function(t) { + __extends(SequentialContainer, t); + function SequentialContainer() { + return t !== null && t.apply(this, arguments) || this; + } + return SequentialContainer; + }(r); + var h = function(t) { + __extends(RandomIterator, t); + function RandomIterator(i, e, r, n, s) { + var h = t.call(this, s) || this; + h.h = i; + h.u = e; + h.o = r; + h.v = n; + if (h.iteratorType === 0) { + h.pre = function() { + if (this.h === 0) { + throw new RangeError("Random iterator access denied!"); + } + this.h -= 1; + return this; + }; + h.next = function() { + if (this.h === this.u()) { + throw new RangeError("Random Iterator access denied!"); + } + this.h += 1; + return this; + }; + } else { + h.pre = function() { + if (this.h === this.u() - 1) { + throw new RangeError("Random iterator access denied!"); + } + this.h += 1; + return this; + }; + h.next = function() { + if (this.h === -1) { + throw new RangeError("Random iterator access denied!"); + } + this.h -= 1; + return this; + }; + } + return h; + } + Object.defineProperty(RandomIterator.prototype, "pointer", { + get: function() { + return this.o(this.h); + }, + set: function(t) { + this.v(this.h, t); + }, + enumerable: false, + configurable: true + }); + RandomIterator.prototype.equals = function(t) { + return this.h === t.h; + }; + return RandomIterator; + }(i); + var u = function(t) { + __extends(DequeIterator, t); + function DequeIterator() { + return t !== null && t.apply(this, arguments) || this; + } + DequeIterator.prototype.copy = function() { + return new DequeIterator(this.h, this.u, this.o, this.v, this.iteratorType); + }; + return DequeIterator; + }(h); + var f = function(t) { + __extends(Deque, t); + function Deque(i, e) { + if (i === void 0) { + i = []; + } + if (e === void 0) { + e = 1 << 12; + } + var r = t.call(this) || this; + r.l = 0; + r._ = 0; + r.L = 0; + r.p = 0; + r.O = 0; + r.k = []; + var n; + if ("size" in i) { + if (typeof i.size === "number") { + n = i.size; + } else { + n = i.size(); + } + } else if ("length" in i) { + n = i.length; + } else { + throw new RangeError("Can't get container's size!"); + } + r.S = e; + r.O = Math.max(Math.ceil(n / r.S), 1); + for (var s = 0; s < r.O; ++s) { + r.k.push(new Array(r.S)); + } + var h = Math.ceil(n / r.S); + r.l = r.L = (r.O >> 1) - (h >> 1); + r._ = r.p = r.S - n % r.S >> 1; + i.forEach((function(t) { + return r.pushBack(t); + })); + r.size = r.size.bind(r); + r.getElementByPos = r.getElementByPos.bind(r); + r.setElementByPos = r.setElementByPos.bind(r); + return r; + } + Deque.prototype.I = function() { + var t = []; + var i = Math.max(this.O >> 1, 1); + for (var e = 0; e < i; ++e) { + t[e] = new Array(this.S); + } + for (var e = this.l; e < this.O; ++e) { + t[t.length] = this.k[e]; + } + for (var e = 0; e < this.L; ++e) { + t[t.length] = this.k[e]; + } + t[t.length] = __spreadArray([], __read(this.k[this.L]), false); + this.l = i; + this.L = t.length - 1; + for (var e = 0; e < i; ++e) { + t[t.length] = new Array(this.S); + } + this.k = t; + this.O = t.length; + }; + Deque.prototype.g = function(t) { + var i = this._ + t + 1; + var e = i % this.S; + var r = e - 1; + var n = this.l + (i - e) / this.S; + if (e === 0) n -= 1; + n %= this.O; + if (r < 0) r += this.S; + return { + curNodeBucketIndex: n, + curNodePointerIndex: r + }; + }; + Deque.prototype.clear = function() { + this.k = [ [] ]; + this.O = 1; + this.l = this.L = this.t = 0; + this._ = this.p = this.S >> 1; + }; + Deque.prototype.front = function() { + return this.k[this.l][this._]; + }; + Deque.prototype.back = function() { + return this.k[this.L][this.p]; + }; + Deque.prototype.begin = function() { + return new u(0, this.size, this.getElementByPos, this.setElementByPos); + }; + Deque.prototype.end = function() { + return new u(this.t, this.size, this.getElementByPos, this.setElementByPos); + }; + Deque.prototype.rBegin = function() { + return new u(this.t - 1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Deque.prototype.rEnd = function() { + return new u(-1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Deque.prototype.pushBack = function(t) { + if (this.t) { + if (this.p < this.S - 1) { + this.p += 1; + } else if (this.L < this.O - 1) { + this.L += 1; + this.p = 0; + } else { + this.L = 0; + this.p = 0; + } + if (this.L === this.l && this.p === this._) this.I(); + } + this.t += 1; + this.k[this.L][this.p] = t; + }; + Deque.prototype.popBack = function() { + if (!this.t) return; + this.k[this.L][this.p] = undefined; + if (this.t !== 1) { + if (this.p > 0) { + this.p -= 1; + } else if (this.L > 0) { + this.L -= 1; + this.p = this.S - 1; + } else { + this.L = this.O - 1; + this.p = this.S - 1; + } + } + this.t -= 1; + }; + Deque.prototype.pushFront = function(t) { + if (this.t) { + if (this._ > 0) { + this._ -= 1; + } else if (this.l > 0) { + this.l -= 1; + this._ = this.S - 1; + } else { + this.l = this.O - 1; + this._ = this.S - 1; + } + if (this.l === this.L && this._ === this.p) this.I(); + } + this.t += 1; + this.k[this.l][this._] = t; + }; + Deque.prototype.popFront = function() { + if (!this.t) return; + this.k[this.l][this._] = undefined; + if (this.t !== 1) { + if (this._ < this.S - 1) { + this._ += 1; + } else if (this.l < this.O - 1) { + this.l += 1; + this._ = 0; + } else { + this.l = 0; + this._ = 0; + } + } + this.t -= 1; + }; + Deque.prototype.forEach = function(t) { + for (var i = 0; i < this.t; ++i) { + t(this.getElementByPos(i), i); + } + }; + Deque.prototype.getElementByPos = function(t) { + var i = this.g(t), e = i.curNodeBucketIndex, r = i.curNodePointerIndex; + return this.k[e][r]; + }; + Deque.prototype.setElementByPos = function(t, i) { + var e = this.g(t), r = e.curNodeBucketIndex, n = e.curNodePointerIndex; + this.k[r][n] = i; + }; + Deque.prototype.insert = function(t, i, e) { + if (e === void 0) { + e = 1; + } + if (t === 0) { + while (e--) this.pushFront(i); + } else if (t === this.t) { + while (e--) this.pushBack(i); + } else { + var r = []; + for (var n = t; n < this.t; ++n) { + r.push(this.getElementByPos(n)); + } + this.cut(t - 1); + for (var n = 0; n < e; ++n) this.pushBack(i); + for (var n = 0; n < r.length; ++n) this.pushBack(r[n]); + } + }; + Deque.prototype.cut = function(t) { + if (t < 0) { + this.clear(); + return; + } + var i = this.g(t), e = i.curNodeBucketIndex, r = i.curNodePointerIndex; + this.L = e; + this.p = r; + this.t = t + 1; + }; + Deque.prototype.eraseElementByPos = function(t) { + var i = this; + if (t === 0) this.popFront(); else if (t === this.t - 1) this.popBack(); else { + var e = []; + for (var r = t + 1; r < this.t; ++r) { + e.push(this.getElementByPos(r)); + } + this.cut(t); + this.popBack(); + e.forEach((function(t) { + return i.pushBack(t); + })); + } + }; + Deque.prototype.eraseElementByValue = function(t) { + if (!this.t) return; + var i = []; + for (var e = 0; e < this.t; ++e) { + var r = this.getElementByPos(e); + if (r !== t) i.push(r); + } + var n = i.length; + for (var e = 0; e < n; ++e) this.setElementByPos(e, i[e]); + this.cut(n - 1); + }; + Deque.prototype.eraseElementByIterator = function(t) { + var i = t.h; + this.eraseElementByPos(i); + t = t.next(); + return t; + }; + Deque.prototype.find = function(t) { + for (var i = 0; i < this.t; ++i) { + if (this.getElementByPos(i) === t) { + return new u(i, this.size, this.getElementByPos, this.setElementByPos); + } + } + return this.end(); + }; + Deque.prototype.reverse = function() { + var t = 0; + var i = this.t - 1; + while (t < i) { + var e = this.getElementByPos(t); + this.setElementByPos(t, this.getElementByPos(i)); + this.setElementByPos(i, e); + t += 1; + i -= 1; + } + }; + Deque.prototype.unique = function() { + if (this.t <= 1) return; + var t = 1; + var i = this.getElementByPos(0); + for (var e = 1; e < this.t; ++e) { + var r = this.getElementByPos(e); + if (r !== i) { + i = r; + this.setElementByPos(t++, r); + } + } + while (this.t > t) this.popBack(); + }; + Deque.prototype.sort = function(t) { + var i = []; + for (var e = 0; e < this.t; ++e) { + i.push(this.getElementByPos(e)); + } + i.sort(t); + for (var e = 0; e < this.t; ++e) this.setElementByPos(e, i[e]); + }; + Deque.prototype.shrinkToFit = function() { + if (!this.t) return; + var t = []; + this.forEach((function(i) { + return t.push(i); + })); + this.O = Math.max(Math.ceil(this.t / this.S), 1); + this.t = this.l = this.L = this._ = this.p = 0; + this.k = []; + for (var i = 0; i < this.O; ++i) { + this.k.push(new Array(this.S)); + } + for (var i = 0; i < t.length; ++i) this.pushBack(t[i]); + }; + Deque.prototype[Symbol.iterator] = function() { + return function() { + var t; + return __generator(this, (function(i) { + switch (i.label) { + case 0: + t = 0; + i.label = 1; + + case 1: + if (!(t < this.t)) return [ 3, 4 ]; + return [ 4, this.getElementByPos(t) ]; + + case 2: + i.sent(); + i.label = 3; + + case 3: + ++t; + return [ 3, 1 ]; + + case 4: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return Deque; + }(s); + var a = function(t) { + __extends(Queue, t); + function Queue(i) { + if (i === void 0) { + i = []; + } + var e = t.call(this) || this; + e.T = new f(i); + e.t = e.T.size(); + return e; + } + Queue.prototype.clear = function() { + this.T.clear(); + this.t = 0; + }; + Queue.prototype.push = function(t) { + this.T.pushBack(t); + this.t += 1; + }; + Queue.prototype.pop = function() { + this.T.popFront(); + if (this.t) this.t -= 1; + }; + Queue.prototype.front = function() { + return this.T.front(); + }; + return Queue; + }(e); + var o = function(t) { + __extends(PriorityQueue, t); + function PriorityQueue(i, e, r) { + if (i === void 0) { + i = []; + } + if (e === void 0) { + e = function(t, i) { + if (t > i) return -1; + if (t < i) return 1; + return 0; + }; + } + if (r === void 0) { + r = true; + } + var n = t.call(this) || this; + n.M = e; + if (Array.isArray(i)) { + n.q = r ? __spreadArray([], __read(i), false) : i; + } else { + n.q = []; + i.forEach((function(t) { + return n.q.push(t); + })); + } + n.t = n.q.length; + var s = n.t >> 1; + for (var h = n.t - 1 >> 1; h >= 0; --h) { + n.D(h, s); + } + return n; + } + PriorityQueue.prototype.m = function(t) { + var i = this.q[t]; + while (t > 0) { + var e = t - 1 >> 1; + var r = this.q[e]; + if (this.M(r, i) <= 0) break; + this.q[t] = r; + t = e; + } + this.q[t] = i; + }; + PriorityQueue.prototype.D = function(t, i) { + var e = this.q[t]; + while (t < i) { + var r = t << 1 | 1; + var n = r + 1; + var s = this.q[r]; + if (n < this.t && this.M(s, this.q[n]) > 0) { + r = n; + s = this.q[n]; + } + if (this.M(s, e) >= 0) break; + this.q[t] = s; + t = r; + } + this.q[t] = e; + }; + PriorityQueue.prototype.clear = function() { + this.t = 0; + this.q.length = 0; + }; + PriorityQueue.prototype.push = function(t) { + this.q.push(t); + this.m(this.t); + this.t += 1; + }; + PriorityQueue.prototype.pop = function() { + if (!this.t) return; + var t = this.q.pop(); + this.t -= 1; + if (this.t) { + this.q[0] = t; + this.D(0, this.t >> 1); + } + }; + PriorityQueue.prototype.top = function() { + return this.q[0]; + }; + PriorityQueue.prototype.find = function(t) { + return this.q.indexOf(t) >= 0; + }; + PriorityQueue.prototype.remove = function(t) { + var i = this.q.indexOf(t); + if (i < 0) return false; + if (i === 0) { + this.pop(); + } else if (i === this.t - 1) { + this.q.pop(); + this.t -= 1; + } else { + this.q.splice(i, 1, this.q.pop()); + this.t -= 1; + this.m(i); + this.D(i, this.t >> 1); + } + return true; + }; + PriorityQueue.prototype.updateItem = function(t) { + var i = this.q.indexOf(t); + if (i < 0) return false; + this.m(i); + this.D(i, this.t >> 1); + return true; + }; + PriorityQueue.prototype.toArray = function() { + return __spreadArray([], __read(this.q), false); + }; + return PriorityQueue; + }(e); + var c = function(t) { + __extends(VectorIterator, t); + function VectorIterator() { + return t !== null && t.apply(this, arguments) || this; + } + VectorIterator.prototype.copy = function() { + return new VectorIterator(this.h, this.u, this.o, this.v, this.iteratorType); + }; + return VectorIterator; + }(h); + var v = function(t) { + __extends(Vector, t); + function Vector(i, e) { + if (i === void 0) { + i = []; + } + if (e === void 0) { + e = true; + } + var r = t.call(this) || this; + if (Array.isArray(i)) { + r.C = e ? __spreadArray([], __read(i), false) : i; + r.t = i.length; + } else { + r.C = []; + i.forEach((function(t) { + return r.pushBack(t); + })); + } + r.size = r.size.bind(r); + r.getElementByPos = r.getElementByPos.bind(r); + r.setElementByPos = r.setElementByPos.bind(r); + return r; + } + Vector.prototype.clear = function() { + this.t = 0; + this.C.length = 0; + }; + Vector.prototype.begin = function() { + return new c(0, this.size, this.getElementByPos, this.setElementByPos); + }; + Vector.prototype.end = function() { + return new c(this.t, this.size, this.getElementByPos, this.setElementByPos); + }; + Vector.prototype.rBegin = function() { + return new c(this.t - 1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Vector.prototype.rEnd = function() { + return new c(-1, this.size, this.getElementByPos, this.setElementByPos, 1); + }; + Vector.prototype.front = function() { + return this.C[0]; + }; + Vector.prototype.back = function() { + return this.C[this.t - 1]; + }; + Vector.prototype.forEach = function(t) { + for (var i = 0; i < this.t; ++i) { + t(this.C[i], i); + } + }; + Vector.prototype.getElementByPos = function(t) { + return this.C[t]; + }; + Vector.prototype.eraseElementByPos = function(t) { + this.C.splice(t, 1); + this.t -= 1; + }; + Vector.prototype.eraseElementByValue = function(t) { + var i = 0; + for (var e = 0; e < this.t; ++e) { + if (this.C[e] !== t) { + this.C[i++] = this.C[e]; + } + } + this.t = this.C.length = i; + }; + Vector.prototype.eraseElementByIterator = function(t) { + var i = t.h; + t = t.next(); + this.eraseElementByPos(i); + return t; + }; + Vector.prototype.pushBack = function(t) { + this.C.push(t); + this.t += 1; + }; + Vector.prototype.popBack = function() { + if (!this.t) return; + this.C.pop(); + this.t -= 1; + }; + Vector.prototype.setElementByPos = function(t, i) { + this.C[t] = i; + }; + Vector.prototype.insert = function(t, i, e) { + var r; + if (e === void 0) { + e = 1; + } + (r = this.C).splice.apply(r, __spreadArray([ t, 0 ], __read(new Array(e).fill(i)), false)); + this.t += e; + }; + Vector.prototype.find = function(t) { + for (var i = 0; i < this.t; ++i) { + if (this.C[i] === t) { + return new c(i, this.size, this.getElementByPos, this.getElementByPos); + } + } + return this.end(); + }; + Vector.prototype.reverse = function() { + this.C.reverse(); + }; + Vector.prototype.unique = function() { + var t = 1; + for (var i = 1; i < this.t; ++i) { + if (this.C[i] !== this.C[i - 1]) { + this.C[t++] = this.C[i]; + } + } + this.t = this.C.length = t; + }; + Vector.prototype.sort = function(t) { + this.C.sort(t); + }; + Vector.prototype[Symbol.iterator] = function() { + return function() { + return __generator(this, (function(t) { + switch (t.label) { + case 0: + return [ 5, __values(this.C) ]; + + case 1: + return [ 2, t.sent() ]; + } + })); + }.bind(this)(); + }; + return Vector; + }(s); + var d = function() { + function LinkNode(t) { + this.R = undefined; + this.V = undefined; + this.H = undefined; + this.R = t; + } + return LinkNode; + }(); + var l = function(t) { + __extends(LinkListIterator, t); + function LinkListIterator(i, e, r) { + var n = t.call(this, r) || this; + n.h = i; + n.N = e; + if (n.iteratorType === 0) { + n.pre = function() { + if (this.h.V === this.N) { + throw new RangeError("LinkList iterator access denied!"); + } + this.h = this.h.V; + return this; + }; + n.next = function() { + if (this.h === this.N) { + throw new RangeError("LinkList iterator access denied!"); + } + this.h = this.h.H; + return this; + }; + } else { + n.pre = function() { + if (this.h.H === this.N) { + throw new RangeError("LinkList iterator access denied!"); + } + this.h = this.h.H; + return this; + }; + n.next = function() { + if (this.h === this.N) { + throw new RangeError("LinkList iterator access denied!"); + } + this.h = this.h.V; + return this; + }; + } + return n; + } + Object.defineProperty(LinkListIterator.prototype, "pointer", { + get: function() { + if (this.h === this.N) { + throw new RangeError("LinkList iterator access denied!"); + } + return this.h.R; + }, + set: function(t) { + if (this.h === this.N) { + throw new RangeError("LinkList iterator access denied!"); + } + this.h.R = t; + }, + enumerable: false, + configurable: true + }); + LinkListIterator.prototype.equals = function(t) { + return this.h === t.h; + }; + LinkListIterator.prototype.copy = function() { + return new LinkListIterator(this.h, this.N, this.iteratorType); + }; + return LinkListIterator; + }(i); + var w = function(t) { + __extends(LinkList, t); + function LinkList(i) { + if (i === void 0) { + i = []; + } + var e = t.call(this) || this; + e.N = new d; + e.j = undefined; + e.P = undefined; + i.forEach((function(t) { + return e.pushBack(t); + })); + return e; + } + LinkList.prototype.clear = function() { + this.t = 0; + this.j = this.P = undefined; + this.N.V = this.N.H = undefined; + }; + LinkList.prototype.begin = function() { + return new l(this.j || this.N, this.N); + }; + LinkList.prototype.end = function() { + return new l(this.N, this.N); + }; + LinkList.prototype.rBegin = function() { + return new l(this.P || this.N, this.N, 1); + }; + LinkList.prototype.rEnd = function() { + return new l(this.N, this.N, 1); + }; + LinkList.prototype.front = function() { + return this.j ? this.j.R : undefined; + }; + LinkList.prototype.back = function() { + return this.P ? this.P.R : undefined; + }; + LinkList.prototype.forEach = function(t) { + if (!this.t) return; + var i = this.j; + var e = 0; + while (i !== this.N) { + t(i.R, e++); + i = i.H; + } + }; + LinkList.prototype.getElementByPos = function(t) { + var i = this.j; + while (t--) { + i = i.H; + } + return i.R; + }; + LinkList.prototype.eraseElementByPos = function(t) { + if (t === 0) this.popFront(); else if (t === this.t - 1) this.popBack(); else { + var i = this.j; + while (t--) { + i = i.H; + } + i = i; + var e = i.V; + var r = i.H; + r.V = e; + e.H = r; + this.t -= 1; + } + }; + LinkList.prototype.eraseElementByValue = function(t) { + while (this.j && this.j.R === t) this.popFront(); + while (this.P && this.P.R === t) this.popBack(); + if (!this.j) return; + var i = this.j; + while (i !== this.N) { + if (i.R === t) { + var e = i.V; + var r = i.H; + r.V = e; + e.H = r; + this.t -= 1; + } + i = i.H; + } + }; + LinkList.prototype.eraseElementByIterator = function(t) { + var i = t.h; + if (i === this.N) { + throw new RangeError("Invalid iterator"); + } + t = t.next(); + if (this.j === i) this.popFront(); else if (this.P === i) this.popBack(); else { + var e = i.V; + var r = i.H; + r.V = e; + e.H = r; + this.t -= 1; + } + return t; + }; + LinkList.prototype.pushBack = function(t) { + this.t += 1; + var i = new d(t); + if (!this.P) { + this.j = this.P = i; + this.N.H = this.j; + this.j.V = this.N; + } else { + this.P.H = i; + i.V = this.P; + this.P = i; + } + this.P.H = this.N; + this.N.V = this.P; + }; + LinkList.prototype.popBack = function() { + if (!this.P) return; + this.t -= 1; + if (this.j === this.P) { + this.j = this.P = undefined; + this.N.H = undefined; + } else { + this.P = this.P.V; + this.P.H = this.N; + } + this.N.V = this.P; + }; + LinkList.prototype.setElementByPos = function(t, i) { + var e = this.j; + while (t--) { + e = e.H; + } + e.R = i; + }; + LinkList.prototype.insert = function(t, i, e) { + if (e === void 0) { + e = 1; + } + if (e <= 0) return; + if (t === 0) { + while (e--) this.pushFront(i); + } else if (t === this.t) { + while (e--) this.pushBack(i); + } else { + var r = this.j; + for (var n = 1; n < t; ++n) { + r = r.H; + } + var s = r.H; + this.t += e; + while (e--) { + r.H = new d(i); + r.H.V = r; + r = r.H; + } + r.H = s; + s.V = r; + } + }; + LinkList.prototype.find = function(t) { + if (!this.j) return this.end(); + var i = this.j; + while (i !== this.N) { + if (i.R === t) { + return new l(i, this.N); + } + i = i.H; + } + return this.end(); + }; + LinkList.prototype.reverse = function() { + if (this.t <= 1) return; + var t = this.j; + var i = this.P; + var e = 0; + while (e << 1 < this.t) { + var r = t.R; + t.R = i.R; + i.R = r; + t = t.H; + i = i.V; + e += 1; + } + }; + LinkList.prototype.unique = function() { + if (this.t <= 1) return; + var t = this.j; + while (t !== this.N) { + var i = t; + while (i.H && i.R === i.H.R) { + i = i.H; + this.t -= 1; + } + t.H = i.H; + t.H.V = t; + t = t.H; + } + }; + LinkList.prototype.sort = function(t) { + if (this.t <= 1) return; + var i = []; + this.forEach((function(t) { + return i.push(t); + })); + i.sort(t); + var e = this.j; + i.forEach((function(t) { + e.R = t; + e = e.H; + })); + }; + LinkList.prototype.pushFront = function(t) { + this.t += 1; + var i = new d(t); + if (!this.j) { + this.j = this.P = i; + this.P.H = this.N; + this.N.V = this.P; + } else { + i.H = this.j; + this.j.V = i; + this.j = i; + } + this.N.H = this.j; + this.j.V = this.N; + }; + LinkList.prototype.popFront = function() { + if (!this.j) return; + this.t -= 1; + if (this.j === this.P) { + this.j = this.P = undefined; + this.N.V = this.P; + } else { + this.j = this.j.H; + this.j.V = this.N; + } + this.N.H = this.j; + }; + LinkList.prototype.merge = function(t) { + var i = this; + if (!this.j) { + t.forEach((function(t) { + return i.pushBack(t); + })); + return; + } + var e = this.j; + t.forEach((function(t) { + while (e && e !== i.N && e.R <= t) { + e = e.H; + } + if (e === i.N) { + i.pushBack(t); + e = i.P; + } else if (e === i.j) { + i.pushFront(t); + e = i.j; + } else { + i.t += 1; + var r = e.V; + r.H = new d(t); + r.H.V = r; + r.H.H = e; + e.V = r.H; + } + })); + }; + LinkList.prototype[Symbol.iterator] = function() { + return function() { + var t; + return __generator(this, (function(i) { + switch (i.label) { + case 0: + if (!this.j) return [ 2 ]; + t = this.j; + i.label = 1; + + case 1: + if (!(t !== this.N)) return [ 3, 3 ]; + return [ 4, t.R ]; + + case 2: + i.sent(); + t = t.H; + return [ 3, 1 ]; + + case 3: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return LinkList; + }(s); + var _ = function() { + function TreeNode(t, i) { + this.A = 1; + this.B = undefined; + this.R = undefined; + this.G = undefined; + this.J = undefined; + this.F = undefined; + this.B = t; + this.R = i; + } + TreeNode.prototype.pre = function() { + var t = this; + if (t.A === 1 && t.F.F === t) { + t = t.J; + } else if (t.G) { + t = t.G; + while (t.J) { + t = t.J; + } + } else { + var i = t.F; + while (i.G === t) { + t = i; + i = t.F; + } + t = i; + } + return t; + }; + TreeNode.prototype.next = function() { + var t = this; + if (t.J) { + t = t.J; + while (t.G) { + t = t.G; + } + return t; + } else { + var i = t.F; + while (i.J === t) { + t = i; + i = t.F; + } + if (t.J !== i) { + return i; + } else return t; + } + }; + TreeNode.prototype.rotateLeft = function() { + var t = this.F; + var i = this.J; + var e = i.G; + if (t.F === this) t.F = i; else if (t.G === this) t.G = i; else t.J = i; + i.F = t; + i.G = this; + this.F = i; + this.J = e; + if (e) e.F = this; + return i; + }; + TreeNode.prototype.rotateRight = function() { + var t = this.F; + var i = this.G; + var e = i.J; + if (t.F === this) t.F = i; else if (t.G === this) t.G = i; else t.J = i; + i.F = t; + i.J = this; + this.F = i; + this.G = e; + if (e) e.F = this; + return i; + }; + return TreeNode; + }(); + var y = function(t) { + __extends(TreeNodeEnableIndex, t); + function TreeNodeEnableIndex() { + var i = t !== null && t.apply(this, arguments) || this; + i.G = undefined; + i.J = undefined; + i.F = undefined; + i.K = 1; + return i; + } + TreeNodeEnableIndex.prototype.rotateLeft = function() { + var i = t.prototype.rotateLeft.call(this); + this.recount(); + i.recount(); + return i; + }; + TreeNodeEnableIndex.prototype.rotateRight = function() { + var i = t.prototype.rotateRight.call(this); + this.recount(); + i.recount(); + return i; + }; + TreeNodeEnableIndex.prototype.recount = function() { + this.K = 1; + if (this.G) this.K += this.G.K; + if (this.J) this.K += this.J.K; + }; + return TreeNodeEnableIndex; + }(_); + var L = function(t) { + __extends(TreeContainer, t); + function TreeContainer(i, e) { + if (i === void 0) { + i = function(t, i) { + if (t < i) return -1; + if (t > i) return 1; + return 0; + }; + } + if (e === void 0) { + e = false; + } + var r = t.call(this) || this; + r.U = undefined; + r.W = function(t, i) { + if (t === undefined) return false; + var e = r.W(t.G, i); + if (e) return true; + if (i(t)) return true; + return r.W(t.J, i); + }; + r.M = i; + if (e) { + r.X = y; + r.Y = function(t, i, e) { + var r = this.Z(t, i, e); + if (r) { + var n = r.F; + while (n !== this.N) { + n.K += 1; + n = n.F; + } + var s = this.$(r); + if (s) { + var h = s, u = h.parentNode, f = h.grandParent, a = h.curNode; + u.recount(); + f.recount(); + a.recount(); + } + } + }; + r.tt = function(t) { + var i = this.it(t); + while (i !== this.N) { + i.K -= 1; + i = i.F; + } + }; + } else { + r.X = _; + r.Y = function(t, i, e) { + var r = this.Z(t, i, e); + if (r) this.$(r); + }; + r.tt = r.it; + } + r.N = new r.X; + return r; + } + TreeContainer.prototype.et = function(t, i) { + var e; + while (t) { + var r = this.M(t.B, i); + if (r < 0) { + t = t.J; + } else if (r > 0) { + e = t; + t = t.G; + } else return t; + } + return e === undefined ? this.N : e; + }; + TreeContainer.prototype.rt = function(t, i) { + var e; + while (t) { + var r = this.M(t.B, i); + if (r <= 0) { + t = t.J; + } else { + e = t; + t = t.G; + } + } + return e === undefined ? this.N : e; + }; + TreeContainer.prototype.nt = function(t, i) { + var e; + while (t) { + var r = this.M(t.B, i); + if (r < 0) { + e = t; + t = t.J; + } else if (r > 0) { + t = t.G; + } else return t; + } + return e === undefined ? this.N : e; + }; + TreeContainer.prototype.st = function(t, i) { + var e; + while (t) { + var r = this.M(t.B, i); + if (r < 0) { + e = t; + t = t.J; + } else { + t = t.G; + } + } + return e === undefined ? this.N : e; + }; + TreeContainer.prototype.ht = function(t) { + while (true) { + var i = t.F; + if (i === this.N) return; + if (t.A === 1) { + t.A = 0; + return; + } + if (t === i.G) { + var e = i.J; + if (e.A === 1) { + e.A = 0; + i.A = 1; + if (i === this.U) { + this.U = i.rotateLeft(); + } else i.rotateLeft(); + } else { + if (e.J && e.J.A === 1) { + e.A = i.A; + i.A = 0; + e.J.A = 0; + if (i === this.U) { + this.U = i.rotateLeft(); + } else i.rotateLeft(); + return; + } else if (e.G && e.G.A === 1) { + e.A = 1; + e.G.A = 0; + e.rotateRight(); + } else { + e.A = 1; + t = i; + } + } + } else { + var e = i.G; + if (e.A === 1) { + e.A = 0; + i.A = 1; + if (i === this.U) { + this.U = i.rotateRight(); + } else i.rotateRight(); + } else { + if (e.G && e.G.A === 1) { + e.A = i.A; + i.A = 0; + e.G.A = 0; + if (i === this.U) { + this.U = i.rotateRight(); + } else i.rotateRight(); + return; + } else if (e.J && e.J.A === 1) { + e.A = 1; + e.J.A = 0; + e.rotateLeft(); + } else { + e.A = 1; + t = i; + } + } + } + } + }; + TreeContainer.prototype.it = function(t) { + var i, e; + if (this.t === 1) { + this.clear(); + return this.N; + } + var r = t; + while (r.G || r.J) { + if (r.J) { + r = r.J; + while (r.G) r = r.G; + } else { + r = r.G; + } + i = __read([ r.B, t.B ], 2), t.B = i[0], r.B = i[1]; + e = __read([ r.R, t.R ], 2), t.R = e[0], r.R = e[1]; + t = r; + } + if (this.N.G === r) { + this.N.G = r.F; + } else if (this.N.J === r) { + this.N.J = r.F; + } + this.ht(r); + var n = r.F; + if (r === n.G) { + n.G = undefined; + } else n.J = undefined; + this.t -= 1; + this.U.A = 0; + return n; + }; + TreeContainer.prototype.$ = function(t) { + while (true) { + var i = t.F; + if (i.A === 0) return; + var e = i.F; + if (i === e.G) { + var r = e.J; + if (r && r.A === 1) { + r.A = i.A = 0; + if (e === this.U) return; + e.A = 1; + t = e; + continue; + } else if (t === i.J) { + t.A = 0; + if (t.G) t.G.F = i; + if (t.J) t.J.F = e; + i.J = t.G; + e.G = t.J; + t.G = i; + t.J = e; + if (e === this.U) { + this.U = t; + this.N.F = t; + } else { + var n = e.F; + if (n.G === e) { + n.G = t; + } else n.J = t; + } + t.F = e.F; + i.F = t; + e.F = t; + e.A = 1; + return { + parentNode: i, + grandParent: e, + curNode: t + }; + } else { + i.A = 0; + if (e === this.U) { + this.U = e.rotateRight(); + } else e.rotateRight(); + e.A = 1; + } + } else { + var r = e.G; + if (r && r.A === 1) { + r.A = i.A = 0; + if (e === this.U) return; + e.A = 1; + t = e; + continue; + } else if (t === i.G) { + t.A = 0; + if (t.G) t.G.F = e; + if (t.J) t.J.F = i; + e.J = t.G; + i.G = t.J; + t.G = e; + t.J = i; + if (e === this.U) { + this.U = t; + this.N.F = t; + } else { + var n = e.F; + if (n.G === e) { + n.G = t; + } else n.J = t; + } + t.F = e.F; + i.F = t; + e.F = t; + e.A = 1; + return { + parentNode: i, + grandParent: e, + curNode: t + }; + } else { + i.A = 0; + if (e === this.U) { + this.U = e.rotateLeft(); + } else e.rotateLeft(); + e.A = 1; + } + } + return; + } + }; + TreeContainer.prototype.Z = function(t, i, e) { + if (this.U === undefined) { + this.t += 1; + this.U = new this.X(t, i); + this.U.A = 0; + this.U.F = this.N; + this.N.F = this.U; + this.N.G = this.U; + this.N.J = this.U; + return; + } + var r; + var n = this.N.G; + var s = this.M(n.B, t); + if (s === 0) { + n.R = i; + return; + } else if (s > 0) { + n.G = new this.X(t, i); + n.G.F = n; + r = n.G; + this.N.G = r; + } else { + var h = this.N.J; + var u = this.M(h.B, t); + if (u === 0) { + h.R = i; + return; + } else if (u < 0) { + h.J = new this.X(t, i); + h.J.F = h; + r = h.J; + this.N.J = r; + } else { + if (e !== undefined) { + var f = e.h; + if (f !== this.N) { + var a = this.M(f.B, t); + if (a === 0) { + f.R = i; + return; + } else if (a > 0) { + var o = f.pre(); + var c = this.M(o.B, t); + if (c === 0) { + o.R = i; + return; + } else if (c < 0) { + r = new this.X(t, i); + if (o.J === undefined) { + o.J = r; + r.F = o; + } else { + f.G = r; + r.F = f; + } + } + } + } + } + if (r === undefined) { + r = this.U; + while (true) { + var v = this.M(r.B, t); + if (v > 0) { + if (r.G === undefined) { + r.G = new this.X(t, i); + r.G.F = r; + r = r.G; + break; + } + r = r.G; + } else if (v < 0) { + if (r.J === undefined) { + r.J = new this.X(t, i); + r.J.F = r; + r = r.J; + break; + } + r = r.J; + } else { + r.R = i; + return; + } + } + } + } + } + this.t += 1; + return r; + }; + TreeContainer.prototype.clear = function() { + this.t = 0; + this.U = undefined; + this.N.F = undefined; + this.N.G = this.N.J = undefined; + }; + TreeContainer.prototype.updateKeyByIterator = function(t, i) { + var e = t.h; + if (e === this.N) { + throw new TypeError("Invalid iterator!"); + } + if (this.t === 1) { + e.B = i; + return true; + } + if (e === this.N.G) { + if (this.M(e.next().B, i) > 0) { + e.B = i; + return true; + } + return false; + } + if (e === this.N.J) { + if (this.M(e.pre().B, i) < 0) { + e.B = i; + return true; + } + return false; + } + var r = e.pre().B; + if (this.M(r, i) >= 0) return false; + var n = e.next().B; + if (this.M(n, i) <= 0) return false; + e.B = i; + return true; + }; + TreeContainer.prototype.eraseElementByPos = function(t) { + var i = this; + var e = 0; + this.W(this.U, (function(r) { + if (t === e) { + i.tt(r); + return true; + } + e += 1; + return false; + })); + }; + TreeContainer.prototype.ut = function(t, i) { + while (t) { + var e = this.M(t.B, i); + if (e < 0) { + t = t.J; + } else if (e > 0) { + t = t.G; + } else return t; + } + return t; + }; + TreeContainer.prototype.eraseElementByKey = function(t) { + if (!this.t) return; + var i = this.ut(this.U, t); + if (i === undefined) return; + this.tt(i); + }; + TreeContainer.prototype.eraseElementByIterator = function(t) { + var i = t.h; + if (i === this.N) { + throw new RangeError("Invalid iterator"); + } + if (i.J === undefined) { + t = t.next(); + } + this.tt(i); + return t; + }; + TreeContainer.prototype.getHeight = function() { + if (!this.t) return 0; + var traversal = function(t) { + if (!t) return 0; + return Math.max(traversal(t.G), traversal(t.J)) + 1; + }; + return traversal(this.U); + }; + return TreeContainer; + }(r); + var p = function(t) { + __extends(TreeIterator, t); + function TreeIterator(i, e, r) { + var n = t.call(this, r) || this; + n.h = i; + n.N = e; + if (n.iteratorType === 0) { + n.pre = function() { + if (this.h === this.N.G) { + throw new RangeError("Tree iterator access denied!"); + } + this.h = this.h.pre(); + return this; + }; + n.next = function() { + if (this.h === this.N) { + throw new RangeError("Tree iterator access denied!"); + } + this.h = this.h.next(); + return this; + }; + } else { + n.pre = function() { + if (this.h === this.N.J) { + throw new RangeError("Tree iterator access denied!"); + } + this.h = this.h.next(); + return this; + }; + n.next = function() { + if (this.h === this.N) { + throw new RangeError("Tree iterator access denied!"); + } + this.h = this.h.pre(); + return this; + }; + } + return n; + } + Object.defineProperty(TreeIterator.prototype, "index", { + get: function() { + var t = this.h; + var i = this.N.F; + if (t === this.N) { + if (i) { + return i.K - 1; + } + return 0; + } + var e = 0; + if (t.G) { + e += t.G.K; + } + while (t !== i) { + var r = t.F; + if (t === r.J) { + e += 1; + if (r.G) { + e += r.G.K; + } + } + t = r; + } + return e; + }, + enumerable: false, + configurable: true + }); + TreeIterator.prototype.equals = function(t) { + return this.h === t.h; + }; + return TreeIterator; + }(i); + var O = function(t) { + __extends(OrderedSetIterator, t); + function OrderedSetIterator() { + return t !== null && t.apply(this, arguments) || this; + } + Object.defineProperty(OrderedSetIterator.prototype, "pointer", { + get: function() { + if (this.h === this.N) { + throw new RangeError("OrderedSet iterator access denied!"); + } + return this.h.B; + }, + enumerable: false, + configurable: true + }); + OrderedSetIterator.prototype.copy = function() { + return new OrderedSetIterator(this.h, this.N, this.iteratorType); + }; + return OrderedSetIterator; + }(p); + var b = function(t) { + __extends(OrderedSet, t); + function OrderedSet(i, e, r) { + if (i === void 0) { + i = []; + } + var n = t.call(this, e, r) || this; + n.ft = function(t) { + return __generator(this, (function(i) { + switch (i.label) { + case 0: + if (t === undefined) return [ 2 ]; + return [ 5, __values(this.ft(t.G)) ]; + + case 1: + i.sent(); + return [ 4, t.B ]; + + case 2: + i.sent(); + return [ 5, __values(this.ft(t.J)) ]; + + case 3: + i.sent(); + return [ 2 ]; + } + })); + }; + i.forEach((function(t) { + return n.insert(t); + })); + return n; + } + OrderedSet.prototype.begin = function() { + return new O(this.N.G || this.N, this.N); + }; + OrderedSet.prototype.end = function() { + return new O(this.N, this.N); + }; + OrderedSet.prototype.rBegin = function() { + return new O(this.N.J || this.N, this.N, 1); + }; + OrderedSet.prototype.rEnd = function() { + return new O(this.N, this.N, 1); + }; + OrderedSet.prototype.front = function() { + return this.N.G ? this.N.G.B : undefined; + }; + OrderedSet.prototype.back = function() { + return this.N.J ? this.N.J.B : undefined; + }; + OrderedSet.prototype.forEach = function(t) { + var i, e; + var r = 0; + try { + for (var n = __values(this), s = n.next(); !s.done; s = n.next()) { + var h = s.value; + t(h, r++); + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + if (s && !s.done && (e = n.return)) e.call(n); + } finally { + if (i) throw i.error; + } + } + }; + OrderedSet.prototype.getElementByPos = function(t) { + var i, e; + var r; + var n = 0; + try { + for (var s = __values(this), h = s.next(); !h.done; h = s.next()) { + var u = h.value; + if (n === t) { + r = u; + break; + } + n += 1; + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + if (h && !h.done && (e = s.return)) e.call(s); + } finally { + if (i) throw i.error; + } + } + return r; + }; + OrderedSet.prototype.insert = function(t, i) { + this.Y(t, undefined, i); + }; + OrderedSet.prototype.find = function(t) { + var i = this.ut(this.U, t); + if (i !== undefined) { + return new O(i, this.N); + } + return this.end(); + }; + OrderedSet.prototype.lowerBound = function(t) { + var i = this.et(this.U, t); + return new O(i, this.N); + }; + OrderedSet.prototype.upperBound = function(t) { + var i = this.rt(this.U, t); + return new O(i, this.N); + }; + OrderedSet.prototype.reverseLowerBound = function(t) { + var i = this.nt(this.U, t); + return new O(i, this.N); + }; + OrderedSet.prototype.reverseUpperBound = function(t) { + var i = this.st(this.U, t); + return new O(i, this.N); + }; + OrderedSet.prototype.union = function(t) { + var i = this; + t.forEach((function(t) { + return i.insert(t); + })); + }; + OrderedSet.prototype[Symbol.iterator] = function() { + return this.ft(this.U); + }; + return OrderedSet; + }(L); + var k = function(t) { + __extends(OrderedMapIterator, t); + function OrderedMapIterator() { + return t !== null && t.apply(this, arguments) || this; + } + Object.defineProperty(OrderedMapIterator.prototype, "pointer", { + get: function() { + var t = this; + if (this.h === this.N) { + throw new RangeError("OrderedMap iterator access denied"); + } + return new Proxy([], { + get: function(i, e) { + if (e === "0") return t.h.B; else if (e === "1") return t.h.R; + }, + set: function(i, e, r) { + if (e !== "1") { + throw new TypeError("props must be 1"); + } + t.h.R = r; + return true; + } + }); + }, + enumerable: false, + configurable: true + }); + OrderedMapIterator.prototype.copy = function() { + return new OrderedMapIterator(this.h, this.N, this.iteratorType); + }; + return OrderedMapIterator; + }(p); + var S = function(t) { + __extends(OrderedMap, t); + function OrderedMap(i, e, r) { + if (i === void 0) { + i = []; + } + var n = t.call(this, e, r) || this; + n.ft = function(t) { + return __generator(this, (function(i) { + switch (i.label) { + case 0: + if (t === undefined) return [ 2 ]; + return [ 5, __values(this.ft(t.G)) ]; + + case 1: + i.sent(); + return [ 4, [ t.B, t.R ] ]; + + case 2: + i.sent(); + return [ 5, __values(this.ft(t.J)) ]; + + case 3: + i.sent(); + return [ 2 ]; + } + })); + }; + i.forEach((function(t) { + var i = __read(t, 2), e = i[0], r = i[1]; + return n.setElement(e, r); + })); + return n; + } + OrderedMap.prototype.begin = function() { + return new k(this.N.G || this.N, this.N); + }; + OrderedMap.prototype.end = function() { + return new k(this.N, this.N); + }; + OrderedMap.prototype.rBegin = function() { + return new k(this.N.J || this.N, this.N, 1); + }; + OrderedMap.prototype.rEnd = function() { + return new k(this.N, this.N, 1); + }; + OrderedMap.prototype.front = function() { + if (!this.t) return undefined; + var t = this.N.G; + return [ t.B, t.R ]; + }; + OrderedMap.prototype.back = function() { + if (!this.t) return undefined; + var t = this.N.J; + return [ t.B, t.R ]; + }; + OrderedMap.prototype.forEach = function(t) { + var i, e; + var r = 0; + try { + for (var n = __values(this), s = n.next(); !s.done; s = n.next()) { + var h = s.value; + t(h, r++); + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + if (s && !s.done && (e = n.return)) e.call(n); + } finally { + if (i) throw i.error; + } + } + }; + OrderedMap.prototype.lowerBound = function(t) { + var i = this.et(this.U, t); + return new k(i, this.N); + }; + OrderedMap.prototype.upperBound = function(t) { + var i = this.rt(this.U, t); + return new k(i, this.N); + }; + OrderedMap.prototype.reverseLowerBound = function(t) { + var i = this.nt(this.U, t); + return new k(i, this.N); + }; + OrderedMap.prototype.reverseUpperBound = function(t) { + var i = this.st(this.U, t); + return new k(i, this.N); + }; + OrderedMap.prototype.setElement = function(t, i, e) { + this.Y(t, i, e); + }; + OrderedMap.prototype.find = function(t) { + var i = this.ut(this.U, t); + if (i !== undefined) { + return new k(i, this.N); + } + return this.end(); + }; + OrderedMap.prototype.getElementByKey = function(t) { + var i = this.ut(this.U, t); + return i ? i.R : undefined; + }; + OrderedMap.prototype.getElementByPos = function(t) { + var i, e; + var r; + var n = 0; + try { + for (var s = __values(this), h = s.next(); !h.done; h = s.next()) { + var u = h.value; + if (n === t) { + r = u; + break; + } + n += 1; + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + if (h && !h.done && (e = s.return)) e.call(s); + } finally { + if (i) throw i.error; + } + } + return r; + }; + OrderedMap.prototype.union = function(t) { + var i = this; + t.forEach((function(t) { + var e = __read(t, 2), r = e[0], n = e[1]; + return i.setElement(r, n); + })); + }; + OrderedMap.prototype[Symbol.iterator] = function() { + return this.ft(this.U); + }; + return OrderedMap; + }(L); + var I = function(t) { + __extends(HashContainer, t); + function HashContainer(i, e) { + if (i === void 0) { + i = 16; + } + if (e === void 0) { + e = function(t) { + var i; + if (typeof t !== "string") { + i = JSON.stringify(t); + } else i = t; + var e = 0; + var r = i.length; + for (var n = 0; n < r; n++) { + var s = i.charCodeAt(n); + e = (e << 5) - e + s; + e |= 0; + } + return e >>> 0; + }; + } + var r = t.call(this) || this; + if (i < 16 || (i & i - 1) !== 0) { + throw new RangeError("InitBucketNum range error"); + } + r.O = r.ot = i; + r.ct = e; + return r; + } + HashContainer.prototype.clear = function() { + this.t = 0; + this.O = this.ot; + this.vt = []; + }; + return HashContainer; + }(e); + var g = function(t) { + __extends(HashSet, t); + function HashSet(i, e, r) { + if (i === void 0) { + i = []; + } + var n = t.call(this, e, r) || this; + n.vt = []; + i.forEach((function(t) { + return n.insert(t); + })); + return n; + } + HashSet.prototype.I = function() { + var t = this; + if (this.O >= 1073741824) return; + var i = []; + var e = this.O; + this.O <<= 1; + var r = Object.keys(this.vt); + var n = r.length; + var _loop_1 = function(n) { + var h = parseInt(r[n]); + var u = s.vt[h]; + var f = u.size(); + if (f === 0) return "continue"; + if (f === 1) { + var a = u.front(); + i[s.ct(a) & s.O - 1] = new v([ a ], false); + return "continue"; + } + var o = []; + var c = []; + u.forEach((function(i) { + var r = t.ct(i); + if ((r & e) === 0) { + o.push(i); + } else c.push(i); + })); + if (u instanceof b) { + if (o.length > 6) { + i[h] = new b(o); + } else { + i[h] = new v(o, false); + } + if (c.length > 6) { + i[h + e] = new b(c); + } else { + i[h + e] = new v(c, false); + } + } else { + i[h] = new v(o, false); + i[h + e] = new v(c, false); + } + }; + var s = this; + for (var h = 0; h < n; ++h) { + _loop_1(h); + } + this.vt = i; + }; + HashSet.prototype.forEach = function(t) { + var i = Object.values(this.vt); + var e = i.length; + var r = 0; + for (var n = 0; n < e; ++n) { + i[n].forEach((function(i) { + return t(i, r++); + })); + } + }; + HashSet.prototype.insert = function(t) { + var i = this.ct(t) & this.O - 1; + var e = this.vt[i]; + if (!e) { + this.vt[i] = new v([ t ], false); + this.t += 1; + } else { + var r = e.size(); + if (e instanceof v) { + if (!e.find(t).equals(e.end())) return; + e.pushBack(t); + if (r + 1 >= 8) { + if (this.O <= 64) { + this.t += 1; + this.I(); + return; + } + this.vt[i] = new b(e); + } + this.t += 1; + } else { + e.insert(t); + var n = e.size(); + this.t += n - r; + } + } + if (this.t > this.O * .75) { + this.I(); + } + }; + HashSet.prototype.eraseElementByKey = function(t) { + var i = this.ct(t) & this.O - 1; + var e = this.vt[i]; + if (!e) return; + var r = e.size(); + if (r === 0) return; + if (e instanceof v) { + e.eraseElementByValue(t); + var n = e.size(); + this.t += n - r; + } else { + e.eraseElementByKey(t); + var n = e.size(); + this.t += n - r; + if (n <= 6) { + this.vt[i] = new v(e); + } + } + }; + HashSet.prototype.find = function(t) { + var i = this.ct(t) & this.O - 1; + var e = this.vt[i]; + if (!e) return false; + return !e.find(t).equals(e.end()); + }; + HashSet.prototype[Symbol.iterator] = function() { + return function() { + var t, i, e, r, n, s, h, u; + var f, a; + return __generator(this, (function(o) { + switch (o.label) { + case 0: + t = Object.values(this.vt); + i = t.length; + e = 0; + o.label = 1; + + case 1: + if (!(e < i)) return [ 3, 10 ]; + r = t[e]; + o.label = 2; + + case 2: + o.trys.push([ 2, 7, 8, 9 ]); + n = (f = void 0, __values(r)), s = n.next(); + o.label = 3; + + case 3: + if (!!s.done) return [ 3, 6 ]; + h = s.value; + return [ 4, h ]; + + case 4: + o.sent(); + o.label = 5; + + case 5: + s = n.next(); + return [ 3, 3 ]; + + case 6: + return [ 3, 9 ]; + + case 7: + u = o.sent(); + f = { + error: u + }; + return [ 3, 9 ]; + + case 8: + try { + if (s && !s.done && (a = n.return)) a.call(n); + } finally { + if (f) throw f.error; + } + return [ 7 ]; + + case 9: + ++e; + return [ 3, 1 ]; + + case 10: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return HashSet; + }(I); + var T = function(t) { + __extends(HashMap, t); + function HashMap(i, e, r) { + if (i === void 0) { + i = []; + } + var n = t.call(this, e, r) || this; + n.vt = []; + i.forEach((function(t) { + return n.setElement(t[0], t[1]); + })); + return n; + } + HashMap.prototype.I = function() { + var t = this; + if (this.O >= 1073741824) return; + var i = []; + var e = this.O; + this.O <<= 1; + var r = Object.keys(this.vt); + var n = r.length; + var _loop_1 = function(n) { + var h = parseInt(r[n]); + var u = s.vt[h]; + var f = u.size(); + if (f === 0) return "continue"; + if (f === 1) { + var a = u.front(); + i[s.ct(a[0]) & s.O - 1] = new v([ a ], false); + return "continue"; + } + var o = []; + var c = []; + u.forEach((function(i) { + var r = t.ct(i[0]); + if ((r & e) === 0) { + o.push(i); + } else c.push(i); + })); + if (u instanceof S) { + if (o.length > 6) { + i[h] = new S(o); + } else { + i[h] = new v(o, false); + } + if (c.length > 6) { + i[h + e] = new S(c); + } else { + i[h + e] = new v(c, false); + } + } else { + i[h] = new v(o, false); + i[h + e] = new v(c, false); + } + }; + var s = this; + for (var h = 0; h < n; ++h) { + _loop_1(h); + } + this.vt = i; + }; + HashMap.prototype.forEach = function(t) { + var i = Object.values(this.vt); + var e = i.length; + var r = 0; + for (var n = 0; n < e; ++n) { + i[n].forEach((function(i) { + return t(i, r++); + })); + } + }; + HashMap.prototype.setElement = function(t, i) { + var e, r; + var n = this.ct(t) & this.O - 1; + var s = this.vt[n]; + if (!s) { + this.t += 1; + this.vt[n] = new v([ [ t, i ] ], false); + } else { + var h = s.size(); + if (s instanceof v) { + try { + for (var u = __values(s), f = u.next(); !f.done; f = u.next()) { + var a = f.value; + if (a[0] === t) { + a[1] = i; + return; + } + } + } catch (t) { + e = { + error: t + }; + } finally { + try { + if (f && !f.done && (r = u.return)) r.call(u); + } finally { + if (e) throw e.error; + } + } + s.pushBack([ t, i ]); + if (h + 1 >= 8) { + if (this.O <= 64) { + this.t += 1; + this.I(); + return; + } + this.vt[n] = new S(this.vt[n]); + } + this.t += 1; + } else { + s.setElement(t, i); + var o = s.size(); + this.t += o - h; + } + } + if (this.t > this.O * .75) { + this.I(); + } + }; + HashMap.prototype.getElementByKey = function(t) { + var i, e; + var r = this.ct(t) & this.O - 1; + var n = this.vt[r]; + if (!n) return undefined; + if (n instanceof S) { + return n.getElementByKey(t); + } else { + try { + for (var s = __values(n), h = s.next(); !h.done; h = s.next()) { + var u = h.value; + if (u[0] === t) return u[1]; + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + if (h && !h.done && (e = s.return)) e.call(s); + } finally { + if (i) throw i.error; + } + } + return undefined; + } + }; + HashMap.prototype.eraseElementByKey = function(t) { + var i, e; + var r = this.ct(t) & this.O - 1; + var n = this.vt[r]; + if (!n) return; + if (n instanceof v) { + var s = 0; + try { + for (var h = __values(n), u = h.next(); !u.done; u = h.next()) { + var f = u.value; + if (f[0] === t) { + n.eraseElementByPos(s); + this.t -= 1; + return; + } + s += 1; + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + if (u && !u.done && (e = h.return)) e.call(h); + } finally { + if (i) throw i.error; + } + } + } else { + var a = n.size(); + n.eraseElementByKey(t); + var o = n.size(); + this.t += o - a; + if (o <= 6) { + this.vt[r] = new v(n); + } + } + }; + HashMap.prototype.find = function(t) { + var i, e; + var r = this.ct(t) & this.O - 1; + var n = this.vt[r]; + if (!n) return false; + if (n instanceof S) { + return !n.find(t).equals(n.end()); + } + try { + for (var s = __values(n), h = s.next(); !h.done; h = s.next()) { + var u = h.value; + if (u[0] === t) return true; + } + } catch (t) { + i = { + error: t + }; + } finally { + try { + if (h && !h.done && (e = s.return)) e.call(s); + } finally { + if (i) throw i.error; + } + } + return false; + }; + HashMap.prototype[Symbol.iterator] = function() { + return function() { + var t, i, e, r, n, s, h, u; + var f, a; + return __generator(this, (function(o) { + switch (o.label) { + case 0: + t = Object.values(this.vt); + i = t.length; + e = 0; + o.label = 1; + + case 1: + if (!(e < i)) return [ 3, 10 ]; + r = t[e]; + o.label = 2; + + case 2: + o.trys.push([ 2, 7, 8, 9 ]); + n = (f = void 0, __values(r)), s = n.next(); + o.label = 3; + + case 3: + if (!!s.done) return [ 3, 6 ]; + h = s.value; + return [ 4, h ]; + + case 4: + o.sent(); + o.label = 5; + + case 5: + s = n.next(); + return [ 3, 3 ]; + + case 6: + return [ 3, 9 ]; + + case 7: + u = o.sent(); + f = { + error: u + }; + return [ 3, 9 ]; + + case 8: + try { + if (s && !s.done && (a = n.return)) a.call(n); + } finally { + if (f) throw f.error; + } + return [ 7 ]; + + case 9: + ++e; + return [ 3, 1 ]; + + case 10: + return [ 2 ]; + } + })); + }.bind(this)(); + }; + return HashMap; + }(I); + t.Deque = f; + t.HashMap = T; + t.HashSet = g; + t.LinkList = w; + t.OrderedMap = S; + t.OrderedSet = b; + t.PriorityQueue = o; + t.Queue = a; + t.Stack = n; + t.Vector = v; + Object.defineProperty(t, "dt", { + value: true + }); +})); \ No newline at end of file diff --git a/node_modules/js-sdsl/dist/umd/js-sdsl.min.js b/node_modules/js-sdsl/dist/umd/js-sdsl.min.js new file mode 100644 index 0000000..7836404 --- /dev/null +++ b/node_modules/js-sdsl/dist/umd/js-sdsl.min.js @@ -0,0 +1,2 @@ +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define("sdsl",["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).sdsl={})}(this,function(t){"use strict";var L=function(t,i){return(L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])})(t,i)};function i(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function e(){this.constructor=t}L(t,i),t.prototype=null===i?Object.create(i):(e.prototype=i.prototype,new e)}function a(r,n){var s,o,h,u={label:0,sent:function(){if(1&h[0])throw h[1];return h[1]},trys:[],ops:[]},t={next:i(0),throw:i(1),return:i(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function i(e){return function(t){var i=[e,t];if(s)throw new TypeError("Generator is already executing.");for(;u;)try{if(s=1,o&&(h=2&i[0]?o.return:i[0]?o.throw||((h=o.return)&&h.call(o),0):o.next)&&!(h=h.call(o,i[1])).done)return h;switch(o=0,(i=h?[2&i[0],h.value]:i)[0]){case 0:case 1:h=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,o=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(h=0<(h=u.trys).length&&h[h.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!h||i[1]>h[0]&&i[1]=t.length?void 0:t)&&t[r++],done:!t}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")}function o(t,i){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,n,s=e.call(t),o=[];try{for(;(void 0===i||0>1,1),e=0;e>1},p.prototype.front=function(){return this.k[this.l][this._]},p.prototype.back=function(){return this.k[this.L][this.p]},p.prototype.begin=function(){return new f(0,this.size,this.getElementByPos,this.setElementByPos)},p.prototype.end=function(){return new f(this.t,this.size,this.getElementByPos,this.setElementByPos)},p.prototype.rBegin=function(){return new f(this.t-1,this.size,this.getElementByPos,this.setElementByPos,1)},p.prototype.rEnd=function(){return new f(-1,this.size,this.getElementByPos,this.setElementByPos,1)},p.prototype.pushBack=function(t){this.t&&(this.pt;)this.popBack()}},p.prototype.sort=function(t){for(var i=[],e=0;e>1)-(i>>1),r._=r.p=r.S-e%r.S>>1,t.forEach(function(t){return r.pushBack(t)}),r.size=r.size.bind(r),r.getElementByPos=r.getElementByPos.bind(r),r.setElementByPos=r.setElementByPos.bind(r),r}i(l,Z=e),l.prototype.clear=function(){this.T.clear(),this.t=0},l.prototype.push=function(t){this.T.pushBack(t),this.t+=1},l.prototype.pop=function(){this.T.popFront(),this.t&&--this.t},l.prototype.front=function(){return this.T.front()};var Z,$=l;function l(t){void 0===t&&(t=[]);var i=Z.call(this)||this;return i.T=new Y(t),i.t=i.T.size(),i}i(y,Q=e),y.prototype.m=function(t){for(var i=this.q[t];0>1,r=this.q[e];if(this.M(r,i)<=0)break;this.q[t]=r,t=e}this.q[t]=i},y.prototype.D=function(t,i){for(var e=this.q[t];t>1)))},y.prototype.top=function(){return this.q[0]},y.prototype.find=function(t){return 0<=this.q.indexOf(t)},y.prototype.remove=function(t){t=this.q.indexOf(t);return!(t<0)&&(0===t?this.pop():t===this.t-1?(this.q.pop(),--this.t):(this.q.splice(t,1,this.q.pop()),--this.t,this.m(t),this.D(t,this.t>>1)),!0)},y.prototype.updateItem=function(t){t=this.q.indexOf(t);return!(t<0)&&(this.m(t),this.D(t,this.t>>1),!0)},y.prototype.toArray=function(){return h([],o(this.q),!1)};var Q,tt=y;function y(t,i,e){void 0===t&&(t=[]),void 0===i&&(i=function(t,i){return i>1),s=r.t-1>>1;0<=s;--s)r.D(s,n);return r}i(et,it=K),et.prototype.copy=function(){return new et(this.h,this.u,this.o,this.v,this.iteratorType)};var it,v=et;function et(){return null!==it&&it.apply(this,arguments)||this}i(w,rt=s),w.prototype.clear=function(){this.t=0,this.C.length=0},w.prototype.begin=function(){return new v(0,this.size,this.getElementByPos,this.setElementByPos)},w.prototype.end=function(){return new v(this.t,this.size,this.getElementByPos,this.setElementByPos)},w.prototype.rBegin=function(){return new v(this.t-1,this.size,this.getElementByPos,this.setElementByPos,1)},w.prototype.rEnd=function(){return new v(-1,this.size,this.getElementByPos,this.setElementByPos,1)},w.prototype.front=function(){return this.C[0]},w.prototype.back=function(){return this.C[this.t-1]},w.prototype.forEach=function(t){for(var i=0;i>>0});var e=vt.call(this)||this;if(t<16||0!=(t&t-1))throw new RangeError("InitBucketNum range error");return e.O=e.ot=t,e.ct=i,e}i(H,wt=r),H.prototype.I=function(){var s=this;if(!(1073741824<=this.O)){for(var o=[],h=this.O,u=(this.O<<=1,Object.keys(this.vt)),t=u.length,f=this,i=0;i.75*this.O&&this.I()},H.prototype.eraseElementByKey=function(t){var i,e,r=this.ct(t)&this.O-1,n=this.vt[r];!n||0!==(i=n.size())&&(n instanceof d?(n.eraseElementByValue(t),e=n.size(),this.t+=e-i):(n.eraseElementByKey(t),e=n.size(),this.t+=e-i,e<=6&&(this.vt[r]=new d(n))))},H.prototype.find=function(t){var i=this.ct(t)&this.O-1,i=this.vt[i];return!!i&&!i.find(t).equals(i.end())},H.prototype[Symbol.iterator]=function(){return function(){var i,e,r,n,s,o,h,u,f;return a(this,function(t){switch(t.label){case 0:i=Object.values(this.vt),e=i.length,r=0,t.label=1;case 1:if(!(r.75*this.O&&this.I()},U.prototype.getElementByKey=function(t){var i,e,r=this.ct(t)&this.O-1,r=this.vt[r];if(r){if(r instanceof x)return r.getElementByKey(t);try{for(var n=c(r),s=n.next();!s.done;s=n.next()){var o=s.value;if(o[0]===t)return o[1]}}catch(t){i={error:t}}finally{try{s&&!s.done&&(e=n.return)&&e.call(n)}finally{if(i)throw i.error}}}},U.prototype.eraseElementByKey=function(t){var i=this.ct(t)&this.O-1,e=this.vt[i];if(e)if(e instanceof d){var r=0;try{for(var n=c(e),s=n.next();!s.done;s=n.next()){if(s.value[0]===t)return e.eraseElementByPos(r),void--this.t;r+=1}}catch(t){h={error:t}}finally{try{s&&!s.done&&(o=n.return)&&o.call(n)}finally{if(h)throw h.error}}}else{var o=e.size(),h=(e.eraseElementByKey(t),e.size());this.t+=h-o,h<=6&&(this.vt[i]=new d(e))}},U.prototype.find=function(t){var i,e,r=this.ct(t)&this.O-1,r=this.vt[r];if(r){if(r instanceof x)return!r.find(t).equals(r.end());try{for(var n=c(r),s=n.next();!s.done;s=n.next())if(s.value[0]===t)return!0}catch(t){i={error:t}}finally{try{s&&!s.done&&(e=n.return)&&e.call(n)}finally{if(i)throw i.error}}}return!1},U.prototype[Symbol.iterator]=function(){return function(){var i,e,r,n,s,o,h,u,f;return a(this,function(t){switch(t.label){case 0:i=Object.values(this.vt),e=i.length,r=0,t.label=1;case 1:if(!(r 1%", + "not dead", + "maintained node versions" + ], + "sideEffects": false, + "homepage": "https://js-sdsl.github.io", + "scripts": { + "setup": "rm -rf node_modules && yarn install", + "dev": "ttsc --project tsconfig.dev.json --watch", + "build": "gulp", + "build:cjs": "gulp cjs", + "build:esm": "gulp esm", + "build:umd": "gulp umd", + "build:umd:min": "yarn build:umd && gulp umd:min", + "build:isolate": "gulp isolate", + "test": "yarn test:unit && yarn test:browser && yarn test:performance", + "test:unit": "nyc ts-mocha --paths 'test/**/*.test.ts' --timeout 10000", + "test:browser": "karma start", + "test:performance": "gulp performance && node dist/performance/performance/index.js", + "lint": "eslint --fix --color --cache --max-warnings=0 .", + "generate": "typedoc src/index.ts", + "generate:dev": "typedoc src/index.ts --watch", + "prepare": "husky install" + }, + "lint-staged": { + "*.{js,ts}": [ + "yarn lint" + ] + }, + "devDependencies": { + "@babel/core": "^7.19.3", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@rollup/plugin-babel": "^5.3.1", + "@types/babel__core": "^7.1.19", + "@types/chai": "^4.3.3", + "@types/delete-empty": "^3.0.2", + "@types/gulp": "^4.0.9", + "@types/gulp-babel": "^6.1.30", + "@types/gulp-filter": "^3.0.34", + "@types/gulp-rename": "^2.0.1", + "@types/gulp-sourcemaps": "^0.0.35", + "@types/gulp-tap": "^1.0.1", + "@types/gulp-terser": "^1.2.1", + "@types/gulp-uglify": "^3.0.7", + "@types/karma": "^6.3.3", + "@types/merge-stream": "^1.1.2", + "@types/mocha": "^9.1.1", + "@types/node": "^17.0.0", + "@typescript-eslint/eslint-plugin": "^5.33.1", + "@typescript-eslint/parser": "^5.33.1", + "all-contributors-cli": "^6.20.0", + "babel-plugin-remove-unused-import": "^2.1.1", + "browserslist": "^4.21.3", + "caniuse-lite": "^1.0.30001380", + "chai": "^4.3.6", + "commitlint": "^17.0.3", + "compare-versions": "^5.0.1", + "conventional-changelog-conventionalcommits": "^5.0.0", + "delete-empty": "^3.0.0", + "eslint": "^8.23.1", + "eslint-plugin-compat": "^4.0.2", + "get-npm-package-version": "^1.1.1", + "gh-pages": "^3.2.3", + "gulp": "^4.0.2", + "gulp-babel": "^8.0.0", + "gulp-clean": "^0.4.0", + "gulp-filter": "^7.0.0", + "gulp-rename": "^2.0.0", + "gulp-rollup-2": "^1.3.1", + "gulp-sourcemaps": "^3.0.0", + "gulp-tap": "^2.0.0", + "gulp-terser": "^2.1.0", + "gulp-typescript": "^5.0.0", + "gulp-uglify": "^3.0.2", + "husky": "^8.0.1", + "karma": "^6.4.1", + "karma-chrome-launcher": "^3.1.1", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", + "karma-requirejs": "^1.1.0", + "karma-typescript": "^5.5.3", + "lint-staged": "^13.0.3", + "merge-stream": "^2.0.0", + "mocha": "^10.0.0", + "nyc": "^15.1.0", + "requirejs": "^2.3.6", + "rollup": "^2.79.1", + "rollup-plugin-typescript2": "^0.33.0", + "ts-macros": "^1.3.3", + "ts-mocha": "^10.0.0", + "ts-node": "^10.9.1", + "ts-transform-paths": "^2.0.3", + "tsconfig-paths": "^4.0.0", + "tslib": "^2.4.0", + "ttypescript": "^1.5.13", + "typedoc": "^0.23.10", + "typedoc-plugin-missing-exports": "^1.0.0", + "typescript": "~4.7.4" + }, + "repository": { + "type": "github", + "url": "https://github.com/js-sdsl/js-sdsl.git" + }, + "license": "MIT", + "files": [ + "dist/cjs", + "dist/esm", + "dist/umd", + "CHANGELOG.md" + ], + "keywords": [ + "data", + "structure", + "data structure", + "rbTree", + "rbtree", + "RBTree", + "red black tree", + "ordered", + "set", + "map", + "ordered map", + "ordered set", + "deque", + "heap", + "priority queue", + "link list", + "LinkList", + "linkedList", + "vector", + "stack", + "queue", + "hash", + "hash set", + "hash map", + "c++", + "stl" + ], + "bugs": { + "email": "951711127@qq.com", + "url": "https://github.com/js-sdsl/js-sdsl/issues" + }, + "dependencies": {} +} diff --git a/node_modules/js-yaml/CHANGELOG.md b/node_modules/js-yaml/CHANGELOG.md new file mode 100644 index 0000000..ff2375e --- /dev/null +++ b/node_modules/js-yaml/CHANGELOG.md @@ -0,0 +1,616 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## [4.1.0] - 2021-04-15 +### Added +- Types are now exported as `yaml.types.XXX`. +- Every type now has `options` property with original arguments kept as they were + (see `yaml.types.int.options` as an example). + +### Changed +- `Schema.extend()` now keeps old type order in case of conflicts + (e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as `abcd` instead of `cbad`). + + +## [4.0.0] - 2021-01-03 +### Changed +- Check [migration guide](migrate_v3_to_v4.md) to see details for all breaking changes. +- Breaking: "unsafe" tags `!!js/function`, `!!js/regexp`, `!!js/undefined` are + moved to [js-yaml-js-types](https://github.com/nodeca/js-yaml-js-types) package. +- Breaking: removed `safe*` functions. Use `load`, `loadAll`, `dump` + instead which are all now safe by default. +- `yaml.DEFAULT_SAFE_SCHEMA` and `yaml.DEFAULT_FULL_SCHEMA` are removed, use + `yaml.DEFAULT_SCHEMA` instead. +- `yaml.Schema.create(schema, tags)` is removed, use `schema.extend(tags)` instead. +- `!!binary` now always mapped to `Uint8Array` on load. +- Reduced nesting of `/lib` folder. +- Parse numbers according to YAML 1.2 instead of YAML 1.1 (`01234` is now decimal, + `0o1234` is octal, `1:23` is parsed as string instead of base60). +- `dump()` no longer quotes `:`, `[`, `]`, `(`, `)` except when necessary, #470, #557. +- Line and column in exceptions are now formatted as `(X:Y)` instead of + `at line X, column Y` (also present in compact format), #332. +- Code snippet created in exceptions now contains multiple lines with line numbers. +- `dump()` now serializes `undefined` as `null` in collections and removes keys with + `undefined` in mappings, #571. +- `dump()` with `skipInvalid=true` now serializes invalid items in collections as null. +- Custom tags starting with `!` are now dumped as `!tag` instead of `!`, #576. +- Custom tags starting with `tag:yaml.org,2002:` are now shorthanded using `!!`, #258. + +### Added +- Added `.mjs` (es modules) support. +- Added `quotingType` and `forceQuotes` options for dumper to configure + string literal style, #290, #529. +- Added `styles: { '!!null': 'empty' }` option for dumper + (serializes `{ foo: null }` as "`foo: `"), #570. +- Added `replacer` option (similar to option in JSON.stringify), #339. +- Custom `Tag` can now handle all tags or multiple tags with the same prefix, #385. + +### Fixed +- Astral characters are no longer encoded by `dump()`, #587. +- "duplicate mapping key" exception now points at the correct column, #452. +- Extra commas in flow collections (e.g. `[foo,,bar]`) now throw an exception + instead of producing null, #321. +- `__proto__` key no longer overrides object prototype, #164. +- Removed `bower.json`. +- Tags are now url-decoded in `load()` and url-encoded in `dump()` + (previously usage of custom non-ascii tags may have led to invalid YAML that can't be parsed). +- Anchors now work correctly with empty nodes, #301. +- Fix incorrect parsing of invalid block mapping syntax, #418. +- Throw an error if block sequence/mapping indent contains a tab, #80. + + +## [3.14.1] - 2020-12-07 +### Security +- Fix possible code execution in (already unsafe) `.load()` (in &anchor). + + +## [3.14.0] - 2020-05-22 +### Changed +- Support `safe/loadAll(input, options)` variant of call. +- CI: drop outdated nodejs versions. +- Dev deps bump. + +### Fixed +- Quote `=` in plain scalars #519. +- Check the node type for `!` tag in case user manually specifies it. +- Verify that there are no null-bytes in input. +- Fix wrong quote position when writing condensed flow, #526. + + +## [3.13.1] - 2019-04-05 +### Security +- Fix possible code execution in (already unsafe) `.load()`, #480. + + +## [3.13.0] - 2019-03-20 +### Security +- Security fix: `safeLoad()` can hang when arrays with nested refs + used as key. Now throws exception for nested arrays. #475. + + +## [3.12.2] - 2019-02-26 +### Fixed +- Fix `noArrayIndent` option for root level, #468. + + +## [3.12.1] - 2019-01-05 +### Added +- Added `noArrayIndent` option, #432. + + +## [3.12.0] - 2018-06-02 +### Changed +- Support arrow functions without a block statement, #421. + + +## [3.11.0] - 2018-03-05 +### Added +- Add arrow functions suport for `!!js/function`. + +### Fixed +- Fix dump in bin/octal/hex formats for negative integers, #399. + + +## [3.10.0] - 2017-09-10 +### Fixed +- Fix `condenseFlow` output (quote keys for sure, instead of spaces), #371, #370. +- Dump astrals as codepoints instead of surrogate pair, #368. + + +## [3.9.1] - 2017-07-08 +### Fixed +- Ensure stack is present for custom errors in node 7.+, #351. + + +## [3.9.0] - 2017-07-08 +### Added +- Add `condenseFlow` option (to create pretty URL query params), #346. + +### Fixed +- Support array return from safeLoadAll/loadAll, #350. + + +## [3.8.4] - 2017-05-08 +### Fixed +- Dumper: prevent space after dash for arrays that wrap, #343. + + +## [3.8.3] - 2017-04-05 +### Fixed +- Should not allow numbers to begin and end with underscore, #335. + + +## [3.8.2] - 2017-03-02 +### Fixed +- Fix `!!float 123` (integers) parse, #333. +- Don't allow leading zeros in floats (except 0, 0.xxx). +- Allow positive exponent without sign in floats. + + +## [3.8.1] - 2017-02-07 +### Changed +- Maintenance: update browserified build. + + +## [3.8.0] - 2017-02-07 +### Fixed +- Fix reported position for `duplicated mapping key` errors. + Now points to block start instead of block end. + (#243, thanks to @shockey). + + +## [3.7.0] - 2016-11-12 +### Added +- Support polymorphism for tags (#300, thanks to @monken). + +### Fixed +- Fix parsing of quotes followed by newlines (#304, thanks to @dplepage). + + +## [3.6.1] - 2016-05-11 +### Fixed +- Fix output cut on a pipe, #286. + + +## [3.6.0] - 2016-04-16 +### Fixed +- Dumper rewrite, fix multiple bugs with trailing `\n`. + Big thanks to @aepsilon! +- Loader: fix leading/trailing newlines in block scalars, @aepsilon. + + +## [3.5.5] - 2016-03-17 +### Fixed +- Date parse fix: don't allow dates with on digit in month and day, #268. + + +## [3.5.4] - 2016-03-09 +### Added +- `noCompatMode` for dumper, to disable quoting YAML 1.1 values. + + +## [3.5.3] - 2016-02-11 +### Changed +- Maintenance release. + + +## [3.5.2] - 2016-01-11 +### Changed +- Maintenance: missed comma in bower config. + + +## [3.5.1] - 2016-01-11 +### Changed +- Removed `inherit` dependency, #239. +- Better browserify workaround for esprima load. +- Demo rewrite. + + +## [3.5.0] - 2016-01-10 +### Fixed +- Dumper. Fold strings only, #217. +- Dumper. `norefs` option, to clone linked objects, #229. +- Loader. Throw a warning for duplicate keys, #166. +- Improved browserify support (mark `esprima` & `Buffer` excluded). + + +## [3.4.6] - 2015-11-26 +### Changed +- Use standalone `inherit` to keep browserified files clear. + + +## [3.4.5] - 2015-11-23 +### Added +- Added `lineWidth` option to dumper. + + +## [3.4.4] - 2015-11-21 +### Fixed +- Fixed floats dump (missed dot for scientific format), #220. +- Allow non-printable characters inside quoted scalars, #192. + + +## [3.4.3] - 2015-10-10 +### Changed +- Maintenance release - deps bump (esprima, argparse). + + +## [3.4.2] - 2015-09-09 +### Fixed +- Fixed serialization of duplicated entries in sequences, #205. + Thanks to @vogelsgesang. + + +## [3.4.1] - 2015-09-05 +### Fixed +- Fixed stacktrace handling in generated errors, for browsers (FF/IE). + + +## [3.4.0] - 2015-08-23 +### Changed +- Don't throw on warnings anymore. Use `onWarning` option to catch. +- Throw error on unknown tags (was warning before). +- Reworked internals of error class. + +### Fixed +- Fixed multiline keys dump, #197. Thanks to @tcr. +- Fixed heading line breaks in some scalars (regression). + + +## [3.3.1] - 2015-05-13 +### Added +- Added `.sortKeys` dumper option, thanks to @rjmunro. + +### Fixed +- Fixed astral characters support, #191. + + +## [3.3.0] - 2015-04-26 +### Changed +- Significantly improved long strings formatting in dumper, thanks to @isaacs. +- Strip BOM if exists. + + +## [3.2.7] - 2015-02-19 +### Changed +- Maintenance release. +- Updated dependencies. +- HISTORY.md -> CHANGELOG.md + + +## [3.2.6] - 2015-02-07 +### Fixed +- Fixed encoding of UTF-16 surrogate pairs. (e.g. "\U0001F431" CAT FACE). +- Fixed demo dates dump (#113, thanks to @Hypercubed). + + +## [3.2.5] - 2014-12-28 +### Fixed +- Fixed resolving of all built-in types on empty nodes. +- Fixed invalid warning on empty lines within quoted scalars and flow collections. +- Fixed bug: Tag on an empty node didn't resolve in some cases. + + +## [3.2.4] - 2014-12-19 +### Fixed +- Fixed resolving of !!null tag on an empty node. + + +## [3.2.3] - 2014-11-08 +### Fixed +- Implemented dumping of objects with circular and cross references. +- Partially fixed aliasing of constructed objects. (see issue #141 for details) + + +## [3.2.2] - 2014-09-07 +### Fixed +- Fixed infinite loop on unindented block scalars. +- Rewritten base64 encode/decode in binary type, to keep code licence clear. + + +## [3.2.1] - 2014-08-24 +### Fixed +- Nothig new. Just fix npm publish error. + + +## [3.2.0] - 2014-08-24 +### Added +- Added input piping support to CLI. + +### Fixed +- Fixed typo, that could cause hand on initial indent (#139). + + +## [3.1.0] - 2014-07-07 +### Changed +- 1.5x-2x speed boost. +- Removed deprecated `require('xxx.yml')` support. +- Significant code cleanup and refactoring. +- Internal API changed. If you used custom types - see updated examples. + Others are not affected. +- Even if the input string has no trailing line break character, + it will be parsed as if it has one. +- Added benchmark scripts. +- Moved bower files to /dist folder +- Bugfixes. + + +## [3.0.2] - 2014-02-27 +### Fixed +- Fixed bug: "constructor" string parsed as `null`. + + +## [3.0.1] - 2013-12-22 +### Fixed +- Fixed parsing of literal scalars. (issue #108) +- Prevented adding unnecessary spaces in object dumps. (issue #68) +- Fixed dumping of objects with very long (> 1024 in length) keys. + + +## [3.0.0] - 2013-12-16 +### Changed +- Refactored code. Changed API for custom types. +- Removed output colors in CLI, dump json by default. +- Removed big dependencies from browser version (esprima, buffer). Load `esprima` manually, if `!!js/function` needed. `!!bin` now returns Array in browser +- AMD support. +- Don't quote dumped strings because of `-` & `?` (if not first char). +- __Deprecated__ loading yaml files via `require()`, as not recommended + behaviour for node. + + +## [2.1.3] - 2013-10-16 +### Fixed +- Fix wrong loading of empty block scalars. + + +## [2.1.2] - 2013-10-07 +### Fixed +- Fix unwanted line breaks in folded scalars. + + +## [2.1.1] - 2013-10-02 +### Fixed +- Dumper now respects deprecated booleans syntax from YAML 1.0/1.1 +- Fixed reader bug in JSON-like sequences/mappings. + + +## [2.1.0] - 2013-06-05 +### Added +- Add standard YAML schemas: Failsafe (`FAILSAFE_SCHEMA`), + JSON (`JSON_SCHEMA`) and Core (`CORE_SCHEMA`). +- Add `skipInvalid` dumper option. + +### Changed +- Rename `DEFAULT_SCHEMA` to `DEFAULT_FULL_SCHEMA` + and `SAFE_SCHEMA` to `DEFAULT_SAFE_SCHEMA`. +- Use `safeLoad` for `require` extension. + +### Fixed +- Bug fix: export `NIL` constant from the public interface. + + +## [2.0.5] - 2013-04-26 +### Security +- Close security issue in !!js/function constructor. + Big thanks to @nealpoole for security audit. + + +## [2.0.4] - 2013-04-08 +### Changed +- Updated .npmignore to reduce package size + + +## [2.0.3] - 2013-02-26 +### Fixed +- Fixed dumping of empty arrays ans objects. ([] and {} instead of null) + + +## [2.0.2] - 2013-02-15 +### Fixed +- Fixed input validation: tabs are printable characters. + + +## [2.0.1] - 2013-02-09 +### Fixed +- Fixed error, when options not passed to function cass + + +## [2.0.0] - 2013-02-09 +### Changed +- Full rewrite. New architecture. Fast one-stage parsing. +- Changed custom types API. +- Added YAML dumper. + + +## [1.0.3] - 2012-11-05 +### Fixed +- Fixed utf-8 files loading. + + +## [1.0.2] - 2012-08-02 +### Fixed +- Pull out hand-written shims. Use ES5-Shims for old browsers support. See #44. +- Fix timstamps incorectly parsed in local time when no time part specified. + + +## [1.0.1] - 2012-07-07 +### Fixed +- Fixes `TypeError: 'undefined' is not an object` under Safari. Thanks Phuong. +- Fix timestamps incorrectly parsed in local time. Thanks @caolan. Closes #46. + + +## [1.0.0] - 2012-07-01 +### Changed +- `y`, `yes`, `n`, `no`, `on`, `off` are not converted to Booleans anymore. + Fixes #42. +- `require(filename)` now returns a single document and throws an Error if + file contains more than one document. +- CLI was merged back from js-yaml.bin + + +## [0.3.7] - 2012-02-28 +### Fixed +- Fix export of `addConstructor()`. Closes #39. + + +## [0.3.6] - 2012-02-22 +### Changed +- Removed AMD parts - too buggy to use. Need help to rewrite from scratch + +### Fixed +- Removed YUI compressor warning (renamed `double` variable). Closes #40. + + +## [0.3.5] - 2012-01-10 +### Fixed +- Workagound for .npmignore fuckup under windows. Thanks to airportyh. + + +## [0.3.4] - 2011-12-24 +### Fixed +- Fixes str[] for oldIEs support. +- Adds better has change support for browserified demo. +- improves compact output of Error. Closes #33. + + +## [0.3.3] - 2011-12-20 +### Added +- adds `compact` stringification of Errors. + +### Changed +- jsyaml executable moved to separate module. + + +## [0.3.2] - 2011-12-16 +### Added +- Added jsyaml executable. +- Added !!js/function support. Closes #12. + +### Fixed +- Fixes ug with block style scalars. Closes #26. +- All sources are passing JSLint now. +- Fixes bug in Safari. Closes #28. +- Fixes bug in Opers. Closes #29. +- Improves browser support. Closes #20. + + +## [0.3.1] - 2011-11-18 +### Added +- Added AMD support for browserified version. +- Added permalinks for online demo YAML snippets. Now we have YPaste service, lol. +- Added !!js/regexp and !!js/undefined types. Partially solves #12. + +### Changed +- Wrapped browserified js-yaml into closure. + +### Fixed +- Fixed the resolvement of non-specific tags. Closes #17. +- Fixed !!set mapping. +- Fixed month parse in dates. Closes #19. + + +## [0.3.0] - 2011-11-09 +### Added +- Added browserified version. Closes #13. +- Added live demo of browserified version. +- Ported some of the PyYAML tests. See #14. + +### Fixed +- Removed JS.Class dependency. Closes #3. +- Fixed timestamp bug when fraction was given. + + +## [0.2.2] - 2011-11-06 +### Fixed +- Fixed crash on docs without ---. Closes #8. +- Fixed multiline string parse +- Fixed tests/comments for using array as key + + +## [0.2.1] - 2011-11-02 +### Fixed +- Fixed short file read (<4k). Closes #9. + + +## [0.2.0] - 2011-11-02 +### Changed +- First public release + + +[4.1.0]: https://github.com/nodeca/js-yaml/compare/4.0.0...4.1.0 +[4.0.0]: https://github.com/nodeca/js-yaml/compare/3.14.0...4.0.0 +[3.14.0]: https://github.com/nodeca/js-yaml/compare/3.13.1...3.14.0 +[3.13.1]: https://github.com/nodeca/js-yaml/compare/3.13.0...3.13.1 +[3.13.0]: https://github.com/nodeca/js-yaml/compare/3.12.2...3.13.0 +[3.12.2]: https://github.com/nodeca/js-yaml/compare/3.12.1...3.12.2 +[3.12.1]: https://github.com/nodeca/js-yaml/compare/3.12.0...3.12.1 +[3.12.0]: https://github.com/nodeca/js-yaml/compare/3.11.0...3.12.0 +[3.11.0]: https://github.com/nodeca/js-yaml/compare/3.10.0...3.11.0 +[3.10.0]: https://github.com/nodeca/js-yaml/compare/3.9.1...3.10.0 +[3.9.1]: https://github.com/nodeca/js-yaml/compare/3.9.0...3.9.1 +[3.9.0]: https://github.com/nodeca/js-yaml/compare/3.8.4...3.9.0 +[3.8.4]: https://github.com/nodeca/js-yaml/compare/3.8.3...3.8.4 +[3.8.3]: https://github.com/nodeca/js-yaml/compare/3.8.2...3.8.3 +[3.8.2]: https://github.com/nodeca/js-yaml/compare/3.8.1...3.8.2 +[3.8.1]: https://github.com/nodeca/js-yaml/compare/3.8.0...3.8.1 +[3.8.0]: https://github.com/nodeca/js-yaml/compare/3.7.0...3.8.0 +[3.7.0]: https://github.com/nodeca/js-yaml/compare/3.6.1...3.7.0 +[3.6.1]: https://github.com/nodeca/js-yaml/compare/3.6.0...3.6.1 +[3.6.0]: https://github.com/nodeca/js-yaml/compare/3.5.5...3.6.0 +[3.5.5]: https://github.com/nodeca/js-yaml/compare/3.5.4...3.5.5 +[3.5.4]: https://github.com/nodeca/js-yaml/compare/3.5.3...3.5.4 +[3.5.3]: https://github.com/nodeca/js-yaml/compare/3.5.2...3.5.3 +[3.5.2]: https://github.com/nodeca/js-yaml/compare/3.5.1...3.5.2 +[3.5.1]: https://github.com/nodeca/js-yaml/compare/3.5.0...3.5.1 +[3.5.0]: https://github.com/nodeca/js-yaml/compare/3.4.6...3.5.0 +[3.4.6]: https://github.com/nodeca/js-yaml/compare/3.4.5...3.4.6 +[3.4.5]: https://github.com/nodeca/js-yaml/compare/3.4.4...3.4.5 +[3.4.4]: https://github.com/nodeca/js-yaml/compare/3.4.3...3.4.4 +[3.4.3]: https://github.com/nodeca/js-yaml/compare/3.4.2...3.4.3 +[3.4.2]: https://github.com/nodeca/js-yaml/compare/3.4.1...3.4.2 +[3.4.1]: https://github.com/nodeca/js-yaml/compare/3.4.0...3.4.1 +[3.4.0]: https://github.com/nodeca/js-yaml/compare/3.3.1...3.4.0 +[3.3.1]: https://github.com/nodeca/js-yaml/compare/3.3.0...3.3.1 +[3.3.0]: https://github.com/nodeca/js-yaml/compare/3.2.7...3.3.0 +[3.2.7]: https://github.com/nodeca/js-yaml/compare/3.2.6...3.2.7 +[3.2.6]: https://github.com/nodeca/js-yaml/compare/3.2.5...3.2.6 +[3.2.5]: https://github.com/nodeca/js-yaml/compare/3.2.4...3.2.5 +[3.2.4]: https://github.com/nodeca/js-yaml/compare/3.2.3...3.2.4 +[3.2.3]: https://github.com/nodeca/js-yaml/compare/3.2.2...3.2.3 +[3.2.2]: https://github.com/nodeca/js-yaml/compare/3.2.1...3.2.2 +[3.2.1]: https://github.com/nodeca/js-yaml/compare/3.2.0...3.2.1 +[3.2.0]: https://github.com/nodeca/js-yaml/compare/3.1.0...3.2.0 +[3.1.0]: https://github.com/nodeca/js-yaml/compare/3.0.2...3.1.0 +[3.0.2]: https://github.com/nodeca/js-yaml/compare/3.0.1...3.0.2 +[3.0.1]: https://github.com/nodeca/js-yaml/compare/3.0.0...3.0.1 +[3.0.0]: https://github.com/nodeca/js-yaml/compare/2.1.3...3.0.0 +[2.1.3]: https://github.com/nodeca/js-yaml/compare/2.1.2...2.1.3 +[2.1.2]: https://github.com/nodeca/js-yaml/compare/2.1.1...2.1.2 +[2.1.1]: https://github.com/nodeca/js-yaml/compare/2.1.0...2.1.1 +[2.1.0]: https://github.com/nodeca/js-yaml/compare/2.0.5...2.1.0 +[2.0.5]: https://github.com/nodeca/js-yaml/compare/2.0.4...2.0.5 +[2.0.4]: https://github.com/nodeca/js-yaml/compare/2.0.3...2.0.4 +[2.0.3]: https://github.com/nodeca/js-yaml/compare/2.0.2...2.0.3 +[2.0.2]: https://github.com/nodeca/js-yaml/compare/2.0.1...2.0.2 +[2.0.1]: https://github.com/nodeca/js-yaml/compare/2.0.0...2.0.1 +[2.0.0]: https://github.com/nodeca/js-yaml/compare/1.0.3...2.0.0 +[1.0.3]: https://github.com/nodeca/js-yaml/compare/1.0.2...1.0.3 +[1.0.2]: https://github.com/nodeca/js-yaml/compare/1.0.1...1.0.2 +[1.0.1]: https://github.com/nodeca/js-yaml/compare/1.0.0...1.0.1 +[1.0.0]: https://github.com/nodeca/js-yaml/compare/0.3.7...1.0.0 +[0.3.7]: https://github.com/nodeca/js-yaml/compare/0.3.6...0.3.7 +[0.3.6]: https://github.com/nodeca/js-yaml/compare/0.3.5...0.3.6 +[0.3.5]: https://github.com/nodeca/js-yaml/compare/0.3.4...0.3.5 +[0.3.4]: https://github.com/nodeca/js-yaml/compare/0.3.3...0.3.4 +[0.3.3]: https://github.com/nodeca/js-yaml/compare/0.3.2...0.3.3 +[0.3.2]: https://github.com/nodeca/js-yaml/compare/0.3.1...0.3.2 +[0.3.1]: https://github.com/nodeca/js-yaml/compare/0.3.0...0.3.1 +[0.3.0]: https://github.com/nodeca/js-yaml/compare/0.2.2...0.3.0 +[0.2.2]: https://github.com/nodeca/js-yaml/compare/0.2.1...0.2.2 +[0.2.1]: https://github.com/nodeca/js-yaml/compare/0.2.0...0.2.1 +[0.2.0]: https://github.com/nodeca/js-yaml/releases/tag/0.2.0 diff --git a/node_modules/js-yaml/LICENSE b/node_modules/js-yaml/LICENSE new file mode 100644 index 0000000..09d3a29 --- /dev/null +++ b/node_modules/js-yaml/LICENSE @@ -0,0 +1,21 @@ +(The MIT License) + +Copyright (C) 2011-2015 by Vitaly Puzrin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/js-yaml/README.md b/node_modules/js-yaml/README.md new file mode 100644 index 0000000..3cbc4bd --- /dev/null +++ b/node_modules/js-yaml/README.md @@ -0,0 +1,246 @@ +JS-YAML - YAML 1.2 parser / writer for JavaScript +================================================= + +[![CI](https://github.com/nodeca/js-yaml/workflows/CI/badge.svg?branch=master)](https://github.com/nodeca/js-yaml/actions) +[![NPM version](https://img.shields.io/npm/v/js-yaml.svg)](https://www.npmjs.org/package/js-yaml) + +__[Online Demo](http://nodeca.github.com/js-yaml/)__ + + +This is an implementation of [YAML](http://yaml.org/), a human-friendly data +serialization language. Started as [PyYAML](http://pyyaml.org/) port, it was +completely rewritten from scratch. Now it's very fast, and supports 1.2 spec. + + +Installation +------------ + +### YAML module for node.js + +``` +npm install js-yaml +``` + + +### CLI executable + +If you want to inspect your YAML files from CLI, install js-yaml globally: + +``` +npm install -g js-yaml +``` + +#### Usage + +``` +usage: js-yaml [-h] [-v] [-c] [-t] file + +Positional arguments: + file File with YAML document(s) + +Optional arguments: + -h, --help Show this help message and exit. + -v, --version Show program's version number and exit. + -c, --compact Display errors in compact mode + -t, --trace Show stack trace on error +``` + + +API +--- + +Here we cover the most 'useful' methods. If you need advanced details (creating +your own tags), see [examples](https://github.com/nodeca/js-yaml/tree/master/examples) +for more info. + +``` javascript +const yaml = require('js-yaml'); +const fs = require('fs'); + +// Get document, or throw exception on error +try { + const doc = yaml.load(fs.readFileSync('/home/ixti/example.yml', 'utf8')); + console.log(doc); +} catch (e) { + console.log(e); +} +``` + + +### load (string [ , options ]) + +Parses `string` as single YAML document. Returns either a +plain object, a string, a number, `null` or `undefined`, or throws `YAMLException` on error. By default, does +not support regexps, functions and undefined. + +options: + +- `filename` _(default: null)_ - string to be used as a file path in + error/warning messages. +- `onWarning` _(default: null)_ - function to call on warning messages. + Loader will call this function with an instance of `YAMLException` for each warning. +- `schema` _(default: `DEFAULT_SCHEMA`)_ - specifies a schema to use. + - `FAILSAFE_SCHEMA` - only strings, arrays and plain objects: + http://www.yaml.org/spec/1.2/spec.html#id2802346 + - `JSON_SCHEMA` - all JSON-supported types: + http://www.yaml.org/spec/1.2/spec.html#id2803231 + - `CORE_SCHEMA` - same as `JSON_SCHEMA`: + http://www.yaml.org/spec/1.2/spec.html#id2804923 + - `DEFAULT_SCHEMA` - all supported YAML types. +- `json` _(default: false)_ - compatibility with JSON.parse behaviour. If true, then duplicate keys in a mapping will override values rather than throwing an error. + +NOTE: This function **does not** understand multi-document sources, it throws +exception on those. + +NOTE: JS-YAML **does not** support schema-specific tag resolution restrictions. +So, the JSON schema is not as strictly defined in the YAML specification. +It allows numbers in any notation, use `Null` and `NULL` as `null`, etc. +The core schema also has no such restrictions. It allows binary notation for integers. + + +### loadAll (string [, iterator] [, options ]) + +Same as `load()`, but understands multi-document sources. Applies +`iterator` to each document if specified, or returns array of documents. + +``` javascript +const yaml = require('js-yaml'); + +yaml.loadAll(data, function (doc) { + console.log(doc); +}); +``` + + +### dump (object [ , options ]) + +Serializes `object` as a YAML document. Uses `DEFAULT_SCHEMA`, so it will +throw an exception if you try to dump regexps or functions. However, you can +disable exceptions by setting the `skipInvalid` option to `true`. + +options: + +- `indent` _(default: 2)_ - indentation width to use (in spaces). +- `noArrayIndent` _(default: false)_ - when true, will not add an indentation level to array elements +- `skipInvalid` _(default: false)_ - do not throw on invalid types (like function + in the safe schema) and skip pairs and single values with such types. +- `flowLevel` _(default: -1)_ - specifies level of nesting, when to switch from + block to flow style for collections. -1 means block style everwhere +- `styles` - "tag" => "style" map. Each tag may have own set of styles. +- `schema` _(default: `DEFAULT_SCHEMA`)_ specifies a schema to use. +- `sortKeys` _(default: `false`)_ - if `true`, sort keys when dumping YAML. If a + function, use the function to sort the keys. +- `lineWidth` _(default: `80`)_ - set max line width. Set `-1` for unlimited width. +- `noRefs` _(default: `false`)_ - if `true`, don't convert duplicate objects into references +- `noCompatMode` _(default: `false`)_ - if `true` don't try to be compatible with older + yaml versions. Currently: don't quote "yes", "no" and so on, as required for YAML 1.1 +- `condenseFlow` _(default: `false`)_ - if `true` flow sequences will be condensed, omitting the space between `a, b`. Eg. `'[a,b]'`, and omitting the space between `key: value` and quoting the key. Eg. `'{"a":b}'` Can be useful when using yaml for pretty URL query params as spaces are %-encoded. +- `quotingType` _(`'` or `"`, default: `'`)_ - strings will be quoted using this quoting style. If you specify single quotes, double quotes will still be used for non-printable characters. +- `forceQuotes` _(default: `false`)_ - if `true`, all non-key strings will be quoted even if they normally don't need to. +- `replacer` - callback `function (key, value)` called recursively on each key/value in source object (see `replacer` docs for `JSON.stringify`). + +The following table show availlable styles (e.g. "canonical", +"binary"...) available for each tag (.e.g. !!null, !!int ...). Yaml +output is shown on the right side after `=>` (default setting) or `->`: + +``` none +!!null + "canonical" -> "~" + "lowercase" => "null" + "uppercase" -> "NULL" + "camelcase" -> "Null" + +!!int + "binary" -> "0b1", "0b101010", "0b1110001111010" + "octal" -> "0o1", "0o52", "0o16172" + "decimal" => "1", "42", "7290" + "hexadecimal" -> "0x1", "0x2A", "0x1C7A" + +!!bool + "lowercase" => "true", "false" + "uppercase" -> "TRUE", "FALSE" + "camelcase" -> "True", "False" + +!!float + "lowercase" => ".nan", '.inf' + "uppercase" -> ".NAN", '.INF' + "camelcase" -> ".NaN", '.Inf' +``` + +Example: + +``` javascript +dump(object, { + 'styles': { + '!!null': 'canonical' // dump null as ~ + }, + 'sortKeys': true // sort object keys +}); +``` + +Supported YAML types +-------------------- + +The list of standard YAML tags and corresponding JavaScript types. See also +[YAML tag discussion](http://pyyaml.org/wiki/YAMLTagDiscussion) and +[YAML types repository](http://yaml.org/type/). + +``` +!!null '' # null +!!bool 'yes' # bool +!!int '3...' # number +!!float '3.14...' # number +!!binary '...base64...' # buffer +!!timestamp 'YYYY-...' # date +!!omap [ ... ] # array of key-value pairs +!!pairs [ ... ] # array or array pairs +!!set { ... } # array of objects with given keys and null values +!!str '...' # string +!!seq [ ... ] # array +!!map { ... } # object +``` + +**JavaScript-specific tags** + +See [js-yaml-js-types](https://github.com/nodeca/js-yaml-js-types) for +extra types. + + +Caveats +------- + +Note, that you use arrays or objects as key in JS-YAML. JS does not allow objects +or arrays as keys, and stringifies (by calling `toString()` method) them at the +moment of adding them. + +``` yaml +--- +? [ foo, bar ] +: - baz +? { foo: bar } +: - baz + - baz +``` + +``` javascript +{ "foo,bar": ["baz"], "[object Object]": ["baz", "baz"] } +``` + +Also, reading of properties on implicit block mapping keys is not supported yet. +So, the following YAML document cannot be loaded. + +``` yaml +&anchor foo: + foo: bar + *anchor: duplicate key + baz: bat + *anchor: duplicate key +``` + + +js-yaml for enterprise +---------------------- + +Available as part of the Tidelift Subscription + +The maintainers of js-yaml and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-js-yaml?utm_source=npm-js-yaml&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/node_modules/js-yaml/bin/js-yaml.js b/node_modules/js-yaml/bin/js-yaml.js new file mode 100755 index 0000000..a182f1a --- /dev/null +++ b/node_modules/js-yaml/bin/js-yaml.js @@ -0,0 +1,126 @@ +#!/usr/bin/env node + + +'use strict'; + +/*eslint-disable no-console*/ + + +var fs = require('fs'); +var argparse = require('argparse'); +var yaml = require('..'); + + +//////////////////////////////////////////////////////////////////////////////// + + +var cli = new argparse.ArgumentParser({ + prog: 'js-yaml', + add_help: true +}); + +cli.add_argument('-v', '--version', { + action: 'version', + version: require('../package.json').version +}); + +cli.add_argument('-c', '--compact', { + help: 'Display errors in compact mode', + action: 'store_true' +}); + +// deprecated (not needed after we removed output colors) +// option suppressed, but not completely removed for compatibility +cli.add_argument('-j', '--to-json', { + help: argparse.SUPPRESS, + dest: 'json', + action: 'store_true' +}); + +cli.add_argument('-t', '--trace', { + help: 'Show stack trace on error', + action: 'store_true' +}); + +cli.add_argument('file', { + help: 'File to read, utf-8 encoded without BOM', + nargs: '?', + default: '-' +}); + + +//////////////////////////////////////////////////////////////////////////////// + + +var options = cli.parse_args(); + + +//////////////////////////////////////////////////////////////////////////////// + +function readFile(filename, encoding, callback) { + if (options.file === '-') { + // read from stdin + + var chunks = []; + + process.stdin.on('data', function (chunk) { + chunks.push(chunk); + }); + + process.stdin.on('end', function () { + return callback(null, Buffer.concat(chunks).toString(encoding)); + }); + } else { + fs.readFile(filename, encoding, callback); + } +} + +readFile(options.file, 'utf8', function (error, input) { + var output, isYaml; + + if (error) { + if (error.code === 'ENOENT') { + console.error('File not found: ' + options.file); + process.exit(2); + } + + console.error( + options.trace && error.stack || + error.message || + String(error)); + + process.exit(1); + } + + try { + output = JSON.parse(input); + isYaml = false; + } catch (err) { + if (err instanceof SyntaxError) { + try { + output = []; + yaml.loadAll(input, function (doc) { output.push(doc); }, {}); + isYaml = true; + + if (output.length === 0) output = null; + else if (output.length === 1) output = output[0]; + + } catch (e) { + if (options.trace && err.stack) console.error(e.stack); + else console.error(e.toString(options.compact)); + + process.exit(1); + } + } else { + console.error( + options.trace && err.stack || + err.message || + String(err)); + + process.exit(1); + } + } + + if (isYaml) console.log(JSON.stringify(output, null, ' ')); + else console.log(yaml.dump(output)); +}); diff --git a/node_modules/js-yaml/dist/js-yaml.js b/node_modules/js-yaml/dist/js-yaml.js new file mode 100644 index 0000000..4cc0ddf --- /dev/null +++ b/node_modules/js-yaml/dist/js-yaml.js @@ -0,0 +1,3874 @@ + +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jsyaml = {})); +}(this, (function (exports) { 'use strict'; + + function isNothing(subject) { + return (typeof subject === 'undefined') || (subject === null); + } + + + function isObject(subject) { + return (typeof subject === 'object') && (subject !== null); + } + + + function toArray(sequence) { + if (Array.isArray(sequence)) return sequence; + else if (isNothing(sequence)) return []; + + return [ sequence ]; + } + + + function extend(target, source) { + var index, length, key, sourceKeys; + + if (source) { + sourceKeys = Object.keys(source); + + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + + return target; + } + + + function repeat(string, count) { + var result = '', cycle; + + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + + return result; + } + + + function isNegativeZero(number) { + return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); + } + + + var isNothing_1 = isNothing; + var isObject_1 = isObject; + var toArray_1 = toArray; + var repeat_1 = repeat; + var isNegativeZero_1 = isNegativeZero; + var extend_1 = extend; + + var common = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 + }; + + // YAML error class. http://stackoverflow.com/questions/8458984 + + + function formatError(exception, compact) { + var where = '', message = exception.reason || '(unknown reason)'; + + if (!exception.mark) return message; + + if (exception.mark.name) { + where += 'in "' + exception.mark.name + '" '; + } + + where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; + + if (!compact && exception.mark.snippet) { + where += '\n\n' + exception.mark.snippet; + } + + return message + ' ' + where; + } + + + function YAMLException$1(reason, mark) { + // Super constructor + Error.call(this); + + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; + } + } + + + // Inherit from Error + YAMLException$1.prototype = Object.create(Error.prototype); + YAMLException$1.prototype.constructor = YAMLException$1; + + + YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ': ' + formatError(this, compact); + }; + + + var exception = YAMLException$1; + + // get snippet for a single line, respecting maxLength + function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ''; + var tail = ''; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + + if (position - lineStart > maxHalfLength) { + head = ' ... '; + lineStart = position - maxHalfLength + head.length; + } + + if (lineEnd - position > maxHalfLength) { + tail = ' ...'; + lineEnd = position + maxHalfLength - tail.length; + } + + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, + pos: position - lineStart + head.length // relative position + }; + } + + + function padStart(string, max) { + return common.repeat(' ', max - string.length) + string; + } + + + function makeSnippet(mark, options) { + options = Object.create(options || null); + + if (!mark.buffer) return null; + + if (!options.maxLength) options.maxLength = 79; + if (typeof options.indent !== 'number') options.indent = 1; + if (typeof options.linesBefore !== 'number') options.linesBefore = 3; + if (typeof options.linesAfter !== 'number') options.linesAfter = 2; + + var re = /\r?\n|\r|\0/g; + var lineStarts = [ 0 ]; + var lineEnds = []; + var match; + var foundLineNo = -1; + + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + + var result = '', i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n' + result; + } + + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; + + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + } + + return result.replace(/\n$/, ''); + } + + + var snippet = makeSnippet; + + var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' + ]; + + var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' + ]; + + function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; + } + + function Type$1(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.representName = options['representName'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.multi = options['multi'] || false; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } + } + + var type = Type$1; + + /*eslint-disable max-len*/ + + + + + + function compileList(schema, name) { + var result = []; + + schema[name].forEach(function (currentType) { + var newIndex = result.length; + + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi) { + + newIndex = previousIndex; + } + }); + + result[newIndex] = currentType; + }); + + return result; + } + + + function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type); + result.multi['fallback'].push(type); + } else { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; + } + + + function Schema$1(definition) { + return this.extend(definition); + } + + + Schema$1.prototype.extend = function extend(definition) { + var implicit = []; + var explicit = []; + + if (definition instanceof type) { + // Schema.extend(type) + explicit.push(definition); + + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition); + + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) implicit = implicit.concat(definition.implicit); + if (definition.explicit) explicit = explicit.concat(definition.explicit); + + } else { + throw new exception('Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })'); + } + + implicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + if (type$1.loadKind && type$1.loadKind !== 'scalar') { + throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + + if (type$1.multi) { + throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + } + }); + + explicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + }); + + var result = Object.create(Schema$1.prototype); + + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + + return result; + }; + + + var schema = Schema$1; + + var str = new type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } + }); + + var seq = new type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } + }); + + var map = new type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } + }); + + var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] + }); + + function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); + } + + function constructYamlNull() { + return null; + } + + function isNull(object) { + return object === null; + } + + var _null = new type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; }, + empty: function () { return ''; } + }, + defaultStyle: 'lowercase' + }); + + function resolveYamlBoolean(data) { + if (data === null) return false; + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); + } + + function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; + } + + function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; + } + + var bool = new type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' + }); + + function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); + } + + function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); + } + + function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); + } + + function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'o') { + // base 8 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + } + + // base 10 (except 0) + + // value should not start with `_`; + if (ch === '_') return false; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; + + return true; + } + + function constructYamlInteger(data) { + var value = data, sign = 1, ch; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); + } + + return sign * parseInt(value, 10); + } + + function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); + } + + var int = new type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } + }); + + var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + + function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; + } + + function constructYamlFloat(data) { + var value, sign; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + } + return sign * parseFloat(value, 10); + } + + + var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + + function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; + } + + function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); + } + + var float = new type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' + }); + + var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] + }); + + var core = json; + + var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day + + var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + + function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; + } + + function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; + } + + function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); + } + + var timestamp = new type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp + }); + + function resolveYamlMerge(data) { + return data === '<<' || data === null; + } + + var merge = new type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge + }); + + /*eslint-disable no-bitwise*/ + + + + + + // [ 64, 65, 66 ] -> [ padding, CR, LF ] + var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + + function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; + } + + function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + return new Uint8Array(result); + } + + function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; + } + + function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]'; + } + + var binary = new type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary + }); + + var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; + var _toString$2 = Object.prototype.toString; + + function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString$2.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; + } + + function constructYamlOmap(data) { + return data !== null ? data : []; + } + + var omap = new type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap + }); + + var _toString$1 = Object.prototype.toString; + + function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString$1.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; + } + + function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; + } + + var pairs = new type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs + }); + + var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; + + function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; + } + + function constructYamlSet(data) { + return data !== null ? data : {}; + } + + var set = new type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet + }); + + var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] + }); + + /*eslint-disable max-len,no-use-before-define*/ + + + + + + + + var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; + + + var CONTEXT_FLOW_IN = 1; + var CONTEXT_FLOW_OUT = 2; + var CONTEXT_BLOCK_IN = 3; + var CONTEXT_BLOCK_OUT = 4; + + + var CHOMPING_CLIP = 1; + var CHOMPING_STRIP = 2; + var CHOMPING_KEEP = 3; + + + var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; + var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; + var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; + var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; + var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + + function _class(obj) { return Object.prototype.toString.call(obj); } + + function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); + } + + function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); + } + + function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); + } + + function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; + } + + function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; + } + + function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; + } + + function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; + } + + function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; + } + + function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); + } + + var simpleEscapeCheck = new Array(256); // integer, for fast access + var simpleEscapeMap = new Array(256); + for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); + } + + + function State$1(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || _default; + this.onWarning = options['onWarning'] || null; + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false; + + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + + } + + + function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + + mark.snippet = snippet(mark); + + return new exception(message, mark); + } + + function throwError(state, message) { + throw generateError(state, message); + } + + function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } + } + + + var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, 'tag prefix is malformed: ' + prefix); + } + + state.tagMap[handle] = prefix; + } + }; + + + function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } + } + + function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } + } + + function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, + startLine, startLineStart, startPos) { + + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty$1.call(overridableKeys, keyNode) && + _hasOwnProperty$1.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + + return _result; + } + + function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; + } + + function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; + } + + function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; + } + + function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } + } + + + function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; + } + + function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); + } + + function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x22/* " */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); + } + + function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } else if (ch === 0x2C/* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError(state, "expected the node content, but found ','"); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; // Save the current line. + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); + } + + function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; + } + + function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; + } + + function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; + } + + function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; + } + + function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; + } + + function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; + } + + function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (state.tag !== '!') { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; + + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } + } + } + + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } + + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; + } + + function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } + } + + + function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State$1(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; + } + + + function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } + } + + + function load$1(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception('expected a single document in the stream, but found more'); + } + + + var loadAll_1 = loadAll$1; + var load_1 = load$1; + + var loader = { + loadAll: loadAll_1, + load: load_1 + }; + + /*eslint-disable no-use-before-define*/ + + + + + + var _toString = Object.prototype.toString; + var _hasOwnProperty = Object.prototype.hasOwnProperty; + + var CHAR_BOM = 0xFEFF; + var CHAR_TAB = 0x09; /* Tab */ + var CHAR_LINE_FEED = 0x0A; /* LF */ + var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ + var CHAR_SPACE = 0x20; /* Space */ + var CHAR_EXCLAMATION = 0x21; /* ! */ + var CHAR_DOUBLE_QUOTE = 0x22; /* " */ + var CHAR_SHARP = 0x23; /* # */ + var CHAR_PERCENT = 0x25; /* % */ + var CHAR_AMPERSAND = 0x26; /* & */ + var CHAR_SINGLE_QUOTE = 0x27; /* ' */ + var CHAR_ASTERISK = 0x2A; /* * */ + var CHAR_COMMA = 0x2C; /* , */ + var CHAR_MINUS = 0x2D; /* - */ + var CHAR_COLON = 0x3A; /* : */ + var CHAR_EQUALS = 0x3D; /* = */ + var CHAR_GREATER_THAN = 0x3E; /* > */ + var CHAR_QUESTION = 0x3F; /* ? */ + var CHAR_COMMERCIAL_AT = 0x40; /* @ */ + var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ + var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ + var CHAR_GRAVE_ACCENT = 0x60; /* ` */ + var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ + var CHAR_VERTICAL_LINE = 0x7C; /* | */ + var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + + var ESCAPE_SEQUENCES = {}; + + ESCAPE_SEQUENCES[0x00] = '\\0'; + ESCAPE_SEQUENCES[0x07] = '\\a'; + ESCAPE_SEQUENCES[0x08] = '\\b'; + ESCAPE_SEQUENCES[0x09] = '\\t'; + ESCAPE_SEQUENCES[0x0A] = '\\n'; + ESCAPE_SEQUENCES[0x0B] = '\\v'; + ESCAPE_SEQUENCES[0x0C] = '\\f'; + ESCAPE_SEQUENCES[0x0D] = '\\r'; + ESCAPE_SEQUENCES[0x1B] = '\\e'; + ESCAPE_SEQUENCES[0x22] = '\\"'; + ESCAPE_SEQUENCES[0x5C] = '\\\\'; + ESCAPE_SEQUENCES[0x85] = '\\N'; + ESCAPE_SEQUENCES[0xA0] = '\\_'; + ESCAPE_SEQUENCES[0x2028] = '\\L'; + ESCAPE_SEQUENCES[0x2029] = '\\P'; + + var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' + ]; + + var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + + function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; + } + + function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; + } + + + var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; + + function State(options) { + this.schema = options['schema'] || _default; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; + } + + // Indents every line in a string. Empty lines (\n only) are not indented. + function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; + } + + function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); + } + + function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; + } + + // [33] s-white ::= s-space | s-tab + function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; + } + + // Returns true if the character can be printed without escaping. + // From YAML 1.2: "any allowed characters known to be non-printable + // should also be escaped. [However,] This isn’t mandatory" + // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. + function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); + } + + // [34] ns-char ::= nb-char - s-white + // [27] nb-char ::= c-printable - b-char - c-byte-order-mark + // [26] b-char ::= b-line-feed | b-carriage-return + // Including s-white (for some reason, examples doesn't match specs in this aspect) + // ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark + function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; + } + + // [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out + // c = flow-in ⇒ ns-plain-safe-in + // c = block-key ⇒ ns-plain-safe-out + // c = flow-key ⇒ ns-plain-safe-in + // [128] ns-plain-safe-out ::= ns-char + // [129] ns-plain-safe-in ::= ns-char - c-flow-indicator + // [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) + // | ( /* An ns-char preceding */ “#” ) + // | ( “:” /* Followed by an ns-plain-safe(c) */ ) + function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' + } + + // Simplified test for values allowed as the first character in plain style. + function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; + } + + // Simplified test for values allowed as the last character in plain style. + function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON; + } + + // Same as 'string'.codePointAt(pos), but works in older browsers. + function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + } + } + return first; + } + + // Determines whether block indentation indicator is required. + function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); + } + + var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + + // Determines which scalar styles are possible and returns the preferred style. + // lineWidth = -1 => no limit. + // Pre-conditions: str.length > 0. + // Post-conditions: + // STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. + // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). + // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). + function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { + + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + + // Note: line breaking/folding is implemented for only the folded style. + // NB. We drop the last trailing newline (if any) of a returned block scalar + // since the dumper adds its own newline. This always works: + // • No ending newline => unaffected; already using strip "-" chomping. + // • Ending newline => removed then restored. + // Importantly, this keeps the "+" chomp indicator from gaining an extra line. + function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + } + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { + + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new exception('impossible error: invalid scalar style'); + } + }()); + } + + // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. + function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; + } + + // (See the note for writeScalar.) + function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; + } + + // Note: a long line without a suitable break point will exceed the width limit. + // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. + function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } + + return result; + } + + // Greedy line breaking. + // Picks the longest line under the limit each time, + // otherwise settles for the shortest line over the limit. + // NB. More-indented lines *cannot* be folded, as that would add an extra \n. + function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; + } + + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner + } + + // Escapes a double-quoted string. + function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; + + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; + + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } + + return result; + } + + function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { + + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; + } + + function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { + + if (!compact || _result !== '') { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. + } + + function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; + + if (state.condenseFlow) pairBuffer += '"'; + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; + } + + function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new exception('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. + } + + function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; + } + + // Serializes `object` and writes it to global `result`. + // Returns true on success, or false on invalid object. + // + function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type === '[object Undefined]') { + return false; + } else { + if (state.skipInvalid) return false; + throw new exception('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); + + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } + + state.dump = tagStr + ' ' + state.dump; + } + } + + return true; + } + + function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); + } + + function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; + + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } + } + + function dump$1(input, options) { + options = options || {}; + + var state = new State(options); + + if (!state.noRefs) getDuplicateReferences(input, state); + + var value = input; + + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); + } + + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + + return ''; + } + + var dump_1 = dump$1; + + var dumper = { + dump: dump_1 + }; + + function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); + }; + } + + + var Type = type; + var Schema = schema; + var FAILSAFE_SCHEMA = failsafe; + var JSON_SCHEMA = json; + var CORE_SCHEMA = core; + var DEFAULT_SCHEMA = _default; + var load = loader.load; + var loadAll = loader.loadAll; + var dump = dumper.dump; + var YAMLException = exception; + + // Re-export all types in case user wants to create custom schema + var types = { + binary: binary, + float: float, + map: map, + null: _null, + pairs: pairs, + set: set, + timestamp: timestamp, + bool: bool, + int: int, + merge: merge, + omap: omap, + seq: seq, + str: str + }; + + // Removed functions from JS-YAML 3.0.x + var safeLoad = renamed('safeLoad', 'load'); + var safeLoadAll = renamed('safeLoadAll', 'loadAll'); + var safeDump = renamed('safeDump', 'dump'); + + var jsYaml = { + Type: Type, + Schema: Schema, + FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, + JSON_SCHEMA: JSON_SCHEMA, + CORE_SCHEMA: CORE_SCHEMA, + DEFAULT_SCHEMA: DEFAULT_SCHEMA, + load: load, + loadAll: loadAll, + dump: dump, + YAMLException: YAMLException, + types: types, + safeLoad: safeLoad, + safeLoadAll: safeLoadAll, + safeDump: safeDump + }; + + exports.CORE_SCHEMA = CORE_SCHEMA; + exports.DEFAULT_SCHEMA = DEFAULT_SCHEMA; + exports.FAILSAFE_SCHEMA = FAILSAFE_SCHEMA; + exports.JSON_SCHEMA = JSON_SCHEMA; + exports.Schema = Schema; + exports.Type = Type; + exports.YAMLException = YAMLException; + exports.default = jsYaml; + exports.dump = dump; + exports.load = load; + exports.loadAll = loadAll; + exports.safeDump = safeDump; + exports.safeLoad = safeLoad; + exports.safeLoadAll = safeLoadAll; + exports.types = types; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/js-yaml/dist/js-yaml.min.js b/node_modules/js-yaml/dist/js-yaml.min.js new file mode 100644 index 0000000..bdd8eef --- /dev/null +++ b/node_modules/js-yaml/dist/js-yaml.min.js @@ -0,0 +1,2 @@ +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).jsyaml={})}(this,(function(e){"use strict";function t(e){return null==e}var n={isNothing:t,isObject:function(e){return"object"==typeof e&&null!==e},toArray:function(e){return Array.isArray(e)?e:t(e)?[]:[e]},repeat:function(e,t){var n,i="";for(n=0;nl&&(t=i-l+(o=" ... ").length),n-i>l&&(n=i+l-(a=" ...").length),{str:o+e.slice(t,n).replace(/\t/g,"→")+a,pos:i-t+o.length}}function l(e,t){return n.repeat(" ",t-e.length)+e}var c=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var i,r=/\r?\n|\r|\0/g,o=[0],c=[],s=-1;i=r.exec(e.buffer);)c.push(i.index),o.push(i.index+i[0].length),e.position<=i.index&&s<0&&(s=o.length-2);s<0&&(s=o.length-1);var u,p,f="",d=Math.min(e.line+t.linesAfter,c.length).toString().length,h=t.maxLength-(t.indent+d+3);for(u=1;u<=t.linesBefore&&!(s-u<0);u++)p=a(e.buffer,o[s-u],c[s-u],e.position-(o[s]-o[s-u]),h),f=n.repeat(" ",t.indent)+l((e.line-u+1).toString(),d)+" | "+p.str+"\n"+f;for(p=a(e.buffer,o[s],c[s],e.position,h),f+=n.repeat(" ",t.indent)+l((e.line+1).toString(),d)+" | "+p.str+"\n",f+=n.repeat("-",t.indent+d+3+p.pos)+"^\n",u=1;u<=t.linesAfter&&!(s+u>=c.length);u++)p=a(e.buffer,o[s+u],c[s+u],e.position-(o[s]-o[s+u]),h),f+=n.repeat(" ",t.indent)+l((e.line+u+1).toString(),d)+" | "+p.str+"\n";return f.replace(/\n$/,"")},s=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],u=["scalar","sequence","mapping"];var p=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===s.indexOf(t))throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===u.indexOf(this.kind))throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function f(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,i){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=i)})),n[t]=e})),n}function d(e){return this.extend(e)}d.prototype.extend=function(e){var t=[],n=[];if(e instanceof p)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new o("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new o("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var i=Object.create(d.prototype);return i.implicit=(this.implicit||[]).concat(t),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=f(i,"implicit"),i.compiledExplicit=f(i,"explicit"),i.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),x=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var I=/^[-+]?[0-9]+e/;var S=new p("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!x.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var i;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return i=e.toString(10),I.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"}),O=b.extend({implicit:[A,v,C,S]}),j=O,T=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),N=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var F=new p("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==T.exec(e)||null!==N.exec(e))},construct:function(e){var t,n,i,r,o,a,l,c,s=0,u=null;if(null===(t=T.exec(e))&&(t=N.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],l=+t[6],t[7]){for(s=t[7].slice(0,3);s.length<3;)s+="0";s=+s}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(n,i,r,o,a,l,s)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var E=new p("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var L=new p("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i=0,r=e.length,o=M;for(n=0;n64)){if(t<0)return!1;i+=6}return i%8==0},construct:function(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=M,a=0,l=[];for(t=0;t>16&255),l.push(a>>8&255),l.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0===(n=r%4*6)?(l.push(a>>16&255),l.push(a>>8&255),l.push(255&a)):18===n?(l.push(a>>10&255),l.push(a>>2&255)):12===n&&l.push(a>>4&255),new Uint8Array(l)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=M;for(t=0;t>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0===(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}}),_=Object.prototype.hasOwnProperty,D=Object.prototype.toString;var U=new p("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=[],l=e;for(t=0,n=l.length;t>10),56320+(e-65536&1023))}for(var ie=new Array(256),re=new Array(256),oe=0;oe<256;oe++)ie[oe]=te(oe)?1:0,re[oe]=te(oe);function ae(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||K,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function le(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=c(n),new o(t,n)}function ce(e,t){throw le(e,t)}function se(e,t){e.onWarning&&e.onWarning.call(null,le(e,t))}var ue={YAML:function(e,t,n){var i,r,o;null!==e.version&&ce(e,"duplication of %YAML directive"),1!==n.length&&ce(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&ce(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&ce(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&se(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&ce(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],G.test(i)||ce(e,"ill-formed tag handle (first argument) of the TAG directive"),P.call(e.tagMap,i)&&ce(e,'there is a previously declared suffix for "'+i+'" tag handle'),V.test(r)||ce(e,"ill-formed tag prefix (second argument) of the TAG directive");try{r=decodeURIComponent(r)}catch(t){ce(e,"tag prefix is malformed: "+r)}e.tagMap[i]=r}};function pe(e,t,n,i){var r,o,a,l;if(t1&&(e.result+=n.repeat("\n",t-1))}function be(e,t){var n,i,r=e.tag,o=e.anchor,a=[],l=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,ce(e,"tab characters must not be used in indentation")),45===i)&&z(e.input.charCodeAt(e.position+1));)if(l=!0,e.position++,ge(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,we(e,t,3,!1,!0),a.push(e.result),ge(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)ce(e,"bad indentation of a sequence entry");else if(e.lineIndentt?g=1:e.lineIndent===t?g=0:e.lineIndentt?g=1:e.lineIndent===t?g=0:e.lineIndentt)&&(y&&(a=e.line,l=e.lineStart,c=e.position),we(e,t,4,!0,r)&&(y?g=e.result:m=e.result),y||(de(e,f,d,h,g,m,a,l,c),h=g=m=null),ge(e,!0,-1),s=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&0!==s)ce(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===o?ce(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?ce(e,"repeat of an indentation width identifier"):(p=t+o-1,u=!0)}if(Q(a)){do{a=e.input.charCodeAt(++e.position)}while(Q(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!J(a)&&0!==a)}for(;0!==a;){for(he(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!u||e.lineIndentp&&(p=e.lineIndent),J(a))f++;else{if(e.lineIndent0){for(r=a,o=0;r>0;r--)(a=ee(l=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:ce(e,"expected hexadecimal character");e.result+=ne(o),e.position++}else ce(e,"unknown escape sequence");n=i=e.position}else J(l)?(pe(e,n,i,!0),ye(e,ge(e,!1,t)),n=i=e.position):e.position===e.lineStart&&me(e)?ce(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}ce(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?y=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!z(i)&&!X(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&ce(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),P.call(e.anchorMap,n)||ce(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],ge(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,l,c,s,u,p=e.kind,f=e.result;if(z(u=e.input.charCodeAt(e.position))||X(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(z(i=e.input.charCodeAt(e.position+1))||n&&X(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(z(i=e.input.charCodeAt(e.position+1))||n&&X(i))break}else if(35===u){if(z(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&me(e)||n&&X(u))break;if(J(u)){if(l=e.line,c=e.lineStart,s=e.lineIndent,ge(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=l,e.lineStart=c,e.lineIndent=s;break}}a&&(pe(e,r,o,!1),ye(e,e.line-l),r=o=e.position,a=!1),Q(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return pe(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,d,1===i)&&(y=!0,null===e.tag&&(e.tag="?")):(y=!0,null===e.tag&&null===e.anchor||ce(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===g&&(y=c&&be(e,h))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&ce(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),s=0,u=e.implicitTypes.length;s"),null!==e.result&&f.kind!==e.kind&&ce(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result,e.tag)?(e.result=f.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):ce(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||y}function ke(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(r=e.input.charCodeAt(e.position))&&(ge(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!z(r);)r=e.input.charCodeAt(++e.position);for(i=[],(n=e.input.slice(t,e.position)).length<1&&ce(e,"directive name must not be less than one character in length");0!==r;){for(;Q(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!J(r));break}if(J(r))break;for(t=e.position;0!==r&&!z(r);)r=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==r&&he(e),P.call(ue,n)?ue[n](e,n,i):se(e,'unknown document directive "'+n+'"')}ge(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,ge(e,!0,-1)):a&&ce(e,"directives end mark is expected"),we(e,e.lineIndent-1,4,!1,!0),ge(e,!0,-1),e.checkLineBreaks&&H.test(e.input.slice(o,e.position))&&se(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&me(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,ge(e,!0,-1)):e.position=55296&&i<=56319&&t+1=56320&&n<=57343?1024*(i-55296)+n-56320+65536:i}function Re(e){return/^\n* /.test(e)}function Be(e,t,n,i,r,o,a,l){var c,s,u=0,p=null,f=!1,d=!1,h=-1!==i,g=-1,m=De(s=Ye(e,0))&&s!==Oe&&!_e(s)&&45!==s&&63!==s&&58!==s&&44!==s&&91!==s&&93!==s&&123!==s&&125!==s&&35!==s&&38!==s&&42!==s&&33!==s&&124!==s&&61!==s&&62!==s&&39!==s&&34!==s&&37!==s&&64!==s&&96!==s&&function(e){return!_e(e)&&58!==e}(Ye(e,e.length-1));if(t||a)for(c=0;c=65536?c+=2:c++){if(!De(u=Ye(e,c)))return 5;m=m&&qe(u,p,l),p=u}else{for(c=0;c=65536?c+=2:c++){if(10===(u=Ye(e,c)))f=!0,h&&(d=d||c-g-1>i&&" "!==e[g+1],g=c);else if(!De(u))return 5;m=m&&qe(u,p,l),p=u}d=d||h&&c-g-1>i&&" "!==e[g+1]}return f||d?n>9&&Re(e)?5:a?2===o?5:2:d?4:3:!m||a||r(e)?2===o?5:2:1}function Ke(e,t,n,i,r){e.dump=function(){if(0===t.length)return 2===e.quotingType?'""':"''";if(!e.noCompatMode&&(-1!==Te.indexOf(t)||Ne.test(t)))return 2===e.quotingType?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,n),l=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),c=i||e.flowLevel>-1&&n>=e.flowLevel;switch(Be(t,c,e.indent,l,(function(t){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n"+Pe(t,e.indent)+We(Me(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(l=e.indexOf("\n"),l=-1!==l?l:e.length,r.lastIndex=l,He(e.slice(0,l),t)),a="\n"===e[0]||" "===e[0];var l;for(;i=r.exec(e);){var c=i[1],s=i[2];n=" "===s[0],o+=c+(a||n||""===s?"":"\n")+He(s,t),a=n}return o}(t,l),a));case 5:return'"'+function(e){for(var t,n="",i=0,r=0;r=65536?r+=2:r++)i=Ye(e,r),!(t=je[i])&&De(i)?(n+=e[r],i>=65536&&(n+=e[r+1])):n+=t||Fe(i);return n}(t)+'"';default:throw new o("impossible error: invalid scalar style")}}()}function Pe(e,t){var n=Re(e)?String(t):"",i="\n"===e[e.length-1];return n+(i&&("\n"===e[e.length-2]||"\n"===e)?"+":i?"":"-")+"\n"}function We(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function He(e,t){if(""===e||" "===e[0])return e;for(var n,i,r=/ [^ ]/g,o=0,a=0,l=0,c="";n=r.exec(e);)(l=n.index)-o>t&&(i=a>o?a:l,c+="\n"+e.slice(o,i),o=i+1),a=l;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function $e(e,t,n,i){var r,o,a,l="",c=e.tag;for(r=0,o=n.length;r tag resolver accepts not "'+s+'" style');i=c.represent[s](t,s)}e.dump=i}return!0}return!1}function Ve(e,t,n,i,r,a,l){e.tag=null,e.dump=n,Ge(e,n,!1)||Ge(e,n,!0);var c,s=Ie.call(e.dump),u=i;i&&(i=e.flowLevel<0||e.flowLevel>t);var p,f,d="[object Object]"===s||"[object Array]"===s;if(d&&(f=-1!==(p=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||f||2!==e.indent&&t>0)&&(r=!1),f&&e.usedDuplicates[p])e.dump="*ref_"+p;else{if(d&&f&&!e.usedDuplicates[p]&&(e.usedDuplicates[p]=!0),"[object Object]"===s)i&&0!==Object.keys(e.dump).length?(!function(e,t,n,i){var r,a,l,c,s,u,p="",f=e.tag,d=Object.keys(n);if(!0===e.sortKeys)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new o("sortKeys must be a boolean or a function");for(r=0,a=d.length;r1024)&&(e.dump&&10===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,s&&(u+=Le(e,t)),Ve(e,t+1,c,!0,s)&&(e.dump&&10===e.dump.charCodeAt(0)?u+=":":u+=": ",p+=u+=e.dump));e.tag=f,e.dump=p||"{}"}(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(!function(e,t,n){var i,r,o,a,l,c="",s=e.tag,u=Object.keys(n);for(i=0,r=u.length;i1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ve(e,t,a,!1,!1)&&(c+=l+=e.dump));e.tag=s,e.dump="{"+c+"}"}(e,t,e.dump),f&&(e.dump="&ref_"+p+" "+e.dump));else if("[object Array]"===s)i&&0!==e.dump.length?(e.noArrayIndent&&!l&&t>0?$e(e,t-1,e.dump,r):$e(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(!function(e,t,n){var i,r,o,a="",l=e.tag;for(i=0,r=n.length;i",e.dump=c+" "+e.dump)}return!0}function Ze(e,t){var n,i,r=[],o=[];for(Je(e,r,o),n=0,i=o.length;n maxHalfLength) { + head = ' ... '; + lineStart = position - maxHalfLength + head.length; + } + + if (lineEnd - position > maxHalfLength) { + tail = ' ...'; + lineEnd = position + maxHalfLength - tail.length; + } + + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, + pos: position - lineStart + head.length // relative position + }; +} + + +function padStart(string, max) { + return common.repeat(' ', max - string.length) + string; +} + + +function makeSnippet(mark, options) { + options = Object.create(options || null); + + if (!mark.buffer) return null; + + if (!options.maxLength) options.maxLength = 79; + if (typeof options.indent !== 'number') options.indent = 1; + if (typeof options.linesBefore !== 'number') options.linesBefore = 3; + if (typeof options.linesAfter !== 'number') options.linesAfter = 2; + + var re = /\r?\n|\r|\0/g; + var lineStarts = [ 0 ]; + var lineEnds = []; + var match; + var foundLineNo = -1; + + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + + var result = '', i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n' + result; + } + + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; + + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + } + + return result.replace(/\n$/, ''); +} + + +var snippet = makeSnippet; + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type$1(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.representName = options['representName'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.multi = options['multi'] || false; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +var type = Type$1; + +/*eslint-disable max-len*/ + + + + + +function compileList(schema, name) { + var result = []; + + schema[name].forEach(function (currentType) { + var newIndex = result.length; + + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi) { + + newIndex = previousIndex; + } + }); + + result[newIndex] = currentType; + }); + + return result; +} + + +function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type); + result.multi['fallback'].push(type); + } else { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} + + +function Schema$1(definition) { + return this.extend(definition); +} + + +Schema$1.prototype.extend = function extend(definition) { + var implicit = []; + var explicit = []; + + if (definition instanceof type) { + // Schema.extend(type) + explicit.push(definition); + + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition); + + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) implicit = implicit.concat(definition.implicit); + if (definition.explicit) explicit = explicit.concat(definition.explicit); + + } else { + throw new exception('Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })'); + } + + implicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + if (type$1.loadKind && type$1.loadKind !== 'scalar') { + throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + + if (type$1.multi) { + throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + } + }); + + explicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + }); + + var result = Object.create(Schema$1.prototype); + + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + + return result; +}; + + +var schema = Schema$1; + +var str = new type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } +}); + +var seq = new type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } +}); + +var map = new type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } +}); + +var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] +}); + +function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); +} + +function constructYamlNull() { + return null; +} + +function isNull(object) { + return object === null; +} + +var _null = new type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; }, + empty: function () { return ''; } + }, + defaultStyle: 'lowercase' +}); + +function resolveYamlBoolean(data) { + if (data === null) return false; + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} + +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} + +function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; +} + +var bool = new type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); + +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); +} + +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} + +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); +} + +function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'o') { + // base 8 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + } + + // base 10 (except 0) + + // value should not start with `_`; + if (ch === '_') return false; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; + + return true; +} + +function constructYamlInteger(data) { + var value = data, sign = 1, ch; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); + } + + return sign * parseInt(value, 10); +} + +function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); +} + +var int = new type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } +}); + +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + +function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; +} + +function constructYamlFloat(data) { + var value, sign; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + } + return sign * parseFloat(value, 10); +} + + +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + +function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; +} + +function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); +} + +var float = new type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); + +var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] +}); + +var core = json; + +var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day + +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + +function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; +} + +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; +} + +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} + +var timestamp = new type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); + +function resolveYamlMerge(data) { + return data === '<<' || data === null; +} + +var merge = new type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); + +/*eslint-disable no-bitwise*/ + + + + + +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + +function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; +} + +function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + return new Uint8Array(result); +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; +} + +function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]'; +} + +var binary = new type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); + +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; + +function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString$2.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; +} + +function constructYamlOmap(data) { + return data !== null ? data : []; +} + +var omap = new type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); + +var _toString$1 = Object.prototype.toString; + +function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString$1.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; +} + +function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; +} + +var pairs = new type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); + +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; + +function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; +} + +function constructYamlSet(data) { + return data !== null ? data : {}; +} + +var set = new type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); + +var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] +}); + +/*eslint-disable max-len,no-use-before-define*/ + + + + + + + +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; + + +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; + + +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; + + +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + +function _class(obj) { return Object.prototype.toString.call(obj); } + +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} + +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} + +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} + +function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; +} + +function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; +} + +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} + +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; +} + +function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} + +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); +} + +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} + + +function State$1(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || _default; + this.onWarning = options['onWarning'] || null; + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false; + + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + +} + + +function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + + mark.snippet = snippet(mark); + + return new exception(message, mark); +} + +function throwError(state, message) { + throw generateError(state, message); +} + +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } +} + + +var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, 'tag prefix is malformed: ' + prefix); + } + + state.tagMap[handle] = prefix; + } +}; + + +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } +} + +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} + +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, + startLine, startLineStart, startPos) { + + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty$1.call(overridableKeys, keyNode) && + _hasOwnProperty$1.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + + return _result; +} + +function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; +} + +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; +} + +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; +} + +function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } +} + + +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; +} + +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); +} + +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x22/* " */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); +} + +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } else if (ch === 0x2C/* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError(state, "expected the node content, but found ','"); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; // Save the current line. + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); +} + +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; +} + +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (state.tag !== '!') { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; + + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } + } + } + + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } + + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; +} + +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} + + +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State$1(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; +} + + +function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} + + +function load$1(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception('expected a single document in the stream, but found more'); +} + + +var loadAll_1 = loadAll$1; +var load_1 = load$1; + +var loader = { + loadAll: loadAll_1, + load: load_1 +}; + +/*eslint-disable no-use-before-define*/ + + + + + +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +var CHAR_BOM = 0xFEFF; +var CHAR_TAB = 0x09; /* Tab */ +var CHAR_LINE_FEED = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ +var CHAR_SPACE = 0x20; /* Space */ +var CHAR_EXCLAMATION = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE = 0x22; /* " */ +var CHAR_SHARP = 0x23; /* # */ +var CHAR_PERCENT = 0x25; /* % */ +var CHAR_AMPERSAND = 0x26; /* & */ +var CHAR_SINGLE_QUOTE = 0x27; /* ' */ +var CHAR_ASTERISK = 0x2A; /* * */ +var CHAR_COMMA = 0x2C; /* , */ +var CHAR_MINUS = 0x2D; /* - */ +var CHAR_COLON = 0x3A; /* : */ +var CHAR_EQUALS = 0x3D; /* = */ +var CHAR_GREATER_THAN = 0x3E; /* > */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; +} + +function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; +} + + +var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; + +function State(options) { + this.schema = options['schema'] || _default; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +// Indents every line in a string. Empty lines (\n only) are not indented. +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; +} + +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); +} + +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; +} + +// [33] s-white ::= s-space | s-tab +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} + +// Returns true if the character can be printed without escaping. +// From YAML 1.2: "any allowed characters known to be non-printable +// should also be escaped. [However,] This isn’t mandatory" +// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. +function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); +} + +// [34] ns-char ::= nb-char - s-white +// [27] nb-char ::= c-printable - b-char - c-byte-order-mark +// [26] b-char ::= b-line-feed | b-carriage-return +// Including s-white (for some reason, examples doesn't match specs in this aspect) +// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark +function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; +} + +// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out +// c = flow-in ⇒ ns-plain-safe-in +// c = block-key ⇒ ns-plain-safe-out +// c = flow-key ⇒ ns-plain-safe-in +// [128] ns-plain-safe-out ::= ns-char +// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator +// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) +// | ( /* An ns-char preceding */ “#” ) +// | ( “:” /* Followed by an ns-plain-safe(c) */ ) +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' +} + +// Simplified test for values allowed as the first character in plain style. +function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; +} + +// Simplified test for values allowed as the last character in plain style. +function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON; +} + +// Same as 'string'.codePointAt(pos), but works in older browsers. +function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + } + } + return first; +} + +// Determines whether block indentation indicator is required. +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); +} + +var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + +// Determines which scalar styles are possible and returns the preferred style. +// lineWidth = -1 => no limit. +// Pre-conditions: str.length > 0. +// Post-conditions: +// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. +// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). +// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { + + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; +} + +// Note: line breaking/folding is implemented for only the folded style. +// NB. We drop the last trailing newline (if any) of a returned block scalar +// since the dumper adds its own newline. This always works: +// • No ending newline => unaffected; already using strip "-" chomping. +// • Ending newline => removed then restored. +// Importantly, this keeps the "+" chomp indicator from gaining an extra line. +function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + } + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { + + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new exception('impossible error: invalid scalar style'); + } + }()); +} + +// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; +} + +// (See the note for writeScalar.) +function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; +} + +// Note: a long line without a suitable break point will exceed the width limit. +// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. +function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } + + return result; +} + +// Greedy line breaking. +// Picks the longest line under the limit each time, +// otherwise settles for the shortest line over the limit. +// NB. More-indented lines *cannot* be folded, as that would add an extra \n. +function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; + } + + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner +} + +// Escapes a double-quoted string. +function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; + + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; + + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } + + return result; +} + +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { + + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; +} + +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { + + if (!compact || _result !== '') { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} + +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; + + if (state.condenseFlow) pairBuffer += '"'; + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; +} + +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new exception('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} + +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; +} + +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type === '[object Undefined]') { + return false; + } else { + if (state.skipInvalid) return false; + throw new exception('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); + + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } + + state.dump = tagStr + ' ' + state.dump; + } + } + + return true; +} + +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} + +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; + + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} + +function dump$1(input, options) { + options = options || {}; + + var state = new State(options); + + if (!state.noRefs) getDuplicateReferences(input, state); + + var value = input; + + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); + } + + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + + return ''; +} + +var dump_1 = dump$1; + +var dumper = { + dump: dump_1 +}; + +function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); + }; +} + + +var Type = type; +var Schema = schema; +var FAILSAFE_SCHEMA = failsafe; +var JSON_SCHEMA = json; +var CORE_SCHEMA = core; +var DEFAULT_SCHEMA = _default; +var load = loader.load; +var loadAll = loader.loadAll; +var dump = dumper.dump; +var YAMLException = exception; + +// Re-export all types in case user wants to create custom schema +var types = { + binary: binary, + float: float, + map: map, + null: _null, + pairs: pairs, + set: set, + timestamp: timestamp, + bool: bool, + int: int, + merge: merge, + omap: omap, + seq: seq, + str: str +}; + +// Removed functions from JS-YAML 3.0.x +var safeLoad = renamed('safeLoad', 'load'); +var safeLoadAll = renamed('safeLoadAll', 'loadAll'); +var safeDump = renamed('safeDump', 'dump'); + +var jsYaml = { + Type: Type, + Schema: Schema, + FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, + JSON_SCHEMA: JSON_SCHEMA, + CORE_SCHEMA: CORE_SCHEMA, + DEFAULT_SCHEMA: DEFAULT_SCHEMA, + load: load, + loadAll: loadAll, + dump: dump, + YAMLException: YAMLException, + types: types, + safeLoad: safeLoad, + safeLoadAll: safeLoadAll, + safeDump: safeDump +}; + +export default jsYaml; +export { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types }; diff --git a/node_modules/js-yaml/index.js b/node_modules/js-yaml/index.js new file mode 100644 index 0000000..bcb7eba --- /dev/null +++ b/node_modules/js-yaml/index.js @@ -0,0 +1,47 @@ +'use strict'; + + +var loader = require('./lib/loader'); +var dumper = require('./lib/dumper'); + + +function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); + }; +} + + +module.exports.Type = require('./lib/type'); +module.exports.Schema = require('./lib/schema'); +module.exports.FAILSAFE_SCHEMA = require('./lib/schema/failsafe'); +module.exports.JSON_SCHEMA = require('./lib/schema/json'); +module.exports.CORE_SCHEMA = require('./lib/schema/core'); +module.exports.DEFAULT_SCHEMA = require('./lib/schema/default'); +module.exports.load = loader.load; +module.exports.loadAll = loader.loadAll; +module.exports.dump = dumper.dump; +module.exports.YAMLException = require('./lib/exception'); + +// Re-export all types in case user wants to create custom schema +module.exports.types = { + binary: require('./lib/type/binary'), + float: require('./lib/type/float'), + map: require('./lib/type/map'), + null: require('./lib/type/null'), + pairs: require('./lib/type/pairs'), + set: require('./lib/type/set'), + timestamp: require('./lib/type/timestamp'), + bool: require('./lib/type/bool'), + int: require('./lib/type/int'), + merge: require('./lib/type/merge'), + omap: require('./lib/type/omap'), + seq: require('./lib/type/seq'), + str: require('./lib/type/str') +}; + +// Removed functions from JS-YAML 3.0.x +module.exports.safeLoad = renamed('safeLoad', 'load'); +module.exports.safeLoadAll = renamed('safeLoadAll', 'loadAll'); +module.exports.safeDump = renamed('safeDump', 'dump'); diff --git a/node_modules/js-yaml/lib/common.js b/node_modules/js-yaml/lib/common.js new file mode 100644 index 0000000..25ef7d8 --- /dev/null +++ b/node_modules/js-yaml/lib/common.js @@ -0,0 +1,59 @@ +'use strict'; + + +function isNothing(subject) { + return (typeof subject === 'undefined') || (subject === null); +} + + +function isObject(subject) { + return (typeof subject === 'object') && (subject !== null); +} + + +function toArray(sequence) { + if (Array.isArray(sequence)) return sequence; + else if (isNothing(sequence)) return []; + + return [ sequence ]; +} + + +function extend(target, source) { + var index, length, key, sourceKeys; + + if (source) { + sourceKeys = Object.keys(source); + + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + + return target; +} + + +function repeat(string, count) { + var result = '', cycle; + + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + + return result; +} + + +function isNegativeZero(number) { + return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); +} + + +module.exports.isNothing = isNothing; +module.exports.isObject = isObject; +module.exports.toArray = toArray; +module.exports.repeat = repeat; +module.exports.isNegativeZero = isNegativeZero; +module.exports.extend = extend; diff --git a/node_modules/js-yaml/lib/dumper.js b/node_modules/js-yaml/lib/dumper.js new file mode 100644 index 0000000..f357a6a --- /dev/null +++ b/node_modules/js-yaml/lib/dumper.js @@ -0,0 +1,965 @@ +'use strict'; + +/*eslint-disable no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var DEFAULT_SCHEMA = require('./schema/default'); + +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +var CHAR_BOM = 0xFEFF; +var CHAR_TAB = 0x09; /* Tab */ +var CHAR_LINE_FEED = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ +var CHAR_SPACE = 0x20; /* Space */ +var CHAR_EXCLAMATION = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE = 0x22; /* " */ +var CHAR_SHARP = 0x23; /* # */ +var CHAR_PERCENT = 0x25; /* % */ +var CHAR_AMPERSAND = 0x26; /* & */ +var CHAR_SINGLE_QUOTE = 0x27; /* ' */ +var CHAR_ASTERISK = 0x2A; /* * */ +var CHAR_COMMA = 0x2C; /* , */ +var CHAR_MINUS = 0x2D; /* - */ +var CHAR_COLON = 0x3A; /* : */ +var CHAR_EQUALS = 0x3D; /* = */ +var CHAR_GREATER_THAN = 0x3E; /* > */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; +} + +function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; +} + + +var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; + +function State(options) { + this.schema = options['schema'] || DEFAULT_SCHEMA; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +// Indents every line in a string. Empty lines (\n only) are not indented. +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; +} + +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); +} + +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; +} + +// [33] s-white ::= s-space | s-tab +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} + +// Returns true if the character can be printed without escaping. +// From YAML 1.2: "any allowed characters known to be non-printable +// should also be escaped. [However,] This isn’t mandatory" +// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. +function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); +} + +// [34] ns-char ::= nb-char - s-white +// [27] nb-char ::= c-printable - b-char - c-byte-order-mark +// [26] b-char ::= b-line-feed | b-carriage-return +// Including s-white (for some reason, examples doesn't match specs in this aspect) +// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark +function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; +} + +// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out +// c = flow-in ⇒ ns-plain-safe-in +// c = block-key ⇒ ns-plain-safe-out +// c = flow-key ⇒ ns-plain-safe-in +// [128] ns-plain-safe-out ::= ns-char +// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator +// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) +// | ( /* An ns-char preceding */ “#” ) +// | ( “:” /* Followed by an ns-plain-safe(c) */ ) +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' +} + +// Simplified test for values allowed as the first character in plain style. +function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; +} + +// Simplified test for values allowed as the last character in plain style. +function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON; +} + +// Same as 'string'.codePointAt(pos), but works in older browsers. +function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + } + } + return first; +} + +// Determines whether block indentation indicator is required. +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); +} + +var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; + +// Determines which scalar styles are possible and returns the preferred style. +// lineWidth = -1 => no limit. +// Pre-conditions: str.length > 0. +// Post-conditions: +// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. +// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). +// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { + + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; +} + +// Note: line breaking/folding is implemented for only the folded style. +// NB. We drop the last trailing newline (if any) of a returned block scalar +// since the dumper adds its own newline. This always works: +// • No ending newline => unaffected; already using strip "-" chomping. +// • Ending newline => removed then restored. +// Importantly, this keeps the "+" chomp indicator from gaining an extra line. +function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + } + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { + + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string, lineWidth) + '"'; + default: + throw new YAMLException('impossible error: invalid scalar style'); + } + }()); +} + +// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; +} + +// (See the note for writeScalar.) +function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; +} + +// Note: a long line without a suitable break point will exceed the width limit. +// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. +function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } + + return result; +} + +// Greedy line breaking. +// Picks the longest line under the limit each time, +// otherwise settles for the shortest line over the limit. +// NB. More-indented lines *cannot* be folded, as that would add an extra \n. +function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; + } + + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner +} + +// Escapes a double-quoted string. +function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; + + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; + + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } + + return result; +} + +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { + + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; +} + +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; + + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { + + if (!compact || _result !== '') { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} + +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; + + if (state.condenseFlow) pairBuffer += '"'; + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; +} + +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new YAMLException('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} + +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; +} + +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type === '[object Undefined]') { + return false; + } else { + if (state.skipInvalid) return false; + throw new YAMLException('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); + + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } + + state.dump = tagStr + ' ' + state.dump; + } + } + + return true; +} + +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} + +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; + + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} + +function dump(input, options) { + options = options || {}; + + var state = new State(options); + + if (!state.noRefs) getDuplicateReferences(input, state); + + var value = input; + + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); + } + + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + + return ''; +} + +module.exports.dump = dump; diff --git a/node_modules/js-yaml/lib/exception.js b/node_modules/js-yaml/lib/exception.js new file mode 100644 index 0000000..7f62daa --- /dev/null +++ b/node_modules/js-yaml/lib/exception.js @@ -0,0 +1,55 @@ +// YAML error class. http://stackoverflow.com/questions/8458984 +// +'use strict'; + + +function formatError(exception, compact) { + var where = '', message = exception.reason || '(unknown reason)'; + + if (!exception.mark) return message; + + if (exception.mark.name) { + where += 'in "' + exception.mark.name + '" '; + } + + where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; + + if (!compact && exception.mark.snippet) { + where += '\n\n' + exception.mark.snippet; + } + + return message + ' ' + where; +} + + +function YAMLException(reason, mark) { + // Super constructor + Error.call(this); + + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); + } else { + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; + } +} + + +// Inherit from Error +YAMLException.prototype = Object.create(Error.prototype); +YAMLException.prototype.constructor = YAMLException; + + +YAMLException.prototype.toString = function toString(compact) { + return this.name + ': ' + formatError(this, compact); +}; + + +module.exports = YAMLException; diff --git a/node_modules/js-yaml/lib/loader.js b/node_modules/js-yaml/lib/loader.js new file mode 100644 index 0000000..39f13f5 --- /dev/null +++ b/node_modules/js-yaml/lib/loader.js @@ -0,0 +1,1727 @@ +'use strict'; + +/*eslint-disable max-len,no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var makeSnippet = require('./snippet'); +var DEFAULT_SCHEMA = require('./schema/default'); + + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + + +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; + + +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; + + +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + +function _class(obj) { return Object.prototype.toString.call(obj); } + +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} + +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} + +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} + +function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; +} + +function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; +} + +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} + +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; +} + +function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} + +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); +} + +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} + + +function State(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || DEFAULT_SCHEMA; + this.onWarning = options['onWarning'] || null; + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false; + + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + +} + + +function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + + mark.snippet = makeSnippet(mark); + + return new YAMLException(message, mark); +} + +function throwError(state, message) { + throw generateError(state, message); +} + +function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); + } +} + + +var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, 'tag prefix is malformed: ' + prefix); + } + + state.tagMap[handle] = prefix; + } +}; + + +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } +} + +function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } +} + +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, + startLine, startLineStart, startPos) { + + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty.call(overridableKeys, keyNode) && + _hasOwnProperty.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + + return _result; +} + +function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; +} + +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; +} + +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; +} + +function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } +} + + +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; +} + +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x27/* ' */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); +} + +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x22/* " */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); +} + +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } else if (ch === 0x2C/* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError(state, "expected the node content, but found ','"); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (ch === 0x3F/* ? */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; // Save the current line. + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); +} + +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; +} + +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (state.tag !== '!') { + if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; + + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } + } + } + + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } + + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; +} + +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} + + +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; +} + + +function loadAll(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } + + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} + + +function load(input, options) { + var documents = loadDocuments(input, options); + + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new YAMLException('expected a single document in the stream, but found more'); +} + + +module.exports.loadAll = loadAll; +module.exports.load = load; diff --git a/node_modules/js-yaml/lib/schema.js b/node_modules/js-yaml/lib/schema.js new file mode 100644 index 0000000..65b41f4 --- /dev/null +++ b/node_modules/js-yaml/lib/schema.js @@ -0,0 +1,121 @@ +'use strict'; + +/*eslint-disable max-len*/ + +var YAMLException = require('./exception'); +var Type = require('./type'); + + +function compileList(schema, name) { + var result = []; + + schema[name].forEach(function (currentType) { + var newIndex = result.length; + + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi) { + + newIndex = previousIndex; + } + }); + + result[newIndex] = currentType; + }); + + return result; +} + + +function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; + + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type); + result.multi['fallback'].push(type); + } else { + result[type.kind][type.tag] = result['fallback'][type.tag] = type; + } + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + return result; +} + + +function Schema(definition) { + return this.extend(definition); +} + + +Schema.prototype.extend = function extend(definition) { + var implicit = []; + var explicit = []; + + if (definition instanceof Type) { + // Schema.extend(type) + explicit.push(definition); + + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition); + + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) implicit = implicit.concat(definition.implicit); + if (definition.explicit) explicit = explicit.concat(definition.explicit); + + } else { + throw new YAMLException('Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })'); + } + + implicit.forEach(function (type) { + if (!(type instanceof Type)) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + if (type.loadKind && type.loadKind !== 'scalar') { + throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + + if (type.multi) { + throw new YAMLException('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + } + }); + + explicit.forEach(function (type) { + if (!(type instanceof Type)) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + }); + + var result = Object.create(Schema.prototype); + + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + + return result; +}; + + +module.exports = Schema; diff --git a/node_modules/js-yaml/lib/schema/core.js b/node_modules/js-yaml/lib/schema/core.js new file mode 100644 index 0000000..608b26d --- /dev/null +++ b/node_modules/js-yaml/lib/schema/core.js @@ -0,0 +1,11 @@ +// Standard YAML's Core schema. +// http://www.yaml.org/spec/1.2/spec.html#id2804923 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, Core schema has no distinctions from JSON schema is JS-YAML. + + +'use strict'; + + +module.exports = require('./json'); diff --git a/node_modules/js-yaml/lib/schema/default.js b/node_modules/js-yaml/lib/schema/default.js new file mode 100644 index 0000000..3af0520 --- /dev/null +++ b/node_modules/js-yaml/lib/schema/default.js @@ -0,0 +1,22 @@ +// JS-YAML's default schema for `safeLoad` function. +// It is not described in the YAML specification. +// +// This schema is based on standard YAML's Core schema and includes most of +// extra types described at YAML tag repository. (http://yaml.org/type/) + + +'use strict'; + + +module.exports = require('./core').extend({ + implicit: [ + require('../type/timestamp'), + require('../type/merge') + ], + explicit: [ + require('../type/binary'), + require('../type/omap'), + require('../type/pairs'), + require('../type/set') + ] +}); diff --git a/node_modules/js-yaml/lib/schema/failsafe.js b/node_modules/js-yaml/lib/schema/failsafe.js new file mode 100644 index 0000000..b7a33eb --- /dev/null +++ b/node_modules/js-yaml/lib/schema/failsafe.js @@ -0,0 +1,17 @@ +// Standard YAML's Failsafe schema. +// http://www.yaml.org/spec/1.2/spec.html#id2802346 + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + explicit: [ + require('../type/str'), + require('../type/seq'), + require('../type/map') + ] +}); diff --git a/node_modules/js-yaml/lib/schema/json.js b/node_modules/js-yaml/lib/schema/json.js new file mode 100644 index 0000000..b73df78 --- /dev/null +++ b/node_modules/js-yaml/lib/schema/json.js @@ -0,0 +1,19 @@ +// Standard YAML's JSON schema. +// http://www.yaml.org/spec/1.2/spec.html#id2803231 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, this schema is not such strict as defined in the YAML specification. +// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. + + +'use strict'; + + +module.exports = require('./failsafe').extend({ + implicit: [ + require('../type/null'), + require('../type/bool'), + require('../type/int'), + require('../type/float') + ] +}); diff --git a/node_modules/js-yaml/lib/snippet.js b/node_modules/js-yaml/lib/snippet.js new file mode 100644 index 0000000..00e2133 --- /dev/null +++ b/node_modules/js-yaml/lib/snippet.js @@ -0,0 +1,101 @@ +'use strict'; + + +var common = require('./common'); + + +// get snippet for a single line, respecting maxLength +function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ''; + var tail = ''; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; + + if (position - lineStart > maxHalfLength) { + head = ' ... '; + lineStart = position - maxHalfLength + head.length; + } + + if (lineEnd - position > maxHalfLength) { + tail = ' ...'; + lineEnd = position + maxHalfLength - tail.length; + } + + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, + pos: position - lineStart + head.length // relative position + }; +} + + +function padStart(string, max) { + return common.repeat(' ', max - string.length) + string; +} + + +function makeSnippet(mark, options) { + options = Object.create(options || null); + + if (!mark.buffer) return null; + + if (!options.maxLength) options.maxLength = 79; + if (typeof options.indent !== 'number') options.indent = 1; + if (typeof options.linesBefore !== 'number') options.linesBefore = 3; + if (typeof options.linesAfter !== 'number') options.linesAfter = 2; + + var re = /\r?\n|\r|\0/g; + var lineStarts = [ 0 ]; + var lineEnds = []; + var match; + var foundLineNo = -1; + + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; + } + } + + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + + var result = '', i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n' + result; + } + + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; + + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + } + + return result.replace(/\n$/, ''); +} + + +module.exports = makeSnippet; diff --git a/node_modules/js-yaml/lib/type.js b/node_modules/js-yaml/lib/type.js new file mode 100644 index 0000000..5e57877 --- /dev/null +++ b/node_modules/js-yaml/lib/type.js @@ -0,0 +1,66 @@ +'use strict'; + +var YAMLException = require('./exception'); + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.representName = options['representName'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.multi = options['multi'] || false; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +module.exports = Type; diff --git a/node_modules/js-yaml/lib/type/binary.js b/node_modules/js-yaml/lib/type/binary.js new file mode 100644 index 0000000..e152351 --- /dev/null +++ b/node_modules/js-yaml/lib/type/binary.js @@ -0,0 +1,125 @@ +'use strict'; + +/*eslint-disable no-bitwise*/ + + +var Type = require('../type'); + + +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + +function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; +} + +function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + return new Uint8Array(result); +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; +} + +function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]'; +} + +module.exports = new Type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); diff --git a/node_modules/js-yaml/lib/type/bool.js b/node_modules/js-yaml/lib/type/bool.js new file mode 100644 index 0000000..cb77459 --- /dev/null +++ b/node_modules/js-yaml/lib/type/bool.js @@ -0,0 +1,35 @@ +'use strict'; + +var Type = require('../type'); + +function resolveYamlBoolean(data) { + if (data === null) return false; + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} + +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} + +function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; +} + +module.exports = new Type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); diff --git a/node_modules/js-yaml/lib/type/float.js b/node_modules/js-yaml/lib/type/float.js new file mode 100644 index 0000000..74d77ec --- /dev/null +++ b/node_modules/js-yaml/lib/type/float.js @@ -0,0 +1,97 @@ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + +function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; +} + +function constructYamlFloat(data) { + var value, sign; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + } + return sign * parseFloat(value, 10); +} + + +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + +function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; +} + +function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); diff --git a/node_modules/js-yaml/lib/type/int.js b/node_modules/js-yaml/lib/type/int.js new file mode 100644 index 0000000..3fe3a44 --- /dev/null +++ b/node_modules/js-yaml/lib/type/int.js @@ -0,0 +1,156 @@ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); +} + +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} + +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); +} + +function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + + + if (ch === 'o') { + // base 8 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; + } + return hasDigits && ch !== '_'; + } + } + + // base 10 (except 0) + + // value should not start with `_`; + if (ch === '_') return false; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; + + return true; +} + +function constructYamlInteger(data) { + var value = data, sign = 1, ch; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); + } + + return sign * parseInt(value, 10); +} + +function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } +}); diff --git a/node_modules/js-yaml/lib/type/map.js b/node_modules/js-yaml/lib/type/map.js new file mode 100644 index 0000000..f327bee --- /dev/null +++ b/node_modules/js-yaml/lib/type/map.js @@ -0,0 +1,8 @@ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } +}); diff --git a/node_modules/js-yaml/lib/type/merge.js b/node_modules/js-yaml/lib/type/merge.js new file mode 100644 index 0000000..ae08a86 --- /dev/null +++ b/node_modules/js-yaml/lib/type/merge.js @@ -0,0 +1,12 @@ +'use strict'; + +var Type = require('../type'); + +function resolveYamlMerge(data) { + return data === '<<' || data === null; +} + +module.exports = new Type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); diff --git a/node_modules/js-yaml/lib/type/null.js b/node_modules/js-yaml/lib/type/null.js new file mode 100644 index 0000000..315ca4e --- /dev/null +++ b/node_modules/js-yaml/lib/type/null.js @@ -0,0 +1,35 @@ +'use strict'; + +var Type = require('../type'); + +function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); +} + +function constructYamlNull() { + return null; +} + +function isNull(object) { + return object === null; +} + +module.exports = new Type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; }, + empty: function () { return ''; } + }, + defaultStyle: 'lowercase' +}); diff --git a/node_modules/js-yaml/lib/type/omap.js b/node_modules/js-yaml/lib/type/omap.js new file mode 100644 index 0000000..b2b5323 --- /dev/null +++ b/node_modules/js-yaml/lib/type/omap.js @@ -0,0 +1,44 @@ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; +var _toString = Object.prototype.toString; + +function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; +} + +function constructYamlOmap(data) { + return data !== null ? data : []; +} + +module.exports = new Type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); diff --git a/node_modules/js-yaml/lib/type/pairs.js b/node_modules/js-yaml/lib/type/pairs.js new file mode 100644 index 0000000..74b5240 --- /dev/null +++ b/node_modules/js-yaml/lib/type/pairs.js @@ -0,0 +1,53 @@ +'use strict'; + +var Type = require('../type'); + +var _toString = Object.prototype.toString; + +function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; +} + +function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; +} + +module.exports = new Type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); diff --git a/node_modules/js-yaml/lib/type/seq.js b/node_modules/js-yaml/lib/type/seq.js new file mode 100644 index 0000000..be8f77f --- /dev/null +++ b/node_modules/js-yaml/lib/type/seq.js @@ -0,0 +1,8 @@ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } +}); diff --git a/node_modules/js-yaml/lib/type/set.js b/node_modules/js-yaml/lib/type/set.js new file mode 100644 index 0000000..f885a32 --- /dev/null +++ b/node_modules/js-yaml/lib/type/set.js @@ -0,0 +1,29 @@ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; +} + +function constructYamlSet(data) { + return data !== null ? data : {}; +} + +module.exports = new Type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); diff --git a/node_modules/js-yaml/lib/type/str.js b/node_modules/js-yaml/lib/type/str.js new file mode 100644 index 0000000..27acc10 --- /dev/null +++ b/node_modules/js-yaml/lib/type/str.js @@ -0,0 +1,8 @@ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } +}); diff --git a/node_modules/js-yaml/lib/type/timestamp.js b/node_modules/js-yaml/lib/type/timestamp.js new file mode 100644 index 0000000..8fa9c58 --- /dev/null +++ b/node_modules/js-yaml/lib/type/timestamp.js @@ -0,0 +1,88 @@ +'use strict'; + +var Type = require('../type'); + +var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day + +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute + +function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + return false; +} + +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; +} + +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} + +module.exports = new Type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); diff --git a/node_modules/js-yaml/package.json b/node_modules/js-yaml/package.json new file mode 100644 index 0000000..17574da --- /dev/null +++ b/node_modules/js-yaml/package.json @@ -0,0 +1,66 @@ +{ + "name": "js-yaml", + "version": "4.1.0", + "description": "YAML 1.2 parser and serializer", + "keywords": [ + "yaml", + "parser", + "serializer", + "pyyaml" + ], + "author": "Vladimir Zapparov ", + "contributors": [ + "Aleksey V Zapparov (http://www.ixti.net/)", + "Vitaly Puzrin (https://github.com/puzrin)", + "Martin Grenfell (http://got-ravings.blogspot.com)" + ], + "license": "MIT", + "repository": "nodeca/js-yaml", + "files": [ + "index.js", + "lib/", + "bin/", + "dist/" + ], + "bin": { + "js-yaml": "bin/js-yaml.js" + }, + "module": "./dist/js-yaml.mjs", + "exports": { + ".": { + "import": "./dist/js-yaml.mjs", + "require": "./index.js" + }, + "./package.json": "./package.json" + }, + "scripts": { + "lint": "eslint .", + "test": "npm run lint && mocha", + "coverage": "npm run lint && nyc mocha && nyc report --reporter html", + "demo": "npm run lint && node support/build_demo.js", + "gh-demo": "npm run demo && gh-pages -d demo -f", + "browserify": "rollup -c support/rollup.config.js", + "prepublishOnly": "npm run gh-demo" + }, + "unpkg": "dist/js-yaml.min.js", + "jsdelivr": "dist/js-yaml.min.js", + "dependencies": { + "argparse": "^2.0.1" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-node-resolve": "^11.0.0", + "ansi": "^0.3.1", + "benchmark": "^2.1.4", + "codemirror": "^5.13.4", + "eslint": "^7.0.0", + "fast-check": "^2.8.0", + "gh-pages": "^3.1.0", + "mocha": "^8.2.1", + "nyc": "^15.1.0", + "rollup": "^2.34.1", + "rollup-plugin-node-polyfills": "^0.2.1", + "rollup-plugin-terser": "^7.0.2", + "shelljs": "^0.8.4" + } +} diff --git a/node_modules/json-schema-traverse/.eslintrc.yml b/node_modules/json-schema-traverse/.eslintrc.yml new file mode 100644 index 0000000..ab1762d --- /dev/null +++ b/node_modules/json-schema-traverse/.eslintrc.yml @@ -0,0 +1,27 @@ +extends: eslint:recommended +env: + node: true + browser: true +rules: + block-scoped-var: 2 + complexity: [2, 13] + curly: [2, multi-or-nest, consistent] + dot-location: [2, property] + dot-notation: 2 + indent: [2, 2, SwitchCase: 1] + linebreak-style: [2, unix] + new-cap: 2 + no-console: [2, allow: [warn, error]] + no-else-return: 2 + no-eq-null: 2 + no-fallthrough: 2 + no-invalid-this: 2 + no-return-assign: 2 + no-shadow: 1 + no-trailing-spaces: 2 + no-use-before-define: [2, nofunc] + quotes: [2, single, avoid-escape] + semi: [2, always] + strict: [2, global] + valid-jsdoc: [2, requireReturn: false] + no-control-regex: 0 diff --git a/node_modules/json-schema-traverse/.travis.yml b/node_modules/json-schema-traverse/.travis.yml new file mode 100644 index 0000000..7ddce74 --- /dev/null +++ b/node_modules/json-schema-traverse/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - "4" + - "6" + - "7" + - "8" +after_script: + - coveralls < coverage/lcov.info diff --git a/node_modules/json-schema-traverse/LICENSE b/node_modules/json-schema-traverse/LICENSE new file mode 100644 index 0000000..7f15435 --- /dev/null +++ b/node_modules/json-schema-traverse/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/json-schema-traverse/README.md b/node_modules/json-schema-traverse/README.md new file mode 100644 index 0000000..d5ccaf4 --- /dev/null +++ b/node_modules/json-schema-traverse/README.md @@ -0,0 +1,83 @@ +# json-schema-traverse +Traverse JSON Schema passing each schema object to callback + +[![Build Status](https://travis-ci.org/epoberezkin/json-schema-traverse.svg?branch=master)](https://travis-ci.org/epoberezkin/json-schema-traverse) +[![npm version](https://badge.fury.io/js/json-schema-traverse.svg)](https://www.npmjs.com/package/json-schema-traverse) +[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/json-schema-traverse/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/json-schema-traverse?branch=master) + + +## Install + +``` +npm install json-schema-traverse +``` + + +## Usage + +```javascript +const traverse = require('json-schema-traverse'); +const schema = { + properties: { + foo: {type: 'string'}, + bar: {type: 'integer'} + } +}; + +traverse(schema, {cb}); +// cb is called 3 times with: +// 1. root schema +// 2. {type: 'string'} +// 3. {type: 'integer'} + +// Or: + +traverse(schema, {cb: {pre, post}}); +// pre is called 3 times with: +// 1. root schema +// 2. {type: 'string'} +// 3. {type: 'integer'} +// +// post is called 3 times with: +// 1. {type: 'string'} +// 2. {type: 'integer'} +// 3. root schema + +``` + +Callback function `cb` is called for each schema object (not including draft-06 boolean schemas), including the root schema, in pre-order traversal. Schema references ($ref) are not resolved, they are passed as is. Alternatively, you can pass a `{pre, post}` object as `cb`, and then `pre` will be called before traversing child elements, and `post` will be called after all child elements have been traversed. + +Callback is passed these parameters: + +- _schema_: the current schema object +- _JSON pointer_: from the root schema to the current schema object +- _root schema_: the schema passed to `traverse` object +- _parent JSON pointer_: from the root schema to the parent schema object (see below) +- _parent keyword_: the keyword inside which this schema appears (e.g. `properties`, `anyOf`, etc.) +- _parent schema_: not necessarily parent object/array; in the example above the parent schema for `{type: 'string'}` is the root schema +- _index/property_: index or property name in the array/object containing multiple schemas; in the example above for `{type: 'string'}` the property name is `'foo'` + + +## Traverse objects in all unknown keywords + +```javascript +const traverse = require('json-schema-traverse'); +const schema = { + mySchema: { + minimum: 1, + maximum: 2 + } +}; + +traverse(schema, {allKeys: true, cb}); +// cb is called 2 times with: +// 1. root schema +// 2. mySchema +``` + +Without option `allKeys: true` callback will be called only with root schema. + + +## License + +[MIT](https://github.com/epoberezkin/json-schema-traverse/blob/master/LICENSE) diff --git a/node_modules/json-schema-traverse/index.js b/node_modules/json-schema-traverse/index.js new file mode 100644 index 0000000..d4a18df --- /dev/null +++ b/node_modules/json-schema-traverse/index.js @@ -0,0 +1,89 @@ +'use strict'; + +var traverse = module.exports = function (schema, opts, cb) { + // Legacy support for v0.3.1 and earlier. + if (typeof opts == 'function') { + cb = opts; + opts = {}; + } + + cb = opts.cb || cb; + var pre = (typeof cb == 'function') ? cb : cb.pre || function() {}; + var post = cb.post || function() {}; + + _traverse(opts, pre, post, schema, '', schema); +}; + + +traverse.keywords = { + additionalItems: true, + items: true, + contains: true, + additionalProperties: true, + propertyNames: true, + not: true +}; + +traverse.arrayKeywords = { + items: true, + allOf: true, + anyOf: true, + oneOf: true +}; + +traverse.propsKeywords = { + definitions: true, + properties: true, + patternProperties: true, + dependencies: true +}; + +traverse.skipKeywords = { + default: true, + enum: true, + const: true, + required: true, + maximum: true, + minimum: true, + exclusiveMaximum: true, + exclusiveMinimum: true, + multipleOf: true, + maxLength: true, + minLength: true, + pattern: true, + format: true, + maxItems: true, + minItems: true, + uniqueItems: true, + maxProperties: true, + minProperties: true +}; + + +function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { + if (schema && typeof schema == 'object' && !Array.isArray(schema)) { + pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); + for (var key in schema) { + var sch = schema[key]; + if (Array.isArray(sch)) { + if (key in traverse.arrayKeywords) { + for (var i=0; i +__Light ECMAScript (JavaScript) Value Notation__ +Levn is a library which allows you to parse a string into a JavaScript value based on an expected type. It is meant for short amounts of human entered data (eg. config files, command line arguments). + +Levn aims to concisely describe JavaScript values in text, and allow for the extraction and validation of those values. Levn uses [type-check](https://github.com/gkz/type-check) for its type format, and to validate the results. MIT license. Version 0.4.1. + +__How is this different than JSON?__ levn is meant to be written by humans only, is (due to the previous point) much more concise, can be validated against supplied types, has regex and date literals, and can easily be extended with custom types. On the other hand, it is probably slower and thus less efficient at transporting large amounts of data, which is fine since this is not its purpose. + + npm install levn + +For updates on levn, [follow me on twitter](https://twitter.com/gkzahariev). + + +## Quick Examples + +```js +var parse = require('levn').parse; +parse('Number', '2'); // 2 +parse('String', '2'); // '2' +parse('String', 'levn'); // 'levn' +parse('String', 'a b'); // 'a b' +parse('Boolean', 'true'); // true + +parse('Date', '#2011-11-11#'); // (Date object) +parse('Date', '2011-11-11'); // (Date object) +parse('RegExp', '/[a-z]/gi'); // /[a-z]/gi +parse('RegExp', 're'); // /re/ +parse('Int', '2'); // 2 + +parse('Number | String', 'str'); // 'str' +parse('Number | String', '2'); // 2 + +parse('[Number]', '[1,2,3]'); // [1,2,3] +parse('(String, Boolean)', '(hi, false)'); // ['hi', false] +parse('{a: String, b: Number}', '{a: str, b: 2}'); // {a: 'str', b: 2} + +// at the top level, you can ommit surrounding delimiters +parse('[Number]', '1,2,3'); // [1,2,3] +parse('(String, Boolean)', 'hi, false'); // ['hi', false] +parse('{a: String, b: Number}', 'a: str, b: 2'); // {a: 'str', b: 2} + +// wildcard - auto choose type +parse('*', '[hi,(null,[42]),{k: true}]'); // ['hi', [null, [42]], {k: true}] +``` +## Usage + +`require('levn');` returns an object that exposes three properties. `VERSION` is the current version of the library as a string. `parse` and `parsedTypeParse` are functions. + +```js +// parse(type, input, options); +parse('[Number]', '1,2,3'); // [1, 2, 3] + +// parsedTypeParse(parsedType, input, options); +var parsedType = require('type-check').parseType('[Number]'); +parsedTypeParse(parsedType, '1,2,3'); // [1, 2, 3] +``` + +### parse(type, input, options) + +`parse` casts the string `input` into a JavaScript value according to the specified `type` in the [type format](https://github.com/gkz/type-check#type-format) (and taking account the optional `options`) and returns the resulting JavaScript value. + +##### arguments +* type - `String` - the type written in the [type format](https://github.com/gkz/type-check#type-format) which to check against +* input - `String` - the value written in the [levn format](#levn-format) +* options - `Maybe Object` - an optional parameter specifying additional [options](#options) + +##### returns +`*` - the resulting JavaScript value + +##### example +```js +parse('[Number]', '1,2,3'); // [1, 2, 3] +``` + +### parsedTypeParse(parsedType, input, options) + +`parsedTypeParse` casts the string `input` into a JavaScript value according to the specified `type` which has already been parsed (and taking account the optional `options`) and returns the resulting JavaScript value. You can parse a type using the [type-check](https://github.com/gkz/type-check) library's `parseType` function. + +##### arguments +* type - `Object` - the type in the parsed type format which to check against +* input - `String` - the value written in the [levn format](#levn-format) +* options - `Maybe Object` - an optional parameter specifying additional [options](#options) + +##### returns +`*` - the resulting JavaScript value + +##### example +```js +var parsedType = require('type-check').parseType('[Number]'); +parsedTypeParse(parsedType, '1,2,3'); // [1, 2, 3] +``` + +## Levn Format + +Levn can use the type information you provide to choose the appropriate value to produce from the input. For the same input, it will choose a different output value depending on the type provided. For example, `parse('Number', '2')` will produce the number `2`, but `parse('String', '2')` will produce the string `"2"`. + +If you do not provide type information, and simply use `*`, levn will parse the input according the unambiguous "explicit" mode, which we will now detail - you can also set the `explicit` option to true manually in the [options](#options). + +* `"string"`, `'string'` are parsed as a String, eg. `"a msg"` is `"a msg"` +* `#date#` is parsed as a Date, eg. `#2011-11-11#` is `new Date('2011-11-11')` +* `/regexp/flags` is parsed as a RegExp, eg. `/re/gi` is `/re/gi` +* `undefined`, `null`, `NaN`, `true`, and `false` are all their JavaScript equivalents +* `[element1, element2, etc]` is an Array, and the casting procedure is recursively applied to each element. Eg. `[1,2,3]` is `[1,2,3]`. +* `(element1, element2, etc)` is an tuple, and the casting procedure is recursively applied to each element. Eg. `(1, a)` is `(1, a)` (is `[1, 'a']`). +* `{key1: val1, key2: val2, ...}` is an Object, and the casting procedure is recursively applied to each property. Eg. `{a: 1, b: 2}` is `{a: 1, b: 2}`. +* Any test which does not fall under the above, and which does not contain special characters (`[``]``(``)``{``}``:``,`) is a string, eg. `$12- blah` is `"$12- blah"`. + +If you do provide type information, you can make your input more concise as the program already has some information about what it expects. Please see the [type format](https://github.com/gkz/type-check#type-format) section of [type-check](https://github.com/gkz/type-check) for more information about how to specify types. There are some rules about what levn can do with the information: + +* If a String is expected, and only a String, all characters of the input (including any special ones) will become part of the output. Eg. `[({})]` is `"[({})]"`, and `"hi"` is `'"hi"'`. +* If a Date is expected, the surrounding `#` can be omitted from date literals. Eg. `2011-11-11` is `new Date('2011-11-11')`. +* If a RegExp is expected, no flags need to be specified, and the regex is not using any of the special characters,the opening and closing `/` can be omitted - this will have the affect of setting the source of the regex to the input. Eg. `regex` is `/regex/`. +* If an Array is expected, and it is the root node (at the top level), the opening `[` and closing `]` can be omitted. Eg. `1,2,3` is `[1,2,3]`. +* If a tuple is expected, and it is the root node (at the top level), the opening `(` and closing `)` can be omitted. Eg. `1, a` is `(1, a)` (is `[1, 'a']`). +* If an Object is expected, and it is the root node (at the top level), the opening `{` and closing `}` can be omitted. Eg `a: 1, b: 2` is `{a: 1, b: 2}`. + +If you list multiple types (eg. `Number | String`), it will first attempt to cast to the first type and then validate - if the validation fails it will move on to the next type and so forth, left to right. You must be careful as some types will succeed with any input, such as String. Thus put String at the end of your list. In non-explicit mode, Date and RegExp will succeed with a large variety of input - also be careful with these and list them near the end if not last in your list. + +Whitespace between special characters and elements is inconsequential. + +## Options + +Options is an object. It is an optional parameter to the `parse` and `parsedTypeParse` functions. + +### Explicit + +A `Boolean`. By default it is `false`. + +__Example:__ + +```js +parse('RegExp', 're', {explicit: false}); // /re/ +parse('RegExp', 're', {explicit: true}); // Error: ... does not type check... +parse('RegExp | String', 're', {explicit: true}); // 're' +``` + +`explicit` sets whether to be in explicit mode or not. Using `*` automatically activates explicit mode. For more information, read the [levn format](#levn-format) section. + +### customTypes + +An `Object`. Empty `{}` by default. + +__Example:__ + +```js +var options = { + customTypes: { + Even: { + typeOf: 'Number', + validate: function (x) { + return x % 2 === 0; + }, + cast: function (x) { + return {type: 'Just', value: parseInt(x)}; + } + } + } +} +parse('Even', '2', options); // 2 +parse('Even', '3', options); // Error: Value: "3" does not type check... +``` + +__Another Example:__ +```js +function Person(name, age){ + this.name = name; + this.age = age; +} +var options = { + customTypes: { + Person: { + typeOf: 'Object', + validate: function (x) { + x instanceof Person; + }, + cast: function (value, options, typesCast) { + var name, age; + if ({}.toString.call(value).slice(8, -1) !== 'Object') { + return {type: 'Nothing'}; + } + name = typesCast(value.name, [{type: 'String'}], options); + age = typesCast(value.age, [{type: 'Numger'}], options); + return {type: 'Just', value: new Person(name, age)}; + } + } +} +parse('Person', '{name: Laura, age: 25}', options); // Person {name: 'Laura', age: 25} +``` + +`customTypes` is an object whose keys are the name of the types, and whose values are an object with three properties, `typeOf`, `validate`, and `cast`. For more information about `typeOf` and `validate`, please see the [custom types](https://github.com/gkz/type-check#custom-types) section of type-check. + +`cast` is a function which receives three arguments, the value under question, options, and the typesCast function. In `cast`, attempt to cast the value into the specified type. If you are successful, return an object in the format `{type: 'Just', value: CAST-VALUE}`, if you know it won't work, return `{type: 'Nothing'}`. You can use the `typesCast` function to cast any child values. Remember to pass `options` to it. In your function you can also check for `options.explicit` and act accordingly. + +## Technical About + +`levn` is written in [LiveScript](http://livescript.net/) - a language that compiles to JavaScript. It uses [type-check](https://github.com/gkz/type-check) to both parse types and validate values. It also uses the [prelude.ls](http://preludels.com/) library. diff --git a/node_modules/levn/lib/cast.js b/node_modules/levn/lib/cast.js new file mode 100644 index 0000000..92cb9a6 --- /dev/null +++ b/node_modules/levn/lib/cast.js @@ -0,0 +1,327 @@ +// Generated by LiveScript 1.6.0 +(function(){ + var parsedTypeCheck, types, toString$ = {}.toString; + parsedTypeCheck = require('type-check').parsedTypeCheck; + types = { + '*': function(value, options){ + switch (toString$.call(value).slice(8, -1)) { + case 'Array': + return typeCast(value, { + type: 'Array' + }, options); + case 'Object': + return typeCast(value, { + type: 'Object' + }, options); + default: + return { + type: 'Just', + value: typesCast(value, [ + { + type: 'Undefined' + }, { + type: 'Null' + }, { + type: 'NaN' + }, { + type: 'Boolean' + }, { + type: 'Number' + }, { + type: 'Date' + }, { + type: 'RegExp' + }, { + type: 'Array' + }, { + type: 'Object' + }, { + type: 'String' + } + ], (options.explicit = true, options)) + }; + } + }, + Undefined: function(it){ + if (it === 'undefined' || it === void 8) { + return { + type: 'Just', + value: void 8 + }; + } else { + return { + type: 'Nothing' + }; + } + }, + Null: function(it){ + if (it === 'null') { + return { + type: 'Just', + value: null + }; + } else { + return { + type: 'Nothing' + }; + } + }, + NaN: function(it){ + if (it === 'NaN') { + return { + type: 'Just', + value: NaN + }; + } else { + return { + type: 'Nothing' + }; + } + }, + Boolean: function(it){ + if (it === 'true') { + return { + type: 'Just', + value: true + }; + } else if (it === 'false') { + return { + type: 'Just', + value: false + }; + } else { + return { + type: 'Nothing' + }; + } + }, + Number: function(it){ + return { + type: 'Just', + value: +it + }; + }, + Int: function(it){ + return { + type: 'Just', + value: +it + }; + }, + Float: function(it){ + return { + type: 'Just', + value: +it + }; + }, + Date: function(value, options){ + var that; + if (that = /^\#([\s\S]*)\#$/.exec(value)) { + return { + type: 'Just', + value: new Date(+that[1] || that[1]) + }; + } else if (options.explicit) { + return { + type: 'Nothing' + }; + } else { + return { + type: 'Just', + value: new Date(+value || value) + }; + } + }, + RegExp: function(value, options){ + var that; + if (that = /^\/([\s\S]*)\/([gimy]*)$/.exec(value)) { + return { + type: 'Just', + value: new RegExp(that[1], that[2]) + }; + } else if (options.explicit) { + return { + type: 'Nothing' + }; + } else { + return { + type: 'Just', + value: new RegExp(value) + }; + } + }, + Array: function(value, options){ + return castArray(value, { + of: [{ + type: '*' + }] + }, options); + }, + Object: function(value, options){ + return castFields(value, { + of: {} + }, options); + }, + String: function(it){ + var replace, that; + if (toString$.call(it).slice(8, -1) !== 'String') { + return { + type: 'Nothing' + }; + } + replace = function(value, quote){ + return value.replace(/\\([^u]|u[0-9a-fA-F]{4})/g, function(all, escaped){ + switch (escaped[0]) { + case quote: + return quote; + case '\\': + return '\\'; + case 'b': + return '\b'; + case 'f': + return '\f'; + case 'n': + return '\n'; + case 'r': + return '\r'; + case 't': + return '\t'; + case 'u': + return JSON.parse("\"" + all + "\""); + default: + return escaped; + } + }); + }; + if (that = it.match(/^'([\s\S]*)'$/)) { + return { + type: 'Just', + value: replace(that[1], "'") + }; + } else if (that = it.match(/^"([\s\S]*)"$/)) { + return { + type: 'Just', + value: replace(that[1], '"') + }; + } else { + return { + type: 'Just', + value: it + }; + } + } + }; + function castArray(node, type, options){ + var typeOf, element; + if (toString$.call(node).slice(8, -1) !== 'Array') { + return { + type: 'Nothing' + }; + } + typeOf = type.of; + return { + type: 'Just', + value: (function(){ + var i$, ref$, len$, results$ = []; + for (i$ = 0, len$ = (ref$ = node).length; i$ < len$; ++i$) { + element = ref$[i$]; + results$.push(typesCast(element, typeOf, options)); + } + return results$; + }()) + }; + } + function castTuple(node, type, options){ + var result, i, i$, ref$, len$, types, cast; + if (toString$.call(node).slice(8, -1) !== 'Array') { + return { + type: 'Nothing' + }; + } + result = []; + i = 0; + for (i$ = 0, len$ = (ref$ = type.of).length; i$ < len$; ++i$) { + types = ref$[i$]; + cast = typesCast(node[i], types, options); + if (toString$.call(cast).slice(8, -1) !== 'Undefined') { + result.push(cast); + } + i++; + } + if (node.length <= i) { + return { + type: 'Just', + value: result + }; + } else { + return { + type: 'Nothing' + }; + } + } + function castFields(node, type, options){ + var typeOf, key, value; + if (toString$.call(node).slice(8, -1) !== 'Object') { + return { + type: 'Nothing' + }; + } + typeOf = type.of; + return { + type: 'Just', + value: (function(){ + var ref$, resultObj$ = {}; + for (key in ref$ = node) { + value = ref$[key]; + resultObj$[typesCast(key, [{ + type: 'String' + }], options)] = typesCast(value, typeOf[key] || [{ + type: '*' + }], options); + } + return resultObj$; + }()) + }; + } + function typeCast(node, typeObj, options){ + var type, structure, castFunc, ref$; + type = typeObj.type, structure = typeObj.structure; + if (type) { + castFunc = ((ref$ = options.customTypes[type]) != null ? ref$.cast : void 8) || types[type]; + if (!castFunc) { + throw new Error("Type not defined: " + type + "."); + } + return castFunc(node, options, typesCast); + } else { + switch (structure) { + case 'array': + return castArray(node, typeObj, options); + case 'tuple': + return castTuple(node, typeObj, options); + case 'fields': + return castFields(node, typeObj, options); + } + } + } + function typesCast(node, types, options){ + var i$, len$, type, ref$, valueType, value; + for (i$ = 0, len$ = types.length; i$ < len$; ++i$) { + type = types[i$]; + ref$ = typeCast(node, type, options), valueType = ref$.type, value = ref$.value; + if (valueType === 'Nothing') { + continue; + } + if (parsedTypeCheck([type], value, { + customTypes: options.customTypes + })) { + return value; + } + } + throw new Error("Value " + JSON.stringify(node) + " does not type check against " + JSON.stringify(types) + "."); + } + module.exports = function(node, types, options){ + if (!options.explicit && types.length === 1 && types[0].type === 'String') { + return node; + } + return typesCast(node, types, options); + }; +}).call(this); diff --git a/node_modules/levn/lib/index.js b/node_modules/levn/lib/index.js new file mode 100644 index 0000000..b8b6684 --- /dev/null +++ b/node_modules/levn/lib/index.js @@ -0,0 +1,22 @@ +// Generated by LiveScript 1.6.0 +(function(){ + var parseString, cast, parseType, VERSION, parsedTypeParse, parse; + parseString = require('./parse-string'); + cast = require('./cast'); + parseType = require('type-check').parseType; + VERSION = '0.4.1'; + parsedTypeParse = function(parsedType, string, options){ + options == null && (options = {}); + options.explicit == null && (options.explicit = false); + options.customTypes == null && (options.customTypes = {}); + return cast(parseString(parsedType, string, options), parsedType, options); + }; + parse = function(type, string, options){ + return parsedTypeParse(parseType(type), string, options); + }; + module.exports = { + VERSION: VERSION, + parse: parse, + parsedTypeParse: parsedTypeParse + }; +}).call(this); diff --git a/node_modules/levn/lib/parse-string.js b/node_modules/levn/lib/parse-string.js new file mode 100644 index 0000000..eaed2f0 --- /dev/null +++ b/node_modules/levn/lib/parse-string.js @@ -0,0 +1,113 @@ +// Generated by LiveScript 1.6.0 +(function(){ + var reject, special, tokenRegex; + reject = require('prelude-ls').reject; + function consumeOp(tokens, op){ + if (tokens[0] === op) { + return tokens.shift(); + } else { + throw new Error("Expected '" + op + "', but got '" + tokens[0] + "' instead in " + JSON.stringify(tokens) + "."); + } + } + function maybeConsumeOp(tokens, op){ + if (tokens[0] === op) { + return tokens.shift(); + } + } + function consumeList(tokens, arg$, hasDelimiters){ + var open, close, result, untilTest; + open = arg$[0], close = arg$[1]; + if (hasDelimiters) { + consumeOp(tokens, open); + } + result = []; + untilTest = "," + (hasDelimiters ? close : ''); + while (tokens.length && (hasDelimiters && tokens[0] !== close)) { + result.push(consumeElement(tokens, untilTest)); + maybeConsumeOp(tokens, ','); + } + if (hasDelimiters) { + consumeOp(tokens, close); + } + return result; + } + function consumeArray(tokens, hasDelimiters){ + return consumeList(tokens, ['[', ']'], hasDelimiters); + } + function consumeTuple(tokens, hasDelimiters){ + return consumeList(tokens, ['(', ')'], hasDelimiters); + } + function consumeFields(tokens, hasDelimiters){ + var result, untilTest, key; + if (hasDelimiters) { + consumeOp(tokens, '{'); + } + result = {}; + untilTest = "," + (hasDelimiters ? '}' : ''); + while (tokens.length && (!hasDelimiters || tokens[0] !== '}')) { + key = consumeValue(tokens, ':'); + consumeOp(tokens, ':'); + result[key] = consumeElement(tokens, untilTest); + maybeConsumeOp(tokens, ','); + } + if (hasDelimiters) { + consumeOp(tokens, '}'); + } + return result; + } + function consumeValue(tokens, untilTest){ + var out; + untilTest == null && (untilTest = ''); + out = ''; + while (tokens.length && -1 === untilTest.indexOf(tokens[0])) { + out += tokens.shift(); + } + return out; + } + function consumeElement(tokens, untilTest){ + switch (tokens[0]) { + case '[': + return consumeArray(tokens, true); + case '(': + return consumeTuple(tokens, true); + case '{': + return consumeFields(tokens, true); + default: + return consumeValue(tokens, untilTest); + } + } + function consumeTopLevel(tokens, types, options){ + var ref$, type, structure, origTokens, result, finalResult, x$, y$; + ref$ = types[0], type = ref$.type, structure = ref$.structure; + origTokens = tokens.concat(); + if (!options.explicit && types.length === 1 && ((!type && structure) || (type === 'Array' || type === 'Object'))) { + result = structure === 'array' || type === 'Array' + ? consumeArray(tokens, tokens[0] === '[') + : structure === 'tuple' + ? consumeTuple(tokens, tokens[0] === '(') + : consumeFields(tokens, tokens[0] === '{'); + finalResult = tokens.length ? consumeElement(structure === 'array' || type === 'Array' + ? (x$ = origTokens, x$.unshift('['), x$.push(']'), x$) + : (y$ = origTokens, y$.unshift('('), y$.push(')'), y$)) : result; + } else { + finalResult = consumeElement(tokens); + } + return finalResult; + } + special = /\[\]\(\)}{:,/.source; + tokenRegex = RegExp('("(?:\\\\"|[^"])*")|(\'(?:\\\\\'|[^\'])*\')|(/(?:\\\\/|[^/])*/[a-zA-Z]*)|(#.*#)|([' + special + '])|([^\\s' + special + '](?:\\s*[^\\s' + special + ']+)*)|\\s*'); + module.exports = function(types, string, options){ + var tokens, node; + options == null && (options = {}); + if (!options.explicit && types.length === 1 && types[0].type === 'String') { + return string; + } + tokens = reject(not$, string.split(tokenRegex)); + node = consumeTopLevel(tokens, types, options); + if (!node) { + throw new Error("Error parsing '" + string + "'."); + } + return node; + }; + function not$(x){ return !x; } +}).call(this); diff --git a/node_modules/levn/package.json b/node_modules/levn/package.json new file mode 100644 index 0000000..0c356d6 --- /dev/null +++ b/node_modules/levn/package.json @@ -0,0 +1,46 @@ +{ + "name": "levn", + "version": "0.4.1", + "author": "George Zahariev ", + "description": "Light ECMAScript (JavaScript) Value Notation - human written, concise, typed, flexible", + "homepage": "https://github.com/gkz/levn", + "keywords": [ + "levn", + "light", + "ecmascript", + "value", + "notation", + "json", + "typed", + "human", + "concise", + "typed", + "flexible" + ], + "files": [ + "lib", + "README.md", + "LICENSE" + ], + "main": "./lib/", + "bugs": "https://github.com/gkz/levn/issues", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/gkz/levn.git" + }, + "scripts": { + "test": "make test" + }, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "devDependencies": { + "livescript": "^1.6.0", + "mocha": "^7.1.1" + } +} diff --git a/node_modules/locate-path/index.d.ts b/node_modules/locate-path/index.d.ts new file mode 100644 index 0000000..a714f1d --- /dev/null +++ b/node_modules/locate-path/index.d.ts @@ -0,0 +1,83 @@ +declare namespace locatePath { + interface Options { + /** + Current working directory. + + @default process.cwd() + */ + readonly cwd?: string; + + /** + Type of path to match. + + @default 'file' + */ + readonly type?: 'file' | 'directory'; + + /** + Allow symbolic links to match if they point to the requested path type. + + @default true + */ + readonly allowSymlinks?: boolean; + } + + interface AsyncOptions extends Options { + /** + Number of concurrently pending promises. Minimum: `1`. + + @default Infinity + */ + readonly concurrency?: number; + + /** + Preserve `paths` order when searching. + + Disable this to improve performance if you don't care about the order. + + @default true + */ + readonly preserveOrder?: boolean; + } +} + +declare const locatePath: { + /** + Synchronously get the first path that exists on disk of multiple paths. + + @param paths - Paths to check. + @returns The first path that exists or `undefined` if none exists. + */ + sync: ( + paths: Iterable, + options?: locatePath.Options + ) => string | undefined; + + /** + Get the first path that exists on disk of multiple paths. + + @param paths - Paths to check. + @returns The first path that exists or `undefined` if none exists. + + @example + ``` + import locatePath = require('locate-path'); + + const files = [ + 'unicorn.png', + 'rainbow.png', // Only this one actually exists on disk + 'pony.png' + ]; + + (async () => { + console(await locatePath(files)); + //=> 'rainbow' + })(); + ``` + */ + (paths: Iterable, options?: locatePath.AsyncOptions): Promise< + string | undefined + >; +}; + +export = locatePath; diff --git a/node_modules/locate-path/index.js b/node_modules/locate-path/index.js new file mode 100644 index 0000000..a6358e5 --- /dev/null +++ b/node_modules/locate-path/index.js @@ -0,0 +1,68 @@ +'use strict'; +const path = require('path'); +const fs = require('fs'); +const {promisify} = require('util'); +const pLocate = require('p-locate'); + +const fsStat = promisify(fs.stat); +const fsLStat = promisify(fs.lstat); + +const typeMappings = { + directory: 'isDirectory', + file: 'isFile' +}; + +function checkType({type}) { + if (type in typeMappings) { + return; + } + + throw new Error(`Invalid type specified: ${type}`); +} + +const matchType = (type, stat) => type === undefined || stat[typeMappings[type]](); + +module.exports = async (paths, options) => { + options = { + cwd: process.cwd(), + type: 'file', + allowSymlinks: true, + ...options + }; + + checkType(options); + + const statFn = options.allowSymlinks ? fsStat : fsLStat; + + return pLocate(paths, async path_ => { + try { + const stat = await statFn(path.resolve(options.cwd, path_)); + return matchType(options.type, stat); + } catch { + return false; + } + }, options); +}; + +module.exports.sync = (paths, options) => { + options = { + cwd: process.cwd(), + allowSymlinks: true, + type: 'file', + ...options + }; + + checkType(options); + + const statFn = options.allowSymlinks ? fs.statSync : fs.lstatSync; + + for (const path_ of paths) { + try { + const stat = statFn(path.resolve(options.cwd, path_)); + + if (matchType(options.type, stat)) { + return path_; + } + } catch {} + } +}; diff --git a/node_modules/locate-path/license b/node_modules/locate-path/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/locate-path/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/locate-path/package.json b/node_modules/locate-path/package.json new file mode 100644 index 0000000..08bea50 --- /dev/null +++ b/node_modules/locate-path/package.json @@ -0,0 +1,46 @@ +{ + "name": "locate-path", + "version": "6.0.0", + "description": "Get the first path that exists on disk of multiple paths", + "license": "MIT", + "repository": "sindresorhus/locate-path", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "locate", + "path", + "paths", + "file", + "files", + "exists", + "find", + "finder", + "search", + "searcher", + "array", + "iterable", + "iterator" + ], + "dependencies": { + "p-locate": "^5.0.0" + }, + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.13.1", + "xo": "^0.32.1" + } +} diff --git a/node_modules/locate-path/readme.md b/node_modules/locate-path/readme.md new file mode 100644 index 0000000..1002bcd --- /dev/null +++ b/node_modules/locate-path/readme.md @@ -0,0 +1,125 @@ +# locate-path [![Build Status](https://travis-ci.com/sindresorhus/locate-path.svg?branch=master)](https://travis-ci.com/github/sindresorhus/locate-path) + +> Get the first path that exists on disk of multiple paths + +## Install + +``` +$ npm install locate-path +``` + +## Usage + +Here we find the first file that exists on disk, in array order. + +```js +const locatePath = require('locate-path'); + +const files = [ + 'unicorn.png', + 'rainbow.png', // Only this one actually exists on disk + 'pony.png' +]; + +(async () => { + console(await locatePath(files)); + //=> 'rainbow' +})(); +``` + +## API + +### locatePath(paths, options?) + +Returns a `Promise` for the first path that exists or `undefined` if none exists. + +#### paths + +Type: `Iterable` + +Paths to check. + +#### options + +Type: `object` + +##### concurrency + +Type: `number`\ +Default: `Infinity`\ +Minimum: `1` + +Number of concurrently pending promises. + +##### preserveOrder + +Type: `boolean`\ +Default: `true` + +Preserve `paths` order when searching. + +Disable this to improve performance if you don't care about the order. + +##### cwd + +Type: `string`\ +Default: `process.cwd()` + +Current working directory. + +##### type + +Type: `string`\ +Default: `'file'`\ +Values: `'file' | 'directory'` + +The type of paths that can match. + +##### allowSymlinks + +Type: `boolean`\ +Default: `true` + +Allow symbolic links to match if they point to the chosen path type. + +### locatePath.sync(paths, options?) + +Returns the first path that exists or `undefined` if none exists. + +#### paths + +Type: `Iterable` + +Paths to check. + +#### options + +Type: `object` + +##### cwd + +Same as above. + +##### type + +Same as above. + +##### allowSymlinks + +Same as above. + +## Related + +- [path-exists](https://github.com/sindresorhus/path-exists) - Check if a path exists + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/lodash.merge/LICENSE b/node_modules/lodash.merge/LICENSE new file mode 100644 index 0000000..77c42f1 --- /dev/null +++ b/node_modules/lodash.merge/LICENSE @@ -0,0 +1,47 @@ +Copyright OpenJS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. diff --git a/node_modules/lodash.merge/README.md b/node_modules/lodash.merge/README.md new file mode 100644 index 0000000..91b7538 --- /dev/null +++ b/node_modules/lodash.merge/README.md @@ -0,0 +1,18 @@ +# lodash.merge v4.6.2 + +The [Lodash](https://lodash.com/) method `_.merge` exported as a [Node.js](https://nodejs.org/) module. + +## Installation + +Using npm: +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.merge +``` + +In Node.js: +```js +var merge = require('lodash.merge'); +``` + +See the [documentation](https://lodash.com/docs#merge) or [package source](https://github.com/lodash/lodash/blob/4.6.2-npm-packages/lodash.merge) for more details. diff --git a/node_modules/lodash.merge/index.js b/node_modules/lodash.merge/index.js new file mode 100644 index 0000000..8e75d95 --- /dev/null +++ b/node_modules/lodash.merge/index.js @@ -0,0 +1,1977 @@ +/** + * Lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + nullTag = '[object Null]', + objectTag = '[object Object]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + undefinedTag = '[object Undefined]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +/** Used for built-in method references. */ +var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined, + Symbol = root.Symbol, + Uint8Array = root.Uint8Array, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, + getPrototype = overArg(Object.getPrototypeOf, Object), + objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice, + symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, + nativeMax = Math.max, + nativeNow = Date.now; + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'), + nativeCreate = getNative(Object, 'create'); + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); +} + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); +} + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; +} + +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; +} + +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} + +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} + +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} + +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; +} + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; + } + + if (key == '__proto__') { + return; + } + + return object[key]; +} + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ +function toPlainObject(value) { + return copyObject(value, keysIn(value)); +} + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ +var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); +}); + +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = merge; diff --git a/node_modules/lodash.merge/package.json b/node_modules/lodash.merge/package.json new file mode 100644 index 0000000..3130fc8 --- /dev/null +++ b/node_modules/lodash.merge/package.json @@ -0,0 +1,16 @@ +{ + "name": "lodash.merge", + "version": "4.6.2", + "description": "The Lodash method `_.merge` exported as a module.", + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "keywords": "lodash-modularized, merge", + "author": "John-David Dalton ", + "contributors": [ + "John-David Dalton ", + "Mathias Bynens " + ], + "repository": "lodash/lodash", + "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } +} diff --git a/node_modules/merge2/LICENSE b/node_modules/merge2/LICENSE new file mode 100644 index 0000000..31dd9c7 --- /dev/null +++ b/node_modules/merge2/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2020 Teambition + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/merge2/README.md b/node_modules/merge2/README.md new file mode 100644 index 0000000..27f8eb9 --- /dev/null +++ b/node_modules/merge2/README.md @@ -0,0 +1,144 @@ +# merge2 + +Merge multiple streams into one stream in sequence or parallel. + +[![NPM version][npm-image]][npm-url] +[![Build Status][travis-image]][travis-url] +[![Downloads][downloads-image]][downloads-url] + +## Install + +Install with [npm](https://npmjs.org/package/merge2) + +```sh +npm install merge2 +``` + +## Usage + +```js +const gulp = require('gulp') +const merge2 = require('merge2') +const concat = require('gulp-concat') +const minifyHtml = require('gulp-minify-html') +const ngtemplate = require('gulp-ngtemplate') + +gulp.task('app-js', function () { + return merge2( + gulp.src('static/src/tpl/*.html') + .pipe(minifyHtml({empty: true})) + .pipe(ngtemplate({ + module: 'genTemplates', + standalone: true + }) + ), gulp.src([ + 'static/src/js/app.js', + 'static/src/js/locale_zh-cn.js', + 'static/src/js/router.js', + 'static/src/js/tools.js', + 'static/src/js/services.js', + 'static/src/js/filters.js', + 'static/src/js/directives.js', + 'static/src/js/controllers.js' + ]) + ) + .pipe(concat('app.js')) + .pipe(gulp.dest('static/dist/js/')) +}) +``` + +```js +const stream = merge2([stream1, stream2], stream3, {end: false}) +//... +stream.add(stream4, stream5) +//.. +stream.end() +``` + +```js +// equal to merge2([stream1, stream2], stream3) +const stream = merge2() +stream.add([stream1, stream2]) +stream.add(stream3) +``` + +```js +// merge order: +// 1. merge `stream1`; +// 2. merge `stream2` and `stream3` in parallel after `stream1` merged; +// 3. merge 'stream4' after `stream2` and `stream3` merged; +const stream = merge2(stream1, [stream2, stream3], stream4) + +// merge order: +// 1. merge `stream5` and `stream6` in parallel after `stream4` merged; +// 2. merge 'stream7' after `stream5` and `stream6` merged; +stream.add([stream5, stream6], stream7) +``` + +```js +// nest merge +// equal to merge2(stream1, stream2, stream6, stream3, [stream4, stream5]); +const streamA = merge2(stream1, stream2) +const streamB = merge2(stream3, [stream4, stream5]) +const stream = merge2(streamA, streamB) +streamA.add(stream6) +``` + +## API + +```js +const merge2 = require('merge2') +``` + +### merge2() + +### merge2(options) + +### merge2(stream1, stream2, ..., streamN) + +### merge2(stream1, stream2, ..., streamN, options) + +### merge2(stream1, [stream2, stream3, ...], streamN, options) + +return a duplex stream (mergedStream). streams in array will be merged in parallel. + +### mergedStream.add(stream) + +### mergedStream.add(stream1, [stream2, stream3, ...], ...) + +return the mergedStream. + +### mergedStream.on('queueDrain', function() {}) + +It will emit 'queueDrain' when all streams merged. If you set `end === false` in options, this event give you a notice that should add more streams to merge or end the mergedStream. + +#### stream + +*option* +Type: `Readable` or `Duplex` or `Transform` stream. + +#### options + +*option* +Type: `Object`. + +* **end** - `Boolean` - if `end === false` then mergedStream will not be auto ended, you should end by yourself. **Default:** `undefined` + +* **pipeError** - `Boolean` - if `pipeError === true` then mergedStream will emit `error` event from source streams. **Default:** `undefined` + +* **objectMode** - `Boolean` . **Default:** `true` + +`objectMode` and other options(`highWaterMark`, `defaultEncoding` ...) is same as Node.js `Stream`. + +## License + +MIT © [Teambition](https://www.teambition.com) + +[npm-url]: https://npmjs.org/package/merge2 +[npm-image]: http://img.shields.io/npm/v/merge2.svg + +[travis-url]: https://travis-ci.org/teambition/merge2 +[travis-image]: http://img.shields.io/travis/teambition/merge2.svg + +[downloads-url]: https://npmjs.org/package/merge2 +[downloads-image]: http://img.shields.io/npm/dm/merge2.svg?style=flat-square diff --git a/node_modules/merge2/index.js b/node_modules/merge2/index.js new file mode 100644 index 0000000..78a61ed --- /dev/null +++ b/node_modules/merge2/index.js @@ -0,0 +1,144 @@ +'use strict' +/* + * merge2 + * https://github.com/teambition/merge2 + * + * Copyright (c) 2014-2020 Teambition + * Licensed under the MIT license. + */ +const Stream = require('stream') +const PassThrough = Stream.PassThrough +const slice = Array.prototype.slice + +module.exports = merge2 + +function merge2 () { + const streamsQueue = [] + const args = slice.call(arguments) + let merging = false + let options = args[args.length - 1] + + if (options && !Array.isArray(options) && options.pipe == null) { + args.pop() + } else { + options = {} + } + + const doEnd = options.end !== false + const doPipeError = options.pipeError === true + if (options.objectMode == null) { + options.objectMode = true + } + if (options.highWaterMark == null) { + options.highWaterMark = 64 * 1024 + } + const mergedStream = PassThrough(options) + + function addStream () { + for (let i = 0, len = arguments.length; i < len; i++) { + streamsQueue.push(pauseStreams(arguments[i], options)) + } + mergeStream() + return this + } + + function mergeStream () { + if (merging) { + return + } + merging = true + + let streams = streamsQueue.shift() + if (!streams) { + process.nextTick(endStream) + return + } + if (!Array.isArray(streams)) { + streams = [streams] + } + + let pipesCount = streams.length + 1 + + function next () { + if (--pipesCount > 0) { + return + } + merging = false + mergeStream() + } + + function pipe (stream) { + function onend () { + stream.removeListener('merge2UnpipeEnd', onend) + stream.removeListener('end', onend) + if (doPipeError) { + stream.removeListener('error', onerror) + } + next() + } + function onerror (err) { + mergedStream.emit('error', err) + } + // skip ended stream + if (stream._readableState.endEmitted) { + return next() + } + + stream.on('merge2UnpipeEnd', onend) + stream.on('end', onend) + + if (doPipeError) { + stream.on('error', onerror) + } + + stream.pipe(mergedStream, { end: false }) + // compatible for old stream + stream.resume() + } + + for (let i = 0; i < streams.length; i++) { + pipe(streams[i]) + } + + next() + } + + function endStream () { + merging = false + // emit 'queueDrain' when all streams merged. + mergedStream.emit('queueDrain') + if (doEnd) { + mergedStream.end() + } + } + + mergedStream.setMaxListeners(0) + mergedStream.add = addStream + mergedStream.on('unpipe', function (stream) { + stream.emit('merge2UnpipeEnd') + }) + + if (args.length) { + addStream.apply(null, args) + } + return mergedStream +} + +// check and pause streams for pipe. +function pauseStreams (streams, options) { + if (!Array.isArray(streams)) { + // Backwards-compat with old-style streams + if (!streams._readableState && streams.pipe) { + streams = streams.pipe(PassThrough(options)) + } + if (!streams._readableState || !streams.pause || !streams.pipe) { + throw new Error('Only readable stream can be merged.') + } + streams.pause() + } else { + for (let i = 0, len = streams.length; i < len; i++) { + streams[i] = pauseStreams(streams[i], options) + } + } + return streams +} diff --git a/node_modules/merge2/package.json b/node_modules/merge2/package.json new file mode 100644 index 0000000..7777307 --- /dev/null +++ b/node_modules/merge2/package.json @@ -0,0 +1,43 @@ +{ + "name": "merge2", + "description": "Merge multiple streams into one stream in sequence or parallel.", + "authors": [ + "Yan Qing " + ], + "license": "MIT", + "version": "1.4.1", + "main": "./index.js", + "repository": { + "type": "git", + "url": "git@github.com:teambition/merge2.git" + }, + "homepage": "https://github.com/teambition/merge2", + "keywords": [ + "merge2", + "multiple", + "sequence", + "parallel", + "merge", + "stream", + "merge stream", + "sync" + ], + "engines": { + "node": ">= 8" + }, + "dependencies": {}, + "devDependencies": { + "standard": "^14.3.4", + "through2": "^3.0.1", + "thunks": "^4.9.6", + "tman": "^1.10.0", + "to-through": "^2.0.0" + }, + "scripts": { + "test": "standard && tman" + }, + "files": [ + "README.md", + "index.js" + ] +} diff --git a/node_modules/micromatch/LICENSE b/node_modules/micromatch/LICENSE new file mode 100755 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/micromatch/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/micromatch/README.md b/node_modules/micromatch/README.md new file mode 100644 index 0000000..fd56336 --- /dev/null +++ b/node_modules/micromatch/README.md @@ -0,0 +1,1011 @@ +# micromatch [![NPM version](https://img.shields.io/npm/v/micromatch.svg?style=flat)](https://www.npmjs.com/package/micromatch) [![NPM monthly downloads](https://img.shields.io/npm/dm/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![NPM total downloads](https://img.shields.io/npm/dt/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![Tests](https://github.com/micromatch/micromatch/actions/workflows/test.yml/badge.svg)](https://github.com/micromatch/micromatch/actions/workflows/test.yml) + +> Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Table of Contents + +
+Details + +- [Install](#install) +- [Quickstart](#quickstart) +- [Why use micromatch?](#why-use-micromatch) + * [Matching features](#matching-features) +- [Switching to micromatch](#switching-to-micromatch) + * [From minimatch](#from-minimatch) + * [From multimatch](#from-multimatch) +- [API](#api) +- [Options](#options) +- [Options Examples](#options-examples) + * [options.basename](#optionsbasename) + * [options.bash](#optionsbash) + * [options.expandRange](#optionsexpandrange) + * [options.format](#optionsformat) + * [options.ignore](#optionsignore) + * [options.matchBase](#optionsmatchbase) + * [options.noextglob](#optionsnoextglob) + * [options.nonegate](#optionsnonegate) + * [options.noglobstar](#optionsnoglobstar) + * [options.nonull](#optionsnonull) + * [options.nullglob](#optionsnullglob) + * [options.onIgnore](#optionsonignore) + * [options.onMatch](#optionsonmatch) + * [options.onResult](#optionsonresult) + * [options.posixSlashes](#optionsposixslashes) + * [options.unescape](#optionsunescape) +- [Extended globbing](#extended-globbing) + * [Extglobs](#extglobs) + * [Braces](#braces) + * [Regex character classes](#regex-character-classes) + * [Regex groups](#regex-groups) + * [POSIX bracket expressions](#posix-bracket-expressions) +- [Notes](#notes) + * [Bash 4.3 parity](#bash-43-parity) + * [Backslashes](#backslashes) +- [Benchmarks](#benchmarks) + * [Running benchmarks](#running-benchmarks) + * [Latest results](#latest-results) +- [Contributing](#contributing) +- [About](#about) + +
+ +## Install + +Install with [npm](https://www.npmjs.com/) (requires [Node.js](https://nodejs.org/en/) >=8.6): + +```sh +$ npm install --save micromatch +``` + +## Quickstart + +```js +const micromatch = require('micromatch'); +// micromatch(list, patterns[, options]); +``` + +The [main export](#micromatch) takes a list of strings and one or more glob patterns: + +```js +console.log(micromatch(['foo', 'bar', 'baz', 'qux'], ['f*', 'b*'])) //=> ['foo', 'bar', 'baz'] +console.log(micromatch(['foo', 'bar', 'baz', 'qux'], ['*', '!b*'])) //=> ['foo', 'qux'] +``` + +Use [.isMatch()](#ismatch) to for boolean matching: + +```js +console.log(micromatch.isMatch('foo', 'f*')) //=> true +console.log(micromatch.isMatch('foo', ['b*', 'f*'])) //=> true +``` + +[Switching](#switching-to-micromatch) from minimatch and multimatch is easy! + +
+ +## Why use micromatch? + +> micromatch is a [replacement](#switching-to-micromatch) for minimatch and multimatch + +* Supports all of the same matching features as [minimatch](https://github.com/isaacs/minimatch) and [multimatch](https://github.com/sindresorhus/multimatch) +* More complete support for the Bash 4.3 specification than minimatch and multimatch. Micromatch passes _all of the spec tests_ from bash, including some that bash still fails. +* **Fast & Performant** - Loads in about 5ms and performs [fast matches](#benchmarks). +* **Glob matching** - Using wildcards (`*` and `?`), globstars (`**`) for nested directories +* **[Advanced globbing](#extended-globbing)** - Supports [extglobs](#extglobs), [braces](#braces-1), and [POSIX brackets](#posix-bracket-expressions), and support for escaping special characters with `\` or quotes. +* **Accurate** - Covers more scenarios [than minimatch](https://github.com/yarnpkg/yarn/pull/3339) +* **Well tested** - More than 5,000 [test assertions](./test) +* **Windows support** - More reliable windows support than minimatch and multimatch. +* **[Safe](https://github.com/micromatch/braces#braces-is-safe)** - Micromatch is not subject to DoS with brace patterns like minimatch and multimatch. + +### Matching features + +* Support for multiple glob patterns (no need for wrappers like multimatch) +* Wildcards (`**`, `*.js`) +* Negation (`'!a/*.js'`, `'*!(b).js'`) +* [extglobs](#extglobs) (`+(x|y)`, `!(a|b)`) +* [POSIX character classes](#posix-bracket-expressions) (`[[:alpha:][:digit:]]`) +* [brace expansion](https://github.com/micromatch/braces) (`foo/{1..5}.md`, `bar/{a,b,c}.js`) +* regex character classes (`foo-[1-5].js`) +* regex logical "or" (`foo/(abc|xyz).js`) + +You can mix and match these features to create whatever patterns you need! + +## Switching to micromatch + +_(There is one notable difference between micromatch and minimatch in regards to how backslashes are handled. See [the notes about backslashes](#backslashes) for more information.)_ + +### From minimatch + +Use [micromatch.isMatch()](#ismatch) instead of `minimatch()`: + +```js +console.log(micromatch.isMatch('foo', 'b*')); //=> false +``` + +Use [micromatch.match()](#match) instead of `minimatch.match()`: + +```js +console.log(micromatch.match(['foo', 'bar'], 'b*')); //=> 'bar' +``` + +### From multimatch + +Same signature: + +```js +console.log(micromatch(['foo', 'bar', 'baz'], ['f*', '*z'])); //=> ['foo', 'baz'] +``` + +## API + +**Params** + +* `list` **{String|Array}**: List of strings to match. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) +* `returns` **{Array}**: Returns an array of matches + +**Example** + +```js +const mm = require('micromatch'); +// mm(list, patterns[, options]); + +console.log(mm(['a.js', 'a.txt'], ['*.js'])); +//=> [ 'a.js' ] +``` + +### [.matcher](index.js#L104) + +Returns a matcher function from the given glob `pattern` and `options`. The returned function takes a string to match as its only argument and returns true if the string is a match. + +**Params** + +* `pattern` **{String}**: Glob pattern +* `options` **{Object}** +* `returns` **{Function}**: Returns a matcher function. + +**Example** + +```js +const mm = require('micromatch'); +// mm.matcher(pattern[, options]); + +const isMatch = mm.matcher('*.!(*a)'); +console.log(isMatch('a.a')); //=> false +console.log(isMatch('a.b')); //=> true +``` + +### [.isMatch](index.js#L123) + +Returns true if **any** of the given glob `patterns` match the specified `string`. + +**Params** + +* `str` **{String}**: The string to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `[options]` **{Object}**: See available [options](#options). +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const mm = require('micromatch'); +// mm.isMatch(string, patterns[, options]); + +console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true +console.log(mm.isMatch('a.a', 'b.*')); //=> false +``` + +### [.not](index.js#L148) + +Returns a list of strings that _**do not match any**_ of the given `patterns`. + +**Params** + +* `list` **{Array}**: Array of strings to match. +* `patterns` **{String|Array}**: One or more glob pattern to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Array}**: Returns an array of strings that **do not match** the given patterns. + +**Example** + +```js +const mm = require('micromatch'); +// mm.not(list, patterns[, options]); + +console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); +//=> ['b.b', 'c.c'] +``` + +### [.contains](index.js#L188) + +Returns true if the given `string` contains the given pattern. Similar to [.isMatch](#isMatch) but the pattern can match any part of the string. + +**Params** + +* `str` **{String}**: The string to match. +* `patterns` **{String|Array}**: Glob pattern to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any of the patterns matches any part of `str`. + +**Example** + +```js +var mm = require('micromatch'); +// mm.contains(string, pattern[, options]); + +console.log(mm.contains('aa/bb/cc', '*b')); +//=> true +console.log(mm.contains('aa/bb/cc', '*d')); +//=> false +``` + +### [.matchKeys](index.js#L230) + +Filter the keys of the given object with the given `glob` pattern and `options`. Does not attempt to match nested keys. If you need this feature, use [glob-object](https://github.com/jonschlinkert/glob-object) instead. + +**Params** + +* `object` **{Object}**: The object with keys to filter. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Object}**: Returns an object with only keys that match the given patterns. + +**Example** + +```js +const mm = require('micromatch'); +// mm.matchKeys(object, patterns[, options]); + +const obj = { aa: 'a', ab: 'b', ac: 'c' }; +console.log(mm.matchKeys(obj, '*b')); +//=> { ab: 'b' } +``` + +### [.some](index.js#L259) + +Returns true if some of the strings in the given `list` match any of the given glob `patterns`. + +**Params** + +* `list` **{String|Array}**: The string or array of strings to test. Returns as soon as the first match is found. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any `patterns` matches any of the strings in `list` + +**Example** + +```js +const mm = require('micromatch'); +// mm.some(list, patterns[, options]); + +console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); +// true +console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); +// false +``` + +### [.every](index.js#L295) + +Returns true if every string in the given `list` matches any of the given glob `patterns`. + +**Params** + +* `list` **{String|Array}**: The string or array of strings to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if all `patterns` matches all of the strings in `list` + +**Example** + +```js +const mm = require('micromatch'); +// mm.every(list, patterns[, options]); + +console.log(mm.every('foo.js', ['foo.js'])); +// true +console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); +// true +console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); +// false +console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); +// false +``` + +### [.all](index.js#L334) + +Returns true if **all** of the given `patterns` match the specified string. + +**Params** + +* `str` **{String|Array}**: The string to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const mm = require('micromatch'); +// mm.all(string, patterns[, options]); + +console.log(mm.all('foo.js', ['foo.js'])); +// true + +console.log(mm.all('foo.js', ['*.js', '!foo.js'])); +// false + +console.log(mm.all('foo.js', ['*.js', 'foo.js'])); +// true + +console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); +// true +``` + +### [.capture](index.js#L361) + +Returns an array of matches captured by `pattern` in `string, or`null` if the pattern did not match. + +**Params** + +* `glob` **{String}**: Glob pattern to use for matching. +* `input` **{String}**: String to match +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Array|null}**: Returns an array of captures if the input matches the glob pattern, otherwise `null`. + +**Example** + +```js +const mm = require('micromatch'); +// mm.capture(pattern, string[, options]); + +console.log(mm.capture('test/*.js', 'test/foo.js')); +//=> ['foo'] +console.log(mm.capture('test/*.js', 'foo/bar.css')); +//=> null +``` + +### [.makeRe](index.js#L387) + +Create a regular expression from the given glob `pattern`. + +**Params** + +* `pattern` **{String}**: A glob pattern to convert to regex. +* `options` **{Object}** +* `returns` **{RegExp}**: Returns a regex created from the given pattern. + +**Example** + +```js +const mm = require('micromatch'); +// mm.makeRe(pattern[, options]); + +console.log(mm.makeRe('*.js')); +//=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ +``` + +### [.scan](index.js#L403) + +Scan a glob pattern to separate the pattern into segments. Used by the [split](#split) method. + +**Params** + +* `pattern` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with + +**Example** + +```js +const mm = require('micromatch'); +const state = mm.scan(pattern[, options]); +``` + +### [.parse](index.js#L419) + +Parse a glob pattern to create the source string for a regular expression. + +**Params** + +* `glob` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with useful properties and output to be used as regex source string. + +**Example** + +```js +const mm = require('micromatch'); +const state = mm.parse(pattern[, options]); +``` + +### [.braces](index.js#L446) + +Process the given brace `pattern`. + +**Params** + +* `pattern` **{String}**: String with brace pattern to process. +* `options` **{Object}**: Any [options](#options) to change how expansion is performed. See the [braces](https://github.com/micromatch/braces) library for all available options. +* `returns` **{Array}** + +**Example** + +```js +const { braces } = require('micromatch'); +console.log(braces('foo/{a,b,c}/bar')); +//=> [ 'foo/(a|b|c)/bar' ] + +console.log(braces('foo/{a,b,c}/bar', { expand: true })); +//=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] +``` + +## Options + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `basename` | `boolean` | `false` | If set, then patterns without slashes will be matched against the basename of the path if it contains slashes. For example, `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. | +| `bash` | `boolean` | `false` | Follow bash matching rules more strictly - disallows backslashes as escape characters, and treats single stars as globstars (`**`). | +| `capture` | `boolean` | `undefined` | Return regex matches in supporting methods. | +| `contains` | `boolean` | `undefined` | Allows glob to match any part of the given string(s). | +| `cwd` | `string` | `process.cwd()` | Current working directory. Used by `picomatch.split()` | +| `debug` | `boolean` | `undefined` | Debug regular expressions when an error is thrown. | +| `dot` | `boolean` | `false` | Match dotfiles. Otherwise dotfiles are ignored unless a `.` is explicitly defined in the pattern. | +| `expandRange` | `function` | `undefined` | Custom function for expanding ranges in brace patterns, such as `{a..z}`. The function receives the range values as two arguments, and it must return a string to be used in the generated regex. It's recommended that returned strings be wrapped in parentheses. This option is overridden by the `expandBrace` option. | +| `failglob` | `boolean` | `false` | Similar to the `failglob` behavior in Bash, throws an error when no matches are found. Based on the bash option of the same name. | +| `fastpaths` | `boolean` | `true` | To speed up processing, full parsing is skipped for a handful common glob patterns. Disable this behavior by setting this option to `false`. | +| `flags` | `boolean` | `undefined` | Regex flags to use in the generated regex. If defined, the `nocase` option will be overridden. | +| [format](#optionsformat) | `function` | `undefined` | Custom function for formatting the returned string. This is useful for removing leading slashes, converting Windows paths to Posix paths, etc. | +| `ignore` | `array\|string` | `undefined` | One or more glob patterns for excluding strings that should not be matched from the result. | +| `keepQuotes` | `boolean` | `false` | Retain quotes in the generated regex, since quotes may also be used as an alternative to backslashes. | +| `literalBrackets` | `boolean` | `undefined` | When `true`, brackets in the glob pattern will be escaped so that only literal brackets will be matched. | +| `lookbehinds` | `boolean` | `true` | Support regex positive and negative lookbehinds. Note that you must be using Node 8.1.10 or higher to enable regex lookbehinds. | +| `matchBase` | `boolean` | `false` | Alias for `basename` | +| `maxLength` | `boolean` | `65536` | Limit the max length of the input string. An error is thrown if the input string is longer than this value. | +| `nobrace` | `boolean` | `false` | Disable brace matching, so that `{a,b}` and `{1..3}` would be treated as literal characters. | +| `nobracket` | `boolean` | `undefined` | Disable matching with regex brackets. | +| `nocase` | `boolean` | `false` | Perform case-insensitive matching. Equivalent to the regex `i` flag. Note that this option is ignored when the `flags` option is defined. | +| `nodupes` | `boolean` | `true` | Deprecated, use `nounique` instead. This option will be removed in a future major release. By default duplicates are removed. Disable uniquification by setting this option to false. | +| `noext` | `boolean` | `false` | Alias for `noextglob` | +| `noextglob` | `boolean` | `false` | Disable support for matching with [extglobs](#extglobs) (like `+(a\|b)`) | +| `noglobstar` | `boolean` | `false` | Disable support for matching nested directories with globstars (`**`) | +| `nonegate` | `boolean` | `false` | Disable support for negating with leading `!` | +| `noquantifiers` | `boolean` | `false` | Disable support for regex quantifiers (like `a{1,2}`) and treat them as brace patterns to be expanded. | +| [onIgnore](#optionsonIgnore) | `function` | `undefined` | Function to be called on ignored items. | +| [onMatch](#optionsonMatch) | `function` | `undefined` | Function to be called on matched items. | +| [onResult](#optionsonResult) | `function` | `undefined` | Function to be called on all items, regardless of whether or not they are matched or ignored. | +| `posix` | `boolean` | `false` | Support [POSIX character classes](#posix-bracket-expressions) ("posix brackets"). | +| `posixSlashes` | `boolean` | `undefined` | Convert all slashes in file paths to forward slashes. This does not convert slashes in the glob pattern itself | +| `prepend` | `string` | `undefined` | String to prepend to the generated regex used for matching. | +| `regex` | `boolean` | `false` | Use regular expression rules for `+` (instead of matching literal `+`), and for stars that follow closing parentheses or brackets (as in `)*` and `]*`). | +| `strictBrackets` | `boolean` | `undefined` | Throw an error if brackets, braces, or parens are imbalanced. | +| `strictSlashes` | `boolean` | `undefined` | When true, picomatch won't match trailing slashes with single stars. | +| `unescape` | `boolean` | `undefined` | Remove preceding backslashes from escaped glob characters before creating the regular expression to perform matches. | +| `unixify` | `boolean` | `undefined` | Alias for `posixSlashes`, for backwards compatitibility. | + +## Options Examples + +### options.basename + +Allow glob patterns without slashes to match a file path based on its basename. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `matchBase`. + +**Type**: `Boolean` + +**Default**: `false` + +**Example** + +```js +micromatch(['a/b.js', 'a/c.md'], '*.js'); +//=> [] + +micromatch(['a/b.js', 'a/c.md'], '*.js', { basename: true }); +//=> ['a/b.js'] +``` + +### options.bash + +Enabled by default, this option enforces bash-like behavior with stars immediately following a bracket expression. Bash bracket expressions are similar to regex character classes, but unlike regex, a star following a bracket expression **does not repeat the bracketed characters**. Instead, the star is treated the same as any other star. + +**Type**: `Boolean` + +**Default**: `true` + +**Example** + +```js +const files = ['abc', 'ajz']; +console.log(micromatch(files, '[a-c]*')); +//=> ['abc', 'ajz'] + +console.log(micromatch(files, '[a-c]*', { bash: false })); +``` + +### options.expandRange + +**Type**: `function` + +**Default**: `undefined` + +Custom function for expanding ranges in brace patterns. The [fill-range](https://github.com/jonschlinkert/fill-range) library is ideal for this purpose, or you can use custom code to do whatever you need. + +**Example** + +The following example shows how to create a glob that matches a numeric folder name between `01` and `25`, with leading zeros. + +```js +const fill = require('fill-range'); +const regex = micromatch.makeRe('foo/{01..25}/bar', { + expandRange(a, b) { + return `(${fill(a, b, { toRegex: true })})`; + } +}); + +console.log(regex) +//=> /^(?:foo\/((?:0[1-9]|1[0-9]|2[0-5]))\/bar)$/ + +console.log(regex.test('foo/00/bar')) // false +console.log(regex.test('foo/01/bar')) // true +console.log(regex.test('foo/10/bar')) // true +console.log(regex.test('foo/22/bar')) // true +console.log(regex.test('foo/25/bar')) // true +console.log(regex.test('foo/26/bar')) // false +``` + +### options.format + +**Type**: `function` + +**Default**: `undefined` + +Custom function for formatting strings before they're matched. + +**Example** + +```js +// strip leading './' from strings +const format = str => str.replace(/^\.\//, ''); +const isMatch = picomatch('foo/*.js', { format }); +console.log(isMatch('./foo/bar.js')) //=> true +``` + +### options.ignore + +String or array of glob patterns to match files to ignore. + +**Type**: `String|Array` + +**Default**: `undefined` + +```js +const isMatch = micromatch.matcher('*', { ignore: 'f*' }); +console.log(isMatch('foo')) //=> false +console.log(isMatch('bar')) //=> true +console.log(isMatch('baz')) //=> true +``` + +### options.matchBase + +Alias for [options.basename](#options-basename). + +### options.noextglob + +Disable extglob support, so that [extglobs](#extglobs) are regarded as literal characters. + +**Type**: `Boolean` + +**Default**: `undefined` + +**Examples** + +```js +console.log(micromatch(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)')); +//=> ['a/b', 'a/!(z)'] + +console.log(micromatch(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)', { noextglob: true })); +//=> ['a/!(z)'] (matches only as literal characters) +``` + +### options.nonegate + +Disallow negation (`!`) patterns, and treat leading `!` as a literal character to match. + +**Type**: `Boolean` + +**Default**: `undefined` + +### options.noglobstar + +Disable matching with globstars (`**`). + +**Type**: `Boolean` + +**Default**: `undefined` + +```js +micromatch(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**'); +//=> ['a/b', 'a/b/c', 'a/b/c/d'] + +micromatch(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**', {noglobstar: true}); +//=> ['a/b'] +``` + +### options.nonull + +Alias for [options.nullglob](#options-nullglob). + +### options.nullglob + +If `true`, when no matches are found the actual (arrayified) glob pattern is returned instead of an empty array. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `nonull`. + +**Type**: `Boolean` + +**Default**: `undefined` + +### options.onIgnore + +```js +const onIgnore = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); + // { glob: '*', regex: /^(?:(?!\.)(?=.)[^\/]*?\/?)$/, input: 'foo', output: 'foo' } +}; + +const isMatch = micromatch.matcher('*', { onIgnore, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +### options.onMatch + +```js +const onMatch = ({ glob, regex, input, output }) => { + console.log({ input, output }); + // { input: 'some\\path', output: 'some/path' } + // { input: 'some\\path', output: 'some/path' } + // { input: 'some\\path', output: 'some/path' } +}; + +const isMatch = micromatch.matcher('**', { onMatch, posixSlashes: true }); +isMatch('some\\path'); +isMatch('some\\path'); +isMatch('some\\path'); +``` + +### options.onResult + +```js +const onResult = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = micromatch('*', { onResult, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +### options.posixSlashes + +Convert path separators on returned files to posix/unix-style forward slashes. Aliased as `unixify` for backwards compatibility. + +**Type**: `Boolean` + +**Default**: `true` on windows, `false` everywhere else. + +**Example** + +```js +console.log(micromatch.match(['a\\b\\c'], 'a/**')); +//=> ['a/b/c'] + +console.log(micromatch.match(['a\\b\\c'], { posixSlashes: false })); +//=> ['a\\b\\c'] +``` + +### options.unescape + +Remove backslashes from escaped glob characters before creating the regular expression to perform matches. + +**Type**: `Boolean` + +**Default**: `undefined` + +**Example** + +In this example we want to match a literal `*`: + +```js +console.log(micromatch.match(['abc', 'a\\*c'], 'a\\*c')); +//=> ['a\\*c'] + +console.log(micromatch.match(['abc', 'a\\*c'], 'a\\*c', { unescape: true })); +//=> ['a*c'] +``` + +
+
+ +## Extended globbing + +Micromatch supports the following extended globbing features. + +### Extglobs + +Extended globbing, as described by the bash man page: + +| **pattern** | **regex equivalent** | **description** | +| --- | --- | --- | +| `?(pattern)` | `(pattern)?` | Matches zero or one occurrence of the given patterns | +| `*(pattern)` | `(pattern)*` | Matches zero or more occurrences of the given patterns | +| `+(pattern)` | `(pattern)+` | Matches one or more occurrences of the given patterns | +| `@(pattern)` | `(pattern)` * | Matches one of the given patterns | +| `!(pattern)` | N/A (equivalent regex is much more complicated) | Matches anything except one of the given patterns | + +* Note that `@` isn't a regex character. + +### Braces + +Brace patterns can be used to match specific ranges or sets of characters. + +**Example** + +The pattern `{f,b}*/{1..3}/{b,q}*` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +baz/1/qux +baz/2/qux +baz/3/qux +``` + +Visit [braces](https://github.com/micromatch/braces) to see the full range of features and options related to brace expansion, or to create brace matching or expansion related issues. + +### Regex character classes + +Given the list: `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`: + +* `[ac].js`: matches both `a` and `c`, returning `['a.js', 'c.js']` +* `[b-d].js`: matches from `b` to `d`, returning `['b.js', 'c.js', 'd.js']` +* `a/[A-Z].js`: matches and uppercase letter, returning `['a/E.md']` + +Learn about [regex character classes](http://www.regular-expressions.info/charclass.html). + +### Regex groups + +Given `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`: + +* `(a|c).js`: would match either `a` or `c`, returning `['a.js', 'c.js']` +* `(b|d).js`: would match either `b` or `d`, returning `['b.js', 'd.js']` +* `(b|[A-Z]).js`: would match either `b` or an uppercase letter, returning `['b.js', 'E.js']` + +As with regex, parens can be nested, so patterns like `((a|b)|c)/b` will work. Although brace expansion might be friendlier to use, depending on preference. + +### POSIX bracket expressions + +POSIX brackets are intended to be more user-friendly than regex character classes. This of course is in the eye of the beholder. + +**Example** + +```js +console.log(micromatch.isMatch('a1', '[[:alpha:][:digit:]]')) //=> true +console.log(micromatch.isMatch('a1', '[[:alpha:][:alpha:]]')) //=> false +``` + +*** + +## Notes + +### Bash 4.3 parity + +Whenever possible matching behavior is based on behavior Bash 4.3, which is mostly consistent with minimatch. + +However, it's suprising how many edge cases and rabbit holes there are with glob matching, and since there is no real glob specification, and micromatch is more accurate than both Bash and minimatch, there are cases where best-guesses were made for behavior. In a few cases where Bash had no answers, we used wildmatch (used by git) as a fallback. + +### Backslashes + +There is an important, notable difference between minimatch and micromatch _in regards to how backslashes are handled_ in glob patterns. + +* Micromatch exclusively and explicitly reserves backslashes for escaping characters in a glob pattern, even on windows, which is consistent with bash behavior. _More importantly, unescaping globs can result in unsafe regular expressions_. +* Minimatch converts all backslashes to forward slashes, which means you can't use backslashes to escape any characters in your glob patterns. + +We made this decision for micromatch for a couple of reasons: + +* Consistency with bash conventions. +* Glob patterns are not filepaths. They are a type of [regular language](https://en.wikipedia.org/wiki/Regular_language) that is converted to a JavaScript regular expression. Thus, when forward slashes are defined in a glob pattern, the resulting regular expression will match windows or POSIX path separators just fine. + +**A note about joining paths to globs** + +Note that when you pass something like `path.join('foo', '*')` to micromatch, you are creating a filepath and expecting it to still work as a glob pattern. This causes problems on windows, since the `path.sep` is `\\`. + +In other words, since `\\` is reserved as an escape character in globs, on windows `path.join('foo', '*')` would result in `foo\\*`, which tells micromatch to match `*` as a literal character. This is the same behavior as bash. + +To solve this, you might be inspired to do something like `'foo\\*'.replace(/\\/g, '/')`, but this causes another, potentially much more serious, problem. + +## Benchmarks + +### Running benchmarks + +Install dependencies for running benchmarks: + +```sh +$ cd bench && npm install +``` + +Run the benchmarks: + +```sh +$ npm run bench +``` + +### Latest results + +As of March 24, 2022 (longer bars are better): + +```sh +# .makeRe star + micromatch x 2,232,802 ops/sec ±2.34% (89 runs sampled)) + minimatch x 781,018 ops/sec ±6.74% (92 runs sampled)) + +# .makeRe star; dot=true + micromatch x 1,863,453 ops/sec ±0.74% (93 runs sampled) + minimatch x 723,105 ops/sec ±0.75% (93 runs sampled) + +# .makeRe globstar + micromatch x 1,624,179 ops/sec ±2.22% (91 runs sampled) + minimatch x 1,117,230 ops/sec ±2.78% (86 runs sampled)) + +# .makeRe globstars + micromatch x 1,658,642 ops/sec ±0.86% (92 runs sampled) + minimatch x 741,224 ops/sec ±1.24% (89 runs sampled)) + +# .makeRe with leading star + micromatch x 1,525,014 ops/sec ±1.63% (90 runs sampled) + minimatch x 561,074 ops/sec ±3.07% (89 runs sampled) + +# .makeRe - braces + micromatch x 172,478 ops/sec ±2.37% (78 runs sampled) + minimatch x 96,087 ops/sec ±2.34% (88 runs sampled))) + +# .makeRe braces - range (expanded) + micromatch x 26,973 ops/sec ±0.84% (89 runs sampled) + minimatch x 3,023 ops/sec ±0.99% (90 runs sampled)) + +# .makeRe braces - range (compiled) + micromatch x 152,892 ops/sec ±1.67% (83 runs sampled) + minimatch x 992 ops/sec ±3.50% (89 runs sampled)d)) + +# .makeRe braces - nested ranges (expanded) + micromatch x 15,816 ops/sec ±13.05% (80 runs sampled) + minimatch x 2,953 ops/sec ±1.64% (91 runs sampled) + +# .makeRe braces - nested ranges (compiled) + micromatch x 110,881 ops/sec ±1.85% (82 runs sampled) + minimatch x 1,008 ops/sec ±1.51% (91 runs sampled) + +# .makeRe braces - set (compiled) + micromatch x 134,930 ops/sec ±3.54% (63 runs sampled)) + minimatch x 43,242 ops/sec ±0.60% (93 runs sampled) + +# .makeRe braces - nested sets (compiled) + micromatch x 94,455 ops/sec ±1.74% (69 runs sampled)) + minimatch x 27,720 ops/sec ±1.84% (93 runs sampled)) +``` + +## Contributing + +All contributions are welcome! Please read [the contributing guide](.github/contributing.md) to get started. + +**Bug reports** + +Please create an issue if you encounter a bug or matching behavior that doesn't seem correct. If you find a matching-related issue, please: + +* [research existing issues first](../../issues) (open and closed) +* visit the [GNU Bash documentation](https://www.gnu.org/software/bash/manual/) to see how Bash deals with the pattern +* visit the [minimatch](https://github.com/isaacs/minimatch) documentation to cross-check expected behavior in node.js +* if all else fails, since there is no real specification for globs we will probably need to discuss expected behavior and decide how to resolve it. which means any detail you can provide to help with this discussion would be greatly appreciated. + +**Platform issues** + +It's important to us that micromatch work consistently on all platforms. If you encounter any platform-specific matching or path related issues, please let us know (pull requests are also greatly appreciated). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards. + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [braces](https://www.npmjs.com/package/braces): Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… [more](https://github.com/micromatch/braces) | [homepage](https://github.com/micromatch/braces "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.") +* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/micromatch/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.") +* [extglob](https://www.npmjs.com/package/extglob): Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob… [more](https://github.com/micromatch/extglob) | [homepage](https://github.com/micromatch/extglob "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [nanomatch](https://www.npmjs.com/package/nanomatch): Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash… [more](https://github.com/micromatch/nanomatch) | [homepage](https://github.com/micromatch/nanomatch "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 512 | [jonschlinkert](https://github.com/jonschlinkert) | +| 12 | [es128](https://github.com/es128) | +| 9 | [danez](https://github.com/danez) | +| 8 | [doowb](https://github.com/doowb) | +| 6 | [paulmillr](https://github.com/paulmillr) | +| 5 | [mrmlnc](https://github.com/mrmlnc) | +| 3 | [DrPizza](https://github.com/DrPizza) | +| 2 | [TrySound](https://github.com/TrySound) | +| 2 | [mceIdo](https://github.com/mceIdo) | +| 2 | [Glazy](https://github.com/Glazy) | +| 2 | [MartinKolarik](https://github.com/MartinKolarik) | +| 2 | [antonyk](https://github.com/antonyk) | +| 2 | [Tvrqvoise](https://github.com/Tvrqvoise) | +| 1 | [amilajack](https://github.com/amilajack) | +| 1 | [Cslove](https://github.com/Cslove) | +| 1 | [devongovett](https://github.com/devongovett) | +| 1 | [DianeLooney](https://github.com/DianeLooney) | +| 1 | [UltCombo](https://github.com/UltCombo) | +| 1 | [frangio](https://github.com/frangio) | +| 1 | [joyceerhl](https://github.com/joyceerhl) | +| 1 | [juszczykjakub](https://github.com/juszczykjakub) | +| 1 | [muescha](https://github.com/muescha) | +| 1 | [sebdeckers](https://github.com/sebdeckers) | +| 1 | [tomByrer](https://github.com/tomByrer) | +| 1 | [fidian](https://github.com/fidian) | +| 1 | [curbengh](https://github.com/curbengh) | +| 1 | [simlu](https://github.com/simlu) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | +| 1 | [yvele](https://github.com/yvele) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2022, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 24, 2022._ \ No newline at end of file diff --git a/node_modules/micromatch/index.js b/node_modules/micromatch/index.js new file mode 100644 index 0000000..1fad7f7 --- /dev/null +++ b/node_modules/micromatch/index.js @@ -0,0 +1,467 @@ +'use strict'; + +const util = require('util'); +const braces = require('braces'); +const picomatch = require('picomatch'); +const utils = require('picomatch/lib/utils'); +const isEmptyString = val => val === '' || val === './'; + +/** + * Returns an array of strings that match one or more glob patterns. + * + * ```js + * const mm = require('micromatch'); + * // mm(list, patterns[, options]); + * + * console.log(mm(['a.js', 'a.txt'], ['*.js'])); + * //=> [ 'a.js' ] + * ``` + * @param {String|Array} `list` List of strings to match. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) + * @return {Array} Returns an array of matches + * @summary false + * @api public + */ + +const micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + + let omit = new Set(); + let keep = new Set(); + let items = new Set(); + let negatives = 0; + + let onResult = state => { + items.add(state.output); + if (options && options.onResult) { + options.onResult(state); + } + }; + + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) negatives++; + + for (let item of list) { + let matched = isMatch(item, true); + + let match = negated ? !matched.isMatch : matched.isMatch; + if (!match) continue; + + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); + } + } + } + + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter(item => !omit.has(item)); + + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(', ')}"`); + } + + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns; + } + } + + return matches; +}; + +/** + * Backwards compatibility + */ + +micromatch.match = micromatch; + +/** + * Returns a matcher function from the given glob `pattern` and `options`. + * The returned function takes a string to match as its only argument and returns + * true if the string is a match. + * + * ```js + * const mm = require('micromatch'); + * // mm.matcher(pattern[, options]); + * + * const isMatch = mm.matcher('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @param {String} `pattern` Glob pattern + * @param {Object} `options` + * @return {Function} Returns a matcher function. + * @api public + */ + +micromatch.matcher = (pattern, options) => picomatch(pattern, options); + +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const mm = require('micromatch'); + * // mm.isMatch(string, patterns[, options]); + * + * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(mm.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `[options]` See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + +/** + * Backwards compatibility + */ + +micromatch.any = micromatch.isMatch; + +/** + * Returns a list of strings that _**do not match any**_ of the given `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.not(list, patterns[, options]); + * + * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); + * //=> ['b.b', 'c.c'] + * ``` + * @param {Array} `list` Array of strings to match. + * @param {String|Array} `patterns` One or more glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of strings that **do not match** the given patterns. + * @api public + */ + +micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = new Set(); + let items = []; + + let onResult = state => { + if (options.onResult) options.onResult(state); + items.push(state.output); + }; + + let matches = new Set(micromatch(list, patterns, { ...options, onResult })); + + for (let item of items) { + if (!matches.has(item)) { + result.add(item); + } + } + return [...result]; +}; + +/** + * Returns true if the given `string` contains the given pattern. Similar + * to [.isMatch](#isMatch) but the pattern can match any part of the string. + * + * ```js + * var mm = require('micromatch'); + * // mm.contains(string, pattern[, options]); + * + * console.log(mm.contains('aa/bb/cc', '*b')); + * //=> true + * console.log(mm.contains('aa/bb/cc', '*d')); + * //=> false + * ``` + * @param {String} `str` The string to match. + * @param {String|Array} `patterns` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any of the patterns matches any part of `str`. + * @api public + */ + +micromatch.contains = (str, pattern, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + + if (Array.isArray(pattern)) { + return pattern.some(p => micromatch.contains(str, p, options)); + } + + if (typeof pattern === 'string') { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; + } + + if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) { + return true; + } + } + + return micromatch.isMatch(str, pattern, { ...options, contains: true }); +}; + +/** + * Filter the keys of the given object with the given `glob` pattern + * and `options`. Does not attempt to match nested keys. If you need this feature, + * use [glob-object][] instead. + * + * ```js + * const mm = require('micromatch'); + * // mm.matchKeys(object, patterns[, options]); + * + * const obj = { aa: 'a', ab: 'b', ac: 'c' }; + * console.log(mm.matchKeys(obj, '*b')); + * //=> { ab: 'b' } + * ``` + * @param {Object} `object` The object with keys to filter. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Object} Returns an object with only keys that match the given patterns. + * @api public + */ + +micromatch.matchKeys = (obj, patterns, options) => { + if (!utils.isObject(obj)) { + throw new TypeError('Expected the first argument to be an object'); + } + let keys = micromatch(Object.keys(obj), patterns, options); + let res = {}; + for (let key of keys) res[key] = obj[key]; + return res; +}; + +/** + * Returns true if some of the strings in the given `list` match any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.some(list, patterns[, options]); + * + * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // true + * console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list` + * @api public + */ + +micromatch.some = (list, patterns, options) => { + let items = [].concat(list); + + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (items.some(item => isMatch(item))) { + return true; + } + } + return false; +}; + +/** + * Returns true if every string in the given `list` matches + * any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.every(list, patterns[, options]); + * + * console.log(mm.every('foo.js', ['foo.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // false + * console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list` + * @api public + */ + +micromatch.every = (list, patterns, options) => { + let items = [].concat(list); + + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (!items.every(item => isMatch(item))) { + return false; + } + } + return true; +}; + +/** + * Returns true if **all** of the given `patterns` match + * the specified string. + * + * ```js + * const mm = require('micromatch'); + * // mm.all(string, patterns[, options]); + * + * console.log(mm.all('foo.js', ['foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', '!foo.js'])); + * // false + * + * console.log(mm.all('foo.js', ['*.js', 'foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); + * // true + * ``` + * @param {String|Array} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +micromatch.all = (str, patterns, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + + return [].concat(patterns).every(p => picomatch(p, options)(str)); +}; + +/** + * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match. + * + * ```js + * const mm = require('micromatch'); + * // mm.capture(pattern, string[, options]); + * + * console.log(mm.capture('test/*.js', 'test/foo.js')); + * //=> ['foo'] + * console.log(mm.capture('test/*.js', 'foo/bar.css')); + * //=> null + * ``` + * @param {String} `glob` Glob pattern to use for matching. + * @param {String} `input` String to match + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`. + * @api public + */ + +micromatch.capture = (glob, input, options) => { + let posix = utils.isWindows(options); + let regex = picomatch.makeRe(String(glob), { ...options, capture: true }); + let match = regex.exec(posix ? utils.toPosixSlashes(input) : input); + + if (match) { + return match.slice(1).map(v => v === void 0 ? '' : v); + } +}; + +/** + * Create a regular expression from the given glob `pattern`. + * + * ```js + * const mm = require('micromatch'); + * // mm.makeRe(pattern[, options]); + * + * console.log(mm.makeRe('*.js')); + * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ + * ``` + * @param {String} `pattern` A glob pattern to convert to regex. + * @param {Object} `options` + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ + +micromatch.makeRe = (...args) => picomatch.makeRe(...args); + +/** + * Scan a glob pattern to separate the pattern into segments. Used + * by the [split](#split) method. + * + * ```js + * const mm = require('micromatch'); + * const state = mm.scan(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ + +micromatch.scan = (...args) => picomatch.scan(...args); + +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const mm = require('micromatch'); + * const state = mm.parse(pattern[, options]); + * ``` + * @param {String} `glob` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as regex source string. + * @api public + */ + +micromatch.parse = (patterns, options) => { + let res = []; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } + } + return res; +}; + +/** + * Process the given brace `pattern`. + * + * ```js + * const { braces } = require('micromatch'); + * console.log(braces('foo/{a,b,c}/bar')); + * //=> [ 'foo/(a|b|c)/bar' ] + * + * console.log(braces('foo/{a,b,c}/bar', { expand: true })); + * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] + * ``` + * @param {String} `pattern` String with brace pattern to process. + * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options. + * @return {Array} + * @api public + */ + +micromatch.braces = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + if ((options && options.nobrace === true) || !/\{.*\}/.test(pattern)) { + return [pattern]; + } + return braces(pattern, options); +}; + +/** + * Expand braces + */ + +micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + return micromatch.braces(pattern, { ...options, expand: true }); +}; + +/** + * Expose micromatch + */ + +module.exports = micromatch; diff --git a/node_modules/micromatch/package.json b/node_modules/micromatch/package.json new file mode 100644 index 0000000..6061d5b --- /dev/null +++ b/node_modules/micromatch/package.json @@ -0,0 +1,119 @@ +{ + "name": "micromatch", + "description": "Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch.", + "version": "4.0.5", + "homepage": "https://github.com/micromatch/micromatch", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "(https://github.com/DianeLooney)", + "Amila Welihinda (amilajack.com)", + "Bogdan Chadkin (https://github.com/TrySound)", + "Brian Woodward (https://twitter.com/doowb)", + "Devon Govett (http://badassjs.com)", + "Elan Shanker (https://github.com/es128)", + "Fabrício Matté (https://ultcombo.js.org)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Martin Kolárik (https://kolarik.sk)", + "Olsten Larck (https://i.am.charlike.online)", + "Paul Miller (paulmillr.com)", + "Tom Byrer (https://github.com/tomByrer)", + "Tyler Akins (http://rumkin.com)", + "Peter Bright (https://github.com/drpizza)", + "Kuba Juszczyk (https://github.com/ku8ar)" + ], + "repository": "micromatch/micromatch", + "bugs": { + "url": "https://github.com/micromatch/micromatch/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8.6" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "devDependencies": { + "fill-range": "^7.0.1", + "gulp-format-md": "^2.0.0", + "minimatch": "^5.0.1", + "mocha": "^9.2.2", + "time-require": "github:jonschlinkert/time-require" + }, + "keywords": [ + "bash", + "bracket", + "character-class", + "expand", + "expansion", + "expression", + "extglob", + "extglobs", + "file", + "files", + "filter", + "find", + "glob", + "globbing", + "globs", + "globstar", + "lookahead", + "lookaround", + "lookbehind", + "match", + "matcher", + "matches", + "matching", + "micromatch", + "minimatch", + "multimatch", + "negate", + "negation", + "path", + "pattern", + "patterns", + "posix", + "regex", + "regexp", + "regular", + "shell", + "star", + "wildcard" + ], + "verb": { + "toc": "collapsible", + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "related": { + "list": [ + "braces", + "expand-brackets", + "extglob", + "fill-range", + "nanomatch" + ] + }, + "reflinks": [ + "extglob", + "fill-range", + "glob-object", + "minimatch", + "multimatch" + ] + } +} diff --git a/node_modules/minimatch/LICENSE b/node_modules/minimatch/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/minimatch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/minimatch/README.md b/node_modules/minimatch/README.md new file mode 100644 index 0000000..33ede1d --- /dev/null +++ b/node_modules/minimatch/README.md @@ -0,0 +1,230 @@ +# minimatch + +A minimal matching utility. + +[![Build Status](https://travis-ci.org/isaacs/minimatch.svg?branch=master)](http://travis-ci.org/isaacs/minimatch) + + +This is the matching library used internally by npm. + +It works by converting glob expressions into JavaScript `RegExp` +objects. + +## Usage + +```javascript +var minimatch = require("minimatch") + +minimatch("bar.foo", "*.foo") // true! +minimatch("bar.foo", "*.bar") // false! +minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! +``` + +## Features + +Supports these glob features: + +* Brace Expansion +* Extended glob matching +* "Globstar" `**` matching + +See: + +* `man sh` +* `man bash` +* `man 3 fnmatch` +* `man 5 gitignore` + +## Minimatch Class + +Create a minimatch object by instantiating the `minimatch.Minimatch` class. + +```javascript +var Minimatch = require("minimatch").Minimatch +var mm = new Minimatch(pattern, options) +``` + +### Properties + +* `pattern` The original pattern the minimatch object represents. +* `options` The options supplied to the constructor. +* `set` A 2-dimensional array of regexp or string expressions. + Each row in the + array corresponds to a brace-expanded pattern. Each item in the row + corresponds to a single path-part. For example, the pattern + `{a,b/c}/d` would expand to a set of patterns like: + + [ [ a, d ] + , [ b, c, d ] ] + + If a portion of the pattern doesn't have any "magic" in it + (that is, it's something like `"foo"` rather than `fo*o?`), then it + will be left as a string rather than converted to a regular + expression. + +* `regexp` Created by the `makeRe` method. A single regular expression + expressing the entire pattern. This is useful in cases where you wish + to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. +* `negate` True if the pattern is negated. +* `comment` True if the pattern is a comment. +* `empty` True if the pattern is `""`. + +### Methods + +* `makeRe` Generate the `regexp` member if necessary, and return it. + Will return `false` if the pattern is invalid. +* `match(fname)` Return true if the filename matches the pattern, or + false otherwise. +* `matchOne(fileArray, patternArray, partial)` Take a `/`-split + filename, and match it against a single row in the `regExpSet`. This + method is mainly for internal use, but is exposed so that it can be + used by a glob-walker that needs to avoid excessive filesystem calls. + +All other methods are internal, and will be called as necessary. + +### minimatch(path, pattern, options) + +Main export. Tests a path against the pattern using the options. + +```javascript +var isJS = minimatch(file, "*.js", { matchBase: true }) +``` + +### minimatch.filter(pattern, options) + +Returns a function that tests its +supplied argument, suitable for use with `Array.filter`. Example: + +```javascript +var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) +``` + +### minimatch.match(list, pattern, options) + +Match against the list of +files, in the style of fnmatch or glob. If nothing is matched, and +options.nonull is set, then return a list containing the pattern itself. + +```javascript +var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) +``` + +### minimatch.makeRe(pattern, options) + +Make a regular expression object from the pattern. + +## Options + +All options are `false` by default. + +### debug + +Dump a ton of stuff to stderr. + +### nobrace + +Do not expand `{a,b}` and `{1..3}` brace sets. + +### noglobstar + +Disable `**` matching against multiple folder names. + +### dot + +Allow patterns to match filenames starting with a period, even if +the pattern does not explicitly have a period in that spot. + +Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` +is set. + +### noext + +Disable "extglob" style patterns like `+(a|b)`. + +### nocase + +Perform a case-insensitive match. + +### nonull + +When a match is not found by `minimatch.match`, return a list containing +the pattern itself if this option is set. When not set, an empty list +is returned if there are no matches. + +### matchBase + +If set, then patterns without slashes will be matched +against the basename of the path if it contains slashes. For example, +`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. + +### nocomment + +Suppress the behavior of treating `#` at the start of a pattern as a +comment. + +### nonegate + +Suppress the behavior of treating a leading `!` character as negation. + +### flipNegate + +Returns from negate expressions the same as if they were not negated. +(Ie, true on a hit, false on a miss.) + +### partial + +Compare a partial path to a pattern. As long as the parts of the path that +are present are not contradicted by the pattern, it will be treated as a +match. This is useful in applications where you're walking through a +folder structure, and don't yet have the full path, but want to ensure that +you do not walk down paths that can never be a match. + +For example, + +```js +minimatch('/a/b', '/a/*/c/d', { partial: true }) // true, might be /a/b/c/d +minimatch('/a/b', '/**/d', { partial: true }) // true, might be /a/b/.../d +minimatch('/x/y/z', '/a/**/z', { partial: true }) // false, because x !== a +``` + +### allowWindowsEscape + +Windows path separator `\` is by default converted to `/`, which +prohibits the usage of `\` as a escape character. This flag skips that +behavior and allows using the escape character. + +## Comparisons to other fnmatch/glob implementations + +While strict compliance with the existing standards is a worthwhile +goal, some discrepancies exist between minimatch and other +implementations, and are intentional. + +If the pattern starts with a `!` character, then it is negated. Set the +`nonegate` flag to suppress this behavior, and treat leading `!` +characters normally. This is perhaps relevant if you wish to start the +pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` +characters at the start of a pattern will negate the pattern multiple +times. + +If a pattern starts with `#`, then it is treated as a comment, and +will not match anything. Use `\#` to match a literal `#` at the +start of a line, or set the `nocomment` flag to suppress this behavior. + +The double-star character `**` is supported by default, unless the +`noglobstar` flag is set. This is supported in the manner of bsdglob +and bash 4.1, where `**` only has special significance if it is the only +thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but +`a/**b` will not. + +If an escaped pattern has no matches, and the `nonull` flag is set, +then minimatch.match returns the pattern as-provided, rather than +interpreting the character escapes. For example, +`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than +`"*a?"`. This is akin to setting the `nullglob` option in bash, except +that it does not resolve escaped pattern characters. + +If brace expansion is not disabled, then it is performed before any +other interpretation of the glob pattern. Thus, a pattern like +`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded +**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are +checked for validity. Since those two are valid, matching proceeds. diff --git a/node_modules/minimatch/minimatch.js b/node_modules/minimatch/minimatch.js new file mode 100644 index 0000000..fda45ad --- /dev/null +++ b/node_modules/minimatch/minimatch.js @@ -0,0 +1,947 @@ +module.exports = minimatch +minimatch.Minimatch = Minimatch + +var path = (function () { try { return require('path') } catch (e) {}}()) || { + sep: '/' +} +minimatch.sep = path.sep + +var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} +var expand = require('brace-expansion') + +var plTypes = { + '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, + '?': { open: '(?:', close: ')?' }, + '+': { open: '(?:', close: ')+' }, + '*': { open: '(?:', close: ')*' }, + '@': { open: '(?:', close: ')' } +} + +// any single thing other than / +// don't need to escape / when using new RegExp() +var qmark = '[^/]' + +// * => any number of characters +var star = qmark + '*?' + +// ** when dots are allowed. Anything goes, except .. and . +// not (^ or / followed by one or two dots followed by $ or /), +// followed by anything, any number of times. +var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' + +// not a ^ or / followed by a dot, +// followed by anything, any number of times. +var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' + +// characters that need to be escaped in RegExp. +var reSpecials = charSet('().*{}+?[]^$\\!') + +// "abc" -> { a:true, b:true, c:true } +function charSet (s) { + return s.split('').reduce(function (set, c) { + set[c] = true + return set + }, {}) +} + +// normalizes slashes. +var slashSplit = /\/+/ + +minimatch.filter = filter +function filter (pattern, options) { + options = options || {} + return function (p, i, list) { + return minimatch(p, pattern, options) + } +} + +function ext (a, b) { + b = b || {} + var t = {} + Object.keys(a).forEach(function (k) { + t[k] = a[k] + }) + Object.keys(b).forEach(function (k) { + t[k] = b[k] + }) + return t +} + +minimatch.defaults = function (def) { + if (!def || typeof def !== 'object' || !Object.keys(def).length) { + return minimatch + } + + var orig = minimatch + + var m = function minimatch (p, pattern, options) { + return orig(p, pattern, ext(def, options)) + } + + m.Minimatch = function Minimatch (pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)) + } + m.Minimatch.defaults = function defaults (options) { + return orig.defaults(ext(def, options)).Minimatch + } + + m.filter = function filter (pattern, options) { + return orig.filter(pattern, ext(def, options)) + } + + m.defaults = function defaults (options) { + return orig.defaults(ext(def, options)) + } + + m.makeRe = function makeRe (pattern, options) { + return orig.makeRe(pattern, ext(def, options)) + } + + m.braceExpand = function braceExpand (pattern, options) { + return orig.braceExpand(pattern, ext(def, options)) + } + + m.match = function (list, pattern, options) { + return orig.match(list, pattern, ext(def, options)) + } + + return m +} + +Minimatch.defaults = function (def) { + return minimatch.defaults(def).Minimatch +} + +function minimatch (p, pattern, options) { + assertValidPattern(pattern) + + if (!options) options = {} + + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + return false + } + + return new Minimatch(pattern, options).match(p) +} + +function Minimatch (pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options) + } + + assertValidPattern(pattern) + + if (!options) options = {} + + pattern = pattern.trim() + + // windows support: need to use /, not \ + if (!options.allowWindowsEscape && path.sep !== '/') { + pattern = pattern.split(path.sep).join('/') + } + + this.options = options + this.set = [] + this.pattern = pattern + this.regexp = null + this.negate = false + this.comment = false + this.empty = false + this.partial = !!options.partial + + // make the set of regexps etc. + this.make() +} + +Minimatch.prototype.debug = function () {} + +Minimatch.prototype.make = make +function make () { + var pattern = this.pattern + var options = this.options + + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true + return + } + if (!pattern) { + this.empty = true + return + } + + // step 1: figure out negation, etc. + this.parseNegate() + + // step 2: expand braces + var set = this.globSet = this.braceExpand() + + if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) } + + this.debug(this.pattern, set) + + // step 3: now we have a set, so turn each one into a series of path-portion + // matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + set = this.globParts = set.map(function (s) { + return s.split(slashSplit) + }) + + this.debug(this.pattern, set) + + // glob --> regexps + set = set.map(function (s, si, set) { + return s.map(this.parse, this) + }, this) + + this.debug(this.pattern, set) + + // filter out everything that didn't compile properly. + set = set.filter(function (s) { + return s.indexOf(false) === -1 + }) + + this.debug(this.pattern, set) + + this.set = set +} + +Minimatch.prototype.parseNegate = parseNegate +function parseNegate () { + var pattern = this.pattern + var negate = false + var options = this.options + var negateOffset = 0 + + if (options.nonegate) return + + for (var i = 0, l = pattern.length + ; i < l && pattern.charAt(i) === '!' + ; i++) { + negate = !negate + negateOffset++ + } + + if (negateOffset) this.pattern = pattern.substr(negateOffset) + this.negate = negate +} + +// Brace expansion: +// a{b,c}d -> abd acd +// a{b,}c -> abc ac +// a{0..3}d -> a0d a1d a2d a3d +// a{b,c{d,e}f}g -> abg acdfg acefg +// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg +// +// Invalid sets are not expanded. +// a{2..}b -> a{2..}b +// a{b}c -> a{b}c +minimatch.braceExpand = function (pattern, options) { + return braceExpand(pattern, options) +} + +Minimatch.prototype.braceExpand = braceExpand + +function braceExpand (pattern, options) { + if (!options) { + if (this instanceof Minimatch) { + options = this.options + } else { + options = {} + } + } + + pattern = typeof pattern === 'undefined' + ? this.pattern : pattern + + assertValidPattern(pattern) + + // Thanks to Yeting Li for + // improving this regexp to avoid a ReDOS vulnerability. + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + // shortcut. no need to expand. + return [pattern] + } + + return expand(pattern) +} + +var MAX_PATTERN_LENGTH = 1024 * 64 +var assertValidPattern = function (pattern) { + if (typeof pattern !== 'string') { + throw new TypeError('invalid pattern') + } + + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError('pattern is too long') + } +} + +// parse a component of the expanded set. +// At this point, no pattern may contain "/" in it +// so we're going to return a 2d array, where each entry is the full +// pattern, split on '/', and then turned into a regular expression. +// A regexp is made at the end which joins each array with an +// escaped /, and another full one which joins each regexp with |. +// +// Following the lead of Bash 4.1, note that "**" only has special meaning +// when it is the *only* thing in a path portion. Otherwise, any series +// of * is equivalent to a single *. Globstar behavior is enabled by +// default, and can be disabled by setting options.noglobstar. +Minimatch.prototype.parse = parse +var SUBPARSE = {} +function parse (pattern, isSub) { + assertValidPattern(pattern) + + var options = this.options + + // shortcuts + if (pattern === '**') { + if (!options.noglobstar) + return GLOBSTAR + else + pattern = '*' + } + if (pattern === '') return '' + + var re = '' + var hasMagic = !!options.nocase + var escaping = false + // ? => one single character + var patternListStack = [] + var negativeLists = [] + var stateChar + var inClass = false + var reClassStart = -1 + var classStart = -1 + // . and .. never match anything that doesn't start with ., + // even when options.dot is set. + var patternStart = pattern.charAt(0) === '.' ? '' // anything + // not (start or / followed by . or .. followed by / or end) + : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' + : '(?!\\.)' + var self = this + + function clearStateChar () { + if (stateChar) { + // we had some state-tracking character + // that wasn't consumed by this pass. + switch (stateChar) { + case '*': + re += star + hasMagic = true + break + case '?': + re += qmark + hasMagic = true + break + default: + re += '\\' + stateChar + break + } + self.debug('clearStateChar %j %j', stateChar, re) + stateChar = false + } + } + + for (var i = 0, len = pattern.length, c + ; (i < len) && (c = pattern.charAt(i)) + ; i++) { + this.debug('%s\t%s %s %j', pattern, i, re, c) + + // skip over any that are escaped. + if (escaping && reSpecials[c]) { + re += '\\' + c + escaping = false + continue + } + + switch (c) { + /* istanbul ignore next */ + case '/': { + // completely not allowed, even escaped. + // Should already be path-split by now. + return false + } + + case '\\': + clearStateChar() + escaping = true + continue + + // the various stateChar values + // for the "extglob" stuff. + case '?': + case '*': + case '+': + case '@': + case '!': + this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) + + // all of those are literals inside a class, except that + // the glob [!a] means [^a] in regexp + if (inClass) { + this.debug(' in class') + if (c === '!' && i === classStart + 1) c = '^' + re += c + continue + } + + // if we already have a stateChar, then it means + // that there was something like ** or +? in there. + // Handle the stateChar, then proceed with this one. + self.debug('call clearStateChar %j', stateChar) + clearStateChar() + stateChar = c + // if extglob is disabled, then +(asdf|foo) isn't a thing. + // just clear the statechar *now*, rather than even diving into + // the patternList stuff. + if (options.noext) clearStateChar() + continue + + case '(': + if (inClass) { + re += '(' + continue + } + + if (!stateChar) { + re += '\\(' + continue + } + + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }) + // negation is (?:(?!js)[^/]*) + re += stateChar === '!' ? '(?:(?!(?:' : '(?:' + this.debug('plType %j %j', stateChar, re) + stateChar = false + continue + + case ')': + if (inClass || !patternListStack.length) { + re += '\\)' + continue + } + + clearStateChar() + hasMagic = true + var pl = patternListStack.pop() + // negation is (?:(?!js)[^/]*) + // The others are (?:) + re += pl.close + if (pl.type === '!') { + negativeLists.push(pl) + } + pl.reEnd = re.length + continue + + case '|': + if (inClass || !patternListStack.length || escaping) { + re += '\\|' + escaping = false + continue + } + + clearStateChar() + re += '|' + continue + + // these are mostly the same in regexp and glob + case '[': + // swallow any state-tracking char before the [ + clearStateChar() + + if (inClass) { + re += '\\' + c + continue + } + + inClass = true + classStart = i + reClassStart = re.length + re += c + continue + + case ']': + // a right bracket shall lose its special + // meaning and represent itself in + // a bracket expression if it occurs + // first in the list. -- POSIX.2 2.8.3.2 + if (i === classStart + 1 || !inClass) { + re += '\\' + c + escaping = false + continue + } + + // handle the case where we left a class open. + // "[z-a]" is valid, equivalent to "\[z-a\]" + // split where the last [ was, make sure we don't have + // an invalid re. if so, re-walk the contents of the + // would-be class to re-translate any characters that + // were passed through as-is + // TODO: It would probably be faster to determine this + // without a try/catch and a new RegExp, but it's tricky + // to do safely. For now, this is safe and works. + var cs = pattern.substring(classStart + 1, i) + try { + RegExp('[' + cs + ']') + } catch (er) { + // not a valid class! + var sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' + hasMagic = hasMagic || sp[1] + inClass = false + continue + } + + // finish up the class. + hasMagic = true + inClass = false + re += c + continue + + default: + // swallow any state char that wasn't consumed + clearStateChar() + + if (escaping) { + // no need + escaping = false + } else if (reSpecials[c] + && !(c === '^' && inClass)) { + re += '\\' + } + + re += c + + } // switch + } // for + + // handle the case where we left a class open. + // "[abc" is valid, equivalent to "\[abc" + if (inClass) { + // split where the last [ was, and escape it + // this is a huge pita. We now have to re-walk + // the contents of the would-be class to re-translate + // any characters that were passed through as-is + cs = pattern.substr(classStart + 1) + sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + hasMagic = hasMagic || sp[1] + } + + // handle the case where we had a +( thing at the *end* + // of the pattern. + // each pattern list stack adds 3 chars, and we need to go through + // and escape any | chars that were passed through as-is for the regexp. + // Go through and escape them, taking care not to double-escape any + // | chars that were already escaped. + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length) + this.debug('setting tail', re, pl) + // maybe some even number of \, then maybe 1 \, followed by a | + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { + if (!$2) { + // the | isn't already escaped, so escape it. + $2 = '\\' + } + + // need to escape all those slashes *again*, without escaping the + // one that we need for escaping the | character. As it works out, + // escaping an even number of slashes can be done by simply repeating + // it exactly after itself. That's why this trick works. + // + // I am sorry that you have to see this. + return $1 + $1 + $2 + '|' + }) + + this.debug('tail=%j\n %s', tail, tail, pl, re) + var t = pl.type === '*' ? star + : pl.type === '?' ? qmark + : '\\' + pl.type + + hasMagic = true + re = re.slice(0, pl.reStart) + t + '\\(' + tail + } + + // handle trailing things that only matter at the very end. + clearStateChar() + if (escaping) { + // trailing \\ + re += '\\\\' + } + + // only need to apply the nodot start if the re starts with + // something that could conceivably capture a dot + var addPatternStart = false + switch (re.charAt(0)) { + case '[': case '.': case '(': addPatternStart = true + } + + // Hack to work around lack of negative lookbehind in JS + // A pattern like: *.!(x).!(y|z) needs to ensure that a name + // like 'a.xyz.yz' doesn't match. So, the first negative + // lookahead, has to look ALL the way ahead, to the end of + // the pattern. + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n] + + var nlBefore = re.slice(0, nl.reStart) + var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) + var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + var nlAfter = re.slice(nl.reEnd) + + nlLast += nlAfter + + // Handle nested stuff like *(*.js|!(*.json)), where open parens + // mean that we should *not* include the ) in the bit that is considered + // "after" the negated section. + var openParensBefore = nlBefore.split('(').length - 1 + var cleanAfter = nlAfter + for (i = 0; i < openParensBefore; i++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') + } + nlAfter = cleanAfter + + var dollar = '' + if (nlAfter === '' && isSub !== SUBPARSE) { + dollar = '$' + } + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast + re = newRe + } + + // if the re is not "" at this point, then we need to make sure + // it doesn't match against an empty path part. + // Otherwise a/* will match a/, which it should not. + if (re !== '' && hasMagic) { + re = '(?=.)' + re + } + + if (addPatternStart) { + re = patternStart + re + } + + // parsing just a piece of a larger pattern. + if (isSub === SUBPARSE) { + return [re, hasMagic] + } + + // skip the regexp for non-magical patterns + // unescape anything in it, though, so that it'll be + // an exact match against a file etc. + if (!hasMagic) { + return globUnescape(pattern) + } + + var flags = options.nocase ? 'i' : '' + try { + var regExp = new RegExp('^' + re + '$', flags) + } catch (er) /* istanbul ignore next - should be impossible */ { + // If it was an invalid regular expression, then it can't match + // anything. This trick looks for a character after the end of + // the string, which is of course impossible, except in multi-line + // mode, but it's not a /m regex. + return new RegExp('$.') + } + + regExp._glob = pattern + regExp._src = re + + return regExp +} + +minimatch.makeRe = function (pattern, options) { + return new Minimatch(pattern, options || {}).makeRe() +} + +Minimatch.prototype.makeRe = makeRe +function makeRe () { + if (this.regexp || this.regexp === false) return this.regexp + + // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. + var set = this.set + + if (!set.length) { + this.regexp = false + return this.regexp + } + var options = this.options + + var twoStar = options.noglobstar ? star + : options.dot ? twoStarDot + : twoStarNoDot + var flags = options.nocase ? 'i' : '' + + var re = set.map(function (pattern) { + return pattern.map(function (p) { + return (p === GLOBSTAR) ? twoStar + : (typeof p === 'string') ? regExpEscape(p) + : p._src + }).join('\\\/') + }).join('|') + + // must match entire pattern + // ending in a * or ** will make it less strict. + re = '^(?:' + re + ')$' + + // can match anything, as long as it's not this. + if (this.negate) re = '^(?!' + re + ').*$' + + try { + this.regexp = new RegExp(re, flags) + } catch (ex) /* istanbul ignore next - should be impossible */ { + this.regexp = false + } + return this.regexp +} + +minimatch.match = function (list, pattern, options) { + options = options || {} + var mm = new Minimatch(pattern, options) + list = list.filter(function (f) { + return mm.match(f) + }) + if (mm.options.nonull && !list.length) { + list.push(pattern) + } + return list +} + +Minimatch.prototype.match = function match (f, partial) { + if (typeof partial === 'undefined') partial = this.partial + this.debug('match', f, this.pattern) + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) return false + if (this.empty) return f === '' + + if (f === '/' && partial) return true + + var options = this.options + + // windows: need to use /, not \ + if (path.sep !== '/') { + f = f.split(path.sep).join('/') + } + + // treat the test path as a set of pathparts. + f = f.split(slashSplit) + this.debug(this.pattern, 'split', f) + + // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. + + var set = this.set + this.debug(this.pattern, 'set', set) + + // Find the basename of the path by looking for the last non-empty segment + var filename + var i + for (i = f.length - 1; i >= 0; i--) { + filename = f[i] + if (filename) break + } + + for (i = 0; i < set.length; i++) { + var pattern = set[i] + var file = f + if (options.matchBase && pattern.length === 1) { + file = [filename] + } + var hit = this.matchOne(file, pattern, partial) + if (hit) { + if (options.flipNegate) return true + return !this.negate + } + } + + // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. + if (options.flipNegate) return false + return this.negate +} + +// set partial to true to test if, for example, +// "/a/b" matches the start of "/*/b/*/d" +// Partial means, if you run out of file before you run +// out of pattern, then that's fine, as long as all +// the parts match. +Minimatch.prototype.matchOne = function (file, pattern, partial) { + var options = this.options + + this.debug('matchOne', + { 'this': this, file: file, pattern: pattern }) + + this.debug('matchOne', file.length, pattern.length) + + for (var fi = 0, + pi = 0, + fl = file.length, + pl = pattern.length + ; (fi < fl) && (pi < pl) + ; fi++, pi++) { + this.debug('matchOne loop') + var p = pattern[pi] + var f = file[fi] + + this.debug(pattern, p, f) + + // should be impossible. + // some invalid regexp stuff in the set. + /* istanbul ignore if */ + if (p === false) return false + + if (p === GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]) + + // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit + var fr = fi + var pr = pi + 1 + if (pr === pl) { + this.debug('** at the end') + // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. + for (; fi < fl; fi++) { + if (file[fi] === '.' || file[fi] === '..' || + (!options.dot && file[fi].charAt(0) === '.')) return false + } + return true + } + + // ok, let's see if we can swallow whatever we can. + while (fr < fl) { + var swallowee = file[fr] + + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) + + // XXX remove this slice. Just pass the start index. + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee) + // found a match. + return true + } else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || swallowee === '..' || + (!options.dot && swallowee.charAt(0) === '.')) { + this.debug('dot detected!', file, fr, pattern, pr) + break + } + + // ** swallows a segment, and continue. + this.debug('globstar swallow a segment, and continue') + fr++ + } + } + + // no match was found. + // However, in partial mode, we can't say this is necessarily over. + // If there's more *pattern* left, then + /* istanbul ignore if */ + if (partial) { + // ran out of file + this.debug('\n>>> no match, partial?', file, fr, pattern, pr) + if (fr === fl) return true + } + return false + } + + // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. + var hit + if (typeof p === 'string') { + hit = f === p + this.debug('string match', p, f, hit) + } else { + hit = f.match(p) + this.debug('pattern match', p, f, hit) + } + + if (!hit) return false + } + + // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + + // now either we fell off the end of the pattern, or we're done. + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true + } else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial + } else /* istanbul ignore else */ if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + return (fi === fl - 1) && (file[fi] === '') + } + + // should be unreachable. + /* istanbul ignore next */ + throw new Error('wtf?') +} + +// replace stuff like \* with * +function globUnescape (s) { + return s.replace(/\\(.)/g, '$1') +} + +function regExpEscape (s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') +} diff --git a/node_modules/minimatch/package.json b/node_modules/minimatch/package.json new file mode 100644 index 0000000..566efdf --- /dev/null +++ b/node_modules/minimatch/package.json @@ -0,0 +1,33 @@ +{ + "author": "Isaac Z. Schlueter (http://blog.izs.me)", + "name": "minimatch", + "description": "a glob matcher in javascript", + "version": "3.1.2", + "publishConfig": { + "tag": "v3-legacy" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/minimatch.git" + }, + "main": "minimatch.js", + "scripts": { + "test": "tap", + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --all; git push origin --tags" + }, + "engines": { + "node": "*" + }, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "devDependencies": { + "tap": "^15.1.6" + }, + "license": "ISC", + "files": [ + "minimatch.js" + ] +} diff --git a/node_modules/ms/index.js b/node_modules/ms/index.js new file mode 100644 index 0000000..c4498bc --- /dev/null +++ b/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/node_modules/ms/license.md b/node_modules/ms/license.md new file mode 100644 index 0000000..69b6125 --- /dev/null +++ b/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/ms/package.json b/node_modules/ms/package.json new file mode 100644 index 0000000..eea666e --- /dev/null +++ b/node_modules/ms/package.json @@ -0,0 +1,37 @@ +{ + "name": "ms", + "version": "2.1.2", + "description": "Tiny millisecond conversion utility", + "repository": "zeit/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" + } +} diff --git a/node_modules/ms/readme.md b/node_modules/ms/readme.md new file mode 100644 index 0000000..9a1996b --- /dev/null +++ b/node_modules/ms/readme.md @@ -0,0 +1,60 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/zeit) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/node_modules/natural-compare/README.md b/node_modules/natural-compare/README.md new file mode 100644 index 0000000..c85dfdf --- /dev/null +++ b/node_modules/natural-compare/README.md @@ -0,0 +1,125 @@ + +[Build]: http://img.shields.io/travis/litejs/natural-compare-lite.png +[Coverage]: http://img.shields.io/coveralls/litejs/natural-compare-lite.png +[1]: https://travis-ci.org/litejs/natural-compare-lite +[2]: https://coveralls.io/r/litejs/natural-compare-lite +[npm package]: https://npmjs.org/package/natural-compare-lite +[GitHub repo]: https://github.com/litejs/natural-compare-lite + + + + @version 1.4.0 + @date 2015-10-26 + @stability 3 - Stable + + +Natural Compare – [![Build][]][1] [![Coverage][]][2] +=============== + +Compare strings containing a mix of letters and numbers +in the way a human being would in sort order. +This is described as a "natural ordering". + +```text +Standard sorting: Natural order sorting: + img1.png img1.png + img10.png img2.png + img12.png img10.png + img2.png img12.png +``` + +String.naturalCompare returns a number indicating +whether a reference string comes before or after or is the same +as the given string in sort order. +Use it with builtin sort() function. + + + +### Installation + +- In browser + +```html + +``` + +- In node.js: `npm install natural-compare-lite` + +```javascript +require("natural-compare-lite") +``` + +### Usage + +```javascript +// Simple case sensitive example +var a = ["z1.doc", "z10.doc", "z17.doc", "z2.doc", "z23.doc", "z3.doc"]; +a.sort(String.naturalCompare); +// ["z1.doc", "z2.doc", "z3.doc", "z10.doc", "z17.doc", "z23.doc"] + +// Use wrapper function for case insensitivity +a.sort(function(a, b){ + return String.naturalCompare(a.toLowerCase(), b.toLowerCase()); +}) + +// In most cases we want to sort an array of objects +var a = [ {"street":"350 5th Ave", "room":"A-1021"} + , {"street":"350 5th Ave", "room":"A-21046-b"} ]; + +// sort by street, then by room +a.sort(function(a, b){ + return String.naturalCompare(a.street, b.street) || String.naturalCompare(a.room, b.room); +}) + +// When text transformation is needed (eg toLowerCase()), +// it is best for performance to keep +// transformed key in that object. +// There are no need to do text transformation +// on each comparision when sorting. +var a = [ {"make":"Audi", "model":"A6"} + , {"make":"Kia", "model":"Rio"} ]; + +// sort by make, then by model +a.map(function(car){ + car.sort_key = (car.make + " " + car.model).toLowerCase(); +}) +a.sort(function(a, b){ + return String.naturalCompare(a.sort_key, b.sort_key); +}) +``` + +- Works well with dates in ISO format eg "Rev 2012-07-26.doc". + + +### Custom alphabet + +It is possible to configure a custom alphabet +to achieve a desired order. + +```javascript +// Estonian alphabet +String.alphabet = "ABDEFGHIJKLMNOPRSŠZŽTUVÕÄÖÜXYabdefghijklmnoprsšzžtuvõäöüxy" +["t", "z", "x", "õ"].sort(String.naturalCompare) +// ["z", "t", "õ", "x"] + +// Russian alphabet +String.alphabet = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя" +["Ё", "А", "Б"].sort(String.naturalCompare) +// ["А", "Б", "Ё"] +``` + + +External links +-------------- + +- [GitHub repo][https://github.com/litejs/natural-compare-lite] +- [jsperf test](http://jsperf.com/natural-sort-2/12) + + +Licence +------- + +Copyright (c) 2012-2015 Lauri Rooden <lauri@rooden.ee> +[The MIT License](http://lauri.rooden.ee/mit-license.txt) + + diff --git a/node_modules/natural-compare/index.js b/node_modules/natural-compare/index.js new file mode 100644 index 0000000..e705d49 --- /dev/null +++ b/node_modules/natural-compare/index.js @@ -0,0 +1,57 @@ + + + +/* + * @version 1.4.0 + * @date 2015-10-26 + * @stability 3 - Stable + * @author Lauri Rooden (https://github.com/litejs/natural-compare-lite) + * @license MIT License + */ + + +var naturalCompare = function(a, b) { + var i, codeA + , codeB = 1 + , posA = 0 + , posB = 0 + , alphabet = String.alphabet + + function getCode(str, pos, code) { + if (code) { + for (i = pos; code = getCode(str, i), code < 76 && code > 65;) ++i; + return +str.slice(pos - 1, i) + } + code = alphabet && alphabet.indexOf(str.charAt(pos)) + return code > -1 ? code + 76 : ((code = str.charCodeAt(pos) || 0), code < 45 || code > 127) ? code + : code < 46 ? 65 // - + : code < 48 ? code - 1 + : code < 58 ? code + 18 // 0-9 + : code < 65 ? code - 11 + : code < 91 ? code + 11 // A-Z + : code < 97 ? code - 37 + : code < 123 ? code + 5 // a-z + : code - 63 + } + + + if ((a+="") != (b+="")) for (;codeB;) { + codeA = getCode(a, posA++) + codeB = getCode(b, posB++) + + if (codeA < 76 && codeB < 76 && codeA > 66 && codeB > 66) { + codeA = getCode(a, posA, posA) + codeB = getCode(b, posB, posA = i) + posB = i + } + + if (codeA != codeB) return (codeA < codeB) ? -1 : 1 + } + return 0 +} + +try { + module.exports = naturalCompare; +} catch (e) { + String.naturalCompare = naturalCompare; +} diff --git a/node_modules/natural-compare/package.json b/node_modules/natural-compare/package.json new file mode 100644 index 0000000..1a71362 --- /dev/null +++ b/node_modules/natural-compare/package.json @@ -0,0 +1,42 @@ +{ + "name": "natural-compare", + "version": "1.4.0", + "stability": 3, + "author": "Lauri Rooden (https://github.com/litejs/natural-compare-lite)", + "license": "MIT", + "description": "Compare strings containing a mix of letters and numbers in the way a human being would in sort order.", + "keywords": [ + "string", + "natural", + "order", + "sort", + "natsort", + "natcmp", + "compare", + "alphanum", + "litejs" + ], + "main": "index.js", + "readmeFilename": "README.md", + "files": [ + "index.js" + ], + "scripts": { + "build": "node node_modules/buildman/index.js --all", + "test": "node tests/index.js" + }, + "repository": "git://github.com/litejs/natural-compare-lite.git", + "bugs": { + "url": "https://github.com/litejs/natural-compare-lite/issues" + }, + "devDependencies": { + "buildman": "*", + "testman": "*" + }, + "buildman": { + "dist/index-min.js": { + "banner": "/*! litejs.com/MIT-LICENSE.txt */", + "input": "index.js" + } + } +} diff --git a/node_modules/node-fetch/LICENSE.md b/node_modules/node-fetch/LICENSE.md new file mode 100644 index 0000000..660ffec --- /dev/null +++ b/node_modules/node-fetch/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 David Frank + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/node-fetch/README.md b/node_modules/node-fetch/README.md new file mode 100644 index 0000000..2dde742 --- /dev/null +++ b/node_modules/node-fetch/README.md @@ -0,0 +1,590 @@ +node-fetch +========== + +[![npm version][npm-image]][npm-url] +[![build status][travis-image]][travis-url] +[![coverage status][codecov-image]][codecov-url] +[![install size][install-size-image]][install-size-url] +[![Discord][discord-image]][discord-url] + +A light-weight module that brings `window.fetch` to Node.js + +(We are looking for [v2 maintainers and collaborators](https://github.com/bitinn/node-fetch/issues/567)) + +[![Backers][opencollective-image]][opencollective-url] + + + +- [Motivation](#motivation) +- [Features](#features) +- [Difference from client-side fetch](#difference-from-client-side-fetch) +- [Installation](#installation) +- [Loading and configuring the module](#loading-and-configuring-the-module) +- [Common Usage](#common-usage) + - [Plain text or HTML](#plain-text-or-html) + - [JSON](#json) + - [Simple Post](#simple-post) + - [Post with JSON](#post-with-json) + - [Post with form parameters](#post-with-form-parameters) + - [Handling exceptions](#handling-exceptions) + - [Handling client and server errors](#handling-client-and-server-errors) +- [Advanced Usage](#advanced-usage) + - [Streams](#streams) + - [Buffer](#buffer) + - [Accessing Headers and other Meta data](#accessing-headers-and-other-meta-data) + - [Extract Set-Cookie Header](#extract-set-cookie-header) + - [Post data using a file stream](#post-data-using-a-file-stream) + - [Post with form-data (detect multipart)](#post-with-form-data-detect-multipart) + - [Request cancellation with AbortSignal](#request-cancellation-with-abortsignal) +- [API](#api) + - [fetch(url[, options])](#fetchurl-options) + - [Options](#options) + - [Class: Request](#class-request) + - [Class: Response](#class-response) + - [Class: Headers](#class-headers) + - [Interface: Body](#interface-body) + - [Class: FetchError](#class-fetcherror) +- [License](#license) +- [Acknowledgement](#acknowledgement) + + + +## Motivation + +Instead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence, `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime. + +See Matt Andrews' [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) or Leonardo Quixada's [cross-fetch](https://github.com/lquixada/cross-fetch) for isomorphic usage (exports `node-fetch` for server-side, `whatwg-fetch` for client-side). + +## Features + +- Stay consistent with `window.fetch` API. +- Make conscious trade-off when following [WHATWG fetch spec][whatwg-fetch] and [stream spec](https://streams.spec.whatwg.org/) implementation details, document known differences. +- Use native promise but allow substituting it with [insert your favorite promise library]. +- Use native Node streams for body on both request and response. +- Decode content encoding (gzip/deflate) properly and convert string output (such as `res.text()` and `res.json()`) to UTF-8 automatically. +- Useful extensions such as timeout, redirect limit, response size limit, [explicit errors](ERROR-HANDLING.md) for troubleshooting. + +## Difference from client-side fetch + +- See [Known Differences](LIMITS.md) for details. +- If you happen to use a missing feature that `window.fetch` offers, feel free to open an issue. +- Pull requests are welcomed too! + +## Installation + +Current stable release (`2.x`) + +```sh +$ npm install node-fetch +``` + +## Loading and configuring the module +We suggest you load the module via `require` until the stabilization of ES modules in node: +```js +const fetch = require('node-fetch'); +``` + +If you are using a Promise library other than native, set it through `fetch.Promise`: +```js +const Bluebird = require('bluebird'); + +fetch.Promise = Bluebird; +``` + +## Common Usage + +NOTE: The documentation below is up-to-date with `2.x` releases; see the [`1.x` readme](https://github.com/bitinn/node-fetch/blob/1.x/README.md), [changelog](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) and [2.x upgrade guide](UPGRADE-GUIDE.md) for the differences. + +#### Plain text or HTML +```js +fetch('https://github.com/') + .then(res => res.text()) + .then(body => console.log(body)); +``` + +#### JSON + +```js + +fetch('https://api.github.com/users/github') + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Simple Post +```js +fetch('https://httpbin.org/post', { method: 'POST', body: 'a=1' }) + .then(res => res.json()) // expecting a json response + .then(json => console.log(json)); +``` + +#### Post with JSON + +```js +const body = { a: 1 }; + +fetch('https://httpbin.org/post', { + method: 'post', + body: JSON.stringify(body), + headers: { 'Content-Type': 'application/json' }, + }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Post with form parameters +`URLSearchParams` is available in Node.js as of v7.5.0. See [official documentation](https://nodejs.org/api/url.html#url_class_urlsearchparams) for more usage methods. + +NOTE: The `Content-Type` header is only set automatically to `x-www-form-urlencoded` when an instance of `URLSearchParams` is given as such: + +```js +const { URLSearchParams } = require('url'); + +const params = new URLSearchParams(); +params.append('a', 1); + +fetch('https://httpbin.org/post', { method: 'POST', body: params }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Handling exceptions +NOTE: 3xx-5xx responses are *NOT* exceptions and should be handled in `then()`; see the next section for more information. + +Adding a catch to the fetch promise chain will catch *all* exceptions, such as errors originating from node core libraries, network errors and operational errors, which are instances of FetchError. See the [error handling document](ERROR-HANDLING.md) for more details. + +```js +fetch('https://domain.invalid/') + .catch(err => console.error(err)); +``` + +#### Handling client and server errors +It is common to create a helper function to check that the response contains no client (4xx) or server (5xx) error responses: + +```js +function checkStatus(res) { + if (res.ok) { // res.status >= 200 && res.status < 300 + return res; + } else { + throw MyCustomError(res.statusText); + } +} + +fetch('https://httpbin.org/status/400') + .then(checkStatus) + .then(res => console.log('will not get here...')) +``` + +## Advanced Usage + +#### Streams +The "Node.js way" is to use streams when possible: + +```js +fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png') + .then(res => { + const dest = fs.createWriteStream('./octocat.png'); + res.body.pipe(dest); + }); +``` + +#### Buffer +If you prefer to cache binary data in full, use buffer(). (NOTE: `buffer()` is a `node-fetch`-only API) + +```js +const fileType = require('file-type'); + +fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png') + .then(res => res.buffer()) + .then(buffer => fileType(buffer)) + .then(type => { /* ... */ }); +``` + +#### Accessing Headers and other Meta data +```js +fetch('https://github.com/') + .then(res => { + console.log(res.ok); + console.log(res.status); + console.log(res.statusText); + console.log(res.headers.raw()); + console.log(res.headers.get('content-type')); + }); +``` + +#### Extract Set-Cookie Header + +Unlike browsers, you can access raw `Set-Cookie` headers manually using `Headers.raw()`. This is a `node-fetch` only API. + +```js +fetch(url).then(res => { + // returns an array of values, instead of a string of comma-separated values + console.log(res.headers.raw()['set-cookie']); +}); +``` + +#### Post data using a file stream + +```js +const { createReadStream } = require('fs'); + +const stream = createReadStream('input.txt'); + +fetch('https://httpbin.org/post', { method: 'POST', body: stream }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Post with form-data (detect multipart) + +```js +const FormData = require('form-data'); + +const form = new FormData(); +form.append('a', 1); + +fetch('https://httpbin.org/post', { method: 'POST', body: form }) + .then(res => res.json()) + .then(json => console.log(json)); + +// OR, using custom headers +// NOTE: getHeaders() is non-standard API + +const form = new FormData(); +form.append('a', 1); + +const options = { + method: 'POST', + body: form, + headers: form.getHeaders() +} + +fetch('https://httpbin.org/post', options) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Request cancellation with AbortSignal + +> NOTE: You may cancel streamed requests only on Node >= v8.0.0 + +You may cancel requests with `AbortController`. A suggested implementation is [`abort-controller`](https://www.npmjs.com/package/abort-controller). + +An example of timing out a request after 150ms could be achieved as the following: + +```js +import AbortController from 'abort-controller'; + +const controller = new AbortController(); +const timeout = setTimeout( + () => { controller.abort(); }, + 150, +); + +fetch(url, { signal: controller.signal }) + .then(res => res.json()) + .then( + data => { + useData(data) + }, + err => { + if (err.name === 'AbortError') { + // request was aborted + } + }, + ) + .finally(() => { + clearTimeout(timeout); + }); +``` + +See [test cases](https://github.com/bitinn/node-fetch/blob/master/test/test.js) for more examples. + + +## API + +### fetch(url[, options]) + +- `url` A string representing the URL for fetching +- `options` [Options](#fetch-options) for the HTTP(S) request +- Returns: Promise<[Response](#class-response)> + +Perform an HTTP(S) fetch. + +`url` should be an absolute url, such as `https://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected `Promise`. + + +### Options + +The default values are shown after each option key. + +```js +{ + // These properties are part of the Fetch Standard + method: 'GET', + headers: {}, // request headers. format is the identical to that accepted by the Headers constructor (see below) + body: null, // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream + redirect: 'follow', // set to `manual` to extract redirect headers, `error` to reject redirect + signal: null, // pass an instance of AbortSignal to optionally abort requests + + // The following properties are node-fetch extensions + follow: 20, // maximum redirect count. 0 to not follow redirect + timeout: 0, // req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies). Signal is recommended instead. + compress: true, // support gzip/deflate content encoding. false to disable + size: 0, // maximum response body size in bytes. 0 to disable + agent: null // http(s).Agent instance or function that returns an instance (see below) +} +``` + +##### Default Headers + +If no values are set, the following request headers will be sent automatically: + +Header | Value +------------------- | -------------------------------------------------------- +`Accept-Encoding` | `gzip,deflate` _(when `options.compress === true`)_ +`Accept` | `*/*` +`Connection` | `close` _(when no `options.agent` is present)_ +`Content-Length` | _(automatically calculated, if possible)_ +`Transfer-Encoding` | `chunked` _(when `req.body` is a stream)_ +`User-Agent` | `node-fetch/1.0 (+https://github.com/bitinn/node-fetch)` + +Note: when `body` is a `Stream`, `Content-Length` is not set automatically. + +##### Custom Agent + +The `agent` option allows you to specify networking related options which are out of the scope of Fetch, including and not limited to the following: + +- Support self-signed certificate +- Use only IPv4 or IPv6 +- Custom DNS Lookup + +See [`http.Agent`](https://nodejs.org/api/http.html#http_new_agent_options) for more information. + +In addition, the `agent` option accepts a function that returns `http`(s)`.Agent` instance given current [URL](https://nodejs.org/api/url.html), this is useful during a redirection chain across HTTP and HTTPS protocol. + +```js +const httpAgent = new http.Agent({ + keepAlive: true +}); +const httpsAgent = new https.Agent({ + keepAlive: true +}); + +const options = { + agent: function (_parsedURL) { + if (_parsedURL.protocol == 'http:') { + return httpAgent; + } else { + return httpsAgent; + } + } +} +``` + + +### Class: Request + +An HTTP(S) request containing information about URL, method, headers, and the body. This class implements the [Body](#iface-body) interface. + +Due to the nature of Node.js, the following properties are not implemented at this moment: + +- `type` +- `destination` +- `referrer` +- `referrerPolicy` +- `mode` +- `credentials` +- `cache` +- `integrity` +- `keepalive` + +The following node-fetch extension properties are provided: + +- `follow` +- `compress` +- `counter` +- `agent` + +See [options](#fetch-options) for exact meaning of these extensions. + +#### new Request(input[, options]) + +*(spec-compliant)* + +- `input` A string representing a URL, or another `Request` (which will be cloned) +- `options` [Options][#fetch-options] for the HTTP(S) request + +Constructs a new `Request` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request). + +In most cases, directly `fetch(url, options)` is simpler than creating a `Request` object. + + +### Class: Response + +An HTTP(S) response. This class implements the [Body](#iface-body) interface. + +The following properties are not implemented in node-fetch at this moment: + +- `Response.error()` +- `Response.redirect()` +- `type` +- `trailer` + +#### new Response([body[, options]]) + +*(spec-compliant)* + +- `body` A `String` or [`Readable` stream][node-readable] +- `options` A [`ResponseInit`][response-init] options dictionary + +Constructs a new `Response` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response). + +Because Node.js does not implement service workers (for which this class was designed), one rarely has to construct a `Response` directly. + +#### response.ok + +*(spec-compliant)* + +Convenience property representing if the request ended normally. Will evaluate to true if the response status was greater than or equal to 200 but smaller than 300. + +#### response.redirected + +*(spec-compliant)* + +Convenience property representing if the request has been redirected at least once. Will evaluate to true if the internal redirect counter is greater than 0. + + +### Class: Headers + +This class allows manipulating and iterating over a set of HTTP headers. All methods specified in the [Fetch Standard][whatwg-fetch] are implemented. + +#### new Headers([init]) + +*(spec-compliant)* + +- `init` Optional argument to pre-fill the `Headers` object + +Construct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object or any iterable object. + +```js +// Example adapted from https://fetch.spec.whatwg.org/#example-headers-class + +const meta = { + 'Content-Type': 'text/xml', + 'Breaking-Bad': '<3' +}; +const headers = new Headers(meta); + +// The above is equivalent to +const meta = [ + [ 'Content-Type', 'text/xml' ], + [ 'Breaking-Bad', '<3' ] +]; +const headers = new Headers(meta); + +// You can in fact use any iterable objects, like a Map or even another Headers +const meta = new Map(); +meta.set('Content-Type', 'text/xml'); +meta.set('Breaking-Bad', '<3'); +const headers = new Headers(meta); +const copyOfHeaders = new Headers(headers); +``` + + +### Interface: Body + +`Body` is an abstract interface with methods that are applicable to both `Request` and `Response` classes. + +The following methods are not yet implemented in node-fetch at this moment: + +- `formData()` + +#### body.body + +*(deviation from spec)* + +* Node.js [`Readable` stream][node-readable] + +Data are encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch it is a Node.js [`Readable` stream][node-readable]. + +#### body.bodyUsed + +*(spec-compliant)* + +* `Boolean` + +A boolean property for if this body has been consumed. Per the specs, a consumed body cannot be used again. + +#### body.arrayBuffer() +#### body.blob() +#### body.json() +#### body.text() + +*(spec-compliant)* + +* Returns: Promise + +Consume the body and return a promise that will resolve to one of these formats. + +#### body.buffer() + +*(node-fetch extension)* + +* Returns: Promise<Buffer> + +Consume the body and return a promise that will resolve to a Buffer. + +#### body.textConverted() + +*(node-fetch extension)* + +* Returns: Promise<String> + +Identical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8 if possible. + +(This API requires an optional dependency of the npm package [encoding](https://www.npmjs.com/package/encoding), which you need to install manually. `webpack` users may see [a warning message](https://github.com/bitinn/node-fetch/issues/412#issuecomment-379007792) due to this optional dependency.) + + +### Class: FetchError + +*(node-fetch extension)* + +An operational error in the fetching process. See [ERROR-HANDLING.md][] for more info. + + +### Class: AbortError + +*(node-fetch extension)* + +An Error thrown when the request is aborted in response to an `AbortSignal`'s `abort` event. It has a `name` property of `AbortError`. See [ERROR-HANDLING.MD][] for more info. + +## Acknowledgement + +Thanks to [github/fetch](https://github.com/github/fetch) for providing a solid implementation reference. + +`node-fetch` v1 was maintained by [@bitinn](https://github.com/bitinn); v2 was maintained by [@TimothyGu](https://github.com/timothygu), [@bitinn](https://github.com/bitinn) and [@jimmywarting](https://github.com/jimmywarting); v2 readme is written by [@jkantr](https://github.com/jkantr). + +## License + +MIT + +[npm-image]: https://flat.badgen.net/npm/v/node-fetch +[npm-url]: https://www.npmjs.com/package/node-fetch +[travis-image]: https://flat.badgen.net/travis/bitinn/node-fetch +[travis-url]: https://travis-ci.org/bitinn/node-fetch +[codecov-image]: https://flat.badgen.net/codecov/c/github/bitinn/node-fetch/master +[codecov-url]: https://codecov.io/gh/bitinn/node-fetch +[install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch +[install-size-url]: https://packagephobia.now.sh/result?p=node-fetch +[discord-image]: https://img.shields.io/discord/619915844268326952?color=%237289DA&label=Discord&style=flat-square +[discord-url]: https://discord.gg/Zxbndcm +[opencollective-image]: https://opencollective.com/node-fetch/backers.svg +[opencollective-url]: https://opencollective.com/node-fetch +[whatwg-fetch]: https://fetch.spec.whatwg.org/ +[response-init]: https://fetch.spec.whatwg.org/#responseinit +[node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams +[mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers +[LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md +[ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md +[UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md diff --git a/node_modules/node-fetch/browser.js b/node_modules/node-fetch/browser.js new file mode 100644 index 0000000..83c54c5 --- /dev/null +++ b/node_modules/node-fetch/browser.js @@ -0,0 +1,25 @@ +"use strict"; + +// ref: https://github.com/tc39/proposal-global +var getGlobal = function () { + // the only reliable means to get the global object is + // `Function('return this')()` + // However, this causes CSP violations in Chrome apps. + if (typeof self !== 'undefined') { return self; } + if (typeof window !== 'undefined') { return window; } + if (typeof global !== 'undefined') { return global; } + throw new Error('unable to locate global object'); +} + +var global = getGlobal(); + +module.exports = exports = global.fetch; + +// Needed for TypeScript and Webpack. +if (global.fetch) { + exports.default = global.fetch.bind(global); +} + +exports.Headers = global.Headers; +exports.Request = global.Request; +exports.Response = global.Response; \ No newline at end of file diff --git a/node_modules/node-fetch/lib/index.es.js b/node_modules/node-fetch/lib/index.es.js new file mode 100644 index 0000000..4852f7c --- /dev/null +++ b/node_modules/node-fetch/lib/index.es.js @@ -0,0 +1,1688 @@ +process.emitWarning("The .es.js file is deprecated. Use .mjs instead."); + +import Stream from 'stream'; +import http from 'http'; +import Url from 'url'; +import whatwgUrl from 'whatwg-url'; +import https from 'https'; +import zlib from 'zlib'; + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +export default fetch; +export { Headers, Request, Response, FetchError }; diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js new file mode 100644 index 0000000..e5b04f1 --- /dev/null +++ b/node_modules/node-fetch/lib/index.js @@ -0,0 +1,1697 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Stream = _interopDefault(require('stream')); +var http = _interopDefault(require('http')); +var Url = _interopDefault(require('url')); +var whatwgUrl = _interopDefault(require('whatwg-url')); +var https = _interopDefault(require('https')); +var zlib = _interopDefault(require('zlib')); + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; diff --git a/node_modules/node-fetch/lib/index.mjs b/node_modules/node-fetch/lib/index.mjs new file mode 100644 index 0000000..49ee05e --- /dev/null +++ b/node_modules/node-fetch/lib/index.mjs @@ -0,0 +1,1686 @@ +import Stream from 'stream'; +import http from 'http'; +import Url from 'url'; +import whatwgUrl from 'whatwg-url'; +import https from 'https'; +import zlib from 'zlib'; + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +export default fetch; +export { Headers, Request, Response, FetchError }; diff --git a/node_modules/node-fetch/package.json b/node_modules/node-fetch/package.json new file mode 100644 index 0000000..3c1bd8d --- /dev/null +++ b/node_modules/node-fetch/package.json @@ -0,0 +1,76 @@ +{ + "name": "node-fetch", + "version": "2.6.7", + "description": "A light-weight module that brings window.fetch to node.js", + "main": "lib/index.js", + "browser": "./browser.js", + "module": "lib/index.mjs", + "files": [ + "lib/index.js", + "lib/index.mjs", + "lib/index.es.js", + "browser.js" + ], + "engines": { + "node": "4.x || >=6.0.0" + }, + "scripts": { + "build": "cross-env BABEL_ENV=rollup rollup -c", + "prepare": "npm run build", + "test": "cross-env BABEL_ENV=test mocha --require babel-register --throw-deprecation test/test.js", + "report": "cross-env BABEL_ENV=coverage nyc --reporter lcov --reporter text mocha -R spec test/test.js", + "coverage": "cross-env BABEL_ENV=coverage nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json" + }, + "repository": { + "type": "git", + "url": "https://github.com/bitinn/node-fetch.git" + }, + "keywords": [ + "fetch", + "http", + "promise" + ], + "author": "David Frank", + "license": "MIT", + "bugs": { + "url": "https://github.com/bitinn/node-fetch/issues" + }, + "homepage": "https://github.com/bitinn/node-fetch", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + }, + "devDependencies": { + "@ungap/url-search-params": "^0.1.2", + "abort-controller": "^1.1.0", + "abortcontroller-polyfill": "^1.3.0", + "babel-core": "^6.26.3", + "babel-plugin-istanbul": "^4.1.6", + "babel-preset-env": "^1.6.1", + "babel-register": "^6.16.3", + "chai": "^3.5.0", + "chai-as-promised": "^7.1.1", + "chai-iterator": "^1.1.1", + "chai-string": "~1.3.0", + "codecov": "3.3.0", + "cross-env": "^5.2.0", + "form-data": "^2.3.3", + "is-builtin-module": "^1.0.0", + "mocha": "^5.0.0", + "nyc": "11.9.0", + "parted": "^0.1.1", + "promise": "^8.0.3", + "resumer": "0.0.0", + "rollup": "^0.63.4", + "rollup-plugin-babel": "^3.0.7", + "string-to-arraybuffer": "^1.0.2", + "teeny-request": "3.7.0" + } +} diff --git a/node_modules/once/LICENSE b/node_modules/once/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/once/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/once/README.md b/node_modules/once/README.md new file mode 100644 index 0000000..1f1ffca --- /dev/null +++ b/node_modules/once/README.md @@ -0,0 +1,79 @@ +# once + +Only call a function once. + +## usage + +```javascript +var once = require('once') + +function load (file, cb) { + cb = once(cb) + loader.load('file') + loader.once('load', cb) + loader.once('error', cb) +} +``` + +Or add to the Function.prototype in a responsible way: + +```javascript +// only has to be done once +require('once').proto() + +function load (file, cb) { + cb = cb.once() + loader.load('file') + loader.once('load', cb) + loader.once('error', cb) +} +``` + +Ironically, the prototype feature makes this module twice as +complicated as necessary. + +To check whether you function has been called, use `fn.called`. Once the +function is called for the first time the return value of the original +function is saved in `fn.value` and subsequent calls will continue to +return this value. + +```javascript +var once = require('once') + +function load (cb) { + cb = once(cb) + var stream = createStream() + stream.once('data', cb) + stream.once('end', function () { + if (!cb.called) cb(new Error('not found')) + }) +} +``` + +## `once.strict(func)` + +Throw an error if the function is called twice. + +Some functions are expected to be called only once. Using `once` for them would +potentially hide logical errors. + +In the example below, the `greet` function has to call the callback only once: + +```javascript +function greet (name, cb) { + // return is missing from the if statement + // when no name is passed, the callback is called twice + if (!name) cb('Hello anonymous') + cb('Hello ' + name) +} + +function log (msg) { + console.log(msg) +} + +// this will print 'Hello anonymous' but the logical error will be missed +greet(null, once(msg)) + +// once.strict will print 'Hello anonymous' and throw an error when the callback will be called the second time +greet(null, once.strict(msg)) +``` diff --git a/node_modules/once/once.js b/node_modules/once/once.js new file mode 100644 index 0000000..2354067 --- /dev/null +++ b/node_modules/once/once.js @@ -0,0 +1,42 @@ +var wrappy = require('wrappy') +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} diff --git a/node_modules/once/package.json b/node_modules/once/package.json new file mode 100644 index 0000000..16815b2 --- /dev/null +++ b/node_modules/once/package.json @@ -0,0 +1,33 @@ +{ + "name": "once", + "version": "1.4.0", + "description": "Run a function exactly one time", + "main": "once.js", + "directories": { + "test": "test" + }, + "dependencies": { + "wrappy": "1" + }, + "devDependencies": { + "tap": "^7.0.1" + }, + "scripts": { + "test": "tap test/*.js" + }, + "files": [ + "once.js" + ], + "repository": { + "type": "git", + "url": "git://github.com/isaacs/once" + }, + "keywords": [ + "once", + "function", + "one", + "single" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC" +} diff --git a/node_modules/optionator/CHANGELOG.md b/node_modules/optionator/CHANGELOG.md new file mode 100644 index 0000000..2928cc2 --- /dev/null +++ b/node_modules/optionator/CHANGELOG.md @@ -0,0 +1,59 @@ +# 0.9.0 +- update dependencies, in particular `levn` and `type-check` - this could affect behaviour of argument parsing + +# 0.8.3 +- changes dependency from `wordwrap` to `word-wrap` due to license issue +- update dependencies + +# 0.8.2 +- fix bug #18 - detect missing value when flag is last item +- update dependencies + +# 0.8.1 +- update `fast-levenshtein` dependency + +# 0.8.0 +- update `levn` dependency - supplying a float value to an option with type `Int` now throws an error, instead of silently converting to an `Int` + +# 0.7.1 +- fix bug with use of `defaults` and `concatRepeatedArrays` or `mergeRepeatedObjects` + +# 0.7.0 +- added `concatrepeatedarrays` option: `oneValuePerFlag`, only allows one array value per flag +- added `typeAliases` option +- added `parseArgv` which takes an array and parses with the first two items sliced off +- changed enum help style +- bug fixes (#12) +- use of `concatRepeatedArrays` and `mergeRepeatedObjects` at the top level is deprecated, use it as either a per-option option, or set them in the `defaults` object to set them for all objects + +# 0.6.0 +- added `defaults` lib-option flag, allowing one to set default properties for all options +- added `concatRepeatedArrays` and `mergeRepeatedObjects` as option level properties, allowing you to turn this feature on for specific options only + +# 0.5.0 +- `Boolean` flags with `default: 'true'`, and no short aliases, will by default show the `--no` version in help + +# 0.4.0 +- add `mergeRepeatedObjects` setting + +# 0.3.0 +- add `concatRepeatedArrays` setting +- add `overrideRequired` option setting +- use just Levenshtein string compare algo rather than Levenshtein Damerau to due dependency license issue + +# 0.2.2 +- bug fixes + +# 0.2.1 +- improved interpolation +- added changelog + +# 0.2.0 +- add dependency checks to options - added `dependsOn` as an option property +- add interpolation for `prepend` and `append` text with new `generateHelp` option, `interpolate` + +# 0.1.1 +- update dependencies + +# 0.1.0 +- initial release diff --git a/node_modules/optionator/LICENSE b/node_modules/optionator/LICENSE new file mode 100644 index 0000000..525b118 --- /dev/null +++ b/node_modules/optionator/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) George Zahariev + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/optionator/README.md b/node_modules/optionator/README.md new file mode 100644 index 0000000..b1c5391 --- /dev/null +++ b/node_modules/optionator/README.md @@ -0,0 +1,238 @@ +# Optionator + + +Optionator is a JavaScript/Node.js option parsing and help generation library used by [eslint](http://eslint.org), [Grasp](http://graspjs.com), [LiveScript](http://livescript.net), [esmangle](https://github.com/estools/esmangle), [escodegen](https://github.com/estools/escodegen), and [many more](https://www.npmjs.com/browse/depended/optionator). + +For an online demo, check out the [Grasp online demo](http://www.graspjs.com/#demo). + +[About](#about) · [Usage](#usage) · [Settings Format](#settings-format) · [Argument Format](#argument-format) + +## Why? +The problem with other option parsers, such as `yargs` or `minimist`, is they just accept all input, valid or not. +With Optionator, if you mistype an option, it will give you an error (with a suggestion for what you meant). +If you give the wrong type of argument for an option, it will give you an error rather than supplying the wrong input to your application. + + $ cmd --halp + Invalid option '--halp' - perhaps you meant '--help'? + + $ cmd --count str + Invalid value for option 'count' - expected type Int, received value: str. + +Other helpful features include reformatting the help text based on the size of the console, so that it fits even if the console is narrow, and accepting not just an array (eg. process.argv), but a string or object as well, making things like testing much easier. + +## About +Optionator uses [type-check](https://github.com/gkz/type-check) and [levn](https://github.com/gkz/levn) behind the scenes to cast and verify input according the specified types. + +MIT license. Version 0.9.1 + + npm install optionator + +For updates on Optionator, [follow me on twitter](https://twitter.com/gkzahariev). + +Optionator is a Node.js module, but can be used in the browser as well if packed with webpack/browserify. + +## Usage +`require('optionator');` returns a function. It has one property, `VERSION`, the current version of the library as a string. This function is called with an object specifying your options and other information, see the [settings format section](#settings-format). This in turn returns an object with three properties, `parse`, `parseArgv`, `generateHelp`, and `generateHelpForOption`, which are all functions. + +```js +var optionator = require('optionator')({ + prepend: 'Usage: cmd [options]', + append: 'Version 1.0.0', + options: [{ + option: 'help', + alias: 'h', + type: 'Boolean', + description: 'displays help' + }, { + option: 'count', + alias: 'c', + type: 'Int', + description: 'number of things', + example: 'cmd --count 2' + }] +}); + +var options = optionator.parseArgv(process.argv); +if (options.help) { + console.log(optionator.generateHelp()); +} +... +``` + +### parse(input, parseOptions) +`parse` processes the `input` according to your settings, and returns an object with the results. + +##### arguments +* input - `[String] | Object | String` - the input you wish to parse +* parseOptions - `{slice: Int}` - all options optional + - `slice` specifies how much to slice away from the beginning if the input is an array or string - by default `0` for string, `2` for array (works with `process.argv`) + +##### returns +`Object` - the parsed options, each key is a camelCase version of the option name (specified in dash-case), and each value is the processed value for that option. Positional values are in an array under the `_` key. + +##### example +```js +parse(['node', 't.js', '--count', '2', 'positional']); // {count: 2, _: ['positional']} +parse('--count 2 positional'); // {count: 2, _: ['positional']} +parse({count: 2, _:['positional']}); // {count: 2, _: ['positional']} +``` + +### parseArgv(input) +`parseArgv` works exactly like `parse`, but only for array input and it slices off the first two elements. + +##### arguments +* input - `[String]` - the input you wish to parse + +##### returns +See "returns" section in "parse" + +##### example +```js +parseArgv(process.argv); +``` + +### generateHelp(helpOptions) +`generateHelp` produces help text based on your settings. + +##### arguments +* helpOptions - `{showHidden: Boolean, interpolate: Object}` - all options optional + - `showHidden` specifies whether to show options with `hidden: true` specified, by default it is `false` + - `interpolate` specify data to be interpolated in `prepend` and `append` text, `{{key}}` is the format - eg. `generateHelp({interpolate:{version: '0.4.2'}})`, will change this `append` text: `Version {{version}}` to `Version 0.4.2` + +##### returns +`String` - the generated help text + +##### example +```js +generateHelp(); /* +"Usage: cmd [options] positional + + -h, --help displays help + -c, --count Int number of things + +Version 1.0.0 +"*/ +``` + +### generateHelpForOption(optionName) +`generateHelpForOption` produces expanded help text for the specified with `optionName` option. If an `example` was specified for the option, it will be displayed, and if a `longDescription` was specified, it will display that instead of the `description`. + +##### arguments +* optionName - `String` - the name of the option to display + +##### returns +`String` - the generated help text for the option + +##### example +```js +generateHelpForOption('count'); /* +"-c, --count Int +description: number of things +example: cmd --count 2 +"*/ +``` + +## Settings Format +When your `require('optionator')`, you get a function that takes in a settings object. This object has the type: + + { + prepend: String, + append: String, + options: [{heading: String} | { + option: String, + alias: [String] | String, + type: String, + enum: [String], + default: String, + restPositional: Boolean, + required: Boolean, + overrideRequired: Boolean, + dependsOn: [String] | String, + concatRepeatedArrays: Boolean | (Boolean, Object), + mergeRepeatedObjects: Boolean, + description: String, + longDescription: String, + example: [String] | String + }], + helpStyle: { + aliasSeparator: String, + typeSeparator: String, + descriptionSeparator: String, + initialIndent: Int, + secondaryIndent: Int, + maxPadFactor: Number + }, + mutuallyExclusive: [[String | [String]]], + concatRepeatedArrays: Boolean | (Boolean, Object), // deprecated, set in defaults object + mergeRepeatedObjects: Boolean, // deprecated, set in defaults object + positionalAnywhere: Boolean, + typeAliases: Object, + defaults: Object + } + +All of the properties are optional (the `Maybe` has been excluded for brevities sake), except for having either `heading: String` or `option: String` in each object in the `options` array. + +### Top Level Properties +* `prepend` is an optional string to be placed before the options in the help text +* `append` is an optional string to be placed after the options in the help text +* `options` is a required array specifying your options and headings, the options and headings will be displayed in the order specified +* `helpStyle` is an optional object which enables you to change the default appearance of some aspects of the help text +* `mutuallyExclusive` is an optional array of arrays of either strings or arrays of strings. The top level array is a list of rules, each rule is a list of elements - each element can be either a string (the name of an option), or a list of strings (a group of option names) - there will be an error if more than one element is present +* `concatRepeatedArrays` see description under the "Option Properties" heading - use at the top level is deprecated, if you want to set this for all options, use the `defaults` property +* `mergeRepeatedObjects` see description under the "Option Properties" heading - use at the top level is deprecated, if you want to set this for all options, use the `defaults` property +* `positionalAnywhere` is an optional boolean (defaults to `true`) - when `true` it allows positional arguments anywhere, when `false`, all arguments after the first positional one are taken to be positional as well, even if they look like a flag. For example, with `positionalAnywhere: false`, the arguments `--flag --boom 12 --crack` would have two positional arguments: `12` and `--crack` +* `typeAliases` is an optional object, it allows you to set aliases for types, eg. `{Path: 'String'}` would allow you to use the type `Path` as an alias for the type `String` +* `defaults` is an optional object following the option properties format, which specifies default values for all options. A default will be overridden if manually set. For example, you can do `default: { type: "String" }` to set the default type of all options to `String`, and then override that default in an individual option by setting the `type` property + +#### Heading Properties +* `heading` a required string, the name of the heading + +#### Option Properties +* `option` the required name of the option - use dash-case, without the leading dashes +* `alias` is an optional string or array of strings which specify any aliases for the option +* `type` is a required string in the [type check](https://github.com/gkz/type-check) [format](https://github.com/gkz/type-check#type-format), this will be used to cast the inputted value and validate it +* `enum` is an optional array of strings, each string will be parsed by [levn](https://github.com/gkz/levn) - the argument value must be one of the resulting values - each potential value must validate against the specified `type` +* `default` is a optional string, which will be parsed by [levn](https://github.com/gkz/levn) and used as the default value if none is set - the value must validate against the specified `type` +* `restPositional` is an optional boolean - if set to `true`, everything after the option will be taken to be a positional argument, even if it looks like a named argument +* `required` is an optional boolean - if set to `true`, the option parsing will fail if the option is not defined +* `overrideRequired` is a optional boolean - if set to `true` and the option is used, and there is another option which is required but not set, it will override the need for the required option and there will be no error - this is useful if you have required options and want to use `--help` or `--version` flags +* `concatRepeatedArrays` is an optional boolean or tuple with boolean and options object (defaults to `false`) - when set to `true` and an option contains an array value and is repeated, the subsequent values for the flag will be appended rather than overwriting the original value - eg. option `g` of type `[String]`: `-g a -g b -g c,d` will result in `['a','b','c','d']` + + You can supply an options object by giving the following value: `[true, options]`. The one currently supported option is `oneValuePerFlag`, this only allows one array value per flag. This is useful if your potential values contain a comma. +* `mergeRepeatedObjects` is an optional boolean (defaults to `false`) - when set to `true` and an option contains an object value and is repeated, the subsequent values for the flag will be merged rather than overwriting the original value - eg. option `g` of type `Object`: `-g a:1 -g b:2 -g c:3,d:4` will result in `{a: 1, b: 2, c: 3, d: 4}` +* `dependsOn` is an optional string or array of strings - if simply a string (the name of another option), it will make sure that that other option is set, if an array of strings, depending on whether `'and'` or `'or'` is first, it will either check whether all (`['and', 'option-a', 'option-b']`), or at least one (`['or', 'option-a', 'option-b']`) other options are set +* `description` is an optional string, which will be displayed next to the option in the help text +* `longDescription` is an optional string, it will be displayed instead of the `description` when `generateHelpForOption` is used +* `example` is an optional string or array of strings with example(s) for the option - these will be displayed when `generateHelpForOption` is used + +#### Help Style Properties +* `aliasSeparator` is an optional string, separates multiple names from each other - default: ' ,' +* `typeSeparator` is an optional string, separates the type from the names - default: ' ' +* `descriptionSeparator` is an optional string , separates the description from the padded name and type - default: ' ' +* `initialIndent` is an optional int - the amount of indent for options - default: 2 +* `secondaryIndent` is an optional int - the amount of indent if wrapped fully (in addition to the initial indent) - default: 4 +* `maxPadFactor` is an optional number - affects the default level of padding for the names/type, it is multiplied by the average of the length of the names/type - default: 1.5 + +## Argument Format +At the highest level there are two types of arguments: named, and positional. + +Name arguments of any length are prefixed with `--` (eg. `--go`), and those of one character may be prefixed with either `--` or `-` (eg. `-g`). + +There are two types of named arguments: boolean flags (eg. `--problemo`, `-p`) which take no value and result in a `true` if they are present, the falsey `undefined` if they are not present, or `false` if present and explicitly prefixed with `no` (eg. `--no-problemo`). Named arguments with values (eg. `--tseries 800`, `-t 800`) are the other type. If the option has a type `Boolean` it will automatically be made into a boolean flag. Any other type results in a named argument that takes a value. + +For more information about how to properly set types to get the value you want, take a look at the [type check](https://github.com/gkz/type-check) and [levn](https://github.com/gkz/levn) pages. + +You can group single character arguments that use a single `-`, however all except the last must be boolean flags (which take no value). The last may be a boolean flag, or an argument which takes a value - eg. `-ba 2` is equivalent to `-b -a 2`. + +Positional arguments are all those values which do not fall under the above - they can be anywhere, not just at the end. For example, in `cmd -b one -a 2 two` where `b` is a boolean flag, and `a` has the type `Number`, there are two positional arguments, `one` and `two`. + +Everything after an `--` is positional, even if it looks like a named argument. + +You may optionally use `=` to separate option names from values, for example: `--count=2`. + +If you specify the option `NUM`, then any argument using a single `-` followed by a number will be valid and will set the value of `NUM`. Eg. `-2` will be parsed into `NUM: 2`. + +If duplicate named arguments are present, the last one will be taken. + +## Technical About +`optionator` is written in [LiveScript](http://livescript.net/) - a language that compiles to JavaScript. It uses [levn](https://github.com/gkz/levn) to cast arguments to their specified type, and uses [type-check](https://github.com/gkz/type-check) to validate values. It also uses the [prelude.ls](http://preludels.com/) library. diff --git a/node_modules/optionator/lib/help.js b/node_modules/optionator/lib/help.js new file mode 100644 index 0000000..59e6f96 --- /dev/null +++ b/node_modules/optionator/lib/help.js @@ -0,0 +1,260 @@ +// Generated by LiveScript 1.6.0 +(function(){ + var ref$, id, find, sort, min, max, map, unlines, nameToRaw, dasherize, naturalJoin, wordWrap, wordwrap, getPreText, setHelpStyleDefaults, generateHelpForOption, generateHelp; + ref$ = require('prelude-ls'), id = ref$.id, find = ref$.find, sort = ref$.sort, min = ref$.min, max = ref$.max, map = ref$.map, unlines = ref$.unlines; + ref$ = require('./util'), nameToRaw = ref$.nameToRaw, dasherize = ref$.dasherize, naturalJoin = ref$.naturalJoin; + wordWrap = require('word-wrap'); + wordwrap = function(a, b){ + var ref$, indent, width; + ref$ = b === undefined + ? ['', a - 1] + : [repeatString$(' ', a), b - a - 1], indent = ref$[0], width = ref$[1]; + return function(text){ + return wordWrap(text, { + indent: indent, + width: width, + trim: true + }); + }; + }; + getPreText = function(option, arg$, maxWidth){ + var mainName, shortNames, ref$, longNames, type, description, aliasSeparator, typeSeparator, initialIndent, names, namesString, namesStringLen, typeSeparatorString, typeSeparatorStringLen, wrap; + mainName = option.option, shortNames = (ref$ = option.shortNames) != null + ? ref$ + : [], longNames = (ref$ = option.longNames) != null + ? ref$ + : [], type = option.type, description = option.description; + aliasSeparator = arg$.aliasSeparator, typeSeparator = arg$.typeSeparator, initialIndent = arg$.initialIndent; + if (option.negateName) { + mainName = "no-" + mainName; + if (longNames) { + longNames = map(function(it){ + return "no-" + it; + }, longNames); + } + } + names = mainName.length === 1 + ? [mainName].concat(shortNames, longNames) + : shortNames.concat([mainName], longNames); + namesString = map(nameToRaw, names).join(aliasSeparator); + namesStringLen = namesString.length; + typeSeparatorString = mainName === 'NUM' ? '::' : typeSeparator; + typeSeparatorStringLen = typeSeparatorString.length; + if (maxWidth != null && !option.boolean && initialIndent + namesStringLen + typeSeparatorStringLen + type.length > maxWidth) { + wrap = wordwrap(initialIndent + namesStringLen + typeSeparatorStringLen, maxWidth); + return namesString + "" + typeSeparatorString + wrap(type).replace(/^\s+/, ''); + } else { + return namesString + "" + (option.boolean + ? '' + : typeSeparatorString + "" + type); + } + }; + setHelpStyleDefaults = function(helpStyle){ + helpStyle.aliasSeparator == null && (helpStyle.aliasSeparator = ', '); + helpStyle.typeSeparator == null && (helpStyle.typeSeparator = ' '); + helpStyle.descriptionSeparator == null && (helpStyle.descriptionSeparator = ' '); + helpStyle.initialIndent == null && (helpStyle.initialIndent = 2); + helpStyle.secondaryIndent == null && (helpStyle.secondaryIndent = 4); + helpStyle.maxPadFactor == null && (helpStyle.maxPadFactor = 1.5); + }; + generateHelpForOption = function(getOption, arg$){ + var stdout, helpStyle, ref$; + stdout = arg$.stdout, helpStyle = (ref$ = arg$.helpStyle) != null + ? ref$ + : {}; + setHelpStyleDefaults(helpStyle); + return function(optionName){ + var maxWidth, wrap, option, e, pre, defaultString, restPositionalString, description, fullDescription, that, preDescription, descriptionString, exampleString, examples, seperator; + maxWidth = stdout != null && stdout.isTTY ? stdout.columns - 1 : null; + wrap = maxWidth ? wordwrap(maxWidth) : id; + try { + option = getOption(dasherize(optionName)); + } catch (e$) { + e = e$; + return e.message; + } + pre = getPreText(option, helpStyle); + defaultString = option['default'] && !option.negateName ? "\ndefault: " + option['default'] : ''; + restPositionalString = option.restPositional ? 'Everything after this option is considered a positional argument, even if it looks like an option.' : ''; + description = option.longDescription || option.description && sentencize(option.description); + fullDescription = description && restPositionalString + ? description + " " + restPositionalString + : (that = description || restPositionalString) ? that : ''; + preDescription = 'description:'; + descriptionString = !fullDescription + ? '' + : maxWidth && fullDescription.length - 1 - preDescription.length > maxWidth + ? "\n" + preDescription + "\n" + wrap(fullDescription) + : "\n" + preDescription + " " + fullDescription; + exampleString = (that = option.example) ? (examples = [].concat(that), examples.length > 1 + ? "\nexamples:\n" + unlines(examples) + : "\nexample: " + examples[0]) : ''; + seperator = defaultString || descriptionString || exampleString ? "\n" + repeatString$('=', pre.length) : ''; + return pre + "" + seperator + defaultString + descriptionString + exampleString; + }; + }; + generateHelp = function(arg$){ + var options, prepend, append, helpStyle, ref$, stdout, aliasSeparator, typeSeparator, descriptionSeparator, maxPadFactor, initialIndent, secondaryIndent; + options = arg$.options, prepend = arg$.prepend, append = arg$.append, helpStyle = (ref$ = arg$.helpStyle) != null + ? ref$ + : {}, stdout = arg$.stdout; + setHelpStyleDefaults(helpStyle); + aliasSeparator = helpStyle.aliasSeparator, typeSeparator = helpStyle.typeSeparator, descriptionSeparator = helpStyle.descriptionSeparator, maxPadFactor = helpStyle.maxPadFactor, initialIndent = helpStyle.initialIndent, secondaryIndent = helpStyle.secondaryIndent; + return function(arg$){ + var ref$, showHidden, interpolate, maxWidth, output, out, data, optionCount, totalPreLen, preLens, i$, len$, item, that, pre, descParts, desc, preLen, sortedPreLens, maxPreLen, preLenMean, x, padAmount, descSepLen, fullWrapCount, partialWrapCount, descLen, totalLen, initialSpace, wrapAllFull, i, wrap; + ref$ = arg$ != null + ? arg$ + : {}, showHidden = ref$.showHidden, interpolate = ref$.interpolate; + maxWidth = stdout != null && stdout.isTTY ? stdout.columns - 1 : null; + output = []; + out = function(it){ + return output.push(it != null ? it : ''); + }; + if (prepend) { + out(interpolate ? interp(prepend, interpolate) : prepend); + out(); + } + data = []; + optionCount = 0; + totalPreLen = 0; + preLens = []; + for (i$ = 0, len$ = (ref$ = options).length; i$ < len$; ++i$) { + item = ref$[i$]; + if (showHidden || !item.hidden) { + if (that = item.heading) { + data.push({ + type: 'heading', + value: that + }); + } else { + pre = getPreText(item, helpStyle, maxWidth); + descParts = []; + if ((that = item.description) != null) { + descParts.push(that); + } + if (that = item['enum']) { + descParts.push("either: " + naturalJoin(that)); + } + if (item['default'] && !item.negateName) { + descParts.push("default: " + item['default']); + } + desc = descParts.join(' - '); + data.push({ + type: 'option', + pre: pre, + desc: desc, + descLen: desc.length + }); + preLen = pre.length; + optionCount++; + totalPreLen += preLen; + preLens.push(preLen); + } + } + } + sortedPreLens = sort(preLens); + maxPreLen = sortedPreLens[sortedPreLens.length - 1]; + preLenMean = initialIndent + totalPreLen / optionCount; + x = optionCount > 2 ? min(preLenMean * maxPadFactor, maxPreLen) : maxPreLen; + for (i$ = sortedPreLens.length - 1; i$ >= 0; --i$) { + preLen = sortedPreLens[i$]; + if (preLen <= x) { + padAmount = preLen; + break; + } + } + descSepLen = descriptionSeparator.length; + if (maxWidth != null) { + fullWrapCount = 0; + partialWrapCount = 0; + for (i$ = 0, len$ = data.length; i$ < len$; ++i$) { + item = data[i$]; + if (item.type === 'option') { + pre = item.pre, desc = item.desc, descLen = item.descLen; + if (descLen === 0) { + item.wrap = 'none'; + } else { + preLen = max(padAmount, pre.length) + initialIndent + descSepLen; + totalLen = preLen + descLen; + if (totalLen > maxWidth) { + if (descLen / 2.5 > maxWidth - preLen) { + fullWrapCount++; + item.wrap = 'full'; + } else { + partialWrapCount++; + item.wrap = 'partial'; + } + } else { + item.wrap = 'none'; + } + } + } + } + } + initialSpace = repeatString$(' ', initialIndent); + wrapAllFull = optionCount > 1 && fullWrapCount + partialWrapCount * 0.5 > optionCount * 0.5; + for (i$ = 0, len$ = data.length; i$ < len$; ++i$) { + i = i$; + item = data[i$]; + if (item.type === 'heading') { + if (i !== 0) { + out(); + } + out(item.value + ":"); + } else { + pre = item.pre, desc = item.desc, descLen = item.descLen, wrap = item.wrap; + if (maxWidth != null) { + if (wrapAllFull || wrap === 'full') { + wrap = wordwrap(initialIndent + secondaryIndent, maxWidth); + out(initialSpace + "" + pre + "\n" + wrap(desc)); + continue; + } else if (wrap === 'partial') { + wrap = wordwrap(initialIndent + descSepLen + max(padAmount, pre.length), maxWidth); + out(initialSpace + "" + pad(pre, padAmount) + descriptionSeparator + wrap(desc).replace(/^\s+/, '')); + continue; + } + } + if (descLen === 0) { + out(initialSpace + "" + pre); + } else { + out(initialSpace + "" + pad(pre, padAmount) + descriptionSeparator + desc); + } + } + } + if (append) { + out(); + out(interpolate ? interp(append, interpolate) : append); + } + return unlines(output); + }; + }; + function pad(str, num){ + var len, padAmount; + len = str.length; + padAmount = num - len; + return str + "" + repeatString$(' ', padAmount > 0 ? padAmount : 0); + } + function sentencize(str){ + var first, rest, period; + first = str.charAt(0).toUpperCase(); + rest = str.slice(1); + period = /[\.!\?]$/.test(str) ? '' : '.'; + return first + "" + rest + period; + } + function interp(string, object){ + return string.replace(/{{([a-zA-Z$_][a-zA-Z$_0-9]*)}}/g, function(arg$, key){ + var ref$; + return (ref$ = object[key]) != null + ? ref$ + : "{{" + key + "}}"; + }); + } + module.exports = { + generateHelp: generateHelp, + generateHelpForOption: generateHelpForOption + }; + function repeatString$(str, n){ + for (var r = ''; n > 0; (n >>= 1) && (str += str)) if (n & 1) r += str; + return r; + } +}).call(this); diff --git a/node_modules/optionator/lib/index.js b/node_modules/optionator/lib/index.js new file mode 100644 index 0000000..20d914b --- /dev/null +++ b/node_modules/optionator/lib/index.js @@ -0,0 +1,465 @@ +// Generated by LiveScript 1.6.0 +(function(){ + var VERSION, ref$, id, map, compact, any, groupBy, partition, chars, isItNaN, keys, Obj, camelize, deepIs, closestString, nameToRaw, dasherize, naturalJoin, generateHelp, generateHelpForOption, parsedTypeCheck, parseType, parseLevn, camelizeKeys, parseString, main, toString$ = {}.toString, slice$ = [].slice, arrayFrom$ = Array.from || function(x){return slice$.call(x);}; + VERSION = '0.9.1'; + ref$ = require('prelude-ls'), id = ref$.id, map = ref$.map, compact = ref$.compact, any = ref$.any, groupBy = ref$.groupBy, partition = ref$.partition, chars = ref$.chars, isItNaN = ref$.isItNaN, keys = ref$.keys, Obj = ref$.Obj, camelize = ref$.camelize; + deepIs = require('deep-is'); + ref$ = require('./util'), closestString = ref$.closestString, nameToRaw = ref$.nameToRaw, dasherize = ref$.dasherize, naturalJoin = ref$.naturalJoin; + ref$ = require('./help'), generateHelp = ref$.generateHelp, generateHelpForOption = ref$.generateHelpForOption; + ref$ = require('type-check'), parsedTypeCheck = ref$.parsedTypeCheck, parseType = ref$.parseType; + parseLevn = require('levn').parsedTypeParse; + camelizeKeys = function(obj){ + var key, value, resultObj$ = {}; + for (key in obj) { + value = obj[key]; + resultObj$[camelize(key)] = value; + } + return resultObj$; + }; + parseString = function(string){ + var assignOpt, regex, replaceRegex, result; + assignOpt = '--?[a-zA-Z][-a-z-A-Z0-9]*='; + regex = RegExp('(?:' + assignOpt + ')?(?:\'(?:\\\\\'|[^\'])+\'|"(?:\\\\"|[^"])+")|[^\'"\\s]+', 'g'); + replaceRegex = RegExp('^(' + assignOpt + ')?[\'"]([\\s\\S]*)[\'"]$'); + result = map(function(it){ + return it.replace(replaceRegex, '$1$2'); + }, string.match(regex) || []); + return result; + }; + main = function(libOptions){ + var opts, defaults, required, traverse, getOption, parse; + opts = {}; + defaults = {}; + required = []; + if (toString$.call(libOptions.stdout).slice(8, -1) === 'Undefined') { + libOptions.stdout = process.stdout; + } + libOptions.positionalAnywhere == null && (libOptions.positionalAnywhere = true); + libOptions.typeAliases == null && (libOptions.typeAliases = {}); + libOptions.defaults == null && (libOptions.defaults = {}); + if (libOptions.concatRepeatedArrays != null) { + libOptions.defaults.concatRepeatedArrays = libOptions.concatRepeatedArrays; + } + if (libOptions.mergeRepeatedObjects != null) { + libOptions.defaults.mergeRepeatedObjects = libOptions.mergeRepeatedObjects; + } + traverse = function(options){ + var i$, len$, option, name, k, ref$, v, type, that, e, parsedPossibilities, parsedType, j$, len1$, possibility, rawDependsType, dependsOpts, dependsType, cra, alias, shortNames, longNames; + if (toString$.call(options).slice(8, -1) !== 'Array') { + throw new Error('No options defined.'); + } + for (i$ = 0, len$ = options.length; i$ < len$; ++i$) { + option = options[i$]; + if (option.heading == null) { + name = option.option; + if (opts[name] != null) { + throw new Error("Option '" + name + "' already defined."); + } + for (k in ref$ = libOptions.defaults) { + v = ref$[k]; + option[k] == null && (option[k] = v); + } + if (option.type === 'Boolean') { + option.boolean == null && (option.boolean = true); + } + if (option.parsedType == null) { + if (!option.type) { + throw new Error("No type defined for option '" + name + "'."); + } + try { + type = (that = libOptions.typeAliases[option.type]) != null + ? that + : option.type; + option.parsedType = parseType(type); + } catch (e$) { + e = e$; + throw new Error("Option '" + name + "': Error parsing type '" + option.type + "': " + e.message); + } + } + if (option['default']) { + try { + defaults[name] = parseLevn(option.parsedType, option['default']); + } catch (e$) { + e = e$; + throw new Error("Option '" + name + "': Error parsing default value '" + option['default'] + "' for type '" + option.type + "': " + e.message); + } + } + if (option['enum'] && !option.parsedPossiblities) { + parsedPossibilities = []; + parsedType = option.parsedType; + for (j$ = 0, len1$ = (ref$ = option['enum']).length; j$ < len1$; ++j$) { + possibility = ref$[j$]; + try { + parsedPossibilities.push(parseLevn(parsedType, possibility)); + } catch (e$) { + e = e$; + throw new Error("Option '" + name + "': Error parsing enum value '" + possibility + "' for type '" + option.type + "': " + e.message); + } + } + option.parsedPossibilities = parsedPossibilities; + } + if (that = option.dependsOn) { + if (that.length) { + ref$ = [].concat(option.dependsOn), rawDependsType = ref$[0], dependsOpts = slice$.call(ref$, 1); + dependsType = rawDependsType.toLowerCase(); + if (dependsOpts.length) { + if (dependsType === 'and' || dependsType === 'or') { + option.dependsOn = [dependsType].concat(arrayFrom$(dependsOpts)); + } else { + throw new Error("Option '" + name + "': If you have more than one dependency, you must specify either 'and' or 'or'"); + } + } else { + if ((ref$ = dependsType.toLowerCase()) === 'and' || ref$ === 'or') { + option.dependsOn = null; + } else { + option.dependsOn = ['and', rawDependsType]; + } + } + } else { + option.dependsOn = null; + } + } + if (option.required) { + required.push(name); + } + opts[name] = option; + if (option.concatRepeatedArrays != null) { + cra = option.concatRepeatedArrays; + if ('Boolean' === toString$.call(cra).slice(8, -1)) { + option.concatRepeatedArrays = [cra, {}]; + } else if (cra.length === 1) { + option.concatRepeatedArrays = [cra[0], {}]; + } else if (cra.length !== 2) { + throw new Error("Invalid setting for concatRepeatedArrays"); + } + } + if (option.alias || option.aliases) { + if (name === 'NUM') { + throw new Error("-NUM option can't have aliases."); + } + if (option.alias) { + option.aliases == null && (option.aliases = [].concat(option.alias)); + } + for (j$ = 0, len1$ = (ref$ = option.aliases).length; j$ < len1$; ++j$) { + alias = ref$[j$]; + if (opts[alias] != null) { + throw new Error("Option '" + alias + "' already defined."); + } + opts[alias] = option; + } + ref$ = partition(fn$, option.aliases), shortNames = ref$[0], longNames = ref$[1]; + option.shortNames == null && (option.shortNames = shortNames); + option.longNames == null && (option.longNames = longNames); + } + if ((!option.aliases || option.shortNames.length === 0) && option.type === 'Boolean' && option['default'] === 'true') { + option.negateName = true; + } + } + } + function fn$(it){ + return it.length === 1; + } + }; + traverse(libOptions.options); + getOption = function(name){ + var opt, possiblyMeant; + opt = opts[name]; + if (opt == null) { + possiblyMeant = closestString(keys(opts), name); + throw new Error("Invalid option '" + nameToRaw(name) + "'" + (possiblyMeant ? " - perhaps you meant '" + nameToRaw(possiblyMeant) + "'?" : '.')); + } + return opt; + }; + parse = function(input, arg$){ + var slice, obj, positional, restPositional, overrideRequired, prop, setValue, setDefaults, checkRequired, mutuallyExclusiveError, checkMutuallyExclusive, checkDependency, checkDependencies, checkProp, args, key, value, option, ref$, i$, len$, arg, that, result, short, argName, usingAssign, val, flags, len, j$, len1$, i, flag, opt, name, valPrime, negated, noedName; + slice = (arg$ != null + ? arg$ + : {}).slice; + obj = {}; + positional = []; + restPositional = false; + overrideRequired = false; + prop = null; + setValue = function(name, value){ + var opt, val, cra, e, currentType; + opt = getOption(name); + if (opt.boolean) { + val = value; + } else { + try { + cra = opt.concatRepeatedArrays; + if (cra != null && cra[0] && cra[1].oneValuePerFlag && opt.parsedType.length === 1 && opt.parsedType[0].structure === 'array') { + val = [parseLevn(opt.parsedType[0].of, value)]; + } else { + val = parseLevn(opt.parsedType, value); + } + } catch (e$) { + e = e$; + throw new Error("Invalid value for option '" + name + "' - expected type " + opt.type + ", received value: " + value + "."); + } + if (opt['enum'] && !any(function(it){ + return deepIs(it, val); + }, opt.parsedPossibilities)) { + throw new Error("Option " + name + ": '" + val + "' not one of " + naturalJoin(opt['enum']) + "."); + } + } + currentType = toString$.call(obj[name]).slice(8, -1); + if (obj[name] != null) { + if (opt.concatRepeatedArrays != null && opt.concatRepeatedArrays[0] && currentType === 'Array') { + obj[name] = obj[name].concat(val); + } else if (opt.mergeRepeatedObjects && currentType === 'Object') { + import$(obj[name], val); + } else { + obj[name] = val; + } + } else { + obj[name] = val; + } + if (opt.restPositional) { + restPositional = true; + } + if (opt.overrideRequired) { + overrideRequired = true; + } + }; + setDefaults = function(){ + var name, ref$, value; + for (name in ref$ = defaults) { + value = ref$[name]; + if (obj[name] == null) { + obj[name] = value; + } + } + }; + checkRequired = function(){ + var i$, ref$, len$, name; + if (overrideRequired) { + return; + } + for (i$ = 0, len$ = (ref$ = required).length; i$ < len$; ++i$) { + name = ref$[i$]; + if (!obj[name]) { + throw new Error("Option " + nameToRaw(name) + " is required."); + } + } + }; + mutuallyExclusiveError = function(first, second){ + throw new Error("The options " + nameToRaw(first) + " and " + nameToRaw(second) + " are mutually exclusive - you cannot use them at the same time."); + }; + checkMutuallyExclusive = function(){ + var rules, i$, len$, rule, present, j$, len1$, element, k$, len2$, opt; + rules = libOptions.mutuallyExclusive; + if (!rules) { + return; + } + for (i$ = 0, len$ = rules.length; i$ < len$; ++i$) { + rule = rules[i$]; + present = null; + for (j$ = 0, len1$ = rule.length; j$ < len1$; ++j$) { + element = rule[j$]; + if (toString$.call(element).slice(8, -1) === 'Array') { + for (k$ = 0, len2$ = element.length; k$ < len2$; ++k$) { + opt = element[k$]; + if (opt in obj) { + if (present != null) { + mutuallyExclusiveError(present, opt); + } else { + present = opt; + break; + } + } + } + } else { + if (element in obj) { + if (present != null) { + mutuallyExclusiveError(present, element); + } else { + present = element; + } + } + } + } + } + }; + checkDependency = function(option){ + var dependsOn, type, targetOptionNames, i$, len$, targetOptionName, targetOption; + dependsOn = option.dependsOn; + if (!dependsOn || option.dependenciesMet) { + return true; + } + type = dependsOn[0], targetOptionNames = slice$.call(dependsOn, 1); + for (i$ = 0, len$ = targetOptionNames.length; i$ < len$; ++i$) { + targetOptionName = targetOptionNames[i$]; + targetOption = obj[targetOptionName]; + if (targetOption && checkDependency(targetOption)) { + if (type === 'or') { + return true; + } + } else if (type === 'and') { + throw new Error("The option '" + option.option + "' did not have its dependencies met."); + } + } + if (type === 'and') { + return true; + } else { + throw new Error("The option '" + option.option + "' did not meet any of its dependencies."); + } + }; + checkDependencies = function(){ + var name; + for (name in obj) { + checkDependency(opts[name]); + } + }; + checkProp = function(){ + if (prop) { + throw new Error("Value for '" + prop + "' of type '" + getOption(prop).type + "' required."); + } + }; + switch (toString$.call(input).slice(8, -1)) { + case 'String': + args = parseString(input.slice(slice != null ? slice : 0)); + break; + case 'Array': + args = input.slice(slice != null ? slice : 2); + break; + case 'Object': + obj = {}; + for (key in input) { + value = input[key]; + if (key !== '_') { + option = getOption(dasherize(key)); + if (parsedTypeCheck(option.parsedType, value)) { + obj[option.option] = value; + } else { + throw new Error("Option '" + option.option + "': Invalid type for '" + value + "' - expected type '" + option.type + "'."); + } + } + } + checkMutuallyExclusive(); + checkDependencies(); + setDefaults(); + checkRequired(); + return ref$ = camelizeKeys(obj), ref$._ = input._ || [], ref$; + default: + throw new Error("Invalid argument to 'parse': " + input + "."); + } + for (i$ = 0, len$ = args.length; i$ < len$; ++i$) { + arg = args[i$]; + if (arg === '--') { + restPositional = true; + } else if (restPositional) { + positional.push(arg); + } else { + if (that = arg.match(/^(--?)([a-zA-Z][-a-zA-Z0-9]*)(=)?(.*)?$/)) { + result = that; + checkProp(); + short = result[1].length === 1; + argName = result[2]; + usingAssign = result[3] != null; + val = result[4]; + if (usingAssign && val == null) { + throw new Error("No value for '" + argName + "' specified."); + } + if (short) { + flags = chars(argName); + len = flags.length; + for (j$ = 0, len1$ = flags.length; j$ < len1$; ++j$) { + i = j$; + flag = flags[j$]; + opt = getOption(flag); + name = opt.option; + if (restPositional) { + positional.push(flag); + } else if (i === len - 1) { + if (usingAssign) { + valPrime = opt.boolean ? parseLevn([{ + type: 'Boolean' + }], val) : val; + setValue(name, valPrime); + } else if (opt.boolean) { + setValue(name, true); + } else { + prop = name; + } + } else if (opt.boolean) { + setValue(name, true); + } else { + throw new Error("Can't set argument '" + flag + "' when not last flag in a group of short flags."); + } + } + } else { + negated = false; + if (that = argName.match(/^no-(.+)$/)) { + negated = true; + noedName = that[1]; + opt = getOption(noedName); + } else { + opt = getOption(argName); + } + name = opt.option; + if (opt.boolean) { + valPrime = usingAssign ? parseLevn([{ + type: 'Boolean' + }], val) : true; + if (negated) { + setValue(name, !valPrime); + } else { + setValue(name, valPrime); + } + } else { + if (negated) { + throw new Error("Only use 'no-' prefix for Boolean options, not with '" + noedName + "'."); + } + if (usingAssign) { + setValue(name, val); + } else { + prop = name; + } + } + } + } else if (that = arg.match(/^-([0-9]+(?:\.[0-9]+)?)$/)) { + opt = opts.NUM; + if (!opt) { + throw new Error('No -NUM option defined.'); + } + setValue(opt.option, that[1]); + } else { + if (prop) { + setValue(prop, arg); + prop = null; + } else { + positional.push(arg); + if (!libOptions.positionalAnywhere) { + restPositional = true; + } + } + } + } + } + checkProp(); + checkMutuallyExclusive(); + checkDependencies(); + setDefaults(); + checkRequired(); + return ref$ = camelizeKeys(obj), ref$._ = positional, ref$; + }; + return { + parse: parse, + parseArgv: function(it){ + return parse(it, { + slice: 2 + }); + }, + generateHelp: generateHelp(libOptions), + generateHelpForOption: generateHelpForOption(getOption, libOptions) + }; + }; + main.VERSION = VERSION; + module.exports = main; + function import$(obj, src){ + var own = {}.hasOwnProperty; + for (var key in src) if (own.call(src, key)) obj[key] = src[key]; + return obj; + } +}).call(this); diff --git a/node_modules/optionator/lib/util.js b/node_modules/optionator/lib/util.js new file mode 100644 index 0000000..5bc0cbb --- /dev/null +++ b/node_modules/optionator/lib/util.js @@ -0,0 +1,54 @@ +// Generated by LiveScript 1.6.0 +(function(){ + var prelude, map, sortBy, fl, closestString, nameToRaw, dasherize, naturalJoin; + prelude = require('prelude-ls'), map = prelude.map, sortBy = prelude.sortBy; + fl = require('fast-levenshtein'); + closestString = function(possibilities, input){ + var distances, ref$, string, distance; + if (!possibilities.length) { + return; + } + distances = map(function(it){ + var ref$, longer, shorter; + ref$ = input.length > it.length + ? [input, it] + : [it, input], longer = ref$[0], shorter = ref$[1]; + return { + string: it, + distance: fl.get(longer, shorter) + }; + })( + possibilities); + ref$ = sortBy(function(it){ + return it.distance; + }, distances)[0], string = ref$.string, distance = ref$.distance; + return string; + }; + nameToRaw = function(name){ + if (name.length === 1 || name === 'NUM') { + return "-" + name; + } else { + return "--" + name; + } + }; + dasherize = function(string){ + if (/^[A-Z]/.test(string)) { + return string; + } else { + return prelude.dasherize(string); + } + }; + naturalJoin = function(array){ + if (array.length < 3) { + return array.join(' or '); + } else { + return array.slice(0, -1).join(', ') + ", or " + array[array.length - 1]; + } + }; + module.exports = { + closestString: closestString, + nameToRaw: nameToRaw, + dasherize: dasherize, + naturalJoin: naturalJoin + }; +}).call(this); diff --git a/node_modules/optionator/package.json b/node_modules/optionator/package.json new file mode 100644 index 0000000..83fb1c2 --- /dev/null +++ b/node_modules/optionator/package.json @@ -0,0 +1,43 @@ +{ + "name": "optionator", + "version": "0.9.1", + "author": "George Zahariev ", + "description": "option parsing and help generation", + "homepage": "https://github.com/gkz/optionator", + "keywords": [ + "options", + "flags", + "option parsing", + "cli" + ], + "files": [ + "lib", + "README.md", + "LICENSE" + ], + "main": "./lib/", + "bugs": "https://github.com/gkz/optionator/issues", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/gkz/optionator.git" + }, + "scripts": { + "test": "make test" + }, + "dependencies": { + "prelude-ls": "^1.2.1", + "deep-is": "^0.1.3", + "word-wrap": "^1.2.3", + "type-check": "^0.4.0", + "levn": "^0.4.1", + "fast-levenshtein": "^2.0.6" + }, + "devDependencies": { + "livescript": "^1.6.0", + "mocha": "^7.1.1" + } +} diff --git a/node_modules/p-limit/index.d.ts b/node_modules/p-limit/index.d.ts new file mode 100644 index 0000000..f348d7f --- /dev/null +++ b/node_modules/p-limit/index.d.ts @@ -0,0 +1,42 @@ +declare namespace pLimit { + interface Limit { + /** + The number of promises that are currently running. + */ + readonly activeCount: number; + + /** + The number of promises that are waiting to run (i.e. their internal `fn` was not called yet). + */ + readonly pendingCount: number; + + /** + Discard pending promises that are waiting to run. + + This might be useful if you want to teardown the queue at the end of your program's lifecycle or discard any function calls referencing an intermediary state of your app. + + Note: This does not cancel promises that are already running. + */ + clearQueue: () => void; + + /** + @param fn - Promise-returning/async function. + @param arguments - Any arguments to pass through to `fn`. Support for passing arguments on to the `fn` is provided in order to be able to avoid creating unnecessary closures. You probably don't need this optimization unless you're pushing a lot of functions. + @returns The promise returned by calling `fn(...arguments)`. + */ + ( + fn: (...arguments: Arguments) => PromiseLike | ReturnType, + ...arguments: Arguments + ): Promise; + } +} + +/** +Run multiple promise-returning & async functions with limited concurrency. + +@param concurrency - Concurrency limit. Minimum: `1`. +@returns A `limit` function. +*/ +declare function pLimit(concurrency: number): pLimit.Limit; + +export = pLimit; diff --git a/node_modules/p-limit/index.js b/node_modules/p-limit/index.js new file mode 100644 index 0000000..c2ae52d --- /dev/null +++ b/node_modules/p-limit/index.js @@ -0,0 +1,71 @@ +'use strict'; +const Queue = require('yocto-queue'); + +const pLimit = concurrency => { + if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { + throw new TypeError('Expected `concurrency` to be a number from 1 and up'); + } + + const queue = new Queue(); + let activeCount = 0; + + const next = () => { + activeCount--; + + if (queue.size > 0) { + queue.dequeue()(); + } + }; + + const run = async (fn, resolve, ...args) => { + activeCount++; + + const result = (async () => fn(...args))(); + + resolve(result); + + try { + await result; + } catch {} + + next(); + }; + + const enqueue = (fn, resolve, ...args) => { + queue.enqueue(run.bind(null, fn, resolve, ...args)); + + (async () => { + // This function needs to wait until the next microtask before comparing + // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously + // when the run function is dequeued and called. The comparison in the if-statement + // needs to happen asynchronously as well to get an up-to-date value for `activeCount`. + await Promise.resolve(); + + if (activeCount < concurrency && queue.size > 0) { + queue.dequeue()(); + } + })(); + }; + + const generator = (fn, ...args) => new Promise(resolve => { + enqueue(fn, resolve, ...args); + }); + + Object.defineProperties(generator, { + activeCount: { + get: () => activeCount + }, + pendingCount: { + get: () => queue.size + }, + clearQueue: { + value: () => { + queue.clear(); + } + } + }); + + return generator; +}; + +module.exports = pLimit; diff --git a/node_modules/p-limit/license b/node_modules/p-limit/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/p-limit/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/p-limit/package.json b/node_modules/p-limit/package.json new file mode 100644 index 0000000..7651473 --- /dev/null +++ b/node_modules/p-limit/package.json @@ -0,0 +1,52 @@ +{ + "name": "p-limit", + "version": "3.1.0", + "description": "Run multiple promise-returning & async functions with limited concurrency", + "license": "MIT", + "repository": "sindresorhus/p-limit", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "devDependencies": { + "ava": "^2.4.0", + "delay": "^4.4.0", + "in-range": "^2.0.0", + "random-int": "^2.0.1", + "time-span": "^4.0.0", + "tsd": "^0.13.1", + "xo": "^0.35.0" + } +} diff --git a/node_modules/p-limit/readme.md b/node_modules/p-limit/readme.md new file mode 100644 index 0000000..b283c1e --- /dev/null +++ b/node_modules/p-limit/readme.md @@ -0,0 +1,101 @@ +# p-limit + +> Run multiple promise-returning & async functions with limited concurrency + +## Install + +``` +$ npm install p-limit +``` + +## Usage + +```js +const pLimit = require('p-limit'); + +const limit = pLimit(1); + +const input = [ + limit(() => fetchSomething('foo')), + limit(() => fetchSomething('bar')), + limit(() => doSomething()) +]; + +(async () => { + // Only one promise is run at once + const result = await Promise.all(input); + console.log(result); +})(); +``` + +## API + +### pLimit(concurrency) + +Returns a `limit` function. + +#### concurrency + +Type: `number`\ +Minimum: `1`\ +Default: `Infinity` + +Concurrency limit. + +### limit(fn, ...args) + +Returns the promise returned by calling `fn(...args)`. + +#### fn + +Type: `Function` + +Promise-returning/async function. + +#### args + +Any arguments to pass through to `fn`. + +Support for passing arguments on to the `fn` is provided in order to be able to avoid creating unnecessary closures. You probably don't need this optimization unless you're pushing a *lot* of functions. + +### limit.activeCount + +The number of promises that are currently running. + +### limit.pendingCount + +The number of promises that are waiting to run (i.e. their internal `fn` was not called yet). + +### limit.clearQueue() + +Discard pending promises that are waiting to run. + +This might be useful if you want to teardown the queue at the end of your program's lifecycle or discard any function calls referencing an intermediary state of your app. + +Note: This does not cancel promises that are already running. + +## FAQ + +### How is this different from the [`p-queue`](https://github.com/sindresorhus/p-queue) package? + +This package is only about limiting the number of concurrent executions, while `p-queue` is a fully featured queue implementation with lots of different options, introspection, and ability to pause the queue. + +## Related + +- [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control +- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions +- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions +- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency +- [More…](https://github.com/sindresorhus/promise-fun) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/p-locate/index.d.ts b/node_modules/p-locate/index.d.ts new file mode 100644 index 0000000..38c7e57 --- /dev/null +++ b/node_modules/p-locate/index.d.ts @@ -0,0 +1,53 @@ +declare namespace pLocate { + interface Options { + /** + Number of concurrently pending promises returned by `tester`. Minimum: `1`. + + @default Infinity + */ + readonly concurrency?: number; + + /** + Preserve `input` order when searching. + + Disable this to improve performance if you don't care about the order. + + @default true + */ + readonly preserveOrder?: boolean; + } +} + +/** +Get the first fulfilled promise that satisfies the provided testing function. + +@param input - An iterable of promises/values to test. +@param tester - This function will receive resolved values from `input` and is expected to return a `Promise` or `boolean`. +@returns A `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`. + +@example +``` +import pathExists = require('path-exists'); +import pLocate = require('p-locate'); + +const files = [ + 'unicorn.png', + 'rainbow.png', // Only this one actually exists on disk + 'pony.png' +]; + +(async () => { + const foundPath = await pLocate(files, file => pathExists(file)); + + console.log(foundPath); + //=> 'rainbow' +})(); +``` +*/ +declare function pLocate( + input: Iterable | ValueType>, + tester: (element: ValueType) => PromiseLike | boolean, + options?: pLocate.Options +): Promise; + +export = pLocate; diff --git a/node_modules/p-locate/index.js b/node_modules/p-locate/index.js new file mode 100644 index 0000000..641c3dd --- /dev/null +++ b/node_modules/p-locate/index.js @@ -0,0 +1,50 @@ +'use strict'; +const pLimit = require('p-limit'); + +class EndError extends Error { + constructor(value) { + super(); + this.value = value; + } +} + +// The input can also be a promise, so we await it +const testElement = async (element, tester) => tester(await element); + +// The input can also be a promise, so we `Promise.all()` them both +const finder = async element => { + const values = await Promise.all(element); + if (values[1] === true) { + throw new EndError(values[0]); + } + + return false; +}; + +const pLocate = async (iterable, tester, options) => { + options = { + concurrency: Infinity, + preserveOrder: true, + ...options + }; + + const limit = pLimit(options.concurrency); + + // Start all the promises concurrently with optional limit + const items = [...iterable].map(element => [element, limit(testElement, element, tester)]); + + // Check the promises either serially or concurrently + const checkLimit = pLimit(options.preserveOrder ? 1 : Infinity); + + try { + await Promise.all(items.map(element => checkLimit(finder, element))); + } catch (error) { + if (error instanceof EndError) { + return error.value; + } + + throw error; + } +}; + +module.exports = pLocate; diff --git a/node_modules/p-locate/license b/node_modules/p-locate/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/p-locate/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/p-locate/package.json b/node_modules/p-locate/package.json new file mode 100644 index 0000000..2d5e447 --- /dev/null +++ b/node_modules/p-locate/package.json @@ -0,0 +1,54 @@ +{ + "name": "p-locate", + "version": "5.0.0", + "description": "Get the first fulfilled promise that satisfies the provided testing function", + "license": "MIT", + "repository": "sindresorhus/p-locate", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "promise", + "locate", + "find", + "finder", + "search", + "searcher", + "test", + "array", + "collection", + "iterable", + "iterator", + "race", + "fulfilled", + "fastest", + "async", + "await", + "promises", + "bluebird" + ], + "dependencies": { + "p-limit": "^3.0.2" + }, + "devDependencies": { + "ava": "^2.4.0", + "delay": "^4.1.0", + "in-range": "^2.0.0", + "time-span": "^4.0.0", + "tsd": "^0.13.1", + "xo": "^0.32.1" + } +} diff --git a/node_modules/p-locate/readme.md b/node_modules/p-locate/readme.md new file mode 100644 index 0000000..be85ec1 --- /dev/null +++ b/node_modules/p-locate/readme.md @@ -0,0 +1,93 @@ +# p-locate [![Build Status](https://travis-ci.com/sindresorhus/p-locate.svg?branch=master)](https://travis-ci.com/github/sindresorhus/p-locate) + +> Get the first fulfilled promise that satisfies the provided testing function + +Think of it like an async version of [`Array#find`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find). + +## Install + +``` +$ npm install p-locate +``` + +## Usage + +Here we find the first file that exists on disk, in array order. + +```js +const pathExists = require('path-exists'); +const pLocate = require('p-locate'); + +const files = [ + 'unicorn.png', + 'rainbow.png', // Only this one actually exists on disk + 'pony.png' +]; + +(async () => { + const foundPath = await pLocate(files, file => pathExists(file)); + + console.log(foundPath); + //=> 'rainbow' +})(); +``` + +*The above is just an example. Use [`locate-path`](https://github.com/sindresorhus/locate-path) if you need this.* + +## API + +### pLocate(input, tester, options?) + +Returns a `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`. + +#### input + +Type: `Iterable` + +An iterable of promises/values to test. + +#### tester(element) + +Type: `Function` + +This function will receive resolved values from `input` and is expected to return a `Promise` or `boolean`. + +#### options + +Type: `object` + +##### concurrency + +Type: `number`\ +Default: `Infinity`\ +Minimum: `1` + +Number of concurrently pending promises returned by `tester`. + +##### preserveOrder + +Type: `boolean`\ +Default: `true` + +Preserve `input` order when searching. + +Disable this to improve performance if you don't care about the order. + +## Related + +- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently +- [p-filter](https://github.com/sindresorhus/p-filter) - Filter promises concurrently +- [p-any](https://github.com/sindresorhus/p-any) - Wait for any promise to be fulfilled +- [More…](https://github.com/sindresorhus/promise-fun) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/parent-module/index.js b/node_modules/parent-module/index.js new file mode 100644 index 0000000..a26f953 --- /dev/null +++ b/node_modules/parent-module/index.js @@ -0,0 +1,37 @@ +'use strict'; +const callsites = require('callsites'); + +module.exports = filepath => { + const stacks = callsites(); + + if (!filepath) { + return stacks[2].getFileName(); + } + + let seenVal = false; + + // Skip the first stack as it's this function + stacks.shift(); + + for (const stack of stacks) { + const parentFilepath = stack.getFileName(); + + if (typeof parentFilepath !== 'string') { + continue; + } + + if (parentFilepath === filepath) { + seenVal = true; + continue; + } + + // Skip native modules + if (parentFilepath === 'module.js') { + continue; + } + + if (seenVal && parentFilepath !== filepath) { + return parentFilepath; + } + } +}; diff --git a/node_modules/parent-module/license b/node_modules/parent-module/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/parent-module/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/parent-module/package.json b/node_modules/parent-module/package.json new file mode 100644 index 0000000..790333d --- /dev/null +++ b/node_modules/parent-module/package.json @@ -0,0 +1,46 @@ +{ + "name": "parent-module", + "version": "1.0.1", + "description": "Get the path of the parent module", + "license": "MIT", + "repository": "sindresorhus/parent-module", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "parent", + "module", + "package", + "pkg", + "caller", + "calling", + "module", + "path", + "callsites", + "callsite", + "stacktrace", + "stack", + "trace", + "function", + "file" + ], + "dependencies": { + "callsites": "^3.0.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "execa": "^1.0.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/parent-module/readme.md b/node_modules/parent-module/readme.md new file mode 100644 index 0000000..dffb4ce --- /dev/null +++ b/node_modules/parent-module/readme.md @@ -0,0 +1,67 @@ +# parent-module [![Build Status](https://travis-ci.org/sindresorhus/parent-module.svg?branch=master)](https://travis-ci.org/sindresorhus/parent-module) + +> Get the path of the parent module + +Node.js exposes `module.parent`, but it only gives you the first cached parent, which is not necessarily the actual parent. + + +## Install + +``` +$ npm install parent-module +``` + + +## Usage + +```js +// bar.js +const parentModule = require('parent-module'); + +module.exports = () => { + console.log(parentModule()); + //=> '/Users/sindresorhus/dev/unicorn/foo.js' +}; +``` + +```js +// foo.js +const bar = require('./bar'); + +bar(); +``` + + +## API + +### parentModule([filepath]) + +By default, it will return the path of the immediate parent. + +#### filepath + +Type: `string`
+Default: [`__filename`](https://nodejs.org/api/globals.html#globals_filename) + +Filepath of the module of which to get the parent path. + +Useful if you want it to work [multiple module levels down](https://github.com/sindresorhus/parent-module/tree/master/fixtures/filepath). + + +## Tip + +Combine it with [`read-pkg-up`](https://github.com/sindresorhus/read-pkg-up) to read the package.json of the parent module. + +```js +const path = require('path'); +const readPkgUp = require('read-pkg-up'); +const parentModule = require('parent-module'); + +console.log(readPkgUp.sync({cwd: path.dirname(parentModule())}).pkg); +//=> {name: 'chalk', version: '1.0.0', …} +``` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/path-exists/index.d.ts b/node_modules/path-exists/index.d.ts new file mode 100644 index 0000000..54b7ab8 --- /dev/null +++ b/node_modules/path-exists/index.d.ts @@ -0,0 +1,28 @@ +declare const pathExists: { + /** + Check if a path exists. + + @returns Whether the path exists. + + @example + ``` + // foo.ts + import pathExists = require('path-exists'); + + (async () => { + console.log(await pathExists('foo.ts')); + //=> true + })(); + ``` + */ + (path: string): Promise; + + /** + Synchronously check if a path exists. + + @returns Whether the path exists. + */ + sync(path: string): boolean; +}; + +export = pathExists; diff --git a/node_modules/path-exists/index.js b/node_modules/path-exists/index.js new file mode 100644 index 0000000..1943921 --- /dev/null +++ b/node_modules/path-exists/index.js @@ -0,0 +1,23 @@ +'use strict'; +const fs = require('fs'); +const {promisify} = require('util'); + +const pAccess = promisify(fs.access); + +module.exports = async path => { + try { + await pAccess(path); + return true; + } catch (_) { + return false; + } +}; + +module.exports.sync = path => { + try { + fs.accessSync(path); + return true; + } catch (_) { + return false; + } +}; diff --git a/node_modules/path-exists/license b/node_modules/path-exists/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/path-exists/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/path-exists/package.json b/node_modules/path-exists/package.json new file mode 100644 index 0000000..0755256 --- /dev/null +++ b/node_modules/path-exists/package.json @@ -0,0 +1,39 @@ +{ + "name": "path-exists", + "version": "4.0.0", + "description": "Check if a path exists", + "license": "MIT", + "repository": "sindresorhus/path-exists", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "exists", + "exist", + "file", + "filepath", + "fs", + "filesystem", + "file-system", + "access", + "stat" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/path-exists/readme.md b/node_modules/path-exists/readme.md new file mode 100644 index 0000000..81f9845 --- /dev/null +++ b/node_modules/path-exists/readme.md @@ -0,0 +1,52 @@ +# path-exists [![Build Status](https://travis-ci.org/sindresorhus/path-exists.svg?branch=master)](https://travis-ci.org/sindresorhus/path-exists) + +> Check if a path exists + +NOTE: `fs.existsSync` has been un-deprecated in Node.js since 6.8.0. If you only need to check synchronously, this module is not needed. + +While [`fs.exists()`](https://nodejs.org/api/fs.html#fs_fs_exists_path_callback) is being [deprecated](https://github.com/iojs/io.js/issues/103), there's still a genuine use-case of being able to check if a path exists for other purposes than doing IO with it. + +Never use this before handling a file though: + +> In particular, checking if a file exists before opening it is an anti-pattern that leaves you vulnerable to race conditions: another process may remove the file between the calls to `fs.exists()` and `fs.open()`. Just open the file and handle the error when it's not there. + + +## Install + +``` +$ npm install path-exists +``` + + +## Usage + +```js +// foo.js +const pathExists = require('path-exists'); + +(async () => { + console.log(await pathExists('foo.js')); + //=> true +})(); +``` + + +## API + +### pathExists(path) + +Returns a `Promise` of whether the path exists. + +### pathExists.sync(path) + +Returns a `boolean` of whether the path exists. + + +## Related + +- [path-exists-cli](https://github.com/sindresorhus/path-exists-cli) - CLI for this module + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/path-is-absolute/index.js b/node_modules/path-is-absolute/index.js new file mode 100644 index 0000000..22aa6c3 --- /dev/null +++ b/node_modules/path-is-absolute/index.js @@ -0,0 +1,20 @@ +'use strict'; + +function posix(path) { + return path.charAt(0) === '/'; +} + +function win32(path) { + // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path); + var device = result[1] || ''; + var isUnc = Boolean(device && device.charAt(1) !== ':'); + + // UNC paths are always absolute + return Boolean(result[2] || isUnc); +} + +module.exports = process.platform === 'win32' ? win32 : posix; +module.exports.posix = posix; +module.exports.win32 = win32; diff --git a/node_modules/path-is-absolute/license b/node_modules/path-is-absolute/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/path-is-absolute/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/path-is-absolute/package.json b/node_modules/path-is-absolute/package.json new file mode 100644 index 0000000..91196d5 --- /dev/null +++ b/node_modules/path-is-absolute/package.json @@ -0,0 +1,43 @@ +{ + "name": "path-is-absolute", + "version": "1.0.1", + "description": "Node.js 0.12 path.isAbsolute() ponyfill", + "license": "MIT", + "repository": "sindresorhus/path-is-absolute", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "xo && node test.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "path", + "paths", + "file", + "dir", + "absolute", + "isabsolute", + "is-absolute", + "built-in", + "util", + "utils", + "core", + "ponyfill", + "polyfill", + "shim", + "is", + "detect", + "check" + ], + "devDependencies": { + "xo": "^0.16.0" + } +} diff --git a/node_modules/path-is-absolute/readme.md b/node_modules/path-is-absolute/readme.md new file mode 100644 index 0000000..8dbdf5f --- /dev/null +++ b/node_modules/path-is-absolute/readme.md @@ -0,0 +1,59 @@ +# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) + +> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) [ponyfill](https://ponyfill.com) + + +## Install + +``` +$ npm install --save path-is-absolute +``` + + +## Usage + +```js +const pathIsAbsolute = require('path-is-absolute'); + +// Running on Linux +pathIsAbsolute('/home/foo'); +//=> true +pathIsAbsolute('C:/Users/foo'); +//=> false + +// Running on Windows +pathIsAbsolute('C:/Users/foo'); +//=> true +pathIsAbsolute('/home/foo'); +//=> false + +// Running on any OS +pathIsAbsolute.posix('/home/foo'); +//=> true +pathIsAbsolute.posix('C:/Users/foo'); +//=> false +pathIsAbsolute.win32('C:/Users/foo'); +//=> true +pathIsAbsolute.win32('/home/foo'); +//=> false +``` + + +## API + +See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). + +### pathIsAbsolute(path) + +### pathIsAbsolute.posix(path) + +POSIX specific version. + +### pathIsAbsolute.win32(path) + +Windows specific version. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/path-key/index.d.ts b/node_modules/path-key/index.d.ts new file mode 100644 index 0000000..7c575d1 --- /dev/null +++ b/node_modules/path-key/index.d.ts @@ -0,0 +1,40 @@ +/// + +declare namespace pathKey { + interface Options { + /** + Use a custom environment variables object. Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env). + */ + readonly env?: {[key: string]: string | undefined}; + + /** + Get the PATH key for a specific platform. Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform). + */ + readonly platform?: NodeJS.Platform; + } +} + +declare const pathKey: { + /** + Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform. + + @example + ``` + import pathKey = require('path-key'); + + const key = pathKey(); + //=> 'PATH' + + const PATH = process.env[key]; + //=> '/usr/local/bin:/usr/bin:/bin' + ``` + */ + (options?: pathKey.Options): string; + + // TODO: Remove this for the next major release, refactor the whole definition to: + // declare function pathKey(options?: pathKey.Options): string; + // export = pathKey; + default: typeof pathKey; +}; + +export = pathKey; diff --git a/node_modules/path-key/index.js b/node_modules/path-key/index.js new file mode 100644 index 0000000..0cf6415 --- /dev/null +++ b/node_modules/path-key/index.js @@ -0,0 +1,16 @@ +'use strict'; + +const pathKey = (options = {}) => { + const environment = options.env || process.env; + const platform = options.platform || process.platform; + + if (platform !== 'win32') { + return 'PATH'; + } + + return Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path'; +}; + +module.exports = pathKey; +// TODO: Remove this for the next major release +module.exports.default = pathKey; diff --git a/node_modules/path-key/license b/node_modules/path-key/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/path-key/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/path-key/package.json b/node_modules/path-key/package.json new file mode 100644 index 0000000..c8cbd38 --- /dev/null +++ b/node_modules/path-key/package.json @@ -0,0 +1,39 @@ +{ + "name": "path-key", + "version": "3.1.1", + "description": "Get the PATH environment variable key cross-platform", + "license": "MIT", + "repository": "sindresorhus/path-key", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "key", + "environment", + "env", + "variable", + "var", + "get", + "cross-platform", + "windows" + ], + "devDependencies": { + "@types/node": "^11.13.0", + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/path-key/readme.md b/node_modules/path-key/readme.md new file mode 100644 index 0000000..a9052d7 --- /dev/null +++ b/node_modules/path-key/readme.md @@ -0,0 +1,61 @@ +# path-key [![Build Status](https://travis-ci.org/sindresorhus/path-key.svg?branch=master)](https://travis-ci.org/sindresorhus/path-key) + +> Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform + +It's usually `PATH`, but on Windows it can be any casing like `Path`... + + +## Install + +``` +$ npm install path-key +``` + + +## Usage + +```js +const pathKey = require('path-key'); + +const key = pathKey(); +//=> 'PATH' + +const PATH = process.env[key]; +//=> '/usr/local/bin:/usr/bin:/bin' +``` + + +## API + +### pathKey(options?) + +#### options + +Type: `object` + +##### env + +Type: `object`
+Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env) + +Use a custom environment variables object. + +#### platform + +Type: `string`
+Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform) + +Get the PATH key for a specific platform. + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/path-type/index.d.ts b/node_modules/path-type/index.d.ts new file mode 100644 index 0000000..910a50a --- /dev/null +++ b/node_modules/path-type/index.d.ts @@ -0,0 +1,51 @@ +export type PathTypeFunction = (path: string) => Promise; + +/** + * Check whether the passed `path` is a file. + * + * @param path - The path to check. + * @returns Whether the `path` is a file. + */ +export const isFile: PathTypeFunction; + +/** + * Check whether the passed `path` is a directory. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isDirectory: PathTypeFunction; + +/** + * Check whether the passed `path` is a symlink. + * + * @param path - The path to check. + * @returns Whether the `path` is a symlink. + */ +export const isSymlink: PathTypeFunction; + +export type PathTypeSyncFunction = (path: string) => boolean; + +/** + * Synchronously check whether the passed `path` is a file. + * + * @param path - The path to check. + * @returns Whether the `path` is a file. + */ +export const isFileSync: PathTypeSyncFunction; + +/** + * Synchronously check whether the passed `path` is a directory. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isDirectorySync: PathTypeSyncFunction; + +/** + * Synchronously check whether the passed `path` is a symlink. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isSymlinkSync: PathTypeSyncFunction; diff --git a/node_modules/path-type/index.js b/node_modules/path-type/index.js new file mode 100644 index 0000000..b8f34b2 --- /dev/null +++ b/node_modules/path-type/index.js @@ -0,0 +1,43 @@ +'use strict'; +const {promisify} = require('util'); +const fs = require('fs'); + +async function isType(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + + try { + const stats = await promisify(fs[fsStatType])(filePath); + return stats[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } + + throw error; + } +} + +function isTypeSync(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + + try { + return fs[fsStatType](filePath)[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } + + throw error; + } +} + +exports.isFile = isType.bind(null, 'stat', 'isFile'); +exports.isDirectory = isType.bind(null, 'stat', 'isDirectory'); +exports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink'); +exports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile'); +exports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory'); +exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); diff --git a/node_modules/path-type/license b/node_modules/path-type/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/path-type/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/path-type/package.json b/node_modules/path-type/package.json new file mode 100644 index 0000000..635b711 --- /dev/null +++ b/node_modules/path-type/package.json @@ -0,0 +1,45 @@ +{ + "name": "path-type", + "version": "4.0.0", + "description": "Check if a path is a file, directory, or symlink", + "license": "MIT", + "repository": "sindresorhus/path-type", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && nyc ava && tsd-check" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "fs", + "type", + "is", + "check", + "directory", + "dir", + "file", + "filepath", + "symlink", + "symbolic", + "link", + "stat", + "stats", + "filesystem" + ], + "devDependencies": { + "ava": "^1.3.1", + "nyc": "^13.3.0", + "tsd-check": "^0.3.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/path-type/readme.md b/node_modules/path-type/readme.md new file mode 100644 index 0000000..4c972fa --- /dev/null +++ b/node_modules/path-type/readme.md @@ -0,0 +1,72 @@ +# path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type) + +> Check if a path is a file, directory, or symlink + + +## Install + +``` +$ npm install path-type +``` + + +## Usage + +```js +const {isFile} = require('path-type'); + +(async () => { + console.log(await isFile('package.json')); + //=> true +})(); +``` + + +## API + +### isFile(path) + +Check whether the passed `path` is a file. + +Returns a `Promise`. + +#### path + +Type: `string` + +The path to check. + +### isDirectory(path) + +Check whether the passed `path` is a directory. + +Returns a `Promise`. + +### isSymlink(path) + +Check whether the passed `path` is a symlink. + +Returns a `Promise`. + +### isFileSync(path) + +Synchronously check whether the passed `path` is a file. + +Returns a `boolean`. + +### isDirectorySync(path) + +Synchronously check whether the passed `path` is a directory. + +Returns a `boolean`. + +### isSymlinkSync(path) + +Synchronously check whether the passed `path` is a symlink. + +Returns a `boolean`. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/picomatch/CHANGELOG.md b/node_modules/picomatch/CHANGELOG.md new file mode 100644 index 0000000..8ccc6c1 --- /dev/null +++ b/node_modules/picomatch/CHANGELOG.md @@ -0,0 +1,136 @@ +# Release history + +**All notable changes to this project will be documented in this file.** + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +
+ Guiding Principles + +- Changelogs are for humans, not machines. +- There should be an entry for every single version. +- The same types of changes should be grouped. +- Versions and sections should be linkable. +- The latest version comes first. +- The release date of each versions is displayed. +- Mention whether you follow Semantic Versioning. + +
+ +
+ Types of changes + +Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): + +- `Added` for new features. +- `Changed` for changes in existing functionality. +- `Deprecated` for soon-to-be removed features. +- `Removed` for now removed features. +- `Fixed` for any bug fixes. +- `Security` in case of vulnerabilities. + +
+ +## 2.3.1 (2022-01-02) + +### Fixed + +* Fixes bug when a pattern containing an expression after the closing parenthesis (`/!(*.d).{ts,tsx}`) was incorrectly converted to regexp ([9f241ef](https://github.com/micromatch/picomatch/commit/9f241ef)). + +### Changed + +* Some documentation improvements ([f81d236](https://github.com/micromatch/picomatch/commit/f81d236), [421e0e7](https://github.com/micromatch/picomatch/commit/421e0e7)). + +## 2.3.0 (2021-05-21) + +### Fixed + +* Fixes bug where file names with two dots were not being matched consistently with negation extglobs containing a star ([56083ef](https://github.com/micromatch/picomatch/commit/56083ef)) + +## 2.2.3 (2021-04-10) + +### Fixed + +* Do not skip pattern seperator for square brackets ([fb08a30](https://github.com/micromatch/picomatch/commit/fb08a30)). +* Set negatedExtGlob also if it does not span the whole pattern ([032e3f5](https://github.com/micromatch/picomatch/commit/032e3f5)). + +## 2.2.2 (2020-03-21) + +### Fixed + +* Correctly handle parts of the pattern after parentheses in the `scan` method ([e15b920](https://github.com/micromatch/picomatch/commit/e15b920)). + +## 2.2.1 (2020-01-04) + +* Fixes [#49](https://github.com/micromatch/picomatch/issues/49), so that braces with no sets or ranges are now propertly treated as literals. + +## 2.2.0 (2020-01-04) + +* Disable fastpaths mode for the parse method ([5b8d33f](https://github.com/micromatch/picomatch/commit/5b8d33f)) +* Add `tokens`, `slashes`, and `parts` to the object returned by `picomatch.scan()`. + +## 2.1.0 (2019-10-31) + +* add benchmarks for scan ([4793b92](https://github.com/micromatch/picomatch/commit/4793b92)) +* Add eslint object-curly-spacing rule ([707c650](https://github.com/micromatch/picomatch/commit/707c650)) +* Add prefer-const eslint rule ([5c7501c](https://github.com/micromatch/picomatch/commit/5c7501c)) +* Add support for nonegate in scan API ([275c9b9](https://github.com/micromatch/picomatch/commit/275c9b9)) +* Change lets to consts. Move root import up. ([4840625](https://github.com/micromatch/picomatch/commit/4840625)) +* closes https://github.com/micromatch/picomatch/issues/21 ([766bcb0](https://github.com/micromatch/picomatch/commit/766bcb0)) +* Fix "Extglobs" table in readme ([eb19da8](https://github.com/micromatch/picomatch/commit/eb19da8)) +* fixes https://github.com/micromatch/picomatch/issues/20 ([9caca07](https://github.com/micromatch/picomatch/commit/9caca07)) +* fixes https://github.com/micromatch/picomatch/issues/26 ([fa58f45](https://github.com/micromatch/picomatch/commit/fa58f45)) +* Lint test ([d433a34](https://github.com/micromatch/picomatch/commit/d433a34)) +* lint unit tests ([0159b55](https://github.com/micromatch/picomatch/commit/0159b55)) +* Make scan work with noext ([6c02e03](https://github.com/micromatch/picomatch/commit/6c02e03)) +* minor linting ([c2a2b87](https://github.com/micromatch/picomatch/commit/c2a2b87)) +* minor parser improvements ([197671d](https://github.com/micromatch/picomatch/commit/197671d)) +* remove eslint since it... ([07876fa](https://github.com/micromatch/picomatch/commit/07876fa)) +* remove funding file ([8ebe96d](https://github.com/micromatch/picomatch/commit/8ebe96d)) +* Remove unused funks ([cbc6d54](https://github.com/micromatch/picomatch/commit/cbc6d54)) +* Run eslint during pretest, fix existing eslint findings ([0682367](https://github.com/micromatch/picomatch/commit/0682367)) +* support `noparen` in scan ([3d37569](https://github.com/micromatch/picomatch/commit/3d37569)) +* update changelog ([7b34e77](https://github.com/micromatch/picomatch/commit/7b34e77)) +* update travis ([777f038](https://github.com/micromatch/picomatch/commit/777f038)) +* Use eslint-disable-next-line instead of eslint-disable ([4e7c1fd](https://github.com/micromatch/picomatch/commit/4e7c1fd)) + +## 2.0.7 (2019-05-14) + +* 2.0.7 ([9eb9a71](https://github.com/micromatch/picomatch/commit/9eb9a71)) +* supports lookbehinds ([1f63f7e](https://github.com/micromatch/picomatch/commit/1f63f7e)) +* update .verb.md file with typo change ([2741279](https://github.com/micromatch/picomatch/commit/2741279)) +* fix: typo in README ([0753e44](https://github.com/micromatch/picomatch/commit/0753e44)) + +## 2.0.4 (2019-04-10) + +### Fixed + +- Readme link [fixed](https://github.com/micromatch/picomatch/pull/13/commits/a96ab3aa2b11b6861c23289964613d85563b05df) by @danez. +- `options.capture` now works as expected when fastpaths are enabled. See https://github.com/micromatch/picomatch/pull/12/commits/26aefd71f1cfaf95c37f1c1fcab68a693b037304. Thanks to @DrPizza. + +## 2.0.0 (2019-04-10) + +### Added + +- Adds support for `options.onIgnore`. See the readme for details +- Adds support for `options.onResult`. See the readme for details + +### Breaking changes + +- The unixify option was renamed to `windows` +- caching and all related options and methods have been removed + +## 1.0.0 (2018-11-05) + +- adds `.onMatch` option +- improvements to `.scan` method +- numerous improvements and optimizations for matching and parsing +- better windows path handling + +## 0.1.0 - 2017-04-13 + +First release. + + +[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog diff --git a/node_modules/picomatch/LICENSE b/node_modules/picomatch/LICENSE new file mode 100644 index 0000000..3608dca --- /dev/null +++ b/node_modules/picomatch/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/picomatch/README.md b/node_modules/picomatch/README.md new file mode 100644 index 0000000..b0526e2 --- /dev/null +++ b/node_modules/picomatch/README.md @@ -0,0 +1,708 @@ +

Picomatch

+ +

+ +version + + +test status + + +coverage status + + +downloads + +

+ +
+
+ +

+Blazing fast and accurate glob matcher written in JavaScript.
+No dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions. +

+ +
+
+ +## Why picomatch? + +* **Lightweight** - No dependencies +* **Minimal** - Tiny API surface. Main export is a function that takes a glob pattern and returns a matcher function. +* **Fast** - Loads in about 2ms (that's several times faster than a [single frame of a HD movie](http://www.endmemo.com/sconvert/framespersecondframespermillisecond.php) at 60fps) +* **Performant** - Use the returned matcher function to speed up repeat matching (like when watching files) +* **Accurate matching** - Using wildcards (`*` and `?`), globstars (`**`) for nested directories, [advanced globbing](#advanced-globbing) with extglobs, braces, and POSIX brackets, and support for escaping special characters with `\` or quotes. +* **Well tested** - Thousands of unit tests + +See the [library comparison](#library-comparisons) to other libraries. + +
+
+ +## Table of Contents + +
Click to expand + +- [Install](#install) +- [Usage](#usage) +- [API](#api) + * [picomatch](#picomatch) + * [.test](#test) + * [.matchBase](#matchbase) + * [.isMatch](#ismatch) + * [.parse](#parse) + * [.scan](#scan) + * [.compileRe](#compilere) + * [.makeRe](#makere) + * [.toRegex](#toregex) +- [Options](#options) + * [Picomatch options](#picomatch-options) + * [Scan Options](#scan-options) + * [Options Examples](#options-examples) +- [Globbing features](#globbing-features) + * [Basic globbing](#basic-globbing) + * [Advanced globbing](#advanced-globbing) + * [Braces](#braces) + * [Matching special characters as literals](#matching-special-characters-as-literals) +- [Library Comparisons](#library-comparisons) +- [Benchmarks](#benchmarks) +- [Philosophies](#philosophies) +- [About](#about) + * [Author](#author) + * [License](#license) + +_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_ + +
+ +
+
+ +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +npm install --save picomatch +``` + +
+ +## Usage + +The main export is a function that takes a glob pattern and an options object and returns a function for matching strings. + +```js +const pm = require('picomatch'); +const isMatch = pm('*.js'); + +console.log(isMatch('abcd')); //=> false +console.log(isMatch('a.js')); //=> true +console.log(isMatch('a.md')); //=> false +console.log(isMatch('a/b.js')); //=> false +``` + +
+ +## API + +### [picomatch](lib/picomatch.js#L32) + +Creates a matcher function from one or more glob patterns. The returned function takes a string to match as its first argument, and returns true if the string is a match. The returned matcher function also takes a boolean as the second argument that, when true, returns an object with additional information. + +**Params** + +* `globs` **{String|Array}**: One or more glob patterns. +* `options` **{Object=}** +* `returns` **{Function=}**: Returns a matcher function. + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch(glob[, options]); + +const isMatch = picomatch('*.!(*a)'); +console.log(isMatch('a.a')); //=> false +console.log(isMatch('a.b')); //=> true +``` + +### [.test](lib/picomatch.js#L117) + +Test `input` with the given `regex`. This is used by the main `picomatch()` function to test the input string. + +**Params** + +* `input` **{String}**: String to test. +* `regex` **{RegExp}** +* `returns` **{Object}**: Returns an object with matching info. + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.test(input, regex[, options]); + +console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); +// { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } +``` + +### [.matchBase](lib/picomatch.js#L161) + +Match the basename of a filepath. + +**Params** + +* `input` **{String}**: String to test. +* `glob` **{RegExp|String}**: Glob pattern or regex created by [.makeRe](#makeRe). +* `returns` **{Boolean}** + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.matchBase(input, glob[, options]); +console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true +``` + +### [.isMatch](lib/picomatch.js#L183) + +Returns true if **any** of the given glob `patterns` match the specified `string`. + +**Params** + +* **{String|Array}**: str The string to test. +* **{String|Array}**: patterns One or more glob patterns to use for matching. +* **{Object}**: See available [options](#options). +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.isMatch(string, patterns[, options]); + +console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true +console.log(picomatch.isMatch('a.a', 'b.*')); //=> false +``` + +### [.parse](lib/picomatch.js#L199) + +Parse a glob pattern to create the source string for a regular expression. + +**Params** + +* `pattern` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with useful properties and output to be used as a regex source string. + +**Example** + +```js +const picomatch = require('picomatch'); +const result = picomatch.parse(pattern[, options]); +``` + +### [.scan](lib/picomatch.js#L231) + +Scan a glob pattern to separate the pattern into segments. + +**Params** + +* `input` **{String}**: Glob pattern to scan. +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.scan(input[, options]); + +const result = picomatch.scan('!./foo/*.js'); +console.log(result); +{ prefix: '!./', + input: '!./foo/*.js', + start: 3, + base: 'foo', + glob: '*.js', + isBrace: false, + isBracket: false, + isGlob: true, + isExtglob: false, + isGlobstar: false, + negated: true } +``` + +### [.compileRe](lib/picomatch.js#L245) + +Compile a regular expression from the `state` object returned by the +[parse()](#parse) method. + +**Params** + +* `state` **{Object}** +* `options` **{Object}** +* `returnOutput` **{Boolean}**: Intended for implementors, this argument allows you to return the raw output from the parser. +* `returnState` **{Boolean}**: Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. +* `returns` **{RegExp}** + +### [.makeRe](lib/picomatch.js#L286) + +Create a regular expression from a parsed glob pattern. + +**Params** + +* `state` **{String}**: The object returned from the `.parse` method. +* `options` **{Object}** +* `returnOutput` **{Boolean}**: Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. +* `returnState` **{Boolean}**: Implementors may use this argument to return the state from the parsed glob with the returned regular expression. +* `returns` **{RegExp}**: Returns a regex created from the given pattern. + +**Example** + +```js +const picomatch = require('picomatch'); +const state = picomatch.parse('*.js'); +// picomatch.compileRe(state[, options]); + +console.log(picomatch.compileRe(state)); +//=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ +``` + +### [.toRegex](lib/picomatch.js#L321) + +Create a regular expression from the given regex source string. + +**Params** + +* `source` **{String}**: Regular expression source string. +* `options` **{Object}** +* `returns` **{RegExp}** + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.toRegex(source[, options]); + +const { output } = picomatch.parse('*.js'); +console.log(picomatch.toRegex(output)); +//=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ +``` + +
+ +## Options + +### Picomatch options + +The following options may be used with the main `picomatch()` function or any of the methods on the picomatch API. + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `basename` | `boolean` | `false` | If set, then patterns without slashes will be matched against the basename of the path if it contains slashes. For example, `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. | +| `bash` | `boolean` | `false` | Follow bash matching rules more strictly - disallows backslashes as escape characters, and treats single stars as globstars (`**`). | +| `capture` | `boolean` | `undefined` | Return regex matches in supporting methods. | +| `contains` | `boolean` | `undefined` | Allows glob to match any part of the given string(s). | +| `cwd` | `string` | `process.cwd()` | Current working directory. Used by `picomatch.split()` | +| `debug` | `boolean` | `undefined` | Debug regular expressions when an error is thrown. | +| `dot` | `boolean` | `false` | Enable dotfile matching. By default, dotfiles are ignored unless a `.` is explicitly defined in the pattern, or `options.dot` is true | +| `expandRange` | `function` | `undefined` | Custom function for expanding ranges in brace patterns, such as `{a..z}`. The function receives the range values as two arguments, and it must return a string to be used in the generated regex. It's recommended that returned strings be wrapped in parentheses. | +| `failglob` | `boolean` | `false` | Throws an error if no matches are found. Based on the bash option of the same name. | +| `fastpaths` | `boolean` | `true` | To speed up processing, full parsing is skipped for a handful common glob patterns. Disable this behavior by setting this option to `false`. | +| `flags` | `string` | `undefined` | Regex flags to use in the generated regex. If defined, the `nocase` option will be overridden. | +| [format](#optionsformat) | `function` | `undefined` | Custom function for formatting the returned string. This is useful for removing leading slashes, converting Windows paths to Posix paths, etc. | +| `ignore` | `array\|string` | `undefined` | One or more glob patterns for excluding strings that should not be matched from the result. | +| `keepQuotes` | `boolean` | `false` | Retain quotes in the generated regex, since quotes may also be used as an alternative to backslashes. | +| `literalBrackets` | `boolean` | `undefined` | When `true`, brackets in the glob pattern will be escaped so that only literal brackets will be matched. | +| `matchBase` | `boolean` | `false` | Alias for `basename` | +| `maxLength` | `boolean` | `65536` | Limit the max length of the input string. An error is thrown if the input string is longer than this value. | +| `nobrace` | `boolean` | `false` | Disable brace matching, so that `{a,b}` and `{1..3}` would be treated as literal characters. | +| `nobracket` | `boolean` | `undefined` | Disable matching with regex brackets. | +| `nocase` | `boolean` | `false` | Make matching case-insensitive. Equivalent to the regex `i` flag. Note that this option is overridden by the `flags` option. | +| `nodupes` | `boolean` | `true` | Deprecated, use `nounique` instead. This option will be removed in a future major release. By default duplicates are removed. Disable uniquification by setting this option to false. | +| `noext` | `boolean` | `false` | Alias for `noextglob` | +| `noextglob` | `boolean` | `false` | Disable support for matching with extglobs (like `+(a\|b)`) | +| `noglobstar` | `boolean` | `false` | Disable support for matching nested directories with globstars (`**`) | +| `nonegate` | `boolean` | `false` | Disable support for negating with leading `!` | +| `noquantifiers` | `boolean` | `false` | Disable support for regex quantifiers (like `a{1,2}`) and treat them as brace patterns to be expanded. | +| [onIgnore](#optionsonIgnore) | `function` | `undefined` | Function to be called on ignored items. | +| [onMatch](#optionsonMatch) | `function` | `undefined` | Function to be called on matched items. | +| [onResult](#optionsonResult) | `function` | `undefined` | Function to be called on all items, regardless of whether or not they are matched or ignored. | +| `posix` | `boolean` | `false` | Support POSIX character classes ("posix brackets"). | +| `posixSlashes` | `boolean` | `undefined` | Convert all slashes in file paths to forward slashes. This does not convert slashes in the glob pattern itself | +| `prepend` | `boolean` | `undefined` | String to prepend to the generated regex used for matching. | +| `regex` | `boolean` | `false` | Use regular expression rules for `+` (instead of matching literal `+`), and for stars that follow closing parentheses or brackets (as in `)*` and `]*`). | +| `strictBrackets` | `boolean` | `undefined` | Throw an error if brackets, braces, or parens are imbalanced. | +| `strictSlashes` | `boolean` | `undefined` | When true, picomatch won't match trailing slashes with single stars. | +| `unescape` | `boolean` | `undefined` | Remove backslashes preceding escaped characters in the glob pattern. By default, backslashes are retained. | +| `unixify` | `boolean` | `undefined` | Alias for `posixSlashes`, for backwards compatibility. | + +picomatch has automatic detection for regex positive and negative lookbehinds. If the pattern contains a negative lookbehind, you must be using Node.js >= 8.10 or else picomatch will throw an error. + +### Scan Options + +In addition to the main [picomatch options](#picomatch-options), the following options may also be used with the [.scan](#scan) method. + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `tokens` | `boolean` | `false` | When `true`, the returned object will include an array of tokens (objects), representing each path "segment" in the scanned glob pattern | +| `parts` | `boolean` | `false` | When `true`, the returned object will include an array of strings representing each path "segment" in the scanned glob pattern. This is automatically enabled when `options.tokens` is true | + +**Example** + +```js +const picomatch = require('picomatch'); +const result = picomatch.scan('!./foo/*.js', { tokens: true }); +console.log(result); +// { +// prefix: '!./', +// input: '!./foo/*.js', +// start: 3, +// base: 'foo', +// glob: '*.js', +// isBrace: false, +// isBracket: false, +// isGlob: true, +// isExtglob: false, +// isGlobstar: false, +// negated: true, +// maxDepth: 2, +// tokens: [ +// { value: '!./', depth: 0, isGlob: false, negated: true, isPrefix: true }, +// { value: 'foo', depth: 1, isGlob: false }, +// { value: '*.js', depth: 1, isGlob: true } +// ], +// slashes: [ 2, 6 ], +// parts: [ 'foo', '*.js' ] +// } +``` + +
+ +### Options Examples + +#### options.expandRange + +**Type**: `function` + +**Default**: `undefined` + +Custom function for expanding ranges in brace patterns. The [fill-range](https://github.com/jonschlinkert/fill-range) library is ideal for this purpose, or you can use custom code to do whatever you need. + +**Example** + +The following example shows how to create a glob that matches a folder + +```js +const fill = require('fill-range'); +const regex = pm.makeRe('foo/{01..25}/bar', { + expandRange(a, b) { + return `(${fill(a, b, { toRegex: true })})`; + } +}); + +console.log(regex); +//=> /^(?:foo\/((?:0[1-9]|1[0-9]|2[0-5]))\/bar)$/ + +console.log(regex.test('foo/00/bar')) // false +console.log(regex.test('foo/01/bar')) // true +console.log(regex.test('foo/10/bar')) // true +console.log(regex.test('foo/22/bar')) // true +console.log(regex.test('foo/25/bar')) // true +console.log(regex.test('foo/26/bar')) // false +``` + +#### options.format + +**Type**: `function` + +**Default**: `undefined` + +Custom function for formatting strings before they're matched. + +**Example** + +```js +// strip leading './' from strings +const format = str => str.replace(/^\.\//, ''); +const isMatch = picomatch('foo/*.js', { format }); +console.log(isMatch('./foo/bar.js')); //=> true +``` + +#### options.onMatch + +```js +const onMatch = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onMatch }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +#### options.onIgnore + +```js +const onIgnore = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onIgnore, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +#### options.onResult + +```js +const onResult = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onResult, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +
+
+ +## Globbing features + +* [Basic globbing](#basic-globbing) (Wildcard matching) +* [Advanced globbing](#advanced-globbing) (extglobs, posix brackets, brace matching) + +### Basic globbing + +| **Character** | **Description** | +| --- | --- | +| `*` | Matches any character zero or more times, excluding path separators. Does _not match_ path separators or hidden files or directories ("dotfiles"), unless explicitly enabled by setting the `dot` option to `true`. | +| `**` | Matches any character zero or more times, including path separators. Note that `**` will only match path separators (`/`, and `\\` on Windows) when they are the only characters in a path segment. Thus, `foo**/bar` is equivalent to `foo*/bar`, and `foo/a**b/bar` is equivalent to `foo/a*b/bar`, and _more than two_ consecutive stars in a glob path segment are regarded as _a single star_. Thus, `foo/***/bar` is equivalent to `foo/*/bar`. | +| `?` | Matches any character excluding path separators one time. Does _not match_ path separators or leading dots. | +| `[abc]` | Matches any characters inside the brackets. For example, `[abc]` would match the characters `a`, `b` or `c`, and nothing else. | + +#### Matching behavior vs. Bash + +Picomatch's matching features and expected results in unit tests are based on Bash's unit tests and the Bash 4.3 specification, with the following exceptions: + +* Bash will match `foo/bar/baz` with `*`. Picomatch only matches nested directories with `**`. +* Bash greedily matches with negated extglobs. For example, Bash 4.3 says that `!(foo)*` should match `foo` and `foobar`, since the trailing `*` bracktracks to match the preceding pattern. This is very memory-inefficient, and IMHO, also incorrect. Picomatch would return `false` for both `foo` and `foobar`. + +
+ +### Advanced globbing + +* [extglobs](#extglobs) +* [POSIX brackets](#posix-brackets) +* [Braces](#brace-expansion) + +#### Extglobs + +| **Pattern** | **Description** | +| --- | --- | +| `@(pattern)` | Match _only one_ consecutive occurrence of `pattern` | +| `*(pattern)` | Match _zero or more_ consecutive occurrences of `pattern` | +| `+(pattern)` | Match _one or more_ consecutive occurrences of `pattern` | +| `?(pattern)` | Match _zero or **one**_ consecutive occurrences of `pattern` | +| `!(pattern)` | Match _anything but_ `pattern` | + +**Examples** + +```js +const pm = require('picomatch'); + +// *(pattern) matches ZERO or more of "pattern" +console.log(pm.isMatch('a', 'a*(z)')); // true +console.log(pm.isMatch('az', 'a*(z)')); // true +console.log(pm.isMatch('azzz', 'a*(z)')); // true + +// +(pattern) matches ONE or more of "pattern" +console.log(pm.isMatch('a', 'a*(z)')); // true +console.log(pm.isMatch('az', 'a*(z)')); // true +console.log(pm.isMatch('azzz', 'a*(z)')); // true + +// supports multiple extglobs +console.log(pm.isMatch('foo.bar', '!(foo).!(bar)')); // false + +// supports nested extglobs +console.log(pm.isMatch('foo.bar', '!(!(foo)).!(!(bar))')); // true +``` + +#### POSIX brackets + +POSIX classes are disabled by default. Enable this feature by setting the `posix` option to true. + +**Enable POSIX bracket support** + +```js +console.log(pm.makeRe('[[:word:]]+', { posix: true })); +//=> /^(?:(?=.)[A-Za-z0-9_]+\/?)$/ +``` + +**Supported POSIX classes** + +The following named POSIX bracket expressions are supported: + +* `[:alnum:]` - Alphanumeric characters, equ `[a-zA-Z0-9]` +* `[:alpha:]` - Alphabetical characters, equivalent to `[a-zA-Z]`. +* `[:ascii:]` - ASCII characters, equivalent to `[\\x00-\\x7F]`. +* `[:blank:]` - Space and tab characters, equivalent to `[ \\t]`. +* `[:cntrl:]` - Control characters, equivalent to `[\\x00-\\x1F\\x7F]`. +* `[:digit:]` - Numerical digits, equivalent to `[0-9]`. +* `[:graph:]` - Graph characters, equivalent to `[\\x21-\\x7E]`. +* `[:lower:]` - Lowercase letters, equivalent to `[a-z]`. +* `[:print:]` - Print characters, equivalent to `[\\x20-\\x7E ]`. +* `[:punct:]` - Punctuation and symbols, equivalent to `[\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~]`. +* `[:space:]` - Extended space characters, equivalent to `[ \\t\\r\\n\\v\\f]`. +* `[:upper:]` - Uppercase letters, equivalent to `[A-Z]`. +* `[:word:]` - Word characters (letters, numbers and underscores), equivalent to `[A-Za-z0-9_]`. +* `[:xdigit:]` - Hexadecimal digits, equivalent to `[A-Fa-f0-9]`. + +See the [Bash Reference Manual](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html) for more information. + +### Braces + +Picomatch does not do brace expansion. For [brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html) and advanced matching with braces, use [micromatch](https://github.com/micromatch/micromatch) instead. Picomatch has very basic support for braces. + +### Matching special characters as literals + +If you wish to match the following special characters in a filepath, and you want to use these characters in your glob pattern, they must be escaped with backslashes or quotes: + +**Special Characters** + +Some characters that are used for matching in regular expressions are also regarded as valid file path characters on some platforms. + +To match any of the following characters as literals: `$^*+?()[] + +Examples: + +```js +console.log(pm.makeRe('foo/bar \\(1\\)')); +console.log(pm.makeRe('foo/bar \\(1\\)')); +``` + +
+
+ +## Library Comparisons + +The following table shows which features are supported by [minimatch](https://github.com/isaacs/minimatch), [micromatch](https://github.com/micromatch/micromatch), [picomatch](https://github.com/micromatch/picomatch), [nanomatch](https://github.com/micromatch/nanomatch), [extglob](https://github.com/micromatch/extglob), [braces](https://github.com/micromatch/braces), and [expand-brackets](https://github.com/micromatch/expand-brackets). + +| **Feature** | `minimatch` | `micromatch` | `picomatch` | `nanomatch` | `extglob` | `braces` | `expand-brackets` | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Wildcard matching (`*?+`) | ✔ | ✔ | ✔ | ✔ | - | - | - | +| Advancing globbing | ✔ | ✔ | ✔ | - | - | - | - | +| Brace _matching_ | ✔ | ✔ | ✔ | - | - | ✔ | - | +| Brace _expansion_ | ✔ | ✔ | - | - | - | ✔ | - | +| Extglobs | partial | ✔ | ✔ | - | ✔ | - | - | +| Posix brackets | - | ✔ | ✔ | - | - | - | ✔ | +| Regular expression syntax | - | ✔ | ✔ | ✔ | ✔ | - | ✔ | +| File system operations | - | - | - | - | - | - | - | + +
+
+ +## Benchmarks + +Performance comparison of picomatch and minimatch. + +``` +# .makeRe star + picomatch x 1,993,050 ops/sec ±0.51% (91 runs sampled) + minimatch x 627,206 ops/sec ±1.96% (87 runs sampled)) + +# .makeRe star; dot=true + picomatch x 1,436,640 ops/sec ±0.62% (91 runs sampled) + minimatch x 525,876 ops/sec ±0.60% (88 runs sampled) + +# .makeRe globstar + picomatch x 1,592,742 ops/sec ±0.42% (90 runs sampled) + minimatch x 962,043 ops/sec ±1.76% (91 runs sampled)d) + +# .makeRe globstars + picomatch x 1,615,199 ops/sec ±0.35% (94 runs sampled) + minimatch x 477,179 ops/sec ±1.33% (91 runs sampled) + +# .makeRe with leading star + picomatch x 1,220,856 ops/sec ±0.40% (92 runs sampled) + minimatch x 453,564 ops/sec ±1.43% (94 runs sampled) + +# .makeRe - basic braces + picomatch x 392,067 ops/sec ±0.70% (90 runs sampled) + minimatch x 99,532 ops/sec ±2.03% (87 runs sampled)) +``` + +
+
+ +## Philosophies + +The goal of this library is to be blazing fast, without compromising on accuracy. + +**Accuracy** + +The number one of goal of this library is accuracy. However, it's not unusual for different glob implementations to have different rules for matching behavior, even with simple wildcard matching. It gets increasingly more complicated when combinations of different features are combined, like when extglobs are combined with globstars, braces, slashes, and so on: `!(**/{a,b,*/c})`. + +Thus, given that there is no canonical glob specification to use as a single source of truth when differences of opinion arise regarding behavior, sometimes we have to implement our best judgement and rely on feedback from users to make improvements. + +**Performance** + +Although this library performs well in benchmarks, and in most cases it's faster than other popular libraries we benchmarked against, we will always choose accuracy over performance. It's not helpful to anyone if our library is faster at returning the wrong answer. + +
+
+ +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards. + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2017-present, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). diff --git a/node_modules/picomatch/index.js b/node_modules/picomatch/index.js new file mode 100644 index 0000000..d2f2bc5 --- /dev/null +++ b/node_modules/picomatch/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./lib/picomatch'); diff --git a/node_modules/picomatch/lib/constants.js b/node_modules/picomatch/lib/constants.js new file mode 100644 index 0000000..a62ef38 --- /dev/null +++ b/node_modules/picomatch/lib/constants.js @@ -0,0 +1,179 @@ +'use strict'; + +const path = require('path'); +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; + +/** + * Posix glob regex + */ + +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR = `${QMARK}*?`; + +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR +}; + +/** + * Windows glob regex + */ + +const WINDOWS_CHARS = { + ...POSIX_CHARS, + + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` +}; + +/** + * POSIX Bracket Regex + */ + +const POSIX_REGEX_SOURCE = { + alnum: 'a-zA-Z0-9', + alpha: 'a-zA-Z', + ascii: '\\x00-\\x7F', + blank: ' \\t', + cntrl: '\\x00-\\x1F\\x7F', + digit: '0-9', + graph: '\\x21-\\x7E', + lower: 'a-z', + print: '\\x20-\\x7E ', + punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', + space: ' \\t\\r\\n\\v\\f', + upper: 'A-Z', + word: 'A-Za-z0-9_', + xdigit: 'A-Fa-f0-9' +}; + +module.exports = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, + + // regular expressions + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, + + // Digits + CHAR_0: 48, /* 0 */ + CHAR_9: 57, /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 65, /* A */ + CHAR_LOWERCASE_A: 97, /* a */ + CHAR_UPPERCASE_Z: 90, /* Z */ + CHAR_LOWERCASE_Z: 122, /* z */ + + CHAR_LEFT_PARENTHESES: 40, /* ( */ + CHAR_RIGHT_PARENTHESES: 41, /* ) */ + + CHAR_ASTERISK: 42, /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, /* & */ + CHAR_AT: 64, /* @ */ + CHAR_BACKWARD_SLASH: 92, /* \ */ + CHAR_CARRIAGE_RETURN: 13, /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ + CHAR_COLON: 58, /* : */ + CHAR_COMMA: 44, /* , */ + CHAR_DOT: 46, /* . */ + CHAR_DOUBLE_QUOTE: 34, /* " */ + CHAR_EQUAL: 61, /* = */ + CHAR_EXCLAMATION_MARK: 33, /* ! */ + CHAR_FORM_FEED: 12, /* \f */ + CHAR_FORWARD_SLASH: 47, /* / */ + CHAR_GRAVE_ACCENT: 96, /* ` */ + CHAR_HASH: 35, /* # */ + CHAR_HYPHEN_MINUS: 45, /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ + CHAR_LEFT_CURLY_BRACE: 123, /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ + CHAR_LINE_FEED: 10, /* \n */ + CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ + CHAR_PERCENT: 37, /* % */ + CHAR_PLUS: 43, /* + */ + CHAR_QUESTION_MARK: 63, /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ + CHAR_SEMICOLON: 59, /* ; */ + CHAR_SINGLE_QUOTE: 39, /* ' */ + CHAR_SPACE: 32, /* */ + CHAR_TAB: 9, /* \t */ + CHAR_UNDERSCORE: 95, /* _ */ + CHAR_VERTICAL_LINE: 124, /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ + + SEP: path.sep, + + /** + * Create EXTGLOB_CHARS + */ + + extglobChars(chars) { + return { + '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, + '?': { type: 'qmark', open: '(?:', close: ')?' }, + '+': { type: 'plus', open: '(?:', close: ')+' }, + '*': { type: 'star', open: '(?:', close: ')*' }, + '@': { type: 'at', open: '(?:', close: ')' } + }; + }, + + /** + * Create GLOB_CHARS + */ + + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } +}; diff --git a/node_modules/picomatch/lib/parse.js b/node_modules/picomatch/lib/parse.js new file mode 100644 index 0000000..58269d0 --- /dev/null +++ b/node_modules/picomatch/lib/parse.js @@ -0,0 +1,1091 @@ +'use strict'; + +const constants = require('./constants'); +const utils = require('./utils'); + +/** + * Constants + */ + +const { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants; + +/** + * Helpers + */ + +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); + } + + args.sort(); + const value = `[${args.join('-')}]`; + + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils.escapeRegex(v)).join('..'); + } + + return value; +}; + +/** + * Create the message for a syntax error + */ + +const syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; + +/** + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} + */ + +const parse = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + input = REPLACEMENTS[input] || input; + + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + const bos = { type: 'bos', value: '', output: opts.prepend || '' }; + const tokens = [bos]; + + const capture = opts.capture ? '' : '?:'; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + + const globstar = opts => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + // minimatch options support + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; + } + + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; + + input = utils.removePrefix(input, state); + len = input.length; + + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + + /** + * Tokenizing helpers + */ + + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index] || ''; + const remaining = () => input.slice(state.index + 1); + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; + }; + + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + + const negate = () => { + let count = 1; + + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; + } + + if (count % 2 === 0) { + return false; + } + + state.negated = true; + state.start++; + return true; + }; + + const increment = type => { + state[type]++; + stack.push(type); + }; + + const decrement = type => { + state[type]--; + stack.pop(); + }; + + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ + + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); + + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; + } + } + + if (extglobs.length && tok.type !== 'paren') { + extglobs[extglobs.length - 1].inner += tok.value; + } + + if (tok.value || tok.output) append(tok); + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; + } + + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; + + const extglobOpen = (type, value) => { + const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; + + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; + + increment('parens'); + push({ type, value, output: state.output ? '' : ONE_CHAR }); + push({ type: 'paren', extglob: true, value: advance(), output }); + extglobs.push(token); + }; + + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); + let rest; + + if (token.type === 'negate') { + let extglobStar = star; + + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); + } + + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + + if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis. + // In this case, we need to parse the string and use it in the output of the original pattern. + // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`. + // + // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`. + const expression = parse(rest, { ...options, fastpaths: false }).output; + + output = token.close = `)${expression})${extglobStar})`; + } + + if (token.prev.type === 'bos') { + state.negatedExtglob = true; + } + } + + push({ type: 'paren', extglob: true, value, output }); + decrement('parens'); + }; + + /** + * Fast paths + */ + + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } + + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } + return QMARK.repeat(chars.length); + } + + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } + + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } + return star; + } + return esc ? m : `\\${m}`; + }); + + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); + }); + } + } + + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + + state.output = utils.wrapOutput(output, state, options); + return state; + } + + /** + * Tokenize input until we reach end-of-string + */ + + while (!eos()) { + value = advance(); + + if (value === '\u0000') { + continue; + } + + /** + * Escaped characters + */ + + if (value === '\\') { + const next = peek(); + + if (next === '/' && opts.bash !== true) { + continue; + } + + if (next === '.' || next === ';') { + continue; + } + + if (!next) { + value += '\\'; + push({ type: 'text', value }); + continue; + } + + // collapse slashes to reduce potential for exploits + const match = /^\\+/.exec(remaining()); + let slashes = 0; + + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += '\\'; + } + } + + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } + + if (state.brackets === 0) { + push({ type: 'text', value }); + continue; + } + } + + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ + + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); + if (inner.includes('[')) { + prev.posix = true; + + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); + + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } + + if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { + value = `\\${value}`; + } + + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } + + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; + } + + prev.value += value; + append({ value }); + continue; + } + + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ + + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ value }); + continue; + } + + /** + * Double quotes + */ + + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ type: 'text', value }); + } + continue; + } + + /** + * Parentheses + */ + + if (value === '(') { + increment('parens'); + push({ type: 'paren', value }); + continue; + } + + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '(')); + } + + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } + + push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); + decrement('parens'); + continue; + } + + /** + * Square brackets + */ + + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('closing', ']')); + } + + value = `\\${value}`; + } else { + increment('brackets'); + } + + push({ type: 'bracket', value }); + continue; + } + + if (value === ']') { + if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '[')); + } + + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + decrement('brackets'); + + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } + + prev.value += value; + append({ value }); + + // when literal brackets are explicitly disabled + // assume we should match with a regex character class + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + continue; + } + + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); + + // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } + + // when the user specifies nothing, try to match both + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + + /** + * Braces + */ + + if (value === '{' && opts.nobrace !== true) { + increment('braces'); + + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + + braces.push(open); + push(open); + continue; + } + + if (value === '}') { + const brace = braces[braces.length - 1]; + + if (opts.nobrace === true || !brace) { + push({ type: 'text', value, output: value }); + continue; + } + + let output = ')'; + + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === 'brace') { + break; + } + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } + + output = expandRange(range, opts); + state.backtrack = true; + } + + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; + for (const t of toks) { + state.output += (t.output || t.value); + } + } + + push({ type: 'brace', value, output }); + decrement('braces'); + braces.pop(); + continue; + } + + /** + * Pipes + */ + + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ type: 'text', value }); + continue; + } + + /** + * Commas + */ + + if (value === ',') { + let output = value; + + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } + + push({ type: 'comma', value, output }); + continue; + } + + /** + * Slashes + */ + + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token + continue; + } + + push({ type: 'slash', value, output: SLASH_LITERAL }); + continue; + } + + /** + * Dots + */ + + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } + + if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ type: 'text', value, output: DOT_LITERAL }); + continue; + } + + push({ type: 'dot', value, output: DOT_LITERAL }); + continue; + } + + /** + * Question marks + */ + + if (value === '?') { + const isGroup = prev && prev.value === '('; + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } + + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; + + if (next === '<' && !utils.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } + + if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { + output = `\\${value}`; + } + + push({ type: 'text', value, output }); + continue; + } + + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ type: 'qmark', value, output: QMARK_NO_DOT }); + continue; + } + + push({ type: 'qmark', value, output: QMARK }); + continue; + } + + /** + * Exclamation + */ + + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } + } + + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } + + /** + * Plus + */ + + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } + + if ((prev && prev.value === '(') || opts.regex === false) { + push({ type: 'plus', value, output: PLUS_LITERAL }); + continue; + } + + if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) { + push({ type: 'plus', value }); + continue; + } + + push({ type: 'plus', value: PLUS_LITERAL }); + continue; + } + + /** + * Plain text + */ + + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ type: 'at', extglob: true, value, output: '' }); + continue; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Plain text + */ + + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; + } + + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Stars + */ + + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } + + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; + } + + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; + } + + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); + + if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { + push({ type: 'star', value, output: '' }); + continue; + } + + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ type: 'star', value, output: '' }); + continue; + } + + // strip consecutive `/**/` + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; + if (after && after !== '/') { + break; + } + rest = rest.slice(3); + consume('/**', 3); + } + + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; + + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + + state.output += prior.output + prev.output; + state.globstar = true; + + consume(value + advance()); + + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + // remove single star from output + state.output = state.output.slice(0, -prev.output.length); + + // reset previous token to globstar + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; + + // reset output with globstar + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } + + const token = { type: 'star', value, output: star }; + + if (opts.bash === true) { + token.output = '.*?'; + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; + } + push(token); + continue; + } + + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } + + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + + } else { + state.output += nodot; + prev.output += nodot; + } + + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } + + push(token); + } + + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); + state.output = utils.escapeLast(state.output, '['); + decrement('brackets'); + } + + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); + state.output = utils.escapeLast(state.output, '('); + decrement('parens'); + } + + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); + state.output = utils.escapeLast(state.output, '{'); + decrement('braces'); + } + + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); + } + + // rebuild the output if we had to backtrack at any point + if (state.backtrack === true) { + state.output = ''; + + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; + + if (token.suffix) { + state.output += token.suffix; + } + } + } + + return state; +}; + +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ + +parse.fastpaths = (input, options) => { + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); + + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { negated: false, prefix: '' }; + let star = opts.bash === true ? '.*?' : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + const globstar = opts => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; + + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + + case '**': + return nodot + globstar(opts); + + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; + + const source = create(match[1]); + if (!source) return; + + return source + DOT_LITERAL + match[2]; + } + } + }; + + const output = utils.removePrefix(input, state); + let source = create(output); + + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + + return source; +}; + +module.exports = parse; diff --git a/node_modules/picomatch/lib/picomatch.js b/node_modules/picomatch/lib/picomatch.js new file mode 100644 index 0000000..782d809 --- /dev/null +++ b/node_modules/picomatch/lib/picomatch.js @@ -0,0 +1,342 @@ +'use strict'; + +const path = require('path'); +const scan = require('./scan'); +const parse = require('./parse'); +const utils = require('./utils'); +const constants = require('./constants'); +const isObject = val => val && typeof val === 'object' && !Array.isArray(val); + +/** + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public + */ + +const picomatch = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch(input, options, returnState)); + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } + return false; + }; + return arrayMatcher; + } + + const isState = isObject(glob) && glob.tokens && glob.input; + + if (glob === '' || (typeof glob !== 'string' && !isState)) { + throw new TypeError('Expected pattern to be a non-empty string'); + } + + const opts = options || {}; + const posix = utils.isWindows(options); + const regex = isState + ? picomatch.compileRe(glob, options) + : picomatch.makeRe(glob, options, false, true); + + const state = regex.state; + delete regex.state; + + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } + + const matcher = (input, returnObject = false) => { + const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); + const result = { glob, state, regex, posix, input, output, match, isMatch }; + + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } + + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } + + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } + + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); + } + return returnObject ? result : true; + }; + + if (returnState) { + matcher.state = state; + } + + return matcher; +}; + +/** + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public + */ + +picomatch.test = (input, regex, options, { glob, posix } = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected input to be a string'); + } + + if (input === '') { + return { isMatch: false, output: '' }; + } + + const opts = options || {}; + const format = opts.format || (posix ? utils.toPosixSlashes : null); + let match = input === glob; + let output = (match && format) ? format(input) : input; + + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } + + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } + + return { isMatch: Boolean(match), match, output }; +}; + +/** + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public + */ + +picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); + return regex.test(path.basename(input)); +}; + +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ + +picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); + return parse(pattern, { ...options, fastpaths: false }); +}; + +/** + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ + +picomatch.scan = (input, options) => scan(input, options); + +/** + * Compile a regular expression from the `state` object returned by the + * [parse()](#parse) method. + * + * @param {Object} `state` + * @param {Object} `options` + * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser. + * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. + * @return {RegExp} + * @api public + */ + +picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; + } + + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; + + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; + } + + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = state; + } + + return regex; +}; + +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. + * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression. + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ + +picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); + } + + let parsed = { negated: false, fastpaths: true }; + + if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + parsed.output = parse.fastpaths(input, options); + } + + if (!parsed.output) { + parsed = parse(input, options); + } + + return picomatch.compileRe(parsed, options, returnOutput, returnState); +}; + +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; + } +}; + +/** + * Picomatch constants. + * @return {Object} + */ + +picomatch.constants = constants; + +/** + * Expose "picomatch" + */ + +module.exports = picomatch; diff --git a/node_modules/picomatch/lib/scan.js b/node_modules/picomatch/lib/scan.js new file mode 100644 index 0000000..e59cd7a --- /dev/null +++ b/node_modules/picomatch/lib/scan.js @@ -0,0 +1,391 @@ +'use strict'; + +const utils = require('./utils'); +const { + CHAR_ASTERISK, /* * */ + CHAR_AT, /* @ */ + CHAR_BACKWARD_SLASH, /* \ */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_EXCLAMATION_MARK, /* ! */ + CHAR_FORWARD_SLASH, /* / */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_PLUS, /* + */ + CHAR_QUESTION_MARK, /* ? */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_RIGHT_SQUARE_BRACKET /* ] */ +} = require('./constants'); + +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; + +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; + } +}; + +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not + * with `!(`) and `negatedExtglob` (true if the path starts with `!(`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ + +const scan = (input, options) => { + const opts = options || {}; + + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { value: '', depth: 0, isGlob: false }; + + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; + + while (index < length) { + code = advance(); + let next; + + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; + } + continue; + } + + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; + + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } + + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; + + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { value: '', depth: 0, isGlob: false }; + + if (finished === true) continue; + if (prev === CHAR_DOT && index === (start + 1)) { + start += 2; + continue; + } + + lastIndex = index + 1; + continue; + } + + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS + || code === CHAR_AT + || code === CHAR_ASTERISK + || code === CHAR_QUESTION_MARK + || code === CHAR_EXCLAMATION_MARK; + + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; + } + } + + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + continue; + } + break; + } + + if (isGlob === true) { + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + } + + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } + + let base = str; + let prefix = ''; + let glob = ''; + + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } + + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } + + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } + } + + if (opts.unescape === true) { + if (glob) glob = utils.removeBackslashes(glob); + + if (base && backslashes === true) { + base = utils.removeBackslashes(base); + } + } + + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; + + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; + } + + if (opts.parts === true || opts.tokens === true) { + let prevIndex; + + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } + if (idx !== 0 || value !== '') { + parts.push(value); + } + prevIndex = i; + } + + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } + + state.slashes = slashes; + state.parts = parts; + } + + return state; +}; + +module.exports = scan; diff --git a/node_modules/picomatch/lib/utils.js b/node_modules/picomatch/lib/utils.js new file mode 100644 index 0000000..c3ca766 --- /dev/null +++ b/node_modules/picomatch/lib/utils.js @@ -0,0 +1,64 @@ +'use strict'; + +const path = require('path'); +const win32 = process.platform === 'win32'; +const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL +} = require('./constants'); + +exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); +exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); +exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); +exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); +exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); + +exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); +}; + +exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); + if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { + return true; + } + return false; +}; + +exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; + } + return win32 === true || path.sep === '\\'; +}; + +exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; +}; + +exports.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; + } + return output; +}; + +exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; + + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; +}; diff --git a/node_modules/picomatch/package.json b/node_modules/picomatch/package.json new file mode 100644 index 0000000..3db22d4 --- /dev/null +++ b/node_modules/picomatch/package.json @@ -0,0 +1,81 @@ +{ + "name": "picomatch", + "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.", + "version": "2.3.1", + "homepage": "https://github.com/micromatch/picomatch", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "funding": "https://github.com/sponsors/jonschlinkert", + "repository": "micromatch/picomatch", + "bugs": { + "url": "https://github.com/micromatch/picomatch/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "lib" + ], + "main": "index.js", + "engines": { + "node": ">=8.6" + }, + "scripts": { + "lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --reporter dot", + "test": "npm run lint && npm run mocha", + "test:ci": "npm run test:cover", + "test:cover": "nyc npm run mocha" + }, + "devDependencies": { + "eslint": "^6.8.0", + "fill-range": "^7.0.1", + "gulp-format-md": "^2.0.0", + "mocha": "^6.2.2", + "nyc": "^15.0.0", + "time-require": "github:jonschlinkert/time-require" + }, + "keywords": [ + "glob", + "match", + "picomatch" + ], + "nyc": { + "reporter": [ + "html", + "lcov", + "text-summary" + ] + }, + "verb": { + "toc": { + "render": true, + "method": "preWrite", + "maxdepth": 3 + }, + "layout": "empty", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "related": { + "list": [ + "braces", + "micromatch" + ] + }, + "reflinks": [ + "braces", + "expand-brackets", + "extglob", + "fill-range", + "micromatch", + "minimatch", + "nanomatch", + "picomatch" + ] + } +} diff --git a/node_modules/prelude-ls/CHANGELOG.md b/node_modules/prelude-ls/CHANGELOG.md new file mode 100644 index 0000000..71b8a0f --- /dev/null +++ b/node_modules/prelude-ls/CHANGELOG.md @@ -0,0 +1,108 @@ +# 1.2.1 +- fix version + +# 1.2.0 +- add `List.remove` +- build with LiveScript 1.6.0 +- update dependencies +- remove coverage calculation + +# 1.1.2 +- add `Func.memoize` +- fix `zip-all` and `zip-with-all` corner case (no input) +- build with LiveScript 1.4.0 + +# 1.1.1 +- curry `unique-by`, `minimum-by` + +# 1.1.0 +- added `List` functions: `maximum-by`, `minimum-by`, `unique-by` +- added `List` functions: `at`, `elem-index`, `elem-indices`, `find-index`, `find-indices` +- added `Str` functions: `capitalize`, `camelize`, `dasherize` +- added `Func` function: `over` - eg. ``same-length = (==) `over` (.length)`` +- exported `Str.repeat` through main `prelude` object +- fixed definition of `foldr` and `foldr1`, the new correct definition is backwards incompatible with the old, incorrect one +- fixed issue with `fix` +- improved code coverage + +# 1.0.3 +- build browser versions + +# 1.0.2 +- bug fix for `flatten` - slight change with bug fix, flattens arrays only, not array-like objects + +# 1.0.1 +- bug fixes for `drop-while` and `take-while` + +# 1.0.0 +* massive update - separated functions into separate modules +* functions do not accept multiple types anymore - use different versions in their respective modules in some cases (eg. `Obj.map`), or use `chars` or `values` in other cases to transform into a list +* objects are no longer transformed into functions, simply use `(obj.)` in LiveScript to do that +* browser version now using browserify - use `prelude = require('prelude-ls')` +* added `compact`, `split`, `flatten`, `difference`, `intersection`, `union`, `count-by`, `group-by`, `chars`, `unchars`, `apply` +* added `lists-to-obj` which takes a list of keys and list of values and zips them up into an object, and the converse `obj-to-lists` +* added `pairs-to-obj` which takes a list of pairs (2 element lists) and creates an object, and the converse `obj-to-pairs` +* removed `cons`, `append` - use the concat operator +* removed `compose` - use the compose operator +* removed `obj-to-func` - use partially applied access (eg. `(obj.)`) +* removed `length` - use `(.length)` +* `sort-by` renamed to `sort-with` +* added new `sort-by` +* removed `compare` - just use the new `sort-by` +* `break-it` renamed `break-list`, (`Str.break-str` for the string version) +* added `Str.repeat` which creates a new string by repeating the input n times +* `unfold` as alias to `unfoldr` is no longer used +* fixed up style and compiled with LiveScript 1.1.1 +* use Make instead of Slake +* greatly improved tests + +# 0.6.0 +* fixed various bugs +* added `fix`, a fixpoint (Y combinator) for anonymous recursive functions +* added `unfoldr` (alias `unfold`) +* calling `replicate` with a string now returns a list of strings +* removed `partial`, just use native partial application in LiveScript using the `_` placeholder, or currying +* added `sort`, `sortBy`, and `compare` + +# 0.5.0 +* removed `lookup` - use (.prop) +* removed `call` - use (.func arg1, arg2) +* removed `pluck` - use map (.prop), xs +* fixed buys wtih `head` and `last` +* added non-minifed browser version, as `prelude-browser.js` +* renamed `prelude-min.js` to `prelude-browser-min.js` +* renamed `zip` to `zipAll` +* renamed `zipWith` to `zipAllWith` +* added `zip`, a curried zip that takes only two arguments +* added `zipWith`, a curried zipWith that takes only two arguments + +# 0.4.0 +* added `parition` function +* added `curry` function +* removed `elem` function (use `in`) +* removed `notElem` function (use `not in`) + +# 0.3.0 +* added `listToObject` +* added `unique` +* added `objToFunc` +* added support for using strings in map and the like +* added support for using objects in map and the like +* added ability to use objects instead of functions in certain cases +* removed `error` (just use throw) +* added `tau` constant +* added `join` +* added `values` +* added `keys` +* added `partial` +* renamed `log` to `ln` +* added alias to `head`: `first` +* added `installPrelude` helper + +# 0.2.0 +* removed functions that simply warp operators as you can now use operators as functions in LiveScript +* `min/max` are now curried and take only 2 arguments +* added `call` + +# 0.1.0 +* initial public release diff --git a/node_modules/prelude-ls/LICENSE b/node_modules/prelude-ls/LICENSE new file mode 100644 index 0000000..525b118 --- /dev/null +++ b/node_modules/prelude-ls/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) George Zahariev + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/prelude-ls/README.md b/node_modules/prelude-ls/README.md new file mode 100644 index 0000000..fabc212 --- /dev/null +++ b/node_modules/prelude-ls/README.md @@ -0,0 +1,15 @@ +# prelude.ls [![Build Status](https://travis-ci.org/gkz/prelude-ls.png?branch=master)](https://travis-ci.org/gkz/prelude-ls) + +is a functionally oriented utility library. It is powerful and flexible. Almost all of its functions are curried. It is written in, and is the recommended base library for, LiveScript. + +See **[the prelude.ls site](http://preludels.com)** for examples, a reference, and more. + +You can install via npm `npm install prelude-ls` + +### Development + +`make test` to test + +`make build` to build `lib` from `src` + +`make build-browser` to build browser versions diff --git a/node_modules/prelude-ls/lib/Func.js b/node_modules/prelude-ls/lib/Func.js new file mode 100644 index 0000000..09777a8 --- /dev/null +++ b/node_modules/prelude-ls/lib/Func.js @@ -0,0 +1,69 @@ +// Generated by LiveScript 1.6.0 +var apply, curry, flip, fix, over, memoize, toString$ = {}.toString; +apply = curry$(function(f, list){ + return f.apply(null, list); +}); +curry = function(f){ + return curry$(f); +}; +flip = curry$(function(f, x, y){ + return f(y, x); +}); +fix = function(f){ + return function(g){ + return function(){ + return f(g(g)).apply(null, arguments); + }; + }(function(g){ + return function(){ + return f(g(g)).apply(null, arguments); + }; + }); +}; +over = curry$(function(f, g, x, y){ + return f(g(x), g(y)); +}); +memoize = function(f){ + var memo; + memo = {}; + return function(){ + var args, res$, i$, to$, key, arg; + res$ = []; + for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + args = res$; + key = (function(){ + var i$, ref$, len$, results$ = []; + for (i$ = 0, len$ = (ref$ = args).length; i$ < len$; ++i$) { + arg = ref$[i$]; + results$.push(arg + toString$.call(arg).slice(8, -1)); + } + return results$; + }()).join(''); + return memo[key] = key in memo + ? memo[key] + : f.apply(null, args); + }; +}; +module.exports = { + curry: curry, + flip: flip, + fix: fix, + apply: apply, + over: over, + memoize: memoize +}; +function curry$(f, bound){ + var context, + _curry = function(args) { + return f.length > 1 ? function(){ + var params = args ? args.concat() : []; + context = bound ? context || this : this; + return params.push.apply(params, arguments) < + f.length && arguments.length ? + _curry.call(context, params) : f.apply(context, params); + } : f; + }; + return _curry(); +} \ No newline at end of file diff --git a/node_modules/prelude-ls/lib/List.js b/node_modules/prelude-ls/lib/List.js new file mode 100644 index 0000000..d2e41ab --- /dev/null +++ b/node_modules/prelude-ls/lib/List.js @@ -0,0 +1,716 @@ +// Generated by LiveScript 1.6.0 +var each, map, compact, filter, reject, remove, partition, find, head, first, tail, last, initial, empty, reverse, unique, uniqueBy, fold, foldl, fold1, foldl1, foldr, foldr1, unfoldr, concat, concatMap, flatten, difference, intersection, union, countBy, groupBy, andList, orList, any, all, sort, sortWith, sortBy, sum, product, mean, average, maximum, minimum, maximumBy, minimumBy, scan, scanl, scan1, scanl1, scanr, scanr1, slice, take, drop, splitAt, takeWhile, dropWhile, span, breakList, zip, zipWith, zipAll, zipAllWith, at, elemIndex, elemIndices, findIndex, findIndices, toString$ = {}.toString; +each = curry$(function(f, xs){ + var i$, len$, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + f(x); + } + return xs; +}); +map = curry$(function(f, xs){ + var i$, len$, x, results$ = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + results$.push(f(x)); + } + return results$; +}); +compact = function(xs){ + var i$, len$, x, results$ = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (x) { + results$.push(x); + } + } + return results$; +}; +filter = curry$(function(f, xs){ + var i$, len$, x, results$ = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (f(x)) { + results$.push(x); + } + } + return results$; +}); +reject = curry$(function(f, xs){ + var i$, len$, x, results$ = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (!f(x)) { + results$.push(x); + } + } + return results$; +}); +remove = curry$(function(el, xs){ + var i, x$; + i = elemIndex(el, xs); + x$ = xs.slice(); + if (i != null) { + x$.splice(i, 1); + } + return x$; +}); +partition = curry$(function(f, xs){ + var passed, failed, i$, len$, x; + passed = []; + failed = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + (f(x) ? passed : failed).push(x); + } + return [passed, failed]; +}); +find = curry$(function(f, xs){ + var i$, len$, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (f(x)) { + return x; + } + } +}); +head = first = function(xs){ + return xs[0]; +}; +tail = function(xs){ + if (!xs.length) { + return; + } + return xs.slice(1); +}; +last = function(xs){ + return xs[xs.length - 1]; +}; +initial = function(xs){ + if (!xs.length) { + return; + } + return xs.slice(0, -1); +}; +empty = function(xs){ + return !xs.length; +}; +reverse = function(xs){ + return xs.concat().reverse(); +}; +unique = function(xs){ + var result, i$, len$, x; + result = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (!in$(x, result)) { + result.push(x); + } + } + return result; +}; +uniqueBy = curry$(function(f, xs){ + var seen, i$, len$, x, val, results$ = []; + seen = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + val = f(x); + if (in$(val, seen)) { + continue; + } + seen.push(val); + results$.push(x); + } + return results$; +}); +fold = foldl = curry$(function(f, memo, xs){ + var i$, len$, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + memo = f(memo, x); + } + return memo; +}); +fold1 = foldl1 = curry$(function(f, xs){ + return fold(f, xs[0], xs.slice(1)); +}); +foldr = curry$(function(f, memo, xs){ + var i$, x; + for (i$ = xs.length - 1; i$ >= 0; --i$) { + x = xs[i$]; + memo = f(x, memo); + } + return memo; +}); +foldr1 = curry$(function(f, xs){ + return foldr(f, xs[xs.length - 1], xs.slice(0, -1)); +}); +unfoldr = curry$(function(f, b){ + var result, x, that; + result = []; + x = b; + while ((that = f(x)) != null) { + result.push(that[0]); + x = that[1]; + } + return result; +}); +concat = function(xss){ + return [].concat.apply([], xss); +}; +concatMap = curry$(function(f, xs){ + var x; + return [].concat.apply([], (function(){ + var i$, ref$, len$, results$ = []; + for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) { + x = ref$[i$]; + results$.push(f(x)); + } + return results$; + }())); +}); +flatten = function(xs){ + var x; + return [].concat.apply([], (function(){ + var i$, ref$, len$, results$ = []; + for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) { + x = ref$[i$]; + if (toString$.call(x).slice(8, -1) === 'Array') { + results$.push(flatten(x)); + } else { + results$.push(x); + } + } + return results$; + }())); +}; +difference = function(xs){ + var yss, res$, i$, to$, results, len$, x, j$, len1$, ys; + res$ = []; + for (i$ = 1, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + yss = res$; + results = []; + outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) { + ys = yss[j$]; + if (in$(x, ys)) { + continue outer; + } + } + results.push(x); + } + return results; +}; +intersection = function(xs){ + var yss, res$, i$, to$, results, len$, x, j$, len1$, ys; + res$ = []; + for (i$ = 1, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + yss = res$; + results = []; + outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) { + ys = yss[j$]; + if (!in$(x, ys)) { + continue outer; + } + } + results.push(x); + } + return results; +}; +union = function(){ + var xss, res$, i$, to$, results, len$, xs, j$, len1$, x; + res$ = []; + for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + xss = res$; + results = []; + for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) { + xs = xss[i$]; + for (j$ = 0, len1$ = xs.length; j$ < len1$; ++j$) { + x = xs[j$]; + if (!in$(x, results)) { + results.push(x); + } + } + } + return results; +}; +countBy = curry$(function(f, xs){ + var results, i$, len$, x, key; + results = {}; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + key = f(x); + if (key in results) { + results[key] += 1; + } else { + results[key] = 1; + } + } + return results; +}); +groupBy = curry$(function(f, xs){ + var results, i$, len$, x, key; + results = {}; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + key = f(x); + if (key in results) { + results[key].push(x); + } else { + results[key] = [x]; + } + } + return results; +}); +andList = function(xs){ + var i$, len$, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (!x) { + return false; + } + } + return true; +}; +orList = function(xs){ + var i$, len$, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (x) { + return true; + } + } + return false; +}; +any = curry$(function(f, xs){ + var i$, len$, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (f(x)) { + return true; + } + } + return false; +}); +all = curry$(function(f, xs){ + var i$, len$, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + if (!f(x)) { + return false; + } + } + return true; +}); +sort = function(xs){ + return xs.concat().sort(function(x, y){ + if (x > y) { + return 1; + } else if (x < y) { + return -1; + } else { + return 0; + } + }); +}; +sortWith = curry$(function(f, xs){ + return xs.concat().sort(f); +}); +sortBy = curry$(function(f, xs){ + return xs.concat().sort(function(x, y){ + if (f(x) > f(y)) { + return 1; + } else if (f(x) < f(y)) { + return -1; + } else { + return 0; + } + }); +}); +sum = function(xs){ + var result, i$, len$, x; + result = 0; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + result += x; + } + return result; +}; +product = function(xs){ + var result, i$, len$, x; + result = 1; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + result *= x; + } + return result; +}; +mean = average = function(xs){ + var sum, i$, len$, x; + sum = 0; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + x = xs[i$]; + sum += x; + } + return sum / xs.length; +}; +maximum = function(xs){ + var max, i$, ref$, len$, x; + max = xs[0]; + for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { + x = ref$[i$]; + if (x > max) { + max = x; + } + } + return max; +}; +minimum = function(xs){ + var min, i$, ref$, len$, x; + min = xs[0]; + for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { + x = ref$[i$]; + if (x < min) { + min = x; + } + } + return min; +}; +maximumBy = curry$(function(f, xs){ + var max, i$, ref$, len$, x; + max = xs[0]; + for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { + x = ref$[i$]; + if (f(x) > f(max)) { + max = x; + } + } + return max; +}); +minimumBy = curry$(function(f, xs){ + var min, i$, ref$, len$, x; + min = xs[0]; + for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { + x = ref$[i$]; + if (f(x) < f(min)) { + min = x; + } + } + return min; +}); +scan = scanl = curry$(function(f, memo, xs){ + var last, x; + last = memo; + return [memo].concat((function(){ + var i$, ref$, len$, results$ = []; + for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) { + x = ref$[i$]; + results$.push(last = f(last, x)); + } + return results$; + }())); +}); +scan1 = scanl1 = curry$(function(f, xs){ + if (!xs.length) { + return; + } + return scan(f, xs[0], xs.slice(1)); +}); +scanr = curry$(function(f, memo, xs){ + xs = xs.concat().reverse(); + return scan(f, memo, xs).reverse(); +}); +scanr1 = curry$(function(f, xs){ + if (!xs.length) { + return; + } + xs = xs.concat().reverse(); + return scan(f, xs[0], xs.slice(1)).reverse(); +}); +slice = curry$(function(x, y, xs){ + return xs.slice(x, y); +}); +take = curry$(function(n, xs){ + if (n <= 0) { + return xs.slice(0, 0); + } else { + return xs.slice(0, n); + } +}); +drop = curry$(function(n, xs){ + if (n <= 0) { + return xs; + } else { + return xs.slice(n); + } +}); +splitAt = curry$(function(n, xs){ + return [take(n, xs), drop(n, xs)]; +}); +takeWhile = curry$(function(p, xs){ + var len, i; + len = xs.length; + if (!len) { + return xs; + } + i = 0; + while (i < len && p(xs[i])) { + i += 1; + } + return xs.slice(0, i); +}); +dropWhile = curry$(function(p, xs){ + var len, i; + len = xs.length; + if (!len) { + return xs; + } + i = 0; + while (i < len && p(xs[i])) { + i += 1; + } + return xs.slice(i); +}); +span = curry$(function(p, xs){ + return [takeWhile(p, xs), dropWhile(p, xs)]; +}); +breakList = curry$(function(p, xs){ + return span(compose$(p, not$), xs); +}); +zip = curry$(function(xs, ys){ + var result, len, i$, len$, i, x; + result = []; + len = ys.length; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + i = i$; + x = xs[i$]; + if (i === len) { + break; + } + result.push([x, ys[i]]); + } + return result; +}); +zipWith = curry$(function(f, xs, ys){ + var result, len, i$, len$, i, x; + result = []; + len = ys.length; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + i = i$; + x = xs[i$]; + if (i === len) { + break; + } + result.push(f(x, ys[i])); + } + return result; +}); +zipAll = function(){ + var xss, res$, i$, to$, minLength, len$, xs, ref$, i, lresult$, j$, results$ = []; + res$ = []; + for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + xss = res$; + minLength = undefined; + for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) { + xs = xss[i$]; + minLength <= (ref$ = xs.length) || (minLength = ref$); + } + for (i$ = 0; i$ < minLength; ++i$) { + i = i$; + lresult$ = []; + for (j$ = 0, len$ = xss.length; j$ < len$; ++j$) { + xs = xss[j$]; + lresult$.push(xs[i]); + } + results$.push(lresult$); + } + return results$; +}; +zipAllWith = function(f){ + var xss, res$, i$, to$, minLength, len$, xs, ref$, i, results$ = []; + res$ = []; + for (i$ = 1, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + xss = res$; + minLength = undefined; + for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) { + xs = xss[i$]; + minLength <= (ref$ = xs.length) || (minLength = ref$); + } + for (i$ = 0; i$ < minLength; ++i$) { + i = i$; + results$.push(f.apply(null, (fn$()))); + } + return results$; + function fn$(){ + var i$, ref$, len$, results$ = []; + for (i$ = 0, len$ = (ref$ = xss).length; i$ < len$; ++i$) { + xs = ref$[i$]; + results$.push(xs[i]); + } + return results$; + } +}; +at = curry$(function(n, xs){ + if (n < 0) { + return xs[xs.length + n]; + } else { + return xs[n]; + } +}); +elemIndex = curry$(function(el, xs){ + var i$, len$, i, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + i = i$; + x = xs[i$]; + if (x === el) { + return i; + } + } +}); +elemIndices = curry$(function(el, xs){ + var i$, len$, i, x, results$ = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + i = i$; + x = xs[i$]; + if (x === el) { + results$.push(i); + } + } + return results$; +}); +findIndex = curry$(function(f, xs){ + var i$, len$, i, x; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + i = i$; + x = xs[i$]; + if (f(x)) { + return i; + } + } +}); +findIndices = curry$(function(f, xs){ + var i$, len$, i, x, results$ = []; + for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { + i = i$; + x = xs[i$]; + if (f(x)) { + results$.push(i); + } + } + return results$; +}); +module.exports = { + each: each, + map: map, + filter: filter, + compact: compact, + reject: reject, + remove: remove, + partition: partition, + find: find, + head: head, + first: first, + tail: tail, + last: last, + initial: initial, + empty: empty, + reverse: reverse, + difference: difference, + intersection: intersection, + union: union, + countBy: countBy, + groupBy: groupBy, + fold: fold, + fold1: fold1, + foldl: foldl, + foldl1: foldl1, + foldr: foldr, + foldr1: foldr1, + unfoldr: unfoldr, + andList: andList, + orList: orList, + any: any, + all: all, + unique: unique, + uniqueBy: uniqueBy, + sort: sort, + sortWith: sortWith, + sortBy: sortBy, + sum: sum, + product: product, + mean: mean, + average: average, + concat: concat, + concatMap: concatMap, + flatten: flatten, + maximum: maximum, + minimum: minimum, + maximumBy: maximumBy, + minimumBy: minimumBy, + scan: scan, + scan1: scan1, + scanl: scanl, + scanl1: scanl1, + scanr: scanr, + scanr1: scanr1, + slice: slice, + take: take, + drop: drop, + splitAt: splitAt, + takeWhile: takeWhile, + dropWhile: dropWhile, + span: span, + breakList: breakList, + zip: zip, + zipWith: zipWith, + zipAll: zipAll, + zipAllWith: zipAllWith, + at: at, + elemIndex: elemIndex, + elemIndices: elemIndices, + findIndex: findIndex, + findIndices: findIndices +}; +function curry$(f, bound){ + var context, + _curry = function(args) { + return f.length > 1 ? function(){ + var params = args ? args.concat() : []; + context = bound ? context || this : this; + return params.push.apply(params, arguments) < + f.length && arguments.length ? + _curry.call(context, params) : f.apply(context, params); + } : f; + }; + return _curry(); +} +function in$(x, xs){ + var i = -1, l = xs.length >>> 0; + while (++i < l) if (x === xs[i]) return true; + return false; +} +function compose$() { + var functions = arguments; + return function() { + var i, result; + result = functions[0].apply(this, arguments); + for (i = 1; i < functions.length; ++i) { + result = functions[i](result); + } + return result; + }; +} +function not$(x){ return !x; } \ No newline at end of file diff --git a/node_modules/prelude-ls/lib/Num.js b/node_modules/prelude-ls/lib/Num.js new file mode 100644 index 0000000..f6b5319 --- /dev/null +++ b/node_modules/prelude-ls/lib/Num.js @@ -0,0 +1,130 @@ +// Generated by LiveScript 1.6.0 +var max, min, negate, abs, signum, quot, rem, div, mod, recip, pi, tau, exp, sqrt, ln, pow, sin, tan, cos, asin, acos, atan, atan2, truncate, round, ceiling, floor, isItNaN, even, odd, gcd, lcm; +max = curry$(function(x$, y$){ + return x$ > y$ ? x$ : y$; +}); +min = curry$(function(x$, y$){ + return x$ < y$ ? x$ : y$; +}); +negate = function(x){ + return -x; +}; +abs = Math.abs; +signum = function(x){ + if (x < 0) { + return -1; + } else if (x > 0) { + return 1; + } else { + return 0; + } +}; +quot = curry$(function(x, y){ + return ~~(x / y); +}); +rem = curry$(function(x$, y$){ + return x$ % y$; +}); +div = curry$(function(x, y){ + return Math.floor(x / y); +}); +mod = curry$(function(x$, y$){ + var ref$; + return ((x$) % (ref$ = y$) + ref$) % ref$; +}); +recip = (function(it){ + return 1 / it; +}); +pi = Math.PI; +tau = pi * 2; +exp = Math.exp; +sqrt = Math.sqrt; +ln = Math.log; +pow = curry$(function(x$, y$){ + return Math.pow(x$, y$); +}); +sin = Math.sin; +tan = Math.tan; +cos = Math.cos; +asin = Math.asin; +acos = Math.acos; +atan = Math.atan; +atan2 = curry$(function(x, y){ + return Math.atan2(x, y); +}); +truncate = function(x){ + return ~~x; +}; +round = Math.round; +ceiling = Math.ceil; +floor = Math.floor; +isItNaN = function(x){ + return x !== x; +}; +even = function(x){ + return x % 2 === 0; +}; +odd = function(x){ + return x % 2 !== 0; +}; +gcd = curry$(function(x, y){ + var z; + x = Math.abs(x); + y = Math.abs(y); + while (y !== 0) { + z = x % y; + x = y; + y = z; + } + return x; +}); +lcm = curry$(function(x, y){ + return Math.abs(Math.floor(x / gcd(x, y) * y)); +}); +module.exports = { + max: max, + min: min, + negate: negate, + abs: abs, + signum: signum, + quot: quot, + rem: rem, + div: div, + mod: mod, + recip: recip, + pi: pi, + tau: tau, + exp: exp, + sqrt: sqrt, + ln: ln, + pow: pow, + sin: sin, + tan: tan, + cos: cos, + acos: acos, + asin: asin, + atan: atan, + atan2: atan2, + truncate: truncate, + round: round, + ceiling: ceiling, + floor: floor, + isItNaN: isItNaN, + even: even, + odd: odd, + gcd: gcd, + lcm: lcm +}; +function curry$(f, bound){ + var context, + _curry = function(args) { + return f.length > 1 ? function(){ + var params = args ? args.concat() : []; + context = bound ? context || this : this; + return params.push.apply(params, arguments) < + f.length && arguments.length ? + _curry.call(context, params) : f.apply(context, params); + } : f; + }; + return _curry(); +} \ No newline at end of file diff --git a/node_modules/prelude-ls/lib/Obj.js b/node_modules/prelude-ls/lib/Obj.js new file mode 100644 index 0000000..0b8d321 --- /dev/null +++ b/node_modules/prelude-ls/lib/Obj.js @@ -0,0 +1,154 @@ +// Generated by LiveScript 1.6.0 +var values, keys, pairsToObj, objToPairs, listsToObj, objToLists, empty, each, map, compact, filter, reject, partition, find; +values = function(object){ + var i$, x, results$ = []; + for (i$ in object) { + x = object[i$]; + results$.push(x); + } + return results$; +}; +keys = function(object){ + var x, results$ = []; + for (x in object) { + results$.push(x); + } + return results$; +}; +pairsToObj = function(object){ + var i$, len$, x, resultObj$ = {}; + for (i$ = 0, len$ = object.length; i$ < len$; ++i$) { + x = object[i$]; + resultObj$[x[0]] = x[1]; + } + return resultObj$; +}; +objToPairs = function(object){ + var key, value, results$ = []; + for (key in object) { + value = object[key]; + results$.push([key, value]); + } + return results$; +}; +listsToObj = curry$(function(keys, values){ + var i$, len$, i, key, resultObj$ = {}; + for (i$ = 0, len$ = keys.length; i$ < len$; ++i$) { + i = i$; + key = keys[i$]; + resultObj$[key] = values[i]; + } + return resultObj$; +}); +objToLists = function(object){ + var keys, values, key, value; + keys = []; + values = []; + for (key in object) { + value = object[key]; + keys.push(key); + values.push(value); + } + return [keys, values]; +}; +empty = function(object){ + var x; + for (x in object) { + return false; + } + return true; +}; +each = curry$(function(f, object){ + var i$, x; + for (i$ in object) { + x = object[i$]; + f(x); + } + return object; +}); +map = curry$(function(f, object){ + var k, x, resultObj$ = {}; + for (k in object) { + x = object[k]; + resultObj$[k] = f(x); + } + return resultObj$; +}); +compact = function(object){ + var k, x, resultObj$ = {}; + for (k in object) { + x = object[k]; + if (x) { + resultObj$[k] = x; + } + } + return resultObj$; +}; +filter = curry$(function(f, object){ + var k, x, resultObj$ = {}; + for (k in object) { + x = object[k]; + if (f(x)) { + resultObj$[k] = x; + } + } + return resultObj$; +}); +reject = curry$(function(f, object){ + var k, x, resultObj$ = {}; + for (k in object) { + x = object[k]; + if (!f(x)) { + resultObj$[k] = x; + } + } + return resultObj$; +}); +partition = curry$(function(f, object){ + var passed, failed, k, x; + passed = {}; + failed = {}; + for (k in object) { + x = object[k]; + (f(x) ? passed : failed)[k] = x; + } + return [passed, failed]; +}); +find = curry$(function(f, object){ + var i$, x; + for (i$ in object) { + x = object[i$]; + if (f(x)) { + return x; + } + } +}); +module.exports = { + values: values, + keys: keys, + pairsToObj: pairsToObj, + objToPairs: objToPairs, + listsToObj: listsToObj, + objToLists: objToLists, + empty: empty, + each: each, + map: map, + filter: filter, + compact: compact, + reject: reject, + partition: partition, + find: find +}; +function curry$(f, bound){ + var context, + _curry = function(args) { + return f.length > 1 ? function(){ + var params = args ? args.concat() : []; + context = bound ? context || this : this; + return params.push.apply(params, arguments) < + f.length && arguments.length ? + _curry.call(context, params) : f.apply(context, params); + } : f; + }; + return _curry(); +} \ No newline at end of file diff --git a/node_modules/prelude-ls/lib/Str.js b/node_modules/prelude-ls/lib/Str.js new file mode 100644 index 0000000..59406d6 --- /dev/null +++ b/node_modules/prelude-ls/lib/Str.js @@ -0,0 +1,92 @@ +// Generated by LiveScript 1.6.0 +var split, join, lines, unlines, words, unwords, chars, unchars, reverse, repeat, capitalize, camelize, dasherize; +split = curry$(function(sep, str){ + return str.split(sep); +}); +join = curry$(function(sep, xs){ + return xs.join(sep); +}); +lines = function(str){ + if (!str.length) { + return []; + } + return str.split('\n'); +}; +unlines = function(it){ + return it.join('\n'); +}; +words = function(str){ + if (!str.length) { + return []; + } + return str.split(/[ ]+/); +}; +unwords = function(it){ + return it.join(' '); +}; +chars = function(it){ + return it.split(''); +}; +unchars = function(it){ + return it.join(''); +}; +reverse = function(str){ + return str.split('').reverse().join(''); +}; +repeat = curry$(function(n, str){ + var result, i$; + result = ''; + for (i$ = 0; i$ < n; ++i$) { + result += str; + } + return result; +}); +capitalize = function(str){ + return str.charAt(0).toUpperCase() + str.slice(1); +}; +camelize = function(it){ + return it.replace(/[-_]+(.)?/g, function(arg$, c){ + return (c != null ? c : '').toUpperCase(); + }); +}; +dasherize = function(str){ + return str.replace(/([^-A-Z])([A-Z]+)/g, function(arg$, lower, upper){ + return lower + "-" + (upper.length > 1 + ? upper + : upper.toLowerCase()); + }).replace(/^([A-Z]+)/, function(arg$, upper){ + if (upper.length > 1) { + return upper + "-"; + } else { + return upper.toLowerCase(); + } + }); +}; +module.exports = { + split: split, + join: join, + lines: lines, + unlines: unlines, + words: words, + unwords: unwords, + chars: chars, + unchars: unchars, + reverse: reverse, + repeat: repeat, + capitalize: capitalize, + camelize: camelize, + dasherize: dasherize +}; +function curry$(f, bound){ + var context, + _curry = function(args) { + return f.length > 1 ? function(){ + var params = args ? args.concat() : []; + context = bound ? context || this : this; + return params.push.apply(params, arguments) < + f.length && arguments.length ? + _curry.call(context, params) : f.apply(context, params); + } : f; + }; + return _curry(); +} \ No newline at end of file diff --git a/node_modules/prelude-ls/lib/index.js b/node_modules/prelude-ls/lib/index.js new file mode 100644 index 0000000..9dcbed4 --- /dev/null +++ b/node_modules/prelude-ls/lib/index.js @@ -0,0 +1,178 @@ +// Generated by LiveScript 1.6.0 +var Func, List, Obj, Str, Num, id, isType, replicate, prelude, toString$ = {}.toString; +Func = require('./Func.js'); +List = require('./List.js'); +Obj = require('./Obj.js'); +Str = require('./Str.js'); +Num = require('./Num.js'); +id = function(x){ + return x; +}; +isType = curry$(function(type, x){ + return toString$.call(x).slice(8, -1) === type; +}); +replicate = curry$(function(n, x){ + var i$, results$ = []; + for (i$ = 0; i$ < n; ++i$) { + results$.push(x); + } + return results$; +}); +Str.empty = List.empty; +Str.slice = List.slice; +Str.take = List.take; +Str.drop = List.drop; +Str.splitAt = List.splitAt; +Str.takeWhile = List.takeWhile; +Str.dropWhile = List.dropWhile; +Str.span = List.span; +Str.breakStr = List.breakList; +prelude = { + Func: Func, + List: List, + Obj: Obj, + Str: Str, + Num: Num, + id: id, + isType: isType, + replicate: replicate +}; +prelude.each = List.each; +prelude.map = List.map; +prelude.filter = List.filter; +prelude.compact = List.compact; +prelude.reject = List.reject; +prelude.partition = List.partition; +prelude.find = List.find; +prelude.head = List.head; +prelude.first = List.first; +prelude.tail = List.tail; +prelude.last = List.last; +prelude.initial = List.initial; +prelude.empty = List.empty; +prelude.reverse = List.reverse; +prelude.difference = List.difference; +prelude.intersection = List.intersection; +prelude.union = List.union; +prelude.countBy = List.countBy; +prelude.groupBy = List.groupBy; +prelude.fold = List.fold; +prelude.foldl = List.foldl; +prelude.fold1 = List.fold1; +prelude.foldl1 = List.foldl1; +prelude.foldr = List.foldr; +prelude.foldr1 = List.foldr1; +prelude.unfoldr = List.unfoldr; +prelude.andList = List.andList; +prelude.orList = List.orList; +prelude.any = List.any; +prelude.all = List.all; +prelude.unique = List.unique; +prelude.uniqueBy = List.uniqueBy; +prelude.sort = List.sort; +prelude.sortWith = List.sortWith; +prelude.sortBy = List.sortBy; +prelude.sum = List.sum; +prelude.product = List.product; +prelude.mean = List.mean; +prelude.average = List.average; +prelude.concat = List.concat; +prelude.concatMap = List.concatMap; +prelude.flatten = List.flatten; +prelude.maximum = List.maximum; +prelude.minimum = List.minimum; +prelude.maximumBy = List.maximumBy; +prelude.minimumBy = List.minimumBy; +prelude.scan = List.scan; +prelude.scanl = List.scanl; +prelude.scan1 = List.scan1; +prelude.scanl1 = List.scanl1; +prelude.scanr = List.scanr; +prelude.scanr1 = List.scanr1; +prelude.slice = List.slice; +prelude.take = List.take; +prelude.drop = List.drop; +prelude.splitAt = List.splitAt; +prelude.takeWhile = List.takeWhile; +prelude.dropWhile = List.dropWhile; +prelude.span = List.span; +prelude.breakList = List.breakList; +prelude.zip = List.zip; +prelude.zipWith = List.zipWith; +prelude.zipAll = List.zipAll; +prelude.zipAllWith = List.zipAllWith; +prelude.at = List.at; +prelude.elemIndex = List.elemIndex; +prelude.elemIndices = List.elemIndices; +prelude.findIndex = List.findIndex; +prelude.findIndices = List.findIndices; +prelude.apply = Func.apply; +prelude.curry = Func.curry; +prelude.flip = Func.flip; +prelude.fix = Func.fix; +prelude.over = Func.over; +prelude.split = Str.split; +prelude.join = Str.join; +prelude.lines = Str.lines; +prelude.unlines = Str.unlines; +prelude.words = Str.words; +prelude.unwords = Str.unwords; +prelude.chars = Str.chars; +prelude.unchars = Str.unchars; +prelude.repeat = Str.repeat; +prelude.capitalize = Str.capitalize; +prelude.camelize = Str.camelize; +prelude.dasherize = Str.dasherize; +prelude.values = Obj.values; +prelude.keys = Obj.keys; +prelude.pairsToObj = Obj.pairsToObj; +prelude.objToPairs = Obj.objToPairs; +prelude.listsToObj = Obj.listsToObj; +prelude.objToLists = Obj.objToLists; +prelude.max = Num.max; +prelude.min = Num.min; +prelude.negate = Num.negate; +prelude.abs = Num.abs; +prelude.signum = Num.signum; +prelude.quot = Num.quot; +prelude.rem = Num.rem; +prelude.div = Num.div; +prelude.mod = Num.mod; +prelude.recip = Num.recip; +prelude.pi = Num.pi; +prelude.tau = Num.tau; +prelude.exp = Num.exp; +prelude.sqrt = Num.sqrt; +prelude.ln = Num.ln; +prelude.pow = Num.pow; +prelude.sin = Num.sin; +prelude.tan = Num.tan; +prelude.cos = Num.cos; +prelude.acos = Num.acos; +prelude.asin = Num.asin; +prelude.atan = Num.atan; +prelude.atan2 = Num.atan2; +prelude.truncate = Num.truncate; +prelude.round = Num.round; +prelude.ceiling = Num.ceiling; +prelude.floor = Num.floor; +prelude.isItNaN = Num.isItNaN; +prelude.even = Num.even; +prelude.odd = Num.odd; +prelude.gcd = Num.gcd; +prelude.lcm = Num.lcm; +prelude.VERSION = '1.2.1'; +module.exports = prelude; +function curry$(f, bound){ + var context, + _curry = function(args) { + return f.length > 1 ? function(){ + var params = args ? args.concat() : []; + context = bound ? context || this : this; + return params.push.apply(params, arguments) < + f.length && arguments.length ? + _curry.call(context, params) : f.apply(context, params); + } : f; + }; + return _curry(); +} \ No newline at end of file diff --git a/node_modules/prelude-ls/package.json b/node_modules/prelude-ls/package.json new file mode 100644 index 0000000..c313c3d --- /dev/null +++ b/node_modules/prelude-ls/package.json @@ -0,0 +1,46 @@ +{ + "name": "prelude-ls", + "version": "1.2.1", + "author": "George Zahariev ", + "description": "prelude.ls is a functionally oriented utility library. It is powerful and flexible. Almost all of its functions are curried. It is written in, and is the recommended base library for, LiveScript.", + "keywords": [ + "prelude", + "livescript", + "utility", + "ls", + "coffeescript", + "javascript", + "library", + "functional", + "array", + "list", + "object", + "string" + ], + "main": "lib/", + "files": [ + "lib/", + "README.md", + "LICENSE" + ], + "homepage": "http://preludels.com", + "bugs": "https://github.com/gkz/prelude-ls/issues", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/gkz/prelude-ls.git" + }, + "scripts": { + "test": "make test" + }, + "devDependencies": { + "livescript": "^1.6.0", + "uglify-js": "^3.8.1", + "mocha": "^7.1.1", + "browserify": "^16.5.1", + "sinon": "~8.0.1" + } +} diff --git a/node_modules/prettier-linter-helpers/.editorconfig b/node_modules/prettier-linter-helpers/.editorconfig new file mode 100644 index 0000000..c9fe4a7 --- /dev/null +++ b/node_modules/prettier-linter-helpers/.editorconfig @@ -0,0 +1,15 @@ +# editorconfig.org +root = true + +[*] +charset = utf-8 +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +# Markdown syntax specifies that trailing whitespaces can be meaningful, +# so let’s not trim those. e.g. 2 trailing spaces = linebreak (
) +# See https://daringfireball.net/projects/markdown/syntax#p +[*.md] +trim_trailing_whitespace = false diff --git a/node_modules/prettier-linter-helpers/.eslintignore b/node_modules/prettier-linter-helpers/.eslintignore new file mode 100644 index 0000000..2b026ff --- /dev/null +++ b/node_modules/prettier-linter-helpers/.eslintignore @@ -0,0 +1,2 @@ +!.eslintrc.js +node_modules diff --git a/node_modules/prettier-linter-helpers/.eslintrc.js b/node_modules/prettier-linter-helpers/.eslintrc.js new file mode 100644 index 0000000..6dd28c3 --- /dev/null +++ b/node_modules/prettier-linter-helpers/.eslintrc.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: ['node'], + extends: ['plugin:node/recommended', 'plugin:prettier/recommended'], + env: {mocha: true}, + root: true, +}; diff --git a/node_modules/prettier-linter-helpers/.github/CONTRIBUTING.md b/node_modules/prettier-linter-helpers/.github/CONTRIBUTING.md new file mode 100644 index 0000000..c9df1f8 --- /dev/null +++ b/node_modules/prettier-linter-helpers/.github/CONTRIBUTING.md @@ -0,0 +1,41 @@ +# Contributing + +Thanks for contributing! + +## Installation + +```sh +git clone https://github.com/prettier/prettier-linter-helpers.git +cd prettier-linter-helpers +yarn install +``` + +## Running the tests + +```sh +yarn run test +``` + +Linting is ran as part of `yarn run test`. The build will fail if there are any linting errors. You can run `yarn run lint --fix` to fix some linting errors (including formatting to match prettier's expectations). To run the tests without linting run `yarn run test`. + +## Publishing + +- Ensure you are on the master branch locally. +- Update `CHANGELOG.md` and commit. +- Run the following: + + ```sh + yarn publish + git push --follow-tags + ``` + + Running `yarn publish` shall: + + - Bump the version in package.json (asking you for the new version number) + - Create a new commit containing that version bump in package.json + - Create a tag for that commit + - Publish to the npm repository + + Running `git push --follow-tags` shall: + + - Push the commit and tag to GitHub diff --git a/node_modules/prettier-linter-helpers/.prettierignore b/node_modules/prettier-linter-helpers/.prettierignore new file mode 100644 index 0000000..ec6d3cd --- /dev/null +++ b/node_modules/prettier-linter-helpers/.prettierignore @@ -0,0 +1 @@ +package.json diff --git a/node_modules/prettier-linter-helpers/.prettierrc b/node_modules/prettier-linter-helpers/.prettierrc new file mode 100644 index 0000000..6a5acb6 --- /dev/null +++ b/node_modules/prettier-linter-helpers/.prettierrc @@ -0,0 +1,6 @@ +{ + "arrowParens": "always", + "singleQuote": true, + "trailingComma": "es5", + "bracketSpacing": false +} diff --git a/node_modules/prettier-linter-helpers/.vscode/settings.json b/node_modules/prettier-linter-helpers/.vscode/settings.json new file mode 100644 index 0000000..d6983d7 --- /dev/null +++ b/node_modules/prettier-linter-helpers/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "editor.formatOnSave": true, + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/node_modules": true + }, + "prettier.eslintIntegration": true, + "search.exclude": { + "**/node_modules": true + } +} diff --git a/node_modules/prettier-linter-helpers/LICENSE.md b/node_modules/prettier-linter-helpers/LICENSE.md new file mode 100644 index 0000000..26864eb --- /dev/null +++ b/node_modules/prettier-linter-helpers/LICENSE.md @@ -0,0 +1,24 @@ +# The MIT License (MIT) + +Copyright © 2017 Andres Suarez and Teddy Katz + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the “Software”), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/prettier-linter-helpers/README.md b/node_modules/prettier-linter-helpers/README.md new file mode 100644 index 0000000..5852fdf --- /dev/null +++ b/node_modules/prettier-linter-helpers/README.md @@ -0,0 +1,14 @@ +# prettier-linter-helpers + +Helper functions for exposing prettier changes within linting tools. + +This package contains: + +- `showInvisibles(string)` - Replace invisible characters with ones you can see for + for easier diffing. +- `generateDifferences(source, prettierSource)` - Generate an array of + differences between two strings. + +## Inspiration + +This code was extracted from [eslint-plugin-prettier v2.7.0](https://github.com/prettier/eslint-plugin-prettier/blob/v2.7.0/eslint-plugin-prettier.js#L85-L215) diff --git a/node_modules/prettier-linter-helpers/index.js b/node_modules/prettier-linter-helpers/index.js new file mode 100644 index 0000000..0191646 --- /dev/null +++ b/node_modules/prettier-linter-helpers/index.js @@ -0,0 +1,145 @@ +const diff = require('fast-diff'); + +const LINE_ENDING_RE = /\r\n|[\r\n\u2028\u2029]/; + +/** + * Converts invisible characters to a commonly recognizable visible form. + * @param {string} str - The string with invisibles to convert. + * @returns {string} The converted string. + */ +function showInvisibles(str) { + let ret = ''; + for (let i = 0; i < str.length; i++) { + switch (str[i]) { + case ' ': + ret += '·'; // Middle Dot, \u00B7 + break; + case '\n': + ret += '⏎'; // Return Symbol, \u23ce + break; + case '\t': + ret += '↹'; // Left Arrow To Bar Over Right Arrow To Bar, \u21b9 + break; + case '\r': + ret += '␍'; // Carriage Return Symbol, \u240D + break; + default: + ret += str[i]; + break; + } + } + return ret; +} + +/** + * Generate results for differences between source code and formatted version. + * + * @param {string} source - The original source. + * @param {string} prettierSource - The Prettier formatted source. + * @returns {Array} - An array containing { operation, offset, insertText, deleteText } + */ +function generateDifferences(source, prettierSource) { + // fast-diff returns the differences between two texts as a series of + // INSERT, DELETE or EQUAL operations. The results occur only in these + // sequences: + // /-> INSERT -> EQUAL + // EQUAL | /-> EQUAL + // \-> DELETE | + // \-> INSERT -> EQUAL + // Instead of reporting issues at each INSERT or DELETE, certain sequences + // are batched together and are reported as a friendlier "replace" operation: + // - A DELETE immediately followed by an INSERT. + // - Any number of INSERTs and DELETEs where the joining EQUAL of one's end + // and another's beginning does not have line endings (i.e. issues that occur + // on contiguous lines). + + const results = diff(source, prettierSource); + const differences = []; + + const batch = []; + let offset = 0; // NOTE: INSERT never advances the offset. + while (results.length) { + const result = results.shift(); + const op = result[0]; + const text = result[1]; + switch (op) { + case diff.INSERT: + case diff.DELETE: + batch.push(result); + break; + case diff.EQUAL: + if (results.length) { + if (batch.length) { + if (LINE_ENDING_RE.test(text)) { + flush(); + offset += text.length; + } else { + batch.push(result); + } + } else { + offset += text.length; + } + } + break; + default: + throw new Error(`Unexpected fast-diff operation "${op}"`); + } + if (batch.length && !results.length) { + flush(); + } + } + + return differences; + + function flush() { + let aheadDeleteText = ''; + let aheadInsertText = ''; + while (batch.length) { + const next = batch.shift(); + const op = next[0]; + const text = next[1]; + switch (op) { + case diff.INSERT: + aheadInsertText += text; + break; + case diff.DELETE: + aheadDeleteText += text; + break; + case diff.EQUAL: + aheadDeleteText += text; + aheadInsertText += text; + break; + } + } + if (aheadDeleteText && aheadInsertText) { + differences.push({ + offset, + operation: generateDifferences.REPLACE, + insertText: aheadInsertText, + deleteText: aheadDeleteText, + }); + } else if (!aheadDeleteText && aheadInsertText) { + differences.push({ + offset, + operation: generateDifferences.INSERT, + insertText: aheadInsertText, + }); + } else if (aheadDeleteText && !aheadInsertText) { + differences.push({ + offset, + operation: generateDifferences.DELETE, + deleteText: aheadDeleteText, + }); + } + offset += aheadDeleteText.length; + } +} + +generateDifferences.INSERT = 'insert'; +generateDifferences.DELETE = 'delete'; +generateDifferences.REPLACE = 'replace'; + +module.exports = { + showInvisibles, + generateDifferences, +}; diff --git a/node_modules/prettier-linter-helpers/package.json b/node_modules/prettier-linter-helpers/package.json new file mode 100644 index 0000000..38434a0 --- /dev/null +++ b/node_modules/prettier-linter-helpers/package.json @@ -0,0 +1,38 @@ +{ + "name": "prettier-linter-helpers", + "version": "1.0.0", + "description": "Utilities to help expose prettier output in linting tools", + "contributors": [ + "Ben Scott", + "Teddy Katz" + ], + "main": "index.js", + "license": "MIT", + "scripts": { + "lint": "eslint .", + "test": "npm run lint && mocha", + "format": "yarn run prettier '**/*.{js,json,md,yml}' --write && yarn run lint --fix" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/prettier/prettier-linter-helpers.git" + }, + "bugs": { + "url": "https://github.com/prettier/prettier-linter-helpers/issues" + }, + "homepage": "https://github.com/prettier/prettier-linter-helpers#readme", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "devDependencies": { + "eslint": "^5.6.1", + "eslint-config-prettier": "^3.1.0", + "eslint-plugin-node": "^7.0.1", + "eslint-plugin-prettier": "^2.7.0", + "mocha": "^5.2.0", + "prettier": "^1.14.3" + }, + "engines": { + "node": ">=6.0.0" + } +} diff --git a/node_modules/prettier-linter-helpers/test/index.test.js b/node_modules/prettier-linter-helpers/test/index.test.js new file mode 100644 index 0000000..6109161 --- /dev/null +++ b/node_modules/prettier-linter-helpers/test/index.test.js @@ -0,0 +1,29 @@ +const {showInvisibles, generateDifferences} = require('..'); +const assert = require('assert'); + +describe('showInvisibles', () => { + it('shows invisibles', () => { + assert.strictEqual(showInvisibles('1 2\n3\t4\r5'), '1·2⏎3↹4␍5'); + }); +}); + +describe('generateDifferences', () => { + it('operation: insert', () => { + const differences = generateDifferences('abc', 'abcdef'); + assert.deepStrictEqual(differences, [ + {operation: 'insert', offset: 3, insertText: 'def'}, + ]); + }); + it('operation: delete', () => { + const differences = generateDifferences('abcdef', 'abc'); + assert.deepStrictEqual(differences, [ + {operation: 'delete', offset: 3, deleteText: 'def'}, + ]); + }); + it('operation: replace', () => { + const differences = generateDifferences('abc', 'def'); + assert.deepStrictEqual(differences, [ + {operation: 'replace', offset: 0, deleteText: 'abc', insertText: 'def'}, + ]); + }); +}); diff --git a/node_modules/prettier/LICENSE b/node_modules/prettier/LICENSE new file mode 100644 index 0000000..d0d03cd --- /dev/null +++ b/node_modules/prettier/LICENSE @@ -0,0 +1,6001 @@ +# Prettier license + +Prettier is released under the MIT license: + +Copyright © James Long and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## Licenses of bundled dependencies + +The published Prettier artifact additionally contains code with the following licenses: +MIT, ISC, BSD-2-Clause, BSD-3-Clause, Apache-2.0, 0BSD + +## Bundled dependencies + +### @angular/compiler@v12.2.16 + +License: MIT +By: angular +Repository: + +---------------------------------------- + +### @babel/code-frame@v7.16.7 + +License: MIT +By: The Babel Team +Repository: + +> MIT License +> +> Copyright (c) 2014-present Sebastian McKenzie and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### @babel/helper-validator-identifier@v7.16.7 + +License: MIT +By: The Babel Team +Repository: + +> MIT License +> +> Copyright (c) 2014-present Sebastian McKenzie and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### @babel/highlight@v7.16.10 + +License: MIT +By: The Babel Team +Repository: + +> MIT License +> +> Copyright (c) 2014-present Sebastian McKenzie and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### @babel/parser@v7.18.0 + +License: MIT +By: The Babel Team +Repository: + +> Copyright (C) 2012-2014 by various contributors (see AUTHORS) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### @glimmer/env@v0.1.7 + +License: MIT + +> Copyright (c) 2017 Martin Muñoz and contributors. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +> of the Software, and to permit persons to whom the Software is furnished to do +> so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### @glimmer/syntax@v0.84.2 + +License: MIT + +> Copyright (c) 2015 Tilde, Inc. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +> of the Software, and to permit persons to whom the Software is furnished to do +> so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### @glimmer/util@v0.84.2 + +License: MIT + +> Copyright (c) 2015 Tilde, Inc. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +> of the Software, and to permit persons to whom the Software is furnished to do +> so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### @handlebars/parser@v2.0.0 + +License: ISC +Repository: + +---------------------------------------- + +### @iarna/toml@v2.2.5 + +License: ISC +By: Rebecca Turner +Repository: + +> Copyright (c) 2016, Rebecca Turner +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### @nodelib/fs.scandir@v2.1.5 + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### @nodelib/fs.stat@v2.0.5 + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### @nodelib/fs.walk@v1.2.8 + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### @typescript-eslint/types@v5.27.0 + +License: MIT +Repository: + +> MIT License +> +> Copyright (c) 2019 TypeScript ESLint and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### @typescript-eslint/typescript-estree@v5.27.0 + +License: BSD-2-Clause +Repository: + +> TypeScript ESTree +> +> Originally extracted from: +> +> TypeScript ESLint Parser +> Copyright JS Foundation and other contributors, https://js.foundation +> +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions are met: +> +> * Redistributions of source code must retain the above copyright +> notice, this list of conditions and the following disclaimer. +> * Redistributions in binary form must reproduce the above copyright +> notice, this list of conditions and the following disclaimer in the +> documentation and/or other materials provided with the distribution. +> +> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +> ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +> DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +> (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +> LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +> ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +> THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +### @typescript-eslint/visitor-keys@v5.27.0 + +License: MIT +Repository: + +> MIT License +> +> Copyright (c) 2019 TypeScript ESLint and other contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### acorn@v8.7.0 + +License: MIT +Repository: + +> MIT License +> +> Copyright (C) 2012-2020 by various contributors (see AUTHORS) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### acorn-jsx@v5.3.2 + +License: MIT +Repository: + +> Copyright (C) 2012-2017 by Ingvar Stepanyan +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### aggregate-error@v3.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### angular-estree-parser@v2.5.1 + +License: MIT +By: Ika + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### angular-html-parser@v1.8.0 + +License: MIT +By: Ika + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### ansi-regex@v6.0.1 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### ansi-styles@v3.2.1 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### array-union@v2.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### bail@v1.0.5 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### balanced-match@v1.0.2 + +License: MIT +By: Julian Gruber +Repository: + +> (MIT) +> +> Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +> of the Software, and to permit persons to whom the Software is furnished to do +> so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### brace-expansion@v1.1.11 + +License: MIT +By: Julian Gruber +Repository: + +> MIT License +> +> Copyright (c) 2013 Julian Gruber +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### braces@v3.0.2 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2014-2018, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### camelcase@v6.3.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### ccount@v1.1.0 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### chalk@v2.4.2 + +License: MIT + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### chalk@v5.0.1 + +License: MIT + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### character-entities@v1.2.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### character-entities-legacy@v1.1.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### character-reference-invalid@v1.1.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### ci-info@v3.3.0 + +License: MIT +By: Thomas Watson Steen +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2016-2021 Thomas Watson Steen +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### clean-stack@v2.2.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### clone@v1.0.4 + +License: MIT +By: Paul Vorbach +Repository: + +> Copyright © 2011-2015 Paul Vorbach +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the “Software”), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### collapse-white-space@v1.0.6 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### color-convert@v1.9.3 + +License: MIT +By: Heather Arthur + +> Copyright (c) 2011-2016 Heather Arthur +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### color-name@v1.1.3 + +License: MIT +By: DY +Repository: + +> The MIT License (MIT) +> Copyright (c) 2015 Dmitry Ivanov +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### commondir@v1.0.1 + +License: MIT +By: James Halliday +Repository: + +> The MIT License +> +> Copyright (c) 2013 James Halliday (mail@substack.net) +> +> Permission is hereby granted, free of charge, +> to any person obtaining a copy of this software and +> associated documentation files (the "Software"), to +> deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, +> merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom +> the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice +> shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +> ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### concat-map@v0.0.1 + +License: MIT +By: James Halliday +Repository: + +> This software is released under the MIT license: +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### cosmiconfig@v7.0.1 + +License: MIT +By: David Clark +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2015 David Clark +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### cross-spawn@v7.0.3 + +License: MIT +By: André Cruz +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2018 Made With MOXY Lda +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### crypto-random-string@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### css-units-list@v1.1.0 + +License: MIT +By: fisker Cheung + +> MIT License +> +> Copyright (c) fisker Cheung (https://www.fiskercheung.com/) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### dashify@v2.0.0 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2015-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### debug@v4.3.4 + +License: MIT +By: Josh Junon +Repository: + +> (The MIT License) +> +> Copyright (c) 2014-2017 TJ Holowaychuk +> Copyright (c) 2018-2021 Josh Junon +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software +> and associated documentation files (the 'Software'), to deal in the Software without restriction, +> including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +> and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial +> portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +> LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### defaults@v1.0.3 + +License: MIT +By: Elijah Insua +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2015 Elijah Insua +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### del@v6.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### detect-newline@v3.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### diff@v5.0.0 + +License: BSD-3-Clause +Repository: + +> Software License Agreement (BSD License) +> +> Copyright (c) 2009-2015, Kevin Decker +> +> All rights reserved. +> +> Redistribution and use of this software in source and binary forms, with or without modification, +> are permitted provided that the following conditions are met: +> +> * Redistributions of source code must retain the above +> copyright notice, this list of conditions and the +> following disclaimer. +> +> * Redistributions in binary form must reproduce the above +> copyright notice, this list of conditions and the +> following disclaimer in the documentation and/or other +> materials provided with the distribution. +> +> * Neither the name of Kevin Decker nor the names of its +> contributors may be used to endorse or promote products +> derived from this software without specific prior +> written permission. +> +> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +> IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +> CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +> DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +> IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +> OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +### dir-glob@v3.0.1 + +License: MIT +By: Kevin Mårtensson + +> MIT License +> +> Copyright (c) Kevin Mårtensson (github.com/kevva) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### editorconfig@v0.15.3 + +License: MIT +By: EditorConfig Team +Repository: + +> Copyright © 2012 EditorConfig Team +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the “Software”), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### editorconfig-to-prettier@v0.2.0 + +License: ISC +By: Joseph Frazier +Repository: + +---------------------------------------- + +### emoji-regex@v9.2.2 + +License: MIT +By: Mathias Bynens +Repository: + +> Copyright Mathias Bynens +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### error-ex@v1.3.2 + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2015 JD Ballard +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### escape-string-regexp@v1.0.5 + +License: MIT +By: Sindre Sorhus + +> The MIT License (MIT) +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### escape-string-regexp@v5.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### eslint-visitor-keys@v3.3.0 + +License: Apache-2.0 +By: Toru Nagashima + +> Apache License +> Version 2.0, January 2004 +> http://www.apache.org/licenses/ +> +> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +> +> 1. Definitions. +> +> "License" shall mean the terms and conditions for use, reproduction, +> and distribution as defined by Sections 1 through 9 of this document. +> +> "Licensor" shall mean the copyright owner or entity authorized by +> the copyright owner that is granting the License. +> +> "Legal Entity" shall mean the union of the acting entity and all +> other entities that control, are controlled by, or are under common +> control with that entity. For the purposes of this definition, +> "control" means (i) the power, direct or indirect, to cause the +> direction or management of such entity, whether by contract or +> otherwise, or (ii) ownership of fifty percent (50%) or more of the +> outstanding shares, or (iii) beneficial ownership of such entity. +> +> "You" (or "Your") shall mean an individual or Legal Entity +> exercising permissions granted by this License. +> +> "Source" form shall mean the preferred form for making modifications, +> including but not limited to software source code, documentation +> source, and configuration files. +> +> "Object" form shall mean any form resulting from mechanical +> transformation or translation of a Source form, including but +> not limited to compiled object code, generated documentation, +> and conversions to other media types. +> +> "Work" shall mean the work of authorship, whether in Source or +> Object form, made available under the License, as indicated by a +> copyright notice that is included in or attached to the work +> (an example is provided in the Appendix below). +> +> "Derivative Works" shall mean any work, whether in Source or Object +> form, that is based on (or derived from) the Work and for which the +> editorial revisions, annotations, elaborations, or other modifications +> represent, as a whole, an original work of authorship. For the purposes +> of this License, Derivative Works shall not include works that remain +> separable from, or merely link (or bind by name) to the interfaces of, +> the Work and Derivative Works thereof. +> +> "Contribution" shall mean any work of authorship, including +> the original version of the Work and any modifications or additions +> to that Work or Derivative Works thereof, that is intentionally +> submitted to Licensor for inclusion in the Work by the copyright owner +> or by an individual or Legal Entity authorized to submit on behalf of +> the copyright owner. For the purposes of this definition, "submitted" +> means any form of electronic, verbal, or written communication sent +> to the Licensor or its representatives, including but not limited to +> communication on electronic mailing lists, source code control systems, +> and issue tracking systems that are managed by, or on behalf of, the +> Licensor for the purpose of discussing and improving the Work, but +> excluding communication that is conspicuously marked or otherwise +> designated in writing by the copyright owner as "Not a Contribution." +> +> "Contributor" shall mean Licensor and any individual or Legal Entity +> on behalf of whom a Contribution has been received by Licensor and +> subsequently incorporated within the Work. +> +> 2. Grant of Copyright License. Subject to the terms and conditions of +> this License, each Contributor hereby grants to You a perpetual, +> worldwide, non-exclusive, no-charge, royalty-free, irrevocable +> copyright license to reproduce, prepare Derivative Works of, +> publicly display, publicly perform, sublicense, and distribute the +> Work and such Derivative Works in Source or Object form. +> +> 3. Grant of Patent License. Subject to the terms and conditions of +> this License, each Contributor hereby grants to You a perpetual, +> worldwide, non-exclusive, no-charge, royalty-free, irrevocable +> (except as stated in this section) patent license to make, have made, +> use, offer to sell, sell, import, and otherwise transfer the Work, +> where such license applies only to those patent claims licensable +> by such Contributor that are necessarily infringed by their +> Contribution(s) alone or by combination of their Contribution(s) +> with the Work to which such Contribution(s) was submitted. If You +> institute patent litigation against any entity (including a +> cross-claim or counterclaim in a lawsuit) alleging that the Work +> or a Contribution incorporated within the Work constitutes direct +> or contributory patent infringement, then any patent licenses +> granted to You under this License for that Work shall terminate +> as of the date such litigation is filed. +> +> 4. Redistribution. You may reproduce and distribute copies of the +> Work or Derivative Works thereof in any medium, with or without +> modifications, and in Source or Object form, provided that You +> meet the following conditions: +> +> (a) You must give any other recipients of the Work or +> Derivative Works a copy of this License; and +> +> (b) You must cause any modified files to carry prominent notices +> stating that You changed the files; and +> +> (c) You must retain, in the Source form of any Derivative Works +> that You distribute, all copyright, patent, trademark, and +> attribution notices from the Source form of the Work, +> excluding those notices that do not pertain to any part of +> the Derivative Works; and +> +> (d) If the Work includes a "NOTICE" text file as part of its +> distribution, then any Derivative Works that You distribute must +> include a readable copy of the attribution notices contained +> within such NOTICE file, excluding those notices that do not +> pertain to any part of the Derivative Works, in at least one +> of the following places: within a NOTICE text file distributed +> as part of the Derivative Works; within the Source form or +> documentation, if provided along with the Derivative Works; or, +> within a display generated by the Derivative Works, if and +> wherever such third-party notices normally appear. The contents +> of the NOTICE file are for informational purposes only and +> do not modify the License. You may add Your own attribution +> notices within Derivative Works that You distribute, alongside +> or as an addendum to the NOTICE text from the Work, provided +> that such additional attribution notices cannot be construed +> as modifying the License. +> +> You may add Your own copyright statement to Your modifications and +> may provide additional or different license terms and conditions +> for use, reproduction, or distribution of Your modifications, or +> for any such Derivative Works as a whole, provided Your use, +> reproduction, and distribution of the Work otherwise complies with +> the conditions stated in this License. +> +> 5. Submission of Contributions. Unless You explicitly state otherwise, +> any Contribution intentionally submitted for inclusion in the Work +> by You to the Licensor shall be under the terms and conditions of +> this License, without any additional terms or conditions. +> Notwithstanding the above, nothing herein shall supersede or modify +> the terms of any separate license agreement you may have executed +> with Licensor regarding such Contributions. +> +> 6. Trademarks. This License does not grant permission to use the trade +> names, trademarks, service marks, or product names of the Licensor, +> except as required for reasonable and customary use in describing the +> origin of the Work and reproducing the content of the NOTICE file. +> +> 7. Disclaimer of Warranty. Unless required by applicable law or +> agreed to in writing, Licensor provides the Work (and each +> Contributor provides its Contributions) on an "AS IS" BASIS, +> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +> implied, including, without limitation, any warranties or conditions +> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +> PARTICULAR PURPOSE. You are solely responsible for determining the +> appropriateness of using or redistributing the Work and assume any +> risks associated with Your exercise of permissions under this License. +> +> 8. Limitation of Liability. In no event and under no legal theory, +> whether in tort (including negligence), contract, or otherwise, +> unless required by applicable law (such as deliberate and grossly +> negligent acts) or agreed to in writing, shall any Contributor be +> liable to You for damages, including any direct, indirect, special, +> incidental, or consequential damages of any character arising as a +> result of this License or out of the use or inability to use the +> Work (including but not limited to damages for loss of goodwill, +> work stoppage, computer failure or malfunction, or any and all +> other commercial damages or losses), even if such Contributor +> has been advised of the possibility of such damages. +> +> 9. Accepting Warranty or Additional Liability. While redistributing +> the Work or Derivative Works thereof, You may choose to offer, +> and charge a fee for, acceptance of support, warranty, indemnity, +> or other liability obligations and/or rights consistent with this +> License. However, in accepting such obligations, You may act only +> on Your own behalf and on Your sole responsibility, not on behalf +> of any other Contributor, and only if You agree to indemnify, +> defend, and hold each Contributor harmless for any liability +> incurred by, or claims asserted against, such Contributor by reason +> of your accepting any such warranty or additional liability. +> +> END OF TERMS AND CONDITIONS +> +> APPENDIX: How to apply the Apache License to your work. +> +> To apply the Apache License to your work, attach the following +> boilerplate notice, with the fields enclosed by brackets "{}" +> replaced with your own identifying information. (Don't include +> the brackets!) The text should be enclosed in the appropriate +> comment syntax for the file format. We also recommend that a +> file or class name and description of purpose be included on the +> same "printed page" as the copyright notice for easier +> identification within third-party archives. +> +> Copyright contributors +> +> 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. + +---------------------------------------- + +### espree@v9.3.1 + +License: BSD-2-Clause +By: Nicholas C. Zakas + +> BSD 2-Clause License +> +> Copyright (c) Open JS Foundation +> All rights reserved. +> +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions are met: +> +> 1. Redistributions of source code must retain the above copyright notice, this +> list of conditions and the following disclaimer. +> +> 2. Redistributions in binary form must reproduce the above copyright notice, +> this list of conditions and the following disclaimer in the documentation +> and/or other materials provided with the distribution. +> +> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +### esutils@v2.0.3 + +License: BSD-2-Clause +Repository: + +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions are met: +> +> * Redistributions of source code must retain the above copyright +> notice, this list of conditions and the following disclaimer. +> * Redistributions in binary form must reproduce the above copyright +> notice, this list of conditions and the following disclaimer in the +> documentation and/or other materials provided with the distribution. +> +> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +> ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +> DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +> (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +> LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +> ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +> THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +### execa@v6.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### extend@v3.0.2 + +License: MIT +By: Stefan Thomas +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2014 Stefan Thomas +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### fast-glob@v3.2.11 + +License: MIT +By: Denis Malinochkin + +> The MIT License (MIT) +> +> Copyright (c) Denis Malinochkin +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### fast-json-stable-stringify@v2.1.0 + +License: MIT +By: James Halliday +Repository: + +> This software is released under the MIT license: +> +> Copyright (c) 2017 Evgeny Poberezkin +> Copyright (c) 2013 James Halliday +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### fastq@v1.13.0 + +License: ISC +By: Matteo Collina +Repository: + +> Copyright (c) 2015-2020, Matteo Collina +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### file-entry-cache@v6.0.1 + +License: MIT +By: Roy Riojas + +> The MIT License (MIT) +> +> Copyright (c) 2015 Roy Riojas +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### fill-range@v7.0.1 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### find-cache-dir@v3.3.2 + +License: MIT + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### find-parent-dir@v0.3.1 + +License: MIT +By: Thorsten Lorenz +Repository: + +> Copyright 2013 Thorsten Lorenz. +> All rights reserved. +> +> Permission is hereby granted, free of charge, to any person +> obtaining a copy of this software and associated documentation +> files (the "Software"), to deal in the Software without +> restriction, including without limitation the rights to use, +> copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the +> Software is furnished to do so, subject to the following +> conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +> OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### find-up@v4.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### flat-cache@v3.0.4 + +License: MIT +By: Roy Riojas + +> The MIT License (MIT) +> +> Copyright (c) 2015 Roy Riojas +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### flatted@v3.2.5 + +License: ISC +By: Andrea Giammarchi +Repository: + +> ISC License +> +> Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +> AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +> OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +> PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### flatten@v1.0.3 + +License: MIT +By: Joshua Holbrook +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2016 Joshua Holbrook +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### flow-parser@v0.180.0 + +License: MIT +By: Flow Team +Repository: + +---------------------------------------- + +### fs.realpath@v1.0.0 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +> +> ---- +> +> This library bundles a version of the `fs.realpath` and `fs.realpathSync` +> methods from Node.js v0.10 under the terms of the Node.js MIT license. +> +> Node's license follows, also included at the header of `old.js` which contains +> the licensed code: +> +> Copyright Joyent, Inc. and other Node contributors. +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of this software and associated documentation files (the "Software"), +> to deal in the Software without restriction, including without limitation +> the rights to use, copy, modify, merge, publish, distribute, sublicense, +> and/or sell copies of the Software, and to permit persons to whom the +> Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +> DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### function-bind@v1.1.1 + +License: MIT +By: Raynos + +> Copyright (c) 2013 Raynos. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### get-stdin@v8.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### get-stream@v6.0.1 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### glob@v7.2.0 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +> +> ## Glob Logo +> +> Glob's logo created by Tanya Brassie , licensed +> under a Creative Commons Attribution-ShareAlike 4.0 International License +> https://creativecommons.org/licenses/by-sa/4.0/ + +---------------------------------------- + +### glob-parent@v5.1.2 + +License: ISC +By: Gulp Team + +> The ISC License +> +> Copyright (c) 2015, 2019 Elan Shanker +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### globby@v11.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### graceful-fs@v4.2.9 + +License: ISC +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### graphql@v15.6.1 + +License: MIT +Repository: + +> MIT License +> +> Copyright (c) GraphQL Contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### has@v1.0.3 + +License: MIT +By: Thiago de Arruda +Repository: + +> Copyright (c) 2013 Thiago de Arruda +> +> Permission is hereby granted, free of charge, to any person +> obtaining a copy of this software and associated documentation +> files (the "Software"), to deal in the Software without +> restriction, including without limitation the rights to use, +> copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the +> Software is furnished to do so, subject to the following +> conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +> OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### has-flag@v3.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### html-element-attributes@v3.1.0 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### html-tag-names@v2.0.1 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### html-void-elements@v2.0.1 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### human-signals@v3.0.1 + +License: Apache-2.0 +By: ehmicky + +> Apache License +> Version 2.0, January 2004 +> http://www.apache.org/licenses/ +> +> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +> +> 1. Definitions. +> +> "License" shall mean the terms and conditions for use, reproduction, +> and distribution as defined by Sections 1 through 9 of this document. +> +> "Licensor" shall mean the copyright owner or entity authorized by +> the copyright owner that is granting the License. +> +> "Legal Entity" shall mean the union of the acting entity and all +> other entities that control, are controlled by, or are under common +> control with that entity. For the purposes of this definition, +> "control" means (i) the power, direct or indirect, to cause the +> direction or management of such entity, whether by contract or +> otherwise, or (ii) ownership of fifty percent (50%) or more of the +> outstanding shares, or (iii) beneficial ownership of such entity. +> +> "You" (or "Your") shall mean an individual or Legal Entity +> exercising permissions granted by this License. +> +> "Source" form shall mean the preferred form for making modifications, +> including but not limited to software source code, documentation +> source, and configuration files. +> +> "Object" form shall mean any form resulting from mechanical +> transformation or translation of a Source form, including but +> not limited to compiled object code, generated documentation, +> and conversions to other media types. +> +> "Work" shall mean the work of authorship, whether in Source or +> Object form, made available under the License, as indicated by a +> copyright notice that is included in or attached to the work +> (an example is provided in the Appendix below). +> +> "Derivative Works" shall mean any work, whether in Source or Object +> form, that is based on (or derived from) the Work and for which the +> editorial revisions, annotations, elaborations, or other modifications +> represent, as a whole, an original work of authorship. For the purposes +> of this License, Derivative Works shall not include works that remain +> separable from, or merely link (or bind by name) to the interfaces of, +> the Work and Derivative Works thereof. +> +> "Contribution" shall mean any work of authorship, including +> the original version of the Work and any modifications or additions +> to that Work or Derivative Works thereof, that is intentionally +> submitted to Licensor for inclusion in the Work by the copyright owner +> or by an individual or Legal Entity authorized to submit on behalf of +> the copyright owner. For the purposes of this definition, "submitted" +> means any form of electronic, verbal, or written communication sent +> to the Licensor or its representatives, including but not limited to +> communication on electronic mailing lists, source code control systems, +> and issue tracking systems that are managed by, or on behalf of, the +> Licensor for the purpose of discussing and improving the Work, but +> excluding communication that is conspicuously marked or otherwise +> designated in writing by the copyright owner as "Not a Contribution." +> +> "Contributor" shall mean Licensor and any individual or Legal Entity +> on behalf of whom a Contribution has been received by Licensor and +> subsequently incorporated within the Work. +> +> 2. Grant of Copyright License. Subject to the terms and conditions of +> this License, each Contributor hereby grants to You a perpetual, +> worldwide, non-exclusive, no-charge, royalty-free, irrevocable +> copyright license to reproduce, prepare Derivative Works of, +> publicly display, publicly perform, sublicense, and distribute the +> Work and such Derivative Works in Source or Object form. +> +> 3. Grant of Patent License. Subject to the terms and conditions of +> this License, each Contributor hereby grants to You a perpetual, +> worldwide, non-exclusive, no-charge, royalty-free, irrevocable +> (except as stated in this section) patent license to make, have made, +> use, offer to sell, sell, import, and otherwise transfer the Work, +> where such license applies only to those patent claims licensable +> by such Contributor that are necessarily infringed by their +> Contribution(s) alone or by combination of their Contribution(s) +> with the Work to which such Contribution(s) was submitted. If You +> institute patent litigation against any entity (including a +> cross-claim or counterclaim in a lawsuit) alleging that the Work +> or a Contribution incorporated within the Work constitutes direct +> or contributory patent infringement, then any patent licenses +> granted to You under this License for that Work shall terminate +> as of the date such litigation is filed. +> +> 4. Redistribution. You may reproduce and distribute copies of the +> Work or Derivative Works thereof in any medium, with or without +> modifications, and in Source or Object form, provided that You +> meet the following conditions: +> +> (a) You must give any other recipients of the Work or +> Derivative Works a copy of this License; and +> +> (b) You must cause any modified files to carry prominent notices +> stating that You changed the files; and +> +> (c) You must retain, in the Source form of any Derivative Works +> that You distribute, all copyright, patent, trademark, and +> attribution notices from the Source form of the Work, +> excluding those notices that do not pertain to any part of +> the Derivative Works; and +> +> (d) If the Work includes a "NOTICE" text file as part of its +> distribution, then any Derivative Works that You distribute must +> include a readable copy of the attribution notices contained +> within such NOTICE file, excluding those notices that do not +> pertain to any part of the Derivative Works, in at least one +> of the following places: within a NOTICE text file distributed +> as part of the Derivative Works; within the Source form or +> documentation, if provided along with the Derivative Works; or, +> within a display generated by the Derivative Works, if and +> wherever such third-party notices normally appear. The contents +> of the NOTICE file are for informational purposes only and +> do not modify the License. You may add Your own attribution +> notices within Derivative Works that You distribute, alongside +> or as an addendum to the NOTICE text from the Work, provided +> that such additional attribution notices cannot be construed +> as modifying the License. +> +> You may add Your own copyright statement to Your modifications and +> may provide additional or different license terms and conditions +> for use, reproduction, or distribution of Your modifications, or +> for any such Derivative Works as a whole, provided Your use, +> reproduction, and distribution of the Work otherwise complies with +> the conditions stated in this License. +> +> 5. Submission of Contributions. Unless You explicitly state otherwise, +> any Contribution intentionally submitted for inclusion in the Work +> by You to the Licensor shall be under the terms and conditions of +> this License, without any additional terms or conditions. +> Notwithstanding the above, nothing herein shall supersede or modify +> the terms of any separate license agreement you may have executed +> with Licensor regarding such Contributions. +> +> 6. Trademarks. This License does not grant permission to use the trade +> names, trademarks, service marks, or product names of the Licensor, +> except as required for reasonable and customary use in describing the +> origin of the Work and reproducing the content of the NOTICE file. +> +> 7. Disclaimer of Warranty. Unless required by applicable law or +> agreed to in writing, Licensor provides the Work (and each +> Contributor provides its Contributions) on an "AS IS" BASIS, +> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +> implied, including, without limitation, any warranties or conditions +> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +> PARTICULAR PURPOSE. You are solely responsible for determining the +> appropriateness of using or redistributing the Work and assume any +> risks associated with Your exercise of permissions under this License. +> +> 8. Limitation of Liability. In no event and under no legal theory, +> whether in tort (including negligence), contract, or otherwise, +> unless required by applicable law (such as deliberate and grossly +> negligent acts) or agreed to in writing, shall any Contributor be +> liable to You for damages, including any direct, indirect, special, +> incidental, or consequential damages of any character arising as a +> result of this License or out of the use or inability to use the +> Work (including but not limited to damages for loss of goodwill, +> work stoppage, computer failure or malfunction, or any and all +> other commercial damages or losses), even if such Contributor +> has been advised of the possibility of such damages. +> +> 9. Accepting Warranty or Additional Liability. While redistributing +> the Work or Derivative Works thereof, You may choose to offer, +> and charge a fee for, acceptance of support, warranty, indemnity, +> or other liability obligations and/or rights consistent with this +> License. However, in accepting such obligations, You may act only +> on Your own behalf and on Your sole responsibility, not on behalf +> of any other Contributor, and only if You agree to indemnify, +> defend, and hold each Contributor harmless for any liability +> incurred by, or claims asserted against, such Contributor by reason +> of your accepting any such warranty or additional liability. +> +> END OF TERMS AND CONDITIONS +> +> APPENDIX: How to apply the Apache License to your work. +> +> To apply the Apache License to your work, attach the following +> boilerplate notice, with the fields enclosed by brackets "[]" +> replaced with your own identifying information. (Don't include +> the brackets!) The text should be enclosed in the appropriate +> comment syntax for the file format. We also recommend that a +> file or class name and description of purpose be included on the +> same "printed page" as the copyright notice for easier +> identification within third-party archives. +> +> Copyright 2021 ehmicky +> +> 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. + +---------------------------------------- + +### ignore@v5.2.0 + +License: MIT +By: kael +Repository: + +> Copyright (c) 2013 Kael Zhang , contributors +> http://kael.me/ +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### import-fresh@v3.3.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### indent-string@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### indexes-of@v1.0.1 + +License: MIT +By: Dominic Tarr +Repository: + +> Copyright (c) 2013 Dominic Tarr +> +> Permission is hereby granted, free of charge, +> to any person obtaining a copy of this software and +> associated documentation files (the "Software"), to +> deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, +> merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom +> the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice +> shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +> ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### inflight@v1.0.6 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### inherits@v2.0.4 + +License: ISC + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +> OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +> PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### is-alphabetical@v1.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-alphanumerical@v1.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-arrayish@v0.2.1 + +License: MIT +By: Qix +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2015 JD Ballard +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### is-buffer@v2.0.5 + +License: MIT +By: Feross Aboukhadijeh +Repository: + +> The MIT License (MIT) +> +> Copyright (c) Feross Aboukhadijeh +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### is-core-module@v2.8.1 + +License: MIT +By: Jordan Harband +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2014 Dave Justice +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-decimal@v1.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-extglob@v2.1.1 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2014-2016, Jon Schlinkert +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### is-fullwidth-code-point@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-glob@v4.0.3 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2014-2017, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### is-hexadecimal@v1.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-number@v7.0.0 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### is-path-cwd@v2.2.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-path-inside@v3.0.3 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-plain-obj@v2.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-stream@v3.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-whitespace-character@v1.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### is-word-character@v1.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### isexe@v2.0.0 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### jest-docblock@v27.5.1 + +License: MIT +Repository: + +> MIT License +> +> Copyright (c) Facebook, Inc. and its affiliates. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### js-tokens@v4.0.0 + +License: MIT +By: Simon Lydell + +> The MIT License (MIT) +> +> Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### json-parse-even-better-errors@v2.3.1 + +License: MIT +By: Kat Marchán + +> Copyright 2017 Kat Marchán +> Copyright npm, Inc. +> +> Permission is hereby granted, free of charge, to any person obtaining a +> copy of this software and associated documentation files (the "Software"), +> to deal in the Software without restriction, including without limitation +> the rights to use, copy, modify, merge, publish, distribute, sublicense, +> and/or sell copies of the Software, and to permit persons to whom the +> Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +> DEALINGS IN THE SOFTWARE. +> +> --- +> +> This library is a fork of 'better-json-errors' by Kat Marchán, extended and +> distributed under the terms of the MIT license above. + +---------------------------------------- + +### json5@v2.2.1 + +License: MIT +By: Aseem Kishore +Repository: + +> MIT License +> +> Copyright (c) 2012-2018 Aseem Kishore, and [others]. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> +> [others]: https://github.com/json5/json5/contributors + +---------------------------------------- + +### leven@v2.1.0 + +License: MIT +By: Sindre Sorhus + +> The MIT License (MIT) +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### leven@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### lines-and-columns@v1.2.4 + +License: MIT +By: Brian Donovan +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2015 Brian Donovan +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### lines-and-columns@v2.0.3 + +License: MIT +By: Brian Donovan +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2015 Brian Donovan +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### linguist-languages@v7.21.0 + +License: MIT +By: Ika + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### locate-path@v5.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### lru-cache@v4.1.5 + +License: ISC +By: Isaac Z. Schlueter + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### lru-cache@v6.0.0 + +License: ISC +By: Isaac Z. Schlueter + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### make-dir@v3.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### map-age-cleaner@v0.1.3 + +License: MIT +By: Sam Verschueren + +> MIT License +> +> Copyright (c) Sam Verschueren (github.com/SamVerschueren) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### markdown-escapes@v1.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### mem@v9.0.2 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### merge-stream@v2.0.0 + +License: MIT +By: Stephen Sugden + +> The MIT License (MIT) +> +> Copyright (c) Stephen Sugden (stephensugden.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### merge2@v1.4.1 + +License: MIT +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2014-2020 Teambition +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### meriyah@v4.2.1 + +License: ISC +By: Kenny F. +Repository: + +> ISC License +> +> Copyright (c) 2019 and later, KFlash and others. +> +> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### micromatch@v4.0.5 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### mimic-fn@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### minimatch@v3.1.2 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### minimist@v1.2.6 + +License: MIT +By: James Halliday +Repository: + +> This software is released under the MIT license: +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### ms@v2.1.2 + +License: MIT + +> The MIT License (MIT) +> +> Copyright (c) 2016 Zeit, Inc. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### n-readlines@v1.0.1 + +License: MIT +By: Yoan Arnaudov +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2013 Liucw +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### npm-run-path@v5.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### once@v1.4.0 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### onetime@v6.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### outdent@v0.8.0 + +License: MIT +By: Andrew Bradley +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2016 Andrew Bradley +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### p-defer@v1.0.0 + +License: MIT +By: Sindre Sorhus + +> The MIT License (MIT) +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### p-limit@v2.3.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### p-locate@v4.1.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### p-map@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### p-try@v2.2.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### parse-entities@v2.0.0 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### parse-json@v5.2.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### parse-srcset@v1.0.2 + +License: MIT +By: Alex Bell +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2014 Alex Bell +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### path-exists@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### path-is-absolute@v1.0.1 + +License: MIT +By: Sindre Sorhus + +> The MIT License (MIT) +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### path-key@v3.1.1 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### path-parse@v1.0.7 + +License: MIT +By: Javier Blanco +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2015 Javier Blanco +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### path-type@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### picocolors@v0.2.1 + +License: ISC +By: Alexey Raspopov + +> ISC License +> +> Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### picomatch@v2.3.1 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2017-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### pkg-dir@v4.2.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### please-upgrade-node@v3.2.0 + +License: MIT +By: typicode +Repository: + +> MIT License +> +> Copyright (c) 2017 +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### postcss@v7.0.39 + +License: MIT +By: Andrey Sitnik + +> The MIT License (MIT) +> +> Copyright 2013 Andrey Sitnik +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### postcss-less@v3.1.4 + +License: MIT +By: Denys Kniazevych + +> The MIT License (MIT) +> +> Copyright (c) 2013 Andrey Sitnik +> Copyright (c) 2016 Denys Kniazevych +> Copyright (c) 2016 Pat Sissons +> Copyright (c) 2017 Andrew Powell +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### postcss-media-query-parser@v0.2.3 + +License: MIT +By: dryoma +Repository: + +---------------------------------------- + +### postcss-scss@v2.1.1 + +License: MIT +By: Andrey Sitnik + +> The MIT License (MIT) +> +> Copyright 2013 Andrey Sitnik +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### postcss-selector-parser@v2.2.3 + +License: MIT +By: Ben Briggs + +> Copyright (c) Ben Briggs (http://beneb.info) +> +> Permission is hereby granted, free of charge, to any person +> obtaining a copy of this software and associated documentation +> files (the "Software"), to deal in the Software without +> restriction, including without limitation the rights to use, +> copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the +> Software is furnished to do so, subject to the following +> conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +> OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### postcss-values-parser@v2.0.1 + +License: MIT +By: Andrew Powell (shellscape) + +> Copyright (c) Andrew Powell +> +> Permission is hereby granted, free of charge, to any person +> obtaining a copy of this software and associated documentation +> files (the "Software"), to deal in the Software without +> restriction, including without limitation the rights to use, +> copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the +> Software is furnished to do so, subject to the following +> conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +> OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### pseudomap@v1.0.2 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### queue-microtask@v1.2.3 + +License: MIT +By: Feross Aboukhadijeh +Repository: + +> The MIT License (MIT) +> +> Copyright (c) Feross Aboukhadijeh +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### remark-footnotes@v2.0.0 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2020 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### remark-math@v3.0.1 + +License: MIT +By: Junyoung Choi + +---------------------------------------- + +### remark-parse@v8.0.3 + +License: MIT +By: Titus Wormer + +---------------------------------------- + +### repeat-string@v1.6.1 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2014-2016, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### resolve@v1.22.0 + +License: MIT +By: James Halliday +Repository: + +> MIT License +> +> Copyright (c) 2012 James Halliday +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### resolve-from@v4.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### reusify@v1.0.4 + +License: MIT +By: Matteo Collina +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2015 Matteo Collina +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### rimraf@v3.0.2 + +License: ISC +By: Isaac Z. Schlueter + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### rollup-plugin-node-polyfills@v0.2.1 + +License: MIT +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2019 these people +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### run-parallel@v1.2.0 + +License: MIT +By: Feross Aboukhadijeh +Repository: + +> The MIT License (MIT) +> +> Copyright (c) Feross Aboukhadijeh +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### sdbm@v2.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### semver@v6.3.0 + +License: ISC + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### semver@v7.3.7 + +License: ISC +By: GitHub Inc. +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### semver-compare@v1.0.0 + +License: MIT +By: James Halliday +Repository: + +> This software is released under the MIT license: +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +> the Software, and to permit persons to whom the Software is furnished to do so, +> subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### shebang-command@v2.0.0 + +License: MIT +By: Kevin Mårtensson + +> MIT License +> +> Copyright (c) Kevin Mårtensson (github.com/kevva) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### shebang-regex@v3.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### sigmund@v1.0.1 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### signal-exit@v3.0.7 + +License: ISC +By: Ben Coe +Repository: + +> The ISC License +> +> Copyright (c) 2015, Contributors +> +> Permission to use, copy, modify, and/or distribute this software +> for any purpose with or without fee is hereby granted, provided +> that the above copyright notice and this permission notice +> appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +> OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +> LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +> OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +> WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +> ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### simple-html-tokenizer@v0.5.11 + +License: MIT +Repository: + +> Copyright (c) 2014 Yehuda Katz and contributors +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +> of the Software, and to permit persons to whom the Software is furnished to do +> so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### slash@v3.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### state-toggle@v1.0.3 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### string-width@v5.0.1 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### strip-ansi@v7.0.1 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### strip-final-newline@v3.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### supports-color@v5.5.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### temp-dir@v2.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### tempy@v2.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### to-regex-range@v5.0.1 + +License: MIT +By: Jon Schlinkert + +> The MIT License (MIT) +> +> Copyright (c) 2015-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### trim@v0.0.1 + +By: TJ Holowaychuk + +---------------------------------------- + +### trim-trailing-lines@v1.1.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### trough@v1.0.5 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### tslib@v1.14.1 + +License: 0BSD +By: Microsoft Corp. +Repository: + +> Copyright (c) Microsoft Corporation. +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +> AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +> OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +> PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### tsutils@v3.21.0 + +License: MIT +By: Klaus Meinhardt +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2017 Klaus Meinhardt +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### typescript@v4.7.2 + +License: Apache-2.0 +By: Microsoft Corp. +Repository: + +> Apache License +> +> Version 2.0, January 2004 +> +> http://www.apache.org/licenses/ +> +> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +> +> 1. Definitions. +> +> "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. +> +> "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. +> +> "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. +> +> "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. +> +> "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. +> +> "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. +> +> "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). +> +> "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. +> +> "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." +> +> "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. +> +> 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. +> +> 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. +> +> 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +> +> You must give any other recipients of the Work or Derivative Works a copy of this License; and +> +> You must cause any modified files to carry prominent notices stating that You changed the files; and +> +> You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +> +> If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +> +> 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. +> +> 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. +> +> 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. +> +> 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. +> +> 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. +> +> END OF TERMS AND CONDITIONS + +---------------------------------------- + +### unherit@v1.1.3 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### unified@v9.2.1 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### uniq@v1.0.1 + +License: MIT +By: Mikola Lysenko +Repository: + +> The MIT License (MIT) +> +> Copyright (c) 2013 Mikola Lysenko +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### unique-string@v3.0.0 + +License: MIT +By: Sindre Sorhus + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### unist-util-is@v4.1.0 + +License: MIT +By: Titus Wormer + +> (The MIT license) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### unist-util-remove-position@v2.0.1 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### unist-util-stringify-position@v2.0.3 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### unist-util-visit@v2.0.3 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### unist-util-visit-parents@v3.1.1 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### vfile@v4.2.1 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2015 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### vfile-location@v3.2.0 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2016 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### vfile-message@v2.0.4 + +License: MIT +By: Titus Wormer + +> (The MIT License) +> +> Copyright (c) 2017 Titus Wormer +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> 'Software'), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------- + +### vnopts@v1.0.2 + +License: MIT +By: Ika + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +---------------------------------------- + +### wcwidth@v1.0.1 + +License: MIT +By: Tim Oxley +Repository: + +> wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation +> ======================================================================= +> +> Copyright (C) 2012 by Jun Woong. +> +> This package is a JavaScript porting of `wcwidth()` implementation +> [by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c). +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of +> this software and associated documentation files (the "Software"), to deal in +> the Software without restriction, including without limitation the rights to +> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +> of the Software, and to permit persons to whom the Software is furnished to do +> so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> +> THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +> INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR +> OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +> PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +> BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +> IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +> ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +> POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------- + +### which@v2.0.2 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### wrappy@v1.0.2 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### xtend@v4.0.2 + +License: MIT +By: Raynos + +> The MIT License (MIT) +> Copyright (c) 2012-2014 Raynos. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +---------------------------------------- + +### yallist@v2.1.2 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### yallist@v4.0.0 + +License: ISC +By: Isaac Z. Schlueter +Repository: + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter and Contributors +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---------------------------------------- + +### yaml@v1.10.2 + +License: ISC +By: Eemeli Aro + +> Copyright 2018 Eemeli Aro +> +> Permission to use, copy, modify, and/or distribute this software for any purpose +> with or without fee is hereby granted, provided that the above copyright notice +> and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +> OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +> TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +> THIS SOFTWARE. + +---------------------------------------- + +### yaml-unist-parser@v1.3.1 + +License: MIT +By: Ika + +> MIT License +> +> Copyright (c) Ika (https://github.com/ikatyang) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. diff --git a/node_modules/prettier/README.md b/node_modules/prettier/README.md new file mode 100644 index 0000000..943299e --- /dev/null +++ b/node_modules/prettier/README.md @@ -0,0 +1,109 @@ +![Prettier Banner](https://unpkg.com/prettier-logo@1.0.3/images/prettier-banner-light.svg) + +

Opinionated Code Formatter

+ +

+ + JavaScript + · TypeScript + · Flow + · JSX + · JSON + +
+ + CSS + · SCSS + · Less + +
+ + HTML + · Vue + · Angular + +
+ + GraphQL + · Markdown + · YAML + +
+ + + Your favorite language? + + +

+ +

+ + Github Actions Build Status + + Github Actions Build Status + + Github Actions Build Status + + Codecov Coverage Status + + Blazing Fast +
+ + npm version + + weekly downloads from npm + + code style: prettier + + Follow Prettier on Twitter +

+ +## Intro + +Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary. + +### Input + + +```js +foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne()); +``` + +### Output + +```js +foo( + reallyLongArg(), + omgSoManyParameters(), + IShouldRefactorThis(), + isThereSeriouslyAnotherOne() +); +``` + +Prettier can be run [in your editor](https://prettier.io/docs/en/editors.html) on-save, in a [pre-commit hook](https://prettier.io/docs/en/precommit.html), or in [CI environments](https://prettier.io/docs/en/cli.html#list-different) to ensure your codebase has a consistent style without devs ever having to post a nit-picky comment on a code review ever again! + +--- + +**[Documentation](https://prettier.io/docs/en/)** + + +[Install](https://prettier.io/docs/en/install.html) · +[Options](https://prettier.io/docs/en/options.html) · +[CLI](https://prettier.io/docs/en/cli.html) · +[API](https://prettier.io/docs/en/api.html) + +**[Playground](https://prettier.io/playground/)** + +--- + +## Badge + +Show the world you're using _Prettier_ → [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) + +```md +[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md). diff --git a/node_modules/prettier/bin-prettier.js b/node_modules/prettier/bin-prettier.js new file mode 100755 index 0000000..f8a11fb --- /dev/null +++ b/node_modules/prettier/bin-prettier.js @@ -0,0 +1,62 @@ +#!/usr/bin/env node +"use strict"; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = function(cb, mod) { + return function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; +}; + +// node_modules/semver-compare/index.js +var require_semver_compare = __commonJS({ + "node_modules/semver-compare/index.js": function(exports2, module2) { + module2.exports = function cmp(a, b) { + var pa = a.split("."); + var pb = b.split("."); + for (var i = 0; i < 3; i++) { + var na = Number(pa[i]); + var nb = Number(pb[i]); + if (na > nb) + return 1; + if (nb > na) + return -1; + if (!isNaN(na) && isNaN(nb)) + return 1; + if (isNaN(na) && !isNaN(nb)) + return -1; + } + return 0; + }; + } +}); + +// node_modules/please-upgrade-node/index.js +var require_please_upgrade_node = __commonJS({ + "node_modules/please-upgrade-node/index.js": function(exports2, module2) { + var semverCompare = require_semver_compare(); + module2.exports = function pleaseUpgradeNode2(pkg, opts) { + var opts = opts || {}; + var requiredVersion = pkg.engines.node.replace(">=", ""); + var currentVersion = process.version.replace("v", ""); + if (semverCompare(currentVersion, requiredVersion) === -1) { + if (opts.message) { + console.error(opts.message(requiredVersion)); + } else { + console.error(pkg.name + " requires at least version " + requiredVersion + " of Node, please upgrade"); + } + if (opts.hasOwnProperty("exitCode")) { + process.exit(opts.exitCode); + } else { + process.exit(1); + } + } + }; + } +}); + +// bin/prettier.js +var pleaseUpgradeNode = require_please_upgrade_node(); +var packageJson = require("./package.json"); +pleaseUpgradeNode(packageJson); +var cli = require("./cli.js"); +module.exports = cli.run(process.argv.slice(2)); diff --git a/node_modules/prettier/cli.js b/node_modules/prettier/cli.js new file mode 100644 index 0000000..2e9f7ff --- /dev/null +++ b/node_modules/prettier/cli.js @@ -0,0 +1,15085 @@ +"use strict"; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +// node_modules/core-js/internals/global.js +var require_global = __commonJS({ + "node_modules/core-js/internals/global.js"(exports2, module2) { + var check = function(it) { + return it && it.Math == Math && it; + }; + module2.exports = check(typeof globalThis == "object" && globalThis) || check(typeof window == "object" && window) || check(typeof self == "object" && self) || check(typeof global == "object" && global) || function() { + return this; + }() || Function("return this")(); + } +}); + +// node_modules/core-js/internals/fails.js +var require_fails = __commonJS({ + "node_modules/core-js/internals/fails.js"(exports2, module2) { + module2.exports = function(exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + } +}); + +// node_modules/core-js/internals/descriptors.js +var require_descriptors = __commonJS({ + "node_modules/core-js/internals/descriptors.js"(exports2, module2) { + var fails = require_fails(); + module2.exports = !fails(function() { + return Object.defineProperty({}, 1, { get: function() { + return 7; + } })[1] != 7; + }); + } +}); + +// node_modules/core-js/internals/function-bind-native.js +var require_function_bind_native = __commonJS({ + "node_modules/core-js/internals/function-bind-native.js"(exports2, module2) { + var fails = require_fails(); + module2.exports = !fails(function() { + var test = function() { + }.bind(); + return typeof test != "function" || test.hasOwnProperty("prototype"); + }); + } +}); + +// node_modules/core-js/internals/function-call.js +var require_function_call = __commonJS({ + "node_modules/core-js/internals/function-call.js"(exports2, module2) { + var NATIVE_BIND = require_function_bind_native(); + var call = Function.prototype.call; + module2.exports = NATIVE_BIND ? call.bind(call) : function() { + return call.apply(call, arguments); + }; + } +}); + +// node_modules/core-js/internals/object-property-is-enumerable.js +var require_object_property_is_enumerable = __commonJS({ + "node_modules/core-js/internals/object-property-is-enumerable.js"(exports2) { + "use strict"; + var $propertyIsEnumerable = {}.propertyIsEnumerable; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + exports2.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + } +}); + +// node_modules/core-js/internals/create-property-descriptor.js +var require_create_property_descriptor = __commonJS({ + "node_modules/core-js/internals/create-property-descriptor.js"(exports2, module2) { + module2.exports = function(bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value + }; + }; + } +}); + +// node_modules/core-js/internals/function-uncurry-this.js +var require_function_uncurry_this = __commonJS({ + "node_modules/core-js/internals/function-uncurry-this.js"(exports2, module2) { + var NATIVE_BIND = require_function_bind_native(); + var FunctionPrototype = Function.prototype; + var bind = FunctionPrototype.bind; + var call = FunctionPrototype.call; + var uncurryThis = NATIVE_BIND && bind.bind(call, call); + module2.exports = NATIVE_BIND ? function(fn) { + return fn && uncurryThis(fn); + } : function(fn) { + return fn && function() { + return call.apply(fn, arguments); + }; + }; + } +}); + +// node_modules/core-js/internals/classof-raw.js +var require_classof_raw = __commonJS({ + "node_modules/core-js/internals/classof-raw.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var toString = uncurryThis({}.toString); + var stringSlice = uncurryThis("".slice); + module2.exports = function(it) { + return stringSlice(toString(it), 8, -1); + }; + } +}); + +// node_modules/core-js/internals/indexed-object.js +var require_indexed_object = __commonJS({ + "node_modules/core-js/internals/indexed-object.js"(exports2, module2) { + var global2 = require_global(); + var uncurryThis = require_function_uncurry_this(); + var fails = require_fails(); + var classof = require_classof_raw(); + var Object2 = global2.Object; + var split = uncurryThis("".split); + module2.exports = fails(function() { + return !Object2("z").propertyIsEnumerable(0); + }) ? function(it) { + return classof(it) == "String" ? split(it, "") : Object2(it); + } : Object2; + } +}); + +// node_modules/core-js/internals/require-object-coercible.js +var require_require_object_coercible = __commonJS({ + "node_modules/core-js/internals/require-object-coercible.js"(exports2, module2) { + var global2 = require_global(); + var TypeError2 = global2.TypeError; + module2.exports = function(it) { + if (it == void 0) + throw TypeError2("Can't call method on " + it); + return it; + }; + } +}); + +// node_modules/core-js/internals/to-indexed-object.js +var require_to_indexed_object = __commonJS({ + "node_modules/core-js/internals/to-indexed-object.js"(exports2, module2) { + var IndexedObject = require_indexed_object(); + var requireObjectCoercible = require_require_object_coercible(); + module2.exports = function(it) { + return IndexedObject(requireObjectCoercible(it)); + }; + } +}); + +// node_modules/core-js/internals/is-callable.js +var require_is_callable = __commonJS({ + "node_modules/core-js/internals/is-callable.js"(exports2, module2) { + module2.exports = function(argument) { + return typeof argument == "function"; + }; + } +}); + +// node_modules/core-js/internals/is-object.js +var require_is_object = __commonJS({ + "node_modules/core-js/internals/is-object.js"(exports2, module2) { + var isCallable = require_is_callable(); + module2.exports = function(it) { + return typeof it == "object" ? it !== null : isCallable(it); + }; + } +}); + +// node_modules/core-js/internals/get-built-in.js +var require_get_built_in = __commonJS({ + "node_modules/core-js/internals/get-built-in.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var aFunction = function(argument) { + return isCallable(argument) ? argument : void 0; + }; + module2.exports = function(namespace, method) { + return arguments.length < 2 ? aFunction(global2[namespace]) : global2[namespace] && global2[namespace][method]; + }; + } +}); + +// node_modules/core-js/internals/object-is-prototype-of.js +var require_object_is_prototype_of = __commonJS({ + "node_modules/core-js/internals/object-is-prototype-of.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + module2.exports = uncurryThis({}.isPrototypeOf); + } +}); + +// node_modules/core-js/internals/engine-user-agent.js +var require_engine_user_agent = __commonJS({ + "node_modules/core-js/internals/engine-user-agent.js"(exports2, module2) { + var getBuiltIn = require_get_built_in(); + module2.exports = getBuiltIn("navigator", "userAgent") || ""; + } +}); + +// node_modules/core-js/internals/engine-v8-version.js +var require_engine_v8_version = __commonJS({ + "node_modules/core-js/internals/engine-v8-version.js"(exports2, module2) { + var global2 = require_global(); + var userAgent = require_engine_user_agent(); + var process2 = global2.process; + var Deno = global2.Deno; + var versions = process2 && process2.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match; + var version; + if (v8) { + match = v8.split("."); + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) + version = +match[1]; + } + } + module2.exports = version; + } +}); + +// node_modules/core-js/internals/native-symbol.js +var require_native_symbol = __commonJS({ + "node_modules/core-js/internals/native-symbol.js"(exports2, module2) { + var V8_VERSION = require_engine_v8_version(); + var fails = require_fails(); + module2.exports = !!Object.getOwnPropertySymbols && !fails(function() { + var symbol = Symbol(); + return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41; + }); + } +}); + +// node_modules/core-js/internals/use-symbol-as-uid.js +var require_use_symbol_as_uid = __commonJS({ + "node_modules/core-js/internals/use-symbol-as-uid.js"(exports2, module2) { + var NATIVE_SYMBOL = require_native_symbol(); + module2.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == "symbol"; + } +}); + +// node_modules/core-js/internals/is-symbol.js +var require_is_symbol = __commonJS({ + "node_modules/core-js/internals/is-symbol.js"(exports2, module2) { + var global2 = require_global(); + var getBuiltIn = require_get_built_in(); + var isCallable = require_is_callable(); + var isPrototypeOf = require_object_is_prototype_of(); + var USE_SYMBOL_AS_UID = require_use_symbol_as_uid(); + var Object2 = global2.Object; + module2.exports = USE_SYMBOL_AS_UID ? function(it) { + return typeof it == "symbol"; + } : function(it) { + var $Symbol = getBuiltIn("Symbol"); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object2(it)); + }; + } +}); + +// node_modules/core-js/internals/try-to-string.js +var require_try_to_string = __commonJS({ + "node_modules/core-js/internals/try-to-string.js"(exports2, module2) { + var global2 = require_global(); + var String2 = global2.String; + module2.exports = function(argument) { + try { + return String2(argument); + } catch (error) { + return "Object"; + } + }; + } +}); + +// node_modules/core-js/internals/a-callable.js +var require_a_callable = __commonJS({ + "node_modules/core-js/internals/a-callable.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var tryToString = require_try_to_string(); + var TypeError2 = global2.TypeError; + module2.exports = function(argument) { + if (isCallable(argument)) + return argument; + throw TypeError2(tryToString(argument) + " is not a function"); + }; + } +}); + +// node_modules/core-js/internals/get-method.js +var require_get_method = __commonJS({ + "node_modules/core-js/internals/get-method.js"(exports2, module2) { + var aCallable = require_a_callable(); + module2.exports = function(V, P) { + var func = V[P]; + return func == null ? void 0 : aCallable(func); + }; + } +}); + +// node_modules/core-js/internals/ordinary-to-primitive.js +var require_ordinary_to_primitive = __commonJS({ + "node_modules/core-js/internals/ordinary-to-primitive.js"(exports2, module2) { + var global2 = require_global(); + var call = require_function_call(); + var isCallable = require_is_callable(); + var isObject = require_is_object(); + var TypeError2 = global2.TypeError; + module2.exports = function(input, pref) { + var fn, val; + if (pref === "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) + return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) + return val; + if (pref !== "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) + return val; + throw TypeError2("Can't convert object to primitive value"); + }; + } +}); + +// node_modules/core-js/internals/is-pure.js +var require_is_pure = __commonJS({ + "node_modules/core-js/internals/is-pure.js"(exports2, module2) { + module2.exports = false; + } +}); + +// node_modules/core-js/internals/set-global.js +var require_set_global = __commonJS({ + "node_modules/core-js/internals/set-global.js"(exports2, module2) { + var global2 = require_global(); + var defineProperty = Object.defineProperty; + module2.exports = function(key, value) { + try { + defineProperty(global2, key, { value, configurable: true, writable: true }); + } catch (error) { + global2[key] = value; + } + return value; + }; + } +}); + +// node_modules/core-js/internals/shared-store.js +var require_shared_store = __commonJS({ + "node_modules/core-js/internals/shared-store.js"(exports2, module2) { + var global2 = require_global(); + var setGlobal = require_set_global(); + var SHARED = "__core-js_shared__"; + var store = global2[SHARED] || setGlobal(SHARED, {}); + module2.exports = store; + } +}); + +// node_modules/core-js/internals/shared.js +var require_shared = __commonJS({ + "node_modules/core-js/internals/shared.js"(exports2, module2) { + var IS_PURE = require_is_pure(); + var store = require_shared_store(); + (module2.exports = function(key, value) { + return store[key] || (store[key] = value !== void 0 ? value : {}); + })("versions", []).push({ + version: "3.22.2", + mode: IS_PURE ? "pure" : "global", + copyright: "\xA9 2014-2022 Denis Pushkarev (zloirock.ru)", + license: "https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE", + source: "https://github.com/zloirock/core-js" + }); + } +}); + +// node_modules/core-js/internals/to-object.js +var require_to_object = __commonJS({ + "node_modules/core-js/internals/to-object.js"(exports2, module2) { + var global2 = require_global(); + var requireObjectCoercible = require_require_object_coercible(); + var Object2 = global2.Object; + module2.exports = function(argument) { + return Object2(requireObjectCoercible(argument)); + }; + } +}); + +// node_modules/core-js/internals/has-own-property.js +var require_has_own_property = __commonJS({ + "node_modules/core-js/internals/has-own-property.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var toObject = require_to_object(); + var hasOwnProperty = uncurryThis({}.hasOwnProperty); + module2.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); + }; + } +}); + +// node_modules/core-js/internals/uid.js +var require_uid = __commonJS({ + "node_modules/core-js/internals/uid.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var id = 0; + var postfix = Math.random(); + var toString = uncurryThis(1 .toString); + module2.exports = function(key) { + return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString(++id + postfix, 36); + }; + } +}); + +// node_modules/core-js/internals/well-known-symbol.js +var require_well_known_symbol = __commonJS({ + "node_modules/core-js/internals/well-known-symbol.js"(exports2, module2) { + var global2 = require_global(); + var shared = require_shared(); + var hasOwn = require_has_own_property(); + var uid = require_uid(); + var NATIVE_SYMBOL = require_native_symbol(); + var USE_SYMBOL_AS_UID = require_use_symbol_as_uid(); + var WellKnownSymbolsStore = shared("wks"); + var Symbol2 = global2.Symbol; + var symbolFor = Symbol2 && Symbol2["for"]; + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol2 : Symbol2 && Symbol2.withoutSetter || uid; + module2.exports = function(name) { + if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == "string")) { + var description = "Symbol." + name; + if (NATIVE_SYMBOL && hasOwn(Symbol2, name)) { + WellKnownSymbolsStore[name] = Symbol2[name]; + } else if (USE_SYMBOL_AS_UID && symbolFor) { + WellKnownSymbolsStore[name] = symbolFor(description); + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol(description); + } + } + return WellKnownSymbolsStore[name]; + }; + } +}); + +// node_modules/core-js/internals/to-primitive.js +var require_to_primitive = __commonJS({ + "node_modules/core-js/internals/to-primitive.js"(exports2, module2) { + var global2 = require_global(); + var call = require_function_call(); + var isObject = require_is_object(); + var isSymbol = require_is_symbol(); + var getMethod = require_get_method(); + var ordinaryToPrimitive = require_ordinary_to_primitive(); + var wellKnownSymbol = require_well_known_symbol(); + var TypeError2 = global2.TypeError; + var TO_PRIMITIVE = wellKnownSymbol("toPrimitive"); + module2.exports = function(input, pref) { + if (!isObject(input) || isSymbol(input)) + return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === void 0) + pref = "default"; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) + return result; + throw TypeError2("Can't convert object to primitive value"); + } + if (pref === void 0) + pref = "number"; + return ordinaryToPrimitive(input, pref); + }; + } +}); + +// node_modules/core-js/internals/to-property-key.js +var require_to_property_key = __commonJS({ + "node_modules/core-js/internals/to-property-key.js"(exports2, module2) { + var toPrimitive = require_to_primitive(); + var isSymbol = require_is_symbol(); + module2.exports = function(argument) { + var key = toPrimitive(argument, "string"); + return isSymbol(key) ? key : key + ""; + }; + } +}); + +// node_modules/core-js/internals/document-create-element.js +var require_document_create_element = __commonJS({ + "node_modules/core-js/internals/document-create-element.js"(exports2, module2) { + var global2 = require_global(); + var isObject = require_is_object(); + var document = global2.document; + var EXISTS = isObject(document) && isObject(document.createElement); + module2.exports = function(it) { + return EXISTS ? document.createElement(it) : {}; + }; + } +}); + +// node_modules/core-js/internals/ie8-dom-define.js +var require_ie8_dom_define = __commonJS({ + "node_modules/core-js/internals/ie8-dom-define.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var fails = require_fails(); + var createElement = require_document_create_element(); + module2.exports = !DESCRIPTORS && !fails(function() { + return Object.defineProperty(createElement("div"), "a", { + get: function() { + return 7; + } + }).a != 7; + }); + } +}); + +// node_modules/core-js/internals/object-get-own-property-descriptor.js +var require_object_get_own_property_descriptor = __commonJS({ + "node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports2) { + var DESCRIPTORS = require_descriptors(); + var call = require_function_call(); + var propertyIsEnumerableModule = require_object_property_is_enumerable(); + var createPropertyDescriptor = require_create_property_descriptor(); + var toIndexedObject = require_to_indexed_object(); + var toPropertyKey = require_to_property_key(); + var hasOwn = require_has_own_property(); + var IE8_DOM_DEFINE = require_ie8_dom_define(); + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + exports2.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) + try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { + } + if (hasOwn(O, P)) + return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); + }; + } +}); + +// node_modules/core-js/internals/v8-prototype-define-bug.js +var require_v8_prototype_define_bug = __commonJS({ + "node_modules/core-js/internals/v8-prototype-define-bug.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var fails = require_fails(); + module2.exports = DESCRIPTORS && fails(function() { + return Object.defineProperty(function() { + }, "prototype", { + value: 42, + writable: false + }).prototype != 42; + }); + } +}); + +// node_modules/core-js/internals/an-object.js +var require_an_object = __commonJS({ + "node_modules/core-js/internals/an-object.js"(exports2, module2) { + var global2 = require_global(); + var isObject = require_is_object(); + var String2 = global2.String; + var TypeError2 = global2.TypeError; + module2.exports = function(argument) { + if (isObject(argument)) + return argument; + throw TypeError2(String2(argument) + " is not an object"); + }; + } +}); + +// node_modules/core-js/internals/object-define-property.js +var require_object_define_property = __commonJS({ + "node_modules/core-js/internals/object-define-property.js"(exports2) { + var global2 = require_global(); + var DESCRIPTORS = require_descriptors(); + var IE8_DOM_DEFINE = require_ie8_dom_define(); + var V8_PROTOTYPE_DEFINE_BUG = require_v8_prototype_define_bug(); + var anObject = require_an_object(); + var toPropertyKey = require_to_property_key(); + var TypeError2 = global2.TypeError; + var $defineProperty = Object.defineProperty; + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = "enumerable"; + var CONFIGURABLE = "configurable"; + var WRITABLE = "writable"; + exports2.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === "function" && P === "prototype" && "value" in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } + return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) + try { + return $defineProperty(O, P, Attributes); + } catch (error) { + } + if ("get" in Attributes || "set" in Attributes) + throw TypeError2("Accessors not supported"); + if ("value" in Attributes) + O[P] = Attributes.value; + return O; + }; + } +}); + +// node_modules/core-js/internals/create-non-enumerable-property.js +var require_create_non_enumerable_property = __commonJS({ + "node_modules/core-js/internals/create-non-enumerable-property.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var definePropertyModule = require_object_define_property(); + var createPropertyDescriptor = require_create_property_descriptor(); + module2.exports = DESCRIPTORS ? function(object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); + } : function(object, key, value) { + object[key] = value; + return object; + }; + } +}); + +// node_modules/core-js/internals/inspect-source.js +var require_inspect_source = __commonJS({ + "node_modules/core-js/internals/inspect-source.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var isCallable = require_is_callable(); + var store = require_shared_store(); + var functionToString = uncurryThis(Function.toString); + if (!isCallable(store.inspectSource)) { + store.inspectSource = function(it) { + return functionToString(it); + }; + } + module2.exports = store.inspectSource; + } +}); + +// node_modules/core-js/internals/native-weak-map.js +var require_native_weak_map = __commonJS({ + "node_modules/core-js/internals/native-weak-map.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var inspectSource = require_inspect_source(); + var WeakMap2 = global2.WeakMap; + module2.exports = isCallable(WeakMap2) && /native code/.test(inspectSource(WeakMap2)); + } +}); + +// node_modules/core-js/internals/shared-key.js +var require_shared_key = __commonJS({ + "node_modules/core-js/internals/shared-key.js"(exports2, module2) { + var shared = require_shared(); + var uid = require_uid(); + var keys = shared("keys"); + module2.exports = function(key) { + return keys[key] || (keys[key] = uid(key)); + }; + } +}); + +// node_modules/core-js/internals/hidden-keys.js +var require_hidden_keys = __commonJS({ + "node_modules/core-js/internals/hidden-keys.js"(exports2, module2) { + module2.exports = {}; + } +}); + +// node_modules/core-js/internals/internal-state.js +var require_internal_state = __commonJS({ + "node_modules/core-js/internals/internal-state.js"(exports2, module2) { + var NATIVE_WEAK_MAP = require_native_weak_map(); + var global2 = require_global(); + var uncurryThis = require_function_uncurry_this(); + var isObject = require_is_object(); + var createNonEnumerableProperty = require_create_non_enumerable_property(); + var hasOwn = require_has_own_property(); + var shared = require_shared_store(); + var sharedKey = require_shared_key(); + var hiddenKeys = require_hidden_keys(); + var OBJECT_ALREADY_INITIALIZED = "Object already initialized"; + var TypeError2 = global2.TypeError; + var WeakMap2 = global2.WeakMap; + var set; + var get; + var has; + var enforce = function(it) { + return has(it) ? get(it) : set(it, {}); + }; + var getterFor = function(TYPE) { + return function(it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError2("Incompatible receiver, " + TYPE + " required"); + } + return state; + }; + }; + if (NATIVE_WEAK_MAP || shared.state) { + store = shared.state || (shared.state = new WeakMap2()); + wmget = uncurryThis(store.get); + wmhas = uncurryThis(store.has); + wmset = uncurryThis(store.set); + set = function(it, metadata) { + if (wmhas(store, it)) + throw new TypeError2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset(store, it, metadata); + return metadata; + }; + get = function(it) { + return wmget(store, it) || {}; + }; + has = function(it) { + return wmhas(store, it); + }; + } else { + STATE = sharedKey("state"); + hiddenKeys[STATE] = true; + set = function(it, metadata) { + if (hasOwn(it, STATE)) + throw new TypeError2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function(it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function(it) { + return hasOwn(it, STATE); + }; + } + var store; + var wmget; + var wmhas; + var wmset; + var STATE; + module2.exports = { + set, + get, + has, + enforce, + getterFor + }; + } +}); + +// node_modules/core-js/internals/function-name.js +var require_function_name = __commonJS({ + "node_modules/core-js/internals/function-name.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var hasOwn = require_has_own_property(); + var FunctionPrototype = Function.prototype; + var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + var EXISTS = hasOwn(FunctionPrototype, "name"); + var PROPER = EXISTS && function something() { + }.name === "something"; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, "name").configurable); + module2.exports = { + EXISTS, + PROPER, + CONFIGURABLE + }; + } +}); + +// node_modules/core-js/internals/redefine.js +var require_redefine = __commonJS({ + "node_modules/core-js/internals/redefine.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var hasOwn = require_has_own_property(); + var createNonEnumerableProperty = require_create_non_enumerable_property(); + var setGlobal = require_set_global(); + var inspectSource = require_inspect_source(); + var InternalStateModule = require_internal_state(); + var CONFIGURABLE_FUNCTION_NAME = require_function_name().CONFIGURABLE; + var getInternalState = InternalStateModule.get; + var enforceInternalState = InternalStateModule.enforce; + var TEMPLATE = String(String).split("String"); + (module2.exports = function(O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var name = options && options.name !== void 0 ? options.name : key; + var state; + if (isCallable(value)) { + if (String(name).slice(0, 7) === "Symbol(") { + name = "[" + String(name).replace(/^Symbol\(([^)]*)\)/, "$1") + "]"; + } + if (!hasOwn(value, "name") || CONFIGURABLE_FUNCTION_NAME && value.name !== name) { + createNonEnumerableProperty(value, "name", name); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof name == "string" ? name : ""); + } + } + if (O === global2) { + if (simple) + O[key] = value; + else + setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) + O[key] = value; + else + createNonEnumerableProperty(O, key, value); + })(Function.prototype, "toString", function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); + }); + } +}); + +// node_modules/core-js/internals/to-integer-or-infinity.js +var require_to_integer_or_infinity = __commonJS({ + "node_modules/core-js/internals/to-integer-or-infinity.js"(exports2, module2) { + var ceil = Math.ceil; + var floor = Math.floor; + module2.exports = function(argument) { + var number = +argument; + return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); + }; + } +}); + +// node_modules/core-js/internals/to-absolute-index.js +var require_to_absolute_index = __commonJS({ + "node_modules/core-js/internals/to-absolute-index.js"(exports2, module2) { + var toIntegerOrInfinity = require_to_integer_or_infinity(); + var max = Math.max; + var min = Math.min; + module2.exports = function(index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); + }; + } +}); + +// node_modules/core-js/internals/to-length.js +var require_to_length = __commonJS({ + "node_modules/core-js/internals/to-length.js"(exports2, module2) { + var toIntegerOrInfinity = require_to_integer_or_infinity(); + var min = Math.min; + module2.exports = function(argument) { + return argument > 0 ? min(toIntegerOrInfinity(argument), 9007199254740991) : 0; + }; + } +}); + +// node_modules/core-js/internals/length-of-array-like.js +var require_length_of_array_like = __commonJS({ + "node_modules/core-js/internals/length-of-array-like.js"(exports2, module2) { + var toLength = require_to_length(); + module2.exports = function(obj) { + return toLength(obj.length); + }; + } +}); + +// node_modules/core-js/internals/array-includes.js +var require_array_includes = __commonJS({ + "node_modules/core-js/internals/array-includes.js"(exports2, module2) { + var toIndexedObject = require_to_indexed_object(); + var toAbsoluteIndex = require_to_absolute_index(); + var lengthOfArrayLike = require_length_of_array_like(); + var createMethod = function(IS_INCLUDES) { + return function($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + var index = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) + while (length > index) { + value = O[index++]; + if (value != value) + return true; + } + else + for (; length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) + return IS_INCLUDES || index || 0; + } + return !IS_INCLUDES && -1; + }; + }; + module2.exports = { + includes: createMethod(true), + indexOf: createMethod(false) + }; + } +}); + +// node_modules/core-js/internals/object-keys-internal.js +var require_object_keys_internal = __commonJS({ + "node_modules/core-js/internals/object-keys-internal.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var hasOwn = require_has_own_property(); + var toIndexedObject = require_to_indexed_object(); + var indexOf = require_array_includes().indexOf; + var hiddenKeys = require_hidden_keys(); + var push = uncurryThis([].push); + module2.exports = function(object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) + !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + while (names.length > i) + if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; + }; + } +}); + +// node_modules/core-js/internals/enum-bug-keys.js +var require_enum_bug_keys = __commonJS({ + "node_modules/core-js/internals/enum-bug-keys.js"(exports2, module2) { + module2.exports = [ + "constructor", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "toLocaleString", + "toString", + "valueOf" + ]; + } +}); + +// node_modules/core-js/internals/object-get-own-property-names.js +var require_object_get_own_property_names = __commonJS({ + "node_modules/core-js/internals/object-get-own-property-names.js"(exports2) { + var internalObjectKeys = require_object_keys_internal(); + var enumBugKeys = require_enum_bug_keys(); + var hiddenKeys = enumBugKeys.concat("length", "prototype"); + exports2.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); + }; + } +}); + +// node_modules/core-js/internals/object-get-own-property-symbols.js +var require_object_get_own_property_symbols = __commonJS({ + "node_modules/core-js/internals/object-get-own-property-symbols.js"(exports2) { + exports2.f = Object.getOwnPropertySymbols; + } +}); + +// node_modules/core-js/internals/own-keys.js +var require_own_keys = __commonJS({ + "node_modules/core-js/internals/own-keys.js"(exports2, module2) { + var getBuiltIn = require_get_built_in(); + var uncurryThis = require_function_uncurry_this(); + var getOwnPropertyNamesModule = require_object_get_own_property_names(); + var getOwnPropertySymbolsModule = require_object_get_own_property_symbols(); + var anObject = require_an_object(); + var concat = uncurryThis([].concat); + module2.exports = getBuiltIn("Reflect", "ownKeys") || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; + }; + } +}); + +// node_modules/core-js/internals/copy-constructor-properties.js +var require_copy_constructor_properties = __commonJS({ + "node_modules/core-js/internals/copy-constructor-properties.js"(exports2, module2) { + var hasOwn = require_has_own_property(); + var ownKeys = require_own_keys(); + var getOwnPropertyDescriptorModule = require_object_get_own_property_descriptor(); + var definePropertyModule = require_object_define_property(); + module2.exports = function(target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + } +}); + +// node_modules/core-js/internals/is-forced.js +var require_is_forced = __commonJS({ + "node_modules/core-js/internals/is-forced.js"(exports2, module2) { + var fails = require_fails(); + var isCallable = require_is_callable(); + var replacement = /#|\.prototype\./; + var isForced = function(feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection; + }; + var normalize = isForced.normalize = function(string) { + return String(string).replace(replacement, ".").toLowerCase(); + }; + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = "N"; + var POLYFILL = isForced.POLYFILL = "P"; + module2.exports = isForced; + } +}); + +// node_modules/core-js/internals/export.js +var require_export = __commonJS({ + "node_modules/core-js/internals/export.js"(exports2, module2) { + var global2 = require_global(); + var getOwnPropertyDescriptor = require_object_get_own_property_descriptor().f; + var createNonEnumerableProperty = require_create_non_enumerable_property(); + var redefine = require_redefine(); + var setGlobal = require_set_global(); + var copyConstructorProperties = require_copy_constructor_properties(); + var isForced = require_is_forced(); + module2.exports = function(options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global2; + } else if (STATIC) { + target = global2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global2[TARGET] || {}).prototype; + } + if (target) + for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else + targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced); + if (!FORCED && targetProperty !== void 0) { + if (typeof sourceProperty == typeof targetProperty) + continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + if (options.sham || targetProperty && targetProperty.sham) { + createNonEnumerableProperty(sourceProperty, "sham", true); + } + redefine(target, key, sourceProperty, options); + } + }; + } +}); + +// node_modules/core-js/internals/function-bind-context.js +var require_function_bind_context = __commonJS({ + "node_modules/core-js/internals/function-bind-context.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var aCallable = require_a_callable(); + var NATIVE_BIND = require_function_bind_native(); + var bind = uncurryThis(uncurryThis.bind); + module2.exports = function(fn, that) { + aCallable(fn); + return that === void 0 ? fn : NATIVE_BIND ? bind(fn, that) : function() { + return fn.apply(that, arguments); + }; + }; + } +}); + +// node_modules/core-js/internals/iterators.js +var require_iterators = __commonJS({ + "node_modules/core-js/internals/iterators.js"(exports2, module2) { + module2.exports = {}; + } +}); + +// node_modules/core-js/internals/is-array-iterator-method.js +var require_is_array_iterator_method = __commonJS({ + "node_modules/core-js/internals/is-array-iterator-method.js"(exports2, module2) { + var wellKnownSymbol = require_well_known_symbol(); + var Iterators = require_iterators(); + var ITERATOR = wellKnownSymbol("iterator"); + var ArrayPrototype = Array.prototype; + module2.exports = function(it) { + return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); + }; + } +}); + +// node_modules/core-js/internals/to-string-tag-support.js +var require_to_string_tag_support = __commonJS({ + "node_modules/core-js/internals/to-string-tag-support.js"(exports2, module2) { + var wellKnownSymbol = require_well_known_symbol(); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var test = {}; + test[TO_STRING_TAG] = "z"; + module2.exports = String(test) === "[object z]"; + } +}); + +// node_modules/core-js/internals/classof.js +var require_classof = __commonJS({ + "node_modules/core-js/internals/classof.js"(exports2, module2) { + var global2 = require_global(); + var TO_STRING_TAG_SUPPORT = require_to_string_tag_support(); + var isCallable = require_is_callable(); + var classofRaw = require_classof_raw(); + var wellKnownSymbol = require_well_known_symbol(); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var Object2 = global2.Object; + var CORRECT_ARGUMENTS = classofRaw(function() { + return arguments; + }()) == "Arguments"; + var tryGet = function(it, key) { + try { + return it[key]; + } catch (error) { + } + }; + module2.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function(it) { + var O, tag, result; + return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = Object2(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && isCallable(O.callee) ? "Arguments" : result; + }; + } +}); + +// node_modules/core-js/internals/get-iterator-method.js +var require_get_iterator_method = __commonJS({ + "node_modules/core-js/internals/get-iterator-method.js"(exports2, module2) { + var classof = require_classof(); + var getMethod = require_get_method(); + var Iterators = require_iterators(); + var wellKnownSymbol = require_well_known_symbol(); + var ITERATOR = wellKnownSymbol("iterator"); + module2.exports = function(it) { + if (it != void 0) + return getMethod(it, ITERATOR) || getMethod(it, "@@iterator") || Iterators[classof(it)]; + }; + } +}); + +// node_modules/core-js/internals/get-iterator.js +var require_get_iterator = __commonJS({ + "node_modules/core-js/internals/get-iterator.js"(exports2, module2) { + var global2 = require_global(); + var call = require_function_call(); + var aCallable = require_a_callable(); + var anObject = require_an_object(); + var tryToString = require_try_to_string(); + var getIteratorMethod = require_get_iterator_method(); + var TypeError2 = global2.TypeError; + module2.exports = function(argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) + return anObject(call(iteratorMethod, argument)); + throw TypeError2(tryToString(argument) + " is not iterable"); + }; + } +}); + +// node_modules/core-js/internals/iterator-close.js +var require_iterator_close = __commonJS({ + "node_modules/core-js/internals/iterator-close.js"(exports2, module2) { + var call = require_function_call(); + var anObject = require_an_object(); + var getMethod = require_get_method(); + module2.exports = function(iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, "return"); + if (!innerResult) { + if (kind === "throw") + throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === "throw") + throw value; + if (innerError) + throw innerResult; + anObject(innerResult); + return value; + }; + } +}); + +// node_modules/core-js/internals/iterate.js +var require_iterate = __commonJS({ + "node_modules/core-js/internals/iterate.js"(exports2, module2) { + var global2 = require_global(); + var bind = require_function_bind_context(); + var call = require_function_call(); + var anObject = require_an_object(); + var tryToString = require_try_to_string(); + var isArrayIteratorMethod = require_is_array_iterator_method(); + var lengthOfArrayLike = require_length_of_array_like(); + var isPrototypeOf = require_object_is_prototype_of(); + var getIterator = require_get_iterator(); + var getIteratorMethod = require_get_iterator_method(); + var iteratorClose = require_iterator_close(); + var TypeError2 = global2.TypeError; + var Result = function(stopped, result) { + this.stopped = stopped; + this.result = result; + }; + var ResultPrototype = Result.prototype; + module2.exports = function(iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + var stop = function(condition) { + if (iterator) + iteratorClose(iterator, "normal", condition); + return new Result(true, condition); + }; + var callFn = function(value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } + return INTERRUPTED ? fn(value, stop) : fn(value); + }; + if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) + throw TypeError2(tryToString(iterable) + " is not iterable"); + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) + return result; + } + return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + next = iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, "throw", error); + } + if (typeof result == "object" && result && isPrototypeOf(ResultPrototype, result)) + return result; + } + return new Result(false); + }; + } +}); + +// node_modules/core-js/internals/create-property.js +var require_create_property = __commonJS({ + "node_modules/core-js/internals/create-property.js"(exports2, module2) { + "use strict"; + var toPropertyKey = require_to_property_key(); + var definePropertyModule = require_object_define_property(); + var createPropertyDescriptor = require_create_property_descriptor(); + module2.exports = function(object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) + definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else + object[propertyKey] = value; + }; + } +}); + +// node_modules/core-js/modules/es.object.from-entries.js +var require_es_object_from_entries = __commonJS({ + "node_modules/core-js/modules/es.object.from-entries.js"() { + var $ = require_export(); + var iterate = require_iterate(); + var createProperty = require_create_property(); + $({ target: "Object", stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function(k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } + }); + } +}); + +// node_modules/core-js/internals/is-array.js +var require_is_array = __commonJS({ + "node_modules/core-js/internals/is-array.js"(exports2, module2) { + var classof = require_classof_raw(); + module2.exports = Array.isArray || function isArray(argument) { + return classof(argument) == "Array"; + }; + } +}); + +// node_modules/core-js/internals/flatten-into-array.js +var require_flatten_into_array = __commonJS({ + "node_modules/core-js/internals/flatten-into-array.js"(exports2, module2) { + "use strict"; + var global2 = require_global(); + var isArray = require_is_array(); + var lengthOfArrayLike = require_length_of_array_like(); + var bind = require_function_bind_context(); + var TypeError2 = global2.TypeError; + var flattenIntoArray = function(target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 9007199254740991) + throw TypeError2("Exceed the acceptable array length"); + target[targetIndex] = element; + } + targetIndex++; + } + sourceIndex++; + } + return targetIndex; + }; + module2.exports = flattenIntoArray; + } +}); + +// node_modules/core-js/internals/is-constructor.js +var require_is_constructor = __commonJS({ + "node_modules/core-js/internals/is-constructor.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var fails = require_fails(); + var isCallable = require_is_callable(); + var classof = require_classof(); + var getBuiltIn = require_get_built_in(); + var inspectSource = require_inspect_source(); + var noop = function() { + }; + var empty = []; + var construct = getBuiltIn("Reflect", "construct"); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + switch (classof(argument)) { + case "AsyncFunction": + case "GeneratorFunction": + case "AsyncGeneratorFunction": + return false; + } + try { + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + isConstructorLegacy.sham = true; + module2.exports = !construct || fails(function() { + var called; + return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function() { + called = true; + }) || called; + }) ? isConstructorLegacy : isConstructorModern; + } +}); + +// node_modules/core-js/internals/array-species-constructor.js +var require_array_species_constructor = __commonJS({ + "node_modules/core-js/internals/array-species-constructor.js"(exports2, module2) { + var global2 = require_global(); + var isArray = require_is_array(); + var isConstructor = require_is_constructor(); + var isObject = require_is_object(); + var wellKnownSymbol = require_well_known_symbol(); + var SPECIES = wellKnownSymbol("species"); + var Array2 = global2.Array; + module2.exports = function(originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + if (isConstructor(C) && (C === Array2 || isArray(C.prototype))) + C = void 0; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) + C = void 0; + } + } + return C === void 0 ? Array2 : C; + }; + } +}); + +// node_modules/core-js/internals/array-species-create.js +var require_array_species_create = __commonJS({ + "node_modules/core-js/internals/array-species-create.js"(exports2, module2) { + var arraySpeciesConstructor = require_array_species_constructor(); + module2.exports = function(originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + } +}); + +// node_modules/core-js/modules/es.array.flat-map.js +var require_es_array_flat_map = __commonJS({ + "node_modules/core-js/modules/es.array.flat-map.js"() { + "use strict"; + var $ = require_export(); + var flattenIntoArray = require_flatten_into_array(); + var aCallable = require_a_callable(); + var toObject = require_to_object(); + var lengthOfArrayLike = require_length_of_array_like(); + var arraySpeciesCreate = require_array_species_create(); + $({ target: "Array", proto: true }, { + flatMap: function flatMap(callbackfn) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : void 0); + return A; + } + }); + } +}); + +// node_modules/core-js/modules/es.array.flat.js +var require_es_array_flat = __commonJS({ + "node_modules/core-js/modules/es.array.flat.js"() { + "use strict"; + var $ = require_export(); + var flattenIntoArray = require_flatten_into_array(); + var toObject = require_to_object(); + var lengthOfArrayLike = require_length_of_array_like(); + var toIntegerOrInfinity = require_to_integer_or_infinity(); + var arraySpeciesCreate = require_array_species_create(); + $({ target: "Array", proto: true }, { + flat: function flat() { + var depthArg = arguments.length ? arguments[0] : void 0; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === void 0 ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } + }); + } +}); + +// dist/_cli.js.cjs.js +require_es_object_from_entries(); +require_es_array_flat_map(); +require_es_array_flat(); +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { + exports: {} + }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { + get: all[name], + enumerable: true + }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true +}) : target, mod)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { + value: true +}), mod); +var require_fast_json_stable_stringify = __commonJS2({ + "node_modules/fast-json-stable-stringify/index.js"(exports2, module2) { + "use strict"; + module2.exports = function(data, opts) { + if (!opts) + opts = {}; + if (typeof opts === "function") + opts = { + cmp: opts + }; + var cycles = typeof opts.cycles === "boolean" ? opts.cycles : false; + var cmp = opts.cmp && function(f) { + return function(node) { + return function(a, b) { + var aobj = { + key: a, + value: node[a] + }; + var bobj = { + key: b, + value: node[b] + }; + return f(aobj, bobj); + }; + }; + }(opts.cmp); + var seen = []; + return function stringify2(node) { + if (node && node.toJSON && typeof node.toJSON === "function") { + node = node.toJSON(); + } + if (node === void 0) + return; + if (typeof node == "number") + return isFinite(node) ? "" + node : "null"; + if (typeof node !== "object") + return JSON.stringify(node); + var i, out; + if (Array.isArray(node)) { + out = "["; + for (i = 0; i < node.length; i++) { + if (i) + out += ","; + out += stringify2(node[i]) || "null"; + } + return out + "]"; + } + if (node === null) + return "null"; + if (seen.indexOf(node) !== -1) { + if (cycles) + return JSON.stringify("__cycle__"); + throw new TypeError("Converting circular structure to JSON"); + } + var seenIndex = seen.push(node) - 1; + var keys = Object.keys(node).sort(cmp && cmp(node)); + out = ""; + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = stringify2(node[key]); + if (!value) + continue; + if (out) + out += ","; + out += JSON.stringify(key) + ":" + value; + } + seen.splice(seenIndex, 1); + return "{" + out + "}"; + }(data); + }; + } +}); +var require_clone = __commonJS2({ + "node_modules/clone/clone.js"(exports2, module2) { + var clone = function() { + "use strict"; + function clone2(parent, circular, depth, prototype) { + var filter; + if (typeof circular === "object") { + depth = circular.depth; + prototype = circular.prototype; + filter = circular.filter; + circular = circular.circular; + } + var allParents = []; + var allChildren = []; + var useBuffer = typeof Buffer != "undefined"; + if (typeof circular == "undefined") + circular = true; + if (typeof depth == "undefined") + depth = Infinity; + function _clone(parent2, depth2) { + if (parent2 === null) + return null; + if (depth2 == 0) + return parent2; + var child; + var proto2; + if (typeof parent2 != "object") { + return parent2; + } + if (clone2.__isArray(parent2)) { + child = []; + } else if (clone2.__isRegExp(parent2)) { + child = new RegExp(parent2.source, __getRegExpFlags(parent2)); + if (parent2.lastIndex) + child.lastIndex = parent2.lastIndex; + } else if (clone2.__isDate(parent2)) { + child = new Date(parent2.getTime()); + } else if (useBuffer && Buffer.isBuffer(parent2)) { + if (Buffer.allocUnsafe) { + child = Buffer.allocUnsafe(parent2.length); + } else { + child = new Buffer(parent2.length); + } + parent2.copy(child); + return child; + } else { + if (typeof prototype == "undefined") { + proto2 = Object.getPrototypeOf(parent2); + child = Object.create(proto2); + } else { + child = Object.create(prototype); + proto2 = prototype; + } + } + if (circular) { + var index = allParents.indexOf(parent2); + if (index != -1) { + return allChildren[index]; + } + allParents.push(parent2); + allChildren.push(child); + } + for (var i in parent2) { + var attrs; + if (proto2) { + attrs = Object.getOwnPropertyDescriptor(proto2, i); + } + if (attrs && attrs.set == null) { + continue; + } + child[i] = _clone(parent2[i], depth2 - 1); + } + return child; + } + return _clone(parent, depth); + } + clone2.clonePrototype = function clonePrototype(parent) { + if (parent === null) + return null; + var c = function() { + }; + c.prototype = parent; + return new c(); + }; + function __objToStr(o) { + return Object.prototype.toString.call(o); + } + ; + clone2.__objToStr = __objToStr; + function __isDate(o) { + return typeof o === "object" && __objToStr(o) === "[object Date]"; + } + ; + clone2.__isDate = __isDate; + function __isArray(o) { + return typeof o === "object" && __objToStr(o) === "[object Array]"; + } + ; + clone2.__isArray = __isArray; + function __isRegExp(o) { + return typeof o === "object" && __objToStr(o) === "[object RegExp]"; + } + ; + clone2.__isRegExp = __isRegExp; + function __getRegExpFlags(re) { + var flags = ""; + if (re.global) + flags += "g"; + if (re.ignoreCase) + flags += "i"; + if (re.multiline) + flags += "m"; + return flags; + } + ; + clone2.__getRegExpFlags = __getRegExpFlags; + return clone2; + }(); + if (typeof module2 === "object" && module2.exports) { + module2.exports = clone; + } + } +}); +var require_defaults = __commonJS2({ + "node_modules/defaults/index.js"(exports2, module2) { + var clone = require_clone(); + module2.exports = function(options, defaults) { + options = options || {}; + Object.keys(defaults).forEach(function(key) { + if (typeof options[key] === "undefined") { + options[key] = clone(defaults[key]); + } + }); + return options; + }; + } +}); +var require_combining = __commonJS2({ + "node_modules/wcwidth/combining.js"(exports2, module2) { + module2.exports = [[768, 879], [1155, 1158], [1160, 1161], [1425, 1469], [1471, 1471], [1473, 1474], [1476, 1477], [1479, 1479], [1536, 1539], [1552, 1557], [1611, 1630], [1648, 1648], [1750, 1764], [1767, 1768], [1770, 1773], [1807, 1807], [1809, 1809], [1840, 1866], [1958, 1968], [2027, 2035], [2305, 2306], [2364, 2364], [2369, 2376], [2381, 2381], [2385, 2388], [2402, 2403], [2433, 2433], [2492, 2492], [2497, 2500], [2509, 2509], [2530, 2531], [2561, 2562], [2620, 2620], [2625, 2626], [2631, 2632], [2635, 2637], [2672, 2673], [2689, 2690], [2748, 2748], [2753, 2757], [2759, 2760], [2765, 2765], [2786, 2787], [2817, 2817], [2876, 2876], [2879, 2879], [2881, 2883], [2893, 2893], [2902, 2902], [2946, 2946], [3008, 3008], [3021, 3021], [3134, 3136], [3142, 3144], [3146, 3149], [3157, 3158], [3260, 3260], [3263, 3263], [3270, 3270], [3276, 3277], [3298, 3299], [3393, 3395], [3405, 3405], [3530, 3530], [3538, 3540], [3542, 3542], [3633, 3633], [3636, 3642], [3655, 3662], [3761, 3761], [3764, 3769], [3771, 3772], [3784, 3789], [3864, 3865], [3893, 3893], [3895, 3895], [3897, 3897], [3953, 3966], [3968, 3972], [3974, 3975], [3984, 3991], [3993, 4028], [4038, 4038], [4141, 4144], [4146, 4146], [4150, 4151], [4153, 4153], [4184, 4185], [4448, 4607], [4959, 4959], [5906, 5908], [5938, 5940], [5970, 5971], [6002, 6003], [6068, 6069], [6071, 6077], [6086, 6086], [6089, 6099], [6109, 6109], [6155, 6157], [6313, 6313], [6432, 6434], [6439, 6440], [6450, 6450], [6457, 6459], [6679, 6680], [6912, 6915], [6964, 6964], [6966, 6970], [6972, 6972], [6978, 6978], [7019, 7027], [7616, 7626], [7678, 7679], [8203, 8207], [8234, 8238], [8288, 8291], [8298, 8303], [8400, 8431], [12330, 12335], [12441, 12442], [43014, 43014], [43019, 43019], [43045, 43046], [64286, 64286], [65024, 65039], [65056, 65059], [65279, 65279], [65529, 65531], [68097, 68099], [68101, 68102], [68108, 68111], [68152, 68154], [68159, 68159], [119143, 119145], [119155, 119170], [119173, 119179], [119210, 119213], [119362, 119364], [917505, 917505], [917536, 917631], [917760, 917999]]; + } +}); +var require_wcwidth = __commonJS2({ + "node_modules/wcwidth/index.js"(exports2, module2) { + "use strict"; + var defaults = require_defaults(); + var combining = require_combining(); + var DEFAULTS = { + nul: 0, + control: 0 + }; + module2.exports = function wcwidth2(str) { + return wcswidth(str, DEFAULTS); + }; + module2.exports.config = function(opts) { + opts = defaults(opts || {}, DEFAULTS); + return function wcwidth2(str) { + return wcswidth(str, opts); + }; + }; + function wcswidth(str, opts) { + if (typeof str !== "string") + return wcwidth(str, opts); + var s = 0; + for (var i = 0; i < str.length; i++) { + var n = wcwidth(str.charCodeAt(i), opts); + if (n < 0) + return -1; + s += n; + } + return s; + } + function wcwidth(ucs, opts) { + if (ucs === 0) + return opts.nul; + if (ucs < 32 || ucs >= 127 && ucs < 160) + return opts.control; + if (bisearch(ucs)) + return 0; + return 1 + (ucs >= 4352 && (ucs <= 4447 || ucs == 9001 || ucs == 9002 || ucs >= 11904 && ucs <= 42191 && ucs != 12351 || ucs >= 44032 && ucs <= 55203 || ucs >= 63744 && ucs <= 64255 || ucs >= 65040 && ucs <= 65049 || ucs >= 65072 && ucs <= 65135 || ucs >= 65280 && ucs <= 65376 || ucs >= 65504 && ucs <= 65510 || ucs >= 131072 && ucs <= 196605 || ucs >= 196608 && ucs <= 262141)); + } + function bisearch(ucs) { + var min = 0; + var max = combining.length - 1; + var mid; + if (ucs < combining[0][0] || ucs > combining[max][1]) + return false; + while (max >= min) { + mid = Math.floor((min + max) / 2); + if (ucs > combining[mid][1]) + min = mid + 1; + else if (ucs < combining[mid][0]) + max = mid - 1; + else + return true; + } + return false; + } + } +}); +function ansiRegex({ + onlyFirst = false +} = {}) { + const pattern = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"); + return new RegExp(pattern, onlyFirst ? void 0 : "g"); +} +var init_ansi_regex = __esm({ + "node_modules/strip-ansi/node_modules/ansi-regex/index.js"() { + } +}); +var strip_ansi_exports = {}; +__export(strip_ansi_exports, { + default: () => stripAnsi +}); +function stripAnsi(string) { + if (typeof string !== "string") { + throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); + } + return string.replace(ansiRegex(), ""); +} +var init_strip_ansi = __esm({ + "node_modules/strip-ansi/index.js"() { + init_ansi_regex(); + } +}); +function assembleStyles() { + const codes = /* @__PURE__ */ new Map(); + const styles2 = { + modifier: { + reset: [0, 0], + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + overline: [53, 55], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + styles2.color.gray = styles2.color.blackBright; + styles2.bgColor.bgGray = styles2.bgColor.bgBlackBright; + styles2.color.grey = styles2.color.blackBright; + styles2.bgColor.bgGrey = styles2.bgColor.bgBlackBright; + for (const [groupName, group] of Object.entries(styles2)) { + for (const [styleName, style] of Object.entries(group)) { + styles2[styleName] = { + open: `\x1B[${style[0]}m`, + close: `\x1B[${style[1]}m` + }; + group[styleName] = styles2[styleName]; + codes.set(style[0], style[1]); + } + Object.defineProperty(styles2, groupName, { + value: group, + enumerable: false + }); + } + Object.defineProperty(styles2, "codes", { + value: codes, + enumerable: false + }); + styles2.color.close = "\x1B[39m"; + styles2.bgColor.close = "\x1B[49m"; + styles2.color.ansi = wrapAnsi16(); + styles2.color.ansi256 = wrapAnsi256(); + styles2.color.ansi16m = wrapAnsi16m(); + styles2.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET); + styles2.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET); + styles2.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET); + Object.defineProperties(styles2, { + rgbToAnsi256: { + value: (red, green, blue) => { + if (red === green && green === blue) { + if (red < 8) { + return 16; + } + if (red > 248) { + return 231; + } + return Math.round((red - 8) / 247 * 24) + 232; + } + return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5); + }, + enumerable: false + }, + hexToRgb: { + value: (hex) => { + const matches = /(?[a-f\d]{6}|[a-f\d]{3})/i.exec(hex.toString(16)); + if (!matches) { + return [0, 0, 0]; + } + let { + colorString + } = matches.groups; + if (colorString.length === 3) { + colorString = [...colorString].map((character) => character + character).join(""); + } + const integer = Number.parseInt(colorString, 16); + return [integer >> 16 & 255, integer >> 8 & 255, integer & 255]; + }, + enumerable: false + }, + hexToAnsi256: { + value: (hex) => styles2.rgbToAnsi256(...styles2.hexToRgb(hex)), + enumerable: false + }, + ansi256ToAnsi: { + value: (code) => { + if (code < 8) { + return 30 + code; + } + if (code < 16) { + return 90 + (code - 8); + } + let red; + let green; + let blue; + if (code >= 232) { + red = ((code - 232) * 10 + 8) / 255; + green = red; + blue = red; + } else { + code -= 16; + const remainder = code % 36; + red = Math.floor(code / 36) / 5; + green = Math.floor(remainder / 6) / 5; + blue = remainder % 6 / 5; + } + const value = Math.max(red, green, blue) * 2; + if (value === 0) { + return 30; + } + let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red)); + if (value === 2) { + result += 60; + } + return result; + }, + enumerable: false + }, + rgbToAnsi: { + value: (red, green, blue) => styles2.ansi256ToAnsi(styles2.rgbToAnsi256(red, green, blue)), + enumerable: false + }, + hexToAnsi: { + value: (hex) => styles2.ansi256ToAnsi(styles2.hexToAnsi256(hex)), + enumerable: false + } + }); + return styles2; +} +var ANSI_BACKGROUND_OFFSET; +var wrapAnsi16; +var wrapAnsi256; +var wrapAnsi16m; +var ansiStyles; +var ansi_styles_default; +var init_ansi_styles = __esm({ + "node_modules/chalk/source/vendor/ansi-styles/index.js"() { + ANSI_BACKGROUND_OFFSET = 10; + wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`; + wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`; + wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`; + ansiStyles = assembleStyles(); + ansi_styles_default = ansiStyles; + } +}); +function hasFlag(flag, argv = import_node_process.default.argv) { + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +} +function envForceColor() { + if ("FORCE_COLOR" in env) { + if (env.FORCE_COLOR === "true") { + return 1; + } + if (env.FORCE_COLOR === "false") { + return 0; + } + return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + } +} +function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} +function _supportsColor(haveStream, { + streamIsTTY, + sniffFlags = true +} = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== void 0) { + flagForceColor = noFlagForceColor; + } + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; + if (forceColor === 0) { + return 0; + } + if (sniffFlags) { + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + } + if (haveStream && !streamIsTTY && forceColor === void 0) { + return 0; + } + const min = forceColor || 0; + if (env.TERM === "dumb") { + return min; + } + if (import_node_process.default.platform === "win32") { + const osRelease = import_node_os.default.release().split("."); + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if ("TF_BUILD" in env && "AGENT_NAME" in env) { + return 1; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + return min; +} +function createSupportsColor(stream, options = {}) { + const level = _supportsColor(stream, Object.assign({ + streamIsTTY: stream && stream.isTTY + }, options)); + return translateLevel(level); +} +var import_node_process; +var import_node_os; +var import_node_tty; +var env; +var flagForceColor; +var supportsColor; +var supports_color_default; +var init_supports_color = __esm({ + "node_modules/chalk/source/vendor/supports-color/index.js"() { + import_node_process = __toESM(require("process"), 1); + import_node_os = __toESM(require("os"), 1); + import_node_tty = __toESM(require("tty"), 1); + ({ + env + } = import_node_process.default); + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { + flagForceColor = 0; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + flagForceColor = 1; + } + supportsColor = { + stdout: createSupportsColor({ + isTTY: import_node_tty.default.isatty(1) + }), + stderr: createSupportsColor({ + isTTY: import_node_tty.default.isatty(2) + }) + }; + supports_color_default = supportsColor; + } +}); +function stringReplaceAll(string, substring, replacer) { + let index = string.indexOf(substring); + if (index === -1) { + return string; + } + const substringLength = substring.length; + let endIndex = 0; + let returnValue = ""; + do { + returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; + endIndex = index + substringLength; + index = string.indexOf(substring, endIndex); + } while (index !== -1); + returnValue += string.slice(endIndex); + return returnValue; +} +function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) { + let endIndex = 0; + let returnValue = ""; + do { + const gotCR = string[index - 1] === "\r"; + returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? "\r\n" : "\n") + postfix; + endIndex = index + 1; + index = string.indexOf("\n", endIndex); + } while (index !== -1); + returnValue += string.slice(endIndex); + return returnValue; +} +var init_utilities = __esm({ + "node_modules/chalk/source/utilities.js"() { + } +}); +var source_exports = {}; +__export(source_exports, { + Chalk: () => Chalk, + chalkStderr: () => chalkStderr, + default: () => source_default, + supportsColor: () => stdoutColor, + supportsColorStderr: () => stderrColor +}); +function createChalk(options) { + return chalkFactory(options); +} +var stdoutColor; +var stderrColor; +var GENERATOR; +var STYLER; +var IS_EMPTY; +var levelMapping; +var styles; +var applyOptions; +var Chalk; +var chalkFactory; +var getModelAnsi; +var usedModels; +var proto; +var createStyler; +var createBuilder; +var applyStyle; +var chalk; +var chalkStderr; +var source_default; +var init_source = __esm({ + "node_modules/chalk/source/index.js"() { + init_ansi_styles(); + init_supports_color(); + init_utilities(); + ({ + stdout: stdoutColor, + stderr: stderrColor + } = supports_color_default); + GENERATOR = Symbol("GENERATOR"); + STYLER = Symbol("STYLER"); + IS_EMPTY = Symbol("IS_EMPTY"); + levelMapping = ["ansi", "ansi", "ansi256", "ansi16m"]; + styles = /* @__PURE__ */ Object.create(null); + applyOptions = (object, options = {}) => { + if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { + throw new Error("The `level` option should be an integer from 0 to 3"); + } + const colorLevel = stdoutColor ? stdoutColor.level : 0; + object.level = options.level === void 0 ? colorLevel : options.level; + }; + Chalk = class { + constructor(options) { + return chalkFactory(options); + } + }; + chalkFactory = (options) => { + const chalk2 = (...strings) => strings.join(" "); + applyOptions(chalk2, options); + Object.setPrototypeOf(chalk2, createChalk.prototype); + return chalk2; + }; + Object.setPrototypeOf(createChalk.prototype, Function.prototype); + for (const [styleName, style] of Object.entries(ansi_styles_default)) { + styles[styleName] = { + get() { + const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]); + Object.defineProperty(this, styleName, { + value: builder + }); + return builder; + } + }; + } + styles.visible = { + get() { + const builder = createBuilder(this, this[STYLER], true); + Object.defineProperty(this, "visible", { + value: builder + }); + return builder; + } + }; + getModelAnsi = (model, level, type, ...arguments_) => { + if (model === "rgb") { + if (level === "ansi16m") { + return ansi_styles_default[type].ansi16m(...arguments_); + } + if (level === "ansi256") { + return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_)); + } + return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_)); + } + if (model === "hex") { + return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_)); + } + return ansi_styles_default[type][model](...arguments_); + }; + usedModels = ["rgb", "hex", "ansi256"]; + for (const model of usedModels) { + styles[model] = { + get() { + const { + level + } = this; + return function(...arguments_) { + const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]); + return createBuilder(this, styler, this[IS_EMPTY]); + }; + } + }; + const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const { + level + } = this; + return function(...arguments_) { + const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]); + return createBuilder(this, styler, this[IS_EMPTY]); + }; + } + }; + } + proto = Object.defineProperties(() => { + }, Object.assign(Object.assign({}, styles), {}, { + level: { + enumerable: true, + get() { + return this[GENERATOR].level; + }, + set(level) { + this[GENERATOR].level = level; + } + } + })); + createStyler = (open, close, parent) => { + let openAll; + let closeAll; + if (parent === void 0) { + openAll = open; + closeAll = close; + } else { + openAll = parent.openAll + open; + closeAll = close + parent.closeAll; + } + return { + open, + close, + openAll, + closeAll, + parent + }; + }; + createBuilder = (self2, _styler, _isEmpty) => { + const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" ")); + Object.setPrototypeOf(builder, proto); + builder[GENERATOR] = self2; + builder[STYLER] = _styler; + builder[IS_EMPTY] = _isEmpty; + return builder; + }; + applyStyle = (self2, string) => { + if (self2.level <= 0 || !string) { + return self2[IS_EMPTY] ? "" : string; + } + let styler = self2[STYLER]; + if (styler === void 0) { + return string; + } + const { + openAll, + closeAll + } = styler; + if (string.includes("\x1B")) { + while (styler !== void 0) { + string = stringReplaceAll(string, styler.close, styler.open); + styler = styler.parent; + } + } + const lfIndex = string.indexOf("\n"); + if (lfIndex !== -1) { + string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); + } + return openAll + string + closeAll; + }; + Object.defineProperties(createChalk.prototype, styles); + chalk = createChalk(); + chalkStderr = createChalk({ + level: stderrColor ? stderrColor.level : 0 + }); + source_default = chalk; + } +}); +var require_logger = __commonJS2({ + "src/cli/logger.js"(exports2, module2) { + "use strict"; + var readline = require("readline"); + var wcwidth = require_wcwidth(); + var { + default: stripAnsi2 + } = (init_strip_ansi(), __toCommonJS(strip_ansi_exports)); + var { + default: chalk2 + } = (init_source(), __toCommonJS(source_exports)); + var countLines = (stream, text) => { + const columns = stream.columns || 80; + let lineCount = 0; + for (const line of stripAnsi2(text).split("\n")) { + lineCount += Math.max(1, Math.ceil(wcwidth(line) / columns)); + } + return lineCount; + }; + var clear = (stream, text) => () => { + const lineCount = countLines(stream, text); + for (let line = 0; line < lineCount; line++) { + if (line > 0) { + readline.moveCursor(stream, 0, -1); + } + readline.clearLine(stream, 0); + readline.cursorTo(stream, 0); + } + }; + var emptyLogResult = { + clear() { + } + }; + function createLogger2(logLevel = "log") { + return { + logLevel, + warn: createLogFunc("warn", "yellow"), + error: createLogFunc("error", "red"), + debug: createLogFunc("debug", "blue"), + log: createLogFunc("log") + }; + function createLogFunc(loggerName, color) { + if (!shouldLog(loggerName)) { + return () => emptyLogResult; + } + const prefix = color ? `[${chalk2[color](loggerName)}] ` : ""; + const stream = process[loggerName === "log" ? "stdout" : "stderr"]; + return (message, options) => { + options = Object.assign({ + newline: true, + clearable: false + }, options); + message = message.replace(/^/gm, prefix) + (options.newline ? "\n" : ""); + stream.write(message); + if (options.clearable) { + return { + clear: clear(stream, message) + }; + } + }; + } + function shouldLog(loggerName) { + switch (logLevel) { + case "silent": + return false; + case "debug": + if (loggerName === "debug") { + return true; + } + case "log": + if (loggerName === "log") { + return true; + } + case "warn": + if (loggerName === "warn") { + return true; + } + case "error": + return loggerName === "error"; + } + } + } + module2.exports = createLogger2; + } +}); +var require_prettier_internal = __commonJS2({ + "src/cli/prettier-internal.js"(exports2, module2) { + "use strict"; + module2.exports = require("./index.js").__internal; + } +}); +var require_lib = __commonJS2({ + "node_modules/outdent/lib/index.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.outdent = void 0; + function noop() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + } + function createWeakMap() { + if (typeof WeakMap !== "undefined") { + return /* @__PURE__ */ new WeakMap(); + } else { + return fakeSetOrMap(); + } + } + function fakeSetOrMap() { + return { + add: noop, + delete: noop, + get: noop, + set: noop, + has: function(k) { + return false; + } + }; + } + var hop = Object.prototype.hasOwnProperty; + var has = function(obj, prop) { + return hop.call(obj, prop); + }; + function extend(target, source) { + for (var prop in source) { + if (has(source, prop)) { + target[prop] = source[prop]; + } + } + return target; + } + var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/; + var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/; + var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/; + var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/; + var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/; + function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) { + var indentationLevel = 0; + var match = strings[0].match(reDetectIndentation); + if (match) { + indentationLevel = match[1].length; + } + var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}"; + var reMatchIndent = new RegExp(reSource, "g"); + if (firstInterpolatedValueSetsIndentationLevel) { + strings = strings.slice(1); + } + var newline = options.newline, trimLeadingNewline = options.trimLeadingNewline, trimTrailingNewline = options.trimTrailingNewline; + var normalizeNewlines = typeof newline === "string"; + var l = strings.length; + var outdentedStrings = strings.map(function(v, i) { + v = v.replace(reMatchIndent, "$1"); + if (i === 0 && trimLeadingNewline) { + v = v.replace(reLeadingNewline, ""); + } + if (i === l - 1 && trimTrailingNewline) { + v = v.replace(reTrailingNewline, ""); + } + if (normalizeNewlines) { + v = v.replace(/\r\n|\n|\r/g, function(_) { + return newline; + }); + } + return v; + }); + return outdentedStrings; + } + function concatStringsAndValues(strings, values) { + var ret = ""; + for (var i = 0, l = strings.length; i < l; i++) { + ret += strings[i]; + if (i < l - 1) { + ret += values[i]; + } + } + return ret; + } + function isTemplateStringsArray(v) { + return has(v, "raw") && has(v, "length"); + } + function createInstance(options) { + var arrayAutoIndentCache = createWeakMap(); + var arrayFirstInterpSetsIndentCache = createWeakMap(); + function outdent(stringsOrOptions) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + if (isTemplateStringsArray(stringsOrOptions)) { + var strings = stringsOrOptions; + var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]); + var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache; + var renderedArray = cache.get(strings); + if (!renderedArray) { + renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options); + cache.set(strings, renderedArray); + } + if (values.length === 0) { + return renderedArray[0]; + } + var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values); + return rendered; + } else { + return createInstance(extend(extend({}, options), stringsOrOptions || {})); + } + } + var fullOutdent = extend(outdent, { + string: function(str) { + return _outdentArray([str], false, options)[0]; + } + }); + return fullOutdent; + } + var defaultOutdent = createInstance({ + trimLeadingNewline: true, + trimTrailingNewline: true + }); + exports2.outdent = defaultOutdent; + exports2.default = defaultOutdent; + if (typeof module2 !== "undefined") { + try { + module2.exports = defaultOutdent; + Object.defineProperty(defaultOutdent, "__esModule", { + value: true + }); + defaultOutdent.default = defaultOutdent; + defaultOutdent.outdent = defaultOutdent; + } catch (e) { + } + } + } +}); +var require_constant = __commonJS2({ + "src/cli/constant.js"(exports2, module2) { + "use strict"; + var { + outdent + } = require_lib(); + var { + coreOptions + } = require_prettier_internal(); + var categoryOrder = [coreOptions.CATEGORY_OUTPUT, coreOptions.CATEGORY_FORMAT, coreOptions.CATEGORY_CONFIG, coreOptions.CATEGORY_EDITOR, coreOptions.CATEGORY_OTHER]; + var options = { + cache: { + default: false, + description: "Only format changed files. Cannot use with --stdin-filepath.", + type: "boolean" + }, + "cache-strategy": { + choices: [{ + description: "Use the file metadata such as timestamps as cache keys", + value: "metadata" + }, { + description: "Use the file content as cache keys", + value: "content" + }], + description: "Strategy for the cache to use for detecting changed files.", + type: "choice" + }, + check: { + alias: "c", + category: coreOptions.CATEGORY_OUTPUT, + description: outdent` + Check if the given files are formatted, print a human-friendly summary + message and paths to unformatted files (see also --list-different). + `, + type: "boolean" + }, + color: { + default: true, + description: "Colorize error messages.", + oppositeDescription: "Do not colorize error messages.", + type: "boolean" + }, + config: { + category: coreOptions.CATEGORY_CONFIG, + description: "Path to a Prettier configuration file (.prettierrc, package.json, prettier.config.js).", + exception: (value) => value === false, + oppositeDescription: "Do not look for a configuration file.", + type: "path" + }, + "config-precedence": { + category: coreOptions.CATEGORY_CONFIG, + choices: [{ + description: "CLI options take precedence over config file", + value: "cli-override" + }, { + description: "Config file take precedence over CLI options", + value: "file-override" + }, { + description: outdent` + If a config file is found will evaluate it and ignore other CLI options. + If no config file is found CLI options will evaluate as normal. + `, + value: "prefer-file" + }], + default: "cli-override", + description: "Define in which order config files and CLI options should be evaluated.", + type: "choice" + }, + "debug-benchmark": { + type: "boolean" + }, + "debug-check": { + type: "boolean" + }, + "debug-print-ast": { + type: "boolean" + }, + "debug-print-comments": { + type: "boolean" + }, + "debug-print-doc": { + type: "boolean" + }, + "debug-repeat": { + default: 0, + type: "int" + }, + editorconfig: { + category: coreOptions.CATEGORY_CONFIG, + default: true, + description: "Take .editorconfig into account when parsing configuration.", + oppositeDescription: "Don't take .editorconfig into account when parsing configuration.", + type: "boolean" + }, + "error-on-unmatched-pattern": { + oppositeDescription: "Prevent errors when pattern is unmatched.", + type: "boolean" + }, + "file-info": { + description: outdent` + Extract the following info (as JSON) for a given file path. Reported fields: + * ignored (boolean) - true if file path is filtered by --ignore-path + * inferredParser (string | null) - name of parser inferred from file path + `, + type: "path" + }, + "find-config-path": { + category: coreOptions.CATEGORY_CONFIG, + description: "Find and print the path to a configuration file for the given input file.", + type: "path" + }, + help: { + alias: "h", + description: outdent` + Show CLI usage, or details about the given flag. + Example: --help write + `, + exception: (value) => value === "", + type: "flag" + }, + "ignore-path": { + category: coreOptions.CATEGORY_CONFIG, + default: ".prettierignore", + description: "Path to a file with patterns describing files to ignore.", + type: "path" + }, + "ignore-unknown": { + alias: "u", + description: "Ignore unknown files.", + type: "boolean" + }, + "list-different": { + alias: "l", + category: coreOptions.CATEGORY_OUTPUT, + description: "Print the names of files that are different from Prettier's formatting (see also --check).", + type: "boolean" + }, + loglevel: { + choices: ["silent", "error", "warn", "log", "debug"], + default: "log", + description: "What level of logs to report.", + type: "choice" + }, + "plugin-search": { + oppositeDescription: "Disable plugin autoloading.", + type: "boolean" + }, + "support-info": { + description: "Print support information as JSON.", + type: "boolean" + }, + version: { + alias: "v", + description: "Print Prettier version.", + type: "boolean" + }, + "with-node-modules": { + category: coreOptions.CATEGORY_CONFIG, + description: "Process files inside 'node_modules' directory.", + type: "boolean" + }, + write: { + alias: "w", + category: coreOptions.CATEGORY_OUTPUT, + description: "Edit files in-place. (Beware!)", + type: "boolean" + } + }; + var usageSummary = outdent` + Usage: prettier [options] [file/dir/glob ...] + + By default, output is written to stdout. + Stdin is read if it is piped to Prettier and no files are given. +`; + module2.exports = { + categoryOrder, + options, + usageSummary + }; + } +}); +var require_dashify = __commonJS2({ + "node_modules/dashify/index.js"(exports2, module2) { + "use strict"; + module2.exports = (str, options) => { + if (typeof str !== "string") + throw new TypeError("expected a string"); + return str.trim().replace(/([a-z])([A-Z])/g, "$1-$2").replace(/\W/g, (m) => /[À-ž]/.test(m) ? m : "-").replace(/^-+|-+$/g, "").replace(/-{2,}/g, (m) => options && options.condense ? "-" : m).toLowerCase(); + }; + } +}); +var require_option_map = __commonJS2({ + "src/cli/options/option-map.js"(exports2, module2) { + "use strict"; + var dashify = require_dashify(); + var { + coreOptions + } = require_prettier_internal(); + function normalizeDetailedOption(name, option) { + return Object.assign(Object.assign({ + category: coreOptions.CATEGORY_OTHER + }, option), {}, { + choices: option.choices && option.choices.map((choice) => { + const newChoice = Object.assign({ + description: "", + deprecated: false + }, typeof choice === "object" ? choice : { + value: choice + }); + if (newChoice.value === true) { + newChoice.value = ""; + } + return newChoice; + }) + }); + } + function normalizeDetailedOptionMap(detailedOptionMap) { + return Object.fromEntries(Object.entries(detailedOptionMap).sort(([leftName], [rightName]) => leftName.localeCompare(rightName)).map(([name, option]) => [name, normalizeDetailedOption(name, option)])); + } + function createDetailedOptionMap(supportOptions) { + return Object.fromEntries(supportOptions.map((option) => { + const newOption = Object.assign(Object.assign({}, option), {}, { + name: option.cliName || dashify(option.name), + description: option.cliDescription || option.description, + category: option.cliCategory || coreOptions.CATEGORY_FORMAT, + forwardToApi: option.name + }); + if (option.deprecated) { + delete newOption.forwardToApi; + delete newOption.description; + delete newOption.oppositeDescription; + newOption.deprecated = true; + } + return [newOption.name, newOption]; + })); + } + module2.exports = { + normalizeDetailedOptionMap, + createDetailedOptionMap + }; + } +}); +var require_get_context_options = __commonJS2({ + "src/cli/options/get-context-options.js"(exports2, module2) { + "use strict"; + var prettier2 = require("./index.js"); + var { + optionsModule, + utils: { + arrayify + } + } = require_prettier_internal(); + var constant = require_constant(); + var { + normalizeDetailedOptionMap, + createDetailedOptionMap + } = require_option_map(); + function getContextOptions(plugins, pluginSearchDirs) { + const { + options: supportOptions, + languages + } = prettier2.getSupportInfo({ + showDeprecated: true, + showUnreleased: true, + showInternal: true, + plugins, + pluginSearchDirs + }); + const detailedOptionMap = normalizeDetailedOptionMap(Object.assign(Object.assign({}, createDetailedOptionMap(supportOptions)), constant.options)); + const detailedOptions = arrayify(detailedOptionMap, "name"); + const apiDefaultOptions = Object.assign(Object.assign({}, optionsModule.hiddenDefaults), Object.fromEntries(supportOptions.filter(({ + deprecated + }) => !deprecated).map((option) => [option.name, option.default]))); + return { + supportOptions, + detailedOptions, + detailedOptionMap, + apiDefaultOptions, + languages + }; + } + module2.exports = getContextOptions; + } +}); +var require_camelcase = __commonJS2({ + "node_modules/camelcase/index.js"(exports2, module2) { + "use strict"; + var UPPERCASE = /[\p{Lu}]/u; + var LOWERCASE = /[\p{Ll}]/u; + var LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu; + var IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u; + var SEPARATORS = /[_.\- ]+/; + var LEADING_SEPARATORS = new RegExp("^" + SEPARATORS.source); + var SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, "gu"); + var NUMBERS_AND_IDENTIFIER = new RegExp("\\d+" + IDENTIFIER.source, "gu"); + var preserveCamelCase = (string, toLowerCase, toUpperCase) => { + let isLastCharLower = false; + let isLastCharUpper = false; + let isLastLastCharUpper = false; + for (let i = 0; i < string.length; i++) { + const character = string[i]; + if (isLastCharLower && UPPERCASE.test(character)) { + string = string.slice(0, i) + "-" + string.slice(i); + isLastCharLower = false; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = true; + i++; + } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) { + string = string.slice(0, i - 1) + "-" + string.slice(i - 1); + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = false; + isLastCharLower = true; + } else { + isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character; + } + } + return string; + }; + var preserveConsecutiveUppercase = (input, toLowerCase) => { + LEADING_CAPITAL.lastIndex = 0; + return input.replace(LEADING_CAPITAL, (m1) => toLowerCase(m1)); + }; + var postProcess = (input, toUpperCase) => { + SEPARATORS_AND_IDENTIFIER.lastIndex = 0; + NUMBERS_AND_IDENTIFIER.lastIndex = 0; + return input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier)).replace(NUMBERS_AND_IDENTIFIER, (m) => toUpperCase(m)); + }; + var camelCase = (input, options) => { + if (!(typeof input === "string" || Array.isArray(input))) { + throw new TypeError("Expected the input to be `string | string[]`"); + } + options = Object.assign({ + pascalCase: false, + preserveConsecutiveUppercase: false + }, options); + if (Array.isArray(input)) { + input = input.map((x) => x.trim()).filter((x) => x.length).join("-"); + } else { + input = input.trim(); + } + if (input.length === 0) { + return ""; + } + const toLowerCase = options.locale === false ? (string) => string.toLowerCase() : (string) => string.toLocaleLowerCase(options.locale); + const toUpperCase = options.locale === false ? (string) => string.toUpperCase() : (string) => string.toLocaleUpperCase(options.locale); + if (input.length === 1) { + return options.pascalCase ? toUpperCase(input) : toLowerCase(input); + } + const hasUpperCase = input !== toLowerCase(input); + if (hasUpperCase) { + input = preserveCamelCase(input, toLowerCase, toUpperCase); + } + input = input.replace(LEADING_SEPARATORS, ""); + if (options.preserveConsecutiveUppercase) { + input = preserveConsecutiveUppercase(input, toLowerCase); + } else { + input = toLowerCase(input); + } + if (options.pascalCase) { + input = toUpperCase(input.charAt(0)) + input.slice(1); + } + return postProcess(input, toUpperCase); + }; + module2.exports = camelCase; + module2.exports.default = camelCase; + } +}); +var sdbm_exports = {}; +__export(sdbm_exports, { + default: () => sdbm +}); +function sdbm(string) { + let hash = 0; + for (let i = 0; i < string.length; i++) { + hash = string.charCodeAt(i) + (hash << 6) + (hash << 16) - hash; + } + return hash >>> 0; +} +var init_sdbm = __esm({ + "node_modules/sdbm/index.js"() { + } +}); +var require_utils = __commonJS2({ + "src/cli/utils.js"(exports2, module2) { + "use strict"; + var { + promises: fs + } = require("fs"); + var { + default: sdbm2 + } = (init_sdbm(), __toCommonJS(sdbm_exports)); + var printToScreen2 = console.log.bind(console); + function groupBy(array2, iteratee) { + const result = /* @__PURE__ */ Object.create(null); + for (const value of array2) { + const key = iteratee(value); + if (Array.isArray(result[key])) { + result[key].push(value); + } else { + result[key] = [value]; + } + } + return result; + } + function pick(object, keys) { + const entries = keys.map((key) => [key, object[key]]); + return Object.fromEntries(entries); + } + function createHash(source) { + return String(sdbm2(source)); + } + async function statSafe(filePath) { + try { + return await fs.stat(filePath); + } catch (error) { + if (error.code !== "ENOENT") { + throw error; + } + } + } + module2.exports = { + printToScreen: printToScreen2, + groupBy, + pick, + createHash, + statSafe + }; + } +}); +var require_minimist = __commonJS2({ + "node_modules/minimist/index.js"(exports2, module2) { + module2.exports = function(args, opts) { + if (!opts) + opts = {}; + var flags = { + bools: {}, + strings: {}, + unknownFn: null + }; + if (typeof opts["unknown"] === "function") { + flags.unknownFn = opts["unknown"]; + } + if (typeof opts["boolean"] === "boolean" && opts["boolean"]) { + flags.allBools = true; + } else { + [].concat(opts["boolean"]).filter(Boolean).forEach(function(key2) { + flags.bools[key2] = true; + }); + } + var aliases = {}; + Object.keys(opts.alias || {}).forEach(function(key2) { + aliases[key2] = [].concat(opts.alias[key2]); + aliases[key2].forEach(function(x) { + aliases[x] = [key2].concat(aliases[key2].filter(function(y) { + return x !== y; + })); + }); + }); + [].concat(opts.string).filter(Boolean).forEach(function(key2) { + flags.strings[key2] = true; + if (aliases[key2]) { + flags.strings[aliases[key2]] = true; + } + }); + var defaults = opts["default"] || {}; + var argv = { + _: [] + }; + Object.keys(flags.bools).forEach(function(key2) { + setArg(key2, defaults[key2] === void 0 ? false : defaults[key2]); + }); + var notFlags = []; + if (args.indexOf("--") !== -1) { + notFlags = args.slice(args.indexOf("--") + 1); + args = args.slice(0, args.indexOf("--")); + } + function argDefined(key2, arg2) { + return flags.allBools && /^--[^=]+$/.test(arg2) || flags.strings[key2] || flags.bools[key2] || aliases[key2]; + } + function setArg(key2, val, arg2) { + if (arg2 && flags.unknownFn && !argDefined(key2, arg2)) { + if (flags.unknownFn(arg2) === false) + return; + } + var value2 = !flags.strings[key2] && isNumber(val) ? Number(val) : val; + setKey(argv, key2.split("."), value2); + (aliases[key2] || []).forEach(function(x) { + setKey(argv, x.split("."), value2); + }); + } + function setKey(obj, keys, value2) { + var o = obj; + for (var i2 = 0; i2 < keys.length - 1; i2++) { + var key2 = keys[i2]; + if (isConstructorOrProto(o, key2)) + return; + if (o[key2] === void 0) + o[key2] = {}; + if (o[key2] === Object.prototype || o[key2] === Number.prototype || o[key2] === String.prototype) + o[key2] = {}; + if (o[key2] === Array.prototype) + o[key2] = []; + o = o[key2]; + } + var key2 = keys[keys.length - 1]; + if (isConstructorOrProto(o, key2)) + return; + if (o === Object.prototype || o === Number.prototype || o === String.prototype) + o = {}; + if (o === Array.prototype) + o = []; + if (o[key2] === void 0 || flags.bools[key2] || typeof o[key2] === "boolean") { + o[key2] = value2; + } else if (Array.isArray(o[key2])) { + o[key2].push(value2); + } else { + o[key2] = [o[key2], value2]; + } + } + function aliasIsBoolean(key2) { + return aliases[key2].some(function(x) { + return flags.bools[x]; + }); + } + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + if (/^--.+=/.test(arg)) { + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + var key = m[1]; + var value = m[2]; + if (flags.bools[key]) { + value = value !== "false"; + } + setArg(key, value, arg); + } else if (/^--no-.+/.test(arg)) { + var key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false, arg); + } else if (/^--.+/.test(arg)) { + var key = arg.match(/^--(.+)/)[1]; + var next = args[i + 1]; + if (next !== void 0 && !/^-/.test(next) && !flags.bools[key] && !flags.allBools && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, next, arg); + i++; + } else if (/^(true|false)$/.test(next)) { + setArg(key, next === "true", arg); + i++; + } else { + setArg(key, flags.strings[key] ? "" : true, arg); + } + } else if (/^-[^-]+/.test(arg)) { + var letters = arg.slice(1, -1).split(""); + var broken = false; + for (var j = 0; j < letters.length; j++) { + var next = arg.slice(j + 2); + if (next === "-") { + setArg(letters[j], next, arg); + continue; + } + if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { + setArg(letters[j], next.split("=")[1], arg); + broken = true; + break; + } + if (/[A-Za-z]/.test(letters[j]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { + setArg(letters[j], next, arg); + broken = true; + break; + } + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], arg.slice(j + 2), arg); + broken = true; + break; + } else { + setArg(letters[j], flags.strings[letters[j]] ? "" : true, arg); + } + } + var key = arg.slice(-1)[0]; + if (!broken && key !== "-") { + if (args[i + 1] && !/^(-|--)[^-]/.test(args[i + 1]) && !flags.bools[key] && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, args[i + 1], arg); + i++; + } else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) { + setArg(key, args[i + 1] === "true", arg); + i++; + } else { + setArg(key, flags.strings[key] ? "" : true, arg); + } + } + } else { + if (!flags.unknownFn || flags.unknownFn(arg) !== false) { + argv._.push(flags.strings["_"] || !isNumber(arg) ? arg : Number(arg)); + } + if (opts.stopEarly) { + argv._.push.apply(argv._, args.slice(i + 1)); + break; + } + } + } + Object.keys(defaults).forEach(function(key2) { + if (!hasKey(argv, key2.split("."))) { + setKey(argv, key2.split("."), defaults[key2]); + (aliases[key2] || []).forEach(function(x) { + setKey(argv, x.split("."), defaults[key2]); + }); + } + }); + if (opts["--"]) { + argv["--"] = new Array(); + notFlags.forEach(function(key2) { + argv["--"].push(key2); + }); + } else { + notFlags.forEach(function(key2) { + argv._.push(key2); + }); + } + return argv; + }; + function hasKey(obj, keys) { + var o = obj; + keys.slice(0, -1).forEach(function(key2) { + o = o[key2] || {}; + }); + var key = keys[keys.length - 1]; + return key in o; + } + function isNumber(x) { + if (typeof x === "number") + return true; + if (/^0x[0-9a-f]+$/i.test(x)) + return true; + return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); + } + function isConstructorOrProto(obj, key) { + return key === "constructor" && typeof obj[key] === "function" || key === "__proto__"; + } + } +}); +var require_minimist2 = __commonJS2({ + "src/cli/options/minimist.js"(exports2, module2) { + "use strict"; + var minimist = require_minimist(); + var PLACEHOLDER = null; + module2.exports = function(args, options) { + const boolean = options.boolean || []; + const defaults = options.default || {}; + const booleanWithoutDefault = boolean.filter((key) => !(key in defaults)); + const newDefaults = Object.assign(Object.assign({}, defaults), Object.fromEntries(booleanWithoutDefault.map((key) => [key, PLACEHOLDER]))); + const parsed = minimist(args, Object.assign(Object.assign({}, options), {}, { + default: newDefaults + })); + return Object.fromEntries(Object.entries(parsed).filter(([, value]) => value !== PLACEHOLDER)); + }; + } +}); +var require_create_minimist_options = __commonJS2({ + "src/cli/options/create-minimist-options.js"(exports2, module2) { + "use strict"; + var { + utils: { + partition + } + } = require_prettier_internal(); + module2.exports = function createMinimistOptions(detailedOptions) { + const [boolean, string] = partition(detailedOptions, ({ + type + }) => type === "boolean").map((detailedOptions2) => detailedOptions2.flatMap(({ + name, + alias + }) => alias ? [name, alias] : [name])); + const defaults = Object.fromEntries(detailedOptions.filter((option) => !option.deprecated && (!option.forwardToApi || option.name === "plugin" || option.name === "plugin-search-dir") && option.default !== void 0).map((option) => [option.name, option.default])); + return { + alias: {}, + boolean, + string, + default: defaults + }; + }; + } +}); +var leven_exports = {}; +__export(leven_exports, { + default: () => leven +}); +function leven(first, second) { + if (first === second) { + return 0; + } + const swap = first; + if (first.length > second.length) { + first = second; + second = swap; + } + let firstLength = first.length; + let secondLength = second.length; + while (firstLength > 0 && first.charCodeAt(~-firstLength) === second.charCodeAt(~-secondLength)) { + firstLength--; + secondLength--; + } + let start = 0; + while (start < firstLength && first.charCodeAt(start) === second.charCodeAt(start)) { + start++; + } + firstLength -= start; + secondLength -= start; + if (firstLength === 0) { + return secondLength; + } + let bCharacterCode; + let result; + let temporary; + let temporary2; + let index = 0; + let index2 = 0; + while (index < firstLength) { + characterCodeCache[index] = first.charCodeAt(start + index); + array[index] = ++index; + } + while (index2 < secondLength) { + bCharacterCode = second.charCodeAt(start + index2); + temporary = index2++; + result = index2; + for (index = 0; index < firstLength; index++) { + temporary2 = bCharacterCode === characterCodeCache[index] ? temporary : temporary + 1; + temporary = array[index]; + result = array[index] = temporary > result ? temporary2 > result ? result + 1 : temporary2 : temporary2 > temporary ? temporary + 1 : temporary2; + } + } + return result; +} +var array; +var characterCodeCache; +var init_leven = __esm({ + "node_modules/leven/index.js"() { + array = []; + characterCodeCache = []; + } +}); +var require_normalize_cli_options = __commonJS2({ + "src/cli/options/normalize-cli-options.js"(exports2, module2) { + "use strict"; + var { + default: chalk2 + } = (init_source(), __toCommonJS(source_exports)); + var { + default: leven2 + } = (init_leven(), __toCommonJS(leven_exports)); + var { + optionsNormalizer + } = require_prettier_internal(); + function normalizeCliOptions(options, optionInfos, opts) { + return optionsNormalizer.normalizeCliOptions(options, optionInfos, Object.assign({ + colorsModule: chalk2, + levenshteinDistance: leven2 + }, opts)); + } + module2.exports = normalizeCliOptions; + } +}); +var require_parse_cli_arguments = __commonJS2({ + "src/cli/options/parse-cli-arguments.js"(exports2, module2) { + "use strict"; + var camelCase = require_camelcase(); + var { + pick + } = require_utils(); + var getContextOptions = require_get_context_options(); + var minimist = require_minimist2(); + var createMinimistOptions = require_create_minimist_options(); + var normalizeCliOptions = require_normalize_cli_options(); + function parseArgv(rawArguments, detailedOptions, logger, keys) { + const minimistOptions = createMinimistOptions(detailedOptions); + let argv = minimist(rawArguments, minimistOptions); + if (keys) { + if (keys.includes("plugin-search-dir") && !keys.includes("plugin-search")) { + keys.push("plugin-search"); + } + detailedOptions = detailedOptions.filter((option) => keys.includes(option.name)); + argv = pick(argv, keys); + } + const normalized = normalizeCliOptions(argv, detailedOptions, { + logger + }); + return Object.assign(Object.assign({}, Object.fromEntries(Object.entries(normalized).map(([key, value]) => { + const option = detailedOptions.find(({ + name + }) => name === key) || {}; + return [option.forwardToApi || camelCase(key), value]; + }))), {}, { + get __raw() { + return argv; + } + }); + } + var detailedOptionsWithoutPlugins = getContextOptions([], false).detailedOptions; + function parseArgvWithoutPlugins2(rawArguments, logger, keys) { + return parseArgv(rawArguments, detailedOptionsWithoutPlugins, logger, typeof keys === "string" ? [keys] : keys); + } + module2.exports = { + parseArgv, + parseArgvWithoutPlugins: parseArgvWithoutPlugins2 + }; + } +}); +var require_context = __commonJS2({ + "src/cli/context.js"(exports2, module2) { + "use strict"; + var { + utils: { + getLast + } + } = require_prettier_internal(); + var getContextOptions = require_get_context_options(); + var { + parseArgv, + parseArgvWithoutPlugins: parseArgvWithoutPlugins2 + } = require_parse_cli_arguments(); + var Context2 = class { + constructor({ + rawArguments, + logger + }) { + this.rawArguments = rawArguments; + this.logger = logger; + this.stack = []; + const { + plugins, + pluginSearchDirs + } = parseArgvWithoutPlugins2(rawArguments, logger, ["plugin", "plugin-search-dir"]); + this.pushContextPlugins(plugins, pluginSearchDirs); + const argv = parseArgv(rawArguments, this.detailedOptions, logger); + this.argv = argv; + this.filePatterns = argv._.map(String); + } + pushContextPlugins(plugins, pluginSearchDirs) { + const options = getContextOptions(plugins, pluginSearchDirs); + this.stack.push(options); + Object.assign(this, options); + } + popContextPlugins() { + this.stack.pop(); + Object.assign(this, getLast(this.stack)); + } + get performanceTestFlag() { + const { + debugBenchmark, + debugRepeat + } = this.argv; + if (debugBenchmark) { + return { + name: "--debug-benchmark", + debugBenchmark: true + }; + } + if (debugRepeat > 0) { + return { + name: "--debug-repeat", + debugRepeat + }; + } + const { + PRETTIER_PERF_REPEAT + } = process.env; + if (PRETTIER_PERF_REPEAT && /^\d+$/.test(PRETTIER_PERF_REPEAT)) { + return { + name: "PRETTIER_PERF_REPEAT (environment variable)", + debugRepeat: Number(PRETTIER_PERF_REPEAT) + }; + } + } + }; + module2.exports = Context2; + } +}); +var require_usage = __commonJS2({ + "src/cli/usage.js"(exports2, module2) { + "use strict"; + var camelCase = require_camelcase(); + var constant = require_constant(); + var { + groupBy + } = require_utils(); + var OPTION_USAGE_THRESHOLD = 25; + var CHOICE_USAGE_MARGIN = 3; + var CHOICE_USAGE_INDENTATION = 2; + function indent(str, spaces) { + return str.replace(/^/gm, " ".repeat(spaces)); + } + function createDefaultValueDisplay(value) { + return Array.isArray(value) ? `[${value.map(createDefaultValueDisplay).join(", ")}]` : value; + } + function getOptionDefaultValue(context, optionName) { + if (!(optionName in context.detailedOptionMap)) { + return; + } + const option = context.detailedOptionMap[optionName]; + if (option.default !== void 0) { + return option.default; + } + const optionCamelName = camelCase(optionName); + if (optionCamelName in context.apiDefaultOptions) { + return context.apiDefaultOptions[optionCamelName]; + } + } + function createOptionUsageHeader(option) { + const name = `--${option.name}`; + const alias = option.alias ? `-${option.alias},` : null; + const type = createOptionUsageType(option); + return [alias, name, type].filter(Boolean).join(" "); + } + function createOptionUsageRow(header, content, threshold) { + const separator = header.length >= threshold ? ` +${" ".repeat(threshold)}` : " ".repeat(threshold - header.length); + const description = content.replace(/\n/g, ` +${" ".repeat(threshold)}`); + return `${header}${separator}${description}`; + } + function createOptionUsageType(option) { + switch (option.type) { + case "boolean": + return null; + case "choice": + return `<${option.choices.filter((choice) => !choice.deprecated && choice.since !== null).map((choice) => choice.value).join("|")}>`; + default: + return `<${option.type}>`; + } + } + function createChoiceUsages(choices, margin, indentation) { + const activeChoices = choices.filter((choice) => !choice.deprecated && choice.since !== null); + const threshold = Math.max(0, ...activeChoices.map((choice) => choice.value.length)) + margin; + return activeChoices.map((choice) => indent(createOptionUsageRow(choice.value, choice.description, threshold), indentation)); + } + function createOptionUsage(context, option, threshold) { + const header = createOptionUsageHeader(option); + const optionDefaultValue = getOptionDefaultValue(context, option.name); + return createOptionUsageRow(header, `${option.description}${optionDefaultValue === void 0 ? "" : ` +Defaults to ${createDefaultValueDisplay(optionDefaultValue)}.`}`, threshold); + } + function getOptionsWithOpposites(options) { + const optionsWithOpposites = options.map((option) => [option.description ? option : null, option.oppositeDescription ? Object.assign(Object.assign({}, option), {}, { + name: `no-${option.name}`, + type: "boolean", + description: option.oppositeDescription + }) : null]); + return optionsWithOpposites.flat().filter(Boolean); + } + function createUsage2(context) { + const options = getOptionsWithOpposites(context.detailedOptions).filter((option) => !(option.type === "boolean" && option.oppositeDescription && !option.name.startsWith("no-"))); + const groupedOptions = groupBy(options, (option) => option.category); + const firstCategories = constant.categoryOrder.slice(0, -1); + const lastCategories = constant.categoryOrder.slice(-1); + const restCategories = Object.keys(groupedOptions).filter((category) => !constant.categoryOrder.includes(category)); + const allCategories = [...firstCategories, ...restCategories, ...lastCategories]; + const optionsUsage = allCategories.map((category) => { + const categoryOptions = groupedOptions[category].map((option) => createOptionUsage(context, option, OPTION_USAGE_THRESHOLD)).join("\n"); + return `${category} options: + +${indent(categoryOptions, 2)}`; + }); + return [constant.usageSummary, ...optionsUsage, ""].join("\n\n"); + } + function createDetailedUsage2(context, flag) { + const option = getOptionsWithOpposites(context.detailedOptions).find((option2) => option2.name === flag || option2.alias === flag); + const header = createOptionUsageHeader(option); + const description = ` + +${indent(option.description, 2)}`; + const choices = option.type !== "choice" ? "" : ` + +Valid options: + +${createChoiceUsages(option.choices, CHOICE_USAGE_MARGIN, CHOICE_USAGE_INDENTATION).join("\n")}`; + const optionDefaultValue = getOptionDefaultValue(context, option.name); + const defaults = optionDefaultValue !== void 0 ? ` + +Default: ${createDefaultValueDisplay(optionDefaultValue)}` : ""; + const pluginDefaults = option.pluginDefaults && Object.keys(option.pluginDefaults).length > 0 ? ` +Plugin defaults:${Object.entries(option.pluginDefaults).map(([key, value]) => ` +* ${key}: ${createDefaultValueDisplay(value)}`)}` : ""; + return `${header}${description}${choices}${defaults}${pluginDefaults}`; + } + module2.exports = { + createUsage: createUsage2, + createDetailedUsage: createDetailedUsage2 + }; + } +}); +var require_array = __commonJS2({ + "node_modules/fast-glob/out/utils/array.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.splitWhen = exports2.flatten = void 0; + function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); + } + exports2.flatten = flatten; + function splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } else { + result[groupIndex].push(item); + } + } + return result; + } + exports2.splitWhen = splitWhen; + } +}); +var require_errno = __commonJS2({ + "node_modules/fast-glob/out/utils/errno.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isEnoentCodeError = void 0; + function isEnoentCodeError(error) { + return error.code === "ENOENT"; + } + exports2.isEnoentCodeError = isEnoentCodeError; + } +}); +var require_fs = __commonJS2({ + "node_modules/fast-glob/out/utils/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createDirentFromStats = void 0; + var DirentFromStats = class { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } + }; + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); + } + exports2.createDirentFromStats = createDirentFromStats; + } +}); +var require_path = __commonJS2({ + "node_modules/fast-glob/out/utils/path.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.removeLeadingDotSegment = exports2.escape = exports2.makeAbsolute = exports2.unixify = void 0; + var path = require("path"); + var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; + var UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; + function unixify(filepath) { + return filepath.replace(/\\/g, "/"); + } + exports2.unixify = unixify; + function makeAbsolute(cwd, filepath) { + return path.resolve(cwd, filepath); + } + exports2.makeAbsolute = makeAbsolute; + function escape(pattern) { + return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, "\\$2"); + } + exports2.escape = escape; + function removeLeadingDotSegment(entry) { + if (entry.charAt(0) === ".") { + const secondCharactery = entry.charAt(1); + if (secondCharactery === "/" || secondCharactery === "\\") { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } + } + return entry; + } + exports2.removeLeadingDotSegment = removeLeadingDotSegment; + } +}); +var require_is_extglob = __commonJS2({ + "node_modules/is-extglob/index.js"(exports2, module2) { + module2.exports = function isExtglob(str) { + if (typeof str !== "string" || str === "") { + return false; + } + var match; + while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) { + if (match[2]) + return true; + str = str.slice(match.index + match[0].length); + } + return false; + }; + } +}); +var require_is_glob = __commonJS2({ + "node_modules/is-glob/index.js"(exports2, module2) { + var isExtglob = require_is_extglob(); + var chars = { + "{": "}", + "(": ")", + "[": "]" + }; + var strictCheck = function(str) { + if (str[0] === "!") { + return true; + } + var index = 0; + var pipeIndex = -2; + var closeSquareIndex = -2; + var closeCurlyIndex = -2; + var closeParenIndex = -2; + var backSlashIndex = -2; + while (index < str.length) { + if (str[index] === "*") { + return true; + } + if (str[index + 1] === "?" && /[\].+)]/.test(str[index])) { + return true; + } + if (closeSquareIndex !== -1 && str[index] === "[" && str[index + 1] !== "]") { + if (closeSquareIndex < index) { + closeSquareIndex = str.indexOf("]", index); + } + if (closeSquareIndex > index) { + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + backSlashIndex = str.indexOf("\\", index); + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + } + } + if (closeCurlyIndex !== -1 && str[index] === "{" && str[index + 1] !== "}") { + closeCurlyIndex = str.indexOf("}", index); + if (closeCurlyIndex > index) { + backSlashIndex = str.indexOf("\\", index); + if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { + return true; + } + } + } + if (closeParenIndex !== -1 && str[index] === "(" && str[index + 1] === "?" && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ")") { + closeParenIndex = str.indexOf(")", index); + if (closeParenIndex > index) { + backSlashIndex = str.indexOf("\\", index); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + if (pipeIndex !== -1 && str[index] === "(" && str[index + 1] !== "|") { + if (pipeIndex < index) { + pipeIndex = str.indexOf("|", index); + } + if (pipeIndex !== -1 && str[pipeIndex + 1] !== ")") { + closeParenIndex = str.indexOf(")", pipeIndex); + if (closeParenIndex > pipeIndex) { + backSlashIndex = str.indexOf("\\", pipeIndex); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + } + if (str[index] === "\\") { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + if (str[index] === "!") { + return true; + } + } else { + index++; + } + } + return false; + }; + var relaxedCheck = function(str) { + if (str[0] === "!") { + return true; + } + var index = 0; + while (index < str.length) { + if (/[*?{}()[\]]/.test(str[index])) { + return true; + } + if (str[index] === "\\") { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + if (str[index] === "!") { + return true; + } + } else { + index++; + } + } + return false; + }; + module2.exports = function isGlob(str, options) { + if (typeof str !== "string" || str === "") { + return false; + } + if (isExtglob(str)) { + return true; + } + var check = strictCheck; + if (options && options.strict === false) { + check = relaxedCheck; + } + return check(str); + }; + } +}); +var require_glob_parent = __commonJS2({ + "node_modules/glob-parent/index.js"(exports2, module2) { + "use strict"; + var isGlob = require_is_glob(); + var pathPosixDirname = require("path").posix.dirname; + var isWin32 = require("os").platform() === "win32"; + var slash = "/"; + var backslash = /\\/g; + var enclosure = /[\{\[].*[\}\]]$/; + var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; + var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + module2.exports = function globParent(str, opts) { + var options = Object.assign({ + flipBackslashes: true + }, opts); + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + if (enclosure.test(str)) { + str += slash; + } + str += "a"; + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); + return str.replace(escaped, "$1"); + }; + } +}); +var require_utils2 = __commonJS2({ + "node_modules/braces/lib/utils.js"(exports2) { + "use strict"; + exports2.isInteger = (num) => { + if (typeof num === "number") { + return Number.isInteger(num); + } + if (typeof num === "string" && num.trim() !== "") { + return Number.isInteger(Number(num)); + } + return false; + }; + exports2.find = (node, type) => node.nodes.find((node2) => node2.type === type); + exports2.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) + return false; + if (!exports2.isInteger(min) || !exports2.isInteger(max)) + return false; + return (Number(max) - Number(min)) / Number(step) >= limit; + }; + exports2.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) + return; + if (type && node.type === type || node.type === "open" || node.type === "close") { + if (node.escaped !== true) { + node.value = "\\" + node.value; + node.escaped = true; + } + } + }; + exports2.encloseBrace = (node) => { + if (node.type !== "brace") + return false; + if (node.commas >> 0 + node.ranges >> 0 === 0) { + node.invalid = true; + return true; + } + return false; + }; + exports2.isInvalidBrace = (block) => { + if (block.type !== "brace") + return false; + if (block.invalid === true || block.dollar) + return true; + if (block.commas >> 0 + block.ranges >> 0 === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; + }; + exports2.isOpenOrClose = (node) => { + if (node.type === "open" || node.type === "close") { + return true; + } + return node.open === true || node.close === true; + }; + exports2.reduce = (nodes) => nodes.reduce((acc, node) => { + if (node.type === "text") + acc.push(node.value); + if (node.type === "range") + node.type = "text"; + return acc; + }, []); + exports2.flatten = (...args) => { + const result = []; + const flat = (arr) => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); + } + return result; + }; + flat(args); + return result; + }; + } +}); +var require_stringify = __commonJS2({ + "node_modules/braces/lib/stringify.js"(exports2, module2) { + "use strict"; + var utils = require_utils2(); + module2.exports = (ast, options = {}) => { + let stringify2 = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ""; + if (node.value) { + if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { + return "\\" + node.value; + } + return node.value; + } + if (node.value) { + return node.value; + } + if (node.nodes) { + for (let child of node.nodes) { + output += stringify2(child); + } + } + return output; + }; + return stringify2(ast); + }; + } +}); +var require_is_number = __commonJS2({ + "node_modules/is-number/index.js"(exports2, module2) { + "use strict"; + module2.exports = function(num) { + if (typeof num === "number") { + return num - num === 0; + } + if (typeof num === "string" && num.trim() !== "") { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; + }; + } +}); +var require_to_regex_range = __commonJS2({ + "node_modules/to-regex-range/index.js"(exports2, module2) { + "use strict"; + var isNumber = require_is_number(); + var toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError("toRegexRange: expected the first argument to be a number"); + } + if (max === void 0 || min === max) { + return String(min); + } + if (isNumber(max) === false) { + throw new TypeError("toRegexRange: expected the second argument to be a number."); + } + let opts = Object.assign({ + relaxZeros: true + }, options); + if (typeof opts.strictZeros === "boolean") { + opts.relaxZeros = opts.strictZeros === false; + } + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ":" + max + "=" + relax + shorthand + capture + wrap; + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + let a = Math.min(min, max); + let b = Math.max(min, max); + if (Math.abs(a - b) === 1) { + let result = min + "|" + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + let isPadded = hasPadding(min) || hasPadding(max); + let state = { + min, + max, + a, + b + }; + let positives = []; + let negatives = []; + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && positives.length + negatives.length > 1) { + state.result = `(?:${state.result})`; + } + toRegexRange.cache[cacheKey] = state; + return state.result; + }; + function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, "-", false, options) || []; + let onlyPositive = filterPatterns(pos, neg, "", false, options) || []; + let intersected = filterPatterns(neg, pos, "-?", true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join("|"); + } + function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + let stop = countNines(min, nines); + let stops = /* @__PURE__ */ new Set([max]); + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + stop = countZeros(max + 1, zeros) - 1; + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + stops = [...stops]; + stops.sort(compare); + return stops; + } + function rangeToPattern(start, stop, options) { + if (start === stop) { + return { + pattern: start, + count: [], + digits: 0 + }; + } + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ""; + let count = 0; + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + if (startDigit === stopDigit) { + pattern += startDigit; + } else if (startDigit !== "0" || stopDigit !== "9") { + pattern += toCharacterClass(startDigit, stopDigit, options); + } else { + count++; + } + } + if (count) { + pattern += options.shorthand === true ? "\\d" : "[0-9]"; + } + return { + pattern, + count: [count], + digits + }; + } + function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + for (let i = 0; i < ranges.length; i++) { + let max2 = ranges[i]; + let obj = rangeToPattern(String(start), String(max2), options); + let zeros = ""; + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max2 + 1; + continue; + } + if (tok.isPadded) { + zeros = padZeros(max2, tok, options); + } + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max2 + 1; + prev = obj; + } + return tokens; + } + function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + for (let ele of arr) { + let { + string + } = ele; + if (!intersection && !contains(comparison, "string", string)) { + result.push(prefix + string); + } + if (intersection && contains(comparison, "string", string)) { + result.push(prefix + string); + } + } + return result; + } + function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) + arr.push([a[i], b[i]]); + return arr; + } + function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; + } + function contains(arr, key, val) { + return arr.some((ele) => ele[key] === val); + } + function countNines(min, len) { + return Number(String(min).slice(0, -len) + "9".repeat(len)); + } + function countZeros(integer, zeros) { + return integer - integer % Math.pow(10, zeros); + } + function toQuantifier(digits) { + let [start = 0, stop = ""] = digits; + if (stop || start > 1) { + return `{${start + (stop ? "," + stop : "")}}`; + } + return ""; + } + function toCharacterClass(a, b, options) { + return `[${a}${b - a === 1 ? "" : "-"}${b}]`; + } + function hasPadding(str) { + return /^-?(0+)\d/.test(str); + } + function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + switch (diff) { + case 0: + return ""; + case 1: + return relax ? "0?" : "0"; + case 2: + return relax ? "0{0,2}" : "00"; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } + } + toRegexRange.cache = {}; + toRegexRange.clearCache = () => toRegexRange.cache = {}; + module2.exports = toRegexRange; + } +}); +var require_fill_range = __commonJS2({ + "node_modules/fill-range/index.js"(exports2, module2) { + "use strict"; + var util = require("util"); + var toRegexRange = require_to_regex_range(); + var isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); + var transform = (toNumber) => { + return (value) => toNumber === true ? Number(value) : String(value); + }; + var isValidValue = (value) => { + return typeof value === "number" || typeof value === "string" && value !== ""; + }; + var isNumber = (num) => Number.isInteger(+num); + var zeros = (input) => { + let value = `${input}`; + let index = -1; + if (value[0] === "-") + value = value.slice(1); + if (value === "0") + return false; + while (value[++index] === "0") + ; + return index > 0; + }; + var stringify2 = (start, end, options) => { + if (typeof start === "string" || typeof end === "string") { + return true; + } + return options.stringify === true; + }; + var pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === "-" ? "-" : ""; + if (dash) + input = input.slice(1); + input = dash + input.padStart(dash ? maxLength - 1 : maxLength, "0"); + } + if (toNumber === false) { + return String(input); + } + return input; + }; + var toMaxLen = (input, maxLength) => { + let negative = input[0] === "-" ? "-" : ""; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) + input = "0" + input; + return negative ? "-" + input : input; + }; + var toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + let prefix = options.capture ? "" : "?:"; + let positives = ""; + let negatives = ""; + let result; + if (parts.positives.length) { + positives = parts.positives.join("|"); + } + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join("|")})`; + } + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + if (options.wrap) { + return `(${prefix}${result})`; + } + return result; + }; + var toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, Object.assign({ + wrap: false + }, options)); + } + let start = String.fromCharCode(a); + if (a === b) + return start; + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; + }; + var toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? "" : "?:"; + return wrap ? `(${prefix}${start.join("|")})` : start.join("|"); + } + return toRegexRange(start, end, options); + }; + var rangeError = (...args) => { + return new RangeError("Invalid range arguments: " + util.inspect(...args)); + }; + var invalidRange = (start, end, options) => { + if (options.strictRanges === true) + throw rangeError([start, end]); + return []; + }; + var invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; + }; + var fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) + throw rangeError([start, end]); + return []; + } + if (a === 0) + a = 0; + if (b === 0) + b = 0; + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify2(start, end, options) === false; + let format = options.transform || transform(toNumber); + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + let parts = { + negatives: [], + positives: [] + }; + let push = (num) => parts[num < 0 ? "negatives" : "positives"].push(Math.abs(num)); + let range = []; + let index = 0; + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } + if (options.toRegex === true) { + return step > 1 ? toSequence(parts, options) : toRegex(range, null, Object.assign({ + wrap: false + }, options)); + } + return range; + }; + var fillLetters = (start, end, step = 1, options = {}) => { + if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) { + return invalidRange(start, end, options); + } + let format = options.transform || ((val) => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + let range = []; + let index = 0; + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + if (options.toRegex === true) { + return toRegex(range, null, { + wrap: false, + options + }); + } + return range; + }; + var fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + if (typeof step === "function") { + return fill(start, end, 1, { + transform: step + }); + } + if (isObject(step)) { + return fill(start, end, 0, step); + } + let opts = Object.assign({}, options); + if (opts.capture === true) + opts.wrap = true; + step = step || opts.step || 1; + if (!isNumber(step)) { + if (step != null && !isObject(step)) + return invalidStep(step, opts); + return fill(start, end, 1, step); + } + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); + }; + module2.exports = fill; + } +}); +var require_compile = __commonJS2({ + "node_modules/braces/lib/compile.js"(exports2, module2) { + "use strict"; + var fill = require_fill_range(); + var utils = require_utils2(); + var compile = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? "\\" : ""; + let output = ""; + if (node.isOpen === true) { + return prefix + node.value; + } + if (node.isClose === true) { + return prefix + node.value; + } + if (node.type === "open") { + return invalid ? prefix + node.value : "("; + } + if (node.type === "close") { + return invalid ? prefix + node.value : ")"; + } + if (node.type === "comma") { + return node.prev.type === "comma" ? "" : invalid ? node.value : "|"; + } + if (node.value) { + return node.value; + } + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + let range = fill(...args, Object.assign(Object.assign({}, options), {}, { + wrap: false, + toRegex: true + })); + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); + } + } + return output; + }; + return walk(ast); + }; + module2.exports = compile; + } +}); +var require_expand = __commonJS2({ + "node_modules/braces/lib/expand.js"(exports2, module2) { + "use strict"; + var fill = require_fill_range(); + var stringify2 = require_stringify(); + var utils = require_utils2(); + var append = (queue = "", stash = "", enclose = false) => { + let result = []; + queue = [].concat(queue); + stash = [].concat(stash); + if (!stash.length) + return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map((ele) => `{${ele}}`) : stash; + } + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === "string") + ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); + } + } + } + return utils.flatten(result); + }; + var expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1e3 : options.rangeLimit; + let walk = (node, parent = {}) => { + node.queue = []; + let p = parent; + let q = parent.queue; + while (p.type !== "brace" && p.type !== "root" && p.parent) { + p = p.parent; + q = p.queue; + } + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify2(node, options))); + return; + } + if (node.type === "brace" && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ["{}"])); + return; + } + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit."); + } + let range = fill(...args, options); + if (range.length === 0) { + range = stringify2(node, options); + } + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } + let enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; + while (block.type !== "brace" && block.type !== "root" && block.parent) { + block = block.parent; + queue = block.queue; + } + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + if (child.type === "comma" && node.type === "brace") { + if (i === 1) + queue.push(""); + queue.push(""); + continue; + } + if (child.type === "close") { + q.push(append(q.pop(), queue, enclose)); + continue; + } + if (child.value && child.type !== "open") { + queue.push(append(queue.pop(), child.value)); + continue; + } + if (child.nodes) { + walk(child, node); + } + } + return queue; + }; + return utils.flatten(walk(ast)); + }; + module2.exports = expand; + } +}); +var require_constants = __commonJS2({ + "node_modules/braces/lib/constants.js"(exports2, module2) { + "use strict"; + module2.exports = { + MAX_LENGTH: 1024 * 64, + CHAR_0: "0", + CHAR_9: "9", + CHAR_UPPERCASE_A: "A", + CHAR_LOWERCASE_A: "a", + CHAR_UPPERCASE_Z: "Z", + CHAR_LOWERCASE_Z: "z", + CHAR_LEFT_PARENTHESES: "(", + CHAR_RIGHT_PARENTHESES: ")", + CHAR_ASTERISK: "*", + CHAR_AMPERSAND: "&", + CHAR_AT: "@", + CHAR_BACKSLASH: "\\", + CHAR_BACKTICK: "`", + CHAR_CARRIAGE_RETURN: "\r", + CHAR_CIRCUMFLEX_ACCENT: "^", + CHAR_COLON: ":", + CHAR_COMMA: ",", + CHAR_DOLLAR: "$", + CHAR_DOT: ".", + CHAR_DOUBLE_QUOTE: '"', + CHAR_EQUAL: "=", + CHAR_EXCLAMATION_MARK: "!", + CHAR_FORM_FEED: "\f", + CHAR_FORWARD_SLASH: "/", + CHAR_HASH: "#", + CHAR_HYPHEN_MINUS: "-", + CHAR_LEFT_ANGLE_BRACKET: "<", + CHAR_LEFT_CURLY_BRACE: "{", + CHAR_LEFT_SQUARE_BRACKET: "[", + CHAR_LINE_FEED: "\n", + CHAR_NO_BREAK_SPACE: "\xA0", + CHAR_PERCENT: "%", + CHAR_PLUS: "+", + CHAR_QUESTION_MARK: "?", + CHAR_RIGHT_ANGLE_BRACKET: ">", + CHAR_RIGHT_CURLY_BRACE: "}", + CHAR_RIGHT_SQUARE_BRACKET: "]", + CHAR_SEMICOLON: ";", + CHAR_SINGLE_QUOTE: "'", + CHAR_SPACE: " ", + CHAR_TAB: " ", + CHAR_UNDERSCORE: "_", + CHAR_VERTICAL_LINE: "|", + CHAR_ZERO_WIDTH_NOBREAK_SPACE: "\uFEFF" + }; + } +}); +var require_parse = __commonJS2({ + "node_modules/braces/lib/parse.js"(exports2, module2) { + "use strict"; + var stringify2 = require_stringify(); + var { + MAX_LENGTH, + CHAR_BACKSLASH, + CHAR_BACKTICK, + CHAR_COMMA, + CHAR_DOT, + CHAR_LEFT_PARENTHESES, + CHAR_RIGHT_PARENTHESES, + CHAR_LEFT_CURLY_BRACE, + CHAR_RIGHT_CURLY_BRACE, + CHAR_LEFT_SQUARE_BRACKET, + CHAR_RIGHT_SQUARE_BRACKET, + CHAR_DOUBLE_QUOTE, + CHAR_SINGLE_QUOTE, + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE + } = require_constants(); + var parse = (input, options = {}) => { + if (typeof input !== "string") { + throw new TypeError("Expected a string"); + } + let opts = options || {}; + let max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } + let ast = { + type: "root", + input, + nodes: [] + }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + let memo = {}; + const advance = () => input[index++]; + const push = (node) => { + if (node.type === "text" && prev.type === "dot") { + prev.type = "text"; + } + if (prev && prev.type === "text" && node.type === "text") { + prev.value += node.value; + return; + } + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + push({ + type: "bos" + }); + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + if (value === CHAR_BACKSLASH) { + push({ + type: "text", + value: (options.keepEscaping ? value : "") + advance() + }); + continue; + } + if (value === CHAR_RIGHT_SQUARE_BRACKET) { + push({ + type: "text", + value: "\\" + value + }); + continue; + } + if (value === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + let closed = true; + let next; + while (index < length && (next = advance())) { + value += next; + if (next === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + continue; + } + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + brackets--; + if (brackets === 0) { + break; + } + } + } + push({ + type: "text", + value + }); + continue; + } + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ + type: "paren", + nodes: [] + }); + stack.push(block); + push({ + type: "text", + value + }); + continue; + } + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== "paren") { + push({ + type: "text", + value + }); + continue; + } + block = stack.pop(); + push({ + type: "text", + value + }); + block = stack[stack.length - 1]; + continue; + } + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; + if (options.keepQuotes !== true) { + value = ""; + } + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + if (next === open) { + if (options.keepQuotes === true) + value += next; + break; + } + value += next; + } + push({ + type: "text", + value + }); + continue; + } + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; + let dollar = prev.value && prev.value.slice(-1) === "$" || block.dollar === true; + let brace = { + type: "brace", + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + block = push(brace); + stack.push(block); + push({ + type: "open", + value + }); + continue; + } + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== "brace") { + push({ + type: "text", + value + }); + continue; + } + let type = "close"; + block = stack.pop(); + block.close = true; + push({ + type, + value + }); + depth--; + block = stack[stack.length - 1]; + continue; + } + if (value === CHAR_COMMA && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { + type: "text", + value: stringify2(block) + }]; + } + push({ + type: "comma", + value + }); + block.commas++; + continue; + } + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + let siblings = block.nodes; + if (depth === 0 || siblings.length === 0) { + push({ + type: "text", + value + }); + continue; + } + if (prev.type === "dot") { + block.range = []; + prev.value += value; + prev.type = "range"; + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = "text"; + continue; + } + block.ranges++; + block.args = []; + continue; + } + if (prev.type === "range") { + siblings.pop(); + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + push({ + type: "dot", + value + }); + continue; + } + push({ + type: "text", + value + }); + } + do { + block = stack.pop(); + if (block.type !== "root") { + block.nodes.forEach((node) => { + if (!node.nodes) { + if (node.type === "open") + node.isOpen = true; + if (node.type === "close") + node.isClose = true; + if (!node.nodes) + node.type = "text"; + node.invalid = true; + } + }); + let parent = stack[stack.length - 1]; + let index2 = parent.nodes.indexOf(block); + parent.nodes.splice(index2, 1, ...block.nodes); + } + } while (stack.length > 0); + push({ + type: "eos" + }); + return ast; + }; + module2.exports = parse; + } +}); +var require_braces = __commonJS2({ + "node_modules/braces/index.js"(exports2, module2) { + "use strict"; + var stringify2 = require_stringify(); + var compile = require_compile(); + var expand = require_expand(); + var parse = require_parse(); + var braces = (input, options = {}) => { + let output = []; + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; + }; + braces.parse = (input, options = {}) => parse(input, options); + braces.stringify = (input, options = {}) => { + if (typeof input === "string") { + return stringify2(braces.parse(input, options), options); + } + return stringify2(input, options); + }; + braces.compile = (input, options = {}) => { + if (typeof input === "string") { + input = braces.parse(input, options); + } + return compile(input, options); + }; + braces.expand = (input, options = {}) => { + if (typeof input === "string") { + input = braces.parse(input, options); + } + let result = expand(input, options); + if (options.noempty === true) { + result = result.filter(Boolean); + } + if (options.nodupes === true) { + result = [...new Set(result)]; + } + return result; + }; + braces.create = (input, options = {}) => { + if (input === "" || input.length < 3) { + return [input]; + } + return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); + }; + module2.exports = braces; + } +}); +var require_constants2 = __commonJS2({ + "node_modules/picomatch/lib/constants.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var WIN_SLASH = "\\\\/"; + var WIN_NO_SLASH = `[^${WIN_SLASH}]`; + var DOT_LITERAL = "\\."; + var PLUS_LITERAL = "\\+"; + var QMARK_LITERAL = "\\?"; + var SLASH_LITERAL = "\\/"; + var ONE_CHAR = "(?=.)"; + var QMARK = "[^/]"; + var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; + var START_ANCHOR = `(?:^|${SLASH_LITERAL})`; + var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; + var NO_DOT = `(?!${DOT_LITERAL})`; + var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; + var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; + var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; + var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; + var STAR = `${QMARK}*?`; + var POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR + }; + var WINDOWS_CHARS = Object.assign(Object.assign({}, POSIX_CHARS), {}, { + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` + }); + var POSIX_REGEX_SOURCE = { + alnum: "a-zA-Z0-9", + alpha: "a-zA-Z", + ascii: "\\x00-\\x7F", + blank: " \\t", + cntrl: "\\x00-\\x1F\\x7F", + digit: "0-9", + graph: "\\x21-\\x7E", + lower: "a-z", + print: "\\x20-\\x7E ", + punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", + space: " \\t\\r\\n\\v\\f", + upper: "A-Z", + word: "A-Za-z0-9_", + xdigit: "A-Fa-f0-9" + }; + module2.exports = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + REPLACEMENTS: { + "***": "*", + "**/**": "**", + "**/**/**": "**" + }, + CHAR_0: 48, + CHAR_9: 57, + CHAR_UPPERCASE_A: 65, + CHAR_LOWERCASE_A: 97, + CHAR_UPPERCASE_Z: 90, + CHAR_LOWERCASE_Z: 122, + CHAR_LEFT_PARENTHESES: 40, + CHAR_RIGHT_PARENTHESES: 41, + CHAR_ASTERISK: 42, + CHAR_AMPERSAND: 38, + CHAR_AT: 64, + CHAR_BACKWARD_SLASH: 92, + CHAR_CARRIAGE_RETURN: 13, + CHAR_CIRCUMFLEX_ACCENT: 94, + CHAR_COLON: 58, + CHAR_COMMA: 44, + CHAR_DOT: 46, + CHAR_DOUBLE_QUOTE: 34, + CHAR_EQUAL: 61, + CHAR_EXCLAMATION_MARK: 33, + CHAR_FORM_FEED: 12, + CHAR_FORWARD_SLASH: 47, + CHAR_GRAVE_ACCENT: 96, + CHAR_HASH: 35, + CHAR_HYPHEN_MINUS: 45, + CHAR_LEFT_ANGLE_BRACKET: 60, + CHAR_LEFT_CURLY_BRACE: 123, + CHAR_LEFT_SQUARE_BRACKET: 91, + CHAR_LINE_FEED: 10, + CHAR_NO_BREAK_SPACE: 160, + CHAR_PERCENT: 37, + CHAR_PLUS: 43, + CHAR_QUESTION_MARK: 63, + CHAR_RIGHT_ANGLE_BRACKET: 62, + CHAR_RIGHT_CURLY_BRACE: 125, + CHAR_RIGHT_SQUARE_BRACKET: 93, + CHAR_SEMICOLON: 59, + CHAR_SINGLE_QUOTE: 39, + CHAR_SPACE: 32, + CHAR_TAB: 9, + CHAR_UNDERSCORE: 95, + CHAR_VERTICAL_LINE: 124, + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, + SEP: path.sep, + extglobChars(chars) { + return { + "!": { + type: "negate", + open: "(?:(?!(?:", + close: `))${chars.STAR})` + }, + "?": { + type: "qmark", + open: "(?:", + close: ")?" + }, + "+": { + type: "plus", + open: "(?:", + close: ")+" + }, + "*": { + type: "star", + open: "(?:", + close: ")*" + }, + "@": { + type: "at", + open: "(?:", + close: ")" + } + }; + }, + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } + }; + } +}); +var require_utils3 = __commonJS2({ + "node_modules/picomatch/lib/utils.js"(exports2) { + "use strict"; + var path = require("path"); + var win32 = process.platform === "win32"; + var { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL + } = require_constants2(); + exports2.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); + exports2.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str); + exports2.isRegexChar = (str) => str.length === 1 && exports2.hasRegexChars(str); + exports2.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); + exports2.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, "/"); + exports2.removeBackslashes = (str) => { + return str.replace(REGEX_REMOVE_BACKSLASH, (match) => { + return match === "\\" ? "" : match; + }); + }; + exports2.supportsLookbehinds = () => { + const segs = process.version.slice(1).split(".").map(Number); + if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { + return true; + } + return false; + }; + exports2.isWindows = (options) => { + if (options && typeof options.windows === "boolean") { + return options.windows; + } + return win32 === true || path.sep === "\\"; + }; + exports2.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) + return input; + if (input[idx - 1] === "\\") + return exports2.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; + }; + exports2.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith("./")) { + output = output.slice(2); + state.prefix = "./"; + } + return output; + }; + exports2.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? "" : "^"; + const append = options.contains ? "" : "$"; + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; + }; + } +}); +var require_scan = __commonJS2({ + "node_modules/picomatch/lib/scan.js"(exports2, module2) { + "use strict"; + var utils = require_utils3(); + var { + CHAR_ASTERISK, + CHAR_AT, + CHAR_BACKWARD_SLASH, + CHAR_COMMA, + CHAR_DOT, + CHAR_EXCLAMATION_MARK, + CHAR_FORWARD_SLASH, + CHAR_LEFT_CURLY_BRACE, + CHAR_LEFT_PARENTHESES, + CHAR_LEFT_SQUARE_BRACKET, + CHAR_PLUS, + CHAR_QUESTION_MARK, + CHAR_RIGHT_CURLY_BRACE, + CHAR_RIGHT_PARENTHESES, + CHAR_RIGHT_SQUARE_BRACKET + } = require_constants2(); + var isPathSeparator = (code) => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; + }; + var depth = (token) => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; + } + }; + var scan = (input, options) => { + const opts = options || {}; + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { + value: "", + depth: 0, + isGlob: false + }; + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; + while (index < length) { + code = advance(); + let next; + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; + } + continue; + } + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { + value: "", + depth: 0, + isGlob: false + }; + if (finished === true) + continue; + if (prev === CHAR_DOT && index === start + 1) { + start += 2; + continue; + } + lastIndex = index + 1; + continue; + } + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; + } + } + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) + isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + if (scanToEnd === true) { + continue; + } + break; + } + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + continue; + } + break; + } + if (isGlob === true) { + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + } + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } + let base = str; + let prefix = ""; + let glob = ""; + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ""; + glob = str; + } else { + base = str; + } + if (base && base !== "" && base !== "/" && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } + } + if (opts.unescape === true) { + if (glob) + glob = utils.removeBackslashes(glob); + if (base && backslashes === true) { + base = utils.removeBackslashes(base); + } + } + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; + } + if (opts.parts === true || opts.tokens === true) { + let prevIndex; + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } + if (idx !== 0 || value !== "") { + parts.push(value); + } + prevIndex = i; + } + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } + state.slashes = slashes; + state.parts = parts; + } + return state; + }; + module2.exports = scan; + } +}); +var require_parse2 = __commonJS2({ + "node_modules/picomatch/lib/parse.js"(exports2, module2) { + "use strict"; + var constants = require_constants2(); + var utils = require_utils3(); + var { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS + } = constants; + var expandRange = (args, options) => { + if (typeof options.expandRange === "function") { + return options.expandRange(...args, options); + } + args.sort(); + const value = `[${args.join("-")}]`; + try { + new RegExp(value); + } catch (ex) { + return args.map((v) => utils.escapeRegex(v)).join(".."); + } + return value; + }; + var syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; + }; + var parse = (input, options) => { + if (typeof input !== "string") { + throw new TypeError("Expected a string"); + } + input = REPLACEMENTS[input] || input; + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + const bos = { + type: "bos", + value: "", + output: opts.prepend || "" + }; + const tokens = [bos]; + const capture = opts.capture ? "" : "?:"; + const win32 = utils.isWindows(options); + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + const globstar = (opts2) => { + return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + const nodot = opts.dot ? "" : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + if (opts.capture) { + star = `(${star})`; + } + if (typeof opts.noext === "boolean") { + opts.noextglob = opts.noext; + } + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: "", + output: "", + prefix: "", + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; + input = utils.removePrefix(input, state); + len = input.length; + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index] || ""; + const remaining = () => input.slice(state.index + 1); + const consume = (value2 = "", num = 0) => { + state.consumed += value2; + state.index += num; + }; + const append = (token) => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + const negate = () => { + let count = 1; + while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) { + advance(); + state.start++; + count++; + } + if (count % 2 === 0) { + return false; + } + state.negated = true; + state.start++; + return true; + }; + const increment = (type) => { + state[type]++; + stack.push(type); + }; + const decrement = (type) => { + state[type]--; + stack.pop(); + }; + const push = (tok) => { + if (prev.type === "globstar") { + const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"); + const isExtglob = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); + if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = "star"; + prev.value = "*"; + prev.output = star; + state.output += prev.output; + } + } + if (extglobs.length && tok.type !== "paren") { + extglobs[extglobs.length - 1].inner += tok.value; + } + if (tok.value || tok.output) + append(tok); + if (prev && prev.type === "text" && tok.type === "text") { + prev.value += tok.value; + prev.output = (prev.output || "") + tok.value; + return; + } + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; + const extglobOpen = (type, value2) => { + const token = Object.assign(Object.assign({}, EXTGLOB_CHARS[value2]), {}, { + conditions: 1, + inner: "" + }); + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? "(" : "") + token.open; + increment("parens"); + push({ + type, + value: value2, + output: state.output ? "" : ONE_CHAR + }); + push({ + type: "paren", + extglob: true, + value: advance(), + output + }); + extglobs.push(token); + }; + const extglobClose = (token) => { + let output = token.close + (opts.capture ? ")" : ""); + let rest; + if (token.type === "negate") { + let extglobStar = star; + if (token.inner && token.inner.length > 1 && token.inner.includes("/")) { + extglobStar = globstar(opts); + } + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + const expression = parse(rest, Object.assign(Object.assign({}, options), {}, { + fastpaths: false + })).output; + output = token.close = `)${expression})${extglobStar})`; + } + if (token.prev.type === "bos") { + state.negatedExtglob = true; + } + } + push({ + type: "paren", + extglob: true, + value, + output + }); + decrement("parens"); + }; + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === "\\") { + backslashes = true; + return m; + } + if (first === "?") { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ""); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ""); + } + return QMARK.repeat(chars.length); + } + if (first === ".") { + return DOT_LITERAL.repeat(chars.length); + } + if (first === "*") { + if (esc) { + return esc + first + (rest ? star : ""); + } + return star; + } + return esc ? m : `\\${m}`; + }); + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ""); + } else { + output = output.replace(/\\+/g, (m) => { + return m.length % 2 === 0 ? "\\\\" : m ? "\\" : ""; + }); + } + } + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + state.output = utils.wrapOutput(output, state, options); + return state; + } + while (!eos()) { + value = advance(); + if (value === "\0") { + continue; + } + if (value === "\\") { + const next = peek(); + if (next === "/" && opts.bash !== true) { + continue; + } + if (next === "." || next === ";") { + continue; + } + if (!next) { + value += "\\"; + push({ + type: "text", + value + }); + continue; + } + const match = /^\\+/.exec(remaining()); + let slashes = 0; + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += "\\"; + } + } + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } + if (state.brackets === 0) { + push({ + type: "text", + value + }); + continue; + } + } + if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) { + if (opts.posix !== false && value === ":") { + const inner = prev.value.slice(1); + if (inner.includes("[")) { + prev.posix = true; + if (inner.includes(":")) { + const idx = prev.value.lastIndexOf("["); + const pre = prev.value.slice(0, idx); + const rest2 = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest2]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } + if (value === "[" && peek() !== ":" || value === "-" && peek() === "]") { + value = `\\${value}`; + } + if (value === "]" && (prev.value === "[" || prev.value === "[^")) { + value = `\\${value}`; + } + if (opts.posix === true && value === "!" && prev.value === "[") { + value = "^"; + } + prev.value += value; + append({ + value + }); + continue; + } + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ + value + }); + continue; + } + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ + type: "text", + value + }); + } + continue; + } + if (value === "(") { + increment("parens"); + push({ + type: "paren", + value + }); + continue; + } + if (value === ")") { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("opening", "(")); + } + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } + push({ + type: "paren", + value, + output: state.parens ? ")" : "\\)" + }); + decrement("parens"); + continue; + } + if (value === "[") { + if (opts.nobracket === true || !remaining().includes("]")) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("closing", "]")); + } + value = `\\${value}`; + } else { + increment("brackets"); + } + push({ + type: "bracket", + value + }); + continue; + } + if (value === "]") { + if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) { + push({ + type: "text", + value, + output: `\\${value}` + }); + continue; + } + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("opening", "[")); + } + push({ + type: "text", + value, + output: `\\${value}` + }); + continue; + } + decrement("brackets"); + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) { + value = `/${value}`; + } + prev.value += value; + append({ + value + }); + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + continue; + } + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + if (value === "{" && opts.nobrace !== true) { + increment("braces"); + const open = { + type: "brace", + value, + output: "(", + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + braces.push(open); + push(open); + continue; + } + if (value === "}") { + const brace = braces[braces.length - 1]; + if (opts.nobrace === true || !brace) { + push({ + type: "text", + value, + output: value + }); + continue; + } + let output = ")"; + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === "brace") { + break; + } + if (arr[i].type !== "dots") { + range.unshift(arr[i].value); + } + } + output = expandRange(range, opts); + state.backtrack = true; + } + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = "\\{"; + value = output = "\\}"; + state.output = out; + for (const t of toks) { + state.output += t.output || t.value; + } + } + push({ + type: "brace", + value, + output + }); + decrement("braces"); + braces.pop(); + continue; + } + if (value === "|") { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ + type: "text", + value + }); + continue; + } + if (value === ",") { + let output = value; + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === "braces") { + brace.comma = true; + output = "|"; + } + push({ + type: "comma", + value, + output + }); + continue; + } + if (value === "/") { + if (prev.type === "dot" && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ""; + state.output = ""; + tokens.pop(); + prev = bos; + continue; + } + push({ + type: "slash", + value, + output: SLASH_LITERAL + }); + continue; + } + if (value === ".") { + if (state.braces > 0 && prev.type === "dot") { + if (prev.value === ".") + prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = "dots"; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } + if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { + push({ + type: "text", + value, + output: DOT_LITERAL + }); + continue; + } + push({ + type: "dot", + value, + output: DOT_LITERAL + }); + continue; + } + if (value === "?") { + const isGroup = prev && prev.value === "("; + if (!isGroup && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + extglobOpen("qmark", value); + continue; + } + if (prev && prev.type === "paren") { + const next = peek(); + let output = value; + if (next === "<" && !utils.supportsLookbehinds()) { + throw new Error("Node.js v10 or higher is required for regex lookbehinds"); + } + if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) { + output = `\\${value}`; + } + push({ + type: "text", + value, + output + }); + continue; + } + if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) { + push({ + type: "qmark", + value, + output: QMARK_NO_DOT + }); + continue; + } + push({ + type: "qmark", + value, + output: QMARK + }); + continue; + } + if (value === "!") { + if (opts.noextglob !== true && peek() === "(") { + if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) { + extglobOpen("negate", value); + continue; + } + } + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } + if (value === "+") { + if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + extglobOpen("plus", value); + continue; + } + if (prev && prev.value === "(" || opts.regex === false) { + push({ + type: "plus", + value, + output: PLUS_LITERAL + }); + continue; + } + if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { + push({ + type: "plus", + value + }); + continue; + } + push({ + type: "plus", + value: PLUS_LITERAL + }); + continue; + } + if (value === "@") { + if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + push({ + type: "at", + extglob: true, + value, + output: "" + }); + continue; + } + push({ + type: "text", + value + }); + continue; + } + if (value !== "*") { + if (value === "$" || value === "^") { + value = `\\${value}`; + } + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } + push({ + type: "text", + value + }); + continue; + } + if (prev && (prev.type === "globstar" || prev.star === true)) { + prev.type = "star"; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen("star", value); + continue; + } + if (prev.type === "star") { + if (opts.noglobstar === true) { + consume(value); + continue; + } + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === "slash" || prior.type === "bos"; + const afterStar = before && (before.type === "star" || before.type === "globstar"); + if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) { + push({ + type: "star", + value, + output: "" + }); + continue; + } + const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"); + const isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); + if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) { + push({ + type: "star", + value, + output: "" + }); + continue; + } + while (rest.slice(0, 3) === "/**") { + const after = input[state.index + 4]; + if (after && after !== "/") { + break; + } + rest = rest.slice(3); + consume("/**", 3); + } + if (prior.type === "bos" && eos()) { + prev.type = "globstar"; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; + } + if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = "globstar"; + prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } + if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { + const end = rest[1] !== void 0 ? "|$" : ""; + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = "globstar"; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + state.output += prior.output + prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: "slash", + value: "/", + output: "" + }); + continue; + } + if (prior.type === "bos" && rest[0] === "/") { + prev.type = "globstar"; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: "slash", + value: "/", + output: "" + }); + continue; + } + state.output = state.output.slice(0, -prev.output.length); + prev.type = "globstar"; + prev.output = globstar(opts); + prev.value += value; + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } + const token = { + type: "star", + value, + output: star + }; + if (opts.bash === true) { + token.output = ".*?"; + if (prev.type === "bos" || prev.type === "slash") { + token.output = nodot + token.output; + } + push(token); + continue; + } + if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) { + token.output = value; + push(token); + continue; + } + if (state.index === state.start || prev.type === "slash" || prev.type === "dot") { + if (prev.type === "dot") { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + } else { + state.output += nodot; + prev.output += nodot; + } + if (peek() !== "*") { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } + push(token); + } + while (state.brackets > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", "]")); + state.output = utils.escapeLast(state.output, "["); + decrement("brackets"); + } + while (state.parens > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", ")")); + state.output = utils.escapeLast(state.output, "("); + decrement("parens"); + } + while (state.braces > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", "}")); + state.output = utils.escapeLast(state.output, "{"); + decrement("braces"); + } + if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) { + push({ + type: "maybe_slash", + value: "", + output: `${SLASH_LITERAL}?` + }); + } + if (state.backtrack === true) { + state.output = ""; + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; + if (token.suffix) { + state.output += token.suffix; + } + } + } + return state; + }; + parse.fastpaths = (input, options) => { + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? "" : "?:"; + const state = { + negated: false, + prefix: "" + }; + let star = opts.bash === true ? ".*?" : STAR; + if (opts.capture) { + star = `(${star})`; + } + const globstar = (opts2) => { + if (opts2.noglobstar === true) + return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + const create = (str) => { + switch (str) { + case "*": + return `${nodot}${ONE_CHAR}${star}`; + case ".*": + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + case "*.*": + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + case "*/*": + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + case "**": + return nodot + globstar(opts); + case "**/*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + case "**/*.*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + case "**/.*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) + return; + const source2 = create(match[1]); + if (!source2) + return; + return source2 + DOT_LITERAL + match[2]; + } + } + }; + const output = utils.removePrefix(input, state); + let source = create(output); + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + return source; + }; + module2.exports = parse; + } +}); +var require_picomatch = __commonJS2({ + "node_modules/picomatch/lib/picomatch.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var scan = require_scan(); + var parse = require_parse2(); + var utils = require_utils3(); + var constants = require_constants2(); + var isObject = (val) => val && typeof val === "object" && !Array.isArray(val); + var picomatch = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map((input) => picomatch(input, options, returnState)); + const arrayMatcher = (str) => { + for (const isMatch of fns) { + const state2 = isMatch(str); + if (state2) + return state2; + } + return false; + }; + return arrayMatcher; + } + const isState = isObject(glob) && glob.tokens && glob.input; + if (glob === "" || typeof glob !== "string" && !isState) { + throw new TypeError("Expected pattern to be a non-empty string"); + } + const opts = options || {}; + const posix = utils.isWindows(options); + const regex = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, false, true); + const state = regex.state; + delete regex.state; + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = Object.assign(Object.assign({}, options), {}, { + ignore: null, + onMatch: null, + onResult: null + }); + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } + const matcher = (input, returnObject = false) => { + const { + isMatch, + match, + output + } = picomatch.test(input, regex, options, { + glob, + posix + }); + const result = { + glob, + state, + regex, + posix, + input, + output, + match, + isMatch + }; + if (typeof opts.onResult === "function") { + opts.onResult(result); + } + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } + if (isIgnored(input)) { + if (typeof opts.onIgnore === "function") { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } + if (typeof opts.onMatch === "function") { + opts.onMatch(result); + } + return returnObject ? result : true; + }; + if (returnState) { + matcher.state = state; + } + return matcher; + }; + picomatch.test = (input, regex, options, { + glob, + posix + } = {}) => { + if (typeof input !== "string") { + throw new TypeError("Expected input to be a string"); + } + if (input === "") { + return { + isMatch: false, + output: "" + }; + } + const opts = options || {}; + const format = opts.format || (posix ? utils.toPosixSlashes : null); + let match = input === glob; + let output = match && format ? format(input) : input; + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } + return { + isMatch: Boolean(match), + match, + output + }; + }; + picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); + return regex.test(path.basename(input)); + }; + picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) + return pattern.map((p) => picomatch.parse(p, options)); + return parse(pattern, Object.assign(Object.assign({}, options), {}, { + fastpaths: false + })); + }; + picomatch.scan = (input, options) => scan(input, options); + picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; + } + const opts = options || {}; + const prepend = opts.contains ? "" : "^"; + const append = opts.contains ? "" : "$"; + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; + } + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = state; + } + return regex; + }; + picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== "string") { + throw new TypeError("Expected a non-empty string"); + } + let parsed = { + negated: false, + fastpaths: true + }; + if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) { + parsed.output = parse.fastpaths(input, options); + } + if (!parsed.output) { + parsed = parse(input, options); + } + return picomatch.compileRe(parsed, options, returnOutput, returnState); + }; + picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); + } catch (err) { + if (options && options.debug === true) + throw err; + return /$^/; + } + }; + picomatch.constants = constants; + module2.exports = picomatch; + } +}); +var require_picomatch2 = __commonJS2({ + "node_modules/picomatch/index.js"(exports2, module2) { + "use strict"; + module2.exports = require_picomatch(); + } +}); +var require_micromatch = __commonJS2({ + "node_modules/micromatch/index.js"(exports2, module2) { + "use strict"; + var util = require("util"); + var braces = require_braces(); + var picomatch = require_picomatch2(); + var utils = require_utils3(); + var isEmptyString = (val) => val === "" || val === "./"; + var micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + let omit = /* @__PURE__ */ new Set(); + let keep = /* @__PURE__ */ new Set(); + let items = /* @__PURE__ */ new Set(); + let negatives = 0; + let onResult = (state) => { + items.add(state.output); + if (options && options.onResult) { + options.onResult(state); + } + }; + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), Object.assign(Object.assign({}, options), {}, { + onResult + }), true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) + negatives++; + for (let item of list) { + let matched = isMatch(item, true); + let match = negated ? !matched.isMatch : matched.isMatch; + if (!match) + continue; + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); + } + } + } + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter((item) => !omit.has(item)); + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(", ")}"`); + } + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map((p) => p.replace(/\\/g, "")) : patterns; + } + } + return matches; + }; + micromatch.match = micromatch; + micromatch.matcher = (pattern, options) => picomatch(pattern, options); + micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + micromatch.any = micromatch.isMatch; + micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = /* @__PURE__ */ new Set(); + let items = []; + let onResult = (state) => { + if (options.onResult) + options.onResult(state); + items.push(state.output); + }; + let matches = new Set(micromatch(list, patterns, Object.assign(Object.assign({}, options), {}, { + onResult + }))); + for (let item of items) { + if (!matches.has(item)) { + result.add(item); + } + } + return [...result]; + }; + micromatch.contains = (str, pattern, options) => { + if (typeof str !== "string") { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + if (Array.isArray(pattern)) { + return pattern.some((p) => micromatch.contains(str, p, options)); + } + if (typeof pattern === "string") { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; + } + if (str.includes(pattern) || str.startsWith("./") && str.slice(2).includes(pattern)) { + return true; + } + } + return micromatch.isMatch(str, pattern, Object.assign(Object.assign({}, options), {}, { + contains: true + })); + }; + micromatch.matchKeys = (obj, patterns, options) => { + if (!utils.isObject(obj)) { + throw new TypeError("Expected the first argument to be an object"); + } + let keys = micromatch(Object.keys(obj), patterns, options); + let res = {}; + for (let key of keys) + res[key] = obj[key]; + return res; + }; + micromatch.some = (list, patterns, options) => { + let items = [].concat(list); + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (items.some((item) => isMatch(item))) { + return true; + } + } + return false; + }; + micromatch.every = (list, patterns, options) => { + let items = [].concat(list); + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (!items.every((item) => isMatch(item))) { + return false; + } + } + return true; + }; + micromatch.all = (str, patterns, options) => { + if (typeof str !== "string") { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + return [].concat(patterns).every((p) => picomatch(p, options)(str)); + }; + micromatch.capture = (glob, input, options) => { + let posix = utils.isWindows(options); + let regex = picomatch.makeRe(String(glob), Object.assign(Object.assign({}, options), {}, { + capture: true + })); + let match = regex.exec(posix ? utils.toPosixSlashes(input) : input); + if (match) { + return match.slice(1).map((v) => v === void 0 ? "" : v); + } + }; + micromatch.makeRe = (...args) => picomatch.makeRe(...args); + micromatch.scan = (...args) => picomatch.scan(...args); + micromatch.parse = (patterns, options) => { + let res = []; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } + } + return res; + }; + micromatch.braces = (pattern, options) => { + if (typeof pattern !== "string") + throw new TypeError("Expected a string"); + if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { + return [pattern]; + } + return braces(pattern, options); + }; + micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== "string") + throw new TypeError("Expected a string"); + return micromatch.braces(pattern, Object.assign(Object.assign({}, options), {}, { + expand: true + })); + }; + module2.exports = micromatch; + } +}); +var require_pattern = __commonJS2({ + "node_modules/fast-glob/out/utils/pattern.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.matchAny = exports2.convertPatternsToRe = exports2.makeRe = exports2.getPatternParts = exports2.expandBraceExpansion = exports2.expandPatternsWithBraceExpansion = exports2.isAffectDepthOfReadingPattern = exports2.endsWithSlashGlobStar = exports2.hasGlobStar = exports2.getBaseDirectory = exports2.isPatternRelatedToParentDirectory = exports2.getPatternsOutsideCurrentDirectory = exports2.getPatternsInsideCurrentDirectory = exports2.getPositivePatterns = exports2.getNegativePatterns = exports2.isPositivePattern = exports2.isNegativePattern = exports2.convertToNegativePattern = exports2.convertToPositivePattern = exports2.isDynamicPattern = exports2.isStaticPattern = void 0; + var path = require("path"); + var globParent = require_glob_parent(); + var micromatch = require_micromatch(); + var GLOBSTAR = "**"; + var ESCAPE_SYMBOL = "\\"; + var COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; + var REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; + var REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; + var GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; + var BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; + function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); + } + exports2.isStaticPattern = isStaticPattern; + function isDynamicPattern(pattern, options = {}) { + if (pattern === "") { + return false; + } + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; + } + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.braceExpansion !== false && hasBraceExpansion(pattern)) { + return true; + } + return false; + } + exports2.isDynamicPattern = isDynamicPattern; + function hasBraceExpansion(pattern) { + const openingBraceIndex = pattern.indexOf("{"); + if (openingBraceIndex === -1) { + return false; + } + const closingBraceIndex = pattern.indexOf("}", openingBraceIndex + 1); + if (closingBraceIndex === -1) { + return false; + } + const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); + return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); + } + function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; + } + exports2.convertToPositivePattern = convertToPositivePattern; + function convertToNegativePattern(pattern) { + return "!" + pattern; + } + exports2.convertToNegativePattern = convertToNegativePattern; + function isNegativePattern(pattern) { + return pattern.startsWith("!") && pattern[1] !== "("; + } + exports2.isNegativePattern = isNegativePattern; + function isPositivePattern(pattern) { + return !isNegativePattern(pattern); + } + exports2.isPositivePattern = isPositivePattern; + function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); + } + exports2.getNegativePatterns = getNegativePatterns; + function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); + } + exports2.getPositivePatterns = getPositivePatterns; + function getPatternsInsideCurrentDirectory(patterns) { + return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); + } + exports2.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; + function getPatternsOutsideCurrentDirectory(patterns) { + return patterns.filter(isPatternRelatedToParentDirectory); + } + exports2.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; + function isPatternRelatedToParentDirectory(pattern) { + return pattern.startsWith("..") || pattern.startsWith("./.."); + } + exports2.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; + function getBaseDirectory(pattern) { + return globParent(pattern, { + flipBackslashes: false + }); + } + exports2.getBaseDirectory = getBaseDirectory; + function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); + } + exports2.hasGlobStar = hasGlobStar; + function endsWithSlashGlobStar(pattern) { + return pattern.endsWith("/" + GLOBSTAR); + } + exports2.endsWithSlashGlobStar = endsWithSlashGlobStar; + function isAffectDepthOfReadingPattern(pattern) { + const basename = path.basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); + } + exports2.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; + function expandPatternsWithBraceExpansion(patterns) { + return patterns.reduce((collection, pattern) => { + return collection.concat(expandBraceExpansion(pattern)); + }, []); + } + exports2.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; + function expandBraceExpansion(pattern) { + return micromatch.braces(pattern, { + expand: true, + nodupes: true + }); + } + exports2.expandBraceExpansion = expandBraceExpansion; + function getPatternParts(pattern, options) { + let { + parts + } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { + parts: true + })); + if (parts.length === 0) { + parts = [pattern]; + } + if (parts[0].startsWith("/")) { + parts[0] = parts[0].slice(1); + parts.unshift(""); + } + return parts; + } + exports2.getPatternParts = getPatternParts; + function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); + } + exports2.makeRe = makeRe; + function convertPatternsToRe(patterns, options) { + return patterns.map((pattern) => makeRe(pattern, options)); + } + exports2.convertPatternsToRe = convertPatternsToRe; + function matchAny(entry, patternsRe) { + return patternsRe.some((patternRe) => patternRe.test(entry)); + } + exports2.matchAny = matchAny; + } +}); +var require_merge2 = __commonJS2({ + "node_modules/merge2/index.js"(exports2, module2) { + "use strict"; + var Stream = require("stream"); + var PassThrough = Stream.PassThrough; + var slice = Array.prototype.slice; + module2.exports = merge2; + function merge2() { + const streamsQueue = []; + const args = slice.call(arguments); + let merging = false; + let options = args[args.length - 1]; + if (options && !Array.isArray(options) && options.pipe == null) { + args.pop(); + } else { + options = {}; + } + const doEnd = options.end !== false; + const doPipeError = options.pipeError === true; + if (options.objectMode == null) { + options.objectMode = true; + } + if (options.highWaterMark == null) { + options.highWaterMark = 64 * 1024; + } + const mergedStream = PassThrough(options); + function addStream() { + for (let i = 0, len = arguments.length; i < len; i++) { + streamsQueue.push(pauseStreams(arguments[i], options)); + } + mergeStream(); + return this; + } + function mergeStream() { + if (merging) { + return; + } + merging = true; + let streams = streamsQueue.shift(); + if (!streams) { + process.nextTick(endStream); + return; + } + if (!Array.isArray(streams)) { + streams = [streams]; + } + let pipesCount = streams.length + 1; + function next() { + if (--pipesCount > 0) { + return; + } + merging = false; + mergeStream(); + } + function pipe(stream) { + function onend() { + stream.removeListener("merge2UnpipeEnd", onend); + stream.removeListener("end", onend); + if (doPipeError) { + stream.removeListener("error", onerror); + } + next(); + } + function onerror(err) { + mergedStream.emit("error", err); + } + if (stream._readableState.endEmitted) { + return next(); + } + stream.on("merge2UnpipeEnd", onend); + stream.on("end", onend); + if (doPipeError) { + stream.on("error", onerror); + } + stream.pipe(mergedStream, { + end: false + }); + stream.resume(); + } + for (let i = 0; i < streams.length; i++) { + pipe(streams[i]); + } + next(); + } + function endStream() { + merging = false; + mergedStream.emit("queueDrain"); + if (doEnd) { + mergedStream.end(); + } + } + mergedStream.setMaxListeners(0); + mergedStream.add = addStream; + mergedStream.on("unpipe", function(stream) { + stream.emit("merge2UnpipeEnd"); + }); + if (args.length) { + addStream.apply(null, args); + } + return mergedStream; + } + function pauseStreams(streams, options) { + if (!Array.isArray(streams)) { + if (!streams._readableState && streams.pipe) { + streams = streams.pipe(PassThrough(options)); + } + if (!streams._readableState || !streams.pause || !streams.pipe) { + throw new Error("Only readable stream can be merged."); + } + streams.pause(); + } else { + for (let i = 0, len = streams.length; i < len; i++) { + streams[i] = pauseStreams(streams[i], options); + } + } + return streams; + } + } +}); +var require_stream = __commonJS2({ + "node_modules/fast-glob/out/utils/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.merge = void 0; + var merge2 = require_merge2(); + function merge(streams) { + const mergedStream = merge2(streams); + streams.forEach((stream) => { + stream.once("error", (error) => mergedStream.emit("error", error)); + }); + mergedStream.once("close", () => propagateCloseEventToSources(streams)); + mergedStream.once("end", () => propagateCloseEventToSources(streams)); + return mergedStream; + } + exports2.merge = merge; + function propagateCloseEventToSources(streams) { + streams.forEach((stream) => stream.emit("close")); + } + } +}); +var require_string = __commonJS2({ + "node_modules/fast-glob/out/utils/string.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isEmpty = exports2.isString = void 0; + function isString(input) { + return typeof input === "string"; + } + exports2.isString = isString; + function isEmpty(input) { + return input === ""; + } + exports2.isEmpty = isEmpty; + } +}); +var require_utils4 = __commonJS2({ + "node_modules/fast-glob/out/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.string = exports2.stream = exports2.pattern = exports2.path = exports2.fs = exports2.errno = exports2.array = void 0; + var array2 = require_array(); + exports2.array = array2; + var errno = require_errno(); + exports2.errno = errno; + var fs = require_fs(); + exports2.fs = fs; + var path = require_path(); + exports2.path = path; + var pattern = require_pattern(); + exports2.pattern = pattern; + var stream = require_stream(); + exports2.stream = stream; + var string = require_string(); + exports2.string = string; + } +}); +var require_tasks = __commonJS2({ + "node_modules/fast-glob/out/managers/tasks.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.convertPatternGroupToTask = exports2.convertPatternGroupsToTasks = exports2.groupPatternsByBaseDirectory = exports2.getNegativePatternsAsPositive = exports2.getPositivePatterns = exports2.convertPatternsToTasks = exports2.generate = void 0; + var utils = require_utils4(); + function generate(patterns, settings) { + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); + const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, true); + return staticTasks.concat(dynamicTasks); + } + exports2.generate = generate; + function convertPatternsToTasks(positive, negative, dynamic) { + const tasks = []; + const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive); + const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive); + const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); + const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); + tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); + if ("." in insideCurrentDirectoryGroup) { + tasks.push(convertPatternGroupToTask(".", patternsInsideCurrentDirectory, negative, dynamic)); + } else { + tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); + } + return tasks; + } + exports2.convertPatternsToTasks = convertPatternsToTasks; + function getPositivePatterns(patterns) { + return utils.pattern.getPositivePatterns(patterns); + } + exports2.getPositivePatterns = getPositivePatterns; + function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils.pattern.convertToPositivePattern); + return positive; + } + exports2.getNegativePatternsAsPositive = getNegativePatternsAsPositive; + function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils.pattern.getBaseDirectory(pattern); + if (base in collection) { + collection[base].push(pattern); + } else { + collection[base] = [pattern]; + } + return collection; + }, group); + } + exports2.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; + function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map((base) => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); + } + exports2.convertPatternGroupsToTasks = convertPatternGroupsToTasks; + function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern)) + }; + } + exports2.convertPatternGroupToTask = convertPatternGroupToTask; + } +}); +var require_patterns = __commonJS2({ + "node_modules/fast-glob/out/managers/patterns.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.removeDuplicateSlashes = exports2.transform = void 0; + var DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; + function transform(patterns) { + return patterns.map((pattern) => removeDuplicateSlashes(pattern)); + } + exports2.transform = transform; + function removeDuplicateSlashes(pattern) { + return pattern.replace(DOUBLE_SLASH_RE, "/"); + } + exports2.removeDuplicateSlashes = removeDuplicateSlashes; + } +}); +var require_async = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.read = void 0; + function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; + } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } + callSuccessCallback(callback, lstat); + return; + } + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + callSuccessCallback(callback, stat); + }); + }); + } + exports2.read = read; + function callFailureCallback(callback, error) { + callback(error); + } + function callSuccessCallback(callback, result) { + callback(null, result); + } + } +}); +var require_sync = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.read = void 0; + function read(path, settings) { + const lstat = settings.fs.lstatSync(path); + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + try { + const stat = settings.fs.statSync(path); + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + return stat; + } catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; + } + throw error; + } + } + exports2.read = read; + } +}); +var require_fs2 = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/adapters/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createFileSystemAdapter = exports2.FILE_SYSTEM_ADAPTER = void 0; + var fs = require("fs"); + exports2.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync + }; + function createFileSystemAdapter(fsMethods) { + if (fsMethods === void 0) { + return exports2.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports2.FILE_SYSTEM_ADAPTER), fsMethods); + } + exports2.createFileSystemAdapter = createFileSystemAdapter; + } +}); +var require_settings = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fs = require_fs2(); + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } + }; + exports2.default = Settings; + } +}); +var require_out = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.statSync = exports2.stat = exports2.Settings = void 0; + var async = require_async(); + var sync = require_sync(); + var settings_1 = require_settings(); + exports2.Settings = settings_1.default; + function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === "function") { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } + exports2.stat = stat; + function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); + } + exports2.statSync = statSync; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); + } + } +}); +var require_queue_microtask = __commonJS2({ + "node_modules/queue-microtask/index.js"(exports2, module2) { + var promise; + module2.exports = typeof queueMicrotask === "function" ? queueMicrotask.bind(typeof window !== "undefined" ? window : global) : (cb) => (promise || (promise = Promise.resolve())).then(cb).catch((err) => setTimeout(() => { + throw err; + }, 0)); + } +}); +var require_run_parallel = __commonJS2({ + "node_modules/run-parallel/index.js"(exports2, module2) { + module2.exports = runParallel; + var queueMicrotask2 = require_queue_microtask(); + function runParallel(tasks, cb) { + let results, pending, keys; + let isSync = true; + if (Array.isArray(tasks)) { + results = []; + pending = tasks.length; + } else { + keys = Object.keys(tasks); + results = {}; + pending = keys.length; + } + function done(err) { + function end() { + if (cb) + cb(err, results); + cb = null; + } + if (isSync) + queueMicrotask2(end); + else + end(); + } + function each(i, err, result) { + results[i] = result; + if (--pending === 0 || err) { + done(err); + } + } + if (!pending) { + done(null); + } else if (keys) { + keys.forEach(function(key) { + tasks[key](function(err, result) { + each(key, err, result); + }); + }); + } else { + tasks.forEach(function(task, i) { + task(function(err, result) { + each(i, err, result); + }); + }); + } + isSync = false; + } + } +}); +var require_constants3 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; + var NODE_PROCESS_VERSION_PARTS = process.versions.node.split("."); + if (NODE_PROCESS_VERSION_PARTS[0] === void 0 || NODE_PROCESS_VERSION_PARTS[1] === void 0) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); + } + var MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); + var MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); + var SUPPORTED_MAJOR_VERSION = 10; + var SUPPORTED_MINOR_VERSION = 10; + var IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; + var IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; + exports2.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; + } +}); +var require_fs3 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/utils/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createDirentFromStats = void 0; + var DirentFromStats = class { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } + }; + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); + } + exports2.createDirentFromStats = createDirentFromStats; + } +}); +var require_utils5 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.fs = void 0; + var fs = require_fs3(); + exports2.fs = fs; + } +}); +var require_common = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/providers/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.joinPathSegments = void 0; + function joinPathSegments(a, b, separator) { + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; + } + exports2.joinPathSegments = joinPathSegments; + } +}); +var require_async2 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.readdir = exports2.readdirWithFileTypes = exports2.read = void 0; + var fsStat = require_out(); + var rpl = require_run_parallel(); + var constants_1 = require_constants3(); + var utils = require_utils5(); + var common = require_common(); + function read(directory, settings, callback) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; + } + readdir(directory, settings, callback); + } + exports2.read = read; + function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { + withFileTypes: true + }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const entries = dirents.map((dirent) => ({ + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; + } + const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings)); + rpl(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, rplEntries); + }); + }); + } + exports2.readdirWithFileTypes = readdirWithFileTypes; + function makeRplTaskEntry(entry, settings) { + return (done) => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; + } + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } + done(null, entry); + return; + } + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; + } + function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const tasks = names.map((name) => { + const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return (done) => { + fsStat.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } + const entry = { + name, + path, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + done(null, entry); + }); + }; + }); + rpl(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, entries); + }); + }); + } + exports2.readdir = readdir; + function callFailureCallback(callback, error) { + callback(error); + } + function callSuccessCallback(callback, result) { + callback(null, result); + } + } +}); +var require_sync2 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.readdir = exports2.readdirWithFileTypes = exports2.read = void 0; + var fsStat = require_out(); + var constants_1 = require_constants3(); + var utils = require_utils5(); + var common = require_common(); + function read(directory, settings) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); + } + return readdir(directory, settings); + } + exports2.read = read; + function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { + withFileTypes: true + }); + return dirents.map((dirent) => { + const entry = { + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + } catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } + return entry; + }); + } + exports2.readdirWithFileTypes = readdirWithFileTypes; + function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map((name) => { + const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = fsStat.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + return entry; + }); + } + exports2.readdir = readdir; + } +}); +var require_fs4 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/adapters/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createFileSystemAdapter = exports2.FILE_SYSTEM_ADAPTER = void 0; + var fs = require("fs"); + exports2.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync + }; + function createFileSystemAdapter(fsMethods) { + if (fsMethods === void 0) { + return exports2.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports2.FILE_SYSTEM_ADAPTER), fsMethods); + } + exports2.createFileSystemAdapter = createFileSystemAdapter; + } +}); +var require_settings2 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var fsStat = require_out(); + var fs = require_fs4(); + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } + }; + exports2.default = Settings; + } +}); +var require_out2 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.Settings = exports2.scandirSync = exports2.scandir = void 0; + var async = require_async2(); + var sync = require_sync2(); + var settings_1 = require_settings2(); + exports2.Settings = settings_1.default; + function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === "function") { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } + exports2.scandir = scandir; + function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); + } + exports2.scandirSync = scandirSync; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); + } + } +}); +var require_reusify = __commonJS2({ + "node_modules/reusify/reusify.js"(exports2, module2) { + "use strict"; + function reusify(Constructor) { + var head = new Constructor(); + var tail = head; + function get() { + var current = head; + if (current.next) { + head = current.next; + } else { + head = new Constructor(); + tail = head; + } + current.next = null; + return current; + } + function release(obj) { + tail.next = obj; + tail = obj; + } + return { + get, + release + }; + } + module2.exports = reusify; + } +}); +var require_queue = __commonJS2({ + "node_modules/fastq/queue.js"(exports2, module2) { + "use strict"; + var reusify = require_reusify(); + function fastqueue(context, worker, concurrency) { + if (typeof context === "function") { + concurrency = worker; + worker = context; + context = null; + } + if (concurrency < 1) { + throw new Error("fastqueue concurrency must be greater than 1"); + } + var cache = reusify(Task); + var queueHead = null; + var queueTail = null; + var _running = 0; + var errorHandler = null; + var self2 = { + push, + drain: noop, + saturated: noop, + pause, + paused: false, + concurrency, + running, + resume, + idle, + length, + getQueue, + unshift, + empty: noop, + kill, + killAndDrain, + error + }; + return self2; + function running() { + return _running; + } + function pause() { + self2.paused = true; + } + function length() { + var current = queueHead; + var counter = 0; + while (current) { + current = current.next; + counter++; + } + return counter; + } + function getQueue() { + var current = queueHead; + var tasks = []; + while (current) { + tasks.push(current.value); + current = current.next; + } + return tasks; + } + function resume() { + if (!self2.paused) + return; + self2.paused = false; + for (var i = 0; i < self2.concurrency; i++) { + _running++; + release(); + } + } + function idle() { + return _running === 0 && self2.length() === 0; + } + function push(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; + current.errorHandler = errorHandler; + if (_running === self2.concurrency || self2.paused) { + if (queueTail) { + queueTail.next = current; + queueTail = current; + } else { + queueHead = current; + queueTail = current; + self2.saturated(); + } + } else { + _running++; + worker.call(context, current.value, current.worked); + } + } + function unshift(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; + if (_running === self2.concurrency || self2.paused) { + if (queueHead) { + current.next = queueHead; + queueHead = current; + } else { + queueHead = current; + queueTail = current; + self2.saturated(); + } + } else { + _running++; + worker.call(context, current.value, current.worked); + } + } + function release(holder) { + if (holder) { + cache.release(holder); + } + var next = queueHead; + if (next) { + if (!self2.paused) { + if (queueTail === queueHead) { + queueTail = null; + } + queueHead = next.next; + next.next = null; + worker.call(context, next.value, next.worked); + if (queueTail === null) { + self2.empty(); + } + } else { + _running--; + } + } else if (--_running === 0) { + self2.drain(); + } + } + function kill() { + queueHead = null; + queueTail = null; + self2.drain = noop; + } + function killAndDrain() { + queueHead = null; + queueTail = null; + self2.drain(); + self2.drain = noop; + } + function error(handler) { + errorHandler = handler; + } + } + function noop() { + } + function Task() { + this.value = null; + this.callback = noop; + this.next = null; + this.release = noop; + this.context = null; + this.errorHandler = null; + var self2 = this; + this.worked = function worked(err, result) { + var callback = self2.callback; + var errorHandler = self2.errorHandler; + var val = self2.value; + self2.value = null; + self2.callback = noop; + if (self2.errorHandler) { + errorHandler(err, val); + } + callback.call(self2.context, err, result); + self2.release(self2); + }; + } + function queueAsPromised(context, worker, concurrency) { + if (typeof context === "function") { + concurrency = worker; + worker = context; + context = null; + } + function asyncWrapper(arg, cb) { + worker.call(this, arg).then(function(res) { + cb(null, res); + }, cb); + } + var queue = fastqueue(context, asyncWrapper, concurrency); + var pushCb = queue.push; + var unshiftCb = queue.unshift; + queue.push = push; + queue.unshift = unshift; + queue.drained = drained; + return queue; + function push(value) { + var p = new Promise(function(resolve, reject) { + pushCb(value, function(err, result) { + if (err) { + reject(err); + return; + } + resolve(result); + }); + }); + p.catch(noop); + return p; + } + function unshift(value) { + var p = new Promise(function(resolve, reject) { + unshiftCb(value, function(err, result) { + if (err) { + reject(err); + return; + } + resolve(result); + }); + }); + p.catch(noop); + return p; + } + function drained() { + var previousDrain = queue.drain; + var p = new Promise(function(resolve) { + queue.drain = function() { + previousDrain(); + resolve(); + }; + }); + return p; + } + } + module2.exports = fastqueue; + module2.exports.promise = queueAsPromised; + } +}); +var require_common2 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.joinPathSegments = exports2.replacePathSegmentSeparator = exports2.isAppliedFilter = exports2.isFatalError = void 0; + function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; + } + return !settings.errorFilter(error); + } + exports2.isFatalError = isFatalError; + function isAppliedFilter(filter, value) { + return filter === null || filter(value); + } + exports2.isAppliedFilter = isAppliedFilter; + function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); + } + exports2.replacePathSegmentSeparator = replacePathSegmentSeparator; + function joinPathSegments(a, b, separator) { + if (a === "") { + return b; + } + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; + } + exports2.joinPathSegments = joinPathSegments; + } +}); +var require_reader = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/reader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var common = require_common2(); + var Reader = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } + }; + exports2.default = Reader; + } +}); +var require_async3 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var events_1 = require("events"); + var fsScandir = require_out2(); + var fastq = require_queue(); + var common = require_common2(); + var reader_1 = require_reader(); + var AsyncReader = class extends reader_1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = fsScandir.scandir; + this._emitter = new events_1.EventEmitter(); + this._queue = fastq(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit("end"); + } + }; + } + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; + } + get isDestroyed() { + return this._isDestroyed; + } + destroy() { + if (this._isDestroyed) { + throw new Error("The reader is already destroyed"); + } + this._isDestroyed = true; + this._queue.killAndDrain(); + } + onEntry(callback) { + this._emitter.on("entry", callback); + } + onError(callback) { + this._emitter.once("error", callback); + } + onEnd(callback) { + this._emitter.once("end", callback); + } + _pushToQueue(directory, base) { + const queueItem = { + directory, + base + }; + this._queue.push(queueItem, (error) => { + if (error !== null) { + this._handleError(error); + } + }); + } + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, void 0); + return; + } + for (const entry of entries) { + this._handleEntry(entry, item.base); + } + done(null, void 0); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } + this._isFatalError = true; + this._isDestroyed = true; + this._emitter.emit("error", error); + } + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; + } + const fullpath = entry.path; + if (base !== void 0) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path); + } + } + _emitEntry(entry) { + this._emitter.emit("entry", entry); + } + }; + exports2.default = AsyncReader; + } +}); +var require_async4 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var async_1 = require_async3(); + var AsyncProvider = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._storage = []; + } + read(callback) { + this._reader.onError((error) => { + callFailureCallback(callback, error); + }); + this._reader.onEntry((entry) => { + this._storage.push(entry); + }); + this._reader.onEnd(() => { + callSuccessCallback(callback, this._storage); + }); + this._reader.read(); + } + }; + exports2.default = AsyncProvider; + function callFailureCallback(callback, error) { + callback(error); + } + function callSuccessCallback(callback, entries) { + callback(null, entries); + } + } +}); +var require_stream2 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/providers/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require("stream"); + var async_1 = require_async3(); + var StreamProvider = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._stream = new stream_1.Readable({ + objectMode: true, + read: () => { + }, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); + } + } + }); + } + read() { + this._reader.onError((error) => { + this._stream.emit("error", error); + }); + this._reader.onEntry((entry) => { + this._stream.push(entry); + }); + this._reader.onEnd(() => { + this._stream.push(null); + }); + this._reader.read(); + return this._stream; + } + }; + exports2.default = StreamProvider; + } +}); +var require_sync3 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fsScandir = require_out2(); + var common = require_common2(); + var reader_1 = require_reader(); + var SyncReader = class extends reader_1.default { + constructor() { + super(...arguments); + this._scandir = fsScandir.scandirSync; + this._storage = []; + this._queue = /* @__PURE__ */ new Set(); + } + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); + return this._storage; + } + _pushToQueue(directory, base) { + this._queue.add({ + directory, + base + }); + } + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); + for (const entry of entries) { + this._handleEntry(entry, base); + } + } catch (error) { + this._handleError(error); + } + } + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; + } + throw error; + } + _handleEntry(entry, base) { + const fullpath = entry.path; + if (base !== void 0) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path); + } + } + _pushToStorage(entry) { + this._storage.push(entry); + } + }; + exports2.default = SyncReader; + } +}); +var require_sync4 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var sync_1 = require_sync3(); + var SyncProvider = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync_1.default(this._root, this._settings); + } + read() { + return this._reader.read(); + } + }; + exports2.default = SyncProvider; + } +}); +var require_settings3 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var fsScandir = require_out2(); + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, void 0); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.fsScandirSettings = new fsScandir.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } + }; + exports2.default = Settings; + } +}); +var require_out3 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.Settings = exports2.walkStream = exports2.walkSync = exports2.walk = void 0; + var async_1 = require_async4(); + var stream_1 = require_stream2(); + var sync_1 = require_sync4(); + var settings_1 = require_settings3(); + exports2.Settings = settings_1.default; + function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === "function") { + new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; + } + new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); + } + exports2.walk = walk; + function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync_1.default(directory, settings); + return provider.read(); + } + exports2.walkSync = walkSync; + function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream_1.default(directory, settings); + return provider.read(); + } + exports2.walkStream = walkStream; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); + } + } +}); +var require_reader2 = __commonJS2({ + "node_modules/fast-glob/out/readers/reader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var fsStat = require_out(); + var utils = require_utils4(); + var Reader = class { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } + _getFullEntryPath(filepath) { + return path.resolve(this._settings.cwd, filepath); + } + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils.fs.createDirentFromStats(pattern, stats) + }; + if (this._settings.stats) { + entry.stats = stats; + } + return entry; + } + _isFatalError(error) { + return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + } + }; + exports2.default = Reader; + } +}); +var require_stream3 = __commonJS2({ + "node_modules/fast-glob/out/readers/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require("stream"); + var fsStat = require_out(); + var fsWalk = require_out3(); + var reader_1 = require_reader2(); + var ReaderStream = class extends reader_1.default { + constructor() { + super(...arguments); + this._walkStream = fsWalk.walkStream; + this._stat = fsStat.stat; + } + dynamic(root, options) { + return this._walkStream(root, options); + } + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1.PassThrough({ + objectMode: true + }); + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options).then((entry) => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } + if (index === filepaths.length - 1) { + stream.end(); + } + done(); + }).catch(done); + }; + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); + } + return stream; + } + _getEntry(filepath, pattern, options) { + return this._getStat(filepath).then((stats) => this._makeEntry(stats, pattern)).catch((error) => { + if (options.errorFilter(error)) { + return null; + } + throw error; + }); + } + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); + }); + }); + } + }; + exports2.default = ReaderStream; + } +}); +var require_matcher = __commonJS2({ + "node_modules/fast-glob/out/providers/matchers/matcher.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var Matcher = class { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; + this._fillStorage(); + } + _fillStorage() { + const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns); + for (const pattern of patterns) { + const segments = this._getPatternSegments(pattern); + const sections = this._splitSegmentsIntoSections(segments); + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); + } + } + _getPatternSegments(pattern) { + const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map((part) => { + const dynamic = utils.pattern.isDynamicPattern(part, this._settings); + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } + return { + dynamic: true, + pattern: part, + patternRe: utils.pattern.makeRe(part, this._micromatchOptions) + }; + }); + } + _splitSegmentsIntoSections(segments) { + return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern)); + } + }; + exports2.default = Matcher; + } +}); +var require_partial = __commonJS2({ + "node_modules/fast-glob/out/providers/matchers/partial.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var matcher_1 = require_matcher(); + var PartialMatcher = class extends matcher_1.default { + match(filepath) { + const parts = filepath.split("/"); + const levels = parts.length; + const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels); + for (const pattern of patterns) { + const section = pattern.sections[0]; + if (!pattern.complete && levels > section.length) { + return true; + } + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } + if (!segment.dynamic && segment.pattern === part) { + return true; + } + return false; + }); + if (match) { + return true; + } + } + return false; + } + }; + exports2.default = PartialMatcher; + } +}); +var require_deep = __commonJS2({ + "node_modules/fast-glob/out/providers/filters/deep.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var partial_1 = require_partial(); + var DeepFilter = class { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + } + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); + const negativeRe = this._getNegativePatternsRe(negative); + return (entry) => this._filter(basePath, entry, matcher, negativeRe); + } + _getMatcher(patterns) { + return new partial_1.default(patterns, this._settings, this._micromatchOptions); + } + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern); + return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; + } + if (this._isSkippedSymbolicLink(entry)) { + return false; + } + const filepath = utils.path.removeLeadingDotSegment(entry.path); + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; + } + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } + _isSkippedByDeep(basePath, entryPath) { + if (this._settings.deep === Infinity) { + return false; + } + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; + } + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split("/").length; + if (basePath === "") { + return entryPathDepth; + } + const basePathDepth = basePath.split("/").length; + return entryPathDepth - basePathDepth; + } + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils.pattern.matchAny(entryPath, patternsRe); + } + }; + exports2.default = DeepFilter; + } +}); +var require_entry = __commonJS2({ + "node_modules/fast-glob/out/providers/filters/entry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var EntryFilter = class { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = /* @__PURE__ */ new Map(); + } + getFilter(positive, negative) { + const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions); + return (entry) => this._filter(entry, positiveRe, negativeRe); + } + _filter(entry, positiveRe, negativeRe) { + if (this._settings.unique && this._isDuplicateEntry(entry)) { + return false; + } + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; + } + if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + return false; + } + const filepath = this._settings.baseNameMatch ? entry.name : entry.path; + const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe); + if (this._settings.unique && isMatched) { + this._createIndexRecord(entry); + } + return isMatched; + } + _isDuplicateEntry(entry) { + return this.index.has(entry.path); + } + _createIndexRecord(entry) { + this.index.set(entry.path, void 0); + } + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); + } + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; + } + const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath); + return utils.pattern.matchAny(fullpath, patternsRe); + } + _isMatchToPatterns(entryPath, patternsRe) { + const filepath = utils.path.removeLeadingDotSegment(entryPath); + return utils.pattern.matchAny(filepath, patternsRe) || utils.pattern.matchAny(filepath + "/", patternsRe); + } + }; + exports2.default = EntryFilter; + } +}); +var require_error = __commonJS2({ + "node_modules/fast-glob/out/providers/filters/error.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var ErrorFilter = class { + constructor(_settings) { + this._settings = _settings; + } + getFilter() { + return (error) => this._isNonFatalError(error); + } + _isNonFatalError(error) { + return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + } + }; + exports2.default = ErrorFilter; + } +}); +var require_entry2 = __commonJS2({ + "node_modules/fast-glob/out/providers/transformers/entry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var EntryTransformer = class { + constructor(_settings) { + this._settings = _settings; + } + getTransformer() { + return (entry) => this._transform(entry); + } + _transform(entry) { + let filepath = entry.path; + if (this._settings.absolute) { + filepath = utils.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils.path.unixify(filepath); + } + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += "/"; + } + if (!this._settings.objectMode) { + return filepath; + } + return Object.assign(Object.assign({}, entry), { + path: filepath + }); + } + }; + exports2.default = EntryTransformer; + } +}); +var require_provider = __commonJS2({ + "node_modules/fast-glob/out/providers/provider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var deep_1 = require_deep(); + var entry_1 = require_entry(); + var error_1 = require_error(); + var entry_2 = require_entry2(); + var Provider = class { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error_1.default(this._settings); + this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry_2.default(this._settings); + } + _getRootDirectory(task) { + return path.resolve(this._settings.cwd, task.base); + } + _getReaderOptions(task) { + const basePath = task.base === "." ? "" : task.base; + return { + basePath, + pathSegmentSeparator: "/", + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.negative), + errorFilter: this.errorFilter.getFilter(), + followSymbolicLinks: this._settings.followSymbolicLinks, + fs: this._settings.fs, + stats: this._settings.stats, + throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, + transform: this.entryTransformer.getTransformer() + }; + } + _getMicromatchOptions() { + return { + dot: this._settings.dot, + matchBase: this._settings.baseNameMatch, + nobrace: !this._settings.braceExpansion, + nocase: !this._settings.caseSensitiveMatch, + noext: !this._settings.extglob, + noglobstar: !this._settings.globstar, + posix: true, + strictSlashes: false + }; + } + }; + exports2.default = Provider; + } +}); +var require_async5 = __commonJS2({ + "node_modules/fast-glob/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require_stream3(); + var provider_1 = require_provider(); + var ProviderAsync = class extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = []; + return new Promise((resolve, reject) => { + const stream = this.api(root, task, options); + stream.once("error", reject); + stream.on("data", (entry) => entries.push(options.transform(entry))); + stream.once("end", () => resolve(entries)); + }); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } + }; + exports2.default = ProviderAsync; + } +}); +var require_stream4 = __commonJS2({ + "node_modules/fast-glob/out/providers/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require("stream"); + var stream_2 = require_stream3(); + var provider_1 = require_provider(); + var ProviderStream = class extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_2.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const source = this.api(root, task, options); + const destination = new stream_1.Readable({ + objectMode: true, + read: () => { + } + }); + source.once("error", (error) => destination.emit("error", error)).on("data", (entry) => destination.emit("data", options.transform(entry))).once("end", () => destination.emit("end")); + destination.once("close", () => source.destroy()); + return destination; + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } + }; + exports2.default = ProviderStream; + } +}); +var require_sync5 = __commonJS2({ + "node_modules/fast-glob/out/readers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fsStat = require_out(); + var fsWalk = require_out3(); + var reader_1 = require_reader2(); + var ReaderSync = class extends reader_1.default { + constructor() { + super(...arguments); + this._walkSync = fsWalk.walkSync; + this._statSync = fsStat.statSync; + } + dynamic(root, options) { + return this._walkSync(root, options); + } + static(patterns, options) { + const entries = []; + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); + const entry = this._getEntry(filepath, pattern, options); + if (entry === null || !options.entryFilter(entry)) { + continue; + } + entries.push(entry); + } + return entries; + } + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); + return this._makeEntry(stats, pattern); + } catch (error) { + if (options.errorFilter(error)) { + return null; + } + throw error; + } + } + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } + }; + exports2.default = ReaderSync; + } +}); +var require_sync6 = __commonJS2({ + "node_modules/fast-glob/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var sync_1 = require_sync5(); + var provider_1 = require_provider(); + var ProviderSync = class extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new sync_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = this.api(root, task, options); + return entries.map(options.transform); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } + }; + exports2.default = ProviderSync; + } +}); +var require_settings4 = __commonJS2({ + "node_modules/fast-glob/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; + var fs = require("fs"); + var os2 = require("os"); + var CPU_COUNT = Math.max(os2.cpus().length, 1); + exports2.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + lstatSync: fs.lstatSync, + stat: fs.stat, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync + }; + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); + if (this.onlyDirectories) { + this.onlyFiles = false; + } + if (this.stats) { + this.objectMode = true; + } + } + _getValue(option, value) { + return option === void 0 ? value : option; + } + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports2.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } + }; + exports2.default = Settings; + } +}); +var require_out4 = __commonJS2({ + "node_modules/fast-glob/out/index.js"(exports2, module2) { + "use strict"; + var taskManager = require_tasks(); + var patternManager = require_patterns(); + var async_1 = require_async5(); + var stream_1 = require_stream4(); + var sync_1 = require_sync6(); + var settings_1 = require_settings4(); + var utils = require_utils4(); + async function FastGlob(source, options) { + assertPatternsInput(source); + const works = getWorks(source, async_1.default, options); + const result = await Promise.all(works); + return utils.array.flatten(result); + } + (function(FastGlob2) { + function sync(source, options) { + assertPatternsInput(source); + const works = getWorks(source, sync_1.default, options); + return utils.array.flatten(works); + } + FastGlob2.sync = sync; + function stream(source, options) { + assertPatternsInput(source); + const works = getWorks(source, stream_1.default, options); + return utils.stream.merge(works); + } + FastGlob2.stream = stream; + function generateTasks(source, options) { + assertPatternsInput(source); + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + return taskManager.generate(patterns, settings); + } + FastGlob2.generateTasks = generateTasks; + function isDynamicPattern(source, options) { + assertPatternsInput(source); + const settings = new settings_1.default(options); + return utils.pattern.isDynamicPattern(source, settings); + } + FastGlob2.isDynamicPattern = isDynamicPattern; + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escape(source); + } + FastGlob2.escapePath = escapePath; + })(FastGlob || (FastGlob = {})); + function getWorks(source, _Provider, options) { + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + const tasks = taskManager.generate(patterns, settings); + const provider = new _Provider(settings); + return tasks.map(provider.read, provider); + } + function assertPatternsInput(input) { + const source = [].concat(input); + const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item)); + if (!isValidSource) { + throw new TypeError("Patterns must be a string (non empty) or an array of strings"); + } + } + module2.exports = FastGlob; + } +}); +var require_expand_patterns = __commonJS2({ + "src/cli/expand-patterns.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var fastGlob = require_out4(); + var { + statSafe + } = require_utils(); + async function* expandPatterns(context) { + const cwd = process.cwd(); + const seen = /* @__PURE__ */ new Set(); + let noResults = true; + for await (const pathOrError of expandPatternsInternal(context)) { + noResults = false; + if (typeof pathOrError !== "string") { + yield pathOrError; + continue; + } + const relativePath = path.relative(cwd, pathOrError); + if (seen.has(relativePath)) { + continue; + } + seen.add(relativePath); + yield relativePath; + } + if (noResults && context.argv.errorOnUnmatchedPattern !== false) { + yield { + error: `No matching files. Patterns: ${context.filePatterns.join(" ")}` + }; + } + } + async function* expandPatternsInternal(context) { + const silentlyIgnoredDirs = [".git", ".svn", ".hg"]; + if (context.argv.withNodeModules !== true) { + silentlyIgnoredDirs.push("node_modules"); + } + const globOptions = { + dot: true, + ignore: silentlyIgnoredDirs.map((dir) => "**/" + dir) + }; + let supportedFilesGlob; + const cwd = process.cwd(); + const entries = []; + for (const pattern of context.filePatterns) { + const absolutePath = path.resolve(cwd, pattern); + if (containsIgnoredPathSegment(absolutePath, cwd, silentlyIgnoredDirs)) { + continue; + } + const stat = await statSafe(absolutePath); + if (stat) { + if (stat.isFile()) { + entries.push({ + type: "file", + glob: escapePathForGlob(fixWindowsSlashes(pattern)), + input: pattern + }); + } else if (stat.isDirectory()) { + const relativePath = path.relative(cwd, absolutePath) || "."; + entries.push({ + type: "dir", + glob: escapePathForGlob(fixWindowsSlashes(relativePath)) + "/" + getSupportedFilesGlob(), + input: pattern + }); + } + } else if (pattern[0] === "!") { + globOptions.ignore.push(fixWindowsSlashes(pattern.slice(1))); + } else { + entries.push({ + type: "glob", + glob: fixWindowsSlashes(pattern), + input: pattern + }); + } + } + for (const { + type, + glob, + input + } of entries) { + let result; + try { + result = await fastGlob(glob, globOptions); + } catch ({ + message + }) { + yield { + error: `${errorMessages.globError[type]}: ${input} +${message}` + }; + continue; + } + if (result.length === 0) { + if (context.argv.errorOnUnmatchedPattern !== false) { + yield { + error: `${errorMessages.emptyResults[type]}: "${input}".` + }; + } + } else { + yield* sortPaths(result); + } + } + function getSupportedFilesGlob() { + if (!supportedFilesGlob) { + const extensions = context.languages.flatMap((lang) => lang.extensions || []); + const filenames = context.languages.flatMap((lang) => lang.filenames || []); + supportedFilesGlob = `**/{${[...extensions.map((ext) => "*" + (ext[0] === "." ? ext : "." + ext)), ...filenames]}}`; + } + return supportedFilesGlob; + } + } + var errorMessages = { + globError: { + file: "Unable to resolve file", + dir: "Unable to expand directory", + glob: "Unable to expand glob pattern" + }, + emptyResults: { + file: "Explicitly specified file was ignored due to negative glob patterns", + dir: "No supported files were found in the directory", + glob: "No files matching the pattern were found" + } + }; + function containsIgnoredPathSegment(absolutePath, cwd, ignoredDirectories) { + return path.relative(cwd, absolutePath).split(path.sep).some((dir) => ignoredDirectories.includes(dir)); + } + function sortPaths(paths) { + return paths.sort((a, b) => a.localeCompare(b)); + } + function escapePathForGlob(path2) { + return fastGlob.escapePath(path2.replace(/\\/g, "\0")).replace(/\\!/g, "@(!)").replace(/\0/g, "@(\\\\)"); + } + var isWindows = path.sep === "\\"; + function fixWindowsSlashes(pattern) { + return isWindows ? pattern.replace(/\\/g, "/") : pattern; + } + module2.exports = { + expandPatterns, + fixWindowsSlashes + }; + } +}); +var require_get_options_for_file = __commonJS2({ + "src/cli/options/get-options-for-file.js"(exports2, module2) { + "use strict"; + var dashify = require_dashify(); + var prettier2 = require("./index.js"); + var { + optionsNormalizer + } = require_prettier_internal(); + var minimist = require_minimist2(); + var createMinimistOptions = require_create_minimist_options(); + var normalizeCliOptions = require_normalize_cli_options(); + function getOptions(argv, detailedOptions) { + return Object.fromEntries(detailedOptions.filter(({ + forwardToApi + }) => forwardToApi).map(({ + forwardToApi, + name + }) => [forwardToApi, argv[name]])); + } + function cliifyOptions(object, apiDetailedOptionMap) { + return Object.fromEntries(Object.entries(object || {}).map(([key, value]) => { + const apiOption = apiDetailedOptionMap[key]; + const cliKey = apiOption ? apiOption.name : key; + return [dashify(cliKey), value]; + })); + } + function createApiDetailedOptionMap(detailedOptions) { + return Object.fromEntries(detailedOptions.filter((option) => option.forwardToApi && option.forwardToApi !== option.name).map((option) => [option.forwardToApi, option])); + } + function parseArgsToOptions(context, overrideDefaults) { + const minimistOptions = createMinimistOptions(context.detailedOptions); + const apiDetailedOptionMap = createApiDetailedOptionMap(context.detailedOptions); + return getOptions(normalizeCliOptions(minimist(context.rawArguments, { + string: minimistOptions.string, + boolean: minimistOptions.boolean, + default: cliifyOptions(overrideDefaults, apiDetailedOptionMap) + }), context.detailedOptions, { + logger: false + }), context.detailedOptions); + } + async function getOptionsOrDie(context, filePath) { + try { + if (context.argv.config === false) { + context.logger.debug("'--no-config' option found, skip loading config file."); + return null; + } + context.logger.debug(context.argv.config ? `load config file from '${context.argv.config}'` : `resolve config from '${filePath}'`); + const options = await prettier2.resolveConfig(filePath, { + editorconfig: context.argv.editorconfig, + config: context.argv.config + }); + context.logger.debug("loaded options `" + JSON.stringify(options) + "`"); + return options; + } catch (error) { + context.logger.error(`Invalid configuration file \`${filePath}\`: ` + error.message); + process.exit(2); + } + } + function applyConfigPrecedence(context, options) { + try { + switch (context.argv.configPrecedence) { + case "cli-override": + return parseArgsToOptions(context, options); + case "file-override": + return Object.assign(Object.assign({}, parseArgsToOptions(context)), options); + case "prefer-file": + return options || parseArgsToOptions(context); + } + } catch (error) { + context.logger.error(error.toString()); + process.exit(2); + } + } + async function getOptionsForFile(context, filepath) { + const options = await getOptionsOrDie(context, filepath); + const hasPlugins = options && options.plugins; + if (hasPlugins) { + context.pushContextPlugins(options.plugins); + } + const appliedOptions = Object.assign({ + filepath + }, applyConfigPrecedence(context, options && optionsNormalizer.normalizeApiOptions(options, context.supportOptions, { + logger: context.logger + }))); + context.logger.debug(`applied config-precedence (${context.argv.configPrecedence}): ${JSON.stringify(appliedOptions)}`); + if (hasPlugins) { + context.popContextPlugins(); + } + return appliedOptions; + } + module2.exports = getOptionsForFile; + } +}); +var require_is_tty = __commonJS2({ + "src/cli/is-tty.js"(exports2, module2) { + "use strict"; + var { + isCI + } = require("./third-party.js"); + module2.exports = function isTTY() { + return process.stdout.isTTY && !isCI(); + }; + } +}); +var require_commondir = __commonJS2({ + "node_modules/commondir/index.js"(exports2, module2) { + var path = require("path"); + module2.exports = function(basedir, relfiles) { + if (relfiles) { + var files = relfiles.map(function(r) { + return path.resolve(basedir, r); + }); + } else { + var files = basedir; + } + var res = files.slice(1).reduce(function(ps, file) { + if (!file.match(/^([A-Za-z]:)?\/|\\/)) { + throw new Error("relative path without a basedir"); + } + var xs = file.split(/\/+|\\+/); + for (var i = 0; ps[i] === xs[i] && i < Math.min(ps.length, xs.length); i++) + ; + return ps.slice(0, i); + }, files[0].split(/\/+|\\+/)); + return res.length > 1 ? res.join("/") : "/"; + }; + } +}); +var require_p_try = __commonJS2({ + "node_modules/p-try/index.js"(exports2, module2) { + "use strict"; + var pTry = (fn, ...arguments_) => new Promise((resolve) => { + resolve(fn(...arguments_)); + }); + module2.exports = pTry; + module2.exports.default = pTry; + } +}); +var require_p_limit = __commonJS2({ + "node_modules/p-limit/index.js"(exports2, module2) { + "use strict"; + var pTry = require_p_try(); + var pLimit = (concurrency) => { + if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { + return Promise.reject(new TypeError("Expected `concurrency` to be a number from 1 and up")); + } + const queue = []; + let activeCount = 0; + const next = () => { + activeCount--; + if (queue.length > 0) { + queue.shift()(); + } + }; + const run2 = (fn, resolve, ...args) => { + activeCount++; + const result = pTry(fn, ...args); + resolve(result); + result.then(next, next); + }; + const enqueue = (fn, resolve, ...args) => { + if (activeCount < concurrency) { + run2(fn, resolve, ...args); + } else { + queue.push(run2.bind(null, fn, resolve, ...args)); + } + }; + const generator = (fn, ...args) => new Promise((resolve) => enqueue(fn, resolve, ...args)); + Object.defineProperties(generator, { + activeCount: { + get: () => activeCount + }, + pendingCount: { + get: () => queue.length + }, + clearQueue: { + value: () => { + queue.length = 0; + } + } + }); + return generator; + }; + module2.exports = pLimit; + module2.exports.default = pLimit; + } +}); +var require_p_locate = __commonJS2({ + "node_modules/p-locate/index.js"(exports2, module2) { + "use strict"; + var pLimit = require_p_limit(); + var EndError = class extends Error { + constructor(value) { + super(); + this.value = value; + } + }; + var testElement = async (element, tester) => tester(await element); + var finder = async (element) => { + const values = await Promise.all(element); + if (values[1] === true) { + throw new EndError(values[0]); + } + return false; + }; + var pLocate = async (iterable, tester, options) => { + options = Object.assign({ + concurrency: Infinity, + preserveOrder: true + }, options); + const limit = pLimit(options.concurrency); + const items = [...iterable].map((element) => [element, limit(testElement, element, tester)]); + const checkLimit = pLimit(options.preserveOrder ? 1 : Infinity); + try { + await Promise.all(items.map((element) => checkLimit(finder, element))); + } catch (error) { + if (error instanceof EndError) { + return error.value; + } + throw error; + } + }; + module2.exports = pLocate; + module2.exports.default = pLocate; + } +}); +var require_locate_path = __commonJS2({ + "node_modules/locate-path/index.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var fs = require("fs"); + var { + promisify + } = require("util"); + var pLocate = require_p_locate(); + var fsStat = promisify(fs.stat); + var fsLStat = promisify(fs.lstat); + var typeMappings = { + directory: "isDirectory", + file: "isFile" + }; + function checkType({ + type + }) { + if (type in typeMappings) { + return; + } + throw new Error(`Invalid type specified: ${type}`); + } + var matchType = (type, stat) => type === void 0 || stat[typeMappings[type]](); + module2.exports = async (paths, options) => { + options = Object.assign({ + cwd: process.cwd(), + type: "file", + allowSymlinks: true + }, options); + checkType(options); + const statFn = options.allowSymlinks ? fsStat : fsLStat; + return pLocate(paths, async (path_) => { + try { + const stat = await statFn(path.resolve(options.cwd, path_)); + return matchType(options.type, stat); + } catch (_) { + return false; + } + }, options); + }; + module2.exports.sync = (paths, options) => { + options = Object.assign({ + cwd: process.cwd(), + allowSymlinks: true, + type: "file" + }, options); + checkType(options); + const statFn = options.allowSymlinks ? fs.statSync : fs.lstatSync; + for (const path_ of paths) { + try { + const stat = statFn(path.resolve(options.cwd, path_)); + if (matchType(options.type, stat)) { + return path_; + } + } catch (_) { + } + } + }; + } +}); +var require_path_exists = __commonJS2({ + "node_modules/path-exists/index.js"(exports2, module2) { + "use strict"; + var fs = require("fs"); + var { + promisify + } = require("util"); + var pAccess = promisify(fs.access); + module2.exports = async (path) => { + try { + await pAccess(path); + return true; + } catch (_) { + return false; + } + }; + module2.exports.sync = (path) => { + try { + fs.accessSync(path); + return true; + } catch (_) { + return false; + } + }; + } +}); +var require_find_up = __commonJS2({ + "node_modules/find-up/index.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var locatePath = require_locate_path(); + var pathExists = require_path_exists(); + var stop = Symbol("findUp.stop"); + module2.exports = async (name, options = {}) => { + let directory = path.resolve(options.cwd || ""); + const { + root + } = path.parse(directory); + const paths = [].concat(name); + const runMatcher = async (locateOptions) => { + if (typeof name !== "function") { + return locatePath(paths, locateOptions); + } + const foundPath = await name(locateOptions.cwd); + if (typeof foundPath === "string") { + return locatePath([foundPath], locateOptions); + } + return foundPath; + }; + while (true) { + const foundPath = await runMatcher(Object.assign(Object.assign({}, options), {}, { + cwd: directory + })); + if (foundPath === stop) { + return; + } + if (foundPath) { + return path.resolve(directory, foundPath); + } + if (directory === root) { + return; + } + directory = path.dirname(directory); + } + }; + module2.exports.sync = (name, options = {}) => { + let directory = path.resolve(options.cwd || ""); + const { + root + } = path.parse(directory); + const paths = [].concat(name); + const runMatcher = (locateOptions) => { + if (typeof name !== "function") { + return locatePath.sync(paths, locateOptions); + } + const foundPath = name(locateOptions.cwd); + if (typeof foundPath === "string") { + return locatePath.sync([foundPath], locateOptions); + } + return foundPath; + }; + while (true) { + const foundPath = runMatcher(Object.assign(Object.assign({}, options), {}, { + cwd: directory + })); + if (foundPath === stop) { + return; + } + if (foundPath) { + return path.resolve(directory, foundPath); + } + if (directory === root) { + return; + } + directory = path.dirname(directory); + } + }; + module2.exports.exists = pathExists; + module2.exports.sync.exists = pathExists.sync; + module2.exports.stop = stop; + } +}); +var require_pkg_dir = __commonJS2({ + "node_modules/pkg-dir/index.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var findUp = require_find_up(); + var pkgDir = async (cwd) => { + const filePath = await findUp("package.json", { + cwd + }); + return filePath && path.dirname(filePath); + }; + module2.exports = pkgDir; + module2.exports.default = pkgDir; + module2.exports.sync = (cwd) => { + const filePath = findUp.sync("package.json", { + cwd + }); + return filePath && path.dirname(filePath); + }; + } +}); +var require_semver = __commonJS2({ + "node_modules/make-dir/node_modules/semver/semver.js"(exports2, module2) { + exports2 = module2.exports = SemVer; + var debug; + if (typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments, 0); + args.unshift("SEMVER"); + console.log.apply(console, args); + }; + } else { + debug = function() { + }; + } + exports2.SEMVER_SPEC_VERSION = "2.0.0"; + var MAX_LENGTH = 256; + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; + var MAX_SAFE_COMPONENT_LENGTH = 16; + var re = exports2.re = []; + var src = exports2.src = []; + var t = exports2.tokens = {}; + var R = 0; + function tok(n) { + t[n] = R++; + } + tok("NUMERICIDENTIFIER"); + src[t.NUMERICIDENTIFIER] = "0|[1-9]\\d*"; + tok("NUMERICIDENTIFIERLOOSE"); + src[t.NUMERICIDENTIFIERLOOSE] = "[0-9]+"; + tok("NONNUMERICIDENTIFIER"); + src[t.NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-][a-zA-Z0-9-]*"; + tok("MAINVERSION"); + src[t.MAINVERSION] = "(" + src[t.NUMERICIDENTIFIER] + ")\\.(" + src[t.NUMERICIDENTIFIER] + ")\\.(" + src[t.NUMERICIDENTIFIER] + ")"; + tok("MAINVERSIONLOOSE"); + src[t.MAINVERSIONLOOSE] = "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\.(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\.(" + src[t.NUMERICIDENTIFIERLOOSE] + ")"; + tok("PRERELEASEIDENTIFIER"); + src[t.PRERELEASEIDENTIFIER] = "(?:" + src[t.NUMERICIDENTIFIER] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; + tok("PRERELEASEIDENTIFIERLOOSE"); + src[t.PRERELEASEIDENTIFIERLOOSE] = "(?:" + src[t.NUMERICIDENTIFIERLOOSE] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; + tok("PRERELEASE"); + src[t.PRERELEASE] = "(?:-(" + src[t.PRERELEASEIDENTIFIER] + "(?:\\." + src[t.PRERELEASEIDENTIFIER] + ")*))"; + tok("PRERELEASELOOSE"); + src[t.PRERELEASELOOSE] = "(?:-?(" + src[t.PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + src[t.PRERELEASEIDENTIFIERLOOSE] + ")*))"; + tok("BUILDIDENTIFIER"); + src[t.BUILDIDENTIFIER] = "[0-9A-Za-z-]+"; + tok("BUILD"); + src[t.BUILD] = "(?:\\+(" + src[t.BUILDIDENTIFIER] + "(?:\\." + src[t.BUILDIDENTIFIER] + ")*))"; + tok("FULL"); + tok("FULLPLAIN"); + src[t.FULLPLAIN] = "v?" + src[t.MAINVERSION] + src[t.PRERELEASE] + "?" + src[t.BUILD] + "?"; + src[t.FULL] = "^" + src[t.FULLPLAIN] + "$"; + tok("LOOSEPLAIN"); + src[t.LOOSEPLAIN] = "[v=\\s]*" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + "?" + src[t.BUILD] + "?"; + tok("LOOSE"); + src[t.LOOSE] = "^" + src[t.LOOSEPLAIN] + "$"; + tok("GTLT"); + src[t.GTLT] = "((?:<|>)?=?)"; + tok("XRANGEIDENTIFIERLOOSE"); + src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + "|x|X|\\*"; + tok("XRANGEIDENTIFIER"); + src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + "|x|X|\\*"; + tok("XRANGEPLAIN"); + src[t.XRANGEPLAIN] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIER] + ")(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")(?:" + src[t.PRERELEASE] + ")?" + src[t.BUILD] + "?)?)?"; + tok("XRANGEPLAINLOOSE"); + src[t.XRANGEPLAINLOOSE] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")(?:" + src[t.PRERELEASELOOSE] + ")?" + src[t.BUILD] + "?)?)?"; + tok("XRANGE"); + src[t.XRANGE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAIN] + "$"; + tok("XRANGELOOSE"); + src[t.XRANGELOOSE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAINLOOSE] + "$"; + tok("COERCE"); + src[t.COERCE] = "(^|[^\\d])(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "})(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?(?:$|[^\\d])"; + tok("COERCERTL"); + re[t.COERCERTL] = new RegExp(src[t.COERCE], "g"); + tok("LONETILDE"); + src[t.LONETILDE] = "(?:~>?)"; + tok("TILDETRIM"); + src[t.TILDETRIM] = "(\\s*)" + src[t.LONETILDE] + "\\s+"; + re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], "g"); + var tildeTrimReplace = "$1~"; + tok("TILDE"); + src[t.TILDE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + "$"; + tok("TILDELOOSE"); + src[t.TILDELOOSE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + "$"; + tok("LONECARET"); + src[t.LONECARET] = "(?:\\^)"; + tok("CARETTRIM"); + src[t.CARETTRIM] = "(\\s*)" + src[t.LONECARET] + "\\s+"; + re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], "g"); + var caretTrimReplace = "$1^"; + tok("CARET"); + src[t.CARET] = "^" + src[t.LONECARET] + src[t.XRANGEPLAIN] + "$"; + tok("CARETLOOSE"); + src[t.CARETLOOSE] = "^" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + "$"; + tok("COMPARATORLOOSE"); + src[t.COMPARATORLOOSE] = "^" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + ")$|^$"; + tok("COMPARATOR"); + src[t.COMPARATOR] = "^" + src[t.GTLT] + "\\s*(" + src[t.FULLPLAIN] + ")$|^$"; + tok("COMPARATORTRIM"); + src[t.COMPARATORTRIM] = "(\\s*)" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + "|" + src[t.XRANGEPLAIN] + ")"; + re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], "g"); + var comparatorTrimReplace = "$1$2$3"; + tok("HYPHENRANGE"); + src[t.HYPHENRANGE] = "^\\s*(" + src[t.XRANGEPLAIN] + ")\\s+-\\s+(" + src[t.XRANGEPLAIN] + ")\\s*$"; + tok("HYPHENRANGELOOSE"); + src[t.HYPHENRANGELOOSE] = "^\\s*(" + src[t.XRANGEPLAINLOOSE] + ")\\s+-\\s+(" + src[t.XRANGEPLAINLOOSE] + ")\\s*$"; + tok("STAR"); + src[t.STAR] = "(<|>)?=?\\s*\\*"; + for (i = 0; i < R; i++) { + debug(i, src[i]); + if (!re[i]) { + re[i] = new RegExp(src[i]); + } + } + var i; + exports2.parse = parse; + function parse(version, options) { + if (!options || typeof options !== "object") { + options = { + loose: !!options, + includePrerelease: false + }; + } + if (version instanceof SemVer) { + return version; + } + if (typeof version !== "string") { + return null; + } + if (version.length > MAX_LENGTH) { + return null; + } + var r = options.loose ? re[t.LOOSE] : re[t.FULL]; + if (!r.test(version)) { + return null; + } + try { + return new SemVer(version, options); + } catch (er) { + return null; + } + } + exports2.valid = valid; + function valid(version, options) { + var v = parse(version, options); + return v ? v.version : null; + } + exports2.clean = clean; + function clean(version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ""), options); + return s ? s.version : null; + } + exports2.SemVer = SemVer; + function SemVer(version, options) { + if (!options || typeof options !== "object") { + options = { + loose: !!options, + includePrerelease: false + }; + } + if (version instanceof SemVer) { + if (version.loose === options.loose) { + return version; + } else { + version = version.version; + } + } else if (typeof version !== "string") { + throw new TypeError("Invalid Version: " + version); + } + if (version.length > MAX_LENGTH) { + throw new TypeError("version is longer than " + MAX_LENGTH + " characters"); + } + if (!(this instanceof SemVer)) { + return new SemVer(version, options); + } + debug("SemVer", version, options); + this.options = options; + this.loose = !!options.loose; + var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + if (!m) { + throw new TypeError("Invalid Version: " + version); + } + this.raw = version; + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError("Invalid major version"); + } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError("Invalid minor version"); + } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError("Invalid patch version"); + } + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split(".").map(function(id) { + if (/^[0-9]+$/.test(id)) { + var num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + return id; + }); + } + this.build = m[5] ? m[5].split(".") : []; + this.format(); + } + SemVer.prototype.format = function() { + this.version = this.major + "." + this.minor + "." + this.patch; + if (this.prerelease.length) { + this.version += "-" + this.prerelease.join("."); + } + return this.version; + }; + SemVer.prototype.toString = function() { + return this.version; + }; + SemVer.prototype.compare = function(other) { + debug("SemVer.compare", this.version, this.options, other); + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + return this.compareMain(other) || this.comparePre(other); + }; + SemVer.prototype.compareMain = function(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); + }; + SemVer.prototype.comparePre = function(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + var i2 = 0; + do { + var a = this.prerelease[i2]; + var b = other.prerelease[i2]; + debug("prerelease compare", i2, a, b); + if (a === void 0 && b === void 0) { + return 0; + } else if (b === void 0) { + return 1; + } else if (a === void 0) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i2); + }; + SemVer.prototype.compareBuild = function(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + var i2 = 0; + do { + var a = this.build[i2]; + var b = other.build[i2]; + debug("prerelease compare", i2, a, b); + if (a === void 0 && b === void 0) { + return 0; + } else if (b === void 0) { + return 1; + } else if (a === void 0) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i2); + }; + SemVer.prototype.inc = function(release, identifier) { + switch (release) { + case "premajor": + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc("pre", identifier); + break; + case "preminor": + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc("pre", identifier); + break; + case "prepatch": + this.prerelease.length = 0; + this.inc("patch", identifier); + this.inc("pre", identifier); + break; + case "prerelease": + if (this.prerelease.length === 0) { + this.inc("patch", identifier); + } + this.inc("pre", identifier); + break; + case "major": + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case "minor": + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case "patch": + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + case "pre": + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + var i2 = this.prerelease.length; + while (--i2 >= 0) { + if (typeof this.prerelease[i2] === "number") { + this.prerelease[i2]++; + i2 = -2; + } + } + if (i2 === -1) { + this.prerelease.push(0); + } + } + if (identifier) { + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0]; + } + } else { + this.prerelease = [identifier, 0]; + } + } + break; + default: + throw new Error("invalid increment argument: " + release); + } + this.format(); + this.raw = this.version; + return this; + }; + exports2.inc = inc; + function inc(version, release, loose, identifier) { + if (typeof loose === "string") { + identifier = loose; + loose = void 0; + } + try { + return new SemVer(version, loose).inc(release, identifier).version; + } catch (er) { + return null; + } + } + exports2.diff = diff; + function diff(version1, version2) { + if (eq(version1, version2)) { + return null; + } else { + var v1 = parse(version1); + var v2 = parse(version2); + var prefix = ""; + if (v1.prerelease.length || v2.prerelease.length) { + prefix = "pre"; + var defaultResult = "prerelease"; + } + for (var key in v1) { + if (key === "major" || key === "minor" || key === "patch") { + if (v1[key] !== v2[key]) { + return prefix + key; + } + } + } + return defaultResult; + } + } + exports2.compareIdentifiers = compareIdentifiers; + var numeric = /^[0-9]+$/; + function compareIdentifiers(a, b) { + var anum = numeric.test(a); + var bnum = numeric.test(b); + if (anum && bnum) { + a = +a; + b = +b; + } + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; + } + exports2.rcompareIdentifiers = rcompareIdentifiers; + function rcompareIdentifiers(a, b) { + return compareIdentifiers(b, a); + } + exports2.major = major; + function major(a, loose) { + return new SemVer(a, loose).major; + } + exports2.minor = minor; + function minor(a, loose) { + return new SemVer(a, loose).minor; + } + exports2.patch = patch; + function patch(a, loose) { + return new SemVer(a, loose).patch; + } + exports2.compare = compare; + function compare(a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)); + } + exports2.compareLoose = compareLoose; + function compareLoose(a, b) { + return compare(a, b, true); + } + exports2.compareBuild = compareBuild; + function compareBuild(a, b, loose) { + var versionA = new SemVer(a, loose); + var versionB = new SemVer(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); + } + exports2.rcompare = rcompare; + function rcompare(a, b, loose) { + return compare(b, a, loose); + } + exports2.sort = sort; + function sort(list, loose) { + return list.sort(function(a, b) { + return exports2.compareBuild(a, b, loose); + }); + } + exports2.rsort = rsort; + function rsort(list, loose) { + return list.sort(function(a, b) { + return exports2.compareBuild(b, a, loose); + }); + } + exports2.gt = gt; + function gt(a, b, loose) { + return compare(a, b, loose) > 0; + } + exports2.lt = lt; + function lt(a, b, loose) { + return compare(a, b, loose) < 0; + } + exports2.eq = eq; + function eq(a, b, loose) { + return compare(a, b, loose) === 0; + } + exports2.neq = neq; + function neq(a, b, loose) { + return compare(a, b, loose) !== 0; + } + exports2.gte = gte; + function gte(a, b, loose) { + return compare(a, b, loose) >= 0; + } + exports2.lte = lte; + function lte(a, b, loose) { + return compare(a, b, loose) <= 0; + } + exports2.cmp = cmp; + function cmp(a, op, b, loose) { + switch (op) { + case "===": + if (typeof a === "object") + a = a.version; + if (typeof b === "object") + b = b.version; + return a === b; + case "!==": + if (typeof a === "object") + a = a.version; + if (typeof b === "object") + b = b.version; + return a !== b; + case "": + case "=": + case "==": + return eq(a, b, loose); + case "!=": + return neq(a, b, loose); + case ">": + return gt(a, b, loose); + case ">=": + return gte(a, b, loose); + case "<": + return lt(a, b, loose); + case "<=": + return lte(a, b, loose); + default: + throw new TypeError("Invalid operator: " + op); + } + } + exports2.Comparator = Comparator; + function Comparator(comp, options) { + if (!options || typeof options !== "object") { + options = { + loose: !!options, + includePrerelease: false + }; + } + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } + if (!(this instanceof Comparator)) { + return new Comparator(comp, options); + } + debug("comparator", comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + if (this.semver === ANY) { + this.value = ""; + } else { + this.value = this.operator + this.semver.version; + } + debug("comp", this); + } + var ANY = {}; + Comparator.prototype.parse = function(comp) { + var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + var m = comp.match(r); + if (!m) { + throw new TypeError("Invalid comparator: " + comp); + } + this.operator = m[1] !== void 0 ? m[1] : ""; + if (this.operator === "=") { + this.operator = ""; + } + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); + } + }; + Comparator.prototype.toString = function() { + return this.value; + }; + Comparator.prototype.test = function(version) { + debug("Comparator.test", version, this.options.loose); + if (this.semver === ANY || version === ANY) { + return true; + } + if (typeof version === "string") { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + return cmp(version, this.operator, this.semver, this.options); + }; + Comparator.prototype.intersects = function(comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError("a Comparator is required"); + } + if (!options || typeof options !== "object") { + options = { + loose: !!options, + includePrerelease: false + }; + } + var rangeTmp; + if (this.operator === "") { + if (this.value === "") { + return true; + } + rangeTmp = new Range(comp.value, options); + return satisfies(this.value, rangeTmp, options); + } else if (comp.operator === "") { + if (comp.value === "") { + return true; + } + rangeTmp = new Range(this.value, options); + return satisfies(comp.semver, rangeTmp, options); + } + var sameDirectionIncreasing = (this.operator === ">=" || this.operator === ">") && (comp.operator === ">=" || comp.operator === ">"); + var sameDirectionDecreasing = (this.operator === "<=" || this.operator === "<") && (comp.operator === "<=" || comp.operator === "<"); + var sameSemVer = this.semver.version === comp.semver.version; + var differentDirectionsInclusive = (this.operator === ">=" || this.operator === "<=") && (comp.operator === ">=" || comp.operator === "<="); + var oppositeDirectionsLessThan = cmp(this.semver, "<", comp.semver, options) && (this.operator === ">=" || this.operator === ">") && (comp.operator === "<=" || comp.operator === "<"); + var oppositeDirectionsGreaterThan = cmp(this.semver, ">", comp.semver, options) && (this.operator === "<=" || this.operator === "<") && (comp.operator === ">=" || comp.operator === ">"); + return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; + }; + exports2.Range = Range; + function Range(range, options) { + if (!options || typeof options !== "object") { + options = { + loose: !!options, + includePrerelease: false + }; + } + if (range instanceof Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new Range(range.raw, options); + } + } + if (range instanceof Comparator) { + return new Range(range.value, options); + } + if (!(this instanceof Range)) { + return new Range(range, options); + } + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + this.raw = range; + this.set = range.split(/\s*\|\|\s*/).map(function(range2) { + return this.parseRange(range2.trim()); + }, this).filter(function(c) { + return c.length; + }); + if (!this.set.length) { + throw new TypeError("Invalid SemVer Range: " + range); + } + this.format(); + } + Range.prototype.format = function() { + this.range = this.set.map(function(comps) { + return comps.join(" ").trim(); + }).join("||").trim(); + return this.range; + }; + Range.prototype.toString = function() { + return this.range; + }; + Range.prototype.parseRange = function(range) { + var loose = this.options.loose; + range = range.trim(); + var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace); + debug("hyphen replace", range); + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug("comparator trim", range, re[t.COMPARATORTRIM]); + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + range = range.split(/\s+/).join(" "); + var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + var set = range.split(" ").map(function(comp) { + return parseComparator(comp, this.options); + }, this).join(" ").split(/\s+/); + if (this.options.loose) { + set = set.filter(function(comp) { + return !!comp.match(compRe); + }); + } + set = set.map(function(comp) { + return new Comparator(comp, this.options); + }, this); + return set; + }; + Range.prototype.intersects = function(range, options) { + if (!(range instanceof Range)) { + throw new TypeError("a Range is required"); + } + return this.set.some(function(thisComparators) { + return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) { + return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) { + return rangeComparators.every(function(rangeComparator) { + return thisComparator.intersects(rangeComparator, options); + }); + }); + }); + }); + }; + function isSatisfiable(comparators, options) { + var result = true; + var remainingComparators = comparators.slice(); + var testComparator = remainingComparators.pop(); + while (result && remainingComparators.length) { + result = remainingComparators.every(function(otherComparator) { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); + } + return result; + } + exports2.toComparators = toComparators; + function toComparators(range, options) { + return new Range(range, options).set.map(function(comp) { + return comp.map(function(c) { + return c.value; + }).join(" ").trim().split(" "); + }); + } + function parseComparator(comp, options) { + debug("comp", comp, options); + comp = replaceCarets(comp, options); + debug("caret", comp); + comp = replaceTildes(comp, options); + debug("tildes", comp); + comp = replaceXRanges(comp, options); + debug("xrange", comp); + comp = replaceStars(comp, options); + debug("stars", comp); + return comp; + } + function isX(id) { + return !id || id.toLowerCase() === "x" || id === "*"; + } + function replaceTildes(comp, options) { + return comp.trim().split(/\s+/).map(function(comp2) { + return replaceTilde(comp2, options); + }).join(" "); + } + function replaceTilde(comp, options) { + var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + return comp.replace(r, function(_, M, m, p, pr) { + debug("tilde", comp, _, M, m, p, pr); + var ret; + if (isX(M)) { + ret = ""; + } else if (isX(m)) { + ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; + } else if (isX(p)) { + ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; + } else if (pr) { + debug("replaceTilde pr", pr); + ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; + } else { + ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; + } + debug("tilde return", ret); + return ret; + }); + } + function replaceCarets(comp, options) { + return comp.trim().split(/\s+/).map(function(comp2) { + return replaceCaret(comp2, options); + }).join(" "); + } + function replaceCaret(comp, options) { + debug("caret", comp, options); + var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + return comp.replace(r, function(_, M, m, p, pr) { + debug("caret", comp, _, M, m, p, pr); + var ret; + if (isX(M)) { + ret = ""; + } else if (isX(m)) { + ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; + } else if (isX(p)) { + if (M === "0") { + ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; + } else { + ret = ">=" + M + "." + m + ".0 <" + (+M + 1) + ".0.0"; + } + } else if (pr) { + debug("replaceCaret pr", pr); + if (M === "0") { + if (m === "0") { + ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + m + "." + (+p + 1); + } else { + ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; + } + } else { + ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + (+M + 1) + ".0.0"; + } + } else { + debug("no pr"); + if (M === "0") { + if (m === "0") { + ret = ">=" + M + "." + m + "." + p + " <" + M + "." + m + "." + (+p + 1); + } else { + ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; + } + } else { + ret = ">=" + M + "." + m + "." + p + " <" + (+M + 1) + ".0.0"; + } + } + debug("caret return", ret); + return ret; + }); + } + function replaceXRanges(comp, options) { + debug("replaceXRanges", comp, options); + return comp.split(/\s+/).map(function(comp2) { + return replaceXRange(comp2, options); + }).join(" "); + } + function replaceXRange(comp, options) { + comp = comp.trim(); + var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, function(ret, gtlt, M, m, p, pr) { + debug("xRange", comp, ret, gtlt, M, m, p, pr); + var xM = isX(M); + var xm = xM || isX(m); + var xp = xm || isX(p); + var anyX = xp; + if (gtlt === "=" && anyX) { + gtlt = ""; + } + pr = options.includePrerelease ? "-0" : ""; + if (xM) { + if (gtlt === ">" || gtlt === "<") { + ret = "<0.0.0-0"; + } else { + ret = "*"; + } + } else if (gtlt && anyX) { + if (xm) { + m = 0; + } + p = 0; + if (gtlt === ">") { + gtlt = ">="; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === "<=") { + gtlt = "<"; + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } + ret = gtlt + M + "." + m + "." + p + pr; + } else if (xm) { + ret = ">=" + M + ".0.0" + pr + " <" + (+M + 1) + ".0.0" + pr; + } else if (xp) { + ret = ">=" + M + "." + m + ".0" + pr + " <" + M + "." + (+m + 1) + ".0" + pr; + } + debug("xRange return", ret); + return ret; + }); + } + function replaceStars(comp, options) { + debug("replaceStars", comp, options); + return comp.trim().replace(re[t.STAR], ""); + } + function hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = ""; + } else if (isX(fm)) { + from = ">=" + fM + ".0.0"; + } else if (isX(fp)) { + from = ">=" + fM + "." + fm + ".0"; + } else { + from = ">=" + from; + } + if (isX(tM)) { + to = ""; + } else if (isX(tm)) { + to = "<" + (+tM + 1) + ".0.0"; + } else if (isX(tp)) { + to = "<" + tM + "." + (+tm + 1) + ".0"; + } else if (tpr) { + to = "<=" + tM + "." + tm + "." + tp + "-" + tpr; + } else { + to = "<=" + to; + } + return (from + " " + to).trim(); + } + Range.prototype.test = function(version) { + if (!version) { + return false; + } + if (typeof version === "string") { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + for (var i2 = 0; i2 < this.set.length; i2++) { + if (testSet(this.set[i2], version, this.options)) { + return true; + } + } + return false; + }; + function testSet(set, version, options) { + for (var i2 = 0; i2 < set.length; i2++) { + if (!set[i2].test(version)) { + return false; + } + } + if (version.prerelease.length && !options.includePrerelease) { + for (i2 = 0; i2 < set.length; i2++) { + debug(set[i2].semver); + if (set[i2].semver === ANY) { + continue; + } + if (set[i2].semver.prerelease.length > 0) { + var allowed = set[i2].semver; + if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { + return true; + } + } + } + return false; + } + return true; + } + exports2.satisfies = satisfies; + function satisfies(version, range, options) { + try { + range = new Range(range, options); + } catch (er) { + return false; + } + return range.test(version); + } + exports2.maxSatisfying = maxSatisfying; + function maxSatisfying(versions, range, options) { + var max = null; + var maxSV = null; + try { + var rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach(function(v) { + if (rangeObj.test(v)) { + if (!max || maxSV.compare(v) === -1) { + max = v; + maxSV = new SemVer(max, options); + } + } + }); + return max; + } + exports2.minSatisfying = minSatisfying; + function minSatisfying(versions, range, options) { + var min = null; + var minSV = null; + try { + var rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach(function(v) { + if (rangeObj.test(v)) { + if (!min || minSV.compare(v) === 1) { + min = v; + minSV = new SemVer(min, options); + } + } + }); + return min; + } + exports2.minVersion = minVersion; + function minVersion(range, loose) { + range = new Range(range, loose); + var minver = new SemVer("0.0.0"); + if (range.test(minver)) { + return minver; + } + minver = new SemVer("0.0.0-0"); + if (range.test(minver)) { + return minver; + } + minver = null; + for (var i2 = 0; i2 < range.set.length; ++i2) { + var comparators = range.set[i2]; + comparators.forEach(function(comparator) { + var compver = new SemVer(comparator.semver.version); + switch (comparator.operator) { + case ">": + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + case "": + case ">=": + if (!minver || gt(minver, compver)) { + minver = compver; + } + break; + case "<": + case "<=": + break; + default: + throw new Error("Unexpected operation: " + comparator.operator); + } + }); + } + if (minver && range.test(minver)) { + return minver; + } + return null; + } + exports2.validRange = validRange; + function validRange(range, options) { + try { + return new Range(range, options).range || "*"; + } catch (er) { + return null; + } + } + exports2.ltr = ltr; + function ltr(version, range, options) { + return outside(version, range, "<", options); + } + exports2.gtr = gtr; + function gtr(version, range, options) { + return outside(version, range, ">", options); + } + exports2.outside = outside; + function outside(version, range, hilo, options) { + version = new SemVer(version, options); + range = new Range(range, options); + var gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case ">": + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = ">"; + ecomp = ">="; + break; + case "<": + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = "<"; + ecomp = "<="; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + if (satisfies(version, range, options)) { + return false; + } + for (var i2 = 0; i2 < range.set.length; ++i2) { + var comparators = range.set[i2]; + var high = null; + var low = null; + comparators.forEach(function(comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator(">=0.0.0"); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + if (high.operator === comp || high.operator === ecomp) { + return false; + } + if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false; + } + } + return true; + } + exports2.prerelease = prerelease; + function prerelease(version, options) { + var parsed = parse(version, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; + } + exports2.intersects = intersects; + function intersects(r1, r2, options) { + r1 = new Range(r1, options); + r2 = new Range(r2, options); + return r1.intersects(r2); + } + exports2.coerce = coerce; + function coerce(version, options) { + if (version instanceof SemVer) { + return version; + } + if (typeof version === "number") { + version = String(version); + } + if (typeof version !== "string") { + return null; + } + options = options || {}; + var match = null; + if (!options.rtl) { + match = version.match(re[t.COERCE]); + } else { + var next; + while ((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) { + if (!match || next.index + next[0].length !== match.index + match[0].length) { + match = next; + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; + } + re[t.COERCERTL].lastIndex = -1; + } + if (match === null) { + return null; + } + return parse(match[2] + "." + (match[3] || "0") + "." + (match[4] || "0"), options); + } + } +}); +var require_make_dir = __commonJS2({ + "node_modules/make-dir/index.js"(exports2, module2) { + "use strict"; + var fs = require("fs"); + var path = require("path"); + var { + promisify + } = require("util"); + var semver = require_semver(); + var useNativeRecursiveOption = semver.satisfies(process.version, ">=10.12.0"); + var checkPath = (pth) => { + if (process.platform === "win32") { + const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, "")); + if (pathHasInvalidWinCharacters) { + const error = new Error(`Path contains invalid characters: ${pth}`); + error.code = "EINVAL"; + throw error; + } + } + }; + var processOptions = (options) => { + const defaults = { + mode: 511, + fs + }; + return Object.assign(Object.assign({}, defaults), options); + }; + var permissionError = (pth) => { + const error = new Error(`operation not permitted, mkdir '${pth}'`); + error.code = "EPERM"; + error.errno = -4048; + error.path = pth; + error.syscall = "mkdir"; + return error; + }; + var makeDir = async (input, options) => { + checkPath(input); + options = processOptions(options); + const mkdir = promisify(options.fs.mkdir); + const stat = promisify(options.fs.stat); + if (useNativeRecursiveOption && options.fs.mkdir === fs.mkdir) { + const pth = path.resolve(input); + await mkdir(pth, { + mode: options.mode, + recursive: true + }); + return pth; + } + const make = async (pth) => { + try { + await mkdir(pth, options.mode); + return pth; + } catch (error) { + if (error.code === "EPERM") { + throw error; + } + if (error.code === "ENOENT") { + if (path.dirname(pth) === pth) { + throw permissionError(pth); + } + if (error.message.includes("null bytes")) { + throw error; + } + await make(path.dirname(pth)); + return make(pth); + } + try { + const stats = await stat(pth); + if (!stats.isDirectory()) { + throw new Error("The path is not a directory"); + } + } catch (_) { + throw error; + } + return pth; + } + }; + return make(path.resolve(input)); + }; + module2.exports = makeDir; + module2.exports.sync = (input, options) => { + checkPath(input); + options = processOptions(options); + if (useNativeRecursiveOption && options.fs.mkdirSync === fs.mkdirSync) { + const pth = path.resolve(input); + fs.mkdirSync(pth, { + mode: options.mode, + recursive: true + }); + return pth; + } + const make = (pth) => { + try { + options.fs.mkdirSync(pth, options.mode); + } catch (error) { + if (error.code === "EPERM") { + throw error; + } + if (error.code === "ENOENT") { + if (path.dirname(pth) === pth) { + throw permissionError(pth); + } + if (error.message.includes("null bytes")) { + throw error; + } + make(path.dirname(pth)); + return make(pth); + } + try { + if (!options.fs.statSync(pth).isDirectory()) { + throw new Error("The path is not a directory"); + } + } catch (_) { + throw error; + } + } + return pth; + }; + return make(path.resolve(input)); + }; + } +}); +var require_find_cache_dir = __commonJS2({ + "node_modules/find-cache-dir/index.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var fs = require("fs"); + var commonDir = require_commondir(); + var pkgDir = require_pkg_dir(); + var makeDir = require_make_dir(); + var { + env: env2, + cwd + } = process; + var isWritable = (path2) => { + try { + fs.accessSync(path2, fs.constants.W_OK); + return true; + } catch (_) { + return false; + } + }; + function useDirectory(directory, options) { + if (options.create) { + makeDir.sync(directory); + } + if (options.thunk) { + return (...arguments_) => path.join(directory, ...arguments_); + } + return directory; + } + function getNodeModuleDirectory(directory) { + const nodeModules = path.join(directory, "node_modules"); + if (!isWritable(nodeModules) && (fs.existsSync(nodeModules) || !isWritable(path.join(directory)))) { + return; + } + return nodeModules; + } + module2.exports = (options = {}) => { + if (env2.CACHE_DIR && !["true", "false", "1", "0"].includes(env2.CACHE_DIR)) { + return useDirectory(path.join(env2.CACHE_DIR, options.name), options); + } + let { + cwd: directory = cwd() + } = options; + if (options.files) { + directory = commonDir(directory, options.files); + } + directory = pkgDir.sync(directory); + if (!directory) { + return; + } + const nodeModules = getNodeModuleDirectory(directory); + if (!nodeModules) { + return void 0; + } + return useDirectory(path.join(directory, "node_modules", ".cache", options.name), options); + }; + } +}); +var require_find_cache_file = __commonJS2({ + "src/cli/find-cache-file.js"(exports2, module2) { + "use strict"; + var os2 = require("os"); + var path = require("path"); + var findCacheDir = require_find_cache_dir(); + function findCacheFile() { + const cacheDir = findCacheDir({ + name: "prettier", + create: true + }) || os2.tmpdir(); + const cacheFilePath = path.join(cacheDir, ".prettier-cache"); + return cacheFilePath; + } + module2.exports = findCacheFile; + } +}); +var require_cjs = __commonJS2({ + "node_modules/flatted/cjs/index.js"(exports2) { + "use strict"; + var { + parse: $parse, + stringify: $stringify + } = JSON; + var { + keys + } = Object; + var Primitive = String; + var primitive = "string"; + var ignore = {}; + var object = "object"; + var noop = (_, value) => value; + var primitives = (value) => value instanceof Primitive ? Primitive(value) : value; + var Primitives = (_, value) => typeof value === primitive ? new Primitive(value) : value; + var revive = (input, parsed, output, $) => { + const lazy = []; + for (let ke = keys(output), { + length + } = ke, y = 0; y < length; y++) { + const k = ke[y]; + const value = output[k]; + if (value instanceof Primitive) { + const tmp = input[value]; + if (typeof tmp === object && !parsed.has(tmp)) { + parsed.add(tmp); + output[k] = ignore; + lazy.push({ + k, + a: [input, parsed, tmp, $] + }); + } else + output[k] = $.call(output, k, tmp); + } else if (output[k] !== ignore) + output[k] = $.call(output, k, value); + } + for (let { + length + } = lazy, i = 0; i < length; i++) { + const { + k, + a + } = lazy[i]; + output[k] = $.call(output, k, revive.apply(null, a)); + } + return output; + }; + var set = (known, input, value) => { + const index = Primitive(input.push(value) - 1); + known.set(value, index); + return index; + }; + var parse = (text, reviver) => { + const input = $parse(text, Primitives).map(primitives); + const value = input[0]; + const $ = reviver || noop; + const tmp = typeof value === object && value ? revive(input, /* @__PURE__ */ new Set(), value, $) : value; + return $.call({ + "": tmp + }, "", tmp); + }; + exports2.parse = parse; + var stringify2 = (value, replacer, space) => { + const $ = replacer && typeof replacer === object ? (k, v) => k === "" || -1 < replacer.indexOf(k) ? v : void 0 : replacer || noop; + const known = /* @__PURE__ */ new Map(); + const input = []; + const output = []; + let i = +set(known, input, $.call({ + "": value + }, "", value)); + let firstRun = !i; + while (i < input.length) { + firstRun = true; + output[i] = $stringify(input[i++], replace, space); + } + return "[" + output.join(",") + "]"; + function replace(key, value2) { + if (firstRun) { + firstRun = !firstRun; + return value2; + } + const after = $.call(this, key, value2); + switch (typeof after) { + case object: + if (after === null) + return after; + case primitive: + return known.get(after) || set(known, input, after); + } + return after; + } + }; + exports2.stringify = stringify2; + var toJSON = (any) => $parse(stringify2(any)); + exports2.toJSON = toJSON; + var fromJSON = (any) => parse($stringify(any)); + exports2.fromJSON = fromJSON; + } +}); +var require_utils6 = __commonJS2({ + "node_modules/flat-cache/src/utils.js"(exports2, module2) { + var fs = require("fs"); + var path = require("path"); + var flatted = require_cjs(); + module2.exports = { + tryParse: function(filePath, defaultValue) { + var result; + try { + result = this.readJSON(filePath); + } catch (ex) { + result = defaultValue; + } + return result; + }, + readJSON: function(filePath) { + return flatted.parse(fs.readFileSync(filePath, { + encoding: "utf8" + })); + }, + writeJSON: function(filePath, data) { + fs.mkdirSync(path.dirname(filePath), { + recursive: true + }); + fs.writeFileSync(filePath, flatted.stringify(data)); + } + }; + } +}); +var require_old = __commonJS2({ + "node_modules/fs.realpath/old.js"(exports2) { + var pathModule = require("path"); + var isWindows = process.platform === "win32"; + var fs = require("fs"); + var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + function rethrow() { + var callback; + if (DEBUG) { + var backtrace = new Error(); + callback = debugCallback; + } else + callback = missingCallback; + return callback; + function debugCallback(err) { + if (err) { + backtrace.message = err.message; + err = backtrace; + missingCallback(err); + } + } + function missingCallback(err) { + if (err) { + if (process.throwDeprecation) + throw err; + else if (!process.noDeprecation) { + var msg = "fs: missing callback " + (err.stack || err.message); + if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + } + } + } + } + function maybeCallback(cb) { + return typeof cb === "function" ? cb : rethrow(); + } + var normalize = pathModule.normalize; + if (isWindows) { + nextPartRe = /(.*?)(?:[\/\\]+|$)/g; + } else { + nextPartRe = /(.*?)(?:[\/]+|$)/g; + } + var nextPartRe; + if (isWindows) { + splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; + } else { + splitRootRe = /^[\/]*/; + } + var splitRootRe; + exports2.realpathSync = function realpathSync(p, cache) { + p = pathModule.resolve(p); + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return cache[p]; + } + var original = p, seenLinks = {}, knownHard = {}; + var pos; + var current; + var base; + var previous; + start(); + function start() { + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ""; + if (isWindows && !knownHard[base]) { + fs.lstatSync(base); + knownHard[base] = true; + } + } + while (pos < p.length) { + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + if (knownHard[base] || cache && cache[base] === base) { + continue; + } + var resolvedLink; + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + resolvedLink = cache[base]; + } else { + var stat = fs.lstatSync(base); + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) + cache[base] = base; + continue; + } + var linkTarget = null; + if (!isWindows) { + var id = stat.dev.toString(32) + ":" + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + linkTarget = seenLinks[id]; + } + } + if (linkTarget === null) { + fs.statSync(base); + linkTarget = fs.readlinkSync(base); + } + resolvedLink = pathModule.resolve(previous, linkTarget); + if (cache) + cache[base] = resolvedLink; + if (!isWindows) + seenLinks[id] = linkTarget; + } + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } + if (cache) + cache[original] = p; + return p; + }; + exports2.realpath = function realpath(p, cache, cb) { + if (typeof cb !== "function") { + cb = maybeCallback(cache); + cache = null; + } + p = pathModule.resolve(p); + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return process.nextTick(cb.bind(null, null, cache[p])); + } + var original = p, seenLinks = {}, knownHard = {}; + var pos; + var current; + var base; + var previous; + start(); + function start() { + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ""; + if (isWindows && !knownHard[base]) { + fs.lstat(base, function(err) { + if (err) + return cb(err); + knownHard[base] = true; + LOOP(); + }); + } else { + process.nextTick(LOOP); + } + } + function LOOP() { + if (pos >= p.length) { + if (cache) + cache[original] = p; + return cb(null, p); + } + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + if (knownHard[base] || cache && cache[base] === base) { + return process.nextTick(LOOP); + } + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + return gotResolvedLink(cache[base]); + } + return fs.lstat(base, gotStat); + } + function gotStat(err, stat) { + if (err) + return cb(err); + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) + cache[base] = base; + return process.nextTick(LOOP); + } + if (!isWindows) { + var id = stat.dev.toString(32) + ":" + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + return gotTarget(null, seenLinks[id], base); + } + } + fs.stat(base, function(err2) { + if (err2) + return cb(err2); + fs.readlink(base, function(err3, target) { + if (!isWindows) + seenLinks[id] = target; + gotTarget(err3, target); + }); + }); + } + function gotTarget(err, target, base2) { + if (err) + return cb(err); + var resolvedLink = pathModule.resolve(previous, target); + if (cache) + cache[base2] = resolvedLink; + gotResolvedLink(resolvedLink); + } + function gotResolvedLink(resolvedLink) { + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } + }; + } +}); +var require_fs5 = __commonJS2({ + "node_modules/fs.realpath/index.js"(exports2, module2) { + module2.exports = realpath; + realpath.realpath = realpath; + realpath.sync = realpathSync; + realpath.realpathSync = realpathSync; + realpath.monkeypatch = monkeypatch; + realpath.unmonkeypatch = unmonkeypatch; + var fs = require("fs"); + var origRealpath = fs.realpath; + var origRealpathSync = fs.realpathSync; + var version = process.version; + var ok = /^v[0-5]\./.test(version); + var old = require_old(); + function newError(er) { + return er && er.syscall === "realpath" && (er.code === "ELOOP" || er.code === "ENOMEM" || er.code === "ENAMETOOLONG"); + } + function realpath(p, cache, cb) { + if (ok) { + return origRealpath(p, cache, cb); + } + if (typeof cache === "function") { + cb = cache; + cache = null; + } + origRealpath(p, cache, function(er, result) { + if (newError(er)) { + old.realpath(p, cache, cb); + } else { + cb(er, result); + } + }); + } + function realpathSync(p, cache) { + if (ok) { + return origRealpathSync(p, cache); + } + try { + return origRealpathSync(p, cache); + } catch (er) { + if (newError(er)) { + return old.realpathSync(p, cache); + } else { + throw er; + } + } + } + function monkeypatch() { + fs.realpath = realpath; + fs.realpathSync = realpathSync; + } + function unmonkeypatch() { + fs.realpath = origRealpath; + fs.realpathSync = origRealpathSync; + } + } +}); +var require_concat_map = __commonJS2({ + "node_modules/concat-map/index.js"(exports2, module2) { + module2.exports = function(xs, fn) { + var res = []; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray(x)) + res.push.apply(res, x); + else + res.push(x); + } + return res; + }; + var isArray = Array.isArray || function(xs) { + return Object.prototype.toString.call(xs) === "[object Array]"; + }; + } +}); +var require_balanced_match = __commonJS2({ + "node_modules/balanced-match/index.js"(exports2, module2) { + "use strict"; + module2.exports = balanced; + function balanced(a, b, str) { + if (a instanceof RegExp) + a = maybeMatch(a, str); + if (b instanceof RegExp) + b = maybeMatch(b, str); + var r = range(a, b, str); + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; + } + function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; + } + balanced.range = range; + function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + if (ai >= 0 && bi > 0) { + if (a === b) { + return [ai, bi]; + } + begs = []; + left = str.length; + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [begs.pop(), bi]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + bi = str.indexOf(b, i + 1); + } + i = ai < bi && ai >= 0 ? ai : bi; + } + if (begs.length) { + result = [left, right]; + } + } + return result; + } + } +}); +var require_brace_expansion = __commonJS2({ + "node_modules/brace-expansion/index.js"(exports2, module2) { + var concatMap = require_concat_map(); + var balanced = require_balanced_match(); + module2.exports = expandTop; + var escSlash = "\0SLASH" + Math.random() + "\0"; + var escOpen = "\0OPEN" + Math.random() + "\0"; + var escClose = "\0CLOSE" + Math.random() + "\0"; + var escComma = "\0COMMA" + Math.random() + "\0"; + var escPeriod = "\0PERIOD" + Math.random() + "\0"; + function numeric(str) { + return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); + } + function escapeBraces(str) { + return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); + } + function unescapeBraces(str) { + return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join("."); + } + function parseCommaParts(str) { + if (!str) + return [""]; + var parts = []; + var m = balanced("{", "}", str); + if (!m) + return str.split(","); + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(","); + p[p.length - 1] += "{" + body + "}"; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length - 1] += postParts.shift(); + p.push.apply(p, postParts); + } + parts.push.apply(parts, p); + return parts; + } + function expandTop(str) { + if (!str) + return []; + if (str.substr(0, 2) === "{}") { + str = "\\{\\}" + str.substr(2); + } + return expand(escapeBraces(str), true).map(unescapeBraces); + } + function embrace(str) { + return "{" + str + "}"; + } + function isPadded(el) { + return /^-?0\d/.test(el); + } + function lte(i, y) { + return i <= y; + } + function gte(i, y) { + return i >= y; + } + function expand(str, isTop) { + var expansions = []; + var m = balanced("{", "}", str); + if (!m || /\$$/.test(m.pre)) + return [str]; + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(",") >= 0; + if (!isSequence && !isOptions) { + if (m.post.match(/,.*\}/)) { + str = m.pre + "{" + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length ? expand(m.post, false) : [""]; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + var pre = m.pre; + var post = m.post.length ? expand(m.post, false) : [""]; + var N; + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length); + var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + N = []; + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === "\\") + c = ""; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join("0"); + if (i < 0) + c = "-" + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { + return expand(el, false); + }); + } + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + return expansions; + } + } +}); +var require_minimatch = __commonJS2({ + "node_modules/minimatch/minimatch.js"(exports2, module2) { + module2.exports = minimatch; + minimatch.Minimatch = Minimatch; + var path = function() { + try { + return require("path"); + } catch (e) { + } + }() || { + sep: "/" + }; + minimatch.sep = path.sep; + var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; + var expand = require_brace_expansion(); + var plTypes = { + "!": { + open: "(?:(?!(?:", + close: "))[^/]*?)" + }, + "?": { + open: "(?:", + close: ")?" + }, + "+": { + open: "(?:", + close: ")+" + }, + "*": { + open: "(?:", + close: ")*" + }, + "@": { + open: "(?:", + close: ")" + } + }; + var qmark = "[^/]"; + var star = qmark + "*?"; + var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; + var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; + var reSpecials = charSet("().*{}+?[]^$\\!"); + function charSet(s) { + return s.split("").reduce(function(set, c) { + set[c] = true; + return set; + }, {}); + } + var slashSplit = /\/+/; + minimatch.filter = filter; + function filter(pattern, options) { + options = options || {}; + return function(p, i, list) { + return minimatch(p, pattern, options); + }; + } + function ext(a, b) { + b = b || {}; + var t = {}; + Object.keys(a).forEach(function(k) { + t[k] = a[k]; + }); + Object.keys(b).forEach(function(k) { + t[k] = b[k]; + }); + return t; + } + minimatch.defaults = function(def) { + if (!def || typeof def !== "object" || !Object.keys(def).length) { + return minimatch; + } + var orig = minimatch; + var m = function minimatch2(p, pattern, options) { + return orig(p, pattern, ext(def, options)); + }; + m.Minimatch = function Minimatch2(pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)); + }; + m.Minimatch.defaults = function defaults(options) { + return orig.defaults(ext(def, options)).Minimatch; + }; + m.filter = function filter2(pattern, options) { + return orig.filter(pattern, ext(def, options)); + }; + m.defaults = function defaults(options) { + return orig.defaults(ext(def, options)); + }; + m.makeRe = function makeRe2(pattern, options) { + return orig.makeRe(pattern, ext(def, options)); + }; + m.braceExpand = function braceExpand2(pattern, options) { + return orig.braceExpand(pattern, ext(def, options)); + }; + m.match = function(list, pattern, options) { + return orig.match(list, pattern, ext(def, options)); + }; + return m; + }; + Minimatch.defaults = function(def) { + return minimatch.defaults(def).Minimatch; + }; + function minimatch(p, pattern, options) { + assertValidPattern(pattern); + if (!options) + options = {}; + if (!options.nocomment && pattern.charAt(0) === "#") { + return false; + } + return new Minimatch(pattern, options).match(p); + } + function Minimatch(pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options); + } + assertValidPattern(pattern); + if (!options) + options = {}; + pattern = pattern.trim(); + if (!options.allowWindowsEscape && path.sep !== "/") { + pattern = pattern.split(path.sep).join("/"); + } + this.options = options; + this.set = []; + this.pattern = pattern; + this.regexp = null; + this.negate = false; + this.comment = false; + this.empty = false; + this.partial = !!options.partial; + this.make(); + } + Minimatch.prototype.debug = function() { + }; + Minimatch.prototype.make = make; + function make() { + var pattern = this.pattern; + var options = this.options; + if (!options.nocomment && pattern.charAt(0) === "#") { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + this.parseNegate(); + var set = this.globSet = this.braceExpand(); + if (options.debug) + this.debug = function debug() { + console.error.apply(console, arguments); + }; + this.debug(this.pattern, set); + set = this.globParts = set.map(function(s) { + return s.split(slashSplit); + }); + this.debug(this.pattern, set); + set = set.map(function(s, si, set2) { + return s.map(this.parse, this); + }, this); + this.debug(this.pattern, set); + set = set.filter(function(s) { + return s.indexOf(false) === -1; + }); + this.debug(this.pattern, set); + this.set = set; + } + Minimatch.prototype.parseNegate = parseNegate; + function parseNegate() { + var pattern = this.pattern; + var negate = false; + var options = this.options; + var negateOffset = 0; + if (options.nonegate) + return; + for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === "!"; i++) { + negate = !negate; + negateOffset++; + } + if (negateOffset) + this.pattern = pattern.substr(negateOffset); + this.negate = negate; + } + minimatch.braceExpand = function(pattern, options) { + return braceExpand(pattern, options); + }; + Minimatch.prototype.braceExpand = braceExpand; + function braceExpand(pattern, options) { + if (!options) { + if (this instanceof Minimatch) { + options = this.options; + } else { + options = {}; + } + } + pattern = typeof pattern === "undefined" ? this.pattern : pattern; + assertValidPattern(pattern); + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + return [pattern]; + } + return expand(pattern); + } + var MAX_PATTERN_LENGTH = 1024 * 64; + var assertValidPattern = function(pattern) { + if (typeof pattern !== "string") { + throw new TypeError("invalid pattern"); + } + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError("pattern is too long"); + } + }; + Minimatch.prototype.parse = parse; + var SUBPARSE = {}; + function parse(pattern, isSub) { + assertValidPattern(pattern); + var options = this.options; + if (pattern === "**") { + if (!options.noglobstar) + return GLOBSTAR; + else + pattern = "*"; + } + if (pattern === "") + return ""; + var re = ""; + var hasMagic = !!options.nocase; + var escaping = false; + var patternListStack = []; + var negativeLists = []; + var stateChar; + var inClass = false; + var reClassStart = -1; + var classStart = -1; + var patternStart = pattern.charAt(0) === "." ? "" : options.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)"; + var self2 = this; + function clearStateChar() { + if (stateChar) { + switch (stateChar) { + case "*": + re += star; + hasMagic = true; + break; + case "?": + re += qmark; + hasMagic = true; + break; + default: + re += "\\" + stateChar; + break; + } + self2.debug("clearStateChar %j %j", stateChar, re); + stateChar = false; + } + } + for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { + this.debug("%s %s %s %j", pattern, i, re, c); + if (escaping && reSpecials[c]) { + re += "\\" + c; + escaping = false; + continue; + } + switch (c) { + case "/": { + return false; + } + case "\\": + clearStateChar(); + escaping = true; + continue; + case "?": + case "*": + case "+": + case "@": + case "!": + this.debug("%s %s %s %j <-- stateChar", pattern, i, re, c); + if (inClass) { + this.debug(" in class"); + if (c === "!" && i === classStart + 1) + c = "^"; + re += c; + continue; + } + self2.debug("call clearStateChar %j", stateChar); + clearStateChar(); + stateChar = c; + if (options.noext) + clearStateChar(); + continue; + case "(": + if (inClass) { + re += "("; + continue; + } + if (!stateChar) { + re += "\\("; + continue; + } + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }); + re += stateChar === "!" ? "(?:(?!(?:" : "(?:"; + this.debug("plType %j %j", stateChar, re); + stateChar = false; + continue; + case ")": + if (inClass || !patternListStack.length) { + re += "\\)"; + continue; + } + clearStateChar(); + hasMagic = true; + var pl = patternListStack.pop(); + re += pl.close; + if (pl.type === "!") { + negativeLists.push(pl); + } + pl.reEnd = re.length; + continue; + case "|": + if (inClass || !patternListStack.length || escaping) { + re += "\\|"; + escaping = false; + continue; + } + clearStateChar(); + re += "|"; + continue; + case "[": + clearStateChar(); + if (inClass) { + re += "\\" + c; + continue; + } + inClass = true; + classStart = i; + reClassStart = re.length; + re += c; + continue; + case "]": + if (i === classStart + 1 || !inClass) { + re += "\\" + c; + escaping = false; + continue; + } + var cs = pattern.substring(classStart + 1, i); + try { + RegExp("[" + cs + "]"); + } catch (er) { + var sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + "\\[" + sp[0] + "\\]"; + hasMagic = hasMagic || sp[1]; + inClass = false; + continue; + } + hasMagic = true; + inClass = false; + re += c; + continue; + default: + clearStateChar(); + if (escaping) { + escaping = false; + } else if (reSpecials[c] && !(c === "^" && inClass)) { + re += "\\"; + } + re += c; + } + } + if (inClass) { + cs = pattern.substr(classStart + 1); + sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + "\\[" + sp[0]; + hasMagic = hasMagic || sp[1]; + } + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length); + this.debug("setting tail", re, pl); + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function(_, $1, $2) { + if (!$2) { + $2 = "\\"; + } + return $1 + $1 + $2 + "|"; + }); + this.debug("tail=%j\n %s", tail, tail, pl, re); + var t = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type; + hasMagic = true; + re = re.slice(0, pl.reStart) + t + "\\(" + tail; + } + clearStateChar(); + if (escaping) { + re += "\\\\"; + } + var addPatternStart = false; + switch (re.charAt(0)) { + case "[": + case ".": + case "(": + addPatternStart = true; + } + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n]; + var nlBefore = re.slice(0, nl.reStart); + var nlFirst = re.slice(nl.reStart, nl.reEnd - 8); + var nlLast = re.slice(nl.reEnd - 8, nl.reEnd); + var nlAfter = re.slice(nl.reEnd); + nlLast += nlAfter; + var openParensBefore = nlBefore.split("(").length - 1; + var cleanAfter = nlAfter; + for (i = 0; i < openParensBefore; i++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, ""); + } + nlAfter = cleanAfter; + var dollar = ""; + if (nlAfter === "" && isSub !== SUBPARSE) { + dollar = "$"; + } + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast; + re = newRe; + } + if (re !== "" && hasMagic) { + re = "(?=.)" + re; + } + if (addPatternStart) { + re = patternStart + re; + } + if (isSub === SUBPARSE) { + return [re, hasMagic]; + } + if (!hasMagic) { + return globUnescape(pattern); + } + var flags = options.nocase ? "i" : ""; + try { + var regExp = new RegExp("^" + re + "$", flags); + } catch (er) { + return new RegExp("$."); + } + regExp._glob = pattern; + regExp._src = re; + return regExp; + } + minimatch.makeRe = function(pattern, options) { + return new Minimatch(pattern, options || {}).makeRe(); + }; + Minimatch.prototype.makeRe = makeRe; + function makeRe() { + if (this.regexp || this.regexp === false) + return this.regexp; + var set = this.set; + if (!set.length) { + this.regexp = false; + return this.regexp; + } + var options = this.options; + var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot; + var flags = options.nocase ? "i" : ""; + var re = set.map(function(pattern) { + return pattern.map(function(p) { + return p === GLOBSTAR ? twoStar : typeof p === "string" ? regExpEscape(p) : p._src; + }).join("\\/"); + }).join("|"); + re = "^(?:" + re + ")$"; + if (this.negate) + re = "^(?!" + re + ").*$"; + try { + this.regexp = new RegExp(re, flags); + } catch (ex) { + this.regexp = false; + } + return this.regexp; + } + minimatch.match = function(list, pattern, options) { + options = options || {}; + var mm = new Minimatch(pattern, options); + list = list.filter(function(f) { + return mm.match(f); + }); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; + }; + Minimatch.prototype.match = function match(f, partial) { + if (typeof partial === "undefined") + partial = this.partial; + this.debug("match", f, this.pattern); + if (this.comment) + return false; + if (this.empty) + return f === ""; + if (f === "/" && partial) + return true; + var options = this.options; + if (path.sep !== "/") { + f = f.split(path.sep).join("/"); + } + f = f.split(slashSplit); + this.debug(this.pattern, "split", f); + var set = this.set; + this.debug(this.pattern, "set", set); + var filename; + var i; + for (i = f.length - 1; i >= 0; i--) { + filename = f[i]; + if (filename) + break; + } + for (i = 0; i < set.length; i++) { + var pattern = set[i]; + var file = f; + if (options.matchBase && pattern.length === 1) { + file = [filename]; + } + var hit = this.matchOne(file, pattern, partial); + if (hit) { + if (options.flipNegate) + return true; + return !this.negate; + } + } + if (options.flipNegate) + return false; + return this.negate; + }; + Minimatch.prototype.matchOne = function(file, pattern, partial) { + var options = this.options; + this.debug("matchOne", { + "this": this, + file, + pattern + }); + this.debug("matchOne", file.length, pattern.length); + for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + this.debug("matchOne loop"); + var p = pattern[pi]; + var f = file[fi]; + this.debug(pattern, p, f); + if (p === false) + return false; + if (p === GLOBSTAR) { + this.debug("GLOBSTAR", [pattern, p, f]); + var fr = fi; + var pr = pi + 1; + if (pr === pl) { + this.debug("** at the end"); + for (; fi < fl; fi++) { + if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".") + return false; + } + return true; + } + while (fr < fl) { + var swallowee = file[fr]; + this.debug("\nglobstar while", file, fr, pattern, pr, swallowee); + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug("globstar found match!", fr, fl, swallowee); + return true; + } else { + if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") { + this.debug("dot detected!", file, fr, pattern, pr); + break; + } + this.debug("globstar swallow a segment, and continue"); + fr++; + } + } + if (partial) { + this.debug("\n>>> no match, partial?", file, fr, pattern, pr); + if (fr === fl) + return true; + } + return false; + } + var hit; + if (typeof p === "string") { + hit = f === p; + this.debug("string match", p, f, hit); + } else { + hit = f.match(p); + this.debug("pattern match", p, f, hit); + } + if (!hit) + return false; + } + if (fi === fl && pi === pl) { + return true; + } else if (fi === fl) { + return partial; + } else if (pi === pl) { + return fi === fl - 1 && file[fi] === ""; + } + throw new Error("wtf?"); + }; + function globUnescape(s) { + return s.replace(/\\(.)/g, "$1"); + } + function regExpEscape(s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + } + } +}); +var require_inherits_browser = __commonJS2({ + "node_modules/inherits/inherits_browser.js"(exports2, module2) { + if (typeof Object.create === "function") { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } +}); +var require_inherits = __commonJS2({ + "node_modules/inherits/inherits.js"(exports2, module2) { + try { + util = require("util"); + if (typeof util.inherits !== "function") + throw ""; + module2.exports = util.inherits; + } catch (e) { + module2.exports = require_inherits_browser(); + } + var util; + } +}); +var require_path_is_absolute = __commonJS2({ + "node_modules/path-is-absolute/index.js"(exports2, module2) { + "use strict"; + function posix(path) { + return path.charAt(0) === "/"; + } + function win32(path) { + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path); + var device = result[1] || ""; + var isUnc = Boolean(device && device.charAt(1) !== ":"); + return Boolean(result[2] || isUnc); + } + module2.exports = process.platform === "win32" ? win32 : posix; + module2.exports.posix = posix; + module2.exports.win32 = win32; + } +}); +var require_common3 = __commonJS2({ + "node_modules/glob/common.js"(exports2) { + exports2.setopts = setopts; + exports2.ownProp = ownProp; + exports2.makeAbs = makeAbs; + exports2.finish = finish; + exports2.mark = mark; + exports2.isIgnored = isIgnored; + exports2.childrenIgnored = childrenIgnored; + function ownProp(obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field); + } + var fs = require("fs"); + var path = require("path"); + var minimatch = require_minimatch(); + var isAbsolute = require_path_is_absolute(); + var Minimatch = minimatch.Minimatch; + function alphasort(a, b) { + return a.localeCompare(b, "en"); + } + function setupIgnores(self2, options) { + self2.ignore = options.ignore || []; + if (!Array.isArray(self2.ignore)) + self2.ignore = [self2.ignore]; + if (self2.ignore.length) { + self2.ignore = self2.ignore.map(ignoreMap); + } + } + function ignoreMap(pattern) { + var gmatcher = null; + if (pattern.slice(-3) === "/**") { + var gpattern = pattern.replace(/(\/\*\*)+$/, ""); + gmatcher = new Minimatch(gpattern, { + dot: true + }); + } + return { + matcher: new Minimatch(pattern, { + dot: true + }), + gmatcher + }; + } + function setopts(self2, pattern, options) { + if (!options) + options = {}; + if (options.matchBase && pattern.indexOf("/") === -1) { + if (options.noglobstar) { + throw new Error("base matching requires globstar"); + } + pattern = "**/" + pattern; + } + self2.silent = !!options.silent; + self2.pattern = pattern; + self2.strict = options.strict !== false; + self2.realpath = !!options.realpath; + self2.realpathCache = options.realpathCache || /* @__PURE__ */ Object.create(null); + self2.follow = !!options.follow; + self2.dot = !!options.dot; + self2.mark = !!options.mark; + self2.nodir = !!options.nodir; + if (self2.nodir) + self2.mark = true; + self2.sync = !!options.sync; + self2.nounique = !!options.nounique; + self2.nonull = !!options.nonull; + self2.nosort = !!options.nosort; + self2.nocase = !!options.nocase; + self2.stat = !!options.stat; + self2.noprocess = !!options.noprocess; + self2.absolute = !!options.absolute; + self2.fs = options.fs || fs; + self2.maxLength = options.maxLength || Infinity; + self2.cache = options.cache || /* @__PURE__ */ Object.create(null); + self2.statCache = options.statCache || /* @__PURE__ */ Object.create(null); + self2.symlinks = options.symlinks || /* @__PURE__ */ Object.create(null); + setupIgnores(self2, options); + self2.changedCwd = false; + var cwd = process.cwd(); + if (!ownProp(options, "cwd")) + self2.cwd = cwd; + else { + self2.cwd = path.resolve(options.cwd); + self2.changedCwd = self2.cwd !== cwd; + } + self2.root = options.root || path.resolve(self2.cwd, "/"); + self2.root = path.resolve(self2.root); + if (process.platform === "win32") + self2.root = self2.root.replace(/\\/g, "/"); + self2.cwdAbs = isAbsolute(self2.cwd) ? self2.cwd : makeAbs(self2, self2.cwd); + if (process.platform === "win32") + self2.cwdAbs = self2.cwdAbs.replace(/\\/g, "/"); + self2.nomount = !!options.nomount; + options.nonegate = true; + options.nocomment = true; + self2.minimatch = new Minimatch(pattern, options); + self2.options = self2.minimatch.options; + } + function finish(self2) { + var nou = self2.nounique; + var all = nou ? [] : /* @__PURE__ */ Object.create(null); + for (var i = 0, l = self2.matches.length; i < l; i++) { + var matches = self2.matches[i]; + if (!matches || Object.keys(matches).length === 0) { + if (self2.nonull) { + var literal = self2.minimatch.globSet[i]; + if (nou) + all.push(literal); + else + all[literal] = true; + } + } else { + var m = Object.keys(matches); + if (nou) + all.push.apply(all, m); + else + m.forEach(function(m2) { + all[m2] = true; + }); + } + } + if (!nou) + all = Object.keys(all); + if (!self2.nosort) + all = all.sort(alphasort); + if (self2.mark) { + for (var i = 0; i < all.length; i++) { + all[i] = self2._mark(all[i]); + } + if (self2.nodir) { + all = all.filter(function(e) { + var notDir = !/\/$/.test(e); + var c = self2.cache[e] || self2.cache[makeAbs(self2, e)]; + if (notDir && c) + notDir = c !== "DIR" && !Array.isArray(c); + return notDir; + }); + } + } + if (self2.ignore.length) + all = all.filter(function(m2) { + return !isIgnored(self2, m2); + }); + self2.found = all; + } + function mark(self2, p) { + var abs = makeAbs(self2, p); + var c = self2.cache[abs]; + var m = p; + if (c) { + var isDir = c === "DIR" || Array.isArray(c); + var slash = p.slice(-1) === "/"; + if (isDir && !slash) + m += "/"; + else if (!isDir && slash) + m = m.slice(0, -1); + if (m !== p) { + var mabs = makeAbs(self2, m); + self2.statCache[mabs] = self2.statCache[abs]; + self2.cache[mabs] = self2.cache[abs]; + } + } + return m; + } + function makeAbs(self2, f) { + var abs = f; + if (f.charAt(0) === "/") { + abs = path.join(self2.root, f); + } else if (isAbsolute(f) || f === "") { + abs = f; + } else if (self2.changedCwd) { + abs = path.resolve(self2.cwd, f); + } else { + abs = path.resolve(f); + } + if (process.platform === "win32") + abs = abs.replace(/\\/g, "/"); + return abs; + } + function isIgnored(self2, path2) { + if (!self2.ignore.length) + return false; + return self2.ignore.some(function(item) { + return item.matcher.match(path2) || !!(item.gmatcher && item.gmatcher.match(path2)); + }); + } + function childrenIgnored(self2, path2) { + if (!self2.ignore.length) + return false; + return self2.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path2)); + }); + } + } +}); +var require_sync7 = __commonJS2({ + "node_modules/glob/sync.js"(exports2, module2) { + module2.exports = globSync; + globSync.GlobSync = GlobSync; + var rp = require_fs5(); + var minimatch = require_minimatch(); + var Minimatch = minimatch.Minimatch; + var Glob = require_glob().Glob; + var util = require("util"); + var path = require("path"); + var assert = require("assert"); + var isAbsolute = require_path_is_absolute(); + var common = require_common3(); + var setopts = common.setopts; + var ownProp = common.ownProp; + var childrenIgnored = common.childrenIgnored; + var isIgnored = common.isIgnored; + function globSync(pattern, options) { + if (typeof options === "function" || arguments.length === 3) + throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167"); + return new GlobSync(pattern, options).found; + } + function GlobSync(pattern, options) { + if (!pattern) + throw new Error("must provide pattern"); + if (typeof options === "function" || arguments.length === 3) + throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167"); + if (!(this instanceof GlobSync)) + return new GlobSync(pattern, options); + setopts(this, pattern, options); + if (this.noprocess) + return this; + var n = this.minimatch.set.length; + this.matches = new Array(n); + for (var i = 0; i < n; i++) { + this._process(this.minimatch.set[i], i, false); + } + this._finish(); + } + GlobSync.prototype._finish = function() { + assert(this instanceof GlobSync); + if (this.realpath) { + var self2 = this; + this.matches.forEach(function(matchset, index) { + var set = self2.matches[index] = /* @__PURE__ */ Object.create(null); + for (var p in matchset) { + try { + p = self2._makeAbs(p); + var real = rp.realpathSync(p, self2.realpathCache); + set[real] = true; + } catch (er) { + if (er.syscall === "stat") + set[self2._makeAbs(p)] = true; + else + throw er; + } + } + }); + } + common.finish(this); + }; + GlobSync.prototype._process = function(pattern, index, inGlobStar) { + assert(this instanceof GlobSync); + var n = 0; + while (typeof pattern[n] === "string") { + n++; + } + var prefix; + switch (n) { + case pattern.length: + this._processSimple(pattern.join("/"), index); + return; + case 0: + prefix = null; + break; + default: + prefix = pattern.slice(0, n).join("/"); + break; + } + var remain = pattern.slice(n); + var read; + if (prefix === null) + read = "."; + else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) { + if (!prefix || !isAbsolute(prefix)) + prefix = "/" + prefix; + read = prefix; + } else + read = prefix; + var abs = this._makeAbs(read); + if (childrenIgnored(this, read)) + return; + var isGlobStar = remain[0] === minimatch.GLOBSTAR; + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar); + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar); + }; + GlobSync.prototype._processReaddir = function(prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar); + if (!entries) + return; + var pn = remain[0]; + var negate = !!this.minimatch.negate; + var rawGlob = pn._glob; + var dotOk = this.dot || rawGlob.charAt(0) === "."; + var matchedEntries = []; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + if (e.charAt(0) !== "." || dotOk) { + var m; + if (negate && !prefix) { + m = !e.match(pn); + } else { + m = e.match(pn); + } + if (m) + matchedEntries.push(e); + } + } + var len = matchedEntries.length; + if (len === 0) + return; + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = /* @__PURE__ */ Object.create(null); + for (var i = 0; i < len; i++) { + var e = matchedEntries[i]; + if (prefix) { + if (prefix.slice(-1) !== "/") + e = prefix + "/" + e; + else + e = prefix + e; + } + if (e.charAt(0) === "/" && !this.nomount) { + e = path.join(this.root, e); + } + this._emitMatch(index, e); + } + return; + } + remain.shift(); + for (var i = 0; i < len; i++) { + var e = matchedEntries[i]; + var newPattern; + if (prefix) + newPattern = [prefix, e]; + else + newPattern = [e]; + this._process(newPattern.concat(remain), index, inGlobStar); + } + }; + GlobSync.prototype._emitMatch = function(index, e) { + if (isIgnored(this, e)) + return; + var abs = this._makeAbs(e); + if (this.mark) + e = this._mark(e); + if (this.absolute) { + e = abs; + } + if (this.matches[index][e]) + return; + if (this.nodir) { + var c = this.cache[abs]; + if (c === "DIR" || Array.isArray(c)) + return; + } + this.matches[index][e] = true; + if (this.stat) + this._stat(e); + }; + GlobSync.prototype._readdirInGlobStar = function(abs) { + if (this.follow) + return this._readdir(abs, false); + var entries; + var lstat; + var stat; + try { + lstat = this.fs.lstatSync(abs); + } catch (er) { + if (er.code === "ENOENT") { + return null; + } + } + var isSym = lstat && lstat.isSymbolicLink(); + this.symlinks[abs] = isSym; + if (!isSym && lstat && !lstat.isDirectory()) + this.cache[abs] = "FILE"; + else + entries = this._readdir(abs, false); + return entries; + }; + GlobSync.prototype._readdir = function(abs, inGlobStar) { + var entries; + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs); + if (ownProp(this.cache, abs)) { + var c = this.cache[abs]; + if (!c || c === "FILE") + return null; + if (Array.isArray(c)) + return c; + } + try { + return this._readdirEntries(abs, this.fs.readdirSync(abs)); + } catch (er) { + this._readdirError(abs, er); + return null; + } + }; + GlobSync.prototype._readdirEntries = function(abs, entries) { + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + if (abs === "/") + e = abs + e; + else + e = abs + "/" + e; + this.cache[e] = true; + } + } + this.cache[abs] = entries; + return entries; + }; + GlobSync.prototype._readdirError = function(f, er) { + switch (er.code) { + case "ENOTSUP": + case "ENOTDIR": + var abs = this._makeAbs(f); + this.cache[abs] = "FILE"; + if (abs === this.cwdAbs) { + var error = new Error(er.code + " invalid cwd " + this.cwd); + error.path = this.cwd; + error.code = er.code; + throw error; + } + break; + case "ENOENT": + case "ELOOP": + case "ENAMETOOLONG": + case "UNKNOWN": + this.cache[this._makeAbs(f)] = false; + break; + default: + this.cache[this._makeAbs(f)] = false; + if (this.strict) + throw er; + if (!this.silent) + console.error("glob error", er); + break; + } + }; + GlobSync.prototype._processGlobStar = function(prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar); + if (!entries) + return; + var remainWithoutGlobStar = remain.slice(1); + var gspref = prefix ? [prefix] : []; + var noGlobStar = gspref.concat(remainWithoutGlobStar); + this._process(noGlobStar, index, false); + var len = entries.length; + var isSym = this.symlinks[abs]; + if (isSym && inGlobStar) + return; + for (var i = 0; i < len; i++) { + var e = entries[i]; + if (e.charAt(0) === "." && !this.dot) + continue; + var instead = gspref.concat(entries[i], remainWithoutGlobStar); + this._process(instead, index, true); + var below = gspref.concat(entries[i], remain); + this._process(below, index, true); + } + }; + GlobSync.prototype._processSimple = function(prefix, index) { + var exists = this._stat(prefix); + if (!this.matches[index]) + this.matches[index] = /* @__PURE__ */ Object.create(null); + if (!exists) + return; + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix); + if (prefix.charAt(0) === "/") { + prefix = path.join(this.root, prefix); + } else { + prefix = path.resolve(this.root, prefix); + if (trail) + prefix += "/"; + } + } + if (process.platform === "win32") + prefix = prefix.replace(/\\/g, "/"); + this._emitMatch(index, prefix); + }; + GlobSync.prototype._stat = function(f) { + var abs = this._makeAbs(f); + var needDir = f.slice(-1) === "/"; + if (f.length > this.maxLength) + return false; + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs]; + if (Array.isArray(c)) + c = "DIR"; + if (!needDir || c === "DIR") + return c; + if (needDir && c === "FILE") + return false; + } + var exists; + var stat = this.statCache[abs]; + if (!stat) { + var lstat; + try { + lstat = this.fs.lstatSync(abs); + } catch (er) { + if (er && (er.code === "ENOENT" || er.code === "ENOTDIR")) { + this.statCache[abs] = false; + return false; + } + } + if (lstat && lstat.isSymbolicLink()) { + try { + stat = this.fs.statSync(abs); + } catch (er) { + stat = lstat; + } + } else { + stat = lstat; + } + } + this.statCache[abs] = stat; + var c = true; + if (stat) + c = stat.isDirectory() ? "DIR" : "FILE"; + this.cache[abs] = this.cache[abs] || c; + if (needDir && c === "FILE") + return false; + return c; + }; + GlobSync.prototype._mark = function(p) { + return common.mark(this, p); + }; + GlobSync.prototype._makeAbs = function(f) { + return common.makeAbs(this, f); + }; + } +}); +var require_wrappy = __commonJS2({ + "node_modules/wrappy/wrappy.js"(exports2, module2) { + module2.exports = wrappy; + function wrappy(fn, cb) { + if (fn && cb) + return wrappy(fn)(cb); + if (typeof fn !== "function") + throw new TypeError("need wrapper function"); + Object.keys(fn).forEach(function(k) { + wrapper[k] = fn[k]; + }); + return wrapper; + function wrapper() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + var ret = fn.apply(this, args); + var cb2 = args[args.length - 1]; + if (typeof ret === "function" && ret !== cb2) { + Object.keys(cb2).forEach(function(k) { + ret[k] = cb2[k]; + }); + } + return ret; + } + } + } +}); +var require_once = __commonJS2({ + "node_modules/once/once.js"(exports2, module2) { + var wrappy = require_wrappy(); + module2.exports = wrappy(once); + module2.exports.strict = wrappy(onceStrict); + once.proto = once(function() { + Object.defineProperty(Function.prototype, "once", { + value: function() { + return once(this); + }, + configurable: true + }); + Object.defineProperty(Function.prototype, "onceStrict", { + value: function() { + return onceStrict(this); + }, + configurable: true + }); + }); + function once(fn) { + var f = function() { + if (f.called) + return f.value; + f.called = true; + return f.value = fn.apply(this, arguments); + }; + f.called = false; + return f; + } + function onceStrict(fn) { + var f = function() { + if (f.called) + throw new Error(f.onceError); + f.called = true; + return f.value = fn.apply(this, arguments); + }; + var name = fn.name || "Function wrapped with `once`"; + f.onceError = name + " shouldn't be called more than once"; + f.called = false; + return f; + } + } +}); +var require_inflight = __commonJS2({ + "node_modules/inflight/inflight.js"(exports2, module2) { + var wrappy = require_wrappy(); + var reqs = /* @__PURE__ */ Object.create(null); + var once = require_once(); + module2.exports = wrappy(inflight); + function inflight(key, cb) { + if (reqs[key]) { + reqs[key].push(cb); + return null; + } else { + reqs[key] = [cb]; + return makeres(key); + } + } + function makeres(key) { + return once(function RES() { + var cbs = reqs[key]; + var len = cbs.length; + var args = slice(arguments); + try { + for (var i = 0; i < len; i++) { + cbs[i].apply(null, args); + } + } finally { + if (cbs.length > len) { + cbs.splice(0, len); + process.nextTick(function() { + RES.apply(null, args); + }); + } else { + delete reqs[key]; + } + } + }); + } + function slice(args) { + var length = args.length; + var array2 = []; + for (var i = 0; i < length; i++) + array2[i] = args[i]; + return array2; + } + } +}); +var require_glob = __commonJS2({ + "node_modules/glob/glob.js"(exports2, module2) { + module2.exports = glob; + var rp = require_fs5(); + var minimatch = require_minimatch(); + var Minimatch = minimatch.Minimatch; + var inherits = require_inherits(); + var EE = require("events").EventEmitter; + var path = require("path"); + var assert = require("assert"); + var isAbsolute = require_path_is_absolute(); + var globSync = require_sync7(); + var common = require_common3(); + var setopts = common.setopts; + var ownProp = common.ownProp; + var inflight = require_inflight(); + var util = require("util"); + var childrenIgnored = common.childrenIgnored; + var isIgnored = common.isIgnored; + var once = require_once(); + function glob(pattern, options, cb) { + if (typeof options === "function") + cb = options, options = {}; + if (!options) + options = {}; + if (options.sync) { + if (cb) + throw new TypeError("callback provided to sync glob"); + return globSync(pattern, options); + } + return new Glob(pattern, options, cb); + } + glob.sync = globSync; + var GlobSync = glob.GlobSync = globSync.GlobSync; + glob.glob = glob; + function extend(origin, add) { + if (add === null || typeof add !== "object") { + return origin; + } + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; + } + glob.hasMagic = function(pattern, options_) { + var options = extend({}, options_); + options.noprocess = true; + var g = new Glob(pattern, options); + var set = g.minimatch.set; + if (!pattern) + return false; + if (set.length > 1) + return true; + for (var j = 0; j < set[0].length; j++) { + if (typeof set[0][j] !== "string") + return true; + } + return false; + }; + glob.Glob = Glob; + inherits(Glob, EE); + function Glob(pattern, options, cb) { + if (typeof options === "function") { + cb = options; + options = null; + } + if (options && options.sync) { + if (cb) + throw new TypeError("callback provided to sync glob"); + return new GlobSync(pattern, options); + } + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb); + setopts(this, pattern, options); + this._didRealPath = false; + var n = this.minimatch.set.length; + this.matches = new Array(n); + if (typeof cb === "function") { + cb = once(cb); + this.on("error", cb); + this.on("end", function(matches) { + cb(null, matches); + }); + } + var self2 = this; + this._processing = 0; + this._emitQueue = []; + this._processQueue = []; + this.paused = false; + if (this.noprocess) + return this; + if (n === 0) + return done(); + var sync = true; + for (var i = 0; i < n; i++) { + this._process(this.minimatch.set[i], i, false, done); + } + sync = false; + function done() { + --self2._processing; + if (self2._processing <= 0) { + if (sync) { + process.nextTick(function() { + self2._finish(); + }); + } else { + self2._finish(); + } + } + } + } + Glob.prototype._finish = function() { + assert(this instanceof Glob); + if (this.aborted) + return; + if (this.realpath && !this._didRealpath) + return this._realpath(); + common.finish(this); + this.emit("end", this.found); + }; + Glob.prototype._realpath = function() { + if (this._didRealpath) + return; + this._didRealpath = true; + var n = this.matches.length; + if (n === 0) + return this._finish(); + var self2 = this; + for (var i = 0; i < this.matches.length; i++) + this._realpathSet(i, next); + function next() { + if (--n === 0) + self2._finish(); + } + }; + Glob.prototype._realpathSet = function(index, cb) { + var matchset = this.matches[index]; + if (!matchset) + return cb(); + var found = Object.keys(matchset); + var self2 = this; + var n = found.length; + if (n === 0) + return cb(); + var set = this.matches[index] = /* @__PURE__ */ Object.create(null); + found.forEach(function(p, i) { + p = self2._makeAbs(p); + rp.realpath(p, self2.realpathCache, function(er, real) { + if (!er) + set[real] = true; + else if (er.syscall === "stat") + set[p] = true; + else + self2.emit("error", er); + if (--n === 0) { + self2.matches[index] = set; + cb(); + } + }); + }); + }; + Glob.prototype._mark = function(p) { + return common.mark(this, p); + }; + Glob.prototype._makeAbs = function(f) { + return common.makeAbs(this, f); + }; + Glob.prototype.abort = function() { + this.aborted = true; + this.emit("abort"); + }; + Glob.prototype.pause = function() { + if (!this.paused) { + this.paused = true; + this.emit("pause"); + } + }; + Glob.prototype.resume = function() { + if (this.paused) { + this.emit("resume"); + this.paused = false; + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0); + this._emitQueue.length = 0; + for (var i = 0; i < eq.length; i++) { + var e = eq[i]; + this._emitMatch(e[0], e[1]); + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0); + this._processQueue.length = 0; + for (var i = 0; i < pq.length; i++) { + var p = pq[i]; + this._processing--; + this._process(p[0], p[1], p[2], p[3]); + } + } + } + }; + Glob.prototype._process = function(pattern, index, inGlobStar, cb) { + assert(this instanceof Glob); + assert(typeof cb === "function"); + if (this.aborted) + return; + this._processing++; + if (this.paused) { + this._processQueue.push([pattern, index, inGlobStar, cb]); + return; + } + var n = 0; + while (typeof pattern[n] === "string") { + n++; + } + var prefix; + switch (n) { + case pattern.length: + this._processSimple(pattern.join("/"), index, cb); + return; + case 0: + prefix = null; + break; + default: + prefix = pattern.slice(0, n).join("/"); + break; + } + var remain = pattern.slice(n); + var read; + if (prefix === null) + read = "."; + else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) { + if (!prefix || !isAbsolute(prefix)) + prefix = "/" + prefix; + read = prefix; + } else + read = prefix; + var abs = this._makeAbs(read); + if (childrenIgnored(this, read)) + return cb(); + var isGlobStar = remain[0] === minimatch.GLOBSTAR; + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb); + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb); + }; + Glob.prototype._processReaddir = function(prefix, read, abs, remain, index, inGlobStar, cb) { + var self2 = this; + this._readdir(abs, inGlobStar, function(er, entries) { + return self2._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb); + }); + }; + Glob.prototype._processReaddir2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) { + if (!entries) + return cb(); + var pn = remain[0]; + var negate = !!this.minimatch.negate; + var rawGlob = pn._glob; + var dotOk = this.dot || rawGlob.charAt(0) === "."; + var matchedEntries = []; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + if (e.charAt(0) !== "." || dotOk) { + var m; + if (negate && !prefix) { + m = !e.match(pn); + } else { + m = e.match(pn); + } + if (m) + matchedEntries.push(e); + } + } + var len = matchedEntries.length; + if (len === 0) + return cb(); + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = /* @__PURE__ */ Object.create(null); + for (var i = 0; i < len; i++) { + var e = matchedEntries[i]; + if (prefix) { + if (prefix !== "/") + e = prefix + "/" + e; + else + e = prefix + e; + } + if (e.charAt(0) === "/" && !this.nomount) { + e = path.join(this.root, e); + } + this._emitMatch(index, e); + } + return cb(); + } + remain.shift(); + for (var i = 0; i < len; i++) { + var e = matchedEntries[i]; + var newPattern; + if (prefix) { + if (prefix !== "/") + e = prefix + "/" + e; + else + e = prefix + e; + } + this._process([e].concat(remain), index, inGlobStar, cb); + } + cb(); + }; + Glob.prototype._emitMatch = function(index, e) { + if (this.aborted) + return; + if (isIgnored(this, e)) + return; + if (this.paused) { + this._emitQueue.push([index, e]); + return; + } + var abs = isAbsolute(e) ? e : this._makeAbs(e); + if (this.mark) + e = this._mark(e); + if (this.absolute) + e = abs; + if (this.matches[index][e]) + return; + if (this.nodir) { + var c = this.cache[abs]; + if (c === "DIR" || Array.isArray(c)) + return; + } + this.matches[index][e] = true; + var st = this.statCache[abs]; + if (st) + this.emit("stat", e, st); + this.emit("match", e); + }; + Glob.prototype._readdirInGlobStar = function(abs, cb) { + if (this.aborted) + return; + if (this.follow) + return this._readdir(abs, false, cb); + var lstatkey = "lstat\0" + abs; + var self2 = this; + var lstatcb = inflight(lstatkey, lstatcb_); + if (lstatcb) + self2.fs.lstat(abs, lstatcb); + function lstatcb_(er, lstat) { + if (er && er.code === "ENOENT") + return cb(); + var isSym = lstat && lstat.isSymbolicLink(); + self2.symlinks[abs] = isSym; + if (!isSym && lstat && !lstat.isDirectory()) { + self2.cache[abs] = "FILE"; + cb(); + } else + self2._readdir(abs, false, cb); + } + }; + Glob.prototype._readdir = function(abs, inGlobStar, cb) { + if (this.aborted) + return; + cb = inflight("readdir\0" + abs + "\0" + inGlobStar, cb); + if (!cb) + return; + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb); + if (ownProp(this.cache, abs)) { + var c = this.cache[abs]; + if (!c || c === "FILE") + return cb(); + if (Array.isArray(c)) + return cb(null, c); + } + var self2 = this; + self2.fs.readdir(abs, readdirCb(this, abs, cb)); + }; + function readdirCb(self2, abs, cb) { + return function(er, entries) { + if (er) + self2._readdirError(abs, er, cb); + else + self2._readdirEntries(abs, entries, cb); + }; + } + Glob.prototype._readdirEntries = function(abs, entries, cb) { + if (this.aborted) + return; + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + if (abs === "/") + e = abs + e; + else + e = abs + "/" + e; + this.cache[e] = true; + } + } + this.cache[abs] = entries; + return cb(null, entries); + }; + Glob.prototype._readdirError = function(f, er, cb) { + if (this.aborted) + return; + switch (er.code) { + case "ENOTSUP": + case "ENOTDIR": + var abs = this._makeAbs(f); + this.cache[abs] = "FILE"; + if (abs === this.cwdAbs) { + var error = new Error(er.code + " invalid cwd " + this.cwd); + error.path = this.cwd; + error.code = er.code; + this.emit("error", error); + this.abort(); + } + break; + case "ENOENT": + case "ELOOP": + case "ENAMETOOLONG": + case "UNKNOWN": + this.cache[this._makeAbs(f)] = false; + break; + default: + this.cache[this._makeAbs(f)] = false; + if (this.strict) { + this.emit("error", er); + this.abort(); + } + if (!this.silent) + console.error("glob error", er); + break; + } + return cb(); + }; + Glob.prototype._processGlobStar = function(prefix, read, abs, remain, index, inGlobStar, cb) { + var self2 = this; + this._readdir(abs, inGlobStar, function(er, entries) { + self2._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb); + }); + }; + Glob.prototype._processGlobStar2 = function(prefix, read, abs, remain, index, inGlobStar, entries, cb) { + if (!entries) + return cb(); + var remainWithoutGlobStar = remain.slice(1); + var gspref = prefix ? [prefix] : []; + var noGlobStar = gspref.concat(remainWithoutGlobStar); + this._process(noGlobStar, index, false, cb); + var isSym = this.symlinks[abs]; + var len = entries.length; + if (isSym && inGlobStar) + return cb(); + for (var i = 0; i < len; i++) { + var e = entries[i]; + if (e.charAt(0) === "." && !this.dot) + continue; + var instead = gspref.concat(entries[i], remainWithoutGlobStar); + this._process(instead, index, true, cb); + var below = gspref.concat(entries[i], remain); + this._process(below, index, true, cb); + } + cb(); + }; + Glob.prototype._processSimple = function(prefix, index, cb) { + var self2 = this; + this._stat(prefix, function(er, exists) { + self2._processSimple2(prefix, index, er, exists, cb); + }); + }; + Glob.prototype._processSimple2 = function(prefix, index, er, exists, cb) { + if (!this.matches[index]) + this.matches[index] = /* @__PURE__ */ Object.create(null); + if (!exists) + return cb(); + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix); + if (prefix.charAt(0) === "/") { + prefix = path.join(this.root, prefix); + } else { + prefix = path.resolve(this.root, prefix); + if (trail) + prefix += "/"; + } + } + if (process.platform === "win32") + prefix = prefix.replace(/\\/g, "/"); + this._emitMatch(index, prefix); + cb(); + }; + Glob.prototype._stat = function(f, cb) { + var abs = this._makeAbs(f); + var needDir = f.slice(-1) === "/"; + if (f.length > this.maxLength) + return cb(); + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs]; + if (Array.isArray(c)) + c = "DIR"; + if (!needDir || c === "DIR") + return cb(null, c); + if (needDir && c === "FILE") + return cb(); + } + var exists; + var stat = this.statCache[abs]; + if (stat !== void 0) { + if (stat === false) + return cb(null, stat); + else { + var type = stat.isDirectory() ? "DIR" : "FILE"; + if (needDir && type === "FILE") + return cb(); + else + return cb(null, type, stat); + } + } + var self2 = this; + var statcb = inflight("stat\0" + abs, lstatcb_); + if (statcb) + self2.fs.lstat(abs, statcb); + function lstatcb_(er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + return self2.fs.stat(abs, function(er2, stat2) { + if (er2) + self2._stat2(f, abs, null, lstat, cb); + else + self2._stat2(f, abs, er2, stat2, cb); + }); + } else { + self2._stat2(f, abs, er, lstat, cb); + } + } + }; + Glob.prototype._stat2 = function(f, abs, er, stat, cb) { + if (er && (er.code === "ENOENT" || er.code === "ENOTDIR")) { + this.statCache[abs] = false; + return cb(); + } + var needDir = f.slice(-1) === "/"; + this.statCache[abs] = stat; + if (abs.slice(-1) === "/" && stat && !stat.isDirectory()) + return cb(null, false, stat); + var c = true; + if (stat) + c = stat.isDirectory() ? "DIR" : "FILE"; + this.cache[abs] = this.cache[abs] || c; + if (needDir && c === "FILE") + return cb(); + return cb(null, c, stat); + }; + } +}); +var require_rimraf = __commonJS2({ + "node_modules/rimraf/rimraf.js"(exports2, module2) { + var assert = require("assert"); + var path = require("path"); + var fs = require("fs"); + var glob = void 0; + try { + glob = require_glob(); + } catch (_err) { + } + var defaultGlobOpts = { + nosort: true, + silent: true + }; + var timeout = 0; + var isWindows = process.platform === "win32"; + var defaults = (options) => { + const methods = ["unlink", "chmod", "stat", "lstat", "rmdir", "readdir"]; + methods.forEach((m) => { + options[m] = options[m] || fs[m]; + m = m + "Sync"; + options[m] = options[m] || fs[m]; + }); + options.maxBusyTries = options.maxBusyTries || 3; + options.emfileWait = options.emfileWait || 1e3; + if (options.glob === false) { + options.disableGlob = true; + } + if (options.disableGlob !== true && glob === void 0) { + throw Error("glob dependency not found, set `options.disableGlob = true` if intentional"); + } + options.disableGlob = options.disableGlob || false; + options.glob = options.glob || defaultGlobOpts; + }; + var rimraf = (p, options, cb) => { + if (typeof options === "function") { + cb = options; + options = {}; + } + assert(p, "rimraf: missing path"); + assert.equal(typeof p, "string", "rimraf: path should be a string"); + assert.equal(typeof cb, "function", "rimraf: callback function required"); + assert(options, "rimraf: invalid options argument provided"); + assert.equal(typeof options, "object", "rimraf: options should be object"); + defaults(options); + let busyTries = 0; + let errState = null; + let n = 0; + const next = (er) => { + errState = errState || er; + if (--n === 0) + cb(errState); + }; + const afterGlob = (er, results) => { + if (er) + return cb(er); + n = results.length; + if (n === 0) + return cb(); + results.forEach((p2) => { + const CB = (er2) => { + if (er2) { + if ((er2.code === "EBUSY" || er2.code === "ENOTEMPTY" || er2.code === "EPERM") && busyTries < options.maxBusyTries) { + busyTries++; + return setTimeout(() => rimraf_(p2, options, CB), busyTries * 100); + } + if (er2.code === "EMFILE" && timeout < options.emfileWait) { + return setTimeout(() => rimraf_(p2, options, CB), timeout++); + } + if (er2.code === "ENOENT") + er2 = null; + } + timeout = 0; + next(er2); + }; + rimraf_(p2, options, CB); + }); + }; + if (options.disableGlob || !glob.hasMagic(p)) + return afterGlob(null, [p]); + options.lstat(p, (er, stat) => { + if (!er) + return afterGlob(null, [p]); + glob(p, options.glob, afterGlob); + }); + }; + var rimraf_ = (p, options, cb) => { + assert(p); + assert(options); + assert(typeof cb === "function"); + options.lstat(p, (er, st) => { + if (er && er.code === "ENOENT") + return cb(null); + if (er && er.code === "EPERM" && isWindows) + fixWinEPERM(p, options, er, cb); + if (st && st.isDirectory()) + return rmdir(p, options, er, cb); + options.unlink(p, (er2) => { + if (er2) { + if (er2.code === "ENOENT") + return cb(null); + if (er2.code === "EPERM") + return isWindows ? fixWinEPERM(p, options, er2, cb) : rmdir(p, options, er2, cb); + if (er2.code === "EISDIR") + return rmdir(p, options, er2, cb); + } + return cb(er2); + }); + }); + }; + var fixWinEPERM = (p, options, er, cb) => { + assert(p); + assert(options); + assert(typeof cb === "function"); + options.chmod(p, 438, (er2) => { + if (er2) + cb(er2.code === "ENOENT" ? null : er); + else + options.stat(p, (er3, stats) => { + if (er3) + cb(er3.code === "ENOENT" ? null : er); + else if (stats.isDirectory()) + rmdir(p, options, er, cb); + else + options.unlink(p, cb); + }); + }); + }; + var fixWinEPERMSync = (p, options, er) => { + assert(p); + assert(options); + try { + options.chmodSync(p, 438); + } catch (er2) { + if (er2.code === "ENOENT") + return; + else + throw er; + } + let stats; + try { + stats = options.statSync(p); + } catch (er3) { + if (er3.code === "ENOENT") + return; + else + throw er; + } + if (stats.isDirectory()) + rmdirSync(p, options, er); + else + options.unlinkSync(p); + }; + var rmdir = (p, options, originalEr, cb) => { + assert(p); + assert(options); + assert(typeof cb === "function"); + options.rmdir(p, (er) => { + if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) + rmkids(p, options, cb); + else if (er && er.code === "ENOTDIR") + cb(originalEr); + else + cb(er); + }); + }; + var rmkids = (p, options, cb) => { + assert(p); + assert(options); + assert(typeof cb === "function"); + options.readdir(p, (er, files) => { + if (er) + return cb(er); + let n = files.length; + if (n === 0) + return options.rmdir(p, cb); + let errState; + files.forEach((f) => { + rimraf(path.join(p, f), options, (er2) => { + if (errState) + return; + if (er2) + return cb(errState = er2); + if (--n === 0) + options.rmdir(p, cb); + }); + }); + }); + }; + var rimrafSync = (p, options) => { + options = options || {}; + defaults(options); + assert(p, "rimraf: missing path"); + assert.equal(typeof p, "string", "rimraf: path should be a string"); + assert(options, "rimraf: missing options"); + assert.equal(typeof options, "object", "rimraf: options should be object"); + let results; + if (options.disableGlob || !glob.hasMagic(p)) { + results = [p]; + } else { + try { + options.lstatSync(p); + results = [p]; + } catch (er) { + results = glob.sync(p, options.glob); + } + } + if (!results.length) + return; + for (let i = 0; i < results.length; i++) { + const p2 = results[i]; + let st; + try { + st = options.lstatSync(p2); + } catch (er) { + if (er.code === "ENOENT") + return; + if (er.code === "EPERM" && isWindows) + fixWinEPERMSync(p2, options, er); + } + try { + if (st && st.isDirectory()) + rmdirSync(p2, options, null); + else + options.unlinkSync(p2); + } catch (er) { + if (er.code === "ENOENT") + return; + if (er.code === "EPERM") + return isWindows ? fixWinEPERMSync(p2, options, er) : rmdirSync(p2, options, er); + if (er.code !== "EISDIR") + throw er; + rmdirSync(p2, options, er); + } + } + }; + var rmdirSync = (p, options, originalEr) => { + assert(p); + assert(options); + try { + options.rmdirSync(p); + } catch (er) { + if (er.code === "ENOENT") + return; + if (er.code === "ENOTDIR") + throw originalEr; + if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") + rmkidsSync(p, options); + } + }; + var rmkidsSync = (p, options) => { + assert(p); + assert(options); + options.readdirSync(p).forEach((f) => rimrafSync(path.join(p, f), options)); + const retries = isWindows ? 100 : 1; + let i = 0; + do { + let threw = true; + try { + const ret = options.rmdirSync(p, options); + threw = false; + return ret; + } finally { + if (++i < retries && threw) + continue; + } + } while (true); + }; + module2.exports = rimraf; + rimraf.sync = rimrafSync; + } +}); +var require_del = __commonJS2({ + "node_modules/flat-cache/src/del.js"(exports2, module2) { + var rimraf = require_rimraf().sync; + var fs = require("fs"); + module2.exports = function del(file) { + if (fs.existsSync(file)) { + rimraf(file, { + glob: false + }); + return true; + } + return false; + }; + } +}); +var require_cache = __commonJS2({ + "node_modules/flat-cache/src/cache.js"(exports2, module2) { + var path = require("path"); + var fs = require("fs"); + var utils = require_utils6(); + var del = require_del(); + var writeJSON = utils.writeJSON; + var cache = { + load: function(docId, cacheDir) { + var me = this; + me._visited = {}; + me._persisted = {}; + me._pathToFile = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, "../.cache/", docId); + if (fs.existsSync(me._pathToFile)) { + me._persisted = utils.tryParse(me._pathToFile, {}); + } + }, + loadFile: function(pathToFile) { + var me = this; + var dir = path.dirname(pathToFile); + var fName = path.basename(pathToFile); + me.load(fName, dir); + }, + all: function() { + return this._persisted; + }, + keys: function() { + return Object.keys(this._persisted); + }, + setKey: function(key, value) { + this._visited[key] = true; + this._persisted[key] = value; + }, + removeKey: function(key) { + delete this._visited[key]; + delete this._persisted[key]; + }, + getKey: function(key) { + this._visited[key] = true; + return this._persisted[key]; + }, + _prune: function() { + var me = this; + var obj = {}; + var keys = Object.keys(me._visited); + if (keys.length === 0) { + return; + } + keys.forEach(function(key) { + obj[key] = me._persisted[key]; + }); + me._visited = {}; + me._persisted = obj; + }, + save: function(noPrune) { + var me = this; + !noPrune && me._prune(); + writeJSON(me._pathToFile, me._persisted); + }, + removeCacheFile: function() { + return del(this._pathToFile); + }, + destroy: function() { + var me = this; + me._visited = {}; + me._persisted = {}; + me.removeCacheFile(); + } + }; + module2.exports = { + load: function(docId, cacheDir) { + return this.create(docId, cacheDir); + }, + create: function(docId, cacheDir) { + var obj = Object.create(cache); + obj.load(docId, cacheDir); + return obj; + }, + createFromFile: function(filePath) { + var obj = Object.create(cache); + obj.loadFile(filePath); + return obj; + }, + clearCacheById: function(docId, cacheDir) { + var filePath = cacheDir ? path.resolve(cacheDir, docId) : path.resolve(__dirname, "../.cache/", docId); + return del(filePath); + }, + clearAll: function(cacheDir) { + var filePath = cacheDir ? path.resolve(cacheDir) : path.resolve(__dirname, "../.cache/"); + return del(filePath); + } + }; + } +}); +var require_cache2 = __commonJS2({ + "node_modules/file-entry-cache/cache.js"(exports2, module2) { + var path = require("path"); + var crypto = require("crypto"); + module2.exports = { + createFromFile: function(filePath, useChecksum) { + var fname = path.basename(filePath); + var dir = path.dirname(filePath); + return this.create(fname, dir, useChecksum); + }, + create: function(cacheId, _path, useChecksum) { + var fs = require("fs"); + var flatCache = require_cache(); + var cache = flatCache.load(cacheId, _path); + var normalizedEntries = {}; + var removeNotFoundFiles = function removeNotFoundFiles2() { + const cachedEntries = cache.keys(); + cachedEntries.forEach(function remover(fPath) { + try { + fs.statSync(fPath); + } catch (err) { + if (err.code === "ENOENT") { + cache.removeKey(fPath); + } + } + }); + }; + removeNotFoundFiles(); + return { + cache, + getHash: function(buffer) { + return crypto.createHash("md5").update(buffer).digest("hex"); + }, + hasFileChanged: function(file) { + return this.getFileDescriptor(file).changed; + }, + analyzeFiles: function(files) { + var me = this; + files = files || []; + var res = { + changedFiles: [], + notFoundFiles: [], + notChangedFiles: [] + }; + me.normalizeEntries(files).forEach(function(entry) { + if (entry.changed) { + res.changedFiles.push(entry.key); + return; + } + if (entry.notFound) { + res.notFoundFiles.push(entry.key); + return; + } + res.notChangedFiles.push(entry.key); + }); + return res; + }, + getFileDescriptor: function(file) { + var fstat; + try { + fstat = fs.statSync(file); + } catch (ex) { + this.removeEntry(file); + return { + key: file, + notFound: true, + err: ex + }; + } + if (useChecksum) { + return this._getFileDescriptorUsingChecksum(file); + } + return this._getFileDescriptorUsingMtimeAndSize(file, fstat); + }, + _getFileDescriptorUsingMtimeAndSize: function(file, fstat) { + var meta = cache.getKey(file); + var cacheExists = !!meta; + var cSize = fstat.size; + var cTime = fstat.mtime.getTime(); + var isDifferentDate; + var isDifferentSize; + if (!meta) { + meta = { + size: cSize, + mtime: cTime + }; + } else { + isDifferentDate = cTime !== meta.mtime; + isDifferentSize = cSize !== meta.size; + } + var nEntry = normalizedEntries[file] = { + key: file, + changed: !cacheExists || isDifferentDate || isDifferentSize, + meta + }; + return nEntry; + }, + _getFileDescriptorUsingChecksum: function(file) { + var meta = cache.getKey(file); + var cacheExists = !!meta; + var contentBuffer; + try { + contentBuffer = fs.readFileSync(file); + } catch (ex) { + contentBuffer = ""; + } + var isDifferent = true; + var hash = this.getHash(contentBuffer); + if (!meta) { + meta = { + hash + }; + } else { + isDifferent = hash !== meta.hash; + } + var nEntry = normalizedEntries[file] = { + key: file, + changed: !cacheExists || isDifferent, + meta + }; + return nEntry; + }, + getUpdatedFiles: function(files) { + var me = this; + files = files || []; + return me.normalizeEntries(files).filter(function(entry) { + return entry.changed; + }).map(function(entry) { + return entry.key; + }); + }, + normalizeEntries: function(files) { + files = files || []; + var me = this; + var nEntries = files.map(function(file) { + return me.getFileDescriptor(file); + }); + return nEntries; + }, + removeEntry: function(entryName) { + delete normalizedEntries[entryName]; + cache.removeKey(entryName); + }, + deleteCacheFile: function() { + cache.removeCacheFile(); + }, + destroy: function() { + normalizedEntries = {}; + cache.destroy(); + }, + _getMetaForFileUsingCheckSum: function(cacheEntry) { + var contentBuffer = fs.readFileSync(cacheEntry.key); + var hash = this.getHash(contentBuffer); + var meta = Object.assign(cacheEntry.meta, { + hash + }); + delete meta.size; + delete meta.mtime; + return meta; + }, + _getMetaForFileUsingMtimeAndSize: function(cacheEntry) { + var stat = fs.statSync(cacheEntry.key); + var meta = Object.assign(cacheEntry.meta, { + size: stat.size, + mtime: stat.mtime.getTime() + }); + delete meta.hash; + return meta; + }, + reconcile: function(noPrune) { + removeNotFoundFiles(); + noPrune = typeof noPrune === "undefined" ? true : noPrune; + var entries = normalizedEntries; + var keys = Object.keys(entries); + if (keys.length === 0) { + return; + } + var me = this; + keys.forEach(function(entryName) { + var cacheEntry = entries[entryName]; + try { + var meta = useChecksum ? me._getMetaForFileUsingCheckSum(cacheEntry) : me._getMetaForFileUsingMtimeAndSize(cacheEntry); + cache.setKey(entryName, meta); + } catch (err) { + if (err.code !== "ENOENT") { + throw err; + } + } + }); + cache.save(noPrune); + } + }; + } + }; + } +}); +var require_format_results_cache = __commonJS2({ + "src/cli/format-results-cache.js"(exports2, module2) { + "use strict"; + var fileEntryCache = require_cache2(); + var stringify2 = require_fast_json_stable_stringify(); + var { + version: prettierVersion + } = require("./index.js"); + var { + createHash + } = require_utils(); + var optionsHashCache = /* @__PURE__ */ new WeakMap(); + var nodeVersion = process && process.version; + function getHashOfOptions(options) { + if (optionsHashCache.has(options)) { + return optionsHashCache.get(options); + } + const hash = createHash(`${prettierVersion}_${nodeVersion}_${stringify2(options)}`); + optionsHashCache.set(options, hash); + return hash; + } + function getMetadataFromFileDescriptor(fileDescriptor) { + return fileDescriptor.meta; + } + var FormatResultsCache = class { + constructor(cacheFileLocation, cacheStrategy) { + const useChecksum = cacheStrategy === "content"; + this.cacheFileLocation = cacheFileLocation; + this.fileEntryCache = fileEntryCache.create(cacheFileLocation, void 0, useChecksum); + } + existsAvailableFormatResultsCache(filePath, options) { + const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath); + const hashOfOptions = getHashOfOptions(options); + const meta = getMetadataFromFileDescriptor(fileDescriptor); + const changed = fileDescriptor.changed || meta.hashOfOptions !== hashOfOptions; + if (fileDescriptor.notFound) { + return false; + } + if (changed) { + return false; + } + return true; + } + setFormatResultsCache(filePath, options) { + const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath); + const meta = getMetadataFromFileDescriptor(fileDescriptor); + if (fileDescriptor && !fileDescriptor.notFound) { + meta.hashOfOptions = getHashOfOptions(options); + } + } + reconcile() { + this.fileEntryCache.reconcile(); + } + }; + module2.exports = FormatResultsCache; + } +}); +var require_base = __commonJS2({ + "node_modules/diff/lib/diff/base.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = Diff; + function Diff() { + } + Diff.prototype = { + diff: function diff(oldString, newString) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self2 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ + newPos: -1, + components: [] + }]; + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = void 0; + var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self2.pushComponent(basePath.components, void 0, true); + } else { + basePath = addPath; + basePath.newPos++; + self2.pushComponent(basePath.components, true, void 0); + } + _oldPos = self2.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self2, basePath.components, newString, oldString, self2.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; + if (last && last.added === added && last.removed === removed) { + components[components.length - 1] = { + count: last.count + 1, + added, + removed + }; + } else { + components.push({ + count: 1, + added, + removed + }); + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } + basePath.newPos = newPos; + return oldPos; + }, + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array2) { + var ret = []; + for (var i = 0; i < array2.length; i++) { + if (array2[i]) { + ret.push(array2[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return value.split(""); + }, + join: function join(chars) { + return chars.join(""); + } + }; + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff.equals("", lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + return components; + } + function clonePath(path) { + return { + newPos: path.newPos, + components: path.components.slice(0) + }; + } + } +}); +var require_params = __commonJS2({ + "node_modules/diff/lib/util/params.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.generateOptions = generateOptions; + function generateOptions(options, defaults) { + if (typeof options === "function") { + defaults.callback = options; + } else if (options) { + for (var name in options) { + if (options.hasOwnProperty(name)) { + defaults[name] = options[name]; + } + } + } + return defaults; + } + } +}); +var require_line = __commonJS2({ + "node_modules/diff/lib/diff/line.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.diffLines = diffLines; + exports2.diffTrimmedLines = diffTrimmedLines; + exports2.lineDiff = void 0; + var _base = _interopRequireDefault(require_base()); + var _params = require_params(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + var lineDiff = new _base["default"](); + exports2.lineDiff = lineDiff; + lineDiff.tokenize = function(value) { + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + return retLines; + }; + function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); + } + function diffTrimmedLines(oldStr, newStr, callback) { + var options = (0, _params.generateOptions)(callback, { + ignoreWhitespace: true + }); + return lineDiff.diff(oldStr, newStr, options); + } + } +}); +var require_create = __commonJS2({ + "node_modules/diff/lib/patch/create.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.structuredPatch = structuredPatch; + exports2.formatPatch = formatPatch; + exports2.createTwoFilesPatch = createTwoFilesPatch; + exports2.createPatch = createPatch; + var _line = require_line(); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) + return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) + return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === "undefined") { + options.context = 4; + } + var diff = (0, _line.diffLines)(oldStr, newStr, options); + diff.push({ + value: "", + lines: [] + }); + function contextLines(lines) { + return lines.map(function(entry) { + return " " + entry; + }); + } + var hunks = []; + var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1; + var _loop = function _loop2(i2) { + var current = diff[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n"); + current.lines = lines; + if (current.added || current.removed) { + var _curRange; + if (!oldRangeStart) { + var prev = diff[i2 - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function(entry) { + return (current.added ? "+" : "-") + entry; + }))); + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + if (oldRangeStart) { + if (lines.length <= options.context * 2 && i2 < diff.length - 2) { + var _curRange2; + (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); + } else { + var _curRange3; + var contextSize = Math.min(lines.length, options.context); + (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i2 >= diff.length - 2 && lines.length <= options.context) { + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; + if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { + curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file"); + } + if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) { + curRange.push("\\ No newline at end of file"); + } + } + hunks.push(hunk); + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + for (var i = 0; i < diff.length; i++) { + _loop(i); + } + return { + oldFileName, + newFileName, + oldHeader, + newHeader, + hunks + }; + } + function formatPatch(diff) { + var ret = []; + if (diff.oldFileName == diff.newFileName) { + ret.push("Index: " + diff.oldFileName); + } + ret.push("==================================================================="); + ret.push("--- " + diff.oldFileName + (typeof diff.oldHeader === "undefined" ? "" : " " + diff.oldHeader)); + ret.push("+++ " + diff.newFileName + (typeof diff.newHeader === "undefined" ? "" : " " + diff.newHeader)); + for (var i = 0; i < diff.hunks.length; i++) { + var hunk = diff.hunks[i]; + if (hunk.oldLines === 0) { + hunk.oldStart -= 1; + } + if (hunk.newLines === 0) { + hunk.newStart -= 1; + } + ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@"); + ret.push.apply(ret, hunk.lines); + } + return ret.join("\n") + "\n"; + } + function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); + } + function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); + } + } +}); +var require_format = __commonJS2({ + "src/cli/format.js"(exports2, module2) { + "use strict"; + var { + promises: fs + } = require("fs"); + var path = require("path"); + var { + default: chalk2 + } = (init_source(), __toCommonJS(source_exports)); + var prettier2 = require("./index.js"); + var { + getStdin + } = require("./third-party.js"); + var { + createIgnorer, + errors + } = require_prettier_internal(); + var { + expandPatterns, + fixWindowsSlashes + } = require_expand_patterns(); + var getOptionsForFile = require_get_options_for_file(); + var isTTY = require_is_tty(); + var findCacheFile = require_find_cache_file(); + var FormatResultsCache = require_format_results_cache(); + var { + statSafe + } = require_utils(); + function diff(a, b) { + return require_create().createTwoFilesPatch("", "", a, b, "", "", { + context: 2 + }); + } + function handleError(context, filename, error, printedFilename) { + if (error instanceof errors.UndefinedParserError) { + if ((context.argv.write || context.argv.ignoreUnknown) && printedFilename) { + printedFilename.clear(); + } + if (context.argv.ignoreUnknown) { + return; + } + if (!context.argv.check && !context.argv.listDifferent) { + process.exitCode = 2; + } + context.logger.error(error.message); + return; + } + if (context.argv.write) { + process.stdout.write("\n"); + } + const isParseError = Boolean(error && error.loc); + const isValidationError = /^Invalid \S+ value\./.test(error && error.message); + if (isParseError) { + context.logger.error(`${filename}: ${String(error)}`); + } else if (isValidationError || error instanceof errors.ConfigError) { + context.logger.error(error.message); + process.exit(1); + } else if (error instanceof errors.DebugError) { + context.logger.error(`${filename}: ${error.message}`); + } else { + context.logger.error(filename + ": " + (error.stack || error)); + } + process.exitCode = 2; + } + function writeOutput(context, result, options) { + process.stdout.write(context.argv.debugCheck ? result.filepath : result.formatted); + if (options && options.cursorOffset >= 0) { + process.stderr.write(result.cursorOffset + "\n"); + } + } + function listDifferent(context, input, options, filename) { + if (!context.argv.check && !context.argv.listDifferent) { + return; + } + try { + if (!options.filepath && !options.parser) { + throw new errors.UndefinedParserError("No parser and no file path given, couldn't infer a parser."); + } + if (!prettier2.check(input, options)) { + if (!context.argv.write) { + context.logger.log(filename); + process.exitCode = 1; + } + } + } catch (error) { + context.logger.error(error.message); + } + return true; + } + function format(context, input, opt) { + if (!opt.parser && !opt.filepath) { + throw new errors.UndefinedParserError("No parser and no file path given, couldn't infer a parser."); + } + if (context.argv.debugPrintDoc) { + const doc = prettier2.__debug.printToDoc(input, opt); + return { + formatted: prettier2.__debug.formatDoc(doc) + "\n" + }; + } + if (context.argv.debugPrintComments) { + return { + formatted: prettier2.format(JSON.stringify(prettier2.formatWithCursor(input, opt).comments || []), { + parser: "json" + }) + }; + } + if (context.argv.debugPrintAst) { + const { + ast + } = prettier2.__debug.parse(input, opt); + return { + formatted: JSON.stringify(ast) + }; + } + if (context.argv.debugCheck) { + const pp = prettier2.format(input, opt); + const pppp = prettier2.format(pp, opt); + if (pp !== pppp) { + throw new errors.DebugError("prettier(input) !== prettier(prettier(input))\n" + diff(pp, pppp)); + } else { + const stringify2 = (obj) => JSON.stringify(obj, null, 2); + const ast = stringify2(prettier2.__debug.parse(input, opt, true).ast); + const past = stringify2(prettier2.__debug.parse(pp, opt, true).ast); + if (ast !== past) { + const MAX_AST_SIZE = 2097152; + const astDiff = ast.length > MAX_AST_SIZE || past.length > MAX_AST_SIZE ? "AST diff too large to render" : diff(ast, past); + throw new errors.DebugError("ast(input) !== ast(prettier(input))\n" + astDiff + "\n" + diff(input, pp)); + } + } + return { + formatted: pp, + filepath: opt.filepath || "(stdin)\n" + }; + } + const { + performanceTestFlag + } = context; + if (performanceTestFlag !== null && performanceTestFlag !== void 0 && performanceTestFlag.debugBenchmark) { + let benchmark; + try { + benchmark = require("benchmark"); + } catch { + context.logger.debug("'--debug-benchmark' requires the 'benchmark' package to be installed."); + process.exit(2); + } + context.logger.debug("'--debug-benchmark' option found, measuring formatWithCursor with 'benchmark' module."); + const suite = new benchmark.Suite(); + suite.add("format", () => { + prettier2.formatWithCursor(input, opt); + }).on("cycle", (event) => { + const results = { + benchmark: String(event.target), + hz: event.target.hz, + ms: event.target.times.cycle * 1e3 + }; + context.logger.debug("'--debug-benchmark' measurements for formatWithCursor: " + JSON.stringify(results, null, 2)); + }).run({ + async: false + }); + } else if (performanceTestFlag !== null && performanceTestFlag !== void 0 && performanceTestFlag.debugRepeat) { + const repeat = context.argv.debugRepeat; + context.logger.debug("'--debug-repeat' option found, running formatWithCursor " + repeat + " times."); + let totalMs = 0; + for (let i = 0; i < repeat; ++i) { + const startMs = Date.now(); + prettier2.formatWithCursor(input, opt); + totalMs += Date.now() - startMs; + } + const averageMs = totalMs / repeat; + const results = { + repeat, + hz: 1e3 / averageMs, + ms: averageMs + }; + context.logger.debug("'--debug-repeat' measurements for formatWithCursor: " + JSON.stringify(results, null, 2)); + } + return prettier2.formatWithCursor(input, opt); + } + async function createIgnorerFromContextOrDie(context) { + try { + return await createIgnorer(context.argv.ignorePath, context.argv.withNodeModules); + } catch (e) { + context.logger.error(e.message); + process.exit(2); + } + } + async function formatStdin2(context) { + const filepath = context.argv.filepath ? path.resolve(process.cwd(), context.argv.filepath) : process.cwd(); + const ignorer = await createIgnorerFromContextOrDie(context); + const relativeFilepath = context.argv.ignorePath ? path.relative(path.dirname(context.argv.ignorePath), filepath) : path.relative(process.cwd(), filepath); + try { + const input = await getStdin(); + if (relativeFilepath && ignorer.ignores(fixWindowsSlashes(relativeFilepath))) { + writeOutput(context, { + formatted: input + }); + return; + } + const options = await getOptionsForFile(context, filepath); + if (listDifferent(context, input, options, "(stdin)")) { + return; + } + const formatted = format(context, input, options); + const { + performanceTestFlag + } = context; + if (performanceTestFlag) { + context.logger.log(`'${performanceTestFlag.name}' option found, skipped print code to screen.`); + return; + } + writeOutput(context, formatted, options); + } catch (error) { + handleError(context, relativeFilepath || "stdin", error); + } + } + async function formatFiles2(context) { + var _formatResultsCache3; + const ignorer = await createIgnorerFromContextOrDie(context); + let numberOfUnformattedFilesFound = 0; + const { + performanceTestFlag + } = context; + if (context.argv.check && !performanceTestFlag) { + context.logger.log("Checking formatting..."); + } + let formatResultsCache; + const cacheFilePath = findCacheFile(); + if (context.argv.cache) { + formatResultsCache = new FormatResultsCache(cacheFilePath, context.argv.cacheStrategy || "content"); + } else { + if (context.argv.cacheStrategy) { + context.logger.error("`--cache-strategy` cannot be used without `--cache`."); + process.exit(2); + } + const stat = await statSafe(cacheFilePath); + if (stat) { + await fs.unlink(cacheFilePath); + } + } + for await (const pathOrError of expandPatterns(context)) { + var _formatResultsCache, _formatResultsCache2; + if (typeof pathOrError === "object") { + context.logger.error(pathOrError.error); + process.exitCode = 2; + continue; + } + const filename = pathOrError; + const ignoreFilename = context.argv.ignorePath ? path.relative(path.dirname(context.argv.ignorePath), filename) : filename; + const fileIgnored = ignorer.ignores(fixWindowsSlashes(ignoreFilename)); + if (fileIgnored && (context.argv.debugCheck || context.argv.write || context.argv.check || context.argv.listDifferent)) { + continue; + } + const options = Object.assign(Object.assign({}, await getOptionsForFile(context, filename)), {}, { + filepath: filename + }); + let printedFilename; + if (isTTY()) { + printedFilename = context.logger.log(filename, { + newline: false, + clearable: true + }); + } + let input; + try { + input = await fs.readFile(filename, "utf8"); + } catch (error) { + context.logger.log(""); + context.logger.error(`Unable to read file: ${filename} +${error.message}`); + process.exitCode = 2; + continue; + } + if (fileIgnored) { + writeOutput(context, { + formatted: input + }, options); + continue; + } + const start = Date.now(); + const isCacheExists = (_formatResultsCache = formatResultsCache) === null || _formatResultsCache === void 0 ? void 0 : _formatResultsCache.existsAvailableFormatResultsCache(filename, options); + let result; + let output; + try { + if (isCacheExists) { + result = { + formatted: input + }; + } else { + result = format(context, input, options); + } + output = result.formatted; + } catch (error) { + handleError(context, filename, error, printedFilename); + continue; + } + (_formatResultsCache2 = formatResultsCache) === null || _formatResultsCache2 === void 0 ? void 0 : _formatResultsCache2.setFormatResultsCache(filename, options); + const isDifferent = output !== input; + if (printedFilename) { + printedFilename.clear(); + } + if (performanceTestFlag) { + context.logger.log(`'${performanceTestFlag.name}' option found, skipped print code or write files.`); + return; + } + if (context.argv.write) { + if (isDifferent) { + if (!context.argv.check && !context.argv.listDifferent) { + context.logger.log(`${filename} ${Date.now() - start}ms`); + } + try { + await fs.writeFile(filename, output, "utf8"); + } catch (error) { + context.logger.error(`Unable to write file: ${filename} +${error.message}`); + process.exitCode = 2; + } + } else if (!context.argv.check && !context.argv.listDifferent) { + const message = `${chalk2.grey(filename)} ${Date.now() - start}ms`; + if (isCacheExists) { + context.logger.log(`${message} (cached)`); + } else { + context.logger.log(message); + } + } + } else if (context.argv.debugCheck) { + if (result.filepath) { + context.logger.log(result.filepath); + } else { + process.exitCode = 2; + } + } else if (!context.argv.check && !context.argv.listDifferent) { + writeOutput(context, result, options); + } + if (isDifferent) { + if (context.argv.check) { + context.logger.warn(filename); + } else if (context.argv.listDifferent) { + context.logger.log(filename); + } + numberOfUnformattedFilesFound += 1; + } + } + (_formatResultsCache3 = formatResultsCache) === null || _formatResultsCache3 === void 0 ? void 0 : _formatResultsCache3.reconcile(); + if (context.argv.check) { + if (numberOfUnformattedFilesFound === 0) { + context.logger.log("All matched files use Prettier code style!"); + } else if (numberOfUnformattedFilesFound === 1) { + context.logger.warn(context.argv.write ? "Code style issues fixed in the above file." : "Code style issues found in the above file. Forgot to run Prettier?"); + } else { + context.logger.warn(context.argv.write ? "Code style issues found in " + numberOfUnformattedFilesFound + " files." : "Code style issues found in " + numberOfUnformattedFilesFound + " files. Forgot to run Prettier?"); + } + } + if ((context.argv.check || context.argv.listDifferent) && numberOfUnformattedFilesFound > 0 && !process.exitCode && !context.argv.write) { + process.exitCode = 1; + } + } + module2.exports = { + formatStdin: formatStdin2, + formatFiles: formatFiles2 + }; + } +}); +var require_file_info = __commonJS2({ + "src/cli/file-info.js"(exports2, module2) { + "use strict"; + var stringify2 = require_fast_json_stable_stringify(); + var prettier2 = require("./index.js"); + var { + printToScreen: printToScreen2 + } = require_utils(); + async function logFileInfoOrDie2(context) { + const { + fileInfo: file, + ignorePath, + withNodeModules, + plugins, + pluginSearchDirs, + config + } = context.argv; + const fileInfo = await prettier2.getFileInfo(file, { + ignorePath, + withNodeModules, + plugins, + pluginSearchDirs, + resolveConfig: config !== false + }); + printToScreen2(prettier2.format(stringify2(fileInfo), { + parser: "json" + })); + } + module2.exports = logFileInfoOrDie2; + } +}); +var require_find_config_path = __commonJS2({ + "src/cli/find-config-path.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var prettier2 = require("./index.js"); + var { + printToScreen: printToScreen2 + } = require_utils(); + async function logResolvedConfigPathOrDie2(context) { + const file = context.argv.findConfigPath; + const configFile = await prettier2.resolveConfigFile(file); + if (configFile) { + printToScreen2(path.relative(process.cwd(), configFile)); + } else { + throw new Error(`Can not find configure file for "${file}"`); + } + } + module2.exports = logResolvedConfigPathOrDie2; + } +}); +var stringify = require_fast_json_stable_stringify(); +var prettier = require("./index.js"); +var createLogger = require_logger(); +var Context = require_context(); +var { + parseArgvWithoutPlugins +} = require_parse_cli_arguments(); +var { + createDetailedUsage, + createUsage +} = require_usage(); +var { + formatStdin, + formatFiles +} = require_format(); +var logFileInfoOrDie = require_file_info(); +var logResolvedConfigPathOrDie = require_find_config_path(); +var { + utils: { + isNonEmptyArray + } +} = require_prettier_internal(); +var { + printToScreen +} = require_utils(); +async function run(rawArguments) { + let logger = createLogger(); + try { + const logLevel = parseArgvWithoutPlugins(rawArguments, logger, "loglevel").loglevel; + if (logLevel !== logger.logLevel) { + logger = createLogger(logLevel); + } + const context = new Context({ + rawArguments, + logger + }); + if (logger.logLevel !== "debug" && context.performanceTestFlag) { + context.logger = createLogger("debug"); + } + await main(context); + } catch (error) { + logger.error(error.message); + process.exitCode = 1; + } +} +async function main(context) { + context.logger.debug(`normalized argv: ${JSON.stringify(context.argv)}`); + if (context.argv.pluginSearch === false) { + const rawPluginSearchDirs = context.argv.__raw["plugin-search-dir"]; + if (typeof rawPluginSearchDirs === "string" || isNonEmptyArray(rawPluginSearchDirs)) { + throw new Error("Cannot use --no-plugin-search and --plugin-search-dir together."); + } + } + if (context.argv.check && context.argv.listDifferent) { + throw new Error("Cannot use --check and --list-different together."); + } + if (context.argv.write && context.argv.debugCheck) { + throw new Error("Cannot use --write and --debug-check together."); + } + if (context.argv.findConfigPath && context.filePatterns.length > 0) { + throw new Error("Cannot use --find-config-path with multiple files"); + } + if (context.argv.fileInfo && context.filePatterns.length > 0) { + throw new Error("Cannot use --file-info with multiple files"); + } + if (context.argv.version) { + printToScreen(prettier.version); + return; + } + if (context.argv.help !== void 0) { + printToScreen(typeof context.argv.help === "string" && context.argv.help !== "" ? createDetailedUsage(context, context.argv.help) : createUsage(context)); + return; + } + if (context.argv.supportInfo) { + printToScreen(prettier.format(stringify(prettier.getSupportInfo()), { + parser: "json" + })); + return; + } + const hasFilePatterns = context.filePatterns.length > 0; + const useStdin = !hasFilePatterns && (!process.stdin.isTTY || context.argv.filePath); + if (context.argv.findConfigPath) { + await logResolvedConfigPathOrDie(context); + } else if (context.argv.fileInfo) { + await logFileInfoOrDie(context); + } else if (useStdin) { + if (context.argv.cache) { + context.logger.error("`--cache` cannot be used with stdin."); + process.exit(2); + } + await formatStdin(context); + } else if (hasFilePatterns) { + await formatFiles(context); + } else { + process.exitCode = 1; + printToScreen(createUsage(context)); + } +} +module.exports = { + run +}; diff --git a/node_modules/prettier/doc.js b/node_modules/prettier/doc.js new file mode 100644 index 0000000..c07e788 --- /dev/null +++ b/node_modules/prettier/doc.js @@ -0,0 +1,1392 @@ +(function (factory) { + if (typeof exports === "object" && typeof module === "object") { + module.exports = factory(); + } else if (typeof define === "function" && define.amd) { + define(factory); + } else { + var root = + typeof globalThis !== "undefined" + ? globalThis + : typeof global !== "undefined" + ? global + : typeof self !== "undefined" + ? self + : this || {}; + root.doc = factory(); + } +})(function() { + "use strict"; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + + // dist/_doc.js.umd.js + var require_doc_js_umd = __commonJS({ + "dist/_doc.js.umd.js"(exports, module) { + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames2 = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; + }; + var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { + exports: {} + }).exports, mod), mod.exports; + }; + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { + get: all[name], + enumerable: true + }); + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true + }) : target, mod)); + var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { + value: true + }), mod); + var init_define_process = __esm({ + ""() { + } + }); + var require_doc_builders = __commonJS2({ + "src/document/doc-builders.js"(exports2, module2) { + "use strict"; + init_define_process(); + function concat(parts) { + if (false) { + for (const part of parts) { + assertDoc(part); + } + } + return { + type: "concat", + parts + }; + } + function indent(contents) { + if (false) { + assertDoc(contents); + } + return { + type: "indent", + contents + }; + } + function align(widthOrString, contents) { + if (false) { + assertDoc(contents); + } + return { + type: "align", + contents, + n: widthOrString + }; + } + function group(contents) { + let opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + if (false) { + assertDoc(contents); + } + return { + type: "group", + id: opts.id, + contents, + break: Boolean(opts.shouldBreak), + expandedStates: opts.expandedStates + }; + } + function dedentToRoot(contents) { + return align(Number.NEGATIVE_INFINITY, contents); + } + function markAsRoot(contents) { + return align({ + type: "root" + }, contents); + } + function dedent(contents) { + return align(-1, contents); + } + function conditionalGroup(states, opts) { + return group(states[0], Object.assign(Object.assign({}, opts), {}, { + expandedStates: states + })); + } + function fill(parts) { + if (false) { + for (const part of parts) { + assertDoc(part); + } + } + return { + type: "fill", + parts + }; + } + function ifBreak(breakContents, flatContents) { + let opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + if (false) { + if (breakContents) { + assertDoc(breakContents); + } + if (flatContents) { + assertDoc(flatContents); + } + } + return { + type: "if-break", + breakContents, + flatContents, + groupId: opts.groupId + }; + } + function indentIfBreak(contents, opts) { + return { + type: "indent-if-break", + contents, + groupId: opts.groupId, + negate: opts.negate + }; + } + function lineSuffix(contents) { + if (false) { + assertDoc(contents); + } + return { + type: "line-suffix", + contents + }; + } + var lineSuffixBoundary = { + type: "line-suffix-boundary" + }; + var breakParent = { + type: "break-parent" + }; + var trim = { + type: "trim" + }; + var hardlineWithoutBreakParent = { + type: "line", + hard: true + }; + var literallineWithoutBreakParent = { + type: "line", + hard: true, + literal: true + }; + var line = { + type: "line" + }; + var softline = { + type: "line", + soft: true + }; + var hardline = concat([hardlineWithoutBreakParent, breakParent]); + var literalline = concat([literallineWithoutBreakParent, breakParent]); + var cursor = { + type: "cursor", + placeholder: Symbol("cursor") + }; + function join(sep, arr) { + const res = []; + for (let i = 0; i < arr.length; i++) { + if (i !== 0) { + res.push(sep); + } + res.push(arr[i]); + } + return concat(res); + } + function addAlignmentToDoc(doc, size, tabWidth) { + let aligned = doc; + if (size > 0) { + for (let i = 0; i < Math.floor(size / tabWidth); ++i) { + aligned = indent(aligned); + } + aligned = align(size % tabWidth, aligned); + aligned = align(Number.NEGATIVE_INFINITY, aligned); + } + return aligned; + } + function label(label2, contents) { + return { + type: "label", + label: label2, + contents + }; + } + module2.exports = { + concat, + join, + line, + softline, + hardline, + literalline, + group, + conditionalGroup, + fill, + lineSuffix, + lineSuffixBoundary, + cursor, + breakParent, + ifBreak, + trim, + indent, + indentIfBreak, + align, + addAlignmentToDoc, + markAsRoot, + dedentToRoot, + dedent, + hardlineWithoutBreakParent, + literallineWithoutBreakParent, + label + }; + } + }); + var require_end_of_line = __commonJS2({ + "src/common/end-of-line.js"(exports2, module2) { + "use strict"; + init_define_process(); + function guessEndOfLine(text) { + const index = text.indexOf("\r"); + if (index >= 0) { + return text.charAt(index + 1) === "\n" ? "crlf" : "cr"; + } + return "lf"; + } + function convertEndOfLineToChars(value) { + switch (value) { + case "cr": + return "\r"; + case "crlf": + return "\r\n"; + default: + return "\n"; + } + } + function countEndOfLineChars(text, eol) { + let regex; + switch (eol) { + case "\n": + regex = /\n/g; + break; + case "\r": + regex = /\r/g; + break; + case "\r\n": + regex = /\r\n/g; + break; + default: + throw new Error('Unexpected "eol" '.concat(JSON.stringify(eol), ".")); + } + const endOfLines = text.match(regex); + return endOfLines ? endOfLines.length : 0; + } + function normalizeEndOfLine(text) { + return text.replace(/\r\n?/g, "\n"); + } + module2.exports = { + guessEndOfLine, + convertEndOfLineToChars, + countEndOfLineChars, + normalizeEndOfLine + }; + } + }); + var require_get_last = __commonJS2({ + "src/utils/get-last.js"(exports2, module2) { + "use strict"; + init_define_process(); + var getLast = (arr) => arr[arr.length - 1]; + module2.exports = getLast; + } + }); + function ansiRegex() { + let { + onlyFirst = false + } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + const pattern = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"); + return new RegExp(pattern, onlyFirst ? void 0 : "g"); + } + var init_ansi_regex = __esm({ + "node_modules/strip-ansi/node_modules/ansi-regex/index.js"() { + init_define_process(); + } + }); + function stripAnsi(string) { + if (typeof string !== "string") { + throw new TypeError("Expected a `string`, got `".concat(typeof string, "`")); + } + return string.replace(ansiRegex(), ""); + } + var init_strip_ansi = __esm({ + "node_modules/strip-ansi/index.js"() { + init_define_process(); + init_ansi_regex(); + } + }); + function isFullwidthCodePoint(codePoint) { + if (!Number.isInteger(codePoint)) { + return false; + } + return codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141); + } + var init_is_fullwidth_code_point = __esm({ + "node_modules/is-fullwidth-code-point/index.js"() { + init_define_process(); + } + }); + var require_emoji_regex = __commonJS2({ + "node_modules/emoji-regex/index.js"(exports2, module2) { + "use strict"; + init_define_process(); + module2.exports = function() { + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; + }; + } + }); + var string_width_exports = {}; + __export(string_width_exports, { + default: () => stringWidth + }); + function stringWidth(string) { + if (typeof string !== "string" || string.length === 0) { + return 0; + } + string = stripAnsi(string); + if (string.length === 0) { + return 0; + } + string = string.replace((0, import_emoji_regex.default)(), " "); + let width = 0; + for (let index = 0; index < string.length; index++) { + const codePoint = string.codePointAt(index); + if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { + continue; + } + if (codePoint >= 768 && codePoint <= 879) { + continue; + } + if (codePoint > 65535) { + index++; + } + width += isFullwidthCodePoint(codePoint) ? 2 : 1; + } + return width; + } + var import_emoji_regex; + var init_string_width = __esm({ + "node_modules/string-width/index.js"() { + init_define_process(); + init_strip_ansi(); + init_is_fullwidth_code_point(); + import_emoji_regex = __toESM(require_emoji_regex()); + } + }); + var require_get_string_width = __commonJS2({ + "src/utils/get-string-width.js"(exports2, module2) { + "use strict"; + init_define_process(); + var stringWidth2 = (init_string_width(), __toCommonJS(string_width_exports)).default; + var notAsciiRegex = /[^\x20-\x7F]/; + function getStringWidth(text) { + if (!text) { + return 0; + } + if (!notAsciiRegex.test(text)) { + return text.length; + } + return stringWidth2(text); + } + module2.exports = getStringWidth; + } + }); + var require_doc_utils = __commonJS2({ + "src/document/doc-utils.js"(exports2, module2) { + "use strict"; + init_define_process(); + var getLast = require_get_last(); + var { + literalline, + join + } = require_doc_builders(); + var isConcat = (doc) => Array.isArray(doc) || doc && doc.type === "concat"; + var getDocParts = (doc) => { + if (Array.isArray(doc)) { + return doc; + } + if (doc.type !== "concat" && doc.type !== "fill") { + throw new Error("Expect doc type to be `concat` or `fill`."); + } + return doc.parts; + }; + var traverseDocOnExitStackMarker = {}; + function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { + const docsStack = [doc]; + while (docsStack.length > 0) { + const doc2 = docsStack.pop(); + if (doc2 === traverseDocOnExitStackMarker) { + onExit(docsStack.pop()); + continue; + } + if (onExit) { + docsStack.push(doc2, traverseDocOnExitStackMarker); + } + if (!onEnter || onEnter(doc2) !== false) { + if (isConcat(doc2) || doc2.type === "fill") { + const parts = getDocParts(doc2); + for (let ic = parts.length, i = ic - 1; i >= 0; --i) { + docsStack.push(parts[i]); + } + } else if (doc2.type === "if-break") { + if (doc2.flatContents) { + docsStack.push(doc2.flatContents); + } + if (doc2.breakContents) { + docsStack.push(doc2.breakContents); + } + } else if (doc2.type === "group" && doc2.expandedStates) { + if (shouldTraverseConditionalGroups) { + for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) { + docsStack.push(doc2.expandedStates[i]); + } + } else { + docsStack.push(doc2.contents); + } + } else if (doc2.contents) { + docsStack.push(doc2.contents); + } + } + } + } + function mapDoc(doc, cb) { + const mapped = /* @__PURE__ */ new Map(); + return rec(doc); + function rec(doc2) { + if (mapped.has(doc2)) { + return mapped.get(doc2); + } + const result = process2(doc2); + mapped.set(doc2, result); + return result; + } + function process2(doc2) { + if (Array.isArray(doc2)) { + return cb(doc2.map(rec)); + } + if (doc2.type === "concat" || doc2.type === "fill") { + const parts = doc2.parts.map(rec); + return cb(Object.assign(Object.assign({}, doc2), {}, { + parts + })); + } + if (doc2.type === "if-break") { + const breakContents = doc2.breakContents && rec(doc2.breakContents); + const flatContents = doc2.flatContents && rec(doc2.flatContents); + return cb(Object.assign(Object.assign({}, doc2), {}, { + breakContents, + flatContents + })); + } + if (doc2.type === "group" && doc2.expandedStates) { + const expandedStates = doc2.expandedStates.map(rec); + const contents = expandedStates[0]; + return cb(Object.assign(Object.assign({}, doc2), {}, { + contents, + expandedStates + })); + } + if (doc2.contents) { + const contents = rec(doc2.contents); + return cb(Object.assign(Object.assign({}, doc2), {}, { + contents + })); + } + return cb(doc2); + } + } + function findInDoc(doc, fn, defaultValue) { + let result = defaultValue; + let hasStopped = false; + function findInDocOnEnterFn(doc2) { + const maybeResult = fn(doc2); + if (maybeResult !== void 0) { + hasStopped = true; + result = maybeResult; + } + if (hasStopped) { + return false; + } + } + traverseDoc(doc, findInDocOnEnterFn); + return result; + } + function willBreakFn(doc) { + if (doc.type === "group" && doc.break) { + return true; + } + if (doc.type === "line" && doc.hard) { + return true; + } + if (doc.type === "break-parent") { + return true; + } + } + function willBreak(doc) { + return findInDoc(doc, willBreakFn, false); + } + function breakParentGroup(groupStack) { + if (groupStack.length > 0) { + const parentGroup = getLast(groupStack); + if (!parentGroup.expandedStates && !parentGroup.break) { + parentGroup.break = "propagated"; + } + } + return null; + } + function propagateBreaks(doc) { + const alreadyVisitedSet = /* @__PURE__ */ new Set(); + const groupStack = []; + function propagateBreaksOnEnterFn(doc2) { + if (doc2.type === "break-parent") { + breakParentGroup(groupStack); + } + if (doc2.type === "group") { + groupStack.push(doc2); + if (alreadyVisitedSet.has(doc2)) { + return false; + } + alreadyVisitedSet.add(doc2); + } + } + function propagateBreaksOnExitFn(doc2) { + if (doc2.type === "group") { + const group = groupStack.pop(); + if (group.break) { + breakParentGroup(groupStack); + } + } + } + traverseDoc(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, true); + } + function removeLinesFn(doc) { + if (doc.type === "line" && !doc.hard) { + return doc.soft ? "" : " "; + } + if (doc.type === "if-break") { + return doc.flatContents || ""; + } + return doc; + } + function removeLines(doc) { + return mapDoc(doc, removeLinesFn); + } + var isHardline = (doc, nextDoc) => doc && doc.type === "line" && doc.hard && nextDoc && nextDoc.type === "break-parent"; + function stripDocTrailingHardlineFromDoc(doc) { + if (!doc) { + return doc; + } + if (isConcat(doc) || doc.type === "fill") { + const parts = getDocParts(doc); + while (parts.length > 1 && isHardline(...parts.slice(-2))) { + parts.length -= 2; + } + if (parts.length > 0) { + const lastPart = stripDocTrailingHardlineFromDoc(getLast(parts)); + parts[parts.length - 1] = lastPart; + } + return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, { + parts + }); + } + switch (doc.type) { + case "align": + case "indent": + case "indent-if-break": + case "group": + case "line-suffix": + case "label": { + const contents = stripDocTrailingHardlineFromDoc(doc.contents); + return Object.assign(Object.assign({}, doc), {}, { + contents + }); + } + case "if-break": { + const breakContents = stripDocTrailingHardlineFromDoc(doc.breakContents); + const flatContents = stripDocTrailingHardlineFromDoc(doc.flatContents); + return Object.assign(Object.assign({}, doc), {}, { + breakContents, + flatContents + }); + } + } + return doc; + } + function stripTrailingHardline(doc) { + return stripDocTrailingHardlineFromDoc(cleanDoc(doc)); + } + function cleanDocFn(doc) { + switch (doc.type) { + case "fill": + if (doc.parts.every((part) => part === "")) { + return ""; + } + break; + case "group": + if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) { + return ""; + } + if (doc.contents.type === "group" && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) { + return doc.contents; + } + break; + case "align": + case "indent": + case "indent-if-break": + case "line-suffix": + if (!doc.contents) { + return ""; + } + break; + case "if-break": + if (!doc.flatContents && !doc.breakContents) { + return ""; + } + break; + } + if (!isConcat(doc)) { + return doc; + } + const parts = []; + for (const part of getDocParts(doc)) { + if (!part) { + continue; + } + const [currentPart, ...restParts] = isConcat(part) ? getDocParts(part) : [part]; + if (typeof currentPart === "string" && typeof getLast(parts) === "string") { + parts[parts.length - 1] += currentPart; + } else { + parts.push(currentPart); + } + parts.push(...restParts); + } + if (parts.length === 0) { + return ""; + } + if (parts.length === 1) { + return parts[0]; + } + return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, { + parts + }); + } + function cleanDoc(doc) { + return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc)); + } + function normalizeParts(parts) { + const newParts = []; + const restParts = parts.filter(Boolean); + while (restParts.length > 0) { + const part = restParts.shift(); + if (!part) { + continue; + } + if (isConcat(part)) { + restParts.unshift(...getDocParts(part)); + continue; + } + if (newParts.length > 0 && typeof getLast(newParts) === "string" && typeof part === "string") { + newParts[newParts.length - 1] += part; + continue; + } + newParts.push(part); + } + return newParts; + } + function normalizeDoc(doc) { + return mapDoc(doc, (currentDoc) => { + if (Array.isArray(currentDoc)) { + return normalizeParts(currentDoc); + } + if (!currentDoc.parts) { + return currentDoc; + } + return Object.assign(Object.assign({}, currentDoc), {}, { + parts: normalizeParts(currentDoc.parts) + }); + }); + } + function replaceEndOfLine(doc) { + return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" && currentDoc.includes("\n") ? replaceTextEndOfLine(currentDoc) : currentDoc); + } + function replaceTextEndOfLine(text) { + let replacement = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : literalline; + return join(replacement, text.split("\n")).parts; + } + function canBreakFn(doc) { + if (doc.type === "line") { + return true; + } + } + function canBreak(doc) { + return findInDoc(doc, canBreakFn, false); + } + module2.exports = { + isConcat, + getDocParts, + willBreak, + traverseDoc, + findInDoc, + mapDoc, + propagateBreaks, + removeLines, + stripTrailingHardline, + normalizeParts, + normalizeDoc, + cleanDoc, + replaceTextEndOfLine, + replaceEndOfLine, + canBreak + }; + } + }); + var require_doc_printer = __commonJS2({ + "src/document/doc-printer.js"(exports2, module2) { + "use strict"; + init_define_process(); + var { + convertEndOfLineToChars + } = require_end_of_line(); + var getLast = require_get_last(); + var getStringWidth = require_get_string_width(); + var { + fill, + cursor, + indent + } = require_doc_builders(); + var { + isConcat, + getDocParts + } = require_doc_utils(); + var groupModeMap; + var MODE_BREAK = 1; + var MODE_FLAT = 2; + function rootIndent() { + return { + value: "", + length: 0, + queue: [] + }; + } + function makeIndent(ind, options) { + return generateInd(ind, { + type: "indent" + }, options); + } + function makeAlign(indent2, widthOrDoc, options) { + if (widthOrDoc === Number.NEGATIVE_INFINITY) { + return indent2.root || rootIndent(); + } + if (widthOrDoc < 0) { + return generateInd(indent2, { + type: "dedent" + }, options); + } + if (!widthOrDoc) { + return indent2; + } + if (widthOrDoc.type === "root") { + return Object.assign(Object.assign({}, indent2), {}, { + root: indent2 + }); + } + const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign"; + return generateInd(indent2, { + type: alignType, + n: widthOrDoc + }, options); + } + function generateInd(ind, newPart, options) { + const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart]; + let value = ""; + let length = 0; + let lastTabs = 0; + let lastSpaces = 0; + for (const part of queue) { + switch (part.type) { + case "indent": + flush(); + if (options.useTabs) { + addTabs(1); + } else { + addSpaces(options.tabWidth); + } + break; + case "stringAlign": + flush(); + value += part.n; + length += part.n.length; + break; + case "numberAlign": + lastTabs += 1; + lastSpaces += part.n; + break; + default: + throw new Error("Unexpected type '".concat(part.type, "'")); + } + } + flushSpaces(); + return Object.assign(Object.assign({}, ind), {}, { + value, + length, + queue + }); + function addTabs(count) { + value += " ".repeat(count); + length += options.tabWidth * count; + } + function addSpaces(count) { + value += " ".repeat(count); + length += count; + } + function flush() { + if (options.useTabs) { + flushTabs(); + } else { + flushSpaces(); + } + } + function flushTabs() { + if (lastTabs > 0) { + addTabs(lastTabs); + } + resetLast(); + } + function flushSpaces() { + if (lastSpaces > 0) { + addSpaces(lastSpaces); + } + resetLast(); + } + function resetLast() { + lastTabs = 0; + lastSpaces = 0; + } + } + function trim(out) { + if (out.length === 0) { + return 0; + } + let trimCount = 0; + while (out.length > 0 && typeof getLast(out) === "string" && /^[\t ]*$/.test(getLast(out))) { + trimCount += out.pop().length; + } + if (out.length > 0 && typeof getLast(out) === "string") { + const trimmed = getLast(out).replace(/[\t ]*$/, ""); + trimCount += getLast(out).length - trimmed.length; + out[out.length - 1] = trimmed; + } + return trimCount; + } + function fits(next, restCommands, width, options, hasLineSuffix, mustBeFlat) { + let restIdx = restCommands.length; + const cmds = [next]; + const out = []; + while (width >= 0) { + if (cmds.length === 0) { + if (restIdx === 0) { + return true; + } + cmds.push(restCommands[restIdx - 1]); + restIdx--; + continue; + } + const [ind, mode, doc] = cmds.pop(); + if (typeof doc === "string") { + out.push(doc); + width -= getStringWidth(doc); + } else if (isConcat(doc)) { + const parts = getDocParts(doc); + for (let i = parts.length - 1; i >= 0; i--) { + cmds.push([ind, mode, parts[i]]); + } + } else { + switch (doc.type) { + case "indent": + cmds.push([makeIndent(ind, options), mode, doc.contents]); + break; + case "align": + cmds.push([makeAlign(ind, doc.n, options), mode, doc.contents]); + break; + case "trim": + width += trim(out); + break; + case "group": { + if (mustBeFlat && doc.break) { + return false; + } + const groupMode = doc.break ? MODE_BREAK : mode; + cmds.push([ind, groupMode, doc.expandedStates && groupMode === MODE_BREAK ? getLast(doc.expandedStates) : doc.contents]); + if (doc.id) { + groupModeMap[doc.id] = groupMode; + } + break; + } + case "fill": + for (let i = doc.parts.length - 1; i >= 0; i--) { + cmds.push([ind, mode, doc.parts[i]]); + } + break; + case "if-break": + case "indent-if-break": { + const groupMode = doc.groupId ? groupModeMap[doc.groupId] : mode; + if (groupMode === MODE_BREAK) { + const breakContents = doc.type === "if-break" ? doc.breakContents : doc.negate ? doc.contents : indent(doc.contents); + if (breakContents) { + cmds.push([ind, mode, breakContents]); + } + } + if (groupMode === MODE_FLAT) { + const flatContents = doc.type === "if-break" ? doc.flatContents : doc.negate ? indent(doc.contents) : doc.contents; + if (flatContents) { + cmds.push([ind, mode, flatContents]); + } + } + break; + } + case "line": + switch (mode) { + case MODE_FLAT: + if (!doc.hard) { + if (!doc.soft) { + out.push(" "); + width -= 1; + } + break; + } + return true; + case MODE_BREAK: + return true; + } + break; + case "line-suffix": + hasLineSuffix = true; + break; + case "line-suffix-boundary": + if (hasLineSuffix) { + return false; + } + break; + case "label": + cmds.push([ind, mode, doc.contents]); + break; + } + } + } + return false; + } + function printDocToString(doc, options) { + groupModeMap = {}; + const width = options.printWidth; + const newLine = convertEndOfLineToChars(options.endOfLine); + let pos = 0; + const cmds = [[rootIndent(), MODE_BREAK, doc]]; + const out = []; + let shouldRemeasure = false; + let lineSuffix = []; + while (cmds.length > 0) { + const [ind, mode, doc2] = cmds.pop(); + if (typeof doc2 === "string") { + const formatted = newLine !== "\n" ? doc2.replace(/\n/g, newLine) : doc2; + out.push(formatted); + pos += getStringWidth(formatted); + } else if (isConcat(doc2)) { + const parts = getDocParts(doc2); + for (let i = parts.length - 1; i >= 0; i--) { + cmds.push([ind, mode, parts[i]]); + } + } else { + switch (doc2.type) { + case "cursor": + out.push(cursor.placeholder); + break; + case "indent": + cmds.push([makeIndent(ind, options), mode, doc2.contents]); + break; + case "align": + cmds.push([makeAlign(ind, doc2.n, options), mode, doc2.contents]); + break; + case "trim": + pos -= trim(out); + break; + case "group": + switch (mode) { + case MODE_FLAT: + if (!shouldRemeasure) { + cmds.push([ind, doc2.break ? MODE_BREAK : MODE_FLAT, doc2.contents]); + break; + } + case MODE_BREAK: { + shouldRemeasure = false; + const next = [ind, MODE_FLAT, doc2.contents]; + const rem = width - pos; + const hasLineSuffix = lineSuffix.length > 0; + if (!doc2.break && fits(next, cmds, rem, options, hasLineSuffix)) { + cmds.push(next); + } else { + if (doc2.expandedStates) { + const mostExpanded = getLast(doc2.expandedStates); + if (doc2.break) { + cmds.push([ind, MODE_BREAK, mostExpanded]); + break; + } else { + for (let i = 1; i < doc2.expandedStates.length + 1; i++) { + if (i >= doc2.expandedStates.length) { + cmds.push([ind, MODE_BREAK, mostExpanded]); + break; + } else { + const state = doc2.expandedStates[i]; + const cmd = [ind, MODE_FLAT, state]; + if (fits(cmd, cmds, rem, options, hasLineSuffix)) { + cmds.push(cmd); + break; + } + } + } + } + } else { + cmds.push([ind, MODE_BREAK, doc2.contents]); + } + } + break; + } + } + if (doc2.id) { + groupModeMap[doc2.id] = getLast(cmds)[1]; + } + break; + case "fill": { + const rem = width - pos; + const { + parts + } = doc2; + if (parts.length === 0) { + break; + } + const [content, whitespace] = parts; + const contentFlatCmd = [ind, MODE_FLAT, content]; + const contentBreakCmd = [ind, MODE_BREAK, content]; + const contentFits = fits(contentFlatCmd, [], rem, options, lineSuffix.length > 0, true); + if (parts.length === 1) { + if (contentFits) { + cmds.push(contentFlatCmd); + } else { + cmds.push(contentBreakCmd); + } + break; + } + const whitespaceFlatCmd = [ind, MODE_FLAT, whitespace]; + const whitespaceBreakCmd = [ind, MODE_BREAK, whitespace]; + if (parts.length === 2) { + if (contentFits) { + cmds.push(whitespaceFlatCmd, contentFlatCmd); + } else { + cmds.push(whitespaceBreakCmd, contentBreakCmd); + } + break; + } + parts.splice(0, 2); + const remainingCmd = [ind, mode, fill(parts)]; + const secondContent = parts[0]; + const firstAndSecondContentFlatCmd = [ind, MODE_FLAT, [content, whitespace, secondContent]]; + const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, options, lineSuffix.length > 0, true); + if (firstAndSecondContentFits) { + cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd); + } else if (contentFits) { + cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd); + } else { + cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd); + } + break; + } + case "if-break": + case "indent-if-break": { + const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode; + if (groupMode === MODE_BREAK) { + const breakContents = doc2.type === "if-break" ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents); + if (breakContents) { + cmds.push([ind, mode, breakContents]); + } + } + if (groupMode === MODE_FLAT) { + const flatContents = doc2.type === "if-break" ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents; + if (flatContents) { + cmds.push([ind, mode, flatContents]); + } + } + break; + } + case "line-suffix": + lineSuffix.push([ind, mode, doc2.contents]); + break; + case "line-suffix-boundary": + if (lineSuffix.length > 0) { + cmds.push([ind, mode, { + type: "line", + hard: true + }]); + } + break; + case "line": + switch (mode) { + case MODE_FLAT: + if (!doc2.hard) { + if (!doc2.soft) { + out.push(" "); + pos += 1; + } + break; + } else { + shouldRemeasure = true; + } + case MODE_BREAK: + if (lineSuffix.length > 0) { + cmds.push([ind, mode, doc2], ...lineSuffix.reverse()); + lineSuffix = []; + break; + } + if (doc2.literal) { + if (ind.root) { + out.push(newLine, ind.root.value); + pos = ind.root.length; + } else { + out.push(newLine); + pos = 0; + } + } else { + pos -= trim(out); + out.push(newLine + ind.value); + pos = ind.length; + } + break; + } + break; + case "label": + cmds.push([ind, mode, doc2.contents]); + break; + default: + } + } + if (cmds.length === 0 && lineSuffix.length > 0) { + cmds.push(...lineSuffix.reverse()); + lineSuffix = []; + } + } + const cursorPlaceholderIndex = out.indexOf(cursor.placeholder); + if (cursorPlaceholderIndex !== -1) { + const otherCursorPlaceholderIndex = out.indexOf(cursor.placeholder, cursorPlaceholderIndex + 1); + const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(""); + const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(""); + const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(""); + return { + formatted: beforeCursor + aroundCursor + afterCursor, + cursorNodeStart: beforeCursor.length, + cursorNodeText: aroundCursor + }; + } + return { + formatted: out.join("") + }; + } + module2.exports = { + printDocToString + }; + } + }); + var require_doc_debug = __commonJS2({ + "src/document/doc-debug.js"(exports2, module2) { + "use strict"; + init_define_process(); + var { + isConcat, + getDocParts + } = require_doc_utils(); + function flattenDoc(doc) { + if (!doc) { + return ""; + } + if (isConcat(doc)) { + const res = []; + for (const part of getDocParts(doc)) { + if (isConcat(part)) { + res.push(...flattenDoc(part).parts); + } else { + const flattened = flattenDoc(part); + if (flattened !== "") { + res.push(flattened); + } + } + } + return { + type: "concat", + parts: res + }; + } + if (doc.type === "if-break") { + return Object.assign(Object.assign({}, doc), {}, { + breakContents: flattenDoc(doc.breakContents), + flatContents: flattenDoc(doc.flatContents) + }); + } + if (doc.type === "group") { + return Object.assign(Object.assign({}, doc), {}, { + contents: flattenDoc(doc.contents), + expandedStates: doc.expandedStates && doc.expandedStates.map(flattenDoc) + }); + } + if (doc.type === "fill") { + return { + type: "fill", + parts: doc.parts.map(flattenDoc) + }; + } + if (doc.contents) { + return Object.assign(Object.assign({}, doc), {}, { + contents: flattenDoc(doc.contents) + }); + } + return doc; + } + function printDocToDebug(doc) { + const printedSymbols = /* @__PURE__ */ Object.create(null); + const usedKeysForSymbols = /* @__PURE__ */ new Set(); + return printDoc(flattenDoc(doc)); + function printDoc(doc2, index, parentParts) { + if (typeof doc2 === "string") { + return JSON.stringify(doc2); + } + if (isConcat(doc2)) { + const printed = getDocParts(doc2).map(printDoc).filter(Boolean); + return printed.length === 1 ? printed[0] : "[".concat(printed.join(", "), "]"); + } + if (doc2.type === "line") { + const withBreakParent = Array.isArray(parentParts) && parentParts[index + 1] && parentParts[index + 1].type === "break-parent"; + if (doc2.literal) { + return withBreakParent ? "literalline" : "literallineWithoutBreakParent"; + } + if (doc2.hard) { + return withBreakParent ? "hardline" : "hardlineWithoutBreakParent"; + } + if (doc2.soft) { + return "softline"; + } + return "line"; + } + if (doc2.type === "break-parent") { + const afterHardline = Array.isArray(parentParts) && parentParts[index - 1] && parentParts[index - 1].type === "line" && parentParts[index - 1].hard; + return afterHardline ? void 0 : "breakParent"; + } + if (doc2.type === "trim") { + return "trim"; + } + if (doc2.type === "indent") { + return "indent(" + printDoc(doc2.contents) + ")"; + } + if (doc2.type === "align") { + return doc2.n === Number.NEGATIVE_INFINITY ? "dedentToRoot(" + printDoc(doc2.contents) + ")" : doc2.n < 0 ? "dedent(" + printDoc(doc2.contents) + ")" : doc2.n.type === "root" ? "markAsRoot(" + printDoc(doc2.contents) + ")" : "align(" + JSON.stringify(doc2.n) + ", " + printDoc(doc2.contents) + ")"; + } + if (doc2.type === "if-break") { + return "ifBreak(" + printDoc(doc2.breakContents) + (doc2.flatContents ? ", " + printDoc(doc2.flatContents) : "") + (doc2.groupId ? (!doc2.flatContents ? ', ""' : "") + ", { groupId: ".concat(printGroupId(doc2.groupId), " }") : "") + ")"; + } + if (doc2.type === "indent-if-break") { + const optionsParts = []; + if (doc2.negate) { + optionsParts.push("negate: true"); + } + if (doc2.groupId) { + optionsParts.push("groupId: ".concat(printGroupId(doc2.groupId))); + } + const options = optionsParts.length > 0 ? ", { ".concat(optionsParts.join(", "), " }") : ""; + return "indentIfBreak(".concat(printDoc(doc2.contents)).concat(options, ")"); + } + if (doc2.type === "group") { + const optionsParts = []; + if (doc2.break && doc2.break !== "propagated") { + optionsParts.push("shouldBreak: true"); + } + if (doc2.id) { + optionsParts.push("id: ".concat(printGroupId(doc2.id))); + } + const options = optionsParts.length > 0 ? ", { ".concat(optionsParts.join(", "), " }") : ""; + if (doc2.expandedStates) { + return "conditionalGroup([".concat(doc2.expandedStates.map((part) => printDoc(part)).join(","), "]").concat(options, ")"); + } + return "group(".concat(printDoc(doc2.contents)).concat(options, ")"); + } + if (doc2.type === "fill") { + return "fill([".concat(doc2.parts.map((part) => printDoc(part)).join(", "), "])"); + } + if (doc2.type === "line-suffix") { + return "lineSuffix(" + printDoc(doc2.contents) + ")"; + } + if (doc2.type === "line-suffix-boundary") { + return "lineSuffixBoundary"; + } + if (doc2.type === "label") { + return "label(".concat(JSON.stringify(doc2.label), ", ").concat(printDoc(doc2.contents), ")"); + } + throw new Error("Unknown doc type " + doc2.type); + } + function printGroupId(id) { + if (typeof id !== "symbol") { + return JSON.stringify(String(id)); + } + if (id in printedSymbols) { + return printedSymbols[id]; + } + const prefix = String(id).slice(7, -1) || "symbol"; + for (let counter = 0; ; counter++) { + const key = prefix + (counter > 0 ? " #".concat(counter) : ""); + if (!usedKeysForSymbols.has(key)) { + usedKeysForSymbols.add(key); + return printedSymbols[id] = "Symbol.for(".concat(JSON.stringify(key), ")"); + } + } + } + } + module2.exports = { + printDocToDebug + }; + } + }); + init_define_process(); + module.exports = { + builders: require_doc_builders(), + printer: require_doc_printer(), + utils: require_doc_utils(), + debug: require_doc_debug() + }; + } + }); + return require_doc_js_umd(); +}); \ No newline at end of file diff --git a/node_modules/prettier/esm/parser-angular.mjs b/node_modules/prettier/esm/parser-angular.mjs new file mode 100644 index 0000000..5673171 --- /dev/null +++ b/node_modules/prettier/esm/parser-angular.mjs @@ -0,0 +1,2 @@ +"use strict";var De=Object.defineProperty,on=Object.getOwnPropertyDescriptor,ze=Object.getOwnPropertyNames,cn=Object.prototype.hasOwnProperty,Y=(e,t)=>function(){return e&&(t=(0,e[ze(e)[0]])(e=0)),t},W=(e,t)=>function(){return t||(0,e[ze(e)[0]])((t={exports:{}}).exports,t),t.exports},He=(e,t)=>{for(var n in t)De(e,n,{get:t[n],enumerable:!0})},un=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ze(t))!cn.call(e,s)&&s!==n&&De(e,s,{get:()=>t[s],enumerable:!(r=on(t,s))||r.enumerable});return e},Ne=e=>un(De({},"__esModule",{value:!0}),e),L=Y({""(){}}),ln=W({"src/utils/is-non-empty-array.js"(e,t){"use strict";L();function n(r){return Array.isArray(r)&&r.length>0}t.exports=n}}),hn=W({"src/language-js/loc.js"(e,t){"use strict";L();var n=ln();function r(l,P){let{ignoreDecorators:p}=P||{};if(!p){let x=l.declaration&&l.declaration.decorators||l.decorators;if(n(x))return r(x[0])}return l.range?l.range[0]:l.start}function s(l){return l.range?l.range[1]:l.end}function a(l,P){let p=r(l);return Number.isInteger(p)&&p===r(P)}function i(l,P){let p=s(l);return Number.isInteger(p)&&p===s(P)}function h(l,P){return a(l,P)&&i(l,P)}t.exports={locStart:r,locEnd:s,hasSameLocStart:a,hasSameLoc:h}}}),pn=W({"node_modules/angular-estree-parser/node_modules/lines-and-columns/build/index.js"(e){"use strict";L(),e.__esModule=!0,e.LinesAndColumns=void 0;var t=` +`,n="\r",r=function(){function s(a){this.string=a;for(var i=[0],h=0;hthis.string.length)return null;for(var i=0,h=this.offsets;h[i+1]<=a;)i++;var l=a-h[i];return{line:i,column:l}},s.prototype.indexForLocation=function(a){var i=a.line,h=a.column;return i<0||i>=this.offsets.length||h<0||h>this.lengthOfLine(i)?null:this.offsets[i]+h},s.prototype.lengthOfLine=function(a){var i=this.offsets[a],h=a===this.offsets.length-1?this.string.length:this.offsets[a+1];return h-i},s}();e.LinesAndColumns=r,e.default=r}}),dn=W({"node_modules/angular-estree-parser/lib/context.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.Context=void 0;var t=pn(),n=class{constructor(s){this.text=s,this.locator=new r(this.text)}};e.Context=n;var r=class{constructor(s){this._lineAndColumn=new t.default(s)}locationForIndex(s){let{line:a,column:i}=this._lineAndColumn.locationForIndex(s);return{line:a+1,column:i}}}}}),Xe={};He(Xe,{AST:()=>k,ASTWithName:()=>G,ASTWithSource:()=>V,AbsoluteSourceSpan:()=>U,AstMemoryEfficientTransformer:()=>Pt,AstTransformer:()=>wt,Binary:()=>K,BindingPipe:()=>fe,BoundElementProperty:()=>_t,Chain:()=>oe,Conditional:()=>ce,EmptyExpr:()=>M,ExpressionBinding:()=>Ye,FunctionCall:()=>Pe,ImplicitReceiver:()=>Oe,Interpolation:()=>me,KeyedRead:()=>he,KeyedWrite:()=>de,LiteralArray:()=>ge,LiteralMap:()=>ve,LiteralPrimitive:()=>B,MethodCall:()=>ye,NonNullAssert:()=>Se,ParseSpan:()=>q,ParsedEvent:()=>Et,ParsedProperty:()=>Ct,ParsedPropertyType:()=>se,ParsedVariable:()=>At,ParserError:()=>ae,PrefixNot:()=>xe,PropertyRead:()=>re,PropertyWrite:()=>ue,Quote:()=>be,RecursiveAstVisitor:()=>Ze,SafeKeyedRead:()=>pe,SafeMethodCall:()=>we,SafePropertyRead:()=>le,ThisReceiver:()=>Je,Unary:()=>F,VariableBinding:()=>Le});var ae,q,k,G,be,M,Oe,Je,oe,ce,re,ue,le,he,pe,de,fe,B,ge,ve,me,K,F,xe,Se,ye,we,Pe,U,V,Le,Ye,Ze,wt,Pt,Ct,se,Et,At,_t,et=Y({"node_modules/@angular/compiler/esm2015/src/expression_parser/ast.js"(){L(),ae=class{constructor(e,t,n,r){this.input=t,this.errLocation=n,this.ctxLocation=r,this.message="Parser Error: ".concat(e," ").concat(n," [").concat(t,"] in ").concat(r)}},q=class{constructor(e,t){this.start=e,this.end=t}toAbsolute(e){return new U(e+this.start,e+this.end)}},k=class{constructor(e,t){this.span=e,this.sourceSpan=t}toString(){return"AST"}},G=class extends k{constructor(e,t,n){super(e,t),this.nameSpan=n}},be=class extends k{constructor(e,t,n,r,s){super(e,t),this.prefix=n,this.uninterpretedExpression=r,this.location=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitQuote(this,t)}toString(){return"Quote"}},M=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null}},Oe=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitImplicitReceiver(this,t)}},Je=class extends Oe{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;var n;return(n=e.visitThisReceiver)===null||n===void 0?void 0:n.call(e,this,t)}},oe=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitChain(this,t)}},ce=class extends k{constructor(e,t,n,r,s){super(e,t),this.condition=n,this.trueExp=r,this.falseExp=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitConditional(this,t)}},re=class extends G{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyRead(this,t)}},ue=class extends G{constructor(e,t,n,r,s,a){super(e,t,n),this.receiver=r,this.name=s,this.value=a}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyWrite(this,t)}},le=class extends G{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafePropertyRead(this,t)}},he=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedRead(this,t)}},pe=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeKeyedRead(this,t)}},de=class extends k{constructor(e,t,n,r,s){super(e,t),this.receiver=n,this.key=r,this.value=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedWrite(this,t)}},fe=class extends G{constructor(e,t,n,r,s,a){super(e,t,a),this.exp=n,this.name=r,this.args=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPipe(this,t)}},B=class extends k{constructor(e,t,n){super(e,t),this.value=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralPrimitive(this,t)}},ge=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralArray(this,t)}},ve=class extends k{constructor(e,t,n,r){super(e,t),this.keys=n,this.values=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralMap(this,t)}},me=class extends k{constructor(e,t,n,r){super(e,t),this.strings=n,this.expressions=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitInterpolation(this,t)}},K=class extends k{constructor(e,t,n,r,s){super(e,t),this.operation=n,this.left=r,this.right=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitBinary(this,t)}},F=class extends K{constructor(e,t,n,r,s,a,i){super(e,t,s,a,i),this.operator=n,this.expr=r}static createMinus(e,t,n){return new F(e,t,"-",n,"-",new B(e,t,0),n)}static createPlus(e,t,n){return new F(e,t,"+",n,"-",n,new B(e,t,0))}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitUnary!==void 0?e.visitUnary(this,t):e.visitBinary(this,t)}},xe=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPrefixNot(this,t)}},Se=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitNonNullAssert(this,t)}},ye=class extends G{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitMethodCall(this,t)}},we=class extends G{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeMethodCall(this,t)}},Pe=class extends k{constructor(e,t,n,r){super(e,t),this.target=n,this.args=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitFunctionCall(this,t)}},U=class{constructor(e,t){this.start=e,this.end=t}},V=class extends k{constructor(e,t,n,r,s){super(new q(0,t===null?0:t.length),new U(r,t===null?r:r+t.length)),this.ast=e,this.source=t,this.location=n,this.errors=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitASTWithSource?e.visitASTWithSource(this,t):this.ast.visit(e,t)}toString(){return"".concat(this.source," in ").concat(this.location)}},Le=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},Ye=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},Ze=class{visit(e,t){e.visit(this,t)}visitUnary(e,t){this.visit(e.expr,t)}visitBinary(e,t){this.visit(e.left,t),this.visit(e.right,t)}visitChain(e,t){this.visitAll(e.expressions,t)}visitConditional(e,t){this.visit(e.condition,t),this.visit(e.trueExp,t),this.visit(e.falseExp,t)}visitPipe(e,t){this.visit(e.exp,t),this.visitAll(e.args,t)}visitFunctionCall(e,t){e.target&&this.visit(e.target,t),this.visitAll(e.args,t)}visitImplicitReceiver(e,t){}visitThisReceiver(e,t){}visitInterpolation(e,t){this.visitAll(e.expressions,t)}visitKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitKeyedWrite(e,t){this.visit(e.receiver,t),this.visit(e.key,t),this.visit(e.value,t)}visitLiteralArray(e,t){this.visitAll(e.expressions,t)}visitLiteralMap(e,t){this.visitAll(e.values,t)}visitLiteralPrimitive(e,t){}visitMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitPrefixNot(e,t){this.visit(e.expression,t)}visitNonNullAssert(e,t){this.visit(e.expression,t)}visitPropertyRead(e,t){this.visit(e.receiver,t)}visitPropertyWrite(e,t){this.visit(e.receiver,t),this.visit(e.value,t)}visitSafePropertyRead(e,t){this.visit(e.receiver,t)}visitSafeMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitSafeKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitQuote(e,t){}visitAll(e,t){for(let n of e)this.visit(n,t)}},wt=class{visitImplicitReceiver(e,t){return e}visitThisReceiver(e,t){return e}visitInterpolation(e,t){return new me(e.span,e.sourceSpan,e.strings,this.visitAll(e.expressions))}visitLiteralPrimitive(e,t){return new B(e.span,e.sourceSpan,e.value)}visitPropertyRead(e,t){return new re(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitPropertyWrite(e,t){return new ue(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,e.value.visit(this))}visitSafePropertyRead(e,t){return new le(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitMethodCall(e,t){return new ye(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitSafeMethodCall(e,t){return new we(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitFunctionCall(e,t){return new Pe(e.span,e.sourceSpan,e.target.visit(this),this.visitAll(e.args))}visitLiteralArray(e,t){return new ge(e.span,e.sourceSpan,this.visitAll(e.expressions))}visitLiteralMap(e,t){return new ve(e.span,e.sourceSpan,e.keys,this.visitAll(e.values))}visitUnary(e,t){switch(e.operator){case"+":return F.createPlus(e.span,e.sourceSpan,e.expr.visit(this));case"-":return F.createMinus(e.span,e.sourceSpan,e.expr.visit(this));default:throw new Error("Unknown unary operator ".concat(e.operator))}}visitBinary(e,t){return new K(e.span,e.sourceSpan,e.operation,e.left.visit(this),e.right.visit(this))}visitPrefixNot(e,t){return new xe(e.span,e.sourceSpan,e.expression.visit(this))}visitNonNullAssert(e,t){return new Se(e.span,e.sourceSpan,e.expression.visit(this))}visitConditional(e,t){return new ce(e.span,e.sourceSpan,e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this))}visitPipe(e,t){return new fe(e.span,e.sourceSpan,e.exp.visit(this),e.name,this.visitAll(e.args),e.nameSpan)}visitKeyedRead(e,t){return new he(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this))}visitKeyedWrite(e,t){return new de(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this),e.value.visit(this))}visitAll(e){let t=[];for(let n=0;n=tt&&e<=nt||e==pt}function Q(e){return Mt<=e&&e<=$t}function gn(e){return e>=lt&&e<=ht||e>=ct&&e<=ut}function vt(e){return e===it||e===rt||e===Ht}var Ce,tt,It,Ot,kt,Nt,nt,bt,rt,Lt,st,Rt,$e,it,Ee,z,Tt,at,ee,ot,H,Re,X,te,Bt,ie,Kt,je,Mt,$t,ct,jt,ut,Ae,Ft,ne,Ut,Be,lt,Wt,Gt,Vt,qt,Qt,Dt,zt,ht,Te,Fe,_e,pt,Ht,Xt=Y({"node_modules/@angular/compiler/esm2015/src/chars.js"(){L(),Ce=0,tt=9,It=10,Ot=11,kt=12,Nt=13,nt=32,bt=33,rt=34,Lt=35,st=36,Rt=37,$e=38,it=39,Ee=40,z=41,Tt=42,at=43,ee=44,ot=45,H=46,Re=47,X=58,te=59,Bt=60,ie=61,Kt=62,je=63,Mt=48,$t=57,ct=65,jt=69,ut=90,Ae=91,Ft=92,ne=93,Ut=94,Be=95,lt=97,Wt=101,Gt=102,Vt=110,qt=114,Qt=116,Dt=117,zt=118,ht=122,Te=123,Fe=124,_e=125,pt=160,Ht=96}}),Jt={};He(Jt,{EOF:()=>Ie,Lexer:()=>Zt,Token:()=>$,TokenType:()=>S,isIdentifier:()=>Yt});function mt(e,t,n){return new $(e,t,S.Character,n,String.fromCharCode(n))}function vn(e,t,n){return new $(e,t,S.Identifier,0,n)}function mn(e,t,n){return new $(e,t,S.PrivateIdentifier,0,n)}function xn(e,t,n){return new $(e,t,S.Keyword,0,n)}function Ke(e,t,n){return new $(e,t,S.Operator,0,n)}function Sn(e,t,n){return new $(e,t,S.String,0,n)}function yn(e,t,n){return new $(e,t,S.Number,n,"")}function wn(e,t,n){return new $(e,t,S.Error,0,n)}function Ue(e){return lt<=e&&e<=ht||ct<=e&&e<=ut||e==Be||e==st}function Yt(e){if(e.length==0)return!1;let t=new Ge(e);if(!Ue(t.peek))return!1;for(t.advance();t.peek!==Ce;){if(!We(t.peek))return!1;t.advance()}return!0}function We(e){return gn(e)||Q(e)||e==Be||e==st}function Pn(e){return e==Wt||e==jt}function Cn(e){return e==ot||e==at}function En(e){switch(e){case Vt:return It;case Gt:return kt;case qt:return Nt;case Qt:return tt;case zt:return Ot;default:return e}}function An(e){let t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t}var S,xt,Zt,$,Ie,Ge,en=Y({"node_modules/@angular/compiler/esm2015/src/expression_parser/lexer.js"(){L(),Xt(),function(e){e[e.Character=0]="Character",e[e.Identifier=1]="Identifier",e[e.PrivateIdentifier=2]="PrivateIdentifier",e[e.Keyword=3]="Keyword",e[e.String=4]="String",e[e.Operator=5]="Operator",e[e.Number=6]="Number",e[e.Error=7]="Error"}(S||(S={})),xt=["var","let","as","null","undefined","true","false","if","else","this"],Zt=class{tokenize(e){let t=new Ge(e),n=[],r=t.scanToken();for(;r!=null;)n.push(r),r=t.scanToken();return n}},$=class{constructor(e,t,n,r,s){this.index=e,this.end=t,this.type=n,this.numValue=r,this.strValue=s}isCharacter(e){return this.type==S.Character&&this.numValue==e}isNumber(){return this.type==S.Number}isString(){return this.type==S.String}isOperator(e){return this.type==S.Operator&&this.strValue==e}isIdentifier(){return this.type==S.Identifier}isPrivateIdentifier(){return this.type==S.PrivateIdentifier}isKeyword(){return this.type==S.Keyword}isKeywordLet(){return this.type==S.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==S.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==S.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==S.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==S.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==S.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==S.Keyword&&this.strValue=="this"}isError(){return this.type==S.Error}toNumber(){return this.type==S.Number?this.numValue:-1}toString(){switch(this.type){case S.Character:case S.Identifier:case S.Keyword:case S.Operator:case S.PrivateIdentifier:case S.String:case S.Error:return this.strValue;case S.Number:return this.numValue.toString();default:return null}}},Ie=new $(-1,-1,S.Character,0,""),Ge=class{constructor(e){this.input=e,this.peek=0,this.index=-1,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?Ce:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,t=this.length,n=this.peek,r=this.index;for(;n<=nt;)if(++r>=t){n=Ce;break}else n=e.charCodeAt(r);if(this.peek=n,this.index=r,r>=t)return null;if(Ue(n))return this.scanIdentifier();if(Q(n))return this.scanNumber(r);let s=r;switch(n){case H:return this.advance(),Q(this.peek)?this.scanNumber(s):mt(s,this.index,H);case Ee:case z:case Te:case _e:case Ae:case ne:case ee:case X:case te:return this.scanCharacter(s,n);case it:case rt:return this.scanString();case Lt:return this.scanPrivateIdentifier();case at:case ot:case Tt:case Re:case Rt:case Ut:return this.scanOperator(s,String.fromCharCode(n));case je:return this.scanQuestion(s);case Bt:case Kt:return this.scanComplexOperator(s,String.fromCharCode(n),ie,"=");case bt:case ie:return this.scanComplexOperator(s,String.fromCharCode(n),ie,"=",ie,"=");case $e:return this.scanComplexOperator(s,"&",$e,"&");case Fe:return this.scanComplexOperator(s,"|",Fe,"|");case pt:for(;fn(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character [".concat(String.fromCharCode(n),"]"),0)}scanCharacter(e,t){return this.advance(),mt(e,this.index,t)}scanOperator(e,t){return this.advance(),Ke(e,this.index,t)}scanComplexOperator(e,t,n,r,s,a){this.advance();let i=t;return this.peek==n&&(this.advance(),i+=r),s!=null&&this.peek==s&&(this.advance(),i+=a),Ke(e,this.index,i)}scanIdentifier(){let e=this.index;for(this.advance();We(this.peek);)this.advance();let t=this.input.substring(e,this.index);return xt.indexOf(t)>-1?xn(e,this.index,t):vn(e,this.index,t)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!Ue(this.peek))return this.error("Invalid character [#]",-1);for(;We(this.peek);)this.advance();let t=this.input.substring(e,this.index);return mn(e,this.index,t)}scanNumber(e){let t=this.index===e,n=!1;for(this.advance();;){if(!Q(this.peek))if(this.peek===Be){if(!Q(this.input.charCodeAt(this.index-1))||!Q(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);n=!0}else if(this.peek===H)t=!1;else if(Pn(this.peek)){if(this.advance(),Cn(this.peek)&&this.advance(),!Q(this.peek))return this.error("Invalid exponent",-1);t=!1}else break;this.advance()}let r=this.input.substring(e,this.index);n&&(r=r.replace(/_/g,""));let s=t?An(r):parseFloat(r);return yn(e,this.index,s)}scanString(){let e=this.index,t=this.peek;this.advance();let n="",r=this.index,s=this.input;for(;this.peek!=t;)if(this.peek==Ft){n+=s.substring(r,this.index),this.advance();let i;if(this.peek=this.peek,this.peek==Dt){let h=s.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(h))i=parseInt(h,16);else return this.error("Invalid unicode escape [\\u".concat(h,"]"),0);for(let l=0;l<5;l++)this.advance()}else i=En(this.peek),this.advance();n+=String.fromCharCode(i),r=this.index}else{if(this.peek==Ce)return this.error("Unterminated quote",0);this.advance()}let a=s.substring(r,this.index);return this.advance(),Sn(e,this.index,n+a)}scanQuestion(e){this.advance();let t="?";return(this.peek===je||this.peek===H)&&(t+=this.peek===H?".":"?",this.advance()),Ke(e,this.index,t)}error(e,t){let n=this.index+t;return wn(n,this.index,"Lexer Error: ".concat(e," at column ").concat(n," in expression [").concat(this.input,"]"))}}}});function _n(e,t){if(t!=null&&!(Array.isArray(t)&&t.length==2))throw new Error("Expected '".concat(e,"' to be an array, [start, end]."));if(t!=null){let n=t[0],r=t[1];tn.forEach(s=>{if(s.test(n)||s.test(r))throw new Error("['".concat(n,"', '").concat(r,"'] contains unusable interpolation symbol."))})}}var tn,In=Y({"node_modules/@angular/compiler/esm2015/src/assertions.js"(){L(),tn=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//]}}),Me,J,On=Y({"node_modules/@angular/compiler/esm2015/src/ml_parser/interpolation_config.js"(){L(),In(),Me=class{constructor(e,t){this.start=e,this.end=t}static fromArray(e){return e?(_n("interpolation",e),new Me(e[0],e[1])):J}},J=new Me("{{","}}")}}),nn={};He(nn,{IvyParser:()=>rn,Parser:()=>Qe,SplitInterpolation:()=>Ve,TemplateBindingParseResult:()=>qe,_ParseAST:()=>D});var Ve,qe,Qe,rn,Z,D,St,yt,kn=Y({"node_modules/@angular/compiler/esm2015/src/expression_parser/parser.js"(){L(),Xt(),On(),et(),en(),Ve=class{constructor(e,t,n){this.strings=e,this.expressions=t,this.offsets=n}},qe=class{constructor(e,t,n){this.templateBindings=e,this.warnings=t,this.errors=n}},Qe=class{constructor(e){this._lexer=e,this.errors=[],this.simpleExpressionChecker=St}parseAction(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J;this._checkNoInterpolation(e,t,r);let s=this._stripComments(e),a=this._lexer.tokenize(this._stripComments(e)),i=new D(e,t,n,a,s.length,!0,this.errors,e.length-s.length).parseChain();return new V(i,e,t,n,this.errors)}parseBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r);return new V(s,e,t,n,this.errors)}checkSimpleExpression(e){let t=new this.simpleExpressionChecker;return e.visit(t),t.errors}parseSimpleBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r),a=this.checkSimpleExpression(s);return a.length>0&&this._reportError("Host binding expression cannot contain ".concat(a.join(" ")),e,t),new V(s,e,t,n,this.errors)}_reportError(e,t,n,r){this.errors.push(new ae(e,t,n,r))}_parseBindingAst(e,t,n,r){let s=this._parseQuote(e,t,n);if(s!=null)return s;this._checkNoInterpolation(e,t,r);let a=this._stripComments(e),i=this._lexer.tokenize(a);return new D(e,t,n,i,a.length,!1,this.errors,e.length-a.length).parseChain()}_parseQuote(e,t,n){if(e==null)return null;let r=e.indexOf(":");if(r==-1)return null;let s=e.substring(0,r).trim();if(!Yt(s))return null;let a=e.substring(r+1),i=new q(0,e.length);return new be(i,i.toAbsolute(n),s,a,t)}parseTemplateBindings(e,t,n,r,s){let a=this._lexer.tokenize(t);return new D(t,n,s,a,t.length,!1,this.errors,0).parseTemplateBindings({source:e,span:new U(r,r+e.length)})}parseInterpolation(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,{strings:s,expressions:a,offsets:i}=this.splitInterpolation(e,t,r);if(a.length===0)return null;let h=[];for(let l=0;ll.text),h,e,t,n)}parseInterpolationExpression(e,t,n){let r=this._stripComments(e),s=this._lexer.tokenize(r),a=new D(e,t,n,s,r.length,!1,this.errors,0).parseChain(),i=["",""];return this.createInterpolationAst(i,[a],e,t,n)}createInterpolationAst(e,t,n,r,s){let a=new q(0,n.length),i=new me(a,a.toAbsolute(s),e,t);return new V(i,n,r,s,this.errors)}splitInterpolation(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:J,r=[],s=[],a=[],i=0,h=!1,l=!1,{start:P,end:p}=n;for(;i-1)break;a>-1&&i>-1&&this._reportError("Got interpolation (".concat(r).concat(s,") where expression was expected"),e,"at column ".concat(a," in"),t)}_getInterpolationEndIndex(e,t,n){for(let r of this._forEachUnquotedChar(e,n)){if(e.startsWith(t,r))return r;if(e.startsWith("//",r))return e.indexOf(t,r)}return-1}*_forEachUnquotedChar(e,t){let n=null,r=0;for(let s=t;s=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.inputLength+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,t){let n=this.currentEndIndex;if(t!==void 0&&t>this.currentEndIndex&&(n=t),e>n){let r=n;n=e,e=r}return new q(e,n)}sourceSpan(e,t){let n="".concat(e,"@").concat(this.inputIndex,":").concat(t);return this.sourceSpanCache.has(n)||this.sourceSpanCache.set(n,this.span(e,t).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(n)}advance(){this.index++}withContext(e,t){this.context|=e;let n=t();return this.context^=e,n}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error("Missing expected ".concat(String.fromCharCode(e)))}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error("Missing expected operator ".concat(e))}prettyPrintToken(e){return e===Ie?"end of input":"token ".concat(e)}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error("Unexpected ".concat(this.prettyPrintToken(e),", expected identifier or keyword")),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error("Unexpected ".concat(this.prettyPrintToken(e),", expected identifier, keyword, or string")),""):(this.advance(),e.toString())}parseChain(){let e=[],t=this.inputIndex;for(;this.index":case"<=":case">=":this.advance();let r=this.parseAdditive();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseAdditive(){let e=this.inputIndex,t=this.parseMultiplicative();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case"+":case"-":this.advance();let r=this.parseMultiplicative();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseMultiplicative(){let e=this.inputIndex,t=this.parsePrefix();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case"*":case"%":case"/":this.advance();let r=this.parsePrefix();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parsePrefix(){if(this.next.type==S.Operator){let e=this.inputIndex,t=this.next.strValue,n;switch(t){case"+":return this.advance(),n=this.parsePrefix(),F.createPlus(this.span(e),this.sourceSpan(e),n);case"-":return this.advance(),n=this.parsePrefix(),F.createMinus(this.span(e),this.sourceSpan(e),n);case"!":return this.advance(),n=this.parsePrefix(),new xe(this.span(e),this.sourceSpan(e),n)}}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,t=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(H))t=this.parseAccessMemberOrMethodCall(t,e,!1);else if(this.consumeOptionalOperator("?."))t=this.consumeOptionalCharacter(Ae)?this.parseKeyedReadOrWrite(t,e,!0):this.parseAccessMemberOrMethodCall(t,e,!0);else if(this.consumeOptionalCharacter(Ae))t=this.parseKeyedReadOrWrite(t,e,!1);else if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let n=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(z),t=new Pe(this.span(e),this.sourceSpan(e),t,n)}else if(this.consumeOptionalOperator("!"))t=new Se(this.span(e),this.sourceSpan(e),t);else return t}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(z),t}else{if(this.next.isKeywordNull())return this.advance(),new B(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new B(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new B(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new B(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Je(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(Ae)){this.rbracketsExpected++;let t=this.parseExpressionList(ne);return this.rbracketsExpected--,this.expectCharacter(ne),new ge(this.span(e),this.sourceSpan(e),t)}else{if(this.next.isCharacter(Te))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Oe(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let t=this.next.toNumber();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else if(this.next.isString()){let t=this.next.toString();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new M(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error("Unexpected end of expression: ".concat(this.input)),new M(this.span(e),this.sourceSpan(e))):(this.error("Unexpected token ".concat(this.next)),new M(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let t=[];do if(!this.next.isCharacter(e))t.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(ee));return t}parseLiteralMap(){let e=[],t=[],n=this.inputIndex;if(this.expectCharacter(Te),!this.consumeOptionalCharacter(_e)){this.rbracesExpected++;do{let r=this.inputIndex,s=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(e.push({key:a,quoted:s}),s)this.expectCharacter(X),t.push(this.parsePipe());else if(this.consumeOptionalCharacter(X))t.push(this.parsePipe());else{let i=this.span(r),h=this.sourceSpan(r);t.push(new re(i,h,h,new Oe(i,h),a))}}while(this.consumeOptionalCharacter(ee));this.rbracesExpected--,this.expectCharacter(_e)}return new ve(this.span(n),this.sourceSpan(n),e,t)}parseAccessMemberOrMethodCall(e,t,n){let r=this.inputIndex,s=this.withContext(Z.Writable,()=>{var i;let h=(i=this.expectIdentifierOrKeyword())!==null&&i!==void 0?i:"";return h.length===0&&this.error("Expected identifier for property access",e.span.end),h}),a=this.sourceSpan(r);if(this.consumeOptionalCharacter(Ee)){let i=this.inputIndex;this.rparensExpected++;let h=this.parseCallArguments(),l=this.span(i,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(z),this.rparensExpected--;let P=this.span(t),p=this.sourceSpan(t);return n?new we(P,p,a,e,s,h,l):new ye(P,p,a,e,s,h,l)}else{if(n)return this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new M(this.span(t),this.sourceSpan(t))):new le(this.span(t),this.sourceSpan(t),a,e,s);if(this.consumeOptionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new M(this.span(t),this.sourceSpan(t));let i=this.parseConditional();return new ue(this.span(t),this.sourceSpan(t),a,e,s,i)}else return new re(this.span(t),this.sourceSpan(t),a,e,s)}}parseCallArguments(){if(this.next.isCharacter(z))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(ee));return e}expectTemplateBindingKey(){let e="",t=!1,n=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),t=this.consumeOptionalOperator("-"),t&&(e+="-");while(t);return{source:e,span:new U(n,n+e.length)}}parseTemplateBindings(e){let t=[];for(t.push(...this.parseDirectiveKeywordBindings(e));this.index{this.rbracketsExpected++;let r=this.parsePipe();if(r instanceof M&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(ne),this.consumeOptionalOperator("="))if(n)this.error("The '?.' operator cannot be used in the assignment");else{let s=this.parseConditional();return new de(this.span(t),this.sourceSpan(t),e,r,s)}else return n?new pe(this.span(t),this.sourceSpan(t),e,r):new he(this.span(t),this.sourceSpan(t),e,r);return new M(this.span(t),this.sourceSpan(t))})}parseDirectiveKeywordBindings(e){let t=[];this.consumeOptionalCharacter(X);let n=this.getDirectiveBoundTarget(),r=this.currentAbsoluteOffset,s=this.parseAsBinding(e);s||(this.consumeStatementTerminator(),r=this.currentAbsoluteOffset);let a=new U(e.span.start,r);return t.push(new Ye(a,e,n)),s&&t.push(s),t}getDirectiveBoundTarget(){if(this.next===Ie||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:t,end:n}=e.span,r=this.input.substring(t,n);return new V(e,r,this.location,this.absoluteOffset+t,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let t=this.expectTemplateBindingKey();this.consumeStatementTerminator();let n=new U(e.span.start,this.currentAbsoluteOffset);return new Le(n,t,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let t=this.expectTemplateBindingKey(),n=null;this.consumeOptionalOperator("=")&&(n=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let r=new U(e,this.currentAbsoluteOffset);return new Le(r,t,n)}consumeStatementTerminator(){this.consumeOptionalCharacter(te)||this.consumeOptionalCharacter(ee)}error(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.errors.push(new ae(e,this.input,this.locationText(t),this.location)),this.skip()}locationText(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return e==null&&(e=this.index),en.visit(this,t))}visitChain(e,t){}visitQuote(e,t){}visitSafeKeyedRead(e,t){}},yt=class extends Ze{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push("pipes")}}}}),dt=W({"node_modules/angular-estree-parser/lib/utils.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.getLast=e.toLowerCamelCase=e.findBackChar=e.findFrontChar=e.fitSpans=e.getNgType=e.parseNgInterpolation=e.parseNgTemplateBindings=e.parseNgAction=e.parseNgSimpleBinding=e.parseNgBinding=e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX=void 0;var t=(et(),Ne(Xe)),n=(en(),Ne(Jt)),r=(kn(),Ne(nn)),s="angular-estree-parser";e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX="NgEstreeParser";var a=0,i=[s,a];function h(){return new r.Parser(new n.Lexer)}function l(o,d){let y=h(),{astInput:C,comments:E}=T(o,y),{ast:I,errors:j}=d(C,y);return R(j),{ast:I,comments:E}}function P(o){return l(o,(d,y)=>y.parseBinding(d,...i))}e.parseNgBinding=P;function p(o){return l(o,(d,y)=>y.parseSimpleBinding(d,...i))}e.parseNgSimpleBinding=p;function x(o){return l(o,(d,y)=>y.parseAction(d,...i))}e.parseNgAction=x;function A(o){let d=h(),{templateBindings:y,errors:C}=d.parseTemplateBindings(e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX,o,s,a,a);return R(C),y}e.parseNgTemplateBindings=A;function b(o){let d=h(),{astInput:y,comments:C}=T(o,d),E="{{",I="}}",{ast:j,errors:an}=d.parseInterpolation(E+y+I,...i);R(an);let ft=j.expressions[0],gt=new Set;return _(ft,ke=>{gt.has(ke)||(ke.start-=E.length,ke.end-=E.length,gt.add(ke))}),{ast:ft,comments:C}}e.parseNgInterpolation=b;function _(o,d){if(!(!o||typeof o!="object")){if(Array.isArray(o))return o.forEach(y=>_(y,d));for(let y of Object.keys(o)){let C=o[y];y==="span"?d(C):_(C,d)}}}function R(o){if(o.length!==0){let[{message:d}]=o;throw new SyntaxError(d.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}}function T(o,d){let y=d._commentStart(o);return y===null?{astInput:o,comments:[]}:{astInput:o.slice(0,y),comments:[{type:"Comment",value:o.slice(y+2),span:{start:y,end:o.length}}]}}function O(o){return t.Unary&&o instanceof t.Unary?"Unary":o instanceof t.Binary?"Binary":o instanceof t.BindingPipe?"BindingPipe":o instanceof t.Chain?"Chain":o instanceof t.Conditional?"Conditional":o instanceof t.EmptyExpr?"EmptyExpr":o instanceof t.FunctionCall?"FunctionCall":o instanceof t.ImplicitReceiver?"ImplicitReceiver":o instanceof t.KeyedRead?"KeyedRead":o instanceof t.KeyedWrite?"KeyedWrite":o instanceof t.LiteralArray?"LiteralArray":o instanceof t.LiteralMap?"LiteralMap":o instanceof t.LiteralPrimitive?"LiteralPrimitive":o instanceof t.MethodCall?"MethodCall":o instanceof t.NonNullAssert?"NonNullAssert":o instanceof t.PrefixNot?"PrefixNot":o instanceof t.PropertyRead?"PropertyRead":o instanceof t.PropertyWrite?"PropertyWrite":o instanceof t.Quote?"Quote":o instanceof t.SafeMethodCall?"SafeMethodCall":o instanceof t.SafePropertyRead?"SafePropertyRead":o.type}e.getNgType=O;function N(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==E&&/\s/.test(d[I-1]);)I--;for(;E!==I&&/\s/.test(d[E]);)E++;return{start:E,end:I}}function c(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==d.length&&/\s/.test(d[I]);)I++;for(;E!==0&&/\s/.test(d[E-1]);)E--;return{start:E,end:I}}function g(o,d){return d[o.start-1]==="("&&d[o.end]===")"?{start:o.start-1,end:o.end+1}:o}function u(o,d,y){let C=0,E={start:o.start,end:o.end};for(;;){let I=c(E,d),j=g(I,d);if(I.start===j.start&&I.end===j.end)break;E.start=j.start,E.end=j.end,C++}return{hasParens:(y?C-1:C)!==0,outerSpan:N(y?{start:E.start+1,end:E.end-1}:E,d),innerSpan:N(o,d)}}e.fitSpans=u;function v(o,d,y){let C=d;for(;!o.test(y[C]);)if(--C<0)throw new Error("Cannot find front char ".concat(o," from index ").concat(d," in ").concat(JSON.stringify(y)));return C}e.findFrontChar=v;function m(o,d,y){let C=d;for(;!o.test(y[C]);)if(++C>=y.length)throw new Error("Cannot find back char ".concat(o," from index ").concat(d," in ").concat(JSON.stringify(y)));return C}e.findBackChar=m;function f(o){return o.slice(0,1).toLowerCase()+o.slice(1)}e.toLowerCamelCase=f;function w(o){return o.length===0?void 0:o[o.length-1]}e.getLast=w}}),sn=W({"node_modules/angular-estree-parser/lib/transform.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.transformSpan=e.transform=void 0;var t=dt(),n=function(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,h=t.getNgType(s);switch(h){case"Unary":{let{operator:c,expr:g}=s,u=l(g);return p("UnaryExpression",{prefix:!0,argument:u,operator:c},s.span,{hasParentParens:i})}case"Binary":{let{left:c,operation:g,right:u}=s,v=u.span.start===u.span.end,m=c.span.start===c.span.end;if(v||m){let o=c.span.start===c.span.end?l(u):l(c);return p("UnaryExpression",{prefix:!0,argument:o,operator:v?"+":"-"},{start:s.span.start,end:N(o)},{hasParentParens:i})}let f=l(c),w=l(u);return p(g==="&&"||g==="||"?"LogicalExpression":"BinaryExpression",{left:f,right:w,operator:g},{start:O(f),end:N(w)},{hasParentParens:i})}case"BindingPipe":{let{exp:c,name:g,args:u}=s,v=l(c),m=b(/\S/,b(/\|/,N(v))+1),f=p("Identifier",{name:g},{start:m,end:m+g.length}),w=u.map(l);return p("NGPipeExpression",{left:v,right:f,arguments:w},{start:O(v),end:N(w.length===0?f:t.getLast(w))},{hasParentParens:i})}case"Chain":{let{expressions:c}=s;return p("NGChainedExpression",{expressions:c.map(l)},s.span,{hasParentParens:i})}case"Comment":{let{value:c}=s;return p("CommentLine",{value:c},s.span,{processSpan:!1})}case"Conditional":{let{condition:c,trueExp:g,falseExp:u}=s,v=l(c),m=l(g),f=l(u);return p("ConditionalExpression",{test:v,consequent:m,alternate:f},{start:O(v),end:N(f)},{hasParentParens:i})}case"EmptyExpr":return p("NGEmptyExpression",{},s.span,{hasParentParens:i});case"FunctionCall":{let{target:c,args:g}=s,u=g.length===1?[P(g[0])]:g.map(l),v=l(c);return p("CallExpression",{callee:v,arguments:u},{start:O(v),end:s.span.end},{hasParentParens:i})}case"ImplicitReceiver":return p("ThisExpression",{},s.span,{hasParentParens:i});case"KeyedRead":{let{key:c}=s,g=Object.prototype.hasOwnProperty.call(s,"receiver")?s.receiver:s.obj,u=l(c);return x(g,u,{computed:!0,optional:!1},{end:s.span.end,hasParentParens:i})}case"LiteralArray":{let{expressions:c}=s;return p("ArrayExpression",{elements:c.map(l)},s.span,{hasParentParens:i})}case"LiteralMap":{let{keys:c,values:g}=s,u=g.map(m=>l(m)),v=c.map((m,f)=>{let{key:w,quoted:o}=m,d=u[f],y=b(/\S/,f===0?s.span.start+1:b(/,/,N(u[f-1]))+1),C=A(/\S/,A(/:/,O(d)-1)-1)+1,E={start:y,end:C},I=o?p("StringLiteral",{value:w},E):p("Identifier",{name:w},E),j=I.end3&&arguments[3]!==void 0?arguments[3]:{},f=Object.assign(Object.assign({type:c},r(u,a,v,m)),g);switch(c){case"Identifier":{let w=f;w.loc.identifierName=w.name;break}case"NumericLiteral":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}case"StringLiteral":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}}return f}function x(c,g,u){let{end:v=N(g),hasParentParens:m=!1}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};if(_(c)||c.span.start===g.start)return g;let f=l(c),w=R(f);return p(u.optional||w?"OptionalMemberExpression":"MemberExpression",Object.assign({object:f,property:g,computed:u.computed},u.optional?{optional:!0}:w?{optional:!1}:null),{start:O(f),end:v},{hasParentParens:m})}function A(c,g){return t.findFrontChar(c,g,a.text)}function b(c,g){return t.findBackChar(c,g,a.text)}function _(c){return c.span.start>=c.span.end||/^\s+$/.test(a.text.slice(c.span.start,c.span.end))}function R(c){return(c.type==="OptionalCallExpression"||c.type==="OptionalMemberExpression")&&!T(c)}function T(c){return c.extra&&c.extra.parenthesized}function O(c){return T(c)?c.extra.parenStart:c.start}function N(c){return T(c)?c.extra.parenEnd:c.end}};e.transform=n;function r(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!i){let{start:x,end:A}=s;return{start:x,end:A,loc:{start:a.locator.locationForIndex(x),end:a.locator.locationForIndex(A)}}}let{outerSpan:l,innerSpan:P,hasParens:p}=t.fitSpans(s,a.text,h);return Object.assign({start:P.start,end:P.end,loc:{start:a.locator.locationForIndex(P.start),end:a.locator.locationForIndex(P.end)}},p&&{extra:{parenthesized:!0,parenStart:l.start,parenEnd:l.end}})}e.transformSpan=r}}),Nn=W({"node_modules/angular-estree-parser/lib/transform-microsyntax.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.transformTemplateBindings=void 0;var t=(et(),Ne(Xe)),n=sn(),r=dt();function s(a,i){a.forEach(N);let[h]=a,{key:l}=h,P=i.text.slice(h.sourceSpan.start,h.sourceSpan.end).trim().length===0?a.slice(1):a,p=[],x=null;for(let u=0;uObject.assign(Object.assign({},d),n.transformSpan({start:d.start,end:y},i)),w=d=>Object.assign(Object.assign({},f(d,m.end)),{alias:m}),o=p.pop();if(o.type==="NGMicrosyntaxExpression")p.push(w(o));else if(o.type==="NGMicrosyntaxKeyedExpression"){let d=w(o.expression);p.push(f(Object.assign(Object.assign({},o),{expression:d}),d.end))}else throw new Error("Unexpected type ".concat(o.type))}else p.push(A(v,u));x=v}return _("NGMicrosyntax",{body:p},p.length===0?a[0].sourceSpan:{start:p[0].start,end:p[p.length-1].end});function A(u,v){if(T(u)){let{key:m,value:f}=u;return f?v===0?_("NGMicrosyntaxExpression",{expression:b(f.ast),alias:null},f.sourceSpan):_("NGMicrosyntaxKeyedExpression",{key:_("NGMicrosyntaxKey",{name:R(m.source)},m.span),expression:_("NGMicrosyntaxExpression",{expression:b(f.ast),alias:null},f.sourceSpan)},{start:m.span.start,end:f.sourceSpan.end}):_("NGMicrosyntaxKey",{name:R(m.source)},m.span)}else{let{key:m,sourceSpan:f}=u;if(/^let\s$/.test(i.text.slice(f.start,f.start+4))){let{value:o}=u;return _("NGMicrosyntaxLet",{key:_("NGMicrosyntaxKey",{name:m.source},m.span),value:o?_("NGMicrosyntaxKey",{name:o.source},o.span):null},{start:f.start,end:o?o.span.end:m.span.end})}else{let o=g(u);return _("NGMicrosyntaxAs",{key:_("NGMicrosyntaxKey",{name:o.source},o.span),alias:_("NGMicrosyntaxKey",{name:m.source},m.span)},{start:o.span.start,end:m.span.end})}}}function b(u){return n.transform(u,i)}function _(u,v,m){let f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Object.assign(Object.assign({type:u},n.transformSpan(m,i,f)),v)}function R(u){return r.toLowerCamelCase(u.slice(l.source.length))}function T(u){return u instanceof t.ExpressionBinding}function O(u){return u instanceof t.VariableBinding}function N(u){c(u.key.span),O(u)&&u.value&&c(u.value.span)}function c(u){if(i.text[u.start]!=='"'&&i.text[u.start]!=="'")return;let v=i.text[u.start],m=!1;for(let f=u.start+1;fn.transform(N,R),O=T(b);return O.comments=_.map(T),O}function i(x){return a(x,s.parseNgBinding)}e.parseBinding=i;function h(x){return a(x,s.parseNgSimpleBinding)}e.parseSimpleBinding=h;function l(x){return a(x,s.parseNgInterpolation)}e.parseInterpolation=l;function P(x){return a(x,s.parseNgAction)}e.parseAction=P;function p(x){return r.transformTemplateBindings(s.parseNgTemplateBindings(x),new t.Context(x))}e.parseTemplateBindings=p}}),Ln=W({"src/language-js/parse/angular.js"(e,t){L();var{locStart:n,locEnd:r}=hn();function s(a){return{astFormat:"estree",parse:(h,l,P)=>{let p=bn(),x=a(h,p);return{type:"NGRoot",node:P.parser==="__ng_action"&&x.type!=="NGChainedExpression"?Object.assign(Object.assign({},x),{},{type:"NGChainedExpression",expressions:[x]}):x}},locStart:n,locEnd:r}}t.exports={parsers:{__ng_action:s((a,i)=>i.parseAction(a)),__ng_binding:s((a,i)=>i.parseBinding(a)),__ng_interpolation:s((a,i)=>i.parseInterpolation(a)),__ng_directive:s((a,i)=>i.parseTemplateBindings(a))}}}}),Rn=Ln();export{Rn as default}; diff --git a/node_modules/prettier/esm/parser-babel.mjs b/node_modules/prettier/esm/parser-babel.mjs new file mode 100644 index 0000000..a5892ee --- /dev/null +++ b/node_modules/prettier/esm/parser-babel.mjs @@ -0,0 +1,27 @@ +"use strict";var b=(h,u)=>()=>(u||h((u={exports:{}}).exports,u),u.exports);var J=b((pf,Gr)=>{var vt=function(h){return h&&h.Math==Math&&h};Gr.exports=vt(typeof globalThis=="object"&&globalThis)||vt(typeof window=="object"&&window)||vt(typeof self=="object"&&self)||vt(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var be=b((ff,Xr)=>{Xr.exports=function(h){try{return!!h()}catch{return!0}}});var Me=b((df,Jr)=>{var Yh=be();Jr.exports=!Yh(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var St=b((mf,Yr)=>{var $h=be();Yr.exports=!$h(function(){var h=function(){}.bind();return typeof h!="function"||h.hasOwnProperty("prototype")})});var Nt=b((yf,$r)=>{var Qh=St(),wt=Function.prototype.call;$r.exports=Qh?wt.bind(wt):function(){return wt.apply(wt,arguments)}});var ti=b(ei=>{"use strict";var Qr={}.propertyIsEnumerable,Zr=Object.getOwnPropertyDescriptor,Zh=Zr&&!Qr.call({1:2},1);ei.f=Zh?function(u){var p=Zr(this,u);return!!p&&p.enumerable}:Qr});var ds=b((gf,si)=>{si.exports=function(h,u){return{enumerable:!(h&1),configurable:!(h&2),writable:!(h&4),value:u}}});var le=b((Af,ai)=>{var ri=St(),ii=Function.prototype,el=ii.bind,ms=ii.call,tl=ri&&el.bind(ms,ms);ai.exports=ri?function(h){return h&&tl(h)}:function(h){return h&&function(){return ms.apply(h,arguments)}}});var It=b((Pf,oi)=>{var ni=le(),sl=ni({}.toString),rl=ni("".slice);oi.exports=function(h){return rl(sl(h),8,-1)}});var li=b((Tf,hi)=>{var il=J(),al=le(),nl=be(),ol=It(),ys=il.Object,hl=al("".split);hi.exports=nl(function(){return!ys("z").propertyIsEnumerable(0)})?function(h){return ol(h)=="String"?hl(h,""):ys(h)}:ys});var xs=b((Ef,ui)=>{var ll=J(),ul=ll.TypeError;ui.exports=function(h){if(h==null)throw ul("Can't call method on "+h);return h}});var kt=b((bf,ci)=>{var cl=li(),pl=xs();ci.exports=function(h){return cl(pl(h))}});var ue=b((Cf,pi)=>{pi.exports=function(h){return typeof h=="function"}});var Re=b((vf,fi)=>{var fl=ue();fi.exports=function(h){return typeof h=="object"?h!==null:fl(h)}});var rt=b((Sf,di)=>{var gs=J(),dl=ue(),ml=function(h){return dl(h)?h:void 0};di.exports=function(h,u){return arguments.length<2?ml(gs[h]):gs[h]&&gs[h][u]}});var yi=b((wf,mi)=>{var yl=le();mi.exports=yl({}.isPrototypeOf)});var gi=b((Nf,xi)=>{var xl=rt();xi.exports=xl("navigator","userAgent")||""});var vi=b((If,Ci)=>{var bi=J(),As=gi(),Ai=bi.process,Pi=bi.Deno,Ti=Ai&&Ai.versions||Pi&&Pi.version,Ei=Ti&&Ti.v8,fe,Dt;Ei&&(fe=Ei.split("."),Dt=fe[0]>0&&fe[0]<4?1:+(fe[0]+fe[1]));!Dt&&As&&(fe=As.match(/Edge\/(\d+)/),(!fe||fe[1]>=74)&&(fe=As.match(/Chrome\/(\d+)/),fe&&(Dt=+fe[1])));Ci.exports=Dt});var Ps=b((kf,wi)=>{var Si=vi(),gl=be();wi.exports=!!Object.getOwnPropertySymbols&&!gl(function(){var h=Symbol();return!String(h)||!(Object(h)instanceof Symbol)||!Symbol.sham&&Si&&Si<41})});var Ts=b((Df,Ni)=>{var Al=Ps();Ni.exports=Al&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Es=b((Ff,Ii)=>{var Pl=J(),Tl=rt(),El=ue(),bl=yi(),Cl=Ts(),vl=Pl.Object;Ii.exports=Cl?function(h){return typeof h=="symbol"}:function(h){var u=Tl("Symbol");return El(u)&&bl(u.prototype,vl(h))}});var Di=b((Lf,ki)=>{var Sl=J(),wl=Sl.String;ki.exports=function(h){try{return wl(h)}catch{return"Object"}}});var Ft=b((Of,Fi)=>{var Nl=J(),Il=ue(),kl=Di(),Dl=Nl.TypeError;Fi.exports=function(h){if(Il(h))return h;throw Dl(kl(h)+" is not a function")}});var Oi=b((Bf,Li)=>{var Fl=Ft();Li.exports=function(h,u){var p=h[u];return p==null?void 0:Fl(p)}});var Mi=b((Mf,Bi)=>{var Ll=J(),bs=Nt(),Cs=ue(),vs=Re(),Ol=Ll.TypeError;Bi.exports=function(h,u){var p,d;if(u==="string"&&Cs(p=h.toString)&&!vs(d=bs(p,h))||Cs(p=h.valueOf)&&!vs(d=bs(p,h))||u!=="string"&&Cs(p=h.toString)&&!vs(d=bs(p,h)))return d;throw Ol("Can't convert object to primitive value")}});var ji=b((Rf,Ri)=>{Ri.exports=!1});var Lt=b((jf,Ui)=>{var qi=J(),Bl=Object.defineProperty;Ui.exports=function(h,u){try{Bl(qi,h,{value:u,configurable:!0,writable:!0})}catch{qi[h]=u}return u}});var Ot=b((qf,zi)=>{var Ml=J(),Rl=Lt(),_i="__core-js_shared__",jl=Ml[_i]||Rl(_i,{});zi.exports=jl});var Ss=b((Uf,Vi)=>{var ql=ji(),Ki=Ot();(Vi.exports=function(h,u){return Ki[h]||(Ki[h]=u!==void 0?u:{})})("versions",[]).push({version:"3.22.2",mode:ql?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var ws=b((_f,Hi)=>{var Ul=J(),_l=xs(),zl=Ul.Object;Hi.exports=function(h){return zl(_l(h))}});var Ie=b((zf,Wi)=>{var Kl=le(),Vl=ws(),Hl=Kl({}.hasOwnProperty);Wi.exports=Object.hasOwn||function(u,p){return Hl(Vl(u),p)}});var Ns=b((Kf,Gi)=>{var Wl=le(),Gl=0,Xl=Math.random(),Jl=Wl(1 .toString);Gi.exports=function(h){return"Symbol("+(h===void 0?"":h)+")_"+Jl(++Gl+Xl,36)}});var it=b((Vf,Qi)=>{var Yl=J(),$l=Ss(),Xi=Ie(),Ql=Ns(),Ji=Ps(),$i=Ts(),Xe=$l("wks"),je=Yl.Symbol,Yi=je&&je.for,Zl=$i?je:je&&je.withoutSetter||Ql;Qi.exports=function(h){if(!Xi(Xe,h)||!(Ji||typeof Xe[h]=="string")){var u="Symbol."+h;Ji&&Xi(je,h)?Xe[h]=je[h]:$i&&Yi?Xe[h]=Yi(u):Xe[h]=Zl(u)}return Xe[h]}});var sa=b((Hf,ta)=>{var eu=J(),tu=Nt(),Zi=Re(),ea=Es(),su=Oi(),ru=Mi(),iu=it(),au=eu.TypeError,nu=iu("toPrimitive");ta.exports=function(h,u){if(!Zi(h)||ea(h))return h;var p=su(h,nu),d;if(p){if(u===void 0&&(u="default"),d=tu(p,h,u),!Zi(d)||ea(d))return d;throw au("Can't convert object to primitive value")}return u===void 0&&(u="number"),ru(h,u)}});var Is=b((Wf,ra)=>{var ou=sa(),hu=Es();ra.exports=function(h){var u=ou(h,"string");return hu(u)?u:u+""}});var na=b((Gf,aa)=>{var lu=J(),ia=Re(),ks=lu.document,uu=ia(ks)&&ia(ks.createElement);aa.exports=function(h){return uu?ks.createElement(h):{}}});var Ds=b((Xf,oa)=>{var cu=Me(),pu=be(),fu=na();oa.exports=!cu&&!pu(function(){return Object.defineProperty(fu("div"),"a",{get:function(){return 7}}).a!=7})});var Fs=b(la=>{var du=Me(),mu=Nt(),yu=ti(),xu=ds(),gu=kt(),Au=Is(),Pu=Ie(),Tu=Ds(),ha=Object.getOwnPropertyDescriptor;la.f=du?ha:function(u,p){if(u=gu(u),p=Au(p),Tu)try{return ha(u,p)}catch{}if(Pu(u,p))return xu(!mu(yu.f,u,p),u[p])}});var ca=b((Yf,ua)=>{var Eu=Me(),bu=be();ua.exports=Eu&&bu(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Ls=b(($f,fa)=>{var pa=J(),Cu=Re(),vu=pa.String,Su=pa.TypeError;fa.exports=function(h){if(Cu(h))return h;throw Su(vu(h)+" is not an object")}});var js=b(ma=>{var wu=J(),Nu=Me(),Iu=Ds(),ku=ca(),Bt=Ls(),da=Is(),Du=wu.TypeError,Os=Object.defineProperty,Fu=Object.getOwnPropertyDescriptor,Bs="enumerable",Ms="configurable",Rs="writable";ma.f=Nu?ku?function(u,p,d){if(Bt(u),p=da(p),Bt(d),typeof u=="function"&&p==="prototype"&&"value"in d&&Rs in d&&!d[Rs]){var m=Fu(u,p);m&&m[Rs]&&(u[p]=d.value,d={configurable:Ms in d?d[Ms]:m[Ms],enumerable:Bs in d?d[Bs]:m[Bs],writable:!1})}return Os(u,p,d)}:Os:function(u,p,d){if(Bt(u),p=da(p),Bt(d),Iu)try{return Os(u,p,d)}catch{}if("get"in d||"set"in d)throw Du("Accessors not supported");return"value"in d&&(u[p]=d.value),u}});var Mt=b((Zf,ya)=>{var Lu=Me(),Ou=js(),Bu=ds();ya.exports=Lu?function(h,u,p){return Ou.f(h,u,Bu(1,p))}:function(h,u,p){return h[u]=p,h}});var Rt=b((ed,xa)=>{var Mu=le(),Ru=ue(),qs=Ot(),ju=Mu(Function.toString);Ru(qs.inspectSource)||(qs.inspectSource=function(h){return ju(h)});xa.exports=qs.inspectSource});var Pa=b((td,Aa)=>{var qu=J(),Uu=ue(),_u=Rt(),ga=qu.WeakMap;Aa.exports=Uu(ga)&&/native code/.test(_u(ga))});var ba=b((sd,Ea)=>{var zu=Ss(),Ku=Ns(),Ta=zu("keys");Ea.exports=function(h){return Ta[h]||(Ta[h]=Ku(h))}});var Us=b((rd,Ca)=>{Ca.exports={}});var ka=b((id,Ia)=>{var Vu=Pa(),Na=J(),_s=le(),Hu=Re(),Wu=Mt(),zs=Ie(),Ks=Ot(),Gu=ba(),Xu=Us(),va="Object already initialized",Hs=Na.TypeError,Ju=Na.WeakMap,jt,at,qt,Yu=function(h){return qt(h)?at(h):jt(h,{})},$u=function(h){return function(u){var p;if(!Hu(u)||(p=at(u)).type!==h)throw Hs("Incompatible receiver, "+h+" required");return p}};Vu||Ks.state?(ke=Ks.state||(Ks.state=new Ju),Sa=_s(ke.get),Vs=_s(ke.has),wa=_s(ke.set),jt=function(h,u){if(Vs(ke,h))throw new Hs(va);return u.facade=h,wa(ke,h,u),u},at=function(h){return Sa(ke,h)||{}},qt=function(h){return Vs(ke,h)}):(qe=Gu("state"),Xu[qe]=!0,jt=function(h,u){if(zs(h,qe))throw new Hs(va);return u.facade=h,Wu(h,qe,u),u},at=function(h){return zs(h,qe)?h[qe]:{}},qt=function(h){return zs(h,qe)});var ke,Sa,Vs,wa,qe;Ia.exports={set:jt,get:at,has:qt,enforce:Yu,getterFor:$u}});var La=b((ad,Fa)=>{var Ws=Me(),Qu=Ie(),Da=Function.prototype,Zu=Ws&&Object.getOwnPropertyDescriptor,Gs=Qu(Da,"name"),ec=Gs&&function(){}.name==="something",tc=Gs&&(!Ws||Ws&&Zu(Da,"name").configurable);Fa.exports={EXISTS:Gs,PROPER:ec,CONFIGURABLE:tc}});var ja=b((nd,Ra)=>{var sc=J(),Oa=ue(),rc=Ie(),Ba=Mt(),ic=Lt(),ac=Rt(),Ma=ka(),nc=La().CONFIGURABLE,oc=Ma.get,hc=Ma.enforce,lc=String(String).split("String");(Ra.exports=function(h,u,p,d){var m=d?!!d.unsafe:!1,x=d?!!d.enumerable:!1,A=d?!!d.noTargetGet:!1,g=d&&d.name!==void 0?d.name:u,E;if(Oa(p)&&(String(g).slice(0,7)==="Symbol("&&(g="["+String(g).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!rc(p,"name")||nc&&p.name!==g)&&Ba(p,"name",g),E=hc(p),E.source||(E.source=lc.join(typeof g=="string"?g:""))),h===sc){x?h[u]=p:ic(u,p);return}else m?!A&&h[u]&&(x=!0):delete h[u];x?h[u]=p:Ba(h,u,p)})(Function.prototype,"toString",function(){return Oa(this)&&oc(this).source||ac(this)})});var Xs=b((od,qa)=>{var uc=Math.ceil,cc=Math.floor;qa.exports=function(h){var u=+h;return u!==u||u===0?0:(u>0?cc:uc)(u)}});var _a=b((hd,Ua)=>{var pc=Xs(),fc=Math.max,dc=Math.min;Ua.exports=function(h,u){var p=pc(h);return p<0?fc(p+u,0):dc(p,u)}});var Ka=b((ld,za)=>{var mc=Xs(),yc=Math.min;za.exports=function(h){return h>0?yc(mc(h),9007199254740991):0}});var Ut=b((ud,Va)=>{var xc=Ka();Va.exports=function(h){return xc(h.length)}});var Ga=b((cd,Wa)=>{var gc=kt(),Ac=_a(),Pc=Ut(),Ha=function(h){return function(u,p,d){var m=gc(u),x=Pc(m),A=Ac(d,x),g;if(h&&p!=p){for(;x>A;)if(g=m[A++],g!=g)return!0}else for(;x>A;A++)if((h||A in m)&&m[A]===p)return h||A||0;return!h&&-1}};Wa.exports={includes:Ha(!0),indexOf:Ha(!1)}});var Ya=b((pd,Ja)=>{var Tc=le(),Js=Ie(),Ec=kt(),bc=Ga().indexOf,Cc=Us(),Xa=Tc([].push);Ja.exports=function(h,u){var p=Ec(h),d=0,m=[],x;for(x in p)!Js(Cc,x)&&Js(p,x)&&Xa(m,x);for(;u.length>d;)Js(p,x=u[d++])&&(~bc(m,x)||Xa(m,x));return m}});var Qa=b((fd,$a)=>{$a.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var en=b(Za=>{var vc=Ya(),Sc=Qa(),wc=Sc.concat("length","prototype");Za.f=Object.getOwnPropertyNames||function(u){return vc(u,wc)}});var sn=b(tn=>{tn.f=Object.getOwnPropertySymbols});var an=b((yd,rn)=>{var Nc=rt(),Ic=le(),kc=en(),Dc=sn(),Fc=Ls(),Lc=Ic([].concat);rn.exports=Nc("Reflect","ownKeys")||function(u){var p=kc.f(Fc(u)),d=Dc.f;return d?Lc(p,d(u)):p}});var hn=b((xd,on)=>{var nn=Ie(),Oc=an(),Bc=Fs(),Mc=js();on.exports=function(h,u,p){for(var d=Oc(u),m=Mc.f,x=Bc.f,A=0;A{var Rc=be(),jc=ue(),qc=/#|\.prototype\./,nt=function(h,u){var p=_c[Uc(h)];return p==Kc?!0:p==zc?!1:jc(u)?Rc(u):!!u},Uc=nt.normalize=function(h){return String(h).replace(qc,".").toLowerCase()},_c=nt.data={},zc=nt.NATIVE="N",Kc=nt.POLYFILL="P";ln.exports=nt});var $s=b((Ad,cn)=>{var Ys=J(),Vc=Fs().f,Hc=Mt(),Wc=ja(),Gc=Lt(),Xc=hn(),Jc=un();cn.exports=function(h,u){var p=h.target,d=h.global,m=h.stat,x,A,g,E,F,D;if(d?A=Ys:m?A=Ys[p]||Gc(p,{}):A=(Ys[p]||{}).prototype,A)for(g in u){if(F=u[g],h.noTargetGet?(D=Vc(A,g),E=D&&D.value):E=A[g],x=Jc(d?g:p+(m?".":"#")+g,h.forced),!x&&E!==void 0){if(typeof F==typeof E)continue;Xc(F,E)}(h.sham||E&&E.sham)&&Hc(F,"sham",!0),Wc(A,g,F,h)}}});var pn=b(()=>{var Yc=$s(),$c=J();Yc({global:!0},{globalThis:$c})});var Qs=b((Ed,fn)=>{var Qc=It();fn.exports=Array.isArray||function(u){return Qc(u)=="Array"}});var yn=b((bd,mn)=>{var dn=le(),Zc=Ft(),ep=St(),tp=dn(dn.bind);mn.exports=function(h,u){return Zc(h),u===void 0?h:ep?tp(h,u):function(){return h.apply(u,arguments)}}});var An=b((Cd,gn)=>{"use strict";var sp=J(),rp=Qs(),ip=Ut(),ap=yn(),np=sp.TypeError,xn=function(h,u,p,d,m,x,A,g){for(var E=m,F=0,D=A?ap(A,g):!1,C,M;F0&&rp(C))M=ip(C),E=xn(h,u,C,M,E,x-1)-1;else{if(E>=9007199254740991)throw np("Exceed the acceptable array length");h[E]=C}E++}F++}return E};gn.exports=xn});var En=b((vd,Tn)=>{var op=it(),hp=op("toStringTag"),Pn={};Pn[hp]="z";Tn.exports=String(Pn)==="[object z]"});var Cn=b((Sd,bn)=>{var lp=J(),up=En(),cp=ue(),_t=It(),pp=it(),fp=pp("toStringTag"),dp=lp.Object,mp=_t(function(){return arguments}())=="Arguments",yp=function(h,u){try{return h[u]}catch{}};bn.exports=up?_t:function(h){var u,p,d;return h===void 0?"Undefined":h===null?"Null":typeof(p=yp(u=dp(h),fp))=="string"?p:mp?_t(u):(d=_t(u))=="Object"&&cp(u.callee)?"Arguments":d}});var kn=b((wd,In)=>{var xp=le(),gp=be(),vn=ue(),Ap=Cn(),Pp=rt(),Tp=Rt(),Sn=function(){},Ep=[],wn=Pp("Reflect","construct"),Zs=/^\s*(?:class|function)\b/,bp=xp(Zs.exec),Cp=!Zs.exec(Sn),ot=function(u){if(!vn(u))return!1;try{return wn(Sn,Ep,u),!0}catch{return!1}},Nn=function(u){if(!vn(u))return!1;switch(Ap(u)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Cp||!!bp(Zs,Tp(u))}catch{return!0}};Nn.sham=!0;In.exports=!wn||gp(function(){var h;return ot(ot.call)||!ot(Object)||!ot(function(){h=!0})||h})?Nn:ot});var On=b((Nd,Ln)=>{var vp=J(),Dn=Qs(),Sp=kn(),wp=Re(),Np=it(),Ip=Np("species"),Fn=vp.Array;Ln.exports=function(h){var u;return Dn(h)&&(u=h.constructor,Sp(u)&&(u===Fn||Dn(u.prototype))?u=void 0:wp(u)&&(u=u[Ip],u===null&&(u=void 0))),u===void 0?Fn:u}});var Mn=b((Id,Bn)=>{var kp=On();Bn.exports=function(h,u){return new(kp(h))(u===0?0:u)}});pn();var Dp=$s(),Fp=An(),Lp=Ft(),Op=ws(),Bp=Ut(),Mp=Mn();Dp({target:"Array",proto:!0},{flatMap:function(u){var p=Op(this),d=Bp(p),m;return Lp(u),m=Mp(p,0),m.length=Fp(m,p,p,d,0,1,u,arguments.length>1?arguments[1]:void 0),m}});var Rn,jn,qn,Un,_n;function ht(h,u){return u||(u=h.slice(0)),Object.freeze(Object.defineProperties(h,{raw:{value:Object.freeze(u)}}))}var rr=Object.defineProperty,Rp=Object.getOwnPropertyDescriptor,ir=Object.getOwnPropertyNames,jp=Object.prototype.hasOwnProperty,zn=(h,u)=>function(){return h&&(u=(0,h[ir(h)[0]])(h=0)),u},W=(h,u)=>function(){return u||(0,h[ir(h)[0]])((u={exports:{}}).exports,u),u.exports},qp=(h,u)=>{for(var p in u)rr(h,p,{get:u[p],enumerable:!0})},Up=(h,u,p,d)=>{if(u&&typeof u=="object"||typeof u=="function")for(let m of ir(u))!jp.call(h,m)&&m!==p&&rr(h,m,{get:()=>u[m],enumerable:!(d=Rp(u,m))||d.enumerable});return h},_p=h=>Up(rr({},"__esModule",{value:!0}),h),H=zn({""(){}}),zp=W({"src/utils/try-combinations.js"(h,u){"use strict";H();function p(){let d;for(var m=arguments.length,x=new Array(m),A=0;A{let C=D&&D.backwards;if(F===!1)return!1;let{length:M}=E,L=F;for(;L>=0&&Lsr,arch:()=>Gp,cpus:()=>Qn,default:()=>ro,endianness:()=>Wn,freemem:()=>Yn,getNetworkInterfaces:()=>so,hostname:()=>Gn,loadavg:()=>Xn,networkInterfaces:()=>to,platform:()=>Xp,release:()=>eo,tmpDir:()=>er,tmpdir:()=>tr,totalmem:()=>$n,type:()=>Zn,uptime:()=>Jn});function Wn(){if(typeof zt>"u"){var h=new ArrayBuffer(2),u=new Uint8Array(h),p=new Uint16Array(h);if(u[0]=1,u[1]=2,p[0]===258)zt="BE";else if(p[0]===513)zt="LE";else throw new Error("unable to figure out endianess")}return zt}function Gn(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function Xn(){return[]}function Jn(){return 0}function Yn(){return Number.MAX_VALUE}function $n(){return Number.MAX_VALUE}function Qn(){return[]}function Zn(){return"Browser"}function eo(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function to(){}function so(){}function Gp(){return"javascript"}function Xp(){return"browser"}function er(){return"/tmp"}var zt,tr,sr,ro,Jp=zn({"node-modules-polyfills:os"(){H(),tr=er,sr=` +`,ro={EOL:sr,tmpdir:tr,tmpDir:er,networkInterfaces:to,getNetworkInterfaces:so,release:eo,type:Zn,cpus:Qn,totalmem:$n,freemem:Yn,uptime:Jn,loadavg:Xn,hostname:Gn,endianness:Wn}}}),Yp=W({"node-modules-polyfills-commonjs:os"(h,u){H();var p=(Jp(),_p(Hn));if(p&&p.default){u.exports=p.default;for(let d in p)u.exports[d]=p[d]}else p&&(u.exports=p)}}),$p=W({"node_modules/detect-newline/index.js"(h,u){"use strict";H();var p=d=>{if(typeof d!="string")throw new TypeError("Expected a string");let m=d.match(/(?:\r?\n)/g)||[];if(m.length===0)return;let x=m.filter(g=>g===`\r +`).length,A=m.length-x;return x>A?`\r +`:` +`};u.exports=p,u.exports.graceful=d=>typeof d=="string"&&p(d)||` +`}}),Qp=W({"node_modules/jest-docblock/build/index.js"(h){"use strict";H(),Object.defineProperty(h,"__esModule",{value:!0}),h.extract=L,h.parse=G,h.parseWithComments=Z,h.print=B,h.strip=k;function u(){let l=Yp();return u=function(){return l},l}function p(){let l=d($p());return p=function(){return l},l}function d(l){return l&&l.__esModule?l:{default:l}}var m=/\*\/$/,x=/^\/\*\*/,A=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,g=/(^|\s+)\/\/([^\r\n]*)/g,E=/^(\r?\n)+/,F=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,D=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,C=/(\r?\n|^) *\* ?/g,M=[];function L(l){let Y=l.match(A);return Y?Y[0].trimLeft():""}function k(l){let Y=l.match(A);return Y&&Y[0]?l.substring(Y[0].length):l}function G(l){return Z(l).pragmas}function Z(l){let Y=(0,p().default)(l)||u().EOL;l=l.replace(x,"").replace(m,"").replace(C,"$1");let ie="";for(;ie!==l;)ie=l,l=l.replace(F,"".concat(Y,"$1 $2").concat(Y));l=l.replace(E,"").trimRight();let Q=Object.create(null),Ce=l.replace(D,"").replace(E,"").trimRight(),ee;for(;ee=D.exec(l);){let U=ee[2].replace(g,"");typeof Q[ee[1]]=="string"||Array.isArray(Q[ee[1]])?Q[ee[1]]=M.concat(Q[ee[1]],U):Q[ee[1]]=U}return{comments:Ce,pragmas:Q}}function B(l){let{comments:Y="",pragmas:ie={}}=l,Q=(0,p().default)(Y)||u().EOL,Ce="/**",ee=" *",U=" */",O=Object.keys(ie),P=O.map(V=>j(V,ie[V])).reduce((V,$)=>V.concat($),[]).map(V=>ee+" "+V+Q).join("");if(!Y){if(O.length===0)return"";if(O.length===1&&!Array.isArray(ie[O[0]])){let V=ie[O[0]];return"".concat(Ce," ").concat(j(O[0],V)[0]).concat(U)}}let De=Y.split(Q).map(V=>"".concat(ee," ").concat(V)).join(Q)+Q;return Ce+Q+(Y?De:"")+(Y&&O.length?ee+Q:"")+P+U}function j(l,Y){return M.concat(Y).map(ie=>"@".concat(l," ").concat(ie).trim())}}}),Zp=W({"src/common/end-of-line.js"(h,u){"use strict";H();function p(A){let g=A.indexOf("\r");return g>=0?A.charAt(g+1)===` +`?"crlf":"cr":"lf"}function d(A){switch(A){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function m(A,g){let E;switch(g){case` +`:E=/\n/g;break;case"\r":E=/\r/g;break;case`\r +`:E=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(g),"."))}let F=A.match(E);return F?F.length:0}function x(A){return A.replace(/\r\n?/g,` +`)}u.exports={guessEndOfLine:p,convertEndOfLineToChars:d,countEndOfLineChars:m,normalizeEndOfLine:x}}}),ef=W({"src/language-js/pragma.js"(h,u){"use strict";H();var{parseWithComments:p,strip:d,extract:m,print:x}=Qp(),{normalizeEndOfLine:A}=Zp(),g=Kn();function E(C){let M=g(C);M&&(C=C.slice(M.length+1));let L=m(C),{pragmas:k,comments:G}=p(L);return{shebang:M,text:C,pragmas:k,comments:G}}function F(C){let M=Object.keys(E(C).pragmas);return M.includes("prettier")||M.includes("format")}function D(C){let{shebang:M,text:L,pragmas:k,comments:G}=E(C),Z=d(L),B=x({pragmas:Object.assign({format:""},k),comments:G.trimStart()});return(M?"".concat(M,` +`):"")+A(B)+(Z.startsWith(` +`)?` +`:` + +`)+Z}u.exports={hasPragma:F,insertPragma:D}}}),io=W({"src/utils/is-non-empty-array.js"(h,u){"use strict";H();function p(d){return Array.isArray(d)&&d.length>0}u.exports=p}}),ao=W({"src/language-js/loc.js"(h,u){"use strict";H();var p=io();function d(E,F){let{ignoreDecorators:D}=F||{};if(!D){let C=E.declaration&&E.declaration.decorators||E.decorators;if(p(C))return d(C[0])}return E.range?E.range[0]:E.start}function m(E){return E.range?E.range[1]:E.end}function x(E,F){let D=d(E);return Number.isInteger(D)&&D===d(F)}function A(E,F){let D=m(E);return Number.isInteger(D)&&D===m(F)}function g(E,F){return x(E,F)&&A(E,F)}u.exports={locStart:d,locEnd:m,hasSameLocStart:x,hasSameLoc:g}}}),no=W({"src/language-js/parse/utils/create-parser.js"(h,u){"use strict";H();var{hasPragma:p}=ef(),{locStart:d,locEnd:m}=ao();function x(A){return A=typeof A=="function"?{parse:A}:A,Object.assign({astFormat:"estree",hasPragma:p,locStart:d,locEnd:m},A)}u.exports=x}}),ar=W({"src/common/parser-create-error.js"(h,u){"use strict";H();function p(d,m){let x=new SyntaxError(d+" ("+m.start.line+":"+m.start.column+")");return x.loc=m,x}u.exports=p}}),oo=W({"src/language-js/parse/utils/create-babel-parse-error.js"(h,u){"use strict";H();var p=ar();function d(m){let{message:x,loc:A}=m;return p(x.replace(/ \(.*\)/,""),{start:{line:A?A.line:0,column:A?A.column+1:0}})}u.exports=d}}),tf=W({"src/language-js/utils/is-ts-keyword-type.js"(h,u){"use strict";H();function p(d){let{type:m}=d;return m.startsWith("TS")&&m.endsWith("Keyword")}u.exports=p}}),sf=W({"src/language-js/utils/is-block-comment.js"(h,u){"use strict";H();var p=new Set(["Block","CommentBlock","MultiLine"]),d=m=>p.has(m==null?void 0:m.type);u.exports=d}}),rf=W({"src/language-js/utils/is-type-cast-comment.js"(h,u){"use strict";H();var p=sf();function d(m){return p(m)&&m.value[0]==="*"&&/@type\b/.test(m.value)}u.exports=d}}),af=W({"src/utils/get-last.js"(h,u){"use strict";H();var p=d=>d[d.length-1];u.exports=p}}),ho=W({"src/language-js/parse/postprocess/visit-node.js"(h,u){"use strict";H();function p(d,m){if(Array.isArray(d)){for(let x=0;x{let L=F.get(M);return!L||!C.includes(L)}))&&d(E,"Leading decorators must be attached to a class declaration")}function x(g,E){g.kind!==167||g.modifiers&&!g.modifiers.some(C=>C.kind===126)||g.initializer&&E.value===null&&d(E,"Abstract property cannot have an initializer")}function A(g,E){let{esTreeNodeToTSNodeMap:F,tsNodeToESTreeNodeMap:D}=E.tsParseResult;p(g,C=>{let M=F.get(C);if(!M)return;let L=D.get(M);L===C&&(m(M,L,D),x(M,L))})}u.exports={throwErrorForInvalidNodes:A}}}),of=W({"src/language-js/parse/postprocess/index.js"(h,u){"use strict";H();var{locStart:p,locEnd:d}=ao(),m=tf(),x=rf(),A=af(),g=ho(),{throwErrorForInvalidNodes:E}=nf(),F=lo();function D(k,G){if(G.parser==="typescript"&&/@|abstract/.test(G.originalText)&&E(k,G),G.parser!=="typescript"&&G.parser!=="flow"&&G.parser!=="acorn"&&G.parser!=="espree"&&G.parser!=="meriyah"){let B=new Set;k=g(k,j=>{j.leadingComments&&j.leadingComments.some(x)&&B.add(p(j))}),k=g(k,j=>{if(j.type==="ParenthesizedExpression"){let{expression:l}=j;if(l.type==="TypeCastExpression")return l.range=j.range,l;let Y=p(j);if(!B.has(Y))return l.extra=Object.assign(Object.assign({},l.extra),{},{parenthesized:!0}),l}})}return k=g(k,B=>{switch(B.type){case"ChainExpression":return C(B.expression);case"LogicalExpression":{if(M(B))return L(B);break}case"VariableDeclaration":{let j=A(B.declarations);j&&j.init&&Z(B,j);break}case"TSParenthesizedType":return m(B.typeAnnotation)||B.typeAnnotation.type==="TSThisType"||(B.typeAnnotation.range=[p(B),d(B)]),B.typeAnnotation;case"TSTypeParameter":if(typeof B.name=="string"){let j=p(B);B.name={type:"Identifier",name:B.name,range:[j,j+B.name.length]}}break;case"ObjectExpression":if(G.parser==="typescript"){let j=B.properties.find(l=>l.type==="Property"&&l.value.type==="TSEmptyBodyFunctionExpression");j&&F(j.value,"Unexpected token.")}break;case"SequenceExpression":{let j=A(B.expressions);B.range=[p(B),Math.min(d(j),d(B))];break}case"TopicReference":G.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:j}=B;if(G.parser==="meriyah"&&j&&j.type==="Identifier"){let l=G.originalText.slice(p(j),d(j));(l.startsWith('"')||l.startsWith("'"))&&(B.exported=Object.assign(Object.assign({},B.exported),{},{type:"Literal",value:B.exported.name,raw:l}))}break}}}),k;function Z(B,j){G.originalText[d(j)]!==";"&&(B.range=[p(B),d(j)])}}function C(k){switch(k.type){case"CallExpression":k.type="OptionalCallExpression",k.callee=C(k.callee);break;case"MemberExpression":k.type="OptionalMemberExpression",k.object=C(k.object);break;case"TSNonNullExpression":k.expression=C(k.expression);break}return k}function M(k){return k.type==="LogicalExpression"&&k.right.type==="LogicalExpression"&&k.operator===k.right.operator}function L(k){return M(k)?L({type:"LogicalExpression",operator:k.operator,left:L({type:"LogicalExpression",operator:k.operator,left:k.left,right:k.right.left,range:[p(k.left),d(k.right.left)]}),right:k.right.right,range:[p(k),d(k)]}):k}u.exports=D}}),uo=W({"node_modules/@babel/parser/lib/index.js"(h){"use strict";H(),Object.defineProperty(h,"__esModule",{value:!0});function u(t,e){if(t==null)return{};var s={},r=Object.keys(t),i,a;for(a=0;a=0)&&(s[i]=t[i]);return s}var p=class{constructor(t,e,s){this.line=void 0,this.column=void 0,this.index=void 0,this.line=t,this.column=e,this.index=s}},d=class{constructor(t,e){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=t,this.end=e}};function m(t,e){let{line:s,column:r,index:i}=t;return new p(s,r+e,i+e)}var x=Object.freeze({SyntaxError:"BABEL_PARSER_SYNTAX_ERROR",SourceTypeModuleError:"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"}),A=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t.length-1;return{get(){return t.reduce((s,r)=>s[r],this)},set(s){t.reduce((r,i,a)=>a===e?r[i]=s:r[i],this)}}},g=(t,e,s)=>Object.keys(s).map(r=>[r,s[r]]).filter(r=>{let[,i]=r;return!!i}).map(r=>{let[i,a]=r;return[i,typeof a=="function"?{value:a,enumerable:!1}:typeof a.reflect=="string"?Object.assign({},a,A(a.reflect.split("."))):a]}).reduce((r,i)=>{let[a,n]=i;return Object.defineProperty(r,a,Object.assign({configurable:!0},n))},Object.assign(new t,e)),E=t=>({ImportMetaOutsideModule:t(`import.meta may appear only with 'sourceType: "module"'`,{code:x.SourceTypeModuleError}),ImportOutsideModule:t(`'import' and 'export' may appear only with 'sourceType: "module"'`,{code:x.SourceTypeModuleError})}),F={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},D=t=>{let{type:e,prefix:s}=t;return e==="UpdateExpression"?F.UpdateExpression[String(s)]:F[e]},C=t=>({AccessorIsGenerator:t(e=>{let{kind:s}=e;return"A ".concat(s,"ter cannot be a generator.")}),ArgumentsInClass:t("'arguments' is only allowed in functions and class methods."),AsyncFunctionInSingleStatementContext:t("Async functions can only be declared at the top level or inside a block."),AwaitBindingIdentifier:t("Can not use 'await' as identifier inside an async function."),AwaitBindingIdentifierInStaticBlock:t("Can not use 'await' as identifier inside a static block."),AwaitExpressionFormalParameter:t("'await' is not allowed in async function parameters."),AwaitNotInAsyncContext:t("'await' is only allowed within async functions and at the top levels of modules."),AwaitNotInAsyncFunction:t("'await' is only allowed within async functions."),BadGetterArity:t("A 'get' accesor must not have any formal parameters."),BadSetterArity:t("A 'set' accesor must have exactly one formal parameter."),BadSetterRestParameter:t("A 'set' accesor function argument must not be a rest parameter."),ConstructorClassField:t("Classes may not have a field named 'constructor'."),ConstructorClassPrivateField:t("Classes may not have a private field named '#constructor'."),ConstructorIsAccessor:t("Class constructor may not be an accessor."),ConstructorIsAsync:t("Constructor can't be an async function."),ConstructorIsGenerator:t("Constructor can't be a generator."),DeclarationMissingInitializer:t(e=>{let{kind:s}=e;return"Missing initializer in ".concat(s," declaration.")}),DecoratorBeforeExport:t("Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax."),DecoratorConstructor:t("Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?"),DecoratorExportClass:t("Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead."),DecoratorSemicolon:t("Decorators must not be followed by a semicolon."),DecoratorStaticBlock:t("Decorators can't be used with a static block."),DeletePrivateField:t("Deleting a private field is not allowed."),DestructureNamedImport:t("ES2015 named imports do not destructure. Use another statement for destructuring after the import."),DuplicateConstructor:t("Duplicate constructor in the same class."),DuplicateDefaultExport:t("Only one default export allowed per module."),DuplicateExport:t(e=>{let{exportName:s}=e;return"`".concat(s,"` has already been exported. Exported identifiers must be unique.")}),DuplicateProto:t("Redefinition of __proto__ property."),DuplicateRegExpFlags:t("Duplicate regular expression flag."),ElementAfterRest:t("Rest element must be last element."),EscapedCharNotAnIdentifier:t("Invalid Unicode escape."),ExportBindingIsString:t(e=>{let{localName:s,exportName:r}=e;return"A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '".concat(s,"' as '").concat(r,"' } from 'some-module'`?")}),ExportDefaultFromAsIdentifier:t("'from' is not allowed as an identifier after 'export default'."),ForInOfLoopInitializer:t(e=>{let{type:s}=e;return"'".concat(s==="ForInStatement"?"for-in":"for-of","' loop variable declaration may not have an initializer.")}),ForOfAsync:t("The left-hand side of a for-of loop may not be 'async'."),ForOfLet:t("The left-hand side of a for-of loop may not start with 'let'."),GeneratorInSingleStatementContext:t("Generators can only be declared at the top level or inside a block."),IllegalBreakContinue:t(e=>{let{type:s}=e;return"Unsyntactic ".concat(s==="BreakStatement"?"break":"continue",".")}),IllegalLanguageModeDirective:t("Illegal 'use strict' directive in function with non-simple parameter list."),IllegalReturn:t("'return' outside of function."),ImportBindingIsString:t(e=>{let{importName:s}=e;return'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'.concat(s,'" as foo }`?')}),ImportCallArgumentTrailingComma:t("Trailing comma is disallowed inside import(...) arguments."),ImportCallArity:t(e=>{let{maxArgumentCount:s}=e;return"`import()` requires exactly ".concat(s===1?"one argument":"one or two arguments",".")}),ImportCallNotNewExpression:t("Cannot use new with import(...)."),ImportCallSpreadArgument:t("`...` is not allowed in `import()`."),IncompatibleRegExpUVFlags:t("The 'u' and 'v' regular expression flags cannot be enabled at the same time."),InvalidBigIntLiteral:t("Invalid BigIntLiteral."),InvalidCodePoint:t("Code point out of bounds."),InvalidCoverInitializedName:t("Invalid shorthand property initializer."),InvalidDecimal:t("Invalid decimal."),InvalidDigit:t(e=>{let{radix:s}=e;return"Expected number in radix ".concat(s,".")}),InvalidEscapeSequence:t("Bad character escape sequence."),InvalidEscapeSequenceTemplate:t("Invalid escape sequence in template."),InvalidEscapedReservedWord:t(e=>{let{reservedWord:s}=e;return"Escape sequence in keyword ".concat(s,".")}),InvalidIdentifier:t(e=>{let{identifierName:s}=e;return"Invalid identifier ".concat(s,".")}),InvalidLhs:t(e=>{let{ancestor:s}=e;return"Invalid left-hand side in ".concat(D(s),".")}),InvalidLhsBinding:t(e=>{let{ancestor:s}=e;return"Binding invalid left-hand side in ".concat(D(s),".")}),InvalidNumber:t("Invalid number."),InvalidOrMissingExponent:t("Floating-point numbers require a valid exponent after the 'e'."),InvalidOrUnexpectedToken:t(e=>{let{unexpected:s}=e;return"Unexpected character '".concat(s,"'.")}),InvalidParenthesizedAssignment:t("Invalid parenthesized assignment pattern."),InvalidPrivateFieldResolution:t(e=>{let{identifierName:s}=e;return"Private name #".concat(s," is not defined.")}),InvalidPropertyBindingPattern:t("Binding member expression."),InvalidRecordProperty:t("Only properties and spread elements are allowed in record definitions."),InvalidRestAssignmentPattern:t("Invalid rest operator's argument."),LabelRedeclaration:t(e=>{let{labelName:s}=e;return"Label '".concat(s,"' is already declared.")}),LetInLexicalBinding:t("'let' is not allowed to be used as a name in 'let' or 'const' declarations."),LineTerminatorBeforeArrow:t("No line break is allowed before '=>'."),MalformedRegExpFlags:t("Invalid regular expression flag."),MissingClassName:t("A class name is required."),MissingEqInAssignment:t("Only '=' operator can be used for specifying default value."),MissingSemicolon:t("Missing semicolon."),MissingPlugin:t(e=>{let{missingPlugin:s}=e;return"This experimental syntax requires enabling the parser plugin: ".concat(s.map(r=>JSON.stringify(r)).join(", "),".")}),MissingOneOfPlugins:t(e=>{let{missingPlugin:s}=e;return"This experimental syntax requires enabling one of the following parser plugin(s): ".concat(s.map(r=>JSON.stringify(r)).join(", "),".")}),MissingUnicodeEscape:t("Expecting Unicode escape sequence \\uXXXX."),MixingCoalesceWithLogical:t("Nullish coalescing operator(??) requires parens when mixing with logical operators."),ModuleAttributeDifferentFromType:t("The only accepted module attribute is `type`."),ModuleAttributeInvalidValue:t("Only string literals are allowed as module attribute values."),ModuleAttributesWithDuplicateKeys:t(e=>{let{key:s}=e;return'Duplicate key "'.concat(s,'" is not allowed in module attributes.')}),ModuleExportNameHasLoneSurrogate:t(e=>{let{surrogateCharCode:s}=e;return"An export name cannot include a lone surrogate, found '\\u".concat(s.toString(16),"'.")}),ModuleExportUndefined:t(e=>{let{localName:s}=e;return"Export '".concat(s,"' is not defined.")}),MultipleDefaultsInSwitch:t("Multiple default clauses."),NewlineAfterThrow:t("Illegal newline after throw."),NoCatchOrFinally:t("Missing catch or finally clause."),NumberIdentifier:t("Identifier directly after number."),NumericSeparatorInEscapeSequence:t("Numeric separators are not allowed inside unicode escape sequences or hex escape sequences."),ObsoleteAwaitStar:t("'await*' has been removed from the async functions proposal. Use Promise.all() instead."),OptionalChainingNoNew:t("Constructors in/after an Optional Chain are not allowed."),OptionalChainingNoTemplate:t("Tagged Template Literals are not allowed in optionalChain."),OverrideOnConstructor:t("'override' modifier cannot appear on a constructor declaration."),ParamDupe:t("Argument name clash."),PatternHasAccessor:t("Object pattern can't contain getter or setter."),PatternHasMethod:t("Object pattern can't contain methods."),PrivateInExpectedIn:t(e=>{let{identifierName:s}=e;return"Private names are only allowed in property accesses (`obj.#".concat(s,"`) or in `in` expressions (`#").concat(s," in obj`).")}),PrivateNameRedeclaration:t(e=>{let{identifierName:s}=e;return"Duplicate private name #".concat(s,".")}),RecordExpressionBarIncorrectEndSyntaxType:t("Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),RecordExpressionBarIncorrectStartSyntaxType:t("Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),RecordExpressionHashIncorrectStartSyntaxType:t("Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'."),RecordNoProto:t("'__proto__' is not allowed in Record expressions."),RestTrailingComma:t("Unexpected trailing comma after rest element."),SloppyFunction:t("In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement."),StaticPrototype:t("Classes may not have static property named prototype."),SuperNotAllowed:t("`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?"),SuperPrivateField:t("Private fields can't be accessed on super."),TrailingDecorator:t("Decorators must be attached to a class element."),TupleExpressionBarIncorrectEndSyntaxType:t("Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),TupleExpressionBarIncorrectStartSyntaxType:t("Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),TupleExpressionHashIncorrectStartSyntaxType:t("Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'."),UnexpectedArgumentPlaceholder:t("Unexpected argument placeholder."),UnexpectedAwaitAfterPipelineBody:t('Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.'),UnexpectedDigitAfterHash:t("Unexpected digit after hash token."),UnexpectedImportExport:t("'import' and 'export' may only appear at the top level."),UnexpectedKeyword:t(e=>{let{keyword:s}=e;return"Unexpected keyword '".concat(s,"'.")}),UnexpectedLeadingDecorator:t("Leading decorators must be attached to a class declaration."),UnexpectedLexicalDeclaration:t("Lexical declaration cannot appear in a single-statement context."),UnexpectedNewTarget:t("`new.target` can only be used in functions or class properties."),UnexpectedNumericSeparator:t("A numeric separator is only allowed between two digits."),UnexpectedPrivateField:t("Unexpected private name."),UnexpectedReservedWord:t(e=>{let{reservedWord:s}=e;return"Unexpected reserved word '".concat(s,"'.")}),UnexpectedSuper:t("'super' is only allowed in object methods and classes."),UnexpectedToken:t(e=>{let{expected:s,unexpected:r}=e;return"Unexpected token".concat(r?" '".concat(r,"'."):"").concat(s?', expected "'.concat(s,'"'):"")}),UnexpectedTokenUnaryExponentiation:t("Illegal expression. Wrap left hand side or entire exponentiation in parentheses."),UnsupportedBind:t("Binding should be performed on object property."),UnsupportedDecoratorExport:t("A decorated export must export a class declaration."),UnsupportedDefaultExport:t("Only expressions, functions or classes are allowed as the `default` export."),UnsupportedImport:t("`import` can only be used in `import()` or `import.meta`."),UnsupportedMetaProperty:t(e=>{let{target:s,onlyValidPropertyName:r}=e;return"The only valid meta property for ".concat(s," is ").concat(s,".").concat(r,".")}),UnsupportedParameterDecorator:t("Decorators cannot be used to decorate parameters."),UnsupportedPropertyDecorator:t("Decorators cannot be used to decorate object literal properties."),UnsupportedSuper:t("'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])."),UnterminatedComment:t("Unterminated comment."),UnterminatedRegExp:t("Unterminated regular expression."),UnterminatedString:t("Unterminated string constant."),UnterminatedTemplate:t("Unterminated template."),VarRedeclaration:t(e=>{let{identifierName:s}=e;return"Identifier '".concat(s,"' has already been declared.")}),YieldBindingIdentifier:t("Can not use 'yield' as identifier inside a generator."),YieldInParameter:t("Yield expression is not allowed in formal parameters."),ZeroDigitNumericSeparator:t("Numeric separator can not be used after leading 0.")}),M=t=>({StrictDelete:t("Deleting local variable in strict mode."),StrictEvalArguments:t(e=>{let{referenceName:s}=e;return"Assigning to '".concat(s,"' in strict mode.")}),StrictEvalArgumentsBinding:t(e=>{let{bindingName:s}=e;return"Binding '".concat(s,"' in strict mode.")}),StrictFunction:t("In strict mode code, functions can only be declared at top level or inside a block."),StrictNumericEscape:t("The only valid numeric escape in strict mode is '\\0'."),StrictOctalLiteral:t("Legacy octal literals are not allowed in strict mode."),StrictWith:t("'with' in strict mode.")}),L=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]),k=t=>({PipeBodyIsTighter:t("Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence."),PipeTopicRequiresHackPipes:t('Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'),PipeTopicUnbound:t("Topic reference is unbound; it must be inside a pipe body."),PipeTopicUnconfiguredToken:t(e=>{let{token:s}=e;return"Invalid topic token ".concat(s,". In order to use ").concat(s,' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "').concat(s,'" }.')}),PipeTopicUnused:t("Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once."),PipeUnparenthesizedBody:t(e=>{let{type:s}=e;return"Hack-style pipe body cannot be an unparenthesized ".concat(D({type:s}),"; please wrap it in parentheses.")}),PipelineBodyNoArrow:t('Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.'),PipelineBodySequenceExpression:t("Pipeline body may not be a comma-separated sequence expression."),PipelineHeadSequenceExpression:t("Pipeline head should not be a comma-separated sequence expression."),PipelineTopicUnused:t("Pipeline is in topic style but does not use topic reference."),PrimaryTopicNotAllowed:t("Topic reference was used in a lexical context without topic binding."),PrimaryTopicRequiresSmartPipeline:t('Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.')}),G=["toMessage"];function Z(t){let{toMessage:e}=t,s=u(t,G);return function r(i){let{loc:a,details:n}=i;return g(SyntaxError,Object.assign({},s,{loc:a}),{clone(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o.loc||{};return r({loc:new p("line"in c?c.line:this.loc.line,"column"in c?c.column:this.loc.column,"index"in c?c.index:this.loc.index),details:Object.assign({},this.details,o.details)})},details:{value:n,enumerable:!1},message:{get(){return"".concat(e(this.details)," (").concat(this.loc.line,":").concat(this.loc.column,")")},set(o){Object.defineProperty(this,"message",{value:o})}},pos:{reflect:"loc.index",enumerable:!0},missingPlugin:"missingPlugin"in n&&{reflect:"details.missingPlugin",enumerable:!0}})}}function B(t,e){return Object.assign({toMessage:typeof t=="string"?()=>t:t},e)}function j(t,e){if(Array.isArray(t))return i=>j(i,t[0]);let s=t(B),r={};for(let i of Object.keys(s))r[i]=Z(Object.assign({code:x.SyntaxError,reasonCode:i},e?{syntaxPlugin:e}:{},s[i]));return r}var l=Object.assign({},j(E),j(C),j(M),j(Rn||(Rn=ht(["pipelineOperator"])))(k)),{defineProperty:Y}=Object,ie=(t,e)=>Y(t,e,{enumerable:!1,value:t[e]});function Q(t){return ie(t.loc.start,"index"),ie(t.loc.end,"index"),t}var Ce=t=>class extends t{parse(){let e=Q(super.parse());return this.options.tokens&&(e.tokens=e.tokens.map(Q)),e}parseRegExpLiteral(e){let{pattern:s,flags:r}=e,i=null;try{i=new RegExp(s,r)}catch{}let a=this.estreeParseLiteral(i);return a.regex={pattern:s,flags:r},a}parseBigIntLiteral(e){let s;try{s=BigInt(e)}catch{s=null}let r=this.estreeParseLiteral(s);return r.bigint=String(r.value||e),r}parseDecimalLiteral(e){let r=this.estreeParseLiteral(null);return r.decimal=String(r.value||e),r}estreeParseLiteral(e){return this.parseLiteral(e,"Literal")}parseStringLiteral(e){return this.estreeParseLiteral(e)}parseNumericLiteral(e){return this.estreeParseLiteral(e)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(e){return this.estreeParseLiteral(e)}directiveToStmt(e){let s=e.value,r=this.startNodeAt(e.start,e.loc.start),i=this.startNodeAt(s.start,s.loc.start);return i.value=s.extra.expressionValue,i.raw=s.extra.raw,r.expression=this.finishNodeAt(i,"Literal",s.loc.end),r.directive=s.extra.raw.slice(1,-1),this.finishNodeAt(r,"ExpressionStatement",e.loc.end)}initFunction(e,s){super.initFunction(e,s),e.expression=!1}checkDeclaration(e){e!=null&&this.isObjectProperty(e)?this.checkDeclaration(e.value):super.checkDeclaration(e)}getObjectOrClassMethodParams(e){return e.value.params}isValidDirective(e){var s;return e.type==="ExpressionStatement"&&e.expression.type==="Literal"&&typeof e.expression.value=="string"&&!((s=e.expression.extra)!=null&&s.parenthesized)}parseBlockBody(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;ithis.directiveToStmt(n));e.body=a.concat(e.body),delete e.directives}pushClassMethod(e,s,r,i,a,n){this.parseMethod(s,r,i,a,n,"ClassMethod",!0),s.typeParameters&&(s.value.typeParameters=s.typeParameters,delete s.typeParameters),e.body.push(s)}parsePrivateName(){let e=super.parsePrivateName();return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(e):e}convertPrivateNameToPrivateIdentifier(e){let s=super.getPrivateNameSV(e);return e=e,delete e.id,e.name=s,e.type="PrivateIdentifier",e}isPrivateName(e){return this.getPluginOption("estree","classFeatures")?e.type==="PrivateIdentifier":super.isPrivateName(e)}getPrivateNameSV(e){return this.getPluginOption("estree","classFeatures")?e.name:super.getPrivateNameSV(e)}parseLiteral(e,s){let r=super.parseLiteral(e,s);return r.raw=r.extra.raw,delete r.extra,r}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;super.parseFunctionBody(e,s,r),e.expression=e.body.type!=="BlockStatement"}parseMethod(e,s,r,i,a,n){let o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1,c=this.startNode();return c.kind=e.kind,c=super.parseMethod(c,s,r,i,a,n,o),c.type="FunctionExpression",delete c.kind,e.value=c,n==="ClassPrivateMethod"&&(e.computed=!1),n="MethodDefinition",this.finishNode(e,n)}parseClassProperty(){let e=super.parseClassProperty(...arguments);return this.getPluginOption("estree","classFeatures")&&(e.type="PropertyDefinition"),e}parseClassPrivateProperty(){let e=super.parseClassPrivateProperty(...arguments);return this.getPluginOption("estree","classFeatures")&&(e.type="PropertyDefinition",e.computed=!1),e}parseObjectMethod(e,s,r,i,a){let n=super.parseObjectMethod(e,s,r,i,a);return n&&(n.type="Property",n.kind==="method"&&(n.kind="init"),n.shorthand=!1),n}parseObjectProperty(e,s,r,i,a){let n=super.parseObjectProperty(e,s,r,i,a);return n&&(n.kind="init",n.type="Property"),n}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:!1;if(e!=null&&this.isObjectProperty(e)){let{key:r,value:i}=e;this.isPrivateName(r)&&this.classScope.usePrivateName(this.getPrivateNameSV(r),r.loc.start),this.toAssignable(i,s)}else super.toAssignable(e,s)}toAssignableObjectExpressionProp(e){e.kind==="get"||e.kind==="set"?this.raise(l.PatternHasAccessor,{at:e.key}):e.method?this.raise(l.PatternHasMethod,{at:e.key}):super.toAssignableObjectExpressionProp(...arguments)}finishCallExpression(e,s){if(super.finishCallExpression(e,s),e.callee.type==="Import"){if(e.type="ImportExpression",e.source=e.arguments[0],this.hasPlugin("importAssertions")){var r;e.attributes=(r=e.arguments[1])!=null?r:null}delete e.arguments,delete e.callee}return e}toReferencedArguments(e){e.type!=="ImportExpression"&&super.toReferencedArguments(e)}parseExport(e){switch(super.parseExport(e),e.type){case"ExportAllDeclaration":e.exported=null;break;case"ExportNamedDeclaration":e.specifiers.length===1&&e.specifiers[0].type==="ExportNamespaceSpecifier"&&(e.type="ExportAllDeclaration",e.exported=e.specifiers[0].exported,delete e.specifiers);break}return e}parseSubscript(e,s,r,i,a){let n=super.parseSubscript(e,s,r,i,a);if(a.optionalChainMember){if((n.type==="OptionalMemberExpression"||n.type==="OptionalCallExpression")&&(n.type=n.type.substring(8)),a.stop){let o=this.startNodeAtNode(n);return o.expression=n,this.finishNode(o,"ChainExpression")}}else(n.type==="MemberExpression"||n.type==="CallExpression")&&(n.optional=!1);return n}hasPropertyAsPrivateName(e){return e.type==="ChainExpression"&&(e=e.expression),super.hasPropertyAsPrivateName(e)}isOptionalChain(e){return e.type==="ChainExpression"}isObjectProperty(e){return e.type==="Property"&&e.kind==="init"&&!e.method}isObjectMethod(e){return e.method||e.kind==="get"||e.kind==="set"}finishNodeAt(e,s,r){return Q(super.finishNodeAt(e,s,r))}resetEndLocation(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;super.resetEndLocation(e,s),Q(e)}},ee=class{constructor(t,e){this.token=void 0,this.preserveSpace=void 0,this.token=t,this.preserveSpace=!!e}},U={brace:new ee("{"),j_oTag:new ee("...",!0)};U.template=new ee("`",!0);var O=!0,P=!0,De=!0,V=!0,$=!0,me=!0,ce=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.rightAssociative=!!e.rightAssociative,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop!=null?e.binop:null,this.updateContext=null}},ae=new Map;function q(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.keyword=t;let s=w(t,e);return ae.set(t,s),s}function X(t,e){return w(t,{beforeExpr:O,binop:e})}var re=-1,ne=[],Ue=[],_e=[],oe=[],Je=[],Ye=[];function w(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++re,Ue.push(t),_e.push((s=e.binop)!=null?s:-1),oe.push((r=e.beforeExpr)!=null?r:!1),Je.push((i=e.startsExpr)!=null?i:!1),Ye.push((a=e.prefix)!=null?a:!1),ne.push(new ce(t,e)),re}function _(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++re,ae.set(t,re),Ue.push(t),_e.push((s=e.binop)!=null?s:-1),oe.push((r=e.beforeExpr)!=null?r:!1),Je.push((i=e.startsExpr)!=null?i:!1),Ye.push((a=e.prefix)!=null?a:!1),ne.push(new ce("name",e)),re}var co={bracketL:w("[",{beforeExpr:O,startsExpr:P}),bracketHashL:w("#[",{beforeExpr:O,startsExpr:P}),bracketBarL:w("[|",{beforeExpr:O,startsExpr:P}),bracketR:w("]"),bracketBarR:w("|]"),braceL:w("{",{beforeExpr:O,startsExpr:P}),braceBarL:w("{|",{beforeExpr:O,startsExpr:P}),braceHashL:w("#{",{beforeExpr:O,startsExpr:P}),braceR:w("}"),braceBarR:w("|}"),parenL:w("(",{beforeExpr:O,startsExpr:P}),parenR:w(")"),comma:w(",",{beforeExpr:O}),semi:w(";",{beforeExpr:O}),colon:w(":",{beforeExpr:O}),doubleColon:w("::",{beforeExpr:O}),dot:w("."),question:w("?",{beforeExpr:O}),questionDot:w("?."),arrow:w("=>",{beforeExpr:O}),template:w("template"),ellipsis:w("...",{beforeExpr:O}),backQuote:w("`",{startsExpr:P}),dollarBraceL:w("${",{beforeExpr:O,startsExpr:P}),templateTail:w("...`",{startsExpr:P}),templateNonTail:w("...${",{beforeExpr:O,startsExpr:P}),at:w("@"),hash:w("#",{startsExpr:P}),interpreterDirective:w("#!..."),eq:w("=",{beforeExpr:O,isAssign:V}),assign:w("_=",{beforeExpr:O,isAssign:V}),slashAssign:w("_=",{beforeExpr:O,isAssign:V}),xorAssign:w("_=",{beforeExpr:O,isAssign:V}),moduloAssign:w("_=",{beforeExpr:O,isAssign:V}),incDec:w("++/--",{prefix:$,postfix:me,startsExpr:P}),bang:w("!",{beforeExpr:O,prefix:$,startsExpr:P}),tilde:w("~",{beforeExpr:O,prefix:$,startsExpr:P}),doubleCaret:w("^^",{startsExpr:P}),doubleAt:w("@@",{startsExpr:P}),pipeline:X("|>",0),nullishCoalescing:X("??",1),logicalOR:X("||",1),logicalAND:X("&&",2),bitwiseOR:X("|",3),bitwiseXOR:X("^",4),bitwiseAND:X("&",5),equality:X("==/!=/===/!==",6),lt:X("/<=/>=",7),gt:X("/<=/>=",7),relational:X("/<=/>=",7),bitShift:X("<>/>>>",8),bitShiftL:X("<>/>>>",8),bitShiftR:X("<>/>>>",8),plusMin:w("+/-",{beforeExpr:O,binop:9,prefix:$,startsExpr:P}),modulo:w("%",{binop:10,startsExpr:P}),star:w("*",{binop:10}),slash:X("/",10),exponent:w("**",{beforeExpr:O,binop:11,rightAssociative:!0}),_in:q("in",{beforeExpr:O,binop:7}),_instanceof:q("instanceof",{beforeExpr:O,binop:7}),_break:q("break"),_case:q("case",{beforeExpr:O}),_catch:q("catch"),_continue:q("continue"),_debugger:q("debugger"),_default:q("default",{beforeExpr:O}),_else:q("else",{beforeExpr:O}),_finally:q("finally"),_function:q("function",{startsExpr:P}),_if:q("if"),_return:q("return",{beforeExpr:O}),_switch:q("switch"),_throw:q("throw",{beforeExpr:O,prefix:$,startsExpr:P}),_try:q("try"),_var:q("var"),_const:q("const"),_with:q("with"),_new:q("new",{beforeExpr:O,startsExpr:P}),_this:q("this",{startsExpr:P}),_super:q("super",{startsExpr:P}),_class:q("class",{startsExpr:P}),_extends:q("extends",{beforeExpr:O}),_export:q("export"),_import:q("import",{startsExpr:P}),_null:q("null",{startsExpr:P}),_true:q("true",{startsExpr:P}),_false:q("false",{startsExpr:P}),_typeof:q("typeof",{beforeExpr:O,prefix:$,startsExpr:P}),_void:q("void",{beforeExpr:O,prefix:$,startsExpr:P}),_delete:q("delete",{beforeExpr:O,prefix:$,startsExpr:P}),_do:q("do",{isLoop:De,beforeExpr:O}),_for:q("for",{isLoop:De}),_while:q("while",{isLoop:De}),_as:_("as",{startsExpr:P}),_assert:_("assert",{startsExpr:P}),_async:_("async",{startsExpr:P}),_await:_("await",{startsExpr:P}),_from:_("from",{startsExpr:P}),_get:_("get",{startsExpr:P}),_let:_("let",{startsExpr:P}),_meta:_("meta",{startsExpr:P}),_of:_("of",{startsExpr:P}),_sent:_("sent",{startsExpr:P}),_set:_("set",{startsExpr:P}),_static:_("static",{startsExpr:P}),_yield:_("yield",{startsExpr:P}),_asserts:_("asserts",{startsExpr:P}),_checks:_("checks",{startsExpr:P}),_exports:_("exports",{startsExpr:P}),_global:_("global",{startsExpr:P}),_implements:_("implements",{startsExpr:P}),_intrinsic:_("intrinsic",{startsExpr:P}),_infer:_("infer",{startsExpr:P}),_is:_("is",{startsExpr:P}),_mixins:_("mixins",{startsExpr:P}),_proto:_("proto",{startsExpr:P}),_require:_("require",{startsExpr:P}),_keyof:_("keyof",{startsExpr:P}),_readonly:_("readonly",{startsExpr:P}),_unique:_("unique",{startsExpr:P}),_abstract:_("abstract",{startsExpr:P}),_declare:_("declare",{startsExpr:P}),_enum:_("enum",{startsExpr:P}),_module:_("module",{startsExpr:P}),_namespace:_("namespace",{startsExpr:P}),_interface:_("interface",{startsExpr:P}),_type:_("type",{startsExpr:P}),_opaque:_("opaque",{startsExpr:P}),name:w("name",{startsExpr:P}),string:w("string",{startsExpr:P}),num:w("num",{startsExpr:P}),bigint:w("bigint",{startsExpr:P}),decimal:w("decimal",{startsExpr:P}),regexp:w("regexp",{startsExpr:P}),privateName:w("#name",{startsExpr:P}),eof:w("eof"),jsxName:w("jsxName"),jsxText:w("jsxText",{beforeExpr:!0}),jsxTagStart:w("jsxTagStart",{startsExpr:!0}),jsxTagEnd:w("jsxTagEnd"),placeholder:w("%%",{startsExpr:!0})};function K(t){return t>=93&&t<=128}function po(t){return t<=92}function ye(t){return t>=58&&t<=128}function nr(t){return t>=58&&t<=132}function fo(t){return oe[t]}function Kt(t){return Je[t]}function mo(t){return t>=29&&t<=33}function or(t){return t>=125&&t<=127}function yo(t){return t>=90&&t<=92}function Vt(t){return t>=58&&t<=92}function xo(t){return t>=39&&t<=59}function go(t){return t===34}function Ao(t){return Ye[t]}function Po(t){return t>=117&&t<=119}function To(t){return t>=120&&t<=126}function ve(t){return Ue[t]}function lt(t){return _e[t]}function Eo(t){return _e[t]!==-1}function bo(t){return t===57}function ut(t){return t>=24&&t<=25}function xe(t){return ne[t]}ne[8].updateContext=t=>{t.pop()},ne[5].updateContext=ne[7].updateContext=ne[23].updateContext=t=>{t.push(U.brace)},ne[22].updateContext=t=>{t[t.length-1]===U.template?t.pop():t.push(U.template)},ne[138].updateContext=t=>{t.push(U.j_expr,U.j_oTag)};var Ht="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",hr="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F",Co=new RegExp("["+Ht+"]"),vo=new RegExp("["+Ht+hr+"]");Ht=hr=null;var lr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],So=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function Wt(t,e){let s=65536;for(let r=0,i=e.length;rt)return!1;if(s+=e[r+1],s>=t)return!0}return!1}function ge(t){return t<65?t===36:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&Co.test(String.fromCharCode(t)):Wt(t,lr)}function ze(t){return t<48?t===36:t<58?!0:t<65?!1:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&vo.test(String.fromCharCode(t)):Wt(t,lr)||Wt(t,So)}var Gt={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},wo=new Set(Gt.keyword),No=new Set(Gt.strict),Io=new Set(Gt.strictBind);function ur(t,e){return e&&t==="await"||t==="enum"}function cr(t,e){return ur(t,e)||No.has(t)}function pr(t){return Io.has(t)}function fr(t,e){return cr(t,e)||pr(t)}function ko(t){return wo.has(t)}function Do(t,e,s){return t===64&&e===64&&ge(s)}var Fo=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function Lo(t){return Fo.has(t)}var Ke=0,$e=1,Ae=2,Xt=4,dr=8,ct=16,mr=32,Fe=64,Jt=128,pt=256,ft=$e|Ae|pt,Pe=1,Ve=2,yr=4,Se=8,dt=16,xr=64,mt=128,Yt=256,$t=512,Qt=1024,Zt=2048,gr=Pe|Ve|Se|mt,Te=Pe|0|Se|0,yt=Pe|0|yr|0,Ar=Pe|0|dt|0,Oo=0|Ve|0|mt,Bo=0|Ve|0|0,Pr=Pe|Ve|Se|Yt,Tr=0|Qt,Le=0|xr,Mo=Pe|0|0|xr,Ro=Pr|$t,jo=0|Qt,qo=Zt,xt=4,es=2,ts=1,ss=es|ts,Uo=es|xt,_o=ts|xt,zo=es,Ko=ts,rs=0,Vo=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(t){if(typeof t=="string")return this.plugins.has(t);{let[e,s]=t;if(!this.hasPlugin(e))return!1;let r=this.plugins.get(e);for(let i of Object.keys(s))if((r==null?void 0:r[i])!==s[i])return!1;return!0}}getPluginOption(t,e){var s;return(s=this.plugins.get(t))==null?void 0:s[e]}};function Er(t,e){t.trailingComments===void 0?t.trailingComments=e:t.trailingComments.unshift(...e)}function Ho(t,e){t.leadingComments===void 0?t.leadingComments=e:t.leadingComments.unshift(...e)}function Qe(t,e){t.innerComments===void 0?t.innerComments=e:t.innerComments.unshift(...e)}function Ze(t,e,s){let r=null,i=e.length;for(;r===null&&i>0;)r=e[--i];r===null||r.start>s.start?Qe(t,s.comments):Er(r,s.comments)}var Wo=class extends Vo{addComment(t){this.filename&&(t.loc.filename=this.filename),this.state.comments.push(t)}processComment(t){let{commentStack:e}=this.state,s=e.length;if(s===0)return;let r=s-1,i=e[r];i.start===t.end&&(i.leadingNode=t,r--);let{start:a}=t;for(;r>=0;r--){let n=e[r],o=n.end;if(o>a)n.containingNode=t,this.finalizeComment(n),e.splice(r,1);else{o===a&&(n.trailingNode=t);break}}}finalizeComment(t){let{comments:e}=t;if(t.leadingNode!==null||t.trailingNode!==null)t.leadingNode!==null&&Er(t.leadingNode,e),t.trailingNode!==null&&Ho(t.trailingNode,e);else{let{containingNode:s,start:r}=t;if(this.input.charCodeAt(r-1)===44)switch(s.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":Ze(s,s.properties,t);break;case"CallExpression":case"OptionalCallExpression":Ze(s,s.arguments,t);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":Ze(s,s.params,t);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":Ze(s,s.elements,t);break;case"ExportNamedDeclaration":case"ImportDeclaration":Ze(s,s.specifiers,t);break;default:Qe(s,e)}else Qe(s,e)}}finalizeRemainingComments(){let{commentStack:t}=this.state;for(let e=t.length-1;e>=0;e--)this.finalizeComment(t[e]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(t){let{commentStack:e}=this.state,{length:s}=e;if(s===0)return;let r=e[s-1];r.leadingNode===t&&(r.leadingNode=null)}takeSurroundingComments(t,e,s){let{commentStack:r}=this.state,i=r.length;if(i===0)return;let a=i-1;for(;a>=0;a--){let n=r[a],o=n.end;if(n.start===s)n.leadingNode=t;else if(o===e)n.trailingNode=t;else if(o=48&&e<=57},Qo=new Set([103,109,115,105,121,117,100,118]),vr={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},At={bin:t=>t===48||t===49,oct:t=>t>=48&&t<=55,dec:t=>t>=48&&t<=57,hex:t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102},we=class{constructor(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new d(t.startLoc,t.endLoc)}},Zo=class extends Wo{constructor(t,e){super(),this.isLookahead=void 0,this.tokens=[],this.state=new Cr,this.state.init(t),this.input=e,this.length=e.length,this.isLookahead=!1}pushToken(t){this.tokens.length=this.state.tokensLength,this.tokens.push(t),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new we(this.state)),this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(t){return this.match(t)?(this.next(),!0):!1}match(t){return this.state.type===t}createLookaheadState(t){return{pos:t.pos,value:null,type:t.type,start:t.start,end:t.end,context:[this.curContext()],inType:t.inType,startLoc:t.startLoc,lastTokEndLoc:t.lastTokEndLoc,curLine:t.curLine,lineStart:t.lineStart,curPosition:t.curPosition}}lookahead(){let t=this.state;this.state=this.createLookaheadState(t),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;let e=this.state;return this.state=t,e}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(t){return as.lastIndex=t,as.test(this.input)?as.lastIndex:t}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}codePointAtPos(t){let e=this.input.charCodeAt(t);if((e&64512)===55296&&++t{let[s,r]=e;return this.raise(s,{at:r})}),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(135);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(){let t;this.isLookahead||(t=this.state.curPosition());let e=this.state.pos,s=this.input.indexOf("*/",e+2);if(s===-1)throw this.raise(l.UnterminatedComment,{at:this.state.curPosition()});for(this.state.pos=s+2,gt.lastIndex=e+2;gt.test(this.input)&>.lastIndex<=s;)++this.state.curLine,this.state.lineStart=gt.lastIndex;if(this.isLookahead)return;let r={type:"CommentBlock",value:this.input.slice(e+2,s),start:e,end:s+2,loc:new d(t,this.state.curPosition())};return this.options.tokens&&this.pushToken(r),r}skipLineComment(t){let e=this.state.pos,s;this.isLookahead||(s=this.state.curPosition());let r=this.input.charCodeAt(this.state.pos+=t);if(this.state.post)){let i=this.skipLineComment(3);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else if(s===60&&!this.inModule){let r=this.state.pos;if(this.input.charCodeAt(r+1)===33&&this.input.charCodeAt(r+2)===45&&this.input.charCodeAt(r+3)===45){let i=this.skipLineComment(4);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else break e}}if(e.length>0){let s=this.state.pos,r={start:t,end:s,comments:e,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(r)}}finishToken(t,e){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();let s=this.state.type;this.state.type=t,this.state.value=e,this.isLookahead||this.updateContext(s)}replaceToken(t){this.state.type=t,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;let t=this.state.pos+1,e=this.codePointAtPos(t);if(e>=48&&e<=57)throw this.raise(l.UnexpectedDigitAfterHash,{at:this.state.curPosition()});if(e===123||e===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")!=="hash")throw this.raise(e===123?l.RecordExpressionHashIncorrectStartSyntaxType:l.TupleExpressionHashIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,e===123?this.finishToken(7):this.finishToken(1)}else ge(e)?(++this.state.pos,this.finishToken(134,this.readWord1(e))):e===92?(++this.state.pos,this.finishToken(134,this.readWord1())):this.finishOp(27,1)}readToken_dot(){let t=this.input.charCodeAt(this.state.pos+1);if(t>=48&&t<=57){this.readNumber(!0);return}t===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let t=this.input.charCodeAt(this.state.pos+1);if(t!==33)return!1;let e=this.state.pos;for(this.state.pos+=1;!Oe(t)&&++this.state.pos=48&&e<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(t){switch(t){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(l.TupleExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(l.RecordExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{let e=this.input.charCodeAt(this.state.pos+1);if(e===120||e===88){this.readRadixNumber(16);return}if(e===111||e===79){this.readRadixNumber(8);return}if(e===98||e===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(t);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(t);return;case 124:case 38:this.readToken_pipe_amp(t);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(t);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(t);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(ge(t)){this.readWord(t);return}}throw this.raise(l.InvalidOrUnexpectedToken,{at:this.state.curPosition(),unexpected:String.fromCodePoint(t)})}finishOp(t,e){let s=this.input.slice(this.state.pos,this.state.pos+e);this.state.pos+=e,this.finishToken(t,s)}readRegexp(){let t=this.state.startLoc,e=this.state.start+1,s,r,{pos:i}=this.state;for(;;++i){if(i>=this.length)throw this.raise(l.UnterminatedRegExp,{at:m(t,1)});let c=this.input.charCodeAt(i);if(Oe(c))throw this.raise(l.UnterminatedRegExp,{at:m(t,1)});if(s)s=!1;else{if(c===91)r=!0;else if(c===93&&r)r=!1;else if(c===47&&!r)break;s=c===92}}let a=this.input.slice(e,i);++i;let n="",o=()=>m(t,i+2-e);for(;i3&&arguments[3]!==void 0?arguments[3]:!0,i=this.state.pos,a=t===16?vr.hex:vr.decBinOct,n=t===16?At.hex:t===10?At.dec:t===8?At.oct:At.bin,o=!1,c=0;for(let f=0,y=e==null?1/0:e;f=97?v=T-97+10:T>=65?v=T-65+10:$o(T)?v=T-48:v=1/0,v>=t)if(this.options.errorRecovery&&v<=9)v=0,this.raise(l.InvalidDigit,{at:this.state.curPosition(),radix:t});else if(s)v=0,o=!0;else break;++this.state.pos,c=c*t+v}return this.state.pos===i||e!=null&&this.state.pos-i!==e||o?null:c}readRadixNumber(t){let e=this.state.curPosition(),s=!1;this.state.pos+=2;let r=this.readInt(t);r==null&&this.raise(l.InvalidDigit,{at:m(e,2),radix:t});let i=this.input.charCodeAt(this.state.pos);if(i===110)++this.state.pos,s=!0;else if(i===109)throw this.raise(l.InvalidDecimal,{at:e});if(ge(this.codePointAtPos(this.state.pos)))throw this.raise(l.NumberIdentifier,{at:this.state.curPosition()});if(s){let a=this.input.slice(e.index,this.state.pos).replace(/[_n]/g,"");this.finishToken(131,a);return}this.finishToken(130,r)}readNumber(t){let e=this.state.pos,s=this.state.curPosition(),r=!1,i=!1,a=!1,n=!1,o=!1;!t&&this.readInt(10)===null&&this.raise(l.InvalidNumber,{at:this.state.curPosition()});let c=this.state.pos-e>=2&&this.input.charCodeAt(e)===48;if(c){let v=this.input.slice(e,this.state.pos);if(this.recordStrictModeErrors(l.StrictOctalLiteral,{at:s}),!this.state.strict){let N=v.indexOf("_");N>0&&this.raise(l.ZeroDigitNumericSeparator,{at:m(s,N)})}o=c&&!/[89]/.test(v)}let f=this.input.charCodeAt(this.state.pos);if(f===46&&!o&&(++this.state.pos,this.readInt(10),r=!0,f=this.input.charCodeAt(this.state.pos)),(f===69||f===101)&&!o&&(f=this.input.charCodeAt(++this.state.pos),(f===43||f===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(l.InvalidOrMissingExponent,{at:s}),r=!0,n=!0,f=this.input.charCodeAt(this.state.pos)),f===110&&((r||c)&&this.raise(l.InvalidBigIntLiteral,{at:s}),++this.state.pos,i=!0),f===109&&(this.expectPlugin("decimal",this.state.curPosition()),(n||c)&&this.raise(l.InvalidDecimal,{at:s}),++this.state.pos,a=!0),ge(this.codePointAtPos(this.state.pos)))throw this.raise(l.NumberIdentifier,{at:this.state.curPosition()});let y=this.input.slice(e,this.state.pos).replace(/[_mn]/g,"");if(i){this.finishToken(131,y);return}if(a){this.finishToken(132,y);return}let T=o?parseInt(y,8):parseFloat(y);this.finishToken(130,T)}readCodePoint(t){let e=this.input.charCodeAt(this.state.pos),s;if(e===123){if(++this.state.pos,s=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,!0,t),++this.state.pos,s!==null&&s>1114111)if(t)this.raise(l.InvalidCodePoint,{at:this.state.curPosition()});else return null}else s=this.readHexChar(4,!1,t);return s}readString(t){let e="",s=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(l.UnterminatedString,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);if(r===t)break;if(r===92)e+=this.input.slice(s,this.state.pos),e+=this.readEscapedChar(!1),s=this.state.pos;else if(r===8232||r===8233)++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;else{if(Oe(r))throw this.raise(l.UnterminatedString,{at:this.state.startLoc});++this.state.pos}}e+=this.input.slice(s,this.state.pos++),this.finishToken(129,e)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){let t="",e=this.state.pos,s=!1;for(++this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(l.UnterminatedTemplate,{at:m(this.state.startLoc,1)});let r=this.input.charCodeAt(this.state.pos);if(r===96){++this.state.pos,t+=this.input.slice(e,this.state.pos),this.finishToken(24,s?null:t);return}if(r===36&&this.input.charCodeAt(this.state.pos+1)===123){this.state.pos+=2,t+=this.input.slice(e,this.state.pos),this.finishToken(25,s?null:t);return}if(r===92){t+=this.input.slice(e,this.state.pos);let i=this.readEscapedChar(!0);i===null?s=!0:t+=i,e=this.state.pos}else if(Oe(r)){switch(t+=this.input.slice(e,this.state.pos),++this.state.pos,r){case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:t+=` +`;break;default:t+=String.fromCharCode(r);break}++this.state.curLine,this.state.lineStart=this.state.pos,e=this.state.pos}else++this.state.pos}}recordStrictModeErrors(t,e){let{at:s}=e,r=s.index;this.state.strict&&!this.state.strictErrors.has(r)?this.raise(t,{at:s}):this.state.strictErrors.set(r,[t,s])}readEscapedChar(t){let e=!t,s=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,s){case 110:return` +`;case 114:return"\r";case 120:{let r=this.readHexChar(2,!1,e);return r===null?null:String.fromCharCode(r)}case 117:{let r=this.readCodePoint(e);return r===null?null:String.fromCodePoint(r)}case 116:return" ";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:this.state.lineStart=this.state.pos,++this.state.curLine;case 8232:case 8233:return"";case 56:case 57:if(t)return null;this.recordStrictModeErrors(l.StrictNumericEscape,{at:m(this.state.curPosition(),-1)});default:if(s>=48&&s<=55){let r=m(this.state.curPosition(),-1),a=this.input.slice(this.state.pos-1,this.state.pos+2).match(/^[0-7]+/)[0],n=parseInt(a,8);n>255&&(a=a.slice(0,-1),n=parseInt(a,8)),this.state.pos+=a.length-1;let o=this.input.charCodeAt(this.state.pos);if(a!=="0"||o===56||o===57){if(t)return null;this.recordStrictModeErrors(l.StrictNumericEscape,{at:r})}return String.fromCharCode(n)}return String.fromCharCode(s)}}readHexChar(t,e,s){let r=this.state.curPosition(),i=this.readInt(16,t,e,!1);return i===null&&(s?this.raise(l.InvalidEscapeSequence,{at:r}):this.state.pos=r.index-1),i}readWord1(t){this.state.containsEsc=!1;let e="",s=this.state.pos,r=this.state.pos;for(t!==void 0&&(this.state.pos+=t<=65535?1:2);this.state.pos=0;o--){let c=n[o];if(c.loc.index===a)return n[o]=t({loc:i,details:r});if(c.loc.indexthis.hasPlugin(e)))throw this.raise(l.MissingOneOfPlugins,{at:this.state.startLoc,missingPlugin:t})}},ns=class{constructor(t){this.var=new Set,this.lexical=new Set,this.functions=new Set,this.flags=t}},os=class{constructor(t,e){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=t,this.inModule=e}get inFunction(){return(this.currentVarScopeFlags()&Ae)>0}get allowSuper(){return(this.currentThisScopeFlags()&ct)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&mr)>0}get inClass(){return(this.currentThisScopeFlags()&Fe)>0}get inClassAndNotInNonArrowFunction(){let t=this.currentThisScopeFlags();return(t&Fe)>0&&(t&Ae)===0}get inStaticBlock(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&Jt)return!0;if(e&(ft|Fe))return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&Ae)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(t){return new ns(t)}enter(t){this.scopeStack.push(this.createScope(t))}exit(){this.scopeStack.pop()}treatFunctionsAsVarInScope(t){return!!(t.flags&(Ae|Jt)||!this.parser.inModule&&t.flags&$e)}declareName(t,e,s){let r=this.currentScope();if(e&Se||e&dt)this.checkRedeclarationInScope(r,t,e,s),e&dt?r.functions.add(t):r.lexical.add(t),e&Se&&this.maybeExportDefined(r,t);else if(e&yr)for(let i=this.scopeStack.length-1;i>=0&&(r=this.scopeStack[i],this.checkRedeclarationInScope(r,t,e,s),r.var.add(t),this.maybeExportDefined(r,t),!(r.flags&ft));--i);this.parser.inModule&&r.flags&$e&&this.undefinedExports.delete(t)}maybeExportDefined(t,e){this.parser.inModule&&t.flags&$e&&this.undefinedExports.delete(e)}checkRedeclarationInScope(t,e,s,r){this.isRedeclaredInScope(t,e,s)&&this.parser.raise(l.VarRedeclaration,{at:r,identifierName:e})}isRedeclaredInScope(t,e,s){return s&Pe?s&Se?t.lexical.has(e)||t.functions.has(e)||t.var.has(e):s&dt?t.lexical.has(e)||!this.treatFunctionsAsVarInScope(t)&&t.var.has(e):t.lexical.has(e)&&!(t.flags&dr&&t.lexical.values().next().value===e)||!this.treatFunctionsAsVarInScope(t)&&t.functions.has(e):!1}checkLocalExport(t){let{name:e}=t,s=this.scopeStack[0];!s.lexical.has(e)&&!s.var.has(e)&&!s.functions.has(e)&&this.undefinedExports.set(e,t.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&ft)return e}}currentThisScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&(ft|Fe)&&!(e&Xt))return e}}},eh=class extends ns{constructor(){super(...arguments),this.declareFunctions=new Set}},th=class extends os{createScope(t){return new eh(t)}declareName(t,e,s){let r=this.currentScope();if(e&Zt){this.checkRedeclarationInScope(r,t,e,s),this.maybeExportDefined(r,t),r.declareFunctions.add(t);return}super.declareName(...arguments)}isRedeclaredInScope(t,e,s){return super.isRedeclaredInScope(...arguments)?!0:s&Zt?!t.declareFunctions.has(e)&&(t.lexical.has(e)||t.functions.has(e)):!1}checkLocalExport(t){this.scopeStack[0].declareFunctions.has(t.name)||super.checkLocalExport(t)}},sh=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},rh=class{constructor(t){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=t}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new sh)}exit(){let t=this.stack.pop(),e=this.current();for(let[s,r]of Array.from(t.undefinedPrivateNames))e?e.undefinedPrivateNames.has(s)||e.undefinedPrivateNames.set(s,r):this.parser.raise(l.InvalidPrivateFieldResolution,{at:r,identifierName:s})}declarePrivateName(t,e,s){let{privateNames:r,loneAccessors:i,undefinedPrivateNames:a}=this.current(),n=r.has(t);if(e&ss){let o=n&&i.get(t);if(o){let c=o&xt,f=e&xt,y=o&ss,T=e&ss;n=y===T||c!==f,n||i.delete(t)}else n||i.set(t,e)}n&&this.parser.raise(l.PrivateNameRedeclaration,{at:s,identifierName:t}),r.add(t),a.delete(t)}usePrivateName(t,e){let s;for(s of this.stack)if(s.privateNames.has(t))return;s?s.undefinedPrivateNames.set(t,e):this.parser.raise(l.InvalidPrivateFieldResolution,{at:e,identifierName:t})}},ih=0,Sr=1,hs=2,wr=3,Pt=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ih;this.type=void 0,this.type=t}canBeArrowParameterDeclaration(){return this.type===hs||this.type===Sr}isCertainlyParameterDeclaration(){return this.type===wr}},Nr=class extends Pt{constructor(t){super(t),this.declarationErrors=new Map}recordDeclarationError(t,e){let{at:s}=e,r=s.index;this.declarationErrors.set(r,[t,s])}clearDeclarationError(t){this.declarationErrors.delete(t)}iterateErrors(t){this.declarationErrors.forEach(t)}},ah=class{constructor(t){this.parser=void 0,this.stack=[new Pt],this.parser=t}enter(t){this.stack.push(t)}exit(){this.stack.pop()}recordParameterInitializerError(t,e){let{at:s}=e,r={at:s.loc.start},{stack:i}=this,a=i.length-1,n=i[a];for(;!n.isCertainlyParameterDeclaration();){if(n.canBeArrowParameterDeclaration())n.recordDeclarationError(t,r);else return;n=i[--a]}this.parser.raise(t,r)}recordArrowParemeterBindingError(t,e){let{at:s}=e,{stack:r}=this,i=r[r.length-1],a={at:s.loc.start};if(i.isCertainlyParameterDeclaration())this.parser.raise(t,a);else if(i.canBeArrowParameterDeclaration())i.recordDeclarationError(t,a);else return}recordAsyncArrowParametersError(t){let{at:e}=t,{stack:s}=this,r=s.length-1,i=s[r];for(;i.canBeArrowParameterDeclaration();)i.type===hs&&i.recordDeclarationError(l.AwaitBindingIdentifier,{at:e}),i=s[--r]}validateAsPattern(){let{stack:t}=this,e=t[t.length-1];!e.canBeArrowParameterDeclaration()||e.iterateErrors(s=>{let[r,i]=s;this.parser.raise(r,{at:i});let a=t.length-2,n=t[a];for(;n.canBeArrowParameterDeclaration();)n.clearDeclarationError(i.index),n=t[--a]})}};function nh(){return new Pt(wr)}function oh(){return new Nr(Sr)}function hh(){return new Nr(hs)}function Ir(){return new Pt}var He=0,kr=1,Tt=2,Dr=4,We=8,lh=class{constructor(){this.stacks=[]}enter(t){this.stacks.push(t)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&Tt)>0}get hasYield(){return(this.currentFlags()&kr)>0}get hasReturn(){return(this.currentFlags()&Dr)>0}get hasIn(){return(this.currentFlags()&We)>0}};function Et(t,e){return(t?Tt:0)|(e?kr:0)}var uh=class extends Zo{addExtra(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;if(!t)return;let i=t.extra=t.extra||{};r?i[e]=s:Object.defineProperty(i,e,{enumerable:r,value:s})}isContextual(t){return this.state.type===t&&!this.state.containsEsc}isUnparsedContextual(t,e){let s=t+e.length;if(this.input.slice(t,s)===e){let r=this.input.charCodeAt(s);return!(ze(r)||(r&64512)===55296)}return!1}isLookaheadContextual(t){let e=this.nextTokenStart();return this.isUnparsedContextual(e,t)}eatContextual(t){return this.isContextual(t)?(this.next(),!0):!1}expectContextual(t,e){if(!this.eatContextual(t))throw e!=null?this.raise(e,{at:this.state.startLoc}):this.unexpected(null,t)}canInsertSemicolon(){return this.match(135)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return is.test(this.input.slice(this.state.lastTokEndLoc.index,this.state.start))}hasFollowingLineBreak(){return br.lastIndex=this.state.end,br.test(this.input)}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(){((arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)?this.isLineTerminator():this.eat(13))||this.raise(l.MissingSemicolon,{at:this.state.lastTokEndLoc})}expect(t,e){this.eat(t)||this.unexpected(e,t)}tryParse(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.clone(),s={node:null};try{let r=t(function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;throw s.node=i,s});if(this.state.errors.length>e.errors.length){let i=this.state;return this.state=e,this.state.tokensLength=i.tokensLength,{node:r,error:i.errors[e.errors.length],thrown:!1,aborted:!1,failState:i}}return{node:r,error:null,thrown:!1,aborted:!1,failState:null}}catch(r){let i=this.state;if(this.state=e,r instanceof SyntaxError)return{node:null,error:r,thrown:!0,aborted:!1,failState:i};if(r===s)return{node:s.node,error:null,thrown:!1,aborted:!0,failState:i};throw r}}checkExpressionErrors(t,e){if(!t)return!1;let{shorthandAssignLoc:s,doubleProtoLoc:r,privateKeyLoc:i,optionalParametersLoc:a}=t,n=!!s||!!r||!!a||!!i;if(!e)return n;s!=null&&this.raise(l.InvalidCoverInitializedName,{at:s}),r!=null&&this.raise(l.DuplicateProto,{at:r}),i!=null&&this.raise(l.UnexpectedPrivateField,{at:i}),a!=null&&this.unexpected(a)}isLiteralPropertyName(){return nr(this.state.type)}isPrivateName(t){return t.type==="PrivateName"}getPrivateNameSV(t){return t.id.name}hasPropertyAsPrivateName(t){return(t.type==="MemberExpression"||t.type==="OptionalMemberExpression")&&this.isPrivateName(t.property)}isOptionalChain(t){return t.type==="OptionalMemberExpression"||t.type==="OptionalCallExpression"}isObjectProperty(t){return t.type==="ObjectProperty"}isObjectMethod(t){return t.type==="ObjectMethod"}initializeScopes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.sourceType==="module",e=this.state.labels;this.state.labels=[];let s=this.exportedIdentifiers;this.exportedIdentifiers=new Set;let r=this.inModule;this.inModule=t;let i=this.scope,a=this.getScopeHandler();this.scope=new a(this,t);let n=this.prodParam;this.prodParam=new lh;let o=this.classScope;this.classScope=new rh(this);let c=this.expressionScope;return this.expressionScope=new ah(this),()=>{this.state.labels=e,this.exportedIdentifiers=s,this.inModule=r,this.scope=i,this.prodParam=n,this.classScope=o,this.expressionScope=c}}enterInitialScopes(){let t=He;this.inModule&&(t|=Tt),this.scope.enter($e),this.prodParam.enter(t)}checkDestructuringPrivate(t){let{privateKeyLoc:e}=t;e!==null&&this.expectPlugin("destructuringPrivate",e)}},bt=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},Ct=class{constructor(t,e,s){this.type="",this.start=e,this.end=0,this.loc=new d(s),t!=null&&t.options.ranges&&(this.range=[e,0]),t!=null&&t.filename&&(this.loc.filename=t.filename)}},ls=Ct.prototype;ls.__clone=function(){let t=new Ct,e=Object.keys(this);for(let s=0,r=e.length;s1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;t.end=e.index,t.loc.end=e,this.options.ranges&&(t.range[1]=e.index)}resetStartLocationFromNode(t,e){this.resetStartLocation(t,e.start,e.loc.start)}},dh=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),I=j(jn||(jn=ht(["flow"])))(t=>({AmbiguousConditionalArrow:t("Ambiguous expression: wrap the arrow functions in parentheses to disambiguate."),AmbiguousDeclareModuleKind:t("Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module."),AssignReservedType:t(e=>{let{reservedType:s}=e;return"Cannot overwrite reserved type ".concat(s,".")}),DeclareClassElement:t("The `declare` modifier can only appear on class fields."),DeclareClassFieldInitializer:t("Initializers are not allowed in fields with the `declare` modifier."),DuplicateDeclareModuleExports:t("Duplicate `declare module.exports` statement."),EnumBooleanMemberNotInitialized:t(e=>{let{memberName:s,enumName:r}=e;return"Boolean enum members need to be initialized. Use either `".concat(s," = true,` or `").concat(s," = false,` in enum `").concat(r,"`.")}),EnumDuplicateMemberName:t(e=>{let{memberName:s,enumName:r}=e;return"Enum member names need to be unique, but the name `".concat(s,"` has already been used before in enum `").concat(r,"`.")}),EnumInconsistentMemberValues:t(e=>{let{enumName:s}=e;return"Enum `".concat(s,"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.")}),EnumInvalidExplicitType:t(e=>{let{invalidEnumType:s,enumName:r}=e;return"Enum type `".concat(s,"` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `").concat(r,"`.")}),EnumInvalidExplicitTypeUnknownSupplied:t(e=>{let{enumName:s}=e;return"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `".concat(s,"`.")}),EnumInvalidMemberInitializerPrimaryType:t(e=>{let{enumName:s,memberName:r,explicitType:i}=e;return"Enum `".concat(s,"` has type `").concat(i,"`, so the initializer of `").concat(r,"` needs to be a ").concat(i," literal.")}),EnumInvalidMemberInitializerSymbolType:t(e=>{let{enumName:s,memberName:r}=e;return"Symbol enum members cannot be initialized. Use `".concat(r,",` in enum `").concat(s,"`.")}),EnumInvalidMemberInitializerUnknownType:t(e=>{let{enumName:s,memberName:r}=e;return"The enum member initializer for `".concat(r,"` needs to be a literal (either a boolean, number, or string) in enum `").concat(s,"`.")}),EnumInvalidMemberName:t(e=>{let{enumName:s,memberName:r,suggestion:i}=e;return"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `".concat(r,"`, consider using `").concat(i,"`, in enum `").concat(s,"`.")}),EnumNumberMemberNotInitialized:t(e=>{let{enumName:s,memberName:r}=e;return"Number enum members need to be initialized, e.g. `".concat(r," = 1` in enum `").concat(s,"`.")}),EnumStringMemberInconsistentlyInitailized:t(e=>{let{enumName:s}=e;return"String enum members need to consistently either all use initializers, or use no initializers, in enum `".concat(s,"`.")}),GetterMayNotHaveThisParam:t("A getter cannot have a `this` parameter."),ImportTypeShorthandOnlyInPureImport:t("The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements."),InexactInsideExact:t("Explicit inexact syntax cannot appear inside an explicit exact object type."),InexactInsideNonObject:t("Explicit inexact syntax cannot appear in class or interface definitions."),InexactVariance:t("Explicit inexact syntax cannot have variance."),InvalidNonTypeImportInDeclareModule:t("Imports within a `declare module` body must always be `import type` or `import typeof`."),MissingTypeParamDefault:t("Type parameter declaration needs a default, since a preceding type parameter declaration has a default."),NestedDeclareModule:t("`declare module` cannot be used inside another `declare module`."),NestedFlowComment:t("Cannot have a flow comment inside another flow comment."),PatternIsOptional:t("A binding pattern parameter cannot be optional in an implementation signature.",{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:t("A setter cannot have a `this` parameter."),SpreadVariance:t("Spread properties cannot have variance."),ThisParamAnnotationRequired:t("A type annotation is required for the `this` parameter."),ThisParamBannedInConstructor:t("Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions."),ThisParamMayNotBeOptional:t("The `this` parameter cannot be optional."),ThisParamMustBeFirst:t("The `this` parameter must be the first function parameter."),ThisParamNoDefault:t("The `this` parameter may not have a default value."),TypeBeforeInitializer:t("Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`."),TypeCastInPattern:t("The type cast expression is expected to be wrapped with parenthesis."),UnexpectedExplicitInexactInObject:t("Explicit inexact syntax must appear at the end of an inexact object."),UnexpectedReservedType:t(e=>{let{reservedType:s}=e;return"Unexpected reserved type ".concat(s,".")}),UnexpectedReservedUnderscore:t("`_` is only allowed as a type argument to call or new."),UnexpectedSpaceBetweenModuloChecks:t("Spaces between `%` and `checks` are not allowed here."),UnexpectedSpreadType:t("Spread operator cannot appear in class or interface definitions."),UnexpectedSubtractionOperand:t('Unexpected token, expected "number" or "bigint".'),UnexpectedTokenAfterTypeParameter:t("Expected an arrow function after this type parameter declaration."),UnexpectedTypeParameterBeforeAsyncArrowFunction:t("Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`."),UnsupportedDeclareExportKind:t(e=>{let{unsupportedExportKind:s,suggestion:r}=e;return"`declare export ".concat(s,"` is not supported. Use `").concat(r,"` instead.")}),UnsupportedStatementInDeclareModule:t("Only declares and type imports are allowed inside declare module."),UnterminatedFlowComment:t("Unterminated flow-comment.")}));function mh(t){return t.type==="DeclareExportAllDeclaration"||t.type==="DeclareExportDeclaration"&&(!t.declaration||t.declaration.type!=="TypeAlias"&&t.declaration.type!=="InterfaceDeclaration")}function us(t){return t.importKind==="type"||t.importKind==="typeof"}function Fr(t){return ye(t)&&t!==97}var yh={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function xh(t,e){let s=[],r=[];for(let i=0;iclass extends t{constructor(){super(...arguments),this.flowPragma=void 0}getScopeHandler(){return th}shouldParseTypes(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"}shouldParseEnums(){return!!this.getPluginOption("flow","enums")}finishToken(e,s){return e!==129&&e!==13&&e!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(e,s)}addComment(e){if(this.flowPragma===void 0){let s=gh.exec(e.value);if(s)if(s[1]==="flow")this.flowPragma="flow";else if(s[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}return super.addComment(e)}flowParseTypeInitialiser(e){let s=this.state.inType;this.state.inType=!0,this.expect(e||14);let r=this.flowParseType();return this.state.inType=s,r}flowParsePredicate(){let e=this.startNode(),s=this.state.startLoc;return this.next(),this.expectContextual(107),this.state.lastTokStart>s.index+1&&this.raise(I.UnexpectedSpaceBetweenModuloChecks,{at:s}),this.eat(10)?(e.value=this.parseExpression(),this.expect(11),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){let e=this.state.inType;this.state.inType=!0,this.expect(14);let s=null,r=null;return this.match(54)?(this.state.inType=e,r=this.flowParsePredicate()):(s=this.flowParseType(),this.state.inType=e,this.match(54)&&(r=this.flowParsePredicate())),[s,r]}flowParseDeclareClass(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")}flowParseDeclareFunction(e){this.next();let s=e.id=this.parseIdentifier(),r=this.startNode(),i=this.startNode();this.match(47)?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(10);let a=this.flowParseFunctionTypeParams();return r.params=a.params,r.rest=a.rest,r.this=a._this,this.expect(11),[r.returnType,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),i.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),s.typeAnnotation=this.finishNode(i,"TypeAnnotation"),this.resetEndLocation(s),this.semicolon(),this.scope.declareName(e.id.name,qo,e.id.loc.start),this.finishNode(e,"DeclareFunction")}flowParseDeclare(e,s){if(this.match(80))return this.flowParseDeclareClass(e);if(this.match(68))return this.flowParseDeclareFunction(e);if(this.match(74))return this.flowParseDeclareVariable(e);if(this.eatContextual(123))return this.match(16)?this.flowParseDeclareModuleExports(e):(s&&this.raise(I.NestedDeclareModule,{at:this.state.lastTokStartLoc}),this.flowParseDeclareModule(e));if(this.isContextual(126))return this.flowParseDeclareTypeAlias(e);if(this.isContextual(127))return this.flowParseDeclareOpaqueType(e);if(this.isContextual(125))return this.flowParseDeclareInterface(e);if(this.match(82))return this.flowParseDeclareExportDeclaration(e,s);throw this.unexpected()}flowParseDeclareVariable(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(e.id.name,yt,e.id.loc.start),this.semicolon(),this.finishNode(e,"DeclareVariable")}flowParseDeclareModule(e){this.scope.enter(Ke),this.match(129)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();let s=e.body=this.startNode(),r=s.body=[];for(this.expect(5);!this.match(8);){let n=this.startNode();this.match(83)?(this.next(),!this.isContextual(126)&&!this.match(87)&&this.raise(I.InvalidNonTypeImportInDeclareModule,{at:this.state.lastTokStartLoc}),this.parseImport(n)):(this.expectContextual(121,I.UnsupportedStatementInDeclareModule),n=this.flowParseDeclare(n,!0)),r.push(n)}this.scope.exit(),this.expect(8),this.finishNode(s,"BlockStatement");let i=null,a=!1;return r.forEach(n=>{mh(n)?(i==="CommonJS"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i="ES"):n.type==="DeclareModuleExports"&&(a&&this.raise(I.DuplicateDeclareModuleExports,{at:n}),i==="ES"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i="CommonJS",a=!0)}),e.kind=i||"CommonJS",this.finishNode(e,"DeclareModule")}flowParseDeclareExportDeclaration(e,s){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?e.declaration=this.flowParseDeclare(this.startNode()):(e.declaration=this.flowParseType(),this.semicolon()),e.default=!0,this.finishNode(e,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(126)||this.isContextual(125))&&!s){let r=this.state.value;throw this.raise(I.UnsupportedDeclareExportKind,{at:this.state.startLoc,unsupportedExportKind:r,suggestion:yh[r]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(127))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(125)||this.isContextual(126)||this.isContextual(127))return e=this.parseExport(e),e.type==="ExportNamedDeclaration"&&(e.type="ExportDeclaration",e.default=!1,delete e.exportKind),e.type="Declare"+e.type,e;throw this.unexpected()}flowParseDeclareModuleExports(e){return this.next(),this.expectContextual(108),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")}flowParseDeclareTypeAlias(e){return this.next(),this.flowParseTypeAlias(e),e.type="DeclareTypeAlias",e}flowParseDeclareOpaqueType(e){return this.next(),this.flowParseOpaqueType(e,!0),e.type="DeclareOpaqueType",e}flowParseDeclareInterface(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")}flowParseInterfaceish(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.flowParseRestrictedIdentifier(!s,!0),this.scope.declareName(e.id.name,s?Ar:Te,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.implements=[],e.mixins=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(!s&&this.eat(12));if(this.isContextual(114)){this.next();do e.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12))}if(this.isContextual(110)){this.next();do e.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}e.body=this.flowParseObjectType({allowStatic:s,allowExact:!1,allowSpread:!1,allowProto:s,allowInexact:!1})}flowParseInterfaceExtends(){let e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")}flowParseInterface(e){return this.flowParseInterfaceish(e),this.finishNode(e,"InterfaceDeclaration")}checkNotUnderscore(e){e==="_"&&this.raise(I.UnexpectedReservedUnderscore,{at:this.state.startLoc})}checkReservedType(e,s,r){!dh.has(e)||this.raise(r?I.AssignReservedType:I.UnexpectedReservedType,{at:s,reservedType:e})}flowParseRestrictedIdentifier(e,s){return this.checkReservedType(this.state.value,this.state.startLoc,s),this.parseIdentifier(e)}flowParseTypeAlias(e){return e.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(e.id.name,Te,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(e,"TypeAlias")}flowParseOpaqueType(e,s){return this.expectContextual(126),e.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(e.id.name,Te,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(14)&&(e.supertype=this.flowParseTypeInitialiser(14)),e.impltype=null,s||(e.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(e,"OpaqueType")}flowParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,s=this.state.startLoc,r=this.startNode(),i=this.flowParseVariance(),a=this.flowParseTypeAnnotatableIdentifier();return r.name=a.name,r.variance=i,r.bound=a.typeAnnotation,this.match(29)?(this.eat(29),r.default=this.flowParseType()):e&&this.raise(I.MissingTypeParamDefault,{at:s}),this.finishNode(r,"TypeParameter")}flowParseTypeParameterDeclaration(){let e=this.state.inType,s=this.startNode();s.params=[],this.state.inType=!0,this.match(47)||this.match(138)?this.next():this.unexpected();let r=!1;do{let i=this.flowParseTypeParameter(r);s.params.push(i),i.default&&(r=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=e,this.finishNode(s,"TypeParameterDeclaration")}flowParseTypeParameterInstantiation(){let e=this.startNode(),s=this.state.inType;e.params=[],this.state.inType=!0,this.expect(47);let r=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)e.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=r,this.expect(48),this.state.inType=s,this.finishNode(e,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){let e=this.startNode(),s=this.state.inType;for(e.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)e.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=s,this.finishNode(e,"TypeParameterInstantiation")}flowParseInterfaceType(){let e=this.startNode();if(this.expectContextual(125),e.extends=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return e.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(e,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(130)||this.match(129)?this.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(e,s,r){return e.static=s,this.lookahead().type===14?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(3),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.finishNode(e,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(e,s){return e.static=s,e.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(e.method=!0,e.optional=!1,e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start))):(e.method=!1,this.eat(17)&&(e.optional=!0),e.value=this.flowParseTypeInitialiser()),this.finishNode(e,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(e){for(e.params=[],e.rest=null,e.typeParameters=null,e.this=null,this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(e.this=this.flowParseFunctionTypeParam(!0),e.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(e.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(e,s){let r=this.startNode();return e.static=s,e.value=this.flowParseObjectTypeMethodish(r),this.finishNode(e,"ObjectTypeCallProperty")}flowParseObjectType(e){let{allowStatic:s,allowExact:r,allowSpread:i,allowProto:a,allowInexact:n}=e,o=this.state.inType;this.state.inType=!0;let c=this.startNode();c.callProperties=[],c.properties=[],c.indexers=[],c.internalSlots=[];let f,y,T=!1;for(r&&this.match(6)?(this.expect(6),f=9,y=!0):(this.expect(5),f=8,y=!1),c.exact=y;!this.match(f);){let N=!1,R=null,z=null,te=this.startNode();if(a&&this.isContextual(115)){let pe=this.lookahead();pe.type!==14&&pe.type!==17&&(this.next(),R=this.state.startLoc,s=!1)}if(s&&this.isContextual(104)){let pe=this.lookahead();pe.type!==14&&pe.type!==17&&(this.next(),N=!0)}let he=this.flowParseVariance();if(this.eat(0))R!=null&&this.unexpected(R),this.eat(0)?(he&&this.unexpected(he.loc.start),c.internalSlots.push(this.flowParseObjectTypeInternalSlot(te,N))):c.indexers.push(this.flowParseObjectTypeIndexer(te,N,he));else if(this.match(10)||this.match(47))R!=null&&this.unexpected(R),he&&this.unexpected(he.loc.start),c.callProperties.push(this.flowParseObjectTypeCallProperty(te,N));else{let pe="init";if(this.isContextual(98)||this.isContextual(103)){let de=this.lookahead();nr(de.type)&&(pe=this.state.value,this.next())}let st=this.flowParseObjectTypeProperty(te,N,R,he,pe,i,n!=null?n:!y);st===null?(T=!0,z=this.state.lastTokStartLoc):c.properties.push(st)}this.flowObjectTypeSemicolon(),z&&!this.match(8)&&!this.match(9)&&this.raise(I.UnexpectedExplicitInexactInObject,{at:z})}this.expect(f),i&&(c.inexact=T);let v=this.finishNode(c,"ObjectTypeAnnotation");return this.state.inType=o,v}flowParseObjectTypeProperty(e,s,r,i,a,n,o){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(n?o||this.raise(I.InexactInsideExact,{at:this.state.lastTokStartLoc}):this.raise(I.InexactInsideNonObject,{at:this.state.lastTokStartLoc}),i&&this.raise(I.InexactVariance,{at:i}),null):(n||this.raise(I.UnexpectedSpreadType,{at:this.state.lastTokStartLoc}),r!=null&&this.unexpected(r),i&&this.raise(I.SpreadVariance,{at:i}),e.argument=this.flowParseType(),this.finishNode(e,"ObjectTypeSpreadProperty"));{e.key=this.flowParseObjectPropertyKey(),e.static=s,e.proto=r!=null,e.kind=a;let c=!1;return this.match(47)||this.match(10)?(e.method=!0,r!=null&&this.unexpected(r),i&&this.unexpected(i.loc.start),e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start)),(a==="get"||a==="set")&&this.flowCheckGetterSetterParams(e),!n&&e.key.name==="constructor"&&e.value.this&&this.raise(I.ThisParamBannedInConstructor,{at:e.value.this})):(a!=="init"&&this.unexpected(),e.method=!1,this.eat(17)&&(c=!0),e.value=this.flowParseTypeInitialiser(),e.variance=i),e.optional=c,this.finishNode(e,"ObjectTypeProperty")}}flowCheckGetterSetterParams(e){let s=e.kind==="get"?0:1,r=e.value.params.length+(e.value.rest?1:0);e.value.this&&this.raise(e.kind==="get"?I.GetterMayNotHaveThisParam:I.SetterMayNotHaveThisParam,{at:e.value.this}),r!==s&&this.raise(e.kind==="get"?l.BadGetterArity:l.BadSetterArity,{at:e}),e.kind==="set"&&e.value.rest&&this.raise(l.BadSetterRestParameter,{at:e})}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(e,s,r){e=e||this.state.start,s=s||this.state.startLoc;let i=r||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){let a=this.startNodeAt(e,s);a.qualification=i,a.id=this.flowParseRestrictedIdentifier(!0),i=this.finishNode(a,"QualifiedTypeIdentifier")}return i}flowParseGenericType(e,s,r){let i=this.startNodeAt(e,s);return i.typeParameters=null,i.id=this.flowParseQualifiedTypeIdentifier(e,s,r),this.match(47)&&(i.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(i,"GenericTypeAnnotation")}flowParseTypeofType(){let e=this.startNode();return this.expect(87),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")}flowParseTupleType(){let e=this.startNode();for(e.types=[],this.expect(0);this.state.pos0&&arguments[0]!==void 0?arguments[0]:[],s=null,r=null;for(this.match(78)&&(r=this.flowParseFunctionTypeParam(!0),r.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(s=this.flowParseFunctionTypeParam(!1)),{params:e,rest:s,_this:r}}flowIdentToTypeAnnotation(e,s,r,i){switch(i.name){case"any":return this.finishNode(r,"AnyTypeAnnotation");case"bool":case"boolean":return this.finishNode(r,"BooleanTypeAnnotation");case"mixed":return this.finishNode(r,"MixedTypeAnnotation");case"empty":return this.finishNode(r,"EmptyTypeAnnotation");case"number":return this.finishNode(r,"NumberTypeAnnotation");case"string":return this.finishNode(r,"StringTypeAnnotation");case"symbol":return this.finishNode(r,"SymbolTypeAnnotation");default:return this.checkNotUnderscore(i.name),this.flowParseGenericType(e,s,i)}}flowParsePrimaryType(){let e=this.state.start,s=this.state.startLoc,r=this.startNode(),i,a,n=!1,o=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,a=this.flowParseTupleType(),this.state.noAnonFunctionType=o,a;case 47:return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");case 10:if(this.next(),!this.match(11)&&!this.match(21))if(K(this.state.type)||this.match(78)){let c=this.lookahead().type;n=c!==17&&c!==14}else n=!0;if(n){if(this.state.noAnonFunctionType=!1,a=this.flowParseType(),this.state.noAnonFunctionType=o,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),a;this.eat(12)}return a?i=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]):i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case 129:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case 85:case 86:return r.value=this.match(85),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case 53:if(this.state.value==="-"){if(this.next(),this.match(130))return this.parseLiteralAtNode(-this.state.value,"NumberLiteralTypeAnnotation",r);if(this.match(131))return this.parseLiteralAtNode(-this.state.value,"BigIntLiteralTypeAnnotation",r);throw this.raise(I.UnexpectedSubtractionOperand,{at:this.state.startLoc})}throw this.unexpected();case 130:return this.parseLiteral(this.state.value,"NumberLiteralTypeAnnotation");case 131:return this.parseLiteral(this.state.value,"BigIntLiteralTypeAnnotation");case 88:return this.next(),this.finishNode(r,"VoidTypeAnnotation");case 84:return this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case 78:return this.next(),this.finishNode(r,"ThisTypeAnnotation");case 55:return this.next(),this.finishNode(r,"ExistsTypeAnnotation");case 87:return this.flowParseTypeofType();default:if(Vt(this.state.type)){let c=ve(this.state.type);return this.next(),super.createIdentifier(r,c)}else if(K(this.state.type))return this.isContextual(125)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(e,s,r,this.parseIdentifier())}throw this.unexpected()}flowParsePostfixType(){let e=this.state.start,s=this.state.startLoc,r=this.flowParsePrimaryType(),i=!1;for(;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){let a=this.startNodeAt(e,s),n=this.eat(18);i=i||n,this.expect(0),!n&&this.match(3)?(a.elementType=r,this.next(),r=this.finishNode(a,"ArrayTypeAnnotation")):(a.objectType=r,a.indexType=this.flowParseType(),this.expect(3),i?(a.optional=n,r=this.finishNode(a,"OptionalIndexedAccessType")):r=this.finishNode(a,"IndexedAccessType"))}return r}flowParsePrefixType(){let e=this.startNode();return this.eat(17)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()}flowParseAnonFunctionWithoutParens(){let e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){let s=this.startNodeAt(e.start,e.loc.start);return s.params=[this.reinterpretTypeAsFunctionTypeParam(e)],s.rest=null,s.this=null,s.returnType=this.flowParseType(),s.typeParameters=null,this.finishNode(s,"FunctionTypeAnnotation")}return e}flowParseIntersectionType(){let e=this.startNode();this.eat(45);let s=this.flowParseAnonFunctionWithoutParens();for(e.types=[s];this.eat(45);)e.types.push(this.flowParseAnonFunctionWithoutParens());return e.types.length===1?s:this.finishNode(e,"IntersectionTypeAnnotation")}flowParseUnionType(){let e=this.startNode();this.eat(43);let s=this.flowParseIntersectionType();for(e.types=[s];this.eat(43);)e.types.push(this.flowParseIntersectionType());return e.types.length===1?s:this.finishNode(e,"UnionTypeAnnotation")}flowParseType(){let e=this.state.inType;this.state.inType=!0;let s=this.flowParseUnionType();return this.state.inType=e,s}flowParseTypeOrImplicitInstantiation(){if(this.state.type===128&&this.state.value==="_"){let e=this.state.start,s=this.state.startLoc,r=this.parseIdentifier();return this.flowParseGenericType(e,s,r)}else return this.flowParseType()}flowParseTypeAnnotation(){let e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")}flowParseTypeAnnotatableIdentifier(e){let s=e?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(s.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(s)),s}typeCastToParameter(e){return e.expression.typeAnnotation=e.typeAnnotation,this.resetEndLocation(e.expression,e.typeAnnotation.loc.end),e.expression}flowParseVariance(){let e=null;return this.match(53)&&(e=this.startNode(),this.state.value==="+"?e.kind="plus":e.kind="minus",this.next(),this.finishNode(e,"Variance")),e}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return s?this.forwardNoArrowParamsConversionAt(e,()=>super.parseFunctionBody(e,!0,r)):super.parseFunctionBody(e,!1,r)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(this.match(14)){let i=this.startNode();[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),e.returnType=i.typeAnnotation?this.finishNode(i,"TypeAnnotation"):null}super.parseFunctionBodyAndFinish(e,s,r)}parseStatement(e,s){if(this.state.strict&&this.isContextual(125)){let i=this.lookahead();if(ye(i.type)){let a=this.startNode();return this.next(),this.flowParseInterface(a)}}else if(this.shouldParseEnums()&&this.isContextual(122)){let i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}let r=super.parseStatement(e,s);return this.flowPragma===void 0&&!this.isValidDirective(r)&&(this.flowPragma=null),r}parseExpressionStatement(e,s){if(s.type==="Identifier"){if(s.name==="declare"){if(this.match(80)||K(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(e)}else if(K(this.state.type)){if(s.name==="interface")return this.flowParseInterface(e);if(s.name==="type")return this.flowParseTypeAlias(e);if(s.name==="opaque")return this.flowParseOpaqueType(e,!1)}}return super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){let{type:e}=this.state;return or(e)||this.shouldParseEnums()&&e===122?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){let{type:e}=this.state;return or(e)||this.shouldParseEnums()&&e===122?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual(122)){let e=this.startNode();return this.next(),this.flowParseEnumDeclaration(e)}return super.parseExportDefaultExpression()}parseConditional(e,s,r,i){if(!this.match(17))return e;if(this.state.maybeInArrowParameters){let v=this.lookaheadCharCode();if(v===44||v===61||v===58||v===41)return this.setOptionalParametersError(i),e}this.expect(17);let a=this.state.clone(),n=this.state.noArrowAt,o=this.startNodeAt(s,r),{consequent:c,failed:f}=this.tryParseConditionalConsequent(),[y,T]=this.getArrowLikeExpressions(c);if(f||T.length>0){let v=[...n];if(T.length>0){this.state=a,this.state.noArrowAt=v;for(let N=0;N1&&this.raise(I.AmbiguousConditionalArrow,{at:a.startLoc}),f&&y.length===1&&(this.state=a,v.push(y[0].start),this.state.noArrowAt=v,{consequent:c,failed:f}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(c,!0),this.state.noArrowAt=n,this.expect(14),o.test=e,o.consequent=c,o.alternate=this.forwardNoArrowParamsConversionAt(o,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(o,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);let e=this.parseMaybeAssignAllowIn(),s=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:e,failed:s}}getArrowLikeExpressions(e,s){let r=[e],i=[];for(;r.length!==0;){let a=r.pop();a.type==="ArrowFunctionExpression"?(a.typeParameters||!a.returnType?this.finishArrowValidation(a):i.push(a),r.push(a.body)):a.type==="ConditionalExpression"&&(r.push(a.consequent),r.push(a.alternate))}return s?(i.forEach(a=>this.finishArrowValidation(a)),[i,[]]):xh(i,a=>a.params.every(n=>this.isAssignable(n,!0)))}finishArrowValidation(e){var s;this.toAssignableList(e.params,(s=e.extra)==null?void 0:s.trailingCommaLoc,!1),this.scope.enter(Ae|Xt),super.checkParams(e,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(e,s){let r;return this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?(this.state.noArrowParamsConversionAt.push(this.state.start),r=s(),this.state.noArrowParamsConversionAt.pop()):r=s(),r}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return e}assertModuleNodeAllowed(e){e.type==="ImportDeclaration"&&(e.importKind==="type"||e.importKind==="typeof")||e.type==="ExportNamedDeclaration"&&e.exportKind==="type"||e.type==="ExportAllDeclaration"&&e.exportKind==="type"||super.assertModuleNodeAllowed(e)}parseExport(e){let s=super.parseExport(e);return(s.type==="ExportNamedDeclaration"||s.type==="ExportAllDeclaration")&&(s.exportKind=s.exportKind||"value"),s}parseExportDeclaration(e){if(this.isContextual(126)){e.exportKind="type";let s=this.startNode();return this.next(),this.match(5)?(e.specifiers=this.parseExportSpecifiers(!0),this.parseExportFrom(e),null):this.flowParseTypeAlias(s)}else if(this.isContextual(127)){e.exportKind="type";let s=this.startNode();return this.next(),this.flowParseOpaqueType(s,!1)}else if(this.isContextual(125)){e.exportKind="type";let s=this.startNode();return this.next(),this.flowParseInterface(s)}else if(this.shouldParseEnums()&&this.isContextual(122)){e.exportKind="value";let s=this.startNode();return this.next(),this.flowParseEnumDeclaration(s)}else return super.parseExportDeclaration(e)}eatExportStar(e){return super.eatExportStar(...arguments)?!0:this.isContextual(126)&&this.lookahead().type===55?(e.exportKind="type",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(e){let{startLoc:s}=this.state,r=super.maybeParseExportNamespaceSpecifier(e);return r&&e.exportKind==="type"&&this.unexpected(s),r}parseClassId(e,s,r){super.parseClassId(e,s,r),this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(e,s,r){let{startLoc:i}=this.state;if(this.isContextual(121)){if(this.parseClassMemberFromModifier(e,s))return;s.declare=!0}super.parseClassMember(e,s,r),s.declare&&(s.type!=="ClassProperty"&&s.type!=="ClassPrivateProperty"&&s.type!=="PropertyDefinition"?this.raise(I.DeclareClassElement,{at:i}):s.value&&this.raise(I.DeclareClassFieldInitializer,{at:s.value}))}isIterator(e){return e==="iterator"||e==="asyncIterator"}readIterator(){let e=super.readWord1(),s="@@"+e;(!this.isIterator(e)||!this.state.inType)&&this.raise(l.InvalidIdentifier,{at:this.state.curPosition(),identifierName:s}),this.finishToken(128,s)}getTokenFromCode(e){let s=this.input.charCodeAt(this.state.pos+1);return e===123&&s===124?this.finishOp(6,2):this.state.inType&&(e===62||e===60)?this.finishOp(e===62?48:47,1):this.state.inType&&e===63?s===46?this.finishOp(18,2):this.finishOp(17,1):Do(e,s,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(e)}isAssignable(e,s){return e.type==="TypeCastExpression"?this.isAssignable(e.expression,s):super.isAssignable(e,s)}toAssignable(e){!(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)&&e.type==="AssignmentExpression"&&e.left.type==="TypeCastExpression"&&(e.left=this.typeCastToParameter(e.left)),super.toAssignable(...arguments)}toAssignableList(e,s,r){for(let i=0;i1||!s)&&this.raise(I.TypeCastInPattern,{at:a.typeAnnotation})}return e}parseArrayLike(e,s,r,i){let a=super.parseArrayLike(e,s,r,i);return s&&!this.state.maybeInArrowParameters&&this.toReferencedList(a.elements),a}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}else if(s.type==="MethodDefinition"&&a&&s.value.params){let o=s.value.params;o.length>0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}}pushClassPrivateMethod(e,s,r,i){s.variance&&this.unexpected(s.variance.loc.start),delete s.variance,this.match(47)&&(s.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(e,s,r,i)}parseClassSuper(e){if(super.parseClassSuper(e),e.superClass&&this.match(47)&&(e.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(110)){this.next();let s=e.implements=[];do{let r=this.startNode();r.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?r.typeParameters=this.flowParseTypeParameterInstantiation():r.typeParameters=null,s.push(this.finishNode(r,"ClassImplements"))}while(this.eat(12))}}checkGetterSetterParams(e){super.checkGetterSetterParams(e);let s=this.getObjectOrClassMethodParams(e);if(s.length>0){let r=s[0];this.isThisParam(r)&&e.kind==="get"?this.raise(I.GetterMayNotHaveThisParam,{at:r}):this.isThisParam(r)&&this.raise(I.SetterMayNotHaveThisParam,{at:r})}}parsePropertyNamePrefixOperator(e){e.variance=this.flowParseVariance()}parseObjPropValue(e,s,r,i,a,n,o,c){e.variance&&this.unexpected(e.variance.loc.start),delete e.variance;let f;this.match(47)&&!o&&(f=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected()),super.parseObjPropValue(e,s,r,i,a,n,o,c),f&&((e.value||e).typeParameters=f)}parseAssignableListItemTypes(e){return this.eat(17)&&(e.type!=="Identifier"&&this.raise(I.PatternIsOptional,{at:e}),this.isThisParam(e)&&this.raise(I.ThisParamMayNotBeOptional,{at:e}),e.optional=!0),this.match(14)?e.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(e)&&this.raise(I.ThisParamAnnotationRequired,{at:e}),this.match(29)&&this.isThisParam(e)&&this.raise(I.ThisParamNoDefault,{at:e}),this.resetEndLocation(e),e}parseMaybeDefault(e,s,r){let i=super.parseMaybeDefault(e,s,r);return i.type==="AssignmentPattern"&&i.typeAnnotation&&i.right.startsuper.parseMaybeAssign(e,s),i),!a.error)return a.node;let{context:c}=this.state,f=c[c.length-1];(f===U.j_oTag||f===U.j_expr)&&c.pop()}if((r=a)!=null&&r.error||this.match(47)){var n,o;i=i||this.state.clone();let c,f=this.tryParse(T=>{var v;c=this.flowParseTypeParameterDeclaration();let N=this.forwardNoArrowParamsConversionAt(c,()=>{let z=super.parseMaybeAssign(e,s);return this.resetStartLocationFromNode(z,c),z});(v=N.extra)!=null&&v.parenthesized&&T();let R=this.maybeUnwrapTypeCastExpression(N);return R.type!=="ArrowFunctionExpression"&&T(),R.typeParameters=c,this.resetStartLocationFromNode(R,c),N},i),y=null;if(f.node&&this.maybeUnwrapTypeCastExpression(f.node).type==="ArrowFunctionExpression"){if(!f.error&&!f.aborted)return f.node.async&&this.raise(I.UnexpectedTypeParameterBeforeAsyncArrowFunction,{at:c}),f.node;y=f.node}if((n=a)!=null&&n.node)return this.state=a.failState,a.node;if(y)return this.state=f.failState,y;throw(o=a)!=null&&o.thrown?a.error:f.thrown?f.error:this.raise(I.UnexpectedTokenAfterTypeParameter,{at:c})}return super.parseMaybeAssign(e,s)}parseArrow(e){if(this.match(14)){let s=this.tryParse(()=>{let r=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;let i=this.startNode();return[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=r,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),i});if(s.thrown)return null;s.error&&(this.state=s.failState),e.returnType=s.node.typeAnnotation?this.finishNode(s.node,"TypeAnnotation"):null}return super.parseArrow(e)}shouldParseArrow(e){return this.match(14)||super.shouldParseArrow(e)}setArrowFunctionParameters(e,s){this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?e.params=s:super.setArrowFunctionParameters(e,s)}checkParams(e,s,r){if(!(r&&this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1)){for(let i=0;i0&&this.raise(I.ThisParamMustBeFirst,{at:e.params[i]});return super.checkParams(...arguments)}}parseParenAndDistinguishExpression(e){return super.parseParenAndDistinguishExpression(e&&this.state.noArrowAt.indexOf(this.state.start)===-1)}parseSubscripts(e,s,r,i){if(e.type==="Identifier"&&e.name==="async"&&this.state.noArrowAt.indexOf(s)!==-1){this.next();let a=this.startNodeAt(s,r);a.callee=e,a.arguments=this.parseCallExpressionArguments(11,!1),e=this.finishNode(a,"CallExpression")}else if(e.type==="Identifier"&&e.name==="async"&&this.match(47)){let a=this.state.clone(),n=this.tryParse(c=>this.parseAsyncArrowWithTypeParameters(s,r)||c(),a);if(!n.error&&!n.aborted)return n.node;let o=this.tryParse(()=>super.parseSubscripts(e,s,r,i),a);if(o.node&&!o.error)return o.node;if(n.node)return this.state=n.failState,n.node;if(o.node)return this.state=o.failState,o.node;throw n.error||o.error}return super.parseSubscripts(e,s,r,i)}parseSubscript(e,s,r,i,a){if(this.match(18)&&this.isLookaheadToken_lt()){if(a.optionalChainMember=!0,i)return a.stop=!0,e;this.next();let n=this.startNodeAt(s,r);return n.callee=e,n.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),n.optional=!0,this.finishCallExpression(n,!0)}else if(!i&&this.shouldParseTypes()&&this.match(47)){let n=this.startNodeAt(s,r);n.callee=e;let o=this.tryParse(()=>(n.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),a.optionalChainMember&&(n.optional=!1),this.finishCallExpression(n,a.optionalChainMember)));if(o.node)return o.error&&(this.state=o.failState),o.node}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){super.parseNewCallee(e);let s=null;this.shouldParseTypes()&&this.match(47)&&(s=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),e.typeArguments=s}parseAsyncArrowWithTypeParameters(e,s){let r=this.startNodeAt(e,s);if(this.parseFunctionParams(r),!!this.parseArrow(r))return this.parseArrowExpression(r,void 0,!0)}readToken_mult_modulo(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===42&&s===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(e)}readToken_pipe_amp(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===124&&s===125){this.finishOp(9,2);return}super.readToken_pipe_amp(e)}parseTopLevel(e,s){let r=super.parseTopLevel(e,s);return this.state.hasFlowComment&&this.raise(I.UnterminatedFlowComment,{at:this.state.curPosition()}),r}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(I.NestedFlowComment,{at:this.state.startLoc});this.hasFlowCommentCompletion(),this.state.pos+=this.skipFlowComment(),this.state.hasFlowComment=!0;return}if(this.state.hasFlowComment){let e=this.input.indexOf("*-/",this.state.pos+2);if(e===-1)throw this.raise(l.UnterminatedComment,{at:this.state.curPosition()});this.state.pos=e+2+3;return}return super.skipBlockComment()}skipFlowComment(){let{pos:e}=this.state,s=2;for(;[32,9].includes(this.input.charCodeAt(e+s));)s++;let r=this.input.charCodeAt(s+e),i=this.input.charCodeAt(s+e+1);return r===58&&i===58?s+2:this.input.slice(s+e,s+e+12)==="flow-include"?s+12:r===58&&i!==58?s:!1}hasFlowCommentCompletion(){if(this.input.indexOf("*/",this.state.pos)===-1)throw this.raise(l.UnterminatedComment,{at:this.state.curPosition()})}flowEnumErrorBooleanMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumBooleanMemberNotInitialized,{at:e,memberName:i,enumName:r})}flowEnumErrorInvalidMemberInitializer(e,s){return this.raise(s.explicitType?s.explicitType==="symbol"?I.EnumInvalidMemberInitializerSymbolType:I.EnumInvalidMemberInitializerPrimaryType:I.EnumInvalidMemberInitializerUnknownType,Object.assign({at:e},s))}flowEnumErrorNumberMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumNumberMemberNotInitialized,{at:e,enumName:r,memberName:i})}flowEnumErrorStringMemberInconsistentlyInitailized(e,s){let{enumName:r}=s;this.raise(I.EnumStringMemberInconsistentlyInitailized,{at:e,enumName:r})}flowEnumMemberInit(){let e=this.state.startLoc,s=()=>this.match(12)||this.match(8);switch(this.state.type){case 130:{let r=this.parseNumericLiteral(this.state.value);return s()?{type:"number",loc:r.loc.start,value:r}:{type:"invalid",loc:e}}case 129:{let r=this.parseStringLiteral(this.state.value);return s()?{type:"string",loc:r.loc.start,value:r}:{type:"invalid",loc:e}}case 85:case 86:{let r=this.parseBooleanLiteral(this.match(85));return s()?{type:"boolean",loc:r.loc.start,value:r}:{type:"invalid",loc:e}}default:return{type:"invalid",loc:e}}}flowEnumMemberRaw(){let e=this.state.startLoc,s=this.parseIdentifier(!0),r=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:e};return{id:s,init:r}}flowEnumCheckExplicitTypeMismatch(e,s,r){let{explicitType:i}=s;i!==null&&i!==r&&this.flowEnumErrorInvalidMemberInitializer(e,s)}flowEnumMembers(e){let{enumName:s,explicitType:r}=e,i=new Set,a={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},n=!1;for(;!this.match(8);){if(this.eat(21)){n=!0;break}let o=this.startNode(),{id:c,init:f}=this.flowEnumMemberRaw(),y=c.name;if(y==="")continue;/^[a-z]/.test(y)&&this.raise(I.EnumInvalidMemberName,{at:c,memberName:y,suggestion:y[0].toUpperCase()+y.slice(1),enumName:s}),i.has(y)&&this.raise(I.EnumDuplicateMemberName,{at:c,memberName:y,enumName:s}),i.add(y);let T={enumName:s,explicitType:r,memberName:y};switch(o.id=c,f.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(f.loc,T,"boolean"),o.init=f.value,a.booleanMembers.push(this.finishNode(o,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(f.loc,T,"number"),o.init=f.value,a.numberMembers.push(this.finishNode(o,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(f.loc,T,"string"),o.init=f.value,a.stringMembers.push(this.finishNode(o,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(f.loc,T);case"none":switch(r){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(f.loc,T);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(f.loc,T);break;default:a.defaultedMembers.push(this.finishNode(o,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}return{members:a,hasUnknownMembers:n}}flowEnumStringMembers(e,s,r){let{enumName:i}=r;if(e.length===0)return s;if(s.length===0)return e;if(s.length>e.length){for(let a of e)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return s}else{for(let a of s)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return e}}flowEnumParseExplicitType(e){let{enumName:s}=e;if(!this.eatContextual(101))return null;if(!K(this.state.type))throw this.raise(I.EnumInvalidExplicitTypeUnknownSupplied,{at:this.state.startLoc,enumName:s});let{value:r}=this.state;return this.next(),r!=="boolean"&&r!=="number"&&r!=="string"&&r!=="symbol"&&this.raise(I.EnumInvalidExplicitType,{at:this.state.startLoc,enumName:s,invalidEnumType:r}),r}flowEnumBody(e,s){let r=s.name,i=s.loc.start,a=this.flowEnumParseExplicitType({enumName:r});this.expect(5);let{members:n,hasUnknownMembers:o}=this.flowEnumMembers({enumName:r,explicitType:a});switch(e.hasUnknownMembers=o,a){case"boolean":return e.explicitType=!0,e.members=n.booleanMembers,this.expect(8),this.finishNode(e,"EnumBooleanBody");case"number":return e.explicitType=!0,e.members=n.numberMembers,this.expect(8),this.finishNode(e,"EnumNumberBody");case"string":return e.explicitType=!0,e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,"EnumStringBody");case"symbol":return e.members=n.defaultedMembers,this.expect(8),this.finishNode(e,"EnumSymbolBody");default:{let c=()=>(e.members=[],this.expect(8),this.finishNode(e,"EnumStringBody"));e.explicitType=!1;let f=n.booleanMembers.length,y=n.numberMembers.length,T=n.stringMembers.length,v=n.defaultedMembers.length;if(!f&&!y&&!T&&!v)return c();if(!f&&!y)return e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,"EnumStringBody");if(!y&&!T&&f>=v){for(let N of n.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.booleanMembers,this.expect(8),this.finishNode(e,"EnumBooleanBody")}else if(!f&&!T&&y>=v){for(let N of n.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.numberMembers,this.expect(8),this.finishNode(e,"EnumNumberBody")}else return this.raise(I.EnumInconsistentMemberValues,{at:i,enumName:r}),c()}}}flowParseEnumDeclaration(e){let s=this.parseIdentifier();return e.id=s,e.body=this.flowEnumBody(this.startNode(),s),this.finishNode(e,"EnumDeclaration")}isLookaheadToken_lt(){let e=this.nextTokenStart();if(this.input.charCodeAt(e)===60){let s=this.input.charCodeAt(e+1);return s!==60&&s!==61}return!1}maybeUnwrapTypeCastExpression(e){return e.type==="TypeCastExpression"?e.expression:e}},Ph={__proto__:null,quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",lang:"\u2329",rang:"\u232A",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"},Be=j(qn||(qn=ht(["jsx"])))(t=>({AttributeIsEmpty:t("JSX attributes must only be assigned a non-empty expression."),MissingClosingTagElement:t(e=>{let{openingTagName:s}=e;return"Expected corresponding JSX closing tag for <".concat(s,">.")}),MissingClosingTagFragment:t("Expected corresponding JSX closing tag for <>."),UnexpectedSequenceExpression:t("Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?"),UnexpectedToken:t(e=>{let{unexpected:s,HTMLEntity:r}=e;return"Unexpected token `".concat(s,"`. Did you mean `").concat(r,"` or `{'").concat(s,"'}`?")}),UnsupportedJsxValue:t("JSX value should be either an expression or a quoted JSX text."),UnterminatedJsxContent:t("Unterminated JSX contents."),UnwrappedAdjacentJSXElements:t("Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?")}));function Ne(t){return t?t.type==="JSXOpeningFragment"||t.type==="JSXClosingFragment":!1}function Ge(t){if(t.type==="JSXIdentifier")return t.name;if(t.type==="JSXNamespacedName")return t.namespace.name+":"+t.name.name;if(t.type==="JSXMemberExpression")return Ge(t.object)+"."+Ge(t.property);throw new Error("Node had unexpected type: "+t.type)}var Th=t=>class extends t{jsxReadToken(){let e="",s=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(Be.UnterminatedJsxContent,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?r===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(138)):super.getTokenFromCode(r):(e+=this.input.slice(s,this.state.pos),this.finishToken(137,e));case 38:e+=this.input.slice(s,this.state.pos),e+=this.jsxReadEntity(),s=this.state.pos;break;case 62:case 125:default:Oe(r)?(e+=this.input.slice(s,this.state.pos),e+=this.jsxReadNewLine(!0),s=this.state.pos):++this.state.pos}}}jsxReadNewLine(e){let s=this.input.charCodeAt(this.state.pos),r;return++this.state.pos,s===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,r=e?` +`:`\r +`):r=String.fromCharCode(s),++this.state.curLine,this.state.lineStart=this.state.pos,r}jsxReadString(e){let s="",r=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(l.UnterminatedString,{at:this.state.startLoc});let i=this.input.charCodeAt(this.state.pos);if(i===e)break;i===38?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadEntity(),r=this.state.pos):Oe(i)?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return s+=this.input.slice(r,this.state.pos++),this.finishToken(129,s)}jsxReadEntity(){let e=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let s=10;this.codePointAtPos(this.state.pos)===120&&(s=16,++this.state.pos);let r=this.readInt(s,void 0,!1,"bail");if(r!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(r)}else{let s=0,r=!1;for(;s++<10&&this.state.posObject.hasOwnProperty.call(t,e)&&t[e];function vh(t){if(t==null)throw new Error("Unexpected ".concat(t," value."));return t}function Lr(t){if(!t)throw new Error("Assert fail")}function Sh(t){return Kt(t)||Eo(t)}var S=j(Un||(Un=ht(["typescript"])))(t=>({AbstractMethodHasImplementation:t(e=>{let{methodName:s}=e;return"Method '".concat(s,"' cannot have an implementation because it is marked abstract.")}),AbstractPropertyHasInitializer:t(e=>{let{propertyName:s}=e;return"Property '".concat(s,"' cannot have an initializer because it is marked abstract.")}),AccesorCannotDeclareThisParameter:t("'get' and 'set' accessors cannot declare 'this' parameters."),AccesorCannotHaveTypeParameters:t("An accessor cannot have type parameters."),CannotFindName:t(e=>{let{name:s}=e;return"Cannot find name '".concat(s,"'.")}),ClassMethodHasDeclare:t("Class methods cannot have the 'declare' modifier."),ClassMethodHasReadonly:t("Class methods cannot have the 'readonly' modifier."),ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:t("A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),ConstructorHasTypeParameters:t("Type parameters cannot appear on a constructor declaration."),DeclareAccessor:t(e=>{let{kind:s}=e;return"'declare' is not allowed in ".concat(s,"ters.")}),DeclareClassFieldHasInitializer:t("Initializers are not allowed in ambient contexts."),DeclareFunctionHasImplementation:t("An implementation cannot be declared in ambient contexts."),DuplicateAccessibilityModifier:t(e=>{let{modifier:s}=e;return"Accessibility modifier already seen."}),DuplicateModifier:t(e=>{let{modifier:s}=e;return"Duplicate modifier: '".concat(s,"'.")}),EmptyHeritageClauseType:t(e=>{let{token:s}=e;return"'".concat(s,"' list cannot be empty.")}),EmptyTypeArguments:t("Type argument list cannot be empty."),EmptyTypeParameters:t("Type parameter list cannot be empty."),ExpectedAmbientAfterExportDeclare:t("'export declare' must be followed by an ambient declaration."),ImportAliasHasImportType:t("An import alias can not use 'import type'."),IncompatibleModifiers:t(e=>{let{modifiers:s}=e;return"'".concat(s[0],"' modifier cannot be used with '").concat(s[1],"' modifier.")}),IndexSignatureHasAbstract:t("Index signatures cannot have the 'abstract' modifier."),IndexSignatureHasAccessibility:t(e=>{let{modifier:s}=e;return"Index signatures cannot have an accessibility modifier ('".concat(s,"').")}),IndexSignatureHasDeclare:t("Index signatures cannot have the 'declare' modifier."),IndexSignatureHasOverride:t("'override' modifier cannot appear on an index signature."),IndexSignatureHasStatic:t("Index signatures cannot have the 'static' modifier."),InitializerNotAllowedInAmbientContext:t("Initializers are not allowed in ambient contexts."),InvalidModifierOnTypeMember:t(e=>{let{modifier:s}=e;return"'".concat(s,"' modifier cannot appear on a type member.")}),InvalidModifierOnTypeParameter:t(e=>{let{modifier:s}=e;return"'".concat(s,"' modifier cannot appear on a type parameter.")}),InvalidModifierOnTypeParameterPositions:t(e=>{let{modifier:s}=e;return"'".concat(s,"' modifier can only appear on a type parameter of a class, interface or type alias.")}),InvalidModifiersOrder:t(e=>{let{orderedModifiers:s}=e;return"'".concat(s[0],"' modifier must precede '").concat(s[1],"' modifier.")}),InvalidTupleMemberLabel:t("Tuple members must be labeled with a simple identifier."),MissingInterfaceName:t("'interface' declarations must be followed by an identifier."),MixedLabeledAndUnlabeledElements:t("Tuple members must all have names or all not have names."),NonAbstractClassHasAbstractMethod:t("Abstract methods can only appear within an abstract class."),NonClassMethodPropertyHasAbstractModifer:t("'abstract' modifier can only appear on a class, method, or property declaration."),OptionalTypeBeforeRequired:t("A required element cannot follow an optional element."),OverrideNotInSubClass:t("This member cannot have an 'override' modifier because its containing class does not extend another class."),PatternIsOptional:t("A binding pattern parameter cannot be optional in an implementation signature."),PrivateElementHasAbstract:t("Private elements cannot have the 'abstract' modifier."),PrivateElementHasAccessibility:t(e=>{let{modifier:s}=e;return"Private elements cannot have an accessibility modifier ('".concat(s,"').")}),ReadonlyForMethodSignature:t("'readonly' modifier can only appear on a property declaration or index signature."),ReservedArrowTypeParam:t("This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`."),ReservedTypeAssertion:t("This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),SetAccesorCannotHaveOptionalParameter:t("A 'set' accessor cannot have an optional parameter."),SetAccesorCannotHaveRestParameter:t("A 'set' accessor cannot have rest parameter."),SetAccesorCannotHaveReturnType:t("A 'set' accessor cannot have a return type annotation."),SingleTypeParameterWithoutTrailingComma:t(e=>{let{typeParameterName:s}=e;return"Single type parameter ".concat(s," should have a trailing comma. Example usage: <").concat(s,",>.")}),StaticBlockCannotHaveModifier:t("Static class blocks cannot have any modifier."),TypeAnnotationAfterAssign:t("Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`."),TypeImportCannotSpecifyDefaultAndNamed:t("A type-only import can specify a default import or named bindings, but not both."),TypeModifierIsUsedInTypeExports:t("The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),TypeModifierIsUsedInTypeImports:t("The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),UnexpectedParameterModifier:t("A parameter property is only allowed in a constructor implementation."),UnexpectedReadonly:t("'readonly' type modifier is only permitted on array and tuple literal types."),UnexpectedTypeAnnotation:t("Did not expect a type annotation here."),UnexpectedTypeCastInParameter:t("Unexpected type cast in parameter position."),UnsupportedImportTypeArgument:t("Argument in a type import must be a string literal."),UnsupportedParameterPropertyKind:t("A parameter property may not be declared using a binding pattern."),UnsupportedSignatureParameterKind:t(e=>{let{type:s}=e;return"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ".concat(s,".")})}));function wh(t){switch(t){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function Or(t){return t==="private"||t==="public"||t==="protected"}function Nh(t){return t==="in"||t==="out"}var Ih=t=>class extends t{getScopeHandler(){return bh}tsIsIdentifier(){return K(this.state.type)}tsTokenCanFollowModifier(){return(this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(134)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()}tsNextTokenCanFollowModifier(){return this.next(),this.tsTokenCanFollowModifier()}tsParseModifier(e,s){if(!K(this.state.type)&&this.state.type!==58)return;let r=this.state.value;if(e.indexOf(r)!==-1){if(s&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return r}}tsParseModifiers(e){let{modified:s,allowedModifiers:r,disallowedModifiers:i,stopOnStartOfClassStaticBlock:a,errorTemplate:n=S.InvalidModifierOnTypeMember}=e,o=(f,y,T,v)=>{y===T&&s[v]&&this.raise(S.InvalidModifiersOrder,{at:f,orderedModifiers:[T,v]})},c=(f,y,T,v)=>{(s[T]&&y===v||s[v]&&y===T)&&this.raise(S.IncompatibleModifiers,{at:f,modifiers:[T,v]})};for(;;){let{startLoc:f}=this.state,y=this.tsParseModifier(r.concat(i!=null?i:[]),a);if(!y)break;Or(y)?s.accessibility?this.raise(S.DuplicateAccessibilityModifier,{at:f,modifier:y}):(o(f,y,y,"override"),o(f,y,y,"static"),o(f,y,y,"readonly"),s.accessibility=y):Nh(y)?(s[y]&&this.raise(S.DuplicateModifier,{at:f,modifier:y}),s[y]=!0,o(f,y,"in","out")):(Object.hasOwnProperty.call(s,y)?this.raise(S.DuplicateModifier,{at:f,modifier:y}):(o(f,y,"static","readonly"),o(f,y,"static","override"),o(f,y,"override","readonly"),o(f,y,"abstract","override"),c(f,y,"declare","override"),c(f,y,"static","abstract")),s[y]=!0),i!=null&&i.includes(y)&&this.raise(n,{at:f,modifier:y})}}tsIsListTerminator(e){switch(e){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}throw new Error("Unreachable")}tsParseList(e,s){let r=[];for(;!this.tsIsListTerminator(e);)r.push(s());return r}tsParseDelimitedList(e,s,r){return vh(this.tsParseDelimitedListWorker(e,s,!0,r))}tsParseDelimitedListWorker(e,s,r,i){let a=[],n=-1;for(;!this.tsIsListTerminator(e);){n=-1;let o=s();if(o==null)return;if(a.push(o),this.eat(12)){n=this.state.lastTokStart;continue}if(this.tsIsListTerminator(e))break;r&&this.expect(12);return}return i&&(i.value=n),a}tsParseBracketedList(e,s,r,i,a){i||(r?this.expect(0):this.expect(47));let n=this.tsParseDelimitedList(e,s,a);return r?this.expect(3):this.expect(48),n}tsParseImportType(){let e=this.startNode();return this.expect(83),this.expect(10),this.match(129)||this.raise(S.UnsupportedImportTypeArgument,{at:this.state.startLoc}),e.argument=this.parseExprAtom(),this.expect(11),this.eat(16)&&(e.qualifier=this.tsParseEntityName()),this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSImportType")}tsParseEntityName(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=this.parseIdentifier(e);for(;this.eat(16);){let r=this.startNodeAtNode(s);r.left=s,r.right=this.parseIdentifier(e),s=this.finishNode(r,"TSQualifiedName")}return s}tsParseTypeReference(){let e=this.startNode();return e.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSTypeReference")}tsParseThisTypePredicate(e){this.next();let s=this.startNodeAtNode(e);return s.parameterName=e,s.typeAnnotation=this.tsParseTypeAnnotation(!1),s.asserts=!1,this.finishNode(s,"TSTypePredicate")}tsParseThisTypeNode(){let e=this.startNode();return this.next(),this.finishNode(e,"TSThisType")}tsParseTypeQuery(){let e=this.startNode();return this.expect(87),this.match(83)?e.exprName=this.tsParseImportType():e.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSTypeQuery")}tsParseInOutModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:["in","out"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:S.InvalidModifierOnTypeParameter})}tsParseNoneModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:[],disallowedModifiers:["in","out"],errorTemplate:S.InvalidModifierOnTypeParameterPositions})}tsParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.tsParseNoneModifiers.bind(this),s=this.startNode();return e(s),s.name=this.tsParseTypeParameterName(),s.constraint=this.tsEatThenParseType(81),s.default=this.tsEatThenParseType(29),this.finishNode(s,"TSTypeParameter")}tsTryParseTypeParameters(e){if(this.match(47))return this.tsParseTypeParameters(e)}tsParseTypeParameters(e){let s=this.startNode();this.match(47)||this.match(138)?this.next():this.unexpected();let r={value:-1};return s.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,e),!1,!0,r),s.params.length===0&&this.raise(S.EmptyTypeParameters,{at:s}),r.value!==-1&&this.addExtra(s,"trailingComma",r.value),this.finishNode(s,"TSTypeParameterDeclaration")}tsTryNextParseConstantContext(){if(this.lookahead().type!==75)return null;this.next();let e=this.tsParseTypeReference();return e.typeParameters&&this.raise(S.CannotFindName,{at:e.typeName,name:"const"}),e}tsFillSignature(e,s){let r=e===19,i="parameters",a="typeAnnotation";s.typeParameters=this.tsTryParseTypeParameters(),this.expect(10),s[i]=this.tsParseBindingListForSignature(),r?s[a]=this.tsParseTypeOrTypePredicateAnnotation(e):this.match(e)&&(s[a]=this.tsParseTypeOrTypePredicateAnnotation(e))}tsParseBindingListForSignature(){return this.parseBindingList(11,41).map(e=>(e.type!=="Identifier"&&e.type!=="RestElement"&&e.type!=="ObjectPattern"&&e.type!=="ArrayPattern"&&this.raise(S.UnsupportedSignatureParameterKind,{at:e,type:e.type}),e))}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(e,s){return this.tsFillSignature(14,s),this.tsParseTypeMemberSemicolon(),this.finishNode(s,e)}tsIsUnambiguouslyIndexSignature(){return this.next(),K(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(e){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);let s=this.parseIdentifier();s.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(s),this.expect(3),e.parameters=[s];let r=this.tsTryParseTypeAnnotation();return r&&(e.typeAnnotation=r),this.tsParseTypeMemberSemicolon(),this.finishNode(e,"TSIndexSignature")}tsParsePropertyOrMethodSignature(e,s){this.eat(17)&&(e.optional=!0);let r=e;if(this.match(10)||this.match(47)){s&&this.raise(S.ReadonlyForMethodSignature,{at:e});let i=r;i.kind&&this.match(47)&&this.raise(S.AccesorCannotHaveTypeParameters,{at:this.state.curPosition()}),this.tsFillSignature(14,i),this.tsParseTypeMemberSemicolon();let a="parameters",n="typeAnnotation";if(i.kind==="get")i[a].length>0&&(this.raise(l.BadGetterArity,{at:this.state.curPosition()}),this.isThisParam(i[a][0])&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}));else if(i.kind==="set"){if(i[a].length!==1)this.raise(l.BadSetterArity,{at:this.state.curPosition()});else{let o=i[a][0];this.isThisParam(o)&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}),o.type==="Identifier"&&o.optional&&this.raise(S.SetAccesorCannotHaveOptionalParameter,{at:this.state.curPosition()}),o.type==="RestElement"&&this.raise(S.SetAccesorCannotHaveRestParameter,{at:this.state.curPosition()})}i[n]&&this.raise(S.SetAccesorCannotHaveReturnType,{at:i[n]})}else i.kind="method";return this.finishNode(i,"TSMethodSignature")}else{let i=r;s&&(i.readonly=!0);let a=this.tsTryParseTypeAnnotation();return a&&(i.typeAnnotation=a),this.tsParseTypeMemberSemicolon(),this.finishNode(i,"TSPropertySignature")}}tsParseTypeMember(){let e=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",e);if(this.match(77)){let r=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",e):(e.key=this.createIdentifier(r,"new"),this.tsParsePropertyOrMethodSignature(e,!1))}this.tsParseModifiers({modified:e,allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]});let s=this.tsTryParseIndexSignature(e);return s||(this.parsePropertyName(e),!e.computed&&e.key.type==="Identifier"&&(e.key.name==="get"||e.key.name==="set")&&this.tsTokenCanFollowModifier()&&(e.kind=e.key.name,this.parsePropertyName(e)),this.tsParsePropertyOrMethodSignature(e,!!e.readonly))}tsParseTypeLiteral(){let e=this.startNode();return e.members=this.tsParseObjectTypeMembers(),this.finishNode(e,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(5);let e=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),e}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(118):(this.isContextual(118)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedTypeParameter(){let e=this.startNode();return e.name=this.tsParseTypeParameterName(),e.constraint=this.tsExpectThenParseType(58),this.finishNode(e,"TSTypeParameter")}tsParseMappedType(){let e=this.startNode();return this.expect(5),this.match(53)?(e.readonly=this.state.value,this.next(),this.expectContextual(118)):this.eatContextual(118)&&(e.readonly=!0),this.expect(0),e.typeParameter=this.tsParseMappedTypeParameter(),e.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(e.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(e.optional=!0),e.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(e,"TSMappedType")}tsParseTupleType(){let e=this.startNode();e.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let s=!1,r=null;return e.elementTypes.forEach(i=>{var a;let{type:n}=i;s&&n!=="TSRestType"&&n!=="TSOptionalType"&&!(n==="TSNamedTupleMember"&&i.optional)&&this.raise(S.OptionalTypeBeforeRequired,{at:i}),s=s||n==="TSNamedTupleMember"&&i.optional||n==="TSOptionalType",n==="TSRestType"&&(i=i.typeAnnotation,n=i.type);let o=n==="TSNamedTupleMember";r=(a=r)!=null?a:o,r!==o&&this.raise(S.MixedLabeledAndUnlabeledElements,{at:i})}),this.finishNode(e,"TSTupleType")}tsParseTupleElementType(){let{start:e,startLoc:s}=this.state,r=this.eat(21),i=this.tsParseType(),a=this.eat(17);if(this.eat(14)){let o=this.startNodeAtNode(i);o.optional=a,i.type==="TSTypeReference"&&!i.typeParameters&&i.typeName.type==="Identifier"?o.label=i.typeName:(this.raise(S.InvalidTupleMemberLabel,{at:i}),o.label=i),o.elementType=this.tsParseType(),i=this.finishNode(o,"TSNamedTupleMember")}else if(a){let o=this.startNodeAtNode(i);o.typeAnnotation=i,i=this.finishNode(o,"TSOptionalType")}if(r){let o=this.startNodeAt(e,s);o.typeAnnotation=i,i=this.finishNode(o,"TSRestType")}return i}tsParseParenthesizedType(){let e=this.startNode();return this.expect(10),e.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(e,"TSParenthesizedType")}tsParseFunctionOrConstructorType(e,s){let r=this.startNode();return e==="TSConstructorType"&&(r.abstract=!!s,s&&this.next(),this.next()),this.tsFillSignature(19,r),this.finishNode(r,e)}tsParseLiteralTypeNode(){let e=this.startNode();return e.literal=(()=>{switch(this.state.type){case 130:case 131:case 129:case 85:case 86:return this.parseExprAtom();default:throw this.unexpected()}})(),this.finishNode(e,"TSLiteralType")}tsParseTemplateLiteralType(){let e=this.startNode();return e.literal=this.parseTemplate(!1),this.finishNode(e,"TSLiteralType")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){let e=this.tsParseThisTypeNode();return this.isContextual(113)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(e):e}tsParseNonArrayType(){switch(this.state.type){case 129:case 130:case 131:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){let e=this.startNode(),s=this.lookahead();if(s.type!==130&&s.type!==131)throw this.unexpected();return e.literal=this.parseMaybeUnary(),this.finishNode(e,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{let{type:e}=this.state;if(K(e)||e===88||e===84){let s=e===88?"TSVoidKeyword":e===84?"TSNullKeyword":wh(this.state.value);if(s!==void 0&&this.lookaheadCharCode()!==46){let r=this.startNode();return this.next(),this.finishNode(r,s)}return this.tsParseTypeReference()}}}throw this.unexpected()}tsParseArrayTypeOrHigher(){let e=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){let s=this.startNodeAtNode(e);s.elementType=e,this.expect(3),e=this.finishNode(s,"TSArrayType")}else{let s=this.startNodeAtNode(e);s.objectType=e,s.indexType=this.tsParseType(),this.expect(3),e=this.finishNode(s,"TSIndexedAccessType")}return e}tsParseTypeOperator(){let e=this.startNode(),s=this.state.value;return this.next(),e.operator=s,e.typeAnnotation=this.tsParseTypeOperatorOrHigher(),s==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(e),this.finishNode(e,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(e){switch(e.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(S.UnexpectedReadonly,{at:e})}}tsParseInferType(){let e=this.startNode();this.expectContextual(112);let s=this.startNode();return s.name=this.tsParseTypeParameterName(),s.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),e.typeParameter=this.finishNode(s,"TSTypeParameter"),this.finishNode(e,"TSInferType")}tsParseConstraintForInferType(){if(this.eat(81)){let e=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return e}}tsParseTypeOperatorOrHigher(){return Po(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(112)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(e,s,r){let i=this.startNode(),a=this.eat(r),n=[];do n.push(s());while(this.eat(r));return n.length===1&&!a?n[0]:(i.types=n,this.finishNode(i,e))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(K(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){let{errors:e}=this.state,s=e.length;try{return this.parseObjectLike(8,!0),e.length===s}catch{return!1}}if(this.match(0)){this.next();let{errors:e}=this.state,s=e.length;try{return this.parseBindingList(3,93,!0),e.length===s}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(e){return this.tsInType(()=>{let s=this.startNode();this.expect(e);let r=this.startNode(),i=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(i&&this.match(78)){let o=this.tsParseThisTypeOrThisTypePredicate();return o.type==="TSThisType"?(r.parameterName=o,r.asserts=!0,r.typeAnnotation=null,o=this.finishNode(r,"TSTypePredicate")):(this.resetStartLocationFromNode(o,r),o.asserts=!0),s.typeAnnotation=o,this.finishNode(s,"TSTypeAnnotation")}let a=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!a)return i?(r.parameterName=this.parseIdentifier(),r.asserts=i,r.typeAnnotation=null,s.typeAnnotation=this.finishNode(r,"TSTypePredicate"),this.finishNode(s,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,s);let n=this.tsParseTypeAnnotation(!1);return r.parameterName=a,r.typeAnnotation=n,r.asserts=i,s.typeAnnotation=this.finishNode(r,"TSTypePredicate"),this.finishNode(s,"TSTypeAnnotation")})}tsTryParseTypeOrTypePredicateAnnotation(){return this.match(14)?this.tsParseTypeOrTypePredicateAnnotation(14):void 0}tsTryParseTypeAnnotation(){return this.match(14)?this.tsParseTypeAnnotation():void 0}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){let e=this.parseIdentifier();if(this.isContextual(113)&&!this.hasPrecedingLineBreak())return this.next(),e}tsParseTypePredicateAsserts(){if(this.state.type!==106)return!1;let e=this.state.containsEsc;return this.next(),!K(this.state.type)&&!this.match(78)?!1:(e&&this.raise(l.InvalidEscapedReservedWord,{at:this.state.lastTokStartLoc,reservedWord:"asserts"}),!0)}tsParseTypeAnnotation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.startNode();return this.tsInType(()=>{e&&this.expect(14),s.typeAnnotation=this.tsParseType()}),this.finishNode(s,"TSTypeAnnotation")}tsParseType(){Lr(this.state.inType);let e=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return e;let s=this.startNodeAtNode(e);return s.checkType=e,s.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),s.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),s.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(s,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual(120)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(S.ReservedTypeAssertion,{at:this.state.startLoc});let e=this.startNode(),s=this.tsTryNextParseConstantContext();return e.typeAnnotation=s||this.tsNextThenParseType(),this.expect(48),e.expression=this.parseMaybeUnary(),this.finishNode(e,"TSTypeAssertion")}tsParseHeritageClause(e){let s=this.state.startLoc,r=this.tsParseDelimitedList("HeritageClauseElement",()=>{let i=this.startNode();return i.expression=this.tsParseEntityName(),this.match(47)&&(i.typeParameters=this.tsParseTypeArguments()),this.finishNode(i,"TSExpressionWithTypeArguments")});return r.length||this.raise(S.EmptyHeritageClauseType,{at:s,token:e}),r}tsParseInterfaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.hasFollowingLineBreak())return null;this.expectContextual(125),s.declare&&(e.declare=!0),K(this.state.type)?(e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Oo)):(e.id=null,this.raise(S.MissingInterfaceName,{at:this.state.startLoc})),e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.eat(81)&&(e.extends=this.tsParseHeritageClause("extends"));let r=this.startNode();return r.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),e.body=this.finishNode(r,"TSInterfaceBody"),this.finishNode(e,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(e){return e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Bo),e.typeAnnotation=this.tsInType(()=>{if(e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.expect(29),this.isContextual(111)&&this.lookahead().type!==16){let s=this.startNode();return this.next(),this.finishNode(s,"TSIntrinsicKeyword")}return this.tsParseType()}),this.semicolon(),this.finishNode(e,"TSTypeAliasDeclaration")}tsInNoContext(e){let s=this.state.context;this.state.context=[s[0]];try{return e()}finally{this.state.context=s}}tsInType(e){let s=this.state.inType;this.state.inType=!0;try{return e()}finally{this.state.inType=s}}tsInDisallowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsInAllowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsEatThenParseType(e){return this.match(e)?this.tsNextThenParseType():void 0}tsExpectThenParseType(e){return this.tsDoThenParseType(()=>this.expect(e))}tsNextThenParseType(){return this.tsDoThenParseType(()=>this.next())}tsDoThenParseType(e){return this.tsInType(()=>(e(),this.tsParseType()))}tsParseEnumMember(){let e=this.startNode();return e.id=this.match(129)?this.parseExprAtom():this.parseIdentifier(!0),this.eat(29)&&(e.initializer=this.parseMaybeAssignAllowIn()),this.finishNode(e,"TSEnumMember")}tsParseEnumDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return s.const&&(e.const=!0),s.declare&&(e.declare=!0),this.expectContextual(122),e.id=this.parseIdentifier(),this.checkIdentifier(e.id,e.const?Ro:Pr),this.expect(5),e.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(e,"TSEnumDeclaration")}tsParseModuleBlock(){let e=this.startNode();return this.scope.enter(Ke),this.expect(5),this.parseBlockOrModuleBlockBody(e.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(e,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.parseIdentifier(),s||this.checkIdentifier(e.id,jo),this.eat(16)){let r=this.startNode();this.tsParseModuleOrNamespaceDeclaration(r,!0),e.body=r}else this.scope.enter(pt),this.prodParam.enter(He),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(e,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(e){return this.isContextual(109)?(e.global=!0,e.id=this.parseIdentifier()):this.match(129)?e.id=this.parseExprAtom():this.unexpected(),this.match(5)?(this.scope.enter(pt),this.prodParam.enter(He),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(e,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(e,s){e.isExport=s||!1,e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Te),this.expect(29);let r=this.tsParseModuleReference();return e.importKind==="type"&&r.type!=="TSExternalModuleReference"&&this.raise(S.ImportAliasHasImportType,{at:r}),e.moduleReference=r,this.semicolon(),this.finishNode(e,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual(116)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){let e=this.startNode();if(this.expectContextual(116),this.expect(10),!this.match(129))throw this.unexpected();return e.expression=this.parseExprAtom(),this.expect(11),this.finishNode(e,"TSExternalModuleReference")}tsLookAhead(e){let s=this.state.clone(),r=e();return this.state=s,r}tsTryParseAndCatch(e){let s=this.tryParse(r=>e()||r());if(!(s.aborted||!s.node))return s.error&&(this.state=s.failState),s.node}tsTryParse(e){let s=this.state.clone(),r=e();if(r!==void 0&&r!==!1)return r;this.state=s}tsTryParseDeclare(e){if(this.isLineTerminator())return;let s=this.state.type,r;return this.isContextual(99)&&(s=74,r="let"),this.tsInAmbientContext(()=>{if(s===68)return e.declare=!0,this.parseFunctionStatement(e,!1,!0);if(s===80)return e.declare=!0,this.parseClass(e,!0,!1);if(s===122)return this.tsParseEnumDeclaration(e,{declare:!0});if(s===109)return this.tsParseAmbientExternalModuleDeclaration(e);if(s===75||s===74)return!this.match(75)||!this.isLookaheadContextual("enum")?(e.declare=!0,this.parseVarStatement(e,r||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(e,{const:!0,declare:!0}));if(s===125){let i=this.tsParseInterfaceDeclaration(e,{declare:!0});if(i)return i}if(K(s))return this.tsParseDeclaration(e,this.state.value,!0)})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0)}tsParseExpressionStatement(e,s){switch(s.name){case"declare":{let r=this.tsTryParseDeclare(e);if(r)return r.declare=!0,r;break}case"global":if(this.match(5)){this.scope.enter(pt),this.prodParam.enter(He);let r=e;return r.global=!0,r.id=s,r.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(r,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(e,s.name,!1)}}tsParseDeclaration(e,s,r){switch(s){case"abstract":if(this.tsCheckLineTerminator(r)&&(this.match(80)||K(this.state.type)))return this.tsParseAbstractDeclaration(e);break;case"module":if(this.tsCheckLineTerminator(r)){if(this.match(129))return this.tsParseAmbientExternalModuleDeclaration(e);if(K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e)}break;case"namespace":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e);break;case"type":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseTypeAliasDeclaration(e);break}}tsCheckLineTerminator(e){return e?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(e,s){if(!this.match(47))return;let r=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;let i=this.tsTryParseAndCatch(()=>{let a=this.startNodeAt(e,s);return a.typeParameters=this.tsParseTypeParameters(),super.parseFunctionParams(a),a.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),a});if(this.state.maybeInArrowParameters=r,!!i)return this.parseArrowExpression(i,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){let e=this.startNode();return e.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))),e.params.length===0&&this.raise(S.EmptyTypeArguments,{at:e}),this.expect(48),this.finishNode(e,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){return To(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(e,s){let r=this.state.start,i=this.state.startLoc,a,n=!1,o=!1;if(e!==void 0){let y={};this.tsParseModifiers({modified:y,allowedModifiers:["public","private","protected","override","readonly"]}),a=y.accessibility,o=y.override,n=y.readonly,e===!1&&(a||n||o)&&this.raise(S.UnexpectedParameterModifier,{at:i})}let c=this.parseMaybeDefault();this.parseAssignableListItemTypes(c);let f=this.parseMaybeDefault(c.start,c.loc.start,c);if(a||n||o){let y=this.startNodeAt(r,i);return s.length&&(y.decorators=s),a&&(y.accessibility=a),n&&(y.readonly=n),o&&(y.override=o),f.type!=="Identifier"&&f.type!=="AssignmentPattern"&&this.raise(S.UnsupportedParameterPropertyKind,{at:y}),y.parameter=f,this.finishNode(y,"TSParameterProperty")}return s.length&&(c.decorators=s),f}isSimpleParameter(e){return e.type==="TSParameterProperty"&&super.isSimpleParameter(e.parameter)||super.isSimpleParameter(e)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.match(14)&&(e.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));let i=s==="FunctionDeclaration"?"TSDeclareFunction":s==="ClassMethod"||s==="ClassPrivateMethod"?"TSDeclareMethod":void 0;if(i&&!this.match(5)&&this.isLineTerminator()){this.finishNode(e,i);return}if(i==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(S.DeclareFunctionHasImplementation,{at:e}),e.declare)){super.parseFunctionBodyAndFinish(e,i,r);return}super.parseFunctionBodyAndFinish(e,s,r)}registerFunctionStatementId(e){!e.body&&e.id?this.checkIdentifier(e.id,Tr):super.registerFunctionStatementId(...arguments)}tsCheckForInvalidTypeCasts(e){e.forEach(s=>{(s==null?void 0:s.type)==="TSTypeCastExpression"&&this.raise(S.UnexpectedTypeAnnotation,{at:s.typeAnnotation})})}toReferencedList(e,s){return this.tsCheckForInvalidTypeCasts(e),e}parseArrayLike(){let e=super.parseArrayLike(...arguments);return e.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(e.elements),e}parseSubscript(e,s,r,i,a){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();let o=this.startNodeAt(s,r);return o.expression=e,this.finishNode(o,"TSNonNullExpression")}let n=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(i)return a.stop=!0,e;a.optionalChainMember=n=!0,this.next()}if(this.match(47)||this.match(51)){let o,c=this.tsTryParseAndCatch(()=>{if(!i&&this.atPossibleAsyncArrow(e)){let T=this.tsTryParseGenericAsyncArrowFunction(s,r);if(T)return T}let f=this.tsParseTypeArgumentsInExpression();if(!f)throw this.unexpected();if(n&&!this.match(10))throw o=this.state.curPosition(),this.unexpected();if(ut(this.state.type)){let T=this.parseTaggedTemplateExpression(e,s,r,a);return T.typeParameters=f,T}if(!i&&this.eat(10)){let T=this.startNodeAt(s,r);return T.callee=e,T.arguments=this.parseCallExpressionArguments(11,!1),this.tsCheckForInvalidTypeCasts(T.arguments),T.typeParameters=f,a.optionalChainMember&&(T.optional=n),this.finishCallExpression(T,a.optionalChainMember)}if(Sh(this.state.type)&&this.state.type!==10)throw this.unexpected();let y=this.startNodeAt(s,r);return y.expression=e,y.typeParameters=f,this.finishNode(y,"TSInstantiationExpression")});if(o&&this.unexpected(o,10),c)return c}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){var s;super.parseNewCallee(e);let{callee:r}=e;r.type==="TSInstantiationExpression"&&!((s=r.extra)!=null&&s.parenthesized)&&(e.typeParameters=r.typeParameters,e.callee=r.expression)}parseExprOp(e,s,r,i){if(lt(58)>i&&!this.hasPrecedingLineBreak()&&this.isContextual(93)){let a=this.startNodeAt(s,r);a.expression=e;let n=this.tsTryNextParseConstantContext();return n?a.typeAnnotation=n:a.typeAnnotation=this.tsNextThenParseType(),this.finishNode(a,"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(a,s,r,i)}return super.parseExprOp(e,s,r,i)}checkReservedWord(e,s,r,i){this.state.isAmbientContext||super.checkReservedWord(e,s,r,i)}checkDuplicateExports(){}parseImport(e){if(e.importKind="value",K(this.state.type)||this.match(55)||this.match(5)){let r=this.lookahead();if(this.isContextual(126)&&r.type!==12&&r.type!==97&&r.type!==29&&(e.importKind="type",this.next(),r=this.lookahead()),K(this.state.type)&&r.type===29)return this.tsParseImportEqualsDeclaration(e)}let s=super.parseImport(e);return s.importKind==="type"&&s.specifiers.length>1&&s.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(S.TypeImportCannotSpecifyDefaultAndNamed,{at:s}),s}parseExport(e){if(this.match(83))return this.next(),this.isContextual(126)&&this.lookaheadCharCode()!==61?(e.importKind="type",this.next()):e.importKind="value",this.tsParseImportEqualsDeclaration(e,!0);if(this.eat(29)){let s=e;return s.expression=this.parseExpression(),this.semicolon(),this.finishNode(s,"TSExportAssignment")}else if(this.eatContextual(93)){let s=e;return this.expectContextual(124),s.id=this.parseIdentifier(),this.semicolon(),this.finishNode(s,"TSNamespaceExportDeclaration")}else return this.isContextual(126)&&this.lookahead().type===5?(this.next(),e.exportKind="type"):e.exportKind="value",super.parseExport(e)}isAbstractClass(){return this.isContextual(120)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){let e=this.startNode();return this.next(),e.abstract=!0,this.parseClass(e,!0,!0),e}if(this.match(125)){let e=this.tsParseInterfaceDeclaration(this.startNode());if(e)return e}return super.parseExportDefaultExpression()}parseVarStatement(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,{isAmbientContext:i}=this.state,a=super.parseVarStatement(e,s,r||i);if(!i)return a;for(let{id:n,init:o}of a.declarations)!o||(s!=="const"||!!n.typeAnnotation?this.raise(S.InitializerNotAllowedInAmbientContext,{at:o}):o.type!=="StringLiteral"&&o.type!=="BooleanLiteral"&&o.type!=="NumericLiteral"&&o.type!=="BigIntLiteral"&&(o.type!=="TemplateLiteral"||o.expressions.length>0)&&!kh(o)&&this.raise(S.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,{at:o}));return a}parseStatementContent(e,s){if(this.match(75)&&this.isLookaheadContextual("enum")){let r=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(r,{const:!0})}if(this.isContextual(122))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(125)){let r=this.tsParseInterfaceDeclaration(this.startNode());if(r)return r}return super.parseStatementContent(e,s)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(e,s){return s.some(r=>Or(r)?e.accessibility===r:!!e[r])}tsIsStartOfStaticBlocks(){return this.isContextual(104)&&this.lookaheadCharCode()===123}parseClassMember(e,s,r){let i=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({modified:s,allowedModifiers:i,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:S.InvalidModifierOnTypeParameterPositions});let a=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(s,i)&&this.raise(S.StaticBlockCannotHaveModifier,{at:this.state.curPosition()}),this.parseClassStaticBlock(e,s)):this.parseClassMemberWithIsStatic(e,s,r,!!s.static)};s.declare?this.tsInAmbientContext(a):a()}parseClassMemberWithIsStatic(e,s,r,i){let a=this.tsTryParseIndexSignature(s);if(a){e.body.push(a),s.abstract&&this.raise(S.IndexSignatureHasAbstract,{at:s}),s.accessibility&&this.raise(S.IndexSignatureHasAccessibility,{at:s,modifier:s.accessibility}),s.declare&&this.raise(S.IndexSignatureHasDeclare,{at:s}),s.override&&this.raise(S.IndexSignatureHasOverride,{at:s});return}!this.state.inAbstractClass&&s.abstract&&this.raise(S.NonAbstractClassHasAbstractMethod,{at:s}),s.override&&(r.hadSuperClass||this.raise(S.OverrideNotInSubClass,{at:s})),super.parseClassMemberWithIsStatic(e,s,r,i)}parsePostMemberNameModifiers(e){this.eat(17)&&(e.optional=!0),e.readonly&&this.match(10)&&this.raise(S.ClassMethodHasReadonly,{at:e}),e.declare&&this.match(10)&&this.raise(S.ClassMethodHasDeclare,{at:e})}parseExpressionStatement(e,s){return(s.type==="Identifier"?this.tsParseExpressionStatement(e,s):void 0)||super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(e,s,r,i){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(e,s,r,i);let a=this.tryParse(()=>super.parseConditional(e,s,r));return a.node?(a.error&&(this.state=a.failState),a.node):(a.error&&super.setOptionalParametersError(i,a.error),e)}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(i,"TSTypeCastExpression")}return e}parseExportDeclaration(e){if(!this.state.isAmbientContext&&this.isContextual(121))return this.tsInAmbientContext(()=>this.parseExportDeclaration(e));let s=this.state.start,r=this.state.startLoc,i=this.eatContextual(121);if(i&&(this.isContextual(121)||!this.shouldParseExportDeclaration()))throw this.raise(S.ExpectedAmbientAfterExportDeclare,{at:this.state.startLoc});let n=K(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(e);return n?((n.type==="TSInterfaceDeclaration"||n.type==="TSTypeAliasDeclaration"||i)&&(e.exportKind="type"),i&&(this.resetStartLocation(n,s,r),n.declare=!0),n):null}parseClassId(e,s,r){if((!s||r)&&this.isContextual(110))return;super.parseClassId(e,s,r,e.declare?Tr:gr);let i=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this));i&&(e.typeParameters=i)}parseClassPropertyAnnotation(e){!e.optional&&this.eat(35)&&(e.definite=!0);let s=this.tsTryParseTypeAnnotation();s&&(e.typeAnnotation=s)}parseClassProperty(e){if(this.parseClassPropertyAnnotation(e),this.state.isAmbientContext&&this.match(29)&&this.raise(S.DeclareClassFieldHasInitializer,{at:this.state.startLoc}),e.abstract&&this.match(29)){let{key:s}=e;this.raise(S.AbstractPropertyHasInitializer,{at:this.state.startLoc,propertyName:s.type==="Identifier"&&!e.computed?s.name:"[".concat(this.input.slice(s.start,s.end),"]")})}return super.parseClassProperty(e)}parseClassPrivateProperty(e){return e.abstract&&this.raise(S.PrivateElementHasAbstract,{at:e}),e.accessibility&&this.raise(S.PrivateElementHasAccessibility,{at:e,modifier:e.accessibility}),this.parseClassPropertyAnnotation(e),super.parseClassPrivateProperty(e)}pushClassMethod(e,s,r,i,a,n){let o=this.tsTryParseTypeParameters();o&&a&&this.raise(S.ConstructorHasTypeParameters,{at:o});let{declare:c=!1,kind:f}=s;c&&(f==="get"||f==="set")&&this.raise(S.DeclareAccessor,{at:s,kind:f}),o&&(s.typeParameters=o),super.pushClassMethod(e,s,r,i,a,n)}pushClassPrivateMethod(e,s,r,i){let a=this.tsTryParseTypeParameters();a&&(s.typeParameters=a),super.pushClassPrivateMethod(e,s,r,i)}declareClassPrivateMethodInScope(e,s){e.type!=="TSDeclareMethod"&&(e.type==="MethodDefinition"&&!e.value.body||super.declareClassPrivateMethodInScope(e,s))}parseClassSuper(e){super.parseClassSuper(e),e.superClass&&(this.match(47)||this.match(51))&&(e.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(110)&&(e.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(e){let s=this.tsTryParseTypeParameters();s&&(e.typeParameters=s);for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;asuper.parseMaybeAssign(...s),T),!v.error)return v.node;let{context:te}=this.state,he=te[te.length-1];(he===U.j_oTag||he===U.j_expr)&&te.pop()}if(!((i=v)!=null&&i.error)&&!this.match(47))return super.parseMaybeAssign(...s);let R;T=T||this.state.clone();let z=this.tryParse(te=>{var he,pe,st;R=this.tsParseTypeParameters();let de=super.parseMaybeAssign(...s);return(de.type!=="ArrowFunctionExpression"||(he=de.extra)!=null&&he.parenthesized)&&te(),((pe=R)==null?void 0:pe.params.length)!==0&&this.resetStartLocationFromNode(de,R),de.typeParameters=R,this.hasPlugin("jsx")&&de.typeParameters.params.length===1&&!((st=de.typeParameters.extra)!=null&&st.trailingComma)&&de.typeParameters.params[0].constraint,de},T);if(!z.error&&!z.aborted)return R&&this.reportReservedArrowTypeParam(R),z.node;if(!v&&(Lr(!this.hasPlugin("jsx")),N=this.tryParse(()=>super.parseMaybeAssign(...s),T),!N.error))return N.node;if((a=v)!=null&&a.node)return this.state=v.failState,v.node;if(z.node)return this.state=z.failState,R&&this.reportReservedArrowTypeParam(R),z.node;if((n=N)!=null&&n.node)return this.state=N.failState,N.node;throw(o=v)!=null&&o.thrown?v.error:z.thrown?z.error:(c=N)!=null&&c.thrown?N.error:((f=v)==null?void 0:f.error)||z.error||((y=N)==null?void 0:y.error)}reportReservedArrowTypeParam(e){var s;e.params.length===1&&!((s=e.extra)!=null&&s.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(S.ReservedArrowTypeParam,{at:e})}parseMaybeUnary(e){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(e)}parseArrow(e){if(this.match(14)){let s=this.tryParse(r=>{let i=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&r(),i});if(s.aborted)return;s.thrown||(s.error&&(this.state=s.failState),e.returnType=s.node)}return super.parseArrow(e)}parseAssignableListItemTypes(e){this.eat(17)&&(e.type!=="Identifier"&&!this.state.isAmbientContext&&!this.state.inType&&this.raise(S.PatternIsOptional,{at:e}),e.optional=!0);let s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s),this.resetEndLocation(e),e}isAssignable(e,s){switch(e.type){case"TSTypeCastExpression":return this.isAssignable(e.expression,s);case"TSParameterProperty":return!0;default:return super.isAssignable(e,s)}}toAssignable(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;switch(e.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(e,s);break;case"TSAsExpression":case"TSNonNullExpression":case"TSTypeAssertion":s?this.expressionScope.recordArrowParemeterBindingError(S.UnexpectedTypeCastInParameter,{at:e}):this.raise(S.UnexpectedTypeCastInParameter,{at:e}),this.toAssignable(e.expression,s);break;case"AssignmentExpression":!s&&e.left.type==="TSTypeCastExpression"&&(e.left=this.typeCastToParameter(e.left));default:super.toAssignable(e,s)}}toAssignableParenthesizedExpression(e,s){switch(e.expression.type){case"TSAsExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(e.expression,s);break;default:super.toAssignable(e,s)}}checkToRestConversion(e,s){switch(e.type){case"TSAsExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(e.expression,!1);break;default:super.checkToRestConversion(e,s)}}isValidLVal(e,s,r){return Ch({TSTypeCastExpression:!0,TSParameterProperty:"parameter",TSNonNullExpression:"expression",TSAsExpression:(r!==Le||!s)&&["expression",!0],TSTypeAssertion:(r!==Le||!s)&&["expression",!0]},e)||super.isValidLVal(e,s,r)}parseBindingAtom(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseMaybeDecoratorArguments(e){if(this.match(47)||this.match(51)){let s=this.tsParseTypeArgumentsInExpression();if(this.match(10)){let r=super.parseMaybeDecoratorArguments(e);return r.typeParameters=s,r}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(e)}checkCommaAfterRest(e){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===e?(this.next(),!1):super.checkCommaAfterRest(e)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(){let e=super.parseMaybeDefault(...arguments);return e.type==="AssignmentPattern"&&e.typeAnnotation&&e.right.startthis.isAssignable(s,!0)):super.shouldParseArrow(e)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(e){if(this.match(47)||this.match(51)){let s=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());s&&(e.typeParameters=s)}return super.jsxParseOpeningElementAfterName(e)}getGetterSetterExpectedParamCount(e){let s=super.getGetterSetterExpectedParamCount(e),i=this.getObjectOrClassMethodParams(e)[0];return i&&this.isThisParam(i)?s+1:s}parseCatchClauseParam(){let e=super.parseCatchClauseParam(),s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s,this.resetEndLocation(e)),e}tsInAmbientContext(e){let s=this.state.isAmbientContext;this.state.isAmbientContext=!0;try{return e()}finally{this.state.isAmbientContext=s}}parseClass(e){let s=this.state.inAbstractClass;this.state.inAbstractClass=!!e.abstract;try{for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a0)?!1:Br(t.object)}function Br(t){return t.type==="Identifier"?!0:t.type!=="MemberExpression"||t.computed?!1:Br(t.object)}var Mr=j(_n||(_n=ht(["placeholders"])))(t=>({ClassNameIsRequired:t("A class name is required."),UnexpectedSpace:t("Unexpected space in placeholder.")})),Dh=t=>class extends t{parsePlaceholder(e){if(this.match(140)){let s=this.startNode();return this.next(),this.assertNoSpace(),s.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(140),this.finishPlaceholder(s,e)}}finishPlaceholder(e,s){let r=!!(e.expectedNode&&e.type==="Placeholder");return e.expectedNode=s,r?e:this.finishNode(e,"Placeholder")}getTokenFromCode(e){return e===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(140,2):super.getTokenFromCode(...arguments)}parseExprAtom(){return this.parsePlaceholder("Expression")||super.parseExprAtom(...arguments)}parseIdentifier(){return this.parsePlaceholder("Identifier")||super.parseIdentifier(...arguments)}checkReservedWord(e){e!==void 0&&super.checkReservedWord(...arguments)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom(...arguments)}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0?!0:super.maybeParseExportDefaultSpecifier(...arguments)}checkExport(e){let{specifiers:s}=e;s!=null&&s.length&&(e.specifiers=s.filter(r=>r.exported.type==="Placeholder")),super.checkExport(e),e.specifiers=s}parseImport(e){let s=this.parsePlaceholder("Identifier");if(!s)return super.parseImport(...arguments);if(e.specifiers=[],!this.isContextual(97)&&!this.match(12))return e.source=this.finishPlaceholder(s,"StringLiteral"),this.semicolon(),this.finishNode(e,"ImportDeclaration");let r=this.startNodeAtNode(s);return r.local=s,this.finishNode(r,"ImportDefaultSpecifier"),e.specifiers.push(r),this.eat(12)&&(this.maybeParseStarImportSpecifier(e)||this.parseNamedImportSpecifiers(e)),this.expectContextual(97),e.source=this.parseImportSource(),this.semicolon(),this.finishNode(e,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource(...arguments)}assertNoSpace(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(Mr.UnexpectedSpace,{at:this.state.lastTokEndLoc})}},Fh=t=>class extends t{parseV8Intrinsic(){if(this.match(54)){let e=this.state.startLoc,s=this.startNode();if(this.next(),K(this.state.type)){let r=this.parseIdentifierName(this.state.start),i=this.createIdentifier(s,r);if(i.type="V8IntrinsicIdentifier",this.match(10))return i}this.unexpected(e)}}parseExprAtom(){return this.parseV8Intrinsic()||super.parseExprAtom(...arguments)}};function se(t,e){let[s,r]=typeof e=="string"?[e,{}]:e,i=Object.keys(r),a=i.length===0;return t.some(n=>{if(typeof n=="string")return a&&n===s;{let[o,c]=n;if(o!==s)return!1;for(let f of i)if(c[f]!==r[f])return!1;return!0}})}function et(t,e,s){let r=t.find(i=>Array.isArray(i)?i[0]===e:i===e);return r&&Array.isArray(r)?r[1][s]:null}var Rr=["minimal","fsharp","hack","smart"],jr=["^^","@@","^","%","#"],qr=["hash","bar"];function Lh(t){if(se(t,"decorators")){if(se(t,"decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");let e=et(t,"decorators","decoratorsBeforeExport");if(e==null)throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option, whose value must be a boolean. If you are migrating from Babylon/Babel 6 or want to use the old decorators proposal, you should use the 'decorators-legacy' plugin instead of 'decorators'.");if(typeof e!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean.")}if(se(t,"flow")&&se(t,"typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(se(t,"placeholders")&&se(t,"v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(se(t,"pipelineOperator")){let e=et(t,"pipelineOperator","proposal");if(!Rr.includes(e)){let r=Rr.map(i=>'"'.concat(i,'"')).join(", ");throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '.concat(r,"."))}let s=se(t,["recordAndTuple",{syntaxType:"hash"}]);if(e==="hack"){if(se(t,"placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(se(t,"v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");let r=et(t,"pipelineOperator","topicToken");if(!jr.includes(r)){let i=jr.map(a=>'"'.concat(a,'"')).join(", ");throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '.concat(i,"."))}if(r==="#"&&s)throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.')}else if(e==="smart"&&s)throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.')}if(se(t,"moduleAttributes")){if(se(t,"importAssertions"))throw new Error("Cannot combine importAssertions and moduleAttributes plugins.");if(et(t,"moduleAttributes","version")!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(se(t,"recordAndTuple")&&!qr.includes(et(t,"recordAndTuple","syntaxType")))throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: "+qr.map(e=>"'".concat(e,"'")).join(", "));if(se(t,"asyncDoExpressions")&&!se(t,"doExpressions")){let e=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw e.missingPlugins="doExpressions",e}}var Ur={estree:Ce,jsx:Th,flow:Ah,typescript:Ih,v8intrinsic:Fh,placeholders:Dh},Oh=Object.keys(Ur),_r={sourceType:"script",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0};function Bh(t){let e={};for(let s of Object.keys(_r))e[s]=t&&t[s]!=null?t[s]:_r[s];return e}var Mh=(t,e)=>Object.hasOwnProperty.call(t,e)&&t[e],zr=t=>t.type==="ParenthesizedExpression"?zr(t.expression):t,Rh=class extends fh{toAssignable(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;var s,r;let i;switch((t.type==="ParenthesizedExpression"||(s=t.extra)!=null&&s.parenthesized)&&(i=zr(t),e?i.type==="Identifier"?this.expressionScope.recordArrowParemeterBindingError(l.InvalidParenthesizedAssignment,{at:t}):i.type!=="MemberExpression"&&this.raise(l.InvalidParenthesizedAssignment,{at:t}):this.raise(l.InvalidParenthesizedAssignment,{at:t})),t.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern";for(let n=0,o=t.properties.length,c=o-1;nr.type!=="ObjectMethod"&&(i===s||r.type!=="SpreadElement")&&this.isAssignable(r))}case"ObjectProperty":return this.isAssignable(t.value);case"SpreadElement":return this.isAssignable(t.argument);case"ArrayExpression":return t.elements.every(s=>s===null||this.isAssignable(s));case"AssignmentExpression":return t.operator==="=";case"ParenthesizedExpression":return this.isAssignable(t.expression);case"MemberExpression":case"OptionalMemberExpression":return!e;default:return!1}}toReferencedList(t,e){return t}toReferencedListDeep(t,e){this.toReferencedList(t,e);for(let s of t)(s==null?void 0:s.type)==="ArrayExpression"&&this.toReferencedListDeep(s.elements)}parseSpread(t,e){let s=this.startNode();return this.next(),s.argument=this.parseMaybeAssignAllowIn(t,void 0,e),this.finishNode(s,"SpreadElement")}parseRestBinding(){let t=this.startNode();return this.next(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")}parseBindingAtom(){switch(this.state.type){case 0:{let t=this.startNode();return this.next(),t.elements=this.parseBindingList(3,93,!0),this.finishNode(t,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);)if(a?a=!1:this.expect(12),s&&this.match(12))i.push(null);else{if(this.eat(t))break;if(this.match(21)){if(i.push(this.parseAssignableListItemTypes(this.parseRestBinding())),!this.checkCommaAfterRest(e)){this.expect(t);break}}else{let n=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(l.UnsupportedParameterDecorator,{at:this.state.startLoc});this.match(26);)n.push(this.parseDecorator());i.push(this.parseAssignableListItem(r,n))}}return i}parseBindingRestProperty(t){return this.next(),t.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(t,"RestElement")}parseBindingProperty(){let t=this.startNode(),{type:e,start:s,startLoc:r}=this.state;return e===21?this.parseBindingRestProperty(t):(e===134?(this.expectPlugin("destructuringPrivate",r),this.classScope.usePrivateName(this.state.value,r),t.key=this.parsePrivateName()):this.parsePropertyName(t),t.method=!1,this.parseObjPropValue(t,s,r,!1,!1,!0,!1),t)}parseAssignableListItem(t,e){let s=this.parseMaybeDefault();this.parseAssignableListItemTypes(s);let r=this.parseMaybeDefault(s.start,s.loc.start,s);return e.length&&(s.decorators=e),r}parseAssignableListItemTypes(t){return t}parseMaybeDefault(t,e,s){var r,i,a;if(e=(r=e)!=null?r:this.state.startLoc,t=(i=t)!=null?i:this.state.start,s=(a=s)!=null?a:this.parseBindingAtom(),!this.eat(29))return s;let n=this.startNodeAt(t,e);return n.left=s,n.right=this.parseMaybeAssignAllowIn(),this.finishNode(n,"AssignmentPattern")}isValidLVal(t,e,s){return Mh({AssignmentPattern:"left",RestElement:"argument",ObjectProperty:"value",ParenthesizedExpression:"expression",ArrayPattern:"elements",ObjectPattern:"properties"},t)}checkLVal(t,e){let{in:s,binding:r=Le,checkClashes:i=!1,strictModeChanged:a=!1,allowingSloppyLetBinding:n=!(r&Se),hasParenthesizedAncestor:o=!1}=e;var c;let f=t.type;if(this.isObjectMethod(t))return;if(f==="MemberExpression"){r!==Le&&this.raise(l.InvalidPropertyBindingPattern,{at:t});return}if(t.type==="Identifier"){this.checkIdentifier(t,r,a,n);let{name:R}=t;i&&(i.has(R)?this.raise(l.ParamDupe,{at:t}):i.add(R));return}let y=this.isValidLVal(t.type,!(o||(c=t.extra)!=null&&c.parenthesized)&&s.type==="AssignmentExpression",r);if(y===!0)return;if(y===!1){let R=r===Le?l.InvalidLhs:l.InvalidLhsBinding;this.raise(R,{at:t,ancestor:s.type==="UpdateExpression"?{type:"UpdateExpression",prefix:s.prefix}:{type:s.type}});return}let[T,v]=Array.isArray(y)?y:[y,f==="ParenthesizedExpression"],N=t.type==="ArrayPattern"||t.type==="ObjectPattern"||t.type==="ParenthesizedExpression"?t:s;for(let R of[].concat(t[T]))R&&this.checkLVal(R,{in:N,binding:r,checkClashes:i,allowingSloppyLetBinding:n,strictModeChanged:a,hasParenthesizedAncestor:v})}checkIdentifier(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!(e&Se);this.state.strict&&(s?fr(t.name,this.inModule):pr(t.name))&&(e===Le?this.raise(l.StrictEvalArguments,{at:t,referenceName:t.name}):this.raise(l.StrictEvalArgumentsBinding,{at:t,bindingName:t.name})),!r&&t.name==="let"&&this.raise(l.LetInLexicalBinding,{at:t}),e&Le||this.declareNameFromIdentifier(t,e)}declareNameFromIdentifier(t,e){this.scope.declareName(t.name,e,t.loc.start)}checkToRestConversion(t,e){switch(t.type){case"ParenthesizedExpression":this.checkToRestConversion(t.expression,e);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(e)break;default:this.raise(l.InvalidRestAssignmentPattern,{at:t})}}checkCommaAfterRest(t){return this.match(12)?(this.raise(this.lookaheadCharCode()===t?l.RestTrailingComma:l.ElementAfterRest,{at:this.state.startLoc}),!0):!1}},jh=class extends Rh{checkProto(t,e,s,r){if(t.type==="SpreadElement"||this.isObjectMethod(t)||t.computed||t.shorthand)return;let i=t.key;if((i.type==="Identifier"?i.name:i.value)==="__proto__"){if(e){this.raise(l.RecordNoProto,{at:i});return}s.used&&(r?r.doubleProtoLoc===null&&(r.doubleProtoLoc=i.loc.start):this.raise(l.DuplicateProto,{at:i})),s.used=!0}}shouldExitDescending(t,e){return t.type==="ArrowFunctionExpression"&&t.start===e}getExpression(){this.enterInitialScopes(),this.nextToken();let t=this.parseExpression();return this.match(135)||this.unexpected(),this.finalizeRemainingComments(),t.comments=this.state.comments,t.errors=this.state.errors,this.options.tokens&&(t.tokens=this.tokens),t}parseExpression(t,e){return t?this.disallowInAnd(()=>this.parseExpressionBase(e)):this.allowInAnd(()=>this.parseExpressionBase(e))}parseExpressionBase(t){let e=this.state.start,s=this.state.startLoc,r=this.parseMaybeAssign(t);if(this.match(12)){let i=this.startNodeAt(e,s);for(i.expressions=[r];this.eat(12);)i.expressions.push(this.parseMaybeAssign(t));return this.toReferencedList(i.expressions),this.finishNode(i,"SequenceExpression")}return r}parseMaybeAssignDisallowIn(t,e){return this.disallowInAnd(()=>this.parseMaybeAssign(t,e))}parseMaybeAssignAllowIn(t,e){return this.allowInAnd(()=>this.parseMaybeAssign(t,e))}setOptionalParametersError(t,e){var s;t.optionalParametersLoc=(s=e==null?void 0:e.loc)!=null?s:this.state.startLoc}parseMaybeAssign(t,e){let s=this.state.start,r=this.state.startLoc;if(this.isContextual(105)&&this.prodParam.hasYield){let o=this.parseYield();return e&&(o=e.call(this,o,s,r)),o}let i;t?i=!1:(t=new bt,i=!0);let{type:a}=this.state;(a===10||K(a))&&(this.state.potentialArrowAt=this.state.start);let n=this.parseMaybeConditional(t);if(e&&(n=e.call(this,n,s,r)),mo(this.state.type)){let o=this.startNodeAt(s,r),c=this.state.value;return o.operator=c,this.match(29)?(this.toAssignable(n,!0),o.left=n,t.doubleProtoLoc!=null&&t.doubleProtoLoc.index>=s&&(t.doubleProtoLoc=null),t.shorthandAssignLoc!=null&&t.shorthandAssignLoc.index>=s&&(t.shorthandAssignLoc=null),t.privateKeyLoc!=null&&t.privateKeyLoc.index>=s&&(this.checkDestructuringPrivate(t),t.privateKeyLoc=null)):o.left=n,this.next(),o.right=this.parseMaybeAssign(),this.checkLVal(n,{in:this.finishNode(o,"AssignmentExpression")}),o}else i&&this.checkExpressionErrors(t,!0);return n}parseMaybeConditional(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprOps(t);return this.shouldExitDescending(i,r)?i:this.parseConditional(i,e,s,t)}parseConditional(t,e,s,r){if(this.eat(17)){let i=this.startNodeAt(e,s);return i.test=t,i.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),i.alternate=this.parseMaybeAssign(),this.finishNode(i,"ConditionalExpression")}return t}parseMaybeUnaryOrPrivate(t){return this.match(134)?this.parsePrivateName():this.parseMaybeUnary(t)}parseExprOps(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseMaybeUnaryOrPrivate(t);return this.shouldExitDescending(i,r)?i:this.parseExprOp(i,e,s,-1)}parseExprOp(t,e,s,r){if(this.isPrivateName(t)){let a=this.getPrivateNameSV(t);(r>=lt(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(l.PrivateInExpectedIn,{at:t,identifierName:a}),this.classScope.usePrivateName(a,t.loc.start)}let i=this.state.type;if(xo(i)&&(this.prodParam.hasIn||!this.match(58))){let a=lt(i);if(a>r){if(i===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return t;this.checkPipelineAtInfixOperator(t,s)}let n=this.startNodeAt(e,s);n.left=t,n.operator=this.state.value;let o=i===41||i===42,c=i===40;if(c&&(a=lt(42)),this.next(),i===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(l.UnexpectedAwaitAfterPipelineBody,{at:this.state.startLoc});n.right=this.parseExprOpRightExpr(i,a),this.finishNode(n,o||c?"LogicalExpression":"BinaryExpression");let f=this.state.type;if(c&&(f===41||f===42)||o&&f===40)throw this.raise(l.MixingCoalesceWithLogical,{at:this.state.startLoc});return this.parseExprOp(n,e,s,r)}}return t}parseExprOpRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;switch(t){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case"smart":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(105))throw this.raise(l.PipeBodyIsTighter,{at:this.state.startLoc});return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t,e),s,r)});case"fsharp":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(e))}default:return this.parseExprOpBaseRightExpr(t,e)}}parseExprOpBaseRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),s,r,bo(t)?e-1:e)}parseHackPipeBody(){var t;let{startLoc:e}=this.state,s=this.parseMaybeAssign();return L.has(s.type)&&!((t=s.extra)!=null&&t.parenthesized)&&this.raise(l.PipeUnparenthesizedBody,{at:e,type:s.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(l.PipeTopicUnused,{at:e}),s}checkExponentialAfterUnary(t){this.match(57)&&this.raise(l.UnexpectedTokenUnaryExponentiation,{at:t.argument})}parseMaybeUnary(t,e){let s=this.state.start,r=this.state.startLoc,i=this.isContextual(96);if(i&&this.isAwaitAllowed()){this.next();let c=this.parseAwait(s,r);return e||this.checkExponentialAfterUnary(c),c}let a=this.match(34),n=this.startNode();if(Ao(this.state.type)){n.operator=this.state.value,n.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");let c=this.match(89);if(this.next(),n.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),this.state.strict&&c){let f=n.argument;f.type==="Identifier"?this.raise(l.StrictDelete,{at:n}):this.hasPropertyAsPrivateName(f)&&this.raise(l.DeletePrivateField,{at:n})}if(!a)return e||this.checkExponentialAfterUnary(n),this.finishNode(n,"UnaryExpression")}let o=this.parseUpdate(n,a,t);if(i){let{type:c}=this.state;if((this.hasPlugin("v8intrinsic")?Kt(c):Kt(c)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(l.AwaitNotInAsyncContext,{at:r}),this.parseAwait(s,r)}return o}parseUpdate(t,e,s){if(e)return this.checkLVal(t.argument,{in:this.finishNode(t,"UpdateExpression")}),t;let r=this.state.start,i=this.state.startLoc,a=this.parseExprSubscripts(s);if(this.checkExpressionErrors(s,!1))return a;for(;go(this.state.type)&&!this.canInsertSemicolon();){let n=this.startNodeAt(r,i);n.operator=this.state.value,n.prefix=!1,n.argument=a,this.next(),this.checkLVal(a,{in:a=this.finishNode(n,"UpdateExpression")})}return a}parseExprSubscripts(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprAtom(t);return this.shouldExitDescending(i,r)?i:this.parseSubscripts(i,e,s)}parseSubscripts(t,e,s,r){let i={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(t),stop:!1};do t=this.parseSubscript(t,e,s,r,i),i.maybeAsyncArrow=!1;while(!i.stop);return t}parseSubscript(t,e,s,r,i){let{type:a}=this.state;if(!r&&a===15)return this.parseBind(t,e,s,r,i);if(ut(a))return this.parseTaggedTemplateExpression(t,e,s,i);let n=!1;if(a===18){if(r&&this.lookaheadCharCode()===40)return i.stop=!0,t;i.optionalChainMember=n=!0,this.next()}if(!r&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(t,e,s,i,n);{let o=this.eat(0);return o||n||this.eat(16)?this.parseMember(t,e,s,i,o,n):(i.stop=!0,t)}}parseMember(t,e,s,r,i,a){let n=this.startNodeAt(e,s);return n.object=t,n.computed=i,i?(n.property=this.parseExpression(),this.expect(3)):this.match(134)?(t.type==="Super"&&this.raise(l.SuperPrivateField,{at:s}),this.classScope.usePrivateName(this.state.value,this.state.startLoc),n.property=this.parsePrivateName()):n.property=this.parseIdentifier(!0),r.optionalChainMember?(n.optional=a,this.finishNode(n,"OptionalMemberExpression")):this.finishNode(n,"MemberExpression")}parseBind(t,e,s,r,i){let a=this.startNodeAt(e,s);return a.object=t,this.next(),a.callee=this.parseNoCallExpr(),i.stop=!0,this.parseSubscripts(this.finishNode(a,"BindExpression"),e,s,r)}parseCoverCallAndAsyncArrowHead(t,e,s,r,i){let a=this.state.maybeInArrowParameters,n=null;this.state.maybeInArrowParameters=!0,this.next();let o=this.startNodeAt(e,s);o.callee=t;let{maybeAsyncArrow:c,optionalChainMember:f}=r;return c&&(this.expressionScope.enter(hh()),n=new bt),f&&(o.optional=i),i?o.arguments=this.parseCallExpressionArguments(11):o.arguments=this.parseCallExpressionArguments(11,t.type==="Import",t.type!=="Super",o,n),this.finishCallExpression(o,f),c&&this.shouldParseAsyncArrow()&&!i?(r.stop=!0,this.checkDestructuringPrivate(n),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),o=this.parseAsyncArrowFromCallExpression(this.startNodeAt(e,s),o)):(c&&(this.checkExpressionErrors(n,!0),this.expressionScope.exit()),this.toReferencedArguments(o)),this.state.maybeInArrowParameters=a,o}toReferencedArguments(t,e){this.toReferencedListDeep(t.arguments,e)}parseTaggedTemplateExpression(t,e,s,r){let i=this.startNodeAt(e,s);return i.tag=t,i.quasi=this.parseTemplate(!0),r.optionalChainMember&&this.raise(l.OptionalChainingNoTemplate,{at:s}),this.finishNode(i,"TaggedTemplateExpression")}atPossibleAsyncArrow(t){return t.type==="Identifier"&&t.name==="async"&&this.state.lastTokEndLoc.index===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&t.start===this.state.potentialArrowAt}finishCallExpression(t,e){if(t.callee.type==="Import")if(t.arguments.length===2&&(this.hasPlugin("moduleAttributes")||this.expectPlugin("importAssertions")),t.arguments.length===0||t.arguments.length>2)this.raise(l.ImportCallArity,{at:t,maxArgumentCount:this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")?2:1});else for(let s of t.arguments)s.type==="SpreadElement"&&this.raise(l.ImportCallSpreadArgument,{at:s});return this.finishNode(t,e?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(t,e,s,r,i){let a=[],n=!0,o=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){e&&!this.hasPlugin("importAssertions")&&!this.hasPlugin("moduleAttributes")&&this.raise(l.ImportCallArgumentTrailingComma,{at:this.state.lastTokStartLoc}),r&&this.addTrailingCommaExtraToNode(r),this.next();break}a.push(this.parseExprListItem(!1,i,s))}return this.state.inFSharpPipelineDirectBody=o,a}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(t,e){var s;return this.resetPreviousNodeTrailingComments(e),this.expect(19),this.parseArrowExpression(t,e.arguments,!0,(s=e.extra)==null?void 0:s.trailingCommaLoc),e.innerComments&&Qe(t,e.innerComments),e.callee.trailingComments&&Qe(t,e.callee.trailingComments),t}parseNoCallExpr(){let t=this.state.start,e=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),t,e,!0)}parseExprAtom(t){let e,{type:s}=this.state;switch(s){case 79:return this.parseSuper();case 83:return e=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(e):(this.match(10)||this.raise(l.UnsupportedImport,{at:this.state.lastTokStartLoc}),this.finishNode(e,"Import"));case 78:return e=this.startNode(),this.next(),this.finishNode(e,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 130:return this.parseNumericLiteral(this.state.value);case 131:return this.parseBigIntLiteral(this.state.value);case 132:return this.parseDecimalLiteral(this.state.value);case 129:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{let r=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(r)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,t);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,t);case 68:return this.parseFunctionOrFunctionSent();case 26:this.parseDecorators();case 80:return e=this.startNode(),this.takeDecorators(e),this.parseClass(e,!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{e=this.startNode(),this.next(),e.object=null;let r=e.callee=this.parseNoCallExpr();if(r.type==="MemberExpression")return this.finishNode(e,"BindExpression");throw this.raise(l.UnsupportedBind,{at:r})}case 134:return this.raise(l.PrivateInExpectedIn,{at:this.state.startLoc,identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{let r=this.getPluginOption("pipelineOperator","proposal");if(r)return this.parseTopicReference(r);throw this.unexpected()}case 47:{let r=this.input.codePointAt(this.nextTokenStart());if(ge(r)||r===62){this.expectOnePlugin(["jsx","flow","typescript"]);break}else throw this.unexpected()}default:if(K(s)){if(this.isContextual(123)&&this.lookaheadCharCode()===123&&!this.hasFollowingLineBreak())return this.parseModuleExpression();let r=this.state.potentialArrowAt===this.state.start,i=this.state.containsEsc,a=this.parseIdentifier();if(!i&&a.name==="async"&&!this.canInsertSemicolon()){let{type:n}=this.state;if(n===68)return this.resetPreviousNodeTrailingComments(a),this.next(),this.parseFunction(this.startNodeAtNode(a),void 0,!0);if(K(n))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(a)):a;if(n===90)return this.resetPreviousNodeTrailingComments(a),this.parseDo(this.startNodeAtNode(a),!0)}return r&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(a),[a],!1)):a}else throw this.unexpected()}}parseTopicReferenceThenEqualsSign(t,e){let s=this.getPluginOption("pipelineOperator","proposal");if(s)return this.state.type=t,this.state.value=e,this.state.pos--,this.state.end--,this.state.endLoc=m(this.state.endLoc,-1),this.parseTopicReference(s);throw this.unexpected()}parseTopicReference(t){let e=this.startNode(),s=this.state.startLoc,r=this.state.type;return this.next(),this.finishTopicReference(e,s,t,r)}finishTopicReference(t,e,s,r){if(this.testTopicReferenceConfiguration(s,e,r)){let i=s==="smart"?"PipelinePrimaryTopicReference":"TopicReference";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(s==="smart"?l.PrimaryTopicNotAllowed:l.PipeTopicUnbound,{at:e}),this.registerTopicReference(),this.finishNode(t,i)}else throw this.raise(l.PipeTopicUnconfiguredToken,{at:e,token:ve(r)})}testTopicReferenceConfiguration(t,e,s){switch(t){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:ve(s)}]);case"smart":return s===27;default:throw this.raise(l.PipeTopicRequiresHackPipes,{at:e})}}parseAsyncArrowUnaryFunction(t){this.prodParam.enter(Et(!0,this.prodParam.hasYield));let e=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(l.LineTerminatorBeforeArrow,{at:this.state.curPosition()}),this.expect(19),this.parseArrowExpression(t,e,!0),t}parseDo(t,e){this.expectPlugin("doExpressions"),e&&this.expectPlugin("asyncDoExpressions"),t.async=e,this.next();let s=this.state.labels;return this.state.labels=[],e?(this.prodParam.enter(Tt),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=s,this.finishNode(t,"DoExpression")}parseSuper(){let t=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(l.SuperNotAllowed,{at:t}):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(l.UnexpectedSuper,{at:t}),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(l.UnsupportedSuper,{at:t}),this.finishNode(t,"Super")}parsePrivateName(){let t=this.startNode(),e=this.startNodeAt(this.state.start+1,new p(this.state.curLine,this.state.start+1-this.state.lineStart,this.state.start+1)),s=this.state.value;return this.next(),t.id=this.createIdentifier(e,s),this.finishNode(t,"PrivateName")}parseFunctionOrFunctionSent(){let t=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),"function");return this.next(),this.match(102)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(t,e,"sent")}return this.parseFunction(t)}parseMetaProperty(t,e,s){t.meta=e;let r=this.state.containsEsc;return t.property=this.parseIdentifier(!0),(t.property.name!==s||r)&&this.raise(l.UnsupportedMetaProperty,{at:t.property,target:e.name,onlyValidPropertyName:s}),this.finishNode(t,"MetaProperty")}parseImportMetaProperty(t){let e=this.createIdentifier(this.startNodeAtNode(t),"import");return this.next(),this.isContextual(100)&&(this.inModule||this.raise(l.ImportMetaOutsideModule,{at:e}),this.sawUnambiguousESM=!0),this.parseMetaProperty(t,e,"meta")}parseLiteralAtNode(t,e,s){return this.addExtra(s,"rawValue",t),this.addExtra(s,"raw",this.input.slice(s.start,this.state.end)),s.value=t,this.next(),this.finishNode(s,e)}parseLiteral(t,e){let s=this.startNode();return this.parseLiteralAtNode(t,e,s)}parseStringLiteral(t){return this.parseLiteral(t,"StringLiteral")}parseNumericLiteral(t){return this.parseLiteral(t,"NumericLiteral")}parseBigIntLiteral(t){return this.parseLiteral(t,"BigIntLiteral")}parseDecimalLiteral(t){return this.parseLiteral(t,"DecimalLiteral")}parseRegExpLiteral(t){let e=this.parseLiteral(t.value,"RegExpLiteral");return e.pattern=t.pattern,e.flags=t.flags,e}parseBooleanLiteral(t){let e=this.startNode();return e.value=t,this.next(),this.finishNode(e,"BooleanLiteral")}parseNullLiteral(){let t=this.startNode();return this.next(),this.finishNode(t,"NullLiteral")}parseParenAndDistinguishExpression(t){let e=this.state.start,s=this.state.startLoc,r;this.next(),this.expressionScope.enter(oh());let i=this.state.maybeInArrowParameters,a=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;let n=this.state.start,o=this.state.startLoc,c=[],f=new bt,y=!0,T,v;for(;!this.match(11);){if(y)y=!1;else if(this.expect(12,f.optionalParametersLoc===null?null:f.optionalParametersLoc),this.match(11)){v=this.state.startLoc;break}if(this.match(21)){let z=this.state.start,te=this.state.startLoc;if(T=this.state.startLoc,c.push(this.parseParenItem(this.parseRestBinding(),z,te)),!this.checkCommaAfterRest(41))break}else c.push(this.parseMaybeAssignAllowIn(f,this.parseParenItem))}let N=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=i,this.state.inFSharpPipelineDirectBody=a;let R=this.startNodeAt(e,s);return t&&this.shouldParseArrow(c)&&(R=this.parseArrow(R))?(this.checkDestructuringPrivate(f),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(R,c,!1),R):(this.expressionScope.exit(),c.length||this.unexpected(this.state.lastTokStartLoc),v&&this.unexpected(v),T&&this.unexpected(T),this.checkExpressionErrors(f,!0),this.toReferencedListDeep(c,!0),c.length>1?(r=this.startNodeAt(n,o),r.expressions=c,this.finishNode(r,"SequenceExpression"),this.resetEndLocation(r,N)):r=c[0],this.wrapParenthesis(e,s,r))}wrapParenthesis(t,e,s){if(!this.options.createParenthesizedExpressions)return this.addExtra(s,"parenthesized",!0),this.addExtra(s,"parenStart",t),this.takeSurroundingComments(s,t,this.state.lastTokEndLoc.index),s;let r=this.startNodeAt(t,e);return r.expression=s,this.finishNode(r,"ParenthesizedExpression"),r}shouldParseArrow(t){return!this.canInsertSemicolon()}parseArrow(t){if(this.eat(19))return t}parseParenItem(t,e,s){return t}parseNewOrNewTarget(){let t=this.startNode();if(this.next(),this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),"new");this.next();let s=this.parseMetaProperty(t,e,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&this.raise(l.UnexpectedNewTarget,{at:s}),s}return this.parseNew(t)}parseNew(t){if(this.parseNewCallee(t),this.eat(10)){let e=this.parseExprList(11);this.toReferencedList(e),t.arguments=e}else t.arguments=[];return this.finishNode(t,"NewExpression")}parseNewCallee(t){t.callee=this.parseNoCallExpr(),t.callee.type==="Import"?this.raise(l.ImportCallNotNewExpression,{at:t.callee}):this.isOptionalChain(t.callee)?this.raise(l.OptionalChainingNoNew,{at:this.state.lastTokEndLoc}):this.eat(18)&&this.raise(l.OptionalChainingNoNew,{at:this.state.startLoc})}parseTemplateElement(t){let{start:e,startLoc:s,end:r,value:i}=this.state,a=e+1,n=this.startNodeAt(a,m(s,1));i===null&&(t||this.raise(l.InvalidEscapeSequenceTemplate,{at:m(s,2)}));let o=this.match(24),c=o?-1:-2,f=r+c;return n.value={raw:this.input.slice(a,f).replace(/\r\n?/g,` +`),cooked:i===null?null:i.slice(1,c)},n.tail=o,this.next(),this.finishNode(n,"TemplateElement"),this.resetEndLocation(n,m(this.state.lastTokEndLoc,c)),n}parseTemplate(t){let e=this.startNode();e.expressions=[];let s=this.parseTemplateElement(t);for(e.quasis=[s];!s.tail;)e.expressions.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),e.quasis.push(s=this.parseTemplateElement(t));return this.finishNode(e,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(t,e,s,r){s&&this.expectPlugin("recordAndTuple");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=Object.create(null),n=!0,o=this.startNode();for(o.properties=[],this.next();!this.match(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){this.addTrailingCommaExtraToNode(o);break}let f;e?f=this.parseBindingProperty():(f=this.parsePropertyDefinition(r),this.checkProto(f,s,a,r)),s&&!this.isObjectProperty(f)&&f.type!=="SpreadElement"&&this.raise(l.InvalidRecordProperty,{at:f}),f.shorthand&&this.addExtra(f,"shorthand",!0),o.properties.push(f)}this.next(),this.state.inFSharpPipelineDirectBody=i;let c="ObjectExpression";return e?c="ObjectPattern":s&&(c="RecordExpression"),this.finishNode(o,c)}addTrailingCommaExtraToNode(t){this.addExtra(t,"trailingComma",this.state.lastTokStart),this.addExtra(t,"trailingCommaLoc",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(t){return!t.computed&&t.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(t){let e=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(l.UnsupportedPropertyDecorator,{at:this.state.startLoc});this.match(26);)e.push(this.parseDecorator());let s=this.startNode(),r=!1,i=!1,a,n;if(this.match(21))return e.length&&this.unexpected(),this.parseSpread();e.length&&(s.decorators=e,e=[]),s.method=!1,t&&(a=this.state.start,n=this.state.startLoc);let o=this.eat(55);this.parsePropertyNamePrefixOperator(s);let c=this.state.containsEsc,f=this.parsePropertyName(s,t);if(!o&&!c&&this.maybeAsyncOrAccessorProp(s)){let y=f.name;y==="async"&&!this.hasPrecedingLineBreak()&&(r=!0,this.resetPreviousNodeTrailingComments(f),o=this.eat(55),this.parsePropertyName(s)),(y==="get"||y==="set")&&(i=!0,this.resetPreviousNodeTrailingComments(f),s.kind=y,this.match(55)&&(o=!0,this.raise(l.AccessorIsGenerator,{at:this.state.curPosition(),kind:y}),this.next()),this.parsePropertyName(s))}return this.parseObjPropValue(s,a,n,o,r,!1,i,t),s}getGetterSetterExpectedParamCount(t){return t.kind==="get"?0:1}getObjectOrClassMethodParams(t){return t.params}checkGetterSetterParams(t){var e;let s=this.getGetterSetterExpectedParamCount(t),r=this.getObjectOrClassMethodParams(t);r.length!==s&&this.raise(t.kind==="get"?l.BadGetterArity:l.BadSetterArity,{at:t}),t.kind==="set"&&((e=r[r.length-1])==null?void 0:e.type)==="RestElement"&&this.raise(l.BadSetterRestParameter,{at:t})}parseObjectMethod(t,e,s,r,i){if(i)return this.parseMethod(t,e,!1,!1,!1,"ObjectMethod"),this.checkGetterSetterParams(t),t;if(s||e||this.match(10))return r&&this.unexpected(),t.kind="method",t.method=!0,this.parseMethod(t,e,s,!1,!1,"ObjectMethod")}parseObjectProperty(t,e,s,r,i){if(t.shorthand=!1,this.eat(14))return t.value=r?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssignAllowIn(i),this.finishNode(t,"ObjectProperty");if(!t.computed&&t.key.type==="Identifier"){if(this.checkReservedWord(t.key.name,t.key.loc.start,!0,!1),r)t.value=this.parseMaybeDefault(e,s,Ee(t.key));else if(this.match(29)){let a=this.state.startLoc;i!=null?i.shorthandAssignLoc===null&&(i.shorthandAssignLoc=a):this.raise(l.InvalidCoverInitializedName,{at:a}),t.value=this.parseMaybeDefault(e,s,Ee(t.key))}else t.value=Ee(t.key);return t.shorthand=!0,this.finishNode(t,"ObjectProperty")}}parseObjPropValue(t,e,s,r,i,a,n,o){let c=this.parseObjectMethod(t,r,i,a,n)||this.parseObjectProperty(t,e,s,a,o);return c||this.unexpected(),c}parsePropertyName(t,e){if(this.eat(0))t.computed=!0,t.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{let{type:s,value:r}=this.state,i;if(ye(s))i=this.parseIdentifier(!0);else switch(s){case 130:i=this.parseNumericLiteral(r);break;case 129:i=this.parseStringLiteral(r);break;case 131:i=this.parseBigIntLiteral(r);break;case 132:i=this.parseDecimalLiteral(r);break;case 134:{let a=this.state.startLoc;e!=null?e.privateKeyLoc===null&&(e.privateKeyLoc=a):this.raise(l.UnexpectedPrivateField,{at:a}),i=this.parsePrivateName();break}default:throw this.unexpected()}t.key=i,s!==134&&(t.computed=!1)}return t.key}initFunction(t,e){t.id=null,t.generator=!1,t.async=!!e}parseMethod(t,e,s,r,i,a){let n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1;this.initFunction(t,s),t.generator=!!e;let o=r;return this.scope.enter(Ae|ct|(n?Fe:0)|(i?mr:0)),this.prodParam.enter(Et(s,t.generator)),this.parseFunctionParams(t,o),this.parseFunctionBodyAndFinish(t,a,!0),this.prodParam.exit(),this.scope.exit(),t}parseArrayLike(t,e,s,r){s&&this.expectPlugin("recordAndTuple");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=this.startNode();return this.next(),a.elements=this.parseExprList(t,!s,r,a),this.state.inFSharpPipelineDirectBody=i,this.finishNode(a,s?"TupleExpression":"ArrayExpression")}parseArrowExpression(t,e,s,r){this.scope.enter(Ae|Xt);let i=Et(s,!1);!this.match(5)&&this.prodParam.hasIn&&(i|=We),this.prodParam.enter(i),this.initFunction(t,s);let a=this.state.maybeInArrowParameters;return e&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(t,e,r)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=a,this.finishNode(t,"ArrowFunctionExpression")}setArrowFunctionParameters(t,e,s){this.toAssignableList(e,s,!1),t.params=e}parseFunctionBodyAndFinish(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parseFunctionBody(t,!1,s),this.finishNode(t,e)}parseFunctionBody(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&&!this.match(5);if(this.expressionScope.enter(Ir()),r)t.body=this.parseMaybeAssign(),this.checkParams(t,!1,e,!1);else{let i=this.state.strict,a=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|Dr),t.body=this.parseBlock(!0,!1,n=>{let o=!this.isSimpleParamList(t.params);n&&o&&this.raise(l.IllegalLanguageModeDirective,{at:(t.kind==="method"||t.kind==="constructor")&&!!t.key?t.key.loc.end:t});let c=!i&&this.state.strict;this.checkParams(t,!this.state.strict&&!e&&!s&&!o,e,c),this.state.strict&&t.id&&this.checkIdentifier(t.id,Mo,c)}),this.prodParam.exit(),this.state.labels=a}this.expressionScope.exit()}isSimpleParameter(t){return t.type==="Identifier"}isSimpleParamList(t){for(let e=0,s=t.length;e3&&arguments[3]!==void 0?arguments[3]:!0,i=!e&&new Set,a={type:"FormalParameters"};for(let n of t.params)this.checkLVal(n,{in:a,binding:yt,checkClashes:i,strictModeChanged:r})}parseExprList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);){if(a)a=!1;else if(this.expect(12),this.match(t)){r&&this.addTrailingCommaExtraToNode(r),this.next();break}i.push(this.parseExprListItem(e,s))}return i}parseExprListItem(t,e,s){let r;if(this.match(12))t||this.raise(l.UnexpectedToken,{at:this.state.curPosition(),unexpected:","}),r=null;else if(this.match(21)){let i=this.state.start,a=this.state.startLoc;r=this.parseParenItem(this.parseSpread(e),i,a)}else if(this.match(17)){this.expectPlugin("partialApplication"),s||this.raise(l.UnexpectedArgumentPlaceholder,{at:this.state.startLoc});let i=this.startNode();this.next(),r=this.finishNode(i,"ArgumentPlaceholder")}else r=this.parseMaybeAssignAllowIn(e,this.parseParenItem);return r}parseIdentifier(t){let e=this.startNode(),s=this.parseIdentifierName(e.start,t);return this.createIdentifier(e,s)}createIdentifier(t,e){return t.name=e,t.loc.identifierName=e,this.finishNode(t,"Identifier")}parseIdentifierName(t,e){let s,{startLoc:r,type:i}=this.state;if(ye(i))s=this.state.value;else throw this.unexpected();let a=po(i);return e?a&&this.replaceToken(128):this.checkReservedWord(s,r,a,!1),this.next(),s}checkReservedWord(t,e,s,r){if(t.length>10||!Lo(t))return;if(t==="yield"){if(this.prodParam.hasYield){this.raise(l.YieldBindingIdentifier,{at:e});return}}else if(t==="await"){if(this.prodParam.hasAwait){this.raise(l.AwaitBindingIdentifier,{at:e});return}if(this.scope.inStaticBlock){this.raise(l.AwaitBindingIdentifierInStaticBlock,{at:e});return}this.expressionScope.recordAsyncArrowParametersError({at:e})}else if(t==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(l.ArgumentsInClass,{at:e});return}if(s&&ko(t)){this.raise(l.UnexpectedKeyword,{at:e,keyword:t});return}(this.state.strict?r?fr:cr:ur)(t,this.inModule)&&this.raise(l.UnexpectedReservedWord,{at:e,reservedWord:t})}isAwaitAllowed(){return!!(this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction)}parseAwait(t,e){let s=this.startNodeAt(t,e);return this.expressionScope.recordParameterInitializerError(l.AwaitExpressionFormalParameter,{at:s}),this.eat(55)&&this.raise(l.ObsoleteAwaitStar,{at:s}),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(s.argument=this.parseMaybeUnary(null,!0)),this.finishNode(s,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:t}=this.state;return t===53||t===10||t===0||ut(t)||t===133||t===56||this.hasPlugin("v8intrinsic")&&t===54}parseYield(){let t=this.startNode();this.expressionScope.recordParameterInitializerError(l.YieldInParameter,{at:t}),this.next();let e=!1,s=null;if(!this.hasPrecedingLineBreak())switch(e=this.eat(55),this.state.type){case 13:case 135:case 8:case 11:case 3:case 9:case 14:case 12:if(!e)break;default:s=this.parseMaybeAssign()}return t.delegate=e,t.argument=s,this.finishNode(t,"YieldExpression")}checkPipelineAtInfixOperator(t,e){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&t.type==="SequenceExpression"&&this.raise(l.PipelineHeadSequenceExpression,{at:e})}parseSmartPipelineBodyInStyle(t,e,s){let r=this.startNodeAt(e,s);return this.isSimpleReference(t)?(r.callee=t,this.finishNode(r,"PipelineBareFunction")):(this.checkSmartPipeTopicBodyEarlyErrors(s),r.expression=t,this.finishNode(r,"PipelineTopicExpression"))}isSimpleReference(t){switch(t.type){case"MemberExpression":return!t.computed&&this.isSimpleReference(t.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(t){if(this.match(19))throw this.raise(l.PipelineBodyNoArrow,{at:this.state.startLoc});this.topicReferenceWasUsedInCurrentContext()||this.raise(l.PipelineTopicUnused,{at:t})}withTopicBindingContext(t){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}withSmartMixTopicForbiddingContext(t){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}else return t()}withSoloAwaitPermittingContext(t){let e=this.state.soloAwait;this.state.soloAwait=!0;try{return t()}finally{this.state.soloAwait=e}}allowInAnd(t){let e=this.prodParam.currentFlags();if(We&~e){this.prodParam.enter(e|We);try{return t()}finally{this.prodParam.exit()}}return t()}disallowInAnd(t){let e=this.prodParam.currentFlags();if(We&e){this.prodParam.enter(e&~We);try{return t()}finally{this.prodParam.exit()}}return t()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(t){let e=this.state.start,s=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let i=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),e,s,t);return this.state.inFSharpPipelineDirectBody=r,i}parseModuleExpression(){this.expectPlugin("moduleBlocks");let t=this.startNode();this.next(),this.eat(5);let e=this.initializeScopes(!0);this.enterInitialScopes();let s=this.startNode();try{t.body=this.parseProgram(s,8,"module")}finally{e()}return this.eat(8),this.finishNode(t,"ModuleExpression")}parsePropertyNamePrefixOperator(t){}},cs={kind:"loop"},qh={kind:"switch"},Uh=0,ps=1,Kr=2,Vr=4,_h=/[\uD800-\uDFFF]/u,fs=/in(?:stanceof)?/y;function zh(t,e){for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:135,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.options.sourceType;if(t.sourceType=s,t.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(t,!0,!0,e),this.inModule&&!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(let[r,i]of Array.from(this.scope.undefinedExports))this.raise(l.ModuleExportUndefined,{at:i,localName:r});return this.finishNode(t,"Program")}stmtToDirective(t){let e=t;e.type="Directive",e.value=e.expression,delete e.expression;let s=e.value,r=s.value,i=this.input.slice(s.start,s.end),a=s.value=i.slice(1,-1);return this.addExtra(s,"raw",i),this.addExtra(s,"rawValue",a),this.addExtra(s,"expressionValue",r),s.type="DirectiveLiteral",e}parseInterpreterDirective(){if(!this.match(28))return null;let t=this.startNode();return t.value=this.state.value,this.next(),this.finishNode(t,"InterpreterDirective")}isLet(t){return this.isContextual(99)?this.isLetKeyword(t):!1}isLetKeyword(t){let e=this.nextTokenStart(),s=this.codePointAtPos(e);if(s===92||s===91)return!0;if(t)return!1;if(s===123)return!0;if(ge(s)){if(fs.lastIndex=e,fs.test(this.input)){let r=this.codePointAtPos(fs.lastIndex);if(!ze(r)&&r!==92)return!1}return!0}return!1}parseStatement(t,e){return this.match(26)&&this.parseDecorators(!0),this.parseStatementContent(t,e)}parseStatementContent(t,e){let s=this.state.type,r=this.startNode(),i;switch(this.isLet(t)&&(s=74,i="let"),s){case 60:return this.parseBreakContinueStatement(r,!0);case 63:return this.parseBreakContinueStatement(r,!1);case 64:return this.parseDebuggerStatement(r);case 90:return this.parseDoStatement(r);case 91:return this.parseForStatement(r);case 68:if(this.lookaheadCharCode()===46)break;return t&&(this.state.strict?this.raise(l.StrictFunction,{at:this.state.startLoc}):t!=="if"&&t!=="label"&&this.raise(l.SloppyFunction,{at:this.state.startLoc})),this.parseFunctionStatement(r,!1,!t);case 80:return t&&this.unexpected(),this.parseClass(r,!0);case 69:return this.parseIfStatement(r);case 70:return this.parseReturnStatement(r);case 71:return this.parseSwitchStatement(r);case 72:return this.parseThrowStatement(r);case 73:return this.parseTryStatement(r);case 75:case 74:return i=i||this.state.value,t&&i!=="var"&&this.raise(l.UnexpectedLexicalDeclaration,{at:this.state.startLoc}),this.parseVarStatement(r,i);case 92:return this.parseWhileStatement(r);case 76:return this.parseWithStatement(r);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(r);case 83:{let o=this.lookaheadCharCode();if(o===40||o===46)break}case 82:{!this.options.allowImportExportEverywhere&&!e&&this.raise(l.UnexpectedImportExport,{at:this.state.startLoc}),this.next();let o;return s===83?(o=this.parseImport(r),o.type==="ImportDeclaration"&&(!o.importKind||o.importKind==="value")&&(this.sawUnambiguousESM=!0)):(o=this.parseExport(r),(o.type==="ExportNamedDeclaration"&&(!o.exportKind||o.exportKind==="value")||o.type==="ExportAllDeclaration"&&(!o.exportKind||o.exportKind==="value")||o.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(r),o}default:if(this.isAsyncFunction())return t&&this.raise(l.AsyncFunctionInSingleStatementContext,{at:this.state.startLoc}),this.next(),this.parseFunctionStatement(r,!0,!t)}let a=this.state.value,n=this.parseExpression();return K(s)&&n.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(r,a,n,t):this.parseExpressionStatement(r,n)}assertModuleNodeAllowed(t){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(l.ImportOutsideModule,{at:t})}takeDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];e.length&&(t.decorators=e,this.resetStartLocationFromNode(t,e[0]),this.state.decoratorStack[this.state.decoratorStack.length-1]=[])}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];for(;this.match(26);){let s=this.parseDecorator();e.push(s)}if(this.match(82))t||this.unexpected(),this.hasPlugin("decorators")&&!this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(l.DecoratorExportClass,{at:this.state.startLoc});else if(!this.canHaveLeadingDecorator())throw this.raise(l.UnexpectedLeadingDecorator,{at:this.state.startLoc})}parseDecorator(){this.expectOnePlugin(["decorators-legacy","decorators"]);let t=this.startNode();if(this.next(),this.hasPlugin("decorators")){this.state.decoratorStack.push([]);let e=this.state.start,s=this.state.startLoc,r;if(this.match(10)){let i=this.state.start,a=this.state.startLoc;this.next(),r=this.parseExpression(),this.expect(11),r=this.wrapParenthesis(i,a,r)}else for(r=this.parseIdentifier(!1);this.eat(16);){let i=this.startNodeAt(e,s);i.object=r,i.property=this.parseIdentifier(!0),i.computed=!1,r=this.finishNode(i,"MemberExpression")}t.expression=this.parseMaybeDecoratorArguments(r),this.state.decoratorStack.pop()}else t.expression=this.parseExprSubscripts();return this.finishNode(t,"Decorator")}parseMaybeDecoratorArguments(t){if(this.eat(10)){let e=this.startNodeAtNode(t);return e.callee=t,e.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(e.arguments),this.finishNode(e,"CallExpression")}return t}parseBreakContinueStatement(t,e){return this.next(),this.isLineTerminator()?t.label=null:(t.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(t,e),this.finishNode(t,e?"BreakStatement":"ContinueStatement")}verifyBreakContinue(t,e){let s;for(s=0;sthis.parseStatement("do")),this.state.labels.pop(),this.expect(92),t.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(t,"DoWhileStatement")}parseForStatement(t){this.next(),this.state.labels.push(cs);let e=null;if(this.isAwaitAllowed()&&this.eatContextual(96)&&(e=this.state.lastTokStartLoc),this.scope.enter(Ke),this.expect(10),this.match(13))return e!==null&&this.unexpected(e),this.parseFor(t,null);let s=this.isContextual(99),r=s&&this.isLetKeyword();if(this.match(74)||this.match(75)||r){let c=this.startNode(),f=r?"let":this.state.value;return this.next(),this.parseVar(c,!0,f),this.finishNode(c,"VariableDeclaration"),(this.match(58)||this.isContextual(101))&&c.declarations.length===1?this.parseForIn(t,c,e):(e!==null&&this.unexpected(e),this.parseFor(t,c))}let i=this.isContextual(95),a=new bt,n=this.parseExpression(!0,a),o=this.isContextual(101);if(o&&(s&&this.raise(l.ForOfLet,{at:n}),e===null&&i&&n.type==="Identifier"&&this.raise(l.ForOfAsync,{at:n})),o||this.match(58)){this.checkDestructuringPrivate(a),this.toAssignable(n,!0);let c=o?"ForOfStatement":"ForInStatement";return this.checkLVal(n,{in:{type:c}}),this.parseForIn(t,n,e)}else this.checkExpressionErrors(a,!0);return e!==null&&this.unexpected(e),this.parseFor(t,n)}parseFunctionStatement(t,e,s){return this.next(),this.parseFunction(t,ps|(s?0:Kr),e)}parseIfStatement(t){return this.next(),t.test=this.parseHeaderExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(66)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")}parseReturnStatement(t){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(l.IllegalReturn,{at:this.state.startLoc}),this.next(),this.isLineTerminator()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")}parseSwitchStatement(t){this.next(),t.discriminant=this.parseHeaderExpression();let e=t.cases=[];this.expect(5),this.state.labels.push(qh),this.scope.enter(Ke);let s;for(let r;!this.match(8);)if(this.match(61)||this.match(65)){let i=this.match(61);s&&this.finishNode(s,"SwitchCase"),e.push(s=this.startNode()),s.consequent=[],this.next(),i?s.test=this.parseExpression():(r&&this.raise(l.MultipleDefaultsInSwitch,{at:this.state.lastTokStartLoc}),r=!0,s.test=null),this.expect(14)}else s?s.consequent.push(this.parseStatement(null)):this.unexpected();return this.scope.exit(),s&&this.finishNode(s,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(t,"SwitchStatement")}parseThrowStatement(t){return this.next(),this.hasPrecedingLineBreak()&&this.raise(l.NewlineAfterThrow,{at:this.state.lastTokEndLoc}),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")}parseCatchClauseParam(){let t=this.parseBindingAtom(),e=t.type==="Identifier";return this.scope.enter(e?dr:0),this.checkLVal(t,{in:{type:"CatchClause"},binding:Te,allowingSloppyLetBinding:!0}),t}parseTryStatement(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.match(62)){let e=this.startNode();this.next(),this.match(10)?(this.expect(10),e.param=this.parseCatchClauseParam(),this.expect(11)):(e.param=null,this.scope.enter(Ke)),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(67)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(l.NoCatchOrFinally,{at:t}),this.finishNode(t,"TryStatement")}parseVarStatement(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this.next(),this.parseVar(t,!1,e,s),this.semicolon(),this.finishNode(t,"VariableDeclaration")}parseWhileStatement(t){return this.next(),t.test=this.parseHeaderExpression(),this.state.labels.push(cs),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("while")),this.state.labels.pop(),this.finishNode(t,"WhileStatement")}parseWithStatement(t){return this.state.strict&&this.raise(l.StrictWith,{at:this.state.startLoc}),this.next(),t.object=this.parseHeaderExpression(),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("with")),this.finishNode(t,"WithStatement")}parseEmptyStatement(t){return this.next(),this.finishNode(t,"EmptyStatement")}parseLabeledStatement(t,e,s,r){for(let a of this.state.labels)a.name===e&&this.raise(l.LabelRedeclaration,{at:s,labelName:e});let i=yo(this.state.type)?"loop":this.match(71)?"switch":null;for(let a=this.state.labels.length-1;a>=0;a--){let n=this.state.labels[a];if(n.statementStart===t.start)n.statementStart=this.state.start,n.kind=i;else break}return this.state.labels.push({name:e,kind:i,statementStart:this.state.start}),t.body=this.parseStatement(r?r.indexOf("label")===-1?r+"label":r:"label"),this.state.labels.pop(),t.label=s,this.finishNode(t,"LabeledStatement")}parseExpressionStatement(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")}parseBlock(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=arguments.length>2?arguments[2]:void 0,r=this.startNode();return t&&this.state.strictErrors.clear(),this.expect(5),e&&this.scope.enter(Ke),this.parseBlockBody(r,t,!1,8,s),e&&this.scope.exit(),this.finishNode(r,"BlockStatement")}isValidDirective(t){return t.type==="ExpressionStatement"&&t.expression.type==="StringLiteral"&&!t.expression.extra.parenthesized}parseBlockBody(t,e,s,r,i){let a=t.body=[],n=t.directives=[];this.parseBlockOrModuleBlockBody(a,e?n:void 0,s,r,i)}parseBlockOrModuleBlockBody(t,e,s,r,i){let a=this.state.strict,n=!1,o=!1;for(;!this.match(r);){let c=this.parseStatement(null,s);if(e&&!o){if(this.isValidDirective(c)){let f=this.stmtToDirective(c);e.push(f),!n&&f.value.value==="use strict"&&(n=!0,this.setStrict(!0));continue}o=!0,this.state.strictErrors.clear()}t.push(c)}i&&i.call(this,n),a||this.setStrict(!1),this.next()}parseFor(t,e){return t.init=e,this.semicolon(!1),t.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),t.update=this.match(11)?null:this.parseExpression(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("for")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,"ForStatement")}parseForIn(t,e,s){let r=this.match(58);return this.next(),r?s!==null&&this.unexpected(s):t.await=s!==null,e.type==="VariableDeclaration"&&e.declarations[0].init!=null&&(!r||this.state.strict||e.kind!=="var"||e.declarations[0].id.type!=="Identifier")&&this.raise(l.ForInOfLoopInitializer,{at:e,type:r?"ForInStatement":"ForOfStatement"}),e.type==="AssignmentPattern"&&this.raise(l.InvalidLhs,{at:e,ancestor:{type:"ForStatement"}}),t.left=e,t.right=r?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("for")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,r?"ForInStatement":"ForOfStatement")}parseVar(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=t.declarations=[];for(t.kind=s;;){let a=this.startNode();if(this.parseVarId(a,s),a.init=this.eat(29)?e?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,a.init===null&&!r&&(a.id.type!=="Identifier"&&!(e&&(this.match(58)||this.isContextual(101)))?this.raise(l.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:"destructuring"}):s==="const"&&!(this.match(58)||this.isContextual(101))&&this.raise(l.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:"const"})),i.push(this.finishNode(a,"VariableDeclarator")),!this.eat(12))break}return t}parseVarId(t,e){t.id=this.parseBindingAtom(),this.checkLVal(t.id,{in:{type:"VariableDeclarator"},binding:e==="var"?yt:Te})}parseFunction(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Uh,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&ps,i=e&Kr,a=!!r&&!(e&Vr);this.initFunction(t,s),this.match(55)&&i&&this.raise(l.GeneratorInSingleStatementContext,{at:this.state.startLoc}),t.generator=this.eat(55),r&&(t.id=this.parseFunctionId(a));let n=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(Ae),this.prodParam.enter(Et(s,t.generator)),r||(t.id=this.parseFunctionId()),this.parseFunctionParams(t,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(t,r?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),r&&!i&&this.registerFunctionStatementId(t),this.state.maybeInArrowParameters=n,t}parseFunctionId(t){return t||K(this.state.type)?this.parseIdentifier():null}parseFunctionParams(t,e){this.expect(10),this.expressionScope.enter(nh()),t.params=this.parseBindingList(11,41,!1,e),this.expressionScope.exit()}registerFunctionStatementId(t){!t.id||this.scope.declareName(t.id.name,this.state.strict||t.generator||t.async?this.scope.treatFunctionsAsVar?yt:Te:Ar,t.id.loc.start)}parseClass(t,e,s){this.next(),this.takeDecorators(t);let r=this.state.strict;return this.state.strict=!0,this.parseClassId(t,e,s),this.parseClassSuper(t),t.body=this.parseClassBody(!!t.superClass,r),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}isNonstaticConstructor(t){return!t.computed&&!t.static&&(t.key.name==="constructor"||t.key.value==="constructor")}parseClassBody(t,e){this.classScope.enter();let s={hadConstructor:!1,hadSuperClass:t},r=[],i=this.startNode();if(i.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(r.length>0)throw this.raise(l.DecoratorSemicolon,{at:this.state.lastTokEndLoc});continue}if(this.match(26)){r.push(this.parseDecorator());continue}let a=this.startNode();r.length&&(a.decorators=r,this.resetStartLocationFromNode(a,r[0]),r=[]),this.parseClassMember(i,a,s),a.kind==="constructor"&&a.decorators&&a.decorators.length>0&&this.raise(l.DecoratorConstructor,{at:a})}}),this.state.strict=e,this.next(),r.length)throw this.raise(l.TrailingDecorator,{at:this.state.startLoc});return this.classScope.exit(),this.finishNode(i,"ClassBody")}parseClassMemberFromModifier(t,e){let s=this.parseIdentifier(!0);if(this.isClassMethod()){let r=e;return r.kind="method",r.computed=!1,r.key=s,r.static=!1,this.pushClassMethod(t,r,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let r=e;return r.computed=!1,r.key=s,r.static=!1,t.body.push(this.parseClassProperty(r)),!0}return this.resetPreviousNodeTrailingComments(s),!1}parseClassMember(t,e,s){let r=this.isContextual(104);if(r){if(this.parseClassMemberFromModifier(t,e))return;if(this.eat(5)){this.parseClassStaticBlock(t,e);return}}this.parseClassMemberWithIsStatic(t,e,s,r)}parseClassMemberWithIsStatic(t,e,s,r){let i=e,a=e,n=e,o=e,c=e,f=i,y=i;if(e.static=r,this.parsePropertyNamePrefixOperator(e),this.eat(55)){f.kind="method";let z=this.match(134);if(this.parseClassElementName(f),z){this.pushClassPrivateMethod(t,a,!0,!1);return}this.isNonstaticConstructor(i)&&this.raise(l.ConstructorIsGenerator,{at:i.key}),this.pushClassMethod(t,i,!0,!1,!1,!1);return}let T=K(this.state.type)&&!this.state.containsEsc,v=this.match(134),N=this.parseClassElementName(e),R=this.state.startLoc;if(this.parsePostMemberNameModifiers(y),this.isClassMethod()){if(f.kind="method",v){this.pushClassPrivateMethod(t,a,!1,!1);return}let z=this.isNonstaticConstructor(i),te=!1;z&&(i.kind="constructor",s.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(l.DuplicateConstructor,{at:N}),z&&this.hasPlugin("typescript")&&e.override&&this.raise(l.OverrideOnConstructor,{at:N}),s.hadConstructor=!0,te=s.hadSuperClass),this.pushClassMethod(t,i,!1,!1,z,te)}else if(this.isClassProperty())v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n);else if(T&&N.name==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(N);let z=this.eat(55);y.optional&&this.unexpected(R),f.kind="method";let te=this.match(134);this.parseClassElementName(f),this.parsePostMemberNameModifiers(y),te?this.pushClassPrivateMethod(t,a,z,!0):(this.isNonstaticConstructor(i)&&this.raise(l.ConstructorIsAsync,{at:i.key}),this.pushClassMethod(t,i,z,!0,!1,!1))}else if(T&&(N.name==="get"||N.name==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(N),f.kind=N.name;let z=this.match(134);this.parseClassElementName(i),z?this.pushClassPrivateMethod(t,a,!1,!1):(this.isNonstaticConstructor(i)&&this.raise(l.ConstructorIsAccessor,{at:i.key}),this.pushClassMethod(t,i,!1,!1,!1,!1)),this.checkGetterSetterParams(i)}else if(T&&N.name==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(N);let z=this.match(134);this.parseClassElementName(n),this.pushClassAccessorProperty(t,c,z)}else this.isLineTerminator()?v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n):this.unexpected()}parseClassElementName(t){let{type:e,value:s}=this.state;if((e===128||e===129)&&t.static&&s==="prototype"&&this.raise(l.StaticPrototype,{at:this.state.startLoc}),e===134){s==="constructor"&&this.raise(l.ConstructorClassPrivateField,{at:this.state.startLoc});let r=this.parsePrivateName();return t.key=r,r}return this.parsePropertyName(t)}parseClassStaticBlock(t,e){var s;this.scope.enter(Fe|Jt|ct);let r=this.state.labels;this.state.labels=[],this.prodParam.enter(He);let i=e.body=[];this.parseBlockOrModuleBlockBody(i,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=r,t.body.push(this.finishNode(e,"StaticBlock")),(s=e.decorators)!=null&&s.length&&this.raise(l.DecoratorStaticBlock,{at:e})}pushClassProperty(t,e){!e.computed&&(e.key.name==="constructor"||e.key.value==="constructor")&&this.raise(l.ConstructorClassField,{at:e.key}),t.body.push(this.parseClassProperty(e))}pushClassPrivateProperty(t,e){let s=this.parseClassPrivateProperty(e);t.body.push(s),this.classScope.declarePrivateName(this.getPrivateNameSV(s.key),rs,s.key.loc.start)}pushClassAccessorProperty(t,e,s){if(!s&&!e.computed){let i=e.key;(i.name==="constructor"||i.value==="constructor")&&this.raise(l.ConstructorClassField,{at:i})}let r=this.parseClassAccessorProperty(e);t.body.push(r),s&&this.classScope.declarePrivateName(this.getPrivateNameSV(r.key),rs,r.key.loc.start)}pushClassMethod(t,e,s,r,i,a){t.body.push(this.parseMethod(e,s,r,i,a,"ClassMethod",!0))}pushClassPrivateMethod(t,e,s,r){let i=this.parseMethod(e,s,r,!1,!1,"ClassPrivateMethod",!0);t.body.push(i);let a=i.kind==="get"?i.static?Uo:zo:i.kind==="set"?i.static?_o:Ko:rs;this.declareClassPrivateMethodInScope(i,a)}declareClassPrivateMethodInScope(t,e){this.classScope.declarePrivateName(this.getPrivateNameSV(t.key),e,t.key.loc.start)}parsePostMemberNameModifiers(t){}parseClassPrivateProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassPrivateProperty")}parseClassProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassProperty")}parseClassAccessorProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassAccessorProperty")}parseInitializer(t){this.scope.enter(Fe|ct),this.expressionScope.enter(Ir()),this.prodParam.enter(He),t.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:gr;if(K(this.state.type))t.id=this.parseIdentifier(),e&&this.declareNameFromIdentifier(t.id,r);else if(s||!e)t.id=null;else throw this.raise(l.MissingClassName,{at:this.state.startLoc})}parseClassSuper(t){t.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(t){let e=this.maybeParseExportDefaultSpecifier(t),s=!e||this.eat(12),r=s&&this.eatExportStar(t),i=r&&this.maybeParseExportNamespaceSpecifier(t),a=s&&(!i||this.eat(12)),n=e||r;if(r&&!i)return e&&this.unexpected(),this.parseExportFrom(t,!0),this.finishNode(t,"ExportAllDeclaration");let o=this.maybeParseExportNamedSpecifiers(t);if(e&&s&&!r&&!o||i&&a&&!o)throw this.unexpected(null,5);let c;if(n||o?(c=!1,this.parseExportFrom(t,n)):c=this.maybeParseExportDeclaration(t),n||o||c)return this.checkExport(t,!0,!1,!!t.source),this.finishNode(t,"ExportNamedDeclaration");if(this.eat(65))return t.declaration=this.parseExportDefaultExpression(),this.checkExport(t,!0,!0),this.finishNode(t,"ExportDefaultDeclaration");throw this.unexpected(null,5)}eatExportStar(t){return this.eat(55)}maybeParseExportDefaultSpecifier(t){if(this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom");let e=this.startNode();return e.exported=this.parseIdentifier(!0),t.specifiers=[this.finishNode(e,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(t){if(this.isContextual(93)){t.specifiers||(t.specifiers=[]);let e=this.startNodeAt(this.state.lastTokStart,this.state.lastTokStartLoc);return this.next(),e.exported=this.parseModuleExportName(),t.specifiers.push(this.finishNode(e,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(t){if(this.match(5)){t.specifiers||(t.specifiers=[]);let e=t.exportKind==="type";return t.specifiers.push(...this.parseExportSpecifiers(e)),t.source=null,t.declaration=null,this.hasPlugin("importAssertions")&&(t.assertions=[]),!0}return!1}maybeParseExportDeclaration(t){return this.shouldParseExportDeclaration()?(t.specifiers=[],t.source=null,this.hasPlugin("importAssertions")&&(t.assertions=[]),t.declaration=this.parseExportDeclaration(t),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let t=this.nextTokenStart();return!is.test(this.input.slice(this.state.pos,t))&&this.isUnparsedContextual(t,"function")}parseExportDefaultExpression(){let t=this.startNode(),e=this.isAsyncFunction();if(this.match(68)||e)return this.next(),e&&this.next(),this.parseFunction(t,ps|Vr,e);if(this.match(80))return this.parseClass(t,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(l.DecoratorBeforeExport,{at:this.state.startLoc}),this.parseDecorators(!1),this.parseClass(t,!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(l.UnsupportedDefaultExport,{at:this.state.startLoc});let s=this.parseMaybeAssignAllowIn();return this.semicolon(),s}parseExportDeclaration(t){return this.parseStatement(null)}isExportDefaultSpecifier(){let{type:t}=this.state;if(K(t)){if(t===95&&!this.state.containsEsc||t===99)return!1;if((t===126||t===125)&&!this.state.containsEsc){let{type:r}=this.lookahead();if(K(r)&&r!==97||r===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;let e=this.nextTokenStart(),s=this.isUnparsedContextual(e,"from");if(this.input.charCodeAt(e)===44||K(this.state.type)&&s)return!0;if(this.match(65)&&s){let r=this.input.charCodeAt(this.nextTokenStartSince(e+4));return r===34||r===39}return!1}parseExportFrom(t,e){if(this.eatContextual(97)){t.source=this.parseImportSource(),this.checkExport(t);let s=this.maybeParseImportAssertions();s&&(t.assertions=s)}else e&&this.unexpected();this.semicolon()}shouldParseExportDeclaration(){let{type:t}=this.state;if(t===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))){if(this.getPluginOption("decorators","decoratorsBeforeExport"))throw this.raise(l.DecoratorBeforeExport,{at:this.state.startLoc});return!0}return t===74||t===75||t===68||t===80||this.isLet()||this.isAsyncFunction()}checkExport(t,e,s,r){if(e){if(s){if(this.checkDuplicateExports(t,"default"),this.hasPlugin("exportDefaultFrom")){var i;let n=t.declaration;n.type==="Identifier"&&n.name==="from"&&n.end-n.start===4&&!((i=n.extra)!=null&&i.parenthesized)&&this.raise(l.ExportDefaultFromAsIdentifier,{at:n})}}else if(t.specifiers&&t.specifiers.length)for(let n of t.specifiers){let{exported:o}=n,c=o.type==="Identifier"?o.name:o.value;if(this.checkDuplicateExports(n,c),!r&&n.local){let{local:f}=n;f.type!=="Identifier"?this.raise(l.ExportBindingIsString,{at:n,localName:f.value,exportName:c}):(this.checkReservedWord(f.name,f.loc.start,!0,!1),this.scope.checkLocalExport(f))}}else if(t.declaration){if(t.declaration.type==="FunctionDeclaration"||t.declaration.type==="ClassDeclaration"){let n=t.declaration.id;if(!n)throw new Error("Assertion failure");this.checkDuplicateExports(t,n.name)}else if(t.declaration.type==="VariableDeclaration")for(let n of t.declaration.declarations)this.checkDeclaration(n.id)}}if(this.state.decoratorStack[this.state.decoratorStack.length-1].length)throw this.raise(l.UnsupportedDecoratorExport,{at:t})}checkDeclaration(t){if(t.type==="Identifier")this.checkDuplicateExports(t,t.name);else if(t.type==="ObjectPattern")for(let e of t.properties)this.checkDeclaration(e);else if(t.type==="ArrayPattern")for(let e of t.elements)e&&this.checkDeclaration(e);else t.type==="ObjectProperty"?this.checkDeclaration(t.value):t.type==="RestElement"?this.checkDeclaration(t.argument):t.type==="AssignmentPattern"&&this.checkDeclaration(t.left)}checkDuplicateExports(t,e){this.exportedIdentifiers.has(e)&&(e==="default"?this.raise(l.DuplicateDefaultExport,{at:t}):this.raise(l.DuplicateExport,{at:t,exportName:e})),this.exportedIdentifiers.add(e)}parseExportSpecifiers(t){let e=[],s=!0;for(this.expect(5);!this.eat(8);){if(s)s=!1;else if(this.expect(12),this.eat(8))break;let r=this.isContextual(126),i=this.match(129),a=this.startNode();a.local=this.parseModuleExportName(),e.push(this.parseExportSpecifier(a,i,t,r))}return e}parseExportSpecifier(t,e,s,r){return this.eatContextual(93)?t.exported=this.parseModuleExportName():e?t.exported=ph(t.local):t.exported||(t.exported=Ee(t.local)),this.finishNode(t,"ExportSpecifier")}parseModuleExportName(){if(this.match(129)){let t=this.parseStringLiteral(this.state.value),e=t.value.match(_h);return e&&this.raise(l.ModuleExportNameHasLoneSurrogate,{at:t,surrogateCharCode:e[0].charCodeAt(0)}),t}return this.parseIdentifier(!0)}parseImport(t){if(t.specifiers=[],!this.match(129)){let r=!this.maybeParseDefaultImportSpecifier(t)||this.eat(12),i=r&&this.maybeParseStarImportSpecifier(t);r&&!i&&this.parseNamedImportSpecifiers(t),this.expectContextual(97)}t.source=this.parseImportSource();let e=this.maybeParseImportAssertions();if(e)t.assertions=e;else{let s=this.maybeParseModuleAttributes();s&&(t.attributes=s)}return this.semicolon(),this.finishNode(t,"ImportDeclaration")}parseImportSource(){return this.match(129)||this.unexpected(),this.parseExprAtom()}shouldParseDefaultImport(t){return K(this.state.type)}parseImportSpecifierLocal(t,e,s){e.local=this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(e,s))}finishImportSpecifier(t,e){return this.checkLVal(t.local,{in:t,binding:Te}),this.finishNode(t,e)}parseAssertEntries(){let t=[],e=new Set;do{if(this.match(8))break;let s=this.startNode(),r=this.state.value;if(e.has(r)&&this.raise(l.ModuleAttributesWithDuplicateKeys,{at:this.state.startLoc,key:r}),e.add(r),this.match(129)?s.key=this.parseStringLiteral(r):s.key=this.parseIdentifier(!0),this.expect(14),!this.match(129))throw this.raise(l.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,"ImportAttribute"),t.push(s)}while(this.eat(12));return t}maybeParseModuleAttributes(){if(this.match(76)&&!this.hasPrecedingLineBreak())this.expectPlugin("moduleAttributes"),this.next();else return this.hasPlugin("moduleAttributes")?[]:null;let t=[],e=new Set;do{let s=this.startNode();if(s.key=this.parseIdentifier(!0),s.key.name!=="type"&&this.raise(l.ModuleAttributeDifferentFromType,{at:s.key}),e.has(s.key.name)&&this.raise(l.ModuleAttributesWithDuplicateKeys,{at:s.key,key:s.key.name}),e.add(s.key.name),this.expect(14),!this.match(129))throw this.raise(l.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,"ImportAttribute"),t.push(s)}while(this.eat(12));return t}maybeParseImportAssertions(){if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.expectPlugin("importAssertions"),this.next();else return this.hasPlugin("importAssertions")?[]:null;this.eat(5);let t=this.parseAssertEntries();return this.eat(8),t}maybeParseDefaultImportSpecifier(t){return this.shouldParseDefaultImport(t)?(this.parseImportSpecifierLocal(t,this.startNode(),"ImportDefaultSpecifier"),!0):!1}maybeParseStarImportSpecifier(t){if(this.match(55)){let e=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(t,e,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(t){let e=!0;for(this.expect(5);!this.eat(8);){if(e)e=!1;else{if(this.eat(14))throw this.raise(l.DestructureNamedImport,{at:this.state.startLoc});if(this.expect(12),this.eat(8))break}let s=this.startNode(),r=this.match(129),i=this.isContextual(126);s.imported=this.parseModuleExportName();let a=this.parseImportSpecifier(s,r,t.importKind==="type"||t.importKind==="typeof",i);t.specifiers.push(a)}}parseImportSpecifier(t,e,s,r){if(this.eatContextual(93))t.local=this.parseIdentifier();else{let{imported:i}=t;if(e)throw this.raise(l.ImportBindingIsString,{at:t,importName:i.value});this.checkReservedWord(i.name,t.loc.start,!0,!0),t.local||(t.local=Ee(i))}return this.finishImportSpecifier(t,"ImportSpecifier")}isThisParam(t){return t.type==="Identifier"&&t.name==="this"}},Hr=class extends Kh{constructor(t,e){t=Bh(t),super(t,e),this.options=t,this.initializeScopes(),this.plugins=Vh(this.options.plugins),this.filename=t.sourceFilename}getScopeHandler(){return os}parse(){this.enterInitialScopes();let t=this.startNode(),e=this.startNode();return this.nextToken(),t.errors=null,this.parseTopLevel(t,e),t.errors=this.state.errors,t}};function Vh(t){let e=new Map;for(let s of t){let[r,i]=Array.isArray(s)?s:[s,{}];e.has(r)||e.set(r,i||{})}return e}function Hh(t,e){var s;if(((s=e)==null?void 0:s.sourceType)==="unambiguous"){e=Object.assign({},e);try{e.sourceType="module";let r=tt(e,t),i=r.parse();if(r.sawUnambiguousESM)return i;if(r.ambiguousScriptDifferentAst)try{return e.sourceType="script",tt(e,t).parse()}catch{}else i.program.sourceType="script";return i}catch(r){try{return e.sourceType="script",tt(e,t).parse()}catch{}throw r}}else return tt(e,t).parse()}function Wh(t,e){let s=tt(e,t);return s.options.strictMode&&(s.state.strict=!0),s.getExpression()}function Gh(t){let e={};for(let s of Object.keys(t))e[s]=xe(t[s]);return e}var Xh=Gh(co);function tt(t,e){let s=Hr;return t!=null&&t.plugins&&(Lh(t.plugins),s=Jh(t.plugins)),new s(t,e)}var Wr={};function Jh(t){let e=Oh.filter(i=>se(t,i)),s=e.join("/"),r=Wr[s];if(!r){r=Hr;for(let i of e)r=Ur[i](r);Wr[s]=r}return r}h.parse=Hh,h.parseExpression=Wh,h.tokTypes=Xh}}),hf=W({"src/language-js/parse/json.js"(h,u){"use strict";H();var p=io(),d=ar(),m=no(),x=oo();function A(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{allowComments:M=!0}=C;return function(k){let{parseExpression:G}=uo(),Z;try{Z=G(k,{tokens:!0,ranges:!0})}catch(B){throw x(B)}if(!M&&p(Z.comments))throw g(Z.comments[0],"Comment");return E(Z),Z}}function g(C,M){let[L,k]=[C.loc.start,C.loc.end].map(G=>{let{line:Z,column:B}=G;return{line:Z,column:B+1}});return d("".concat(M," is not allowed in JSON."),{start:L,end:k})}function E(C){switch(C.type){case"ArrayExpression":for(let M of C.elements)M!==null&&E(M);return;case"ObjectExpression":for(let M of C.properties)E(M);return;case"ObjectProperty":if(C.computed)throw g(C.key,"Computed key");if(C.shorthand)throw g(C.key,"Shorthand property");C.key.type!=="Identifier"&&E(C.key),E(C.value);return;case"UnaryExpression":{let{operator:M,argument:L}=C;if(M!=="+"&&M!=="-")throw g(C,"Operator '".concat(C.operator,"'"));if(L.type==="NumericLiteral"||L.type==="Identifier"&&(L.name==="Infinity"||L.name==="NaN"))return;throw g(L,"Operator '".concat(M,"' before '").concat(L.type,"'"))}case"Identifier":if(C.name!=="Infinity"&&C.name!=="NaN"&&C.name!=="undefined")throw g(C,"Identifier '".concat(C.name,"'"));return;case"TemplateLiteral":if(p(C.expressions))throw g(C.expressions[0],"'TemplateLiteral' with expression");for(let M of C.quasis)E(M);return;case"NullLiteral":case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"TemplateElement":return;default:throw g(C,"'".concat(C.type,"'"))}}var F=A(),D={json:m({parse:F,hasPragma(){return!0}}),json5:m(F),"json-stringify":m({parse:A({allowComments:!1}),astFormat:"estree-json"})};u.exports=D}}),lf=W({"src/language-js/parse/babel.js"(h,u){H();var p=zp(),d=Kn(),m=Wp(),x=no(),A=oo(),g=of(),E=hf(),F={sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,plugins:["doExpressions","exportDefaultFrom","functionBind","functionSent","throwExpressions","partialApplication",["decorators",{decoratorsBeforeExport:!1}],"importAssertions","decimal","moduleBlocks","asyncDoExpressions","regexpUnicodeSets","destructuringPrivate","decoratorAutoAccessors"],tokens:!0,ranges:!0},D=["recordAndTuple",{syntaxType:"hash"}],C="v8intrinsic",M=[["pipelineOperator",{proposal:"hack",topicToken:"%"}],["pipelineOperator",{proposal:"minimal"}],["pipelineOperator",{proposal:"fsharp"}]],L=function(V){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:F;return Object.assign(Object.assign({},$),{},{plugins:[...$.plugins,...V]})},k=/@(?:no)?flow\b/;function G(V,$){if($.filepath&&$.filepath.endsWith(".js.flow"))return!0;let me=d(V);me&&(V=V.slice(me.length));let ce=m(V,0);return ce!==!1&&(V=V.slice(0,ce)),k.test(V)}function Z(V,$,me){let ae=uo()[V]($,me),q=ae.errors.find(X=>!ee.has(X.reasonCode));if(q)throw q;return ae}function B(V){for(var $=arguments.length,me=new Array($>1?$-1:0),ce=1;ce<$;ce++)me[ce-1]=arguments[ce];return function(ae,q){let X=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if((X.parser==="babel"||X.parser==="__babel_estree")&&G(ae,X))return X.parser="babel-flow",l(ae,q,X);let re=me;X.__babelSourceType==="script"&&(re=re.map(oe=>Object.assign(Object.assign({},oe),{},{sourceType:"script"}))),/#[[{]/.test(ae)&&(re=re.map(oe=>L([D],oe)));let ne=/%[A-Z]/.test(ae);ae.includes("|>")?re=(ne?[...M,C]:M).flatMap(Je=>re.map(Ye=>L([Je],Ye))):ne&&(re=re.map(oe=>L([C],oe)));let{result:Ue,error:_e}=p(...re.map(oe=>()=>Z(V,ae,oe)));if(!Ue)throw A(_e);return X.originalText=ae,g(Ue,X)}}var j=B("parse",L(["jsx","flow"])),l=B("parse",L(["jsx",["flow",{all:!0,enums:!0}]])),Y=B("parse",L(["jsx","typescript"]),L(["typescript"])),ie=B("parse",L(["jsx","flow","estree"])),Q=B("parseExpression",L(["jsx"])),Ce=B("parseExpression",L(["typescript"])),ee=new Set(["StrictNumericEscape","StrictWith","StrictOctalLiteral","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","EmptyTypeArguments","EmptyTypeParameters","ConstructorHasTypeParameters","UnsupportedParameterPropertyKind","UnexpectedParameterModifier","MixedLabeledAndUnlabeledElements","InvalidTupleMemberLabel","NonClassMethodPropertyHasAbstractModifer","ReadonlyForMethodSignature","ClassMethodHasDeclare","ClassMethodHasReadonly","InvalidModifierOnTypeMember","DuplicateAccessibilityModifier","IndexSignatureHasDeclare","DecoratorExportClass","ParamDupe","InvalidDecimal","RestTrailingComma","UnsupportedParameterDecorator","UnterminatedJsxContent","UnexpectedReservedWord","ModuleAttributesWithDuplicateKeys","LineTerminatorBeforeArrow","InvalidEscapeSequenceTemplate","NonAbstractClassHasAbstractMethod","UnsupportedPropertyDecorator","OptionalTypeBeforeRequired","PatternIsOptional","OptionalBindingPattern","DeclareClassFieldHasInitializer","TypeImportCannotSpecifyDefaultAndNamed","DeclareFunctionHasImplementation","ConstructorClassField","VarRedeclaration","InvalidPrivateFieldResolution","DuplicateExport"]),U=x(j),O=x(Y),P=x(Q),De=x(Ce);u.exports={parsers:Object.assign(Object.assign({babel:U,"babel-flow":x(l),"babel-ts":O},E),{},{__js_expression:P,__vue_expression:P,__vue_ts_expression:De,__vue_event_binding:U,__vue_ts_event_binding:O,__babel_estree:x(ie)})}}}),Fd=lf();export{Fd as default}; diff --git a/node_modules/prettier/esm/parser-espree.mjs b/node_modules/prettier/esm/parser-espree.mjs new file mode 100644 index 0000000..db55eb9 --- /dev/null +++ b/node_modules/prettier/esm/parser-espree.mjs @@ -0,0 +1,26 @@ +"use strict";var k=(n,o)=>()=>(o||n((o={exports:{}}).exports,o),o.exports);var $=k((Th,qr)=>{var Ze=function(n){return n&&n.Math==Math&&n};qr.exports=Ze(typeof globalThis=="object"&&globalThis)||Ze(typeof window=="object"&&window)||Ze(typeof self=="object"&&self)||Ze(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var ye=k((Ih,Mr)=>{Mr.exports=function(n){try{return!!n()}catch{return!0}}});var _e=k((Ph,Ur)=>{var $a=ye();Ur.exports=!$a(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Ct=k((Nh,zr)=>{var en=ye();zr.exports=!en(function(){var n=function(){}.bind();return typeof n!="function"||n.hasOwnProperty("prototype")})});var et=k((Dh,Wr)=>{var tn=Ct(),$e=Function.prototype.call;Wr.exports=tn?$e.bind($e):function(){return $e.apply($e,arguments)}});var Hr=k(Xr=>{"use strict";var Gr={}.propertyIsEnumerable,Kr=Object.getOwnPropertyDescriptor,rn=Kr&&!Gr.call({1:2},1);Xr.f=rn?function(o){var u=Kr(this,o);return!!u&&u.enumerable}:Gr});var Et=k((Lh,Jr)=>{Jr.exports=function(n,o){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:o}}});var ce=k((Vh,Zr)=>{var Yr=Ct(),Qr=Function.prototype,sn=Qr.bind,bt=Qr.call,an=Yr&&sn.bind(bt,bt);Zr.exports=Yr?function(n){return n&&an(n)}:function(n){return n&&function(){return bt.apply(n,arguments)}}});var ti=k((Rh,ei)=>{var $r=ce(),nn=$r({}.toString),on=$r("".slice);ei.exports=function(n){return on(nn(n),8,-1)}});var ii=k((jh,ri)=>{var un=$(),hn=ce(),ln=ye(),cn=ti(),_t=un.Object,pn=hn("".split);ri.exports=ln(function(){return!_t("z").propertyIsEnumerable(0)})?function(n){return cn(n)=="String"?pn(n,""):_t(n)}:_t});var St=k((qh,si)=>{var fn=$(),dn=fn.TypeError;si.exports=function(n){if(n==null)throw dn("Can't call method on "+n);return n}});var tt=k((Mh,ai)=>{var mn=ii(),vn=St();ai.exports=function(n){return mn(vn(n))}});var pe=k((Uh,ni)=>{ni.exports=function(n){return typeof n=="function"}});var Ie=k((zh,oi)=>{var gn=pe();oi.exports=function(n){return typeof n=="object"?n!==null:gn(n)}});var rt=k((Wh,ui)=>{var wt=$(),xn=pe(),yn=function(n){return xn(n)?n:void 0};ui.exports=function(n,o){return arguments.length<2?yn(wt[n]):wt[n]&&wt[n][o]}});var li=k((Gh,hi)=>{var An=ce();hi.exports=An({}.isPrototypeOf)});var pi=k((Kh,ci)=>{var Cn=rt();ci.exports=Cn("navigator","userAgent")||""});var yi=k((Xh,xi)=>{var gi=$(),kt=pi(),fi=gi.process,di=gi.Deno,mi=fi&&fi.versions||di&&di.version,vi=mi&&mi.v8,he,it;vi&&(he=vi.split("."),it=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!it&&kt&&(he=kt.match(/Edge\/(\d+)/),(!he||he[1]>=74)&&(he=kt.match(/Chrome\/(\d+)/),he&&(it=+he[1])));xi.exports=it});var Ft=k((Hh,Ci)=>{var Ai=yi(),En=ye();Ci.exports=!!Object.getOwnPropertySymbols&&!En(function(){var n=Symbol();return!String(n)||!(Object(n)instanceof Symbol)||!Symbol.sham&&Ai&&Ai<41})});var Bt=k((Jh,Ei)=>{var bn=Ft();Ei.exports=bn&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Tt=k((Yh,bi)=>{var _n=$(),Sn=rt(),wn=pe(),kn=li(),Fn=Bt(),Bn=_n.Object;bi.exports=Fn?function(n){return typeof n=="symbol"}:function(n){var o=Sn("Symbol");return wn(o)&&kn(o.prototype,Bn(n))}});var Si=k((Qh,_i)=>{var Tn=$(),In=Tn.String;_i.exports=function(n){try{return In(n)}catch{return"Object"}}});var ki=k((Zh,wi)=>{var Pn=$(),Nn=pe(),Dn=Si(),On=Pn.TypeError;wi.exports=function(n){if(Nn(n))return n;throw On(Dn(n)+" is not a function")}});var Bi=k(($h,Fi)=>{var Ln=ki();Fi.exports=function(n,o){var u=n[o];return u==null?void 0:Ln(u)}});var Ii=k((el,Ti)=>{var Vn=$(),It=et(),Pt=pe(),Nt=Ie(),Rn=Vn.TypeError;Ti.exports=function(n,o){var u,l;if(o==="string"&&Pt(u=n.toString)&&!Nt(l=It(u,n))||Pt(u=n.valueOf)&&!Nt(l=It(u,n))||o!=="string"&&Pt(u=n.toString)&&!Nt(l=It(u,n)))return l;throw Rn("Can't convert object to primitive value")}});var Ni=k((tl,Pi)=>{Pi.exports=!1});var st=k((rl,Oi)=>{var Di=$(),jn=Object.defineProperty;Oi.exports=function(n,o){try{jn(Di,n,{value:o,configurable:!0,writable:!0})}catch{Di[n]=o}return o}});var at=k((il,Vi)=>{var qn=$(),Mn=st(),Li="__core-js_shared__",Un=qn[Li]||Mn(Li,{});Vi.exports=Un});var Dt=k((sl,ji)=>{var zn=Ni(),Ri=at();(ji.exports=function(n,o){return Ri[n]||(Ri[n]=o!==void 0?o:{})})("versions",[]).push({version:"3.22.2",mode:zn?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var Mi=k((al,qi)=>{var Wn=$(),Gn=St(),Kn=Wn.Object;qi.exports=function(n){return Kn(Gn(n))}});var Ae=k((nl,Ui)=>{var Xn=ce(),Hn=Mi(),Jn=Xn({}.hasOwnProperty);Ui.exports=Object.hasOwn||function(o,u){return Jn(Hn(o),u)}});var Ot=k((ol,zi)=>{var Yn=ce(),Qn=0,Zn=Math.random(),$n=Yn(1 .toString);zi.exports=function(n){return"Symbol("+(n===void 0?"":n)+")_"+$n(++Qn+Zn,36)}});var Ji=k((ul,Hi)=>{var eo=$(),to=Dt(),Wi=Ae(),ro=Ot(),Gi=Ft(),Xi=Bt(),Pe=to("wks"),Se=eo.Symbol,Ki=Se&&Se.for,io=Xi?Se:Se&&Se.withoutSetter||ro;Hi.exports=function(n){if(!Wi(Pe,n)||!(Gi||typeof Pe[n]=="string")){var o="Symbol."+n;Gi&&Wi(Se,n)?Pe[n]=Se[n]:Xi&&Ki?Pe[n]=Ki(o):Pe[n]=io(o)}return Pe[n]}});var $i=k((hl,Zi)=>{var so=$(),ao=et(),Yi=Ie(),Qi=Tt(),no=Bi(),oo=Ii(),uo=Ji(),ho=so.TypeError,lo=uo("toPrimitive");Zi.exports=function(n,o){if(!Yi(n)||Qi(n))return n;var u=no(n,lo),l;if(u){if(o===void 0&&(o="default"),l=ao(u,n,o),!Yi(l)||Qi(l))return l;throw ho("Can't convert object to primitive value")}return o===void 0&&(o="number"),oo(n,o)}});var Lt=k((ll,es)=>{var co=$i(),po=Tt();es.exports=function(n){var o=co(n,"string");return po(o)?o:o+""}});var is=k((cl,rs)=>{var fo=$(),ts=Ie(),Vt=fo.document,mo=ts(Vt)&&ts(Vt.createElement);rs.exports=function(n){return mo?Vt.createElement(n):{}}});var Rt=k((pl,ss)=>{var vo=_e(),go=ye(),xo=is();ss.exports=!vo&&!go(function(){return Object.defineProperty(xo("div"),"a",{get:function(){return 7}}).a!=7})});var jt=k(ns=>{var yo=_e(),Ao=et(),Co=Hr(),Eo=Et(),bo=tt(),_o=Lt(),So=Ae(),wo=Rt(),as=Object.getOwnPropertyDescriptor;ns.f=yo?as:function(o,u){if(o=bo(o),u=_o(u),wo)try{return as(o,u)}catch{}if(So(o,u))return Eo(!Ao(Co.f,o,u),o[u])}});var us=k((dl,os)=>{var ko=_e(),Fo=ye();os.exports=ko&&Fo(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var qt=k((ml,ls)=>{var hs=$(),Bo=Ie(),To=hs.String,Io=hs.TypeError;ls.exports=function(n){if(Bo(n))return n;throw Io(To(n)+" is not an object")}});var Gt=k(ps=>{var Po=$(),No=_e(),Do=Rt(),Oo=us(),nt=qt(),cs=Lt(),Lo=Po.TypeError,Mt=Object.defineProperty,Vo=Object.getOwnPropertyDescriptor,Ut="enumerable",zt="configurable",Wt="writable";ps.f=No?Oo?function(o,u,l){if(nt(o),u=cs(u),nt(l),typeof o=="function"&&u==="prototype"&&"value"in l&&Wt in l&&!l[Wt]){var m=Vo(o,u);m&&m[Wt]&&(o[u]=l.value,l={configurable:zt in l?l[zt]:m[zt],enumerable:Ut in l?l[Ut]:m[Ut],writable:!1})}return Mt(o,u,l)}:Mt:function(o,u,l){if(nt(o),u=cs(u),nt(l),Do)try{return Mt(o,u,l)}catch{}if("get"in l||"set"in l)throw Lo("Accessors not supported");return"value"in l&&(o[u]=l.value),o}});var ot=k((gl,fs)=>{var Ro=_e(),jo=Gt(),qo=Et();fs.exports=Ro?function(n,o,u){return jo.f(n,o,qo(1,u))}:function(n,o,u){return n[o]=u,n}});var Xt=k((xl,ds)=>{var Mo=ce(),Uo=pe(),Kt=at(),zo=Mo(Function.toString);Uo(Kt.inspectSource)||(Kt.inspectSource=function(n){return zo(n)});ds.exports=Kt.inspectSource});var gs=k((yl,vs)=>{var Wo=$(),Go=pe(),Ko=Xt(),ms=Wo.WeakMap;vs.exports=Go(ms)&&/native code/.test(Ko(ms))});var As=k((Al,ys)=>{var Xo=Dt(),Ho=Ot(),xs=Xo("keys");ys.exports=function(n){return xs[n]||(xs[n]=Ho(n))}});var Ht=k((Cl,Cs)=>{Cs.exports={}});var ks=k((El,ws)=>{var Jo=gs(),Ss=$(),Jt=ce(),Yo=Ie(),Qo=ot(),Yt=Ae(),Qt=at(),Zo=As(),$o=Ht(),Es="Object already initialized",$t=Ss.TypeError,eu=Ss.WeakMap,ut,qe,ht,tu=function(n){return ht(n)?qe(n):ut(n,{})},ru=function(n){return function(o){var u;if(!Yo(o)||(u=qe(o)).type!==n)throw $t("Incompatible receiver, "+n+" required");return u}};Jo||Qt.state?(Ce=Qt.state||(Qt.state=new eu),bs=Jt(Ce.get),Zt=Jt(Ce.has),_s=Jt(Ce.set),ut=function(n,o){if(Zt(Ce,n))throw new $t(Es);return o.facade=n,_s(Ce,n,o),o},qe=function(n){return bs(Ce,n)||{}},ht=function(n){return Zt(Ce,n)}):(we=Zo("state"),$o[we]=!0,ut=function(n,o){if(Yt(n,we))throw new $t(Es);return o.facade=n,Qo(n,we,o),o},qe=function(n){return Yt(n,we)?n[we]:{}},ht=function(n){return Yt(n,we)});var Ce,bs,Zt,_s,we;ws.exports={set:ut,get:qe,has:ht,enforce:tu,getterFor:ru}});var Ts=k((bl,Bs)=>{var er=_e(),iu=Ae(),Fs=Function.prototype,su=er&&Object.getOwnPropertyDescriptor,tr=iu(Fs,"name"),au=tr&&function(){}.name==="something",nu=tr&&(!er||er&&su(Fs,"name").configurable);Bs.exports={EXISTS:tr,PROPER:au,CONFIGURABLE:nu}});var Os=k((_l,Ds)=>{var ou=$(),Is=pe(),uu=Ae(),Ps=ot(),hu=st(),lu=Xt(),Ns=ks(),cu=Ts().CONFIGURABLE,pu=Ns.get,fu=Ns.enforce,du=String(String).split("String");(Ds.exports=function(n,o,u,l){var m=l?!!l.unsafe:!1,E=l?!!l.enumerable:!1,y=l?!!l.noTargetGet:!1,A=l&&l.name!==void 0?l.name:o,b;if(Is(u)&&(String(A).slice(0,7)==="Symbol("&&(A="["+String(A).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!uu(u,"name")||cu&&u.name!==A)&&Ps(u,"name",A),b=fu(u),b.source||(b.source=du.join(typeof A=="string"?A:""))),n===ou){E?n[o]=u:hu(o,u);return}else m?!y&&n[o]&&(E=!0):delete n[o];E?n[o]=u:Ps(n,o,u)})(Function.prototype,"toString",function(){return Is(this)&&pu(this).source||lu(this)})});var rr=k((Sl,Ls)=>{var mu=Math.ceil,vu=Math.floor;Ls.exports=function(n){var o=+n;return o!==o||o===0?0:(o>0?vu:mu)(o)}});var Rs=k((wl,Vs)=>{var gu=rr(),xu=Math.max,yu=Math.min;Vs.exports=function(n,o){var u=gu(n);return u<0?xu(u+o,0):yu(u,o)}});var qs=k((kl,js)=>{var Au=rr(),Cu=Math.min;js.exports=function(n){return n>0?Cu(Au(n),9007199254740991):0}});var Us=k((Fl,Ms)=>{var Eu=qs();Ms.exports=function(n){return Eu(n.length)}});var Gs=k((Bl,Ws)=>{var bu=tt(),_u=Rs(),Su=Us(),zs=function(n){return function(o,u,l){var m=bu(o),E=Su(m),y=_u(l,E),A;if(n&&u!=u){for(;E>y;)if(A=m[y++],A!=A)return!0}else for(;E>y;y++)if((n||y in m)&&m[y]===u)return n||y||0;return!n&&-1}};Ws.exports={includes:zs(!0),indexOf:zs(!1)}});var Hs=k((Tl,Xs)=>{var wu=ce(),ir=Ae(),ku=tt(),Fu=Gs().indexOf,Bu=Ht(),Ks=wu([].push);Xs.exports=function(n,o){var u=ku(n),l=0,m=[],E;for(E in u)!ir(Bu,E)&&ir(u,E)&&Ks(m,E);for(;o.length>l;)ir(u,E=o[l++])&&(~Fu(m,E)||Ks(m,E));return m}});var Ys=k((Il,Js)=>{Js.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Zs=k(Qs=>{var Tu=Hs(),Iu=Ys(),Pu=Iu.concat("length","prototype");Qs.f=Object.getOwnPropertyNames||function(o){return Tu(o,Pu)}});var ea=k($s=>{$s.f=Object.getOwnPropertySymbols});var ra=k((Dl,ta)=>{var Nu=rt(),Du=ce(),Ou=Zs(),Lu=ea(),Vu=qt(),Ru=Du([].concat);ta.exports=Nu("Reflect","ownKeys")||function(o){var u=Ou.f(Vu(o)),l=Lu.f;return l?Ru(u,l(o)):u}});var aa=k((Ol,sa)=>{var ia=Ae(),ju=ra(),qu=jt(),Mu=Gt();sa.exports=function(n,o,u){for(var l=ju(o),m=Mu.f,E=qu.f,y=0;y{var Uu=ye(),zu=pe(),Wu=/#|\.prototype\./,Me=function(n,o){var u=Ku[Gu(n)];return u==Hu?!0:u==Xu?!1:zu(o)?Uu(o):!!o},Gu=Me.normalize=function(n){return String(n).replace(Wu,".").toLowerCase()},Ku=Me.data={},Xu=Me.NATIVE="N",Hu=Me.POLYFILL="P";na.exports=Me});var ha=k((Vl,ua)=>{var sr=$(),Ju=jt().f,Yu=ot(),Qu=Os(),Zu=st(),$u=aa(),eh=oa();ua.exports=function(n,o){var u=n.target,l=n.global,m=n.stat,E,y,A,b,g,V;if(l?y=sr:m?y=sr[u]||Zu(u,{}):y=(sr[u]||{}).prototype,y)for(A in o){if(g=o[A],n.noTargetGet?(V=Ju(y,A),b=V&&V.value):b=y[A],E=eh(l?A:u+(m?".":"#")+A,n.forced),!E&&b!==void 0){if(typeof g==typeof b)continue;$u(g,b)}(n.sham||b&&b.sham)&&Yu(g,"sham",!0),Qu(y,A,g,n)}}});var la=k(()=>{var th=ha(),rh=$();th({global:!0},{globalThis:rh})});la();var ur=Object.defineProperty,ih=Object.getOwnPropertyDescriptor,hr=Object.getOwnPropertyNames,sh=Object.prototype.hasOwnProperty,ca=(n,o)=>function(){return n&&(o=(0,n[hr(n)[0]])(n=0)),o},Y=(n,o)=>function(){return o||(0,n[hr(n)[0]])((o={exports:{}}).exports,o),o.exports},ah=(n,o)=>{for(var u in o)ur(n,u,{get:o[u],enumerable:!0})},nh=(n,o,u,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of hr(o))!sh.call(n,m)&&m!==u&&ur(n,m,{get:()=>o[m],enumerable:!(l=ih(o,m))||l.enumerable});return n},oh=n=>nh(ur({},"__esModule",{value:!0}),n),J=ca({""(){}}),lr=Y({"src/common/parser-create-error.js"(n,o){"use strict";J();function u(l,m){let E=new SyntaxError(l+" ("+m.start.line+":"+m.start.column+")");return E.loc=m,E}o.exports=u}}),pa=Y({"src/utils/try-combinations.js"(n,o){"use strict";J();function u(){let l;for(var m=arguments.length,E=new Array(m),y=0;yor,arch:()=>uh,cpus:()=>Aa,default:()=>Sa,endianness:()=>da,freemem:()=>xa,getNetworkInterfaces:()=>_a,hostname:()=>ma,loadavg:()=>va,networkInterfaces:()=>ba,platform:()=>hh,release:()=>Ea,tmpDir:()=>ar,tmpdir:()=>nr,totalmem:()=>ya,type:()=>Ca,uptime:()=>ga});function da(){if(typeof lt>"u"){var n=new ArrayBuffer(2),o=new Uint8Array(n),u=new Uint16Array(n);if(o[0]=1,o[1]=2,u[0]===258)lt="BE";else if(u[0]===513)lt="LE";else throw new Error("unable to figure out endianess")}return lt}function ma(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function va(){return[]}function ga(){return 0}function xa(){return Number.MAX_VALUE}function ya(){return Number.MAX_VALUE}function Aa(){return[]}function Ca(){return"Browser"}function Ea(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function ba(){}function _a(){}function uh(){return"javascript"}function hh(){return"browser"}function ar(){return"/tmp"}var lt,nr,or,Sa,lh=ca({"node-modules-polyfills:os"(){J(),nr=ar,or=` +`,Sa={EOL:or,tmpdir:nr,tmpDir:ar,networkInterfaces:ba,getNetworkInterfaces:_a,release:Ea,type:Ca,cpus:Aa,totalmem:ya,freemem:xa,uptime:ga,loadavg:va,hostname:ma,endianness:da}}}),ch=Y({"node-modules-polyfills-commonjs:os"(n,o){J();var u=(lh(),oh(fa));if(u&&u.default){o.exports=u.default;for(let l in u)o.exports[l]=u[l]}else u&&(o.exports=u)}}),ph=Y({"node_modules/detect-newline/index.js"(n,o){"use strict";J();var u=l=>{if(typeof l!="string")throw new TypeError("Expected a string");let m=l.match(/(?:\r?\n)/g)||[];if(m.length===0)return;let E=m.filter(A=>A===`\r +`).length,y=m.length-E;return E>y?`\r +`:` +`};o.exports=u,o.exports.graceful=l=>typeof l=="string"&&u(l)||` +`}}),fh=Y({"node_modules/jest-docblock/build/index.js"(n){"use strict";J(),Object.defineProperty(n,"__esModule",{value:!0}),n.extract=T,n.parse=q,n.parseWithComments=B,n.print=I,n.strip=v;function o(){let C=ch();return o=function(){return C},C}function u(){let C=l(ph());return u=function(){return C},C}function l(C){return C&&C.__esModule?C:{default:C}}var m=/\*\/$/,E=/^\/\*\*/,y=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,A=/(^|\s+)\/\/([^\r\n]*)/g,b=/^(\r?\n)+/,g=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,V=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,R=/(\r?\n|^) *\* ?/g,N=[];function T(C){let H=C.match(y);return H?H[0].trimLeft():""}function v(C){let H=C.match(y);return H&&H[0]?C.substring(H[0].length):C}function q(C){return B(C).pragmas}function B(C){let H=(0,u().default)(C)||o().EOL;C=C.replace(E,"").replace(m,"").replace(R,"$1");let L="";for(;L!==C;)L=C,C=C.replace(g,"".concat(H,"$1 $2").concat(H));C=C.replace(b,"").trimRight();let i=Object.create(null),_=C.replace(V,"").replace(b,"").trimRight(),P;for(;P=V.exec(C);){let M=P[2].replace(A,"");typeof i[P[1]]=="string"||Array.isArray(i[P[1]])?i[P[1]]=N.concat(i[P[1]],M):i[P[1]]=M}return{comments:_,pragmas:i}}function I(C){let{comments:H="",pragmas:L={}}=C,i=(0,u().default)(H)||o().EOL,_="/**",P=" *",M=" */",ee=Object.keys(L),ae=ee.map(ie=>w(ie,L[ie])).reduce((ie,Ne)=>ie.concat(Ne),[]).map(ie=>P+" "+ie+i).join("");if(!H){if(ee.length===0)return"";if(ee.length===1&&!Array.isArray(L[ee[0]])){let ie=L[ee[0]];return"".concat(_," ").concat(w(ee[0],ie)[0]).concat(M)}}let te=H.split(i).map(ie=>"".concat(P," ").concat(ie)).join(i)+i;return _+i+(H?te:"")+(H&&ee.length?P+i:"")+ae+M}function w(C,H){return N.concat(H).map(L=>"@".concat(C," ").concat(L).trim())}}}),dh=Y({"src/common/end-of-line.js"(n,o){"use strict";J();function u(y){let A=y.indexOf("\r");return A>=0?y.charAt(A+1)===` +`?"crlf":"cr":"lf"}function l(y){switch(y){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function m(y,A){let b;switch(A){case` +`:b=/\n/g;break;case"\r":b=/\r/g;break;case`\r +`:b=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(A),"."))}let g=y.match(b);return g?g.length:0}function E(y){return y.replace(/\r\n?/g,` +`)}o.exports={guessEndOfLine:u,convertEndOfLineToChars:l,countEndOfLineChars:m,normalizeEndOfLine:E}}}),mh=Y({"src/language-js/utils/get-shebang.js"(n,o){"use strict";J();function u(l){if(!l.startsWith("#!"))return"";let m=l.indexOf(` +`);return m===-1?l:l.slice(0,m)}o.exports=u}}),vh=Y({"src/language-js/pragma.js"(n,o){"use strict";J();var{parseWithComments:u,strip:l,extract:m,print:E}=fh(),{normalizeEndOfLine:y}=dh(),A=mh();function b(R){let N=A(R);N&&(R=R.slice(N.length+1));let T=m(R),{pragmas:v,comments:q}=u(T);return{shebang:N,text:R,pragmas:v,comments:q}}function g(R){let N=Object.keys(b(R).pragmas);return N.includes("prettier")||N.includes("format")}function V(R){let{shebang:N,text:T,pragmas:v,comments:q}=b(R),B=l(T),I=E({pragmas:Object.assign({format:""},v),comments:q.trimStart()});return(N?"".concat(N,` +`):"")+y(I)+(B.startsWith(` +`)?` +`:` + +`)+B}o.exports={hasPragma:g,insertPragma:V}}}),gh=Y({"src/utils/is-non-empty-array.js"(n,o){"use strict";J();function u(l){return Array.isArray(l)&&l.length>0}o.exports=u}}),wa=Y({"src/language-js/loc.js"(n,o){"use strict";J();var u=gh();function l(b,g){let{ignoreDecorators:V}=g||{};if(!V){let R=b.declaration&&b.declaration.decorators||b.decorators;if(u(R))return l(R[0])}return b.range?b.range[0]:b.start}function m(b){return b.range?b.range[1]:b.end}function E(b,g){let V=l(b);return Number.isInteger(V)&&V===l(g)}function y(b,g){let V=m(b);return Number.isInteger(V)&&V===m(g)}function A(b,g){return E(b,g)&&y(b,g)}o.exports={locStart:l,locEnd:m,hasSameLocStart:E,hasSameLoc:A}}}),ka=Y({"src/language-js/parse/utils/create-parser.js"(n,o){"use strict";J();var{hasPragma:u}=vh(),{locStart:l,locEnd:m}=wa();function E(y){return y=typeof y=="function"?{parse:y}:y,Object.assign({astFormat:"estree",hasPragma:u,locStart:l,locEnd:m},y)}o.exports=E}}),xh=Y({"src/language-js/utils/is-ts-keyword-type.js"(n,o){"use strict";J();function u(l){let{type:m}=l;return m.startsWith("TS")&&m.endsWith("Keyword")}o.exports=u}}),yh=Y({"src/language-js/utils/is-block-comment.js"(n,o){"use strict";J();var u=new Set(["Block","CommentBlock","MultiLine"]),l=m=>u.has(m==null?void 0:m.type);o.exports=l}}),Ah=Y({"src/language-js/utils/is-type-cast-comment.js"(n,o){"use strict";J();var u=yh();function l(m){return u(m)&&m.value[0]==="*"&&/@type\b/.test(m.value)}o.exports=l}}),Ch=Y({"src/utils/get-last.js"(n,o){"use strict";J();var u=l=>l[l.length-1];o.exports=u}}),Fa=Y({"src/language-js/parse/postprocess/visit-node.js"(n,o){"use strict";J();function u(l,m){if(Array.isArray(l)){for(let E=0;E{let T=g.get(N);return!T||!R.includes(T)}))&&l(b,"Leading decorators must be attached to a class declaration")}function E(A,b){A.kind!==167||A.modifiers&&!A.modifiers.some(R=>R.kind===126)||A.initializer&&b.value===null&&l(b,"Abstract property cannot have an initializer")}function y(A,b){let{esTreeNodeToTSNodeMap:g,tsNodeToESTreeNodeMap:V}=b.tsParseResult;u(A,R=>{let N=g.get(R);if(!N)return;let T=V.get(N);T===R&&(m(N,T,V),E(N,T))})}o.exports={throwErrorForInvalidNodes:y}}}),Ta=Y({"src/language-js/parse/postprocess/index.js"(n,o){"use strict";J();var{locStart:u,locEnd:l}=wa(),m=xh(),E=Ah(),y=Ch(),A=Fa(),{throwErrorForInvalidNodes:b}=Eh(),g=Ba();function V(v,q){if(q.parser==="typescript"&&/@|abstract/.test(q.originalText)&&b(v,q),q.parser!=="typescript"&&q.parser!=="flow"&&q.parser!=="acorn"&&q.parser!=="espree"&&q.parser!=="meriyah"){let I=new Set;v=A(v,w=>{w.leadingComments&&w.leadingComments.some(E)&&I.add(u(w))}),v=A(v,w=>{if(w.type==="ParenthesizedExpression"){let{expression:C}=w;if(C.type==="TypeCastExpression")return C.range=w.range,C;let H=u(w);if(!I.has(H))return C.extra=Object.assign(Object.assign({},C.extra),{},{parenthesized:!0}),C}})}return v=A(v,I=>{switch(I.type){case"ChainExpression":return R(I.expression);case"LogicalExpression":{if(N(I))return T(I);break}case"VariableDeclaration":{let w=y(I.declarations);w&&w.init&&B(I,w);break}case"TSParenthesizedType":return m(I.typeAnnotation)||I.typeAnnotation.type==="TSThisType"||(I.typeAnnotation.range=[u(I),l(I)]),I.typeAnnotation;case"TSTypeParameter":if(typeof I.name=="string"){let w=u(I);I.name={type:"Identifier",name:I.name,range:[w,w+I.name.length]}}break;case"ObjectExpression":if(q.parser==="typescript"){let w=I.properties.find(C=>C.type==="Property"&&C.value.type==="TSEmptyBodyFunctionExpression");w&&g(w.value,"Unexpected token.")}break;case"SequenceExpression":{let w=y(I.expressions);I.range=[u(I),Math.min(l(w),l(I))];break}case"TopicReference":q.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:w}=I;if(q.parser==="meriyah"&&w&&w.type==="Identifier"){let C=q.originalText.slice(u(w),l(w));(C.startsWith('"')||C.startsWith("'"))&&(I.exported=Object.assign(Object.assign({},I.exported),{},{type:"Literal",value:I.exported.name,raw:C}))}break}}}),v;function B(I,w){q.originalText[l(w)]!==";"&&(I.range=[u(I),l(w)])}}function R(v){switch(v.type){case"CallExpression":v.type="OptionalCallExpression",v.callee=R(v.callee);break;case"MemberExpression":v.type="OptionalMemberExpression",v.object=R(v.object);break;case"TSNonNullExpression":v.expression=R(v.expression);break}return v}function N(v){return v.type==="LogicalExpression"&&v.right.type==="LogicalExpression"&&v.operator===v.right.operator}function T(v){return N(v)?T({type:"LogicalExpression",operator:v.operator,left:T({type:"LogicalExpression",operator:v.operator,left:v.left,right:v.right.left,range:[u(v.left),l(v.right.left)]}),right:v.right.right,range:[u(v),l(v)]}):v}o.exports=V}}),ct=Y({"node_modules/acorn/dist/acorn.js"(n,o){J(),function(u,l){typeof n=="object"&&typeof o<"u"?l(n):typeof define=="function"&&define.amd?define(["exports"],l):(u=typeof globalThis<"u"?globalThis:u||self,l(u.acorn={}))}(n,function(u){"use strict";var l={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},m="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",E={5:m,"5module":m+" export import",6:m+" const class extends export import super"},y=/^in(stanceof)?$/,A="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",b="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F",g=new RegExp("["+A+"]"),V=new RegExp("["+A+b+"]");A=b=null;var R=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],N=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function T(e,t){for(var r=65536,s=0;se)return!1;if(r+=t[s+1],r>=e)return!0}}function v(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&g.test(String.fromCharCode(e)):t===!1?!1:T(e,R)}function q(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&V.test(String.fromCharCode(e)):t===!1?!1:T(e,R)||T(e,N)}var B=function(t,r){r===void 0&&(r={}),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null};function I(e,t){return new B(e,{beforeExpr:!0,binop:t})}var w={beforeExpr:!0},C={startsExpr:!0},H={};function L(e,t){return t===void 0&&(t={}),t.keyword=e,H[e]=new B(e,t)}var i={num:new B("num",C),regexp:new B("regexp",C),string:new B("string",C),name:new B("name",C),privateId:new B("privateId",C),eof:new B("eof"),bracketL:new B("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new B("]"),braceL:new B("{",{beforeExpr:!0,startsExpr:!0}),braceR:new B("}"),parenL:new B("(",{beforeExpr:!0,startsExpr:!0}),parenR:new B(")"),comma:new B(",",w),semi:new B(";",w),colon:new B(":",w),dot:new B("."),question:new B("?",w),questionDot:new B("?."),arrow:new B("=>",w),template:new B("template"),invalidTemplate:new B("invalidTemplate"),ellipsis:new B("...",w),backQuote:new B("`",C),dollarBraceL:new B("${",{beforeExpr:!0,startsExpr:!0}),eq:new B("=",{beforeExpr:!0,isAssign:!0}),assign:new B("_=",{beforeExpr:!0,isAssign:!0}),incDec:new B("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new B("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:I("||",1),logicalAND:I("&&",2),bitwiseOR:I("|",3),bitwiseXOR:I("^",4),bitwiseAND:I("&",5),equality:I("==/!=/===/!==",6),relational:I("/<=/>=",7),bitShift:I("<>/>>>",8),plusMin:new B("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:I("%",10),star:I("*",10),slash:I("/",10),starstar:new B("**",{beforeExpr:!0}),coalesce:I("??",1),_break:L("break"),_case:L("case",w),_catch:L("catch"),_continue:L("continue"),_debugger:L("debugger"),_default:L("default",w),_do:L("do",{isLoop:!0,beforeExpr:!0}),_else:L("else",w),_finally:L("finally"),_for:L("for",{isLoop:!0}),_function:L("function",C),_if:L("if"),_return:L("return",w),_switch:L("switch"),_throw:L("throw",w),_try:L("try"),_var:L("var"),_const:L("const"),_while:L("while",{isLoop:!0}),_with:L("with"),_new:L("new",{beforeExpr:!0,startsExpr:!0}),_this:L("this",C),_super:L("super",C),_class:L("class",C),_extends:L("extends",w),_export:L("export"),_import:L("import",C),_null:L("null",C),_true:L("true",C),_false:L("false",C),_in:L("in",{beforeExpr:!0,binop:7}),_instanceof:L("instanceof",{beforeExpr:!0,binop:7}),_typeof:L("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:L("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:L("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},_=/\r\n?|\n|\u2028|\u2029/,P=new RegExp(_.source,"g");function M(e){return e===10||e===13||e===8232||e===8233}function ee(e,t,r){r===void 0&&(r=e.length);for(var s=t;s=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),S(t.onToken)){var s=t.onToken;t.onToken=function(a){return s.push(a)}}return S(t.onComment)&&(t.onComment=ft(t,t.onComment)),t}function ft(e,t){return function(r,s,a,h,c,d){var x={type:r?"Block":"Line",value:s,start:a,end:h};e.locations&&(x.loc=new X(this,c,d)),e.ranges&&(x.range=[a,h]),t.push(x)}}var Ee=1,ge=2,De=4,Ue=8,cr=16,pr=32,dt=64,fr=128,Oe=256,mt=Ee|ge|Oe;function vt(e,t){return ge|(e?De:0)|(t?Ue:0)}var ze=0,gt=1,fe=2,dr=3,mr=4,vr=5,Z=function(t,r,s){this.options=t=pt(t),this.sourceFile=t.sourceFile,this.keywords=f(E[t.ecmaVersion>=6?6:t.sourceType==="module"?"5module":5]);var a="";t.allowReserved!==!0&&(a=l[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType==="module"&&(a+=" await")),this.reservedWords=f(a);var h=(a?a+" ":"")+l.strict;this.reservedWordsStrict=f(h),this.reservedWordsStrictBind=f(h+" "+l.strictBind),this.input=String(r),this.containsEsc=!1,s?(this.pos=s,this.lineStart=this.input.lastIndexOf(` +`,s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(_).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=i.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType==="module",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&t.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(Ee),this.regexpState=null,this.privateNameStack=[]},le={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};Z.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},le.inFunction.get=function(){return(this.currentVarScope().flags&ge)>0},le.inGenerator.get=function(){return(this.currentVarScope().flags&Ue)>0&&!this.currentVarScope().inClassFieldInit},le.inAsync.get=function(){return(this.currentVarScope().flags&De)>0&&!this.currentVarScope().inClassFieldInit},le.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e];if(t.inClassFieldInit||t.flags&Oe)return!1;if(t.flags&ge)return(t.flags&De)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},le.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&dt)>0||r||this.options.allowSuperOutsideMethod},le.allowDirectSuper.get=function(){return(this.currentThisScope().flags&fr)>0},le.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},le.allowNewDotTarget.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&(ge|Oe))>0||r},le.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&Oe)>0},Z.extend=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];for(var s=this,a=0;a=,?^&]/.test(a)||a==="!"&&this.input.charAt(s+1)==="=")}e+=t[0].length,te.lastIndex=e,e+=te.exec(this.input)[0].length,this.input[e]===";"&&e++}},se.eat=function(e){return this.type===e?(this.next(),!0):!1},se.isContextual=function(e){return this.type===i.name&&this.value===e&&!this.containsEsc},se.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1},se.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},se.canInsertSemicolon=function(){return this.type===i.eof||this.type===i.braceR||_.test(this.input.slice(this.lastTokEnd,this.start))},se.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},se.semicolon=function(){!this.eat(i.semi)&&!this.insertSemicolon()&&this.unexpected()},se.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},se.expect=function(e){this.eat(e)||this.unexpected()},se.unexpected=function(e){this.raise(e!=null?e:this.start,"Unexpected token")};function We(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}se.checkPatternErrors=function(e,t){if(!!e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,"Parenthesized pattern")}},se.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,s=e.doubleProto;if(!t)return r>=0||s>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),s>=0&&this.raiseRecoverable(s,"Redefinition of __proto__ property")},se.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&s<56320)return!0;if(e)return!1;if(s===123)return!0;if(v(s,!0)){for(var a=r+1;q(s=this.input.charCodeAt(a),!0);)++a;if(s===92||s>55295&&s<56320)return!0;var h=this.input.slice(r,a);if(!y.test(h))return!0}return!1},j.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;te.lastIndex=this.pos;var e=te.exec(this.input),t=this.pos+e[0].length,r;return!_.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)==="function"&&(t+8===this.input.length||!(q(r=this.input.charCodeAt(t+8))||r>55295&&r<56320))},j.parseStatement=function(e,t,r){var s=this.type,a=this.startNode(),h;switch(this.isLet(e)&&(s=i._var,h="let"),s){case i._break:case i._continue:return this.parseBreakContinueStatement(a,s.keyword);case i._debugger:return this.parseDebuggerStatement(a);case i._do:return this.parseDoStatement(a);case i._for:return this.parseForStatement(a);case i._function:return e&&(this.strict||e!=="if"&&e!=="label")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1,!e);case i._class:return e&&this.unexpected(),this.parseClass(a,!0);case i._if:return this.parseIfStatement(a);case i._return:return this.parseReturnStatement(a);case i._switch:return this.parseSwitchStatement(a);case i._throw:return this.parseThrowStatement(a);case i._try:return this.parseTryStatement(a);case i._const:case i._var:return h=h||this.value,e&&h!=="var"&&this.unexpected(),this.parseVarStatement(a,h);case i._while:return this.parseWhileStatement(a);case i._with:return this.parseWithStatement(a);case i.braceL:return this.parseBlock(!0,a);case i.semi:return this.parseEmptyStatement(a);case i._export:case i._import:if(this.options.ecmaVersion>10&&s===i._import){te.lastIndex=this.pos;var c=te.exec(this.input),d=this.pos+c[0].length,x=this.input.charCodeAt(d);if(x===40||x===46)return this.parseExpressionStatement(a,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),s===i._import?this.parseImport(a):this.parseExport(a,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(a,!0,!e);var U=this.value,W=this.parseExpression();return s===i.name&&W.type==="Identifier"&&this.eat(i.colon)?this.parseLabeledStatement(a,U,W,e):this.parseExpressionStatement(a,W)}},j.parseBreakContinueStatement=function(e,t){var r=t==="break";this.next(),this.eat(i.semi)||this.insertSemicolon()?e.label=null:this.type!==i.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var s=0;s=6?this.eat(i.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},j.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(xt),this.enterScope(0),this.expect(i.parenL),this.type===i.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===i._var||this.type===i._const||r){var s=this.startNode(),a=r?"let":this.value;return this.next(),this.parseVar(s,!0,a),this.finishNode(s,"VariableDeclaration"),(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&s.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,s)):(t>-1&&this.unexpected(t),this.parseFor(e,s))}var h=this.isContextual("let"),c=!1,d=new We,x=this.parseExpression(t>-1?"await":!0,d);return this.type===i._in||(c=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),h&&c&&this.raise(x.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(x,!1,d),this.checkLValPattern(x),this.parseForIn(e,x)):(this.checkExpressionErrors(d,!0),t>-1&&this.unexpected(t),this.parseFor(e,x))},j.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,Le|(r?0:yt),!1,t)},j.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(i._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},j.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,"'return' outside of function"),this.next(),this.eat(i.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},j.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(i.braceL),this.labels.push(Na),this.enterScope(0);for(var t,r=!1;this.type!==i.braceR;)if(this.type===i._case||this.type===i._default){var s=this.type===i._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),s?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),r=!0,t.test=null),this.expect(i.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},j.parseThrowStatement=function(e){return this.next(),_.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Da=[];j.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===i._catch){var t=this.startNode();if(this.next(),this.eat(i.parenL)){t.param=this.parseBindingAtom();var r=t.param.type==="Identifier";this.enterScope(r?pr:0),this.checkLValPattern(t.param,r?mr:fe),this.expect(i.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(i._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},j.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},j.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(xt),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},j.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},j.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},j.parseLabeledStatement=function(e,t,r,s){for(var a=0,h=this.labels;a=0;x--){var U=this.labels[x];if(U.statementStart===e.start)U.statementStart=this.start,U.kind=d;else break}return this.labels.push({name:t,kind:d,statementStart:this.start}),e.body=this.parseStatement(s?s.indexOf("label")===-1?s+"label":s:"label"),this.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},j.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},j.parseBlock=function(e,t,r){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(i.braceL),e&&this.enterScope(0);this.type!==i.braceR;){var s=this.parseStatement(null);t.body.push(s)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},j.parseFor=function(e,t){return e.init=t,this.expect(i.semi),e.test=this.type===i.semi?null:this.parseExpression(),this.expect(i.semi),e.update=this.type===i.parenR?null:this.parseExpression(),this.expect(i.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},j.parseForIn=function(e,t){var r=this.type===i._in;return this.next(),t.type==="VariableDeclaration"&&t.declarations[0].init!=null&&(!r||this.options.ecmaVersion<8||this.strict||t.kind!=="var"||t.declarations[0].id.type!=="Identifier")&&this.raise(t.start,(r?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(i.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")},j.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r;;){var s=this.startNode();if(this.parseVarId(s,r),this.eat(i.eq)?s.init=this.parseMaybeAssign(t):r==="const"&&!(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():s.id.type!=="Identifier"&&!(t&&(this.type===i._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):s.init=null,e.declarations.push(this.finishNode(s,"VariableDeclarator")),!this.eat(i.comma))break}return e},j.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,t==="var"?gt:fe,!1)};var Le=1,yt=2,gr=4;j.parseFunction=function(e,t,r,s,a){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(this.type===i.star&&t&yt&&this.unexpected(),e.generator=this.eat(i.star)),this.options.ecmaVersion>=8&&(e.async=!!s),t&Le&&(e.id=t&gr&&this.type!==i.name?null:this.parseIdent(),e.id&&!(t&yt)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?gt:fe:dr));var h=this.yieldPos,c=this.awaitPos,d=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(e.async,e.generator)),t&Le||(e.id=this.type===i.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1,a),this.yieldPos=h,this.awaitPos=c,this.awaitIdentPos=d,this.finishNode(e,t&Le?"FunctionDeclaration":"FunctionExpression")},j.parseFunctionParams=function(e){this.expect(i.parenL),e.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},j.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var s=this.enterClassBody(),a=this.startNode(),h=!1;for(a.body=[],this.expect(i.braceL);this.type!==i.braceR;){var c=this.parseClassElement(e.superClass!==null);c&&(a.body.push(c),c.type==="MethodDefinition"&&c.kind==="constructor"?(h&&this.raise(c.start,"Duplicate constructor in the same class"),h=!0):c.key&&c.key.type==="PrivateIdentifier"&&Oa(s,c)&&this.raiseRecoverable(c.key.start,"Identifier '#"+c.key.name+"' has already been declared"))}return this.strict=r,this.next(),e.body=this.finishNode(a,"ClassBody"),this.exitClassBody(),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},j.parseClassElement=function(e){if(this.eat(i.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),s="",a=!1,h=!1,c="method",d=!1;if(this.eatContextual("static")){if(t>=13&&this.eat(i.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===i.star?d=!0:s="static"}if(r.static=d,!s&&t>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===i.star)&&!this.canInsertSemicolon()?h=!0:s="async"),!s&&(t>=9||!h)&&this.eat(i.star)&&(a=!0),!s&&!h&&!a){var x=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?c=x:s=x)}if(s?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=s,this.finishNode(r.key,"Identifier")):this.parseClassElementName(r),t<13||this.type===i.parenL||c!=="method"||a||h){var U=!r.static&&Ge(r,"constructor"),W=U&&e;U&&c!=="method"&&this.raise(r.key.start,"Constructor can't have get/set modifier"),r.kind=U?"constructor":c,this.parseClassMethod(r,a,h,W)}else this.parseClassField(r);return r},j.isClassElementNameStart=function(){return this.type===i.name||this.type===i.privateId||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword},j.parseClassElementName=function(e){this.type===i.privateId?(this.value==="constructor"&&this.raise(this.start,"Classes can't have an element named '#constructor'"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},j.parseClassMethod=function(e,t,r,s){var a=e.key;e.kind==="constructor"?(t&&this.raise(a.start,"Constructor can't be a generator"),r&&this.raise(a.start,"Constructor can't be an async method")):e.static&&Ge(e,"prototype")&&this.raise(a.start,"Classes may not have a static property named prototype");var h=e.value=this.parseMethod(t,r,s);return e.kind==="get"&&h.params.length!==0&&this.raiseRecoverable(h.start,"getter should have no params"),e.kind==="set"&&h.params.length!==1&&this.raiseRecoverable(h.start,"setter should have exactly one param"),e.kind==="set"&&h.params[0].type==="RestElement"&&this.raiseRecoverable(h.params[0].start,"Setter cannot use rest params"),this.finishNode(e,"MethodDefinition")},j.parseClassField=function(e){if(Ge(e,"constructor")?this.raise(e.key.start,"Classes can't have a field named 'constructor'"):e.static&&Ge(e,"prototype")&&this.raise(e.key.start,"Classes can't have a static field named 'prototype'"),this.eat(i.eq)){var t=this.currentThisScope(),r=t.inClassFieldInit;t.inClassFieldInit=!0,e.value=this.parseMaybeAssign(),t.inClassFieldInit=r}else e.value=null;return this.semicolon(),this.finishNode(e,"PropertyDefinition")},j.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(Oe|dt);this.type!==i.braceR;){var r=this.parseStatement(null);e.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,"StaticBlock")},j.parseClassId=function(e,t){this.type===i.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,fe,!1)):(t===!0&&this.unexpected(),e.id=null)},j.parseClassSuper=function(e){e.superClass=this.eat(i._extends)?this.parseExprSubscripts(!1):null},j.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},j.exitClassBody=function(){for(var e=this.privateNameStack.pop(),t=e.declared,r=e.used,s=this.privateNameStack.length,a=s===0?null:this.privateNameStack[s-1],h=0;h=11&&(this.eatContextual("as")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(i._default)){this.checkExport(t,"default",this.lastTokStart);var r;if(this.type===i._function||(r=this.isAsyncFunction())){var s=this.startNode();this.next(),r&&this.next(),e.declaration=this.parseFunction(s,Le|gr,!1,r)}else if(this.type===i._class){var a=this.startNode();e.declaration=this.parseClass(a,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),e.declaration.type==="VariableDeclaration"?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var h=0,c=e.specifiers;h=13&&this.type===i.string){var e=this.parseLiteral(this.value);return F.test(e.value)&&this.raise(e.start,"An export name cannot include a lone surrogate."),e}return this.parseIdent(!0)},j.adaptDirectivePrologue=function(e){for(var t=0;t=6&&e)switch(e.type){case"Identifier":this.inAsync&&e.name==="await"&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",r&&this.checkPatternErrors(r,!0);for(var s=0,a=e.properties;s=8&&!c&&d.name==="async"&&!this.canInsertSemicolon()&&this.eat(i._function))return this.overrideContext(Q.f_expr),this.parseFunction(this.startNodeAt(a,h),0,!1,!0,t);if(s&&!this.canInsertSemicolon()){if(this.eat(i.arrow))return this.parseArrowExpression(this.startNodeAt(a,h),[d],!1,t);if(this.options.ecmaVersion>=8&&d.name==="async"&&this.type===i.name&&!c&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return d=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(i.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,h),[d],!0,t)}return d;case i.regexp:var x=this.value;return r=this.parseLiteral(x.value),r.regex={pattern:x.pattern,flags:x.flags},r;case i.num:case i.string:return this.parseLiteral(this.value);case i._null:case i._true:case i._false:return r=this.startNode(),r.value=this.type===i._null?null:this.type===i._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,"Literal");case i.parenL:var U=this.start,W=this.parseParenAndDistinguishExpression(s,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(W)&&(e.parenthesizedAssign=U),e.parenthesizedBind<0&&(e.parenthesizedBind=U)),W;case i.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(i.bracketR,!0,!0,e),this.finishNode(r,"ArrayExpression");case i.braceL:return this.overrideContext(Q.b_expr),this.parseObj(!1,e);case i._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case i._class:return this.parseClass(this.startNode(),!1);case i._new:return this.parseNew();case i.backQuote:return this.parseTemplate();case i._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},z.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case i.parenL:return this.parseDynamicImport(e);case i.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},z.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(i.parenR)){var t=this.start;this.eat(i.comma)&&this.eat(i.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},z.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="meta"&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),this.options.sourceType!=="module"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},z.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},z.parseParenExpression=function(){this.expect(i.parenL);var e=this.parseExpression();return this.expect(i.parenR),e},z.parseParenAndDistinguishExpression=function(e,t){var r=this.start,s=this.startLoc,a,h=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var c=this.start,d=this.startLoc,x=[],U=!0,W=!1,re=new We,be=this.yieldPos,je=this.awaitPos,Fe;for(this.yieldPos=0,this.awaitPos=0;this.type!==i.parenR;)if(U?U=!1:this.expect(i.comma),h&&this.afterTrailingComma(i.parenR,!0)){W=!0;break}else if(this.type===i.ellipsis){Fe=this.start,x.push(this.parseParenItem(this.parseRestBinding())),this.type===i.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}else x.push(this.parseMaybeAssign(!1,re,this.parseParenItem));var Qe=this.lastTokEnd,Be=this.lastTokEndLoc;if(this.expect(i.parenR),e&&!this.canInsertSemicolon()&&this.eat(i.arrow))return this.checkPatternErrors(re,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=be,this.awaitPos=je,this.parseParenArrowList(r,s,x,t);(!x.length||W)&&this.unexpected(this.lastTokStart),Fe&&this.unexpected(Fe),this.checkExpressionErrors(re,!0),this.yieldPos=be||this.yieldPos,this.awaitPos=je||this.awaitPos,x.length>1?(a=this.startNodeAt(c,d),a.expressions=x,this.finishNodeAt(a,"SequenceExpression",Qe,Be)):a=x[0]}else a=this.parseParenExpression();if(this.options.preserveParens){var Te=this.startNodeAt(r,s);return Te.expression=a,this.finishNode(Te,"ParenthesizedExpression")}else return a},z.parseParenItem=function(e){return e},z.parseParenArrowList=function(e,t,r,s){return this.parseArrowExpression(this.startNodeAt(e,t),r,!1,s)};var La=[];z.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(i.dot)){e.meta=t;var r=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="target"&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),r&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(e.start,"'new.target' can only be used in functions and class static block"),this.finishNode(e,"MetaProperty")}var s=this.start,a=this.startLoc,h=this.type===i._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),s,a,!0,!1),h&&e.callee.type==="ImportExpression"&&this.raise(s,"Cannot use new with import()"),this.eat(i.parenL)?e.arguments=this.parseExprList(i.parenR,this.options.ecmaVersion>=8,!1):e.arguments=La,this.finishNode(e,"NewExpression")},z.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===i.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),r.value={raw:this.value,cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,` +`),cooked:this.value},this.next(),r.tail=this.type===i.backQuote,this.finishNode(r,"TemplateElement")},z.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var s=this.parseTemplateElement({isTagged:t});for(r.quasis=[s];!s.tail;)this.type===i.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(i.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(i.braceR),r.quasis.push(s=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,"TemplateLiteral")},z.isAsyncProp=function(e){return!e.computed&&e.key.type==="Identifier"&&e.key.name==="async"&&(this.type===i.name||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===i.star)&&!_.test(this.input.slice(this.lastTokEnd,this.start))},z.parseObj=function(e,t){var r=this.startNode(),s=!0,a={};for(r.properties=[],this.next();!this.eat(i.braceR);){if(s)s=!1;else if(this.expect(i.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(i.braceR))break;var h=this.parseProperty(e,t);e||this.checkPropClash(h,a,t),r.properties.push(h)}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},z.parseProperty=function(e,t){var r=this.startNode(),s,a,h,c;if(this.options.ecmaVersion>=9&&this.eat(i.ellipsis))return e?(r.argument=this.parseIdent(!1),this.type===i.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(r,"RestElement")):(this.type===i.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),r.argument=this.parseMaybeAssign(!1,t),this.type===i.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(r,"SpreadElement"));this.options.ecmaVersion>=6&&(r.method=!1,r.shorthand=!1,(e||t)&&(h=this.start,c=this.startLoc),e||(s=this.eat(i.star)));var d=this.containsEsc;return this.parsePropertyName(r),!e&&!d&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(r)?(a=!0,s=this.options.ecmaVersion>=9&&this.eat(i.star),this.parsePropertyName(r,t)):a=!1,this.parsePropertyValue(r,e,s,a,h,c,t,d),this.finishNode(r,"Property")},z.parsePropertyValue=function(e,t,r,s,a,h,c,d){if((r||s)&&this.type===i.colon&&this.unexpected(),this.eat(i.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,c),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===i.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(r,s);else if(!t&&!d&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type==="Identifier"&&(e.key.name==="get"||e.key.name==="set")&&this.type!==i.comma&&this.type!==i.braceR&&this.type!==i.eq){(r||s)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var x=e.kind==="get"?0:1;if(e.value.params.length!==x){var U=e.value.start;e.kind==="get"?this.raiseRecoverable(U,"getter should have no params"):this.raiseRecoverable(U,"setter should have exactly one param")}else e.kind==="set"&&e.value.params[0].type==="RestElement"&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}else this.options.ecmaVersion>=6&&!e.computed&&e.key.type==="Identifier"?((r||s)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=a),e.kind="init",t?e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key)):this.type===i.eq&&c?(c.shorthandAssign<0&&(c.shorthandAssign=this.start),e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected()},z.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(i.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(i.bracketR),e.key;e.computed=!1}return e.key=this.type===i.num||this.type===i.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")},z.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},z.parseMethod=function(e,t,r){var s=this.startNode(),a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=e),this.options.ecmaVersion>=8&&(s.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(t,s.generator)|dt|(r?fr:0)),this.expect(i.parenL),s.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1,!0,!1),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(s,"FunctionExpression")},z.parseArrowExpression=function(e,t,r,s){var a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.enterScope(vt(r,!1)|cr),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,s),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(e,"ArrowFunctionExpression")},z.parseFunctionBody=function(e,t,r,s){var a=t&&this.type!==i.braceL,h=this.strict,c=!1;if(a)e.body=this.parseMaybeAssign(s),e.expression=!0,this.checkParams(e,!1);else{var d=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!h||d)&&(c=this.strictDirective(this.end),c&&d&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var x=this.labels;this.labels=[],c&&(this.strict=!0),this.checkParams(e,!h&&!c&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,vr),e.body=this.parseBlock(!1,void 0,c&&!h),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=x}this.exitScope()},z.isSimpleParamList=function(e){for(var t=0,r=e;t-1||a.functions.indexOf(e)>-1||a.var.indexOf(e)>-1,a.lexical.push(e),this.inModule&&a.flags&Ee&&delete this.undefinedExports[e]}else if(t===mr){var h=this.currentScope();h.lexical.push(e)}else if(t===dr){var c=this.currentScope();this.treatFunctionsAsVar?s=c.lexical.indexOf(e)>-1:s=c.lexical.indexOf(e)>-1||c.var.indexOf(e)>-1,c.functions.push(e)}else for(var d=this.scopeStack.length-1;d>=0;--d){var x=this.scopeStack[d];if(x.lexical.indexOf(e)>-1&&!(x.flags&pr&&x.lexical[0]===e)||!this.treatFunctionsAsVarInScope(x)&&x.functions.indexOf(e)>-1){s=!0;break}if(x.var.push(e),this.inModule&&x.flags&Ee&&delete this.undefinedExports[e],x.flags&mt)break}s&&this.raiseRecoverable(r,"Identifier '"+e+"' has already been declared")},xe.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},xe.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},xe.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt)return t}},xe.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt&&!(t.flags&cr))return t}};var Ve=function(t,r,s){this.type="",this.start=r,this.end=0,t.options.locations&&(this.loc=new X(t,s)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[r,0])},Re=Z.prototype;Re.startNode=function(){return new Ve(this,this.start,this.startLoc)},Re.startNodeAt=function(e,t){return new Ve(this,e,t)};function yr(e,t,r,s){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=s),this.options.ranges&&(e.range[1]=r),e}Re.finishNode=function(e,t){return yr.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},Re.finishNodeAt=function(e,t,r,s){return yr.call(this,e,t,r,s)},Re.copyNode=function(e){var t=new Ve(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var Ar="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Cr=Ar+" Extended_Pictographic",Er=Cr,br=Er+" EBase EComp EMod EPres ExtPict",Ra=br,ja={9:Ar,10:Cr,11:Er,12:br,13:Ra},_r="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Sr="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",wr=Sr+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",kr=wr+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",Fr=kr+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",qa=Fr+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Ma={9:Sr,10:wr,11:kr,12:Fr,13:qa},Br={};function Ua(e){var t=Br[e]={binary:f(ja[e]+" "+_r),nonBinary:{General_Category:f(_r),Script:f(Ma[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var At=0,Tr=[9,10,11,12,13];At=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":""),this.unicodeProperties=Br[t.options.ecmaVersion>=13?13:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};de.prototype.reset=function(t,r,s){var a=s.indexOf("u")!==-1;this.start=t|0,this.source=r+"",this.flags=s,this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchN=a&&this.parser.options.ecmaVersion>=9},de.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},de.prototype.at=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return-1;var h=s.charCodeAt(t);if(!(r||this.switchU)||h<=55295||h>=57344||t+1>=a)return h;var c=s.charCodeAt(t+1);return c>=56320&&c<=57343?(h<<10)+c-56613888:h},de.prototype.nextIndex=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return a;var h=s.charCodeAt(t),c;return!(r||this.switchU)||h<=55295||h>=57344||t+1>=a||(c=s.charCodeAt(t+1))<56320||c>57343?t+1:t+2},de.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)},de.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},de.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)},de.prototype.eat=function(t,r){return r===void 0&&(r=!1),this.current(r)===t?(this.advance(r),!0):!1};function Xe(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}O.validateRegExpFlags=function(e){for(var t=e.validFlags,r=e.flags,s=0;s-1&&this.raise(e.start,"Duplicate regular expression flag")}},O.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},O.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,r=e.backReferenceNames;t=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1},O.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1},O.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},O.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var s=0,a=-1;if(this.regexp_eatDecimalDigits(e)&&(s=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(a=e.lastIntValue),e.eat(125)))return a!==-1&&a=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},O.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},O.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},O.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ir(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ir(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}O.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;(r=e.current())!==-1&&!Ir(r);)e.advance();return e.pos!==t},O.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1},O.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e)){e.groupNames.indexOf(e.lastStringValue)!==-1&&e.raise("Duplicate capture group name"),e.groupNames.push(e.lastStringValue);return}e.raise("Invalid group")}},O.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},O.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=Xe(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Xe(e.lastIntValue);return!0}return!1},O.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Wa(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Wa(e){return v(e,!0)||e===36||e===95}O.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Ga(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Ga(e){return q(e,!0)||e===36||e===95||e===8204||e===8205}O.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},O.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1},O.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},O.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},O.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},O.regexp_eatZero=function(e){return e.current()===48&&!He(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1},O.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1},O.regexp_eatControlLetter=function(e){var t=e.current();return Pr(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Pr(e){return e>=65&&e<=90||e>=97&&e<=122}O.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var r=e.pos,s=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(s&&a>=55296&&a<=56319){var h=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var c=e.lastIntValue;if(c>=56320&&c<=57343)return e.lastIntValue=(a-55296)*1024+(c-56320)+65536,!0}e.pos=h,e.lastIntValue=a}return!0}if(s&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Ka(e.lastIntValue))return!0;s&&e.raise("Invalid unicode escape"),e.pos=r}return!1};function Ka(e){return e>=0&&e<=1114111}O.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1},O.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1},O.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Xa(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(t===80||t===112)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1};function Xa(e){return e===100||e===68||e===115||e===83||e===119||e===87}O.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var s=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,s),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var a=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,a),!0}return!1},O.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){D(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(r)||e.raise("Invalid property value")},O.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},O.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Nr(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==""};function Nr(e){return Pr(e)||e===95}O.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Ha(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==""};function Ha(e){return Nr(e)||He(e)}O.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},O.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},O.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;e.switchU&&(t===-1||r===-1)&&e.raise("Invalid character class"),t!==-1&&r!==-1&&t>r&&e.raise("Range out of order in character class")}}},O.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(r===99||Lr(r))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var s=e.current();return s!==93?(e.lastIntValue=s,e.advance(),!0):!1},O.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},O.regexp_eatClassControlLetter=function(e){var t=e.current();return He(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1},O.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},O.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;He(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t};function He(e){return e>=48&&e<=57}O.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Dr(r=e.current());)e.lastIntValue=16*e.lastIntValue+Or(r),e.advance();return e.pos!==t};function Dr(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Or(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}O.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+r*8+e.lastIntValue:e.lastIntValue=t*8+r}else e.lastIntValue=t;return!0}return!1},O.regexp_eatOctalDigit=function(e){var t=e.current();return Lr(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Lr(e){return e>=48&&e<=55}O.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var s=0;s=this.input.length)return this.finishToken(i.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())},G.readToken=function(e){return v(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)},G.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888},G.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(r===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations)for(var s=void 0,a=t;(s=ee(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=s;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,e,this.curPosition())},G.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),s=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&ae.test(String.fromCharCode(e)))++this.pos;else break e}}},G.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)},G.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(i.ellipsis)):(++this.pos,this.finishToken(i.dot))},G.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(i.assign,2):this.finishOp(i.slash,1)},G.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,s=e===42?i.star:i.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++r,s=i.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(i.assign,r+1):this.finishOp(s,r)},G.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(i.assign,3)}return this.finishOp(e===124?i.logicalOR:i.logicalAND,2)}return t===61?this.finishOp(i.assign,2):this.finishOp(e===124?i.bitwiseOR:i.bitwiseAND,1)},G.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(i.assign,2):this.finishOp(i.bitwiseXOR,1)},G.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||_.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(i.incDec,2):t===61?this.finishOp(i.assign,2):this.finishOp(i.plusMin,1)},G.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+r)===61?this.finishOp(i.assign,r+1):this.finishOp(i.bitShift,r)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(r=2),this.finishOp(i.relational,r))},G.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(i.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(i.arrow)):this.finishOp(e===61?i.eq:i.prefix,1)},G.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(i.questionDot,2)}if(t===63){if(e>=12){var s=this.input.charCodeAt(this.pos+2);if(s===61)return this.finishOp(i.assign,3)}return this.finishOp(i.coalesce,2)}}return this.finishOp(i.question,1)},G.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),v(t,!0)||t===92))return this.finishToken(i.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+Ye(t)+"'")},G.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(i.parenL);case 41:return++this.pos,this.finishToken(i.parenR);case 59:return++this.pos,this.finishToken(i.semi);case 44:return++this.pos,this.finishToken(i.comma);case 91:return++this.pos,this.finishToken(i.bracketL);case 93:return++this.pos,this.finishToken(i.bracketR);case 123:return++this.pos,this.finishToken(i.braceL);case 125:return++this.pos,this.finishToken(i.braceR);case 58:return++this.pos,this.finishToken(i.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(i.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(i.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+Ye(e)+"'")},G.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)},G.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,"Unterminated regular expression");var s=this.input.charAt(this.pos);if(_.test(s)&&this.raise(r,"Unterminated regular expression"),e)e=!1;else{if(s==="[")t=!0;else if(s==="]"&&t)t=!1;else if(s==="/"&&!t)break;e=s==="\\"}++this.pos}var a=this.input.slice(r,this.pos);++this.pos;var h=this.pos,c=this.readWord1();this.containsEsc&&this.unexpected(h);var d=this.regexpState||(this.regexpState=new de(this));d.reset(r,a,c),this.validateRegExpFlags(d),this.validateRegExpPattern(d);var x=null;try{x=new RegExp(a,c)}catch{}return this.finishToken(i.regexp,{pattern:a,flags:c,value:x})},G.readInt=function(e,t,r){for(var s=this.options.ecmaVersion>=12&&t===void 0,a=r&&this.input.charCodeAt(this.pos)===48,h=this.pos,c=0,d=0,x=0,U=t==null?1/0:t;x=97?re=W-97+10:W>=65?re=W-65+10:W>=48&&W<=57?re=W-48:re=1/0,re>=e)break;d=W,c=c*e+re}return s&&d===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===h||t!=null&&this.pos-h!==t?null:c};function Ja(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,""))}function Vr(e){return typeof BigInt!="function"?null:BigInt(e.replace(/_/g,""))}G.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return r==null&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(r=Vr(this.input.slice(t,this.pos)),++this.pos):v(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(i.num,r)},G.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,"Invalid number");var r=this.pos-t>=2&&this.input.charCodeAt(t)===48;r&&this.strict&&this.raise(t,"Invalid number");var s=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&s===110){var a=Vr(this.input.slice(t,this.pos));return++this.pos,v(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(i.num,a)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),s===46&&!r&&(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),(s===69||s===101)&&!r&&(s=this.input.charCodeAt(++this.pos),(s===43||s===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,"Invalid number")),v(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var h=Ja(this.input.slice(t,this.pos),r);return this.finishToken(i.num,h)},G.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var r=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(r,"Code point out of bounds")}else t=this.readHexChar(4);return t};function Ye(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}G.readString=function(e){for(var t="",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var s=this.input.charCodeAt(this.pos);if(s===e)break;s===92?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):s===8232||s===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(M(s)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(i.string,t)};var Rr={};G.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Rr)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},G.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Rr;this.raise(e,t)},G.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var r=this.input.charCodeAt(this.pos);if(r===96||r===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===i.template||this.type===i.invalidTemplate)?r===36?(this.pos+=2,this.finishToken(i.dollarBraceL)):(++this.pos,this.finishToken(i.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(i.template,e));if(r===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(M(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=` +`;break;default:e+=String.fromCharCode(r);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},G.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(s,8);return a>255&&(s=s.slice(0,-1),a=parseInt(s,8)),this.pos+=s.length-1,t=this.input.charCodeAt(this.pos),(s!=="0"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-s.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return M(t)?"":String.fromCharCode(t)}},G.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return r===null&&this.invalidStringToken(t,"Bad character escape sequence"),r},G.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,r=this.pos,s=this.options.ecmaVersion>=6;this.pos",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",lang:"\u2329",rang:"\u232A",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"}}}),Ia=Y({"node_modules/acorn-jsx/index.js"(n,o){"use strict";J();var u=bh(),l=/^[\da-fA-F]+$/,m=/^\d+$/,E=new WeakMap;function y(g){g=g.Parser.acorn||g;let V=E.get(g);if(!V){let R=g.tokTypes,N=g.TokContext,T=g.TokenType,v=new N("...",!0,!0),I={tc_oTag:v,tc_cTag:q,tc_expr:B},w={jsxName:new T("jsxName"),jsxText:new T("jsxText",{beforeExpr:!0}),jsxTagStart:new T("jsxTagStart",{startsExpr:!0}),jsxTagEnd:new T("jsxTagEnd")};w.jsxTagStart.updateContext=function(){this.context.push(B),this.context.push(v),this.exprAllowed=!1},w.jsxTagEnd.updateContext=function(C){let H=this.context.pop();H===v&&C===R.slash||H===q?(this.context.pop(),this.exprAllowed=this.curContext()===B):this.exprAllowed=!0},V={tokContexts:I,tokTypes:w},E.set(g,V)}return V}function A(g){if(!g)return g;if(g.type==="JSXIdentifier")return g.name;if(g.type==="JSXNamespacedName")return g.namespace.name+":"+g.name.name;if(g.type==="JSXMemberExpression")return A(g.object)+"."+A(g.property)}o.exports=function(g){return g=g||{},function(V){return b({allowNamespaces:g.allowNamespaces!==!1,allowNamespacedObjects:!!g.allowNamespacedObjects},V)}},Object.defineProperty(o.exports,"tokTypes",{get:function(){return y(ct()).tokTypes},configurable:!0,enumerable:!0});function b(g,V){let R=V.acorn||ct(),N=y(R),T=R.tokTypes,v=N.tokTypes,q=R.tokContexts,B=N.tokContexts.tc_oTag,I=N.tokContexts.tc_cTag,w=N.tokContexts.tc_expr,C=R.isNewLine,H=R.isIdentifierStart,L=R.isIdentifierChar;return class extends V{static get acornJsx(){return N}jsx_readToken(){let i="",_=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated JSX contents");let P=this.input.charCodeAt(this.pos);switch(P){case 60:case 123:return this.pos===this.start?P===60&&this.exprAllowed?(++this.pos,this.finishToken(v.jsxTagStart)):this.getTokenFromCode(P):(i+=this.input.slice(_,this.pos),this.finishToken(v.jsxText,i));case 38:i+=this.input.slice(_,this.pos),i+=this.jsx_readEntity(),_=this.pos;break;case 62:case 125:this.raise(this.pos,"Unexpected token `"+this.input[this.pos]+"`. Did you mean `"+(P===62?">":"}")+'` or `{"'+this.input[this.pos]+'"}`?');default:C(P)?(i+=this.input.slice(_,this.pos),i+=this.jsx_readNewLine(!0),_=this.pos):++this.pos}}}jsx_readNewLine(i){let _=this.input.charCodeAt(this.pos),P;return++this.pos,_===13&&this.input.charCodeAt(this.pos)===10?(++this.pos,P=i?` +`:`\r +`):P=String.fromCharCode(_),this.options.locations&&(++this.curLine,this.lineStart=this.pos),P}jsx_readString(i){let _="",P=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");let M=this.input.charCodeAt(this.pos);if(M===i)break;M===38?(_+=this.input.slice(P,this.pos),_+=this.jsx_readEntity(),P=this.pos):C(M)?(_+=this.input.slice(P,this.pos),_+=this.jsx_readNewLine(!1),P=this.pos):++this.pos}return _+=this.input.slice(P,this.pos++),this.finishToken(T.string,_)}jsx_readEntity(){let i="",_=0,P,M=this.input[this.pos];M!=="&"&&this.raise(this.pos,"Entity must start with an ampersand");let ee=++this.pos;for(;this.pos")}let te=ee.name?"Element":"Fragment";return P["opening"+te]=ee,P["closing"+te]=ae,P.children=M,this.type===T.relational&&this.value==="<"&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(P,"JSX"+te)}jsx_parseText(){let i=this.parseLiteral(this.value);return i.type="JSXText",i}jsx_parseElement(){let i=this.start,_=this.startLoc;return this.next(),this.jsx_parseElementAt(i,_)}parseExprAtom(i){return this.type===v.jsxText?this.jsx_parseText():this.type===v.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(i)}readToken(i){let _=this.curContext();if(_===w)return this.jsx_readToken();if(_===B||_===I){if(H(i))return this.jsx_readWord();if(i==62)return++this.pos,this.finishToken(v.jsxTagEnd);if((i===34||i===39)&&_==B)return this.jsx_readString(i)}return i===60&&this.exprAllowed&&this.input.charCodeAt(this.pos+1)!==33?(++this.pos,this.finishToken(v.jsxTagStart)):super.readToken(i)}updateContext(i){if(this.type==T.braceL){var _=this.curContext();_==B?this.context.push(q.b_expr):_==w?this.context.push(q.b_tmpl):super.updateContext(i),this.exprAllowed=!0}else if(this.type===T.slash&&i===v.jsxTagStart)this.context.length-=2,this.context.push(I),this.exprAllowed=!1;else return super.updateContext(i)}}}}}),_h=Y({"src/language-js/parse/acorn.js"(n,o){"use strict";J();var u=lr(),l=pa(),m=ka(),E=Ta(),y={ecmaVersion:"latest",sourceType:"module",allowReserved:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,allowAwaitOutsideFunction:!0,allowSuperOutsideMethod:!0,allowHashBang:!0,locations:!0,ranges:!0};function A(N){let{message:T,loc:v}=N;if(!v)return N;let{line:q,column:B}=v;return u(T.replace(/ \(\d+:\d+\)$/,""),{start:{line:q,column:B+1}})}var b,g=()=>{if(!b){let{Parser:N}=ct(),T=Ia();b=N.extend(T())}return b};function V(N,T){let v=g(),q=[],B=[],I=v.parse(N,Object.assign(Object.assign({},y),{},{sourceType:T,onComment:q,onToken:B}));return I.comments=q,I.tokens=B,I}function R(N,T){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:q,error:B}=l(()=>V(N,"module"),()=>V(N,"script"));if(!q)throw A(B);return v.originalText=N,E(q,v)}o.exports=m(R)}}),Sh=Y({"src/language-js/parse/utils/replace-hashbang.js"(n,o){"use strict";J();function u(l){return l.charAt(0)==="#"&&l.charAt(1)==="!"?"//"+l.slice(2):l}o.exports=u}}),wh=Y({"node_modules/espree/dist/espree.cjs"(n){"use strict";J(),Object.defineProperty(n,"__esModule",{value:!0});var o=ct(),u=Ia(),l;function m(p){return p&&typeof p=="object"&&"default"in p?p:{default:p}}function E(p){if(p&&p.__esModule)return p;var D=Object.create(null);return p&&Object.keys(p).forEach(function(S){if(S!=="default"){var f=Object.getOwnPropertyDescriptor(p,S);Object.defineProperty(D,S,f.get?f:{enumerable:!0,get:function(){return p[S]}})}}),D.default=p,Object.freeze(D)}var y=E(o),A=m(u),b=E(l),g={Boolean:"Boolean",EOF:"",Identifier:"Identifier",PrivateIdentifier:"PrivateIdentifier",Keyword:"Keyword",Null:"Null",Numeric:"Numeric",Punctuator:"Punctuator",String:"String",RegularExpression:"RegularExpression",Template:"Template",JSXIdentifier:"JSXIdentifier",JSXText:"JSXText"};function V(p,D){let S=p[0],f=p[p.length-1],F={type:g.Template,value:D.slice(S.start,f.end)};return S.loc&&(F.loc={start:S.loc.start,end:f.loc.end}),S.range&&(F.start=S.range[0],F.end=f.range[1],F.range=[F.start,F.end]),F}function R(p,D){this._acornTokTypes=p,this._tokens=[],this._curlyBrace=null,this._code=D}R.prototype={constructor:R,translate(p,D){let S=p.type,f=this._acornTokTypes;if(S===f.name)p.type=g.Identifier,p.value==="static"&&(p.type=g.Keyword),D.ecmaVersion>5&&(p.value==="yield"||p.value==="let")&&(p.type=g.Keyword);else if(S===f.privateId)p.type=g.PrivateIdentifier;else if(S===f.semi||S===f.comma||S===f.parenL||S===f.parenR||S===f.braceL||S===f.braceR||S===f.dot||S===f.bracketL||S===f.colon||S===f.question||S===f.bracketR||S===f.ellipsis||S===f.arrow||S===f.jsxTagStart||S===f.incDec||S===f.starstar||S===f.jsxTagEnd||S===f.prefix||S===f.questionDot||S.binop&&!S.keyword||S.isAssign)p.type=g.Punctuator,p.value=this._code.slice(p.start,p.end);else if(S===f.jsxName)p.type=g.JSXIdentifier;else if(S.label==="jsxText"||S===f.jsxAttrValueToken)p.type=g.JSXText;else if(S.keyword)S.keyword==="true"||S.keyword==="false"?p.type=g.Boolean:S.keyword==="null"?p.type=g.Null:p.type=g.Keyword;else if(S===f.num)p.type=g.Numeric,p.value=this._code.slice(p.start,p.end);else if(S===f.string)D.jsxAttrValueToken?(D.jsxAttrValueToken=!1,p.type=g.JSXText):p.type=g.String,p.value=this._code.slice(p.start,p.end);else if(S===f.regexp){p.type=g.RegularExpression;let F=p.value;p.regex={flags:F.flags,pattern:F.pattern},p.value="/".concat(F.pattern,"/").concat(F.flags)}return p},onToken(p,D){let S=this,f=this._acornTokTypes,F=D.tokens,K=this._tokens;function X(){F.push(V(S._tokens,S._code)),S._tokens=[]}if(p.type===f.eof){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D));return}if(p.type===f.backQuote){this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),K.push(p),K.length>1&&X();return}if(p.type===f.dollarBraceL){K.push(p),X();return}if(p.type===f.braceR){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=p;return}if(p.type===f.template||p.type===f.invalidTemplate){this._curlyBrace&&(K.push(this._curlyBrace),this._curlyBrace=null),K.push(p);return}this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),F.push(this.translate(p,D))}};var N=[3,5,6,7,8,9,10,11,12,13];function T(){return N[N.length-1]}function v(){return[...N]}function q(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:5,D=p==="latest"?T():p;if(typeof D!="number")throw new Error('ecmaVersion must be a number or "latest". Received value of type '.concat(typeof p," instead."));if(D>=2015&&(D-=2009),!N.includes(D))throw new Error("Invalid ecmaVersion.");return D}function B(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"script";if(p==="script"||p==="module")return p;if(p==="commonjs")return"script";throw new Error("Invalid sourceType.")}function I(p){let D=q(p.ecmaVersion),S=B(p.sourceType),f=p.range===!0,F=p.loc===!0;if(D!==3&&p.allowReserved)throw new Error("`allowReserved` is only supported when ecmaVersion is 3");if(typeof p.allowReserved<"u"&&typeof p.allowReserved!="boolean")throw new Error("`allowReserved`, when present, must be `true` or `false`");let K=D===3?p.allowReserved||"never":!1,X=p.ecmaFeatures||{},oe=p.sourceType==="commonjs"||Boolean(X.globalReturn);if(S==="module"&&D<6)throw new Error("sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options.");return Object.assign({},p,{ecmaVersion:D,sourceType:S,ranges:f,locations:F,allowReserved:K,allowReturnOutsideFunction:oe})}var w=Symbol("espree's internal state"),C=Symbol("espree's esprimaFinishNode");function H(p,D,S,f,F,K){let X={type:p?"Block":"Line",value:D};return typeof S=="number"&&(X.start=S,X.end=f,X.range=[S,f]),typeof F=="object"&&(X.loc={start:F,end:K}),X}var L=()=>p=>{let D=Object.assign({},p.acorn.tokTypes);return p.acornJsx&&Object.assign(D,p.acornJsx.tokTypes),class extends p{constructor(f,F){(typeof f!="object"||f===null)&&(f={}),typeof F!="string"&&!(F instanceof String)&&(F=String(F));let K=f.sourceType,X=I(f),oe=X.ecmaFeatures||{},me=X.tokens===!0?new R(D,F):null;super({ecmaVersion:X.ecmaVersion,sourceType:X.sourceType,ranges:X.ranges,locations:X.locations,allowReserved:X.allowReserved,allowReturnOutsideFunction:X.allowReturnOutsideFunction,onToken:ve=>{me&&me.onToken(ve,this[w]),ve.type!==D.eof&&(this[w].lastToken=ve)},onComment:(ve,pt,ft,Ee,ge,De)=>{if(this[w].comments){let Ue=H(ve,pt,ft,Ee,ge,De);this[w].comments.push(Ue)}}},F),this[w]={originalSourceType:K||X.sourceType,tokens:me?[]:null,comments:X.comment===!0?[]:null,impliedStrict:oe.impliedStrict===!0&&this.options.ecmaVersion>=5,ecmaVersion:this.options.ecmaVersion,jsxAttrValueToken:!1,lastToken:null,templateElements:[]}}tokenize(){do this.next();while(this.type!==D.eof);this.next();let f=this[w],F=f.tokens;return f.comments&&(F.comments=f.comments),F}finishNode(){let f=super.finishNode(...arguments);return this[C](f)}finishNodeAt(){let f=super.finishNodeAt(...arguments);return this[C](f)}parse(){let f=this[w],F=super.parse();if(F.sourceType=f.originalSourceType,f.comments&&(F.comments=f.comments),f.tokens&&(F.tokens=f.tokens),F.body.length){let[K]=F.body;F.range&&(F.range[0]=K.range[0]),F.loc&&(F.loc.start=K.loc.start),F.start=K.start}return f.lastToken&&(F.range&&(F.range[1]=f.lastToken.range[1]),F.loc&&(F.loc.end=f.lastToken.loc.end),F.end=f.lastToken.end),this[w].templateElements.forEach(K=>{let oe=K.tail?1:2;K.start+=-1,K.end+=oe,K.range&&(K.range[0]+=-1,K.range[1]+=oe),K.loc&&(K.loc.start.column+=-1,K.loc.end.column+=oe)}),F}parseTopLevel(f){return this[w].impliedStrict&&(this.strict=!0),super.parseTopLevel(f)}raise(f,F){let K=p.acorn.getLineInfo(this.input,f),X=new SyntaxError(F);throw X.index=f,X.lineNumber=K.line,X.column=K.column+1,X}raiseRecoverable(f,F){this.raise(f,F)}unexpected(f){let F="Unexpected token";if(f!=null){if(this.pos=f,this.options.locations)for(;this.posthis.start&&(F+=" ".concat(this.input.slice(this.start,this.end))),this.raise(this.start,F)}jsx_readString(f){let F=super.jsx_readString(f);return this.type===D.string&&(this[w].jsxAttrValueToken=!0),F}[C](f){return f.type==="TemplateElement"&&this[w].templateElements.push(f),f.type.includes("Function")&&!f.generator&&(f.generator=!1),f}}},i="9.3.1",_={_regular:null,_jsx:null,get regular(){return this._regular===null&&(this._regular=y.Parser.extend(L())),this._regular},get jsx(){return this._jsx===null&&(this._jsx=y.Parser.extend(A.default(),L())),this._jsx},get(p){return Boolean(p&&p.ecmaFeatures&&p.ecmaFeatures.jsx)?this.jsx:this.regular}};function P(p,D){let S=_.get(D);return(!D||D.tokens!==!0)&&(D=Object.assign({},D,{tokens:!0})),new S(D,p).tokenize()}function M(p,D){let S=_.get(D);return new S(D,p).parse()}var ee=i,ae=function(){return b.KEYS}(),te=void 0,ie=T(),Ne=v();n.Syntax=te,n.VisitorKeys=ae,n.latestEcmaVersion=ie,n.parse=M,n.supportedEcmaVersions=Ne,n.tokenize=P,n.version=ee}}),kh=Y({"src/language-js/parse/espree.js"(n,o){"use strict";J();var u=lr(),l=pa(),m=ka(),E=Sh(),y=Ta(),A={ecmaVersion:"latest",range:!0,loc:!0,comment:!0,tokens:!0,sourceType:"module",ecmaFeatures:{jsx:!0,globalReturn:!0,impliedStrict:!1}};function b(V){let{message:R,lineNumber:N,column:T}=V;return typeof N!="number"?V:u(R,{start:{line:N,column:T}})}function g(V,R){let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:T}=wh(),v=E(V),{result:q,error:B}=l(()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:"module"})),()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:"script"})));if(!q)throw b(B);return N.originalText=V,y(q,N)}o.exports=m(g)}}),Fh=Y({"src/language-js/parse/acorn-and-espree.js"(n,o){J();var u=_h(),l=kh();o.exports={parsers:{acorn:u,espree:l}}}}),Ul=Fh();export{Ul as default}; diff --git a/node_modules/prettier/esm/parser-flow.mjs b/node_modules/prettier/esm/parser-flow.mjs new file mode 100644 index 0000000..ff7de81 --- /dev/null +++ b/node_modules/prettier/esm/parser-flow.mjs @@ -0,0 +1,35 @@ +"use strict";var Ue=(V0,z0)=>()=>(z0||V0((z0={exports:{}}).exports,z0),z0.exports);var nu=Ue((ooe,rn0)=>{var h_=function(V0){return V0&&V0.Math==Math&&V0};rn0.exports=h_(typeof globalThis=="object"&&globalThis)||h_(typeof window=="object"&&window)||h_(typeof self=="object"&&self)||h_(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Qs=Ue((aoe,en0)=>{en0.exports=function(V0){try{return!!V0()}catch{return!0}}});var fv=Ue((coe,nn0)=>{var I7e=Qs();nn0.exports=!I7e(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var jR=Ue((soe,tn0)=>{var A7e=Qs();tn0.exports=!A7e(function(){var V0=function(){}.bind();return typeof V0!="function"||V0.hasOwnProperty("prototype")})});var k_=Ue((voe,un0)=>{var N7e=jR(),d_=Function.prototype.call;un0.exports=N7e?d_.bind(d_):function(){return d_.apply(d_,arguments)}});var on0=Ue(xn0=>{"use strict";var in0={}.propertyIsEnumerable,fn0=Object.getOwnPropertyDescriptor,C7e=fn0&&!in0.call({1:2},1);xn0.f=C7e?function(z0){var xr=fn0(this,z0);return!!xr&&xr.enumerable}:in0});var GR=Ue((boe,an0)=>{an0.exports=function(V0,z0){return{enumerable:!(V0&1),configurable:!(V0&2),writable:!(V0&4),value:z0}}});var zc=Ue((poe,vn0)=>{var cn0=jR(),sn0=Function.prototype,P7e=sn0.bind,MR=sn0.call,D7e=cn0&&P7e.bind(MR,MR);vn0.exports=cn0?function(V0){return V0&&D7e(V0)}:function(V0){return V0&&function(){return MR.apply(V0,arguments)}}});var pn0=Ue((moe,bn0)=>{var ln0=zc(),L7e=ln0({}.toString),R7e=ln0("".slice);bn0.exports=function(V0){return R7e(L7e(V0),8,-1)}});var _n0=Ue((_oe,mn0)=>{var j7e=nu(),G7e=zc(),M7e=Qs(),B7e=pn0(),BR=j7e.Object,q7e=G7e("".split);mn0.exports=M7e(function(){return!BR("z").propertyIsEnumerable(0)})?function(V0){return B7e(V0)=="String"?q7e(V0,""):BR(V0)}:BR});var qR=Ue((yoe,yn0)=>{var U7e=nu(),H7e=U7e.TypeError;yn0.exports=function(V0){if(V0==null)throw H7e("Can't call method on "+V0);return V0}});var w_=Ue((hoe,hn0)=>{var X7e=_n0(),Y7e=qR();hn0.exports=function(V0){return X7e(Y7e(V0))}});var Kc=Ue((doe,dn0)=>{dn0.exports=function(V0){return typeof V0=="function"}});var S2=Ue((koe,kn0)=>{var V7e=Kc();kn0.exports=function(V0){return typeof V0=="object"?V0!==null:V7e(V0)}});var E_=Ue((woe,wn0)=>{var UR=nu(),z7e=Kc(),K7e=function(V0){return z7e(V0)?V0:void 0};wn0.exports=function(V0,z0){return arguments.length<2?K7e(UR[V0]):UR[V0]&&UR[V0][z0]}});var Sn0=Ue((Eoe,En0)=>{var W7e=zc();En0.exports=W7e({}.isPrototypeOf)});var Fn0=Ue((Soe,gn0)=>{var J7e=E_();gn0.exports=J7e("navigator","userAgent")||""});var Pn0=Ue((goe,Cn0)=>{var Nn0=nu(),HR=Fn0(),Tn0=Nn0.process,On0=Nn0.Deno,In0=Tn0&&Tn0.versions||On0&&On0.version,An0=In0&&In0.v8,$i,S_;An0&&($i=An0.split("."),S_=$i[0]>0&&$i[0]<4?1:+($i[0]+$i[1]));!S_&&HR&&($i=HR.match(/Edge\/(\d+)/),(!$i||$i[1]>=74)&&($i=HR.match(/Chrome\/(\d+)/),$i&&(S_=+$i[1])));Cn0.exports=S_});var XR=Ue((Foe,Ln0)=>{var Dn0=Pn0(),$7e=Qs();Ln0.exports=!!Object.getOwnPropertySymbols&&!$7e(function(){var V0=Symbol();return!String(V0)||!(Object(V0)instanceof Symbol)||!Symbol.sham&&Dn0&&Dn0<41})});var YR=Ue((Toe,Rn0)=>{var Z7e=XR();Rn0.exports=Z7e&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var VR=Ue((Ooe,jn0)=>{var Q7e=nu(),rie=E_(),eie=Kc(),nie=Sn0(),tie=YR(),uie=Q7e.Object;jn0.exports=tie?function(V0){return typeof V0=="symbol"}:function(V0){var z0=rie("Symbol");return eie(z0)&&nie(z0.prototype,uie(V0))}});var Mn0=Ue((Ioe,Gn0)=>{var iie=nu(),fie=iie.String;Gn0.exports=function(V0){try{return fie(V0)}catch{return"Object"}}});var qn0=Ue((Aoe,Bn0)=>{var xie=nu(),oie=Kc(),aie=Mn0(),cie=xie.TypeError;Bn0.exports=function(V0){if(oie(V0))return V0;throw cie(aie(V0)+" is not a function")}});var Hn0=Ue((Noe,Un0)=>{var sie=qn0();Un0.exports=function(V0,z0){var xr=V0[z0];return xr==null?void 0:sie(xr)}});var Yn0=Ue((Coe,Xn0)=>{var vie=nu(),zR=k_(),KR=Kc(),WR=S2(),lie=vie.TypeError;Xn0.exports=function(V0,z0){var xr,Fr;if(z0==="string"&&KR(xr=V0.toString)&&!WR(Fr=zR(xr,V0))||KR(xr=V0.valueOf)&&!WR(Fr=zR(xr,V0))||z0!=="string"&&KR(xr=V0.toString)&&!WR(Fr=zR(xr,V0)))return Fr;throw lie("Can't convert object to primitive value")}});var zn0=Ue((Poe,Vn0)=>{Vn0.exports=!1});var g_=Ue((Doe,Wn0)=>{var Kn0=nu(),bie=Object.defineProperty;Wn0.exports=function(V0,z0){try{bie(Kn0,V0,{value:z0,configurable:!0,writable:!0})}catch{Kn0[V0]=z0}return z0}});var F_=Ue((Loe,$n0)=>{var pie=nu(),mie=g_(),Jn0="__core-js_shared__",_ie=pie[Jn0]||mie(Jn0,{});$n0.exports=_ie});var JR=Ue((Roe,Qn0)=>{var yie=zn0(),Zn0=F_();(Qn0.exports=function(V0,z0){return Zn0[V0]||(Zn0[V0]=z0!==void 0?z0:{})})("versions",[]).push({version:"3.22.2",mode:yie?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var et0=Ue((joe,rt0)=>{var hie=nu(),die=qR(),kie=hie.Object;rt0.exports=function(V0){return kie(die(V0))}});var r1=Ue((Goe,nt0)=>{var wie=zc(),Eie=et0(),Sie=wie({}.hasOwnProperty);nt0.exports=Object.hasOwn||function(z0,xr){return Sie(Eie(z0),xr)}});var $R=Ue((Moe,tt0)=>{var gie=zc(),Fie=0,Tie=Math.random(),Oie=gie(1 .toString);tt0.exports=function(V0){return"Symbol("+(V0===void 0?"":V0)+")_"+Oie(++Fie+Tie,36)}});var at0=Ue((Boe,ot0)=>{var Iie=nu(),Aie=JR(),ut0=r1(),Nie=$R(),it0=XR(),xt0=YR(),g2=Aie("wks"),xv=Iie.Symbol,ft0=xv&&xv.for,Cie=xt0?xv:xv&&xv.withoutSetter||Nie;ot0.exports=function(V0){if(!ut0(g2,V0)||!(it0||typeof g2[V0]=="string")){var z0="Symbol."+V0;it0&&ut0(xv,V0)?g2[V0]=xv[V0]:xt0&&ft0?g2[V0]=ft0(z0):g2[V0]=Cie(z0)}return g2[V0]}});var lt0=Ue((qoe,vt0)=>{var Pie=nu(),Die=k_(),ct0=S2(),st0=VR(),Lie=Hn0(),Rie=Yn0(),jie=at0(),Gie=Pie.TypeError,Mie=jie("toPrimitive");vt0.exports=function(V0,z0){if(!ct0(V0)||st0(V0))return V0;var xr=Lie(V0,Mie),Fr;if(xr){if(z0===void 0&&(z0="default"),Fr=Die(xr,V0,z0),!ct0(Fr)||st0(Fr))return Fr;throw Gie("Can't convert object to primitive value")}return z0===void 0&&(z0="number"),Rie(V0,z0)}});var ZR=Ue((Uoe,bt0)=>{var Bie=lt0(),qie=VR();bt0.exports=function(V0){var z0=Bie(V0,"string");return qie(z0)?z0:z0+""}});var _t0=Ue((Hoe,mt0)=>{var Uie=nu(),pt0=S2(),QR=Uie.document,Hie=pt0(QR)&&pt0(QR.createElement);mt0.exports=function(V0){return Hie?QR.createElement(V0):{}}});var rj=Ue((Xoe,yt0)=>{var Xie=fv(),Yie=Qs(),Vie=_t0();yt0.exports=!Xie&&!Yie(function(){return Object.defineProperty(Vie("div"),"a",{get:function(){return 7}}).a!=7})});var ej=Ue(dt0=>{var zie=fv(),Kie=k_(),Wie=on0(),Jie=GR(),$ie=w_(),Zie=ZR(),Qie=r1(),rfe=rj(),ht0=Object.getOwnPropertyDescriptor;dt0.f=zie?ht0:function(z0,xr){if(z0=$ie(z0),xr=Zie(xr),rfe)try{return ht0(z0,xr)}catch{}if(Qie(z0,xr))return Jie(!Kie(Wie.f,z0,xr),z0[xr])}});var wt0=Ue((Voe,kt0)=>{var efe=fv(),nfe=Qs();kt0.exports=efe&&nfe(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var nj=Ue((zoe,St0)=>{var Et0=nu(),tfe=S2(),ufe=Et0.String,ife=Et0.TypeError;St0.exports=function(V0){if(tfe(V0))return V0;throw ife(ufe(V0)+" is not an object")}});var xj=Ue(Ft0=>{var ffe=nu(),xfe=fv(),ofe=rj(),afe=wt0(),T_=nj(),gt0=ZR(),cfe=ffe.TypeError,tj=Object.defineProperty,sfe=Object.getOwnPropertyDescriptor,uj="enumerable",ij="configurable",fj="writable";Ft0.f=xfe?afe?function(z0,xr,Fr){if(T_(z0),xr=gt0(xr),T_(Fr),typeof z0=="function"&&xr==="prototype"&&"value"in Fr&&fj in Fr&&!Fr[fj]){var we=sfe(z0,xr);we&&we[fj]&&(z0[xr]=Fr.value,Fr={configurable:ij in Fr?Fr[ij]:we[ij],enumerable:uj in Fr?Fr[uj]:we[uj],writable:!1})}return tj(z0,xr,Fr)}:tj:function(z0,xr,Fr){if(T_(z0),xr=gt0(xr),T_(Fr),ofe)try{return tj(z0,xr,Fr)}catch{}if("get"in Fr||"set"in Fr)throw cfe("Accessors not supported");return"value"in Fr&&(z0[xr]=Fr.value),z0}});var O_=Ue((Woe,Tt0)=>{var vfe=fv(),lfe=xj(),bfe=GR();Tt0.exports=vfe?function(V0,z0,xr){return lfe.f(V0,z0,bfe(1,xr))}:function(V0,z0,xr){return V0[z0]=xr,V0}});var aj=Ue((Joe,Ot0)=>{var pfe=zc(),mfe=Kc(),oj=F_(),_fe=pfe(Function.toString);mfe(oj.inspectSource)||(oj.inspectSource=function(V0){return _fe(V0)});Ot0.exports=oj.inspectSource});var Nt0=Ue(($oe,At0)=>{var yfe=nu(),hfe=Kc(),dfe=aj(),It0=yfe.WeakMap;At0.exports=hfe(It0)&&/native code/.test(dfe(It0))});var Dt0=Ue((Zoe,Pt0)=>{var kfe=JR(),wfe=$R(),Ct0=kfe("keys");Pt0.exports=function(V0){return Ct0[V0]||(Ct0[V0]=wfe(V0))}});var cj=Ue((Qoe,Lt0)=>{Lt0.exports={}});var qt0=Ue((rae,Bt0)=>{var Efe=Nt0(),Mt0=nu(),sj=zc(),Sfe=S2(),gfe=O_(),vj=r1(),lj=F_(),Ffe=Dt0(),Tfe=cj(),Rt0="Object already initialized",pj=Mt0.TypeError,Ofe=Mt0.WeakMap,I_,a4,A_,Ife=function(V0){return A_(V0)?a4(V0):I_(V0,{})},Afe=function(V0){return function(z0){var xr;if(!Sfe(z0)||(xr=a4(z0)).type!==V0)throw pj("Incompatible receiver, "+V0+" required");return xr}};Efe||lj.state?(e1=lj.state||(lj.state=new Ofe),jt0=sj(e1.get),bj=sj(e1.has),Gt0=sj(e1.set),I_=function(V0,z0){if(bj(e1,V0))throw new pj(Rt0);return z0.facade=V0,Gt0(e1,V0,z0),z0},a4=function(V0){return jt0(e1,V0)||{}},A_=function(V0){return bj(e1,V0)}):(ov=Ffe("state"),Tfe[ov]=!0,I_=function(V0,z0){if(vj(V0,ov))throw new pj(Rt0);return z0.facade=V0,gfe(V0,ov,z0),z0},a4=function(V0){return vj(V0,ov)?V0[ov]:{}},A_=function(V0){return vj(V0,ov)});var e1,jt0,bj,Gt0,ov;Bt0.exports={set:I_,get:a4,has:A_,enforce:Ife,getterFor:Afe}});var Xt0=Ue((eae,Ht0)=>{var mj=fv(),Nfe=r1(),Ut0=Function.prototype,Cfe=mj&&Object.getOwnPropertyDescriptor,_j=Nfe(Ut0,"name"),Pfe=_j&&function(){}.name==="something",Dfe=_j&&(!mj||mj&&Cfe(Ut0,"name").configurable);Ht0.exports={EXISTS:_j,PROPER:Pfe,CONFIGURABLE:Dfe}});var Wt0=Ue((nae,Kt0)=>{var Lfe=nu(),Yt0=Kc(),Rfe=r1(),Vt0=O_(),jfe=g_(),Gfe=aj(),zt0=qt0(),Mfe=Xt0().CONFIGURABLE,Bfe=zt0.get,qfe=zt0.enforce,Ufe=String(String).split("String");(Kt0.exports=function(V0,z0,xr,Fr){var we=Fr?!!Fr.unsafe:!1,Ke=Fr?!!Fr.enumerable:!1,Ne=Fr?!!Fr.noTargetGet:!1,Ve=Fr&&Fr.name!==void 0?Fr.name:z0,Qe;if(Yt0(xr)&&(String(Ve).slice(0,7)==="Symbol("&&(Ve="["+String(Ve).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Rfe(xr,"name")||Mfe&&xr.name!==Ve)&&Vt0(xr,"name",Ve),Qe=qfe(xr),Qe.source||(Qe.source=Ufe.join(typeof Ve=="string"?Ve:""))),V0===Lfe){Ke?V0[z0]=xr:jfe(z0,xr);return}else we?!Ne&&V0[z0]&&(Ke=!0):delete V0[z0];Ke?V0[z0]=xr:Vt0(V0,z0,xr)})(Function.prototype,"toString",function(){return Yt0(this)&&Bfe(this).source||Gfe(this)})});var yj=Ue((tae,Jt0)=>{var Hfe=Math.ceil,Xfe=Math.floor;Jt0.exports=function(V0){var z0=+V0;return z0!==z0||z0===0?0:(z0>0?Xfe:Hfe)(z0)}});var Zt0=Ue((uae,$t0)=>{var Yfe=yj(),Vfe=Math.max,zfe=Math.min;$t0.exports=function(V0,z0){var xr=Yfe(V0);return xr<0?Vfe(xr+z0,0):zfe(xr,z0)}});var ru0=Ue((iae,Qt0)=>{var Kfe=yj(),Wfe=Math.min;Qt0.exports=function(V0){return V0>0?Wfe(Kfe(V0),9007199254740991):0}});var nu0=Ue((fae,eu0)=>{var Jfe=ru0();eu0.exports=function(V0){return Jfe(V0.length)}});var iu0=Ue((xae,uu0)=>{var $fe=w_(),Zfe=Zt0(),Qfe=nu0(),tu0=function(V0){return function(z0,xr,Fr){var we=$fe(z0),Ke=Qfe(we),Ne=Zfe(Fr,Ke),Ve;if(V0&&xr!=xr){for(;Ke>Ne;)if(Ve=we[Ne++],Ve!=Ve)return!0}else for(;Ke>Ne;Ne++)if((V0||Ne in we)&&we[Ne]===xr)return V0||Ne||0;return!V0&&-1}};uu0.exports={includes:tu0(!0),indexOf:tu0(!1)}});var ou0=Ue((oae,xu0)=>{var rxe=zc(),hj=r1(),exe=w_(),nxe=iu0().indexOf,txe=cj(),fu0=rxe([].push);xu0.exports=function(V0,z0){var xr=exe(V0),Fr=0,we=[],Ke;for(Ke in xr)!hj(txe,Ke)&&hj(xr,Ke)&&fu0(we,Ke);for(;z0.length>Fr;)hj(xr,Ke=z0[Fr++])&&(~nxe(we,Ke)||fu0(we,Ke));return we}});var cu0=Ue((aae,au0)=>{au0.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var vu0=Ue(su0=>{var uxe=ou0(),ixe=cu0(),fxe=ixe.concat("length","prototype");su0.f=Object.getOwnPropertyNames||function(z0){return uxe(z0,fxe)}});var bu0=Ue(lu0=>{lu0.f=Object.getOwnPropertySymbols});var mu0=Ue((vae,pu0)=>{var xxe=E_(),oxe=zc(),axe=vu0(),cxe=bu0(),sxe=nj(),vxe=oxe([].concat);pu0.exports=xxe("Reflect","ownKeys")||function(z0){var xr=axe.f(sxe(z0)),Fr=cxe.f;return Fr?vxe(xr,Fr(z0)):xr}});var hu0=Ue((lae,yu0)=>{var _u0=r1(),lxe=mu0(),bxe=ej(),pxe=xj();yu0.exports=function(V0,z0,xr){for(var Fr=lxe(z0),we=pxe.f,Ke=bxe.f,Ne=0;Ne{var mxe=Qs(),_xe=Kc(),yxe=/#|\.prototype\./,c4=function(V0,z0){var xr=dxe[hxe(V0)];return xr==wxe?!0:xr==kxe?!1:_xe(z0)?mxe(z0):!!z0},hxe=c4.normalize=function(V0){return String(V0).replace(yxe,".").toLowerCase()},dxe=c4.data={},kxe=c4.NATIVE="N",wxe=c4.POLYFILL="P";du0.exports=c4});var Eu0=Ue((pae,wu0)=>{var dj=nu(),Exe=ej().f,Sxe=O_(),gxe=Wt0(),Fxe=g_(),Txe=hu0(),Oxe=ku0();wu0.exports=function(V0,z0){var xr=V0.target,Fr=V0.global,we=V0.stat,Ke,Ne,Ve,Qe,Bn,zn;if(Fr?Ne=dj:we?Ne=dj[xr]||Fxe(xr,{}):Ne=(dj[xr]||{}).prototype,Ne)for(Ve in z0){if(Bn=z0[Ve],V0.noTargetGet?(zn=Exe(Ne,Ve),Qe=zn&&zn.value):Qe=Ne[Ve],Ke=Oxe(Fr?Ve:xr+(we?".":"#")+Ve,V0.forced),!Ke&&Qe!==void 0){if(typeof Bn==typeof Qe)continue;Txe(Bn,Qe)}(V0.sham||Qe&&Qe.sham)&&Sxe(Bn,"sham",!0),gxe(Ne,Ve,Bn,V0)}}});var Su0=Ue(()=>{var Ixe=Eu0(),Axe=nu();Ixe({global:!0},{globalThis:Axe})});Su0();var Zq=Object.defineProperty,Nxe=Object.getOwnPropertyDescriptor,Qq=Object.getOwnPropertyNames,Cxe=Object.prototype.hasOwnProperty,C_=(V0,z0)=>function(){return V0&&(z0=(0,V0[Qq(V0)[0]])(V0=0)),z0},Wt=(V0,z0)=>function(){return z0||(0,V0[Qq(V0)[0]])((z0={exports:{}}).exports,z0),z0.exports},rU=(V0,z0)=>{for(var xr in z0)Zq(V0,xr,{get:z0[xr],enumerable:!0})},Pxe=(V0,z0,xr,Fr)=>{if(z0&&typeof z0=="object"||typeof z0=="function")for(let we of Qq(z0))!Cxe.call(V0,we)&&we!==xr&&Zq(V0,we,{get:()=>z0[we],enumerable:!(Fr=Nxe(z0,we))||Fr.enumerable});return V0},eU=V0=>Pxe(Zq({},"__esModule",{value:!0}),V0),Pt=C_({""(){}}),gu0=Wt({"src/common/parser-create-error.js"(V0,z0){"use strict";Pt();function xr(Fr,we){let Ke=new SyntaxError(Fr+" ("+we.start.line+":"+we.start.column+")");return Ke.loc=we,Ke}z0.exports=xr}}),Fu0={};rU(Fu0,{EOL:()=>Sj,arch:()=>Dxe,cpus:()=>Pu0,default:()=>Gu0,endianness:()=>Tu0,freemem:()=>Nu0,getNetworkInterfaces:()=>ju0,hostname:()=>Ou0,loadavg:()=>Iu0,networkInterfaces:()=>Ru0,platform:()=>Lxe,release:()=>Lu0,tmpDir:()=>wj,tmpdir:()=>Ej,totalmem:()=>Cu0,type:()=>Du0,uptime:()=>Au0});function Tu0(){if(typeof N_>"u"){var V0=new ArrayBuffer(2),z0=new Uint8Array(V0),xr=new Uint16Array(V0);if(z0[0]=1,z0[1]=2,xr[0]===258)N_="BE";else if(xr[0]===513)N_="LE";else throw new Error("unable to figure out endianess")}return N_}function Ou0(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function Iu0(){return[]}function Au0(){return 0}function Nu0(){return Number.MAX_VALUE}function Cu0(){return Number.MAX_VALUE}function Pu0(){return[]}function Du0(){return"Browser"}function Lu0(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function Ru0(){}function ju0(){}function Dxe(){return"javascript"}function Lxe(){return"browser"}function wj(){return"/tmp"}var N_,Ej,Sj,Gu0,Rxe=C_({"node-modules-polyfills:os"(){Pt(),Ej=wj,Sj=` +`,Gu0={EOL:Sj,tmpdir:Ej,tmpDir:wj,networkInterfaces:Ru0,getNetworkInterfaces:ju0,release:Lu0,type:Du0,cpus:Pu0,totalmem:Cu0,freemem:Nu0,uptime:Au0,loadavg:Iu0,hostname:Ou0,endianness:Tu0}}}),jxe=Wt({"node-modules-polyfills-commonjs:os"(V0,z0){Pt();var xr=(Rxe(),eU(Fu0));if(xr&&xr.default){z0.exports=xr.default;for(let Fr in xr)z0.exports[Fr]=xr[Fr]}else xr&&(z0.exports=xr)}}),Gxe=Wt({"node_modules/detect-newline/index.js"(V0,z0){"use strict";Pt();var xr=Fr=>{if(typeof Fr!="string")throw new TypeError("Expected a string");let we=Fr.match(/(?:\r?\n)/g)||[];if(we.length===0)return;let Ke=we.filter(Ve=>Ve===`\r +`).length,Ne=we.length-Ke;return Ke>Ne?`\r +`:` +`};z0.exports=xr,z0.exports.graceful=Fr=>typeof Fr=="string"&&xr(Fr)||` +`}}),Mxe=Wt({"node_modules/jest-docblock/build/index.js"(V0){"use strict";Pt(),Object.defineProperty(V0,"__esModule",{value:!0}),V0.extract=Ht,V0.parse=Jt,V0.parseWithComments=Zi,V0.print=Ln,V0.strip=vn;function z0(){let fn=jxe();return z0=function(){return fn},fn}function xr(){let fn=Fr(Gxe());return xr=function(){return fn},fn}function Fr(fn){return fn&&fn.__esModule?fn:{default:fn}}var we=/\*\/$/,Ke=/^\/\*\*/,Ne=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Ve=/(^|\s+)\/\/([^\r\n]*)/g,Qe=/^(\r?\n)+/,Bn=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,zn=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,qn=/(\r?\n|^) *\* ?/g,ft=[];function Ht(fn){let Xt=fn.match(Ne);return Xt?Xt[0].trimLeft():""}function vn(fn){let Xt=fn.match(Ne);return Xt&&Xt[0]?fn.substring(Xt[0].length):fn}function Jt(fn){return Zi(fn).pragmas}function Zi(fn){let Xt=(0,xr().default)(fn)||z0().EOL;fn=fn.replace(Ke,"").replace(we,"").replace(qn,"$1");let S7="";for(;S7!==fn;)S7=fn,fn=fn.replace(Bn,"".concat(Xt,"$1 $2").concat(Xt));fn=fn.replace(Qe,"").trimRight();let Dt=Object.create(null),ks=fn.replace(zn,"").replace(Qe,"").trimRight(),In;for(;In=zn.exec(fn);){let Wc=In[2].replace(Ve,"");typeof Dt[In[1]]=="string"||Array.isArray(Dt[In[1]])?Dt[In[1]]=ft.concat(Dt[In[1]],Wc):Dt[In[1]]=Wc}return{comments:ks,pragmas:Dt}}function Ln(fn){let{comments:Xt="",pragmas:S7={}}=fn,Dt=(0,xr().default)(Xt)||z0().EOL,ks="/**",In=" *",Wc=" */",Ai=Object.keys(S7),li=Ai.map(g7=>Tn(g7,S7[g7])).reduce((g7,av)=>g7.concat(av),[]).map(g7=>In+" "+g7+Dt).join("");if(!Xt){if(Ai.length===0)return"";if(Ai.length===1&&!Array.isArray(S7[Ai[0]])){let g7=S7[Ai[0]];return"".concat(ks," ").concat(Tn(Ai[0],g7)[0]).concat(Wc)}}let jt=Xt.split(Dt).map(g7=>"".concat(In," ").concat(g7)).join(Dt)+Dt;return ks+Dt+(Xt?jt:"")+(Xt&&Ai.length?In+Dt:"")+li+Wc}function Tn(fn,Xt){return ft.concat(Xt).map(S7=>"@".concat(fn," ").concat(S7).trim())}}}),Bxe=Wt({"src/common/end-of-line.js"(V0,z0){"use strict";Pt();function xr(Ne){let Ve=Ne.indexOf("\r");return Ve>=0?Ne.charAt(Ve+1)===` +`?"crlf":"cr":"lf"}function Fr(Ne){switch(Ne){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function we(Ne,Ve){let Qe;switch(Ve){case` +`:Qe=/\n/g;break;case"\r":Qe=/\r/g;break;case`\r +`:Qe=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(Ve),"."))}let Bn=Ne.match(Qe);return Bn?Bn.length:0}function Ke(Ne){return Ne.replace(/\r\n?/g,` +`)}z0.exports={guessEndOfLine:xr,convertEndOfLineToChars:Fr,countEndOfLineChars:we,normalizeEndOfLine:Ke}}}),qxe=Wt({"src/language-js/utils/get-shebang.js"(V0,z0){"use strict";Pt();function xr(Fr){if(!Fr.startsWith("#!"))return"";let we=Fr.indexOf(` +`);return we===-1?Fr:Fr.slice(0,we)}z0.exports=xr}}),Uxe=Wt({"src/language-js/pragma.js"(V0,z0){"use strict";Pt();var{parseWithComments:xr,strip:Fr,extract:we,print:Ke}=Mxe(),{normalizeEndOfLine:Ne}=Bxe(),Ve=qxe();function Qe(qn){let ft=Ve(qn);ft&&(qn=qn.slice(ft.length+1));let Ht=we(qn),{pragmas:vn,comments:Jt}=xr(Ht);return{shebang:ft,text:qn,pragmas:vn,comments:Jt}}function Bn(qn){let ft=Object.keys(Qe(qn).pragmas);return ft.includes("prettier")||ft.includes("format")}function zn(qn){let{shebang:ft,text:Ht,pragmas:vn,comments:Jt}=Qe(qn),Zi=Fr(Ht),Ln=Ke({pragmas:Object.assign({format:""},vn),comments:Jt.trimStart()});return(ft?"".concat(ft,` +`):"")+Ne(Ln)+(Zi.startsWith(` +`)?` +`:` + +`)+Zi}z0.exports={hasPragma:Bn,insertPragma:zn}}}),Hxe=Wt({"src/utils/is-non-empty-array.js"(V0,z0){"use strict";Pt();function xr(Fr){return Array.isArray(Fr)&&Fr.length>0}z0.exports=xr}}),Mu0=Wt({"src/language-js/loc.js"(V0,z0){"use strict";Pt();var xr=Hxe();function Fr(Qe,Bn){let{ignoreDecorators:zn}=Bn||{};if(!zn){let qn=Qe.declaration&&Qe.declaration.decorators||Qe.decorators;if(xr(qn))return Fr(qn[0])}return Qe.range?Qe.range[0]:Qe.start}function we(Qe){return Qe.range?Qe.range[1]:Qe.end}function Ke(Qe,Bn){let zn=Fr(Qe);return Number.isInteger(zn)&&zn===Fr(Bn)}function Ne(Qe,Bn){let zn=we(Qe);return Number.isInteger(zn)&&zn===we(Bn)}function Ve(Qe,Bn){return Ke(Qe,Bn)&&Ne(Qe,Bn)}z0.exports={locStart:Fr,locEnd:we,hasSameLocStart:Ke,hasSameLoc:Ve}}}),Xxe=Wt({"src/language-js/parse/utils/create-parser.js"(V0,z0){"use strict";Pt();var{hasPragma:xr}=Uxe(),{locStart:Fr,locEnd:we}=Mu0();function Ke(Ne){return Ne=typeof Ne=="function"?{parse:Ne}:Ne,Object.assign({astFormat:"estree",hasPragma:xr,locStart:Fr,locEnd:we},Ne)}z0.exports=Ke}}),Yxe=Wt({"src/language-js/parse/utils/replace-hashbang.js"(V0,z0){"use strict";Pt();function xr(Fr){return Fr.charAt(0)==="#"&&Fr.charAt(1)==="!"?"//"+Fr.slice(2):Fr}z0.exports=xr}}),Vxe=Wt({"src/language-js/utils/is-ts-keyword-type.js"(V0,z0){"use strict";Pt();function xr(Fr){let{type:we}=Fr;return we.startsWith("TS")&&we.endsWith("Keyword")}z0.exports=xr}}),zxe=Wt({"src/language-js/utils/is-block-comment.js"(V0,z0){"use strict";Pt();var xr=new Set(["Block","CommentBlock","MultiLine"]),Fr=we=>xr.has(we==null?void 0:we.type);z0.exports=Fr}}),Kxe=Wt({"src/language-js/utils/is-type-cast-comment.js"(V0,z0){"use strict";Pt();var xr=zxe();function Fr(we){return xr(we)&&we.value[0]==="*"&&/@type\b/.test(we.value)}z0.exports=Fr}}),Wxe=Wt({"src/utils/get-last.js"(V0,z0){"use strict";Pt();var xr=Fr=>Fr[Fr.length-1];z0.exports=xr}}),Bu0=Wt({"src/language-js/parse/postprocess/visit-node.js"(V0,z0){"use strict";Pt();function xr(Fr,we){if(Array.isArray(Fr)){for(let Ke=0;Ke{let Ht=Bn.get(ft);return!Ht||!qn.includes(Ht)}))&&Fr(Qe,"Leading decorators must be attached to a class declaration")}function Ke(Ve,Qe){Ve.kind!==167||Ve.modifiers&&!Ve.modifiers.some(qn=>qn.kind===126)||Ve.initializer&&Qe.value===null&&Fr(Qe,"Abstract property cannot have an initializer")}function Ne(Ve,Qe){let{esTreeNodeToTSNodeMap:Bn,tsNodeToESTreeNodeMap:zn}=Qe.tsParseResult;xr(Ve,qn=>{let ft=Bn.get(qn);if(!ft)return;let Ht=zn.get(ft);Ht===qn&&(we(ft,Ht,zn),Ke(ft,Ht))})}z0.exports={throwErrorForInvalidNodes:Ne}}}),$xe=Wt({"src/language-js/parse/postprocess/index.js"(V0,z0){"use strict";Pt();var{locStart:xr,locEnd:Fr}=Mu0(),we=Vxe(),Ke=Kxe(),Ne=Wxe(),Ve=Bu0(),{throwErrorForInvalidNodes:Qe}=Jxe(),Bn=qu0();function zn(vn,Jt){if(Jt.parser==="typescript"&&/@|abstract/.test(Jt.originalText)&&Qe(vn,Jt),Jt.parser!=="typescript"&&Jt.parser!=="flow"&&Jt.parser!=="acorn"&&Jt.parser!=="espree"&&Jt.parser!=="meriyah"){let Ln=new Set;vn=Ve(vn,Tn=>{Tn.leadingComments&&Tn.leadingComments.some(Ke)&&Ln.add(xr(Tn))}),vn=Ve(vn,Tn=>{if(Tn.type==="ParenthesizedExpression"){let{expression:fn}=Tn;if(fn.type==="TypeCastExpression")return fn.range=Tn.range,fn;let Xt=xr(Tn);if(!Ln.has(Xt))return fn.extra=Object.assign(Object.assign({},fn.extra),{},{parenthesized:!0}),fn}})}return vn=Ve(vn,Ln=>{switch(Ln.type){case"ChainExpression":return qn(Ln.expression);case"LogicalExpression":{if(ft(Ln))return Ht(Ln);break}case"VariableDeclaration":{let Tn=Ne(Ln.declarations);Tn&&Tn.init&&Zi(Ln,Tn);break}case"TSParenthesizedType":return we(Ln.typeAnnotation)||Ln.typeAnnotation.type==="TSThisType"||(Ln.typeAnnotation.range=[xr(Ln),Fr(Ln)]),Ln.typeAnnotation;case"TSTypeParameter":if(typeof Ln.name=="string"){let Tn=xr(Ln);Ln.name={type:"Identifier",name:Ln.name,range:[Tn,Tn+Ln.name.length]}}break;case"ObjectExpression":if(Jt.parser==="typescript"){let Tn=Ln.properties.find(fn=>fn.type==="Property"&&fn.value.type==="TSEmptyBodyFunctionExpression");Tn&&Bn(Tn.value,"Unexpected token.")}break;case"SequenceExpression":{let Tn=Ne(Ln.expressions);Ln.range=[xr(Ln),Math.min(Fr(Tn),Fr(Ln))];break}case"TopicReference":Jt.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:Tn}=Ln;if(Jt.parser==="meriyah"&&Tn&&Tn.type==="Identifier"){let fn=Jt.originalText.slice(xr(Tn),Fr(Tn));(fn.startsWith('"')||fn.startsWith("'"))&&(Ln.exported=Object.assign(Object.assign({},Ln.exported),{},{type:"Literal",value:Ln.exported.name,raw:fn}))}break}}}),vn;function Zi(Ln,Tn){Jt.originalText[Fr(Tn)]!==";"&&(Ln.range=[xr(Ln),Fr(Tn)])}}function qn(vn){switch(vn.type){case"CallExpression":vn.type="OptionalCallExpression",vn.callee=qn(vn.callee);break;case"MemberExpression":vn.type="OptionalMemberExpression",vn.object=qn(vn.object);break;case"TSNonNullExpression":vn.expression=qn(vn.expression);break}return vn}function ft(vn){return vn.type==="LogicalExpression"&&vn.right.type==="LogicalExpression"&&vn.operator===vn.right.operator}function Ht(vn){return ft(vn)?Ht({type:"LogicalExpression",operator:vn.operator,left:Ht({type:"LogicalExpression",operator:vn.operator,left:vn.left,right:vn.right.left,range:[xr(vn.left),Fr(vn.right.left)]}),right:vn.right.right,range:[xr(vn),Fr(vn)]}):vn}z0.exports=zn}}),Uu0={};rU(Uu0,{default:()=>Hu0});var Hu0,Zxe=C_({"node-modules-polyfills:fs"(){Pt(),Hu0={}}}),kj=Wt({"node-modules-polyfills-commonjs:fs"(V0,z0){Pt();var xr=(Zxe(),eU(Uu0));if(xr&&xr.default){z0.exports=xr.default;for(let Fr in xr)z0.exports[Fr]=xr[Fr]}else xr&&(z0.exports=xr)}}),Xu0={};rU(Xu0,{ALPN_ENABLED:()=>Pq,COPYFILE_EXCL:()=>CB,COPYFILE_FICLONE:()=>DB,COPYFILE_FICLONE_FORCE:()=>RB,DH_CHECK_P_NOT_PRIME:()=>Aq,DH_CHECK_P_NOT_SAFE_PRIME:()=>Iq,DH_NOT_SUITABLE_GENERATOR:()=>Cq,DH_UNABLE_TO_CHECK_GENERATOR:()=>Nq,E2BIG:()=>Ij,EACCES:()=>Aj,EADDRINUSE:()=>Nj,EADDRNOTAVAIL:()=>Cj,EAFNOSUPPORT:()=>Pj,EAGAIN:()=>Dj,EALREADY:()=>Lj,EBADF:()=>Rj,EBADMSG:()=>jj,EBUSY:()=>Gj,ECANCELED:()=>Mj,ECHILD:()=>Bj,ECONNABORTED:()=>qj,ECONNREFUSED:()=>Uj,ECONNRESET:()=>Hj,EDEADLK:()=>Xj,EDESTADDRREQ:()=>Yj,EDOM:()=>Vj,EDQUOT:()=>zj,EEXIST:()=>Kj,EFAULT:()=>Wj,EFBIG:()=>Jj,EHOSTUNREACH:()=>$j,EIDRM:()=>Zj,EILSEQ:()=>Qj,EINPROGRESS:()=>rG,EINTR:()=>eG,EINVAL:()=>nG,EIO:()=>tG,EISCONN:()=>uG,EISDIR:()=>iG,ELOOP:()=>fG,EMFILE:()=>xG,EMLINK:()=>oG,EMSGSIZE:()=>aG,EMULTIHOP:()=>cG,ENAMETOOLONG:()=>sG,ENETDOWN:()=>vG,ENETRESET:()=>lG,ENETUNREACH:()=>bG,ENFILE:()=>pG,ENGINE_METHOD_ALL:()=>Tq,ENGINE_METHOD_CIPHERS:()=>Eq,ENGINE_METHOD_DH:()=>dq,ENGINE_METHOD_DIGESTS:()=>Sq,ENGINE_METHOD_DSA:()=>hq,ENGINE_METHOD_EC:()=>wq,ENGINE_METHOD_NONE:()=>Oq,ENGINE_METHOD_PKEY_ASN1_METHS:()=>Fq,ENGINE_METHOD_PKEY_METHS:()=>gq,ENGINE_METHOD_RAND:()=>kq,ENGINE_METHOD_RSA:()=>yq,ENOBUFS:()=>mG,ENODATA:()=>_G,ENODEV:()=>yG,ENOENT:()=>hG,ENOEXEC:()=>dG,ENOLCK:()=>kG,ENOLINK:()=>wG,ENOMEM:()=>EG,ENOMSG:()=>SG,ENOPROTOOPT:()=>gG,ENOSPC:()=>FG,ENOSR:()=>TG,ENOSTR:()=>OG,ENOSYS:()=>IG,ENOTCONN:()=>AG,ENOTDIR:()=>NG,ENOTEMPTY:()=>CG,ENOTSOCK:()=>PG,ENOTSUP:()=>DG,ENOTTY:()=>LG,ENXIO:()=>RG,EOPNOTSUPP:()=>jG,EOVERFLOW:()=>GG,EPERM:()=>MG,EPIPE:()=>BG,EPROTO:()=>qG,EPROTONOSUPPORT:()=>UG,EPROTOTYPE:()=>HG,ERANGE:()=>XG,EROFS:()=>YG,ESPIPE:()=>VG,ESRCH:()=>zG,ESTALE:()=>KG,ETIME:()=>WG,ETIMEDOUT:()=>JG,ETXTBSY:()=>$G,EWOULDBLOCK:()=>ZG,EXDEV:()=>QG,F_OK:()=>TB,OPENSSL_VERSION_NUMBER:()=>jB,O_APPEND:()=>oB,O_CREAT:()=>uB,O_DIRECTORY:()=>aB,O_DSYNC:()=>vB,O_EXCL:()=>iB,O_NOCTTY:()=>fB,O_NOFOLLOW:()=>cB,O_NONBLOCK:()=>bB,O_RDONLY:()=>MM,O_RDWR:()=>qM,O_SYMLINK:()=>lB,O_SYNC:()=>sB,O_TRUNC:()=>xB,O_WRONLY:()=>BM,POINT_CONVERSION_COMPRESSED:()=>Kq,POINT_CONVERSION_HYBRID:()=>Jq,POINT_CONVERSION_UNCOMPRESSED:()=>Wq,PRIORITY_ABOVE_NORMAL:()=>tM,PRIORITY_BELOW_NORMAL:()=>eM,PRIORITY_HIGH:()=>uM,PRIORITY_HIGHEST:()=>iM,PRIORITY_LOW:()=>rM,PRIORITY_NORMAL:()=>nM,RSA_NO_PADDING:()=>Rq,RSA_PKCS1_OAEP_PADDING:()=>jq,RSA_PKCS1_PADDING:()=>Dq,RSA_PKCS1_PSS_PADDING:()=>Mq,RSA_PSS_SALTLEN_AUTO:()=>Uq,RSA_PSS_SALTLEN_DIGEST:()=>Bq,RSA_PSS_SALTLEN_MAX_SIGN:()=>qq,RSA_SSLV23_PADDING:()=>Lq,RSA_X931_PADDING:()=>Gq,RTLD_GLOBAL:()=>Tj,RTLD_LAZY:()=>gj,RTLD_LOCAL:()=>Oj,RTLD_NOW:()=>Fj,R_OK:()=>OB,SIGABRT:()=>sM,SIGALRM:()=>dM,SIGBUS:()=>lM,SIGCHLD:()=>wM,SIGCONT:()=>EM,SIGFPE:()=>bM,SIGHUP:()=>fM,SIGILL:()=>aM,SIGINFO:()=>LM,SIGINT:()=>xM,SIGIO:()=>DM,SIGIOT:()=>vM,SIGKILL:()=>pM,SIGPIPE:()=>hM,SIGPROF:()=>CM,SIGQUIT:()=>oM,SIGSEGV:()=>_M,SIGSTOP:()=>SM,SIGSYS:()=>RM,SIGTERM:()=>kM,SIGTRAP:()=>cM,SIGTSTP:()=>gM,SIGTTIN:()=>FM,SIGTTOU:()=>TM,SIGURG:()=>OM,SIGUSR1:()=>mM,SIGUSR2:()=>yM,SIGVTALRM:()=>NM,SIGWINCH:()=>PM,SIGXCPU:()=>IM,SIGXFSZ:()=>AM,SSL_OP_ALL:()=>GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:()=>MB,SSL_OP_CIPHER_SERVER_PREFERENCE:()=>BB,SSL_OP_CISCO_ANYCONNECT:()=>qB,SSL_OP_COOKIE_EXCHANGE:()=>UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:()=>HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:()=>XB,SSL_OP_EPHEMERAL_RSA:()=>YB,SSL_OP_LEGACY_SERVER_CONNECT:()=>VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:()=>zB,SSL_OP_MICROSOFT_SESS_ID_BUG:()=>KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:()=>WB,SSL_OP_NETSCAPE_CA_DN_BUG:()=>JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:()=>$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:()=>ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:()=>QB,SSL_OP_NO_COMPRESSION:()=>rq,SSL_OP_NO_QUERY_MTU:()=>eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:()=>nq,SSL_OP_NO_SSLv2:()=>tq,SSL_OP_NO_SSLv3:()=>uq,SSL_OP_NO_TICKET:()=>iq,SSL_OP_NO_TLSv1:()=>fq,SSL_OP_NO_TLSv1_1:()=>xq,SSL_OP_NO_TLSv1_2:()=>oq,SSL_OP_PKCS1_CHECK_1:()=>aq,SSL_OP_PKCS1_CHECK_2:()=>cq,SSL_OP_SINGLE_DH_USE:()=>sq,SSL_OP_SINGLE_ECDH_USE:()=>vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:()=>lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:()=>bq,SSL_OP_TLS_BLOCK_PADDING_BUG:()=>pq,SSL_OP_TLS_D5_BUG:()=>mq,SSL_OP_TLS_ROLLBACK_BUG:()=>_q,S_IFBLK:()=>rB,S_IFCHR:()=>QM,S_IFDIR:()=>ZM,S_IFIFO:()=>eB,S_IFLNK:()=>nB,S_IFMT:()=>JM,S_IFREG:()=>$M,S_IFSOCK:()=>tB,S_IRGRP:()=>dB,S_IROTH:()=>SB,S_IRUSR:()=>mB,S_IRWXG:()=>hB,S_IRWXO:()=>EB,S_IRWXU:()=>pB,S_IWGRP:()=>kB,S_IWOTH:()=>gB,S_IWUSR:()=>_B,S_IXGRP:()=>wB,S_IXOTH:()=>FB,S_IXUSR:()=>yB,TLS1_1_VERSION:()=>Yq,TLS1_2_VERSION:()=>Vq,TLS1_3_VERSION:()=>zq,TLS1_VERSION:()=>Xq,UV_DIRENT_BLOCK:()=>WM,UV_DIRENT_CHAR:()=>KM,UV_DIRENT_DIR:()=>XM,UV_DIRENT_FIFO:()=>VM,UV_DIRENT_FILE:()=>HM,UV_DIRENT_LINK:()=>YM,UV_DIRENT_SOCKET:()=>zM,UV_DIRENT_UNKNOWN:()=>UM,UV_FS_COPYFILE_EXCL:()=>NB,UV_FS_COPYFILE_FICLONE:()=>PB,UV_FS_COPYFILE_FICLONE_FORCE:()=>LB,UV_FS_SYMLINK_DIR:()=>jM,UV_FS_SYMLINK_JUNCTION:()=>GM,W_OK:()=>IB,X_OK:()=>AB,default:()=>Yu0,defaultCipherList:()=>$q,defaultCoreCipherList:()=>Hq});var gj,Fj,Tj,Oj,Ij,Aj,Nj,Cj,Pj,Dj,Lj,Rj,jj,Gj,Mj,Bj,qj,Uj,Hj,Xj,Yj,Vj,zj,Kj,Wj,Jj,$j,Zj,Qj,rG,eG,nG,tG,uG,iG,fG,xG,oG,aG,cG,sG,vG,lG,bG,pG,mG,_G,yG,hG,dG,kG,wG,EG,SG,gG,FG,TG,OG,IG,AG,NG,CG,PG,DG,LG,RG,jG,GG,MG,BG,qG,UG,HG,XG,YG,VG,zG,KG,WG,JG,$G,ZG,QG,rM,eM,nM,tM,uM,iM,fM,xM,oM,aM,cM,sM,vM,lM,bM,pM,mM,_M,yM,hM,dM,kM,wM,EM,SM,gM,FM,TM,OM,IM,AM,NM,CM,PM,DM,LM,RM,jM,GM,MM,BM,qM,UM,HM,XM,YM,VM,zM,KM,WM,JM,$M,ZM,QM,rB,eB,nB,tB,uB,iB,fB,xB,oB,aB,cB,sB,vB,lB,bB,pB,mB,_B,yB,hB,dB,kB,wB,EB,SB,gB,FB,TB,OB,IB,AB,NB,CB,PB,DB,LB,RB,jB,GB,MB,BB,qB,UB,HB,XB,YB,VB,zB,KB,WB,JB,$B,ZB,QB,rq,eq,nq,tq,uq,iq,fq,xq,oq,aq,cq,sq,vq,lq,bq,pq,mq,_q,yq,hq,dq,kq,wq,Eq,Sq,gq,Fq,Tq,Oq,Iq,Aq,Nq,Cq,Pq,Dq,Lq,Rq,jq,Gq,Mq,Bq,qq,Uq,Hq,Xq,Yq,Vq,zq,Kq,Wq,Jq,$q,Yu0,Qxe=C_({"node-modules-polyfills:constants"(){Pt(),gj=1,Fj=2,Tj=8,Oj=4,Ij=7,Aj=13,Nj=48,Cj=49,Pj=47,Dj=35,Lj=37,Rj=9,jj=94,Gj=16,Mj=89,Bj=10,qj=53,Uj=61,Hj=54,Xj=11,Yj=39,Vj=33,zj=69,Kj=17,Wj=14,Jj=27,$j=65,Zj=90,Qj=92,rG=36,eG=4,nG=22,tG=5,uG=56,iG=21,fG=62,xG=24,oG=31,aG=40,cG=95,sG=63,vG=50,lG=52,bG=51,pG=23,mG=55,_G=96,yG=19,hG=2,dG=8,kG=77,wG=97,EG=12,SG=91,gG=42,FG=28,TG=98,OG=99,IG=78,AG=57,NG=20,CG=66,PG=38,DG=45,LG=25,RG=6,jG=102,GG=84,MG=1,BG=32,qG=100,UG=43,HG=41,XG=34,YG=30,VG=29,zG=3,KG=70,WG=101,JG=60,$G=26,ZG=35,QG=18,rM=19,eM=10,nM=0,tM=-7,uM=-14,iM=-20,fM=1,xM=2,oM=3,aM=4,cM=5,sM=6,vM=6,lM=10,bM=8,pM=9,mM=30,_M=11,yM=31,hM=13,dM=14,kM=15,wM=20,EM=19,SM=17,gM=18,FM=21,TM=22,OM=16,IM=24,AM=25,NM=26,CM=27,PM=28,DM=23,LM=29,RM=12,jM=1,GM=2,MM=0,BM=1,qM=2,UM=0,HM=1,XM=2,YM=3,VM=4,zM=5,KM=6,WM=7,JM=61440,$M=32768,ZM=16384,QM=8192,rB=24576,eB=4096,nB=40960,tB=49152,uB=512,iB=2048,fB=131072,xB=1024,oB=8,aB=1048576,cB=256,sB=128,vB=4194304,lB=2097152,bB=4,pB=448,mB=256,_B=128,yB=64,hB=56,dB=32,kB=16,wB=8,EB=7,SB=4,gB=2,FB=1,TB=0,OB=4,IB=2,AB=1,NB=1,CB=1,PB=2,DB=2,LB=4,RB=4,jB=269488175,GB=2147485780,MB=262144,BB=4194304,qB=32768,UB=8192,HB=2147483648,XB=2048,YB=0,VB=4,zB=0,KB=0,WB=0,JB=0,$B=0,ZB=0,QB=0,rq=131072,eq=4096,nq=65536,tq=0,uq=33554432,iq=16384,fq=67108864,xq=268435456,oq=134217728,aq=0,cq=0,sq=0,vq=0,lq=0,bq=0,pq=0,mq=0,_q=8388608,yq=1,hq=2,dq=4,kq=8,wq=2048,Eq=64,Sq=128,gq=512,Fq=1024,Tq=65535,Oq=0,Iq=2,Aq=1,Nq=4,Cq=8,Pq=1,Dq=1,Lq=2,Rq=3,jq=4,Gq=5,Mq=6,Bq=-1,qq=-2,Uq=-2,Hq="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA",Xq=769,Yq=770,Vq=771,zq=772,Kq=2,Wq=4,Jq=6,$q="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA",Yu0={RTLD_LAZY:gj,RTLD_NOW:Fj,RTLD_GLOBAL:Tj,RTLD_LOCAL:Oj,E2BIG:Ij,EACCES:Aj,EADDRINUSE:Nj,EADDRNOTAVAIL:Cj,EAFNOSUPPORT:Pj,EAGAIN:Dj,EALREADY:Lj,EBADF:Rj,EBADMSG:jj,EBUSY:Gj,ECANCELED:Mj,ECHILD:Bj,ECONNABORTED:qj,ECONNREFUSED:Uj,ECONNRESET:Hj,EDEADLK:Xj,EDESTADDRREQ:Yj,EDOM:Vj,EDQUOT:zj,EEXIST:Kj,EFAULT:Wj,EFBIG:Jj,EHOSTUNREACH:$j,EIDRM:Zj,EILSEQ:Qj,EINPROGRESS:rG,EINTR:eG,EINVAL:nG,EIO:tG,EISCONN:uG,EISDIR:iG,ELOOP:fG,EMFILE:xG,EMLINK:oG,EMSGSIZE:aG,EMULTIHOP:cG,ENAMETOOLONG:sG,ENETDOWN:vG,ENETRESET:lG,ENETUNREACH:bG,ENFILE:pG,ENOBUFS:mG,ENODATA:_G,ENODEV:yG,ENOENT:hG,ENOEXEC:dG,ENOLCK:kG,ENOLINK:wG,ENOMEM:EG,ENOMSG:SG,ENOPROTOOPT:gG,ENOSPC:FG,ENOSR:TG,ENOSTR:OG,ENOSYS:IG,ENOTCONN:AG,ENOTDIR:NG,ENOTEMPTY:CG,ENOTSOCK:PG,ENOTSUP:DG,ENOTTY:LG,ENXIO:RG,EOPNOTSUPP:jG,EOVERFLOW:GG,EPERM:MG,EPIPE:BG,EPROTO:qG,EPROTONOSUPPORT:UG,EPROTOTYPE:HG,ERANGE:XG,EROFS:YG,ESPIPE:VG,ESRCH:zG,ESTALE:KG,ETIME:WG,ETIMEDOUT:JG,ETXTBSY:$G,EWOULDBLOCK:ZG,EXDEV:QG,PRIORITY_LOW:rM,PRIORITY_BELOW_NORMAL:eM,PRIORITY_NORMAL:nM,PRIORITY_ABOVE_NORMAL:tM,PRIORITY_HIGH:uM,PRIORITY_HIGHEST:iM,SIGHUP:fM,SIGINT:xM,SIGQUIT:oM,SIGILL:aM,SIGTRAP:cM,SIGABRT:sM,SIGIOT:vM,SIGBUS:lM,SIGFPE:bM,SIGKILL:pM,SIGUSR1:mM,SIGSEGV:_M,SIGUSR2:yM,SIGPIPE:hM,SIGALRM:dM,SIGTERM:kM,SIGCHLD:wM,SIGCONT:EM,SIGSTOP:SM,SIGTSTP:gM,SIGTTIN:FM,SIGTTOU:TM,SIGURG:OM,SIGXCPU:IM,SIGXFSZ:AM,SIGVTALRM:NM,SIGPROF:CM,SIGWINCH:PM,SIGIO:DM,SIGINFO:LM,SIGSYS:RM,UV_FS_SYMLINK_DIR:jM,UV_FS_SYMLINK_JUNCTION:GM,O_RDONLY:MM,O_WRONLY:BM,O_RDWR:qM,UV_DIRENT_UNKNOWN:UM,UV_DIRENT_FILE:HM,UV_DIRENT_DIR:XM,UV_DIRENT_LINK:YM,UV_DIRENT_FIFO:VM,UV_DIRENT_SOCKET:zM,UV_DIRENT_CHAR:KM,UV_DIRENT_BLOCK:WM,S_IFMT:JM,S_IFREG:$M,S_IFDIR:ZM,S_IFCHR:QM,S_IFBLK:rB,S_IFIFO:eB,S_IFLNK:nB,S_IFSOCK:tB,O_CREAT:uB,O_EXCL:iB,O_NOCTTY:fB,O_TRUNC:xB,O_APPEND:oB,O_DIRECTORY:aB,O_NOFOLLOW:cB,O_SYNC:sB,O_DSYNC:vB,O_SYMLINK:lB,O_NONBLOCK:bB,S_IRWXU:pB,S_IRUSR:mB,S_IWUSR:_B,S_IXUSR:yB,S_IRWXG:hB,S_IRGRP:dB,S_IWGRP:kB,S_IXGRP:wB,S_IRWXO:EB,S_IROTH:SB,S_IWOTH:gB,S_IXOTH:FB,F_OK:TB,R_OK:OB,W_OK:IB,X_OK:AB,UV_FS_COPYFILE_EXCL:NB,COPYFILE_EXCL:CB,UV_FS_COPYFILE_FICLONE:PB,COPYFILE_FICLONE:DB,UV_FS_COPYFILE_FICLONE_FORCE:LB,COPYFILE_FICLONE_FORCE:RB,OPENSSL_VERSION_NUMBER:jB,SSL_OP_ALL:GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:MB,SSL_OP_CIPHER_SERVER_PREFERENCE:BB,SSL_OP_CISCO_ANYCONNECT:qB,SSL_OP_COOKIE_EXCHANGE:UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:XB,SSL_OP_EPHEMERAL_RSA:YB,SSL_OP_LEGACY_SERVER_CONNECT:VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:zB,SSL_OP_MICROSOFT_SESS_ID_BUG:KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:WB,SSL_OP_NETSCAPE_CA_DN_BUG:JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:QB,SSL_OP_NO_COMPRESSION:rq,SSL_OP_NO_QUERY_MTU:eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:nq,SSL_OP_NO_SSLv2:tq,SSL_OP_NO_SSLv3:uq,SSL_OP_NO_TICKET:iq,SSL_OP_NO_TLSv1:fq,SSL_OP_NO_TLSv1_1:xq,SSL_OP_NO_TLSv1_2:oq,SSL_OP_PKCS1_CHECK_1:aq,SSL_OP_PKCS1_CHECK_2:cq,SSL_OP_SINGLE_DH_USE:sq,SSL_OP_SINGLE_ECDH_USE:vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:bq,SSL_OP_TLS_BLOCK_PADDING_BUG:pq,SSL_OP_TLS_D5_BUG:mq,SSL_OP_TLS_ROLLBACK_BUG:_q,ENGINE_METHOD_RSA:yq,ENGINE_METHOD_DSA:hq,ENGINE_METHOD_DH:dq,ENGINE_METHOD_RAND:kq,ENGINE_METHOD_EC:wq,ENGINE_METHOD_CIPHERS:Eq,ENGINE_METHOD_DIGESTS:Sq,ENGINE_METHOD_PKEY_METHS:gq,ENGINE_METHOD_PKEY_ASN1_METHS:Fq,ENGINE_METHOD_ALL:Tq,ENGINE_METHOD_NONE:Oq,DH_CHECK_P_NOT_SAFE_PRIME:Iq,DH_CHECK_P_NOT_PRIME:Aq,DH_UNABLE_TO_CHECK_GENERATOR:Nq,DH_NOT_SUITABLE_GENERATOR:Cq,ALPN_ENABLED:Pq,RSA_PKCS1_PADDING:Dq,RSA_SSLV23_PADDING:Lq,RSA_NO_PADDING:Rq,RSA_PKCS1_OAEP_PADDING:jq,RSA_X931_PADDING:Gq,RSA_PKCS1_PSS_PADDING:Mq,RSA_PSS_SALTLEN_DIGEST:Bq,RSA_PSS_SALTLEN_MAX_SIGN:qq,RSA_PSS_SALTLEN_AUTO:Uq,defaultCoreCipherList:Hq,TLS1_VERSION:Xq,TLS1_1_VERSION:Yq,TLS1_2_VERSION:Vq,TLS1_3_VERSION:zq,POINT_CONVERSION_COMPRESSED:Kq,POINT_CONVERSION_UNCOMPRESSED:Wq,POINT_CONVERSION_HYBRID:Jq,defaultCipherList:$q}}}),roe=Wt({"node-modules-polyfills-commonjs:constants"(V0,z0){Pt();var xr=(Qxe(),eU(Xu0));if(xr&&xr.default){z0.exports=xr.default;for(let Fr in xr)z0.exports[Fr]=xr[Fr]}else xr&&(z0.exports=xr)}}),eoe=Wt({"node_modules/flow-parser/flow_parser.js"(V0){Pt(),function(z0){"use strict";var xr="member_property_expression",Fr=8483,we=12538,Ke="children",Ne="predicate_expression",Ve="??",Qe="Identifier",Bn=64311,zn=192,qn=11710,ft=122654,Ht=110947,vn=67591,Jt="!",Zi="directive",Ln=163,Tn="block",fn=126553,Xt=12735,S7=68096,Dt="params",ks=93071,In=122,Wc=72767,Ai=181,li="for_statement",jt=128,g7="start",av=43867,nU="_method",P_=70414,cv=">",Qi="catch_body",D_=120121,tU="the end of an expression statement (`;`)",L_=124907,uU=1027,s4=126558,rf="jsx_fragment",R_=42527,j_="decorators",G_=82943,M_=71039,B_=110882,q_=67514,iU=8472,fU="update",U_=12783,H_=12438,X_=12352,Y_=8511,V_=42961,F2="method",v4=120713,ef=8191,nf="function_param",z_=67871,F7="throw",K_=11507,tf="class_extends",W_=43470,uf="object_key_literal",J_=71903,$_=65437,ff="jsx_child",Z_=43311,l4=119995,Q_=67637,b4=68116,ry=66204,ey=65470,xU="<<=",ny="e",ty=67391,p4=11631,m4=69956,sv="tparams",uy=66735,iy=64217,fy=43697,oU="Invalid binary/octal ",xy=-43,oy=43255,_4="do",ay=43301,xf="binding_pattern",cy=120487,of="jsx_attribute_value_literal",y4="package",af="interface_declaration",sy=72750,vy=119892,aU="tail",cU=-53,cf=111,sU=180,ly=119807,by=71959,vU=8206,py=65613,Jc="type",my=55215,_y=-42,sf="export_default_declaration_decl",h4=72970,lU="filtered_out",yy=70416,bU=229,vf="function_this_param",pU="module",d4="try",hy=70143,dy=125183,ky=70412,d0="@])",lf="binary",mU="infinity",k4="private",wy=65500,w4="has_unknown_members",bf="pattern_array_rest_element",_U="Property",ws="implements",Ey=12548,yU=211,pf="if_alternate_statement",Sy=124903,gy=43395,vv="src/parser/type_parser.ml",Fy=66915,E4=126552,Ty=120712,S4=126555,Oy=120596,c7="raw",T7=112,mf="class_declaration",_f="statement",Iy=126624,Ay=71235,yf="meta_property",Ny=44002,Cy=8467,hf="class_property_value",Py=8318,df="optional_call",Dy=43761,$c="kind",kf="class_identifier",Ly=69955,Ry=66378,jy=120512,Gy=68220,Yt=110,My=123583,T2="declare",wf="typeof_member_identifier",Ef="catch_clause",By=11742,qy=70831,g4=8468,Sf="for_in_assignment_pattern",hU=-32,gf="object_",Uy=43262,Hy="mixins",Ff="type_param",dU="visit_trailing_comment",Xy=71839,O2="boolean",Tf="call",kU="expected *",Yy=43010,Vy=241,Nu="expression",I2="column",zy=43595,Ky=43258,Wy=191456,Of="member_type_identifier",A2=117,Jy=43754,F4=126544,wU="Assert_failure",$y=66517,Zy=42964,If="enum_number_member",EU="a string",Qy=65855,rh=119993,eh="opaque",SU=870530776,nh=67711,th=66994,Af="enum_symbol_body",gU=185,FU=219,T4="filter",uh=43615,O4=126560,ih=19903,n1="get",fh=64316,TU=`Fatal error: exception %s +`,I4="exported",OU=">=",Ju="return",A4="members",N4=256,xh=66962,oh=64279,ah=67829,IU="Enum `",AU="&&=",Nf="object_property",ch=67589,Cf="pattern_object_property",Pf="template_literal_element",sh=69551,Ni=127343600,C4=70452,Df="class_element",vh="ENOENT",lh=71131,NU=200,bh=120137,ph=94098,P4=72349,CU=1328,Lf="function_identifier",mh=126543,Rf="jsx_attribute_name",_h=43487,dr="@[<2>{ ",PU="ENOTEMPTY",yh=65908,hh=72191,D4=120513,dh=92909,DU="bound",kh=162,LU=172,L4=120070,jf="enum_number_body",Gf="update_expression",Mf="spread_element",Bf="for_in_left_declaration",R4=64319,N2="%d",wh=12703,j4=11687,RU="@,))@]",Eh=42239,qf="type_cast",Sh=42508,Uf="class_implements_interface",gh=67640,Fh=605857695,jU="Cygwin",GU="buffer.ml",Th=124908,MU="handler",Oh=66207,Ih=66963,G4=11558,BU="-=",Pn=113,Ah=113775,qU="collect_comments",M4=126540,lv="set",Hf="assignment_pattern",Cu="right",Xf="object_key_identifier",B4=120133,Nh="Invalid number ",Ch=42963,q4=12539,Ph=68023,Dh=43798,ti=100,Yf="pattern_literal",Vf="generic_type",UU="*",Lh=42783,Rh=42890,jh=230,U4="else",Gh=70851,Mh=69289,HU="the start of a statement",H4="properties",Bh=43696,qh=110959,zf="declare_function",X4=120597,Kf="object_indexer_property_type",Uh=70492,Hh=2048,C2="arguments",Xr="comments",Xh=43042,Zc=107,Yh=110575,XU=161,Vh=67431,Y4="line",P2="declaration",tu="static",Wf="pattern_identifier",zh=69958,YU="the",Kh="Unix.Unix_error",Wh=43814,Qc="annot",Jh=65786,$h=66303,Zh=64967,Qh=64255,rd=8584,V4=120655,VU="Stack_overflow",ed=43700,Jf="syntax_opt",zU="/static/",$f="comprehension",nd=253,KU="Not_found",WU="+=",JU=235,td=68680,ud=66954,id=64324,fd=72966,$U=174,ZU=-1053382366,xd="rest",Zf="pattern_array_element",Qf="jsx_attribute_value_expression",z4=65595,rx="pattern_array_e",QU=243,od=43711,ad="rmdir",K4="symbol",cd=69926,W4="*dummy method*",sd=43741,O7="typeParameters",D2="const",rH=1026,eH=149,vd=12341,ld=72847,bd=66993,nH=202,Ci="false",Vt=106,pd=120076,md=186,Pi=128,_d=125124,yd="Fatal error: exception ",J4=67593,hd=69297,dd=44031,tH=234,kd=92927,wd=68095,$u=8231,ex="object_key_computed",nx="labeled_statement",tx="function_param_pattern",$4=126590,Ed=65481,Sd=43442,uH="collect_comments_opt",ux="variable_declarator",bv="_",gd="compare: functional value",Fd=67967,pv="computed",ix="object_property_type",_t="id",Td=126562,t1=114,iH="comment_bounds",Od=70853,Id=69247,fx="class_private_field",Ad=42237,Nd=72329,fH="Invalid_argument",Cd=113770,Z4=94031,Pd=120092,xx="declare_class",Dd=67839,Ld=72250,xH="%ni",Rd=92879,oH="prototype",Es="`.",ox=8287,Q4=65344,jd="&",I7="debugger",ax="type_identifier_reference",aH="Internal Error: Found private field in object props",cx="sequence",sx="call_type_args",cH=238,Gd=12348,sH="++",Md=68863,Bd=72001,qd=70084,Ud="label",mv=-45,vx="jsx_opening_attribute",Hd=43583,r8="%F",Xd=43784,Yd=113791,lx="call_arguments",e8=126503,Vd=43743,Zu="0",zd=119967,n8=126538,bx="new_",_v=449540197,Kd=64109,Wd=68466,Jd=177983,Et=248,px="program",Xe="@,]@]",$d=68031,mx="function_type",_x="type_",t8=8484,Zd=67382,Qd=42537,rk=226,ek=66559,nk=42993,tk=64274,u8=71236,uk=120069,ik=72105,fk=126570,xk="object",ok=42959,A7="break",yx="for_of_statement",ak=43695,i8=126551,ck=66955,f8=126520,sk=66499,L2=1024,vk=67455,lk=43018,vH=198,x8=126522,hx="function_declaration",bk=73064,dx="await",pk=92728,mk=70418,_k=68119,kx="function_rest_param",yk=42653,o8=11703,bi="left",a8=70449,hk=184,wx="declare_type_alias",Ex=16777215,c8=70302,lH="/=",bH="|=",dk=55242,kk=126583,wk=124927,Ek=124895,Sk=72959,gk=65497,pH="Invalid legacy octal ",rs="typeof",Fk="explicit_type",Sx="statement_list",Tk=65495,gx="class_method",s8=8526,v8=244,Ok=67861,l8=119994,b8="enum",mH=2147483647,Ik=69762,_H=208,R2="in",Ak=11702,p8=67638,yH=", characters ",Nk=70753,yv="super",Ck=92783,Pk=8304,m8=126504,Fx="import_specifier",Dk=68324,Lk=101589,Rk=67646,Tx="expression_or_spread",jk=74879,Gk=43792,_8=43260,Mk=93052,hH="{",Bk=65574,qk=125258,hv=224,Ox="jsx_element_name_member_expression",j2="instanceof",Uk=69599,Hk=43560,Ix="function_expression",y8=223,Xk=72242,Yk=11498,Vk=126467,zk=73112,dH=140,h8=70107,Kk=13311,Ax="jsx_children",d8=126548,Wk=63743,k8=43471,Nx="jsx_expression",Jk=69864,$k=71998,Zk=72e3,w8=126591,E8=12592,Cx="type_params",Qk=126578,S8=126537,kr="{ ",rw=123627,Px="jsx_spread_attribute",Pe="@,",ew=70161,nw=187,g8=126500,Dx="label_identifier",tw=42606,Lx="number_literal_type",F8=42999,uw=64310,kH=-594953737,iw=122623,T8="hasUnknownMembers",Rx="array",wH="^=",jx="enum_string_member",fw=65536,xw=65615,es="void",ow=65135,Z0=")",EH=138,aw=70002,G2="let",cw=70271,sw="nan",W="@[%s =@ ",vw=194559,lw=110579,Gx="binding_type_identifier",bw=42735,SH=57343,Qu="/",Mx="for_in_statement_lhs",pw=43503,mw=8516,_w=66938,yw="ENOTDIR",gH="TypeParameterInstantiation",hw=69749,dw=65381,kw=83526,dv="number",ww=12447,FH=154,O8=70286,Ew=72160,Sw=43493,TH=206,Bx="enum_member_identifier",I8=70280,M2="function",A8=70162,gw=255,Fw=67702,Tw=66771,Ow=70312,OH="|",Iw=93759,IH="End_of_file",Aw=43709,u1="new",AH="Failure",B2="local",Nw=101631,N8=8489,C8="with",qx="enum_declaration",Cw=218,Pw=70457,P8=8488,Ux="member",D8=64325,Dw=247,Lw=70448,Rw=69967,L8=126535,jw=71934,Hx="import_named_specifier",Gw=65312,Mw=126619,Xx="type_annotation",NH=56320,Bw=131071,qw=120770,Uw=67002,Yx="with_",Vx="statement_fork_point",CH="finalizer",Hw=12320,PH="elements",zx="literal",Xw=68607,Yw=8507,R8="each",DH="Sys_error",Vw=123535,zw=130,Kx="bigint_literal_type",Kw=64829,j8=11727,Ww=120538,Wx="member_private_name",Jx="type_alias",LH="Printexc.handle_uncaught_exception",G8=126556,$x="tagged_template",Zx="pattern_object_property_literal_key",Jw=43881,M8=72192,$w=67826,Zw=124910,Qw=66511,ns="int_of_string",rE=43249,nr="None",RH="FunctionTypeParam",ui="name",eE=70285,s7=103,nE=120744,Qx=12288,ro="intersection_type",tE=11679,B8=11559,jH="callee",uE=71295,iE=70018,fE=11567,xE=42954,GH="*-/",r7="predicate",eo="expression_statement",MH="regexp",oE=65479,BH=132,aE=11389,qu="optional",qH=-602162310,z="@]",cE=120003,sE=72249,UH="Unexpected ",vE=73008,q8="finally",no="toplevel_statement_list",HH="end",lE=178207,XH="&=",bE=70301,YH="%Li",pE=72161,mE=69746,_E=70460,yE=12799,U8=65535,hE="loc",dE=69375,kE=43518,VH=205,wE=65487,to="while_",EE=183983,uo="typeof_expression",SE=-673950933,gE=42559,zH="||",FE=124926,TE=55291,io="jsx_element_name_identifier",fo=8239,H8="mixed",KH=136,OE=-253313196,IE=11734,X8=67827,AE=68287,NE=119976,WH="**",J=" =",Y8=888960333,CE=124902,xo="tuple_type",JH=227,PE=70726,DE=73111,V8=126602,LE=126529,oo="object_property_value_type",N0="%a",$H=", ",ZH="<=",RE=69423,QH=199,z8=11695,jE=12294,K8=11711,GE=67583,rX=710,W8=126584,ME=68295,BE=72703,qE="prefix",eX=-80,J8=69415,UE=11492,q2="class",$8=65575,N7="continue",HE=65663,nX=2047,Z8=68120,XE=71086,YE=19967,Di=782176664,VE=120779,Q8=8486,pi=" ",tX="||=",uX="Undefined_recursive_module",zE=66863,iX="RestElement",r3=126634,KE=66377,WE=74751,ao="jsx_element_name_namespaced",JE=43334,$E=66815,C7="typeAnnotation",ZE=120126,co="array_element",e3=64285,fX=189,xX="**=",Yr="()",QE=8543,so="declare_module",vo="export_batch_specifier",oX="%i",aX=">>>=",rS=68029,cX="importKind",P7="extends",eS=64296,n3=43259,nS=71679,tS=64913,uS=119969,iS=94175,fS=72440,t3=65141,lo="function_",xS=43071,oS=42888,aS=69807,cu="variance",ts=123,bo="import_default_specifier",sX=">>>",cS=43764,mi="pattern",sS=71947,vS=70655,kv="consequent",vX=4096,lS=183,bS=68447,pS=65473,us=255,mS=73648,po="call_type_arg",mo=8238,_S=68899,yS=93026,Ye="@[<2>[",hS=110588,_o="comment",lX=191,yo="switch_case",bX=175,dS=71942,ho="do_while",wv="constructor",kS=43587,wS=43586,Eu="yield",ES=67462,pX="fd ",SS=-61,gS="target",u3=72272,U2="var",mX="impltype",i3=70108,H2="0o",FS=119972,TS=92991,f3=70441,x3=8450,OS=120074,IS=66717,ko="interface_type",o3=43880,An="%B",AS=111355,Ev=5760,NS=11630,a3=126499,CS="of",_X=">>",yX="Popping lex mode from empty stack",c3=120629,is=108,PS=43002,hX="%=",s3=126539,DS=126502,wo="template_literal",LS="src/parser/statement_parser.ml",RS=": Not a directory",dX="b",jS=67461,GS=11519,kX="src/parser/flow_lexer.ml",wX="Out_of_memory",MS=120570,Eo=12287,BS=126534,qS="index out of bounds",US=73029,v3="_bigarr02",l3=126571,EX="))",So="for_statement_init",SX="supertype",go="class_property",b3="}",i1="this",Fo="declare_module_exports",gX="@",To="union_type",Li=65535,Oo="variance_opt",HS=94032,FX=222,XS=42124,Io="this_expression",Ao="jsx_element",TX="typeArguments",YS=65019,VS=125251,zS=64111,KS=8471,No="typeof_qualified_identifier",WS=70497,OX="EnumDefaultedMember",Co=8202,JS=66927,D7="switch",$S=69634,Po="unary_expression",ZS=71215,IX=126,QS=67679,rg=65597,AX=207,eg=120686,p3=72163,ng=67001,tg=42962,ug=64262,X2=124,Do=65279,ig=126495,NX=169,fg=71944,CX=-10,m3="alternate",xg=92975,og=65489,Y2=252,ag=67807,cg=43187,sg=68850,_3="export",vg=66383,PX="===",Lo=".",Ro="type_args",DX=147,lg=92159,LX=240,jo="jsx_element_name",bg=72283,pg=171,f1=116,mg=110587,y3=70279,_g=75075,yg=65338,Go="function_params",hg=126627,RX=213,h3=73065,dg=71352,d3=119970,kg=70005,wg=12295,k3=120771,Eg=71494,Sg=11557,gg=42191,jX="flags",Fg=68437,Tg=70730,Mo="optional_indexed_access",Bo="pattern_object_p",Og=42785,qo="nullable_type",Un="value",Ig=12343,Ag=68415,Ng=11694,GX=221,Cg=11726,Uo="syntax",Pg=119964,MX="&&",Dg=68497,Lg=73097,fs="null",w3=126523,Rg=120084,jg=126601,Gg=8454,Mg="expressions",Bg=72144,V2='"',Zr="(@[",BX=1022,qX=231,qg=170,E3=12448,Ug=68786,S3="<",UX=931,HX="(",XX=196,YX=2048,g3="an identifier",F3=69959,Hg=68799,VX="leadingComments",Xg=72969,Yg=182,Vg=100351,Ho="enum_defaulted_member",zg=69839,Kg=94026,Wg=209,zX=">>=",Jg=131,T3=12336,v7="empty",KX=331416730,WX=204,$g=70479,Zg=69487,Qg=101640,rF=43123,JX="([^/]+)",O3=8319,$X=165,Xo="object_type_property_setter",ZX=909,eF=15,nF=12591,br=125,tF=92735,QX="cases",uF=183969,x1="bigint",rY="Division_by_zero",iF=67071,fF=12329,I3=120004,xF=69414,A3="if",oF=126519,aF="immediately within another function.",cF=55238,sF=126498,eY="qualification",vF=66256,wr="@ }@]",z2=118,N3=11565,C3=120122,Yo="pattern_object_rest_property",lF=74862,P3="'",bF=-26065557,pF=124911,Sv=119,L7=104,Vo="assignment",mF=8457,K2="from",_F=64321,yF=113817,hF=65629,dF=42655,Ri=102,kF=43137,wF=11502,a0=";@ ",R7=101,zo="pattern_array_element_pattern",Zn="body",Ko="jsx_member_expression",EF=65547,Wo="jsx_attribute_value",Jo="jsx_namespaced_name",D3=72967,SF=126550,gv=254,gF=43807,FF=43738,L3=126589,R3=8455,j3=126628,TF=11670,nY="*=",G3=120134,$o="conditional",tY=" : flags Open_text and Open_binary are not compatible",M3=119965,OF=69890,IF=72817,AF=164,NF=43822,B3=69744,uY="\\\\",CF=43638,PF=93047,DF="AssignmentPattern",q3=64322,LF=123190,iY=188,Zo="object_spread_property_type",RF=70783,jF=113663,fY=160,U3=42622,H3=43823,ji="init",Fv=109,GF=66503,X3="proto",MF=74649,Qo="optional_member",BF=40981,qF=120654,v="@ ",ra="enum_boolean_body",ea="export_named_specifier",na="declare_interface",UF=70451,ta="pattern_object_property_computed_key",Y3=-97,V3=120539,z3=64317,HF=12543,ua="export_named_declaration_specifier",XF=43359,K3=126530,W3=72713,YF=113800,xY=195,VF=72367,zF=72103,KF=70278,ia="if_consequent_statement",W2=-85,J3=126496,fa="try_catch",xa="computed_key",oa="class_",WF=173823,aa="pattern_object_property_identifier_key",oY="f",ca="arrow_function",$3=8485,JF=126546,sa="enum_boolean_member",$F=94177,J2="delete",ZF=232,aY="blocks",va="pattern_array_rest_element_pattern",QF=78894,Z3=66512,rT=94111,Tv="string",Ss="test",eT=69572,nT=66463,tT=66335,uT=72348,iT=73061,o1=":",la="enum_body",fT=110590,ba="function_this_param_type",xT=215,oT=77823,cY="minus",sY=201,aT=119980,pa="private_name",ma="object_key",_a="function_param_type",vY="<<",cT=11718,a1="as",lY="delegate",Gi="true",sT=67413,Q3=70854,vT=73439,lT=43776,bT=71723,pT=11505,mT=214,_T=120628,yT=43513,ya="jsx_attribute_name_namespaced",r6=120127,e6="Map.bal",n6="any",bY="@[",pY="camlinternalMod.ml",t6=126559,Uu="import",u6=70404,ha="jsx_spread_child",hT=233,dT=67897,kT=119974,Hu=8233,wT=68405,i6=239,mY="attributes",_Y=173,da="object_internal_slot_property_type",ET=71351,ST=242,gT=67643,f6="shorthand",ka="for_in_statement",FT=126463,TT=71338,OT=69445,IT=65370,AT=73055,NT=167,CT=64911,wa="pattern_object_property_pattern",yY=212,hY=197,x6=126579,PT=64286,DT="explicitType",LT=67669,RT=43866,dY="Sys_blocked_io",o6="catch",jT=123197,GT=64466,MT=65140,BT=73030,qT=69404,a6="protected",kY=8204,UT=67504,HT=193,$2=246,XT=43713,c6=120571,Ea="array_type",wY="%u",Sa="export_default_declaration",ga="class_expression",EY="quasi",zt="%S",YT=8525,s6=126515,VT=120485,v6=43519,l6=120745,b6=94178,zT=126588,Jn=127,KT=66855,SY="@{",gY="visit_leading_comment",WT=67742,FY=" : flags Open_rdonly and Open_wronly are not compatible",JT=120144,p6="returnType",c1=-744106340,s1=240,Fa="-",m6=8469,gs="async",_6=126521,$T=72095,y6=216,TY=" : file already exists",ZT=178205,QT=8449,h6=94179,rO=42774,d6="case",eO=66965,nO=66431,OY=190,Ta="declare_export_declaration",Z2="targs",Oa="type_identifier",tO=64284,uO=43013,k6=43815,Ia="function_body_any",iO=66966,w6=120687,fO=66939,xO=66978,IY=168,E6="public",oO=68115,aO=43712,S6=65598,g6=126547,cO=110591,Aa="indexed_access",AY=12520,e7="interface",NY=`(Program not linked with -g, cannot print stack backtrace) +`,v1=-46,Na="string_literal_type",Ca="import_namespace_specifier",sO=120132,F6=11735,vO=67505,T6=119893,O6="bool",Q2=1e3,_i="default",lO=236,C="",bO="exportKind",CY="trailingComments",I6="^",pO=71983,mO=8348,_O=66977,yO=65594,Pa="logical",Da="jsx_member_expression_identifier",A6=210,PY="cooked",La="for_of_left_declaration",Ov=63,hO=72202,l7="argument",dO=12442,kO=43645,N6=120085,wO=42539,C6=126468,DY=166,LY="Match_failure",EO=68191,Su="src/parser/flow_ast.ml",P6=11647,Ra="declare_variable",xs="+",SO=71127,D6=120145,ja="declare_export_declaration_decl",L6=64318,RY=179,Ga="class_implements",jY="!=",GY="inexact",MY="%li",BY=237,rl="a",R6=73062,gO=178,Ma=65278,Ba="function_rest_param_type",FO=77711,TO=70066,OO=43714,qY=-696510241,j6=70480,IO=69748,AO=113788,NO=94207,UY=`\r +`,qa="class_body",CO=126651,PO=68735,DO=43273,G6=119996,M6=67644,HY=224,Ua="catch_clause_pattern",Ha="boolean_literal_type",B6=126554,q6=126557,LO=113807,U6=126536,XY="%",Iv="property",RO=71956,YY="#",jO=123213,el="meta",Xa="for_of_assignment_pattern",Ya="if_statement",GO=66421,MO=8505,BO=225,nl=250,qO=100343,H6="Literal",UO=42887,Av=115,VY=";",HO=1255,XO="=",YO=126566,VO=93823,Va="opaque_type",zY="!==",za="jsx_attribute",Ka="type_annotation_hint",Mi=32768,zO=73727,KY="range",WY=245,KO="jsError",X6=70006,WO=43492,Y6="@]}",tr="(Some ",JO=8477,JY=129,$O=71487,V6=126564,$Y=` +`,ZO=126514,QO=70080,Wa="generic_identifier_type",rI=66811,Ja="typeof_identifier",ZY="~",eI=65007,$a="pattern_object_rest_property_pattern",nI=194,QY=1039100673,tI=66461,uI=70319,z6=11719,iI=72271,$t=-48,Za="enum_string_body",fI=70461,Qa="export_named_declaration",xI=110930,oI=92862,rV="??=",aI=70440,K6="while",su="camlinternalFormat.ml",cI=43782,eV=203,sI=173791,vI=11263,lI=1114111,bI=42969,W6=70750,rc="jsx_identifier",pI=70105,mI=43014,_I=11564,ec="typeof_type",nV="EEXIST",yI=64847,hI=71167,dI=42511,kI=72712,wI=92995,EI=43704,tl=121,nc="object_call_property_type",SI=64433,ul="operator",J6=68296,tc="class_decorator",uc=120,ic="for_of_statement_lhs",gI=11623,FI=67004,TI=71999,OI=70708,II=512,AI=110927,NI=71423,tV=32752,CI=93951,PI=12292,fc="object_type",$6="types",DI=110580,uV=177,LI=126633,RI=12686,xc=8286,iV=144,jI=73647,fV=228,Z6=70855,l1="0x",GI=70366,MI=` +`,oc="variable_declaration",BI=65276,Q6=119981,qI=71945,UI=43887,j7=105,HI=8335,XI=123565,YI=69505,VI=70187,ac="jsx_attribute_name_identifier",cc="source",sc="pattern_object_property_key",rp=65548,zI=66175,KI=92766,vc="pattern_assignment_pattern",lc="object_type_property_getter",ep=8305,G7="generator",np="for",xV="PropertyDefinition",oV="--",vu=-36,WI="mkdir",JI=68223,bc="generic_qualified_identifier_type",$I=11686,pc="jsx_closing_element",ZI=43790,tp=": No such file or directory",QI=69687,rA=66348,up=72162,eA=43388,nA=72768,tA=68351,h="<2>",ip=64297,uA=125259,iA=220,zr=",@ ",aV="win32",fp=70281,mc="member_property_identifier",fA=68149,xA=68111,oA=71450,aA=43009,_c="member_property",cA=73458,yi="identifier",sA=67423,vA=66775,lA=110951,cV="Internal Error: Found object private prop",yc="super_expression",hc="jsx_opening_element",bA=177976,dc="variable_declarator_pattern",kc="pattern_expression",wc="jsx_member_expression_object",pA=68252,mA=77808,Nv=-835925911,Ec="import_declaration",_A=55203,sV="Pervasives.do_at_exit",vV="utf8",ii="key",yA=43702,Sc="spread_property",xp=126563,hA=863850040,dA=70106,op=67592,gc="function_expression_or_method",kA=71958,Fc="for_init_declaration",wA=71955,ap=123214,EA=68479,lV="==",SA=43019,gA=123180,cp=217,Cv="specifiers",Tc="function_body",FA=69622,sp=8487,TA=43641,bV="Unexpected token `",pV="v",OA=123135,IA=69295,vp=120093,AA=8521,lp=43642,mV=176;function Vu0(t,n,e,i,x){if(i<=n)for(var c=1;c<=x;c++)e[i+c]=t[n+c];else for(var c=x;c>=1;c--)e[i+c]=t[n+c];return 0}function zu0(t){for(var n=[0];t!==0;){for(var e=t[1],i=1;i=e.l||e.t==2&&x>=e.c.length))e.c=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else if(e.t==2&&i==e.c.length)e.c+=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else{e.t!=4&&bp(e);var c=t.c,s=e.c;if(t.t==4)if(i<=n)for(var p=0;p=0;p--)s[i+p]=c[n+p];else{for(var y=Math.min(x,c.length-n),p=0;p>=1,t==0)return e;n+=n,i++,i==9&&n.slice(0,1)}}function Dv(t){t.t==2?t.c+=Pv(t.l-t.c.length,"\0"):t.c=NA(t.c,0,t.c.length),t.t=0}function _V(t){if(t.length<24){for(var n=0;nJn)return!1;return!0}else return!/[^\x00-\x7f]/.test(t)}function CA(t){for(var n=C,e=C,i,x,c,s,p=0,y=t.length;pII?(e.substr(0,1),n+=e,e=C,n+=t.slice(p,T)):e+=t.slice(p,T),T==y)break;p=T}s=1,++p=55295&&s<57344)&&(s=2)):(s=3,++p1114111)&&(s=3)))))),s<4?(p-=s,e+="\uFFFD"):s>Li?e+=String.fromCharCode(55232+(s>>10),NH+(s&1023)):e+=String.fromCharCode(s),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function Oc(t,n,e){this.t=t,this.c=n,this.l=e}Oc.prototype.toString=function(){switch(this.t){case 9:return this.c;default:Dv(this);case 0:if(_V(this.c))return this.t=9,this.c;this.t=8;case 8:return this.c}},Oc.prototype.toUtf16=function(){var t=this.toString();return this.t==9?t:CA(t)},Oc.prototype.slice=function(){var t=this.t==4?this.c.slice():this.c;return new Oc(this.t,t,this.l)};function yV(t){return new Oc(0,t,t.length)}function r(t){return yV(t)}function PA(t,n){Wu0(t,r(n))}var Kt=[0];function lu(t){PA(Kt.Invalid_argument,t)}function hV(){lu(qS)}function Qn(t,n,e){if(e&=us,t.t!=4){if(n==t.c.length)return t.c+=String.fromCharCode(e),n+1==t.l&&(t.t=0),0;bp(t)}return t.c[n]=e,0}function b1(t,n,e){return n>>>0>=t.l&&hV(),Qn(t,n,e)}function Xu(t,n){switch(t.t&6){default:if(n>=t.c.length)return 0;case 0:return t.c.charCodeAt(n);case 4:return t.c[n]}}function os(t,n){if(t.fun)return os(t.fun,n);if(typeof t!="function")return t;var e=t.length|0;if(e===0)return t.apply(null,n);var i=n.length|0,x=e-i|0;return x==0?t.apply(null,n):x<0?os(t.apply(null,n.slice(0,e)),n.slice(e)):function(){for(var c=arguments.length==0?1:arguments.length,s=new Array(n.length+c),p=0;p>>0>=t.length-1&&il(),t}function Ju0(t){return isFinite(t)?Math.abs(t)>=22250738585072014e-324?0:t!=0?1:2:isNaN(t)?4:3}function Ic(t){return(t.t&6)!=0&&Dv(t),t.c}var $u0=Math.log2&&Math.log2(11235582092889474e291)==1020;function Zu0(t){if($u0)return Math.floor(Math.log2(t));var n=0;if(t==0)return-1/0;if(t>=1)for(;t>=2;)t/=2,n++;else for(;t<1;)t*=2,n--;return n}function DA(t){var n=new z0.Float32Array(1);n[0]=t;var e=new z0.Int32Array(n.buffer);return e[0]|0}var dV=Math.pow(2,-24);function kV(t){throw t}function wV(){kV(Kt.Division_by_zero)}function sn(t,n,e){this.lo=t&Ex,this.mi=n&Ex,this.hi=e&Li}sn.prototype.caml_custom="_j",sn.prototype.copy=function(){return new sn(this.lo,this.mi,this.hi)},sn.prototype.ucompare=function(t){return this.hi>t.hi?1:this.hit.mi?1:this.mit.lo?1:this.loe?1:nt.mi?1:this.mit.lo?1:this.lo>24),e=-this.hi+(n>>24);return new sn(t,n,e)},sn.prototype.add=function(t){var n=this.lo+t.lo,e=this.mi+t.mi+(n>>24),i=this.hi+t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.sub=function(t){var n=this.lo-t.lo,e=this.mi-t.mi+(n>>24),i=this.hi-t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.mul=function(t){var n=this.lo*t.lo,e=(n*dV|0)+this.mi*t.lo+this.lo*t.mi,i=(e*dV|0)+this.hi*t.lo+this.mi*t.mi+this.lo*t.hi;return new sn(n,e,i)},sn.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0},sn.prototype.isNeg=function(){return this.hi<<16<0},sn.prototype.and=function(t){return new sn(this.lo&t.lo,this.mi&t.mi,this.hi&t.hi)},sn.prototype.or=function(t){return new sn(this.lo|t.lo,this.mi|t.mi,this.hi|t.hi)},sn.prototype.xor=function(t){return new sn(this.lo^t.lo,this.mi^t.mi,this.hi^t.hi)},sn.prototype.shift_left=function(t){return t=t&63,t==0?this:t<24?new sn(this.lo<>24-t,this.hi<>24-t):t<48?new sn(0,this.lo<>48-t):new sn(0,0,this.lo<>t|this.mi<<24-t,this.mi>>t|this.hi<<24-t,this.hi>>t):t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi>>t-24,0):new sn(this.hi>>t-48,0,0)},sn.prototype.shift_right=function(t){if(t=t&63,t==0)return this;var n=this.hi<<16>>16;if(t<24)return new sn(this.lo>>t|this.mi<<24-t,this.mi>>t|n<<24-t,this.hi<<16>>t>>>16);var e=this.hi<<16>>31;return t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi<<16>>t-24>>16,e&Li):new sn(this.hi<<16>>t-32,e,e)},sn.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&Ex,this.lo=this.lo<<1&Ex},sn.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&Ex,this.mi=(this.mi>>>1|this.hi<<23)&Ex,this.hi=this.hi>>>1},sn.prototype.udivmod=function(t){for(var n=0,e=this.copy(),i=t.copy(),x=new sn(0,0,0);e.ucompare(i)>0;)n++,i.lsl1();for(;n>=0;)n--,x.lsl1(),e.ucompare(i)>=0&&(x.lo++,e=e.sub(i)),i.lsr1();return{quotient:x,modulus:e}},sn.prototype.div=function(t){var n=this;t.isZero()&&wV();var e=n.hi^t.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).quotient;return e&Mi&&(i=i.neg()),i},sn.prototype.mod=function(t){var n=this;t.isZero()&&wV();var e=n.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).modulus;return e&Mi&&(i=i.neg()),i},sn.prototype.toInt=function(){return this.lo|this.mi<<24},sn.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo},sn.prototype.toArray=function(){return[this.hi>>8,this.hi&us,this.mi>>16,this.mi>>8&us,this.mi&us,this.lo>>16,this.lo>>8&us,this.lo&us]},sn.prototype.lo32=function(){return this.lo|(this.mi&us)<<24},sn.prototype.hi32=function(){return this.mi>>>8&Li|this.hi<<16};function pp(t,n,e){return new sn(t,n,e)}function mp(t){if(!isFinite(t))return isNaN(t)?pp(1,0,tV):t>0?pp(0,0,tV):pp(0,0,65520);var n=t==0&&1/t==-1/0?Mi:t>=0?0:Mi;n&&(t=-t);var e=Zu0(t)+1023;e<=0?(e=0,t/=Math.pow(2,-rH)):(t/=Math.pow(2,e-uU),t<16&&(t*=2,e-=1),e==0&&(t/=2));var i=Math.pow(2,24),x=t|0;t=(t-x)*i;var c=t|0;t=(t-c)*i;var s=t|0;return x=x&eF|n|e<<4,pp(s,c,x)}function fl(t){return t.toArray()}function EV(t,n,e){if(t.write(32,n.dims.length),t.write(32,n.kind|n.layout<<8),n.caml_custom==v3)for(var i=0;i>4;if(x==nX)return(n|e|i&eF)==0?i&Mi?-1/0:1/0:NaN;var c=Math.pow(2,-24),s=(n*c+e)*c+(i&eF);return x>0?(s+=16,s*=Math.pow(2,x-uU)):s*=Math.pow(2,-rH),i&Mi&&(s=-s),s}function jA(t){for(var n=t.length,e=1,i=0;i>>24&us|(n&Li)<<8,n>>>16&Li)}function GA(t){return t.hi32()}function MA(t){return t.lo32()}var e70=v3;function Os(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Os.prototype.caml_custom=e70,Os.prototype.offset=function(t){var n=0;if(typeof t=="number"&&(t=[t]),t instanceof Array||lu("bigarray.js: invalid offset"),this.dims.length!=t.length&&lu("Bigarray.get/set: bad number of dimensions"),this.layout==0)for(var e=0;e=this.dims[e])&&il(),n=n*this.dims[e]+t[e];else for(var e=this.dims.length-1;e>=0;e--)(t[e]<1||t[e]>this.dims[e])&&il(),n=n*this.dims[e]+(t[e]-1);return n},Os.prototype.get=function(t){switch(this.kind){case 7:var n=this.data[t*2+0],e=this.data[t*2+1];return r70(n,e);case 10:case 11:var i=this.data[t*2+0],x=this.data[t*2+1];return[gv,i,x];default:return this.data[t]}},Os.prototype.set=function(t,n){switch(this.kind){case 7:this.data[t*2+0]=MA(n),this.data[t*2+1]=GA(n);break;case 10:case 11:this.data[t*2+0]=n[1],this.data[t*2+1]=n[2];break;default:this.data[t]=n;break}return 0},Os.prototype.fill=function(t){switch(this.kind){case 7:var n=MA(t),e=GA(t);if(n==e)this.data.fill(n);else for(var i=0;is)return 1;if(c!=s){if(!n)return NaN;if(c==c)return 1;if(s==s)return-1}}break;case 7:for(var x=0;xt.data[x+1])return 1;if(this.data[x]>>>0>>0)return-1;if(this.data[x]>>>0>t.data[x]>>>0)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(var x=0;xt.data[x])return 1}break}return 0};function Lv(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Lv.prototype=new Os,Lv.prototype.offset=function(t){return typeof t!="number"&&(t instanceof Array&&t.length==1?t=t[0]:lu("Ml_Bigarray_c_1_1.offset")),(t<0||t>=this.dims[0])&&il(),t},Lv.prototype.get=function(t){return this.data[t]},Lv.prototype.set=function(t,n){return this.data[t]=n,0},Lv.prototype.fill=function(t){return this.data.fill(t),0};function gV(t,n,e,i){var x=SV(t);return jA(e)*x!=i.length&&lu("length doesn't match dims"),n==0&&e.length==1&&x==1?new Lv(t,n,e,i):new Os(t,n,e,i)}function n7(t){PA(Kt.Failure,t)}function FV(t,n,e){var i=t.read32s();(i<0||i>16)&&n7("input_value: wrong number of bigarray dimensions");var x=t.read32s(),c=x&us,s=x>>8&1,p=[];if(e==v3)for(var y=0;y>>32-15,n=OV(n,461845907),t^=n,t=t<<13|t>>>32-13,(t+(t<<2)|0)+-430675100|0}function n70(t,n){return t=as(t,MA(n)),t=as(t,GA(n)),t}function IV(t,n){return n70(t,mp(n))}function AV(t){var n=jA(t.dims),e=0;switch(t.kind){case 2:case 3:case 12:n>N4&&(n=N4);var i=0,x=0;for(x=0;x+4<=t.data.length;x+=4)i=t.data[x+0]|t.data[x+1]<<8|t.data[x+2]<<16|t.data[x+3]<<24,e=as(e,i);switch(i=0,n&3){case 3:i=t.data[x+2]<<16;case 2:i|=t.data[x+1]<<8;case 1:i|=t.data[x+0],e=as(e,i)}break;case 4:case 5:n>jt&&(n=jt);var i=0,x=0;for(x=0;x+2<=t.data.length;x+=2)i=t.data[x+0]|t.data[x+1]<<16,e=as(e,i);(n&1)!=0&&(e=as(e,t.data[x]));break;case 6:n>64&&(n=64);for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32),n*=2;for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32);for(var x=0;x0?x(n,t,i):x(t,n,i);if(i&&c!=c)return e;if(+c!=+c)return+c;if((c|0)!=0)return c|0}return e}function _p(t){return t instanceof Oc}function qA(t){return _p(t)}function PV(t){if(typeof t=="number")return Q2;if(_p(t))return Y2;if(qA(t))return 1252;if(t instanceof Array&&t[0]===t[0]>>>0&&t[0]<=gw){var n=t[0]|0;return n==gv?0:n}else{if(t instanceof String)return AY;if(typeof t=="string")return AY;if(t instanceof Number)return Q2;if(t&&t.caml_custom)return HO;if(t&&t.compare)return 1256;if(typeof t=="function")return 1247;if(typeof t=="symbol")return 1251}return 1001}function Ac(t,n){return tn.c?1:0}function Ee(t,n){return DV(t,n)}function yp(t,n,e){for(var i=[];;){if(!(e&&t===n)){var x=PV(t);if(x==nl){t=t[1];continue}var c=PV(n);if(c==nl){n=n[1];continue}if(x!==c)return x==Q2?c==HO?CV(t,n,-1,e):-1:c==Q2?x==HO?CV(n,t,1,e):1:xn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1001:if(tn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1251:if(t!==n)return e?1:NaN;break;case 1252:var t=Ic(t),n=Ic(n);if(t!==n){if(tn)return 1}break;case 12520:var t=t.toString(),n=n.toString();if(t!==n){if(tn)return 1}break;case 246:case 254:default:if(t.length!=n.length)return t.length1&&i.push(t,n,1);break}}if(i.length==0)return 0;var y=i.pop();n=i.pop(),t=i.pop(),y+10)if(n==0&&(e>=t.l||t.t==2&&e>=t.c.length))i==0?(t.c=C,t.t=2):(t.c=Pv(e,String.fromCharCode(i)),t.t=e==t.l?0:2);else for(t.t!=4&&bp(t),e+=n;n0&&n===n||(t=t.replace(/_/g,C),n=+t,t.length>0&&n===n||/^[+-]?nan$/i.test(t)))return n;var e=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)p([+-]?[0-9]+)/i.exec(t);if(e){var i=e[3].replace(/0+$/,C),x=parseInt(e[1]+e[2]+i,16),c=(e[4]|0)-4*i.length;return n=x*Math.pow(2,c),n}if(/^\+?inf(inity)?$/i.test(t))return 1/0;if(/^-inf(inity)?$/i.test(t))return-1/0;n7("float_of_string")}function UA(t){t=Ic(t);var n=t.length;n>31&&lu("format_int: format too long");for(var e={justify:xs,signstyle:Fa,filler:pi,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:oY},i=0;i=0&&x<=9;)e.width=e.width*10+x,i++;i--;break;case".":for(e.prec=0,i++;x=t.charCodeAt(i)-48,x>=0&&x<=9;)e.prec=e.prec*10+x,i++;i--;case"d":case"i":e.signedconv=!0;case"u":e.base=10;break;case"x":e.base=16;break;case"X":e.base=16,e.uppercase=!0;break;case"o":e.base=8;break;case"e":case"f":case"g":e.signedconv=!0,e.conv=x;break;case"E":case"F":case"G":e.signedconv=!0,e.uppercase=!0,e.conv=x.toLowerCase();break}}return e}function HA(t,n){t.uppercase&&(n=n.toUpperCase());var e=n.length;t.signedconv&&(t.sign<0||t.signstyle!=Fa)&&e++,t.alternate&&(t.base==8&&(e+=1),t.base==16&&(e+=2));var i=C;if(t.justify==xs&&t.filler==pi)for(var x=e;x20?(w-=20,E/=Math.pow(10,w),E+=new Array(w+1).join(Zu),d>0&&(E=E+Lo+new Array(d+1).join(Zu)),E):E.toFixed(d)}var i,x=UA(t),c=x.prec<0?6:x.prec;if((n<0||n==0&&1/n==-1/0)&&(x.sign=-1,n=-n),isNaN(n))i=sw,x.filler=pi;else if(!isFinite(n))i="inf",x.filler=pi;else switch(x.conv){case"e":var i=n.toExponential(c),s=i.length;i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break;case"f":i=e(n,c);break;case"g":c=c||1,i=n.toExponential(c-1);var p=i.indexOf(ny),y=+i.slice(p+1);if(y<-4||n>=1e21||n.toFixed(0).length>c){for(var s=p-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)+i.slice(p),s=i.length,i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break}else{var T=c;if(y<0)T-=y+1,i=n.toFixed(T);else for(;i=n.toFixed(T),i.length>c+1;)T--;if(T){for(var s=i.length-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)}}break}return HA(x,i)}function hp(t,n){if(Ic(t)==N2)return r(C+n);var e=UA(t);n<0&&(e.signedconv?(e.sign=-1,n=-n):n>>>=0);var i=n.toString(e.base);if(e.prec>=0){e.filler=pi;var x=e.prec-i.length;x>0&&(i=Pv(x,Zu)+i)}return HA(e,i)}var jV=0;function M7(){return jV++}function s70(){return 0}function GV(){return[0]}var dp=[];function rn(t,n,e){var i=t[1],x=dp[e];if(x===void 0)for(var c=dp.length;c>1|1,nII?(e.substr(0,1),n+=e,e=C,n+=t.slice(c,p)):e+=t.slice(c,p),p==s)break;c=p}i>6),e+=String.fromCharCode(Pi|i&Ov)):i<55296||i>=SH?e+=String.fromCharCode(HY|i>>12,Pi|i>>6&Ov,Pi|i&Ov):i>=56319||c+1==s||(x=t.charCodeAt(c+1))SH?e+="\xEF\xBF\xBD":(c++,i=(i<<10)+x-56613888,e+=String.fromCharCode(LX|i>>18,Pi|i>>12&Ov,Pi|i>>6&Ov,Pi|i&Ov)),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function l70(t){var n=9;return _V(t)||(n=8,t=v70(t)),new Oc(n,t,t.length)}function B7(t){return l70(t)}function b70(t,n,e){if(!isFinite(t))return isNaN(t)?B7(sw):B7(t>0?mU:"-infinity");var i=t==0&&1/t==-1/0?1:t>=0?0:1;i&&(t=-t);var x=0;if(t!=0)if(t<1)for(;t<1&&x>-BX;)t*=2,x--;else for(;t>=2;)t/=2,x++;var c=x<0?C:xs,s=C;if(i)s=Fa;else switch(e){case 43:s=xs;break;case 32:s=pi;break;default:break}if(n>=0&&n<13){var p=Math.pow(2,n*4);t=Math.round(t*p)/p}var y=t.toString(16);if(n>=0){var T=y.indexOf(Lo);if(T<0)y+=Lo+Pv(n,Zu);else{var E=T+1+n;y.length>24&Ex,t>>31&Li)}function m70(t){return t.toInt()}function _70(t){return+t.isNeg()}function MV(t){return t.neg()}function y70(t,n){var e=UA(t);e.signedconv&&_70(n)&&(e.sign=-1,n=MV(n));var i=C,x=kp(e.base),c="0123456789abcdef";do{var s=n.udivmod(x);n=s.quotient,i=c.charAt(m70(s.modulus))+i}while(!p70(n));if(e.prec>=0){e.filler=pi;var p=e.prec-i.length;p>0&&(i=Pv(p,Zu)+i)}return HA(e,i)}function b7(t){return t.l}function un(t){return b7(t)}function Vr(t,n){return Xu(t,n)}function h70(t,n){return t.add(n)}function d70(t,n){return t.mul(n)}function YA(t,n){return t.ucompare(n)<0}function BV(t){var n=0,e=un(t),i=10,x=1;if(e>0)switch(Vr(t,n)){case 45:n++,x=-1;break;case 43:n++,x=1;break}if(n+1=48&&t<=57?t-48:t>=65&&t<=90?t-55:t>=97&&t<=In?t-87:-1}function Rv(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=kp(x),s=new sn(Ex,268435455,Li).udivmod(c).quotient,p=Vr(t,e),y=wp(p);(y<0||y>=x)&&n7(ns);for(var T=kp(y);;)if(e++,p=Vr(t,e),p!=95){if(y=wp(p),y<0||y>=x)break;YA(s,T)&&n7(ns),y=kp(y),T=h70(d70(c,T),y),YA(T,y)&&n7(ns)}return e!=un(t)&&n7(ns),x==10&&YA(new sn(0,0,Mi),T)&&n7(ns),i<0&&(T=MV(T)),T}function jv(t){return t.toFloat()}function Bi(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=un(t),s=-1>>>0,p=e=x)&&n7(ns);var T=y;for(e++;e=x)break;T=x*T+y,T>s&&n7(ns)}return e!=c&&n7(ns),T=i*T,x==10&&(T|0)!=T&&n7(ns),T|0}function k70(t){return t.slice(1)}function w70(t){return!!t}function pn(t){return t.toUtf16()}function E70(t){for(var n={},e=1;e1&&i.pop();break;case".":break;default:i.push(e[x]);break}return i.unshift(n[0]),i.orig=t,i}var O70=["E2BIG","EACCES","EAGAIN","EBADF","EBUSY","ECHILD","EDEADLK","EDOM",nV,"EFAULT","EFBIG","EINTR","EINVAL","EIO","EISDIR","EMFILE","EMLINK","ENAMETOOLONG","ENFILE","ENODEV",vh,"ENOEXEC","ENOLCK","ENOMEM","ENOSPC","ENOSYS",yw,PU,"ENOTTY","ENXIO","EPERM","EPIPE","ERANGE","EROFS","ESPIPE","ESRCH","EXDEV","EWOULDBLOCK","EINPROGRESS","EALREADY","ENOTSOCK","EDESTADDRREQ","EMSGSIZE","EPROTOTYPE","ENOPROTOOPT","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EOPNOTSUPP","EPFNOSUPPORT","EAFNOSUPPORT","EADDRINUSE","EADDRNOTAVAIL","ENETDOWN","ENETUNREACH","ENETRESET","ECONNABORTED","ECONNRESET","ENOBUFS","EISCONN","ENOTCONN","ESHUTDOWN","ETOOMANYREFS","ETIMEDOUT","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ELOOP","EOVERFLOW"];function m1(t,n,e,i){var x=O70.indexOf(t);x<0&&(i==null&&(i=-9999),x=[0,i]);var c=[x,B7(n||C),B7(e||C)];return c}var HV={};function _1(t){return HV[t]}function y1(t,n){throw[0,t].concat(n)}function I70(t){return new Oc(4,t,t.length)}function A70(t){t=Ic(t),ct(t+tp)}function N70(t,n){return n>>>0>=t.l&&hV(),Xu(t,n)}function XV(){}function gu(t){this.data=t}gu.prototype=new XV,gu.prototype.truncate=function(t){var n=this.data;this.data=Lt(t|0),Fs(n,0,this.data,0,t)},gu.prototype.length=function(){return b7(this.data)},gu.prototype.write=function(t,n,e,i){var x=this.length();if(t+i>=x){var c=Lt(t+i),s=this.data;this.data=c,Fs(s,0,this.data,0,x)}return Ts(n,e,this.data,t,i),0},gu.prototype.read=function(t,n,e,i){var x=this.length();return Fs(this.data,t,n,e,i),0},gu.prototype.read_one=function(t){return N70(this.data,t)},gu.prototype.close=function(){},gu.prototype.constructor=gu;function t7(t,n){this.content={},this.root=t,this.lookupFun=n}t7.prototype.nm=function(t){return this.root+t},t7.prototype.create_dir_if_needed=function(t){for(var n=t.split(Qu),e=C,i=0;iKt.fd_last_idx)&&(Kt.fd_last_idx=t),t}function uoe(t,n,e){for(var i={};n;){switch(n[1]){case 0:i.rdonly=1;break;case 1:i.wronly=1;break;case 2:i.append=1;break;case 3:i.create=1;break;case 4:i.truncate=1;break;case 5:i.excl=1;break;case 6:i.binary=1;break;case 7:i.text=1;break;case 8:i.nonblock=1;break}n=n[2]}i.rdonly&&i.wronly&&ct(Ic(t)+FY),i.text&&i.binary&&ct(Ic(t)+tY);var x=D70(t),c=x.device.open(x.rest,i),s=Kt.fd_last_idx?Kt.fd_last_idx:0;return Sp(s+1,VV,c,i)}Sp(0,VV,new gu(Lt(0))),Sp(1,R70,new gu(Lt(0))),Sp(2,L70,new gu(Lt(0)));function j70(t){var n=Kt.fds[t];n.flags.wronly&&ct(pX+t+" is writeonly");var e=null;if(t==0&&qV()){var i=kj();e=function(){return B7(i.readFileSync(0,vV))}}var x={file:n.file,offset:n.offset,fd:t,opened:!0,out:!1,refill:e};return Nc[x.fd]=x,x.fd}function zV(t){var n=Kt.fds[t];n.flags.rdonly&&ct(pX+t+" is readonly");var e={file:n.file,offset:n.offset,fd:t,opened:!0,out:!0,buffer:C};return Nc[e.fd]=e,e.fd}function G70(){for(var t=0,n=0;n>>0?t[0]:_p(t)||qA(t)?Y2:t instanceof Function||typeof t=="function"?Dw:t&&t.caml_custom?gw:Q2}function hi(t,n,e){e&&z0.toplevelReloc&&(t=z0.toplevelReloc(e)),Kt[t+1]=n,e&&(Kt[e]=n)}function WA(t,n){return HV[Ic(t)]=n,0}function q70(t){return t[2]=jV++,t}function U70(t,n){return t===n?1:(t.t&6&&Dv(t),n.t&6&&Dv(n),t.c==n.c?1:0)}function Hn(t,n){return U70(t,n)}function H70(){lu(qS)}function It(t,n){return n>>>0>=un(t)&&H70(),Vr(t,n)}function n0(t,n){return 1-Hn(t,n)}function X70(){return[0,r("js_of_ocaml")]}function Y70(){return 2147483647/4|0}function V70(t){return 0}var z70=z0.process&&z0.process.platform&&z0.process.platform==aV?jU:"Unix";function K70(){return[0,r(z70),32,0]}function W70(){kV(Kt.Not_found)}function WV(t){var n=z0,e=pn(t);if(n.process&&n.process.env&&n.process.env[e]!=null)return B7(n.process.env[e]);if(z0.jsoo_static_env&&z0.jsoo_static_env[e])return B7(z0.jsoo_static_env[e]);W70()}function JA(t){for(var n=1;t&&t.joo_tramp;)t=t.joo_tramp.apply(null,t.joo_args),n++;return t}function Tu(t,n){return{joo_tramp:t,joo_args:n}}function N(t,n){if(typeof n=="function")return t.fun=n,0;if(n.fun)return t.fun=n.fun,0;for(var e=n.length;e--;)t[e]=n[e];return 0}function foe(t){return t}function St(t){return t instanceof Array?t:z0.RangeError&&t instanceof z0.RangeError&&t.message&&t.message.match(/maximum call stack/i)||z0.InternalError&&t instanceof z0.InternalError&&t.message&&t.message.match(/too much recursion/i)?Kt.Stack_overflow:t instanceof z0.Error&&_1(KO)?[0,_1(KO),t]:[0,Kt.Failure,B7(String(t))]}function J70(t){switch(t[2]){case-8:case-11:case-12:return 1;default:return 0}}function $70(t){var n=C;if(t[0]==0){if(n+=t[1][1],t.length==3&&t[2][0]==0&&J70(t[1]))var i=t[2],e=1;else var e=2,i=t;n+=HX;for(var x=e;xe&&(n+=$H);var c=i[x];typeof c=="number"?n+=c.toString():c instanceof Oc||typeof c=="string"?n+=V2+c.toString()+V2:n+=bv}n+=Z0}else t[0]==Et&&(n+=t[1]);return n}function JV(t){if(t instanceof Array&&(t[0]==0||t[0]==Et)){var n=_1(LH);if(n)n(t,!1);else{var e=$70(t),i=_1(sV);i&&i(0),z0.console.error(yd+e+$Y)}}else throw t}function Z70(){var t=z0;t.process&&t.process.on?t.process.on("uncaughtException",function(n,e){JV(n),t.process.exit(2)}):t.addEventListener&&t.addEventListener("error",function(n){n.error&&JV(n.error)})}Z70();function u(t,n){return t.length==1?t(n):os(t,[n])}function o(t,n,e){return t.length==2?t(n,e):os(t,[n,e])}function ur(t,n,e,i){return t.length==3?t(n,e,i):os(t,[n,e,i])}function R(t,n,e,i,x){return t.length==4?t(n,e,i,x):os(t,[n,e,i,x])}function p7(t,n,e,i,x,c){return t.length==5?t(n,e,i,x,c):os(t,[n,e,i,x,c])}function Q70(t,n,e,i,x,c,s,p){return t.length==7?t(n,e,i,x,c,s,p):os(t,[n,e,i,x,c,s,p])}var $A=[Et,r(wX),-1],$V=[Et,r(DH),-2],q7=[Et,r(AH),-3],ZA=[Et,r(fH),-4],Zt=[Et,r(KU),-7],ZV=[Et,r(LY),-8],QV=[Et,r(VU),-9],Sn=[Et,r(wU),-11],sl=[Et,r(uX),-12],rz=[0,s7],ri0=[4,0,0,0,[12,45,[4,0,0,0,0]]],QA=[0,[11,r('File "'),[2,0,[11,r('", line '),[4,0,0,0,[11,r(yH),[4,0,0,0,[12,45,[4,0,0,0,[11,r(": "),[2,0,0]]]]]]]]]],r('File "%s", line %d, characters %d-%d: %s')],ez=[0,0,[0,0,0],[0,0,0]],rN=r(""),eN=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),Bv=[0,0,0,0,1,0],nz=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(Ne),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],tz=[0,r("first_leading"),r("last_trailing")],uz=[0,0];hi(11,sl,uX),hi(10,Sn,wU),hi(9,[Et,r(dY),CX],dY),hi(8,QV,VU),hi(7,ZV,LY),hi(6,Zt,KU),hi(5,[Et,r(rY),-6],rY),hi(4,[Et,r(IH),-5],IH),hi(3,ZA,fH),hi(2,q7,AH),hi(1,$V,DH),hi(0,$A,wX);var ei0=r("output_substring"),ni0=r("%.12g"),ti0=r(Lo),ui0=r(Gi),ii0=r(Ci),fi0=r(uY),xi0=r("\\'"),oi0=r("\\b"),ai0=r("\\t"),ci0=r("\\n"),si0=r("\\r"),vi0=r("List.iter2"),li0=r("tl"),bi0=r("hd"),pi0=r("String.blit / Bytes.blit_string"),mi0=r("Bytes.blit"),_i0=r("String.sub / Bytes.sub"),yi0=r("Array.blit"),hi0=r("Array.sub"),di0=r("Map.remove_min_elt"),ki0=[0,0,0,0],wi0=[0,r("map.ml"),400,10],Ei0=[0,0,0],Si0=r(e6),gi0=r(e6),Fi0=r(e6),Ti0=r(e6),Oi0=r("Stdlib.Queue.Empty"),Ii0=r("CamlinternalLazy.Undefined"),Ai0=r("Buffer.add_substring/add_subbytes"),Ni0=r("Buffer.add: cannot grow buffer"),Ci0=[0,r(GU),93,2],Pi0=[0,r(GU),94,2],Di0=r("Buffer.sub"),Li0=r("%c"),Ri0=r("%s"),ji0=r(oX),Gi0=r(MY),Mi0=r(xH),Bi0=r(YH),qi0=r("%f"),Ui0=r(An),Hi0=r("%{"),Xi0=r("%}"),Yi0=r("%("),Vi0=r("%)"),zi0=r(N0),Ki0=r("%t"),Wi0=r("%?"),Ji0=r("%r"),$i0=r("%_r"),Zi0=[0,r(su),850,23],Qi0=[0,r(su),814,21],rf0=[0,r(su),815,21],ef0=[0,r(su),818,21],nf0=[0,r(su),819,21],tf0=[0,r(su),822,19],uf0=[0,r(su),823,19],if0=[0,r(su),826,22],ff0=[0,r(su),827,22],xf0=[0,r(su),831,30],of0=[0,r(su),832,30],af0=[0,r(su),836,26],cf0=[0,r(su),837,26],sf0=[0,r(su),846,28],vf0=[0,r(su),847,28],lf0=[0,r(su),851,23],bf0=r(wY),pf0=[0,r(su),1558,4],mf0=r("Printf: bad conversion %["),_f0=[0,r(su),1626,39],yf0=[0,r(su),1649,31],hf0=[0,r(su),1650,31],df0=r("Printf: bad conversion %_"),kf0=r(SY),wf0=r(bY),Ef0=r(SY),Sf0=r(bY),gf0=[0,[11,r("invalid box description "),[3,0,0]],r("invalid box description %S")],Ff0=r(C),Tf0=[0,0,4],Of0=r(C),If0=r(dX),Af0=r("h"),Nf0=r("hov"),Cf0=r("hv"),Pf0=r(pV),Df0=r(sw),Lf0=r("neg_infinity"),Rf0=r(mU),jf0=r(Lo),Gf0=r("%+nd"),Mf0=r("% nd"),Bf0=r("%+ni"),qf0=r("% ni"),Uf0=r("%nx"),Hf0=r("%#nx"),Xf0=r("%nX"),Yf0=r("%#nX"),Vf0=r("%no"),zf0=r("%#no"),Kf0=r("%nd"),Wf0=r(xH),Jf0=r("%nu"),$f0=r("%+ld"),Zf0=r("% ld"),Qf0=r("%+li"),rx0=r("% li"),ex0=r("%lx"),nx0=r("%#lx"),tx0=r("%lX"),ux0=r("%#lX"),ix0=r("%lo"),fx0=r("%#lo"),xx0=r("%ld"),ox0=r(MY),ax0=r("%lu"),cx0=r("%+Ld"),sx0=r("% Ld"),vx0=r("%+Li"),lx0=r("% Li"),bx0=r("%Lx"),px0=r("%#Lx"),mx0=r("%LX"),_x0=r("%#LX"),yx0=r("%Lo"),hx0=r("%#Lo"),dx0=r("%Ld"),kx0=r(YH),wx0=r("%Lu"),Ex0=r("%+d"),Sx0=r("% d"),gx0=r("%+i"),Fx0=r("% i"),Tx0=r("%x"),Ox0=r("%#x"),Ix0=r("%X"),Ax0=r("%#X"),Nx0=r("%o"),Cx0=r("%#o"),Px0=r(N2),Dx0=r(oX),Lx0=r(wY),Rx0=r(z),jx0=r("@}"),Gx0=r("@?"),Mx0=r(`@ +`),Bx0=r("@."),qx0=r("@@"),Ux0=r("@%"),Hx0=r(gX),Xx0=r("CamlinternalFormat.Type_mismatch"),Yx0=r(C),Vx0=[0,[11,r($H),[2,0,[2,0,0]]],r(", %s%s")],zx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],Kx0=[0,[11,r("Fatal error in uncaught exception handler: exception "),[2,0,[12,10,0]]],r(`Fatal error in uncaught exception handler: exception %s +`)],Wx0=r("Fatal error: out of memory in uncaught exception handler"),Jx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],$x0=[0,[2,0,[12,10,0]],r(`%s +`)],Zx0=[0,[11,r(NY),0],r(NY)],Qx0=r("Raised at"),ro0=r("Re-raised at"),eo0=r("Raised by primitive operation at"),no0=r("Called from"),to0=r(" (inlined)"),uo0=r(C),io0=[0,[2,0,[12,32,[2,0,[11,r(' in file "'),[2,0,[12,34,[2,0,[11,r(", line "),[4,0,0,0,[11,r(yH),ri0]]]]]]]]]],r('%s %s in file "%s"%s, line %d, characters %d-%d')],fo0=[0,[2,0,[11,r(" unknown location"),0]],r("%s unknown location")],xo0=r("Out of memory"),oo0=r("Stack overflow"),ao0=r("Pattern matching failed"),co0=r("Assertion failed"),so0=r("Undefined recursive module"),vo0=[0,[12,40,[2,0,[2,0,[12,41,0]]]],r("(%s%s)")],lo0=r(C),bo0=r(C),po0=[0,[12,40,[2,0,[12,41,0]]],r("(%s)")],mo0=[0,[4,0,0,0,0],r(N2)],_o0=[0,[3,0,0],r(zt)],yo0=r(bv),ho0=[0,r(C),r(`(Cannot print locations: + bytecode executable program file not found)`),r(`(Cannot print locations: + bytecode executable program file appears to be corrupt)`),r(`(Cannot print locations: + bytecode executable program file has wrong magic number)`),r(`(Cannot print locations: + bytecode executable program file cannot be opened; + -- too many open files. Try running with OCAMLRUNPARAM=b=2)`)],do0=[3,0,3],ko0=r(Lo),wo0=r(cv),Eo0=r("Flow_ast.Function.BodyBlock@ ")],Aa0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Na0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Ca0=[0,[17,0,[12,41,0]],r(d0)],Pa0=[0,[17,0,[12,41,0]],r(d0)],Da0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Function.BodyExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Function.BodyExpression@ ")],La0=[0,[17,0,[12,41,0]],r(d0)],Ra0=[0,[15,0],r(N0)],ja0=r(Yr),Ga0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ma0=r("Flow_ast.Function.id"),Ba0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qa0=r(tr),Ua0=r(Z0),Ha0=r(nr),Xa0=[0,[17,0,0],r(z)],Ya0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Va0=r(Dt),za0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ka0=[0,[17,0,0],r(z)],Wa0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ja0=r(Zn),$a0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Za0=[0,[17,0,0],r(z)],Qa0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rc0=r(gs),ec0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nc0=[0,[9,0,0],r(An)],tc0=[0,[17,0,0],r(z)],uc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ic0=r(G7),fc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xc0=[0,[9,0,0],r(An)],oc0=[0,[17,0,0],r(z)],ac0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cc0=r(r7),sc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vc0=r(tr),lc0=r(Z0),bc0=r(nr),pc0=[0,[17,0,0],r(z)],mc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_c0=r(Ju),yc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hc0=[0,[17,0,0],r(z)],dc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kc0=r(sv),wc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ec0=r(tr),Sc0=r(Z0),gc0=r(nr),Fc0=[0,[17,0,0],r(z)],Tc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Oc0=r(Xr),Ic0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ac0=r(tr),Nc0=r(Z0),Cc0=r(nr),Pc0=[0,[17,0,0],r(z)],Dc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Lc0=r("sig_loc"),Rc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jc0=[0,[17,0,0],r(z)],Gc0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Mc0=[0,[15,0],r(N0)],Bc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Uc0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Hc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Yc0=r("Flow_ast.Function.Params.this_"),Vc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zc0=r(tr),Kc0=r(Z0),Wc0=r(nr),Jc0=[0,[17,0,0],r(z)],$c0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zc0=r(Dt),Qc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],es0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],ns0=[0,[17,0,0],r(z)],ts0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],us0=r(xd),is0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fs0=r(tr),xs0=r(Z0),os0=r(nr),as0=[0,[17,0,0],r(z)],cs0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ss0=r(Xr),vs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ls0=r(tr),bs0=r(Z0),ps0=r(nr),ms0=[0,[17,0,0],r(z)],_s0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ys0=[0,[15,0],r(N0)],hs0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ds0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ks0=[0,[17,0,[12,41,0]],r(d0)],ws0=[0,[15,0],r(N0)],Es0=r(Yr),Ss0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],gs0=r("Flow_ast.Function.ThisParam.annot"),Fs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ts0=[0,[17,0,0],r(z)],Os0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Is0=r(Xr),As0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ns0=r(tr),Cs0=r(Z0),Ps0=r(nr),Ds0=[0,[17,0,0],r(z)],Ls0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Rs0=[0,[15,0],r(N0)],js0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Gs0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Ms0=[0,[17,0,[12,41,0]],r(d0)],Bs0=[0,[15,0],r(N0)],qs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Us0=r("Flow_ast.Function.Param.argument"),Hs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Xs0=[0,[17,0,0],r(z)],Ys0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vs0=r(_i),zs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ks0=r(tr),Ws0=r(Z0),Js0=r(nr),$s0=[0,[17,0,0],r(z)],Zs0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Qs0=[0,[15,0],r(N0)],r10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],e10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],n10=[0,[17,0,[12,41,0]],r(d0)],t10=[0,[15,0],r(N0)],u10=r(Yr),i10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],f10=r("Flow_ast.Function.RestParam.argument"),x10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o10=[0,[17,0,0],r(z)],a10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],c10=r(Xr),s10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],v10=r(tr),l10=r(Z0),b10=r(nr),p10=[0,[17,0,0],r(z)],m10=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_10=[0,[15,0],r(N0)],y10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],h10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],d10=[0,[17,0,[12,41,0]],r(d0)],k10=[0,[15,0],r(N0)],w10=r(Yr),E10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],S10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],g10=r("Flow_ast.Class.id"),F10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],T10=r(tr),O10=r(Z0),I10=r(nr),A10=[0,[17,0,0],r(z)],N10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],C10=r(Zn),P10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],D10=[0,[17,0,0],r(z)],L10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],R10=r(sv),j10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],G10=r(tr),M10=r(Z0),B10=r(nr),q10=[0,[17,0,0],r(z)],U10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],H10=r(P7),X10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Y10=r(tr),V10=r(Z0),z10=r(nr),K10=[0,[17,0,0],r(z)],W10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],J10=r(ws),$10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Z10=r(tr),Q10=r(Z0),rv0=r(nr),ev0=[0,[17,0,0],r(z)],nv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tv0=r("class_decorators"),uv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fv0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],xv0=[0,[17,0,0],r(z)],ov0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],av0=r(Xr),cv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sv0=r(tr),vv0=r(Z0),lv0=r(nr),bv0=[0,[17,0,0],r(z)],pv0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],mv0=[0,[15,0],r(N0)],_v0=r(Yr),yv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hv0=r("Flow_ast.Class.Decorator.expression"),dv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kv0=[0,[17,0,0],r(z)],wv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ev0=r(Xr),Sv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gv0=r(tr),Fv0=r(Z0),Tv0=r(nr),Ov0=[0,[17,0,0],r(z)],Iv0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Av0=[0,[15,0],r(N0)],Nv0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Cv0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Pv0=[0,[17,0,[12,41,0]],r(d0)],Dv0=[0,[15,0],r(N0)],Lv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Body.Method"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Body.Method@ ")],Rv0=[0,[17,0,[12,41,0]],r(d0)],jv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Body.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Body.Property@ ")],Gv0=[0,[17,0,[12,41,0]],r(d0)],Mv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Body.PrivateField"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Body.PrivateField@ ")],Bv0=[0,[17,0,[12,41,0]],r(d0)],qv0=[0,[15,0],r(N0)],Uv0=r(Yr),Hv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Yv0=r("Flow_ast.Class.Body.body"),Vv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Kv0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Wv0=[0,[17,0,0],r(z)],Jv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$v0=r(Xr),Zv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qv0=r(tr),r20=r(Z0),e20=r(nr),n20=[0,[17,0,0],r(z)],t20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],u20=[0,[15,0],r(N0)],i20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],f20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],x20=[0,[17,0,[12,41,0]],r(d0)],o20=[0,[15,0],r(N0)],a20=r(Yr),c20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],s20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],v20=r("Flow_ast.Class.Implements.interfaces"),l20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],p20=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],m20=[0,[17,0,0],r(z)],_20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],y20=r(Xr),h20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d20=r(tr),k20=r(Z0),w20=r(nr),E20=[0,[17,0,0],r(z)],S20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],g20=[0,[15,0],r(N0)],F20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],T20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O20=[0,[17,0,[12,41,0]],r(d0)],I20=[0,[15,0],r(N0)],A20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],N20=r("Flow_ast.Class.Implements.Interface.id"),C20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P20=[0,[17,0,0],r(z)],D20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],L20=r(Z2),R20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],j20=r(tr),G20=r(Z0),M20=r(nr),B20=[0,[17,0,0],r(z)],q20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],U20=[0,[15,0],r(N0)],H20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],X20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Y20=[0,[17,0,[12,41,0]],r(d0)],V20=[0,[15,0],r(N0)],z20=r(Yr),K20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],W20=r("Flow_ast.Class.Extends.expr"),J20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$20=[0,[17,0,0],r(z)],Z20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q20=r(Z2),rl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],el0=r(tr),nl0=r(Z0),tl0=r(nr),ul0=[0,[17,0,0],r(z)],il0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fl0=r(Xr),xl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ol0=r(tr),al0=r(Z0),cl0=r(nr),sl0=[0,[17,0,0],r(z)],vl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ll0=[0,[15,0],r(N0)],bl0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],pl0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ml0=[0,[17,0,[12,41,0]],r(d0)],_l0=[0,[15,0],r(N0)],yl0=r(Yr),hl0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dl0=r("Flow_ast.Class.PrivateField.key"),kl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wl0=[0,[17,0,0],r(z)],El0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sl0=r(Un),gl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fl0=[0,[17,0,0],r(z)],Tl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ol0=r(Qc),Il0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Al0=[0,[17,0,0],r(z)],Nl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Cl0=r(tu),Pl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dl0=[0,[9,0,0],r(An)],Ll0=[0,[17,0,0],r(z)],Rl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jl0=r(cu),Gl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ml0=r(tr),Bl0=r(Z0),ql0=r(nr),Ul0=[0,[17,0,0],r(z)],Hl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xl0=r(Xr),Yl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vl0=r(tr),zl0=r(Z0),Kl0=r(nr),Wl0=[0,[17,0,0],r(z)],Jl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$l0=[0,[15,0],r(N0)],Zl0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ql0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rb0=[0,[17,0,[12,41,0]],r(d0)],eb0=[0,[15,0],r(N0)],nb0=r("Flow_ast.Class.Property.Uninitialized"),tb0=r("Flow_ast.Class.Property.Declared"),ub0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Property.Initialized"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Property.Initialized@ ")],ib0=[0,[17,0,[12,41,0]],r(d0)],fb0=[0,[15,0],r(N0)],xb0=r(Yr),ob0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ab0=r("Flow_ast.Class.Property.key"),cb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sb0=[0,[17,0,0],r(z)],vb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lb0=r(Un),bb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pb0=[0,[17,0,0],r(z)],mb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_b0=r(Qc),yb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hb0=[0,[17,0,0],r(z)],db0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kb0=r(tu),wb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Eb0=[0,[9,0,0],r(An)],Sb0=[0,[17,0,0],r(z)],gb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fb0=r(cu),Tb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ob0=r(tr),Ib0=r(Z0),Ab0=r(nr),Nb0=[0,[17,0,0],r(z)],Cb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pb0=r(Xr),Db0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Lb0=r(tr),Rb0=r(Z0),jb0=r(nr),Gb0=[0,[17,0,0],r(z)],Mb0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Bb0=[0,[15,0],r(N0)],qb0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ub0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Hb0=[0,[17,0,[12,41,0]],r(d0)],Xb0=[0,[15,0],r(N0)],Yb0=r(Yr),Vb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zb0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Kb0=r("Flow_ast.Class.Method.kind"),Wb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jb0=[0,[17,0,0],r(z)],$b0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zb0=r(ii),Qb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],r40=[0,[17,0,0],r(z)],e40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],n40=r(Un),t40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],u40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],i40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],f40=[0,[17,0,[12,41,0]],r(d0)],x40=[0,[17,0,0],r(z)],o40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],a40=r(tu),c40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],s40=[0,[9,0,0],r(An)],v40=[0,[17,0,0],r(z)],l40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],b40=r(j_),p40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],_40=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],y40=[0,[17,0,0],r(z)],h40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],d40=r(Xr),k40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w40=r(tr),E40=r(Z0),S40=r(nr),g40=[0,[17,0,0],r(z)],F40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],T40=[0,[15,0],r(N0)],O40=r("Flow_ast.Class.Method.Constructor"),I40=r("Flow_ast.Class.Method.Method"),A40=r("Flow_ast.Class.Method.Get"),N40=r("Flow_ast.Class.Method.Set"),C40=[0,[15,0],r(N0)],P40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],D40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],L40=[0,[17,0,[12,41,0]],r(d0)],R40=[0,[15,0],r(N0)],j40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],G40=r("Flow_ast.Comment.kind"),M40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B40=[0,[17,0,0],r(z)],q40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U40=r("text"),H40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X40=[0,[3,0,0],r(zt)],Y40=[0,[17,0,0],r(z)],V40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],z40=r("on_newline"),K40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],W40=[0,[9,0,0],r(An)],J40=[0,[17,0,0],r(z)],$40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z40=[0,[15,0],r(N0)],Q40=r("Flow_ast.Comment.Line"),r80=r("Flow_ast.Comment.Block"),e80=[0,[15,0],r(N0)],n80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],t80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],u80=[0,[17,0,[12,41,0]],r(d0)],i80=[0,[15,0],r(N0)],f80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object@ ")],x80=[0,[17,0,[12,41,0]],r(d0)],o80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array@ ")],a80=[0,[17,0,[12,41,0]],r(d0)],c80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Identifier@ ")],s80=[0,[17,0,[12,41,0]],r(d0)],v80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Expression@ ")],l80=[0,[17,0,[12,41,0]],r(d0)],b80=[0,[15,0],r(N0)],p80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],m80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_80=[0,[17,0,[12,41,0]],r(d0)],y80=[0,[15,0],r(N0)],h80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],d80=r("Flow_ast.Pattern.Identifier.name"),k80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w80=[0,[17,0,0],r(z)],E80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],S80=r(Qc),g80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F80=[0,[17,0,0],r(z)],T80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],O80=r(qu),I80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],A80=[0,[9,0,0],r(An)],N80=[0,[17,0,0],r(z)],C80=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],P80=[0,[15,0],r(N0)],D80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],L80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],R80=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],j80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M80=r("Flow_ast.Pattern.Array.elements"),B80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],U80=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],H80=[0,[17,0,0],r(z)],X80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Y80=r(Qc),V80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],z80=[0,[17,0,0],r(z)],K80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],W80=r(Xr),J80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$80=r(tr),Z80=r(Z0),Q80=r(nr),r30=[0,[17,0,0],r(z)],e30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],n30=[0,[15,0],r(N0)],t30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array.Element"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array.Element@ ")],u30=[0,[17,0,[12,41,0]],r(d0)],i30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array.RestElement"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array.RestElement@ ")],f30=[0,[17,0,[12,41,0]],r(d0)],x30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array.Hole"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array.Hole@ ")],o30=[0,[17,0,[12,41,0]],r(d0)],a30=[0,[15,0],r(N0)],c30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],s30=r("Flow_ast.Pattern.Array.Element.argument"),v30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l30=[0,[17,0,0],r(z)],b30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],p30=r(_i),m30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_30=r(tr),y30=r(Z0),h30=r(nr),d30=[0,[17,0,0],r(z)],k30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],w30=[0,[15,0],r(N0)],E30=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],S30=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],g30=[0,[17,0,[12,41,0]],r(d0)],F30=[0,[15,0],r(N0)],T30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],O30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],I30=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],A30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],N30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],C30=r("Flow_ast.Pattern.Object.properties"),P30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],D30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],L30=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],R30=[0,[17,0,0],r(z)],j30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G30=r(Qc),M30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B30=[0,[17,0,0],r(z)],q30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U30=r(Xr),H30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X30=r(tr),Y30=r(Z0),V30=r(nr),z30=[0,[17,0,0],r(z)],K30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],W30=[0,[15,0],r(N0)],J30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property@ ")],$30=[0,[17,0,[12,41,0]],r(d0)],Z30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.RestElement"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.RestElement@ ")],Q30=[0,[17,0,[12,41,0]],r(d0)],r60=[0,[15,0],r(N0)],e60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],n60=r("Flow_ast.Pattern.Object.Property.key"),t60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],u60=[0,[17,0,0],r(z)],i60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],f60=r(mi),x60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o60=[0,[17,0,0],r(z)],a60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],c60=r(_i),s60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],v60=r(tr),l60=r(Z0),b60=r(nr),p60=[0,[17,0,0],r(z)],m60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_60=r(f6),y60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],h60=[0,[9,0,0],r(An)],d60=[0,[17,0,0],r(z)],k60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],w60=[0,[15,0],r(N0)],E60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],S60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],g60=[0,[17,0,[12,41,0]],r(d0)],F60=[0,[15,0],r(N0)],T60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property.Literal@ ")],O60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],I60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],A60=[0,[17,0,[12,41,0]],r(d0)],N60=[0,[17,0,[12,41,0]],r(d0)],C60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property.Identifier@ ")],P60=[0,[17,0,[12,41,0]],r(d0)],D60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property.Computed"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property.Computed@ ")],L60=[0,[17,0,[12,41,0]],r(d0)],R60=[0,[15,0],r(N0)],j60=r(Yr),G60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M60=r("Flow_ast.Pattern.RestElement.argument"),B60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q60=[0,[17,0,0],r(z)],U60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],H60=r(Xr),X60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Y60=r(tr),V60=r(Z0),z60=r(nr),K60=[0,[17,0,0],r(z)],W60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],J60=[0,[15,0],r(N0)],$60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Z60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Q60=[0,[17,0,[12,41,0]],r(d0)],rp0=[0,[15,0],r(N0)],ep0=r(Yr),np0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],up0=r("Flow_ast.JSX.frag_opening_element"),ip0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fp0=[0,[17,0,0],r(z)],xp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],op0=r("frag_closing_element"),ap0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cp0=[0,[17,0,0],r(z)],sp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vp0=r("frag_children"),lp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],pp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],mp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],_p0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],yp0=[0,[17,0,[12,41,0]],r(d0)],hp0=[0,[17,0,0],r(z)],dp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kp0=r("frag_comments"),wp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ep0=r(tr),Sp0=r(Z0),gp0=r(nr),Fp0=[0,[17,0,0],r(z)],Tp0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Op0=[0,[15,0],r(N0)],Ip0=r(Yr),Ap0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Np0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Cp0=r("Flow_ast.JSX.opening_element"),Pp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dp0=[0,[17,0,0],r(z)],Lp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rp0=r("closing_element"),jp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gp0=r(tr),Mp0=r(Z0),Bp0=r(nr),qp0=[0,[17,0,0],r(z)],Up0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hp0=r(Ke),Xp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Vp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],zp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Kp0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Wp0=[0,[17,0,[12,41,0]],r(d0)],Jp0=[0,[17,0,0],r(z)],$p0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zp0=r(Xr),Qp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],r50=r(tr),e50=r(Z0),n50=r(nr),t50=[0,[17,0,0],r(z)],u50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],i50=[0,[15,0],r(N0)],f50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Element"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Element@ ")],x50=[0,[17,0,[12,41,0]],r(d0)],o50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Fragment"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Fragment@ ")],a50=[0,[17,0,[12,41,0]],r(d0)],c50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.ExpressionContainer"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.ExpressionContainer@ ")],s50=[0,[17,0,[12,41,0]],r(d0)],v50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.SpreadChild"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.SpreadChild@ ")],l50=[0,[17,0,[12,41,0]],r(d0)],b50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Text"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Text@ ")],p50=[0,[17,0,[12,41,0]],r(d0)],m50=[0,[15,0],r(N0)],_50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],y50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],h50=[0,[17,0,[12,41,0]],r(d0)],d50=[0,[15,0],r(N0)],k50=r(Yr),w50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],E50=r("Flow_ast.JSX.SpreadChild.expression"),S50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],g50=[0,[17,0,0],r(z)],F50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],T50=r(Xr),O50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],I50=r(tr),A50=r(Z0),N50=r(nr),C50=[0,[17,0,0],r(z)],P50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],D50=[0,[15,0],r(N0)],L50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],R50=r("Flow_ast.JSX.Closing.name"),j50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],G50=[0,[17,0,0],r(z)],M50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],B50=[0,[15,0],r(N0)],q50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],U50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],H50=[0,[17,0,[12,41,0]],r(d0)],X50=[0,[15,0],r(N0)],Y50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],V50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],z50=r("Flow_ast.JSX.Opening.name"),K50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],W50=[0,[17,0,0],r(z)],J50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$50=r("self_closing"),Z50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q50=[0,[9,0,0],r(An)],rm0=[0,[17,0,0],r(z)],em0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nm0=r(mY),tm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],um0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],im0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],fm0=[0,[17,0,0],r(z)],xm0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],om0=[0,[15,0],r(N0)],am0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Opening.Attribute"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Opening.Attribute@ ")],cm0=[0,[17,0,[12,41,0]],r(d0)],sm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Opening.SpreadAttribute"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Opening.SpreadAttribute@ ")],vm0=[0,[17,0,[12,41,0]],r(d0)],lm0=[0,[15,0],r(N0)],bm0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],pm0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],mm0=[0,[17,0,[12,41,0]],r(d0)],_m0=[0,[15,0],r(N0)],ym0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Identifier@ ")],hm0=[0,[17,0,[12,41,0]],r(d0)],dm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.NamespacedName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.NamespacedName@ ")],km0=[0,[17,0,[12,41,0]],r(d0)],wm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.MemberExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.MemberExpression@ ")],Em0=[0,[17,0,[12,41,0]],r(d0)],Sm0=[0,[15,0],r(N0)],gm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Fm0=r("Flow_ast.JSX.MemberExpression._object"),Tm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Om0=[0,[17,0,0],r(z)],Im0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Am0=r(Iv),Nm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cm0=[0,[17,0,0],r(z)],Pm0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Dm0=[0,[15,0],r(N0)],Lm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.MemberExpression.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.MemberExpression.Identifier@ ")],Rm0=[0,[17,0,[12,41,0]],r(d0)],jm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.MemberExpression.MemberExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.MemberExpression.MemberExpression@ ")],Gm0=[0,[17,0,[12,41,0]],r(d0)],Mm0=[0,[15,0],r(N0)],Bm0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],qm0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Um0=[0,[17,0,[12,41,0]],r(d0)],Hm0=[0,[15,0],r(N0)],Xm0=r(Yr),Ym0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Vm0=r("Flow_ast.JSX.SpreadAttribute.argument"),zm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Km0=[0,[17,0,0],r(z)],Wm0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jm0=r(Xr),$m0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zm0=r(tr),Qm0=r(Z0),r90=r(nr),e90=[0,[17,0,0],r(z)],n90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],t90=[0,[15,0],r(N0)],u90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],i90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],f90=[0,[17,0,[12,41,0]],r(d0)],x90=[0,[15,0],r(N0)],o90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],a90=r("Flow_ast.JSX.Attribute.name"),c90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],s90=[0,[17,0,0],r(z)],v90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],l90=r(Un),b90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],p90=r(tr),m90=r(Z0),_90=r(nr),y90=[0,[17,0,0],r(z)],h90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],d90=[0,[15,0],r(N0)],k90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.Literal ("),[17,[0,r(Pe),0,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.Literal (@,")],w90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],E90=[0,[17,[0,r(Pe),0,0],[11,r(EX),[17,0,0]]],r(RU)],S90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.ExpressionContainer ("),[17,[0,r(Pe),0,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.ExpressionContainer (@,")],g90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],F90=[0,[17,[0,r(Pe),0,0],[11,r(EX),[17,0,0]]],r(RU)],T90=[0,[15,0],r(N0)],O90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.Identifier@ ")],I90=[0,[17,0,[12,41,0]],r(d0)],A90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.NamespacedName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.NamespacedName@ ")],N90=[0,[17,0,[12,41,0]],r(d0)],C90=[0,[15,0],r(N0)],P90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],D90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],L90=[0,[17,0,[12,41,0]],r(d0)],R90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],j90=r("Flow_ast.JSX.Text.value"),G90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],M90=[0,[3,0,0],r(zt)],B90=[0,[17,0,0],r(z)],q90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U90=r(c7),H90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X90=[0,[3,0,0],r(zt)],Y90=[0,[17,0,0],r(z)],V90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],z90=[0,[15,0],r(N0)],K90=[0,[15,0],r(N0)],W90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.ExpressionContainer.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.ExpressionContainer.Expression@ ")],J90=[0,[17,0,[12,41,0]],r(d0)],$90=r("Flow_ast.JSX.ExpressionContainer.EmptyExpression"),Z90=[0,[15,0],r(N0)],Q90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],e_0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],n_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],t_0=r("Flow_ast.JSX.ExpressionContainer.expression"),u_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],i_0=[0,[17,0,0],r(z)],f_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],x_0=r(Xr),o_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],a_0=r(tr),c_0=r(Z0),s_0=r(nr),v_0=[0,[17,0,0],r(z)],l_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],b_0=[0,[15,0],r(N0)],p_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],m_0=r("Flow_ast.JSX.NamespacedName.namespace"),__0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],y_0=[0,[17,0,0],r(z)],h_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],d_0=r(ui),k_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w_0=[0,[17,0,0],r(z)],E_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],S_0=[0,[15,0],r(N0)],g_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],F_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],T_0=[0,[17,0,[12,41,0]],r(d0)],O_0=[0,[15,0],r(N0)],I_0=r(Yr),A_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],N_0=r("Flow_ast.JSX.Identifier.name"),C_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P_0=[0,[3,0,0],r(zt)],D_0=[0,[17,0,0],r(z)],L_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],R_0=r(Xr),j_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],G_0=r(tr),M_0=r(Z0),B_0=r(nr),q_0=[0,[17,0,0],r(z)],U_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],H_0=[0,[15,0],r(N0)],X_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Y_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],V_0=[0,[17,0,[12,41,0]],r(d0)],z_0=[0,[15,0],r(N0)],K_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array@ ")],W_0=[0,[17,0,[12,41,0]],r(d0)],J_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.ArrowFunction"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.ArrowFunction@ ")],$_0=[0,[17,0,[12,41,0]],r(d0)],Z_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Assignment"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Assignment@ ")],Q_0=[0,[17,0,[12,41,0]],r(d0)],ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Binary"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Binary@ ")],ey0=[0,[17,0,[12,41,0]],r(d0)],ny0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Call"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Call@ ")],ty0=[0,[17,0,[12,41,0]],r(d0)],uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Class"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Class@ ")],iy0=[0,[17,0,[12,41,0]],r(d0)],fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Comprehension"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Comprehension@ ")],xy0=[0,[17,0,[12,41,0]],r(d0)],oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Conditional"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Conditional@ ")],ay0=[0,[17,0,[12,41,0]],r(d0)],cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Function"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Function@ ")],sy0=[0,[17,0,[12,41,0]],r(d0)],vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Generator"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Generator@ ")],ly0=[0,[17,0,[12,41,0]],r(d0)],by0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Identifier@ ")],py0=[0,[17,0,[12,41,0]],r(d0)],my0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Import"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Import@ ")],_y0=[0,[17,0,[12,41,0]],r(d0)],yy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.JSXElement"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.JSXElement@ ")],hy0=[0,[17,0,[12,41,0]],r(d0)],dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.JSXFragment"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.JSXFragment@ ")],ky0=[0,[17,0,[12,41,0]],r(d0)],wy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Literal@ ")],Ey0=[0,[17,0,[12,41,0]],r(d0)],Sy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Logical"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Logical@ ")],gy0=[0,[17,0,[12,41,0]],r(d0)],Fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member@ ")],Ty0=[0,[17,0,[12,41,0]],r(d0)],Oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.MetaProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.MetaProperty@ ")],Iy0=[0,[17,0,[12,41,0]],r(d0)],Ay0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.New"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.New@ ")],Ny0=[0,[17,0,[12,41,0]],r(d0)],Cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object@ ")],Py0=[0,[17,0,[12,41,0]],r(d0)],Dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.OptionalCall"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.OptionalCall@ ")],Ly0=[0,[17,0,[12,41,0]],r(d0)],Ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.OptionalMember"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.OptionalMember@ ")],jy0=[0,[17,0,[12,41,0]],r(d0)],Gy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Sequence"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Sequence@ ")],My0=[0,[17,0,[12,41,0]],r(d0)],By0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Super"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Super@ ")],qy0=[0,[17,0,[12,41,0]],r(d0)],Uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.TaggedTemplate"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.TaggedTemplate@ ")],Hy0=[0,[17,0,[12,41,0]],r(d0)],Xy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.TemplateLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.TemplateLiteral@ ")],Yy0=[0,[17,0,[12,41,0]],r(d0)],Vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.This"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.This@ ")],zy0=[0,[17,0,[12,41,0]],r(d0)],Ky0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.TypeCast"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.TypeCast@ ")],Wy0=[0,[17,0,[12,41,0]],r(d0)],Jy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Unary"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Unary@ ")],$y0=[0,[17,0,[12,41,0]],r(d0)],Zy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Update"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Update@ ")],Qy0=[0,[17,0,[12,41,0]],r(d0)],rh0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Yield"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Yield@ ")],eh0=[0,[17,0,[12,41,0]],r(d0)],nh0=[0,[15,0],r(N0)],th0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],uh0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ih0=[0,[17,0,[12,41,0]],r(d0)],fh0=[0,[15,0],r(N0)],xh0=r(Yr),oh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ah0=r("Flow_ast.Expression.Import.argument"),ch0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sh0=[0,[17,0,0],r(z)],vh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lh0=r(Xr),bh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ph0=r(tr),mh0=r(Z0),_h0=r(nr),yh0=[0,[17,0,0],r(z)],hh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dh0=[0,[15,0],r(N0)],kh0=r(Yr),wh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Eh0=r("Flow_ast.Expression.Super.comments"),Sh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gh0=r(tr),Fh0=r(Z0),Th0=r(nr),Oh0=[0,[17,0,0],r(z)],Ih0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ah0=[0,[15,0],r(N0)],Nh0=r(Yr),Ch0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ph0=r("Flow_ast.Expression.This.comments"),Dh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Lh0=r(tr),Rh0=r(Z0),jh0=r(nr),Gh0=[0,[17,0,0],r(z)],Mh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Bh0=[0,[15,0],r(N0)],qh0=r(Yr),Uh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Hh0=r("Flow_ast.Expression.MetaProperty.meta"),Xh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yh0=[0,[17,0,0],r(z)],Vh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zh0=r(Iv),Kh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wh0=[0,[17,0,0],r(z)],Jh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$h0=r(Xr),Zh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qh0=r(tr),rd0=r(Z0),ed0=r(nr),nd0=[0,[17,0,0],r(z)],td0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ud0=[0,[15,0],r(N0)],id0=r(Yr),fd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],xd0=r("Flow_ast.Expression.TypeCast.expression"),od0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ad0=[0,[17,0,0],r(z)],cd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sd0=r(Qc),vd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ld0=[0,[17,0,0],r(z)],bd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pd0=r(Xr),md0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_d0=r(tr),yd0=r(Z0),hd0=r(nr),dd0=[0,[17,0,0],r(z)],kd0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wd0=[0,[15,0],r(N0)],Ed0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],gd0=r("Flow_ast.Expression.Generator.blocks"),Fd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Td0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Od0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Id0=[0,[17,0,0],r(z)],Ad0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Nd0=r(T4),Cd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pd0=r(tr),Dd0=r(Z0),Ld0=r(nr),Rd0=[0,[17,0,0],r(z)],jd0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Gd0=[0,[15,0],r(N0)],Md0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qd0=r("Flow_ast.Expression.Comprehension.blocks"),Ud0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Xd0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Yd0=[0,[17,0,0],r(z)],Vd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zd0=r(T4),Kd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wd0=r(tr),Jd0=r(Z0),$d0=r(nr),Zd0=[0,[17,0,0],r(z)],Qd0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],rk0=[0,[15,0],r(N0)],ek0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],nk0=r("Flow_ast.Expression.Comprehension.Block.left"),tk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uk0=[0,[17,0,0],r(z)],ik0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fk0=r(Cu),xk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ok0=[0,[17,0,0],r(z)],ak0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ck0=r(R8),sk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vk0=[0,[9,0,0],r(An)],lk0=[0,[17,0,0],r(z)],bk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pk0=[0,[15,0],r(N0)],mk0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_k0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yk0=[0,[17,0,[12,41,0]],r(d0)],hk0=[0,[15,0],r(N0)],dk0=r(Yr),kk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wk0=r("Flow_ast.Expression.Yield.argument"),Ek0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sk0=r(tr),gk0=r(Z0),Fk0=r(nr),Tk0=[0,[17,0,0],r(z)],Ok0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ik0=r(Xr),Ak0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nk0=r(tr),Ck0=r(Z0),Pk0=r(nr),Dk0=[0,[17,0,0],r(z)],Lk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rk0=r(lY),jk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gk0=[0,[9,0,0],r(An)],Mk0=[0,[17,0,0],r(z)],Bk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qk0=r("result_out"),Uk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hk0=[0,[17,0,0],r(z)],Xk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Yk0=[0,[15,0],r(N0)],Vk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zk0=r("Flow_ast.Expression.OptionalMember.member"),Kk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wk0=[0,[17,0,0],r(z)],Jk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$k0=r(lU),Zk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qk0=[0,[17,0,0],r(z)],rw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ew0=r(qu),nw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tw0=[0,[9,0,0],r(An)],uw0=[0,[17,0,0],r(z)],iw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],fw0=[0,[15,0],r(N0)],xw0=r(Yr),ow0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aw0=r("Flow_ast.Expression.Member._object"),cw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sw0=[0,[17,0,0],r(z)],vw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lw0=r(Iv),bw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pw0=[0,[17,0,0],r(z)],mw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_w0=r(Xr),yw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hw0=r(tr),dw0=r(Z0),kw0=r(nr),ww0=[0,[17,0,0],r(z)],Ew0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Sw0=[0,[15,0],r(N0)],gw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member.PropertyIdentifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member.PropertyIdentifier@ ")],Fw0=[0,[17,0,[12,41,0]],r(d0)],Tw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member.PropertyPrivateName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member.PropertyPrivateName@ ")],Ow0=[0,[17,0,[12,41,0]],r(d0)],Iw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member.PropertyExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member.PropertyExpression@ ")],Aw0=[0,[17,0,[12,41,0]],r(d0)],Nw0=[0,[15,0],r(N0)],Cw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Pw0=r("Flow_ast.Expression.OptionalCall.call"),Dw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Lw0=[0,[17,0,0],r(z)],Rw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jw0=r(lU),Gw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Mw0=[0,[17,0,0],r(z)],Bw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qw0=r(qu),Uw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hw0=[0,[9,0,0],r(An)],Xw0=[0,[17,0,0],r(z)],Yw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Vw0=[0,[15,0],r(N0)],zw0=r(Yr),Kw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ww0=r("Flow_ast.Expression.Call.callee"),Jw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$w0=[0,[17,0,0],r(z)],Zw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qw0=r(Z2),rE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eE0=r(tr),nE0=r(Z0),tE0=r(nr),uE0=[0,[17,0,0],r(z)],iE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fE0=r(C2),xE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oE0=[0,[17,0,0],r(z)],aE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cE0=r(Xr),sE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vE0=r(tr),lE0=r(Z0),bE0=r(nr),pE0=[0,[17,0,0],r(z)],mE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_E0=[0,[15,0],r(N0)],yE0=r(Yr),hE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dE0=r("Flow_ast.Expression.New.callee"),kE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wE0=[0,[17,0,0],r(z)],EE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],SE0=r(Z2),gE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FE0=r(tr),TE0=r(Z0),OE0=r(nr),IE0=[0,[17,0,0],r(z)],AE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NE0=r(C2),CE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PE0=r(tr),DE0=r(Z0),LE0=r(nr),RE0=[0,[17,0,0],r(z)],jE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GE0=r(Xr),ME0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BE0=r(tr),qE0=r(Z0),UE0=r(nr),HE0=[0,[17,0,0],r(z)],XE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],YE0=[0,[15,0],r(N0)],VE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],KE0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],WE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$E0=r("Flow_ast.Expression.ArgList.arguments"),ZE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],rS0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],eS0=[0,[17,0,0],r(z)],nS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tS0=r(Xr),uS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iS0=r(tr),fS0=r(Z0),xS0=r(nr),oS0=[0,[17,0,0],r(z)],aS0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cS0=[0,[15,0],r(N0)],sS0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],vS0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],lS0=[0,[17,0,[12,41,0]],r(d0)],bS0=[0,[15,0],r(N0)],pS0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Expression@ ")],mS0=[0,[17,0,[12,41,0]],r(d0)],_S0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Spread"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Spread@ ")],yS0=[0,[17,0,[12,41,0]],r(d0)],hS0=[0,[15,0],r(N0)],dS0=r(Yr),kS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wS0=r("Flow_ast.Expression.Conditional.test"),ES0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],SS0=[0,[17,0,0],r(z)],gS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FS0=r(kv),TS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OS0=[0,[17,0,0],r(z)],IS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],AS0=r(m3),NS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],CS0=[0,[17,0,0],r(z)],PS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DS0=r(Xr),LS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RS0=r(tr),jS0=r(Z0),GS0=r(nr),MS0=[0,[17,0,0],r(z)],BS0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qS0=[0,[15,0],r(N0)],US0=r(Yr),HS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],XS0=r("Flow_ast.Expression.Logical.operator"),YS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VS0=[0,[17,0,0],r(z)],zS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],KS0=r(bi),WS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JS0=[0,[17,0,0],r(z)],$S0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZS0=r(Cu),QS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rg0=[0,[17,0,0],r(z)],eg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ng0=r(Xr),tg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ug0=r(tr),ig0=r(Z0),fg0=r(nr),xg0=[0,[17,0,0],r(z)],og0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ag0=[0,[15,0],r(N0)],cg0=r("Flow_ast.Expression.Logical.Or"),sg0=r("Flow_ast.Expression.Logical.And"),vg0=r("Flow_ast.Expression.Logical.NullishCoalesce"),lg0=[0,[15,0],r(N0)],bg0=r(Yr),pg0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],mg0=r("Flow_ast.Expression.Update.operator"),_g0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yg0=[0,[17,0,0],r(z)],hg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dg0=r(l7),kg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wg0=[0,[17,0,0],r(z)],Eg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sg0=r(qE),gg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fg0=[0,[9,0,0],r(An)],Tg0=[0,[17,0,0],r(z)],Og0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ig0=r(Xr),Ag0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ng0=r(tr),Cg0=r(Z0),Pg0=r(nr),Dg0=[0,[17,0,0],r(z)],Lg0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Rg0=[0,[15,0],r(N0)],jg0=r("Flow_ast.Expression.Update.Decrement"),Gg0=r("Flow_ast.Expression.Update.Increment"),Mg0=[0,[15,0],r(N0)],Bg0=r(Yr),qg0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ug0=r("Flow_ast.Expression.Assignment.operator"),Hg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Xg0=r(tr),Yg0=r(Z0),Vg0=r(nr),zg0=[0,[17,0,0],r(z)],Kg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wg0=r(bi),Jg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$g0=[0,[17,0,0],r(z)],Zg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qg0=r(Cu),rF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eF0=[0,[17,0,0],r(z)],nF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tF0=r(Xr),uF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iF0=r(tr),fF0=r(Z0),xF0=r(nr),oF0=[0,[17,0,0],r(z)],aF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cF0=[0,[15,0],r(N0)],sF0=r("Flow_ast.Expression.Assignment.PlusAssign"),vF0=r("Flow_ast.Expression.Assignment.MinusAssign"),lF0=r("Flow_ast.Expression.Assignment.MultAssign"),bF0=r("Flow_ast.Expression.Assignment.ExpAssign"),pF0=r("Flow_ast.Expression.Assignment.DivAssign"),mF0=r("Flow_ast.Expression.Assignment.ModAssign"),_F0=r("Flow_ast.Expression.Assignment.LShiftAssign"),yF0=r("Flow_ast.Expression.Assignment.RShiftAssign"),hF0=r("Flow_ast.Expression.Assignment.RShift3Assign"),dF0=r("Flow_ast.Expression.Assignment.BitOrAssign"),kF0=r("Flow_ast.Expression.Assignment.BitXorAssign"),wF0=r("Flow_ast.Expression.Assignment.BitAndAssign"),EF0=r("Flow_ast.Expression.Assignment.NullishAssign"),SF0=r("Flow_ast.Expression.Assignment.AndAssign"),gF0=r("Flow_ast.Expression.Assignment.OrAssign"),FF0=[0,[15,0],r(N0)],TF0=r(Yr),OF0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IF0=r("Flow_ast.Expression.Binary.operator"),AF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NF0=[0,[17,0,0],r(z)],CF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PF0=r(bi),DF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LF0=[0,[17,0,0],r(z)],RF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jF0=r(Cu),GF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],MF0=[0,[17,0,0],r(z)],BF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qF0=r(Xr),UF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],HF0=r(tr),XF0=r(Z0),YF0=r(nr),VF0=[0,[17,0,0],r(z)],zF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],KF0=[0,[15,0],r(N0)],WF0=r("Flow_ast.Expression.Binary.Equal"),JF0=r("Flow_ast.Expression.Binary.NotEqual"),$F0=r("Flow_ast.Expression.Binary.StrictEqual"),ZF0=r("Flow_ast.Expression.Binary.StrictNotEqual"),QF0=r("Flow_ast.Expression.Binary.LessThan"),rT0=r("Flow_ast.Expression.Binary.LessThanEqual"),eT0=r("Flow_ast.Expression.Binary.GreaterThan"),nT0=r("Flow_ast.Expression.Binary.GreaterThanEqual"),tT0=r("Flow_ast.Expression.Binary.LShift"),uT0=r("Flow_ast.Expression.Binary.RShift"),iT0=r("Flow_ast.Expression.Binary.RShift3"),fT0=r("Flow_ast.Expression.Binary.Plus"),xT0=r("Flow_ast.Expression.Binary.Minus"),oT0=r("Flow_ast.Expression.Binary.Mult"),aT0=r("Flow_ast.Expression.Binary.Exp"),cT0=r("Flow_ast.Expression.Binary.Div"),sT0=r("Flow_ast.Expression.Binary.Mod"),vT0=r("Flow_ast.Expression.Binary.BitOr"),lT0=r("Flow_ast.Expression.Binary.Xor"),bT0=r("Flow_ast.Expression.Binary.BitAnd"),pT0=r("Flow_ast.Expression.Binary.In"),mT0=r("Flow_ast.Expression.Binary.Instanceof"),_T0=[0,[15,0],r(N0)],yT0=r(Yr),hT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dT0=r("Flow_ast.Expression.Unary.operator"),kT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wT0=[0,[17,0,0],r(z)],ET0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ST0=r(l7),gT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FT0=[0,[17,0,0],r(z)],TT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OT0=r(Xr),IT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AT0=r(tr),NT0=r(Z0),CT0=r(nr),PT0=[0,[17,0,0],r(z)],DT0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],LT0=[0,[15,0],r(N0)],RT0=r("Flow_ast.Expression.Unary.Minus"),jT0=r("Flow_ast.Expression.Unary.Plus"),GT0=r("Flow_ast.Expression.Unary.Not"),MT0=r("Flow_ast.Expression.Unary.BitNot"),BT0=r("Flow_ast.Expression.Unary.Typeof"),qT0=r("Flow_ast.Expression.Unary.Void"),UT0=r("Flow_ast.Expression.Unary.Delete"),HT0=r("Flow_ast.Expression.Unary.Await"),XT0=[0,[15,0],r(N0)],YT0=r(Yr),VT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KT0=r("Flow_ast.Expression.Sequence.expressions"),WT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],$T0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],ZT0=[0,[17,0,0],r(z)],QT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rO0=r(Xr),eO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nO0=r(tr),tO0=r(Z0),uO0=r(nr),iO0=[0,[17,0,0],r(z)],fO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],xO0=[0,[15,0],r(N0)],oO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],cO0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],sO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],lO0=r("Flow_ast.Expression.Object.properties"),bO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],mO0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],_O0=[0,[17,0,0],r(z)],yO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hO0=r(Xr),dO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kO0=r(tr),wO0=r(Z0),EO0=r(nr),SO0=[0,[17,0,0],r(z)],gO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],FO0=[0,[15,0],r(N0)],TO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property@ ")],OO0=[0,[17,0,[12,41,0]],r(d0)],IO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.SpreadProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.SpreadProperty@ ")],AO0=[0,[17,0,[12,41,0]],r(d0)],NO0=[0,[15,0],r(N0)],CO0=r(Yr),PO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DO0=r("Flow_ast.Expression.Object.SpreadProperty.argument"),LO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RO0=[0,[17,0,0],r(z)],jO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GO0=r(Xr),MO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BO0=r(tr),qO0=r(Z0),UO0=r(nr),HO0=[0,[17,0,0],r(z)],XO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],YO0=[0,[15,0],r(N0)],VO0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],zO0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],KO0=[0,[17,0,[12,41,0]],r(d0)],WO0=[0,[15,0],r(N0)],JO0=r(Yr),$O0=r(Yr),ZO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Init {"),[17,[0,r(Pe),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Init {@,")],QO0=r(ii),rI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eI0=[0,[17,0,0],r(z)],nI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tI0=r(Un),uI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iI0=[0,[17,0,0],r(z)],fI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xI0=r(f6),oI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aI0=[0,[9,0,0],r(An)],cI0=[0,[17,0,0],r(z)],sI0=[0,[17,0,[12,br,0]],r(Y6)],vI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Method {"),[17,[0,r(Pe),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Method {@,")],lI0=r(ii),bI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pI0=[0,[17,0,0],r(z)],mI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_I0=r(Un),yI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],dI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],kI0=[0,[17,0,[12,41,0]],r(d0)],wI0=[0,[17,0,0],r(z)],EI0=[0,[17,0,[12,br,0]],r(Y6)],SI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Get {"),[17,[0,r(Pe),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Get {@,")],gI0=r(ii),FI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TI0=[0,[17,0,0],r(z)],OI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],II0=r(Un),AI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],CI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],PI0=[0,[17,0,[12,41,0]],r(d0)],DI0=[0,[17,0,0],r(z)],LI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RI0=r(Xr),jI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GI0=r(tr),MI0=r(Z0),BI0=r(nr),qI0=[0,[17,0,0],r(z)],UI0=[0,[17,0,[12,br,0]],r(Y6)],HI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Set {"),[17,[0,r(Pe),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Set {@,")],XI0=r(ii),YI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VI0=[0,[17,0,0],r(z)],zI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],KI0=r(Un),WI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$I0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ZI0=[0,[17,0,[12,41,0]],r(d0)],QI0=[0,[17,0,0],r(z)],rA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eA0=r(Xr),nA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tA0=r(tr),uA0=r(Z0),iA0=r(nr),fA0=[0,[17,0,0],r(z)],xA0=[0,[17,0,[12,br,0]],r(Y6)],oA0=[0,[15,0],r(N0)],aA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],cA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],sA0=[0,[17,0,[12,41,0]],r(d0)],vA0=[0,[15,0],r(N0)],lA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.Literal@ ")],bA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],pA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],mA0=[0,[17,0,[12,41,0]],r(d0)],_A0=[0,[17,0,[12,41,0]],r(d0)],yA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.Identifier@ ")],hA0=[0,[17,0,[12,41,0]],r(d0)],dA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.PrivateName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.PrivateName@ ")],kA0=[0,[17,0,[12,41,0]],r(d0)],wA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Computed"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.Computed@ ")],EA0=[0,[17,0,[12,41,0]],r(d0)],SA0=[0,[15,0],r(N0)],gA0=r(Yr),FA0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],TA0=r("Flow_ast.Expression.TaggedTemplate.tag"),OA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IA0=[0,[17,0,0],r(z)],AA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NA0=r(EY),CA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],DA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],LA0=[0,[17,0,[12,41,0]],r(d0)],RA0=[0,[17,0,0],r(z)],jA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GA0=r(Xr),MA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BA0=r(tr),qA0=r(Z0),UA0=r(nr),HA0=[0,[17,0,0],r(z)],XA0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],YA0=[0,[15,0],r(N0)],VA0=r(Yr),zA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],KA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WA0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JA0=r("Flow_ast.Expression.TemplateLiteral.quasis"),$A0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZA0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QA0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],rN0=[0,[17,0,0],r(z)],eN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nN0=r(Mg),tN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],iN0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],fN0=[0,[17,0,0],r(z)],xN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oN0=r(Xr),aN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cN0=r(tr),sN0=r(Z0),vN0=r(nr),lN0=[0,[17,0,0],r(z)],bN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pN0=[0,[15,0],r(N0)],mN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],_N0=r("Flow_ast.Expression.TemplateLiteral.Element.value"),yN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hN0=[0,[17,0,0],r(z)],dN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kN0=r(aU),wN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EN0=[0,[9,0,0],r(An)],SN0=[0,[17,0,0],r(z)],gN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],FN0=[0,[15,0],r(N0)],TN0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ON0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],IN0=[0,[17,0,[12,41,0]],r(d0)],AN0=[0,[15,0],r(N0)],NN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],CN0=r("Flow_ast.Expression.TemplateLiteral.Element.raw"),PN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DN0=[0,[3,0,0],r(zt)],LN0=[0,[17,0,0],r(z)],RN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jN0=r(PY),GN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],MN0=[0,[3,0,0],r(zt)],BN0=[0,[17,0,0],r(z)],qN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],UN0=[0,[15,0],r(N0)],HN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],YN0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],VN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KN0=r("Flow_ast.Expression.Array.elements"),WN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],$N0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],ZN0=[0,[17,0,0],r(z)],QN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rC0=r(Xr),eC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nC0=r(tr),tC0=r(Z0),uC0=r(nr),iC0=[0,[17,0,0],r(z)],fC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],xC0=[0,[15,0],r(N0)],oC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array.Expression@ ")],aC0=[0,[17,0,[12,41,0]],r(d0)],cC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array.Spread"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array.Spread@ ")],sC0=[0,[17,0,[12,41,0]],r(d0)],vC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array.Hole"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array.Hole@ ")],lC0=[0,[17,0,[12,41,0]],r(d0)],bC0=[0,[15,0],r(N0)],pC0=r(Yr),mC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],_C0=r("Flow_ast.Expression.SpreadElement.argument"),yC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hC0=[0,[17,0,0],r(z)],dC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kC0=r(Xr),wC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EC0=r(tr),SC0=r(Z0),gC0=r(nr),FC0=[0,[17,0,0],r(z)],TC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OC0=[0,[15,0],r(N0)],IC0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AC0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NC0=[0,[17,0,[12,41,0]],r(d0)],CC0=[0,[15,0],r(N0)],PC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],LC0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],RC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],GC0=r("Flow_ast.Expression.CallTypeArgs.arguments"),MC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],qC0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],UC0=[0,[17,0,0],r(z)],HC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XC0=r(Xr),YC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VC0=r(tr),zC0=r(Z0),KC0=r(nr),WC0=[0,[17,0,0],r(z)],JC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$C0=[0,[15,0],r(N0)],ZC0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],QC0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rP0=[0,[17,0,[12,41,0]],r(d0)],eP0=[0,[15,0],r(N0)],nP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.CallTypeArg.Explicit"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.CallTypeArg.Explicit@ ")],tP0=[0,[17,0,[12,41,0]],r(d0)],uP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.CallTypeArg.Implicit"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.CallTypeArg.Implicit@ ")],iP0=[0,[17,0,[12,41,0]],r(d0)],fP0=[0,[15,0],r(N0)],xP0=r(Yr),oP0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aP0=r("Flow_ast.Expression.CallTypeArg.Implicit.comments"),cP0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sP0=r(tr),vP0=r(Z0),lP0=r(nr),bP0=[0,[17,0,0],r(z)],pP0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],mP0=[0,[15,0],r(N0)],_P0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],yP0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],hP0=[0,[17,0,[12,41,0]],r(d0)],dP0=[0,[15,0],r(N0)],kP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Block"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Block@ ")],wP0=[0,[17,0,[12,41,0]],r(d0)],EP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Break"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Break@ ")],SP0=[0,[17,0,[12,41,0]],r(d0)],gP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ClassDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ClassDeclaration@ ")],FP0=[0,[17,0,[12,41,0]],r(d0)],TP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Continue"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Continue@ ")],OP0=[0,[17,0,[12,41,0]],r(d0)],IP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Debugger"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Debugger@ ")],AP0=[0,[17,0,[12,41,0]],r(d0)],NP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareClass"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareClass@ ")],CP0=[0,[17,0,[12,41,0]],r(d0)],PP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration@ ")],DP0=[0,[17,0,[12,41,0]],r(d0)],LP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareFunction"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareFunction@ ")],RP0=[0,[17,0,[12,41,0]],r(d0)],jP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareInterface"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareInterface@ ")],GP0=[0,[17,0,[12,41,0]],r(d0)],MP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModule"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModule@ ")],BP0=[0,[17,0,[12,41,0]],r(d0)],qP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModuleExports"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModuleExports@ ")],UP0=[0,[17,0,[12,41,0]],r(d0)],HP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareTypeAlias"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareTypeAlias@ ")],XP0=[0,[17,0,[12,41,0]],r(d0)],YP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareOpaqueType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareOpaqueType@ ")],VP0=[0,[17,0,[12,41,0]],r(d0)],zP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareVariable"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareVariable@ ")],KP0=[0,[17,0,[12,41,0]],r(d0)],WP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DoWhile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DoWhile@ ")],JP0=[0,[17,0,[12,41,0]],r(d0)],$P0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Empty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Empty@ ")],ZP0=[0,[17,0,[12,41,0]],r(d0)],QP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration@ ")],rD0=[0,[17,0,[12,41,0]],r(d0)],eD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportDefaultDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration@ ")],nD0=[0,[17,0,[12,41,0]],r(d0)],tD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportNamedDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportNamedDeclaration@ ")],uD0=[0,[17,0,[12,41,0]],r(d0)],iD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Expression@ ")],fD0=[0,[17,0,[12,41,0]],r(d0)],xD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.For"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.For@ ")],oD0=[0,[17,0,[12,41,0]],r(d0)],aD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForIn"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForIn@ ")],cD0=[0,[17,0,[12,41,0]],r(d0)],sD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForOf"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForOf@ ")],vD0=[0,[17,0,[12,41,0]],r(d0)],lD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.FunctionDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.FunctionDeclaration@ ")],bD0=[0,[17,0,[12,41,0]],r(d0)],pD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.If"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.If@ ")],mD0=[0,[17,0,[12,41,0]],r(d0)],_D0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ImportDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ImportDeclaration@ ")],yD0=[0,[17,0,[12,41,0]],r(d0)],hD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.InterfaceDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.InterfaceDeclaration@ ")],dD0=[0,[17,0,[12,41,0]],r(d0)],kD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Labeled"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Labeled@ ")],wD0=[0,[17,0,[12,41,0]],r(d0)],ED0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Return"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Return@ ")],SD0=[0,[17,0,[12,41,0]],r(d0)],gD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Switch"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Switch@ ")],FD0=[0,[17,0,[12,41,0]],r(d0)],TD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Throw"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Throw@ ")],OD0=[0,[17,0,[12,41,0]],r(d0)],ID0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Try"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Try@ ")],AD0=[0,[17,0,[12,41,0]],r(d0)],ND0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.TypeAlias"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.TypeAlias@ ")],CD0=[0,[17,0,[12,41,0]],r(d0)],PD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.OpaqueType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.OpaqueType@ ")],DD0=[0,[17,0,[12,41,0]],r(d0)],LD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.VariableDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.VariableDeclaration@ ")],RD0=[0,[17,0,[12,41,0]],r(d0)],jD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.While"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.While@ ")],GD0=[0,[17,0,[12,41,0]],r(d0)],MD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.With"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.With@ ")],BD0=[0,[17,0,[12,41,0]],r(d0)],qD0=[0,[15,0],r(N0)],UD0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],HD0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],XD0=[0,[17,0,[12,41,0]],r(d0)],YD0=[0,[15,0],r(N0)],VD0=r("Flow_ast.Statement.ExportValue"),zD0=r("Flow_ast.Statement.ExportType"),KD0=[0,[15,0],r(N0)],WD0=r(Yr),JD0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$D0=r("Flow_ast.Statement.Empty.comments"),ZD0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QD0=r(tr),rL0=r(Z0),eL0=r(nr),nL0=[0,[17,0,0],r(z)],tL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],uL0=[0,[15,0],r(N0)],iL0=r(Yr),fL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],xL0=r("Flow_ast.Statement.Expression.expression"),oL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aL0=[0,[17,0,0],r(z)],cL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sL0=r(Zi),vL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lL0=r(tr),bL0=[0,[3,0,0],r(zt)],pL0=r(Z0),mL0=r(nr),_L0=[0,[17,0,0],r(z)],yL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hL0=r(Xr),dL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kL0=r(tr),wL0=r(Z0),EL0=r(nr),SL0=[0,[17,0,0],r(z)],gL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],FL0=[0,[15,0],r(N0)],TL0=r(Yr),OL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IL0=r("Flow_ast.Statement.ImportDeclaration.import_kind"),AL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NL0=[0,[17,0,0],r(z)],CL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PL0=r(cc),DL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LL0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],RL0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jL0=[0,[17,0,[12,41,0]],r(d0)],GL0=[0,[17,0,0],r(z)],ML0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BL0=r(_i),qL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UL0=r(tr),HL0=r(Z0),XL0=r(nr),YL0=[0,[17,0,0],r(z)],VL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zL0=r(Cv),KL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],WL0=r(tr),JL0=r(Z0),$L0=r(nr),ZL0=[0,[17,0,0],r(z)],QL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rR0=r(Xr),eR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nR0=r(tr),tR0=r(Z0),uR0=r(nr),iR0=[0,[17,0,0],r(z)],fR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],xR0=[0,[15,0],r(N0)],oR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aR0=r("Flow_ast.Statement.ImportDeclaration.kind"),cR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sR0=r(tr),vR0=r(Z0),lR0=r(nr),bR0=[0,[17,0,0],r(z)],pR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mR0=r(B2),_R0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yR0=r(tr),hR0=r(Z0),dR0=r(nr),kR0=[0,[17,0,0],r(z)],wR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ER0=r("remote"),SR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gR0=[0,[17,0,0],r(z)],FR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],TR0=[0,[15,0],r(N0)],OR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],IR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers@ ")],AR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],NR0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],CR0=[0,[17,0,[12,41,0]],r(d0)],PR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier@ ")],DR0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],LR0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],RR0=[0,[17,0,[12,41,0]],r(d0)],jR0=[0,[17,0,[12,41,0]],r(d0)],GR0=[0,[15,0],r(N0)],MR0=r("Flow_ast.Statement.ImportDeclaration.ImportType"),BR0=r("Flow_ast.Statement.ImportDeclaration.ImportTypeof"),qR0=r("Flow_ast.Statement.ImportDeclaration.ImportValue"),UR0=[0,[15,0],r(N0)],HR0=r(Yr),XR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],YR0=r("Flow_ast.Statement.DeclareExportDeclaration.default"),VR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zR0=r(tr),KR0=r(Z0),WR0=r(nr),JR0=[0,[17,0,0],r(z)],$R0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZR0=r(P2),QR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rj0=r(tr),ej0=r(Z0),nj0=r(nr),tj0=[0,[17,0,0],r(z)],uj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ij0=r(Cv),fj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xj0=r(tr),oj0=r(Z0),aj0=r(nr),cj0=[0,[17,0,0],r(z)],sj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vj0=r(cc),lj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bj0=r(tr),pj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_j0=[0,[17,0,[12,41,0]],r(d0)],yj0=r(Z0),hj0=r(nr),dj0=[0,[17,0,0],r(z)],kj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wj0=r(Xr),Ej0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sj0=r(tr),gj0=r(Z0),Fj0=r(nr),Tj0=[0,[17,0,0],r(z)],Oj0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ij0=[0,[15,0],r(N0)],Aj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Variable"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Variable@ ")],Nj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Cj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Pj0=[0,[17,0,[12,41,0]],r(d0)],Dj0=[0,[17,0,[12,41,0]],r(d0)],Lj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Function"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Function@ ")],Rj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Gj0=[0,[17,0,[12,41,0]],r(d0)],Mj0=[0,[17,0,[12,41,0]],r(d0)],Bj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Class"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Class@ ")],qj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Uj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Hj0=[0,[17,0,[12,41,0]],r(d0)],Xj0=[0,[17,0,[12,41,0]],r(d0)],Yj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.DefaultType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.DefaultType@ ")],Vj0=[0,[17,0,[12,41,0]],r(d0)],zj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.NamedType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedType@ ")],Kj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Wj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Jj0=[0,[17,0,[12,41,0]],r(d0)],$j0=[0,[17,0,[12,41,0]],r(d0)],Zj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType@ ")],Qj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],rG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],eG0=[0,[17,0,[12,41,0]],r(d0)],nG0=[0,[17,0,[12,41,0]],r(d0)],tG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Interface"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Interface@ ")],uG0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],iG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],fG0=[0,[17,0,[12,41,0]],r(d0)],xG0=[0,[17,0,[12,41,0]],r(d0)],oG0=[0,[15,0],r(N0)],aG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportDefaultDeclaration.Declaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Declaration@ ")],cG0=[0,[17,0,[12,41,0]],r(d0)],sG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportDefaultDeclaration.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Expression@ ")],vG0=[0,[17,0,[12,41,0]],r(d0)],lG0=[0,[15,0],r(N0)],bG0=r(Yr),pG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],mG0=r("Flow_ast.Statement.ExportDefaultDeclaration.default"),_G0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yG0=[0,[17,0,0],r(z)],hG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dG0=r(P2),kG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wG0=[0,[17,0,0],r(z)],EG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],SG0=r(Xr),gG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FG0=r(tr),TG0=r(Z0),OG0=r(nr),IG0=[0,[17,0,0],r(z)],AG0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],NG0=[0,[15,0],r(N0)],CG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers@ ")],DG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],LG0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],RG0=[0,[17,0,[12,41,0]],r(d0)],jG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier@ ")],GG0=[0,[17,0,[12,41,0]],r(d0)],MG0=[0,[15,0],r(N0)],BG0=r(Yr),qG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],UG0=r("Flow_ast.Statement.ExportNamedDeclaration.declaration"),HG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XG0=r(tr),YG0=r(Z0),VG0=r(nr),zG0=[0,[17,0,0],r(z)],KG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WG0=r(Cv),JG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$G0=r(tr),ZG0=r(Z0),QG0=r(nr),rM0=[0,[17,0,0],r(z)],eM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nM0=r(cc),tM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uM0=r(tr),iM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],fM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],xM0=[0,[17,0,[12,41,0]],r(d0)],oM0=r(Z0),aM0=r(nr),cM0=[0,[17,0,0],r(z)],sM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vM0=r("export_kind"),lM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bM0=[0,[17,0,0],r(z)],pM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mM0=r(Xr),_M0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yM0=r(tr),hM0=r(Z0),dM0=r(nr),kM0=[0,[17,0,0],r(z)],wM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],EM0=[0,[15,0],r(N0)],SM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],gM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],FM0=r(tr),TM0=r(Z0),OM0=r(nr),IM0=[0,[17,0,[12,41,0]],r(d0)],AM0=[0,[15,0],r(N0)],NM0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],CM0=r("Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifier.local"),PM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DM0=[0,[17,0,0],r(z)],LM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RM0=r(I4),jM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GM0=r(tr),MM0=r(Z0),BM0=r(nr),qM0=[0,[17,0,0],r(z)],UM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],HM0=[0,[15,0],r(N0)],XM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],YM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],VM0=[0,[17,0,[12,41,0]],r(d0)],zM0=[0,[15,0],r(N0)],KM0=r(Yr),WM0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JM0=r("Flow_ast.Statement.DeclareModuleExports.annot"),$M0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZM0=[0,[17,0,0],r(z)],QM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rB0=r(Xr),eB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nB0=r(tr),tB0=r(Z0),uB0=r(nr),iB0=[0,[17,0,0],r(z)],fB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],xB0=[0,[15,0],r(N0)],oB0=r(Yr),aB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],cB0=r("Flow_ast.Statement.DeclareModule.id"),sB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vB0=[0,[17,0,0],r(z)],lB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bB0=r(Zn),pB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_B0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yB0=[0,[17,0,[12,41,0]],r(d0)],hB0=[0,[17,0,0],r(z)],dB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kB0=r($c),wB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EB0=[0,[17,0,0],r(z)],SB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gB0=r(Xr),FB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TB0=r(tr),OB0=r(Z0),IB0=r(nr),AB0=[0,[17,0,0],r(z)],NB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],CB0=[0,[15,0],r(N0)],PB0=r("Flow_ast.Statement.DeclareModule.ES"),DB0=r("Flow_ast.Statement.DeclareModule.CommonJS"),LB0=[0,[15,0],r(N0)],RB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModule.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModule.Identifier@ ")],jB0=[0,[17,0,[12,41,0]],r(d0)],GB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModule.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModule.Literal@ ")],MB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],BB0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],qB0=[0,[17,0,[12,41,0]],r(d0)],UB0=[0,[17,0,[12,41,0]],r(d0)],HB0=[0,[15,0],r(N0)],XB0=r(Yr),YB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VB0=r("Flow_ast.Statement.DeclareFunction.id"),zB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KB0=[0,[17,0,0],r(z)],WB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JB0=r(Qc),$B0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZB0=[0,[17,0,0],r(z)],QB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rq0=r(r7),eq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nq0=r(tr),tq0=r(Z0),uq0=r(nr),iq0=[0,[17,0,0],r(z)],fq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xq0=r(Xr),oq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aq0=r(tr),cq0=r(Z0),sq0=r(nr),vq0=[0,[17,0,0],r(z)],lq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],bq0=[0,[15,0],r(N0)],pq0=r(Yr),mq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],_q0=r("Flow_ast.Statement.DeclareVariable.id"),yq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hq0=[0,[17,0,0],r(z)],dq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kq0=r(Qc),wq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Eq0=[0,[17,0,0],r(z)],Sq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gq0=r(Xr),Fq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tq0=r(tr),Oq0=r(Z0),Iq0=r(nr),Aq0=[0,[17,0,0],r(z)],Nq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Cq0=[0,[15,0],r(N0)],Pq0=r(Yr),Dq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Lq0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Rq0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jq0=[0,[17,0,[12,41,0]],r(d0)],Gq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Mq0=r("Flow_ast.Statement.DeclareClass.id"),Bq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qq0=[0,[17,0,0],r(z)],Uq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hq0=r(sv),Xq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yq0=r(tr),Vq0=r(Z0),zq0=r(nr),Kq0=[0,[17,0,0],r(z)],Wq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jq0=r(Zn),$q0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zq0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Qq0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rU0=[0,[17,0,[12,41,0]],r(d0)],eU0=[0,[17,0,0],r(z)],nU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tU0=r(P7),uU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iU0=r(tr),fU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],xU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],oU0=[0,[17,0,[12,41,0]],r(d0)],aU0=r(Z0),cU0=r(nr),sU0=[0,[17,0,0],r(z)],vU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lU0=r(Hy),bU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pU0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],mU0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],_U0=[0,[17,0,0],r(z)],yU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hU0=r(ws),dU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kU0=r(tr),wU0=r(Z0),EU0=r(nr),SU0=[0,[17,0,0],r(z)],gU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FU0=r(Xr),TU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OU0=r(tr),IU0=r(Z0),AU0=r(nr),NU0=[0,[17,0,0],r(z)],CU0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],PU0=[0,[15,0],r(N0)],DU0=r(Yr),LU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],GU0=[0,[17,0,[12,41,0]],r(d0)],MU0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],BU0=r("Flow_ast.Statement.Interface.id"),qU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UU0=[0,[17,0,0],r(z)],HU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XU0=r(sv),YU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VU0=r(tr),zU0=r(Z0),KU0=r(nr),WU0=[0,[17,0,0],r(z)],JU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$U0=r(P7),ZU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QU0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],rH0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],eH0=[0,[17,0,0],r(z)],nH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tH0=r(Zn),uH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],fH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],xH0=[0,[17,0,[12,41,0]],r(d0)],oH0=[0,[17,0,0],r(z)],aH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cH0=r(Xr),sH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vH0=r(tr),lH0=r(Z0),bH0=r(nr),pH0=[0,[17,0,0],r(z)],mH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_H0=[0,[15,0],r(N0)],yH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.BooleanBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.BooleanBody@ ")],hH0=[0,[17,0,[12,41,0]],r(d0)],dH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.NumberBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.NumberBody@ ")],kH0=[0,[17,0,[12,41,0]],r(d0)],wH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.StringBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody@ ")],EH0=[0,[17,0,[12,41,0]],r(d0)],SH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.SymbolBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.SymbolBody@ ")],gH0=[0,[17,0,[12,41,0]],r(d0)],FH0=[0,[15,0],r(N0)],TH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],OH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],IH0=[0,[17,0,[12,41,0]],r(d0)],AH0=[0,[15,0],r(N0)],NH0=r(Yr),CH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],PH0=r("Flow_ast.Statement.EnumDeclaration.id"),DH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LH0=[0,[17,0,0],r(z)],RH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jH0=r(Zn),GH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],MH0=[0,[17,0,0],r(z)],BH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qH0=r(Xr),UH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],HH0=r(tr),XH0=r(Z0),YH0=r(nr),VH0=[0,[17,0,0],r(z)],zH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],KH0=[0,[15,0],r(N0)],WH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],$H0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],ZH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rX0=r("Flow_ast.Statement.EnumDeclaration.SymbolBody.members"),eX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],tX0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],uX0=[0,[17,0,0],r(z)],iX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fX0=r(w4),xX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oX0=[0,[9,0,0],r(An)],aX0=[0,[17,0,0],r(z)],cX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sX0=r(Xr),vX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lX0=r(tr),bX0=r(Z0),pX0=r(nr),mX0=[0,[17,0,0],r(z)],_X0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yX0=[0,[15,0],r(N0)],hX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted@ ")],wX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],EX0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],SX0=[0,[17,0,[12,41,0]],r(d0)],gX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.StringBody.Initialized"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Initialized@ ")],FX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],TX0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],OX0=[0,[17,0,[12,41,0]],r(d0)],IX0=[0,[15,0],r(N0)],AX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],CX0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],PX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DX0=r("Flow_ast.Statement.EnumDeclaration.StringBody.members"),LX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RX0=[0,[17,0,0],r(z)],jX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GX0=r(Fk),MX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BX0=[0,[9,0,0],r(An)],qX0=[0,[17,0,0],r(z)],UX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],HX0=r(w4),XX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YX0=[0,[9,0,0],r(An)],VX0=[0,[17,0,0],r(z)],zX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],KX0=r(Xr),WX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JX0=r(tr),$X0=r(Z0),ZX0=r(nr),QX0=[0,[17,0,0],r(z)],rY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],eY0=[0,[15,0],r(N0)],nY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],uY0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],iY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],xY0=r("Flow_ast.Statement.EnumDeclaration.NumberBody.members"),oY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],cY0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],sY0=[0,[17,0,0],r(z)],vY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lY0=r(Fk),bY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pY0=[0,[9,0,0],r(An)],mY0=[0,[17,0,0],r(z)],_Y0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yY0=r(w4),hY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dY0=[0,[9,0,0],r(An)],kY0=[0,[17,0,0],r(z)],wY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EY0=r(Xr),SY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gY0=r(tr),FY0=r(Z0),TY0=r(nr),OY0=[0,[17,0,0],r(z)],IY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AY0=[0,[15,0],r(N0)],NY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],PY0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],DY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],RY0=r("Flow_ast.Statement.EnumDeclaration.BooleanBody.members"),jY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],MY0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],BY0=[0,[17,0,0],r(z)],qY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],UY0=r(Fk),HY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XY0=[0,[9,0,0],r(An)],YY0=[0,[17,0,0],r(z)],VY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zY0=r(w4),KY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],WY0=[0,[9,0,0],r(An)],JY0=[0,[17,0,0],r(z)],$Y0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZY0=r(Xr),QY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rV0=r(tr),eV0=r(Z0),nV0=r(nr),tV0=[0,[17,0,0],r(z)],uV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],iV0=[0,[15,0],r(N0)],fV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],xV0=r("Flow_ast.Statement.EnumDeclaration.InitializedMember.id"),oV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aV0=[0,[17,0,0],r(z)],cV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sV0=r(ji),vV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],bV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],pV0=[0,[17,0,[12,41,0]],r(d0)],mV0=[0,[17,0,0],r(z)],_V0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yV0=[0,[15,0],r(N0)],hV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],dV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],kV0=[0,[17,0,[12,41,0]],r(d0)],wV0=[0,[15,0],r(N0)],EV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],SV0=r("Flow_ast.Statement.EnumDeclaration.DefaultedMember.id"),gV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FV0=[0,[17,0,0],r(z)],TV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OV0=[0,[15,0],r(N0)],IV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NV0=[0,[17,0,[12,41,0]],r(d0)],CV0=[0,[15,0],r(N0)],PV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForOf.LeftDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForOf.LeftDeclaration@ ")],DV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],LV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],RV0=[0,[17,0,[12,41,0]],r(d0)],jV0=[0,[17,0,[12,41,0]],r(d0)],GV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForOf.LeftPattern"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForOf.LeftPattern@ ")],MV0=[0,[17,0,[12,41,0]],r(d0)],BV0=[0,[15,0],r(N0)],qV0=r(Yr),UV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],HV0=r("Flow_ast.Statement.ForOf.left"),XV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YV0=[0,[17,0,0],r(z)],VV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zV0=r(Cu),KV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],WV0=[0,[17,0,0],r(z)],JV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$V0=r(Zn),ZV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QV0=[0,[17,0,0],r(z)],rz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ez0=r(dx),nz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tz0=[0,[9,0,0],r(An)],uz0=[0,[17,0,0],r(z)],iz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fz0=r(Xr),xz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oz0=r(tr),az0=r(Z0),cz0=r(nr),sz0=[0,[17,0,0],r(z)],vz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],lz0=[0,[15,0],r(N0)],bz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForIn.LeftDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForIn.LeftDeclaration@ ")],pz0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mz0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_z0=[0,[17,0,[12,41,0]],r(d0)],yz0=[0,[17,0,[12,41,0]],r(d0)],hz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForIn.LeftPattern"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForIn.LeftPattern@ ")],dz0=[0,[17,0,[12,41,0]],r(d0)],kz0=[0,[15,0],r(N0)],wz0=r(Yr),Ez0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Sz0=r("Flow_ast.Statement.ForIn.left"),gz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fz0=[0,[17,0,0],r(z)],Tz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Oz0=r(Cu),Iz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Az0=[0,[17,0,0],r(z)],Nz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Cz0=r(Zn),Pz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dz0=[0,[17,0,0],r(z)],Lz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rz0=r(R8),jz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gz0=[0,[9,0,0],r(An)],Mz0=[0,[17,0,0],r(z)],Bz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qz0=r(Xr),Uz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hz0=r(tr),Xz0=r(Z0),Yz0=r(nr),Vz0=[0,[17,0,0],r(z)],zz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Kz0=[0,[15,0],r(N0)],Wz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.For.InitDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.For.InitDeclaration@ ")],Jz0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$z0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Zz0=[0,[17,0,[12,41,0]],r(d0)],Qz0=[0,[17,0,[12,41,0]],r(d0)],rK0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.For.InitExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.For.InitExpression@ ")],eK0=[0,[17,0,[12,41,0]],r(d0)],nK0=[0,[15,0],r(N0)],tK0=r(Yr),uK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],iK0=r("Flow_ast.Statement.For.init"),fK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xK0=r(tr),oK0=r(Z0),aK0=r(nr),cK0=[0,[17,0,0],r(z)],sK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vK0=r(Ss),lK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bK0=r(tr),pK0=r(Z0),mK0=r(nr),_K0=[0,[17,0,0],r(z)],yK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hK0=r(fU),dK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kK0=r(tr),wK0=r(Z0),EK0=r(nr),SK0=[0,[17,0,0],r(z)],gK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FK0=r(Zn),TK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OK0=[0,[17,0,0],r(z)],IK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],AK0=r(Xr),NK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],CK0=r(tr),PK0=r(Z0),DK0=r(nr),LK0=[0,[17,0,0],r(z)],RK0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jK0=[0,[15,0],r(N0)],GK0=r(Yr),MK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],BK0=r("Flow_ast.Statement.DoWhile.body"),qK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UK0=[0,[17,0,0],r(z)],HK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XK0=r(Ss),YK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VK0=[0,[17,0,0],r(z)],zK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],KK0=r(Xr),WK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JK0=r(tr),$K0=r(Z0),ZK0=r(nr),QK0=[0,[17,0,0],r(z)],rW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],eW0=[0,[15,0],r(N0)],nW0=r(Yr),tW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],uW0=r("Flow_ast.Statement.While.test"),iW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fW0=[0,[17,0,0],r(z)],xW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oW0=r(Zn),aW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cW0=[0,[17,0,0],r(z)],sW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vW0=r(Xr),lW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bW0=r(tr),pW0=r(Z0),mW0=r(nr),_W0=[0,[17,0,0],r(z)],yW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],hW0=[0,[15,0],r(N0)],dW0=r("Flow_ast.Statement.VariableDeclaration.Var"),kW0=r("Flow_ast.Statement.VariableDeclaration.Let"),wW0=r("Flow_ast.Statement.VariableDeclaration.Const"),EW0=[0,[15,0],r(N0)],SW0=r(Yr),gW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],TW0=r("Flow_ast.Statement.VariableDeclaration.declarations"),OW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],AW0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],NW0=[0,[17,0,0],r(z)],CW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PW0=r($c),DW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LW0=[0,[17,0,0],r(z)],RW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jW0=r(Xr),GW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],MW0=r(tr),BW0=r(Z0),qW0=r(nr),UW0=[0,[17,0,0],r(z)],HW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],XW0=[0,[15,0],r(N0)],YW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VW0=r("Flow_ast.Statement.VariableDeclaration.Declarator.id"),zW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KW0=[0,[17,0,0],r(z)],WW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JW0=r(ji),$W0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZW0=r(tr),QW0=r(Z0),rJ0=r(nr),eJ0=[0,[17,0,0],r(z)],nJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],tJ0=[0,[15,0],r(N0)],uJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],iJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],fJ0=[0,[17,0,[12,41,0]],r(d0)],xJ0=[0,[15,0],r(N0)],oJ0=r(Yr),aJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],cJ0=r("Flow_ast.Statement.Try.block"),sJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],lJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],bJ0=[0,[17,0,[12,41,0]],r(d0)],pJ0=[0,[17,0,0],r(z)],mJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_J0=r(MU),yJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hJ0=r(tr),dJ0=r(Z0),kJ0=r(nr),wJ0=[0,[17,0,0],r(z)],EJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],SJ0=r(CH),gJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FJ0=r(tr),TJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],OJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],IJ0=[0,[17,0,[12,41,0]],r(d0)],AJ0=r(Z0),NJ0=r(nr),CJ0=[0,[17,0,0],r(z)],PJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DJ0=r(Xr),LJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RJ0=r(tr),jJ0=r(Z0),GJ0=r(nr),MJ0=[0,[17,0,0],r(z)],BJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qJ0=[0,[15,0],r(N0)],UJ0=r(Yr),HJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],XJ0=r("Flow_ast.Statement.Try.CatchClause.param"),YJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VJ0=r(tr),zJ0=r(Z0),KJ0=r(nr),WJ0=[0,[17,0,0],r(z)],JJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$J0=r(Zn),ZJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],r$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],e$0=[0,[17,0,[12,41,0]],r(d0)],n$0=[0,[17,0,0],r(z)],t$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u$0=r(Xr),i$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f$0=r(tr),x$0=r(Z0),o$0=r(nr),a$0=[0,[17,0,0],r(z)],c$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],s$0=[0,[15,0],r(N0)],v$0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],l$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],b$0=[0,[17,0,[12,41,0]],r(d0)],p$0=[0,[15,0],r(N0)],m$0=r(Yr),_$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],y$0=r("Flow_ast.Statement.Throw.argument"),h$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d$0=[0,[17,0,0],r(z)],k$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],w$0=r(Xr),E$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S$0=r(tr),g$0=r(Z0),F$0=r(nr),T$0=[0,[17,0,0],r(z)],O$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],I$0=[0,[15,0],r(N0)],A$0=r(Yr),N$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],C$0=r("Flow_ast.Statement.Return.argument"),P$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],D$0=r(tr),L$0=r(Z0),R$0=r(nr),j$0=[0,[17,0,0],r(z)],G$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],M$0=r(Xr),B$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q$0=r(tr),U$0=r(Z0),H$0=r(nr),X$0=[0,[17,0,0],r(z)],Y$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],V$0=r("return_out"),z$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],K$0=[0,[17,0,0],r(z)],W$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],J$0=[0,[15,0],r(N0)],$$0=r(Yr),Z$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rZ0=r("Flow_ast.Statement.Switch.discriminant"),eZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nZ0=[0,[17,0,0],r(z)],tZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uZ0=r(QX),iZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],xZ0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],oZ0=[0,[17,0,0],r(z)],aZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cZ0=r(Xr),sZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vZ0=r(tr),lZ0=r(Z0),bZ0=r(nr),pZ0=[0,[17,0,0],r(z)],mZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_Z0=r("exhaustive_out"),yZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hZ0=[0,[17,0,0],r(z)],dZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],kZ0=[0,[15,0],r(N0)],wZ0=r(Yr),EZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],SZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],gZ0=r("Flow_ast.Statement.Switch.Case.test"),FZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TZ0=r(tr),OZ0=r(Z0),IZ0=r(nr),AZ0=[0,[17,0,0],r(z)],NZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CZ0=r(kv),PZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],LZ0=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],RZ0=[0,[17,0,0],r(z)],jZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GZ0=r(Xr),MZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BZ0=r(tr),qZ0=r(Z0),UZ0=r(nr),HZ0=[0,[17,0,0],r(z)],XZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],YZ0=[0,[15,0],r(N0)],VZ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],zZ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],KZ0=[0,[17,0,[12,41,0]],r(d0)],WZ0=[0,[15,0],r(N0)],JZ0=r(Yr),$Z0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ZZ0=r("Flow_ast.Statement.OpaqueType.id"),QZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rQ0=[0,[17,0,0],r(z)],eQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nQ0=r(sv),tQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uQ0=r(tr),iQ0=r(Z0),fQ0=r(nr),xQ0=[0,[17,0,0],r(z)],oQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aQ0=r(mX),cQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sQ0=r(tr),vQ0=r(Z0),lQ0=r(nr),bQ0=[0,[17,0,0],r(z)],pQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mQ0=r(SX),_Q0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yQ0=r(tr),hQ0=r(Z0),dQ0=r(nr),kQ0=[0,[17,0,0],r(z)],wQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EQ0=r(Xr),SQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gQ0=r(tr),FQ0=r(Z0),TQ0=r(nr),OQ0=[0,[17,0,0],r(z)],IQ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AQ0=[0,[15,0],r(N0)],NQ0=r(Yr),CQ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],PQ0=r("Flow_ast.Statement.TypeAlias.id"),DQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LQ0=[0,[17,0,0],r(z)],RQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jQ0=r(sv),GQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],MQ0=r(tr),BQ0=r(Z0),qQ0=r(nr),UQ0=[0,[17,0,0],r(z)],HQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XQ0=r(Cu),YQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VQ0=[0,[17,0,0],r(z)],zQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],KQ0=r(Xr),WQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JQ0=r(tr),$Q0=r(Z0),ZQ0=r(nr),QQ0=[0,[17,0,0],r(z)],r0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],e0r=[0,[15,0],r(N0)],n0r=r(Yr),t0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],u0r=r("Flow_ast.Statement.With._object"),i0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f0r=[0,[17,0,0],r(z)],x0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],o0r=r(Zn),a0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],c0r=[0,[17,0,0],r(z)],s0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],v0r=r(Xr),l0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b0r=r(tr),p0r=r(Z0),m0r=r(nr),_0r=[0,[17,0,0],r(z)],y0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],h0r=[0,[15,0],r(N0)],d0r=r(Yr),k0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w0r=r("Flow_ast.Statement.Debugger.comments"),E0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S0r=r(tr),g0r=r(Z0),F0r=r(nr),T0r=[0,[17,0,0],r(z)],O0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],I0r=[0,[15,0],r(N0)],A0r=r(Yr),N0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],C0r=r("Flow_ast.Statement.Continue.label"),P0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],D0r=r(tr),L0r=r(Z0),R0r=r(nr),j0r=[0,[17,0,0],r(z)],G0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],M0r=r(Xr),B0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q0r=r(tr),U0r=r(Z0),H0r=r(nr),X0r=[0,[17,0,0],r(z)],Y0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],V0r=[0,[15,0],r(N0)],z0r=r(Yr),K0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],W0r=r("Flow_ast.Statement.Break.label"),J0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$0r=r(tr),Z0r=r(Z0),Q0r=r(nr),rrr=[0,[17,0,0],r(z)],err=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nrr=r(Xr),trr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],urr=r(tr),irr=r(Z0),frr=r(nr),xrr=[0,[17,0,0],r(z)],orr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],arr=[0,[15,0],r(N0)],crr=r(Yr),srr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vrr=r("Flow_ast.Statement.Labeled.label"),lrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],brr=[0,[17,0,0],r(z)],prr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mrr=r(Zn),_rr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yrr=[0,[17,0,0],r(z)],hrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],drr=r(Xr),krr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wrr=r(tr),Err=r(Z0),Srr=r(nr),grr=[0,[17,0,0],r(z)],Frr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Trr=[0,[15,0],r(N0)],Orr=r(Yr),Irr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Arr=r("Flow_ast.Statement.If.test"),Nrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Crr=[0,[17,0,0],r(z)],Prr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Drr=r(kv),Lrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rrr=[0,[17,0,0],r(z)],jrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Grr=r(m3),Mrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Brr=r(tr),qrr=r(Z0),Urr=r(nr),Hrr=[0,[17,0,0],r(z)],Xrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yrr=r(Xr),Vrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zrr=r(tr),Krr=r(Z0),Wrr=r(nr),Jrr=[0,[17,0,0],r(z)],$rr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Zrr=[0,[15,0],r(N0)],Qrr=r(Yr),rer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],eer=r("Flow_ast.Statement.If.Alternate.body"),ner=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ter=[0,[17,0,0],r(z)],uer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ier=r(Xr),fer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xer=r(tr),oer=r(Z0),aer=r(nr),cer=[0,[17,0,0],r(z)],ser=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ver=[0,[15,0],r(N0)],ler=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ber=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],per=[0,[17,0,[12,41,0]],r(d0)],mer=[0,[15,0],r(N0)],_er=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],her=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],der=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ker=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wer=r("Flow_ast.Statement.Block.body"),Eer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ser=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ger=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Fer=[0,[17,0,0],r(z)],Ter=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Oer=r(Xr),Ier=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Aer=r(tr),Ner=r(Z0),Cer=r(nr),Per=[0,[17,0,0],r(z)],Der=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ler=[0,[15,0],r(N0)],Rer=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Predicate.Declared"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Predicate.Declared@ ")],jer=[0,[17,0,[12,41,0]],r(d0)],Ger=r("Flow_ast.Type.Predicate.Inferred"),Mer=[0,[15,0],r(N0)],Ber=r(Yr),qer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Uer=r("Flow_ast.Type.Predicate.kind"),Her=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Xer=[0,[17,0,0],r(z)],Yer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ver=r(Xr),zer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ker=r(tr),Wer=r(Z0),Jer=r(nr),$er=[0,[17,0,0],r(z)],Zer=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Qer=[0,[15,0],r(N0)],rnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],enr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nnr=[0,[17,0,[12,41,0]],r(d0)],tnr=[0,[15,0],r(N0)],unr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],inr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fnr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],xnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],onr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],anr=r("Flow_ast.Type.TypeArgs.arguments"),cnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],snr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],vnr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],lnr=[0,[17,0,0],r(z)],bnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pnr=r(Xr),mnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_nr=r(tr),ynr=r(Z0),hnr=r(nr),dnr=[0,[17,0,0],r(z)],knr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wnr=[0,[15,0],r(N0)],Enr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Snr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],gnr=[0,[17,0,[12,41,0]],r(d0)],Fnr=[0,[15,0],r(N0)],Tnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Onr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Inr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Anr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Nnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Cnr=r("Flow_ast.Type.TypeParams.params"),Pnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Lnr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Rnr=[0,[17,0,0],r(z)],jnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gnr=r(Xr),Mnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bnr=r(tr),qnr=r(Z0),Unr=r(nr),Hnr=[0,[17,0,0],r(z)],Xnr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ynr=[0,[15,0],r(N0)],Vnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],znr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Knr=[0,[17,0,[12,41,0]],r(d0)],Wnr=[0,[15,0],r(N0)],Jnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$nr=r("Flow_ast.Type.TypeParam.name"),Znr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qnr=[0,[17,0,0],r(z)],rtr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],etr=r(DU),ntr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ttr=[0,[17,0,0],r(z)],utr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],itr=r(cu),ftr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xtr=r(tr),otr=r(Z0),atr=r(nr),ctr=[0,[17,0,0],r(z)],str=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vtr=r(_i),ltr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],btr=r(tr),ptr=r(Z0),mtr=r(nr),_tr=[0,[17,0,0],r(z)],ytr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],htr=[0,[15,0],r(N0)],dtr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ktr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],wtr=[0,[17,0,[12,41,0]],r(d0)],Etr=[0,[15,0],r(N0)],Str=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Missing"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Missing@ ")],gtr=[0,[17,0,[12,41,0]],r(d0)],Ftr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Available"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Available@ ")],Ttr=[0,[17,0,[12,41,0]],r(d0)],Otr=[0,[15,0],r(N0)],Itr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Atr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Ntr=[0,[17,0,[12,41,0]],r(d0)],Ctr=[0,[15,0],r(N0)],Ptr=r(Yr),Dtr=r(Yr),Ltr=r(Yr),Rtr=r(Yr),jtr=r(Yr),Gtr=r(Yr),Mtr=r(Yr),Btr=r(Yr),qtr=r(Yr),Utr=r(Yr),Htr=r(Yr),Xtr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Any"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Any@ ")],Ytr=r(tr),Vtr=r(Z0),ztr=r(nr),Ktr=[0,[17,0,[12,41,0]],r(d0)],Wtr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Mixed"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Mixed@ ")],Jtr=r(tr),$tr=r(Z0),Ztr=r(nr),Qtr=[0,[17,0,[12,41,0]],r(d0)],rur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Empty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Empty@ ")],eur=r(tr),nur=r(Z0),tur=r(nr),uur=[0,[17,0,[12,41,0]],r(d0)],iur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Void"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Void@ ")],fur=r(tr),xur=r(Z0),our=r(nr),aur=[0,[17,0,[12,41,0]],r(d0)],cur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Null"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Null@ ")],sur=r(tr),vur=r(Z0),lur=r(nr),bur=[0,[17,0,[12,41,0]],r(d0)],pur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Number"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Number@ ")],mur=r(tr),_ur=r(Z0),yur=r(nr),hur=[0,[17,0,[12,41,0]],r(d0)],dur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.BigInt"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.BigInt@ ")],kur=r(tr),wur=r(Z0),Eur=r(nr),Sur=[0,[17,0,[12,41,0]],r(d0)],gur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.String"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.String@ ")],Fur=r(tr),Tur=r(Z0),Our=r(nr),Iur=[0,[17,0,[12,41,0]],r(d0)],Aur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Boolean"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Boolean@ ")],Nur=r(tr),Cur=r(Z0),Pur=r(nr),Dur=[0,[17,0,[12,41,0]],r(d0)],Lur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Symbol"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Symbol@ ")],Rur=r(tr),jur=r(Z0),Gur=r(nr),Mur=[0,[17,0,[12,41,0]],r(d0)],Bur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Exists"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Exists@ ")],qur=r(tr),Uur=r(Z0),Hur=r(nr),Xur=[0,[17,0,[12,41,0]],r(d0)],Yur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Nullable"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Nullable@ ")],Vur=[0,[17,0,[12,41,0]],r(d0)],zur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Function"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Function@ ")],Kur=[0,[17,0,[12,41,0]],r(d0)],Wur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object@ ")],Jur=[0,[17,0,[12,41,0]],r(d0)],$ur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Interface"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Interface@ ")],Zur=[0,[17,0,[12,41,0]],r(d0)],Qur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Array"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Array@ ")],r7r=[0,[17,0,[12,41,0]],r(d0)],e7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Generic"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Generic@ ")],n7r=[0,[17,0,[12,41,0]],r(d0)],t7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.IndexedAccess"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.IndexedAccess@ ")],u7r=[0,[17,0,[12,41,0]],r(d0)],i7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.OptionalIndexedAccess"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.OptionalIndexedAccess@ ")],f7r=[0,[17,0,[12,41,0]],r(d0)],x7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Union"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Union@ ")],o7r=[0,[17,0,[12,41,0]],r(d0)],a7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Intersection"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Intersection@ ")],c7r=[0,[17,0,[12,41,0]],r(d0)],s7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Typeof"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Typeof@ ")],v7r=[0,[17,0,[12,41,0]],r(d0)],l7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Tuple"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Tuple@ ")],b7r=[0,[17,0,[12,41,0]],r(d0)],p7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.StringLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.StringLiteral@ ")],m7r=[0,[17,0,[12,41,0]],r(d0)],_7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.NumberLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.NumberLiteral@ ")],y7r=[0,[17,0,[12,41,0]],r(d0)],h7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.BigIntLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.BigIntLiteral@ ")],d7r=[0,[17,0,[12,41,0]],r(d0)],k7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.BooleanLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.BooleanLiteral@ ")],w7r=[0,[17,0,[12,41,0]],r(d0)],E7r=[0,[15,0],r(N0)],S7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],g7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],F7r=[0,[17,0,[12,41,0]],r(d0)],T7r=[0,[15,0],r(N0)],O7r=r(Yr),I7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],A7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],N7r=r("Flow_ast.Type.Intersection.types"),C7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],D7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],L7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],R7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],j7r=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],G7r=[0,[17,0,[12,41,0]],r(d0)],M7r=[0,[17,0,0],r(z)],B7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],q7r=r(Xr),U7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H7r=r(tr),X7r=r(Z0),Y7r=r(nr),V7r=[0,[17,0,0],r(z)],z7r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],K7r=[0,[15,0],r(N0)],W7r=r(Yr),J7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Z7r=r("Flow_ast.Type.Union.types"),Q7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rir=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],tir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],uir=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],iir=[0,[17,0,[12,41,0]],r(d0)],fir=[0,[17,0,0],r(z)],xir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oir=r(Xr),air=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cir=r(tr),sir=r(Z0),vir=r(nr),lir=[0,[17,0,0],r(z)],bir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pir=[0,[15,0],r(N0)],mir=r(Yr),_ir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yir=r("Flow_ast.Type.Array.argument"),hir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dir=[0,[17,0,0],r(z)],kir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wir=r(Xr),Eir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sir=r(tr),gir=r(Z0),Fir=r(nr),Tir=[0,[17,0,0],r(z)],Oir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Iir=[0,[15,0],r(N0)],Air=r(Yr),Nir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Cir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Pir=r("Flow_ast.Type.Tuple.types"),Dir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Lir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Rir=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],jir=[0,[17,0,0],r(z)],Gir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Mir=r(Xr),Bir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qir=r(tr),Uir=r(Z0),Hir=r(nr),Xir=[0,[17,0,0],r(z)],Yir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Vir=[0,[15,0],r(N0)],zir=r(Yr),Kir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Wir=r("Flow_ast.Type.Typeof.argument"),Jir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$ir=[0,[17,0,0],r(z)],Zir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qir=r(Xr),rfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],efr=r(tr),nfr=r(Z0),tfr=r(nr),ufr=[0,[17,0,0],r(z)],ifr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ffr=[0,[15,0],r(N0)],xfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ofr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],afr=[0,[17,0,[12,41,0]],r(d0)],cfr=[0,[15,0],r(N0)],sfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vfr=r("Flow_ast.Type.Typeof.Target.qualification"),lfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bfr=[0,[17,0,0],r(z)],pfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mfr=r(_t),_fr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yfr=[0,[17,0,0],r(z)],hfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dfr=[0,[15,0],r(N0)],kfr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Typeof.Target.Unqualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Typeof.Target.Unqualified@ ")],wfr=[0,[17,0,[12,41,0]],r(d0)],Efr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Typeof.Target.Qualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Typeof.Target.Qualified@ ")],Sfr=[0,[17,0,[12,41,0]],r(d0)],gfr=[0,[15,0],r(N0)],Ffr=r(Yr),Tfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ofr=r("Flow_ast.Type.Nullable.argument"),Ifr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Afr=[0,[17,0,0],r(z)],Nfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Cfr=r(Xr),Pfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dfr=r(tr),Lfr=r(Z0),Rfr=r(nr),jfr=[0,[17,0,0],r(z)],Gfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Mfr=[0,[15,0],r(N0)],Bfr=r(Yr),qfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ufr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Hfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Xfr=[0,[17,0,[12,41,0]],r(d0)],Yfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Vfr=r("Flow_ast.Type.Interface.body"),zfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Kfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Wfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Jfr=[0,[17,0,[12,41,0]],r(d0)],$fr=[0,[17,0,0],r(z)],Zfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qfr=r(P7),rxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],exr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],nxr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],txr=[0,[17,0,0],r(z)],uxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ixr=r(Xr),fxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xxr=r(tr),oxr=r(Z0),axr=r(nr),cxr=[0,[17,0,0],r(z)],sxr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vxr=[0,[15,0],r(N0)],lxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property@ ")],bxr=[0,[17,0,[12,41,0]],r(d0)],pxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.SpreadProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.SpreadProperty@ ")],mxr=[0,[17,0,[12,41,0]],r(d0)],_xr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Indexer"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Indexer@ ")],yxr=[0,[17,0,[12,41,0]],r(d0)],hxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.CallProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.CallProperty@ ")],dxr=[0,[17,0,[12,41,0]],r(d0)],kxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.InternalSlot"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.InternalSlot@ ")],wxr=[0,[17,0,[12,41,0]],r(d0)],Exr=[0,[15,0],r(N0)],Sxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gxr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Fxr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Txr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Oxr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ixr=r("Flow_ast.Type.Object.exact"),Axr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nxr=[0,[9,0,0],r(An)],Cxr=[0,[17,0,0],r(z)],Pxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dxr=r(GY),Lxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rxr=[0,[9,0,0],r(An)],jxr=[0,[17,0,0],r(z)],Gxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Mxr=r(H4),Bxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qxr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Uxr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],Hxr=[0,[17,0,0],r(z)],Xxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yxr=r(Xr),Vxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zxr=r(tr),Kxr=r(Z0),Wxr=r(nr),Jxr=[0,[17,0,0],r(z)],$xr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Zxr=[0,[15,0],r(N0)],Qxr=r(Yr),ror=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],eor=r("Flow_ast.Type.Object.InternalSlot.id"),nor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tor=[0,[17,0,0],r(z)],uor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ior=r(Un),xor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oor=[0,[17,0,0],r(z)],aor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cor=r(qu),sor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vor=[0,[9,0,0],r(An)],lor=[0,[17,0,0],r(z)],bor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],por=r(tu),mor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_or=[0,[9,0,0],r(An)],yor=[0,[17,0,0],r(z)],hor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dor=r(nU),kor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wor=[0,[9,0,0],r(An)],Eor=[0,[17,0,0],r(z)],Sor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gor=r(Xr),For=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tor=r(tr),Oor=r(Z0),Ior=r(nr),Aor=[0,[17,0,0],r(z)],Nor=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Cor=[0,[15,0],r(N0)],Por=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dor=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Lor=[0,[17,0,[12,41,0]],r(d0)],Ror=[0,[15,0],r(N0)],jor=r(Yr),Gor=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Mor=r("Flow_ast.Type.Object.CallProperty.value"),Bor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qor=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Uor=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Hor=[0,[17,0,[12,41,0]],r(d0)],Xor=[0,[17,0,0],r(z)],Yor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vor=r(tu),zor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Kor=[0,[9,0,0],r(An)],Wor=[0,[17,0,0],r(z)],Jor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$or=r(Xr),Zor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qor=r(tr),rar=r(Z0),ear=r(nr),nar=[0,[17,0,0],r(z)],tar=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],uar=[0,[15,0],r(N0)],iar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],far=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],xar=[0,[17,0,[12,41,0]],r(d0)],oar=[0,[15,0],r(N0)],aar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],car=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],sar=[0,[17,0,[12,41,0]],r(d0)],lar=[0,[15,0],r(N0)],bar=r(Yr),par=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],mar=r("Flow_ast.Type.Object.Indexer.id"),_ar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yar=r(tr),har=r(Z0),dar=r(nr),kar=[0,[17,0,0],r(z)],war=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ear=r(ii),Sar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gar=[0,[17,0,0],r(z)],Far=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tar=r(Un),Oar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Iar=[0,[17,0,0],r(z)],Aar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Nar=r(tu),Car=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Par=[0,[9,0,0],r(An)],Dar=[0,[17,0,0],r(z)],Lar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rar=r(cu),jar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gar=r(tr),Mar=r(Z0),Bar=r(nr),qar=[0,[17,0,0],r(z)],Uar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Har=r(Xr),Xar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yar=r(tr),Var=r(Z0),zar=r(nr),Kar=[0,[17,0,0],r(z)],War=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Jar=[0,[15,0],r(N0)],$ar=r(Yr),Zar=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Qar=r("Flow_ast.Type.Object.SpreadProperty.argument"),rcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ecr=[0,[17,0,0],r(z)],ncr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tcr=r(Xr),ucr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],icr=r(tr),fcr=r(Z0),xcr=r(nr),ocr=[0,[17,0,0],r(z)],acr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ccr=[0,[15,0],r(N0)],scr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],vcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],lcr=[0,[17,0,[12,41,0]],r(d0)],bcr=[0,[15,0],r(N0)],pcr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property.Init"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property.Init@ ")],mcr=[0,[17,0,[12,41,0]],r(d0)],_cr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property.Get"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property.Get@ ")],ycr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],hcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],dcr=[0,[17,0,[12,41,0]],r(d0)],kcr=[0,[17,0,[12,41,0]],r(d0)],wcr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property.Set"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property.Set@ ")],Ecr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Scr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],gcr=[0,[17,0,[12,41,0]],r(d0)],Fcr=[0,[17,0,[12,41,0]],r(d0)],Tcr=[0,[15,0],r(N0)],Ocr=r(Yr),Icr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Acr=r("Flow_ast.Type.Object.Property.key"),Ncr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ccr=[0,[17,0,0],r(z)],Pcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dcr=r(Un),Lcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rcr=[0,[17,0,0],r(z)],jcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gcr=r(qu),Mcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bcr=[0,[9,0,0],r(An)],qcr=[0,[17,0,0],r(z)],Ucr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hcr=r(tu),Xcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ycr=[0,[9,0,0],r(An)],Vcr=[0,[17,0,0],r(z)],zcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Kcr=r(X3),Wcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jcr=[0,[9,0,0],r(An)],$cr=[0,[17,0,0],r(z)],Zcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qcr=r(nU),rsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],esr=[0,[9,0,0],r(An)],nsr=[0,[17,0,0],r(z)],tsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],usr=r(cu),isr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fsr=r(tr),xsr=r(Z0),osr=r(nr),asr=[0,[17,0,0],r(z)],csr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ssr=r(Xr),vsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lsr=r(tr),bsr=r(Z0),psr=r(nr),msr=[0,[17,0,0],r(z)],_sr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ysr=[0,[15,0],r(N0)],hsr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],dsr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ksr=[0,[17,0,[12,41,0]],r(d0)],wsr=[0,[15,0],r(N0)],Esr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ssr=r("Flow_ast.Type.OptionalIndexedAccess.indexed_access"),gsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fsr=[0,[17,0,0],r(z)],Tsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Osr=r(qu),Isr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Asr=[0,[9,0,0],r(An)],Nsr=[0,[17,0,0],r(z)],Csr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Psr=[0,[15,0],r(N0)],Dsr=r(Yr),Lsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Rsr=r("Flow_ast.Type.IndexedAccess._object"),jsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gsr=[0,[17,0,0],r(z)],Msr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bsr=r("index"),qsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Usr=[0,[17,0,0],r(z)],Hsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xsr=r(Xr),Ysr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vsr=r(tr),zsr=r(Z0),Ksr=r(nr),Wsr=[0,[17,0,0],r(z)],Jsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$sr=[0,[15,0],r(N0)],Zsr=r(Yr),Qsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],r1r=r("Flow_ast.Type.Generic.id"),e1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n1r=[0,[17,0,0],r(z)],t1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u1r=r(Z2),i1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f1r=r(tr),x1r=r(Z0),o1r=r(nr),a1r=[0,[17,0,0],r(z)],c1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],s1r=r(Xr),v1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l1r=r(tr),b1r=r(Z0),p1r=r(nr),m1r=[0,[17,0,0],r(z)],_1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],y1r=[0,[15,0],r(N0)],h1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],d1r=r("Flow_ast.Type.Generic.Identifier.qualification"),k1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w1r=[0,[17,0,0],r(z)],E1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],S1r=r(_t),g1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F1r=[0,[17,0,0],r(z)],T1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],O1r=[0,[15,0],r(N0)],I1r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],A1r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],N1r=[0,[17,0,[12,41,0]],r(d0)],C1r=[0,[15,0],r(N0)],P1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Generic.Identifier.Unqualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Generic.Identifier.Unqualified@ ")],D1r=[0,[17,0,[12,41,0]],r(d0)],L1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Generic.Identifier.Qualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Generic.Identifier.Qualified@ ")],R1r=[0,[17,0,[12,41,0]],r(d0)],j1r=[0,[15,0],r(N0)],G1r=r(Yr),M1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],B1r=r("Flow_ast.Type.Function.tparams"),q1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U1r=r(tr),H1r=r(Z0),X1r=r(nr),Y1r=[0,[17,0,0],r(z)],V1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],z1r=r(Dt),K1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],W1r=[0,[17,0,0],r(z)],J1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$1r=r(Ju),Z1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q1r=[0,[17,0,0],r(z)],rvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],evr=r(Xr),nvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tvr=r(tr),uvr=r(Z0),ivr=r(nr),fvr=[0,[17,0,0],r(z)],xvr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ovr=[0,[15,0],r(N0)],avr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],svr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],vvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],bvr=r("Flow_ast.Type.Function.Params.this_"),pvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mvr=r(tr),_vr=r(Z0),yvr=r(nr),hvr=[0,[17,0,0],r(z)],dvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kvr=r(Dt),wvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Evr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Svr=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],gvr=[0,[17,0,0],r(z)],Fvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tvr=r(xd),Ovr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ivr=r(tr),Avr=r(Z0),Nvr=r(nr),Cvr=[0,[17,0,0],r(z)],Pvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dvr=r(Xr),Lvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rvr=r(tr),jvr=r(Z0),Gvr=r(nr),Mvr=[0,[17,0,0],r(z)],Bvr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qvr=[0,[15,0],r(N0)],Uvr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Hvr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Xvr=[0,[17,0,[12,41,0]],r(d0)],Yvr=[0,[15,0],r(N0)],Vvr=r(Yr),zvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Kvr=r("Flow_ast.Type.Function.ThisParam.annot"),Wvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jvr=[0,[17,0,0],r(z)],$vr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zvr=r(Xr),Qvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],r2r=r(tr),e2r=r(Z0),n2r=r(nr),t2r=[0,[17,0,0],r(z)],u2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],i2r=[0,[15,0],r(N0)],f2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],x2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],o2r=[0,[17,0,[12,41,0]],r(d0)],a2r=[0,[15,0],r(N0)],c2r=r(Yr),s2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],v2r=r("Flow_ast.Type.Function.RestParam.argument"),l2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b2r=[0,[17,0,0],r(z)],p2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],m2r=r(Xr),_2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],y2r=r(tr),h2r=r(Z0),d2r=r(nr),k2r=[0,[17,0,0],r(z)],w2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],E2r=[0,[15,0],r(N0)],S2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],g2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],F2r=[0,[17,0,[12,41,0]],r(d0)],T2r=[0,[15,0],r(N0)],O2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],I2r=r("Flow_ast.Type.Function.Param.name"),A2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N2r=r(tr),C2r=r(Z0),P2r=r(nr),D2r=[0,[17,0,0],r(z)],L2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],R2r=r(Qc),j2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],G2r=[0,[17,0,0],r(z)],M2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],B2r=r(qu),q2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U2r=[0,[9,0,0],r(An)],H2r=[0,[17,0,0],r(z)],X2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Y2r=[0,[15,0],r(N0)],V2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],z2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],K2r=[0,[17,0,[12,41,0]],r(d0)],W2r=[0,[15,0],r(N0)],J2r=r(Yr),$2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Z2r=r("Flow_ast.ComputedKey.expression"),Q2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rlr=[0,[17,0,0],r(z)],elr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nlr=r(Xr),tlr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ulr=r(tr),ilr=r(Z0),flr=r(nr),xlr=[0,[17,0,0],r(z)],olr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],alr=[0,[15,0],r(N0)],clr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],slr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],vlr=[0,[17,0,[12,41,0]],r(d0)],llr=[0,[15,0],r(N0)],blr=r(Yr),plr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],mlr=r("Flow_ast.Variance.kind"),_lr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ylr=[0,[17,0,0],r(z)],hlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dlr=r(Xr),klr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wlr=r(tr),Elr=r(Z0),Slr=r(nr),glr=[0,[17,0,0],r(z)],Flr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Tlr=[0,[15,0],r(N0)],Olr=r("Flow_ast.Variance.Minus"),Ilr=r("Flow_ast.Variance.Plus"),Alr=[0,[15,0],r(N0)],Nlr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Clr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Plr=[0,[17,0,[12,41,0]],r(d0)],Dlr=[0,[15,0],r(N0)],Llr=r(Yr),Rlr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],jlr=r("Flow_ast.BooleanLiteral.value"),Glr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Mlr=[0,[9,0,0],r(An)],Blr=[0,[17,0,0],r(z)],qlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ulr=r(Xr),Hlr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Xlr=r(tr),Ylr=r(Z0),Vlr=r(nr),zlr=[0,[17,0,0],r(z)],Klr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Wlr=[0,[15,0],r(N0)],Jlr=r(Yr),$lr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Zlr=r("Flow_ast.BigIntLiteral.approx_value"),Qlr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rbr=[0,[8,[0,0,5],0,0,0],r(r8)],ebr=[0,[17,0,0],r(z)],nbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tbr=r(x1),ubr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ibr=[0,[3,0,0],r(zt)],fbr=[0,[17,0,0],r(z)],xbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],obr=r(Xr),abr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cbr=r(tr),sbr=r(Z0),vbr=r(nr),lbr=[0,[17,0,0],r(z)],bbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pbr=[0,[15,0],r(N0)],mbr=r(Yr),_br=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ybr=r("Flow_ast.NumberLiteral.value"),hbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dbr=[0,[8,[0,0,5],0,0,0],r(r8)],kbr=[0,[17,0,0],r(z)],wbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ebr=r(c7),Sbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gbr=[0,[3,0,0],r(zt)],Fbr=[0,[17,0,0],r(z)],Tbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Obr=r(Xr),Ibr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Abr=r(tr),Nbr=r(Z0),Cbr=r(nr),Pbr=[0,[17,0,0],r(z)],Dbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Lbr=[0,[15,0],r(N0)],Rbr=r(Yr),jbr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Gbr=r("Flow_ast.StringLiteral.value"),Mbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bbr=[0,[3,0,0],r(zt)],qbr=[0,[17,0,0],r(z)],Ubr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hbr=r(c7),Xbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ybr=[0,[3,0,0],r(zt)],Vbr=[0,[17,0,0],r(z)],zbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Kbr=r(Xr),Wbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jbr=r(tr),$br=r(Z0),Zbr=r(nr),Qbr=[0,[17,0,0],r(z)],r4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],e4r=[0,[15,0],r(N0)],n4r=r("Flow_ast.Literal.Null"),t4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.String"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.String@ ")],u4r=[0,[3,0,0],r(zt)],i4r=[0,[17,0,[12,41,0]],r(d0)],f4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.Boolean"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.Boolean@ ")],x4r=[0,[9,0,0],r(An)],o4r=[0,[17,0,[12,41,0]],r(d0)],a4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.Number"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.Number@ ")],c4r=[0,[8,[0,0,5],0,0,0],r(r8)],s4r=[0,[17,0,[12,41,0]],r(d0)],v4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.BigInt"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.BigInt@ ")],l4r=[0,[8,[0,0,5],0,0,0],r(r8)],b4r=[0,[17,0,[12,41,0]],r(d0)],p4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.RegExp"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.RegExp@ ")],m4r=[0,[17,0,[12,41,0]],r(d0)],_4r=[0,[15,0],r(N0)],y4r=r(Yr),h4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],d4r=r("Flow_ast.Literal.value"),k4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w4r=[0,[17,0,0],r(z)],E4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],S4r=r(c7),g4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F4r=[0,[3,0,0],r(zt)],T4r=[0,[17,0,0],r(z)],O4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],I4r=r(Xr),A4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N4r=r(tr),C4r=r(Z0),P4r=r(nr),D4r=[0,[17,0,0],r(z)],L4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],R4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],j4r=r("Flow_ast.Literal.RegExp.pattern"),G4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],M4r=[0,[3,0,0],r(zt)],B4r=[0,[17,0,0],r(z)],q4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U4r=r(jX),H4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X4r=[0,[3,0,0],r(zt)],Y4r=[0,[17,0,0],r(z)],V4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],z4r=[0,[15,0],r(N0)],K4r=[0,[15,0],r(N0)],W4r=r(Yr),J4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$4r=r("Flow_ast.PrivateName.name"),Z4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q4r=[0,[3,0,0],r(zt)],r8r=[0,[17,0,0],r(z)],e8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],n8r=r(Xr),t8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],u8r=r(tr),i8r=r(Z0),f8r=r(nr),x8r=[0,[17,0,0],r(z)],o8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],a8r=[0,[15,0],r(N0)],c8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],s8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],v8r=[0,[17,0,[12,41,0]],r(d0)],l8r=[0,[15,0],r(N0)],b8r=r(Yr),p8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],m8r=r("Flow_ast.Identifier.name"),_8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],y8r=[0,[3,0,0],r(zt)],h8r=[0,[17,0,0],r(z)],d8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],k8r=r(Xr),w8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],E8r=r(tr),S8r=r(Z0),g8r=r(nr),F8r=[0,[17,0,0],r(z)],T8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],O8r=[0,[15,0],r(N0)],I8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],A8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],N8r=[0,[17,0,[12,41,0]],r(d0)],C8r=[0,[15,0],r(N0)],P8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],D8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],L8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],R8r=r("Flow_ast.Syntax.leading"),j8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],G8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],M8r=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],B8r=[0,[17,0,0],r(z)],q8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U8r=r("trailing"),H8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Y8r=[0,[17,[0,r(Pe),0,0],[12,93,[17,0,0]]],r(Xe)],V8r=[0,[17,0,0],r(z)],z8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K8r=r("internal"),W8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],J8r=[0,[17,0,0],r(z)],$8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z8r=[0,[0,0,0]],Q8r=[0,r(Su),21,2],r3r=[0,[0,0,0,0,0]],e3r=[0,r(Su),32,2],n3r=[0,[0,0,0,0,0]],t3r=[0,r(Su),43,2],u3r=[0,[0,[0,[0,0,0]],0,0,0,0]],i3r=[0,r(Su),70,2],f3r=[0,[0,0,0]],x3r=[0,r(Su),80,2],o3r=[0,[0,0,0]],a3r=[0,r(Su),90,2],c3r=[0,[0,0,0]],s3r=[0,r(Su),R7,2],v3r=[0,[0,0,0]],l3r=[0,r(Su),Yt,2],b3r=[0,[0,0,0,0,0,0,0]],p3r=[0,r(Su),br,2],m3r=[0,[0,0,0,0,0]],_3r=[0,r(Su),KH,2],y3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],h3r=[0,r(Su),485,2],d3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],k3r=[0,r(Su),BX,2],w3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],E3r=[0,r(Su),1460,2],S3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],g3r=[0,r(Su),1604,2],F3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],T3r=[0,r(Su),1689,2],O3r=[0,[0,0,0,0,0,0,0]],I3r=[0,r(Su),1705,2],A3r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],N3r=[0,r(Su),1828,2],C3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],P3r=[0,r(Su),1895,2],D3r=[0,[0,0,0,0,0]],L3r=[0,r(Su),1907,2],R3r=[0,[0,0,0]],j3r=[0,[0,0,0,0,0]],G3r=[0,[0,0,0,0,0]],M3r=[0,[0,[0,[0,0,0]],0,0,0,0]],B3r=[0,[0,0,0]],q3r=[0,[0,0,0]],U3r=[0,[0,0,0]],H3r=[0,[0,0,0]],X3r=[0,[0,0,0,0,0,0,0]],Y3r=[0,[0,0,0,0,0]],V3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],z3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],K3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],W3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],J3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],$3r=[0,[0,0,0,0,0,0,0]],Z3r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],Q3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],r6r=[0,[0,0,0,0,0]],e6r=[0,1],n6r=[0,0],t6r=[0,2],u6r=[0,0],i6r=[0,1],f6r=[0,1],x6r=[0,1],o6r=[0,1],a6r=[0,1],c6r=[0,0,0],s6r=[0,0,0],v6r=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(Ne),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],l6r=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(Ne),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],b6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.LibFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.LibFile@ ")],p6r=[0,[3,0,0],r(zt)],m6r=[0,[17,0,[12,41,0]],r(d0)],_6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.SourceFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.SourceFile@ ")],y6r=[0,[3,0,0],r(zt)],h6r=[0,[17,0,[12,41,0]],r(d0)],d6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.JsonFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.JsonFile@ ")],k6r=[0,[3,0,0],r(zt)],w6r=[0,[17,0,[12,41,0]],r(d0)],E6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.ResourceFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.ResourceFile@ ")],S6r=[0,[3,0,0],r(zt)],g6r=[0,[17,0,[12,41,0]],r(d0)],F6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],T6r=r("Loc.line"),O6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],I6r=[0,[4,0,0,0,0],r(N2)],A6r=[0,[17,0,0],r(z)],N6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],C6r=r(I2),P6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],D6r=[0,[4,0,0,0,0],r(N2)],L6r=[0,[17,0,0],r(z)],R6r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],j6r=[0,[15,0],r(N0)],G6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M6r=r("Loc.source"),B6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q6r=r(tr),U6r=r(Z0),H6r=r(nr),X6r=[0,[17,0,0],r(z)],Y6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],V6r=r(g7),z6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],K6r=[0,[17,0,0],r(z)],W6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],J6r=r("_end"),$6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Z6r=[0,[17,0,0],r(z)],Q6r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],rpr=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(Ne),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],epr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(Ne),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],npr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(Ne),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],tpr=r(lV),upr=r(jY),ipr=r(PX),fpr=r(zY),xpr=r(S3),opr=r(ZH),apr=r(cv),cpr=r(OU),spr=r(vY),vpr=r(_X),lpr=r(sX),bpr=r(xs),ppr=r(Fa),mpr=r(UU),_pr=r(WH),ypr=r(Qu),hpr=r(XY),dpr=r(OH),kpr=r(I6),wpr=r(jd),Epr=r(R2),Spr=r(j2),gpr=r(WU),Fpr=r(BU),Tpr=r(nY),Opr=r(xX),Ipr=r(lH),Apr=r(hX),Npr=r(xU),Cpr=r(zX),Ppr=r(aX),Dpr=r(bH),Lpr=r(wH),Rpr=r(XH),jpr=r(rV),Gpr=r(AU),Mpr=r(tX),Bpr=r("Set.remove_min_elt"),qpr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Upr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,ts,0]],r("@[<2>{")],Hpr=[0,[12,32,0],r(pi)],Xpr=[0,[12,32,0],r(pi)],Ypr=[0,[17,[0,r(Pe),0,0],[12,br,[17,0,0]]],r("@,}@]")],Vpr=[0,r("src/hack_forked/utils/collections/flow_set.ml"),363,14],zpr=[0,[0,36,37],[0,48,58],[0,65,91],[0,95,96],[0,97,ts],[0,qg,pg],[0,Ai,Yg],[0,lS,hk],[0,md,nw],[0,zn,xT],[0,y6,Dw],[0,Et,706],[0,rX,722],[0,736,741],[0,748,749],[0,750,751],[0,768,885],[0,886,888],[0,890,894],[0,895,896],[0,902,907],[0,908,ZX],[0,910,930],[0,UX,1014],[0,1015,1154],[0,1155,1160],[0,1162,CU],[0,1329,1367],[0,1369,1370],[0,1376,1417],[0,1425,1470],[0,1471,1472],[0,1473,1475],[0,1476,1478],[0,1479,1480],[0,1488,1515],[0,1519,1523],[0,1552,1563],[0,1568,1642],[0,1646,1748],[0,1749,1757],[0,1759,1769],[0,1770,1789],[0,1791,1792],[0,1808,1867],[0,1869,1970],[0,1984,2038],[0,2042,2043],[0,2045,2046],[0,Hh,2094],[0,2112,2140],[0,2144,2155],[0,2208,2229],[0,2230,2238],[0,2259,2274],[0,2275,2404],[0,2406,2416],[0,2417,2436],[0,2437,2445],[0,2447,2449],[0,2451,2473],[0,2474,2481],[0,2482,2483],[0,2486,2490],[0,2492,2501],[0,2503,2505],[0,2507,2511],[0,2519,2520],[0,2524,2526],[0,2527,2532],[0,2534,2546],[0,2556,2557],[0,2558,2559],[0,2561,2564],[0,2565,2571],[0,2575,2577],[0,2579,2601],[0,2602,2609],[0,2610,2612],[0,2613,2615],[0,2616,2618],[0,2620,2621],[0,2622,2627],[0,2631,2633],[0,2635,2638],[0,2641,2642],[0,2649,2653],[0,2654,2655],[0,2662,2678],[0,2689,2692],[0,2693,2702],[0,2703,2706],[0,2707,2729],[0,2730,2737],[0,2738,2740],[0,2741,2746],[0,2748,2758],[0,2759,2762],[0,2763,2766],[0,2768,2769],[0,2784,2788],[0,2790,2800],[0,2809,2816],[0,2817,2820],[0,2821,2829],[0,2831,2833],[0,2835,2857],[0,2858,2865],[0,2866,2868],[0,2869,2874],[0,2876,2885],[0,2887,2889],[0,2891,2894],[0,2902,2904],[0,2908,2910],[0,2911,2916],[0,2918,2928],[0,2929,2930],[0,2946,2948],[0,2949,2955],[0,2958,2961],[0,2962,2966],[0,2969,2971],[0,2972,2973],[0,2974,2976],[0,2979,2981],[0,2984,2987],[0,2990,3002],[0,3006,3011],[0,3014,3017],[0,3018,3022],[0,3024,3025],[0,3031,3032],[0,3046,3056],[0,3072,3085],[0,3086,3089],[0,3090,3113],[0,3114,3130],[0,3133,3141],[0,3142,3145],[0,3146,3150],[0,3157,3159],[0,3160,3163],[0,3168,3172],[0,3174,3184],[0,3200,3204],[0,3205,3213],[0,3214,3217],[0,3218,3241],[0,3242,3252],[0,3253,3258],[0,3260,3269],[0,3270,3273],[0,3274,3278],[0,3285,3287],[0,3294,3295],[0,3296,3300],[0,3302,3312],[0,3313,3315],[0,3328,3332],[0,3333,3341],[0,3342,3345],[0,3346,3397],[0,3398,3401],[0,3402,3407],[0,3412,3416],[0,3423,3428],[0,3430,3440],[0,3450,3456],[0,3458,3460],[0,3461,3479],[0,3482,3506],[0,3507,3516],[0,3517,3518],[0,3520,3527],[0,3530,3531],[0,3535,3541],[0,3542,3543],[0,3544,3552],[0,3558,3568],[0,3570,3572],[0,3585,3643],[0,3648,3663],[0,3664,3674],[0,3713,3715],[0,3716,3717],[0,3718,3723],[0,3724,3748],[0,3749,3750],[0,3751,3774],[0,3776,3781],[0,3782,3783],[0,3784,3790],[0,3792,3802],[0,3804,3808],[0,3840,3841],[0,3864,3866],[0,3872,3882],[0,3893,3894],[0,3895,3896],[0,3897,3898],[0,3902,3912],[0,3913,3949],[0,3953,3973],[0,3974,3992],[0,3993,4029],[0,4038,4039],[0,vX,4170],[0,4176,4254],[0,4256,4294],[0,4295,4296],[0,4301,4302],[0,4304,4347],[0,4348,4681],[0,4682,4686],[0,4688,4695],[0,4696,4697],[0,4698,4702],[0,4704,4745],[0,4746,4750],[0,4752,4785],[0,4786,4790],[0,4792,4799],[0,4800,4801],[0,4802,4806],[0,4808,4823],[0,4824,4881],[0,4882,4886],[0,4888,4955],[0,4957,4960],[0,4969,4978],[0,4992,5008],[0,5024,5110],[0,5112,5118],[0,5121,5741],[0,5743,Ev],[0,5761,5787],[0,5792,5867],[0,5870,5881],[0,5888,5901],[0,5902,5909],[0,5920,5941],[0,5952,5972],[0,5984,5997],[0,5998,6001],[0,6002,6004],[0,6016,6100],[0,6103,6104],[0,6108,6110],[0,6112,6122],[0,6155,6158],[0,6160,6170],[0,6176,6265],[0,6272,6315],[0,6320,6390],[0,6400,6431],[0,6432,6444],[0,6448,6460],[0,6470,6510],[0,6512,6517],[0,6528,6572],[0,6576,6602],[0,6608,6619],[0,6656,6684],[0,6688,6751],[0,6752,6781],[0,6783,6794],[0,6800,6810],[0,6823,6824],[0,6832,6846],[0,6912,6988],[0,6992,7002],[0,7019,7028],[0,7040,7156],[0,7168,7224],[0,7232,7242],[0,7245,7294],[0,7296,7305],[0,7312,7355],[0,7357,7360],[0,7376,7379],[0,7380,7419],[0,7424,7674],[0,7675,7958],[0,7960,7966],[0,7968,8006],[0,8008,8014],[0,8016,8024],[0,8025,8026],[0,8027,8028],[0,8029,8030],[0,8031,8062],[0,8064,8117],[0,8118,8125],[0,8126,8127],[0,8130,8133],[0,8134,8141],[0,8144,8148],[0,8150,8156],[0,8160,8173],[0,8178,8181],[0,8182,8189],[0,kY,vU],[0,8255,8257],[0,8276,8277],[0,ep,8306],[0,O3,8320],[0,8336,8349],[0,8400,8413],[0,8417,8418],[0,8421,8433],[0,x3,8451],[0,R3,8456],[0,8458,g4],[0,m6,8470],[0,iU,8478],[0,t8,$3],[0,Q8,sp],[0,P8,N8],[0,8490,8506],[0,8508,8512],[0,8517,8522],[0,s8,8527],[0,8544,8585],[0,11264,11311],[0,11312,11359],[0,11360,11493],[0,11499,11508],[0,11520,G4],[0,B8,11560],[0,N3,11566],[0,11568,11624],[0,p4,11632],[0,P6,11671],[0,11680,j4],[0,11688,z8],[0,11696,o8],[0,11704,K8],[0,11712,z6],[0,11720,j8],[0,11728,F6],[0,11736,11743],[0,11744,11776],[0,12293,12296],[0,12321,T3],[0,12337,12342],[0,12344,12349],[0,12353,12439],[0,12441,E3],[0,12449,q4],[0,12540,12544],[0,12549,E8],[0,12593,12687],[0,12704,12731],[0,12784,12800],[0,13312,19894],[0,19968,40944],[0,40960,42125],[0,42192,42238],[0,42240,42509],[0,42512,42540],[0,42560,42608],[0,42612,U3],[0,42623,42738],[0,42775,42784],[0,42786,42889],[0,42891,42944],[0,42946,42951],[0,F8,43048],[0,43072,43124],[0,43136,43206],[0,43216,43226],[0,43232,43256],[0,n3,_8],[0,43261,43310],[0,43312,43348],[0,43360,43389],[0,43392,43457],[0,k8,43482],[0,43488,v6],[0,43520,43575],[0,43584,43598],[0,43600,43610],[0,43616,43639],[0,lp,43715],[0,43739,43742],[0,43744,43760],[0,43762,43767],[0,43777,43783],[0,43785,43791],[0,43793,43799],[0,43808,k6],[0,43816,H3],[0,43824,av],[0,43868,o3],[0,43888,44011],[0,44012,44014],[0,44016,44026],[0,44032,55204],[0,55216,55239],[0,55243,55292],[0,63744,64110],[0,64112,64218],[0,64256,64263],[0,64275,64280],[0,e3,ip],[0,64298,Bn],[0,64312,z3],[0,L6,R4],[0,64320,q3],[0,64323,D8],[0,64326,64434],[0,64467,64830],[0,64848,64912],[0,64914,64968],[0,65008,65020],[0,65024,65040],[0,65056,65072],[0,65075,65077],[0,65101,65104],[0,65136,t3],[0,65142,65277],[0,65296,65306],[0,65313,65339],[0,65343,Q4],[0,65345,65371],[0,65382,65471],[0,65474,65480],[0,65482,65488],[0,65490,65496],[0,65498,65501],[0,fw,rp],[0,65549,$8],[0,65576,z4],[0,65596,S6],[0,65599,65614],[0,65616,65630],[0,65664,65787],[0,65856,65909],[0,66045,66046],[0,66176,66205],[0,66208,66257],[0,66272,66273],[0,66304,66336],[0,66349,66379],[0,66384,66427],[0,66432,66462],[0,66464,66500],[0,66504,Z3],[0,66513,66518],[0,66560,66718],[0,66720,66730],[0,66736,66772],[0,66776,66812],[0,66816,66856],[0,66864,66916],[0,67072,67383],[0,67392,67414],[0,67424,67432],[0,67584,67590],[0,op,J4],[0,67594,p8],[0,67639,67641],[0,M6,67645],[0,67647,67670],[0,67680,67703],[0,67712,67743],[0,67808,X8],[0,67828,67830],[0,67840,67862],[0,67872,67898],[0,67968,68024],[0,68030,68032],[0,S7,68100],[0,68101,68103],[0,68108,b4],[0,68117,Z8],[0,68121,68150],[0,68152,68155],[0,68159,68160],[0,68192,68221],[0,68224,68253],[0,68288,J6],[0,68297,68327],[0,68352,68406],[0,68416,68438],[0,68448,68467],[0,68480,68498],[0,68608,68681],[0,68736,68787],[0,68800,68851],[0,68864,68904],[0,68912,68922],[0,69376,69405],[0,J8,69416],[0,69424,69457],[0,69600,69623],[0,69632,69703],[0,69734,B3],[0,69759,69819],[0,69840,69865],[0,69872,69882],[0,69888,69941],[0,69942,69952],[0,m4,F3],[0,69968,70004],[0,X6,70007],[0,70016,70085],[0,70089,70093],[0,70096,h8],[0,i3,70109],[0,70144,A8],[0,70163,70200],[0,70206,70207],[0,70272,y3],[0,I8,fp],[0,70282,O8],[0,70287,c8],[0,70303,70313],[0,70320,70379],[0,70384,70394],[0,70400,u6],[0,70405,70413],[0,70415,70417],[0,70419,f3],[0,70442,a8],[0,70450,C4],[0,70453,70458],[0,70459,70469],[0,70471,70473],[0,70475,70478],[0,j6,70481],[0,70487,70488],[0,70493,70500],[0,70502,70509],[0,70512,70517],[0,70656,70731],[0,70736,70746],[0,W6,70752],[0,70784,Q3],[0,Z6,70856],[0,70864,70874],[0,71040,71094],[0,71096,71105],[0,71128,71134],[0,71168,71233],[0,u8,71237],[0,71248,71258],[0,71296,71353],[0,71360,71370],[0,71424,71451],[0,71453,71468],[0,71472,71482],[0,71680,71739],[0,71840,71914],[0,71935,71936],[0,72096,72104],[0,72106,72152],[0,72154,up],[0,p3,72165],[0,M8,72255],[0,72263,72264],[0,u3,72346],[0,P4,72350],[0,72384,72441],[0,72704,W3],[0,72714,72759],[0,72760,72769],[0,72784,72794],[0,72818,72848],[0,72850,72872],[0,72873,72887],[0,72960,D3],[0,72968,h4],[0,72971,73015],[0,73018,73019],[0,73020,73022],[0,73023,73032],[0,73040,73050],[0,73056,R6],[0,73063,h3],[0,73066,73103],[0,73104,73106],[0,73107,73113],[0,73120,73130],[0,73440,73463],[0,73728,74650],[0,74752,74863],[0,74880,75076],[0,77824,78895],[0,82944,83527],[0,92160,92729],[0,92736,92767],[0,92768,92778],[0,92880,92910],[0,92912,92917],[0,92928,92983],[0,92992,92996],[0,93008,93018],[0,93027,93048],[0,93053,93072],[0,93760,93824],[0,93952,94027],[0,Z4,94088],[0,94095,94112],[0,94176,b6],[0,h6,94180],[0,94208,100344],[0,100352,101107],[0,110592,110879],[0,110928,110931],[0,110948,110952],[0,110960,111356],[0,113664,113771],[0,113776,113789],[0,113792,113801],[0,113808,113818],[0,113821,113823],[0,119141,119146],[0,119149,119155],[0,119163,119171],[0,119173,119180],[0,119210,119214],[0,119362,119365],[0,119808,T6],[0,119894,M3],[0,119966,119968],[0,d3,119971],[0,119973,119975],[0,119977,Q6],[0,119982,l8],[0,l4,G6],[0,119997,I3],[0,120005,L4],[0,120071,120075],[0,120077,N6],[0,120086,vp],[0,120094,C3],[0,120123,r6],[0,120128,B4],[0,G3,120135],[0,120138,D6],[0,120146,120486],[0,120488,D4],[0,120514,V3],[0,120540,c6],[0,120572,X4],[0,120598,c3],[0,120630,V4],[0,120656,w6],[0,120688,v4],[0,120714,l6],[0,120746,k3],[0,120772,120780],[0,120782,120832],[0,121344,121399],[0,121403,121453],[0,121461,121462],[0,121476,121477],[0,121499,121504],[0,121505,121520],[0,122880,122887],[0,122888,122905],[0,122907,122914],[0,122915,122917],[0,122918,122923],[0,123136,123181],[0,123184,123198],[0,123200,123210],[0,ap,123215],[0,123584,123642],[0,124928,125125],[0,125136,125143],[0,125184,125260],[0,125264,125274],[0,126464,C6],[0,126469,J3],[0,126497,a3],[0,g8,126501],[0,e8,m8],[0,126505,s6],[0,126516,f8],[0,_6,x8],[0,w3,126524],[0,K3,126531],[0,L8,U6],[0,S8,n8],[0,s3,M4],[0,126541,F4],[0,126545,g6],[0,d8,126549],[0,i8,E4],[0,fn,B6],[0,S4,G8],[0,q6,s4],[0,t6,O4],[0,126561,xp],[0,V6,126565],[0,126567,l3],[0,126572,x6],[0,126580,W8],[0,126585,L3],[0,$4,w8],[0,126592,V8],[0,126603,126620],[0,126625,j3],[0,126629,r3],[0,126635,126652],[0,131072,173783],[0,173824,177973],[0,177984,178206],[0,178208,183970],[0,183984,191457],[0,194560,195102],[0,917760,918e3]],Kpr=r(O2),Wpr=r(dv),Jpr=r(Tv),$pr=r(K4),Zpr=r("Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead."),Qpr=r("Enum members are separated with `,`. Replace `;` with `,`."),r5r=r("Unexpected reserved word"),e5r=r("Unexpected reserved type"),n5r=r("Unexpected `super` outside of a class method"),t5r=r("`super()` is only valid in a class constructor"),u5r=r("Unexpected end of input"),i5r=r("Unexpected variance sigil"),f5r=r("Unexpected static modifier"),x5r=r("Unexpected proto modifier"),o5r=r("Type aliases are not allowed in untyped mode"),a5r=r("Opaque type aliases are not allowed in untyped mode"),c5r=r("Type annotations are not allowed in untyped mode"),s5r=r("Type declarations are not allowed in untyped mode"),v5r=r("Type imports are not allowed in untyped mode"),l5r=r("Type exports are not allowed in untyped mode"),b5r=r("Interfaces are not allowed in untyped mode"),p5r=r("Spreading a type is only allowed inside an object type"),m5r=r("Explicit inexact syntax must come at the end of an object type"),_5r=r("Explicit inexact syntax cannot appear inside an explicit exact object type"),y5r=r("Explicit inexact syntax can only appear inside an object type"),h5r=r("Illegal newline after throw"),d5r=r("A bigint literal must be an integer"),k5r=r("A bigint literal cannot use exponential notation"),w5r=r("Invalid regular expression"),E5r=r("Invalid regular expression: missing /"),S5r=r("Invalid left-hand side in assignment"),g5r=r("Invalid left-hand side in exponentiation expression"),F5r=r("Invalid left-hand side in for-in"),T5r=r("Invalid left-hand side in for-of"),O5r=r("Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`."),I5r=r("found an expression instead"),A5r=r("Expected an object pattern, array pattern, or an identifier but "),N5r=r("More than one default clause in switch statement"),C5r=r("Missing catch or finally after try"),P5r=r("Illegal continue statement"),D5r=r("Illegal break statement"),L5r=r("Illegal return statement"),R5r=r("Illegal Unicode escape"),j5r=r("Strict mode code may not include a with statement"),G5r=r("Catch variable may not be eval or arguments in strict mode"),M5r=r("Variable name may not be eval or arguments in strict mode"),B5r=r("Parameter name eval or arguments is not allowed in strict mode"),q5r=r("Strict mode function may not have duplicate parameter names"),U5r=r('Illegal "use strict" directive in function with non-simple parameter list'),H5r=r("Function name may not be eval or arguments in strict mode"),X5r=r("Octal literals are not allowed in strict mode."),Y5r=r("Number literals with leading zeros are not allowed in strict mode."),V5r=r("Delete of an unqualified identifier in strict mode."),z5r=r("Duplicate data property in object literal not allowed in strict mode"),K5r=r("Object literal may not have data and accessor property with the same name"),W5r=r("Object literal may not have multiple get/set accessors with the same name"),J5r=r("`typeof` can only be used to get the type of variables."),$5r=r("Assignment to eval or arguments is not allowed in strict mode"),Z5r=r("Postfix increment/decrement may not have eval or arguments operand in strict mode"),Q5r=r("Prefix increment/decrement may not have eval or arguments operand in strict mode"),rmr=r("Use of future reserved word in strict mode"),emr=r("JSX attributes must only be assigned a non-empty expression"),nmr=r("JSX value should be either an expression or a quoted JSX text"),tmr=r("Const must be initialized"),umr=r("Destructuring assignment must be initialized"),imr=r("Illegal newline before arrow"),fmr=r(aF),xmr=r("Async functions can only be declared at top level or "),omr=r(aF),amr=r("Generators can only be declared at top level or "),cmr=r("elements must be wrapped in an enclosing parent tag"),smr=r("Unexpected token <. Remember, adjacent JSX "),vmr=r("Rest parameter must be final parameter of an argument list"),lmr=r("Rest element must be final element of an array pattern"),bmr=r("Rest property must be final property of an object pattern"),pmr=r("async is an implementation detail and isn't necessary for your declare function statement. It is sufficient for your declare function to just have a Promise return type."),mmr=r("`declare` modifier can only appear on class fields."),_mr=r("Unexpected token `=`. Initializers are not allowed in a `declare`."),ymr=r("Unexpected token `=`. Initializers are not allowed in a `declare opaque type`."),hmr=r("`declare export let` is not supported. Use `declare export var` instead."),dmr=r("`declare export const` is not supported. Use `declare export var` instead."),kmr=r("`declare export type` is not supported. Use `export type` instead."),wmr=r("`declare export interface` is not supported. Use `export interface` instead."),Emr=r("`export * as` is an early-stage proposal and is not enabled by default. To enable support in the parser, use the `esproposal_export_star_as` option"),Smr=r("Found a decorator in an unsupported position."),gmr=r("Type parameter declaration needs a default, since a preceding type parameter declaration has a default."),Fmr=r("Duplicate `declare module.exports` statement!"),Tmr=r("Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module xor they are a CommonJS module."),Omr=r("Getter should have zero parameters"),Imr=r("Setter should have exactly one parameter"),Amr=r("`import type` or `import typeof`!"),Nmr=r("Imports within a `declare module` body must always be "),Cmr=r("The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements"),Pmr=r("Missing comma between import specifiers"),Dmr=r("Missing comma between export specifiers"),Lmr=r("Malformed unicode"),Rmr=r("Classes may only have one constructor"),jmr=r("Private fields may not be deleted."),Gmr=r("Private fields can only be referenced from within a class."),Mmr=r("You may not access a private field through the `super` keyword."),Bmr=r("Yield expression not allowed in formal parameter"),qmr=r("`await` is an invalid identifier in async functions"),Umr=r("`yield` is an invalid identifier in generators"),Hmr=r("either a `let` binding pattern, or a member expression."),Xmr=r("`let [` is ambiguous in this position because it is "),Ymr=r("Literals cannot be used as shorthand properties."),Vmr=r("Computed properties must have a value."),zmr=r("Object pattern can't contain methods"),Kmr=r("A trailing comma is not permitted after the rest element"),Wmr=r("An optional chain may not be used in a `new` expression."),Jmr=r("Template literals may not be used in an optional chain."),$mr=r("Unexpected whitespace between `#` and identifier"),Zmr=r("A type annotation is required for the `this` parameter."),Qmr=r("The `this` parameter must be the first function parameter."),r9r=r("The `this` parameter cannot be optional."),e9r=r("A getter cannot have a `this` parameter."),n9r=r("A setter cannot have a `this` parameter."),t9r=r("Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared."),u9r=r("Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions."),i9r=[0,[11,r("Boolean enum members need to be initialized. Use either `"),[2,0,[11,r(" = true,` or `"),[2,0,[11,r(" = false,` in enum `"),[2,0,[11,r(Es),0]]]]]]],r("Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`.")],f9r=[0,[11,r("Enum member names need to be unique, but the name `"),[2,0,[11,r("` has already been used before in enum `"),[2,0,[11,r(Es),0]]]]],r("Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`.")],x9r=[0,[11,r(IU),[2,0,[11,r("` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),0]]],r("Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.")],o9r=[0,[11,r("Use one of `boolean`, `number`, `string`, or `symbol` in enum `"),[2,0,[11,r(Es),0]]],r("Use one of `boolean`, `number`, `string`, or `symbol` in enum `%s`.")],a9r=[0,[11,r("Enum type `"),[2,0,[11,r("` is not valid. "),[2,0,0]]]],r("Enum type `%s` is not valid. %s")],c9r=[0,[11,r("Supplied enum type is not valid. "),[2,0,0]],r("Supplied enum type is not valid. %s")],s9r=[0,[11,r("Enum member names and initializers are separated with `=`. Replace `"),[2,0,[11,r(":` with `"),[2,0,[11,r(" =`."),0]]]]],r("Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`.")],v9r=[0,[11,r("Symbol enum members cannot be initialized. Use `"),[2,0,[11,r(",` in enum `"),[2,0,[11,r(Es),0]]]]],r("Symbol enum members cannot be initialized. Use `%s,` in enum `%s`.")],l9r=[0,[11,r(IU),[2,0,[11,r("` has type `"),[2,0,[11,r("`, so the initializer of `"),[2,0,[11,r("` needs to be a "),[2,0,[11,r(" literal."),0]]]]]]]]],r("Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal.")],b9r=[0,[11,r("The enum member initializer for `"),[2,0,[11,r("` needs to be a literal (either a boolean, number, or string) in enum `"),[2,0,[11,r(Es),0]]]]],r("The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`.")],p9r=[0,[11,r("Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `"),[2,0,[11,r("`, consider using `"),[2,0,[11,r("`, in enum `"),[2,0,[11,r(Es),0]]]]]]],r("Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`.")],m9r=r("The `...` must come at the end of the enum body. Remove the trailing comma."),_9r=r("The `...` must come after all enum members. Move it to the end of the enum body."),y9r=[0,[11,r("Number enum members need to be initialized, e.g. `"),[2,0,[11,r(" = 1,` in enum `"),[2,0,[11,r(Es),0]]]]],r("Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`.")],h9r=[0,[11,r("String enum members need to consistently either all use initializers, or use no initializers, in enum "),[2,0,[12,46,0]]],r("String enum members need to consistently either all use initializers, or use no initializers, in enum %s.")],d9r=[0,[11,r(UH),[2,0,0]],r("Unexpected %s")],k9r=[0,[11,r(UH),[2,0,[11,r(", expected "),[2,0,0]]]],r("Unexpected %s, expected %s")],w9r=[0,[11,r(bV),[2,0,[11,r("`. Did you mean `"),[2,0,[11,r("`?"),0]]]]],r("Unexpected token `%s`. Did you mean `%s`?")],E9r=r(P3),S9r=r("Invalid flags supplied to RegExp constructor '"),g9r=r("Remove the period."),F9r=r("Indexed access uses bracket notation."),T9r=[0,[11,r("Invalid indexed access. "),[2,0,[11,r(" Use the format `T[K]`."),0]]],r("Invalid indexed access. %s Use the format `T[K]`.")],O9r=r(P3),I9r=r("Undefined label '"),A9r=r("' has already been declared"),N9r=r(" '"),C9r=r("Expected corresponding JSX closing tag for "),P9r=r(aF),D9r=r("In strict mode code, functions can only be declared at top level or "),L9r=r("inside a block, or as the body of an if statement."),R9r=r("In non-strict mode code, functions can only be declared at top level, "),j9r=[0,[11,r("Duplicate export for `"),[2,0,[12,96,0]]],r("Duplicate export for `%s`")],G9r=r("` is declared more than once."),M9r=r("Private fields may only be declared once. `#"),B9r=r("static "),q9r=r(C),U9r=r(YY),H9r=r("methods"),X9r=r("fields"),Y9r=r(Es),V9r=r(" named `"),z9r=r("Classes may not have "),K9r=r("` has not been declared."),W9r=r("Private fields must be declared before they can be referenced. `#"),J9r=[0,[11,r(bV),[2,0,[11,r("`. Parentheses are required to combine `??` with `&&` or `||` expressions."),0]]],r("Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions.")],$9r=r("Parse_error.Error"),Z9r=[0,r("src/third-party/sedlex/flow_sedlexing.ml"),s1,4],Q9r=r("Flow_sedlexing.MalFormed"),r_r=[0,1,0],e_r=[0,0,[0,1,0],[0,1,0]],n_r=r(YU),t_r=r("end of input"),u_r=r(rl),i_r=r("template literal part"),f_r=r(rl),x_r=r(MH),o_r=r(YU),a_r=r(rl),c_r=r(dv),s_r=r(rl),v_r=r(x1),l_r=r(rl),b_r=r(Tv),p_r=r("an"),m_r=r(yi),__r=r(pi),y_r=[0,[11,r("token `"),[2,0,[12,96,0]]],r("token `%s`")],h_r=r(hH),d_r=r(b3),k_r=r("{|"),w_r=r("|}"),E_r=r(HX),S_r=r(Z0),g_r=r("["),F_r=r("]"),T_r=r(VY),O_r=r(","),I_r=r(Lo),A_r=r("=>"),N_r=r("..."),C_r=r(gX),P_r=r(YY),D_r=r(M2),L_r=r(A3),R_r=r(R2),j_r=r(j2),G_r=r(Ju),M_r=r(D7),B_r=r(i1),q_r=r(F7),U_r=r(d4),H_r=r(U2),X_r=r(K6),Y_r=r(C8),V_r=r(D2),z_r=r(G2),K_r=r(fs),W_r=r(Ci),J_r=r(Gi),$_r=r(A7),Z_r=r(d6),Q_r=r(o6),ryr=r(N7),eyr=r(_i),nyr=r(_4),tyr=r(q8),uyr=r(np),iyr=r(q2),fyr=r(P7),xyr=r(tu),oyr=r(U4),ayr=r(u1),cyr=r(J2),syr=r(rs),vyr=r(es),lyr=r(b8),byr=r(_3),pyr=r(Uu),myr=r(yv),_yr=r(ws),yyr=r(e7),hyr=r(y4),dyr=r(k4),kyr=r(a6),wyr=r(E6),Eyr=r(Eu),Syr=r(I7),gyr=r(T2),Fyr=r(Jc),Tyr=r(eh),Oyr=r(CS),Iyr=r(gs),Ayr=r(dx),Nyr=r("%checks"),Cyr=r(aX),Pyr=r(zX),Dyr=r(xU),Lyr=r(wH),Ryr=r(bH),jyr=r(XH),Gyr=r(hX),Myr=r(lH),Byr=r(nY),qyr=r(xX),Uyr=r(BU),Hyr=r(WU),Xyr=r(rV),Yyr=r(AU),Vyr=r(tX),zyr=r(XO),Kyr=r("?."),Wyr=r(Ve),Jyr=r("?"),$yr=r(o1),Zyr=r(zH),Qyr=r(MX),rhr=r(OH),ehr=r(I6),nhr=r(jd),thr=r(lV),uhr=r(jY),ihr=r(PX),fhr=r(zY),xhr=r(ZH),ohr=r(OU),ahr=r(S3),chr=r(cv),shr=r(vY),vhr=r(_X),lhr=r(sX),bhr=r(xs),phr=r(Fa),mhr=r(Qu),_hr=r(UU),yhr=r(WH),hhr=r(XY),dhr=r(Jt),khr=r(ZY),whr=r(sH),Ehr=r(oV),Shr=r(C),ghr=r(n6),Fhr=r(H8),Thr=r(v7),Ohr=r(dv),Ihr=r(x1),Ahr=r(Tv),Nhr=r(es),Chr=r(K4),Phr=r(Qu),Dhr=r(Qu),Lhr=r(O2),Rhr=r(O6),jhr=r("T_LCURLY"),Ghr=r("T_RCURLY"),Mhr=r("T_LCURLYBAR"),Bhr=r("T_RCURLYBAR"),qhr=r("T_LPAREN"),Uhr=r("T_RPAREN"),Hhr=r("T_LBRACKET"),Xhr=r("T_RBRACKET"),Yhr=r("T_SEMICOLON"),Vhr=r("T_COMMA"),zhr=r("T_PERIOD"),Khr=r("T_ARROW"),Whr=r("T_ELLIPSIS"),Jhr=r("T_AT"),$hr=r("T_POUND"),Zhr=r("T_FUNCTION"),Qhr=r("T_IF"),rdr=r("T_IN"),edr=r("T_INSTANCEOF"),ndr=r("T_RETURN"),tdr=r("T_SWITCH"),udr=r("T_THIS"),idr=r("T_THROW"),fdr=r("T_TRY"),xdr=r("T_VAR"),odr=r("T_WHILE"),adr=r("T_WITH"),cdr=r("T_CONST"),sdr=r("T_LET"),vdr=r("T_NULL"),ldr=r("T_FALSE"),bdr=r("T_TRUE"),pdr=r("T_BREAK"),mdr=r("T_CASE"),_dr=r("T_CATCH"),ydr=r("T_CONTINUE"),hdr=r("T_DEFAULT"),ddr=r("T_DO"),kdr=r("T_FINALLY"),wdr=r("T_FOR"),Edr=r("T_CLASS"),Sdr=r("T_EXTENDS"),gdr=r("T_STATIC"),Fdr=r("T_ELSE"),Tdr=r("T_NEW"),Odr=r("T_DELETE"),Idr=r("T_TYPEOF"),Adr=r("T_VOID"),Ndr=r("T_ENUM"),Cdr=r("T_EXPORT"),Pdr=r("T_IMPORT"),Ddr=r("T_SUPER"),Ldr=r("T_IMPLEMENTS"),Rdr=r("T_INTERFACE"),jdr=r("T_PACKAGE"),Gdr=r("T_PRIVATE"),Mdr=r("T_PROTECTED"),Bdr=r("T_PUBLIC"),qdr=r("T_YIELD"),Udr=r("T_DEBUGGER"),Hdr=r("T_DECLARE"),Xdr=r("T_TYPE"),Ydr=r("T_OPAQUE"),Vdr=r("T_OF"),zdr=r("T_ASYNC"),Kdr=r("T_AWAIT"),Wdr=r("T_CHECKS"),Jdr=r("T_RSHIFT3_ASSIGN"),$dr=r("T_RSHIFT_ASSIGN"),Zdr=r("T_LSHIFT_ASSIGN"),Qdr=r("T_BIT_XOR_ASSIGN"),rkr=r("T_BIT_OR_ASSIGN"),ekr=r("T_BIT_AND_ASSIGN"),nkr=r("T_MOD_ASSIGN"),tkr=r("T_DIV_ASSIGN"),ukr=r("T_MULT_ASSIGN"),ikr=r("T_EXP_ASSIGN"),fkr=r("T_MINUS_ASSIGN"),xkr=r("T_PLUS_ASSIGN"),okr=r("T_NULLISH_ASSIGN"),akr=r("T_AND_ASSIGN"),ckr=r("T_OR_ASSIGN"),skr=r("T_ASSIGN"),vkr=r("T_PLING_PERIOD"),lkr=r("T_PLING_PLING"),bkr=r("T_PLING"),pkr=r("T_COLON"),mkr=r("T_OR"),_kr=r("T_AND"),ykr=r("T_BIT_OR"),hkr=r("T_BIT_XOR"),dkr=r("T_BIT_AND"),kkr=r("T_EQUAL"),wkr=r("T_NOT_EQUAL"),Ekr=r("T_STRICT_EQUAL"),Skr=r("T_STRICT_NOT_EQUAL"),gkr=r("T_LESS_THAN_EQUAL"),Fkr=r("T_GREATER_THAN_EQUAL"),Tkr=r("T_LESS_THAN"),Okr=r("T_GREATER_THAN"),Ikr=r("T_LSHIFT"),Akr=r("T_RSHIFT"),Nkr=r("T_RSHIFT3"),Ckr=r("T_PLUS"),Pkr=r("T_MINUS"),Dkr=r("T_DIV"),Lkr=r("T_MULT"),Rkr=r("T_EXP"),jkr=r("T_MOD"),Gkr=r("T_NOT"),Mkr=r("T_BIT_NOT"),Bkr=r("T_INCR"),qkr=r("T_DECR"),Ukr=r("T_EOF"),Hkr=r("T_ANY_TYPE"),Xkr=r("T_MIXED_TYPE"),Ykr=r("T_EMPTY_TYPE"),Vkr=r("T_NUMBER_TYPE"),zkr=r("T_BIGINT_TYPE"),Kkr=r("T_STRING_TYPE"),Wkr=r("T_VOID_TYPE"),Jkr=r("T_SYMBOL_TYPE"),$kr=r("T_NUMBER"),Zkr=r("T_BIGINT"),Qkr=r("T_STRING"),rwr=r("T_TEMPLATE_PART"),ewr=r("T_IDENTIFIER"),nwr=r("T_REGEXP"),twr=r("T_ERROR"),uwr=r("T_JSX_IDENTIFIER"),iwr=r("T_JSX_TEXT"),fwr=r("T_BOOLEAN_TYPE"),xwr=r("T_NUMBER_SINGLETON_TYPE"),owr=r("T_BIGINT_SINGLETON_TYPE"),awr=[0,r(kX),HT,9],cwr=[0,r(kX),A6,9],swr=r(GH),vwr=r("*/"),lwr=r(GH),bwr=r("unreachable line_comment"),pwr=r("unreachable string_quote"),mwr=r("\\"),_wr=r("unreachable template_part"),ywr=r("${"),hwr=r(UY),dwr=r(UY),kwr=r(MI),wwr=r("unreachable regexp_class"),Ewr=r(uY),Swr=r("unreachable regexp_body"),gwr=r(C),Fwr=r(C),Twr=r(C),Owr=r(C),Iwr=r("unreachable jsxtext"),Awr=r(P3),Nwr=r(V2),Cwr=r(S3),Pwr=r(cv),Dwr=r(hH),Lwr=r(b3),Rwr=r("{'}'}"),jwr=r(b3),Gwr=r("{'>'}"),Mwr=r(cv),Bwr=r(l1),qwr=r("iexcl"),Uwr=r("aelig"),Hwr=r("Nu"),Xwr=r("Eacute"),Ywr=r("Atilde"),Vwr=r("'int'"),zwr=r("AElig"),Kwr=r("Aacute"),Wwr=r("Acirc"),Jwr=r("Agrave"),$wr=r("Alpha"),Zwr=r("Aring"),Qwr=[0,hY],rEr=[0,913],eEr=[0,zn],nEr=[0,nI],tEr=[0,HT],uEr=[0,vH],iEr=[0,8747],fEr=r("Auml"),xEr=r("Beta"),oEr=r("Ccedil"),aEr=r("Chi"),cEr=r("Dagger"),sEr=r("Delta"),vEr=r("ETH"),lEr=[0,_H],bEr=[0,916],pEr=[0,8225],mEr=[0,935],_Er=[0,QH],yEr=[0,914],hEr=[0,XX],dEr=[0,xY],kEr=r("Icirc"),wEr=r("Ecirc"),EEr=r("Egrave"),SEr=r("Epsilon"),gEr=r("Eta"),FEr=r("Euml"),TEr=r("Gamma"),OEr=r("Iacute"),IEr=[0,VH],AEr=[0,915],NEr=[0,eV],CEr=[0,919],PEr=[0,917],DEr=[0,NU],LEr=[0,nH],REr=r("Igrave"),jEr=r("Iota"),GEr=r("Iuml"),MEr=r("Kappa"),BEr=r("Lambda"),qEr=r("Mu"),UEr=r("Ntilde"),HEr=[0,Wg],XEr=[0,924],YEr=[0,923],VEr=[0,922],zEr=[0,AX],KEr=[0,921],WEr=[0,WX],JEr=[0,TH],$Er=[0,sY],ZEr=r("Sigma"),QEr=r("Otilde"),rSr=r("OElig"),eSr=r("Oacute"),nSr=r("Ocirc"),tSr=r("Ograve"),uSr=r("Omega"),iSr=r("Omicron"),fSr=r("Oslash"),xSr=[0,y6],oSr=[0,927],aSr=[0,937],cSr=[0,A6],sSr=[0,yY],vSr=[0,yU],lSr=[0,338],bSr=r("Ouml"),pSr=r("Phi"),mSr=r("Pi"),_Sr=r("Prime"),ySr=r("Psi"),hSr=r("Rho"),dSr=r("Scaron"),kSr=[0,352],wSr=[0,929],ESr=[0,936],SSr=[0,8243],gSr=[0,928],FSr=[0,934],TSr=[0,mT],OSr=[0,RX],ISr=r("Uuml"),ASr=r("THORN"),NSr=r("Tau"),CSr=r("Theta"),PSr=r("Uacute"),DSr=r("Ucirc"),LSr=r("Ugrave"),RSr=r("Upsilon"),jSr=[0,933],GSr=[0,cp],MSr=[0,FU],BSr=[0,Cw],qSr=[0,920],USr=[0,932],HSr=[0,FX],XSr=r("Xi"),YSr=r("Yacute"),VSr=r("Yuml"),zSr=r("Zeta"),KSr=r("aacute"),WSr=r("acirc"),JSr=r("acute"),$Sr=[0,sU],ZSr=[0,rk],QSr=[0,BO],rgr=[0,918],egr=[0,376],ngr=[0,GX],tgr=[0,926],ugr=[0,iA],igr=[0,UX],fgr=[0,925],xgr=r("delta"),ogr=r("cap"),agr=r("aring"),cgr=r("agrave"),sgr=r("alefsym"),vgr=r("alpha"),lgr=r("amp"),bgr=r("and"),pgr=r("ang"),mgr=r("apos"),_gr=[0,39],ygr=[0,8736],hgr=[0,8743],dgr=[0,38],kgr=[0,945],wgr=[0,8501],Egr=[0,hv],Sgr=r("asymp"),ggr=r("atilde"),Fgr=r("auml"),Tgr=r("bdquo"),Ogr=r("beta"),Igr=r("brvbar"),Agr=r("bull"),Ngr=[0,8226],Cgr=[0,DY],Pgr=[0,946],Dgr=[0,8222],Lgr=[0,fV],Rgr=[0,JH],jgr=[0,8776],Ggr=[0,bU],Mgr=r("copy"),Bgr=r("ccedil"),qgr=r("cedil"),Ugr=r("cent"),Hgr=r("chi"),Xgr=r("circ"),Ygr=r("clubs"),Vgr=r("cong"),zgr=[0,8773],Kgr=[0,9827],Wgr=[0,rX],Jgr=[0,967],$gr=[0,kh],Zgr=[0,hk],Qgr=[0,qX],rFr=r("crarr"),eFr=r("cup"),nFr=r("curren"),tFr=r("dArr"),uFr=r("dagger"),iFr=r("darr"),fFr=r("deg"),xFr=[0,mV],oFr=[0,8595],aFr=[0,8224],cFr=[0,8659],sFr=[0,AF],vFr=[0,8746],lFr=[0,8629],bFr=[0,NX],pFr=[0,8745],mFr=r("fnof"),_Fr=r("ensp"),yFr=r("diams"),hFr=r("divide"),dFr=r("eacute"),kFr=r("ecirc"),wFr=r("egrave"),EFr=r(v7),SFr=r("emsp"),gFr=[0,8195],FFr=[0,8709],TFr=[0,ZF],OFr=[0,tH],IFr=[0,hT],AFr=[0,Dw],NFr=[0,9830],CFr=r("epsilon"),PFr=r("equiv"),DFr=r("eta"),LFr=r("eth"),RFr=r("euml"),jFr=r("euro"),GFr=r("exist"),MFr=[0,8707],BFr=[0,8364],qFr=[0,JU],UFr=[0,s1],HFr=[0,951],XFr=[0,8801],YFr=[0,949],VFr=[0,8194],zFr=r("gt"),KFr=r("forall"),WFr=r("frac12"),JFr=r("frac14"),$Fr=r("frac34"),ZFr=r("frasl"),QFr=r("gamma"),rTr=r("ge"),eTr=[0,8805],nTr=[0,947],tTr=[0,8260],uTr=[0,OY],iTr=[0,iY],fTr=[0,fX],xTr=[0,8704],oTr=r("hArr"),aTr=r("harr"),cTr=r("hearts"),sTr=r("hellip"),vTr=r("iacute"),lTr=r("icirc"),bTr=[0,cH],pTr=[0,BY],mTr=[0,8230],_Tr=[0,9829],yTr=[0,8596],hTr=[0,8660],dTr=[0,62],kTr=[0,402],wTr=[0,948],ETr=[0,jh],STr=r("prime"),gTr=r("ndash"),FTr=r("le"),TTr=r("kappa"),OTr=r("igrave"),ITr=r("image"),ATr=r("infin"),NTr=r("iota"),CTr=r("iquest"),PTr=r("isin"),DTr=r("iuml"),LTr=[0,i6],RTr=[0,8712],jTr=[0,lX],GTr=[0,953],MTr=[0,8734],BTr=[0,8465],qTr=[0,lO],UTr=r("lArr"),HTr=r("lambda"),XTr=r("lang"),YTr=r("laquo"),VTr=r("larr"),zTr=r("lceil"),KTr=r("ldquo"),WTr=[0,8220],JTr=[0,8968],$Tr=[0,8592],ZTr=[0,pg],QTr=[0,10216],rOr=[0,955],eOr=[0,8656],nOr=[0,954],tOr=r("macr"),uOr=r("lfloor"),iOr=r("lowast"),fOr=r("loz"),xOr=r("lrm"),oOr=r("lsaquo"),aOr=r("lsquo"),cOr=r("lt"),sOr=[0,60],vOr=[0,8216],lOr=[0,8249],bOr=[0,vU],pOr=[0,9674],mOr=[0,8727],_Or=[0,8970],yOr=r("mdash"),hOr=r("micro"),dOr=r("middot"),kOr=r(cY),wOr=r("mu"),EOr=r("nabla"),SOr=r("nbsp"),gOr=[0,fY],FOr=[0,8711],TOr=[0,956],OOr=[0,8722],IOr=[0,lS],AOr=[0,Ai],NOr=[0,8212],COr=[0,bX],POr=[0,8804],DOr=r("or"),LOr=r("oacute"),ROr=r("ne"),jOr=r("ni"),GOr=r("not"),MOr=r("notin"),BOr=r("nsub"),qOr=r("ntilde"),UOr=r("nu"),HOr=[0,957],XOr=[0,Vy],YOr=[0,8836],VOr=[0,8713],zOr=[0,LU],KOr=[0,8715],WOr=[0,8800],JOr=r("ocirc"),$Or=r("oelig"),ZOr=r("ograve"),QOr=r("oline"),rIr=r("omega"),eIr=r("omicron"),nIr=r("oplus"),tIr=[0,8853],uIr=[0,959],iIr=[0,969],fIr=[0,8254],xIr=[0,ST],oIr=[0,339],aIr=[0,v8],cIr=[0,QU],sIr=r("part"),vIr=r("ordf"),lIr=r("ordm"),bIr=r("oslash"),pIr=r("otilde"),mIr=r("otimes"),_Ir=r("ouml"),yIr=r("para"),hIr=[0,Yg],dIr=[0,$2],kIr=[0,8855],wIr=[0,WY],EIr=[0,Et],SIr=[0,md],gIr=[0,qg],FIr=r("permil"),TIr=r("perp"),OIr=r("phi"),IIr=r("pi"),AIr=r("piv"),NIr=r("plusmn"),CIr=r("pound"),PIr=[0,Ln],DIr=[0,uV],LIr=[0,982],RIr=[0,960],jIr=[0,966],GIr=[0,8869],MIr=[0,8240],BIr=[0,8706],qIr=[0,8744],UIr=[0,8211],HIr=r("sup1"),XIr=r("rlm"),YIr=r("raquo"),VIr=r("prod"),zIr=r("prop"),KIr=r("psi"),WIr=r("quot"),JIr=r("rArr"),$Ir=r("radic"),ZIr=r("rang"),QIr=[0,10217],rAr=[0,8730],eAr=[0,8658],nAr=[0,34],tAr=[0,968],uAr=[0,8733],iAr=[0,8719],fAr=r("rarr"),xAr=r("rceil"),oAr=r("rdquo"),aAr=r("real"),cAr=r("reg"),sAr=r("rfloor"),vAr=r("rho"),lAr=[0,961],bAr=[0,8971],pAr=[0,$U],mAr=[0,8476],_Ar=[0,8221],yAr=[0,8969],hAr=[0,8594],dAr=[0,nw],kAr=r("sigma"),wAr=r("rsaquo"),EAr=r("rsquo"),SAr=r("sbquo"),gAr=r("scaron"),FAr=r("sdot"),TAr=r("sect"),OAr=r("shy"),IAr=[0,_Y],AAr=[0,NT],NAr=[0,8901],CAr=[0,353],PAr=[0,8218],DAr=[0,8217],LAr=[0,8250],RAr=r("sigmaf"),jAr=r("sim"),GAr=r("spades"),MAr=r("sub"),BAr=r("sube"),qAr=r("sum"),UAr=r("sup"),HAr=[0,8835],XAr=[0,8721],YAr=[0,8838],VAr=[0,8834],zAr=[0,9824],KAr=[0,8764],WAr=[0,962],JAr=[0,963],$Ar=[0,8207],ZAr=r("uarr"),QAr=r("thetasym"),rNr=r("sup2"),eNr=r("sup3"),nNr=r("supe"),tNr=r("szlig"),uNr=r("tau"),iNr=r("there4"),fNr=r("theta"),xNr=[0,952],oNr=[0,8756],aNr=[0,964],cNr=[0,y8],sNr=[0,8839],vNr=[0,RY],lNr=[0,gO],bNr=r("thinsp"),pNr=r("thorn"),mNr=r("tilde"),_Nr=r("times"),yNr=r("trade"),hNr=r("uArr"),dNr=r("uacute"),kNr=[0,nl],wNr=[0,8657],ENr=[0,8482],SNr=[0,xT],gNr=[0,732],FNr=[0,gv],TNr=[0,8201],ONr=[0,977],INr=r("xi"),ANr=r("ucirc"),NNr=r("ugrave"),CNr=r("uml"),PNr=r("upsih"),DNr=r("upsilon"),LNr=r("uuml"),RNr=r("weierp"),jNr=[0,iU],GNr=[0,Y2],MNr=[0,965],BNr=[0,978],qNr=[0,IY],UNr=[0,249],HNr=[0,251],XNr=r("yacute"),YNr=r("yen"),VNr=r("yuml"),zNr=r("zeta"),KNr=r("zwj"),WNr=r("zwnj"),JNr=[0,kY],$Nr=[0,8205],ZNr=[0,950],QNr=[0,gw],rCr=[0,$X],eCr=[0,nd],nCr=[0,958],tCr=[0,8593],uCr=[0,gU],iCr=[0,8242],fCr=[0,XU],xCr=r(VY),oCr=r(jd),aCr=r("unreachable jsx_child"),cCr=r("unreachable type_token wholenumber"),sCr=r("unreachable type_token wholebigint"),vCr=r("unreachable type_token floatbigint"),lCr=r("unreachable type_token scinumber"),bCr=r("unreachable type_token scibigint"),pCr=r("unreachable type_token hexnumber"),mCr=r("unreachable type_token hexbigint"),_Cr=r("unreachable type_token legacyoctnumber"),yCr=r("unreachable type_token octnumber"),hCr=r("unreachable type_token octbigint"),dCr=r("unreachable type_token binnumber"),kCr=r("unreachable type_token bigbigint"),wCr=r("unreachable type_token"),ECr=r(o1),SCr=r(o1),gCr=r(kU),FCr=r(H8),TCr=r(n6),OCr=r(x1),ICr=r(O6),ACr=r(O2),NCr=r(v7),CCr=r(P7),PCr=r(Ci),DCr=r(e7),LCr=[9,1],RCr=[9,0],jCr=r(fs),GCr=r(dv),MCr=r(tu),BCr=r(Tv),qCr=r(K4),UCr=r(Gi),HCr=r(rs),XCr=r(es),YCr=r("unreachable template_tail"),VCr=r(b3),zCr=[0,r(C),r(C),r(C)],KCr=r("unreachable jsx_tag"),WCr=r(P3),JCr=r("unreachable regexp"),$Cr=r("unreachable token wholenumber"),ZCr=r("unreachable token wholebigint"),QCr=r("unreachable token floatbigint"),rPr=r("unreachable token scinumber"),ePr=r("unreachable token scibigint"),nPr=r("unreachable token hexnumber"),tPr=r("unreachable token hexbigint"),uPr=r("unreachable token legacyoctnumber"),iPr=r("unreachable token legacynonoctnumber"),fPr=r("unreachable token octnumber"),xPr=r("unreachable token octbigint"),oPr=r("unreachable token bignumber"),aPr=r("unreachable token bigint"),cPr=r("unreachable token"),sPr=r(o1),vPr=r(o1),lPr=r(kU),bPr=[6,r("#!")],pPr=r("expected ?"),mPr=r(j2),_Pr=r(_4),yPr=r(D2),hPr=r(gs),dPr=r(dx),kPr=r(A7),wPr=r(d6),EPr=r(o6),SPr=r(q2),gPr=r(N7),FPr=r(I7),TPr=r(T2),OPr=r(_i),IPr=r(J2),APr=r(np),NPr=r(U4),CPr=r(b8),PPr=r(_3),DPr=r(P7),LPr=r(Ci),RPr=r(q8),jPr=r(M2),GPr=r(A3),MPr=r(ws),BPr=r(Uu),qPr=r(R2),UPr=r(yv),HPr=r(y4),XPr=r(e7),YPr=r(G2),VPr=r(u1),zPr=r(fs),KPr=r(CS),WPr=r(eh),JPr=r(k4),$Pr=r(a6),ZPr=r(E6),QPr=r(Ju),rDr=r(tu),eDr=r(rs),nDr=r(D7),tDr=r(i1),uDr=r(F7),iDr=r(Gi),fDr=r(d4),xDr=r(Jc),oDr=r(U2),aDr=r(es),cDr=r(K6),sDr=r(C8),vDr=r(Eu),lDr=r("unreachable string_escape"),bDr=r(Zu),pDr=r(H2),mDr=r(H2),_Dr=r(Zu),yDr=r(dX),hDr=r(oY),dDr=r("n"),kDr=r("r"),wDr=r("t"),EDr=r(pV),SDr=r(H2),gDr=r(l1),FDr=r(l1),TDr=r("unreachable id_char"),ODr=r(l1),IDr=r(l1),ADr=r("Invalid (lexer) bigint "),NDr=r("Invalid (lexer) bigint binary/octal "),CDr=r(H2),PDr=r(pH),DDr=r(oU),LDr=r(Nh),RDr=[10,r("token ILLEGAL")],jDr=r("\0"),GDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),MDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),BDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),qDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),UDr=r("\0\0"),HDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),XDr=r(""),YDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),VDr=r("\0"),zDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),KDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),WDr=r("\0\0\0\0"),JDr=r("\0\0\0"),$Dr=r("\x07\x07"),ZDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),QDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),rLr=r(`\x07\b  +\v\f\r`),eLr=r(""),nLr=r("\0\0\0"),tLr=r("\0"),uLr=r("\0\0\0\0\0\0"),iLr=r(""),fLr=r(""),xLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),oLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),aLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),cLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),sLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),vLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),lLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),bLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),pLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),mLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),_Lr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),yLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\b\0\0\0\0\0\0 \x07\b"),hLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),dLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),kLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),wLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),ELr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),SLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),gLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),FLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),TLr=r(`\x07\b +\v\x07\f\r\x1B  ! "#$%                                                                                                                                                                                                                                                         `),OLr=r(""),ILr=r(""),ALr=r("\0\0\0\0"),NLr=r(`\x07\b  +\v\f\r\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x1B\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07`),CLr=r(`\x07\b  +\v\f\r\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07`),PLr=r("\0\0"),DLr=r(""),LLr=r(""),RLr=r("\x07"),jLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),GLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),MLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),BLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),qLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),ULr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),HLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),XLr=r("\0\0\0\0\0\0\0"),YLr=r("\x07"),VLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),zLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),KLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),WLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),JLr=r("\0"),$Lr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),ZLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),QLr=r("\0\0"),rRr=r("\0"),eRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),nRr=r(""),tRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),uRr=r(""),iRr=r(""),fRr=r(""),xRr=r("\0"),oRr=r("\0\0\0"),aRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),cRr=r(""),sRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),vRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),lRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),bRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),pRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),mRr=[0,[11,r("the identifier `"),[2,0,[12,96,0]]],r("the identifier `%s`")],_Rr=[0,1],yRr=[0,1],hRr=r("@flow"),dRr=r(yX),kRr=r(yX),wRr=[0,[11,r("an identifier. When exporting a "),[2,0,[11,r(" as a named export, you must specify a "),[2,0,[11,r(" name. Did you mean `export default "),[2,0,[11,r(" ...`?"),0]]]]]]],r("an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?")],ERr=r(g3),SRr=r("Peeking current location when not available"),gRr=r(e7),FRr=r(bv),TRr=r(n6),ORr=r(x1),IRr=r(O6),ARr=r(O2),NRr=r(v7),CRr=r(P7),PRr=r(Ci),DRr=r(H8),LRr=r(fs),RRr=r(dv),jRr=r(tu),GRr=r(Tv),MRr=r(Gi),BRr=r(rs),qRr=r(es),URr=r(Ci),HRr=r(fs),XRr=r(Gi),YRr=r(Ci),VRr=r(fs),zRr=r(Gi),KRr=r(C2),WRr=r("eval"),JRr=r(ws),$Rr=r(e7),ZRr=r(y4),QRr=r(k4),rjr=r(a6),ejr=r(E6),njr=r(tu),tjr=r(Eu),ujr=r(b8),ijr=r(A3),fjr=r(_i),xjr=r(dx),ojr=r(A7),ajr=r(d6),cjr=r(o6),sjr=r(q2),vjr=r(D2),ljr=r(N7),bjr=r(I7),pjr=r(J2),mjr=r(_4),_jr=r(U4),yjr=r(_3),hjr=r(P7),djr=r(q8),kjr=r(np),wjr=r(M2),Ejr=r(F7),Sjr=r(Uu),gjr=r(R2),Fjr=r(j2),Tjr=r(u1),Ojr=r(Ju),Ijr=r(yv),Ajr=r(D7),Njr=r(i1),Cjr=r(d4),Pjr=r(rs),Djr=r(U2),Ljr=r(es),Rjr=r(K6),jjr=r(C8),Gjr=r(Eu),Mjr=[0,r("src/parser/parser_env.ml"),343,9],Bjr=r("Internal Error: Tried to add_declared_private with outside of class scope."),qjr=r("Internal Error: `exit_class` called before a matching `enter_class`"),Ujr=r(C),Hjr=[0,0,0],Xjr=[0,0,0],Yjr=r("Parser_env.Try.Rollback"),Vjr=r(C),zjr=r(C),Kjr=[0,r(Eu),r(Yx),r(to),r(dU),r(gY),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(Ne),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(iH),r(_o),r(uH),r(qU),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],Wjr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(Ne),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],Jjr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(Ne),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],$jr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(gY),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(uH),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(Ne),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(qU),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(iH),r(Rx),r(ux),r(Ef),r(qf),r(dU),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],Zjr=r(Y4),Qjr=r(I2),rGr=[0,[11,r("Failure while looking up "),[2,0,[11,r(". Index: "),[4,0,0,0,[11,r(". Length: "),[4,0,0,0,[12,46,0]]]]]]],r("Failure while looking up %s. Index: %d. Length: %d.")],eGr=[0,0,0,0],nGr=r("Offset_utils.Offset_lookup_failed"),tGr=r(KY),uGr=r(hE),iGr=r(CY),fGr=r(VX),xGr=r(VX),oGr=r(CY),aGr=r(Jc),cGr=r(Xr),sGr=r(Zn),vGr=r("Program"),lGr=r(Ud),bGr=r("BreakStatement"),pGr=r(Ud),mGr=r("ContinueStatement"),_Gr=r("DebuggerStatement"),yGr=r(cc),hGr=r("DeclareExportAllDeclaration"),dGr=r(cc),kGr=r(Cv),wGr=r(P2),EGr=r(_i),SGr=r("DeclareExportDeclaration"),gGr=r($c),FGr=r(Zn),TGr=r(_t),OGr=r("DeclareModule"),IGr=r(C7),AGr=r("DeclareModuleExports"),NGr=r(Ss),CGr=r(Zn),PGr=r("DoWhileStatement"),DGr=r("EmptyStatement"),LGr=r(bO),RGr=r(P2),jGr=r("ExportDefaultDeclaration"),GGr=r(bO),MGr=r(I4),BGr=r(cc),qGr=r("ExportAllDeclaration"),UGr=r(bO),HGr=r(cc),XGr=r(Cv),YGr=r(P2),VGr=r("ExportNamedDeclaration"),zGr=r(Zi),KGr=r(Nu),WGr=r("ExpressionStatement"),JGr=r(Zn),$Gr=r(fU),ZGr=r(Ss),QGr=r(ji),rMr=r("ForStatement"),eMr=r(R8),nMr=r(Zn),tMr=r(Cu),uMr=r(bi),iMr=r("ForInStatement"),fMr=r(dx),xMr=r(Zn),oMr=r(Cu),aMr=r(bi),cMr=r("ForOfStatement"),sMr=r(m3),vMr=r(kv),lMr=r(Ss),bMr=r("IfStatement"),pMr=r(Jc),mMr=r(rs),_Mr=r(Un),yMr=r(cX),hMr=r(cc),dMr=r(Cv),kMr=r("ImportDeclaration"),wMr=r(Zn),EMr=r(Ud),SMr=r("LabeledStatement"),gMr=r(l7),FMr=r("ReturnStatement"),TMr=r(QX),OMr=r("discriminant"),IMr=r("SwitchStatement"),AMr=r(l7),NMr=r("ThrowStatement"),CMr=r(CH),PMr=r(MU),DMr=r(Tn),LMr=r("TryStatement"),RMr=r(Zn),jMr=r(Ss),GMr=r("WhileStatement"),MMr=r(Zn),BMr=r(xk),qMr=r("WithStatement"),UMr=r(PH),HMr=r("ArrayExpression"),XMr=r(O7),YMr=r(p6),VMr=r(Nu),zMr=r(r7),KMr=r(G7),WMr=r(gs),JMr=r(Zn),$Mr=r(Dt),ZMr=r(_t),QMr=r("ArrowFunctionExpression"),rBr=r(XO),eBr=r(Cu),nBr=r(bi),tBr=r(ul),uBr=r("AssignmentExpression"),iBr=r(Cu),fBr=r(bi),xBr=r(ul),oBr=r("BinaryExpression"),aBr=r("CallExpression"),cBr=r(T4),sBr=r(aY),vBr=r("ComprehensionExpression"),lBr=r(m3),bBr=r(kv),pBr=r(Ss),mBr=r("ConditionalExpression"),_Br=r(T4),yBr=r(aY),hBr=r("GeneratorExpression"),dBr=r(cc),kBr=r("ImportExpression"),wBr=r(zH),EBr=r(MX),SBr=r(Ve),gBr=r(Cu),FBr=r(bi),TBr=r(ul),OBr=r("LogicalExpression"),IBr=r("MemberExpression"),ABr=r(Iv),NBr=r(el),CBr=r("MetaProperty"),PBr=r(C2),DBr=r(TX),LBr=r(jH),RBr=r("NewExpression"),jBr=r(H4),GBr=r("ObjectExpression"),MBr=r(qu),BBr=r("OptionalCallExpression"),qBr=r(qu),UBr=r("OptionalMemberExpression"),HBr=r(Mg),XBr=r("SequenceExpression"),YBr=r("Super"),VBr=r("ThisExpression"),zBr=r(C7),KBr=r(Nu),WBr=r("TypeCastExpression"),JBr=r(l7),$Br=r("AwaitExpression"),ZBr=r(Fa),QBr=r(xs),rqr=r(Jt),eqr=r(ZY),nqr=r(rs),tqr=r(es),uqr=r(J2),iqr=r("matched above"),fqr=r(l7),xqr=r(qE),oqr=r(ul),aqr=r("UnaryExpression"),cqr=r(oV),sqr=r(sH),vqr=r(qE),lqr=r(l7),bqr=r(ul),pqr=r("UpdateExpression"),mqr=r(lY),_qr=r(l7),yqr=r("YieldExpression"),hqr=r("Unexpected FunctionDeclaration with BodyExpression"),dqr=r(O7),kqr=r(p6),wqr=r(Nu),Eqr=r(r7),Sqr=r(G7),gqr=r(gs),Fqr=r(Zn),Tqr=r(Dt),Oqr=r(_t),Iqr=r("FunctionDeclaration"),Aqr=r("Unexpected FunctionExpression with BodyExpression"),Nqr=r(O7),Cqr=r(p6),Pqr=r(Nu),Dqr=r(r7),Lqr=r(G7),Rqr=r(gs),jqr=r(Zn),Gqr=r(Dt),Mqr=r(_t),Bqr=r("FunctionExpression"),qqr=r(qu),Uqr=r(C7),Hqr=r(ui),Xqr=r(Qe),Yqr=r(qu),Vqr=r(C7),zqr=r(ui),Kqr=r("PrivateIdentifier"),Wqr=r(qu),Jqr=r(C7),$qr=r(ui),Zqr=r(Qe),Qqr=r(kv),rUr=r(Ss),eUr=r("SwitchCase"),nUr=r(Zn),tUr=r("param"),uUr=r("CatchClause"),iUr=r(Zn),fUr=r("BlockStatement"),xUr=r(_t),oUr=r("DeclareVariable"),aUr=r(r7),cUr=r(_t),sUr=r("DeclareFunction"),vUr=r(Hy),lUr=r(ws),bUr=r(P7),pUr=r(Zn),mUr=r(O7),_Ur=r(_t),yUr=r("DeclareClass"),hUr=r(P7),dUr=r(Zn),kUr=r(O7),wUr=r(_t),EUr=r("DeclareInterface"),SUr=r(Un),gUr=r(Jc),FUr=r(I4),TUr=r("ExportNamespaceSpecifier"),OUr=r(Cu),IUr=r(O7),AUr=r(_t),NUr=r("DeclareTypeAlias"),CUr=r(Cu),PUr=r(O7),DUr=r(_t),LUr=r("TypeAlias"),RUr=r("DeclareOpaqueType"),jUr=r("OpaqueType"),GUr=r(SX),MUr=r(mX),BUr=r(O7),qUr=r(_t),UUr=r("ClassDeclaration"),HUr=r("ClassExpression"),XUr=r(j_),YUr=r(ws),VUr=r("superTypeParameters"),zUr=r("superClass"),KUr=r(O7),WUr=r(Zn),JUr=r(_t),$Ur=r(Nu),ZUr=r("Decorator"),QUr=r(O7),rHr=r(_t),eHr=r("ClassImplements"),nHr=r(Zn),tHr=r("ClassBody"),uHr=r(wv),iHr=r(F2),fHr=r(n1),xHr=r(lv),oHr=r(j_),aHr=r(pv),cHr=r(tu),sHr=r($c),vHr=r(Un),lHr=r(ii),bHr=r("MethodDefinition"),pHr=r(T2),mHr=r(cu),_Hr=r(tu),yHr=r(pv),hHr=r(C7),dHr=r(Un),kHr=r(ii),wHr=r(xV),EHr=r("Internal Error: Private name found in class prop"),SHr=r(T2),gHr=r(cu),FHr=r(tu),THr=r(pv),OHr=r(C7),IHr=r(Un),AHr=r(ii),NHr=r(xV),CHr=r(_t),PHr=r(OX),DHr=r(ji),LHr=r(_t),RHr=r("EnumStringMember"),jHr=r(_t),GHr=r(OX),MHr=r(ji),BHr=r(_t),qHr=r("EnumNumberMember"),UHr=r(ji),HHr=r(_t),XHr=r("EnumBooleanMember"),YHr=r(T8),VHr=r(DT),zHr=r(A4),KHr=r("EnumBooleanBody"),WHr=r(T8),JHr=r(DT),$Hr=r(A4),ZHr=r("EnumNumberBody"),QHr=r(T8),rXr=r(DT),eXr=r(A4),nXr=r("EnumStringBody"),tXr=r(T8),uXr=r(A4),iXr=r("EnumSymbolBody"),fXr=r(Zn),xXr=r(_t),oXr=r("EnumDeclaration"),aXr=r(P7),cXr=r(Zn),sXr=r(O7),vXr=r(_t),lXr=r("InterfaceDeclaration"),bXr=r(O7),pXr=r(_t),mXr=r("InterfaceExtends"),_Xr=r(C7),yXr=r(H4),hXr=r("ObjectPattern"),dXr=r(C7),kXr=r(PH),wXr=r("ArrayPattern"),EXr=r(Cu),SXr=r(bi),gXr=r(DF),FXr=r(C7),TXr=r(ui),OXr=r(Qe),IXr=r(l7),AXr=r(iX),NXr=r(l7),CXr=r(iX),PXr=r(Cu),DXr=r(bi),LXr=r(DF),RXr=r(ji),jXr=r(ji),GXr=r(n1),MXr=r(lv),BXr=r(aH),qXr=r(pv),UXr=r(f6),HXr=r(F2),XXr=r($c),YXr=r(Un),VXr=r(ii),zXr=r(_U),KXr=r(l7),WXr=r("SpreadProperty"),JXr=r(Cu),$Xr=r(bi),ZXr=r(DF),QXr=r(pv),rYr=r(f6),eYr=r(F2),nYr=r($c),tYr=r(Un),uYr=r(ii),iYr=r(_U),fYr=r(l7),xYr=r("SpreadElement"),oYr=r(R8),aYr=r(Cu),cYr=r(bi),sYr=r("ComprehensionBlock"),vYr=r("We should not create Literal nodes for bigints"),lYr=r(jX),bYr=r(mi),pYr=r("regex"),mYr=r(c7),_Yr=r(Un),yYr=r(c7),hYr=r(Un),dYr=r(H6),kYr=r(c7),wYr=r(Un),EYr=r(H6),SYr=r(x1),gYr=r(Un),FYr=r("BigIntLiteral"),TYr=r(c7),OYr=r(Un),IYr=r(H6),AYr=r(Gi),NYr=r(Ci),CYr=r(c7),PYr=r(Un),DYr=r(H6),LYr=r(Mg),RYr=r("quasis"),jYr=r("TemplateLiteral"),GYr=r(PY),MYr=r(c7),BYr=r(aU),qYr=r(Un),UYr=r("TemplateElement"),HYr=r(EY),XYr=r("tag"),YYr=r("TaggedTemplateExpression"),VYr=r(U2),zYr=r(G2),KYr=r(D2),WYr=r($c),JYr=r("declarations"),$Yr=r("VariableDeclaration"),ZYr=r(ji),QYr=r(_t),rVr=r("VariableDeclarator"),eVr=r($c),nVr=r("Variance"),tVr=r("AnyTypeAnnotation"),uVr=r("MixedTypeAnnotation"),iVr=r("EmptyTypeAnnotation"),fVr=r("VoidTypeAnnotation"),xVr=r("NullLiteralTypeAnnotation"),oVr=r("SymbolTypeAnnotation"),aVr=r("NumberTypeAnnotation"),cVr=r("BigIntTypeAnnotation"),sVr=r("StringTypeAnnotation"),vVr=r("BooleanTypeAnnotation"),lVr=r(C7),bVr=r("NullableTypeAnnotation"),pVr=r(O7),mVr=r(xd),_Vr=r(p6),yVr=r(i1),hVr=r(Dt),dVr=r("FunctionTypeAnnotation"),kVr=r(qu),wVr=r(C7),EVr=r(ui),SVr=r(RH),gVr=r(qu),FVr=r(C7),TVr=r(ui),OVr=r(RH),IVr=[0,0,0,0,0],AVr=r("internalSlots"),NVr=r("callProperties"),CVr=r("indexers"),PVr=r(H4),DVr=r("exact"),LVr=r(GY),RVr=r("ObjectTypeAnnotation"),jVr=r(aH),GVr=r("There should not be computed object type property keys"),MVr=r(ji),BVr=r(n1),qVr=r(lv),UVr=r($c),HVr=r(cu),XVr=r(X3),YVr=r(tu),VVr=r(qu),zVr=r(F2),KVr=r(Un),WVr=r(ii),JVr=r("ObjectTypeProperty"),$Vr=r(l7),ZVr=r("ObjectTypeSpreadProperty"),QVr=r(cu),rzr=r(tu),ezr=r(Un),nzr=r(ii),tzr=r(_t),uzr=r("ObjectTypeIndexer"),izr=r(tu),fzr=r(Un),xzr=r("ObjectTypeCallProperty"),ozr=r(Un),azr=r(F2),czr=r(tu),szr=r(qu),vzr=r(_t),lzr=r("ObjectTypeInternalSlot"),bzr=r(Zn),pzr=r(P7),mzr=r("InterfaceTypeAnnotation"),_zr=r("elementType"),yzr=r("ArrayTypeAnnotation"),hzr=r(_t),dzr=r(eY),kzr=r("QualifiedTypeIdentifier"),wzr=r(O7),Ezr=r(_t),Szr=r("GenericTypeAnnotation"),gzr=r("indexType"),Fzr=r("objectType"),Tzr=r("IndexedAccessType"),Ozr=r(qu),Izr=r("OptionalIndexedAccessType"),Azr=r($6),Nzr=r("UnionTypeAnnotation"),Czr=r($6),Pzr=r("IntersectionTypeAnnotation"),Dzr=r(l7),Lzr=r("TypeofTypeAnnotation"),Rzr=r(_t),jzr=r(eY),Gzr=r("QualifiedTypeofIdentifier"),Mzr=r($6),Bzr=r("TupleTypeAnnotation"),qzr=r(c7),Uzr=r(Un),Hzr=r("StringLiteralTypeAnnotation"),Xzr=r(c7),Yzr=r(Un),Vzr=r("NumberLiteralTypeAnnotation"),zzr=r(c7),Kzr=r(Un),Wzr=r("BigIntLiteralTypeAnnotation"),Jzr=r(Gi),$zr=r(Ci),Zzr=r(c7),Qzr=r(Un),rKr=r("BooleanLiteralTypeAnnotation"),eKr=r("ExistsTypeAnnotation"),nKr=r(C7),tKr=r("TypeAnnotation"),uKr=r(Dt),iKr=r("TypeParameterDeclaration"),fKr=r(_i),xKr=r(cu),oKr=r(DU),aKr=r(ui),cKr=r("TypeParameter"),sKr=r(Dt),vKr=r(gH),lKr=r(Dt),bKr=r(gH),pKr=r(bv),mKr=r(Ke),_Kr=r("closingElement"),yKr=r("openingElement"),hKr=r("JSXElement"),dKr=r("closingFragment"),kKr=r(Ke),wKr=r("openingFragment"),EKr=r("JSXFragment"),SKr=r("selfClosing"),gKr=r(mY),FKr=r(ui),TKr=r("JSXOpeningElement"),OKr=r("JSXOpeningFragment"),IKr=r(ui),AKr=r("JSXClosingElement"),NKr=r("JSXClosingFragment"),CKr=r(Un),PKr=r(ui),DKr=r("JSXAttribute"),LKr=r(l7),RKr=r("JSXSpreadAttribute"),jKr=r("JSXEmptyExpression"),GKr=r(Nu),MKr=r("JSXExpressionContainer"),BKr=r(Nu),qKr=r("JSXSpreadChild"),UKr=r(c7),HKr=r(Un),XKr=r("JSXText"),YKr=r(Iv),VKr=r(xk),zKr=r("JSXMemberExpression"),KKr=r(ui),WKr=r("namespace"),JKr=r("JSXNamespacedName"),$Kr=r(ui),ZKr=r("JSXIdentifier"),QKr=r(I4),rWr=r(B2),eWr=r("ExportSpecifier"),nWr=r(B2),tWr=r("ImportDefaultSpecifier"),uWr=r(B2),iWr=r("ImportNamespaceSpecifier"),fWr=r(cX),xWr=r(B2),oWr=r("imported"),aWr=r("ImportSpecifier"),cWr=r("Line"),sWr=r("Block"),vWr=r(Un),lWr=r(Un),bWr=r("DeclaredPredicate"),pWr=r("InferredPredicate"),mWr=r(C2),_Wr=r(TX),yWr=r(jH),hWr=r(pv),dWr=r(Iv),kWr=r(xk),wWr=r("message"),EWr=r(hE),SWr=r(HH),gWr=r(g7),FWr=r(cc),TWr=r(I2),OWr=r(Y4),IWr=[0,[3,0,0],r(zt)],AWr=r(M2),NWr=r(A3),CWr=r(R2),PWr=r(j2),DWr=r(Ju),LWr=r(D7),RWr=r(i1),jWr=r(F7),GWr=r(d4),MWr=r(U2),BWr=r(K6),qWr=r(C8),UWr=r(D2),HWr=r(G2),XWr=r(fs),YWr=r(Ci),VWr=r(Gi),zWr=r(A7),KWr=r(d6),WWr=r(o6),JWr=r(N7),$Wr=r(_i),ZWr=r(_4),QWr=r(q8),rJr=r(np),eJr=r(q2),nJr=r(P7),tJr=r(tu),uJr=r(U4),iJr=r(u1),fJr=r(J2),xJr=r(rs),oJr=r(es),aJr=r(b8),cJr=r(_3),sJr=r(Uu),vJr=r(yv),lJr=r(ws),bJr=r(e7),pJr=r(y4),mJr=r(k4),_Jr=r(a6),yJr=r(E6),hJr=r(Eu),dJr=r(I7),kJr=r(T2),wJr=r(Jc),EJr=r(eh),SJr=r(CS),gJr=r(gs),FJr=r(dx),TJr=r(n6),OJr=r(H8),IJr=r(v7),AJr=r(dv),NJr=r(x1),CJr=r(Tv),PJr=r(es),DJr=r(K4),LJr=r(O2),RJr=r(O6),jJr=[0,r(g3)],GJr=r(C),MJr=[7,0],BJr=r(C),qJr=[0,1],UJr=[0,2],HJr=[0,3],XJr=[0,0],YJr=[0,0],VJr=[0,0,0,0,0],zJr=[0,r(vv),906,6],KJr=[0,r(vv),ZX,6],WJr=[0,0],JJr=[0,r(vv),1012,8],$Jr=r(X3),ZJr=[0,r(vv),1029,8],QJr=r("Can not have both `static` and `proto`"),r$r=r(tu),e$r=r(X3),n$r=r(n1),t$r=r(lv),u$r=r(n1),i$r=r(wv),f$r=r(oH),x$r=[0,0,0,0],o$r=[0,[0,0,0,0,0]],a$r=r(i1),c$r=[0,r("a type")],s$r=[0,0],v$r=[0,0],l$r=[14,1],b$r=[14,0],p$r=[0,r(vv),EH,15],m$r=[0,r(vv),L7,15],_$r=[0,44],y$r=[0,44],h$r=r(M2),d$r=[0,r(C),0],k$r=[0,0,0],w$r=[0,0,0],E$r=[0,0,0],S$r=[0,41],g$r=r(Qu),F$r=r(Qu),T$r=[0,r("a regular expression")],O$r=r(C),I$r=r(C),A$r=r(C),N$r=[0,r("src/parser/expression_parser.ml"),CU,17],C$r=[0,r("a template literal part")],P$r=[0,[0,r(C),r(C)],1],D$r=r(fs),L$r=r(fs),R$r=r(Gi),j$r=r(Ci),G$r=r("Invalid bigint "),M$r=r("Invalid bigint binary/octal "),B$r=r(H2),q$r=r(pH),U$r=r(Nh),H$r=r(Nh),X$r=r(oU),Y$r=[0,44],V$r=[0,1],z$r=[0,1],K$r=[0,1],W$r=[0,1],J$r=[0,0],$$r=r(bv),Z$r=r(bv),Q$r=r(u1),rZr=r(gS),eZr=[0,r("the identifier `target`")],nZr=[0,0],tZr=r(Uu),uZr=r(el),iZr=r(el),fZr=r(yv),xZr=[0,0],oZr=[0,r("either a call or access of `super`")],aZr=r(yv),cZr=[0,0],sZr=[0,1],vZr=[0,0],lZr=[0,1],bZr=[0,0],pZr=[0,1],mZr=[0,0],_Zr=[0,2],yZr=[0,3],hZr=[0,7],dZr=[0,6],kZr=[0,4],wZr=[0,5],EZr=[0,[0,17,[0,2]]],SZr=[0,[0,18,[0,3]]],gZr=[0,[0,19,[0,4]]],FZr=[0,[0,0,[0,5]]],TZr=[0,[0,1,[0,5]]],OZr=[0,[0,2,[0,5]]],IZr=[0,[0,3,[0,5]]],AZr=[0,[0,5,[0,6]]],NZr=[0,[0,7,[0,6]]],CZr=[0,[0,4,[0,6]]],PZr=[0,[0,6,[0,6]]],DZr=[0,[0,8,[0,7]]],LZr=[0,[0,9,[0,7]]],RZr=[0,[0,10,[0,7]]],jZr=[0,[0,11,[0,8]]],GZr=[0,[0,12,[0,8]]],MZr=[0,[0,15,[0,9]]],BZr=[0,[0,13,[0,9]]],qZr=[0,[0,14,[1,10]]],UZr=[0,[0,16,[0,9]]],HZr=[0,[0,21,[0,6]]],XZr=[0,[0,20,[0,6]]],YZr=[23,r(Ve)],VZr=[0,[0,8]],zZr=[0,[0,7]],KZr=[0,[0,6]],WZr=[0,[0,10]],JZr=[0,[0,9]],$Zr=[0,[0,11]],ZZr=[0,[0,5]],QZr=[0,[0,4]],rQr=[0,[0,2]],eQr=[0,[0,3]],nQr=[0,[0,1]],tQr=[0,[0,0]],uQr=[0,[0,12]],iQr=[0,[0,13]],fQr=[0,[0,14]],xQr=[0,0],oQr=r(Uu),aQr=r(u1),cQr=r(gS),sQr=r(el),vQr=r(gs),lQr=r(Uu),bQr=r(u1),pQr=r(gS),mQr=r(el),_Qr=r(o1),yQr=r(Lo),hQr=[17,r("JSX fragment")],dQr=[0,Ni],kQr=[1,Ni],wQr=r(C),EQr=[0,r(C)],SQr=[0,r(g3)],gQr=r(C),FQr=[0,0,0,0],TQr=[0,r("src/hack_forked/utils/collections/flow_map.ml"),717,36],OQr=[0,0,0],IQr=r(q2),AQr=[0,r(C),0],NQr=r("unexpected PrivateName in Property, expected a PrivateField"),CQr=r(wv),PQr=r(oH),DQr=[0,0,0],LQr=r(wv),RQr=r(wv),jQr=r(n1),GQr=r(lv),MQr=[0,1],BQr=[0,1],qQr=[0,1],UQr=r(wv),HQr=r(n1),XQr=r(lv),YQr=r(XO),VQr=r(Eu),zQr=r(dx),KQr=r("Internal Error: private name found in object props"),WQr=r(cV),JQr=[0,r(g3)],$Qr=r(Eu),ZQr=r(dx),QQr=r(Eu),r0e=r(dx),e0e=r(cV),n0e=[10,r(yi)],t0e=[0,1],u0e=r(a1),i0e=r(K2),f0e=[0,r(LS),1763,21],x0e=r(K2),o0e=r(a1),a0e=[0,r("a declaration, statement or export specifiers")],c0e=[0,40],s0e=r(a1),v0e=r(K2),l0e=[0,r(C),r(C),0],b0e=[0,r(EU)],p0e=r(pU),m0e=r("exports"),_0e=[0,1],y0e=[0,1],h0e=[0,0],d0e=r(pU),k0e=[0,40],w0e=r(Hy),E0e=[0,0],S0e=[0,1],g0e=[0,83],F0e=[0,0],T0e=[0,1],O0e=r(a1),I0e=r(a1),A0e=r(K2),N0e=r(a1),C0e=[0,r("the keyword `as`")],P0e=r(a1),D0e=r(K2),L0e=[0,r(EU)],R0e=[0,r("the keyword `from`")],j0e=[0,r(C),r(C),0],G0e=[0,r(tU)],M0e=r("Label"),B0e=[0,r(tU)],q0e=[0,0,0],U0e=[0,29],H0e=[0,r(LS),431,22],X0e=[0,28],Y0e=[0,r(LS),450,22],V0e=[0,0],z0e=r("the token `;`"),K0e=[0,0],W0e=[0,0],J0e=r(dx),$0e=r(G2),Z0e=r(Eu),Q0e=[0,r(HU)],rre=[15,[0,0]],ere=[0,r(HU)],nre=r("use strict"),tre=[0,0,0,0],ure=r(MI),ire=r("Nooo: "),fre=r(_i),xre=r("Parser error: No such thing as an expression pattern!"),ore=r(C),are=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],cre=[0,r("src/parser/parser_flow.ml"),NT,28],sre=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],vre=r(Un),lre=r(KY),bre=r(I2),pre=r(Y4),mre=r(HH),_re=r(I2),yre=r(Y4),hre=r(g7),dre=r(hE),kre=r("normal"),wre=r(Jc),Ere=r("jsxTag"),Sre=r("jsxChild"),gre=r("template"),Fre=r(MH),Tre=r("context"),Ore=r(Jc),Ire=r("use_strict"),Are=r($6),Nre=r("esproposal_export_star_as"),Cre=r("esproposal_decorators"),Pre=r("enums"),Dre=r("Internal error: ");function Gt(t){if(typeof t=="number")return 0;switch(t[0]){case 0:return[0,Gt(t[1])];case 1:return[1,Gt(t[1])];case 2:return[2,Gt(t[1])];case 3:return[3,Gt(t[1])];case 4:return[4,Gt(t[1])];case 5:return[5,Gt(t[1])];case 6:return[6,Gt(t[1])];case 7:return[7,Gt(t[1])];case 8:var n=t[1];return[8,n,Gt(t[2])];case 9:var e=t[1];return[9,e,e,Gt(t[3])];case 10:return[10,Gt(t[1])];case 11:return[11,Gt(t[1])];case 12:return[12,Gt(t[1])];case 13:return[13,Gt(t[1])];default:return[14,Gt(t[1])]}}function u7(t,n){if(typeof t=="number")return n;switch(t[0]){case 0:return[0,u7(t[1],n)];case 1:return[1,u7(t[1],n)];case 2:return[2,u7(t[1],n)];case 3:return[3,u7(t[1],n)];case 4:return[4,u7(t[1],n)];case 5:return[5,u7(t[1],n)];case 6:return[6,u7(t[1],n)];case 7:return[7,u7(t[1],n)];case 8:var e=t[1];return[8,e,u7(t[2],n)];case 9:var i=t[2],x=t[1];return[9,x,i,u7(t[3],n)];case 10:return[10,u7(t[1],n)];case 11:return[11,u7(t[1],n)];case 12:return[12,u7(t[1],n)];case 13:return[13,u7(t[1],n)];default:return[14,u7(t[1],n)]}}function At(t,n){if(typeof t=="number")return n;switch(t[0]){case 0:return[0,At(t[1],n)];case 1:return[1,At(t[1],n)];case 2:var e=t[1];return[2,e,At(t[2],n)];case 3:var i=t[1];return[3,i,At(t[2],n)];case 4:var x=t[3],c=t[2],s=t[1];return[4,s,c,x,At(t[4],n)];case 5:var p=t[3],y=t[2],T=t[1];return[5,T,y,p,At(t[4],n)];case 6:var E=t[3],d=t[2],w=t[1];return[6,w,d,E,At(t[4],n)];case 7:var G=t[3],A=t[2],S=t[1];return[7,S,A,G,At(t[4],n)];case 8:var M=t[3],K=t[2],V=t[1];return[8,V,K,M,At(t[4],n)];case 9:var f0=t[1];return[9,f0,At(t[2],n)];case 10:return[10,At(t[1],n)];case 11:var m0=t[1];return[11,m0,At(t[2],n)];case 12:var k0=t[1];return[12,k0,At(t[2],n)];case 13:var g0=t[2],e0=t[1];return[13,e0,g0,At(t[3],n)];case 14:var x0=t[2],l=t[1];return[14,l,x0,At(t[3],n)];case 15:return[15,At(t[1],n)];case 16:return[16,At(t[1],n)];case 17:var c0=t[1];return[17,c0,At(t[2],n)];case 18:var t0=t[1];return[18,t0,At(t[2],n)];case 19:return[19,At(t[1],n)];case 20:var o0=t[2],w0=t[1];return[20,w0,o0,At(t[3],n)];case 21:var _0=t[1];return[21,_0,At(t[2],n)];case 22:return[22,At(t[1],n)];case 23:var E0=t[1];return[23,E0,At(t[2],n)];default:var U0=t[2],b=t[1];return[24,b,U0,At(t[3],n)]}}function nN(t,n,e){return t[1]===n?(t[1]=e,1):0}function de(t){throw[0,q7,t]}function Pu(t){throw[0,ZA,t]}M7(0);function gp(t){return 0<=t?t:-t|0}var Lre=mH;function Te(t,n){var e=un(t),i=un(n),x=Lt(e+i|0);return Ts(t,0,x,0,e),Ts(n,0,x,e,i),x}function Rre(t){return t?ui0:ii0}function on(t,n){if(t){var e=t[1];return[0,e,on(t[2],n)]}return n}j70(0);var jre=zV(1),Pc=zV(2);function Gre(t){function n(e){for(var i=e;;){if(i){var x=i[2],c=i[1];try{p1(c)}catch(y){if(y=St(y),y[1]!==$V)throw y;var s=y}var i=x;continue}return 0}}return n(G70(0))}function vl(t,n){return zA(t,n,0,un(n))}function iz(t){return vl(Pc,t),KV(Pc,10),p1(Pc)}var tN=[0,Gre];function fz(t){for(;;){var n=tN[1],e=[0,1],i=1-nN(tN,n,function(x,c){return function(s){return nN(x,1,0)&&u(t,0),u(c,0)}}(e,n));if(!i)return i}}function uN(t){return u(tN[1],0)}WA(r(sV),uN),V70(0)&&fz(function(t){return s70(t)});function xz(t){return 25<(t+Y3|0)>>>0?t:t+hU|0}var oz=K70(0)[1],ll=(4*Y70(0)|0)-1|0;M7(0);var Mre=X70(0);function Dc(t){for(var n=0,e=t;;){if(e){var n=n+1|0,e=e[2];continue}return n}}function bl(t){return t?t[1]:de(bi0)}function az(t){return t?t[2]:de(li0)}function Lc(t,n){for(var e=t,i=n;;){if(e){var x=[0,e[1],i],e=e[2],i=x;continue}return i}}function ye(t){return Lc(t,0)}function pl(t){if(t){var n=t[1];return on(n,pl(t[2]))}return 0}function d1(t,n){if(n){var e=n[2],i=u(t,n[1]);return[0,i,d1(t,e)]}return 0}function Fp(t,n){for(var e=0,i=n;;){if(i){var x=i[2],e=[0,u(t,i[1]),e],i=x;continue}return e}}function Du(t,n){for(var e=n;;){if(e){var i=e[2];u(t,e[1]);var e=i;continue}return 0}}function le(t,n,e){for(var i=n,x=e;;){if(x){var c=x[2],i=o(t,i,x[1]),x=c;continue}return i}}function iN(t,n,e){if(n){var i=n[1];return o(t,i,iN(t,n[2],e))}return e}function cz(t,n,e){for(var i=n,x=e;;){if(i){if(x){var c=x[2],s=i[2];o(t,i[1],x[1]);var i=s,x=c;continue}}else if(!x)return 0;return Pu(vi0)}}function fN(t,n){for(var e=n;;){if(e){var i=e[2],x=LV(e[1],t)===0?1:0;if(x)return x;var e=i;continue}return 0}}function Bre(t,n){for(var e=n;;){if(e){var i=e[1],x=e[2],c=i[2];if(LV(i[1],t)===0)return c;var e=x;continue}throw Zt}}function ml(t){var n=0;return function(e){for(var i=n,x=e;;){if(x){var c=x[2],s=x[1];if(u(t,s)){var i=[0,s,i],x=c;continue}var x=c;continue}return ye(i)}}}function k1(t,n){var e=Lt(t);return c70(e,0,t,n),e}function sz(t){var n=b7(t),e=Lt(n);return Fs(t,0,e,0,n),e}function vz(t,n,e){if(0<=n&&0<=e&&!((b7(t)-e|0)>>0||(c=1):65<=x&&(c=1);else{var s=0;if(x!==32)if(43<=x)switch(x+xy|0){case 5:if(i<(e+2|0)&&1>>0?33<(x+SS|0)>>>0&&(c=1):x===2&&(c=1),!c){var n=n+1|0;continue}var s=t,p=[0,0],y=b7(s)-1|0,T=0;if(!(y<0))for(var E=T;;){var d=Xu(s,E),w=0;if(32<=d){var G=d-34|0,A=0;if(58>>0?93<=G&&(A=1):56<(G-1|0)>>>0&&(w=1,A=1),!A){var S=1;w=2}}else 11<=d?d===13&&(w=1):8<=d&&(w=1);switch(w){case 0:var S=4;break;case 1:var S=2;break}p[1]=p[1]+S|0;var M=E+1|0;if(y!==E){var E=M;continue}break}if(p[1]===b7(s))var K=sz(s);else{var V=Lt(p[1]);p[1]=0;var f0=b7(s)-1|0,m0=0;if(!(f0<0))for(var k0=m0;;){var g0=Xu(s,k0),e0=0;if(35<=g0)g0===92?e0=2:Jn<=g0?e0=1:e0=3;else if(32<=g0)34<=g0?e0=2:e0=3;else if(14<=g0)e0=1;else switch(g0){case 8:Qn(V,p[1],92),p[1]++,Qn(V,p[1],98);break;case 9:Qn(V,p[1],92),p[1]++,Qn(V,p[1],f1);break;case 10:Qn(V,p[1],92),p[1]++,Qn(V,p[1],Yt);break;case 13:Qn(V,p[1],92),p[1]++,Qn(V,p[1],t1);break;default:e0=1}switch(e0){case 1:Qn(V,p[1],92),p[1]++,Qn(V,p[1],48+(g0/ti|0)|0),p[1]++,Qn(V,p[1],48+((g0/10|0)%10|0)|0),p[1]++,Qn(V,p[1],48+(g0%10|0)|0);break;case 2:Qn(V,p[1],92),p[1]++,Qn(V,p[1],g0);break;case 3:Qn(V,p[1],g0);break}p[1]++;var x0=k0+1|0;if(f0!==k0){var k0=x0;continue}break}var K=V}var i=K}var l=un(i),c0=k1(l+2|0,34);return Ts(i,0,c0,1,l),c0}}function wz(t,n){var e=gp(n),i=rz?rz[1]:70;switch(t[2]){case 0:var x=Ri;break;case 1:var x=R7;break;case 2:var x=69;break;case 3:var x=s7;break;case 4:var x=71;break;case 5:var x=i;break;case 6:var x=L7;break;case 7:var x=72;break;default:var x=70}var c=yz(16);switch(Xv(c,37),t[1]){case 0:break;case 1:Xv(c,43);break;default:Xv(c,32)}return 8<=t[2]&&Xv(c,35),Xv(c,46),Lu(c,r(C+e)),Xv(c,x),dz(c)}function Ap(t,n){if(13<=t){var e=[0,0],i=un(n)-1|0,x=0;if(!(i<0))for(var c=x;;){9<(Vr(n,c)+$t|0)>>>0||e[1]++;var s=c+1|0;if(i!==c){var c=s;continue}break}var p=e[1],y=Lt(un(n)+((p-1|0)/3|0)|0),T=[0,0],E=function(K){return b1(y,T[1],K),T[1]++,0},d=[0,((p-1|0)%3|0)+1|0],w=un(n)-1|0,G=0;if(!(w<0))for(var A=G;;){var S=Vr(n,A);9<(S+$t|0)>>>0||(d[1]===0&&(E(95),d[1]=3),d[1]+=-1),E(S);var M=A+1|0;if(w!==A){var A=M;continue}break}return y}return n}function Vre(t,n){switch(t){case 1:var e=Ex0;break;case 2:var e=Sx0;break;case 4:var e=gx0;break;case 5:var e=Fx0;break;case 6:var e=Tx0;break;case 7:var e=Ox0;break;case 8:var e=Ix0;break;case 9:var e=Ax0;break;case 10:var e=Nx0;break;case 11:var e=Cx0;break;case 0:case 13:var e=Px0;break;case 3:case 14:var e=Dx0;break;default:var e=Lx0}return Ap(t,hp(e,n))}function zre(t,n){switch(t){case 1:var e=$f0;break;case 2:var e=Zf0;break;case 4:var e=Qf0;break;case 5:var e=rx0;break;case 6:var e=ex0;break;case 7:var e=nx0;break;case 8:var e=tx0;break;case 9:var e=ux0;break;case 10:var e=ix0;break;case 11:var e=fx0;break;case 0:case 13:var e=xx0;break;case 3:case 14:var e=ox0;break;default:var e=ax0}return Ap(t,hp(e,n))}function Kre(t,n){switch(t){case 1:var e=Gf0;break;case 2:var e=Mf0;break;case 4:var e=Bf0;break;case 5:var e=qf0;break;case 6:var e=Uf0;break;case 7:var e=Hf0;break;case 8:var e=Xf0;break;case 9:var e=Yf0;break;case 10:var e=Vf0;break;case 11:var e=zf0;break;case 0:case 13:var e=Kf0;break;case 3:case 14:var e=Wf0;break;default:var e=Jf0}return Ap(t,hp(e,n))}function Wre(t,n){switch(t){case 1:var e=cx0;break;case 2:var e=sx0;break;case 4:var e=vx0;break;case 5:var e=lx0;break;case 6:var e=bx0;break;case 7:var e=px0;break;case 8:var e=mx0;break;case 9:var e=_x0;break;case 10:var e=yx0;break;case 11:var e=hx0;break;case 0:case 13:var e=dx0;break;case 3:case 14:var e=kx0;break;default:var e=wx0}return Ap(t,y70(e,n))}function ss(t,n,e){function i(m0){switch(t[1]){case 0:var k0=45;break;case 1:var k0=43;break;default:var k0=32}return b70(e,n,k0)}function x(m0){var k0=Ju0(e);return k0===3?e<0?Lf0:Rf0:4<=k0?Df0:m0}switch(t[2]){case 5:for(var c=XA(wz(t,n),e),s=0,p=un(c);;){if(s===p)var y=0;else{var T=It(c,s)+v1|0,E=0;if(23>>0?T===55&&(E=1):21<(T-1|0)>>>0&&(E=1),!E){var s=s+1|0;continue}var y=1}var d=y?c:Te(c,jf0);return x(d)}case 6:return i(0);case 7:var w=i(0),G=b7(w);if(G===0)var A=w;else{var S=Lt(G),M=G-1|0,K=0;if(!(M<0))for(var V=K;;){Qn(S,V,xz(Xu(w,V)));var f0=V+1|0;if(M!==V){var V=f0;continue}break}var A=S}return A;case 8:return x(i(0));default:return XA(wz(t,n),e)}}function kl(t,n,e,i){for(var x=n,c=e,s=i;;){if(typeof s=="number")return u(x,c);switch(s[0]){case 0:var p=s[1];return function(ar){return Vn(x,[5,c,ar],p)};case 1:var y=s[1];return function(ar){var _r=0;if(40<=ar)if(ar===92)var Ir=fi0;else Jn<=ar?_r=1:_r=2;else if(32<=ar)if(39<=ar)var Ir=xi0;else _r=2;else if(14<=ar)_r=1;else switch(ar){case 8:var Ir=oi0;break;case 9:var Ir=ai0;break;case 10:var Ir=ci0;break;case 13:var Ir=si0;break;default:_r=1}switch(_r){case 1:var fe=Lt(4);Qn(fe,0,92),Qn(fe,1,48+(ar/ti|0)|0),Qn(fe,2,48+((ar/10|0)%10|0)|0),Qn(fe,3,48+(ar%10|0)|0);var Ir=fe;break;case 2:var v0=Lt(1);Qn(v0,0,ar);var Ir=v0;break}var P=un(Ir),L=k1(P+2|0,39);return Ts(Ir,0,L,1,P),Vn(x,[4,c,L],y)};case 2:var T=s[2],E=s[1];return mN(x,c,T,E,function(ar){return ar});case 3:return mN(x,c,s[2],s[1],Yre);case 4:return Np(x,c,s[4],s[2],s[3],Vre,s[1]);case 5:return Np(x,c,s[4],s[2],s[3],zre,s[1]);case 6:return Np(x,c,s[4],s[2],s[3],Kre,s[1]);case 7:return Np(x,c,s[4],s[2],s[3],Wre,s[1]);case 8:var d=s[4],w=s[3],G=s[2],A=s[1];if(typeof G=="number"){if(typeof w=="number")return w?function(ar,_r){return Vn(x,[4,c,ss(A,ar,_r)],d)}:function(ar){return Vn(x,[4,c,ss(A,vN(A),ar)],d)};var S=w[1];return function(ar){return Vn(x,[4,c,ss(A,S,ar)],d)}}else{if(G[0]===0){var M=G[2],K=G[1];if(typeof w=="number")return w?function(ar,_r){return Vn(x,[4,c,H7(K,M,ss(A,ar,_r))],d)}:function(ar){return Vn(x,[4,c,H7(K,M,ss(A,vN(A),ar))],d)};var V=w[1];return function(ar){return Vn(x,[4,c,H7(K,M,ss(A,V,ar))],d)}}var f0=G[1];if(typeof w=="number")return w?function(ar,_r,Ir){return Vn(x,[4,c,H7(f0,ar,ss(A,_r,Ir))],d)}:function(ar,_r){return Vn(x,[4,c,H7(f0,ar,ss(A,vN(A),_r))],d)};var m0=w[1];return function(ar,_r){return Vn(x,[4,c,H7(f0,ar,ss(A,m0,_r))],d)}}case 9:return mN(x,c,s[2],s[1],Rre);case 10:var c=[7,c],s=s[1];continue;case 11:var c=[2,c,s[1]],s=s[2];continue;case 12:var c=[3,c,s[1]],s=s[2];continue;case 13:var k0=s[3],g0=s[2],e0=yz(16);lN(e0,g0);var x0=dz(e0);return function(ar){return Vn(x,[4,c,x0],k0)};case 14:var l=s[3],c0=s[2];return function(ar){var _r=ar[1],Ir=yt(_r,Gt(iu(c0)));if(typeof Ir[2]=="number")return Vn(x,c,At(Ir[1],l));throw Ou};case 15:var t0=s[1];return function(ar,_r){return Vn(x,[6,c,function(Ir){return o(ar,Ir,_r)}],t0)};case 16:var o0=s[1];return function(ar){return Vn(x,[6,c,ar],o0)};case 17:var c=[0,c,s[1]],s=s[2];continue;case 18:var w0=s[1];if(w0[0]===0){var _0=s[2],E0=w0[1][1],U0=0,x=function(fe,v0,P){return function(L){return Vn(v0,[1,fe,[0,L]],P)}}(c,x,_0),c=U0,s=E0;continue}var b=s[2],R0=w0[1][1],X=0,x=function(ar,_r,Ir){return function(fe){return Vn(_r,[1,ar,[1,fe]],Ir)}}(c,x,b),c=X,s=R0;continue;case 19:throw[0,Sn,pf0];case 20:var s0=s[3],hr=[8,c,mf0];return function(ar){return Vn(x,hr,s0)};case 21:var Ar=s[2];return function(ar){return Vn(x,[4,c,hp(bf0,ar)],Ar)};case 22:var or=s[1];return function(ar){return Vn(x,[5,c,ar],or)};case 23:var W0=s[2],Lr=s[1];if(typeof Lr=="number")switch(Lr){case 0:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 1:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 2:throw[0,Sn,_f0];default:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0])}else switch(Lr[0]){case 0:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 1:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 2:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 3:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 4:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 5:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 6:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 7:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 8:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);case 9:var Tr=Lr[2];return t<50?bN(t+1|0,x,c,Tr,W0):Tu(bN,[0,x,c,Tr,W0]);case 10:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0]);default:return t<50?st(t+1|0,x,c,W0):Tu(st,[0,x,c,W0])}default:var Hr=s[3],Or=s[1],fr=u(s[2],0);return t<50?pN(t+1|0,x,c,Hr,Or,fr):Tu(pN,[0,x,c,Hr,Or,fr])}}}function bN(t,n,e,i,x){if(typeof i=="number")return t<50?st(t+1|0,n,e,x):Tu(st,[0,n,e,x]);switch(i[0]){case 0:var c=i[1];return function(m0){return fi(n,e,c,x)};case 1:var s=i[1];return function(m0){return fi(n,e,s,x)};case 2:var p=i[1];return function(m0){return fi(n,e,p,x)};case 3:var y=i[1];return function(m0){return fi(n,e,y,x)};case 4:var T=i[1];return function(m0){return fi(n,e,T,x)};case 5:var E=i[1];return function(m0){return fi(n,e,E,x)};case 6:var d=i[1];return function(m0){return fi(n,e,d,x)};case 7:var w=i[1];return function(m0){return fi(n,e,w,x)};case 8:var G=i[2];return function(m0){return fi(n,e,G,x)};case 9:var A=i[3],S=i[2],M=bu(iu(i[1]),S);return function(m0){return fi(n,e,u7(M,A),x)};case 10:var K=i[1];return function(m0,k0){return fi(n,e,K,x)};case 11:var V=i[1];return function(m0){return fi(n,e,V,x)};case 12:var f0=i[1];return function(m0){return fi(n,e,f0,x)};case 13:throw[0,Sn,yf0];default:throw[0,Sn,hf0]}}function st(t,n,e,i){var x=[8,e,df0];return t<50?kl(t+1|0,n,x,i):Tu(kl,[0,n,x,i])}function pN(t,n,e,i,x,c){if(x){var s=x[1];return function(y){return Jre(n,e,i,s,u(c,y))}}var p=[4,e,c];return t<50?kl(t+1|0,n,p,i):Tu(kl,[0,n,p,i])}function Vn(t,n,e){return JA(kl(0,t,n,e))}function fi(t,n,e,i){return JA(bN(0,t,n,e,i))}function Jre(t,n,e,i,x){return JA(pN(0,t,n,e,i,x))}function mN(t,n,e,i,x){if(typeof i=="number")return function(y){return Vn(t,[4,n,u(x,y)],e)};if(i[0]===0){var c=i[2],s=i[1];return function(y){return Vn(t,[4,n,H7(s,c,u(x,y))],e)}}var p=i[1];return function(y,T){return Vn(t,[4,n,H7(p,y,u(x,T))],e)}}function Np(t,n,e,i,x,c,s){if(typeof i=="number"){if(typeof x=="number")return x?function(G,A){return Vn(t,[4,n,Yv(G,o(c,s,A))],e)}:function(G){return Vn(t,[4,n,o(c,s,G)],e)};var p=x[1];return function(G){return Vn(t,[4,n,Yv(p,o(c,s,G))],e)}}else{if(i[0]===0){var y=i[2],T=i[1];if(typeof x=="number")return x?function(G,A){return Vn(t,[4,n,H7(T,y,Yv(G,o(c,s,A)))],e)}:function(G){return Vn(t,[4,n,H7(T,y,o(c,s,G))],e)};var E=x[1];return function(G){return Vn(t,[4,n,H7(T,y,Yv(E,o(c,s,G)))],e)}}var d=i[1];if(typeof x=="number")return x?function(G,A,S){return Vn(t,[4,n,H7(d,G,Yv(A,o(c,s,S)))],e)}:function(G,A){return Vn(t,[4,n,H7(d,G,o(c,s,A))],e)};var w=x[1];return function(G,A){return Vn(t,[4,n,H7(d,G,Yv(w,o(c,s,A)))],e)}}}function vs(t,n){for(var e=n;;){if(typeof e=="number")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return vs(t,i),vl(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];vs(t,s),vl(t,kf0);var e=p;continue}var y=c[1];vs(t,s),vl(t,wf0);var e=y;continue;case 6:var T=e[2];return vs(t,e[1]),u(T,t);case 7:return vs(t,e[1]),p1(t);case 8:var E=e[2];return vs(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return vs(t,e[1]),vl(t,d);default:var w=e[2];return vs(t,e[1]),KV(t,w)}}}function ls(t,n){for(var e=n;;){if(typeof e=="number")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return ls(t,i),dn(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];ls(t,s),dn(t,Ef0);var e=p;continue}var y=c[1];ls(t,s),dn(t,Sf0);var e=y;continue;case 6:var T=e[2];return ls(t,e[1]),dn(t,u(T,0));case 7:var e=e[1];continue;case 8:var E=e[2];return ls(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return ls(t,e[1]),dn(t,d);default:var w=e[2];return ls(t,e[1]),qi(t,w)}}}function $re(t){if(Hn(t,Ff0))return Tf0;var n=un(t);function e(S){var M=gf0[1],K=rt(N4);return u(Vn(function(V){return ls(K,V),de(Mt(K))},0,M),t)}function i(S){for(var M=S;;){if(M===n)return M;var K=It(t,M);if(K!==9&&K!==32)return M;var M=M+1|0}}function x(S,M){for(var K=M;;){if(K===n||25<(It(t,K)+Y3|0)>>>0)return K;var K=K+1|0}}function c(S,M){for(var K=M;;){if(K===n)return K;var V=It(t,K),f0=0;if(48<=V?58<=V||(f0=1):V===45&&(f0=1),f0){var K=K+1|0;continue}return K}}var s=i(0),p=x(s,s),y=m7(t,s,p-s|0),T=i(p),E=c(T,T);if(T===E)var d=0;else try{var w=Bi(m7(t,T,E-T|0)),d=w}catch(S){if(S=St(S),S[1]!==q7)throw S;var d=e(0)}i(E)!==n&&e(0);var G=0;if(n0(y,Of0)&&n0(y,If0))var A=n0(y,Af0)?n0(y,Nf0)?n0(y,Cf0)?n0(y,Pf0)?e(0):1:2:3:0;else G=1;if(G)var A=4;return[0,d,A]}function _N(t,n){var e=n[1],i=0;return Vn(function(x){return vs(t,x),0},i,e)}function yN(t){return _N(Pc,t)}function nt(t){var n=t[1];return Vn(function(e){var i=rt(64);return ls(i,e),Mt(i)},0,n)}var hN=[0,0];function dN(t,n){var e=t[1+n];if(1-(typeof e=="number"?1:0)){if(h1(e)===Y2)return u(nt(_o0),e);if(h1(e)===nd)for(var i=XA(ni0,e),x=0,c=un(i);;){if(c<=x)return Te(i,ti0);var s=It(i,x),p=0;if(48<=s?58<=s||(p=1):s===45&&(p=1),p){var x=x+1|0;continue}return i}return yo0}return u(nt(mo0),e)}function Ez(t,n){if(t.length-1<=n)return Yx0;var e=Ez(t,n+1|0),i=dN(t,n);return o(nt(Vx0),i,e)}function Cp(t){function n(k0){for(var g0=k0;;){if(g0){var e0=g0[2],x0=g0[1];try{var l=0,c0=u(x0,t);l=1}catch{}if(l&&c0)return[0,c0[1]];var g0=e0;continue}return 0}}var e=n(hN[1]);if(e)return e[1];if(t===$A)return xo0;if(t===QV)return oo0;if(t[1]===ZV){var i=t[2],x=i[3],c=i[2],s=i[1];return p7(nt(QA),s,c,x,x+5|0,ao0)}if(t[1]===Sn){var p=t[2],y=p[3],T=p[2],E=p[1];return p7(nt(QA),E,T,y,y+6|0,co0)}if(t[1]===sl){var d=t[2],w=d[3],G=d[2],A=d[1];return p7(nt(QA),A,G,w,w+6|0,so0)}if(h1(t)===0){var S=t.length-1,M=t[1][1];if(2>>0)var K=Ez(t,2),V=dN(t,1),f0=o(nt(vo0),V,K);else switch(S){case 0:var f0=lo0;break;case 1:var f0=bo0;break;default:var m0=dN(t,1),f0=u(nt(po0),m0)}return Te(M,f0)}return t[1]}function kN(t,n){var e=a70(n),i=e.length-1-1|0,x=0;if(!(i<0))for(var c=x;;){var s=uu(e,c)[1+c],p=function(f0){return function(m0){return m0?f0===0?Qx0:ro0:f0===0?eo0:no0}}(c);if(s[0]===0)var y=s[5],T=s[4],E=s[3],d=s[6]?to0:uo0,w=s[2],G=s[7],A=p(s[1]),M=[0,Q70(nt(io0),A,G,w,d,E,T,y)];else if(s[1])var M=0;else var S=p(0),M=[0,u(nt(fo0),S)];if(M){var K=M[1];u(_N(t,$x0),K)}var V=c+1|0;if(i!==c){var c=V;continue}break}return 0}function Sz(t){for(;;){var n=hN[1],e=1-nN(hN,n,[0,t,n]);if(!e)return e}}var Zre=ho0.slice();function Qre(t,n){var e=Cp(t);u(yN(Jx0),e),kN(Pc,n);var i=g70(0);if(i<0){var x=gp(i);iz(uu(Zre,x)[1+x])}return p1(Pc)}var ree=[0];WA(r(LH),function(t,n){try{try{var e=n?ree:GV(0);try{uN(0)}catch{}try{var i=Qre(t,e),x=i}catch(y){y=St(y);var c=Cp(t);u(yN(zx0),c),kN(Pc,e);var s=Cp(y);u(yN(Kx0),s),kN(Pc,GV(0));var x=p1(Pc)}var p=x}catch(y){if(y=St(y),y!==$A)throw y;var p=iz(Wx0)}return p}catch{return 0}});var wN=[Et,Bo0,M7(0)],Pp=0,gz=-1;function wl(t,n){return t[13]=t[13]+n[3]|0,aN(n,t[28])}var Fz=1000000010;function EN(t,n){return ur(t[17],n,0,un(n))}function Dp(t){return u(t[19],0)}function Tz(t,n,e){return t[9]=t[9]-n|0,EN(t,e),t[11]=0,0}function Lp(t,n){var e=n0(n,Mo0);return e&&Tz(t,un(n),n)}function Vv(t,n,e){var i=n[3],x=n[2];Lp(t,n[1]),Dp(t),t[11]=1;var c=(t[6]-e|0)+x|0,s=t[8],p=s<=c?s:c;return t[10]=p,t[9]=t[6]-t[10]|0,u(t[21],t[10]),Lp(t,i)}function Oz(t,n){return Vv(t,Go0,n)}function El(t,n){var e=n[2],i=n[3];return Lp(t,n[1]),t[9]=t[9]-e|0,u(t[20],e),Lp(t,i)}function Iz(t){for(;;){var n=t[28][2],e=n?[0,n[1]]:0;if(e){var i=e[1],x=i[1],c=i[2],s=0<=x?1:0,p=i[3],y=t[13]-t[12]|0,T=s||(t[9]<=y?1:0);if(T){var E=t[28],d=E[2];if(d){if(d[2]){var w=d[2];E[1]=E[1]-1|0,E[2]=w}else oN(E);var G=0<=x?x:Fz;if(typeof c=="number")switch(c){case 0:var A=Hv(t[3]);if(A){var S=A[1][1],M=function(L,Q){if(Q){var i0=Q[1],l0=Q[2];return S70(L,i0)?[0,L,Q]:[0,i0,M(L,l0)]}return[0,L,0]};S[1]=M(t[6]-t[9]|0,S[1])}break;case 1:Uv(t[2]);break;case 2:Uv(t[3]);break;case 3:var K=Hv(t[2]);K?Oz(t,K[1][2]):Dp(t);break;case 4:if(t[10]!==(t[6]-t[9]|0)){var V=t[28],f0=V[2];if(f0){var m0=f0[1];if(f0[2]){var k0=f0[2];V[1]=V[1]-1|0,V[2]=k0;var g0=[0,m0]}else{oN(V);var g0=[0,m0]}}else var g0=0;if(g0){var e0=g0[1],x0=e0[1];t[12]=t[12]-e0[3]|0,t[9]=t[9]+x0|0}}break;default:var l=Uv(t[5]);l&&EN(t,u(t[25],l[1]))}else switch(c[0]){case 0:Tz(t,G,c[1]);break;case 1:var c0=c[2],t0=c[1],o0=c0[1],w0=c0[2],_0=Hv(t[2]);if(_0){var E0=_0[1],U0=E0[2];switch(E0[1]){case 0:El(t,t0);break;case 1:Vv(t,c0,U0);break;case 2:Vv(t,c0,U0);break;case 3:t[9]<(G+un(o0)|0)?Vv(t,c0,U0):El(t,t0);break;case 4:t[11]||!(t[9]<(G+un(o0)|0)||((t[6]-U0|0)+w0|0)>>0)&&Oz(t,_r)}else Dp(t)}var fe=t[9]-Wr|0,v0=Rr===1?1:t[9]>>18|0),e(jt|(n>>>12|0)&63),e(jt|(n>>>6|0)&63),e(jt|n&63)):Hh<=n?(e(hv|n>>>12|0),e(jt|(n>>>6|0)&63),e(jt|n&63)):jt<=n?(e(zn|n>>>6|0),e(jt|n&63)):e(n)}var GN=z0,i7=null,Jz=void 0;function Mp(t){return t!==Jz?1:0}var _ee=GN.Array,MN=[Et,Zo0,M7(0)],yee=GN.Error;aee(Qo0,[0,MN,{}]);function $z(t){throw t}Sz(function(t){return t[1]===MN?[0,B7(t[2].toString())]:0}),Sz(function(t){return t instanceof _ee?0:[0,B7(t.toString())]});var Dr=pu(Q8r,Z8r),Rn=pu(e3r,r3r),Bp=pu(t3r,n3r),Tl=pu(i3r,u3r),g1=pu(x3r,f3r),BN=pu(a3r,o3r),Zz=pu(s3r,c3r),qN=pu(l3r,v3r),zv=pu(p3r,b3r),qp=pu(_3r,m3r),$e=pu(h3r,y3r),Yu=pu(k3r,d3r),Be=pu(E3r,w3r),UN=pu(g3r,S3r),di=pu(T3r,F3r),fu=pu(I3r,O3r),F1=pu(N3r,A3r),As=pu(P3r,C3r),HN=function t(n,e,i,x){return t.fun(n,e,i,x)},Qz=function t(n,e,i){return t.fun(n,e,i)},hee=pu(L3r,D3r);N(HN,function(t,n,e,i){u(f(e),L8r),o(f(e),j8r,R8r);var x=i[1];u(f(e),G8r);var c=0;le(function(y,T){y&&u(f(e),D8r);function E(d){return u(t,d)}return ur(fu[1],E,e,T),1},c,x),u(f(e),M8r),u(f(e),B8r),u(f(e),q8r),o(f(e),H8r,U8r);var s=i[2];u(f(e),X8r);var p=0;return le(function(y,T){y&&u(f(e),P8r);function E(d){return u(t,d)}return ur(fu[1],E,e,T),1},p,s),u(f(e),Y8r),u(f(e),V8r),u(f(e),z8r),o(f(e),W8r,K8r),o(n,e,i[3]),u(f(e),J8r),u(f(e),$8r)}),N(Qz,function(t,n,e){var i=o(HN,t,n);return o(C0(C8r),i,e)}),mu(R3r,Dr,[0,HN,Qz]);var XN=function t(n,e,i,x){return t.fun(n,e,i,x)},rK=function t(n,e,i){return t.fun(n,e,i)},Up=function t(n,e,i){return t.fun(n,e,i)},eK=function t(n,e){return t.fun(n,e)};N(XN,function(t,n,e,i){u(f(e),I8r),o(n,e,i[1]),u(f(e),A8r);var x=i[2];return ur(Up,function(c){return u(t,c)},e,x),u(f(e),N8r)}),N(rK,function(t,n,e){var i=o(XN,t,n);return o(C0(O8r),i,e)}),N(Up,function(t,n,e){u(f(n),p8r),o(f(n),_8r,m8r);var i=e[1];o(f(n),y8r,i),u(f(n),h8r),u(f(n),d8r),o(f(n),w8r,k8r);var x=e[2];if(x){g(n,E8r);var c=x[1],s=function(y,T){return g(y,b8r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,S8r)}else g(n,g8r);return u(f(n),F8r),u(f(n),T8r)}),N(eK,function(t,n){var e=u(Up,t);return o(C0(l8r),e,n)}),mu(j3r,Rn,[0,XN,rK,Up,eK]);var YN=function t(n,e,i){return t.fun(n,e,i)},nK=function t(n,e){return t.fun(n,e)},Hp=function t(n,e,i){return t.fun(n,e,i)},tK=function t(n,e){return t.fun(n,e)};N(YN,function(t,n,e){u(f(n),c8r),o(t,n,e[1]),u(f(n),s8r);var i=e[2];return ur(Hp,function(x){return u(t,x)},n,i),u(f(n),v8r)}),N(nK,function(t,n){var e=u(YN,t);return o(C0(a8r),e,n)}),N(Hp,function(t,n,e){u(f(n),J4r),o(f(n),Z4r,$4r);var i=e[1];o(f(n),Q4r,i),u(f(n),r8r),u(f(n),e8r),o(f(n),t8r,n8r);var x=e[2];if(x){g(n,u8r);var c=x[1],s=function(y,T){return g(y,W4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,i8r)}else g(n,f8r);return u(f(n),x8r),u(f(n),o8r)}),N(tK,function(t,n){var e=u(Hp,t);return o(C0(K4r),e,n)}),mu(G3r,Bp,[0,YN,nK,Hp,tK]);function uK(t,n){u(f(t),R4r),o(f(t),G4r,j4r);var e=n[1];o(f(t),M4r,e),u(f(t),B4r),u(f(t),q4r),o(f(t),H4r,U4r);var i=n[2];return o(f(t),X4r,i),u(f(t),Y4r),u(f(t),V4r)}var iK=[0,uK,function(t){return o(C0(z4r),uK,t)}],VN=function t(n,e,i){return t.fun(n,e,i)},fK=function t(n,e){return t.fun(n,e)},Xp=function t(n,e){return t.fun(n,e)},xK=function t(n){return t.fun(n)};N(VN,function(t,n,e){u(f(n),h4r),o(f(n),k4r,d4r),o(Xp,n,e[1]),u(f(n),w4r),u(f(n),E4r),o(f(n),g4r,S4r);var i=e[2];o(f(n),F4r,i),u(f(n),T4r),u(f(n),O4r),o(f(n),A4r,I4r);var x=e[3];if(x){g(n,N4r);var c=x[1],s=function(y,T){return g(y,y4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,C4r)}else g(n,P4r);return u(f(n),D4r),u(f(n),L4r)}),N(fK,function(t,n){var e=u(VN,t);return o(C0(_4r),e,n)}),N(Xp,function(t,n){if(typeof n=="number")return g(t,n4r);switch(n[0]){case 0:u(f(t),t4r);var e=n[1];return o(f(t),u4r,e),u(f(t),i4r);case 1:u(f(t),f4r);var i=n[1];return o(f(t),x4r,i),u(f(t),o4r);case 2:u(f(t),a4r);var x=n[1];return o(f(t),c4r,x),u(f(t),s4r);case 3:u(f(t),v4r);var c=n[1];return o(f(t),l4r,c),u(f(t),b4r);default:return u(f(t),p4r),o(iK[1],t,n[1]),u(f(t),m4r)}}),N(xK,function(t){return o(C0(e4r),Xp,t)}),mu(M3r,Tl,[0,iK,VN,fK,Xp,xK]);var zN=function t(n,e,i){return t.fun(n,e,i)},oK=function t(n,e){return t.fun(n,e)};N(zN,function(t,n,e){u(f(n),jbr),o(f(n),Mbr,Gbr);var i=e[1];o(f(n),Bbr,i),u(f(n),qbr),u(f(n),Ubr),o(f(n),Xbr,Hbr);var x=e[2];o(f(n),Ybr,x),u(f(n),Vbr),u(f(n),zbr),o(f(n),Wbr,Kbr);var c=e[3];if(c){g(n,Jbr);var s=c[1],p=function(T,E){return g(T,Rbr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,$br)}else g(n,Zbr);return u(f(n),Qbr),u(f(n),r4r)}),N(oK,function(t,n){var e=u(zN,t);return o(C0(Lbr),e,n)}),mu(B3r,g1,[0,zN,oK]);var KN=function t(n,e,i){return t.fun(n,e,i)},aK=function t(n,e){return t.fun(n,e)};N(KN,function(t,n,e){u(f(n),_br),o(f(n),hbr,ybr);var i=e[1];o(f(n),dbr,i),u(f(n),kbr),u(f(n),wbr),o(f(n),Sbr,Ebr);var x=e[2];o(f(n),gbr,x),u(f(n),Fbr),u(f(n),Tbr),o(f(n),Ibr,Obr);var c=e[3];if(c){g(n,Abr);var s=c[1],p=function(T,E){return g(T,mbr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,Nbr)}else g(n,Cbr);return u(f(n),Pbr),u(f(n),Dbr)}),N(aK,function(t,n){var e=u(KN,t);return o(C0(pbr),e,n)}),mu(q3r,BN,[0,KN,aK]);var WN=function t(n,e,i){return t.fun(n,e,i)},cK=function t(n,e){return t.fun(n,e)};N(WN,function(t,n,e){u(f(n),$lr),o(f(n),Qlr,Zlr);var i=e[1];o(f(n),rbr,i),u(f(n),ebr),u(f(n),nbr),o(f(n),ubr,tbr);var x=e[2];o(f(n),ibr,x),u(f(n),fbr),u(f(n),xbr),o(f(n),abr,obr);var c=e[3];if(c){g(n,cbr);var s=c[1],p=function(T,E){return g(T,Jlr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,sbr)}else g(n,vbr);return u(f(n),lbr),u(f(n),bbr)}),N(cK,function(t,n){var e=u(WN,t);return o(C0(Wlr),e,n)}),mu(U3r,Zz,[0,WN,cK]);var JN=function t(n,e,i){return t.fun(n,e,i)},sK=function t(n,e){return t.fun(n,e)};N(JN,function(t,n,e){u(f(n),Rlr),o(f(n),Glr,jlr);var i=e[1];o(f(n),Mlr,i),u(f(n),Blr),u(f(n),qlr),o(f(n),Hlr,Ulr);var x=e[2];if(x){g(n,Xlr);var c=x[1],s=function(y,T){return g(y,Llr)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,Ylr)}else g(n,Vlr);return u(f(n),zlr),u(f(n),Klr)}),N(sK,function(t,n){var e=u(JN,t);return o(C0(Dlr),e,n)}),mu(H3r,qN,[0,JN,sK]);var $N=function t(n,e,i){return t.fun(n,e,i)},vK=function t(n,e){return t.fun(n,e)},Yp=function t(n,e){return t.fun(n,e)},lK=function t(n){return t.fun(n)},Vp=function t(n,e,i){return t.fun(n,e,i)},bK=function t(n,e){return t.fun(n,e)};N($N,function(t,n,e){u(f(n),Nlr),o(t,n,e[1]),u(f(n),Clr);var i=e[2];return ur(Vp,function(x){return u(t,x)},n,i),u(f(n),Plr)}),N(vK,function(t,n){var e=u($N,t);return o(C0(Alr),e,n)}),N(Yp,function(t,n){return n?g(t,Olr):g(t,Ilr)}),N(lK,function(t){return o(C0(Tlr),Yp,t)}),N(Vp,function(t,n,e){u(f(n),plr),o(f(n),_lr,mlr),o(Yp,n,e[1]),u(f(n),ylr),u(f(n),hlr),o(f(n),klr,dlr);var i=e[2];if(i){g(n,wlr);var x=i[1],c=function(p,y){return g(p,blr)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Elr)}else g(n,Slr);return u(f(n),glr),u(f(n),Flr)}),N(bK,function(t,n){var e=u(Vp,t);return o(C0(llr),e,n)}),mu(X3r,zv,[0,$N,vK,Yp,lK,Vp,bK]);var ZN=function t(n,e,i,x){return t.fun(n,e,i,x)},pK=function t(n,e,i){return t.fun(n,e,i)},QN=function t(n,e,i,x){return t.fun(n,e,i,x)},mK=function t(n,e,i){return t.fun(n,e,i)};N(ZN,function(t,n,e,i){u(f(e),clr),o(t,e,i[1]),u(f(e),slr);var x=i[2];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(qp[3],s,c,e,x),u(f(e),vlr)}),N(pK,function(t,n,e){var i=o(ZN,t,n);return o(C0(alr),i,e)}),N(QN,function(t,n,e,i){u(f(e),$2r),o(f(e),Q2r,Z2r);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),rlr),u(f(e),elr),o(f(e),tlr,nlr);var p=i[2];if(p){g(e,ulr);var y=p[1],T=function(d,w){return g(d,J2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,ilr)}else g(e,flr);return u(f(e),xlr),u(f(e),olr)}),N(mK,function(t,n,e){var i=o(QN,t,n);return o(C0(W2r),i,e)}),mu(Y3r,qp,[0,ZN,pK,QN,mK]);var rC=function t(n,e,i,x){return t.fun(n,e,i,x)},_K=function t(n,e,i){return t.fun(n,e,i)},zp=function t(n,e,i,x){return t.fun(n,e,i,x)},yK=function t(n,e,i){return t.fun(n,e,i)};N(rC,function(t,n,e,i){u(f(e),V2r),o(t,e,i[1]),u(f(e),z2r);var x=i[2];function c(s){return u(n,s)}return R(zp,function(s){return u(t,s)},c,e,x),u(f(e),K2r)}),N(_K,function(t,n,e){var i=o(rC,t,n);return o(C0(Y2r),i,e)}),N(zp,function(t,n,e,i){u(f(e),O2r),o(f(e),A2r,I2r);var x=i[1];if(x){g(e,N2r);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(Rn[1],p,s,e,c),g(e,C2r)}else g(e,P2r);u(f(e),D2r),u(f(e),L2r),o(f(e),j2r,R2r);var y=i[2];function T(w){return u(n,w)}function E(w){return u(t,w)}R($e[13],E,T,e,y),u(f(e),G2r),u(f(e),M2r),o(f(e),q2r,B2r);var d=i[3];return o(f(e),U2r,d),u(f(e),H2r),u(f(e),X2r)}),N(yK,function(t,n,e){var i=o(zp,t,n);return o(C0(T2r),i,e)});var eC=[0,rC,_K,zp,yK],nC=function t(n,e,i,x){return t.fun(n,e,i,x)},hK=function t(n,e,i){return t.fun(n,e,i)},Kp=function t(n,e,i,x){return t.fun(n,e,i,x)},dK=function t(n,e,i){return t.fun(n,e,i)};N(nC,function(t,n,e,i){u(f(e),S2r),o(t,e,i[1]),u(f(e),g2r);var x=i[2];function c(s){return u(n,s)}return R(Kp,function(s){return u(t,s)},c,e,x),u(f(e),F2r)}),N(hK,function(t,n,e){var i=o(nC,t,n);return o(C0(E2r),i,e)}),N(Kp,function(t,n,e,i){u(f(e),s2r),o(f(e),l2r,v2r);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(eC[1],s,c,e,x),u(f(e),b2r),u(f(e),p2r),o(f(e),_2r,m2r);var p=i[2];if(p){g(e,y2r);var y=p[1],T=function(d,w){return g(d,c2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,h2r)}else g(e,d2r);return u(f(e),k2r),u(f(e),w2r)}),N(dK,function(t,n,e){var i=o(Kp,t,n);return o(C0(a2r),i,e)});var kK=[0,nC,hK,Kp,dK],tC=function t(n,e,i,x){return t.fun(n,e,i,x)},wK=function t(n,e,i){return t.fun(n,e,i)},Wp=function t(n,e,i,x){return t.fun(n,e,i,x)},EK=function t(n,e,i){return t.fun(n,e,i)};N(tC,function(t,n,e,i){u(f(e),f2r),o(t,e,i[1]),u(f(e),x2r);var x=i[2];function c(s){return u(n,s)}return R(Wp,function(s){return u(t,s)},c,e,x),u(f(e),o2r)}),N(wK,function(t,n,e){var i=o(tC,t,n);return o(C0(i2r),i,e)}),N(Wp,function(t,n,e,i){u(f(e),zvr),o(f(e),Wvr,Kvr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Jvr),u(f(e),$vr),o(f(e),Qvr,Zvr);var p=i[2];if(p){g(e,r2r);var y=p[1],T=function(d,w){return g(d,Vvr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,e2r)}else g(e,n2r);return u(f(e),t2r),u(f(e),u2r)}),N(EK,function(t,n,e){var i=o(Wp,t,n);return o(C0(Yvr),i,e)});var SK=[0,tC,wK,Wp,EK],uC=function t(n,e,i,x){return t.fun(n,e,i,x)},gK=function t(n,e,i){return t.fun(n,e,i)},Jp=function t(n,e,i,x){return t.fun(n,e,i,x)},FK=function t(n,e,i){return t.fun(n,e,i)};N(uC,function(t,n,e,i){u(f(e),Uvr),o(t,e,i[1]),u(f(e),Hvr);var x=i[2];function c(s){return u(n,s)}return R(Jp,function(s){return u(t,s)},c,e,x),u(f(e),Xvr)}),N(gK,function(t,n,e){var i=o(uC,t,n);return o(C0(qvr),i,e)}),N(Jp,function(t,n,e,i){u(f(e),lvr),o(f(e),pvr,bvr);var x=i[1];if(x){g(e,mvr);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(SK[1],p,s,e,c),g(e,_vr)}else g(e,yvr);u(f(e),hvr),u(f(e),dvr),o(f(e),wvr,kvr);var y=i[2];u(f(e),Evr);var T=0;le(function(V,f0){V&&u(f(e),vvr);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(eC[1],k0,m0,e,f0),1},T,y),u(f(e),Svr),u(f(e),gvr),u(f(e),Fvr),o(f(e),Ovr,Tvr);var E=i[3];if(E){g(e,Ivr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(kK[1],G,w,e,d),g(e,Avr)}else g(e,Nvr);u(f(e),Cvr),u(f(e),Pvr),o(f(e),Lvr,Dvr);var A=i[4];if(A){g(e,Rvr);var S=A[1],M=function(V,f0){u(f(V),cvr);var m0=0;return le(function(k0,g0){k0&&u(f(V),avr);function e0(x0){return u(t,x0)}return ur(fu[1],e0,V,g0),1},m0,f0),u(f(V),svr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,jvr)}else g(e,Gvr);return u(f(e),Mvr),u(f(e),Bvr)}),N(FK,function(t,n,e){var i=o(Jp,t,n);return o(C0(ovr),i,e)});var TK=[0,uC,gK,Jp,FK],iC=function t(n,e,i,x){return t.fun(n,e,i,x)},OK=function t(n,e,i){return t.fun(n,e,i)};N(iC,function(t,n,e,i){u(f(e),M1r),o(f(e),q1r,B1r);var x=i[1];if(x){g(e,U1r);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R($e[22][1],p,s,e,c),g(e,H1r)}else g(e,X1r);u(f(e),Y1r),u(f(e),V1r),o(f(e),K1r,z1r);var y=i[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(TK[1],E,T,e,y),u(f(e),W1r),u(f(e),J1r),o(f(e),Z1r,$1r);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),Q1r),u(f(e),rvr),o(f(e),nvr,evr);var A=i[4];if(A){g(e,tvr);var S=A[1],M=function(V,f0){return g(V,G1r)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,uvr)}else g(e,ivr);return u(f(e),fvr),u(f(e),xvr)}),N(OK,function(t,n,e){var i=o(iC,t,n);return o(C0(j1r),i,e)});var Ol=[0,eC,kK,SK,TK,iC,OK],$p=function t(n,e,i,x){return t.fun(n,e,i,x)},IK=function t(n,e,i){return t.fun(n,e,i)},Zp=function t(n,e,i,x){return t.fun(n,e,i,x)},AK=function t(n,e,i){return t.fun(n,e,i)},Qp=function t(n,e,i,x){return t.fun(n,e,i,x)},NK=function t(n,e,i){return t.fun(n,e,i)};N($p,function(t,n,e,i){if(i[0]===0){u(f(e),P1r);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),D1r)}u(f(e),L1r);var p=i[1];function y(T){return u(n,T)}return R(Zp,function(T){return u(t,T)},y,e,p),u(f(e),R1r)}),N(IK,function(t,n,e){var i=o($p,t,n);return o(C0(C1r),i,e)}),N(Zp,function(t,n,e,i){u(f(e),I1r),o(t,e,i[1]),u(f(e),A1r);var x=i[2];function c(s){return u(n,s)}return R(Qp,function(s){return u(t,s)},c,e,x),u(f(e),N1r)}),N(AK,function(t,n,e){var i=o(Zp,t,n);return o(C0(O1r),i,e)}),N(Qp,function(t,n,e,i){u(f(e),h1r),o(f(e),k1r,d1r);var x=i[1];function c(T){return u(n,T)}R($p,function(T){return u(t,T)},c,e,x),u(f(e),w1r),u(f(e),E1r),o(f(e),g1r,S1r);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),F1r),u(f(e),T1r)}),N(NK,function(t,n,e){var i=o(Qp,t,n);return o(C0(y1r),i,e)});var CK=[0,$p,IK,Zp,AK,Qp,NK],fC=function t(n,e,i,x){return t.fun(n,e,i,x)},PK=function t(n,e,i){return t.fun(n,e,i)};N(fC,function(t,n,e,i){u(f(e),Qsr),o(f(e),e1r,r1r);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(CK[1],s,c,e,x),u(f(e),n1r),u(f(e),t1r),o(f(e),i1r,u1r);var p=i[2];if(p){g(e,f1r);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,x1r)}else g(e,o1r);u(f(e),a1r),u(f(e),c1r),o(f(e),v1r,s1r);var d=i[3];if(d){g(e,l1r);var w=d[1],G=function(S,M){return g(S,Zsr)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,b1r)}else g(e,p1r);return u(f(e),m1r),u(f(e),_1r)}),N(PK,function(t,n,e){var i=o(fC,t,n);return o(C0($sr),i,e)});var xC=[0,CK,fC,PK],oC=function t(n,e,i,x){return t.fun(n,e,i,x)},DK=function t(n,e,i){return t.fun(n,e,i)};N(oC,function(t,n,e,i){u(f(e),Lsr),o(f(e),jsr,Rsr);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R($e[13],s,c,e,x),u(f(e),Gsr),u(f(e),Msr),o(f(e),qsr,Bsr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[13],T,y,e,p),u(f(e),Usr),u(f(e),Hsr),o(f(e),Ysr,Xsr);var E=i[3];if(E){g(e,Vsr);var d=E[1],w=function(A,S){return g(A,Dsr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,zsr)}else g(e,Ksr);return u(f(e),Wsr),u(f(e),Jsr)}),N(DK,function(t,n,e){var i=o(oC,t,n);return o(C0(Psr),i,e)});var aC=[0,oC,DK],cC=function t(n,e,i,x){return t.fun(n,e,i,x)},LK=function t(n,e,i){return t.fun(n,e,i)};N(cC,function(t,n,e,i){u(f(e),Esr),o(f(e),gsr,Ssr);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(aC[1],s,c,e,x),u(f(e),Fsr),u(f(e),Tsr),o(f(e),Isr,Osr);var p=i[2];return o(f(e),Asr,p),u(f(e),Nsr),u(f(e),Csr)}),N(LK,function(t,n,e){var i=o(cC,t,n);return o(C0(wsr),i,e)});var RK=[0,cC,LK],sC=function t(n,e,i,x){return t.fun(n,e,i,x)},jK=function t(n,e,i){return t.fun(n,e,i)},r5=function t(n,e,i,x){return t.fun(n,e,i,x)},GK=function t(n,e,i){return t.fun(n,e,i)},e5=function t(n,e,i,x){return t.fun(n,e,i,x)},MK=function t(n,e,i){return t.fun(n,e,i)};N(sC,function(t,n,e,i){u(f(e),hsr),o(t,e,i[1]),u(f(e),dsr);var x=i[2];function c(s){return u(n,s)}return R(r5,function(s){return u(t,s)},c,e,x),u(f(e),ksr)}),N(jK,function(t,n,e){var i=o(sC,t,n);return o(C0(ysr),i,e)}),N(r5,function(t,n,e,i){u(f(e),Icr),o(f(e),Ncr,Acr);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(Be[7][1][1],s,c,e,x),u(f(e),Ccr),u(f(e),Pcr),o(f(e),Lcr,Dcr);var p=i[2];function y(m0){return u(n,m0)}R(e5,function(m0){return u(t,m0)},y,e,p),u(f(e),Rcr),u(f(e),jcr),o(f(e),Mcr,Gcr);var T=i[3];o(f(e),Bcr,T),u(f(e),qcr),u(f(e),Ucr),o(f(e),Xcr,Hcr);var E=i[4];o(f(e),Ycr,E),u(f(e),Vcr),u(f(e),zcr),o(f(e),Wcr,Kcr);var d=i[5];o(f(e),Jcr,d),u(f(e),$cr),u(f(e),Zcr),o(f(e),rsr,Qcr);var w=i[6];o(f(e),esr,w),u(f(e),nsr),u(f(e),tsr),o(f(e),isr,usr);var G=i[7];if(G){g(e,fsr);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,xsr)}else g(e,osr);u(f(e),asr),u(f(e),csr),o(f(e),vsr,ssr);var M=i[8];if(M){g(e,lsr);var K=M[1],V=function(m0,k0){return g(m0,Ocr)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,bsr)}else g(e,psr);return u(f(e),msr),u(f(e),_sr)}),N(GK,function(t,n,e){var i=o(r5,t,n);return o(C0(Tcr),i,e)}),N(e5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),pcr);var x=i[1],c=function(S){return u(n,S)},s=function(S){return u(t,S)};return R($e[13],s,c,e,x),u(f(e),mcr);case 1:var p=i[1];u(f(e),_cr),u(f(e),ycr),o(t,e,p[1]),u(f(e),hcr);var y=p[2],T=function(S){return u(n,S)},E=function(S){return u(t,S)};return R(Ol[5],E,T,e,y),u(f(e),dcr),u(f(e),kcr);default:var d=i[1];u(f(e),wcr),u(f(e),Ecr),o(t,e,d[1]),u(f(e),Scr);var w=d[2],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(Ol[5],A,G,e,w),u(f(e),gcr),u(f(e),Fcr)}}),N(MK,function(t,n,e){var i=o(e5,t,n);return o(C0(bcr),i,e)});var BK=[0,sC,jK,r5,GK,e5,MK],vC=function t(n,e,i,x){return t.fun(n,e,i,x)},qK=function t(n,e,i){return t.fun(n,e,i)},n5=function t(n,e,i,x){return t.fun(n,e,i,x)},UK=function t(n,e,i){return t.fun(n,e,i)};N(vC,function(t,n,e,i){u(f(e),scr),o(t,e,i[1]),u(f(e),vcr);var x=i[2];function c(s){return u(n,s)}return R(n5,function(s){return u(t,s)},c,e,x),u(f(e),lcr)}),N(qK,function(t,n,e){var i=o(vC,t,n);return o(C0(ccr),i,e)}),N(n5,function(t,n,e,i){u(f(e),Zar),o(f(e),rcr,Qar);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),ecr),u(f(e),ncr),o(f(e),ucr,tcr);var p=i[2];if(p){g(e,icr);var y=p[1],T=function(d,w){return g(d,$ar)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,fcr)}else g(e,xcr);return u(f(e),ocr),u(f(e),acr)}),N(UK,function(t,n,e){var i=o(n5,t,n);return o(C0(Jar),i,e)});var HK=[0,vC,qK,n5,UK],t5=function t(n,e,i,x){return t.fun(n,e,i,x)},XK=function t(n,e,i){return t.fun(n,e,i)},lC=function t(n,e,i,x){return t.fun(n,e,i,x)},YK=function t(n,e,i){return t.fun(n,e,i)};N(t5,function(t,n,e,i){u(f(e),par),o(f(e),_ar,mar);var x=i[1];if(x){g(e,yar);var c=x[1],s=function(g0){return u(t,g0)},p=function(g0){return u(t,g0)};R(Rn[1],p,s,e,c),g(e,har)}else g(e,dar);u(f(e),kar),u(f(e),war),o(f(e),Sar,Ear);var y=i[2];function T(g0){return u(n,g0)}function E(g0){return u(t,g0)}R($e[13],E,T,e,y),u(f(e),gar),u(f(e),Far),o(f(e),Oar,Tar);var d=i[3];function w(g0){return u(n,g0)}function G(g0){return u(t,g0)}R($e[13],G,w,e,d),u(f(e),Iar),u(f(e),Aar),o(f(e),Car,Nar);var A=i[4];o(f(e),Par,A),u(f(e),Dar),u(f(e),Lar),o(f(e),jar,Rar);var S=i[5];if(S){g(e,Gar);var M=S[1],K=function(g0){return u(t,g0)};ur(zv[1],K,e,M),g(e,Mar)}else g(e,Bar);u(f(e),qar),u(f(e),Uar),o(f(e),Xar,Har);var V=i[6];if(V){g(e,Yar);var f0=V[1],m0=function(g0,e0){return g(g0,bar)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,Var)}else g(e,zar);return u(f(e),Kar),u(f(e),War)}),N(XK,function(t,n,e){var i=o(t5,t,n);return o(C0(lar),i,e)}),N(lC,function(t,n,e,i){u(f(e),aar),o(t,e,i[1]),u(f(e),car);var x=i[2];function c(s){return u(n,s)}return R(t5,function(s){return u(t,s)},c,e,x),u(f(e),sar)}),N(YK,function(t,n,e){var i=o(lC,t,n);return o(C0(oar),i,e)});var VK=[0,t5,XK,lC,YK],bC=function t(n,e,i,x){return t.fun(n,e,i,x)},zK=function t(n,e,i){return t.fun(n,e,i)},u5=function t(n,e,i,x){return t.fun(n,e,i,x)},KK=function t(n,e,i){return t.fun(n,e,i)};N(bC,function(t,n,e,i){u(f(e),iar),o(t,e,i[1]),u(f(e),far);var x=i[2];function c(s){return u(n,s)}return R(u5,function(s){return u(t,s)},c,e,x),u(f(e),xar)}),N(zK,function(t,n,e){var i=o(bC,t,n);return o(C0(uar),i,e)}),N(u5,function(t,n,e,i){u(f(e),Gor),o(f(e),Bor,Mor);var x=i[1];u(f(e),qor),o(t,e,x[1]),u(f(e),Uor);var c=x[2];function s(G){return u(n,G)}function p(G){return u(t,G)}R(Ol[5],p,s,e,c),u(f(e),Hor),u(f(e),Xor),u(f(e),Yor),o(f(e),zor,Vor);var y=i[2];o(f(e),Kor,y),u(f(e),Wor),u(f(e),Jor),o(f(e),Zor,$or);var T=i[3];if(T){g(e,Qor);var E=T[1],d=function(G,A){return g(G,jor)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,rar)}else g(e,ear);return u(f(e),nar),u(f(e),tar)}),N(KK,function(t,n,e){var i=o(u5,t,n);return o(C0(Ror),i,e)});var WK=[0,bC,zK,u5,KK],pC=function t(n,e,i,x){return t.fun(n,e,i,x)},JK=function t(n,e,i){return t.fun(n,e,i)},i5=function t(n,e,i,x){return t.fun(n,e,i,x)},$K=function t(n,e,i){return t.fun(n,e,i)};N(pC,function(t,n,e,i){u(f(e),Por),o(t,e,i[1]),u(f(e),Dor);var x=i[2];function c(s){return u(n,s)}return R(i5,function(s){return u(t,s)},c,e,x),u(f(e),Lor)}),N(JK,function(t,n,e){var i=o(pC,t,n);return o(C0(Cor),i,e)}),N(i5,function(t,n,e,i){u(f(e),ror),o(f(e),nor,eor);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),tor),u(f(e),uor),o(f(e),xor,ior);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[13],T,y,e,p),u(f(e),oor),u(f(e),aor),o(f(e),sor,cor);var E=i[3];o(f(e),vor,E),u(f(e),lor),u(f(e),bor),o(f(e),mor,por);var d=i[4];o(f(e),_or,d),u(f(e),yor),u(f(e),hor),o(f(e),kor,dor);var w=i[5];o(f(e),wor,w),u(f(e),Eor),u(f(e),Sor),o(f(e),For,gor);var G=i[6];if(G){g(e,Tor);var A=G[1],S=function(K,V){return g(K,Qxr)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Oor)}else g(e,Ior);return u(f(e),Aor),u(f(e),Nor)}),N($K,function(t,n,e){var i=o(i5,t,n);return o(C0(Zxr),i,e)});var ZK=[0,pC,JK,i5,$K],mC=function t(n,e,i,x){return t.fun(n,e,i,x)},QK=function t(n,e,i){return t.fun(n,e,i)},f5=function t(n,e,i,x){return t.fun(n,e,i,x)},rW=function t(n,e,i){return t.fun(n,e,i)};N(mC,function(t,n,e,i){u(f(e),Oxr),o(f(e),Axr,Ixr);var x=i[1];o(f(e),Nxr,x),u(f(e),Cxr),u(f(e),Pxr),o(f(e),Lxr,Dxr);var c=i[2];o(f(e),Rxr,c),u(f(e),jxr),u(f(e),Gxr),o(f(e),Bxr,Mxr);var s=i[3];u(f(e),qxr);var p=0;le(function(w,G){w&&u(f(e),Txr);function A(S){return u(n,S)}return R(f5,function(S){return u(t,S)},A,e,G),1},p,s),u(f(e),Uxr),u(f(e),Hxr),u(f(e),Xxr),o(f(e),Vxr,Yxr);var y=i[4];if(y){g(e,zxr);var T=y[1],E=function(w,G){u(f(w),gxr);var A=0;return le(function(S,M){S&&u(f(w),Sxr);function K(V){return u(t,V)}return ur(fu[1],K,w,M),1},A,G),u(f(w),Fxr)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Kxr)}else g(e,Wxr);return u(f(e),Jxr),u(f(e),$xr)}),N(QK,function(t,n,e){var i=o(mC,t,n);return o(C0(Exr),i,e)}),N(f5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),lxr);var x=i[1],c=function(f0){return u(n,f0)},s=function(f0){return u(t,f0)};return R(BK[1],s,c,e,x),u(f(e),bxr);case 1:u(f(e),pxr);var p=i[1],y=function(f0){return u(n,f0)},T=function(f0){return u(t,f0)};return R(HK[1],T,y,e,p),u(f(e),mxr);case 2:u(f(e),_xr);var E=i[1],d=function(f0){return u(n,f0)},w=function(f0){return u(t,f0)};return R(VK[3],w,d,e,E),u(f(e),yxr);case 3:u(f(e),hxr);var G=i[1],A=function(f0){return u(n,f0)},S=function(f0){return u(t,f0)};return R(WK[1],S,A,e,G),u(f(e),dxr);default:u(f(e),kxr);var M=i[1],K=function(f0){return u(n,f0)},V=function(f0){return u(t,f0)};return R(ZK[1],V,K,e,M),u(f(e),wxr)}}),N(rW,function(t,n,e){var i=o(f5,t,n);return o(C0(vxr),i,e)});var _C=[0,BK,HK,VK,WK,ZK,mC,QK,f5,rW],yC=function t(n,e,i,x){return t.fun(n,e,i,x)},eW=function t(n,e,i){return t.fun(n,e,i)};N(yC,function(t,n,e,i){u(f(e),Yfr),o(f(e),zfr,Vfr);var x=i[1];u(f(e),Kfr),o(t,e,x[1]),u(f(e),Wfr);var c=x[2];function s(A){return u(n,A)}function p(A){return u(t,A)}R(_C[6],p,s,e,c),u(f(e),Jfr),u(f(e),$fr),u(f(e),Zfr),o(f(e),rxr,Qfr);var y=i[2];u(f(e),exr);var T=0;le(function(A,S){A&&u(f(e),qfr),u(f(e),Ufr),o(t,e,S[1]),u(f(e),Hfr);var M=S[2];function K(f0){return u(n,f0)}function V(f0){return u(t,f0)}return R(xC[2],V,K,e,M),u(f(e),Xfr),1},T,y),u(f(e),nxr),u(f(e),txr),u(f(e),uxr),o(f(e),fxr,ixr);var E=i[3];if(E){g(e,xxr);var d=E[1],w=function(A,S){return g(A,Bfr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,oxr)}else g(e,axr);return u(f(e),cxr),u(f(e),sxr)}),N(eW,function(t,n,e){var i=o(yC,t,n);return o(C0(Mfr),i,e)});var nW=[0,yC,eW],hC=function t(n,e,i,x){return t.fun(n,e,i,x)},tW=function t(n,e,i){return t.fun(n,e,i)};N(hC,function(t,n,e,i){u(f(e),Tfr),o(f(e),Ifr,Ofr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),Afr),u(f(e),Nfr),o(f(e),Pfr,Cfr);var p=i[2];if(p){g(e,Dfr);var y=p[1],T=function(d,w){return g(d,Ffr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Lfr)}else g(e,Rfr);return u(f(e),jfr),u(f(e),Gfr)}),N(tW,function(t,n,e){var i=o(hC,t,n);return o(C0(gfr),i,e)});var uW=[0,hC,tW],x5=function t(n,e,i,x){return t.fun(n,e,i,x)},iW=function t(n,e,i){return t.fun(n,e,i)},o5=function t(n,e,i,x){return t.fun(n,e,i,x)},fW=function t(n,e,i){return t.fun(n,e,i)},a5=function t(n,e,i,x){return t.fun(n,e,i,x)},xW=function t(n,e,i){return t.fun(n,e,i)};N(x5,function(t,n,e,i){if(i[0]===0){u(f(e),kfr);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),wfr)}u(f(e),Efr);var p=i[1];function y(T){return u(n,T)}return R(a5,function(T){return u(t,T)},y,e,p),u(f(e),Sfr)}),N(iW,function(t,n,e){var i=o(x5,t,n);return o(C0(dfr),i,e)}),N(o5,function(t,n,e,i){u(f(e),sfr),o(f(e),lfr,vfr);var x=i[1];function c(T){return u(n,T)}R(x5,function(T){return u(t,T)},c,e,x),u(f(e),bfr),u(f(e),pfr),o(f(e),_fr,mfr);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),yfr),u(f(e),hfr)}),N(fW,function(t,n,e){var i=o(o5,t,n);return o(C0(cfr),i,e)}),N(a5,function(t,n,e,i){u(f(e),xfr),o(n,e,i[1]),u(f(e),ofr);var x=i[2];function c(s){return u(n,s)}return R(o5,function(s){return u(t,s)},c,e,x),u(f(e),afr)}),N(xW,function(t,n,e){var i=o(a5,t,n);return o(C0(ffr),i,e)});var oW=[0,x5,iW,o5,fW,a5,xW],dC=function t(n,e,i,x){return t.fun(n,e,i,x)},aW=function t(n,e,i){return t.fun(n,e,i)};N(dC,function(t,n,e,i){u(f(e),Kir),o(f(e),Jir,Wir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(oW[1],s,c,e,x),u(f(e),$ir),u(f(e),Zir),o(f(e),rfr,Qir);var p=i[2];if(p){g(e,efr);var y=p[1],T=function(d,w){return g(d,zir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,nfr)}else g(e,tfr);return u(f(e),ufr),u(f(e),ifr)}),N(aW,function(t,n,e){var i=o(dC,t,n);return o(C0(Vir),i,e)});var cW=[0,oW,dC,aW],kC=function t(n,e,i,x){return t.fun(n,e,i,x)},sW=function t(n,e,i){return t.fun(n,e,i)};N(kC,function(t,n,e,i){u(f(e),Cir),o(f(e),Dir,Pir);var x=i[1];u(f(e),Lir);var c=0;le(function(E,d){E&&u(f(e),Nir);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),Rir),u(f(e),jir),u(f(e),Gir),o(f(e),Bir,Mir);var s=i[2];if(s){g(e,qir);var p=s[1],y=function(E,d){return g(E,Air)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Uir)}else g(e,Hir);return u(f(e),Xir),u(f(e),Yir)}),N(sW,function(t,n,e){var i=o(kC,t,n);return o(C0(Iir),i,e)});var vW=[0,kC,sW],wC=function t(n,e,i,x){return t.fun(n,e,i,x)},lW=function t(n,e,i){return t.fun(n,e,i)};N(wC,function(t,n,e,i){u(f(e),_ir),o(f(e),hir,yir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),dir),u(f(e),kir),o(f(e),Eir,wir);var p=i[2];if(p){g(e,Sir);var y=p[1],T=function(d,w){return g(d,mir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,gir)}else g(e,Fir);return u(f(e),Tir),u(f(e),Oir)}),N(lW,function(t,n,e){var i=o(wC,t,n);return o(C0(pir),i,e)});var bW=[0,wC,lW],EC=function t(n,e,i,x){return t.fun(n,e,i,x)},pW=function t(n,e,i){return t.fun(n,e,i)};N(EC,function(t,n,e,i){u(f(e),$7r),o(f(e),Q7r,Z7r);var x=i[1];u(f(e),rir);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),eir);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),nir),u(f(e),tir);var d=x[3],w=0;le(function(K,V){K&&u(f(e),J7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),uir),u(f(e),iir),u(f(e),fir),u(f(e),xir),o(f(e),air,oir);var G=i[2];if(G){g(e,cir);var A=G[1],S=function(K,V){return g(K,W7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,sir)}else g(e,vir);return u(f(e),lir),u(f(e),bir)}),N(pW,function(t,n,e){var i=o(EC,t,n);return o(C0(K7r),i,e)});var mW=[0,EC,pW],SC=function t(n,e,i,x){return t.fun(n,e,i,x)},_W=function t(n,e,i){return t.fun(n,e,i)};N(SC,function(t,n,e,i){u(f(e),A7r),o(f(e),C7r,N7r);var x=i[1];u(f(e),P7r);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),D7r);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),L7r),u(f(e),R7r);var d=x[3],w=0;le(function(K,V){K&&u(f(e),I7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),j7r),u(f(e),G7r),u(f(e),M7r),u(f(e),B7r),o(f(e),U7r,q7r);var G=i[2];if(G){g(e,H7r);var A=G[1],S=function(K,V){return g(K,O7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,X7r)}else g(e,Y7r);return u(f(e),V7r),u(f(e),z7r)}),N(_W,function(t,n,e){var i=o(SC,t,n);return o(C0(T7r),i,e)});var yW=[0,SC,_W],c5=function t(n,e,i,x){return t.fun(n,e,i,x)},hW=function t(n,e,i){return t.fun(n,e,i)},s5=function t(n,e,i,x){return t.fun(n,e,i,x)},dW=function t(n,e,i){return t.fun(n,e,i)},gC=function t(n,e,i,x){return t.fun(n,e,i,x)},kW=function t(n,e,i){return t.fun(n,e,i)},FC=function t(n,e,i,x){return t.fun(n,e,i,x)},wW=function t(n,e,i){return t.fun(n,e,i)};N(c5,function(t,n,e,i){u(f(e),S7r),o(n,e,i[1]),u(f(e),g7r);var x=i[2];function c(s){return u(n,s)}return R(s5,function(s){return u(t,s)},c,e,x),u(f(e),F7r)}),N(hW,function(t,n,e){var i=o(c5,t,n);return o(C0(E7r),i,e)}),N(s5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];if(u(f(e),Xtr),x){g(e,Ytr);var c=x[1],s=function(U,Y){return g(U,Htr)},p=function(U){return u(t,U)};R(Dr[1],p,s,e,c),g(e,Vtr)}else g(e,ztr);return u(f(e),Ktr);case 1:var y=i[1];if(u(f(e),Wtr),y){g(e,Jtr);var T=y[1],E=function(U,Y){return g(U,Utr)},d=function(U){return u(t,U)};R(Dr[1],d,E,e,T),g(e,$tr)}else g(e,Ztr);return u(f(e),Qtr);case 2:var w=i[1];if(u(f(e),rur),w){g(e,eur);var G=w[1],A=function(U,Y){return g(U,qtr)},S=function(U){return u(t,U)};R(Dr[1],S,A,e,G),g(e,nur)}else g(e,tur);return u(f(e),uur);case 3:var M=i[1];if(u(f(e),iur),M){g(e,fur);var K=M[1],V=function(U,Y){return g(U,Btr)},f0=function(U){return u(t,U)};R(Dr[1],f0,V,e,K),g(e,xur)}else g(e,our);return u(f(e),aur);case 4:var m0=i[1];if(u(f(e),cur),m0){g(e,sur);var k0=m0[1],g0=function(U,Y){return g(U,Mtr)},e0=function(U){return u(t,U)};R(Dr[1],e0,g0,e,k0),g(e,vur)}else g(e,lur);return u(f(e),bur);case 5:var x0=i[1];if(u(f(e),pur),x0){g(e,mur);var l=x0[1],c0=function(U,Y){return g(U,Gtr)},t0=function(U){return u(t,U)};R(Dr[1],t0,c0,e,l),g(e,_ur)}else g(e,yur);return u(f(e),hur);case 6:var o0=i[1];if(u(f(e),dur),o0){g(e,kur);var w0=o0[1],_0=function(U,Y){return g(U,jtr)},E0=function(U){return u(t,U)};R(Dr[1],E0,_0,e,w0),g(e,wur)}else g(e,Eur);return u(f(e),Sur);case 7:var U0=i[1];if(u(f(e),gur),U0){g(e,Fur);var b=U0[1],R0=function(U,Y){return g(U,Rtr)},X=function(U){return u(t,U)};R(Dr[1],X,R0,e,b),g(e,Tur)}else g(e,Our);return u(f(e),Iur);case 8:var s0=i[1];if(u(f(e),Aur),s0){g(e,Nur);var hr=s0[1],Ar=function(U,Y){return g(U,Ltr)},or=function(U){return u(t,U)};R(Dr[1],or,Ar,e,hr),g(e,Cur)}else g(e,Pur);return u(f(e),Dur);case 9:var W0=i[1];if(u(f(e),Lur),W0){g(e,Rur);var Lr=W0[1],Tr=function(U,Y){return g(U,Dtr)},Hr=function(U){return u(t,U)};R(Dr[1],Hr,Tr,e,Lr),g(e,jur)}else g(e,Gur);return u(f(e),Mur);case 10:var Or=i[1];if(u(f(e),Bur),Or){g(e,qur);var fr=Or[1],Rr=function(U,Y){return g(U,Ptr)},Wr=function(U){return u(t,U)};R(Dr[1],Wr,Rr,e,fr),g(e,Uur)}else g(e,Hur);return u(f(e),Xur);case 11:u(f(e),Yur);var Jr=i[1],ar=function(U){return u(n,U)},_r=function(U){return u(t,U)};return R(uW[1],_r,ar,e,Jr),u(f(e),Vur);case 12:u(f(e),zur);var Ir=i[1],fe=function(U){return u(n,U)},v0=function(U){return u(t,U)};return R(Ol[5],v0,fe,e,Ir),u(f(e),Kur);case 13:u(f(e),Wur);var P=i[1],L=function(U){return u(n,U)},Q=function(U){return u(t,U)};return R(_C[6],Q,L,e,P),u(f(e),Jur);case 14:u(f(e),$ur);var i0=i[1],l0=function(U){return u(n,U)},S0=function(U){return u(t,U)};return R(nW[1],S0,l0,e,i0),u(f(e),Zur);case 15:u(f(e),Qur);var T0=i[1],rr=function(U){return u(n,U)},L0=function(U){return u(t,U)};return R(bW[1],L0,rr,e,T0),u(f(e),r7r);case 16:u(f(e),e7r);var B=i[1],Z=function(U){return u(n,U)},p0=function(U){return u(t,U)};return R(xC[2],p0,Z,e,B),u(f(e),n7r);case 17:u(f(e),t7r);var b0=i[1],O0=function(U){return u(n,U)},M0=function(U){return u(t,U)};return R(aC[1],M0,O0,e,b0),u(f(e),u7r);case 18:u(f(e),i7r);var er=i[1],yr=function(U){return u(n,U)},vr=function(U){return u(t,U)};return R(RK[1],vr,yr,e,er),u(f(e),f7r);case 19:u(f(e),x7r);var $0=i[1],Er=function(U){return u(n,U)},Mr=function(U){return u(t,U)};return R(mW[1],Mr,Er,e,$0),u(f(e),o7r);case 20:u(f(e),a7r);var Br=i[1],qr=function(U){return u(n,U)},jr=function(U){return u(t,U)};return R(yW[1],jr,qr,e,Br),u(f(e),c7r);case 21:u(f(e),s7r);var $r=i[1],ne=function(U){return u(n,U)},Qr=function(U){return u(t,U)};return R(cW[2],Qr,ne,e,$r),u(f(e),v7r);case 22:u(f(e),l7r);var be=i[1],ae=function(U){return u(n,U)},pe=function(U){return u(t,U)};return R(vW[1],pe,ae,e,be),u(f(e),b7r);case 23:u(f(e),p7r);var oe=i[1],ce=function(U){return u(t,U)};return ur(g1[1],ce,e,oe),u(f(e),m7r);case 24:u(f(e),_7r);var ge=i[1],q0=function(U){return u(t,U)};return ur(BN[1],q0,e,ge),u(f(e),y7r);case 25:u(f(e),h7r);var gr=i[1],_=function(U){return u(t,U)};return ur(Zz[1],_,e,gr),u(f(e),d7r);default:u(f(e),k7r);var k=i[1],I=function(U){return u(t,U)};return ur(qN[1],I,e,k),u(f(e),w7r)}}),N(dW,function(t,n,e){var i=o(s5,t,n);return o(C0(Ctr),i,e)}),N(gC,function(t,n,e,i){u(f(e),Itr),o(t,e,i[1]),u(f(e),Atr);var x=i[2];function c(s){return u(n,s)}return R(c5,function(s){return u(t,s)},c,e,x),u(f(e),Ntr)}),N(kW,function(t,n,e){var i=o(gC,t,n);return o(C0(Otr),i,e)}),N(FC,function(t,n,e,i){if(i[0]===0)return u(f(e),Str),o(n,e,i[1]),u(f(e),gtr);u(f(e),Ftr);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R($e[17],s,c,e,x),u(f(e),Ttr)}),N(wW,function(t,n,e){var i=o(FC,t,n);return o(C0(Etr),i,e)});var TC=function t(n,e,i,x){return t.fun(n,e,i,x)},EW=function t(n,e,i){return t.fun(n,e,i)},v5=function t(n,e,i,x){return t.fun(n,e,i,x)},SW=function t(n,e,i){return t.fun(n,e,i)};N(TC,function(t,n,e,i){u(f(e),dtr),o(t,e,i[1]),u(f(e),ktr);var x=i[2];function c(s){return u(n,s)}return R(v5,function(s){return u(t,s)},c,e,x),u(f(e),wtr)}),N(EW,function(t,n,e){var i=o(TC,t,n);return o(C0(htr),i,e)}),N(v5,function(t,n,e,i){u(f(e),Jnr),o(f(e),Znr,$nr);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),Qnr),u(f(e),rtr),o(f(e),ntr,etr);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[19],T,y,e,p),u(f(e),ttr),u(f(e),utr),o(f(e),ftr,itr);var E=i[3];if(E){g(e,xtr);var d=E[1],w=function(K){return u(t,K)};ur(zv[1],w,e,d),g(e,otr)}else g(e,atr);u(f(e),ctr),u(f(e),str),o(f(e),ltr,vtr);var G=i[4];if(G){g(e,btr);var A=G[1],S=function(K){return u(n,K)},M=function(K){return u(t,K)};R($e[13],M,S,e,A),g(e,ptr)}else g(e,mtr);return u(f(e),_tr),u(f(e),ytr)}),N(SW,function(t,n,e){var i=o(v5,t,n);return o(C0(Wnr),i,e)});var gW=[0,TC,EW,v5,SW],OC=function t(n,e,i,x){return t.fun(n,e,i,x)},FW=function t(n,e,i){return t.fun(n,e,i)},l5=function t(n,e,i,x){return t.fun(n,e,i,x)},TW=function t(n,e,i){return t.fun(n,e,i)};N(OC,function(t,n,e,i){u(f(e),Vnr),o(t,e,i[1]),u(f(e),znr);var x=i[2];function c(s){return u(n,s)}return R(l5,function(s){return u(t,s)},c,e,x),u(f(e),Knr)}),N(FW,function(t,n,e){var i=o(OC,t,n);return o(C0(Ynr),i,e)}),N(l5,function(t,n,e,i){u(f(e),Nnr),o(f(e),Pnr,Cnr);var x=i[1];u(f(e),Dnr);var c=0;le(function(E,d){E&&u(f(e),Anr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(gW[1],G,w,e,d),1},c,x),u(f(e),Lnr),u(f(e),Rnr),u(f(e),jnr),o(f(e),Mnr,Gnr);var s=i[2];if(s){g(e,Bnr);var p=s[1],y=function(E,d){u(f(E),Onr);var w=0;return le(function(G,A){G&&u(f(E),Tnr);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),Inr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,qnr)}else g(e,Unr);return u(f(e),Hnr),u(f(e),Xnr)}),N(TW,function(t,n,e){var i=o(l5,t,n);return o(C0(Fnr),i,e)});var IC=function t(n,e,i,x){return t.fun(n,e,i,x)},OW=function t(n,e,i){return t.fun(n,e,i)},b5=function t(n,e,i,x){return t.fun(n,e,i,x)},IW=function t(n,e,i){return t.fun(n,e,i)},dee=[0,OC,FW,l5,TW];N(IC,function(t,n,e,i){u(f(e),Enr),o(t,e,i[1]),u(f(e),Snr);var x=i[2];function c(s){return u(n,s)}return R(b5,function(s){return u(t,s)},c,e,x),u(f(e),gnr)}),N(OW,function(t,n,e){var i=o(IC,t,n);return o(C0(wnr),i,e)}),N(b5,function(t,n,e,i){u(f(e),onr),o(f(e),cnr,anr);var x=i[1];u(f(e),snr);var c=0;le(function(E,d){E&&u(f(e),xnr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),vnr),u(f(e),lnr),u(f(e),bnr),o(f(e),mnr,pnr);var s=i[2];if(s){g(e,_nr);var p=s[1],y=function(E,d){u(f(E),inr);var w=0;return le(function(G,A){G&&u(f(E),unr);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),fnr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,ynr)}else g(e,hnr);return u(f(e),dnr),u(f(e),knr)}),N(IW,function(t,n,e){var i=o(b5,t,n);return o(C0(tnr),i,e)});var AC=function t(n,e,i,x){return t.fun(n,e,i,x)},AW=function t(n,e,i){return t.fun(n,e,i)},p5=function t(n,e,i,x){return t.fun(n,e,i,x)},NW=function t(n,e,i){return t.fun(n,e,i)},m5=function t(n,e,i,x){return t.fun(n,e,i,x)},CW=function t(n,e,i){return t.fun(n,e,i)},kee=[0,IC,OW,b5,IW];N(AC,function(t,n,e,i){u(f(e),rnr),o(t,e,i[1]),u(f(e),enr);var x=i[2];function c(s){return u(n,s)}return R(p5,function(s){return u(t,s)},c,e,x),u(f(e),nnr)}),N(AW,function(t,n,e){var i=o(AC,t,n);return o(C0(Qer),i,e)}),N(p5,function(t,n,e,i){u(f(e),qer),o(f(e),Her,Uer);var x=i[1];function c(E){return u(n,E)}R(m5,function(E){return u(t,E)},c,e,x),u(f(e),Xer),u(f(e),Yer),o(f(e),zer,Ver);var s=i[2];if(s){g(e,Ker);var p=s[1],y=function(E,d){return g(E,Ber)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Wer)}else g(e,Jer);return u(f(e),$er),u(f(e),Zer)}),N(NW,function(t,n,e){var i=o(p5,t,n);return o(C0(Mer),i,e)}),N(m5,function(t,n,e,i){if(i){u(f(e),Rer);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(Be[31],s,c,e,x),u(f(e),jer)}return g(e,Ger)}),N(CW,function(t,n,e){var i=o(m5,t,n);return o(C0(Ler),i,e)}),mu(V3r,$e,[0,Ol,xC,aC,RK,_C,nW,uW,cW,vW,bW,mW,yW,c5,hW,s5,dW,gC,kW,FC,wW,gW,dee,kee,[0,AC,AW,p5,NW,m5,CW]]);var NC=function t(n,e,i,x){return t.fun(n,e,i,x)},PW=function t(n,e,i){return t.fun(n,e,i)};N(NC,function(t,n,e,i){u(f(e),ker),o(f(e),Eer,wer);var x=i[1];u(f(e),Ser);var c=0;le(function(E,d){E&&u(f(e),der);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(Yu[35],G,w,e,d),1},c,x),u(f(e),ger),u(f(e),Fer),u(f(e),Ter),o(f(e),Ier,Oer);var s=i[2];if(s){g(e,Aer);var p=s[1],y=function(E,d){u(f(E),yer);var w=0;return le(function(G,A){G&&u(f(E),_er);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),her)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Ner)}else g(e,Cer);return u(f(e),Per),u(f(e),Der)}),N(PW,function(t,n,e){var i=o(NC,t,n);return o(C0(mer),i,e)});var Kv=[0,NC,PW],CC=function t(n,e,i,x){return t.fun(n,e,i,x)},DW=function t(n,e,i){return t.fun(n,e,i)},_5=function t(n,e,i,x){return t.fun(n,e,i,x)},LW=function t(n,e,i){return t.fun(n,e,i)};N(CC,function(t,n,e,i){u(f(e),ler),o(t,e,i[1]),u(f(e),ber);var x=i[2];function c(s){return u(n,s)}return R(_5,function(s){return u(t,s)},c,e,x),u(f(e),per)}),N(DW,function(t,n,e){var i=o(CC,t,n);return o(C0(ver),i,e)}),N(_5,function(t,n,e,i){u(f(e),rer),o(f(e),ner,eer);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Yu[35],s,c,e,x),u(f(e),ter),u(f(e),uer),o(f(e),fer,ier);var p=i[2];if(p){g(e,xer);var y=p[1],T=function(d,w){return g(d,Qrr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,oer)}else g(e,aer);return u(f(e),cer),u(f(e),ser)}),N(LW,function(t,n,e){var i=o(_5,t,n);return o(C0(Zrr),i,e)});var RW=[0,CC,DW,_5,LW],PC=function t(n,e,i,x){return t.fun(n,e,i,x)},jW=function t(n,e,i){return t.fun(n,e,i)};N(PC,function(t,n,e,i){u(f(e),Irr),o(f(e),Nrr,Arr);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Be[31],s,c,e,x),u(f(e),Crr),u(f(e),Prr),o(f(e),Lrr,Drr);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R(Yu[35],T,y,e,p),u(f(e),Rrr),u(f(e),jrr),o(f(e),Mrr,Grr);var E=i[3];if(E){g(e,Brr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(RW[1],G,w,e,d),g(e,qrr)}else g(e,Urr);u(f(e),Hrr),u(f(e),Xrr),o(f(e),Vrr,Yrr);var A=i[4];if(A){g(e,zrr);var S=A[1],M=function(V,f0){return g(V,Orr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,Krr)}else g(e,Wrr);return u(f(e),Jrr),u(f(e),$rr)}),N(jW,function(t,n,e){var i=o(PC,t,n);return o(C0(Trr),i,e)});var GW=[0,RW,PC,jW],DC=function t(n,e,i,x){return t.fun(n,e,i,x)},MW=function t(n,e,i){return t.fun(n,e,i)};N(DC,function(t,n,e,i){u(f(e),srr),o(f(e),lrr,vrr);var x=i[1];function c(A){return u(t,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),brr),u(f(e),prr),o(f(e),_rr,mrr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),yrr),u(f(e),hrr),o(f(e),krr,drr);var E=i[3];if(E){g(e,wrr);var d=E[1],w=function(A,S){return g(A,crr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Err)}else g(e,Srr);return u(f(e),grr),u(f(e),Frr)}),N(MW,function(t,n,e){var i=o(DC,t,n);return o(C0(arr),i,e)});var BW=[0,DC,MW],LC=function t(n,e,i){return t.fun(n,e,i)},qW=function t(n,e){return t.fun(n,e)};N(LC,function(t,n,e){u(f(n),K0r),o(f(n),J0r,W0r);var i=e[1];if(i){g(n,$0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,Z0r)}else g(n,Q0r);u(f(n),rrr),u(f(n),err),o(f(n),trr,nrr);var p=e[2];if(p){g(n,urr);var y=p[1],T=function(d,w){return g(d,z0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,irr)}else g(n,frr);return u(f(n),xrr),u(f(n),orr)}),N(qW,function(t,n){var e=u(LC,t);return o(C0(V0r),e,n)});var UW=[0,LC,qW],RC=function t(n,e,i){return t.fun(n,e,i)},HW=function t(n,e){return t.fun(n,e)};N(RC,function(t,n,e){u(f(n),N0r),o(f(n),P0r,C0r);var i=e[1];if(i){g(n,D0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,L0r)}else g(n,R0r);u(f(n),j0r),u(f(n),G0r),o(f(n),B0r,M0r);var p=e[2];if(p){g(n,q0r);var y=p[1],T=function(d,w){return g(d,A0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,U0r)}else g(n,H0r);return u(f(n),X0r),u(f(n),Y0r)}),N(HW,function(t,n){var e=u(RC,t);return o(C0(I0r),e,n)});var XW=[0,RC,HW],jC=function t(n,e,i){return t.fun(n,e,i)},YW=function t(n,e){return t.fun(n,e)};N(jC,function(t,n,e){u(f(n),k0r),o(f(n),E0r,w0r);var i=e[1];if(i){g(n,S0r);var x=i[1],c=function(p,y){return g(p,d0r)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,g0r)}else g(n,F0r);return u(f(n),T0r),u(f(n),O0r)}),N(YW,function(t,n){var e=u(jC,t);return o(C0(h0r),e,n)});var VW=[0,jC,YW],GC=function t(n,e,i,x){return t.fun(n,e,i,x)},zW=function t(n,e,i){return t.fun(n,e,i)};N(GC,function(t,n,e,i){u(f(e),t0r),o(f(e),i0r,u0r);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Be[31],s,c,e,x),u(f(e),f0r),u(f(e),x0r),o(f(e),a0r,o0r);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),c0r),u(f(e),s0r),o(f(e),l0r,v0r);var E=i[3];if(E){g(e,b0r);var d=E[1],w=function(A,S){return g(A,n0r)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,p0r)}else g(e,m0r);return u(f(e),_0r),u(f(e),y0r)}),N(zW,function(t,n,e){var i=o(GC,t,n);return o(C0(e0r),i,e)});var KW=[0,GC,zW],MC=function t(n,e,i,x){return t.fun(n,e,i,x)},WW=function t(n,e,i){return t.fun(n,e,i)};N(MC,function(t,n,e,i){u(f(e),CQ0),o(f(e),DQ0,PQ0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),LQ0),u(f(e),RQ0),o(f(e),GQ0,jQ0);var p=i[2];if(p){g(e,MQ0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R($e[22][1],E,T,e,y),g(e,BQ0)}else g(e,qQ0);u(f(e),UQ0),u(f(e),HQ0),o(f(e),YQ0,XQ0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),VQ0),u(f(e),zQ0),o(f(e),WQ0,KQ0);var A=i[4];if(A){g(e,JQ0);var S=A[1],M=function(V,f0){return g(V,NQ0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,$Q0)}else g(e,ZQ0);return u(f(e),QQ0),u(f(e),r0r)}),N(WW,function(t,n,e){var i=o(MC,t,n);return o(C0(AQ0),i,e)});var y5=[0,MC,WW],BC=function t(n,e,i,x){return t.fun(n,e,i,x)},JW=function t(n,e,i){return t.fun(n,e,i)};N(BC,function(t,n,e,i){u(f(e),$Z0),o(f(e),QZ0,ZZ0);var x=i[1];function c(e0){return u(n,e0)}function s(e0){return u(t,e0)}R(Rn[1],s,c,e,x),u(f(e),rQ0),u(f(e),eQ0),o(f(e),tQ0,nQ0);var p=i[2];if(p){g(e,uQ0);var y=p[1],T=function(e0){return u(n,e0)},E=function(e0){return u(t,e0)};R($e[22][1],E,T,e,y),g(e,iQ0)}else g(e,fQ0);u(f(e),xQ0),u(f(e),oQ0),o(f(e),cQ0,aQ0);var d=i[3];if(d){g(e,sQ0);var w=d[1],G=function(e0){return u(n,e0)},A=function(e0){return u(t,e0)};R($e[13],A,G,e,w),g(e,vQ0)}else g(e,lQ0);u(f(e),bQ0),u(f(e),pQ0),o(f(e),_Q0,mQ0);var S=i[4];if(S){g(e,yQ0);var M=S[1],K=function(e0){return u(n,e0)},V=function(e0){return u(t,e0)};R($e[13],V,K,e,M),g(e,hQ0)}else g(e,dQ0);u(f(e),kQ0),u(f(e),wQ0),o(f(e),SQ0,EQ0);var f0=i[5];if(f0){g(e,gQ0);var m0=f0[1],k0=function(e0,x0){return g(e0,JZ0)},g0=function(e0){return u(t,e0)};R(Dr[1],g0,k0,e,m0),g(e,FQ0)}else g(e,TQ0);return u(f(e),OQ0),u(f(e),IQ0)}),N(JW,function(t,n,e){var i=o(BC,t,n);return o(C0(WZ0),i,e)});var h5=[0,BC,JW],qC=function t(n,e,i,x){return t.fun(n,e,i,x)},$W=function t(n,e,i){return t.fun(n,e,i)},d5=function t(n,e,i,x){return t.fun(n,e,i,x)},ZW=function t(n,e,i){return t.fun(n,e,i)};N(qC,function(t,n,e,i){u(f(e),VZ0),o(t,e,i[1]),u(f(e),zZ0);var x=i[2];function c(s){return u(n,s)}return R(d5,function(s){return u(t,s)},c,e,x),u(f(e),KZ0)}),N($W,function(t,n,e){var i=o(qC,t,n);return o(C0(YZ0),i,e)}),N(d5,function(t,n,e,i){u(f(e),SZ0),o(f(e),FZ0,gZ0);var x=i[1];if(x){g(e,TZ0);var c=x[1],s=function(A){return u(n,A)},p=function(A){return u(t,A)};R(Be[31],p,s,e,c),g(e,OZ0)}else g(e,IZ0);u(f(e),AZ0),u(f(e),NZ0),o(f(e),PZ0,CZ0);var y=i[2];u(f(e),DZ0);var T=0;le(function(A,S){A&&u(f(e),EZ0);function M(V){return u(n,V)}function K(V){return u(t,V)}return R(Yu[35],K,M,e,S),1},T,y),u(f(e),LZ0),u(f(e),RZ0),u(f(e),jZ0),o(f(e),MZ0,GZ0);var E=i[3];if(E){g(e,BZ0);var d=E[1],w=function(A,S){return g(A,wZ0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,qZ0)}else g(e,UZ0);return u(f(e),HZ0),u(f(e),XZ0)}),N(ZW,function(t,n,e){var i=o(d5,t,n);return o(C0(kZ0),i,e)});var QW=[0,qC,$W,d5,ZW],UC=function t(n,e,i,x){return t.fun(n,e,i,x)},rJ=function t(n,e,i){return t.fun(n,e,i)};N(UC,function(t,n,e,i){u(f(e),Q$0),o(f(e),eZ0,rZ0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(Be[31],s,c,e,x),u(f(e),nZ0),u(f(e),tZ0),o(f(e),iZ0,uZ0);var p=i[2];u(f(e),fZ0);var y=0;le(function(G,A){G&&u(f(e),Z$0);function S(K){return u(n,K)}function M(K){return u(t,K)}return R(QW[1],M,S,e,A),1},y,p),u(f(e),xZ0),u(f(e),oZ0),u(f(e),aZ0),o(f(e),sZ0,cZ0);var T=i[3];if(T){g(e,vZ0);var E=T[1],d=function(G,A){return g(G,$$0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,lZ0)}else g(e,bZ0);return u(f(e),pZ0),u(f(e),mZ0),o(f(e),yZ0,_Z0),o(n,e,i[4]),u(f(e),hZ0),u(f(e),dZ0)}),N(rJ,function(t,n,e){var i=o(UC,t,n);return o(C0(J$0),i,e)});var eJ=[0,QW,UC,rJ],HC=function t(n,e,i,x){return t.fun(n,e,i,x)},nJ=function t(n,e,i){return t.fun(n,e,i)};N(HC,function(t,n,e,i){u(f(e),N$0),o(f(e),P$0,C$0);var x=i[1];if(x){g(e,D$0);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(Be[31],p,s,e,c),g(e,L$0)}else g(e,R$0);u(f(e),j$0),u(f(e),G$0),o(f(e),B$0,M$0);var y=i[2];if(y){g(e,q$0);var T=y[1],E=function(w,G){return g(w,A$0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,U$0)}else g(e,H$0);return u(f(e),X$0),u(f(e),Y$0),o(f(e),z$0,V$0),o(n,e,i[3]),u(f(e),K$0),u(f(e),W$0)}),N(nJ,function(t,n,e){var i=o(HC,t,n);return o(C0(I$0),i,e)});var tJ=[0,HC,nJ],XC=function t(n,e,i,x){return t.fun(n,e,i,x)},uJ=function t(n,e,i){return t.fun(n,e,i)};N(XC,function(t,n,e,i){u(f(e),_$0),o(f(e),h$0,y$0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),d$0),u(f(e),k$0),o(f(e),E$0,w$0);var p=i[2];if(p){g(e,S$0);var y=p[1],T=function(d,w){return g(d,m$0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,g$0)}else g(e,F$0);return u(f(e),T$0),u(f(e),O$0)}),N(uJ,function(t,n,e){var i=o(XC,t,n);return o(C0(p$0),i,e)});var iJ=[0,XC,uJ],YC=function t(n,e,i,x){return t.fun(n,e,i,x)},fJ=function t(n,e,i){return t.fun(n,e,i)},k5=function t(n,e,i,x){return t.fun(n,e,i,x)},xJ=function t(n,e,i){return t.fun(n,e,i)};N(YC,function(t,n,e,i){u(f(e),v$0),o(t,e,i[1]),u(f(e),l$0);var x=i[2];function c(s){return u(n,s)}return R(k5,function(s){return u(t,s)},c,e,x),u(f(e),b$0)}),N(fJ,function(t,n,e){var i=o(YC,t,n);return o(C0(s$0),i,e)}),N(k5,function(t,n,e,i){u(f(e),HJ0),o(f(e),YJ0,XJ0);var x=i[1];if(x){g(e,VJ0);var c=x[1],s=function(M){return u(n,M)},p=function(M){return u(t,M)};R(di[5],p,s,e,c),g(e,zJ0)}else g(e,KJ0);u(f(e),WJ0),u(f(e),JJ0),o(f(e),ZJ0,$J0);var y=i[2];u(f(e),QJ0),o(t,e,y[1]),u(f(e),r$0);var T=y[2];function E(M){return u(n,M)}function d(M){return u(t,M)}R(Kv[1],d,E,e,T),u(f(e),e$0),u(f(e),n$0),u(f(e),t$0),o(f(e),i$0,u$0);var w=i[3];if(w){g(e,f$0);var G=w[1],A=function(M,K){return g(M,UJ0)},S=function(M){return u(t,M)};R(Dr[1],S,A,e,G),g(e,x$0)}else g(e,o$0);return u(f(e),a$0),u(f(e),c$0)}),N(xJ,function(t,n,e){var i=o(k5,t,n);return o(C0(qJ0),i,e)});var oJ=[0,YC,fJ,k5,xJ],VC=function t(n,e,i,x){return t.fun(n,e,i,x)},aJ=function t(n,e,i){return t.fun(n,e,i)};N(VC,function(t,n,e,i){u(f(e),aJ0),o(f(e),sJ0,cJ0);var x=i[1];u(f(e),vJ0),o(t,e,x[1]),u(f(e),lJ0);var c=x[2];function s(k0){return u(n,k0)}function p(k0){return u(t,k0)}R(Kv[1],p,s,e,c),u(f(e),bJ0),u(f(e),pJ0),u(f(e),mJ0),o(f(e),yJ0,_J0);var y=i[2];if(y){g(e,hJ0);var T=y[1],E=function(k0){return u(n,k0)},d=function(k0){return u(t,k0)};R(oJ[1],d,E,e,T),g(e,dJ0)}else g(e,kJ0);u(f(e),wJ0),u(f(e),EJ0),o(f(e),gJ0,SJ0);var w=i[3];if(w){var G=w[1];g(e,FJ0),u(f(e),TJ0),o(t,e,G[1]),u(f(e),OJ0);var A=G[2],S=function(k0){return u(n,k0)},M=function(k0){return u(t,k0)};R(Kv[1],M,S,e,A),u(f(e),IJ0),g(e,AJ0)}else g(e,NJ0);u(f(e),CJ0),u(f(e),PJ0),o(f(e),LJ0,DJ0);var K=i[4];if(K){g(e,RJ0);var V=K[1],f0=function(k0,g0){return g(k0,oJ0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,jJ0)}else g(e,GJ0);return u(f(e),MJ0),u(f(e),BJ0)}),N(aJ,function(t,n,e){var i=o(VC,t,n);return o(C0(xJ0),i,e)});var cJ=[0,oJ,VC,aJ],zC=function t(n,e,i,x){return t.fun(n,e,i,x)},sJ=function t(n,e,i){return t.fun(n,e,i)},w5=function t(n,e,i,x){return t.fun(n,e,i,x)},vJ=function t(n,e,i){return t.fun(n,e,i)};N(zC,function(t,n,e,i){u(f(e),uJ0),o(t,e,i[1]),u(f(e),iJ0);var x=i[2];function c(s){return u(n,s)}return R(w5,function(s){return u(t,s)},c,e,x),u(f(e),fJ0)}),N(sJ,function(t,n,e){var i=o(zC,t,n);return o(C0(tJ0),i,e)}),N(w5,function(t,n,e,i){u(f(e),YW0),o(f(e),zW0,VW0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),KW0),u(f(e),WW0),o(f(e),$W0,JW0);var p=i[2];if(p){g(e,ZW0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(Be[31],E,T,e,y),g(e,QW0)}else g(e,rJ0);return u(f(e),eJ0),u(f(e),nJ0)}),N(vJ,function(t,n,e){var i=o(w5,t,n);return o(C0(XW0),i,e)});var lJ=[0,zC,sJ,w5,vJ],KC=function t(n,e,i,x){return t.fun(n,e,i,x)},bJ=function t(n,e,i){return t.fun(n,e,i)},E5=function t(n,e){return t.fun(n,e)},pJ=function t(n){return t.fun(n)};N(KC,function(t,n,e,i){u(f(e),FW0),o(f(e),OW0,TW0);var x=i[1];u(f(e),IW0);var c=0;le(function(E,d){E&&u(f(e),gW0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(lJ[1],G,w,e,d),1},c,x),u(f(e),AW0),u(f(e),NW0),u(f(e),CW0),o(f(e),DW0,PW0),o(E5,e,i[2]),u(f(e),LW0),u(f(e),RW0),o(f(e),GW0,jW0);var s=i[3];if(s){g(e,MW0);var p=s[1],y=function(E,d){return g(E,SW0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,BW0)}else g(e,qW0);return u(f(e),UW0),u(f(e),HW0)}),N(bJ,function(t,n,e){var i=o(KC,t,n);return o(C0(EW0),i,e)}),N(E5,function(t,n){switch(n){case 0:return g(t,dW0);case 1:return g(t,kW0);default:return g(t,wW0)}}),N(pJ,function(t){return o(C0(hW0),E5,t)});var Il=[0,lJ,KC,bJ,E5,pJ],WC=function t(n,e,i,x){return t.fun(n,e,i,x)},mJ=function t(n,e,i){return t.fun(n,e,i)};N(WC,function(t,n,e,i){u(f(e),tW0),o(f(e),iW0,uW0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Be[31],s,c,e,x),u(f(e),fW0),u(f(e),xW0),o(f(e),aW0,oW0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),cW0),u(f(e),sW0),o(f(e),lW0,vW0);var E=i[3];if(E){g(e,bW0);var d=E[1],w=function(A,S){return g(A,nW0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,pW0)}else g(e,mW0);return u(f(e),_W0),u(f(e),yW0)}),N(mJ,function(t,n,e){var i=o(WC,t,n);return o(C0(eW0),i,e)});var _J=[0,WC,mJ],JC=function t(n,e,i,x){return t.fun(n,e,i,x)},yJ=function t(n,e,i){return t.fun(n,e,i)};N(JC,function(t,n,e,i){u(f(e),MK0),o(f(e),qK0,BK0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Yu[35],s,c,e,x),u(f(e),UK0),u(f(e),HK0),o(f(e),YK0,XK0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Be[31],T,y,e,p),u(f(e),VK0),u(f(e),zK0),o(f(e),WK0,KK0);var E=i[3];if(E){g(e,JK0);var d=E[1],w=function(A,S){return g(A,GK0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,$K0)}else g(e,ZK0);return u(f(e),QK0),u(f(e),rW0)}),N(yJ,function(t,n,e){var i=o(JC,t,n);return o(C0(jK0),i,e)});var hJ=[0,JC,yJ],$C=function t(n,e,i,x){return t.fun(n,e,i,x)},dJ=function t(n,e,i){return t.fun(n,e,i)},S5=function t(n,e,i,x){return t.fun(n,e,i,x)},kJ=function t(n,e,i){return t.fun(n,e,i)};N($C,function(t,n,e,i){u(f(e),uK0),o(f(e),fK0,iK0);var x=i[1];if(x){g(e,xK0);var c=x[1],s=function(g0){return u(n,g0)};R(S5,function(g0){return u(t,g0)},s,e,c),g(e,oK0)}else g(e,aK0);u(f(e),cK0),u(f(e),sK0),o(f(e),lK0,vK0);var p=i[2];if(p){g(e,bK0);var y=p[1],T=function(g0){return u(n,g0)},E=function(g0){return u(t,g0)};R(Be[31],E,T,e,y),g(e,pK0)}else g(e,mK0);u(f(e),_K0),u(f(e),yK0),o(f(e),dK0,hK0);var d=i[3];if(d){g(e,kK0);var w=d[1],G=function(g0){return u(n,g0)},A=function(g0){return u(t,g0)};R(Be[31],A,G,e,w),g(e,wK0)}else g(e,EK0);u(f(e),SK0),u(f(e),gK0),o(f(e),TK0,FK0);var S=i[4];function M(g0){return u(n,g0)}function K(g0){return u(t,g0)}R(Yu[35],K,M,e,S),u(f(e),OK0),u(f(e),IK0),o(f(e),NK0,AK0);var V=i[5];if(V){g(e,CK0);var f0=V[1],m0=function(g0,e0){return g(g0,tK0)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,PK0)}else g(e,DK0);return u(f(e),LK0),u(f(e),RK0)}),N(dJ,function(t,n,e){var i=o($C,t,n);return o(C0(nK0),i,e)}),N(S5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),Wz0),u(f(e),Jz0),o(t,e,x[1]),u(f(e),$z0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),Zz0),u(f(e),Qz0)}u(f(e),rK0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(Be[31],E,T,e,y),u(f(e),eK0)}),N(kJ,function(t,n,e){var i=o(S5,t,n);return o(C0(Kz0),i,e)});var wJ=[0,$C,dJ,S5,kJ],ZC=function t(n,e,i,x){return t.fun(n,e,i,x)},EJ=function t(n,e,i){return t.fun(n,e,i)},g5=function t(n,e,i,x){return t.fun(n,e,i,x)},SJ=function t(n,e,i){return t.fun(n,e,i)};N(ZC,function(t,n,e,i){u(f(e),Ez0),o(f(e),gz0,Sz0);var x=i[1];function c(K){return u(n,K)}R(g5,function(K){return u(t,K)},c,e,x),u(f(e),Fz0),u(f(e),Tz0),o(f(e),Iz0,Oz0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(Be[31],y,p,e,s),u(f(e),Az0),u(f(e),Nz0),o(f(e),Pz0,Cz0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),Dz0),u(f(e),Lz0),o(f(e),jz0,Rz0);var w=i[4];o(f(e),Gz0,w),u(f(e),Mz0),u(f(e),Bz0),o(f(e),Uz0,qz0);var G=i[5];if(G){g(e,Hz0);var A=G[1],S=function(K,V){return g(K,wz0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Xz0)}else g(e,Yz0);return u(f(e),Vz0),u(f(e),zz0)}),N(EJ,function(t,n,e){var i=o(ZC,t,n);return o(C0(kz0),i,e)}),N(g5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),bz0),u(f(e),pz0),o(t,e,x[1]),u(f(e),mz0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),_z0),u(f(e),yz0)}u(f(e),hz0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),dz0)}),N(SJ,function(t,n,e){var i=o(g5,t,n);return o(C0(lz0),i,e)});var gJ=[0,ZC,EJ,g5,SJ],QC=function t(n,e,i,x){return t.fun(n,e,i,x)},FJ=function t(n,e,i){return t.fun(n,e,i)},F5=function t(n,e,i,x){return t.fun(n,e,i,x)},TJ=function t(n,e,i){return t.fun(n,e,i)};N(QC,function(t,n,e,i){u(f(e),UV0),o(f(e),XV0,HV0);var x=i[1];function c(K){return u(n,K)}R(F5,function(K){return u(t,K)},c,e,x),u(f(e),YV0),u(f(e),VV0),o(f(e),KV0,zV0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(Be[31],y,p,e,s),u(f(e),WV0),u(f(e),JV0),o(f(e),ZV0,$V0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),QV0),u(f(e),rz0),o(f(e),nz0,ez0);var w=i[4];o(f(e),tz0,w),u(f(e),uz0),u(f(e),iz0),o(f(e),xz0,fz0);var G=i[5];if(G){g(e,oz0);var A=G[1],S=function(K,V){return g(K,qV0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,az0)}else g(e,cz0);return u(f(e),sz0),u(f(e),vz0)}),N(FJ,function(t,n,e){var i=o(QC,t,n);return o(C0(BV0),i,e)}),N(F5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),PV0),u(f(e),DV0),o(t,e,x[1]),u(f(e),LV0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),RV0),u(f(e),jV0)}u(f(e),GV0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),MV0)}),N(TJ,function(t,n,e){var i=o(F5,t,n);return o(C0(CV0),i,e)});var OJ=[0,QC,FJ,F5,TJ],rP=function t(n,e,i){return t.fun(n,e,i)},IJ=function t(n,e){return t.fun(n,e)},T5=function t(n,e,i){return t.fun(n,e,i)},AJ=function t(n,e){return t.fun(n,e)};N(rP,function(t,n,e){u(f(n),IV0),o(t,n,e[1]),u(f(n),AV0);var i=e[2];return ur(T5,function(x){return u(t,x)},n,i),u(f(n),NV0)}),N(IJ,function(t,n){var e=u(rP,t);return o(C0(OV0),e,n)}),N(T5,function(t,n,e){u(f(n),EV0),o(f(n),gV0,SV0);var i=e[1];function x(s){return u(t,s)}function c(s){return u(t,s)}return R(Rn[1],c,x,n,i),u(f(n),FV0),u(f(n),TV0)}),N(AJ,function(t,n){var e=u(T5,t);return o(C0(wV0),e,n)});var eP=[0,rP,IJ,T5,AJ],nP=function t(n,e,i,x){return t.fun(n,e,i,x)},NJ=function t(n,e,i){return t.fun(n,e,i)},O5=function t(n,e,i,x){return t.fun(n,e,i,x)},CJ=function t(n,e,i){return t.fun(n,e,i)};N(nP,function(t,n,e,i){u(f(e),hV0),o(n,e,i[1]),u(f(e),dV0);var x=i[2];function c(s){return u(n,s)}return R(O5,function(s){return u(t,s)},c,e,x),u(f(e),kV0)}),N(NJ,function(t,n,e){var i=o(nP,t,n);return o(C0(yV0),i,e)}),N(O5,function(t,n,e,i){u(f(e),fV0),o(f(e),oV0,xV0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(n,y)}R(Rn[1],s,c,e,x),u(f(e),aV0),u(f(e),cV0),o(f(e),vV0,sV0);var p=i[2];return u(f(e),lV0),o(n,e,p[1]),u(f(e),bV0),o(t,e,p[2]),u(f(e),pV0),u(f(e),mV0),u(f(e),_V0)}),N(CJ,function(t,n,e){var i=o(O5,t,n);return o(C0(iV0),i,e)});var I5=[0,nP,NJ,O5,CJ],tP=function t(n,e,i){return t.fun(n,e,i)},PJ=function t(n,e){return t.fun(n,e)};N(tP,function(t,n,e){u(f(n),LY0),o(f(n),jY0,RY0);var i=e[1];u(f(n),GY0);var x=0;le(function(d,w){d&&u(f(n),DY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(qN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),MY0),u(f(n),BY0),u(f(n),qY0),o(f(n),HY0,UY0);var c=e[2];o(f(n),XY0,c),u(f(n),YY0),u(f(n),VY0),o(f(n),KY0,zY0);var s=e[3];o(f(n),WY0,s),u(f(n),JY0),u(f(n),$Y0),o(f(n),QY0,ZY0);var p=e[4];if(p){g(n,rV0);var y=p[1],T=function(d,w){u(f(d),CY0);var G=0;return le(function(A,S){A&&u(f(d),NY0);function M(K){return u(t,K)}return ur(fu[1],M,d,S),1},G,w),u(f(d),PY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,eV0)}else g(n,nV0);return u(f(n),tV0),u(f(n),uV0)}),N(PJ,function(t,n){var e=u(tP,t);return o(C0(AY0),e,n)});var DJ=[0,tP,PJ],uP=function t(n,e,i){return t.fun(n,e,i)},LJ=function t(n,e){return t.fun(n,e)};N(uP,function(t,n,e){u(f(n),fY0),o(f(n),oY0,xY0);var i=e[1];u(f(n),aY0);var x=0;le(function(d,w){d&&u(f(n),iY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(BN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),cY0),u(f(n),sY0),u(f(n),vY0),o(f(n),bY0,lY0);var c=e[2];o(f(n),pY0,c),u(f(n),mY0),u(f(n),_Y0),o(f(n),hY0,yY0);var s=e[3];o(f(n),dY0,s),u(f(n),kY0),u(f(n),wY0),o(f(n),SY0,EY0);var p=e[4];if(p){g(n,gY0);var y=p[1],T=function(d,w){u(f(d),tY0);var G=0;return le(function(A,S){A&&u(f(d),nY0);function M(K){return u(t,K)}return ur(fu[1],M,d,S),1},G,w),u(f(d),uY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,FY0)}else g(n,TY0);return u(f(n),OY0),u(f(n),IY0)}),N(LJ,function(t,n){var e=u(uP,t);return o(C0(eY0),e,n)});var RJ=[0,uP,LJ],iP=function t(n,e,i){return t.fun(n,e,i)},jJ=function t(n,e){return t.fun(n,e)},A5=function t(n,e,i,x){return t.fun(n,e,i,x)},GJ=function t(n,e,i){return t.fun(n,e,i)};N(iP,function(t,n,e){u(f(n),PX0),o(f(n),LX0,DX0);var i=e[1];function x(d){return u(t,d)}R(A5,function(d){function w(G){return u(t,G)}return o(g1[1],w,d)},x,n,i),u(f(n),RX0),u(f(n),jX0),o(f(n),MX0,GX0);var c=e[2];o(f(n),BX0,c),u(f(n),qX0),u(f(n),UX0),o(f(n),XX0,HX0);var s=e[3];o(f(n),YX0,s),u(f(n),VX0),u(f(n),zX0),o(f(n),WX0,KX0);var p=e[4];if(p){g(n,JX0);var y=p[1],T=function(d,w){u(f(d),NX0);var G=0;return le(function(A,S){A&&u(f(d),AX0);function M(K){return u(t,K)}return ur(fu[1],M,d,S),1},G,w),u(f(d),CX0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,$X0)}else g(n,ZX0);return u(f(n),QX0),u(f(n),rY0)}),N(jJ,function(t,n){var e=u(iP,t);return o(C0(IX0),e,n)}),N(A5,function(t,n,e,i){if(i[0]===0){u(f(e),kX0),u(f(e),wX0);var x=i[1],c=0;return le(function(y,T){y&&u(f(e),dX0);function E(d){return u(n,d)}return ur(eP[1],E,e,T),1},c,x),u(f(e),EX0),u(f(e),SX0)}u(f(e),gX0),u(f(e),FX0);var s=i[1],p=0;return le(function(y,T){y&&u(f(e),hX0);function E(w){return u(n,w)}function d(w){return u(t,w)}return R(I5[1],d,E,e,T),1},p,s),u(f(e),TX0),u(f(e),OX0)}),N(GJ,function(t,n,e){var i=o(A5,t,n);return o(C0(yX0),i,e)});var MJ=[0,iP,jJ,A5,GJ],fP=function t(n,e,i){return t.fun(n,e,i)},BJ=function t(n,e){return t.fun(n,e)};N(fP,function(t,n,e){u(f(n),QH0),o(f(n),eX0,rX0);var i=e[1];u(f(n),nX0);var x=0;le(function(E,d){E&&u(f(n),ZH0);function w(G){return u(t,G)}return ur(eP[1],w,n,d),1},x,i),u(f(n),tX0),u(f(n),uX0),u(f(n),iX0),o(f(n),xX0,fX0);var c=e[2];o(f(n),oX0,c),u(f(n),aX0),u(f(n),cX0),o(f(n),vX0,sX0);var s=e[3];if(s){g(n,lX0);var p=s[1],y=function(E,d){u(f(E),JH0);var w=0;return le(function(G,A){G&&u(f(E),WH0);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),$H0)},T=function(E){return u(t,E)};R(Dr[1],T,y,n,p),g(n,bX0)}else g(n,pX0);return u(f(n),mX0),u(f(n),_X0)}),N(BJ,function(t,n){var e=u(fP,t);return o(C0(KH0),e,n)});var qJ=[0,fP,BJ],xP=function t(n,e,i,x){return t.fun(n,e,i,x)},UJ=function t(n,e,i){return t.fun(n,e,i)},N5=function t(n,e,i){return t.fun(n,e,i)},HJ=function t(n,e){return t.fun(n,e)},C5=function t(n,e,i){return t.fun(n,e,i)},XJ=function t(n,e){return t.fun(n,e)};N(xP,function(t,n,e,i){u(f(e),CH0),o(f(e),DH0,PH0);var x=i[1];function c(w){return u(n,w)}function s(w){return u(t,w)}R(Rn[1],s,c,e,x),u(f(e),LH0),u(f(e),RH0),o(f(e),GH0,jH0);var p=i[2];ur(N5,function(w){return u(t,w)},e,p),u(f(e),MH0),u(f(e),BH0),o(f(e),UH0,qH0);var y=i[3];if(y){g(e,HH0);var T=y[1],E=function(w,G){return g(w,NH0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,XH0)}else g(e,YH0);return u(f(e),VH0),u(f(e),zH0)}),N(UJ,function(t,n,e){var i=o(xP,t,n);return o(C0(AH0),i,e)}),N(N5,function(t,n,e){u(f(n),TH0),o(t,n,e[1]),u(f(n),OH0);var i=e[2];return ur(C5,function(x){return u(t,x)},n,i),u(f(n),IH0)}),N(HJ,function(t,n){var e=u(N5,t);return o(C0(FH0),e,n)}),N(C5,function(t,n,e){switch(e[0]){case 0:u(f(n),yH0);var i=e[1],x=function(d){return u(t,d)};return ur(DJ[1],x,n,i),u(f(n),hH0);case 1:u(f(n),dH0);var c=e[1],s=function(d){return u(t,d)};return ur(RJ[1],s,n,c),u(f(n),kH0);case 2:u(f(n),wH0);var p=e[1],y=function(d){return u(t,d)};return ur(MJ[1],y,n,p),u(f(n),EH0);default:u(f(n),SH0);var T=e[1],E=function(d){return u(t,d)};return ur(qJ[1],E,n,T),u(f(n),gH0)}}),N(XJ,function(t,n){var e=u(C5,t);return o(C0(_H0),e,n)});var YJ=[0,eP,I5,DJ,RJ,MJ,qJ,xP,UJ,N5,HJ,C5,XJ],oP=function t(n,e,i,x){return t.fun(n,e,i,x)},VJ=function t(n,e,i){return t.fun(n,e,i)};N(oP,function(t,n,e,i){u(f(e),MU0),o(f(e),qU0,BU0);var x=i[1];function c(k0){return u(n,k0)}function s(k0){return u(t,k0)}R(Rn[1],s,c,e,x),u(f(e),UU0),u(f(e),HU0),o(f(e),YU0,XU0);var p=i[2];if(p){g(e,VU0);var y=p[1],T=function(k0){return u(n,k0)},E=function(k0){return u(t,k0)};R($e[22][1],E,T,e,y),g(e,zU0)}else g(e,KU0);u(f(e),WU0),u(f(e),JU0),o(f(e),ZU0,$U0);var d=i[3];u(f(e),QU0);var w=0;le(function(k0,g0){k0&&u(f(e),LU0),u(f(e),RU0),o(t,e,g0[1]),u(f(e),jU0);var e0=g0[2];function x0(c0){return u(n,c0)}function l(c0){return u(t,c0)}return R($e[2][2],l,x0,e,e0),u(f(e),GU0),1},w,d),u(f(e),rH0),u(f(e),eH0),u(f(e),nH0),o(f(e),uH0,tH0);var G=i[4];u(f(e),iH0),o(t,e,G[1]),u(f(e),fH0);var A=G[2];function S(k0){return u(n,k0)}function M(k0){return u(t,k0)}R($e[5][6],M,S,e,A),u(f(e),xH0),u(f(e),oH0),u(f(e),aH0),o(f(e),sH0,cH0);var K=i[5];if(K){g(e,vH0);var V=K[1],f0=function(k0,g0){return g(k0,DU0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,lH0)}else g(e,bH0);return u(f(e),pH0),u(f(e),mH0)}),N(VJ,function(t,n,e){var i=o(oP,t,n);return o(C0(PU0),i,e)});var P5=[0,oP,VJ],aP=function t(n,e,i,x){return t.fun(n,e,i,x)},zJ=function t(n,e,i){return t.fun(n,e,i)};N(aP,function(t,n,e,i){u(f(e),Gq0),o(f(e),Bq0,Mq0);var x=i[1];function c(_0){return u(n,_0)}function s(_0){return u(t,_0)}R(Rn[1],s,c,e,x),u(f(e),qq0),u(f(e),Uq0),o(f(e),Xq0,Hq0);var p=i[2];if(p){g(e,Yq0);var y=p[1],T=function(_0){return u(n,_0)},E=function(_0){return u(t,_0)};R($e[22][1],E,T,e,y),g(e,Vq0)}else g(e,zq0);u(f(e),Kq0),u(f(e),Wq0),o(f(e),$q0,Jq0);var d=i[3];u(f(e),Zq0),o(t,e,d[1]),u(f(e),Qq0);var w=d[2];function G(_0){return u(n,_0)}function A(_0){return u(t,_0)}R($e[5][6],A,G,e,w),u(f(e),rU0),u(f(e),eU0),u(f(e),nU0),o(f(e),uU0,tU0);var S=i[4];if(S){var M=S[1];g(e,iU0),u(f(e),fU0),o(t,e,M[1]),u(f(e),xU0);var K=M[2],V=function(_0){return u(n,_0)},f0=function(_0){return u(t,_0)};R($e[2][2],f0,V,e,K),u(f(e),oU0),g(e,aU0)}else g(e,cU0);u(f(e),sU0),u(f(e),vU0),o(f(e),bU0,lU0);var m0=i[5];u(f(e),pU0);var k0=0;le(function(_0,E0){_0&&u(f(e),Dq0),u(f(e),Lq0),o(t,e,E0[1]),u(f(e),Rq0);var U0=E0[2];function b(X){return u(n,X)}function R0(X){return u(t,X)}return R($e[2][2],R0,b,e,U0),u(f(e),jq0),1},k0,m0),u(f(e),mU0),u(f(e),_U0),u(f(e),yU0),o(f(e),dU0,hU0);var g0=i[6];if(g0){g(e,kU0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R(F1[5][2],l,x0,e,e0),g(e,wU0)}else g(e,EU0);u(f(e),SU0),u(f(e),gU0),o(f(e),TU0,FU0);var c0=i[7];if(c0){g(e,OU0);var t0=c0[1],o0=function(_0,E0){return g(_0,Pq0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,IU0)}else g(e,AU0);return u(f(e),NU0),u(f(e),CU0)}),N(zJ,function(t,n,e){var i=o(aP,t,n);return o(C0(Cq0),i,e)});var cP=[0,aP,zJ],sP=function t(n,e,i,x){return t.fun(n,e,i,x)},KJ=function t(n,e,i){return t.fun(n,e,i)};N(sP,function(t,n,e,i){u(f(e),mq0),o(f(e),yq0,_q0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),hq0),u(f(e),dq0),o(f(e),wq0,kq0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),Eq0),u(f(e),Sq0),o(f(e),Fq0,gq0);var E=i[3];if(E){g(e,Tq0);var d=E[1],w=function(A,S){return g(A,pq0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Oq0)}else g(e,Iq0);return u(f(e),Aq0),u(f(e),Nq0)}),N(KJ,function(t,n,e){var i=o(sP,t,n);return o(C0(bq0),i,e)});var vP=[0,sP,KJ],lP=function t(n,e,i,x){return t.fun(n,e,i,x)},WJ=function t(n,e,i){return t.fun(n,e,i)};N(lP,function(t,n,e,i){u(f(e),YB0),o(f(e),zB0,VB0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),KB0),u(f(e),WB0),o(f(e),$B0,JB0);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R($e[17],T,y,e,p),u(f(e),ZB0),u(f(e),QB0),o(f(e),eq0,rq0);var E=i[3];if(E){g(e,nq0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R($e[24][1],G,w,e,d),g(e,tq0)}else g(e,uq0);u(f(e),iq0),u(f(e),fq0),o(f(e),oq0,xq0);var A=i[4];if(A){g(e,aq0);var S=A[1],M=function(V,f0){return g(V,XB0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,cq0)}else g(e,sq0);return u(f(e),vq0),u(f(e),lq0)}),N(WJ,function(t,n,e){var i=o(lP,t,n);return o(C0(HB0),i,e)});var bP=[0,lP,WJ],D5=function t(n,e,i,x){return t.fun(n,e,i,x)},JJ=function t(n,e,i){return t.fun(n,e,i)},L5=function t(n,e){return t.fun(n,e)},$J=function t(n){return t.fun(n)},pP=function t(n,e,i,x){return t.fun(n,e,i,x)},ZJ=function t(n,e,i){return t.fun(n,e,i)};N(D5,function(t,n,e,i){if(i[0]===0){u(f(e),RB0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Rn[1],s,c,e,x),u(f(e),jB0)}var p=i[1];u(f(e),GB0),u(f(e),MB0),o(n,e,p[1]),u(f(e),BB0);var y=p[2];function T(E){return u(t,E)}return ur(g1[1],T,e,y),u(f(e),qB0),u(f(e),UB0)}),N(JJ,function(t,n,e){var i=o(D5,t,n);return o(C0(LB0),i,e)}),N(L5,function(t,n){return n?g(t,PB0):g(t,DB0)}),N($J,function(t){return o(C0(CB0),L5,t)}),N(pP,function(t,n,e,i){u(f(e),aB0),o(f(e),sB0,cB0);var x=i[1];function c(A){return u(n,A)}R(D5,function(A){return u(t,A)},c,e,x),u(f(e),vB0),u(f(e),lB0),o(f(e),pB0,bB0);var s=i[2];u(f(e),mB0),o(t,e,s[1]),u(f(e),_B0);var p=s[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Kv[1],T,y,e,p),u(f(e),yB0),u(f(e),hB0),u(f(e),dB0),o(f(e),wB0,kB0),o(L5,e,i[3]),u(f(e),EB0),u(f(e),SB0),o(f(e),FB0,gB0);var E=i[4];if(E){g(e,TB0);var d=E[1],w=function(A,S){return g(A,oB0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,OB0)}else g(e,IB0);return u(f(e),AB0),u(f(e),NB0)}),N(ZJ,function(t,n,e){var i=o(pP,t,n);return o(C0(xB0),i,e)});var QJ=[0,D5,JJ,L5,$J,pP,ZJ],mP=function t(n,e,i,x){return t.fun(n,e,i,x)},r$=function t(n,e,i){return t.fun(n,e,i)};N(mP,function(t,n,e,i){u(f(e),WM0),o(f(e),$M0,JM0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),ZM0),u(f(e),QM0),o(f(e),eB0,rB0);var p=i[2];if(p){g(e,nB0);var y=p[1],T=function(d,w){return g(d,KM0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,tB0)}else g(e,uB0);return u(f(e),iB0),u(f(e),fB0)}),N(r$,function(t,n,e){var i=o(mP,t,n);return o(C0(zM0),i,e)});var e$=[0,mP,r$],_P=function t(n,e,i){return t.fun(n,e,i)},n$=function t(n,e){return t.fun(n,e)},R5=function t(n,e,i){return t.fun(n,e,i)},t$=function t(n,e){return t.fun(n,e)};N(_P,function(t,n,e){u(f(n),XM0),o(t,n,e[1]),u(f(n),YM0);var i=e[2];return ur(R5,function(x){return u(t,x)},n,i),u(f(n),VM0)}),N(n$,function(t,n){var e=u(_P,t);return o(C0(HM0),e,n)}),N(R5,function(t,n,e){u(f(n),NM0),o(f(n),PM0,CM0);var i=e[1];function x(E){return u(t,E)}function c(E){return u(t,E)}R(Rn[1],c,x,n,i),u(f(n),DM0),u(f(n),LM0),o(f(n),jM0,RM0);var s=e[2];if(s){g(n,GM0);var p=s[1],y=function(E){return u(t,E)},T=function(E){return u(t,E)};R(Rn[1],T,y,n,p),g(n,MM0)}else g(n,BM0);return u(f(n),qM0),u(f(n),UM0)}),N(t$,function(t,n){var e=u(R5,t);return o(C0(AM0),e,n)});var u$=[0,_P,n$,R5,t$],yP=function t(n,e,i){return t.fun(n,e,i)},i$=function t(n,e){return t.fun(n,e)};N(yP,function(t,n,e){var i=e[2];if(u(f(n),SM0),o(t,n,e[1]),u(f(n),gM0),i){g(n,FM0);var x=i[1],c=function(p){return u(t,p)},s=function(p){return u(t,p)};R(Rn[1],s,c,n,x),g(n,TM0)}else g(n,OM0);return u(f(n),IM0)}),N(i$,function(t,n){var e=u(yP,t);return o(C0(EM0),e,n)});var f$=[0,yP,i$],hP=function t(n,e,i,x){return t.fun(n,e,i,x)},x$=function t(n,e,i){return t.fun(n,e,i)},j5=function t(n,e,i){return t.fun(n,e,i)},o$=function t(n,e){return t.fun(n,e)};N(hP,function(t,n,e,i){u(f(e),qG0),o(f(e),HG0,UG0);var x=i[1];if(x){g(e,XG0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(Yu[35],p,s,e,c),g(e,YG0)}else g(e,VG0);u(f(e),zG0),u(f(e),KG0),o(f(e),JG0,WG0);var y=i[2];if(y){g(e,$G0);var T=y[1];ur(j5,function(V){return u(t,V)},e,T),g(e,ZG0)}else g(e,QG0);u(f(e),rM0),u(f(e),eM0),o(f(e),tM0,nM0);var E=i[3];if(E){var d=E[1];g(e,uM0),u(f(e),iM0),o(t,e,d[1]),u(f(e),fM0);var w=d[2],G=function(V){return u(t,V)};ur(g1[1],G,e,w),u(f(e),xM0),g(e,oM0)}else g(e,aM0);u(f(e),cM0),u(f(e),sM0),o(f(e),lM0,vM0),o(Yu[33],e,i[4]),u(f(e),bM0),u(f(e),pM0),o(f(e),_M0,mM0);var A=i[5];if(A){g(e,yM0);var S=A[1],M=function(V,f0){return g(V,BG0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,hM0)}else g(e,dM0);return u(f(e),kM0),u(f(e),wM0)}),N(x$,function(t,n,e){var i=o(hP,t,n);return o(C0(MG0),i,e)}),N(j5,function(t,n,e){if(e[0]===0){u(f(n),PG0),u(f(n),DG0);var i=e[1],x=0;return le(function(p,y){p&&u(f(n),CG0);function T(E){return u(t,E)}return ur(u$[1],T,n,y),1},x,i),u(f(n),LG0),u(f(n),RG0)}u(f(n),jG0);var c=e[1];function s(p){return u(t,p)}return ur(f$[1],s,n,c),u(f(n),GG0)}),N(o$,function(t,n){var e=u(j5,t);return o(C0(NG0),e,n)});var dP=[0,u$,f$,hP,x$,j5,o$],kP=function t(n,e,i,x){return t.fun(n,e,i,x)},a$=function t(n,e,i){return t.fun(n,e,i)},G5=function t(n,e,i,x){return t.fun(n,e,i,x)},c$=function t(n,e,i){return t.fun(n,e,i)};N(kP,function(t,n,e,i){u(f(e),pG0),o(f(e),_G0,mG0),o(t,e,i[1]),u(f(e),yG0),u(f(e),hG0),o(f(e),kG0,dG0);var x=i[2];function c(E){return u(n,E)}R(G5,function(E){return u(t,E)},c,e,x),u(f(e),wG0),u(f(e),EG0),o(f(e),gG0,SG0);var s=i[3];if(s){g(e,FG0);var p=s[1],y=function(E,d){return g(E,bG0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,TG0)}else g(e,OG0);return u(f(e),IG0),u(f(e),AG0)}),N(a$,function(t,n,e){var i=o(kP,t,n);return o(C0(lG0),i,e)}),N(G5,function(t,n,e,i){if(i[0]===0){u(f(e),aG0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Yu[35],s,c,e,x),u(f(e),cG0)}u(f(e),sG0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Be[31],T,y,e,p),u(f(e),vG0)}),N(c$,function(t,n,e){var i=o(G5,t,n);return o(C0(oG0),i,e)});var s$=[0,kP,a$,G5,c$],M5=function t(n,e,i,x){return t.fun(n,e,i,x)},v$=function t(n,e,i){return t.fun(n,e,i)},wP=function t(n,e,i,x){return t.fun(n,e,i,x)},l$=function t(n,e,i){return t.fun(n,e,i)};N(M5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),Aj0),u(f(e),Nj0),o(t,e,x[1]),u(f(e),Cj0);var c=x[2],s=function(E0){return u(n,E0)},p=function(E0){return u(t,E0)};return R(vP[1],p,s,e,c),u(f(e),Pj0),u(f(e),Dj0);case 1:var y=i[1];u(f(e),Lj0),u(f(e),Rj0),o(t,e,y[1]),u(f(e),jj0);var T=y[2],E=function(E0){return u(n,E0)},d=function(E0){return u(t,E0)};return R(bP[1],d,E,e,T),u(f(e),Gj0),u(f(e),Mj0);case 2:var w=i[1];u(f(e),Bj0),u(f(e),qj0),o(t,e,w[1]),u(f(e),Uj0);var G=w[2],A=function(E0){return u(n,E0)},S=function(E0){return u(t,E0)};return R(cP[1],S,A,e,G),u(f(e),Hj0),u(f(e),Xj0);case 3:u(f(e),Yj0);var M=i[1],K=function(E0){return u(n,E0)},V=function(E0){return u(t,E0)};return R($e[13],V,K,e,M),u(f(e),Vj0);case 4:var f0=i[1];u(f(e),zj0),u(f(e),Kj0),o(t,e,f0[1]),u(f(e),Wj0);var m0=f0[2],k0=function(E0){return u(n,E0)},g0=function(E0){return u(t,E0)};return R(y5[1],g0,k0,e,m0),u(f(e),Jj0),u(f(e),$j0);case 5:var e0=i[1];u(f(e),Zj0),u(f(e),Qj0),o(t,e,e0[1]),u(f(e),rG0);var x0=e0[2],l=function(E0){return u(n,E0)},c0=function(E0){return u(t,E0)};return R(h5[1],c0,l,e,x0),u(f(e),eG0),u(f(e),nG0);default:var t0=i[1];u(f(e),tG0),u(f(e),uG0),o(t,e,t0[1]),u(f(e),iG0);var o0=t0[2],w0=function(E0){return u(n,E0)},_0=function(E0){return u(t,E0)};return R(P5[1],_0,w0,e,o0),u(f(e),fG0),u(f(e),xG0)}}),N(v$,function(t,n,e){var i=o(M5,t,n);return o(C0(Ij0),i,e)}),N(wP,function(t,n,e,i){u(f(e),XR0),o(f(e),VR0,YR0);var x=i[1];x?(g(e,zR0),o(t,e,x[1]),g(e,KR0)):g(e,WR0),u(f(e),JR0),u(f(e),$R0),o(f(e),QR0,ZR0);var c=i[2];if(c){g(e,rj0);var s=c[1],p=function(f0){return u(n,f0)};R(M5,function(f0){return u(t,f0)},p,e,s),g(e,ej0)}else g(e,nj0);u(f(e),tj0),u(f(e),uj0),o(f(e),fj0,ij0);var y=i[3];if(y){g(e,xj0);var T=y[1],E=function(f0){return u(t,f0)};ur(dP[5],E,e,T),g(e,oj0)}else g(e,aj0);u(f(e),cj0),u(f(e),sj0),o(f(e),lj0,vj0);var d=i[4];if(d){var w=d[1];g(e,bj0),u(f(e),pj0),o(t,e,w[1]),u(f(e),mj0);var G=w[2],A=function(f0){return u(t,f0)};ur(g1[1],A,e,G),u(f(e),_j0),g(e,yj0)}else g(e,hj0);u(f(e),dj0),u(f(e),kj0),o(f(e),Ej0,wj0);var S=i[5];if(S){g(e,Sj0);var M=S[1],K=function(f0,m0){return g(f0,HR0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,gj0)}else g(e,Fj0);return u(f(e),Tj0),u(f(e),Oj0)}),N(l$,function(t,n,e){var i=o(wP,t,n);return o(C0(UR0),i,e)});var b$=[0,M5,v$,wP,l$],Al=function t(n,e){return t.fun(n,e)},p$=function t(n){return t.fun(n)},B5=function t(n,e,i,x){return t.fun(n,e,i,x)},m$=function t(n,e,i){return t.fun(n,e,i)},q5=function t(n,e,i,x){return t.fun(n,e,i,x)},_$=function t(n,e,i){return t.fun(n,e,i)},EP=function t(n,e,i,x){return t.fun(n,e,i,x)},y$=function t(n,e,i){return t.fun(n,e,i)};N(Al,function(t,n){switch(n){case 0:return g(t,MR0);case 1:return g(t,BR0);default:return g(t,qR0)}}),N(p$,function(t){return o(C0(GR0),Al,t)}),N(B5,function(t,n,e,i){if(i[0]===0){u(f(e),IR0),u(f(e),AR0);var x=i[1],c=0;return le(function(E,d){E&&u(f(e),OR0);function w(G){return u(n,G)}return R(q5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),NR0),u(f(e),CR0)}var s=i[1];u(f(e),PR0),u(f(e),DR0),o(t,e,s[1]),u(f(e),LR0);var p=s[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Rn[1],T,y,e,p),u(f(e),RR0),u(f(e),jR0)}),N(m$,function(t,n,e){var i=o(B5,t,n);return o(C0(TR0),i,e)}),N(q5,function(t,n,e,i){u(f(e),oR0),o(f(e),cR0,aR0);var x=i[1];x?(g(e,sR0),o(Al,e,x[1]),g(e,vR0)):g(e,lR0),u(f(e),bR0),u(f(e),pR0),o(f(e),_R0,mR0);var c=i[2];if(c){g(e,yR0);var s=c[1],p=function(w){return u(n,w)},y=function(w){return u(t,w)};R(Rn[1],y,p,e,s),g(e,hR0)}else g(e,dR0);u(f(e),kR0),u(f(e),wR0),o(f(e),SR0,ER0);var T=i[3];function E(w){return u(n,w)}function d(w){return u(t,w)}return R(Rn[1],d,E,e,T),u(f(e),gR0),u(f(e),FR0)}),N(_$,function(t,n,e){var i=o(q5,t,n);return o(C0(xR0),i,e)}),N(EP,function(t,n,e,i){u(f(e),OL0),o(f(e),AL0,IL0),o(Al,e,i[1]),u(f(e),NL0),u(f(e),CL0),o(f(e),DL0,PL0);var x=i[2];u(f(e),LL0),o(t,e,x[1]),u(f(e),RL0);var c=x[2];function s(V){return u(t,V)}ur(g1[1],s,e,c),u(f(e),jL0),u(f(e),GL0),u(f(e),ML0),o(f(e),qL0,BL0);var p=i[3];if(p){g(e,UL0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(Rn[1],E,T,e,y),g(e,HL0)}else g(e,XL0);u(f(e),YL0),u(f(e),VL0),o(f(e),KL0,zL0);var d=i[4];if(d){g(e,WL0);var w=d[1],G=function(V){return u(n,V)};R(B5,function(V){return u(t,V)},G,e,w),g(e,JL0)}else g(e,$L0);u(f(e),ZL0),u(f(e),QL0),o(f(e),eR0,rR0);var A=i[5];if(A){g(e,nR0);var S=A[1],M=function(V,f0){return g(V,TL0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,tR0)}else g(e,uR0);return u(f(e),iR0),u(f(e),fR0)}),N(y$,function(t,n,e){var i=o(EP,t,n);return o(C0(FL0),i,e)});var h$=[0,Al,p$,B5,m$,q5,_$,EP,y$],SP=function t(n,e,i,x){return t.fun(n,e,i,x)},d$=function t(n,e,i){return t.fun(n,e,i)};N(SP,function(t,n,e,i){u(f(e),fL0),o(f(e),oL0,xL0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(Be[31],s,c,e,x),u(f(e),aL0),u(f(e),cL0),o(f(e),vL0,sL0);var p=i[2];if(p){g(e,lL0);var y=p[1];o(f(e),bL0,y),g(e,pL0)}else g(e,mL0);u(f(e),_L0),u(f(e),yL0),o(f(e),dL0,hL0);var T=i[3];if(T){g(e,kL0);var E=T[1],d=function(G,A){return g(G,iL0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,wL0)}else g(e,EL0);return u(f(e),SL0),u(f(e),gL0)}),N(d$,function(t,n,e){var i=o(SP,t,n);return o(C0(uL0),i,e)});var k$=[0,SP,d$],gP=function t(n,e,i){return t.fun(n,e,i)},w$=function t(n,e){return t.fun(n,e)};N(gP,function(t,n,e){u(f(n),JD0),o(f(n),ZD0,$D0);var i=e[1];if(i){g(n,QD0);var x=i[1],c=function(p,y){return g(p,WD0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,rL0)}else g(n,eL0);return u(f(n),nL0),u(f(n),tL0)}),N(w$,function(t,n){var e=u(gP,t);return o(C0(KD0),e,n)});var E$=[0,gP,w$],FP=function t(n,e){return t.fun(n,e)},S$=function t(n){return t.fun(n)},TP=function t(n,e,i,x){return t.fun(n,e,i,x)},g$=function t(n,e,i){return t.fun(n,e,i)},U5=function t(n,e,i,x){return t.fun(n,e,i,x)},F$=function t(n,e,i){return t.fun(n,e,i)};N(FP,function(t,n){return n?g(t,VD0):g(t,zD0)}),N(S$,function(t){return o(C0(YD0),FP,t)}),N(TP,function(t,n,e,i){u(f(e),UD0),o(t,e,i[1]),u(f(e),HD0);var x=i[2];function c(s){return u(n,s)}return R(U5,function(s){return u(t,s)},c,e,x),u(f(e),XD0)}),N(g$,function(t,n,e){var i=o(TP,t,n);return o(C0(qD0),i,e)}),N(U5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),kP0);var x=i[1],c=function(h0){return u(n,h0)},s=function(h0){return u(t,h0)};return R(Kv[1],s,c,e,x),u(f(e),wP0);case 1:u(f(e),EP0);var p=i[1],y=function(h0){return u(t,h0)};return ur(UW[1],y,e,p),u(f(e),SP0);case 2:u(f(e),gP0);var T=i[1],E=function(h0){return u(n,h0)},d=function(h0){return u(t,h0)};return R(F1[8],d,E,e,T),u(f(e),FP0);case 3:u(f(e),TP0);var w=i[1],G=function(h0){return u(t,h0)};return ur(XW[1],G,e,w),u(f(e),OP0);case 4:u(f(e),IP0);var A=i[1],S=function(h0){return u(t,h0)};return ur(VW[1],S,e,A),u(f(e),AP0);case 5:u(f(e),NP0);var M=i[1],K=function(h0){return u(n,h0)},V=function(h0){return u(t,h0)};return R(cP[1],V,K,e,M),u(f(e),CP0);case 6:u(f(e),PP0);var f0=i[1],m0=function(h0){return u(n,h0)},k0=function(h0){return u(t,h0)};return R(b$[3],k0,m0,e,f0),u(f(e),DP0);case 7:u(f(e),LP0);var g0=i[1],e0=function(h0){return u(n,h0)},x0=function(h0){return u(t,h0)};return R(bP[1],x0,e0,e,g0),u(f(e),RP0);case 8:u(f(e),jP0);var l=i[1],c0=function(h0){return u(n,h0)},t0=function(h0){return u(t,h0)};return R(P5[1],t0,c0,e,l),u(f(e),GP0);case 9:u(f(e),MP0);var o0=i[1],w0=function(h0){return u(n,h0)},_0=function(h0){return u(t,h0)};return R(QJ[5],_0,w0,e,o0),u(f(e),BP0);case 10:u(f(e),qP0);var E0=i[1],U0=function(h0){return u(n,h0)},b=function(h0){return u(t,h0)};return R(e$[1],b,U0,e,E0),u(f(e),UP0);case 11:u(f(e),HP0);var R0=i[1],X=function(h0){return u(n,h0)},s0=function(h0){return u(t,h0)};return R(y5[1],s0,X,e,R0),u(f(e),XP0);case 12:u(f(e),YP0);var hr=i[1],Ar=function(h0){return u(n,h0)},or=function(h0){return u(t,h0)};return R(h5[1],or,Ar,e,hr),u(f(e),VP0);case 13:u(f(e),zP0);var W0=i[1],Lr=function(h0){return u(n,h0)},Tr=function(h0){return u(t,h0)};return R(vP[1],Tr,Lr,e,W0),u(f(e),KP0);case 14:u(f(e),WP0);var Hr=i[1],Or=function(h0){return u(n,h0)},fr=function(h0){return u(t,h0)};return R(hJ[1],fr,Or,e,Hr),u(f(e),JP0);case 15:u(f(e),$P0);var Rr=i[1],Wr=function(h0){return u(t,h0)};return ur(E$[1],Wr,e,Rr),u(f(e),ZP0);case 16:u(f(e),QP0);var Jr=i[1],ar=function(h0){return u(n,h0)},_r=function(h0){return u(t,h0)};return R(YJ[7],_r,ar,e,Jr),u(f(e),rD0);case 17:u(f(e),eD0);var Ir=i[1],fe=function(h0){return u(n,h0)},v0=function(h0){return u(t,h0)};return R(s$[1],v0,fe,e,Ir),u(f(e),nD0);case 18:u(f(e),tD0);var P=i[1],L=function(h0){return u(n,h0)},Q=function(h0){return u(t,h0)};return R(dP[3],Q,L,e,P),u(f(e),uD0);case 19:u(f(e),iD0);var i0=i[1],l0=function(h0){return u(n,h0)},S0=function(h0){return u(t,h0)};return R(k$[1],S0,l0,e,i0),u(f(e),fD0);case 20:u(f(e),xD0);var T0=i[1],rr=function(h0){return u(n,h0)},L0=function(h0){return u(t,h0)};return R(wJ[1],L0,rr,e,T0),u(f(e),oD0);case 21:u(f(e),aD0);var B=i[1],Z=function(h0){return u(n,h0)},p0=function(h0){return u(t,h0)};return R(gJ[1],p0,Z,e,B),u(f(e),cD0);case 22:u(f(e),sD0);var b0=i[1],O0=function(h0){return u(n,h0)},M0=function(h0){return u(t,h0)};return R(OJ[1],M0,O0,e,b0),u(f(e),vD0);case 23:u(f(e),lD0);var er=i[1],yr=function(h0){return u(n,h0)},vr=function(h0){return u(t,h0)};return R(As[5],vr,yr,e,er),u(f(e),bD0);case 24:u(f(e),pD0);var $0=i[1],Er=function(h0){return u(n,h0)},Mr=function(h0){return u(t,h0)};return R(GW[2],Mr,Er,e,$0),u(f(e),mD0);case 25:u(f(e),_D0);var Br=i[1],qr=function(h0){return u(n,h0)},jr=function(h0){return u(t,h0)};return R(h$[7],jr,qr,e,Br),u(f(e),yD0);case 26:u(f(e),hD0);var $r=i[1],ne=function(h0){return u(n,h0)},Qr=function(h0){return u(t,h0)};return R(P5[1],Qr,ne,e,$r),u(f(e),dD0);case 27:u(f(e),kD0);var be=i[1],ae=function(h0){return u(n,h0)},pe=function(h0){return u(t,h0)};return R(BW[1],pe,ae,e,be),u(f(e),wD0);case 28:u(f(e),ED0);var oe=i[1],ce=function(h0){return u(n,h0)},ge=function(h0){return u(t,h0)};return R(tJ[1],ge,ce,e,oe),u(f(e),SD0);case 29:u(f(e),gD0);var q0=i[1],gr=function(h0){return u(n,h0)},_=function(h0){return u(t,h0)};return R(eJ[2],_,gr,e,q0),u(f(e),FD0);case 30:u(f(e),TD0);var k=i[1],I=function(h0){return u(n,h0)},U=function(h0){return u(t,h0)};return R(iJ[1],U,I,e,k),u(f(e),OD0);case 31:u(f(e),ID0);var Y=i[1],y0=function(h0){return u(n,h0)},P0=function(h0){return u(t,h0)};return R(cJ[2],P0,y0,e,Y),u(f(e),AD0);case 32:u(f(e),ND0);var I0=i[1],D=function(h0){return u(n,h0)},u0=function(h0){return u(t,h0)};return R(y5[1],u0,D,e,I0),u(f(e),CD0);case 33:u(f(e),PD0);var H0=i[1],J0=function(h0){return u(n,h0)},ir=function(h0){return u(t,h0)};return R(h5[1],ir,J0,e,H0),u(f(e),DD0);case 34:u(f(e),LD0);var Q0=i[1],F0=function(h0){return u(n,h0)},Sr=function(h0){return u(t,h0)};return R(Il[2],Sr,F0,e,Q0),u(f(e),RD0);case 35:u(f(e),jD0);var mr=i[1],Cr=function(h0){return u(n,h0)},sr=function(h0){return u(t,h0)};return R(_J[1],sr,Cr,e,mr),u(f(e),GD0);default:u(f(e),MD0);var Pr=i[1],K0=function(h0){return u(n,h0)},Ur=function(h0){return u(t,h0)};return R(KW[1],Ur,K0,e,Pr),u(f(e),BD0)}}),N(F$,function(t,n,e){var i=o(U5,t,n);return o(C0(dP0),i,e)}),mu(z3r,Yu,[0,Kv,GW,BW,UW,XW,VW,KW,y5,h5,eJ,tJ,iJ,cJ,Il,_J,hJ,wJ,gJ,OJ,YJ,P5,cP,vP,bP,QJ,e$,dP,s$,b$,h$,k$,E$,FP,S$,TP,g$,U5,F$]);var OP=function t(n,e,i,x){return t.fun(n,e,i,x)},T$=function t(n,e,i){return t.fun(n,e,i)},H5=function t(n,e,i){return t.fun(n,e,i)},O$=function t(n,e){return t.fun(n,e)};N(OP,function(t,n,e,i){u(f(e),_P0),o(n,e,i[1]),u(f(e),yP0);var x=i[2];return ur(H5,function(c){return u(t,c)},e,x),u(f(e),hP0)}),N(T$,function(t,n,e){var i=o(OP,t,n);return o(C0(mP0),i,e)}),N(H5,function(t,n,e){u(f(n),oP0),o(f(n),cP0,aP0);var i=e[1];if(i){g(n,sP0);var x=i[1],c=function(p,y){return g(p,xP0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,vP0)}else g(n,lP0);return u(f(n),bP0),u(f(n),pP0)}),N(O$,function(t,n){var e=u(H5,t);return o(C0(fP0),e,n)});var I$=[0,OP,T$,H5,O$],IP=function t(n,e,i,x){return t.fun(n,e,i,x)},A$=function t(n,e,i){return t.fun(n,e,i)};N(IP,function(t,n,e,i){if(i[0]===0){u(f(e),nP0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R($e[13],s,c,e,x),u(f(e),tP0)}u(f(e),uP0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(I$[1],T,y,e,p),u(f(e),iP0)}),N(A$,function(t,n,e){var i=o(IP,t,n);return o(C0(eP0),i,e)});var N$=[0,I$,IP,A$],AP=function t(n,e,i,x){return t.fun(n,e,i,x)},C$=function t(n,e,i){return t.fun(n,e,i)},X5=function t(n,e,i,x){return t.fun(n,e,i,x)},P$=function t(n,e,i){return t.fun(n,e,i)};N(AP,function(t,n,e,i){u(f(e),ZC0),o(t,e,i[1]),u(f(e),QC0);var x=i[2];function c(s){return u(n,s)}return R(X5,function(s){return u(t,s)},c,e,x),u(f(e),rP0)}),N(C$,function(t,n,e){var i=o(AP,t,n);return o(C0($C0),i,e)}),N(X5,function(t,n,e,i){u(f(e),jC0),o(f(e),MC0,GC0);var x=i[1];u(f(e),BC0);var c=0;le(function(E,d){E&&u(f(e),RC0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(N$[2],G,w,e,d),1},c,x),u(f(e),qC0),u(f(e),UC0),u(f(e),HC0),o(f(e),YC0,XC0);var s=i[2];if(s){g(e,VC0);var p=s[1],y=function(E,d){u(f(E),DC0);var w=0;return le(function(G,A){G&&u(f(E),PC0);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),LC0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,zC0)}else g(e,KC0);return u(f(e),WC0),u(f(e),JC0)}),N(P$,function(t,n,e){var i=o(X5,t,n);return o(C0(CC0),i,e)});var NP=function t(n,e,i,x){return t.fun(n,e,i,x)},D$=function t(n,e,i){return t.fun(n,e,i)},Y5=function t(n,e,i,x){return t.fun(n,e,i,x)},L$=function t(n,e,i){return t.fun(n,e,i)},wee=[0,AP,C$,X5,P$];N(NP,function(t,n,e,i){u(f(e),IC0),o(t,e,i[1]),u(f(e),AC0);var x=i[2];function c(s){return u(n,s)}return R(Y5,function(s){return u(t,s)},c,e,x),u(f(e),NC0)}),N(D$,function(t,n,e){var i=o(NP,t,n);return o(C0(OC0),i,e)}),N(Y5,function(t,n,e,i){u(f(e),mC0),o(f(e),yC0,_C0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),hC0),u(f(e),dC0),o(f(e),wC0,kC0);var p=i[2];if(p){g(e,EC0);var y=p[1],T=function(d,w){return g(d,pC0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,SC0)}else g(e,gC0);return u(f(e),FC0),u(f(e),TC0)}),N(L$,function(t,n,e){var i=o(Y5,t,n);return o(C0(bC0),i,e)});var CP=[0,NP,D$,Y5,L$],V5=function t(n,e,i,x){return t.fun(n,e,i,x)},R$=function t(n,e,i){return t.fun(n,e,i)};N(V5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),oC0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Be[31],s,c,e,x),u(f(e),aC0);case 1:u(f(e),cC0);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(CP[1],T,y,e,p),u(f(e),sC0);default:return u(f(e),vC0),o(t,e,i[1]),u(f(e),lC0)}}),N(R$,function(t,n,e){var i=o(V5,t,n);return o(C0(xC0),i,e)});var PP=function t(n,e,i,x){return t.fun(n,e,i,x)},j$=function t(n,e,i){return t.fun(n,e,i)};N(PP,function(t,n,e,i){u(f(e),zN0),o(f(e),WN0,KN0);var x=i[1];u(f(e),JN0);var c=0;le(function(E,d){E&&u(f(e),VN0);function w(G){return u(n,G)}return R(V5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),$N0),u(f(e),ZN0),u(f(e),QN0),o(f(e),eC0,rC0);var s=i[2];if(s){g(e,nC0);var p=s[1],y=function(E,d){u(f(E),XN0);var w=0;return le(function(G,A){G&&u(f(E),HN0);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),YN0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,tC0)}else g(e,uC0);return u(f(e),iC0),u(f(e),fC0)}),N(j$,function(t,n,e){var i=o(PP,t,n);return o(C0(UN0),i,e)});var G$=[0,V5,R$,PP,j$],z5=function t(n,e){return t.fun(n,e)},M$=function t(n){return t.fun(n)},DP=function t(n,e,i){return t.fun(n,e,i)},B$=function t(n,e){return t.fun(n,e)},K5=function t(n,e){return t.fun(n,e)},q$=function t(n){return t.fun(n)};N(z5,function(t,n){u(f(t),NN0),o(f(t),PN0,CN0);var e=n[1];o(f(t),DN0,e),u(f(t),LN0),u(f(t),RN0),o(f(t),GN0,jN0);var i=n[2];return o(f(t),MN0,i),u(f(t),BN0),u(f(t),qN0)}),N(M$,function(t){return o(C0(AN0),z5,t)}),N(DP,function(t,n,e){return u(f(n),TN0),o(t,n,e[1]),u(f(n),ON0),o(K5,n,e[2]),u(f(n),IN0)}),N(B$,function(t,n){var e=u(DP,t);return o(C0(FN0),e,n)}),N(K5,function(t,n){u(f(t),mN0),o(f(t),yN0,_N0),o(z5,t,n[1]),u(f(t),hN0),u(f(t),dN0),o(f(t),wN0,kN0);var e=n[2];return o(f(t),EN0,e),u(f(t),SN0),u(f(t),gN0)}),N(q$,function(t){return o(C0(pN0),K5,t)});var U$=[0,z5,M$,DP,B$,K5,q$],LP=function t(n,e,i,x){return t.fun(n,e,i,x)},H$=function t(n,e,i){return t.fun(n,e,i)};N(LP,function(t,n,e,i){u(f(e),WA0),o(f(e),$A0,JA0);var x=i[1];u(f(e),ZA0);var c=0;le(function(w,G){w&&u(f(e),KA0);function A(S){return u(t,S)}return ur(U$[3],A,e,G),1},c,x),u(f(e),QA0),u(f(e),rN0),u(f(e),eN0),o(f(e),tN0,nN0);var s=i[2];u(f(e),uN0);var p=0;le(function(w,G){w&&u(f(e),zA0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(Be[31],S,A,e,G),1},p,s),u(f(e),iN0),u(f(e),fN0),u(f(e),xN0),o(f(e),aN0,oN0);var y=i[3];if(y){g(e,cN0);var T=y[1],E=function(w,G){return g(w,VA0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,sN0)}else g(e,vN0);return u(f(e),lN0),u(f(e),bN0)}),N(H$,function(t,n,e){var i=o(LP,t,n);return o(C0(YA0),i,e)});var RP=[0,U$,LP,H$],jP=function t(n,e,i,x){return t.fun(n,e,i,x)},X$=function t(n,e,i){return t.fun(n,e,i)};N(jP,function(t,n,e,i){u(f(e),FA0),o(f(e),OA0,TA0);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(Be[31],s,c,e,x),u(f(e),IA0),u(f(e),AA0),o(f(e),CA0,NA0);var p=i[2];u(f(e),PA0),o(t,e,p[1]),u(f(e),DA0);var y=p[2];function T(S){return u(n,S)}function E(S){return u(t,S)}R(RP[2],E,T,e,y),u(f(e),LA0),u(f(e),RA0),u(f(e),jA0),o(f(e),MA0,GA0);var d=i[3];if(d){g(e,BA0);var w=d[1],G=function(S,M){return g(S,gA0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,qA0)}else g(e,UA0);return u(f(e),HA0),u(f(e),XA0)}),N(X$,function(t,n,e){var i=o(jP,t,n);return o(C0(SA0),i,e)});var Y$=[0,jP,X$],T1=function t(n,e,i,x){return t.fun(n,e,i,x)},V$=function t(n,e,i){return t.fun(n,e,i)},GP=function t(n,e,i,x){return t.fun(n,e,i,x)},z$=function t(n,e,i){return t.fun(n,e,i)},W5=function t(n,e,i,x){return t.fun(n,e,i,x)},K$=function t(n,e,i){return t.fun(n,e,i)};N(T1,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),lA0),u(f(e),bA0),o(n,e,x[1]),u(f(e),pA0);var c=x[2],s=function(S){return u(t,S)};return ur(Tl[2],s,e,c),u(f(e),mA0),u(f(e),_A0);case 1:u(f(e),yA0);var p=i[1],y=function(S){return u(n,S)},T=function(S){return u(t,S)};return R(Rn[1],T,y,e,p),u(f(e),hA0);case 2:u(f(e),dA0);var E=i[1],d=function(S){return u(t,S)};return ur(Bp[1],d,e,E),u(f(e),kA0);default:u(f(e),wA0);var w=i[1],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(qp[1],A,G,e,w),u(f(e),EA0)}}),N(V$,function(t,n,e){var i=o(T1,t,n);return o(C0(vA0),i,e)}),N(GP,function(t,n,e,i){u(f(e),aA0),o(t,e,i[1]),u(f(e),cA0);var x=i[2];function c(s){return u(n,s)}return R(W5,function(s){return u(t,s)},c,e,x),u(f(e),sA0)}),N(z$,function(t,n,e){var i=o(GP,t,n);return o(C0(oA0),i,e)}),N(W5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),ZO0),o(f(e),rI0,QO0);var x=i[1],c=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},c,e,x),u(f(e),eI0),u(f(e),nI0),o(f(e),uI0,tI0);var s=i[2],p=function(s0){return u(n,s0)},y=function(s0){return u(t,s0)};R(Be[31],y,p,e,s),u(f(e),iI0),u(f(e),fI0),o(f(e),oI0,xI0);var T=i[3];return o(f(e),aI0,T),u(f(e),cI0),u(f(e),sI0);case 1:var E=i[2];u(f(e),vI0),o(f(e),bI0,lI0);var d=i[1],w=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w,e,d),u(f(e),pI0),u(f(e),mI0),o(f(e),yI0,_I0),u(f(e),hI0),o(t,e,E[1]),u(f(e),dI0);var G=E[2],A=function(s0){return u(n,s0)},S=function(s0){return u(t,s0)};return R(As[5],S,A,e,G),u(f(e),kI0),u(f(e),wI0),u(f(e),EI0);case 2:var M=i[3],K=i[2];u(f(e),SI0),o(f(e),FI0,gI0);var V=i[1],f0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},f0,e,V),u(f(e),TI0),u(f(e),OI0),o(f(e),AI0,II0),u(f(e),NI0),o(t,e,K[1]),u(f(e),CI0);var m0=K[2],k0=function(s0){return u(n,s0)},g0=function(s0){return u(t,s0)};if(R(As[5],g0,k0,e,m0),u(f(e),PI0),u(f(e),DI0),u(f(e),LI0),o(f(e),jI0,RI0),M){g(e,GI0);var e0=M[1],x0=function(s0,hr){return g(s0,$O0)},l=function(s0){return u(t,s0)};R(Dr[1],l,x0,e,e0),g(e,MI0)}else g(e,BI0);return u(f(e),qI0),u(f(e),UI0);default:var c0=i[3],t0=i[2];u(f(e),HI0),o(f(e),YI0,XI0);var o0=i[1],w0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w0,e,o0),u(f(e),VI0),u(f(e),zI0),o(f(e),WI0,KI0),u(f(e),JI0),o(t,e,t0[1]),u(f(e),$I0);var _0=t0[2],E0=function(s0){return u(n,s0)},U0=function(s0){return u(t,s0)};if(R(As[5],U0,E0,e,_0),u(f(e),ZI0),u(f(e),QI0),u(f(e),rA0),o(f(e),nA0,eA0),c0){g(e,tA0);var b=c0[1],R0=function(s0,hr){return g(s0,JO0)},X=function(s0){return u(t,s0)};R(Dr[1],X,R0,e,b),g(e,uA0)}else g(e,iA0);return u(f(e),fA0),u(f(e),xA0)}}),N(K$,function(t,n,e){var i=o(W5,t,n);return o(C0(WO0),i,e)});var W$=[0,T1,V$,GP,z$,W5,K$],MP=function t(n,e,i,x){return t.fun(n,e,i,x)},J$=function t(n,e,i){return t.fun(n,e,i)},J5=function t(n,e,i,x){return t.fun(n,e,i,x)},$$=function t(n,e,i){return t.fun(n,e,i)};N(MP,function(t,n,e,i){u(f(e),VO0),o(t,e,i[1]),u(f(e),zO0);var x=i[2];function c(s){return u(n,s)}return R(J5,function(s){return u(t,s)},c,e,x),u(f(e),KO0)}),N(J$,function(t,n,e){var i=o(MP,t,n);return o(C0(YO0),i,e)}),N(J5,function(t,n,e,i){u(f(e),PO0),o(f(e),LO0,DO0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),RO0),u(f(e),jO0),o(f(e),MO0,GO0);var p=i[2];if(p){g(e,BO0);var y=p[1],T=function(d,w){return g(d,CO0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,qO0)}else g(e,UO0);return u(f(e),HO0),u(f(e),XO0)}),N($$,function(t,n,e){var i=o(J5,t,n);return o(C0(NO0),i,e)});var Z$=[0,MP,J$,J5,$$],$5=function t(n,e,i,x){return t.fun(n,e,i,x)},Q$=function t(n,e,i){return t.fun(n,e,i)},BP=function t(n,e,i,x){return t.fun(n,e,i,x)},rZ=function t(n,e,i){return t.fun(n,e,i)};N($5,function(t,n,e,i){if(i[0]===0){u(f(e),TO0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(W$[3],s,c,e,x),u(f(e),OO0)}u(f(e),IO0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Z$[1],T,y,e,p),u(f(e),AO0)}),N(Q$,function(t,n,e){var i=o($5,t,n);return o(C0(FO0),i,e)}),N(BP,function(t,n,e,i){u(f(e),vO0),o(f(e),bO0,lO0);var x=i[1];u(f(e),pO0);var c=0;le(function(E,d){E&&u(f(e),sO0);function w(G){return u(n,G)}return R($5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),mO0),u(f(e),_O0),u(f(e),yO0),o(f(e),dO0,hO0);var s=i[2];if(s){g(e,kO0);var p=s[1],y=function(E,d){u(f(E),aO0);var w=0;return le(function(G,A){G&&u(f(E),oO0);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),cO0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,wO0)}else g(e,EO0);return u(f(e),SO0),u(f(e),gO0)}),N(rZ,function(t,n,e){var i=o(BP,t,n);return o(C0(xO0),i,e)});var eZ=[0,W$,Z$,$5,Q$,BP,rZ],qP=function t(n,e,i,x){return t.fun(n,e,i,x)},nZ=function t(n,e,i){return t.fun(n,e,i)};N(qP,function(t,n,e,i){u(f(e),zT0),o(f(e),WT0,KT0);var x=i[1];u(f(e),JT0);var c=0;le(function(E,d){E&&u(f(e),VT0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(Be[31],G,w,e,d),1},c,x),u(f(e),$T0),u(f(e),ZT0),u(f(e),QT0),o(f(e),eO0,rO0);var s=i[2];if(s){g(e,nO0);var p=s[1],y=function(E,d){return g(E,YT0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,tO0)}else g(e,uO0);return u(f(e),iO0),u(f(e),fO0)}),N(nZ,function(t,n,e){var i=o(qP,t,n);return o(C0(XT0),i,e)});var tZ=[0,qP,nZ],Z5=function t(n,e){return t.fun(n,e)},uZ=function t(n){return t.fun(n)},UP=function t(n,e,i,x){return t.fun(n,e,i,x)},iZ=function t(n,e,i){return t.fun(n,e,i)};N(Z5,function(t,n){switch(n){case 0:return g(t,RT0);case 1:return g(t,jT0);case 2:return g(t,GT0);case 3:return g(t,MT0);case 4:return g(t,BT0);case 5:return g(t,qT0);case 6:return g(t,UT0);default:return g(t,HT0)}}),N(uZ,function(t){return o(C0(LT0),Z5,t)}),N(UP,function(t,n,e,i){u(f(e),hT0),o(f(e),kT0,dT0),o(Z5,e,i[1]),u(f(e),wT0),u(f(e),ET0),o(f(e),gT0,ST0);var x=i[2];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),FT0),u(f(e),TT0),o(f(e),IT0,OT0);var p=i[3];if(p){g(e,AT0);var y=p[1],T=function(d,w){return g(d,yT0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,NT0)}else g(e,CT0);return u(f(e),PT0),u(f(e),DT0)}),N(iZ,function(t,n,e){var i=o(UP,t,n);return o(C0(_T0),i,e)});var fZ=[0,Z5,uZ,UP,iZ],Q5=function t(n,e){return t.fun(n,e)},xZ=function t(n){return t.fun(n)},HP=function t(n,e,i,x){return t.fun(n,e,i,x)},oZ=function t(n,e,i){return t.fun(n,e,i)};N(Q5,function(t,n){switch(n){case 0:return g(t,WF0);case 1:return g(t,JF0);case 2:return g(t,$F0);case 3:return g(t,ZF0);case 4:return g(t,QF0);case 5:return g(t,rT0);case 6:return g(t,eT0);case 7:return g(t,nT0);case 8:return g(t,tT0);case 9:return g(t,uT0);case 10:return g(t,iT0);case 11:return g(t,fT0);case 12:return g(t,xT0);case 13:return g(t,oT0);case 14:return g(t,aT0);case 15:return g(t,cT0);case 16:return g(t,sT0);case 17:return g(t,vT0);case 18:return g(t,lT0);case 19:return g(t,bT0);case 20:return g(t,pT0);default:return g(t,mT0)}}),N(xZ,function(t){return o(C0(KF0),Q5,t)}),N(HP,function(t,n,e,i){u(f(e),OF0),o(f(e),AF0,IF0),o(Q5,e,i[1]),u(f(e),NF0),u(f(e),CF0),o(f(e),DF0,PF0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Be[31],s,c,e,x),u(f(e),LF0),u(f(e),RF0),o(f(e),GF0,jF0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Be[31],T,y,e,p),u(f(e),MF0),u(f(e),BF0),o(f(e),UF0,qF0);var E=i[4];if(E){g(e,HF0);var d=E[1],w=function(A,S){return g(A,TF0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,XF0)}else g(e,YF0);return u(f(e),VF0),u(f(e),zF0)}),N(oZ,function(t,n,e){var i=o(HP,t,n);return o(C0(FF0),i,e)});var aZ=[0,Q5,xZ,HP,oZ],rm=function t(n,e){return t.fun(n,e)},cZ=function t(n){return t.fun(n)},XP=function t(n,e,i,x){return t.fun(n,e,i,x)},sZ=function t(n,e,i){return t.fun(n,e,i)};N(rm,function(t,n){switch(n){case 0:return g(t,sF0);case 1:return g(t,vF0);case 2:return g(t,lF0);case 3:return g(t,bF0);case 4:return g(t,pF0);case 5:return g(t,mF0);case 6:return g(t,_F0);case 7:return g(t,yF0);case 8:return g(t,hF0);case 9:return g(t,dF0);case 10:return g(t,kF0);case 11:return g(t,wF0);case 12:return g(t,EF0);case 13:return g(t,SF0);default:return g(t,gF0)}}),N(cZ,function(t){return o(C0(cF0),rm,t)}),N(XP,function(t,n,e,i){u(f(e),qg0),o(f(e),Hg0,Ug0);var x=i[1];x?(g(e,Xg0),o(rm,e,x[1]),g(e,Yg0)):g(e,Vg0),u(f(e),zg0),u(f(e),Kg0),o(f(e),Jg0,Wg0);var c=i[2];function s(S){return u(n,S)}function p(S){return u(t,S)}R(di[5],p,s,e,c),u(f(e),$g0),u(f(e),Zg0),o(f(e),rF0,Qg0);var y=i[3];function T(S){return u(n,S)}function E(S){return u(t,S)}R(Be[31],E,T,e,y),u(f(e),eF0),u(f(e),nF0),o(f(e),uF0,tF0);var d=i[4];if(d){g(e,iF0);var w=d[1],G=function(S,M){return g(S,Bg0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,fF0)}else g(e,xF0);return u(f(e),oF0),u(f(e),aF0)}),N(sZ,function(t,n,e){var i=o(XP,t,n);return o(C0(Mg0),i,e)});var vZ=[0,rm,cZ,XP,sZ],em=function t(n,e){return t.fun(n,e)},lZ=function t(n){return t.fun(n)},YP=function t(n,e,i,x){return t.fun(n,e,i,x)},bZ=function t(n,e,i){return t.fun(n,e,i)};N(em,function(t,n){return n?g(t,jg0):g(t,Gg0)}),N(lZ,function(t){return o(C0(Rg0),em,t)}),N(YP,function(t,n,e,i){u(f(e),pg0),o(f(e),_g0,mg0),o(em,e,i[1]),u(f(e),yg0),u(f(e),hg0),o(f(e),kg0,dg0);var x=i[2];function c(w){return u(n,w)}function s(w){return u(t,w)}R(Be[31],s,c,e,x),u(f(e),wg0),u(f(e),Eg0),o(f(e),gg0,Sg0);var p=i[3];o(f(e),Fg0,p),u(f(e),Tg0),u(f(e),Og0),o(f(e),Ag0,Ig0);var y=i[4];if(y){g(e,Ng0);var T=y[1],E=function(w,G){return g(w,bg0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Cg0)}else g(e,Pg0);return u(f(e),Dg0),u(f(e),Lg0)}),N(bZ,function(t,n,e){var i=o(YP,t,n);return o(C0(lg0),i,e)});var pZ=[0,em,lZ,YP,bZ],nm=function t(n,e){return t.fun(n,e)},mZ=function t(n){return t.fun(n)},VP=function t(n,e,i,x){return t.fun(n,e,i,x)},_Z=function t(n,e,i){return t.fun(n,e,i)};N(nm,function(t,n){switch(n){case 0:return g(t,cg0);case 1:return g(t,sg0);default:return g(t,vg0)}}),N(mZ,function(t){return o(C0(ag0),nm,t)}),N(VP,function(t,n,e,i){u(f(e),HS0),o(f(e),YS0,XS0),o(nm,e,i[1]),u(f(e),VS0),u(f(e),zS0),o(f(e),WS0,KS0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Be[31],s,c,e,x),u(f(e),JS0),u(f(e),$S0),o(f(e),QS0,ZS0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Be[31],T,y,e,p),u(f(e),rg0),u(f(e),eg0),o(f(e),tg0,ng0);var E=i[4];if(E){g(e,ug0);var d=E[1],w=function(A,S){return g(A,US0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,ig0)}else g(e,fg0);return u(f(e),xg0),u(f(e),og0)}),N(_Z,function(t,n,e){var i=o(VP,t,n);return o(C0(qS0),i,e)});var yZ=[0,nm,mZ,VP,_Z],zP=function t(n,e,i,x){return t.fun(n,e,i,x)},hZ=function t(n,e,i){return t.fun(n,e,i)};N(zP,function(t,n,e,i){u(f(e),kS0),o(f(e),ES0,wS0);var x=i[1];function c(K){return u(n,K)}function s(K){return u(t,K)}R(Be[31],s,c,e,x),u(f(e),SS0),u(f(e),gS0),o(f(e),TS0,FS0);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R(Be[31],T,y,e,p),u(f(e),OS0),u(f(e),IS0),o(f(e),NS0,AS0);var E=i[3];function d(K){return u(n,K)}function w(K){return u(t,K)}R(Be[31],w,d,e,E),u(f(e),CS0),u(f(e),PS0),o(f(e),LS0,DS0);var G=i[4];if(G){g(e,RS0);var A=G[1],S=function(K,V){return g(K,dS0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,jS0)}else g(e,GS0);return u(f(e),MS0),u(f(e),BS0)}),N(hZ,function(t,n,e){var i=o(zP,t,n);return o(C0(hS0),i,e)});var dZ=[0,zP,hZ],tm=function t(n,e,i,x){return t.fun(n,e,i,x)},kZ=function t(n,e,i){return t.fun(n,e,i)};N(tm,function(t,n,e,i){if(i[0]===0){u(f(e),pS0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Be[31],s,c,e,x),u(f(e),mS0)}u(f(e),_S0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(CP[1],T,y,e,p),u(f(e),yS0)}),N(kZ,function(t,n,e){var i=o(tm,t,n);return o(C0(bS0),i,e)});var KP=function t(n,e,i,x){return t.fun(n,e,i,x)},wZ=function t(n,e,i){return t.fun(n,e,i)},um=function t(n,e,i,x){return t.fun(n,e,i,x)},EZ=function t(n,e,i){return t.fun(n,e,i)};N(KP,function(t,n,e,i){u(f(e),sS0),o(t,e,i[1]),u(f(e),vS0);var x=i[2];function c(s){return u(n,s)}return R(um,function(s){return u(t,s)},c,e,x),u(f(e),lS0)}),N(wZ,function(t,n,e){var i=o(KP,t,n);return o(C0(cS0),i,e)}),N(um,function(t,n,e,i){u(f(e),JE0),o(f(e),ZE0,$E0);var x=i[1];u(f(e),QE0);var c=0;le(function(E,d){E&&u(f(e),WE0);function w(G){return u(n,G)}return R(tm,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),rS0),u(f(e),eS0),u(f(e),nS0),o(f(e),uS0,tS0);var s=i[2];if(s){g(e,iS0);var p=s[1],y=function(E,d){u(f(E),zE0);var w=0;return le(function(G,A){G&&u(f(E),VE0);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),KE0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,fS0)}else g(e,xS0);return u(f(e),oS0),u(f(e),aS0)}),N(EZ,function(t,n,e){var i=o(um,t,n);return o(C0(YE0),i,e)});var WP=[0,KP,wZ,um,EZ],JP=function t(n,e,i,x){return t.fun(n,e,i,x)},SZ=function t(n,e,i){return t.fun(n,e,i)};N(JP,function(t,n,e,i){u(f(e),hE0),o(f(e),kE0,dE0);var x=i[1];function c(f0){return u(n,f0)}function s(f0){return u(t,f0)}R(Be[31],s,c,e,x),u(f(e),wE0),u(f(e),EE0),o(f(e),gE0,SE0);var p=i[2];if(p){g(e,FE0);var y=p[1],T=function(f0){return u(n,f0)},E=function(f0){return u(t,f0)};R(Be[2][1],E,T,e,y),g(e,TE0)}else g(e,OE0);u(f(e),IE0),u(f(e),AE0),o(f(e),CE0,NE0);var d=i[3];if(d){g(e,PE0);var w=d[1],G=function(f0){return u(n,f0)},A=function(f0){return u(t,f0)};R(WP[1],A,G,e,w),g(e,DE0)}else g(e,LE0);u(f(e),RE0),u(f(e),jE0),o(f(e),ME0,GE0);var S=i[4];if(S){g(e,BE0);var M=S[1],K=function(f0,m0){return g(f0,yE0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,qE0)}else g(e,UE0);return u(f(e),HE0),u(f(e),XE0)}),N(SZ,function(t,n,e){var i=o(JP,t,n);return o(C0(_E0),i,e)});var gZ=[0,JP,SZ],$P=function t(n,e,i,x){return t.fun(n,e,i,x)},FZ=function t(n,e,i){return t.fun(n,e,i)};N($P,function(t,n,e,i){u(f(e),Kw0),o(f(e),Jw0,Ww0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Be[31],s,c,e,x),u(f(e),$w0),u(f(e),Zw0),o(f(e),rE0,Qw0);var p=i[2];if(p){g(e,eE0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(Be[2][1],E,T,e,y),g(e,nE0)}else g(e,tE0);u(f(e),uE0),u(f(e),iE0),o(f(e),xE0,fE0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R(WP[1],G,w,e,d),u(f(e),oE0),u(f(e),aE0),o(f(e),sE0,cE0);var A=i[4];if(A){g(e,vE0);var S=A[1],M=function(V,f0){return g(V,zw0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,lE0)}else g(e,bE0);return u(f(e),pE0),u(f(e),mE0)}),N(FZ,function(t,n,e){var i=o($P,t,n);return o(C0(Vw0),i,e)});var ZP=[0,$P,FZ],QP=function t(n,e,i,x){return t.fun(n,e,i,x)},TZ=function t(n,e,i){return t.fun(n,e,i)};N(QP,function(t,n,e,i){u(f(e),Cw0),o(f(e),Dw0,Pw0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(ZP[1],s,c,e,x),u(f(e),Lw0),u(f(e),Rw0),o(f(e),Gw0,jw0),o(n,e,i[2]),u(f(e),Mw0),u(f(e),Bw0),o(f(e),Uw0,qw0);var p=i[3];return o(f(e),Hw0,p),u(f(e),Xw0),u(f(e),Yw0)}),N(TZ,function(t,n,e){var i=o(QP,t,n);return o(C0(Nw0),i,e)});var OZ=[0,QP,TZ],im=function t(n,e,i,x){return t.fun(n,e,i,x)},IZ=function t(n,e,i){return t.fun(n,e,i)},rD=function t(n,e,i,x){return t.fun(n,e,i,x)},AZ=function t(n,e,i){return t.fun(n,e,i)};N(im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),gw0);var x=i[1],c=function(w){return u(n,w)},s=function(w){return u(t,w)};return R(Rn[1],s,c,e,x),u(f(e),Fw0);case 1:u(f(e),Tw0);var p=i[1],y=function(w){return u(t,w)};return ur(Bp[1],y,e,p),u(f(e),Ow0);default:u(f(e),Iw0);var T=i[1],E=function(w){return u(n,w)},d=function(w){return u(t,w)};return R(Be[31],d,E,e,T),u(f(e),Aw0)}}),N(IZ,function(t,n,e){var i=o(im,t,n);return o(C0(Sw0),i,e)}),N(rD,function(t,n,e,i){u(f(e),ow0),o(f(e),cw0,aw0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(Be[31],s,c,e,x),u(f(e),sw0),u(f(e),vw0),o(f(e),bw0,lw0);var p=i[2];function y(G){return u(n,G)}R(im,function(G){return u(t,G)},y,e,p),u(f(e),pw0),u(f(e),mw0),o(f(e),yw0,_w0);var T=i[3];if(T){g(e,hw0);var E=T[1],d=function(G,A){return g(G,xw0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,dw0)}else g(e,kw0);return u(f(e),ww0),u(f(e),Ew0)}),N(AZ,function(t,n,e){var i=o(rD,t,n);return o(C0(fw0),i,e)});var eD=[0,im,IZ,rD,AZ],nD=function t(n,e,i,x){return t.fun(n,e,i,x)},NZ=function t(n,e,i){return t.fun(n,e,i)};N(nD,function(t,n,e,i){u(f(e),Vk0),o(f(e),Kk0,zk0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(eD[3],s,c,e,x),u(f(e),Wk0),u(f(e),Jk0),o(f(e),Zk0,$k0),o(n,e,i[2]),u(f(e),Qk0),u(f(e),rw0),o(f(e),nw0,ew0);var p=i[3];return o(f(e),tw0,p),u(f(e),uw0),u(f(e),iw0)}),N(NZ,function(t,n,e){var i=o(nD,t,n);return o(C0(Yk0),i,e)});var CZ=[0,nD,NZ],tD=function t(n,e,i,x){return t.fun(n,e,i,x)},PZ=function t(n,e,i){return t.fun(n,e,i)};N(tD,function(t,n,e,i){u(f(e),kk0),o(f(e),Ek0,wk0);var x=i[1];if(x){g(e,Sk0);var c=x[1],s=function(G){return u(n,G)},p=function(G){return u(t,G)};R(Be[31],p,s,e,c),g(e,gk0)}else g(e,Fk0);u(f(e),Tk0),u(f(e),Ok0),o(f(e),Ak0,Ik0);var y=i[2];if(y){g(e,Nk0);var T=y[1],E=function(G,A){return g(G,dk0)},d=function(G){return u(t,G)};R(Dr[1],d,E,e,T),g(e,Ck0)}else g(e,Pk0);u(f(e),Dk0),u(f(e),Lk0),o(f(e),jk0,Rk0);var w=i[3];return o(f(e),Gk0,w),u(f(e),Mk0),u(f(e),Bk0),o(f(e),Uk0,qk0),o(n,e,i[4]),u(f(e),Hk0),u(f(e),Xk0)}),N(PZ,function(t,n,e){var i=o(tD,t,n);return o(C0(hk0),i,e)});var DZ=[0,tD,PZ],uD=function t(n,e,i,x){return t.fun(n,e,i,x)},LZ=function t(n,e,i){return t.fun(n,e,i)},fm=function t(n,e,i,x){return t.fun(n,e,i,x)},RZ=function t(n,e,i){return t.fun(n,e,i)};N(uD,function(t,n,e,i){u(f(e),mk0),o(t,e,i[1]),u(f(e),_k0);var x=i[2];function c(s){return u(n,s)}return R(fm,function(s){return u(t,s)},c,e,x),u(f(e),yk0)}),N(LZ,function(t,n,e){var i=o(uD,t,n);return o(C0(pk0),i,e)}),N(fm,function(t,n,e,i){u(f(e),ek0),o(f(e),tk0,nk0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),uk0),u(f(e),ik0),o(f(e),xk0,fk0);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R(Be[31],T,y,e,p),u(f(e),ok0),u(f(e),ak0),o(f(e),sk0,ck0);var E=i[3];return o(f(e),vk0,E),u(f(e),lk0),u(f(e),bk0)}),N(RZ,function(t,n,e){var i=o(fm,t,n);return o(C0(rk0),i,e)});var jZ=[0,uD,LZ,fm,RZ],iD=function t(n,e,i,x){return t.fun(n,e,i,x)},GZ=function t(n,e,i){return t.fun(n,e,i)};N(iD,function(t,n,e,i){u(f(e),Bd0),o(f(e),Ud0,qd0);var x=i[1];u(f(e),Hd0);var c=0;le(function(E,d){E&&u(f(e),Md0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(jZ[1],G,w,e,d),1},c,x),u(f(e),Xd0),u(f(e),Yd0),u(f(e),Vd0),o(f(e),Kd0,zd0);var s=i[2];if(s){g(e,Wd0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(Be[31],T,y,e,p),g(e,Jd0)}else g(e,$d0);return u(f(e),Zd0),u(f(e),Qd0)}),N(GZ,function(t,n,e){var i=o(iD,t,n);return o(C0(Gd0),i,e)});var fD=[0,jZ,iD,GZ],xD=function t(n,e,i,x){return t.fun(n,e,i,x)},MZ=function t(n,e,i){return t.fun(n,e,i)};N(xD,function(t,n,e,i){u(f(e),Sd0),o(f(e),Fd0,gd0);var x=i[1];u(f(e),Td0);var c=0;le(function(E,d){E&&u(f(e),Ed0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(fD[1][1],G,w,e,d),1},c,x),u(f(e),Od0),u(f(e),Id0),u(f(e),Ad0),o(f(e),Cd0,Nd0);var s=i[2];if(s){g(e,Pd0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(Be[31],T,y,e,p),g(e,Dd0)}else g(e,Ld0);return u(f(e),Rd0),u(f(e),jd0)}),N(MZ,function(t,n,e){var i=o(xD,t,n);return o(C0(wd0),i,e)});var BZ=[0,xD,MZ],oD=function t(n,e,i,x){return t.fun(n,e,i,x)},qZ=function t(n,e,i){return t.fun(n,e,i)};N(oD,function(t,n,e,i){u(f(e),fd0),o(f(e),od0,xd0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Be[31],s,c,e,x),u(f(e),ad0),u(f(e),cd0),o(f(e),vd0,sd0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),ld0),u(f(e),bd0),o(f(e),md0,pd0);var E=i[3];if(E){g(e,_d0);var d=E[1],w=function(A,S){return g(A,id0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,yd0)}else g(e,hd0);return u(f(e),dd0),u(f(e),kd0)}),N(qZ,function(t,n,e){var i=o(oD,t,n);return o(C0(ud0),i,e)});var UZ=[0,oD,qZ],aD=function t(n,e,i){return t.fun(n,e,i)},HZ=function t(n,e){return t.fun(n,e)};N(aD,function(t,n,e){u(f(n),Uh0),o(f(n),Xh0,Hh0);var i=e[1];function x(G){return u(t,G)}function c(G){return u(t,G)}R(Rn[1],c,x,n,i),u(f(n),Yh0),u(f(n),Vh0),o(f(n),Kh0,zh0);var s=e[2];function p(G){return u(t,G)}function y(G){return u(t,G)}R(Rn[1],y,p,n,s),u(f(n),Wh0),u(f(n),Jh0),o(f(n),Zh0,$h0);var T=e[3];if(T){g(n,Qh0);var E=T[1],d=function(G,A){return g(G,qh0)},w=function(G){return u(t,G)};R(Dr[1],w,d,n,E),g(n,rd0)}else g(n,ed0);return u(f(n),nd0),u(f(n),td0)}),N(HZ,function(t,n){var e=u(aD,t);return o(C0(Bh0),e,n)});var XZ=[0,aD,HZ],cD=function t(n,e,i){return t.fun(n,e,i)},YZ=function t(n,e){return t.fun(n,e)};N(cD,function(t,n,e){u(f(n),Ch0),o(f(n),Dh0,Ph0);var i=e[1];if(i){g(n,Lh0);var x=i[1],c=function(p,y){return g(p,Nh0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Rh0)}else g(n,jh0);return u(f(n),Gh0),u(f(n),Mh0)}),N(YZ,function(t,n){var e=u(cD,t);return o(C0(Ah0),e,n)});var VZ=[0,cD,YZ],sD=function t(n,e,i){return t.fun(n,e,i)},zZ=function t(n,e){return t.fun(n,e)};N(sD,function(t,n,e){u(f(n),wh0),o(f(n),Sh0,Eh0);var i=e[1];if(i){g(n,gh0);var x=i[1],c=function(p,y){return g(p,kh0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Fh0)}else g(n,Th0);return u(f(n),Oh0),u(f(n),Ih0)}),N(zZ,function(t,n){var e=u(sD,t);return o(C0(dh0),e,n)});var KZ=[0,sD,zZ],vD=function t(n,e,i,x){return t.fun(n,e,i,x)},WZ=function t(n,e,i){return t.fun(n,e,i)};N(vD,function(t,n,e,i){u(f(e),oh0),o(f(e),ch0,ah0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),sh0),u(f(e),vh0),o(f(e),bh0,lh0);var p=i[2];if(p){g(e,ph0);var y=p[1],T=function(d,w){return g(d,xh0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,mh0)}else g(e,_h0);return u(f(e),yh0),u(f(e),hh0)}),N(WZ,function(t,n,e){var i=o(vD,t,n);return o(C0(fh0),i,e)});var JZ=[0,vD,WZ],lD=function t(n,e,i,x){return t.fun(n,e,i,x)},$Z=function t(n,e,i){return t.fun(n,e,i)},xm=function t(n,e,i,x){return t.fun(n,e,i,x)},ZZ=function t(n,e,i){return t.fun(n,e,i)};N(lD,function(t,n,e,i){u(f(e),th0),o(n,e,i[1]),u(f(e),uh0);var x=i[2];function c(s){return u(n,s)}return R(xm,function(s){return u(t,s)},c,e,x),u(f(e),ih0)}),N($Z,function(t,n,e){var i=o(lD,t,n);return o(C0(nh0),i,e)}),N(xm,function(t,n,e,i){switch(i[0]){case 0:u(f(e),K_0);var x=i[1],c=function(Y){return u(n,Y)},s=function(Y){return u(t,Y)};return R(G$[3],s,c,e,x),u(f(e),W_0);case 1:u(f(e),J_0);var p=i[1],y=function(Y){return u(n,Y)},T=function(Y){return u(t,Y)};return R(As[5],T,y,e,p),u(f(e),$_0);case 2:u(f(e),Z_0);var E=i[1],d=function(Y){return u(n,Y)},w=function(Y){return u(t,Y)};return R(vZ[3],w,d,e,E),u(f(e),Q_0);case 3:u(f(e),ry0);var G=i[1],A=function(Y){return u(n,Y)},S=function(Y){return u(t,Y)};return R(aZ[3],S,A,e,G),u(f(e),ey0);case 4:u(f(e),ny0);var M=i[1],K=function(Y){return u(n,Y)},V=function(Y){return u(t,Y)};return R(ZP[1],V,K,e,M),u(f(e),ty0);case 5:u(f(e),uy0);var f0=i[1],m0=function(Y){return u(n,Y)},k0=function(Y){return u(t,Y)};return R(F1[8],k0,m0,e,f0),u(f(e),iy0);case 6:u(f(e),fy0);var g0=i[1],e0=function(Y){return u(n,Y)},x0=function(Y){return u(t,Y)};return R(fD[2],x0,e0,e,g0),u(f(e),xy0);case 7:u(f(e),oy0);var l=i[1],c0=function(Y){return u(n,Y)},t0=function(Y){return u(t,Y)};return R(dZ[1],t0,c0,e,l),u(f(e),ay0);case 8:u(f(e),cy0);var o0=i[1],w0=function(Y){return u(n,Y)},_0=function(Y){return u(t,Y)};return R(As[5],_0,w0,e,o0),u(f(e),sy0);case 9:u(f(e),vy0);var E0=i[1],U0=function(Y){return u(n,Y)},b=function(Y){return u(t,Y)};return R(BZ[1],b,U0,e,E0),u(f(e),ly0);case 10:u(f(e),by0);var R0=i[1],X=function(Y){return u(n,Y)},s0=function(Y){return u(t,Y)};return R(Rn[1],s0,X,e,R0),u(f(e),py0);case 11:u(f(e),my0);var hr=i[1],Ar=function(Y){return u(n,Y)},or=function(Y){return u(t,Y)};return R(JZ[1],or,Ar,e,hr),u(f(e),_y0);case 12:u(f(e),yy0);var W0=i[1],Lr=function(Y){return u(n,Y)},Tr=function(Y){return u(t,Y)};return R(UN[17],Tr,Lr,e,W0),u(f(e),hy0);case 13:u(f(e),dy0);var Hr=i[1],Or=function(Y){return u(n,Y)},fr=function(Y){return u(t,Y)};return R(UN[19],fr,Or,e,Hr),u(f(e),ky0);case 14:u(f(e),wy0);var Rr=i[1],Wr=function(Y){return u(t,Y)};return ur(Tl[2],Wr,e,Rr),u(f(e),Ey0);case 15:u(f(e),Sy0);var Jr=i[1],ar=function(Y){return u(n,Y)},_r=function(Y){return u(t,Y)};return R(yZ[3],_r,ar,e,Jr),u(f(e),gy0);case 16:u(f(e),Fy0);var Ir=i[1],fe=function(Y){return u(n,Y)},v0=function(Y){return u(t,Y)};return R(eD[3],v0,fe,e,Ir),u(f(e),Ty0);case 17:u(f(e),Oy0);var P=i[1],L=function(Y){return u(t,Y)};return ur(XZ[1],L,e,P),u(f(e),Iy0);case 18:u(f(e),Ay0);var Q=i[1],i0=function(Y){return u(n,Y)},l0=function(Y){return u(t,Y)};return R(gZ[1],l0,i0,e,Q),u(f(e),Ny0);case 19:u(f(e),Cy0);var S0=i[1],T0=function(Y){return u(n,Y)},rr=function(Y){return u(t,Y)};return R(eZ[5],rr,T0,e,S0),u(f(e),Py0);case 20:u(f(e),Dy0);var L0=i[1],B=function(Y){return u(n,Y)},Z=function(Y){return u(t,Y)};return R(OZ[1],Z,B,e,L0),u(f(e),Ly0);case 21:u(f(e),Ry0);var p0=i[1],b0=function(Y){return u(n,Y)},O0=function(Y){return u(t,Y)};return R(CZ[1],O0,b0,e,p0),u(f(e),jy0);case 22:u(f(e),Gy0);var M0=i[1],er=function(Y){return u(n,Y)},yr=function(Y){return u(t,Y)};return R(tZ[1],yr,er,e,M0),u(f(e),My0);case 23:u(f(e),By0);var vr=i[1],$0=function(Y){return u(t,Y)};return ur(KZ[1],$0,e,vr),u(f(e),qy0);case 24:u(f(e),Uy0);var Er=i[1],Mr=function(Y){return u(n,Y)},Br=function(Y){return u(t,Y)};return R(Y$[1],Br,Mr,e,Er),u(f(e),Hy0);case 25:u(f(e),Xy0);var qr=i[1],jr=function(Y){return u(n,Y)},$r=function(Y){return u(t,Y)};return R(RP[2],$r,jr,e,qr),u(f(e),Yy0);case 26:u(f(e),Vy0);var ne=i[1],Qr=function(Y){return u(t,Y)};return ur(VZ[1],Qr,e,ne),u(f(e),zy0);case 27:u(f(e),Ky0);var be=i[1],ae=function(Y){return u(n,Y)},pe=function(Y){return u(t,Y)};return R(UZ[1],pe,ae,e,be),u(f(e),Wy0);case 28:u(f(e),Jy0);var oe=i[1],ce=function(Y){return u(n,Y)},ge=function(Y){return u(t,Y)};return R(fZ[3],ge,ce,e,oe),u(f(e),$y0);case 29:u(f(e),Zy0);var q0=i[1],gr=function(Y){return u(n,Y)},_=function(Y){return u(t,Y)};return R(pZ[3],_,gr,e,q0),u(f(e),Qy0);default:u(f(e),rh0);var k=i[1],I=function(Y){return u(n,Y)},U=function(Y){return u(t,Y)};return R(DZ[1],U,I,e,k),u(f(e),eh0)}}),N(ZZ,function(t,n,e){var i=o(xm,t,n);return o(C0(z_0),i,e)}),mu(K3r,Be,[0,N$,wee,CP,G$,RP,Y$,eZ,tZ,fZ,aZ,vZ,pZ,yZ,dZ,tm,kZ,WP,gZ,ZP,OZ,eD,CZ,DZ,fD,BZ,UZ,XZ,VZ,KZ,JZ,lD,$Z,xm,ZZ]);var bD=function t(n,e,i,x){return t.fun(n,e,i,x)},QZ=function t(n,e,i){return t.fun(n,e,i)},om=function t(n,e,i){return t.fun(n,e,i)},rQ=function t(n,e){return t.fun(n,e)};N(bD,function(t,n,e,i){u(f(e),X_0),o(n,e,i[1]),u(f(e),Y_0);var x=i[2];return ur(om,function(c){return u(t,c)},e,x),u(f(e),V_0)}),N(QZ,function(t,n,e){var i=o(bD,t,n);return o(C0(H_0),i,e)}),N(om,function(t,n,e){u(f(n),A_0),o(f(n),C_0,N_0);var i=e[1];o(f(n),P_0,i),u(f(n),D_0),u(f(n),L_0),o(f(n),j_0,R_0);var x=e[2];if(x){g(n,G_0);var c=x[1],s=function(y,T){return g(y,I_0)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,M_0)}else g(n,B_0);return u(f(n),q_0),u(f(n),U_0)}),N(rQ,function(t,n){var e=u(om,t);return o(C0(O_0),e,n)});var O1=[0,bD,QZ,om,rQ],pD=function t(n,e,i,x){return t.fun(n,e,i,x)},eQ=function t(n,e,i){return t.fun(n,e,i)},am=function t(n,e,i,x){return t.fun(n,e,i,x)},nQ=function t(n,e,i){return t.fun(n,e,i)};N(pD,function(t,n,e,i){u(f(e),g_0),o(t,e,i[1]),u(f(e),F_0);var x=i[2];function c(s){return u(n,s)}return R(am,function(s){return u(t,s)},c,e,x),u(f(e),T_0)}),N(eQ,function(t,n,e){var i=o(pD,t,n);return o(C0(S_0),i,e)}),N(am,function(t,n,e,i){u(f(e),p_0),o(f(e),__0,m_0);var x=i[1];function c(E){return u(n,E)}function s(E){return u(t,E)}R(O1[1],s,c,e,x),u(f(e),y_0),u(f(e),h_0),o(f(e),k_0,d_0);var p=i[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(O1[1],T,y,e,p),u(f(e),w_0),u(f(e),E_0)}),N(nQ,function(t,n,e){var i=o(am,t,n);return o(C0(b_0),i,e)});var mD=[0,pD,eQ,am,nQ],_D=function t(n,e,i,x){return t.fun(n,e,i,x)},tQ=function t(n,e,i){return t.fun(n,e,i)},cm=function t(n,e,i,x){return t.fun(n,e,i,x)},uQ=function t(n,e,i){return t.fun(n,e,i)};N(_D,function(t,n,e,i){u(f(e),n_0),o(f(e),u_0,t_0);var x=i[1];function c(E){return u(n,E)}R(cm,function(E){return u(t,E)},c,e,x),u(f(e),i_0),u(f(e),f_0),o(f(e),o_0,x_0);var s=i[2];if(s){g(e,a_0);var p=s[1],y=function(E,d){u(f(E),r_0);var w=0;return le(function(G,A){G&&u(f(E),Q90);function S(M){return u(t,M)}return ur(fu[1],S,E,A),1},w,d),u(f(E),e_0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,c_0)}else g(e,s_0);return u(f(e),v_0),u(f(e),l_0)}),N(tQ,function(t,n,e){var i=o(_D,t,n);return o(C0(Z90),i,e)}),N(cm,function(t,n,e,i){if(i){u(f(e),W90);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(Be[31],s,c,e,x),u(f(e),J90)}return g(e,$90)}),N(uQ,function(t,n,e){var i=o(cm,t,n);return o(C0(K90),i,e)});var yD=[0,_D,tQ,cm,uQ];function iQ(t,n){u(f(t),R90),o(f(t),G90,j90);var e=n[1];o(f(t),M90,e),u(f(t),B90),u(f(t),q90),o(f(t),H90,U90);var i=n[2];return o(f(t),X90,i),u(f(t),Y90),u(f(t),V90)}var fQ=[0,iQ,function(t){return o(C0(z90),iQ,t)}],hD=function t(n,e,i,x){return t.fun(n,e,i,x)},xQ=function t(n,e,i){return t.fun(n,e,i)},sm=function t(n,e,i,x){return t.fun(n,e,i,x)},oQ=function t(n,e,i){return t.fun(n,e,i)},vm=function t(n,e,i,x){return t.fun(n,e,i,x)},aQ=function t(n,e,i){return t.fun(n,e,i)},lm=function t(n,e,i,x){return t.fun(n,e,i,x)},cQ=function t(n,e,i){return t.fun(n,e,i)};N(hD,function(t,n,e,i){u(f(e),P90),o(t,e,i[1]),u(f(e),D90);var x=i[2];function c(s){return u(n,s)}return R(lm,function(s){return u(t,s)},c,e,x),u(f(e),L90)}),N(xQ,function(t,n,e){var i=o(hD,t,n);return o(C0(C90),i,e)}),N(sm,function(t,n,e,i){if(i[0]===0){u(f(e),O90);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(O1[1],s,c,e,x),u(f(e),I90)}u(f(e),A90);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(mD[1],T,y,e,p),u(f(e),N90)}),N(oQ,function(t,n,e){var i=o(sm,t,n);return o(C0(T90),i,e)}),N(vm,function(t,n,e,i){if(i[0]===0){u(f(e),k90),o(n,e,i[1]),u(f(e),w90);var x=i[2],c=function(T){return u(t,T)};return ur(Tl[2],c,e,x),u(f(e),E90)}u(f(e),S90),o(n,e,i[1]),u(f(e),g90);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(yD[1],y,p,e,s),u(f(e),F90)}),N(aQ,function(t,n,e){var i=o(vm,t,n);return o(C0(d90),i,e)}),N(lm,function(t,n,e,i){u(f(e),o90),o(f(e),c90,a90);var x=i[1];function c(T){return u(n,T)}R(sm,function(T){return u(t,T)},c,e,x),u(f(e),s90),u(f(e),v90),o(f(e),b90,l90);var s=i[2];if(s){g(e,p90);var p=s[1],y=function(T){return u(n,T)};R(vm,function(T){return u(t,T)},y,e,p),g(e,m90)}else g(e,_90);return u(f(e),y90),u(f(e),h90)}),N(cQ,function(t,n,e){var i=o(lm,t,n);return o(C0(x90),i,e)});var sQ=[0,hD,xQ,sm,oQ,vm,aQ,lm,cQ],dD=function t(n,e,i,x){return t.fun(n,e,i,x)},vQ=function t(n,e,i){return t.fun(n,e,i)},bm=function t(n,e,i,x){return t.fun(n,e,i,x)},lQ=function t(n,e,i){return t.fun(n,e,i)};N(dD,function(t,n,e,i){u(f(e),u90),o(t,e,i[1]),u(f(e),i90);var x=i[2];function c(s){return u(n,s)}return R(bm,function(s){return u(t,s)},c,e,x),u(f(e),f90)}),N(vQ,function(t,n,e){var i=o(dD,t,n);return o(C0(t90),i,e)}),N(bm,function(t,n,e,i){u(f(e),Ym0),o(f(e),zm0,Vm0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),Km0),u(f(e),Wm0),o(f(e),$m0,Jm0);var p=i[2];if(p){g(e,Zm0);var y=p[1],T=function(d,w){return g(d,Xm0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Qm0)}else g(e,r90);return u(f(e),e90),u(f(e),n90)}),N(lQ,function(t,n,e){var i=o(bm,t,n);return o(C0(Hm0),i,e)});var bQ=[0,dD,vQ,bm,lQ],pm=function t(n,e,i,x){return t.fun(n,e,i,x)},pQ=function t(n,e,i){return t.fun(n,e,i)},mm=function t(n,e,i,x){return t.fun(n,e,i,x)},mQ=function t(n,e,i){return t.fun(n,e,i)},_m=function t(n,e,i,x){return t.fun(n,e,i,x)},_Q=function t(n,e,i){return t.fun(n,e,i)};N(pm,function(t,n,e,i){u(f(e),Bm0),o(t,e,i[1]),u(f(e),qm0);var x=i[2];function c(s){return u(n,s)}return R(_m,function(s){return u(t,s)},c,e,x),u(f(e),Um0)}),N(pQ,function(t,n,e){var i=o(pm,t,n);return o(C0(Mm0),i,e)}),N(mm,function(t,n,e,i){if(i[0]===0){u(f(e),Lm0);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(O1[1],s,c,e,x),u(f(e),Rm0)}u(f(e),jm0);var p=i[1];function y(T){return u(n,T)}return R(pm,function(T){return u(t,T)},y,e,p),u(f(e),Gm0)}),N(mQ,function(t,n,e){var i=o(mm,t,n);return o(C0(Dm0),i,e)}),N(_m,function(t,n,e,i){u(f(e),gm0),o(f(e),Tm0,Fm0);var x=i[1];function c(T){return u(n,T)}R(mm,function(T){return u(t,T)},c,e,x),u(f(e),Om0),u(f(e),Im0),o(f(e),Nm0,Am0);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(O1[1],y,p,e,s),u(f(e),Cm0),u(f(e),Pm0)}),N(_Q,function(t,n,e){var i=o(_m,t,n);return o(C0(Sm0),i,e)});var yQ=[0,pm,pQ,mm,mQ,_m,_Q],Nl=function t(n,e,i,x){return t.fun(n,e,i,x)},hQ=function t(n,e,i){return t.fun(n,e,i)};N(Nl,function(t,n,e,i){switch(i[0]){case 0:u(f(e),ym0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(O1[1],s,c,e,x),u(f(e),hm0);case 1:u(f(e),dm0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(mD[1],T,y,e,p),u(f(e),km0);default:u(f(e),wm0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(yQ[1],w,d,e,E),u(f(e),Em0)}}),N(hQ,function(t,n,e){var i=o(Nl,t,n);return o(C0(_m0),i,e)});var kD=function t(n,e,i,x){return t.fun(n,e,i,x)},dQ=function t(n,e,i){return t.fun(n,e,i)},ym=function t(n,e,i,x){return t.fun(n,e,i,x)},kQ=function t(n,e,i){return t.fun(n,e,i)},hm=function t(n,e,i,x){return t.fun(n,e,i,x)},wQ=function t(n,e,i){return t.fun(n,e,i)};N(kD,function(t,n,e,i){u(f(e),bm0),o(t,e,i[1]),u(f(e),pm0);var x=i[2];function c(s){return u(n,s)}return R(hm,function(s){return u(t,s)},c,e,x),u(f(e),mm0)}),N(dQ,function(t,n,e){var i=o(kD,t,n);return o(C0(lm0),i,e)}),N(ym,function(t,n,e,i){if(i[0]===0){u(f(e),am0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(sQ[1],s,c,e,x),u(f(e),cm0)}u(f(e),sm0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(bQ[1],T,y,e,p),u(f(e),vm0)}),N(kQ,function(t,n,e){var i=o(ym,t,n);return o(C0(om0),i,e)}),N(hm,function(t,n,e,i){u(f(e),V50),o(f(e),K50,z50);var x=i[1];function c(T){return u(n,T)}R(Nl,function(T){return u(t,T)},c,e,x),u(f(e),W50),u(f(e),J50),o(f(e),Z50,$50);var s=i[2];o(f(e),Q50,s),u(f(e),rm0),u(f(e),em0),o(f(e),tm0,nm0);var p=i[3];u(f(e),um0);var y=0;return le(function(T,E){T&&u(f(e),Y50);function d(w){return u(n,w)}return R(ym,function(w){return u(t,w)},d,e,E),1},y,p),u(f(e),im0),u(f(e),fm0),u(f(e),xm0)}),N(wQ,function(t,n,e){var i=o(hm,t,n);return o(C0(X50),i,e)});var EQ=[0,kD,dQ,ym,kQ,hm,wQ],wD=function t(n,e,i,x){return t.fun(n,e,i,x)},SQ=function t(n,e,i){return t.fun(n,e,i)},dm=function t(n,e,i,x){return t.fun(n,e,i,x)},gQ=function t(n,e,i){return t.fun(n,e,i)};N(wD,function(t,n,e,i){u(f(e),q50),o(t,e,i[1]),u(f(e),U50);var x=i[2];function c(s){return u(n,s)}return R(dm,function(s){return u(t,s)},c,e,x),u(f(e),H50)}),N(SQ,function(t,n,e){var i=o(wD,t,n);return o(C0(B50),i,e)}),N(dm,function(t,n,e,i){u(f(e),L50),o(f(e),j50,R50);var x=i[1];function c(s){return u(n,s)}return R(Nl,function(s){return u(t,s)},c,e,x),u(f(e),G50),u(f(e),M50)}),N(gQ,function(t,n,e){var i=o(dm,t,n);return o(C0(D50),i,e)});var FQ=[0,wD,SQ,dm,gQ],ED=function t(n,e,i,x){return t.fun(n,e,i,x)},TQ=function t(n,e,i){return t.fun(n,e,i)};N(ED,function(t,n,e,i){u(f(e),w50),o(f(e),S50,E50);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),g50),u(f(e),F50),o(f(e),O50,T50);var p=i[2];if(p){g(e,I50);var y=p[1],T=function(d,w){return g(d,k50)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,A50)}else g(e,N50);return u(f(e),C50),u(f(e),P50)}),N(TQ,function(t,n,e){var i=o(ED,t,n);return o(C0(d50),i,e)});var OQ=[0,ED,TQ],Cl=function t(n,e,i,x){return t.fun(n,e,i,x)},IQ=function t(n,e,i){return t.fun(n,e,i)},km=function t(n,e,i,x){return t.fun(n,e,i,x)},AQ=function t(n,e,i){return t.fun(n,e,i)},wm=function t(n,e,i,x){return t.fun(n,e,i,x)},NQ=function t(n,e,i){return t.fun(n,e,i)},Em=function t(n,e,i,x){return t.fun(n,e,i,x)},CQ=function t(n,e,i){return t.fun(n,e,i)};N(Cl,function(t,n,e,i){u(f(e),_50),o(t,e,i[1]),u(f(e),y50);var x=i[2];function c(s){return u(n,s)}return R(km,function(s){return u(t,s)},c,e,x),u(f(e),h50)}),N(IQ,function(t,n,e){var i=o(Cl,t,n);return o(C0(m50),i,e)}),N(km,function(t,n,e,i){switch(i[0]){case 0:u(f(e),f50);var x=i[1],c=function(A){return u(n,A)};return R(wm,function(A){return u(t,A)},c,e,x),u(f(e),x50);case 1:u(f(e),o50);var s=i[1],p=function(A){return u(n,A)};return R(Em,function(A){return u(t,A)},p,e,s),u(f(e),a50);case 2:u(f(e),c50);var y=i[1],T=function(A){return u(n,A)},E=function(A){return u(t,A)};return R(yD[1],E,T,e,y),u(f(e),s50);case 3:u(f(e),v50);var d=i[1],w=function(A){return u(n,A)},G=function(A){return u(t,A)};return R(OQ[1],G,w,e,d),u(f(e),l50);default:return u(f(e),b50),o(fQ[1],e,i[1]),u(f(e),p50)}}),N(AQ,function(t,n,e){var i=o(km,t,n);return o(C0(i50),i,e)}),N(wm,function(t,n,e,i){u(f(e),Np0),o(f(e),Pp0,Cp0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(EQ[1],s,c,e,x),u(f(e),Dp0),u(f(e),Lp0),o(f(e),jp0,Rp0);var p=i[2];if(p){g(e,Gp0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(FQ[1],E,T,e,y),g(e,Mp0)}else g(e,Bp0);u(f(e),qp0),u(f(e),Up0),o(f(e),Xp0,Hp0);var d=i[3];u(f(e),Yp0),o(t,e,d[1]),u(f(e),Vp0),u(f(e),zp0);var w=d[2],G=0;le(function(V,f0){V&&u(f(e),Ap0);function m0(k0){return u(n,k0)}return R(Cl,function(k0){return u(t,k0)},m0,e,f0),1},G,w),u(f(e),Kp0),u(f(e),Wp0),u(f(e),Jp0),u(f(e),$p0),o(f(e),Qp0,Zp0);var A=i[4];if(A){g(e,r50);var S=A[1],M=function(V,f0){return g(V,Ip0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,e50)}else g(e,n50);return u(f(e),t50),u(f(e),u50)}),N(NQ,function(t,n,e){var i=o(wm,t,n);return o(C0(Op0),i,e)}),N(Em,function(t,n,e,i){u(f(e),tp0),o(f(e),ip0,up0),o(t,e,i[1]),u(f(e),fp0),u(f(e),xp0),o(f(e),ap0,op0),o(t,e,i[2]),u(f(e),cp0),u(f(e),sp0),o(f(e),lp0,vp0);var x=i[3];u(f(e),bp0),o(t,e,x[1]),u(f(e),pp0),u(f(e),mp0);var c=x[2],s=0;le(function(d,w){d&&u(f(e),np0);function G(A){return u(n,A)}return R(Cl,function(A){return u(t,A)},G,e,w),1},s,c),u(f(e),_p0),u(f(e),yp0),u(f(e),hp0),u(f(e),dp0),o(f(e),wp0,kp0);var p=i[4];if(p){g(e,Ep0);var y=p[1],T=function(d,w){return g(d,ep0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Sp0)}else g(e,gp0);return u(f(e),Fp0),u(f(e),Tp0)}),N(CQ,function(t,n,e){var i=o(Em,t,n);return o(C0(rp0),i,e)}),mu(W3r,UN,[0,O1,mD,yD,fQ,sQ,bQ,yQ,Nl,hQ,EQ,FQ,OQ,Cl,IQ,km,AQ,wm,NQ,Em,CQ]);var SD=function t(n,e,i,x){return t.fun(n,e,i,x)},PQ=function t(n,e,i){return t.fun(n,e,i)},Sm=function t(n,e,i,x){return t.fun(n,e,i,x)},DQ=function t(n,e,i){return t.fun(n,e,i)};N(SD,function(t,n,e,i){u(f(e),$60),o(t,e,i[1]),u(f(e),Z60);var x=i[2];function c(s){return u(n,s)}return R(Sm,function(s){return u(t,s)},c,e,x),u(f(e),Q60)}),N(PQ,function(t,n,e){var i=o(SD,t,n);return o(C0(J60),i,e)}),N(Sm,function(t,n,e,i){u(f(e),G60),o(f(e),B60,M60);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),q60),u(f(e),U60),o(f(e),X60,H60);var p=i[2];if(p){g(e,Y60);var y=p[1],T=function(d,w){return g(d,j60)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,V60)}else g(e,z60);return u(f(e),K60),u(f(e),W60)}),N(DQ,function(t,n,e){var i=o(Sm,t,n);return o(C0(R60),i,e)});var gD=[0,SD,PQ,Sm,DQ],gm=function t(n,e,i,x){return t.fun(n,e,i,x)},LQ=function t(n,e,i){return t.fun(n,e,i)},FD=function t(n,e,i,x){return t.fun(n,e,i,x)},RQ=function t(n,e,i){return t.fun(n,e,i)},Fm=function t(n,e,i,x){return t.fun(n,e,i,x)},jQ=function t(n,e,i){return t.fun(n,e,i)};N(gm,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),T60),u(f(e),O60),o(t,e,x[1]),u(f(e),I60);var c=x[2],s=function(G){return u(t,G)};return ur(Tl[2],s,e,c),u(f(e),A60),u(f(e),N60);case 1:u(f(e),C60);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(Rn[1],T,y,e,p),u(f(e),P60);default:u(f(e),D60);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(qp[1],w,d,e,E),u(f(e),L60)}}),N(LQ,function(t,n,e){var i=o(gm,t,n);return o(C0(F60),i,e)}),N(FD,function(t,n,e,i){u(f(e),E60),o(t,e,i[1]),u(f(e),S60);var x=i[2];function c(s){return u(n,s)}return R(Fm,function(s){return u(t,s)},c,e,x),u(f(e),g60)}),N(RQ,function(t,n,e){var i=o(FD,t,n);return o(C0(w60),i,e)}),N(Fm,function(t,n,e,i){u(f(e),e60),o(f(e),t60,n60);var x=i[1];function c(A){return u(n,A)}R(gm,function(A){return u(t,A)},c,e,x),u(f(e),u60),u(f(e),i60),o(f(e),x60,f60);var s=i[2];function p(A){return u(n,A)}function y(A){return u(t,A)}R(di[5],y,p,e,s),u(f(e),o60),u(f(e),a60),o(f(e),s60,c60);var T=i[3];if(T){g(e,v60);var E=T[1],d=function(A){return u(n,A)},w=function(A){return u(t,A)};R(Be[31],w,d,e,E),g(e,l60)}else g(e,b60);u(f(e),p60),u(f(e),m60),o(f(e),y60,_60);var G=i[4];return o(f(e),h60,G),u(f(e),d60),u(f(e),k60)}),N(jQ,function(t,n,e){var i=o(Fm,t,n);return o(C0(r60),i,e)});var GQ=[0,gm,LQ,FD,RQ,Fm,jQ],Tm=function t(n,e,i,x){return t.fun(n,e,i,x)},MQ=function t(n,e,i){return t.fun(n,e,i)},TD=function t(n,e,i,x){return t.fun(n,e,i,x)},BQ=function t(n,e,i){return t.fun(n,e,i)};N(Tm,function(t,n,e,i){if(i[0]===0){u(f(e),J30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(GQ[3],s,c,e,x),u(f(e),$30)}u(f(e),Z30);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(gD[1],T,y,e,p),u(f(e),Q30)}),N(MQ,function(t,n,e){var i=o(Tm,t,n);return o(C0(W30),i,e)}),N(TD,function(t,n,e,i){u(f(e),N30),o(f(e),P30,C30);var x=i[1];u(f(e),D30);var c=0;le(function(G,A){G&&u(f(e),A30);function S(M){return u(n,M)}return R(Tm,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),L30),u(f(e),R30),u(f(e),j30),o(f(e),M30,G30);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),B30),u(f(e),q30),o(f(e),H30,U30);var T=i[3];if(T){g(e,X30);var E=T[1],d=function(G,A){u(f(G),O30);var S=0;return le(function(M,K){M&&u(f(G),T30);function V(f0){return u(t,f0)}return ur(fu[1],V,G,K),1},S,A),u(f(G),I30)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,Y30)}else g(e,V30);return u(f(e),z30),u(f(e),K30)}),N(BQ,function(t,n,e){var i=o(TD,t,n);return o(C0(F30),i,e)});var qQ=[0,GQ,Tm,MQ,TD,BQ],OD=function t(n,e,i,x){return t.fun(n,e,i,x)},UQ=function t(n,e,i){return t.fun(n,e,i)},Om=function t(n,e,i,x){return t.fun(n,e,i,x)},HQ=function t(n,e,i){return t.fun(n,e,i)};N(OD,function(t,n,e,i){u(f(e),E30),o(t,e,i[1]),u(f(e),S30);var x=i[2];function c(s){return u(n,s)}return R(Om,function(s){return u(t,s)},c,e,x),u(f(e),g30)}),N(UQ,function(t,n,e){var i=o(OD,t,n);return o(C0(w30),i,e)}),N(Om,function(t,n,e,i){u(f(e),c30),o(f(e),v30,s30);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),l30),u(f(e),b30),o(f(e),m30,p30);var p=i[2];if(p){g(e,_30);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(Be[31],E,T,e,y),g(e,y30)}else g(e,h30);return u(f(e),d30),u(f(e),k30)}),N(HQ,function(t,n,e){var i=o(Om,t,n);return o(C0(a30),i,e)});var XQ=[0,OD,UQ,Om,HQ],Im=function t(n,e,i,x){return t.fun(n,e,i,x)},YQ=function t(n,e,i){return t.fun(n,e,i)},ID=function t(n,e,i,x){return t.fun(n,e,i,x)},VQ=function t(n,e,i){return t.fun(n,e,i)};N(Im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),t30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(XQ[1],s,c,e,x),u(f(e),u30);case 1:u(f(e),i30);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(gD[1],T,y,e,p),u(f(e),f30);default:return u(f(e),x30),o(t,e,i[1]),u(f(e),o30)}}),N(YQ,function(t,n,e){var i=o(Im,t,n);return o(C0(n30),i,e)}),N(ID,function(t,n,e,i){u(f(e),G80),o(f(e),B80,M80);var x=i[1];u(f(e),q80);var c=0;le(function(G,A){G&&u(f(e),j80);function S(M){return u(n,M)}return R(Im,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),U80),u(f(e),H80),u(f(e),X80),o(f(e),V80,Y80);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),z80),u(f(e),K80),o(f(e),J80,W80);var T=i[3];if(T){g(e,$80);var E=T[1],d=function(G,A){u(f(G),L80);var S=0;return le(function(M,K){M&&u(f(G),D80);function V(f0){return u(t,f0)}return ur(fu[1],V,G,K),1},S,A),u(f(G),R80)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,Z80)}else g(e,Q80);return u(f(e),r30),u(f(e),e30)}),N(VQ,function(t,n,e){var i=o(ID,t,n);return o(C0(P80),i,e)});var zQ=[0,XQ,Im,YQ,ID,VQ],AD=function t(n,e,i,x){return t.fun(n,e,i,x)},KQ=function t(n,e,i){return t.fun(n,e,i)};N(AD,function(t,n,e,i){u(f(e),h80),o(f(e),k80,d80);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),w80),u(f(e),E80),o(f(e),g80,S80);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R($e[19],T,y,e,p),u(f(e),F80),u(f(e),T80),o(f(e),I80,O80);var E=i[3];return o(f(e),A80,E),u(f(e),N80),u(f(e),C80)}),N(KQ,function(t,n,e){var i=o(AD,t,n);return o(C0(y80),i,e)});var WQ=[0,AD,KQ],ND=function t(n,e,i,x){return t.fun(n,e,i,x)},JQ=function t(n,e,i){return t.fun(n,e,i)},Am=function t(n,e,i,x){return t.fun(n,e,i,x)},$Q=function t(n,e,i){return t.fun(n,e,i)};N(ND,function(t,n,e,i){u(f(e),p80),o(n,e,i[1]),u(f(e),m80);var x=i[2];function c(s){return u(n,s)}return R(Am,function(s){return u(t,s)},c,e,x),u(f(e),_80)}),N(JQ,function(t,n,e){var i=o(ND,t,n);return o(C0(b80),i,e)}),N(Am,function(t,n,e,i){switch(i[0]){case 0:u(f(e),f80);var x=i[1],c=function(M){return u(n,M)},s=function(M){return u(t,M)};return R(qQ[4],s,c,e,x),u(f(e),x80);case 1:u(f(e),o80);var p=i[1],y=function(M){return u(n,M)},T=function(M){return u(t,M)};return R(zQ[4],T,y,e,p),u(f(e),a80);case 2:u(f(e),c80);var E=i[1],d=function(M){return u(n,M)},w=function(M){return u(t,M)};return R(WQ[1],w,d,e,E),u(f(e),s80);default:u(f(e),v80);var G=i[1],A=function(M){return u(n,M)},S=function(M){return u(t,M)};return R(Be[31],S,A,e,G),u(f(e),l80)}}),N($Q,function(t,n,e){var i=o(Am,t,n);return o(C0(i80),i,e)}),mu(J3r,di,[0,gD,qQ,zQ,WQ,ND,JQ,Am,$Q]);var CD=function t(n,e,i){return t.fun(n,e,i)},ZQ=function t(n,e){return t.fun(n,e)},Nm=function t(n,e){return t.fun(n,e)},QQ=function t(n){return t.fun(n)},Cm=function t(n,e){return t.fun(n,e)},r00=function t(n){return t.fun(n)};N(CD,function(t,n,e){return u(f(n),n80),o(t,n,e[1]),u(f(n),t80),o(Cm,n,e[2]),u(f(n),u80)}),N(ZQ,function(t,n){var e=u(CD,t);return o(C0(e80),e,n)}),N(Nm,function(t,n){return n?g(t,Q40):g(t,r80)}),N(QQ,function(t){return o(C0(Z40),Nm,t)}),N(Cm,function(t,n){u(f(t),j40),o(f(t),M40,G40),o(Nm,t,n[1]),u(f(t),B40),u(f(t),q40),o(f(t),H40,U40);var e=n[2];o(f(t),X40,e),u(f(t),Y40),u(f(t),V40),o(f(t),K40,z40);var i=n[3];return o(f(t),W40,i),u(f(t),J40),u(f(t),$40)}),N(r00,function(t){return o(C0(R40),Cm,t)}),mu($3r,fu,[0,CD,ZQ,Nm,QQ,Cm,r00]);var PD=function t(n,e,i,x){return t.fun(n,e,i,x)},e00=function t(n,e,i){return t.fun(n,e,i)},Pm=function t(n,e){return t.fun(n,e)},n00=function t(n){return t.fun(n)},Dm=function t(n,e,i,x){return t.fun(n,e,i,x)},t00=function t(n,e,i){return t.fun(n,e,i)};N(PD,function(t,n,e,i){u(f(e),P40),o(n,e,i[1]),u(f(e),D40);var x=i[2];function c(s){return u(n,s)}return R(Dm,function(s){return u(t,s)},c,e,x),u(f(e),L40)}),N(e00,function(t,n,e){var i=o(PD,t,n);return o(C0(C40),i,e)}),N(Pm,function(t,n){switch(n){case 0:return g(t,O40);case 1:return g(t,I40);case 2:return g(t,A40);default:return g(t,N40)}}),N(n00,function(t){return o(C0(T40),Pm,t)}),N(Dm,function(t,n,e,i){u(f(e),zb0),o(f(e),Wb0,Kb0),o(Pm,e,i[1]),u(f(e),Jb0),u(f(e),$b0),o(f(e),Qb0,Zb0);var x=i[2];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Be[7][1][1],s,c,e,x),u(f(e),r40),u(f(e),e40),o(f(e),t40,n40);var p=i[3];u(f(e),u40),o(t,e,p[1]),u(f(e),i40);var y=p[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(As[5],E,T,e,y),u(f(e),f40),u(f(e),x40),u(f(e),o40),o(f(e),c40,a40);var d=i[4];o(f(e),s40,d),u(f(e),v40),u(f(e),l40),o(f(e),p40,b40);var w=i[5];u(f(e),m40);var G=0;le(function(V,f0){V&&u(f(e),Vb0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(F1[7][1],k0,m0,e,f0),1},G,w),u(f(e),_40),u(f(e),y40),u(f(e),h40),o(f(e),k40,d40);var A=i[6];if(A){g(e,w40);var S=A[1],M=function(V,f0){return g(V,Yb0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,E40)}else g(e,S40);return u(f(e),g40),u(f(e),F40)}),N(t00,function(t,n,e){var i=o(Dm,t,n);return o(C0(Xb0),i,e)});var u00=[0,PD,e00,Pm,n00,Dm,t00],DD=function t(n,e,i,x){return t.fun(n,e,i,x)},i00=function t(n,e,i){return t.fun(n,e,i)},Lm=function t(n,e,i,x){return t.fun(n,e,i,x)},f00=function t(n,e,i){return t.fun(n,e,i)},Rm=function t(n,e,i,x){return t.fun(n,e,i,x)},x00=function t(n,e,i){return t.fun(n,e,i)};N(DD,function(t,n,e,i){u(f(e),qb0),o(n,e,i[1]),u(f(e),Ub0);var x=i[2];function c(s){return u(n,s)}return R(Lm,function(s){return u(t,s)},c,e,x),u(f(e),Hb0)}),N(i00,function(t,n,e){var i=o(DD,t,n);return o(C0(Bb0),i,e)}),N(Lm,function(t,n,e,i){u(f(e),ob0),o(f(e),cb0,ab0);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(Be[7][1][1],s,c,e,x),u(f(e),sb0),u(f(e),vb0),o(f(e),bb0,lb0);var p=i[2];function y(m0){return u(n,m0)}R(Rm,function(m0){return u(t,m0)},y,e,p),u(f(e),pb0),u(f(e),mb0),o(f(e),yb0,_b0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),hb0),u(f(e),db0),o(f(e),wb0,kb0);var w=i[4];o(f(e),Eb0,w),u(f(e),Sb0),u(f(e),gb0),o(f(e),Tb0,Fb0);var G=i[5];if(G){g(e,Ob0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Ib0)}else g(e,Ab0);u(f(e),Nb0),u(f(e),Cb0),o(f(e),Db0,Pb0);var M=i[6];if(M){g(e,Lb0);var K=M[1],V=function(m0,k0){return g(m0,xb0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,Rb0)}else g(e,jb0);return u(f(e),Gb0),u(f(e),Mb0)}),N(f00,function(t,n,e){var i=o(Lm,t,n);return o(C0(fb0),i,e)}),N(Rm,function(t,n,e,i){if(typeof i=="number")return i?g(e,nb0):g(e,tb0);u(f(e),ub0);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(Be[31],s,c,e,x),u(f(e),ib0)}),N(x00,function(t,n,e){var i=o(Rm,t,n);return o(C0(eb0),i,e)});var o00=[0,DD,i00,Lm,f00,Rm,x00],LD=function t(n,e,i,x){return t.fun(n,e,i,x)},a00=function t(n,e,i){return t.fun(n,e,i)},jm=function t(n,e,i,x){return t.fun(n,e,i,x)},c00=function t(n,e,i){return t.fun(n,e,i)};N(LD,function(t,n,e,i){u(f(e),Zl0),o(n,e,i[1]),u(f(e),Ql0);var x=i[2];function c(s){return u(n,s)}return R(jm,function(s){return u(t,s)},c,e,x),u(f(e),rb0)}),N(a00,function(t,n,e){var i=o(LD,t,n);return o(C0($l0),i,e)}),N(jm,function(t,n,e,i){u(f(e),hl0),o(f(e),kl0,dl0);var x=i[1];function c(m0){return u(t,m0)}ur(Bp[1],c,e,x),u(f(e),wl0),u(f(e),El0),o(f(e),gl0,Sl0);var s=i[2];function p(m0){return u(n,m0)}function y(m0){return u(t,m0)}R(F1[2][5],y,p,e,s),u(f(e),Fl0),u(f(e),Tl0),o(f(e),Il0,Ol0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),Al0),u(f(e),Nl0),o(f(e),Pl0,Cl0);var w=i[4];o(f(e),Dl0,w),u(f(e),Ll0),u(f(e),Rl0),o(f(e),Gl0,jl0);var G=i[5];if(G){g(e,Ml0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Bl0)}else g(e,ql0);u(f(e),Ul0),u(f(e),Hl0),o(f(e),Yl0,Xl0);var M=i[6];if(M){g(e,Vl0);var K=M[1],V=function(m0,k0){return g(m0,yl0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,zl0)}else g(e,Kl0);return u(f(e),Wl0),u(f(e),Jl0)}),N(c00,function(t,n,e){var i=o(jm,t,n);return o(C0(_l0),i,e)});var s00=[0,LD,a00,jm,c00],RD=function t(n,e,i,x){return t.fun(n,e,i,x)},v00=function t(n,e,i){return t.fun(n,e,i)},Gm=function t(n,e,i,x){return t.fun(n,e,i,x)},l00=function t(n,e,i){return t.fun(n,e,i)};N(RD,function(t,n,e,i){u(f(e),bl0),o(t,e,i[1]),u(f(e),pl0);var x=i[2];function c(s){return u(n,s)}return R(Gm,function(s){return u(t,s)},c,e,x),u(f(e),ml0)}),N(v00,function(t,n,e){var i=o(RD,t,n);return o(C0(ll0),i,e)}),N(Gm,function(t,n,e,i){u(f(e),K20),o(f(e),J20,W20);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(Be[31],s,c,e,x),u(f(e),$20),u(f(e),Z20),o(f(e),rl0,Q20);var p=i[2];if(p){g(e,el0);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,nl0)}else g(e,tl0);u(f(e),ul0),u(f(e),il0),o(f(e),xl0,fl0);var d=i[3];if(d){g(e,ol0);var w=d[1],G=function(S,M){return g(S,z20)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,al0)}else g(e,cl0);return u(f(e),sl0),u(f(e),vl0)}),N(l00,function(t,n,e){var i=o(Gm,t,n);return o(C0(V20),i,e)});var b00=[0,RD,v00,Gm,l00],jD=function t(n,e,i,x){return t.fun(n,e,i,x)},p00=function t(n,e,i){return t.fun(n,e,i)},Mm=function t(n,e,i,x){return t.fun(n,e,i,x)},m00=function t(n,e,i){return t.fun(n,e,i)};N(jD,function(t,n,e,i){u(f(e),H20),o(t,e,i[1]),u(f(e),X20);var x=i[2];function c(s){return u(n,s)}return R(Mm,function(s){return u(t,s)},c,e,x),u(f(e),Y20)}),N(p00,function(t,n,e){var i=o(jD,t,n);return o(C0(U20),i,e)}),N(Mm,function(t,n,e,i){u(f(e),A20),o(f(e),C20,N20);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),P20),u(f(e),D20),o(f(e),R20,L20);var p=i[2];if(p){g(e,j20);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R($e[23][1],E,T,e,y),g(e,G20)}else g(e,M20);return u(f(e),B20),u(f(e),q20)}),N(m00,function(t,n,e){var i=o(Mm,t,n);return o(C0(I20),i,e)});var _00=[0,jD,p00,Mm,m00],GD=function t(n,e,i,x){return t.fun(n,e,i,x)},y00=function t(n,e,i){return t.fun(n,e,i)},Bm=function t(n,e,i,x){return t.fun(n,e,i,x)},h00=function t(n,e,i){return t.fun(n,e,i)};N(GD,function(t,n,e,i){u(f(e),F20),o(t,e,i[1]),u(f(e),T20);var x=i[2];function c(s){return u(n,s)}return R(Bm,function(s){return u(t,s)},c,e,x),u(f(e),O20)}),N(y00,function(t,n,e){var i=o(GD,t,n);return o(C0(g20),i,e)}),N(Bm,function(t,n,e,i){u(f(e),s20),o(f(e),l20,v20);var x=i[1];u(f(e),b20);var c=0;le(function(E,d){E&&u(f(e),c20);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(_00[1],G,w,e,d),1},c,x),u(f(e),p20),u(f(e),m20),u(f(e),_20),o(f(e),h20,y20);var s=i[2];if(s){g(e,d20);var p=s[1],y=function(E,d){return g(E,a20)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,k20)}else g(e,w20);return u(f(e),E20),u(f(e),S20)}),N(h00,function(t,n,e){var i=o(Bm,t,n);return o(C0(o20),i,e)});var d00=[0,_00,GD,y00,Bm,h00],MD=function t(n,e,i,x){return t.fun(n,e,i,x)},k00=function t(n,e,i){return t.fun(n,e,i)},qm=function t(n,e,i,x){return t.fun(n,e,i,x)},w00=function t(n,e,i){return t.fun(n,e,i)},Um=function t(n,e,i,x){return t.fun(n,e,i,x)},E00=function t(n,e,i){return t.fun(n,e,i)};N(MD,function(t,n,e,i){u(f(e),i20),o(t,e,i[1]),u(f(e),f20);var x=i[2];function c(s){return u(n,s)}return R(qm,function(s){return u(t,s)},c,e,x),u(f(e),x20)}),N(k00,function(t,n,e){var i=o(MD,t,n);return o(C0(u20),i,e)}),N(qm,function(t,n,e,i){u(f(e),Xv0),o(f(e),Vv0,Yv0);var x=i[1];u(f(e),zv0);var c=0;le(function(E,d){E&&u(f(e),Hv0);function w(G){return u(n,G)}return R(Um,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),Kv0),u(f(e),Wv0),u(f(e),Jv0),o(f(e),Zv0,$v0);var s=i[2];if(s){g(e,Qv0);var p=s[1],y=function(E,d){return g(E,Uv0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,r20)}else g(e,e20);return u(f(e),n20),u(f(e),t20)}),N(w00,function(t,n,e){var i=o(qm,t,n);return o(C0(qv0),i,e)}),N(Um,function(t,n,e,i){switch(i[0]){case 0:u(f(e),Lv0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(u00[1],s,c,e,x),u(f(e),Rv0);case 1:u(f(e),jv0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(o00[1],T,y,e,p),u(f(e),Gv0);default:u(f(e),Mv0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(s00[1],w,d,e,E),u(f(e),Bv0)}}),N(E00,function(t,n,e){var i=o(Um,t,n);return o(C0(Dv0),i,e)});var BD=function t(n,e,i,x){return t.fun(n,e,i,x)},S00=function t(n,e,i){return t.fun(n,e,i)},Hm=function t(n,e,i,x){return t.fun(n,e,i,x)},g00=function t(n,e,i){return t.fun(n,e,i)},Eee=[0,MD,k00,qm,w00,Um,E00];N(BD,function(t,n,e,i){u(f(e),Nv0),o(t,e,i[1]),u(f(e),Cv0);var x=i[2];function c(s){return u(n,s)}return R(Hm,function(s){return u(t,s)},c,e,x),u(f(e),Pv0)}),N(S00,function(t,n,e){var i=o(BD,t,n);return o(C0(Av0),i,e)}),N(Hm,function(t,n,e,i){u(f(e),yv0),o(f(e),dv0,hv0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Be[31],s,c,e,x),u(f(e),kv0),u(f(e),wv0),o(f(e),Sv0,Ev0);var p=i[2];if(p){g(e,gv0);var y=p[1],T=function(d,w){return g(d,_v0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Fv0)}else g(e,Tv0);return u(f(e),Ov0),u(f(e),Iv0)}),N(g00,function(t,n,e){var i=o(Hm,t,n);return o(C0(mv0),i,e)});var F00=[0,BD,S00,Hm,g00],qD=function t(n,e,i,x){return t.fun(n,e,i,x)},T00=function t(n,e,i){return t.fun(n,e,i)};N(qD,function(t,n,e,i){u(f(e),S10),o(f(e),F10,g10);var x=i[1];if(x){g(e,T10);var c=x[1],s=function(w0){return u(n,w0)},p=function(w0){return u(t,w0)};R(Rn[1],p,s,e,c),g(e,O10)}else g(e,I10);u(f(e),A10),u(f(e),N10),o(f(e),P10,C10);var y=i[2];function T(w0){return u(n,w0)}function E(w0){return u(t,w0)}R(F1[6][1],E,T,e,y),u(f(e),D10),u(f(e),L10),o(f(e),j10,R10);var d=i[3];if(d){g(e,G10);var w=d[1],G=function(w0){return u(n,w0)},A=function(w0){return u(t,w0)};R($e[22][1],A,G,e,w),g(e,M10)}else g(e,B10);u(f(e),q10),u(f(e),U10),o(f(e),X10,H10);var S=i[4];if(S){g(e,Y10);var M=S[1],K=function(w0){return u(n,w0)},V=function(w0){return u(t,w0)};R(b00[1],V,K,e,M),g(e,V10)}else g(e,z10);u(f(e),K10),u(f(e),W10),o(f(e),$10,J10);var f0=i[5];if(f0){g(e,Z10);var m0=f0[1],k0=function(w0){return u(n,w0)},g0=function(w0){return u(t,w0)};R(d00[2],g0,k0,e,m0),g(e,Q10)}else g(e,rv0);u(f(e),ev0),u(f(e),nv0),o(f(e),uv0,tv0);var e0=i[6];u(f(e),iv0);var x0=0;le(function(w0,_0){w0&&u(f(e),E10);function E0(b){return u(n,b)}function U0(b){return u(t,b)}return R(F00[1],U0,E0,e,_0),1},x0,e0),u(f(e),fv0),u(f(e),xv0),u(f(e),ov0),o(f(e),cv0,av0);var l=i[7];if(l){g(e,sv0);var c0=l[1],t0=function(w0,_0){return g(w0,w10)},o0=function(w0){return u(t,w0)};R(Dr[1],o0,t0,e,c0),g(e,vv0)}else g(e,lv0);return u(f(e),bv0),u(f(e),pv0)}),N(T00,function(t,n,e){var i=o(qD,t,n);return o(C0(k10),i,e)}),mu(Z3r,F1,[0,u00,o00,s00,b00,d00,Eee,F00,qD,T00]);var UD=function t(n,e,i,x){return t.fun(n,e,i,x)},O00=function t(n,e,i){return t.fun(n,e,i)},Xm=function t(n,e,i,x){return t.fun(n,e,i,x)},I00=function t(n,e,i){return t.fun(n,e,i)};N(UD,function(t,n,e,i){u(f(e),y10),o(t,e,i[1]),u(f(e),h10);var x=i[2];function c(s){return u(n,s)}return R(Xm,function(s){return u(t,s)},c,e,x),u(f(e),d10)}),N(O00,function(t,n,e){var i=o(UD,t,n);return o(C0(_10),i,e)}),N(Xm,function(t,n,e,i){u(f(e),i10),o(f(e),x10,f10);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),o10),u(f(e),a10),o(f(e),s10,c10);var p=i[2];if(p){g(e,v10);var y=p[1],T=function(d,w){return g(d,u10)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,l10)}else g(e,b10);return u(f(e),p10),u(f(e),m10)}),N(I00,function(t,n,e){var i=o(Xm,t,n);return o(C0(t10),i,e)});var A00=[0,UD,O00,Xm,I00],HD=function t(n,e,i,x){return t.fun(n,e,i,x)},N00=function t(n,e,i){return t.fun(n,e,i)},Ym=function t(n,e,i,x){return t.fun(n,e,i,x)},C00=function t(n,e,i){return t.fun(n,e,i)};N(HD,function(t,n,e,i){u(f(e),r10),o(t,e,i[1]),u(f(e),e10);var x=i[2];function c(s){return u(n,s)}return R(Ym,function(s){return u(t,s)},c,e,x),u(f(e),n10)}),N(N00,function(t,n,e){var i=o(HD,t,n);return o(C0(Qs0),i,e)}),N(Ym,function(t,n,e,i){u(f(e),qs0),o(f(e),Hs0,Us0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),Xs0),u(f(e),Ys0),o(f(e),zs0,Vs0);var p=i[2];if(p){g(e,Ks0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(Be[31],E,T,e,y),g(e,Ws0)}else g(e,Js0);return u(f(e),$s0),u(f(e),Zs0)}),N(C00,function(t,n,e){var i=o(Ym,t,n);return o(C0(Bs0),i,e)});var P00=[0,HD,N00,Ym,C00],XD=function t(n,e,i,x){return t.fun(n,e,i,x)},D00=function t(n,e,i){return t.fun(n,e,i)},Vm=function t(n,e,i,x){return t.fun(n,e,i,x)},L00=function t(n,e,i){return t.fun(n,e,i)};N(XD,function(t,n,e,i){u(f(e),js0),o(t,e,i[1]),u(f(e),Gs0);var x=i[2];function c(s){return u(n,s)}return R(Vm,function(s){return u(t,s)},c,e,x),u(f(e),Ms0)}),N(D00,function(t,n,e){var i=o(XD,t,n);return o(C0(Rs0),i,e)}),N(Vm,function(t,n,e,i){u(f(e),Ss0),o(f(e),Fs0,gs0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Ts0),u(f(e),Os0),o(f(e),As0,Is0);var p=i[2];if(p){g(e,Ns0);var y=p[1],T=function(d,w){return g(d,Es0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Cs0)}else g(e,Ps0);return u(f(e),Ds0),u(f(e),Ls0)}),N(L00,function(t,n,e){var i=o(Vm,t,n);return o(C0(ws0),i,e)});var R00=[0,XD,D00,Vm,L00],YD=function t(n,e,i,x){return t.fun(n,e,i,x)},j00=function t(n,e,i){return t.fun(n,e,i)},zm=function t(n,e,i,x){return t.fun(n,e,i,x)},G00=function t(n,e,i){return t.fun(n,e,i)};N(YD,function(t,n,e,i){u(f(e),hs0),o(t,e,i[1]),u(f(e),ds0);var x=i[2];function c(s){return u(n,s)}return R(zm,function(s){return u(t,s)},c,e,x),u(f(e),ks0)}),N(j00,function(t,n,e){var i=o(YD,t,n);return o(C0(ys0),i,e)}),N(zm,function(t,n,e,i){u(f(e),Xc0),o(f(e),Vc0,Yc0);var x=i[1];if(x){g(e,zc0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(R00[1],p,s,e,c),g(e,Kc0)}else g(e,Wc0);u(f(e),Jc0),u(f(e),$c0),o(f(e),Qc0,Zc0);var y=i[2];u(f(e),rs0);var T=0;le(function(V,f0){V&&u(f(e),Hc0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(P00[1],k0,m0,e,f0),1},T,y),u(f(e),es0),u(f(e),ns0),u(f(e),ts0),o(f(e),is0,us0);var E=i[3];if(E){g(e,fs0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(A00[1],G,w,e,d),g(e,xs0)}else g(e,os0);u(f(e),as0),u(f(e),cs0),o(f(e),vs0,ss0);var A=i[4];if(A){g(e,ls0);var S=A[1],M=function(V,f0){u(f(V),qc0);var m0=0;return le(function(k0,g0){k0&&u(f(V),Bc0);function e0(x0){return u(t,x0)}return ur(fu[1],e0,V,g0),1},m0,f0),u(f(V),Uc0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,bs0)}else g(e,ps0);return u(f(e),ms0),u(f(e),_s0)}),N(G00,function(t,n,e){var i=o(zm,t,n);return o(C0(Mc0),i,e)});var M00=[0,YD,j00,zm,G00],VD=function t(n,e,i,x){return t.fun(n,e,i,x)},B00=function t(n,e,i){return t.fun(n,e,i)},Km=function t(n,e,i,x){return t.fun(n,e,i,x)},q00=function t(n,e,i){return t.fun(n,e,i)};N(VD,function(t,n,e,i){u(f(e),Ga0),o(f(e),Ba0,Ma0);var x=i[1];if(x){g(e,qa0);var c=x[1],s=function(_0){return u(n,_0)},p=function(_0){return u(t,_0)};R(Rn[1],p,s,e,c),g(e,Ua0)}else g(e,Ha0);u(f(e),Xa0),u(f(e),Ya0),o(f(e),za0,Va0);var y=i[2];function T(_0){return u(n,_0)}function E(_0){return u(t,_0)}R(M00[1],E,T,e,y),u(f(e),Ka0),u(f(e),Wa0),o(f(e),$a0,Ja0);var d=i[3];function w(_0){return u(n,_0)}R(Km,function(_0){return u(t,_0)},w,e,d),u(f(e),Za0),u(f(e),Qa0),o(f(e),ec0,rc0);var G=i[4];o(f(e),nc0,G),u(f(e),tc0),u(f(e),uc0),o(f(e),fc0,ic0);var A=i[5];o(f(e),xc0,A),u(f(e),oc0),u(f(e),ac0),o(f(e),sc0,cc0);var S=i[6];if(S){g(e,vc0);var M=S[1],K=function(_0){return u(n,_0)},V=function(_0){return u(t,_0)};R($e[24][1],V,K,e,M),g(e,lc0)}else g(e,bc0);u(f(e),pc0),u(f(e),mc0),o(f(e),yc0,_c0);var f0=i[7];function m0(_0){return u(n,_0)}function k0(_0){return u(t,_0)}R($e[19],k0,m0,e,f0),u(f(e),hc0),u(f(e),dc0),o(f(e),wc0,kc0);var g0=i[8];if(g0){g(e,Ec0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R($e[22][1],l,x0,e,e0),g(e,Sc0)}else g(e,gc0);u(f(e),Fc0),u(f(e),Tc0),o(f(e),Ic0,Oc0);var c0=i[9];if(c0){g(e,Ac0);var t0=c0[1],o0=function(_0,E0){return g(_0,ja0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,Nc0)}else g(e,Cc0);return u(f(e),Pc0),u(f(e),Dc0),o(f(e),Rc0,Lc0),o(t,e,i[10]),u(f(e),jc0),u(f(e),Gc0)}),N(B00,function(t,n,e){var i=o(VD,t,n);return o(C0(Ra0),i,e)}),N(Km,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),Ia0),u(f(e),Aa0),o(t,e,x[1]),u(f(e),Na0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Yu[1][1],p,s,e,c),u(f(e),Ca0),u(f(e),Pa0)}u(f(e),Da0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(Be[31],E,T,e,y),u(f(e),La0)}),N(q00,function(t,n,e){var i=o(Km,t,n);return o(C0(Oa0),i,e)}),mu(Q3r,As,[0,A00,P00,R00,M00,VD,B00,Km,q00]);var zD=function t(n,e,i,x){return t.fun(n,e,i,x)},U00=function t(n,e,i){return t.fun(n,e,i)},Wm=function t(n,e,i,x){return t.fun(n,e,i,x)},H00=function t(n,e,i){return t.fun(n,e,i)};N(zD,function(t,n,e,i){u(f(e),ga0),o(t,e,i[1]),u(f(e),Fa0);var x=i[2];function c(s){return u(n,s)}return R(Wm,function(s){return u(t,s)},c,e,x),u(f(e),Ta0)}),N(U00,function(t,n,e){var i=o(zD,t,n);return o(C0(Sa0),i,e)}),N(Wm,function(t,n,e,i){u(f(e),ua0),o(f(e),fa0,ia0);var x=i[1];u(f(e),xa0);var c=0;le(function(w,G){w&&u(f(e),ta0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(Yu[35],S,A,e,G),1},c,x),u(f(e),oa0),u(f(e),aa0),u(f(e),ca0),o(f(e),va0,sa0);var s=i[2];if(s){g(e,la0);var p=s[1],y=function(w,G){return g(w,na0)},T=function(w){return u(t,w)};R(Dr[1],T,y,e,p),g(e,ba0)}else g(e,pa0);u(f(e),ma0),u(f(e),_a0),o(f(e),ha0,ya0);var E=i[3];u(f(e),da0);var d=0;return le(function(w,G){w&&u(f(e),ea0);function A(S){return u(t,S)}return ur(fu[1],A,e,G),1},d,E),u(f(e),ka0),u(f(e),wa0),u(f(e),Ea0)}),N(H00,function(t,n,e){var i=o(Wm,t,n);return o(C0(ra0),i,e)}),mu(r6r,hee,[0,zD,U00,Wm,H00]);function ze(t,n){if(n){var e=n[1],i=u(t,e);return e===i?n:[0,i]}return n}function te(t,n,e,i,x){var c=o(t,n,e);return e===c?i:u(x,c)}function ee(t,n,e,i){var x=u(t,n);return n===x?e:u(i,x)}function _u(t,n){var e=n[1];function i(x){return[0,e,x]}return te(t,e,n[2],n,i)}function Xn(t,n){var e=le(function(i,x){var c=u(t,x),s=i[2],p=s||(c!==x?1:0);return[0,[0,c,i[1]],p]},s6r,n);return e[2]?ye(e[1]):n}var KD=Rp(l6r,function(t){var n=NN(t,v6r),e=n[1],i=n[2],x=n[3],c=n[4],s=n[5],p=n[6],y=n[7],T=n[8],E=n[9],d=n[10],w=n[11],G=n[12],A=n[13],S=n[14],M=n[15],K=n[16],V=n[17],f0=n[18],m0=n[19],k0=n[20],g0=n[21],e0=n[22],x0=n[23],l=n[24],c0=n[25],t0=n[26],o0=n[27],w0=n[28],_0=n[29],E0=n[30],U0=n[31],b=n[32],R0=n[33],X=n[34],s0=n[35],hr=n[36],Ar=n[37],or=n[38],W0=n[39],Lr=n[40],Tr=n[41],Hr=n[42],Or=n[43],fr=n[44],Rr=n[45],Wr=n[46],Jr=n[47],ar=n[49],_r=n[50],Ir=n[51],fe=n[52],v0=n[53],P=n[54],L=n[55],Q=n[56],i0=n[57],l0=n[58],S0=n[59],T0=n[60],rr=n[61],L0=n[62],B=n[63],Z=n[65],p0=n[66],b0=n[67],O0=n[68],M0=n[69],er=n[70],yr=n[71],vr=n[72],$0=n[73],Er=n[74],Mr=n[75],Br=n[76],qr=n[77],jr=n[78],$r=n[79],ne=n[80],Qr=n[81],be=n[82],ae=n[83],pe=n[84],oe=n[85],ce=n[86],ge=n[87],q0=n[88],gr=n[89],_=n[90],k=n[91],I=n[92],U=n[93],Y=n[94],y0=n[95],P0=n[96],I0=n[97],D=n[98],u0=n[99],H0=n[ti],J0=n[R7],ir=n[Ri],Q0=n[s7],F0=n[L7],Sr=n[j7],mr=n[Vt],Cr=n[Zc],sr=n[is],Pr=n[Fv],K0=n[Yt],Ur=n[cf],h0=n[T7],Kr=n[Pn],re=n[t1],xe=n[Av],Re=n[f1],ve=n[A2],Ie=n[z2],Ge=n[Sv],Me=n[uc],an=n[tl],We=n[In],Ae=n[ts],cn=n[X2],en=n[br],wn=n[IX],ln=n[Jn],Ce=n[jt],Je=n[JY],nn=n[zw],yn=n[Jg],Cn=n[BH],Yn=n[133],Fn=n[134],lt=n[135],Nt=n[KH],Ft=n[137],ru=n[EH],qt=n[139],Tt=n[dH],Ct=n[141],du=n[142],Wu=n[143],bt=n[iV],au=n[145],Bu=n[146],K7=n[DX],Yi=n[148],a7=n[eH],Hc=n[150],W7=n[151],Ut=n[152],pt=n[153],B0=n[FH],D0=n[155],Le=n[156],He=n[157],he=n[158],me=n[159],et=n[fY],En=n[XU],xt=n[kh],ot=n[Ln],jn=n[AF],ut=n[$X],kt=n[DY],xn=n[NT],bn=n[IY],it=n[NX],Ot=n[qg],Ti=n[pg],hs=n[LU],Au=n[_Y],Hs=n[$U],Vi=n[bX],Xs=n[mV],Ys=n[uV],tn=n[gO],si=n[RY],Vs=n[sU],c2=n[Ai],M9=n[Yg],B9=n[lS],q9=n[hk],zs=n[gU],s2=n[md],U9=n[nw],H9=n[iY],X9=n[fX],H1=n[OY],vi=n[lX],ab=n[zn],cb=n[HT],sb=n[nI],Y9=n[xY],V9=n[XX],z9=n[hY],vb=n[vH],K9=n[QH],W9=n[NU],J9=n[sY],$9=n[nH],lb=n[eV],Z9=n[WX],X1=n[VH],v2=n[TH],bb=n[AX],pb=n[_H],mb=n[Wg],On=n[A6],Gn=n[yU],Y1=n[yY],_b=n[RX],yb=n[mT],Q9=n[xT],Xc=n[y6],r_=n[cp],l2=n[Cw],hb=n[FU],Yc=n[iA],e_=n[GX],Ks=n[FX],db=n[y8],V1=n[hv],n_=n[BO],ds=n[rk],t_=n[JH],z1=n[fV],u_=n[bU],b2=n[jh],i_=n[qX],Ws=n[ZF],kb=n[hT],Js=n[tH],f_=n[JU],zi=n[lO],Vc=n[BY],$s=n[cH],x_=n[i6],p2=n[s1],m2=n[Vy],_2=n[ST],o_=n[QU],Zs=n[v8],a_=n[WY],y2=n[$2],qL=n[48],K1=n[64];function UL(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+tn],a),H),r0=o(a[1][1+s0],a,O);return O===r0&&H===$?m:[0,$,r0,m[3],m[4]]}function W1(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+Vc],a,r0),Y0=ze(u(a[1][1+V],a),$),Nr=o(a[1][1+t0],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&H===Nr&&$===Y0&&O===Gr?m:[0,j0,Y0,Nr,Gr]}function HL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+tn],a,$),j0=o(a[1][1+Or],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function J1(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_r],a,$),j0=o(a[1][1+Or],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function XL(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+p],a,F,$),j0=ze(u(a[1][1+tn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Oi(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Xn(o(a[1][1+y],a,H),$),j0=o(a[1][1+s0],a,O);return $===r0&&O===j0?m:[0,r0,H,j0]}function YL(a,F,m){var O=m[4],H=m[2],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,m[3],r0]}function VL(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,r0]}function h2(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+tn],a,$),j0=o(a[1][1+l],a,H),Y0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&Y0===O?m:[0,r0,j0,Y0]}function zL(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=_u(u(a[1][1+zi],a),r0);if($)var Y0=$[1],Nr=Y0[1],Gr=function(eu){return[0,[0,Nr,eu]]},Fe=Y0[2],_e=te(u(a[1][1+z1],a),Nr,Fe,$,Gr);else var _e=$;if(H)var Dn=H[1],hn=Dn[1],at=function(eu){return[0,[0,hn,eu]]},mt=Dn[2],wt=te(u(a[1][1+zi],a),hn,mt,H,at);else var wt=H;var $n=o(a[1][1+s0],a,O);return r0===j0&&$===_e&&H===wt&&O===$n?m:[0,j0,_e,wt,$n]}function $1(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function KL(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Z1(a,F){return F}function WL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Xn(u(a[1][1+b],a),$),j0=Xn(u(a[1][1+tn],a),H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function wb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+tn],a,$),j0=_u(u(a[1][1+R0],a),H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function JL(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+tn],a),$),j0=o(a[1][1+Tr],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?F:[0,F[1],[0,r0,j0,Y0]]}function Eb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+tn],a,$),j0=Xn(u(a[1][1+Ar],a),H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0,m[4]]}function $L(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function ZL(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function d2(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function QL(a,F){return[0,o(a[1][1+Or],a,F),0]}function rR(a,F){var m=u(a[1][1+Hr],a),O=le(function(H,$){var r0=H[1],j0=u(m,$);if(j0){if(j0[2])return[0,Lc(j0,r0),1];var Y0=j0[1],Nr=H[2],Gr=Nr||($!==Y0?1:0);return[0,[0,Y0,r0],Gr]}return[0,r0,1]},c6r,F);return O[2]?ye(O[1]):F}function c_(a,F){return o(a[1][1+Tr],a,F)}function eR(a,F,m){var O=m[2],H=m[1],$=Xn(u(a[1][1+tn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function k2(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+tn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0,m[3]]}function nR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function w2(a,F){return o(a[1][1+tn],a,F)}function tR(a,F){var m=F[2],O=m[2],H=m[1];if(H)var $=function(Nr){return[0,Nr]},r0=H[1],j0=ee(u(a[1][1+tn],a),r0,H,$);else var j0=H;var Y0=o(a[1][1+s0],a,O);return H===j0&&O===Y0?F:[0,F[1],[0,j0,Y0]]}function Q1(a,F){return o(a[1][1+tn],a,F)}function uR(a,F,m){return ur(a[1][1+er],a,F,m)}function Sb(a,F,m){return ur(a[1][1+er],a,F,m)}function iR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+Z],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function gb(a,F,m){return ur(a[1][1+er],a,F,m)}function fR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+b0],a,F,$),j0=ze(u(a[1][1+tn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Fb(a,F,m){switch(m[0]){case 0:var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+O0],a,F),H,m,O);case 1:var $=function(j0){return[1,j0]},r0=m[1];return ee(o(a[1][1+p0],a,F),r0,m,$);default:return m}}function xR(a,F,m){return ur(a[1][1+er],a,F,m)}function Mn(a,F,m){return ur(a[1][1+er],a,F,m)}function s_(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+fe],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function oR(a,F,m){return o(a[1][1+On],a,m)}function aR(a,F,m){return ur(a[1][1+L0],a,F,m)}function rv(a,F,m){var O=m[1];function H(r0){return[0,O,r0]}var $=m[2];return te(o(a[1][1+rr],a,F),O,$,m,H)}function Tb(a,F,m){switch(m[0]){case 0:var O=function(Nr){return[0,Nr]},H=m[1];return ee(o(a[1][1+L],a,F),H,m,O);case 1:var $=function(Nr){return[1,Nr]},r0=m[1];return ee(o(a[1][1+i0],a,F),r0,m,$);default:var j0=function(Nr){return[2,Nr]},Y0=m[1];return ee(o(a[1][1+l0],a,F),Y0,m,j0)}}function v_(a,F,m){var O=m[2],H=O[4],$=O[3],r0=O[2],j0=O[1],Y0=ur(a[1][1+Q],a,F,j0),Nr=ur(a[1][1+P],a,F,r0),Gr=ze(u(a[1][1+tn],a),$);if(H){var Fe=0;if(Y0[0]===1){var _e=Nr[2];if(_e[0]===2)var hn=Hn(Y0[1][2][1],_e[1][1][2][1]);else Fe=1}else Fe=1;if(Fe)var Dn=j0===Y0?1:0,hn=Dn&&(r0===Nr?1:0)}else var hn=H;return Y0===j0&&Nr===r0&&Gr===$&&H===hn?m:[0,m[1],[0,Y0,Nr,Gr,hn]]}function Ob(a,F,m){if(m[0]===0){var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+S0],a,F),H,m,O)}function $(j0){return[1,j0]}var r0=m[1];return ee(o(a[1][1+v0],a,F),r0,m,$)}function cR(a,F,m,O){return ur(a[1][1+J0],a,m,O)}function l_(a,F,m){return o(a[1][1+bt],a,m)}function sR(a,F,m){var O=m[2];switch(O[0]){case 0:var H=O[1],$=H[3],r0=H[2],j0=H[1],Y0=Xn(o(a[1][1+T0],a,F),j0),Nr=o(a[1][1+x0],a,r0),Gr=o(a[1][1+s0],a,$),Fe=0;if(Y0===j0&&Nr===r0&&Gr===$){var _e=O;Fe=1}if(!Fe)var _e=[0,[0,Y0,Nr,Gr]];var Ji=_e;break;case 1:var Dn=O[1],hn=Dn[3],at=Dn[2],mt=Dn[1],wt=Xn(o(a[1][1+M0],a,F),mt),$n=o(a[1][1+x0],a,at),eu=o(a[1][1+s0],a,hn),J7=0;if(hn===eu&&wt===mt&&$n===at){var $7=O;J7=1}if(!J7)var $7=[1,[0,wt,$n,eu]];var Ji=$7;break;case 2:var E7=O[1],Z7=E7[2],Q7=E7[1],ri=ur(a[1][1+L0],a,F,Q7),ei=o(a[1][1+x0],a,Z7),ni=0;if(Q7===ri&&Z7===ei){var Wi=O;ni=1}if(!ni)var Wi=[2,[0,ri,ei,E7[3]]];var Ji=Wi;break;default:var tv=function(iv){return[3,iv]},uv=O[1],Ji=ee(u(a[1][1+B],a),uv,O,tv)}return O===Ji?m:[0,m[1],Ji]}function b_(a,F){return ur(a[1][1+er],a,0,F)}function Ib(a,F,m){var O=F&&F[1];return ur(a[1][1+er],a,[0,O],m)}function p_(a,F){return o(a[1][1+m2],a,F)}function vR(a,F){return o(a[1][1+m2],a,F)}function m_(a,F){return ur(a[1][1+$s],a,a6r,F)}function Ab(a,F,m){return ur(a[1][1+$s],a,[0,F],m)}function lR(a,F){return ur(a[1][1+$s],a,o6r,F)}function bR(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],Y0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=ze(u(a[1][1+t0],a),$),Fe=ze(u(a[1][1+t0],a),H),_e=o(a[1][1+s0],a,O);return j0===Y0&&$===Gr&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,Y0,Nr,Gr,Fe,_e]}function pR(a,F){return o(a[1][1+On],a,F)}function Nb(a,F){return o(a[1][1+bt],a,F)}function mR(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+J0],a),m,H,F,O)}function _R(a,F){switch(F[0]){case 0:var m=function(Gr){return[0,Gr]},O=F[1];return ee(u(a[1][1+be],a),O,F,m);case 1:var H=function(Gr){return[1,Gr]},$=F[1];return ee(u(a[1][1+ae],a),$,F,H);case 2:var r0=function(Gr){return[2,Gr]},j0=F[1];return ee(u(a[1][1+ar],a),j0,F,r0);default:var Y0=function(Gr){return[3,Gr]},Nr=F[1];return ee(u(a[1][1+pe],a),Nr,F,Y0)}}function __(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),Y0=o(a[1][1+tn],a,$);if(H){var Nr=0;if(j0[0]===1){var Gr=Y0[2];if(Gr[0]===10)var _e=Hn(j0[1][2][1],Gr[1][2][1]);else Nr=1}else Nr=1;if(Nr)var Fe=r0===j0?1:0,_e=Fe&&($===Y0?1:0)}else var _e=H;return r0===j0&&$===Y0&&H===_e?F:[0,O,[0,j0,Y0,_e]];case 1:var Dn=m[2],hn=m[1],at=o(a[1][1+oe],a,hn),mt=_u(u(a[1][1+me],a),Dn);return hn===at&&Dn===mt?F:[0,O,[1,at,mt]];case 2:var wt=m[3],$n=m[2],eu=m[1],J7=o(a[1][1+oe],a,eu),$7=_u(u(a[1][1+me],a),$n),E7=o(a[1][1+s0],a,wt);return eu===J7&&$n===$7&&wt===E7?F:[0,O,[2,J7,$7,E7]];default:var Z7=m[3],Q7=m[2],ri=m[1],ei=o(a[1][1+oe],a,ri),ni=_u(u(a[1][1+me],a),Q7),Wi=o(a[1][1+s0],a,Z7);return ri===ei&&Q7===ni&&Z7===Wi?F:[0,O,[3,ei,ni,Wi]]}}function yR(a,F,m){var O=m[2],H=m[1],$=Xn(function(j0){if(j0[0]===0){var Y0=j0[1],Nr=o(a[1][1+Qr],a,Y0);return Y0===Nr?j0:[0,Nr]}var Gr=j0[1],Fe=o(a[1][1+fr],a,Gr);return Gr===Fe?j0:[1,Fe]},H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Cb(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+tn],a,r0),Y0=ze(u(a[1][1+b2],a),$),Nr=ze(u(a[1][1+Ws],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Nr&&O===Gr?m:[0,j0,Y0,Nr,Gr]}function hR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+bt],a,$),j0=o(a[1][1+bt],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function dR(a,F){return o(a[1][1+tn],a,F)}function y_(a,F){return o(a[1][1+ar],a,F)}function kR(a,F){return o(a[1][1+bt],a,F)}function E2(a,F){switch(F[0]){case 0:var m=function(Y0){return[0,Y0]},O=F[1];return ee(u(a[1][1+y0],a),O,F,m);case 1:var H=function(Y0){return[1,Y0]},$=F[1];return ee(u(a[1][1+D],a),$,F,H);default:var r0=function(Y0){return[2,Y0]},j0=F[1];return ee(u(a[1][1+P0],a),j0,F,r0)}}function wR(a,F,m){var O=m[1],H=ur(a[1][1+u0],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function ER(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+tn],a,$),j0=o(a[1][1+I0],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function SR(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+tn],a,$),j0=o(a[1][1+tn],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,m[1],r0,j0,Y0]}function Pb(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function gR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Q0],a,$),j0=o(a[1][1+Or],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function FR(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Db(a,F){return o(a[1][1+ve],a,F)}function TR(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+K0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Ur],a),$,F,H)}function OR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Pr],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function ku(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+h0],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function wu(a,F){return o(a[1][1+Ur],a,F)}function Ii(a,F){return o(a[1][1+sr],a,F)}function w7(a,F){return o(a[1][1+h0],a,F)}function Ki(a,F){switch(F[0]){case 0:var m=function(Y0){return[0,Y0]},O=F[1];return ee(u(a[1][1+ve],a),O,F,m);case 1:var H=function(Y0){return[1,Y0]},$=F[1];return ee(u(a[1][1+xe],a),$,F,H);default:var r0=function(Y0){return[2,Y0]},j0=F[1];return ee(u(a[1][1+Re],a),j0,F,r0)}}function ev(a,F){var m=F[2],O=F[1],H=o(a[1][1+tn],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function Lb(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+s0],a,O);if(H){var r0=H[1],j0=o(a[1][1+tn],a,r0);return r0===j0&&O===$?m:[0,[0,j0],$]}return O===$?m:[0,0,$]}function nv(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return te(u(a[1][1+Ge],a),O,$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return te(u(a[1][1+Kr],a),O,j0,F,r0);case 2:var Y0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return te(u(a[1][1+re],a),O,Nr,F,Y0);case 3:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+F0],a),Fe,F,Gr);default:return F}}function Rb(a,F){var m=F[2],O=Xn(u(a[1][1+We],a),m);return m===O?F:[0,F[1],O]}function jb(a,F,m){return ur(a[1][1+J0],a,F,m)}function IR(a,F,m){return ur(a[1][1+re],a,F,m)}function wne(a,F){if(F[0]===0){var m=F[1],O=function(Y0){return[0,m,Y0]},H=F[2];return te(u(a[1][1+Ae],a),m,H,F,O)}var $=F[1];function r0(Y0){return[1,$,Y0]}var j0=F[2];return te(u(a[1][1+cn],a),$,j0,F,r0)}function Ene(a,F){return o(a[1][1+sr],a,F)}function Sne(a,F){return o(a[1][1+h0],a,F)}function gne(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+ln],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+wn],a),$,F,H)}function Fne(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Ce],a,H),r0=ze(u(a[1][1+en],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Tne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function One(a,F){if(F[0]===0){var m=function(Y0){return[0,Y0]},O=F[1];return ee(u(a[1][1+Je],a),O,F,m)}var H=F[1],$=H[1];function r0(Y0){return[1,[0,$,Y0]]}var j0=H[2];return te(u(a[1][1+Sr],a),$,j0,F,r0)}function Ine(a,F){var m=F[2][1],O=o(a[1][1+Ie],a,m);return m===O?F:[0,F[1],[0,O]]}function Ane(a,F){var m=F[2],O=m[3],H=m[1],$=o(a[1][1+Ie],a,H),r0=Xn(u(a[1][1+Cr],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,m[2],r0]]}function Nne(a,F,m){var O=m[4],H=m[3],$=o(a[1][1+an],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],m[2],$,r0]}function Cne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+mr],a,r0),Y0=ze(u(a[1][1+Me],a),$),Nr=o(a[1][1+an],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Nr&&O===Gr?m:[0,j0,Y0,Nr,Gr]}function Pne(a,F,m,O){var H=2<=F?o(a[1][1+L0],a,x6r):u(a[1][1+Vc],a);return u(H,O)}function Dne(a,F,m){var O=2<=F?o(a[1][1+L0],a,f6r):u(a[1][1+Vc],a);return u(O,m)}function Lne(a,F,m){var O=m[3],H=m[2],$=m[1],r0=0;if(F){var j0=0;if($)switch($[1]){case 2:break;case 0:r0=1,j0=2;break;default:j0=1}var Y0=0;switch(j0){case 2:Y0=1;break;case 0:if(2<=F){var Nr=0,Gr=0;Y0=1}break}if(!Y0)var Nr=1,Gr=0}else r0=1;if(r0)var Nr=1,Gr=1;var Fe=o(Gr?a[1][1+m0]:a[1][1+bt],a,O);if(H)var _e=Nr?u(a[1][1+Vc],a):o(a[1][1+L0],a,i6r),Dn=function(at){return[0,at]},hn=ee(_e,H[1],H,Dn);else var hn=H;return H===hn&&O===Fe?m:[0,$,hn,Fe]}function Rne(a,F,m){if(m[0]===0){var O=m[1],H=Xn(o(a[1][1+Ft],a,F),O);return O===H?m:[0,H]}var $=m[1],r0=$[1];function j0(Nr){return[1,[0,r0,Nr]]}var Y0=$[2];return te(o(a[1][1+Nt],a,F),r0,Y0,m,j0)}function jne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[1],j0=ze(o(a[1][1+lt],a,r0),H),Y0=ze(o(a[1][1+ru],a,r0),$),Nr=o(a[1][1+s0],a,O);return H===j0&&$===Y0&&O===Nr?m:[0,r0,m[2],Y0,j0,Nr]}function Gne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),Y0=ur(a[1][1+du],a,H!==0?1:0,$),Nr=u(a[1][1+Wu],a),Gr=ze(function(_e){return _u(Nr,_e)},H),Fe=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Gr&&O===Fe?m:[0,j0,Y0,Gr,Fe]}function Mne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Or],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Bne(a,F,m){return o(a[1][1+Or],a,m)}function qne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Une(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Hne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Xne(a,F,m){return ur(a[1][1+Yn],a,F,m)}function Yne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],Y0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=u(a[1][1+au],a),Fe=Xn(function(hn){return _u(Gr,hn)},$),_e=_u(u(a[1][1+qr],a),H),Dn=o(a[1][1+s0],a,O);return Y0===j0&&Nr===r0&&Fe===$&&_e===H&&Dn===O?m:[0,Y0,Nr,Fe,_e,Dn]}function Vne(a,F){return o(a[1][1+k0],a,F)}function zne(a,F){return o(a[1][1+k0],a,F)}function Kne(a,F){return o(a[1][1+bt],a,F)}function Wne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Jne(a,F,m){return m}function $ne(a,F){return ur(a[1][1+L0],a,u6r,F)}function Zne(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+zi],a),m,H,F,O)}function Qne(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+ot],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+tn],a),$,F,H)}function rte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=ze(u(a[1][1+tn],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function ete(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function nte(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=Xn(u(a[1][1+He],a),$),Y0=ze(u(a[1][1+pt],a),H),Nr=ze(u(a[1][1+W7],a),r0),Gr=o(a[1][1+s0],a,O);return $===j0&&H===Y0&&O===Gr&&r0===Nr?F:[0,F[1],[0,Nr,j0,Y0,Gr]]}function tte(a,F,m){var O=m[9],H=m[8],$=m[7],r0=m[6],j0=m[3],Y0=m[2],Nr=m[1],Gr=ze(u(a[1][1+he],a),Nr),Fe=o(a[1][1+B0],a,Y0),_e=o(a[1][1+x0],a,$),Dn=o(a[1][1+xt],a,j0),hn=ze(u(a[1][1+Ir],a),r0),at=ze(u(a[1][1+V],a),H),mt=o(a[1][1+s0],a,O);return Nr===Gr&&Y0===Fe&&j0===Dn&&r0===hn&&$===_e&&H===at&&O===mt?m:[0,Gr,Fe,Dn,m[4],m[5],hn,_e,at,mt,m[10]]}function ute(a,F,m){return ur(a[1][1+jn],a,F,m)}function ite(a,F,m){return ur(a[1][1+me],a,F,m)}function fte(a,F,m){return ur(a[1][1+jn],a,F,m)}function xte(a,F){if(F[0]===0)return F;var m=F[1],O=o(a[1][1+l],a,m);return O===m?F:[1,O]}function ote(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return ee(u(a[1][1+t0],a),H,F,O)}function ate(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Ze){return[0,O,[0,Ze]]},$=m[1];return ee(u(a[1][1+s0],a),$,F,H);case 1:var r0=function(Ze){return[0,O,[1,Ze]]},j0=m[1];return ee(u(a[1][1+s0],a),j0,F,r0);case 2:var Y0=function(Ze){return[0,O,[2,Ze]]},Nr=m[1];return ee(u(a[1][1+s0],a),Nr,F,Y0);case 3:var Gr=function(Ze){return[0,O,[3,Ze]]},Fe=m[1];return ee(u(a[1][1+s0],a),Fe,F,Gr);case 4:var _e=function(Ze){return[0,O,[4,Ze]]},Dn=m[1];return ee(u(a[1][1+s0],a),Dn,F,_e);case 5:var hn=function(Ze){return[0,O,[5,Ze]]},at=m[1];return ee(u(a[1][1+s0],a),at,F,hn);case 6:var mt=function(Ze){return[0,O,[6,Ze]]},wt=m[1];return ee(u(a[1][1+s0],a),wt,F,mt);case 7:var $n=function(Ze){return[0,O,[7,Ze]]},eu=m[1];return ee(u(a[1][1+s0],a),eu,F,$n);case 8:var J7=function(Ze){return[0,O,[8,Ze]]},$7=m[1];return ee(u(a[1][1+s0],a),$7,F,J7);case 9:var E7=function(Ze){return[0,O,[9,Ze]]},Z7=m[1];return ee(u(a[1][1+s0],a),Z7,F,E7);case 10:var Q7=function(Ze){return[0,O,[10,Ze]]},ri=m[1];return ee(u(a[1][1+s0],a),ri,F,Q7);case 11:var ei=function(Ze){return[0,O,[11,Ze]]},ni=m[1];return ee(u(a[1][1+k],a),ni,F,ei);case 12:var Wi=function(Ze){return[0,O,[12,Ze]]},tv=m[1];return te(u(a[1][1+a7],a),O,tv,F,Wi);case 13:var uv=function(Ze){return[0,O,[13,Ze]]},Ji=m[1];return te(u(a[1][1+qr],a),O,Ji,F,uv);case 14:var iv=function(Ze){return[0,O,[14,Ze]]},Gb=m[1];return te(u(a[1][1+yn],a),O,Gb,F,iv);case 15:var Mb=function(Ze){return[0,O,[15,Ze]]},Bb=m[1];return ee(u(a[1][1+Zs],a),Bb,F,Mb);case 16:var qb=function(Ze){return[0,O,[16,Ze]]},Ub=m[1];return te(u(a[1][1+au],a),O,Ub,F,qb);case 17:var Hb=function(Ze){return[0,O,[17,Ze]]},Xb=m[1];return te(u(a[1][1+Fn],a),O,Xb,F,Hb);case 18:var Yb=function(Ze){return[0,O,[18,Ze]]},Vb=m[1];return te(u(a[1][1+vr],a),O,Vb,F,Yb);case 19:var zb=function(Ze){return[0,O,[19,Ze]]},Kb=m[1];return te(u(a[1][1+d],a),O,Kb,F,zb);case 20:var Wb=function(Ze){return[0,O,[20,Ze]]},Jb=m[1];return te(u(a[1][1+nn],a),O,Jb,F,Wb);case 21:var $b=function(Ze){return[0,O,[21,Ze]]},Zb=m[1];return ee(u(a[1][1+G],a),Zb,F,$b);case 22:var Qb=function(Ze){return[0,O,[22,Ze]]},r4=m[1];return ee(u(a[1][1+o0],a),r4,F,Qb);case 23:var e4=function(Ze){return[0,O,[23,Ze]]},n4=m[1];return te(u(a[1][1+Lr],a),O,n4,F,e4);case 24:var t4=function(Ze){return[0,O,[24,Ze]]},u4=m[1];return te(u(a[1][1+_],a),O,u4,F,t4);case 25:var i4=function(Ze){return[0,O,[25,Ze]]},f4=m[1];return te(u(a[1][1+p2],a),O,f4,F,i4);default:var x4=function(Ze){return[0,O,[26,Ze]]},o4=m[1];return te(u(a[1][1+f_],a),O,o4,F,x4)}}function cte(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],Y0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Xn(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return Y0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,Y0,Nr,Gr],Fe]}function ste(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],Y0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Xn(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return Y0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,Y0,Nr,Gr],Fe]}function vte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function lte(a,F){var m=F[2],O=F[1],H=Xn(u(a[1][1+t0],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function bte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K],a,H),r0=o(a[1][1+S],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function pte(a,F){return o(a[1][1+bt],a,F)}function mte(a,F){return o(a[1][1+bt],a,F)}function _te(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+M],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+A],a),$,F,H)}function yte(a,F){var m=F[2],O=F[1],H=o(a[1][1+K],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function hte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function dte(a,F,m){var O=m[2],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],H]}function kte(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function wte(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Ete(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Ste(a,F,m){var O=m[1],H=ur(a[1][1+Fn],a,F,O);return H===O?m:[0,H,m[2]]}function gte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+t0],a,$),j0=o(a[1][1+t0],a,H),Y0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&Y0===O?m:[0,r0,j0,Y0]}function Fte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+K7],a,$),j0=ze(u(a[1][1+e0],a),H),Y0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&Y0===O?m:[0,r0,j0,Y0]}function Tte(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+x0],a,$),Y0=o(a[1][1+c],a,H),Nr=ze(u(a[1][1+t0],a),O),Gr=o(a[1][1+Vc],a,r0);return Gr===r0&&j0===$&&Y0===H&&Nr===O?F:[0,F[1],[0,Gr,j0,Y0,Nr]]}function Ote(a,F){var m=F[2],O=m[2],H=m[1],$=Xn(u(a[1][1+f0],a),H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Ite(a,F){var m=F[2],O=m[2],H=m[1],$=Xn(u(a[1][1+t0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Ate(a,F){return ze(u(a[1][1+s],a),F)}function Nte(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Cte(a,F){return o(a[1][1+bt],a,F)}function Pte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K7],a,H),r0=o(a[1][1+Y],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Dte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+m0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Bu],a),$,F,H)}function Lte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=u(a[1][1+au],a),j0=Xn(function(Gr){return _u(r0,Gr)},H),Y0=_u(u(a[1][1+qr],a),$),Nr=o(a[1][1+s0],a,O);return j0===H&&Y0===$&&O===Nr?m:[0,Y0,j0,Nr]}function Rte(a,F,m){var O=m[4],H=m[3],$=Xn(function(j0){switch(j0[0]){case 0:var Y0=function($n){return[0,$n]},Nr=j0[1];return ee(u(a[1][1+ne],a),Nr,j0,Y0);case 1:var Gr=function($n){return[1,$n]},Fe=j0[1];return ee(u(a[1][1+jr],a),Fe,j0,Gr);case 2:var _e=function($n){return[2,$n]},Dn=j0[1];return ee(u(a[1][1+ge],a),Dn,j0,_e);case 3:var hn=function($n){return[3,$n]},at=j0[1];return ee(u(a[1][1+q0],a),at,j0,hn);default:var mt=function($n){return[4,$n]},wt=j0[1];return ee(u(a[1][1+ce],a),wt,j0,mt)}},H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],m[2],$,r0]}function jte(a,F){var m=F[2],O=m[3],H=m[1],$=H[2],r0=H[1],j0=ur(a[1][1+a7],a,r0,$),Y0=o(a[1][1+s0],a,O);return $===j0&&O===Y0?F:[0,F[1],[0,[0,r0,j0],m[2],Y0]]}function Gte(a,F){var m=F[2],O=m[6],H=m[2],$=m[1],r0=o(a[1][1+bt],a,$),j0=o(a[1][1+t0],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?F:[0,F[1],[0,r0,j0,m[3],m[4],m[5],Y0]]}function Mte(a,F){var m=F[2],O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+t0],a,r0),Y0=o(a[1][1+t0],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&Y0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,m[1],j0,Y0,m[4],Nr,Gr]]}function Bte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?F:[0,F[1],[0,$,r0]]}function qte(a,F){var m=F[2],O=m[8],H=m[7],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),Y0=o(a[1][1+$r],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&Y0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,j0,Y0,m[3],m[4],m[5],m[6],Nr,Gr]]}function Ute(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Hte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Xte(a,F){switch(F[0]){case 0:var m=function(Y0){return[0,Y0]},O=F[1];return ee(u(a[1][1+t0],a),O,F,m);case 1:var H=function(Y0){return[1,Y0]},$=F[1];return ee(u(a[1][1+Br],a),$,F,H);default:var r0=function(Y0){return[2,Y0]},j0=F[1];return ee(u(a[1][1+Mr],a),j0,F,r0)}}function Yte(a,F){return o(a[1][1+bt],a,F)}function Vte(a,F,m){var O=m[4],H=m[3],$=m[2],r0=$[2],j0=r0[4],Y0=r0[3],Nr=r0[2],Gr=r0[1],Fe=m[1],_e=ze(u(a[1][1+Hc],a),Gr),Dn=Xn(u(a[1][1+D0],a),Nr),hn=ze(u(a[1][1+Ut],a),Y0),at=o(a[1][1+t0],a,H),mt=ze(u(a[1][1+V],a),Fe),wt=o(a[1][1+s0],a,O),$n=o(a[1][1+s0],a,j0);return Dn===Nr&&hn===Y0&&at===H&&mt===Fe&&wt===O&&$n===j0&&_e===Gr?m:[0,mt,[0,$[1],[0,_e,Dn,hn,$n]],at,wt]}function zte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Kte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+D0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Wte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,O),r0=ze(u(a[1][1+bt],a),H);return $===O&&r0===H?F:[0,F[1],[0,r0,$,m[3]]]}function Jte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function $te(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Ti],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+tn],a),$,F,H)}function Zte(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],Y0=ze(u(a[1][1+ut],a),j0),Nr=ze(u(a[1][1+_r],a),r0),Gr=ze(u(a[1][1+tn],a),$),Fe=o(a[1][1+Or],a,H),_e=o(a[1][1+s0],a,O);return j0===Y0&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,Y0,Nr,Gr,Fe,_e]}function Qte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function rue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+it],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Ot],a),$,F,H)}function eue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+xn],a,r0),Y0=o(a[1][1+tn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Nr&&O===Gr?m:[0,j0,Y0,Nr,m[4],Gr]}function nue(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function tue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Hs],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Vi],a),$,F,H)}function uue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+hs],a,r0),Y0=o(a[1][1+tn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Nr&&O===Gr?m:[0,j0,Y0,Nr,m[4],Gr]}function iue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+tn],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Rr],a),$,F,H)}function fue(a,F,m){var O=m[3],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,m[2],r0]}function xue(a,F){if(F[0]===0){var m=F[1],O=Xn(u(a[1][1+Vs],a),m);return m===O?F:[0,O]}var H=F[1],$=o(a[1][1+q9],a,H);return H===$?F:[1,$]}function oue(a,F){var m=F[2],O=ze(u(a[1][1+bt],a),m);return m===O?F:[0,F[1],O]}function aue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+bt],a,H),r0=ze(u(a[1][1+bt],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function cue(a,F,m){var O=m[5],H=m[2],$=m[1],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Or],a),$),Y0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===Y0?m:[0,j0,r0,m[3],m[4],Y0]}function sue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Or],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+tn],a),$,F,H)}function vue(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+M9],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?m:[0,m[1],$,r0]}function lue(a,F){return o(a[1][1+bt],a,F)}function bue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function pue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function mue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function _ue(a,F){var m=F[2][1],O=o(a[1][1+H1],a,m);return m===O?F:[0,F[1],[0,O]]}function yue(a,F){var m=F[3],O=F[1],H=Xn(u(a[1][1+vi],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],$]}function hue(a,F){var m=F[4],O=F[1];if(O[0]===0)var H=function(_e){return[0,_e]},$=O[1],r0=u(a[1][1+vi],a),Gr=ee(function(_e){return Xn(r0,_e)},$,O,H);else var j0=function(_e){return[1,_e]},Y0=O[1],Nr=u(a[1][1+s2],a),Gr=ee(function(_e){return Xn(Nr,_e)},Y0,O,j0);var Fe=o(a[1][1+s0],a,m);return O===Gr&&m===Fe?F:[0,Gr,F[2],F[3],Fe]}function due(a,F){var m=F[4],O=F[1],H=Xn(u(a[1][1+H9],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function kue(a,F){var m=F[4],O=F[1],H=Xn(u(a[1][1+cb],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function wue(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return ee(u(a[1][1+sb],a),$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return ee(u(a[1][1+X9],a),j0,F,r0);case 2:var Y0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return ee(u(a[1][1+U9],a),Nr,F,Y0);default:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+zs],a),Fe,F,Gr)}}function Eue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,t6r,$),j0=o(a[1][1+Y9],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function Sue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function gue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Or],a,$),j0=o(a[1][1+_r],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function Fue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,n6r,$),j0=o(a[1][1+l],a,H),Y0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&Y0===O?m:[0,r0,j0,Y0]}function Tue(a,F,m){return ur(a[1][1+c0],a,F,m)}function Oue(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Iue(a,F,m){var O=m[4],H=m[2],$=_u(u(a[1][1+zi],a),H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],$,m[3],r0]}function Aue(a,F,m){return ur(a[1][1+Yn],a,F,m)}function Nue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+he],a,r0),Y0=o(a[1][1+l],a,$),Nr=ze(u(a[1][1+Ir],a),H),Gr=o(a[1][1+s0],a,O);return j0===r0&&Y0===$&&Nr===H&&Gr===O?m:[0,j0,Y0,Nr,Gr]}function Cue(a,F){switch(F[0]){case 0:var m=F[1],O=m[2],H=m[1],$=ur(a[1][1+vb],a,H,O);return $===O?F:[0,[0,H,$]];case 1:var r0=F[1],j0=r0[2],Y0=r0[1],Nr=ur(a[1][1+lb],a,Y0,j0);return Nr===j0?F:[1,[0,Y0,Nr]];case 2:var Gr=F[1],Fe=Gr[2],_e=Gr[1],Dn=ur(a[1][1+v2],a,_e,Fe);return Dn===Fe?F:[2,[0,_e,Dn]];case 3:var hn=F[1],at=o(a[1][1+t0],a,hn);return at===hn?F:[3,at];case 4:var mt=F[1],wt=mt[2],$n=mt[1],eu=ur(a[1][1+c0],a,$n,wt);return eu===wt?F:[4,[0,$n,eu]];case 5:var J7=F[1],$7=J7[2],E7=J7[1],Z7=ur(a[1][1+Er],a,E7,$7);return Z7===$7?F:[5,[0,E7,Z7]];default:var Q7=F[1],ri=Q7[2],ei=Q7[1],ni=ur(a[1][1+Yn],a,ei,ri);return ni===ri?F:[6,[0,ei,ni]]}}function Pue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Z9],a),$),Y0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===Y0?m:[0,m[1],j0,r0,m[4],Y0]}function Due(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],Y0=m[2],Nr=m[1],Gr=o(a[1][1+hb],a,Nr),Fe=ze(u(a[1][1+V],a),Y0),_e=_u(u(a[1][1+qr],a),j0),Dn=u(a[1][1+au],a),hn=ze(function(eu){return _u(Dn,eu)},r0),at=u(a[1][1+au],a),mt=Xn(function(eu){return _u(at,eu)},$),wt=ze(u(a[1][1+l2],a),H),$n=o(a[1][1+s0],a,O);return Gr===Nr&&Fe===Y0&&_e===j0&&hn===r0&&mt===$&&wt===H&&$n===O?m:[0,Gr,Fe,_e,hn,mt,wt,$n]}function Lue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Rue(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function jue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),Y0=o(a[1][1+tn],a,$),Nr=o(a[1][1+tn],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Nr&&O===Gr?m:[0,j0,Y0,Nr,Gr]}function Gue(a,F,m){return m}function Mue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],Y0=o(a[1][1+ar],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===Y0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,Y0,Nr,Gr,m[4],Fe,_e]}function Bue(a,F){if(typeof F=="number")return F;var m=F[1],O=o(a[1][1+tn],a,m);return m===O?F:[0,O]}function que(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],Y0=o(a[1][1+oe],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===Y0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,Y0,Nr,Gr,m[4],Fe,_e]}function Uue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+oe],a,r0),Y0=_u(u(a[1][1+me],a),$),Nr=Xn(u(a[1][1+db],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Nr&&O===Gr?m:[0,m[1],j0,Y0,m[4],Nr,Gr]}function Hue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+m0],a,H),r0=ze(u(a[1][1+e0],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Xue(a,F){var m=F[2],O=m[2],H=m[1],$=Xn(u(a[1][1+r_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Yue(a,F){switch(F[0]){case 0:var m=F[1],O=m[1],H=function(hn){return[0,[0,O,hn]]},$=m[2];return te(u(a[1][1+Xc],a),O,$,F,H);case 1:var r0=F[1],j0=r0[1],Y0=function(hn){return[1,[0,j0,hn]]},Nr=r0[2];return te(u(a[1][1+yb],a),j0,Nr,F,Y0);default:var Gr=F[1],Fe=Gr[1],_e=function(hn){return[2,[0,Fe,hn]]},Dn=Gr[2];return te(u(a[1][1+Q9],a),Fe,Dn,F,_e)}}function Vue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+tn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function zue(a,F){var m=F[2],O=m[2],H=m[1],$=Xn(u(a[1][1+Ks],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Kue(a,F){return ur(a[1][1+L0],a,e6r,F)}function Wue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+tn],a,$),j0=ze(u(a[1][1+e0],a),H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function Jue(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],Y0=m[2],Nr=m[1],Gr=ze(u(a[1][1+hb],a),Nr),Fe=o(a[1][1+n_],a,Y0),_e=ze(u(a[1][1+V],a),j0),Dn=u(a[1][1+Yc],a),hn=ze(function($n){return _u(Dn,$n)},r0),at=ze(u(a[1][1+l2],a),$),mt=Xn(u(a[1][1+db],a),H),wt=o(a[1][1+s0],a,O);return Nr===Gr&&Y0===Fe&&r0===hn&&$===at&&H===mt&&O===wt&&j0===_e?m:[0,Gr,Fe,_e,hn,at,mt,wt]}function $ue(a,F,m){return ur(a[1][1+ds],a,F,m)}function Zue(a,F,m){return ur(a[1][1+ds],a,F,m)}function Que(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+t_],a),$),j0=o(a[1][1+u_],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,r0,j0,Y0]}function r7e(a,F){return _u(u(a[1][1+zi],a),F)}function e7e(a,F){if(F[0]===0){var m=F[1],O=o(a[1][1+t0],a,m);return O===m?F:[0,O]}var H=F[1],$=H[2][1],r0=o(a[1][1+s0],a,$);return $===r0?F:[1,[0,H[1],[0,r0]]]}function n7e(a,F){var m=F[2],O=m[2],H=m[1],$=Xn(u(a[1][1+i_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function t7e(a,F,m){var O=m[1],H=ur(a[1][1+kb],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function u7e(a,F){var m=F[2],O=m[2],H=m[1],$=Xn(u(a[1][1+Ys],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function i7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+tn],a,r0),Y0=ze(u(a[1][1+b2],a),$),Nr=o(a[1][1+Ws],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===Y0&&H===Nr&&O===Gr?m:[0,j0,Y0,Nr,Gr]}function f7e(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function x7e(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Tr],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function o7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+tn],a,$),j0=o(a[1][1+tn],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,m[1],r0,j0,Y0]}function a7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+m2],a,$),j0=o(a[1][1+tn],a,H),Y0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===Y0?m:[0,m[1],r0,j0,Y0]}function c7e(a,F,m){return ur(a[1][1+jn],a,F,m)}function s7e(a,F){switch(F[0]){case 0:var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+tn],a),O,F,m);case 1:var H=function(r0){return[1,r0]},$=F[1];return ee(u(a[1][1+Rr],a),$,F,H);default:return F}}function v7e(a,F,m){var O=m[2],H=m[1],$=Xn(u(a[1][1+a_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function l7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(qe){return[0,O,[0,qe]]},$=m[1];return te(u(a[1][1+y2],a),O,$,F,H);case 1:var r0=function(qe){return[0,O,[1,qe]]},j0=m[1];return te(u(a[1][1+o_],a),O,j0,F,r0);case 2:var Y0=function(qe){return[0,O,[2,qe]]},Nr=m[1];return te(u(a[1][1+_2],a),O,Nr,F,Y0);case 3:var Gr=function(qe){return[0,O,[3,qe]]},Fe=m[1];return te(u(a[1][1+x_],a),O,Fe,F,Gr);case 4:var _e=function(qe){return[0,O,[4,qe]]},Dn=m[1];return te(u(a[1][1+kb],a),O,Dn,F,_e);case 5:var hn=function(qe){return[0,O,[5,qe]]},at=m[1];return te(u(a[1][1+e_],a),O,at,F,hn);case 6:var mt=function(qe){return[0,O,[6,qe]]},wt=m[1];return te(u(a[1][1+Gn],a),O,wt,F,mt);case 7:var $n=function(qe){return[0,O,[7,qe]]},eu=m[1];return te(u(a[1][1+mb],a),O,eu,F,$n);case 8:var J7=function(qe){return[0,O,[8,qe]]},$7=m[1];return te(u(a[1][1+et],a),O,$7,F,J7);case 9:var E7=function(qe){return[0,O,[9,qe]]},Z7=m[1];return te(u(a[1][1+Yi],a),O,Z7,F,E7);case 10:var Q7=function(qe){return[0,O,[10,qe]]},ri=m[1];return ee(u(a[1][1+bt],a),ri,F,Q7);case 11:var ei=function(qe){return[0,O,[11,qe]]},ni=m[1];return ee(o(a[1][1+Tt],a,O),ni,F,ei);case 12:var Wi=function(qe){return[0,O,[12,qe]]},tv=m[1];return te(u(a[1][1+Ge],a),O,tv,F,Wi);case 13:var uv=function(qe){return[0,O,[13,qe]]},Ji=m[1];return te(u(a[1][1+Kr],a),O,Ji,F,uv);case 14:var iv=function(qe){return[0,O,[14,qe]]},Gb=m[1];return te(u(a[1][1+J0],a),O,Gb,F,iv);case 15:var Mb=function(qe){return[0,O,[15,qe]]},Bb=m[1];return te(u(a[1][1+H0],a),O,Bb,F,Mb);case 16:var qb=function(qe){return[0,O,[16,qe]]},Ub=m[1];return te(u(a[1][1+u0],a),O,Ub,F,qb);case 17:var Hb=function(qe){return[0,O,[17,qe]]},Xb=m[1];return te(u(a[1][1+U],a),O,Xb,F,Hb);case 18:var Yb=function(qe){return[0,O,[18,qe]]},Vb=m[1];return te(u(a[1][1+I],a),O,Vb,F,Yb);case 19:var zb=function(qe){return[0,O,[19,qe]]},Kb=m[1];return te(u(a[1][1+gr],a),O,Kb,F,zb);case 20:var Wb=function(qe){return[0,O,[20,qe]]},Jb=m[1];return ee(o(a[1][1+$0],a,O),Jb,F,Wb);case 21:var $b=function(qe){return[0,O,[21,qe]]},Zb=m[1];return te(u(a[1][1+yr],a),O,Zb,F,$b);case 22:var Qb=function(qe){return[0,O,[22,qe]]},r4=m[1];return te(u(a[1][1+Wr],a),O,r4,F,Qb);case 23:var e4=function(qe){return[0,O,[23,qe]]},n4=m[1];return te(u(a[1][1+W0],a),O,n4,F,e4);case 24:var t4=function(qe){return[0,O,[24,qe]]},u4=m[1];return te(u(a[1][1+X],a),O,u4,F,t4);case 25:var i4=function(qe){return[0,O,[25,qe]]},f4=m[1];return te(u(a[1][1+R0],a),O,f4,F,i4);case 26:var x4=function(qe){return[0,O,[26,qe]]},o4=m[1];return te(u(a[1][1+U0],a),O,o4,F,x4);case 27:var Ze=function(qe){return[0,O,[27,qe]]},AR=m[1];return te(u(a[1][1+g0],a),O,AR,F,Ze);case 28:var NR=function(qe){return[0,O,[28,qe]]},CR=m[1];return te(u(a[1][1+w],a),O,CR,F,NR);case 29:var PR=function(qe){return[0,O,[29,qe]]},DR=m[1];return te(u(a[1][1+E],a),O,DR,F,PR);default:var LR=function(qe){return[0,O,[30,qe]]},RR=m[1];return te(u(a[1][1+e],a),O,RR,F,LR)}}function b7e(a,F){var m=F[2],O=F[1],H=Xn(u(a[1][1+Y1],a),O),$=Xn(u(a[1][1+Y1],a),m);return O===H&&m===$?F:[0,H,$,F[3]]}var p7e=8;function m7e(a,F){return F}function _7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Oe){return[0,O,[0,Oe]]},$=m[1];return te(u(a[1][1+zi],a),O,$,F,H);case 1:var r0=function(Oe){return[0,O,[1,Oe]]},j0=m[1];return te(u(a[1][1+Js],a),O,j0,F,r0);case 2:var Y0=function(Oe){return[0,O,[2,Oe]]},Nr=m[1];return te(u(a[1][1+V1],a),O,Nr,F,Y0);case 3:var Gr=function(Oe){return[0,O,[3,Oe]]},Fe=m[1];return te(u(a[1][1+pb],a),O,Fe,F,Gr);case 4:var _e=function(Oe){return[0,O,[4,Oe]]},Dn=m[1];return te(u(a[1][1+bb],a),O,Dn,F,_e);case 5:var hn=function(Oe){return[0,O,[5,Oe]]},at=m[1];return te(u(a[1][1+v2],a),O,at,F,hn);case 6:var mt=function(Oe){return[0,O,[6,Oe]]},wt=m[1];return te(u(a[1][1+X1],a),O,wt,F,mt);case 7:var $n=function(Oe){return[0,O,[7,Oe]]},eu=m[1];return te(u(a[1][1+lb],a),O,eu,F,$n);case 8:var J7=function(Oe){return[0,O,[8,Oe]]},$7=m[1];return te(u(a[1][1+$9],a),O,$7,F,J7);case 9:var E7=function(Oe){return[0,O,[9,Oe]]},Z7=m[1];return te(u(a[1][1+J9],a),O,Z7,F,E7);case 10:var Q7=function(Oe){return[0,O,[10,Oe]]},ri=m[1];return te(u(a[1][1+W9],a),O,ri,F,Q7);case 11:var ei=function(Oe){return[0,O,[11,Oe]]},ni=m[1];return te(u(a[1][1+K9],a),O,ni,F,ei);case 12:var Wi=function(Oe){return[0,O,[33,Oe]]},tv=m[1];return te(u(a[1][1+Er],a),O,tv,F,Wi);case 13:var uv=function(Oe){return[0,O,[13,Oe]]},Ji=m[1];return te(u(a[1][1+vb],a),O,Ji,F,uv);case 14:var iv=function(Oe){return[0,O,[14,Oe]]},Gb=m[1];return te(u(a[1][1+z9],a),O,Gb,F,iv);case 15:var Mb=function(Oe){return[0,O,[15,Oe]]},Bb=m[1];return te(u(a[1][1+V9],a),O,Bb,F,Mb);case 16:var qb=function(Oe){return[0,O,[16,Oe]]},Ub=m[1];return te(u(a[1][1+ab],a),O,Ub,F,qb);case 17:var Hb=function(Oe){return[0,O,[17,Oe]]},Xb=m[1];return te(u(a[1][1+B9],a),O,Xb,F,Hb);case 18:var Yb=function(Oe){return[0,O,[18,Oe]]},Vb=m[1];return te(u(a[1][1+c2],a),O,Vb,F,Yb);case 19:var zb=function(Oe){return[0,O,[19,Oe]]},Kb=m[1];return te(u(a[1][1+Xs],a),O,Kb,F,zb);case 20:var Wb=function(Oe){return[0,O,[20,Oe]]},Jb=m[1];return te(u(a[1][1+kt],a),O,Jb,F,Wb);case 21:var $b=function(Oe){return[0,O,[21,Oe]]},Zb=m[1];return te(u(a[1][1+Au],a),O,Zb,F,$b);case 22:var Qb=function(Oe){return[0,O,[22,Oe]]},r4=m[1];return te(u(a[1][1+bn],a),O,r4,F,Qb);case 23:var e4=function(Oe){return[0,O,[23,Oe]]},n4=m[1];return te(u(a[1][1+En],a),O,n4,F,e4);case 24:var t4=function(Oe){return[0,O,[24,Oe]]},u4=m[1];return te(u(a[1][1+Ct],a),O,u4,F,t4);case 25:var i4=function(Oe){return[0,O,[25,Oe]]},f4=m[1];return te(u(a[1][1+qt],a),O,f4,F,i4);case 26:var x4=function(Oe){return[0,O,[26,Oe]]},o4=m[1];return te(u(a[1][1+Cn],a),O,o4,F,x4);case 27:var Ze=function(Oe){return[0,O,[27,Oe]]},AR=m[1];return te(u(a[1][1+ir],a),O,AR,F,Ze);case 28:var NR=function(Oe){return[0,O,[28,Oe]]},CR=m[1];return te(u(a[1][1+Jr],a),O,CR,F,NR);case 29:var PR=function(Oe){return[0,O,[29,Oe]]},DR=m[1];return te(u(a[1][1+or],a),O,DR,F,PR);case 30:var LR=function(Oe){return[0,O,[30,Oe]]},RR=m[1];return te(u(a[1][1+E0],a),O,RR,F,LR);case 31:var qe=function(Oe){return[0,O,[31,Oe]]},y7e=m[1];return te(u(a[1][1+w0],a),O,y7e,F,qe);case 32:var h7e=function(Oe){return[0,O,[32,Oe]]},d7e=m[1];return te(u(a[1][1+c0],a),O,d7e,F,h7e);case 33:var k7e=function(Oe){return[0,O,[33,Oe]]},w7e=m[1];return te(u(a[1][1+Er],a),O,w7e,F,k7e);case 34:var E7e=function(Oe){return[0,O,[34,Oe]]},S7e=m[1];return te(u(a[1][1+T],a),O,S7e,F,E7e);case 35:var g7e=function(Oe){return[0,O,[35,Oe]]},F7e=m[1];return te(u(a[1][1+x],a),O,F7e,F,g7e);default:var T7e=function(Oe){return[0,O,[36,Oe]]},O7e=m[1];return te(u(a[1][1+i],a),O,O7e,F,T7e)}}return jN(t,[0,qL,function(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_0],a,$),j0=o(a[1][1+s0],a,H),Y0=Xn(u(a[1][1+Y1],a),O);return $===r0&&H===j0&&O===Y0?F:[0,F[1],[0,r0,j0,Y0]]},Or,_7e,Y1,m7e,s0,p7e,ze,hr,hr,b7e,tn,l7e,y2,v7e,a_,s7e,o_,c7e,_2,a7e,x_,o7e,zi,x7e,Js,f7e,kb,i7e,Ws,u7e,$0,t7e,b2,n7e,i_,e7e,u_,r7e,z1,Que,V1,Zue,e_,$ue,ds,Jue,Yc,Wue,hb,Kue,n_,zue,db,Vue,Ks,Yue,l2,Xue,r_,Hue,Xc,Uue,yb,que,_b,Bue,Q9,Mue,Gn,Gue,mb,jue,pb,Rue,bb,Lue,v2,Due,X1,Pue,Z9,Cue,lb,Nue,$9,Aue,J9,Iue,W9,Oue,K9,Tue,vb,Fue,z9,gue,V9,Sue,ab,Eue,Y9,wue,sb,kue,X9,due,U9,hue,zs,yue,vi,_ue,cb,mue,H9,pue,s2,bue,H1,lue,B9,vue,M9,sue,c2,cue,Vs,aue,q9,oue,si,xue,Xs,fue,Ys,iue,Au,uue,hs,tue,Hs,nue,bn,eue,xn,rue,it,Qte,kt,Zte,ut,$te,Ti,Jte,D0,Wte,Ut,Kte,Hc,zte,a7,Vte,Q0,Yte,$r,Xte,Br,Hte,Mr,Ute,ne,qte,jr,Bte,ge,Mte,ce,Gte,q0,jte,qr,Rte,yn,Lte,K7,Dte,Bu,Pte,Y,Cte,s,Nte,c,Ate,e0,Ite,V,Ote,f0,Tte,au,Fte,Fn,gte,vr,Ste,Lr,Ete,_,wte,p2,kte,f_,dte,k,hte,G,yte,K,_te,M,mte,S,pte,A,bte,o0,lte,Zs,vte,d,ste,nn,cte,t0,ate,l,ote,x0,xte,En,fte,et,ite,me,ute,jn,tte,B0,nte,W7,ete,He,rte,xt,Qne,ot,Zne,he,$ne,Yi,Jne,bt,Wne,k0,Kne,m0,zne,Vc,Vne,Yn,Yne,Cn,Xne,ar,Hne,On,Une,Tt,qne,du,Bne,Wu,Mne,Ct,Gne,qt,jne,lt,Rne,Ft,Lne,ru,Dne,Nt,Pne,Ge,Cne,Kr,Nne,mr,Ane,Me,Ine,Cr,One,Sr,Tne,Je,Fne,Ce,gne,ln,Sne,wn,Ene,en,wne,cn,IR,Ae,jb,an,Rb,We,nv,re,Lb,F0,ev,Ie,Ki,ve,w7,xe,Ii,Re,wu,sr,ku,Ur,OR,Pr,TR,K0,Db,h0,FR,ir,gR,J0,Pb,H0,SR,u0,ER,yr,wR,I0,E2,y0,kR,D,y_,P0,dR,U,hR,I,Cb,gr,yR,Qr,__,oe,_R,be,mR,ae,Nb,pe,pR,Er,bR,Le,lR,p,Ab,t_,m_,Vi,vR,Ot,p_,$s,Ib,m2,b_,er,sR,L0,l_,rr,cR,T0,Ob,S0,v_,Q,Tb,L,rv,i0,aR,l0,oR,v0,s_,P,Mn,fe,xR,M0,Fb,O0,fR,b0,gb,p0,iR,Z,Sb,K1,uR,B,Q1,Ir,tR,_r,w2,pt,nR,Jr,k2,Wr,eR,_0,c_,Tr,rR,Hr,QL,Rr,d2,fr,ZL,W0,$L,or,Eb,Ar,JL,X,wb,R0,WL,b,Z1,U0,KL,E0,$1,w0,zL,g0,h2,w,VL,E,YL,T,Oi,y,XL,x,J1,i,HL,c0,W1,e,UL]),function(a,F){return jp(F,t)}});function X00(t){switch(t[0]){case 0:return 1;case 3:return 3;default:return 2}}function Y00(t,n){u(f(t),F6r),o(f(t),O6r,T6r);var e=n[1];o(f(t),I6r,e),u(f(t),A6r),u(f(t),N6r),o(f(t),P6r,C6r);var i=n[2];return o(f(t),D6r,i),u(f(t),L6r),u(f(t),R6r)}var V00=function t(n,e){return t.fun(n,e)},See=function t(n){return t.fun(n)};N(V00,function(t,n){u(f(t),G6r),o(f(t),B6r,M6r);var e=n[1];if(e){g(t,q6r);var i=e[1];switch(i[0]){case 0:u(f(t),b6r);var x=i[1];o(f(t),p6r,x),u(f(t),m6r);break;case 1:u(f(t),_6r);var c=i[1];o(f(t),y6r,c),u(f(t),h6r);break;case 2:u(f(t),d6r);var s=i[1];o(f(t),k6r,s),u(f(t),w6r);break;default:u(f(t),E6r);var p=i[1];o(f(t),S6r,p),u(f(t),g6r)}g(t,U6r)}else g(t,H6r);return u(f(t),X6r),u(f(t),Y6r),o(f(t),z6r,V6r),Y00(t,n[2]),u(f(t),K6r),u(f(t),W6r),o(f(t),$6r,J6r),Y00(t,n[3]),u(f(t),Z6r),u(f(t),Q6r)}),N(See,function(t){return o(C0(j6r),V00,t)});function ht(t,n){return[0,t[1],t[2],n[3]]}function ps(t,n){var e=t[1]-n[1]|0;return e===0?t[2]-n[2]|0:e}function z00(t,n){var e=n[1],i=t[1];if(i)if(e)var x=e[1],c=i[1],s=X00(x),p=X00(c)-s|0,T=p===0?Ee(c[1],x[1]):p;else var T=-1;else var y=e&&1,T=y;if(T===0){var E=ps(t[2],n[2]);return E===0?ps(t[3],n[3]):E}return T}function Wv(t,n){return z00(t,n)===0?1:0}var WD=function t(n,e,i){return t.fun(n,e,i)},gee=Rp(npr,function(t){var n=NN(t,epr)[35],e=LN(t,0,0,rpr,KD,1)[1];return zz(t,n,function(i,x){return 0}),function(i,x){var c=jp(x,t);return u(e,c),RN(x,c,t)}});N(WD,function(t,n,e){var i=e[2];switch(i[0]){case 0:var x=i[1][1];return le(function(s,p){var y=p[0]===0?p[1][2][2]:p[1][2][1];return ur(WD,t,s,y)},n,x);case 1:var c=i[1][1];return le(function(s,p){return p[0]===2?s:ur(WD,t,s,p[1][2][1])},n,c);case 2:return o(t,n,i[1][1]);default:return n}});function Rc(t,n){return[0,n[1],[0,n[2],t]]}function K00(t,n,e){var i=t&&t[1],x=n&&n[1];return[0,i,x,e]}function lr(t,n,e){var i=t&&t[1],x=n&&n[1];return!i&&!x?x:[0,K00([0,i],[0,x],0)]}function yu(t,n,e,i){var x=t&&t[1],c=n&&n[1];return!x&&!c&&!e?e:[0,K00([0,x],[0,c],e)]}function y7(t,n){if(t){if(n){var e=n[1],i=t[1],x=[0,on(i[2],e[2])];return lr([0,on(e[1],i[1])],x,0)}var c=t}else var c=n;return c}function JD(t,n){if(n){if(t){var e=n[1],i=t[1],x=i[3],c=[0,on(i[2],e[2])];return yu([0,on(e[1],i[1])],c,x,0)}var s=n[1];return yu([0,s[1]],[0,s[2]],0,0)}return t}function Jv(t,n){for(var e=t,i=n;;){if(typeof e=="number")return i;if(e[0]===0)return[0,e[1],0,i];var x=[0,e[2],e[4],i],e=e[3],i=x}}function W00(t,n){if(t)var e=Jv(t[2],t[3]),i=function(c){return W00(e,c)},x=[0,t[1],i];else var x=t;return x}function Fee(t){var n=Jv(t,0);return function(e){return W00(n,e)}}function ms(t){return typeof t=="number"?0:t[0]===0?1:t[1]}function Tee(t){return[0,t]}function Y7(t,n,e){var i=0;if(typeof t=="number"){if(typeof e=="number")return[0,n];e[0]===1&&(i=1)}else if(t[0]===0)typeof e!="number"&&e[0]===1&&(i=1);else{var x=t[1];if(typeof e!="number"&&e[0]===1){var c=e[1],s=c<=x?x+1|0:c+1|0;return[1,s,n,t,e]}var p=x;i=2}switch(i){case 1:var p=e[1];break;case 0:return[1,2,n,t,e]}return[1,p+1|0,n,t,e]}function Ns(t,n,e){var i=ms(t),x=ms(e),c=x<=i?i+1|0:x+1|0;return[1,c,n,t,e]}function $D(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=$D(t,i),c=u(t,0),s=$D(t,(n-i|0)-1|0);return[1,ms(x)+1|0,c,x,s]}var p=[0,u(t,0)]}else var p=e;return p}function ki(t,n,e){var i=ms(t),x=ms(e);if((x+2|0)>1,b0=R0(p0,W0),O0=b0[1],M0=R0(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0<=jr){var yr=Er,vr=[0,Mr,vr];continue}var er=Br,vr=[0,qr,vr];continue}var $r=Lc(er,vr)}else var $r=Lc(yr,vr);return[0,$r,$0]}},R0=function(or,W0){if(or===2){if(W0){var Lr=W0[2];if(Lr){var Tr=Lr[1],Hr=W0[1],Or=Lr[2],fr=o(U0,Hr,Tr),Rr=fr===0?[0,Hr,0]:0<=fr?[0,Tr,[0,Hr,0]]:[0,Hr,[0,Tr,0]];return[0,Rr,Or]}}}else if(or===3&&W0){var Wr=W0[2];if(Wr){var Jr=Wr[2];if(Jr){var ar=Jr[1],_r=Wr[1],Ir=W0[1],fe=Jr[2],v0=o(U0,Ir,_r);if(v0===0)var P=o(U0,_r,ar),L=P===0?[0,_r,0]:0<=P?[0,ar,[0,_r,0]]:[0,_r,[0,ar,0]],Q=L;else if(0<=v0){var i0=o(U0,Ir,ar);if(i0===0)var T0=[0,_r,[0,Ir,0]];else if(0<=i0)var l0=o(U0,_r,ar),S0=l0===0?[0,_r,[0,Ir,0]]:0<=l0?[0,ar,[0,_r,[0,Ir,0]]]:[0,_r,[0,ar,[0,Ir,0]]],T0=S0;else var T0=[0,_r,[0,Ir,[0,ar,0]]];var Q=T0}else{var rr=o(U0,_r,ar);if(rr===0)var Z=[0,Ir,[0,_r,0]];else if(0<=rr)var L0=o(U0,Ir,ar),B=L0===0?[0,Ir,[0,_r,0]]:0<=L0?[0,ar,[0,Ir,[0,_r,0]]]:[0,Ir,[0,ar,[0,_r,0]]],Z=B;else var Z=[0,Ir,[0,_r,[0,ar,0]]];var Q=Z}return[0,Q,fe]}}}for(var p0=or>>1,b0=b(p0,W0),O0=b0[1],M0=b(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0>>0))switch(or){case 0:return[0,0,W0];case 1:if(W0)return[0,[0,W0[1]],W0[2]];break;case 2:if(W0){var Lr=W0[2];if(Lr)return[0,[1,2,Lr[1],[0,W0[1]],0],Lr[2]]}break;default:if(W0){var Tr=W0[2];if(Tr){var Hr=Tr[2];if(Hr)return[0,[1,2,Tr[1],[0,W0[1]],[0,Hr[1]]],Hr[2]]}}}var Or=or/2|0,fr=hr(Or,W0),Rr=fr[2];if(Rr){var Wr=hr((or-Or|0)-1|0,Rr[2]),Jr=Wr[2];return[0,Ns(fr[1],Rr[1],Wr[1]),Jr]}throw[0,Sn,Vpr]};return hr(Dc(s0),s0)[1]}var Ar=n(E0,n(w0,n(t0,[0,l])));return n(_0[1],Ar)}return n(E0,n(w0,n(t0,[0,l])))}return n(w0,n(t0,[0,l]))}return n(t0,[0,l])}return[0,l]}return vt}return[0,vt,rL,i,n,Tee,x,c,s,y,T,E,d,w,G,k0,A,S,M,K,V,QD,er0,Pl,Z00,Q00,Oee,Pl,Z00,f0,m0,Fee,g0,function(e0,x0,l){u(f(x0),Upr);var c0=er0(l);c0&&u(f(x0),Hpr);var t0=0;return le(function(o0,w0){return o0&&u(f(x0),qpr),o(e0,x0,w0),1},t0,c0),c0&&u(f(x0),Xpr),u(f(x0),Ypr)},$D]}var nr0=zpr.slice();function nL(t){for(var n=0,e=nr0.length-1-1|0;;){if(e>>18|0),Qn(i,x+1|0,jt|(p>>>12|0)&63),Qn(i,x+2|0,jt|(p>>>6|0)&63),Qn(i,x+3|0,jt|p&63);var y=x+4|0}else{Qn(i,x,hv|p>>>12|0),Qn(i,x+1|0,jt|(p>>>6|0)&63),Qn(i,x+2|0,jt|p&63);var y=x+3|0}else{Qn(i,x,zn|p>>>6|0),Qn(i,x+1|0,jt|p&63);var y=x+2|0}else{Qn(i,x,p);var y=x+1|0}var x=y,c=c-1|0,s=s+1|0;continue}throw I1}return x}}function pr0(t){for(var n=un(t),e=Gv(n,0),i=0,x=0;;){if(x>>6|0)!==2?1:0;if(E)var w=E;else var d=(y>>>6|0)!==2?1:0,w=d||((T>>>6|0)!==2?1:0);if(w)throw I1;e[1+i]=(c&7)<<18|(p&63)<<12|(y&63)<<6|T&63;var G=x+4|0}else if(hv<=c){var A=Vr(t,x+1|0),S=Vr(t,x+2|0),M=(c&15)<<12|(A&63)<<6|S&63,K=(A>>>6|0)!==2?1:0,V=K||((S>>>6|0)!==2?1:0);if(V)var m0=V;else var f0=55296<=M?1:0,m0=f0&&(M<=57088?1:0);if(m0)throw I1;e[1+i]=M;var G=x+3|0}else{var k0=Vr(t,x+1|0);if((k0>>>6|0)!==2)throw I1;e[1+i]=(c&31)<<6|k0&63;var G=x+2|0}else if(jt<=c)s=1;else{e[1+i]=c;var G=x+1|0}if(s)throw I1;var i=i+1|0,x=G;continue}return[0,e,i,lr0,vr0,sr0,cr0,ar0,or0,xr0,fr0,ir0,ur0]}}function jl(t,n,e){var i=t[6]+n|0,x=Lt(e*4|0),c=t[1];if((i+e|0)<=c.length-1)return qv(x,0,Rl(c,i,e,x));throw[0,Sn,Z9r]}function Se(t){var n=t[6],e=t[3]-n|0,i=Lt(e*4|0);return qv(i,0,Rl(t[1],n,e,i))}function Gl(t,n){var e=t[6],i=t[3]-e|0,x=Lt(i*4|0);return sN(n,x,0,Rl(t[1],e,i,x))}function uL(t){var n=t.length-1,e=Lt(n*4|0);return qv(e,0,Rl(t,0,n,e))}function mr0(t,n){return t[3]=t[3]-n|0,0}var _r0=0;function Aee(t,n,e){return[0,t,n,r_r,0,e,_r0,e_r]}function yr0(t){var n=t[2];return[0,t[1],[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12]],t[3],t[4],t[5],t[6],t[7]]}function hr0(t){return t[3][1]}function $m(t,n){return t!==n[4]?[0,n[1],n[2],n[3],t,n[5],n[6],n[7]]:n}var iL=function t(n,e){return t.fun(n,e)},dr0=function t(n,e){return t.fun(n,e)},fL=function t(n,e){return t.fun(n,e)},xL=function t(n,e){return t.fun(n,e)},kr0=function t(n,e){return t.fun(n,e)};N(iL,function(t,n){if(typeof t=="number"){var e=t;if(61<=e)if(92<=e)switch(e){case 92:if(typeof n=="number"&&n===92)return 1;break;case 93:if(typeof n=="number"&&n===93)return 1;break;case 94:if(typeof n=="number"&&n===94)return 1;break;case 95:if(typeof n=="number"&&n===95)return 1;break;case 96:if(typeof n=="number"&&n===96)return 1;break;case 97:if(typeof n=="number"&&n===97)return 1;break;case 98:if(typeof n=="number"&&n===98)return 1;break;case 99:if(typeof n=="number"&&n===99)return 1;break;case 100:if(typeof n=="number"&&ti===n)return 1;break;case 101:if(typeof n=="number"&&R7===n)return 1;break;case 102:if(typeof n=="number"&&Ri===n)return 1;break;case 103:if(typeof n=="number"&&s7===n)return 1;break;case 104:if(typeof n=="number"&&L7===n)return 1;break;case 105:if(typeof n=="number"&&j7===n)return 1;break;case 106:if(typeof n=="number"&&Vt===n)return 1;break;case 107:if(typeof n=="number"&&Zc===n)return 1;break;case 108:if(typeof n=="number"&&is===n)return 1;break;case 109:if(typeof n=="number"&&Fv===n)return 1;break;case 110:if(typeof n=="number"&&Yt===n)return 1;break;case 111:if(typeof n=="number"&&cf===n)return 1;break;case 112:if(typeof n=="number"&&T7===n)return 1;break;case 113:if(typeof n=="number"&&Pn===n)return 1;break;case 114:if(typeof n=="number"&&t1===n)return 1;break;case 115:if(typeof n=="number"&&Av===n)return 1;break;case 116:if(typeof n=="number"&&f1===n)return 1;break;case 117:if(typeof n=="number"&&A2===n)return 1;break;case 118:if(typeof n=="number"&&z2===n)return 1;break;case 119:if(typeof n=="number"&&Sv===n)return 1;break;case 120:if(typeof n=="number"&&uc===n)return 1;break;default:if(typeof n=="number"&&tl<=n)return 1}else switch(e){case 61:if(typeof n=="number"&&n===61)return 1;break;case 62:if(typeof n=="number"&&n===62)return 1;break;case 63:if(typeof n=="number"&&n===63)return 1;break;case 64:if(typeof n=="number"&&n===64)return 1;break;case 65:if(typeof n=="number"&&n===65)return 1;break;case 66:if(typeof n=="number"&&n===66)return 1;break;case 67:if(typeof n=="number"&&n===67)return 1;break;case 68:if(typeof n=="number"&&n===68)return 1;break;case 69:if(typeof n=="number"&&n===69)return 1;break;case 70:if(typeof n=="number"&&n===70)return 1;break;case 71:if(typeof n=="number"&&n===71)return 1;break;case 72:if(typeof n=="number"&&n===72)return 1;break;case 73:if(typeof n=="number"&&n===73)return 1;break;case 74:if(typeof n=="number"&&n===74)return 1;break;case 75:if(typeof n=="number"&&n===75)return 1;break;case 76:if(typeof n=="number"&&n===76)return 1;break;case 77:if(typeof n=="number"&&n===77)return 1;break;case 78:if(typeof n=="number"&&n===78)return 1;break;case 79:if(typeof n=="number"&&n===79)return 1;break;case 80:if(typeof n=="number"&&n===80)return 1;break;case 81:if(typeof n=="number"&&n===81)return 1;break;case 82:if(typeof n=="number"&&n===82)return 1;break;case 83:if(typeof n=="number"&&n===83)return 1;break;case 84:if(typeof n=="number"&&n===84)return 1;break;case 85:if(typeof n=="number"&&n===85)return 1;break;case 86:if(typeof n=="number"&&n===86)return 1;break;case 87:if(typeof n=="number"&&n===87)return 1;break;case 88:if(typeof n=="number"&&n===88)return 1;break;case 89:if(typeof n=="number"&&n===89)return 1;break;case 90:if(typeof n=="number"&&n===90)return 1;break;default:if(typeof n=="number"&&n===91)return 1}else if(31<=e)switch(e){case 31:if(typeof n=="number"&&n===31)return 1;break;case 32:if(typeof n=="number"&&n===32)return 1;break;case 33:if(typeof n=="number"&&n===33)return 1;break;case 34:if(typeof n=="number"&&n===34)return 1;break;case 35:if(typeof n=="number"&&n===35)return 1;break;case 36:if(typeof n=="number"&&n===36)return 1;break;case 37:if(typeof n=="number"&&n===37)return 1;break;case 38:if(typeof n=="number"&&n===38)return 1;break;case 39:if(typeof n=="number"&&n===39)return 1;break;case 40:if(typeof n=="number"&&n===40)return 1;break;case 41:if(typeof n=="number"&&n===41)return 1;break;case 42:if(typeof n=="number"&&n===42)return 1;break;case 43:if(typeof n=="number"&&n===43)return 1;break;case 44:if(typeof n=="number"&&n===44)return 1;break;case 45:if(typeof n=="number"&&n===45)return 1;break;case 46:if(typeof n=="number"&&n===46)return 1;break;case 47:if(typeof n=="number"&&n===47)return 1;break;case 48:if(typeof n=="number"&&n===48)return 1;break;case 49:if(typeof n=="number"&&n===49)return 1;break;case 50:if(typeof n=="number"&&n===50)return 1;break;case 51:if(typeof n=="number"&&n===51)return 1;break;case 52:if(typeof n=="number"&&n===52)return 1;break;case 53:if(typeof n=="number"&&n===53)return 1;break;case 54:if(typeof n=="number"&&n===54)return 1;break;case 55:if(typeof n=="number"&&n===55)return 1;break;case 56:if(typeof n=="number"&&n===56)return 1;break;case 57:if(typeof n=="number"&&n===57)return 1;break;case 58:if(typeof n=="number"&&n===58)return 1;break;case 59:if(typeof n=="number"&&n===59)return 1;break;default:if(typeof n=="number"&&n===60)return 1}else switch(e){case 0:if(typeof n=="number"&&!n)return 1;break;case 1:if(typeof n=="number"&&n===1)return 1;break;case 2:if(typeof n=="number"&&n===2)return 1;break;case 3:if(typeof n=="number"&&n===3)return 1;break;case 4:if(typeof n=="number"&&n===4)return 1;break;case 5:if(typeof n=="number"&&n===5)return 1;break;case 6:if(typeof n=="number"&&n===6)return 1;break;case 7:if(typeof n=="number"&&n===7)return 1;break;case 8:if(typeof n=="number"&&n===8)return 1;break;case 9:if(typeof n=="number"&&n===9)return 1;break;case 10:if(typeof n=="number"&&n===10)return 1;break;case 11:if(typeof n=="number"&&n===11)return 1;break;case 12:if(typeof n=="number"&&n===12)return 1;break;case 13:if(typeof n=="number"&&n===13)return 1;break;case 14:if(typeof n=="number"&&n===14)return 1;break;case 15:if(typeof n=="number"&&n===15)return 1;break;case 16:if(typeof n=="number"&&n===16)return 1;break;case 17:if(typeof n=="number"&&n===17)return 1;break;case 18:if(typeof n=="number"&&n===18)return 1;break;case 19:if(typeof n=="number"&&n===19)return 1;break;case 20:if(typeof n=="number"&&n===20)return 1;break;case 21:if(typeof n=="number"&&n===21)return 1;break;case 22:if(typeof n=="number"&&n===22)return 1;break;case 23:if(typeof n=="number"&&n===23)return 1;break;case 24:if(typeof n=="number"&&n===24)return 1;break;case 25:if(typeof n=="number"&&n===25)return 1;break;case 26:if(typeof n=="number"&&n===26)return 1;break;case 27:if(typeof n=="number"&&n===27)return 1;break;case 28:if(typeof n=="number"&&n===28)return 1;break;case 29:if(typeof n=="number"&&n===29)return 1;break;default:if(typeof n=="number"&&n===30)return 1}}else switch(t[0]){case 0:if(typeof n!="number"&&n[0]===0){var i=n[1],x=u(u(fL,t[1]),i),c=x&&Hn(t[2],n[2]);return c}break;case 1:if(typeof n!="number"&&n[0]===1){var s=n[1],p=u(u(xL,t[1]),s),y=p&&Hn(t[2],n[2]);return y}break;case 2:if(typeof n!="number"&&n[0]===2){var T=n[1],E=t[1],d=Wv(E[1],T[1]),w=d&&Hn(E[2],T[2]),G=w&&Hn(E[3],T[3]),A=G&&(E[4]===T[4]?1:0);return A}break;case 3:if(typeof n!="number"&&n[0]===3){var S=n[1],M=t[1],K=Wv(M[1],S[1]);if(K)var V=S[2],f0=u(u(kr0,M[2]),V);else var f0=K;var m0=f0&&(M[3]===S[3]?1:0);return m0}break;case 4:if(typeof n!="number"&&n[0]===4){var k0=Wv(t[1],n[1]),g0=k0&&Hn(t[2],n[2]),e0=g0&&Hn(t[3],n[3]);return e0}break;case 5:if(typeof n!="number"&&n[0]===5){var x0=Wv(t[1],n[1]),l=x0&&Hn(t[2],n[2]),c0=l&&Hn(t[3],n[3]);return c0}break;case 6:if(typeof n!="number"&&n[0]===6)return Hn(t[1],n[1]);break;case 7:if(typeof n!="number"&&n[0]===7){var t0=Hn(t[1],n[1]);return t0&&Wv(t[2],n[2])}break;case 8:if(typeof n!="number"&&n[0]===8){var o0=Wv(t[1],n[1]),w0=o0&&Hn(t[2],n[2]),_0=w0&&Hn(t[3],n[3]);return _0}break;case 9:if(typeof n!="number"&&n[0]===9){var E0=n[1];return u(u(dr0,t[1]),E0)}break;case 10:if(typeof n!="number"&&n[0]===10){var U0=n[1],b=u(u(fL,t[1]),U0),R0=b&&(t[2]==n[2]?1:0),X=R0&&Hn(t[3],n[3]);return X}break;default:if(typeof n!="number"&&n[0]===11){var s0=n[1],hr=u(u(xL,t[1]),s0),Ar=hr&&(t[2]==n[2]?1:0),or=Ar&&Hn(t[3],n[3]);return or}}return 0}),N(dr0,function(t,n){if(t){if(n)return 1}else if(!n)return 1;return 0}),N(fL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;case 2:if(n===2)return 1;break;case 3:if(n===3)return 1;break;default:if(4<=n)return 1}return 0}),N(xL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;default:if(2<=n)return 1}return 0}),N(kr0,function(t,n){var e=Hn(t[1],n[1]),i=e&&Hn(t[2],n[2]),x=i&&Hn(t[3],n[3]);return x});function wr0(t){if(typeof t=="number"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return kkr;case 93:return wkr;case 94:return Ekr;case 95:return Skr;case 96:return gkr;case 97:return Fkr;case 98:return Tkr;case 99:return Okr;case 100:return Ikr;case 101:return Akr;case 102:return Nkr;case 103:return Ckr;case 104:return Pkr;case 105:return Dkr;case 106:return Lkr;case 107:return Rkr;case 108:return jkr;case 109:return Gkr;case 110:return Mkr;case 111:return Bkr;case 112:return qkr;case 113:return Ukr;case 114:return Hkr;case 115:return Xkr;case 116:return Ykr;case 117:return Vkr;case 118:return zkr;case 119:return Kkr;case 120:return Wkr;default:return Jkr}switch(n){case 61:return Xdr;case 62:return Ydr;case 63:return Vdr;case 64:return zdr;case 65:return Kdr;case 66:return Wdr;case 67:return Jdr;case 68:return $dr;case 69:return Zdr;case 70:return Qdr;case 71:return rkr;case 72:return ekr;case 73:return nkr;case 74:return tkr;case 75:return ukr;case 76:return ikr;case 77:return fkr;case 78:return xkr;case 79:return okr;case 80:return akr;case 81:return ckr;case 82:return skr;case 83:return vkr;case 84:return lkr;case 85:return bkr;case 86:return pkr;case 87:return mkr;case 88:return _kr;case 89:return ykr;case 90:return hkr;default:return dkr}}if(31<=n)switch(n){case 31:return bdr;case 32:return pdr;case 33:return mdr;case 34:return _dr;case 35:return ydr;case 36:return hdr;case 37:return ddr;case 38:return kdr;case 39:return wdr;case 40:return Edr;case 41:return Sdr;case 42:return gdr;case 43:return Fdr;case 44:return Tdr;case 45:return Odr;case 46:return Idr;case 47:return Adr;case 48:return Ndr;case 49:return Cdr;case 50:return Pdr;case 51:return Ddr;case 52:return Ldr;case 53:return Rdr;case 54:return jdr;case 55:return Gdr;case 56:return Mdr;case 57:return Bdr;case 58:return qdr;case 59:return Udr;default:return Hdr}switch(n){case 0:return jhr;case 1:return Ghr;case 2:return Mhr;case 3:return Bhr;case 4:return qhr;case 5:return Uhr;case 6:return Hhr;case 7:return Xhr;case 8:return Yhr;case 9:return Vhr;case 10:return zhr;case 11:return Khr;case 12:return Whr;case 13:return Jhr;case 14:return $hr;case 15:return Zhr;case 16:return Qhr;case 17:return rdr;case 18:return edr;case 19:return ndr;case 20:return tdr;case 21:return udr;case 22:return idr;case 23:return fdr;case 24:return xdr;case 25:return odr;case 26:return adr;case 27:return cdr;case 28:return sdr;case 29:return vdr;default:return ldr}}else switch(t[0]){case 0:return $kr;case 1:return Zkr;case 2:return Qkr;case 3:return rwr;case 4:return ewr;case 5:return nwr;case 6:return twr;case 7:return uwr;case 8:return iwr;case 9:return fwr;case 10:return xwr;default:return owr}}function oL(t){if(typeof t=="number"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return thr;case 93:return uhr;case 94:return ihr;case 95:return fhr;case 96:return xhr;case 97:return ohr;case 98:return ahr;case 99:return chr;case 100:return shr;case 101:return vhr;case 102:return lhr;case 103:return bhr;case 104:return phr;case 105:return mhr;case 106:return _hr;case 107:return yhr;case 108:return hhr;case 109:return dhr;case 110:return khr;case 111:return whr;case 112:return Ehr;case 113:return Shr;case 114:return ghr;case 115:return Fhr;case 116:return Thr;case 117:return Ohr;case 118:return Ihr;case 119:return Ahr;case 120:return Nhr;default:return Chr}switch(n){case 61:return Fyr;case 62:return Tyr;case 63:return Oyr;case 64:return Iyr;case 65:return Ayr;case 66:return Nyr;case 67:return Cyr;case 68:return Pyr;case 69:return Dyr;case 70:return Lyr;case 71:return Ryr;case 72:return jyr;case 73:return Gyr;case 74:return Myr;case 75:return Byr;case 76:return qyr;case 77:return Uyr;case 78:return Hyr;case 79:return Xyr;case 80:return Yyr;case 81:return Vyr;case 82:return zyr;case 83:return Kyr;case 84:return Wyr;case 85:return Jyr;case 86:return $yr;case 87:return Zyr;case 88:return Qyr;case 89:return rhr;case 90:return ehr;default:return nhr}}if(31<=n)switch(n){case 31:return J_r;case 32:return $_r;case 33:return Z_r;case 34:return Q_r;case 35:return ryr;case 36:return eyr;case 37:return nyr;case 38:return tyr;case 39:return uyr;case 40:return iyr;case 41:return fyr;case 42:return xyr;case 43:return oyr;case 44:return ayr;case 45:return cyr;case 46:return syr;case 47:return vyr;case 48:return lyr;case 49:return byr;case 50:return pyr;case 51:return myr;case 52:return _yr;case 53:return yyr;case 54:return hyr;case 55:return dyr;case 56:return kyr;case 57:return wyr;case 58:return Eyr;case 59:return Syr;default:return gyr}switch(n){case 0:return h_r;case 1:return d_r;case 2:return k_r;case 3:return w_r;case 4:return E_r;case 5:return S_r;case 6:return g_r;case 7:return F_r;case 8:return T_r;case 9:return O_r;case 10:return I_r;case 11:return A_r;case 12:return N_r;case 13:return C_r;case 14:return P_r;case 15:return D_r;case 16:return L_r;case 17:return R_r;case 18:return j_r;case 19:return G_r;case 20:return M_r;case 21:return B_r;case 22:return q_r;case 23:return U_r;case 24:return H_r;case 25:return X_r;case 26:return Y_r;case 27:return V_r;case 28:return z_r;case 29:return K_r;default:return W_r}}else switch(t[0]){case 2:return t[1][3];case 3:return t[1][2][3];case 5:var e=Te(Phr,t[3]);return Te(Dhr,Te(t[2],e));case 9:return t[1]?Lhr:Rhr;case 0:case 1:return t[2];case 6:case 7:return t[1];default:return t[3]}}function Ml(t){return u(nt(y_r),t)}function aL(t,n){var e=t&&t[1],i=0;if(typeof n=="number")if(Pn===n)var x=n_r,c=t_r;else i=1;else switch(n[0]){case 3:var x=u_r,c=i_r;break;case 5:var x=f_r,c=x_r;break;case 6:case 9:i=1;break;case 0:case 10:var x=a_r,c=c_r;break;case 1:case 11:var x=s_r,c=v_r;break;case 2:case 8:var x=l_r,c=b_r;break;default:var x=p_r,c=m_r}if(i)var x=o_r,c=Ml(oL(n));return e?Te(x,Te(__r,c)):c}function cL(t){return 45>>0)var i=q(t);else switch(e){case 0:var i=1;break;case 1:var i=2;break;case 2:var i=0;break;default:if(G0(t,2),Ls(j(t))===0){var x=L1(j(t));if(x===0)if(Nn(j(t))===0&&Nn(j(t))===0)var c=Nn(j(t))!==0?1:0,i=c&&q(t);else var i=q(t);else if(x===1&&Nn(j(t))===0)for(;;){var s=A1(j(t));if(s!==0){var p=s!==1?1:0,i=p&&q(t);break}}else var i=q(t)}else var i=q(t)}if(2>>0)throw[0,Sn,awr];switch(i){case 0:continue;case 1:return 1;default:if(nL(br0(t)))continue;return mr0(t,1),0}}}function S9(t,n){var e=n-t[3][2]|0;return[0,hr0(t),e]}function Hl(t,n,e){var i=S9(t,e),x=S9(t,n);return[0,t[1],x,i]}function ju(t,n){return S9(t,n[6])}function h7(t,n){return S9(t,n[3])}function tt(t,n){return Hl(t,n[6],n[3])}function Xr0(t,n){var e=0;if(typeof n=="number")e=1;else switch(n[0]){case 2:var i=n[1][1];break;case 3:return n[1][1];case 4:var i=n[1];break;case 7:var i=n[2];break;case 5:case 8:return n[1];default:e=1}return e?tt(t,t[2]):i}function Gu(t,n,e){return[0,t[1],t[2],t[3],t[4],t[5],[0,[0,n,e],t[6]],t[7]]}function Yr0(t,n,e){return Gu(t,n,[10,Ml(e)])}function bL(t,n,e,i){return Gu(t,n,[12,e,i])}function Ei(t,n){return Gu(t,n,RDr)}function d7(t,n){var e=n[3],i=[0,hr0(t)+1|0,e];return[0,t[1],t[2],i,t[4],t[5],t[6],t[7]]}function Vr0(t){var n=un(t);return n!==0&&Yt===It(t,n-1|0)?m7(t,0,n-1|0):t}function Si(t,n,e,i,x){var c=[0,t[1],n,e],s=Mt(i),p=x?0:1;return[0,c,[0,p,s,t[7][3][1]>>0)var y=q(i);else switch(p){case 0:var y=2;break;case 1:for(;;){G0(i,3);var T=j(i);if(-1>>0)return de(TDr);switch(y){case 0:var S=Kr0(c,e,i,2,0),M=S[1],K=Bi(Te(ODr,S[2])),V=0<=K?1:0,f0=V&&(K<=55295?1:0);if(f0)var k0=f0;else var m0=57344<=K?1:0,k0=m0&&(K<=lI?1:0);var g0=k0?zr0(c,M,K):Gu(c,M,37);S1(x,K);var c=g0;continue;case 1:var e0=Kr0(c,e,i,3,1),x0=Bi(Te(IDr,e0[2])),l=zr0(c,e0[1],x0);S1(x,x0);var c=l;continue;case 2:return[0,c,Mt(x)];default:Gl(i,x);continue}}}function Rt(t,n,e){var i=Ei(t,tt(t,n));return $v(n),o(e,i,n)}function R1(t,n,e){for(var i=t;;){gn(e);var x=j(e);if(-1>>0)var p=q(e);else switch(s){case 0:for(;;){G0(e,3);var y=j(e);if(-1>>0){var A=Ei(i,tt(i,e));return[0,A,h7(A,e)]}switch(p){case 0:var S=d7(i,e);Gl(e,n);var i=S;continue;case 1:var M=i[4]?bL(i,tt(i,e),vwr,swr):i;return[0,M,h7(M,e)];case 2:if(i[4])return[0,i,h7(i,e)];dn(n,lwr);continue;default:Gl(e,n);continue}}}function e2(t,n,e){for(;;){gn(e);var i=j(e),x=13>>0)var c=q(e);else switch(x){case 0:var c=0;break;case 1:for(;;){G0(e,2);var s=j(e);if(-1>>0)return de(bwr);switch(c){case 0:return[0,t,h7(t,e)];case 1:var T=h7(t,e),E=d7(t,e),d=Jm(e);return[0,E,[0,T[1],T[2]-d|0]];default:Gl(e,n);continue}}}function Jr0(t,n){function e(k0){return G0(k0,3),zu(j(k0))===0?2:q(k0)}gn(n);var i=j(n),x=uc>>0)var c=q(n);else switch(x){case 1:var c=16;break;case 2:var c=15;break;case 3:G0(n,15);var c=xi(j(n))===0?15:q(n);break;case 4:G0(n,4);var c=zu(j(n))===0?e(n):q(n);break;case 5:G0(n,11);var c=zu(j(n))===0?e(n):q(n);break;case 7:var c=5;break;case 8:var c=6;break;case 9:var c=7;break;case 10:var c=8;break;case 11:var c=9;break;case 12:G0(n,14);var s=L1(j(n));if(s===0)var c=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?12:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var c=p===1?13:q(n);break}}else var c=q(n);break;case 13:var c=10;break;case 14:G0(n,14);var c=Nn(j(n))===0&&Nn(j(n))===0?1:q(n);break;default:var c=0}if(16>>0)return de(lDr);switch(c){case 1:var y=Se(n);return[0,t,y,[0,Bi(Te(bDr,y))],0];case 2:var T=Se(n),E=Bi(Te(pDr,T));return N4<=E?[0,t,T,[0,E>>>3|0,48+(E&7)|0],1]:[0,t,T,[0,E],1];case 3:var d=Se(n);return[0,t,d,[0,Bi(Te(mDr,d))],1];case 4:return[0,t,_Dr,[0,0],0];case 5:return[0,t,yDr,[0,8],0];case 6:return[0,t,hDr,[0,12],0];case 7:return[0,t,dDr,[0,10],0];case 8:return[0,t,kDr,[0,13],0];case 9:return[0,t,wDr,[0,9],0];case 10:return[0,t,EDr,[0,11],0];case 11:var w=Se(n);return[0,t,w,[0,Bi(Te(SDr,w))],1];case 12:var G=Se(n);return[0,t,G,[0,Bi(Te(gDr,m7(G,1,un(G)-1|0)))],0];case 13:var A=Se(n),S=Bi(Te(FDr,m7(A,2,un(A)-3|0))),M=lI>>0)var E=q(c);else switch(T){case 0:var E=3;break;case 1:for(;;){G0(c,4);var d=j(c);if(-1>>0)return de(pwr);switch(E){case 0:var A=Se(c);if(dn(i,A),Hn(n,A))return[0,s,h7(s,c),p];dn(e,A);continue;case 1:dn(i,mwr);var S=Jr0(s,c),M=S[4],K=M||p;dn(i,S[2]);var V=S[3];pz(function(w0){return S1(e,w0)},V);var s=S[1],p=K;continue;case 2:var f0=Se(c);dn(i,f0);var m0=d7(Ei(s,tt(s,c)),c);return dn(e,f0),[0,m0,h7(m0,c),p];case 3:var k0=Se(c);dn(i,k0);var g0=Ei(s,tt(s,c));return dn(e,k0),[0,g0,h7(g0,c),p];default:var e0=c[6],x0=c[3]-e0|0,l=Lt(x0*4|0),c0=Rl(c[1],e0,x0,l);sN(i,l,0,c0),sN(e,l,0,c0);continue}}}function Zr0(t,n,e,i,x){for(var c=t;;){gn(x);var s=j(x),p=96>>0)var y=q(x);else switch(p){case 0:var y=0;break;case 1:for(;;){G0(x,6);var T=j(x);if(-1>>0)return de(_wr);switch(y){case 0:return[0,Ei(c,tt(c,x)),1];case 1:return qi(i,96),[0,c,1];case 2:return dn(i,ywr),[0,c,0];case 3:qi(e,92),qi(i,92);var A=Jr0(c,x),S=A[2];dn(e,S),dn(i,S);var M=A[3];pz(function(m0){return S1(n,m0)},M);var c=A[1];continue;case 4:dn(e,hwr),dn(i,dwr),dn(n,kwr);var c=d7(c,x);continue;case 5:var K=Se(x);dn(e,K),dn(i,K),qi(n,10);var c=d7(c,x);continue;default:var V=Se(x);dn(e,V),dn(i,V),dn(n,V);continue}}}function Nee(t,n){function e(B0){for(;;)if(G0(B0,33),kn(j(B0))!==0)return q(B0)}function i(B0){for(;;)if(G0(B0,27),kn(j(B0))!==0)return q(B0)}function x(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),kn(j(B0))!==0)return q(B0)}return D0===1?i(B0):q(B0)}function c(B0){for(;;)if(G0(B0,27),kn(j(B0))!==0)return q(B0)}function s(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),kn(j(B0))!==0)return q(B0)}return D0===1?c(B0):q(B0)}function p(B0){r:for(;;){if(mn(j(B0))===0)for(;;){G0(B0,28);var D0=Mc(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return c(B0);case 1:continue;case 2:continue r;default:return s(B0)}}return q(B0)}}function y(B0){G0(B0,33);var D0=Gr0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:var Le=C1(j(B0));if(Le===0)for(;;){G0(B0,28);var He=Qv(j(B0));if(2>>0)return q(B0);switch(He){case 0:return c(B0);case 1:continue;default:return s(B0)}}if(Le===1)for(;;){G0(B0,28);var he=Mc(j(B0));if(3>>0)return q(B0);switch(he){case 0:return c(B0);case 1:continue;case 2:return p(B0);default:return s(B0)}}return q(B0);case 2:for(;;){G0(B0,28);var me=Qv(j(B0));if(2>>0)return q(B0);switch(me){case 0:return i(B0);case 1:continue;default:return x(B0)}}default:for(;;){G0(B0,28);var et=Mc(j(B0));if(3>>0)return q(B0);switch(et){case 0:return i(B0);case 1:continue;case 2:return p(B0);default:return x(B0)}}}}function T(B0){G0(B0,31);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,29),kn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function E(B0){return G0(B0,3),Ur0(j(B0))===0?3:q(B0)}function d(B0){return m9(j(B0))===0&&v9(j(B0))===0&&Br0(j(B0))===0&&Ar0(j(B0))===0&&Nr0(j(B0))===0&&vL(j(B0))===0&&Bl(j(B0))===0&&m9(j(B0))===0&&Ls(j(B0))===0&&Cr0(j(B0))===0&&Ul(j(B0))===0?3:q(B0)}function w(B0){G0(B0,34);var D0=Or0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Ps(j(B0));if(4>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:r:for(;;){if(mn(j(B0))===0)for(;;){G0(B0,34);var He=Ps(j(B0));if(4>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}case 2:return y(B0);default:return T(B0)}}function G(B0){for(;;)if(G0(B0,19),kn(j(B0))!==0)return q(B0)}function A(B0){G0(B0,34);var D0=Qv(j(B0));if(2>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Mc(j(B0));if(3>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:r:for(;;){if(mn(j(B0))===0)for(;;){G0(B0,34);var He=Mc(j(B0));if(3>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}default:return T(B0)}}function S(B0){for(;;)if(G0(B0,17),kn(j(B0))!==0)return q(B0)}function M(B0){for(;;)if(G0(B0,17),kn(j(B0))!==0)return q(B0)}function K(B0){for(;;)if(G0(B0,11),kn(j(B0))!==0)return q(B0)}function V(B0){for(;;)if(G0(B0,11),kn(j(B0))!==0)return q(B0)}function f0(B0){for(;;)if(G0(B0,15),kn(j(B0))!==0)return q(B0)}function m0(B0){for(;;)if(G0(B0,15),kn(j(B0))!==0)return q(B0)}function k0(B0){for(;;)if(G0(B0,23),kn(j(B0))!==0)return q(B0)}function g0(B0){for(;;)if(G0(B0,23),kn(j(B0))!==0)return q(B0)}function e0(B0){G0(B0,32);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,30),kn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function x0(B0){r:for(;;){if(mn(j(B0))===0)for(;;){G0(B0,34);var D0=Rr0(j(B0));if(4>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:return A(B0);case 2:continue;case 3:continue r;default:return e0(B0)}}return q(B0)}}gn(n);var l=j(n),c0=ef>>0)var t0=q(n);else switch(c0){case 0:var t0=98;break;case 1:var t0=99;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var t0=q(n);break}}else var t0=q(n);break;case 3:var t0=0;break;case 4:G0(n,0);var o0=xi(j(n))!==0?1:0,t0=o0&&q(n);break;case 5:G0(n,88);var t0=Ui(j(n))===0?(G0(n,58),Ui(j(n))===0?54:q(n)):q(n);break;case 6:var t0=7;break;case 7:G0(n,95);var w0=j(n),_0=32>>0)var t0=q(n);else switch(b){case 0:G0(n,83);var t0=Ui(j(n))===0?70:q(n);break;case 1:var t0=4;break;default:var t0=69}break;case 14:G0(n,80);var R0=j(n),X=42>>0)var t0=q(n);else switch(or){case 0:var t0=e(n);break;case 1:continue;case 2:var t0=y(n);break;case 3:r:for(;;){if(mn(j(n))===0)for(;;){G0(n,34);var W0=Ps(j(n));if(4>>0)var Lr=q(n);else switch(W0){case 0:var Lr=e(n);break;case 1:continue;case 2:var Lr=y(n);break;case 3:continue r;default:var Lr=T(n)}break}else var Lr=q(n);var t0=Lr;break}break;default:var t0=T(n)}break}else var t0=q(n);break;case 18:G0(n,93);var Tr=Ir0(j(n));if(2>>0)var t0=q(n);else switch(Tr){case 0:G0(n,2);var Hr=i9(j(n));if(2
>>0)var t0=q(n);else switch(Hr){case 0:for(;;){var Or=i9(j(n));if(2>>0)var t0=q(n);else switch(Or){case 0:continue;case 1:var t0=E(n);break;default:var t0=d(n)}break}break;case 1:var t0=E(n);break;default:var t0=d(n)}break;case 1:var t0=5;break;default:var t0=92}break;case 19:G0(n,34);var fr=lL(j(n));if(8>>0)var t0=q(n);else switch(fr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,20);var Rr=Mr0(j(n));if(4>>0)var t0=q(n);else switch(Rr){case 0:var t0=G(n);break;case 1:var t0=A(n);break;case 2:continue;case 3:for(;;){G0(n,18);var Wr=u9(j(n));if(3>>0)var t0=q(n);else switch(Wr){case 0:var t0=S(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Jr=Bt(j(n));if(Jr===0){for(;;)if(G0(n,17),kn(j(n))!==0){var t0=q(n);break}}else var t0=Jr===1?S(n):q(n)}break}break;default:G0(n,19);var ar=Bt(j(n));if(ar===0){for(;;)if(G0(n,19),kn(j(n))!==0){var t0=q(n);break}}else var t0=ar===1?G(n):q(n)}break}break;case 3:for(;;){G0(n,18);var _r=u9(j(n));if(3<_r>>>0)var t0=q(n);else switch(_r){case 0:var t0=M(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Ir=Bt(j(n));if(Ir===0){for(;;)if(G0(n,17),kn(j(n))!==0){var t0=q(n);break}}else var t0=Ir===1?M(n):q(n)}break}break;case 4:G0(n,33);var fe=Pr0(j(n));if(fe===0)var t0=e(n);else if(fe===1)for(;;){G0(n,12);var v0=k9(j(n));if(3>>0)var t0=q(n);else switch(v0){case 0:var t0=K(n);break;case 1:continue;case 2:r:for(;;){if(Gc(j(n))===0)for(;;){G0(n,12);var P=k9(j(n));if(3

>>0)var Q=q(n);else switch(P){case 0:var Q=V(n);break;case 1:continue;case 2:continue r;default:G0(n,10);var L=Bt(j(n));if(L===0){for(;;)if(G0(n,9),kn(j(n))!==0){var Q=q(n);break}}else var Q=L===1?V(n):q(n)}break}else var Q=q(n);var t0=Q;break}break;default:G0(n,10);var i0=Bt(j(n));if(i0===0){for(;;)if(G0(n,9),kn(j(n))!==0){var t0=q(n);break}}else var t0=i0===1?K(n):q(n)}break}else var t0=q(n);break;case 5:var t0=y(n);break;case 6:G0(n,33);var l0=Dr0(j(n));if(l0===0)var t0=e(n);else if(l0===1)for(;;){G0(n,16);var S0=h9(j(n));if(3>>0)var t0=q(n);else switch(S0){case 0:var t0=f0(n);break;case 1:continue;case 2:r:for(;;){if(zu(j(n))===0)for(;;){G0(n,16);var T0=h9(j(n));if(3>>0)var L0=q(n);else switch(T0){case 0:var L0=m0(n);break;case 1:continue;case 2:continue r;default:G0(n,14);var rr=Bt(j(n));if(rr===0){for(;;)if(G0(n,13),kn(j(n))!==0){var L0=q(n);break}}else var L0=rr===1?m0(n):q(n)}break}else var L0=q(n);var t0=L0;break}break;default:G0(n,14);var B=Bt(j(n));if(B===0){for(;;)if(G0(n,13),kn(j(n))!==0){var t0=q(n);break}}else var t0=B===1?f0(n):q(n)}break}else var t0=q(n);break;case 7:G0(n,33);var Z=Er0(j(n));if(Z===0)var t0=e(n);else if(Z===1)for(;;){G0(n,24);var p0=w9(j(n));if(3>>0)var t0=q(n);else switch(p0){case 0:var t0=k0(n);break;case 1:continue;case 2:r:for(;;){if(Nn(j(n))===0)for(;;){G0(n,24);var b0=w9(j(n));if(3>>0)var M0=q(n);else switch(b0){case 0:var M0=g0(n);break;case 1:continue;case 2:continue r;default:G0(n,22);var O0=Bt(j(n));if(O0===0){for(;;)if(G0(n,21),kn(j(n))!==0){var M0=q(n);break}}else var M0=O0===1?g0(n):q(n)}break}else var M0=q(n);var t0=M0;break}break;default:G0(n,22);var er=Bt(j(n));if(er===0){for(;;)if(G0(n,21),kn(j(n))!==0){var t0=q(n);break}}else var t0=er===1?k0(n):q(n)}break}else var t0=q(n);break;default:var t0=e0(n)}break;case 20:G0(n,34);var yr=o9(j(n));if(5>>0)var t0=q(n);else switch(yr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,34);var vr=o9(j(n));if(5>>0)var t0=q(n);else switch(vr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:continue;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break}break;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break;case 21:var t0=46;break;case 22:var t0=44;break;case 23:G0(n,78);var $0=j(n),Er=59<$0?61<$0?-1:Vr(rN,$0-60|0)-1|0:-1,t0=Er===0?(G0(n,62),Ui(j(n))===0?61:q(n)):Er===1?55:q(n);break;case 24:G0(n,90);var Mr=sL(j(n)),t0=Mr===0?(G0(n,57),Ui(j(n))===0?53:q(n)):Mr===1?91:q(n);break;case 25:G0(n,79);var Br=sL(j(n));if(Br===0)var t0=56;else if(Br===1){G0(n,66);var qr=sL(j(n)),t0=qr===0?63:qr===1?(G0(n,65),Ui(j(n))===0?64:q(n)):q(n)}else var t0=q(n);break;case 26:G0(n,50);var jr=j(n),$r=45>>0)return de(cPr);var I=t0;if(50<=I)switch(I){case 50:return[0,t,85];case 51:return[0,t,88];case 52:return[0,t,87];case 53:return[0,t,94];case 54:return[0,t,95];case 55:return[0,t,96];case 56:return[0,t,97];case 57:return[0,t,92];case 58:return[0,t,93];case 59:return[0,t,cf];case 60:return[0,t,T7];case 61:return[0,t,69];case 62:return[0,t,ti];case 63:return[0,t,68];case 64:return[0,t,67];case 65:return[0,t,Ri];case 66:return[0,t,R7];case 67:return[0,t,78];case 68:return[0,t,77];case 69:return[0,t,75];case 70:return[0,t,76];case 71:return[0,t,73];case 72:return[0,t,72];case 73:return[0,t,71];case 74:return[0,t,70];case 75:return[0,t,79];case 76:return[0,t,80];case 77:return[0,t,81];case 78:return[0,t,98];case 79:return[0,t,99];case 80:return[0,t,s7];case 81:return[0,t,L7];case 82:return[0,t,Vt];case 83:return[0,t,Zc];case 84:return[0,t,is];case 85:return[0,t,89];case 86:return[0,t,91];case 87:return[0,t,90];case 88:return[0,t,Fv];case 89:return[0,t,Yt];case 90:return[0,t,82];case 91:return[0,t,11];case 92:return[0,t,74];case 93:return[0,t,j7];case 94:return[0,t,13];case 95:return[0,t,14];case 96:return[2,Ei(t,tt(t,n))];case 97:var U=n[6];Hr0(n);var Y=Hl(t,U,n[3]);tL(n,U);var y0=Ll(n),P0=Wr0(t,y0),I0=P0[2],D=Ee(I0,mPr);if(0<=D){if(!(0>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Gc(j(D0))===0)for(;;){var He=n9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,0,Se(D0)]]:de(aPr)});case 10:return[0,t,[1,0,Se(n)]];case 11:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&c9(j(D0))===0&&Gc(j(D0))===0)for(;;){G0(D0,0);var Le=e9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Gc(j(D0))===0)for(;;){G0(D0,0);var He=e9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,0,Se(D0)]]:de(oPr)});case 12:return[0,t,[0,0,Se(n)]];case 13:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){var Le=a9(j(D0));if(2>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(zu(j(D0))===0)for(;;){var He=a9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,1,Se(D0)]]:de(xPr)});case 14:return[0,t,[1,1,Se(n)]];case 15:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){G0(D0,0);var Le=x9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(zu(j(D0))===0)for(;;){G0(D0,0);var He=x9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,3,Se(D0)]]:de(fPr)});case 16:return[0,t,[0,3,Se(n)]];case 17:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0)for(;;){var Le=j(D0),He=47>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Nn(j(D0))===0)for(;;){var He=t9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,2,Se(D0)]]:de(tPr)});case 23:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&Zm(j(D0))===0&&Nn(j(D0))===0)for(;;){G0(D0,0);var Le=_9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Nn(j(D0))===0)for(;;){G0(D0,0);var He=_9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,4,Se(D0)]]:de(nPr)});case 25:return Rt(t,n,function(B0,D0){function Le(bn){for(;;){var it=wi(j(bn));if(2>>0)return q(bn);switch(it){case 0:continue;case 1:r:for(;;){if(mn(j(bn))===0)for(;;){var Ot=wi(j(bn));if(2>>0)return q(bn);switch(Ot){case 0:continue;case 1:continue r;default:return 0}}return q(bn)}default:return 0}}}function He(bn){for(;;){var it=r2(j(bn));if(it!==0){var Ot=it!==1?1:0;return Ot&&q(bn)}}}function he(bn){var it=E9(j(bn));if(2>>0)return q(bn);switch(it){case 0:var Ot=C1(j(bn));return Ot===0?He(bn):Ot===1?Le(bn):q(bn);case 1:return He(bn);default:return Le(bn)}}function me(bn){var it=p9(j(bn));if(it===0)for(;;){var Ot=f7(j(bn));if(2>>0)return q(bn);switch(Ot){case 0:continue;case 1:return he(bn);default:r:for(;;){if(mn(j(bn))===0)for(;;){var Ti=f7(j(bn));if(2>>0)return q(bn);switch(Ti){case 0:continue;case 1:return he(bn);default:continue r}}return q(bn)}}}return it===1?he(bn):q(bn)}gn(D0);var et=Qm(j(D0));if(2>>0)var En=q(D0);else switch(et){case 0:if(mn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var En=q(D0);else switch(xt){case 0:continue;case 1:var En=he(D0);break;default:r:for(;;){if(mn(j(D0))===0)for(;;){var ot=f7(j(D0));if(2>>0)var jn=q(D0);else switch(ot){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var En=jn;break}}break}else var En=q(D0);break;case 1:var ut=r9(j(D0)),En=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var kt=l9(j(D0));if(2>>0)var En=q(D0);else switch(kt){case 0:var En=me(D0);break;case 1:continue;default:var En=he(D0)}break}}if(En===0){var xn=Gu(B0,tt(B0,D0),23);return[0,xn,[1,2,Se(D0)]]}return de(ePr)});case 26:var Bu=Gu(t,tt(t,n),23);return[0,Bu,[1,2,Se(n)]];case 27:return Rt(t,n,function(B0,D0){function Le(xn){for(;;){G0(xn,0);var bn=Ds(j(xn));if(bn!==0){if(bn===1)r:for(;;){if(mn(j(xn))===0)for(;;){G0(xn,0);var it=Ds(j(xn));if(it!==0){if(it===1)continue r;return q(xn)}}return q(xn)}return q(xn)}}}function He(xn){for(;;)if(G0(xn,0),mn(j(xn))!==0)return q(xn)}function he(xn){var bn=E9(j(xn));if(2>>0)return q(xn);switch(bn){case 0:var it=C1(j(xn));return it===0?He(xn):it===1?Le(xn):q(xn);case 1:return He(xn);default:return Le(xn)}}function me(xn){var bn=p9(j(xn));if(bn===0)for(;;){var it=f7(j(xn));if(2>>0)return q(xn);switch(it){case 0:continue;case 1:return he(xn);default:r:for(;;){if(mn(j(xn))===0)for(;;){var Ot=f7(j(xn));if(2>>0)return q(xn);switch(Ot){case 0:continue;case 1:return he(xn);default:continue r}}return q(xn)}}}return bn===1?he(xn):q(xn)}gn(D0);var et=Qm(j(D0));if(2>>0)var En=q(D0);else switch(et){case 0:if(mn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var En=q(D0);else switch(xt){case 0:continue;case 1:var En=he(D0);break;default:r:for(;;){if(mn(j(D0))===0)for(;;){var ot=f7(j(D0));if(2>>0)var jn=q(D0);else switch(ot){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var En=jn;break}}break}else var En=q(D0);break;case 1:var ut=r9(j(D0)),En=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var kt=l9(j(D0));if(2>>0)var En=q(D0);else switch(kt){case 0:var En=me(D0);break;case 1:continue;default:var En=he(D0)}break}}return En===0?[0,B0,[0,4,Se(D0)]]:de(rPr)});case 29:return Rt(t,n,function(B0,D0){function Le(ut){for(;;){var kt=wi(j(ut));if(2>>0)return q(ut);switch(kt){case 0:continue;case 1:r:for(;;){if(mn(j(ut))===0)for(;;){var xn=wi(j(ut));if(2>>0)return q(ut);switch(xn){case 0:continue;case 1:continue r;default:return 0}}return q(ut)}default:return 0}}}function He(ut){var kt=r2(j(ut));if(kt===0)return Le(ut);var xn=kt!==1?1:0;return xn&&q(ut)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=mn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){var et=D1(j(D0));if(et===0)var me=He(D0);else{if(et===1)continue;var me=q(D0)}break}break;default:for(;;){var En=Bc(j(D0));if(2>>0)var me=q(D0);else switch(En){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(mn(j(D0))===0)for(;;){var xt=Bc(j(D0));if(2>>0)var ot=q(D0);else switch(xt){case 0:var ot=He(D0);break;case 1:continue;default:continue r}break}else var ot=q(D0);var me=ot;break}}break}}if(me===0){var jn=Gu(B0,tt(B0,D0),22);return[0,jn,[1,2,Se(D0)]]}return de(QCr)});case 30:return Rt(t,n,function(B0,D0){gn(D0);var Le=C1(j(D0));if(Le===0)for(;;){var He=r2(j(D0));if(He!==0){var he=He!==1?1:0,xt=he&&q(D0);break}}else if(Le===1)for(;;){var me=wi(j(D0));if(2>>0)var xt=q(D0);else switch(me){case 0:continue;case 1:r:for(;;){if(mn(j(D0))===0)for(;;){var et=wi(j(D0));if(2>>0)var En=q(D0);else switch(et){case 0:continue;case 1:continue r;default:var En=0}break}else var En=q(D0);var xt=En;break}break;default:var xt=0}break}else var xt=q(D0);return xt===0?[0,B0,[1,2,Se(D0)]]:de(ZCr)});case 31:var K7=Gu(t,tt(t,n),22);return[0,K7,[1,2,Se(n)]];case 33:return Rt(t,n,function(B0,D0){function Le(jn){for(;;){G0(jn,0);var ut=Ds(j(jn));if(ut!==0){if(ut===1)r:for(;;){if(mn(j(jn))===0)for(;;){G0(jn,0);var kt=Ds(j(jn));if(kt!==0){if(kt===1)continue r;return q(jn)}}return q(jn)}return q(jn)}}}function He(jn){return G0(jn,0),mn(j(jn))===0?Le(jn):q(jn)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=mn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){G0(D0,0);var et=D1(j(D0));if(et===0)var me=He(D0);else{if(et===1)continue;var me=q(D0)}break}break;default:for(;;){G0(D0,0);var En=Bc(j(D0));if(2>>0)var me=q(D0);else switch(En){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(mn(j(D0))===0)for(;;){G0(D0,0);var xt=Bc(j(D0));if(2>>0)var ot=q(D0);else switch(xt){case 0:var ot=He(D0);break;case 1:continue;default:continue r}break}else var ot=q(D0);var me=ot;break}}break}}return me===0?[0,B0,[0,4,Se(D0)]]:de($Cr)});case 35:var Yi=tt(t,n),a7=Se(n);return[0,t,[4,Yi,a7,a7]];case 36:return[0,t,0];case 37:return[0,t,1];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,6];case 41:return[0,t,7];case 42:return[0,t,12];case 43:return[0,t,10];case 44:return[0,t,8];case 45:return[0,t,9];case 46:return[0,t,86];case 47:$v(n),gn(n);var Hc=j(n),W7=62>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=6;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;default:G0(n,5);var c=d9(j(n)),x=c===0?4:c===1?3:q(n)}if(6>>0)return de(JCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var s=ju(t,n),p=rt(Jn),y=e2(t,p,n),T=y[1];return[1,T,Si(T,s,y[2],p,0)];case 4:var E=ju(t,n),d=rt(Jn),w=R1(t,d,n),G=w[1];return[1,G,Si(G,E,w[2],d,1)];case 5:var A=ju(t,n),S=rt(Jn),M=t;r:for(;;){gn(n);var K=j(n),V=92>>0)var f0=q(n);else switch(V){case 0:var f0=0;break;case 1:for(;;){G0(n,7);var m0=j(n);if(-1>>0)var f0=q(n);else switch(l){case 0:var f0=2;break;case 1:var f0=1;break;default:G0(n,1);var f0=xi(j(n))===0?1:q(n)}}if(7>>0)var c0=de(Swr);else switch(f0){case 0:var c0=[0,Gu(M,tt(M,n),25),gwr];break;case 1:var c0=[0,d7(Gu(M,tt(M,n),25),n),Fwr];break;case 3:var t0=Se(n),c0=[0,M,m7(t0,1,un(t0)-1|0)];break;case 4:var c0=[0,M,Twr];break;case 5:for(qi(S,91);;){gn(n);var o0=j(n),w0=93>>0)var _0=q(n);else switch(w0){case 0:var _0=0;break;case 1:for(;;){G0(n,4);var E0=j(n);if(-1>>0)var s0=de(wwr);else switch(_0){case 0:var s0=M;break;case 1:dn(S,Ewr);continue;case 2:qi(S,92),qi(S,93);continue;case 3:qi(S,93);var s0=M;break;default:dn(S,Se(n));continue}var M=s0;continue r}case 6:var c0=[0,d7(Gu(M,tt(M,n),25),n),Owr];break;default:dn(S,Se(n));continue}var hr=c0[1],Ar=h7(hr,n),or=[0,hr[1],A,Ar],W0=c0[2];return[0,hr,[5,or,Mt(S),W0]]}default:var Lr=Ei(t,tt(t,n));return[0,Lr,[6,Se(n)]]}}function pL(t,n,e,i,x){for(var c=t;;){var s=function(Cn){for(;;)if(G0(Cn,6),Fr0(j(Cn))!==0)return q(Cn)};gn(x);var p=j(x),y=br>>0)var T=q(x);else switch(y){case 0:var T=1;break;case 1:var T=s(x);break;case 2:var T=2;break;case 3:G0(x,2);var T=xi(j(x))===0?2:q(x);break;case 4:var T=0;break;case 5:G0(x,6);var E=j(x),d=34>>0)return de(Iwr);switch(T){case 0:var c0=Se(x),t0=0;switch(n){case 0:n0(c0,Awr)||(t0=1);break;case 1:n0(c0,Nwr)||(t0=1);break;default:var o0=0;if(n0(c0,Cwr)){if(!n0(c0,Pwr))return bL(c,tt(c,x),Mwr,Gwr);if(n0(c0,Dwr)){if(!n0(c0,Lwr))return bL(c,tt(c,x),jwr,Rwr);o0=1}}if(!o0)return $v(x),c}if(t0)return c;dn(i,c0),dn(e,c0);continue;case 1:return Ei(c,tt(c,x));case 2:var w0=Se(x);dn(i,w0),dn(e,w0);var c=d7(c,x);continue;case 3:var _0=Se(x),E0=m7(_0,3,un(_0)-4|0);dn(i,_0),S1(e,Bi(Te(Bwr,E0)));continue;case 4:var U0=Se(x),b=m7(U0,2,un(U0)-3|0);dn(i,U0),S1(e,Bi(b));continue;case 5:var R0=Se(x),X=m7(R0,1,un(R0)-2|0);dn(i,R0);var s0=Ee(X,qwr),hr=0;if(0<=s0)if(0>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=14;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;case 5:var x=12;break;case 6:var x=13;break;case 7:var x=10;break;case 8:G0(n,6);var c=d9(j(n)),x=c===0?4:c===1?3:q(n);break;case 9:var x=9;break;case 10:var x=5;break;case 11:var x=11;break;case 12:var x=7;break;case 13:if(G0(n,14),Ls(j(n))===0){var s=L1(j(n));if(s===0)var x=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?13:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var x=p===1?13:q(n);break}}else var x=q(n)}else var x=q(n);break;default:var x=8}if(14>>0)return de(KCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var y=ju(t,n),T=rt(Jn),E=e2(t,T,n),d=E[1];return[1,d,Si(d,y,E[2],T,0)];case 4:var w=ju(t,n),G=rt(Jn),A=R1(t,G,n),S=A[1];return[1,S,Si(S,w,A[2],G,1)];case 5:return[0,t,98];case 6:return[0,t,j7];case 7:return[0,t,99];case 8:return[0,t,0];case 9:return[0,t,86];case 10:return[0,t,10];case 11:return[0,t,82];case 12:var M=Se(n),K=ju(t,n),V=rt(Jn),f0=rt(Jn);dn(f0,M);var m0=Hn(M,WCr)?0:1,k0=pL(t,m0,V,f0,n),g0=h7(k0,n);dn(f0,M);var e0=Mt(V),x0=Mt(f0);return[0,k0,[8,[0,k0[1],K,g0],e0,x0]];case 13:for(var l=n[6];;){gn(n);var c0=j(n),t0=In>>0)var o0=q(n);else switch(t0){case 0:var o0=1;break;case 1:var o0=2;break;case 2:var o0=0;break;default:if(G0(n,2),Ls(j(n))===0){var w0=L1(j(n));if(w0===0)if(Nn(j(n))===0&&Nn(j(n))===0)var _0=Nn(j(n))!==0?1:0,o0=_0&&q(n);else var o0=q(n);else if(w0===1&&Nn(j(n))===0)for(;;){var E0=A1(j(n));if(E0!==0){var U0=E0!==1?1:0,o0=U0&&q(n);break}}else var o0=q(n)}else var o0=q(n)}if(2>>0)throw[0,Sn,cwr];switch(o0){case 0:continue;case 1:break;default:if(nL(br0(n)))continue;mr0(n,1)}var b=n[3];tL(n,l);var R0=Ll(n),X=Hl(t,l,b);return[0,t,[7,uL(R0),X]]}default:return[0,t,[6,Se(n)]]}}function Dee(t,n){gn(n);var e=j(n);if(-1>>0)var E=q(n);else switch(T){case 0:var E=5;break;case 1:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var E=q(n);break}}else var E=q(n);break;case 2:var E=0;break;case 3:G0(n,0);var d=xi(j(n))!==0?1:0,E=d&&q(n);break;case 4:G0(n,5);var w=d9(j(n)),E=w===0?3:w===1?2:q(n);break;default:var E=4}if(5>>0)return de(YCr);switch(E){case 0:return[2,d7(t,n)];case 1:return[2,t];case 2:var G=ju(t,n),A=rt(Jn),S=e2(t,A,n),M=S[1];return[1,M,Si(M,G,S[2],A,0)];case 3:var K=ju(t,n),V=rt(Jn),f0=R1(t,V,n),m0=f0[1];return[1,m0,Si(m0,K,f0[2],V,1)];case 4:var k0=ju(t,n),g0=rt(Jn),e0=rt(Jn),x0=rt(Jn);dn(x0,VCr);var l=Zr0(t,g0,e0,x0,n),c0=l[1],t0=h7(c0,n),o0=[0,c0[1],k0,t0],w0=l[2],_0=Mt(x0),E0=Mt(e0);return[0,c0,[3,[0,o0,[0,Mt(g0),E0,_0],w0]]];default:var U0=Ei(t,tt(t,n));return[0,U0,[3,[0,tt(U0,n),zCr,1]]]}}function Lee(t,n){function e(D){for(;;)if(G0(D,29),kn(j(D))!==0)return q(D)}function i(D){G0(D,27);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,25),kn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function x(D){for(;;)if(G0(D,23),kn(j(D))!==0)return q(D)}function c(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),kn(j(D))!==0)return q(D)}return u0===1?x(D):q(D)}function s(D){for(;;)if(G0(D,23),kn(j(D))!==0)return q(D)}function p(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),kn(j(D))!==0)return q(D)}return u0===1?s(D):q(D)}function y(D){r:for(;;){if(mn(j(D))===0)for(;;){G0(D,24);var u0=Mc(j(D));if(3>>0)return q(D);switch(u0){case 0:return s(D);case 1:continue;case 2:continue r;default:return p(D)}}return q(D)}}function T(D){G0(D,29);var u0=Gr0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:var H0=C1(j(D));if(H0===0)for(;;){G0(D,24);var J0=Qv(j(D));if(2>>0)return q(D);switch(J0){case 0:return s(D);case 1:continue;default:return p(D)}}if(H0===1)for(;;){G0(D,24);var ir=Mc(j(D));if(3>>0)return q(D);switch(ir){case 0:return s(D);case 1:continue;case 2:return y(D);default:return p(D)}}return q(D);case 2:for(;;){G0(D,24);var Q0=Qv(j(D));if(2>>0)return q(D);switch(Q0){case 0:return x(D);case 1:continue;default:return c(D)}}default:for(;;){G0(D,24);var F0=Mc(j(D));if(3>>0)return q(D);switch(F0){case 0:return x(D);case 1:continue;case 2:return y(D);default:return c(D)}}}}function E(D){for(;;){G0(D,30);var u0=Ps(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(mn(j(D))===0)for(;;){G0(D,30);var H0=Ps(j(D));if(4>>0)return q(D);switch(H0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}}function d(D){return mn(j(D))===0?E(D):q(D)}function w(D){for(;;)if(G0(D,19),kn(j(D))!==0)return q(D)}function G(D){for(;;)if(G0(D,19),kn(j(D))!==0)return q(D)}function A(D){G0(D,29);var u0=Er0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,20);var H0=w9(j(D));if(3>>0)return q(D);switch(H0){case 0:return G(D);case 1:continue;case 2:r:for(;;){if(Nn(j(D))===0)for(;;){G0(D,20);var J0=w9(j(D));if(3>>0)return q(D);switch(J0){case 0:return w(D);case 1:continue;case 2:continue r;default:G0(D,18);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,17),kn(j(D))!==0)return q(D)}return ir===1?w(D):q(D)}}return q(D)}default:G0(D,18);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,17),kn(j(D))!==0)return q(D)}return Q0===1?G(D):q(D)}}return q(D)}function S(D){for(;;)if(G0(D,13),kn(j(D))!==0)return q(D)}function M(D){for(;;)if(G0(D,13),kn(j(D))!==0)return q(D)}function K(D){G0(D,29);var u0=Dr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,14);var H0=h9(j(D));if(3>>0)return q(D);switch(H0){case 0:return M(D);case 1:continue;case 2:r:for(;;){if(zu(j(D))===0)for(;;){G0(D,14);var J0=h9(j(D));if(3>>0)return q(D);switch(J0){case 0:return S(D);case 1:continue;case 2:continue r;default:G0(D,12);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,11),kn(j(D))!==0)return q(D)}return ir===1?S(D):q(D)}}return q(D)}default:G0(D,12);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,11),kn(j(D))!==0)return q(D)}return Q0===1?M(D):q(D)}}return q(D)}function V(D){for(;;)if(G0(D,9),kn(j(D))!==0)return q(D)}function f0(D){for(;;)if(G0(D,9),kn(j(D))!==0)return q(D)}function m0(D){G0(D,29);var u0=Pr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,10);var H0=k9(j(D));if(3>>0)return q(D);switch(H0){case 0:return f0(D);case 1:continue;case 2:r:for(;;){if(Gc(j(D))===0)for(;;){G0(D,10);var J0=k9(j(D));if(3>>0)return q(D);switch(J0){case 0:return V(D);case 1:continue;case 2:continue r;default:G0(D,8);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,7),kn(j(D))!==0)return q(D)}return ir===1?V(D):q(D)}}return q(D)}default:G0(D,8);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,7),kn(j(D))!==0)return q(D)}return Q0===1?f0(D):q(D)}}return q(D)}function k0(D){G0(D,28);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,26),kn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function g0(D){G0(D,30);var u0=Qv(j(D));if(2>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var H0=Mc(j(D));if(3>>0)return q(D);switch(H0){case 0:return e(D);case 1:continue;case 2:r:for(;;){if(mn(j(D))===0)for(;;){G0(D,30);var J0=Mc(j(D));if(3>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:continue r;default:return i(D)}}return q(D)}default:return i(D)}}default:return i(D)}}function e0(D){for(;;){G0(D,30);var u0=u9(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;default:return k0(D)}}}function x0(D){for(;;)if(G0(D,15),kn(j(D))!==0)return q(D)}function l(D){G0(D,15);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,15),kn(j(D))!==0)return q(D)}return u0===1?x0(D):q(D)}function c0(D){for(;;){G0(D,16);var u0=Mr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return x0(D);case 1:return g0(D);case 2:continue;case 3:for(;;){G0(D,15);var H0=u9(j(D));if(3>>0)return q(D);switch(H0){case 0:return x0(D);case 1:return g0(D);case 2:continue;default:return l(D)}}default:return l(D)}}}function t0(D){G0(D,30);var u0=Or0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var H0=Ps(j(D));if(4>>0)return q(D);switch(H0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(mn(j(D))===0)for(;;){G0(D,30);var J0=Ps(j(D));if(4>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}case 2:return T(D);default:return i(D)}}function o0(D){G0(D,30);var u0=lL(j(D));if(8>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:return c0(D);case 3:return e0(D);case 4:return m0(D);case 5:return T(D);case 6:return K(D);case 7:return A(D);default:return k0(D)}}function w0(D){r:for(;;){if(mn(j(D))===0)for(;;){G0(D,30);var u0=Rr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;case 3:continue r;default:return k0(D)}}return q(D)}}function _0(D){for(;;){G0(D,30);var u0=o9(j(D));if(5>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:continue;case 3:return T(D);case 4:return w0(D);default:return k0(D)}}}function E0(D){return G0(D,3),Ur0(j(D))===0?3:q(D)}function U0(D){return m9(j(D))===0&&v9(j(D))===0&&Br0(j(D))===0&&Ar0(j(D))===0&&Nr0(j(D))===0&&vL(j(D))===0&&Bl(j(D))===0&&m9(j(D))===0&&Ls(j(D))===0&&Cr0(j(D))===0&&Ul(j(D))===0?3:q(D)}gn(n);var b=j(n),R0=ef>>0)var X=q(n);else switch(R0){case 0:var X=62;break;case 1:var X=63;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var X=q(n);break}}else var X=q(n);break;case 3:var X=0;break;case 4:G0(n,0);var s0=xi(j(n))!==0?1:0,X=s0&&q(n);break;case 5:var X=6;break;case 6:var X=61;break;case 7:if(G0(n,63),Bl(j(n))===0){var hr=j(n),Ar=s7>>0)var X=q(n);else switch(Lr){case 0:for(;;){var Tr=ql(j(n));if(3>>0)var X=q(n);else switch(Tr){case 0:continue;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break}break;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break;case 15:G0(n,41);var Hr=D1(j(n)),X=Hr===0?cL(j(n))===0?40:q(n):Hr===1?E(n):q(n);break;case 16:G0(n,63);var Or=d9(j(n));if(Or===0){G0(n,2);var fr=i9(j(n));if(2>>0)var X=q(n);else switch(fr){case 0:for(;;){var Rr=i9(j(n));if(2>>0)var X=q(n);else switch(Rr){case 0:continue;case 1:var X=E0(n);break;default:var X=U0(n)}break}break;case 1:var X=E0(n);break;default:var X=U0(n)}}else var X=Or===1?5:q(n);break;case 17:G0(n,30);var Wr=lL(j(n));if(8>>0)var X=q(n);else switch(Wr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=c0(n);break;case 3:var X=e0(n);break;case 4:var X=m0(n);break;case 5:var X=T(n);break;case 6:var X=K(n);break;case 7:var X=A(n);break;default:var X=k0(n)}break;case 18:G0(n,30);var Jr=o9(j(n));if(5>>0)var X=q(n);else switch(Jr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=_0(n);break;case 3:var X=T(n);break;case 4:var X=w0(n);break;default:var X=k0(n)}break;case 19:var X=44;break;case 20:var X=42;break;case 21:var X=49;break;case 22:G0(n,51);var ar=j(n),_r=61>>0)return de(wCr);var i0=X;if(32<=i0)switch(i0){case 34:return[0,t,0];case 35:return[0,t,1];case 36:return[0,t,2];case 37:return[0,t,3];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,12];case 41:return[0,t,10];case 42:return[0,t,8];case 43:return[0,t,9];case 45:return[0,t,83];case 49:return[0,t,98];case 50:return[0,t,99];case 53:return[0,t,Vt];case 55:return[0,t,89];case 56:return[0,t,91];case 57:return[0,t,11];case 59:return[0,t,s7];case 60:return[0,t,L7];case 61:var l0=n[6];Hr0(n);var S0=Hl(t,l0,n[3]);tL(n,l0);var T0=Ll(n),rr=Wr0(t,T0),L0=rr[2],B=rr[1],Z=Ee(L0,FCr);if(0<=Z){if(!(0>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Gc(j(F0))===0)for(;;){var mr=n9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?H0(u0):q(u0);break}}else var Q0=J0===1?H0(u0):q(u0);return Q0===0?[0,D,Hi(0,Se(u0))]:de(kCr)});case 8:return[0,t,Hi(0,Se(n))];case 9:return Rt(t,n,function(D,u0){function H0(F0){if(c9(j(F0))===0){if(Gc(j(F0))===0)for(;;){G0(F0,0);var Sr=e9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Gc(j(F0))===0)for(;;){G0(F0,0);var mr=e9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?H0(u0):q(u0);break}}else var Q0=J0===1?H0(u0):q(u0);return Q0===0?[0,D,qc(0,Se(u0))]:de(dCr)});case 10:return[0,t,qc(0,Se(n))];case 11:return Rt(t,n,function(D,u0){function H0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){var Sr=a9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(zu(j(F0))===0)for(;;){var mr=a9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?H0(u0):q(u0);break}}else var Q0=J0===1?H0(u0):q(u0);return Q0===0?[0,D,Hi(1,Se(u0))]:de(hCr)});case 12:return[0,t,Hi(1,Se(n))];case 13:return Rt(t,n,function(D,u0){function H0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){G0(F0,0);var Sr=x9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(zu(j(F0))===0)for(;;){G0(F0,0);var mr=x9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?H0(u0):q(u0);break}}else var Q0=J0===1?H0(u0):q(u0);return Q0===0?[0,D,qc(3,Se(u0))]:de(yCr)});case 14:return[0,t,qc(3,Se(n))];case 15:return Rt(t,n,function(D,u0){function H0(F0){if(zu(j(F0))===0){for(;;)if(G0(F0,0),zu(j(F0))!==0)return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?H0(u0):q(u0);break}}else var Q0=J0===1?H0(u0):q(u0);return Q0===0?[0,D,qc(1,Se(u0))]:de(_Cr)});case 16:return[0,t,qc(1,Se(n))];case 17:return Rt(t,n,function(D,u0){function H0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){var Sr=t9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Nn(j(F0))===0)for(;;){var mr=t9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?H0(u0):q(u0);break}}else var Q0=J0===1?H0(u0):q(u0);return Q0===0?[0,D,Hi(2,Se(u0))]:de(mCr)});case 19:return Rt(t,n,function(D,u0){function H0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){G0(F0,0);var Sr=_9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Nn(j(F0))===0)for(;;){G0(F0,0);var mr=_9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?H0(u0):q(u0);break}}else var Q0=J0===1?H0(u0):q(u0);return Q0===0?[0,D,qc(4,Se(u0))]:de(pCr)});case 21:return Rt(t,n,function(D,u0){function H0(h0){for(;;){var Kr=wi(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:r:for(;;){if(mn(j(h0))===0)for(;;){var re=wi(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:continue r;default:return 0}}return q(h0)}default:return 0}}}function J0(h0){for(;;){var Kr=r2(j(h0));if(Kr!==0){var re=Kr!==1?1:0;return re&&q(h0)}}}function ir(h0){var Kr=E9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:var re=C1(j(h0));return re===0?J0(h0):re===1?H0(h0):q(h0);case 1:return J0(h0);default:return H0(h0)}}function Q0(h0){if(mn(j(h0))===0)for(;;){var Kr=f7(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(mn(j(h0))===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return q(h0)}function F0(h0){var Kr=p9(j(h0));if(Kr===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(mn(j(h0))===0)for(;;){var xe=f7(j(h0));if(2>>0)return q(h0);switch(xe){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return Kr===1?ir(h0):q(h0)}function Sr(h0){var Kr=r9(j(h0));return Kr===0?F0(h0):Kr===1?ir(h0):q(h0)}function mr(h0){for(;;){var Kr=l9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:return F0(h0);case 1:continue;default:return ir(h0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}if(sr===0){var K0=Se(u0),Ur=Gu(D,tt(D,u0),23);return[0,Ur,Hi(2,K0)]}return de(bCr)});case 22:var Y=Se(n),y0=Gu(t,tt(t,n),23);return[0,y0,Hi(2,Y)];case 23:return Rt(t,n,function(D,u0){function H0(K0){for(;;){G0(K0,0);var Ur=Ds(j(K0));if(Ur!==0){if(Ur===1)r:for(;;){if(mn(j(K0))===0)for(;;){G0(K0,0);var h0=Ds(j(K0));if(h0!==0){if(h0===1)continue r;return q(K0)}}return q(K0)}return q(K0)}}}function J0(K0){for(;;)if(G0(K0,0),mn(j(K0))!==0)return q(K0)}function ir(K0){var Ur=E9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:var h0=C1(j(K0));return h0===0?J0(K0):h0===1?H0(K0):q(K0);case 1:return J0(K0);default:return H0(K0)}}function Q0(K0){if(mn(j(K0))===0)for(;;){var Ur=f7(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(mn(j(K0))===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return q(K0)}function F0(K0){var Ur=p9(j(K0));if(Ur===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(mn(j(K0))===0)for(;;){var Kr=f7(j(K0));if(2>>0)return q(K0);switch(Kr){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return Ur===1?ir(K0):q(K0)}function Sr(K0){var Ur=r9(j(K0));return Ur===0?F0(K0):Ur===1?ir(K0):q(K0)}function mr(K0){for(;;){var Ur=l9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return F0(K0);case 1:continue;default:return ir(K0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}return sr===0?[0,D,qc(4,Se(u0))]:de(lCr)});case 25:return Rt(t,n,function(D,u0){function H0(K0){for(;;){var Ur=wi(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:r:for(;;){if(mn(j(K0))===0)for(;;){var h0=wi(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:continue r;default:return 0}}return q(K0)}default:return 0}}}function J0(K0){return mn(j(K0))===0?H0(K0):q(K0)}function ir(K0){var Ur=r2(j(K0));if(Ur===0)return H0(K0);var h0=Ur!==1?1:0;return h0&&q(K0)}function Q0(K0){for(;;){var Ur=D1(j(K0));if(Ur===0)return ir(K0);if(Ur!==1)return q(K0)}}function F0(K0){for(;;){var Ur=Bc(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return ir(K0);case 1:continue;default:r:for(;;){if(mn(j(K0))===0)for(;;){var h0=Bc(j(K0));if(2>>0)return q(K0);switch(h0){case 0:return ir(K0);case 1:continue;default:continue r}}return q(K0)}}}}gn(u0);var Sr=f9(j(u0));if(3>>0)var mr=q(u0);else switch(Sr){case 0:for(;;){var Cr=ql(j(u0));if(3>>0)var mr=q(u0);else switch(Cr){case 0:continue;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}break}break;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}if(mr===0){var sr=Se(u0),Pr=Gu(D,tt(D,u0),22);return[0,Pr,Hi(2,sr)]}return de(vCr)});case 26:return Rt(t,n,function(D,u0){function H0(mr){for(;;){var Cr=r2(j(mr));if(Cr!==0){var sr=Cr!==1?1:0;return sr&&q(mr)}}}function J0(mr){for(;;){var Cr=wi(j(mr));if(2>>0)return q(mr);switch(Cr){case 0:continue;case 1:r:for(;;){if(mn(j(mr))===0)for(;;){var sr=wi(j(mr));if(2>>0)return q(mr);switch(sr){case 0:continue;case 1:continue r;default:return 0}}return q(mr)}default:return 0}}}gn(u0);var ir=j(u0),Q0=44>>0)var F0=q(u0);else switch(Q0){case 0:for(;;){var Sr=jr0(j(u0));if(2>>0)var F0=q(u0);else switch(Sr){case 0:continue;case 1:var F0=H0(u0);break;default:var F0=J0(u0)}break}break;case 1:var F0=H0(u0);break;default:var F0=J0(u0)}return F0===0?[0,D,Hi(2,Se(u0))]:de(sCr)});case 27:var P0=Se(n),I0=Gu(t,tt(t,n),22);return[0,I0,Hi(2,P0)];case 29:return Rt(t,n,function(D,u0){function H0(re){for(;;){G0(re,0);var xe=Ds(j(re));if(xe!==0){if(xe===1)r:for(;;){if(mn(j(re))===0)for(;;){G0(re,0);var Re=Ds(j(re));if(Re!==0){if(Re===1)continue r;return q(re)}}return q(re)}return q(re)}}}function J0(re){return G0(re,0),mn(j(re))===0?H0(re):q(re)}gn(u0);var ir=f9(j(u0));if(3>>0)var Q0=q(u0);else switch(ir){case 0:for(;;){var F0=jr0(j(u0));if(2>>0)var Q0=q(u0);else switch(F0){case 0:continue;case 1:for(;;){G0(u0,0);var Sr=D1(j(u0)),mr=Sr!==0?1:0;if(mr){if(Sr===1)continue;var Q0=q(u0)}else var Q0=mr;break}break;default:for(;;){G0(u0,0);var Cr=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Cr){case 0:var Q0=0;break;case 1:continue;default:r:for(;;){if(mn(j(u0))===0)for(;;){G0(u0,0);var sr=Bc(j(u0));if(2>>0)var Pr=q(u0);else switch(sr){case 0:var Pr=0;break;case 1:continue;default:continue r}break}else var Pr=q(u0);var Q0=Pr;break}}break}}break}break;case 1:var Q0=mn(j(u0))===0?H0(u0):q(u0);break;case 2:for(;;){G0(u0,0);var K0=D1(j(u0));if(K0===0)var Q0=J0(u0);else{if(K0===1)continue;var Q0=q(u0)}break}break;default:for(;;){G0(u0,0);var Ur=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Ur){case 0:var Q0=J0(u0);break;case 1:continue;default:r:for(;;){if(mn(j(u0))===0)for(;;){G0(u0,0);var h0=Bc(j(u0));if(2>>0)var Kr=q(u0);else switch(h0){case 0:var Kr=J0(u0);break;case 1:continue;default:continue r}break}else var Kr=q(u0);var Q0=Kr;break}}break}}return Q0===0?[0,D,qc(4,Se(u0))]:de(cCr)});case 31:return[0,t,66];case 18:case 28:return[0,t,Hi(2,Se(n))];default:return[0,t,qc(4,Se(n))]}}function Xl(t){return function(n){for(var e=0,i=n;;){var x=o(t,i,i[2]);switch(x[0]){case 0:var c=x[2],s=x[1],p=Xr0(s,c),y=e===0?0:ye(e),T=s[6];if(T===0)return[0,[0,s[1],s[2],s[3],s[4],s[5],s[6],p],[0,c,p,0,y]];var E=[0,c,p,ye(T),y];return[0,[0,s[1],s[2],s[3],s[4],s[5],_r0,p],E];case 1:var d=x[2],w=x[1],e=[0,d,e],i=[0,w[1],w[2],w[3],w[4],w[5],w[6],d[1]];continue;default:var i=x[1];continue}}}}var Ree=Xl(Cee),jee=Xl(Pee),Gee=Xl(Dee),Mee=Xl(Lee),Bee=Xl(Nee),Mu=eL([0,bz]);function Yl(t,n){return[0,0,0,n,yr0(t)]}function g9(t){var n=t[4];switch(t[3]){case 0:var c0=u(Bee,n);break;case 1:var c0=u(Mee,n);break;case 2:var c0=u(jee,n);break;case 3:var e=h7(n,n[2]),i=rt(Jn),x=rt(Jn),c=n[2];gn(c);var s=j(c),p=ts>>0)var y=q(c);else switch(p){case 0:var y=1;break;case 1:var y=4;break;case 2:var y=0;break;case 3:G0(c,0);var T=xi(j(c))!==0?1:0,y=T&&q(c);break;case 4:var y=2;break;default:var y=3}if(4>>0)var E=de(aCr);else switch(y){case 0:var d=Se(c);dn(x,d),dn(i,d);var w=pL(d7(n,c),2,i,x,c),G=h7(w,c),A=Mt(i),S=Mt(x),E=[0,w,[8,[0,w[1],e,G],A,S]];break;case 1:var E=[0,n,Pn];break;case 2:var E=[0,n,98];break;case 3:var E=[0,n,0];break;default:$v(c);var M=pL(n,2,i,x,c),K=h7(M,c),V=Mt(i),f0=Mt(x),E=[0,M,[8,[0,M[1],e,K],V,f0]]}var m0=E[2],k0=E[1],g0=Xr0(k0,m0),e0=k0[6];if(e0===0)var l=[0,k0,[0,m0,g0,0,0]];else var x0=[0,m0,g0,ye(e0),0],l=[0,[0,k0[1],k0[2],k0[3],k0[4],k0[5],0,k0[7]],x0];var c0=l;break;case 4:var c0=u(Gee,n);break;default:var c0=u(Ree,n)}var t0=c0[1],o0=yr0(t0),w0=[0,o0,c0[2]];return t[4]=t0,t[1]?t[2]=[0,w0]:t[1]=[0,w0],w0}function Qr0(t){var n=t[1];return n?n[1][2]:g9(t)[2]}function qee(t,n,e,i){var x=t&&t[1],c=n&&n[1];try{var s=0,p=pr0(i),y=s,T=p}catch(A){if(A=St(A),A!==I1)throw A;var E=[0,[0,[0,e,ez[2],ez[3]],86],0],y=E,T=pr0(Ujr)}var d=c?c[1]:Bv,w=Aee(e,T,d[4]),G=[0,Yl(w,0)];return[0,[0,y],[0,0],Mu[1],[0,0],d[5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,[0,Xjr],[0,w],G,[0,x],d,e,[0,0],[0,Hjr]]}function n2(t){return bl(t[23][1])}function xu(t){return t[27][4]}function ue(t,n){var e=n[2];t[1][1]=[0,[0,n[1],e],t[1][1]];var i=t[22];return i&&o(i[1],t,e)}function Vl(t,n){return t[30][1]=n,0}function Rs(t,n){if(t===0)return Qr0(n[25][1]);if(t===1){var e=n[25][1];e[1]||g9(e);var i=e[2];return i?i[1][2]:g9(e)[2]}throw[0,Sn,Mjr]}function _s(t,n){return t===n[5]?n:[0,n[1],n[2],n[3],n[4],t,n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function mL(t,n){return t===n[17]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],t,n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function re0(t,n){return t===n[18]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],t,n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ee0(t,n){return t===n[19]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],t,n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function t2(t,n){return t===n[21]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],t,n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function F9(t,n){return t===n[14]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],t,n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function zl(t,n){return t===n[8]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],t,n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function Kl(t,n){return t===n[12]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],t,n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function u2(t,n){return t===n[15]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],t,n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ne0(t,n){return t===n[6]?n:[0,n[1],n[2],n[3],n[4],n[5],t,n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function te0(t,n){return t===n[7]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],t,n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function _L(t,n){return t===n[13]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],t,n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function T9(t,n){return[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],[0,t],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function yL(t){function n(e){return ue(t,e)}return function(e){return Du(n,e)}}function i2(t){var n=t[4][1],e=n&&[0,n[1][2]];return e}function ue0(t){var n=t[4][1],e=n&&[0,n[1][1]];return e}function ie0(t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],0,t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function fe0(t,n,e,i){return[0,t[1],t[2],Mu[1],t[4],t[5],0,0,0,0,0,1,t[12],t[13],t[14],t[15],t[16],e,n,t[19],i,t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function xe0(t){var n=Ee(t,ijr),e=0;if(0<=n){if(0>>0){if(!(T7<(i+1|0)>>>0))return 1}else{var x=i!==6?1:0;if(!x)return x}}return Jl(t,n)}function x2(t){return se0(0,t)}function I9(t,n){var e=Kn(t,n);if(dL(e)||hL(e)||oe0(e))return 1;var i=0;if(typeof e=="number")switch(e){case 14:case 28:case 60:case 61:case 62:case 63:case 64:case 65:i=1;break}else e[0]===4&&(i=1);return i?1:0}function ve0(t,n){var e=n2(n);if(e===1){var i=Kn(t,n);return typeof i!="number"&&i[0]===4?1:0}if(e)return 0;var x=Kn(t,n);if(typeof x=="number")switch(x){case 42:case 46:case 47:return 0;case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:break;default:return 0}else switch(x[0]){case 4:if(ae0(x[3]))return 0;break;case 9:case 10:case 11:break;default:return 0}return 1}function G1(t){return I9(0,t)}function Gs(t){var n=A0(t)===15?1:0;if(n)var e=n;else{var i=A0(t)===64?1:0;if(i){var x=Kn(1,t)===15?1:0;if(x)var c=Wl(1,t)[2][1],e=De(t)[3][1]===c?1:0;else var e=x}else var e=i}return e}function $l(t){var n=A0(t);if(typeof n=="number"){var e=0;if((n===13||n===40)&&(e=1),e)return 1}return 0}function je(t,n){return ue(t,[0,De(t),n])}function le0(t,n){if(hL(n))return 2;if(dL(n))return 55;var e=aL(0,n);return t?[11,e,t[1]]:[10,e]}function gt(t,n){var e=wL(n);return u(yL(n),e),je(n,le0(t,A0(n)))}function A9(t){function n(e){return ue(t,[0,e[1],76])}return function(e){return Du(n,e)}}function be0(t,n){var e=t[6]?ur(nt(wRr),n,n,n):ERr;return gt([0,e],t)}function gi(t,n){var e=t[5];return e&&je(t,n)}function V7(t,n){var e=t[5];return e&&ue(t,[0,n[1],n[2]])}function M1(t,n){return ue(t,[0,n,[18,t[5]]])}function ie(t){var n=t[26][1];if(n){var e=n2(t),i=A0(t),x=[0,De(t),i,e];u(n[1],x)}var c=t[25][1],s=c[1],p=s?s[1][1]:g9(c)[1];t[24][1]=p;var y=wL(t);u(yL(t),y);var T=t[2][1],E=Lc(Rs(0,t)[4],T);t[2][1]=E;var d=[0,Rs(0,t)];t[4][1]=d;var w=t[25][1];return w[2]?(w[1]=w[2],w[2]=0,0):(Qr0(w),w[1]=0,0)}function ou(t,n){var e=o(iL,A0(t),n);return e&&ie(t),e}function Ku(t,n){t[23][1]=[0,n,t[23][1]];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function k7(t){var n=t[23][1],e=n?n[2]:de(kRr);t[23][1]=e;var i=n2(t),x=Yl(t[24][1],i);return t[25][1]=x,0}function ke(t){var n=De(t);if(A0(t)===9&&Jl(1,t)){var e=pr(t),i=Rs(1,t)[4],x=on(e,u(ml(function(s){return s[1][2][1]<=n[3][1]?1:0}),i));return Vl(t,[0,n[3][1]+1|0,0]),x}var c=pr(t);return Vl(t,n[3]),c}function Ms(t){var n=t[4][1];if(n){var e=n[1][2],i=pr(t),x=u(ml(function(p){return p[1][2][1]<=e[3][1]?1:0}),i);Vl(t,[0,e[3][1]+1|0,0]);var c=x}else var c=n;return c}function B1(t,n){return gt([0,aL(_Rr,n)],t)}function X0(t,n){return 1-o(iL,A0(t),n)&&B1(t,n),ie(t)}function pe0(t,n){var e=ou(t,n);return 1-e&&B1(t,n),e}function Zl(t,n){var e=A0(t),i=0;return typeof e!="number"&&e[0]===4&&Hn(e[3],n)&&(i=1),i||gt([0,u(nt(mRr),n)],t),ie(t)}var Bs=[Et,Yjr,M7(0)];function Uee(t){var n=t[26][1];if(n){var e=mz(0),i=[0,function(s){return aN(s,e)}];t[26][1]=i;var x=[0,[0,n[1],e]]}else var x=n;return[0,t[1][1],t[2][1],t[4][1],t[23][1],t[24][1],t[30][1],x]}function me0(t,n,e){if(e){var i=e[1],x=i[1];if(n[26][1]=[0,x],t)for(var c=i[2][2];;){if(c){var s=c[2];u(x,c[1]);var c=s;continue}return 0}var p=t}else var p=e;return p}function Hee(t,n){me0(0,t,n[7]),t[1][1]=n[1],t[2][1]=n[2],t[4][1]=n[3],t[23][1]=n[4],t[24][1]=n[5],t[30][1]=n[6];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function Xee(t,n,e){return me0(1,t,n[7]),[0,e]}function EL(t,n){var e=Uee(t);try{var i=Xee(t,e,u(n,t));return i}catch(x){if(x=St(x),x===Bs)return Hee(t,e);throw x}}function _e0(t,n,e){var i=EL(t,e);return i?i[1]:n}function Ql(t,n){var e=ye(n);if(e){var i=e[1],x=u(t,i);return i===x?n:ye([0,x,e[2]])}return n}var ye0=Rp(Jjr,function(t){var n=PN(t,zjr),e=NN(t,Wjr),i=e[22],x=e[26],c=e[35],s=e[77],p=e[iV],y=e[gO],T=e[cp],E=e[BO],d=e[jh],w=e[ZF],G=e[6],A=e[7],S=e[10],M=e[17],K=e[21],V=e[27],f0=e[33],m0=e[36],k0=e[46],g0=e[51],e0=e[89],x0=e[92],l=e[97],c0=e[99],t0=e[ti],o0=e[Pn],w0=e[Sv],_0=e[zw],E0=e[Jg],U0=e[dH],b=e[DX],R0=e[eH],X=e[FH],s0=e[kh],hr=e[AF],Ar=e[Wg],or=e[A6],W0=e[Cw],Lr=e[iA],Tr=e[rk],Hr=e[hT],Or=e[lO],fr=e[i6],Rr=e[ST],Wr=e[v8],Jr=e[$2],ar=LN(t,0,0,nz,KD,1)[1];function _r(q0,gr,_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(I){var y0=function(D){return[0,Y,[0,U,[0,D]]]},P0=I[1];return ee(u(q0[1][1+y],q0),P0,_,y0)}function I0(D){return[0,Y,[0,D,I]]}return ee(o(q0[1][1+G],q0,gr),U,_,I0)}function Ir(q0,gr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function fe(q0,gr){var _=gr[2],k=_[1],I=gr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,gr,U)}function v0(q0,gr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function P(q0,gr){function _(I){return[0,gr[1],I]}var k=gr[2];return ee(u(q0[1][1+c],q0),k,gr,_)}function L(q0,gr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function Q(q0,gr,_){var k=_[2],I=_[1],U=Ql(u(q0[1][1+y],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,Y]}function i0(q0,gr){var _=gr[2],k=_[1],I=gr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,gr,U)}function l0(q0,gr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function S0(q0,gr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function T0(q0,gr,_){var k=_[3],I=_[2],U=o(q0[1][1+l],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,Y]}function rr(q0,gr,_){var k=_[4],I=_[3],U=_[2],Y=_[1],y0=o(q0[1][1+c],q0,k);if(I){var P0=ze(u(q0[1][1+w],q0),I);return I===P0&&k===y0?_:[0,_[1],_[2],P0,y0]}if(U){var I0=ze(u(q0[1][1+d],q0),U);return U===I0&&k===y0?_:[0,_[1],I0,_[3],y0]}var D=o(q0[1][1+y],q0,Y);return Y===D&&k===y0?_:[0,D,_[2],_[3],y0]}function L0(q0,gr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function B(q0,gr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function Z(q0,gr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function p0(q0,gr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function b0(q0,gr,_){var k=_[3],I=_[1],U=_u(u(q0[1][1+s],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,_[2],Y]}function O0(q0,gr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function M0(q0,gr){if(gr[0]===0){var _=function(P0){return[0,P0]},k=gr[1];return ee(u(q0[1][1+p],q0),k,gr,_)}var I=gr[1],U=I[2],Y=U[2],y0=o(q0[1][1+p],q0,Y);return Y===y0?gr:[1,[0,I[1],[0,U[1],y0]]]}function er(q0,gr,_){var k=_[4],I=_[3],U=o(q0[1][1+x],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function yr(q0,gr){var _=gr[2],k=gr[1];function I(Y){return[0,k,[0,_[1],_[2],_[3],Y]]}var U=_[4];return ee(u(q0[1][1+c],q0),U,[0,k,_],I)}function vr(q0,gr,_){var k=_[9],I=_[3],U=o(q0[1][1+s0],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,_[4],_[5],_[6],_[7],_[8],Y,_[10]]}function $0(q0,gr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function Er(q0,gr){var _=gr[2],k=_[1],I=gr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,gr,U)}function Mr(q0,gr){var _=gr[2],k=_[2],I=_[1],U=gr[1];if(k===0){var Y=function(I0){return[0,U,[0,I0,k]]};return ee(u(q0[1][1+p],q0),I,gr,Y)}function y0(I0){return[0,U,[0,I,I0]]}var P0=u(q0[1][1+i],q0);return ee(function(I0){return ze(P0,I0)},k,gr,y0)}function Br(q0,gr){var _=gr[2],k=_[2],I=gr[1];function U(P0){return[0,I,[0,P0,k]]}var Y=_[1],y0=u(q0[1][1+T],q0);return ee(function(P0){return Ql(y0,P0)},Y,gr,U)}function qr(q0,gr,_){var k=_[2];if(k===0){var I=function(P0){return[0,P0,_[2],_[3]]},U=_[1];return ee(u(q0[1][1+y],q0),U,_,I)}function Y(P0){return[0,_[1],P0,_[3]]}var y0=u(q0[1][1+i],q0);return ee(function(P0){return ze(y0,P0)},k,_,Y)}function jr(q0,gr){var _=gr[2],k=_[1],I=gr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,gr,U)}function $r(q0,gr,_){var k=_[7],I=_[2],U=o(q0[1][1+E],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,_[3],_[4],_[5],_[6],Y]}function ne(q0,gr){var _=gr[2],k=_[1],I=gr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,gr,U)}function Qr(q0,gr){var _=gr[2],k=_[1],I=gr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,gr,U)}function be(q0,gr,_){var k=_[4],I=_[3],U=o(q0[1][1+w],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ae(q0,gr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function pe(q0,gr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function oe(q0,gr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ce(q0,gr){function _(I){return[0,gr[1],I]}var k=gr[2];return ee(u(q0[1][1+c],q0),k,gr,_)}function ge(q0,gr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}return jN(t,[0,m0,function(q0,gr){var _=gr[2],k=u(ml(function(U){return ps(U[1][2],q0[1+n])<0?1:0}),_),I=Dc(k);return Dc(_)===I?gr:[0,gr[1],k,gr[3]]},Jr,ge,Wr,ce,Rr,oe,fr,pe,Or,ae,Hr,be,w,Qr,d,ne,Tr,$r,E,jr,Lr,qr,W0,Br,T,Mr,or,Er,Ar,$0,hr,vr,X,yr,R0,er,b,M0,U0,O0,E0,b0,_0,p0,w0,Z,o0,B,t0,L0,x0,rr,c0,T0,e0,S0,s,l0,g0,i0,k0,Q,f0,L,V,P,K,v0,M,fe,S,Ir,A,_r]),function(q0,gr,_){var k=jp(gr,t);return k[1+n]=_,u(ar,k),RN(gr,k,t)}});function N9(t){var n=i2(t);if(n)var e=n[1],i=ce0(t)?(Vl(t,e[3]),[0,o(ye0[1],0,e[3])]):0,x=i;else var x=n;return[0,0,function(c,s){return x?o(s,x[1],c):c}]}function rb(t){var n=i2(t);if(n){var e=n[1];if(ce0(t)){Vl(t,e[3]);var i=Ms(t),x=[0,o(ye0[1],0,[0,e[3][1]+1|0,0])],c=i}else var x=0,c=Ms(t)}else var x=0,c=0;return[0,c,function(s,p){return x?o(p,x[1],s):s}]}function Qt(t){return x7(t)?rb(t):N9(t)}function ys(t,n){var e=Qt(t);function i(x,c){return o(rn(x,Nv,27),x,c)}return o(e[2],n,i)}function oi(t,n){if(n)var e=Qt(t),i=function(c,s){return o(rn(c,bF,30),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function o2(t,n){var e=Qt(t);function i(x,c){return o(rn(x,-983660142,32),x,c)}return o(e[2],n,i)}function eb(t,n){var e=Qt(t);function i(x,c){return o(rn(x,-455772979,33),x,c)}return o(e[2],n,i)}function he0(t,n){if(n)var e=Qt(t),i=function(c,s){return o(rn(c,kH,34),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function Xi(t,n){var e=Qt(t);function i(x,c){return o(rn(x,qY,35),x,c)}return o(e[2],n,i)}function de0(t,n){var e=Qt(t);function i(x,c){var s=u(rn(x,ZU,37),x);return Ql(function(p){return _u(s,p)},c)}return o(e[2],n,i)}function ke0(t,n){var e=Qt(t);function i(x,c){return o(rn(x,-21476009,38),x,c)}return o(e[2],n,i)}Rp($jr,function(t){var n=PN(t,Vjr),e=DN(Kjr),i=e.length-1,x=tz.length-1,c=Gv(i+x|0,0),s=i-1|0,p=0;if(!(s<0))for(var y=p;;){var T=Fl(t,uu(e,y)[1+y]);uu(c,y)[1+y]=T;var E=y+1|0;if(s!==y){var y=E;continue}break}var d=x-1|0,w=0;if(!(d<0))for(var G=w;;){var A=G+i|0,S=PN(t,uu(tz,G)[1+G]);uu(c,A)[1+A]=S;var M=G+1|0;if(d!==G){var G=M;continue}break}var K=c[4],V=c[5],f0=c[y6],m0=c[cp],k0=c[nd],g0=c[gv],e0=c[38],x0=c[mT],l=c[Vy],c0=LN(t,0,0,nz,KD,1)[1];function t0(b,R0,X){return o(b[1][1+f0],b,X[2]),X}function o0(b,R0){return o(b[1][1+m0],b,R0),R0}function w0(b,R0){var X=R0[1],s0=b[1+g0];if(s0){var hr=ps(s0[1][1][2],X[2])<0?1:0,Ar=hr&&(b[1+g0]=[0,R0],0);return Ar}var or=0<=ps(X[2],b[1+n][3])?1:0,W0=or&&(b[1+g0]=[0,R0],0);return W0}function _0(b,R0){var X=R0[1],s0=b[1+k0];if(s0){var hr=ps(X[2],s0[1][1][2])<0?1:0,Ar=hr&&(b[1+k0]=[0,R0],0);return Ar}var or=ps(X[2],b[1+n][2])<0?1:0,W0=or&&(b[1+k0]=[0,R0],0);return W0}function E0(b,R0){return R0&&o(b[1][1+m0],b,R0[1])}function U0(b,R0){var X=R0[1];Du(u(b[1][1+V],b),X);var s0=R0[2];return Du(u(b[1][1+K],b),s0)}return jN(t,[0,x0,function(b){return[0,b[1+k0],b[1+g0]]},m0,U0,f0,E0,V,_0,K,w0,e0,o0,l,t0]),function(b,R0,X){var s0=jp(R0,t);return s0[1+n]=X,u(c0,s0),s0[1+k0]=0,s0[1+g0]=0,RN(R0,s0,t)}});function we0(t){return t===3?2:(4<=t,1)}function SL(t,n,e){if(e){var i=e[1],x=0;if(i===8232||Hu===i)x=1;else if(i===10)var s=6;else if(i===13)var s=5;else if(fw<=i)var s=3;else if(Hh<=i)var s=2;else var c=jt<=i?1:0,s=c&&1;if(x)var s=7;var p=s}else var p=4;return[0,p,t]}var Yee=[Et,nGr,M7(0)];function Ee0(t,n,e,i){try{var x=uu(t,n)[1+n];return x}catch(c){throw c=St(c),c[1]===ZA?[0,Yee,e,ur(nt(rGr),i,n,t.length-1)]:c}}function C9(t,n){if(n[1]===0&&n[2]===0)return 0;var e=Ee0(t,n[1]-1|0,n,Zjr);return Ee0(e,n[2],n,Qjr)}var Vee=Ee;function zee(t,n){return o(f(t),IWr,n)}u(eL([0,Vee])[33],zee);function Se0(t){var n=A0(t),e=0;if(typeof n=="number")switch(n){case 15:var i=AWr;break;case 16:var i=NWr;break;case 17:var i=CWr;break;case 18:var i=PWr;break;case 19:var i=DWr;break;case 20:var i=LWr;break;case 21:var i=RWr;break;case 22:var i=jWr;break;case 23:var i=GWr;break;case 24:var i=MWr;break;case 25:var i=BWr;break;case 26:var i=qWr;break;case 27:var i=UWr;break;case 28:var i=HWr;break;case 29:var i=XWr;break;case 30:var i=YWr;break;case 31:var i=VWr;break;case 32:var i=zWr;break;case 33:var i=KWr;break;case 34:var i=WWr;break;case 35:var i=JWr;break;case 36:var i=$Wr;break;case 37:var i=ZWr;break;case 38:var i=QWr;break;case 39:var i=rJr;break;case 40:var i=eJr;break;case 41:var i=nJr;break;case 42:var i=tJr;break;case 43:var i=uJr;break;case 44:var i=iJr;break;case 45:var i=fJr;break;case 46:var i=xJr;break;case 47:var i=oJr;break;case 48:var i=aJr;break;case 49:var i=cJr;break;case 50:var i=sJr;break;case 51:var i=vJr;break;case 52:var i=lJr;break;case 53:var i=bJr;break;case 54:var i=pJr;break;case 55:var i=mJr;break;case 56:var i=_Jr;break;case 57:var i=yJr;break;case 58:var i=hJr;break;case 59:var i=dJr;break;case 60:var i=kJr;break;case 61:var i=wJr;break;case 62:var i=EJr;break;case 63:var i=SJr;break;case 64:var i=gJr;break;case 65:var i=FJr;break;case 114:var i=TJr;break;case 115:var i=OJr;break;case 116:var i=IJr;break;case 117:var i=AJr;break;case 118:var i=NJr;break;case 119:var i=CJr;break;case 120:var i=PJr;break;case 121:var i=DJr;break;default:e=1}else switch(n[0]){case 4:var i=n[2];break;case 9:var i=n[1]?LJr:RJr;break;default:e=1}if(e){gt(jJr,t);var i=GJr}return ie(t),i}function z7(t){var n=De(t),e=pr(t),i=Se0(t);return[0,n,[0,i,lr([0,e],[0,ke(t)],0)]]}function ge0(t){var n=De(t),e=pr(t);X0(t,14);var i=De(t),x=Se0(t),c=lr([0,e],[0,ke(t)],0),s=ht(n,i),p=i[2],y=n[3],T=y[1]===p[1]?1:0,E=T&&(y[2]===p[2]?1:0);return 1-E&&ue(t,[0,s,R7]),[0,s,[0,x,c]]}function q1(t){var n=t[2],e=n[3]===0?1:0;if(e)for(var i=n[2];;){if(i){var x=i[1][2],c=0,s=i[2];if(x[1][2][0]===2&&!x[2]){var p=1;c=1}if(!c)var p=0;if(p){var i=s;continue}return p}return 1}return e}function nb(t){for(var n=t;;){var e=n[2];if(e[0]===27){var i=e[1][2];if(i[2][0]===23)return 1;var n=i;continue}return 0}}function cr(t,n,e){var i=t?t[1]:De(e),x=u(n,e),c=i2(e),s=c?ht(i,c[1]):i;return[0,s,x]}function gL(t,n,e){var i=cr(t,n,e),x=i[2];return[0,[0,i[1],x[1]],x[2]]}function Kee(t){function n(B){var Z=De(B),p0=A0(B);if(typeof p0=="number"){if(s7===p0){var b0=pr(B);return ie(B),[0,[0,Z,[0,0,lr([0,b0],0,0)]]]}if(L7===p0){var O0=pr(B);return ie(B),[0,[0,Z,[0,1,lr([0,O0],0,0)]]]}}return 0}var e=function B(Z){return B.fun(Z)},i=function B(Z){return B.fun(Z)},x=function B(Z){return B.fun(Z)},c=function B(Z,p0,b0){return B.fun(Z,p0,b0)},s=function B(Z){return B.fun(Z)},p=function B(Z,p0,b0){return B.fun(Z,p0,b0)},y=function B(Z){return B.fun(Z)},T=function B(Z,p0){return B.fun(Z,p0)},E=function B(Z){return B.fun(Z)},d=function B(Z){return B.fun(Z)},w=function B(Z,p0,b0){return B.fun(Z,p0,b0)},G=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},A=function B(Z){return B.fun(Z)},S=function B(Z,p0){return B.fun(Z,p0)},M=function B(Z){return B.fun(Z)},K=function B(Z){return B.fun(Z)},V=function B(Z){return B.fun(Z)},f0=function B(Z){return B.fun(Z)},m0=function B(Z){return B.fun(Z)},k0=function B(Z){return B.fun(Z)},g0=function B(Z,p0){return B.fun(Z,p0)},e0=function B(Z){return B.fun(Z)},x0=function B(Z){return B.fun(Z)},l=function B(Z){return B.fun(Z)},c0=function B(Z){return B.fun(Z)},t0=function B(Z){return B.fun(Z)},o0=function B(Z){return B.fun(Z)},w0=function B(Z){return B.fun(Z)},_0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},E0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},U0=function B(Z){return B.fun(Z)},b=function B(Z){return B.fun(Z)},R0=function B(Z){return B.fun(Z)},X=function B(Z){return B.fun(Z)},s0=function B(Z){return B.fun(Z)},hr=function B(Z){return B.fun(Z)},Ar=function B(Z,p0){return B.fun(Z,p0)},or=function B(Z,p0){return B.fun(Z,p0)},W0=function B(Z){return B.fun(Z)},Lr=function B(Z,p0,b0){return B.fun(Z,p0,b0)};N(e,function(B){return u(x,B)}),N(i,function(B){return 1-xu(B)&&je(B,12),cr(0,function(Z){return X0(Z,86),u(e,Z)},B)}),N(x,function(B){var Z=A0(B)===89?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(c,B,[0,b0],u(s,B))}),N(c,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===89){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr=="number"&&vr===89){X0(er,89);var yr=[0,u(s,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[19,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,m$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(s,function(B){var Z=A0(B)===91?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(p,B,[0,b0],u(y,B))}),N(p,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===91){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr=="number"&&vr===91){X0(er,91);var yr=[0,u(y,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[20,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,p$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(y,function(B){return o(T,B,u(E,B))}),N(T,function(B,Z){var p0=A0(B);if(typeof p0=="number"&&p0===11&&!B[15]){var b0=o(g0,B,Z);return R(_0,B,b0[1],0,[0,b0[1],[0,0,[0,b0,0],0,0]])}return Z}),N(E,function(B){var Z=A0(B);return typeof Z=="number"&&Z===85?cr(0,function(p0){var b0=pr(p0);X0(p0,85);var O0=lr([0,b0],0,0);return[11,[0,u(E,p0),O0]]},B):u(d,B)}),N(d,function(B){return ur(w,0,B,u(V,B))}),N(w,function(B,Z,p0){var b0=B&&B[1];if(x7(Z))return p0;var O0=A0(Z);if(typeof O0=="number"){if(O0===6)return ie(Z),R(G,b0,0,Z,p0);if(O0===10){var M0=Kn(1,Z);return typeof M0=="number"&&M0===6?(je(Z,l$r),X0(Z,10),X0(Z,6),R(G,b0,0,Z,p0)):(je(Z,b$r),p0)}if(O0===83)return ie(Z),A0(Z)!==6&&je(Z,30),X0(Z,6),R(G,1,1,Z,p0)}return p0}),N(G,function(B,Z,p0,b0){function O0(M0){if(!Z&&ou(M0,7))return[15,[0,b0,lr(0,[0,ke(M0)],0)]];var er=u(e,M0);X0(M0,7);var yr=[0,b0,er,lr(0,[0,ke(M0)],0)];return B?[18,[0,yr,Z]]:[17,yr]}return ur(w,[0,B],p0,cr([0,b0[1]],O0,p0))}),N(A,function(B){return o(S,B,o(t[13],0,B))}),N(S,function(B,Z){for(var p0=[0,Z[1],[0,Z]];;){var b0=p0[2];if(A0(B)===10&&I9(1,B)){var O0=function(vr){return function($0){return X0($0,10),[0,vr,z7($0)]}}(b0),M0=cr([0,p0[1]],O0,B),er=M0[1],p0=[0,er,[1,[0,er,M0[2]]]];continue}return b0}}),N(M,function(B){var Z=A0(B);if(typeof Z=="number"){if(Z===4){ie(B);var p0=u(M,B);return X0(B,5),p0}}else if(Z[0]===4)return[0,u(A,B)];return je(B,51),0}),N(K,function(B){return cr(0,function(Z){var p0=pr(Z);X0(Z,46);var b0=u(M,Z);if(b0){var O0=lr([0,p0],0,0);return[21,[0,b0[1],O0]]}return v$r},B)}),N(V,function(B){var Z=De(B),p0=A0(B),b0=0;if(typeof p0=="number")switch(p0){case 4:return u(o0,B);case 6:return u(k0,B);case 46:return u(K,B);case 53:return cr(0,function(ge){var q0=pr(ge);X0(ge,53);var gr=u(U0,ge),_=lr([0,q0],0,0);return[14,[0,gr[2],gr[1],_]]},B);case 98:return u(w0,B);case 106:var O0=pr(B);return X0(B,Vt),[0,Z,[10,lr([0,O0],[0,ke(B)],0)]];case 42:b0=1;break;case 0:case 2:var M0=R(E0,0,1,1,B);return[0,M0[1],[13,M0[2]]];case 30:case 31:var er=pr(B);return X0(B,p0),[0,Z,[26,[0,p0===31?1:0,lr([0,er],[0,ke(B)],0)]]]}else switch(p0[0]){case 2:var yr=p0[1],vr=yr[4],$0=yr[3],Er=yr[2],Mr=yr[1];vr&&gi(B,45);var Br=pr(B);return X0(B,[2,[0,Mr,Er,$0,vr]]),[0,Mr,[23,[0,Er,$0,lr([0,Br],[0,ke(B)],0)]]];case 10:var qr=p0[3],jr=p0[2],$r=p0[1],ne=pr(B);X0(B,[10,$r,jr,qr]);var Qr=ke(B);return $r===1&&gi(B,45),[0,Z,[24,[0,jr,qr,lr([0,ne],[0,Qr],0)]]];case 11:var be=p0[3],ae=p0[2],pe=pr(B);return X0(B,[11,p0[1],ae,be]),[0,Z,[25,[0,ae,be,lr([0,pe],[0,ke(B)],0)]]];case 4:b0=1;break}if(b0){var oe=u(hr,B);return[0,oe[1],[16,oe[2]]]}var ce=u(m0,B);return ce?[0,Z,ce[1]]:(gt(c$r,B),[0,Z,s$r])}),N(f0,function(B){var Z=0;if(typeof B=="number")switch(B){case 29:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:Z=1;break}else B[0]===9&&(Z=1);return Z?1:0}),N(m0,function(B){var Z=pr(B),p0=A0(B);if(typeof p0=="number")switch(p0){case 29:return ie(B),[0,[4,lr([0,Z],[0,ke(B)],0)]];case 114:return ie(B),[0,[0,lr([0,Z],[0,ke(B)],0)]];case 115:return ie(B),[0,[1,lr([0,Z],[0,ke(B)],0)]];case 116:return ie(B),[0,[2,lr([0,Z],[0,ke(B)],0)]];case 117:return ie(B),[0,[5,lr([0,Z],[0,ke(B)],0)]];case 118:return ie(B),[0,[6,lr([0,Z],[0,ke(B)],0)]];case 119:return ie(B),[0,[7,lr([0,Z],[0,ke(B)],0)]];case 120:return ie(B),[0,[3,lr([0,Z],[0,ke(B)],0)]];case 121:return ie(B),[0,[9,lr([0,Z],[0,ke(B)],0)]]}else if(p0[0]===9)return ie(B),[0,[8,lr([0,Z],[0,ke(B)],0)]];return 0}),N(k0,function(B){return cr(0,function(Z){var p0=pr(Z);X0(Z,6);for(var b0=u2(0,Z),O0=0;;){var M0=A0(b0);if(typeof M0=="number"){var er=0;if((M0===7||Pn===M0)&&(er=1),er){var yr=ye(O0);return X0(Z,7),[22,[0,yr,lr([0,p0],[0,ke(Z)],0)]]}}var vr=[0,u(e,b0),O0];A0(b0)!==7&&X0(b0,9);var O0=vr}},B)}),N(g0,function(B,Z){return[0,Z[1],[0,0,Z,0]]}),N(e0,function(B){return cr(0,function(Z){Ku(Z,0);var p0=o(t[13],0,Z);k7(Z),1-xu(Z)&&je(Z,12);var b0=ou(Z,85);return X0(Z,86),[0,[0,p0],u(e,Z),b0]},B)});function Tr(B){var Z=Kn(1,B);return typeof Z=="number"&&!(1<(Z+W2|0)>>>0)?u(e0,B):o(g0,B,u(e,B))}N(x0,function(B){var Z=0;return function(p0){for(var b0=Z,O0=p0;;){var M0=A0(B);if(typeof M0=="number")switch(M0){case 5:case 12:case 113:var er=M0===12?1:0,yr=er&&[0,cr(0,function(jr){var $r=pr(jr);X0(jr,12);var ne=lr([0,$r],0,0);return[0,Tr(jr),ne]},B)];return[0,b0,ye(O0),yr,0]}else if(M0[0]===4&&!n0(M0[3],a$r)){var vr=0;if((Kn(1,B)===86||Kn(1,B)===85)&&(vr=1),vr){var $0=b0!==0?1:0,Er=$0||(O0!==0?1:0);Er&&je(B,s7);var Mr=cr(0,function($r){var ne=pr($r);ie($r),A0($r)===85&&je($r,L7);var Qr=lr([0,ne],0,0);return[0,u(i,$r),Qr]},B);A0(B)!==5&&X0(B,9);var b0=[0,Mr];continue}}var Br=[0,Tr(B),O0];A0(B)!==5&&X0(B,9);var O0=Br}}}),N(l,function(B){return cr(0,function(Z){var p0=pr(Z);X0(Z,4);var b0=o(x0,Z,0),O0=pr(Z);X0(Z,5);var M0=yu([0,p0],[0,ke(Z)],O0,0);return[0,b0[1],b0[2],b0[3],M0]},B)}),N(c0,function(B){var Z=pr(B);X0(B,4);var p0=u2(0,B),b0=A0(p0),O0=0;if(typeof b0=="number")switch(b0){case 5:var M0=o$r;break;case 42:O0=2;break;case 12:case 113:var M0=[0,o(x0,p0,0)];break;default:O0=1}else b0[0]===4?O0=2:O0=1;switch(O0){case 1:if(u(f0,b0)){var er=Kn(1,p0),yr=0;if(typeof er=="number"&&!(1<(er+W2|0)>>>0)){var vr=[0,o(x0,p0,0)];yr=1}if(!yr)var vr=[1,u(e,p0)];var M0=vr}else var M0=[1,u(e,p0)];break;case 2:var M0=u(t0,p0);break}if(M0[0]===0)var $0=M0;else{var Er=M0[1];if(B[15])var Mr=M0;else{var Br=A0(B),qr=0;if(typeof Br=="number")if(Br===5)var jr=Kn(1,B)===11?[0,o(x0,B,[0,o(g0,B,Er),0])]:[1,Er];else if(Br===9){X0(B,9);var jr=[0,o(x0,B,[0,o(g0,B,Er),0])]}else qr=1;else qr=1;if(qr)var jr=M0;var Mr=jr}var $0=Mr}var $r=pr(B);X0(B,5);var ne=ke(B);if($0[0]===0){var Qr=$0[1],be=yu([0,Z],[0,ne],$r,0);return[0,[0,Qr[1],Qr[2],Qr[3],be]]}return[1,ur(Lr,$0[1],Z,ne)]}),N(t0,function(B){var Z=Kn(1,B);return typeof Z=="number"&&!(1<(Z+W2|0)>>>0)?[0,o(x0,B,0)]:[1,ur(c,B,0,ur(p,B,0,o(T,B,ur(w,0,B,o(or,B,u(b,B))))))]}),N(o0,function(B){var Z=De(B),p0=cr(0,c0,B),b0=p0[2];return b0[0]===0?R(_0,B,Z,0,[0,p0[1],b0[1]]):b0[1]}),N(w0,function(B){var Z=De(B),p0=oi(B,u(X,B));return R(_0,B,Z,p0,u(l,B))}),N(_0,function(B,Z,p0,b0){return cr([0,Z],function(O0){return X0(O0,11),[12,[0,p0,b0,u(e,O0),0]]},B)});function Hr(B,Z,p0){return cr([0,Z],function(b0){var O0=u(l,b0);return X0(b0,86),[0,p0,O0,u(e,b0),0]},B)}function Or(B,Z){var p0=A0(Z);if(typeof p0=="number"&&!(10<=p0))switch(p0){case 1:if(!B)return 0;break;case 3:if(B)return 0;break;case 8:case 9:return ie(Z)}return B1(Z,9)}function fr(B,Z){return Z&&ue(B,[0,Z[1][1],7])}function Rr(B,Z){return Z&&ue(B,[0,Z[1],9])}N(E0,function(B,Z,p0,b0){var O0=Z&&(A0(b0)===2?1:0),M0=Z&&1-O0;return cr(0,function(er){var yr=pr(er),vr=O0&&2;X0(er,vr);var $0=u2(0,er),Er=x$r;r:for(;;){var Mr=Er[3],Br=Er[2],qr=Er[1];if(B&&p0)throw[0,Sn,zJr];if(M0&&!p0)throw[0,Sn,KJr];var jr=De($0),$r=A0($0);if(typeof $r=="number"){var ne=0;if(13<=$r){if(Pn===$r){var Qr=[0,ye(qr),Br,Mr];ne=1}}else if($r)switch($r-1|0){case 0:if(!O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 2:if(O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 11:if(!p0){ie($0);var be=A0($0);if(typeof be=="number"&&!(10<=be))switch(be){case 1:case 3:case 8:case 9:ue($0,[0,jr,20]),Or(O0,$0);continue}var ae=wL($0);u(yL($0),ae),ue($0,[0,jr,17]),ie($0),Or(O0,$0);continue}var pe=pr($0);ie($0);var oe=A0($0),ce=0;if(typeof oe=="number"&&!(10<=oe))switch(oe){case 1:case 3:case 8:case 9:Or(O0,$0);var ge=A0($0),q0=0;if(typeof ge=="number"){var gr=ge-1|0;if(!(2>>0))switch(gr){case 0:if(M0){var Qr=[0,ye(qr),1,pe];ne=1,ce=1,q0=1}break;case 1:break;default:ue($0,[0,jr,19]);var Qr=[0,ye(qr),Br,Mr];ne=1,ce=1,q0=1}}if(!q0){ue($0,[0,jr,18]);continue}break}if(!ce){var _=[1,cr([0,jr],function(W7){return function(Ut){var pt=lr([0,W7],0,0);return[0,u(e,Ut),pt]}}(pe),$0)];Or(O0,$0);var Er=[0,[0,_,qr],Br,Mr];continue}break}if(ne){var k=pr(er),I=on(Qr[3],k),U=O0?3:1;X0(er,U);var Y=yu([0,yr],[0,ke(er)],I,0);return[0,O0,Qr[2],Qr[1],Y]}}for(var y0=B,P0=B,I0=0,D=0,u0=0,H0=0;;){var J0=A0($0),ir=0;if(typeof J0=="number")switch(J0){case 6:Rr($0,u0);var Q0=Kn(1,$0),F0=0;if(typeof Q0=="number"&&Q0===6){fr($0,I0);var Cr=[4,cr([0,jr],function(Ut,pt,B0){return function(D0){var Le=on(pt,pr(D0));X0(D0,6),X0(D0,6);var He=z7(D0);X0(D0,7),X0(D0,7);var he=A0(D0),me=0;if(typeof he=="number"){var et=0;if(he!==4&&he!==98&&(et=1),!et){var En=Hr(D0,Ut,oi(D0,u(X,D0))),xt=0,ot=[0,En[1],[12,En[2]]],jn=1,ut=0;me=1}}if(!me){var kt=ou(D0,85),xn=ke(D0);X0(D0,86);var xt=xn,ot=u(e,D0),jn=0,ut=kt}return[0,He,ot,ut,B0!==0?1:0,jn,lr([0,Le],[0,xt],0)]}}(jr,H0,D),$0)];F0=1}if(!F0)var Cr=[2,cr([0,jr],function(W7,Ut,pt){return function(B0){var D0=on(W7,pr(B0));X0(B0,6);var Le=Kn(1,B0)===86?1:0;if(Le){var He=z7(B0);X0(B0,86);var he=[0,He]}else var he=Le;var me=u(e,B0);X0(B0,7);var et=ke(B0);X0(B0,86);var En=u(e,B0);return[0,he,me,En,Ut!==0?1:0,pt,lr([0,D0],[0,et],0)]}}(H0,D,I0),$0)];break;case 42:if(y0){if(I0===0){var Sr=[0,De($0)],mr=on(H0,pr($0));ie($0);var y0=0,P0=0,D=Sr,H0=mr;continue}throw[0,Sn,JJr]}ir=1;break;case 103:case 104:if(I0===0){var y0=0,P0=0,I0=n($0);continue}ir=1;break;case 4:case 98:Rr($0,u0),fr($0,I0);var Cr=[3,cr([0,jr],function(W7,Ut){return function(pt){var B0=De(pt),D0=Hr(pt,B0,oi(pt,u(X,pt)));return[0,D0,Ut!==0?1:0,lr([0,W7],0,0)]}}(H0,D),$0)];break;default:ir=1}else if(J0[0]===4&&!n0(J0[3],$Jr)){if(P0){if(I0===0){var sr=[0,De($0)],Pr=on(H0,pr($0));ie($0);var y0=0,P0=0,u0=sr,H0=Pr;continue}throw[0,Sn,ZJr]}ir=1}else ir=1;if(ir){var K0=0;if(D){var Ur=D[1];if(u0){var Cr=de(QJr);K0=1}else if(typeof J0=="number"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Ur,[1,Rc(lr([0,H0],0,0),[0,Ur,r$r])]],Kr=0,re=u0,xe=0;K0=2}}else if(u0){var Re=u0[1];if(typeof J0=="number"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Re,[1,Rc(lr([0,H0],0,0),[0,Re,e$r])]],Kr=0,re=0,xe=D;K0=2}}var ve=0;switch(K0){case 0:var Ie=function(Ut){Ku(Ut,0);var pt=o(t[20],0,Ut);return k7(Ut),pt},Ge=pr($0),Me=Ie($0),an=Me[1],We=Me[2],Ae=0;if(We[0]===1){var cn=We[1][2][1],en=0;if(n0(cn,n$r)&&n0(cn,t$r)&&(en=1),!en){var wn=A0($0),ln=0;if(typeof wn=="number"){var Ce=wn-5|0;if(92>>0){if(!(94<(Ce+1|0)>>>0)){Rr($0,u0),fr($0,I0);var Je=We;Ae=1,ln=1}}else if(!(1<(Ce+eX|0)>>>0)){var h0=[0,an,We],Kr=H0,re=u0,xe=D;ve=1,Ae=2,ln=1}}if(!ln){Xi($0,We);var nn=Ie($0),yn=Hn(cn,u$r),Cn=on(H0,Ge);Rr($0,u0),fr($0,I0);var Cr=[0,cr([0,jr],function(pt,B0,D0,Le,He){return function(he){var me=D0[1],et=Xi(he,D0[2]),En=Hr(he,pt,0),xt=En[2][2];if(Le){var ot=xt[2],jn=0;if(ot[1])ue(he,[0,me,j7]),jn=1;else{var ut=0;!ot[2]&&!ot[3]&&(jn=1,ut=1),ut||ue(he,[0,me,80])}}else{var kt=xt[2],xn=0;if(kt[1])ue(he,[0,me,Vt]),xn=1;else{var bn=kt[2],it=0;if(kt[3])ue(he,[0,me,81]);else{var Ot=0;bn&&!bn[2]&&(Ot=1),Ot||(ue(he,[0,me,81]),it=1)}it||(xn=1)}}var Ti=lr([0,He],0,0),hs=0,Au=0,Hs=0,Vi=B0!==0?1:0,Xs=0,Ys=Le?[1,En]:[2,En];return[0,et,Ys,Xs,Vi,Hs,Au,hs,Ti]}}(jr,D,nn,yn,Cn),$0)];Ae=2}}}var Yn=0;switch(Ae){case 2:Yn=1;break;case 0:var Fn=Me[2],lt=A0($0),Nt=0;if(typeof lt=="number"){var Ft=0;if(lt!==4&<!==98&&(Ft=1),!Ft){Rr($0,u0),fr($0,I0);var Je=Fn;Nt=1}}if(!Nt){var ru=D!==0?1:0,qt=0;if(Fn[0]===1){var Tt=Fn[1],Ct=Tt[2][1],du=0;if(B){var Wu=0;!Hn(i$r,Ct)&&(!ru||!Hn(f$r,Ct))&&(Wu=1),Wu||(ue($0,[0,Tt[1],[21,Ct,ru,0,0]]),qt=1,du=1)}}var h0=[0,an,Fn],Kr=H0,re=u0,xe=D;ve=1,Yn=1}break}if(!Yn)var bt=Xi($0,Je),au=Hr($0,jr,oi($0,u(X,$0))),Bu=[0,au[1],[12,au[2]]],K7=[0,bt,[0,Bu],0,D!==0?1:0,0,1,0,lr([0,H0],0,0)],Cr=[0,[0,Bu[1],K7]];break;case 2:ve=1;break}if(ve){var Yi=h0[2],a7=h0[1];1-xu($0)&&je($0,12);var Cr=[0,cr([0,jr],function(Ut,pt,B0,D0,Le,He){return function(he){var me=ou(he,85),et=pe0(he,86)?u(e,he):[0,He,WJr];return[0,Le,[0,et],me,pt!==0?1:0,B0!==0?1:0,0,Ut,lr([0,D0],0,0)]}}(I0,xe,re,Kr,Yi,a7),$0)]}}Or(O0,$0);var Er=[0,[0,Cr,qr],Br,Mr];continue r}}},b0)}),N(U0,function(B){var Z=A0(B)===41?1:0;if(Z){X0(B,41);for(var p0=0;;){var b0=[0,u(hr,B),p0],O0=A0(B);if(typeof O0=="number"&&O0===9){X0(B,9);var p0=b0;continue}var M0=de0(B,ye(b0));break}}else var M0=Z;return[0,M0,R(E0,0,0,0,B)]}),N(b,function(B){var Z=z7(B),p0=Z[2],b0=p0[1],O0=Z[1];return ae0(b0)&&ue(B,[0,O0,3]),[0,O0,[0,b0,p0[2]]]}),N(R0,function(B){return cr(0,function(Z){var p0=u(b,Z),b0=A0(Z)===86?[1,u(i,Z)]:[0,j1(Z)];return[0,p0,b0]},B)}),N(X,function(B){var Z=A0(B)===98?1:0;if(Z){1-xu(B)&&je(B,12);var p0=[0,cr(0,function(O0){var M0=pr(O0);X0(O0,98);for(var er=0,yr=0;;){var vr=cr(0,function(ne){return function(Qr){var be=n(Qr),ae=u(R0,Qr),pe=ae[2],oe=A0(Qr),ce=0;if(typeof oe=="number"&&oe===82){ie(Qr);var ge=1,q0=[0,u(e,Qr)];ce=1}if(!ce){ne&&ue(Qr,[0,ae[1],77]);var ge=ne,q0=0}return[0,be,pe[1],pe[2],q0,ge]}}(er),O0),$0=vr[2],Er=[0,[0,vr[1],[0,$0[2],$0[3],$0[1],$0[4]]],yr],Mr=A0(O0),Br=0;if(typeof Mr=="number"){var qr=0;if(Mr!==99&&Pn!==Mr&&(qr=1),!qr){var jr=ye(Er);Br=1}}if(!Br){if(X0(O0,9),A0(O0)!==99){var er=$0[5],yr=Er;continue}var jr=ye(Er)}var $r=pr(O0);return X0(O0,99),[0,jr,yu([0,M0],[0,ke(O0)],$r,0)]}},B)]}else var p0=Z;return p0}),N(s0,function(B){var Z=A0(B)===98?1:0,p0=Z&&[0,cr(0,function(b0){var O0=pr(b0);X0(b0,98);for(var M0=u2(0,b0),er=0;;){var yr=A0(M0);if(typeof yr=="number"){var vr=0;if((yr===99||Pn===yr)&&(vr=1),vr){var $0=ye(er),Er=pr(M0);return X0(M0,99),[0,$0,yu([0,O0],[0,ke(M0)],Er,0)]}}var Mr=[0,u(e,M0),er];A0(M0)!==99&&X0(M0,9);var er=Mr}},B)];return p0}),N(hr,function(B){return o(Ar,B,u(b,B))}),N(Ar,function(B,Z){function p0(b0){for(var O0=[0,Z[1],[0,Z]];;){var M0=O0[2],er=O0[1];if(A0(b0)===10&&ve0(1,b0)){var yr=cr([0,er],function(qr){return function(jr){return X0(jr,10),[0,qr,u(b,jr)]}}(M0),b0),vr=yr[1],O0=[0,vr,[1,[0,vr,yr[2]]]];continue}if(A0(b0)===98)var $0=Qt(b0),Er=function(Br,qr){return o(rn(Br,-860373976,77),Br,qr)},Mr=o($0[2],M0,Er);else var Mr=M0;return[0,Mr,u(s0,b0),0]}}return cr([0,Z[1]],p0,B)}),N(or,function(B,Z){var p0=o(Ar,B,Z);return[0,p0[1],[16,p0[2]]]}),N(W0,function(B){var Z=A0(B);return typeof Z=="number"&&Z===86?[1,u(i,B)]:[0,j1(B)]}),N(Lr,function(B,Z,p0){var b0=B[2];function O0(Sr){return y7(Sr,lr([0,Z],[0,p0],0))}switch(b0[0]){case 0:var F0=[0,O0(b0[1])];break;case 1:var F0=[1,O0(b0[1])];break;case 2:var F0=[2,O0(b0[1])];break;case 3:var F0=[3,O0(b0[1])];break;case 4:var F0=[4,O0(b0[1])];break;case 5:var F0=[5,O0(b0[1])];break;case 6:var F0=[6,O0(b0[1])];break;case 7:var F0=[7,O0(b0[1])];break;case 8:var F0=[8,O0(b0[1])];break;case 9:var F0=[9,O0(b0[1])];break;case 10:var F0=[10,O0(b0[1])];break;case 11:var M0=b0[1],er=O0(M0[2]),F0=[11,[0,M0[1],er]];break;case 12:var yr=b0[1],vr=O0(yr[4]),F0=[12,[0,yr[1],yr[2],yr[3],vr]];break;case 13:var $0=b0[1],Er=lr([0,Z],[0,p0],0),Mr=JD($0[4],Er),F0=[13,[0,$0[1],$0[2],$0[3],Mr]];break;case 14:var Br=b0[1],qr=O0(Br[3]),F0=[14,[0,Br[1],Br[2],qr]];break;case 15:var jr=b0[1],$r=O0(jr[2]),F0=[15,[0,jr[1],$r]];break;case 16:var ne=b0[1],Qr=O0(ne[3]),F0=[16,[0,ne[1],ne[2],Qr]];break;case 17:var be=b0[1],ae=O0(be[3]),F0=[17,[0,be[1],be[2],ae]];break;case 18:var pe=b0[1],oe=pe[1],ce=pe[2],ge=O0(oe[3]),F0=[18,[0,[0,oe[1],oe[2],ge],ce]];break;case 19:var q0=b0[1],gr=O0(q0[2]),F0=[19,[0,q0[1],gr]];break;case 20:var _=b0[1],k=O0(_[2]),F0=[20,[0,_[1],k]];break;case 21:var I=b0[1],U=O0(I[2]),F0=[21,[0,I[1],U]];break;case 22:var Y=b0[1],y0=O0(Y[2]),F0=[22,[0,Y[1],y0]];break;case 23:var P0=b0[1],I0=O0(P0[3]),F0=[23,[0,P0[1],P0[2],I0]];break;case 24:var D=b0[1],u0=O0(D[3]),F0=[24,[0,D[1],D[2],u0]];break;case 25:var H0=b0[1],J0=O0(H0[3]),F0=[25,[0,H0[1],H0[2],J0]];break;default:var ir=b0[1],Q0=O0(ir[2]),F0=[26,[0,ir[1],Q0]]}return[0,B[1],F0]});function Wr(B){var Z=pr(B);if(X0(B,66),A0(B)===4){var p0=on(Z,pr(B));X0(B,4),Ku(B,0);var b0=u(t[9],B);return k7(B),X0(B,5),[0,[0,b0],lr([0,p0],[0,ke(B)],0)]}return[0,0,lr([0,Z],[0,ke(B)],0)]}var Jr=0;function ar(B){var Z=u2(0,B),p0=A0(Z);return typeof p0=="number"&&p0===66?[0,cr(Jr,Wr,Z)]:0}function _r(B){var Z=A0(B),p0=Kn(1,B);if(typeof Z=="number"&&Z===86){if(typeof p0=="number"&&p0===66){X0(B,86);var b0=ar(B);return[0,[0,j1(B)],b0]}var O0=u(W0,B),M0=A0(B)===66?o2(B,O0):O0;return[0,M0,ar(B)]}return[0,[0,j1(B)],0]}function Ir(B,Z){var p0=_s(1,Z);Ku(p0,1);var b0=u(B,p0);return k7(p0),b0}function fe(B){return Ir(e,B)}function v0(B){return Ir(b,B)}function P(B){return Ir(X,B)}function L(B){return Ir(s0,B)}function Q(B,Z){return Ir(ur(E0,B,0,0),Z)}function i0(B){return Ir(U0,B)}function l0(B){return Ir(l,B)}function S0(B){return Ir(i,B)}function T0(B){return Ir(W0,B)}function rr(B){return Ir(ar,B)}function L0(B){return Ir(_r,B)}return[0,fe,v0,P,L,function(B){return Ir(hr,B)},Q,i0,l0,S0,T0,rr,L0]}function Wee(t){function n(c,s){if(s[0]===0)return s[1];var p=s[2][1];return Du(function(y){return ue(c,y)},p),s[1]}function e(c,s,p){var y=c?c[1]:26;if(p[0]===0)var T=p[1];else{var E=p[2][2];Du(function(A){return ue(s,A)},E);var T=p[1]}1-u(t[23],T)&&ue(s,[0,T[1],y]);var d=T[2],w=0;return d[0]===10&&js(d[1][2][1])&&(V7(s,[0,T[1],52]),w=1),o(t[19],s,T)}function i(c,s){return[0,[0,c,s[1]],[0,c,s[2]]]}function x(c,s){var p=Lc(c[2],s[2]);return[0,Lc(c[1],s[1]),p]}return[0,n,e,E$r,i,x,function(c){var s=ye(c[2]);return[0,ye(c[1]),s]}]}function Jee(t){function n(S){var M=A0(S);if(typeof M=="number"){var K=M-99|0,V=0;if(6>>0?K===14&&(V=1):4<(K-1|0)>>>0&&(V=1),V)return ke(S)}var f0=x7(S);return f0&&Ms(S)}function e(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){X0(f0,0),X0(f0,12);var m0=u(t[10],f0);return X0(f0,1),m0},S);k7(S);var V=lr([0,M],[0,n(S)],0);return[0,K[1],[0,K[2],V]]}function i(S){return A0(S)===1?0:[0,u(t[7],S)]}function x(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){X0(f0,0);var m0=i(f0);return X0(f0,1),m0},S);k7(S);var V=yu([0,M],[0,n(S)],0,0);return[0,K[1],[0,K[2],V]]}function c(S){Ku(S,0);var M=cr(0,function(K){X0(K,0);var V=A0(K),f0=0;if(typeof V=="number"&&V===12){var m0=pr(K);X0(K,12);var k0=u(t[10],K),x0=[3,[0,k0,lr([0,m0],0,0)]];f0=1}if(!f0)var g0=i(K),e0=g0?0:pr(K),x0=[2,[0,g0,yu(0,0,e0,0)]];return X0(K,1),x0},S);return k7(S),[0,M[1],M[2]]}function s(S){var M=De(S),K=A0(S),V=0;if(typeof K!="number"&&K[0]===7){var f0=K[1];V=1}if(!V){gt(SQr,S);var f0=gQr}var m0=pr(S);ie(S);var k0=A0(S),g0=0;if(typeof k0=="number"){var e0=k0+CX|0,x0=0;if(72>>0?e0!==76&&(x0=1):70<(e0-1|0)>>>0||(x0=1),!x0){var l=ke(S);g0=1}}if(!g0)var l=n(S);return[0,M,[0,f0,lr([0,m0],[0,l],0)]]}function p(S){var M=Kn(1,S);if(typeof M=="number"){if(M===10)for(var K=cr(0,function(m0){var k0=[0,s(m0)];return X0(m0,10),[0,k0,s(m0)]},S);;){var V=A0(S);if(typeof V=="number"&&V===10){var f0=function(k0){return function(g0){return X0(g0,10),[0,[1,k0],s(g0)]}}(K),K=cr([0,K[1]],f0,S);continue}return[2,K]}if(M===86)return[1,cr(0,function(m0){var k0=s(m0);return X0(m0,86),[0,k0,s(m0)]},S)]}return[0,s(S)]}function y(S){return cr(0,function(M){var K=Kn(1,M),V=0;if(typeof K=="number"&&K===86){var f0=[1,cr(0,function(b){var R0=s(b);return X0(b,86),[0,R0,s(b)]},M)];V=1}if(!V)var f0=[0,s(M)];var m0=A0(M),k0=0;if(typeof m0=="number"&&m0===82){X0(M,82);var g0=pr(M),e0=A0(M),x0=0;if(typeof e0=="number")if(e0===0){var l=x(M),c0=l[2],t0=l[1];c0[1]||ue(M,[0,t0,56]);var o0=[0,[1,t0,c0]]}else x0=1;else if(e0[0]===8){X0(M,e0);var w0=[0,e0[2]],_0=lr([0,g0],[0,n(M)],0),o0=[0,[0,e0[1],[0,w0,e0[3],_0]]]}else x0=1;if(x0){je(M,57);var o0=[0,[0,De(M),[0,EQr,wQr,0]]]}var E0=o0;k0=1}if(!k0)var E0=0;return[0,f0,E0]},S)}function T(S){return cr(0,function(M){X0(M,98);var K=A0(M);if(typeof K=="number"){if(K===99)return ie(M),dQr}else if(K[0]===7)for(var V=0,f0=p(M);;){var m0=A0(M);if(typeof m0=="number"){if(m0===0){var V=[0,[1,e(M)],V];continue}}else if(m0[0]===7){var V=[0,[0,y(M)],V];continue}var k0=ye(V),g0=[0,c1,[0,f0,ou(M,j7),k0]];return ou(M,99)?[0,g0]:(B1(M,99),[1,g0])}return B1(M,99),kQr},S)}function E(S){return cr(0,function(M){X0(M,98),X0(M,j7);var K=A0(M);if(typeof K=="number"){if(K===99)return ie(M),Ni}else if(K[0]===7){var V=p(M);return pe0(M,99),[0,c1,[0,V]]}return B1(M,99),Ni},S)}var d=function S(M){return S.fun(M)},w=function S(M){return S.fun(M)},G=function S(M){return S.fun(M)};N(d,function(S){var M=A0(S);if(typeof M=="number"){if(M===0)return c(S)}else if(M[0]===8)return X0(S,M),[0,M[1],[4,[0,M[2],M[3]]]];var K=u(G,S),V=K[2],f0=K[1];return Ni<=V[1]?[0,f0,[1,V[2]]]:[0,f0,[0,V[2]]]});function A(S){switch(S[0]){case 0:return S[1][2][1];case 1:var M=S[1][2],K=Te(_Qr,M[2][2][1]);return Te(M[1][2][1],K);default:var V=S[1][2],f0=V[1],m0=f0[0]===0?f0[1][2][1]:A([2,f0[1]]);return Te(m0,Te(yQr,V[2][2][1]))}}return N(w,function(S){var M=pr(S),K=T(S);k7(S);var V=K[2];if(V[0]===0)var f0=V[1],m0=typeof f0=="number"?0:f0[2][2],k0=m0;else var k0=1;if(k0)var g0=SU,e0=g0,x0=cr(0,function(qr){return 0},S);else{Ku(S,3);for(var l=De(S),c0=0;;){var t0=i2(S),o0=A0(S),w0=0;if(typeof o0=="number"){var _0=0;if(o0===98){Ku(S,2);var E0=A0(S),U0=Kn(1,S),b=0;if(typeof E0=="number"&&E0===98&&typeof U0=="number"){var R0=0;if(j7!==U0&&Pn!==U0&&(R0=1),!R0){var X=E(S),s0=X[2],hr=X[1],Ar=typeof s0=="number"?[0,Ni,hr]:[0,c1,[0,hr,s0[2]]],or=S[23][1],W0=0;if(or){var Lr=or[2];if(Lr){var Tr=Lr[2];W0=1}}if(!W0)var Tr=de(dRr);S[23][1]=Tr;var Hr=n2(S),Or=Yl(S[24][1],Hr);S[25][1]=Or;var fr=[0,ye(c0),t0,Ar];b=1}}if(!b){var Rr=u(w,S),Wr=Rr[2],Jr=Rr[1],ar=Ni<=Wr[1]?[0,Jr,[1,Wr[2]]]:[0,Jr,[0,Wr[2]]],c0=[0,ar,c0];continue}}else if(Pn===o0){gt(0,S);var fr=[0,ye(c0),t0,SU]}else w0=1,_0=1;if(!_0)var _r=t0?t0[1]:l,Ir=ht(l,_r),e0=fr[3],x0=[0,Ir,fr[1]]}else w0=1;if(w0){var c0=[0,u(d,S),c0];continue}break}}var fe=ke(S),v0=0;if(typeof e0!="number"){var P=e0[1],L=0;if(c1===P){var Q=e0[2],i0=K[2];if(i0[0]===0){var l0=i0[1];if(typeof l0=="number")je(S,hQr);else{var S0=A(l0[2][1]);n0(A(Q[2][1]),S0)&&je(S,[17,S0])}}var T0=Q[1]}else if(Ni===P){var rr=K[2];if(rr[0]===0){var L0=rr[1];typeof L0!="number"&&je(S,[17,A(L0[2][1])])}var T0=e0[2]}else L=1;if(!L){var B=T0;v0=1}}if(!v0)var B=K[1];var Z=K[2][1],p0=K[1];if(typeof Z=="number"){var b0=0,O0=lr([0,M],[0,fe],0);if(typeof e0!="number"){var M0=e0[1],er=0;if(c1===M0)var yr=e0[2][1];else if(Ni===M0)var yr=e0[2];else er=1;if(!er){var vr=yr;b0=1}}if(!b0)var vr=B;var $0=[0,Ni,[0,p0,vr,x0,O0]]}else{var Er=0,Mr=lr([0,M],[0,fe],0);if(typeof e0!="number"&&c1===e0[1]){var Br=[0,e0[2]];Er=1}if(!Er)var Br=0;var $0=[0,c1,[0,[0,p0,Z[2]],Br,x0,Mr]]}return[0,ht(K[1],B),$0]}),N(G,function(S){return Ku(S,2),u(w,S)}),[0,n,e,i,x,c,s,p,y,T,E,d,w,G]}function Fi(t){return typeof t=="number"?0:t[0]===0?1:t[1]}function $ee(t,n){return[0,t,n]}function tb(t,n,e){return[1,2,n,e,t,0]}function ub(t,n,e){return[1,2,t,n,0,e]}function Uc(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return s===1?[0,n,e]:[1,s,n,e,t,i]}function FL(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=FL(t,i),c=u(t,0),s=FL(t,(n-i|0)-1|0),p=c[2],y=c[1];return[1,Fi(x)+1|0,y,p,x,s]}var T=u(t,0),E=[0,T[1],T[2]]}else var E=e;return E}function P9(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return[1,s,n,e,t,i]}function Iu(t,n,e,i){var x=Fi(t),c=Fi(i);if((c+2|0)>>0){if(!(T7<(Or+1|0)>>>0)){var fr=Tr[3],Rr=Tr[4],Wr=ye(Tr[1][4]),Jr=ye(Tr[1][3]),ar=ye(Tr[1][2]),_r=ye(Tr[1][1]),Ir=on(Rr,pr(R0));X0(R0,1);var fe=A0(R0),v0=0;if(typeof fe=="number"){var P=0;if(fe!==1&&Pn!==fe&&(v0=1,P=1),!P)var Q=ke(R0)}else v0=1;if(v0)var L=x7(R0),Q=L&&Ms(R0);var i0=yu([0,Lr],[0,Q],Ir,0);if(or)switch(or[1]){case 0:return[0,[0,_r,1,fr,i0]];case 1:return[1,[0,ar,1,fr,i0]];case 2:var l0=1;break;default:return[3,[0,Wr,fr,i0]]}else{var S0=Dc(_r),T0=Dc(ar),rr=Dc(Jr),L0=Dc(Wr),B=0;if(S0===0&&T0===0){var Z=0;if(rr===0&&L0===0&&(B=1,Z=1),!Z){var l0=0;B=2}}var p0=0;switch(B){case 0:if(T0===0&&rr===0&&L0<=S0)return Du(function(K0){return ue(R0,[0,K0[1],[0,E0,K0[2][1][2][1]]])},Wr),[0,[0,_r,0,fr,i0]];if(S0===0&&rr===0&&L0<=T0)return Du(function(K0){return ue(R0,[0,K0[1],[8,E0,K0[2][1][2][1]]])},Wr),[1,[0,ar,0,fr,i0]];ue(R0,[0,U0,[2,E0]]);break;case 1:break;default:p0=1}if(!p0)return[2,[0,YJr,0,fr,i0]]}var b0=Dc(Jr),O0=Dc(Wr);if(b0!==0){var M0=0;if(O0!==0&&(b0>>0)T7<(Er+1|0)>>>0&&(Mr=1);else if(Er===7){X0(R0,9);var Br=A0(R0),qr=0;if(typeof Br=="number"){var jr=0;if(Br!==1&&Pn!==Br&&(jr=1),!jr){var $r=1;qr=1}}if(!qr)var $r=0;ue(R0,[0,er,[7,$r]])}else Mr=1;Mr||($0=1)}$0||ue(R0,[0,er,MJr]);var Tr=[0,Tr[1],Tr[2],1,yr];continue}}var ne=Tr[2],Qr=Tr[1],be=cr(x,i,R0),ae=be[2],pe=ae[1],oe=pe[2][1];if(Hn(oe,BJr))var ce=Tr;else{var ge=pe[1],q0=ae[2],gr=be[1],_=It(oe,0),k=97<=_?1:0,I=k&&(_<=In?1:0);I&&ue(R0,[0,ge,[6,E0,oe]]),o(Mu[3],oe,ne)&&ue(R0,[0,ge,[1,E0,oe]]);var U=Tr[4],Y=Tr[3],y0=o(Mu[4],oe,ne),P0=[0,Tr[1],y0,Y,U],I0=function(Ur){return function(h0,Kr){return or&&or[1]!==h0?ue(R0,[0,Kr,[5,E0,or,Ur]]):0}}(oe);if(typeof q0=="number"){var D=0;if(or){var u0=or[1],H0=0;if(u0===1?ue(R0,[0,gr,[8,E0,oe]]):u0?(D=1,H0=1):ue(R0,[0,gr,[0,E0,oe]]),!H0)var J0=P0}else D=1;if(D)var J0=[0,[0,Qr[1],Qr[2],Qr[3],[0,[0,gr,[0,pe]],Qr[4]]],y0,Y,U]}else switch(q0[0]){case 0:ue(R0,[0,q0[1],[5,E0,or,oe]]);var J0=P0;break;case 1:var ir=q0[1];I0(0,ir);var J0=[0,[0,[0,[0,gr,[0,pe,[0,ir,q0[2]]]],Qr[1]],Qr[2],Qr[3],Qr[4]],y0,Y,U];break;case 2:var Q0=q0[1];I0(1,Q0);var J0=[0,[0,Qr[1],[0,[0,gr,[0,pe,[0,Q0,q0[2]]]],Qr[2]],Qr[3],Qr[4]],y0,Y,U];break;default:var F0=q0[1];I0(2,F0);var J0=[0,[0,Qr[1],Qr[2],[0,[0,gr,[0,pe,[0,F0,q0[2]]]],Qr[3]],Qr[4]],y0,Y,U]}var ce=J0}var Sr=A0(R0),mr=0;if(typeof Sr=="number"){var Cr=Sr-2|0,sr=0;Yt>>0?T7<(Cr+1|0)>>>0&&(sr=1):Cr===6?(je(R0,1),X0(R0,8)):sr=1,sr||(mr=1)}mr||X0(R0,9);var Tr=ce}},o0);return[16,[0,_0,b,lr([0,w0],0,0)]]}var s=0;function p(o0){return cr(s,c,o0)}function y(o0,w0){var _0=w0[2][1],E0=w0[1],U0=o0[1];js(_0)&&V7(U0,[0,E0,41]);var b=O9(_0),R0=b||f2(_0);return R0&&V7(U0,[0,E0,55]),[0,U0,o0[2]]}function T(o0,w0){var _0=w0[2];switch(_0[0]){case 0:return le(E,o0,_0[1][1]);case 1:return le(d,o0,_0[1][1]);case 2:var E0=_0[1][1],U0=E0[2][1],b=o0[2],R0=o0[1];o(Mu[3],U0,b)&&ue(R0,[0,E0[1],42]);var X=y([0,R0,b],E0),s0=o(Mu[4],U0,X[2]);return[0,X[1],s0];default:return ue(o0[1],[0,w0[1],31]),o0}}function E(o0,w0){if(w0[0]===0){var _0=w0[1][2],E0=_0[1],U0=E0[0]===1?y(o0,E0[1]):o0;return T(U0,_0[2])}return T(o0,w0[1][2][1])}function d(o0,w0){return w0[0]===2?o0:T(o0,w0[1][2][1])}function w(o0,w0,_0,E0){var U0=o0[5],b=q1(E0),R0=E0[2],X=R0[3],s0=_s(U0?0:w0,o0),hr=w0||U0||1-b;if(hr){if(_0){var Ar=_0[1],or=Ar[2][1],W0=Ar[1];js(or)&&V7(s0,[0,W0,44]);var Lr=O9(or),Tr=Lr||f2(or);Tr&&V7(s0,[0,W0,55])}var Hr=R0[2],Or=[0,s0,Mu[1]],fr=le(function(ar,_r){return T(ar,_r[2][1])},Or,Hr),Rr=X&&(T(fr,X[1][2][1]),0),Wr=Rr}else var Wr=hr;return Wr}var G=function o0(w0,_0){return o0.fun(w0,_0)};function A(o0){A0(o0)===21&&je(o0,s7);var w0=o(se[18],o0,41),_0=A0(o0)===82?1:0,E0=_0&&(X0(o0,82),[0,u(se[10],o0)]);return[0,w0,E0]}var S=0;N(G,function(o0,w0){var _0=A0(o0);if(typeof _0=="number"){var E0=_0-5|0,U0=0;if(7>>0?is===E0&&(U0=1):5<(E0-1|0)>>>0&&(U0=1),U0){var b=_0===12?1:0;if(b)var R0=pr(o0),X=cr(0,function(or){return X0(or,12),o(se[18],or,41)},o0),s0=lr([0,R0],0,0),hr=[0,[0,X[1],[0,X[2],s0]]];else var hr=b;return A0(o0)!==5&&je(o0,64),[0,ye(w0),hr]}}var Ar=cr(S,A,o0);return A0(o0)!==5&&X0(o0,9),o(G,o0,[0,Ar,w0])});function M(o0,w0){function _0(U0){var b=mL(w0,re0(o0,U0)),R0=1,X=b[10]===1?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],R0,b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30]],s0=pr(X);X0(X,4);var hr=xu(X),Ar=hr&&(A0(X)===21?1:0);if(Ar){var or=pr(X),W0=cr(0,function(ar){return X0(ar,21),A0(ar)===86?[0,u(t[9],ar)]:(je(ar,Ri),0)},X),Lr=W0[2];if(Lr){A0(X)===9&&ie(X);var Tr=lr([0,or],0,0),Hr=[0,[0,W0[1],[0,Lr[1],Tr]]]}else var Hr=Lr;var Or=Hr}else var Or=Ar;var fr=o(G,X,0),Rr=pr(X);X0(X,5);var Wr=yu([0,s0],[0,ke(X)],Rr,0);return[0,Or,fr[1],fr[2],Wr]}var E0=0;return function(U0){return cr(E0,_0,U0)}}function K(o0,w0,_0,E0,U0){var b=fe0(o0,w0,_0,U0),R0=o(se[16],E0,b);return[0,[0,R0[1]],R0[2]]}function V(o0,w0,_0){var E0=De(o0),U0=A0(o0),b=0;if(typeof U0=="number")if(s7===U0){var R0=pr(o0);ie(o0);var s0=[0,[0,E0,[0,0,lr([0,R0],0,0)]]]}else if(L7===U0){var X=pr(o0);ie(o0);var s0=[0,[0,E0,[0,1,lr([0,X],0,0)]]]}else b=1;else b=1;if(b)var s0=0;if(s0){var hr=0;if(!w0&&!_0&&(hr=1),!hr)return ue(o0,[0,s0[1][1],7]),0}return s0}function f0(o0){if(Vt===A0(o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return w$r}function m0(o0){if(A0(o0)===64&&!Jl(1,o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return k$r}function k0(o0){var w0=m0(o0),_0=w0[1],E0=w0[2],U0=cr(0,function(W0){var Lr=pr(W0);X0(W0,15);var Tr=f0(W0),Hr=Tr[1],Or=pl([0,E0,[0,Lr,[0,Tr[2],0]]]),fr=W0[7],Rr=A0(W0),Wr=0;if(fr&&typeof Rr=="number"){if(Rr===4){var Ir=0,fe=0;Wr=1}else if(Rr===98){var Jr=oi(W0,u(t[3],W0)),ar=A0(W0)===4?0:[0,ys(W0,o(se[13],_$r,W0))],Ir=ar,fe=Jr;Wr=1}}if(!Wr)var _r=G1(W0)?ys(W0,o(se[13],y$r,W0)):(be0(W0,h$r),[0,De(W0),d$r]),Ir=[0,_r],fe=oi(W0,u(t[3],W0));var v0=u(M(_0,Hr),W0),P=A0(W0)===86?v0:eb(W0,v0),L=u(t[12],W0),Q=L[2],i0=L[1];if(Q)var l0=he0(W0,Q),S0=i0;else var l0=Q,S0=o2(W0,i0);return[0,Hr,fe,Ir,P,S0,l0,Or]},o0),b=U0[2],R0=b[4],X=b[3],s0=b[1],hr=K(o0,_0,s0,0,q1(R0));w(o0,hr[2],X,R0);var Ar=U0[1],or=lr([0,b[7]],0,0);return[23,[0,X,R0,hr[1],_0,s0,b[6],b[5],b[2],or,Ar]]}var g0=0;function e0(o0){return cr(g0,k0,o0)}function x0(o0,w0){var _0=pr(w0);X0(w0,o0);for(var E0=0,U0=0;;){var b=cr(0,function(or){var W0=o(se[18],or,40);if(ou(or,82))var Lr=0,Tr=[0,u(se[10],or)];else if(W0[2][0]===2)var Lr=0,Tr=0;else var Lr=[0,[0,W0[1],59]],Tr=0;return[0,[0,W0,Tr],Lr]},w0),R0=b[2],X=R0[2],s0=[0,[0,b[1],R0[1]],E0],hr=X?[0,X[1],U0]:U0;if(ou(w0,9)){var E0=s0,U0=hr;continue}var Ar=ye(hr);return[0,ye(s0),_0,Ar]}}var l=24;function c0(o0){return x0(l,o0)}function t0(o0){var w0=x0(27,F9(1,o0)),_0=w0[1],E0=w0[3],U0=ye(le(function(b,R0){return R0[2][2]?b:[0,[0,R0[1],58],b]},E0,_0));return[0,_0,w0[2],U0]}return[0,m0,f0,V,M,K,w,function(o0){return x0(28,F9(1,o0))},t0,c0,e0,p]}(_n),R9=Wee(se),ci=function(t){function n(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,lQr)){if(!n0(i0,bQr)){var l0=n0(Q[2][2][1],pQr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],mQr);if(!S0)return S0}break;case 0:case 10:case 16:case 19:break;default:return 0}return 1}var e=t[1],i=function P(L){return P.fun(L)},x=function P(L){return P.fun(L)},c=function P(L){return P.fun(L)},s=function P(L){return P.fun(L)},p=function P(L){return P.fun(L)},y=function P(L){return P.fun(L)},T=function P(L){return P.fun(L)},E=function P(L){return P.fun(L)},d=function P(L){return P.fun(L)},w=function P(L){return P.fun(L)},G=function P(L){return P.fun(L)},A=function P(L){return P.fun(L)},S=function P(L){return P.fun(L)},M=function P(L){return P.fun(L)},K=function P(L){return P.fun(L)},V=function P(L){return P.fun(L)},f0=function P(L){return P.fun(L)},m0=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},k0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},g0=function P(L){return P.fun(L)},e0=function P(L){return P.fun(L)},x0=function P(L){return P.fun(L)},l=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},c0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},t0=function P(L){return P.fun(L)},o0=function P(L,Q,i0){return P.fun(L,Q,i0)},w0=function P(L){return P.fun(L)},_0=function P(L,Q,i0){return P.fun(L,Q,i0)},E0=function P(L){return P.fun(L)},U0=function P(L){return P.fun(L)},b=function P(L,Q){return P.fun(L,Q)},R0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},X=function P(L){return P.fun(L)},s0=function P(L,Q,i0){return P.fun(L,Q,i0)},hr=function P(L){return P.fun(L)},Ar=function P(L){return P.fun(L)},or=function P(L){return P.fun(L)},W0=function P(L,Q,i0){return P.fun(L,Q,i0)},Lr=t[2];function Tr(P){var L=De(P),Q=u(y,P),i0=u(p,P);if(i0){var l0=i0[1];return[0,cr([0,L],function(S0){var T0=ur(Lr,0,S0,Q);return[2,[0,l0,T0,u(x,S0),0]]},P)]}return Q}function Hr(P,L){if(typeof L=="number"){var Q=L!==55?1:0;if(!Q)return Q}throw Bs}function Or(P){var L=T9(Hr,P),Q=Tr(L),i0=A0(L);if(typeof i0=="number"){if(i0===11)throw Bs;if(i0===86){var l0=ue0(L),S0=0;if(l0){var T0=l0[1];if(typeof T0=="number"&&T0===5){var rr=1;S0=1}}if(!S0)var rr=0;if(rr)throw Bs}}if(G1(L)){if(Q[0]===0){var L0=Q[1][2];if(L0[0]===10&&!n0(L0[1][2][1],vQr)&&!x7(L))throw Bs}return Q}return Q}N(i,function(P){var L=A0(P),Q=0,i0=G1(P);if(typeof L=="number"){var l0=0;if(22<=L)if(L===58){if(P[17])return[0,u(c,P)];l0=1}else L!==98&&(l0=1);else L!==4&&!(21<=L)&&(l0=1);l0||(Q=1)}if(!Q&&!i0)return Tr(P);var S0=0;if(L===64&&xu(P)&&Kn(1,P)===98){var T0=Or,rr=or;S0=1}if(!S0)var T0=or,rr=Or;var L0=EL(P,rr);if(L0)return L0[1];var B=EL(P,T0);return B?B[1]:Tr(P)}),N(x,function(P){return o(e,P,u(i,P))}),N(c,function(P){return cr(0,function(L){L[10]&&je(L,91);var Q=pr(L),i0=De(L);X0(L,58);var l0=De(L);if(x2(L))var S0=0,T0=0;else{var rr=ou(L,Vt),L0=A0(L),B=0;if(typeof L0=="number"){var Z=0;if(L0!==86)if(10<=L0)Z=1;else switch(L0){case 0:case 2:case 3:case 4:case 6:Z=1;break}if(!Z){var p0=0;B=1}}if(!B)var p0=1;var b0=rr||p0,O0=b0&&[0,u(x,L)],S0=rr,T0=O0}var M0=T0?0:ke(L),er=ht(i0,l0);return[30,[0,T0,lr([0,Q],[0,M0],0),S0,er]]},P)}),N(s,function(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,oQr)){if(!n0(i0,aQr)){var l0=n0(Q[2][2][1],cQr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],sQr);if(!S0)return S0}break;case 10:case 16:break;default:return 0}return 1}),N(p,function(P){var L=A0(P),Q=0;if(typeof L=="number"){var i0=L-67|0;if(!(15>>0)){switch(i0){case 0:var l0=VZr;break;case 1:var l0=zZr;break;case 2:var l0=KZr;break;case 3:var l0=WZr;break;case 4:var l0=JZr;break;case 5:var l0=$Zr;break;case 6:var l0=ZZr;break;case 7:var l0=QZr;break;case 8:var l0=rQr;break;case 9:var l0=eQr;break;case 10:var l0=nQr;break;case 11:var l0=tQr;break;case 12:var l0=uQr;break;case 13:var l0=iQr;break;case 14:var l0=fQr;break;default:var l0=xQr}var S0=l0;Q=1}}if(!Q)var S0=0;return S0!==0&&ie(P),S0}),N(y,function(P){var L=De(P),Q=u(E,P);if(A0(P)===85){ie(P);var i0=u(x,Kl(0,P));X0(P,86);var l0=cr(0,x,P),S0=ht(L,l0[1]),T0=l0[2];return[0,[0,S0,[7,[0,o(e,P,Q),i0,T0,0]]]]}return Q}),N(T,function(P){return o(e,P,u(y,P))});function fr(P,L,Q,i0,l0){var S0=o(e,P,L);return[0,[0,l0,[15,[0,i0,S0,o(e,P,Q),0]]]]}function Rr(P,L,Q,i0){for(var l0=P,S0=Q,T0=i0;;){var rr=A0(L);if(typeof rr=="number"&&rr===84){1-l0&&je(L,YZr),X0(L,84);var L0=cr(0,d,L),B=L0[2],Z=L0[1],p0=A0(L),b0=0;if(typeof p0=="number"&&!(1<(p0-87|0)>>>0)){je(L,[23,oL(p0)]);var O0=Jr(L,B,Z),M0=Wr(L,O0[2],O0[1]),er=M0[2],yr=M0[1];b0=1}if(!b0)var er=B,yr=Z;var vr=ht(T0,yr),l0=1,S0=fr(L,S0,er,2,vr),T0=vr;continue}return[0,T0,S0]}}function Wr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0=="number"&&S0===87){ie(P);var T0=cr(0,d,P),rr=Jr(P,T0[2],T0[1]),L0=ht(l0,rr[1]),B=Rr(0,P,fr(P,i0,rr[2],0,L0),L0),i0=B[2],l0=B[1];continue}return[0,l0,i0]}}function Jr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0=="number"&&S0===88){ie(P);var T0=cr(0,d,P),rr=ht(l0,T0[1]),L0=Rr(0,P,fr(P,i0,T0[2],1,rr),rr),i0=L0[2],l0=L0[1];continue}return[0,l0,i0]}}N(E,function(P){var L=cr(0,d,P),Q=L[2],i0=L[1],l0=A0(P),S0=0;if(typeof l0=="number"&&l0===84){var rr=Rr(1,P,Q,i0);S0=1}if(!S0)var T0=Jr(P,Q,i0),rr=Wr(P,T0[2],T0[1]);return rr[2]});function ar(P,L,Q,i0){return[0,i0,[3,[0,Q,P,L,0]]]}N(d,function(P){var L=0;r:for(;;){var Q=cr(0,function(k){var I=u(w,k)!==0?1:0;return[0,I,u(G,Kl(0,k))]},P),i0=Q[2],l0=i0[2],S0=Q[1];if(A0(P)===98){var T0=0;l0[0]===0&&l0[1][2][0]===12?je(P,63):T0=1}var rr=A0(P),L0=0;if(typeof rr=="number"){var B=rr-17|0,Z=0;if(1>>0)if(72<=B)switch(B-72|0){case 0:var p0=EZr;break;case 1:var p0=SZr;break;case 2:var p0=gZr;break;case 3:var p0=FZr;break;case 4:var p0=TZr;break;case 5:var p0=OZr;break;case 6:var p0=IZr;break;case 7:var p0=AZr;break;case 8:var p0=NZr;break;case 9:var p0=CZr;break;case 10:var p0=PZr;break;case 11:var p0=DZr;break;case 12:var p0=LZr;break;case 13:var p0=RZr;break;case 14:var p0=jZr;break;case 15:var p0=GZr;break;case 16:var p0=MZr;break;case 17:var p0=BZr;break;case 18:var p0=qZr;break;case 19:var p0=UZr;break;default:Z=1}else Z=1;else var p0=B?HZr:P[12]?0:XZr;if(!Z){var b0=p0;L0=1}}if(!L0)var b0=0;if(b0!==0&&ie(P),!L&&!b0)return l0;if(b0){var O0=b0[1],M0=O0[1],er=i0[1],yr=er&&(M0===14?1:0);yr&&ue(P,[0,S0,27]);for(var vr=o(e,P,l0),$0=vr,Er=[0,M0,O0[2]],Mr=S0,Br=L;;){var qr=Er[2],jr=Er[1];if(Br){var $r=Br[1],ne=$r[2],Qr=ne[2],be=Qr[0]===0?Qr[1]:Qr[1]-1|0;if(qr[1]<=be){var ae=ht($r[3],Mr),pe=ar($r[1],$0,ne[1],ae),$0=pe,Er=[0,jr,qr],Mr=ae,Br=Br[2];continue}}var L=[0,[0,$0,[0,jr,qr],Mr],Br];continue r}}for(var oe=o(e,P,l0),ce=S0,ge=L;;){if(ge){var q0=ge[1],gr=ht(q0[3],ce),_=ge[2],oe=ar(q0[1],oe,q0[2][1],gr),ce=gr,ge=_;continue}return[0,oe]}}}),N(w,function(P){var L=A0(P);if(typeof L=="number"){if(48<=L){if(s7<=L){if(!(cf<=L))switch(L-103|0){case 0:return pZr;case 1:return mZr;case 6:return _Zr;case 7:return yZr}}else if(L===65&&P[18])return hZr}else if(45<=L)switch(L+mv|0){case 0:return dZr;case 1:return kZr;default:return wZr}}return 0}),N(G,function(P){var L=De(P),Q=pr(P),i0=u(w,P);if(i0){var l0=i0[1];ie(P);var S0=cr(0,A,P),T0=S0[2],rr=ht(L,S0[1]),L0=0;if(l0===6){var B=T0[2],Z=0;switch(B[0]){case 10:V7(P,[0,rr,47]);break;case 16:B[1][2][0]===1&&ue(P,[0,rr,88]);break;default:Z=1}Z||(L0=1)}return[0,[0,rr,[28,[0,l0,T0,lr([0,Q],0,0)]]]]}var p0=A0(P),b0=0;if(typeof p0=="number")if(cf===p0)var O0=bZr;else if(T7===p0)var O0=lZr;else b0=1;else b0=1;if(b0)var O0=0;if(O0){ie(P);var M0=cr(0,A,P),er=M0[2];1-u(s,er)&&ue(P,[0,er[1],26]);var yr=er[2],vr=0;yr[0]===10&&js(yr[1][2][1])&&(gi(P,54),vr=1);var $0=ht(L,M0[1]),Er=lr([0,Q],0,0);return[0,[0,$0,[29,[0,O0[1],er,1,Er]]]]}return u(S,P)}),N(A,function(P){return o(e,P,u(G,P))}),N(S,function(P){var L=u(M,P);if(x7(P))return L;var Q=A0(P),i0=0;if(typeof Q=="number")if(cf===Q)var l0=vZr;else if(T7===Q)var l0=sZr;else i0=1;else i0=1;if(i0)var l0=0;if(l0){var S0=o(e,P,L);1-u(s,S0)&&ue(P,[0,S0[1],26]);var T0=S0[2],rr=0;T0[0]===10&&js(T0[1][2][1])&&(gi(P,53),rr=1);var L0=De(P);ie(P);var B=ke(P),Z=ht(S0[1],L0),p0=lr(0,[0,B],0);return[0,[0,Z,[29,[0,l0[1],S0,0,p0]]]]}return L}),N(M,function(P){var L=De(P),Q=1-P[16],i0=0,l0=P[16]===0?P:[0,P[1],P[2],P[3],P[4],P[5],P[6],P[7],P[8],P[9],P[10],P[11],P[12],P[13],P[14],P[15],i0,P[17],P[18],P[19],P[20],P[21],P[22],P[23],P[24],P[25],P[26],P[27],P[28],P[29],P[30]],S0=A0(l0),T0=0;if(typeof S0=="number"){var rr=S0-44|0;if(!(7>>0)){var L0=0;switch(rr){case 0:if(Q)var B=[0,u(g0,l0)];else L0=1;break;case 6:var B=[0,u(f0,l0)];break;case 7:var B=[0,u(V,l0)];break;default:L0=1}if(!L0){var Z=B;T0=1}}}if(!T0)var Z=Gs(l0)?[0,u(t0,l0)]:u(E0,l0);return p7(m0,0,0,l0,L,Z)}),N(K,function(P){return o(e,P,u(M,P))}),N(V,function(P){switch(P[21]){case 0:var L=0,Q=0;break;case 1:var L=0,Q=1;break;default:var L=1,Q=1}var i0=De(P),l0=pr(P);X0(P,51);var S0=[0,i0,[23,[0,lr([0,l0],[0,ke(P)],0)]]],T0=A0(P);if(typeof T0=="number"&&!(11<=T0))switch(T0){case 4:var rr=L?S0:(ue(P,[0,i0,5]),[0,i0,[10,Rc(0,[0,i0,fZr])]]);return R(k0,xZr,P,i0,rr);case 6:case 10:var L0=Q?S0:(ue(P,[0,i0,4]),[0,i0,[10,Rc(0,[0,i0,aZr])]]);return R(k0,cZr,P,i0,L0)}return Q?gt(oZr,P):ue(P,[0,i0,4]),S0}),N(f0,function(P){return cr(0,function(L){var Q=pr(L),i0=De(L);if(X0(L,50),ou(L,10)){var l0=Rc(0,[0,i0,tZr]),S0=De(L);Zl(L,uZr);var T0=Rc(0,[0,S0,iZr]);return[17,[0,l0,T0,lr([0,Q],[0,ke(L)],0)]]}var rr=pr(L);X0(L,4);var L0=ur(s0,[0,rr],0,u(x,Kl(0,L)));return X0(L,5),[11,[0,L0,lr([0,Q],[0,ke(L)],0)]]},P)}),N(m0,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=p7(l,[0,S0],[0,T0],Q,i0,l0),L0=ue0(Q),B=0;if(L0){var Z=L0[1];if(typeof Z=="number"&&Z===83){var p0=1;B=1}}if(!B)var p0=0;function b0(vr){var $0=Qt(vr);function Er(Br,qr){return o(rn(Br,Di,78),Br,qr)}var Mr=o(e,vr,rr);return o($0[2],Mr,Er)}function O0(vr,$0,Er){var Mr=u(x0,$0),Br=Mr[1],qr=ht(i0,Br),jr=[0,Er,vr,[0,Br,Mr[2]],0],$r=0;if(!p0&&!T0){var ne=[4,jr];$r=1}if(!$r)var ne=[20,[0,jr,qr,p0]];var Qr=T0||p0;return p7(m0,[0,S0],[0,Qr],$0,i0,[0,[0,qr,ne]])}if(Q[13])return rr;var M0=A0(Q);if(typeof M0=="number"){var er=M0-98|0;if(2>>0){if(er===-94)return O0(0,Q,b0(Q))}else if(er!==1&&xu(Q)){var yr=T9(function(vr,$0){throw Bs},Q);return _e0(yr,rr,function(vr){var $0=b0(vr);return O0(u(e0,vr),vr,$0)})}}return rr}),N(k0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(m0,[0,l0],0,L,Q,[0,i0]))}),N(g0,function(P){return cr(0,function(L){var Q=De(L),i0=pr(L);if(X0(L,44),L[11]&&A0(L)===10){var l0=ke(L);ie(L);var S0=Rc(lr([0,i0],[0,l0],0),[0,Q,Q$r]),T0=A0(L);return typeof T0!="number"&&T0[0]===4&&!n0(T0[3],rZr)?[17,[0,S0,o(se[13],0,L),0]]:(gt(eZr,L),ie(L),[10,S0])}var rr=De(L),L0=A0(L),B=0;if(typeof L0=="number")if(L0===44)var Z=u(g0,L);else if(L0===51)var Z=u(V,_L(1,L));else B=1;else B=1;if(B)var Z=Gs(L)?u(t0,L):u(U0,L);var p0=R(c0,nZr,_L(1,L),rr,Z),b0=A0(L),O0=0;if(typeof b0!="number"&&b0[0]===3){var M0=R(R0,L,rr,p0,b0[1]);O0=1}if(!O0)var M0=p0;var er=0;if(A0(L)!==4){var yr=0;if(xu(L)&&A0(L)===98&&(yr=1),!yr){var Er=M0;er=1}}if(!er)var vr=Qt(L),$0=function(ne,Qr){return o(rn(ne,Di,79),ne,Qr)},Er=o(vr[2],M0,$0);var Mr=xu(L),Br=Mr&&_e0(T9(function(ne,Qr){throw Bs},L),0,e0),qr=A0(L),jr=0;if(typeof qr=="number"&&qr===4){var $r=[0,u(x0,L)];jr=1}if(!jr)var $r=0;return[18,[0,Er,Br,$r,lr([0,i0],0,0)]]},P)});function _r(P){var L=pr(P);X0(P,98);for(var Q=0;;){var i0=A0(P);if(typeof i0=="number"){var l0=0;if((i0===99||Pn===i0)&&(l0=1),l0){var S0=ye(Q),T0=pr(P);X0(P,99);var rr=A0(P)===4?Qt(P)[1]:ke(P);return[0,S0,yu([0,L],[0,rr],T0,0)]}}var L0=A0(P),B=0;if(typeof L0!="number"&&L0[0]===4&&!n0(L0[2],$$r)){var Z=De(P),p0=pr(P);Zl(P,Z$r);var b0=[1,[0,Z,[0,lr([0,p0],[0,ke(P)],0)]]];B=1}if(!B)var b0=[0,u(_n[1],P)];var O0=[0,b0,Q];A0(P)!==99&&X0(P,9);var Q=O0}}N(e0,function(P){Ku(P,1);var L=A0(P)===98?1:0,Q=L&&[0,cr(0,_r,P)];return k7(P),Q});function Ir(P){var L=pr(P);X0(P,12);var Q=u(x,P);return[0,Q,lr([0,L],0,0)]}N(x0,function(P){return cr(0,function(L){var Q=pr(L);X0(L,4);for(var i0=0;;){var l0=A0(L);if(typeof l0=="number"){var S0=0;if((l0===5||Pn===l0)&&(S0=1),S0){var T0=ye(i0),rr=pr(L);return X0(L,5),[0,T0,yu([0,Q],[0,ke(L)],rr,0)]}}var L0=A0(L),B=0;if(typeof L0=="number"&&L0===12){var Z=[1,cr(0,Ir,L)];B=1}if(!B)var Z=[0,u(x,L)];var p0=[0,Z,i0];A0(L)!==5&&X0(L,9);var i0=p0}},P)}),N(l,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=A0(Q),L0=0;if(typeof rr=="number")switch(rr){case 6:ie(Q);var B=0,Z=[0,T0],p0=[0,S0];L0=2;break;case 10:ie(Q);var b0=0,O0=[0,T0],M0=[0,S0];L0=1;break;case 83:1-S0&&je(Q,99),X0(Q,83);var er=0,yr=A0(Q);if(typeof yr=="number")switch(yr){case 4:return l0;case 6:ie(Q);var B=V$r,Z=z$r,p0=[0,S0];L0=2,er=1;break;case 98:if(xu(Q))return l0;break}else if(yr[0]===3)return je(Q,ti),l0;if(!er){var b0=K$r,O0=W$r,M0=[0,S0];L0=1}break}else if(rr[0]===3){T0&&je(Q,ti);var vr=rr[1];return p7(m0,J$r,0,Q,i0,[0,R(R0,Q,i0,o(e,Q,l0),vr)])}switch(L0){case 0:return l0;case 1:var $0=M0?S0:1,Er=O0&&O0[1],Mr=b0&&b0[1],Br=A0(Q),qr=0;if(typeof Br=="number"&&Br===14){var jr=ge0(Q),$r=jr[1],ne=Q[29][1],Qr=jr[2][1];if(ne){var be=ne[1];Q[29][1]=[0,[0,be[1],[0,[0,Qr,$r],be[2]]],ne[2]]}else ue(Q,[0,$r,89]);var pe=[1,jr],oe=$r;qr=1}if(!qr)var ae=z7(Q),pe=[0,ae],oe=ae[1];var ce=ht(i0,oe),ge=0;l0[0]===0&&l0[1][2][0]===23&&pe[0]===1&&(ue(Q,[0,ce,90]),ge=1);var q0=[0,o(e,Q,l0),pe,0],gr=Er?[21,[0,q0,ce,Mr]]:[16,q0];return p7(m0,[0,$0],[0,Er],Q,i0,[0,[0,ce,gr]]);default:var _=p0?S0:1,k=Z&&Z[1],I=B&&B[1],U=_L(0,Q),Y=u(se[7],U),y0=De(Q);X0(Q,7);var P0=ke(Q),I0=ht(i0,y0),D=lr(0,[0,P0],0),u0=[0,o(e,Q,l0),[2,Y],D],H0=k?[21,[0,u0,I0,I]]:[16,u0];return p7(m0,[0,_],[0,k],Q,i0,[0,[0,I0,H0]])}}),N(c0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(l,[0,l0],0,L,Q,[0,i0]))}),N(t0,function(P){return cr(0,function(L){var Q=u(Wn[1],L),i0=Q[1],l0=Q[2],S0=cr(0,function(M0){var er=pr(M0);X0(M0,15);var yr=u(Wn[2],M0),vr=yr[1],$0=pl([0,l0,[0,er,[0,yr[2],0]]]);if(A0(M0)===4)var Er=0,Mr=0;else{var Br=A0(M0),qr=0;if(typeof Br=="number"){var jr=Br!==98?1:0;if(!jr){var ne=jr;qr=1}}if(!qr)var $r=mL(vr,re0(i0,M0)),ne=[0,ys($r,o(se[13],Y$r,$r))];var Er=oi(M0,u(_n[3],M0)),Mr=ne}var Qr=t2(0,M0),be=ur(Wn[4],i0,vr,Qr),ae=A0(Qr)===86?be:eb(Qr,be),pe=u(_n[12],Qr),oe=pe[2],ce=pe[1];if(oe)var ge=he0(Qr,oe),q0=ce;else var ge=oe,q0=o2(Qr,ce);return[0,Mr,ae,vr,ge,q0,Er,$0]},L),T0=S0[2],rr=T0[3],L0=T0[2],B=T0[1],Z=q1(L0),p0=p7(Wn[5],L,i0,rr,1,Z);R(Wn[6],L,p0[2],B,L0);var b0=S0[1],O0=lr([0,T0[7]],0,0);return[8,[0,B,L0,p0[1],i0,rr,T0[4],T0[5],T0[6],O0,b0]]},P)}),N(o0,function(P,L,Q){switch(L){case 1:gi(P,45);try{var i0=jv(Rv(Te(B$r,Q))),l0=i0}catch(L0){if(L0=St(L0),L0[1]!==q7)throw L0;var l0=de(Te(q$r,Q))}break;case 2:gi(P,46);try{var S0=ol(Q),l0=S0}catch(L0){if(L0=St(L0),L0[1]!==q7)throw L0;var l0=de(Te(U$r,Q))}break;case 4:try{var T0=ol(Q),l0=T0}catch(L0){if(L0=St(L0),L0[1]!==q7)throw L0;var l0=de(Te(H$r,Q))}break;default:try{var rr=jv(Rv(Q)),l0=rr}catch(L0){if(L0=St(L0),L0[1]!==q7)throw L0;var l0=de(Te(X$r,Q))}}return X0(P,[0,L,Q]),l0}),N(w0,function(P){var L=un(P);return L!==0&&Yt===It(P,L-1|0)?m7(P,0,L-1|0):P}),N(_0,function(P,L,Q){if(2<=L){var i0=u(w0,Q);try{var l0=ol(i0),S0=l0}catch(Z){if(Z=St(Z),Z[1]!==q7)throw Z;var S0=de(Te(G$r,i0))}var T0=S0}else{var rr=u(w0,Q);try{var L0=jv(Rv(rr)),B=L0}catch(p0){if(p0=St(p0),p0[1]!==q7)throw p0;var B=de(Te(M$r,rr))}var T0=B}return X0(P,[1,L,Q]),T0}),N(E0,function(P){var L=De(P),Q=pr(P),i0=A0(P);if(typeof i0=="number")switch(i0){case 0:var l0=u(se[12],P);return[1,[0,l0[1],[19,l0[2]]],l0[3]];case 4:return[0,u(X,P)];case 6:var S0=cr(0,hr,P),T0=S0[2];return[1,[0,S0[1],[0,T0[1]]],T0[2]];case 21:return ie(P),[0,[0,L,[26,[0,lr([0,Q],[0,ke(P)],0)]]]];case 29:return ie(P),[0,[0,L,[14,[0,0,D$r,lr([0,Q],[0,ke(P)],0)]]]];case 40:return[0,u(se[22],P)];case 98:var rr=u(se[17],P),L0=rr[2],B=rr[1],Z=Ni<=L0[1]?[13,L0[2]]:[12,L0[2]];return[0,[0,B,Z]];case 30:case 31:ie(P);var p0=i0===31?1:0,b0=p0?R$r:j$r;return[0,[0,L,[14,[0,[1,p0],b0,lr([0,Q],[0,ke(P)],0)]]]];case 74:case 105:return[0,u(Ar,P)]}else switch(i0[0]){case 0:var O0=i0[2],M0=[2,ur(o0,P,i0[1],O0)];return[0,[0,L,[14,[0,M0,O0,lr([0,Q],[0,ke(P)],0)]]]];case 1:var er=i0[2],yr=[3,ur(_0,P,i0[1],er)];return[0,[0,L,[14,[0,yr,er,lr([0,Q],[0,ke(P)],0)]]]];case 2:var vr=i0[1];vr[4]&&gi(P,45),ie(P);var $0=[0,vr[2]],Er=lr([0,Q],[0,ke(P)],0);return[0,[0,vr[1],[14,[0,$0,vr[3],Er]]]];case 3:var Mr=o(b,P,i0[1]);return[0,[0,Mr[1],[25,Mr[2]]]]}if(G1(P)){var Br=o(se[13],0,P);return[0,[0,Br[1],[10,Br]]]}gt(0,P);var qr=0;return typeof i0!="number"&&i0[0]===6&&(ie(P),qr=1),[0,[0,L,[14,[0,0,L$r,lr([0,Q],[0,0],0)]]]]}),N(U0,function(P){return o(e,P,u(E0,P))}),N(b,function(P,L){var Q=L[3],i0=L[2],l0=L[1],S0=pr(P);X0(P,[3,L]);var T0=[0,l0,[0,[0,i0[2],i0[1]],Q]];if(Q)var rr=0,L0=[0,T0,0],B=l0;else for(var Z=[0,T0,0],p0=0;;){var b0=u(se[7],P),O0=[0,b0,p0],M0=A0(P),er=0;if(typeof M0=="number"&&M0===1){Ku(P,4);var yr=A0(P),vr=0;if(typeof yr!="number"&&yr[0]===3){var $0=yr[1],Er=$0[3],Mr=$0[2],Br=$0[1];ie(P);var qr=[0,[0,Mr[2],Mr[1]],Er];k7(P);var jr=[0,[0,Br,qr],Z];if(!Er){var Z=jr,p0=O0;continue}var $r=ye(O0),ne=[0,Br,ye(jr),$r];er=1,vr=1}if(!vr)throw[0,Sn,N$r]}if(!er){gt(C$r,P);var Qr=[0,b0[1],P$r],be=ye(O0),ae=ye([0,Qr,Z]),ne=[0,b0[1],ae,be]}var rr=ne[3],L0=ne[2],B=ne[1];break}var pe=ke(P),oe=ht(l0,B);return[0,oe,[0,L0,rr,lr([0,S0],[0,pe],0)]]}),N(R0,function(P,L,Q,i0){var l0=Qt(P);function S0(L0,B){return o(rn(L0,Di,28),L0,B)}var T0=o(l0[2],Q,S0),rr=o(b,P,i0);return[0,ht(L,rr[1]),[24,[0,T0,rr,0]]]}),N(X,function(P){var L=pr(P),Q=cr(0,function(T0){X0(T0,4);var rr=De(T0),L0=u(x,T0),B=A0(T0),Z=0;if(typeof B=="number")if(B===9)var p0=[0,ur(W0,T0,rr,[0,L0,0])];else if(B===86)var p0=[1,[0,L0,u(_n[9],T0),0]];else Z=1;else Z=1;if(Z)var p0=[0,L0];return X0(T0,5),p0},P),i0=Q[2],l0=ke(P),S0=i0[0]===0?i0[1]:[0,Q[1],[27,i0[1]]];return ur(s0,[0,L],[0,l0],S0)}),N(s0,function(P,L,Q){var i0=Q[2],l0=P&&P[1],S0=L&&L[1];function T0(Je){return y7(Je,lr([0,l0],[0,S0],0))}function rr(Je){return JD(Je,lr([0,l0],[0,S0],0))}switch(i0[0]){case 0:var L0=i0[1],B=rr(L0[2]),Ce=[0,[0,L0[1],B]];break;case 1:var Z=i0[1],p0=Z[10],b0=T0(Z[9]),Ce=[1,[0,Z[1],Z[2],Z[3],Z[4],Z[5],Z[6],Z[7],Z[8],b0,p0]];break;case 2:var O0=i0[1],M0=T0(O0[4]),Ce=[2,[0,O0[1],O0[2],O0[3],M0]];break;case 3:var er=i0[1],yr=T0(er[4]),Ce=[3,[0,er[1],er[2],er[3],yr]];break;case 4:var vr=i0[1],$0=T0(vr[4]),Ce=[4,[0,vr[1],vr[2],vr[3],$0]];break;case 5:var Er=i0[1],Mr=T0(Er[7]),Ce=[5,[0,Er[1],Er[2],Er[3],Er[4],Er[5],Er[6],Mr]];break;case 7:var Br=i0[1],qr=T0(Br[4]),Ce=[7,[0,Br[1],Br[2],Br[3],qr]];break;case 8:var jr=i0[1],$r=jr[10],ne=T0(jr[9]),Ce=[8,[0,jr[1],jr[2],jr[3],jr[4],jr[5],jr[6],jr[7],jr[8],ne,$r]];break;case 10:var Qr=i0[1],be=Qr[2],ae=T0(be[2]),Ce=[10,[0,Qr[1],[0,be[1],ae]]];break;case 11:var pe=i0[1],oe=T0(pe[2]),Ce=[11,[0,pe[1],oe]];break;case 12:var ce=i0[1],ge=T0(ce[4]),Ce=[12,[0,ce[1],ce[2],ce[3],ge]];break;case 13:var q0=i0[1],gr=T0(q0[4]),Ce=[13,[0,q0[1],q0[2],q0[3],gr]];break;case 14:var _=i0[1],k=T0(_[3]),Ce=[14,[0,_[1],_[2],k]];break;case 15:var I=i0[1],U=T0(I[4]),Ce=[15,[0,I[1],I[2],I[3],U]];break;case 16:var Y=i0[1],y0=T0(Y[3]),Ce=[16,[0,Y[1],Y[2],y0]];break;case 17:var P0=i0[1],I0=T0(P0[3]),Ce=[17,[0,P0[1],P0[2],I0]];break;case 18:var D=i0[1],u0=T0(D[4]),Ce=[18,[0,D[1],D[2],D[3],u0]];break;case 19:var H0=i0[1],J0=rr(H0[2]),Ce=[19,[0,H0[1],J0]];break;case 20:var ir=i0[1],Q0=ir[1],F0=ir[3],Sr=ir[2],mr=T0(Q0[4]),Ce=[20,[0,[0,Q0[1],Q0[2],Q0[3],mr],Sr,F0]];break;case 21:var Cr=i0[1],sr=Cr[1],Pr=Cr[3],K0=Cr[2],Ur=T0(sr[3]),Ce=[21,[0,[0,sr[1],sr[2],Ur],K0,Pr]];break;case 22:var h0=i0[1],Kr=T0(h0[2]),Ce=[22,[0,h0[1],Kr]];break;case 23:var Ce=[23,[0,T0(i0[1][1])]];break;case 24:var re=i0[1],xe=T0(re[3]),Ce=[24,[0,re[1],re[2],xe]];break;case 25:var Re=i0[1],ve=T0(Re[3]),Ce=[25,[0,Re[1],Re[2],ve]];break;case 26:var Ce=[26,[0,T0(i0[1][1])]];break;case 27:var Ie=i0[1],Ge=T0(Ie[3]),Ce=[27,[0,Ie[1],Ie[2],Ge]];break;case 28:var Me=i0[1],an=T0(Me[3]),Ce=[28,[0,Me[1],Me[2],an]];break;case 29:var We=i0[1],Ae=T0(We[4]),Ce=[29,[0,We[1],We[2],We[3],Ae]];break;case 30:var cn=i0[1],en=cn[4],wn=cn[3],ln=T0(cn[2]),Ce=[30,[0,cn[1],ln,wn,en]];break;default:var Ce=i0}return[0,Q[1],Ce]}),N(hr,function(P){var L=pr(P);X0(P,6);for(var Q=[0,0,t[3]];;){var i0=Q[2],l0=Q[1],S0=A0(P);if(typeof S0=="number"){var T0=0;if(13<=S0)Pn===S0&&(T0=1);else if(7<=S0)switch(S0-7|0){case 2:var rr=De(P);ie(P);var Q=[0,[0,[2,rr],l0],i0];continue;case 5:var L0=pr(P),B=cr(0,function(Qr){ie(Qr);var be=u(i,Qr);return be[0]===0?[0,be[1],t[3]]:[0,be[1],be[2]]},P),Z=B[2],p0=Z[2],b0=B[1],O0=lr([0,L0],0,0),M0=[1,[0,b0,[0,Z[1],O0]]],er=A0(P)===7?1:0,yr=0;if(!er&&Kn(1,P)===7){var vr=[0,p0[1],[0,[0,b0,65],p0[2]]];yr=1}if(!yr)var vr=p0;1-er&&X0(P,9);var Q=[0,[0,M0,l0],o(t[5],vr,i0)];continue;case 0:T0=1;break}if(T0){var $0=u(t[6],i0),Er=ye(l0),Mr=pr(P);return X0(P,7),[0,[0,Er,yu([0,L],[0,ke(P)],Mr,0)],$0]}}var Br=u(i,P);if(Br[0]===0)var qr=t[3],jr=Br[1];else var qr=Br[2],jr=Br[1];A0(P)!==7&&X0(P,9);var Q=[0,[0,[0,jr],l0],o(t[5],qr,i0)]}}),N(Ar,function(P){Ku(P,5);var L=De(P),Q=pr(P),i0=A0(P),l0=0;if(typeof i0!="number"&&i0[0]===5){var S0=i0[3],T0=i0[2];ie(P);var rr=ke(P),L0=rr,B=S0,Z=T0,p0=Te(F$r,Te(T0,Te(g$r,S0)));l0=1}if(!l0){gt(T$r,P);var L0=0,B=O$r,Z=I$r,p0=A$r}k7(P);var b0=rt(un(B)),O0=un(B)-1|0,M0=0;if(!(O0<0))for(var er=M0;;){var yr=Vr(B,er),vr=yr-100|0,$0=0;if(!(21>>0))switch(vr){case 0:case 3:case 5:case 9:case 15:case 17:case 21:qi(b0,yr),$0=1;break}var Er=er+1|0;if(O0!==er){var er=Er;continue}break}var Mr=Mt(b0);return n0(Mr,B)&&je(P,[13,B]),[0,L,[14,[0,[4,[0,Z,Mr]],p0,lr([0,Q],[0,L0],0)]]]});function fe(P,L){if(typeof L=="number"){var Q=0;if(61<=L){var i0=L-64|0;27>>0?i0===43&&(Q=1):25<(i0-1|0)>>>0&&(Q=1)}else{var l0=L+_y|0;17>>0?-1<=l0&&(Q=1):l0===13&&(Q=1)}if(Q)return 0}throw Bs}function v0(P){var L=A0(P);if(typeof L=="number"&&!L){var Q=o(se[16],1,P);return[0,[0,Q[1]],Q[2]]}return[0,[1,u(se[10],P)],0]}return N(or,function(P){var L=T9(fe,P),Q=De(L);if(Kn(1,L)===11)var l0=0,S0=0;else var i0=u(Wn[1],L),l0=i0[2],S0=i0[1];var T0=cr(0,function(ne){var Qr=oi(ne,u(_n[3],ne));if(G1(ne)&&Qr===0){var be=o(se[13],S$r,ne),ae=be[1],pe=[0,ae,[0,[0,ae,[2,[0,be,[0,j1(ne)],0]]],0]];return[0,Qr,[0,ae,[0,0,[0,pe,0],0,0]],[0,[0,ae[1],ae[3],ae[3]]],0]}var oe=ur(Wn[4],ne[18],ne[17],ne),ce=u2(1,ne),ge=u(_n[12],ce);return[0,Qr,oe,ge[1],ge[2]]},L),rr=T0[2],L0=rr[2],B=L0[2],Z=0;if(!B[1]){var p0=0;if(!B[3]&&B[2]&&(p0=1),!p0){var b0=ie0(L);Z=1}}if(!Z)var b0=L;var O0=L0[2],M0=O0[1],er=M0?(ue(b0,[0,M0[1][1],Zc]),[0,L0[1],[0,0,O0[2],O0[3],O0[4]]]):L0,yr=q1(er),vr=x7(b0),$0=vr&&(A0(b0)===11?1:0);$0&&je(b0,60),X0(b0,11);var Er=fe0(ie0(b0),S0,0,yr),Mr=cr(0,v0,Er),Br=Mr[2];R(Wn[6],Er,Br[2],0,er);var qr=ht(Q,Mr[1]),jr=T0[1],$r=lr([0,l0],0,0);return[0,[0,qr,[1,[0,0,er,Br[1],S0,0,rr[4],rr[3],rr[1],$r,jr]]]]}),N(W0,function(P,L,Q){return cr([0,L],function(i0){for(var l0=Q;;){var S0=A0(i0);if(typeof S0=="number"&&S0===9){ie(i0);var l0=[0,u(x,i0),l0];continue}return[22,[0,ye(l0),0]]}},P)}),[0,x,i,T,n,K,o0,W0]}(R9),Us=function(t){function n(e0){var x0=pr(e0);ie(e0);var l=lr([0,x0],0,0),c0=u(ci[5],e0),t0=x7(e0)?rb(e0):N9(e0);function o0(w0,_0){return o(rn(w0,Di,80),w0,_0)}return[0,o(t0[2],c0,o0),l]}function e(e0){var x0=e0[27][2];if(x0)for(var l=0;;){var c0=A0(e0);if(typeof c0=="number"&&c0===13){var l=[0,cr(0,n,e0),l];continue}return ye(l)}return x0}function i(e0,x0){var l=e0&&e0[1],c0=pr(x0),t0=A0(x0);if(typeof t0=="number")switch(t0){case 6:var o0=cr(0,function(Jr){var ar=pr(Jr);X0(Jr,6);var _r=Kl(0,Jr),Ir=u(se[10],_r);return X0(Jr,7),[0,Ir,lr([0,ar],[0,ke(Jr)],0)]},x0),w0=o0[1];return[0,w0,[3,[0,w0,o0[2]]]];case 14:if(l){var _0=ge0(x0),E0=x0[29][1],U0=_0[2][1];if(E0){var b=E0[1],R0=E0[2],X=b[2],s0=[0,[0,o(Mu[4],U0,b[1]),X],R0];x0[29][1]=s0}else de(Bjr);return[0,_0[1],[2,_0]]}var hr=cr(0,function(Jr){return ie(Jr),[1,z7(Jr)]},x0),Ar=hr[1];return ue(x0,[0,Ar,89]),[0,Ar,hr[2]]}else switch(t0[0]){case 0:var or=t0[2],W0=De(x0),Lr=[2,ur(ci[6],x0,t0[1],or)];return[0,W0,[0,[0,W0,[0,Lr,or,lr([0,c0],[0,ke(x0)],0)]]]];case 2:var Tr=t0[1],Hr=Tr[4],Or=Tr[3],fr=Tr[2],Rr=Tr[1];return Hr&&gi(x0,45),X0(x0,[2,[0,Rr,fr,Or,Hr]]),[0,Rr,[0,[0,Rr,[0,[0,fr],Or,lr([0,c0],[0,ke(x0)],0)]]]]}var Wr=z7(x0);return[0,Wr[1],[1,Wr]]}function x(e0,x0,l){var c0=u(Wn[2],e0),t0=c0[1],o0=c0[2],w0=i([0,x0],e0),_0=w0[1],E0=0,U0=Xi(e0,w0[2]);return[0,U0,cr(0,function(b){var R0=t2(1,b),X=cr(0,function(Tr){var Hr=ur(Wn[4],0,0,Tr),Or=0,fr=A0(Tr)===86?Hr:eb(Tr,Hr);if(l){var Rr=fr[2],Wr=0;if(Rr[1])ue(Tr,[0,_0,j7]),Wr=1;else{var Jr=0;!Rr[2]&&!Rr[3]&&(Wr=1,Jr=1),Jr||ue(Tr,[0,_0,80])}}else{var ar=fr[2];if(ar[1])ue(Tr,[0,_0,Vt]);else{var _r=ar[2],Ir=0;(!_r||_r[2]||ar[3])&&(Ir=1),Ir&&(ar[3]?ue(Tr,[0,_0,81]):ue(Tr,[0,_0,81]))}}return[0,Or,fr,o2(Tr,u(_n[10],Tr))]},R0),s0=X[2],hr=s0[2],Ar=q1(hr),or=p7(Wn[5],R0,E0,t0,0,Ar);R(Wn[6],R0,or[2],0,hr);var W0=X[1],Lr=lr([0,o0],0,0);return[0,0,hr,or[1],E0,t0,0,s0[3],s0[1],Lr,W0]},e0)]}function c(e0){var x0=u(ci[2],e0);return x0[0]===0?[0,x0[1],t[3]]:[0,x0[1],x0[2]]}function s(e0,x0){switch(x0[0]){case 0:var l=x0[1],c0=l[1];return ue(e0,[0,c0,95]),[0,c0,[14,l[2]]];case 1:var t0=x0[1],o0=t0[2][1],w0=t0[1],_0=0;return kL(o0)&&n0(o0,VQr)&&n0(o0,zQr)&&(ue(e0,[0,w0,2]),_0=1),!_0&&f2(o0)&&V7(e0,[0,w0,55]),[0,w0,[10,t0]];case 2:return de(KQr);default:var E0=x0[1][2][1];return ue(e0,[0,E0[1],96]),E0}}function p(e0,x0,l){function c0(o0){var w0=t2(1,o0),_0=cr(0,function(hr){var Ar=oi(hr,u(_n[3],hr));if(e0)if(x0)var or=1,W0=1;else var or=hr[18],W0=0;else if(x0)var or=0,W0=1;else var or=0,W0=0;var Lr=ur(Wn[4],or,W0,hr),Tr=A0(hr)===86?Lr:eb(hr,Lr);return[0,Ar,Tr,o2(hr,u(_n[10],hr))]},w0),E0=_0[2],U0=E0[2],b=q1(U0),R0=p7(Wn[5],w0,e0,x0,0,b);R(Wn[6],w0,R0[2],0,U0);var X=_0[1],s0=lr([0,l],0,0);return[0,0,U0,R0[1],e0,x0,0,E0[3],E0[1],s0,X]}var t0=0;return function(o0){return cr(t0,c0,o0)}}function y(e0){return X0(e0,86),c(e0)}function T(e0,x0,l,c0,t0,o0){var w0=cr([0,x0],function(E0){if(!c0&&!t0){var U0=A0(E0);if(typeof U0=="number"){var b=0;if(86<=U0){if(U0===98)b=1;else if(!(87<=U0)){var R0=y(E0);return[0,[0,l,R0[1],0],R0[2]]}}else{if(U0===82){if(l[0]===1)var X=l[1],s0=De(E0),hr=function(Rr){var Wr=pr(Rr);X0(Rr,82);var Jr=ke(Rr),ar=o(se[19],Rr,[0,X[1],[10,X]]),_r=u(se[10],Rr);return[2,[0,0,ar,_r,lr([0,Wr],[0,Jr],0)]]},Ar=cr([0,X[1]],hr,E0),or=[0,Ar,[0,[0,[0,s0,[10,Ml(YQr)]],0],0]];else var or=y(E0);return[0,[0,l,or[1],1],or[2]]}if(!(10<=U0))switch(U0){case 4:b=1;break;case 1:case 9:var W0=[0,l,s(E0,l),1];return[0,W0,t[3]]}}if(b){var Lr=Xi(E0,l),Tr=[1,Lr,u(p(c0,t0,o0),E0)];return[0,Tr,t[3]]}}var Hr=[0,l,s(E0,l),1];return[0,Hr,t[3]]}var Or=Xi(E0,l),fr=[1,Or,u(p(c0,t0,o0),E0)];return[0,fr,t[3]]},e0),_0=w0[2];return[0,[0,[0,w0[1],_0[1]]],_0[2]]}function E(e0){var x0=cr(0,function(c0){var t0=pr(c0);X0(c0,0);for(var o0=0,w0=[0,0,t[3]];;){var _0=w0[2],E0=w0[1],U0=A0(c0);if(typeof U0=="number"){var b=0;if((U0===1||Pn===U0)&&(b=1),b){var R0=o0?[0,_0[1],[0,[0,o0[1],98],_0[2]]]:_0,X=u(t[6],R0),s0=ye(E0),hr=pr(c0);return X0(c0,1),[0,[0,s0,yu([0,t0],[0,ke(c0)],hr,0)],X]}}if(A0(c0)===12)var Ar=pr(c0),or=cr(0,function(y0){return X0(y0,12),c(y0)},c0),W0=or[2],Lr=W0[2],Tr=lr([0,Ar],0,0),Hr=[0,[1,[0,or[1],[0,W0[1],Tr]]],Lr];else{var Or=De(c0),fr=Kn(1,c0),Rr=0;if(typeof fr=="number"){var Wr=0;if(86<=fr)fr!==98&&87<=fr&&(Wr=1);else if(fr!==82)if(10<=fr)Wr=1;else switch(fr){case 1:case 4:case 9:break;default:Wr=1}if(!Wr){var ar=0,_r=0;Rr=1}}if(!Rr)var Jr=u(Wn[1],c0),ar=Jr[2],_r=Jr[1];var Ir=u(Wn[2],c0),fe=Ir[1],v0=on(ar,Ir[2]),P=A0(c0),L=0;if(!_r&&!fe&&typeof P!="number"&&P[0]===4){var Q=P[3],i0=0;if(n0(Q,HQr))if(n0(Q,XQr))i0=1;else{var l0=pr(c0),S0=i(0,c0)[2],T0=A0(c0),rr=0;if(typeof T0=="number"){var L0=0;if(86<=T0)T0!==98&&87<=T0&&(L0=1);else if(T0!==82)if(10<=T0)L0=1;else switch(T0){case 1:case 4:case 9:break;default:L0=1}if(!L0){var B=T(c0,Or,S0,0,0,0);rr=1}}if(!rr){Xi(c0,S0);var Z=t[3],p0=cr([0,Or],function(I0){return x(I0,0,0)},c0),b0=p0[2],O0=lr([0,l0],0,0),B=[0,[0,[0,p0[1],[3,b0[1],b0[2],O0]]],Z]}var M0=B}else{var er=pr(c0),yr=i(0,c0)[2],vr=A0(c0),$0=0;if(typeof vr=="number"){var Er=0;if(86<=vr)vr!==98&&87<=vr&&(Er=1);else if(vr!==82)if(10<=vr)Er=1;else switch(vr){case 1:case 4:case 9:break;default:Er=1}if(!Er){var Mr=T(c0,Or,yr,0,0,0);$0=1}}if(!$0){Xi(c0,yr);var Br=t[3],qr=cr([0,Or],function(D){return x(D,0,1)},c0),jr=qr[2],$r=lr([0,er],0,0),Mr=[0,[0,[0,qr[1],[2,jr[1],jr[2],$r]]],Br]}var M0=Mr}if(!i0){var ne=M0;L=1}}if(!L)var ne=T(c0,Or,i(0,c0)[2],_r,fe,v0);var Hr=ne}var Qr=Hr[1],be=0;if(Qr[0]===1&&A0(c0)===9){var ae=[0,De(c0)];be=1}if(!be)var ae=0;var pe=o(t[5],Hr[2],_0),oe=A0(c0),ce=0;if(typeof oe=="number"){var ge=oe-2|0,q0=0;if(Yt>>0?T7<(ge+1|0)>>>0&&(q0=1):ge===7?ie(c0):q0=1,!q0){var gr=pe;ce=1}}if(!ce){var _=aL(yRr,9),k=le0([0,_],A0(c0)),I=[0,De(c0),k];ou(c0,8);var gr=o(t[4],I,pe)}var o0=ae,w0=[0,[0,Qr,E0],gr]}},e0),l=x0[2];return[0,x0[1],l[1],l[2]]}function d(e0,x0,l,c0){var t0=l[2][1],o0=l[1];if(Hn(t0,UQr))return ue(e0,[0,o0,[21,t0,0,QY===c0?1:0,1]]),x0;var w0=o(L9[32],t0,x0);if(w0){var _0=w0[1],E0=0;return SE===c0?Fh===_0&&(E0=1):Fh===c0&&SE===_0&&(E0=1),E0||ue(e0,[0,o0,[20,t0]]),ur(L9[4],t0,KX,x0)}return ur(L9[4],t0,c0,x0)}function w(e0,x0){return cr(0,function(l){var c0=x0&&pr(l);X0(l,52);for(var t0=0;;){var o0=[0,cr(0,function(E0){var U0=u(_n[2],E0);if(A0(E0)===98)var b=Qt(E0),R0=function(s0,hr){return o(rn(s0,Nv,81),s0,hr)},X=o(b[2],U0,R0);else var X=U0;return[0,X,u(_n[4],E0)]},l),t0],w0=A0(l);if(typeof w0=="number"&&w0===9){X0(l,9);var t0=o0;continue}var _0=ye(o0);return[0,_0,lr([0,c0],0,0)]}},e0)}function G(e0,x0){return x0&&ue(e0,[0,x0[1][1],7])}function A(e0,x0){return x0&&ue(e0,[0,x0[1],68])}function S(e0,x0,l,c0,t0,o0,w0,_0,E0,U0){for(;;){var b=A0(e0),R0=0;if(typeof b=="number"){var X=b-1|0,s0=0;if(7>>0){var hr=X-81|0;if(4


>>0)s0=1;else switch(hr){case 3:gt(0,e0),ie(e0);continue;case 0:case 4:break;default:s0=1}}else 5<(X-1|0)>>>0||(s0=1);!s0&&!t0&&!o0&&(R0=1)}if(!R0){var Ar=A0(e0),or=0;if(typeof Ar=="number"){var W0=0;if(Ar!==4&&Ar!==98&&(or=1,W0=1),!W0)var Tr=0}else or=1;if(or)var Lr=x2(e0),Tr=Lr&&1;if(!Tr){A(e0,_0),G(e0,E0);var Hr=0;if(!w0){var Or=0;switch(c0[0]){case 0:var fr=c0[1][2][1],Rr=0;typeof fr!="number"&&fr[0]===0&&(n0(fr[1],LQr)&&(Or=1),Rr=1),Rr||(Or=1);break;case 1:n0(c0[1][2][1],RQr)&&(Or=1);break;default:Or=1}if(!Or){var Wr=t2(2,e0),Jr=0;Hr=1}}if(!Hr)var Wr=t2(1,e0),Jr=1;var ar=Xi(Wr,c0),_r=cr(0,function(S0){var T0=cr(0,function(p0){var b0=oi(p0,u(_n[3],p0));if(t0)if(o0)var O0=1,M0=1;else var O0=p0[18],M0=0;else if(o0)var O0=0,M0=1;else var O0=0,M0=0;var er=ur(Wn[4],O0,M0,p0),yr=A0(p0)===86?er:eb(p0,er),vr=yr[2],$0=vr[1],Er=0;if($0&&Jr===0){ue(p0,[0,$0[1][1],is]);var Mr=[0,yr[1],[0,0,vr[2],vr[3],vr[4]]];Er=1}if(!Er)var Mr=yr;return[0,b0,Mr,o2(p0,u(_n[10],p0))]},S0),rr=T0[2],L0=rr[2],B=q1(L0),Z=p7(Wn[5],S0,t0,o0,0,B);return R(Wn[6],S0,Z[2],0,L0),[0,0,L0,Z[1],t0,o0,0,rr[3],rr[1],0,T0[1]]},Wr),Ir=[0,Jr,ar,_r,w0,l,lr([0,U0],0,0)];return[0,[0,ht(x0,_r[1]),Ir]]}}var fe=cr([0,x0],function(S0){var T0=u(_n[10],S0),rr=A0(S0);if(_0){var L0=0;if(typeof rr=="number"&&rr===82){je(S0,69),ie(S0);var B=0}else L0=1;if(L0)var B=0}else{var Z=0;if(typeof rr=="number"&&rr===82){ie(S0);var p0=t2(1,S0),B=[0,u(se[7],p0)]}else Z=1;if(Z)var B=1}var b0=A0(S0),O0=0;if(typeof b0=="number"&&!(9<=b0))switch(b0){case 8:ie(S0);var M0=A0(S0),er=0;if(typeof M0=="number"){var yr=0;if(M0!==1&&Pn!==M0&&(er=1,yr=1),!yr)var $0=ke(S0)}else er=1;if(er)var vr=x7(S0),$0=vr&&Ms(S0);var Er=[0,c0,T0,B,$0];O0=1;break;case 4:case 6:gt(0,S0);var Er=[0,c0,T0,B,0];O0=1;break}if(!O0){var Mr=A0(S0),Br=0;if(typeof Mr=="number"){var qr=0;if(Mr!==1&&Pn!==Mr&&(Br=1,qr=1),!qr)var jr=[0,0,function(q0,gr){return q0}]}else Br=1;if(Br)var jr=x7(S0)?rb(S0):N9(S0);if(typeof B=="number")if(T0[0]===0)var $r=function(_,k){return o(rn(_,qY,83),_,k)},be=B,ae=T0,pe=o(jr[2],c0,$r);else var ne=function(_,k){return o(rn(_,OE,84),_,k)},be=B,ae=[1,o(jr[2],T0[1],ne)],pe=c0;else var Qr=function(ge,q0){return o(rn(ge,Di,85),ge,q0)},be=[0,o(jr[2],B[1],Qr)],ae=T0,pe=c0;var Er=[0,pe,ae,be,0]}var oe=lr([0,U0],[0,Er[4]],0);return[0,Er[1],Er[2],Er[3],oe]},e0),v0=fe[2],P=v0[4],L=v0[3],Q=v0[2],i0=v0[1],l0=fe[1];return i0[0]===2?[2,[0,l0,[0,i0[1],L,Q,w0,E0,P]]]:[1,[0,l0,[0,i0,L,Q,w0,E0,P]]]}}function M(e0,x0){var l=Kn(e0,x0);if(typeof l=="number"){var c0=0;if(86<=l)(l===98||!(87<=l))&&(c0=1);else if(l===82)c0=1;else if(!(9<=l))switch(l){case 1:case 4:case 8:c0=1;break}if(c0)return 1}return 0}var K=0;function V(e0){return M(K,e0)}function f0(e0,x0,l,c0){var t0=e0&&e0[1],o0=_s(1,x0),w0=on(t0,e(o0)),_0=pr(o0);X0(o0,40);var E0=F9(1,o0),U0=A0(E0),b=0;if(l&&typeof U0=="number"){var R0=0;if(52<=U0?U0!==98&&53<=U0&&(R0=1):U0!==41&&U0&&(R0=1),!R0){var Ar=0;b=1}}if(!b)if(G1(o0))var X=o(se[13],0,E0),s0=Qt(o0),hr=function(v0,P){return o(rn(v0,Nv,88),v0,P)},Ar=[0,o(s0[2],X,hr)];else{be0(o0,IQr);var Ar=[0,[0,De(o0),AQr]]}var or=u(_n[3],o0);if(or)var W0=Qt(o0),Lr=function(v0,P){return o(rn(v0,bF,86),v0,P)},Tr=[0,o(W0[2],or[1],Lr)];else var Tr=or;var Hr=pr(o0),Or=ou(o0,41);if(Or)var fr=cr(0,function(v0){var P=mL(0,v0),L=u(ci[5],P);if(A0(v0)===98)var Q=Qt(v0),i0=function(T0,rr){return o(rn(T0,Di,82),T0,rr)},l0=o(Q[2],L,i0);else var l0=L;var S0=u(_n[4],v0);return[0,l0,S0,lr([0,Hr],0,0)]},o0),Rr=fr[1],Wr=Qt(o0),Jr=function(v0,P){return ur(rn(v0,-663447790,87),v0,Rr,P)},ar=[0,[0,Rr,o(Wr[2],fr[2],Jr)]];else var ar=Or;var _r=A0(o0)===52?1:0;if(_r){1-xu(o0)&&je(o0,16);var Ir=[0,ke0(o0,w(o0,1))]}else var Ir=_r;var fe=cr(0,function(v0){var P=pr(v0);if(ou(v0,0)){v0[29][1]=[0,[0,Mu[1],0],v0[29][1]];for(var L=0,Q=L9[1],i0=0;;){var l0=A0(v0);if(typeof l0=="number"){var S0=l0-2|0;if(Yt>>0){if(!(T7<(S0+1|0)>>>0)){var T0=ye(i0),rr=function(au,Bu){return u(ml(function(K7){return 1-o(Mu[3],K7[1],au)}),Bu)},L0=v0[29][1];if(L0){var B=L0[1],Z=B[1];if(L0[2]){var p0=L0[2],b0=rr(Z,B[2]),O0=bl(p0),M0=az(p0),er=on(O0[2],b0);v0[29][1]=[0,[0,O0[1],er],M0]}else{var yr=rr(Z,B[2]);Du(function(au){return ue(v0,[0,au[2],[22,au[1]]])},yr),v0[29][1]=0}}else de(qjr);X0(v0,1);var vr=A0(v0),$0=0;if(!c0){var Er=0;if(typeof vr=="number"&&(vr===1||Pn===vr)&&(Er=1),!Er){var Mr=x7(v0);if(Mr){var Br=Ms(v0);$0=1}else{var Br=Mr;$0=1}}}if(!$0)var Br=ke(v0);return[0,T0,lr([0,P],[0,Br],0)]}}else if(S0===6){X0(v0,8);continue}}var qr=De(v0),jr=e(v0),$r=A0(v0),ne=0;if(typeof $r=="number"&&$r===60&&!M(1,v0)){var Qr=[0,De(v0)],be=pr(v0);ie(v0);var ae=be,pe=Qr;ne=1}if(!ne)var ae=0,pe=0;var oe=Kn(1,v0)!==4?1:0;if(oe)var ce=Kn(1,v0)!==98?1:0,ge=ce&&(A0(v0)===42?1:0);else var ge=oe;if(ge){var q0=pr(v0);ie(v0);var gr=q0}else var gr=ge;var _=A0(v0)===64?1:0;if(_)var k=1-M(1,v0),I=k&&1-Jl(1,v0);else var I=_;if(I){var U=pr(v0);ie(v0);var Y=U}else var Y=I;var y0=u(Wn[2],v0),P0=y0[1],I0=ur(Wn[3],v0,I,P0),D=0;if(!P0&&I0){var u0=u(Wn[2],v0),H0=u0[2],J0=u0[1];D=1}if(!D)var H0=y0[2],J0=P0;var ir=pl([0,ae,[0,gr,[0,Y,[0,H0,0]]]]),Q0=A0(v0),F0=0;if(!I&&!J0&&typeof Q0!="number"&&Q0[0]===4){var Sr=Q0[3];if(n0(Sr,jQr)){if(!n0(Sr,GQr)){var mr=pr(v0),Cr=i(MQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Cr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Cr);var sr=on(ir,mr),Pr=cr([0,qr],function(Bu){return x(Bu,1,0)},v0),K0=Pr[2],Ur=lr([0,sr],0,0),Ie=[0,[0,Pr[1],[0,3,K0[1],K0[2],ge,jr,Ur]]];F0=1}}}else{var h0=pr(v0),Kr=i(BQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Kr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Kr);var re=on(ir,h0),xe=cr([0,qr],function(Bu){return x(Bu,1,1)},v0),Re=xe[2],ve=lr([0,re],0,0),Ie=[0,[0,xe[1],[0,2,Re[1],Re[2],ge,jr,ve]]];F0=1}}}if(!F0)var Ie=S(v0,qr,jr,i(qQr,v0)[2],I,J0,ge,pe,I0,ir);switch(Ie[0]){case 0:var Ge=Ie[1],Me=Ge[2];switch(Me[1]){case 0:if(Me[4])var Tt=Q,Ct=L;else{L&&ue(v0,[0,Ge[1],87]);var Tt=Q,Ct=1}break;case 1:var an=Me[2],We=an[0]===2?d(v0,Q,an[1],QY):Q,Tt=We,Ct=L;break;case 2:var Ae=Me[2],cn=Ae[0]===2?d(v0,Q,Ae[1],SE):Q,Tt=cn,Ct=L;break;default:var en=Me[2],wn=en[0]===2?d(v0,Q,en[1],Fh):Q,Tt=wn,Ct=L}break;case 1:var ln=Ie[1][2],Ce=ln[4],Je=ln[1],nn=0;switch(Je[0]){case 0:var yn=Je[1],Cn=yn[2][1],Yn=0;if(typeof Cn!="number"&&Cn[0]===0){var lt=Cn[1],Nt=yn[1];nn=1,Yn=1}Yn||(nn=2);break;case 1:var Fn=Je[1],lt=Fn[2][1],Nt=Fn[1];nn=1;break;case 2:de(NQr);break;default:nn=2}switch(nn){case 1:var Ft=Hn(lt,CQr);if(Ft)var qt=Ft;else var ru=Hn(lt,PQr),qt=ru&&Ce;qt&&ue(v0,[0,Nt,[21,lt,Ce,0,0]]);break;case 2:break}var Tt=Q,Ct=L;break;default:var Tt=d(v0,Q,Ie[1][2][1],KX),Ct=L}var L=Ct,Q=Tt,i0=[0,Ie,i0]}}return B1(v0,0),DQr},o0);return[0,Ar,fe,Tr,ar,Ir,w0,lr([0,_0],0,0)]}function m0(e0,x0){return cr(0,function(l){return[2,f0([0,x0],l,l[7],0)]},e0)}function k0(e0){return[5,f0(0,e0,1,1)]}var g0=0;return[0,i,E,m0,function(e0){return cr(g0,k0,e0)},w,e]}(R9),dt=function(t){function n(_){var k=u(Wn[10],_);if(_[5])M1(_,k[1]);else{var I=k[2],U=0;if(I[0]===23){var Y=I[1],y0=k[1],P0=0;Y[4]?ue(_,[0,y0,61]):Y[5]?ue(_,[0,y0,62]):(U=1,P0=1)}else U=1}return k}function e(_,k,I){var U=I[2][1],Y=I[1];if(n0(U,J0e)){if(n0(U,$0e))return n0(U,Z0e)?f2(U)?V7(k,[0,Y,55]):kL(U)?ue(k,[0,Y,[10,Ml(U)]]):_&&js(U)?V7(k,[0,Y,_[1]]):0:k[17]?ue(k,[0,Y,2]):V7(k,[0,Y,55]);if(k[5])return V7(k,[0,Y,55]);var y0=k[14];return y0&&ue(k,[0,Y,[10,Ml(U)]])}var P0=k[18];return P0&&ue(k,[0,Y,2])}function i(_,k){var I=k[4],U=k[3],Y=k[2],y0=k[1];I&&gi(_,45);var P0=pr(_);return X0(_,[2,[0,y0,Y,U,I]]),[0,y0,[0,Y,U,lr([0,P0],[0,ke(_)],0)]]}function x(_,k,I){var U=_?_[1]:z0e,Y=k?k[1]:1,y0=A0(I);if(typeof y0=="number"){var P0=y0-2|0;if(Yt>>0){if(!(T7<(P0+1|0)>>>0)){var I0=function(H0,J0){return H0};return[1,[0,ke(I),I0]]}}else if(P0===6){ie(I);var D=A0(I);if(typeof D=="number"){var u0=0;if((D===1||Pn===D)&&(u0=1),u0)return[0,ke(I)]}return x7(I)?[0,Ms(I)]:K0e}}return x7(I)?[1,rb(I)]:(Y&>([0,U],I),W0e)}function c(_){var k=A0(_);if(typeof k=="number"){var I=0;if((k===1||Pn===k)&&(I=1),I){var U=function(Y,y0){return Y};return[0,ke(_),U]}}return x7(_)?rb(_):N9(_)}function s(_,k,I){var U=x(0,0,k);if(U[0]===0)return[0,U[1],I];var Y=ye(I);if(Y)var y0=function(D,u0){return ur(rn(D,634872468,89),D,_,u0)},P0=o(U[1][2],Y[1],y0),I0=ye([0,P0,Y[2]]);else var I0=Y;return[0,0,I0]}var p=function _(k){return _.fun(k)},y=function _(k){return _.fun(k)},T=function _(k){return _.fun(k)},E=function _(k){return _.fun(k)},d=function _(k){return _.fun(k)},w=function _(k,I){return _.fun(k,I)},G=function _(k){return _.fun(k)},A=function _(k){return _.fun(k)},S=function _(k,I,U){return _.fun(k,I,U)},M=function _(k){return _.fun(k)},K=function _(k){return _.fun(k)},V=function _(k,I){return _.fun(k,I)},f0=function _(k){return _.fun(k)},m0=function _(k){return _.fun(k)},k0=function _(k,I){return _.fun(k,I)},g0=function _(k){return _.fun(k)},e0=function _(k,I){return _.fun(k,I)},x0=function _(k){return _.fun(k)},l=function _(k,I){return _.fun(k,I)},c0=function _(k){return _.fun(k)},t0=function _(k,I){return _.fun(k,I)},o0=function _(k,I){return _.fun(k,I)},w0=function _(k,I){return _.fun(k,I)},_0=function _(k){return _.fun(k)},E0=function _(k){return _.fun(k)},U0=function _(k,I,U){return _.fun(k,I,U)},b=function _(k,I){return _.fun(k,I)},R0=function _(k,I){return _.fun(k,I)},X=function _(k){return _.fun(k)};function s0(_){var k=pr(_);X0(_,59);var I=A0(_)===8?1:0,U=I&&ke(_),Y=x(0,0,_),y0=Y[0]===0?Y[1]:Y[1][1];return[4,[0,lr([0,k],[0,on(U,y0)],0)]]}var hr=0;function Ar(_){return cr(hr,s0,_)}function or(_){var k=pr(_);X0(_,37);var I=zl(1,_),U=u(se[2],I),Y=1-_[5],y0=Y&&nb(U);y0&&M1(_,U[1]);var P0=ke(_);X0(_,25);var I0=ke(_);X0(_,4);var D=u(se[7],_);X0(_,5);var u0=A0(_)===8?1:0,H0=u0&&ke(_),J0=x(0,V0e,_),ir=J0[0]===0?on(H0,J0[1]):J0[1][1];return[14,[0,U,D,lr([0,k],[0,on(P0,on(I0,ir))],0)]]}var W0=0;function Lr(_){return cr(W0,or,_)}function Tr(_,k,I){var U=I[2][1];if(U&&!U[1][2][2]){var Y=U[2];if(!Y)return Y}return ue(_,[0,I[1],k])}function Hr(_,k){var I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1])}function Or(_){var k=pr(_);X0(_,39);var I=_[18],U=I&&ou(_,65),Y=on(k,pr(_));X0(_,4);var y0=lr([0,Y],0,0),P0=Kl(1,_),I0=A0(P0),D=0;if(typeof I0=="number")if(24<=I0)if(29<=I0)D=1;else switch(I0-24|0){case 0:var u0=cr(0,Wn[9],P0),H0=u0[2],J0=lr([0,H0[2]],0,0),Pr=H0[3],K0=[0,[1,[0,u0[1],[0,H0[1],0,J0]]]];break;case 3:var ir=cr(0,Wn[8],P0),Q0=ir[2],F0=lr([0,Q0[2]],0,0),Pr=Q0[3],K0=[0,[1,[0,ir[1],[0,Q0[1],2,F0]]]];break;case 4:var Sr=cr(0,Wn[7],P0),mr=Sr[2],Cr=lr([0,mr[2]],0,0),Pr=mr[3],K0=[0,[1,[0,Sr[1],[0,mr[1],1,Cr]]]];break;default:D=1}else if(I0===8)var Pr=0,K0=0;else D=1;else D=1;if(D)var sr=F9(1,P0),Pr=0,K0=[0,[0,u(se[8],sr)]];var Ur=A0(_);if(typeof Ur=="number"){if(Ur===17){if(K0){var h0=K0[1];if(h0[0]===0)var Kr=[1,ur(t[2],X0e,_,h0[1])];else{var re=h0[1];Tr(_,28,re);var Kr=[0,re]}U?X0(_,63):X0(_,17);var xe=u(se[7],_);X0(_,5);var Re=zl(1,_),ve=u(se[2],Re);return Hr(_,ve),[21,[0,Kr,xe,ve,0,y0]]}throw[0,Sn,Y0e]}if(Ur===63){if(K0){var Ie=K0[1];if(Ie[0]===0)var Ge=[1,ur(t[2],U0e,_,Ie[1])];else{var Me=Ie[1];Tr(_,29,Me);var Ge=[0,Me]}X0(_,63);var an=u(se[10],_);X0(_,5);var We=zl(1,_),Ae=u(se[2],We);return Hr(_,Ae),[22,[0,Ge,an,Ae,U,y0]]}throw[0,Sn,H0e]}}if(Du(function(Ft){return ue(_,Ft)},Pr),U?X0(_,63):X0(_,8),K0)var cn=K0[1],en=cn[0]===0?[0,[1,o(t[1],_,cn[1])]]:[0,[0,cn[1]]],wn=en;else var wn=K0;var ln=A0(_),Ce=0;if(typeof ln=="number"){var Je=ln!==8?1:0;if(!Je){var nn=Je;Ce=1}}if(!Ce)var nn=[0,u(se[7],_)];X0(_,8);var yn=A0(_),Cn=0;if(typeof yn=="number"){var Yn=yn!==5?1:0;if(!Yn){var Fn=Yn;Cn=1}}if(!Cn)var Fn=[0,u(se[7],_)];X0(_,5);var lt=zl(1,_),Nt=u(se[2],lt);return Hr(_,Nt),[20,[0,wn,nn,Fn,Nt,y0]]}var fr=0;function Rr(_){return cr(fr,Or,_)}function Wr(_){var k=Gs(_)?n(_):u(se[2],_),I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1]),k}function Jr(_){var k=pr(_);X0(_,43);var I=Wr(_);return[0,I,lr([0,k],0,0)]}function ar(_){var k=pr(_);X0(_,16);var I=on(k,pr(_));X0(_,4);var U=u(se[7],_);X0(_,5);var Y=Wr(_),y0=A0(_)===43?1:0,P0=y0&&[0,cr(0,Jr,_)];return[24,[0,U,Y,P0,lr([0,I],0,0)]]}var _r=0;function Ir(_){return cr(_r,ar,_)}function fe(_){1-_[11]&&je(_,36);var k=pr(_),I=De(_);X0(_,19);var U=A0(_)===8?1:0,Y=U&&ke(_),y0=0;if(A0(_)!==8&&!x2(_)){var P0=[0,u(se[7],_)];y0=1}if(!y0)var P0=0;var I0=ht(I,De(_)),D=x(0,0,_),u0=0;if(D[0]===0)var H0=D[1];else{var J0=D[1];if(P0){var ir=function(sr,Pr){return o(rn(sr,Di,90),sr,Pr)},Q0=[0,o(J0[2],P0[1],ir)],F0=Y;u0=1}else var H0=J0[1]}if(!u0)var Q0=P0,F0=on(Y,H0);return[28,[0,Q0,lr([0,k],[0,F0],0),I0]]}var v0=0;function P(_){return cr(v0,fe,_)}function L(_){var k=pr(_);X0(_,20),X0(_,4);var I=u(se[7],_);X0(_,5),X0(_,0);for(var U=q0e;;){var Y=U[2],y0=A0(_);if(typeof y0=="number"){var P0=0;if((y0===1||Pn===y0)&&(P0=1),P0){var I0=ye(Y);X0(_,1);var D=c(_),u0=I[1];return[29,[0,I,I0,lr([0,k],[0,D[1]],0),u0]]}}var H0=U[1],J0=gL(0,function(Q0){return function(F0){var Sr=pr(F0),mr=A0(F0),Cr=0;if(typeof mr=="number"&&mr===36){Q0&&je(F0,32),X0(F0,36);var sr=ke(F0),Pr=0;Cr=1}if(!Cr){X0(F0,33);var sr=0,Pr=[0,u(se[7],F0)]}var K0=Q0||(Pr===0?1:0);X0(F0,86);var Ur=on(sr,c(F0)[1]);function h0(Re){if(typeof Re=="number"){var ve=Re-1|0,Ie=0;if(32>>0?ve===35&&(Ie=1):30<(ve-1|0)>>>0&&(Ie=1),Ie)return 1}return 0}var Kr=1,re=F0[9]===1?F0:[0,F0[1],F0[2],F0[3],F0[4],F0[5],F0[6],F0[7],F0[8],Kr,F0[10],F0[11],F0[12],F0[13],F0[14],F0[15],F0[16],F0[17],F0[18],F0[19],F0[20],F0[21],F0[22],F0[23],F0[24],F0[25],F0[26],F0[27],F0[28],F0[29],F0[30]],xe=o(se[4],h0,re);return[0,[0,Pr,xe,lr([0,Sr],[0,Ur],0)],K0]}}(H0),_),U=[0,J0[2],[0,J0[1],Y]]}}var Q=0;function i0(_){return cr(Q,L,_)}function l0(_){var k=pr(_),I=De(_);X0(_,22),x7(_)&&ue(_,[0,I,21]);var U=u(se[7],_),Y=x(0,0,_);if(Y[0]===0)var P0=U,I0=Y[1];else var y0=function(D,u0){return o(rn(D,Di,91),D,u0)},P0=o(Y[1][2],U,y0),I0=0;return[30,[0,P0,lr([0,k],[0,I0],0)]]}var S0=0;function T0(_){return cr(S0,l0,_)}function rr(_){var k=pr(_);X0(_,23);var I=u(se[15],_);if(A0(_)===34)var U=Qt(_),Y=function(sr,Pr){var K0=Pr[1];return[0,K0,ur(rn(sr,Y8,29),sr,K0,Pr[2])]},y0=o(U[2],I,Y);else var y0=I;var P0=A0(_),I0=0;if(typeof P0=="number"&&P0===34){var D=[0,cr(0,function(Pr){var K0=pr(Pr);X0(Pr,34);var Ur=ke(Pr),h0=A0(Pr)===4?1:0;if(h0){X0(Pr,4);var Kr=[0,o(se[18],Pr,39)];X0(Pr,5);var re=Kr}else var re=h0;var xe=u(se[15],Pr);if(A0(Pr)===38)var Ie=xe;else var Re=c(Pr),ve=function(Ge,Me){var an=Me[1];return[0,an,ur(rn(Ge,Y8,92),Ge,an,Me[2])]},Ie=o(Re[2],xe,ve);return[0,re,Ie,lr([0,K0],[0,Ur],0)]},_)];I0=1}if(!I0)var D=0;var u0=A0(_),H0=0;if(typeof u0=="number"&&u0===38){X0(_,38);var J0=u(se[15],_),ir=J0[1],Q0=c(_),F0=function(Pr,K0){return ur(rn(Pr,Y8,93),Pr,ir,K0)},Sr=[0,[0,ir,o(Q0[2],J0[2],F0)]];H0=1}if(!H0)var Sr=0;var mr=D===0?1:0,Cr=mr&&(Sr===0?1:0);return Cr&&ue(_,[0,y0[1],33]),[31,[0,y0,D,Sr,lr([0,k],0,0)]]}var L0=0;function B(_){return cr(L0,rr,_)}function Z(_){var k=u(Wn[9],_),I=s(0,_,k[1]),U=0,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var p0=0;function b0(_){return cr(p0,Z,_)}function O0(_){var k=u(Wn[8],_),I=s(2,_,k[1]),U=2,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var M0=0;function er(_){return cr(M0,O0,_)}function yr(_){var k=u(Wn[7],_),I=s(1,_,k[1]),U=1,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var vr=0;function $0(_){return cr(vr,yr,_)}function Er(_){var k=pr(_);X0(_,25);var I=on(k,pr(_));X0(_,4);var U=u(se[7],_);X0(_,5);var Y=zl(1,_),y0=u(se[2],Y),P0=1-_[5],I0=P0&&nb(y0);return I0&&M1(_,y0[1]),[35,[0,U,y0,lr([0,I],0,0)]]}var Mr=0;function Br(_){return cr(Mr,Er,_)}function qr(_){var k=pr(_),I=u(se[7],_),U=A0(_),Y=I[2];if(Y[0]===10&&typeof U=="number"&&U===86){var y0=Y[1],P0=y0[2][1];X0(_,86),o(Mu[3],P0,_[3])&&ue(_,[0,I[1],[16,M0e,P0]]);var I0=_[30],D=_[29],u0=_[28],H0=_[27],J0=_[26],ir=_[25],Q0=_[24],F0=_[23],Sr=_[22],mr=_[21],Cr=_[20],sr=_[19],Pr=_[18],K0=_[17],Ur=_[16],h0=_[15],Kr=_[14],re=_[13],xe=_[12],Re=_[11],ve=_[10],Ie=_[9],Ge=_[8],Me=_[7],an=_[6],We=_[5],Ae=_[4],cn=o(Mu[4],P0,_[3]),en=[0,_[1],_[2],cn,Ae,We,an,Me,Ge,Ie,ve,Re,xe,re,Kr,h0,Ur,K0,Pr,sr,Cr,mr,Sr,F0,Q0,ir,J0,H0,u0,D,I0],wn=Gs(en)?n(en):u(se[2],en);return[27,[0,y0,wn,lr([0,k],0,0)]]}var ln=x(B0e,0,_);if(ln[0]===0)var Je=I,nn=ln[1];else var Ce=function(yn,Cn){return o(rn(yn,Di,94),yn,Cn)},Je=o(ln[1][2],I,Ce),nn=0;return[19,[0,Je,0,lr(0,[0,nn],0)]]}var jr=0;function $r(_){return cr(jr,qr,_)}function ne(_){var k=u(se[7],_),I=x(G0e,0,_);if(I[0]===0)var Y=k,y0=I[1];else var U=function(sr,Pr){return o(rn(sr,Di,95),sr,Pr)},Y=o(I[1][2],k,U),y0=0;var P0=_[19];if(P0){var I0=Y[2],D=0;if(I0[0]===14){var u0=I0[1],H0=0,J0=u0[1];if(typeof J0!="number"&&J0[0]===0){var ir=u0[2],Q0=1>>0))switch(K0){case 21:var Ur=on(I0,pr(P0)),h0=cr(0,function(Ct){return X0(Ct,36)},P0),Kr=te0(1,P0),re=A0(Kr),xe=0;if(typeof re=="number")if(re===15)var Re=0,ve=Re,Ie=[0,[1,cr(0,function(Ct){return o(e0,0,Ct)},Kr)]];else if(re===40)var ve=0,Ie=[0,[2,cr(0,u(k0,0),Kr)]];else xe=1;else xe=1;if(xe){var Ge=u(_n[1],Kr),Me=x(0,0,Kr);if(Me[0]===0)var Ae=Me[1],cn=Ge;else var an=0,We=function(Wu,bt){return o(rn(Wu,_v,Pn),Wu,bt)},Ae=an,cn=o(Me[1][2],Ge,We);var ve=Ae,Ie=[0,[3,cn]]}var en=lr([0,Ur],[0,ve],0);return[6,[0,[0,h0[1]],Ie,0,0,en]];case 0:case 9:case 12:case 13:case 25:var wn=A0(P0);if(typeof wn=="number"){var ln=0;if(25<=wn)if(29<=wn){if(wn===40){var Ce=[0,[2,cr(0,u(k0,0),P0)]];ln=1}}else 27<=wn&&(ln=2);else if(wn===15){var Ce=[0,[1,cr(0,function(du){return o(e0,0,du)},P0)]];ln=1}else 24<=wn&&(ln=2);var Je=0;switch(ln){case 0:break;case 2:var nn=0;typeof wn=="number"?wn===27?je(P0,72):wn===28?je(P0,71):nn=1:nn=1;var Ce=[0,[0,cr(0,function(du){return o(l,du,0)},P0)]];Je=1;break;default:Je=1}if(Je)return[6,[0,0,Ce,0,0,lr([0,I0],0,0)]]}throw[0,Sn,f0e]}}var yn=A0(P0),Cn=0;typeof yn=="number"?yn===53?je(P0,74):yn===61?je(P0,73):Cn=1:Cn=1,X0(P0,0);var Yn=ur(U0,0,P0,0);X0(P0,1);var Fn=A0(P0),lt=0;if(typeof Fn!="number"&&Fn[0]===4&&!n0(Fn[3],i0e)){var Nt=u(E0,P0),Ft=Nt[2],ru=[0,Nt[1]];lt=1}if(!lt){o(b,P0,Yn);var qt=x(0,0,P0),Tt=qt[0]===0?qt[1]:qt[1][1],Ft=Tt,ru=0}return[6,[0,0,0,[0,[0,Yn]],ru,lr([0,I0],[0,Ft],0)]]}var U=0;return function(Y){return cr(U,I,Y)}}),[0,Rr,Ir,$0,B,Br,E,d,y,T,Ar,w0,X,M,Lr,p,R0,be,gr,m0,$r,K,P,i0,T0,A,b0,er]}(R9),Ge0=function(t){var n=function y(T,E){return y.fun(T,E)},e=function y(T,E){return y.fun(T,E)},i=function y(T,E){return y.fun(T,E)};N(n,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];if(S[0]===0){var M=S[1],K=M[2];switch(K[0]){case 0:var V=K[2],f0=K[1];switch(f0[0]){case 0:var m0=[0,f0[1]];break;case 1:var m0=[1,f0[1]];break;case 2:var m0=de(e0e);break;default:var m0=[2,f0[1]]}var k0=V[2],g0=0;if(k0[0]===2){var e0=k0[1];if(!e0[1]){var x0=[0,e0[3]],l=e0[2];g0=1}}if(!g0)var x0=0,l=o(i,y,V);var c0=[0,[0,[0,M[1],[0,m0,l,x0,K[3]]]],G];break;case 1:ue(y,[0,K[2][1],97]);var c0=G;break;default:ue(y,[0,K[2][1],n0e]);var c0=G}var G=c0,A=A[2];continue}var t0=S[1],o0=t0[1];if(A[2]){ue(y,[0,o0,66]);var A=A[2];continue}var w0=t0[2],_0=w0[2],G=[0,[1,[0,o0,[0,o(i,y,w0[1]),_0]]],G],A=0;continue}var E0=[0,[0,ye(G),w,d]];return[0,T[1],E0]}});function x(y,T){return u(se[23],T)?[0,o(i,y,T)]:(ue(y,[0,T[1],26]),0)}N(e,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];switch(S[0]){case 0:var M=S[1],K=M[2];if(K[0]===2){var V=K[1];if(!V[1]){var G=[0,[0,[0,M[1],[0,V[2],[0,V[3]]]]],G],A=A[2];continue}}var f0=x(y,M);if(f0)var m0=f0[1],k0=[0,[0,[0,m0[1],[0,m0,0]]],G];else var k0=G;var G=k0,A=A[2];continue;case 1:var g0=S[1],e0=g0[1];if(A[2]){ue(y,[0,e0,65]);var A=A[2];continue}var x0=g0[2],l=x(y,x0[1]),c0=l?[0,[1,[0,e0,[0,l[1],x0[2]]]],G]:G,G=c0,A=0;continue;default:var G=[0,[2,S[1]],G],A=A[2];continue}}var t0=[1,[0,ye(G),w,d]];return[0,T[1],t0]}}),N(i,function(y,T){var E=T[2],d=T[1];switch(E[0]){case 0:return o(e,y,[0,d,E[1]]);case 10:var w=E[1],G=w[2][1],A=w[1],S=0;if(y[5]&&js(G)?ue(y,[0,A,52]):S=1,S&&1-y[5]){var M=0;if(y[17]&&Hn(G,QQr)?ue(y,[0,A,93]):M=1,M){var K=y[18],V=K&&Hn(G,r0e);V&&ue(y,[0,A,92])}}return[0,d,[2,[0,w,a2(y),0]]];case 19:return o(n,y,[0,d,E[1]]);default:return[0,d,[3,[0,d,E]]]}});function c(y){function T(w){var G=A0(w);return typeof G=="number"&&G===82?(X0(w,82),[0,u(se[10],w)]):0}function E(w){var G=pr(w);X0(w,0);for(var A=0,S=0,M=0;;){var K=A0(w);if(typeof K=="number"){var V=0;if((K===1||Pn===K)&&(V=1),V){S&&ue(w,[0,S[1],98]);var f0=ye(M),m0=pr(w);X0(w,1);var k0=ke(w),g0=A0(w)===86?[1,u(t[9],w)]:a2(w);return[0,[0,f0,g0,yu([0,G],[0,k0],m0,0)]]}}if(A0(w)===12)var e0=pr(w),x0=cr(0,function(Jr){return X0(Jr,12),p(Jr,y)},w),l=lr([0,e0],0,0),c0=[0,[1,[0,x0[1],[0,x0[2],l]]]];else{var t0=De(w),o0=o(se[20],0,w),w0=A0(w),_0=0;if(typeof w0=="number"&&w0===86){X0(w,86);var E0=cr([0,t0],function(ar){var _r=p(ar,y);return[0,_r,T(ar)]},w),U0=E0[2],b=o0[2];switch(b[0]){case 0:var R0=[0,b[1]];break;case 1:var R0=[1,b[1]];break;case 2:var R0=de(WQr);break;default:var R0=[2,b[1]]}var c0=[0,[0,[0,E0[1],[0,R0,U0[1],U0[2],0]]]]}else _0=1;if(_0){var X=o0[2];if(X[0]===1){var s0=X[1],hr=s0[2][1],Ar=s0[1],or=0;kL(hr)&&n0(hr,$Qr)&&n0(hr,ZQr)&&(ue(w,[0,Ar,2]),or=1),!or&&f2(hr)&&V7(w,[0,Ar,55]);var W0=cr([0,t0],function(ar,_r){return function(Ir){var fe=[0,_r,[2,[0,ar,a2(Ir),0]]];return[0,fe,T(Ir)]}}(s0,Ar),w),Lr=W0[2],c0=[0,[0,[0,W0[1],[0,[1,s0],Lr[1],Lr[2],1]]]]}else{gt(JQr,w);var c0=0}}}if(c0){var Tr=c0[1],Hr=A?(ue(w,[0,Tr[1][1],66]),0):S;if(Tr[0]===0)var Rr=Hr,Wr=A;else var Or=A0(w)===9?1:0,fr=Or&&[0,De(w)],Rr=fr,Wr=1;A0(w)!==1&&X0(w,9);var A=Wr,S=Rr,M=[0,Tr,M];continue}}}var d=0;return function(w){return cr(d,E,w)}}function s(y){function T(d){var w=pr(d);X0(d,6);for(var G=0;;){var A=A0(d);if(typeof A=="number"){var S=0;if(13<=A)Pn===A&&(S=1);else if(7<=A)switch(A-7|0){case 2:var M=De(d);X0(d,9);var G=[0,[2,M],G];continue;case 5:var K=pr(d),V=cr(0,function(_0){return X0(_0,12),p(_0,y)},d),f0=V[1],m0=lr([0,K],0,0),k0=[1,[0,f0,[0,V[2],m0]]];A0(d)!==7&&(ue(d,[0,f0,65]),A0(d)===9&&ie(d));var G=[0,k0,G];continue;case 0:S=1;break}if(S){var g0=ye(G),e0=pr(d);X0(d,7);var x0=A0(d)===86?[1,u(t[9],d)]:a2(d);return[1,[0,g0,x0,yu([0,w],[0,ke(d)],e0,0)]]}}var l=cr(0,function(w0){var _0=p(w0,y),E0=A0(w0),U0=0;if(typeof E0=="number"&&E0===82){X0(w0,82);var b=[0,u(se[10],w0)];U0=1}if(!U0)var b=0;return[0,_0,b]},d),c0=l[2],t0=[0,[0,l[1],[0,c0[1],c0[2]]]];A0(d)!==7&&X0(d,9);var G=[0,t0,G]}}var E=0;return function(d){return cr(E,T,d)}}function p(y,T){var E=A0(y);if(typeof E=="number"){if(E===6)return u(s(T),y);if(!E)return u(c(T),y)}var d=ur(se[14],y,0,T);return[0,d[1],[2,d[2]]]}return[0,n,e,i,c,s,p]}(_n),nne=Jee(se),tne=_n[9];function Me0(t,n){var e=A0(n),i=0;if(typeof e=="number"?e===28?n[5]?je(n,55):n[14]&>(0,n):e===58?n[17]?je(n,2):n[5]&&je(n,55):e===65?n[18]&&je(n,2):i=1:i=1,i)if(dL(e))gi(n,55);else{var x=0;if(typeof e=="number")switch(e){case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 46:case 47:case 49:case 50:case 51:case 58:case 59:case 65:var c=1;x=1;break}else if(e[0]===4&&xe0(e[3])){var c=1;x=1}if(!x)var c=0;var s=0;if(c)var p=c;else{var y=hL(e);if(y)var p=y;else{var T=0;if(typeof e=="number")switch(e){case 29:case 30:case 31:break;default:T=1}else if(e[0]===4){var E=e[3];n0(E,URr)&&n0(E,HRr)&&n0(E,XRr)&&(T=1)}else T=1;if(T){var d=0;s=1}else var p=1}}if(!s)var d=p;if(d)gt(0,n);else{var w=0;t&&oe0(e)?gi(n,t[1]):w=1}}return z7(n)}var Be0=function t(n){return t.fun(n)},jL=function t(n,e,i){return t.fun(n,e,i)},GL=function t(n){return t.fun(n)},qe0=function t(n,e){return t.fun(n,e)},ML=function t(n,e){return t.fun(n,e)},BL=function t(n,e){return t.fun(n,e)},j9=function t(n,e){return t.fun(n,e)},xb=function t(n,e){return t.fun(n,e)},G9=function t(n){return t.fun(n)},Ue0=function t(n){return t.fun(n)},He0=function t(n){return t.fun(n)},Xe0=function t(n,e,i){return t.fun(n,e,i)},Ye0=function t(n){return t.fun(n)},Ve0=function t(n){return t.fun(n)},ze0=Us[3],une=ci[3],ine=ci[1],fne=ci[5],xne=Us[2],one=Us[1],ane=Us[4],cne=ci[4],sne=ci[6],vne=nne[13],lne=Ge0[6],bne=Ge0[3];N(Be0,function(t){var n=pr(t),e=ye(n),i=5;r:for(;;){if(e)for(var x=e[2],c=e[1],s=c[2],p=c[1],y=s[2],T=0,E=un(y);;){if(E<(T+5|0))var d=0;else{var w=Hn(m7(y,T,i),hRr);if(!w){var T=T+1|0;continue}var d=w}if(!d){var e=x;continue r}t[30][1]=p[3];var G=ye([0,[0,p,s],x]);break}else var G=e;if(G===0){var A=0;if(n){var S=n[1],M=S[2];if(!M[1]){var K=M[2],V=0;if(1<=un(K)&&It(K,0)===42){t[30][1]=S[1][3];var f0=[0,S,0];A=1,V=1}}}if(!A)var f0=0}else var f0=G;var m0=o(qe0,t,function(c0){return 0}),k0=De(t);X0(t,Pn);var g0=Mu[1];if(le(function(c0,t0){var o0=t0[2];switch(o0[0]){case 17:return fb(t,c0,Rc(0,[0,o0[1][1],fre]));case 18:var w0=o0[1],_0=w0[1];if(_0){if(!w0[2]){var E0=_0[1],U0=E0[2],b=0;switch(U0[0]){case 34:var R0=U0[1][1],X=0,s0=le(function(Tr,Hr){return le(RL,Tr,[0,Hr[2][1],0])},X,R0);return le(function(Tr,Hr){return fb(t,Tr,Hr)},c0,s0);case 2:case 23:var hr=U0[1][1];if(hr)var Ar=hr[1];else b=1;break;case 16:case 26:case 32:case 33:var Ar=U0[1][1];break;default:b=1}return b?c0:fb(t,c0,Rc(0,[0,E0[1],Ar[2][1]]))}}else{var or=w0[2];if(or){var W0=or[1];if(W0[0]===0){var Lr=W0[1];return le(function(Tr,Hr){var Or=Hr[2],fr=Or[2];return fr?fb(t,Tr,fr[1]):fb(t,Tr,Or[1])},c0,Lr)}return c0}}return c0;default:return c0}},g0,m0),m0)var e0=bl(ye(m0))[1],x0=ht(bl(m0)[1],e0);else var x0=k0;var l=ye(t[2][1]);return[0,x0,[0,m0,lr([0,f0],0,0),l]]}}),N(jL,function(t,n,e){for(var i=ee0(1,t),x=tre;;){var c=x[3],s=x[2],p=x[1],y=A0(i),T=0;if(typeof y=="number"&&Pn===y)var E=[0,i,p,s,c];else T=1;if(T)if(u(n,y))var E=[0,i,p,s,c];else{var d=0;if(typeof y=="number"||y[0]!==2)d=1;else{var w=u(e,i),G=[0,w,s],A=w[2];if(A[0]===19){var S=A[1][2];if(S){var M=Hn(S[1],nre),K=M&&1-i[20];K&&ue(i,[0,w[1],43]);var V=M?_s(1,i):i,f0=[0,y,p],m0=c||M,i=V,x=[0,f0,G,m0];continue}}var E=[0,i,p,G,c]}if(d)var E=[0,i,p,s,c]}var k0=ee0(0,i),g0=ye(p);return Du(function(e0){if(typeof e0!="number"&&e0[0]===2){var x0=e0[1],l=x0[4];return l&&V7(k0,[0,x0[1],45])}return de(Te(ire,Te(wr0(e0),ure)))},g0),[0,k0,E[3],c]}}),N(GL,function(t){var n=u(Us[6],t),e=A0(t);if(typeof e=="number"){var i=e-49|0;if(!(11>>0))switch(i){case 0:return o(dt[16],n,t);case 1:u(A9(t),n);var x=Kn(1,t);if(typeof x=="number"){var c=0;if((x===4||x===10)&&(c=1),c)return u(dt[17],t)}return u(dt[18],t);case 11:if(Kn(1,t)===49)return u(A9(t),n),o(dt[12],0,t);break}}return o(xb,[0,n],t)}),N(qe0,function(t,n){var e=ur(jL,t,n,GL),i=o(ML,n,e[1]),x=e[2];return le(function(c,s){return[0,s,c]},i,x)}),N(ML,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i=="number"&&Pn===i||u(t,i))return ye(e);var e=[0,u(GL,n),e]}}),N(BL,function(t,n){var e=ur(jL,n,t,function(s){return o(xb,0,s)}),i=o(j9,t,e[1]),x=e[2],c=le(function(s,p){return[0,p,s]},i,x);return[0,c,e[3]]}),N(j9,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i=="number"&&Pn===i||u(t,i))return ye(e);var e=[0,o(xb,0,n),e]}}),N(xb,function(t,n){var e=t&&t[1];1-$l(n)&&u(A9(n),e);var i=A0(n);if(typeof i=="number"){if(i===27)return u(dt[27],n);if(i===28)return u(dt[3],n)}if(Gs(n))return u(Wn[10],n);if($l(n))return o(ze0,n,e);if(typeof i=="number"){var x=i+$t|0;if(!(14>>0))switch(x){case 0:if(n[27][1])return u(Wn[11],n);break;case 5:return u(dt[19],n);case 12:return o(dt[11],0,n);case 13:return u(dt[25],n);case 14:return u(dt[21],n)}}return u(G9,n)}),N(G9,function(t){var n=A0(t);if(typeof n=="number")switch(n){case 0:return u(dt[7],t);case 8:return u(dt[15],t);case 19:return u(dt[22],t);case 20:return u(dt[23],t);case 22:return u(dt[24],t);case 23:return u(dt[4],t);case 24:return u(dt[26],t);case 25:return u(dt[5],t);case 26:return u(dt[6],t);case 32:return u(dt[8],t);case 35:return u(dt[9],t);case 37:return u(dt[14],t);case 39:return u(dt[1],t);case 59:return u(dt[10],t);case 113:return gt(Q0e,t),[0,De(t),rre];case 16:case 43:return u(dt[2],t);case 1:case 5:case 7:case 9:case 10:case 11:case 12:case 17:case 18:case 33:case 34:case 36:case 38:case 41:case 42:case 49:case 83:case 86:return gt(ere,t),ie(t),u(G9,t)}if(Gs(t)){var e=u(Wn[10],t);return M1(t,e[1]),e}if(typeof n=="number"&&n===28&&Kn(1,t)===6){var i=Wl(1,t);return ue(t,[0,ht(De(t),i),94]),u(dt[17],t)}return G1(t)?u(dt[20],t):($l(t)&&(gt(0,t),ie(t)),u(dt[17],t))}),N(Ue0,function(t){var n=De(t),e=u(ci[1],t),i=A0(t);return typeof i=="number"&&i===9?ur(ci[7],t,n,[0,e,0]):e}),N(He0,function(t){var n=De(t),e=u(ci[2],t),i=A0(t);if(typeof i=="number"&&i===9){var x=[0,o(R9[1],t,e),0];return[0,ur(ci[7],t,n,x)]}return e}),N(Xe0,function(t,n,e){var i=n&&n[1];return cr(0,function(x){var c=1-i,s=Me0([0,e],x),p=c&&(A0(x)===85?1:0);return p&&(1-xu(x)&&je(x,12),X0(x,85)),[0,s,u(_n[10],x),p]},t)}),N(Ye0,function(t){var n=De(t),e=pr(t);X0(t,0);var i=o(j9,function(y){return y===1?1:0},t),x=i===0?1:0,c=De(t),s=x&&pr(t);X0(t,1);var p=[0,i,yu([0,e],[0,ke(t)],s,0)];return[0,ht(n,c),p]}),N(Ve0,function(t){function n(i){var x=pr(i);X0(i,0);var c=o(BL,function(S){return S===1?1:0},i),s=c[1],p=s===0?1:0,y=p&&pr(i);X0(i,1);var T=A0(i),E=0;if(!t){var d=0;if(typeof T=="number"&&(T===1||Pn===T)&&(d=1),!d){var w=x7(i);if(w){var G=Ms(i);E=1}else{var G=w;E=1}}}if(!E)var G=ke(i);var A=yu([0,x],[0,G],y,0);return[0,[0,s,A],c[2]]}var e=0;return function(i){return gL(e,n,i)}}),mu(sre,se,[0,Be0,G9,xb,j9,BL,ML,Ue0,He0,une,ine,fne,xne,Me0,Xe0,Ye0,Ve0,vne,lne,bne,one,ze0,ane,cne,sne,tne]);var Ke0=[0,0],We0=pn;function pne(t){function n(e,i){var x=i[2],c=i[1],s=oL(x),p=[0,[0,vre,u(t[1],s)],0],y=C9(e,c[3]),T=[0,u(t[5],y),0],E=C9(e,c[2]),d=[0,u(t[5],E),T],w=[0,[0,lre,u(t[4],d)],p],G=[0,[0,bre,u(t[5],c[3][2])],0],A=[0,[0,pre,u(t[5],c[3][1])],G],S=[0,[0,mre,u(t[3],A)],0],M=[0,[0,_re,u(t[5],c[2][2])],0],K=[0,[0,yre,u(t[5],c[2][1])],M],V=[0,[0,hre,u(t[3],K)],S],f0=[0,[0,dre,u(t[3],V)],w];switch(i[3]){case 0:var m0=kre;break;case 1:var m0=wre;break;case 2:var m0=Ere;break;case 3:var m0=Sre;break;case 4:var m0=gre;break;default:var m0=Fre}var k0=[0,[0,Tre,u(t[1],m0)],f0],g0=wr0(x),e0=[0,[0,Ore,u(t[1],g0)],k0];return u(t[3],e0)}return[0,n,function(e,i){var x=ye(Fp(function(c){return n(e,c)},i));return u(t[4],x)}]}var mne=w70;function U1(t){return E70(_l(t))}function hu(t){return k70(_l(t))}function _ne(t){return t}function yne(t){return t}function Je0(t,n,e){try{var i=new RegExp(pn(n),pn(e));return i}catch{return i7}}var hne=pne([0,We0,mne,U1,hu,_ne,yne,i7,Je0]),dne=[0,1],$e0=function(t){function n(E,d){return hu(ye(Fp(E,d)))}function e(E,d){return d?u(E,d[1]):i7}function i(E,d){return d[0]===0?i7:u(E,d[1])}function x(E){return U1([0,[0,OWr,E[1]],[0,[0,TWr,E[2]],0]])}function c(E){var d=E[1],w=d?pn(d[1][1]):i7,G=[0,[0,SWr,x(E[3])],0];return U1([0,[0,FWr,w],[0,[0,gWr,x(E[2])],G]])}function s(E){return n(function(d){var w=d[2],G=0;if(typeof w=="number"){var A=w;if(55<=A)switch(A){case 55:var S=rmr;break;case 56:var S=emr;break;case 57:var S=nmr;break;case 58:var S=tmr;break;case 59:var S=umr;break;case 60:var S=imr;break;case 61:var S=Te(xmr,fmr);break;case 62:var S=Te(amr,omr);break;case 63:var S=Te(smr,cmr);break;case 64:var S=vmr;break;case 65:var S=lmr;break;case 66:var S=bmr;break;case 67:var S=pmr;break;case 68:var S=mmr;break;case 69:var S=_mr;break;case 70:var S=ymr;break;case 71:var S=hmr;break;case 72:var S=dmr;break;case 73:var S=kmr;break;case 74:var S=wmr;break;case 75:var S=Emr;break;case 76:var S=Smr;break;case 77:var S=gmr;break;case 78:var S=Fmr;break;case 79:var S=Tmr;break;case 80:var S=Omr;break;case 81:var S=Imr;break;case 82:var S=Te(Nmr,Amr);break;case 83:var S=Cmr;break;case 84:var S=Pmr;break;case 85:var S=Dmr;break;case 86:var S=Lmr;break;case 87:var S=Rmr;break;case 88:var S=jmr;break;case 89:var S=Gmr;break;case 90:var S=Mmr;break;case 91:var S=Bmr;break;case 92:var S=qmr;break;case 93:var S=Umr;break;case 94:var S=Te(Xmr,Hmr);break;case 95:var S=Ymr;break;case 96:var S=Vmr;break;case 97:var S=zmr;break;case 98:var S=Kmr;break;case 99:var S=Wmr;break;case 100:var S=Jmr;break;case 101:var S=$mr;break;case 102:var S=Zmr;break;case 103:var S=Qmr;break;case 104:var S=r9r;break;case 105:var S=e9r;break;case 106:var S=n9r;break;case 107:var S=t9r;break;default:var S=u9r}else switch(A){case 0:var S=Zpr;break;case 1:var S=Qpr;break;case 2:var S=r5r;break;case 3:var S=e5r;break;case 4:var S=n5r;break;case 5:var S=t5r;break;case 6:var S=u5r;break;case 7:var S=i5r;break;case 8:var S=f5r;break;case 9:var S=x5r;break;case 10:var S=o5r;break;case 11:var S=a5r;break;case 12:var S=c5r;break;case 13:var S=s5r;break;case 14:var S=v5r;break;case 15:var S=l5r;break;case 16:var S=b5r;break;case 17:var S=p5r;break;case 18:var S=m5r;break;case 19:var S=_5r;break;case 20:var S=y5r;break;case 21:var S=h5r;break;case 22:var S=d5r;break;case 23:var S=k5r;break;case 24:var S=w5r;break;case 25:var S=E5r;break;case 26:var S=S5r;break;case 27:var S=g5r;break;case 28:var S=F5r;break;case 29:var S=T5r;break;case 30:var S=O5r;break;case 31:var S=Te(A5r,I5r);break;case 32:var S=N5r;break;case 33:var S=C5r;break;case 34:var S=P5r;break;case 35:var S=D5r;break;case 36:var S=L5r;break;case 37:var S=R5r;break;case 38:var S=j5r;break;case 39:var S=G5r;break;case 40:var S=M5r;break;case 41:var S=B5r;break;case 42:var S=q5r;break;case 43:var S=U5r;break;case 44:var S=H5r;break;case 45:var S=X5r;break;case 46:var S=Y5r;break;case 47:var S=V5r;break;case 48:var S=z5r;break;case 49:var S=K5r;break;case 50:var S=W5r;break;case 51:var S=J5r;break;case 52:var S=$5r;break;case 53:var S=Z5r;break;default:var S=Q5r}}else switch(w[0]){case 0:var M=w[2],K=w[1],S=ur(nt(i9r),M,M,K);break;case 1:var V=w[1],f0=w[2],S=o(nt(f9r),f0,V);break;case 2:var m0=w[1],S=u(nt(x9r),m0);break;case 3:var k0=w[2],g0=w[1],e0=u(nt(o9r),g0);if(k0)var x0=k0[1],S=o(nt(a9r),x0,e0);else var S=u(nt(c9r),e0);break;case 4:var l=w[1],S=o(nt(s9r),l,l);break;case 5:var c0=w[3],t0=w[2],o0=w[1];if(t0){var w0=t0[1];if(3<=w0)var S=o(nt(v9r),c0,o0);else{switch(w0){case 0:var _0=Kpr;break;case 1:var _0=Wpr;break;case 2:var _0=Jpr;break;default:var _0=$pr}var S=R(nt(l9r),o0,_0,c0,_0)}}else var S=o(nt(b9r),c0,o0);break;case 6:var E0=w[2],U0=E0;if(b7(U0)===0)var b=U0;else{var R0=sz(U0);Qn(R0,0,xz(Xu(U0,0)));var b=R0}var X=b,s0=w[1],S=ur(nt(p9r),E0,X,s0);break;case 7:var S=w[1]?m9r:_9r;break;case 8:var hr=w[1],Ar=w[2],S=o(nt(y9r),Ar,hr);break;case 9:var or=w[1],S=u(nt(h9r),or);break;case 10:var W0=w[1],S=u(nt(d9r),W0);break;case 11:var Lr=w[2],Tr=w[1],S=o(nt(k9r),Tr,Lr);break;case 12:var Hr=w[2],Or=w[1],S=o(nt(w9r),Or,Hr);break;case 13:var S=Te(S9r,Te(w[1],E9r));break;case 14:var fr=w[1]?g9r:F9r,S=u(nt(T9r),fr);break;case 15:var S=Te(I9r,Te(w[1],O9r));break;case 16:var Rr=Te(N9r,Te(w[2],A9r)),S=Te(w[1],Rr);break;case 17:var S=Te(C9r,w[1]);break;case 18:var S=w[1]?Te(D9r,P9r):Te(R9r,L9r);break;case 19:var Wr=w[1],S=u(nt(j9r),Wr);break;case 20:var S=Te(M9r,Te(w[1],G9r));break;case 21:var Jr=w[1],ar=w[2]?B9r:q9r,_r=w[4]?Te(U9r,Jr):Jr,Ir=w[3]?H9r:X9r,S=Te(z9r,Te(ar,Te(Ir,Te(V9r,Te(_r,Y9r)))));break;case 22:var S=Te(W9r,Te(w[1],K9r));break;default:var fe=w[1],S=u(nt(J9r),fe)}var v0=[0,[0,wWr,pn(S)],G];return U1([0,[0,EWr,c(d[1])],v0])},E)}function p(E){if(E){var d=E[1],w=[0,on(d[3],d[2])];return lr([0,d[1]],w,0)}return E}function y(E){function d(_){return n(q0,_)}function w(_,k,I,U){var Y=t[1];if(Y){if(E)var y0=E[1],P0=[0,C9(y0,k[3]),0],I0=[0,[0,tGr,hu([0,C9(y0,k[2]),P0])],0];else var I0=E;var D=on(I0,[0,[0,uGr,c(k)],0])}else var D=Y;if(I){var u0=I[1],H0=u0[1];if(H0){var J0=u0[2];if(J0)var ir=[0,[0,iGr,d(J0)],0],Q0=[0,[0,fGr,d(H0)],ir];else var Q0=[0,[0,xGr,d(H0)],0];var mr=Q0}else var F0=u0[2],Sr=F0&&[0,[0,oGr,d(F0)],0],mr=Sr;var Cr=mr}else var Cr=I;return U1(Lc(on(D,on(Cr,[0,[0,aGr,pn(_)],0])),U))}function G(_){return n(Q,_)}function A(_){var k=_[2],I=G(k[1]),U=[0,[0,sGr,I],[0,[0,cGr,d(k[3])],0]];return w(vGr,_[1],k[2],U)}function S(_){var k=_[2];return w(Xqr,_[1],k[2],[0,[0,Hqr,pn(k[1])],[0,[0,Uqr,i7],[0,[0,qqr,!1],0]]])}function M(_){if(_[0]===0)return S(_[1]);var k=_[1],I=k[2],U=M(I[1]),Y=[0,[0,jzr,U],[0,[0,Rzr,S(I[2])],0]];return w(Gzr,k[1],0,Y)}function K(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,dzr,U],[0,[0,hzr,S(k[2])],0]];return w(kzr,_[1],0,Y)}function V(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,Ezr,U],[0,[0,wzr,e($r,k[2])],0]];return w(Szr,_[1],k[3],Y)}function f0(_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(typeof U=="number")var y0=i7;else switch(U[0]){case 0:var y0=pn(U[1]);break;case 1:var y0=!!U[1];break;case 2:var y0=U[1];break;case 3:var y0=de(vYr);break;default:var P0=U[1],y0=Je0(Y,P0[1],P0[2])}var I0=0;if(typeof U!="number"&&U[0]===4){var D=U[1],u0=[0,[0,pYr,U1([0,[0,bYr,pn(D[1])],[0,[0,lYr,pn(D[2])],0]])],0],H0=[0,[0,_Yr,y0],[0,[0,mYr,pn(I)],u0]];I0=1}if(!I0)var H0=[0,[0,hYr,y0],[0,[0,yYr,pn(I)],0]];return w(dYr,Y,k[3],H0)}function m0(_){var k=[0,[0,gzr,g0(_[2])],0];return[0,[0,Fzr,g0(_[1])],k]}function k0(_,k){var I=k[2],U=[0,[0,kVr,!!I[3]],0],Y=[0,[0,wVr,g0(I[2])],U],y0=[0,[0,EVr,e(S,I[1])],Y];return w(SVr,k[1],_,y0)}function g0(_){var k=_[2],I=_[1];switch(k[0]){case 0:return w(tVr,I,k[1],0);case 1:return w(uVr,I,k[1],0);case 2:return w(iVr,I,k[1],0);case 3:return w(fVr,I,k[1],0);case 4:return w(xVr,I,k[1],0);case 5:return w(aVr,I,k[1],0);case 6:return w(cVr,I,k[1],0);case 7:return w(sVr,I,k[1],0);case 8:return w(vVr,I,k[1],0);case 9:return w(oVr,I,k[1],0);case 10:return w(eKr,I,k[1],0);case 11:var U=k[1],Y=[0,[0,lVr,g0(U[1])],0];return w(bVr,I,U[2],Y);case 12:return e0([0,I,k[1]]);case 13:return x0(1,[0,I,k[1]]);case 14:var y0=k[1],P0=[0,[0,bzr,x0(0,y0[1])],0],I0=[0,[0,pzr,n(fe,y0[2])],P0];return w(mzr,I,y0[3],I0);case 15:var D=k[1],u0=[0,[0,_zr,g0(D[1])],0];return w(yzr,I,D[2],u0);case 16:return V([0,I,k[1]]);case 17:var H0=k[1],J0=m0(H0);return w(Tzr,I,H0[3],J0);case 18:var ir=k[1],Q0=ir[1],F0=[0,[0,Ozr,!!ir[2]],0],Sr=on(m0(Q0),F0);return w(Izr,I,Q0[3],Sr);case 19:var mr=k[1],Cr=mr[1],sr=[0,[0,Azr,n(g0,[0,Cr[1],[0,Cr[2],Cr[3]]])],0];return w(Nzr,I,mr[2],sr);case 20:var Pr=k[1],K0=Pr[1],Ur=[0,[0,Czr,n(g0,[0,K0[1],[0,K0[2],K0[3]]])],0];return w(Pzr,I,Pr[2],Ur);case 21:var h0=k[1],Kr=[0,[0,Dzr,M(h0[1])],0];return w(Lzr,I,h0[2],Kr);case 22:var re=k[1],xe=[0,[0,Mzr,n(g0,re[1])],0];return w(Bzr,I,re[2],xe);case 23:var Re=k[1];return w(Hzr,I,Re[3],[0,[0,Uzr,pn(Re[1])],[0,[0,qzr,pn(Re[2])],0]]);case 24:var ve=k[1];return w(Vzr,I,ve[3],[0,[0,Yzr,ve[1]],[0,[0,Xzr,pn(ve[2])],0]]);case 25:var Ie=k[1];return w(Wzr,I,Ie[3],[0,[0,Kzr,i7],[0,[0,zzr,pn(Ie[2])],0]]);default:var Ge=k[1],Me=Ge[1],an=0,We=Me?Jzr:$zr;return w(rKr,I,Ge[2],[0,[0,Qzr,!!Me],[0,[0,Zzr,pn(We)],an]])}}function e0(_){var k=_[2],I=k[2][2],U=k[4],Y=y7(p(I[4]),U),y0=[0,[0,pVr,e(qr,k[1])],0],P0=[0,[0,mVr,e(Mr,I[3])],y0],I0=[0,[0,_Vr,g0(k[3])],P0],D=[0,[0,yVr,e(Br,I[1])],I0],u0=I[2],H0=[0,[0,hVr,n(function(J0){return k0(0,J0)},u0)],D];return w(dVr,_[1],Y,H0)}function x0(_,k){var I=k[2],U=I[3],Y=le(function(ir,Q0){var F0=ir[4],Sr=ir[3],mr=ir[2],Cr=ir[1];switch(Q0[0]){case 0:var sr=Q0[1],Pr=sr[2],K0=Pr[2],Ur=Pr[1];switch(Ur[0]){case 0:var h0=f0(Ur[1]);break;case 1:var h0=S(Ur[1]);break;case 2:var h0=de(jVr);break;default:var h0=de(GVr)}switch(K0[0]){case 0:var xe=MVr,Re=g0(K0[1]);break;case 1:var Kr=K0[1],xe=BVr,Re=e0([0,Kr[1],Kr[2]]);break;default:var re=K0[1],xe=qVr,Re=e0([0,re[1],re[2]])}var ve=[0,[0,UVr,pn(xe)],0],Ie=[0,[0,HVr,e(Er,Pr[7])],ve];return[0,[0,w(JVr,sr[1],Pr[8],[0,[0,WVr,h0],[0,[0,KVr,Re],[0,[0,zVr,!!Pr[6]],[0,[0,VVr,!!Pr[3]],[0,[0,YVr,!!Pr[4]],[0,[0,XVr,!!Pr[5]],Ie]]]]]]),Cr],mr,Sr,F0];case 1:var Ge=Q0[1],Me=Ge[2],an=[0,[0,$Vr,g0(Me[1])],0];return[0,[0,w(ZVr,Ge[1],Me[2],an),Cr],mr,Sr,F0];case 2:var We=Q0[1],Ae=We[2],cn=[0,[0,QVr,e(Er,Ae[5])],0],en=[0,[0,rzr,!!Ae[4]],cn],wn=[0,[0,ezr,g0(Ae[3])],en],ln=[0,[0,nzr,g0(Ae[2])],wn],Ce=[0,[0,tzr,e(S,Ae[1])],ln];return[0,Cr,[0,w(uzr,We[1],Ae[6],Ce),mr],Sr,F0];case 3:var Je=Q0[1],nn=Je[2],yn=[0,[0,izr,!!nn[2]],0],Cn=[0,[0,fzr,e0(nn[1])],yn];return[0,Cr,mr,[0,w(xzr,Je[1],nn[3],Cn),Sr],F0];default:var Yn=Q0[1],Fn=Yn[2],lt=[0,[0,ozr,g0(Fn[2])],0],Nt=[0,[0,szr,!!Fn[3]],[0,[0,czr,!!Fn[4]],[0,[0,azr,!!Fn[5]],lt]]],Ft=[0,[0,vzr,S(Fn[1])],Nt];return[0,Cr,mr,Sr,[0,w(lzr,Yn[1],Fn[6],Ft),F0]]}},IVr,U),y0=[0,[0,AVr,hu(ye(Y[4]))],0],P0=[0,[0,NVr,hu(ye(Y[3]))],y0],I0=[0,[0,CVr,hu(ye(Y[2]))],P0],D=[0,[0,PVr,hu(ye(Y[1]))],I0],u0=[0,[0,DVr,!!I[1]],D],H0=_?[0,[0,LVr,!!I[2]],u0]:u0,J0=p(I[4]);return w(RVr,k[1],J0,H0)}function l(_){var k=[0,[0,nKr,g0(_[2])],0];return w(tKr,_[1],0,k)}function c0(_){var k=_[2];switch(k[2]){case 0:var I=VYr;break;case 1:var I=zYr;break;default:var I=KYr}var U=[0,[0,WYr,pn(I)],0],Y=[0,[0,JYr,n($0,k[1])],U];return w($Yr,_[1],k[3],Y)}function t0(_){var k=_[2];return w(IYr,_[1],k[3],[0,[0,OYr,pn(k[1])],[0,[0,TYr,pn(k[2])],0]])}function o0(_){var k=_[2],I=[0,[0,TXr,i1],[0,[0,FXr,l(k[1])],0]];return w(OXr,_[1],k[2],I)}function w0(_,k){var I=k[1][2],U=[0,[0,Wqr,!!k[3]],0],Y=[0,[0,Jqr,i(l,k[2])],U];return w(Zqr,_,I[2],[0,[0,$qr,pn(I[1])],Y])}function _0(_){var k=_[2];return w(Kqr,_[1],k[2],[0,[0,zqr,pn(k[1])],[0,[0,Vqr,i7],[0,[0,Yqr,!1],0]]])}function E0(_){return n(M0,_[2][1])}function U0(_){var k=_[2],I=[0,[0,dKr,w(NKr,k[2],0,0)],0],U=[0,[0,kKr,n(oe,k[3][2])],I],Y=[0,[0,wKr,w(OKr,k[1],0,0)],U];return w(EKr,_[1],k[4],Y)}function b(_){var k=_[2];return w(ZKr,_[1],k[2],[0,[0,$Kr,pn(k[1])],0])}function R0(_){var k=_[2],I=[0,[0,KKr,b(k[2])],0],U=[0,[0,WKr,b(k[1])],I];return w(JKr,_[1],0,U)}function X(_){var k=_[2],I=k[1],U=I[0]===0?b(I[1]):X(I[1]),Y=[0,[0,VKr,U],[0,[0,YKr,b(k[2])],0]];return w(zKr,_[1],0,Y)}function s0(_){switch(_[0]){case 0:return b(_[1]);case 1:return R0(_[1]);default:return X(_[1])}}function hr(_){var k=_[2],I=[0,[0,mKr,n(oe,k[3][2])],0],U=[0,[0,_Kr,e(ae,k[2])],I],Y=k[1],y0=Y[2],P0=[0,[0,SKr,!!y0[2]],0],I0=[0,[0,gKr,n(be,y0[3])],P0],D=[0,[0,FKr,s0(y0[1])],I0],u0=[0,[0,yKr,w(TKr,Y[1],0,D)],U];return w(hKr,_[1],k[4],u0)}function Ar(_){var k=_[2],I=[0,[0,LYr,n(fr,k[2])],0],U=[0,[0,RYr,n(vr,k[1])],I];return w(jYr,_[1],k[3],U)}function or(_,k){var I=k[2],U=I[7],Y=I[5],y0=I[4];if(y0)var P0=y0[1][2],I0=y7(P0[3],U),D=I0,u0=P0[2],H0=[0,P0[1]];else var D=U,u0=0,H0=0;if(Y)var J0=Y[1][2],ir=y7(J0[2],D),Q0=ir,F0=n(T0,J0[1]);else var Q0=D,F0=hu(0);var Sr=[0,[0,YUr,F0],[0,[0,XUr,n(S0,I[6])],0]],mr=[0,[0,VUr,e($r,u0)],Sr],Cr=[0,[0,zUr,e(fr,H0)],mr],sr=[0,[0,KUr,e(qr,I[3])],Cr],Pr=I[2],K0=Pr[2],Ur=[0,[0,nHr,n(rr,K0[1])],0],h0=[0,[0,WUr,w(tHr,Pr[1],K0[2],Ur)],sr],Kr=[0,[0,JUr,e(S,I[1])],h0];return w(_,k[1],Q0,Kr)}function W0(_){var k=_[2],I=[0,[0,iUr,G(k[1])],0],U=p(k[2]);return w(fUr,_[1],U,I)}function Lr(_){var k=_[2];switch(k[0]){case 0:var I=0,U=S(k[1]);break;case 1:var I=0,U=_0(k[1]);break;default:var I=1,U=fr(k[1])}return[0,[0,kWr,fr(_[1])],[0,[0,dWr,U],[0,[0,hWr,!!I],0]]]}function Tr(_){var k=[0,[0,mWr,E0(_[3])],0],I=[0,[0,_Wr,e(ne,_[2])],k];return[0,[0,yWr,fr(_[1])],I]}function Hr(_){var k=_[2],I=k[3],U=k[2],Y=k[1];if(I){var y0=I[1],P0=y0[2],I0=[0,[0,IXr,Or(P0[1])],0],D=w(AXr,y0[1],P0[2],I0),u0=ye([0,D,Fp(L0,U)]),H0=Y?[0,o0(Y[1]),u0]:u0;return hu(H0)}var J0=d1(L0,U),ir=Y?[0,o0(Y[1]),J0]:J0;return hu(ir)}function Or(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,_Xr,i(l,U[2])],0],y0=[0,[0,yXr,n(b0,U[1])],Y];return w(hXr,I,p(U[3]),y0);case 1:var P0=k[1],I0=[0,[0,dXr,i(l,P0[2])],0],D=[0,[0,kXr,n(Z,P0[1])],I0];return w(wXr,I,p(P0[3]),D);case 2:return w0(I,k[1]);default:return fr(k[1])}}function fr(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,UMr,n(er,U[1])],0];return w(HMr,I,p(U[2]),Y);case 1:var y0=k[1],P0=y0[7],I0=y0[3],D=y0[2];if(I0[0]===0)var u0=0,H0=W0(I0[1]);else var u0=1,H0=fr(I0[1]);var J0=P0[0]===0?0:[0,P0[1]],ir=y0[9],Q0=y7(p(D[2][4]),ir),F0=[0,[0,XMr,e(qr,y0[8])],0],Sr=[0,[0,VMr,!!u0],[0,[0,YMr,e(l,J0)],F0]],mr=[0,[0,KMr,!1],[0,[0,zMr,e(gr,y0[6])],Sr]],Cr=[0,[0,JMr,H0],[0,[0,WMr,!!y0[4]],mr]];return w(QMr,I,Q0,[0,[0,ZMr,i7],[0,[0,$Mr,Hr(D)],Cr]]);case 2:var sr=k[1],Pr=sr[1];if(Pr){switch(Pr[1]){case 0:var K0=gpr;break;case 1:var K0=Fpr;break;case 2:var K0=Tpr;break;case 3:var K0=Opr;break;case 4:var K0=Ipr;break;case 5:var K0=Apr;break;case 6:var K0=Npr;break;case 7:var K0=Cpr;break;case 8:var K0=Ppr;break;case 9:var K0=Dpr;break;case 10:var K0=Lpr;break;case 11:var K0=Rpr;break;case 12:var K0=jpr;break;case 13:var K0=Gpr;break;default:var K0=Mpr}var Ur=K0}else var Ur=rBr;var h0=[0,[0,eBr,fr(sr[3])],0],Kr=[0,[0,nBr,Or(sr[2])],h0];return w(uBr,I,sr[4],[0,[0,tBr,pn(Ur)],Kr]);case 3:var re=k[1],xe=[0,[0,iBr,fr(re[3])],0],Re=[0,[0,fBr,fr(re[2])],xe];switch(re[1]){case 0:var ve=tpr;break;case 1:var ve=upr;break;case 2:var ve=ipr;break;case 3:var ve=fpr;break;case 4:var ve=xpr;break;case 5:var ve=opr;break;case 6:var ve=apr;break;case 7:var ve=cpr;break;case 8:var ve=spr;break;case 9:var ve=vpr;break;case 10:var ve=lpr;break;case 11:var ve=bpr;break;case 12:var ve=ppr;break;case 13:var ve=mpr;break;case 14:var ve=_pr;break;case 15:var ve=ypr;break;case 16:var ve=hpr;break;case 17:var ve=dpr;break;case 18:var ve=kpr;break;case 19:var ve=wpr;break;case 20:var ve=Epr;break;default:var ve=Spr}return w(oBr,I,re[4],[0,[0,xBr,pn(ve)],Re]);case 4:var Ie=k[1],Ge=Ie[4],Me=y7(p(Ie[3][2][2]),Ge);return w(aBr,I,Me,Tr(Ie));case 5:return or(HUr,[0,I,k[1]]);case 6:var an=k[1],We=[0,[0,cBr,e(fr,an[2])],0];return w(vBr,I,0,[0,[0,sBr,n(yr,an[1])],We]);case 7:var Ae=k[1],cn=[0,[0,lBr,fr(Ae[3])],0],en=[0,[0,bBr,fr(Ae[2])],cn],wn=[0,[0,pBr,fr(Ae[1])],en];return w(mBr,I,Ae[4],wn);case 8:return Rr([0,I,k[1]]);case 9:var ln=k[1],Ce=[0,[0,_Br,e(fr,ln[2])],0];return w(hBr,I,0,[0,[0,yBr,n(yr,ln[1])],Ce]);case 10:return S(k[1]);case 11:var Je=k[1],nn=[0,[0,dBr,fr(Je[1])],0];return w(kBr,I,Je[2],nn);case 12:return hr([0,I,k[1]]);case 13:return U0([0,I,k[1]]);case 14:var yn=k[1],Cn=yn[1];return typeof Cn!="number"&&Cn[0]===3?w(FYr,I,yn[3],[0,[0,gYr,i7],[0,[0,SYr,pn(yn[2])],0]]):f0([0,I,yn]);case 15:var Yn=k[1];switch(Yn[1]){case 0:var Fn=wBr;break;case 1:var Fn=EBr;break;default:var Fn=SBr}var lt=[0,[0,gBr,fr(Yn[3])],0],Nt=[0,[0,FBr,fr(Yn[2])],lt];return w(OBr,I,Yn[4],[0,[0,TBr,pn(Fn)],Nt]);case 16:var Ft=k[1],ru=Lr(Ft);return w(IBr,I,Ft[3],ru);case 17:var qt=k[1],Tt=[0,[0,ABr,S(qt[2])],0],Ct=[0,[0,NBr,S(qt[1])],Tt];return w(CBr,I,qt[3],Ct);case 18:var du=k[1],Wu=du[4],bt=du[3];if(bt)var au=bt[1],Bu=y7(p(au[2][2]),Wu),K7=Bu,Yi=E0(au);else var K7=Wu,Yi=hu(0);var a7=[0,[0,DBr,e(ne,du[2])],[0,[0,PBr,Yi],0]];return w(RBr,I,K7,[0,[0,LBr,fr(du[1])],a7]);case 19:var Hc=k[1],W7=[0,[0,jBr,n(p0,Hc[1])],0];return w(GBr,I,p(Hc[2]),W7);case 20:var Ut=k[1],pt=Ut[1],B0=pt[4],D0=y7(p(pt[3][2][2]),B0),Le=[0,[0,MBr,!!Ut[3]],0];return w(BBr,I,D0,on(Tr(pt),Le));case 21:var He=k[1],he=He[1],me=[0,[0,qBr,!!He[3]],0],et=on(Lr(he),me);return w(UBr,I,he[3],et);case 22:var En=k[1],xt=[0,[0,HBr,n(fr,En[1])],0];return w(XBr,I,En[2],xt);case 23:return w(YBr,I,k[1][1],0);case 24:var ot=k[1],jn=[0,[0,HYr,Ar(ot[2])],0],ut=[0,[0,XYr,fr(ot[1])],jn];return w(YYr,I,ot[3],ut);case 25:return Ar([0,I,k[1]]);case 26:return w(VBr,I,k[1][1],0);case 27:var kt=k[1],xn=[0,[0,zBr,l(kt[2])],0],bn=[0,[0,KBr,fr(kt[1])],xn];return w(WBr,I,kt[3],bn);case 28:var it=k[1],Ot=it[3],Ti=it[2],hs=it[1];if(7<=hs)return w($Br,I,Ot,[0,[0,JBr,fr(Ti)],0]);switch(hs){case 0:var Au=ZBr;break;case 1:var Au=QBr;break;case 2:var Au=rqr;break;case 3:var Au=eqr;break;case 4:var Au=nqr;break;case 5:var Au=tqr;break;case 6:var Au=uqr;break;default:var Au=de(iqr)}var Hs=[0,[0,xqr,!0],[0,[0,fqr,fr(Ti)],0]];return w(aqr,I,Ot,[0,[0,oqr,pn(Au)],Hs]);case 29:var Vi=k[1],Xs=Vi[1]?cqr:sqr,Ys=[0,[0,vqr,!!Vi[3]],0],tn=[0,[0,lqr,fr(Vi[2])],Ys];return w(pqr,I,Vi[4],[0,[0,bqr,pn(Xs)],tn]);default:var si=k[1],Vs=[0,[0,mqr,!!si[3]],0],c2=[0,[0,_qr,e(fr,si[1])],Vs];return w(yqr,I,si[2],c2)}}function Rr(_){var k=_[2],I=k[7],U=k[3],Y=k[2],y0=U[0]===0?U[1]:de(Aqr),P0=I[0]===0?0:[0,I[1]],I0=k[9],D=y7(p(Y[2][4]),I0),u0=[0,[0,Nqr,e(qr,k[8])],0],H0=[0,[0,Pqr,!1],[0,[0,Cqr,e(l,P0)],u0]],J0=[0,[0,Dqr,e(gr,k[6])],H0],ir=[0,[0,Rqr,!!k[4]],[0,[0,Lqr,!!k[5]],J0]],Q0=[0,[0,jqr,W0(y0)],ir],F0=[0,[0,Gqr,Hr(Y)],Q0],Sr=[0,[0,Mqr,e(S,k[1])],F0];return w(Bqr,_[1],D,Sr)}function Wr(_){var k=_[2],I=[0,[0,aXr,n(fe,k[3])],0],U=[0,[0,cXr,x0(0,k[4])],I],Y=[0,[0,sXr,e(qr,k[2])],U],y0=[0,[0,vXr,S(k[1])],Y];return w(lXr,_[1],k[5],y0)}function Jr(_,k){var I=k[2],U=_?RUr:jUr,Y=[0,[0,GUr,e(g0,I[4])],0],y0=[0,[0,MUr,e(g0,I[3])],Y],P0=[0,[0,BUr,e(qr,I[2])],y0],I0=[0,[0,qUr,S(I[1])],P0];return w(U,k[1],I[5],I0)}function ar(_){var k=_[2],I=[0,[0,CUr,g0(k[3])],0],U=[0,[0,PUr,e(qr,k[2])],I],Y=[0,[0,DUr,S(k[1])],U];return w(LUr,_[1],k[4],Y)}function _r(_){if(_){var k=_[1];if(k[0]===0)return n(ge,k[1]);var I=k[1],U=I[2];if(U){var Y=[0,[0,FUr,S(U[1])],0];return hu([0,w(TUr,I[1],0,Y),0])}return hu(0)}return hu(0)}function Ir(_){return _?SUr:gUr}function fe(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,pXr,U],[0,[0,bXr,e($r,k[2])],0]];return w(mXr,_[1],k[3],Y)}function v0(_){var k=_[2],I=k[6],U=k[4],Y=hu(U?[0,fe(U[1]),0]:0),y0=I?n(T0,I[1][2][1]):hu(0),P0=[0,[0,bUr,Y],[0,[0,lUr,y0],[0,[0,vUr,n(fe,k[5])],0]]],I0=[0,[0,pUr,x0(0,k[3])],P0],D=[0,[0,mUr,e(qr,k[2])],I0],u0=[0,[0,_Ur,S(k[1])],D];return w(yUr,_[1],k[7],u0)}function P(_){var k=_[2],I=k[2],U=k[1],Y=ht(U[1],I[1]),y0=[0,[0,aUr,e(gr,k[3])],0],P0=[0,[0,cUr,w0(Y,[0,U,[1,I],0])],y0];return w(sUr,_[1],k[4],P0)}function L(_){var k=_[2],I=k[2],U=k[1],Y=[0,[0,xUr,w0(ht(U[1],I[1]),[0,U,[1,I],0])],0];return w(oUr,_[1],k[3],Y)}function Q(_){var k=_[2],I=_[1];switch(k[0]){case 0:return W0([0,I,k[1]]);case 1:var U=k[1],Y=[0,[0,lGr,e(S,U[1])],0];return w(bGr,I,U[2],Y);case 2:return or(UUr,[0,I,k[1]]);case 3:var y0=k[1],P0=[0,[0,pGr,e(S,y0[1])],0];return w(mGr,I,y0[2],P0);case 4:return w(_Gr,I,k[1][1],0);case 5:return v0([0,I,k[1]]);case 6:var I0=k[1],D=I0[5],u0=I0[4],H0=I0[3],J0=I0[2];if(H0){var ir=H0[1];if(ir[0]!==0&&!ir[1][2])return w(hGr,I,D,[0,[0,yGr,e(t0,u0)],0])}if(J0){var Q0=J0[1];switch(Q0[0]){case 0:var F0=L(Q0[1]);break;case 1:var F0=P(Q0[1]);break;case 2:var F0=v0(Q0[1]);break;case 3:var F0=g0(Q0[1]);break;case 4:var F0=ar(Q0[1]);break;case 5:var F0=Jr(1,Q0[1]);break;default:var F0=Wr(Q0[1])}var Sr=F0}else var Sr=i7;var mr=[0,[0,dGr,e(t0,u0)],0],Cr=[0,[0,wGr,Sr],[0,[0,kGr,_r(H0)],mr]],sr=I0[1],Pr=sr&&1;return w(SGr,I,D,[0,[0,EGr,!!Pr],Cr]);case 7:return P([0,I,k[1]]);case 8:var K0=k[1],Ur=[0,[0,hUr,n(fe,K0[3])],0],h0=[0,[0,dUr,x0(0,K0[4])],Ur],Kr=[0,[0,kUr,e(qr,K0[2])],h0],re=[0,[0,wUr,S(K0[1])],Kr];return w(EUr,I,K0[5],re);case 9:var xe=k[1],Re=xe[1],ve=Re[0]===0?S(Re[1]):t0(Re[1]),Ie=0,Ge=xe[3]?"ES":"CommonJS",Me=[0,[0,TGr,ve],[0,[0,FGr,W0(xe[2])],[0,[0,gGr,Ge],Ie]]];return w(OGr,I,xe[4],Me);case 10:var an=k[1],We=[0,[0,IGr,l(an[1])],0];return w(AGr,I,an[2],We);case 11:var Ae=k[1],cn=[0,[0,OUr,g0(Ae[3])],0],en=[0,[0,IUr,e(qr,Ae[2])],cn],wn=[0,[0,AUr,S(Ae[1])],en];return w(NUr,I,Ae[4],wn);case 12:return Jr(1,[0,I,k[1]]);case 13:return L([0,I,k[1]]);case 14:var ln=k[1],Ce=[0,[0,NGr,fr(ln[2])],0],Je=[0,[0,CGr,Q(ln[1])],Ce];return w(PGr,I,ln[3],Je);case 15:return w(DGr,I,k[1][1],0);case 16:var nn=k[1],yn=nn[2],Cn=yn[2],Yn=yn[1];switch(Cn[0]){case 0:var Fn=Cn[1],lt=[0,[0,VHr,!!Fn[2]],[0,[0,YHr,!!Fn[3]],0]],Nt=Fn[1],Ft=[0,[0,zHr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=w7[1],ev=0,Lb=Ki?AYr:NYr,nv=[0,[0,UHr,w(DYr,Ii[1],w7[2],[0,[0,PYr,!!Ki],[0,[0,CYr,pn(Lb)],0]])],ev],Rb=[0,[0,HHr,S(wu[1])],nv];return w(XHr,ku[1],0,Rb)},Nt)],lt],pt=w(KHr,Yn,p(Fn[4]),Ft);break;case 1:var ru=Cn[1],qt=[0,[0,JHr,!!ru[2]],[0,[0,WHr,!!ru[3]],0]],Tt=ru[1],Ct=[0,[0,$Hr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=[0,[0,MHr,w(EYr,Ii[1],w7[3],[0,[0,wYr,w7[1]],[0,[0,kYr,pn(w7[2])],0]])],0],ev=[0,[0,BHr,S(wu[1])],Ki];return w(qHr,ku[1],0,ev)},Tt)],qt],pt=w(ZHr,Yn,p(ru[4]),Ct);break;case 2:var du=Cn[1],Wu=du[1];if(Wu[0]===0)var bt=Wu[1],Bu=d1(function(ku){var wu=[0,[0,jHr,S(ku[2][1])],0];return w(GHr,ku[1],0,wu)},bt);else var au=Wu[1],Bu=d1(function(ku){var wu=ku[2],Ii=[0,[0,DHr,t0(wu[2])],0],w7=[0,[0,LHr,S(wu[1])],Ii];return w(RHr,ku[1],0,w7)},au);var K7=[0,[0,rXr,!!du[2]],[0,[0,QHr,!!du[3]],0]],Yi=[0,[0,eXr,hu(Bu)],K7],pt=w(nXr,Yn,p(du[4]),Yi);break;default:var a7=Cn[1],Hc=[0,[0,tXr,!!a7[2]],0],W7=a7[1],Ut=[0,[0,uXr,n(function(ku){var wu=[0,[0,CHr,S(ku[2][1])],0];return w(PHr,ku[1],0,wu)},W7)],Hc],pt=w(iXr,Yn,p(a7[3]),Ut)}var B0=[0,[0,xXr,S(nn[1])],[0,[0,fXr,pt],0]];return w(oXr,I,nn[3],B0);case 17:var D0=k[1],Le=D0[2],He=Le[0]===0?Q(Le[1]):fr(Le[1]),he=[0,[0,RGr,He],[0,[0,LGr,pn(Ir(1))],0]];return w(jGr,I,D0[3],he);case 18:var me=k[1],et=me[5],En=me[4],xt=me[3],ot=me[2];if(ot){var jn=ot[1];if(jn[0]!==0){var ut=[0,[0,GGr,pn(Ir(En))],0],kt=[0,[0,MGr,e(S,jn[1][2])],ut];return w(qGr,I,et,[0,[0,BGr,e(t0,xt)],kt])}}var xn=[0,[0,UGr,pn(Ir(En))],0],bn=[0,[0,HGr,e(t0,xt)],xn],it=[0,[0,XGr,_r(ot)],bn];return w(VGr,I,et,[0,[0,YGr,e(Q,me[1])],it]);case 19:var Ot=k[1],Ti=[0,[0,zGr,e(We0,Ot[2])],0],hs=[0,[0,KGr,fr(Ot[1])],Ti];return w(WGr,I,Ot[3],hs);case 20:var Au=k[1],Hs=function(ku){return ku[0]===0?c0(ku[1]):fr(ku[1])},Vi=[0,[0,JGr,Q(Au[4])],0],Xs=[0,[0,$Gr,e(fr,Au[3])],Vi],Ys=[0,[0,ZGr,e(fr,Au[2])],Xs],tn=[0,[0,QGr,e(Hs,Au[1])],Ys];return w(rMr,I,Au[5],tn);case 21:var si=k[1],Vs=si[1],c2=Vs[0]===0?c0(Vs[1]):Or(Vs[1]),M9=[0,[0,eMr,!!si[4]],0],B9=[0,[0,nMr,Q(si[3])],M9],q9=[0,[0,uMr,c2],[0,[0,tMr,fr(si[2])],B9]];return w(iMr,I,si[5],q9);case 22:var zs=k[1],s2=zs[1],U9=s2[0]===0?c0(s2[1]):Or(s2[1]),H9=[0,[0,fMr,!!zs[4]],0],X9=[0,[0,xMr,Q(zs[3])],H9],H1=[0,[0,aMr,U9],[0,[0,oMr,fr(zs[2])],X9]];return w(cMr,I,zs[5],H1);case 23:var vi=k[1],ab=vi[7],cb=vi[3],sb=vi[2],Y9=cb[0]===0?cb[1]:de(hqr),V9=ab[0]===0?0:[0,ab[1]],z9=vi[9],vb=y7(p(sb[2][4]),z9),K9=[0,[0,dqr,e(qr,vi[8])],0],W9=[0,[0,wqr,!1],[0,[0,kqr,e(l,V9)],K9]],J9=[0,[0,Eqr,e(gr,vi[6])],W9],$9=[0,[0,gqr,!!vi[4]],[0,[0,Sqr,!!vi[5]],J9]],lb=[0,[0,Fqr,W0(Y9)],$9],Z9=[0,[0,Tqr,Hr(sb)],lb];return w(Iqr,I,vb,[0,[0,Oqr,e(S,vi[1])],Z9]);case 24:var X1=k[1],v2=X1[3];if(v2){var bb=v2[1][2],pb=bb[2],mb=bb[1],On=mb[2],Gn=function(wu){return y7(wu,pb)};switch(On[0]){case 0:var Y1=On[1],_b=JD(Y1[2],pb),Mn=[0,[0,Y1[1],_b]];break;case 1:var yb=On[1],Q9=Gn(yb[2]),Mn=[1,[0,yb[1],Q9]];break;case 2:var Xc=On[1],r_=Gn(Xc[7]),Mn=[2,[0,Xc[1],Xc[2],Xc[3],Xc[4],Xc[5],Xc[6],r_]];break;case 3:var l2=On[1],hb=Gn(l2[2]),Mn=[3,[0,l2[1],hb]];break;case 4:var Mn=[4,[0,Gn(On[1][1])]];break;case 5:var Yc=On[1],e_=Gn(Yc[7]),Mn=[5,[0,Yc[1],Yc[2],Yc[3],Yc[4],Yc[5],Yc[6],e_]];break;case 6:var Ks=On[1],db=Gn(Ks[5]),Mn=[6,[0,Ks[1],Ks[2],Ks[3],Ks[4],db]];break;case 7:var V1=On[1],n_=Gn(V1[4]),Mn=[7,[0,V1[1],V1[2],V1[3],n_]];break;case 8:var ds=On[1],t_=Gn(ds[5]),Mn=[8,[0,ds[1],ds[2],ds[3],ds[4],t_]];break;case 9:var z1=On[1],u_=Gn(z1[4]),Mn=[9,[0,z1[1],z1[2],z1[3],u_]];break;case 10:var b2=On[1],i_=Gn(b2[2]),Mn=[10,[0,b2[1],i_]];break;case 11:var Ws=On[1],kb=Gn(Ws[4]),Mn=[11,[0,Ws[1],Ws[2],Ws[3],kb]];break;case 12:var Js=On[1],f_=Gn(Js[5]),Mn=[12,[0,Js[1],Js[2],Js[3],Js[4],f_]];break;case 13:var zi=On[1],Vc=Gn(zi[3]),Mn=[13,[0,zi[1],zi[2],Vc]];break;case 14:var $s=On[1],x_=Gn($s[3]),Mn=[14,[0,$s[1],$s[2],x_]];break;case 15:var Mn=[15,[0,Gn(On[1][1])]];break;case 16:var p2=On[1],m2=Gn(p2[3]),Mn=[16,[0,p2[1],p2[2],m2]];break;case 17:var _2=On[1],o_=Gn(_2[3]),Mn=[17,[0,_2[1],_2[2],o_]];break;case 18:var Zs=On[1],a_=Gn(Zs[5]),Mn=[18,[0,Zs[1],Zs[2],Zs[3],Zs[4],a_]];break;case 19:var y2=On[1],qL=Gn(y2[3]),Mn=[19,[0,y2[1],y2[2],qL]];break;case 20:var K1=On[1],UL=Gn(K1[5]),Mn=[20,[0,K1[1],K1[2],K1[3],K1[4],UL]];break;case 21:var W1=On[1],HL=Gn(W1[5]),Mn=[21,[0,W1[1],W1[2],W1[3],W1[4],HL]];break;case 22:var J1=On[1],XL=Gn(J1[5]),Mn=[22,[0,J1[1],J1[2],J1[3],J1[4],XL]];break;case 23:var Oi=On[1],YL=Oi[10],VL=Gn(Oi[9]),Mn=[23,[0,Oi[1],Oi[2],Oi[3],Oi[4],Oi[5],Oi[6],Oi[7],Oi[8],VL,YL]];break;case 24:var h2=On[1],zL=Gn(h2[4]),Mn=[24,[0,h2[1],h2[2],h2[3],zL]];break;case 25:var $1=On[1],KL=Gn($1[5]),Mn=[25,[0,$1[1],$1[2],$1[3],$1[4],KL]];break;case 26:var Z1=On[1],WL=Gn(Z1[5]),Mn=[26,[0,Z1[1],Z1[2],Z1[3],Z1[4],WL]];break;case 27:var wb=On[1],JL=Gn(wb[3]),Mn=[27,[0,wb[1],wb[2],JL]];break;case 28:var Eb=On[1],$L=Eb[3],ZL=Gn(Eb[2]),Mn=[28,[0,Eb[1],ZL,$L]];break;case 29:var d2=On[1],QL=d2[4],rR=Gn(d2[3]),Mn=[29,[0,d2[1],d2[2],rR,QL]];break;case 30:var c_=On[1],eR=Gn(c_[2]),Mn=[30,[0,c_[1],eR]];break;case 31:var k2=On[1],nR=Gn(k2[4]),Mn=[31,[0,k2[1],k2[2],k2[3],nR]];break;case 32:var w2=On[1],tR=Gn(w2[4]),Mn=[32,[0,w2[1],w2[2],w2[3],tR]];break;case 33:var Q1=On[1],uR=Gn(Q1[5]),Mn=[33,[0,Q1[1],Q1[2],Q1[3],Q1[4],uR]];break;case 34:var Sb=On[1],iR=Gn(Sb[3]),Mn=[34,[0,Sb[1],Sb[2],iR]];break;case 35:var gb=On[1],fR=Gn(gb[3]),Mn=[35,[0,gb[1],gb[2],fR]];break;default:var Fb=On[1],xR=Gn(Fb[3]),Mn=[36,[0,Fb[1],Fb[2],xR]]}var s_=Q([0,mb[1],Mn])}else var s_=i7;var oR=[0,[0,vMr,Q(X1[2])],[0,[0,sMr,s_],0]],aR=[0,[0,lMr,fr(X1[1])],oR];return w(bMr,I,X1[4],aR);case 25:var rv=k[1],Tb=rv[4],v_=rv[3];if(Tb){var Ob=Tb[1];if(Ob[0]===0)var cR=Ob[1],b_=d1(function(wu){var Ii=wu[1],w7=wu[3],Ki=wu[2],ev=Ki?ht(w7[1],Ki[1][1]):w7[1],Lb=Ki?Ki[1]:w7,nv=0,Rb=0;if(Ii)switch(Ii[1]){case 0:var jb=Jc;break;case 1:var jb=rs;break;default:nv=1}else nv=1;if(nv)var jb=i7;var IR=[0,[0,xWr,S(Lb)],[0,[0,fWr,jb],Rb]];return w(aWr,ev,0,[0,[0,oWr,S(w7)],IR])},cR);else var l_=Ob[1],sR=[0,[0,uWr,S(l_[2])],0],b_=[0,w(iWr,l_[1],0,sR),0];var Ib=b_}else var Ib=Tb;if(v_)var p_=v_[1],vR=[0,[0,nWr,S(p_)],0],m_=[0,w(tWr,p_[1],0,vR),Ib];else var m_=Ib;switch(rv[1]){case 0:var Ab=pMr;break;case 1:var Ab=mMr;break;default:var Ab=_Mr}var lR=[0,[0,yMr,pn(Ab)],0],bR=[0,[0,hMr,t0(rv[2])],lR],pR=[0,[0,dMr,hu(m_)],bR];return w(kMr,I,rv[5],pR);case 26:return Wr([0,I,k[1]]);case 27:var Nb=k[1],mR=[0,[0,wMr,Q(Nb[2])],0],_R=[0,[0,EMr,S(Nb[1])],mR];return w(SMr,I,Nb[3],_R);case 28:var __=k[1],yR=[0,[0,gMr,e(fr,__[1])],0];return w(FMr,I,__[2],yR);case 29:var Cb=k[1],hR=[0,[0,TMr,n(i0,Cb[2])],0],dR=[0,[0,OMr,fr(Cb[1])],hR];return w(IMr,I,Cb[3],dR);case 30:var y_=k[1],kR=[0,[0,AMr,fr(y_[1])],0];return w(NMr,I,y_[2],kR);case 31:var E2=k[1],wR=[0,[0,CMr,e(W0,E2[3])],0],ER=[0,[0,PMr,e(l0,E2[2])],wR],SR=[0,[0,DMr,W0(E2[1])],ER];return w(LMr,I,E2[4],SR);case 32:return ar([0,I,k[1]]);case 33:return Jr(0,[0,I,k[1]]);case 34:return c0([0,I,k[1]]);case 35:var Pb=k[1],gR=[0,[0,RMr,Q(Pb[2])],0],FR=[0,[0,jMr,fr(Pb[1])],gR];return w(GMr,I,Pb[3],FR);default:var Db=k[1],TR=[0,[0,MMr,Q(Db[2])],0],OR=[0,[0,BMr,fr(Db[1])],TR];return w(qMr,I,Db[3],OR)}}function i0(_){var k=_[2],I=[0,[0,Qqr,n(Q,k[2])],0],U=[0,[0,rUr,e(fr,k[1])],I];return w(eUr,_[1],k[3],U)}function l0(_){var k=_[2],I=[0,[0,nUr,W0(k[2])],0],U=[0,[0,tUr,e(Or,k[1])],I];return w(uUr,_[1],k[3],U)}function S0(_){var k=_[2],I=[0,[0,$Ur,fr(k[1])],0];return w(ZUr,_[1],k[2],I)}function T0(_){var k=_[2],I=[0,[0,QUr,e($r,k[2])],0],U=[0,[0,rHr,S(k[1])],I];return w(eHr,_[1],0,U)}function rr(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[6],Y=I[2];switch(Y[0]){case 0:var I0=U,D=0,u0=f0(Y[1]);break;case 1:var I0=U,D=0,u0=S(Y[1]);break;case 2:var I0=U,D=0,u0=_0(Y[1]);break;default:var y0=Y[1][2],P0=y7(y0[2],U),I0=P0,D=1,u0=fr(y0[1])}switch(I[1]){case 0:var H0=uHr;break;case 1:var H0=iHr;break;case 2:var H0=fHr;break;default:var H0=xHr}var J0=[0,[0,aHr,!!D],[0,[0,oHr,n(S0,I[5])],0]],ir=[0,[0,sHr,pn(H0)],[0,[0,cHr,!!I[4]],J0]],Q0=[0,[0,lHr,u0],[0,[0,vHr,Rr(I[3])],ir]];return w(bHr,k[1],I0,Q0);case 1:var F0=_[1],Sr=F0[2],mr=Sr[6],Cr=Sr[2],sr=Sr[1];switch(sr[0]){case 0:var h0=mr,Kr=0,re=f0(sr[1]);break;case 1:var h0=mr,Kr=0,re=S(sr[1]);break;case 2:var Pr=de(EHr),h0=Pr[3],Kr=Pr[2],re=Pr[1];break;default:var K0=sr[1][2],Ur=y7(K0[2],mr),h0=Ur,Kr=1,re=fr(K0[1])}if(typeof Cr=="number")if(Cr)var xe=0,Re=0;else var xe=1,Re=0;else var xe=0,Re=[0,Cr[1]];var ve=xe&&[0,[0,SHr,!!xe],0],Ie=[0,[0,gHr,e(Er,Sr[5])],0],Ge=[0,[0,THr,!!Kr],[0,[0,FHr,!!Sr[4]],Ie]],Me=[0,[0,OHr,i(l,Sr[3])],Ge],an=on([0,[0,AHr,re],[0,[0,IHr,e(fr,Re)],Me]],ve);return w(NHr,F0[1],h0,an);default:var We=_[1],Ae=We[2],cn=Ae[2];if(typeof cn=="number")if(cn)var en=0,wn=0;else var en=1,wn=0;else var en=0,wn=[0,cn[1]];var ln=en&&[0,[0,pHr,!!en],0],Ce=[0,[0,mHr,e(Er,Ae[5])],0],Je=[0,[0,yHr,!1],[0,[0,_Hr,!!Ae[4]],Ce]],nn=[0,[0,hHr,i(l,Ae[3])],Je],yn=[0,[0,dHr,e(fr,wn)],nn],Cn=on([0,[0,kHr,_0(Ae[1])],yn],ln);return w(wHr,We[1],Ae[6],Cn)}}function L0(_){var k=_[2],I=k[2],U=k[1];if(I){var Y=[0,[0,EXr,fr(I[1])],0],y0=[0,[0,SXr,Or(U)],Y];return w(gXr,_[1],0,y0)}return Or(U)}function B(_,k){var I=[0,[0,NXr,Or(k[1])],0];return w(CXr,_,k[2],I)}function Z(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[2],Y=I[1];if(U){var y0=[0,[0,PXr,fr(U[1])],0],P0=[0,[0,DXr,Or(Y)],y0];return w(LXr,k[1],0,P0)}return Or(Y);case 1:var I0=_[1];return B(I0[1],I0[2]);default:return i7}}function p0(_){if(_[0]===0){var k=_[1],I=k[2];switch(I[0]){case 0:var U=fr(I[2]),H0=0,J0=I[3],ir=0,Q0=RXr,F0=U,Sr=I[1];break;case 1:var Y=I[2],y0=Rr([0,Y[1],Y[2]]),H0=0,J0=0,ir=1,Q0=jXr,F0=y0,Sr=I[1];break;case 2:var P0=I[2],I0=Rr([0,P0[1],P0[2]]),H0=I[3],J0=0,ir=0,Q0=GXr,F0=I0,Sr=I[1];break;default:var D=I[2],u0=Rr([0,D[1],D[2]]),H0=I[3],J0=0,ir=0,Q0=MXr,F0=u0,Sr=I[1]}switch(Sr[0]){case 0:var Pr=H0,K0=0,Ur=f0(Sr[1]);break;case 1:var Pr=H0,K0=0,Ur=S(Sr[1]);break;case 2:var mr=de(BXr),Pr=mr[3],K0=mr[2],Ur=mr[1];break;default:var Cr=Sr[1][2],sr=y7(Cr[2],H0),Pr=sr,K0=1,Ur=fr(Cr[1])}return w(zXr,k[1],Pr,[0,[0,VXr,Ur],[0,[0,YXr,F0],[0,[0,XXr,pn(Q0)],[0,[0,HXr,!!ir],[0,[0,UXr,!!J0],[0,[0,qXr,!!K0],0]]]]]])}var h0=_[1],Kr=h0[2],re=[0,[0,KXr,fr(Kr[1])],0];return w(WXr,h0[1],Kr[2],re)}function b0(_){if(_[0]===0){var k=_[1],I=k[2],U=I[3],Y=I[2],y0=I[1];switch(y0[0]){case 0:var D=0,u0=0,H0=f0(y0[1]);break;case 1:var D=0,u0=0,H0=S(y0[1]);break;default:var P0=y0[1][2],I0=fr(P0[1]),D=P0[2],u0=1,H0=I0}if(U)var J0=U[1],ir=ht(Y[1],J0[1]),Q0=[0,[0,JXr,fr(J0)],0],F0=w(ZXr,ir,0,[0,[0,$Xr,Or(Y)],Q0]);else var F0=Or(Y);return w(iYr,k[1],D,[0,[0,uYr,H0],[0,[0,tYr,F0],[0,[0,nYr,ji],[0,[0,eYr,!1],[0,[0,rYr,!!I[4]],[0,[0,QXr,!!u0],0]]]]]])}var Sr=_[1];return B(Sr[1],Sr[2])}function O0(_){var k=_[2],I=[0,[0,fYr,fr(k[1])],0];return w(xYr,_[1],k[2],I)}function M0(_){return _[0]===0?fr(_[1]):O0(_[1])}function er(_){switch(_[0]){case 0:return fr(_[1]);case 1:return O0(_[1]);default:return i7}}function yr(_){var k=_[2],I=[0,[0,oYr,!!k[3]],0],U=[0,[0,aYr,fr(k[2])],I],Y=[0,[0,cYr,Or(k[1])],U];return w(sYr,_[1],0,Y)}function vr(_){var k=_[2],I=k[1],U=U1([0,[0,MYr,pn(I[1])],[0,[0,GYr,pn(I[2])],0]]);return w(UYr,_[1],0,[0,[0,qYr,U],[0,[0,BYr,!!k[2]],0]])}function $0(_){var k=_[2],I=[0,[0,ZYr,e(fr,k[2])],0],U=[0,[0,QYr,Or(k[1])],I];return w(rVr,_[1],0,U)}function Er(_){var k=_[2],I=k[1]?cY:"plus";return w(nVr,_[1],k[2],[0,[0,eVr,I],0])}function Mr(_){var k=_[2];return k0(k[2],k[1])}function Br(_){var k=_[2],I=[0,[0,FVr,g0(k[1][2])],[0,[0,gVr,!1],0]],U=[0,[0,TVr,e(S,0)],I];return w(OVr,_[1],k[2],U)}function qr(_){var k=_[2],I=[0,[0,uKr,n(jr,k[1])],0],U=p(k[2]);return w(iKr,_[1],U,I)}function jr(_){var k=_[2],I=k[1][2],U=[0,[0,fKr,e(g0,k[4])],0],Y=[0,[0,xKr,e(Er,k[3])],U],y0=[0,[0,oKr,i(l,k[2])],Y];return w(cKr,_[1],I[2],[0,[0,aKr,pn(I[1])],y0])}function $r(_){var k=_[2],I=[0,[0,sKr,n(g0,k[1])],0],U=p(k[2]);return w(vKr,_[1],U,I)}function ne(_){var k=_[2],I=[0,[0,lKr,n(Qr,k[1])],0],U=p(k[2]);return w(bKr,_[1],U,I)}function Qr(_){if(_[0]===0)return g0(_[1]);var k=_[1],I=k[1],U=k[2][1];return V([0,I,[0,[0,Rc(0,[0,I,pKr])],0,U]])}function be(_){if(_[0]===0){var k=_[1],I=k[2],U=I[1],Y=U[0]===0?b(U[1]):R0(U[1]),y0=[0,[0,PKr,Y],[0,[0,CKr,e(ce,I[2])],0]];return w(DKr,k[1],0,y0)}var P0=_[1],I0=P0[2],D=[0,[0,LKr,fr(I0[1])],0];return w(RKr,P0[1],I0[2],D)}function ae(_){var k=[0,[0,IKr,s0(_[2][1])],0];return w(AKr,_[1],0,k)}function pe(_){var k=_[2],I=k[1],U=_[1],Y=I?fr(I[1]):w(jKr,[0,U[1],[0,U[2][1],U[2][2]+1|0],[0,U[3][1],U[3][2]-1|0]],0,0);return w(MKr,U,p(k[2]),[0,[0,GKr,Y],0])}function oe(_){var k=_[2],I=_[1];switch(k[0]){case 0:return hr([0,I,k[1]]);case 1:return U0([0,I,k[1]]);case 2:return pe([0,I,k[1]]);case 3:var U=k[1],Y=[0,[0,BKr,fr(U[1])],0];return w(qKr,I,U[2],Y);default:var y0=k[1];return w(XKr,I,0,[0,[0,HKr,pn(y0[1])],[0,[0,UKr,pn(y0[2])],0]])}}function ce(_){return _[0]===0?f0([0,_[1],_[2]]):pe([0,_[1],_[2]])}function ge(_){var k=_[2],I=k[2],U=k[1],Y=S(I?I[1]:U),y0=[0,[0,rWr,S(U)],[0,[0,QKr,Y],0]];return w(eWr,_[1],0,y0)}function q0(_){var k=_[2];if(k[1])var I=k[2],U=cWr;else var I=k[2],U=sWr;return w(U,_[1],0,[0,[0,vWr,pn(I)],0])}function gr(_){var k=_[2],I=k[1];if(I)var U=[0,[0,lWr,fr(I[1])],0],Y=bWr;else var U=0,Y=pWr;return w(Y,_[1],k[2],U)}return[0,A,fr]}function T(E){return y(E)[1]}return[0,T,function(E){return y(E)[2]},s]}(dne);function ob(t,n,e){var i=n[e];return Mp(i)?i|0:t}function kne(t,n){var e=RV(n,Jz)?{}:n,i=B7(t),x=ob(Bv[5],e,Ire),c=ob(Bv[4],e,Are),s=ob(Bv[3],e,Nre),p=ob(Bv[2],e,Cre),y=[0,[0,ob(Bv[1],e,Pre),p,s,c,x]],T=e.tokens,E=Mp(T),d=E&&T|0,w=e.comments,G=Mp(w)?w|0:1,A=e.all_comments,S=Mp(A)?A|0:1,M=[0,0],K=d&&[0,function(b0){return M[1]=[0,b0,M[1]],0}],V=[0,y],f0=[0,K],m0=uz?uz[1]:1,k0=f0&&f0[1],g0=V&&V[1],e0=[0,g0],x0=[0,k0],l=0,c0=x0&&x0[1],t0=e0&&e0[1],o0=qee([0,c0],[0,t0],l,i),w0=u(se[1],o0),_0=ye(o0[1][1]),E0=[0,LL[1],0],U0=ye(le(function(b0,O0){var M0=b0[2],er=b0[1];return o(LL[3],O0,er)?[0,er,M0]:[0,o(LL[4],O0,er),[0,O0,M0]]},E0,_0)[2]);if(U0&&m0)throw[0,Iee,U0[1],U0[2]];Ke0[1]=0;for(var b=un(i)-0|0,R0=i,X=0,s0=0;;){if(s0===b)var hr=X;else{var Ar=Xu(R0,s0),or=0;if(0<=Ar&&!(Jn>>0)throw[0,Sn,$o0];switch(Or){case 0:var Rr=Xu(R0,s0);break;case 1:var Rr=(Xu(R0,s0)&31)<<6|Xu(R0,s0+1|0)&63;break;case 2:var Rr=(Xu(R0,s0)&15)<<12|(Xu(R0,s0+1|0)&63)<<6|Xu(R0,s0+2|0)&63;break;default:var Rr=(Xu(R0,s0)&7)<<18|(Xu(R0,s0+1|0)&63)<<12|(Xu(R0,s0+2|0)&63)<<6|Xu(R0,s0+3|0)&63}var X=SL(X,s0,[0,Rr]),s0=fr;continue}var hr=SL(X,s0,0)}for(var Wr=eGr,Jr=ye([0,6,hr]);;){var ar=Wr[3],_r=Wr[2],Ir=Wr[1];if(Jr){var fe=Jr[1];if(fe===5){var v0=Jr[2];if(v0&&v0[1]===6){var P=_l(ye([0,Ir,_r])),Wr=[0,Ir+2|0,0,[0,P,ar]],Jr=v0[2];continue}}else if(!(6<=fe)){var L=Jr[2],Wr=[0,Ir+we0(fe)|0,[0,Ir,_r],ar],Jr=L;continue}var Q=_l(ye([0,Ir,_r])),i0=Jr[2],Wr=[0,Ir+we0(fe)|0,0,[0,Q,ar]],Jr=i0;continue}var l0=_l(ye(ar));if(G)var T0=w0;else var S0=u(gee[1],0),T0=o(rn(S0,-201766268,25),S0,w0);if(S)var L0=T0;else var rr=T0[2],L0=[0,T0[1],[0,rr[1],rr[2],0]];var B=o($e0[1],[0,l0],L0),Z=on(U0,Ke0[1]);if(B.errors=u($e0[3],Z),d){var p0=M[1];B.tokens=hu(Fp(u(hne[1],l0),p0))}return B}}}if(typeof V0<"u")var Ze0=V0;else{var Qe0={};GN.flow=Qe0;var Ze0=Qe0}Ze0.parse=function(t,n){try{var e=kne(t,n);return e}catch(i){return i=St(i),i[1]===MN?u($z,i[2]):u($z,new yee(pn(Te(Dre,Cp(i)))))}},uN(0)}(globalThis)}}),noe=Wt({"src/language-js/parse/flow.js"(V0,z0){Pt();var xr=gu0(),Fr=Xxe(),we=Yxe(),Ke=$xe(),Ne={comments:!1,enums:!0,esproposal_decorators:!0,esproposal_export_star_as:!0,tokens:!0};function Ve(Bn){let{message:zn,loc:{start:qn,end:ft}}=Bn;return xr(zn,{start:{line:qn.line,column:qn.column+1},end:{line:ft.line,column:ft.column+1}})}function Qe(Bn,zn){let qn=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:ft}=eoe(),Ht=ft(we(Bn),Ne),[vn]=Ht.errors;if(vn)throw Ve(vn);return qn.originalText=Bn,Ke(Ht,qn)}z0.exports={parsers:{flow:Fr(Qe)}}}}),hae=noe();export{hae as default}; diff --git a/node_modules/prettier/esm/parser-glimmer.mjs b/node_modules/prettier/esm/parser-glimmer.mjs new file mode 100644 index 0000000..160bee2 --- /dev/null +++ b/node_modules/prettier/esm/parser-glimmer.mjs @@ -0,0 +1,27 @@ +"use strict";var xe=Object.getOwnPropertyNames,nt=(t,m)=>function(){return t&&(m=(0,t[xe(t)[0]])(t=0)),m},F=(t,m)=>function(){return m||(0,t[xe(t)[0]])((m={exports:{}}).exports,m),m.exports},I=nt({""(){}}),it=F({"node_modules/lines-and-columns/build/index.cjs"(t){"use strict";I(),t.__esModule=!0,t.LinesAndColumns=void 0;var m=` +`,h="\r",d=function(){function c(l){this.length=l.length;for(var e=[0],r=0;rthis.length)return null;for(var e=0,r=this.offsets;r[e+1]<=l;)e++;var u=l-r[e];return{line:e,column:u}},c.prototype.indexForLocation=function(l){var e=l.line,r=l.column;return e<0||e>=this.offsets.length||r<0||r>this.lengthOfLine(e)?null:this.offsets[e]+r},c.prototype.lengthOfLine=function(l){var e=this.offsets[l],r=l===this.offsets.length-1?this.length:this.offsets[l+1];return r-e},c}();t.LinesAndColumns=d}}),at=F({"src/common/parser-create-error.js"(t,m){"use strict";I();function h(d,c){let l=new SyntaxError(d+" ("+c.start.line+":"+c.start.column+")");return l.loc=c,l}m.exports=h}}),st=F({"src/language-handlebars/loc.js"(t,m){"use strict";I();function h(c){return c.loc.start.offset}function d(c){return c.loc.end.offset}m.exports={locStart:h,locEnd:d}}}),fe=F({"node_modules/@glimmer/env/dist/commonjs/es5/index.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0});var m=t.DEBUG=!1,h=t.CI=!1}}),ut=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/array-utils.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.emptyArray=h,t.isEmptyArray=l,t.EMPTY_NUMBER_ARRAY=t.EMPTY_STRING_ARRAY=t.EMPTY_ARRAY=void 0;var m=Object.freeze([]);t.EMPTY_ARRAY=m;function h(){return m}var d=h();t.EMPTY_STRING_ARRAY=d;var c=h();t.EMPTY_NUMBER_ARRAY=c;function l(e){return e===m}}}),Pe=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/assert.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.debugAssert=h,t.prodAssert=d,t.deprecate=c,t.default=void 0;var m=X();function h(e,r){if(!e)throw new Error(r||"assertion failure")}function d(){}function c(e){m.LOCAL_LOGGER.warn("DEPRECATION: ".concat(e))}var l=h;t.default=l}}),ot=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/collections.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.dict=m,t.isDict=h,t.isObject=d,t.StackImpl=void 0;function m(){return Object.create(null)}function h(l){return l!=null}function d(l){return typeof l=="function"||typeof l=="object"&&l!==null}var c=class{constructor(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this.current=null,this.stack=l}get size(){return this.stack.length}push(l){this.current=l,this.stack.push(l)}pop(){let l=this.stack.pop(),e=this.stack.length;return this.current=e===0?null:this.stack[e-1],l===void 0?null:l}nth(l){let e=this.stack.length;return e0&&arguments[0]!==void 0?arguments[0]:"unreachable";return new Error(i)}function p(i){throw new Error("Exhausted ".concat(i))}var n=function(){for(var i=arguments.length,o=new Array(i),b=0;b1?c-1:0),e=1;e=0}function d(o){return o>3}function c(){for(var o=arguments.length,b=new Array(o),P=0;P=-536870912}function e(o){return o&-536870913}function r(o){return o|536870912}function u(o){return~o}function p(o){return~o}function n(o){return o}function a(o){return o}function s(o){return o|=0,o<0?e(o):u(o)}function i(o){return o|=0,o>-536870913?p(o):r(o)}[1,2,3].forEach(o=>o),[1,-1].forEach(o=>i(s(o)))}}),ft=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/template.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.unwrapHandle=m,t.unwrapTemplate=h,t.extractHandle=d,t.isOkHandle=c,t.isErrHandle=l;function m(e){if(typeof e=="number")return e;{let r=e.errors[0];throw new Error("Compile Error: ".concat(r.problem," @ ").concat(r.span.start,"..").concat(r.span.end))}}function h(e){if(e.result==="error")throw new Error("Compile Error: ".concat(e.problem," @ ").concat(e.span.start,"..").concat(e.span.end));return e}function d(e){return typeof e=="number"?e:e.handle}function c(e){return typeof e=="number"}function l(e){return typeof e=="number"}}}),mt=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/weak-set.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var m=typeof WeakSet=="function"?WeakSet:class{constructor(){this._map=new WeakMap}add(d){return this._map.set(d,!0),this}delete(d){return this._map.delete(d)}has(d){return this._map.has(d)}};t.default=m}}),gt=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/simple-cast.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.castToSimple=h,t.castToBrowser=d,t.checkNode=r;var m=me();function h(p){return l(p)||e(p),p}function d(p,n){if(p==null)return null;if(typeof document===void 0)throw new Error("Attempted to cast to a browser node in a non-browser context");if(l(p))return p;if(p.ownerDocument!==document)throw new Error("Attempted to cast to a browser node with a node that was not created from this document");return r(p,n)}function c(p,n){return new Error("cannot cast a ".concat(p," into ").concat(n))}function l(p){return p.nodeType===9}function e(p){return p.nodeType===1}function r(p,n){let a=!1;if(p!==null)if(typeof n=="string")a=u(p,n);else if(Array.isArray(n))a=n.some(s=>u(p,s));else throw(0,m.unreachable)();if(a)return p;throw c("SimpleElement(".concat(p,")"),n)}function u(p,n){switch(n){case"NODE":return!0;case"HTML":return p instanceof HTMLElement;case"SVG":return p instanceof SVGElement;case"ELEMENT":return p instanceof Element;default:if(n.toUpperCase()===n)throw new Error("BUG: this code is missing handling for a generic node type");return p instanceof Element&&p.tagName.toLowerCase()===n}}}}),bt=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/present.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.isPresent=m,t.ifPresent=h,t.toPresentOption=d,t.assertPresent=c,t.mapPresent=l;function m(e){return e.length>0}function h(e,r,u){return m(e)?r(e):u()}function d(e){return m(e)?e:null}function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unexpected empty list";if(!m(e))throw new Error(r)}function l(e,r){if(e===null)return null;let u=[];for(let p of e)u.push(r(p));return u}}}),vt=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/untouchable-this.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=d;var m=fe(),h=me();function d(c){let l=null;if(m.DEBUG&&h.HAS_NATIVE_PROXY){let e=r=>{throw new Error("You accessed `this.".concat(String(r),"` from a function passed to the ").concat(c,", but the function itself was not bound to a valid `this` context. Consider updating to use a bound function (for instance, use an arrow function, `() => {}`)."))};l=new Proxy({},{get(r,u){e(u)},set(r,u){return e(u),!1},has(r,u){return e(u),!1}})}return l}}}),yt=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-to-string.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var m=fe(),h;if(m.DEBUG){let c=r=>{let u=r.name;if(u===void 0){let p=Function.prototype.toString.call(r).match(/function (\w+)\s*\(/);u=p&&p[1]||""}return u.replace(/^bound /,"")},l=r=>{let u,p;return r.constructor&&typeof r.constructor=="function"&&(p=c(r.constructor)),"toString"in r&&r.toString!==Object.prototype.toString&&r.toString!==Function.prototype.toString&&(u=r.toString()),u&&u.match(/<.*:ember\d+>/)&&p&&p[0]!=="_"&&p.length>2&&p!=="Class"?u.replace(/<.*:/,"<".concat(p,":")):u||p},e=r=>String(r);h=r=>typeof r=="function"?c(r)||"(unknown function)":typeof r=="object"&&r!==null?l(r)||"(unknown object)":e(r)}var d=h;t.default=d}}),At=F({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-steps.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.logStep=t.verifySteps=t.endTestSteps=t.beginTestSteps=void 0;var m=d(Pe()),h=me();function d(u){return u&&u.__esModule?u:{default:u}}var c;t.beginTestSteps=c;var l;t.endTestSteps=l;var e;t.verifySteps=e;var r;t.logStep=r}}),X=F({"node_modules/@glimmer/util/dist/commonjs/es2017/index.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0});var m={LOCAL_LOGGER:!0,LOGGER:!0,assertNever:!0,assert:!0,deprecate:!0,dict:!0,isDict:!0,isObject:!0,Stack:!0,isSerializationFirstNode:!0,SERIALIZATION_FIRST_NODE_STRING:!0,assign:!0,fillNulls:!0,values:!0,_WeakSet:!0,castToSimple:!0,castToBrowser:!0,checkNode:!0,intern:!0,buildUntouchableThis:!0,debugToString:!0,beginTestSteps:!0,endTestSteps:!0,logStep:!0,verifySteps:!0};t.assertNever=x,Object.defineProperty(t,"assert",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"deprecate",{enumerable:!0,get:function(){return d.deprecate}}),Object.defineProperty(t,"dict",{enumerable:!0,get:function(){return c.dict}}),Object.defineProperty(t,"isDict",{enumerable:!0,get:function(){return c.isDict}}),Object.defineProperty(t,"isObject",{enumerable:!0,get:function(){return c.isObject}}),Object.defineProperty(t,"Stack",{enumerable:!0,get:function(){return c.StackImpl}}),Object.defineProperty(t,"isSerializationFirstNode",{enumerable:!0,get:function(){return e.isSerializationFirstNode}}),Object.defineProperty(t,"SERIALIZATION_FIRST_NODE_STRING",{enumerable:!0,get:function(){return e.SERIALIZATION_FIRST_NODE_STRING}}),Object.defineProperty(t,"assign",{enumerable:!0,get:function(){return r.assign}}),Object.defineProperty(t,"fillNulls",{enumerable:!0,get:function(){return r.fillNulls}}),Object.defineProperty(t,"values",{enumerable:!0,get:function(){return r.values}}),Object.defineProperty(t,"_WeakSet",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"castToSimple",{enumerable:!0,get:function(){return i.castToSimple}}),Object.defineProperty(t,"castToBrowser",{enumerable:!0,get:function(){return i.castToBrowser}}),Object.defineProperty(t,"checkNode",{enumerable:!0,get:function(){return i.checkNode}}),Object.defineProperty(t,"intern",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(t,"buildUntouchableThis",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,"debugToString",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(t,"beginTestSteps",{enumerable:!0,get:function(){return v.beginTestSteps}}),Object.defineProperty(t,"endTestSteps",{enumerable:!0,get:function(){return v.endTestSteps}}),Object.defineProperty(t,"logStep",{enumerable:!0,get:function(){return v.logStep}}),Object.defineProperty(t,"verifySteps",{enumerable:!0,get:function(){return v.verifySteps}}),t.LOGGER=t.LOCAL_LOGGER=void 0;var h=ut();Object.keys(h).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(m,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return h[w]}})});var d=g(Pe()),c=ot(),l=lt();Object.keys(l).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(m,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return l[w]}})});var e=ct(),r=ht(),u=me();Object.keys(u).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(m,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return u[w]}})});var p=dt();Object.keys(p).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(m,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return p[w]}})});var n=pt();Object.keys(n).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(m,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return n[w]}})});var a=ft();Object.keys(a).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(m,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return a[w]}})});var s=_(mt()),i=gt(),o=bt();Object.keys(o).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(m,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return o[w]}})});var b=_(je()),P=_(vt()),E=_(yt()),v=At();function _(w){return w&&w.__esModule?w:{default:w}}function y(){if(typeof WeakMap!="function")return null;var w=new WeakMap;return y=function(){return w},w}function g(w){if(w&&w.__esModule)return w;if(w===null||typeof w!="object"&&typeof w!="function")return{default:w};var H=y();if(H&&H.has(w))return H.get(w);var f={},C=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var S in w)if(Object.prototype.hasOwnProperty.call(w,S)){var R=C?Object.getOwnPropertyDescriptor(w,S):null;R&&(R.get||R.set)?Object.defineProperty(f,S,R):f[S]=w[S]}return f.default=w,H&&H.set(w,f),f}var L=console;t.LOCAL_LOGGER=L;var j=console;t.LOGGER=j;function x(w){let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unexpected unreachable branch";throw j.log("unreachable",w),j.log("".concat(H," :: ").concat(JSON.stringify(w)," (").concat(w,")")),new Error("code reached unreachable")}}}),ge=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/location.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.isLocatedWithPositionsArray=u,t.isLocatedWithPositions=p,t.BROKEN_LOCATION=t.NON_EXISTENT_LOCATION=t.TEMPORARY_LOCATION=t.SYNTHETIC=t.SYNTHETIC_LOCATION=t.UNKNOWN_POSITION=void 0;var m=X(),h=Object.freeze({line:1,column:0});t.UNKNOWN_POSITION=h;var d=Object.freeze({source:"(synthetic)",start:h,end:h});t.SYNTHETIC_LOCATION=d;var c=d;t.SYNTHETIC=c;var l=Object.freeze({source:"(temporary)",start:h,end:h});t.TEMPORARY_LOCATION=l;var e=Object.freeze({source:"(nonexistent)",start:h,end:h});t.NON_EXISTENT_LOCATION=e;var r=Object.freeze({source:"(broken)",start:h,end:h});t.BROKEN_LOCATION=r;function u(n){return(0,m.isPresent)(n)&&n.every(p)}function p(n){return n.loc!==void 0}}}),le=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/slice.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.SourceSlice=void 0;var m=ue(),h=class{constructor(d){this.loc=d.loc,this.chars=d.chars}static synthetic(d){let c=m.SourceSpan.synthetic(d);return new h({loc:c,chars:d})}static load(d,c){return new h({loc:m.SourceSpan.load(d,c[1]),chars:c[0]})}getString(){return this.chars}serialize(){return[this.chars,this.loc.serialize()]}};t.SourceSlice=h}}),Me=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/match.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.match=e,t.IsInvisible=t.MatchAny=void 0;var m=X(),h="MATCH_ANY";t.MatchAny=h;var d="IS_INVISIBLE";t.IsInvisible=d;var c=class{constructor(p){this._whens=p}first(p){for(let n of this._whens){let a=n.match(p);if((0,m.isPresent)(a))return a[0]}return null}},l=class{constructor(){this._map=new Map}get(p,n){let a=this._map.get(p);return a||(a=n(),this._map.set(p,a),a)}add(p,n){this._map.set(p,n)}match(p){let n=u(p),a=[],s=this._map.get(n),i=this._map.get(h);return s&&a.push(s),i&&a.push(i),a}};function e(p){return p(new r).check()}var r=class{constructor(){this._whens=new l}check(){return(p,n)=>this.matchFor(p.kind,n.kind)(p,n)}matchFor(p,n){let a=this._whens.match(p);return new c(a).first(n)}when(p,n,a){return this._whens.get(p,()=>new l).add(n,a),this}};function u(p){switch(p){case"Broken":case"InternalsSynthetic":case"NonExistent":return d;default:return p}}}}),He=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/offset.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.InvisiblePosition=t.HbsPosition=t.CharPosition=t.SourceOffset=t.BROKEN=void 0;var m=ge(),h=Me(),d=Ve(),c="BROKEN";t.BROKEN=c;var l=class{constructor(n){this.data=n}static forHbsPos(n,a){return new r(n,a,null).wrap()}static broken(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m.UNKNOWN_POSITION;return new u("Broken",n).wrap()}get offset(){let n=this.data.toCharPos();return n===null?null:n.offset}eql(n){return p(this.data,n.data)}until(n){return(0,d.span)(this.data,n.data)}move(n){let a=this.data.toCharPos();if(a===null)return l.broken();{let s=a.offset+n;return a.source.check(s)?new e(a.source,s).wrap():l.broken()}}collapsed(){return(0,d.span)(this.data,this.data)}toJSON(){return this.data.toJSON()}};t.SourceOffset=l;var e=class{constructor(n,a){this.source=n,this.charPos=a,this.kind="CharPosition",this._locPos=null}toCharPos(){return this}toJSON(){let n=this.toHbsPos();return n===null?m.UNKNOWN_POSITION:n.toJSON()}wrap(){return new l(this)}get offset(){return this.charPos}toHbsPos(){let n=this._locPos;if(n===null){let a=this.source.hbsPosFor(this.charPos);a===null?this._locPos=n=c:this._locPos=n=new r(this.source,a,this.charPos)}return n===c?null:n}};t.CharPosition=e;var r=class{constructor(n,a){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=n,this.hbsPos=a,this.kind="HbsPosition",this._charPos=s===null?null:new e(n,s)}toCharPos(){let n=this._charPos;if(n===null){let a=this.source.charPosFor(this.hbsPos);a===null?this._charPos=n=c:this._charPos=n=new e(this.source,a)}return n===c?null:n}toJSON(){return this.hbsPos}wrap(){return new l(this)}toHbsPos(){return this}};t.HbsPosition=r;var u=class{constructor(n,a){this.kind=n,this.pos=a}toCharPos(){return null}toJSON(){return this.pos}wrap(){return new l(this)}get offset(){return null}};t.InvisiblePosition=u;var p=(0,h.match)(n=>n.when("HbsPosition","HbsPosition",(a,s)=>{let{hbsPos:i}=a,{hbsPos:o}=s;return i.column===o.column&&i.line===o.line}).when("CharPosition","CharPosition",(a,s)=>{let{charPos:i}=a,{charPos:o}=s;return i===o}).when("CharPosition","HbsPosition",(a,s)=>{let{offset:i}=a;var o;return i===((o=s.toCharPos())===null||o===void 0?void 0:o.offset)}).when("HbsPosition","CharPosition",(a,s)=>{let{offset:i}=s;var o;return((o=a.toCharPos())===null||o===void 0?void 0:o.offset)===i}).when(h.MatchAny,h.MatchAny,()=>!1))}}),Ve=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/span.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.span=t.HbsSpan=t.SourceSpan=void 0;var m=fe(),h=X(),d=ge(),c=le(),l=Me(),e=He(),r=class{constructor(s){this.data=s,this.isInvisible=s.kind!=="CharPosition"&&s.kind!=="HbsPosition"}static get NON_EXISTENT(){return new n("NonExistent",d.NON_EXISTENT_LOCATION).wrap()}static load(s,i){if(typeof i=="number")return r.forCharPositions(s,i,i);if(typeof i=="string")return r.synthetic(i);if(Array.isArray(i))return r.forCharPositions(s,i[0],i[1]);if(i==="NonExistent")return r.NON_EXISTENT;if(i==="Broken")return r.broken(d.BROKEN_LOCATION);(0,h.assertNever)(i)}static forHbsLoc(s,i){let o=new e.HbsPosition(s,i.start),b=new e.HbsPosition(s,i.end);return new p(s,{start:o,end:b},i).wrap()}static forCharPositions(s,i,o){let b=new e.CharPosition(s,i),P=new e.CharPosition(s,o);return new u(s,{start:b,end:P}).wrap()}static synthetic(s){return new n("InternalsSynthetic",d.NON_EXISTENT_LOCATION,s).wrap()}static broken(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d.BROKEN_LOCATION;return new n("Broken",s).wrap()}getStart(){return this.data.getStart().wrap()}getEnd(){return this.data.getEnd().wrap()}get loc(){let s=this.data.toHbsSpan();return s===null?d.BROKEN_LOCATION:s.toHbsLoc()}get module(){return this.data.getModule()}get startPosition(){return this.loc.start}get endPosition(){return this.loc.end}toJSON(){return this.loc}withStart(s){return a(s.data,this.data.getEnd())}withEnd(s){return a(this.data.getStart(),s.data)}asString(){return this.data.asString()}toSlice(s){let i=this.data.asString();return m.DEBUG&&s!==void 0&&i!==s&&console.warn("unexpectedly found ".concat(JSON.stringify(i)," when slicing source, but expected ").concat(JSON.stringify(s))),new c.SourceSlice({loc:this,chars:s||i})}get start(){return this.loc.start}set start(s){this.data.locDidUpdate({start:s})}get end(){return this.loc.end}set end(s){this.data.locDidUpdate({end:s})}get source(){return this.module}collapse(s){switch(s){case"start":return this.getStart().collapsed();case"end":return this.getEnd().collapsed()}}extend(s){return a(this.data.getStart(),s.data.getEnd())}serialize(){return this.data.serialize()}slice(s){let{skipStart:i=0,skipEnd:o=0}=s;return a(this.getStart().move(i).data,this.getEnd().move(-o).data)}sliceStartChars(s){let{skipStart:i=0,chars:o}=s;return a(this.getStart().move(i).data,this.getStart().move(i+o).data)}sliceEndChars(s){let{skipEnd:i=0,chars:o}=s;return a(this.getEnd().move(i-o).data,this.getStart().move(-i).data)}};t.SourceSpan=r;var u=class{constructor(s,i){this.source=s,this.charPositions=i,this.kind="CharPosition",this._locPosSpan=null}wrap(){return new r(this)}asString(){return this.source.slice(this.charPositions.start.charPos,this.charPositions.end.charPos)}getModule(){return this.source.module}getStart(){return this.charPositions.start}getEnd(){return this.charPositions.end}locDidUpdate(){}toHbsSpan(){let s=this._locPosSpan;if(s===null){let i=this.charPositions.start.toHbsPos(),o=this.charPositions.end.toHbsPos();i===null||o===null?s=this._locPosSpan=e.BROKEN:s=this._locPosSpan=new p(this.source,{start:i,end:o})}return s===e.BROKEN?null:s}serialize(){let{start:{charPos:s},end:{charPos:i}}=this.charPositions;return s===i?s:[s,i]}toCharPosSpan(){return this}},p=class{constructor(s,i){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=s,this.hbsPositions=i,this.kind="HbsPosition",this._charPosSpan=null,this._providedHbsLoc=o}serialize(){let s=this.toCharPosSpan();return s===null?"Broken":s.wrap().serialize()}wrap(){return new r(this)}updateProvided(s,i){this._providedHbsLoc&&(this._providedHbsLoc[i]=s),this._charPosSpan=null,this._providedHbsLoc={start:s,end:s}}locDidUpdate(s){let{start:i,end:o}=s;i!==void 0&&(this.updateProvided(i,"start"),this.hbsPositions.start=new e.HbsPosition(this.source,i,null)),o!==void 0&&(this.updateProvided(o,"end"),this.hbsPositions.end=new e.HbsPosition(this.source,o,null))}asString(){let s=this.toCharPosSpan();return s===null?"":s.asString()}getModule(){return this.source.module}getStart(){return this.hbsPositions.start}getEnd(){return this.hbsPositions.end}toHbsLoc(){return{start:this.hbsPositions.start.hbsPos,end:this.hbsPositions.end.hbsPos}}toHbsSpan(){return this}toCharPosSpan(){let s=this._charPosSpan;if(s===null){let i=this.hbsPositions.start.toCharPos(),o=this.hbsPositions.end.toCharPos();if(i&&o)s=this._charPosSpan=new u(this.source,{start:i,end:o});else return s=this._charPosSpan=e.BROKEN,null}return s===e.BROKEN?null:s}};t.HbsSpan=p;var n=class{constructor(s,i){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.kind=s,this.loc=i,this.string=o}serialize(){switch(this.kind){case"Broken":case"NonExistent":return this.kind;case"InternalsSynthetic":return this.string||""}}wrap(){return new r(this)}asString(){return this.string||""}locDidUpdate(s){let{start:i,end:o}=s;i!==void 0&&(this.loc.start=i),o!==void 0&&(this.loc.end=o)}getModule(){return"an unknown module"}getStart(){return new e.InvisiblePosition(this.kind,this.loc.start)}getEnd(){return new e.InvisiblePosition(this.kind,this.loc.end)}toCharPosSpan(){return this}toHbsSpan(){return null}toHbsLoc(){return d.BROKEN_LOCATION}},a=(0,l.match)(s=>s.when("HbsPosition","HbsPosition",(i,o)=>new p(i.source,{start:i,end:o}).wrap()).when("CharPosition","CharPosition",(i,o)=>new u(i.source,{start:i,end:o}).wrap()).when("CharPosition","HbsPosition",(i,o)=>{let b=o.toCharPos();return b===null?new n("Broken",d.BROKEN_LOCATION).wrap():a(i,b)}).when("HbsPosition","CharPosition",(i,o)=>{let b=i.toCharPos();return b===null?new n("Broken",d.BROKEN_LOCATION).wrap():a(b,o)}).when(l.IsInvisible,l.MatchAny,i=>new n(i.kind,d.BROKEN_LOCATION).wrap()).when(l.MatchAny,l.IsInvisible,(i,o)=>new n(o.kind,d.BROKEN_LOCATION).wrap()));t.span=a}}),ue=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"SourceSpan",{enumerable:!0,get:function(){return m.SourceSpan}}),Object.defineProperty(t,"SourceOffset",{enumerable:!0,get:function(){return h.SourceOffset}});var m=Ve(),h=He()}}),De=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/source.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.Source=void 0;var m=fe(),h=X(),d=ue(),c=class{constructor(l){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"an unknown module";this.source=l,this.module=e}check(l){return l>=0&&l<=this.source.length}slice(l,e){return this.source.slice(l,e)}offsetFor(l,e){return d.SourceOffset.forHbsPos(this,{line:l,column:e})}spanFor(l){let{start:e,end:r}=l;return d.SourceSpan.forHbsLoc(this,{start:{line:e.line,column:e.column},end:{line:r.line,column:r.column}})}hbsPosFor(l){let e=0,r=0;if(l>this.source.length)return null;for(;;){let u=this.source.indexOf(` +`,r);if(l<=u||u===-1)return{line:e+1,column:l-r};e+=1,r=u+1}}charPosFor(l){let{line:e,column:r}=l,p=this.source.length,n=0,a=0;for(;;){if(a>=p)return p;let s=this.source.indexOf(` +`,a);if(s===-1&&(s=this.source.length),n===e-1){if(a+r>s)return s;if(m.DEBUG){let i=this.hbsPosFor(a+r)}return a+r}else{if(s===-1)return 0;n+=1,a=s+1}}}};t.Source=c}}),we=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/legacy-interop.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.PathExpressionImplV1=void 0;var m=h(ke());function h(c){return c&&c.__esModule?c:{default:c}}var d=class{constructor(c,l,e,r){this.original=c,this.loc=r,this.type="PathExpression",this.this=!1,this.data=!1,this._head=void 0;let u=e.slice();l.type==="ThisHead"?this.this=!0:l.type==="AtHead"?(this.data=!0,u.unshift(l.name.slice(1))):u.unshift(l.name),this.parts=u}get head(){if(this._head)return this._head;let c;this.this?c="this":this.data?c="@".concat(this.parts[0]):c=this.parts[0];let l=this.loc.collapse("start").sliceStartChars({chars:c.length}).loc;return this._head=m.default.head(c,l)}get tail(){return this.this?this.parts:this.parts.slice(1)}};t.PathExpressionImplV1=d}}),ke=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/public-builders.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var m=X(),h=ge(),d=De(),c=ue(),l=we(),e;function r(){return e||(e=new d.Source("","(synthetic)")),e}function u(T,N,k,B,O,q){return typeof T=="string"&&(T=f(T)),{type:"MustacheStatement",path:T,params:N||[],hash:k||S([]),escaped:!B,trusting:!!B,loc:U(O||null),strip:q||{open:!1,close:!1}}}function p(T,N,k,B,O,q,z,A,Q){let D,$;return B.type==="Template"?D=(0,m.assign)({},B,{type:"Block"}):D=B,O!=null&&O.type==="Template"?$=(0,m.assign)({},O,{type:"Block"}):$=O,{type:"BlockStatement",path:f(T),params:N||[],hash:k||S([]),program:D||null,inverse:$||null,loc:U(q||null),openStrip:z||{open:!1,close:!1},inverseStrip:A||{open:!1,close:!1},closeStrip:Q||{open:!1,close:!1}}}function n(T,N,k,B){return{type:"ElementModifierStatement",path:f(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function a(T,N,k,B,O){return{type:"PartialStatement",name:T,params:N||[],hash:k||S([]),indent:B||"",strip:{open:!1,close:!1},loc:U(O||null)}}function s(T,N){return{type:"CommentStatement",value:T,loc:U(N||null)}}function i(T,N){return{type:"MustacheCommentStatement",value:T,loc:U(N||null)}}function o(T,N){if(!(0,m.isPresent)(T))throw new Error("b.concat requires at least one part");return{type:"ConcatStatement",parts:T||[],loc:U(N||null)}}function b(T){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{attrs:k,blockParams:B,modifiers:O,comments:q,children:z,loc:A}=N,Q,D=!1;return typeof T=="object"?(D=T.selfClosing,Q=T.name):T.slice(-1)==="/"?(Q=T.slice(0,-1),D=!0):Q=T,{type:"ElementNode",tag:Q,selfClosing:D,attributes:k||[],blockParams:B||[],modifiers:O||[],comments:q||[],children:z||[],loc:U(A||null)}}function P(T,N,k){return{type:"AttrNode",name:T,value:N,loc:U(k||null)}}function E(T,N){return{type:"TextNode",chars:T||"",loc:U(N||null)}}function v(T,N,k,B){return{type:"SubExpression",path:f(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function _(T){switch(T.type){case"AtHead":return{original:T.name,parts:[T.name]};case"ThisHead":return{original:"this",parts:[]};case"VarHead":return{original:T.name,parts:[T.name]}}}function y(T,N){let[k,...B]=T.split("."),O;return k==="this"?O={type:"ThisHead",loc:U(N||null)}:k[0]==="@"?O={type:"AtHead",name:k,loc:U(N||null)}:O={type:"VarHead",name:k,loc:U(N||null)},{head:O,tail:B}}function g(T){return{type:"ThisHead",loc:U(T||null)}}function L(T,N){return{type:"AtHead",name:T,loc:U(N||null)}}function j(T,N){return{type:"VarHead",name:T,loc:U(N||null)}}function x(T,N){return T[0]==="@"?L(T,N):T==="this"?g(N):j(T,N)}function w(T,N){return{type:"NamedBlockName",name:T,loc:U(N||null)}}function H(T,N,k){let{original:B,parts:O}=_(T),q=[...O,...N],z=[...B,...q].join(".");return new l.PathExpressionImplV1(z,T,N,U(k||null))}function f(T,N){if(typeof T!="string"){if("type"in T)return T;{let{head:O,tail:q}=y(T.head,c.SourceSpan.broken()),{original:z}=_(O);return new l.PathExpressionImplV1([z,...q].join("."),O,q,U(N||null))}}let{head:k,tail:B}=y(T,c.SourceSpan.broken());return new l.PathExpressionImplV1(T,k,B,U(N||null))}function C(T,N,k){return{type:T,value:N,original:N,loc:U(k||null)}}function S(T,N){return{type:"Hash",pairs:T||[],loc:U(N||null)}}function R(T,N,k){return{type:"HashPair",key:T,value:N,loc:U(k||null)}}function M(T,N,k){return{type:"Template",body:T||[],blockParams:N||[],loc:U(k||null)}}function V(T,N){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,B=arguments.length>3?arguments[3]:void 0;return{type:"Block",body:T||[],blockParams:N||[],chained:k,loc:U(B||null)}}function G(T,N,k){return{type:"Template",body:T||[],blockParams:N||[],loc:U(k||null)}}function K(T,N){return{line:T,column:N}}function U(){for(var T=arguments.length,N=new Array(T),k=0;k1&&arguments[1]!==void 0?arguments[1]:!1;this.ambiguity=e,this.isAngleBracket=r}static namespaced(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return new d({namespaces:[e],fallback:!1},r)}static fallback(){return new d({namespaces:[],fallback:!0})}static append(e){let{invoke:r}=e;return new d({namespaces:["Component","Helper"],fallback:!r})}static trustingAppend(e){let{invoke:r}=e;return new d({namespaces:["Helper"],fallback:!r})}static attr(){return new d({namespaces:["Helper"],fallback:!0})}resolution(){if(this.ambiguity.namespaces.length===0)return 31;if(this.ambiguity.namespaces.length===1){if(this.ambiguity.fallback)return 36;switch(this.ambiguity.namespaces[0]){case"Helper":return 37;case"Modifier":return 38;case"Component":return 39}}else return this.ambiguity.fallback?34:35}serialize(){return this.ambiguity.namespaces.length===0?"Loose":this.ambiguity.namespaces.length===1?this.ambiguity.fallback?["ambiguous","Attr"]:["ns",this.ambiguity.namespaces[0]]:this.ambiguity.fallback?["ambiguous","Append"]:["ambiguous","Invoke"]}};t.LooseModeResolution=d;var c=d.fallback();t.ARGUMENT_RESOLUTION=c;function l(e){if(typeof e=="string")switch(e){case"Loose":return d.fallback();case"Strict":return h}switch(e[0]){case"ambiguous":switch(e[1]){case"Append":return d.append({invoke:!1});case"Attr":return d.attr();case"Invoke":return d.append({invoke:!0})}case"ns":return d.namespaced(e[1])}}}}),ne=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/node.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.node=h;var m=X();function h(d){if(d!==void 0){let c=d;return{fields(){return class{constructor(l){this.type=c,(0,m.assign)(this,l)}}}}}else return{fields(){return class{constructor(c){(0,m.assign)(this,c)}}}}}}}),be=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/args.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.NamedArgument=t.NamedArguments=t.PositionalArguments=t.Args=void 0;var m=ne(),h=class extends(0,m.node)().fields(){static empty(e){return new h({loc:e,positional:d.empty(e),named:c.empty(e)})}static named(e){return new h({loc:e.loc,positional:d.empty(e.loc.collapse("end")),named:e})}nth(e){return this.positional.nth(e)}get(e){return this.named.get(e)}isEmpty(){return this.positional.isEmpty()&&this.named.isEmpty()}};t.Args=h;var d=class extends(0,m.node)().fields(){static empty(e){return new d({loc:e,exprs:[]})}get size(){return this.exprs.length}nth(e){return this.exprs[e]||null}isEmpty(){return this.exprs.length===0}};t.PositionalArguments=d;var c=class extends(0,m.node)().fields(){static empty(e){return new c({loc:e,entries:[]})}get size(){return this.entries.length}get(e){let r=this.entries.filter(u=>u.name.chars===e)[0];return r?r.value:null}isEmpty(){return this.entries.length===0}};t.NamedArguments=c;var l=class{constructor(e){this.loc=e.name.loc.extend(e.value.loc),this.name=e.name,this.value=e.value}};t.NamedArgument=l}}),Ct=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/attr-block.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.ElementModifier=t.ComponentArg=t.SplatAttr=t.HtmlAttr=void 0;var m=be(),h=ne(),d=class extends(0,h.node)("HtmlAttr").fields(){};t.HtmlAttr=d;var c=class extends(0,h.node)("SplatAttr").fields(){};t.SplatAttr=c;var l=class extends(0,h.node)().fields(){toNamedArgument(){return new m.NamedArgument({name:this.name,value:this.value})}};t.ComponentArg=l;var e=class extends(0,h.node)("ElementModifier").fields(){};t.ElementModifier=e}}),Pt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/base.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0})}}),ce=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span-list.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.loc=d,t.hasSpan=c,t.maybeLoc=l,t.SpanList=void 0;var m=ue(),h=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this._span=e}static range(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:m.SourceSpan.NON_EXISTENT;return new h(e.map(d)).getRangeOffset(r)}add(e){this._span.push(e)}getRangeOffset(e){if(this._span.length===0)return e;{let r=this._span[0],u=this._span[this._span.length-1];return r.extend(u)}}};t.SpanList=h;function d(e){if(Array.isArray(e)){let r=e[0],u=e[e.length-1];return d(r).extend(d(u))}else return e instanceof m.SourceSpan?e:e.loc}function c(e){return!(Array.isArray(e)&&e.length===0)}function l(e,r){return c(e)?d(e):r}}}),Dt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/content.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleElement=t.InvokeComponent=t.InvokeBlock=t.AppendContent=t.HtmlComment=t.HtmlText=t.GlimmerComment=void 0;var m=ce(),h=be(),d=ne(),c=class extends(0,d.node)("GlimmerComment").fields(){};t.GlimmerComment=c;var l=class extends(0,d.node)("HtmlText").fields(){};t.HtmlText=l;var e=class extends(0,d.node)("HtmlComment").fields(){};t.HtmlComment=e;var r=class extends(0,d.node)("AppendContent").fields(){get callee(){return this.value.type==="Call"?this.value.callee:this.value}get args(){return this.value.type==="Call"?this.value.args:h.Args.empty(this.value.loc.collapse("end"))}};t.AppendContent=r;var u=class extends(0,d.node)("InvokeBlock").fields(){};t.InvokeBlock=u;var p=class extends(0,d.node)("InvokeComponent").fields(){get args(){let a=this.componentArgs.map(s=>s.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:m.SpanList.range(a,this.callee.loc.collapse("end")),entries:a}))}};t.InvokeComponent=p;var n=class extends(0,d.node)("SimpleElement").fields(){get args(){let a=this.componentArgs.map(s=>s.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:m.SpanList.range(a,this.tag.loc.collapse("end")),entries:a}))}};t.SimpleElement=n}}),wt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/expr.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.isLiteral=c,t.InterpolateExpression=t.DeprecatedCallExpression=t.CallExpression=t.PathExpression=t.LiteralExpression=void 0;var m=le(),h=ne(),d=class extends(0,h.node)("Literal").fields(){toSlice(){return new m.SourceSlice({loc:this.loc,chars:this.value})}};t.LiteralExpression=d;function c(p,n){return p.type==="Literal"?n===void 0?!0:n==="null"?p.value===null:typeof p.value===n:!1}var l=class extends(0,h.node)("Path").fields(){};t.PathExpression=l;var e=class extends(0,h.node)("Call").fields(){};t.CallExpression=e;var r=class extends(0,h.node)("DeprecatedCall").fields(){};t.DeprecatedCallExpression=r;var u=class extends(0,h.node)("Interpolate").fields(){};t.InterpolateExpression=u}}),kt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/refs.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.FreeVarReference=t.LocalVarReference=t.ArgReference=t.ThisReference=void 0;var m=ne(),h=class extends(0,m.node)("This").fields(){};t.ThisReference=h;var d=class extends(0,m.node)("Arg").fields(){};t.ArgReference=d;var c=class extends(0,m.node)("Local").fields(){};t.LocalVarReference=c;var l=class extends(0,m.node)("Free").fields(){};t.FreeVarReference=l}}),Tt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/internal-node.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.NamedBlock=t.NamedBlocks=t.Block=t.Template=void 0;var m=ce(),h=be(),d=ne(),c=class extends(0,d.node)().fields(){};t.Template=c;var l=class extends(0,d.node)().fields(){};t.Block=l;var e=class extends(0,d.node)().fields(){get(u){return this.blocks.filter(p=>p.name.chars===u)[0]||null}};t.NamedBlocks=e;var r=class extends(0,d.node)().fields(){get args(){let u=this.componentArgs.map(p=>p.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:m.SpanList.range(u,this.name.loc.collapse("end")),entries:u}))}};t.NamedBlock=r}}),ve=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/api.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0});var m=St();Object.keys(m).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return m[n]}})});var h=ne();Object.keys(h).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return h[n]}})});var d=be();Object.keys(d).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return d[n]}})});var c=Ct();Object.keys(c).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return c[n]}})});var l=Pt();Object.keys(l).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return l[n]}})});var e=Dt();Object.keys(e).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})});var r=wt();Object.keys(r).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[n]}})});var u=kt();Object.keys(u).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return u[n]}})});var p=Tt();Object.keys(p).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return p[n]}})})}}),Ue=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/generation/util.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.escapeAttrValue=r,t.escapeText=u,t.sortByLoc=p;var m=/[\xA0"&]/,h=new RegExp(m.source,"g"),d=/[\xA0&<>]/,c=new RegExp(d.source,"g");function l(n){switch(n.charCodeAt(0)){case 160:return" ";case 34:return""";case 38:return"&";default:return n}}function e(n){switch(n.charCodeAt(0)){case 160:return" ";case 38:return"&";case 60:return"<";case 62:return">";default:return n}}function r(n){return m.test(n)?n.replace(h,l):n}function u(n){return d.test(n)?n.replace(c,e):n}function p(n,a){return n.loc.isInvisible||a.loc.isInvisible?0:n.loc.startPosition.line{h[e]=!0});var c=/\S/,l=class{constructor(e){this.buffer="",this.options=e}handledByOverride(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.options.override!==void 0){let u=this.options.override(e,this.options);if(typeof u=="string")return r&&u!==""&&c.test(u[0])&&(u=" ".concat(u)),this.buffer+=u,!0}return!1}Node(e){switch(e.type){case"MustacheStatement":case"BlockStatement":case"PartialStatement":case"MustacheCommentStatement":case"CommentStatement":case"TextNode":case"ElementNode":case"AttrNode":case"Block":case"Template":return this.TopLevelStatement(e);case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":case"PathExpression":case"SubExpression":return this.Expression(e);case"Program":return this.Block(e);case"ConcatStatement":return this.ConcatStatement(e);case"Hash":return this.Hash(e);case"HashPair":return this.HashPair(e);case"ElementModifierStatement":return this.ElementModifierStatement(e)}}Expression(e){switch(e.type){case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":return this.Literal(e);case"PathExpression":return this.PathExpression(e);case"SubExpression":return this.SubExpression(e)}}Literal(e){switch(e.type){case"StringLiteral":return this.StringLiteral(e);case"BooleanLiteral":return this.BooleanLiteral(e);case"NumberLiteral":return this.NumberLiteral(e);case"UndefinedLiteral":return this.UndefinedLiteral(e);case"NullLiteral":return this.NullLiteral(e)}}TopLevelStatement(e){switch(e.type){case"MustacheStatement":return this.MustacheStatement(e);case"BlockStatement":return this.BlockStatement(e);case"PartialStatement":return this.PartialStatement(e);case"MustacheCommentStatement":return this.MustacheCommentStatement(e);case"CommentStatement":return this.CommentStatement(e);case"TextNode":return this.TextNode(e);case"ElementNode":return this.ElementNode(e);case"Block":case"Template":return this.Block(e);case"AttrNode":return this.AttrNode(e)}}Block(e){if(e.chained){let r=e.body[0];r.chained=!0}this.handledByOverride(e)||this.TopLevelStatements(e.body)}TopLevelStatements(e){e.forEach(r=>this.TopLevelStatement(r))}ElementNode(e){this.handledByOverride(e)||(this.OpenElementNode(e),this.TopLevelStatements(e.children),this.CloseElementNode(e))}OpenElementNode(e){this.buffer+="<".concat(e.tag);let r=[...e.attributes,...e.modifiers,...e.comments].sort(m.sortByLoc);for(let u of r)switch(this.buffer+=" ",u.type){case"AttrNode":this.AttrNode(u);break;case"ElementModifierStatement":this.ElementModifierStatement(u);break;case"MustacheCommentStatement":this.MustacheCommentStatement(u);break}e.blockParams.length&&this.BlockParams(e.blockParams),e.selfClosing&&(this.buffer+=" /"),this.buffer+=">"}CloseElementNode(e){e.selfClosing||h[e.tag.toLowerCase()]||(this.buffer+=""))}AttrNode(e){if(this.handledByOverride(e))return;let{name:r,value:u}=e;this.buffer+=r,(u.type!=="TextNode"||u.chars.length>0)&&(this.buffer+="=",this.AttrNodeValue(u))}AttrNodeValue(e){e.type==="TextNode"?(this.buffer+='"',this.TextNode(e,!0),this.buffer+='"'):this.Node(e)}TextNode(e,r){this.handledByOverride(e)||(this.options.entityEncoding==="raw"?this.buffer+=e.chars:r?this.buffer+=(0,m.escapeAttrValue)(e.chars):this.buffer+=(0,m.escapeText)(e.chars))}MustacheStatement(e){this.handledByOverride(e)||(this.buffer+=e.escaped?"{{":"{{{",e.strip.open&&(this.buffer+="~"),this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.strip.close&&(this.buffer+="~"),this.buffer+=e.escaped?"}}":"}}}")}BlockStatement(e){this.handledByOverride(e)||(e.chained?(this.buffer+=e.inverseStrip.open?"{{~":"{{",this.buffer+="else "):this.buffer+=e.openStrip.open?"{{~#":"{{#",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.program.blockParams.length&&this.BlockParams(e.program.blockParams),e.chained?this.buffer+=e.inverseStrip.close?"~}}":"}}":this.buffer+=e.openStrip.close?"~}}":"}}",this.Block(e.program),e.inverse&&(e.inverse.chained||(this.buffer+=e.inverseStrip.open?"{{~":"{{",this.buffer+="else",this.buffer+=e.inverseStrip.close?"~}}":"}}"),this.Block(e.inverse)),e.chained||(this.buffer+=e.closeStrip.open?"{{~/":"{{/",this.Expression(e.path),this.buffer+=e.closeStrip.close?"~}}":"}}"))}BlockParams(e){this.buffer+=" as |".concat(e.join(" "),"|")}PartialStatement(e){this.handledByOverride(e)||(this.buffer+="{{>",this.Expression(e.name),this.Params(e.params),this.Hash(e.hash),this.buffer+="}}")}ConcatStatement(e){this.handledByOverride(e)||(this.buffer+='"',e.parts.forEach(r=>{r.type==="TextNode"?this.TextNode(r,!0):this.Node(r)}),this.buffer+='"')}MustacheCommentStatement(e){this.handledByOverride(e)||(this.buffer+="{{!--".concat(e.value,"--}}"))}ElementModifierStatement(e){this.handledByOverride(e)||(this.buffer+="{{",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+="}}")}CommentStatement(e){this.handledByOverride(e)||(this.buffer+=""))}PathExpression(e){this.handledByOverride(e)||(this.buffer+=e.original)}SubExpression(e){this.handledByOverride(e)||(this.buffer+="(",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+=")")}Params(e){e.length&&e.forEach(r=>{this.buffer+=" ",this.Expression(r)})}Hash(e){this.handledByOverride(e,!0)||e.pairs.forEach(r=>{this.buffer+=" ",this.HashPair(r)})}HashPair(e){this.handledByOverride(e)||(this.buffer+=e.key,this.buffer+="=",this.Node(e.value))}StringLiteral(e){this.handledByOverride(e)||(this.buffer+=JSON.stringify(e.value))}BooleanLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}NumberLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}UndefinedLiteral(e){this.handledByOverride(e)||(this.buffer+="undefined")}NullLiteral(e){this.handledByOverride(e)||(this.buffer+="null")}print(e){let{options:r}=this;if(r.override){let u=r.override(e,r);if(u!==void 0)return u}return this.buffer="",this.Node(e),this.buffer}};t.default=l}}),Be=F({"node_modules/@handlebars/parser/dist/cjs/exception.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0});var m=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function h(d,c){var l=c&&c.loc,e,r,u,p;l&&(e=l.start.line,r=l.end.line,u=l.start.column,p=l.end.column,d+=" - "+e+":"+u);for(var n=Error.prototype.constructor.call(this,d),a=0;a"u"&&(Y.yylloc={});var Ee=Y.yylloc;A.push(Ee);var tt=Y.options&&Y.options.ranges;typeof ie.yy.parseError=="function"?this.parseError=ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ut(te){O.length=O.length-2*te,z.length=z.length-te,A.length=A.length-te}e:var rt=function(){var te;return te=Y.lex()||Re,typeof te!="number"&&(te=B.symbols_[te]||te),te};for(var J,_e,ae,ee,zt,Se,se={},de,re,qe,pe;;){if(ae=O[O.length-1],this.defaultActions[ae]?ee=this.defaultActions[ae]:((J===null||typeof J>"u")&&(J=rt()),ee=Q[ae]&&Q[ae][J]),typeof ee>"u"||!ee.length||!ee[0]){var Ce="";pe=[];for(de in Q[ae])this.terminals_[de]&&de>$e&&pe.push("'"+this.terminals_[de]+"'");Y.showPosition?Ce="Parse error on line "+($+1)+`: +`+Y.showPosition()+` +Expecting `+pe.join(", ")+", got '"+(this.terminals_[J]||J)+"'":Ce="Parse error on line "+($+1)+": Unexpected "+(J==Re?"end of input":"'"+(this.terminals_[J]||J)+"'"),this.parseError(Ce,{text:Y.match,token:this.terminals_[J]||J,line:Y.yylineno,loc:Ee,expected:pe})}if(ee[0]instanceof Array&&ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ae+", token: "+J);switch(ee[0]){case 1:O.push(J),z.push(Y.yytext),A.push(Y.yylloc),O.push(ee[1]),J=null,_e?(J=_e,_e=null):(oe=Y.yyleng,D=Y.yytext,$=Y.yylineno,Ee=Y.yylloc,Ie>0&&Ie--);break;case 2:if(re=this.productions_[ee[1]][1],se.$=z[z.length-re],se._$={first_line:A[A.length-(re||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(re||1)].first_column,last_column:A[A.length-1].last_column},tt&&(se._$.range=[A[A.length-(re||1)].range[0],A[A.length-1].range[1]]),Se=this.performAction.apply(se,[D,oe,$,ie.yy,ee[1],z,A].concat(et)),typeof Se<"u")return Se;re&&(O=O.slice(0,-1*re*2),z=z.slice(0,-1*re),A=A.slice(0,-1*re)),O.push(this.productions_[ee[1]][0]),z.push(se.$),A.push(se._$),qe=Q[O[O.length-2]][O[O.length-1]],O.push(qe);break;case 3:return!0}}return!0}},W=function(){var N={EOF:1,parseError:function(B,O){if(this.yy.parser)this.yy.parser.parseError(B,O);else throw new Error(B)},setInput:function(k,B){return this.yy=B||this.yy||{},this._input=k,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var k=this._input[0];this.yytext+=k,this.yyleng++,this.offset++,this.match+=k,this.matched+=k;var B=k.match(/(?:\r\n?|\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),k},unput:function(k){var B=k.length,O=k.split(/(?:\r\n?|\n)/g);this._input=k+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;var q=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),O.length-1&&(this.yylineno-=O.length-1);var z=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:O?(O.length===q.length?this.yylloc.first_column:0)+q[q.length-O.length].length-O[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[z[0],z[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(k){this.unput(this.match.slice(k))},pastInput:function(){var k=this.matched.substr(0,this.matched.length-this.match.length);return(k.length>20?"...":"")+k.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var k=this.match;return k.length<20&&(k+=this._input.substr(0,20-k.length)),(k.substr(0,20)+(k.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var k=this.pastInput(),B=new Array(k.length+1).join("-");return k+this.upcomingInput()+` +`+B+"^"},test_match:function(k,B){var O,q,z;if(this.options.backtrack_lexer&&(z={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(z.yylloc.range=this.yylloc.range.slice(0))),q=k[0].match(/(?:\r\n?|\n).*/g),q&&(this.yylineno+=q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:q?q[q.length-1].length-q[q.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+k[0].length},this.yytext+=k[0],this.match+=k[0],this.matches=k,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(k[0].length),this.matched+=k[0],O=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),O)return O;if(this._backtrack){for(var A in z)this[A]=z[A];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var k,B,O,q;this._more||(this.yytext="",this.match="");for(var z=this._currentRules(),A=0;AB[0].length)){if(B=O,q=A,this.options.backtrack_lexer){if(k=this.test_match(O,z[A]),k!==!1)return k;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(k=this.test_match(B,z[q]),k!==!1?k:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var B=this.next();return B||this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:"INITIAL"},pushState:function(B){this.begin(B)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(B,O,q,z){function A(D,$){return O.yytext=O.yytext.substring(D,O.yyleng-$+D)}var Q=z;switch(q){case 0:if(O.yytext.slice(-2)==="\\\\"?(A(0,1),this.begin("mu")):O.yytext.slice(-1)==="\\"?(A(0,1),this.begin("emu")):this.begin("mu"),O.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin("raw"),15;break;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(A(5,9),18);case 5:return 15;case 6:return this.popState(),14;break;case 7:return 64;case 8:return 67;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;break;case 11:return 56;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 52;case 20:return 48;case 21:this.unput(O.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 72;case 25:return 71;case 26:return 71;case 27:return 86;case 28:break;case 29:return this.popState(),55;break;case 30:return this.popState(),33;break;case 31:return O.yytext=A(1,2).replace(/\\"/g,'"'),79;break;case 32:return O.yytext=A(1,2).replace(/\\'/g,"'"),79;break;case 33:return 84;case 34:return 81;case 35:return 81;case 36:return 82;case 37:return 83;case 38:return 80;case 39:return 74;case 40:return 76;case 41:return 71;case 42:return O.yytext=O.yytext.replace(/\\([\\\]])/g,"$1"),71;break;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return N}();Z.lexer=W;function T(){this.yy={}}return T.prototype=Z,Z.Parser=T,new T}();t.default=m}}),Bt=F({"node_modules/@handlebars/parser/dist/cjs/printer.js"(t){"use strict";I();var m=t&&t.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrintVisitor=t.print=void 0;var h=m(Oe());function d(l){return new c().accept(l)}t.print=d;function c(){this.padding=0}t.PrintVisitor=c,c.prototype=new h.default,c.prototype.pad=function(l){for(var e="",r=0,u=this.padding;r "+e+" }}")},c.prototype.PartialBlockStatement=function(l){var e="PARTIAL BLOCK:"+l.name.original;return l.params[0]&&(e+=" "+this.accept(l.params[0])),l.hash&&(e+=" "+this.accept(l.hash)),e+=" "+this.pad("PROGRAM:"),this.padding++,e+=this.accept(l.program),this.padding--,this.pad("{{> "+e+" }}")},c.prototype.ContentStatement=function(l){return this.pad("CONTENT[ '"+l.value+"' ]")},c.prototype.CommentStatement=function(l){return this.pad("{{! '"+l.value+"' }}")},c.prototype.SubExpression=function(l){for(var e=l.params,r=[],u,p=0,n=e.length;p0)throw new h.default("Invalid path: "+E,{loc:P});L===".."&&_++}else v.push(L)}return{type:"PathExpression",data:o,depth:_,parts:v,original:E,loc:P}}t.preparePath=u;function p(o,b,P,E,v,_){var y=E.charAt(3)||E.charAt(2),g=y!=="{"&&y!=="&",L=/\*/.test(E);return{type:L?"Decorator":"MustacheStatement",path:o,params:b,hash:P,escaped:g,strip:v,loc:this.locInfo(_)}}t.prepareMustache=p;function n(o,b,P,E){d(o,P),E=this.locInfo(E);var v={type:"Program",body:b,strip:{},loc:E};return{type:"BlockStatement",path:o.path,params:o.params,hash:o.hash,program:v,openStrip:{},inverseStrip:{},closeStrip:{},loc:E}}t.prepareRawBlock=n;function a(o,b,P,E,v,_){E&&E.path&&d(o,E);var y=/\*/.test(o.open);b.blockParams=o.blockParams;var g,L;if(P){if(y)throw new h.default("Unexpected inverse block on decorator",P);P.chain&&(P.program.body[0].closeStrip=E.strip),L=P.strip,g=P.program}return v&&(v=g,g=b,b=v),{type:y?"DecoratorBlock":"BlockStatement",path:o.path,params:o.params,hash:o.hash,program:b,inverse:g,openStrip:o.strip,inverseStrip:L,closeStrip:E&&E.strip,loc:this.locInfo(_)}}t.prepareBlock=a;function s(o,b){if(!b&&o.length){var P=o[0].loc,E=o[o.length-1].loc;P&&E&&(b={source:P.source,start:{line:P.start.line,column:P.start.column},end:{line:E.end.line,column:E.end.column}})}return{type:"Program",body:o,strip:{},loc:b}}t.prepareProgram=s;function i(o,b,P,E){return d(o,P),{type:"PartialBlockStatement",name:o.path,params:o.params,hash:o.hash,program:b,openStrip:o.strip,closeStrip:P&&P.strip,loc:this.locInfo(E)}}t.preparePartialBlock=i}}),Nt=F({"node_modules/@handlebars/parser/dist/cjs/parse.js"(t){"use strict";I();var m=t&&t.__createBinding||(Object.create?function(s,i,o,b){b===void 0&&(b=o),Object.defineProperty(s,b,{enumerable:!0,get:function(){return i[o]}})}:function(s,i,o,b){b===void 0&&(b=o),s[b]=i[o]}),h=t&&t.__setModuleDefault||(Object.create?function(s,i){Object.defineProperty(s,"default",{enumerable:!0,value:i})}:function(s,i){s.default=i}),d=t&&t.__importStar||function(s){if(s&&s.__esModule)return s;var i={};if(s!=null)for(var o in s)o!=="default"&&Object.prototype.hasOwnProperty.call(s,o)&&m(i,s,o);return h(i,s),i},c=t&&t.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,"__esModule",{value:!0}),t.parse=t.parseWithoutProcessing=void 0;var l=c(Ge()),e=c(ze()),r=d(Ot()),u={};for(p in r)Object.prototype.hasOwnProperty.call(r,p)&&(u[p]=r[p]);var p;function n(s,i){if(s.type==="Program")return s;l.default.yy=u,l.default.yy.locInfo=function(b){return new r.SourceLocation(i&&i.srcName,b)};var o=l.default.parse(s);return o}t.parseWithoutProcessing=n;function a(s,i){var o=n(s,i),b=new e.default(i);return b.accept(o)}t.parse=a}}),Lt=F({"node_modules/@handlebars/parser/dist/cjs/index.js"(t){"use strict";I();var m=t&&t.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.parseWithoutProcessing=t.parse=t.PrintVisitor=t.print=t.Exception=t.parser=t.WhitespaceControl=t.Visitor=void 0;var h=Oe();Object.defineProperty(t,"Visitor",{enumerable:!0,get:function(){return m(h).default}});var d=ze();Object.defineProperty(t,"WhitespaceControl",{enumerable:!0,get:function(){return m(d).default}});var c=Ge();Object.defineProperty(t,"parser",{enumerable:!0,get:function(){return m(c).default}});var l=Be();Object.defineProperty(t,"Exception",{enumerable:!0,get:function(){return m(l).default}});var e=Bt();Object.defineProperty(t,"print",{enumerable:!0,get:function(){return e.print}}),Object.defineProperty(t,"PrintVisitor",{enumerable:!0,get:function(){return e.PrintVisitor}});var r=Nt();Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return r.parse}}),Object.defineProperty(t,"parseWithoutProcessing",{enumerable:!0,get:function(){return r.parseWithoutProcessing}})}}),Ke=F({"node_modules/simple-html-tokenizer/dist/simple-html-tokenizer.js"(t,m){I(),function(h,d){typeof t=="object"&&typeof m<"u"?d(t):typeof define=="function"&&define.amd?define(["exports"],d):d(h.HTML5Tokenizer={})}(t,function(h){"use strict";var d={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"},c=/^#[xX]([A-Fa-f0-9]+)$/,l=/^#([0-9]+)$/,e=/^([A-Za-z0-9]+)$/,r=function(){function E(v){this.named=v}return E.prototype.parse=function(v){if(!!v){var _=v.match(c);if(_)return String.fromCharCode(parseInt(_[1],16));if(_=v.match(l),_)return String.fromCharCode(parseInt(_[1],10));if(_=v.match(e),_)return this.named[_[1]]}},E}(),u=/[\t\n\f ]/,p=/[A-Za-z]/,n=/\r\n?/g;function a(E){return u.test(E)}function s(E){return p.test(E)}function i(E){return E.replace(n,` +`)}var o=function(){function E(v,_,y){y===void 0&&(y="precompile"),this.delegate=v,this.entityParser=_,this.mode=y,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var g=this.peek();if(g==="<"&&!this.isIgnoredEndTag())this.transitionTo("tagOpen"),this.markTagStart(),this.consume();else{if(this.mode==="precompile"&&g===` +`){var L=this.tagNameBuffer.toLowerCase();(L==="pre"||L==="textarea")&&this.consume()}this.transitionTo("data"),this.delegate.beginData()}},data:function(){var g=this.peek(),L=this.tagNameBuffer;g==="<"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume()):g==="&"&&L!=="script"&&L!=="style"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(g))},tagOpen:function(){var g=this.consume();g==="!"?this.transitionTo("markupDeclarationOpen"):g==="/"?this.transitionTo("endTagOpen"):(g==="@"||g===":"||s(g))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(g))},markupDeclarationOpen:function(){var g=this.consume();if(g==="-"&&this.peek()==="-")this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment();else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();L==="DOCTYPE"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var g=this.consume();a(g)&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var g=this.consume();a(g)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase()))},doctypeName:function(){var g=this.consume();a(g)?this.transitionTo("afterDoctypeName"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase())},afterDoctypeName:function(){var g=this.consume();if(!a(g))if(g===">")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),j=L.toUpperCase()==="PUBLIC",x=L.toUpperCase()==="SYSTEM";(j||x)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),j?this.transitionTo("afterDoctypePublicKeyword"):x&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var g=this.peek();a(g)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):g==='"'?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):g==="'"?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):g===">"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var g=this.consume();g==='"'?this.transitionTo("afterDoctypePublicIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},doctypePublicIdentifierSingleQuoted:function(){var g=this.consume();g==="'"?this.transitionTo("afterDoctypePublicIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},afterDoctypePublicIdentifier:function(){var g=this.consume();a(g)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):g==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):g==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var g=this.consume();a(g)||(g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):g==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):g==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var g=this.consume();g==='"'?this.transitionTo("afterDoctypeSystemIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},doctypeSystemIdentifierSingleQuoted:function(){var g=this.consume();g==="'"?this.transitionTo("afterDoctypeSystemIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},afterDoctypeSystemIdentifier:function(){var g=this.consume();a(g)||g===">"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var g=this.consume();g==="-"?this.transitionTo("commentStartDash"):g===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(g),this.transitionTo("comment"))},commentStartDash:function(){var g=this.consume();g==="-"?this.transitionTo("commentEnd"):g===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var g=this.consume();g==="-"?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(g)},commentEndDash:function(){var g=this.consume();g==="-"?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+g),this.transitionTo("comment"))},commentEnd:function(){var g=this.consume();g===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+g),this.transitionTo("comment"))},tagName:function(){var g=this.consume();a(g)?this.transitionTo("beforeAttributeName"):g==="/"?this.transitionTo("selfClosingStartTag"):g===">"?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(g)},endTagName:function(){var g=this.consume();a(g)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):g==="/"?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):g===">"?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(g)},beforeAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g==="/"?(this.transitionTo("selfClosingStartTag"),this.consume()):g===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):g==="="?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var g=this.peek();a(g)?(this.transitionTo("afterAttributeName"),this.consume()):g==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):g==="="?(this.transitionTo("beforeAttributeValue"),this.consume()):g===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):g==='"'||g==="'"||g==="<"?(this.delegate.reportSyntaxError(g+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(g)):(this.consume(),this.delegate.appendToAttributeName(g))},afterAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):g==="="?(this.consume(),this.transitionTo("beforeAttributeValue")):g===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g))},beforeAttributeValue:function(){var g=this.peek();a(g)?this.consume():g==='"'?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):g==="'"?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):g===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(g))},attributeValueDoubleQuoted:function(){var g=this.consume();g==='"'?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):g==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(g)},attributeValueSingleQuoted:function(){var g=this.consume();g==="'"?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):g==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(g)},attributeValueUnquoted:function(){var g=this.peek();a(g)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):g==="/"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):g==="&"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):g===">"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(g))},afterAttributeValueQuoted:function(){var g=this.peek();a(g)?(this.consume(),this.transitionTo("beforeAttributeName")):g==="/"?(this.consume(),this.transitionTo("selfClosingStartTag")):g===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){var g=this.peek();g===">"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var g=this.consume();(g==="@"||g===":"||s(g))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(g))}},this.reset()}return E.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},E.prototype.transitionTo=function(v){this.state=v},E.prototype.tokenize=function(v){this.reset(),this.tokenizePart(v),this.tokenizeEOF()},E.prototype.tokenizePart=function(v){for(this.input+=i(v);this.index"||v==="style"&&this.input.substring(this.index,this.index+8)!==""||v==="script"&&this.input.substring(this.index,this.index+9)!=="<\/script>"},E}(),b=function(){function E(v,_){_===void 0&&(_={}),this.options=_,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new o(this,v,_.mode),this._currentAttribute=void 0}return E.prototype.tokenize=function(v){return this.tokens=[],this.tokenizer.tokenize(v),this.tokens},E.prototype.tokenizePart=function(v){return this.tokens=[],this.tokenizer.tokenizePart(v),this.tokens},E.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},E.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},E.prototype.current=function(){var v=this.token;if(v===null)throw new Error("token was unexpectedly null");if(arguments.length===0)return v;for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:{entityEncoding:"transformed"};return c?new m.default(l).print(c):""}}}),he=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/syntax-error.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.generateSyntaxError=m;function m(h,d){let{module:c,loc:l}=d,{line:e,column:r}=l.start,u=d.asString(),p=u?` + +| +| `.concat(u.split(` +`).join(` +| `),` +| + +`):"",n=new Error("".concat(h,": ").concat(p,"(error occurred in '").concat(c,"' @ line ").concat(e," : column ").concat(r,")"));return n.name="SyntaxError",n.location=d,n.code=u,n}}}),Ft=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/visitor-keys.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var m=X(),h={Program:(0,m.tuple)("body"),Template:(0,m.tuple)("body"),Block:(0,m.tuple)("body"),MustacheStatement:(0,m.tuple)("path","params","hash"),BlockStatement:(0,m.tuple)("path","params","hash","program","inverse"),ElementModifierStatement:(0,m.tuple)("path","params","hash"),PartialStatement:(0,m.tuple)("name","params","hash"),CommentStatement:(0,m.tuple)(),MustacheCommentStatement:(0,m.tuple)(),ElementNode:(0,m.tuple)("attributes","modifiers","children","comments"),AttrNode:(0,m.tuple)("value"),TextNode:(0,m.tuple)(),ConcatStatement:(0,m.tuple)("parts"),SubExpression:(0,m.tuple)("path","params","hash"),PathExpression:(0,m.tuple)(),PathHead:(0,m.tuple)(),StringLiteral:(0,m.tuple)(),BooleanLiteral:(0,m.tuple)(),NumberLiteral:(0,m.tuple)(),NullLiteral:(0,m.tuple)(),UndefinedLiteral:(0,m.tuple)(),Hash:(0,m.tuple)("pairs"),HashPair:(0,m.tuple)("value"),NamedBlock:(0,m.tuple)("attributes","modifiers","children","comments"),SimpleElement:(0,m.tuple)("attributes","modifiers","children","comments"),Component:(0,m.tuple)("head","attributes","modifiers","children","comments")},d=h;t.default=d}}),Ye=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/errors.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.cannotRemoveNode=d,t.cannotReplaceNode=c,t.cannotReplaceOrRemoveInKeyHandlerYet=l,t.default=void 0;var m=function(){e.prototype=Object.create(Error.prototype),e.prototype.constructor=e;function e(r,u,p,n){let a=Error.call(this,r);this.key=n,this.message=r,this.node=u,this.parent=p,this.stack=a.stack}return e}(),h=m;t.default=h;function d(e,r,u){return new m("Cannot remove a node unless it is part of an array",e,r,u)}function c(e,r,u){return new m("Cannot replace a node with multiple nodes unless it is part of an array",e,r,u)}function l(e,r){return new m("Replacing and removing in key handlers is not yet supported.",e,null,r)}}}),Qe=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/path.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var m=class{constructor(d){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.node=d,this.parent=c,this.parentKey=l}get parentNode(){return this.parent?this.parent.node:null}parents(){return{[Symbol.iterator]:()=>new h(this)}}};t.default=m;var h=class{constructor(d){this.path=d}next(){return this.path.parent?(this.path=this.path.parent,{done:!1,value:this.path}):{done:!0,value:null}}}}}),Ne=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/traverse.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=E;var m=X(),h=l(Ft()),d=Ye(),c=l(Qe());function l(v){return v&&v.__esModule?v:{default:v}}function e(v){return typeof v=="function"?v:v.enter}function r(v){if(typeof v!="function")return v.exit}function u(v,_){let y=typeof v!="function"?v.keys:void 0;if(y===void 0)return;let g=y[_];return g!==void 0?g:y.All}function p(v,_){if((_==="Template"||_==="Block")&&v.Program)return v.Program;let y=v[_];return y!==void 0?y:v.All}function n(v,_){let{node:y,parent:g,parentKey:L}=_,j=p(v,y.type),x,w;j!==void 0&&(x=e(j),w=r(j));let H;if(x!==void 0&&(H=x(y,_)),H!=null)if(JSON.stringify(y)===JSON.stringify(H))H=void 0;else{if(Array.isArray(H))return o(v,H,g,L),H;{let f=new c.default(H,g,L);return n(v,f)||H}}if(H===void 0){let f=h.default[y.type];for(let C=0;C@\[-\^`\{-~]/;function d(a){let s=c(a);s&&(a.blockParams=s)}function c(a){let s=a.attributes.length,i=[];for(let b=0;b0&&i[i.length-1].charAt(0)==="|")throw(0,m.generateSyntaxError)("Block parameters must be preceded by the `as` keyword, detected block parameters without `as`",a.loc);if(o!==-1&&s>o&&i[o+1].charAt(0)==="|"){let b=i.slice(o).join(" ");if(b.charAt(b.length-1)!=="|"||b.match(/\|/g).length!==2)throw(0,m.generateSyntaxError)("Invalid block parameters syntax, '"+b+"'",a.loc);let P=[];for(let E=o+1;E1&&arguments[1]!==void 0?arguments[1]:new h.EntityParser(h.HTML5NamedCharRefs),e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"precompile";this.elementStack=[],this.currentAttribute=null,this.currentNode=null,this.source=c,this.lines=c.source.split(/(?:\r\n?|\n)/g),this.tokenizer=new h.EventedTokenizer(this,l,e)}offset(){let{line:c,column:l}=this.tokenizer;return this.source.offsetFor(c,l)}pos(c){let{line:l,column:e}=c;return this.source.offsetFor(l,e)}finish(c){return(0,m.assign)({},c,{loc:c.loc.until(this.offset())})}get currentAttr(){return this.currentAttribute}get currentTag(){return this.currentNode}get currentStartTag(){return this.currentNode}get currentEndTag(){return this.currentNode}get currentComment(){return this.currentNode}get currentData(){return this.currentNode}acceptTemplate(c){return this[c.type](c)}acceptNode(c){return this[c.type](c)}currentElement(){return this.elementStack[this.elementStack.length-1]}sourceForNode(c,l){let e=c.loc.start.line-1,r=e-1,u=c.loc.start.column,p=[],n,a,s;for(l?(a=l.loc.end.line-1,s=l.loc.end.column):(a=c.loc.end.line-1,s=c.loc.end.column);ri.acceptNode(_)):[],E=P.length>0?P[P.length-1].loc:b.loc,v=o.hash?i.Hash(o.hash):{type:"Hash",pairs:[],loc:i.source.spanFor(E).collapse("end")};return{path:b,params:P,hash:v}}function s(i,o){let{path:b,params:P,hash:E,loc:v}=o;if((0,c.isHBSLiteral)(b)){let y="{{".concat((0,c.printLiteral)(b),"}}"),g="<".concat(i.name," ... ").concat(y," ...");throw(0,d.generateSyntaxError)("In ".concat(g,", ").concat(y," is not a valid modifier"),o.loc)}let _=e.default.elementModifier({path:b,params:P,hash:E,loc:v});i.modifiers.push(_)}}}),Fe=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/parser/tokenizer-event-handlers.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.preprocess=_,t.TokenizerEventHandlers=void 0;var m=X(),h=Lt(),d=Ke(),c=b(We()),l=Te(),e=De(),r=ue(),u=he(),p=b(Ne()),n=b(Je()),a=ye(),s=b(Le()),i=b(ke()),o=Rt();function b(y){return y&&y.__esModule?y:{default:y}}var P=class extends o.HandlebarsNodeVisitors{constructor(){super(...arguments),this.tagOpenLine=0,this.tagOpenColumn=0}reset(){this.currentNode=null}beginComment(){this.currentNode=s.default.comment("",this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn))}appendToCommentData(y){this.currentComment.value+=y}finishComment(){(0,a.appendChild)(this.currentElement(),this.finish(this.currentComment))}beginData(){this.currentNode=s.default.text({chars:"",loc:this.offset().collapsed()})}appendToData(y){this.currentData.chars+=y}finishData(){this.currentData.loc=this.currentData.loc.withEnd(this.offset()),(0,a.appendChild)(this.currentElement(),this.currentData)}tagOpen(){this.tagOpenLine=this.tokenizer.line,this.tagOpenColumn=this.tokenizer.column}beginStartTag(){this.currentNode={type:"StartTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}beginEndTag(){this.currentNode={type:"EndTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}finishTag(){let y=this.finish(this.currentTag);if(y.type==="StartTag"){if(this.finishStartTag(),y.name===":")throw(0,u.generateSyntaxError)("Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter",this.source.spanFor({start:this.currentTag.loc.toJSON(),end:this.offset().toJSON()}));(l.voidMap[y.name]||y.selfClosing)&&this.finishEndTag(!0)}else y.type==="EndTag"&&this.finishEndTag(!1)}finishStartTag(){let{name:y,attributes:g,modifiers:L,comments:j,selfClosing:x,loc:w}=this.finish(this.currentStartTag),H=s.default.element({tag:y,selfClosing:x,attrs:g,modifiers:L,comments:j,children:[],blockParams:[],loc:w});this.elementStack.push(H)}finishEndTag(y){let g=this.finish(this.currentTag),L=this.elementStack.pop(),j=this.currentElement();this.validateEndTag(g,L,y),L.loc=L.loc.withEnd(this.offset()),(0,a.parseElementBlockParams)(L),(0,a.appendChild)(j,L)}markTagAsSelfClosing(){this.currentTag.selfClosing=!0}appendToTagName(y){this.currentTag.name+=y}beginAttribute(){let y=this.offset();this.currentAttribute={name:"",parts:[],currentPart:null,isQuoted:!1,isDynamic:!1,start:y,valueSpan:y.collapsed()}}appendToAttributeName(y){this.currentAttr.name+=y}beginAttributeValue(y){this.currentAttr.isQuoted=y,this.startTextPart(),this.currentAttr.valueSpan=this.offset().collapsed()}appendToAttributeValue(y){let g=this.currentAttr.parts,L=g[g.length-1],j=this.currentAttr.currentPart;if(j)j.chars+=y,j.loc=j.loc.withEnd(this.offset());else{let x=this.offset();y===` +`?x=L?L.loc.getEnd():this.currentAttr.valueSpan.getStart():x=x.move(-1),this.currentAttr.currentPart=s.default.text({chars:y,loc:x.collapsed()})}}finishAttributeValue(){this.finalizeTextPart();let y=this.currentTag,g=this.offset();if(y.type==="EndTag")throw(0,u.generateSyntaxError)("Invalid end tag: closing tag must not have attributes",this.source.spanFor({start:y.loc.toJSON(),end:g.toJSON()}));let{name:L,parts:j,start:x,isQuoted:w,isDynamic:H,valueSpan:f}=this.currentAttr,C=this.assembleAttributeValue(j,w,H,x.until(g));C.loc=f.withEnd(g);let S=s.default.attr({name:L,value:C,loc:x.until(g)});this.currentStartTag.attributes.push(S)}reportSyntaxError(y){throw(0,u.generateSyntaxError)(y,this.offset().collapsed())}assembleConcatenatedValue(y){for(let j=0;j elements do not need end tags. You should remove it"):g.tag===void 0?j="Closing tag without an open tag"):g.tag!==y.name&&(j="Closing tag did not match last open tag <").concat(g.tag,"> (on line ").concat(g.loc.startPosition.line,")")),j)throw(0,u.generateSyntaxError)(j,y.loc)}assembleAttributeValue(y,g,L,j){if(L){if(g)return this.assembleConcatenatedValue(y);if(y.length===1||y.length===2&&y[1].type==="TextNode"&&y[1].chars==="/")return y[0];throw(0,u.generateSyntaxError)("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'",j)}else return y.length>0?y[0]:s.default.text({chars:"",loc:j})}};t.TokenizerEventHandlers=P;var E={parse:_,builders:i.default,print:c.default,traverse:p.default,Walker:n.default},v=class extends d.EntityParser{constructor(){super({})}parse(){}};function _(y){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var L,j,x;let w=g.mode||"precompile",H,f;typeof y=="string"?(H=new e.Source(y,(L=g.meta)===null||L===void 0?void 0:L.moduleName),w==="codemod"?f=(0,h.parseWithoutProcessing)(y,g.parseOptions):f=(0,h.parse)(y,g.parseOptions)):y instanceof e.Source?(H=y,w==="codemod"?f=(0,h.parseWithoutProcessing)(y.source,g.parseOptions):f=(0,h.parse)(y.source,g.parseOptions)):(H=new e.Source("",(j=g.meta)===null||j===void 0?void 0:j.moduleName),f=y);let C;w==="codemod"&&(C=new v);let S=r.SourceSpan.forCharPositions(H,0,H.source.length);f.loc={source:"(program)",start:S.startPosition,end:S.endPosition};let R=new P(H,C,w).acceptTemplate(f);if(g.strictMode&&(R.blockParams=(x=g.locals)!==null&&x!==void 0?x:[]),g&&g.plugins&&g.plugins.ast)for(let M=0,V=g.plugins.ast.length;Mthis.allocate(u));return new l(this,e,r)}};t.SymbolTable=d;var c=class extends d{constructor(e,r){super(),this.templateLocals=e,this.customizeComponentName=r,this.symbols=[],this.upvars=[],this.size=1,this.named=(0,m.dict)(),this.blocks=(0,m.dict)(),this.usedTemplateLocals=[],this._hasEval=!1}getUsedTemplateLocals(){return this.usedTemplateLocals}setHasEval(){this._hasEval=!0}get hasEval(){return this._hasEval}has(e){return this.templateLocals.indexOf(e)!==-1}get(e){let r=this.usedTemplateLocals.indexOf(e);return r!==-1?[r,!0]:(r=this.usedTemplateLocals.length,this.usedTemplateLocals.push(e),[r,!0])}getLocalsMap(){return(0,m.dict)()}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}allocateFree(e,r){r.resolution()===39&&r.isAngleBracket&&(0,h.isUpperCase)(e)&&(e=this.customizeComponentName(e));let u=this.upvars.indexOf(e);return u!==-1||(u=this.upvars.length,this.upvars.push(e)),u}allocateNamed(e){let r=this.named[e];return r||(r=this.named[e]=this.allocate(e)),r}allocateBlock(e){e==="inverse"&&(e="else");let r=this.blocks[e];return r||(r=this.blocks[e]=this.allocate("&".concat(e))),r}allocate(e){return this.symbols.push(e),this.size++}};t.ProgramSymbolTable=c;var l=class extends d{constructor(e,r,u){super(),this.parent=e,this.symbols=r,this.slots=u}get locals(){return this.symbols}has(e){return this.symbols.indexOf(e)!==-1||this.parent.has(e)}get(e){let r=this.symbols.indexOf(e);return r===-1?this.parent.get(e):[this.slots[r],!1]}getLocalsMap(){let e=this.parent.getLocalsMap();return this.symbols.forEach(r=>e[r]=this.get(r)[0]),e}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}setHasEval(){this.parent.setHasEval()}allocateFree(e,r){return this.parent.allocateFree(e,r)}allocateNamed(e){return this.parent.allocateNamed(e)}allocateBlock(e){return this.parent.allocateBlock(e)}allocate(e){return this.parent.allocate(e)}};t.BlockSymbolTable=l}}),qt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/builders.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.BuildElement=t.Builder=void 0;var m=X(),h=le(),d=ce(),c=e(ve());function l(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return l=function(){return n},n}function e(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var a=l();if(a&&a.has(n))return a.get(n);var s={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in n)if(Object.prototype.hasOwnProperty.call(n,o)){var b=i?Object.getOwnPropertyDescriptor(n,o):null;b&&(b.get||b.set)?Object.defineProperty(s,o,b):s[o]=n[o]}return s.default=n,a&&a.set(n,s),s}var r=function(n,a){var s={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&a.indexOf(i)<0&&(s[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(n);o0||i.hash.pairs.length>0}}}),jt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/normalize.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.normalize=P,t.BlockContext=void 0;var m=X(),h=b(Te()),d=Fe(),c=le(),l=ce(),e=Xe(),r=he(),u=ye(),p=b(Le()),n=o(ve()),a=qt(),s=xt();function i(){if(typeof WeakMap!="function")return null;var f=new WeakMap;return i=function(){return f},f}function o(f){if(f&&f.__esModule)return f;if(f===null||typeof f!="object"&&typeof f!="function")return{default:f};var C=i();if(C&&C.has(f))return C.get(f);var S={},R=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var M in f)if(Object.prototype.hasOwnProperty.call(f,M)){var V=R?Object.getOwnPropertyDescriptor(f,M):null;V&&(V.get||V.set)?Object.defineProperty(S,M,V):S[M]=f[M]}return S.default=f,C&&C.set(f,S),S}function b(f){return f&&f.__esModule?f:{default:f}}function P(f){let C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var S;let R=(0,d.preprocess)(f,C),M=(0,m.assign)({strictMode:!1,locals:[]},C),V=e.SymbolTable.top(M.locals,(S=C.customizeComponentName)!==null&&S!==void 0?S:W=>W),G=new E(f,M,V),K=new _(G),U=new L(G.loc(R.loc),R.body.map(W=>K.normalize(W)),G).assertTemplate(V),Z=V.getUsedTemplateLocals();return[U,Z]}var E=class{constructor(f,C,S){this.source=f,this.options=C,this.table=S,this.builder=new a.Builder}get strict(){return this.options.strictMode||!1}loc(f){return this.source.spanFor(f)}resolutionFor(f,C){if(this.strict)return{resolution:n.STRICT_RESOLUTION};if(this.isFreeVar(f)){let S=C(f);return S===null?{resolution:"error",path:w(f),head:H(f)}:{resolution:S}}else return{resolution:n.STRICT_RESOLUTION}}isFreeVar(f){return f.type==="PathExpression"?f.head.type!=="VarHead"?!1:!this.table.has(f.head.name):f.path.type==="PathExpression"?this.isFreeVar(f.path):!1}hasBinding(f){return this.table.has(f)}child(f){return new E(this.source,this.options,this.table.child(f))}customizeComponentName(f){return this.options.customizeComponentName?this.options.customizeComponentName(f):f}};t.BlockContext=E;var v=class{constructor(f){this.block=f}normalize(f,C){switch(f.type){case"NullLiteral":case"BooleanLiteral":case"NumberLiteral":case"StringLiteral":case"UndefinedLiteral":return this.block.builder.literal(f.value,this.block.loc(f.loc));case"PathExpression":return this.path(f,C);case"SubExpression":{let S=this.block.resolutionFor(f,s.SexpSyntaxContext);if(S.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`".concat(S.path,"`) but ").concat(S.head," was not in scope"),f.loc);return this.block.builder.sexp(this.callParts(f,S.resolution),this.block.loc(f.loc))}}}path(f,C){let S=this.block.loc(f.head.loc),R=[],M=S;for(let V of f.tail)M=M.sliceStartChars({chars:V.length,skipStart:1}),R.push(new c.SourceSlice({loc:M,chars:V}));return this.block.builder.path(this.ref(f.head,C),R,this.block.loc(f.loc))}callParts(f,C){let{path:S,params:R,hash:M}=f,V=this.normalize(S,C),G=R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K=l.SpanList.range(G,V.loc.collapse("end")),U=this.block.loc(M.loc),Z=l.SpanList.range([K,U]),W=this.block.builder.positional(R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K),T=this.block.builder.named(M.pairs.map(N=>this.namedArgument(N)),this.block.loc(M.loc));return{callee:V,args:this.block.builder.args(W,T,Z)}}namedArgument(f){let S=this.block.loc(f.loc).sliceStartChars({chars:f.key.length});return this.block.builder.namedArgument(new c.SourceSlice({chars:f.key,loc:S}),this.normalize(f.value,n.ARGUMENT_RESOLUTION))}ref(f,C){let{block:S}=this,{builder:R,table:M}=S,V=S.loc(f.loc);switch(f.type){case"ThisHead":return R.self(V);case"AtHead":{let G=M.allocateNamed(f.name);return R.at(f.name,G,V)}case"VarHead":if(S.hasBinding(f.name)){let[G,K]=M.get(f.name);return S.builder.localVar(f.name,G,K,V)}else{let G=S.strict?n.STRICT_RESOLUTION:C,K=S.table.allocateFree(f.name,G);return S.builder.freeVar({name:f.name,context:G,symbol:K,loc:V})}}}},_=class{constructor(f){this.block=f}normalize(f){switch(f.type){case"PartialStatement":throw new Error("Handlebars partial syntax ({{> ...}}) is not allowed in Glimmer");case"BlockStatement":return this.BlockStatement(f);case"ElementNode":return new y(this.block).ElementNode(f);case"MustacheStatement":return this.MustacheStatement(f);case"MustacheCommentStatement":return this.MustacheCommentStatement(f);case"CommentStatement":{let C=this.block.loc(f.loc);return new n.HtmlComment({loc:C,text:C.slice({skipStart:4,skipEnd:3}).toSlice(f.value)})}case"TextNode":return new n.HtmlText({loc:this.block.loc(f.loc),chars:f.chars})}}MustacheCommentStatement(f){let C=this.block.loc(f.loc),S;return C.asString().slice(0,5)==="{{!--"?S=C.slice({skipStart:5,skipEnd:4}):S=C.slice({skipStart:3,skipEnd:2}),new n.GlimmerComment({loc:C,text:S.toSlice(f.value)})}MustacheStatement(f){let{escaped:C}=f,S=this.block.loc(f.loc),R=this.expr.callParts({path:f.path,params:f.params,hash:f.hash},(0,s.AppendSyntaxContext)(f)),M=R.args.isEmpty()?R.callee:this.block.builder.sexp(R,S);return this.block.builder.append({table:this.block.table,trusting:!C,value:M},S)}BlockStatement(f){let{program:C,inverse:S}=f,R=this.block.loc(f.loc),M=this.block.resolutionFor(f,s.BlockSyntaxContext);if(M.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`{{#".concat(M.path,"}}`) but ").concat(M.head," was not in scope"),R);let V=this.expr.callParts(f,M.resolution);return this.block.builder.blockStatement((0,m.assign)({symbols:this.block.table,program:this.Block(C),inverse:S?this.Block(S):null},V),R)}Block(f){let{body:C,loc:S,blockParams:R}=f,M=this.block.child(R),V=new _(M);return new j(this.block.loc(S),C.map(G=>V.normalize(G)),this.block).assertBlock(M.table)}get expr(){return new v(this.block)}},y=class{constructor(f){this.ctx=f}ElementNode(f){let{tag:C,selfClosing:S,comments:R}=f,M=this.ctx.loc(f.loc),[V,...G]=C.split("."),K=this.classifyTag(V,G,f.loc),U=f.attributes.filter(A=>A.name[0]!=="@").map(A=>this.attr(A)),Z=f.attributes.filter(A=>A.name[0]==="@").map(A=>this.arg(A)),W=f.modifiers.map(A=>this.modifier(A)),T=this.ctx.child(f.blockParams),N=new _(T),k=f.children.map(A=>N.normalize(A)),B=this.ctx.builder.element({selfClosing:S,attrs:U,componentArgs:Z,modifiers:W,comments:R.map(A=>new _(this.ctx).MustacheCommentStatement(A))}),O=new x(B,M,k,this.ctx),z=this.ctx.loc(f.loc).sliceStartChars({chars:C.length,skipStart:1});if(K==="ElementHead")return C[0]===":"?O.assertNamedBlock(z.slice({skipStart:1}).toSlice(C.slice(1)),T.table):O.assertElement(z.toSlice(C),f.blockParams.length>0);if(f.selfClosing)return B.selfClosingComponent(K,M);{let A=O.assertComponent(C,T.table,f.blockParams.length>0);return B.componentWithNamedBlocks(K,A,M)}}modifier(f){let C=this.ctx.resolutionFor(f,s.ModifierSyntaxContext);if(C.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`{{#".concat(C.path,"}}`) as a modifier, but ").concat(C.head," was not in scope. Try adding `this` to the beginning of the path"),f.loc);let S=this.expr.callParts(f,C.resolution);return this.ctx.builder.modifier(S,this.ctx.loc(f.loc))}mustacheAttr(f){let C=this.ctx.builder.sexp(this.expr.callParts(f,(0,s.AttrValueSyntaxContext)(f)),this.ctx.loc(f.loc));return C.args.isEmpty()?C.callee:C}attrPart(f){switch(f.type){case"MustacheStatement":return{expr:this.mustacheAttr(f),trusting:!f.escaped};case"TextNode":return{expr:this.ctx.builder.literal(f.chars,this.ctx.loc(f.loc)),trusting:!0}}}attrValue(f){switch(f.type){case"ConcatStatement":{let C=f.parts.map(S=>this.attrPart(S).expr);return{expr:this.ctx.builder.interpolate(C,this.ctx.loc(f.loc)),trusting:!1}}default:return this.attrPart(f)}}attr(f){if(f.name==="...attributes")return this.ctx.builder.splatAttr(this.ctx.table.allocateBlock("attrs"),this.ctx.loc(f.loc));let C=this.ctx.loc(f.loc),S=C.sliceStartChars({chars:f.name.length}).toSlice(f.name),R=this.attrValue(f.value);return this.ctx.builder.attr({name:S,value:R.expr,trusting:R.trusting},C)}maybeDeprecatedCall(f,C){if(this.ctx.strict||C.type!=="MustacheStatement")return null;let{path:S}=C;if(S.type!=="PathExpression"||S.head.type!=="VarHead")return null;let{name:R}=S.head;if(R==="has-block"||R==="has-block-params"||this.ctx.hasBinding(R)||S.tail.length!==0||C.params.length!==0||C.hash.pairs.length!==0)return null;let M=n.LooseModeResolution.attr(),V=this.ctx.builder.freeVar({name:R,context:M,symbol:this.ctx.table.allocateFree(R,M),loc:S.loc});return{expr:this.ctx.builder.deprecatedCall(f,V,C.loc),trusting:!1}}arg(f){let C=this.ctx.loc(f.loc),S=C.sliceStartChars({chars:f.name.length}).toSlice(f.name),R=this.maybeDeprecatedCall(S,f.value)||this.attrValue(f.value);return this.ctx.builder.arg({name:S,value:R.expr,trusting:R.trusting},C)}classifyTag(f,C,S){let R=(0,u.isUpperCase)(f),M=f[0]==="@"||f==="this"||this.ctx.hasBinding(f);if(this.ctx.strict&&!M){if(R)throw(0,r.generateSyntaxError)("Attempted to invoke a component that was not in scope in a strict mode template, `<".concat(f,">`. If you wanted to create an element with that name, convert it to lowercase - `<").concat(f.toLowerCase(),">`"),S);return"ElementHead"}let V=M||R,G=S.sliceStartChars({skipStart:1,chars:f.length}),K=C.reduce((W,T)=>W+1+T.length,0),U=G.getEnd().move(K),Z=G.withEnd(U);if(V){let W=p.default.path({head:p.default.head(f,G),tail:C,loc:Z}),T=this.ctx.resolutionFor(W,s.ComponentSyntaxContext);if(T.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`<".concat(T.path,">`) but ").concat(T.head," was not in scope"),S);return new v(this.ctx).normalize(W,T.resolution)}if(C.length>0)throw(0,r.generateSyntaxError)("You used ".concat(f,".").concat(C.join(".")," as a tag name, but ").concat(f," is not in scope"),S);return"ElementHead"}get expr(){return new v(this.ctx)}},g=class{constructor(f,C,S){this.loc=f,this.children=C,this.block=S,this.namedBlocks=C.filter(R=>R instanceof n.NamedBlock),this.hasSemanticContent=Boolean(C.filter(R=>{if(R instanceof n.NamedBlock)return!1;switch(R.type){case"GlimmerComment":case"HtmlComment":return!1;case"HtmlText":return!/^\s*$/.exec(R.chars);default:return!0}}).length),this.nonBlockChildren=C.filter(R=>!(R instanceof n.NamedBlock))}},L=class extends g{assertTemplate(f){if((0,m.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)("Unexpected named block at the top-level of a template",this.loc);return this.block.builder.template(f,this.nonBlockChildren,this.block.loc(this.loc))}},j=class extends g{assertBlock(f){if((0,m.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)("Unexpected named block nested in a normal block",this.loc);return this.block.builder.block(f,this.nonBlockChildren,this.loc)}},x=class extends g{constructor(f,C,S,R){super(C,S,R),this.el=f}assertNamedBlock(f,C){if(this.el.base.selfClosing)throw(0,r.generateSyntaxError)("<:".concat(f.chars,"/> is not a valid named block: named blocks cannot be self-closing"),this.loc);if((0,m.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)("Unexpected named block inside <:".concat(f.chars,"> named block: named blocks cannot contain nested named blocks"),this.loc);if(!(0,u.isLowerCase)(f.chars))throw(0,r.generateSyntaxError)("<:".concat(f.chars,"> is not a valid named block, and named blocks must begin with a lowercase letter"),this.loc);if(this.el.base.attrs.length>0||this.el.base.componentArgs.length>0||this.el.base.modifiers.length>0)throw(0,r.generateSyntaxError)("named block <:".concat(f.chars,"> cannot have attributes, arguments, or modifiers"),this.loc);let S=l.SpanList.range(this.nonBlockChildren,this.loc);return this.block.builder.namedBlock(f,this.block.builder.block(C,this.nonBlockChildren,S),this.loc)}assertElement(f,C){if(C)throw(0,r.generateSyntaxError)("Unexpected block params in <".concat(f,">: simple elements cannot have block params"),this.loc);if((0,m.isPresent)(this.namedBlocks)){let S=this.namedBlocks.map(R=>R.name);if(S.length===1)throw(0,r.generateSyntaxError)("Unexpected named block <:foo> inside <".concat(f.chars,"> HTML element"),this.loc);{let R=S.map(M=>"<:".concat(M.chars,">")).join(", ");throw(0,r.generateSyntaxError)("Unexpected named blocks inside <".concat(f.chars,"> HTML element (").concat(R,")"),this.loc)}}return this.el.simple(f,this.nonBlockChildren,this.loc)}assertComponent(f,C,S){if((0,m.isPresent)(this.namedBlocks)&&this.hasSemanticContent)throw(0,r.generateSyntaxError)("Unexpected content inside <".concat(f,"> component invocation: when using named blocks, the tag cannot contain other content"),this.loc);if((0,m.isPresent)(this.namedBlocks)){if(S)throw(0,r.generateSyntaxError)("Unexpected block params list on <".concat(f,"> component invocation: when passing named blocks, the invocation tag cannot take block params"),this.loc);let R=new Set;for(let M of this.namedBlocks){let V=M.name.chars;if(R.has(V))throw(0,r.generateSyntaxError)("Component had two named blocks with the same name, `<:".concat(V,">`. Only one block with a given name may be passed"),this.loc);if(V==="inverse"&&R.has("else")||V==="else"&&R.has("inverse"))throw(0,r.generateSyntaxError)("Component has both <:else> and <:inverse> block. <:inverse> is an alias for <:else>",this.loc);R.add(V)}return this.namedBlocks}else return[this.block.builder.namedBlock(c.SourceSlice.synthetic("default"),this.block.builder.block(C,this.nonBlockChildren,this.loc),this.loc)]}};function w(f){return f.type!=="PathExpression"&&f.path.type==="PathExpression"?w(f.path):new h.default({entityEncoding:"raw"}).print(f)}function H(f){if(f.type==="PathExpression")switch(f.head.type){case"AtHead":case"VarHead":return f.head.name;case"ThisHead":return"this"}else return f.path.type==="PathExpression"?H(f.path):new h.default({entityEncoding:"raw"}).print(f)}}}),Ze=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/keywords.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.isKeyword=m,t.KEYWORDS_TYPES=void 0;function m(d){return d in h}var h={component:["Call","Append","Block"],debugger:["Append"],"each-in":["Block"],each:["Block"],"has-block-params":["Call","Append"],"has-block":["Call","Append"],helper:["Call","Append"],if:["Call","Append","Block"],"in-element":["Block"],let:["Block"],"link-to":["Append","Block"],log:["Call","Append"],modifier:["Call"],mount:["Append"],mut:["Call","Append"],outlet:["Append"],"query-params":["Call"],readonly:["Call","Append"],unbound:["Call","Append"],unless:["Call","Append","Block"],with:["Block"],yield:["Append"]};t.KEYWORDS_TYPES=h}}),Mt=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/get-template-locals.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),t.getTemplateLocals=r;var m=Ze(),h=Fe(),d=c(Ne());function c(u){return u&&u.__esModule?u:{default:u}}function l(u,p,n){if(u.type==="PathExpression"){if(u.head.type==="AtHead"||u.head.type==="ThisHead")return;let a=u.head.name;if(p.indexOf(a)===-1)return a}else if(u.type==="ElementNode"){let{tag:a}=u,s=a.charAt(0);return s===":"||s==="@"||!n.includeHtmlElements&&a.indexOf(".")===-1&&a.toLowerCase()===a||a.substr(0,5)==="this."||p.indexOf(a)!==-1?void 0:a}}function e(u,p,n,a){let s=l(p,n,a);(Array.isArray(s)?s:[s]).forEach(i=>{i!==void 0&&i[0]!=="@"&&u.add(i.split(".")[0])})}function r(u){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{includeHtmlElements:!1,includeKeywords:!1},n=(0,h.preprocess)(u),a=new Set,s=[];(0,d.default)(n,{Block:{enter(o){let{blockParams:b}=o;b.forEach(P=>{s.push(P)})},exit(o){let{blockParams:b}=o;b.forEach(()=>{s.pop()})}},ElementNode:{enter(o){o.blockParams.forEach(b=>{s.push(b)}),e(a,o,s,p)},exit(o){let{blockParams:b}=o;b.forEach(()=>{s.pop()})}},PathExpression(o){e(a,o,s,p)}});let i=[];return a.forEach(o=>i.push(o)),p!=null&&p.includeKeywords||(i=i.filter(o=>!(0,m.isKeyword)(o))),i}}}),Ht=F({"node_modules/@glimmer/syntax/dist/commonjs/es2017/index.js"(t){"use strict";I(),Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Source",{enumerable:!0,get:function(){return m.Source}}),Object.defineProperty(t,"builders",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,"normalize",{enumerable:!0,get:function(){return l.normalize}}),Object.defineProperty(t,"SymbolTable",{enumerable:!0,get:function(){return e.SymbolTable}}),Object.defineProperty(t,"BlockSymbolTable",{enumerable:!0,get:function(){return e.BlockSymbolTable}}),Object.defineProperty(t,"ProgramSymbolTable",{enumerable:!0,get:function(){return e.ProgramSymbolTable}}),Object.defineProperty(t,"generateSyntaxError",{enumerable:!0,get:function(){return r.generateSyntaxError}}),Object.defineProperty(t,"preprocess",{enumerable:!0,get:function(){return u.preprocess}}),Object.defineProperty(t,"print",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,"sortByLoc",{enumerable:!0,get:function(){return n.sortByLoc}}),Object.defineProperty(t,"Walker",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"Path",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"traverse",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"cannotRemoveNode",{enumerable:!0,get:function(){return i.cannotRemoveNode}}),Object.defineProperty(t,"cannotReplaceNode",{enumerable:!0,get:function(){return i.cannotReplaceNode}}),Object.defineProperty(t,"WalkerPath",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"isKeyword",{enumerable:!0,get:function(){return b.isKeyword}}),Object.defineProperty(t,"KEYWORDS_TYPES",{enumerable:!0,get:function(){return b.KEYWORDS_TYPES}}),Object.defineProperty(t,"getTemplateLocals",{enumerable:!0,get:function(){return P.getTemplateLocals}}),Object.defineProperty(t,"SourceSlice",{enumerable:!0,get:function(){return E.SourceSlice}}),Object.defineProperty(t,"SourceSpan",{enumerable:!0,get:function(){return v.SourceSpan}}),Object.defineProperty(t,"SpanList",{enumerable:!0,get:function(){return _.SpanList}}),Object.defineProperty(t,"maybeLoc",{enumerable:!0,get:function(){return _.maybeLoc}}),Object.defineProperty(t,"loc",{enumerable:!0,get:function(){return _.loc}}),Object.defineProperty(t,"hasSpan",{enumerable:!0,get:function(){return _.hasSpan}}),Object.defineProperty(t,"node",{enumerable:!0,get:function(){return y.node}}),t.ASTv2=t.AST=t.ASTv1=void 0;var m=De(),h=j(ke()),d=L(_t());t.ASTv1=d,t.AST=d;var c=L(ve());t.ASTv2=c;var l=jt(),e=Xe(),r=he(),u=Fe(),p=j(We()),n=Ue(),a=j(Je()),s=j(Ne()),i=Ye(),o=j(Qe()),b=Ze(),P=Mt(),E=le(),v=ue(),_=ce(),y=ne();function g(){if(typeof WeakMap!="function")return null;var x=new WeakMap;return g=function(){return x},x}function L(x){if(x&&x.__esModule)return x;if(x===null||typeof x!="object"&&typeof x!="function")return{default:x};var w=g();if(w&&w.has(x))return w.get(x);var H={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var C in x)if(Object.prototype.hasOwnProperty.call(x,C)){var S=f?Object.getOwnPropertyDescriptor(x,C):null;S&&(S.get||S.set)?Object.defineProperty(H,C,S):H[C]=x[C]}return H.default=x,w&&w.set(x,H),H}function j(x){return x&&x.__esModule?x:{default:x}}}}),Vt=F({"src/language-handlebars/parser-glimmer.js"(t,m){I();var{LinesAndColumns:h}=it(),d=at(),{locStart:c,locEnd:l}=st();function e(){return{name:"addBackslash",visitor:{All(n){var a;let s=(a=n.children)!==null&&a!==void 0?a:n.body;if(s)for(let i=0;i{let{line:o,column:b}=i;return a.indexForLocation({line:o-1,column:b})};return()=>({name:"addOffset",visitor:{All(i){let{start:o,end:b}=i.loc;o.offset=s(o),b.offset=s(b)}}})}function u(n){let{preprocess:a}=Ht(),s;try{s=a(n,{mode:"codemod",plugins:{ast:[e,r(n)]}})}catch(i){let o=p(i);throw o?d(i.message,o):i}return s}function p(n){let{location:a,hash:s}=n;if(a){let{start:i,end:o}=a;return typeof o.line!="number"?{start:i}:a}if(s){let{loc:{last_line:i,last_column:o}}=s;return{start:{line:i,column:o+1}}}}m.exports={parsers:{glimmer:{parse:u,astFormat:"glimmer",locStart:c,locEnd:l}}}}}),Kt=Vt();export{Kt as default}; diff --git a/node_modules/prettier/esm/parser-graphql.mjs b/node_modules/prettier/esm/parser-graphql.mjs new file mode 100644 index 0000000..684542f --- /dev/null +++ b/node_modules/prettier/esm/parser-graphql.mjs @@ -0,0 +1,15 @@ +"use strict";var X=Object.getOwnPropertyNames,re=(l,T)=>function(){return l&&(T=(0,l[X(l)[0]])(l=0)),T},K=(l,T)=>function(){return T||(0,l[X(l)[0]])((T={exports:{}}).exports,T),T.exports},L=re({""(){}}),ie=K({"src/common/parser-create-error.js"(l,T){"use strict";L();function a(p,r){let _=new SyntaxError(p+" ("+r.start.line+":"+r.start.column+")");return _.loc=r,_}T.exports=a}}),ae=K({"src/utils/try-combinations.js"(l,T){"use strict";L();function a(){let p;for(var r=arguments.length,_=new Array(r),E=0;E120){for(var t=Math.floor(i/80),s=i%80,y=[],f=0;f"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function e(f){return Function.toString.call(f).indexOf("[native code]")!==-1}function n(f,m){return n=Object.setPrototypeOf||function(d,c){return d.__proto__=c,d},n(f,m)}function t(f){return t=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)},t(f)}var s=function(f){O(o,f);var m=S(o);function o(d,c,v,A,x,b,P){var U,q,V,G,C;k(this,o),C=m.call(this,d);var R=Array.isArray(c)?c.length!==0?c:void 0:c?[c]:void 0,Y=v;if(!Y&&R){var J;Y=(J=R[0].loc)===null||J===void 0?void 0:J.source}var F=A;!F&&R&&(F=R.reduce(function(w,M){return M.loc&&w.push(M.loc.start),w},[])),F&&F.length===0&&(F=void 0);var B;A&&v?B=A.map(function(w){return(0,r.getLocation)(v,w)}):R&&(B=R.reduce(function(w,M){return M.loc&&w.push((0,r.getLocation)(M.loc.source,M.loc.start)),w},[]));var j=P;if(j==null&&b!=null){var Q=b.extensions;(0,a.default)(Q)&&(j=Q)}return Object.defineProperties(h(C),{name:{value:"GraphQLError"},message:{value:d,enumerable:!0,writable:!0},locations:{value:(U=B)!==null&&U!==void 0?U:void 0,enumerable:B!=null},path:{value:x!=null?x:void 0,enumerable:x!=null},nodes:{value:R!=null?R:void 0},source:{value:(q=Y)!==null&&q!==void 0?q:void 0},positions:{value:(V=F)!==null&&V!==void 0?V:void 0},originalError:{value:b},extensions:{value:(G=j)!==null&&G!==void 0?G:void 0,enumerable:j!=null}}),b!=null&&b.stack?(Object.defineProperty(h(C),"stack",{value:b.stack,writable:!0,configurable:!0}),I(C)):(Error.captureStackTrace?Error.captureStackTrace(h(C),o):Object.defineProperty(h(C),"stack",{value:Error().stack,writable:!0,configurable:!0}),C)}return D(o,[{key:"toString",value:function(){return y(this)}},{key:p.SYMBOL_TO_STRING_TAG,get:function(){return"Object"}}]),o}(N(Error));l.GraphQLError=s;function y(f){var m=f.message;if(f.nodes)for(var o=0,d=f.nodes;o",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"});l.TokenKind=T}}),ne=K({"node_modules/graphql/jsutils/inspect.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.default=E;var T=a(Z());function a(h){return h&&h.__esModule?h:{default:h}}function p(h){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?p=function(i){return typeof i}:p=function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},p(h)}var r=10,_=2;function E(h){return k(h,[])}function k(h,N){switch(p(h)){case"string":return JSON.stringify(h);case"function":return h.name?"[function ".concat(h.name,"]"):"[function]";case"object":return h===null?"null":g(h,N);default:return String(h)}}function g(h,N){if(N.indexOf(h)!==-1)return"[Circular]";var i=[].concat(N,[h]),u=S(h);if(u!==void 0){var e=u.call(h);if(e!==h)return typeof e=="string"?e:k(e,i)}else if(Array.isArray(h))return O(h,i);return D(h,i)}function D(h,N){var i=Object.keys(h);if(i.length===0)return"{}";if(N.length>_)return"["+I(h)+"]";var u=i.map(function(e){var n=k(h[e],N);return e+": "+n});return"{ "+u.join(", ")+" }"}function O(h,N){if(h.length===0)return"[]";if(N.length>_)return"[Array]";for(var i=Math.min(r,h.length),u=h.length-i,e=[],n=0;n1&&e.push("... ".concat(u," more items")),"["+e.join(", ")+"]"}function S(h){var N=h[String(T.default)];if(typeof N=="function")return N;if(typeof h.inspect=="function")return h.inspect}function I(h){var N=Object.prototype.toString.call(h).replace(/^\[object /,"").replace(/]$/,"");if(N==="Object"&&typeof h.constructor=="function"){var i=h.constructor.name;if(typeof i=="string"&&i!=="")return i}return N}}}),de=K({"node_modules/graphql/jsutils/devAssert.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.default=T;function T(a,p){var r=Boolean(a);if(!r)throw new Error(p)}}}),he=K({"node_modules/graphql/jsutils/instanceOf.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.default=void 0;var T=a(ne());function a(r){return r&&r.__esModule?r:{default:r}}var p=function(_,E){return _ instanceof E};l.default=p}}),ve=K({"node_modules/graphql/language/source.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.isSource=D,l.Source=void 0;var T=H(),a=_(ne()),p=_(de()),r=_(he());function _(O){return O&&O.__esModule?O:{default:O}}function E(O,S){for(var I=0;I1&&arguments[1]!==void 0?arguments[1]:"GraphQL request",h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{line:1,column:1};typeof S=="string"||(0,p.default)(0,"Body must be a string. Received: ".concat((0,a.default)(S),".")),this.body=S,this.name=I,this.locationOffset=h,this.locationOffset.line>0||(0,p.default)(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||(0,p.default)(0,"column in locationOffset is 1-indexed and must be positive.")}return k(O,[{key:T.SYMBOL_TO_STRING_TAG,get:function(){return"Source"}}]),O}();l.Source=g;function D(O){return(0,r.default)(O,g)}}}),Te=K({"node_modules/graphql/language/directiveLocation.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.DirectiveLocation=void 0;var T=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"});l.DirectiveLocation=T}}),_e=K({"node_modules/graphql/language/blockString.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.dedentBlockStringValue=T,l.getBlockStringIndentation=p,l.printBlockString=r;function T(_){var E=_.split(/\r\n|[\n\r]/g),k=p(_);if(k!==0)for(var g=1;gD&&a(E[O-1]);)--O;return E.slice(D,O).join(` +`)}function a(_){for(var E=0;E<_.length;++E)if(_[E]!==" "&&_[E]!==" ")return!1;return!0}function p(_){for(var E,k=!0,g=!0,D=0,O=null,S=0;S<_.length;++S)switch(_.charCodeAt(S)){case 13:_.charCodeAt(S+1)===10&&++S;case 10:k=!1,g=!0,D=0;break;case 9:case 32:++D;break;default:g&&!k&&(O===null||D1&&arguments[1]!==void 0?arguments[1]:"",k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,g=_.indexOf(` +`)===-1,D=_[0]===" "||_[0]===" ",O=_[_.length-1]==='"',S=_[_.length-1]==="\\",I=!g||O||S||k,h="";return I&&!(g&&D)&&(h+=` +`+E),h+=E?_.replace(/\n/g,` +`+E):_,I&&(h+=` +`),'"""'+h.replace(/"""/g,'\\"""')+'"""'}}}),Ee=K({"node_modules/graphql/language/lexer.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.isPunctuatorTokenKind=E,l.Lexer=void 0;var T=W(),a=ee(),p=te(),r=_e(),_=function(){function t(y){var f=new a.Token(p.TokenKind.SOF,0,0,0,0,null);this.source=y,this.lastToken=f,this.token=f,this.line=1,this.lineStart=0}var s=t.prototype;return s.advance=function(){this.lastToken=this.token;var f=this.token=this.lookahead();return f},s.lookahead=function(){var f=this.token;if(f.kind!==p.TokenKind.EOF)do{var m;f=(m=f.next)!==null&&m!==void 0?m:f.next=g(this,f)}while(f.kind===p.TokenKind.COMMENT);return f},t}();l.Lexer=_;function E(t){return t===p.TokenKind.BANG||t===p.TokenKind.DOLLAR||t===p.TokenKind.AMP||t===p.TokenKind.PAREN_L||t===p.TokenKind.PAREN_R||t===p.TokenKind.SPREAD||t===p.TokenKind.COLON||t===p.TokenKind.EQUALS||t===p.TokenKind.AT||t===p.TokenKind.BRACKET_L||t===p.TokenKind.BRACKET_R||t===p.TokenKind.BRACE_L||t===p.TokenKind.PIPE||t===p.TokenKind.BRACE_R}function k(t){return isNaN(t)?p.TokenKind.EOF:t<127?JSON.stringify(String.fromCharCode(t)):'"\\u'.concat(("00"+t.toString(16).toUpperCase()).slice(-4),'"')}function g(t,s){for(var y=t.source,f=y.body,m=f.length,o=s.end;o31||d===9));return new a.Token(p.TokenKind.COMMENT,s,c,y,f,m,o.slice(s+1,c))}function S(t,s,y,f,m,o){var d=t.body,c=y,v=s,A=!1;if(c===45&&(c=d.charCodeAt(++v)),c===48){if(c=d.charCodeAt(++v),c>=48&&c<=57)throw(0,T.syntaxError)(t,v,"Invalid number, unexpected digit after 0: ".concat(k(c),"."))}else v=I(t,v,c),c=d.charCodeAt(v);if(c===46&&(A=!0,c=d.charCodeAt(++v),v=I(t,v,c),c=d.charCodeAt(v)),(c===69||c===101)&&(A=!0,c=d.charCodeAt(++v),(c===43||c===45)&&(c=d.charCodeAt(++v)),v=I(t,v,c),c=d.charCodeAt(v)),c===46||n(c))throw(0,T.syntaxError)(t,v,"Invalid number, expected digit but got: ".concat(k(c),"."));return new a.Token(A?p.TokenKind.FLOAT:p.TokenKind.INT,s,v,f,m,o,d.slice(s,v))}function I(t,s,y){var f=t.body,m=s,o=y;if(o>=48&&o<=57){do o=f.charCodeAt(++m);while(o>=48&&o<=57);return m}throw(0,T.syntaxError)(t,m,"Invalid number, expected digit but got: ".concat(k(o),"."))}function h(t,s,y,f,m){for(var o=t.body,d=s+1,c=d,v=0,A="";d=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:-1}function e(t,s,y,f,m){for(var o=t.body,d=o.length,c=s+1,v=0;c!==d&&!isNaN(v=o.charCodeAt(c))&&(v===95||v>=48&&v<=57||v>=65&&v<=90||v>=97&&v<=122);)++c;return new a.Token(p.TokenKind.NAME,s,c,y,f,m,o.slice(s,c))}function n(t){return t===95||t>=65&&t<=90||t>=97&&t<=122}}}),me=K({"node_modules/graphql/language/parser.js"(l){"use strict";L(),Object.defineProperty(l,"__esModule",{value:!0}),l.parse=g,l.parseValue=D,l.parseType=O,l.Parser=void 0;var T=W(),a=le(),p=ee(),r=te(),_=ve(),E=Te(),k=Ee();function g(N,i){var u=new S(N,i);return u.parseDocument()}function D(N,i){var u=new S(N,i);u.expectToken(r.TokenKind.SOF);var e=u.parseValueLiteral(!1);return u.expectToken(r.TokenKind.EOF),e}function O(N,i){var u=new S(N,i);u.expectToken(r.TokenKind.SOF);var e=u.parseTypeReference();return u.expectToken(r.TokenKind.EOF),e}var S=function(){function N(u,e){var n=(0,_.isSource)(u)?u:new _.Source(u);this._lexer=new k.Lexer(n),this._options=e}var i=N.prototype;return i.parseName=function(){var e=this.expectToken(r.TokenKind.NAME);return{kind:a.Kind.NAME,value:e.value,loc:this.loc(e)}},i.parseDocument=function(){var e=this._lexer.token;return{kind:a.Kind.DOCUMENT,definitions:this.many(r.TokenKind.SOF,this.parseDefinition,r.TokenKind.EOF),loc:this.loc(e)}},i.parseDefinition=function(){if(this.peek(r.TokenKind.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(r.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},i.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(r.TokenKind.BRACE_L))return{kind:a.Kind.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var n=this.parseOperationType(),t;return this.peek(r.TokenKind.NAME)&&(t=this.parseName()),{kind:a.Kind.OPERATION_DEFINITION,operation:n,name:t,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},i.parseOperationType=function(){var e=this.expectToken(r.TokenKind.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},i.parseVariableDefinitions=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseVariableDefinition,r.TokenKind.PAREN_R)},i.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:a.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(r.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(r.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},i.parseVariable=function(){var e=this._lexer.token;return this.expectToken(r.TokenKind.DOLLAR),{kind:a.Kind.VARIABLE,name:this.parseName(),loc:this.loc(e)}},i.parseSelectionSet=function(){var e=this._lexer.token;return{kind:a.Kind.SELECTION_SET,selections:this.many(r.TokenKind.BRACE_L,this.parseSelection,r.TokenKind.BRACE_R),loc:this.loc(e)}},i.parseSelection=function(){return this.peek(r.TokenKind.SPREAD)?this.parseFragment():this.parseField()},i.parseField=function(){var e=this._lexer.token,n=this.parseName(),t,s;return this.expectOptionalToken(r.TokenKind.COLON)?(t=n,s=this.parseName()):s=n,{kind:a.Kind.FIELD,alias:t,name:s,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(r.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(e)}},i.parseArguments=function(e){var n=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(r.TokenKind.PAREN_L,n,r.TokenKind.PAREN_R)},i.parseArgument=function(){var e=this._lexer.token,n=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:a.Kind.ARGUMENT,name:n,value:this.parseValueLiteral(!1),loc:this.loc(e)}},i.parseConstArgument=function(){var e=this._lexer.token;return{kind:a.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(r.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},i.parseFragment=function(){var e=this._lexer.token;this.expectToken(r.TokenKind.SPREAD);var n=this.expectOptionalKeyword("on");return!n&&this.peek(r.TokenKind.NAME)?{kind:a.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:a.Kind.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},i.parseFragmentDefinition=function(){var e,n=this._lexer.token;return this.expectKeyword("fragment"),((e=this._options)===null||e===void 0?void 0:e.experimentalFragmentVariables)===!0?{kind:a.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}:{kind:a.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},i.parseFragmentName=function(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()},i.parseValueLiteral=function(e){var n=this._lexer.token;switch(n.kind){case r.TokenKind.BRACKET_L:return this.parseList(e);case r.TokenKind.BRACE_L:return this.parseObject(e);case r.TokenKind.INT:return this._lexer.advance(),{kind:a.Kind.INT,value:n.value,loc:this.loc(n)};case r.TokenKind.FLOAT:return this._lexer.advance(),{kind:a.Kind.FLOAT,value:n.value,loc:this.loc(n)};case r.TokenKind.STRING:case r.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case r.TokenKind.NAME:switch(this._lexer.advance(),n.value){case"true":return{kind:a.Kind.BOOLEAN,value:!0,loc:this.loc(n)};case"false":return{kind:a.Kind.BOOLEAN,value:!1,loc:this.loc(n)};case"null":return{kind:a.Kind.NULL,loc:this.loc(n)};default:return{kind:a.Kind.ENUM,value:n.value,loc:this.loc(n)}}case r.TokenKind.DOLLAR:if(!e)return this.parseVariable();break}throw this.unexpected()},i.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:a.Kind.STRING,value:e.value,block:e.kind===r.TokenKind.BLOCK_STRING,loc:this.loc(e)}},i.parseList=function(e){var n=this,t=this._lexer.token,s=function(){return n.parseValueLiteral(e)};return{kind:a.Kind.LIST,values:this.any(r.TokenKind.BRACKET_L,s,r.TokenKind.BRACKET_R),loc:this.loc(t)}},i.parseObject=function(e){var n=this,t=this._lexer.token,s=function(){return n.parseObjectField(e)};return{kind:a.Kind.OBJECT,fields:this.any(r.TokenKind.BRACE_L,s,r.TokenKind.BRACE_R),loc:this.loc(t)}},i.parseObjectField=function(e){var n=this._lexer.token,t=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:a.Kind.OBJECT_FIELD,name:t,value:this.parseValueLiteral(e),loc:this.loc(n)}},i.parseDirectives=function(e){for(var n=[];this.peek(r.TokenKind.AT);)n.push(this.parseDirective(e));return n},i.parseDirective=function(e){var n=this._lexer.token;return this.expectToken(r.TokenKind.AT),{kind:a.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(n)}},i.parseTypeReference=function(){var e=this._lexer.token,n;return this.expectOptionalToken(r.TokenKind.BRACKET_L)?(n=this.parseTypeReference(),this.expectToken(r.TokenKind.BRACKET_R),n={kind:a.Kind.LIST_TYPE,type:n,loc:this.loc(e)}):n=this.parseNamedType(),this.expectOptionalToken(r.TokenKind.BANG)?{kind:a.Kind.NON_NULL_TYPE,type:n,loc:this.loc(e)}:n},i.parseNamedType=function(){var e=this._lexer.token;return{kind:a.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},i.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===r.TokenKind.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},i.peekDescription=function(){return this.peek(r.TokenKind.STRING)||this.peek(r.TokenKind.BLOCK_STRING)},i.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},i.parseSchemaDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("schema");var t=this.parseDirectives(!0),s=this.many(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);return{kind:a.Kind.SCHEMA_DEFINITION,description:n,directives:t,operationTypes:s,loc:this.loc(e)}},i.parseOperationTypeDefinition=function(){var e=this._lexer.token,n=this.parseOperationType();this.expectToken(r.TokenKind.COLON);var t=this.parseNamedType();return{kind:a.Kind.OPERATION_TYPE_DEFINITION,operation:n,type:t,loc:this.loc(e)}},i.parseScalarTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("scalar");var t=this.parseName(),s=this.parseDirectives(!0);return{kind:a.Kind.SCALAR_TYPE_DEFINITION,description:n,name:t,directives:s,loc:this.loc(e)}},i.parseObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("type");var t=this.parseName(),s=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:a.Kind.OBJECT_TYPE_DEFINITION,description:n,name:t,interfaces:s,directives:y,fields:f,loc:this.loc(e)}},i.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if(((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var n=[];this.expectOptionalToken(r.TokenKind.AMP);do n.push(this.parseNamedType());while(this.expectOptionalToken(r.TokenKind.AMP)||this.peek(r.TokenKind.NAME));return n}return this.delimitedMany(r.TokenKind.AMP,this.parseNamedType)},i.parseFieldsDefinition=function(){var e;return((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(r.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===r.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(r.TokenKind.BRACE_L,this.parseFieldDefinition,r.TokenKind.BRACE_R)},i.parseFieldDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),s=this.parseArgumentDefs();this.expectToken(r.TokenKind.COLON);var y=this.parseTypeReference(),f=this.parseDirectives(!0);return{kind:a.Kind.FIELD_DEFINITION,description:n,name:t,arguments:s,type:y,directives:f,loc:this.loc(e)}},i.parseArgumentDefs=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseInputValueDef,r.TokenKind.PAREN_R)},i.parseInputValueDef=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName();this.expectToken(r.TokenKind.COLON);var s=this.parseTypeReference(),y;this.expectOptionalToken(r.TokenKind.EQUALS)&&(y=this.parseValueLiteral(!0));var f=this.parseDirectives(!0);return{kind:a.Kind.INPUT_VALUE_DEFINITION,description:n,name:t,type:s,defaultValue:y,directives:f,loc:this.loc(e)}},i.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("interface");var t=this.parseName(),s=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:a.Kind.INTERFACE_TYPE_DEFINITION,description:n,name:t,interfaces:s,directives:y,fields:f,loc:this.loc(e)}},i.parseUnionTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("union");var t=this.parseName(),s=this.parseDirectives(!0),y=this.parseUnionMemberTypes();return{kind:a.Kind.UNION_TYPE_DEFINITION,description:n,name:t,directives:s,types:y,loc:this.loc(e)}},i.parseUnionMemberTypes=function(){return this.expectOptionalToken(r.TokenKind.EQUALS)?this.delimitedMany(r.TokenKind.PIPE,this.parseNamedType):[]},i.parseEnumTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("enum");var t=this.parseName(),s=this.parseDirectives(!0),y=this.parseEnumValuesDefinition();return{kind:a.Kind.ENUM_TYPE_DEFINITION,description:n,name:t,directives:s,values:y,loc:this.loc(e)}},i.parseEnumValuesDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseEnumValueDefinition,r.TokenKind.BRACE_R)},i.parseEnumValueDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),s=this.parseDirectives(!0);return{kind:a.Kind.ENUM_VALUE_DEFINITION,description:n,name:t,directives:s,loc:this.loc(e)}},i.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("input");var t=this.parseName(),s=this.parseDirectives(!0),y=this.parseInputFieldsDefinition();return{kind:a.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:t,directives:s,fields:y,loc:this.loc(e)}},i.parseInputFieldsDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseInputValueDef,r.TokenKind.BRACE_R)},i.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===r.TokenKind.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},i.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var n=this.parseDirectives(!0),t=this.optionalMany(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);if(n.length===0&&t.length===0)throw this.unexpected();return{kind:a.Kind.SCHEMA_EXTENSION,directives:n,operationTypes:t,loc:this.loc(e)}},i.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var n=this.parseName(),t=this.parseDirectives(!0);if(t.length===0)throw this.unexpected();return{kind:a.Kind.SCALAR_TYPE_EXTENSION,name:n,directives:t,loc:this.loc(e)}},i.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var n=this.parseName(),t=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&s.length===0&&y.length===0)throw this.unexpected();return{kind:a.Kind.OBJECT_TYPE_EXTENSION,name:n,interfaces:t,directives:s,fields:y,loc:this.loc(e)}},i.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var n=this.parseName(),t=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&s.length===0&&y.length===0)throw this.unexpected();return{kind:a.Kind.INTERFACE_TYPE_EXTENSION,name:n,interfaces:t,directives:s,fields:y,loc:this.loc(e)}},i.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var n=this.parseName(),t=this.parseDirectives(!0),s=this.parseUnionMemberTypes();if(t.length===0&&s.length===0)throw this.unexpected();return{kind:a.Kind.UNION_TYPE_EXTENSION,name:n,directives:t,types:s,loc:this.loc(e)}},i.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var n=this.parseName(),t=this.parseDirectives(!0),s=this.parseEnumValuesDefinition();if(t.length===0&&s.length===0)throw this.unexpected();return{kind:a.Kind.ENUM_TYPE_EXTENSION,name:n,directives:t,values:s,loc:this.loc(e)}},i.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var n=this.parseName(),t=this.parseDirectives(!0),s=this.parseInputFieldsDefinition();if(t.length===0&&s.length===0)throw this.unexpected();return{kind:a.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:t,fields:s,loc:this.loc(e)}},i.parseDirectiveDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("directive"),this.expectToken(r.TokenKind.AT);var t=this.parseName(),s=this.parseArgumentDefs(),y=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var f=this.parseDirectiveLocations();return{kind:a.Kind.DIRECTIVE_DEFINITION,description:n,name:t,arguments:s,repeatable:y,locations:f,loc:this.loc(e)}},i.parseDirectiveLocations=function(){return this.delimitedMany(r.TokenKind.PIPE,this.parseDirectiveLocation)},i.parseDirectiveLocation=function(){var e=this._lexer.token,n=this.parseName();if(E.DirectiveLocation[n.value]!==void 0)return n;throw this.unexpected(e)},i.loc=function(e){var n;if(((n=this._options)===null||n===void 0?void 0:n.noLocation)!==!0)return new p.Location(e,this._lexer.lastToken,this._lexer.source)},i.peek=function(e){return this._lexer.token.kind===e},i.expectToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n;throw(0,T.syntaxError)(this._lexer.source,n.start,"Expected ".concat(h(e),", found ").concat(I(n),"."))},i.expectOptionalToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n},i.expectKeyword=function(e){var n=this._lexer.token;if(n.kind===r.TokenKind.NAME&&n.value===e)this._lexer.advance();else throw(0,T.syntaxError)(this._lexer.source,n.start,'Expected "'.concat(e,'", found ').concat(I(n),"."))},i.expectOptionalKeyword=function(e){var n=this._lexer.token;return n.kind===r.TokenKind.NAME&&n.value===e?(this._lexer.advance(),!0):!1},i.unexpected=function(e){var n=e!=null?e:this._lexer.token;return(0,T.syntaxError)(this._lexer.source,n.start,"Unexpected ".concat(I(n),"."))},i.any=function(e,n,t){this.expectToken(e);for(var s=[];!this.expectOptionalToken(t);)s.push(n.call(this));return s},i.optionalMany=function(e,n,t){if(this.expectOptionalToken(e)){var s=[];do s.push(n.call(this));while(!this.expectOptionalToken(t));return s}return[]},i.many=function(e,n,t){this.expectToken(e);var s=[];do s.push(n.call(this));while(!this.expectOptionalToken(t));return s},i.delimitedMany=function(e,n){this.expectOptionalToken(e);var t=[];do t.push(n.call(this));while(this.expectOptionalToken(e));return t},N}();l.Parser=S;function I(N){var i=N.value;return h(N.kind)+(i!=null?' "'.concat(i,'"'):"")}function h(N){return(0,k.isPunctuatorTokenKind)(N)?'"'.concat(N,'"'):N}}}),ye=K({"src/language-graphql/parser-graphql.js"(l,T){L();var a=ie(),p=ae(),{hasPragma:r}=oe(),{locStart:_,locEnd:E}=se();function k(I){let h=[],{startToken:N}=I.loc,{next:i}=N;for(;i.kind!=="";)i.kind==="Comment"&&(Object.assign(i,{column:i.column-1}),h.push(i)),i=i.next;return h}function g(I){if(I&&typeof I=="object"){delete I.startToken,delete I.endToken,delete I.prev,delete I.next;for(let h in I)g(I[h])}return I}var D={allowLegacySDLImplementsInterfaces:!1,experimentalFragmentVariables:!0};function O(I){let{GraphQLError:h}=$();if(I instanceof h){let{message:N,locations:[i]}=I;return a(N,{start:i})}return I}function S(I){let{parse:h}=me(),{result:N,error:i}=p(()=>h(I,Object.assign({},D)),()=>h(I,Object.assign(Object.assign({},D),{},{allowLegacySDLImplementsInterfaces:!0})));if(!N)throw O(i);return N.comments=k(N),g(N),N}T.exports={parsers:{graphql:{parse:S,astFormat:"graphql",hasPragma:r,locStart:_,locEnd:E}}}}}),ke=ye();export{ke as default}; diff --git a/node_modules/prettier/esm/parser-html.mjs b/node_modules/prettier/esm/parser-html.mjs new file mode 100644 index 0000000..3d9d56b --- /dev/null +++ b/node_modules/prettier/esm/parser-html.mjs @@ -0,0 +1,36 @@ +"use strict";var T=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var X=T(($D,Vr)=>{var Oe=function(e){return e&&e.Math==Math&&e};Vr.exports=Oe(typeof globalThis=="object"&&globalThis)||Oe(typeof window=="object"&&window)||Oe(typeof self=="object"&&self)||Oe(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var ae=T((UD,Xr)=>{Xr.exports=function(e){try{return!!e()}catch{return!0}}});var De=T((GD,Hr)=>{var ms=ae();Hr.exports=!ms(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var qe=T((VD,zr)=>{var gs=ae();zr.exports=!gs(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var le=T((XD,Wr)=>{var Fs=qe(),Ie=Function.prototype.call;Wr.exports=Fs?Ie.bind(Ie):function(){return Ie.apply(Ie,arguments)}});var Jr=T(Kr=>{"use strict";var Yr={}.propertyIsEnumerable,Qr=Object.getOwnPropertyDescriptor,As=Qr&&!Yr.call({1:2},1);Kr.f=As?function(r){var t=Qr(this,r);return!!t&&t.enumerable}:Yr});var Re=T((zD,Zr)=>{Zr.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var te=T((WD,tt)=>{var et=qe(),rt=Function.prototype,vs=rt.bind,rr=rt.call,_s=et&&vs.bind(rr,rr);tt.exports=et?function(e){return e&&_s(e)}:function(e){return e&&function(){return rr.apply(e,arguments)}}});var xe=T((YD,nt)=>{var ut=te(),Ss=ut({}.toString),ys=ut("".slice);nt.exports=function(e){return ys(Ss(e),8,-1)}});var at=T((QD,st)=>{var Ts=X(),Bs=te(),bs=ae(),ws=xe(),tr=Ts.Object,Ns=Bs("".split);st.exports=bs(function(){return!tr("z").propertyIsEnumerable(0)})?function(e){return ws(e)=="String"?Ns(e,""):tr(e)}:tr});var ur=T((KD,it)=>{var Os=X(),qs=Os.TypeError;it.exports=function(e){if(e==null)throw qs("Can't call method on "+e);return e}});var Pe=T((JD,ot)=>{var Is=at(),Rs=ur();ot.exports=function(e){return Is(Rs(e))}});var ue=T((ZD,ct)=>{ct.exports=function(e){return typeof e=="function"}});var he=T((el,Dt)=>{var xs=ue();Dt.exports=function(e){return typeof e=="object"?e!==null:xs(e)}});var ve=T((rl,lt)=>{var nr=X(),Ps=ue(),ks=function(e){return Ps(e)?e:void 0};lt.exports=function(e,r){return arguments.length<2?ks(nr[e]):nr[e]&&nr[e][r]}});var sr=T((tl,ht)=>{var Ls=te();ht.exports=Ls({}.isPrototypeOf)});var ft=T((ul,pt)=>{var Ms=ve();pt.exports=Ms("navigator","userAgent")||""});var At=T((nl,Ft)=>{var gt=X(),ar=ft(),dt=gt.process,Et=gt.Deno,Ct=dt&&dt.versions||Et&&Et.version,mt=Ct&&Ct.v8,ne,ke;mt&&(ne=mt.split("."),ke=ne[0]>0&&ne[0]<4?1:+(ne[0]+ne[1]));!ke&&ar&&(ne=ar.match(/Edge\/(\d+)/),(!ne||ne[1]>=74)&&(ne=ar.match(/Chrome\/(\d+)/),ne&&(ke=+ne[1])));Ft.exports=ke});var ir=T((sl,_t)=>{var vt=At(),js=ae();_t.exports=!!Object.getOwnPropertySymbols&&!js(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&vt&&vt<41})});var or=T((al,St)=>{var $s=ir();St.exports=$s&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var cr=T((il,yt)=>{var Us=X(),Gs=ve(),Vs=ue(),Xs=sr(),Hs=or(),zs=Us.Object;yt.exports=Hs?function(e){return typeof e=="symbol"}:function(e){var r=Gs("Symbol");return Vs(r)&&Xs(r.prototype,zs(e))}});var Le=T((ol,Tt)=>{var Ws=X(),Ys=Ws.String;Tt.exports=function(e){try{return Ys(e)}catch{return"Object"}}});var _e=T((cl,Bt)=>{var Qs=X(),Ks=ue(),Js=Le(),Zs=Qs.TypeError;Bt.exports=function(e){if(Ks(e))return e;throw Zs(Js(e)+" is not a function")}});var Me=T((Dl,bt)=>{var ea=_e();bt.exports=function(e,r){var t=e[r];return t==null?void 0:ea(t)}});var Nt=T((ll,wt)=>{var ra=X(),Dr=le(),lr=ue(),hr=he(),ta=ra.TypeError;wt.exports=function(e,r){var t,s;if(r==="string"&&lr(t=e.toString)&&!hr(s=Dr(t,e))||lr(t=e.valueOf)&&!hr(s=Dr(t,e))||r!=="string"&&lr(t=e.toString)&&!hr(s=Dr(t,e)))return s;throw ta("Can't convert object to primitive value")}});var qt=T((hl,Ot)=>{Ot.exports=!1});var je=T((pl,Rt)=>{var It=X(),ua=Object.defineProperty;Rt.exports=function(e,r){try{ua(It,e,{value:r,configurable:!0,writable:!0})}catch{It[e]=r}return r}});var $e=T((fl,Pt)=>{var na=X(),sa=je(),xt="__core-js_shared__",aa=na[xt]||sa(xt,{});Pt.exports=aa});var pr=T((dl,Lt)=>{var ia=qt(),kt=$e();(Lt.exports=function(e,r){return kt[e]||(kt[e]=r!==void 0?r:{})})("versions",[]).push({version:"3.22.2",mode:ia?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var fr=T((El,Mt)=>{var oa=X(),ca=ur(),Da=oa.Object;Mt.exports=function(e){return Da(ca(e))}});var oe=T((Cl,jt)=>{var la=te(),ha=fr(),pa=la({}.hasOwnProperty);jt.exports=Object.hasOwn||function(r,t){return pa(ha(r),t)}});var dr=T((ml,$t)=>{var fa=te(),da=0,Ea=Math.random(),Ca=fa(1 .toString);$t.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+Ca(++da+Ea,36)}});var fe=T((gl,Ht)=>{var ma=X(),ga=pr(),Ut=oe(),Fa=dr(),Gt=ir(),Xt=or(),Ce=ga("wks"),pe=ma.Symbol,Vt=pe&&pe.for,Aa=Xt?pe:pe&&pe.withoutSetter||Fa;Ht.exports=function(e){if(!Ut(Ce,e)||!(Gt||typeof Ce[e]=="string")){var r="Symbol."+e;Gt&&Ut(pe,e)?Ce[e]=pe[e]:Xt&&Vt?Ce[e]=Vt(r):Ce[e]=Aa(r)}return Ce[e]}});var Qt=T((Fl,Yt)=>{var va=X(),_a=le(),zt=he(),Wt=cr(),Sa=Me(),ya=Nt(),Ta=fe(),Ba=va.TypeError,ba=Ta("toPrimitive");Yt.exports=function(e,r){if(!zt(e)||Wt(e))return e;var t=Sa(e,ba),s;if(t){if(r===void 0&&(r="default"),s=_a(t,e,r),!zt(s)||Wt(s))return s;throw Ba("Can't convert object to primitive value")}return r===void 0&&(r="number"),ya(e,r)}});var Ue=T((Al,Kt)=>{var wa=Qt(),Na=cr();Kt.exports=function(e){var r=wa(e,"string");return Na(r)?r:r+""}});var eu=T((vl,Zt)=>{var Oa=X(),Jt=he(),Er=Oa.document,qa=Jt(Er)&&Jt(Er.createElement);Zt.exports=function(e){return qa?Er.createElement(e):{}}});var Cr=T((_l,ru)=>{var Ia=De(),Ra=ae(),xa=eu();ru.exports=!Ia&&!Ra(function(){return Object.defineProperty(xa("div"),"a",{get:function(){return 7}}).a!=7})});var mr=T(uu=>{var Pa=De(),ka=le(),La=Jr(),Ma=Re(),ja=Pe(),$a=Ue(),Ua=oe(),Ga=Cr(),tu=Object.getOwnPropertyDescriptor;uu.f=Pa?tu:function(r,t){if(r=ja(r),t=$a(t),Ga)try{return tu(r,t)}catch{}if(Ua(r,t))return Ma(!ka(La.f,r,t),r[t])}});var su=T((yl,nu)=>{var Va=De(),Xa=ae();nu.exports=Va&&Xa(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var me=T((Tl,iu)=>{var au=X(),Ha=he(),za=au.String,Wa=au.TypeError;iu.exports=function(e){if(Ha(e))return e;throw Wa(za(e)+" is not an object")}});var Ve=T(cu=>{var Ya=X(),Qa=De(),Ka=Cr(),Ja=su(),Ge=me(),ou=Ue(),Za=Ya.TypeError,gr=Object.defineProperty,ei=Object.getOwnPropertyDescriptor,Fr="enumerable",Ar="configurable",vr="writable";cu.f=Qa?Ja?function(r,t,s){if(Ge(r),t=ou(t),Ge(s),typeof r=="function"&&t==="prototype"&&"value"in s&&vr in s&&!s[vr]){var c=ei(r,t);c&&c[vr]&&(r[t]=s.value,s={configurable:Ar in s?s[Ar]:c[Ar],enumerable:Fr in s?s[Fr]:c[Fr],writable:!1})}return gr(r,t,s)}:gr:function(r,t,s){if(Ge(r),t=ou(t),Ge(s),Ka)try{return gr(r,t,s)}catch{}if("get"in s||"set"in s)throw Za("Accessors not supported");return"value"in s&&(r[t]=s.value),r}});var Xe=T((bl,Du)=>{var ri=De(),ti=Ve(),ui=Re();Du.exports=ri?function(e,r,t){return ti.f(e,r,ui(1,t))}:function(e,r,t){return e[r]=t,e}});var He=T((wl,lu)=>{var ni=te(),si=ue(),_r=$e(),ai=ni(Function.toString);si(_r.inspectSource)||(_r.inspectSource=function(e){return ai(e)});lu.exports=_r.inspectSource});var fu=T((Nl,pu)=>{var ii=X(),oi=ue(),ci=He(),hu=ii.WeakMap;pu.exports=oi(hu)&&/native code/.test(ci(hu))});var Cu=T((Ol,Eu)=>{var Di=pr(),li=dr(),du=Di("keys");Eu.exports=function(e){return du[e]||(du[e]=li(e))}});var Sr=T((ql,mu)=>{mu.exports={}});var Su=T((Il,_u)=>{var hi=fu(),vu=X(),yr=te(),pi=he(),fi=Xe(),Tr=oe(),Br=$e(),di=Cu(),Ei=Sr(),gu="Object already initialized",wr=vu.TypeError,Ci=vu.WeakMap,ze,Se,We,mi=function(e){return We(e)?Se(e):ze(e,{})},gi=function(e){return function(r){var t;if(!pi(r)||(t=Se(r)).type!==e)throw wr("Incompatible receiver, "+e+" required");return t}};hi||Br.state?(ce=Br.state||(Br.state=new Ci),Fu=yr(ce.get),br=yr(ce.has),Au=yr(ce.set),ze=function(e,r){if(br(ce,e))throw new wr(gu);return r.facade=e,Au(ce,e,r),r},Se=function(e){return Fu(ce,e)||{}},We=function(e){return br(ce,e)}):(de=di("state"),Ei[de]=!0,ze=function(e,r){if(Tr(e,de))throw new wr(gu);return r.facade=e,fi(e,de,r),r},Se=function(e){return Tr(e,de)?e[de]:{}},We=function(e){return Tr(e,de)});var ce,Fu,br,Au,de;_u.exports={set:ze,get:Se,has:We,enforce:mi,getterFor:gi}});var Bu=T((Rl,Tu)=>{var Nr=De(),Fi=oe(),yu=Function.prototype,Ai=Nr&&Object.getOwnPropertyDescriptor,Or=Fi(yu,"name"),vi=Or&&function(){}.name==="something",_i=Or&&(!Nr||Nr&&Ai(yu,"name").configurable);Tu.exports={EXISTS:Or,PROPER:vi,CONFIGURABLE:_i}});var qu=T((xl,Ou)=>{var Si=X(),bu=ue(),yi=oe(),wu=Xe(),Ti=je(),Bi=He(),Nu=Su(),bi=Bu().CONFIGURABLE,wi=Nu.get,Ni=Nu.enforce,Oi=String(String).split("String");(Ou.exports=function(e,r,t,s){var c=s?!!s.unsafe:!1,n=s?!!s.enumerable:!1,a=s?!!s.noTargetGet:!1,f=s&&s.name!==void 0?s.name:r,D;if(bu(t)&&(String(f).slice(0,7)==="Symbol("&&(f="["+String(f).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!yi(t,"name")||bi&&t.name!==f)&&wu(t,"name",f),D=Ni(t),D.source||(D.source=Oi.join(typeof f=="string"?f:""))),e===Si){n?e[r]=t:Ti(r,t);return}else c?!a&&e[r]&&(n=!0):delete e[r];n?e[r]=t:wu(e,r,t)})(Function.prototype,"toString",function(){return bu(this)&&wi(this).source||Bi(this)})});var qr=T((Pl,Iu)=>{var qi=Math.ceil,Ii=Math.floor;Iu.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?Ii:qi)(r)}});var xu=T((kl,Ru)=>{var Ri=qr(),xi=Math.max,Pi=Math.min;Ru.exports=function(e,r){var t=Ri(e);return t<0?xi(t+r,0):Pi(t,r)}});var ku=T((Ll,Pu)=>{var ki=qr(),Li=Math.min;Pu.exports=function(e){return e>0?Li(ki(e),9007199254740991):0}});var ye=T((Ml,Lu)=>{var Mi=ku();Lu.exports=function(e){return Mi(e.length)}});var $u=T((jl,ju)=>{var ji=Pe(),$i=xu(),Ui=ye(),Mu=function(e){return function(r,t,s){var c=ji(r),n=Ui(c),a=$i(s,n),f;if(e&&t!=t){for(;n>a;)if(f=c[a++],f!=f)return!0}else for(;n>a;a++)if((e||a in c)&&c[a]===t)return e||a||0;return!e&&-1}};ju.exports={includes:Mu(!0),indexOf:Mu(!1)}});var Vu=T(($l,Gu)=>{var Gi=te(),Ir=oe(),Vi=Pe(),Xi=$u().indexOf,Hi=Sr(),Uu=Gi([].push);Gu.exports=function(e,r){var t=Vi(e),s=0,c=[],n;for(n in t)!Ir(Hi,n)&&Ir(t,n)&&Uu(c,n);for(;r.length>s;)Ir(t,n=r[s++])&&(~Xi(c,n)||Uu(c,n));return c}});var Hu=T((Ul,Xu)=>{Xu.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Wu=T(zu=>{var zi=Vu(),Wi=Hu(),Yi=Wi.concat("length","prototype");zu.f=Object.getOwnPropertyNames||function(r){return zi(r,Yi)}});var Qu=T(Yu=>{Yu.f=Object.getOwnPropertySymbols});var Ju=T((Xl,Ku)=>{var Qi=ve(),Ki=te(),Ji=Wu(),Zi=Qu(),eo=me(),ro=Ki([].concat);Ku.exports=Qi("Reflect","ownKeys")||function(r){var t=Ji.f(eo(r)),s=Zi.f;return s?ro(t,s(r)):t}});var rn=T((Hl,en)=>{var Zu=oe(),to=Ju(),uo=mr(),no=Ve();en.exports=function(e,r,t){for(var s=to(r),c=no.f,n=uo.f,a=0;a{var so=ae(),ao=ue(),io=/#|\.prototype\./,Te=function(e,r){var t=co[oo(e)];return t==lo?!0:t==Do?!1:ao(r)?so(r):!!r},oo=Te.normalize=function(e){return String(e).replace(io,".").toLowerCase()},co=Te.data={},Do=Te.NATIVE="N",lo=Te.POLYFILL="P";tn.exports=Te});var Ye=T((Wl,nn)=>{var Rr=X(),ho=mr().f,po=Xe(),fo=qu(),Eo=je(),Co=rn(),mo=un();nn.exports=function(e,r){var t=e.target,s=e.global,c=e.stat,n,a,f,D,v,i;if(s?a=Rr:c?a=Rr[t]||Eo(t,{}):a=(Rr[t]||{}).prototype,a)for(f in r){if(v=r[f],e.noTargetGet?(i=ho(a,f),D=i&&i.value):D=a[f],n=mo(s?f:t+(c?".":"#")+f,e.forced),!n&&D!==void 0){if(typeof v==typeof D)continue;Co(v,D)}(e.sham||D&&D.sham)&&po(v,"sham",!0),fo(a,f,v,e)}}});var sn=T(()=>{var go=Ye(),Fo=X();go({global:!0},{globalThis:Fo})});var xr=T((Kl,an)=>{var Ao=xe();an.exports=Array.isArray||function(r){return Ao(r)=="Array"}});var Pr=T((Jl,cn)=>{var on=te(),vo=_e(),_o=qe(),So=on(on.bind);cn.exports=function(e,r){return vo(e),r===void 0?e:_o?So(e,r):function(){return e.apply(r,arguments)}}});var hn=T((Zl,ln)=>{"use strict";var yo=X(),To=xr(),Bo=ye(),bo=Pr(),wo=yo.TypeError,Dn=function(e,r,t,s,c,n,a,f){for(var D=c,v=0,i=a?bo(a,f):!1,l,p;v0&&To(l))p=Bo(l),D=Dn(e,r,l,p,D,n-1)-1;else{if(D>=9007199254740991)throw wo("Exceed the acceptable array length");e[D]=l}D++}v++}return D};ln.exports=Dn});var dn=T((e2,fn)=>{var No=fe(),Oo=No("toStringTag"),pn={};pn[Oo]="z";fn.exports=String(pn)==="[object z]"});var kr=T((r2,En)=>{var qo=X(),Io=dn(),Ro=ue(),Qe=xe(),xo=fe(),Po=xo("toStringTag"),ko=qo.Object,Lo=Qe(function(){return arguments}())=="Arguments",Mo=function(e,r){try{return e[r]}catch{}};En.exports=Io?Qe:function(e){var r,t,s;return e===void 0?"Undefined":e===null?"Null":typeof(t=Mo(r=ko(e),Po))=="string"?t:Lo?Qe(r):(s=Qe(r))=="Object"&&Ro(r.callee)?"Arguments":s}});var vn=T((t2,An)=>{var jo=te(),$o=ae(),Cn=ue(),Uo=kr(),Go=ve(),Vo=He(),mn=function(){},Xo=[],gn=Go("Reflect","construct"),Lr=/^\s*(?:class|function)\b/,Ho=jo(Lr.exec),zo=!Lr.exec(mn),Be=function(r){if(!Cn(r))return!1;try{return gn(mn,Xo,r),!0}catch{return!1}},Fn=function(r){if(!Cn(r))return!1;switch(Uo(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return zo||!!Ho(Lr,Vo(r))}catch{return!0}};Fn.sham=!0;An.exports=!gn||$o(function(){var e;return Be(Be.call)||!Be(Object)||!Be(function(){e=!0})||e})?Fn:Be});var Tn=T((u2,yn)=>{var Wo=X(),_n=xr(),Yo=vn(),Qo=he(),Ko=fe(),Jo=Ko("species"),Sn=Wo.Array;yn.exports=function(e){var r;return _n(e)&&(r=e.constructor,Yo(r)&&(r===Sn||_n(r.prototype))?r=void 0:Qo(r)&&(r=r[Jo],r===null&&(r=void 0))),r===void 0?Sn:r}});var bn=T((n2,Bn)=>{var Zo=Tn();Bn.exports=function(e,r){return new(Zo(e))(r===0?0:r)}});var Mr=T((s2,wn)=>{wn.exports={}});var On=T((a2,Nn)=>{var ac=fe(),ic=Mr(),oc=ac("iterator"),cc=Array.prototype;Nn.exports=function(e){return e!==void 0&&(ic.Array===e||cc[oc]===e)}});var jr=T((i2,In)=>{var Dc=kr(),qn=Me(),lc=Mr(),hc=fe(),pc=hc("iterator");In.exports=function(e){if(e!=null)return qn(e,pc)||qn(e,"@@iterator")||lc[Dc(e)]}});var xn=T((o2,Rn)=>{var fc=X(),dc=le(),Ec=_e(),Cc=me(),mc=Le(),gc=jr(),Fc=fc.TypeError;Rn.exports=function(e,r){var t=arguments.length<2?gc(e):r;if(Ec(t))return Cc(dc(t,e));throw Fc(mc(e)+" is not iterable")}});var Ln=T((c2,kn)=>{var Ac=le(),Pn=me(),vc=Me();kn.exports=function(e,r,t){var s,c;Pn(e);try{if(s=vc(e,"return"),!s){if(r==="throw")throw t;return t}s=Ac(s,e)}catch(n){c=!0,s=n}if(r==="throw")throw t;if(c)throw s;return Pn(s),t}});var Gn=T((D2,Un)=>{var _c=X(),Sc=Pr(),yc=le(),Tc=me(),Bc=Le(),bc=On(),wc=ye(),Mn=sr(),Nc=xn(),Oc=jr(),jn=Ln(),qc=_c.TypeError,Ke=function(e,r){this.stopped=e,this.result=r},$n=Ke.prototype;Un.exports=function(e,r,t){var s=t&&t.that,c=!!(t&&t.AS_ENTRIES),n=!!(t&&t.IS_ITERATOR),a=!!(t&&t.INTERRUPTED),f=Sc(r,s),D,v,i,l,p,g,C,m=function(w){return D&&jn(D,"normal",w),new Ke(!0,w)},B=function(w){return c?(Tc(w),a?f(w[0],w[1],m):f(w[0],w[1])):a?f(w,m):f(w)};if(n)D=e;else{if(v=Oc(e),!v)throw qc(Bc(e)+" is not iterable");if(bc(v)){for(i=0,l=wc(e);l>i;i++)if(p=B(e[i]),p&&Mn($n,p))return p;return new Ke(!1)}D=Nc(e,v)}for(g=D.next;!(C=yc(g,D)).done;){try{p=B(C.value)}catch(w){jn(D,"throw",w)}if(typeof p=="object"&&p&&Mn($n,p))return p}return new Ke(!1)}});var Xn=T((l2,Vn)=>{"use strict";var Ic=Ue(),Rc=Ve(),xc=Re();Vn.exports=function(e,r,t){var s=Ic(r);s in e?Rc.f(e,s,xc(0,t)):e[s]=t}});sn();var ec=Ye(),rc=hn(),tc=_e(),uc=fr(),nc=ye(),sc=bn();ec({target:"Array",proto:!0},{flatMap:function(r){var t=uc(this),s=nc(t),c;return tc(r),c=sc(t,0),c.length=rc(c,t,t,s,0,1,r,arguments.length>1?arguments[1]:void 0),c}});var Pc=Ye(),kc=Gn(),Lc=Xn();Pc({target:"Object",stat:!0},{fromEntries:function(r){var t={};return kc(r,function(s,c){Lc(t,s,c)},{AS_ENTRIES:!0}),t}});var Mc=["cliName","cliCategory","cliDescription"],Hn,zn,Wn,Yn,Qn,Kn;function jc(e,r){if(e==null)return{};var t=$c(e,r),s,c;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(c=0;c=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}function $c(e,r){if(e==null)return{};var t={},s=Object.keys(e),c,n;for(n=0;n=0)&&(t[c]=e[c]);return t}function ge(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}var Uc=Object.create,Je=Object.defineProperty,Gc=Object.getOwnPropertyDescriptor,$r=Object.getOwnPropertyNames,Vc=Object.getPrototypeOf,Xc=Object.prototype.hasOwnProperty,Fe=(e,r)=>function(){return e&&(r=(0,e[$r(e)[0]])(e=0)),r},I=(e,r)=>function(){return r||(0,e[$r(e)[0]])((r={exports:{}}).exports,r),r.exports},ts=(e,r)=>{for(var t in r)Je(e,t,{get:r[t],enumerable:!0})},us=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of $r(r))!Xc.call(e,c)&&c!==t&&Je(e,c,{get:()=>r[c],enumerable:!(s=Gc(r,c))||s.enumerable});return e},Hc=(e,r,t)=>(t=e!=null?Uc(Vc(e)):{},us(r||!e||!e.__esModule?Je(t,"default",{value:e,enumerable:!0}):t,e)),ns=e=>us(Je({},"__esModule",{value:!0}),e),Jn,Zn,be,O=Fe({""(){Jn={},Zn=[],be={env:Jn,argv:Zn}}}),ss=I({"node_modules/angular-html-parser/lib/compiler/src/chars.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0}),e.$EOF=0,e.$BSPACE=8,e.$TAB=9,e.$LF=10,e.$VTAB=11,e.$FF=12,e.$CR=13,e.$SPACE=32,e.$BANG=33,e.$DQ=34,e.$HASH=35,e.$$=36,e.$PERCENT=37,e.$AMPERSAND=38,e.$SQ=39,e.$LPAREN=40,e.$RPAREN=41,e.$STAR=42,e.$PLUS=43,e.$COMMA=44,e.$MINUS=45,e.$PERIOD=46,e.$SLASH=47,e.$COLON=58,e.$SEMICOLON=59,e.$LT=60,e.$EQ=61,e.$GT=62,e.$QUESTION=63,e.$0=48,e.$7=55,e.$9=57,e.$A=65,e.$E=69,e.$F=70,e.$X=88,e.$Z=90,e.$LBRACKET=91,e.$BACKSLASH=92,e.$RBRACKET=93,e.$CARET=94,e.$_=95,e.$a=97,e.$b=98,e.$e=101,e.$f=102,e.$n=110,e.$r=114,e.$t=116,e.$u=117,e.$v=118,e.$x=120,e.$z=122,e.$LBRACE=123,e.$BAR=124,e.$RBRACE=125,e.$NBSP=160,e.$PIPE=124,e.$TILDA=126,e.$AT=64,e.$BT=96;function r(f){return f>=e.$TAB&&f<=e.$SPACE||f==e.$NBSP}e.isWhitespace=r;function t(f){return e.$0<=f&&f<=e.$9}e.isDigit=t;function s(f){return f>=e.$a&&f<=e.$z||f>=e.$A&&f<=e.$Z}e.isAsciiLetter=s;function c(f){return f>=e.$a&&f<=e.$f||f>=e.$A&&f<=e.$F||t(f)}e.isAsciiHexDigit=c;function n(f){return f===e.$LF||f===e.$CR}e.isNewLine=n;function a(f){return e.$0<=f&&f<=e.$7}e.isOctalDigit=a}}),zc=I({"node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=class{constructor(s,c,n){this.filePath=s,this.name=c,this.members=n}assertNoMembers(){if(this.members.length)throw new Error("Illegal state: symbol without members expected, but got ".concat(JSON.stringify(this),"."))}};e.StaticSymbol=r;var t=class{constructor(){this.cache=new Map}get(s,c,n){n=n||[];let a=n.length?".".concat(n.join(".")):"",f='"'.concat(s,'".').concat(c).concat(a),D=this.cache.get(f);return D||(D=new r(s,c,n),this.cache.set(f,D)),D}};e.StaticSymbolCache=t}}),Wc=I({"node_modules/angular-html-parser/lib/compiler/src/util.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=/-+([a-z0-9])/g;function t(o){return o.replace(r,function(){for(var d=arguments.length,h=new Array(d),F=0;Fa(h,this,d))}visitStringMap(o,d){let h={};return Object.keys(o).forEach(F=>{h[F]=a(o[F],this,d)}),h}visitPrimitive(o,d){return o}visitOther(o,d){return o}};e.ValueTransformer=v,e.SyncAsync={assertSync:o=>{if(R(o))throw new Error("Illegal state: value cannot be a promise");return o},then:(o,d)=>R(o)?o.then(d):d(o),all:o=>o.some(R)?Promise.all(o):o};function i(o){throw new Error("Internal Error: ".concat(o))}e.error=i;function l(o,d){let h=Error(o);return h[p]=!0,d&&(h[g]=d),h}e.syntaxError=l;var p="ngSyntaxError",g="ngParseErrors";function C(o){return o[p]}e.isSyntaxError=C;function m(o){return o[g]||[]}e.getParseErrors=m;function B(o){return o.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}e.escapeRegExp=B;var w=Object.getPrototypeOf({});function S(o){return typeof o=="object"&&o!==null&&Object.getPrototypeOf(o)===w}function N(o){let d="";for(let h=0;h=55296&&F<=56319&&o.length>h+1){let q=o.charCodeAt(h+1);q>=56320&&q<=57343&&(h++,F=(F-55296<<10)+q-56320+65536)}F<=127?d+=String.fromCharCode(F):F<=2047?d+=String.fromCharCode(F>>6&31|192,F&63|128):F<=65535?d+=String.fromCharCode(F>>12|224,F>>6&63|128,F&63|128):F<=2097151&&(d+=String.fromCharCode(F>>18&7|240,F>>12&63|128,F>>6&63|128,F&63|128))}return d}e.utf8Encode=N;function b(o){if(typeof o=="string")return o;if(o instanceof Array)return"["+o.map(b).join(", ")+"]";if(o==null)return""+o;if(o.overriddenName)return"".concat(o.overriddenName);if(o.name)return"".concat(o.name);if(!o.toString)return"object";let d=o.toString();if(d==null)return""+d;let h=d.indexOf(` +`);return h===-1?d:d.substring(0,h)}e.stringify=b;function j(o){return typeof o=="function"&&o.hasOwnProperty("__forward_ref__")?o():o}e.resolveForwardRef=j;function R(o){return!!o&&typeof o.then=="function"}e.isPromise=R;var U=class{constructor(o){this.full=o;let d=o.split(".");this.major=d[0],this.minor=d[1],this.patch=d.slice(2).join(".")}};e.Version=U;var k=typeof window<"u"&&window,$=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,L=typeof globalThis<"u"&&globalThis,u=L||k||$;e.global=u}}),Yc=I({"node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=zc(),t=Wc(),s=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/;function c(h){return h.replace(/\W/g,"_")}e.sanitizeIdentifier=c;var n=0;function a(h){if(!h||!h.reference)return null;let F=h.reference;if(F instanceof r.StaticSymbol)return F.name;if(F.__anonymousType)return F.__anonymousType;let q=t.stringify(F);return q.indexOf("(")>=0?(q="anonymous_".concat(n++),F.__anonymousType=q):q=c(q),q}e.identifierName=a;function f(h){let F=h.reference;return F instanceof r.StaticSymbol?F.filePath:"./".concat(t.stringify(F))}e.identifierModuleUrl=f;function D(h,F){return"View_".concat(a({reference:h}),"_").concat(F)}e.viewClassName=D;function v(h){return"RenderType_".concat(a({reference:h}))}e.rendererTypeName=v;function i(h){return"HostView_".concat(a({reference:h}))}e.hostViewClassName=i;function l(h){return"".concat(a({reference:h}),"NgFactory")}e.componentFactoryName=l;var p;(function(h){h[h.Pipe=0]="Pipe",h[h.Directive=1]="Directive",h[h.NgModule=2]="NgModule",h[h.Injectable=3]="Injectable"})(p=e.CompileSummaryKind||(e.CompileSummaryKind={}));function g(h){return h.value!=null?c(h.value):a(h.identifier)}e.tokenName=g;function C(h){return h.identifier!=null?h.identifier.reference:h.value}e.tokenReference=C;var m=class{constructor(){let{moduleUrl:h,styles:F,styleUrls:q}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.moduleUrl=h||null,this.styles=R(F),this.styleUrls=R(q)}};e.CompileStylesheetMetadata=m;var B=class{constructor(h){let{encapsulation:F,template:q,templateUrl:P,htmlAst:G,styles:H,styleUrls:K,externalStylesheets:z,animations:Y,ngContentSelectors:J,interpolation:Z,isInline:_,preserveWhitespaces:E}=h;if(this.encapsulation=F,this.template=q,this.templateUrl=P,this.htmlAst=G,this.styles=R(H),this.styleUrls=R(K),this.externalStylesheets=R(z),this.animations=Y?k(Y):[],this.ngContentSelectors=J||[],Z&&Z.length!=2)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=Z,this.isInline=_,this.preserveWhitespaces=E}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};e.CompileTemplateMetadata=B;var w=class{static create(h){let{isHost:F,type:q,isComponent:P,selector:G,exportAs:H,changeDetection:K,inputs:z,outputs:Y,host:J,providers:Z,viewProviders:_,queries:E,guards:A,viewQueries:y,entryComponents:x,template:M,componentViewType:V,rendererType:W,componentFactory:Q}=h,se={},Ee={},er={};J!=null&&Object.keys(J).forEach(ee=>{let re=J[ee],ie=ee.match(s);ie===null?er[ee]=re:ie[1]!=null?Ee[ie[1]]=re:ie[2]!=null&&(se[ie[2]]=re)});let Ae={};z!=null&&z.forEach(ee=>{let re=t.splitAtColon(ee,[ee,ee]);Ae[re[0]]=re[1]});let Ne={};return Y!=null&&Y.forEach(ee=>{let re=t.splitAtColon(ee,[ee,ee]);Ne[re[0]]=re[1]}),new w({isHost:F,type:q,isComponent:!!P,selector:G,exportAs:H,changeDetection:K,inputs:Ae,outputs:Ne,hostListeners:se,hostProperties:Ee,hostAttributes:er,providers:Z,viewProviders:_,queries:E,guards:A,viewQueries:y,entryComponents:x,template:M,componentViewType:V,rendererType:W,componentFactory:Q})}constructor(h){let{isHost:F,type:q,isComponent:P,selector:G,exportAs:H,changeDetection:K,inputs:z,outputs:Y,hostListeners:J,hostProperties:Z,hostAttributes:_,providers:E,viewProviders:A,queries:y,guards:x,viewQueries:M,entryComponents:V,template:W,componentViewType:Q,rendererType:se,componentFactory:Ee}=h;this.isHost=!!F,this.type=q,this.isComponent=P,this.selector=G,this.exportAs=H,this.changeDetection=K,this.inputs=z,this.outputs=Y,this.hostListeners=J,this.hostProperties=Z,this.hostAttributes=_,this.providers=R(E),this.viewProviders=R(A),this.queries=R(y),this.guards=x,this.viewQueries=R(M),this.entryComponents=R(V),this.template=W,this.componentViewType=Q,this.rendererType=se,this.componentFactory=Ee}toSummary(){return{summaryKind:p.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}};e.CompileDirectiveMetadata=w;var S=class{constructor(h){let{type:F,name:q,pure:P}=h;this.type=F,this.name=q,this.pure=!!P}toSummary(){return{summaryKind:p.Pipe,type:this.type,name:this.name,pure:this.pure}}};e.CompilePipeMetadata=S;var N=class{};e.CompileShallowModuleMetadata=N;var b=class{constructor(h){let{type:F,providers:q,declaredDirectives:P,exportedDirectives:G,declaredPipes:H,exportedPipes:K,entryComponents:z,bootstrapComponents:Y,importedModules:J,exportedModules:Z,schemas:_,transitiveModule:E,id:A}=h;this.type=F||null,this.declaredDirectives=R(P),this.exportedDirectives=R(G),this.declaredPipes=R(H),this.exportedPipes=R(K),this.providers=R(q),this.entryComponents=R(z),this.bootstrapComponents=R(Y),this.importedModules=R(J),this.exportedModules=R(Z),this.schemas=R(_),this.id=A||null,this.transitiveModule=E||null}toSummary(){let h=this.transitiveModule;return{summaryKind:p.NgModule,type:this.type,entryComponents:h.entryComponents,providers:h.providers,modules:h.modules,exportedDirectives:h.exportedDirectives,exportedPipes:h.exportedPipes}}};e.CompileNgModuleMetadata=b;var j=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(h,F){this.providers.push({provider:h,module:F})}addDirective(h){this.directivesSet.has(h.reference)||(this.directivesSet.add(h.reference),this.directives.push(h))}addExportedDirective(h){this.exportedDirectivesSet.has(h.reference)||(this.exportedDirectivesSet.add(h.reference),this.exportedDirectives.push(h))}addPipe(h){this.pipesSet.has(h.reference)||(this.pipesSet.add(h.reference),this.pipes.push(h))}addExportedPipe(h){this.exportedPipesSet.has(h.reference)||(this.exportedPipesSet.add(h.reference),this.exportedPipes.push(h))}addModule(h){this.modulesSet.has(h.reference)||(this.modulesSet.add(h.reference),this.modules.push(h))}addEntryComponent(h){this.entryComponentsSet.has(h.componentType)||(this.entryComponentsSet.add(h.componentType),this.entryComponents.push(h))}};e.TransitiveCompileNgModuleMetadata=j;function R(h){return h||[]}var U=class{constructor(h,F){let{useClass:q,useValue:P,useExisting:G,useFactory:H,deps:K,multi:z}=F;this.token=h,this.useClass=q||null,this.useValue=P,this.useExisting=G,this.useFactory=H||null,this.dependencies=K||null,this.multi=!!z}};e.ProviderMeta=U;function k(h){return h.reduce((F,q)=>{let P=Array.isArray(q)?k(q):q;return F.concat(P)},[])}e.flatten=k;function $(h){return h.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}function L(h,F,q){let P;return q.isInline?F.type.reference instanceof r.StaticSymbol?P="".concat(F.type.reference.filePath,".").concat(F.type.reference.name,".html"):P="".concat(a(h),"/").concat(a(F.type),".html"):P=q.templateUrl,F.type.reference instanceof r.StaticSymbol?P:$(P)}e.templateSourceUrl=L;function u(h,F){let q=h.moduleUrl.split(/\/\\/g),P=q[q.length-1];return $("css/".concat(F).concat(P,".ngstyle.js"))}e.sharedStylesheetJitUrl=u;function o(h){return $("".concat(a(h.type),"/module.ngfactory.js"))}e.ngModuleJitUrl=o;function d(h,F){return $("".concat(a(h),"/").concat(a(F.type),".ngfactory.js"))}e.templateJitUrl=d}}),we=I({"node_modules/angular-html-parser/lib/compiler/src/parse_util.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=ss(),t=Yc(),s=class{constructor(i,l,p,g){this.file=i,this.offset=l,this.line=p,this.col=g}toString(){return this.offset!=null?"".concat(this.file.url,"@").concat(this.line,":").concat(this.col):this.file.url}moveBy(i){let l=this.file.content,p=l.length,g=this.offset,C=this.line,m=this.col;for(;g>0&&i<0;)if(g--,i++,l.charCodeAt(g)==r.$LF){C--;let w=l.substr(0,g-1).lastIndexOf(String.fromCharCode(r.$LF));m=w>0?g-w:g}else m--;for(;g0;){let B=l.charCodeAt(g);g++,i--,B==r.$LF?(C++,m=0):m++}return new s(this.file,g,C,m)}getContext(i,l){let p=this.file.content,g=this.offset;if(g!=null){g>p.length-1&&(g=p.length-1);let C=g,m=0,B=0;for(;m0&&(g--,m++,!(p[g]==` +`&&++B==l)););for(m=0,B=0;m2&&arguments[2]!==void 0?arguments[2]:null;this.start=i,this.end=l,this.details=p}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}};e.ParseSourceSpan=n,e.EMPTY_PARSE_LOCATION=new s(new c("",""),0,0,0),e.EMPTY_SOURCE_SPAN=new n(e.EMPTY_PARSE_LOCATION,e.EMPTY_PARSE_LOCATION);var a;(function(i){i[i.WARNING=0]="WARNING",i[i.ERROR=1]="ERROR"})(a=e.ParseErrorLevel||(e.ParseErrorLevel={}));var f=class{constructor(i,l){let p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:a.ERROR;this.span=i,this.msg=l,this.level=p}contextualMessage(){let i=this.span.start.getContext(100,3);return i?"".concat(this.msg,' ("').concat(i.before,"[").concat(a[this.level]," ->]").concat(i.after,'")'):this.msg}toString(){let i=this.span.details?", ".concat(this.span.details):"";return"".concat(this.contextualMessage(),": ").concat(this.span.start).concat(i)}};e.ParseError=f;function D(i,l){let p=t.identifierModuleUrl(l),g=p!=null?"in ".concat(i," ").concat(t.identifierName(l)," in ").concat(p):"in ".concat(i," ").concat(t.identifierName(l)),C=new c("",g);return new n(new s(C,-1,-1,-1),new s(C,-1,-1,-1))}e.typeSourceSpan=D;function v(i,l,p){let g="in ".concat(i," ").concat(l," in ").concat(p),C=new c("",g);return new n(new s(C,-1,-1,-1),new s(C,-1,-1,-1))}e.r3JitTypeSourceSpan=v}}),Qc=I({"src/utils/front-matter/parse.js"(e,r){"use strict";O();var t=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function s(c){let n=c.match(t);if(!n)return{content:c};let{startDelimiter:a,language:f,value:D="",endDelimiter:v}=n.groups,i=f.trim()||"yaml";if(a==="+++"&&(i="toml"),i!=="yaml"&&a!==v)return{content:c};let[l]=n;return{frontMatter:{type:"front-matter",lang:i,value:D,startDelimiter:a,endDelimiter:v,raw:l.replace(/\n$/,"")},content:l.replace(/[^\n]/g," ")+c.slice(l.length)}}r.exports=s}}),as=I({"src/utils/get-last.js"(e,r){"use strict";O();var t=s=>s[s.length-1];r.exports=t}}),Kc=I({"src/common/parser-create-error.js"(e,r){"use strict";O();function t(s,c){let n=new SyntaxError(s+" ("+c.start.line+":"+c.start.column+")");return n.loc=c,n}r.exports=t}}),is={};ts(is,{default:()=>Jc});function Jc(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var Zc=Fe({"node_modules/escape-string-regexp/index.js"(){O()}}),os=I({"node_modules/semver/internal/debug.js"(e,r){O();var t=typeof be=="object"&&be.env&&be.env.NODE_DEBUG&&/\bsemver\b/i.test(be.env.NODE_DEBUG)?function(){for(var s=arguments.length,c=new Array(s),n=0;n{};r.exports=t}}),cs=I({"node_modules/semver/internal/constants.js"(e,r){O();var t="2.0.0",s=256,c=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:s,MAX_SAFE_INTEGER:c,MAX_SAFE_COMPONENT_LENGTH:n}}}),eD=I({"node_modules/semver/internal/re.js"(e,r){O();var{MAX_SAFE_COMPONENT_LENGTH:t}=cs(),s=os();e=r.exports={};var c=e.re=[],n=e.src=[],a=e.t={},f=0,D=(v,i,l)=>{let p=f++;s(v,p,i),a[v]=p,n[p]=i,c[p]=new RegExp(i,l?"g":void 0)};D("NUMERICIDENTIFIER","0|[1-9]\\d*"),D("NUMERICIDENTIFIERLOOSE","[0-9]+"),D("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),D("MAINVERSION","(".concat(n[a.NUMERICIDENTIFIER],")\\.(").concat(n[a.NUMERICIDENTIFIER],")\\.(").concat(n[a.NUMERICIDENTIFIER],")")),D("MAINVERSIONLOOSE","(".concat(n[a.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[a.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[a.NUMERICIDENTIFIERLOOSE],")")),D("PRERELEASEIDENTIFIER","(?:".concat(n[a.NUMERICIDENTIFIER],"|").concat(n[a.NONNUMERICIDENTIFIER],")")),D("PRERELEASEIDENTIFIERLOOSE","(?:".concat(n[a.NUMERICIDENTIFIERLOOSE],"|").concat(n[a.NONNUMERICIDENTIFIER],")")),D("PRERELEASE","(?:-(".concat(n[a.PRERELEASEIDENTIFIER],"(?:\\.").concat(n[a.PRERELEASEIDENTIFIER],")*))")),D("PRERELEASELOOSE","(?:-?(".concat(n[a.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(n[a.PRERELEASEIDENTIFIERLOOSE],")*))")),D("BUILDIDENTIFIER","[0-9A-Za-z-]+"),D("BUILD","(?:\\+(".concat(n[a.BUILDIDENTIFIER],"(?:\\.").concat(n[a.BUILDIDENTIFIER],")*))")),D("FULLPLAIN","v?".concat(n[a.MAINVERSION]).concat(n[a.PRERELEASE],"?").concat(n[a.BUILD],"?")),D("FULL","^".concat(n[a.FULLPLAIN],"$")),D("LOOSEPLAIN","[v=\\s]*".concat(n[a.MAINVERSIONLOOSE]).concat(n[a.PRERELEASELOOSE],"?").concat(n[a.BUILD],"?")),D("LOOSE","^".concat(n[a.LOOSEPLAIN],"$")),D("GTLT","((?:<|>)?=?)"),D("XRANGEIDENTIFIERLOOSE","".concat(n[a.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),D("XRANGEIDENTIFIER","".concat(n[a.NUMERICIDENTIFIER],"|x|X|\\*")),D("XRANGEPLAIN","[v=\\s]*(".concat(n[a.XRANGEIDENTIFIER],")(?:\\.(").concat(n[a.XRANGEIDENTIFIER],")(?:\\.(").concat(n[a.XRANGEIDENTIFIER],")(?:").concat(n[a.PRERELEASE],")?").concat(n[a.BUILD],"?)?)?")),D("XRANGEPLAINLOOSE","[v=\\s]*(".concat(n[a.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[a.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[a.XRANGEIDENTIFIERLOOSE],")(?:").concat(n[a.PRERELEASELOOSE],")?").concat(n[a.BUILD],"?)?)?")),D("XRANGE","^".concat(n[a.GTLT],"\\s*").concat(n[a.XRANGEPLAIN],"$")),D("XRANGELOOSE","^".concat(n[a.GTLT],"\\s*").concat(n[a.XRANGEPLAINLOOSE],"$")),D("COERCE","(^|[^\\d])(\\d{1,".concat(t,"})(?:\\.(\\d{1,").concat(t,"}))?(?:\\.(\\d{1,").concat(t,"}))?(?:$|[^\\d])")),D("COERCERTL",n[a.COERCE],!0),D("LONETILDE","(?:~>?)"),D("TILDETRIM","(\\s*)".concat(n[a.LONETILDE],"\\s+"),!0),e.tildeTrimReplace="$1~",D("TILDE","^".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAIN],"$")),D("TILDELOOSE","^".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAINLOOSE],"$")),D("LONECARET","(?:\\^)"),D("CARETTRIM","(\\s*)".concat(n[a.LONECARET],"\\s+"),!0),e.caretTrimReplace="$1^",D("CARET","^".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAIN],"$")),D("CARETLOOSE","^".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAINLOOSE],"$")),D("COMPARATORLOOSE","^".concat(n[a.GTLT],"\\s*(").concat(n[a.LOOSEPLAIN],")$|^$")),D("COMPARATOR","^".concat(n[a.GTLT],"\\s*(").concat(n[a.FULLPLAIN],")$|^$")),D("COMPARATORTRIM","(\\s*)".concat(n[a.GTLT],"\\s*(").concat(n[a.LOOSEPLAIN],"|").concat(n[a.XRANGEPLAIN],")"),!0),e.comparatorTrimReplace="$1$2$3",D("HYPHENRANGE","^\\s*(".concat(n[a.XRANGEPLAIN],")\\s+-\\s+(").concat(n[a.XRANGEPLAIN],")\\s*$")),D("HYPHENRANGELOOSE","^\\s*(".concat(n[a.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(n[a.XRANGEPLAINLOOSE],")\\s*$")),D("STAR","(<|>)?=?\\s*\\*"),D("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),D("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),rD=I({"node_modules/semver/internal/parse-options.js"(e,r){O();var t=["includePrerelease","loose","rtl"],s=c=>c?typeof c!="object"?{loose:!0}:t.filter(n=>c[n]).reduce((n,a)=>(n[a]=!0,n),{}):{};r.exports=s}}),tD=I({"node_modules/semver/internal/identifiers.js"(e,r){O();var t=/^[0-9]+$/,s=(n,a)=>{let f=t.test(n),D=t.test(a);return f&&D&&(n=+n,a=+a),n===a?0:f&&!D?-1:D&&!f?1:ns(a,n);r.exports={compareIdentifiers:s,rcompareIdentifiers:c}}}),uD=I({"node_modules/semver/classes/semver.js"(e,r){O();var t=os(),{MAX_LENGTH:s,MAX_SAFE_INTEGER:c}=cs(),{re:n,t:a}=eD(),f=rD(),{compareIdentifiers:D}=tD(),v=class{constructor(i,l){if(l=f(l),i instanceof v){if(i.loose===!!l.loose&&i.includePrerelease===!!l.includePrerelease)return i;i=i.version}else if(typeof i!="string")throw new TypeError("Invalid Version: ".concat(i));if(i.length>s)throw new TypeError("version is longer than ".concat(s," characters"));t("SemVer",i,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let p=i.trim().match(l.loose?n[a.LOOSE]:n[a.FULL]);if(!p)throw new TypeError("Invalid Version: ".concat(i));if(this.raw=i,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>c||this.major<0)throw new TypeError("Invalid major version");if(this.minor>c||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>c||this.patch<0)throw new TypeError("Invalid patch version");p[4]?this.prerelease=p[4].split(".").map(g=>{if(/^[0-9]+$/.test(g)){let C=+g;if(C>=0&&C=0;)typeof this.prerelease[p]=="number"&&(this.prerelease[p]++,p=-2);p===-1&&this.prerelease.push(0)}l&&(D(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error("invalid increment argument: ".concat(i))}return this.format(),this.raw=this.version,this}};r.exports=v}}),Ur=I({"node_modules/semver/functions/compare.js"(e,r){O();var t=uD(),s=(c,n,a)=>new t(c,a).compare(new t(n,a));r.exports=s}}),nD=I({"node_modules/semver/functions/lt.js"(e,r){O();var t=Ur(),s=(c,n,a)=>t(c,n,a)<0;r.exports=s}}),sD=I({"node_modules/semver/functions/gte.js"(e,r){O();var t=Ur(),s=(c,n,a)=>t(c,n,a)>=0;r.exports=s}}),aD=I({"src/utils/arrayify.js"(e,r){"use strict";O(),r.exports=(t,s)=>Object.entries(t).map(c=>{let[n,a]=c;return Object.assign({[s]:n},a)})}}),iD=I({"package.json"(e,r){r.exports={version:"2.7.1"}}}),oD=I({"node_modules/outdent/lib/index.js"(e,r){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0}),e.outdent=void 0;function t(){for(var S=[],N=0;Ntypeof l=="string"||typeof l=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"acorn",since:"2.6.0",description:"JavaScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:D,description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin",cliCategory:s},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:D,description:t(Wn||(Wn=ge([` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `]))),exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin-search-dir",cliCategory:s},printWidth:{since:"0.0.0",category:D,type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:v,type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(Yn||(Yn=ge([` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:c},rangeStart:{since:"1.4.0",category:v,type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(Qn||(Qn=ge([` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:c},requirePragma:{since:"1.7.0",category:v,type:"boolean",default:!1,description:t(Kn||(Kn=ge([` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `]))),cliCategory:a},tabWidth:{type:"int",category:D,default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:D,type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:D,type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};r.exports={CATEGORY_CONFIG:s,CATEGORY_EDITOR:c,CATEGORY_FORMAT:n,CATEGORY_OTHER:a,CATEGORY_OUTPUT:f,CATEGORY_GLOBAL:D,CATEGORY_SPECIAL:v,options:i}}}),DD=I({"src/main/support.js"(e,r){"use strict";O();var t={compare:Ur(),lt:nD(),gte:sD()},s=aD(),c=iD().version,n=cD().options;function a(){let{plugins:D=[],showUnreleased:v=!1,showDeprecated:i=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},p=c.split("-",1)[0],g=D.flatMap(S=>S.languages||[]).filter(m),C=s(Object.assign({},...D.map(S=>{let{options:N}=S;return N}),n),"name").filter(S=>m(S)&&B(S)).sort((S,N)=>S.name===N.name?0:S.name{S=Object.assign({},S),Array.isArray(S.default)&&(S.default=S.default.length===1?S.default[0].value:S.default.filter(m).sort((b,j)=>t.compare(j.since,b.since))[0].value),Array.isArray(S.choices)&&(S.choices=S.choices.filter(b=>m(b)&&B(b)),S.name==="parser"&&f(S,g,D));let N=Object.fromEntries(D.filter(b=>b.defaultOptions&&b.defaultOptions[S.name]!==void 0).map(b=>[b.name,b.defaultOptions[S.name]]));return Object.assign(Object.assign({},S),{},{pluginDefaults:N})});return{languages:g,options:C};function m(S){return v||!("since"in S)||S.since&&t.gte(p,S.since)}function B(S){return i||!("deprecated"in S)||S.deprecated&&t.lt(p,S.deprecated)}function w(S){if(l)return S;let{cliName:N,cliCategory:b,cliDescription:j}=S;return jc(S,Mc)}}function f(D,v,i){let l=new Set(D.choices.map(p=>p.value));for(let p of v)if(p.parsers){for(let g of p.parsers)if(!l.has(g)){l.add(g);let C=i.find(B=>B.parsers&&B.parsers[g]),m=p.name;C&&C.name&&(m+=" (plugin: ".concat(C.name,")")),D.choices.push({value:g,description:m})}}}r.exports={getSupportInfo:a}}}),lD=I({"src/utils/is-non-empty-array.js"(e,r){"use strict";O();function t(s){return Array.isArray(s)&&s.length>0}r.exports=t}});function hD(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var pD=Fe({"node_modules/strip-ansi/node_modules/ansi-regex/index.js"(){O()}});function fD(e){if(typeof e!="string")throw new TypeError("Expected a `string`, got `".concat(typeof e,"`"));return e.replace(hD(),"")}var dD=Fe({"node_modules/strip-ansi/index.js"(){O(),pD()}});function ED(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var CD=Fe({"node_modules/is-fullwidth-code-point/index.js"(){O()}}),mD=I({"node_modules/emoji-regex/index.js"(e,r){"use strict";O(),r.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}}),Ds={};ts(Ds,{default:()=>gD});function gD(e){if(typeof e!="string"||e.length===0||(e=fD(e),e.length===0))return 0;e=e.replace((0,ls.default)()," ");let r=0;for(let t=0;t=127&&s<=159||s>=768&&s<=879||(s>65535&&t++,r+=ED(s)?2:1)}return r}var ls,FD=Fe({"node_modules/string-width/index.js"(){O(),dD(),CD(),ls=Hc(mD())}}),AD=I({"src/utils/get-string-width.js"(e,r){"use strict";O();var t=(FD(),ns(Ds)).default,s=/[^\x20-\x7F]/;function c(n){return n?s.test(n)?t(n):n.length:0}r.exports=c}}),Gr=I({"src/utils/text/skip.js"(e,r){"use strict";O();function t(f){return(D,v,i)=>{let l=i&&i.backwards;if(v===!1)return!1;let{length:p}=D,g=v;for(;g>=0&&g_[_.length-2];function B(_){return(E,A,y)=>{let x=y&&y.backwards;if(A===!1)return!1;let{length:M}=E,V=A;for(;V>=0&&V2&&arguments[2]!==void 0?arguments[2]:{},y=D(_,A.backwards?E-1:E,A),x=g(_,y,A);return y!==x}function S(_,E,A){for(let y=E;y2&&arguments[2]!==void 0?arguments[2]:{};return D(_,A.backwards?E-1:E,A)!==E}function $(_,E){let A=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,y=0;for(let x=A;x<_.length;++x)_[x]===" "?y=y+E-y%E:y++;return y}function L(_,E){let A=_.lastIndexOf(` +`);return A===-1?0:$(_.slice(A+1).match(/^[\t ]*/)[0],E)}function u(_,E){let A={quote:'"',regex:/"/g,escaped:"""},y={quote:"'",regex:/'/g,escaped:"'"},x=E==="'"?y:A,M=x===y?A:y,V=x;if(_.includes(x.quote)||_.includes(M.quote)){let W=(_.match(x.regex)||[]).length,Q=(_.match(M.regex)||[]).length;V=W>Q?M:x}return V}function o(_,E){let A=_.slice(1,-1),y=E.parser==="json"||E.parser==="json5"&&E.quoteProps==="preserve"&&!E.singleQuote?'"':E.__isInHtmlAttribute?"'":u(A,E.singleQuote?"'":'"').quote;return d(A,y,!(E.parser==="css"||E.parser==="less"||E.parser==="scss"||E.__embeddedInHtml))}function d(_,E,A){let y=E==='"'?"'":'"',x=/\\(.)|(["'])/gs,M=_.replace(x,(V,W,Q)=>W===y?W:Q===E?"\\"+Q:Q||(A&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(W)?W:"\\"+W));return E+M+E}function h(_){return _.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e|$)/,"")}function F(_,E){let A=_.match(new RegExp("(".concat(t(E),")+"),"g"));return A===null?0:A.reduce((y,x)=>Math.max(y,x.length/E.length),0)}function q(_,E){let A=_.match(new RegExp("(".concat(t(E),")+"),"g"));if(A===null)return 0;let y=new Map,x=0;for(let M of A){let V=M.length/E.length;y.set(V,!0),V>x&&(x=V)}for(let M=1;M{let{name:M}=x;return M.toLowerCase()===_})||A.find(x=>{let{aliases:M}=x;return Array.isArray(M)&&M.includes(_)})||A.find(x=>{let{extensions:M}=x;return Array.isArray(M)&&M.includes(".".concat(_))});return y&&y.parsers[0]}function Y(_){return _&&_.type==="front-matter"}function J(_){let E=new WeakMap;return function(A){return E.has(A)||E.set(A,Symbol(_)),E.get(A)}}function Z(_){let E=_.type||_.kind||"(unknown type)",A=String(_.name||_.id&&(typeof _.id=="object"?_.id.name:_.id)||_.key&&(typeof _.key=="object"?_.key.name:_.key)||_.value&&(typeof _.value=="object"?"":String(_.value))||_.operator||"");return A.length>20&&(A=A.slice(0,19)+"\u2026"),E+(A?" "+A:"")}r.exports={inferParserByLanguage:z,getStringWidth:a,getMaxContinuousCount:F,getMinNotPresentContinuousCount:q,getPenultimate:m,getLast:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:C,getNextNonSpaceNonCommentCharacterIndex:R,getNextNonSpaceNonCommentCharacter:U,skip:B,skipWhitespace:f,skipSpaces:D,skipToLineEnd:v,skipEverythingButNewLine:i,skipInlineComment:l,skipTrailingComment:p,skipNewline:g,isNextLineEmptyAfterIndex:b,isNextLineEmpty:j,isPreviousLineEmpty:N,hasNewline:w,hasNewlineInRange:S,hasSpaces:k,getAlignmentSize:$,getIndentSize:L,getPreferredQuote:u,printString:o,printNumber:h,makeString:d,addLeadingComment:G,addDanglingComment:H,addTrailingComment:K,isFrontMatterNode:Y,isNonEmptyArray:n,createGroupIdMapper:J}}}),SD=I({"vendors/html-tag-names.json"(e,r){r.exports={htmlTagNames:["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","content","data","datalist","dd","del","details","dfn","dialog","dir","div","dl","dt","element","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","image","img","input","ins","isindex","kbd","keygen","label","legend","li","link","listing","main","map","mark","marquee","math","menu","menuitem","meta","meter","multicol","nav","nextid","nobr","noembed","noframes","noscript","object","ol","optgroup","option","output","p","param","picture","plaintext","pre","progress","q","rb","rbc","rp","rt","rtc","ruby","s","samp","script","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr","xmp"]}}}),ds=I({"src/language-html/utils/array-to-map.js"(e,r){"use strict";O();function t(s){let c=Object.create(null);for(let n of s)c[n]=!0;return c}r.exports=t}}),yD=I({"src/language-html/utils/html-tag-names.js"(e,r){"use strict";O();var{htmlTagNames:t}=SD(),s=ds(),c=s(t);r.exports=c}}),TD=I({"vendors/html-element-attributes.json"(e,r){r.exports={htmlElementAttributes:{"*":["accesskey","autocapitalize","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","slot","spellcheck","style","tabindex","title","translate"],a:["charset","coords","download","href","hreflang","name","ping","referrerpolicy","rel","rev","shape","target","type"],applet:["align","alt","archive","code","codebase","height","hspace","name","object","vspace","width"],area:["alt","coords","download","href","hreflang","nohref","ping","referrerpolicy","rel","shape","target","type"],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],base:["href","target"],basefont:["color","face","size"],blockquote:["cite"],body:["alink","background","bgcolor","link","text","vlink"],br:["clear"],button:["disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],data:["value"],del:["cite","datetime"],details:["open"],dialog:["open"],dir:["compact"],div:["align"],dl:["compact"],embed:["height","src","type","width"],fieldset:["disabled","form","name"],font:["color","face","size"],form:["accept","accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],frame:["frameborder","longdesc","marginheight","marginwidth","name","noresize","scrolling","src"],frameset:["cols","rows"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],head:["profile"],hr:["align","noshade","size","width"],html:["manifest","version"],iframe:["align","allow","allowfullscreen","allowpaymentrequest","allowusermedia","frameborder","height","loading","longdesc","marginheight","marginwidth","name","referrerpolicy","sandbox","scrolling","src","srcdoc","width"],img:["align","alt","border","crossorigin","decoding","height","hspace","ismap","loading","longdesc","name","referrerpolicy","sizes","src","srcset","usemap","vspace","width"],input:["accept","align","alt","autocomplete","checked","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","ismap","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","size","src","step","type","usemap","value","width"],ins:["cite","datetime"],isindex:["prompt"],label:["for","form"],legend:["align"],li:["type","value"],link:["as","charset","color","crossorigin","disabled","href","hreflang","imagesizes","imagesrcset","integrity","media","referrerpolicy","rel","rev","sizes","target","type"],map:["name"],menu:["compact"],meta:["charset","content","http-equiv","media","name","scheme"],meter:["high","low","max","min","optimum","value"],object:["align","archive","border","classid","codebase","codetype","data","declare","form","height","hspace","name","standby","type","typemustmatch","usemap","vspace","width"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],p:["align"],param:["name","type","value","valuetype"],pre:["width"],progress:["max","value"],q:["cite"],script:["async","charset","crossorigin","defer","integrity","language","nomodule","referrerpolicy","src","type"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["height","media","sizes","src","srcset","type","width"],style:["media","type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],time:["datetime"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","src","srclang"],ul:["compact","type"],video:["autoplay","controls","crossorigin","height","loop","muted","playsinline","poster","preload","src","width"]}}}}),BD=I({"src/language-html/utils/map-object.js"(e,r){"use strict";O();function t(s,c){let n=Object.create(null);for(let[a,f]of Object.entries(s))n[a]=c(f,a);return n}r.exports=t}}),bD=I({"src/language-html/utils/html-elements-attributes.js"(e,r){"use strict";O();var{htmlElementAttributes:t}=TD(),s=BD(),c=ds(),n=s(t,c);r.exports=n}}),wD=I({"src/language-html/utils/is-unknown-namespace.js"(e,r){"use strict";O();function t(s){return s.type==="element"&&!s.hasExplicitNamespace&&!["html","svg"].includes(s.namespace)}r.exports=t}}),ND=I({"src/language-html/pragma.js"(e,r){"use strict";O();function t(c){return/^\s*/.test(c)}function s(c){return` + +`+c.replace(/^\s*\n/,"")}r.exports={hasPragma:t,insertPragma:s}}}),OD=I({"src/language-html/ast.js"(e,r){"use strict";O();var t={attrs:!0,children:!0},s=new Set(["parent"]),c=class{constructor(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};for(let f of new Set([...s,...Object.keys(a)]))this.setProperty(f,a[f])}setProperty(a,f){if(this[a]!==f){if(a in t&&(f=f.map(D=>this.createChild(D))),!s.has(a)){this[a]=f;return}Object.defineProperty(this,a,{value:f,enumerable:!1,configurable:!0})}}map(a){let f;for(let D in t){let v=this[D];if(v){let i=n(v,l=>l.map(a));f!==v&&(f||(f=new c({parent:this.parent})),f.setProperty(D,i))}}if(f)for(let D in this)D in t||(f[D]=this[D]);return a(f||this)}walk(a){for(let f in t){let D=this[f];if(D)for(let v=0;v[a.fullName,a.value]))}};function n(a,f){let D=a.map(f);return D.some((v,i)=>v!==a[i])?D:a}r.exports={Node:c}}}),qD=I({"src/language-html/conditional-comment.js"(e,r){"use strict";O();var{ParseSourceSpan:t}=we(),s=[{regex:/^(\[if([^\]]*)]>)(.*?){try{return[!0,v(g,m).children]}catch{let N={type:"text",value:g,sourceSpan:new t(m,B)};return[!1,[N]]}})();return{type:"ieConditionalComment",complete:w,children:S,condition:p.trim().replace(/\s+/g," "),sourceSpan:D.sourceSpan,startSourceSpan:new t(D.sourceSpan.start,m),endSourceSpan:new t(B,D.sourceSpan.end)}}function a(D,v,i){let[,l]=i;return{type:"ieConditionalStartComment",condition:l.trim().replace(/\s+/g," "),sourceSpan:D.sourceSpan}}function f(D){return{type:"ieConditionalEndComment",sourceSpan:D.sourceSpan}}r.exports={parseIeConditionalComment:c}}}),ID=I({"src/language-html/loc.js"(e,r){"use strict";O();function t(c){return c.sourceSpan.start.offset}function s(c){return c.sourceSpan.end.offset}r.exports={locStart:t,locEnd:s}}}),Ze=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/tags.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r;(function(D){D[D.RAW_TEXT=0]="RAW_TEXT",D[D.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",D[D.PARSABLE_DATA=2]="PARSABLE_DATA"})(r=e.TagContentType||(e.TagContentType={}));function t(D){if(D[0]!=":")return[null,D];let v=D.indexOf(":",1);if(v==-1)throw new Error('Unsupported format "'.concat(D,'" expecting ":namespace:name"'));return[D.slice(1,v),D.slice(v+1)]}e.splitNsName=t;function s(D){return t(D)[1]==="ng-container"}e.isNgContainer=s;function c(D){return t(D)[1]==="ng-content"}e.isNgContent=c;function n(D){return t(D)[1]==="ng-template"}e.isNgTemplate=n;function a(D){return D===null?null:t(D)[0]}e.getNsPrefix=a;function f(D,v){return D?":".concat(D,":").concat(v):v}e.mergeNsAndName=f,e.NAMED_ENTITIES={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",GT:">",Gt:"\u226B",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",LT:"<",Lt:"\u226A",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"},e.NGSP_UNICODE="\uE500",e.NAMED_ENTITIES.ngsp=e.NGSP_UNICODE}}),Es=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_tags.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=Ze(),t=class{constructor(){let{closedByChildren:a,implicitNamespacePrefix:f,contentType:D=r.TagContentType.PARSABLE_DATA,closedByParent:v=!1,isVoid:i=!1,ignoreFirstLf:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,a&&a.length>0&&a.forEach(p=>this.closedByChildren[p]=!0),this.isVoid=i,this.closedByParent=v||i,this.implicitNamespacePrefix=f||null,this.contentType=D,this.ignoreFirstLf=l}isClosedByChild(a){return this.isVoid||a.toLowerCase()in this.closedByChildren}};e.HtmlTagDefinition=t;var s,c;function n(a){return c||(s=new t,c={base:new t({isVoid:!0}),meta:new t({isVoid:!0}),area:new t({isVoid:!0}),embed:new t({isVoid:!0}),link:new t({isVoid:!0}),img:new t({isVoid:!0}),input:new t({isVoid:!0}),param:new t({isVoid:!0}),hr:new t({isVoid:!0}),br:new t({isVoid:!0}),source:new t({isVoid:!0}),track:new t({isVoid:!0}),wbr:new t({isVoid:!0}),p:new t({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new t({closedByChildren:["tbody","tfoot"]}),tbody:new t({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new t({closedByChildren:["tbody"],closedByParent:!0}),tr:new t({closedByChildren:["tr"],closedByParent:!0}),td:new t({closedByChildren:["td","th"],closedByParent:!0}),th:new t({closedByChildren:["td","th"],closedByParent:!0}),col:new t({isVoid:!0}),svg:new t({implicitNamespacePrefix:"svg"}),math:new t({implicitNamespacePrefix:"math"}),li:new t({closedByChildren:["li"],closedByParent:!0}),dt:new t({closedByChildren:["dt","dd"]}),dd:new t({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new t({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new t({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new t({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new t({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new t({closedByChildren:["optgroup"],closedByParent:!0}),option:new t({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new t({ignoreFirstLf:!0}),listing:new t({ignoreFirstLf:!0}),style:new t({contentType:r.TagContentType.RAW_TEXT}),script:new t({contentType:r.TagContentType.RAW_TEXT}),title:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT}),textarea:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),c[a]||s}e.getHtmlTagDefinition=n}}),RD=I({"node_modules/angular-html-parser/lib/compiler/src/ast_path.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=class{constructor(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1;this.path=t,this.position=s}get empty(){return!this.path||!this.path.length}get head(){return this.path[0]}get tail(){return this.path[this.path.length-1]}parentOf(t){return t&&this.path[this.path.indexOf(t)-1]}childOf(t){return this.path[this.path.indexOf(t)+1]}first(t){for(let s=this.path.length-1;s>=0;s--){let c=this.path[s];if(c instanceof t)return c}}push(t){this.path.push(t)}pop(){return this.path.pop()}};e.AstPath=r}}),Cs=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/ast.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=RD(),t=class{constructor(C,m,B){this.value=C,this.sourceSpan=m,this.i18n=B,this.type="text"}visit(C,m){return C.visitText(this,m)}};e.Text=t;var s=class{constructor(C,m){this.value=C,this.sourceSpan=m,this.type="cdata"}visit(C,m){return C.visitCdata(this,m)}};e.CDATA=s;var c=class{constructor(C,m,B,w,S,N){this.switchValue=C,this.type=m,this.cases=B,this.sourceSpan=w,this.switchValueSourceSpan=S,this.i18n=N}visit(C,m){return C.visitExpansion(this,m)}};e.Expansion=c;var n=class{constructor(C,m,B,w,S){this.value=C,this.expression=m,this.sourceSpan=B,this.valueSourceSpan=w,this.expSourceSpan=S}visit(C,m){return C.visitExpansionCase(this,m)}};e.ExpansionCase=n;var a=class{constructor(C,m,B){let w=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,S=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null;this.name=C,this.value=m,this.sourceSpan=B,this.valueSpan=w,this.nameSpan=S,this.i18n=N,this.type="attribute"}visit(C,m){return C.visitAttribute(this,m)}};e.Attribute=a;var f=class{constructor(C,m,B,w){let S=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,b=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,j=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null;this.name=C,this.attrs=m,this.children=B,this.sourceSpan=w,this.startSourceSpan=S,this.endSourceSpan=N,this.nameSpan=b,this.i18n=j,this.type="element"}visit(C,m){return C.visitElement(this,m)}};e.Element=f;var D=class{constructor(C,m){this.value=C,this.sourceSpan=m,this.type="comment"}visit(C,m){return C.visitComment(this,m)}};e.Comment=D;var v=class{constructor(C,m){this.value=C,this.sourceSpan=m,this.type="docType"}visit(C,m){return C.visitDocType(this,m)}};e.DocType=v;function i(C,m){let B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,w=[],S=C.visit?N=>C.visit(N,B)||N.visit(C,B):N=>N.visit(C,B);return m.forEach(N=>{let b=S(N);b&&w.push(b)}),w}e.visitAll=i;var l=class{constructor(){}visitElement(C,m){this.visitChildren(m,B=>{B(C.attrs),B(C.children)})}visitAttribute(C,m){}visitText(C,m){}visitCdata(C,m){}visitComment(C,m){}visitDocType(C,m){}visitExpansion(C,m){return this.visitChildren(m,B=>{B(C.cases)})}visitExpansionCase(C,m){}visitChildren(C,m){let B=[],w=this;function S(N){N&&B.push(i(w,N,C))}return m(S),Array.prototype.concat.apply([],B)}};e.RecursiveVisitor=l;function p(C){let m=C.sourceSpan.start.offset,B=C.sourceSpan.end.offset;return C instanceof f&&(C.endSourceSpan?B=C.endSourceSpan.end.offset:C.children&&C.children.length&&(B=p(C.children[C.children.length-1]).end)),{start:m,end:B}}function g(C,m){let B=[],w=new class extends l{visit(S,N){let b=p(S);if(b.start<=m&&m]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function s(c,n){if(n!=null&&!(Array.isArray(n)&&n.length==2))throw new Error("Expected '".concat(c,"' to be an array, [start, end]."));if(n!=null){let a=n[0],f=n[1];t.forEach(D=>{if(D.test(a)||D.test(f))throw new Error("['".concat(a,"', '").concat(f,"'] contains unusable interpolation symbol."))})}}e.assertInterpolationSymbols=s}}),PD=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/interpolation_config.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=xD(),t=class{constructor(s,c){this.start=s,this.end=c}static fromArray(s){return s?(r.assertInterpolationSymbols("interpolation",s),new t(s[0],s[1])):e.DEFAULT_INTERPOLATION_CONFIG}};e.InterpolationConfig=t,e.DEFAULT_INTERPOLATION_CONFIG=new t("{{","}}")}}),kD=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/lexer.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=ss(),t=we(),s=PD(),c=Ze(),n;(function(u){u[u.TAG_OPEN_START=0]="TAG_OPEN_START",u[u.TAG_OPEN_END=1]="TAG_OPEN_END",u[u.TAG_OPEN_END_VOID=2]="TAG_OPEN_END_VOID",u[u.TAG_CLOSE=3]="TAG_CLOSE",u[u.TEXT=4]="TEXT",u[u.ESCAPABLE_RAW_TEXT=5]="ESCAPABLE_RAW_TEXT",u[u.RAW_TEXT=6]="RAW_TEXT",u[u.COMMENT_START=7]="COMMENT_START",u[u.COMMENT_END=8]="COMMENT_END",u[u.CDATA_START=9]="CDATA_START",u[u.CDATA_END=10]="CDATA_END",u[u.ATTR_NAME=11]="ATTR_NAME",u[u.ATTR_QUOTE=12]="ATTR_QUOTE",u[u.ATTR_VALUE=13]="ATTR_VALUE",u[u.DOC_TYPE_START=14]="DOC_TYPE_START",u[u.DOC_TYPE_END=15]="DOC_TYPE_END",u[u.EXPANSION_FORM_START=16]="EXPANSION_FORM_START",u[u.EXPANSION_CASE_VALUE=17]="EXPANSION_CASE_VALUE",u[u.EXPANSION_CASE_EXP_START=18]="EXPANSION_CASE_EXP_START",u[u.EXPANSION_CASE_EXP_END=19]="EXPANSION_CASE_EXP_END",u[u.EXPANSION_FORM_END=20]="EXPANSION_FORM_END",u[u.EOF=21]="EOF"})(n=e.TokenType||(e.TokenType={}));var a=class{constructor(u,o,d){this.type=u,this.parts=o,this.sourceSpan=d}};e.Token=a;var f=class extends t.ParseError{constructor(u,o,d){super(d,u),this.tokenType=o}};e.TokenError=f;var D=class{constructor(u,o){this.tokens=u,this.errors=o}};e.TokenizeResult=D;function v(u,o,d){let h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return new C(new t.ParseSourceFile(u,o),d,h).tokenize()}e.tokenize=v;var i=/\r\n?/g;function l(u){let o=u===r.$EOF?"EOF":String.fromCharCode(u);return'Unexpected character "'.concat(o,'"')}function p(u){return'Unknown entity "'.concat(u,'" - use the "&#;" or "&#x;" syntax')}var g=class{constructor(u){this.error=u}},C=class{constructor(u,o,d){this._getTagContentType=o,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this._tokenizeIcu=d.tokenizeExpansionForms||!1,this._interpolationConfig=d.interpolationConfig||s.DEFAULT_INTERPOLATION_CONFIG,this._leadingTriviaCodePoints=d.leadingTriviaChars&&d.leadingTriviaChars.map(F=>F.codePointAt(0)||0),this._canSelfClose=d.canSelfClose||!1,this._allowHtmComponentClosingTags=d.allowHtmComponentClosingTags||!1;let h=d.range||{endPos:u.content.length,startPos:0,startLine:0,startCol:0};this._cursor=d.escapedString?new $(u,h):new k(u,h);try{this._cursor.init()}catch(F){this.handleError(F)}}_processCarriageReturns(u){return u.replace(i,` +`)}tokenize(){for(;this._cursor.peek()!==r.$EOF;){let u=this._cursor.clone();try{if(this._attemptCharCode(r.$LT))if(this._attemptCharCode(r.$BANG))this._attemptStr("[CDATA[")?this._consumeCdata(u):this._attemptStr("--")?this._consumeComment(u):this._attemptStrCaseInsensitive("doctype")?this._consumeDocType(u):this._consumeBogusComment(u);else if(this._attemptCharCode(r.$SLASH))this._consumeTagClose(u);else{let o=this._cursor.clone();this._attemptCharCode(r.$QUESTION)?(this._cursor=o,this._consumeBogusComment(u)):this._consumeTagOpen(u)}else this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(o){this.handleError(o)}}return this._beginToken(n.EOF),this._endToken([]),new D(U(this.tokens),this.errors)}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(b(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===r.$RBRACE){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();this._currentTokenStart=o,this._currentTokenType=u}_endToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();if(this._currentTokenStart===null)throw new f("Programming error - attempted to end a token when there was no start to the token",this._currentTokenType,this._cursor.getSpan(o));if(this._currentTokenType===null)throw new f("Programming error - attempted to end a token which has no token type",null,this._cursor.getSpan(this._currentTokenStart));let d=new a(this._currentTokenType,u,this._cursor.getSpan(this._currentTokenStart,this._leadingTriviaCodePoints));return this.tokens.push(d),this._currentTokenStart=null,this._currentTokenType=null,d}_createError(u,o){this._isInExpansionForm()&&(u+=` (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.)`);let d=new f(u,this._currentTokenType,o);return this._currentTokenStart=null,this._currentTokenType=null,new g(d)}handleError(u){if(u instanceof L&&(u=this._createError(u.msg,this._cursor.getSpan(u.cursor))),u instanceof g)this.errors.push(u.error);else throw u}_attemptCharCode(u){return this._cursor.peek()===u?(this._cursor.advance(),!0):!1}_attemptCharCodeCaseInsensitive(u){return j(this._cursor.peek(),u)?(this._cursor.advance(),!0):!1}_requireCharCode(u){let o=this._cursor.clone();if(!this._attemptCharCode(u))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(o))}_attemptStr(u){let o=u.length;if(this._cursor.charsLeft()this._attemptStr("-->")),this._beginToken(n.COMMENT_END),this._requireStr("-->"),this._endToken([])}_consumeBogusComment(u){this._beginToken(n.COMMENT_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.COMMENT_END),this._cursor.advance(),this._endToken([])}_consumeCdata(u){this._beginToken(n.CDATA_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr("]]>")),this._beginToken(n.CDATA_END),this._requireStr("]]>"),this._endToken([])}_consumeDocType(u){this._beginToken(n.DOC_TYPE_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.DOC_TYPE_END),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){let u=this._cursor.clone(),o="";for(;this._cursor.peek()!==r.$COLON&&!w(this._cursor.peek());)this._cursor.advance();let d;this._cursor.peek()===r.$COLON?(o=this._cursor.getChars(u),this._cursor.advance(),d=this._cursor.clone()):d=u,this._requireCharCodeUntilFn(B,o===""?0:1);let h=this._cursor.getChars(d);return[o,h]}_consumeTagOpen(u){let o,d,h,F=this.tokens.length,q=this._cursor.clone(),P=[];try{if(!r.isAsciiLetter(this._cursor.peek()))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(u));for(h=this._consumeTagOpenStart(u),d=h.parts[0],o=h.parts[1],this._attemptCharCodeUntilFn(m);this._cursor.peek()!==r.$SLASH&&this._cursor.peek()!==r.$GT;){let[H,K]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$EQ)){this._attemptCharCodeUntilFn(m);let z=this._consumeAttributeValue();P.push({prefix:H,name:K,value:z})}else P.push({prefix:H,name:K});this._attemptCharCodeUntilFn(m)}this._consumeTagOpenEnd()}catch(H){if(H instanceof g){this._cursor=q,h&&(this.tokens.length=F),this._beginToken(n.TEXT,u),this._endToken(["<"]);return}throw H}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===n.TAG_OPEN_END_VOID)return;let G=this._getTagContentType(o,d,this._fullNameStack.length>0,P);this._handleFullNameStackForTagOpen(d,o),G===c.TagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(d,o,!1):G===c.TagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(d,o,!0)}_consumeRawTextWithTagClose(u,o,d){let h=this._consumeRawText(d,()=>!this._attemptCharCode(r.$LT)||!this._attemptCharCode(r.$SLASH)||(this._attemptCharCodeUntilFn(m),!this._attemptStrCaseInsensitive(u?"".concat(u,":").concat(o):o))?!1:(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$GT)));this._beginToken(n.TAG_CLOSE),this._requireCharCodeUntilFn(F=>F===r.$GT,3),this._cursor.advance(),this._endToken([u,o]),this._handleFullNameStackForTagClose(u,o)}_consumeTagOpenStart(u){this._beginToken(n.TAG_OPEN_START,u);let o=this._consumePrefixAndName();return this._endToken(o)}_consumeAttributeName(){let u=this._cursor.peek();if(u===r.$SQ||u===r.$DQ)throw this._createError(l(u),this._cursor.getSpan());this._beginToken(n.ATTR_NAME);let o=this._consumePrefixAndName();return this._endToken(o),o}_consumeAttributeValue(){let u;if(this._cursor.peek()===r.$SQ||this._cursor.peek()===r.$DQ){this._beginToken(n.ATTR_QUOTE);let o=this._cursor.peek();this._cursor.advance(),this._endToken([String.fromCodePoint(o)]),this._beginToken(n.ATTR_VALUE);let d=[];for(;this._cursor.peek()!==o;)d.push(this._readChar(!0));u=this._processCarriageReturns(d.join("")),this._endToken([u]),this._beginToken(n.ATTR_QUOTE),this._cursor.advance(),this._endToken([String.fromCodePoint(o)])}else{this._beginToken(n.ATTR_VALUE);let o=this._cursor.clone();this._requireCharCodeUntilFn(B,1),u=this._processCarriageReturns(this._cursor.getChars(o)),this._endToken([u])}return u}_consumeTagOpenEnd(){let u=this._attemptCharCode(r.$SLASH)?n.TAG_OPEN_END_VOID:n.TAG_OPEN_END;this._beginToken(u),this._requireCharCode(r.$GT),this._endToken([])}_consumeTagClose(u){if(this._beginToken(n.TAG_CLOSE,u),this._attemptCharCodeUntilFn(m),this._allowHtmComponentClosingTags&&this._attemptCharCode(r.$SLASH))this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([]);else{let[o,d]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([o,d]),this._handleFullNameStackForTagClose(o,d)}}_consumeExpansionFormStart(){this._beginToken(n.EXPANSION_FORM_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._expansionCaseStack.push(n.EXPANSION_FORM_START),this._beginToken(n.RAW_TEXT);let u=this._readUntil(r.$COMMA);this._endToken([u]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m),this._beginToken(n.RAW_TEXT);let o=this._readUntil(r.$COMMA);this._endToken([o]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m)}_consumeExpansionCaseStart(){this._beginToken(n.EXPANSION_CASE_VALUE);let u=this._readUntil(r.$LBRACE).trim();this._endToken([u]),this._attemptCharCodeUntilFn(m),this._beginToken(n.EXPANSION_CASE_EXP_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.push(n.EXPANSION_CASE_EXP_START)}_consumeExpansionCaseEnd(){this._beginToken(n.EXPANSION_CASE_EXP_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(n.EXPANSION_FORM_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._expansionCaseStack.pop()}_consumeText(){let u=this._cursor.clone();this._beginToken(n.TEXT,u);let o=[];do this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(o.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(o.push(this._interpolationConfig.end),this._inInterpolation=!1):o.push(this._readChar(!0));while(!this._isTextEnd());this._endToken([this._processCarriageReturns(o.join(""))])}_isTextEnd(){return!!(this._cursor.peek()===r.$LT||this._cursor.peek()===r.$EOF||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===r.$RBRACE&&this._isInExpansionCase()))}_readUntil(u){let o=this._cursor.clone();return this._attemptUntilChar(u),this._cursor.getChars(o)}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_CASE_EXP_START}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_FORM_START}isExpansionFormStart(){if(this._cursor.peek()!==r.$LBRACE)return!1;if(this._interpolationConfig){let u=this._cursor.clone(),o=this._attemptStr(this._interpolationConfig.start);return this._cursor=u,!o}return!0}_handleFullNameStackForTagOpen(u,o){let d=c.mergeNsAndName(u,o);(this._fullNameStack.length===0||this._fullNameStack[this._fullNameStack.length-1]===d)&&this._fullNameStack.push(d)}_handleFullNameStackForTagClose(u,o){let d=c.mergeNsAndName(u,o);this._fullNameStack.length!==0&&this._fullNameStack[this._fullNameStack.length-1]===d&&this._fullNameStack.pop()}};function m(u){return!r.isWhitespace(u)||u===r.$EOF}function B(u){return r.isWhitespace(u)||u===r.$GT||u===r.$SLASH||u===r.$SQ||u===r.$DQ||u===r.$EQ}function w(u){return(ur.$9)}function S(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiHexDigit(u)}function N(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiLetter(u)}function b(u){return u===r.$EQ||r.isAsciiLetter(u)||r.isDigit(u)}function j(u,o){return R(u)==R(o)}function R(u){return u>=r.$a&&u<=r.$z?u-r.$a+r.$A:u}function U(u){let o=[],d;for(let h=0;h0&&o.indexOf(u.peek())!==-1;)u.advance();return new t.ParseSourceSpan(new t.ParseLocation(u.file,u.state.offset,u.state.line,u.state.column),new t.ParseLocation(this.file,this.state.offset,this.state.line,this.state.column))}getChars(u){return this.input.substring(u.state.offset,this.state.offset)}charAt(u){return this.input.charCodeAt(u)}advanceState(u){if(u.offset>=this.end)throw this.state=u,new L('Unexpected character "EOF"',this);let o=this.charAt(u.offset);o===r.$LF?(u.line++,u.column=0):r.isNewLine(o)||u.column++,u.offset++,this.updatePeek(u)}updatePeek(u){u.peek=u.offset>=this.end?r.$EOF:this.charAt(u.offset)}},$=class extends k{constructor(u,o){u instanceof $?(super(u),this.internalState=Object.assign({},u.internalState)):(super(u,o),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new $(this)}getChars(u){let o=u.clone(),d="";for(;o.internalState.offsetthis.internalState.peek;if(u()===r.$BACKSLASH)if(this.internalState=Object.assign({},this.state),this.advanceState(this.internalState),u()===r.$n)this.state.peek=r.$LF;else if(u()===r.$r)this.state.peek=r.$CR;else if(u()===r.$v)this.state.peek=r.$VTAB;else if(u()===r.$t)this.state.peek=r.$TAB;else if(u()===r.$b)this.state.peek=r.$BSPACE;else if(u()===r.$f)this.state.peek=r.$FF;else if(u()===r.$u)if(this.advanceState(this.internalState),u()===r.$LBRACE){this.advanceState(this.internalState);let o=this.clone(),d=0;for(;u()!==r.$RBRACE;)this.advanceState(this.internalState),d++;this.state.peek=this.decodeHexDigits(o,d)}else{let o=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,4)}else if(u()===r.$x){this.advanceState(this.internalState);let o=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,2)}else if(r.isOctalDigit(u())){let o="",d=0,h=this.clone();for(;r.isOctalDigit(u())&&d<3;)h=this.clone(),o+=String.fromCodePoint(u()),this.advanceState(this.internalState),d++;this.state.peek=parseInt(o,8),this.internalState=h.internalState}else r.isNewLine(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(u,o){let d=this.input.substr(u.internalState.offset,o),h=parseInt(d,16);if(isNaN(h))throw u.state=u.internalState,new L("Invalid hexadecimal escape sequence",u);return h}},L=class{constructor(u,o){this.msg=u,this.cursor=o}};e.CursorError=L}}),es=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/parser.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=we(),t=Cs(),s=kD(),c=Ze(),n=class extends r.ParseError{constructor(i,l,p){super(l,p),this.elementName=i}static create(i,l,p){return new n(i,l,p)}};e.TreeError=n;var a=class{constructor(i,l){this.rootNodes=i,this.errors=l}};e.ParseTreeResult=a;var f=class{constructor(i){this.getTagDefinition=i}parse(i,l,p){let g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,C=arguments.length>4?arguments[4]:void 0,m=k=>function($){for(var L=arguments.length,u=new Array(L>1?L-1:0),o=1;oB(k).contentType,S=g?C:m(C),N=C?(k,$,L,u)=>{let o=S(k,$,L,u);return o!==void 0?o:w(k)}:w,b=s.tokenize(i,l,N,p),j=p&&p.canSelfClose||!1,R=p&&p.allowHtmComponentClosingTags||!1,U=new D(b.tokens,B,j,R,g).build();return new a(U.rootNodes,b.errors.concat(U.errors))}};e.Parser=f;var D=class{constructor(i,l,p,g,C){this.tokens=i,this.getTagDefinition=l,this.canSelfClose=p,this.allowHtmComponentClosingTags=g,this.isTagNameCaseSensitive=C,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}build(){for(;this._peek.type!==s.TokenType.EOF;)this._peek.type===s.TokenType.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===s.TokenType.TAG_CLOSE?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===s.TokenType.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===s.TokenType.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===s.TokenType.TEXT||this._peek.type===s.TokenType.RAW_TEXT||this._peek.type===s.TokenType.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===s.TokenType.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._peek.type===s.TokenType.DOC_TYPE_START?this._consumeDocType(this._advance()):this._advance();return new a(this._rootNodes,this._errors)}_advance(){let i=this._peek;return this._index0)return this._errors=this._errors.concat(C.errors),null;let m=new r.ParseSourceSpan(i.sourceSpan.start,g.sourceSpan.end),B=new r.ParseSourceSpan(l.sourceSpan.start,g.sourceSpan.end);return new t.ExpansionCase(i.parts[0],C.rootNodes,m,i.sourceSpan,B)}_collectExpansionExpTokens(i){let l=[],p=[s.TokenType.EXPANSION_CASE_EXP_START];for(;;){if((this._peek.type===s.TokenType.EXPANSION_FORM_START||this._peek.type===s.TokenType.EXPANSION_CASE_EXP_START)&&p.push(this._peek.type),this._peek.type===s.TokenType.EXPANSION_CASE_EXP_END)if(v(p,s.TokenType.EXPANSION_CASE_EXP_START)){if(p.pop(),p.length==0)return l}else return this._errors.push(n.create(null,i.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(this._peek.type===s.TokenType.EXPANSION_FORM_END)if(v(p,s.TokenType.EXPANSION_FORM_START))p.pop();else return this._errors.push(n.create(null,i.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(this._peek.type===s.TokenType.EOF)return this._errors.push(n.create(null,i.sourceSpan,"Invalid ICU message. Missing '}'.")),null;l.push(this._advance())}}_getText(i){let l=i.parts[0];if(l.length>0&&l[0]==` +`){let p=this._getParentElement();p!=null&&p.children.length==0&&this.getTagDefinition(p.name).ignoreFirstLf&&(l=l.substring(1))}return l}_consumeText(i){let l=this._getText(i);l.length>0&&this._addToParent(new t.Text(l,i.sourceSpan))}_closeVoidElement(){let i=this._getParentElement();i&&this.getTagDefinition(i.name).isVoid&&this._elementStack.pop()}_consumeStartTag(i){let l=i.parts[0],p=i.parts[1],g=[];for(;this._peek.type===s.TokenType.ATTR_NAME;)g.push(this._consumeAttr(this._advance()));let C=this._getElementFullName(l,p,this._getParentElement()),m=!1;if(this._peek.type===s.TokenType.TAG_OPEN_END_VOID){this._advance(),m=!0;let b=this.getTagDefinition(C);this.canSelfClose||b.canSelfClose||c.getNsPrefix(C)!==null||b.isVoid||this._errors.push(n.create(C,i.sourceSpan,'Only void and foreign elements can be self closed "'.concat(i.parts[1],'"')))}else this._peek.type===s.TokenType.TAG_OPEN_END&&(this._advance(),m=!1);let B=this._peek.sourceSpan.start,w=new r.ParseSourceSpan(i.sourceSpan.start,B),S=new r.ParseSourceSpan(i.sourceSpan.start.moveBy(1),i.sourceSpan.end),N=new t.Element(C,g,[],w,w,void 0,S);this._pushElement(N),m&&(this._popElement(C),N.endSourceSpan=w)}_pushElement(i){let l=this._getParentElement();l&&this.getTagDefinition(l.name).isClosedByChild(i.name)&&this._elementStack.pop(),this._addToParent(i),this._elementStack.push(i)}_consumeEndTag(i){let l=this.allowHtmComponentClosingTags&&i.parts.length===0?null:this._getElementFullName(i.parts[0],i.parts[1],this._getParentElement());if(this._getParentElement()&&(this._getParentElement().endSourceSpan=i.sourceSpan),l&&this.getTagDefinition(l).isVoid)this._errors.push(n.create(l,i.sourceSpan,'Void elements do not have end tags "'.concat(i.parts[1],'"')));else if(!this._popElement(l)){let p='Unexpected closing tag "'.concat(l,'". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags');this._errors.push(n.create(l,i.sourceSpan,p))}}_popElement(i){for(let l=this._elementStack.length-1;l>=0;l--){let p=this._elementStack[l];if(!i||(c.getNsPrefix(p.name)?p.name==i:p.name.toLowerCase()==i.toLowerCase()))return this._elementStack.splice(l,this._elementStack.length-l),!0;if(!this.getTagDefinition(p.name).closedByParent)return!1}return!1}_consumeAttr(i){let l=c.mergeNsAndName(i.parts[0],i.parts[1]),p=i.sourceSpan.end,g="",C,m;if(this._peek.type===s.TokenType.ATTR_QUOTE&&(m=this._advance().sourceSpan.start),this._peek.type===s.TokenType.ATTR_VALUE){let B=this._advance();g=B.parts[0],p=B.sourceSpan.end,C=B.sourceSpan}return this._peek.type===s.TokenType.ATTR_QUOTE&&(p=this._advance().sourceSpan.end,C=new r.ParseSourceSpan(m,p)),new t.Attribute(l,g,new r.ParseSourceSpan(i.sourceSpan.start,p),C,i.sourceSpan)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_getParentElementSkippingContainers(){let i=null;for(let l=this._elementStack.length-1;l>=0;l--){if(!c.isNgContainer(this._elementStack[l].name))return{parent:this._elementStack[l],container:i};i=this._elementStack[l]}return{parent:null,container:i}}_addToParent(i){let l=this._getParentElement();l!=null?l.children.push(i):this._rootNodes.push(i)}_insertBeforeContainer(i,l,p){if(!l)this._addToParent(p),this._elementStack.push(p);else{if(i){let g=i.children.indexOf(l);i.children[g]=p}else this._rootNodes.push(p);p.children.push(l),this._elementStack.splice(this._elementStack.indexOf(l),0,p)}}_getElementFullName(i,l,p){return i===""&&(i=this.getTagDefinition(l).implicitNamespacePrefix||"",i===""&&p!=null&&(i=c.getNsPrefix(p.name))),c.mergeNsAndName(i,l)}};function v(i,l){return i.length>0&&i[i.length-1]===l}}}),LD=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_parser.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=Es(),t=es(),s=es();e.ParseTreeResult=s.ParseTreeResult,e.TreeError=s.TreeError;var c=class extends t.Parser{constructor(){super(r.getHtmlTagDefinition)}parse(n,a,f){let D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,v=arguments.length>4?arguments[4]:void 0;return super.parse(n,a,f,D,v)}};e.HtmlParser=c}}),rs=I({"node_modules/angular-html-parser/lib/angular-html-parser/src/index.js"(e){"use strict";O(),Object.defineProperty(e,"__esModule",{value:!0});var r=LD(),t=Ze();e.TagContentType=t.TagContentType;var s=null,c=()=>(s||(s=new r.HtmlParser),s);function n(a){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{canSelfClose:D=!1,allowHtmComponentClosingTags:v=!1,isTagNameCaseSensitive:i=!1,getTagContentType:l}=f;return c().parse(a,"angular-html-parser",{tokenizeExpansionForms:!1,interpolationConfig:void 0,canSelfClose:D,allowHtmComponentClosingTags:v},i,l)}e.parse=n}}),MD=I({"src/language-html/parser-html.js"(e,r){O();var{ParseSourceSpan:t,ParseLocation:s,ParseSourceFile:c}=we(),n=Qc(),a=as(),f=Kc(),{inferParserByLanguage:D}=_D(),v=yD(),i=bD(),l=wD(),{hasPragma:p}=ND(),{Node:g}=OD(),{parseIeConditionalComment:C}=qD(),{locStart:m,locEnd:B}=ID();function w(b,j,R){let{recognizeSelfClosing:U,normalizeTagName:k,normalizeAttributeName:$,allowHtmComponentClosingTags:L,isTagNameCaseSensitive:u,getTagContentType:o}=j,d=rs(),{RecursiveVisitor:h,visitAll:F}=Cs(),{ParseSourceSpan:q}=we(),{getHtmlTagDefinition:P}=Es(),{rootNodes:G,errors:H}=d.parse(b,{canSelfClose:U,allowHtmComponentClosingTags:L,isTagNameCaseSensitive:u,getTagContentType:o});if(R.parser==="vue")if(G.some(A=>A.type==="docType"&&A.value==="html"||A.type==="element"&&A.name.toLowerCase()==="html")){U=!0,k=!0,$=!0,L=!0,u=!1;let A=d.parse(b,{canSelfClose:U,allowHtmComponentClosingTags:L,isTagNameCaseSensitive:u});G=A.rootNodes,H=A.errors}else{let A=y=>{if(!y||y.type!=="element"||y.name!=="template")return!1;let x=y.attrs.find(V=>V.name==="lang"),M=x&&x.value;return!M||D(M,R)==="html"};if(G.some(A)){let y,x=()=>d.parse(b,{canSelfClose:U,allowHtmComponentClosingTags:L,isTagNameCaseSensitive:u}),M=()=>y||(y=x()),V=W=>M().rootNodes.find(Q=>{let{startSourceSpan:se}=Q;return se&&se.start.offset===W.startSourceSpan.start.offset});for(let W=0;W0){let{msg:E,span:{start:A,end:y}}=H[0];throw f(E,{start:{line:A.line+1,column:A.col+1},end:{line:y.line+1,column:y.col+1}})}let K=E=>{let A=E.name.startsWith(":")?E.name.slice(1).split(":")[0]:null,y=E.nameSpan.toString(),x=A!==null&&y.startsWith("".concat(A,":")),M=x?y.slice(A.length+1):y;E.name=M,E.namespace=A,E.hasExplicitNamespace=x},z=E=>{switch(E.type){case"element":K(E);for(let A of E.attrs)K(A),A.valueSpan?(A.value=A.valueSpan.toString(),/["']/.test(A.value[0])&&(A.value=A.value.slice(1,-1))):A.value=null;break;case"comment":E.value=E.sourceSpan.toString().slice(4,-3);break;case"text":E.value=E.sourceSpan.toString();break}},Y=(E,A)=>{let y=E.toLowerCase();return A(y)?y:E},J=E=>{if(E.type==="element"&&(k&&(!E.namespace||E.namespace===E.tagDefinition.implicitNamespacePrefix||l(E))&&(E.name=Y(E.name,A=>A in v)),$)){let A=i[E.name]||Object.create(null);for(let y of E.attrs)y.namespace||(y.name=Y(y.name,x=>E.name in i&&(x in i["*"]||x in A)))}},Z=E=>{E.sourceSpan&&E.endSourceSpan&&(E.sourceSpan=new q(E.sourceSpan.start,E.endSourceSpan.end))},_=E=>{if(E.type==="element"){let A=P(u?E.name:E.name.toLowerCase());!E.namespace||E.namespace===A.implicitNamespacePrefix||l(E)?E.tagDefinition=A:E.tagDefinition=P("")}};return F(new class extends h{visit(E){z(E),_(E),J(E),Z(E)}},G),G}function S(b,j,R){let U=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,{frontMatter:k,content:$}=U?n(b):{frontMatter:null,content:b},L=new c(b,j.filepath),u=new s(L,0,0,0),o=u.moveBy(b.length),d={type:"root",sourceSpan:new t(u,o),children:w($,R,j)};if(k){let q=new s(L,0,0,0),P=q.moveBy(k.raw.length);k.sourceSpan=new t(q,P),d.children.unshift(k)}let h=new g(d),F=(q,P)=>{let{offset:G}=P,H=b.slice(0,G).replace(/[^\n\r]/g," "),z=S(H+q,j,R,!1);z.sourceSpan=new t(P,a(z.children).sourceSpan.end);let Y=z.children[0];return Y.length===G?z.children.shift():(Y.sourceSpan=new t(Y.sourceSpan.start.moveBy(G),Y.sourceSpan.end),Y.value=Y.value.slice(G)),z};return h.walk(q=>{if(q.type==="comment"){let P=C(q,F);P&&q.parent.replaceChild(q,P)}}),h}function N(){let{name:b,recognizeSelfClosing:j=!1,normalizeTagName:R=!1,normalizeAttributeName:U=!1,allowHtmComponentClosingTags:k=!1,isTagNameCaseSensitive:$=!1,getTagContentType:L}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{parse:(u,o,d)=>S(u,Object.assign({parser:b},d),{recognizeSelfClosing:j,normalizeTagName:R,normalizeAttributeName:U,allowHtmComponentClosingTags:k,isTagNameCaseSensitive:$,getTagContentType:L}),hasPragma:p,astFormat:"html",locStart:m,locEnd:B}}r.exports={parsers:{html:N({name:"html",recognizeSelfClosing:!0,normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0}),angular:N({name:"angular"}),vue:N({name:"vue",recognizeSelfClosing:!0,isTagNameCaseSensitive:!0,getTagContentType:(b,j,R,U)=>{if(b.toLowerCase()!=="html"&&!R&&(b!=="template"||U.some(k=>{let{name:$,value:L}=k;return $==="lang"&&L!=="html"&&L!==""&&L!==void 0})))return rs().TagContentType.RAW_TEXT}}),lwc:N({name:"lwc"})}}}}),d2=MD();export{d2 as default}; diff --git a/node_modules/prettier/esm/parser-markdown.mjs b/node_modules/prettier/esm/parser-markdown.mjs new file mode 100644 index 0000000..9f3dfd3 --- /dev/null +++ b/node_modules/prettier/esm/parser-markdown.mjs @@ -0,0 +1,76 @@ +"use strict";var H=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var ue=H((N2,Au)=>{var ur=function(e){return e&&e.Math==Math&&e};Au.exports=ur(typeof globalThis=="object"&&globalThis)||ur(typeof window=="object"&&window)||ur(typeof self=="object"&&self)||ur(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Ae=H((L2,xu)=>{xu.exports=function(e){try{return!!e()}catch{return!0}}});var _e=H((R2,bu)=>{var ra=Ae();bu.exports=!ra(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var tr=H((j2,yu)=>{var ua=Ae();yu.exports=!ua(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var Oe=H((P2,wu)=>{var ta=tr(),nr=Function.prototype.call;wu.exports=ta?nr.bind(nr):function(){return nr.apply(nr,arguments)}});var _u=H(qu=>{"use strict";var Bu={}.propertyIsEnumerable,ku=Object.getOwnPropertyDescriptor,na=ku&&!Bu.call({1:2},1);qu.f=na?function(r){var u=ku(this,r);return!!u&&u.enumerable}:Bu});var ir=H((z2,Ou)=>{Ou.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var ve=H((G2,Tu)=>{var Iu=tr(),Su=Function.prototype,ia=Su.bind,wr=Su.call,aa=Iu&&ia.bind(wr,wr);Tu.exports=Iu?function(e){return e&&aa(e)}:function(e){return e&&function(){return wr.apply(e,arguments)}}});var ar=H((U2,Lu)=>{var Nu=ve(),oa=Nu({}.toString),sa=Nu("".slice);Lu.exports=function(e){return sa(oa(e),8,-1)}});var ju=H((V2,Ru)=>{var ca=ue(),la=ve(),Da=Ae(),fa=ar(),Br=ca.Object,pa=la("".split);Ru.exports=Da(function(){return!Br("z").propertyIsEnumerable(0)})?function(e){return fa(e)=="String"?pa(e,""):Br(e)}:Br});var kr=H(($2,Pu)=>{var da=ue(),ha=da.TypeError;Pu.exports=function(e){if(e==null)throw ha("Can't call method on "+e);return e}});var or=H((H2,Mu)=>{var va=ju(),ma=kr();Mu.exports=function(e){return va(ma(e))}});var me=H((X2,zu)=>{zu.exports=function(e){return typeof e=="function"}});var Ie=H((W2,Gu)=>{var Ea=me();Gu.exports=function(e){return typeof e=="object"?e!==null:Ea(e)}});var He=H((K2,Uu)=>{var qr=ue(),Ca=me(),ga=function(e){return Ca(e)?e:void 0};Uu.exports=function(e,r){return arguments.length<2?ga(qr[e]):qr[e]&&qr[e][r]}});var _r=H((Y2,Vu)=>{var Fa=ve();Vu.exports=Fa({}.isPrototypeOf)});var Hu=H((J2,$u)=>{var Aa=He();$u.exports=Aa("navigator","userAgent")||""});var Qu=H((Z2,Zu)=>{var Ju=ue(),Or=Hu(),Xu=Ju.process,Wu=Ju.Deno,Ku=Xu&&Xu.versions||Wu&&Wu.version,Yu=Ku&&Ku.v8,Ee,sr;Yu&&(Ee=Yu.split("."),sr=Ee[0]>0&&Ee[0]<4?1:+(Ee[0]+Ee[1]));!sr&&Or&&(Ee=Or.match(/Edge\/(\d+)/),(!Ee||Ee[1]>=74)&&(Ee=Or.match(/Chrome\/(\d+)/),Ee&&(sr=+Ee[1])));Zu.exports=sr});var Ir=H((Q2,rt)=>{var et=Qu(),xa=Ae();rt.exports=!!Object.getOwnPropertySymbols&&!xa(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&et&&et<41})});var Sr=H((ef,ut)=>{var ba=Ir();ut.exports=ba&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Tr=H((rf,tt)=>{var ya=ue(),wa=He(),Ba=me(),ka=_r(),qa=Sr(),_a=ya.Object;tt.exports=qa?function(e){return typeof e=="symbol"}:function(e){var r=wa("Symbol");return Ba(r)&&ka(r.prototype,_a(e))}});var cr=H((uf,nt)=>{var Oa=ue(),Ia=Oa.String;nt.exports=function(e){try{return Ia(e)}catch{return"Object"}}});var Xe=H((tf,it)=>{var Sa=ue(),Ta=me(),Na=cr(),La=Sa.TypeError;it.exports=function(e){if(Ta(e))return e;throw La(Na(e)+" is not a function")}});var lr=H((nf,at)=>{var Ra=Xe();at.exports=function(e,r){var u=e[r];return u==null?void 0:Ra(u)}});var st=H((af,ot)=>{var ja=ue(),Nr=Oe(),Lr=me(),Rr=Ie(),Pa=ja.TypeError;ot.exports=function(e,r){var u,t;if(r==="string"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e))||Lr(u=e.valueOf)&&!Rr(t=Nr(u,e))||r!=="string"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e)))return t;throw Pa("Can't convert object to primitive value")}});var lt=H((of,ct)=>{ct.exports=!1});var Dr=H((sf,ft)=>{var Dt=ue(),Ma=Object.defineProperty;ft.exports=function(e,r){try{Ma(Dt,e,{value:r,configurable:!0,writable:!0})}catch{Dt[e]=r}return r}});var fr=H((cf,dt)=>{var za=ue(),Ga=Dr(),pt="__core-js_shared__",Ua=za[pt]||Ga(pt,{});dt.exports=Ua});var jr=H((lf,vt)=>{var Va=lt(),ht=fr();(vt.exports=function(e,r){return ht[e]||(ht[e]=r!==void 0?r:{})})("versions",[]).push({version:"3.22.2",mode:Va?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var Pr=H((Df,mt)=>{var $a=ue(),Ha=kr(),Xa=$a.Object;mt.exports=function(e){return Xa(Ha(e))}});var we=H((ff,Et)=>{var Wa=ve(),Ka=Pr(),Ya=Wa({}.hasOwnProperty);Et.exports=Object.hasOwn||function(r,u){return Ya(Ka(r),u)}});var Mr=H((pf,Ct)=>{var Ja=ve(),Za=0,Qa=Math.random(),eo=Ja(1 .toString);Ct.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+eo(++Za+Qa,36)}});var Te=H((df,bt)=>{var ro=ue(),uo=jr(),gt=we(),to=Mr(),Ft=Ir(),xt=Sr(),Le=uo("wks"),Se=ro.Symbol,At=Se&&Se.for,no=xt?Se:Se&&Se.withoutSetter||to;bt.exports=function(e){if(!gt(Le,e)||!(Ft||typeof Le[e]=="string")){var r="Symbol."+e;Ft&>(Se,e)?Le[e]=Se[e]:xt&&At?Le[e]=At(r):Le[e]=no(r)}return Le[e]}});var kt=H((hf,Bt)=>{var io=ue(),ao=Oe(),yt=Ie(),wt=Tr(),oo=lr(),so=st(),co=Te(),lo=io.TypeError,Do=co("toPrimitive");Bt.exports=function(e,r){if(!yt(e)||wt(e))return e;var u=oo(e,Do),t;if(u){if(r===void 0&&(r="default"),t=ao(u,e,r),!yt(t)||wt(t))return t;throw lo("Can't convert object to primitive value")}return r===void 0&&(r="number"),so(e,r)}});var pr=H((vf,qt)=>{var fo=kt(),po=Tr();qt.exports=function(e){var r=fo(e,"string");return po(r)?r:r+""}});var It=H((mf,Ot)=>{var ho=ue(),_t=Ie(),zr=ho.document,vo=_t(zr)&&_t(zr.createElement);Ot.exports=function(e){return vo?zr.createElement(e):{}}});var Gr=H((Ef,St)=>{var mo=_e(),Eo=Ae(),Co=It();St.exports=!mo&&!Eo(function(){return Object.defineProperty(Co("div"),"a",{get:function(){return 7}}).a!=7})});var Ur=H(Nt=>{var go=_e(),Fo=Oe(),Ao=_u(),xo=ir(),bo=or(),yo=pr(),wo=we(),Bo=Gr(),Tt=Object.getOwnPropertyDescriptor;Nt.f=go?Tt:function(r,u){if(r=bo(r),u=yo(u),Bo)try{return Tt(r,u)}catch{}if(wo(r,u))return xo(!Fo(Ao.f,r,u),r[u])}});var Rt=H((gf,Lt)=>{var ko=_e(),qo=Ae();Lt.exports=ko&&qo(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Re=H((Ff,Pt)=>{var jt=ue(),_o=Ie(),Oo=jt.String,Io=jt.TypeError;Pt.exports=function(e){if(_o(e))return e;throw Io(Oo(e)+" is not an object")}});var hr=H(zt=>{var So=ue(),To=_e(),No=Gr(),Lo=Rt(),dr=Re(),Mt=pr(),Ro=So.TypeError,Vr=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,$r="enumerable",Hr="configurable",Xr="writable";zt.f=To?Lo?function(r,u,t){if(dr(r),u=Mt(u),dr(t),typeof r=="function"&&u==="prototype"&&"value"in t&&Xr in t&&!t[Xr]){var o=jo(r,u);o&&o[Xr]&&(r[u]=t.value,t={configurable:Hr in t?t[Hr]:o[Hr],enumerable:$r in t?t[$r]:o[$r],writable:!1})}return Vr(r,u,t)}:Vr:function(r,u,t){if(dr(r),u=Mt(u),dr(t),No)try{return Vr(r,u,t)}catch{}if("get"in t||"set"in t)throw Ro("Accessors not supported");return"value"in t&&(r[u]=t.value),r}});var vr=H((xf,Gt)=>{var Po=_e(),Mo=hr(),zo=ir();Gt.exports=Po?function(e,r,u){return Mo.f(e,r,zo(1,u))}:function(e,r,u){return e[r]=u,e}});var mr=H((bf,Ut)=>{var Go=ve(),Uo=me(),Wr=fr(),Vo=Go(Function.toString);Uo(Wr.inspectSource)||(Wr.inspectSource=function(e){return Vo(e)});Ut.exports=Wr.inspectSource});var Ht=H((yf,$t)=>{var $o=ue(),Ho=me(),Xo=mr(),Vt=$o.WeakMap;$t.exports=Ho(Vt)&&/native code/.test(Xo(Vt))});var Kt=H((wf,Wt)=>{var Wo=jr(),Ko=Mr(),Xt=Wo("keys");Wt.exports=function(e){return Xt[e]||(Xt[e]=Ko(e))}});var Kr=H((Bf,Yt)=>{Yt.exports={}});var un=H((kf,rn)=>{var Yo=Ht(),en=ue(),Yr=ve(),Jo=Ie(),Zo=vr(),Jr=we(),Zr=fr(),Qo=Kt(),es=Kr(),Jt="Object already initialized",eu=en.TypeError,rs=en.WeakMap,Er,We,Cr,us=function(e){return Cr(e)?We(e):Er(e,{})},ts=function(e){return function(r){var u;if(!Jo(r)||(u=We(r)).type!==e)throw eu("Incompatible receiver, "+e+" required");return u}};Yo||Zr.state?(Be=Zr.state||(Zr.state=new rs),Zt=Yr(Be.get),Qr=Yr(Be.has),Qt=Yr(Be.set),Er=function(e,r){if(Qr(Be,e))throw new eu(Jt);return r.facade=e,Qt(Be,e,r),r},We=function(e){return Zt(Be,e)||{}},Cr=function(e){return Qr(Be,e)}):(Ne=Qo("state"),es[Ne]=!0,Er=function(e,r){if(Jr(e,Ne))throw new eu(Jt);return r.facade=e,Zo(e,Ne,r),r},We=function(e){return Jr(e,Ne)?e[Ne]:{}},Cr=function(e){return Jr(e,Ne)});var Be,Zt,Qr,Qt,Ne;rn.exports={set:Er,get:We,has:Cr,enforce:us,getterFor:ts}});var an=H((qf,nn)=>{var ru=_e(),ns=we(),tn=Function.prototype,is=ru&&Object.getOwnPropertyDescriptor,uu=ns(tn,"name"),as=uu&&function(){}.name==="something",os=uu&&(!ru||ru&&is(tn,"name").configurable);nn.exports={EXISTS:uu,PROPER:as,CONFIGURABLE:os}});var Dn=H((_f,ln)=>{var ss=ue(),on=me(),cs=we(),sn=vr(),ls=Dr(),Ds=mr(),cn=un(),fs=an().CONFIGURABLE,ps=cn.get,ds=cn.enforce,hs=String(String).split("String");(ln.exports=function(e,r,u,t){var o=t?!!t.unsafe:!1,n=t?!!t.enumerable:!1,s=t?!!t.noTargetGet:!1,c=t&&t.name!==void 0?t.name:r,i;if(on(u)&&(String(c).slice(0,7)==="Symbol("&&(c="["+String(c).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!cs(u,"name")||fs&&u.name!==c)&&sn(u,"name",c),i=ds(u),i.source||(i.source=hs.join(typeof c=="string"?c:""))),e===ss){n?e[r]=u:ls(r,u);return}else o?!s&&e[r]&&(n=!0):delete e[r];n?e[r]=u:sn(e,r,u)})(Function.prototype,"toString",function(){return on(this)&&ps(this).source||Ds(this)})});var tu=H((Of,fn)=>{var vs=Math.ceil,ms=Math.floor;fn.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?ms:vs)(r)}});var dn=H((If,pn)=>{var Es=tu(),Cs=Math.max,gs=Math.min;pn.exports=function(e,r){var u=Es(e);return u<0?Cs(u+r,0):gs(u,r)}});var vn=H((Sf,hn)=>{var Fs=tu(),As=Math.min;hn.exports=function(e){return e>0?As(Fs(e),9007199254740991):0}});var Ke=H((Tf,mn)=>{var xs=vn();mn.exports=function(e){return xs(e.length)}});var gn=H((Nf,Cn)=>{var bs=or(),ys=dn(),ws=Ke(),En=function(e){return function(r,u,t){var o=bs(r),n=ws(o),s=ys(t,n),c;if(e&&u!=u){for(;n>s;)if(c=o[s++],c!=c)return!0}else for(;n>s;s++)if((e||s in o)&&o[s]===u)return e||s||0;return!e&&-1}};Cn.exports={includes:En(!0),indexOf:En(!1)}});var xn=H((Lf,An)=>{var Bs=ve(),nu=we(),ks=or(),qs=gn().indexOf,_s=Kr(),Fn=Bs([].push);An.exports=function(e,r){var u=ks(e),t=0,o=[],n;for(n in u)!nu(_s,n)&&nu(u,n)&&Fn(o,n);for(;r.length>t;)nu(u,n=r[t++])&&(~qs(o,n)||Fn(o,n));return o}});var yn=H((Rf,bn)=>{bn.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Bn=H(wn=>{var Os=xn(),Is=yn(),Ss=Is.concat("length","prototype");wn.f=Object.getOwnPropertyNames||function(r){return Os(r,Ss)}});var qn=H(kn=>{kn.f=Object.getOwnPropertySymbols});var On=H((Mf,_n)=>{var Ts=He(),Ns=ve(),Ls=Bn(),Rs=qn(),js=Re(),Ps=Ns([].concat);_n.exports=Ts("Reflect","ownKeys")||function(r){var u=Ls.f(js(r)),t=Rs.f;return t?Ps(u,t(r)):u}});var Tn=H((zf,Sn)=>{var In=we(),Ms=On(),zs=Ur(),Gs=hr();Sn.exports=function(e,r,u){for(var t=Ms(r),o=Gs.f,n=zs.f,s=0;s{var Us=Ae(),Vs=me(),$s=/#|\.prototype\./,Ye=function(e,r){var u=Xs[Hs(e)];return u==Ks?!0:u==Ws?!1:Vs(r)?Us(r):!!r},Hs=Ye.normalize=function(e){return String(e).replace($s,".").toLowerCase()},Xs=Ye.data={},Ws=Ye.NATIVE="N",Ks=Ye.POLYFILL="P";Nn.exports=Ye});var au=H((Uf,Rn)=>{var iu=ue(),Ys=Ur().f,Js=vr(),Zs=Dn(),Qs=Dr(),ec=Tn(),rc=Ln();Rn.exports=function(e,r){var u=e.target,t=e.global,o=e.stat,n,s,c,i,D,a;if(t?s=iu:o?s=iu[u]||Qs(u,{}):s=(iu[u]||{}).prototype,s)for(c in r){if(D=r[c],e.noTargetGet?(a=Ys(s,c),i=a&&a.value):i=s[c],n=rc(t?c:u+(o?".":"#")+c,e.forced),!n&&i!==void 0){if(typeof D==typeof i)continue;ec(D,i)}(e.sham||i&&i.sham)&&Js(D,"sham",!0),Zs(s,c,D,e)}}});var ou=H((Vf,jn)=>{var uc=ar();jn.exports=Array.isArray||function(r){return uc(r)=="Array"}});var su=H(($f,Mn)=>{var Pn=ve(),tc=Xe(),nc=tr(),ic=Pn(Pn.bind);Mn.exports=function(e,r){return tc(e),r===void 0?e:nc?ic(e,r):function(){return e.apply(r,arguments)}}});var Un=H((Hf,Gn)=>{"use strict";var ac=ue(),oc=ou(),sc=Ke(),cc=su(),lc=ac.TypeError,zn=function(e,r,u,t,o,n,s,c){for(var i=o,D=0,a=s?cc(s,c):!1,l,p;D0&&oc(l))p=sc(l),i=zn(e,r,l,p,i,n-1)-1;else{if(i>=9007199254740991)throw lc("Exceed the acceptable array length");e[i]=l}i++}D++}return i};Gn.exports=zn});var Hn=H((Xf,$n)=>{var Dc=Te(),fc=Dc("toStringTag"),Vn={};Vn[fc]="z";$n.exports=String(Vn)==="[object z]"});var cu=H((Wf,Xn)=>{var pc=ue(),dc=Hn(),hc=me(),gr=ar(),vc=Te(),mc=vc("toStringTag"),Ec=pc.Object,Cc=gr(function(){return arguments}())=="Arguments",gc=function(e,r){try{return e[r]}catch{}};Xn.exports=dc?gr:function(e){var r,u,t;return e===void 0?"Undefined":e===null?"Null":typeof(u=gc(r=Ec(e),mc))=="string"?u:Cc?gr(r):(t=gr(r))=="Object"&&hc(r.callee)?"Arguments":t}});var Qn=H((Kf,Zn)=>{var Fc=ve(),Ac=Ae(),Wn=me(),xc=cu(),bc=He(),yc=mr(),Kn=function(){},wc=[],Yn=bc("Reflect","construct"),lu=/^\s*(?:class|function)\b/,Bc=Fc(lu.exec),kc=!lu.exec(Kn),Je=function(r){if(!Wn(r))return!1;try{return Yn(Kn,wc,r),!0}catch{return!1}},Jn=function(r){if(!Wn(r))return!1;switch(xc(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return kc||!!Bc(lu,yc(r))}catch{return!0}};Jn.sham=!0;Zn.exports=!Yn||Ac(function(){var e;return Je(Je.call)||!Je(Object)||!Je(function(){e=!0})||e})?Jn:Je});var ti=H((Yf,ui)=>{var qc=ue(),ei=ou(),_c=Qn(),Oc=Ie(),Ic=Te(),Sc=Ic("species"),ri=qc.Array;ui.exports=function(e){var r;return ei(e)&&(r=e.constructor,_c(r)&&(r===ri||ei(r.prototype))?r=void 0:Oc(r)&&(r=r[Sc],r===null&&(r=void 0))),r===void 0?ri:r}});var ii=H((Jf,ni)=>{var Tc=ti();ni.exports=function(e,r){return new(Tc(e))(r===0?0:r)}});var Du=H((Zf,ai)=>{ai.exports={}});var si=H((Qf,oi)=>{var zc=Te(),Gc=Du(),Uc=zc("iterator"),Vc=Array.prototype;oi.exports=function(e){return e!==void 0&&(Gc.Array===e||Vc[Uc]===e)}});var fu=H((ep,li)=>{var $c=cu(),ci=lr(),Hc=Du(),Xc=Te(),Wc=Xc("iterator");li.exports=function(e){if(e!=null)return ci(e,Wc)||ci(e,"@@iterator")||Hc[$c(e)]}});var fi=H((rp,Di)=>{var Kc=ue(),Yc=Oe(),Jc=Xe(),Zc=Re(),Qc=cr(),el=fu(),rl=Kc.TypeError;Di.exports=function(e,r){var u=arguments.length<2?el(e):r;if(Jc(u))return Zc(Yc(u,e));throw rl(Qc(e)+" is not iterable")}});var hi=H((up,di)=>{var ul=Oe(),pi=Re(),tl=lr();di.exports=function(e,r,u){var t,o;pi(e);try{if(t=tl(e,"return"),!t){if(r==="throw")throw u;return u}t=ul(t,e)}catch(n){o=!0,t=n}if(r==="throw")throw u;if(o)throw t;return pi(t),u}});var gi=H((tp,Ci)=>{var nl=ue(),il=su(),al=Oe(),ol=Re(),sl=cr(),cl=si(),ll=Ke(),vi=_r(),Dl=fi(),fl=fu(),mi=hi(),pl=nl.TypeError,Fr=function(e,r){this.stopped=e,this.result=r},Ei=Fr.prototype;Ci.exports=function(e,r,u){var t=u&&u.that,o=!!(u&&u.AS_ENTRIES),n=!!(u&&u.IS_ITERATOR),s=!!(u&&u.INTERRUPTED),c=il(r,t),i,D,a,l,p,d,g,F=function(A){return i&&mi(i,"normal",A),new Fr(!0,A)},E=function(A){return o?(ol(A),s?c(A[0],A[1],F):c(A[0],A[1])):s?c(A,F):c(A)};if(n)i=e;else{if(D=fl(e),!D)throw pl(sl(e)+" is not iterable");if(cl(D)){for(a=0,l=ll(e);l>a;a++)if(p=E(e[a]),p&&vi(Ei,p))return p;return new Fr(!1)}i=Dl(e,D)}for(d=i.next;!(g=al(d,i)).done;){try{p=E(g.value)}catch(A){mi(i,"throw",A)}if(typeof p=="object"&&p&&vi(Ei,p))return p}return new Fr(!1)}});var Ai=H((np,Fi)=>{"use strict";var dl=pr(),hl=hr(),vl=ir();Fi.exports=function(e,r,u){var t=dl(r);t in e?hl.f(e,t,vl(0,u)):e[t]=u}});var Nc=au(),Lc=Un(),Rc=Xe(),jc=Pr(),Pc=Ke(),Mc=ii();Nc({target:"Array",proto:!0},{flatMap:function(r){var u=jc(this),t=Pc(u),o;return Rc(r),o=Mc(u,0),o.length=Lc(o,u,u,t,0,1,r,arguments.length>1?arguments[1]:void 0),o}});var ml=au(),El=gi(),Cl=Ai();ml({target:"Object",stat:!0},{fromEntries:function(r){var u={};return El(r,function(t,o){Cl(u,t,o)},{AS_ENTRIES:!0}),u}});var gl=["cliName","cliCategory","cliDescription"],xi,bi,yi,wi,Bi,ki;function Fl(e,r){if(e==null)return{};var u=Al(e,r),t,o;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(e,t)||(u[t]=e[t]))}return u}function Al(e,r){if(e==null)return{};var u={},t=Object.keys(e),o,n;for(n=0;n=0)&&(u[o]=e[o]);return u}function je(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}var xl=Object.create,Ar=Object.defineProperty,bl=Object.getOwnPropertyDescriptor,pu=Object.getOwnPropertyNames,yl=Object.getPrototypeOf,wl=Object.prototype.hasOwnProperty,Pe=(e,r)=>function(){return e&&(r=(0,e[pu(e)[0]])(e=0)),r},I=(e,r)=>function(){return r||(0,e[pu(e)[0]])((r={exports:{}}).exports,r),r.exports},Oi=(e,r)=>{for(var u in r)Ar(e,u,{get:r[u],enumerable:!0})},Ii=(e,r,u,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of pu(r))!wl.call(e,o)&&o!==u&&Ar(e,o,{get:()=>r[o],enumerable:!(t=bl(r,o))||t.enumerable});return e},Bl=(e,r,u)=>(u=e!=null?xl(yl(e)):{},Ii(r||!e||!e.__esModule?Ar(u,"default",{value:e,enumerable:!0}):u,e)),Si=e=>Ii(Ar({},"__esModule",{value:!0}),e),qi,_i,Ze,S=Pe({""(){qi={},_i=[],Ze={env:qi,argv:_i}}}),Me=I({"node_modules/xtend/immutable.js"(e,r){S(),r.exports=t;var u=Object.prototype.hasOwnProperty;function t(){for(var o={},n=0;n-1&&DD)return{line:a+1,column:D-(n[a-1]||0)+1,offset:D}}return{}}function i(D){var a=D&&D.line,l=D&&D.column,p;return!isNaN(a)&&!isNaN(l)&&a-1 in n&&(p=(n[a-2]||0)+l-1||0),p>-1&&p",Iacute:"\xCD",Icirc:"\xCE",Igrave:"\xCC",Iuml:"\xCF",LT:"<",Ntilde:"\xD1",Oacute:"\xD3",Ocirc:"\xD4",Ograve:"\xD2",Oslash:"\xD8",Otilde:"\xD5",Ouml:"\xD6",QUOT:'"',REG:"\xAE",THORN:"\xDE",Uacute:"\xDA",Ucirc:"\xDB",Ugrave:"\xD9",Uuml:"\xDC",Yacute:"\xDD",aacute:"\xE1",acirc:"\xE2",acute:"\xB4",aelig:"\xE6",agrave:"\xE0",amp:"&",aring:"\xE5",atilde:"\xE3",auml:"\xE4",brvbar:"\xA6",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",eacute:"\xE9",ecirc:"\xEA",egrave:"\xE8",eth:"\xF0",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",iacute:"\xED",icirc:"\xEE",iexcl:"\xA1",igrave:"\xEC",iquest:"\xBF",iuml:"\xEF",laquo:"\xAB",lt:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",ntilde:"\xF1",oacute:"\xF3",ocirc:"\xF4",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",oslash:"\xF8",otilde:"\xF5",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',raquo:"\xBB",reg:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",thorn:"\xFE",times:"\xD7",uacute:"\xFA",ucirc:"\xFB",ugrave:"\xF9",uml:"\xA8",uuml:"\xFC",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}}}),Tl=I({"node_modules/character-reference-invalid/index.json"(e,r){r.exports={0:"\uFFFD",128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"}}}),ze=I({"node_modules/is-decimal/index.js"(e,r){"use strict";S(),r.exports=u;function u(t){var o=typeof t=="string"?t.charCodeAt(0):t;return o>=48&&o<=57}}}),Nl=I({"node_modules/is-hexadecimal/index.js"(e,r){"use strict";S(),r.exports=u;function u(t){var o=typeof t=="string"?t.charCodeAt(0):t;return o>=97&&o<=102||o>=65&&o<=70||o>=48&&o<=57}}}),Qe=I({"node_modules/is-alphabetical/index.js"(e,r){"use strict";S(),r.exports=u;function u(t){var o=typeof t=="string"?t.charCodeAt(0):t;return o>=97&&o<=122||o>=65&&o<=90}}}),Ll=I({"node_modules/is-alphanumerical/index.js"(e,r){"use strict";S();var u=Qe(),t=ze();r.exports=o;function o(n){return u(n)||t(n)}}}),Rl=I({"node_modules/character-entities/index.json"(e,r){r.exports={AEli:"\xC6",AElig:"\xC6",AM:"&",AMP:"&",Aacut:"\xC1",Aacute:"\xC1",Abreve:"\u0102",Acir:"\xC2",Acirc:"\xC2",Acy:"\u0410",Afr:"\u{1D504}",Agrav:"\xC0",Agrave:"\xC0",Alpha:"\u0391",Amacr:"\u0100",And:"\u2A53",Aogon:"\u0104",Aopf:"\u{1D538}",ApplyFunction:"\u2061",Arin:"\xC5",Aring:"\xC5",Ascr:"\u{1D49C}",Assign:"\u2254",Atild:"\xC3",Atilde:"\xC3",Aum:"\xC4",Auml:"\xC4",Backslash:"\u2216",Barv:"\u2AE7",Barwed:"\u2306",Bcy:"\u0411",Because:"\u2235",Bernoullis:"\u212C",Beta:"\u0392",Bfr:"\u{1D505}",Bopf:"\u{1D539}",Breve:"\u02D8",Bscr:"\u212C",Bumpeq:"\u224E",CHcy:"\u0427",COP:"\xA9",COPY:"\xA9",Cacute:"\u0106",Cap:"\u22D2",CapitalDifferentialD:"\u2145",Cayleys:"\u212D",Ccaron:"\u010C",Ccedi:"\xC7",Ccedil:"\xC7",Ccirc:"\u0108",Cconint:"\u2230",Cdot:"\u010A",Cedilla:"\xB8",CenterDot:"\xB7",Cfr:"\u212D",Chi:"\u03A7",CircleDot:"\u2299",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",Colon:"\u2237",Colone:"\u2A74",Congruent:"\u2261",Conint:"\u222F",ContourIntegral:"\u222E",Copf:"\u2102",Coproduct:"\u2210",CounterClockwiseContourIntegral:"\u2233",Cross:"\u2A2F",Cscr:"\u{1D49E}",Cup:"\u22D3",CupCap:"\u224D",DD:"\u2145",DDotrahd:"\u2911",DJcy:"\u0402",DScy:"\u0405",DZcy:"\u040F",Dagger:"\u2021",Darr:"\u21A1",Dashv:"\u2AE4",Dcaron:"\u010E",Dcy:"\u0414",Del:"\u2207",Delta:"\u0394",Dfr:"\u{1D507}",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",Diamond:"\u22C4",DifferentialD:"\u2146",Dopf:"\u{1D53B}",Dot:"\xA8",DotDot:"\u20DC",DotEqual:"\u2250",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",Downarrow:"\u21D3",Dscr:"\u{1D49F}",Dstrok:"\u0110",ENG:"\u014A",ET:"\xD0",ETH:"\xD0",Eacut:"\xC9",Eacute:"\xC9",Ecaron:"\u011A",Ecir:"\xCA",Ecirc:"\xCA",Ecy:"\u042D",Edot:"\u0116",Efr:"\u{1D508}",Egrav:"\xC8",Egrave:"\xC8",Element:"\u2208",Emacr:"\u0112",EmptySmallSquare:"\u25FB",EmptyVerySmallSquare:"\u25AB",Eogon:"\u0118",Eopf:"\u{1D53C}",Epsilon:"\u0395",Equal:"\u2A75",EqualTilde:"\u2242",Equilibrium:"\u21CC",Escr:"\u2130",Esim:"\u2A73",Eta:"\u0397",Eum:"\xCB",Euml:"\xCB",Exists:"\u2203",ExponentialE:"\u2147",Fcy:"\u0424",Ffr:"\u{1D509}",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",Fopf:"\u{1D53D}",ForAll:"\u2200",Fouriertrf:"\u2131",Fscr:"\u2131",GJcy:"\u0403",G:">",GT:">",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacut:"\xCD",Iacute:"\xCD",Icir:"\xCE",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrav:"\xCC",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Ium:"\xCF",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",L:"<",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntild:"\xD1",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacut:"\xD3",Oacute:"\xD3",Ocir:"\xD4",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograv:"\xD2",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslas:"\xD8",Oslash:"\xD8",Otild:"\xD5",Otilde:"\xD5",Otimes:"\u2A37",Oum:"\xD6",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUO:'"',QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",RE:"\xAE",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THOR:"\xDE",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacut:"\xDA",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucir:"\xDB",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrav:"\xD9",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uum:"\xDC",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacut:"\xDD",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacut:"\xE1",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acir:"\xE2",acirc:"\xE2",acut:"\xB4",acute:"\xB4",acy:"\u0430",aeli:"\xE6",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrav:"\xE0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",am:"&",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",arin:"\xE5",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atild:"\xE3",atilde:"\xE3",aum:"\xE4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvba:"\xA6",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedi:"\xE7",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedi:"\xB8",cedil:"\xB8",cemptyv:"\u29B2",cen:"\xA2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",cop:"\xA9",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curre:"\xA4",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",de:"\xB0",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divid:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacut:"\xE9",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\xEA",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrav:"\xE8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",et:"\xF0",eth:"\xF0",eum:"\xEB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac1:"\xBC",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac3:"\xBE",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",g:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacut:"\xED",iacute:"\xED",ic:"\u2063",icir:"\xEE",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexc:"\xA1",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrav:"\xEC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iques:"\xBF",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",ium:"\xEF",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laqu:"\xAB",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",l:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",mac:"\xAF",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micr:"\xB5",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middo:"\xB7",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbs:"\xA0",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",no:"\xAC",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntild:"\xF1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacut:"\xF3",oacute:"\xF3",oast:"\u229B",ocir:"\xF4",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograv:"\xF2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\xBA",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslas:"\xF8",oslash:"\xF8",osol:"\u2298",otild:"\xF5",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",oum:"\xF6",ouml:"\xF6",ovbar:"\u233D",par:"\xB6",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusm:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",poun:"\xA3",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quo:'"',quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raqu:"\xBB",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",re:"\xAE",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sec:"\xA7",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",sh:"\xAD",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szli:"\xDF",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thor:"\xFE",thorn:"\xFE",tilde:"\u02DC",time:"\xD7",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacut:"\xFA",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucir:"\xFB",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrav:"\xF9",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",um:"\xA8",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uum:"\xFC",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacut:"\xFD",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",ye:"\xA5",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yum:"\xFF",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}}}),jl=I({"node_modules/parse-entities/decode-entity.js"(e,r){"use strict";S();var u=Rl();r.exports=o;var t={}.hasOwnProperty;function o(n){return t.call(u,n)?u[n]:!1}}}),xr=I({"node_modules/parse-entities/index.js"(e,r){"use strict";S();var u=Sl(),t=Tl(),o=ze(),n=Nl(),s=Ll(),c=jl();r.exports=J;var i={}.hasOwnProperty,D=String.fromCharCode,a=Function.prototype,l={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},p=9,d=10,g=12,F=32,E=38,A=59,f=60,b=61,v=35,h=88,m=120,C=65533,w="named",q="hexadecimal",L="decimal",B={};B[q]=16,B[L]=10;var O={};O[w]=s,O[L]=o,O[q]=n;var T=1,P=2,x=3,j=4,$=5,U=6,X=7,R={};R[T]="Named character references must be terminated by a semicolon",R[P]="Numeric character references must be terminated by a semicolon",R[x]="Named character references cannot be empty",R[j]="Numeric character references cannot be empty",R[$]="Named character references must be known",R[U]="Numeric character references cannot be disallowed",R[X]="Numeric character references cannot be outside the permissible Unicode range";function J(k,y){var _={},N,V;y||(y={});for(V in l)N=y[V],_[V]=N==null?l[V]:N;return(_.position.indent||_.position.start)&&(_.indent=_.position.indent||[],_.position=_.position.start),z(k,_)}function z(k,y){var _=y.additional,N=y.nonTerminated,V=y.text,W=y.reference,K=y.warning,ee=y.textContext,Y=y.referenceContext,te=y.warningContext,De=y.position,le=y.indent||[],ne=k.length,Z=0,Q=-1,fe=De.column||1,be=De.line||1,pe="",he=[],oe,de,ie,re,ye,se,ae,Ce,er,br,ke,Ue,qe,Fe,Eu,Ve,rr,ge,ce;for(typeof _=="string"&&(_=_.charCodeAt(0)),Ve=$e(),Ce=K?ea:a,Z--,ne++;++Z65535&&(se-=65536,br+=D(se>>>10|55296),se=56320|se&1023),se=br+D(se))):Fe!==w&&Ce(j,ge)),se?(Cu(),Ve=$e(),Z=ce-1,fe+=ce-qe+1,he.push(se),rr=$e(),rr.offset++,W&&W.call(Y,se,{start:Ve,end:rr},k.slice(qe-1,ce)),Ve=rr):(re=k.slice(qe-1,ce),pe+=re,fe+=re.length,Z=ce-1)}else ye===10&&(be++,Q++,fe=0),ye===ye?(pe+=D(ye),fe++):Cu();return he.join("");function $e(){return{line:be,column:fe,offset:Z+(De.offset||0)}}function ea(gu,Fu){var yr=$e();yr.column+=Fu,yr.offset+=Fu,K.call(te,R[gu],yr,gu)}function Cu(){pe&&(he.push(pe),V&&V.call(ee,pe,{start:Ve,end:$e()}),pe="")}}function M(k){return k>=55296&&k<=57343||k>1114111}function G(k){return k>=1&&k<=8||k===11||k>=13&&k<=31||k>=127&&k<=159||k>=64976&&k<=65007||(k&65535)===65535||(k&65535)===65534}}}),Pl=I({"node_modules/remark-parse/lib/decode.js"(e,r){"use strict";S();var u=Me(),t=xr();r.exports=o;function o(n){return c.raw=i,c;function s(a){for(var l=n.offset,p=a.line,d=[];++p&&p in l;)d.push((l[p]||0)+1);return{start:a,indent:d}}function c(a,l,p){t(a,{position:s(l),warning:D,text:p,reference:p,textContext:n,referenceContext:n})}function i(a,l,p){return t(a,u(p,{position:s(l),warning:D}))}function D(a,l,p){p!==3&&n.file.message(a,l)}}}}),Ml=I({"node_modules/remark-parse/lib/tokenizer.js"(e,r){"use strict";S(),r.exports=u;function u(s){return c;function c(i,D){var a=this,l=a.offset,p=[],d=a[s+"Methods"],g=a[s+"Tokenizers"],F=D.line,E=D.column,A,f,b,v,h,m;if(!i)return p;for(P.now=q,P.file=a.file,C("");i;){for(A=-1,f=d.length,h=!1;++A"],t=u.concat(["~","|"]),o=t.concat([` +`,'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);n.default=u,n.gfm=t,n.commonmark=o;function n(s){var c=s||{};return c.commonmark?o:c.gfm?t:u}}}),Gl=I({"node_modules/remark-parse/lib/block-elements.js"(e,r){"use strict";S(),r.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","pre","section","source","title","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]}}),Ti=I({"node_modules/remark-parse/lib/defaults.js"(e,r){"use strict";S(),r.exports={position:!0,gfm:!0,commonmark:!1,pedantic:!1,blocks:Gl()}}}),Ul=I({"node_modules/remark-parse/lib/set-options.js"(e,r){"use strict";S();var u=Me(),t=zl(),o=Ti();r.exports=n;function n(s){var c=this,i=c.options,D,a;if(s==null)s={};else if(typeof s=="object")s=u(s);else throw new Error("Invalid value `"+s+"` for setting `options`");for(D in o){if(a=s[D],a==null&&(a=i[D]),D!=="blocks"&&typeof a!="boolean"||D==="blocks"&&typeof a!="object")throw new Error("Invalid value `"+a+"` for setting `options."+D+"`");s[D]=a}return c.options=s,c.escape=t(s),c}}}),Vl=I({"node_modules/unist-util-is/convert.js"(e,r){"use strict";S(),r.exports=u;function u(c){if(c==null)return s;if(typeof c=="string")return n(c);if(typeof c=="object")return"length"in c?o(c):t(c);if(typeof c=="function")return c;throw new Error("Expected function, string, or object as test")}function t(c){return i;function i(D){var a;for(a in c)if(D[a]!==c[a])return!1;return!0}}function o(c){for(var i=[],D=-1;++D":""))+")"),h;function h(){var m=f.concat(E),C=[],w,q;if((!a||g(E,A,f[f.length-1]||null))&&(C=i(l(E,f)),C[0]===s))return C;if(E.children&&C[0]!==n)for(q=(p?E.children.length:-1)+d;q>-1&&q"u")t=n,u="";else if(u.length>=c)return u.substr(0,c);for(;c>u.length&&s>1;)s&1&&(u+=n),s>>=1,n+=n;return u+=n,u=u.substr(0,c),u}}}),Ni=I({"node_modules/trim-trailing-lines/index.js"(e,r){"use strict";S(),r.exports=u;function u(t){return String(t).replace(/\n+$/,"")}}}),Jl=I({"node_modules/remark-parse/lib/tokenize/code-indented.js"(e,r){"use strict";S();var u=du(),t=Ni();r.exports=D;var o=` +`,n=" ",s=" ",c=4,i=u(s,c);function D(a,l,p){for(var d=-1,g=l.length,F="",E="",A="",f="",b,v,h;++d=i)){for(w="";Es)&&!(!v||!p&&D.charAt(g+1)===n)){for(d=D.length+1,b="";++g=i&&(!E||E===t)?(F+=b,p?!0:a(F)({type:"thematicBreak"})):void 0}}}),Li=I({"node_modules/remark-parse/lib/util/get-indentation.js"(e,r){"use strict";S(),r.exports=s;var u=" ",t=" ",o=1,n=4;function s(c){for(var i=0,D=0,a=c.charAt(i),l={},p,d=0;a===u||a===t;){for(p=a===u?n:o,D+=p,p>1&&(D=Math.floor(D/p)*p);d0&&E.indent=Q.indent&&(ie=!0),y=T.charAt(R),K=null,!ie){if(y===i||y===a||y===l)K=y,R++,M++;else{for(G="";R=Q.indent||M>f),W=!1,R=V;if(Y=T.slice(V,N),ee=V===R?Y:T.slice(R,N),(K===i||K===D||K===l)&&U.thematicBreak.call(x,O,Y,!0))break;if(te=De,De=!W&&!u(ee).length,ie&&Q)Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[];else if(W)Z.length!==0&&(pe=!0,Q.value.push(""),Q.trail=Z.concat()),Q={value:[Y],indent:M,trail:[]},le.push(Q),ne=ne.concat(Z,Y),Z=[];else if(De){if(te&&!j)break;Z.push(Y)}else{if(te||c(X,U,x,[O,Y,!0]))break;Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[]}R=N+1}for(he=O(ne.join(g)).reset({type:"list",ordered:k,start:z,spread:pe,children:[]}),fe=x.enterList(),be=x.enterBlock(),R=-1,J=le.length;++R=c){A--;break}f+=h}for(b="",v="";++A`\\u0000-\\u0020]+",t="'[^']*'",o='"[^"]*"',n="(?:"+u+"|"+t+"|"+o+")",s="(?:\\s+"+r+"(?:\\s*=\\s*"+n+")?)",c="<[A-Za-z][A-Za-z0-9\\-]*"+s+"*\\s*\\/?>",i="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",D="|",a="<[?].*?[?]>",l="]*>",p="";e.openCloseTag=new RegExp("^(?:"+c+"|"+i+")"),e.tag=new RegExp("^(?:"+c+"|"+i+"|"+D+"|"+a+"|"+l+"|"+p+")")}}),iD=I({"node_modules/remark-parse/lib/tokenize/html-block.js"(e,r){"use strict";S();var u=Ri().openCloseTag;r.exports=b;var t=" ",o=" ",n=` +`,s="<",c=/^<(script|pre|style)(?=(\s|>|$))/i,i=/<\/(script|pre|style)>/i,D=/^/,l=/^<\?/,p=/\?>/,d=/^/,F=/^/,A=/^$/,f=new RegExp(u.source+"\\s*$");function b(v,h,m){for(var C=this,w=C.options.blocks.join("|"),q=new RegExp("^|$))","i"),L=h.length,B=0,O,T,P,x,j,$,U,X=[[c,i,!0],[D,a,!0],[l,p,!0],[d,g,!0],[F,E,!0],[q,A,!0],[f,A,!1]];BM){if(X1&&(O?(C+=B.slice(0,-1),B=B.charAt(B.length-1)):(C+=B,B="")),$=E.now(),E(C)({type:"tableCell",children:b.tokenizeInline(x,$)},w)),E(B+O),B="",x=""):(B&&(x+=B,B=""),x+=O,O===i&&v!==q-2&&(x+=R.charAt(v+1),v++)),j=!1,v++}U||E(o+h)}return z}}}}}),cD=I({"node_modules/remark-parse/lib/tokenize/paragraph.js"(e,r){"use strict";S();var u=Ge(),t=Ni(),o=hu();r.exports=D;var n=" ",s=` +`,c=" ",i=4;function D(a,l,p){for(var d=this,g=d.options,F=g.commonmark,E=d.blockTokenizers,A=d.interruptParagraph,f=l.indexOf(s),b=l.length,v,h,m,C,w;f=i&&m!==s){f=l.indexOf(s,f+1);continue}}if(h=l.slice(f+1),o(A,E,d,[a,h,!0]))break;if(v=f,f=l.indexOf(s,f+1),f!==-1&&u(l.slice(v,f))===""){f=v;break}}return h=l.slice(0,f),p?!0:(w=a.now(),h=t(h),a(h)({type:"paragraph",children:d.tokenizeInline(h,w)}))}}}),lD=I({"node_modules/remark-parse/lib/locate/escape.js"(e,r){"use strict";S(),r.exports=u;function u(t,o){return t.indexOf("\\",o)}}}),DD=I({"node_modules/remark-parse/lib/tokenize/escape.js"(e,r){"use strict";S();var u=lD();r.exports=n,n.locator=u;var t=` +`,o="\\";function n(s,c,i){var D=this,a,l;if(c.charAt(0)===o&&(a=c.charAt(1),D.escape.indexOf(a)!==-1))return i?!0:(a===t?l={type:"break"}:l={type:"text",value:a},s(o+a)(l))}}}),Pi=I({"node_modules/remark-parse/lib/locate/tag.js"(e,r){"use strict";S(),r.exports=u;function u(t,o){return t.indexOf("<",o)}}}),fD=I({"node_modules/remark-parse/lib/tokenize/auto-link.js"(e,r){"use strict";S();var u=xe(),t=xr(),o=Pi();r.exports=l,l.locator=o,l.notInLink=!0;var n="<",s=">",c="@",i="/",D="mailto:",a=D.length;function l(p,d,g){var F=this,E="",A=d.length,f=0,b="",v=!1,h="",m,C,w,q,L;if(d.charAt(0)===n){for(f++,E=n;fk;)R=J+z.lastIndexOf(m),z=q.slice(J,R),y--;if(q.charCodeAt(R-1)===E&&(R--,n(q.charCodeAt(R-1)))){for(G=R-2;n(q.charCodeAt(G));)G--;q.charCodeAt(G)===D&&(R=G)}return _=q.slice(0,R),V=t(_,{nonTerminated:!1}),j&&(V="http://"+V),W=B.enterLink(),B.inlineTokenizers={text:T.text},N=B.tokenizeInline(_,w.now()),B.inlineTokenizers=T,W(),w(_)({type:"link",title:null,url:V,children:N})}}}}}),vD=I({"node_modules/remark-parse/lib/locate/email.js"(e,r){"use strict";S();var u=ze(),t=Qe(),o=43,n=45,s=46,c=95;r.exports=i;function i(a,l){var p=this,d,g;if(!this.options.gfm||(d=a.indexOf("@",l),d===-1))return-1;if(g=d,g===l||!D(a.charCodeAt(g-1)))return i.call(p,a,d+1);for(;g>l&&D(a.charCodeAt(g-1));)g--;return g}function D(a){return u(a)||t(a)||a===o||a===n||a===s||a===c}}}),mD=I({"node_modules/remark-parse/lib/tokenize/email.js"(e,r){"use strict";S();var u=xr(),t=ze(),o=Qe(),n=vD();r.exports=l,l.locator=n,l.notInLink=!0;var s=43,c=45,i=46,D=64,a=95;function l(p,d,g){var F=this,E=F.options.gfm,A=F.inlineTokenizers,f=0,b=d.length,v=-1,h,m,C,w;if(!!E){for(h=d.charCodeAt(f);t(h)||o(h)||h===s||h===c||h===i||h===a;)h=d.charCodeAt(++f);if(f!==0&&h===D){for(f++;f/i;function l(p,d,g){var F=this,E=d.length,A,f;if(!(d.charAt(0)!==n||E<3)&&(A=d.charAt(1),!(!u(A)&&A!==s&&A!==c&&A!==i)&&(f=d.match(o),!!f)))return g?!0:(f=f[0],!F.inLink&&D.test(f)?F.inLink=!0:F.inLink&&a.test(f)&&(F.inLink=!1),p(f)({type:"html",value:f}))}}}),Mi=I({"node_modules/remark-parse/lib/locate/link.js"(e,r){"use strict";S(),r.exports=u;function u(t,o){var n=t.indexOf("[",o),s=t.indexOf("![",o);return s===-1||n=T&&(T=0):T=O}else if(C===d)m++,j+=f.charAt(m);else if((!T||L)&&C===p)M++;else if((!T||L)&&C===g)if(M)M--;else{if(f.charAt(m+1)!==i)return;j+=i,B=!0,m++;break}G+=j,j="",m++}if(!!B){for(X=G,h+=G+j,m++;m2&&(F===o||F===t)&&(E===o||E===t)){for(l++,a--;lo&&t.charAt(n-1)===" ";)n--;return n}}}),OD=I({"node_modules/remark-parse/lib/tokenize/break.js"(e,r){"use strict";S();var u=_D();r.exports=s,s.locator=u;var t=" ",o=` +`,n=2;function s(c,i,D){for(var a=i.length,l=-1,p="",d;++l"u"||u.call(l,g)},i=function(l,p){o&&p.name==="__proto__"?o(l,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):l[p.name]=p.newValue},D=function(l,p){if(p==="__proto__")if(u.call(l,p)){if(n)return n(l,p).value}else return;return l[p]};r.exports=function a(){var l,p,d,g,F,E,A=arguments[0],f=1,b=arguments.length,v=!1;for(typeof A=="boolean"&&(v=A,A=arguments[1]||{},f=2),(A==null||typeof A!="object"&&typeof A!="function")&&(A={});f{if(Object.prototype.toString.call(u)!=="[object Object]")return!1;let t=Object.getPrototypeOf(u);return t===null||t===Object.prototype}}}),jD=I({"node_modules/trough/wrap.js"(e,r){"use strict";S();var u=[].slice;r.exports=t;function t(o,n){var s;return c;function c(){var a=u.call(arguments,0),l=o.length>a.length,p;l&&a.push(i);try{p=o.apply(null,a)}catch(d){if(l&&s)throw d;return i(d)}l||(p&&typeof p.then=="function"?p.then(D,i):p instanceof Error?i(p):D(p))}function i(){s||(s=!0,n.apply(null,arguments))}function D(a){i(null,a)}}}}),PD=I({"node_modules/trough/index.js"(e,r){"use strict";S();var u=jD();r.exports=o,o.wrap=u;var t=[].slice;function o(){var n=[],s={};return s.run=c,s.use=i,s;function c(){var D=-1,a=t.call(arguments,0,-1),l=arguments[arguments.length-1];if(typeof l!="function")throw new Error("Expected function as last argument, not "+l);p.apply(null,[null].concat(a));function p(d){var g=n[++D],F=t.call(arguments,0),E=F.slice(1),A=a.length,f=-1;if(d){l(d);return}for(;++fi.length){for(;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else l<0&&(g=!0,l=p+1);return l<0?"":i.slice(a,l)}if(D===i)return"";for(d=-1,F=D.length-1;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else d<0&&(g=!0,d=p+1),F>-1&&(i.charCodeAt(p)===D.charCodeAt(F--)?F<0&&(l=p):(F=-1,l=d));return a===l?l=d:l<0&&(l=i.length),i.slice(a,l)}function u(i){var D,a,l;if(c(i),!i.length)return".";for(D=-1,l=i.length;--l;)if(i.charCodeAt(l)===47){if(a){D=l;break}}else a||(a=!0);return D<0?i.charCodeAt(0)===47?"/":".":D===1&&i.charCodeAt(0)===47?"//":i.slice(0,D)}function t(i){var D=-1,a=0,l=-1,p=0,d,g,F;for(c(i),F=i.length;F--;){if(g=i.charCodeAt(F),g===47){if(d){a=F+1;break}continue}l<0&&(d=!0,l=F+1),g===46?D<0?D=F:p!==1&&(p=1):D>-1&&(p=-1)}return D<0||l<0||p===0||p===1&&D===l-1&&D===a+1?"":i.slice(D,l)}function o(){for(var i=-1,D;++i2){if(E=a.lastIndexOf("/"),E!==a.length-1){E<0?(a="",l=0):(a=a.slice(0,E),l=a.length-1-a.lastIndexOf("/")),p=g,d=0;continue}}else if(a.length){a="",l=0,p=g,d=0;continue}}D&&(a=a.length?a+"/..":"..",l=2)}else a.length?a+="/"+i.slice(p+1,g):a=i.slice(p+1,g),l=g-p-1;p=g,d=0}else F===46&&d>-1?d++:d=-1}return a}function c(i){if(typeof i!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}}}),UD=I({"node_modules/vfile/lib/minproc.browser.js"(e){"use strict";S(),e.cwd=r;function r(){return"/"}}}),VD=I({"node_modules/vfile/lib/core.js"(e,r){"use strict";S();var u=GD(),t=UD(),o=zi();r.exports=c;var n={}.hasOwnProperty,s=["history","path","basename","stem","extname","dirname"];c.prototype.toString=f,Object.defineProperty(c.prototype,"path",{get:i,set:D}),Object.defineProperty(c.prototype,"dirname",{get:a,set:l}),Object.defineProperty(c.prototype,"basename",{get:p,set:d}),Object.defineProperty(c.prototype,"extname",{get:g,set:F}),Object.defineProperty(c.prototype,"stem",{get:E,set:A});function c(m){var C,w;if(!m)m={};else if(typeof m=="string"||o(m))m={contents:m};else if("message"in m&&"messages"in m)return m;if(!(this instanceof c))return new c(m);for(this.data={},this.messages=[],this.history=[],this.cwd=t.cwd(),w=-1;++w-1)throw new Error("`extname` cannot contain multiple dots")}this.path=u.join(this.dirname,this.stem+(m||""))}function E(){return typeof this.path=="string"?u.basename(this.path,this.extname):void 0}function A(m){v(m,"stem"),b(m,"stem"),this.path=u.join(this.dirname||"",m+(this.extname||""))}function f(m){return(this.contents||"").toString(m)}function b(m,C){if(m&&m.indexOf(u.sep)>-1)throw new Error("`"+C+"` cannot be a path: did not expect `"+u.sep+"`")}function v(m,C){if(!m)throw new Error("`"+C+"` cannot be empty")}function h(m,C){if(!m)throw new Error("Setting `"+C+"` requires `path` to be set too")}}}),$D=I({"node_modules/vfile/lib/index.js"(e,r){"use strict";S();var u=zD(),t=VD();r.exports=t,t.prototype.message=o,t.prototype.info=s,t.prototype.fail=n;function o(c,i,D){var a=new u(c,i,D);return this.path&&(a.name=this.path+":"+a.name,a.file=this.path),a.fatal=!1,this.messages.push(a),a}function n(){var c=this.message.apply(this,arguments);throw c.fatal=!0,c}function s(){var c=this.message.apply(this,arguments);return c.fatal=null,c}}}),HD=I({"node_modules/vfile/index.js"(e,r){"use strict";S(),r.exports=$D()}}),XD=I({"node_modules/unified/index.js"(e,r){"use strict";S();var u=ND(),t=zi(),o=LD(),n=RD(),s=PD(),c=HD();r.exports=g().freeze();var i=[].slice,D={}.hasOwnProperty,a=s().use(l).use(p).use(d);function l(m,C){C.tree=m.parse(C.file)}function p(m,C,w){m.run(C.tree,C.file,q);function q(L,B,O){L?w(L):(C.tree=B,C.file=O,w())}}function d(m,C){var w=m.stringify(C.tree,C.file);w==null||(typeof w=="string"||t(w)?C.file.contents=w:C.file.result=w)}function g(){var m=[],C=s(),w={},q=-1,L;return B.data=T,B.freeze=O,B.attachers=m,B.use=P,B.parse=j,B.stringify=X,B.run=$,B.runSync=U,B.process=R,B.processSync=J,B;function B(){for(var z=g(),M=-1;++Mc)&&(!w||T===n)){x=L-1,L++,w&&L++,j=L;break}}else O===i&&(L++,T=h.charCodeAt(L+1));L++}if(j!==void 0)return m?!0:($=h.slice(P,x+1),v(h.slice(0,j))({type:"inlineMath",value:$,data:{hName:"span",hProperties:{className:D.concat(w&&F.inlineMathDouble?[a]:[])},hChildren:[{type:"text",value:$}]}}))}}}}function d(g){let F=g.prototype;F.visitors.inlineMath=E;function E(A){let f="$";return(A.data&&A.data.hProperties&&A.data.hProperties.className||[]).includes(a)&&(f="$$"),f+A.value+f}}}}),KD=I({"node_modules/remark-math/block.js"(e,r){S();var u=Gi();r.exports=a;var t=10,o=32,n=36,s=` +`,c="$",i=2,D=["math","math-display"];function a(){let d=this.Parser,g=this.Compiler;u.isRemarkParser(d)&&l(d),u.isRemarkCompiler(g)&&p(g)}function l(d){let g=d.prototype,F=g.blockMethods,E=g.interruptParagraph,A=g.interruptList,f=g.interruptBlockquote;g.blockTokenizers.math=b,F.splice(F.indexOf("fencedCode")+1,0,"math"),E.splice(E.indexOf("fencedCode")+1,0,["math"]),A.splice(A.indexOf("fencedCode")+1,0,["math"]),f.splice(f.indexOf("fencedCode")+1,0,["math"]);function b(v,h,m){var C=h.length,w=0;let q,L,B,O,T,P,x,j,$,U,X;for(;wU&&h.charCodeAt(O-1)===o;)O--;for(;O>U&&h.charCodeAt(O-1)===n;)$++,O--;for(P<=$&&h.indexOf(c,U)===O&&(j=!0,X=O);U<=X&&U-wU&&h.charCodeAt(X-1)===o;)X--;if((!j||U!==X)&&L.push(h.slice(U,X)),j)break;w=B+1,B=h.indexOf(s,w+1),B=B===-1?C:B}return L=L.join(` +`),v(h.slice(0,B))({type:"math",value:L,data:{hName:"div",hProperties:{className:D.concat()},hChildren:[{type:"text",value:L}]}})}}}}function p(d){let g=d.prototype;g.visitors.math=F;function F(E){return`$$ +`+E.value+` +$$`}}}}),YD=I({"node_modules/remark-math/index.js"(e,r){S();var u=WD(),t=KD();r.exports=o;function o(n){var s=n||{};t.call(this,s),u.call(this,s)}}}),JD=I({"node_modules/remark-footnotes/index.js"(e,r){"use strict";S(),r.exports=g;var u=9,t=10,o=32,n=33,s=58,c=91,i=92,D=93,a=94,l=96,p=4,d=1024;function g(h){var m=this.Parser,C=this.Compiler;F(m)&&A(m,h),E(C)&&f(C)}function F(h){return Boolean(h&&h.prototype&&h.prototype.blockTokenizers)}function E(h){return Boolean(h&&h.prototype&&h.prototype.visitors)}function A(h,m){for(var C=m||{},w=h.prototype,q=w.blockTokenizers,L=w.inlineTokenizers,B=w.blockMethods,O=w.inlineMethods,T=q.definition,P=L.reference,x=[],j=-1,$=B.length,U;++j<$;)U=B[j],!(U==="newline"||U==="indentedCode"||U==="paragraph"||U==="footnoteDefinition")&&x.push([U]);x.push(["footnoteDefinition"]),C.inlineNotes&&(b(O,"reference","inlineNote"),L.inlineNote=J),b(B,"definition","footnoteDefinition"),b(O,"reference","footnoteCall"),q.definition=M,q.footnoteDefinition=X,L.footnoteCall=R,L.reference=z,w.interruptFootnoteDefinition=x,z.locator=P.locator,R.locator=G,J.locator=k;function X(y,_,N){for(var V=this,W=V.interruptFootnoteDefinition,K=V.offset,ee=_.length+1,Y=0,te=[],De,le,ne,Z,Q,fe,be,pe,he,oe,de,ie,re;Yp&&(oe=void 0,de=Y);else{if(oe0&&(re=ie[ee-1],re.contentStart===re.contentEnd);)ee--;for(fe=y(_.slice(0,re.contentEnd));++Y-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function t(o){let n=o.match(u);if(!n)return{content:o};let{startDelimiter:s,language:c,value:i="",endDelimiter:D}=n.groups,a=c.trim()||"yaml";if(s==="+++"&&(a="toml"),a!=="yaml"&&s!==D)return{content:o};let[l]=n;return{frontMatter:{type:"front-matter",lang:a,value:i,startDelimiter:s,endDelimiter:D,raw:l.replace(/\n$/,"")},content:l.replace(/[^\n]/g," ")+o.slice(l.length)}}r.exports=t}}),ZD=I({"src/language-markdown/pragma.js"(e,r){"use strict";S();var u=Ui(),t=["format","prettier"];function o(n){let s="@(".concat(t.join("|"),")"),c=new RegExp([""),"{\\s*\\/\\*\\s*".concat(s,"\\s*\\*\\/\\s*}"),``)].join("|"),"m"),i=n.match(c);return(i==null?void 0:i.index)===0}r.exports={startWithPragma:o,hasPragma:n=>o(u(n).content.trimStart()),insertPragma:n=>{let s=u(n),c="");return s.frontMatter?"".concat(s.frontMatter.raw,` + +`).concat(c,` + +`).concat(s.content):"".concat(c,` + +`).concat(s.content)}}}}),Vi=I({"src/language-markdown/loc.js"(e,r){"use strict";S();function u(o){return o.position.start.offset}function t(o){return o.position.end.offset}r.exports={locStart:u,locEnd:t}}}),$i=I({"src/language-markdown/mdx.js"(e,r){"use strict";S();var u=/^import\s/,t=/^export\s/,o="[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)*|",n=/|/,s=/^{\s*\/\*(.*)\*\/\s*}/,c=` + +`,i=d=>u.test(d),D=d=>t.test(d),a=(d,g)=>{let F=g.indexOf(c),E=g.slice(0,F);if(D(E)||i(E))return d(E)({type:D(E)?"export":"import",value:E})},l=(d,g)=>{let F=s.exec(g);if(F)return d(F[0])({type:"esComment",value:F[1].trim()})};a.locator=d=>D(d)||i(d)?-1:1,l.locator=(d,g)=>d.indexOf("{",g);function p(){let{Parser:d}=this,{blockTokenizers:g,blockMethods:F,inlineTokenizers:E,inlineMethods:A}=d.prototype;g.esSyntax=a,E.esComment=l,F.splice(F.indexOf("paragraph"),0,"esSyntax"),A.splice(A.indexOf("text"),0,"esComment")}r.exports={esSyntax:p,BLOCKS_REGEX:o,COMMENT_REGEX:n}}}),Hi={};Oi(Hi,{default:()=>QD});function QD(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var e2=Pe({"node_modules/escape-string-regexp/index.js"(){S()}}),r2=I({"src/utils/get-last.js"(e,r){"use strict";S();var u=t=>t[t.length-1];r.exports=u}}),Xi=I({"node_modules/semver/internal/debug.js"(e,r){S();var u=typeof Ze=="object"&&Ze.env&&Ze.env.NODE_DEBUG&&/\bsemver\b/i.test(Ze.env.NODE_DEBUG)?function(){for(var t=arguments.length,o=new Array(t),n=0;n{};r.exports=u}}),Wi=I({"node_modules/semver/internal/constants.js"(e,r){S();var u="2.0.0",t=256,o=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:u,MAX_LENGTH:t,MAX_SAFE_INTEGER:o,MAX_SAFE_COMPONENT_LENGTH:n}}}),u2=I({"node_modules/semver/internal/re.js"(e,r){S();var{MAX_SAFE_COMPONENT_LENGTH:u}=Wi(),t=Xi();e=r.exports={};var o=e.re=[],n=e.src=[],s=e.t={},c=0,i=(D,a,l)=>{let p=c++;t(D,p,a),s[D]=p,n[p]=a,o[p]=new RegExp(a,l?"g":void 0)};i("NUMERICIDENTIFIER","0|[1-9]\\d*"),i("NUMERICIDENTIFIERLOOSE","[0-9]+"),i("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),i("MAINVERSION","(".concat(n[s.NUMERICIDENTIFIER],")\\.(").concat(n[s.NUMERICIDENTIFIER],")\\.(").concat(n[s.NUMERICIDENTIFIER],")")),i("MAINVERSIONLOOSE","(".concat(n[s.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[s.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[s.NUMERICIDENTIFIERLOOSE],")")),i("PRERELEASEIDENTIFIER","(?:".concat(n[s.NUMERICIDENTIFIER],"|").concat(n[s.NONNUMERICIDENTIFIER],")")),i("PRERELEASEIDENTIFIERLOOSE","(?:".concat(n[s.NUMERICIDENTIFIERLOOSE],"|").concat(n[s.NONNUMERICIDENTIFIER],")")),i("PRERELEASE","(?:-(".concat(n[s.PRERELEASEIDENTIFIER],"(?:\\.").concat(n[s.PRERELEASEIDENTIFIER],")*))")),i("PRERELEASELOOSE","(?:-?(".concat(n[s.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(n[s.PRERELEASEIDENTIFIERLOOSE],")*))")),i("BUILDIDENTIFIER","[0-9A-Za-z-]+"),i("BUILD","(?:\\+(".concat(n[s.BUILDIDENTIFIER],"(?:\\.").concat(n[s.BUILDIDENTIFIER],")*))")),i("FULLPLAIN","v?".concat(n[s.MAINVERSION]).concat(n[s.PRERELEASE],"?").concat(n[s.BUILD],"?")),i("FULL","^".concat(n[s.FULLPLAIN],"$")),i("LOOSEPLAIN","[v=\\s]*".concat(n[s.MAINVERSIONLOOSE]).concat(n[s.PRERELEASELOOSE],"?").concat(n[s.BUILD],"?")),i("LOOSE","^".concat(n[s.LOOSEPLAIN],"$")),i("GTLT","((?:<|>)?=?)"),i("XRANGEIDENTIFIERLOOSE","".concat(n[s.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),i("XRANGEIDENTIFIER","".concat(n[s.NUMERICIDENTIFIER],"|x|X|\\*")),i("XRANGEPLAIN","[v=\\s]*(".concat(n[s.XRANGEIDENTIFIER],")(?:\\.(").concat(n[s.XRANGEIDENTIFIER],")(?:\\.(").concat(n[s.XRANGEIDENTIFIER],")(?:").concat(n[s.PRERELEASE],")?").concat(n[s.BUILD],"?)?)?")),i("XRANGEPLAINLOOSE","[v=\\s]*(".concat(n[s.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[s.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[s.XRANGEIDENTIFIERLOOSE],")(?:").concat(n[s.PRERELEASELOOSE],")?").concat(n[s.BUILD],"?)?)?")),i("XRANGE","^".concat(n[s.GTLT],"\\s*").concat(n[s.XRANGEPLAIN],"$")),i("XRANGELOOSE","^".concat(n[s.GTLT],"\\s*").concat(n[s.XRANGEPLAINLOOSE],"$")),i("COERCE","(^|[^\\d])(\\d{1,".concat(u,"})(?:\\.(\\d{1,").concat(u,"}))?(?:\\.(\\d{1,").concat(u,"}))?(?:$|[^\\d])")),i("COERCERTL",n[s.COERCE],!0),i("LONETILDE","(?:~>?)"),i("TILDETRIM","(\\s*)".concat(n[s.LONETILDE],"\\s+"),!0),e.tildeTrimReplace="$1~",i("TILDE","^".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAIN],"$")),i("TILDELOOSE","^".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAINLOOSE],"$")),i("LONECARET","(?:\\^)"),i("CARETTRIM","(\\s*)".concat(n[s.LONECARET],"\\s+"),!0),e.caretTrimReplace="$1^",i("CARET","^".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAIN],"$")),i("CARETLOOSE","^".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAINLOOSE],"$")),i("COMPARATORLOOSE","^".concat(n[s.GTLT],"\\s*(").concat(n[s.LOOSEPLAIN],")$|^$")),i("COMPARATOR","^".concat(n[s.GTLT],"\\s*(").concat(n[s.FULLPLAIN],")$|^$")),i("COMPARATORTRIM","(\\s*)".concat(n[s.GTLT],"\\s*(").concat(n[s.LOOSEPLAIN],"|").concat(n[s.XRANGEPLAIN],")"),!0),e.comparatorTrimReplace="$1$2$3",i("HYPHENRANGE","^\\s*(".concat(n[s.XRANGEPLAIN],")\\s+-\\s+(").concat(n[s.XRANGEPLAIN],")\\s*$")),i("HYPHENRANGELOOSE","^\\s*(".concat(n[s.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(n[s.XRANGEPLAINLOOSE],")\\s*$")),i("STAR","(<|>)?=?\\s*\\*"),i("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),i("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),t2=I({"node_modules/semver/internal/parse-options.js"(e,r){S();var u=["includePrerelease","loose","rtl"],t=o=>o?typeof o!="object"?{loose:!0}:u.filter(n=>o[n]).reduce((n,s)=>(n[s]=!0,n),{}):{};r.exports=t}}),n2=I({"node_modules/semver/internal/identifiers.js"(e,r){S();var u=/^[0-9]+$/,t=(n,s)=>{let c=u.test(n),i=u.test(s);return c&&i&&(n=+n,s=+s),n===s?0:c&&!i?-1:i&&!c?1:nt(s,n);r.exports={compareIdentifiers:t,rcompareIdentifiers:o}}}),i2=I({"node_modules/semver/classes/semver.js"(e,r){S();var u=Xi(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:o}=Wi(),{re:n,t:s}=u2(),c=t2(),{compareIdentifiers:i}=n2(),D=class{constructor(a,l){if(l=c(l),a instanceof D){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if(typeof a!="string")throw new TypeError("Invalid Version: ".concat(a));if(a.length>t)throw new TypeError("version is longer than ".concat(t," characters"));u("SemVer",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let p=a.trim().match(l.loose?n[s.LOOSE]:n[s.FULL]);if(!p)throw new TypeError("Invalid Version: ".concat(a));if(this.raw=a,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");p[4]?this.prerelease=p[4].split(".").map(d=>{if(/^[0-9]+$/.test(d)){let g=+d;if(g>=0&&g=0;)typeof this.prerelease[p]=="number"&&(this.prerelease[p]++,p=-2);p===-1&&this.prerelease.push(0)}l&&(i(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error("invalid increment argument: ".concat(a))}return this.format(),this.raw=this.version,this}};r.exports=D}}),vu=I({"node_modules/semver/functions/compare.js"(e,r){S();var u=i2(),t=(o,n,s)=>new u(o,s).compare(new u(n,s));r.exports=t}}),a2=I({"node_modules/semver/functions/lt.js"(e,r){S();var u=vu(),t=(o,n,s)=>u(o,n,s)<0;r.exports=t}}),o2=I({"node_modules/semver/functions/gte.js"(e,r){S();var u=vu(),t=(o,n,s)=>u(o,n,s)>=0;r.exports=t}}),s2=I({"src/utils/arrayify.js"(e,r){"use strict";S(),r.exports=(u,t)=>Object.entries(u).map(o=>{let[n,s]=o;return Object.assign({[t]:n},s)})}}),c2=I({"package.json"(e,r){r.exports={version:"2.7.1"}}}),l2=I({"node_modules/outdent/lib/index.js"(e,r){"use strict";S(),Object.defineProperty(e,"__esModule",{value:!0}),e.outdent=void 0;function u(){for(var f=[],b=0;btypeof l=="string"||typeof l=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"acorn",since:"2.6.0",description:"JavaScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:i,description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin",cliCategory:t},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:i,description:u(yi||(yi=je([` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `]))),exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin-search-dir",cliCategory:t},printWidth:{since:"0.0.0",category:i,type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:D,type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(wi||(wi=je([` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:o},rangeStart:{since:"1.4.0",category:D,type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(Bi||(Bi=je([` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:o},requirePragma:{since:"1.7.0",category:D,type:"boolean",default:!1,description:u(ki||(ki=je([` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `]))),cliCategory:s},tabWidth:{type:"int",category:i,default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:i,type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:i,type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};r.exports={CATEGORY_CONFIG:t,CATEGORY_EDITOR:o,CATEGORY_FORMAT:n,CATEGORY_OTHER:s,CATEGORY_OUTPUT:c,CATEGORY_GLOBAL:i,CATEGORY_SPECIAL:D,options:a}}}),f2=I({"src/main/support.js"(e,r){"use strict";S();var u={compare:vu(),lt:a2(),gte:o2()},t=s2(),o=c2().version,n=D2().options;function s(){let{plugins:i=[],showUnreleased:D=!1,showDeprecated:a=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},p=o.split("-",1)[0],d=i.flatMap(f=>f.languages||[]).filter(F),g=t(Object.assign({},...i.map(f=>{let{options:b}=f;return b}),n),"name").filter(f=>F(f)&&E(f)).sort((f,b)=>f.name===b.name?0:f.name{f=Object.assign({},f),Array.isArray(f.default)&&(f.default=f.default.length===1?f.default[0].value:f.default.filter(F).sort((v,h)=>u.compare(h.since,v.since))[0].value),Array.isArray(f.choices)&&(f.choices=f.choices.filter(v=>F(v)&&E(v)),f.name==="parser"&&c(f,d,i));let b=Object.fromEntries(i.filter(v=>v.defaultOptions&&v.defaultOptions[f.name]!==void 0).map(v=>[v.name,v.defaultOptions[f.name]]));return Object.assign(Object.assign({},f),{},{pluginDefaults:b})});return{languages:d,options:g};function F(f){return D||!("since"in f)||f.since&&u.gte(p,f.since)}function E(f){return a||!("deprecated"in f)||f.deprecated&&u.lt(p,f.deprecated)}function A(f){if(l)return f;let{cliName:b,cliCategory:v,cliDescription:h}=f;return Fl(f,gl)}}function c(i,D,a){let l=new Set(i.choices.map(p=>p.value));for(let p of D)if(p.parsers){for(let d of p.parsers)if(!l.has(d)){l.add(d);let g=a.find(E=>E.parsers&&E.parsers[d]),F=p.name;g&&g.name&&(F+=" (plugin: ".concat(g.name,")")),i.choices.push({value:d,description:F})}}}r.exports={getSupportInfo:s}}}),p2=I({"src/utils/is-non-empty-array.js"(e,r){"use strict";S();function u(t){return Array.isArray(t)&&t.length>0}r.exports=u}});function d2(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var h2=Pe({"node_modules/strip-ansi/node_modules/ansi-regex/index.js"(){S()}});function v2(e){if(typeof e!="string")throw new TypeError("Expected a `string`, got `".concat(typeof e,"`"));return e.replace(d2(),"")}var m2=Pe({"node_modules/strip-ansi/index.js"(){S(),h2()}});function E2(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var C2=Pe({"node_modules/is-fullwidth-code-point/index.js"(){S()}}),g2=I({"node_modules/emoji-regex/index.js"(e,r){"use strict";S(),r.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}}),Ki={};Oi(Ki,{default:()=>F2});function F2(e){if(typeof e!="string"||e.length===0||(e=v2(e),e.length===0))return 0;e=e.replace((0,Yi.default)()," ");let r=0;for(let u=0;u=127&&t<=159||t>=768&&t<=879||(t>65535&&u++,r+=E2(t)?2:1)}return r}var Yi,A2=Pe({"node_modules/string-width/index.js"(){S(),m2(),C2(),Yi=Bl(g2())}}),x2=I({"src/utils/get-string-width.js"(e,r){"use strict";S();var u=(A2(),Si(Ki)).default,t=/[^\x20-\x7F]/;function o(n){return n?t.test(n)?u(n):n.length:0}r.exports=o}}),mu=I({"src/utils/text/skip.js"(e,r){"use strict";S();function u(c){return(i,D,a)=>{let l=a&&a.backwards;if(D===!1)return!1;let{length:p}=i,d=D;for(;d>=0&&dk[k.length-2];function E(k){return(y,_,N)=>{let V=N&&N.backwards;if(_===!1)return!1;let{length:W}=y,K=_;for(;K>=0&&K2&&arguments[2]!==void 0?arguments[2]:{},N=i(k,_.backwards?y-1:y,_),V=d(k,N,_);return N!==V}function f(k,y,_){for(let N=y;N<_;++N)if(k.charAt(N)===` +`)return!0;return!1}function b(k,y,_){let N=_(y)-1;N=i(k,N,{backwards:!0}),N=d(k,N,{backwards:!0}),N=i(k,N,{backwards:!0});let V=d(k,N,{backwards:!0});return N!==V}function v(k,y){let _=null,N=y;for(;N!==_;)_=N,N=D(k,N),N=l(k,N),N=i(k,N);return N=p(k,N),N=d(k,N),N!==!1&&A(k,N)}function h(k,y,_){return v(k,_(y))}function m(k,y,_){return g(k,_(y))}function C(k,y,_){return k.charAt(m(k,y,_))}function w(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return i(k,_.backwards?y-1:y,_)!==y}function q(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,N=0;for(let V=_;VY?W:V}return K}function O(k,y){let _=k.slice(1,-1),N=y.parser==="json"||y.parser==="json5"&&y.quoteProps==="preserve"&&!y.singleQuote?'"':y.__isInHtmlAttribute?"'":B(_,y.singleQuote?"'":'"').quote;return T(_,N,!(y.parser==="css"||y.parser==="less"||y.parser==="scss"||y.__embeddedInHtml))}function T(k,y,_){let N=y==='"'?"'":'"',V=/\\(.)|(["'])/gs,W=k.replace(V,(K,ee,Y)=>ee===N?ee:Y===y?"\\"+Y:Y||(_&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(ee)?ee:"\\"+ee));return y+W+y}function P(k){return k.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e|$)/,"")}function x(k,y){let _=k.match(new RegExp("(".concat(u(y),")+"),"g"));return _===null?0:_.reduce((N,V)=>Math.max(N,V.length/y.length),0)}function j(k,y){let _=k.match(new RegExp("(".concat(u(y),")+"),"g"));if(_===null)return 0;let N=new Map,V=0;for(let W of _){let K=W.length/y.length;N.set(K,!0),K>V&&(V=K)}for(let W=1;W{let{name:W}=V;return W.toLowerCase()===k})||_.find(V=>{let{aliases:W}=V;return Array.isArray(W)&&W.includes(k)})||_.find(V=>{let{extensions:W}=V;return Array.isArray(W)&&W.includes(".".concat(k))});return N&&N.parsers[0]}function z(k){return k&&k.type==="front-matter"}function M(k){let y=new WeakMap;return function(_){return y.has(_)||y.set(_,Symbol(k)),y.get(_)}}function G(k){let y=k.type||k.kind||"(unknown type)",_=String(k.name||k.id&&(typeof k.id=="object"?k.id.name:k.id)||k.key&&(typeof k.key=="object"?k.key.name:k.key)||k.value&&(typeof k.value=="object"?"":String(k.value))||k.operator||"");return _.length>20&&(_=_.slice(0,19)+"\u2026"),y+(_?" "+_:"")}r.exports={inferParserByLanguage:J,getStringWidth:s,getMaxContinuousCount:x,getMinNotPresentContinuousCount:j,getPenultimate:F,getLast:t,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:g,getNextNonSpaceNonCommentCharacterIndex:m,getNextNonSpaceNonCommentCharacter:C,skip:E,skipWhitespace:c,skipSpaces:i,skipToLineEnd:D,skipEverythingButNewLine:a,skipInlineComment:l,skipTrailingComment:p,skipNewline:d,isNextLineEmptyAfterIndex:v,isNextLineEmpty:h,isPreviousLineEmpty:b,hasNewline:A,hasNewlineInRange:f,hasSpaces:w,getAlignmentSize:q,getIndentSize:L,getPreferredQuote:B,printString:O,printNumber:P,makeString:T,addLeadingComment:U,addDanglingComment:X,addTrailingComment:R,isFrontMatterNode:z,isNonEmptyArray:n,createGroupIdMapper:M}}}),w2=I({"src/language-markdown/constants.evaluate.js"(e,r){r.exports={cjkPattern:"(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?",kPattern:"[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]",punctuationPattern:"[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]"}}}),B2=I({"src/language-markdown/utils.js"(e,r){"use strict";S();var{getLast:u}=y2(),{locStart:t,locEnd:o}=Vi(),{cjkPattern:n,kPattern:s,punctuationPattern:c}=w2(),i=["liquidNode","inlineCode","emphasis","esComment","strong","delete","wikiLink","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break","inlineMath"],D=[...i,"tableCell","paragraph","heading"],a=new RegExp(s),l=new RegExp(c);function p(f,b){let v="non-cjk",h="cj-letter",m="k-letter",C="cjk-punctuation",w=[],q=(b.proseWrap==="preserve"?f:f.replace(new RegExp("(".concat(n,`) +(`).concat(n,")"),"g"),"$1$2")).split(/([\t\n ]+)/);for(let[B,O]of q.entries()){if(B%2===1){w.push({type:"whitespace",value:/\n/.test(O)?` +`:" "});continue}if((B===0||B===q.length-1)&&O==="")continue;let T=O.split(new RegExp("(".concat(n,")")));for(let[P,x]of T.entries())if(!((P===0||P===T.length-1)&&x==="")){if(P%2===0){x!==""&&L({type:"word",value:x,kind:v,hasLeadingPunctuation:l.test(x[0]),hasTrailingPunctuation:l.test(u(x))});continue}L(l.test(x)?{type:"word",value:x,kind:C,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:"word",value:x,kind:a.test(x)?m:h,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return w;function L(B){let O=u(w);O&&O.type==="word"&&(O.kind===v&&B.kind===h&&!O.hasTrailingPunctuation||O.kind===h&&B.kind===v&&!B.hasLeadingPunctuation?w.push({type:"whitespace",value:" "}):!T(v,C)&&![O.value,B.value].some(P=>/\u3000/.test(P))&&w.push({type:"whitespace",value:""})),w.push(B);function T(P,x){return O.kind===P&&B.kind===x||O.kind===x&&B.kind===P}}}function d(f,b){let[,v,h,m]=b.slice(f.position.start.offset,f.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/);return{numberText:v,marker:h,leadingSpaces:m}}function g(f,b){if(!f.ordered||f.children.length<2)return!1;let v=Number(d(f.children[0],b.originalText).numberText),h=Number(d(f.children[1],b.originalText).numberText);if(v===0&&f.children.length>2){let m=Number(d(f.children[2],b.originalText).numberText);return h===1&&m===1}return h===1}function F(f,b){let{value:v}=f;return f.position.end.offset===b.length&&v.endsWith(` +`)&&b.endsWith(` +`)?v.slice(0,-1):v}function E(f,b){return function v(h,m,C){let w=Object.assign({},b(h,m,C));return w.children&&(w.children=w.children.map((q,L)=>v(q,L,[w,...C]))),w}(f,null,[])}function A(f){if((f==null?void 0:f.type)!=="link"||f.children.length!==1)return!1;let[b]=f.children;return t(f)===t(b)&&o(f)===o(b)}r.exports={mapAst:E,splitText:p,punctuationPattern:c,getFencedCodeBlockValue:F,getOrderedListItemInfo:d,hasGitDiffFriendlyOrderedList:g,INLINE_NODE_TYPES:i,INLINE_NODE_WRAPPER_TYPES:D,isAutolink:A}}}),k2=I({"src/language-markdown/unified-plugins/html-to-jsx.js"(e,r){"use strict";S();var u=$i(),{mapAst:t,INLINE_NODE_WRAPPER_TYPES:o}=B2();function n(){return s=>t(s,(c,i,D)=>{let[a]=D;return c.type!=="html"||u.COMMENT_REGEX.test(c.value)||o.includes(a.type)?c:Object.assign(Object.assign({},c),{},{type:"jsx"})})}r.exports=n}}),q2=I({"src/language-markdown/unified-plugins/front-matter.js"(e,r){"use strict";S();var u=Ui();function t(){let o=this.Parser.prototype;o.blockMethods=["frontMatter",...o.blockMethods],o.blockTokenizers.frontMatter=n;function n(s,c){let i=u(c);if(i.frontMatter)return s(i.frontMatter.raw)(i.frontMatter)}n.onlyAtStart=!0}r.exports=t}}),_2=I({"src/language-markdown/unified-plugins/liquid.js"(e,r){"use strict";S();function u(){let t=this.Parser.prototype,o=t.inlineMethods;o.splice(o.indexOf("text"),0,"liquid"),t.inlineTokenizers.liquid=n;function n(s,c){let i=c.match(/^({%.*?%}|{{.*?}})/s);if(i)return s(i[0])({type:"liquidNode",value:i[0]})}n.locator=function(s,c){return s.indexOf("{",c)}}r.exports=u}}),O2=I({"src/language-markdown/unified-plugins/wiki-link.js"(e,r){"use strict";S();function u(){let t="wikiLink",o=/^\[\[(?.+?)]]/s,n=this.Parser.prototype,s=n.inlineMethods;s.splice(s.indexOf("link"),0,t),n.inlineTokenizers.wikiLink=c;function c(i,D){let a=o.exec(D);if(a){let l=a.groups.linkContents.trim();return i(a[0])({type:t,value:l})}}c.locator=function(i,D){return i.indexOf("[",D)}}r.exports=u}}),I2=I({"src/language-markdown/unified-plugins/loose-items.js"(e,r){"use strict";S();function u(){let t=this.Parser.prototype,o=t.blockTokenizers.list;function n(s,c,i){return c.type==="listItem"&&(c.loose=c.spread||s.charAt(s.length-1)===` +`,c.loose&&(i.loose=!0)),c}t.blockTokenizers.list=function(c,i,D){function a(l){let p=c(l);function d(g,F){return p(n(l,g,F),F)}return d.reset=function(g,F){return p.reset(n(l,g,F),F)},d}return a.now=c.now,o.call(this,a,i,D)}}r.exports=u}}),S2=I({"src/language-markdown/parser-markdown.js"(e,r){S();var u=TD(),t=XD(),o=YD(),n=JD(),s=ZD(),{locStart:c,locEnd:i}=Vi(),D=$i(),a=k2(),l=q2(),p=_2(),d=O2(),g=I2();function F(v){let{isMDX:h}=v;return m=>{let C=t().use(u,Object.assign({commonmark:!0},h&&{blocks:[D.BLOCKS_REGEX]})).use(n).use(l).use(o).use(h?D.esSyntax:E).use(p).use(h?a:E).use(d).use(g);return C.runSync(C.parse(m))}}function E(v){return v}var A={astFormat:"mdast",hasPragma:s.hasPragma,locStart:c,locEnd:i},f=Object.assign(Object.assign({},A),{},{parse:F({isMDX:!1})}),b=Object.assign(Object.assign({},A),{},{parse:F({isMDX:!0})});r.exports={parsers:{remark:f,markdown:f,mdx:b}}}}),op=S2();export{op as default}; diff --git a/node_modules/prettier/esm/parser-meriyah.mjs b/node_modules/prettier/esm/parser-meriyah.mjs new file mode 100644 index 0000000..88cd7b9 --- /dev/null +++ b/node_modules/prettier/esm/parser-meriyah.mjs @@ -0,0 +1,19 @@ +"use strict";var L=(d,b)=>()=>(b||d((b={exports:{}}).exports,b),b.exports);var n2=L((g3,Ce)=>{var y1=function(d){return d&&d.Math==Math&&d};Ce.exports=y1(typeof globalThis=="object"&&globalThis)||y1(typeof window=="object"&&window)||y1(typeof self=="object"&&self)||y1(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var L2=L((h3,we)=>{we.exports=function(d){try{return!!d()}catch{return!0}}});var J2=L((m3,qe)=>{var jt=L2();qe.exports=!jt(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var x1=L((b3,Be)=>{var _t=L2();Be.exports=!_t(function(){var d=function(){}.bind();return typeof d!="function"||d.hasOwnProperty("prototype")})});var P1=L((k3,Se)=>{var Mt=x1(),A1=Function.prototype.call;Se.exports=Mt?A1.bind(A1):function(){return A1.apply(A1,arguments)}});var Oe=L(Le=>{"use strict";var Fe={}.propertyIsEnumerable,Te=Object.getOwnPropertyDescriptor,Ut=Te&&!Fe.call({1:2},1);Le.f=Ut?function(b){var r=Te(this,b);return!!r&&r.enumerable}:Fe});var p1=L((v3,Ie)=>{Ie.exports=function(d,b){return{enumerable:!(d&1),configurable:!(d&2),writable:!(d&4),value:b}}});var D2=L((y3,Ve)=>{var Re=x1(),Ne=Function.prototype,Jt=Ne.bind,uu=Ne.call,Xt=Re&&Jt.bind(uu,uu);Ve.exports=Re?function(d){return d&&Xt(d)}:function(d){return d&&function(){return uu.apply(d,arguments)}}});var Me=L((A3,_e)=>{var je=D2(),zt=je({}.toString),Ht=je("".slice);_e.exports=function(d){return Ht(zt(d),8,-1)}});var Je=L((P3,Ue)=>{var Kt=n2(),Wt=D2(),Yt=L2(),$t=Me(),eu=Kt.Object,Zt=Wt("".split);Ue.exports=Yt(function(){return!eu("z").propertyIsEnumerable(0)})?function(d){return $t(d)=="String"?Zt(d,""):eu(d)}:eu});var iu=L((E3,Xe)=>{var Qt=n2(),Gt=Qt.TypeError;Xe.exports=function(d){if(d==null)throw Gt("Can't call method on "+d);return d}});var E1=L((D3,ze)=>{var xt=Je(),pt=iu();ze.exports=function(d){return xt(pt(d))}});var C2=L((C3,He)=>{He.exports=function(d){return typeof d=="function"}});var Z2=L((w3,Ke)=>{var uo=C2();Ke.exports=function(d){return typeof d=="object"?d!==null:uo(d)}});var D1=L((q3,We)=>{var nu=n2(),eo=C2(),io=function(d){return eo(d)?d:void 0};We.exports=function(d,b){return arguments.length<2?io(nu[d]):nu[d]&&nu[d][b]}});var $e=L((B3,Ye)=>{var no=D2();Ye.exports=no({}.isPrototypeOf)});var Qe=L((S3,Ze)=>{var to=D1();Ze.exports=to("navigator","userAgent")||""});var ni=L((F3,ii)=>{var ei=n2(),tu=Qe(),Ge=ei.process,xe=ei.Deno,pe=Ge&&Ge.versions||xe&&xe.version,ui=pe&&pe.v8,P2,C1;ui&&(P2=ui.split("."),C1=P2[0]>0&&P2[0]<4?1:+(P2[0]+P2[1]));!C1&&tu&&(P2=tu.match(/Edge\/(\d+)/),(!P2||P2[1]>=74)&&(P2=tu.match(/Chrome\/(\d+)/),P2&&(C1=+P2[1])));ii.exports=C1});var ou=L((T3,oi)=>{var ti=ni(),oo=L2();oi.exports=!!Object.getOwnPropertySymbols&&!oo(function(){var d=Symbol();return!String(d)||!(Object(d)instanceof Symbol)||!Symbol.sham&&ti&&ti<41})});var lu=L((L3,li)=>{var lo=ou();li.exports=lo&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var fu=L((O3,fi)=>{var fo=n2(),co=D1(),so=C2(),ao=$e(),go=lu(),ho=fo.Object;fi.exports=go?function(d){return typeof d=="symbol"}:function(d){var b=co("Symbol");return so(b)&&ao(b.prototype,ho(d))}});var si=L((I3,ci)=>{var mo=n2(),bo=mo.String;ci.exports=function(d){try{return bo(d)}catch{return"Object"}}});var di=L((R3,ai)=>{var ko=n2(),ro=C2(),vo=si(),yo=ko.TypeError;ai.exports=function(d){if(ro(d))return d;throw yo(vo(d)+" is not a function")}});var hi=L((N3,gi)=>{var Ao=di();gi.exports=function(d,b){var r=d[b];return r==null?void 0:Ao(r)}});var bi=L((V3,mi)=>{var Po=n2(),cu=P1(),su=C2(),au=Z2(),Eo=Po.TypeError;mi.exports=function(d,b){var r,f;if(b==="string"&&su(r=d.toString)&&!au(f=cu(r,d))||su(r=d.valueOf)&&!au(f=cu(r,d))||b!=="string"&&su(r=d.toString)&&!au(f=cu(r,d)))return f;throw Eo("Can't convert object to primitive value")}});var ri=L((j3,ki)=>{ki.exports=!1});var w1=L((_3,yi)=>{var vi=n2(),Do=Object.defineProperty;yi.exports=function(d,b){try{Do(vi,d,{value:b,configurable:!0,writable:!0})}catch{vi[d]=b}return b}});var q1=L((M3,Pi)=>{var Co=n2(),wo=w1(),Ai="__core-js_shared__",qo=Co[Ai]||wo(Ai,{});Pi.exports=qo});var du=L((U3,Di)=>{var Bo=ri(),Ei=q1();(Di.exports=function(d,b){return Ei[d]||(Ei[d]=b!==void 0?b:{})})("versions",[]).push({version:"3.22.2",mode:Bo?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var wi=L((J3,Ci)=>{var So=n2(),Fo=iu(),To=So.Object;Ci.exports=function(d){return To(Fo(d))}});var O2=L((X3,qi)=>{var Lo=D2(),Oo=wi(),Io=Lo({}.hasOwnProperty);qi.exports=Object.hasOwn||function(b,r){return Io(Oo(b),r)}});var gu=L((z3,Bi)=>{var Ro=D2(),No=0,Vo=Math.random(),jo=Ro(1 .toString);Bi.exports=function(d){return"Symbol("+(d===void 0?"":d)+")_"+jo(++No+Vo,36)}});var Ii=L((H3,Oi)=>{var _o=n2(),Mo=du(),Si=O2(),Uo=gu(),Fi=ou(),Li=lu(),Q2=Mo("wks"),X2=_o.Symbol,Ti=X2&&X2.for,Jo=Li?X2:X2&&X2.withoutSetter||Uo;Oi.exports=function(d){if(!Si(Q2,d)||!(Fi||typeof Q2[d]=="string")){var b="Symbol."+d;Fi&&Si(X2,d)?Q2[d]=X2[d]:Li&&Ti?Q2[d]=Ti(b):Q2[d]=Jo(b)}return Q2[d]}});var ji=L((K3,Vi)=>{var Xo=n2(),zo=P1(),Ri=Z2(),Ni=fu(),Ho=hi(),Ko=bi(),Wo=Ii(),Yo=Xo.TypeError,$o=Wo("toPrimitive");Vi.exports=function(d,b){if(!Ri(d)||Ni(d))return d;var r=Ho(d,$o),f;if(r){if(b===void 0&&(b="default"),f=zo(r,d,b),!Ri(f)||Ni(f))return f;throw Yo("Can't convert object to primitive value")}return b===void 0&&(b="number"),Ko(d,b)}});var hu=L((W3,_i)=>{var Zo=ji(),Qo=fu();_i.exports=function(d){var b=Zo(d,"string");return Qo(b)?b:b+""}});var Ji=L((Y3,Ui)=>{var Go=n2(),Mi=Z2(),mu=Go.document,xo=Mi(mu)&&Mi(mu.createElement);Ui.exports=function(d){return xo?mu.createElement(d):{}}});var bu=L(($3,Xi)=>{var po=J2(),ul=L2(),el=Ji();Xi.exports=!po&&!ul(function(){return Object.defineProperty(el("div"),"a",{get:function(){return 7}}).a!=7})});var ku=L(Hi=>{var il=J2(),nl=P1(),tl=Oe(),ol=p1(),ll=E1(),fl=hu(),cl=O2(),sl=bu(),zi=Object.getOwnPropertyDescriptor;Hi.f=il?zi:function(b,r){if(b=ll(b),r=fl(r),sl)try{return zi(b,r)}catch{}if(cl(b,r))return ol(!nl(tl.f,b,r),b[r])}});var Wi=L((Q3,Ki)=>{var al=J2(),dl=L2();Ki.exports=al&&dl(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var ru=L((G3,$i)=>{var Yi=n2(),gl=Z2(),hl=Yi.String,ml=Yi.TypeError;$i.exports=function(d){if(gl(d))return d;throw ml(hl(d)+" is not an object")}});var Eu=L(Qi=>{var bl=n2(),kl=J2(),rl=bu(),vl=Wi(),B1=ru(),Zi=hu(),yl=bl.TypeError,vu=Object.defineProperty,Al=Object.getOwnPropertyDescriptor,yu="enumerable",Au="configurable",Pu="writable";Qi.f=kl?vl?function(b,r,f){if(B1(b),r=Zi(r),B1(f),typeof b=="function"&&r==="prototype"&&"value"in f&&Pu in f&&!f[Pu]){var E=Al(b,r);E&&E[Pu]&&(b[r]=f.value,f={configurable:Au in f?f[Au]:E[Au],enumerable:yu in f?f[yu]:E[yu],writable:!1})}return vu(b,r,f)}:vu:function(b,r,f){if(B1(b),r=Zi(r),B1(f),rl)try{return vu(b,r,f)}catch{}if("get"in f||"set"in f)throw yl("Accessors not supported");return"value"in f&&(b[r]=f.value),b}});var S1=L((p3,Gi)=>{var Pl=J2(),El=Eu(),Dl=p1();Gi.exports=Pl?function(d,b,r){return El.f(d,b,Dl(1,r))}:function(d,b,r){return d[b]=r,d}});var Cu=L((u6,xi)=>{var Cl=D2(),wl=C2(),Du=q1(),ql=Cl(Function.toString);wl(Du.inspectSource)||(Du.inspectSource=function(d){return ql(d)});xi.exports=Du.inspectSource});var en=L((e6,un)=>{var Bl=n2(),Sl=C2(),Fl=Cu(),pi=Bl.WeakMap;un.exports=Sl(pi)&&/native code/.test(Fl(pi))});var on=L((i6,tn)=>{var Tl=du(),Ll=gu(),nn=Tl("keys");tn.exports=function(d){return nn[d]||(nn[d]=Ll(d))}});var wu=L((n6,ln)=>{ln.exports={}});var gn=L((t6,dn)=>{var Ol=en(),an=n2(),qu=D2(),Il=Z2(),Rl=S1(),Bu=O2(),Su=q1(),Nl=on(),Vl=wu(),fn="Object already initialized",Tu=an.TypeError,jl=an.WeakMap,F1,e1,T1,_l=function(d){return T1(d)?e1(d):F1(d,{})},Ml=function(d){return function(b){var r;if(!Il(b)||(r=e1(b)).type!==d)throw Tu("Incompatible receiver, "+d+" required");return r}};Ol||Su.state?(I2=Su.state||(Su.state=new jl),cn=qu(I2.get),Fu=qu(I2.has),sn=qu(I2.set),F1=function(d,b){if(Fu(I2,d))throw new Tu(fn);return b.facade=d,sn(I2,d,b),b},e1=function(d){return cn(I2,d)||{}},T1=function(d){return Fu(I2,d)}):(z2=Nl("state"),Vl[z2]=!0,F1=function(d,b){if(Bu(d,z2))throw new Tu(fn);return b.facade=d,Rl(d,z2,b),b},e1=function(d){return Bu(d,z2)?d[z2]:{}},T1=function(d){return Bu(d,z2)});var I2,cn,Fu,sn,z2;dn.exports={set:F1,get:e1,has:T1,enforce:_l,getterFor:Ml}});var bn=L((o6,mn)=>{var Lu=J2(),Ul=O2(),hn=Function.prototype,Jl=Lu&&Object.getOwnPropertyDescriptor,Ou=Ul(hn,"name"),Xl=Ou&&function(){}.name==="something",zl=Ou&&(!Lu||Lu&&Jl(hn,"name").configurable);mn.exports={EXISTS:Ou,PROPER:Xl,CONFIGURABLE:zl}});var An=L((l6,yn)=>{var Hl=n2(),kn=C2(),Kl=O2(),rn=S1(),Wl=w1(),Yl=Cu(),vn=gn(),$l=bn().CONFIGURABLE,Zl=vn.get,Ql=vn.enforce,Gl=String(String).split("String");(yn.exports=function(d,b,r,f){var E=f?!!f.unsafe:!1,T=f?!!f.enumerable:!1,q=f?!!f.noTargetGet:!1,F=f&&f.name!==void 0?f.name:b,k;if(kn(r)&&(String(F).slice(0,7)==="Symbol("&&(F="["+String(F).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Kl(r,"name")||$l&&r.name!==F)&&rn(r,"name",F),k=Ql(r),k.source||(k.source=Gl.join(typeof F=="string"?F:""))),d===Hl){T?d[b]=r:Wl(b,r);return}else E?!q&&d[b]&&(T=!0):delete d[b];T?d[b]=r:rn(d,b,r)})(Function.prototype,"toString",function(){return kn(this)&&Zl(this).source||Yl(this)})});var Iu=L((f6,Pn)=>{var xl=Math.ceil,pl=Math.floor;Pn.exports=function(d){var b=+d;return b!==b||b===0?0:(b>0?pl:xl)(b)}});var Dn=L((c6,En)=>{var u4=Iu(),e4=Math.max,i4=Math.min;En.exports=function(d,b){var r=u4(d);return r<0?e4(r+b,0):i4(r,b)}});var wn=L((s6,Cn)=>{var n4=Iu(),t4=Math.min;Cn.exports=function(d){return d>0?t4(n4(d),9007199254740991):0}});var Bn=L((a6,qn)=>{var o4=wn();qn.exports=function(d){return o4(d.length)}});var Tn=L((d6,Fn)=>{var l4=E1(),f4=Dn(),c4=Bn(),Sn=function(d){return function(b,r,f){var E=l4(b),T=c4(E),q=f4(f,T),F;if(d&&r!=r){for(;T>q;)if(F=E[q++],F!=F)return!0}else for(;T>q;q++)if((d||q in E)&&E[q]===r)return d||q||0;return!d&&-1}};Fn.exports={includes:Sn(!0),indexOf:Sn(!1)}});var In=L((g6,On)=>{var s4=D2(),Ru=O2(),a4=E1(),d4=Tn().indexOf,g4=wu(),Ln=s4([].push);On.exports=function(d,b){var r=a4(d),f=0,E=[],T;for(T in r)!Ru(g4,T)&&Ru(r,T)&&Ln(E,T);for(;b.length>f;)Ru(r,T=b[f++])&&(~d4(E,T)||Ln(E,T));return E}});var Nn=L((h6,Rn)=>{Rn.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var jn=L(Vn=>{var h4=In(),m4=Nn(),b4=m4.concat("length","prototype");Vn.f=Object.getOwnPropertyNames||function(b){return h4(b,b4)}});var Mn=L(_n=>{_n.f=Object.getOwnPropertySymbols});var Jn=L((k6,Un)=>{var k4=D1(),r4=D2(),v4=jn(),y4=Mn(),A4=ru(),P4=r4([].concat);Un.exports=k4("Reflect","ownKeys")||function(b){var r=v4.f(A4(b)),f=y4.f;return f?P4(r,f(b)):r}});var Hn=L((r6,zn)=>{var Xn=O2(),E4=Jn(),D4=ku(),C4=Eu();zn.exports=function(d,b,r){for(var f=E4(b),E=C4.f,T=D4.f,q=0;q{var w4=L2(),q4=C2(),B4=/#|\.prototype\./,i1=function(d,b){var r=F4[S4(d)];return r==L4?!0:r==T4?!1:q4(b)?w4(b):!!b},S4=i1.normalize=function(d){return String(d).replace(B4,".").toLowerCase()},F4=i1.data={},T4=i1.NATIVE="N",L4=i1.POLYFILL="P";Kn.exports=i1});var $n=L((y6,Yn)=>{var Nu=n2(),O4=ku().f,I4=S1(),R4=An(),N4=w1(),V4=Hn(),j4=Wn();Yn.exports=function(d,b){var r=d.target,f=d.global,E=d.stat,T,q,F,k,W,X;if(f?q=Nu:E?q=Nu[r]||N4(r,{}):q=(Nu[r]||{}).prototype,q)for(F in b){if(W=b[F],d.noTargetGet?(X=O4(q,F),k=X&&X.value):k=q[F],T=j4(f?F:r+(E?".":"#")+F,d.forced),!T&&k!==void 0){if(typeof W==typeof k)continue;V4(W,k)}(d.sham||k&&k.sham)&&I4(W,"sham",!0),R4(q,F,W,d)}}});var Zn=L(()=>{var _4=$n(),M4=n2();_4({global:!0},{globalThis:M4})});Zn();var Mu=Object.defineProperty,U4=Object.getOwnPropertyDescriptor,Uu=Object.getOwnPropertyNames,J4=Object.prototype.hasOwnProperty,Qn=(d,b)=>function(){return d&&(b=(0,d[Uu(d)[0]])(d=0)),b},l2=(d,b)=>function(){return b||(0,d[Uu(d)[0]])((b={exports:{}}).exports,b),b.exports},X4=(d,b)=>{for(var r in b)Mu(d,r,{get:b[r],enumerable:!0})},z4=(d,b,r,f)=>{if(b&&typeof b=="object"||typeof b=="function")for(let E of Uu(b))!J4.call(d,E)&&E!==r&&Mu(d,E,{get:()=>b[E],enumerable:!(f=U4(b,E))||f.enumerable});return d},H4=d=>z4(Mu({},"__esModule",{value:!0}),d),t2=Qn({""(){}}),Gn=l2({"src/common/parser-create-error.js"(d,b){"use strict";t2();function r(f,E){let T=new SyntaxError(f+" ("+E.start.line+":"+E.start.column+")");return T.loc=E,T}b.exports=r}}),K4=l2({"src/utils/try-combinations.js"(d,b){"use strict";t2();function r(){let f;for(var E=arguments.length,T=new Array(E),q=0;q_u,arch:()=>W4,cpus:()=>o0,default:()=>a0,endianness:()=>pn,freemem:()=>n0,getNetworkInterfaces:()=>s0,hostname:()=>u0,loadavg:()=>e0,networkInterfaces:()=>c0,platform:()=>Y4,release:()=>f0,tmpDir:()=>Vu,tmpdir:()=>ju,totalmem:()=>t0,type:()=>l0,uptime:()=>i0});function pn(){if(typeof L1>"u"){var d=new ArrayBuffer(2),b=new Uint8Array(d),r=new Uint16Array(d);if(b[0]=1,b[1]=2,r[0]===258)L1="BE";else if(r[0]===513)L1="LE";else throw new Error("unable to figure out endianess")}return L1}function u0(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function e0(){return[]}function i0(){return 0}function n0(){return Number.MAX_VALUE}function t0(){return Number.MAX_VALUE}function o0(){return[]}function l0(){return"Browser"}function f0(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function c0(){}function s0(){}function W4(){return"javascript"}function Y4(){return"browser"}function Vu(){return"/tmp"}var L1,ju,_u,a0,$4=Qn({"node-modules-polyfills:os"(){t2(),ju=Vu,_u=` +`,a0={EOL:_u,tmpdir:ju,tmpDir:Vu,networkInterfaces:c0,getNetworkInterfaces:s0,release:f0,type:l0,cpus:o0,totalmem:t0,freemem:n0,uptime:i0,loadavg:e0,hostname:u0,endianness:pn}}}),Z4=l2({"node-modules-polyfills-commonjs:os"(d,b){t2();var r=($4(),H4(xn));if(r&&r.default){b.exports=r.default;for(let f in r)b.exports[f]=r[f]}else r&&(b.exports=r)}}),Q4=l2({"node_modules/detect-newline/index.js"(d,b){"use strict";t2();var r=f=>{if(typeof f!="string")throw new TypeError("Expected a string");let E=f.match(/(?:\r?\n)/g)||[];if(E.length===0)return;let T=E.filter(F=>F===`\r +`).length,q=E.length-T;return T>q?`\r +`:` +`};b.exports=r,b.exports.graceful=f=>typeof f=="string"&&r(f)||` +`}}),G4=l2({"node_modules/jest-docblock/build/index.js"(d){"use strict";t2(),Object.defineProperty(d,"__esModule",{value:!0}),d.extract=H,d.parse=u2,d.parseWithComments=V,d.print=z,d.strip=S;function b(){let I=Z4();return b=function(){return I},I}function r(){let I=f(Q4());return r=function(){return I},I}function f(I){return I&&I.__esModule?I:{default:I}}var E=/\*\/$/,T=/^\/\*\*/,q=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,F=/(^|\s+)\/\/([^\r\n]*)/g,k=/^(\r?\n)+/,W=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,X=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,U=/(\r?\n|^) *\* ?/g,Y=[];function H(I){let e2=I.match(q);return e2?e2[0].trimLeft():""}function S(I){let e2=I.match(q);return e2&&e2[0]?I.substring(e2[0].length):I}function u2(I){return V(I).pragmas}function V(I){let e2=(0,r().default)(I)||b().EOL;I=I.replace(T,"").replace(E,"").replace(U,"$1");let m2="";for(;m2!==I;)m2=I,I=I.replace(W,"".concat(e2,"$1 $2").concat(e2));I=I.replace(k,"").trimRight();let c2=Object.create(null),R2=I.replace(X,"").replace(k,"").trimRight(),s2;for(;s2=X.exec(I);){let N2=s2[2].replace(F,"");typeof c2[s2[1]]=="string"||Array.isArray(c2[s2[1]])?c2[s2[1]]=Y.concat(c2[s2[1]],N2):c2[s2[1]]=N2}return{comments:R2,pragmas:c2}}function z(I){let{comments:e2="",pragmas:m2={}}=I,c2=(0,r().default)(e2)||b().EOL,R2="/**",s2=" *",N2=" */",w2=Object.keys(m2),O1=w2.map(g2=>$(g2,m2[g2])).reduce((g2,n1)=>g2.concat(n1),[]).map(g2=>s2+" "+g2+c2).join("");if(!e2){if(w2.length===0)return"";if(w2.length===1&&!Array.isArray(m2[w2[0]])){let g2=m2[w2[0]];return"".concat(R2," ").concat($(w2[0],g2)[0]).concat(N2)}}let I1=e2.split(c2).map(g2=>"".concat(s2," ").concat(g2)).join(c2)+c2;return R2+c2+(e2?I1:"")+(e2&&w2.length?s2+c2:"")+O1+N2}function $(I,e2){return Y.concat(e2).map(m2=>"@".concat(I," ").concat(m2).trim())}}}),x4=l2({"src/common/end-of-line.js"(d,b){"use strict";t2();function r(q){let F=q.indexOf("\r");return F>=0?q.charAt(F+1)===` +`?"crlf":"cr":"lf"}function f(q){switch(q){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function E(q,F){let k;switch(F){case` +`:k=/\n/g;break;case"\r":k=/\r/g;break;case`\r +`:k=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(F),"."))}let W=q.match(k);return W?W.length:0}function T(q){return q.replace(/\r\n?/g,` +`)}b.exports={guessEndOfLine:r,convertEndOfLineToChars:f,countEndOfLineChars:E,normalizeEndOfLine:T}}}),p4=l2({"src/language-js/utils/get-shebang.js"(d,b){"use strict";t2();function r(f){if(!f.startsWith("#!"))return"";let E=f.indexOf(` +`);return E===-1?f:f.slice(0,E)}b.exports=r}}),u3=l2({"src/language-js/pragma.js"(d,b){"use strict";t2();var{parseWithComments:r,strip:f,extract:E,print:T}=G4(),{normalizeEndOfLine:q}=x4(),F=p4();function k(U){let Y=F(U);Y&&(U=U.slice(Y.length+1));let H=E(U),{pragmas:S,comments:u2}=r(H);return{shebang:Y,text:U,pragmas:S,comments:u2}}function W(U){let Y=Object.keys(k(U).pragmas);return Y.includes("prettier")||Y.includes("format")}function X(U){let{shebang:Y,text:H,pragmas:S,comments:u2}=k(U),V=f(H),z=T({pragmas:Object.assign({format:""},S),comments:u2.trimStart()});return(Y?"".concat(Y,` +`):"")+q(z)+(V.startsWith(` +`)?` +`:` + +`)+V}b.exports={hasPragma:W,insertPragma:X}}}),e3=l2({"src/utils/is-non-empty-array.js"(d,b){"use strict";t2();function r(f){return Array.isArray(f)&&f.length>0}b.exports=r}}),d0=l2({"src/language-js/loc.js"(d,b){"use strict";t2();var r=e3();function f(k,W){let{ignoreDecorators:X}=W||{};if(!X){let U=k.declaration&&k.declaration.decorators||k.decorators;if(r(U))return f(U[0])}return k.range?k.range[0]:k.start}function E(k){return k.range?k.range[1]:k.end}function T(k,W){let X=f(k);return Number.isInteger(X)&&X===f(W)}function q(k,W){let X=E(k);return Number.isInteger(X)&&X===E(W)}function F(k,W){return T(k,W)&&q(k,W)}b.exports={locStart:f,locEnd:E,hasSameLocStart:T,hasSameLoc:F}}}),i3=l2({"src/language-js/parse/utils/create-parser.js"(d,b){"use strict";t2();var{hasPragma:r}=u3(),{locStart:f,locEnd:E}=d0();function T(q){return q=typeof q=="function"?{parse:q}:q,Object.assign({astFormat:"estree",hasPragma:r,locStart:f,locEnd:E},q)}b.exports=T}}),n3=l2({"src/language-js/utils/is-ts-keyword-type.js"(d,b){"use strict";t2();function r(f){let{type:E}=f;return E.startsWith("TS")&&E.endsWith("Keyword")}b.exports=r}}),t3=l2({"src/language-js/utils/is-block-comment.js"(d,b){"use strict";t2();var r=new Set(["Block","CommentBlock","MultiLine"]),f=E=>r.has(E==null?void 0:E.type);b.exports=f}}),o3=l2({"src/language-js/utils/is-type-cast-comment.js"(d,b){"use strict";t2();var r=t3();function f(E){return r(E)&&E.value[0]==="*"&&/@type\b/.test(E.value)}b.exports=f}}),l3=l2({"src/utils/get-last.js"(d,b){"use strict";t2();var r=f=>f[f.length-1];b.exports=r}}),g0=l2({"src/language-js/parse/postprocess/visit-node.js"(d,b){"use strict";t2();function r(f,E){if(Array.isArray(f)){for(let T=0;T{let H=W.get(Y);return!H||!U.includes(H)}))&&f(k,"Leading decorators must be attached to a class declaration")}function T(F,k){F.kind!==167||F.modifiers&&!F.modifiers.some(U=>U.kind===126)||F.initializer&&k.value===null&&f(k,"Abstract property cannot have an initializer")}function q(F,k){let{esTreeNodeToTSNodeMap:W,tsNodeToESTreeNodeMap:X}=k.tsParseResult;r(F,U=>{let Y=W.get(U);if(!Y)return;let H=X.get(Y);H===U&&(E(Y,H,X),T(Y,H))})}b.exports={throwErrorForInvalidNodes:q}}}),c3=l2({"src/language-js/parse/postprocess/index.js"(d,b){"use strict";t2();var{locStart:r,locEnd:f}=d0(),E=n3(),T=o3(),q=l3(),F=g0(),{throwErrorForInvalidNodes:k}=f3(),W=h0();function X(S,u2){if(u2.parser==="typescript"&&/@|abstract/.test(u2.originalText)&&k(S,u2),u2.parser!=="typescript"&&u2.parser!=="flow"&&u2.parser!=="acorn"&&u2.parser!=="espree"&&u2.parser!=="meriyah"){let z=new Set;S=F(S,$=>{$.leadingComments&&$.leadingComments.some(T)&&z.add(r($))}),S=F(S,$=>{if($.type==="ParenthesizedExpression"){let{expression:I}=$;if(I.type==="TypeCastExpression")return I.range=$.range,I;let e2=r($);if(!z.has(e2))return I.extra=Object.assign(Object.assign({},I.extra),{},{parenthesized:!0}),I}})}return S=F(S,z=>{switch(z.type){case"ChainExpression":return U(z.expression);case"LogicalExpression":{if(Y(z))return H(z);break}case"VariableDeclaration":{let $=q(z.declarations);$&&$.init&&V(z,$);break}case"TSParenthesizedType":return E(z.typeAnnotation)||z.typeAnnotation.type==="TSThisType"||(z.typeAnnotation.range=[r(z),f(z)]),z.typeAnnotation;case"TSTypeParameter":if(typeof z.name=="string"){let $=r(z);z.name={type:"Identifier",name:z.name,range:[$,$+z.name.length]}}break;case"ObjectExpression":if(u2.parser==="typescript"){let $=z.properties.find(I=>I.type==="Property"&&I.value.type==="TSEmptyBodyFunctionExpression");$&&W($.value,"Unexpected token.")}break;case"SequenceExpression":{let $=q(z.expressions);z.range=[r(z),Math.min(f($),f(z))];break}case"TopicReference":u2.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:$}=z;if(u2.parser==="meriyah"&&$&&$.type==="Identifier"){let I=u2.originalText.slice(r($),f($));(I.startsWith('"')||I.startsWith("'"))&&(z.exported=Object.assign(Object.assign({},z.exported),{},{type:"Literal",value:z.exported.name,raw:I}))}break}}}),S;function V(z,$){u2.originalText[f($)]!==";"&&(z.range=[r(z),f($)])}}function U(S){switch(S.type){case"CallExpression":S.type="OptionalCallExpression",S.callee=U(S.callee);break;case"MemberExpression":S.type="OptionalMemberExpression",S.object=U(S.object);break;case"TSNonNullExpression":S.expression=U(S.expression);break}return S}function Y(S){return S.type==="LogicalExpression"&&S.right.type==="LogicalExpression"&&S.operator===S.right.operator}function H(S){return Y(S)?H({type:"LogicalExpression",operator:S.operator,left:H({type:"LogicalExpression",operator:S.operator,left:S.left,right:S.right.left,range:[r(S.left),f(S.right.left)]}),right:S.right.right,range:[r(S),f(S)]}):S}b.exports=X}}),s3=l2({"node_modules/meriyah/dist/meriyah.cjs"(d){"use strict";t2(),Object.defineProperty(d,"__esModule",{value:!0});var b={[0]:"Unexpected token",[28]:"Unexpected token: '%0'",[1]:"Octal escape sequences are not allowed in strict mode",[2]:"Octal escape sequences are not allowed in template strings",[3]:"Unexpected token `#`",[4]:"Illegal Unicode escape sequence",[5]:"Invalid code point %0",[6]:"Invalid hexadecimal escape sequence",[8]:"Octal literals are not allowed in strict mode",[7]:"Decimal integer literals with a leading zero are forbidden in strict mode",[9]:"Expected number in radix %0",[145]:"Invalid left-hand side assignment to a destructible right-hand side",[10]:"Non-number found after exponent indicator",[11]:"Invalid BigIntLiteral",[12]:"No identifiers allowed directly after numeric literal",[13]:"Escapes \\8 or \\9 are not syntactically valid escapes",[14]:"Unterminated string literal",[15]:"Unterminated template literal",[16]:"Multiline comment was not closed properly",[17]:"The identifier contained dynamic unicode escape that was not closed",[18]:"Illegal character '%0'",[19]:"Missing hexadecimal digits",[20]:"Invalid implicit octal",[21]:"Invalid line break in string literal",[22]:"Only unicode escapes are legal in identifier names",[23]:"Expected '%0'",[24]:"Invalid left-hand side in assignment",[25]:"Invalid left-hand side in async arrow",[26]:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',[27]:"Member access on super must be in a method",[29]:"Await expression not allowed in formal parameter",[30]:"Yield expression not allowed in formal parameter",[92]:"Unexpected token: 'escaped keyword'",[31]:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",[119]:"Async functions can only be declared at the top level or inside a block",[32]:"Unterminated regular expression",[33]:"Unexpected regular expression flag",[34]:"Duplicate regular expression flag '%0'",[35]:"%0 functions must have exactly %1 argument%2",[36]:"Setter function argument must not be a rest parameter",[37]:"%0 declaration must have a name in this context",[38]:"Function name may not contain any reserved words or be eval or arguments in strict mode",[39]:"The rest operator is missing an argument",[40]:"A getter cannot be a generator",[41]:"A computed property name must be followed by a colon or paren",[130]:"Object literal keys that are strings or numbers must be a method or have a colon",[43]:"Found `* async x(){}` but this should be `async * x(){}`",[42]:"Getters and setters can not be generators",[44]:"'%0' can not be generator method",[45]:"No line break is allowed after '=>'",[46]:"The left-hand side of the arrow can only be destructed through assignment",[47]:"The binding declaration is not destructible",[48]:"Async arrow can not be followed by new expression",[49]:"Classes may not have a static property named 'prototype'",[50]:"Class constructor may not be a %0",[51]:"Duplicate constructor method in class",[52]:"Invalid increment/decrement operand",[53]:"Invalid use of `new` keyword on an increment/decrement expression",[54]:"`=>` is an invalid assignment target",[55]:"Rest element may not have a trailing comma",[56]:"Missing initializer in %0 declaration",[57]:"'for-%0' loop head declarations can not have an initializer",[58]:"Invalid left-hand side in for-%0 loop: Must have a single binding",[59]:"Invalid shorthand property initializer",[60]:"Property name __proto__ appears more than once in object literal",[61]:"Let is disallowed as a lexically bound name",[62]:"Invalid use of '%0' inside new expression",[63]:"Illegal 'use strict' directive in function with non-simple parameter list",[64]:'Identifier "let" disallowed as left-hand side expression in strict mode',[65]:"Illegal continue statement",[66]:"Illegal break statement",[67]:"Cannot have `let[...]` as a var name in strict mode",[68]:"Invalid destructuring assignment target",[69]:"Rest parameter may not have a default initializer",[70]:"The rest argument must the be last parameter",[71]:"Invalid rest argument",[73]:"In strict mode code, functions can only be declared at top level or inside a block",[74]:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",[75]:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",[76]:"Class declaration can't appear in single-statement context",[77]:"Invalid left-hand side in for-%0",[78]:"Invalid assignment in for-%0",[79]:"for await (... of ...) is only valid in async functions and async generators",[80]:"The first token after the template expression should be a continuation of the template",[82]:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",[81]:"`let \n [` is a restricted production at the start of a statement",[83]:"Catch clause requires exactly one parameter, not more (and no trailing comma)",[84]:"Catch clause parameter does not support default values",[85]:"Missing catch or finally after try",[86]:"More than one default clause in switch statement",[87]:"Illegal newline after throw",[88]:"Strict mode code may not include a with statement",[89]:"Illegal return statement",[90]:"The left hand side of the for-header binding declaration is not destructible",[91]:"new.target only allowed within functions",[93]:"'#' not followed by identifier",[99]:"Invalid keyword",[98]:"Can not use 'let' as a class name",[97]:"'A lexical declaration can't define a 'let' binding",[96]:"Can not use `let` as variable name in strict mode",[94]:"'%0' may not be used as an identifier in this context",[95]:"Await is only valid in async functions",[100]:"The %0 keyword can only be used with the module goal",[101]:"Unicode codepoint must not be greater than 0x10FFFF",[102]:"%0 source must be string",[103]:"Only a identifier can be used to indicate alias",[104]:"Only '*' or '{...}' can be imported after default",[105]:"Trailing decorator may be followed by method",[106]:"Decorators can't be used with a constructor",[108]:"HTML comments are only allowed with web compatibility (Annex B)",[109]:"The identifier 'let' must not be in expression position in strict mode",[110]:"Cannot assign to `eval` and `arguments` in strict mode",[111]:"The left-hand side of a for-of loop may not start with 'let'",[112]:"Block body arrows can not be immediately invoked without a group",[113]:"Block body arrows can not be immediately accessed without a group",[114]:"Unexpected strict mode reserved word",[115]:"Unexpected eval or arguments in strict mode",[116]:"Decorators must not be followed by a semicolon",[117]:"Calling delete on expression not allowed in strict mode",[118]:"Pattern can not have a tail",[120]:"Can not have a `yield` expression on the left side of a ternary",[121]:"An arrow function can not have a postfix update operator",[122]:"Invalid object literal key character after generator star",[123]:"Private fields can not be deleted",[125]:"Classes may not have a field called constructor",[124]:"Classes may not have a private element named constructor",[126]:"A class field initializer may not contain arguments",[127]:"Generators can only be declared at the top level or inside a block",[128]:"Async methods are a restricted production and cannot have a newline following it",[129]:"Unexpected character after object literal property name",[131]:"Invalid key token",[132]:"Label '%0' has already been declared",[133]:"continue statement must be nested within an iteration statement",[134]:"Undefined label '%0'",[135]:"Trailing comma is disallowed inside import(...) arguments",[136]:"import() requires exactly one argument",[137]:"Cannot use new with import(...)",[138]:"... is not allowed in import()",[139]:"Expected '=>'",[140]:"Duplicate binding '%0'",[141]:"Cannot export a duplicate name '%0'",[144]:"Duplicate %0 for-binding",[142]:"Exported binding '%0' needs to refer to a top-level declared variable",[143]:"Unexpected private field",[147]:"Numeric separators are not allowed at the end of numeric literals",[146]:"Only one underscore is allowed as numeric separator",[148]:"JSX value should be either an expression or a quoted JSX text",[149]:"Expected corresponding JSX closing tag for %0",[150]:"Adjacent JSX elements must be wrapped in an enclosing tag",[151]:"JSX attributes must only be assigned a non-empty 'expression'",[152]:"'%0' has already been declared",[153]:"'%0' shadowed a catch clause binding",[154]:"Dot property must be an identifier",[155]:"Encountered invalid input after spread/rest argument",[156]:"Catch without try",[157]:"Finally without try",[158]:"Expected corresponding closing tag for JSX fragment",[159]:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",[160]:"Invalid tagged template on optional chain",[161]:"Invalid optional chain from super property",[162]:"Invalid optional chain from new expression",[163]:'Cannot use "import.meta" outside a module',[164]:"Leading decorators must be attached to a class declaration"},r=class extends SyntaxError{constructor(u,e,i,n){for(var t=arguments.length,o=new Array(t>4?t-4:0),l=4;lo[h]);super("".concat(c)),this.index=u,this.line=e,this.column=i,this.description=c,this.loc={line:e,column:i}}};function f(u,e){for(var i=arguments.length,n=new Array(i>2?i-2:0),t=2;t4?t-4:0),l=4;l{let i=new Uint32Array(104448),n=0,t=0;for(;n<3540;){let o=u[n++];if(o<0)t-=o;else{let l=u[n++];o&2&&(l=e[l]),o&1?i.fill(l,t,t+=u[n++]):i[t++]=l}}return i})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function k(u){return u.column++,u.currentChar=u.source.charCodeAt(++u.index)}function W(u,e){if((e&64512)!==55296)return 0;let i=u.source.charCodeAt(u.index+1);return(i&64512)!==56320?0:(e=u.currentChar=65536+((e&1023)<<10)+(i&1023),(F[(e>>>5)+0]>>>e&31&1)===0&&f(u,18,H(e)),u.index++,u.column++,1)}function X(u,e){u.currentChar=u.source.charCodeAt(++u.index),u.flags|=1,(e&4)===0&&(u.column=0,u.line++)}function U(u){u.flags|=1,u.currentChar=u.source.charCodeAt(++u.index),u.column=0,u.line++}function Y(u){return u===160||u===65279||u===133||u===5760||u>=8192&&u<=8203||u===8239||u===8287||u===12288||u===8201||u===65519}function H(u){return u<=65535?String.fromCharCode(u):String.fromCharCode(u>>>10)+String.fromCharCode(u&1023)}function S(u){return u<65?u-48:u-65+10&15}function u2(u){switch(u){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return(u&143360)===143360?"Identifier":(u&4096)===4096?"Keyword":"Punctuator"}}var V=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],z=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],$=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function I(u){return u<=127?z[u]:F[(u>>>5)+34816]>>>u&31&1}function e2(u){return u<=127?$[u]:F[(u>>>5)+0]>>>u&31&1||u===8204||u===8205}var m2=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function c2(u){let e=u.source;u.currentChar===35&&e.charCodeAt(u.index+1)===33&&(k(u),k(u),s2(u,e,0,4,u.tokenPos,u.linePos,u.colPos))}function R2(u,e,i,n,t,o,l,c){return n&2048&&f(u,0),s2(u,e,i,t,o,l,c)}function s2(u,e,i,n,t,o,l){let{index:c}=u;for(u.tokenPos=u.index,u.linePos=u.line,u.colPos=u.column;u.index=u.source.length)return f(u,32)}let t=u.index-1,o=0,l=u.currentChar,{index:c}=u;for(;e2(l);){switch(l){case 103:o&2&&f(u,34,"g"),o|=2;break;case 105:o&1&&f(u,34,"i"),o|=1;break;case 109:o&4&&f(u,34,"m"),o|=4;break;case 117:o&16&&f(u,34,"g"),o|=16;break;case 121:o&8&&f(u,34,"y"),o|=8;break;case 115:o&32&&f(u,34,"s"),o|=32;break;default:f(u,33)}l=k(u)}let s=u.source.slice(c,u.index),h=u.source.slice(i,t);return u.tokenRegExp={pattern:h,flags:s},e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),u.tokenValue=O1(u,h,s),65540}function O1(u,e,i){try{return new RegExp(e,i)}catch{f(u,32)}}function I1(u,e,i){let{index:n}=u,t="",o=k(u),l=u.index;for(;(V[o]&8)===0;){if(o===i)return t+=u.source.slice(l,u.index),k(u),e&512&&(u.tokenRaw=u.source.slice(n,u.index)),u.tokenValue=t,134283267;if((o&8)===8&&o===92){if(t+=u.source.slice(l,u.index),o=k(u),o<127||o===8232||o===8233){let c=g2(u,e,o);c>=0?t+=H(c):n1(u,c,0)}else t+=H(o);l=u.index+1}u.index>=u.end&&f(u,14),o=k(u)}f(u,14)}function g2(u,e,i){switch(i){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(u.index1114111)return-5;return u.currentChar<1||u.currentChar!==125?-4:t}else{if((V[n]&64)===0)return-4;let t=u.source.charCodeAt(u.index+1);if((V[t]&64)===0)return-4;let o=u.source.charCodeAt(u.index+2);if((V[o]&64)===0)return-4;let l=u.source.charCodeAt(u.index+3);return(V[l]&64)===0?-4:(u.index+=3,u.column+=3,u.currentChar=u.source.charCodeAt(u.index),S(n)<<12|S(t)<<8|S(o)<<4|S(l))}}case 56:case 57:if((e&256)===0)return-3;default:return i}}function n1(u,e,i){switch(e){case-1:return;case-2:f(u,i?2:1);case-3:f(u,13);case-4:f(u,6);case-5:f(u,101)}}function Ju(u,e){let{index:i}=u,n=67174409,t="",o=k(u);for(;o!==96;){if(o===36&&u.source.charCodeAt(u.index+1)===123){k(u),n=67174408;break}else if((o&8)===8&&o===92)if(o=k(u),o>126)t+=H(o);else{let l=g2(u,e|1024,o);if(l>=0)t+=H(l);else if(l!==-1&&e&65536){t=void 0,o=m0(u,o),o<0&&(n=67174408);break}else n1(u,l,1)}else u.index=u.end&&f(u,15),o=k(u)}return k(u),u.tokenValue=t,u.tokenRaw=u.source.slice(i+1,u.index-(n===67174409?1:2)),n}function m0(u,e){for(;e!==96;){switch(e){case 36:{let i=u.index+1;if(i=u.end&&f(u,15),e=k(u)}return e}function b0(u,e){return u.index>=u.end&&f(u,0),u.index--,u.column--,Ju(u,e)}function Xu(u,e,i){let n=u.currentChar,t=0,o=9,l=i&64?0:1,c=0,s=0;if(i&64)t="."+t1(u,n),n=u.currentChar,n===110&&f(u,11);else{if(n===48)if(n=k(u),(n|32)===120){for(i=136,n=k(u);V[n]&4160;){if(n===95){s||f(u,146),s=0,n=k(u);continue}s=1,t=t*16+S(n),c++,n=k(u)}(c<1||!s)&&f(u,c<1?19:147)}else if((n|32)===111){for(i=132,n=k(u);V[n]&4128;){if(n===95){s||f(u,146),s=0,n=k(u);continue}s=1,t=t*8+(n-48),c++,n=k(u)}(c<1||!s)&&f(u,c<1?0:147)}else if((n|32)===98){for(i=130,n=k(u);V[n]&4224;){if(n===95){s||f(u,146),s=0,n=k(u);continue}s=1,t=t*2+(n-48),c++,n=k(u)}(c<1||!s)&&f(u,c<1?0:147)}else if(V[n]&32)for(e&1024&&f(u,1),i=1;V[n]&16;){if(V[n]&512){i=32,l=0;break}t=t*8+(n-48),n=k(u)}else V[n]&512?(e&1024&&f(u,1),u.flags|=64,i=32):n===95&&f(u,0);if(i&48){if(l){for(;o>=0&&V[n]&4112;){if(n===95){n=k(u),(n===95||i&32)&&q(u.index,u.line,u.index+1,146),s=1;continue}s=0,t=10*t+(n-48),n=k(u),--o}if(s&&q(u.index,u.line,u.index+1,147),o>=0&&!I(n)&&n!==46)return u.tokenValue=t,e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283266}t+=t1(u,n),n=u.currentChar,n===46&&(k(u)===95&&f(u,0),i=64,t+="."+t1(u,u.currentChar),n=u.currentChar)}}let h=u.index,m=0;if(n===110&&i&128)m=1,n=k(u);else if((n|32)===101){n=k(u),V[n]&256&&(n=k(u));let{index:g}=u;(V[n]&16)<1&&f(u,10),t+=u.source.substring(h,g)+t1(u,n),n=u.currentChar}return(u.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],zu=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function Hu(u,e,i){for(;$[k(u)];);return u.tokenValue=u.source.slice(u.tokenPos,u.index),u.currentChar!==92&&u.currentChar<126?zu[u.tokenValue]||208897:R1(u,e,0,i)}function k0(u,e){let i=Ku(u);return e2(i)||f(u,4),u.tokenValue=H(i),R1(u,e,1,V[i]&4)}function R1(u,e,i,n){let t=u.index;for(;u.index=2&&o<=11){let l=zu[u.tokenValue];return l===void 0?208897:i?e&1024?l===209008&&(e&4196352)===0?l:l===36972||(l&36864)===36864?122:121:e&1073741824&&(e&8192)===0&&(l&20480)===20480?l:l===241773?e&1073741824?143483:e&2097152?121:l:l===209007&&e&1073741824?143483:(l&36864)===36864||l===209008&&(e&4194304)===0?l:121:l}return 208897}function r0(u){return I(k(u))||f(u,93),131}function Ku(u){return u.source.charCodeAt(u.index+1)!==117&&f(u,4),u.currentChar=u.source.charCodeAt(u.index+=2),v0(u)}function v0(u){let e=0,i=u.currentChar;if(i===123){let l=u.index-2;for(;V[k(u)]&64;)e=e<<4|S(u.currentChar),e>1114111&&q(l,u.line,u.index+1,101);return u.currentChar!==125&&q(l,u.line,u.index-1,6),k(u),e}(V[i]&64)===0&&f(u,6);let n=u.source.charCodeAt(u.index+1);(V[n]&64)===0&&f(u,6);let t=u.source.charCodeAt(u.index+2);(V[t]&64)===0&&f(u,6);let o=u.source.charCodeAt(u.index+3);return(V[o]&64)===0&&f(u,6),e=S(i)<<12|S(n)<<8|S(t)<<4|S(o),u.currentChar=u.source.charCodeAt(u.index+=4),e}var Wu=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function P(u,e){if(u.flags=(u.flags|1)^1,u.startPos=u.index,u.startColumn=u.column,u.startLine=u.line,u.token=Yu(u,e,0),u.onToken&&u.token!==1048576){let i={start:{line:u.linePos,column:u.colPos},end:{line:u.line,column:u.column}};u.onToken(u2(u.token),u.tokenPos,u.index,i)}}function Yu(u,e,i){let n=u.index===0,t=u.source,o=u.index,l=u.line,c=u.column;for(;u.index=u.end)return 8457014;let a=u.currentChar;return a===61?(k(u),4194340):a!==42?8457014:k(u)!==61?8457273:(k(u),4194337)}case 8455497:return k(u)!==61?8455497:(k(u),4194343);case 25233970:{k(u);let a=u.currentChar;return a===43?(k(u),33619995):a===61?(k(u),4194338):25233970}case 25233971:{k(u);let a=u.currentChar;if(a===45){if(k(u),(i&1||n)&&u.currentChar===62){(e&256)===0&&f(u,108),k(u),i=R2(u,t,i,e,3,o,l,c),o=u.tokenPos,l=u.linePos,c=u.colPos;continue}return 33619996}return a===61?(k(u),4194339):25233971}case 8457016:{if(k(u),u.index=48&&g<=57)return Xu(u,e,80);if(g===46){let a=u.index+1;if(a=48&&a<=57)))return k(u),67108991}return 22}}}else{if((s^8232)<=1){i=i&-5|1,U(u);continue}if((s&64512)===55296||(F[(s>>>5)+34816]>>>s&31&1)!==0)return(s&64512)===56320&&(s=(s&1023)<<10|s&1023|65536,(F[(s>>>5)+0]>>>s&31&1)===0&&f(u,18,H(s)),u.index++,u.currentChar=s),u.column++,u.tokenValue="",R1(u,e,0,0);if(Y(s)){k(u);continue}f(u,18,H(s))}}return 1048576}var y0={AElig:"\xC6",AMP:"&",Aacute:"\xC1",Abreve:"\u0102",Acirc:"\xC2",Acy:"\u0410",Afr:"\u{1D504}",Agrave:"\xC0",Alpha:"\u0391",Amacr:"\u0100",And:"\u2A53",Aogon:"\u0104",Aopf:"\u{1D538}",ApplyFunction:"\u2061",Aring:"\xC5",Ascr:"\u{1D49C}",Assign:"\u2254",Atilde:"\xC3",Auml:"\xC4",Backslash:"\u2216",Barv:"\u2AE7",Barwed:"\u2306",Bcy:"\u0411",Because:"\u2235",Bernoullis:"\u212C",Beta:"\u0392",Bfr:"\u{1D505}",Bopf:"\u{1D539}",Breve:"\u02D8",Bscr:"\u212C",Bumpeq:"\u224E",CHcy:"\u0427",COPY:"\xA9",Cacute:"\u0106",Cap:"\u22D2",CapitalDifferentialD:"\u2145",Cayleys:"\u212D",Ccaron:"\u010C",Ccedil:"\xC7",Ccirc:"\u0108",Cconint:"\u2230",Cdot:"\u010A",Cedilla:"\xB8",CenterDot:"\xB7",Cfr:"\u212D",Chi:"\u03A7",CircleDot:"\u2299",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",Colon:"\u2237",Colone:"\u2A74",Congruent:"\u2261",Conint:"\u222F",ContourIntegral:"\u222E",Copf:"\u2102",Coproduct:"\u2210",CounterClockwiseContourIntegral:"\u2233",Cross:"\u2A2F",Cscr:"\u{1D49E}",Cup:"\u22D3",CupCap:"\u224D",DD:"\u2145",DDotrahd:"\u2911",DJcy:"\u0402",DScy:"\u0405",DZcy:"\u040F",Dagger:"\u2021",Darr:"\u21A1",Dashv:"\u2AE4",Dcaron:"\u010E",Dcy:"\u0414",Del:"\u2207",Delta:"\u0394",Dfr:"\u{1D507}",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",Diamond:"\u22C4",DifferentialD:"\u2146",Dopf:"\u{1D53B}",Dot:"\xA8",DotDot:"\u20DC",DotEqual:"\u2250",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",Downarrow:"\u21D3",Dscr:"\u{1D49F}",Dstrok:"\u0110",ENG:"\u014A",ETH:"\xD0",Eacute:"\xC9",Ecaron:"\u011A",Ecirc:"\xCA",Ecy:"\u042D",Edot:"\u0116",Efr:"\u{1D508}",Egrave:"\xC8",Element:"\u2208",Emacr:"\u0112",EmptySmallSquare:"\u25FB",EmptyVerySmallSquare:"\u25AB",Eogon:"\u0118",Eopf:"\u{1D53C}",Epsilon:"\u0395",Equal:"\u2A75",EqualTilde:"\u2242",Equilibrium:"\u21CC",Escr:"\u2130",Esim:"\u2A73",Eta:"\u0397",Euml:"\xCB",Exists:"\u2203",ExponentialE:"\u2147",Fcy:"\u0424",Ffr:"\u{1D509}",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",Fopf:"\u{1D53D}",ForAll:"\u2200",Fouriertrf:"\u2131",Fscr:"\u2131",GJcy:"\u0403",GT:">",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xCD",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacute:"\xD3",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslash:"\xD8",Otilde:"\xD5",Otimes:"\u2A37",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acirc:"\xE2",acute:"\xB4",acy:"\u0430",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atilde:"\xE3",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedil:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\u2256",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",eth:"\xF0",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xED",ic:"\u2063",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslash:"\xF8",osol:"\u2298",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",ouml:"\xF6",ovbar:"\u233D",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thorn:"\xFE",tilde:"\u02DC",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"},$u={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function A0(u){return u.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,e=>{if(e.charAt(1)==="#"){let i=e.charAt(2),n=i==="X"||i==="x"?parseInt(e.slice(3),16):parseInt(e.slice(2),10);return P0(n)}return y0[e.slice(1,-1)]||e})}function P0(u){return u>=55296&&u<=57343||u>1114111?"\uFFFD":(u in $u&&(u=$u[u]),String.fromCodePoint(u))}function E0(u,e){return u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.token=V[u.currentChar]&8192?D0(u,e):Yu(u,e,0),u.token}function D0(u,e){let i=u.currentChar,n=k(u),t=u.index;for(;n!==i;)u.index>=u.end&&f(u,14),n=k(u);return n!==i&&f(u,14),u.tokenValue=u.source.slice(t,u.index),k(u),e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283267}function V2(u,e){if(u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.index>=u.end)return u.token=1048576;switch(Wu[u.source.charCodeAt(u.index)]){case 8456258:{k(u),u.currentChar===47?(k(u),u.token=25):u.token=8456258;break}case 2162700:{k(u),u.token=2162700;break}default:{let n=0;for(;u.index2?o-2:0),c=2;c1&&t&32&&u.token&262144&&f(u,58,x[u.token&255]),l}function ne(u,e,i,n,t){let{token:o,tokenPos:l,linePos:c,colPos:s}=u,h=null,m=ye(u,e,i,n,t,l,c,s);return u.token===1077936157?(P(u,e|32768),h=G(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),(t&32||(o&2097152)<1)&&(u.token===274549||u.token===8738868&&(o&2097152||(n&4)<1||e&1024))&&T(l,u.line,u.index-3,57,u.token===274549?"of":"in")):(n&16||(o&2097152)>0)&&(u.token&262144)!==262144&&f(u,56,n&16?"const":"destructuring"),v(u,e,l,c,s,{type:"VariableDeclarator",id:m,init:h})}function $0(u,e,i,n,t,o,l){P(u,e);let c=(e&4194304)>0&&J(u,e,209008);w(u,e|32768,67174411),i&&(i=o2(i,1));let s=null,h=null,m=0,g=null,a=u.token===86090||u.token===241739||u.token===86092,y,{token:C,tokenPos:D,linePos:B,colPos:O}=u;if(a?C===241739?(g=K(u,e,0),u.token&2240512?(u.token===8738868?e&1024&&f(u,64):g=v(u,e,D,B,O,{type:"VariableDeclaration",kind:"let",declarations:K2(u,e|134217728,i,8,32)}),u.assignable=1):e&1024?f(u,64):(a=!1,u.assignable=1,g=Z(u,e,g,0,0,D,B,O),u.token===274549&&f(u,111))):(P(u,e),g=v(u,e,D,B,O,C===86090?{type:"VariableDeclaration",kind:"var",declarations:K2(u,e|134217728,i,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:K2(u,e|134217728,i,16,32)}),u.assignable=1):C===1074790417?c&&f(u,79):(C&2097152)===2097152?(g=C===2162700?r2(u,e,void 0,1,0,0,2,32,D,B,O):k2(u,e,void 0,1,0,0,2,32,D,B,O),m=u.destructible,e&256&&m&64&&f(u,60),u.assignable=m&16?2:1,g=Z(u,e|134217728,g,0,0,u.tokenPos,u.linePos,u.colPos)):g=b2(u,e|134217728,1,0,1,D,B,O),(u.token&262144)===262144){if(u.token===274549){u.assignable&2&&f(u,77,c?"await":"of"),v2(u,g),P(u,e|32768),y=G(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let R=p2(u,e,i,n);return v(u,e,t,o,l,{type:"ForOfStatement",left:g,right:y,body:R,await:c})}u.assignable&2&&f(u,77,"in"),v2(u,g),P(u,e|32768),c&&f(u,79),y=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let i2=p2(u,e,i,n);return v(u,e,t,o,l,{type:"ForInStatement",body:i2,left:g,right:y})}c&&f(u,79),a||(m&8&&u.token!==1077936157&&f(u,77,"loop"),g=p(u,e|134217728,0,0,D,B,O,g)),u.token===18&&(g=S2(u,e,0,u.tokenPos,u.linePos,u.colPos,g)),w(u,e|32768,1074790417),u.token!==1074790417&&(s=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,1074790417),u.token!==16&&(h=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,16);let j=p2(u,e,i,n);return v(u,e,t,o,l,{type:"ForStatement",init:g,test:s,update:h,body:j})}function te(u,e,i){return _1(e,u.token)||f(u,114),(u.token&537079808)===537079808&&f(u,115),i&&B2(u,e,i,u.tokenValue,8,0),K(u,e,0)}function Z0(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;P(u,e);let l=null,{tokenPos:c,linePos:s,colPos:h}=u,m=[];if(u.token===134283267)l=a2(u,e);else{if(u.token&143360){let g=te(u,e,i);if(m=[v(u,e,c,s,h,{type:"ImportDefaultSpecifier",local:g})],J(u,e,18))switch(u.token){case 8457014:m.push(oe(u,e,i));break;case 2162700:le(u,e,i,m);break;default:f(u,104)}}else switch(u.token){case 8457014:m=[oe(u,e,i)];break;case 2162700:le(u,e,i,m);break;case 67174411:return ce(u,e,n,t,o);case 67108877:return fe(u,e,n,t,o);default:f(u,28,x[u.token&255])}l=Q0(u,e)}return d2(u,e|32768),v(u,e,n,t,o,{type:"ImportDeclaration",specifiers:m,source:l})}function oe(u,e,i){let{tokenPos:n,linePos:t,colPos:o}=u;return P(u,e),w(u,e,77934),(u.token&134217728)===134217728&&T(n,u.line,u.index,28,x[u.token&255]),v(u,e,n,t,o,{type:"ImportNamespaceSpecifier",local:te(u,e,i)})}function Q0(u,e){return J(u,e,12404),u.token!==134283267&&f(u,102,"Import"),a2(u,e)}function le(u,e,i,n){for(P(u,e);u.token&143360;){let{token:t,tokenValue:o,tokenPos:l,linePos:c,colPos:s}=u,h=K(u,e,0),m;J(u,e,77934)?((u.token&134217728)===134217728||u.token===18?f(u,103):o1(u,e,16,u.token,0),o=u.tokenValue,m=K(u,e,0)):(o1(u,e,16,t,0),m=h),i&&B2(u,e,i,o,8,0),n.push(v(u,e,l,c,s,{type:"ImportSpecifier",local:m,imported:h})),u.token!==1074790415&&w(u,e,18)}return w(u,e,1074790415),n}function fe(u,e,i,n,t){let o=ae(u,e,v(u,e,i,n,t,{type:"Identifier",name:"import"}),i,n,t);return o=Z(u,e,o,0,0,i,n,t),o=p(u,e,0,0,i,n,t,o),H2(u,e,o,i,n,t)}function ce(u,e,i,n,t){let o=de(u,e,0,i,n,t);return o=Z(u,e,o,0,0,i,n,t),H2(u,e,o,i,n,t)}function G0(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;P(u,e|32768);let l=[],c=null,s=null,h;if(J(u,e|32768,20563)){switch(u.token){case 86106:{c=T2(u,e,i,4,1,1,0,u.tokenPos,u.linePos,u.colPos);break}case 133:case 86096:c=Z1(u,e,i,1,u.tokenPos,u.linePos,u.colPos);break;case 209007:let{tokenPos:m,linePos:g,colPos:a}=u;c=K(u,e,0);let{flags:y}=u;(y&1)<1&&(u.token===86106?c=T2(u,e,i,4,1,1,1,m,g,a):u.token===67174411?(c=$1(u,e,c,1,1,0,y,m,g,a),c=Z(u,e,c,0,0,m,g,a),c=p(u,e,0,0,m,g,a,c)):u.token&143360&&(i&&(i=f1(u,e,u.tokenValue)),c=K(u,e,0),c=u1(u,e,i,[c],1,m,g,a)));break;default:c=G(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),d2(u,e|32768)}return i&&_2(u,"default"),v(u,e,n,t,o,{type:"ExportDefaultDeclaration",declaration:c})}switch(u.token){case 8457014:{P(u,e);let y=null;return J(u,e,77934)&&(i&&_2(u,u.tokenValue),y=K(u,e,0)),w(u,e,12404),u.token!==134283267&&f(u,102,"Export"),s=a2(u,e),d2(u,e|32768),v(u,e,n,t,o,{type:"ExportAllDeclaration",source:s,exported:y})}case 2162700:{P(u,e);let y=[],C=[];for(;u.token&143360;){let{tokenPos:D,tokenValue:B,linePos:O,colPos:j}=u,i2=K(u,e,0),R;u.token===77934?(P(u,e),(u.token&134217728)===134217728&&f(u,103),i&&(y.push(u.tokenValue),C.push(B)),R=K(u,e,0)):(i&&(y.push(u.tokenValue),C.push(u.tokenValue)),R=i2),l.push(v(u,e,D,O,j,{type:"ExportSpecifier",local:i2,exported:R})),u.token!==1074790415&&w(u,e,18)}if(w(u,e,1074790415),J(u,e,12404))u.token!==134283267&&f(u,102,"Export"),s=a2(u,e);else if(i){let D=0,B=y.length;for(;D0)&8738868,m,g;for(u.assignable=2;u.token&8454144&&(m=u.token,g=m&3840,(m&524288&&c&268435456||c&524288&&m&268435456)&&f(u,159),!(g+((m===8457273)<<8)-((h===m)<<12)<=l));)P(u,e|32768),s=v(u,e,n,t,o,{type:m&524288||m&268435456?"LogicalExpression":"BinaryExpression",left:s,right:F2(u,e,i,u.tokenPos,u.linePos,u.colPos,g,m,b2(u,e,0,i,1,u.tokenPos,u.linePos,u.colPos)),operator:x[m&255]});return u.token===1077936157&&f(u,24),s}function x0(u,e,i,n,t,o,l){i||f(u,0);let c=u.token;P(u,e|32768);let s=b2(u,e,0,l,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),e&1024&&c===16863278&&(s.type==="Identifier"?f(u,117):C0(s)&&f(u,123)),u.assignable=2,v(u,e,n,t,o,{type:"UnaryExpression",operator:x[c&255],argument:s,prefix:!0})}function p0(u,e,i,n,t,o,l,c,s,h){let{token:m}=u,g=K(u,e,o),{flags:a}=u;if((a&1)<1){if(u.token===86106)return he(u,e,1,i,c,s,h);if((u.token&143360)===143360)return n||f(u,0),ke(u,e,t,c,s,h)}return!l&&u.token===67174411?$1(u,e,g,t,1,0,a,c,s,h):u.token===10?(M1(u,e,m,1),l&&f(u,48),g1(u,e,u.tokenValue,g,l,t,0,c,s,h)):g}function ut(u,e,i,n,t,o,l){if(i&&(u.destructible|=256),e&2097152){P(u,e|32768),e&8388608&&f(u,30),n||f(u,24),u.token===22&&f(u,120);let c=null,s=!1;return(u.flags&1)<1&&(s=J(u,e|32768,8457014),(u.token&77824||s)&&(c=G(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos))),u.assignable=2,v(u,e,t,o,l,{type:"YieldExpression",argument:c,delegate:s})}return e&1024&&f(u,94,"yield"),Y1(u,e,t,o,l)}function et(u,e,i,n,t,o,l){if(n&&(u.destructible|=128),e&4194304||e&2048&&e&8192){i&&f(u,0),e&8388608&&T(u.index,u.line,u.index,29),P(u,e|32768);let c=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),u.assignable=2,v(u,e,t,o,l,{type:"AwaitExpression",argument:c})}return e&2048&&f(u,95),Y1(u,e,t,o,l)}function a1(u,e,i,n,t,o){let{tokenPos:l,linePos:c,colPos:s}=u;w(u,e|32768,2162700);let h=[],m=e;if(u.token!==1074790415){for(;u.token===134283267;){let{index:g,tokenPos:a,tokenValue:y,token:C}=u,D=a2(u,e);Zu(u,g,a,y)&&(e|=1024,u.flags&128&&T(u.index,u.line,u.tokenPos,63),u.flags&64&&T(u.index,u.line,u.tokenPos,8)),h.push(X1(u,e,D,C,a,u.linePos,u.colPos))}e&1024&&(t&&((t&537079808)===537079808&&f(u,115),(t&36864)===36864&&f(u,38)),u.flags&512&&f(u,115),u.flags&256&&f(u,114)),e&64&&i&&o!==void 0&&(m&1024)<1&&(e&8192)<1&&E(o)}for(u.flags=(u.flags|512|256|64)^832,u.destructible=(u.destructible|256)^256;u.token!==1074790415;)h.push(G2(u,e,i,4,{}));return w(u,n&24?e|32768:e,1074790415),u.flags&=-193,u.token===1077936157&&f(u,24),v(u,e,l,c,s,{type:"BlockStatement",body:h})}function it(u,e,i,n,t){switch(P(u,e),u.token){case 67108991:f(u,161);case 67174411:{(e&524288)<1&&f(u,26),e&16384&&f(u,27),u.assignable=2;break}case 69271571:case 67108877:{(e&262144)<1&&f(u,27),e&16384&&f(u,27),u.assignable=1;break}default:f(u,28,"super")}return v(u,e,i,n,t,{type:"Super"})}function b2(u,e,i,n,t,o,l,c){let s=h2(u,e,2,0,i,0,n,t,o,l,c);return Z(u,e,s,n,0,o,l,c)}function nt(u,e,i,n,t,o){u.assignable&2&&f(u,52);let{token:l}=u;return P(u,e),u.assignable=2,v(u,e,n,t,o,{type:"UpdateExpression",argument:i,operator:x[l&255],prefix:!1})}function Z(u,e,i,n,t,o,l,c){if((u.token&33619968)===33619968&&(u.flags&1)<1)i=nt(u,e,i,o,l,c);else if((u.token&67108864)===67108864){switch(e=(e|134217728)^134217728,u.token){case 67108877:{P(u,(e|1073741824|8192)^8192),u.assignable=1;let s=se(u,e);i=v(u,e,o,l,c,{type:"MemberExpression",object:i,computed:!1,property:s});break}case 69271571:{let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048),P(u,e|32768);let{tokenPos:h,linePos:m,colPos:g}=u,a=f2(u,e,n,1,h,m,g);w(u,e,20),u.assignable=1,i=v(u,e,o,l,c,{type:"MemberExpression",object:i,computed:!0,property:a}),s&&(u.flags|=2048);break}case 67174411:{if((u.flags&1024)===1024)return u.flags=(u.flags|1024)^1024,i;let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048);let h=W1(u,e,n);u.assignable=2,i=v(u,e,o,l,c,{type:"CallExpression",callee:i,arguments:h}),s&&(u.flags|=2048);break}case 67108991:{P(u,(e|1073741824|8192)^8192),u.flags|=2048,u.assignable=2,i=tt(u,e,i,o,l,c);break}default:(u.flags&2048)===2048&&f(u,160),u.assignable=2,i=v(u,e,o,l,c,{type:"TaggedTemplateExpression",tag:i,quasi:u.token===67174408?K1(u,e|65536):H1(u,e,u.tokenPos,u.linePos,u.colPos)})}i=Z(u,e,i,0,1,o,l,c)}return t===0&&(u.flags&2048)===2048&&(u.flags=(u.flags|2048)^2048,i=v(u,e,o,l,c,{type:"ChainExpression",expression:i})),i}function tt(u,e,i,n,t,o){let l=!1,c;if((u.token===69271571||u.token===67174411)&&(u.flags&2048)===2048&&(l=!0,u.flags=(u.flags|2048)^2048),u.token===69271571){P(u,e|32768);let{tokenPos:s,linePos:h,colPos:m}=u,g=f2(u,e,0,1,s,h,m);w(u,e,20),u.assignable=2,c=v(u,e,n,t,o,{type:"MemberExpression",object:i,computed:!0,optional:!0,property:g})}else if(u.token===67174411){let s=W1(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:"CallExpression",callee:i,arguments:s,optional:!0})}else{(u.token&143360)<1&&f(u,154);let s=K(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:"MemberExpression",object:i,computed:!1,optional:!0,property:s})}return l&&(u.flags|=2048),c}function se(u,e){return(u.token&143360)<1&&u.token!==131&&f(u,154),e&1&&u.token===131?k1(u,e,u.tokenPos,u.linePos,u.colPos):K(u,e,0)}function ot(u,e,i,n,t,o,l){i&&f(u,53),n||f(u,0);let{token:c}=u;P(u,e|32768);let s=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.assignable&2&&f(u,52),u.assignable=2,v(u,e,t,o,l,{type:"UpdateExpression",argument:s,operator:x[c&255],prefix:!0})}function h2(u,e,i,n,t,o,l,c,s,h,m){if((u.token&143360)===143360){switch(u.token){case 209008:return et(u,e,n,l,s,h,m);case 241773:return ut(u,e,l,t,s,h,m);case 209007:return p0(u,e,l,c,t,o,n,s,h,m)}let{token:g,tokenValue:a}=u,y=K(u,e|65536,o);return u.token===10?(c||f(u,0),M1(u,e,g,1),g1(u,e,a,y,n,t,0,s,h,m)):(e&16384&&g===537079928&&f(u,126),g===241739&&(e&1024&&f(u,109),i&24&&f(u,97)),u.assignable=e&1024&&(g&537079808)===537079808?2:1,y)}if((u.token&134217728)===134217728)return a2(u,e);switch(u.token){case 33619995:case 33619996:return ot(u,e,n,c,s,h,m);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return x0(u,e,c,s,h,m,l);case 86106:return he(u,e,0,l,s,h,m);case 2162700:return dt(u,e,t?0:1,l,s,h,m);case 69271571:return at(u,e,t?0:1,l,s,h,m);case 67174411:return ht(u,e,t,1,0,s,h,m);case 86021:case 86022:case 86023:return ct(u,e,s,h,m);case 86113:return st(u,e);case 65540:return kt(u,e,s,h,m);case 133:case 86096:return rt(u,e,l,s,h,m);case 86111:return it(u,e,s,h,m);case 67174409:return H1(u,e,s,h,m);case 67174408:return K1(u,e);case 86109:return mt(u,e,l,s,h,m);case 134283389:return ge(u,e,s,h,m);case 131:return k1(u,e,s,h,m);case 86108:return lt(u,e,n,l,s,h,m);case 8456258:if(e&16)return G1(u,e,1,s,h,m);default:if(_1(e,u.token))return Y1(u,e,s,h,m);f(u,28,x[u.token&255])}}function lt(u,e,i,n,t,o,l){let c=K(u,e,0);return u.token===67108877?ae(u,e,c,t,o,l):(i&&f(u,137),c=de(u,e,n,t,o,l),u.assignable=2,Z(u,e,c,n,0,t,o,l))}function ae(u,e,i,n,t,o){return(e&2048)===0&&f(u,163),P(u,e),u.token!==143495&&u.tokenValue!=="meta"&&f(u,28,x[u.token&255]),u.assignable=2,v(u,e,n,t,o,{type:"MetaProperty",meta:i,property:K(u,e,0)})}function de(u,e,i,n,t,o){w(u,e|32768,67174411),u.token===14&&f(u,138);let l=G(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,16),v(u,e,n,t,o,{type:"ImportExpression",source:l})}function ge(u,e,i,n,t){let{tokenRaw:o,tokenValue:l}=u;return P(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:"Literal",value:l,bigint:o.slice(0,-1),raw:o}:{type:"Literal",value:l,bigint:o.slice(0,-1)})}function H1(u,e,i,n,t){u.assignable=2;let{tokenValue:o,tokenRaw:l,tokenPos:c,linePos:s,colPos:h}=u;w(u,e,67174409);let m=[d1(u,e,o,l,c,s,h,!0)];return v(u,e,i,n,t,{type:"TemplateLiteral",expressions:[],quasis:m})}function K1(u,e){e=(e|134217728)^134217728;let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;w(u,e|32768,67174408);let c=[d1(u,e,i,n,t,o,l,!1)],s=[f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)];for(u.token!==1074790415&&f(u,80);(u.token=b0(u,e))!==67174409;){let{tokenValue:h,tokenRaw:m,tokenPos:g,linePos:a,colPos:y}=u;w(u,e|32768,67174408),c.push(d1(u,e,h,m,g,a,y,!1)),s.push(f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),u.token!==1074790415&&f(u,80)}{let{tokenValue:h,tokenRaw:m,tokenPos:g,linePos:a,colPos:y}=u;w(u,e,67174409),c.push(d1(u,e,h,m,g,a,y,!0))}return v(u,e,t,o,l,{type:"TemplateLiteral",expressions:s,quasis:c})}function d1(u,e,i,n,t,o,l,c){let s=v(u,e,t,o,l,{type:"TemplateElement",value:{cooked:i,raw:n},tail:c}),h=c?1:2;return e&2&&(s.start+=1,s.range[0]+=1,s.end-=h,s.range[1]-=h),e&4&&(s.loc.start.column+=1,s.loc.end.column-=h),s}function ft(u,e,i,n,t){e=(e|134217728)^134217728,w(u,e|32768,14);let o=G(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return u.assignable=1,v(u,e,i,n,t,{type:"SpreadElement",argument:o})}function W1(u,e,i){P(u,e|32768);let n=[];if(u.token===16)return P(u,e),n;for(;u.token!==16&&(u.token===14?n.push(ft(u,e,u.tokenPos,u.linePos,u.colPos)):n.push(G(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos)),!(u.token!==18||(P(u,e|32768),u.token===16))););return w(u,e,16),n}function K(u,e,i){let{tokenValue:n,tokenPos:t,linePos:o,colPos:l}=u;return P(u,e),v(u,e,t,o,l,e&268435456?{type:"Identifier",name:n,pattern:i===1}:{type:"Identifier",name:n})}function a2(u,e){let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;return u.token===134283389?ge(u,e,t,o,l):(P(u,e),u.assignable=2,v(u,e,t,o,l,e&512?{type:"Literal",value:i,raw:n}:{type:"Literal",value:i}))}function ct(u,e,i,n,t){let o=x[u.token&255],l=u.token===86023?null:o==="true";return P(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:"Literal",value:l,raw:o}:{type:"Literal",value:l})}function st(u,e){let{tokenPos:i,linePos:n,colPos:t}=u;return P(u,e),u.assignable=2,v(u,e,i,n,t,{type:"ThisExpression"})}function T2(u,e,i,n,t,o,l,c,s,h){P(u,e|32768);let m=t?V1(u,e,8457014):0,g=null,a,y=i?j2():void 0;if(u.token===67174411)(o&1)<1&&f(u,37,"Function");else{let B=n&4&&((e&8192)<1||(e&2048)<1)?4:64;Qu(u,e|(e&3072)<<11,u.token),i&&(B&4?pu(u,e,i,u.tokenValue,B):B2(u,e,i,u.tokenValue,B,n),y=o2(y,256),o&&o&2&&_2(u,u.tokenValue)),a=u.token,u.token&143360?g=K(u,e,0):f(u,28,x[u.token&255])}e=(e|32243712)^32243712|67108864|l*2+m<<21|(m?0:1073741824),i&&(y=o2(y,512));let C=be(u,e|8388608,y,0,1),D=a1(u,(e|8192|4096|131072)^143360,i?o2(y,128):y,8,a,i?y.scopeError:void 0);return v(u,e,c,s,h,{type:"FunctionDeclaration",id:g,params:C,body:D,async:l===1,generator:m===1})}function he(u,e,i,n,t,o,l){P(u,e|32768);let c=V1(u,e,8457014),s=i*2+c<<21,h=null,m,g=e&64?j2():void 0;(u.token&176128)>0&&(Qu(u,(e|32243712)^32243712|s,u.token),g&&(g=o2(g,256)),m=u.token,h=K(u,e,0)),e=(e|32243712)^32243712|67108864|s|(c?0:1073741824),g&&(g=o2(g,512));let a=be(u,e|8388608,g,n,1),y=a1(u,e&-134377473,g&&o2(g,128),0,m,void 0);return u.assignable=2,v(u,e,t,o,l,{type:"FunctionExpression",id:h,params:a,body:y,async:i===1,generator:c===1})}function at(u,e,i,n,t,o,l){let c=k2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function k2(u,e,i,n,t,o,l,c,s,h,m){P(u,e|32768);let g=[],a=0;for(e=(e|134217728)^134217728;u.token!==20;)if(J(u,e|32768,18))g.push(null);else{let C,{token:D,tokenPos:B,linePos:O,colPos:j,tokenValue:i2}=u;if(D&143360)if(C=h2(u,e,l,0,1,0,t,1,B,O,j),u.token===1077936157){u.assignable&2&&f(u,24),P(u,e|32768),i&&q2(u,e,i,i2,l,c);let R=G(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);C=v(u,e,B,O,j,o?{type:"AssignmentPattern",left:C,right:R}:{type:"AssignmentExpression",operator:"=",left:C,right:R}),a|=u.destructible&256?256:0|u.destructible&128?128:0}else u.token===18||u.token===20?(u.assignable&2?a|=16:i&&q2(u,e,i,i2,l,c),a|=u.destructible&256?256:0|u.destructible&128?128:0):(a|=l&1?32:(l&2)<1?16:0,C=Z(u,e,C,t,0,B,O,j),u.token!==18&&u.token!==20?(u.token!==1077936157&&(a|=16),C=p(u,e,t,o,B,O,j,C)):u.token!==1077936157&&(a|=u.assignable&2?16:32));else D&2097152?(C=u.token===2162700?r2(u,e,i,0,t,o,l,c,B,O,j):k2(u,e,i,0,t,o,l,c,B,O,j),a|=u.destructible,u.assignable=u.destructible&16?2:1,u.token===18||u.token===20?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(C=Z(u,e,C,t,0,B,O,j),a=u.assignable&2?16:0,u.token!==18&&u.token!==20?C=p(u,e,t,o,B,O,j,C):u.token!==1077936157&&(a|=u.assignable&2?16:32))):D===14?(C=W2(u,e,i,20,l,c,0,t,o,B,O,j),a|=u.destructible,u.token!==18&&u.token!==20&&f(u,28,x[u.token&255])):(C=b2(u,e,1,0,1,B,O,j),u.token!==18&&u.token!==20?(C=p(u,e,t,o,B,O,j,C),(l&3)<1&&D===67174411&&(a|=16)):u.assignable&2?a|=16:D===67174411&&(a|=u.assignable&1&&l&3?32:16));if(g.push(C),J(u,e|32768,18)){if(u.token===20)break}else break}w(u,e,20);let y=v(u,e,s,h,m,{type:o?"ArrayPattern":"ArrayExpression",elements:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,m,y):(u.destructible=a,y)}function me(u,e,i,n,t,o,l,c,s){u.token!==1077936157&&f(u,24),P(u,e|32768),i&16&&f(u,24),t||v2(u,s);let{tokenPos:h,linePos:m,colPos:g}=u,a=G(u,e,1,1,n,h,m,g);return u.destructible=(i|64|8)^72|(u.destructible&128?128:0)|(u.destructible&256?256:0),v(u,e,o,l,c,t?{type:"AssignmentPattern",left:s,right:a}:{type:"AssignmentExpression",left:s,operator:"=",right:a})}function W2(u,e,i,n,t,o,l,c,s,h,m,g){P(u,e|32768);let a=null,y=0,{token:C,tokenValue:D,tokenPos:B,linePos:O,colPos:j}=u;if(C&143360)u.assignable=1,a=h2(u,e,t,0,1,0,c,1,B,O,j),C=u.token,a=Z(u,e,a,c,0,B,O,j),u.token!==18&&u.token!==n&&(u.assignable&2&&u.token===1077936157&&f(u,68),y|=16,a=p(u,e,c,s,B,O,j,a)),u.assignable&2?y|=16:C===n||C===18?i&&q2(u,e,i,D,t,o):y|=32,y|=u.destructible&128?128:0;else if(C===n)f(u,39);else if(C&2097152)a=u.token===2162700?r2(u,e,i,1,c,s,t,o,B,O,j):k2(u,e,i,1,c,s,t,o,B,O,j),C=u.token,C!==1077936157&&C!==n&&C!==18?(u.destructible&8&&f(u,68),a=Z(u,e,a,c,0,B,O,j),y|=u.assignable&2?16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(y|=16),a=p(u,e,c,s,B,O,j,a)):((u.token&8454144)===8454144&&(a=F2(u,e,1,B,O,j,4,C,a)),J(u,e|32768,22)&&(a=M2(u,e,a,B,O,j)),y|=u.assignable&2?16:32)):y|=n===1074790415&&C!==1077936157?16:u.destructible;else{y|=32,a=b2(u,e,1,c,1,u.tokenPos,u.linePos,u.colPos);let{token:i2,tokenPos:R,linePos:Q,colPos:A}=u;return i2===1077936157&&i2!==n&&i2!==18?(u.assignable&2&&f(u,24),a=p(u,e,c,s,R,Q,A,a),y|=16):(i2===18?y|=16:i2!==n&&(a=p(u,e,c,s,R,Q,A,a)),y|=u.assignable&1?32:16),u.destructible=y,u.token!==n&&u.token!==18&&f(u,155),v(u,e,h,m,g,{type:s?"RestElement":"SpreadElement",argument:a})}if(u.token!==n)if(t&1&&(y|=l?16:32),J(u,e|32768,1077936157)){y&16&&f(u,24),v2(u,a);let i2=G(u,e,1,1,c,u.tokenPos,u.linePos,u.colPos);a=v(u,e,B,O,j,s?{type:"AssignmentPattern",left:a,right:i2}:{type:"AssignmentExpression",left:a,operator:"=",right:i2}),y=16}else y|=16;return u.destructible=y,v(u,e,h,m,g,{type:s?"RestElement":"SpreadElement",argument:a})}function y2(u,e,i,n,t,o,l){let c=(i&64)<1?31981568:14680064;e=(e|c)^c|(i&88)<<18|100925440;let s=e&64?o2(j2(),512):void 0,h=gt(u,e|8388608,s,i,1,n);s&&(s=o2(s,128));let m=a1(u,e&-134230017,s,0,void 0,void 0);return v(u,e,t,o,l,{type:"FunctionExpression",params:h,body:m,async:(i&16)>0,generator:(i&8)>0,id:null})}function dt(u,e,i,n,t,o,l){let c=r2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function r2(u,e,i,n,t,o,l,c,s,h,m){P(u,e);let g=[],a=0,y=0;for(e=(e|134217728)^134217728;u.token!==1074790415;){let{token:D,tokenValue:B,linePos:O,colPos:j,tokenPos:i2}=u;if(D===14)g.push(W2(u,e,i,1074790415,l,c,0,t,o,i2,O,j));else{let R=0,Q=null,A,A2=u.token;if(u.token&143360||u.token===121)if(Q=K(u,e,0),u.token===18||u.token===1074790415||u.token===1077936157)if(R|=4,e&1024&&(D&537079808)===537079808?a|=16:o1(u,e,l,D,0),i&&q2(u,e,i,B,l,c),J(u,e|32768,1077936157)){a|=8;let N=G(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);a|=u.destructible&256?256:0|u.destructible&128?128:0,A=v(u,e,i2,O,j,{type:"AssignmentPattern",left:e&-2147483648?Object.assign({},Q):Q,right:N})}else a|=(D===209008?128:0)|(D===121?16:0),A=e&-2147483648?Object.assign({},Q):Q;else if(J(u,e|32768,21)){let{tokenPos:N,linePos:M,colPos:_}=u;if(B==="__proto__"&&y++,u.token&143360){let U2=u.token,$2=u.tokenValue;a|=A2===121?16:0,A=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;A=Z(u,e,A,t,0,N,M,_),u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?(a|=u.destructible&128?128:0,u.assignable&2?a|=16:i&&(U2&143360)===143360&&q2(u,e,i,$2,l,c)):a|=u.assignable&1?32:16:(u.token&4194304)===4194304?(u.assignable&2?a|=16:E2!==1077936157?a|=32:i&&q2(u,e,i,$2,l,c),A=p(u,e,t,o,N,M,_,A)):(a|=16,(u.token&8454144)===8454144&&(A=F2(u,e,1,N,M,_,4,E2,A)),J(u,e|32768,22)&&(A=M2(u,e,A,N,M,_)))}else(u.token&2097152)===2097152?(A=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(A=Z(u,e,A,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?A=s1(u,e,t,o,N,M,_,A):((u.token&8454144)===8454144&&(A=F2(u,e,1,N,M,_,4,D,A)),J(u,e|32768,22)&&(A=M2(u,e,A,N,M,_)),a|=u.assignable&2?16:32))):(A=b2(u,e,1,t,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(A=Z(u,e,A,t,0,N,M,_),a=u.assignable&2?16:0,u.token!==18&&D!==1074790415&&(u.token!==1077936157&&(a|=16),A=p(u,e,t,o,N,M,_,A))))}else u.token===69271571?(a|=16,D===209007&&(R|=16),R|=(D===12402?256:D===12403?512:1)|2,Q=Y2(u,e,t),a|=u.assignable,A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token&143360?(a|=16,D===121&&f(u,92),D===209007&&(u.flags&1&&f(u,128),R|=16),Q=K(u,e,0),R|=D===12402?256:D===12403?512:1,A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===67174411?(a|=16,R|=1,A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===8457014?(a|=16,D===12402||D===12403?f(u,40):D===143483&&f(u,92),P(u,e),R|=9|(D===209007?16:0),u.token&143360?Q=K(u,e,0):(u.token&134217728)===134217728?Q=a2(u,e):u.token===69271571?(R|=2,Q=Y2(u,e,t),a|=u.assignable):f(u,28,x[u.token&255]),A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):(u.token&134217728)===134217728?(D===209007&&(R|=16),R|=D===12402?256:D===12403?512:1,a|=16,Q=a2(u,e),A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,129);else if((u.token&134217728)===134217728)if(Q=a2(u,e),u.token===21){w(u,e|32768,21);let{tokenPos:N,linePos:M,colPos:_}=u;if(B==="__proto__"&&y++,u.token&143360){A=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:U2,tokenValue:$2}=u;A=Z(u,e,A,t,0,N,M,_),u.token===18||u.token===1074790415?U2===1077936157||U2===1074790415||U2===18?u.assignable&2?a|=16:i&&q2(u,e,i,$2,l,c):a|=u.assignable&1?32:16:u.token===1077936157?(u.assignable&2&&(a|=16),A=p(u,e,t,o,N,M,_,A)):(a|=16,A=p(u,e,t,o,N,M,_,A))}else(u.token&2097152)===2097152?(A=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(u.destructible&8)!==8&&(A=Z(u,e,A,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?A=s1(u,e,t,o,N,M,_,A):((u.token&8454144)===8454144&&(A=F2(u,e,1,N,M,_,4,D,A)),J(u,e|32768,22)&&(A=M2(u,e,A,N,M,_)),a|=u.assignable&2?16:32))):(A=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(A=Z(u,e,A,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),A=p(u,e,t,o,N,M,_,A))))}else u.token===67174411?(R|=1,A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos),a=u.assignable|16):f(u,130);else if(u.token===69271571)if(Q=Y2(u,e,t),a|=u.destructible&256?256:0,R|=2,u.token===21){P(u,e|32768);let{tokenPos:N,linePos:M,colPos:_,tokenValue:U2,token:$2}=u;if(u.token&143360){A=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;A=Z(u,e,A,t,0,N,M,_),(u.token&4194304)===4194304?(a|=u.assignable&2?16:E2===1077936157?0:32,A=s1(u,e,t,o,N,M,_,A)):u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?u.assignable&2?a|=16:i&&($2&143360)===143360&&q2(u,e,i,U2,l,c):a|=u.assignable&1?32:16:(a|=16,A=p(u,e,t,o,N,M,_,A))}else(u.token&2097152)===2097152?(A=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):a&8?f(u,59):(A=Z(u,e,A,t,0,N,M,_),a=u.assignable&2?a|16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(a|=16),A=s1(u,e,t,o,N,M,_,A)):((u.token&8454144)===8454144&&(A=F2(u,e,1,N,M,_,4,D,A)),J(u,e|32768,22)&&(A=M2(u,e,A,N,M,_)),a|=u.assignable&2?16:32))):(A=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(A=Z(u,e,A,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),A=p(u,e,t,o,N,M,_,A))))}else u.token===67174411?(R|=1,A=y2(u,e,R,t,u.tokenPos,O,j),a=16):f(u,41);else if(D===8457014)if(w(u,e|32768,8457014),R|=8,u.token&143360){let{token:N,line:M,index:_}=u;Q=K(u,e,0),R|=1,u.token===67174411?(a|=16,A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):T(_,M,_,N===209007?43:N===12402||u.token===12403?42:44,x[N&255])}else(u.token&134217728)===134217728?(a|=16,Q=a2(u,e),R|=1,A=y2(u,e,R,t,i2,O,j)):u.token===69271571?(a|=16,R|=3,Q=Y2(u,e,t),A=y2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,122);else f(u,28,x[D&255]);a|=u.destructible&128?128:0,u.destructible=a,g.push(v(u,e,i2,O,j,{type:"Property",key:Q,value:A,kind:R&768?R&512?"set":"get":"init",computed:(R&2)>0,method:(R&1)>0,shorthand:(R&4)>0}))}if(a|=u.destructible,u.token!==18)break;P(u,e)}w(u,e,1074790415),y>1&&(a|=64);let C=v(u,e,s,h,m,{type:o?"ObjectPattern":"ObjectExpression",properties:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,m,C):(u.destructible=a,C)}function gt(u,e,i,n,t,o){w(u,e,67174411);let l=[];if(u.flags=(u.flags|128)^128,u.token===16)return n&512&&f(u,35,"Setter","one",""),P(u,e),l;n&256&&f(u,35,"Getter","no","s"),n&512&&u.token===14&&f(u,36),e=(e|134217728)^134217728;let c=0,s=0;for(;u.token!==18;){let h=null,{tokenPos:m,linePos:g,colPos:a}=u;if(u.token&143360?((e&1024)<1&&((u.token&36864)===36864&&(u.flags|=256),(u.token&537079808)===537079808&&(u.flags|=512)),h=Q1(u,e,i,n|1,0,m,g,a)):(u.token===2162700?h=r2(u,e,i,1,o,1,t,0,m,g,a):u.token===69271571?h=k2(u,e,i,1,o,1,t,0,m,g,a):u.token===14&&(h=W2(u,e,i,16,t,0,0,o,1,m,g,a)),s=1,u.destructible&48&&f(u,47)),u.token===1077936157){P(u,e|32768),s=1;let y=G(u,e,1,1,0,u.tokenPos,u.linePos,u.colPos);h=v(u,e,m,g,a,{type:"AssignmentPattern",left:h,right:y})}if(c++,l.push(h),!J(u,e,18)||u.token===16)break}return n&512&&c!==1&&f(u,35,"Setter","one",""),i&&i.scopeError!==void 0&&E(i.scopeError),s&&(u.flags|=128),w(u,e,16),l}function Y2(u,e,i){P(u,e|32768);let n=G(u,(e|134217728)^134217728,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,20),n}function ht(u,e,i,n,t,o,l,c){u.flags=(u.flags|128)^128;let{tokenPos:s,linePos:h,colPos:m}=u;P(u,e|32768|1073741824);let g=e&64?o2(j2(),1024):void 0;if(e=(e|134217728)^134217728,J(u,e,16))return h1(u,e,g,[],i,0,o,l,c);let a=0;u.destructible&=-385;let y,C=[],D=0,B=0,{tokenPos:O,linePos:j,colPos:i2}=u;for(u.assignable=1;u.token!==16;){let{token:R,tokenPos:Q,linePos:A,colPos:A2}=u;if(R&143360)g&&B2(u,e,g,u.tokenValue,1,0),y=h2(u,e,n,0,1,0,1,1,Q,A,A2),u.token===16||u.token===18?u.assignable&2?(a|=16,B=1):((R&537079808)===537079808||(R&36864)===36864)&&(B=1):(u.token===1077936157?B=1:a|=16,y=Z(u,e,y,1,0,Q,A,A2),u.token!==16&&u.token!==18&&(y=p(u,e,1,0,Q,A,A2,y)));else if((R&2097152)===2097152)y=R===2162700?r2(u,e|1073741824,g,0,1,0,n,t,Q,A,A2):k2(u,e|1073741824,g,0,1,0,n,t,Q,A,A2),a|=u.destructible,B=1,u.assignable=2,u.token!==16&&u.token!==18&&(a&8&&f(u,118),y=Z(u,e,y,0,0,Q,A,A2),a|=16,u.token!==16&&u.token!==18&&(y=p(u,e,0,0,Q,A,A2,y)));else if(R===14){y=W2(u,e,g,16,n,t,0,1,0,Q,A,A2),u.destructible&16&&f(u,71),B=1,D&&(u.token===16||u.token===18)&&C.push(y),a|=8;break}else{if(a|=16,y=G(u,e,1,0,1,Q,A,A2),D&&(u.token===16||u.token===18)&&C.push(y),u.token===18&&(D||(D=1,C=[y])),D){for(;J(u,e|32768,18);)C.push(G(u,e,1,0,1,u.tokenPos,u.linePos,u.colPos));u.assignable=2,y=v(u,e,O,j,i2,{type:"SequenceExpression",expressions:C})}return w(u,e,16),u.destructible=a,y}if(D&&(u.token===16||u.token===18)&&C.push(y),!J(u,e|32768,18))break;if(D||(D=1,C=[y]),u.token===16){a|=8;break}}return D&&(u.assignable=2,y=v(u,e,O,j,i2,{type:"SequenceExpression",expressions:C})),w(u,e,16),a&16&&a&8&&f(u,145),a|=u.destructible&256?256:0|u.destructible&128?128:0,u.token===10?(a&48&&f(u,46),e&4196352&&a&128&&f(u,29),e&2098176&&a&256&&f(u,30),B&&(u.flags|=128),h1(u,e,g,D?C:[y],i,0,o,l,c)):(a&8&&f(u,139),u.destructible=(u.destructible|256)^256|a,e&128?v(u,e,s,h,m,{type:"ParenthesizedExpression",expression:y}):y)}function Y1(u,e,i,n,t){let{tokenValue:o}=u,l=K(u,e,0);if(u.assignable=1,u.token===10){let c;return e&64&&(c=f1(u,e,o)),u.flags=(u.flags|128)^128,u1(u,e,c,[l],0,i,n,t)}return l}function g1(u,e,i,n,t,o,l,c,s,h){o||f(u,54),t&&f(u,48),u.flags&=-129;let m=e&64?f1(u,e,i):void 0;return u1(u,e,m,[n],l,c,s,h)}function h1(u,e,i,n,t,o,l,c,s){t||f(u,54);for(let h=0;h0&&u.tokenValue==="constructor"&&f(u,106),u.token===1074790415&&f(u,105),J(u,e,1074790417)){a>0&&f(u,116);continue}m.push(ve(u,e,n,i,t,g,0,l,u.tokenPos,u.linePos,u.colPos))}return w(u,o&8?e|32768:e,1074790415),v(u,e,c,s,h,{type:"ClassBody",body:m})}function ve(u,e,i,n,t,o,l,c,s,h,m){let g=l?32:0,a=null,{token:y,tokenPos:C,linePos:D,colPos:B}=u;if(y&176128)switch(a=K(u,e,0),y){case 36972:if(!l&&u.token!==67174411)return ve(u,e,i,n,t,o,1,c,s,h,m);break;case 209007:if(u.token!==67174411&&(u.flags&1)<1){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=16|(V1(u,e,8457014)?8:0)}break;case 12402:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=256}break;case 12403:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=512}break}else y===69271571?(g|=2,a=Y2(u,n,c)):(y&134217728)===134217728?a=a2(u,e):y===8457014?(g|=8,P(u,e)):e&1&&u.token===131?(g|=4096,a=k1(u,e|16384,C,D,B)):e&1&&(u.token&1073741824)===1073741824?g|=128:y===122?(a=K(u,e,0),u.token!==67174411&&f(u,28,x[u.token&255])):f(u,28,x[u.token&255]);if(g&792&&(u.token&143360?a=K(u,e,0):(u.token&134217728)===134217728?a=a2(u,e):u.token===69271571?(g|=2,a=Y2(u,e,0)):u.token===122?a=K(u,e,0):e&1&&u.token===131?(g|=4096,a=k1(u,e,C,D,B)):f(u,131)),(g&2)<1&&(u.tokenValue==="constructor"?((u.token&1073741824)===1073741824?f(u,125):(g&32)<1&&u.token===67174411&&(g&920?f(u,50,"accessor"):(e&524288)<1&&(u.flags&32?f(u,51):u.flags|=32)),g|=64):(g&4096)<1&&g&824&&u.tokenValue==="prototype"&&f(u,49)),e&1&&u.token!==67174411)return r1(u,e,a,g,o,C,D,B);let O=y2(u,e,g,c,u.tokenPos,u.linePos,u.colPos);return v(u,e,s,h,m,e&1?{type:"MethodDefinition",kind:(g&32)<1&&g&64?"constructor":g&256?"get":g&512?"set":"method",static:(g&32)>0,computed:(g&2)>0,key:a,decorators:o,value:O}:{type:"MethodDefinition",kind:(g&32)<1&&g&64?"constructor":g&256?"get":g&512?"set":"method",static:(g&32)>0,computed:(g&2)>0,key:a,value:O})}function k1(u,e,i,n,t){P(u,e);let{tokenValue:o}=u;return o==="constructor"&&f(u,124),P(u,e),v(u,e,i,n,t,{type:"PrivateIdentifier",name:o})}function r1(u,e,i,n,t,o,l,c){let s=null;if(n&8&&f(u,0),u.token===1077936157){P(u,e|32768);let{tokenPos:h,linePos:m,colPos:g}=u;u.token===537079928&&f(u,115),s=h2(u,e|16384,2,0,1,0,0,1,h,m,g),(u.token&1073741824)!==1073741824&&(s=Z(u,e|16384,s,0,0,h,m,g),s=p(u,e|16384,0,0,h,m,g,s),u.token===18&&(s=S2(u,e,0,o,l,c,s)))}return v(u,e,o,l,c,{type:"PropertyDefinition",key:i,value:s,static:(n&32)>0,computed:(n&2)>0,decorators:t})}function ye(u,e,i,n,t,o,l,c){if(u.token&143360)return Q1(u,e,i,n,t,o,l,c);(u.token&2097152)!==2097152&&f(u,28,x[u.token&255]);let s=u.token===69271571?k2(u,e,i,1,0,1,n,t,o,l,c):r2(u,e,i,1,0,1,n,t,o,l,c);return u.destructible&16&&f(u,47),u.destructible&32&&f(u,47),s}function Q1(u,e,i,n,t,o,l,c){let{tokenValue:s,token:h}=u;return e&1024&&((h&537079808)===537079808?f(u,115):(h&36864)===36864&&f(u,114)),(h&20480)===20480&&f(u,99),e&2099200&&h===241773&&f(u,30),h===241739&&n&24&&f(u,97),e&4196352&&h===209008&&f(u,95),P(u,e),i&&q2(u,e,i,s,n,t),v(u,e,o,l,c,{type:"Identifier",name:s})}function G1(u,e,i,n,t,o){if(P(u,e),u.token===8456259)return v(u,e,n,t,o,{type:"JSXFragment",openingFragment:yt(u,e,n,t,o),children:Ae(u,e),closingFragment:Pt(u,e,i,u.tokenPos,u.linePos,u.colPos)});let l=null,c=[],s=Ct(u,e,i,n,t,o);if(!s.selfClosing){c=Ae(u,e),l=At(u,e,i,u.tokenPos,u.linePos,u.colPos);let h=l1(l.name);l1(s.name)!==h&&f(u,149,h)}return v(u,e,n,t,o,{type:"JSXElement",children:c,openingElement:s,closingElement:l})}function yt(u,e,i,n,t){return V2(u,e),v(u,e,i,n,t,{type:"JSXOpeningFragment"})}function At(u,e,i,n,t,o){w(u,e,25);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos);return i?w(u,e,8456259):u.token=V2(u,e),v(u,e,n,t,o,{type:"JSXClosingElement",name:l})}function Pt(u,e,i,n,t,o){return w(u,e,25),w(u,e,8456259),v(u,e,n,t,o,{type:"JSXClosingFragment"})}function Ae(u,e){let i=[];for(;u.token!==25;)u.index=u.tokenPos=u.startPos,u.column=u.colPos=u.startColumn,u.line=u.linePos=u.startLine,V2(u,e),i.push(Et(u,e,u.tokenPos,u.linePos,u.colPos));return i}function Et(u,e,i,n,t){if(u.token===138)return Dt(u,e,i,n,t);if(u.token===2162700)return De(u,e,0,0,i,n,t);if(u.token===8456258)return G1(u,e,0,i,n,t);f(u,0)}function Dt(u,e,i,n,t){V2(u,e);let o={type:"JSXText",value:u.tokenValue};return e&512&&(o.raw=u.tokenRaw),v(u,e,i,n,t,o)}function Ct(u,e,i,n,t,o){(u.token&143360)!==143360&&(u.token&4096)!==4096&&f(u,0);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos),c=qt(u,e),s=u.token===8457016;return u.token===8456259?V2(u,e):(w(u,e,8457016),i?w(u,e,8456259):V2(u,e)),v(u,e,n,t,o,{type:"JSXOpeningElement",name:l,attributes:c,selfClosing:s})}function Pe(u,e,i,n,t){N1(u);let o=v1(u,e,i,n,t);if(u.token===21)return Ee(u,e,o,i,n,t);for(;J(u,e,67108877);)N1(u),o=wt(u,e,o,i,n,t);return o}function wt(u,e,i,n,t,o){let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:"JSXMemberExpression",object:i,property:l})}function qt(u,e){let i=[];for(;u.token!==8457016&&u.token!==8456259&&u.token!==1048576;)i.push(St(u,e,u.tokenPos,u.linePos,u.colPos));return i}function Bt(u,e,i,n,t){P(u,e),w(u,e,14);let o=G(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:"JSXSpreadAttribute",argument:o})}function St(u,e,i,n,t){if(u.token===2162700)return Bt(u,e,i,n,t);N1(u);let o=null,l=v1(u,e,i,n,t);if(u.token===21&&(l=Ee(u,e,l,i,n,t)),u.token===1077936157){let c=E0(u,e),{tokenPos:s,linePos:h,colPos:m}=u;switch(c){case 134283267:o=a2(u,e);break;case 8456258:o=G1(u,e,1,s,h,m);break;case 2162700:o=De(u,e,1,1,s,h,m);break;default:f(u,148)}}return v(u,e,i,n,t,{type:"JSXAttribute",value:o,name:l})}function Ee(u,e,i,n,t,o){w(u,e,21);let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:"JSXNamespacedName",namespace:i,name:l})}function De(u,e,i,n,t,o,l){P(u,e|32768);let{tokenPos:c,linePos:s,colPos:h}=u;if(u.token===14)return Ft(u,e,c,s,h);let m=null;return u.token===1074790415?(n&&f(u,151),m=Tt(u,e,u.startPos,u.startLine,u.startColumn)):m=G(u,e,1,0,0,c,s,h),i?w(u,e,1074790415):V2(u,e),v(u,e,t,o,l,{type:"JSXExpressionContainer",expression:m})}function Ft(u,e,i,n,t){w(u,e,14);let o=G(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:"JSXSpreadChild",expression:o})}function Tt(u,e,i,n,t){return u.startPos=u.tokenPos,u.startLine=u.linePos,u.startColumn=u.colPos,v(u,e,i,n,t,{type:"JSXEmptyExpression"})}function v1(u,e,i,n,t){let{tokenValue:o}=u;return P(u,e),v(u,e,i,n,t,{type:"JSXIdentifier",name:o})}var Lt=Object.freeze({__proto__:null}),Ot="4.2.1",It=Ot;function Rt(u,e){return U1(u,e,0)}function Nt(u,e){return U1(u,e,3072)}function Vt(u,e){return U1(u,e,0)}d.ESTree=Lt,d.parse=Vt,d.parseModule=Nt,d.parseScript=Rt,d.version=It}}),a3=l2({"src/language-js/parse/meriyah.js"(d,b){t2();var r=Gn(),f=K4(),E=i3(),T=c3(),q={module:!0,next:!0,ranges:!0,webcompat:!0,loc:!0,raw:!0,directives:!0,globalReturn:!0,impliedStrict:!1,preserveParens:!1,lexical:!1,identifierPattern:!1,jsx:!0,specDeviation:!0,uniqueKeyInPattern:!1};function F(X,U){let{parse:Y}=s3(),H=[],S=[],u2=Y(X,Object.assign(Object.assign({},q),{},{module:U,onComment:H,onToken:S}));return u2.comments=H,u2.tokens=S,u2}function k(X){let{message:U,line:Y,column:H}=X,S=(U.match(/^\[(?\d+):(?\d+)]: (?.*)$/)||{}).groups;return S&&(U=S.message,typeof Y!="number"&&(Y=Number(S.line),H=Number(S.column))),typeof Y!="number"?X:r(U,{start:{line:Y,column:H}})}function W(X,U){let Y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:H,error:S}=f(()=>F(X,!0),()=>F(X,!1));if(!H)throw k(S);return Y.originalText=X,T(H,Y)}b.exports={parsers:{meriyah:E(W)}}}}),D6=a3();export{D6 as default}; diff --git a/node_modules/prettier/esm/parser-postcss.mjs b/node_modules/prettier/esm/parser-postcss.mjs new file mode 100644 index 0000000..a900a47 --- /dev/null +++ b/node_modules/prettier/esm/parser-postcss.mjs @@ -0,0 +1,76 @@ +"use strict";var Y=(r,i)=>()=>(i||r((i={exports:{}}).exports,i),i.exports);var ee=Y((Rf,Ct)=>{var Ye=function(r){return r&&r.Math==Math&&r};Ct.exports=Ye(typeof globalThis=="object"&&globalThis)||Ye(typeof window=="object"&&window)||Ye(typeof self=="object"&&self)||Ye(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var ke=Y((If,Nt)=>{Nt.exports=function(r){try{return!!r()}catch{return!0}}});var Te=Y((Cf,jt)=>{var Ko=ke();jt.exports=!Ko(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var _r=Y((Nf,Mt)=>{var Qo=ke();Mt.exports=!Qo(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Ze=Y((jf,Dt)=>{var Yo=_r(),Xe=Function.prototype.call;Dt.exports=Yo?Xe.bind(Xe):function(){return Xe.apply(Xe,arguments)}});var Ft=Y(Bt=>{"use strict";var Lt={}.propertyIsEnumerable,zt=Object.getOwnPropertyDescriptor,Xo=zt&&!Lt.call({1:2},1);Bt.f=Xo?function(i){var s=zt(this,i);return!!s&&s.enumerable}:Lt});var br=Y((Df,Ut)=>{Ut.exports=function(r,i){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:i}}});var de=Y((Lf,Vt)=>{var Wt=_r(),$t=Function.prototype,Zo=$t.bind,xr=$t.call,ea=Wt&&Zo.bind(xr,xr);Vt.exports=Wt?function(r){return r&&ea(r)}:function(r){return r&&function(){return xr.apply(r,arguments)}}});var Jt=Y((zf,Ht)=>{var Gt=de(),ra=Gt({}.toString),ta=Gt("".slice);Ht.exports=function(r){return ta(ra(r),8,-1)}});var Qt=Y((Bf,Kt)=>{var na=ee(),ia=de(),sa=ke(),oa=Jt(),kr=na.Object,aa=ia("".split);Kt.exports=sa(function(){return!kr("z").propertyIsEnumerable(0)})?function(r){return oa(r)=="String"?aa(r,""):kr(r)}:kr});var Sr=Y((Ff,Yt)=>{var ua=ee(),ca=ua.TypeError;Yt.exports=function(r){if(r==null)throw ca("Can't call method on "+r);return r}});var er=Y((Uf,Xt)=>{var la=Qt(),fa=Sr();Xt.exports=function(r){return la(fa(r))}});var ve=Y((Wf,Zt)=>{Zt.exports=function(r){return typeof r=="function"}});var Ne=Y(($f,en)=>{var pa=ve();en.exports=function(r){return typeof r=="object"?r!==null:pa(r)}});var rr=Y((Vf,rn)=>{var Or=ee(),ha=ve(),da=function(r){return ha(r)?r:void 0};rn.exports=function(r,i){return arguments.length<2?da(Or[r]):Or[r]&&Or[r][i]}});var nn=Y((Gf,tn)=>{var va=de();tn.exports=va({}.isPrototypeOf)});var on=Y((Hf,sn)=>{var ma=rr();sn.exports=ma("navigator","userAgent")||""});var hn=Y((Jf,pn)=>{var fn=ee(),Tr=on(),an=fn.process,un=fn.Deno,cn=an&&an.versions||un&&un.version,ln=cn&&cn.v8,he,tr;ln&&(he=ln.split("."),tr=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!tr&&Tr&&(he=Tr.match(/Edge\/(\d+)/),(!he||he[1]>=74)&&(he=Tr.match(/Chrome\/(\d+)/),he&&(tr=+he[1])));pn.exports=tr});var Er=Y((Kf,vn)=>{var dn=hn(),ga=ke();vn.exports=!!Object.getOwnPropertySymbols&&!ga(function(){var r=Symbol();return!String(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&dn&&dn<41})});var qr=Y((Qf,mn)=>{var ya=Er();mn.exports=ya&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Ar=Y((Yf,gn)=>{var wa=ee(),_a=rr(),ba=ve(),xa=nn(),ka=qr(),Sa=wa.Object;gn.exports=ka?function(r){return typeof r=="symbol"}:function(r){var i=_a("Symbol");return ba(i)&&xa(i.prototype,Sa(r))}});var wn=Y((Xf,yn)=>{var Oa=ee(),Ta=Oa.String;yn.exports=function(r){try{return Ta(r)}catch{return"Object"}}});var bn=Y((Zf,_n)=>{var Ea=ee(),qa=ve(),Aa=wn(),Pa=Ea.TypeError;_n.exports=function(r){if(qa(r))return r;throw Pa(Aa(r)+" is not a function")}});var kn=Y((ep,xn)=>{var Ra=bn();xn.exports=function(r,i){var s=r[i];return s==null?void 0:Ra(s)}});var On=Y((rp,Sn)=>{var Ia=ee(),Pr=Ze(),Rr=ve(),Ir=Ne(),Ca=Ia.TypeError;Sn.exports=function(r,i){var s,l;if(i==="string"&&Rr(s=r.toString)&&!Ir(l=Pr(s,r))||Rr(s=r.valueOf)&&!Ir(l=Pr(s,r))||i!=="string"&&Rr(s=r.toString)&&!Ir(l=Pr(s,r)))return l;throw Ca("Can't convert object to primitive value")}});var En=Y((tp,Tn)=>{Tn.exports=!1});var nr=Y((np,An)=>{var qn=ee(),Na=Object.defineProperty;An.exports=function(r,i){try{Na(qn,r,{value:i,configurable:!0,writable:!0})}catch{qn[r]=i}return i}});var ir=Y((ip,Rn)=>{var ja=ee(),Ma=nr(),Pn="__core-js_shared__",Da=ja[Pn]||Ma(Pn,{});Rn.exports=Da});var Cr=Y((sp,Cn)=>{var La=En(),In=ir();(Cn.exports=function(r,i){return In[r]||(In[r]=i!==void 0?i:{})})("versions",[]).push({version:"3.22.2",mode:La?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var jn=Y((op,Nn)=>{var za=ee(),Ba=Sr(),Fa=za.Object;Nn.exports=function(r){return Fa(Ba(r))}});var Se=Y((ap,Mn)=>{var Ua=de(),Wa=jn(),$a=Ua({}.hasOwnProperty);Mn.exports=Object.hasOwn||function(i,s){return $a(Wa(i),s)}});var Nr=Y((up,Dn)=>{var Va=de(),Ga=0,Ha=Math.random(),Ja=Va(1 .toString);Dn.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+Ja(++Ga+Ha,36)}});var Wn=Y((cp,Un)=>{var Ka=ee(),Qa=Cr(),Ln=Se(),Ya=Nr(),zn=Er(),Fn=qr(),je=Qa("wks"),Ee=Ka.Symbol,Bn=Ee&&Ee.for,Xa=Fn?Ee:Ee&&Ee.withoutSetter||Ya;Un.exports=function(r){if(!Ln(je,r)||!(zn||typeof je[r]=="string")){var i="Symbol."+r;zn&&Ln(Ee,r)?je[r]=Ee[r]:Fn&&Bn?je[r]=Bn(i):je[r]=Xa(i)}return je[r]}});var Hn=Y((lp,Gn)=>{var Za=ee(),eu=Ze(),$n=Ne(),Vn=Ar(),ru=kn(),tu=On(),nu=Wn(),iu=Za.TypeError,su=nu("toPrimitive");Gn.exports=function(r,i){if(!$n(r)||Vn(r))return r;var s=ru(r,su),l;if(s){if(i===void 0&&(i="default"),l=eu(s,r,i),!$n(l)||Vn(l))return l;throw iu("Can't convert object to primitive value")}return i===void 0&&(i="number"),tu(r,i)}});var jr=Y((fp,Jn)=>{var ou=Hn(),au=Ar();Jn.exports=function(r){var i=ou(r,"string");return au(i)?i:i+""}});var Yn=Y((pp,Qn)=>{var uu=ee(),Kn=Ne(),Mr=uu.document,cu=Kn(Mr)&&Kn(Mr.createElement);Qn.exports=function(r){return cu?Mr.createElement(r):{}}});var Dr=Y((hp,Xn)=>{var lu=Te(),fu=ke(),pu=Yn();Xn.exports=!lu&&!fu(function(){return Object.defineProperty(pu("div"),"a",{get:function(){return 7}}).a!=7})});var Lr=Y(ei=>{var hu=Te(),du=Ze(),vu=Ft(),mu=br(),gu=er(),yu=jr(),wu=Se(),_u=Dr(),Zn=Object.getOwnPropertyDescriptor;ei.f=hu?Zn:function(i,s){if(i=gu(i),s=yu(s),_u)try{return Zn(i,s)}catch{}if(wu(i,s))return mu(!du(vu.f,i,s),i[s])}});var ti=Y((vp,ri)=>{var bu=Te(),xu=ke();ri.exports=bu&&xu(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var zr=Y((mp,ii)=>{var ni=ee(),ku=Ne(),Su=ni.String,Ou=ni.TypeError;ii.exports=function(r){if(ku(r))return r;throw Ou(Su(r)+" is not an object")}});var $r=Y(oi=>{var Tu=ee(),Eu=Te(),qu=Dr(),Au=ti(),sr=zr(),si=jr(),Pu=Tu.TypeError,Br=Object.defineProperty,Ru=Object.getOwnPropertyDescriptor,Fr="enumerable",Ur="configurable",Wr="writable";oi.f=Eu?Au?function(i,s,l){if(sr(i),s=si(s),sr(l),typeof i=="function"&&s==="prototype"&&"value"in l&&Wr in l&&!l[Wr]){var o=Ru(i,s);o&&o[Wr]&&(i[s]=l.value,l={configurable:Ur in l?l[Ur]:o[Ur],enumerable:Fr in l?l[Fr]:o[Fr],writable:!1})}return Br(i,s,l)}:Br:function(i,s,l){if(sr(i),s=si(s),sr(l),qu)try{return Br(i,s,l)}catch{}if("get"in l||"set"in l)throw Pu("Accessors not supported");return"value"in l&&(i[s]=l.value),i}});var or=Y((yp,ai)=>{var Iu=Te(),Cu=$r(),Nu=br();ai.exports=Iu?function(r,i,s){return Cu.f(r,i,Nu(1,s))}:function(r,i,s){return r[i]=s,r}});var Gr=Y((wp,ui)=>{var ju=de(),Mu=ve(),Vr=ir(),Du=ju(Function.toString);Mu(Vr.inspectSource)||(Vr.inspectSource=function(r){return Du(r)});ui.exports=Vr.inspectSource});var fi=Y((_p,li)=>{var Lu=ee(),zu=ve(),Bu=Gr(),ci=Lu.WeakMap;li.exports=zu(ci)&&/native code/.test(Bu(ci))});var di=Y((bp,hi)=>{var Fu=Cr(),Uu=Nr(),pi=Fu("keys");hi.exports=function(r){return pi[r]||(pi[r]=Uu(r))}});var Hr=Y((xp,vi)=>{vi.exports={}});var bi=Y((kp,_i)=>{var Wu=fi(),wi=ee(),Jr=de(),$u=Ne(),Vu=or(),Kr=Se(),Qr=ir(),Gu=di(),Hu=Hr(),mi="Object already initialized",Xr=wi.TypeError,Ju=wi.WeakMap,ar,ze,ur,Ku=function(r){return ur(r)?ze(r):ar(r,{})},Qu=function(r){return function(i){var s;if(!$u(i)||(s=ze(i)).type!==r)throw Xr("Incompatible receiver, "+r+" required");return s}};Wu||Qr.state?(Oe=Qr.state||(Qr.state=new Ju),gi=Jr(Oe.get),Yr=Jr(Oe.has),yi=Jr(Oe.set),ar=function(r,i){if(Yr(Oe,r))throw new Xr(mi);return i.facade=r,yi(Oe,r,i),i},ze=function(r){return gi(Oe,r)||{}},ur=function(r){return Yr(Oe,r)}):(qe=Gu("state"),Hu[qe]=!0,ar=function(r,i){if(Kr(r,qe))throw new Xr(mi);return i.facade=r,Vu(r,qe,i),i},ze=function(r){return Kr(r,qe)?r[qe]:{}},ur=function(r){return Kr(r,qe)});var Oe,gi,Yr,yi,qe;_i.exports={set:ar,get:ze,has:ur,enforce:Ku,getterFor:Qu}});var Si=Y((Sp,ki)=>{var Zr=Te(),Yu=Se(),xi=Function.prototype,Xu=Zr&&Object.getOwnPropertyDescriptor,et=Yu(xi,"name"),Zu=et&&function(){}.name==="something",ec=et&&(!Zr||Zr&&Xu(xi,"name").configurable);ki.exports={EXISTS:et,PROPER:Zu,CONFIGURABLE:ec}});var Ai=Y((Op,qi)=>{var rc=ee(),Oi=ve(),tc=Se(),Ti=or(),nc=nr(),ic=Gr(),Ei=bi(),sc=Si().CONFIGURABLE,oc=Ei.get,ac=Ei.enforce,uc=String(String).split("String");(qi.exports=function(r,i,s,l){var o=l?!!l.unsafe:!1,h=l?!!l.enumerable:!1,f=l?!!l.noTargetGet:!1,p=l&&l.name!==void 0?l.name:i,g;if(Oi(s)&&(String(p).slice(0,7)==="Symbol("&&(p="["+String(p).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!tc(s,"name")||sc&&s.name!==p)&&Ti(s,"name",p),g=ac(s),g.source||(g.source=uc.join(typeof p=="string"?p:""))),r===rc){h?r[i]=s:nc(i,s);return}else o?!f&&r[i]&&(h=!0):delete r[i];h?r[i]=s:Ti(r,i,s)})(Function.prototype,"toString",function(){return Oi(this)&&oc(this).source||ic(this)})});var rt=Y((Tp,Pi)=>{var cc=Math.ceil,lc=Math.floor;Pi.exports=function(r){var i=+r;return i!==i||i===0?0:(i>0?lc:cc)(i)}});var Ii=Y((Ep,Ri)=>{var fc=rt(),pc=Math.max,hc=Math.min;Ri.exports=function(r,i){var s=fc(r);return s<0?pc(s+i,0):hc(s,i)}});var Ni=Y((qp,Ci)=>{var dc=rt(),vc=Math.min;Ci.exports=function(r){return r>0?vc(dc(r),9007199254740991):0}});var Mi=Y((Ap,ji)=>{var mc=Ni();ji.exports=function(r){return mc(r.length)}});var zi=Y((Pp,Li)=>{var gc=er(),yc=Ii(),wc=Mi(),Di=function(r){return function(i,s,l){var o=gc(i),h=wc(o),f=yc(l,h),p;if(r&&s!=s){for(;h>f;)if(p=o[f++],p!=p)return!0}else for(;h>f;f++)if((r||f in o)&&o[f]===s)return r||f||0;return!r&&-1}};Li.exports={includes:Di(!0),indexOf:Di(!1)}});var Ui=Y((Rp,Fi)=>{var _c=de(),tt=Se(),bc=er(),xc=zi().indexOf,kc=Hr(),Bi=_c([].push);Fi.exports=function(r,i){var s=bc(r),l=0,o=[],h;for(h in s)!tt(kc,h)&&tt(s,h)&&Bi(o,h);for(;i.length>l;)tt(s,h=i[l++])&&(~xc(o,h)||Bi(o,h));return o}});var $i=Y((Ip,Wi)=>{Wi.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Gi=Y(Vi=>{var Sc=Ui(),Oc=$i(),Tc=Oc.concat("length","prototype");Vi.f=Object.getOwnPropertyNames||function(i){return Sc(i,Tc)}});var Ji=Y(Hi=>{Hi.f=Object.getOwnPropertySymbols});var Qi=Y((jp,Ki)=>{var Ec=rr(),qc=de(),Ac=Gi(),Pc=Ji(),Rc=zr(),Ic=qc([].concat);Ki.exports=Ec("Reflect","ownKeys")||function(i){var s=Ac.f(Rc(i)),l=Pc.f;return l?Ic(s,l(i)):s}});var Zi=Y((Mp,Xi)=>{var Yi=Se(),Cc=Qi(),Nc=Lr(),jc=$r();Xi.exports=function(r,i,s){for(var l=Cc(i),o=jc.f,h=Nc.f,f=0;f{var Mc=ke(),Dc=ve(),Lc=/#|\.prototype\./,Be=function(r,i){var s=Bc[zc(r)];return s==Uc?!0:s==Fc?!1:Dc(i)?Mc(i):!!i},zc=Be.normalize=function(r){return String(r).replace(Lc,".").toLowerCase()},Bc=Be.data={},Fc=Be.NATIVE="N",Uc=Be.POLYFILL="P";es.exports=Be});var ns=Y((Lp,ts)=>{var nt=ee(),Wc=Lr().f,$c=or(),Vc=Ai(),Gc=nr(),Hc=Zi(),Jc=rs();ts.exports=function(r,i){var s=r.target,l=r.global,o=r.stat,h,f,p,g,c,t;if(l?f=nt:o?f=nt[s]||Gc(s,{}):f=(nt[s]||{}).prototype,f)for(p in i){if(c=i[p],r.noTargetGet?(t=Wc(f,p),g=t&&t.value):g=f[p],h=Jc(l?p:s+(o?".":"#")+p,r.forced),!h&&g!==void 0){if(typeof c==typeof g)continue;Hc(c,g)}(r.sham||g&&g.sham)&&$c(c,"sham",!0),Vc(f,p,c,r)}}});var is=Y(()=>{var Kc=ns(),Qc=ee();Kc({global:!0},{globalThis:Qc})});is();var dt=Object.defineProperty,Yc=Object.getOwnPropertyDescriptor,vt=Object.getOwnPropertyNames,Xc=Object.prototype.hasOwnProperty,Me=(r,i)=>function(){return r&&(i=(0,r[vt(r)[0]])(r=0)),i},C=(r,i)=>function(){return i||(0,r[vt(r)[0]])((i={exports:{}}).exports,i),i.exports},mt=(r,i)=>{for(var s in i)dt(r,s,{get:i[s],enumerable:!0})},Zc=(r,i,s,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of vt(i))!Xc.call(r,o)&&o!==s&&dt(r,o,{get:()=>i[o],enumerable:!(l=Yc(i,o))||l.enumerable});return r},gt=r=>Zc(dt({},"__esModule",{value:!0}),r),I=Me({""(){}}),el=C({"src/common/parser-create-error.js"(r,i){"use strict";I();function s(l,o){let h=new SyntaxError(l+" ("+o.start.line+":"+o.start.column+")");return h.loc=o,h}i.exports=s}}),Ss=C({"src/utils/get-last.js"(r,i){"use strict";I();var s=l=>l[l.length-1];i.exports=s}}),Os=C({"src/utils/front-matter/parse.js"(r,i){"use strict";I();var s=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function l(o){let h=o.match(s);if(!h)return{content:o};let{startDelimiter:f,language:p,value:g="",endDelimiter:c}=h.groups,t=p.trim()||"yaml";if(f==="+++"&&(t="toml"),t!=="yaml"&&f!==c)return{content:o};let[e]=h;return{frontMatter:{type:"front-matter",lang:t,value:g,startDelimiter:f,endDelimiter:c,raw:e.replace(/\n$/,"")},content:e.replace(/[^\n]/g," ")+o.slice(e.length)}}i.exports=l}}),Ts={};mt(Ts,{EOL:()=>lt,arch:()=>rl,cpus:()=>Cs,default:()=>Ls,endianness:()=>Es,freemem:()=>Rs,getNetworkInterfaces:()=>Ds,hostname:()=>qs,loadavg:()=>As,networkInterfaces:()=>Ms,platform:()=>tl,release:()=>js,tmpDir:()=>ut,tmpdir:()=>ct,totalmem:()=>Is,type:()=>Ns,uptime:()=>Ps});function Es(){if(typeof cr>"u"){var r=new ArrayBuffer(2),i=new Uint8Array(r),s=new Uint16Array(r);if(i[0]=1,i[1]=2,s[0]===258)cr="BE";else if(s[0]===513)cr="LE";else throw new Error("unable to figure out endianess")}return cr}function qs(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function As(){return[]}function Ps(){return 0}function Rs(){return Number.MAX_VALUE}function Is(){return Number.MAX_VALUE}function Cs(){return[]}function Ns(){return"Browser"}function js(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function Ms(){}function Ds(){}function rl(){return"javascript"}function tl(){return"browser"}function ut(){return"/tmp"}var cr,ct,lt,Ls,nl=Me({"node-modules-polyfills:os"(){I(),ct=ut,lt=` +`,Ls={EOL:lt,tmpdir:ct,tmpDir:ut,networkInterfaces:Ms,getNetworkInterfaces:Ds,release:js,type:Ns,cpus:Cs,totalmem:Is,freemem:Rs,uptime:Ps,loadavg:As,hostname:qs,endianness:Es}}}),il=C({"node-modules-polyfills-commonjs:os"(r,i){I();var s=(nl(),gt(Ts));if(s&&s.default){i.exports=s.default;for(let l in s)i.exports[l]=s[l]}else s&&(i.exports=s)}}),sl=C({"node_modules/detect-newline/index.js"(r,i){"use strict";I();var s=l=>{if(typeof l!="string")throw new TypeError("Expected a string");let o=l.match(/(?:\r?\n)/g)||[];if(o.length===0)return;let h=o.filter(p=>p===`\r +`).length,f=o.length-h;return h>f?`\r +`:` +`};i.exports=s,i.exports.graceful=l=>typeof l=="string"&&s(l)||` +`}}),ol=C({"node_modules/jest-docblock/build/index.js"(r){"use strict";I(),Object.defineProperty(r,"__esModule",{value:!0}),r.extract=n,r.parse=m,r.parseWithComments=v,r.print=y,r.strip=u;function i(){let d=il();return i=function(){return d},d}function s(){let d=l(sl());return s=function(){return d},d}function l(d){return d&&d.__esModule?d:{default:d}}var o=/\*\/$/,h=/^\/\*\*/,f=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,p=/(^|\s+)\/\/([^\r\n]*)/g,g=/^(\r?\n)+/,c=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,t=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,e=/(\r?\n|^) *\* ?/g,a=[];function n(d){let _=d.match(f);return _?_[0].trimLeft():""}function u(d){let _=d.match(f);return _&&_[0]?d.substring(_[0].length):d}function m(d){return v(d).pragmas}function v(d){let _=(0,s().default)(d)||i().EOL;d=d.replace(h,"").replace(o,"").replace(e,"$1");let O="";for(;O!==d;)O=d,d=d.replace(c,"".concat(_,"$1 $2").concat(_));d=d.replace(g,"").trimRight();let S=Object.create(null),M=d.replace(t,"").replace(g,"").trimRight(),R;for(;R=t.exec(d);){let $=R[2].replace(p,"");typeof S[R[1]]=="string"||Array.isArray(S[R[1]])?S[R[1]]=a.concat(S[R[1]],$):S[R[1]]=$}return{comments:M,pragmas:S}}function y(d){let{comments:_="",pragmas:O={}}=d,S=(0,s().default)(_)||i().EOL,M="/**",R=" *",$=" */",J=Object.keys(O),X=J.map(K=>w(K,O[K])).reduce((K,W)=>K.concat(W),[]).map(K=>R+" "+K+S).join("");if(!_){if(J.length===0)return"";if(J.length===1&&!Array.isArray(O[J[0]])){let K=O[J[0]];return"".concat(M," ").concat(w(J[0],K)[0]).concat($)}}let F=_.split(S).map(K=>"".concat(R," ").concat(K)).join(S)+S;return M+S+(_?F:"")+(_&&J.length?R+S:"")+X+$}function w(d,_){return a.concat(_).map(O=>"@".concat(d," ").concat(O).trim())}}}),al=C({"src/common/end-of-line.js"(r,i){"use strict";I();function s(f){let p=f.indexOf("\r");return p>=0?f.charAt(p+1)===` +`?"crlf":"cr":"lf"}function l(f){switch(f){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function o(f,p){let g;switch(p){case` +`:g=/\n/g;break;case"\r":g=/\r/g;break;case`\r +`:g=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(p),"."))}let c=f.match(g);return c?c.length:0}function h(f){return f.replace(/\r\n?/g,` +`)}i.exports={guessEndOfLine:s,convertEndOfLineToChars:l,countEndOfLineChars:o,normalizeEndOfLine:h}}}),ul=C({"src/language-js/utils/get-shebang.js"(r,i){"use strict";I();function s(l){if(!l.startsWith("#!"))return"";let o=l.indexOf(` +`);return o===-1?l:l.slice(0,o)}i.exports=s}}),cl=C({"src/language-js/pragma.js"(r,i){"use strict";I();var{parseWithComments:s,strip:l,extract:o,print:h}=ol(),{normalizeEndOfLine:f}=al(),p=ul();function g(e){let a=p(e);a&&(e=e.slice(a.length+1));let n=o(e),{pragmas:u,comments:m}=s(n);return{shebang:a,text:e,pragmas:u,comments:m}}function c(e){let a=Object.keys(g(e).pragmas);return a.includes("prettier")||a.includes("format")}function t(e){let{shebang:a,text:n,pragmas:u,comments:m}=g(e),v=l(n),y=h({pragmas:Object.assign({format:""},u),comments:m.trimStart()});return(a?"".concat(a,` +`):"")+f(y)+(v.startsWith(` +`)?` +`:` + +`)+v}i.exports={hasPragma:c,insertPragma:t}}}),ll=C({"src/language-css/pragma.js"(r,i){"use strict";I();var s=cl(),l=Os();function o(f){return s.hasPragma(l(f).content)}function h(f){let{frontMatter:p,content:g}=l(f);return(p?p.raw+` + +`:"")+s.insertPragma(g)}i.exports={hasPragma:o,insertPragma:h}}}),fl=C({"src/utils/text/skip.js"(r,i){"use strict";I();function s(p){return(g,c,t)=>{let e=t&&t.backwards;if(c===!1)return!1;let{length:a}=g,n=c;for(;n>=0&&n0}i.exports=s}}),dl=C({"src/language-css/utils/has-scss-interpolation.js"(r,i){"use strict";I();var s=hl();function l(o){if(s(o)){for(let h=o.length-1;h>0;h--)if(o[h].type==="word"&&o[h].value==="{"&&o[h-1].type==="word"&&o[h-1].value.endsWith("#"))return!0}return!1}i.exports=l}}),vl=C({"src/language-css/utils/has-string-or-function.js"(r,i){"use strict";I();function s(l){return l.some(o=>o.type==="string"||o.type==="func")}i.exports=s}}),ml=C({"src/language-css/utils/is-less-parser.js"(r,i){"use strict";I();function s(l){return l.parser==="css"||l.parser==="less"}i.exports=s}}),gl=C({"src/language-css/utils/is-scss.js"(r,i){"use strict";I();function s(l,o){return l==="less"||l==="scss"?l==="scss":/(?:\w\s*:\s*[^:}]+|#){|@import[^\n]+(?:url|,)/.test(o)}i.exports=s}}),yl=C({"src/language-css/utils/is-scss-nested-property-node.js"(r,i){"use strict";I();function s(l){return l.selector?l.selector.replace(/\/\*.*?\*\//,"").replace(/\/\/.*\n/,"").trim().endsWith(":"):!1}i.exports=s}}),wl=C({"src/language-css/utils/is-scss-variable.js"(r,i){"use strict";I();function s(l){return Boolean((l==null?void 0:l.type)==="word"&&l.value.startsWith("$"))}i.exports=s}}),_l=C({"src/language-css/utils/stringify-node.js"(r,i){"use strict";I();function s(l){var o,h,f;if(l.groups){var p,g,c;let y=((p=l.open)===null||p===void 0?void 0:p.value)||"",w=l.groups.map(_=>s(_)).join(((g=l.groups[0])===null||g===void 0?void 0:g.type)==="comma_group"?",":""),d=((c=l.close)===null||c===void 0?void 0:c.value)||"";return y+w+d}let t=((o=l.raws)===null||o===void 0?void 0:o.before)||"",e=((h=l.raws)===null||h===void 0?void 0:h.quote)||"",a=l.type==="atword"?"@":"",n=l.value||"",u=l.unit||"",m=l.group?s(l.group):"",v=((f=l.raws)===null||f===void 0?void 0:f.after)||"";return t+e+a+n+e+u+m+v}i.exports=s}}),bl=C({"src/language-css/utils/is-module-rule-name.js"(r,i){"use strict";I();var s=new Set(["import","use","forward"]);function l(o){return s.has(o)}i.exports=l}}),we=C({"node_modules/postcss-values-parser/lib/node.js"(r,i){"use strict";I();var s=function(l,o){let h=new l.constructor;for(let f in l){if(!l.hasOwnProperty(f))continue;let p=l[f],g=typeof p;f==="parent"&&g==="object"?o&&(h[f]=o):f==="source"?h[f]=p:p instanceof Array?h[f]=p.map(c=>s(c,h)):f!=="before"&&f!=="after"&&f!=="between"&&f!=="semicolon"&&(g==="object"&&p!==null&&(p=s(p)),h[f]=p)}return h};i.exports=class{constructor(o){o=o||{},this.raws={before:"",after:""};for(let h in o)this[h]=o[h]}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(){return[this.raws.before,String(this.value),this.raws.after].join("")}clone(o){o=o||{};let h=s(this);for(let f in o)h[f]=o[f];return h}cloneBefore(o){o=o||{};let h=this.clone(o);return this.parent.insertBefore(this,h),h}cloneAfter(o){o=o||{};let h=this.clone(o);return this.parent.insertAfter(this,h),h}replaceWith(){let o=Array.prototype.slice.call(arguments);if(this.parent){for(let h of o)this.parent.insertBefore(this,h);this.remove()}return this}moveTo(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.append(this),this}moveBefore(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertBefore(o,this),this}moveAfter(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertAfter(o,this),this}next(){let o=this.parent.index(this);return this.parent.nodes[o+1]}prev(){let o=this.parent.index(this);return this.parent.nodes[o-1]}toJSON(){let o={};for(let h in this){if(!this.hasOwnProperty(h)||h==="parent")continue;let f=this[h];f instanceof Array?o[h]=f.map(p=>typeof p=="object"&&p.toJSON?p.toJSON():p):typeof f=="object"&&f.toJSON?o[h]=f.toJSON():o[h]=f}return o}root(){let o=this;for(;o.parent;)o=o.parent;return o}cleanRaws(o){delete this.raws.before,delete this.raws.after,o||delete this.raws.between}positionInside(o){let h=this.toString(),f=this.source.start.column,p=this.source.start.line;for(let g=0;g{let p=o(h,f);return p!==!1&&h.walk&&(p=h.walk(o)),p})}walkType(o,h){if(!o||!h)throw new Error("Parameters {type} and {callback} are required.");let f=typeof o=="function";return this.walk((p,g)=>{if(f&&p instanceof o||!f&&p.type===o)return h.call(this,p,g)})}append(o){return o.parent=this,this.nodes.push(o),this}prepend(o){return o.parent=this,this.nodes.unshift(o),this}cleanRaws(o){if(super.cleanRaws(o),this.nodes)for(let h of this.nodes)h.cleanRaws(o)}insertAfter(o,h){let f=this.index(o),p;this.nodes.splice(f+1,0,h);for(let g in this.indexes)p=this.indexes[g],f<=p&&(this.indexes[g]=p+this.nodes.length);return this}insertBefore(o,h){let f=this.index(o),p;this.nodes.splice(f,0,h);for(let g in this.indexes)p=this.indexes[g],f<=p&&(this.indexes[g]=p+this.nodes.length);return this}removeChild(o){o=this.index(o),this.nodes[o].parent=void 0,this.nodes.splice(o,1);let h;for(let f in this.indexes)h=this.indexes[f],h>=o&&(this.indexes[f]=h-1);return this}removeAll(){for(let o of this.nodes)o.parent=void 0;return this.nodes=[],this}every(o){return this.nodes.every(o)}some(o){return this.nodes.some(o)}index(o){return typeof o=="number"?o:this.nodes.indexOf(o)}get first(){if(!!this.nodes)return this.nodes[0]}get last(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}toString(){let o=this.nodes.map(String).join("");return this.value&&(o=this.value+o),this.raws.before&&(o=this.raws.before+o),this.raws.after&&(o+=this.raws.after),o}};l.registerWalker=o=>{let h="walk"+o.name;h.lastIndexOf("s")!==h.length-1&&(h+="s"),!l.prototype[h]&&(l.prototype[h]=function(f){return this.walkType(o,f)})},i.exports=l}}),xl=C({"node_modules/postcss-values-parser/lib/root.js"(r,i){"use strict";I();var s=ue();i.exports=class extends s{constructor(o){super(o),this.type="root"}}}}),zs=C({"node_modules/postcss-values-parser/lib/value.js"(r,i){"use strict";I();var s=ue();i.exports=class extends s{constructor(o){super(o),this.type="value",this.unbalanced=0}}}}),Bs=C({"node_modules/postcss-values-parser/lib/atword.js"(r,i){"use strict";I();var s=ue(),l=class extends s{constructor(o){super(o),this.type="atword"}toString(){let o=this.quoted?this.raws.quote:"";return[this.raws.before,"@",String.prototype.toString.call(this.value),this.raws.after].join("")}};s.registerWalker(l),i.exports=l}}),Fs=C({"node_modules/postcss-values-parser/lib/colon.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="colon"}};s.registerWalker(o),i.exports=o}}),Us=C({"node_modules/postcss-values-parser/lib/comma.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="comma"}};s.registerWalker(o),i.exports=o}}),Ws=C({"node_modules/postcss-values-parser/lib/comment.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="comment",this.inline=Object(h).inline||!1}toString(){return[this.raws.before,this.inline?"//":"/*",String(this.value),this.inline?"":"*/",this.raws.after].join("")}};s.registerWalker(o),i.exports=o}}),$s=C({"node_modules/postcss-values-parser/lib/function.js"(r,i){"use strict";I();var s=ue(),l=class extends s{constructor(o){super(o),this.type="func",this.unbalanced=-1}};s.registerWalker(l),i.exports=l}}),Vs=C({"node_modules/postcss-values-parser/lib/number.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="number",this.unit=Object(h).unit||""}toString(){return[this.raws.before,String(this.value),this.unit,this.raws.after].join("")}};s.registerWalker(o),i.exports=o}}),Gs=C({"node_modules/postcss-values-parser/lib/operator.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="operator"}};s.registerWalker(o),i.exports=o}}),Hs=C({"node_modules/postcss-values-parser/lib/paren.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="paren",this.parenType=""}};s.registerWalker(o),i.exports=o}}),Js=C({"node_modules/postcss-values-parser/lib/string.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="string"}toString(){let h=this.quoted?this.raws.quote:"";return[this.raws.before,h,this.value+"",h,this.raws.after].join("")}};s.registerWalker(o),i.exports=o}}),Ks=C({"node_modules/postcss-values-parser/lib/word.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="word"}};s.registerWalker(o),i.exports=o}}),Qs=C({"node_modules/postcss-values-parser/lib/unicode-range.js"(r,i){"use strict";I();var s=ue(),l=we(),o=class extends l{constructor(h){super(h),this.type="unicode-range"}};s.registerWalker(o),i.exports=o}});function Ys(){throw new Error("setTimeout has not been defined")}function Xs(){throw new Error("clearTimeout has not been defined")}function Zs(r){if(be===setTimeout)return setTimeout(r,0);if((be===Ys||!be)&&setTimeout)return be=setTimeout,setTimeout(r,0);try{return be(r,0)}catch{try{return be.call(null,r,0)}catch{return be.call(this,r,0)}}}function kl(r){if(xe===clearTimeout)return clearTimeout(r);if((xe===Xs||!xe)&&clearTimeout)return xe=clearTimeout,clearTimeout(r);try{return xe(r)}catch{try{return xe.call(null,r)}catch{return xe.call(this,r)}}}function Sl(){!Ie||!Re||(Ie=!1,Re.length?me=Re.concat(me):Ue=-1,me.length&&eo())}function eo(){if(!Ie){var r=Zs(Sl);Ie=!0;for(var i=me.length;i;){for(Re=me,me=[];++Ue1)for(var s=1;skt,debuglog:()=>so,default:()=>vo,deprecate:()=>wt,format:()=>hr,inherits:()=>yt,inspect:()=>ye,isArray:()=>_t,isBoolean:()=>dr,isBuffer:()=>co,isDate:()=>fr,isError:()=>Ve,isFunction:()=>Ge,isNull:()=>He,isNullOrUndefined:()=>oo,isNumber:()=>bt,isObject:()=>Ce,isPrimitive:()=>uo,isRegExp:()=>$e,isString:()=>Je,isSymbol:()=>ao,isUndefined:()=>ge,log:()=>lo});function hr(r){if(!Je(r)){for(var i=[],s=0;s=o)return p;switch(p){case"%s":return String(l[s++]);case"%d":return Number(l[s++]);case"%j":try{return JSON.stringify(l[s++])}catch{return"[Circular]"}default:return p}}),f=l[s];s=3&&(s.depth=arguments[2]),arguments.length>=4&&(s.colors=arguments[3]),dr(i)?s.showHidden=i:i&&kt(s,i),ge(s.showHidden)&&(s.showHidden=!1),ge(s.depth)&&(s.depth=2),ge(s.colors)&&(s.colors=!1),ge(s.customInspect)&&(s.customInspect=!0),s.colors&&(s.stylize=Nl),lr(s,r,s.depth)}function Nl(r,i){var s=ye.styles[i];return s?"\x1B["+ye.colors[s][0]+"m"+r+"\x1B["+ye.colors[s][1]+"m":r}function jl(r,i){return r}function Ml(r){var i={};return r.forEach(function(s,l){i[s]=!0}),i}function lr(r,i,s){if(r.customInspect&&i&&Ge(i.inspect)&&i.inspect!==ye&&!(i.constructor&&i.constructor.prototype===i)){var l=i.inspect(s,r);return Je(l)||(l=lr(r,l,s)),l}var o=Dl(r,i);if(o)return o;var h=Object.keys(i),f=Ml(h);if(r.showHidden&&(h=Object.getOwnPropertyNames(i)),Ve(i)&&(h.indexOf("message")>=0||h.indexOf("description")>=0))return st(i);if(h.length===0){if(Ge(i)){var p=i.name?": "+i.name:"";return r.stylize("[Function"+p+"]","special")}if($e(i))return r.stylize(RegExp.prototype.toString.call(i),"regexp");if(fr(i))return r.stylize(Date.prototype.toString.call(i),"date");if(Ve(i))return st(i)}var g="",c=!1,t=["{","}"];if(_t(i)&&(c=!0,t=["[","]"]),Ge(i)){var e=i.name?": "+i.name:"";g=" [Function"+e+"]"}if($e(i)&&(g=" "+RegExp.prototype.toString.call(i)),fr(i)&&(g=" "+Date.prototype.toUTCString.call(i)),Ve(i)&&(g=" "+st(i)),h.length===0&&(!c||i.length==0))return t[0]+g+t[1];if(s<0)return $e(i)?r.stylize(RegExp.prototype.toString.call(i),"regexp"):r.stylize("[Object]","special");r.seen.push(i);var a;return c?a=Ll(r,i,s,f,h):a=h.map(function(n){return ft(r,i,s,f,n,c)}),r.seen.pop(),zl(a,g,t)}function Dl(r,i){if(ge(i))return r.stylize("undefined","undefined");if(Je(i)){var s="'"+JSON.stringify(i).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return r.stylize(s,"string")}if(bt(i))return r.stylize(""+i,"number");if(dr(i))return r.stylize(""+i,"boolean");if(He(i))return r.stylize("null","null")}function st(r){return"["+Error.prototype.toString.call(r)+"]"}function Ll(r,i,s,l,o){for(var h=[],f=0,p=i.length;f-1&&(h?p=p.split(` +`).map(function(c){return" "+c}).join(` +`).substr(2):p=` +`+p.split(` +`).map(function(c){return" "+c}).join(` +`))):p=r.stylize("[Circular]","special")),ge(f)){if(h&&o.match(/^\d+$/))return p;f=JSON.stringify(""+o),f.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(f=f.substr(1,f.length-2),f=r.stylize(f,"name")):(f=f.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),f=r.stylize(f,"string"))}return f+": "+p}function zl(r,i,s){var l=0,o=r.reduce(function(h,f){return l++,f.indexOf(` +`)>=0&&l++,h+f.replace(/\u001b\[\d\d?m/g,"").length+1},0);return o>60?s[0]+(i===""?"":i+` + `)+" "+r.join(`, + `)+" "+s[1]:s[0]+i+" "+r.join(", ")+" "+s[1]}function _t(r){return Array.isArray(r)}function dr(r){return typeof r=="boolean"}function He(r){return r===null}function oo(r){return r==null}function bt(r){return typeof r=="number"}function Je(r){return typeof r=="string"}function ao(r){return typeof r=="symbol"}function ge(r){return r===void 0}function $e(r){return Ce(r)&&xt(r)==="[object RegExp]"}function Ce(r){return typeof r=="object"&&r!==null}function fr(r){return Ce(r)&&xt(r)==="[object Date]"}function Ve(r){return Ce(r)&&(xt(r)==="[object Error]"||r instanceof Error)}function Ge(r){return typeof r=="function"}function uo(r){return r===null||typeof r=="boolean"||typeof r=="number"||typeof r=="string"||typeof r=="symbol"||typeof r>"u"}function co(r){return Buffer.isBuffer(r)}function xt(r){return Object.prototype.toString.call(r)}function ot(r){return r<10?"0"+r.toString(10):r.toString(10)}function Bl(){var r=new Date,i=[ot(r.getHours()),ot(r.getMinutes()),ot(r.getSeconds())].join(":");return[r.getDate(),ho[r.getMonth()],i].join(" ")}function lo(){console.log("%s - %s",Bl(),hr.apply(null,arguments))}function kt(r,i){if(!i||!Ce(i))return r;for(var s=Object.keys(i),l=s.length;l--;)r[s[l]]=i[s[l]];return r}function fo(r,i){return Object.prototype.hasOwnProperty.call(r,i)}var po,Fe,at,ho,vo,Fl=Me({"node-modules-polyfills:util"(){I(),Il(),Cl(),po=/%[sdj%]/g,Fe={},ye.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},ye.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},ho=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vo={inherits:yt,_extend:kt,log:lo,isBuffer:co,isPrimitive:uo,isFunction:Ge,isError:Ve,isDate:fr,isObject:Ce,isRegExp:$e,isUndefined:ge,isSymbol:ao,isString:Je,isNumber:bt,isNullOrUndefined:oo,isNull:He,isBoolean:dr,isArray:_t,inspect:ye,deprecate:wt,format:hr,debuglog:so}}}),Ul=C({"node-modules-polyfills-commonjs:util"(r,i){I();var s=(Fl(),gt(io));if(s&&s.default){i.exports=s.default;for(let l in s)i.exports[l]=s[l]}else s&&(i.exports=s)}}),Wl=C({"node_modules/postcss-values-parser/lib/errors/TokenizeError.js"(r,i){"use strict";I();var s=class extends Error{constructor(l){super(l),this.name=this.constructor.name,this.message=l||"An error ocurred while tokzenizing.",typeof Error.captureStackTrace=="function"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(l).stack}};i.exports=s}}),$l=C({"node_modules/postcss-values-parser/lib/tokenize.js"(r,i){"use strict";I();var s="{".charCodeAt(0),l="}".charCodeAt(0),o="(".charCodeAt(0),h=")".charCodeAt(0),f="'".charCodeAt(0),p='"'.charCodeAt(0),g="\\".charCodeAt(0),c="/".charCodeAt(0),t=".".charCodeAt(0),e=",".charCodeAt(0),a=":".charCodeAt(0),n="*".charCodeAt(0),u="-".charCodeAt(0),m="+".charCodeAt(0),v="#".charCodeAt(0),y=` +`.charCodeAt(0),w=" ".charCodeAt(0),d="\f".charCodeAt(0),_=" ".charCodeAt(0),O="\r".charCodeAt(0),S="@".charCodeAt(0),M="e".charCodeAt(0),R="E".charCodeAt(0),$="0".charCodeAt(0),J="9".charCodeAt(0),X="u".charCodeAt(0),F="U".charCodeAt(0),K=/[ \n\t\r\{\(\)'"\\;,/]/g,W=/[ \n\t\r\(\)\{\}\*:;@!&'"\+\|~>,\[\]\\]|\/(?=\*)/g,T=/[ \n\t\r\(\)\{\}\*:;@!&'"\-\+\|~>,\[\]\\]|\//g,D=/^[a-z0-9]/i,j=/^[a-f0-9?\-]/i,N=Ul(),b=Wl();i.exports=function(G,L){L=L||{};let B=[],P=G.valueOf(),Z=P.length,V=-1,q=1,x=0,k=0,z=null,A,E,H,U,re,ne,ce,fe,te,ie,ae,se;function le(Qe){let _e=N.format("Unclosed %s at line: %d, column: %d, token: %d",Qe,q,x-V,x);throw new b(_e)}function pe(){let Qe=N.format("Syntax error at line: %d, column: %d, token: %d",q,x-V,x);throw new b(Qe)}for(;x0&&B[B.length-1][0]==="word"&&B[B.length-1][1]==="url",B.push(["(","(",q,x-V,q,E-V,x]);break;case h:k--,z=z&&k>0,B.push([")",")",q,x-V,q,E-V,x]);break;case f:case p:H=A===f?"'":'"',E=x;do for(ie=!1,E=P.indexOf(H,E+1),E===-1&&le("quote",H),ae=E;P.charCodeAt(ae-1)===g;)ae-=1,ie=!ie;while(ie);B.push(["string",P.slice(x,E+1),q,x-V,q,E-V,x]),x=E;break;case S:K.lastIndex=x+1,K.test(P),K.lastIndex===0?E=P.length-1:E=K.lastIndex-2,B.push(["atword",P.slice(x,E+1),q,x-V,q,E-V,x]),x=E;break;case g:E=x,A=P.charCodeAt(E+1),ce&&A!==c&&A!==w&&A!==y&&A!==_&&A!==O&&A!==d&&(E+=1),B.push(["word",P.slice(x,E+1),q,x-V,q,E-V,x]),x=E;break;case m:case u:case n:E=x+1,se=P.slice(x+1,E+1);let Qe=P.slice(x-1,x);if(A===u&&se.charCodeAt(0)===u){E++,B.push(["word",P.slice(x,E),q,x-V,q,E-V,x]),x=E-1;break}B.push(["operator",P.slice(x,E),q,x-V,q,E-V,x]),x=E-1;break;default:if(A===c&&(P.charCodeAt(x+1)===n||L.loose&&!z&&P.charCodeAt(x+1)===c)){if(P.charCodeAt(x+1)===n)E=P.indexOf("*/",x+2)+1,E===0&&le("comment","*/");else{let Le=P.indexOf(` +`,x+2);E=Le!==-1?Le-1:Z}ne=P.slice(x,E+1),U=ne.split(` +`),re=U.length-1,re>0?(fe=q+re,te=E-U[re].length):(fe=q,te=V),B.push(["comment",ne,q,x-V,fe,E-te,x]),V=te,q=fe,x=E}else if(A===v&&!D.test(P.slice(x+1,x+2)))E=x+1,B.push(["#",P.slice(x,E),q,x-V,q,E-V,x]),x=E-1;else if((A===X||A===F)&&P.charCodeAt(x+1)===m){E=x+2;do E+=1,A=P.charCodeAt(E);while(E=$&&A<=J&&(_e=T),_e.lastIndex=x+1,_e.test(P),_e.lastIndex===0?E=P.length-1:E=_e.lastIndex-2,_e===T||A===t){let Le=P.charCodeAt(E),Rt=P.charCodeAt(E+1),It=P.charCodeAt(E+2);(Le===M||Le===R)&&(Rt===u||Rt===m)&&It>=$&&It<=J&&(T.lastIndex=E+2,T.test(P),T.lastIndex===0?E=P.length-1:E=T.lastIndex-2)}B.push(["word",P.slice(x,E+1),q,x-V,q,E-V,x]),x=E}break}x++}return B}}}),mo=C({"node_modules/flatten/index.js"(r,i){I(),i.exports=function(l,o){if(o=typeof o=="number"?o:1/0,!o)return Array.isArray(l)?l.map(function(f){return f}):l;return h(l,1);function h(f,p){return f.reduce(function(g,c){return Array.isArray(c)&&pS-M)}i.exports=class{constructor(S,M){let R={loose:!1};this.cache=[],this.input=S,this.options=Object.assign({},R,M),this.position=0,this.unbalanced=0,this.root=new s;let $=new l;this.root.append($),this.current=$,this.tokens=m(S,this.options)}parse(){return this.loop()}colon(){let S=this.currToken;this.newNode(new h({value:S[1],source:{start:{line:S[2],column:S[3]},end:{line:S[4],column:S[5]}},sourceIndex:S[6]})),this.position++}comma(){let S=this.currToken;this.newNode(new f({value:S[1],source:{start:{line:S[2],column:S[3]},end:{line:S[4],column:S[5]}},sourceIndex:S[6]})),this.position++}comment(){let S=!1,M=this.currToken[1].replace(/\/\*|\*\//g,""),R;this.options.loose&&M.startsWith("//")&&(M=M.substring(2),S=!0),R=new p({value:M,inline:S,source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]}),this.newNode(R),this.position++}error(S,M){throw new d(S+" at line: ".concat(M[2],", column ").concat(M[3]))}loop(){for(;this.position0&&(this.current.type==="func"&&this.current.value==="calc"?this.prevToken[0]!=="space"&&this.prevToken[0]!=="("?this.error("Syntax Error",this.currToken):this.nextToken[0]!=="space"&&this.nextToken[0]!=="word"?this.error("Syntax Error",this.currToken):this.nextToken[0]==="word"&&this.current.last.type!=="operator"&&this.current.last.value!=="("&&this.error("Syntax Error",this.currToken):(this.nextToken[0]==="space"||this.nextToken[0]==="operator"||this.prevToken[0]==="operator")&&this.error("Syntax Error",this.currToken)),this.options.loose){if((!this.current.nodes.length||this.current.last&&this.current.last.type==="operator")&&this.nextToken[0]==="word")return this.word()}else if(this.nextToken[0]==="word")return this.word()}return M=new t({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),this.position++,this.newNode(M)}parseTokens(){switch(this.currToken[0]){case"space":this.space();break;case"colon":this.colon();break;case"comma":this.comma();break;case"comment":this.comment();break;case"(":this.parenOpen();break;case")":this.parenClose();break;case"atword":case"word":this.word();break;case"operator":this.operator();break;case"string":this.string();break;case"unicoderange":this.unicodeRange();break;default:this.word();break}}parenOpen(){let S=1,M=this.position+1,R=this.currToken,$;for(;M=this.tokens.length-1&&!this.current.unbalanced)&&(this.current.unbalanced--,this.current.unbalanced<0&&this.error("Expected opening parenthesis",S),!this.current.unbalanced&&this.cache.length&&(this.current=this.cache.pop()))}space(){let S=this.currToken;this.position===this.tokens.length-1||this.nextToken[0]===","||this.nextToken[0]===")"?(this.current.last.raws.after+=S[1],this.position++):(this.spaces=S[1],this.position++)}unicodeRange(){let S=this.currToken;this.newNode(new u({value:S[1],source:{start:{line:S[2],column:S[3]},end:{line:S[4],column:S[5]}},sourceIndex:S[6]})),this.position++}splitWord(){let S=this.nextToken,M=this.currToken[1],R=/^[\+\-]?((\d+(\.\d*)?)|(\.\d+))([eE][\+\-]?\d+)?/,$=/^(?!\#([a-z0-9]+))[\#\{\}]/gi,J,X;if(!$.test(M))for(;S&&S[0]==="word";)this.position++,M+=this.currToken[1],S=this.nextToken;J=y(M,"@"),X=_(w(v([[0],J]))),X.forEach((F,K)=>{let W=X[K+1]||M.length,T=M.slice(F,W),D;if(~J.indexOf(F))D=new o({value:T.slice(1),source:{start:{line:this.currToken[2],column:this.currToken[3]+F},end:{line:this.currToken[4],column:this.currToken[3]+(W-1)}},sourceIndex:this.currToken[6]+X[K]});else if(R.test(this.currToken[1])){let j=T.replace(R,"");D=new c({value:T.replace(j,""),source:{start:{line:this.currToken[2],column:this.currToken[3]+F},end:{line:this.currToken[4],column:this.currToken[3]+(W-1)}},sourceIndex:this.currToken[6]+X[K],unit:j})}else D=new(S&&S[0]==="("?g:n)({value:T,source:{start:{line:this.currToken[2],column:this.currToken[3]+F},end:{line:this.currToken[4],column:this.currToken[3]+(W-1)}},sourceIndex:this.currToken[6]+X[K]}),D.type==="word"?(D.isHex=/^#(.+)/.test(T),D.isColor=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(T)):this.cache.push(this.current);this.newNode(D)}),this.position++}string(){let S=this.currToken,M=this.currToken[1],R=/^(\"|\')/,$=R.test(M),J="",X;$&&(J=M.match(R)[0],M=M.slice(1,M.length-1)),X=new a({value:M,source:{start:{line:S[2],column:S[3]},end:{line:S[4],column:S[5]}},sourceIndex:S[6],quoted:$}),X.raws.quote=J,this.newNode(X),this.position++}word(){return this.splitWord()}newNode(S){return this.spaces&&(S.raws.before+=this.spaces,this.spaces=""),this.current.append(S)}get currToken(){return this.tokens[this.position]}get nextToken(){return this.tokens[this.position+1]}get prevToken(){return this.tokens[this.position-1]}}}}),Hl=C({"node_modules/postcss-values-parser/lib/index.js"(r,i){"use strict";I();var s=Gl(),l=Bs(),o=Fs(),h=Us(),f=Ws(),p=$s(),g=Vs(),c=Gs(),t=Hs(),e=Js(),a=Qs(),n=zs(),u=Ks(),m=function(v,y){return new s(v,y)};m.atword=function(v){return new l(v)},m.colon=function(v){return new o(Object.assign({value:":"},v))},m.comma=function(v){return new h(Object.assign({value:","},v))},m.comment=function(v){return new f(v)},m.func=function(v){return new p(v)},m.number=function(v){return new g(v)},m.operator=function(v){return new c(v)},m.paren=function(v){return new t(Object.assign({value:"("},v))},m.string=function(v){return new e(Object.assign({quote:"'"},v))},m.value=function(v){return new n(v)},m.word=function(v){return new u(v)},m.unicodeRange=function(v){return new a(v)},i.exports=m}}),De=C({"node_modules/postcss-selector-parser/dist/selectors/node.js"(r,i){"use strict";I(),r.__esModule=!0;var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f};function l(f,p){if(!(f instanceof p))throw new TypeError("Cannot call a class as a function")}var o=function f(p,g){if((typeof p>"u"?"undefined":s(p))!=="object")return p;var c=new p.constructor;for(var t in p)if(!!p.hasOwnProperty(t)){var e=p[t],a=typeof e>"u"?"undefined":s(e);t==="parent"&&a==="object"?g&&(c[t]=g):e instanceof Array?c[t]=e.map(function(n){return f(n,c)}):c[t]=f(e,c)}return c},h=function(){function f(){var p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};l(this,f);for(var g in p)this[g]=p[g];var c=p.spaces;c=c===void 0?{}:c;var t=c.before,e=t===void 0?"":t,a=c.after,n=a===void 0?"":a;this.spaces={before:e,after:n}}return f.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},f.prototype.replaceWith=function(){if(this.parent){for(var g in arguments)this.parent.insertBefore(this,arguments[g]);this.remove()}return this},f.prototype.next=function(){return this.parent.at(this.parent.index(this)+1)},f.prototype.prev=function(){return this.parent.at(this.parent.index(this)-1)},f.prototype.clone=function(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o(this);for(var t in g)c[t]=g[t];return c},f.prototype.toString=function(){return[this.spaces.before,String(this.value),this.spaces.after].join("")},f}();r.default=h,i.exports=r.default}}),oe=C({"node_modules/postcss-selector-parser/dist/selectors/types.js"(r){"use strict";I(),r.__esModule=!0;var i=r.TAG="tag",s=r.STRING="string",l=r.SELECTOR="selector",o=r.ROOT="root",h=r.PSEUDO="pseudo",f=r.NESTING="nesting",p=r.ID="id",g=r.COMMENT="comment",c=r.COMBINATOR="combinator",t=r.CLASS="class",e=r.ATTRIBUTE="attribute",a=r.UNIVERSAL="universal"}}),St=C({"node_modules/postcss-selector-parser/dist/selectors/container.js"(r,i){"use strict";I(),r.__esModule=!0;var s=function(){function n(u,m){for(var v=0;v=v&&(this.indexes[w]=y-1);return this},u.prototype.removeAll=function(){for(var w=this.nodes,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;_.parent=void 0}return this.nodes=[],this},u.prototype.empty=function(){return this.removeAll()},u.prototype.insertAfter=function(v,y){var w=this.index(v);this.nodes.splice(w+1,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},u.prototype.insertBefore=function(v,y){var w=this.index(v);this.nodes.splice(w,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},u.prototype.each=function(v){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var y=this.lastEach;if(this.indexes[y]=0,!!this.length){for(var w=void 0,d=void 0;this.indexes[y],\[\]\\]|\/(?=\*)/g;function X(F){for(var K=[],W=F.css.valueOf(),T=void 0,D=void 0,j=void 0,N=void 0,b=void 0,Q=void 0,G=void 0,L=void 0,B=void 0,P=void 0,Z=void 0,V=W.length,q=-1,x=1,k=0,z=function(E,H){if(F.safe)W+=H,D=W.length-1;else throw F.error("Unclosed "+E,x,k-q,k)};k0?(L=x+b,B=D-N[b].length):(L=x,B=q),K.push(["comment",Q,x,k-q,L,D-B,k]),q=B,x=L,k=D):(J.lastIndex=k+1,J.test(W),J.lastIndex===0?D=W.length-1:D=J.lastIndex-2,K.push(["word",W.slice(k,D+1),x,k-q,x,D-q,k]),k=D);break}k++}return K}i.exports=r.default}}),Ql=C({"node_modules/postcss-selector-parser/dist/parser.js"(r,i){"use strict";I(),r.__esModule=!0;var s=function(){function q(x,k){for(var z=0;z1?(H[0]===""&&(H[0]=!0),U.attribute=this.parseValue(H[2]),U.namespace=this.parseNamespace(H[0])):U.attribute=this.parseValue(E[0]),z=new J.default(U),E[2]){var re=E[2].split(/(\s+i\s*?)$/),ne=re[0].trim();z.value=this.lossy?ne:re[0],re[1]&&(z.insensitive=!0,this.lossy||(z.raws.insensitive=re[1])),z.quoted=ne[0]==="'"||ne[0]==='"',z.raws.unquoted=z.quoted?ne.slice(1,-1):ne}this.newNode(z),this.position++},q.prototype.combinator=function(){if(this.currToken[1]==="|")return this.namespace();for(var k=new W.default({value:"",source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]});this.position1&&k.nextToken&&k.nextToken[0]==="("&&k.error("Misplaced parenthesis.")})}else this.error('Unexpected "'+this.currToken[0]+'" found.')},q.prototype.space=function(){var k=this.currToken;this.position===0||this.prevToken[0]===","||this.prevToken[0]==="("?(this.spaces=this.parseSpace(k[1]),this.position++):this.position===this.tokens.length-1||this.nextToken[0]===","||this.nextToken[0]===")"?(this.current.last.spaces.after=this.parseSpace(k[1]),this.position++):this.combinator()},q.prototype.string=function(){var k=this.currToken;this.newNode(new S.default({value:this.currToken[1],source:{start:{line:k[2],column:k[3]},end:{line:k[4],column:k[5]}},sourceIndex:k[6]})),this.position++},q.prototype.universal=function(k){var z=this.nextToken;if(z&&z[1]==="|")return this.position++,this.namespace();this.newNode(new F.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),k),this.position++},q.prototype.splitWord=function(k,z){for(var A=this,E=this.nextToken,H=this.currToken[1];E&&E[0]==="word";){this.position++;var U=this.currToken[1];if(H+=U,U.lastIndexOf("\\")===U.length-1){var re=this.nextToken;re&&re[0]==="space"&&(H+=this.parseSpace(re[1]," "),this.position++)}E=this.nextToken}var ne=(0,f.default)(H,"."),ce=(0,f.default)(H,"#"),fe=(0,f.default)(H,"#{");fe.length&&(ce=ce.filter(function(ie){return!~fe.indexOf(ie)}));var te=(0,N.default)((0,g.default)((0,o.default)([[0],ne,ce])));te.forEach(function(ie,ae){var se=te[ae+1]||H.length,le=H.slice(ie,se);if(ae===0&&z)return z.call(A,le,te.length);var pe=void 0;~ne.indexOf(ie)?pe=new u.default({value:le.slice(1),source:{start:{line:A.currToken[2],column:A.currToken[3]+ie},end:{line:A.currToken[4],column:A.currToken[3]+(se-1)}},sourceIndex:A.currToken[6]+te[ae]}):~ce.indexOf(ie)?pe=new w.default({value:le.slice(1),source:{start:{line:A.currToken[2],column:A.currToken[3]+ie},end:{line:A.currToken[4],column:A.currToken[3]+(se-1)}},sourceIndex:A.currToken[6]+te[ae]}):pe=new _.default({value:le,source:{start:{line:A.currToken[2],column:A.currToken[3]+ie},end:{line:A.currToken[4],column:A.currToken[3]+(se-1)}},sourceIndex:A.currToken[6]+te[ae]}),A.newNode(pe,k)}),this.position++},q.prototype.word=function(k){var z=this.nextToken;return z&&z[1]==="|"?(this.position++,this.namespace()):this.splitWord(k)},q.prototype.loop=function(){for(;this.position1&&arguments[1]!==void 0?arguments[1]:{},a=new o.default({css:t,error:function(u){throw new Error(u)},options:e});return this.res=a,this.func(a),this},s(g,[{key:"result",get:function(){return String(this.res)}}]),g}();r.default=p,i.exports=r.default}}),Xl=C({"node_modules/postcss-selector-parser/dist/index.js"(r,i){"use strict";I(),r.__esModule=!0;var s=Yl(),l=T(s),o=Eo(),h=T(o),f=bo(),p=T(f),g=Ao(),c=T(g),t=xo(),e=T(t),a=ko(),n=T(a),u=Po(),m=T(u),v=To(),y=T(v),w=wo(),d=T(w),_=_o(),O=T(_),S=Oo(),M=T(S),R=So(),$=T(R),J=qo(),X=T(J),F=oe(),K=W(F);function W(j){if(j&&j.__esModule)return j;var N={};if(j!=null)for(var b in j)Object.prototype.hasOwnProperty.call(j,b)&&(N[b]=j[b]);return N.default=j,N}function T(j){return j&&j.__esModule?j:{default:j}}var D=function(N){return new l.default(N)};D.attribute=function(j){return new h.default(j)},D.className=function(j){return new p.default(j)},D.combinator=function(j){return new c.default(j)},D.comment=function(j){return new e.default(j)},D.id=function(j){return new n.default(j)},D.nesting=function(j){return new m.default(j)},D.pseudo=function(j){return new y.default(j)},D.root=function(j){return new d.default(j)},D.selector=function(j){return new O.default(j)},D.string=function(j){return new M.default(j)},D.tag=function(j){return new $.default(j)},D.universal=function(j){return new X.default(j)},Object.keys(K).forEach(function(j){j!=="__esModule"&&(D[j]=K[j])}),r.default=D,i.exports=r.default}}),Ro=C({"node_modules/postcss-media-query-parser/dist/nodes/Node.js"(r){"use strict";I(),Object.defineProperty(r,"__esModule",{value:!0});function i(s){this.after=s.after,this.before=s.before,this.type=s.type,this.value=s.value,this.sourceIndex=s.sourceIndex}r.default=i}}),Io=C({"node_modules/postcss-media-query-parser/dist/nodes/Container.js"(r){"use strict";I(),Object.defineProperty(r,"__esModule",{value:!0});var i=Ro(),s=l(i);function l(h){return h&&h.__esModule?h:{default:h}}function o(h){var f=this;this.constructor(h),this.nodes=h.nodes,this.after===void 0&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:""),this.before===void 0&&(this.before=this.nodes.length>0?this.nodes[0].before:""),this.sourceIndex===void 0&&(this.sourceIndex=this.before.length),this.nodes.forEach(function(p){p.parent=f})}o.prototype=Object.create(s.default.prototype),o.constructor=s.default,o.prototype.walk=function(f,p){for(var g=typeof f=="string"||f instanceof RegExp,c=g?p:f,t=typeof f=="string"?new RegExp(f):f,e=0;e0&&(e[w-1].after=u.before),u.type===void 0){if(w>0){if(e[w-1].type==="media-feature-expression"){u.type="keyword";continue}if(e[w-1].value==="not"||e[w-1].value==="only"){u.type="media-type";continue}if(e[w-1].value==="and"){u.type="media-feature-expression";continue}e[w-1].type==="media-type"&&(e[w+1]?u.type=e[w+1].type==="media-feature-expression"?"keyword":"media-feature-expression":u.type="media-feature-expression")}if(w===0){if(!e[w+1]){u.type="media-type";continue}if(e[w+1]&&(e[w+1].type==="media-feature-expression"||e[w+1].type==="keyword")){u.type="media-type";continue}if(e[w+2]){if(e[w+2].type==="media-feature-expression"){u.type="media-type",e[w+1].type="keyword";continue}if(e[w+2].type==="keyword"){u.type="keyword",e[w+1].type="media-type";continue}}if(e[w+3]&&e[w+3].type==="media-feature-expression"){u.type="keyword",e[w+1].type="media-type",e[w+2].type="keyword";continue}}}return e}function g(c){var t=[],e=0,a=0,n=/^(\s*)url\s*\(/.exec(c);if(n!==null){for(var u=n[0].length,m=1;m>0;){var v=c[u];v==="("&&m++,v===")"&&m--,u++}t.unshift(new s.default({type:"url",value:c.substring(0,u).trim(),sourceIndex:n[1].length,before:n[1],after:/^(\s*)/.exec(c.substring(u))[1]})),e=u}for(var y=e;yLo,default:()=>Bo,delimiter:()=>ht,dirname:()=>Do,extname:()=>zo,isAbsolute:()=>Tt,join:()=>jo,normalize:()=>Ot,relative:()=>Mo,resolve:()=>pr,sep:()=>pt});function No(r,i){for(var s=0,l=r.length-1;l>=0;l--){var o=r[l];o==="."?r.splice(l,1):o===".."?(r.splice(l,1),s++):s&&(r.splice(l,1),s--)}if(i)for(;s--;s)r.unshift("..");return r}function pr(){for(var r="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var l=s>=0?arguments[s]:"/";if(typeof l!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!l)continue;r=l+"/"+r,i=l.charAt(0)==="/"}return r=No(Et(r.split("/"),function(o){return!!o}),!i).join("/"),(i?"/":"")+r||"."}function Ot(r){var i=Tt(r),s=Fo(r,-1)==="/";return r=No(Et(r.split("/"),function(l){return!!l}),!i).join("/"),!r&&!i&&(r="."),r&&s&&(r+="/"),(i?"/":"")+r}function Tt(r){return r.charAt(0)==="/"}function jo(){var r=Array.prototype.slice.call(arguments,0);return Ot(Et(r,function(i,s){if(typeof i!="string")throw new TypeError("Arguments to path.join must be strings");return i}).join("/"))}function Mo(r,i){r=pr(r).substr(1),i=pr(i).substr(1);function s(c){for(var t=0;t=0&&c[e]==="";e--);return t>e?[]:c.slice(t,e-t+1)}for(var l=s(r.split("/")),o=s(i.split("/")),h=Math.min(l.length,o.length),f=h,p=0;p"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function t(m){return Function.toString.call(m).indexOf("[native code]")!==-1}function e(m,v){return e=Object.setPrototypeOf||function(w,d){return w.__proto__=d,w},e(m,v)}function a(m){return a=Object.setPrototypeOf?Object.getPrototypeOf:function(y){return y.__proto__||Object.getPrototypeOf(y)},a(m)}var n=function(m){f(v,m);function v(w,d,_,O,S,M){var R;return R=m.call(this,w)||this,R.name="CssSyntaxError",R.reason=w,S&&(R.file=S),O&&(R.source=O),M&&(R.plugin=M),typeof d<"u"&&typeof _<"u"&&(R.line=d,R.column=_),R.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(h(R),v),R}var y=v.prototype;return y.setMessage=function(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason},y.showSourceCode=function(d){var _=this;if(!this.source)return"";var O=this.source;l.default&&(typeof d>"u"&&(d=s.default.isColorSupported),d&&(O=(0,l.default)(O)));var S=O.split(/\r?\n/),M=Math.max(this.line-3,0),R=Math.min(this.line+2,S.length),$=String(R).length;function J(F){return d&&s.default.red?s.default.red(s.default.bold(F)):F}function X(F){return d&&s.default.gray?s.default.gray(F):F}return S.slice(M,R).map(function(F,K){var W=M+1+K,T=" "+(" "+W).slice(-$)+" | ";if(W===_.line){var D=X(T.replace(/\d/g," "))+F.slice(0,_.column-1).replace(/[^\t]/g," ");return J(">")+X(T)+F+` + `+D+J("^")}return" "+X(T)+F}).join(` +`)},y.toString=function(){var d=this.showSourceCode();return d&&(d=` + +`+d+` +`),this.name+": "+this.message+d},v}(p(Error)),u=n;r.default=u,i.exports=r.default}}),of=C({"node_modules/postcss/lib/previous-map.js"(r,i){I(),i.exports=class{}}}),mr=C({"node_modules/postcss/lib/input.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s=h(tf()),l=h(Uo()),o=h(of());function h(e){return e&&e.__esModule?e:{default:e}}function f(e,a){for(var n=0;n"u"||typeof n=="object"&&!n.toString)throw new Error("PostCSS received "+n+" instead of CSS string");this.css=n.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,u.from&&(/^\w+:\/\//.test(u.from)||s.default.isAbsolute(u.from)?this.file=u.from:this.file=s.default.resolve(u.from));var m=new o.default(this.css,u);if(m.text){this.map=m;var v=m.consumer().file;!this.file&&v&&(this.file=this.mapResolve(v))}this.file||(g+=1,this.id=""),this.map&&(this.map.file=this.from)}var a=e.prototype;return a.error=function(u,m,v,y){y===void 0&&(y={});var w,d=this.origin(m,v);return d?w=new l.default(u,d.line,d.column,d.source,d.file,y.plugin):w=new l.default(u,m,v,this.css,this.file,y.plugin),w.input={line:m,column:v,source:this.css},this.file&&(w.input.file=this.file),w},a.origin=function(u,m){if(!this.map)return!1;var v=this.map.consumer(),y=v.originalPositionFor({line:u,column:m});if(!y.source)return!1;var w={file:this.mapResolve(y.source),line:y.line,column:y.column},d=v.sourceContentFor(y.source);return d&&(w.source=d),w},a.mapResolve=function(u){return/^\w+:\/\//.test(u)?u:s.default.resolve(this.map.consumer().sourceRoot||".",u)},p(e,[{key:"from",get:function(){return this.file||this.id}}]),e}(),t=c;r.default=t,i.exports=r.default}}),gr=C({"node_modules/postcss/lib/stringifier.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s={colon:": ",indent:" ",beforeDecl:` +`,beforeRule:` +`,beforeOpen:" ",beforeClose:` +`,beforeComment:` +`,after:` +`,emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};function l(f){return f[0].toUpperCase()+f.slice(1)}var o=function(){function f(g){this.builder=g}var p=f.prototype;return p.stringify=function(c,t){this[c.type](c,t)},p.root=function(c){this.body(c),c.raws.after&&this.builder(c.raws.after)},p.comment=function(c){var t=this.raw(c,"left","commentLeft"),e=this.raw(c,"right","commentRight");this.builder("/*"+t+c.text+e+"*/",c)},p.decl=function(c,t){var e=this.raw(c,"between","colon"),a=c.prop+e+this.rawValue(c,"value");c.important&&(a+=c.raws.important||" !important"),t&&(a+=";"),this.builder(a,c)},p.rule=function(c){this.block(c,this.rawValue(c,"selector")),c.raws.ownSemicolon&&this.builder(c.raws.ownSemicolon,c,"end")},p.atrule=function(c,t){var e="@"+c.name,a=c.params?this.rawValue(c,"params"):"";if(typeof c.raws.afterName<"u"?e+=c.raws.afterName:a&&(e+=" "),c.nodes)this.block(c,e+a);else{var n=(c.raws.between||"")+(t?";":"");this.builder(e+a+n,c)}},p.body=function(c){for(var t=c.nodes.length-1;t>0&&c.nodes[t].type==="comment";)t-=1;for(var e=this.raw(c,"semicolon"),a=0;a"u"&&(a=s[e]),u.rawCache[e]=a,a},p.rawSemicolon=function(c){var t;return c.walk(function(e){if(e.nodes&&e.nodes.length&&e.last.type==="decl"&&(t=e.raws.semicolon,typeof t<"u"))return!1}),t},p.rawEmptyBody=function(c){var t;return c.walk(function(e){if(e.nodes&&e.nodes.length===0&&(t=e.raws.after,typeof t<"u"))return!1}),t},p.rawIndent=function(c){if(c.raws.indent)return c.raws.indent;var t;return c.walk(function(e){var a=e.parent;if(a&&a!==c&&a.parent&&a.parent===c&&typeof e.raws.before<"u"){var n=e.raws.before.split(` +`);return t=n[n.length-1],t=t.replace(/[^\s]/g,""),!1}}),t},p.rawBeforeComment=function(c,t){var e;return c.walkComments(function(a){if(typeof a.raws.before<"u")return e=a.raws.before,e.indexOf(` +`)!==-1&&(e=e.replace(/[^\n]+$/,"")),!1}),typeof e>"u"?e=this.raw(t,null,"beforeDecl"):e&&(e=e.replace(/[^\s]/g,"")),e},p.rawBeforeDecl=function(c,t){var e;return c.walkDecls(function(a){if(typeof a.raws.before<"u")return e=a.raws.before,e.indexOf(` +`)!==-1&&(e=e.replace(/[^\n]+$/,"")),!1}),typeof e>"u"?e=this.raw(t,null,"beforeRule"):e&&(e=e.replace(/[^\s]/g,"")),e},p.rawBeforeRule=function(c){var t;return c.walk(function(e){if(e.nodes&&(e.parent!==c||c.first!==e)&&typeof e.raws.before<"u")return t=e.raws.before,t.indexOf(` +`)!==-1&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/[^\s]/g,"")),t},p.rawBeforeClose=function(c){var t;return c.walk(function(e){if(e.nodes&&e.nodes.length>0&&typeof e.raws.after<"u")return t=e.raws.after,t.indexOf(` +`)!==-1&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/[^\s]/g,"")),t},p.rawBeforeOpen=function(c){var t;return c.walk(function(e){if(e.type!=="decl"&&(t=e.raws.between,typeof t<"u"))return!1}),t},p.rawColon=function(c){var t;return c.walkDecls(function(e){if(typeof e.raws.between<"u")return t=e.raws.between.replace(/[^\s:]/g,""),!1}),t},p.beforeAfter=function(c,t){var e;c.type==="decl"?e=this.raw(c,null,"beforeDecl"):c.type==="comment"?e=this.raw(c,null,"beforeComment"):t==="before"?e=this.raw(c,null,"beforeRule"):e=this.raw(c,null,"beforeClose");for(var a=c.parent,n=0;a&&a.type!=="root";)n+=1,a=a.parent;if(e.indexOf(` +`)!==-1){var u=this.raw(c,null,"indent");if(u.length)for(var m=0;m=x}function ce(te){if(H.length)return H.pop();if(!(A>=x)){var ie=te?te.ignoreUnclosed:!1;switch(W=F.charCodeAt(A),(W===f||W===g||W===t&&F.charCodeAt(A+1)!==f)&&(k=A,z+=1),W){case f:case p:case c:case t:case g:T=A;do T+=1,W=F.charCodeAt(T),W===f&&(k=T,z+=1);while(W===p||W===f||W===c||W===t||W===g);q=["space",F.slice(A,T)],A=T-1;break;case e:case a:case m:case v:case d:case y:case u:var ae=String.fromCharCode(W);q=[ae,ae,z,A-k];break;case n:if(Z=E.length?E.pop()[1]:"",V=F.charCodeAt(A+1),Z==="url"&&V!==s&&V!==l&&V!==p&&V!==f&&V!==c&&V!==g&&V!==t){T=A;do{if(B=!1,T=F.indexOf(")",T+1),T===-1)if(K||ie){T=A;break}else re("bracket");for(P=T;F.charCodeAt(P-1)===o;)P-=1,B=!B}while(B);q=["brackets",F.slice(A,T+1),z,A-k,z,T-k],A=T}else T=F.indexOf(")",A+1),b=F.slice(A,T+1),T===-1||M.test(b)?q=["(","(",z,A-k]:(q=["brackets",b,z,A-k,z,T-k],A=T);break;case s:case l:D=W===s?"'":'"',T=A;do{if(B=!1,T=F.indexOf(D,T+1),T===-1)if(K||ie){T=A+1;break}else re("string");for(P=T;F.charCodeAt(P-1)===o;)P-=1,B=!B}while(B);b=F.slice(A,T+1),j=b.split(` +`),N=j.length-1,N>0?(G=z+N,L=T-j[N].length):(G=z,L=k),q=["string",F.slice(A,T+1),z,A-k,G,T-L],k=L,z=G,A=T;break;case _:O.lastIndex=A+1,O.test(F),O.lastIndex===0?T=F.length-1:T=O.lastIndex-2,q=["at-word",F.slice(A,T+1),z,A-k,z,T-k],A=T;break;case o:for(T=A,Q=!0;F.charCodeAt(T+1)===o;)T+=1,Q=!Q;if(W=F.charCodeAt(T+1),Q&&W!==h&&W!==p&&W!==f&&W!==c&&W!==t&&W!==g&&(T+=1,R.test(F.charAt(T)))){for(;R.test(F.charAt(T+1));)T+=1;F.charCodeAt(T+1)===p&&(T+=1)}q=["word",F.slice(A,T+1),z,A-k,z,T-k],A=T;break;default:W===h&&F.charCodeAt(A+1)===w?(T=F.indexOf("*/",A+2)+1,T===0&&(K||ie?T=F.length:re("comment")),b=F.slice(A,T+1),j=b.split(` +`),N=j.length-1,N>0?(G=z+N,L=T-j[N].length):(G=z,L=k),q=["comment",b,z,A-k,G,T-L],k=L,z=G,A=T):(S.lastIndex=A+1,S.test(F),S.lastIndex===0?T=F.length-1:T=S.lastIndex-2,q=["word",F.slice(A,T+1),z,A-k,z,T-k],E.push(q),A=T);break}return A++,q}}function fe(te){H.push(te)}return{back:fe,nextToken:ce,endOfFile:ne,position:U}}i.exports=r.default}}),Vo=C({"node_modules/postcss/lib/parse.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s=o(Pt()),l=o(mr());function o(p){return p&&p.__esModule?p:{default:p}}function h(p,g){var c=new l.default(p,g),t=new s.default(c);try{t.parse()}catch(e){throw e}return t.root}var f=h;r.default=f,i.exports=r.default}}),af=C({"node_modules/postcss/lib/list.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s={split:function(h,f,p){for(var g=[],c="",t=!1,e=0,a=!1,n=!1,u=0;u0&&(e-=1):e===0&&f.indexOf(m)!==-1&&(t=!0),t?(c!==""&&g.push(c.trim()),c="",t=!1):c+=m}return(p||c!=="")&&g.push(c.trim()),g},space:function(h){var f=[" ",` +`," "];return s.split(h,f)},comma:function(h){return s.split(h,[","],!0)}},l=s;r.default=l,i.exports=r.default}}),Go=C({"node_modules/postcss/lib/rule.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s=o(wr()),l=o(af());function o(t){return t&&t.__esModule?t:{default:t}}function h(t,e){for(var a=0;a"u"||m[Symbol.iterator]==null){if(Array.isArray(m)||(y=p(m))||v&&m&&typeof m.length=="number"){y&&(m=y);var w=0;return function(){return w>=m.length?{done:!0}:{done:!1,value:m[w++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return y=m[Symbol.iterator](),y.next.bind(y)}function p(m,v){if(!!m){if(typeof m=="string")return g(m,v);var y=Object.prototype.toString.call(m).slice(8,-1);if(y==="Object"&&m.constructor&&(y=m.constructor.name),y==="Map"||y==="Set")return Array.from(m);if(y==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return g(m,v)}}function g(m,v){(v==null||v>m.length)&&(v=m.length);for(var y=0,w=new Array(v);y=d&&(this.indexes[O]=_-1);return this},y.removeAll=function(){for(var d=f(this.nodes),_;!(_=d()).done;){var O=_.value;O.parent=void 0}return this.nodes=[],this},y.replaceValues=function(d,_,O){return O||(O=_,_={}),this.walkDecls(function(S){_.props&&_.props.indexOf(S.prop)===-1||_.fast&&S.value.indexOf(_.fast)===-1||(S.value=S.value.replace(d,O))}),this},y.every=function(d){return this.nodes.every(d)},y.some=function(d){return this.nodes.some(d)},y.index=function(d){return typeof d=="number"?d:this.nodes.indexOf(d)},y.normalize=function(d,_){var O=this;if(typeof d=="string"){var S=Vo();d=a(S(d).nodes)}else if(Array.isArray(d)){d=d.slice(0);for(var M=f(d),R;!(R=M()).done;){var $=R.value;$.parent&&$.parent.removeChild($,"ignore")}}else if(d.type==="root"){d=d.nodes.slice(0);for(var J=f(d),X;!(X=J()).done;){var F=X.value;F.parent&&F.parent.removeChild(F,"ignore")}}else if(d.type)d=[d];else if(d.prop){if(typeof d.value>"u")throw new Error("Value field is missed in node creation");typeof d.value!="string"&&(d.value=String(d.value)),d=[new s.default(d)]}else if(d.selector){var K=Go();d=[new K(d)]}else if(d.name){var W=Ho();d=[new W(d)]}else if(d.text)d=[new l.default(d)];else throw new Error("Unknown node type in node creation");var T=d.map(function(D){return D.parent&&D.parent.removeChild(D),typeof D.raws.before>"u"&&_&&typeof _.raws.before<"u"&&(D.raws.before=_.raws.before.replace(/[^\s]/g,"")),D.parent=O,D});return T},t(v,[{key:"first",get:function(){if(!!this.nodes)return this.nodes[0]}},{key:"last",get:function(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}}]),v}(o.default),u=n;r.default=u,i.exports=r.default}}),Ho=C({"node_modules/postcss/lib/at-rule.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s=l(wr());function l(p){return p&&p.__esModule?p:{default:p}}function o(p,g){p.prototype=Object.create(g.prototype),p.prototype.constructor=p,p.__proto__=g}var h=function(p){o(g,p);function g(t){var e;return e=p.call(this,t)||this,e.type="atrule",e}var c=g.prototype;return c.append=function(){var e;this.nodes||(this.nodes=[]);for(var a=arguments.length,n=new Array(a),u=0;u"u"||v[Symbol.iterator]==null){if(Array.isArray(v)||(w=c(v))||y&&v&&typeof v.length=="number"){w&&(v=w);var d=0;return function(){return d>=v.length?{done:!0}:{done:!1,value:v[d++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return w=v[Symbol.iterator](),w.next.bind(w)}function c(v,y){if(!!v){if(typeof v=="string")return t(v,y);var w=Object.prototype.toString.call(v).slice(8,-1);if(w==="Object"&&v.constructor&&(w=v.constructor.name),w==="Map"||w==="Set")return Array.from(v);if(w==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w))return t(v,y)}}function t(v,y){(y==null||y>v.length)&&(y=v.length);for(var w=0,d=new Array(y);w"u"&&(_.map={}),_.map.inline||(_.map.inline=!1),_.map.prev=d.map);else{var S=f.default;_.syntax&&(S=_.syntax.parse),_.parser&&(S=_.parser),S.parse&&(S=S.parse);try{O=S(d,_)}catch(M){this.error=M}}this.result=new h.default(w,O,_)}var y=v.prototype;return y.warnings=function(){return this.sync().warnings()},y.toString=function(){return this.css},y.then=function(d,_){return this.async().then(d,_)},y.catch=function(d){return this.async().catch(d)},y.finally=function(d){return this.async().then(d,d)},y.handleError=function(d,_){try{if(this.error=d,d.name==="CssSyntaxError"&&!d.plugin)d.plugin=_.postcssPlugin,d.setMessage();else if(_.postcssVersion&&!1)var O,S,M,R,$}catch(J){console&&console.error&&console.error(J)}},y.asyncTick=function(d,_){var O=this;if(this.plugin>=this.processor.plugins.length)return this.processed=!0,d();try{var S=this.processor.plugins[this.plugin],M=this.run(S);this.plugin+=1,n(M)?M.then(function(){O.asyncTick(d,_)}).catch(function(R){O.handleError(R,S),O.processed=!0,_(R)}):this.asyncTick(d,_)}catch(R){this.processed=!0,_(R)}},y.async=function(){var d=this;return this.processed?new Promise(function(_,O){d.error?O(d.error):_(d.stringify())}):this.processing?this.processing:(this.processing=new Promise(function(_,O){if(d.error)return O(d.error);d.plugin=0,d.asyncTick(_,O)}).then(function(){return d.processed=!0,d.stringify()}),this.processing)},y.sync=function(){if(this.processed)return this.result;if(this.processed=!0,this.processing)throw new Error("Use process(css).then(cb) to work with async plugins");if(this.error)throw this.error;for(var d=g(this.result.processor.plugins),_;!(_=d()).done;){var O=_.value,S=this.run(O);if(n(S))throw new Error("Use process(css).then(cb) to work with async plugins")}return this.result},y.run=function(d){this.result.lastPlugin=d;try{return d(this.result.root,this.result)}catch(_){throw this.handleError(_,d),_}},y.stringify=function(){if(this.stringified)return this.result;this.stringified=!0,this.sync();var d=this.result.opts,_=l.default;d.syntax&&(_=d.syntax.stringify),d.stringifier&&(_=d.stringifier),_.stringify&&(_=_.stringify);var O=new s.default(_,this.result.root,this.result.opts),S=O.generate();return this.result.css=S[0],this.result.map=S[1],this.result},a(v,[{key:"processor",get:function(){return this.result.processor}},{key:"opts",get:function(){return this.result.opts}},{key:"css",get:function(){return this.stringify().css}},{key:"content",get:function(){return this.stringify().content}},{key:"map",get:function(){return this.stringify().map}},{key:"root",get:function(){return this.sync().root}},{key:"messages",get:function(){return this.sync().messages}}]),v}(),m=u;r.default=m,i.exports=r.default}}),pf=C({"node_modules/postcss/lib/processor.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s=l(Jo());function l(c){return c&&c.__esModule?c:{default:c}}function o(c,t){var e;if(typeof Symbol>"u"||c[Symbol.iterator]==null){if(Array.isArray(c)||(e=h(c))||t&&c&&typeof c.length=="number"){e&&(c=e);var a=0;return function(){return a>=c.length?{done:!0}:{done:!1,value:c[a++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return e=c[Symbol.iterator](),e.next.bind(e)}function h(c,t){if(!!c){if(typeof c=="string")return f(c,t);var e=Object.prototype.toString.call(c).slice(8,-1);if(e==="Object"&&c.constructor&&(e=c.constructor.name),e==="Map"||e==="Set")return Array.from(c);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return f(c,t)}}function f(c,t){(t==null||t>c.length)&&(t=c.length);for(var e=0,a=new Array(t);e"u"||t[Symbol.iterator]==null){if(Array.isArray(t)||(a=h(t))||e&&t&&typeof t.length=="number"){a&&(t=a);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return a=t[Symbol.iterator](),a.next.bind(a)}function h(t,e){if(!!t){if(typeof t=="string")return f(t,e);var a=Object.prototype.toString.call(t).slice(8,-1);if(a==="Object"&&t.constructor&&(a=t.constructor.name),a==="Map"||a==="Set")return Array.from(t);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return f(t,e)}}function f(t,e){(e==null||e>t.length)&&(e=t.length);for(var a=0,n=new Array(e);a1&&(this.nodes[1].raws.before=this.nodes[v].raws.before),t.prototype.removeChild.call(this,u)},a.normalize=function(u,m,v){var y=t.prototype.normalize.call(this,u);if(m){if(v==="prepend")this.nodes.length>1?m.raws.before=this.nodes[1].raws.before:delete m.raws.before;else if(this.first!==m)for(var w=o(y),d;!(d=w()).done;){var _=d.value;_.raws.before=m.raws.before}}return y},a.toResult=function(u){u===void 0&&(u={});var m=Jo(),v=pf(),y=new m(new v,this,u);return y.stringify()},e}(s.default),c=g;r.default=c,i.exports=r.default}}),Pt=C({"node_modules/postcss/lib/parser.js"(r,i){"use strict";I(),r.__esModule=!0,r.default=void 0;var s=g($o()),l=g(At()),o=g(yr()),h=g(Ho()),f=g(hf()),p=g(Go());function g(t){return t&&t.__esModule?t:{default:t}}var c=function(){function t(a){this.input=a,this.root=new f.default,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:a,start:{line:1,column:1}}}var e=t.prototype;return e.createTokenizer=function(){this.tokenizer=(0,l.default)(this.input)},e.parse=function(){for(var n;!this.tokenizer.endOfFile();)switch(n=this.tokenizer.nextToken(),n[0]){case"space":this.spaces+=n[1];break;case";":this.freeSemicolon(n);break;case"}":this.end(n);break;case"comment":this.comment(n);break;case"at-word":this.atrule(n);break;case"{":this.emptyRule(n);break;default:this.other(n);break}this.endFile()},e.comment=function(n){var u=new o.default;this.init(u,n[2],n[3]),u.source.end={line:n[4],column:n[5]};var m=n[1].slice(2,-2);if(/^\s*$/.test(m))u.text="",u.raws.left=m,u.raws.right="";else{var v=m.match(/^(\s*)([^]*[^\s])(\s*)$/);u.text=v[2],u.raws.left=v[1],u.raws.right=v[3]}},e.emptyRule=function(n){var u=new p.default;this.init(u,n[2],n[3]),u.selector="",u.raws.between="",this.current=u},e.other=function(n){for(var u=!1,m=null,v=!1,y=null,w=[],d=[],_=n;_;){if(m=_[0],d.push(_),m==="("||m==="[")y||(y=_),w.push(m==="("?")":"]");else if(w.length===0)if(m===";")if(v){this.decl(d);return}else break;else if(m==="{"){this.rule(d);return}else if(m==="}"){this.tokenizer.back(d.pop()),u=!0;break}else m===":"&&(v=!0);else m===w[w.length-1]&&(w.pop(),w.length===0&&(y=null));_=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(u=!0),w.length>0&&this.unclosedBracket(y),u&&v){for(;d.length&&(_=d[d.length-1][0],!(_!=="space"&&_!=="comment"));)this.tokenizer.back(d.pop());this.decl(d)}else this.unknownWord(d)},e.rule=function(n){n.pop();var u=new p.default;this.init(u,n[0][2],n[0][3]),u.raws.between=this.spacesAndCommentsFromEnd(n),this.raw(u,"selector",n),this.current=u},e.decl=function(n){var u=new s.default;this.init(u);var m=n[n.length-1];for(m[0]===";"&&(this.semicolon=!0,n.pop()),m[4]?u.source.end={line:m[4],column:m[5]}:u.source.end={line:m[2],column:m[3]};n[0][0]!=="word";)n.length===1&&this.unknownWord(n),u.raws.before+=n.shift()[1];for(u.source.start={line:n[0][2],column:n[0][3]},u.prop="";n.length;){var v=n[0][0];if(v===":"||v==="space"||v==="comment")break;u.prop+=n.shift()[1]}u.raws.between="";for(var y;n.length;)if(y=n.shift(),y[0]===":"){u.raws.between+=y[1];break}else y[0]==="word"&&/\w/.test(y[1])&&this.unknownWord([y]),u.raws.between+=y[1];(u.prop[0]==="_"||u.prop[0]==="*")&&(u.raws.before+=u.prop[0],u.prop=u.prop.slice(1)),u.raws.between+=this.spacesAndCommentsFromStart(n),this.precheckMissedSemicolon(n);for(var w=n.length-1;w>0;w--){if(y=n[w],y[1].toLowerCase()==="!important"){u.important=!0;var d=this.stringFrom(n,w);d=this.spacesFromEnd(n)+d,d!==" !important"&&(u.raws.important=d);break}else if(y[1].toLowerCase()==="important"){for(var _=n.slice(0),O="",S=w;S>0;S--){var M=_[S][0];if(O.trim().indexOf("!")===0&&M!=="space")break;O=_.pop()[1]+O}O.trim().indexOf("!")===0&&(u.important=!0,u.raws.important=O,n=_)}if(y[0]!=="space"&&y[0]!=="comment")break}this.raw(u,"value",n),u.value.indexOf(":")!==-1&&this.checkMissedSemicolon(n)},e.atrule=function(n){var u=new h.default;u.name=n[1].slice(1),u.name===""&&this.unnamedAtrule(u,n),this.init(u,n[2],n[3]);for(var m,v,y=!1,w=!1,d=[];!this.tokenizer.endOfFile();){if(n=this.tokenizer.nextToken(),n[0]===";"){u.source.end={line:n[2],column:n[3]},this.semicolon=!0;break}else if(n[0]==="{"){w=!0;break}else if(n[0]==="}"){if(d.length>0){for(v=d.length-1,m=d[v];m&&m[0]==="space";)m=d[--v];m&&(u.source.end={line:m[4],column:m[5]})}this.end(n);break}else d.push(n);if(this.tokenizer.endOfFile()){y=!0;break}}u.raws.between=this.spacesAndCommentsFromEnd(d),d.length?(u.raws.afterName=this.spacesAndCommentsFromStart(d),this.raw(u,"params",d),y&&(n=d[d.length-1],u.source.end={line:n[4],column:n[5]},this.spaces=u.raws.between,u.raws.between="")):(u.raws.afterName="",u.params=""),w&&(u.nodes=[],this.current=u)},e.end=function(n){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end={line:n[2],column:n[3]},this.current=this.current.parent):this.unexpectedClose(n)},e.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces},e.freeSemicolon=function(n){if(this.spaces+=n[1],this.current.nodes){var u=this.current.nodes[this.current.nodes.length-1];u&&u.type==="rule"&&!u.raws.ownSemicolon&&(u.raws.ownSemicolon=this.spaces,this.spaces="")}},e.init=function(n,u,m){this.current.push(n),n.source={start:{line:u,column:m},input:this.input},n.raws.before=this.spaces,this.spaces="",n.type!=="comment"&&(this.semicolon=!1)},e.raw=function(n,u,m){for(var v,y,w=m.length,d="",_=!0,O,S,M=/^([.|#])?([\w])+/i,R=0;R=0&&(v=n[y],!(v[0]!=="space"&&(m+=1,m===2)));y--);throw this.input.error("Missed semicolon",v[2],v[3])}},t}();r.default=c,i.exports=r.default}}),df=C({"node_modules/postcss-less/lib/nodes/inline-comment.js"(r,i){I();var s=At(),l=mr();i.exports={isInlineComment(o){if(o[0]==="word"&&o[1].slice(0,2)==="//"){let h=o,f=[],p;for(;o;){if(/\r?\n/.test(o[1])){if(/['"].*\r?\n/.test(o[1])){f.push(o[1].substring(0,o[1].indexOf(` +`)));let c=o[1].substring(o[1].indexOf(` +`));c+=this.input.css.valueOf().substring(this.tokenizer.position()),this.input=new l(c),this.tokenizer=s(this.input)}else this.tokenizer.back(o);break}f.push(o[1]),p=o,o=this.tokenizer.nextToken({ignoreUnclosed:!0})}let g=["comment",f.join(""),h[2],h[3],p[2],p[3]];return this.inlineComment(g),!0}else if(o[1]==="/"){let h=this.tokenizer.nextToken({ignoreUnclosed:!0});if(h[0]==="comment"&&/^\/\*/.test(h[1]))return h[0]="word",h[1]=h[1].slice(1),o[1]="//",this.tokenizer.back(h),i.exports.isInlineComment.bind(this)(o)}return!1}}}}),vf=C({"node_modules/postcss-less/lib/nodes/interpolation.js"(r,i){I(),i.exports={interpolation(s){let l=s,o=[s],h=["word","{","}"];if(s=this.tokenizer.nextToken(),l[1].length>1||s[0]!=="{")return this.tokenizer.back(s),!1;for(;s&&h.includes(s[0]);)o.push(s),s=this.tokenizer.nextToken();let f=o.map(e=>e[1]);[l]=o;let p=o.pop(),g=[l[2],l[3]],c=[p[4]||p[2],p[5]||p[3]],t=["word",f.join("")].concat(g,c);return this.tokenizer.back(s),this.tokenizer.back(t),!0}}}}),mf=C({"node_modules/postcss-less/lib/nodes/mixin.js"(r,i){I();var s=/^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/,l=/\.[0-9]/,o=h=>{let[,f]=h,[p]=f;return(p==="."||p==="#")&&s.test(f)===!1&&l.test(f)===!1};i.exports={isMixinToken:o}}}),gf=C({"node_modules/postcss-less/lib/nodes/import.js"(r,i){I();var s=At(),l=/^url\((.+)\)/;i.exports=o=>{let{name:h,params:f=""}=o;if(h==="import"&&f.length){o.import=!0;let p=s({css:f});for(o.filename=f.replace(l,"$1");!p.endOfFile();){let[g,c]=p.nextToken();if(g==="word"&&c==="url")return;if(g==="brackets"){o.options=c,o.filename=f.replace(c,"").trim();break}}}}}}),yf=C({"node_modules/postcss-less/lib/nodes/variable.js"(r,i){I();var s=/:$/,l=/^:(\s+)?/;i.exports=o=>{let{name:h,params:f=""}=o;if(o.name.slice(-1)===":"){if(s.test(h)){let[p]=h.match(s);o.name=h.replace(p,""),o.raws.afterName=p+(o.raws.afterName||""),o.variable=!0,o.value=o.params}if(l.test(f)){let[p]=f.match(l);o.value=f.replace(p,""),o.raws.afterName=(o.raws.afterName||"")+p,o.variable=!0}}}}}),wf=C({"node_modules/postcss-less/lib/LessParser.js"(r,i){I();var s=yr(),l=Pt(),{isInlineComment:o}=df(),{interpolation:h}=vf(),{isMixinToken:f}=mf(),p=gf(),g=yf(),c=/(!\s*important)$/i;i.exports=class extends l{constructor(){super(...arguments),this.lastNode=null}atrule(e){h.bind(this)(e)||(super.atrule(e),p(this.lastNode),g(this.lastNode))}decl(){super.decl(...arguments),/extend\(.+\)/i.test(this.lastNode.value)&&(this.lastNode.extend=!0)}each(e){e[0][1]=" ".concat(e[0][1]);let a=e.findIndex(y=>y[0]==="("),n=e.reverse().find(y=>y[0]===")"),u=e.reverse().indexOf(n),v=e.splice(a,u).map(y=>y[1]).join("");for(let y of e.reverse())this.tokenizer.back(y);this.atrule(this.tokenizer.nextToken()),this.lastNode.function=!0,this.lastNode.params=v}init(e,a,n){super.init(e,a,n),this.lastNode=e}inlineComment(e){let a=new s,n=e[1].slice(2);if(this.init(a,e[2],e[3]),a.source.end={line:e[4],column:e[5]},a.inline=!0,a.raws.begin="//",/^\s*$/.test(n))a.text="",a.raws.left=n,a.raws.right="";else{let u=n.match(/^(\s*)([^]*[^\s])(\s*)$/);[,a.raws.left,a.text,a.raws.right]=u}}mixin(e){let[a]=e,n=a[1].slice(0,1),u=e.findIndex(d=>d[0]==="brackets"),m=e.findIndex(d=>d[0]==="("),v="";if((u<0||u>3)&&m>0){let d=e.reduce((K,W,T)=>W[0]===")"?T:K),O=e.slice(m,d+m).map(K=>K[1]).join(""),[S]=e.slice(m),M=[S[2],S[3]],[R]=e.slice(d,d+1),$=[R[2],R[3]],J=["brackets",O].concat(M,$),X=e.slice(0,m),F=e.slice(d+1);e=X,e.push(J),e=e.concat(F)}let y=[];for(let d of e)if((d[1]==="!"||y.length)&&y.push(d),d[1]==="important")break;if(y.length){let[d]=y,_=e.indexOf(d),O=y[y.length-1],S=[d[2],d[3]],M=[O[4],O[5]],R=y.map(J=>J[1]).join(""),$=["word",R].concat(S,M);e.splice(_,y.length,$)}let w=e.findIndex(d=>c.test(d[1]));w>0&&([,v]=e[w],e.splice(w,1));for(let d of e.reverse())this.tokenizer.back(d);this.atrule(this.tokenizer.nextToken()),this.lastNode.mixin=!0,this.lastNode.raws.identifier=n,v&&(this.lastNode.important=!0,this.lastNode.raws.important=v)}other(e){o.bind(this)(e)||super.other(e)}rule(e){let a=e[e.length-1],n=e[e.length-2];if(n[0]==="at-word"&&a[0]==="{"&&(this.tokenizer.back(a),h.bind(this)(n))){let m=this.tokenizer.nextToken();e=e.slice(0,e.length-2).concat([m]);for(let v of e.reverse())this.tokenizer.back(v);return}super.rule(e),/:extend\(.+\)/i.test(this.lastNode.selector)&&(this.lastNode.extend=!0)}unknownWord(e){let[a]=e;if(e[0][1]==="each"&&e[1][0]==="("){this.each(e);return}if(f(a)){this.mixin(e);return}super.unknownWord(e)}}}}),_f=C({"node_modules/postcss-less/lib/LessStringifier.js"(r,i){I();var s=gr();i.exports=class extends s{atrule(o,h){if(!o.mixin&&!o.variable&&!o.function){super.atrule(o,h);return}let f=o.function?"":o.raws.identifier||"@",p="".concat(f).concat(o.name),g=o.params?this.rawValue(o,"params"):"",c=o.raws.important||"";if(o.variable&&(g=o.value),typeof o.raws.afterName<"u"?p+=o.raws.afterName:g&&(p+=" "),o.nodes)this.block(o,p+g+c);else{let t=(o.raws.between||"")+c+(h?";":"");this.builder(p+g+t,o)}}comment(o){if(o.inline){let h=this.raw(o,"left","commentLeft"),f=this.raw(o,"right","commentRight");this.builder("//".concat(h).concat(o.text).concat(f),o)}else super.comment(o)}}}}),bf=C({"node_modules/postcss-less/lib/index.js"(r,i){I();var s=mr(),l=wf(),o=_f();i.exports={parse(h,f){let p=new s(h,f),g=new l(p);return g.parse(),g.root},stringify(h,f){new o(f).stringify(h)},nodeToString(h){let f="";return i.exports.stringify(h,p=>{f+=p}),f}}}}),xf=C({"node_modules/postcss-scss/lib/scss-stringifier.js"(r,i){"use strict";I();function s(h,f){h.prototype=Object.create(f.prototype),h.prototype.constructor=h,h.__proto__=f}var l=gr(),o=function(h){s(f,h);function f(){return h.apply(this,arguments)||this}var p=f.prototype;return p.comment=function(c){var t=this.raw(c,"left","commentLeft"),e=this.raw(c,"right","commentRight");if(c.raws.inline){var a=c.raws.text||c.text;this.builder("//"+t+a+e,c)}else this.builder("/*"+t+c.text+e+"*/",c)},p.decl=function(c,t){if(!c.isNested)h.prototype.decl.call(this,c,t);else{var e=this.raw(c,"between","colon"),a=c.prop+e+this.rawValue(c,"value");c.important&&(a+=c.raws.important||" !important"),this.builder(a+"{",c,"start");var n;c.nodes&&c.nodes.length?(this.body(c),n=this.raw(c,"after")):n=this.raw(c,"after","emptyBody"),n&&this.builder(n),this.builder("}",c,"end")}},p.rawValue=function(c,t){var e=c[t],a=c.raws[t];return a&&a.value===e?a.scss?a.scss:a.raw:e},f}(l);i.exports=o}}),kf=C({"node_modules/postcss-scss/lib/scss-stringify.js"(r,i){"use strict";I();var s=xf();i.exports=function(o,h){var f=new s(h);f.stringify(o)}}}),Sf=C({"node_modules/postcss-scss/lib/nested-declaration.js"(r,i){"use strict";I();function s(h,f){h.prototype=Object.create(f.prototype),h.prototype.constructor=h,h.__proto__=f}var l=wr(),o=function(h){s(f,h);function f(p){var g;return g=h.call(this,p)||this,g.type="decl",g.isNested=!0,g.nodes||(g.nodes=[]),g}return f}(l);i.exports=o}}),Of=C({"node_modules/postcss-scss/lib/scss-tokenize.js"(r,i){"use strict";I();var s="'".charCodeAt(0),l='"'.charCodeAt(0),o="\\".charCodeAt(0),h="/".charCodeAt(0),f=` +`.charCodeAt(0),p=" ".charCodeAt(0),g="\f".charCodeAt(0),c=" ".charCodeAt(0),t="\r".charCodeAt(0),e="[".charCodeAt(0),a="]".charCodeAt(0),n="(".charCodeAt(0),u=")".charCodeAt(0),m="{".charCodeAt(0),v="}".charCodeAt(0),y=";".charCodeAt(0),w="*".charCodeAt(0),d=":".charCodeAt(0),_="@".charCodeAt(0),O=",".charCodeAt(0),S="#".charCodeAt(0),M=/[ \n\t\r\f{}()'"\\;/[\]#]/g,R=/[ \n\t\r\f(){}:;@!'"\\\][#]|\/(?=\*)/g,$=/.[\\/("'\n]/,J=/[a-f0-9]/i,X=/[\r\f\n]/g;i.exports=function(K,W){W===void 0&&(W={});var T=K.css.valueOf(),D=W.ignoreErrors,j,N,b,Q,G,L,B,P,Z,V,q,x,k,z,A=T.length,E=-1,H=1,U=0,re=[],ne=[];function ce(se){throw K.error("Unclosed "+se,H,U-E)}function fe(){return ne.length===0&&U>=A}function te(){for(var se=1,le=!1,pe=!1;se>0;)N+=1,T.length<=N&&ce("interpolation"),j=T.charCodeAt(N),x=T.charCodeAt(N+1),le?!pe&&j===le?(le=!1,pe=!1):j===o?pe=!V:pe&&(pe=!1):j===s||j===l?le=j:j===v?se-=1:j===S&&x===m&&(se+=1)}function ie(){if(ne.length)return ne.pop();if(!(U>=A)){switch(j=T.charCodeAt(U),(j===f||j===g||j===t&&T.charCodeAt(U+1)!==f)&&(E=U,H+=1),j){case f:case p:case c:case t:case g:N=U;do N+=1,j=T.charCodeAt(N),j===f&&(E=N,H+=1);while(j===p||j===f||j===c||j===t||j===g);k=["space",T.slice(U,N)],U=N-1;break;case e:k=["[","[",H,U-E];break;case a:k=["]","]",H,U-E];break;case m:k=["{","{",H,U-E];break;case v:k=["}","}",H,U-E];break;case O:k=["word",",",H,U-E,H,U-E+1];break;case d:k=[":",":",H,U-E];break;case y:k=[";",";",H,U-E];break;case n:if(q=re.length?re.pop()[1]:"",x=T.charCodeAt(U+1),q==="url"&&x!==s&&x!==l){for(z=1,V=!1,N=U+1;N<=T.length-1;){if(x=T.charCodeAt(N),x===o)V=!V;else if(x===n)z+=1;else if(x===u&&(z-=1,z===0))break;N+=1}L=T.slice(U,N+1),Q=L.split(` +`),G=Q.length-1,G>0?(P=H+G,Z=N-Q[G].length):(P=H,Z=E),k=["brackets",L,H,U-E,P,N-Z],E=Z,H=P,U=N}else N=T.indexOf(")",U+1),L=T.slice(U,N+1),N===-1||$.test(L)?k=["(","(",H,U-E]:(k=["brackets",L,H,U-E,H,N-E],U=N);break;case u:k=[")",")",H,U-E];break;case s:case l:for(b=j,N=U,V=!1;N0?(P=H+G,Z=N-Q[G].length):(P=H,Z=E),k=["string",T.slice(U,N+1),H,U-E,P,N-Z],E=Z,H=P,U=N;break;case _:M.lastIndex=U+1,M.test(T),M.lastIndex===0?N=T.length-1:N=M.lastIndex-2,k=["at-word",T.slice(U,N+1),H,U-E,H,N-E],U=N;break;case o:for(N=U,B=!0;T.charCodeAt(N+1)===o;)N+=1,B=!B;if(j=T.charCodeAt(N+1),B&&j!==h&&j!==p&&j!==f&&j!==c&&j!==t&&j!==g&&(N+=1,J.test(T.charAt(N)))){for(;J.test(T.charAt(N+1));)N+=1;T.charCodeAt(N+1)===p&&(N+=1)}k=["word",T.slice(U,N+1),H,U-E,H,N-E],U=N;break;default:x=T.charCodeAt(U+1),j===S&&x===m?(N=U,te(),L=T.slice(U,N+1),Q=L.split(` +`),G=Q.length-1,G>0?(P=H+G,Z=N-Q[G].length):(P=H,Z=E),k=["word",L,H,U-E,P,N-Z],E=Z,H=P,U=N):j===h&&x===w?(N=T.indexOf("*/",U+2)+1,N===0&&(D?N=T.length:ce("comment")),L=T.slice(U,N+1),Q=L.split(` +`),G=Q.length-1,G>0?(P=H+G,Z=N-Q[G].length):(P=H,Z=E),k=["comment",L,H,U-E,P,N-Z],E=Z,H=P,U=N):j===h&&x===h?(X.lastIndex=U+1,X.test(T),X.lastIndex===0?N=T.length-1:N=X.lastIndex-2,L=T.slice(U,N+1),k=["comment",L,H,U-E,H,N-E,"inline"],U=N):(R.lastIndex=U+1,R.test(T),R.lastIndex===0?N=T.length-1:N=R.lastIndex-2,k=["word",T.slice(U,N+1),H,U-E,H,N-E],re.push(k),U=N);break}return U++,k}}function ae(se){ne.push(se)}return{back:ae,nextToken:ie,endOfFile:fe}}}}),Tf=C({"node_modules/postcss-scss/lib/scss-parser.js"(r,i){"use strict";I();function s(g,c){g.prototype=Object.create(c.prototype),g.prototype.constructor=g,g.__proto__=c}var l=yr(),o=Pt(),h=Sf(),f=Of(),p=function(g){s(c,g);function c(){return g.apply(this,arguments)||this}var t=c.prototype;return t.createTokenizer=function(){this.tokenizer=f(this.input)},t.rule=function(a){for(var n=!1,u=0,m="",w=a,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;if(n)_[0]!=="comment"&&_[0]!=="{"&&(m+=_[1]);else{if(_[0]==="space"&&_[1].indexOf(` +`)!==-1)break;_[0]==="("?u+=1:_[0]===")"?u-=1:u===0&&_[0]===":"&&(n=!0)}}if(!n||m.trim()===""||/^[a-zA-Z-:#]/.test(m))g.prototype.rule.call(this,a);else{a.pop();var O=new h;this.init(O);var S=a[a.length-1];for(S[4]?O.source.end={line:S[4],column:S[5]}:O.source.end={line:S[2],column:S[3]};a[0][0]!=="word";)O.raws.before+=a.shift()[1];for(O.source.start={line:a[0][2],column:a[0][3]},O.prop="";a.length;){var M=a[0][0];if(M===":"||M==="space"||M==="comment")break;O.prop+=a.shift()[1]}O.raws.between="";for(var R;a.length;)if(R=a.shift(),R[0]===":"){O.raws.between+=R[1];break}else O.raws.between+=R[1];(O.prop[0]==="_"||O.prop[0]==="*")&&(O.raws.before+=O.prop[0],O.prop=O.prop.slice(1)),O.raws.between+=this.spacesAndCommentsFromStart(a),this.precheckMissedSemicolon(a);for(var $=a.length-1;$>0;$--){if(R=a[$],R[1]==="!important"){O.important=!0;var J=this.stringFrom(a,$);J=this.spacesFromEnd(a)+J,J!==" !important"&&(O.raws.important=J);break}else if(R[1]==="important"){for(var X=a.slice(0),F="",K=$;K>0;K--){var W=X[K][0];if(F.trim().indexOf("!")===0&&W!=="space")break;F=X.pop()[1]+F}F.trim().indexOf("!")===0&&(O.important=!0,O.raws.important=F,a=X)}if(R[0]!=="space"&&R[0]!=="comment")break}this.raw(O,"value",a),O.value.indexOf(":")!==-1&&this.checkMissedSemicolon(a),this.current=O}},t.comment=function(a){if(a[6]==="inline"){var n=new l;this.init(n,a[2],a[3]),n.raws.inline=!0,n.source.end={line:a[4],column:a[5]};var u=a[1].slice(2);if(/^\s*$/.test(u))n.text="",n.raws.left=u,n.raws.right="";else{var m=u.match(/^(\s*)([^]*[^\s])(\s*)$/),v=m[2].replace(/(\*\/|\/\*)/g,"*//*");n.text=v,n.raws.left=m[1],n.raws.right=m[3],n.raws.text=m[2]}}else g.prototype.comment.call(this,a)},t.raw=function(a,n,u){if(g.prototype.raw.call(this,a,n,u),a.raws[n]){var m=a.raws[n].raw;a.raws[n].raw=u.reduce(function(v,y){if(y[0]==="comment"&&y[6]==="inline"){var w=y[1].slice(2).replace(/(\*\/|\/\*)/g,"*//*");return v+"/*"+w+"*/"}else return v+y[1]},""),m!==a.raws[n].raw&&(a.raws[n].scss=m)}},c}(o);i.exports=p}}),Ef=C({"node_modules/postcss-scss/lib/scss-parse.js"(r,i){"use strict";I();var s=mr(),l=Tf();i.exports=function(h,f){var p=new s(h,f),g=new l(p);return g.parse(),g.root}}}),qf=C({"node_modules/postcss-scss/lib/scss-syntax.js"(r,i){"use strict";I();var s=kf(),l=Ef();i.exports={parse:l,stringify:s}}}),Af=C({"src/language-css/parser-postcss.js"(r,i){I();var s=el(),l=Ss(),o=Os(),{hasPragma:h}=ll(),{locStart:f,locEnd:p}=ss(),{calculateLoc:g,replaceQuotesInInlineComments:c}=ss(),t=dl(),e=vl(),a=ml(),n=gl(),u=yl(),m=wl(),v=_l(),y=bl(),w=b=>{for(;b.parent;)b=b.parent;return b};function d(b,Q){let{nodes:G}=b,L={open:null,close:null,groups:[],type:"paren_group"},B=[L],P=L,Z={groups:[],type:"comma_group"},V=[Z];for(let q=0;q0&&L.groups.push(Z),L.close=x,V.length===1)throw new Error("Unbalanced parenthesis");V.pop(),Z=l(V),Z.groups.push(L),B.pop(),L=l(B)}else x.type==="comma"?(L.groups.push(Z),Z={groups:[],type:"comma_group"},V[V.length-1]=Z):Z.groups.push(x)}return Z.groups.length>0&&L.groups.push(Z),P}function _(b){return b.type==="paren_group"&&!b.open&&!b.close&&b.groups.length===1||b.type==="comma_group"&&b.groups.length===1?_(b.groups[0]):b.type==="paren_group"||b.type==="comma_group"?Object.assign(Object.assign({},b),{},{groups:b.groups.map(_)}):b}function O(b,Q,G){if(b&&typeof b=="object"){delete b.parent;for(let L in b)O(b[L],Q,G),L==="type"&&typeof b[L]=="string"&&!b[L].startsWith(Q)&&(!G||!G.test(b[L]))&&(b[L]=Q+b[L])}return b}function S(b){if(b&&typeof b=="object"){delete b.parent;for(let Q in b)S(b[Q]);!Array.isArray(b)&&b.value&&!b.type&&(b.type="unknown")}return b}function M(b,Q){if(b&&typeof b=="object"){for(let G in b)G!=="parent"&&(M(b[G],Q),G==="nodes"&&(b.group=_(d(b,Q)),delete b[G]));delete b.parent}return b}function R(b,Q){let G=Hl(),L=null;try{L=G(b,{loose:!0}).parse()}catch{return{type:"value-unknown",value:b}}L.text=b;let B=M(L,Q);return O(B,"value-",/^selector-/)}function $(b){if(/\/\/|\/\*/.test(b))return{type:"selector-unknown",value:b.trim()};let Q=Xl(),G=null;try{Q(L=>{G=L}).process(b)}catch{return{type:"selector-unknown",value:b}}return O(G,"selector-")}function J(b){let Q=ef().default,G=null;try{G=Q(b)}catch{return{type:"selector-unknown",value:b}}return O(S(G),"media-")}var X=/(\s*)(!default).*$/,F=/(\s*)(!global).*$/;function K(b,Q){if(b&&typeof b=="object"){delete b.parent;for(let P in b)K(b[P],Q);if(!b.type)return b;b.raws||(b.raws={});let G="";typeof b.selector=="string"&&(G=b.raws.selector?b.raws.selector.scss?b.raws.selector.scss:b.raws.selector.raw:b.selector,b.raws.between&&b.raws.between.trim().length>0&&(G+=b.raws.between),b.raws.selector=G);let L="";typeof b.value=="string"&&(L=b.raws.value?b.raws.value.scss?b.raws.value.scss:b.raws.value.raw:b.value,L=L.trim(),b.raws.value=L);let B="";if(typeof b.params=="string"&&(B=b.raws.params?b.raws.params.scss?b.raws.params.scss:b.raws.params.raw:b.params,b.raws.afterName&&b.raws.afterName.trim().length>0&&(B=b.raws.afterName+B),b.raws.between&&b.raws.between.trim().length>0&&(B=B+b.raws.between),B=B.trim(),b.raws.params=B),G.trim().length>0)return G.startsWith("@")&&G.endsWith(":")?b:b.mixin?(b.selector=R(G,Q),b):(u(b)&&(b.isSCSSNesterProperty=!0),b.selector=$(G),b);if(L.length>0){let P=L.match(X);P&&(L=L.slice(0,P.index),b.scssDefault=!0,P[0].trim()!=="!default"&&(b.raws.scssDefault=P[0]));let Z=L.match(F);if(Z&&(L=L.slice(0,Z.index),b.scssGlobal=!0,Z[0].trim()!=="!global"&&(b.raws.scssGlobal=Z[0])),L.startsWith("progid:"))return{type:"value-unknown",value:L};b.value=R(L,Q)}if(a(Q)&&b.type==="css-decl"&&L.startsWith("extend(")&&(b.extend||(b.extend=b.raws.between===":"),b.extend&&!b.selector&&(delete b.value,b.selector=$(L.slice(7,-1)))),b.type==="css-atrule"){if(a(Q)){if(b.mixin){let P=b.raws.identifier+b.name+b.raws.afterName+b.raws.params;return b.selector=$(P),delete b.params,b}if(b.function)return b}if(Q.parser==="css"&&b.name==="custom-selector"){let P=b.params.match(/:--\S+\s+/)[0].trim();return b.customSelector=P,b.selector=$(b.params.slice(P.length).trim()),delete b.params,b}if(a(Q)){if(b.name.includes(":")&&!b.params){b.variable=!0;let P=b.name.split(":");b.name=P[0],b.value=R(P.slice(1).join(":"),Q)}if(!["page","nest","keyframes"].includes(b.name)&&b.params&&b.params[0]===":"&&(b.variable=!0,b.value=R(b.params.slice(1),Q),b.raws.afterName+=":"),b.variable)return delete b.params,b}}if(b.type==="css-atrule"&&B.length>0){let{name:P}=b,Z=b.name.toLowerCase();return P==="warn"||P==="error"?(b.params={type:"media-unknown",value:B},b):P==="extend"||P==="nest"?(b.selector=$(B),delete b.params,b):P==="at-root"?(/^\(\s*(?:without|with)\s*:.+\)$/s.test(B)?b.params=R(B,Q):(b.selector=$(B),delete b.params),b):y(Z)?(b.import=!0,delete b.filename,b.params=R(B,Q),b):["namespace","supports","if","else","for","each","while","debug","mixin","include","function","return","define-mixin","add-mixin"].includes(P)?(B=B.replace(/(\$\S+?)(\s+)?\.{3}/,"$1...$2"),B=B.replace(/^(?!if)(\S+)(\s+)\(/,"$1($2"),b.value=R(B,Q),delete b.params,b):["media","custom-media"].includes(Z)?B.includes("#{")?{type:"media-unknown",value:B}:(b.params=J(B),b):(b.params=B,b)}}return b}function W(b,Q,G){let L=o(Q),{frontMatter:B}=L;Q=L.content;let P;try{P=b(Q)}catch(Z){let{name:V,reason:q,line:x,column:k}=Z;throw typeof x!="number"?Z:s("".concat(V,": ").concat(q),{start:{line:x,column:k}})}return P=K(O(P,"css-"),G),g(P,Q),B&&(B.source={startOffset:0,endOffset:B.raw.length},P.nodes.unshift(B)),P}function T(b,Q){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},B=n(G.parser,b)?[j,D]:[D,j],P;for(let Z of B)try{return Z(b,Q,G)}catch(V){P=P||V}if(P)throw P}function D(b,Q){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},L=bf();return W(B=>L.parse(c(B)),b,G)}function j(b,Q){let G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:L}=qf();return W(L,b,G)}var N={astFormat:"postcss",hasPragma:h,locStart:f,locEnd:p};i.exports={parsers:{css:Object.assign(Object.assign({},N),{},{parse:T}),less:Object.assign(Object.assign({},N),{},{parse:D}),scss:Object.assign(Object.assign({},N),{},{parse:j})}}}}),Jp=Af();export{Jp as default}; diff --git a/node_modules/prettier/esm/parser-typescript.mjs b/node_modules/prettier/esm/parser-typescript.mjs new file mode 100644 index 0000000..decb257 --- /dev/null +++ b/node_modules/prettier/esm/parser-typescript.mjs @@ -0,0 +1,280 @@ +"use strict";var Vn=(M,re)=>()=>(re||M((re={exports:{}}).exports,re),re.exports);var qc=Vn((lz,CA)=>{var $0=function(M){return M&&M.Math==Math&&M};CA.exports=$0(typeof globalThis=="object"&&globalThis)||$0(typeof window=="object"&&window)||$0(typeof self=="object"&&self)||$0(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var cg=Vn((fz,kA)=>{kA.exports=function(M){try{return!!M()}catch{return!0}}});var Am=Vn((_z,AA)=>{var NL=cg();AA.exports=!NL(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Z0=Vn((pz,NA)=>{var PL=cg();NA.exports=!PL(function(){var M=function(){}.bind();return typeof M!="function"||M.hasOwnProperty("prototype")})});var r1=Vn((dz,PA)=>{var IL=Z0(),e1=Function.prototype.call;PA.exports=IL?e1.bind(e1):function(){return e1.apply(e1,arguments)}});var FA=Vn(OA=>{"use strict";var IA={}.propertyIsEnumerable,wA=Object.getOwnPropertyDescriptor,wL=wA&&!IA.call({1:2},1);OA.f=wL?function(re){var Ve=wA(this,re);return!!Ve&&Ve.enumerable}:IA});var XS=Vn((mz,MA)=>{MA.exports=function(M,re){return{enumerable:!(M&1),configurable:!(M&2),writable:!(M&4),value:re}}});var dp=Vn((vz,BA)=>{var LA=Z0(),RA=Function.prototype,OL=RA.bind,QS=RA.call,FL=LA&&OL.bind(QS,QS);BA.exports=LA?function(M){return M&&FL(M)}:function(M){return M&&function(){return QS.apply(M,arguments)}}});var i1=Vn((yz,jA)=>{var JA=dp(),ML=JA({}.toString),LL=JA("".slice);jA.exports=function(M){return LL(ML(M),8,-1)}});var zA=Vn((hz,UA)=>{var RL=qc(),BL=dp(),JL=cg(),jL=i1(),YS=RL.Object,UL=BL("".split);UA.exports=JL(function(){return!YS("z").propertyIsEnumerable(0)})?function(M){return jL(M)=="String"?UL(M,""):YS(M)}:YS});var $S=Vn((Dz,WA)=>{var zL=qc(),WL=zL.TypeError;WA.exports=function(M){if(M==null)throw WL("Can't call method on "+M);return M}});var t1=Vn((bz,qA)=>{var qL=zA(),VL=$S();qA.exports=function(M){return qL(VL(M))}});var gp=Vn((Sz,VA)=>{VA.exports=function(M){return typeof M=="function"}});var Nm=Vn((Tz,KA)=>{var KL=gp();KA.exports=function(M){return typeof M=="object"?M!==null:KL(M)}});var qy=Vn((xz,GA)=>{var ZS=qc(),GL=gp(),HL=function(M){return GL(M)?M:void 0};GA.exports=function(M,re){return arguments.length<2?HL(ZS[M]):ZS[M]&&ZS[M][re]}});var XA=Vn((Ez,HA)=>{var XL=dp();HA.exports=XL({}.isPrototypeOf)});var YA=Vn((Cz,QA)=>{var QL=qy();QA.exports=QL("navigator","userAgent")||""});var aN=Vn((kz,tN)=>{var iN=qc(),eT=YA(),$A=iN.process,ZA=iN.Deno,eN=$A&&$A.versions||ZA&&ZA.version,rN=eN&&eN.v8,ad,a1;rN&&(ad=rN.split("."),a1=ad[0]>0&&ad[0]<4?1:+(ad[0]+ad[1]));!a1&&eT&&(ad=eT.match(/Edge\/(\d+)/),(!ad||ad[1]>=74)&&(ad=eT.match(/Chrome\/(\d+)/),ad&&(a1=+ad[1])));tN.exports=a1});var rT=Vn((Az,oN)=>{var nN=aN(),YL=cg();oN.exports=!!Object.getOwnPropertySymbols&&!YL(function(){var M=Symbol();return!String(M)||!(Object(M)instanceof Symbol)||!Symbol.sham&&nN&&nN<41})});var iT=Vn((Nz,sN)=>{var $L=rT();sN.exports=$L&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var tT=Vn((Pz,cN)=>{var ZL=qc(),eR=qy(),rR=gp(),iR=XA(),tR=iT(),aR=ZL.Object;cN.exports=tR?function(M){return typeof M=="symbol"}:function(M){var re=eR("Symbol");return rR(re)&&iR(re.prototype,aR(M))}});var lN=Vn((Iz,uN)=>{var nR=qc(),oR=nR.String;uN.exports=function(M){try{return oR(M)}catch{return"Object"}}});var n1=Vn((wz,fN)=>{var sR=qc(),cR=gp(),uR=lN(),lR=sR.TypeError;fN.exports=function(M){if(cR(M))return M;throw lR(uR(M)+" is not a function")}});var pN=Vn((Oz,_N)=>{var fR=n1();_N.exports=function(M,re){var Ve=M[re];return Ve==null?void 0:fR(Ve)}});var gN=Vn((Fz,dN)=>{var _R=qc(),aT=r1(),nT=gp(),oT=Nm(),pR=_R.TypeError;dN.exports=function(M,re){var Ve,Ke;if(re==="string"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M))||nT(Ve=M.valueOf)&&!oT(Ke=aT(Ve,M))||re!=="string"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M)))return Ke;throw pR("Can't convert object to primitive value")}});var vN=Vn((Mz,mN)=>{mN.exports=!1});var o1=Vn((Lz,hN)=>{var yN=qc(),dR=Object.defineProperty;hN.exports=function(M,re){try{dR(yN,M,{value:re,configurable:!0,writable:!0})}catch{yN[M]=re}return re}});var s1=Vn((Rz,bN)=>{var gR=qc(),mR=o1(),DN="__core-js_shared__",vR=gR[DN]||mR(DN,{});bN.exports=vR});var sT=Vn((Bz,TN)=>{var yR=vN(),SN=s1();(TN.exports=function(M,re){return SN[M]||(SN[M]=re!==void 0?re:{})})("versions",[]).push({version:"3.22.2",mode:yR?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var cT=Vn((Jz,xN)=>{var hR=qc(),DR=$S(),bR=hR.Object;xN.exports=function(M){return bR(DR(M))}});var Wg=Vn((jz,EN)=>{var SR=dp(),TR=cT(),xR=SR({}.hasOwnProperty);EN.exports=Object.hasOwn||function(re,Ve){return xR(TR(re),Ve)}});var uT=Vn((Uz,CN)=>{var ER=dp(),CR=0,kR=Math.random(),AR=ER(1 .toString);CN.exports=function(M){return"Symbol("+(M===void 0?"":M)+")_"+AR(++CR+kR,36)}});var Vy=Vn((zz,IN)=>{var NR=qc(),PR=sT(),kN=Wg(),IR=uT(),AN=rT(),PN=iT(),Iv=PR("wks"),Pm=NR.Symbol,NN=Pm&&Pm.for,wR=PN?Pm:Pm&&Pm.withoutSetter||IR;IN.exports=function(M){if(!kN(Iv,M)||!(AN||typeof Iv[M]=="string")){var re="Symbol."+M;AN&&kN(Pm,M)?Iv[M]=Pm[M]:PN&&NN?Iv[M]=NN(re):Iv[M]=wR(re)}return Iv[M]}});var MN=Vn((Wz,FN)=>{var OR=qc(),FR=r1(),wN=Nm(),ON=tT(),MR=pN(),LR=gN(),RR=Vy(),BR=OR.TypeError,JR=RR("toPrimitive");FN.exports=function(M,re){if(!wN(M)||ON(M))return M;var Ve=MR(M,JR),Ke;if(Ve){if(re===void 0&&(re="default"),Ke=FR(Ve,M,re),!wN(Ke)||ON(Ke))return Ke;throw BR("Can't convert object to primitive value")}return re===void 0&&(re="number"),LR(M,re)}});var lT=Vn((qz,LN)=>{var jR=MN(),UR=tT();LN.exports=function(M){var re=jR(M,"string");return UR(re)?re:re+""}});var JN=Vn((Vz,BN)=>{var zR=qc(),RN=Nm(),fT=zR.document,WR=RN(fT)&&RN(fT.createElement);BN.exports=function(M){return WR?fT.createElement(M):{}}});var _T=Vn((Kz,jN)=>{var qR=Am(),VR=cg(),KR=JN();jN.exports=!qR&&!VR(function(){return Object.defineProperty(KR("div"),"a",{get:function(){return 7}}).a!=7})});var pT=Vn(zN=>{var GR=Am(),HR=r1(),XR=FA(),QR=XS(),YR=t1(),$R=lT(),ZR=Wg(),eB=_T(),UN=Object.getOwnPropertyDescriptor;zN.f=GR?UN:function(re,Ve){if(re=YR(re),Ve=$R(Ve),eB)try{return UN(re,Ve)}catch{}if(ZR(re,Ve))return QR(!HR(XR.f,re,Ve),re[Ve])}});var qN=Vn((Hz,WN)=>{var rB=Am(),iB=cg();WN.exports=rB&&iB(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var dT=Vn((Xz,KN)=>{var VN=qc(),tB=Nm(),aB=VN.String,nB=VN.TypeError;KN.exports=function(M){if(tB(M))return M;throw nB(aB(M)+" is not an object")}});var hT=Vn(HN=>{var oB=qc(),sB=Am(),cB=_T(),uB=qN(),c1=dT(),GN=lT(),lB=oB.TypeError,gT=Object.defineProperty,fB=Object.getOwnPropertyDescriptor,mT="enumerable",vT="configurable",yT="writable";HN.f=sB?uB?function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),typeof re=="function"&&Ve==="prototype"&&"value"in Ke&&yT in Ke&&!Ke[yT]){var oi=fB(re,Ve);oi&&oi[yT]&&(re[Ve]=Ke.value,Ke={configurable:vT in Ke?Ke[vT]:oi[vT],enumerable:mT in Ke?Ke[mT]:oi[mT],writable:!1})}return gT(re,Ve,Ke)}:gT:function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),cB)try{return gT(re,Ve,Ke)}catch{}if("get"in Ke||"set"in Ke)throw lB("Accessors not supported");return"value"in Ke&&(re[Ve]=Ke.value),re}});var u1=Vn((Yz,XN)=>{var _B=Am(),pB=hT(),dB=XS();XN.exports=_B?function(M,re,Ve){return pB.f(M,re,dB(1,Ve))}:function(M,re,Ve){return M[re]=Ve,M}});var l1=Vn(($z,QN)=>{var gB=dp(),mB=gp(),DT=s1(),vB=gB(Function.toString);mB(DT.inspectSource)||(DT.inspectSource=function(M){return vB(M)});QN.exports=DT.inspectSource});var ZN=Vn((Zz,$N)=>{var yB=qc(),hB=gp(),DB=l1(),YN=yB.WeakMap;$N.exports=hB(YN)&&/native code/.test(DB(YN))});var iP=Vn((eW,rP)=>{var bB=sT(),SB=uT(),eP=bB("keys");rP.exports=function(M){return eP[M]||(eP[M]=SB(M))}});var bT=Vn((rW,tP)=>{tP.exports={}});var uP=Vn((iW,cP)=>{var TB=ZN(),sP=qc(),ST=dp(),xB=Nm(),EB=u1(),TT=Wg(),xT=s1(),CB=iP(),kB=bT(),aP="Object already initialized",CT=sP.TypeError,AB=sP.WeakMap,f1,Ky,_1,NB=function(M){return _1(M)?Ky(M):f1(M,{})},PB=function(M){return function(re){var Ve;if(!xB(re)||(Ve=Ky(re)).type!==M)throw CT("Incompatible receiver, "+M+" required");return Ve}};TB||xT.state?(qg=xT.state||(xT.state=new AB),nP=ST(qg.get),ET=ST(qg.has),oP=ST(qg.set),f1=function(M,re){if(ET(qg,M))throw new CT(aP);return re.facade=M,oP(qg,M,re),re},Ky=function(M){return nP(qg,M)||{}},_1=function(M){return ET(qg,M)}):(Im=CB("state"),kB[Im]=!0,f1=function(M,re){if(TT(M,Im))throw new CT(aP);return re.facade=M,EB(M,Im,re),re},Ky=function(M){return TT(M,Im)?M[Im]:{}},_1=function(M){return TT(M,Im)});var qg,nP,ET,oP,Im;cP.exports={set:f1,get:Ky,has:_1,enforce:NB,getterFor:PB}});var _P=Vn((tW,fP)=>{var kT=Am(),IB=Wg(),lP=Function.prototype,wB=kT&&Object.getOwnPropertyDescriptor,AT=IB(lP,"name"),OB=AT&&function(){}.name==="something",FB=AT&&(!kT||kT&&wB(lP,"name").configurable);fP.exports={EXISTS:AT,PROPER:OB,CONFIGURABLE:FB}});var vP=Vn((aW,mP)=>{var MB=qc(),pP=gp(),LB=Wg(),dP=u1(),RB=o1(),BB=l1(),gP=uP(),JB=_P().CONFIGURABLE,jB=gP.get,UB=gP.enforce,zB=String(String).split("String");(mP.exports=function(M,re,Ve,Ke){var oi=Ke?!!Ke.unsafe:!1,kr=Ke?!!Ke.enumerable:!1,dr=Ke?!!Ke.noTargetGet:!1,Lr=Ke&&Ke.name!==void 0?Ke.name:re,ar;if(pP(Ve)&&(String(Lr).slice(0,7)==="Symbol("&&(Lr="["+String(Lr).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!LB(Ve,"name")||JB&&Ve.name!==Lr)&&dP(Ve,"name",Lr),ar=UB(Ve),ar.source||(ar.source=zB.join(typeof Lr=="string"?Lr:""))),M===MB){kr?M[re]=Ve:RB(re,Ve);return}else oi?!dr&&M[re]&&(kr=!0):delete M[re];kr?M[re]=Ve:dP(M,re,Ve)})(Function.prototype,"toString",function(){return pP(this)&&jB(this).source||BB(this)})});var NT=Vn((nW,yP)=>{var WB=Math.ceil,qB=Math.floor;yP.exports=function(M){var re=+M;return re!==re||re===0?0:(re>0?qB:WB)(re)}});var DP=Vn((oW,hP)=>{var VB=NT(),KB=Math.max,GB=Math.min;hP.exports=function(M,re){var Ve=VB(M);return Ve<0?KB(Ve+re,0):GB(Ve,re)}});var SP=Vn((sW,bP)=>{var HB=NT(),XB=Math.min;bP.exports=function(M){return M>0?XB(HB(M),9007199254740991):0}});var p1=Vn((cW,TP)=>{var QB=SP();TP.exports=function(M){return QB(M.length)}});var CP=Vn((uW,EP)=>{var YB=t1(),$B=DP(),ZB=p1(),xP=function(M){return function(re,Ve,Ke){var oi=YB(re),kr=ZB(oi),dr=$B(Ke,kr),Lr;if(M&&Ve!=Ve){for(;kr>dr;)if(Lr=oi[dr++],Lr!=Lr)return!0}else for(;kr>dr;dr++)if((M||dr in oi)&&oi[dr]===Ve)return M||dr||0;return!M&&-1}};EP.exports={includes:xP(!0),indexOf:xP(!1)}});var NP=Vn((lW,AP)=>{var eJ=dp(),PT=Wg(),rJ=t1(),iJ=CP().indexOf,tJ=bT(),kP=eJ([].push);AP.exports=function(M,re){var Ve=rJ(M),Ke=0,oi=[],kr;for(kr in Ve)!PT(tJ,kr)&&PT(Ve,kr)&&kP(oi,kr);for(;re.length>Ke;)PT(Ve,kr=re[Ke++])&&(~iJ(oi,kr)||kP(oi,kr));return oi}});var IP=Vn((fW,PP)=>{PP.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var OP=Vn(wP=>{var aJ=NP(),nJ=IP(),oJ=nJ.concat("length","prototype");wP.f=Object.getOwnPropertyNames||function(re){return aJ(re,oJ)}});var MP=Vn(FP=>{FP.f=Object.getOwnPropertySymbols});var RP=Vn((dW,LP)=>{var sJ=qy(),cJ=dp(),uJ=OP(),lJ=MP(),fJ=dT(),_J=cJ([].concat);LP.exports=sJ("Reflect","ownKeys")||function(re){var Ve=uJ.f(fJ(re)),Ke=lJ.f;return Ke?_J(Ve,Ke(re)):Ve}});var jP=Vn((gW,JP)=>{var BP=Wg(),pJ=RP(),dJ=pT(),gJ=hT();JP.exports=function(M,re,Ve){for(var Ke=pJ(re),oi=gJ.f,kr=dJ.f,dr=0;dr{var mJ=cg(),vJ=gp(),yJ=/#|\.prototype\./,Gy=function(M,re){var Ve=DJ[hJ(M)];return Ve==SJ?!0:Ve==bJ?!1:vJ(re)?mJ(re):!!re},hJ=Gy.normalize=function(M){return String(M).replace(yJ,".").toLowerCase()},DJ=Gy.data={},bJ=Gy.NATIVE="N",SJ=Gy.POLYFILL="P";UP.exports=Gy});var wT=Vn((vW,WP)=>{var IT=qc(),TJ=pT().f,xJ=u1(),EJ=vP(),CJ=o1(),kJ=jP(),AJ=zP();WP.exports=function(M,re){var Ve=M.target,Ke=M.global,oi=M.stat,kr,dr,Lr,ar,ke,e;if(Ke?dr=IT:oi?dr=IT[Ve]||CJ(Ve,{}):dr=(IT[Ve]||{}).prototype,dr)for(Lr in re){if(ke=re[Lr],M.noTargetGet?(e=TJ(dr,Lr),ar=e&&e.value):ar=dr[Lr],kr=AJ(Ke?Lr:Ve+(oi?".":"#")+Lr,M.forced),!kr&&ar!==void 0){if(typeof ke==typeof ar)continue;kJ(ke,ar)}(M.sham||ar&&ar.sham)&&xJ(ke,"sham",!0),EJ(dr,Lr,ke,M)}}});var qP=Vn(()=>{var NJ=wT(),PJ=qc();NJ({global:!0},{globalThis:PJ})});var OT=Vn((DW,VP)=>{var IJ=i1();VP.exports=Array.isArray||function(re){return IJ(re)=="Array"}});var HP=Vn((bW,GP)=>{var KP=dp(),wJ=n1(),OJ=Z0(),FJ=KP(KP.bind);GP.exports=function(M,re){return wJ(M),re===void 0?M:OJ?FJ(M,re):function(){return M.apply(re,arguments)}}});var YP=Vn((SW,QP)=>{"use strict";var MJ=qc(),LJ=OT(),RJ=p1(),BJ=HP(),JJ=MJ.TypeError,XP=function(M,re,Ve,Ke,oi,kr,dr,Lr){for(var ar=oi,ke=0,e=dr?BJ(dr,Lr):!1,a,C;ke0&&LJ(a))C=RJ(a),ar=XP(M,re,a,C,ar,kr-1)-1;else{if(ar>=9007199254740991)throw JJ("Exceed the acceptable array length");M[ar]=a}ar++}ke++}return ar};QP.exports=XP});var e4=Vn((TW,ZP)=>{var jJ=Vy(),UJ=jJ("toStringTag"),$P={};$P[UJ]="z";ZP.exports=String($P)==="[object z]"});var i4=Vn((xW,r4)=>{var zJ=qc(),WJ=e4(),qJ=gp(),d1=i1(),VJ=Vy(),KJ=VJ("toStringTag"),GJ=zJ.Object,HJ=d1(function(){return arguments}())=="Arguments",XJ=function(M,re){try{return M[re]}catch{}};r4.exports=WJ?d1:function(M){var re,Ve,Ke;return M===void 0?"Undefined":M===null?"Null":typeof(Ve=XJ(re=GJ(M),KJ))=="string"?Ve:HJ?d1(re):(Ke=d1(re))=="Object"&&qJ(re.callee)?"Arguments":Ke}});var c4=Vn((EW,s4)=>{var QJ=dp(),YJ=cg(),t4=gp(),$J=i4(),ZJ=qy(),ej=l1(),a4=function(){},rj=[],n4=ZJ("Reflect","construct"),FT=/^\s*(?:class|function)\b/,ij=QJ(FT.exec),tj=!FT.exec(a4),Hy=function(re){if(!t4(re))return!1;try{return n4(a4,rj,re),!0}catch{return!1}},o4=function(re){if(!t4(re))return!1;switch($J(re)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return tj||!!ij(FT,ej(re))}catch{return!0}};o4.sham=!0;s4.exports=!n4||YJ(function(){var M;return Hy(Hy.call)||!Hy(Object)||!Hy(function(){M=!0})||M})?o4:Hy});var _4=Vn((CW,f4)=>{var aj=qc(),u4=OT(),nj=c4(),oj=Nm(),sj=Vy(),cj=sj("species"),l4=aj.Array;f4.exports=function(M){var re;return u4(M)&&(re=M.constructor,nj(re)&&(re===l4||u4(re.prototype))?re=void 0:oj(re)&&(re=re[cj],re===null&&(re=void 0))),re===void 0?l4:re}});var d4=Vn((kW,p4)=>{var uj=_4();p4.exports=function(M,re){return new(uj(M))(re===0?0:re)}});qP();var lj=wT(),fj=YP(),_j=n1(),pj=cT(),dj=p1(),gj=d4();lj({target:"Array",proto:!0},{flatMap:function(re){var Ve=pj(this),Ke=dj(Ve),oi;return _j(re),oi=gj(Ve,0),oi.length=fj(oi,Ve,Ve,Ke,0,1,re,arguments.length>1?arguments[1]:void 0),oi}});var zT=Object.defineProperty,mj=Object.getOwnPropertyDescriptor,WT=Object.getOwnPropertyNames,vj=Object.prototype.hasOwnProperty,Qy=(M,re)=>function(){return M&&(re=(0,M[WT(M)[0]])(M=0)),re},wa=(M,re)=>function(){return re||(0,M[WT(M)[0]])((re={exports:{}}).exports,re),re.exports},h1=(M,re)=>{for(var Ve in re)zT(M,Ve,{get:re[Ve],enumerable:!0})},yj=(M,re,Ve,Ke)=>{if(re&&typeof re=="object"||typeof re=="function")for(let oi of WT(re))!vj.call(M,oi)&&oi!==Ve&&zT(M,oi,{get:()=>re[oi],enumerable:!(Ke=mj(re,oi))||Ke.enumerable});return M},mp=M=>yj(zT({},"__esModule",{value:!0}),M),g4,m4,Eu,Ea=Qy({""(){g4={},m4=[],Eu={env:g4,argv:m4}}}),h4=wa({"src/common/parser-create-error.js"(M,re){"use strict";Ea();function Ve(Ke,oi){let kr=new SyntaxError(Ke+" ("+oi.start.line+":"+oi.start.column+")");return kr.loc=oi,kr}re.exports=Ve}}),hj=wa({"src/utils/try-combinations.js"(M,re){"use strict";Ea();function Ve(){let Ke;for(var oi=arguments.length,kr=new Array(oi),dr=0;drRT,arch:()=>Dj,cpus:()=>k4,default:()=>w4,endianness:()=>b4,freemem:()=>E4,getNetworkInterfaces:()=>I4,hostname:()=>S4,loadavg:()=>T4,networkInterfaces:()=>P4,platform:()=>bj,release:()=>N4,tmpDir:()=>MT,tmpdir:()=>LT,totalmem:()=>C4,type:()=>A4,uptime:()=>x4});function b4(){if(typeof g1>"u"){var M=new ArrayBuffer(2),re=new Uint8Array(M),Ve=new Uint16Array(M);if(re[0]=1,re[1]=2,Ve[0]===258)g1="BE";else if(Ve[0]===513)g1="LE";else throw new Error("unable to figure out endianess")}return g1}function S4(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function T4(){return[]}function x4(){return 0}function E4(){return Number.MAX_VALUE}function C4(){return Number.MAX_VALUE}function k4(){return[]}function A4(){return"Browser"}function N4(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function P4(){}function I4(){}function Dj(){return"javascript"}function bj(){return"browser"}function MT(){return"/tmp"}var g1,LT,RT,w4,Sj=Qy({"node-modules-polyfills:os"(){Ea(),LT=MT,RT=` +`,w4={EOL:RT,tmpdir:LT,tmpDir:MT,networkInterfaces:P4,getNetworkInterfaces:I4,release:N4,type:A4,cpus:k4,totalmem:C4,freemem:E4,uptime:x4,loadavg:T4,hostname:S4,endianness:b4}}}),Tj=wa({"node-modules-polyfills-commonjs:os"(M,re){Ea();var Ve=(Sj(),mp(D4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),xj=wa({"node_modules/detect-newline/index.js"(M,re){"use strict";Ea();var Ve=Ke=>{if(typeof Ke!="string")throw new TypeError("Expected a string");let oi=Ke.match(/(?:\r?\n)/g)||[];if(oi.length===0)return;let kr=oi.filter(Lr=>Lr===`\r +`).length,dr=oi.length-kr;return kr>dr?`\r +`:` +`};re.exports=Ve,re.exports.graceful=Ke=>typeof Ke=="string"&&Ve(Ke)||` +`}}),Ej=wa({"node_modules/jest-docblock/build/index.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.extract=I,M.parse=E,M.parseWithComments=X,M.print=le,M.strip=R;function re(){let p=Tj();return re=function(){return p},p}function Ve(){let p=Ke(xj());return Ve=function(){return p},p}function Ke(p){return p&&p.__esModule?p:{default:p}}var oi=/\*\/$/,kr=/^\/\*\*/,dr=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Lr=/(^|\s+)\/\/([^\r\n]*)/g,ar=/^(\r?\n)+/,ke=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,e=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,a=/(\r?\n|^) *\* ?/g,C=[];function I(p){let m=p.match(dr);return m?m[0].trimLeft():""}function R(p){let m=p.match(dr);return m&&m[0]?p.substring(m[0].length):p}function E(p){return X(p).pragmas}function X(p){let m=(0,Ve().default)(p)||re().EOL;p=p.replace(kr,"").replace(oi,"").replace(a,"$1");let G="";for(;G!==p;)G=p,p=p.replace(ke,"".concat(m,"$1 $2").concat(m));p=p.replace(ar,"").trimRight();let oe=Object.create(null),f=p.replace(e,"").replace(ar,"").trimRight(),T;for(;T=e.exec(p);){let K=T[2].replace(Lr,"");typeof oe[T[1]]=="string"||Array.isArray(oe[T[1]])?oe[T[1]]=C.concat(oe[T[1]],K):oe[T[1]]=K}return{comments:f,pragmas:oe}}function le(p){let{comments:m="",pragmas:G={}}=p,oe=(0,Ve().default)(m)||re().EOL,f="/**",T=" *",K=" */",b=Object.keys(G),se=b.map(ie=>N(ie,G[ie])).reduce((ie,B)=>ie.concat(B),[]).map(ie=>T+" "+ie+oe).join("");if(!m){if(b.length===0)return"";if(b.length===1&&!Array.isArray(G[b[0]])){let ie=G[b[0]];return"".concat(f," ").concat(N(b[0],ie)[0]).concat(K)}}let J=m.split(oe).map(ie=>"".concat(T," ").concat(ie)).join(oe)+oe;return f+oe+(m?J:"")+(m&&b.length?T+oe:"")+se+K}function N(p,m){return C.concat(m).map(G=>"@".concat(p," ").concat(G).trim())}}}),Cj=wa({"src/common/end-of-line.js"(M,re){"use strict";Ea();function Ve(dr){let Lr=dr.indexOf("\r");return Lr>=0?dr.charAt(Lr+1)===` +`?"crlf":"cr":"lf"}function Ke(dr){switch(dr){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function oi(dr,Lr){let ar;switch(Lr){case` +`:ar=/\n/g;break;case"\r":ar=/\r/g;break;case`\r +`:ar=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(Lr),"."))}let ke=dr.match(ar);return ke?ke.length:0}function kr(dr){return dr.replace(/\r\n?/g,` +`)}re.exports={guessEndOfLine:Ve,convertEndOfLineToChars:Ke,countEndOfLineChars:oi,normalizeEndOfLine:kr}}}),kj=wa({"src/language-js/utils/get-shebang.js"(M,re){"use strict";Ea();function Ve(Ke){if(!Ke.startsWith("#!"))return"";let oi=Ke.indexOf(` +`);return oi===-1?Ke:Ke.slice(0,oi)}re.exports=Ve}}),Aj=wa({"src/language-js/pragma.js"(M,re){"use strict";Ea();var{parseWithComments:Ve,strip:Ke,extract:oi,print:kr}=Ej(),{normalizeEndOfLine:dr}=Cj(),Lr=kj();function ar(a){let C=Lr(a);C&&(a=a.slice(C.length+1));let I=oi(a),{pragmas:R,comments:E}=Ve(I);return{shebang:C,text:a,pragmas:R,comments:E}}function ke(a){let C=Object.keys(ar(a).pragmas);return C.includes("prettier")||C.includes("format")}function e(a){let{shebang:C,text:I,pragmas:R,comments:E}=ar(a),X=Ke(I),le=kr({pragmas:Object.assign({format:""},R),comments:E.trimStart()});return(C?"".concat(C,` +`):"")+dr(le)+(X.startsWith(` +`)?` +`:` + +`)+X}re.exports={hasPragma:ke,insertPragma:e}}}),Nj=wa({"src/utils/is-non-empty-array.js"(M,re){"use strict";Ea();function Ve(Ke){return Array.isArray(Ke)&&Ke.length>0}re.exports=Ve}}),O4=wa({"src/language-js/loc.js"(M,re){"use strict";Ea();var Ve=Nj();function Ke(ar,ke){let{ignoreDecorators:e}=ke||{};if(!e){let a=ar.declaration&&ar.declaration.decorators||ar.decorators;if(Ve(a))return Ke(a[0])}return ar.range?ar.range[0]:ar.start}function oi(ar){return ar.range?ar.range[1]:ar.end}function kr(ar,ke){let e=Ke(ar);return Number.isInteger(e)&&e===Ke(ke)}function dr(ar,ke){let e=oi(ar);return Number.isInteger(e)&&e===oi(ke)}function Lr(ar,ke){return kr(ar,ke)&&dr(ar,ke)}re.exports={locStart:Ke,locEnd:oi,hasSameLocStart:kr,hasSameLoc:Lr}}}),Pj=wa({"src/language-js/parse/utils/create-parser.js"(M,re){"use strict";Ea();var{hasPragma:Ve}=Aj(),{locStart:Ke,locEnd:oi}=O4();function kr(dr){return dr=typeof dr=="function"?{parse:dr}:dr,Object.assign({astFormat:"estree",hasPragma:Ve,locStart:Ke,locEnd:oi},dr)}re.exports=kr}}),Ij=wa({"src/language-js/parse/utils/replace-hashbang.js"(M,re){"use strict";Ea();function Ve(Ke){return Ke.charAt(0)==="#"&&Ke.charAt(1)==="!"?"//"+Ke.slice(2):Ke}re.exports=Ve}}),wj=wa({"src/language-js/utils/is-ts-keyword-type.js"(M,re){"use strict";Ea();function Ve(Ke){let{type:oi}=Ke;return oi.startsWith("TS")&&oi.endsWith("Keyword")}re.exports=Ve}}),Oj=wa({"src/language-js/utils/is-block-comment.js"(M,re){"use strict";Ea();var Ve=new Set(["Block","CommentBlock","MultiLine"]),Ke=oi=>Ve.has(oi==null?void 0:oi.type);re.exports=Ke}}),Fj=wa({"src/language-js/utils/is-type-cast-comment.js"(M,re){"use strict";Ea();var Ve=Oj();function Ke(oi){return Ve(oi)&&oi.value[0]==="*"&&/@type\b/.test(oi.value)}re.exports=Ke}}),Mj=wa({"src/utils/get-last.js"(M,re){"use strict";Ea();var Ve=Ke=>Ke[Ke.length-1];re.exports=Ve}}),F4=wa({"src/language-js/parse/postprocess/visit-node.js"(M,re){"use strict";Ea();function Ve(Ke,oi){if(Array.isArray(Ke)){for(let kr=0;kr{let I=ke.get(C);return!I||!a.includes(I)}))&&Ke(ar,"Leading decorators must be attached to a class declaration")}function kr(Lr,ar){Lr.kind!==167||Lr.modifiers&&!Lr.modifiers.some(a=>a.kind===126)||Lr.initializer&&ar.value===null&&Ke(ar,"Abstract property cannot have an initializer")}function dr(Lr,ar){let{esTreeNodeToTSNodeMap:ke,tsNodeToESTreeNodeMap:e}=ar.tsParseResult;Ve(Lr,a=>{let C=ke.get(a);if(!C)return;let I=e.get(C);I===a&&(oi(C,I,e),kr(C,I))})}re.exports={throwErrorForInvalidNodes:dr}}}),Rj=wa({"src/language-js/parse/postprocess/index.js"(M,re){"use strict";Ea();var{locStart:Ve,locEnd:Ke}=O4(),oi=wj(),kr=Fj(),dr=Mj(),Lr=F4(),{throwErrorForInvalidNodes:ar}=Lj(),ke=M4();function e(R,E){if(E.parser==="typescript"&&/@|abstract/.test(E.originalText)&&ar(R,E),E.parser!=="typescript"&&E.parser!=="flow"&&E.parser!=="acorn"&&E.parser!=="espree"&&E.parser!=="meriyah"){let le=new Set;R=Lr(R,N=>{N.leadingComments&&N.leadingComments.some(kr)&&le.add(Ve(N))}),R=Lr(R,N=>{if(N.type==="ParenthesizedExpression"){let{expression:p}=N;if(p.type==="TypeCastExpression")return p.range=N.range,p;let m=Ve(N);if(!le.has(m))return p.extra=Object.assign(Object.assign({},p.extra),{},{parenthesized:!0}),p}})}return R=Lr(R,le=>{switch(le.type){case"ChainExpression":return a(le.expression);case"LogicalExpression":{if(C(le))return I(le);break}case"VariableDeclaration":{let N=dr(le.declarations);N&&N.init&&X(le,N);break}case"TSParenthesizedType":return oi(le.typeAnnotation)||le.typeAnnotation.type==="TSThisType"||(le.typeAnnotation.range=[Ve(le),Ke(le)]),le.typeAnnotation;case"TSTypeParameter":if(typeof le.name=="string"){let N=Ve(le);le.name={type:"Identifier",name:le.name,range:[N,N+le.name.length]}}break;case"ObjectExpression":if(E.parser==="typescript"){let N=le.properties.find(p=>p.type==="Property"&&p.value.type==="TSEmptyBodyFunctionExpression");N&&ke(N.value,"Unexpected token.")}break;case"SequenceExpression":{let N=dr(le.expressions);le.range=[Ve(le),Math.min(Ke(N),Ke(le))];break}case"TopicReference":E.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:N}=le;if(E.parser==="meriyah"&&N&&N.type==="Identifier"){let p=E.originalText.slice(Ve(N),Ke(N));(p.startsWith('"')||p.startsWith("'"))&&(le.exported=Object.assign(Object.assign({},le.exported),{},{type:"Literal",value:le.exported.name,raw:p}))}break}}}),R;function X(le,N){E.originalText[Ke(N)]!==";"&&(le.range=[Ve(le),Ke(N)])}}function a(R){switch(R.type){case"CallExpression":R.type="OptionalCallExpression",R.callee=a(R.callee);break;case"MemberExpression":R.type="OptionalMemberExpression",R.object=a(R.object);break;case"TSNonNullExpression":R.expression=a(R.expression);break}return R}function C(R){return R.type==="LogicalExpression"&&R.right.type==="LogicalExpression"&&R.operator===R.right.operator}function I(R){return C(R)?I({type:"LogicalExpression",operator:R.operator,left:I({type:"LogicalExpression",operator:R.operator,left:R.left,right:R.right.left,range:[Ve(R.left),Ke(R.right.left)]}),right:R.right.right,range:[Ve(R),Ke(R)]}):R}re.exports=e}}),Bj=wa({"node_modules/ms/index.js"(M,re){Ea();var Ve=1e3,Ke=Ve*60,oi=Ke*60,kr=oi*24,dr=kr*7,Lr=kr*365.25;re.exports=function(C,I){I=I||{};var R=typeof C;if(R==="string"&&C.length>0)return ar(C);if(R==="number"&&isFinite(C))return I.long?e(C):ke(C);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(C))};function ar(C){if(C=String(C),!(C.length>100)){var I=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(C);if(!!I){var R=parseFloat(I[1]),E=(I[2]||"ms").toLowerCase();switch(E){case"years":case"year":case"yrs":case"yr":case"y":return R*Lr;case"weeks":case"week":case"w":return R*dr;case"days":case"day":case"d":return R*kr;case"hours":case"hour":case"hrs":case"hr":case"h":return R*oi;case"minutes":case"minute":case"mins":case"min":case"m":return R*Ke;case"seconds":case"second":case"secs":case"sec":case"s":return R*Ve;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return R;default:return}}}}function ke(C){var I=Math.abs(C);return I>=kr?Math.round(C/kr)+"d":I>=oi?Math.round(C/oi)+"h":I>=Ke?Math.round(C/Ke)+"m":I>=Ve?Math.round(C/Ve)+"s":C+"ms"}function e(C){var I=Math.abs(C);return I>=kr?a(C,I,kr,"day"):I>=oi?a(C,I,oi,"hour"):I>=Ke?a(C,I,Ke,"minute"):I>=Ve?a(C,I,Ve,"second"):C+" ms"}function a(C,I,R,E){var X=I>=R*1.5;return Math.round(C/R)+" "+E+(X?"s":"")}}}),Jj=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/debug/src/common.js"(M,re){Ea();function Ve(Ke){kr.debug=kr,kr.default=kr,kr.coerce=a,kr.disable=ar,kr.enable=Lr,kr.enabled=ke,kr.humanize=Bj(),kr.destroy=C,Object.keys(Ke).forEach(I=>{kr[I]=Ke[I]}),kr.names=[],kr.skips=[],kr.formatters={};function oi(I){let R=0;for(let E=0;E{if(se==="%%")return"%";K++;let ie=kr.formatters[J];if(typeof ie=="function"){let B=m[K];se=ie.call(oe,B),m.splice(K,1),K--}return se}),kr.formatArgs.call(oe,m),(oe.log||kr.log).apply(oe,m)}return N.namespace=I,N.useColors=kr.useColors(),N.color=kr.selectColor(I),N.extend=dr,N.destroy=kr.destroy,Object.defineProperty(N,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(X!==kr.namespaces&&(X=kr.namespaces,le=kr.enabled(I)),le),set:p=>{E=p}}),typeof kr.init=="function"&&kr.init(N),N}function dr(I,R){let E=kr(this.namespace+(typeof R>"u"?":":R)+I);return E.log=this.log,E}function Lr(I){kr.save(I),kr.namespaces=I,kr.names=[],kr.skips=[];let R,E=(typeof I=="string"?I:"").split(/[\s,]+/),X=E.length;for(R=0;R"-"+R)].join(",");return kr.enable(""),I}function ke(I){if(I[I.length-1]==="*")return!0;let R,E;for(R=0,E=kr.skips.length;R{let ar=!1;return()=>{ar||(ar=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),M.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Ve(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Ke(ar){if(ar[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+ar[0]+(this.useColors?"%c ":" ")+"+"+re.exports.humanize(this.diff),!this.useColors)return;let ke="color: "+this.color;ar.splice(1,0,ke,"color: inherit");let e=0,a=0;ar[0].replace(/%[a-zA-Z%]/g,C=>{C!=="%%"&&(e++,C==="%c"&&(a=e))}),ar.splice(a,0,ke)}M.log=console.debug||console.log||(()=>{});function oi(ar){try{ar?M.storage.setItem("debug",ar):M.storage.removeItem("debug")}catch{}}function kr(){let ar;try{ar=M.storage.getItem("debug")}catch{}return!ar&&typeof Eu<"u"&&"env"in Eu&&(ar=Eu.env.DEBUG),ar}function dr(){try{return localStorage}catch{}}re.exports=Jj()(M);var{formatters:Lr}=re.exports;Lr.j=function(ar){try{return JSON.stringify(ar)}catch(ke){return"[UnexpectedJSONParseError]: "+ke.message}}}}),jj=wa({"node_modules/is-extglob/index.js"(M,re){Ea(),re.exports=function(Ke){if(typeof Ke!="string"||Ke==="")return!1;for(var oi;oi=/(\\).|([@?!+*]\(.*\))/g.exec(Ke);){if(oi[2])return!0;Ke=Ke.slice(oi.index+oi[0].length)}return!1}}}),Uj=wa({"node_modules/is-glob/index.js"(M,re){Ea();var Ve=jj(),Ke={"{":"}","(":")","[":"]"},oi=function(dr){if(dr[0]==="!")return!0;for(var Lr=0,ar=-2,ke=-2,e=-2,a=-2,C=-2;LrLr&&(C===-1||C>ke||(C=dr.indexOf("\\",Lr),C===-1||C>ke)))||e!==-1&&dr[Lr]==="{"&&dr[Lr+1]!=="}"&&(e=dr.indexOf("}",Lr),e>Lr&&(C=dr.indexOf("\\",Lr),C===-1||C>e))||a!==-1&&dr[Lr]==="("&&dr[Lr+1]==="?"&&/[:!=]/.test(dr[Lr+2])&&dr[Lr+3]!==")"&&(a=dr.indexOf(")",Lr),a>Lr&&(C=dr.indexOf("\\",Lr),C===-1||C>a))||ar!==-1&&dr[Lr]==="("&&dr[Lr+1]!=="|"&&(arar&&(C=dr.indexOf("\\",ar),C===-1||C>a))))return!0;if(dr[Lr]==="\\"){var I=dr[Lr+1];Lr+=2;var R=Ke[I];if(R){var E=dr.indexOf(R,Lr);E!==-1&&(Lr=E+1)}if(dr[Lr]==="!")return!0}else Lr++}return!1},kr=function(dr){if(dr[0]==="!")return!0;for(var Lr=0;Lr{};re.exports=Ve}}),wv=wa({"node_modules/semver/internal/re.js"(M,re){Ea();var{MAX_SAFE_COMPONENT_LENGTH:Ve}=D1(),Ke=b1();M=re.exports={};var oi=M.re=[],kr=M.src=[],dr=M.t={},Lr=0,ar=(ke,e,a)=>{let C=Lr++;Ke(ke,C,e),dr[ke]=C,kr[C]=e,oi[C]=new RegExp(e,a?"g":void 0)};ar("NUMERICIDENTIFIER","0|[1-9]\\d*"),ar("NUMERICIDENTIFIERLOOSE","[0-9]+"),ar("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),ar("MAINVERSION","(".concat(kr[dr.NUMERICIDENTIFIER],")\\.(").concat(kr[dr.NUMERICIDENTIFIER],")\\.(").concat(kr[dr.NUMERICIDENTIFIER],")")),ar("MAINVERSIONLOOSE","(".concat(kr[dr.NUMERICIDENTIFIERLOOSE],")\\.(").concat(kr[dr.NUMERICIDENTIFIERLOOSE],")\\.(").concat(kr[dr.NUMERICIDENTIFIERLOOSE],")")),ar("PRERELEASEIDENTIFIER","(?:".concat(kr[dr.NUMERICIDENTIFIER],"|").concat(kr[dr.NONNUMERICIDENTIFIER],")")),ar("PRERELEASEIDENTIFIERLOOSE","(?:".concat(kr[dr.NUMERICIDENTIFIERLOOSE],"|").concat(kr[dr.NONNUMERICIDENTIFIER],")")),ar("PRERELEASE","(?:-(".concat(kr[dr.PRERELEASEIDENTIFIER],"(?:\\.").concat(kr[dr.PRERELEASEIDENTIFIER],")*))")),ar("PRERELEASELOOSE","(?:-?(".concat(kr[dr.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(kr[dr.PRERELEASEIDENTIFIERLOOSE],")*))")),ar("BUILDIDENTIFIER","[0-9A-Za-z-]+"),ar("BUILD","(?:\\+(".concat(kr[dr.BUILDIDENTIFIER],"(?:\\.").concat(kr[dr.BUILDIDENTIFIER],")*))")),ar("FULLPLAIN","v?".concat(kr[dr.MAINVERSION]).concat(kr[dr.PRERELEASE],"?").concat(kr[dr.BUILD],"?")),ar("FULL","^".concat(kr[dr.FULLPLAIN],"$")),ar("LOOSEPLAIN","[v=\\s]*".concat(kr[dr.MAINVERSIONLOOSE]).concat(kr[dr.PRERELEASELOOSE],"?").concat(kr[dr.BUILD],"?")),ar("LOOSE","^".concat(kr[dr.LOOSEPLAIN],"$")),ar("GTLT","((?:<|>)?=?)"),ar("XRANGEIDENTIFIERLOOSE","".concat(kr[dr.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),ar("XRANGEIDENTIFIER","".concat(kr[dr.NUMERICIDENTIFIER],"|x|X|\\*")),ar("XRANGEPLAIN","[v=\\s]*(".concat(kr[dr.XRANGEIDENTIFIER],")(?:\\.(").concat(kr[dr.XRANGEIDENTIFIER],")(?:\\.(").concat(kr[dr.XRANGEIDENTIFIER],")(?:").concat(kr[dr.PRERELEASE],")?").concat(kr[dr.BUILD],"?)?)?")),ar("XRANGEPLAINLOOSE","[v=\\s]*(".concat(kr[dr.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(kr[dr.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(kr[dr.XRANGEIDENTIFIERLOOSE],")(?:").concat(kr[dr.PRERELEASELOOSE],")?").concat(kr[dr.BUILD],"?)?)?")),ar("XRANGE","^".concat(kr[dr.GTLT],"\\s*").concat(kr[dr.XRANGEPLAIN],"$")),ar("XRANGELOOSE","^".concat(kr[dr.GTLT],"\\s*").concat(kr[dr.XRANGEPLAINLOOSE],"$")),ar("COERCE","(^|[^\\d])(\\d{1,".concat(Ve,"})(?:\\.(\\d{1,").concat(Ve,"}))?(?:\\.(\\d{1,").concat(Ve,"}))?(?:$|[^\\d])")),ar("COERCERTL",kr[dr.COERCE],!0),ar("LONETILDE","(?:~>?)"),ar("TILDETRIM","(\\s*)".concat(kr[dr.LONETILDE],"\\s+"),!0),M.tildeTrimReplace="$1~",ar("TILDE","^".concat(kr[dr.LONETILDE]).concat(kr[dr.XRANGEPLAIN],"$")),ar("TILDELOOSE","^".concat(kr[dr.LONETILDE]).concat(kr[dr.XRANGEPLAINLOOSE],"$")),ar("LONECARET","(?:\\^)"),ar("CARETTRIM","(\\s*)".concat(kr[dr.LONECARET],"\\s+"),!0),M.caretTrimReplace="$1^",ar("CARET","^".concat(kr[dr.LONECARET]).concat(kr[dr.XRANGEPLAIN],"$")),ar("CARETLOOSE","^".concat(kr[dr.LONECARET]).concat(kr[dr.XRANGEPLAINLOOSE],"$")),ar("COMPARATORLOOSE","^".concat(kr[dr.GTLT],"\\s*(").concat(kr[dr.LOOSEPLAIN],")$|^$")),ar("COMPARATOR","^".concat(kr[dr.GTLT],"\\s*(").concat(kr[dr.FULLPLAIN],")$|^$")),ar("COMPARATORTRIM","(\\s*)".concat(kr[dr.GTLT],"\\s*(").concat(kr[dr.LOOSEPLAIN],"|").concat(kr[dr.XRANGEPLAIN],")"),!0),M.comparatorTrimReplace="$1$2$3",ar("HYPHENRANGE","^\\s*(".concat(kr[dr.XRANGEPLAIN],")\\s+-\\s+(").concat(kr[dr.XRANGEPLAIN],")\\s*$")),ar("HYPHENRANGELOOSE","^\\s*(".concat(kr[dr.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(kr[dr.XRANGEPLAINLOOSE],")\\s*$")),ar("STAR","(<|>)?=?\\s*\\*"),ar("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),ar("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),S1=wa({"node_modules/semver/internal/parse-options.js"(M,re){Ea();var Ve=["includePrerelease","loose","rtl"],Ke=oi=>oi?typeof oi!="object"?{loose:!0}:Ve.filter(kr=>oi[kr]).reduce((kr,dr)=>(kr[dr]=!0,kr),{}):{};re.exports=Ke}}),BT=wa({"node_modules/semver/internal/identifiers.js"(M,re){Ea();var Ve=/^[0-9]+$/,Ke=(kr,dr)=>{let Lr=Ve.test(kr),ar=Ve.test(dr);return Lr&&ar&&(kr=+kr,dr=+dr),kr===dr?0:Lr&&!ar?-1:ar&&!Lr?1:krKe(dr,kr);re.exports={compareIdentifiers:Ke,rcompareIdentifiers:oi}}}),Lf=wa({"node_modules/semver/classes/semver.js"(M,re){Ea();var Ve=b1(),{MAX_LENGTH:Ke,MAX_SAFE_INTEGER:oi}=D1(),{re:kr,t:dr}=wv(),Lr=S1(),{compareIdentifiers:ar}=BT(),ke=class{constructor(e,a){if(a=Lr(a),e instanceof ke){if(e.loose===!!a.loose&&e.includePrerelease===!!a.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError("Invalid Version: ".concat(e));if(e.length>Ke)throw new TypeError("version is longer than ".concat(Ke," characters"));Ve("SemVer",e,a),this.options=a,this.loose=!!a.loose,this.includePrerelease=!!a.includePrerelease;let C=e.trim().match(a.loose?kr[dr.LOOSE]:kr[dr.FULL]);if(!C)throw new TypeError("Invalid Version: ".concat(e));if(this.raw=e,this.major=+C[1],this.minor=+C[2],this.patch=+C[3],this.major>oi||this.major<0)throw new TypeError("Invalid major version");if(this.minor>oi||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>oi||this.patch<0)throw new TypeError("Invalid patch version");C[4]?this.prerelease=C[4].split(".").map(I=>{if(/^[0-9]+$/.test(I)){let R=+I;if(R>=0&&R=0;)typeof this.prerelease[C]=="number"&&(this.prerelease[C]++,C=-2);C===-1&&this.prerelease.push(0)}a&&(ar(this.prerelease[0],a)===0?isNaN(this.prerelease[1])&&(this.prerelease=[a,0]):this.prerelease=[a,0]);break;default:throw new Error("invalid increment argument: ".concat(e))}return this.format(),this.raw=this.version,this}};re.exports=ke}}),Ov=wa({"node_modules/semver/functions/parse.js"(M,re){Ea();var{MAX_LENGTH:Ve}=D1(),{re:Ke,t:oi}=wv(),kr=Lf(),dr=S1(),Lr=(ar,ke)=>{if(ke=dr(ke),ar instanceof kr)return ar;if(typeof ar!="string"||ar.length>Ve||!(ke.loose?Ke[oi.LOOSE]:Ke[oi.FULL]).test(ar))return null;try{return new kr(ar,ke)}catch{return null}};re.exports=Lr}}),zj=wa({"node_modules/semver/functions/valid.js"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let dr=Ve(oi,kr);return dr?dr.version:null};re.exports=Ke}}),Wj=wa({"node_modules/semver/functions/clean.js"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let dr=Ve(oi.trim().replace(/^[=v]+/,""),kr);return dr?dr.version:null};re.exports=Ke}}),qj=wa({"node_modules/semver/functions/inc.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,dr,Lr)=>{typeof dr=="string"&&(Lr=dr,dr=void 0);try{return new Ve(oi instanceof Ve?oi.version:oi,dr).inc(kr,Lr).version}catch{return null}};re.exports=Ke}}),nd=wa({"node_modules/semver/functions/compare.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,dr)=>new Ve(oi,dr).compare(new Ve(kr,dr));re.exports=Ke}}),qT=wa({"node_modules/semver/functions/eq.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,dr)=>Ve(oi,kr,dr)===0;re.exports=Ke}}),Vj=wa({"node_modules/semver/functions/diff.js"(M,re){Ea();var Ve=Ov(),Ke=qT(),oi=(kr,dr)=>{if(Ke(kr,dr))return null;{let Lr=Ve(kr),ar=Ve(dr),ke=Lr.prerelease.length||ar.prerelease.length,e=ke?"pre":"",a=ke?"prerelease":"";for(let C in Lr)if((C==="major"||C==="minor"||C==="patch")&&Lr[C]!==ar[C])return e+C;return a}};re.exports=oi}}),Kj=wa({"node_modules/semver/functions/major.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).major;re.exports=Ke}}),Gj=wa({"node_modules/semver/functions/minor.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).minor;re.exports=Ke}}),Hj=wa({"node_modules/semver/functions/patch.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).patch;re.exports=Ke}}),Xj=wa({"node_modules/semver/functions/prerelease.js"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let dr=Ve(oi,kr);return dr&&dr.prerelease.length?dr.prerelease:null};re.exports=Ke}}),Qj=wa({"node_modules/semver/functions/rcompare.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,dr)=>Ve(kr,oi,dr);re.exports=Ke}}),Yj=wa({"node_modules/semver/functions/compare-loose.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr)=>Ve(oi,kr,!0);re.exports=Ke}}),VT=wa({"node_modules/semver/functions/compare-build.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,dr)=>{let Lr=new Ve(oi,dr),ar=new Ve(kr,dr);return Lr.compare(ar)||Lr.compareBuild(ar)};re.exports=Ke}}),$j=wa({"node_modules/semver/functions/sort.js"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((dr,Lr)=>Ve(dr,Lr,kr));re.exports=Ke}}),Zj=wa({"node_modules/semver/functions/rsort.js"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((dr,Lr)=>Ve(Lr,dr,kr));re.exports=Ke}}),T1=wa({"node_modules/semver/functions/gt.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,dr)=>Ve(oi,kr,dr)>0;re.exports=Ke}}),KT=wa({"node_modules/semver/functions/lt.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,dr)=>Ve(oi,kr,dr)<0;re.exports=Ke}}),L4=wa({"node_modules/semver/functions/neq.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,dr)=>Ve(oi,kr,dr)!==0;re.exports=Ke}}),GT=wa({"node_modules/semver/functions/gte.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,dr)=>Ve(oi,kr,dr)>=0;re.exports=Ke}}),HT=wa({"node_modules/semver/functions/lte.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,dr)=>Ve(oi,kr,dr)<=0;re.exports=Ke}}),R4=wa({"node_modules/semver/functions/cmp.js"(M,re){Ea();var Ve=qT(),Ke=L4(),oi=T1(),kr=GT(),dr=KT(),Lr=HT(),ar=(ke,e,a,C)=>{switch(e){case"===":return typeof ke=="object"&&(ke=ke.version),typeof a=="object"&&(a=a.version),ke===a;case"!==":return typeof ke=="object"&&(ke=ke.version),typeof a=="object"&&(a=a.version),ke!==a;case"":case"=":case"==":return Ve(ke,a,C);case"!=":return Ke(ke,a,C);case">":return oi(ke,a,C);case">=":return kr(ke,a,C);case"<":return dr(ke,a,C);case"<=":return Lr(ke,a,C);default:throw new TypeError("Invalid operator: ".concat(e))}};re.exports=ar}}),eU=wa({"node_modules/semver/functions/coerce.js"(M,re){Ea();var Ve=Lf(),Ke=Ov(),{re:oi,t:kr}=wv(),dr=(Lr,ar)=>{if(Lr instanceof Ve)return Lr;if(typeof Lr=="number"&&(Lr=String(Lr)),typeof Lr!="string")return null;ar=ar||{};let ke=null;if(!ar.rtl)ke=Lr.match(oi[kr.COERCE]);else{let e;for(;(e=oi[kr.COERCERTL].exec(Lr))&&(!ke||ke.index+ke[0].length!==Lr.length);)(!ke||e.index+e[0].length!==ke.index+ke[0].length)&&(ke=e),oi[kr.COERCERTL].lastIndex=e.index+e[1].length+e[2].length;oi[kr.COERCERTL].lastIndex=-1}return ke===null?null:Ke("".concat(ke[2],".").concat(ke[3]||"0",".").concat(ke[4]||"0"),ar)};re.exports=dr}}),rU=wa({"node_modules/yallist/iterator.js"(M,re){"use strict";Ea(),re.exports=function(Ve){Ve.prototype[Symbol.iterator]=function*(){for(let Ke=this.head;Ke;Ke=Ke.next)yield Ke.value}}}}),iU=wa({"node_modules/yallist/yallist.js"(M,re){"use strict";Ea(),re.exports=Ve,Ve.Node=dr,Ve.create=Ve;function Ve(Lr){var ar=this;if(ar instanceof Ve||(ar=new Ve),ar.tail=null,ar.head=null,ar.length=0,Lr&&typeof Lr.forEach=="function")Lr.forEach(function(a){ar.push(a)});else if(arguments.length>0)for(var ke=0,e=arguments.length;ke1)ke=ar;else if(this.head)e=this.head.next,ke=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;e!==null;a++)ke=Lr(ke,e.value,a),e=e.next;return ke},Ve.prototype.reduceReverse=function(Lr,ar){var ke,e=this.tail;if(arguments.length>1)ke=ar;else if(this.tail)e=this.tail.prev,ke=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;e!==null;a--)ke=Lr(ke,e.value,a),e=e.prev;return ke},Ve.prototype.toArray=function(){for(var Lr=new Array(this.length),ar=0,ke=this.head;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.next;return Lr},Ve.prototype.toArrayReverse=function(){for(var Lr=new Array(this.length),ar=0,ke=this.tail;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.prev;return Lr},Ve.prototype.slice=function(Lr,ar){ar=ar||this.length,ar<0&&(ar+=this.length),Lr=Lr||0,Lr<0&&(Lr+=this.length);var ke=new Ve;if(arthis.length&&(ar=this.length);for(var e=0,a=this.head;a!==null&&ethis.length&&(ar=this.length);for(var e=this.length,a=this.tail;a!==null&&e>ar;e--)a=a.prev;for(;a!==null&&e>Lr;e--,a=a.prev)ke.push(a.value);return ke},Ve.prototype.splice=function(Lr,ar){Lr>this.length&&(Lr=this.length-1),Lr<0&&(Lr=this.length+Lr);for(var ke=0,e=this.head;e!==null&&ke1,R=class{constructor(G){if(typeof G=="number"&&(G={max:G}),G||(G={}),G.max&&(typeof G.max!="number"||G.max<0))throw new TypeError("max must be a non-negative number");let oe=this[Ke]=G.max||1/0,f=G.length||I;if(this[kr]=typeof f!="function"?I:f,this[dr]=G.stale||!1,G.maxAge&&typeof G.maxAge!="number")throw new TypeError("maxAge must be a number");this[Lr]=G.maxAge||0,this[ar]=G.dispose,this[ke]=G.noDisposeOnSet||!1,this[C]=G.updateAgeOnGet||!1,this.reset()}set max(G){if(typeof G!="number"||G<0)throw new TypeError("max must be a non-negative number");this[Ke]=G||1/0,le(this)}get max(){return this[Ke]}set allowStale(G){this[dr]=!!G}get allowStale(){return this[dr]}set maxAge(G){if(typeof G!="number")throw new TypeError("maxAge must be a non-negative number");this[Lr]=G,le(this)}get maxAge(){return this[Lr]}set lengthCalculator(G){typeof G!="function"&&(G=I),G!==this[kr]&&(this[kr]=G,this[oi]=0,this[e].forEach(oe=>{oe.length=this[kr](oe.value,oe.key),this[oi]+=oe.length})),le(this)}get lengthCalculator(){return this[kr]}get length(){return this[oi]}get itemCount(){return this[e].length}rforEach(G,oe){oe=oe||this;for(let f=this[e].tail;f!==null;){let T=f.prev;m(this,G,f,oe),f=T}}forEach(G,oe){oe=oe||this;for(let f=this[e].head;f!==null;){let T=f.next;m(this,G,f,oe),f=T}}keys(){return this[e].toArray().map(G=>G.key)}values(){return this[e].toArray().map(G=>G.value)}reset(){this[ar]&&this[e]&&this[e].length&&this[e].forEach(G=>this[ar](G.key,G.value)),this[a]=new Map,this[e]=new Ve,this[oi]=0}dump(){return this[e].map(G=>X(this,G)?!1:{k:G.key,v:G.value,e:G.now+(G.maxAge||0)}).toArray().filter(G=>G)}dumpLru(){return this[e]}set(G,oe,f){if(f=f||this[Lr],f&&typeof f!="number")throw new TypeError("maxAge must be a number");let T=f?Date.now():0,K=this[kr](oe,G);if(this[a].has(G)){if(K>this[Ke])return N(this,this[a].get(G)),!1;let J=this[a].get(G).value;return this[ar]&&(this[ke]||this[ar](G,J.value)),J.now=T,J.maxAge=f,J.value=oe,this[oi]+=K-J.length,J.length=K,this.get(G),le(this),!0}let b=new p(G,oe,K,T,f);return b.length>this[Ke]?(this[ar]&&this[ar](G,oe),!1):(this[oi]+=b.length,this[e].unshift(b),this[a].set(G,this[e].head),le(this),!0)}has(G){if(!this[a].has(G))return!1;let oe=this[a].get(G).value;return!X(this,oe)}get(G){return E(this,G,!0)}peek(G){return E(this,G,!1)}pop(){let G=this[e].tail;return G?(N(this,G),G.value):null}del(G){N(this,this[a].get(G))}load(G){this.reset();let oe=Date.now();for(let f=G.length-1;f>=0;f--){let T=G[f],K=T.e||0;if(K===0)this.set(T.k,T.v);else{let b=K-oe;b>0&&this.set(T.k,T.v,b)}}}prune(){this[a].forEach((G,oe)=>E(this,oe,!1))}},E=(G,oe,f)=>{let T=G[a].get(oe);if(T){let K=T.value;if(X(G,K)){if(N(G,T),!G[dr])return}else f&&(G[C]&&(T.value.now=Date.now()),G[e].unshiftNode(T));return K.value}},X=(G,oe)=>{if(!oe||!oe.maxAge&&!G[Lr])return!1;let f=Date.now()-oe.now;return oe.maxAge?f>oe.maxAge:G[Lr]&&f>G[Lr]},le=G=>{if(G[oi]>G[Ke])for(let oe=G[e].tail;G[oi]>G[Ke]&&oe!==null;){let f=oe.prev;N(G,oe),oe=f}},N=(G,oe)=>{if(oe){let f=oe.value;G[ar]&&G[ar](f.key,f.value),G[oi]-=f.length,G[a].delete(f.key),G[e].removeNode(oe)}},p=class{constructor(G,oe,f,T,K){this.key=G,this.value=oe,this.length=f,this.now=T,this.maxAge=K||0}},m=(G,oe,f,T)=>{let K=f.value;X(G,K)&&(N(G,f),G[dr]||(K=void 0)),K&&oe.call(T,K.value,K.key,G)};re.exports=R}}),od=wa({"node_modules/semver/classes/range.js"(M,re){Ea();var Ve=class{constructor(ie,B){if(B=kr(B),ie instanceof Ve)return ie.loose===!!B.loose&&ie.includePrerelease===!!B.includePrerelease?ie:new Ve(ie.raw,B);if(ie instanceof dr)return this.raw=ie.value,this.set=[[ie]],this.format(),this;if(this.options=B,this.loose=!!B.loose,this.includePrerelease=!!B.includePrerelease,this.raw=ie,this.set=ie.split("||").map(q=>this.parseRange(q.trim())).filter(q=>q.length),!this.set.length)throw new TypeError("Invalid SemVer Range: ".concat(ie));if(this.set.length>1){let q=this.set[0];if(this.set=this.set.filter(O=>!R(O[0])),this.set.length===0)this.set=[q];else if(this.set.length>1){for(let O of this.set)if(O.length===1&&E(O[0])){this.set=[O];break}}}this.format()}format(){return this.range=this.set.map(ie=>ie.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(ie){ie=ie.trim();let B=Object.keys(this.options).join(","),q="parseRange:".concat(B,":").concat(ie),O=oi.get(q);if(O)return O;let ve=this.options.loose,ee=ve?ke[e.HYPHENRANGELOOSE]:ke[e.HYPHENRANGE];ie=ie.replace(ee,se(this.options.includePrerelease)),Lr("hyphen replace",ie),ie=ie.replace(ke[e.COMPARATORTRIM],a),Lr("comparator trim",ie),ie=ie.replace(ke[e.TILDETRIM],C),ie=ie.replace(ke[e.CARETTRIM],I),ie=ie.split(/\s+/).join(" ");let he=ie.split(" ").map($=>le($,this.options)).join(" ").split(/\s+/).map($=>b($,this.options));ve&&(he=he.filter($=>(Lr("loose invalid filter",$,this.options),!!$.match(ke[e.COMPARATORLOOSE])))),Lr("range list",he);let F=new Map,x=he.map($=>new dr($,this.options));for(let $ of x){if(R($))return[$];F.set($.value,$)}F.size>1&&F.has("")&&F.delete("");let Q=[...F.values()];return oi.set(q,Q),Q}intersects(ie,B){if(!(ie instanceof Ve))throw new TypeError("a Range is required");return this.set.some(q=>X(q,B)&&ie.set.some(O=>X(O,B)&&q.every(ve=>O.every(ee=>ve.intersects(ee,B)))))}test(ie){if(!ie)return!1;if(typeof ie=="string")try{ie=new ar(ie,this.options)}catch{return!1}for(let B=0;Bie.value==="<0.0.0-0",E=ie=>ie.value==="",X=(ie,B)=>{let q=!0,O=ie.slice(),ve=O.pop();for(;q&&O.length;)q=O.every(ee=>ve.intersects(ee,B)),ve=O.pop();return q},le=(ie,B)=>(Lr("comp",ie,B),ie=G(ie,B),Lr("caret",ie),ie=p(ie,B),Lr("tildes",ie),ie=f(ie,B),Lr("xrange",ie),ie=K(ie,B),Lr("stars",ie),ie),N=ie=>!ie||ie.toLowerCase()==="x"||ie==="*",p=(ie,B)=>ie.trim().split(/\s+/).map(q=>m(q,B)).join(" "),m=(ie,B)=>{let q=B.loose?ke[e.TILDELOOSE]:ke[e.TILDE];return ie.replace(q,(O,ve,ee,he,F)=>{Lr("tilde",ie,O,ve,ee,he,F);let x;return N(ve)?x="":N(ee)?x=">=".concat(ve,".0.0 <").concat(+ve+1,".0.0-0"):N(he)?x=">=".concat(ve,".").concat(ee,".0 <").concat(ve,".").concat(+ee+1,".0-0"):F?(Lr("replaceTilde pr",F),x=">=".concat(ve,".").concat(ee,".").concat(he,"-").concat(F," <").concat(ve,".").concat(+ee+1,".0-0")):x=">=".concat(ve,".").concat(ee,".").concat(he," <").concat(ve,".").concat(+ee+1,".0-0"),Lr("tilde return",x),x})},G=(ie,B)=>ie.trim().split(/\s+/).map(q=>oe(q,B)).join(" "),oe=(ie,B)=>{Lr("caret",ie,B);let q=B.loose?ke[e.CARETLOOSE]:ke[e.CARET],O=B.includePrerelease?"-0":"";return ie.replace(q,(ve,ee,he,F,x)=>{Lr("caret",ie,ve,ee,he,F,x);let Q;return N(ee)?Q="":N(he)?Q=">=".concat(ee,".0.0").concat(O," <").concat(+ee+1,".0.0-0"):N(F)?ee==="0"?Q=">=".concat(ee,".").concat(he,".0").concat(O," <").concat(ee,".").concat(+he+1,".0-0"):Q=">=".concat(ee,".").concat(he,".0").concat(O," <").concat(+ee+1,".0.0-0"):x?(Lr("replaceCaret pr",x),ee==="0"?he==="0"?Q=">=".concat(ee,".").concat(he,".").concat(F,"-").concat(x," <").concat(ee,".").concat(he,".").concat(+F+1,"-0"):Q=">=".concat(ee,".").concat(he,".").concat(F,"-").concat(x," <").concat(ee,".").concat(+he+1,".0-0"):Q=">=".concat(ee,".").concat(he,".").concat(F,"-").concat(x," <").concat(+ee+1,".0.0-0")):(Lr("no pr"),ee==="0"?he==="0"?Q=">=".concat(ee,".").concat(he,".").concat(F).concat(O," <").concat(ee,".").concat(he,".").concat(+F+1,"-0"):Q=">=".concat(ee,".").concat(he,".").concat(F).concat(O," <").concat(ee,".").concat(+he+1,".0-0"):Q=">=".concat(ee,".").concat(he,".").concat(F," <").concat(+ee+1,".0.0-0")),Lr("caret return",Q),Q})},f=(ie,B)=>(Lr("replaceXRanges",ie,B),ie.split(/\s+/).map(q=>T(q,B)).join(" ")),T=(ie,B)=>{ie=ie.trim();let q=B.loose?ke[e.XRANGELOOSE]:ke[e.XRANGE];return ie.replace(q,(O,ve,ee,he,F,x)=>{Lr("xRange",ie,O,ve,ee,he,F,x);let Q=N(ee),$=Q||N(he),A=$||N(F),y=A;return ve==="="&&y&&(ve=""),x=B.includePrerelease?"-0":"",Q?ve===">"||ve==="<"?O="<0.0.0-0":O="*":ve&&y?($&&(he=0),F=0,ve===">"?(ve=">=",$?(ee=+ee+1,he=0,F=0):(he=+he+1,F=0)):ve==="<="&&(ve="<",$?ee=+ee+1:he=+he+1),ve==="<"&&(x="-0"),O="".concat(ve+ee,".").concat(he,".").concat(F).concat(x)):$?O=">=".concat(ee,".0.0").concat(x," <").concat(+ee+1,".0.0-0"):A&&(O=">=".concat(ee,".").concat(he,".0").concat(x," <").concat(ee,".").concat(+he+1,".0-0")),Lr("xRange return",O),O})},K=(ie,B)=>(Lr("replaceStars",ie,B),ie.trim().replace(ke[e.STAR],"")),b=(ie,B)=>(Lr("replaceGTE0",ie,B),ie.trim().replace(ke[B.includePrerelease?e.GTE0PRE:e.GTE0],"")),se=ie=>(B,q,O,ve,ee,he,F,x,Q,$,A,y,V)=>(N(O)?q="":N(ve)?q=">=".concat(O,".0.0").concat(ie?"-0":""):N(ee)?q=">=".concat(O,".").concat(ve,".0").concat(ie?"-0":""):he?q=">=".concat(q):q=">=".concat(q).concat(ie?"-0":""),N(Q)?x="":N($)?x="<".concat(+Q+1,".0.0-0"):N(A)?x="<".concat(Q,".").concat(+$+1,".0-0"):y?x="<=".concat(Q,".").concat($,".").concat(A,"-").concat(y):ie?x="<".concat(Q,".").concat($,".").concat(+A+1,"-0"):x="<=".concat(x),"".concat(q," ").concat(x).trim()),J=(ie,B,q)=>{for(let O=0;O0){let ve=ie[O].semver;if(ve.major===B.major&&ve.minor===B.minor&&ve.patch===B.patch)return!0}return!1}return!0}}}),x1=wa({"node_modules/semver/classes/comparator.js"(M,re){Ea();var Ve=Symbol("SemVer ANY"),Ke=class{static get ANY(){return Ve}constructor(a,C){if(C=oi(C),a instanceof Ke){if(a.loose===!!C.loose)return a;a=a.value}ar("comparator",a,C),this.options=C,this.loose=!!C.loose,this.parse(a),this.semver===Ve?this.value="":this.value=this.operator+this.semver.version,ar("comp",this)}parse(a){let C=this.options.loose?kr[dr.COMPARATORLOOSE]:kr[dr.COMPARATOR],I=a.match(C);if(!I)throw new TypeError("Invalid comparator: ".concat(a));this.operator=I[1]!==void 0?I[1]:"",this.operator==="="&&(this.operator=""),I[2]?this.semver=new ke(I[2],this.options.loose):this.semver=Ve}toString(){return this.value}test(a){if(ar("Comparator.test",a,this.options.loose),this.semver===Ve||a===Ve)return!0;if(typeof a=="string")try{a=new ke(a,this.options)}catch{return!1}return Lr(a,this.operator,this.semver,this.options)}intersects(a,C){if(!(a instanceof Ke))throw new TypeError("a Comparator is required");if((!C||typeof C!="object")&&(C={loose:!!C,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new e(a.value,C).test(this.value);if(a.operator==="")return a.value===""?!0:new e(this.value,C).test(a.semver);let I=(this.operator===">="||this.operator===">")&&(a.operator===">="||a.operator===">"),R=(this.operator==="<="||this.operator==="<")&&(a.operator==="<="||a.operator==="<"),E=this.semver.version===a.semver.version,X=(this.operator===">="||this.operator==="<=")&&(a.operator===">="||a.operator==="<="),le=Lr(this.semver,"<",a.semver,C)&&(this.operator===">="||this.operator===">")&&(a.operator==="<="||a.operator==="<"),N=Lr(this.semver,">",a.semver,C)&&(this.operator==="<="||this.operator==="<")&&(a.operator===">="||a.operator===">");return I||R||E&&X||le||N}};re.exports=Ke;var oi=S1(),{re:kr,t:dr}=wv(),Lr=R4(),ar=b1(),ke=Lf(),e=od()}}),E1=wa({"node_modules/semver/functions/satisfies.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr,dr)=>{try{kr=new Ve(kr,dr)}catch{return!1}return kr.test(oi)};re.exports=Ke}}),aU=wa({"node_modules/semver/ranges/to-comparators.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>new Ve(oi,kr).set.map(dr=>dr.map(Lr=>Lr.value).join(" ").trim().split(" "));re.exports=Ke}}),nU=wa({"node_modules/semver/ranges/max-satisfying.js"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,dr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(dr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===-1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),oU=wa({"node_modules/semver/ranges/min-satisfying.js"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,dr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(dr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),sU=wa({"node_modules/semver/ranges/min-version.js"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=T1(),kr=(dr,Lr)=>{dr=new Ke(dr,Lr);let ar=new Ve("0.0.0");if(dr.test(ar)||(ar=new Ve("0.0.0-0"),dr.test(ar)))return ar;ar=null;for(let ke=0;ke{let I=new Ve(C.semver.version);switch(C.operator){case">":I.prerelease.length===0?I.patch++:I.prerelease.push(0),I.raw=I.format();case"":case">=":(!a||oi(I,a))&&(a=I);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: ".concat(C.operator))}}),a&&(!ar||oi(ar,a))&&(ar=a)}return ar&&dr.test(ar)?ar:null};re.exports=kr}}),cU=wa({"node_modules/semver/ranges/valid.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>{try{return new Ve(oi,kr).range||"*"}catch{return null}};re.exports=Ke}}),XT=wa({"node_modules/semver/ranges/outside.js"(M,re){Ea();var Ve=Lf(),Ke=x1(),{ANY:oi}=Ke,kr=od(),dr=E1(),Lr=T1(),ar=KT(),ke=HT(),e=GT(),a=(C,I,R,E)=>{C=new Ve(C,E),I=new kr(I,E);let X,le,N,p,m;switch(R){case">":X=Lr,le=ke,N=ar,p=">",m=">=";break;case"<":X=ar,le=e,N=Lr,p="<",m="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(dr(C,I,E))return!1;for(let G=0;G{K.semver===oi&&(K=new Ke(">=0.0.0")),f=f||K,T=T||K,X(K.semver,f.semver,E)?f=K:N(K.semver,T.semver,E)&&(T=K)}),f.operator===p||f.operator===m||(!T.operator||T.operator===p)&&le(C,T.semver))return!1;if(T.operator===m&&N(C,T.semver))return!1}return!0};re.exports=a}}),uU=wa({"node_modules/semver/ranges/gtr.js"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,dr)=>Ve(oi,kr,">",dr);re.exports=Ke}}),lU=wa({"node_modules/semver/ranges/ltr.js"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,dr)=>Ve(oi,kr,"<",dr);re.exports=Ke}}),fU=wa({"node_modules/semver/ranges/intersects.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr,dr)=>(oi=new Ve(oi,dr),kr=new Ve(kr,dr),oi.intersects(kr));re.exports=Ke}}),_U=wa({"node_modules/semver/ranges/simplify.js"(M,re){Ea();var Ve=E1(),Ke=nd();re.exports=(oi,kr,dr)=>{let Lr=[],ar=null,ke=null,e=oi.sort((R,E)=>Ke(R,E,dr));for(let R of e)Ve(R,kr,dr)?(ke=R,ar||(ar=R)):(ke&&Lr.push([ar,ke]),ke=null,ar=null);ar&&Lr.push([ar,null]);let a=[];for(let[R,E]of Lr)R===E?a.push(R):!E&&R===e[0]?a.push("*"):E?R===e[0]?a.push("<=".concat(E)):a.push("".concat(R," - ").concat(E)):a.push(">=".concat(R));let C=a.join(" || "),I=typeof kr.raw=="string"?kr.raw:String(kr);return C.length2&&arguments[2]!==void 0?arguments[2]:{};if(a===C)return!0;a=new Ve(a,I),C=new Ve(C,I);let R=!1;e:for(let E of a.set){for(let X of C.set){let le=ar(E,X,I);if(R=R||le!==null,le)continue e}if(R)return!1}return!0},ar=(a,C,I)=>{if(a===C)return!0;if(a.length===1&&a[0].semver===oi){if(C.length===1&&C[0].semver===oi)return!0;I.includePrerelease?a=[new Ke(">=0.0.0-0")]:a=[new Ke(">=0.0.0")]}if(C.length===1&&C[0].semver===oi){if(I.includePrerelease)return!0;C=[new Ke(">=0.0.0")]}let R=new Set,E,X;for(let T of a)T.operator===">"||T.operator===">="?E=ke(E,T,I):T.operator==="<"||T.operator==="<="?X=e(X,T,I):R.add(T.semver);if(R.size>1)return null;let le;if(E&&X){if(le=dr(E.semver,X.semver,I),le>0)return null;if(le===0&&(E.operator!==">="||X.operator!=="<="))return null}for(let T of R){if(E&&!kr(T,String(E),I)||X&&!kr(T,String(X),I))return null;for(let K of C)if(!kr(T,String(K),I))return!1;return!0}let N,p,m,G,oe=X&&!I.includePrerelease&&X.semver.prerelease.length?X.semver:!1,f=E&&!I.includePrerelease&&E.semver.prerelease.length?E.semver:!1;oe&&oe.prerelease.length===1&&X.operator==="<"&&oe.prerelease[0]===0&&(oe=!1);for(let T of C){if(G=G||T.operator===">"||T.operator===">=",m=m||T.operator==="<"||T.operator==="<=",E){if(f&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===f.major&&T.semver.minor===f.minor&&T.semver.patch===f.patch&&(f=!1),T.operator===">"||T.operator===">="){if(N=ke(E,T,I),N===T&&N!==E)return!1}else if(E.operator===">="&&!kr(E.semver,String(T),I))return!1}if(X){if(oe&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===oe.major&&T.semver.minor===oe.minor&&T.semver.patch===oe.patch&&(oe=!1),T.operator==="<"||T.operator==="<="){if(p=e(X,T,I),p===T&&p!==X)return!1}else if(X.operator==="<="&&!kr(X.semver,String(T),I))return!1}if(!T.operator&&(X||E)&&le!==0)return!1}return!(E&&m&&!X&&le!==0||X&&G&&!E&&le!==0||f||oe)},ke=(a,C,I)=>{if(!a)return C;let R=dr(a.semver,C.semver,I);return R>0?a:R<0||C.operator===">"&&a.operator===">="?C:a},e=(a,C,I)=>{if(!a)return C;let R=dr(a.semver,C.semver,I);return R<0?a:R>0||C.operator==="<"&&a.operator==="<="?C:a};re.exports=Lr}}),QT=wa({"node_modules/semver/index.js"(M,re){Ea();var Ve=wv();re.exports={re:Ve.re,src:Ve.src,tokens:Ve.t,SEMVER_SPEC_VERSION:D1().SEMVER_SPEC_VERSION,SemVer:Lf(),compareIdentifiers:BT().compareIdentifiers,rcompareIdentifiers:BT().rcompareIdentifiers,parse:Ov(),valid:zj(),clean:Wj(),inc:qj(),diff:Vj(),major:Kj(),minor:Gj(),patch:Hj(),prerelease:Xj(),compare:nd(),rcompare:Qj(),compareLoose:Yj(),compareBuild:VT(),sort:$j(),rsort:Zj(),gt:T1(),lt:KT(),eq:qT(),neq:L4(),gte:GT(),lte:HT(),cmp:R4(),coerce:eU(),Comparator:x1(),Range:od(),satisfies:E1(),toComparators:aU(),maxSatisfying:nU(),minSatisfying:oU(),minVersion:sU(),validRange:cU(),outside:XT(),gtr:uU(),ltr:lU(),intersects:fU(),simplifyRange:_U(),subset:pU()}}}),B4={};h1(B4,{basename:()=>W4,default:()=>V4,delimiter:()=>jT,dirname:()=>z4,extname:()=>q4,isAbsolute:()=>$T,join:()=>j4,normalize:()=>YT,relative:()=>U4,resolve:()=>y1,sep:()=>JT});function J4(M,re){for(var Ve=0,Ke=M.length-1;Ke>=0;Ke--){var oi=M[Ke];oi==="."?M.splice(Ke,1):oi===".."?(M.splice(Ke,1),Ve++):Ve&&(M.splice(Ke,1),Ve--)}if(re)for(;Ve--;Ve)M.unshift("..");return M}function y1(){for(var M="",re=!1,Ve=arguments.length-1;Ve>=-1&&!re;Ve--){var Ke=Ve>=0?arguments[Ve]:"/";if(typeof Ke!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!Ke)continue;M=Ke+"/"+M,re=Ke.charAt(0)==="/"}return M=J4(ZT(M.split("/"),function(oi){return!!oi}),!re).join("/"),(re?"/":"")+M||"."}function YT(M){var re=$T(M),Ve=K4(M,-1)==="/";return M=J4(ZT(M.split("/"),function(Ke){return!!Ke}),!re).join("/"),!M&&!re&&(M="."),M&&Ve&&(M+="/"),(re?"/":"")+M}function $T(M){return M.charAt(0)==="/"}function j4(){var M=Array.prototype.slice.call(arguments,0);return YT(ZT(M,function(re,Ve){if(typeof re!="string")throw new TypeError("Arguments to path.join must be strings");return re}).join("/"))}function U4(M,re){M=y1(M).substr(1),re=y1(re).substr(1);function Ve(ke){for(var e=0;e=0&&ke[a]==="";a--);return e>a?[]:ke.slice(e,a-e+1)}for(var Ke=Ve(M.split("/")),oi=Ve(re.split("/")),kr=Math.min(Ke.length,oi.length),dr=kr,Lr=0;LrH4});var H4,gU=Qy({"node-modules-polyfills:fs"(){Ea(),H4={}}}),ex=wa({"node-modules-polyfills-commonjs:fs"(M,re){Ea();var Ve=(gU(),mp(G4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),_u=wa({"node_modules/typescript/lib/typescript.js"(M,re){"use strict";Ea();var Ve=M&&M.__spreadArray||function(e,a,C){if(C||arguments.length===2)for(var I=0,R=a.length,E;I0&&E[E.length-1])&&(p[0]===6||p[0]===2)){C=0;continue}if(p[0]===3&&(!E||p[1]>E[0]&&p[1]=0;qe--){var br=Ce(S[qe],qe);if(br)return br}}e.forEachRight=R;function E(S,Ce){if(S!==void 0)for(var qe=0;qe=0;qe--){var br=S[qe];if(Ce(br,qe))return br}}e.findLast=T;function K(S,Ce,qe){for(var br=qe||0;br=0;br--)if(Ce(S[br],br))return br;return-1}e.findLastIndex=b;function se(S,Ce){for(var qe=0;qe0;return!1}e.some=D;function fe(S,Ce,qe){for(var br,Zr=0;Zr0&&e.Debug.assertGreaterThanOrEqual(qe(Ce[Si],Ce[Si-1]),0);r:for(var Pi=Zr;ZrPi&&e.Debug.assertGreaterThanOrEqual(qe(S[Zr],S[Zr-1]),0),qe(Ce[Si],S[Zr])){case-1:br.push(Ce[Si]);continue e;case 0:continue e;case 1:continue r}}return br}e.relativeComplement=Ie;function _e(S,Ce){for(var qe=0,br=0,Zr=S;br>1),Ct=qe(S[Qi],Qi);switch(br(Ct,Ce)){case-1:Si=Qi+1;break;case 0:return Qi;case 1:Pi=Qi-1;break}}return~Si}e.binarySearchKey=mi;function pe(S,Ce,qe,br,Zr){if(S&&S.length>0){var Si=S.length;if(Si>0){var Pi=br===void 0||br<0?0:br,Qi=Zr===void 0||Pi+Zr>Si-1?Si-1:Pi+Zr,Ct=void 0;for(arguments.length<=2?(Ct=S[Pi],Pi++):Ct=qe;Pi<=Qi;)Ct=Ce(Ct,S[Pi],Pi),Pi++;return Ct}}return qe}e.reduceLeft=pe;var or=Object.prototype.hasOwnProperty;function qr(S,Ce){return or.call(S,Ce)}e.hasProperty=qr;function si(S,Ce){return or.call(S,Ce)?S[Ce]:void 0}e.getProperty=si;function Di(S){var Ce=[];for(var qe in S)or.call(S,qe)&&Ce.push(qe);return Ce}e.getOwnKeys=Di;function wi(S){var Ce=[];do for(var qe=Object.getOwnPropertyNames(S),br=0,Zr=qe;brCe?1:0)}e.compareStringsCaseInsensitive=Bt;function wt(S,Ce){return Ii(S,Ce)}e.compareStringsCaseSensitive=wt;function na(S){return S?Bt:wt}e.getStringComparer=na;var Ai=function(){var S,Ce,qe=Qi();return Ct;function br(sa,en,Wa){if(sa===en)return 0;if(sa===void 0)return-1;if(en===void 0)return 1;var Wn=Wa(sa,en);return Wn<0?-1:Wn>0?1:0}function Zr(sa){var en=new Intl.Collator(sa,{usage:"sort",sensitivity:"variant"}).compare;return function(Wa,Wn){return br(Wa,Wn,en)}}function Si(sa){if(sa!==void 0)return Pi();return function(Wa,Wn){return br(Wa,Wn,en)};function en(Wa,Wn){return Wa.localeCompare(Wn)}}function Pi(){return function(Wa,Wn){return br(Wa,Wn,sa)};function sa(Wa,Wn){return en(Wa.toUpperCase(),Wn.toUpperCase())||en(Wa,Wn)}function en(Wa,Wn){return WaWn?1:0}}function Qi(){return typeof Intl=="object"&&typeof Intl.Collator=="function"?Zr:typeof String.prototype.localeCompare=="function"&&typeof String.prototype.toLocaleUpperCase=="function"&&"a".localeCompare("B")<0?Si:Pi}function Ct(sa){return sa===void 0?S||(S=qe(sa)):sa==="en-US"?Ce||(Ce=qe(sa)):qe(sa)}}(),Oi,ji;function Vi(){return ji}e.getUILocale=Vi;function at(S){ji!==S&&(ji=S,Oi=void 0)}e.setUILocale=at;function At(S,Ce){var qe=Oi||(Oi=Ai(ji));return qe(S,Ce)}e.compareStringsCaseSensitiveUI=At;function ba(S,Ce,qe,br){return S===Ce?0:S===void 0?-1:Ce===void 0?1:br(S[qe],Ce[qe])}e.compareProperties=ba;function $a(S,Ce){return Ki(S?1:0,Ce?1:0)}e.compareBooleans=$a;function Qa(S,Ce,qe){for(var br=Math.min(2,Math.floor(S.length*.34)),Zr=Math.floor(S.length*.4)+1,Si,Pi=0,Qi=Ce;Piqe?Pi-qe:1),sa=Math.floor(Ce.length>qe+Pi?qe+Pi:Ce.length);Zr[0]=Pi;for(var en=Pi,Wa=1;Waqe)return;var So=br;br=Zr,Zr=So}var Go=br[Ce.length];return Go>qe?void 0:Go}function Dn(S,Ce){var qe=S.length-Ce.length;return qe>=0&&S.indexOf(Ce,qe)===qe}e.endsWith=Dn;function ka(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):S}e.removeSuffix=ka;function Ba(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):void 0}e.tryRemoveSuffix=Ba;function pn(S,Ce){return S.indexOf(Ce)!==-1}e.stringContains=pn;function Cn(S){for(var Ce=S.length,qe=Ce-1;qe>0;qe--){var br=S.charCodeAt(qe);if(br>=48&&br<=57)do--qe,br=S.charCodeAt(qe);while(qe>0&&br>=48&&br<=57);else if(qe>4&&(br===110||br===78)){if(--qe,br=S.charCodeAt(qe),br!==105&&br!==73||(--qe,br=S.charCodeAt(qe),br!==109&&br!==77))break;--qe,br=S.charCodeAt(qe)}else break;if(br!==45&&br!==46)break;Ce=qe}return Ce===S.length?S:S.slice(0,Ce)}e.removeMinAndVersionNumbers=Cn;function Bi(S,Ce){for(var qe=0;qeZr&&(Zr=Ct.prefix.length,br=Qi)}return br}e.findBestPatternMatch=bo;function Ro(S,Ce){return S.lastIndexOf(Ce,0)===0}e.startsWith=Ro;function En(S,Ce){return Ro(S,Ce)?S.substr(Ce.length):S}e.removePrefix=En;function zn(S,Ce,qe){return qe===void 0&&(qe=vi),Ro(qe(S),qe(Ce))?S.substring(Ce.length):void 0}e.tryRemovePrefix=zn;function to(S,Ce){var qe=S.prefix,br=S.suffix;return Ce.length>=qe.length+br.length&&Ro(Ce,qe)&&Dn(Ce,br)}function Co(S,Ce){return function(qe){return S(qe)&&Ce(qe)}}e.and=Co;function Ko(){for(var S=[],Ce=0;Ce=0&&e.isWhiteSpaceLike(S.charCodeAt(Ce));)Ce--;return S.slice(0,Ce+1)}})(ke||(ke={}));var ke;(function(e){var a;(function(I){I[I.Off=0]="Off",I[I.Error=1]="Error",I[I.Warning=2]="Warning",I[I.Info=3]="Info",I[I.Verbose=4]="Verbose"})(a=e.LogLevel||(e.LogLevel={}));var C;(function(I){var R,E=0;I.currentLogLevel=a.Warning,I.isDebugging=!1;function X(){return R!=null?R:R=new e.Version(e.version)}I.getTypeScriptVersion=X;function le(Ye){return I.currentLogLevel<=Ye}I.shouldLog=le;function N(Ye,Br){I.loggingHost&&le(Ye)&&I.loggingHost.log(Ye,Br)}function p(Ye){N(a.Info,Ye)}I.log=p,function(Ye){function Br(lr){N(a.Error,lr)}Ye.error=Br;function Er(lr){N(a.Warning,lr)}Ye.warn=Er;function Ne(lr){N(a.Info,lr)}Ye.log=Ne;function n(lr){N(a.Verbose,lr)}Ye.trace=n}(p=I.log||(I.log={}));var m={};function G(){return E}I.getAssertionLevel=G;function oe(Ye){var Br=E;if(E=Ye,Ye>Br)for(var Er=0,Ne=e.getOwnKeys(m);Er=lr.level&&(I[n]=lr,m[n]=void 0)}}I.setAssertionLevel=oe;function f(Ye){return E>=Ye}I.shouldAssert=f;function T(Ye,Br){return f(Ye)?!0:(m[Br]={level:Ye,assertion:I[Br]},I[Br]=e.noop,!1)}function K(Ye,Br){debugger;var Er=new Error(Ye?"Debug Failure. ".concat(Ye):"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Er,Br||K),Er}I.fail=K;function b(Ye,Br,Er){return K("".concat(Br||"Unexpected node.",`\r +Node `).concat(j(Ye.kind)," was unexpected."),Er||b)}I.failBadSyntaxKind=b;function se(Ye,Br,Er,Ne){Ye||(Br=Br?"False expression: ".concat(Br):"False expression.",Er&&(Br+=`\r +Verbose Debug Information: `+(typeof Er=="string"?Er:Er())),K(Br,Ne||se))}I.assert=se;function J(Ye,Br,Er,Ne,n){if(Ye!==Br){var lr=Er?Ne?"".concat(Er," ").concat(Ne):Er:"";K("Expected ".concat(Ye," === ").concat(Br,". ").concat(lr),n||J)}}I.assertEqual=J;function ie(Ye,Br,Er,Ne){Ye>=Br&&K("Expected ".concat(Ye," < ").concat(Br,". ").concat(Er||""),Ne||ie)}I.assertLessThan=ie;function B(Ye,Br,Er){Ye>Br&&K("Expected ".concat(Ye," <= ").concat(Br),Er||B)}I.assertLessThanOrEqual=B;function q(Ye,Br,Er){Ye= ").concat(Br),Er||q)}I.assertGreaterThanOrEqual=q;function O(Ye,Br,Er){Ye==null&&K(Br,Er||O)}I.assertIsDefined=O;function ve(Ye,Br,Er){return O(Ye,Br,Er||ve),Ye}I.checkDefined=ve;function ee(Ye,Br,Er){for(var Ne=0,n=Ye;Ne0&&Ne[0][0]===0?Ne[0][1]:"0";if(Er){for(var n="",lr=Ye,be=0,Ge=Ne;beYe)break;yr!==0&&yr&Ye&&(n="".concat(n).concat(n?"|":"").concat(Ir),lr&=~yr)}if(lr===0)return n}else for(var wr=0,Ur=Ne;wr=0;return ur?ye(Ye,lr,Ge,Br.message):yr?Ae(Ye,lr,Ge,Br.message):e.noop}function ir(Ye,Br){return function(){return Ye(),Br.apply(this,arguments)}}function Cr(Ye,Br){var Er=er(P(Ye),Br);return ir(Er,Ye)}I.deprecate=Cr})(C=e.Debug||(e.Debug={}))})(ke||(ke={}));var ke;(function(e){var a=/^(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i,C=/^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)(?:\.(?:0|[1-9]\d*|[a-z-][a-z0-9-]*))*$/i,I=/^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/i,R=/^(0|[1-9]\d*)$/,E=function(){function F(x,Q,$,A,y){if(Q===void 0&&(Q=0),$===void 0&&($=0),A===void 0&&(A=""),y===void 0&&(y=""),typeof x=="string"){var V=e.Debug.checkDefined(X(x),"Invalid version");x=V.major,Q=V.minor,$=V.patch,A=V.prerelease,y=V.build}e.Debug.assert(x>=0,"Invalid argument: major"),e.Debug.assert(Q>=0,"Invalid argument: minor"),e.Debug.assert($>=0,"Invalid argument: patch"),e.Debug.assert(!A||C.test(A),"Invalid argument: prerelease"),e.Debug.assert(!y||I.test(y),"Invalid argument: build"),this.major=x,this.minor=Q,this.patch=$,this.prerelease=A?A.split("."):e.emptyArray,this.build=y?y.split("."):e.emptyArray}return F.tryParse=function(x){var Q=X(x);if(!!Q){var $=Q.major,A=Q.minor,y=Q.patch,V=Q.prerelease,L=Q.build;return new F($,A,y,V,L)}},F.prototype.compareTo=function(x){return this===x?0:x===void 0?1:e.compareValues(this.major,x.major)||e.compareValues(this.minor,x.minor)||e.compareValues(this.patch,x.patch)||le(this.prerelease,x.prerelease)},F.prototype.increment=function(x){switch(x){case"major":return new F(this.major+1,0,0);case"minor":return new F(this.major,this.minor+1,0);case"patch":return new F(this.major,this.minor,this.patch+1);default:return e.Debug.assertNever(x)}},F.prototype.toString=function(){var x="".concat(this.major,".").concat(this.minor,".").concat(this.patch);return e.some(this.prerelease)&&(x+="-".concat(this.prerelease.join("."))),e.some(this.build)&&(x+="+".concat(this.build.join("."))),x},F.zero=new F(0,0,0),F}();e.Version=E;function X(F){var x=a.exec(F);if(!!x){var Q=x[1],$=x[2],A=$===void 0?"0":$,y=x[3],V=y===void 0?"0":y,L=x[4],P=L===void 0?"":L,k=x[5],Y=k===void 0?"":k;if(!(P&&!C.test(P))&&!(Y&&!I.test(Y)))return{major:parseInt(Q,10),minor:parseInt(A,10),patch:parseInt(V,10),prerelease:P,build:Y}}}function le(F,x){if(F===x)return 0;if(F.length===0)return x.length===0?0:1;if(x.length===0)return-1;for(var Q=Math.min(F.length,x.length),$=0;$|>=|=)?\s*([a-z0-9-+.*]+)$/i;function T(F){for(var x=[],Q=0,$=e.trimString(F).split(p);Q<$.length;Q++){var A=$[Q];if(!!A){var y=[];A=e.trimString(A);var V=oe.exec(A);if(V){if(!b(V[1],V[2],y))return}else for(var L=0,P=A.split(m);L=",$.version)),J(A.major)||Q.push(J(A.minor)?ie("<",A.version.increment("major")):J(A.patch)?ie("<",A.version.increment("minor")):ie("<=",A.version)),!0):!1}function se(F,x,Q){var $=K(x);if(!$)return!1;var A=$.version,y=$.major,V=$.minor,L=$.patch;if(J(y))(F==="<"||F===">")&&Q.push(ie("<",E.zero));else switch(F){case"~":Q.push(ie(">=",A)),Q.push(ie("<",A.increment(J(V)?"major":"minor")));break;case"^":Q.push(ie(">=",A)),Q.push(ie("<",A.increment(A.major>0||J(V)?"major":A.minor>0||J(L)?"minor":"patch")));break;case"<":case">=":Q.push(ie(F,A));break;case"<=":case">":Q.push(J(V)?ie(F==="<="?"<":">=",A.increment("major")):J(L)?ie(F==="<="?"<":">=",A.increment("minor")):ie(F,A));break;case"=":case void 0:J(V)||J(L)?(Q.push(ie(">=",A)),Q.push(ie("<",A.increment(J(V)?"major":"minor")))):Q.push(ie("=",A));break;default:return!1}return!0}function J(F){return F==="*"||F==="x"||F==="X"}function ie(F,x){return{operator:F,operand:x}}function B(F,x){if(x.length===0)return!0;for(var Q=0,$=x;Q<$.length;Q++){var A=$[Q];if(q(F,A))return!0}return!1}function q(F,x){for(var Q=0,$=x;Q<$.length;Q++){var A=$[Q];if(!O(F,A.operator,A.operand))return!1}return!0}function O(F,x,Q){var $=F.compareTo(Q);switch(x){case"<":return $<0;case"<=":return $<=0;case">":return $>0;case">=":return $>=0;case"=":return $===0;default:return e.Debug.assertNever(x)}}function ve(F){return e.map(F,ee).join(" || ")||"*"}function ee(F){return e.map(F,he).join(" ")}function he(F){return"".concat(F.operator).concat(F.operand)}})(ke||(ke={}));var ke;(function(e){function a(le,N){return typeof le=="object"&&typeof le.timeOrigin=="number"&&typeof le.mark=="function"&&typeof le.measure=="function"&&typeof le.now=="function"&&typeof N=="function"}function C(){if(typeof performance=="object"&&typeof PerformanceObserver=="function"&&a(performance,PerformanceObserver))return{shouldWriteNativeEvents:!0,performance,PerformanceObserver}}function I(){}var R=C()||void 0,E=R==null?void 0:R.performance;function X(){return R}e.tryGetNativePerformanceHooks=X,e.timestamp=E?function(){return E.now()}:Date.now?Date.now:function(){return+new Date}})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I,R;function E(B,q,O,ve){return B?X(q,O,ve):C.nullTimer}C.createTimerIf=E;function X(B,q,O){var ve=0;return{enter:ee,exit:he};function ee(){++ve===1&&oe(q)}function he(){--ve===0?(oe(O),f(B,q,O)):ve<0&&e.Debug.fail("enter/exit count does not match.")}}C.createTimer=X,C.nullTimer={enter:e.noop,exit:e.noop};var le=!1,N=e.timestamp(),p=new e.Map,m=new e.Map,G=new e.Map;function oe(B){var q;if(le){var O=(q=m.get(B))!==null&&q!==void 0?q:0;m.set(B,O+1),p.set(B,e.timestamp()),R==null||R.mark(B)}}C.mark=oe;function f(B,q,O){var ve,ee;if(le){var he=(ve=O!==void 0?p.get(O):void 0)!==null&&ve!==void 0?ve:e.timestamp(),F=(ee=q!==void 0?p.get(q):void 0)!==null&&ee!==void 0?ee:N,x=G.get(B)||0;G.set(B,x+(he-F)),R==null||R.measure(B,q,O)}}C.measure=f;function T(B){return m.get(B)||0}C.getCount=T;function K(B){return G.get(B)||0}C.getDuration=K;function b(B){G.forEach(function(q,O){return B(O,q)})}C.forEachMeasure=b;function se(){return le}C.isEnabled=se;function J(B){var q;return B===void 0&&(B=e.sys),le||(le=!0,I||(I=e.tryGetNativePerformanceHooks()),I&&(N=I.performance.timeOrigin,(I.shouldWriteNativeEvents||((q=B==null?void 0:B.cpuProfilingEnabled)===null||q===void 0?void 0:q.call(B))||(B==null?void 0:B.debugMode))&&(R=I.performance))),!0}C.enable=J;function ie(){le&&(p.clear(),m.clear(),G.clear(),R=void 0,le=!1)}C.disable=ie})(a=e.performance||(e.performance={}))})(ke||(ke={}));var ke;(function(e){var a,C={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},I;try{var R=(a=Eu.env.TS_ETW_MODULE_PATH)!==null&&a!==void 0?a:"./node_modules/@microsoft/typescript-etw";I=void 0}catch{I=void 0}e.perfLogger=I&&I.logEvent?I:C})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I,R=0,E=0,X,le=[],N,p=[];function m(he,F,x){if(e.Debug.assert(!e.tracing,"Tracing already started"),I===void 0)try{I=ex()}catch(V){throw new Error(`tracing requires having fs +(original error: `.concat(V.message||V,")"))}X=he,le.length=0,N===void 0&&(N=e.combinePaths(F,"legend.json")),I.existsSync(F)||I.mkdirSync(F,{recursive:!0});var Q=X==="build"?".".concat(Eu.pid,"-").concat(++R):X==="server"?".".concat(Eu.pid):"",$=e.combinePaths(F,"trace".concat(Q,".json")),A=e.combinePaths(F,"types".concat(Q,".json"));p.push({configFilePath:x,tracePath:$,typesPath:A}),E=I.openSync($,"w"),e.tracing=C;var y={cat:"__metadata",ph:"M",ts:1e3*e.timestamp(),pid:1,tid:1};I.writeSync(E,`[ +`+[Ke({name:"process_name",args:{name:"tsc"}},y),Ke({name:"thread_name",args:{name:"Main"}},y),Ke(Ke({name:"TracingStartedInBrowser"},y),{cat:"disabled-by-default-devtools.timeline"})].map(function(V){return JSON.stringify(V)}).join(`, +`))}C.startTracing=m;function G(){e.Debug.assert(e.tracing,"Tracing is not in progress"),e.Debug.assert(!!le.length==(X!=="server")),I.writeSync(E,` +] +`),I.closeSync(E),e.tracing=void 0,le.length?ve(le):p[p.length-1].typesPath=void 0}C.stopTracing=G;function oe(he){X!=="server"&&le.push(he)}C.recordType=oe;var f;(function(he){he.Parse="parse",he.Program="program",he.Bind="bind",he.Check="check",he.CheckTypes="checkTypes",he.Emit="emit",he.Session="session"})(f=C.Phase||(C.Phase={}));function T(he,F,x){q("I",he,F,x,'"s":"g"')}C.instant=T;var K=[];function b(he,F,x,Q){Q===void 0&&(Q=!1),Q&&q("B",he,F,x),K.push({phase:he,name:F,args:x,time:1e3*e.timestamp(),separateBeginAndEnd:Q})}C.push=b;function se(){e.Debug.assert(K.length>0),B(K.length-1,1e3*e.timestamp()),K.length--}C.pop=se;function J(){for(var he=1e3*e.timestamp(),F=K.length-1;F>=0;F--)B(F,he);K.length=0}C.popAll=J;var ie=1e3*10;function B(he,F){var x=K[he],Q=x.phase,$=x.name,A=x.args,y=x.time,V=x.separateBeginAndEnd;V?q("E",Q,$,A,void 0,F):ie-y%ie<=F-y&&q("X",Q,$,A,'"dur":'.concat(F-y),y)}function q(he,F,x,Q,$,A){A===void 0&&(A=1e3*e.timestamp()),!(X==="server"&&F==="checkTypes")&&(e.performance.mark("beginTracing"),I.writeSync(E,`, +{"pid":1,"tid":1,"ph":"`.concat(he,'","cat":"').concat(F,'","ts":').concat(A,',"name":"').concat(x,'"')),$&&I.writeSync(E,",".concat($)),Q&&I.writeSync(E,',"args":'.concat(JSON.stringify(Q))),I.writeSync(E,"}"),e.performance.mark("endTracing"),e.performance.measure("Tracing","beginTracing","endTracing"))}function O(he){var F=e.getSourceFileOfNode(he);return F?{path:F.path,start:x(e.getLineAndCharacterOfPosition(F,he.pos)),end:x(e.getLineAndCharacterOfPosition(F,he.end))}:void 0;function x(Q){return{line:Q.line+1,character:Q.character+1}}}function ve(he){var F,x,Q,$,A,y,V,L,P,k,Y,U,j,H,w,l,d,D,fe,g,ne,ue;e.performance.mark("beginDumpTypes");var We=p[p.length-1].typesPath,Fe=I.openSync(We,"w"),Z=new e.Map;I.writeSync(Fe,"[");for(var Be=he.length,ge=0;ge"u")){var A=Eu.version;if(!!A){var y=A.indexOf(".");if(y!==-1)return parseInt(A.substring(1,y))}}}e.getNodeMajorVersion=Q,e.sys=void 0;function $(A){e.sys=void 0}e.setSys=$,e.sys&&e.sys.getEnvironmentVariable&&(p(e.sys),e.Debug.setAssertionLevel(/^development$/i.test(e.sys.getEnvironmentVariable("NODE_ENV"))?1:0)),e.sys&&e.sys.debugMode&&(e.Debug.isDebugging=!0)})(ke||(ke={}));var ke;(function(e){e.directorySeparator="/",e.altDirectorySeparator="\\";var a="://",C=/\\/g;function I(ze){return ze===47||ze===92}e.isAnyDirectorySeparator=I;function R(ze){return b(ze)<0}e.isUrl=R;function E(ze){return b(ze)>0}e.isRootedDiskPath=E;function X(ze){var Ee=b(ze);return Ee>0&&Ee===ze.length}e.isDiskPathRoot=X;function le(ze){return b(ze)!==0}e.pathIsAbsolute=le;function N(ze){return/^\.\.?($|[\\/])/.test(ze)}e.pathIsRelative=N;function p(ze){return!le(ze)&&!N(ze)}e.pathIsBareSpecifier=p;function m(ze){return e.stringContains(ie(ze),".")}e.hasExtension=m;function G(ze,Ee){return ze.length>Ee.length&&e.endsWith(ze,Ee)}e.fileExtensionIs=G;function oe(ze,Ee){for(var He=0,rr=Ee;He0&&I(ze.charCodeAt(ze.length-1))}e.hasTrailingDirectorySeparator=f;function T(ze){return ze>=97&&ze<=122||ze>=65&&ze<=90}function K(ze,Ee){var He=ze.charCodeAt(Ee);if(He===58)return Ee+1;if(He===37&&ze.charCodeAt(Ee+1)===51){var rr=ze.charCodeAt(Ee+2);if(rr===97||rr===65)return Ee+3}return-1}function b(ze){if(!ze)return 0;var Ee=ze.charCodeAt(0);if(Ee===47||Ee===92){if(ze.charCodeAt(1)!==Ee)return 1;var He=ze.indexOf(Ee===47?e.directorySeparator:e.altDirectorySeparator,2);return He<0?ze.length:He+1}if(T(Ee)&&ze.charCodeAt(1)===58){var rr=ze.charCodeAt(2);if(rr===47||rr===92)return 3;if(ze.length===2)return 2}var Ie=ze.indexOf(a);if(Ie!==-1){var _e=Ie+a.length,we=ze.indexOf(e.directorySeparator,_e);if(we!==-1){var de=ze.slice(0,Ie),ye=ze.slice(_e,we);if(de==="file"&&(ye===""||ye==="localhost")&&T(ze.charCodeAt(we+1))){var Ae=K(ze,we+2);if(Ae!==-1){if(ze.charCodeAt(Ae)===47)return~(Ae+1);if(Ae===ze.length)return~Ae}}return~(we+1)}return~ze.length}return 0}function se(ze){var Ee=b(ze);return Ee<0?~Ee:Ee}e.getRootLength=se;function J(ze){ze=F(ze);var Ee=se(ze);return Ee===ze.length?ze:(ze=Y(ze),ze.slice(0,Math.max(Ee,ze.lastIndexOf(e.directorySeparator))))}e.getDirectoryPath=J;function ie(ze,Ee,He){ze=F(ze);var rr=se(ze);if(rr===ze.length)return"";ze=Y(ze);var Ie=ze.slice(Math.max(se(ze),ze.lastIndexOf(e.directorySeparator)+1)),_e=Ee!==void 0&&He!==void 0?O(Ie,Ee,He):void 0;return _e?Ie.slice(0,Ie.length-_e.length):Ie}e.getBaseFileName=ie;function B(ze,Ee,He){if(e.startsWith(Ee,".")||(Ee="."+Ee),ze.length>=Ee.length&&ze.charCodeAt(ze.length-Ee.length)===46){var rr=ze.slice(ze.length-Ee.length);if(He(rr,Ee))return rr}}function q(ze,Ee,He){if(typeof Ee=="string")return B(ze,Ee,He)||"";for(var rr=0,Ie=Ee;rr=0?rr.substring(Ie):""}e.getAnyExtensionFromPath=O;function ve(ze,Ee){var He=ze.substring(0,Ee),rr=ze.substring(Ee).split(e.directorySeparator);return rr.length&&!e.lastOrUndefined(rr)&&rr.pop(),Ve([He],rr,!0)}function ee(ze,Ee){return Ee===void 0&&(Ee=""),ze=Q(Ee,ze),ve(ze,se(ze))}e.getPathComponents=ee;function he(ze){if(ze.length===0)return"";var Ee=ze[0]&&U(ze[0]);return Ee+ze.slice(1).join(e.directorySeparator)}e.getPathFromPathComponents=he;function F(ze){var Ee=ze.indexOf("\\");return Ee===-1?ze:(C.lastIndex=Ee,ze.replace(C,e.directorySeparator))}e.normalizeSlashes=F;function x(ze){if(!e.some(ze))return[];for(var Ee=[ze[0]],He=1;He1){if(Ee[Ee.length-1]!==".."){Ee.pop();continue}}else if(Ee[0])continue}Ee.push(rr)}}return Ee}e.reducePathComponents=x;function Q(ze){for(var Ee=[],He=1;He0==se(Ee)>0,"Paths must either both be absolute or both be relative");var rr=typeof He=="function"?He:e.identity,Ie=typeof He=="boolean"?He:!1,_e=ue(ze,Ee,Ie?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,rr);return he(_e)}e.getRelativePathFromDirectory=We;function Fe(ze,Ee,He){return E(ze)?Be(Ee,ze,Ee,He,!1):ze}e.convertToRelativePath=Fe;function Z(ze,Ee,He){return j(We(J(ze),Ee,He))}e.getRelativePathFromFile=Z;function Be(ze,Ee,He,rr,Ie){var _e=ue($(He,ze),$(He,Ee),e.equateStringsCaseSensitive,rr),we=_e[0];if(Ie&&E(we)){var de=we.charAt(0)===e.directorySeparator?"file://":"file:///";_e[0]=de+we}return he(_e)}e.getRelativePathToDirectoryOrUrl=Be;function ge(ze,Ee){for(;;){var He=Ee(ze);if(He!==void 0)return He;var rr=J(ze);if(rr===ze)return;ze=rr}}e.forEachAncestorDirectory=ge;function Re(ze){return e.endsWith(ze,"/node_modules")}e.isNodeModulesDirectory=Re})(ke||(ke={}));var ke;(function(e){function a(C,I,R,E,X,le,N){return{code:C,category:I,key:R,message:E,reportsUnnecessary:X,elidedInCompatabilityPyramid:le,reportsDeprecated:N}}e.Diagnostics={Unterminated_string_literal:a(1002,e.DiagnosticCategory.Error,"Unterminated_string_literal_1002","Unterminated string literal."),Identifier_expected:a(1003,e.DiagnosticCategory.Error,"Identifier_expected_1003","Identifier expected."),_0_expected:a(1005,e.DiagnosticCategory.Error,"_0_expected_1005","'{0}' expected."),A_file_cannot_have_a_reference_to_itself:a(1006,e.DiagnosticCategory.Error,"A_file_cannot_have_a_reference_to_itself_1006","A file cannot have a reference to itself."),The_parser_expected_to_find_a_1_to_match_the_0_token_here:a(1007,e.DiagnosticCategory.Error,"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007","The parser expected to find a '{1}' to match the '{0}' token here."),Trailing_comma_not_allowed:a(1009,e.DiagnosticCategory.Error,"Trailing_comma_not_allowed_1009","Trailing comma not allowed."),Asterisk_Slash_expected:a(1010,e.DiagnosticCategory.Error,"Asterisk_Slash_expected_1010","'*/' expected."),An_element_access_expression_should_take_an_argument:a(1011,e.DiagnosticCategory.Error,"An_element_access_expression_should_take_an_argument_1011","An element access expression should take an argument."),Unexpected_token:a(1012,e.DiagnosticCategory.Error,"Unexpected_token_1012","Unexpected token."),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:a(1013,e.DiagnosticCategory.Error,"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013","A rest parameter or binding pattern may not have a trailing comma."),A_rest_parameter_must_be_last_in_a_parameter_list:a(1014,e.DiagnosticCategory.Error,"A_rest_parameter_must_be_last_in_a_parameter_list_1014","A rest parameter must be last in a parameter list."),Parameter_cannot_have_question_mark_and_initializer:a(1015,e.DiagnosticCategory.Error,"Parameter_cannot_have_question_mark_and_initializer_1015","Parameter cannot have question mark and initializer."),A_required_parameter_cannot_follow_an_optional_parameter:a(1016,e.DiagnosticCategory.Error,"A_required_parameter_cannot_follow_an_optional_parameter_1016","A required parameter cannot follow an optional parameter."),An_index_signature_cannot_have_a_rest_parameter:a(1017,e.DiagnosticCategory.Error,"An_index_signature_cannot_have_a_rest_parameter_1017","An index signature cannot have a rest parameter."),An_index_signature_parameter_cannot_have_an_accessibility_modifier:a(1018,e.DiagnosticCategory.Error,"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018","An index signature parameter cannot have an accessibility modifier."),An_index_signature_parameter_cannot_have_a_question_mark:a(1019,e.DiagnosticCategory.Error,"An_index_signature_parameter_cannot_have_a_question_mark_1019","An index signature parameter cannot have a question mark."),An_index_signature_parameter_cannot_have_an_initializer:a(1020,e.DiagnosticCategory.Error,"An_index_signature_parameter_cannot_have_an_initializer_1020","An index signature parameter cannot have an initializer."),An_index_signature_must_have_a_type_annotation:a(1021,e.DiagnosticCategory.Error,"An_index_signature_must_have_a_type_annotation_1021","An index signature must have a type annotation."),An_index_signature_parameter_must_have_a_type_annotation:a(1022,e.DiagnosticCategory.Error,"An_index_signature_parameter_must_have_a_type_annotation_1022","An index signature parameter must have a type annotation."),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:a(1024,e.DiagnosticCategory.Error,"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024","'readonly' modifier can only appear on a property declaration or index signature."),An_index_signature_cannot_have_a_trailing_comma:a(1025,e.DiagnosticCategory.Error,"An_index_signature_cannot_have_a_trailing_comma_1025","An index signature cannot have a trailing comma."),Accessibility_modifier_already_seen:a(1028,e.DiagnosticCategory.Error,"Accessibility_modifier_already_seen_1028","Accessibility modifier already seen."),_0_modifier_must_precede_1_modifier:a(1029,e.DiagnosticCategory.Error,"_0_modifier_must_precede_1_modifier_1029","'{0}' modifier must precede '{1}' modifier."),_0_modifier_already_seen:a(1030,e.DiagnosticCategory.Error,"_0_modifier_already_seen_1030","'{0}' modifier already seen."),_0_modifier_cannot_appear_on_class_elements_of_this_kind:a(1031,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031","'{0}' modifier cannot appear on class elements of this kind."),super_must_be_followed_by_an_argument_list_or_member_access:a(1034,e.DiagnosticCategory.Error,"super_must_be_followed_by_an_argument_list_or_member_access_1034","'super' must be followed by an argument list or member access."),Only_ambient_modules_can_use_quoted_names:a(1035,e.DiagnosticCategory.Error,"Only_ambient_modules_can_use_quoted_names_1035","Only ambient modules can use quoted names."),Statements_are_not_allowed_in_ambient_contexts:a(1036,e.DiagnosticCategory.Error,"Statements_are_not_allowed_in_ambient_contexts_1036","Statements are not allowed in ambient contexts."),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:a(1038,e.DiagnosticCategory.Error,"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038","A 'declare' modifier cannot be used in an already ambient context."),Initializers_are_not_allowed_in_ambient_contexts:a(1039,e.DiagnosticCategory.Error,"Initializers_are_not_allowed_in_ambient_contexts_1039","Initializers are not allowed in ambient contexts."),_0_modifier_cannot_be_used_in_an_ambient_context:a(1040,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_in_an_ambient_context_1040","'{0}' modifier cannot be used in an ambient context."),_0_modifier_cannot_be_used_here:a(1042,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_here_1042","'{0}' modifier cannot be used here."),_0_modifier_cannot_appear_on_a_module_or_namespace_element:a(1044,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044","'{0}' modifier cannot appear on a module or namespace element."),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:a(1046,e.DiagnosticCategory.Error,"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046","Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),A_rest_parameter_cannot_be_optional:a(1047,e.DiagnosticCategory.Error,"A_rest_parameter_cannot_be_optional_1047","A rest parameter cannot be optional."),A_rest_parameter_cannot_have_an_initializer:a(1048,e.DiagnosticCategory.Error,"A_rest_parameter_cannot_have_an_initializer_1048","A rest parameter cannot have an initializer."),A_set_accessor_must_have_exactly_one_parameter:a(1049,e.DiagnosticCategory.Error,"A_set_accessor_must_have_exactly_one_parameter_1049","A 'set' accessor must have exactly one parameter."),A_set_accessor_cannot_have_an_optional_parameter:a(1051,e.DiagnosticCategory.Error,"A_set_accessor_cannot_have_an_optional_parameter_1051","A 'set' accessor cannot have an optional parameter."),A_set_accessor_parameter_cannot_have_an_initializer:a(1052,e.DiagnosticCategory.Error,"A_set_accessor_parameter_cannot_have_an_initializer_1052","A 'set' accessor parameter cannot have an initializer."),A_set_accessor_cannot_have_rest_parameter:a(1053,e.DiagnosticCategory.Error,"A_set_accessor_cannot_have_rest_parameter_1053","A 'set' accessor cannot have rest parameter."),A_get_accessor_cannot_have_parameters:a(1054,e.DiagnosticCategory.Error,"A_get_accessor_cannot_have_parameters_1054","A 'get' accessor cannot have parameters."),Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:a(1055,e.DiagnosticCategory.Error,"Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055","Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value."),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:a(1056,e.DiagnosticCategory.Error,"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056","Accessors are only available when targeting ECMAScript 5 and higher."),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1058,e.DiagnosticCategory.Error,"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058","The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),A_promise_must_have_a_then_method:a(1059,e.DiagnosticCategory.Error,"A_promise_must_have_a_then_method_1059","A promise must have a 'then' method."),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:a(1060,e.DiagnosticCategory.Error,"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060","The first parameter of the 'then' method of a promise must be a callback."),Enum_member_must_have_initializer:a(1061,e.DiagnosticCategory.Error,"Enum_member_must_have_initializer_1061","Enum member must have initializer."),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:a(1062,e.DiagnosticCategory.Error,"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062","Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),An_export_assignment_cannot_be_used_in_a_namespace:a(1063,e.DiagnosticCategory.Error,"An_export_assignment_cannot_be_used_in_a_namespace_1063","An export assignment cannot be used in a namespace."),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:a(1064,e.DiagnosticCategory.Error,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064","The return type of an async function or method must be the global Promise 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:a(1117,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117","An object literal cannot have multiple properties with the same name."),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_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_at_the_top_level_of_a_namespace_or_module:a(1232,e.DiagnosticCategory.Error,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232","An import declaration can only be used at the top level of a namespace or module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:a(1233,e.DiagnosticCategory.Error,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233","An export declaration can only be used at the top level of a namespace or 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_at_the_top_level_of_a_namespace_or_module:a(1235,e.DiagnosticCategory.Error,"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235","A namespace declaration is only allowed at the top level of 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."),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."),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided:a(1269,e.DiagnosticCategory.Error,"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided_1269","Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided."),Decorator_function_return_type_0_is_not_assignable_to_type_1:a(1270,e.DiagnosticCategory.Error,"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270","Decorator function return type '{0}' is not assignable to type '{1}'."),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:a(1271,e.DiagnosticCategory.Error,"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271","Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:a(1272,e.DiagnosticCategory.Error,"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272","A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),_0_modifier_cannot_appear_on_a_type_parameter:a(1273,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_type_parameter_1273","'{0}' modifier cannot appear on a type parameter"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:a(1274,e.DiagnosticCategory.Error,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274","'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),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."),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:a(1309,e.DiagnosticCategory.Error,"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309","The current file is a CommonJS module and cannot use 'await' at the top level."),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_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:a(1323,e.DiagnosticCategory.Error,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext:a(1324,e.DiagnosticCategory.Error,"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nod_1324","Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', or 'nodenext'."),Argument_of_dynamic_import_cannot_be_spread_element:a(1325,e.DiagnosticCategory.Error,"Argument_of_dynamic_import_cannot_be_spread_element_1325","Argument of dynamic import cannot be spread element."),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:a(1326,e.DiagnosticCategory.Error,"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326","This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and 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_es2022_esnext_system_node16_or_nodenext:a(1343,e.DiagnosticCategory.Error,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."),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."),_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_es2022_esnext_system_node16_or_nodenext_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_es2022_esnext_system_n_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', 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'."),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."),_0_is_not_allowed_as_a_parameter_name:a(1390,e.DiagnosticCategory.Error,"_0_is_not_allowed_as_a_parameter_name_1390","'{0}' is not allowed as a parameter name."),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_es2022_esnext_system_node16_or_nodenext_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_es2022_esnext_system_nod_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', 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.`),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1444,e.DiagnosticCategory.Error,"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444","'{0}' is a type and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1446,e.DiagnosticCategory.Error,"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveVa_1446","'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isolatedModules_is_enabled:a(1448,e.DiagnosticCategory.Error,"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isol_1448","'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when 'isolatedModules' is enabled."),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:a(1449,e.DiagnosticCategory.Message,"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449","Preserve unused imported values in the JavaScript output that would otherwise be removed."),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments:a(1450,e.DiagnosticCategory.Message,"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments_1450","Dynamic imports can only accept a module specifier and an optional assertion as arguments"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:a(1451,e.DiagnosticCategory.Error,"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451","Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext:a(1452,e.DiagnosticCategory.Error,"Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext_1452","Resolution modes are only supported when `moduleResolution` is `node16` or `nodenext`."),resolution_mode_should_be_either_require_or_import:a(1453,e.DiagnosticCategory.Error,"resolution_mode_should_be_either_require_or_import_1453","`resolution-mode` should be either `require` or `import`."),resolution_mode_can_only_be_set_for_type_only_imports:a(1454,e.DiagnosticCategory.Error,"resolution_mode_can_only_be_set_for_type_only_imports_1454","`resolution-mode` can only be set for type-only imports."),resolution_mode_is_the_only_valid_key_for_type_import_assertions:a(1455,e.DiagnosticCategory.Error,"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455","`resolution-mode` is the only valid key for type import assertions."),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:a(1456,e.DiagnosticCategory.Error,"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456","Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:a(1470,e.DiagnosticCategory.Error,"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470","The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead:a(1471,e.DiagnosticCategory.Error,"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471","Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead."),catch_or_finally_expected:a(1472,e.DiagnosticCategory.Error,"catch_or_finally_expected_1472","'catch' or 'finally' expected."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1473,e.DiagnosticCategory.Error,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473","An import declaration can only be used at the top level of a module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1474,e.DiagnosticCategory.Error,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474","An export declaration can only be used at the top level of a module."),Control_what_method_is_used_to_detect_module_format_JS_files:a(1475,e.DiagnosticCategory.Message,"Control_what_method_is_used_to_detect_module_format_JS_files_1475","Control what method is used to detect module-format JS files."),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:a(1476,e.DiagnosticCategory.Message,"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476",'"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),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),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:a(2206,e.DiagnosticCategory.Error,"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206","The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:a(2207,e.DiagnosticCategory.Error,"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207","The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2209,e.DiagnosticCategory.Error,"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209","The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2210,e.DiagnosticCategory.Error,"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210","The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),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."),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:a(2311,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311","Cannot find name '{0}'. Did you mean to write this in an async function?"),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}'."),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_a_private_identifier_or_of_type_any_string_number_or_symbol:a(2360,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_in_expression_must_be_a_private_identifier_or_of_type_any_string_number_or__2360","The left-hand side of an 'in' expression must be a private identifier or 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}'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2375,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_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_to_refer_to_super_or_this_when_a_derived_2376","A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived 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."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2379,e.DiagnosticCategory.Error,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379","Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),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"),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."),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:a(2401,e.DiagnosticCategory.Error,"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401","A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),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'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:a(2412,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),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."),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_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'."),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'."),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."),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."),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."),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}'?"),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'."),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."),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_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."),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."),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:a(2635,e.DiagnosticCategory.Error,"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635","Type '{0}' has no signatures for which the type argument list is applicable."),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:a(2636,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636","Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:a(2637,e.DiagnosticCategory.Error,"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637","Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),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}'."),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."),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."),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."),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:a(2810,e.DiagnosticCategory.Error,"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810","Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),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}'."),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:a(2820,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820","Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext:a(2821,e.DiagnosticCategory.Error,"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext_2821","Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'."),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:a(2822,e.DiagnosticCategory.Error,"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822","Import assertions cannot be used with type-only imports or exports."),Cannot_find_namespace_0_Did_you_mean_1:a(2833,e.DiagnosticCategory.Error,"Cannot_find_namespace_0_Did_you_mean_1_2833","Cannot find namespace '{0}'. Did you mean '{1}'?"),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:a(2834,e.DiagnosticCategory.Error,"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834","Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:a(2835,e.DiagnosticCategory.Error,"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835","Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls:a(2836,e.DiagnosticCategory.Error,"Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls_2836","Import assertions are not allowed on statements that transpile to commonjs 'require' calls."),Import_assertion_values_must_be_string_literal_expressions:a(2837,e.DiagnosticCategory.Error,"Import_assertion_values_must_be_string_literal_expressions_2837","Import assertion values must be string literal expressions."),All_declarations_of_0_must_have_identical_constraints:a(2838,e.DiagnosticCategory.Error,"All_declarations_of_0_must_have_identical_constraints_2838","All declarations of '{0}' must have identical constraints."),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."),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4119,e.DiagnosticCategory.Error,"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119","This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4120,e.DiagnosticCategory.Error,"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120","This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:a(4121,e.DiagnosticCategory.Error,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121","This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:a(4122,e.DiagnosticCategory.Error,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122","This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:a(4123,e.DiagnosticCategory.Error,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123","This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4124,e.DiagnosticCategory.Error,"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124","Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4125,e.DiagnosticCategory.Error,"Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_wi_4125","Resolution mode assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),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'."),Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later:a(5095,e.DiagnosticCategory.Error,"Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later_5095","Option 'preserveValueImports' can only be used when 'module' is set to 'es2015' or later."),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_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"),Errors_Files:a(6041,e.DiagnosticCategory.Message,"Errors_Files_6041","Errors Files"),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}'."),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."),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."),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}'. ========"),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."),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."),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"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:a(6258,e.DiagnosticCategory.Error,"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258","'{0}' should be set inside the 'compilerOptions' object of the config json file"),Found_1_error_in_1:a(6259,e.DiagnosticCategory.Message,"Found_1_error_in_1_6259","Found 1 error in {1}"),Found_0_errors_in_the_same_file_starting_at_Colon_1:a(6260,e.DiagnosticCategory.Message,"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260","Found {0} errors in the same file, starting at: {1}"),Found_0_errors_in_1_files:a(6261,e.DiagnosticCategory.Message,"Found_0_errors_in_1_files_6261","Found {0} errors in {1} files."),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:a(6270,e.DiagnosticCategory.Message,"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270","Directory '{0}' has no containing package.json scope. Imports will not resolve."),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6271,e.DiagnosticCategory.Message,"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271","Import specifier '{0}' does not exist in package.json scope at path '{1}'."),Invalid_import_specifier_0_has_no_possible_resolutions:a(6272,e.DiagnosticCategory.Message,"Invalid_import_specifier_0_has_no_possible_resolutions_6272","Invalid import specifier '{0}' has no possible resolutions."),package_json_scope_0_has_no_imports_defined:a(6273,e.DiagnosticCategory.Message,"package_json_scope_0_has_no_imports_defined_6273","package.json scope '{0}' has no imports defined."),package_json_scope_0_explicitly_maps_specifier_1_to_null:a(6274,e.DiagnosticCategory.Message,"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274","package.json scope '{0}' explicitly maps specifier '{1}' to null."),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:a(6275,e.DiagnosticCategory.Message,"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275","package.json scope '{0}' has invalid type for target of specifier '{1}'"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6276,e.DiagnosticCategory.Message,"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276","Export specifier '{0}' does not exist in package.json scope at path '{1}'."),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}'..."),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}'"),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."),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."),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_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_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_local_variables_aren_t_read:a(6675,e.DiagnosticCategory.Message,"Enable_error_reporting_when_local_variables_aren_t_read_6675","Enable error reporting when 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_path_to_tsbuildinfo_incremental_compilation_file:a(6707,e.DiagnosticCategory.Message,"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707","Specify the path to .tsbuildinfo incremental compilation file."),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."),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."),Default_catch_clause_variables_as_unknown_instead_of_any:a(6803,e.DiagnosticCategory.Message,"Default_catch_clause_variables_as_unknown_instead_of_any_6803","Default 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."),true_for_ES2022_and_above_including_ESNext:a(6930,e.DiagnosticCategory.Message,"true_for_ES2022_and_above_including_ESNext_6930","`true` for ES2022 and above, including ESNext."),List_of_file_name_suffixes_to_search_when_resolving_a_module:a(6931,e.DiagnosticCategory.Error,"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931","List of file name suffixes to search when resolving a module."),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."),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:a(7058,e.DiagnosticCategory.Error,"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058","If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:a(7059,e.DiagnosticCategory.Error,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059","This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:a(7060,e.DiagnosticCategory.Error,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060","This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),A_mapped_type_may_not_declare_properties_or_methods:a(7061,e.DiagnosticCategory.Error,"A_mapped_type_may_not_declare_properties_or_methods_7061","A mapped type may not declare properties or methods."),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."),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}'."),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}"),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_ES_module:a(80001,e.DiagnosticCategory.Suggestion,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001","File is a CommonJS module; it may be converted to an ES 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_1:a(90013,e.DiagnosticCategory.Message,"Import_0_from_1_90013",`Import '{0}' from "{1}"`),Change_0_to_1:a(90014,e.DiagnosticCategory.Message,"Change_0_to_1_90014","Change '{0}' to '{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'"),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}'."),Includes_imports_of_types_referenced_by_0:a(90054,e.DiagnosticCategory.Message,"Includes_imports_of_types_referenced_by_0_90054","Includes imports of types referenced by '{0}'"),Remove_type_from_import_declaration_from_0:a(90055,e.DiagnosticCategory.Message,"Remove_type_from_import_declaration_from_0_90055",`Remove 'type' from import declaration from "{0}"`),Remove_type_from_import_of_0_from_1:a(90056,e.DiagnosticCategory.Message,"Remove_type_from_import_of_0_from_1_90056",`Remove 'type' from import of '{0}' from "{1}"`),Add_import_from_0:a(90057,e.DiagnosticCategory.Message,"Add_import_from_0_90057",'Add import from "{0}"'),Update_import_from_0:a(90058,e.DiagnosticCategory.Message,"Update_import_from_0_90058",'Update import from "{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_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"),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_ES_module:a(95017,e.DiagnosticCategory.Message,"Convert_to_ES_module_95017","Convert to ES 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"),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_to_read_more_about_this_file:a(95110,e.DiagnosticCategory.Message,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig 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"),Add_undefined_to_optional_property_type:a(95169,e.DiagnosticCategory.Message,"Add_undefined_to_optional_property_type_95169","Add 'undefined' to optional property type"),Convert_named_imports_to_default_import:a(95170,e.DiagnosticCategory.Message,"Convert_named_imports_to_default_import_95170","Convert named imports to default import"),Delete_unused_param_tag_0:a(95171,e.DiagnosticCategory.Message,"Delete_unused_param_tag_0_95171","Delete unused '@param' tag '{0}'"),Delete_all_unused_param_tags:a(95172,e.DiagnosticCategory.Message,"Delete_all_unused_param_tags_95172","Delete all unused '@param' tags"),Rename_param_tag_name_0_to_1:a(95173,e.DiagnosticCategory.Message,"Rename_param_tag_name_0_to_1_95173","Rename '@param' tag name '{0}' to '{1}'"),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.")}})(ke||(ke={}));var ke;(function(e){var a;function C(ye){return ye>=79}e.tokenIsIdentifierOrKeyword=C;function I(ye){return ye===31||C(ye)}e.tokenIsIdentifierOrKeywordOrGreaterThan=I,e.textToKeywordObj=(a={abstract:126,any:130,as:127,asserts:128,assert:129,bigint:158,boolean:133,break:81,case:82,catch:83,class:84,continue:86,const:85},a.constructor=134,a.debugger=87,a.declare=135,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=156,a.function=98,a.get=136,a.if=99,a.implements=117,a.import=100,a.in=101,a.infer=137,a.instanceof=102,a.interface=118,a.intrinsic=138,a.is=139,a.keyof=140,a.let=119,a.module=141,a.namespace=142,a.never=143,a.new=103,a.null=104,a.number=147,a.object=148,a.package=120,a.private=121,a.protected=122,a.public=123,a.override=159,a.out=144,a.readonly=145,a.require=146,a.global=157,a.return=105,a.set=149,a.static=124,a.string=150,a.super=106,a.switch=107,a.symbol=151,a.this=108,a.throw=109,a.true=110,a.try=111,a.type=152,a.typeof=112,a.undefined=153,a.unique=154,a.unknown=155,a.var=113,a.void=114,a.while=115,a.with=116,a.yield=125,a.async=131,a.await=132,a.of=160,a);var R=new e.Map(e.getEntries(e.textToKeywordObj)),E=new e.Map(e.getEntries(Ke(Ke({},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}))),X=[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],le=[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],N=[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],p=[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],m=[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],G=[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],oe=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,f=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/;function T(ye,Ae){if(ye=2?T(ye,m):Ae===1?T(ye,N):T(ye,X)}e.isUnicodeIdentifierStart=K;function b(ye,Ae){return Ae>=2?T(ye,G):Ae===1?T(ye,p):T(ye,le)}function se(ye){var Ae=[];return ye.forEach(function(er,ir){Ae[er]=ir}),Ae}var J=se(E);function ie(ye){return J[ye]}e.tokenToString=ie;function B(ye){return E.get(ye)}e.stringToToken=B;function q(ye){for(var Ae=new Array,er=0,ir=0;er127&&y(Cr)&&(Ae.push(ir),ir=er);break}}return Ae.push(ir),Ae}e.computeLineStarts=q;function O(ye,Ae,er,ir){return ye.getPositionOfLineAndCharacter?ye.getPositionOfLineAndCharacter(Ae,er,ir):ve(ee(ye),Ae,er,ye.text,ir)}e.getPositionOfLineAndCharacter=O;function ve(ye,Ae,er,ir,Cr){(Ae<0||Ae>=ye.length)&&(Cr?Ae=Ae<0?0:Ae>=ye.length?ye.length-1:Ae:e.Debug.fail("Bad line number. Line: ".concat(Ae,", lineStarts.length: ").concat(ye.length," , line map is correct? ").concat(ir!==void 0?e.arraysEqual(ye,q(ir)):"unknown")));var Ye=ye[Ae]+er;return Cr?Ye>ye[Ae+1]?ye[Ae+1]:typeof ir=="string"&&Ye>ir.length?ir.length:Ye:(Ae=8192&&ye<=8203||ye===8239||ye===8287||ye===12288||ye===65279}e.isWhiteSpaceSingleLine=A;function y(ye){return ye===10||ye===13||ye===8232||ye===8233}e.isLineBreak=y;function V(ye){return ye>=48&&ye<=57}function L(ye){return V(ye)||ye>=65&&ye<=70||ye>=97&&ye<=102}function P(ye){return ye<=1114111}function k(ye){return ye>=48&&ye<=55}e.isOctalDigit=k;function Y(ye,Ae){var er=ye.charCodeAt(Ae);switch(er){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 Ae===0;default:return er>127}}e.couldStartTrivia=Y;function U(ye,Ae,er,ir,Cr){if(e.positionIsSynthesized(Ae))return Ae;for(var Ye=!1;;){var Br=ye.charCodeAt(Ae);switch(Br){case 13:ye.charCodeAt(Ae+1)===10&&Ae++;case 10:if(Ae++,er)return Ae;Ye=!!Cr;continue;case 9:case 11:case 12:case 32:Ae++;continue;case 47:if(ir)break;if(ye.charCodeAt(Ae+1)===47){for(Ae+=2;Ae127&&$(Br)){Ae++;continue}break}return Ae}}e.skipTrivia=U;var j=7;function H(ye,Ae){if(e.Debug.assert(Ae>=0),Ae===0||y(ye.charCodeAt(Ae-1))){var er=ye.charCodeAt(Ae);if(Ae+j=0&&er127&&$(Ir)){be&&y(Ir)&&(lr=!0),er++;continue}break e}}return be&&(ur=Cr(Er,Ne,n,lr,Ye,ur)),ur}function g(ye,Ae,er,ir){return fe(!1,ye,Ae,!1,er,ir)}e.forEachLeadingCommentRange=g;function ne(ye,Ae,er,ir){return fe(!1,ye,Ae,!0,er,ir)}e.forEachTrailingCommentRange=ne;function ue(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!1,er,ir,Cr)}e.reduceEachLeadingCommentRange=ue;function We(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!0,er,ir,Cr)}e.reduceEachTrailingCommentRange=We;function Fe(ye,Ae,er,ir,Cr,Ye){return Ye||(Ye=[]),Ye.push({kind:er,pos:ye,end:Ae,hasTrailingNewLine:ir}),Ye}function Z(ye,Ae){return ue(ye,Ae,Fe,void 0,void 0)}e.getLeadingCommentRanges=Z;function Be(ye,Ae){return We(ye,Ae,Fe,void 0,void 0)}e.getTrailingCommentRanges=Be;function ge(ye){var Ae=l.exec(ye);if(Ae)return Ae[0]}e.getShebang=ge;function Re(ye,Ae){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye===36||ye===95||ye>127&&K(ye,Ae)}e.isIdentifierStart=Re;function ze(ye,Ae,er){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye>=48&&ye<=57||ye===36||ye===95||(er===1?ye===45||ye===58:!1)||ye>127&&b(ye,Ae)}e.isIdentifierPart=ze;function Ee(ye,Ae,er){var ir=rr(ye,0);if(!Re(ir,Ae))return!1;for(var Cr=Ie(ir);Cr116},isReservedWord:function(){return Ge>=81&&Ge<=116},isUnterminated:function(){return(yr&4)!==0},getCommentDirectives:function(){return Ir},getNumericLiteralFlags:function(){return yr&1008},getTokenFlags:function(){return yr},reScanGreaterToken:Wr,reScanAsteriskEqualsToken:Je,reScanSlashToken:xe,reScanTemplateToken:Ar,reScanTemplateHeadOrNoSubstitutionTemplate:Oe,scanJsxIdentifier:De,scanJsxAttributeValue:gr,reScanJsxAttributeValue:Vr,reScanJsxToken:nr,reScanLessThanToken:Mr,reScanHashToken:Pe,reScanQuestionToken:Ue,reScanInvalidIdentifier:Sr,scanJsxToken:fr,scanJsDocToken:Tr,scan:Ze,getText:ct,clearCommentDirectives:Li,setText:nt,setScriptTarget:xt,setLanguageVariant:ut,setOnError:Mt,setTextPos:Dt,setInJSDocType:Rt,tryScan:Wi,lookAhead:Yi,scanRange:Ui};return e.Debug.isDebugging&&Object.defineProperty(Ur,"__debugShowCurrentPositionInText",{get:function(){var Ii=Ur.getText();return Ii.slice(0,Ur.getStartPos())+"\u2551"+Ii.slice(Ur.getStartPos())}}),Ur;function ii(Ii,Ki,Fi){if(Ki===void 0&&(Ki=Ne),Cr){var ui=Ne;Ne=Ki,Cr(Ii,Fi||0),Ne=ui}}function mi(){for(var Ii=Ne,Ki=!1,Fi=!1,ui="";;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Ki?(Ki=!1,Fi=!0,ui+=Er.substring(Ii,Ne)):ii(Fi?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++,Ii=Ne;continue}if(V(Bt)){Ki=!0,Fi=!1,Ne++;continue}break}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),ui+Er.substring(Ii,Ne)}function pe(){var Ii=Ne,Ki=mi(),Fi,ui;Er.charCodeAt(Ne)===46&&(Ne++,Fi=mi());var Bt=Ne;if(Er.charCodeAt(Ne)===69||Er.charCodeAt(Ne)===101){Ne++,yr|=16,(Er.charCodeAt(Ne)===43||Er.charCodeAt(Ne)===45)&&Ne++;var wt=Ne,na=mi();na?(ui=Er.substring(Bt,wt)+na,Bt=Ne):ii(e.Diagnostics.Digit_expected)}var Ai;if(yr&512?(Ai=Ki,Fi&&(Ai+="."+Fi),ui&&(Ai+=ui)):Ai=Er.substring(Ii,Bt),Fi!==void 0||yr&16)return or(Ii,Fi===void 0&&!!(yr&16)),{type:8,value:""+ +Ai};ur=Ai;var Oi=ti();return or(Ii),{type:Oi,value:ur}}function or(Ii,Ki){if(!!Re(rr(Er,Ne),ye)){var Fi=Ne,ui=ae().length;ui===1&&Er[Fi]==="n"?ii(Ki?e.Diagnostics.A_bigint_literal_cannot_use_exponential_notation:e.Diagnostics.A_bigint_literal_must_be_an_integer,Ii,Fi-Ii+1):(ii(e.Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal,Fi,ui),Ne=Fi)}}function qr(){for(var Ii=Ne;k(Er.charCodeAt(Ne));)Ne++;return+Er.substring(Ii,Ne)}function si(Ii,Ki){var Fi=wi(Ii,!1,Ki);return Fi?parseInt(Fi,16):-1}function Di(Ii,Ki){return wi(Ii,!0,Ki)}function wi(Ii,Ki,Fi){for(var ui=[],Bt=!1,wt=!1;ui.length=65&&na<=70)na+=97-65;else if(!(na>=48&&na<=57||na>=97&&na<=102))break;ui.push(na),Ne++,wt=!1}return ui.length=n){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}var Bt=Er.charCodeAt(Ne);if(Bt===Ki){Fi+=Er.substring(ui,Ne),Ne++;break}if(Bt===92&&!Ii){Fi+=Er.substring(ui,Ne),Fi+=Gi(),ui=Ne;continue}if(y(Bt)&&!Ii){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}Ne++}return Fi}function et(Ii){var Ki=Er.charCodeAt(Ne)===96;Ne++;for(var Fi=Ne,ui="",Bt;;){if(Ne>=n){ui+=Er.substring(Fi,Ne),yr|=4,ii(e.Diagnostics.Unterminated_template_literal),Bt=Ki?14:17;break}var wt=Er.charCodeAt(Ne);if(wt===96){ui+=Er.substring(Fi,Ne),Ne++,Bt=Ki?14:17;break}if(wt===36&&Ne+1=n)return ii(e.Diagnostics.Unexpected_end_of_text),"";var Fi=Er.charCodeAt(Ne);switch(Ne++,Fi){case 48:return Ii&&Ne=0?String.fromCharCode(Ki):(ii(e.Diagnostics.Hexadecimal_digit_expected),"")}function Zt(){var Ii=Di(1,!1),Ki=Ii?parseInt(Ii,16):-1,Fi=!1;return Ki<0?(ii(e.Diagnostics.Hexadecimal_digit_expected),Fi=!0):Ki>1114111&&(ii(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),Fi=!0),Ne>=n?(ii(e.Diagnostics.Unexpected_end_of_text),Fi=!0):Er.charCodeAt(Ne)===125?Ne++:(ii(e.Diagnostics.Unterminated_Unicode_escape_sequence),Fi=!0),Fi?"":de(Ki)}function _r(){if(Ne+5=2&&rr(Er,Ne+1)===117&&rr(Er,Ne+2)===123){var Ii=Ne;Ne+=3;var Ki=Di(1,!1),Fi=Ki?parseInt(Ki,16):-1;return Ne=Ii,Fi}return-1}function ae(){for(var Ii="",Ki=Ne;Ne=0&&ze(Fi,ye)){Ne+=3,yr|=8,Ii+=Zt(),Ki=Ne;continue}if(Fi=_r(),!(Fi>=0&&ze(Fi,ye)))break;yr|=1024,Ii+=Er.substring(Ki,Ne),Ii+=de(Fi),Ne+=6,Ki=Ne}else break}return Ii+=Er.substring(Ki,Ne),Ii}function Xe(){var Ii=ur.length;if(Ii>=2&&Ii<=12){var Ki=ur.charCodeAt(0);if(Ki>=97&&Ki<=122){var Fi=R.get(ur);if(Fi!==void 0)return Ge=Fi}}return Ge=79}function Jr(Ii){for(var Ki="",Fi=!1,ui=!1;;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Fi?(Fi=!1,ui=!0):ii(ui?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++;continue}if(Fi=!0,!V(Bt)||Bt-48>=Ii)break;Ki+=Er[Ne],Ne++,ui=!1}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),Ki}function ti(){if(Er.charCodeAt(Ne)===110)return ur+="n",yr&384&&(ur=e.parsePseudoBigInt(ur)+"n"),Ne++,9;var Ii=yr&128?parseInt(ur.slice(2),2):yr&256?parseInt(ur.slice(2),8):+ur;return ur=""+Ii,8}function Ze(){var Ii;lr=Ne,yr=0;for(var Ki=!1;;){if(be=Ne,Ne>=n)return Ge=1;var Fi=rr(Er,Ne);if(Fi===35&&Ne===0&&d(Er,Ne)){if(Ne=D(Er,Ne),Ae)continue;return Ge=6}switch(Fi){case 10:case 13:if(yr|=1,Ae){Ne++;continue}else return Fi===13&&Ne+1=0&&Re(na,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Ai=_r();return Ai>=0&&Re(Ai,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Ai)+ae(),Ge=Xe()):(ii(e.Diagnostics.Invalid_character),Ne++,Ge=0);case 35:return Ne!==0&&Er[Ne+1]==="!"?(ii(e.Diagnostics.can_only_be_used_at_the_start_of_a_file),Ne++,Ge=0):(Re(rr(Er,Ne+1),ye)?(Ne++,zr(rr(Er,Ne),ye)):(ur=String.fromCharCode(rr(Er,Ne)),ii(e.Diagnostics.Invalid_character,Ne++,Ie(Fi))),Ge=80);default:var Oi=zr(Fi,ye);if(Oi)return Ge=Oi;if(A(Fi)){Ne+=Ie(Fi);continue}else if(y(Fi)){yr|=1,Ne+=Ie(Fi);continue}var ji=Ie(Fi);return ii(e.Diagnostics.Invalid_character,Ne,ji),Ne+=ji,Ge=0}}}function Sr(){e.Debug.assert(Ge===0,"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."),Ne=be=lr,yr=0;var Ii=rr(Er,Ne),Ki=zr(Ii,99);return Ki?Ge=Ki:(Ne+=Ie(Ii),Ge)}function zr(Ii,Ki){var Fi=Ii;if(Re(Fi,Ki)){for(Ne+=Ie(Fi);Ne=n)return Ge=1;var Ki=Er.charCodeAt(Ne);if(Ki===60)return Er.charCodeAt(Ne+1)===47?(Ne+=2,Ge=30):(Ne++,Ge=29);if(Ki===123)return Ne++,Ge=18;for(var Fi=0;Ne0)break;$(Ki)||(Fi=Ne)}Ne++}return ur=Er.substring(lr,Ne),Fi===-1?12:11}function De(){if(C(Ge)){for(var Ii=!1;Ne=n)return Ge=1;var Ii=rr(Er,Ne);switch(Ne+=Ie(Ii),Ii){case 9:case 11:case 12:case 32:for(;Ne=0&&Re(Ki,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Fi=_r();return Fi>=0&&Re(Fi,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Fi)+ae(),Ge=Xe()):(Ne++,Ge=0)}if(Re(Ii,ye)){for(var ui=Ii;Ne=0),Ne=Ii,lr=Ii,be=Ii,Ge=0,ur=void 0,yr=0}function Rt(Ii){wr+=Ii?1:-1}}e.createScanner=He;var rr=String.prototype.codePointAt?function(ye,Ae){return ye.codePointAt(Ae)}:function(Ae,er){var ir=Ae.length;if(!(er<0||er>=ir)){var Cr=Ae.charCodeAt(er);if(Cr>=55296&&Cr<=56319&&ir>er+1){var Ye=Ae.charCodeAt(er+1);if(Ye>=56320&&Ye<=57343)return(Cr-55296)*1024+Ye-56320+65536}return Cr}};function Ie(ye){return ye>=65536?2:1}function _e(ye){if(e.Debug.assert(0<=ye&&ye<=1114111),ye<=65535)return String.fromCharCode(ye);var Ae=Math.floor((ye-65536)/1024)+55296,er=(ye-65536)%1024+56320;return String.fromCharCode(Ae,er)}var we=String.fromCodePoint?function(ye){return String.fromCodePoint(ye)}:_e;function de(ye){return we(ye)}e.utf16EncodeAsString=de})(ke||(ke={}));var ke;(function(e){function a(je){return e.pathIsRelative(je)||e.isRootedDiskPath(je)}e.isExternalModuleNameRelative=a;function C(je){return e.sortAndDeduplicate(je,e.compareDiagnostics)}e.sortAndDeduplicateDiagnostics=C;function I(je){switch(e.getEmitScriptTarget(je)){case 99:return"lib.esnext.full.d.ts";case 9:return"lib.es2022.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=I;function R(je){return je.start+je.length}e.textSpanEnd=R;function E(je){return je.length===0}e.textSpanIsEmpty=E;function X(je,Hr){return Hr>=je.start&&Hr=je.pos&&Hr<=je.end}e.textRangeContainsPositionInclusive=le;function N(je,Hr){return Hr.start>=je.start&&R(Hr)<=R(je)}e.textSpanContainsTextSpan=N;function p(je,Hr){return m(je,Hr)!==void 0}e.textSpanOverlapsWith=p;function m(je,Hr){var pt=K(je,Hr);return pt&&pt.length===0?void 0:pt}e.textSpanOverlap=m;function G(je,Hr){return f(je.start,je.length,Hr.start,Hr.length)}e.textSpanIntersectsWithTextSpan=G;function oe(je,Hr,pt){return f(je.start,je.length,Hr,pt)}e.textSpanIntersectsWith=oe;function f(je,Hr,pt,Pt){var ga=je+Hr,ua=pt+Pt;return pt<=ga&&ua>=je}e.decodedTextSpanIntersectsWith=f;function T(je,Hr){return Hr<=R(je)&&Hr>=je.start}e.textSpanIntersectsWithPosition=T;function K(je,Hr){var pt=Math.max(je.start,Hr.start),Pt=Math.min(R(je),R(Hr));return pt<=Pt?se(pt,Pt):void 0}e.textSpanIntersection=K;function b(je,Hr){if(je<0)throw new Error("start < 0");if(Hr<0)throw new Error("length < 0");return{start:je,length:Hr}}e.createTextSpan=b;function se(je,Hr){return b(je,Hr-je)}e.createTextSpanFromBounds=se;function J(je){return b(je.span.start,je.newLength)}e.textChangeRangeNewSpan=J;function ie(je){return E(je.span)&&je.newLength===0}e.textChangeRangeIsUnchanged=ie;function B(je,Hr){if(Hr<0)throw new Error("newLength < 0");return{span:je,newLength:Hr}}e.createTextChangeRange=B,e.unchangedTextChangeRange=B(b(0,0),0);function q(je){if(je.length===0)return e.unchangedTextChangeRange;if(je.length===1)return je[0];for(var Hr=je[0],pt=Hr.span.start,Pt=R(Hr.span),ga=pt+Hr.newLength,ua=1;ua=2&&je.charCodeAt(0)===95&&je.charCodeAt(1)===95?"_"+je:je}e.escapeLeadingUnderscores=Y;function U(je){var Hr=je;return Hr.length>=3&&Hr.charCodeAt(0)===95&&Hr.charCodeAt(1)===95&&Hr.charCodeAt(2)===95?Hr.substr(1):Hr}e.unescapeLeadingUnderscores=U;function j(je){return U(je.escapedText)}e.idText=j;function H(je){return je.valueDeclaration&&Ui(je.valueDeclaration)?j(je.valueDeclaration.name):U(je.escapedName)}e.symbolName=H;function w(je){var Hr=je.parent.parent;if(!!Hr){if(Si(Hr))return l(Hr);switch(Hr.kind){case 237:if(Hr.declarationList&&Hr.declarationList.declarations[0])return l(Hr.declarationList.declarations[0]);break;case 238:var pt=Hr.expression;switch(pt.kind===221&&pt.operatorToken.kind===63&&(pt=pt.left),pt.kind){case 206:return pt.name;case 207:var Pt=pt.argumentExpression;if(e.isIdentifier(Pt))return Pt}break;case 212:return l(Hr.expression);case 250:{if(Si(Hr.statement)||En(Hr.statement))return l(Hr.statement);break}}}}function l(je){var Hr=ne(je);return Hr&&e.isIdentifier(Hr)?Hr:void 0}function d(je,Hr){return!!(fe(je)&&e.isIdentifier(je.name)&&j(je.name)===j(Hr)||e.isVariableStatement(je)&&e.some(je.declarationList.declarations,function(pt){return d(pt,Hr)}))}e.nodeHasName=d;function D(je){return je.name||w(je)}e.getNameOfJSDocTypedef=D;function fe(je){return!!je.name}e.isNamedDeclaration=fe;function g(je){switch(je.kind){case 79:return je;case 347:case 340:{var Hr=je.name;if(Hr.kind===161)return Hr.right;break}case 208:case 221:{var pt=je;switch(e.getAssignmentDeclarationKind(pt)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(pt.left);case 7:case 8:case 9:return pt.arguments[1];default:return}}case 345:return D(je);case 339:return w(je);case 271:{var Pt=je.expression;return e.isIdentifier(Pt)?Pt:void 0}case 207:var ga=je;if(e.isBindableStaticElementAccessExpression(ga))return ga.argumentExpression}return je.name}e.getNonAssignedNameOfDeclaration=g;function ne(je){if(je!==void 0)return g(je)||(e.isFunctionExpression(je)||e.isArrowFunction(je)||e.isClassExpression(je)?ue(je):void 0)}e.getNameOfDeclaration=ne;function ue(je){if(je.parent){if(e.isPropertyAssignment(je.parent)||e.isBindingElement(je.parent))return je.parent.name;if(e.isBinaryExpression(je.parent)&&je===je.parent.right){if(e.isIdentifier(je.parent.left))return je.parent.left;if(e.isAccessExpression(je.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(je.parent.left)}else if(e.isVariableDeclaration(je.parent)&&e.isIdentifier(je.parent.name))return je.parent.name}else return}e.getAssignedName=ue;function We(je,Hr){if(je.name)if(e.isIdentifier(je.name)){var pt=je.name.escapedText;return yr(je.parent,Hr).filter(function(ua){return e.isJSDocParameterTag(ua)&&e.isIdentifier(ua.name)&&ua.name.escapedText===pt})}else{var Pt=je.parent.parameters.indexOf(je);e.Debug.assert(Pt>-1,"Parameters should always be in their parents' parameter list");var ga=yr(je.parent,Hr).filter(e.isJSDocParameterTag);if(Pt=161}e.isNodeKind=vr;function mr(je){return je>=0&&je<=160}e.isTokenKind=mr;function Ar(je){return mr(je.kind)}e.isToken=Ar;function Oe(je){return je.hasOwnProperty("pos")&&je.hasOwnProperty("end")}e.isNodeArray=Oe;function nr(je){return 8<=je&&je<=14}e.isLiteralKind=nr;function Mr(je){return nr(je.kind)}e.isLiteralExpression=Mr;function Pe(je){return 14<=je&&je<=17}e.isTemplateLiteralKind=Pe;function Ue(je){return Pe(je.kind)}e.isTemplateLiteralToken=Ue;function fr(je){var Hr=je.kind;return Hr===16||Hr===17}e.isTemplateMiddleOrTemplateTail=fr;function De(je){return e.isImportSpecifier(je)||e.isExportSpecifier(je)}e.isImportOrExportSpecifier=De;function gr(je){switch(je.kind){case 270:case 275:return je.isTypeOnly||je.parent.parent.isTypeOnly;case 268:return je.parent.isTypeOnly;case 267:case 265:return je.isTypeOnly;default:return!1}}e.isTypeOnlyImportOrExportDeclaration=gr;function Vr(je){return e.isStringLiteral(je)||e.isIdentifier(je)}e.isAssertionKey=Vr;function Tr(je){return je.kind===10||Pe(je.kind)}e.isStringTextContainingNode=Tr;function vi(je){return e.isIdentifier(je)&&(je.autoGenerateFlags&7)>0}e.isGeneratedIdentifier=vi;function Ui(je){return(e.isPropertyDeclaration(je)||Oi(je))&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierClassElementDeclaration=Ui;function Yi(je){return e.isPropertyAccessExpression(je)&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierPropertyAccessExpression=Yi;function Wi(je){switch(je){case 126:case 131:case 85:case 135:case 88:case 93:case 101:case 123:case 121:case 122:case 145:case 124:case 144:case 159:return!0}return!1}e.isModifierKind=Wi;function ct(je){return!!(e.modifierToFlag(je)&16476)}e.isParameterPropertyModifier=ct;function Li(je){return ct(je)||je===124||je===159}e.isClassMemberModifier=Li;function nt(je){return Wi(je.kind)}e.isModifier=nt;function Mt(je){var Hr=je.kind;return Hr===161||Hr===79}e.isEntityName=Mt;function xt(je){var Hr=je.kind;return Hr===79||Hr===80||Hr===10||Hr===8||Hr===162}e.isPropertyName=xt;function ut(je){var Hr=je.kind;return Hr===79||Hr===201||Hr===202}e.isBindingName=ut;function Dt(je){return!!je&&ui(je.kind)}e.isFunctionLike=Dt;function Rt(je){return!!je&&(ui(je.kind)||e.isClassStaticBlockDeclaration(je))}e.isFunctionLikeOrClassStaticBlockDeclaration=Rt;function Ii(je){return je&&Fi(je.kind)}e.isFunctionLikeDeclaration=Ii;function Ki(je){return je.kind===110||je.kind===95}e.isBooleanLiteral=Ki;function Fi(je){switch(je){case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return!1}}function ui(je){switch(je){case 168:case 174:case 323:case 175:case 176:case 179:case 317:case 180:return!0;default:return Fi(je)}}e.isFunctionLikeKind=ui;function Bt(je){return e.isSourceFile(je)||e.isModuleBlock(je)||e.isBlock(je)&&Dt(je.parent)}e.isFunctionOrModuleBlock=Bt;function wt(je){var Hr=je.kind;return Hr===171||Hr===167||Hr===169||Hr===172||Hr===173||Hr===176||Hr===170||Hr===234}e.isClassElement=wt;function na(je){return je&&(je.kind===257||je.kind===226)}e.isClassLike=na;function Ai(je){return je&&(je.kind===172||je.kind===173)}e.isAccessor=Ai;function Oi(je){switch(je.kind){case 169:case 172:case 173:return!0;default:return!1}}e.isMethodOrAccessor=Oi;function ji(je){var Hr=je.kind;return Hr===175||Hr===174||Hr===166||Hr===168||Hr===176||Hr===172||Hr===173}e.isTypeElement=ji;function Vi(je){return ji(je)||wt(je)}e.isClassOrTypeElement=Vi;function at(je){var Hr=je.kind;return Hr===296||Hr===297||Hr===298||Hr===169||Hr===172||Hr===173}e.isObjectLiteralElementLike=at;function At(je){return e.isTypeNodeKind(je.kind)}e.isTypeNode=At;function ba(je){switch(je.kind){case 179:case 180:return!0}return!1}e.isFunctionOrConstructorTypeNode=ba;function $a(je){if(je){var Hr=je.kind;return Hr===202||Hr===201}return!1}e.isBindingPattern=$a;function Qa(je){var Hr=je.kind;return Hr===204||Hr===205}e.isAssignmentPattern=Qa;function ai(je){var Hr=je.kind;return Hr===203||Hr===227}e.isArrayBindingElement=ai;function Dn(je){switch(je.kind){case 254:case 164:case 203:return!0}return!1}e.isDeclarationBindingElement=Dn;function ka(je){return Ba(je)||Cn(je)}e.isBindingOrAssignmentPattern=ka;function Ba(je){switch(je.kind){case 201:case 205:return!0}return!1}e.isObjectBindingOrAssignmentPattern=Ba;function pn(je){switch(je.kind){case 203:case 296:case 297:case 298:return!0}return!1}e.isObjectBindingOrAssignmentElement=pn;function Cn(je){switch(je.kind){case 202:case 204:return!0}return!1}e.isArrayBindingOrAssignmentPattern=Cn;function Bi(je){var Hr=je.kind;return Hr===206||Hr===161||Hr===200}e.isPropertyAccessOrQualifiedNameOrImportTypeNode=Bi;function kn(je){var Hr=je.kind;return Hr===206||Hr===161}e.isPropertyAccessOrQualifiedName=kn;function xn(je){switch(je.kind){case 280:case 279:case 208:case 209:case 210:case 165:return!0;default:return!1}}e.isCallLikeExpression=xn;function Kn(je){return je.kind===208||je.kind===209}e.isCallOrNewExpression=Kn;function Pn(je){var Hr=je.kind;return Hr===223||Hr===14}e.isTemplateLiteral=Pn;function eo(je){return Rn(Jr(je).kind)}e.isLeftHandSideExpression=eo;function Rn(je){switch(je){case 206:case 207:case 209:case 208:case 278:case 279:case 282:case 210:case 204:case 212:case 205:case 226:case 213:case 79:case 80:case 13:case 8:case 9:case 10:case 14:case 223:case 95:case 104:case 108:case 110:case 106:case 230:case 228:case 231:case 100:return!0;default:return!1}}function Da(je){return bo(Jr(je).kind)}e.isUnaryExpression=Da;function bo(je){switch(je){case 219:case 220:case 215:case 216:case 217:case 218:case 211:return!0;default:return Rn(je)}}function Ro(je){switch(je.kind){case 220:return!0;case 219:return je.operator===45||je.operator===46;default:return!1}}e.isUnaryExpressionWithWrite=Ro;function En(je){return zn(Jr(je).kind)}e.isExpression=En;function zn(je){switch(je){case 222:case 224:case 214:case 221:case 225:case 229:case 227:case 351:case 350:return!0;default:return bo(je)}}function to(je){var Hr=je.kind;return Hr===211||Hr===229}e.isAssertionExpression=to;function Co(je){return e.isNotEmittedStatement(je)||e.isPartiallyEmittedExpression(je)}e.isNotEmittedOrPartiallyEmittedNode=Co;function Ko(je,Hr){switch(je.kind){case 242:case 243:case 244:case 240:case 241:return!0;case 250:return Hr&&Ko(je.statement,Hr)}return!1}e.isIterationStatement=Ko;function Oo(je){return e.isExportAssignment(je)||e.isExportDeclaration(je)}e.isScopeMarker=Oo;function no(je){return e.some(je,Oo)}e.hasScopeMarker=no;function $o(je){return!e.isAnyImportOrReExport(je)&&!e.isExportAssignment(je)&&!e.hasSyntacticModifier(je,1)&&!e.isAmbientModule(je)}e.needsScopeMarker=$o;function Pr(je){return e.isAnyImportOrReExport(je)||e.isExportAssignment(je)||e.hasSyntacticModifier(je,1)}e.isExternalModuleIndicator=Pr;function xi(je){return je.kind===243||je.kind===244}e.isForInOrOfStatement=xi;function St(je){return e.isBlock(je)||En(je)}e.isConciseBody=St;function pa(je){return e.isBlock(je)}e.isFunctionBody=pa;function dn(je){return e.isVariableDeclarationList(je)||En(je)}e.isForInitializer=dn;function Bn(je){var Hr=je.kind;return Hr===262||Hr===261||Hr===79}e.isModuleBody=Bn;function Qe(je){var Hr=je.kind;return Hr===262||Hr===261}e.isNamespaceBody=Qe;function Gr(je){var Hr=je.kind;return Hr===79||Hr===261}e.isJSDocNamespaceBody=Gr;function S(je){var Hr=je.kind;return Hr===269||Hr===268}e.isNamedImportBindings=S;function Ce(je){return je.kind===261||je.kind===260}e.isModuleOrEnumDeclaration=Ce;function qe(je){return je===214||je===203||je===257||je===226||je===170||je===171||je===260||je===299||je===275||je===256||je===213||je===172||je===267||je===265||je===270||je===258||je===285||je===169||je===168||je===261||je===264||je===268||je===274||je===164||je===296||je===167||je===166||je===173||je===297||je===259||je===163||je===254||je===345||je===338||je===347}function br(je){return je===256||je===276||je===257||je===258||je===259||je===260||je===261||je===266||je===265||je===272||je===271||je===264}function Zr(je){return je===246||je===245||je===253||je===240||je===238||je===236||je===243||je===244||je===242||je===239||je===250||je===247||je===249||je===251||je===252||je===237||je===241||je===248||je===349||je===353||je===352}function Si(je){return je.kind===163?je.parent&&je.parent.kind!==344||e.isInJSFile(je):qe(je.kind)}e.isDeclaration=Si;function Pi(je){return br(je.kind)}e.isDeclarationStatement=Pi;function Qi(je){return Zr(je.kind)}e.isStatementButNotDeclaration=Qi;function Ct(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||sa(je)}e.isStatement=Ct;function sa(je){return je.kind!==235||je.parent!==void 0&&(je.parent.kind===252||je.parent.kind===292)?!1:!e.isFunctionBlock(je)}function en(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||Hr===235}e.isStatementOrBlock=en;function Wa(je){var Hr=je.kind;return Hr===277||Hr===161||Hr===79}e.isModuleReference=Wa;function Wn(je){var Hr=je.kind;return Hr===108||Hr===79||Hr===206}e.isJsxTagNameExpression=Wn;function mo(je){var Hr=je.kind;return Hr===278||Hr===288||Hr===279||Hr===11||Hr===282}e.isJsxChild=mo;function So(je){var Hr=je.kind;return Hr===285||Hr===287}e.isJsxAttributeLike=So;function Go(je){var Hr=je.kind;return Hr===10||Hr===288}e.isStringLiteralOrJsxExpression=Go;function ys(je){var Hr=je.kind;return Hr===280||Hr===279}e.isJsxOpeningLikeElement=ys;function Pc(je){var Hr=je.kind;return Hr===289||Hr===290}e.isCaseOrDefaultClause=Pc;function Vc(je){return je.kind>=309&&je.kind<=347}e.isJSDocNode=Vc;function Kc(je){return je.kind===320||je.kind===319||je.kind===321||qi(je)||Xs(je)||e.isJSDocTypeLiteral(je)||e.isJSDocSignature(je)}e.isJSDocCommentContainingNode=Kc;function Xs(je){return je.kind>=327&&je.kind<=347}e.isJSDocTag=Xs;function pc(je){return je.kind===173}e.isSetAccessor=pc;function hs(je){return je.kind===172}e.isGetAccessor=hs;function tc(je){var Hr=je.jsDoc;return!!Hr&&Hr.length>0}e.hasJSDocNodes=tc;function ps(je){return!!je.type}e.hasType=ps;function Qs(je){return!!je.initializer}e.hasInitializer=Qs;function js(je){switch(je.kind){case 254:case 164:case 203:case 166:case 167:case 296:case 299:return!0;default:return!1}}e.hasOnlyExpressionInitializer=js;function ds(je){return je.kind===285||je.kind===287||at(je)}e.isObjectLiteralElement=ds;function Ji(je){return je.kind===178||je.kind===228}e.isTypeReferenceType=Ji;var ce=1073741823;function Rr(je){for(var Hr=ce,pt=0,Pt=je;pt=0),e.getLineStarts(te)[c]}e.getStartPositionOfLine=L;function P(c){var te=$(c),xr=e.getLineAndCharacterOfPosition(te,c.pos);return"".concat(te.fileName,"(").concat(xr.line+1,",").concat(xr.character+1,")")}e.nodePosToString=P;function k(c,te){e.Debug.assert(c>=0);var xr=e.getLineStarts(te),ei=c,bi=te.text;if(ei+1===xr.length)return bi.length-1;var Ft=xr[ei],ot=xr[ei+1]-1;for(e.Debug.assert(e.isLineBreak(bi.charCodeAt(ot)));Ft<=ot&&e.isLineBreak(bi.charCodeAt(ot));)ot--;return ot}e.getEndLinePosition=k;function Y(c,te,xr){return!(xr&&xr(te))&&!c.identifiers.has(te)}e.isFileLevelUniqueName=Y;function U(c){return c===void 0?!0:c.pos===c.end&&c.pos>=0&&c.kind!==1}e.nodeIsMissing=U;function j(c){return!U(c)}e.nodeIsPresent=j;function H(c,te,xr){if(te===void 0||te.length===0)return c;for(var ei=0;ei0?Fe(c._children[0],te,xr):e.skipTrivia((te||$(c)).text,c.pos,!1,!1,Wa(c))}e.getTokenPosOfNode=Fe;function Z(c,te){return U(c)||!c.decorators?Fe(c,te):e.skipTrivia((te||$(c)).text,c.decorators.end)}e.getNonDecoratorTokenPosOfNode=Z;function Be(c,te,xr){return xr===void 0&&(xr=!1),ze(c.text,te,xr)}e.getSourceTextOfNodeFromSourceFile=Be;function ge(c){return!!e.findAncestor(c,e.isJSDocTypeExpression)}function Re(c){return!!(e.isExportDeclaration(c)&&c.exportClause&&e.isNamespaceExport(c.exportClause)&&c.exportClause.name.escapedText==="default")}e.isExportNamespaceAsDefaultDeclaration=Re;function ze(c,te,xr){if(xr===void 0&&(xr=!1),U(te))return"";var ei=c.substring(xr?te.pos:e.skipTrivia(c,te.pos),te.end);return ge(te)&&(ei=ei.split(/\r\n|\n|\r/).map(function(bi){return e.trimStringStart(bi.replace(/^\s*\*/,""))}).join(` +`)),ei}e.getTextOfNodeFromSourceText=ze;function Ee(c,te){return te===void 0&&(te=!1),Be($(c),c,te)}e.getTextOfNode=Ee;function He(c){return c.pos}function rr(c,te){return e.binarySearch(c,te,He,e.compareValues)}e.indexOfNode=rr;function Ie(c){var te=c.emitNode;return te&&te.flags||0}e.getEmitFlags=Ie;function _e(){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,NumberFormat:["formatToParts"]},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"]},es2022:{Array:["at"],String:["at"],Int8Array:["at"],Uint8Array:["at"],Uint8ClampedArray:["at"],Int16Array:["at"],Uint16Array:["at"],Int32Array:["at"],Uint32Array:["at"],Float32Array:["at"],Float64Array:["at"],BigInt64Array:["at"],BigUint64Array:["at"],ObjectConstructor:["hasOwn"],Error:["cause"]}}}e.getScriptTargetFeatures=_e;var we;(function(c){c[c.None=0]="None",c[c.NeverAsciiEscape=1]="NeverAsciiEscape",c[c.JsxAttributeEscape=2]="JsxAttributeEscape",c[c.TerminateUnterminatedLiterals=4]="TerminateUnterminatedLiterals",c[c.AllowNumericSeparator=8]="AllowNumericSeparator"})(we=e.GetLiteralTextFlags||(e.GetLiteralTextFlags={}));function de(c,te,xr){var ei;if(te&&ye(c,xr))return Be(te,c);switch(c.kind){case 10:{var bi=xr&2?wc:xr&1||Ie(c)&16777216?ks:Zl;return c.singleQuote?"'"+bi(c.text,39)+"'":'"'+bi(c.text,34)+'"'}case 14:case 15:case 16:case 17:{var bi=xr&1||Ie(c)&16777216?ks:Zl,Ft=(ei=c.rawText)!==null&&ei!==void 0?ei:gd(bi(c.text,96));switch(c.kind){case 14:return"`"+Ft+"`";case 15:return"`"+Ft+"${";case 16:return"}"+Ft+"${";case 17:return"}"+Ft+"`"}break}case 8:case 9:return c.text;case 13:return xr&4&&c.isUnterminated?c.text+(c.text.charCodeAt(c.text.length-1)===92?" /":"/"):c.text}return e.Debug.fail("Literal kind '".concat(c.kind,"' not accounted for."))}e.getLiteralText=de;function ye(c,te){return F_(c)||!c.parent||te&4&&c.isUnterminated?!1:e.isNumericLiteral(c)&&c.numericLiteralFlags&512?!!(te&8):!e.isBigIntLiteral(c)}function Ae(c){return e.isString(c)?'"'+Zl(c)+'"':""+c}e.getTextOfConstantValue=Ae;function er(c){return e.getBaseFileName(c).replace(/^(\d)/,"_$1").replace(/\W/g,"_")}e.makeIdentifierFromModuleName=er;function ir(c){return(e.getCombinedNodeFlags(c)&3)!==0||Cr(c)}e.isBlockOrCatchScoped=ir;function Cr(c){var te=jf(c);return te.kind===254&&te.parent.kind===292}e.isCatchClauseVariableDeclarationOrBindingElement=Cr;function Ye(c){return e.isModuleDeclaration(c)&&(c.name.kind===10||Ge(c))}e.isAmbientModule=Ye;function Br(c){return e.isModuleDeclaration(c)&&c.name.kind===10}e.isModuleWithStringLiteralName=Br;function Er(c){return e.isModuleDeclaration(c)&&e.isStringLiteral(c.name)}e.isNonGlobalAmbientModule=Er;function Ne(c){return e.isModuleDeclaration(c)||e.isIdentifier(c)}e.isEffectiveModuleDeclaration=Ne;function n(c){return lr(c.valueDeclaration)}e.isShorthandAmbientModuleSymbol=n;function lr(c){return!!c&&c.kind===261&&!c.body}function be(c){return c.kind===305||c.kind===261||e.isFunctionLikeOrClassStaticBlockDeclaration(c)}e.isBlockScopedContainerTopLevel=be;function Ge(c){return!!(c.flags&1024)}e.isGlobalScopeAugmentation=Ge;function ur(c){return Ye(c)&&yr(c)}e.isExternalModuleAugmentation=ur;function yr(c){switch(c.parent.kind){case 305:return e.isExternalModule(c.parent);case 262:return Ye(c.parent.parent)&&e.isSourceFile(c.parent.parent.parent)&&!e.isExternalModule(c.parent.parent.parent)}return!1}e.isModuleAugmentationExternal=yr;function Ir(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(function(xr){return!ur(xr)&&!(e.isModuleDeclaration(xr)&&Ge(xr))})}e.getNonAugmentationDeclaration=Ir;function wr(c){return c===e.ModuleKind.CommonJS||c===e.ModuleKind.Node16||c===e.ModuleKind.NodeNext}function Ur(c,te){return e.isExternalModule(c)||te.isolatedModules||wr(Ja(te))&&!!c.commonJsModuleIndicator}e.isEffectiveExternalModule=Ur;function ii(c,te){switch(c.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return c.isDeclarationFile?!1:Sd(te,"alwaysStrict")||e.startsWithUseStrict(c.statements)?!0:e.isExternalModule(c)||te.isolatedModules?Ja(te)>=e.ModuleKind.ES2015?!0:!te.noImplicitUseStrict:!1}e.isEffectiveStrictModeSourceFile=ii;function mi(c,te){switch(c.kind){case 305:case 263:case 292:case 261:case 242:case 243:case 244:case 171:case 169:case 172:case 173:case 256:case 213:case 214:case 167:case 170:return!0;case 235:return!e.isFunctionLikeOrClassStaticBlockDeclaration(te)}return!1}e.isBlockScope=mi;function pe(c){switch(c.kind){case 338:case 345:case 323:return!0;default:return e.assertType(c),or(c)}}e.isDeclarationWithTypeParameters=pe;function or(c){switch(c.kind){case 174:case 175:case 168:case 176:case 179:case 180:case 317:case 257:case 226:case 258:case 259:case 344:case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return e.assertType(c),!1}}e.isDeclarationWithTypeParameterChildren=or;function qr(c){switch(c.kind){case 266:case 265:return!0;default:return!1}}e.isAnyImportSyntax=qr;function si(c){return qr(c)||Go(c)}e.isAnyImportOrBareOrAccessedRequire=si;function Di(c){switch(c.kind){case 266:case 265:case 237:case 257:case 256:case 261:case 259:case 258:case 260:return!0;default:return!1}}e.isLateVisibilityPaintedStatement=Di;function wi(c){return Xi(c)||e.isModuleDeclaration(c)||e.isImportTypeNode(c)||Vr(c)}e.hasPossibleExternalModuleReference=wi;function Xi(c){return qr(c)||e.isExportDeclaration(c)}e.isAnyImportOrReExport=Xi;function et(c){return e.findAncestor(c.parent,function(te){return mi(te,te.parent)})}e.getEnclosingBlockScopeContainer=et;function Gi(c,te){for(var xr=et(c);xr;)te(xr),xr=et(xr)}e.forEachEnclosingBlockScopeContainer=Gi;function Wt(c){return!c||b(c)===0?"(Missing)":Ee(c)}e.declarationNameToString=Wt;function Zt(c){return c.declaration?Wt(c.declaration.parameters[0].name):void 0}e.getNameFromIndexInfo=Zt;function _r(c){return c.kind===162&&!ns(c.expression)}e.isComputedNonLiteralName=_r;function pi(c){switch(c.kind){case 79:case 80:return c.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(c.text);case 162:return ns(c.expression)?e.escapeLeadingUnderscores(c.expression.text):void 0;default:return e.Debug.assertNever(c)}}e.tryGetTextOfPropertyName=pi;function ae(c){return e.Debug.checkDefined(pi(c))}e.getTextOfPropertyName=ae;function Xe(c){switch(c.kind){case 108:return"this";case 80:case 79:return b(c)===0?e.idText(c):Ee(c);case 161:return Xe(c.left)+"."+Xe(c.right);case 206:return e.isIdentifier(c.name)||e.isPrivateIdentifier(c.name)?Xe(c.expression)+"."+Xe(c.name):e.Debug.assertNever(c.name);case 311:return Xe(c.left)+Xe(c.right);default:return e.Debug.assertNever(c)}}e.entityNameToString=Xe;function Jr(c,te,xr,ei,bi,Ft){var ot=$(c);return Ze(ot,c,te,xr,ei,bi,Ft)}e.createDiagnosticForNode=Jr;function ti(c,te,xr,ei,bi,Ft,ot){var xa=e.skipTrivia(c.text,te.pos);return Hg(c,xa,te.end-xa,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeArray=ti;function Ze(c,te,xr,ei,bi,Ft,ot){var xa=Oe(c,te);return Hg(c,xa.start,xa.length,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeInSourceFile=Ze;function Sr(c,te,xr){var ei=$(c),bi=Oe(ei,c);return Wr(ei,bi.start,bi.length,te,xr)}e.createDiagnosticForNodeFromMessageChain=Sr;function zr(c,te,xr){e.Debug.assertGreaterThanOrEqual(te,0),e.Debug.assertGreaterThanOrEqual(xr,0),c&&(e.Debug.assertLessThanOrEqual(te,c.text.length),e.Debug.assertLessThanOrEqual(te+xr,c.text.length))}function Wr(c,te,xr,ei,bi){return zr(c,te,xr),{file:c,start:te,length:xr,code:ei.code,category:ei.category,messageText:ei.next?ei:ei.messageText,relatedInformation:bi}}e.createFileDiagnosticFromMessageChain=Wr;function Je(c,te,xr){return{file:c,start:0,length:0,code:te.code,category:te.category,messageText:te.next?te:te.messageText,relatedInformation:xr}}e.createDiagnosticForFileFromMessageChain=Je;function xe(c){return typeof c.messageText=="string"?{code:c.code,category:c.category,messageText:c.messageText,next:c.next}:c.messageText}e.createDiagnosticMessageChainFromDiagnostic=xe;function vr(c,te,xr){return{file:c,start:te.pos,length:te.end-te.pos,code:xr.code,category:xr.category,messageText:xr.message}}e.createDiagnosticForRange=vr;function mr(c,te){var xr=e.createScanner(c.languageVersion,!0,c.languageVariant,c.text,void 0,te);xr.scan();var ei=xr.getTokenPos();return e.createTextSpanFromBounds(ei,xr.getTextPos())}e.getSpanOfTokenAtPosition=mr;function Ar(c,te){var xr=e.skipTrivia(c.text,te.pos);if(te.body&&te.body.kind===235){var ei=e.getLineAndCharacterOfPosition(c,te.body.pos).line,bi=e.getLineAndCharacterOfPosition(c,te.body.end).line;if(ei0?te.statements[0].pos:te.end;return e.createTextSpanFromBounds(bi,Ft)}if(xr===void 0)return mr(c,te.pos);e.Debug.assert(!e.isJSDoc(xr));var ot=U(xr),xa=ot||e.isJsxText(te)?xr.pos:e.skipTrivia(c.text,xr.pos);return ot?(e.Debug.assert(xa===xr.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(xa===xr.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")):(e.Debug.assert(xa>=xr.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(xa<=xr.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")),e.createTextSpanFromBounds(xa,xr.end)}e.getErrorSpanForNode=Oe;function nr(c){return(c.externalModuleIndicator||c.commonJsModuleIndicator)!==void 0}e.isExternalOrCommonJsModule=nr;function Mr(c){return c.scriptKind===6}e.isJsonSourceFile=Mr;function Pe(c){return!!(e.getCombinedModifierFlags(c)&2048)}e.isEnumConst=Pe;function Ue(c){return!!(e.getCombinedModifierFlags(c)&64&&!e.isParameterPropertyDeclaration(c,c.parent))}e.isDeclarationReadonly=Ue;function fr(c){return!!(e.getCombinedNodeFlags(c)&2)}e.isVarConst=fr;function De(c){return!!(e.getCombinedNodeFlags(c)&1)}e.isLet=De;function gr(c){return c.kind===208&&c.expression.kind===106}e.isSuperCall=gr;function Vr(c){return c.kind===208&&c.expression.kind===100}e.isImportCall=Vr;function Tr(c){return e.isMetaProperty(c)&&c.keywordToken===100&&c.name.escapedText==="meta"}e.isImportMeta=Tr;function vi(c){return e.isImportTypeNode(c)&&e.isLiteralTypeNode(c.argument)&&e.isStringLiteral(c.argument.literal)}e.isLiteralImportTypeNode=vi;function Ui(c){return c.kind===238&&c.expression.kind===10}e.isPrologueDirective=Ui;function Yi(c){return!!(Ie(c)&1048576)}e.isCustomPrologue=Yi;function Wi(c){return Yi(c)&&e.isFunctionDeclaration(c)}e.isHoistedFunction=Wi;function ct(c){return e.isIdentifier(c.name)&&!c.initializer}function Li(c){return Yi(c)&&e.isVariableStatement(c)&&e.every(c.declarationList.declarations,ct)}e.isHoistedVariableStatement=Li;function nt(c,te){return c.kind!==11?e.getLeadingCommentRanges(te.text,c.pos):void 0}e.getLeadingCommentRangesOfNode=nt;function Mt(c,te){var xr=c.kind===164||c.kind===163||c.kind===213||c.kind===214||c.kind===212||c.kind===254||c.kind===275?e.concatenate(e.getTrailingCommentRanges(te,c.pos),e.getLeadingCommentRanges(te,c.pos)):e.getLeadingCommentRanges(te,c.pos);return e.filter(xr,function(ei){return te.charCodeAt(ei.pos+1)===42&&te.charCodeAt(ei.pos+2)===42&&te.charCodeAt(ei.pos+3)!==47})}e.getJSDocCommentRanges=Mt,e.fullTripleSlashReferencePathRegEx=/^(\/\/\/\s*/;var xt=/^(\/\/\/\s*/;e.fullTripleSlashAMDReferencePathRegEx=/^(\/\/\/\s*/;var ut=/^(\/\/\/\s*/;function Dt(c){if(177<=c.kind&&c.kind<=200)return!0;switch(c.kind){case 130:case 155:case 147:case 158:case 150:case 133:case 151:case 148:case 153:case 143:return!0;case 114:return c.parent.kind!==217;case 228:return e.isHeritageClause(c.parent)&&!Fc(c);case 163:return c.parent.kind===195||c.parent.kind===190;case 79:(c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c)&&(c=c.parent),e.Debug.assert(c.kind===79||c.kind===161||c.kind===206,"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.");case 161:case 206:case 108:{var te=c.parent;if(te.kind===181)return!1;if(te.kind===200)return!te.isTypeOf;if(177<=te.kind&&te.kind<=200)return!0;switch(te.kind){case 228:return e.isHeritageClause(te.parent)&&!Fc(te);case 163:return c===te.constraint;case 344:return c===te.constraint;case 167:case 166:case 164:case 254:return c===te.type;case 256:case 213:case 214:case 171:case 169:case 168:case 172:case 173:return c===te.type;case 174:case 175:case 176:return c===te.type;case 211:return c===te.type;case 208:case 209:return e.contains(te.typeArguments,c);case 210:return!1}}}return!1}e.isPartOfTypeNode=Dt;function Rt(c,te){for(;c;){if(c.kind===te)return!0;c=c.parent}return!1}e.isChildOfNodeWithKind=Rt;function Ii(c,te){return xr(c);function xr(ei){switch(ei.kind){case 247:return te(ei);case 263:case 235:case 239:case 240:case 241:case 242:case 243:case 244:case 248:case 249:case 289:case 290:case 250:case 252:case 292:return e.forEachChild(ei,xr)}}}e.forEachReturnStatement=Ii;function Ki(c,te){return xr(c);function xr(ei){switch(ei.kind){case 224:te(ei);var bi=ei.expression;bi&&xr(bi);return;case 260:case 258:case 261:case 259:return;default:if(e.isFunctionLike(ei)){if(ei.name&&ei.name.kind===162){xr(ei.name.expression);return}}else Dt(ei)||e.forEachChild(ei,xr)}}}e.forEachYieldExpression=Ki;function Fi(c){return c&&c.kind===183?c.elementType:c&&c.kind===178?e.singleOrUndefined(c.typeArguments):void 0}e.getRestParameterElementType=Fi;function ui(c){switch(c.kind){case 258:case 257:case 226:case 182:return c.members;case 205:return c.properties}}e.getMembersOfDeclaration=ui;function Bt(c){if(c)switch(c.kind){case 203:case 299:case 164:case 296:case 167:case 166:case 297:case 254:return!0}return!1}e.isVariableLike=Bt;function wt(c){return Bt(c)||e.isAccessor(c)}e.isVariableLikeOrAccessor=wt;function na(c){return c.parent.kind===255&&c.parent.parent.kind===237}e.isVariableDeclarationInVariableStatement=na;function Ai(c){return Ct(c)?e.isObjectLiteralExpression(c.parent)&&e.isBinaryExpression(c.parent.parent)&&Hr(c.parent.parent)===2||Oi(c.parent):!1}e.isCommonJsExportedExpression=Ai;function Oi(c){return Ct(c)?e.isBinaryExpression(c)&&Hr(c)===1:!1}e.isCommonJsExportPropertyAssignment=Oi;function ji(c){return(e.isVariableDeclaration(c)?fr(c)&&e.isIdentifier(c.name)&&na(c):e.isPropertyDeclaration(c)?wp(c)&&mc(c):e.isPropertySignature(c)&&wp(c))||Oi(c)}e.isValidESSymbolDeclaration=ji;function Vi(c){switch(c.kind){case 169:case 168:case 171:case 172:case 173:case 256:case 213:return!0}return!1}e.introducesArgumentsExoticObject=Vi;function at(c,te){for(;;){if(te&&te(c),c.statement.kind!==250)return c.statement;c=c.statement}}e.unwrapInnermostStatementOfLabel=at;function At(c){return c&&c.kind===235&&e.isFunctionLike(c.parent)}e.isFunctionBlock=At;function ba(c){return c&&c.kind===169&&c.parent.kind===205}e.isObjectLiteralMethod=ba;function $a(c){return(c.kind===169||c.kind===172||c.kind===173)&&(c.parent.kind===205||c.parent.kind===226)}e.isObjectLiteralOrClassExpressionMethodOrAccessor=$a;function Qa(c){return c&&c.kind===1}e.isIdentifierTypePredicate=Qa;function ai(c){return c&&c.kind===0}e.isThisTypePredicate=ai;function Dn(c,te,xr){return c.properties.filter(function(ei){if(ei.kind===296){var bi=pi(ei.name);return te===bi||!!xr&&xr===bi}return!1})}e.getPropertyAssignment=Dn;function ka(c,te,xr){return e.firstDefined(Dn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getPropertyArrayElementValue=ka;function Ba(c){if(c&&c.statements.length){var te=c.statements[0].expression;return e.tryCast(te,e.isObjectLiteralExpression)}}e.getTsConfigObjectLiteralExpression=Ba;function pn(c,te,xr){return e.firstDefined(Cn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getTsConfigPropArrayElementValue=pn;function Cn(c,te){var xr=Ba(c);return xr?Dn(xr,te):e.emptyArray}e.getTsConfigPropArray=Cn;function Bi(c){return e.findAncestor(c.parent,e.isFunctionLike)}e.getContainingFunction=Bi;function kn(c){return e.findAncestor(c.parent,e.isFunctionLikeDeclaration)}e.getContainingFunctionDeclaration=kn;function xn(c){return e.findAncestor(c.parent,e.isClassLike)}e.getContainingClass=xn;function Kn(c){return e.findAncestor(c.parent,function(te){return e.isClassLike(te)||e.isFunctionLike(te)?"quit":e.isClassStaticBlockDeclaration(te)})}e.getContainingClassStaticBlock=Kn;function Pn(c){return e.findAncestor(c.parent,e.isFunctionLikeOrClassStaticBlockDeclaration)}e.getContainingFunctionOrClassStaticBlock=Pn;function eo(c,te){for(e.Debug.assert(c.kind!==305);;){if(c=c.parent,!c)return e.Debug.fail();switch(c.kind){case 162:if(e.isClassLike(c.parent.parent))return c;c=c.parent;break;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break;case 214:if(!te)continue;case 256:case 213:case 261:case 170:case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 174:case 175:case 176:case 260:case 305:return c}}}e.getThisContainer=eo;function Rn(c){switch(c.kind){case 214:case 256:case 213:case 167:return!0;case 235:switch(c.parent.kind){case 171:case 169:case 172:case 173:return!0;default:return!1}default:return!1}}e.isThisContainerOrFunctionBlock=Rn;function Da(c){e.isIdentifier(c)&&(e.isClassDeclaration(c.parent)||e.isFunctionDeclaration(c.parent))&&c.parent.name===c&&(c=c.parent);var te=eo(c,!0);return e.isSourceFile(te)}e.isInTopLevelContext=Da;function bo(c){var te=eo(c,!1);if(te)switch(te.kind){case 171:case 256:case 213:return te}}e.getNewTargetContainer=bo;function Ro(c,te){for(;;){if(c=c.parent,!c)return c;switch(c.kind){case 162:c=c.parent;break;case 256:case 213:case 214:if(!te)continue;case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 170:return c;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break}}}e.getSuperContainer=Ro;function En(c){if(c.kind===213||c.kind===214){for(var te=c,xr=c.parent;xr.kind===212;)te=xr,xr=xr.parent;if(xr.kind===208&&xr.expression===te)return xr}}e.getImmediatelyInvokedFunctionExpression=En;function zn(c){return c.kind===106||to(c)}e.isSuperOrSuperProperty=zn;function to(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===106}e.isSuperProperty=to;function Co(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===108}e.isThisProperty=Co;function Ko(c){var te;return!!c&&e.isVariableDeclaration(c)&&((te=c.initializer)===null||te===void 0?void 0:te.kind)===108}e.isThisInitializedDeclaration=Ko;function Oo(c){return!!c&&(e.isShorthandPropertyAssignment(c)||e.isPropertyAssignment(c))&&e.isBinaryExpression(c.parent.parent)&&c.parent.parent.operatorToken.kind===63&&c.parent.parent.right.kind===108}e.isThisInitializedObjectBindingExpression=Oo;function no(c){switch(c.kind){case 178:return c.typeName;case 228:return Hu(c.expression)?c.expression:void 0;case 79:case 161:return c}}e.getEntityNameFromTypeNode=no;function $o(c){switch(c.kind){case 210:return c.tag;case 280:case 279:return c.tagName;default:return c.expression}}e.getInvokedExpression=$o;function Pr(c,te,xr){if(e.isNamedDeclaration(c)&&e.isPrivateIdentifier(c.name))return!1;switch(c.kind){case 257:return!0;case 167:return te.kind===257;case 172:case 173:case 169:return c.body!==void 0&&te.kind===257;case 164:return te.body!==void 0&&(te.kind===171||te.kind===169||te.kind===173)&&xr.kind===257}return!1}e.nodeCanBeDecorated=Pr;function xi(c,te,xr){return c.decorators!==void 0&&Pr(c,te,xr)}e.nodeIsDecorated=xi;function St(c,te,xr){return xi(c,te,xr)||pa(c,te)}e.nodeOrChildIsDecorated=St;function pa(c,te){switch(c.kind){case 257:return e.some(c.members,function(xr){return St(xr,c,te)});case 169:case 173:case 171:return e.some(c.parameters,function(xr){return xi(xr,c,te)});default:return!1}}e.childIsDecorated=pa;function dn(c){if(xi(c))return!0;var te=Nu(c);return!!te&&pa(te,c)}e.classOrConstructorParameterIsDecorated=dn;function Bn(c){var te=c.parent;return te.kind===280||te.kind===279||te.kind===281?te.tagName===c:!1}e.isJSXTagName=Bn;function Qe(c){switch(c.kind){case 106:case 104:case 110:case 95:case 13:case 204:case 205:case 206:case 207:case 208:case 209:case 210:case 229:case 211:case 230:case 212:case 213:case 226:case 214:case 217:case 215:case 216:case 219:case 220:case 221:case 222:case 225:case 223:case 227:case 278:case 279:case 282:case 224:case 218:case 231:return!0;case 161:for(;c.parent.kind===161;)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Bn(c);case 311:for(;e.isJSDocMemberName(c.parent);)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Bn(c);case 80:return e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===101;case 79:if(c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Bn(c))return!0;case 8:case 9:case 10:case 14:case 108:return Gr(c);default:return!1}}e.isExpressionNode=Qe;function Gr(c){var te=c.parent;switch(te.kind){case 254:case 164:case 167:case 166:case 299:case 296:case 203:return te.initializer===c;case 238:case 239:case 240:case 241:case 247:case 248:case 249:case 289:case 251:return te.expression===c;case 242:var xr=te;return xr.initializer===c&&xr.initializer.kind!==255||xr.condition===c||xr.incrementor===c;case 243:case 244:var ei=te;return ei.initializer===c&&ei.initializer.kind!==255||ei.expression===c;case 211:case 229:return c===te.expression;case 233:return c===te.expression;case 162:return c===te.expression;case 165:case 288:case 287:case 298:return!0;case 228:return te.expression===c&&!Dt(te);case 297:return te.objectAssignmentInitializer===c;default:return Qe(te)}}e.isInExpressionContext=Gr;function S(c){for(;c.kind===161||c.kind===79;)c=c.parent;return c.kind===181}e.isPartOfTypeQuery=S;function Ce(c){return e.isNamespaceExport(c)&&!!c.parent.moduleSpecifier}e.isNamespaceReexportDeclaration=Ce;function qe(c){return c.kind===265&&c.moduleReference.kind===277}e.isExternalModuleImportEqualsDeclaration=qe;function br(c){return e.Debug.assert(qe(c)),c.moduleReference.expression}e.getExternalModuleImportEqualsDeclarationExpression=br;function Zr(c){return Go(c)&&Xa(c.initializer).arguments[0]}e.getExternalModuleRequireArgument=Zr;function Si(c){return c.kind===265&&c.moduleReference.kind!==277}e.isInternalModuleImportEqualsDeclaration=Si;function Pi(c){return Ct(c)}e.isSourceFileJS=Pi;function Qi(c){return!Ct(c)}e.isSourceFileNotJS=Qi;function Ct(c){return!!c&&!!(c.flags&262144)}e.isInJSFile=Ct;function sa(c){return!!c&&!!(c.flags&67108864)}e.isInJsonFile=sa;function en(c){return!Mr(c)}e.isSourceFileNotJson=en;function Wa(c){return!!c&&!!(c.flags&8388608)}e.isInJSDoc=Wa;function Wn(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)&&c.typeName.escapedText==="Object"&&c.typeArguments&&c.typeArguments.length===2&&(c.typeArguments[0].kind===150||c.typeArguments[0].kind===147)}e.isJSDocIndexSignature=Wn;function mo(c,te){if(c.kind!==208)return!1;var xr=c,ei=xr.expression,bi=xr.arguments;if(ei.kind!==79||ei.escapedText!=="require"||bi.length!==1)return!1;var Ft=bi[0];return!te||e.isStringLiteralLike(Ft)}e.isRequireCall=mo;function So(c){return ys(c,!1)}e.isVariableDeclarationInitializedToRequire=So;function Go(c){return ys(c,!0)}e.isVariableDeclarationInitializedToBareOrAccessedRequire=Go;function ys(c,te){return c.kind===203&&(c=c.parent.parent),e.isVariableDeclaration(c)&&!!c.initializer&&mo(te?Xa(c.initializer):c.initializer,!0)}function Pc(c){return e.isVariableStatement(c)&&c.declarationList.declarations.length>0&&e.every(c.declarationList.declarations,function(te){return So(te)})}e.isRequireVariableStatement=Pc;function Vc(c){return c===39||c===34}e.isSingleOrDoubleQuote=Vc;function Kc(c,te){return Be(te,c).charCodeAt(0)===34}e.isStringDoubleQuoted=Kc;function Xs(c){return e.isBinaryExpression(c)||cr(c)||e.isIdentifier(c)||e.isCallExpression(c)}e.isAssignmentDeclaration=Xs;function pc(c){return Ct(c)&&c.initializer&&e.isBinaryExpression(c.initializer)&&(c.initializer.operatorToken.kind===56||c.initializer.operatorToken.kind===60)&&c.name&&Hu(c.name)&&ce(c.name,c.initializer.left)?c.initializer.right:c.initializer}e.getEffectiveInitializer=pc;function hs(c){var te=pc(c);return te&&Qs(te,nf(c.name))}e.getDeclaredExpandoInitializer=hs;function tc(c,te){return e.forEach(c.properties,function(xr){return e.isPropertyAssignment(xr)&&e.isIdentifier(xr.name)&&xr.name.escapedText==="value"&&xr.initializer&&Qs(xr.initializer,te)})}function ps(c){if(c&&c.parent&&e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63){var te=nf(c.parent.left);return Qs(c.parent.right,te)||js(c.parent.left,c.parent.right,te)}if(c&&e.isCallExpression(c)&&pt(c)){var xr=tc(c.arguments[2],c.arguments[1].text==="prototype");if(xr)return xr}}e.getAssignedExpandoInitializer=ps;function Qs(c,te){if(e.isCallExpression(c)){var xr=po(c.expression);return xr.kind===213||xr.kind===214?c:void 0}if(c.kind===213||c.kind===226||c.kind===214||e.isObjectLiteralExpression(c)&&(c.properties.length===0||te))return c}e.getExpandoInitializer=Qs;function js(c,te,xr){var ei=e.isBinaryExpression(te)&&(te.operatorToken.kind===56||te.operatorToken.kind===60)&&Qs(te.right,xr);if(ei&&ce(c,te.left))return ei}function ds(c){var te=e.isVariableDeclaration(c.parent)?c.parent.name:e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63?c.parent.left:void 0;return te&&Qs(c.right,nf(te))&&Hu(te)&&ce(te,c.left)}e.isDefaultedExpandoInitializer=ds;function Ji(c){if(e.isBinaryExpression(c.parent)){var te=(c.parent.operatorToken.kind===56||c.parent.operatorToken.kind===60)&&e.isBinaryExpression(c.parent.parent)?c.parent.parent:c.parent;if(te.operatorToken.kind===63&&e.isIdentifier(te.left))return te.left}else if(e.isVariableDeclaration(c.parent))return c.parent.name}e.getNameOfExpando=Ji;function ce(c,te){return Jf(c)&&Jf(te)?w_(c)===w_(te):e.isMemberName(c)&&Pt(te)&&(te.expression.kind===108||e.isIdentifier(te.expression)&&(te.expression.escapedText==="window"||te.expression.escapedText==="self"||te.expression.escapedText==="global"))?ce(c,fo(te)):Pt(c)&&Pt(te)?Ao(c)===Ao(te)&&ce(c.expression,te.expression):!1}e.isSameEntityName=ce;function Rr(c){for(;dl(c,!0);)c=c.right;return c}e.getRightMostAssignedExpression=Rr;function yi(c){return e.isIdentifier(c)&&c.escapedText==="exports"}e.isExportsIdentifier=yi;function qi(c){return e.isIdentifier(c)&&c.escapedText==="module"}e.isModuleIdentifier=qi;function je(c){return(e.isPropertyAccessExpression(c)||ga(c))&&qi(c.expression)&&Ao(c)==="exports"}e.isModuleExportsAccessExpression=je;function Hr(c){var te=xs(c);return te===5||Ct(c)?te:0}e.getAssignmentDeclarationKind=Hr;function pt(c){return e.length(c.arguments)===3&&e.isPropertyAccessExpression(c.expression)&&e.isIdentifier(c.expression.expression)&&e.idText(c.expression.expression)==="Object"&&e.idText(c.expression.name)==="defineProperty"&&ns(c.arguments[1])&&jr(c.arguments[0],!0)}e.isBindableObjectDefinePropertyCall=pt;function Pt(c){return e.isPropertyAccessExpression(c)||ga(c)}e.isLiteralLikeAccess=Pt;function ga(c){return e.isElementAccessExpression(c)&&ns(c.argumentExpression)}e.isLiteralLikeElementAccess=ga;function ua(c,te){return e.isPropertyAccessExpression(c)&&(!te&&c.expression.kind===108||e.isIdentifier(c.name)&&jr(c.expression,!0))||Xn(c,te)}e.isBindableStaticAccessExpression=ua;function Xn(c,te){return ga(c)&&(!te&&c.expression.kind===108||Hu(c.expression)||ua(c.expression,!0))}e.isBindableStaticElementAccessExpression=Xn;function jr(c,te){return Hu(c)||ua(c,te)}e.isBindableStaticNameExpression=jr;function fo(c){return e.isPropertyAccessExpression(c)?c.name:c.argumentExpression}e.getNameOrArgument=fo;function xs(c){if(e.isCallExpression(c)){if(!pt(c))return 0;var te=c.arguments[0];return yi(te)||je(te)?8:ua(te)&&Ao(te)==="prototype"?9:7}return c.operatorToken.kind!==63||!cr(c.left)||Fo(Rr(c))?0:jr(c.left.expression,!0)&&Ao(c.left)==="prototype"&&e.isObjectLiteralExpression(Bs(c))?6:Ms(c.left)}function Fo(c){return e.isVoidExpression(c)&&e.isNumericLiteral(c.expression)&&c.expression.text==="0"}function ko(c){if(e.isPropertyAccessExpression(c))return c.name;var te=po(c.argumentExpression);return e.isNumericLiteral(te)||e.isStringLiteralLike(te)?te:c}e.getElementOrPropertyAccessArgumentExpressionOrName=ko;function Ao(c){var te=ko(c);if(te){if(e.isIdentifier(te))return te.escapedText;if(e.isStringLiteralLike(te)||e.isNumericLiteral(te))return e.escapeLeadingUnderscores(te.text)}}e.getElementOrPropertyAccessName=Ao;function Ms(c){if(c.expression.kind===108)return 4;if(je(c))return 2;if(jr(c.expression,!0)){if(nf(c.expression))return 3;for(var te=c;!e.isIdentifier(te.expression);)te=te.expression;var xr=te.expression;if((xr.escapedText==="exports"||xr.escapedText==="module"&&Ao(te)==="exports")&&ua(c))return 1;if(jr(c,!0)||e.isElementAccessExpression(c)&&es(c))return 5}return 0}e.getAssignmentDeclarationPropertyAccessKind=Ms;function Bs(c){for(;e.isBinaryExpression(c.right);)c=c.right;return c.right}e.getInitializerOfBinaryExpression=Bs;function xc(c){return e.isBinaryExpression(c)&&Hr(c)===3}e.isPrototypePropertyAssignment=xc;function su(c){return Ct(c)&&c.parent&&c.parent.kind===238&&(!e.isElementAccessExpression(c)||ga(c))&&!!e.getJSDocTypeTag(c.parent)}e.isSpecialPropertyDeclaration=su;function tl(c,te){var xr=c.valueDeclaration;(!xr||!(te.flags&16777216&&!(xr.flags&16777216))&&Xs(xr)&&!Xs(te)||xr.kind!==te.kind&&Ne(xr))&&(c.valueDeclaration=te)}e.setValueDeclaration=tl;function Zc(c){if(!c||!c.valueDeclaration)return!1;var te=c.valueDeclaration;return te.kind===256||e.isVariableDeclaration(te)&&te.initializer&&e.isFunctionLike(te.initializer)}e.isFunctionSymbol=Zc;function Rf(c){var te,xr;switch(c.kind){case 254:return(te=e.findAncestor(c.initializer,function(ei){return mo(ei,!0)}))===null||te===void 0?void 0:te.arguments[0];case 266:return e.tryCast(c.moduleSpecifier,e.isStringLiteralLike);case 265:return e.tryCast((xr=e.tryCast(c.moduleReference,e.isExternalModuleReference))===null||xr===void 0?void 0:xr.expression,e.isStringLiteralLike);default:e.Debug.assertNever(c)}}e.tryGetModuleSpecifierFromDeclaration=Rf;function al(c){return Jo(c)||e.Debug.failBadSyntaxKind(c.parent)}e.importFromModuleSpecifier=al;function Jo(c){switch(c.parent.kind){case 266:case 272:return c.parent;case 277:return c.parent.parent;case 208:return Vr(c.parent)||mo(c.parent,!1)?c.parent:void 0;case 196:return e.Debug.assert(e.isStringLiteral(c)),e.tryCast(c.parent.parent,e.isImportTypeNode);default:return}}e.tryGetImportFromModuleSpecifier=Jo;function eu(c){switch(c.kind){case 266:case 272:return c.moduleSpecifier;case 265:return c.moduleReference.kind===277?c.moduleReference.expression:void 0;case 200:return vi(c)?c.argument.literal:void 0;case 208:return c.arguments[0];case 261:return c.name.kind===10?c.name:void 0;default:return e.Debug.assertNever(c)}}e.getExternalModuleName=eu;function Ws(c){switch(c.kind){case 266:return c.importClause&&e.tryCast(c.importClause.namedBindings,e.isNamespaceImport);case 265:return c;case 272:return c.exportClause&&e.tryCast(c.exportClause,e.isNamespaceExport);default:return e.Debug.assertNever(c)}}e.getNamespaceDeclarationNode=Ws;function pu(c){return c.kind===266&&!!c.importClause&&!!c.importClause.name}e.isDefaultImport=pu;function Uu(c,te){if(c.name){var xr=te(c);if(xr)return xr}if(c.namedBindings){var xr=e.isNamespaceImport(c.namedBindings)?te(c.namedBindings):e.forEach(c.namedBindings.elements,te);if(xr)return xr}}e.forEachImportClauseDeclaration=Uu;function Ql(c){if(c)switch(c.kind){case 164:case 169:case 168:case 297:case 296:case 167:case 166:return c.questionToken!==void 0}return!1}e.hasQuestionToken=Ql;function xl(c){var te=e.isJSDocFunctionType(c)?e.firstOrUndefined(c.parameters):void 0,xr=e.tryCast(te&&te.name,e.isIdentifier);return!!xr&&xr.escapedText==="new"}e.isJSDocConstructSignature=xl;function Ya(c){return c.kind===345||c.kind===338||c.kind===339}e.isJSDocTypeAlias=Ya;function du(c){return Ya(c)||e.isTypeAliasDeclaration(c)}e.isTypeAlias=du;function vc(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&c.expression.operatorToken.kind===63?Rr(c.expression):void 0}function Kr(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&Hr(c.expression)!==0&&e.isBinaryExpression(c.expression.right)&&(c.expression.right.operatorToken.kind===56||c.expression.right.operatorToken.kind===60)?c.expression.right.right:void 0}function _i(c){switch(c.kind){case 237:var te=Ei(c);return te&&te.initializer;case 167:return c.initializer;case 296:return c.initializer}}e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=_i;function Ei(c){return e.isVariableStatement(c)?e.firstOrUndefined(c.declarationList.declarations):void 0}e.getSingleVariableOfVariableStatement=Ei;function tt(c){return e.isModuleDeclaration(c)&&c.body&&c.body.kind===261?c.body:void 0}function kt(c,te){var xr;Bt(c)&&e.hasInitializer(c)&&e.hasJSDocNodes(c.initializer)&&(xr=e.addRange(xr,bt(c,e.last(c.initializer.jsDoc))));for(var ei=c;ei&&ei.parent;){if(e.hasJSDocNodes(ei)&&(xr=e.addRange(xr,bt(c,e.last(ei.jsDoc)))),ei.kind===164){xr=e.addRange(xr,(te?e.getJSDocParameterTagsNoCache:e.getJSDocParameterTags)(ei));break}if(ei.kind===163){xr=e.addRange(xr,(te?e.getJSDocTypeParameterTagsNoCache:e.getJSDocTypeParameterTags)(ei));break}ei=Xt(ei)}return xr||e.emptyArray}e.getJSDocCommentsAndTags=kt;function bt(c,te){if(e.isJSDoc(te)){var xr=e.filter(te.tags,function(ei){return ia(c,ei)});return te.tags===xr?[te]:xr}return ia(c,te)?[te]:void 0}function ia(c,te){return!e.isJSDocTypeTag(te)||!te.parent||!e.isJSDoc(te.parent)||!e.isParenthesizedExpression(te.parent.parent)||te.parent.parent===c}function Xt(c){var te=c.parent;if(te.kind===296||te.kind===271||te.kind===167||te.kind===238&&c.kind===206||te.kind===247||tt(te)||e.isBinaryExpression(c)&&c.operatorToken.kind===63)return te;if(te.parent&&(Ei(te.parent)===c||e.isBinaryExpression(te)&&te.operatorToken.kind===63))return te.parent;if(te.parent&&te.parent.parent&&(Ei(te.parent.parent)||_i(te.parent.parent)===c||Kr(te.parent.parent)))return te.parent.parent}e.getNextJSDocCommentLocation=Xt;function Za(c){if(c.symbol)return c.symbol;if(!!e.isIdentifier(c.name)){var te=c.name.escapedText,xr=_a(c);if(!!xr){var ei=e.find(xr.parameters,function(bi){return bi.name.kind===79&&bi.name.escapedText===te});return ei&&ei.symbol}}}e.getParameterSymbolFromJSDoc=Za;function bn(c){if(e.isJSDoc(c.parent)&&c.parent.tags){var te=e.find(c.parent.tags,Ya);if(te)return te}return _a(c)}e.getEffectiveContainerForJSDocTemplateTag=bn;function _a(c){var te=qa(c);if(te)return e.isPropertySignature(te)&&te.type&&e.isFunctionLike(te.type)?te.type:e.isFunctionLike(te)?te:void 0}e.getHostSignatureFromJSDoc=_a;function qa(c){var te=rn(c);if(te)return Kr(te)||vc(te)||_i(te)||Ei(te)||tt(te)||te}e.getEffectiveJSDocHost=qa;function rn(c){var te=Jn(c);if(!!te){var xr=te.parent;if(xr&&xr.jsDoc&&te===e.lastOrUndefined(xr.jsDoc))return xr}}e.getJSDocHost=rn;function Jn(c){return e.findAncestor(c.parent,e.isJSDoc)}e.getJSDocRoot=Jn;function Mo(c){var te=c.name.escapedText,xr=c.parent.parent.parent.typeParameters;return xr&&e.find(xr,function(ei){return ei.name.escapedText===te})}e.getTypeParameterFromJsDoc=Mo;function ho(c){var te=e.lastOrUndefined(c.parameters);return!!te&&gs(te)}e.hasRestParameter=ho;function gs(c){var te=e.isJSDocParameterTag(c)?c.typeExpression&&c.typeExpression.type:c.type;return c.dotDotDotToken!==void 0||!!te&&te.kind===318}e.isRestParameter=gs;function Se(c){return!!c.typeArguments}e.hasTypeArguments=Se;var hr;(function(c){c[c.None=0]="None",c[c.Definite=1]="Definite",c[c.Compound=2]="Compound"})(hr=e.AssignmentKind||(e.AssignmentKind={}));function Or(c){for(var te=c.parent;;){switch(te.kind){case 221:var xr=te.operatorToken.kind;return Cf(xr)&&te.left===c?xr===63||Gu(xr)?1:2:0;case 219:case 220:var ei=te.operator;return ei===45||ei===46?2:0;case 243:case 244:return te.initializer===c?1:0;case 212:case 204:case 225:case 230:c=te;break;case 298:c=te.parent;break;case 297:if(te.name!==c)return 0;c=te.parent;break;case 296:if(te.name===c)return 0;c=te.parent;break;default:return 0}te=c.parent}}e.getAssignmentTargetKind=Or;function ki(c){return Or(c)!==0}e.isAssignmentTarget=ki;function dt(c){switch(c.kind){case 235:case 237:case 248:case 239:case 249:case 263:case 289:case 290:case 250:case 242:case 243:case 244:case 240:case 241:case 252:case 292:return!0}return!1}e.isNodeWithPossibleHoistedDeclaration=dt;function la(c){return e.isFunctionExpression(c)||e.isArrowFunction(c)||e.isMethodOrAccessor(c)||e.isFunctionDeclaration(c)||e.isConstructorDeclaration(c)}e.isValueSignatureDeclaration=la;function Oa(c,te){for(;c&&c.kind===te;)c=c.parent;return c}function On(c){return Oa(c,191)}e.walkUpParenthesizedTypes=On;function No(c){return Oa(c,212)}e.walkUpParenthesizedExpressions=No;function jo(c){for(var te;c&&c.kind===191;)te=c,c=c.parent;return[te,c]}e.walkUpParenthesizedTypesAndGetParentAndChild=jo;function po(c,te){var xr=te?17:1;return e.skipOuterExpressions(c,xr)}e.skipParentheses=po;function Gn(c){return c.kind!==206&&c.kind!==207?!1:(c=No(c.parent),c&&c.kind===215)}e.isDeleteTarget=Gn;function $n(c,te){for(;c;){if(c===te)return!0;c=c.parent}return!1}e.isNodeDescendantOf=$n;function Ho(c){return!e.isSourceFile(c)&&!e.isBindingPattern(c)&&e.isDeclaration(c.parent)&&c.parent.name===c}e.isDeclarationName=Ho;function Zo(c){var te=c.parent;switch(c.kind){case 10:case 14:case 8:if(e.isComputedPropertyName(te))return te.parent;case 79:if(e.isDeclaration(te))return te.name===c?te:void 0;if(e.isQualifiedName(te)){var xr=te.parent;return e.isJSDocParameterTag(xr)&&xr.name===te?xr:void 0}else{var ei=te.parent;return e.isBinaryExpression(ei)&&Hr(ei)!==0&&(ei.left.symbol||ei.symbol)&&e.getNameOfDeclaration(ei)===c?ei:void 0}case 80:return e.isDeclaration(te)&&te.name===c?te:void 0;default:return}}e.getDeclarationFromName=Zo;function Es(c){return ns(c)&&c.parent.kind===162&&e.isDeclaration(c.parent.parent)}e.isLiteralComputedPropertyDeclarationName=Es;function yc(c){var te=c.parent;switch(te.kind){case 167:case 166:case 169:case 168:case 172:case 173:case 299:case 296:case 206:return te.name===c;case 161:return te.right===c;case 203:case 270:return te.propertyName===c;case 275:case 285:case 279:case 280:case 281:return!0}return!1}e.isIdentifierName=yc;function Xr(c){return c.kind===265||c.kind===264||c.kind===267&&!!c.name||c.kind===268||c.kind===274||c.kind===270||c.kind===275||c.kind===271&&zu(c)?!0:Ct(c)&&(e.isBinaryExpression(c)&&Hr(c)===2&&zu(c)||e.isPropertyAccessExpression(c)&&e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===63&&Ic(c.parent.right))}e.isAliasSymbolDeclaration=Xr;function Ls(c){switch(c.parent.kind){case 267:case 270:case 268:case 275:case 271:case 265:case 274:return c.parent;case 161:do c=c.parent;while(c.parent.kind===161);return Ls(c)}}e.getAliasDeclarationFromName=Ls;function Ic(c){return Hu(c)||e.isClassExpression(c)}e.isAliasableExpression=Ic;function zu(c){var te=vf(c);return Ic(te)}e.exportAssignmentIsAlias=zu;function vf(c){return e.isExportAssignment(c)?c.expression:c.right}e.getExportAssignmentExpression=vf;function P_(c){return c.kind===297?c.name:c.kind===296?c.initializer:c.parent.right}e.getPropertyAssignmentAliasLikeExpression=P_;function El(c){var te=vp(c);if(te&&Ct(c)){var xr=e.getJSDocAugmentsTag(c);if(xr)return xr.class}return te}e.getEffectiveBaseTypeNode=El;function vp(c){var te=Yl(c.heritageClauses,94);return te&&te.types.length>0?te.types[0]:void 0}e.getClassExtendsHeritageElement=vp;function oo(c){if(Ct(c))return e.getJSDocImplementsTags(c).map(function(xr){return xr.class});var te=Yl(c.heritageClauses,117);return te==null?void 0:te.types}e.getEffectiveImplementsTypeNodes=oo;function I_(c){return e.isInterfaceDeclaration(c)?yp(c)||e.emptyArray:e.isClassLike(c)&&e.concatenate(e.singleElementArray(El(c)),oo(c))||e.emptyArray}e.getAllSuperTypeNodes=I_;function yp(c){var te=Yl(c.heritageClauses,94);return te?te.types:void 0}e.getInterfaceBaseTypeNodes=yp;function Yl(c,te){if(c)for(var xr=0,ei=c;xr=0)return an[To]}}function Ft(mn){var an;mn.file?(an=xr.get(mn.file.fileName),an||(an=[],xr.set(mn.file.fileName,an),e.insertSorted(te,mn.file.fileName,e.compareStringsCaseSensitive))):(ei&&(ei=!1,c=c.slice()),an=c),e.insertSorted(an,mn,Qg)}function ot(){return ei=!0,c}function xa(mn){if(mn)return xr.get(mn)||[];var an=e.flatMapToMutable(te,function(To){return xr.get(To)});return c.length&&an.unshift.apply(an,c),an}}e.createDiagnosticCollection=kp;var mu=/\$\{/g;function gd(c){return c.replace(mu,"\\${")}function hf(c){return c&&!!(e.isNoSubstitutionTemplateLiteral(c)?c.templateFlags:c.head.templateFlags||e.some(c.templateSpans,function(te){return!!te.literal.templateFlags}))}e.hasInvalidEscape=hf;var $l=/[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,Uf=/[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,L_=/\r\n|[\\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/g,l_=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 f_(c){var te=c.toString(16).toUpperCase(),xr=("0000"+te).slice(-4);return"\\u"+xr}function md(c,te,xr){if(c.charCodeAt(0)===0){var ei=xr.charCodeAt(te+c.length);return ei>=48&&ei<=57?"\\x00":"\\0"}return l_.get(c)||f_(c.charCodeAt(0))}function ks(c,te){var xr=te===96?L_:te===39?Uf:$l;return c.replace(xr,md)}e.escapeString=ks;var Wu=/[^\u0000-\u007F]/g;function Zl(c,te){return c=ks(c,te),Wu.test(c)?c.replace(Wu,function(xr){return f_(xr.charCodeAt(0))}):c}e.escapeNonAsciiString=Zl;var R_=/[\"\u0000-\u001f\u2028\u2029\u0085]/g,kl=/[\'\u0000-\u001f\u2028\u2029\u0085]/g,__=new e.Map(e.getEntries({'"':""","'":"'"}));function zd(c){var te=c.toString(16).toUpperCase();return"&#x"+te+";"}function Al(c){return c.charCodeAt(0)===0?"�":__.get(c)||zd(c.charCodeAt(0))}function wc(c,te){var xr=te===39?kl:R_;return c.replace(xr,Al)}e.escapeJsxAttributeString=wc;function qu(c){var te=c.length;return te>=2&&c.charCodeAt(0)===c.charCodeAt(te-1)&&Vu(c.charCodeAt(0))?c.substring(1,te-1):c}e.stripQuotes=qu;function Vu(c){return c===39||c===34||c===96}function ef(c){var te=c.charCodeAt(0);return te>=97&&te<=122||e.stringContains(c,"-")||e.stringContains(c,":")}e.isIntrinsicJsxName=ef;var sl=[""," "];function p_(c){for(var te=sl[1],xr=sl.length;xr<=c;xr++)sl.push(sl[xr-1]+te);return sl[c]}e.getIndentString=p_;function Df(){return sl[1].length}e.getIndentSize=Df;function Ec(){return e.stringContains(e.version,"-dev")||e.stringContains(e.version,"-insiders")}e.isNightly=Ec;function Zn(c){var te,xr,ei,bi,Ft,ot=!1;function xa(Xo){var jl=e.computeLineStarts(Xo);jl.length>1?(bi=bi+jl.length-1,Ft=te.length-Xo.length+e.last(jl),ei=Ft-te.length===0):ei=!1}function mn(Xo){Xo&&Xo.length&&(ei&&(Xo=p_(xr)+Xo,ei=!1),te+=Xo,xa(Xo))}function an(Xo){Xo&&(ot=!1),mn(Xo)}function To(Xo){Xo&&(ot=!0),mn(Xo)}function Hn(){te="",xr=0,ei=!0,bi=0,Ft=0,ot=!1}function ss(Xo){Xo!==void 0&&(te+=Xo,xa(Xo),ot=!1)}function cs(Xo){Xo&&Xo.length&&an(Xo)}function ws(Xo){(!ei||Xo)&&(te+=c,bi++,Ft=te.length,ei=!0,ot=!1)}function nu(){return ei?te.length:te.length+c.length}return Hn(),{write:an,rawWrite:ss,writeLiteral:cs,writeLine:ws,increaseIndent:function(){xr++},decreaseIndent:function(){xr--},getIndent:function(){return xr},getTextPos:function(){return te.length},getLine:function(){return bi},getColumn:function(){return ei?xr*Df():te.length-Ft},getText:function(){return te},isAtStartOfLine:function(){return ei},hasTrailingComment:function(){return ot},hasTrailingWhitespace:function(){return!!te.length&&e.isWhiteSpaceLike(te.charCodeAt(te.length-1))},clear:Hn,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:function(){return!1},writeKeyword:an,writeOperator:an,writeParameter:an,writeProperty:an,writePunctuation:an,writeSpace:an,writeStringLiteral:an,writeSymbol:function(Xo,jl){return an(Xo)},writeTrailingSemicolon:an,writeComment:To,getTextPosWithWriteLine:nu}}e.createTextWriter=Zn;function os(c){var te=!1;function xr(){te&&(c.writeTrailingSemicolon(";"),te=!1)}return Ke(Ke({},c),{writeTrailingSemicolon:function(){te=!0},writeLiteral:function(ei){xr(),c.writeLiteral(ei)},writeStringLiteral:function(ei){xr(),c.writeStringLiteral(ei)},writeSymbol:function(ei,bi){xr(),c.writeSymbol(ei,bi)},writePunctuation:function(ei){xr(),c.writePunctuation(ei)},writeKeyword:function(ei){xr(),c.writeKeyword(ei)},writeOperator:function(ei){xr(),c.writeOperator(ei)},writeParameter:function(ei){xr(),c.writeParameter(ei)},writeSpace:function(ei){xr(),c.writeSpace(ei)},writeProperty:function(ei){xr(),c.writeProperty(ei)},writeComment:function(ei){xr(),c.writeComment(ei)},writeLine:function(){xr(),c.writeLine()},increaseIndent:function(){xr(),c.increaseIndent()},decreaseIndent:function(){xr(),c.decreaseIndent()}})}e.getTrailingSemicolonDeferringWriter=os;function Ps(c){return c.useCaseSensitiveFileNames?c.useCaseSensitiveFileNames():!1}e.hostUsesCaseSensitiveFileNames=Ps;function d_(c){return e.createGetCanonicalFileName(Ps(c))}e.hostGetCanonicalFileName=d_;function Gc(c,te,xr){return te.moduleName||Gt(c,te.fileName,xr&&xr.fileName)}e.getResolvedExternalModuleName=Gc;function B_(c,te){return c.getCanonicalFileName(e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()))}function vu(c,te,xr){var ei=te.getExternalModuleFileFromDeclaration(xr);if(!(!ei||ei.isDeclarationFile)){var bi=eu(xr);if(!(bi&&e.isStringLiteralLike(bi)&&!e.pathIsRelative(bi.text)&&B_(c,ei.path).indexOf(B_(c,e.ensureTrailingDirectorySeparator(c.getCommonSourceDirectory())))===-1))return Gc(c,ei)}}e.getExternalModuleNameFromDeclaration=vu;function Gt(c,te,xr){var ei=function(mn){return c.getCanonicalFileName(mn)},bi=e.toPath(xr?e.getDirectoryPath(xr):c.getCommonSourceDirectory(),c.getCurrentDirectory(),ei),Ft=e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()),ot=e.getRelativePathToDirectoryOrUrl(bi,Ft,bi,ei,!1),xa=Gd(ot);return xr?e.ensurePathIsNonModuleName(xa):xa}e.getExternalModuleNameFromPath=Gt;function As(c,te,xr){var ei=te.getCompilerOptions(),bi;return ei.outDir?bi=Gd(Dc(c,te,ei.outDir)):bi=Gd(c),bi+xr}e.getOwnEmitOutputFilePath=As;function vn(c,te){return Nl(c,te.getCompilerOptions(),te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(xr){return te.getCanonicalFileName(xr)})}e.getDeclarationEmitOutputFilePath=vn;function Nl(c,te,xr,ei,bi){var Ft=te.declarationDir||te.outDir,ot=Ft?Cc(c,Ft,xr,ei,bi):c,xa=cl(ot);return Gd(ot)+xa}e.getDeclarationEmitOutputFilePathWorker=Nl;function cl(c){return e.fileExtensionIsOneOf(c,[".mjs",".mts"])?".d.mts":e.fileExtensionIsOneOf(c,[".cjs",".cts"])?".d.cts":e.fileExtensionIsOneOf(c,[".json"])?".json.d.ts":".d.ts"}e.getDeclarationEmitExtensionForPath=cl;function rf(c){return e.fileExtensionIsOneOf(c,[".d.mts",".mjs",".mts"])?[".mts",".mjs"]:e.fileExtensionIsOneOf(c,[".d.cts",".cjs",".cts"])?[".cts",".cjs"]:e.fileExtensionIsOneOf(c,[".json.d.ts"])?[".json"]:[".tsx",".ts",".jsx",".js"]}e.getPossibleOriginalInputExtensionForExtension=rf;function Ut(c){return c.outFile||c.out}e.outFile=Ut;function Ds(c,te){var xr,ei;if(!!c.paths)return(xr=c.baseUrl)!==null&&xr!==void 0?xr:e.Debug.checkDefined(c.pathsBasePath||((ei=te.getCurrentDirectory)===null||ei===void 0?void 0:ei.call(te)),"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.")}e.getPathsBasePath=Ds;function bf(c,te,xr){var ei=c.getCompilerOptions();if(Ut(ei)){var bi=Ja(ei),Ft=ei.emitDeclarationOnly||bi===e.ModuleKind.AMD||bi===e.ModuleKind.System;return e.filter(c.getSourceFiles(),function(xa){return(Ft||!e.isExternalModule(xa))&&bs(xa,c,xr)})}else{var ot=te===void 0?c.getSourceFiles():[te];return e.filter(ot,function(xa){return bs(xa,c,xr)})}}e.getSourceFilesToEmit=bf;function bs(c,te,xr){var ei=te.getCompilerOptions();return!(ei.noEmitForJsFiles&&Pi(c))&&!c.isDeclarationFile&&!te.isSourceFileFromExternalLibrary(c)&&(xr||!(Mr(c)&&te.getResolvedProjectReferenceToRedirect(c.fileName))&&!te.isSourceOfProjectReferenceRedirect(c.fileName))}e.sourceFileMayBeEmitted=bs;function Dc(c,te,xr){return Cc(c,xr,te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(ei){return te.getCanonicalFileName(ei)})}e.getSourceFilePathInNewDir=Dc;function Cc(c,te,xr,ei,bi){var Ft=e.getNormalizedAbsolutePath(c,xr),ot=bi(Ft).indexOf(bi(ei))===0;return Ft=ot?Ft.substring(ei.length):Ft,e.combinePaths(te,Ft)}e.getSourceFilePathInNewDirWorker=Cc;function ac(c,te,xr,ei,bi,Ft,ot){c.writeFile(xr,ei,bi,function(xa){te.add(qd(e.Diagnostics.Could_not_write_file_0_Colon_1,xr,xa))},Ft,ot)}e.writeFile=ac;function Pl(c,te,xr){if(c.length>e.getRootLength(c)&&!xr(c)){var ei=e.getDirectoryPath(c);Pl(ei,te,xr),te(c)}}function Il(c,te,xr,ei,bi,Ft){try{ei(c,te,xr)}catch{Pl(e.getDirectoryPath(e.normalizePath(c)),bi,Ft),ei(c,te,xr)}}e.writeFileEnsuringDirectories=Il;function zf(c,te){var xr=e.getLineStarts(c);return e.computeLineOfPosition(xr,te)}e.getLineOfLocalPosition=zf;function ul(c,te){return e.computeLineOfPosition(c,te)}e.getLineOfLocalPositionFromLineMap=ul;function Nu(c){return e.find(c.members,function(te){return e.isConstructorDeclaration(te)&&j(te.body)})}e.getFirstConstructorWithBody=Nu;function Us(c){if(c&&c.parameters.length>0){var te=c.parameters.length===2&&Sf(c.parameters[0]);return c.parameters[te?1:0]}}e.getSetAccessorValueParameter=Us;function Ap(c){var te=Us(c);return te&&te.type}e.getSetAccessorTypeAnnotationNode=Ap;function Wf(c){if(c.parameters.length&&!e.isJSDocSignature(c)){var te=c.parameters[0];if(Sf(te))return te}}e.getThisParameter=Wf;function Sf(c){return ll(c.name)}e.parameterIsThisKeyword=Sf;function ll(c){return!!c&&c.kind===79&&j_(c)}e.isThisIdentifier=ll;function J_(c){if(!ll(c))return!1;for(;e.isQualifiedName(c.parent)&&c.parent.left===c;)c=c.parent;return c.parent.kind===181}e.isThisInTypeQuery=J_;function j_(c){return c.originalKeywordKind===108}e.identifierIsThisKeyword=j_;function U_(c,te){var xr,ei,bi,Ft;return hc(te)?(xr=te,te.kind===172?bi=te:te.kind===173?Ft=te:e.Debug.fail("Accessor has wrong kind")):e.forEach(c,function(ot){if(e.isAccessor(ot)&&Tf(ot)===Tf(te)){var xa=u_(ot.name),mn=u_(te.name);xa===mn&&(xr?ei||(ei=ot):xr=ot,ot.kind===172&&!bi&&(bi=ot),ot.kind===173&&!Ft&&(Ft=ot))}}),{firstAccessor:xr,secondAccessor:ei,getAccessor:bi,setAccessor:Ft}}e.getAllAccessorDeclarations=U_;function iu(c){if(!(!Ct(c)&&e.isFunctionDeclaration(c))){var te=c.type;return te||!Ct(c)?te:e.isJSDocPropertyLikeTag(c)?c.typeExpression&&c.typeExpression.type:e.getJSDocType(c)}}e.getEffectiveTypeAnnotationNode=iu;function vd(c){return c.type}e.getTypeAnnotationNode=vd;function qf(c){return e.isJSDocSignature(c)?c.type&&c.type.typeExpression&&c.type.typeExpression.type:c.type||(Ct(c)?e.getJSDocReturnType(c):void 0)}e.getEffectiveReturnTypeNode=qf;function dc(c){return e.flatMap(e.getJSDocTags(c),function(te){return Pu(te)?te.typeParameters:void 0})}e.getJSDocTypeParameterDeclarations=dc;function Pu(c){return e.isJSDocTemplateTag(c)&&!(c.parent.kind===320&&c.parent.tags.some(Ya))}function wl(c){var te=Us(c);return te&&iu(te)}e.getEffectiveSetAccessorTypeAnnotationNode=wl;function Iu(c,te,xr,ei){so(c,te,xr.pos,ei)}e.emitNewLineBeforeLeadingComments=Iu;function so(c,te,xr,ei){ei&&ei.length&&xr!==ei[0].pos&&ul(c,xr)!==ul(c,ei[0].pos)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentsOfPosition=so;function Et(c,te,xr,ei){xr!==ei&&ul(c,xr)!==ul(c,ei)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentOfPosition=Et;function Ys(c,te,xr,ei,bi,Ft,ot,xa){if(ei&&ei.length>0){bi&&xr.writeSpace(" ");for(var mn=!1,an=0,To=ei;an=ws+2)break}an.push(cs),To=cs}if(an.length){var ws=ul(te,e.last(an).end),Xo=ul(te,e.skipTrivia(c,bi.pos));Xo>=ws+2&&(Iu(te,xr,bi,xa),Ys(c,te,xr,an,!1,!0,Ft,ei),mn={nodePos:bi.pos,detachedCommentEndPos:e.last(an).end})}}return mn;function jl(Y_){return ue(c,Y_.pos)}}e.emitDetachedComments=Ku;function Np(c,te,xr,ei,bi,Ft){if(c.charCodeAt(ei+1)===42)for(var ot=e.computeLineAndCharacterOfPosition(te,ei),xa=te.length,mn=void 0,an=ei,To=ot.line;an0){var ws=cs%Df(),nu=p_((cs-ws)/Df());for(xr.rawWrite(nu);ws;)xr.rawWrite(" "),ws--}else xr.rawWrite("")}Pp(c,bi,xr,Ft,an,Hn),an=Hn}else xr.writeComment(c.substring(ei,bi))}e.writeCommentRange=Np;function Pp(c,te,xr,ei,bi,Ft){var ot=Math.min(te,Ft-1),xa=e.trimString(c.substring(bi,ot));xa?(xr.writeComment(xa),ot!==te&&xr.writeLine()):xr.rawWrite(ei)}function nc(c,te,xr){for(var ei=0;te=0&&c.kind<=160?0:(c.modifierFlagsCache&536870912||(c.modifierFlagsCache=Ef(c)|536870912),te&&!(c.modifierFlagsCache&4096)&&(xr||Ct(c))&&c.parent&&(c.modifierFlagsCache|=rs(c)|4096),c.modifierFlagsCache&-536875009)}function xf(c){return tf(c,!0)}e.getEffectiveModifierFlags=xf;function z_(c){return tf(c,!0,!0)}e.getEffectiveModifierFlagsAlwaysIncludeJSDoc=z_;function Oc(c){return tf(c,!1)}e.getSyntacticModifierFlags=Oc;function rs(c){var te=0;return!!c.parent&&!e.isParameter(c)&&(Ct(c)&&(e.getJSDocPublicTagNoCache(c)&&(te|=4),e.getJSDocPrivateTagNoCache(c)&&(te|=8),e.getJSDocProtectedTagNoCache(c)&&(te|=16),e.getJSDocReadonlyTagNoCache(c)&&(te|=64),e.getJSDocOverrideTagNoCache(c)&&(te|=16384)),e.getJSDocDeprecatedTagNoCache(c)&&(te|=8192)),te}function Op(c){return Ef(c)|rs(c)}e.getEffectiveModifierFlagsNoCache=Op;function Ef(c){var te=Fl(c.modifiers);return(c.flags&4||c.kind===79&&c.isInJSDocNamespace)&&(te|=1),te}e.getSyntacticModifierFlagsNoCache=Ef;function Fl(c){var te=0;if(c)for(var xr=0,ei=c;xr=63&&c<=78}e.isAssignmentOperator=Cf;function W_(c){var te=g_(c);return te&&!te.isImplements?te.class:void 0}e.tryGetClassExtendingExpressionWithTypeArguments=W_;function g_(c){return e.isExpressionWithTypeArguments(c)&&e.isHeritageClause(c.parent)&&e.isClassLike(c.parent.parent)?{class:c.parent.parent,isImplements:c.parent.token===117}:void 0}e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=g_;function dl(c,te){return e.isBinaryExpression(c)&&(te?c.operatorToken.kind===63:Cf(c.operatorToken.kind))&&e.isLeftHandSideExpression(c.left)}e.isAssignmentExpression=dl;function gl(c){return dl(c.parent)&&c.parent.left===c}e.isLeftHandSideOfAssignment=gl;function Vf(c){if(dl(c,!0)){var te=c.left.kind;return te===205||te===204}return!1}e.isDestructuringAssignment=Vf;function Fc(c){return W_(c)!==void 0}e.isExpressionWithTypeArgumentsInClassExtendsClause=Fc;function Hu(c){return c.kind===79||Ml(c)}e.isEntityNameExpression=Hu;function af(c){switch(c.kind){case 79:return c;case 161:do c=c.left;while(c.kind!==79);return c;case 206:do c=c.expression;while(c.kind!==79);return c}}e.getFirstIdentifier=af;function tn(c){return c.kind===79||c.kind===108||c.kind===106||c.kind===231||c.kind===206&&tn(c.expression)||c.kind===212&&tn(c.expression)}e.isDottedName=tn;function Ml(c){return e.isPropertyAccessExpression(c)&&e.isIdentifier(c.name)&&Hu(c.expression)}e.isPropertyAccessEntityNameExpression=Ml;function Ot(c){if(e.isPropertyAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0)return te+"."+Xe(c.name)}else if(e.isElementAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0&&e.isPropertyName(c.argumentExpression))return te+"."+u_(c.argumentExpression)}else if(e.isIdentifier(c))return e.unescapeLeadingUnderscores(c.escapedText)}e.tryGetPropertyAccessOrIdentifierToString=Ot;function nf(c){return ua(c)&&Ao(c)==="prototype"}e.isPrototypeAccess=nf;function q_(c){return c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c}e.isRightSideOfQualifiedNameOrPropertyAccess=q_;function Kf(c){return e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isElementAccessExpression(c.parent)&&c.parent.argumentExpression===c}e.isRightSideOfAccessExpression=Kf;function Rp(c){return e.isQualifiedName(c.parent)&&c.parent.right===c||e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isJSDocMemberName(c.parent)&&c.parent.right===c}e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName=Rp;function yd(c){return c.kind===205&&c.properties.length===0}e.isEmptyObjectLiteral=yd;function m_(c){return c.kind===204&&c.elements.length===0}e.isEmptyArrayLiteral=m_;function Ll(c){if(!(!hd(c)||!c.declarations))for(var te=0,xr=c.declarations;te0&&gc(c.declarations[0],512)}function v_(c){return e.find(oh,function(te){return e.fileExtensionIs(c,te)})}e.tryExtractTSExtension=v_;function Bp(c){for(var te=[],xr=c.length,ei=0;ei>6|192),te.push(bi&63|128)):bi<65536?(te.push(bi>>12|224),te.push(bi>>6&63|128),te.push(bi&63|128)):bi<131072?(te.push(bi>>18|240),te.push(bi>>12&63|128),te.push(bi>>6&63|128),te.push(bi&63|128)):e.Debug.assert(!1,"Unexpected code point")}return te}var Xu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Xc(c){for(var te="",xr=Bp(c),ei=0,bi=xr.length,Ft,ot,xa,mn;ei>2,ot=(xr[ei]&3)<<4|xr[ei+1]>>4,xa=(xr[ei+1]&15)<<2|xr[ei+2]>>6,mn=xr[ei+2]&63,ei+1>=bi?xa=mn=64:ei+2>=bi&&(mn=64),te+=Xu.charAt(Ft)+Xu.charAt(ot)+Xu.charAt(xa)+Xu.charAt(mn),ei+=3;return te}e.convertToBase64=Xc;function Gf(c){for(var te="",xr=0,ei=c.length;xr>4&3,To=(ot&15)<<4|xa>>2&15,Hn=(xa&3)<<6|mn&63;To===0&&xa!==0?ei.push(an):Hn===0&&mn!==0?ei.push(an,To):ei.push(an,To,Hn),bi+=4}return Gf(ei)}e.base64decode=wu;function V_(c,te){try{var xr=te.readFile(c);if(!xr)return{};var ei=e.parseConfigFileTextToJson(c,xr);return ei.error?{}:ei.config}catch{return{}}}e.readJson=V_;function yu(c,te){return!te.directoryExists||te.directoryExists(c)}e.directoryProbablyExists=yu;var v=`\r +`,sr=` +`;function fi(c,te){switch(c.newLine){case 0:return v;case 1:return sr}return te?te():e.sys?e.sys.newLine:v}e.getNewLineCharacter=fi;function zi(c,te){return te===void 0&&(te=c),e.Debug.assert(te>=c||te===-1),{pos:c,end:te}}e.createRange=zi;function Sa(c,te){return zi(c.pos,te)}e.moveRangeEnd=Sa;function da(c,te){return zi(te,c.end)}e.moveRangePos=da;function Ha(c){return c.decorators&&c.decorators.length>0?da(c,c.decorators.end):c}e.moveRangePastDecorators=Ha;function ta(c){return c.modifiers&&c.modifiers.length>0?da(c,c.modifiers.end):Ha(c)}e.moveRangePastModifiers=ta;function nn(c){return c.pos===c.end}e.isCollapsedRange=nn;function Wo(c,te){return zi(c,c+e.tokenToString(te).length)}e.createTokenRange=Wo;function Lo(c,te){return is(c,c,te)}e.rangeIsOnSingleLine=Lo;function oc(c,te,xr){return cf(uf(c,xr,!1),uf(te,xr,!1),xr)}e.rangeStartPositionsAreOnSameLine=oc;function uu(c,te,xr){return cf(c.end,te.end,xr)}e.rangeEndPositionsAreOnSameLine=uu;function is(c,te,xr){return cf(uf(c,xr,!1),te.end,xr)}e.rangeStartIsOnSameLineAsRangeEnd=is;function au(c,te,xr){return cf(c.end,uf(te,xr,!1),xr)}e.rangeEndIsOnSameLineAsRangeStart=au;function Ou(c,te,xr,ei){var bi=uf(te,xr,ei);return e.getLinesBetweenPositions(xr,c.end,bi)}e.getLinesBetweenRangeEndAndRangeStart=Ou;function sf(c,te,xr){return e.getLinesBetweenPositions(xr,c.end,te.end)}e.getLinesBetweenRangeEndPositions=sf;function lu(c,te){return!cf(c.pos,c.end,te)}e.isNodeArrayMultiLine=lu;function cf(c,te,xr){return e.getLinesBetweenPositions(xr,c,te)===0}e.positionsAreOnSameLine=cf;function uf(c,te,xr){return Jl(c.pos)?-1:e.skipTrivia(te.text,c.pos,!1,xr)}e.getStartPositionOfRange=uf;function K_(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei),Ft=Hf(bi,te,xr);return e.getLinesBetweenPositions(xr,Ft!=null?Ft:te,bi)}e.getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter=K_;function Jp(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei);return e.getLinesBetweenPositions(xr,c,Math.min(te,bi))}e.getLinesBetweenPositionAndNextNonWhitespaceCharacter=Jp;function Hf(c,te,xr){for(te===void 0&&(te=0);c-- >te;)if(!e.isWhiteSpaceLike(xr.text.charCodeAt(c)))return c}function kc(c){var te=e.getParseTreeNode(c);if(te)switch(te.parent.kind){case 260:case 261:return te===te.parent.name}return!1}e.isDeclarationNameOfEnumOrNamespace=kc;function G_(c){return e.filter(c.declarations,Le)}e.getInitializedVariables=G_;function Le(c){return c.initializer!==void 0}function Nr(c){return c.watch&&c.hasOwnProperty("watch")}e.isWatchSet=Nr;function ri(c){c.close()}e.closeFileWatcher=ri;function di(c){return c.flags&33554432?c.checkFlags:0}e.getCheckFlags=di;function Mi(c,te){if(te===void 0&&(te=!1),c.valueDeclaration){var xr=te&&c.declarations&&e.find(c.declarations,function(xa){return xa.kind===173})||c.valueDeclaration,ei=e.getCombinedModifierFlags(xr);return c.parent&&c.parent.flags&32?ei:ei&-29}if(di(c)&6){var bi=c.checkFlags,Ft=bi&1024?8:bi&256?4:16,ot=bi&2048?32:0;return Ft|ot}return c.flags&4194304?36:0}e.getDeclarationModifierFlagsFromSymbol=Mi;function st(c,te){return c.flags&2097152?te.getAliasedSymbol(c):c}e.skipAlias=st;function ra(c){return c.exportSymbol?c.exportSymbol.flags|c.flags:c.flags}e.getCombinedLocalAndExportSymbolFlags=ra;function Ta(c){return In(c)===1}e.isWriteOnlyAccess=Ta;function ha(c){return In(c)!==0}e.isWriteAccess=ha;var Na;(function(c){c[c.Read=0]="Read",c[c.Write=1]="Write",c[c.ReadWrite=2]="ReadWrite"})(Na||(Na={}));function In(c){var te=c.parent;if(!te)return 0;switch(te.kind){case 212:return In(te);case 220:case 219:var xr=te.operator;return xr===45||xr===46?xa():0;case 221:var ei=te,bi=ei.left,Ft=ei.operatorToken;return bi===c&&Cf(Ft.kind)?Ft.kind===63?1:xa():0;case 206:return te.name!==c?0:In(te);case 296:{var ot=In(te.parent);return c===te.name?qo(ot):ot}case 297:return c===te.objectAssignmentInitializer?0:In(te.parent);case 204:return In(te);default:return 0}function xa(){return te.parent&&No(te.parent).kind===238?1:2}}function qo(c){switch(c){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(c)}}function co(c,te){if(!c||!te||Object.keys(c).length!==Object.keys(te).length)return!1;for(var xr in c)if(typeof c[xr]=="object"){if(!co(c[xr],te[xr]))return!1}else if(typeof c[xr]!="function"&&c[xr]!==te[xr])return!1;return!0}e.compareDataObjects=co;function ts(c,te){c.forEach(te),c.clear()}e.clearMap=ts;function vs(c,te,xr){var ei=xr.onDeleteValue,bi=xr.onExistingValue;c.forEach(function(Ft,ot){var xa=te.get(ot);xa===void 0?(c.delete(ot),ei(Ft,ot)):bi&&bi(Ft,xa,ot)})}e.mutateMapSkippingNewValues=vs;function Ac(c,te,xr){vs(c,te,xr);var ei=xr.createNewValue;te.forEach(function(bi,Ft){c.has(Ft)||c.set(Ft,ei(Ft,bi))})}e.mutateMap=Ac;function Is(c){if(c.flags&32){var te=Qu(c);return!!te&&gc(te,128)}return!1}e.isAbstractConstructorSymbol=Is;function Qu(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(e.isClassLike)}e.getClassLikeDeclarationOfSymbol=Qu;function sc(c){return c.flags&3899393?c.objectFlags:0}e.getObjectFlags=sc;function bc(c,te){return te.getSignaturesOfType(c,0).length!==0||te.getSignaturesOfType(c,1).length!==0}e.typeHasCallOrConstructSignatures=bc;function Mc(c,te){return!!e.forEachAncestorDirectory(c,function(xr){return te(xr)?!0:void 0})}e.forSomeAncestorDirectory=Mc;function Yu(c){return!!c&&!!c.declarations&&!!c.declarations[0]&&e.isNamespaceExportDeclaration(c.declarations[0])}e.isUMDExportSymbol=Yu;function Rl(c){var te=c.moduleSpecifier;return e.isStringLiteral(te)?te.text:Ee(te)}e.showModuleSpecifier=Rl;function Lc(c){var te;return e.forEachChild(c,function(xr){j(xr)&&(te=xr)},function(xr){for(var ei=xr.length-1;ei>=0;ei--)if(j(xr[ei])){te=xr[ei];break}}),te}e.getLastChild=Lc;function _(c,te,xr){return xr===void 0&&(xr=!0),c.has(te)?!1:(c.set(te,xr),!0)}e.addToSeen=_;function W(c){return e.isClassLike(c)||e.isInterfaceDeclaration(c)||e.isTypeLiteralNode(c)}e.isObjectTypeDeclaration=W;function Te(c){return c>=177&&c<=200||c===130||c===155||c===147||c===158||c===148||c===133||c===150||c===151||c===114||c===153||c===143||c===228||c===312||c===313||c===314||c===315||c===316||c===317||c===318}e.isTypeNodeKind=Te;function cr(c){return c.kind===206||c.kind===207}e.isAccessExpression=cr;function ni(c){return c.kind===206?c.name:(e.Debug.assert(c.kind===207),c.argumentExpression)}e.getNameOfAccessExpression=ni;function rt(c){switch(c.kind){case"text":case"internal":return!0;default:return!1}}e.isBundleFileTextLike=rt;function yt(c){return c.kind===269||c.kind===273}e.isNamedImportsOrExports=yt;function Xa(c){for(;cr(c);)c=c.expression;return c}e.getLeftmostAccessExpression=Xa;function vo(c,te){if(cr(c.parent)&&Kf(c))return xr(c.parent);function xr(ei){if(ei.kind===206){var bi=te(ei.name);if(bi!==void 0)return bi}else if(ei.kind===207)if(e.isIdentifier(ei.argumentExpression)||e.isStringLiteralLike(ei.argumentExpression)){var bi=te(ei.argumentExpression);if(bi!==void 0)return bi}else return;if(cr(ei.expression))return xr(ei.expression);if(e.isIdentifier(ei.expression))return te(ei.expression)}}e.forEachNameInAccessChainWalkingLeft=vo;function Vs(c,te){for(;;){switch(c.kind){case 220:c=c.operand;continue;case 221:c=c.left;continue;case 222:c=c.condition;continue;case 210:c=c.tag;continue;case 208:if(te)return c;case 229:case 207:case 206:case 230:case 350:c=c.expression;continue}return c}}e.getLeftmostExpression=Vs;function H_(c,te){this.flags=c,this.escapedName=te,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function y_(c,te){this.flags=te,(e.Debug.isDebugging||e.tracing)&&(this.checker=c)}function Dd(c,te){this.flags=te,e.Debug.isDebugging&&(this.checker=c)}function jp(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function lg(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0}function Om(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.flowNode=void 0}function Fm(c,te,xr){this.fileName=c,this.text=te,this.skipTrivia=xr||function(ei){return ei}}e.objectAllocator={getNodeConstructor:function(){return jp},getTokenConstructor:function(){return lg},getIdentifierConstructor:function(){return Om},getPrivateIdentifierConstructor:function(){return jp},getSourceFileConstructor:function(){return jp},getSymbolConstructor:function(){return H_},getTypeConstructor:function(){return y_},getSignatureConstructor:function(){return Dd},getSourceMapSourceConstructor:function(){return Fm}};function Vg(c){Object.assign(e.objectAllocator,c)}e.setObjectAllocator=Vg;function Jt(c,te,xr){return xr===void 0&&(xr=0),c.replace(/{(\d+)}/g,function(ei,bi){return""+e.Debug.checkDefined(te[+bi+xr])})}e.formatStringFromArgs=Jt;var ml;function Xf(c){ml=c}e.setLocalizedDiagnosticMessages=Xf;function bd(c){!ml&&c&&(ml=c())}e.maybeSetLocalizedDiagnosticMessages=bd;function lf(c){return ml&&ml[c.key]||c.message}e.getLocaleSpecificMessage=lf;function Kg(c,te,xr,ei){zr(void 0,te,xr);var bi=lf(ei);return arguments.length>4&&(bi=Jt(bi,arguments,4)),{file:void 0,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,fileName:c}}e.createDetachedDiagnostic=Kg;function kf(c){return c.file===void 0&&c.start!==void 0&&c.length!==void 0&&typeof c.fileName=="string"}function Gg(c,te){var xr=te.fileName||"",ei=te.text.length;e.Debug.assertEqual(c.fileName,xr),e.Debug.assertLessThanOrEqual(c.start,ei),e.Debug.assertLessThanOrEqual(c.start+c.length,ei);var bi={file:te,start:c.start,length:c.length,messageText:c.messageText,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary};if(c.relatedInformation){bi.relatedInformation=[];for(var Ft=0,ot=c.relatedInformation;Ft4&&(bi=Jt(bi,arguments,4)),{file:c,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,reportsDeprecated:ei.reportsDeprecated}}e.createFileDiagnostic=Hg;function Wd(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),xr}e.formatMessage=Wd;function qd(c){var te=lf(c);return arguments.length>1&&(te=Jt(te,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:te,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary,reportsDeprecated:c.reportsDeprecated}}e.createCompilerDiagnostic=qd;function fg(c,te){return{file:void 0,start:void 0,length:void 0,code:c.code,category:c.category,messageText:c.next?c:c.messageText,relatedInformation:te}}e.createCompilerDiagnosticFromMessageChain=fg;function Mm(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),{messageText:xr,category:te.category,code:te.code,next:c===void 0||Array.isArray(c)?c:[c]}}e.chainDiagnosticMessages=Mm;function Xg(c,te){for(var xr=c;xr.next;)xr=xr.next[0];xr.next=[te]}e.concatenateDiagnosticMessageChains=Xg;function Bl(c){return c.file?c.file.path:void 0}function Qg(c,te){return _g(c,te)||Qc(c,te)||0}e.compareDiagnostics=Qg;function _g(c,te){return e.compareStringsCaseSensitive(Bl(c),Bl(te))||e.compareValues(c.start,te.start)||e.compareValues(c.length,te.length)||e.compareValues(c.code,te.code)||Lm(c.messageText,te.messageText)||0}e.compareDiagnosticsSkipRelatedInformation=_g;function Qc(c,te){return!c.relatedInformation&&!te.relatedInformation?0:c.relatedInformation&&te.relatedInformation?e.compareValues(c.relatedInformation.length,te.relatedInformation.length)||e.forEach(c.relatedInformation,function(xr,ei){var bi=te.relatedInformation[ei];return Qg(xr,bi)})||0:c.relatedInformation?-1:1}function Lm(c,te){if(typeof c=="string"&&typeof te=="string")return e.compareStringsCaseSensitive(c,te);if(typeof c=="string")return-1;if(typeof te=="string")return 1;var xr=e.compareStringsCaseSensitive(c.messageText,te.messageText);if(xr)return xr;if(!c.next&&!te.next)return 0;if(!c.next)return-1;if(!te.next)return 1;for(var ei=Math.min(c.next.length,te.next.length),bi=0;bite.next.length?1:0}function Up(c){return c===4||c===2||c===1||c===6?1:0}e.getLanguageVariant=Up;function Rm(c){if(!!(c.transformFlags&2))return e.isJsxOpeningLikeElement(c)||e.isJsxFragment(c)?c:e.forEachChild(c,Rm)}function ff(c){return c.isDeclarationFile?void 0:Rm(c)}function It(c){return c.impliedNodeFormat===e.ModuleKind.ESNext&&!c.isDeclarationFile?!0:void 0}function Ma(c){switch(ro(c)){case e.ModuleDetectionKind.Force:return function(Ft){Ft.externalModuleIndicator=!Ft.isDeclarationFile||e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Legacy:return function(Ft){Ft.externalModuleIndicator=e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Auto:var te=[e.isFileProbablyExternalModule];(c.jsx===4||c.jsx===5)&&te.push(ff);var xr=Ja(c);(xr===e.ModuleKind.Node16||xr===e.ModuleKind.NodeNext)&&te.push(It);var ei=e.or.apply(void 0,te),bi=function(Ft){return void(Ft.externalModuleIndicator=ei(Ft))};return bi}}e.getSetExternalModuleIndicator=Ma;function aa(c){return c.target||c.module===e.ModuleKind.Node16&&9||c.module===e.ModuleKind.NodeNext&&99||0}e.getEmitScriptTarget=aa;function Ja(c){return typeof c.module=="number"?c.module:aa(c)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}e.getEmitModuleKind=Ja;function _n(c){var te=c.moduleResolution;if(te===void 0)switch(Ja(c)){case e.ModuleKind.CommonJS:te=e.ModuleResolutionKind.NodeJs;break;case e.ModuleKind.Node16:te=e.ModuleResolutionKind.Node16;break;case e.ModuleKind.NodeNext:te=e.ModuleResolutionKind.NodeNext;break;default:te=e.ModuleResolutionKind.Classic;break}return te}e.getEmitModuleResolutionKind=_n;function ro(c){return c.moduleDetection||e.ModuleDetectionKind.Auto}e.getEmitModuleDetectionKind=ro;function as(c){switch(Ja(c)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0;default:return!1}}e.hasJsonModuleEmitEnabled=as;function cc(c){return c.allowUnreachableCode===!1}e.unreachableCodeIsError=cc;function Sc(c){return c.allowUnusedLabels===!1}e.unusedLabelIsError=Sc;function hu(c){return!!(go(c)&&c.declarationMap)}e.getAreDeclarationMapsEnabled=hu;function Js(c){if(c.esModuleInterop!==void 0)return c.esModuleInterop;switch(Ja(c)){case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0}}e.getESModuleInterop=Js;function Qf(c){var te=Ja(c);return c.allowSyntheticDefaultImports!==void 0?c.allowSyntheticDefaultImports:Js(c)||te===e.ModuleKind.System}e.getAllowSyntheticDefaultImports=Qf;function go(c){return!!(c.declaration||c.composite)}e.getEmitDeclarations=go;function Vd(c){return!!(c.preserveConstEnums||c.isolatedModules)}e.shouldPreserveConstEnums=Vd;function X_(c){return!!(c.incremental||c.composite)}e.isIncrementalCompilation=X_;function Sd(c,te){return c[te]===void 0?!!c.strict:!!c[te]}e.getStrictOptionValue=Sd;function Yg(c){return c.allowJs===void 0?!!c.checkJs:c.allowJs}e.getAllowJSCompilerOption=Yg;function N1(c){return c.useDefineForClassFields===void 0?aa(c)>=9:c.useDefineForClassFields}e.getUseDefineForClassFields=N1;function P1(c,te){return m(te,c,e.semanticDiagnosticsOptionDeclarations)}e.compilerOptionsAffectSemanticDiagnostics=P1;function Yy(c,te){return m(te,c,e.affectsEmitOptionDeclarations)}e.compilerOptionsAffectEmit=Yy;function Bm(c,te){return te.strictFlag?Sd(c,te.name):c[te.name]}e.getCompilerOptionValue=Bm;function $y(c){var te=c.jsx;return te===2||te===4||te===5}e.getJSXTransformEnabled=$y;function Lv(c,te){var xr=te==null?void 0:te.pragmas.get("jsximportsource"),ei=e.isArray(xr)?xr[xr.length-1]:xr;return c.jsx===4||c.jsx===5||c.jsxImportSource||ei?(ei==null?void 0:ei.arguments.factory)||c.jsxImportSource||"react":void 0}e.getJSXImplicitImportBase=Lv;function _f(c,te){return c?"".concat(c,"/").concat(te.jsx===5?"jsx-dev-runtime":"jsx-runtime"):void 0}e.getJSXRuntimeImport=_f;function Rv(c){for(var te=!1,xr=0;xr=2&&Ft.length>=2&&!Td(bi[bi.length-2],ei)&&!Td(Ft[Ft.length-2],ei)&&ei(bi[bi.length-1])===ei(Ft[Ft.length-1]);)bi.pop(),Ft.pop(),ot=!0;return ot?[e.getPathFromPathComponents(bi),e.getPathFromPathComponents(Ft)]:void 0}function Td(c,te){return c!==void 0&&(te(c)==="node_modules"||e.startsWith(c,"@"))}function I1(c){return e.isAnyDirectorySeparator(c.charCodeAt(0))?c.slice(1):void 0}function pf(c,te,xr){var ei=e.tryRemovePrefix(c,te,xr);return ei===void 0?void 0:I1(ei)}e.tryRemoveDirectoryPrefix=pf;var Bv=/[^\w\s\/]/g;function Zy(c){return c.replace(Bv,Jv)}e.regExpEscape=Zy;function Jv(c){return"\\"+c}var Nf=[42,63];e.commonPackageFolders=["node_modules","bower_components","jspm_packages"];var dg="(?!(".concat(e.commonPackageFolders.join("|"),")(/|$))"),Rc={singleAsteriskRegexFragment:"([^./]|(\\.(?!min\\.js$))?)*",doubleAsteriskRegexFragment:"(/".concat(dg,"[^/.][^/]*)*?"),replaceWildcardCharacter:function(c){return Jm(c,Rc.singleAsteriskRegexFragment)}},jv={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:"(/".concat(dg,"[^/.][^/]*)*?"),replaceWildcardCharacter:function(c){return Jm(c,jv.singleAsteriskRegexFragment)}},eh={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:"(/.+?)?",replaceWildcardCharacter:function(c){return Jm(c,eh.singleAsteriskRegexFragment)}},rh={files:Rc,directories:jv,exclude:eh};function Fu(c,te,xr){var ei=xd(c,te,xr);if(!(!ei||!ei.length)){var bi=ei.map(function(ot){return"(".concat(ot,")")}).join("|"),Ft=xr==="exclude"?"($|/)":"$";return"^(".concat(bi,")").concat(Ft)}}e.getRegularExpressionForWildcard=Fu;function xd(c,te,xr){if(!(c===void 0||c.length===0))return e.flatMap(c,function(ei){return ei&&ih(ei,te,xr,rh[xr])})}e.getRegularExpressionsForWildcards=xd;function Uv(c){return!/[.*?]/.test(c)}e.isImplicitGlob=Uv;function w1(c,te,xr){var ei=c&&ih(c,te,xr,rh[xr]);return ei&&"^(".concat(ei,")").concat(xr==="exclude"?"($|/)":"$")}e.getPatternFromSpec=w1;function ih(c,te,xr,ei){var bi=ei.singleAsteriskRegexFragment,Ft=ei.doubleAsteriskRegexFragment,ot=ei.replaceWildcardCharacter,xa="",mn=!1,an=e.getNormalizedPathComponents(c,te),To=e.last(an);if(!(xr!=="exclude"&&To==="**")){an[0]=e.removeTrailingDirectorySeparator(an[0]),Uv(To)&&an.push("**","*");for(var Hn=0,ss=0,cs=an;ss0;)xa+=")?",Hn--;return xa}}function Jm(c,te){return c==="*"?te:c==="?"?"[^/]":"\\"+c}function th(c,te,xr,ei,bi){c=e.normalizePath(c),bi=e.normalizePath(bi);var Ft=e.combinePaths(bi,c);return{includeFilePatterns:e.map(xd(xr,Ft,"files"),function(ot){return"^".concat(ot,"$")}),includeFilePattern:Fu(xr,Ft,"files"),includeDirectoryPattern:Fu(xr,Ft,"directories"),excludePattern:Fu(te,Ft,"exclude"),basePaths:zv(c,xr,ei)}}e.getFileMatcherPatterns=th;function gg(c,te){return new RegExp(c,te?"":"i")}e.getRegexFromPattern=gg;function O1(c,te,xr,ei,bi,Ft,ot,xa,mn){c=e.normalizePath(c),Ft=e.normalizePath(Ft);for(var an=th(c,xr,ei,bi,Ft),To=an.includeFilePatterns&&an.includeFilePatterns.map(function(b_){return gg(b_,bi)}),Hn=an.includeDirectoryPattern&&gg(an.includeDirectoryPattern,bi),ss=an.excludePattern&&gg(an.excludePattern,bi),cs=To?To.map(function(){return[]}):[[]],ws=new e.Map,nu=e.createGetCanonicalFileName(bi),Xo=0,jl=an.basePaths;Xo=0)}e.positionIsSynthesized=Jl;function vl(c){return c===".ts"||c===".tsx"||c===".d.ts"||c===".cts"||c===".mts"||c===".d.mts"||c===".d.cts"}e.extensionIsTS=vl;function _h(c){return vl(c)||c===".json"}e.resolutionExtensionIsTSOrJson=_h;function mg(c){var te=Lu(c);return te!==void 0?te:e.Debug.fail("File ".concat(c," has unknown extension."))}e.extensionFromPath=mg;function Ed(c){return Lu(c)!==void 0}e.isAnySupportedFileExtension=Ed;function Lu(c){return e.find(Kd,function(te){return e.fileExtensionIs(c,te)})}e.tryGetExtensionFromPath=Lu;function ph(c,te){return c.checkJsDirective?c.checkJsDirective.enabled:te.checkJs}e.isCheckJsEnabledForFile=ph,e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray};function qv(c,te){for(var xr=[],ei=0,bi=c;eiei&&(ei=Ft)}return{min:xr,max:ei}}e.minAndMax=Ru;function Pf(c){return{pos:Fe(c),end:c.end}}e.rangeOfNode=Pf;function h_(c,te){var xr=te.pos-1,ei=e.skipTrivia(c.text,te.end)+1;return{pos:xr,end:ei}}e.rangeOfTypeParameters=h_;function em(c,te,xr){return te.skipLibCheck&&c.isDeclarationFile||te.skipDefaultLibCheck&&c.hasNoDefaultLib||xr.isSourceOfProjectReferenceRedirect(c.fileName)}e.skipTypeChecking=em;function uo(c,te){return c===te||typeof c=="object"&&c!==null&&typeof te=="object"&&te!==null&&e.equalOwnProperties(c,te,uo)}e.isJsonEqual=uo;function U1(c){var te;switch(c.charCodeAt(1)){case 98:case 66:te=1;break;case 111:case 79:te=3;break;case 120:case 88:te=4;break;default:for(var xr=c.length-1,ei=0;c.charCodeAt(ei)===48;)ei++;return c.slice(ei,xr)||"0"}for(var bi=2,Ft=c.length-1,ot=(Ft-bi)*te,xa=new Uint16Array((ot>>>4)+(ot&15?1:0)),mn=Ft-1,an=0;mn>=bi;mn--,an+=te){var To=an>>>4,Hn=c.charCodeAt(mn),ss=Hn<=57?Hn-48:10+Hn-(Hn<=70?65:97),cs=ss<<(an&15);xa[To]|=cs;var ws=cs>>>16;ws&&(xa[To+1]|=ws)}for(var nu="",Xo=xa.length-1,jl=!0;jl;){var Y_=0;jl=!1;for(var To=Xo;To>=0;To--){var Cd=Y_<<16|xa[To],b_=Cd/10|0;xa[To]=b_,Y_=Cd-b_*10,b_&&!jl&&(Xo=To,jl=!0)}nu=Y_+nu}return nu}e.parsePseudoBigInt=U1;function z1(c){var te=c.negative,xr=c.base10Value;return(te&&xr!=="0"?"-":"")+xr}e.pseudoBigIntToString=z1;function W1(c){return!!(c.flags&16777216)||S(c)||q1(c)||Tc(c)||!(Qe(c)||Q_(c))}e.isValidTypeOnlyAliasUseSite=W1;function Q_(c){return e.isIdentifier(c)&&e.isShorthandPropertyAssignment(c.parent)&&c.parent.name===c}function Tc(c){for(;c.kind===79||c.kind===206;)c=c.parent;if(c.kind!==162)return!1;if(gc(c.parent,128))return!0;var te=c.parent.parent.kind;return te===258||te===182}function q1(c){if(c.kind!==79)return!1;var te=e.findAncestor(c.parent,function(xr){switch(xr.kind){case 291:return!0;case 206:case 228:return!1;default:return"quit"}});return(te==null?void 0:te.token)===117||(te==null?void 0:te.parent.kind)===258}function Vv(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)}e.isIdentifierTypeReference=Vv;function V1(c,te){if(te===void 0&&(te=e.equateValues),c.length<2)return!0;for(var xr=c[0],ei=1,bi=c.length;ei=0?e.factory.createNumericLiteral(+c):e.factory.createStringLiteral(c,!!xr)}e.createPropertyNameNodeForIdentifierOrLiteral=$v;function Zv(c){return!!(c.flags&262144&&c.isThisType)}e.isThisTypeParameter=Zv;function bu(c){var te=0,xr=0,ei=0,bi=0,Ft;(function(an){an[an.BeforeNodeModules=0]="BeforeNodeModules",an[an.NodeModules=1]="NodeModules",an[an.Scope=2]="Scope",an[an.PackageContent=3]="PackageContent"})(Ft||(Ft={}));for(var ot=0,xa=0,mn=0;xa>=0;)switch(ot=xa,xa=c.indexOf("/",ot+1),mn){case 0:c.indexOf(e.nodeModulesPathPart,ot)===ot&&(te=ot,xr=xa,mn=1);break;case 1:case 2:mn===1&&c.charAt(ot+1)==="@"?mn=2:(ei=xa,mn=3);break;case 3:c.indexOf(e.nodeModulesPathPart,ot)===ot?mn=1:mn=3;break}return bi=ot,mn>1?{topLevelNodeModulesIndex:te,topLevelPackageNameIndex:xr,packageRootIndex:ei,fileNameIndex:bi}:void 0}e.getNodeModulePathParts=bu;function $1(c){var te;return c.kind===340?(te=c.typeExpression)===null||te===void 0?void 0:te.type:c.type}e.getParameterTypeNode=$1})(ke||(ke={}));var ke;(function(e){function a(){var C,I,R,E,X;return{createBaseSourceFileNode:le,createBaseIdentifierNode:N,createBasePrivateIdentifierNode:p,createBaseTokenNode:m,createBaseNode:G};function le(oe){return new(X||(X=e.objectAllocator.getSourceFileConstructor()))(oe,-1,-1)}function N(oe){return new(R||(R=e.objectAllocator.getIdentifierConstructor()))(oe,-1,-1)}function p(oe){return new(E||(E=e.objectAllocator.getPrivateIdentifierConstructor()))(oe,-1,-1)}function m(oe){return new(I||(I=e.objectAllocator.getTokenConstructor()))(oe,-1,-1)}function G(oe){return new(C||(C=e.objectAllocator.getNodeConstructor()))(oe,-1,-1)}}e.createBaseNodeFactory=a})(ke||(ke={}));var ke;(function(e){function a(C){var I,R;return{getParenthesizeLeftSideOfBinaryForOperator:E,getParenthesizeRightSideOfBinaryForOperator:X,parenthesizeLeftSideOfBinary:G,parenthesizeRightSideOfBinary:oe,parenthesizeExpressionOfComputedPropertyName:f,parenthesizeConditionOfConditionalExpression:T,parenthesizeBranchOfConditionalExpression:K,parenthesizeExpressionOfExportDefault:b,parenthesizeExpressionOfNew:se,parenthesizeLeftSideOfAccess:J,parenthesizeOperandOfPostfixUnary:ie,parenthesizeOperandOfPrefixUnary:B,parenthesizeExpressionsOfCommaDelimitedList:q,parenthesizeExpressionForDisallowedComma:O,parenthesizeExpressionOfExpressionStatement:ve,parenthesizeConciseBodyOfArrowFunction:ee,parenthesizeCheckTypeOfConditionalType:he,parenthesizeExtendsTypeOfConditionalType:F,parenthesizeConstituentTypesOfUnionType:Q,parenthesizeConstituentTypeOfUnionType:x,parenthesizeConstituentTypesOfIntersectionType:A,parenthesizeConstituentTypeOfIntersectionType:$,parenthesizeOperandOfTypeOperator:y,parenthesizeOperandOfReadonlyTypeOperator:V,parenthesizeNonArrayTypeOfPostfixType:L,parenthesizeElementTypesOfTupleType:P,parenthesizeElementTypeOfTupleType:k,parenthesizeTypeOfOptionalType:U,parenthesizeTypeArguments:w,parenthesizeLeadingTypeArgument:j};function E(l){I||(I=new e.Map);var d=I.get(l);return d||(d=function(D){return G(l,D)},I.set(l,d)),d}function X(l){R||(R=new e.Map);var d=R.get(l);return d||(d=function(D){return oe(l,void 0,D)},R.set(l,d)),d}function le(l,d,D,fe){var g=e.getOperatorPrecedence(221,l),ne=e.getOperatorAssociativity(221,l),ue=e.skipPartiallyEmittedExpressions(d);if(!D&&d.kind===214&&g>3)return!0;var We=e.getExpressionPrecedence(ue);switch(e.compareValues(We,g)){case-1:return!(!D&&ne===1&&d.kind===224);case 1:return!1;case 0:if(D)return ne===1;if(e.isBinaryExpression(ue)&&ue.operatorToken.kind===l){if(N(l))return!1;if(l===39){var Fe=fe?p(fe):0;if(e.isLiteralKind(Fe)&&Fe===p(ue))return!1}}var Z=e.getExpressionAssociativity(ue);return Z===0}}function N(l){return l===41||l===51||l===50||l===52}function p(l){if(l=e.skipPartiallyEmittedExpressions(l),e.isLiteralKind(l.kind))return l.kind;if(l.kind===221&&l.operatorToken.kind===39){if(l.cachedLiteralKind!==void 0)return l.cachedLiteralKind;var d=p(l.left),D=e.isLiteralKind(d)&&d===p(l.right)?d:0;return l.cachedLiteralKind=D,D}return 0}function m(l,d,D,fe){var g=e.skipPartiallyEmittedExpressions(d);return g.kind===212?d:le(l,d,D,fe)?C.createParenthesizedExpression(d):d}function G(l,d){return m(l,d,!0)}function oe(l,d,D){return m(l,D,!1,d)}function f(l){return e.isCommaSequence(l)?C.createParenthesizedExpression(l):l}function T(l){var d=e.getOperatorPrecedence(222,57),D=e.skipPartiallyEmittedExpressions(l),fe=e.getExpressionPrecedence(D);return e.compareValues(fe,d)!==1?C.createParenthesizedExpression(l):l}function K(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isCommaSequence(d)?C.createParenthesizedExpression(l):l}function b(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.isCommaSequence(d);if(!D)switch(e.getLeftmostExpression(d,!1).kind){case 226:case 213:D=!0}return D?C.createParenthesizedExpression(l):l}function se(l){var d=e.getLeftmostExpression(l,!0);switch(d.kind){case 208:return C.createParenthesizedExpression(l);case 209:return d.arguments?l:C.createParenthesizedExpression(l)}return J(l)}function J(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isLeftHandSideExpression(d)&&(d.kind!==209||d.arguments)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ie(l){return e.isLeftHandSideExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function B(l){return e.isUnaryExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function q(l){var d=e.sameMap(l,O);return e.setTextRange(C.createNodeArray(d,l.hasTrailingComma),l)}function O(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.getExpressionPrecedence(d),fe=e.getOperatorPrecedence(221,27);return D>fe?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ve(l){var d=e.skipPartiallyEmittedExpressions(l);if(e.isCallExpression(d)){var D=d.expression,fe=e.skipPartiallyEmittedExpressions(D).kind;if(fe===213||fe===214){var g=C.updateCallExpression(d,e.setTextRange(C.createParenthesizedExpression(D),D),d.typeArguments,d.arguments);return C.restoreOuterExpressions(l,g,8)}}var ne=e.getLeftmostExpression(d,!1).kind;return ne===205||ne===213?e.setTextRange(C.createParenthesizedExpression(l),l):l}function ee(l){return!e.isBlock(l)&&(e.isCommaSequence(l)||e.getLeftmostExpression(l,!1).kind===205)?e.setTextRange(C.createParenthesizedExpression(l),l):l}function he(l){switch(l.kind){case 179:case 180:case 189:return C.createParenthesizedType(l)}return l}function F(l){switch(l.kind){case 189:return C.createParenthesizedType(l)}return l}function x(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return he(l)}function Q(l){return C.createNodeArray(e.sameMap(l,x))}function $(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return x(l)}function A(l){return C.createNodeArray(e.sameMap(l,$))}function y(l){switch(l.kind){case 188:return C.createParenthesizedType(l)}return $(l)}function V(l){switch(l.kind){case 193:return C.createParenthesizedType(l)}return y(l)}function L(l){switch(l.kind){case 190:case 193:case 181:return C.createParenthesizedType(l)}return y(l)}function P(l){return C.createNodeArray(e.sameMap(l,k))}function k(l){return Y(l)?C.createParenthesizedType(l):l}function Y(l){return e.isJSDocNullableType(l)?l.postfix:e.isNamedTupleMember(l)||e.isFunctionTypeNode(l)||e.isConstructorTypeNode(l)||e.isTypeOperatorNode(l)?Y(l.type):e.isConditionalTypeNode(l)?Y(l.falseType):e.isUnionTypeNode(l)||e.isIntersectionTypeNode(l)?Y(e.last(l.types)):e.isInferTypeNode(l)?!!l.typeParameter.constraint&&Y(l.typeParameter.constraint):!1}function U(l){return Y(l)?C.createParenthesizedType(l):L(l)}function j(l){return e.isFunctionOrConstructorTypeNode(l)&&l.typeParameters?C.createParenthesizedType(l):l}function H(l,d){return d===0?j(l):l}function w(l){if(e.some(l))return C.createNodeArray(e.sameMap(l,H))}}e.createParenthesizerRules=a,e.nullParenthesizerRules={getParenthesizeLeftSideOfBinaryForOperator:function(C){return e.identity},getParenthesizeRightSideOfBinaryForOperator:function(C){return e.identity},parenthesizeLeftSideOfBinary:function(C,I){return I},parenthesizeRightSideOfBinary:function(C,I,R){return R},parenthesizeExpressionOfComputedPropertyName:e.identity,parenthesizeConditionOfConditionalExpression:e.identity,parenthesizeBranchOfConditionalExpression:e.identity,parenthesizeExpressionOfExportDefault:e.identity,parenthesizeExpressionOfNew:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeLeftSideOfAccess:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPostfixUnary:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPrefixUnary:function(C){return e.cast(C,e.isUnaryExpression)},parenthesizeExpressionsOfCommaDelimitedList:function(C){return e.cast(C,e.isNodeArray)},parenthesizeExpressionForDisallowedComma:e.identity,parenthesizeExpressionOfExpressionStatement:e.identity,parenthesizeConciseBodyOfArrowFunction:e.identity,parenthesizeCheckTypeOfConditionalType:e.identity,parenthesizeExtendsTypeOfConditionalType:e.identity,parenthesizeConstituentTypesOfUnionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfUnionType:e.identity,parenthesizeConstituentTypesOfIntersectionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfIntersectionType:e.identity,parenthesizeOperandOfTypeOperator:e.identity,parenthesizeOperandOfReadonlyTypeOperator:e.identity,parenthesizeNonArrayTypeOfPostfixType:e.identity,parenthesizeElementTypesOfTupleType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeElementTypeOfTupleType:e.identity,parenthesizeTypeOfOptionalType:e.identity,parenthesizeTypeArguments:function(C){return C&&e.cast(C,e.isNodeArray)},parenthesizeLeadingTypeArgument:e.identity}})(ke||(ke={}));var ke;(function(e){function a(C){return{convertToFunctionBlock:I,convertToFunctionExpression:R,convertToArrayAssignmentElement:E,convertToObjectAssignmentElement:X,convertToAssignmentPattern:le,convertToObjectAssignmentPattern:N,convertToArrayAssignmentPattern:p,convertToAssignmentElementTarget:m};function I(G,oe){if(e.isBlock(G))return G;var f=C.createReturnStatement(G);e.setTextRange(f,G);var T=C.createBlock([f],oe);return e.setTextRange(T,G),T}function R(G){if(!G.body)return e.Debug.fail("Cannot convert a FunctionDeclaration without a body");var oe=C.createFunctionExpression(G.modifiers,G.asteriskToken,G.name,G.typeParameters,G.parameters,G.type,G.body);return e.setOriginalNode(oe,G),e.setTextRange(oe,G),e.getStartsOnNewLine(G)&&e.setStartsOnNewLine(oe,!0),oe}function E(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadElement(G.name),G),G);var oe=m(G.name);return G.initializer?e.setOriginalNode(e.setTextRange(C.createAssignment(oe,G.initializer),G),G):oe}return e.cast(G,e.isExpression)}function X(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadAssignment(G.name),G),G);if(G.propertyName){var oe=m(G.name);return e.setOriginalNode(e.setTextRange(C.createPropertyAssignment(G.propertyName,G.initializer?C.createAssignment(oe,G.initializer):oe),G),G)}return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createShorthandPropertyAssignment(G.name,G.initializer),G),G)}return e.cast(G,e.isObjectLiteralElementLike)}function le(G){switch(G.kind){case 202:case 204:return p(G);case 201:case 205:return N(G)}}function N(G){return e.isObjectBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createObjectLiteralExpression(e.map(G.elements,X)),G),G):e.cast(G,e.isObjectLiteralExpression)}function p(G){return e.isArrayBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createArrayLiteralExpression(e.map(G.elements,E)),G),G):e.cast(G,e.isArrayLiteralExpression)}function m(G){return e.isBindingPattern(G)?le(G):e.cast(G,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}})(ke||(ke={}));var ke;(function(e){var a=0,C;(function(Q){Q[Q.None=0]="None",Q[Q.NoParenthesizerRules=1]="NoParenthesizerRules",Q[Q.NoNodeConverters=2]="NoNodeConverters",Q[Q.NoIndentationOnFreshPropertyAccess=4]="NoIndentationOnFreshPropertyAccess",Q[Q.NoOriginalNode=8]="NoOriginalNode"})(C=e.NodeFactoryFlags||(e.NodeFactoryFlags={}));function I(Q,$){var A=Q&8?R:E,y=e.memoize(function(){return Q&1?e.nullParenthesizerRules:e.createParenthesizerRules(g)}),V=e.memoize(function(){return Q&2?e.nullNodeConverters:e.createNodeConverters(g)}),L=e.memoizeOne(function(_){return function(W,Te){return jr(W,_,Te)}}),P=e.memoizeOne(function(_){return function(W){return Pt(_,W)}}),k=e.memoizeOne(function(_){return function(W){return ua(W,_)}}),Y=e.memoizeOne(function(_){return function(){return Zl(_)}}),U=e.memoizeOne(function(_){return function(W){return kl(_,W)}}),j=e.memoizeOne(function(_){return function(W,Te){return zd(_,W,Te)}}),H=e.memoizeOne(function(_){return function(W,Te){return R_(_,W,Te)}}),w=e.memoizeOne(function(_){return function(W,Te){return __(_,W,Te)}}),l=e.memoizeOne(function(_){return function(W,Te){return Wf(_,W,Te)}}),d=e.memoizeOne(function(_){return function(W,Te,cr){return Sf(_,W,Te,cr)}}),D=e.memoizeOne(function(_){return function(W,Te,cr){return ll(_,W,Te,cr)}}),fe=e.memoizeOne(function(_){return function(W,Te,cr,ni){return J_(_,W,Te,cr,ni)}}),g={get parenthesizer(){return y()},get converters(){return V()},baseFactory:$,flags:Q,createNodeArray:ne,createNumericLiteral:we,createBigIntLiteral:de,createStringLiteral:Ae,createStringLiteralFromNode:er,createRegularExpressionLiteral:ir,createLiteralLikeNode:Cr,createIdentifier:Er,updateIdentifier:Ne,createTempVariable:n,createLoopVariable:lr,createUniqueName:be,getGeneratedNameForNode:Ge,createPrivateIdentifier:ur,createToken:Ir,createSuper:wr,createThis:Ur,createNull:ii,createTrue:mi,createFalse:pe,createModifier:or,createModifiersFromModifierFlags:qr,createQualifiedName:si,updateQualifiedName:Di,createComputedPropertyName:wi,updateComputedPropertyName:Xi,createTypeParameterDeclaration:et,updateTypeParameterDeclaration:Gi,createParameterDeclaration:Wt,updateParameterDeclaration:Zt,createDecorator:_r,updateDecorator:pi,createPropertySignature:ae,updatePropertySignature:Xe,createPropertyDeclaration:Jr,updatePropertyDeclaration:ti,createMethodSignature:Ze,updateMethodSignature:Sr,createMethodDeclaration:zr,updateMethodDeclaration:Wr,createConstructorDeclaration:vr,updateConstructorDeclaration:mr,createGetAccessorDeclaration:Ar,updateGetAccessorDeclaration:Oe,createSetAccessorDeclaration:nr,updateSetAccessorDeclaration:Mr,createCallSignature:Pe,updateCallSignature:Ue,createConstructSignature:fr,updateConstructSignature:De,createIndexSignature:gr,updateIndexSignature:Vr,createClassStaticBlockDeclaration:Je,updateClassStaticBlockDeclaration:xe,createTemplateLiteralTypeSpan:Tr,updateTemplateLiteralTypeSpan:vi,createKeywordTypeNode:Ui,createTypePredicateNode:Yi,updateTypePredicateNode:Wi,createTypeReferenceNode:ct,updateTypeReferenceNode:Li,createFunctionTypeNode:nt,updateFunctionTypeNode:Mt,createConstructorTypeNode:xt,updateConstructorTypeNode:Rt,createTypeQueryNode:Fi,updateTypeQueryNode:ui,createTypeLiteralNode:Bt,updateTypeLiteralNode:wt,createArrayTypeNode:na,updateArrayTypeNode:Ai,createTupleTypeNode:Oi,updateTupleTypeNode:ji,createNamedTupleMember:Vi,updateNamedTupleMember:at,createOptionalTypeNode:At,updateOptionalTypeNode:ba,createRestTypeNode:$a,updateRestTypeNode:Qa,createUnionTypeNode:ka,updateUnionTypeNode:Ba,createIntersectionTypeNode:pn,updateIntersectionTypeNode:Cn,createConditionalTypeNode:Bi,updateConditionalTypeNode:kn,createInferTypeNode:xn,updateInferTypeNode:Kn,createImportTypeNode:Rn,updateImportTypeNode:Da,createParenthesizedType:bo,updateParenthesizedType:Ro,createThisTypeNode:En,createTypeOperatorNode:zn,updateTypeOperatorNode:to,createIndexedAccessTypeNode:Co,updateIndexedAccessTypeNode:Ko,createMappedTypeNode:Oo,updateMappedTypeNode:no,createLiteralTypeNode:$o,updateLiteralTypeNode:Pr,createTemplateLiteralType:Pn,updateTemplateLiteralType:eo,createObjectBindingPattern:xi,updateObjectBindingPattern:St,createArrayBindingPattern:pa,updateArrayBindingPattern:dn,createBindingElement:Bn,updateBindingElement:Qe,createArrayLiteralExpression:S,updateArrayLiteralExpression:Ce,createObjectLiteralExpression:qe,updateObjectLiteralExpression:br,createPropertyAccessExpression:Q&4?function(_,W){return e.setEmitFlags(Zr(_,W),131072)}:Zr,updatePropertyAccessExpression:Si,createPropertyAccessChain:Q&4?function(_,W,Te){return e.setEmitFlags(Pi(_,W,Te),131072)}:Pi,updatePropertyAccessChain:Qi,createElementAccessExpression:Ct,updateElementAccessExpression:sa,createElementAccessChain:en,updateElementAccessChain:Wa,createCallExpression:Wn,updateCallExpression:mo,createCallChain:So,updateCallChain:Go,createNewExpression:ys,updateNewExpression:Pc,createTaggedTemplateExpression:Vc,updateTaggedTemplateExpression:Kc,createTypeAssertion:Xs,updateTypeAssertion:pc,createParenthesizedExpression:hs,updateParenthesizedExpression:tc,createFunctionExpression:ps,updateFunctionExpression:Qs,createArrowFunction:js,updateArrowFunction:ds,createDeleteExpression:Ji,updateDeleteExpression:ce,createTypeOfExpression:Rr,updateTypeOfExpression:yi,createVoidExpression:qi,updateVoidExpression:je,createAwaitExpression:Hr,updateAwaitExpression:pt,createPrefixUnaryExpression:Pt,updatePrefixUnaryExpression:ga,createPostfixUnaryExpression:ua,updatePostfixUnaryExpression:Xn,createBinaryExpression:jr,updateBinaryExpression:xs,createConditionalExpression:Fo,updateConditionalExpression:ko,createTemplateExpression:Ao,updateTemplateExpression:Ms,createTemplateHead:su,createTemplateMiddle:tl,createTemplateTail:Zc,createNoSubstitutionTemplateLiteral:Rf,createTemplateLiteralLikeNode:xc,createYieldExpression:al,updateYieldExpression:Jo,createSpreadElement:eu,updateSpreadElement:Ws,createClassExpression:pu,updateClassExpression:Uu,createOmittedExpression:Ql,createExpressionWithTypeArguments:xl,updateExpressionWithTypeArguments:Ya,createAsExpression:du,updateAsExpression:vc,createNonNullExpression:Kr,updateNonNullExpression:_i,createNonNullChain:Ei,updateNonNullChain:tt,createMetaProperty:kt,updateMetaProperty:bt,createTemplateSpan:ia,updateTemplateSpan:Xt,createSemicolonClassElement:Za,createBlock:bn,updateBlock:_a,createVariableStatement:qa,updateVariableStatement:rn,createEmptyStatement:Jn,createExpressionStatement:Mo,updateExpressionStatement:ho,createIfStatement:gs,updateIfStatement:Se,createDoStatement:hr,updateDoStatement:Or,createWhileStatement:ki,updateWhileStatement:dt,createForStatement:la,updateForStatement:Oa,createForInStatement:On,updateForInStatement:No,createForOfStatement:jo,updateForOfStatement:po,createContinueStatement:Gn,updateContinueStatement:$n,createBreakStatement:Ho,updateBreakStatement:Zo,createReturnStatement:Es,updateReturnStatement:yc,createWithStatement:Xr,updateWithStatement:Ls,createSwitchStatement:Ic,updateSwitchStatement:zu,createLabeledStatement:vf,updateLabeledStatement:P_,createThrowStatement:El,updateThrowStatement:vp,createTryStatement:oo,updateTryStatement:I_,createDebuggerStatement:yp,createVariableDeclaration:Yl,updateVariableDeclaration:Bf,createVariableDeclarationList:Cl,updateVariableDeclarationList:c_,createFunctionDeclaration:hp,updateFunctionDeclaration:gu,createClassDeclaration:Dp,updateClassDeclaration:sd,createInterfaceDeclaration:Aa,updateInterfaceDeclaration:va,createTypeAliasDeclaration:Cu,updateTypeAliasDeclaration:qs,createEnumDeclaration:cd,updateEnumDeclaration:ns,createModuleDeclaration:nl,updateModuleDeclaration:hc,createModuleBlock:es,updateModuleBlock:u_,createCaseBlock:Jf,updateCaseBlock:w_,createNamespaceExportDeclaration:ud,updateNamespaceExportDeclaration:ku,createImportEqualsDeclaration:ld,updateImportEqualsDeclaration:fd,createImportDeclaration:bp,updateImportDeclaration:Sp,createImportClause:Tp,updateImportClause:_d,createAssertClause:jf,updateAssertClause:O_,createAssertEntry:F_,updateAssertEntry:pd,createImportTypeAssertionContainer:xp,updateImportTypeAssertionContainer:M_,createNamespaceImport:Ep,updateNamespaceImport:ol,createNamespaceExport:Au,updateNamespaceExport:ru,createNamedImports:yf,updateNamedImports:Cp,createImportSpecifier:dd,updateImportSpecifier:kp,createExportAssignment:mu,updateExportAssignment:gd,createExportDeclaration:hf,updateExportDeclaration:$l,createNamedExports:Uf,updateNamedExports:L_,createExportSpecifier:l_,updateExportSpecifier:f_,createMissingDeclaration:md,createExternalModuleReference:ks,updateExternalModuleReference:Wu,get createJSDocAllType(){return Y(312)},get createJSDocUnknownType(){return Y(313)},get createJSDocNonNullableType(){return H(315)},get updateJSDocNonNullableType(){return w(315)},get createJSDocNullableType(){return H(314)},get updateJSDocNullableType(){return w(314)},get createJSDocOptionalType(){return U(316)},get updateJSDocOptionalType(){return j(316)},get createJSDocVariadicType(){return U(318)},get updateJSDocVariadicType(){return j(318)},get createJSDocNamepathType(){return U(319)},get updateJSDocNamepathType(){return j(319)},createJSDocFunctionType:Al,updateJSDocFunctionType:wc,createJSDocTypeLiteral:qu,updateJSDocTypeLiteral:Vu,createJSDocTypeExpression:ef,updateJSDocTypeExpression:sl,createJSDocSignature:p_,updateJSDocSignature:Df,createJSDocTemplateTag:os,updateJSDocTemplateTag:Ps,createJSDocTypedefTag:d_,updateJSDocTypedefTag:Gc,createJSDocParameterTag:B_,updateJSDocParameterTag:vu,createJSDocPropertyTag:Gt,updateJSDocPropertyTag:As,createJSDocCallbackTag:vn,updateJSDocCallbackTag:Nl,createJSDocAugmentsTag:cl,updateJSDocAugmentsTag:rf,createJSDocImplementsTag:Ut,updateJSDocImplementsTag:Ap,createJSDocSeeTag:Ds,updateJSDocSeeTag:bf,createJSDocNameReference:bs,updateJSDocNameReference:Dc,createJSDocMemberName:Cc,updateJSDocMemberName:ac,createJSDocLink:Pl,updateJSDocLink:Il,createJSDocLinkCode:zf,updateJSDocLinkCode:ul,createJSDocLinkPlain:Nu,updateJSDocLinkPlain:Us,get createJSDocTypeTag(){return D(343)},get updateJSDocTypeTag(){return fe(343)},get createJSDocReturnTag(){return D(341)},get updateJSDocReturnTag(){return fe(341)},get createJSDocThisTag(){return D(342)},get updateJSDocThisTag(){return fe(342)},get createJSDocEnumTag(){return D(339)},get updateJSDocEnumTag(){return fe(339)},get createJSDocAuthorTag(){return l(330)},get updateJSDocAuthorTag(){return d(330)},get createJSDocClassTag(){return l(332)},get updateJSDocClassTag(){return d(332)},get createJSDocPublicTag(){return l(333)},get updateJSDocPublicTag(){return d(333)},get createJSDocPrivateTag(){return l(334)},get updateJSDocPrivateTag(){return d(334)},get createJSDocProtectedTag(){return l(335)},get updateJSDocProtectedTag(){return d(335)},get createJSDocReadonlyTag(){return l(336)},get updateJSDocReadonlyTag(){return d(336)},get createJSDocOverrideTag(){return l(337)},get updateJSDocOverrideTag(){return d(337)},get createJSDocDeprecatedTag(){return l(331)},get updateJSDocDeprecatedTag(){return d(331)},createJSDocUnknownTag:j_,updateJSDocUnknownTag:U_,createJSDocText:iu,updateJSDocText:vd,createJSDocComment:qf,updateJSDocComment:dc,createJsxElement:Pu,updateJsxElement:wl,createJsxSelfClosingElement:Iu,updateJsxSelfClosingElement:so,createJsxOpeningElement:Et,updateJsxOpeningElement:Ys,createJsxClosingElement:Ku,updateJsxClosingElement:Np,createJsxFragment:Pp,createJsxText:fl,updateJsxText:_l,createJsxOpeningFragment:cu,createJsxJsxClosingFragment:gc,updateJsxFragment:nc,createJsxAttribute:Tf,updateJsxAttribute:mc,createJsxAttributes:Ip,updateJsxAttributes:ms,createJsxSpreadAttribute:tu,updateJsxSpreadAttribute:wp,createJsxExpression:Hc,updateJsxExpression:Ol,createCaseClause:tf,updateCaseClause:xf,createDefaultClause:z_,updateDefaultClause:Oc,createHeritageClause:rs,updateHeritageClause:Op,createCatchClause:Ef,updateCatchClause:Fl,createPropertyAssignment:pl,updatePropertyAssignment:Mp,createShorthandPropertyAssignment:Gu,updateShorthandPropertyAssignment:Cf,createSpreadAssignment:W_,updateSpreadAssignment:g_,createEnumMember:dl,updateEnumMember:gl,createSourceFile:Vf,updateSourceFile:Hu,createBundle:af,updateBundle:tn,createUnparsedSource:Ml,createUnparsedPrologue:nf,createUnparsedPrepend:q_,createUnparsedTextLike:Kf,createUnparsedSyntheticReference:Rp,createInputFiles:yd,createSyntheticExpression:m_,createSyntaxList:Ll,createNotEmittedStatement:hd,createPartiallyEmittedExpression:v_,updatePartiallyEmittedExpression:Bp,createCommaListExpression:Xc,updateCommaListExpression:Gf,createEndOfDeclarationMarker:of,createMergeDeclarationMarker:wu,createSyntheticReferenceExpression:V_,updateSyntheticReferenceExpression:yu,cloneNode:v,get createComma(){return L(27)},get createAssignment(){return L(63)},get createLogicalOr(){return L(56)},get createLogicalAnd(){return L(55)},get createBitwiseOr(){return L(51)},get createBitwiseXor(){return L(52)},get createBitwiseAnd(){return L(50)},get createStrictEquality(){return L(36)},get createStrictInequality(){return L(37)},get createEquality(){return L(34)},get createInequality(){return L(35)},get createLessThan(){return L(29)},get createLessThanEquals(){return L(32)},get createGreaterThan(){return L(31)},get createGreaterThanEquals(){return L(33)},get createLeftShift(){return L(47)},get createRightShift(){return L(48)},get createUnsignedRightShift(){return L(49)},get createAdd(){return L(39)},get createSubtract(){return L(40)},get createMultiply(){return L(41)},get createDivide(){return L(43)},get createModulo(){return L(44)},get createExponent(){return L(42)},get createPrefixPlus(){return P(39)},get createPrefixMinus(){return P(40)},get createPrefixIncrement(){return P(45)},get createPrefixDecrement(){return P(46)},get createBitwiseNot(){return P(54)},get createLogicalNot(){return P(53)},get createPostfixIncrement(){return k(45)},get createPostfixDecrement(){return k(46)},createImmediatelyInvokedFunctionExpression:sr,createImmediatelyInvokedArrowFunction:fi,createVoidZero:zi,createExportDefault:Sa,createExternalModuleExport:da,createTypeCheck:Ha,createMethodCall:ta,createGlobalMethodCall:oc,createFunctionBindCall:nn,createFunctionCallCall:Wo,createFunctionApplyCall:Lo,createArraySliceCall:uu,createArrayConcatCall:is,createObjectDefinePropertyCall:au,createReflectGetCall:Ou,createReflectSetCall:sf,createPropertyDescriptor:cf,createCallBinding:G_,createAssignmentTargetWrapper:Le,inlineExpressions:Nr,getInternalName:di,getLocalName:Mi,getExportName:st,getDeclarationName:ra,getNamespaceMemberName:Ta,getExternalModuleOrNamespaceExportName:ha,restoreOuterExpressions:Jp,restoreEnclosingLabel:Hf,createUseStrictPrologue:qo,copyPrologue:Na,copyStandardPrologue:co,copyCustomPrologue:ts,ensureUseStrict:vs,liftToBlock:Ac,mergeLexicalEnvironment:Qu,updateModifiers:sc};return g;function ne(_,W){if(_===void 0||_===e.emptyArray)_=[];else if(e.isNodeArray(_)){if(W===void 0||_.hasTrailingComma===W)return _.transformFlags===void 0&&T(_),e.Debug.attachNodeArrayDebugInfo(_),_;var Te=_.slice();return Te.pos=_.pos,Te.end=_.end,Te.hasTrailingComma=W,Te.transformFlags=_.transformFlags,e.Debug.attachNodeArrayDebugInfo(Te),Te}var cr=_.length,ni=cr>=1&&cr<=4?_.slice():_;return e.setTextRangePosEnd(ni,-1,-1),ni.hasTrailingComma=!!W,T(ni),e.Debug.attachNodeArrayDebugInfo(ni),ni}function ue(_){return $.createBaseNode(_)}function We(_,W,Te){var cr=ue(_);return cr.decorators=bc(W),cr.modifiers=bc(Te),cr.transformFlags|=f(cr.decorators)|f(cr.modifiers),cr.symbol=void 0,cr.localSymbol=void 0,cr.locals=void 0,cr.nextContainer=void 0,cr}function Fe(_,W,Te,cr){var ni=We(_,W,Te);if(cr=Mc(cr),ni.name=cr,cr)switch(ni.kind){case 169:case 172:case 173:case 167:case 296:if(e.isIdentifier(cr)){ni.transformFlags|=m(cr);break}default:ni.transformFlags|=oe(cr);break}return ni}function Z(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.typeParameters=bc(ni),rt.transformFlags|=f(rt.typeParameters),ni&&(rt.transformFlags|=1),rt}function Be(_,W,Te,cr,ni,rt,yt){var Xa=Z(_,W,Te,cr,ni);return Xa.parameters=ne(rt),Xa.type=yt,Xa.transformFlags|=f(Xa.parameters)|oe(Xa.type),yt&&(Xa.transformFlags|=1),Xa}function ge(_,W){return W.typeArguments&&(_.typeArguments=W.typeArguments),A(_,W)}function Re(_,W,Te,cr,ni,rt,yt,Xa){var vo=Be(_,W,Te,cr,ni,rt,yt);return vo.body=Xa,vo.transformFlags|=oe(vo.body)&-16777217,Xa||(vo.transformFlags|=1),vo}function ze(_,W){return W.exclamationToken&&(_.exclamationToken=W.exclamationToken),W.typeArguments&&(_.typeArguments=W.typeArguments),ge(_,W)}function Ee(_,W,Te,cr,ni,rt){var yt=Z(_,W,Te,cr,ni);return yt.heritageClauses=bc(rt),yt.transformFlags|=f(yt.heritageClauses),yt}function He(_,W,Te,cr,ni,rt,yt){var Xa=Ee(_,W,Te,cr,ni,rt);return Xa.members=ne(yt),Xa.transformFlags|=f(Xa.members),Xa}function rr(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.initializer=ni,rt.transformFlags|=oe(rt.initializer),rt}function Ie(_,W,Te,cr,ni,rt){var yt=rr(_,W,Te,cr,rt);return yt.type=ni,yt.transformFlags|=oe(ni),ni&&(yt.transformFlags|=1),yt}function _e(_,W){var Te=yr(_);return Te.text=W,Te}function we(_,W){W===void 0&&(W=0);var Te=_e(8,typeof _=="number"?_+"":_);return Te.numericLiteralFlags=W,W&384&&(Te.transformFlags|=1024),Te}function de(_){var W=_e(9,typeof _=="string"?_:e.pseudoBigIntToString(_)+"n");return W.transformFlags|=4,W}function ye(_,W){var Te=_e(10,_);return Te.singleQuote=W,Te}function Ae(_,W,Te){var cr=ye(_,W);return cr.hasExtendedUnicodeEscape=Te,Te&&(cr.transformFlags|=1024),cr}function er(_){var W=ye(e.getTextOfIdentifierOrLiteral(_),void 0);return W.textSourceNode=_,W}function ir(_){var W=_e(13,_);return W}function Cr(_,W){switch(_){case 8:return we(W,0);case 9:return de(W);case 10:return Ae(W,void 0);case 11:return fl(W,!1);case 12:return fl(W,!0);case 13:return ir(W);case 14:return xc(_,W,void 0,0)}}function Ye(_,W){W===void 0&&_&&(W=e.stringToToken(_)),W===79&&(W=void 0);var Te=$.createBaseIdentifierNode(79);return Te.originalKeywordKind=W,Te.escapedText=e.escapeLeadingUnderscores(_),Te}function Br(_,W){var Te=Ye(_,void 0);return Te.autoGenerateFlags=W,Te.autoGenerateId=a,a++,Te}function Er(_,W,Te){var cr=Ye(_,Te);return W&&(cr.typeArguments=ne(W)),cr.originalKeywordKind===132&&(cr.transformFlags|=16777216),cr}function Ne(_,W){return _.typeArguments!==W?A(Er(e.idText(_),W),_):_}function n(_,W){var Te=1;W&&(Te|=8);var cr=Br("",Te);return _&&_(cr),cr}function lr(_){var W=2;return _&&(W|=8),Br("",W)}function be(_,W){return W===void 0&&(W=0),e.Debug.assert(!(W&7),"Argument out of range: flags"),e.Debug.assert((W&48)!==32,"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),Br(_,3|W)}function Ge(_,W){W===void 0&&(W=0),e.Debug.assert(!(W&7),"Argument out of range: flags");var Te=Br(_&&e.isIdentifier(_)?e.idText(_):"",4|W);return Te.original=_,Te}function ur(_){e.startsWith(_,"#")||e.Debug.fail("First character of private identifier must be #: "+_);var W=$.createBasePrivateIdentifierNode(80);return W.escapedText=e.escapeLeadingUnderscores(_),W.transformFlags|=8388608,W}function yr(_){return $.createBaseTokenNode(_)}function Ir(_){e.Debug.assert(_>=0&&_<=160,"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=yr(_),Te=0;switch(_){case 131:Te=384;break;case 123:case 121:case 122:case 145:case 126:case 135:case 85:case 130:case 147:case 158:case 143:case 148:case 101:case 144:case 159:case 150:case 133:case 151:case 114:case 155:case 153:Te=1;break;case 106:Te=33555456;break;case 124:Te=1024;break;case 108:Te=8192;break}return Te&&(W.transformFlags|=Te),W}function wr(){return Ir(106)}function Ur(){return Ir(108)}function ii(){return Ir(104)}function mi(){return Ir(110)}function pe(){return Ir(95)}function or(_){return Ir(_)}function qr(_){var W=[];return _&1&&W.push(or(93)),_&2&&W.push(or(135)),_&512&&W.push(or(88)),_&2048&&W.push(or(85)),_&4&&W.push(or(123)),_&8&&W.push(or(121)),_&16&&W.push(or(122)),_&128&&W.push(or(126)),_&32&&W.push(or(124)),_&16384&&W.push(or(159)),_&64&&W.push(or(145)),_&256&&W.push(or(131)),_&32768&&W.push(or(101)),_&65536&&W.push(or(144)),W.length?W:void 0}function si(_,W){var Te=ue(161);return Te.left=_,Te.right=Mc(W),Te.transformFlags|=oe(Te.left)|m(Te.right),Te}function Di(_,W,Te){return _.left!==W||_.right!==Te?A(si(W,Te),_):_}function wi(_){var W=ue(162);return W.expression=y().parenthesizeExpressionOfComputedPropertyName(_),W.transformFlags|=oe(W.expression)|1024|65536,W}function Xi(_,W){return _.expression!==W?A(wi(W),_):_}function et(_,W,Te,cr){var ni,rt,yt;_===void 0||e.isArray(_)?(rt=_,ni=W,yt=Te):(rt=void 0,ni=_,yt=W);var Xa=Fe(163,void 0,rt,ni);return Xa.constraint=yt,Xa.default=cr,Xa.transformFlags=1,Xa}function Gi(_,W,Te,cr,ni){var rt,yt,Xa;return W===void 0||e.isArray(W)?(yt=W,rt=Te,Xa=cr):(yt=void 0,rt=W,Xa=Te),_.modifiers!==yt||_.name!==rt||_.constraint!==Xa||_.default!==ni?A(et(yt,rt,Xa,ni),_):_}function Wt(_,W,Te,cr,ni,rt,yt){var Xa=Ie(164,_,W,cr,rt,yt&&y().parenthesizeExpressionForDisallowedComma(yt));return Xa.dotDotDotToken=Te,Xa.questionToken=ni,e.isThisIdentifier(Xa.name)?Xa.transformFlags=1:(Xa.transformFlags|=oe(Xa.dotDotDotToken)|oe(Xa.questionToken),ni&&(Xa.transformFlags|=1),e.modifiersToFlags(Xa.modifiers)&16476&&(Xa.transformFlags|=4096),(yt||Te)&&(Xa.transformFlags|=1024)),Xa}function Zt(_,W,Te,cr,ni,rt,yt,Xa){return _.decorators!==W||_.modifiers!==Te||_.dotDotDotToken!==cr||_.name!==ni||_.questionToken!==rt||_.type!==yt||_.initializer!==Xa?A(Wt(W,Te,cr,ni,rt,yt,Xa),_):_}function _r(_){var W=ue(165);return W.expression=y().parenthesizeLeftSideOfAccess(_),W.transformFlags|=oe(W.expression)|1|4096,W}function pi(_,W){return _.expression!==W?A(_r(W),_):_}function ae(_,W,Te,cr){var ni=Fe(166,void 0,_,W);return ni.type=cr,ni.questionToken=Te,ni.transformFlags=1,ni}function Xe(_,W,Te,cr,ni){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.type!==ni?A(ae(W,Te,cr,ni),_):_}function Jr(_,W,Te,cr,ni,rt){var yt=Ie(167,_,W,Te,ni,rt);return yt.questionToken=cr&&e.isQuestionToken(cr)?cr:void 0,yt.exclamationToken=cr&&e.isExclamationToken(cr)?cr:void 0,yt.transformFlags|=oe(yt.questionToken)|oe(yt.exclamationToken)|8388608,(e.isComputedPropertyName(yt.name)||e.hasStaticModifier(yt)&&yt.initializer)&&(yt.transformFlags|=4096),(cr||e.modifiersToFlags(yt.modifiers)&2)&&(yt.transformFlags|=1),yt}function ti(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.questionToken!==(ni!==void 0&&e.isQuestionToken(ni)?ni:void 0)||_.exclamationToken!==(ni!==void 0&&e.isExclamationToken(ni)?ni:void 0)||_.type!==rt||_.initializer!==yt?A(Jr(W,Te,cr,ni,rt,yt),_):_}function Ze(_,W,Te,cr,ni,rt){var yt=Be(168,void 0,_,W,cr,ni,rt);return yt.questionToken=Te,yt.transformFlags=1,yt}function Sr(_,W,Te,cr,ni,rt,yt){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.typeParameters!==ni||_.parameters!==rt||_.type!==yt?ge(Ze(W,Te,cr,ni,rt,yt),_):_}function zr(_,W,Te,cr,ni,rt,yt,Xa,vo){var Vs=Re(169,_,W,cr,rt,yt,Xa,vo);return Vs.asteriskToken=Te,Vs.questionToken=ni,Vs.transformFlags|=oe(Vs.asteriskToken)|oe(Vs.questionToken)|1024,ni&&(Vs.transformFlags|=1),e.modifiersToFlags(Vs.modifiers)&256?Te?Vs.transformFlags|=128:Vs.transformFlags|=256:Te&&(Vs.transformFlags|=2048),Vs}function Wr(_,W,Te,cr,ni,rt,yt,Xa,vo,Vs){return _.decorators!==W||_.modifiers!==Te||_.asteriskToken!==cr||_.name!==ni||_.questionToken!==rt||_.typeParameters!==yt||_.parameters!==Xa||_.type!==vo||_.body!==Vs?ze(zr(W,Te,cr,ni,rt,yt,Xa,vo,Vs),_):_}function Je(_,W,Te){var cr=Z(170,_,W,void 0,void 0);return cr.body=Te,cr.transformFlags=oe(Te)|8388608,cr}function xe(_,W,Te,cr){return _.decorators!==W||_.modifier!==Te||_.body!==cr?A(Je(W,Te,cr),_):_}function vr(_,W,Te,cr){var ni=Re(171,_,W,void 0,void 0,Te,void 0,cr);return ni.transformFlags|=1024,ni}function mr(_,W,Te,cr,ni){return _.decorators!==W||_.modifiers!==Te||_.parameters!==cr||_.body!==ni?ze(vr(W,Te,cr,ni),_):_}function Ar(_,W,Te,cr,ni,rt){return Re(172,_,W,Te,void 0,cr,ni,rt)}function Oe(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.type!==rt||_.body!==yt?ze(Ar(W,Te,cr,ni,rt,yt),_):_}function nr(_,W,Te,cr,ni){return Re(173,_,W,Te,void 0,cr,void 0,ni)}function Mr(_,W,Te,cr,ni,rt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.body!==rt?ze(nr(W,Te,cr,ni,rt),_):_}function Pe(_,W,Te){var cr=Be(174,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Ue(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(Pe(W,Te,cr),_):_}function fr(_,W,Te){var cr=Be(175,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function De(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(fr(W,Te,cr),_):_}function gr(_,W,Te,cr){var ni=Be(176,_,W,void 0,void 0,Te,cr);return ni.transformFlags=1,ni}function Vr(_,W,Te,cr,ni){return _.parameters!==cr||_.type!==ni||_.decorators!==W||_.modifiers!==Te?ge(gr(W,Te,cr,ni),_):_}function Tr(_,W){var Te=ue(199);return Te.type=_,Te.literal=W,Te.transformFlags=1,Te}function vi(_,W,Te){return _.type!==W||_.literal!==Te?A(Tr(W,Te),_):_}function Ui(_){return Ir(_)}function Yi(_,W,Te){var cr=ue(177);return cr.assertsModifier=_,cr.parameterName=Mc(W),cr.type=Te,cr.transformFlags=1,cr}function Wi(_,W,Te,cr){return _.assertsModifier!==W||_.parameterName!==Te||_.type!==cr?A(Yi(W,Te,cr),_):_}function ct(_,W){var Te=ue(178);return Te.typeName=Mc(_),Te.typeArguments=W&&y().parenthesizeTypeArguments(ne(W)),Te.transformFlags=1,Te}function Li(_,W,Te){return _.typeName!==W||_.typeArguments!==Te?A(ct(W,Te),_):_}function nt(_,W,Te){var cr=Be(179,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Mt(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(nt(W,Te,cr),_):_}function xt(){for(var _=[],W=0;W0;default:return!0}}function G_(_,W,Te,cr){cr===void 0&&(cr=!1);var ni=e.skipOuterExpressions(_,15),rt,yt;return e.isSuperProperty(ni)?(rt=Ur(),yt=ni):e.isSuperKeyword(ni)?(rt=Ur(),yt=Te!==void 0&&Te<2?e.setTextRange(Er("_super"),ni):ni):e.getEmitFlags(ni)&4096?(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(ni)):e.isPropertyAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Zr(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.name),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):e.isElementAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Ct(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.argumentExpression),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(_)),{target:yt,thisArg:rt}}function Le(_,W){return Zr(hs(qe([nr(void 0,void 0,"value",[Wt(void 0,void 0,void 0,_,void 0,void 0,void 0)],bn([Mo(W)]))])),"value")}function Nr(_){return _.length>10?Xc(_):e.reduceLeft(_,g.createComma)}function ri(_,W,Te,cr){cr===void 0&&(cr=0);var ni=e.getNameOfDeclaration(_);if(ni&&e.isIdentifier(ni)&&!e.isGeneratedIdentifier(ni)){var rt=e.setParent(e.setTextRange(v(ni),ni),ni.parent);return cr|=e.getEmitFlags(ni),Te||(cr|=48),W||(cr|=1536),cr&&e.setEmitFlags(rt,cr),rt}return Ge(_)}function di(_,W,Te){return ri(_,W,Te,49152)}function Mi(_,W,Te){return ri(_,W,Te,16384)}function st(_,W,Te){return ri(_,W,Te,8192)}function ra(_,W,Te){return ri(_,W,Te)}function Ta(_,W,Te,cr){var ni=Zr(_,e.nodeIsSynthesized(W)?W:v(W));e.setTextRange(ni,W);var rt=0;return cr||(rt|=48),Te||(rt|=1536),rt&&e.setEmitFlags(ni,rt),ni}function ha(_,W,Te,cr){return _&&e.hasSyntacticModifier(W,1)?Ta(_,ri(W),Te,cr):st(W,Te,cr)}function Na(_,W,Te,cr){var ni=co(_,W,0,Te);return ts(_,W,ni,cr)}function In(_){return e.isStringLiteral(_.expression)&&_.expression.text==="use strict"}function qo(){return e.startOnNewLine(Mo(Ae("use strict")))}function co(_,W,Te,cr){Te===void 0&&(Te=0),e.Debug.assert(W.length===0,"Prologue directives should be at the first statement in the target statements array");for(var ni=!1,rt=_.length;TeXa&&Vs.splice.apply(Vs,Ve([ni,0],W.slice(Xa,vo),!1)),Xa>yt&&Vs.splice.apply(Vs,Ve([cr,0],W.slice(yt,Xa),!1)),yt>rt&&Vs.splice.apply(Vs,Ve([Te,0],W.slice(rt,yt),!1)),rt>0)if(Te===0)Vs.splice.apply(Vs,Ve([0,0],W.slice(0,rt),!1));else{for(var H_=new e.Map,y_=0;y_=0;y_--){var jp=W[y_];H_.has(jp.expression.text)||Vs.unshift(jp)}}return e.isNodeArray(_)?e.setTextRange(ne(Vs,_.hasTrailingComma),_):_}function sc(_,W){var Te,cr;return typeof W=="number"?cr=qr(W):cr=W,e.isParameter(_)?Zt(_,_.decorators,cr,_.dotDotDotToken,_.name,_.questionToken,_.type,_.initializer):e.isPropertySignature(_)?Xe(_,cr,_.name,_.questionToken,_.type):e.isPropertyDeclaration(_)?ti(_,_.decorators,cr,_.name,(Te=_.questionToken)!==null&&Te!==void 0?Te:_.exclamationToken,_.type,_.initializer):e.isMethodSignature(_)?Sr(_,cr,_.name,_.questionToken,_.typeParameters,_.parameters,_.type):e.isMethodDeclaration(_)?Wr(_,_.decorators,cr,_.asteriskToken,_.name,_.questionToken,_.typeParameters,_.parameters,_.type,_.body):e.isConstructorDeclaration(_)?mr(_,_.decorators,cr,_.parameters,_.body):e.isGetAccessorDeclaration(_)?Oe(_,_.decorators,cr,_.name,_.parameters,_.type,_.body):e.isSetAccessorDeclaration(_)?Mr(_,_.decorators,cr,_.name,_.parameters,_.body):e.isIndexSignatureDeclaration(_)?Vr(_,_.decorators,cr,_.parameters,_.type):e.isFunctionExpression(_)?Qs(_,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isArrowFunction(_)?ds(_,cr,_.typeParameters,_.parameters,_.type,_.equalsGreaterThanToken,_.body):e.isClassExpression(_)?Uu(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isVariableStatement(_)?rn(_,cr,_.declarationList):e.isFunctionDeclaration(_)?gu(_,_.decorators,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isClassDeclaration(_)?sd(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isInterfaceDeclaration(_)?va(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isTypeAliasDeclaration(_)?qs(_,_.decorators,cr,_.name,_.typeParameters,_.type):e.isEnumDeclaration(_)?ns(_,_.decorators,cr,_.name,_.members):e.isModuleDeclaration(_)?hc(_,_.decorators,cr,_.name,_.body):e.isImportEqualsDeclaration(_)?fd(_,_.decorators,cr,_.isTypeOnly,_.name,_.moduleReference):e.isImportDeclaration(_)?Sp(_,_.decorators,cr,_.importClause,_.moduleSpecifier,_.assertClause):e.isExportAssignment(_)?gd(_,_.decorators,cr,_.expression):e.isExportDeclaration(_)?$l(_,_.decorators,cr,_.isTypeOnly,_.exportClause,_.moduleSpecifier,_.assertClause):e.Debug.assertNever(_)}function bc(_){return _?ne(_):void 0}function Mc(_){return typeof _=="string"?Er(_):_}function Yu(_){return typeof _=="string"?Ae(_):typeof _=="number"?we(_):typeof _=="boolean"?_?mi():pe():_}function Rl(_){return typeof _=="number"?Ir(_):_}function Lc(_){return _&&e.isNotEmittedStatement(_)?e.setTextRange(he(Jn(),_),_):_}}e.createNodeFactory=I;function R(Q,$){return Q!==$&&e.setTextRange(Q,$),Q}function E(Q,$){return Q!==$&&(he(Q,$),e.setTextRange(Q,$)),Q}function X(Q){switch(Q){case 343:return"type";case 341:return"returns";case 342:return"this";case 339:return"enum";case 330:return"author";case 332:return"class";case 333:return"public";case 334:return"private";case 335:return"protected";case 336:return"readonly";case 337:return"override";case 344:return"template";case 345:return"typedef";case 340:return"param";case 347:return"prop";case 338:return"callback";case 328:return"augments";case 329:return"implements";default:return e.Debug.fail("Unsupported kind: ".concat(e.Debug.formatSyntaxKind(Q)))}}var le,N={};function p(Q,$){switch(le||(le=e.createScanner(99,!1,0)),Q){case 14:le.setText("`"+$+"`");break;case 15:le.setText("`"+$+"${");break;case 16:le.setText("}"+$+"${");break;case 17:le.setText("}"+$+"`");break}var A=le.scan();if(A===19&&(A=le.reScanTemplateToken(!1)),le.isUnterminated())return le.setText(void 0),N;var y;switch(A){case 14:case 15:case 16:case 17:y=le.getTokenValue();break}return y===void 0||le.scan()!==1?(le.setText(void 0),N):(le.setText(void 0),y)}function m(Q){return oe(Q)&-16777217}function G(Q,$){return $|Q.transformFlags&33562624}function oe(Q){if(!Q)return 0;var $=Q.transformFlags&~K(Q.kind);return e.isNamedDeclaration(Q)&&e.isPropertyName(Q.name)?G(Q.name,$):$}function f(Q){return Q?Q.transformFlags:0}function T(Q){for(var $=0,A=0,y=Q;A=177&&Q<=200)return-2;switch(Q){case 208:case 209:case 204:return 536887296;case 261:return 589443072;case 164:return 536870912;case 214:return 557748224;case 213:case 256:return 591310848;case 255:return 537165824;case 257:case 226:return 536940544;case 171:return 591306752;case 167:return 570433536;case 169:case 172:case 173:return 574529536;case 130:case 147:case 158:case 143:case 150:case 148:case 133:case 151:case 114:case 163:case 166:case 168:case 174:case 175:case 176:case 258:case 259:return-2;case 205:return 536973312;case 292:return 536903680;case 201:case 202:return 536887296;case 211:case 229:case 350:case 212:case 106:return 536870912;case 206:case 207:return 536870912;default:return 536870912}}e.getTransformFlagsSubtreeExclusions=K;var b=e.createBaseNodeFactory();function se(Q){return Q.flags|=8,Q}var J={createBaseSourceFileNode:function(Q){return se(b.createBaseSourceFileNode(Q))},createBaseIdentifierNode:function(Q){return se(b.createBaseIdentifierNode(Q))},createBasePrivateIdentifierNode:function(Q){return se(b.createBasePrivateIdentifierNode(Q))},createBaseTokenNode:function(Q){return se(b.createBaseTokenNode(Q))},createBaseNode:function(Q){return se(b.createBaseNode(Q))}};e.factory=I(4,J);function ie(Q,$,A){var y,V,L,P,k,Y,U,j,H,w;e.isString(Q)?(L="",P=Q,k=Q.length,Y=$,U=A):(e.Debug.assert($==="js"||$==="dts"),L=($==="js"?Q.javascriptPath:Q.declarationPath)||"",Y=$==="js"?Q.javascriptMapPath:Q.declarationMapPath,j=function(){return $==="js"?Q.javascriptText:Q.declarationText},H=function(){return $==="js"?Q.javascriptMapText:Q.declarationMapText},k=function(){return j().length},Q.buildInfo&&Q.buildInfo.bundle&&(e.Debug.assert(A===void 0||typeof A=="boolean"),y=A,V=$==="js"?Q.buildInfo.bundle.js:Q.buildInfo.bundle.dts,w=Q.oldFileOfCurrentEmit));var l=w?q(e.Debug.checkDefined(V)):B(V,y,k);return l.fileName=L,l.sourceMapPath=Y,l.oldFileOfCurrentEmit=w,j&&H?(Object.defineProperty(l,"text",{get:j}),Object.defineProperty(l,"sourceMapText",{get:H})):(e.Debug.assert(!w),l.text=P!=null?P:"",l.sourceMapText=U),l}e.createUnparsedSourceFile=ie;function B(Q,$,A){for(var y,V,L,P,k,Y,U,j,H=0,w=Q?Q.sections:e.emptyArray;H0&&(U[w-H]=l)}H>0&&(U.length-=H)}}e.moveEmitHelpers=x;function Q(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.snippetElement}e.getSnippetElement=Q;function $(L,P){var k=a(L);return k.snippetElement=P,L}e.setSnippetElement=$;function A(L){return a(L).flags|=134217728,L}e.ignoreSourceNewlines=A;function y(L,P){var k=a(L);return k.typeNode=P,L}e.setTypeNode=y;function V(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.typeNode}e.getTypeNode=V})(ke||(ke={}));var ke;(function(e){function a(le){var N=le.factory,p=e.memoize(function(){return e.setEmitFlags(N.createTrue(),268435456)}),m=e.memoize(function(){return e.setEmitFlags(N.createFalse(),268435456)});return{getUnscopedHelperName:G,createDecorateHelper:oe,createMetadataHelper:f,createParamHelper:T,createAssignHelper:K,createAwaitHelper:b,createAsyncGeneratorHelper:se,createAsyncDelegatorHelper:J,createAsyncValuesHelper:ie,createRestHelper:B,createAwaiterHelper:q,createExtendsHelper:O,createTemplateObjectHelper:ve,createSpreadArrayHelper:ee,createValuesHelper:he,createReadHelper:F,createGeneratorHelper:x,createCreateBindingHelper:Q,createImportStarHelper:$,createImportStarCallbackHelper:A,createImportDefaultHelper:y,createExportStarHelper:V,createClassPrivateFieldGetHelper:L,createClassPrivateFieldSetHelper:P,createClassPrivateFieldInHelper:k};function G(Y){return e.setEmitFlags(N.createIdentifier(Y),4098)}function oe(Y,U,j,H){le.requestEmitHelper(e.decorateHelper);var w=[];return w.push(N.createArrayLiteralExpression(Y,!0)),w.push(U),j&&(w.push(j),H&&w.push(H)),N.createCallExpression(G("__decorate"),void 0,w)}function f(Y,U){return le.requestEmitHelper(e.metadataHelper),N.createCallExpression(G("__metadata"),void 0,[N.createStringLiteral(Y),U])}function T(Y,U,j){return le.requestEmitHelper(e.paramHelper),e.setTextRange(N.createCallExpression(G("__param"),void 0,[N.createNumericLiteral(U+""),Y]),j)}function K(Y){return e.getEmitScriptTarget(le.getCompilerOptions())>=2?N.createCallExpression(N.createPropertyAccessExpression(N.createIdentifier("Object"),"assign"),void 0,Y):(le.requestEmitHelper(e.assignHelper),N.createCallExpression(G("__assign"),void 0,Y))}function b(Y){return le.requestEmitHelper(e.awaitHelper),N.createCallExpression(G("__await"),void 0,[Y])}function se(Y,U){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncGeneratorHelper),(Y.emitNode||(Y.emitNode={})).flags|=786432,N.createCallExpression(G("__asyncGenerator"),void 0,[U?N.createThis():N.createVoidZero(),N.createIdentifier("arguments"),Y])}function J(Y){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncDelegator),N.createCallExpression(G("__asyncDelegator"),void 0,[Y])}function ie(Y){return le.requestEmitHelper(e.asyncValues),N.createCallExpression(G("__asyncValues"),void 0,[Y])}function B(Y,U,j,H){le.requestEmitHelper(e.restHelper);for(var w=[],l=0,d=0;d= 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; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (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; + };`},e.classPrivateFieldInHelper={name:"typescript:classPrivateFieldIn",importName:"__classPrivateFieldIn",scoped:!1,text:` + var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); + };`};var R;function E(){return R||(R=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.classPrivateFieldInHelper,e.createBindingHelper,e.setModuleDefaultHelper],function(le){return le.name}))}e.getAllUnscopedEmitHelpers=E,e.asyncSuperHelper={name:"typescript:async-super",scoped:!0,text:I(oi([` + const `," = name => super[name];"],[` + const `," = name => super[name];"]),"_superIndex")},e.advancedAsyncSuperHelper={name:"typescript:advanced-async-super",scoped:!0,text:I(oi([` + 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 X(le,N){return e.isCallExpression(le)&&e.isIdentifier(le.expression)&&(e.getEmitFlags(le.expression)&4096)!==0&&le.expression.escapedText===N}e.isCallToHelper=X})(ke||(ke={}));var ke;(function(e){function a(jr){return jr.kind===8}e.isNumericLiteral=a;function C(jr){return jr.kind===9}e.isBigIntLiteral=C;function I(jr){return jr.kind===10}e.isStringLiteral=I;function R(jr){return jr.kind===11}e.isJsxText=R;function E(jr){return jr.kind===13}e.isRegularExpressionLiteral=E;function X(jr){return jr.kind===14}e.isNoSubstitutionTemplateLiteral=X;function le(jr){return jr.kind===15}e.isTemplateHead=le;function N(jr){return jr.kind===16}e.isTemplateMiddle=N;function p(jr){return jr.kind===17}e.isTemplateTail=p;function m(jr){return jr.kind===25}e.isDotDotDotToken=m;function G(jr){return jr.kind===27}e.isCommaToken=G;function oe(jr){return jr.kind===39}e.isPlusToken=oe;function f(jr){return jr.kind===40}e.isMinusToken=f;function T(jr){return jr.kind===41}e.isAsteriskToken=T;function K(jr){return jr.kind===53}e.isExclamationToken=K;function b(jr){return jr.kind===57}e.isQuestionToken=b;function se(jr){return jr.kind===58}e.isColonToken=se;function J(jr){return jr.kind===28}e.isQuestionDotToken=J;function ie(jr){return jr.kind===38}e.isEqualsGreaterThanToken=ie;function B(jr){return jr.kind===79}e.isIdentifier=B;function q(jr){return jr.kind===80}e.isPrivateIdentifier=q;function O(jr){return jr.kind===93}e.isExportModifier=O;function ve(jr){return jr.kind===131}e.isAsyncModifier=ve;function ee(jr){return jr.kind===128}e.isAssertsKeyword=ee;function he(jr){return jr.kind===132}e.isAwaitKeyword=he;function F(jr){return jr.kind===145}e.isReadonlyKeyword=F;function x(jr){return jr.kind===124}e.isStaticModifier=x;function Q(jr){return jr.kind===126}e.isAbstractModifier=Q;function $(jr){return jr.kind===106}e.isSuperKeyword=$;function A(jr){return jr.kind===100}e.isImportKeyword=A;function y(jr){return jr.kind===161}e.isQualifiedName=y;function V(jr){return jr.kind===162}e.isComputedPropertyName=V;function L(jr){return jr.kind===163}e.isTypeParameterDeclaration=L;function P(jr){return jr.kind===164}e.isParameter=P;function k(jr){return jr.kind===165}e.isDecorator=k;function Y(jr){return jr.kind===166}e.isPropertySignature=Y;function U(jr){return jr.kind===167}e.isPropertyDeclaration=U;function j(jr){return jr.kind===168}e.isMethodSignature=j;function H(jr){return jr.kind===169}e.isMethodDeclaration=H;function w(jr){return jr.kind===170}e.isClassStaticBlockDeclaration=w;function l(jr){return jr.kind===171}e.isConstructorDeclaration=l;function d(jr){return jr.kind===172}e.isGetAccessorDeclaration=d;function D(jr){return jr.kind===173}e.isSetAccessorDeclaration=D;function fe(jr){return jr.kind===174}e.isCallSignatureDeclaration=fe;function g(jr){return jr.kind===175}e.isConstructSignatureDeclaration=g;function ne(jr){return jr.kind===176}e.isIndexSignatureDeclaration=ne;function ue(jr){return jr.kind===177}e.isTypePredicateNode=ue;function We(jr){return jr.kind===178}e.isTypeReferenceNode=We;function Fe(jr){return jr.kind===179}e.isFunctionTypeNode=Fe;function Z(jr){return jr.kind===180}e.isConstructorTypeNode=Z;function Be(jr){return jr.kind===181}e.isTypeQueryNode=Be;function ge(jr){return jr.kind===182}e.isTypeLiteralNode=ge;function Re(jr){return jr.kind===183}e.isArrayTypeNode=Re;function ze(jr){return jr.kind===184}e.isTupleTypeNode=ze;function Ee(jr){return jr.kind===197}e.isNamedTupleMember=Ee;function He(jr){return jr.kind===185}e.isOptionalTypeNode=He;function rr(jr){return jr.kind===186}e.isRestTypeNode=rr;function Ie(jr){return jr.kind===187}e.isUnionTypeNode=Ie;function _e(jr){return jr.kind===188}e.isIntersectionTypeNode=_e;function we(jr){return jr.kind===189}e.isConditionalTypeNode=we;function de(jr){return jr.kind===190}e.isInferTypeNode=de;function ye(jr){return jr.kind===191}e.isParenthesizedTypeNode=ye;function Ae(jr){return jr.kind===192}e.isThisTypeNode=Ae;function er(jr){return jr.kind===193}e.isTypeOperatorNode=er;function ir(jr){return jr.kind===194}e.isIndexedAccessTypeNode=ir;function Cr(jr){return jr.kind===195}e.isMappedTypeNode=Cr;function Ye(jr){return jr.kind===196}e.isLiteralTypeNode=Ye;function Br(jr){return jr.kind===200}e.isImportTypeNode=Br;function Er(jr){return jr.kind===199}e.isTemplateLiteralTypeSpan=Er;function Ne(jr){return jr.kind===198}e.isTemplateLiteralTypeNode=Ne;function n(jr){return jr.kind===201}e.isObjectBindingPattern=n;function lr(jr){return jr.kind===202}e.isArrayBindingPattern=lr;function be(jr){return jr.kind===203}e.isBindingElement=be;function Ge(jr){return jr.kind===204}e.isArrayLiteralExpression=Ge;function ur(jr){return jr.kind===205}e.isObjectLiteralExpression=ur;function yr(jr){return jr.kind===206}e.isPropertyAccessExpression=yr;function Ir(jr){return jr.kind===207}e.isElementAccessExpression=Ir;function wr(jr){return jr.kind===208}e.isCallExpression=wr;function Ur(jr){return jr.kind===209}e.isNewExpression=Ur;function ii(jr){return jr.kind===210}e.isTaggedTemplateExpression=ii;function mi(jr){return jr.kind===211}e.isTypeAssertionExpression=mi;function pe(jr){return jr.kind===212}e.isParenthesizedExpression=pe;function or(jr){return jr.kind===213}e.isFunctionExpression=or;function qr(jr){return jr.kind===214}e.isArrowFunction=qr;function si(jr){return jr.kind===215}e.isDeleteExpression=si;function Di(jr){return jr.kind===216}e.isTypeOfExpression=Di;function wi(jr){return jr.kind===217}e.isVoidExpression=wi;function Xi(jr){return jr.kind===218}e.isAwaitExpression=Xi;function et(jr){return jr.kind===219}e.isPrefixUnaryExpression=et;function Gi(jr){return jr.kind===220}e.isPostfixUnaryExpression=Gi;function Wt(jr){return jr.kind===221}e.isBinaryExpression=Wt;function Zt(jr){return jr.kind===222}e.isConditionalExpression=Zt;function _r(jr){return jr.kind===223}e.isTemplateExpression=_r;function pi(jr){return jr.kind===224}e.isYieldExpression=pi;function ae(jr){return jr.kind===225}e.isSpreadElement=ae;function Xe(jr){return jr.kind===226}e.isClassExpression=Xe;function Jr(jr){return jr.kind===227}e.isOmittedExpression=Jr;function ti(jr){return jr.kind===228}e.isExpressionWithTypeArguments=ti;function Ze(jr){return jr.kind===229}e.isAsExpression=Ze;function Sr(jr){return jr.kind===230}e.isNonNullExpression=Sr;function zr(jr){return jr.kind===231}e.isMetaProperty=zr;function Wr(jr){return jr.kind===232}e.isSyntheticExpression=Wr;function Je(jr){return jr.kind===350}e.isPartiallyEmittedExpression=Je;function xe(jr){return jr.kind===351}e.isCommaListExpression=xe;function vr(jr){return jr.kind===233}e.isTemplateSpan=vr;function mr(jr){return jr.kind===234}e.isSemicolonClassElement=mr;function Ar(jr){return jr.kind===235}e.isBlock=Ar;function Oe(jr){return jr.kind===237}e.isVariableStatement=Oe;function nr(jr){return jr.kind===236}e.isEmptyStatement=nr;function Mr(jr){return jr.kind===238}e.isExpressionStatement=Mr;function Pe(jr){return jr.kind===239}e.isIfStatement=Pe;function Ue(jr){return jr.kind===240}e.isDoStatement=Ue;function fr(jr){return jr.kind===241}e.isWhileStatement=fr;function De(jr){return jr.kind===242}e.isForStatement=De;function gr(jr){return jr.kind===243}e.isForInStatement=gr;function Vr(jr){return jr.kind===244}e.isForOfStatement=Vr;function Tr(jr){return jr.kind===245}e.isContinueStatement=Tr;function vi(jr){return jr.kind===246}e.isBreakStatement=vi;function Ui(jr){return jr.kind===247}e.isReturnStatement=Ui;function Yi(jr){return jr.kind===248}e.isWithStatement=Yi;function Wi(jr){return jr.kind===249}e.isSwitchStatement=Wi;function ct(jr){return jr.kind===250}e.isLabeledStatement=ct;function Li(jr){return jr.kind===251}e.isThrowStatement=Li;function nt(jr){return jr.kind===252}e.isTryStatement=nt;function Mt(jr){return jr.kind===253}e.isDebuggerStatement=Mt;function xt(jr){return jr.kind===254}e.isVariableDeclaration=xt;function ut(jr){return jr.kind===255}e.isVariableDeclarationList=ut;function Dt(jr){return jr.kind===256}e.isFunctionDeclaration=Dt;function Rt(jr){return jr.kind===257}e.isClassDeclaration=Rt;function Ii(jr){return jr.kind===258}e.isInterfaceDeclaration=Ii;function Ki(jr){return jr.kind===259}e.isTypeAliasDeclaration=Ki;function Fi(jr){return jr.kind===260}e.isEnumDeclaration=Fi;function ui(jr){return jr.kind===261}e.isModuleDeclaration=ui;function Bt(jr){return jr.kind===262}e.isModuleBlock=Bt;function wt(jr){return jr.kind===263}e.isCaseBlock=wt;function na(jr){return jr.kind===264}e.isNamespaceExportDeclaration=na;function Ai(jr){return jr.kind===265}e.isImportEqualsDeclaration=Ai;function Oi(jr){return jr.kind===266}e.isImportDeclaration=Oi;function ji(jr){return jr.kind===267}e.isImportClause=ji;function Vi(jr){return jr.kind===293}e.isAssertClause=Vi;function at(jr){return jr.kind===294}e.isAssertEntry=at;function At(jr){return jr.kind===268}e.isNamespaceImport=At;function ba(jr){return jr.kind===274}e.isNamespaceExport=ba;function $a(jr){return jr.kind===269}e.isNamedImports=$a;function Qa(jr){return jr.kind===270}e.isImportSpecifier=Qa;function ai(jr){return jr.kind===271}e.isExportAssignment=ai;function Dn(jr){return jr.kind===272}e.isExportDeclaration=Dn;function ka(jr){return jr.kind===273}e.isNamedExports=ka;function Ba(jr){return jr.kind===275}e.isExportSpecifier=Ba;function pn(jr){return jr.kind===276}e.isMissingDeclaration=pn;function Cn(jr){return jr.kind===349}e.isNotEmittedStatement=Cn;function Bi(jr){return jr.kind===354}e.isSyntheticReference=Bi;function kn(jr){return jr.kind===352}e.isMergeDeclarationMarker=kn;function xn(jr){return jr.kind===353}e.isEndOfDeclarationMarker=xn;function Kn(jr){return jr.kind===277}e.isExternalModuleReference=Kn;function Pn(jr){return jr.kind===278}e.isJsxElement=Pn;function eo(jr){return jr.kind===279}e.isJsxSelfClosingElement=eo;function Rn(jr){return jr.kind===280}e.isJsxOpeningElement=Rn;function Da(jr){return jr.kind===281}e.isJsxClosingElement=Da;function bo(jr){return jr.kind===282}e.isJsxFragment=bo;function Ro(jr){return jr.kind===283}e.isJsxOpeningFragment=Ro;function En(jr){return jr.kind===284}e.isJsxClosingFragment=En;function zn(jr){return jr.kind===285}e.isJsxAttribute=zn;function to(jr){return jr.kind===286}e.isJsxAttributes=to;function Co(jr){return jr.kind===287}e.isJsxSpreadAttribute=Co;function Ko(jr){return jr.kind===288}e.isJsxExpression=Ko;function Oo(jr){return jr.kind===289}e.isCaseClause=Oo;function no(jr){return jr.kind===290}e.isDefaultClause=no;function $o(jr){return jr.kind===291}e.isHeritageClause=$o;function Pr(jr){return jr.kind===292}e.isCatchClause=Pr;function xi(jr){return jr.kind===296}e.isPropertyAssignment=xi;function St(jr){return jr.kind===297}e.isShorthandPropertyAssignment=St;function pa(jr){return jr.kind===298}e.isSpreadAssignment=pa;function dn(jr){return jr.kind===299}e.isEnumMember=dn;function Bn(jr){return jr.kind===301}e.isUnparsedPrepend=Bn;function Qe(jr){return jr.kind===305}e.isSourceFile=Qe;function Gr(jr){return jr.kind===306}e.isBundle=Gr;function S(jr){return jr.kind===307}e.isUnparsedSource=S;function Ce(jr){return jr.kind===309}e.isJSDocTypeExpression=Ce;function qe(jr){return jr.kind===310}e.isJSDocNameReference=qe;function br(jr){return jr.kind===311}e.isJSDocMemberName=br;function Zr(jr){return jr.kind===324}e.isJSDocLink=Zr;function Si(jr){return jr.kind===325}e.isJSDocLinkCode=Si;function Pi(jr){return jr.kind===326}e.isJSDocLinkPlain=Pi;function Qi(jr){return jr.kind===312}e.isJSDocAllType=Qi;function Ct(jr){return jr.kind===313}e.isJSDocUnknownType=Ct;function sa(jr){return jr.kind===314}e.isJSDocNullableType=sa;function en(jr){return jr.kind===315}e.isJSDocNonNullableType=en;function Wa(jr){return jr.kind===316}e.isJSDocOptionalType=Wa;function Wn(jr){return jr.kind===317}e.isJSDocFunctionType=Wn;function mo(jr){return jr.kind===318}e.isJSDocVariadicType=mo;function So(jr){return jr.kind===319}e.isJSDocNamepathType=So;function Go(jr){return jr.kind===320}e.isJSDoc=Go;function ys(jr){return jr.kind===322}e.isJSDocTypeLiteral=ys;function Pc(jr){return jr.kind===323}e.isJSDocSignature=Pc;function Vc(jr){return jr.kind===328}e.isJSDocAugmentsTag=Vc;function Kc(jr){return jr.kind===330}e.isJSDocAuthorTag=Kc;function Xs(jr){return jr.kind===332}e.isJSDocClassTag=Xs;function pc(jr){return jr.kind===338}e.isJSDocCallbackTag=pc;function hs(jr){return jr.kind===333}e.isJSDocPublicTag=hs;function tc(jr){return jr.kind===334}e.isJSDocPrivateTag=tc;function ps(jr){return jr.kind===335}e.isJSDocProtectedTag=ps;function Qs(jr){return jr.kind===336}e.isJSDocReadonlyTag=Qs;function js(jr){return jr.kind===337}e.isJSDocOverrideTag=js;function ds(jr){return jr.kind===331}e.isJSDocDeprecatedTag=ds;function Ji(jr){return jr.kind===346}e.isJSDocSeeTag=Ji;function ce(jr){return jr.kind===339}e.isJSDocEnumTag=ce;function Rr(jr){return jr.kind===340}e.isJSDocParameterTag=Rr;function yi(jr){return jr.kind===341}e.isJSDocReturnTag=yi;function qi(jr){return jr.kind===342}e.isJSDocThisTag=qi;function je(jr){return jr.kind===343}e.isJSDocTypeTag=je;function Hr(jr){return jr.kind===344}e.isJSDocTemplateTag=Hr;function pt(jr){return jr.kind===345}e.isJSDocTypedefTag=pt;function Pt(jr){return jr.kind===327}e.isJSDocUnknownTag=Pt;function ga(jr){return jr.kind===347}e.isJSDocPropertyTag=ga;function ua(jr){return jr.kind===329}e.isJSDocImplementsTag=ua;function Xn(jr){return jr.kind===348}e.isSyntaxList=Xn})(ke||(ke={}));var ke;(function(e){function a(lr){return lr.createExportDeclaration(void 0,void 0,!1,lr.createNamedExports([]),void 0)}e.createEmptyExports=a;function C(lr,be,Ge,ur){if(e.isComputedPropertyName(Ge))return e.setTextRange(lr.createElementAccessExpression(be,Ge.expression),ur);var yr=e.setTextRange(e.isMemberName(Ge)?lr.createPropertyAccessExpression(be,Ge):lr.createElementAccessExpression(be,Ge),Ge);return e.getOrCreateEmitNode(yr).flags|=64,yr}e.createMemberAccessForPropertyName=C;function I(lr,be){var Ge=e.parseNodeFactory.createIdentifier(lr||"React");return e.setParent(Ge,e.getParseTreeNode(be)),Ge}function R(lr,be,Ge){if(e.isQualifiedName(be)){var ur=R(lr,be.left,Ge),yr=lr.createIdentifier(e.idText(be.right));return yr.escapedText=be.right.escapedText,lr.createPropertyAccessExpression(ur,yr)}else return I(e.idText(be),Ge)}function E(lr,be,Ge,ur){return be?R(lr,be,ur):lr.createPropertyAccessExpression(I(Ge,ur),"createElement")}e.createJsxFactoryExpression=E;function X(lr,be,Ge,ur){return be?R(lr,be,ur):lr.createPropertyAccessExpression(I(Ge,ur),"Fragment")}function le(lr,be,Ge,ur,yr,Ir){var wr=[Ge];if(ur&&wr.push(ur),yr&&yr.length>0)if(ur||wr.push(lr.createNull()),yr.length>1)for(var Ur=0,ii=yr;Ur0)if(yr.length>1)for(var mi=0,pe=yr;mi=e.ModuleKind.ES2015&&ii<=e.ModuleKind.ESNext||Ge.impliedNodeFormat===e.ModuleKind.ESNext){var mi=e.getEmitHelpers(Ge);if(mi){for(var pe=[],or=0,qr=mi;or0?Di[or-1]:void 0;return e.Debug.assertEqual(qr[or],be),Di[or]=pe.onEnter(si[or],et,Xi),qr[or]=Ur(pe,be),or}lr.enter=be;function Ge(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ge),e.Debug.assertIsDefined(pe.onLeft),qr[or]=Ur(pe,Ge);var et=pe.onLeft(si[or].left,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.left=Ge;function ur(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],ur),e.Debug.assertIsDefined(pe.onOperator),qr[or]=Ur(pe,ur),pe.onOperator(si[or].operatorToken,Di[or],si[or]),or}lr.operator=ur;function yr(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],yr),e.Debug.assertIsDefined(pe.onRight),qr[or]=Ur(pe,yr);var et=pe.onRight(si[or].right,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.right=yr;function Ir(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ir),qr[or]=Ur(pe,Ir);var et=pe.onExit(si[or],Di[or]);if(or>0){if(or--,pe.foldState){var Gi=qr[or]===Ir?"right":"left";Di[or]=pe.foldState(Di[or],et,Gi)}}else wi.value=et;return or}lr.exit=Ir;function wr(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],wr),or}lr.done=wr;function Ur(pe,or){switch(or){case be:if(pe.onLeft)return Ge;case Ge:if(pe.onOperator)return ur;case ur:if(pe.onRight)return yr;case yr:return Ir;case Ir:return wr;case wr:return wr;default:e.Debug.fail("Invalid state")}}lr.nextState=Ur;function ii(pe,or,qr,si,Di){return pe++,or[pe]=be,qr[pe]=Di,si[pe]=void 0,pe}function mi(pe,or,qr){if(e.Debug.shouldAssert(2))for(;pe>=0;)e.Debug.assert(or[pe]!==qr,"Circular traversal detected."),pe--}})(Er||(Er={}));var Ne=function(){function lr(be,Ge,ur,yr,Ir,wr){this.onEnter=be,this.onLeft=Ge,this.onOperator=ur,this.onRight=yr,this.onExit=Ir,this.foldState=wr}return lr}();function n(lr,be,Ge,ur,yr,Ir){var wr=new Ne(lr,be,Ge,ur,yr,Ir);return Ur;function Ur(ii,mi){for(var pe={value:void 0},or=[Er.enter],qr=[ii],si=[void 0],Di=0;or[Di]!==Er.done;)Di=or[Di](wr,Di,or,qr,si,pe,mi);return e.Debug.assertEqual(Di,0),pe.value}}e.createBinaryExpressionTrampoline=n})(ke||(ke={}));var ke;(function(e){function a(C,I){return I?e.setTextRangePosEnd(C,I.pos,I.end):C}e.setTextRange=a})(ke||(ke={}));var ke;(function(e){var a;(function(d){d[d.None=0]="None",d[d.Yield=1]="Yield",d[d.Await=2]="Await",d[d.Type=4]="Type",d[d.IgnoreMissingOpenBrace=16]="IgnoreMissingOpenBrace",d[d.JSDoc=32]="JSDoc"})(a||(a={}));var C;(function(d){d[d.TryParse=0]="TryParse",d[d.Lookahead=1]="Lookahead",d[d.Reparse=2]="Reparse"})(C||(C={}));var I,R,E,X,le;e.parseBaseNodeFactory={createBaseSourceFileNode:function(d){return new(le||(le=e.objectAllocator.getSourceFileConstructor()))(d,-1,-1)},createBaseIdentifierNode:function(d){return new(E||(E=e.objectAllocator.getIdentifierConstructor()))(d,-1,-1)},createBasePrivateIdentifierNode:function(d){return new(X||(X=e.objectAllocator.getPrivateIdentifierConstructor()))(d,-1,-1)},createBaseTokenNode:function(d){return new(R||(R=e.objectAllocator.getTokenConstructor()))(d,-1,-1)},createBaseNode:function(d){return new(I||(I=e.objectAllocator.getNodeConstructor()))(d,-1,-1)}},e.parseNodeFactory=e.createNodeFactory(1,e.parseBaseNodeFactory);function N(d,D){return D&&d(D)}function p(d,D,fe){if(fe){if(D)return D(fe);for(var g=0,ne=fe;g=0;--Z)g.push(ue[Z]),ne.push(We)}else{var Fe=D(ue,We);if(Fe){if(Fe==="skip")continue;return Fe}if(ue.kind>=161)for(var Be=0,ge=ie(ue);Be=vs.pos}),Qu=Is>=0?e.findIndex(Mi,function(sc){return sc.start>=Ac.pos},Is):-1;Is>=0&&e.addRange(_e,Mi,Is,Qu>=0?Qu:void 0),Dt(function(){var sc=Er;for(Er|=32768,D.setTextPos(Ac.pos),Tr();De()!==1;){var bc=D.getStartPos(),Mc=Ct(0,nc);if(di.push(Mc),bc===D.getStartPos()&&Tr(),st>=0){var Yu=Le.statements[st];if(Mc.end===Yu.pos)break;Mc.end>Yu.pos&&(st=co(Le.statements,st+1))}}Er=sc},2),ra=st>=0?qo(Le.statements,st):-1};ra!==-1;)Ta();if(st>=0){var ha=Le.statements[st];e.addRange(di,Le.statements,st);var Na=e.findIndex(Mi,function(vs){return vs.start>=ha.pos});Na>=0&&e.addRange(_e,Mi,Na)}return de=Nr,ge.updateSourceFile(Le,e.setTextRange(ge.createNodeArray(di),Le.statements));function In(vs){return!(vs.flags&32768)&&!!(vs.transformFlags&16777216)}function qo(vs,Ac){for(var Is=Ac;Is116}function Fi(){return De()===79?!0:De()===125&&Wr()||De()===132&&mr()?!1:De()>116}function ui(Le,Nr,ri){return ri===void 0&&(ri=!0),De()===Le?(ri&&Tr(),!0):(Nr?Ar(Nr):Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}var Bt=Object.keys(e.textToKeywordObj).filter(function(Le){return Le.length>2});function wt(Le){var Nr;if(e.isTaggedTemplateExpression(Le)){nr(e.skipTrivia(Ee,Le.template.pos),Le.template.end,e.Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings);return}var ri=e.isIdentifier(Le)?e.idText(Le):void 0;if(!ri||!e.isIdentifierText(ri,He)){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}var di=e.skipTrivia(Ee,Le.pos);switch(ri){case"const":case"let":case"var":nr(di,Le.end,e.Diagnostics.Variable_declaration_not_allowed_at_this_location);return;case"declare":return;case"interface":na(e.Diagnostics.Interface_name_cannot_be_0,e.Diagnostics.Interface_must_be_given_a_name,18);return;case"is":nr(di,D.getTextPos(),e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case"module":case"namespace":na(e.Diagnostics.Namespace_name_cannot_be_0,e.Diagnostics.Namespace_must_be_given_a_name,18);return;case"type":na(e.Diagnostics.Type_alias_name_cannot_be_0,e.Diagnostics.Type_alias_must_be_given_a_name,63);return}var Mi=(Nr=e.getSpellingSuggestion(ri,Bt,function(st){return st}))!==null&&Nr!==void 0?Nr:Ai(ri);if(Mi){nr(di,Le.end,e.Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0,Mi);return}De()!==0&&nr(di,Le.end,e.Diagnostics.Unexpected_keyword_or_identifier)}function na(Le,Nr,ri){De()===ri?Ar(Nr):Ar(Le,D.getTokenValue())}function Ai(Le){for(var Nr=0,ri=Bt;Nrdi.length+2&&e.startsWith(Le,di))return"".concat(di," ").concat(Le.slice(di.length))}}function Oi(Le,Nr,ri){if(De()===59&&!D.hasPrecedingLineBreak()){Ar(e.Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(De()===20){Ar(e.Diagnostics.Cannot_start_a_function_call_in_a_type_annotation),Tr();return}if(Nr&&!ka()){ri?Ar(e.Diagnostics._0_expected,e.tokenToString(26)):Ar(e.Diagnostics.Expected_for_property_initializer);return}if(!Ba()){if(ri){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}wt(Le)}}function ji(Le){return De()===Le?(vi(),!0):(Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}function Vi(Le,Nr,ri,di){if(De()===Nr){Tr();return}var Mi=Ar(e.Diagnostics._0_expected,e.tokenToString(Nr));!ri||Mi&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,di,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,e.tokenToString(Le),e.tokenToString(Nr)))}function at(Le){return De()===Le?(Tr(),!0):!1}function At(Le){if(De()===Le)return ai()}function ba(Le){if(De()===Le)return Dn()}function $a(Le,Nr,ri){return At(Le)||kn(Le,!1,Nr||e.Diagnostics._0_expected,ri||e.tokenToString(Le))}function Qa(Le){return ba(Le)||kn(Le,!1,e.Diagnostics._0_expected,e.tokenToString(Le))}function ai(){var Le=Ue(),Nr=De();return Tr(),Bi(ge.createToken(Nr),Le)}function Dn(){var Le=Ue(),Nr=De();return vi(),Bi(ge.createToken(Nr),Le)}function ka(){return De()===26?!0:De()===19||De()===1||D.hasPrecedingLineBreak()}function Ba(){return ka()?(De()===26&&Tr(),!0):!1}function pn(){return Ba()||ui(26)}function Cn(Le,Nr,ri,di){var Mi=ge.createNodeArray(Le,di);return e.setTextRangePosEnd(Mi,Nr,ri!=null?ri:D.getStartPos()),Mi}function Bi(Le,Nr,ri){return e.setTextRangePosEnd(Le,Nr,ri!=null?ri:D.getStartPos()),Er&&(Le.flags|=Er),n&&(n=!1,Le.flags|=131072),Le}function kn(Le,Nr,ri,di){Nr?Oe(D.getStartPos(),0,ri,di):ri&&Ar(ri,di);var Mi=Ue(),st=Le===79?ge.createIdentifier("",void 0,void 0):e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,"","",void 0):Le===8?ge.createNumericLiteral("",void 0):Le===10?ge.createStringLiteral("",void 0):Le===276?ge.createMissingDeclaration():ge.createToken(Le);return Bi(st,Mi)}function xn(Le){var Nr=er.get(Le);return Nr===void 0&&er.set(Le,Nr=Le),Nr}function Kn(Le,Nr,ri){if(Le){Cr++;var di=Ue(),Mi=De(),st=xn(D.getTokenValue());return gr(),Bi(ge.createIdentifier(st,void 0,Mi),di)}if(De()===80)return Ar(ri||e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),Kn(!0);if(De()===0&&D.tryScan(function(){return D.reScanInvalidIdentifier()===79}))return Kn(!0);Cr++;var ra=De()===1,Ta=D.isReservedWord(),ha=D.getTokenText(),Na=Ta?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return kn(79,ra,Nr||Na,ha)}function Pn(Le){return Kn(Ki(),void 0,Le)}function eo(Le,Nr){return Kn(Fi(),Le,Nr)}function Rn(Le){return Kn(e.tokenIsIdentifierOrKeyword(De()),Le)}function Da(){return e.tokenIsIdentifierOrKeyword(De())||De()===10||De()===8}function bo(){return e.tokenIsIdentifierOrKeyword(De())||De()===10}function Ro(Le){if(De()===10||De()===8){var Nr=ga();return Nr.text=xn(Nr.text),Nr}return Le&&De()===22?zn():De()===80?Co():Rn()}function En(){return Ro(!0)}function zn(){var Le=Ue();ui(22);var Nr=Wt(ns);return ui(23),Bi(ge.createComputedPropertyName(Nr),Le)}function to(Le){var Nr=ir.get(Le);return Nr===void 0&&ir.set(Le,Nr=Le),Nr}function Co(){var Le=Ue(),Nr=ge.createPrivateIdentifier(to(D.getTokenText()));return Tr(),Bi(Nr,Le)}function Ko(Le){return De()===Le&&Ii(no)}function Oo(){return Tr(),D.hasPrecedingLineBreak()?!1:St()}function no(){switch(De()){case 85:return Tr()===92;case 93:return Tr(),De()===88?Rt(pa):De()===152?Rt(Pr):$o();case 88:return pa();case 124:case 136:case 149:return Tr(),St();default:return Oo()}}function $o(){return De()!==41&&De()!==127&&De()!==18&&St()}function Pr(){return Tr(),$o()}function xi(){return e.isModifierKind(De())&&Ii(no)}function St(){return De()===22||De()===18||De()===41||De()===25||Da()}function pa(){return Tr(),De()===84||De()===98||De()===118||De()===126&&Rt(wl)||De()===131&&Rt(Iu)}function dn(Le,Nr){var ri=sa(Le);if(ri)return!0;switch(Le){case 0:case 1:case 3:return!(De()===26&&Nr)&&Ku();case 2:return De()===82||De()===88;case 4:return Rt(bn);case 5:return Rt(Lp)||De()===26&&!Nr;case 6:return De()===22||Da();case 12:switch(De()){case 22:case 41:case 25:case 24:return!0;default:return Da()}case 18:return Da();case 9:return De()===22||De()===25||Da();case 24:return bo();case 7:return De()===18?Rt(Bn):Nr?Fi()&&!Ce():Cu()&&!Ce();case 8:return Hc();case 10:return De()===27||De()===25||Hc();case 19:return De()===101||Fi();case 15:switch(De()){case 27:case 24:return!0}case 11:return De()===25||qs();case 16:return pu(!1);case 17:return pu(!0);case 20:case 21:return De()===27||Xr();case 22:return Ll();case 23:return e.tokenIsIdentifierOrKeyword(De());case 13:return e.tokenIsIdentifierOrKeyword(De())||De()===18;case 14:return!0}return e.Debug.fail("Non-exhaustive case in 'isListElement'.")}function Bn(){if(e.Debug.assert(De()===18),Tr()===19){var Le=Tr();return Le===27||Le===18||Le===94||Le===117}return!0}function Qe(){return Tr(),Fi()}function Gr(){return Tr(),e.tokenIsIdentifierOrKeyword(De())}function S(){return Tr(),e.tokenIsIdentifierOrKeywordOrGreaterThan(De())}function Ce(){return De()===117||De()===94?Rt(qe):!1}function qe(){return Tr(),qs()}function br(){return Tr(),Xr()}function Zr(Le){if(De()===1)return!0;switch(Le){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return De()===19;case 3:return De()===19||De()===82||De()===88;case 7:return De()===18||De()===94||De()===117;case 8:return Si();case 19:return De()===31||De()===20||De()===18||De()===94||De()===117;case 11:return De()===21||De()===26;case 15:case 21:case 10:return De()===23;case 17:case 16:case 18:return De()===21||De()===23;case 20:return De()!==27;case 22:return De()===18||De()===19;case 13:return De()===31||De()===43;case 14:return De()===29&&Rt(fi);default:return!1}}function Si(){return!!(ka()||F_(De())||De()===38)}function Pi(){for(var Le=0;Le<25;Le++)if(Ye&1<=0)}function tc(Le){return Le===6?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function ps(){var Le=Cn([],Ue());return Le.isMissingList=!0,Le}function Qs(Le){return!!Le.isMissingList}function js(Le,Nr,ri,di){if(ui(ri)){var Mi=hs(Le,Nr);return ui(di),Mi}return ps()}function ds(Le,Nr){for(var ri=Ue(),di=Le?Rn(Nr):eo(Nr),Mi=Ue();at(24);){if(De()===29){di.jsdocDotPos=Mi;break}Mi=Ue(),di=Bi(ge.createQualifiedName(di,ce(Le,!1)),ri)}return di}function Ji(Le,Nr){return Bi(ge.createQualifiedName(Le,Nr),Le.pos)}function ce(Le,Nr){if(D.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(De())){var ri=Rt(Pu);if(ri)return kn(79,!0,e.Diagnostics.Identifier_expected)}if(De()===80){var di=Co();return Nr?di:kn(79,!0,e.Diagnostics.Identifier_expected)}return Le?Rn():eo()}function Rr(Le){var Nr=Ue(),ri=[],di;do di=Pt(Le),ri.push(di);while(di.literal.kind===16);return Cn(ri,Nr)}function yi(Le){var Nr=Ue();return Bi(ge.createTemplateExpression(ua(Le),Rr(Le)),Nr)}function qi(){var Le=Ue();return Bi(ge.createTemplateLiteralType(ua(!1),je()),Le)}function je(){var Le=Ue(),Nr=[],ri;do ri=Hr(),Nr.push(ri);while(ri.literal.kind===16);return Cn(Nr,Le)}function Hr(){var Le=Ue();return Bi(ge.createTemplateLiteralTypeSpan(Aa(),pt(!1)),Le)}function pt(Le){return De()===19?(Wi(Le),Xn()):$a(17,e.Diagnostics._0_expected,e.tokenToString(19))}function Pt(Le){var Nr=Ue();return Bi(ge.createTemplateSpan(Wt(ns),pt(Le)),Nr)}function ga(){return fo(De())}function ua(Le){Le&&ct();var Nr=fo(De());return e.Debug.assert(Nr.kind===15,"Template head has wrong token kind"),Nr}function Xn(){var Le=fo(De());return e.Debug.assert(Le.kind===16||Le.kind===17,"Template fragment has wrong token kind"),Le}function jr(Le){var Nr=Le===14||Le===17,ri=D.getTokenText();return ri.substring(1,ri.length-(D.isUnterminated()?0:Nr?1:2))}function fo(Le){var Nr=Ue(),ri=e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,D.getTokenValue(),jr(Le),D.getTokenFlags()&2048):Le===8?ge.createNumericLiteral(D.getTokenValue(),D.getNumericLiteralFlags()):Le===10?ge.createStringLiteral(D.getTokenValue(),void 0,D.hasExtendedUnicodeEscape()):e.isLiteralKind(Le)?ge.createLiteralLikeNode(Le,D.getTokenValue()):e.Debug.fail();return D.hasExtendedUnicodeEscape()&&(ri.hasExtendedUnicodeEscape=!0),D.isUnterminated()&&(ri.isUnterminated=!0),Tr(),Bi(ri,Nr)}function xs(){return ds(!0,e.Diagnostics.Type_expected)}function Fo(){if(!D.hasPrecedingLineBreak()&&Li()===29)return js(20,Aa,29,31)}function ko(){var Le=Ue();return Bi(ge.createTypeReferenceNode(xs(),Fo()),Le)}function Ao(Le){switch(Le.kind){case 178:return e.nodeIsMissing(Le.typeName);case 179:case 180:{var Nr=Le,ri=Nr.parameters,di=Nr.type;return Qs(ri)||Ao(di)}case 191:return Ao(Le.type);default:return!1}}function Ms(Le){return Tr(),Bi(ge.createTypePredicateNode(void 0,Le,Aa()),Le.pos)}function Bs(){var Le=Ue();return Tr(),Bi(ge.createThisTypeNode(),Le)}function xc(){var Le=Ue();return Tr(),Bi(ge.createJSDocAllType(),Le)}function su(){var Le=Ue();return Tr(),Bi(ge.createJSDocNonNullableType(yc(),!1),Le)}function tl(){var Le=Ue();return Tr(),De()===27||De()===19||De()===21||De()===31||De()===63||De()===51?Bi(ge.createJSDocUnknownType(),Le):Bi(ge.createJSDocNullableType(Aa(),!1),Le)}function Zc(){var Le=Ue(),Nr=fr();if(Rt(v)){Tr();var ri=Ei(36),di=vc(58,!1);return wr(Bi(ge.createJSDocFunctionType(ri,di),Le),Nr)}return Bi(ge.createTypeReferenceNode(Rn(),void 0),Le)}function Rf(){var Le=Ue(),Nr;return(De()===108||De()===103)&&(Nr=Rn(),ui(58)),Bi(ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,al(),void 0),Le)}function al(){D.setInJSDocType(!0);var Le=Ue();if(at(141)){var Nr=ge.createJSDocNamepathType(void 0);e:for(;;)switch(De()){case 19:case 1:case 27:case 5:break e;default:vi()}return D.setInJSDocType(!1),Bi(Nr,Le)}var ri=at(25),di=gu();return D.setInJSDocType(!1),ri&&(di=Bi(ge.createJSDocVariadicType(di),Le)),De()===63?(Tr(),Bi(ge.createJSDocOptionalType(di),Le)):di}function Jo(){var Le=Ue();ui(112);var Nr=ds(!0),ri=D.hasPrecedingLineBreak()?void 0:m_();return Bi(ge.createTypeQueryNode(Nr,ri),Le)}function eu(){var Le=Ue(),Nr=Fc(),ri=eo(),di,Mi;at(94)&&(Xr()||!qs()?di=Aa():Mi=kp());var st=at(63)?Aa():void 0,ra=ge.createTypeParameterDeclaration(Nr,ri,di,st);return ra.expression=Mi,Bi(ra,Le)}function Ws(){if(De()===29)return js(19,eu,29,31)}function pu(Le){return De()===25||Hc()||e.isModifierKind(De())||De()===59||Xr(!Le)}function Uu(Le){var Nr=Ol(e.Diagnostics.Private_identifiers_cannot_be_used_as_parameters);return e.getFullWidth(Nr)===0&&!e.some(Le)&&e.isModifierKind(De())&&Tr(),Nr}function Ql(){return Ki()||De()===22||De()===18}function xl(Le){return du(Le)}function Ya(Le){return du(Le,!1)}function du(Le,Nr){Nr===void 0&&(Nr=!0);var ri=Ue(),di=fr(),Mi=Le?Jr(gl):gl();if(De()===108){var st=ge.createParameterDeclaration(Mi,void 0,void 0,Kn(!0),void 0,va(),void 0);return Mi&&Mr(Mi[0],e.Diagnostics.Decorators_may_not_be_applied_to_this_parameters),wr(Bi(st,ri),di)}var ra=Ne;Ne=!1;var Ta=Fc(),ha=At(25);if(!(!Nr&&!Ql())){var Na=wr(Bi(ge.createParameterDeclaration(Mi,Ta,ha,Uu(Ta),At(57),va(),nl()),ri),di);return Ne=ra,Na}}function vc(Le,Nr){if(Kr(Le,Nr))return _r(gu)}function Kr(Le,Nr){return Le===38?(ui(Le),!0):at(58)?!0:Nr&&De()===38?(Ar(e.Diagnostics._0_expected,e.tokenToString(58)),Tr(),!0):!1}function _i(Le,Nr){var ri=Wr(),di=mr();Di(!!(Le&1)),Xi(!!(Le&2));var Mi=Le&32?hs(17,Rf):hs(16,function(){return Nr?xl(di):Ya(di)});return Di(ri),Xi(di),Mi}function Ei(Le){if(!ui(20))return ps();var Nr=_i(Le,!0);return ui(21),Nr}function tt(){at(27)||pn()}function kt(Le){var Nr=Ue(),ri=fr();Le===175&&ui(103);var di=Ws(),Mi=Ei(4),st=vc(58,!0);tt();var ra=Le===174?ge.createCallSignature(di,Mi,st):ge.createConstructSignature(di,Mi,st);return wr(Bi(ra,Nr),ri)}function bt(){return De()===22&&Rt(ia)}function ia(){if(Tr(),De()===25||De()===23)return!0;if(e.isModifierKind(De())){if(Tr(),Fi())return!0}else if(Fi())Tr();else return!1;return De()===58||De()===27?!0:De()!==57?!1:(Tr(),De()===58||De()===27||De()===23)}function Xt(Le,Nr,ri,di){var Mi=js(16,function(){return xl(!1)},22,23),st=va();tt();var ra=ge.createIndexSignature(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}function Za(Le,Nr,ri){var di=En(),Mi=At(57),st;if(De()===20||De()===29){var ra=Ws(),Ta=Ei(4),ha=vc(58,!0);st=ge.createMethodSignature(ri,di,Mi,ra,Ta,ha)}else{var ha=va();st=ge.createPropertySignature(ri,di,Mi,ha),De()===63&&(st.initializer=nl())}return tt(),wr(Bi(st,Le),Nr)}function bn(){if(De()===20||De()===29||De()===136||De()===149)return!0;for(var Le=!1;e.isModifierKind(De());)Le=!0,Tr();return De()===22?!0:(Da()&&(Le=!0,Tr()),Le?De()===20||De()===29||De()===57||De()===58||De()===27||ka():!1)}function _a(){if(De()===20||De()===29)return kt(174);if(De()===103&&Rt(qa))return kt(175);var Le=Ue(),Nr=fr(),ri=Fc();return Ko(136)?Gu(Le,Nr,void 0,ri,172):Ko(149)?Gu(Le,Nr,void 0,ri,173):bt()?Xt(Le,Nr,void 0,ri):Za(Le,Nr,ri)}function qa(){return Tr(),De()===20||De()===29}function rn(){return Tr()===24}function Jn(){switch(Tr()){case 20:case 29:case 24:return!0}return!1}function Mo(){var Le=Ue();return Bi(ge.createTypeLiteralNode(ho()),Le)}function ho(){var Le;return ui(18)?(Le=Qi(4,_a),ui(19)):Le=ps(),Le}function gs(){return Tr(),De()===39||De()===40?Tr()===145:(De()===145&&Tr(),De()===22&&Qe()&&Tr()===101)}function Se(){var Le=Ue(),Nr=Rn();ui(101);var ri=Aa();return Bi(ge.createTypeParameterDeclaration(void 0,Nr,ri,void 0),Le)}function hr(){var Le=Ue();ui(18);var Nr;(De()===145||De()===39||De()===40)&&(Nr=ai(),Nr.kind!==145&&ui(145)),ui(22);var ri=Se(),di=at(127)?Aa():void 0;ui(23);var Mi;(De()===57||De()===39||De()===40)&&(Mi=ai(),Mi.kind!==57&&ui(57));var st=va();pn();var ra=Qi(4,_a);return ui(19),Bi(ge.createMappedTypeNode(Nr,ri,di,Mi,st,ra),Le)}function Or(){var Le=Ue();if(at(25))return Bi(ge.createRestTypeNode(Aa()),Le);var Nr=Aa();if(e.isJSDocNullableType(Nr)&&Nr.pos===Nr.type.pos){var ri=ge.createOptionalTypeNode(Nr.type);return e.setTextRange(ri,Nr),ri.flags=Nr.flags,ri}return Nr}function ki(){return Tr()===58||De()===57&&Tr()===58}function dt(){return De()===25?e.tokenIsIdentifierOrKeyword(Tr())&&ki():e.tokenIsIdentifierOrKeyword(De())&&ki()}function la(){if(Rt(dt)){var Le=Ue(),Nr=fr(),ri=At(25),di=Rn(),Mi=At(57);ui(58);var st=Or(),ra=ge.createNamedTupleMember(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}return Or()}function Oa(){var Le=Ue();return Bi(ge.createTupleTypeNode(js(21,la,22,23)),Le)}function On(){var Le=Ue();ui(20);var Nr=Aa();return ui(21),Bi(ge.createParenthesizedType(Nr),Le)}function No(){var Le;if(De()===126){var Nr=Ue();Tr();var ri=Bi(ge.createToken(126),Nr);Le=Cn([ri],Nr)}return Le}function jo(){var Le=Ue(),Nr=fr(),ri=No(),di=at(103),Mi=Ws(),st=Ei(4),ra=vc(38,!1),Ta=di?ge.createConstructorTypeNode(ri,Mi,st,ra):ge.createFunctionTypeNode(Mi,st,ra);return di||(Ta.modifiers=ri),wr(Bi(Ta,Le),Nr)}function po(){var Le=ai();return De()===24?void 0:Le}function Gn(Le){var Nr=Ue();Le&&Tr();var ri=De()===110||De()===95||De()===104?ai():fo(De());return Le&&(ri=Bi(ge.createPrefixUnaryExpression(40,ri),Nr)),Bi(ge.createLiteralTypeNode(ri),Nr)}function $n(){return Tr(),De()===100}function Ho(){var Le=Ue(),Nr=D.getTokenPos();ui(18);var ri=D.hasPrecedingLineBreak();ui(129),ui(58);var di=Ha(!0);if(!ui(19)){var Mi=e.lastOrUndefined(_e);Mi&&Mi.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,Nr,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}return Bi(ge.createImportTypeAssertionContainer(di,ri),Le)}function Zo(){ze|=2097152;var Le=Ue(),Nr=at(112);ui(100),ui(20);var ri=Aa(),di;at(27)&&(di=Ho()),ui(21);var Mi=at(24)?xs():void 0,st=Fo();return Bi(ge.createImportTypeNode(ri,di,Mi,st,Nr),Le)}function Es(){return Tr(),De()===8||De()===9}function yc(){switch(De()){case 130:case 155:case 150:case 147:case 158:case 151:case 133:case 153:case 143:case 148:return Ii(po)||ko();case 66:D.reScanAsteriskEqualsToken();case 41:return xc();case 60:D.reScanQuestionToken();case 57:return tl();case 98:return Zc();case 53:return su();case 14:case 10:case 8:case 9:case 110:case 95:case 104:return Gn();case 40:return Rt(Es)?Gn(!0):ko();case 114:return ai();case 108:{var Le=Bs();return De()===139&&!D.hasPrecedingLineBreak()?Ms(Le):Le}case 112:return Rt($n)?Zo():Jo();case 18:return Rt(gs)?hr():Mo();case 22:return Oa();case 20:return On();case 100:return Zo();case 128:return Rt(Pu)?sd():ko();case 15:return qi();default:return ko()}}function Xr(Le){switch(De()){case 130:case 155:case 150:case 147:case 158:case 133:case 145:case 151:case 154:case 114:case 153:case 104:case 108:case 112:case 143:case 18:case 22:case 29:case 51:case 50:case 103:case 10:case 8:case 9:case 110:case 95:case 148:case 41:case 57:case 53:case 25:case 137:case 100:case 128:case 14:case 15:return!0;case 98:return!Le;case 40:return!Le&&Rt(Es);case 20:return!Le&&Rt(Ls);default:return Fi()}}function Ls(){return Tr(),De()===21||pu(!1)||Xr()}function Ic(){for(var Le=Ue(),Nr=yc();!D.hasPrecedingLineBreak();)switch(De()){case 53:Tr(),Nr=Bi(ge.createJSDocNonNullableType(Nr,!0),Le);break;case 57:if(Rt(br))return Nr;Tr(),Nr=Bi(ge.createJSDocNullableType(Nr,!0),Le);break;case 22:if(ui(22),Xr()){var ri=Aa();ui(23),Nr=Bi(ge.createIndexedAccessTypeNode(Nr,ri),Le)}else ui(23),Nr=Bi(ge.createArrayTypeNode(Nr),Le);break;default:return Nr}return Nr}function zu(Le){var Nr=Ue();return ui(Le),Bi(ge.createTypeOperatorNode(Le,vp()),Nr)}function vf(){if(at(94)){var Le=pi(Aa);if(xe()||De()!==57)return Le}}function P_(){var Le=Ue(),Nr=eo(),ri=Ii(vf),di=ge.createTypeParameterDeclaration(void 0,Nr,ri);return Bi(di,Le)}function El(){var Le=Ue();return ui(137),Bi(ge.createInferTypeNode(P_()),Le)}function vp(){var Le=De();switch(Le){case 140:case 154:case 145:return zu(Le);case 137:return El()}return _r(Ic)}function oo(Le){if(Cl()){var Nr=jo(),ri=void 0;return e.isFunctionTypeNode(Nr)?ri=Le?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:ri=Le?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,Mr(Nr,ri),Nr}}function I_(Le,Nr,ri){var di=Ue(),Mi=Le===51,st=at(Le),ra=st&&oo(Mi)||Nr();if(De()===Le||st){for(var Ta=[ra];at(Le);)Ta.push(oo(Mi)||Nr());ra=Bi(ri(Cn(Ta,di)),di)}return ra}function yp(){return I_(50,vp,ge.createIntersectionTypeNode)}function Yl(){return I_(51,yp,ge.createUnionTypeNode)}function Bf(){return Tr(),De()===103}function Cl(){return De()===29||De()===20&&Rt(hp)?!0:De()===103||De()===126&&Rt(Bf)}function c_(){if(e.isModifierKind(De())&&Fc(),Fi()||De()===108)return Tr(),!0;if(De()===22||De()===18){var Le=_e.length;return Ol(),Le===_e.length}return!1}function hp(){return Tr(),!!(De()===21||De()===25||c_()&&(De()===58||De()===27||De()===57||De()===63||De()===21&&(Tr(),De()===38)))}function gu(){var Le=Ue(),Nr=Fi()&&Ii(Dp),ri=Aa();return Nr?Bi(ge.createTypePredicateNode(void 0,Nr,ri),Le):ri}function Dp(){var Le=eo();if(De()===139&&!D.hasPrecedingLineBreak())return Tr(),Le}function sd(){var Le=Ue(),Nr=$a(128),ri=De()===108?Bs():eo(),di=at(139)?Aa():void 0;return Bi(ge.createTypePredicateNode(Nr,ri,di),Le)}function Aa(){if(Er&40960)return et(40960,Aa);if(Cl())return jo();var Le=Ue(),Nr=Yl();if(!xe()&&!D.hasPrecedingLineBreak()&&at(94)){var ri=pi(Aa);ui(57);var di=_r(Aa);ui(58);var Mi=_r(Aa);return Bi(ge.createConditionalTypeNode(Nr,ri,di,Mi),Le)}return Nr}function va(){return at(58)?Aa():void 0}function Cu(){switch(De()){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 Rt(Jn);default:return Fi()}}function qs(){if(Cu())return!0;switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 45:case 46:case 29:case 132:case 125:case 80:return!0;default:return xp()?!0:Fi()}}function cd(){return De()!==18&&De()!==98&&De()!==84&&De()!==59&&qs()}function ns(){var Le=vr();Le&&wi(!1);for(var Nr=Ue(),ri=hc(),di;di=At(27);)ri=M_(ri,di,hc(),Nr);return Le&&wi(!0),ri}function nl(){return at(63)?hc():void 0}function hc(){if(es())return Jf();var Le=ud()||bp();if(Le)return Le;var Nr=Ue(),ri=O_(0);return ri.kind===79&&De()===38?w_(Nr,ri,void 0):e.isLeftHandSideExpression(ri)&&e.isAssignmentOperator(Ui())?M_(ri,ai(),hc(),Nr):jf(ri,Nr)}function es(){return De()===125?Wr()?!0:Rt(so):!1}function u_(){return Tr(),!D.hasPrecedingLineBreak()&&Fi()}function Jf(){var Le=Ue();return Tr(),!D.hasPrecedingLineBreak()&&(De()===41||qs())?Bi(ge.createYieldExpression(At(41),hc()),Le):Bi(ge.createYieldExpression(void 0,void 0),Le)}function w_(Le,Nr,ri){e.Debug.assert(De()===38,"parseSimpleArrowFunctionExpression should only have been called if we had a =>");var di=ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,void 0,void 0);Bi(di,Nr.pos);var Mi=Cn([di],di.pos,di.end),st=$a(38),ra=_d(!!ri),Ta=ge.createArrowFunction(ri,void 0,Mi,void 0,st,ra);return ii(Bi(Ta,Le))}function ud(){var Le=ku();if(Le!==0)return Le===1?Tp(!0):Ii(fd)}function ku(){return De()===20||De()===29||De()===131?Rt(ld):De()===38?1:0}function ld(){if(De()===131&&(Tr(),D.hasPrecedingLineBreak()||De()!==20&&De()!==29))return 0;var Le=De(),Nr=Tr();if(Le===20){if(Nr===21){var ri=Tr();switch(ri){case 38:case 58:case 18:return 1;default:return 0}}if(Nr===22||Nr===18)return 2;if(Nr===25)return 1;if(e.isModifierKind(Nr)&&Nr!==131&&Rt(Qe))return Rt(function(){return Tr()===127})?0:1;if(!Fi()&&Nr!==108)return 0;switch(Tr()){case 58:return 1;case 57:return Tr(),De()===58||De()===27||De()===63||De()===21?1:0;case 27:case 63:case 21:return 2}return 0}else{if(e.Debug.assert(Le===29),!Fi())return 0;if(Ie===1){var di=Rt(function(){var Mi=Tr();if(Mi===94){var st=Tr();switch(st){case 63:case 31:return!1;default:return!0}}else if(Mi===27||Mi===63)return!0;return!1});return di?1:0}return 2}}function fd(){var Le=D.getTokenPos();if(!(Br!=null&&Br.has(Le))){var Nr=Tp(!1);return Nr||(Br||(Br=new e.Set)).add(Le),Nr}}function bp(){if(De()===131&&Rt(Sp)===1){var Le=Ue(),Nr=Hu(),ri=O_(0);return w_(Le,ri,Nr)}}function Sp(){if(De()===131){if(Tr(),D.hasPrecedingLineBreak()||De()===38)return 0;var Le=O_(0);if(!D.hasPrecedingLineBreak()&&Le.kind===79&&De()===38)return 1}return 0}function Tp(Le){var Nr=Ue(),ri=fr(),di=Hu(),Mi=e.some(di,e.isAsyncModifier)?2:0,st=Ws(),ra;if(ui(20)){if(Le)ra=_i(Mi,Le);else{var Ta=_i(Mi,Le);if(!Ta)return;ra=Ta}if(!ui(21)&&!Le)return}else{if(!Le)return;ra=ps()}var ha=vc(58,!1);if(!(ha&&!Le&&Ao(ha))){for(var Na=ha;(Na==null?void 0:Na.kind)===191;)Na=Na.type;var In=Na&&e.isJSDocFunctionType(Na);if(!(!Le&&De()!==38&&(In||De()!==18))){var qo=De(),co=$a(38),ts=qo===38||qo===18?_d(e.some(di,e.isAsyncModifier)):eo(),vs=ge.createArrowFunction(di,st,ra,ha,co,ts);return wr(Bi(vs,Nr),ri)}}}function _d(Le){if(De()===18)return Cc(Le?2:0);if(De()!==26&&De()!==98&&De()!==84&&Ku()&&!cd())return Cc(16|(Le?2:0));var Nr=Ne;Ne=!1;var ri=Le?Jr(hc):ti(hc);return Ne=Nr,ri}function jf(Le,Nr){var ri=At(57);if(!ri)return Le;var di;return Bi(ge.createConditionalExpression(Le,ri,et(fe,hc),di=$a(58),e.nodeIsPresent(di)?hc():kn(79,!1,e.Diagnostics._0_expected,e.tokenToString(58))),Nr)}function O_(Le){var Nr=Ue(),ri=kp();return pd(Le,ri,Nr)}function F_(Le){return Le===101||Le===160}function pd(Le,Nr,ri){for(;;){Ui();var di=e.getBinaryOperatorPrecedence(De()),Mi=De()===42?di>=Le:di>Le;if(!Mi||De()===101&&Je())break;if(De()===127){if(D.hasPrecedingLineBreak())break;Tr(),Nr=Ep(Nr,Aa())}else Nr=M_(Nr,ai(),O_(di),ri)}return Nr}function xp(){return Je()&&De()===101?!1:e.getBinaryOperatorPrecedence(De())>0}function M_(Le,Nr,ri,di){return Bi(ge.createBinaryExpression(Le,Nr,ri),di)}function Ep(Le,Nr){return Bi(ge.createAsExpression(Le,Nr),Le.pos)}function ol(){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr(mu)),Le)}function Au(){var Le=Ue();return Bi(ge.createDeleteExpression(Vr(mu)),Le)}function ru(){var Le=Ue();return Bi(ge.createTypeOfExpression(Vr(mu)),Le)}function yf(){var Le=Ue();return Bi(ge.createVoidExpression(Vr(mu)),Le)}function Cp(){return De()===132?mr()?!0:Rt(so):!1}function dd(){var Le=Ue();return Bi(ge.createAwaitExpression(Vr(mu)),Le)}function kp(){if(gd()){var Le=Ue(),Nr=hf();return De()===42?pd(e.getBinaryOperatorPrecedence(De()),Nr,Le):Nr}var ri=De(),di=mu();if(De()===42){var Le=e.skipTrivia(Ee,di.pos),Mi=di.end;di.kind===211?nr(Le,Mi,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):nr(Le,Mi,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(ri))}return di}function mu(){switch(De()){case 39:case 40:case 54:case 53:return ol();case 89:return Au();case 112:return ru();case 114:return yf();case 29:return qu();case 132:if(Cp())return dd();default:return hf()}}function gd(){switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 132:return!1;case 29:if(Ie!==1)return!1;default:return!0}}function hf(){if(De()===45||De()===46){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr($l)),Le)}else if(Ie===1&&De()===29&&Rt(S))return l_(!0);var Nr=$l();if(e.Debug.assert(e.isLeftHandSideExpression(Nr)),(De()===45||De()===46)&&!D.hasPrecedingLineBreak()){var ri=De();return Tr(),Bi(ge.createPostfixUnaryExpression(Nr,ri),Nr.pos)}return Nr}function $l(){var Le=Ue(),Nr;return De()===100?Rt(qa)?(ze|=2097152,Nr=ai()):Rt(rn)?(Tr(),Tr(),Nr=Bi(ge.createMetaProperty(100,Rn()),Le),ze|=4194304):Nr=Uf():Nr=De()===106?L_():Uf(),Ps(Le,Nr)}function Uf(){var Le=Ue(),Nr=vu();return Ec(Le,Nr,!0)}function L_(){var Le=Ue(),Nr=ai();if(De()===29){var ri=Ue(),di=Ii(Gc);di!==void 0&&nr(ri,Ue(),e.Diagnostics.super_may_not_use_type_arguments)}return De()===20||De()===24||De()===22?Nr:($a(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!0)),Le))}function l_(Le,Nr,ri){var di=Ue(),Mi=Zl(Le),st;if(Mi.kind===280){var ra=ks(Mi),Ta=void 0,ha=ra[ra.length-1];if((ha==null?void 0:ha.kind)===278&&!l(ha.openingElement.tagName,ha.closingElement.tagName)&&l(Mi.tagName,ha.closingElement.tagName)){var Na=ha.children.end,In=Bi(ge.createJsxElement(ha.openingElement,ha.children,Bi(ge.createJsxClosingElement(Bi(ge.createIdentifier(""),Na,Na)),Na,Na)),ha.openingElement.pos,Na);ra=Cn(Ve(Ve([],ra.slice(0,ra.length-1),!0),[In],!1),ra.pos,Na),Ta=ha.closingElement}else Ta=Al(Mi,Le),l(Mi.tagName,Ta.tagName)||(ri&&e.isJsxOpeningElement(ri)&&l(Ta.tagName,ri.tagName)?Mr(Mi.tagName,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)):Mr(Ta.tagName,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)));st=Bi(ge.createJsxElement(Mi,ra,Ta),di)}else Mi.kind===283?st=Bi(ge.createJsxFragment(Mi,ks(Mi),wc(Le)),di):(e.Debug.assert(Mi.kind===279),st=Mi);if(Le&&De()===29){var qo=typeof Nr>"u"?st.pos:Nr,co=Ii(function(){return l_(!0,qo)});if(co){var ts=kn(27,!1);return e.setTextRangePosWidth(ts,co.pos,0),nr(e.skipTrivia(Ee,qo),co.end,e.Diagnostics.JSX_expressions_must_have_one_parent_element),Bi(ge.createBinaryExpression(st,ts,co),di)}}return st}function f_(){var Le=Ue(),Nr=ge.createJsxText(D.getTokenValue(),ye===12);return ye=D.scanJsxToken(),Bi(Nr,Le)}function md(Le,Nr){switch(Nr){case 1:if(e.isJsxOpeningFragment(Le))Mr(Le,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);else{var ri=Le.tagName,di=e.skipTrivia(Ee,ri.pos);nr(di,ri.end,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Le.tagName))}return;case 30:case 7:return;case 11:case 12:return f_();case 18:return kl(!1);case 29:return l_(!1,void 0,Le);default:return e.Debug.assertNever(Nr)}}function ks(Le){var Nr=[],ri=Ue(),di=Ye;for(Ye|=1<<14;;){var Mi=md(Le,ye=D.reScanJsxToken());if(!Mi||(Nr.push(Mi),e.isJsxOpeningElement(Le)&&(Mi==null?void 0:Mi.kind)===278&&!l(Mi.openingElement.tagName,Mi.closingElement.tagName)&&l(Le.tagName,Mi.closingElement.tagName)))break}return Ye=di,Cn(Nr,ri)}function Wu(){var Le=Ue();return Bi(ge.createJsxAttributes(Qi(13,__)),Le)}function Zl(Le){var Nr=Ue();if(ui(29),De()===31)return xt(),Bi(ge.createJsxOpeningFragment(),Nr);var ri=R_(),di=(Er&262144)===0?m_():void 0,Mi=Wu(),st;return De()===31?(xt(),st=ge.createJsxOpeningElement(ri,di,Mi)):(ui(43),ui(31,void 0,!1)&&(Le?Tr():xt()),st=ge.createJsxSelfClosingElement(ri,di,Mi)),Bi(st,Nr)}function R_(){var Le=Ue();Mt();for(var Nr=De()===108?ai():Rn();at(24);)Nr=Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!1)),Le);return Nr}function kl(Le){var Nr=Ue();if(!!ui(18)){var ri,di;return De()!==19&&(ri=At(25),di=ns()),Le?ui(19):ui(19,void 0,!1)&&xt(),Bi(ge.createJsxExpression(ri,di),Nr)}}function __(){if(De()===18)return zd();Mt();var Le=Ue();return Bi(ge.createJsxAttribute(Rn(),De()!==63?void 0:ut()===10?ga():kl(!0)),Le)}function zd(){var Le=Ue();ui(18),ui(25);var Nr=ns();return ui(19),Bi(ge.createJsxSpreadAttribute(Nr),Le)}function Al(Le,Nr){var ri=Ue();ui(30);var di=R_();return ui(31,void 0,!1)&&(Nr||!l(Le.tagName,di)?Tr():xt()),Bi(ge.createJsxClosingElement(di),ri)}function wc(Le){var Nr=Ue();return ui(30),e.tokenIsIdentifierOrKeyword(De())&&Mr(R_(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment),ui(31,void 0,!1)&&(Le?Tr():xt()),Bi(ge.createJsxJsxClosingFragment(),Nr)}function qu(){var Le=Ue();ui(29);var Nr=Aa();ui(31);var ri=mu();return Bi(ge.createTypeAssertion(Nr,ri),Le)}function Vu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())||De()===22||Zn()}function ef(){return De()===28&&Rt(Vu)}function sl(Le){if(Le.flags&32)return!0;if(e.isNonNullExpression(Le)){for(var Nr=Le.expression;e.isNonNullExpression(Nr)&&!(Nr.flags&32);)Nr=Nr.expression;if(Nr.flags&32){for(;e.isNonNullExpression(Le);)Le.flags|=32,Le=Le.expression;return!0}}return!1}function p_(Le,Nr,ri){var di=ce(!0,!0),Mi=ri||sl(Nr),st=Mi?ge.createPropertyAccessChain(Nr,ri,di):ge.createPropertyAccessExpression(Nr,di);return Mi&&e.isPrivateIdentifier(st.name)&&Mr(st.name,e.Diagnostics.An_optional_chain_cannot_contain_private_identifiers),Bi(st,Le)}function Df(Le,Nr,ri){var di;if(De()===23)di=kn(79,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var Mi=Wt(ns);e.isStringOrNumericLiteralLike(Mi)&&(Mi.text=xn(Mi.text)),di=Mi}ui(23);var st=ri||sl(Nr)?ge.createElementAccessChain(Nr,ri,di):ge.createElementAccessExpression(Nr,di);return Bi(st,Le)}function Ec(Le,Nr,ri){for(;;){var di=void 0,Mi=!1;if(ri&&ef()?(di=$a(28),Mi=e.tokenIsIdentifierOrKeyword(De())):Mi=at(24),Mi){Nr=p_(Le,Nr,di);continue}if((di||!vr())&&at(22)){Nr=Df(Le,Nr,di);continue}if(Zn()){Nr=!di&&Nr.kind===228?os(Le,Nr.expression,di,Nr.typeArguments):os(Le,Nr,di,void 0);continue}if(!di){if(De()===53&&!D.hasPrecedingLineBreak()){Tr(),Nr=Bi(ge.createNonNullExpression(Nr),Le);continue}var st=Ii(Gc);if(st){Nr=Bi(ge.createExpressionWithTypeArguments(Nr,st),Le);continue}}return Nr}}function Zn(){return De()===14||De()===15}function os(Le,Nr,ri,di){var Mi=ge.createTaggedTemplateExpression(Nr,di,De()===14?(ct(),ga()):yi(!0));return(ri||Nr.flags&32)&&(Mi.flags|=32),Mi.questionDotToken=ri,Bi(Mi,Le)}function Ps(Le,Nr){for(;;){Nr=Ec(Le,Nr,!0);var ri=void 0,di=At(28);if(di&&(ri=Ii(Gc),Zn())){Nr=os(Le,Nr,di,ri);continue}if(ri||De()===20){!di&&Nr.kind===228&&(ri=Nr.typeArguments,Nr=Nr.expression);var Mi=d_(),st=di||sl(Nr)?ge.createCallChain(Nr,di,ri,Mi):ge.createCallExpression(Nr,ri,Mi);Nr=Bi(st,Le);continue}if(di){var ra=kn(79,!1,e.Diagnostics.Identifier_expected);Nr=Bi(ge.createPropertyAccessChain(Nr,di,ra),Le)}break}return Nr}function d_(){ui(20);var Le=hs(11,Nl);return ui(21),Le}function Gc(){if((Er&262144)===0&&Li()===29){Tr();var Le=hs(20,Aa);if(!!ui(31))return Le&&B_()?Le:void 0}}function B_(){switch(De()){case 20:case 14:case 15:return!0}return!qs()}function vu(){switch(De()){case 8:case 9:case 10:case 14:return ga();case 108:case 106:case 104:case 110:case 95:return ai();case 20:return Gt();case 22:return cl();case 18:return Ut();case 131:if(!Rt(Iu))break;return Ds();case 84:return tn();case 98:return Ds();case 103:return bs();case 43:case 68:if(Yi()===13)return ga();break;case 15:return yi(!1);case 80:return Co()}return eo(e.Diagnostics.Expression_expected)}function Gt(){var Le=Ue(),Nr=fr();ui(20);var ri=Wt(ns);return ui(21),wr(Bi(ge.createParenthesizedExpression(ri),Le),Nr)}function As(){var Le=Ue();ui(25);var Nr=hc();return Bi(ge.createSpreadElement(Nr),Le)}function vn(){return De()===25?As():De()===27?Bi(ge.createOmittedExpression(),Ue()):hc()}function Nl(){return et(fe,vn)}function cl(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(22),di=D.hasPrecedingLineBreak(),Mi=hs(15,vn);return Vi(22,23,ri,Nr),Bi(ge.createArrayLiteralExpression(Mi,di),Le)}function rf(){var Le=Ue(),Nr=fr();if(At(25)){var ri=hc();return wr(Bi(ge.createSpreadAssignment(ri),Le),Nr)}var di=gl(),Mi=Fc();if(Ko(136))return Gu(Le,Nr,di,Mi,172);if(Ko(149))return Gu(Le,Nr,di,Mi,173);var st=At(41),ra=Fi(),Ta=En(),ha=At(57),Na=At(53);if(st||De()===20||De()===29)return pl(Le,Nr,di,Mi,st,Ta,ha,Na);var In,qo=ra&&De()!==58;if(qo){var co=At(63),ts=co?Wt(hc):void 0;In=ge.createShorthandPropertyAssignment(Ta,ts),In.equalsToken=co}else{ui(58);var vs=Wt(hc);In=ge.createPropertyAssignment(Ta,vs)}return In.decorators=di,In.modifiers=Mi,In.questionToken=ha,In.exclamationToken=Na,wr(Bi(In,Le),Nr)}function Ut(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(18),di=D.hasPrecedingLineBreak(),Mi=hs(12,rf,!0);return Vi(18,19,ri,Nr),Bi(ge.createObjectLiteralExpression(Mi,di),Le)}function Ds(){var Le=vr();wi(!1);var Nr=Ue(),ri=fr(),di=Fc();ui(98);var Mi=At(41),st=Mi?1:0,ra=e.some(di,e.isAsyncModifier)?2:0,Ta=st&&ra?Ze(bf):st?ae(bf):ra?Jr(bf):bf(),ha=Ws(),Na=Ei(st|ra),In=vc(58,!1),qo=Cc(st|ra);wi(Le);var co=ge.createFunctionExpression(di,Mi,Ta,ha,Na,In,qo);return wr(Bi(co,Nr),ri)}function bf(){return Ki()?Pn():void 0}function bs(){var Le=Ue();if(ui(103),at(24)){var Nr=Rn();return Bi(ge.createMetaProperty(103,Nr),Le)}var ri=Ue(),di=Ec(ri,vu(),!1),Mi;di.kind===228&&(Mi=di.typeArguments,di=di.expression);var st=De()===20?d_():void 0;return Bi(ge.createNewExpression(di,Mi,st),Le)}function Dc(Le,Nr){var ri=Ue(),di=fr(),Mi=D.getTokenPos(),st=ui(18,Nr);if(st||Le){var ra=D.hasPrecedingLineBreak(),Ta=Qi(1,nc);Vi(18,19,st,Mi);var ha=wr(Bi(ge.createBlock(Ta,ra),ri),di);return De()===63&&(Ar(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),Tr()),ha}else{var Ta=ps();return wr(Bi(ge.createBlock(Ta,void 0),ri),di)}}function Cc(Le,Nr){var ri=Wr();Di(!!(Le&1));var di=mr();Xi(!!(Le&2));var Mi=Ne;Ne=!1;var st=vr();st&&wi(!1);var ra=Dc(!!(Le&16),Nr);return st&&wi(!0),Ne=Mi,Di(ri),Xi(di),ra}function ac(){var Le=Ue(),Nr=fr();return ui(26),wr(Bi(ge.createEmptyStatement(),Le),Nr)}function Pl(){var Le=Ue(),Nr=fr();ui(99);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc(),ra=at(91)?nc():void 0;return wr(Bi(ge.createIfStatement(Mi,st,ra),Le),Nr)}function Il(){var Le=Ue(),Nr=fr();ui(90);var ri=nc();ui(115);var di=D.getTokenPos(),Mi=ui(20),st=Wt(ns);return Vi(20,21,Mi,di),at(26),wr(Bi(ge.createDoStatement(ri,st),Le),Nr)}function zf(){var Le=Ue(),Nr=fr();ui(115);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc();return wr(Bi(ge.createWhileStatement(Mi,st),Le),Nr)}function ul(){var Le=Ue(),Nr=fr();ui(97);var ri=At(132);ui(20);var di;De()!==26&&(De()===113||De()===119||De()===85?di=z_(!0):di=Zt(ns));var Mi;if(ri?ui(160):at(160)){var st=Wt(hc);ui(21),Mi=ge.createForOfStatement(ri,di,st,nc())}else if(at(101)){var st=Wt(ns);ui(21),Mi=ge.createForInStatement(di,st,nc())}else{ui(26);var ra=De()!==26&&De()!==21?Wt(ns):void 0;ui(26);var Ta=De()!==21?Wt(ns):void 0;ui(21),Mi=ge.createForStatement(di,ra,Ta,nc())}return wr(Bi(Mi,Le),Nr)}function Nu(Le){var Nr=Ue(),ri=fr();ui(Le===246?81:86);var di=ka()?void 0:eo();pn();var Mi=Le===246?ge.createBreakStatement(di):ge.createContinueStatement(di);return wr(Bi(Mi,Nr),ri)}function Us(){var Le=Ue(),Nr=fr();ui(105);var ri=ka()?void 0:Wt(ns);return pn(),wr(Bi(ge.createReturnStatement(ri),Le),Nr)}function Ap(){var Le=Ue(),Nr=fr();ui(116);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=Gi(33554432,nc);return wr(Bi(ge.createWithStatement(Mi,st),Le),Nr)}function Wf(){var Le=Ue(),Nr=fr();ui(82);var ri=Wt(ns);ui(58);var di=Qi(3,nc);return wr(Bi(ge.createCaseClause(ri,di),Le),Nr)}function Sf(){var Le=Ue();ui(88),ui(58);var Nr=Qi(3,nc);return Bi(ge.createDefaultClause(Nr),Le)}function ll(){return De()===82?Wf():Sf()}function J_(){var Le=Ue();ui(18);var Nr=Qi(2,ll);return ui(19),Bi(ge.createCaseBlock(Nr),Le)}function j_(){var Le=Ue(),Nr=fr();ui(107),ui(20);var ri=Wt(ns);ui(21);var di=J_();return wr(Bi(ge.createSwitchStatement(ri,di),Le),Nr)}function U_(){var Le=Ue(),Nr=fr();ui(109);var ri=D.hasPrecedingLineBreak()?void 0:Wt(ns);return ri===void 0&&(Cr++,ri=Bi(ge.createIdentifier(""),Ue())),Ba()||wt(ri),wr(Bi(ge.createThrowStatement(ri),Le),Nr)}function iu(){var Le=Ue(),Nr=fr();ui(111);var ri=Dc(!1),di=De()===83?vd():void 0,Mi;return(!di||De()===96)&&(ui(96,e.Diagnostics.catch_or_finally_expected),Mi=Dc(!1)),wr(Bi(ge.createTryStatement(ri,di,Mi),Le),Nr)}function vd(){var Le=Ue();ui(83);var Nr;at(20)?(Nr=xf(),ui(21)):Nr=void 0;var ri=Dc(!1);return Bi(ge.createCatchClause(Nr,ri),Le)}function qf(){var Le=Ue(),Nr=fr();return ui(87),pn(),wr(Bi(ge.createDebuggerStatement(),Le),Nr)}function dc(){var Le=Ue(),Nr=fr(),ri,di=De()===20,Mi=Wt(ns);return e.isIdentifier(Mi)&&at(58)?ri=ge.createLabeledStatement(Mi,nc()):(Ba()||wt(Mi),ri=ge.createExpressionStatement(Mi),di&&(Nr=!1)),wr(Bi(ri,Le),Nr)}function Pu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())&&!D.hasPrecedingLineBreak()}function wl(){return Tr(),De()===84&&!D.hasPrecedingLineBreak()}function Iu(){return Tr(),De()===98&&!D.hasPrecedingLineBreak()}function so(){return Tr(),(e.tokenIsIdentifierOrKeyword(De())||De()===8||De()===9||De()===10)&&!D.hasPrecedingLineBreak()}function Et(){for(;;)switch(De()){case 113:case 119:case 85:case 98:case 84:case 92:return!0;case 118:case 152:return u_();case 141:case 142:return Tf();case 126:case 131:case 135:case 121:case 122:case 123:case 145:if(Tr(),D.hasPrecedingLineBreak())return!1;continue;case 157:return Tr(),De()===18||De()===79||De()===93;case 100:return Tr(),De()===10||De()===41||De()===18||e.tokenIsIdentifierOrKeyword(De());case 93:var Le=Tr();if(Le===152&&(Le=Rt(Tr)),Le===63||Le===41||Le===18||Le===88||Le===127)return!0;continue;case 124:Tr();continue;default:return!1}}function Ys(){return Rt(Et)}function Ku(){switch(De()){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 Ys()||Rt(Jn);case 85:case 93:return Ys();case 131:case 135:case 118:case 141:case 142:case 152:case 157:return!0;case 123:case 121:case 122:case 124:case 145:return Ys()||!Rt(Pu);default:return qs()}}function Np(){return Tr(),Ki()||De()===18||De()===22}function Pp(){return Rt(Np)}function nc(){switch(De()){case 26:return ac();case 18:return Dc(!1);case 113:return rs(Ue(),fr(),void 0,void 0);case 119:if(Pp())return rs(Ue(),fr(),void 0,void 0);break;case 98:return Op(Ue(),fr(),void 0,void 0);case 84:return Ml(Ue(),fr(),void 0,void 0);case 99:return Pl();case 90:return Il();case 115:return zf();case 97:return ul();case 86:return Nu(245);case 81:return Nu(246);case 105:return Us();case 116:return Ap();case 107:return j_();case 109:return U_();case 111:case 83:case 96:return iu();case 87:return qf();case 59:return _l();case 131:case 118:case 152:case 141:case 142:case 135:case 85:case 92:case 93:case 100:case 121:case 122:case 123:case 126:case 124:case 145:case 157:if(Ys())return _l();break}return dc()}function fl(Le){return Le.kind===135}function _l(){var Le=e.some(Rt(function(){return gl(),Fc()}),fl);if(Le){var Nr=cu();if(Nr)return Nr}var ri=Ue(),di=fr(),Mi=gl(),st=Fc();if(Le){for(var ra=0,Ta=st;ra=0),e.Debug.assert(Na<=co),e.Debug.assert(co<=qo.length),!m(qo,Na))return;var ts,vs,Ac,Is,Qu,sc=[],bc=[];return D.scanRange(Na+3,In-5,function(){var It=1,Ma,aa=Na-(qo.lastIndexOf(` +`,Na)+1)+4;function Ja(Js){Ma||(Ma=aa),sc.push(Js),aa+=Js.length}for(vi();Up(5););Up(4)&&(It=0,aa=0);e:for(;;){switch(De()){case 59:It===0||It===1?(Yu(sc),Qu||(Qu=Ue()),Vs(W(aa)),It=0,Ma=void 0):Ja(D.getTokenText());break;case 4:sc.push(D.getTokenText()),It=0,aa=0;break;case 41:var _n=D.getTokenText();It===1||It===2?(It=2,Ja(_n)):(It=1,aa+=_n.length);break;case 5:var ro=D.getTokenText();It===2?sc.push(ro):Ma!==void 0&&aa+ro.length>Ma&&sc.push(ro.slice(Ma-aa)),aa+=ro.length;break;case 1:break e;case 18:It=2;var as=D.getStartPos(),cc=D.getTextPos()-1,Sc=rt(cc);if(Sc){Is||Mc(sc),bc.push(Bi(ge.createJSDocText(sc.join("")),Is!=null?Is:Na,as)),bc.push(Sc),sc=[],Is=D.getTextPos();break}default:It=2,Ja(D.getTokenText());break}vi()}Yu(sc),bc.length&&sc.length&&bc.push(Bi(ge.createJSDocText(sc.join("")),Is!=null?Is:Na,Qu)),bc.length&&ts&&e.Debug.assertIsDefined(Qu,"having parsed tags implies that the end of the comment span should be set");var hu=ts&&Cn(ts,vs,Ac);return Bi(ge.createJSDocComment(bc.length?Cn(bc,Na,Qu):sc.length?sc.join(""):void 0,hu),Na,co)});function Mc(It){for(;It.length&&(It[0]===` +`||It[0]==="\r");)It.shift()}function Yu(It){for(;It.length&&It[It.length-1].trim()==="";)It.pop()}function Rl(){for(;;){if(vi(),De()===1)return!0;if(!(De()===5||De()===4))return!1}}function Lc(){if(!((De()===5||De()===4)&&Rt(Rl)))for(;De()===5||De()===4;)vi()}function _(){if((De()===5||De()===4)&&Rt(Rl))return"";for(var It=D.hasPrecedingLineBreak(),Ma=!1,aa="";It&&De()===41||De()===5||De()===4;)aa+=D.getTokenText(),De()===4?(It=!0,Ma=!0,aa=""):De()===41&&(It=!1),vi();return Ma?aa:""}function W(It){e.Debug.assert(De()===59);var Ma=D.getTokenPos();vi();var aa=ff(void 0),Ja=_(),_n;switch(aa.escapedText){case"author":_n=Jt(Ma,aa,It,Ja);break;case"implements":_n=Xf(Ma,aa,It,Ja);break;case"augments":case"extends":_n=bd(Ma,aa,It,Ja);break;case"class":case"constructor":_n=kf(Ma,ge.createJSDocClassTag,aa,It,Ja);break;case"public":_n=kf(Ma,ge.createJSDocPublicTag,aa,It,Ja);break;case"private":_n=kf(Ma,ge.createJSDocPrivateTag,aa,It,Ja);break;case"protected":_n=kf(Ma,ge.createJSDocProtectedTag,aa,It,Ja);break;case"readonly":_n=kf(Ma,ge.createJSDocReadonlyTag,aa,It,Ja);break;case"override":_n=kf(Ma,ge.createJSDocOverrideTag,aa,It,Ja);break;case"deprecated":Ur=!0,_n=kf(Ma,ge.createJSDocDeprecatedTag,aa,It,Ja);break;case"this":_n=Gg(Ma,aa,It,Ja);break;case"enum":_n=Af(Ma,aa,It,Ja);break;case"arg":case"argument":case"param":return jp(Ma,aa,2,It);case"return":case"returns":_n=Om(Ma,aa,It,Ja);break;case"template":_n=Lm(Ma,aa,It,Ja);break;case"type":_n=Fm(Ma,aa,It,Ja);break;case"typedef":_n=Hg(Ma,aa,It,Ja);break;case"callback":_n=fg(Ma,aa,It,Ja);break;case"see":_n=Vg(Ma,aa,It,Ja);break;default:_n=vo(Ma,aa,It,Ja);break}return _n}function Te(It,Ma,aa,Ja){return Ja||(aa+=Ma-It),cr(aa,Ja.slice(aa))}function cr(It,Ma){var aa=Ue(),Ja=[],_n=[],ro,as=0,cc=!0,Sc;function hu(Sd){Sc||(Sc=It),Ja.push(Sd),It+=Sd.length}Ma!==void 0&&(Ma!==""&&hu(Ma),as=1);var Js=De();e:for(;;){switch(Js){case 4:as=0,Ja.push(D.getTokenText()),It=0;break;case 59:if(as===3||as===2&&(!cc||Rt(ni))){Ja.push(D.getTokenText());break}D.setTextPos(D.getTextPos()-1);case 1:break e;case 5:if(as===2||as===3)hu(D.getTokenText());else{var Qf=D.getTokenText();Sc!==void 0&&It+Qf.length>Sc&&Ja.push(Qf.slice(Sc-It)),It+=Qf.length}break;case 18:as=2;var go=D.getStartPos(),Vd=D.getTextPos()-1,X_=rt(Vd);X_?(_n.push(Bi(ge.createJSDocText(Ja.join("")),ro!=null?ro:aa,go)),_n.push(X_),Ja=[],ro=D.getTextPos()):hu(D.getTokenText());break;case 61:as===3?as=2:as=3,hu(D.getTokenText());break;case 41:if(as===0){as=1,It+=1;break}default:as!==3&&(as=2),hu(D.getTokenText());break}cc=De()===5,Js=vi()}if(Mc(Ja),Yu(Ja),_n.length)return Ja.length&&_n.push(Bi(ge.createJSDocText(Ja.join("")),ro!=null?ro:aa)),Cn(_n,aa,D.getTextPos());if(Ja.length)return Ja.join("")}function ni(){var It=vi();return It===5||It===4}function rt(It){var Ma=Ii(yt);if(!!Ma){vi(),Lc();var aa=Ue(),Ja=e.tokenIsIdentifierOrKeyword(De())?ds(!0):void 0;if(Ja)for(;De()===80;)nt(),vi(),Ja=Bi(ge.createJSDocMemberName(Ja,eo()),aa);for(var _n=[];De()!==19&&De()!==4&&De()!==1;)_n.push(D.getTokenText()),vi();var ro=Ma==="link"?ge.createJSDocLink:Ma==="linkcode"?ge.createJSDocLinkCode:ge.createJSDocLinkPlain;return Bi(ro(Ja,_n.join("")),It,D.getTextPos())}}function yt(){if(_(),De()===18&&vi()===59&&e.tokenIsIdentifierOrKeyword(vi())){var It=D.getTokenValue();if(Xa(It))return It}}function Xa(It){return It==="link"||It==="linkcode"||It==="linkplain"}function vo(It,Ma,aa,Ja){return Bi(ge.createJSDocUnknownTag(Ma,Te(It,Ue(),aa,Ja)),It)}function Vs(It){!It||(ts?ts.push(It):(ts=[It],vs=It.pos),Ac=It.end)}function H_(){return _(),De()===18?ri():void 0}function y_(){var It=Up(22);It&&Lc();var Ma=Up(61),aa=Rm();return Ma&&Qa(61),It&&(Lc(),At(63)&&ns(),ui(23)),{name:aa,isBracketed:It}}function Dd(It){switch(It.kind){case 148:return!0;case 183:return Dd(It.elementType);default:return e.isTypeReferenceNode(It)&&e.isIdentifier(It.typeName)&&It.typeName.escapedText==="Object"&&!It.typeArguments}}function jp(It,Ma,aa,Ja){var _n=H_(),ro=!_n;_();var as=y_(),cc=as.name,Sc=as.isBracketed,hu=_();ro&&!Rt(yt)&&(_n=H_());var Js=Te(It,Ue(),Ja,hu),Qf=aa!==4&&lg(_n,cc,aa,Ja);Qf&&(_n=Qf,ro=!0);var go=aa===1?ge.createJSDocPropertyTag(Ma,cc,Sc,_n,ro,Js):ge.createJSDocParameterTag(Ma,cc,Sc,_n,ro,Js);return Bi(go,It)}function lg(It,Ma,aa,Ja){if(It&&Dd(It.type)){for(var _n=Ue(),ro=void 0,as=void 0;ro=Ii(function(){return Bl(aa,Ja,Ma)});)(ro.kind===340||ro.kind===347)&&(as=e.append(as,ro));if(as){var cc=Bi(ge.createJSDocTypeLiteral(as,It.type.kind===183),_n);return Bi(ge.createJSDocTypeExpression(cc),_n)}}}function Om(It,Ma,aa,Ja){e.some(ts,e.isJSDocReturnTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=H_();return Bi(ge.createJSDocReturnTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Fm(It,Ma,aa,Ja){e.some(ts,e.isJSDocTypeTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=ri(!0),ro=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocTypeTag(Ma,_n,ro),It)}function Vg(It,Ma,aa,Ja){var _n=De()===22||Rt(function(){return vi()===59&&e.tokenIsIdentifierOrKeyword(vi())&&Xa(D.getTokenValue())}),ro=_n?void 0:di(),as=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocSeeTag(Ma,ro,as),It)}function Jt(It,Ma,aa,Ja){var _n=Ue(),ro=ml(),as=D.getStartPos(),cc=Te(It,as,aa,Ja);cc||(as=D.getStartPos());var Sc=typeof cc!="string"?Cn(e.concatenate([Bi(ro,_n,as)],cc),_n):ro.text+cc;return Bi(ge.createJSDocAuthorTag(Ma,Sc),It)}function ml(){for(var It=[],Ma=!1,aa=D.getToken();aa!==1&&aa!==4;){if(aa===29)Ma=!0;else{if(aa===59&&!Ma)break;if(aa===31&&Ma){It.push(D.getTokenText()),D.setTextPos(D.getTokenPos()+1);break}}It.push(D.getTokenText()),aa=vi()}return ge.createJSDocText(It.join(""))}function Xf(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocImplementsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function bd(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocAugmentsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function lf(){var It=at(18),Ma=Ue(),aa=Kg(),Ja=m_(),_n=ge.createExpressionWithTypeArguments(aa,Ja),ro=Bi(_n,Ma);return It&&ui(19),ro}function Kg(){for(var It=Ue(),Ma=ff();at(24);){var aa=ff();Ma=Bi(ge.createPropertyAccessExpression(Ma,aa),It)}return Ma}function kf(It,Ma,aa,Ja,_n){return Bi(Ma(aa,Te(It,Ue(),Ja,_n)),It)}function Gg(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocThisTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Af(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocEnumTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Hg(It,Ma,aa,Ja){var _n,ro=H_();_();var as=Wd();Lc();var cc=cr(aa),Sc;if(!ro||Dd(ro.type)){for(var hu=void 0,Js=void 0,Qf=void 0,go=!1;hu=Ii(function(){return Xg(aa)});)if(go=!0,hu.kind===343)if(Js){var Vd=Ar(e.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);Vd&&e.addRelatedInfo(Vd,e.createDetachedDiagnostic(Re,0,0,e.Diagnostics.The_tag_was_first_specified_here));break}else Js=hu;else Qf=e.append(Qf,hu);if(go){var X_=ro&&ro.type.kind===183,Sd=ge.createJSDocTypeLiteral(Qf,X_);ro=Js&&Js.typeExpression&&!Dd(Js.typeExpression.type)?Js.typeExpression:Bi(Sd,It),Sc=ro.end}}Sc=Sc||cc!==void 0?Ue():((_n=as!=null?as:ro)!==null&&_n!==void 0?_n:Ma).end,cc||(cc=Te(It,Sc,aa,Ja));var Yg=ge.createJSDocTypedefTag(Ma,ro,as,cc);return Bi(Yg,It,Sc)}function Wd(It){var Ma=D.getTokenPos();if(!!e.tokenIsIdentifierOrKeyword(De())){var aa=ff();if(at(24)){var Ja=Wd(!0),_n=ge.createModuleDeclaration(void 0,void 0,aa,Ja,It?4:void 0);return Bi(_n,Ma)}return It&&(aa.isInJSDocNamespace=!0),aa}}function qd(It){for(var Ma=Ue(),aa,Ja;aa=Ii(function(){return Bl(4,It)});)Ja=e.append(Ja,aa);return Cn(Ja||[],Ma)}function fg(It,Ma,aa,Ja){var _n=Wd();Lc();var ro=cr(aa),as=qd(aa),cc=Ii(function(){if(Up(59)){var Js=W(aa);if(Js&&Js.kind===341)return Js}}),Sc=Bi(ge.createJSDocSignature(void 0,as,cc),It);ro||(ro=Te(It,Ue(),aa,Ja));var hu=ro!==void 0?Ue():Sc.end;return Bi(ge.createJSDocCallbackTag(Ma,Sc,_n,ro),It,hu)}function Mm(It,Ma){for(;!e.isIdentifier(It)||!e.isIdentifier(Ma);)if(!e.isIdentifier(It)&&!e.isIdentifier(Ma)&&It.right.escapedText===Ma.right.escapedText)It=It.left,Ma=Ma.left;else return!1;return It.escapedText===Ma.escapedText}function Xg(It){return Bl(1,It)}function Bl(It,Ma,aa){for(var Ja=!0,_n=!1;;)switch(vi()){case 59:if(Ja){var ro=Qg(It,Ma);return ro&&(ro.kind===340||ro.kind===347)&&It!==4&&aa&&(e.isIdentifier(ro.name)||!Mm(aa,ro.name.left))?!1:ro}_n=!1;break;case 4:Ja=!0,_n=!1;break;case 41:_n&&(Ja=!1),_n=!0;break;case 79:Ja=!1;break;case 1:return!1}}function Qg(It,Ma){e.Debug.assert(De()===59);var aa=D.getStartPos();vi();var Ja=ff();Lc();var _n;switch(Ja.escapedText){case"type":return It===1&&Fm(aa,Ja);case"prop":case"property":_n=1;break;case"arg":case"argument":case"param":_n=6;break;default:return!1}return It&_n?jp(aa,Ja,It,Ma):!1}function _g(){var It=Ue(),Ma=Up(22);Ma&&Lc();var aa=ff(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),Ja;if(Ma&&(Lc(),ui(63),Ja=Gi(8388608,al),ui(23)),!e.nodeIsMissing(aa))return Bi(ge.createTypeParameterDeclaration(void 0,aa,void 0,Ja),It)}function Qc(){var It=Ue(),Ma=[];do{Lc();var aa=_g();aa!==void 0&&Ma.push(aa),_()}while(Up(27));return Cn(Ma,It)}function Lm(It,Ma,aa,Ja){var _n=De()===18?ri():void 0,ro=Qc();return Bi(ge.createJSDocTemplateTag(Ma,_n,ro,Te(It,Ue(),aa,Ja)),It)}function Up(It){return De()===It?(vi(),!0):!1}function Rm(){var It=ff();for(at(22)&&ui(23);at(24);){var Ma=ff();at(22)&&ui(23),It=Ji(It,Ma)}return It}function ff(It){if(!e.tokenIsIdentifierOrKeyword(De()))return kn(79,!It,It||e.Diagnostics.Identifier_expected);Cr++;var Ma=D.getTokenPos(),aa=D.getTextPos(),Ja=De(),_n=xn(D.getTokenValue()),ro=Bi(ge.createIdentifier(_n,void 0,Ja),Ma,aa);return vi(),ro}}})(G_=d.JSDocParser||(d.JSDocParser={}))})(Q||(Q={}));var $;(function(d){function D(Ee,He,rr,Ie){if(Ie=Ie||e.Debug.shouldAssert(2),ge(Ee,He,rr,Ie),e.textChangeRangeIsUnchanged(rr))return Ee;if(Ee.statements.length===0)return Q.parseSourceFile(Ee.fileName,He,Ee.languageVersion,void 0,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);var _e=Ee;e.Debug.assert(!_e.hasBeenIncrementallyParsed),_e.hasBeenIncrementallyParsed=!0,Q.fixupParentReferences(_e);var we=Ee.text,de=Re(Ee),ye=Z(Ee,rr);ge(Ee,He,ye,Ie),e.Debug.assert(ye.span.start<=rr.span.start),e.Debug.assert(e.textSpanEnd(ye.span)===e.textSpanEnd(rr.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(ye))===e.textSpanEnd(e.textChangeRangeNewSpan(rr)));var Ae=e.textChangeRangeNewSpan(ye).length-ye.span.length;Fe(_e,ye.span.start,e.textSpanEnd(ye.span),e.textSpanEnd(e.textChangeRangeNewSpan(ye)),Ae,we,He,Ie);var er=Q.parseSourceFile(Ee.fileName,He,Ee.languageVersion,de,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);return er.commentDirectives=fe(Ee.commentDirectives,er.commentDirectives,ye.span.start,e.textSpanEnd(ye.span),Ae,we,He,Ie),er.impliedNodeFormat=Ee.impliedNodeFormat,er}d.updateSourceFile=D;function fe(Ee,He,rr,Ie,_e,we,de,ye){if(!Ee)return He;for(var Ae,er=!1,ir=0,Cr=Ee;irIe){n();var Ne={range:{pos:Br.pos+_e,end:Br.end+_e},type:Er};Ae=e.append(Ae,Ne),ye&&e.Debug.assert(we.substring(Br.pos,Br.end)===de.substring(Ne.range.pos,Ne.range.end))}}return n(),Ae;function n(){er||(er=!0,Ae?He&&Ae.push.apply(Ae,He):Ae=He)}}function g(Ee,He,rr,Ie,_e,we){He?ye(Ee):de(Ee);return;function de(Ae){var er="";if(we&&ne(Ae)&&(er=Ie.substring(Ae.pos,Ae.end)),Ae._children&&(Ae._children=void 0),e.setTextRangePosEnd(Ae,Ae.pos+rr,Ae.end+rr),we&&ne(Ae)&&e.Debug.assert(er===_e.substring(Ae.pos,Ae.end)),se(Ae,de,ye),e.hasJSDocNodes(Ae))for(var ir=0,Cr=Ae.jsDoc;ir=He,"Adjusting an element that was entirely before the change range"),e.Debug.assert(Ee.pos<=rr,"Adjusting an element that was entirely after the change range"),e.Debug.assert(Ee.pos<=Ee.end);var we=Math.min(Ee.pos,Ie),de=Ee.end>=rr?Ee.end+_e:Math.min(Ee.end,Ie);e.Debug.assert(we<=de),Ee.parent&&(e.Debug.assertGreaterThanOrEqual(we,Ee.parent.pos),e.Debug.assertLessThanOrEqual(de,Ee.parent.end)),e.setTextRangePosEnd(Ee,we,de)}function We(Ee,He){if(He){var rr=Ee.pos,Ie=function(ye){e.Debug.assert(ye.pos>=rr),rr=ye.end};if(e.hasJSDocNodes(Ee))for(var _e=0,we=Ee.jsDoc;_err){g(ir,!1,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){if(ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e),se(ir,Ae,er),e.hasJSDocNodes(ir))for(var Ye=0,Br=ir.jsDoc;Yerr){g(ir,!0,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e);for(var Ye=0,Br=ir;Ye0&&_e<=rr;_e++){var we=Be(Ee,Ie);e.Debug.assert(we.pos<=Ie);var de=we.pos;Ie=Math.max(0,de-1)}var ye=e.createTextSpanFromBounds(Ie,e.textSpanEnd(He.span)),Ae=He.newLength+(He.span.start-Ie);return e.createTextChangeRange(ye,Ae)}function Be(Ee,He){var rr=Ee,Ie;if(se(Ee,de),Ie){var _e=we(Ie);_e.pos>rr.pos&&(rr=_e)}return rr;function we(ye){for(;;){var Ae=e.getLastChild(ye);if(Ae)ye=Ae;else return ye}}function de(ye){if(!e.nodeIsMissing(ye))if(ye.pos<=He){if(ye.pos>=rr.pos&&(rr=ye),HeHe),!0}}function ge(Ee,He,rr,Ie){var _e=Ee.text;if(rr&&(e.Debug.assert(_e.length-rr.span.length+rr.newLength===He.length),Ie||e.Debug.shouldAssert(3))){var we=_e.substr(0,rr.span.start),de=He.substr(0,rr.span.start);e.Debug.assert(we===de);var ye=_e.substring(e.textSpanEnd(rr.span),_e.length),Ae=He.substring(e.textSpanEnd(e.textChangeRangeNewSpan(rr)),He.length);e.Debug.assert(ye===Ae)}}function Re(Ee){var He=Ee.statements,rr=0;e.Debug.assert(rr=er.pos&&de=er.pos&&ded.checkJsDirective.pos)&&(d.checkJsDirective={enabled:g==="ts-check",end:ge.range.end,pos:ge.range.pos})});break}case"jsx":case"jsxfrag":case"jsximportsource":case"jsxruntime":return;default:e.Debug.fail("Unhandled pragma kind")}})}e.processPragmasIntoFields=L;var P=new e.Map;function k(d){if(P.has(d))return P.get(d);var D=new RegExp("(\\s".concat(d,`\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`),"im");return P.set(d,D),D}var Y=/^\/\/\/\s*<(\S+)\s.*?\/>/im,U=/^\/\/\/?\s*@(\S+)\s*(.*)\s*$/im;function j(d,D,fe){var g=D.kind===2&&Y.exec(fe);if(g){var ne=g[1].toLowerCase(),ue=e.commentPragmas[ne];if(!ue||!(ue.kind&1))return;if(ue.args){for(var We={},Fe=0,Z=ue.args;Fe=Wi.length)break;var nt=Li;if(Wi.charCodeAt(nt)===34){for(Li++;Li32;)Li++;ct.push(Wi.substring(nt,Li))}}vi(ct)}}e.parseCommandLineWorker=K;function b(Pe,Ue,fr,De,gr,Vr){if(De.isTSConfigOnly){var Tr=Pe[Ue];Tr==="null"?(gr[De.name]=void 0,Ue++):De.type==="boolean"?Tr==="false"?(gr[De.name]=Zt(De,!1,Vr),Ue++):(Tr==="true"&&Ue++,Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line,De.name))):(Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line,De.name)),Tr&&!e.startsWith(Tr,"-")&&Ue++)}else if(!Pe[Ue]&&De.type!=="boolean"&&Vr.push(e.createCompilerDiagnostic(fr.optionTypeMismatchDiagnostic,De.name,ue(De))),Pe[Ue]!=="null")switch(De.type){case"number":gr[De.name]=Zt(De,parseInt(Pe[Ue]),Vr),Ue++;break;case"boolean":var Tr=Pe[Ue];gr[De.name]=Zt(De,Tr!=="false",Vr),(Tr==="false"||Tr==="true")&&Ue++;break;case"string":gr[De.name]=Zt(De,Pe[Ue]||"",Vr),Ue++;break;case"list":var vi=oe(De,Pe[Ue],Vr);gr[De.name]=vi||[],vi&&Ue++;break;default:gr[De.name]=G(De,Pe[Ue],Vr),Ue++;break}else gr[De.name]=void 0,Ue++;return Ue}e.compilerOptionsDidYouMeanDiagnostics={alternateMode:le,getOptionsNameMap:X,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 se(Pe,Ue){return K(e.compilerOptionsDidYouMeanDiagnostics,Pe,Ue)}e.parseCommandLine=se;function J(Pe,Ue){return ie(X,Pe,Ue)}e.getOptionFromName=J;function ie(Pe,Ue,fr){fr===void 0&&(fr=!1),Ue=Ue.toLowerCase();var De=Pe(),gr=De.optionsNameMap,Vr=De.shortOptionNames;if(fr){var Tr=Vr.get(Ue);Tr!==void 0&&(Ue=Tr)}return gr.get(Ue)}var B;function q(){return B||(B=R(e.buildOpts))}var O={diagnostic:e.Diagnostics.Compiler_option_0_may_not_be_used_with_build,getOptionsNameMap:X},ve={alternateMode:O,getOptionsNameMap:q,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 ee(Pe){var Ue=K(ve,Pe),fr=Ue.options,De=Ue.watchOptions,gr=Ue.fileNames,Vr=Ue.errors,Tr=fr;return gr.length===0&&gr.push("."),Tr.clean&&Tr.force&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","force")),Tr.clean&&Tr.verbose&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","verbose")),Tr.clean&&Tr.watch&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","watch")),Tr.watch&&Tr.dry&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"watch","dry")),{buildOptions:Tr,watchOptions:De,projects:gr,errors:Vr}}e.parseBuildCommand=ee;function he(Pe){for(var Ue=[],fr=1;fr=0)return Tr.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,Ve(Ve([],Vr,!0),[Yi],!1).join(" -> "))),{raw:Pe||g(Ue,Tr)};var Wi=Pe?yr(Pe,fr,De,gr,Tr):Ir(Ue,fr,De,gr,Tr);if(!((Ui=Wi.options)===null||Ui===void 0)&&Ui.paths&&(Wi.options.pathsBasePath=De),Wi.extendedConfigPath){Vr=Vr.concat([Yi]);var ct=Ur(Ue,Wi.extendedConfigPath,fr,Vr,Tr,vi);if(ct&&Ge(ct)){var Li=ct.raw,nt=Wi.raw,Mt,xt=function(ut){!nt[ut]&&Li[ut]&&(nt[ut]=e.map(Li[ut],function(Dt){return e.isRootedDiskPath(Dt)?Dt:e.combinePaths(Mt||(Mt=e.convertToRelativePath(e.getDirectoryPath(Wi.extendedConfigPath),De,e.createGetCanonicalFileName(fr.useCaseSensitiveFileNames))),Dt)}))};xt("include"),xt("exclude"),xt("files"),nt.compileOnSave===void 0&&(nt.compileOnSave=Li.compileOnSave),Wi.options=e.assign({},ct.options,Wi.options),Wi.watchOptions=Wi.watchOptions&&ct.watchOptions?e.assign({},ct.watchOptions,Wi.watchOptions):Wi.watchOptions||ct.watchOptions}}return Wi}function yr(Pe,Ue,fr,De,gr){e.hasProperty(Pe,"excludes")&&gr.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var Vr=qr(Pe.compilerOptions,fr,gr,De),Tr=Di(Pe.typeAcquisition||Pe.typingOptions,fr,gr,De),vi=wi(Pe.watchOptions,fr,gr);Pe.compileOnSave=ii(Pe,fr,gr);var Ui;if(Pe.extends)if(!e.isString(Pe.extends))gr.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,"extends","string"));else{var Yi=De?Ye(De,fr):fr;Ui=wr(Pe.extends,Ue,Yi,gr,e.createCompilerDiagnostic)}return{raw:Pe,options:Vr,watchOptions:vi,typeAcquisition:Tr,extendedConfigPath:Ui}}function Ir(Pe,Ue,fr,De,gr){var Vr=or(De),Tr,vi,Ui,Yi,Wi,ct={onSetValidOptionKeyValueInParent:function(nt,Mt,xt){var ut;switch(nt){case"compilerOptions":ut=Vr;break;case"watchOptions":ut=Ui||(Ui={});break;case"typeAcquisition":ut=Tr||(Tr=si(De));break;case"typingOptions":ut=vi||(vi=si(De));break;default:e.Debug.fail("Unknown option")}ut[Mt.name]=Gi(Mt,fr,xt)},onSetValidOptionKeyValueInRoot:function(nt,Mt,xt,ut){switch(nt){case"extends":var Dt=De?Ye(De,fr):fr;Yi=wr(xt,Ue,Dt,gr,function(Rt,Ii){return e.createDiagnosticForNodeInSourceFile(Pe,ut,Rt,Ii)});return}},onSetUnknownOptionKeyValueInRoot:function(nt,Mt,xt,ut){nt==="excludes"&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Mt,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude)),e.find(I,function(Dt){return Dt.name===nt})&&(Wi=e.append(Wi,Mt))}},Li=fe(Pe,gr,!0,ct);return Tr||(vi?Tr=vi.enableAutoDiscovery!==void 0?{enable:vi.enableAutoDiscovery,include:vi.include,exclude:vi.exclude}:vi:Tr=si(De)),Wi&&Li&&Li.compilerOptions===void 0&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Wi[0],e.Diagnostics._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file,e.getTextOfPropertyName(Wi[0]))),{raw:Li,options:Vr,watchOptions:Ui,typeAcquisition:Tr,extendedConfigPath:Yi}}function wr(Pe,Ue,fr,De,gr){if(Pe=e.normalizeSlashes(Pe),e.isRootedDiskPath(Pe)||e.startsWith(Pe,"./")||e.startsWith(Pe,"../")){var Vr=e.getNormalizedAbsolutePath(Pe,fr);if(!Ue.fileExists(Vr)&&!e.endsWith(Vr,".json")&&(Vr="".concat(Vr,".json"),!Ue.fileExists(Vr))){De.push(gr(e.Diagnostics.File_0_not_found,Pe));return}return Vr}var Tr=e.nodeModuleNameResolver(Pe,e.combinePaths(fr,"tsconfig.json"),{moduleResolution:e.ModuleResolutionKind.NodeJs},Ue,void 0,void 0,!0);if(Tr.resolvedModule)return Tr.resolvedModule.resolvedFileName;De.push(gr(e.Diagnostics.File_0_not_found,Pe))}function Ur(Pe,Ue,fr,De,gr,Vr){var Tr,vi=fr.useCaseSensitiveFileNames?Ue:e.toFileNameLowerCase(Ue),Ui,Yi,Wi;if(Vr&&(Ui=Vr.get(vi))?(Yi=Ui.extendedResult,Wi=Ui.extendedConfig):(Yi=$(Ue,function(ct){return fr.readFile(ct)}),Yi.parseDiagnostics.length||(Wi=ur(void 0,Yi,fr,e.getDirectoryPath(Ue),e.getBaseFileName(Ue),De,gr,Vr)),Vr&&Vr.set(vi,{extendedResult:Yi,extendedConfig:Wi})),Pe&&(Pe.extendedSourceFiles=[Yi.fileName],Yi.extendedSourceFiles&&(Tr=Pe.extendedSourceFiles).push.apply(Tr,Yi.extendedSourceFiles)),Yi.parseDiagnostics.length){gr.push.apply(gr,Yi.parseDiagnostics);return}return Wi}function ii(Pe,Ue,fr){if(!e.hasProperty(Pe,e.compileOnSaveCommandLineOption.name))return!1;var De=et(e.compileOnSaveCommandLineOption,Pe.compileOnSave,Ue,fr);return typeof De=="boolean"&&De}function mi(Pe,Ue,fr){var De=[],gr=qr(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertCompilerOptionsFromJson=mi;function pe(Pe,Ue,fr){var De=[],gr=Di(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertTypeAcquisitionFromJson=pe;function or(Pe){var Ue=Pe&&e.getBaseFileName(Pe)==="jsconfig.json"?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{};return Ue}function qr(Pe,Ue,fr,De){var gr=or(De);return Xi(U(),Pe,Ue,gr,e.compilerOptionsDidYouMeanDiagnostics,fr),De&&(gr.configFilePath=e.normalizeSlashes(De)),gr}function si(Pe){return{enable:!!Pe&&e.getBaseFileName(Pe)==="jsconfig.json",include:[],exclude:[]}}function Di(Pe,Ue,fr,De){var gr=si(De),Vr=N(Pe);return Xi(l(),Vr,Ue,gr,V,fr),gr}function wi(Pe,Ue,fr){return Xi(H(),Pe,Ue,void 0,k,fr)}function Xi(Pe,Ue,fr,De,gr,Vr){if(!!Ue){for(var Tr in Ue){var vi=Pe.get(Tr);vi?(De||(De={}))[vi.name]=et(vi,Ue[Tr],fr,Vr):Vr.push(T(Tr,gr,e.createCompilerDiagnostic))}return De}}function et(Pe,Ue,fr,De){if(We(Pe,Ue)){var gr=Pe.type;if(gr==="list"&&e.isArray(Ue))return pi(Pe,Ue,fr,De);if(!e.isString(gr))return _r(Pe,Ue,De);var Vr=Zt(Pe,Ue,De);return Cr(Vr)?Vr:Wt(Pe,fr,Vr)}else De.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,Pe.name,ue(Pe)))}e.convertJsonOption=et;function Gi(Pe,Ue,fr){if(!Cr(fr)){if(Pe.type==="list"){var De=Pe;return De.element.isFilePath||!e.isString(De.element.type)?e.filter(e.map(fr,function(gr){return Gi(De.element,Ue,gr)}),function(gr){return De.listPreserveFalsyValues?!0:!!gr}):fr}else if(!e.isString(Pe.type))return Pe.type.get(e.isString(fr)?fr.toLowerCase():fr);return Wt(Pe,Ue,fr)}}function Wt(Pe,Ue,fr){return Pe.isFilePath&&(fr=e.getNormalizedAbsolutePath(fr,Ue),fr===""&&(fr=".")),fr}function Zt(Pe,Ue,fr){var De;if(!Cr(Ue)){var gr=(De=Pe.extraValidation)===null||De===void 0?void 0:De.call(Pe,Ue);if(!gr)return Ue;fr.push(e.createCompilerDiagnostic.apply(void 0,gr))}}function _r(Pe,Ue,fr){if(!Cr(Ue)){var De=Ue.toLowerCase(),gr=Pe.type.get(De);if(gr!==void 0)return Zt(Pe,gr,fr);fr.push(p(Pe))}}function pi(Pe,Ue,fr,De){return e.filter(e.map(Ue,function(gr){return et(Pe.element,gr,fr,De)}),function(gr){return Pe.listPreserveFalsyValues?!0:!!gr})}var ae=/(^|\/)\*\*\/?$/,Xe=/^[^*?]*(?=\/[^/]*[*?])/;function Jr(Pe,Ue,fr,De,gr){gr===void 0&&(gr=e.emptyArray),Ue=e.normalizePath(Ue);var Vr=e.createGetCanonicalFileName(De.useCaseSensitiveFileNames),Tr=new e.Map,vi=new e.Map,Ui=new e.Map,Yi=Pe.validatedFilesSpec,Wi=Pe.validatedIncludeSpecs,ct=Pe.validatedExcludeSpecs,Li=e.getSupportedExtensions(fr,gr),nt=e.getSupportedExtensionsWithJsonIfResolveJsonModule(fr,Li);if(Yi)for(var Mt=0,xt=Yi;Mt0)for(var Ii=function(wt){if(e.fileExtensionIs(wt,".json")){if(!Rt){var na=Wi.filter(function(at){return e.endsWith(at,".json")}),Ai=e.map(e.getRegularExpressionsForWildcards(na,Ue,"files"),function(at){return"^".concat(at,"$")});Rt=Ai?Ai.map(function(at){return e.getRegexFromPattern(at,De.useCaseSensitiveFileNames)}):e.emptyArray}var Oi=e.findIndex(Rt,function(at){return at.test(wt)});if(Oi!==-1){var ji=Vr(wt);!Tr.has(ji)&&!Ui.has(ji)&&Ui.set(ji,wt)}return"continue"}if(mr(wt,Tr,vi,Li,Vr))return"continue";Ar(wt,vi,Li,Vr);var Vi=Vr(wt);!Tr.has(Vi)&&!vi.has(Vi)&&vi.set(Vi,wt)},Ki=0,Fi=De.readDirectory(Ue,e.flatten(nt),ct,Wi,void 0);KiUe}function Sr(Pe,Ue,fr,De){return zr(Pe,e.filter(Ue,function(gr){return!Ze(gr)}),fr,De)}e.matchesExclude=Sr;function zr(Pe,Ue,fr,De,gr){var Vr=e.getRegularExpressionForWildcard(Ue,e.combinePaths(e.normalizePath(De),gr),"exclude"),Tr=Vr&&e.getRegexFromPattern(Vr,fr);return Tr?Tr.test(Pe)?!0:!e.hasExtension(Pe)&&Tr.test(e.ensureTrailingDirectorySeparator(Pe)):!1}function Wr(Pe,Ue,fr,De,gr){return Pe.filter(function(Tr){if(!e.isString(Tr))return!1;var vi=Je(Tr,fr);return vi!==void 0&&Ue.push(Vr.apply(void 0,vi)),vi===void 0});function Vr(Tr,vi){var Ui=e.getTsConfigPropArrayElementValue(De,gr,vi);return Ui?e.createDiagnosticForNodeInSourceFile(De,Ui,Tr,vi):e.createCompilerDiagnostic(Tr,vi)}}function Je(Pe,Ue){if(Ue&&ae.test(Pe))return[e.Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe];if(Ze(Pe))return[e.Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe]}function xe(Pe,Ue,fr){var De=Pe.validatedIncludeSpecs,gr=Pe.validatedExcludeSpecs,Vr=e.getRegularExpressionForWildcard(gr,Ue,"exclude"),Tr=Vr&&new RegExp(Vr,fr?"":"i"),vi={};if(De!==void 0){for(var Ui=[],Yi=0,Wi=De;Yi=0;Vr--){var Tr=gr[Vr];if(e.fileExtensionIs(Pe,Tr))return;var vi=De(e.changeExtension(Pe,Tr));Ue.delete(vi)}}function Oe(Pe){var Ue={};for(var fr in Pe)if(Pe.hasOwnProperty(fr)){var De=J(fr);De!==void 0&&(Ue[fr]=nr(Pe[fr],De))}return Ue}e.convertCompilerOptionsForTelemetry=Oe;function nr(Pe,Ue){switch(Ue.type){case"object":return"";case"string":return"";case"number":return typeof Pe=="number"?Pe:"";case"boolean":return typeof Pe=="boolean"?Pe:"";case"list":var fr=Ue.element;return e.isArray(Pe)?Pe.map(function(De){return nr(De,fr)}):"";default:return e.forEachEntry(Ue.type,function(De,gr){if(De===Pe)return gr})}}function Mr(Pe){switch(Pe.type){case"number":return 1;case"boolean":return!0;case"string":var Ue=Pe.defaultValueDescription;return Pe.isFilePath?"./".concat(Ue&&typeof Ue=="string"?Ue:""):"";case"list":return[];case"object":return{};default:var fr=Pe.type.keys().next();return fr.done?e.Debug.fail("Expected 'option.type' to have entries."):fr.value}}})(ke||(ke={}));var ke;(function(e){function a(Ze){Ze.trace(e.formatMessage.apply(void 0,arguments))}e.trace=a;function C(Ze,Sr){return!!Ze.traceResolution&&Sr.trace!==void 0}e.isTraceEnabled=C;function I(Ze,Sr){var zr;if(Sr&&Ze){var Wr=Ze.packageJsonContent;typeof Wr.name=="string"&&typeof Wr.version=="string"&&(zr={name:Wr.name,subModuleName:Sr.path.slice(Ze.packageDirectory.length+e.directorySeparator.length),version:Wr.version})}return Sr&&{path:Sr.path,extension:Sr.ext,packageId:zr}}function R(Ze){return I(void 0,Ze)}function E(Ze){if(Ze)return e.Debug.assert(Ze.packageId===void 0),{path:Ze.path,ext:Ze.extension}}var X;(function(Ze){Ze[Ze.TypeScript=0]="TypeScript",Ze[Ze.JavaScript=1]="JavaScript",Ze[Ze.Json=2]="Json",Ze[Ze.TSConfig=3]="TSConfig",Ze[Ze.DtsOnly=4]="DtsOnly",Ze[Ze.TsOnly=5]="TsOnly"})(X||(X={}));function le(Ze){if(!!Ze)return e.Debug.assert(e.extensionIsTS(Ze.extension)),{fileName:Ze.path,packageId:Ze.packageId}}function N(Ze,Sr,zr,Wr,Je){var xe;return Je?((xe=Je.failedLookupLocations).push.apply(xe,zr),Je):{resolvedModule:Ze&&{resolvedFileName:Ze.path,originalPath:Ze.originalPath===!0?void 0:Ze.originalPath,extension:Ze.extension,isExternalLibraryImport:Sr,packageId:Ze.packageId},failedLookupLocations:zr,resolutionDiagnostics:Wr}}function p(Ze,Sr,zr,Wr){if(!e.hasProperty(Ze,Sr)){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_does_not_have_a_0_field,Sr);return}var Je=Ze[Sr];if(typeof Je!==zr||Je===null){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,Sr,zr,Je===null?"null":typeof Je);return}return Je}function m(Ze,Sr,zr,Wr){var Je=p(Ze,Sr,"string",Wr);if(Je!==void 0){if(!Je){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_had_a_falsy_0_field,Sr);return}var xe=e.normalizePath(e.combinePaths(zr,Je));return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_0_field_1_that_references_2,Sr,Je,xe),xe}}function G(Ze,Sr,zr){return m(Ze,"typings",Sr,zr)||m(Ze,"types",Sr,zr)}function oe(Ze,Sr,zr){return m(Ze,"tsconfig",Sr,zr)}function f(Ze,Sr,zr){return m(Ze,"main",Sr,zr)}function T(Ze,Sr){var zr=p(Ze,"typesVersions","object",Sr);if(zr!==void 0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings),zr}function K(Ze,Sr){var zr=T(Ze,Sr);if(zr!==void 0){if(Sr.traceEnabled)for(var Wr in zr)e.hasProperty(zr,Wr)&&!e.VersionRange.tryParse(Wr)&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range,Wr);var Je=se(zr);if(!Je){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0,e.versionMajorMinor);return}var xe=Je.version,vr=Je.paths;if(typeof vr!="object"){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,"typesVersions['".concat(xe,"']"),"object",typeof vr);return}return Je}}var b;function se(Ze){b||(b=new e.Version(e.version));for(var Sr in Ze)if(!!e.hasProperty(Ze,Sr)){var zr=e.VersionRange.tryParse(Sr);if(zr!==void 0&&zr.test(b))return{version:Sr,paths:Ze[Sr]}}}e.getPackageJsonTypesVersionsPaths=se;function J(Ze,Sr){if(Ze.typeRoots)return Ze.typeRoots;var zr;if(Ze.configFilePath?zr=e.getDirectoryPath(Ze.configFilePath):Sr.getCurrentDirectory&&(zr=Sr.getCurrentDirectory()),zr!==void 0)return ie(zr,Sr)}e.getEffectiveTypeRoots=J;function ie(Ze,Sr){if(!Sr.directoryExists)return[e.combinePaths(Ze,B)];var zr;return e.forEachAncestorDirectory(e.normalizePath(Ze),function(Wr){var Je=e.combinePaths(Wr,B);Sr.directoryExists(Je)&&(zr||(zr=[])).push(Je)}),zr}var B=e.combinePaths("node_modules","@types");function q(Ze,Sr,zr){var Wr=typeof zr.useCaseSensitiveFileNames=="function"?zr.useCaseSensitiveFileNames():zr.useCaseSensitiveFileNames;return e.comparePaths(Ze,Sr,!Wr)===0}function O(Ze,Sr,zr,Wr,Je,xe,vr){e.Debug.assert(typeof Ze=="string","Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.");var mr=C(zr,Wr);Je&&(zr=Je.commandLine.options);var Ar=Sr?e.getDirectoryPath(Sr):void 0,Oe=Ar?xe&&xe.getOrCreateCacheForDirectory(Ar,Je):void 0,nr=Oe&&Oe.get(Ze,vr);if(nr)return mr&&(a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1,Ze,Sr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName),a(Wr,e.Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1,Ze,Ar),ct(nr)),nr;var Mr=J(zr,Wr);mr&&(Sr===void 0?Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set,Ze):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1,Ze,Mr):Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set,Ze,Sr):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2,Ze,Sr,Mr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName));var Pe=[],Ue=ve(zr);vr===e.ModuleKind.ESNext&&(e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.NodeNext)&&(Ue|=d.EsmMode);var fr=Ue&d.Exports?Ue&d.EsmMode?["node","import","types"]:["node","require","types"]:[],De=[],gr={compilerOptions:zr,host:Wr,traceEnabled:mr,failedLookupLocations:Pe,packageJsonInfoCache:xe,features:Ue,conditions:fr,requestContainingDirectory:Ar,reportDiagnostic:function(Mt){return void De.push(Mt)}},Vr=Li(),Tr=!0;Vr||(Vr=nt(),Tr=!1);var vi;if(Vr){var Ui=Vr.fileName,Yi=Vr.packageId,Wi=zr.preserveSymlinks?Ui:ze(Ui,Wr,mr);vi={primary:Tr,resolvedFileName:Wi,originalPath:q(Ui,Wi,Wr)?void 0:Ui,packageId:Yi,isExternalLibraryImport:He(Ui)}}return nr={resolvedTypeReferenceDirective:vi,failedLookupLocations:Pe,resolutionDiagnostics:De},Oe==null||Oe.set(Ze,vr,nr),mr&&ct(nr),nr;function ct(Mt){var xt;!((xt=Mt.resolvedTypeReferenceDirective)===null||xt===void 0)&&xt.resolvedFileName?Mt.resolvedTypeReferenceDirective.packageId?a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,e.packageIdToString(Mt.resolvedTypeReferenceDirective.packageId),Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_not_resolved,Ze)}function Li(){if(Mr&&Mr.length)return mr&&a(Wr,e.Diagnostics.Resolving_with_primary_search_path_0,Mr.join(", ")),e.firstDefined(Mr,function(Mt){var xt=e.combinePaths(Mt,Ze),ut=e.getDirectoryPath(xt),Dt=e.directoryProbablyExists(ut,Wr);return!Dt&&mr&&a(Wr,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,ut),le(Cr(X.DtsOnly,xt,!Dt,gr))});mr&&a(Wr,e.Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths)}function nt(){var Mt=Sr&&e.getDirectoryPath(Sr);if(Mt!==void 0){mr&&a(Wr,e.Diagnostics.Looking_up_in_node_modules_folder_initial_location_0,Mt);var xt;if(e.isExternalModuleNameRelative(Ze)){var Dt=Re(Mt,Ze).path;xt=Ee(X.DtsOnly,Dt,!1,gr,!0)}else{var ut=or(X.DtsOnly,Ze,Mt,gr,void 0,void 0);xt=ut&&ut.value}return le(xt)}else mr&&a(Wr,e.Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder)}}e.resolveTypeReferenceDirective=O;function ve(Ze){return e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.Node16?d.Node16Default:e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.NodeNext?d.NodeNextDefault:d.None}function ee(Ze,Sr,zr,Wr,Je){var xe={compilerOptions:zr,host:Wr,traceEnabled:C(zr,Wr),failedLookupLocations:[],packageJsonInfoCache:Je==null?void 0:Je.getPackageJsonInfoCache(),conditions:e.emptyArray,features:d.None,requestContainingDirectory:Sr,reportDiagnostic:e.noop};return e.forEachAncestorDirectory(Sr,function(vr){if(e.getBaseFileName(vr)!=="node_modules"){var mr=e.combinePaths(vr,"node_modules"),Ar=e.combinePaths(mr,Ze);return Ne(Ar,!1,xe)}})}e.resolvePackageNameToPackageJson=ee;function he(Ze,Sr){if(Ze.types)return Ze.types;var zr=[];if(Sr.directoryExists&&Sr.getDirectories){var Wr=J(Ze,Sr);if(Wr)for(var Je=0,xe=Wr;Je0);var Wr={sourceFile:Ze.configFile,commandLine:{options:Ze}};Sr.setOwnMap(Sr.getOrCreateMapOfCacheRedirects(Wr)),zr==null||zr.setOwnMap(zr.getOrCreateMapOfCacheRedirects(Wr))}Sr.setOwnOptions(Ze),zr==null||zr.setOwnOptions(Ze)}}function A(Ze,Sr,zr){return{getOrCreateCacheForDirectory:xe,clear:Wr,update:Je};function Wr(){zr.clear()}function Je(vr){$(vr,zr)}function xe(vr,mr){var Ar=e.toPath(vr,Ze,Sr);return Q(zr,mr,Ar,function(){return y()})}}function y(){var Ze=new e.Map,Sr=new e.Map,zr={get:function(Je,xe){return Ze.get(Wr(Je,xe))},set:function(Je,xe,vr){return Ze.set(Wr(Je,xe),vr),zr},delete:function(Je,xe){return Ze.delete(Wr(Je,xe)),zr},has:function(Je,xe){return Ze.has(Wr(Je,xe))},forEach:function(Je){return Ze.forEach(function(xe,vr){var mr=Sr.get(vr),Ar=mr[0],Oe=mr[1];return Je(xe,Ar,Oe)})},size:function(){return Ze.size}};return zr;function Wr(Je,xe){var vr=xe===void 0?Je:"".concat(xe,"|").concat(Je);return Sr.set(vr,[Je,xe]),vr}}e.createModeAwareCache=y;function V(Ze,Sr,zr){e.Debug.assert(Sr.length===zr.length);for(var Wr=y(),Je=0;Je=0||Ue.indexOf(".")>=0||Ue.indexOf("node_modules")>=0)return!1;var fr=e.combinePaths(Ze.packageDirectory,nr),De=e.getNormalizedAbsolutePath(fr,(Pe=(Mr=zr.host).getCurrentDirectory)===null||Pe===void 0?void 0:Pe.call(Mr)),gr=ye(Wr,De,!1,zr);if(gr)return Je=e.appendIfUnique(Je,gr,function(Yi,Wi){return Yi.path===Wi.path}),!0}else if(Array.isArray(nr))for(var Vr=0,Tr=nr;Vr0;){var vr=Ne(e.getPathFromPathComponents(xe),!1,Je);if(vr)return vr;xe.pop()}}e.getPackageScopeForPath=Er;function Ne(Ze,Sr,zr){var Wr,Je,xe,vr=zr.host,mr=zr.traceEnabled,Ar=e.combinePaths(Ze,"package.json");if(Sr){zr.failedLookupLocations.push(Ar);return}var Oe=(Wr=zr.packageJsonInfoCache)===null||Wr===void 0?void 0:Wr.getPackageJsonInfo(Ar);if(Oe!==void 0){if(typeof Oe!="boolean")return mr&&a(vr,e.Diagnostics.File_0_exists_according_to_earlier_cached_lookups,Ar),Oe;Oe&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist_according_to_earlier_cached_lookups,Ar),zr.failedLookupLocations.push(Ar);return}var nr=e.directoryProbablyExists(Ze,vr);if(nr&&vr.fileExists(Ar)){var Mr=e.readJson(Ar,vr);mr&&a(vr,e.Diagnostics.Found_package_json_at_0,Ar);var Pe=K(Mr,zr),Ue={packageDirectory:Ze,packageJsonContent:Mr,versionPaths:Pe,resolvedEntrypoints:void 0};return(Je=zr.packageJsonInfoCache)===null||Je===void 0||Je.setPackageJsonInfo(Ar,Ue),Ue}else nr&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist,Ar),(xe=zr.packageJsonInfoCache)===null||xe===void 0||xe.setPackageJsonInfo(Ar,nr),zr.failedLookupLocations.push(Ar)}e.getPackageJsonInfo=Ne;function n(Ze,Sr,zr,Wr,Je,xe){var vr;if(Je)switch(Ze){case X.JavaScript:case X.Json:case X.TsOnly:vr=f(Je,Sr,Wr);break;case X.TypeScript:vr=G(Je,Sr,Wr)||f(Je,Sr,Wr);break;case X.DtsOnly:vr=G(Je,Sr,Wr);break;case X.TSConfig:vr=oe(Je,Sr,Wr);break;default:return e.Debug.assertNever(Ze)}var mr=function(fr,De,gr,Vr){var Tr=er(De,gr,Vr);if(Tr){var vi=lr(fr,Tr);if(vi)return R(vi);Vr.traceEnabled&&a(Vr.host,e.Diagnostics.File_0_has_an_unsupported_extension_so_skipping_it,Tr)}var Ui=fr===X.DtsOnly?X.TypeScript:fr,Yi=Vr.features;(Je==null?void 0:Je.type)!=="module"&&(Vr.features&=~d.EsmMode);var Wi=Ee(Ui,De,gr,Vr,!1);return Vr.features=Yi,Wi},Ar=vr?!e.directoryProbablyExists(e.getDirectoryPath(vr),Wr.host):void 0,Oe=zr||!e.directoryProbablyExists(Sr,Wr.host),nr=e.combinePaths(Sr,Ze===X.TSConfig?"tsconfig":"index");if(xe&&(!vr||e.containsPath(Sr,vr))){var Mr=e.getRelativePathFromDirectory(Sr,vr||nr,!1);Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,xe.version,e.version,Mr);var Pe=Xi(Ze,Mr,Sr,xe.paths,void 0,mr,Ar||Oe,Wr);if(Pe)return E(Pe.value)}var Ue=vr&&E(mr(Ze,vr,Ar,Wr));if(Ue)return Ue;if(!(Wr.features&d.EsmMode))return we(Ze,nr,Oe,Wr)}function lr(Ze,Sr){var zr=e.tryGetExtensionFromPath(Sr);return zr!==void 0&&be(Ze,zr)?{path:Sr,ext:zr}:void 0}function be(Ze,Sr){switch(Ze){case X.JavaScript:return Sr===".js"||Sr===".jsx"||Sr===".mjs"||Sr===".cjs";case X.TSConfig:case X.Json:return Sr===".json";case X.TypeScript:return Sr===".ts"||Sr===".tsx"||Sr===".mts"||Sr===".cts"||Sr===".d.ts"||Sr===".d.mts"||Sr===".d.cts";case X.TsOnly:return Sr===".ts"||Sr===".tsx"||Sr===".mts"||Sr===".cts";case X.DtsOnly:return Sr===".d.ts"||Sr===".d.mts"||Sr===".d.cts"}}function Ge(Ze){var Sr=Ze.indexOf(e.directorySeparator);return Ze[0]==="@"&&(Sr=Ze.indexOf(e.directorySeparator,Sr+1)),Sr===-1?{packageName:Ze,rest:""}:{packageName:Ze.slice(0,Sr),rest:Ze.slice(Sr+1)}}e.parsePackageName=Ge;function ur(Ze){return e.every(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,".")})}e.allKeysStartWithDot=ur;function yr(Ze){return!e.some(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,".")})}function Ir(Ze,Sr,zr,Wr,Je,xe){var vr,mr,Ar=typeof Wr.host.useCaseSensitiveFileNames=="function"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,"dummy"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!(!nr||!nr.packageJsonContent.exports)&&typeof nr.packageJsonContent.name=="string"){var Mr=e.getPathComponents(Sr),Pe=e.getPathComponents(nr.packageJsonContent.name);if(!!e.every(Pe,function(fr,De){return Mr[De]===fr})){var Ue=Mr.slice(Pe.length);return wr(nr,Ze,e.length(Ue)?".".concat(e.directorySeparator).concat(Ue.join(e.directorySeparator)):".",Wr,Je,xe)}}}function wr(Ze,Sr,zr,Wr,Je,xe){if(!!Ze.packageJsonContent.exports){if(zr==="."){var vr=void 0;if(typeof Ze.packageJsonContent.exports=="string"||Array.isArray(Ze.packageJsonContent.exports)||typeof Ze.packageJsonContent.exports=="object"&&yr(Ze.packageJsonContent.exports)?vr=Ze.packageJsonContent.exports:e.hasProperty(Ze.packageJsonContent.exports,".")&&(vr=Ze.packageJsonContent.exports["."]),vr){var mr=mi(Sr,Wr,Je,xe,zr,Ze,!1);return mr(vr,"",!1)}}else if(ur(Ze.packageJsonContent.exports)){if(typeof Ze.packageJsonContent.exports!="object")return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0);var Ar=ii(Sr,Wr,Je,xe,zr,Ze.packageJsonContent.exports,Ze,!1);if(Ar)return Ar}return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0)}}function Ur(Ze,Sr,zr,Wr,Je,xe){var vr,mr;if(Sr==="#"||e.startsWith(Sr,"#/"))return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions,Sr),ti(void 0);var Ar=typeof Wr.host.useCaseSensitiveFileNames=="function"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,"dummy"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!nr)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve,Oe),ti(void 0);if(!nr.packageJsonContent.imports)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_scope_0_has_no_imports_defined,nr.packageDirectory),ti(void 0);var Mr=ii(Ze,Wr,Je,xe,Sr,nr.packageJsonContent.imports,nr,!0);return Mr||(Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1,Sr,nr.packageDirectory),ti(void 0))}function ii(Ze,Sr,zr,Wr,Je,xe,vr,mr){var Ar=mi(Ze,Sr,zr,Wr,Je,vr,mr);if(!e.endsWith(Je,e.directorySeparator)&&Je.indexOf("*")===-1&&e.hasProperty(xe,Je)){var Oe=xe[Je];return Ar(Oe,"",!1)}for(var nr=e.sort(e.filter(e.getOwnKeys(xe),function(Vr){return Vr.indexOf("*")!==-1||e.endsWith(Vr,"/")}),function(Vr,Tr){return Vr.length-Tr.length}),Mr=0,Pe=nr;Mr0&&!e.endsWith(Ar,"/"))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);if(!e.startsWith(Ar,"./")){if(vr&&!e.startsWith(Ar,"../")&&!e.startsWith(Ar,"/")&&!e.isRootedDiskPath(Ar)){var Mr=nr?Ar.replace(/\*/g,Oe):Ar+Oe,Pe=ge(Sr.features,Mr,xe.packageDirectory+"/",Sr.compilerOptions,Sr.host,zr,[Ze],Wr);return ti(Pe.resolvedModule?{path:Pe.resolvedModule.resolvedFileName,extension:Pe.resolvedModule.extension,packageId:Pe.resolvedModule.packageId,originalPath:Pe.resolvedModule.originalPath}:void 0)}return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0)}var Ue=e.pathIsRelative(Ar)?e.getPathComponents(Ar).slice(1):e.getPathComponents(Ar),fr=Ue.slice(1);if(fr.indexOf("..")>=0||fr.indexOf(".")>=0||fr.indexOf("node_modules")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var De=e.combinePaths(xe.packageDirectory,Ar),gr=e.getPathComponents(Oe);if(gr.indexOf("..")>=0||gr.indexOf(".")>=0||gr.indexOf("node_modules")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var Vr=Mt(nr?De.replace(/\*/g,Oe):De+Oe),Tr=Dt(Vr,Oe,e.combinePaths(xe.packageDirectory,"package.json"),vr);return Tr||ti(I(xe,ye(Ze,Vr,!1,Sr)))}else if(typeof Ar=="object"&&Ar!==null)if(Array.isArray(Ar)){if(!e.length(Ar))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);for(var ct=0,Li=Ar;ct=0||pe(Sr.conditions,Yi)){var Wi=Ar[Yi],Pe=mr(Wi,Oe,nr);if(Pe)return Pe}}return}else if(Ar===null)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null,xe.packageDirectory,Je),ti(void 0);return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);function Mt(Rt){var Ii,Ki;return Rt===void 0?Rt:e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut})(e.getNormalizedAbsolutePath(Rt,(Ki=(Ii=Sr.host).getCurrentDirectory)===null||Ki===void 0?void 0:Ki.call(Ii)))}function xt(Rt,Ii){return e.ensureTrailingDirectorySeparator(e.combinePaths(Rt,Ii))}function ut(){return Sr.host.useCaseSensitiveFileNames?typeof Sr.host.useCaseSensitiveFileNames=="boolean"?Sr.host.useCaseSensitiveFileNames:Sr.host.useCaseSensitiveFileNames():!0}function Dt(Rt,Ii,Ki,Fi){var ui,Bt,wt,na;if((Ze===X.TypeScript||Ze===X.JavaScript||Ze===X.Json)&&(Sr.compilerOptions.declarationDir||Sr.compilerOptions.outDir)&&Rt.indexOf("/node_modules/")===-1&&(Sr.compilerOptions.configFile?e.startsWith(Mt(Sr.compilerOptions.configFile.fileName),xe.packageDirectory):!0)){var Ai=e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut}),Oi=[];if(Sr.compilerOptions.rootDir||Sr.compilerOptions.composite&&Sr.compilerOptions.configFilePath){var ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[]},((Bt=(ui=Sr.host).getCurrentDirectory)===null||Bt===void 0?void 0:Bt.call(ui))||"",Ai));Oi.push(ji)}else if(Sr.requestContainingDirectory){var Vi=Mt(e.combinePaths(Sr.requestContainingDirectory,"index.ts")),ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[Vi,Mt(Ki)]},((na=(wt=Sr.host).getCurrentDirectory)===null||na===void 0?void 0:na.call(wt))||"",Ai));Oi.push(ji);for(var at=e.ensureTrailingDirectorySeparator(ji);at&&at.length>1;){var At=e.getPathComponents(at);At.pop();var ba=e.getPathFromPathComponents(At);Oi.unshift(ba),at=e.ensureTrailingDirectorySeparator(ba)}}Oi.length>1&&Sr.reportDiagnostic(e.createCompilerDiagnostic(Fi?e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate,Ii===""?".":Ii,Ki));for(var $a=0,Qa=Oi;$aie&&(ie=ve),ie===1)return ie}return ie}break;case 262:{var ee=0;return e.forEachChild(b,function(he){var F=I(he,se);switch(F){case 0:return;case 2:ee=2;return;case 1:return ee=1,!0;default:e.Debug.assertNever(F)}}),ee}case 261:return C(b,se);case 79:if(b.isInJSDocNamespace)return 0}return 1}function E(b,se){for(var J=b.propertyName||b.name,ie=b.parent;ie;){if(e.isBlock(ie)||e.isModuleBlock(ie)||e.isSourceFile(ie)){for(var B=ie.statements,q=void 0,O=0,ve=B;Oq)&&(q=he),q===1)return q}}if(q!==void 0)return q}ie=ie.parent}return 1}var X;(function(b){b[b.None=0]="None",b[b.IsContainer=1]="IsContainer",b[b.IsBlockScopedContainer=2]="IsBlockScopedContainer",b[b.IsControlFlowContainer=4]="IsControlFlowContainer",b[b.IsFunctionLike=8]="IsFunctionLike",b[b.IsFunctionExpression=16]="IsFunctionExpression",b[b.HasLocals=32]="HasLocals",b[b.IsInterface=64]="IsInterface",b[b.IsObjectLiteralOrClassExpressionMethodOrAccessor=128]="IsObjectLiteralOrClassExpressionMethodOrAccessor"})(X||(X={}));function le(b){return e.Debug.attachFlowNodeDebugInfo(b),b}var N=m();function p(b,se){e.performance.mark("beforeBind"),e.perfLogger.logStartBindFile(""+b.fileName),N(b,se),e.perfLogger.logStopBindFile(),e.performance.mark("afterBind"),e.performance.measure("Bind","beforeBind","afterBind")}e.bindSourceFile=p;function m(){var b,se,J,ie,B,q,O,ve,ee,he,F,x,Q,$,A,y,V,L,P,k,Y,U,j=!1,H=0,w,l,d={flags:1},D={flags:1},fe=Ar();function g(ce,Rr,yi,qi,je){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(ce)||b,ce,Rr,yi,qi,je)}function ne(ce,Rr){b=ce,se=Rr,J=e.getEmitScriptTarget(se),U=ue(b,Rr),l=new e.Set,H=0,w=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(d),e.Debug.attachFlowNodeDebugInfo(D),b.locals||(e.tracing===null||e.tracing===void 0||e.tracing.push("bind","bindSourceFile",{path:b.path},!0),Da(b),e.tracing===null||e.tracing===void 0||e.tracing.pop(),b.symbolCount=H,b.classifiableNames=l,Ai()),b=void 0,se=void 0,J=void 0,ie=void 0,B=void 0,q=void 0,O=void 0,ve=void 0,ee=void 0,he=!1,F=void 0,x=void 0,Q=void 0,$=void 0,A=void 0,y=void 0,V=void 0,P=void 0,k=!1,j=!1,Y=0}return ne;function ue(ce,Rr){return e.getStrictOptionValue(Rr,"alwaysStrict")&&!ce.isDeclarationFile?!0:!!ce.externalModuleIndicator}function We(ce,Rr){return H++,new w(ce,Rr)}function Fe(ce,Rr,yi){ce.flags|=yi,Rr.symbol=ce,ce.declarations=e.appendIfUnique(ce.declarations,Rr),yi&1955&&!ce.exports&&(ce.exports=e.createSymbolTable()),yi&6240&&!ce.members&&(ce.members=e.createSymbolTable()),ce.constEnumOnlyModule&&ce.flags&304&&(ce.constEnumOnlyModule=!1),yi&111551&&e.setValueDeclaration(ce,Rr)}function Z(ce){if(ce.kind===271)return ce.isExportEquals?"export=":"default";var Rr=e.getNameOfDeclaration(ce);if(Rr){if(e.isAmbientModule(ce)){var yi=e.getTextOfIdentifierOrLiteral(Rr);return e.isGlobalScopeAugmentation(ce)?"__global":'"'.concat(yi,'"')}if(Rr.kind===162){var qi=Rr.expression;if(e.isStringOrNumericLiteralLike(qi))return e.escapeLeadingUnderscores(qi.text);if(e.isSignedNumericLiteral(qi))return e.tokenToString(qi.operator)+qi.operand.text;e.Debug.fail("Only computed properties with literal names have declaration names")}if(e.isPrivateIdentifier(Rr)){var je=e.getContainingClass(ce);if(!je)return;var Hr=je.symbol;return e.getSymbolNameForPrivateIdentifier(Hr,Rr.escapedText)}return e.isPropertyNameLiteral(Rr)?e.getEscapedTextOfIdentifierOrLiteral(Rr):void 0}switch(ce.kind){case 171:return"__constructor";case 179:case 174:case 323:return"__call";case 180:case 175:return"__new";case 176:return"__index";case 272:return"__export";case 305:return"export=";case 221:if(e.getAssignmentDeclarationKind(ce)===2)return"export=";e.Debug.fail("Unknown binary declaration kind");break;case 317:return e.isJSDocConstructSignature(ce)?"__new":"__call";case 164:e.Debug.assert(ce.parent.kind===317,"Impossible parameter parent kind",function(){return"parent is: ".concat(e.SyntaxKind?e.SyntaxKind[ce.parent.kind]:ce.parent.kind,", expected JSDocFunctionType")});var pt=ce.parent,Pt=pt.parameters.indexOf(ce);return"arg"+Pt}}function Be(ce){return e.isNamedDeclaration(ce)?e.declarationNameToString(ce.name):e.unescapeLeadingUnderscores(e.Debug.checkDefined(Z(ce)))}function ge(ce,Rr,yi,qi,je,Hr,pt){e.Debug.assert(pt||!e.hasDynamicName(yi));var Pt=e.hasSyntacticModifier(yi,512)||e.isExportSpecifier(yi)&&yi.name.escapedText==="default",ga=pt?"__computed":Pt&&Rr?"default":Z(yi),ua;if(ga===void 0)ua=We(0,"__missing");else if(ua=ce.get(ga),qi&2885600&&l.add(ga),!ua)ce.set(ga,ua=We(0,ga)),Hr&&(ua.isReplaceableByMethod=!0);else{if(Hr&&!ua.isReplaceableByMethod)return ua;if(ua.flags&je){if(ua.isReplaceableByMethod)ce.set(ga,ua=We(0,ga));else if(!(qi&3&&ua.flags&67108864)){e.isNamedDeclaration(yi)&&e.setParent(yi.name,yi);var Xn=ua.flags&2?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,jr=!0;(ua.flags&384||qi&384)&&(Xn=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,jr=!1);var fo=!1;e.length(ua.declarations)&&(Pt||ua.declarations&&ua.declarations.length&&yi.kind===271&&!yi.isExportEquals)&&(Xn=e.Diagnostics.A_module_cannot_have_multiple_default_exports,jr=!1,fo=!0);var xs=[];e.isTypeAliasDeclaration(yi)&&e.nodeIsMissing(yi.type)&&e.hasSyntacticModifier(yi,1)&&ua.flags&2887656&&xs.push(g(yi,e.Diagnostics.Did_you_mean_0,"export type { ".concat(e.unescapeLeadingUnderscores(yi.name.escapedText)," }")));var Fo=e.getNameOfDeclaration(yi)||yi;e.forEach(ua.declarations,function(Ao,Ms){var Bs=e.getNameOfDeclaration(Ao)||Ao,xc=g(Bs,Xn,jr?Be(Ao):void 0);b.bindDiagnostics.push(fo?e.addRelatedInfo(xc,g(Fo,Ms===0?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):xc),fo&&xs.push(g(Bs,e.Diagnostics.The_first_export_default_is_here))});var ko=g(Fo,Xn,jr?Be(yi):void 0);b.bindDiagnostics.push(e.addRelatedInfo.apply(void 0,Ve([ko],xs,!1))),ua=We(0,ga)}}}return Fe(ua,yi,qi),ua.parent?e.Debug.assert(ua.parent===Rr,"Existing symbol parent should match new one"):ua.parent=Rr,ua}function Re(ce,Rr,yi){var qi=!!(e.getCombinedModifierFlags(ce)&1)||ze(ce);if(Rr&2097152)return ce.kind===275||ce.kind===265&&qi?ge(B.symbol.exports,B.symbol,ce,Rr,yi):ge(B.locals,void 0,ce,Rr,yi);if(e.isJSDocTypeAlias(ce)&&e.Debug.assert(e.isInJSFile(ce)),!e.isAmbientModule(ce)&&(qi||B.flags&64)){if(!B.locals||e.hasSyntacticModifier(ce,512)&&!Z(ce))return ge(B.symbol.exports,B.symbol,ce,Rr,yi);var je=Rr&111551?1048576:0,Hr=ge(B.locals,void 0,ce,je,yi);return Hr.exportSymbol=ge(B.symbol.exports,B.symbol,ce,Rr,yi),ce.localSymbol=Hr,Hr}else return ge(B.locals,void 0,ce,Rr,yi)}function ze(ce){if(ce.parent&&e.isModuleDeclaration(ce)&&(ce=ce.parent),!e.isJSDocTypeAlias(ce))return!1;if(!e.isJSDocEnumTag(ce)&&!!ce.fullName)return!0;var Rr=e.getNameOfDeclaration(ce);return Rr?!!(e.isPropertyAccessEntityNameExpression(Rr.parent)&&Wa(Rr.parent)||e.isDeclaration(Rr.parent)&&e.getCombinedModifierFlags(Rr.parent)&1):!1}function Ee(ce,Rr){var yi=B,qi=q,je=O;if(Rr&1?(ce.kind!==214&&(q=B),B=O=ce,Rr&32&&(B.locals=e.createSymbolTable()),Li(B)):Rr&2&&(O=ce,O.locals=void 0),Rr&4){var Hr=F,pt=x,Pt=Q,ga=$,ua=V,Xn=P,jr=k,fo=Rr&16&&!e.hasSyntacticModifier(ce,256)&&!ce.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(ce)||ce.kind===170;fo||(F=le({flags:2}),Rr&144&&(F.node=ce)),$=fo||ce.kind===171||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213)?Ye():void 0,V=void 0,x=void 0,Q=void 0,P=void 0,k=!1,_e(ce),ce.flags&=-2817,!(F.flags&1)&&Rr&8&&e.nodeIsPresent(ce.body)&&(ce.flags|=256,k&&(ce.flags|=512),ce.endFlowNode=F),ce.kind===305&&(ce.flags|=Y,ce.endFlowNode=F),$&&(n($,F),F=yr($),(ce.kind===171||ce.kind===170||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213))&&(ce.returnFlowNode=F)),fo||(F=Hr),x=pt,Q=Pt,$=ga,V=ua,P=Xn,k=jr}else Rr&64?(he=!1,_e(ce),ce.flags=he?ce.flags|128:ce.flags&-129):_e(ce);B=yi,q=qi,O=je}function He(ce){rr(ce,function(Rr){return Rr.kind===256?Da(Rr):void 0}),rr(ce,function(Rr){return Rr.kind!==256?Da(Rr):void 0})}function rr(ce,Rr){Rr===void 0&&(Rr=Da),ce!==void 0&&e.forEach(ce,Rr)}function Ie(ce){e.forEachChild(ce,Da,rr)}function _e(ce){var Rr=j;if(j=!1,Ji(ce)){Ie(ce),bo(ce),j=Rr;return}switch(ce.kind>=237&&ce.kind<=253&&!se.allowUnreachableCode&&(ce.flowNode=F),ce.kind){case 241:si(ce);break;case 240:Di(ce);break;case 242:wi(ce);break;case 243:case 244:Xi(ce);break;case 239:et(ce);break;case 247:case 251:Gi(ce);break;case 246:case 245:_r(ce);break;case 252:pi(ce);break;case 249:ae(ce);break;case 263:Xe(ce);break;case 289:Jr(ce);break;case 238:ti(ce);break;case 250:Sr(ce);break;case 219:xe(ce);break;case 220:vr(ce);break;case 221:if(e.isDestructuringAssignment(ce)){j=Rr,mr(ce);return}fe(ce);break;case 215:Oe(ce);break;case 222:nr(ce);break;case 254:Pe(ce);break;case 206:case 207:Yi(ce);break;case 208:Wi(ce);break;case 230:Ui(ce);break;case 345:case 338:case 339:fr(ce);break;case 305:{He(ce.statements),Da(ce.endOfFileToken);break}case 235:case 262:He(ce.statements);break;case 203:Ue(ce);break;case 205:case 204:case 296:case 225:j=Rr;default:Ie(ce);break}bo(ce),j=Rr}function we(ce){switch(ce.kind){case 79:case 80:case 108:case 206:case 207:return ye(ce);case 208:return Ae(ce);case 212:case 230:return we(ce.expression);case 221:return ir(ce);case 219:return ce.operator===53&&we(ce.operand);case 216:return we(ce.expression)}return!1}function de(ce){return e.isDottedName(ce)||(e.isPropertyAccessExpression(ce)||e.isNonNullExpression(ce)||e.isParenthesizedExpression(ce))&&de(ce.expression)||e.isBinaryExpression(ce)&&ce.operatorToken.kind===27&&de(ce.right)||e.isElementAccessExpression(ce)&&(e.isStringOrNumericLiteralLike(ce.argumentExpression)||e.isEntityNameExpression(ce.argumentExpression))&&de(ce.expression)||e.isAssignmentExpression(ce)&&de(ce.left)}function ye(ce){return de(ce)||e.isOptionalChain(ce)&&ye(ce.expression)}function Ae(ce){if(ce.arguments)for(var Rr=0,yi=ce.arguments;Rr=117&&ce.originalKeywordKind<=125?b.bindDiagnostics.push(g(ce,ji(ce),e.declarationNameToString(ce))):ce.originalKeywordKind===132?e.isExternalModule(b)&&e.isInTopLevelContext(ce)?b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module,e.declarationNameToString(ce))):ce.flags&32768&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))):ce.originalKeywordKind===125&&ce.flags&8192&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))))}function ji(ce){return e.getContainingClass(ce)?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:b.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 Vi(ce){ce.escapedText==="#constructor"&&(b.parseDiagnostics.length||b.bindDiagnostics.push(g(ce,e.Diagnostics.constructor_is_a_reserved_word,e.declarationNameToString(ce))))}function at(ce){U&&e.isLeftHandSideExpression(ce.left)&&e.isAssignmentOperator(ce.operatorToken.kind)&&Qa(ce,ce.left)}function At(ce){U&&ce.variableDeclaration&&Qa(ce,ce.variableDeclaration.name)}function ba(ce){if(U&&ce.expression.kind===79){var Rr=e.getErrorSpanForNode(b,ce.expression);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,e.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}function $a(ce){return e.isIdentifier(ce)&&(ce.escapedText==="eval"||ce.escapedText==="arguments")}function Qa(ce,Rr){if(Rr&&Rr.kind===79){var yi=Rr;if($a(yi)){var qi=e.getErrorSpanForNode(b,Rr);b.bindDiagnostics.push(e.createFileDiagnostic(b,qi.start,qi.length,ai(ce),e.idText(yi)))}}}function ai(ce){return e.getContainingClass(ce)?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:b.externalModuleIndicator?e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode:e.Diagnostics.Invalid_use_of_0_in_strict_mode}function Dn(ce){U&&Qa(ce,ce.name)}function ka(ce){return e.getContainingClass(ce)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:b.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 Ba(ce){if(J<2&&O.kind!==305&&O.kind!==261&&!e.isFunctionLikeOrClassStaticBlockDeclaration(O)){var Rr=e.getErrorSpanForNode(b,ce);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,ka(ce)))}}function pn(ce){J<1&&U&&ce.numericLiteralFlags&32&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode))}function Cn(ce){U&&Qa(ce,ce.operand)}function Bi(ce){U&&(ce.operator===45||ce.operator===46)&&Qa(ce,ce.operand)}function kn(ce){U&&Kn(ce,e.Diagnostics.with_statements_are_not_allowed_in_strict_mode)}function xn(ce){U&&e.getEmitScriptTarget(se)>=2&&(e.isDeclarationStatement(ce.statement)||e.isVariableStatement(ce.statement))&&Kn(ce.label,e.Diagnostics.A_label_is_not_allowed_here)}function Kn(ce,Rr,yi,qi,je){var Hr=e.getSpanOfTokenAtPosition(b,ce.pos);b.bindDiagnostics.push(e.createFileDiagnostic(b,Hr.start,Hr.length,Rr,yi,qi,je))}function Pn(ce,Rr,yi){eo(ce,Rr,Rr,yi)}function eo(ce,Rr,yi,qi){Rn(ce,{pos:e.getTokenPosOfNode(Rr,b),end:yi.end},qi)}function Rn(ce,Rr,yi){var qi=e.createFileDiagnostic(b,Rr.pos,Rr.end-Rr.pos,yi);ce?b.bindDiagnostics.push(qi):b.bindSuggestionDiagnostics=e.append(b.bindSuggestionDiagnostics,Ke(Ke({},qi),{category:e.DiagnosticCategory.Suggestion}))}function Da(ce){if(!!ce){e.setParent(ce,ie),e.tracing&&(ce.tracingPath=b.path);var Rr=U;if(zn(ce),ce.kind>160){var yi=ie;ie=ce;var qi=ct(ce);qi===0?_e(ce):Ee(ce,qi),ie=yi}else{var yi=ie;ce.kind===1&&(ie=ce),bo(ce),ie=yi}U=Rr}}function bo(ce){if(e.hasJSDocNodes(ce))if(e.isInJSFile(ce))for(var Rr=0,yi=ce.jsDoc;Rr>",0,Oe),En=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),zn=Fu(void 0,void 0,void 0,e.emptyArray,Pe,void 0,0,0),to=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),Co=Fu(void 0,void 0,void 0,e.emptyArray,Bt,void 0,0,0),Ko=zl(nt,Li,!0),Oo=new e.Map,no={get yieldType(){return e.Debug.fail("Not supported")},get returnType(){return e.Debug.fail("Not supported")},get nextType(){return e.Debug.fail("Not supported")}},$o=a_(Oe,Oe,Oe),Pr=a_(Oe,Oe,gr),xi=a_(ui,Oe,Tr),St={iterableCacheKey:"iterationTypesOfAsyncIterable",iteratorCacheKey:"iterationTypesOfAsyncIterator",iteratorSymbolName:"asyncIterator",getGlobalIteratorType:T3,getGlobalIterableType:S3,getGlobalIterableIteratorType:x3,getGlobalGeneratorType:E3,resolveIterationType:ag,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},pa={iterableCacheKey:"iterationTypesOfIterable",iteratorCacheKey:"iterationTypesOfIterator",iteratorSymbolName:"iterator",getGlobalIteratorType:C3,getGlobalIterableType:Ax,getGlobalIterableIteratorType:k3,getGlobalGeneratorType:A3,resolveIterationType:function(r,i){return r},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},dn,Bn=new e.Map,Qe=!1,Gr,S,Ce,qe,br,Zr,Si,Pi,Qi,Ct,sa,en,Wa,Wn,mo,So,Go,ys,Pc,Vc,Kc,Xs,pc,hs,tc,ps,Qs,js,ds,Ji,ce,Rr,yi,qi,je,Hr,pt,Pt,ga,ua,Xn,jr,fo,xs,Fo=new e.Map,ko=0,Ao=0,Ms=0,Bs=!1,xc=0,su,tl,Zc,Rf=Bu(""),al=If(0),Jo=ED({negative:!1,base10Value:"0"}),eu=[],Ws=[],pu=[],Uu=0,Ql=10,xl=[],Ya=[],du=[],vc=[],Kr=[],_i=[],Ei=[],tt=[],kt=[],bt=[],ia=[],Xt=[],Za=[],bn=[],_a=[],qa=[],rn=e.createDiagnosticCollection(),Jn=e.createDiagnosticCollection(),Mo=new e.Map(e.getEntries({string:Li,number:nt,bigint:Mt,boolean:Ii,symbol:Ki,undefined:Tr})),ho=wp(),gs,Se,hr,Or=new e.Map,ki=new e.Map,dt=new e.Map,la=new e.Map,Oa=new e.Map,On=new e.Map,No=e.createSymbolTable();No.set(mi.escapedName,mi);var jo=[[".mts",".mjs"],[".ts",".js"],[".cts",".cjs"],[".mjs",".mjs"],[".js",".js"],[".cjs",".cjs"],[".tsx",ye.jsx===1?".jsx":".js"],[".jsx",".jsx"],[".json",".json"]];return w9(),Di;function po(r){if(r){var i=e.getSourceFileOfNode(r);if(i)if(e.isJsxOpeningFragment(r)){if(i.localJsxFragmentNamespace)return i.localJsxFragmentNamespace;var t=i.pragmas.get("jsxfrag");if(t){var o=e.isArray(t)?t[0]:t;if(i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),e.visitNode(i.localJsxFragmentFactory,$n),i.localJsxFragmentFactory)return i.localJsxFragmentNamespace=e.getFirstIdentifier(i.localJsxFragmentFactory).escapedText}var s=jS(r);if(s)return i.localJsxFragmentFactory=s,i.localJsxFragmentNamespace=e.getFirstIdentifier(s).escapedText}else{var u=Gn(i);if(u)return i.localJsxNamespace=u}}return gs||(gs="React",ye.jsxFactory?(Se=e.parseIsolatedEntityName(ye.jsxFactory,Ae),e.visitNode(Se,$n),Se&&(gs=e.getFirstIdentifier(Se).escapedText)):ye.reactNamespace&&(gs=e.escapeLeadingUnderscores(ye.reactNamespace))),Se||(Se=e.factory.createQualifiedName(e.factory.createIdentifier(e.unescapeLeadingUnderscores(gs)),"createElement")),gs}function Gn(r){if(r.localJsxNamespace)return r.localJsxNamespace;var i=r.pragmas.get("jsx");if(i){var t=e.isArray(i)?i[0]:i;if(r.localJsxFactory=e.parseIsolatedEntityName(t.arguments.factory,Ae),e.visitNode(r.localJsxFactory,$n),r.localJsxFactory)return r.localJsxNamespace=e.getFirstIdentifier(r.localJsxFactory).escapedText}}function $n(r){return e.setTextRangePosEnd(r,-1,-1),e.visitEachChild(r,$n,e.nullTransformationContext)}function Ho(r,i){return X6(r,i),wr}function Zo(r,i,t,o,s,u){var h=r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u),z=rn.lookup(h);return z||(rn.add(h),h)}function Es(r,i,t,o,s,u,h){var z=Xr(i,t,o,s,u,h);return z.skippedOn=r,z}function yc(r,i,t,o,s,u){return r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u)}function Xr(r,i,t,o,s,u){var h=yc(r,i,t,o,s,u);return rn.add(h),h}function Ls(r,i){r?rn.add(i):Jn.add(Ke(Ke({},i),{category:e.DiagnosticCategory.Suggestion}))}function Ic(r,i,t,o,s,u,h){if(i.pos<0||i.end<0){if(!r)return;var z=e.getSourceFileOfNode(i);Ls(r,"message"in t?e.createFileDiagnostic(z,0,0,t,o,s,u,h):e.createDiagnosticForFileFromMessageChain(z,t));return}Ls(r,"message"in t?e.createDiagnosticForNode(i,t,o,s,u,h):e.createDiagnosticForNodeFromMessageChain(i,t))}function zu(r,i,t,o,s,u,h){var z=Xr(r,t,o,s,u,h);if(i){var me=e.createDiagnosticForNode(r,e.Diagnostics.Did_you_forget_to_use_await);e.addRelatedInfo(z,me)}return z}function vf(r,i){var t=Array.isArray(r)?e.forEach(r,e.getJSDocDeprecatedTag):e.getJSDocDeprecatedTag(r);return t&&e.addRelatedInfo(i,e.createDiagnosticForNode(t,e.Diagnostics.The_declaration_was_marked_as_deprecated_here)),Jn.add(i),i}function P_(r){return!!(p0(r)&268435456)}function El(r,i,t){var o=e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,t);return vf(i,o)}function vp(r,i,t,o){var s=t?e.createDiagnosticForNode(r,e.Diagnostics.The_signature_0_of_1_is_deprecated,o,t):e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,o);return vf(i,s)}function oo(r,i,t){ge++;var o=new We(r|33554432,i);return o.checkFlags=t||0,o}function I_(r){var i=0;return r&2&&(i|=111551),r&1&&(i|=111550),r&4&&(i|=0),r&8&&(i|=900095),r&16&&(i|=110991),r&32&&(i|=899503),r&64&&(i|=788872),r&256&&(i|=899327),r&128&&(i|=899967),r&512&&(i|=110735),r&8192&&(i|=103359),r&32768&&(i|=46015),r&65536&&(i|=78783),r&262144&&(i|=526824),r&524288&&(i|=788968),r&2097152&&(i|=2097152),i}function yp(r,i){i.mergeId||(i.mergeId=E,E++),xl[i.mergeId]=r}function Yl(r){var i=oo(r.flags,r.escapedName);return i.declarations=r.declarations?r.declarations.slice():[],i.parent=r.parent,r.valueDeclaration&&(i.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(i.constEnumOnlyModule=!0),r.members&&(i.members=new e.Map(r.members)),r.exports&&(i.exports=new e.Map(r.exports)),yp(i,r),i}function Bf(r,i,t){if(t===void 0&&(t=!1),!(r.flags&I_(i.flags))||(i.flags|r.flags)&67108864){if(i===r)return r;if(!(r.flags&33554432)){var o=os(r);if(o===xe)return i;r=Yl(o)}i.flags&512&&r.flags&512&&r.constEnumOnlyModule&&!i.constEnumOnlyModule&&(r.constEnumOnlyModule=!1),r.flags|=i.flags,i.valueDeclaration&&e.setValueDeclaration(r,i.valueDeclaration),e.addRange(r.declarations,i.declarations),i.members&&(r.members||(r.members=e.createSymbolTable()),gu(r.members,i.members,t)),i.exports&&(r.exports||(r.exports=e.createSymbolTable()),gu(r.exports,i.exports,t)),t||yp(r,i)}else if(r.flags&1024)r!==pe&&Xr(i.declarations&&e.getNameOfDeclaration(i.declarations[0]),e.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,tn(r));else{var s=!!(r.flags&384||i.flags&384),u=!!(r.flags&2||i.flags&2),h=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,z=i.declarations&&e.getSourceFileOfNode(i.declarations[0]),me=r.declarations&&e.getSourceFileOfNode(r.declarations[0]),Me=e.isPlainJsFile(z,ye.checkJs),$e=e.isPlainJsFile(me,ye.checkJs),tr=tn(i);if(z&&me&&dn&&!s&&z!==me){var pr=e.comparePaths(z.path,me.path)===-1?z:me,Dr=pr===z?me:z,Qr=e.getOrUpdate(dn,"".concat(pr.path,"|").concat(Dr.path),function(){return{firstFile:pr,secondFile:Dr,conflictingSymbols:new e.Map}}),li=e.getOrUpdate(Qr.conflictingSymbols,tr,function(){return{isBlockScoped:u,firstFileLocations:[],secondFileLocations:[]}});Me||Ti(li.firstFileLocations,i),$e||Ti(li.secondFileLocations,r)}else Me||Cl(i,h,tr,r),$e||Cl(r,h,tr,i)}return r;function Ti(Ci,$i){if($i.declarations)for(var Zi=0,qt=$i.declarations;Zi=5||e.some(u.relatedInformation,function(Qr){return e.compareDiagnostics(Qr,Dr)===0||e.compareDiagnostics(Qr,pr)===0}))return"continue";e.addRelatedInfo(u,e.length(u.relatedInformation)?Dr:pr)},z=0,me=o||e.emptyArray;z1);return}if(e.isGlobalScopeAugmentation(s))gu(ii,s.symbol.exports);else{var u=r.parent.parent.flags&16777216?void 0:e.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found,h=Pl(r,r,u,!0);if(!h)return;if(h=Us(h),h.flags&1920)if(e.some(S,function(Qr){return h===Qr.symbol})){var z=Bf(s.symbol,h,!0);Ce||(Ce=new e.Map),Ce.set(r.text,z)}else{if(((t=h.exports)===null||t===void 0?void 0:t.get("__export"))&&((o=s.symbol.exports)===null||o===void 0?void 0:o.size))for(var me=Jv(h,"resolvedExports"),Me=0,$e=e.arrayFrom(s.symbol.exports.entries());Me<$e.length;Me++){var tr=$e[Me],pr=tr[0],Dr=tr[1];me.has(pr)&&!h.exports.has(pr)&&Bf(me.get(pr),Dr)}Bf(h,s.symbol)}else Xr(r,e.Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity,r.text)}}function sd(r,i,t){i.forEach(function(s,u){var h=r.get(u);h?e.forEach(h.declarations,o(e.unescapeLeadingUnderscores(u),t)):r.set(u,s)});function o(s,u){return function(h){return rn.add(e.createDiagnosticForNode(h,u,s))}}}function Aa(r){if(r.flags&33554432)return r;var i=y(r);return Ya[i]||(Ya[i]=new Q)}function va(r){var i=A(r);return du[i]||(du[i]=new $)}function Cu(r){return r.kind===305&&!e.isExternalOrCommonJsModule(r)}function qs(r,i,t){if(t){var o=so(r.get(i));if(o){if(e.Debug.assert((e.getCheckFlags(o)&1)===0,"Should never get an instantiated symbol here."),o.flags&t)return o;if(o.flags&2097152){var s=Ps(o);if(s===xe||s.flags&t)return o}}}}function cd(r,i){var t=r.parent,o=r.parent.parent,s=qs(t.locals,i,111551),u=qs(Nf(o.symbol),i,111551);return s&&u?[s,u]:e.Debug.fail("There should exist two symbols, one as property declaration and one as parameter declaration")}function ns(r,i){var t=e.getSourceFileOfNode(r),o=e.getSourceFileOfNode(i),s=e.getEnclosingBlockScopeContainer(r);if(t!==o){if(er&&(t.externalModuleIndicator||o.externalModuleIndicator)||!e.outFile(ye)||_m(i)||r.flags&16777216||Me(i,r))return!0;var u=l.getSourceFiles();return u.indexOf(t)<=u.indexOf(o)}if(r.pos<=i.pos&&!(e.isPropertyDeclaration(r)&&e.isThisProperty(i.parent)&&!r.initializer&&!r.exclamationToken)){if(r.kind===203){var h=e.getAncestor(i,203);return h?e.findAncestor(h,e.isBindingElement)!==e.findAncestor(r,e.isBindingElement)||r.postr.end)return!1;var Qr=e.findAncestor(pr,function(li){if(li===tr)return"quit";switch(li.kind){case 214:return!0;case 167:return Dr&&(e.isPropertyDeclaration(tr)&&li.parent===tr.parent||e.isParameterPropertyDeclaration(tr,tr.parent)&&li.parent===tr.parent.parent)?"quit":!0;case 235:switch(li.parent.kind){case 172:case 169:case 173:return!0;default:return!1}default:return!1}});return Qr===void 0}}function nl(r,i,t){var o=e.getEmitScriptTarget(ye),s=i;if(e.isParameter(t)&&s.body&&r.valueDeclaration&&r.valueDeclaration.pos>=s.body.pos&&r.valueDeclaration.end<=s.body.end&&o>=2){var u=va(s);return u.declarationRequiresScopeChange===void 0&&(u.declarationRequiresScopeChange=e.forEach(s.parameters,h)||!1),!u.declarationRequiresScopeChange}return!1;function h(me){return z(me.name)||!!me.initializer&&z(me.initializer)}function z(me){switch(me.kind){case 214:case 213:case 256:case 171:return!1;case 169:case 172:case 173:case 296:return z(me.name);case 167:return e.hasStaticModifier(me)?o<99||!ir:z(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,z)||!1}}}function hc(r){return e.isAssertionExpression(r)&&e.isConstTypeReference(r.type)||e.isJSDocTypeTag(r)&&e.isConstTypeReference(r.typeExpression)}function es(r,i,t,o,s,u,h,z){return h===void 0&&(h=!1),z===void 0&&(z=!0),u_(r,i,t,o,s,u,h,z,qs)}function u_(r,i,t,o,s,u,h,z,me){var Me,$e,tr,pr=r,Dr,Qr,li,Ti,Ci,$i=!1,Zi=r,qt,Nt=!1;e:for(;r;){if(i==="const"&&hc(r))return;if(r.locals&&!Cu(r)&&(Dr=me(r.locals,i,t))){var Ra=!0;if(e.isFunctionLike(r)&&Qr&&Qr!==r.body?(t&Dr.flags&788968&&Qr.kind!==320&&(Ra=Dr.flags&262144?Qr===r.type||Qr.kind===164||Qr.kind===340||Qr.kind===341||Qr.kind===163:!1),t&Dr.flags&3&&(nl(Dr,r,Qr)?Ra=!1:Dr.flags&1&&(Ra=Qr.kind===164||Qr===r.type&&!!e.findAncestor(Dr.valueDeclaration,e.isParameter)))):r.kind===189&&(Ra=Qr===r.trueType),Ra)break e;Dr=void 0}switch($i=$i||w_(r,Qr),r.kind){case 305:if(!e.isExternalOrCommonJsModule(r))break;Nt=!0;case 261:var ca=((Me=Et(r))===null||Me===void 0?void 0:Me.exports)||we;if(r.kind===305||e.isModuleDeclaration(r)&&r.flags&16777216&&!e.isGlobalScopeAugmentation(r)){if(Dr=ca.get("default")){var Sn=e.getLocalSymbolForExportDefault(Dr);if(Sn&&Dr.flags&t&&Sn.escapedName===i)break e;Dr=void 0}var ja=ca.get(i);if(ja&&ja.flags===2097152&&(e.getDeclarationOfKind(ja,275)||e.getDeclarationOfKind(ja,274)))break}if(i!=="default"&&(Dr=me(ca,i,t&2623475)))if(e.isSourceFile(r)&&r.commonJsModuleIndicator&&!(!(($e=Dr.declarations)===null||$e===void 0)&&$e.some(e.isJSDocTypeAlias)))Dr=void 0;else break e;break;case 260:if(Dr=me(((tr=Et(r))===null||tr===void 0?void 0:tr.exports)||we,i,t&8))break e;break;case 167:if(!e.isStatic(r)){var Fn=Tf(r.parent);Fn&&Fn.locals&&me(Fn.locals,i,t&111551)&&(Ti=r)}break;case 257:case 226:case 258:if(Dr=me(Et(r).members||we,i,t&788968)){if(!ld(Dr,r)){Dr=void 0;break}if(Qr&&e.isStatic(Qr)){Xr(Zi,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);return}break e}if(r.kind===226&&t&32){var wn=r.name;if(wn&&i===wn.escapedText){Dr=r.symbol;break e}}break;case 228:if(Qr===r.expression&&r.parent.token===94){var Tn=r.parent.parent;if(e.isClassLike(Tn)&&(Dr=me(Et(Tn).members,i,t&788968))){o&&Xr(Zi,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters);return}}break;case 162:if(qt=r.parent.parent,(e.isClassLike(qt)||qt.kind===258)&&(Dr=me(Et(qt).members,i,t&788968))){Xr(Zi,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);return}break;case 214:if(e.getEmitScriptTarget(ye)>=2)break;case 169:case 171:case 172:case 173:case 256:if(t&3&&i==="arguments"){Dr=or;break e}break;case 213:if(t&3&&i==="arguments"){Dr=or;break e}if(t&16){var Eo=r.name;if(Eo&&i===Eo.escapedText){Dr=r.symbol;break e}}break;case 165:r.parent&&r.parent.kind===164&&(r=r.parent),r.parent&&(e.isClassElement(r.parent)||r.parent.kind===257)&&(r=r.parent);break;case 345:case 338:case 339:var lt=e.getJSDocRoot(r);lt&&(r=lt.parent);break;case 164:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&(Ci||(Ci=r));break;case 203:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&e.isParameterDeclaration(r)&&!Ci&&(Ci=r);break;case 190:if(t&262144){var it=r.typeParameter.name;if(it&&i===it.escapedText){Dr=r.typeParameter.symbol;break e}}break}ud(r)&&(li=r),Qr=r,r=e.isJSDocTemplateTag(r)?e.getEffectiveContainerForJSDocTemplateTag(r)||r.parent:(e.isJSDocParameterTag(r)||e.isJSDocReturnTag(r))&&e.getHostSignatureFromJSDoc(r)||r.parent}if(u&&Dr&&(!li||Dr!==li.symbol)&&(Dr.isReferenced|=t),!Dr){if(Qr&&(e.Debug.assert(Qr.kind===305),Qr.commonJsModuleIndicator&&i==="exports"&&t&Qr.symbol.flags))return Qr.symbol;h||(Dr=me(ii,i,t))}if(!Dr&&pr&&e.isInJSFile(pr)&&pr.parent&&e.isRequireCall(pr.parent,!1))return qr;if(!Dr){o&&fe(function(){if(!Zi||!fd(Zi,i,s)&&!bp(Zi)&&!Tp(Zi,i,t)&&!O_(Zi,i)&&!F_(Zi,i,t)&&!M_(Zi,i,t)&&!_d(Zi,i,t)){var Ia=void 0;if(z&&UuCi.pos&&cn.parent.locals&&me(cn.parent.locals,Ka.escapedName,t)===Ka&&Xr(Zi,e.Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString(Ci.name),e.declarationNameToString(Zi))}if(Dr&&Zi&&t&111551&&Dr.flags&2097152&&!(Dr.flags&111551)&&!e.isValidTypeOnlyAliasUseSite(Zi)){var jn=vu(Dr);if(jn){var oa=jn.kind===275?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,Mn=e.unescapeLeadingUnderscores(i);Jf(Xr(Zi,oa,Mn),jn,Mn)}}}),Dr}function Jf(r,i,t){return i?e.addRelatedInfo(r,e.createDiagnosticForNode(i,i.kind===275?e.Diagnostics._0_was_exported_here:e.Diagnostics._0_was_imported_here,t)):r}function w_(r,i){return r.kind!==214&&r.kind!==213?e.isTypeQueryNode(r)||(e.isFunctionLikeDeclaration(r)||r.kind===167&&!e.isStatic(r))&&(!i||i!==r.name):i&&i===r.name?!1:r.asteriskToken||e.hasSyntacticModifier(r,256)?!0:!e.getImmediatelyInvokedFunctionExpression(r)}function ud(r){switch(r.kind){case 256:case 257:case 258:case 260:case 259:case 261:return!0;default:return!1}}function ku(r){return e.isString(r)?e.unescapeLeadingUnderscores(r):e.declarationNameToString(r)}function ld(r,i){if(r.declarations)for(var t=0,o=r.declarations;t=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop",Me=o.exports.get("export="),$e=Me.valueDeclaration,tr=Xr(r.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,tn(o),me);$e&&e.addRelatedInfo(tr,e.createDiagnosticForNode($e,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,me))}else f_(o,r);else if(z||h){var pr=Us(o,i)||os(o,i);return Gc(r,o,pr,!1),pr}return Gc(r,s,void 0,!1),s}}function f_(r,i){var t,o,s;if(!((t=r.exports)===null||t===void 0)&&t.has(i.symbol.escapedName))Xr(i.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,tn(r),tn(i.symbol));else{var u=Xr(i.name,e.Diagnostics.Module_0_has_no_default_export,tn(r)),h=(o=r.exports)===null||o===void 0?void 0:o.get("__export");if(h){var z=(s=h.declarations)===null||s===void 0?void 0:s.find(function(me){var Me,$e;return!!(e.isExportDeclaration(me)&&me.moduleSpecifier&&(($e=(Me=ac(me,me.moduleSpecifier))===null||Me===void 0?void 0:Me.exports)===null||$e===void 0?void 0:$e.has("default")))});z&&e.addRelatedInfo(u,e.createDiagnosticForNode(z,e.Diagnostics.export_Asterisk_does_not_re_export_a_default))}}}function md(r,i){var t=r.parent.parent.moduleSpecifier,o=ac(r,t),s=Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function ks(r,i){var t=r.parent.moduleSpecifier,o=t&&ac(r,t),s=t&&Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function Wu(r,i){if(r===xe&&i===xe)return xe;if(r.flags&790504)return r;var t=oo(r.flags|i.flags,r.escapedName);return t.declarations=e.deduplicate(e.concatenate(r.declarations,i.declarations),e.equateValues),t.parent=r.parent||i.parent,r.valueDeclaration&&(t.valueDeclaration=r.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),r.exports&&(t.exports=new e.Map(r.exports)),t}function Zl(r,i,t,o){if(r.flags&1536){var s=dc(r).get(i.escapedText),u=os(s,o);return Gc(t,s,u,!1),u}}function R_(r,i){if(r.flags&3){var t=r.valueDeclaration.type;if(t)return os(bi(Va(t),i))}}function kl(r,i,t){var o,s;t===void 0&&(t=!1);var u=e.getExternalModuleRequireArgument(r)||r.moduleSpecifier,h=ac(r,u),z=!e.isPropertyAccessExpression(i)&&i.propertyName||i.name;if(!!e.isIdentifier(z)){var me=z.escapedText==="default"&&!!(ye.allowSyntheticDefaultImports||e.getESModuleInterop(ye)),Me=Wf(h,u,!1,me);if(Me&&z.escapedText){if(e.isShorthandAmbientModuleSymbol(h))return h;var $e=void 0;h&&h.exports&&h.exports.get("export=")?$e=bi(Jt(Me),z.escapedText,!0):$e=R_(Me,z.escapedText),$e=os($e,t);var tr=Zl(Me,z,i,t);if(tr===void 0&&z.escapedText==="default"){var pr=(o=h.declarations)===null||o===void 0?void 0:o.find(e.isSourceFile);(Uf(u)||L_(pr,h,t,u))&&(tr=Us(h,t)||os(h,t))}var Dr=tr&&$e&&tr!==$e?Wu($e,tr):tr||$e;if(!Dr){var Qr=cl(h,r),li=e.declarationNameToString(z),Ti=v0(z,Me);if(Ti!==void 0){var Ci=tn(Ti),$i=Xr(z,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,Qr,li,Ci);Ti.valueDeclaration&&e.addRelatedInfo($i,e.createDiagnosticForNode(Ti.valueDeclaration,e.Diagnostics._0_is_declared_here,Ci))}else!((s=h.exports)===null||s===void 0)&&s.has("default")?Xr(z,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,Qr,li):__(r,z,li,h,Qr)}return Dr}}}function __(r,i,t,o,s){var u,h,z=(h=(u=o.valueDeclaration)===null||u===void 0?void 0:u.locals)===null||h===void 0?void 0:h.get(i.escapedText),me=o.exports;if(z){var Me=me==null?void 0:me.get("export=");if(Me)_l(Me,z)?zd(r,i,t,s):Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t);else{var $e=me?e.find(Y_(me),function(pr){return!!_l(pr,z)}):void 0,tr=$e?Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2,s,t,tn($e)):Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported,s,t);z.declarations&&e.addRelatedInfo.apply(void 0,Ve([tr],e.map(z.declarations,function(pr,Dr){return e.createDiagnosticForNode(pr,Dr===0?e.Diagnostics._0_is_declared_here:e.Diagnostics.and_here,t)}),!1))}}else Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t)}function zd(r,i,t,o){if(er>=e.ModuleKind.ES2015){var s=e.getESModuleInterop(ye)?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;Xr(i,s,t)}else if(e.isInJSFile(r)){var s=e.getESModuleInterop(ye)?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;Xr(i,s,t)}else{var s=e.getESModuleInterop(ye)?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;Xr(i,s,t,t,o)}}function Al(r,i){var t=e.isBindingElement(r)?e.getRootDeclaration(r):r.parent.parent.parent,o=wc(t),s=kl(t,o||r,i),u=r.propertyName||r.name;return o&&s&&e.isIdentifier(u)?os(bi(Jt(s),u.escapedText),i):(Gc(r,void 0,s,!1),s)}function wc(r){if(e.isVariableDeclaration(r)&&r.initializer&&e.isPropertyAccessExpression(r.initializer))return r.initializer}function qu(r,i){var t=Us(r.parent.symbol,i);return Gc(r,void 0,t,!1),t}function Vu(r,i,t){var o=r.parent.parent.moduleSpecifier?kl(r.parent.parent,r,t):Ds(r.propertyName||r.name,i,!1,t);return Gc(r,void 0,o,!1),o}function ef(r,i){var t=e.isExportAssignment(r)?r.expression:r.right,o=sl(t,i);return Gc(r,void 0,o,!1),o}function sl(r,i){if(e.isClassExpression(r))return Os(r).symbol;if(!(!e.isEntityName(r)&&!e.isEntityNameExpression(r))){var t=Ds(r,901119,!0,i);return t||(Os(r),va(r).resolvedSymbol)}}function p_(r,i){var t=r.initializer;return sl(t,i)}function Df(r,i){if(!!(e.isBinaryExpression(r.parent)&&r.parent.left===r&&r.parent.operatorToken.kind===63))return sl(r.parent.right,i)}function Ec(r,i){switch(i===void 0&&(i=!1),r.kind){case 265:case 254:return dd(r,i);case 267:return l_(r,i);case 268:return md(r,i);case 274:return ks(r,i);case 270:case 203:return Al(r,i);case 275:return Vu(r,901119,i);case 271:case 221:return ef(r,i);case 264:return qu(r,i);case 297:return Ds(r.name,901119,!0,i);case 296:return p_(r,i);case 207:case 206:return Df(r,i);default:return e.Debug.fail()}}function Zn(r,i){return i===void 0&&(i=901119),r?(r.flags&(2097152|i))===2097152||!!(r.flags&2097152&&r.flags&67108864):!1}function os(r,i){return!i&&Zn(r)?Ps(r):r}function Ps(r){e.Debug.assert((r.flags&2097152)!==0,"Should only get Alias here.");var i=Aa(r);if(i.aliasTarget)i.aliasTarget===vr&&(i.aliasTarget=xe);else{i.aliasTarget=vr;var t=ru(r);if(!t)return e.Debug.fail();var o=Ec(t);i.aliasTarget===vr?i.aliasTarget=o||xe:Xr(t,e.Diagnostics.Circular_definition_of_import_alias_0,tn(r))}return i.aliasTarget}function d_(r){var i=Aa(r);if(i.aliasTarget!==vr)return Ps(r)}function Gc(r,i,t,o){if(!r||e.isPropertyAccessExpression(r))return!1;var s=Et(r);if(e.isTypeOnlyImportOrExportDeclaration(r)){var u=Aa(s);return u.typeOnlyDeclaration=r,!0}var h=Aa(s);return B_(h,i,o)||B_(h,t,o)}function B_(r,i,t){var o,s,u;if(i&&(r.typeOnlyDeclaration===void 0||t&&r.typeOnlyDeclaration===!1)){var h=(s=(o=i.exports)===null||o===void 0?void 0:o.get("export="))!==null&&s!==void 0?s:i,z=h.declarations&&e.find(h.declarations,e.isTypeOnlyImportOrExportDeclaration);r.typeOnlyDeclaration=(u=z!=null?z:Aa(h).typeOnlyDeclaration)!==null&&u!==void 0?u:!1}return!!r.typeOnlyDeclaration}function vu(r){if(!!(r.flags&2097152)){var i=Aa(r);return i.typeOnlyDeclaration||void 0}}function Gt(r){var i=Et(r),t=Ps(i);if(t){var o=t===xe||t.flags&111551&&!Av(t)&&!vu(i);o&&As(i)}}function As(r){var i=Aa(r);if(!i.referenced){i.referenced=!0;var t=ru(r);if(!t)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(t)){var o=os(r);(o===xe||o.flags&111551)&&Os(t.moduleReference)}}}function vn(r){var i=Aa(r);i.constEnumReferenced||(i.constEnumReferenced=!0)}function Nl(r,i){return r.kind===79&&e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),r.kind===79||r.parent.kind===161?Ds(r,1920,!1,i):(e.Debug.assert(r.parent.kind===265),Ds(r,901119,!1,i))}function cl(r,i){return r.parent?cl(r.parent,i)+"."+tn(r):tn(r,i,void 0,20)}function rf(r){for(;e.isQualifiedName(r.parent);)r=r.parent;return r}function Ut(r){var i=e.getFirstIdentifier(r),t=es(i,i.escapedText,111551,void 0,i,!0);if(!!t){for(;e.isQualifiedName(i.parent);){var o=Jt(t);if(t=bi(o,i.parent.right.escapedText),!t)return;i=i.parent}return t}}function Ds(r,i,t,o,s){if(!e.nodeIsMissing(r)){var u=1920|(e.isInJSFile(r)?i&111551:0),h;if(r.kind===79){var z=i===u||e.nodeIsSynthesized(r)?e.Diagnostics.Cannot_find_namespace_0:HE(e.getFirstIdentifier(r)),me=e.isInJSFile(r)&&!e.nodeIsSynthesized(r)?bf(r,i):void 0;if(h=so(es(s||r,r.escapedText,i,t||me?void 0:z,r,!0,!1)),!h)return so(me)}else if(r.kind===161||r.kind===206){var Me=r.kind===161?r.left:r.expression,$e=r.kind===161?r.right:r.name,tr=Ds(Me,u,t,!1,s);if(!tr||e.nodeIsMissing($e))return;if(tr===xe)return tr;if(tr.valueDeclaration&&e.isInJSFile(tr.valueDeclaration)&&e.isVariableDeclaration(tr.valueDeclaration)&&tr.valueDeclaration.initializer&&xk(tr.valueDeclaration.initializer)){var pr=tr.valueDeclaration.initializer.arguments[0],Dr=ac(pr,pr);if(Dr){var Qr=Us(Dr);Qr&&(tr=Qr)}}if(h=so(qs(dc(tr),$e.escapedText,i)),!h){if(!t){var li=cl(tr),Ti=e.declarationNameToString($e),Ci=v0($e,tr);if(Ci){Xr($e,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,li,Ti,tn(Ci));return}var $i=e.isQualifiedName(r)&&rf(r),Zi=qe&&i&788968&&$i&&!e.isTypeOfExpression($i.parent)&&Ut($i);if(Zi){Xr($i,e.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,e.entityNameToString($i));return}if(i&1920&&e.isQualifiedName(r.parent)){var qt=so(qs(dc(tr),$e.escapedText,788968));if(qt){Xr(r.parent.right,e.Diagnostics.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,tn(qt),e.unescapeLeadingUnderscores(r.parent.right.escapedText));return}}Xr($e,e.Diagnostics.Namespace_0_has_no_exported_member_1,li,Ti)}return}}else throw e.Debug.assertNever(r,"Unknown entity name kind.");return e.Debug.assert((e.getCheckFlags(h)&1)===0,"Should never get an instantiated symbol here."),!e.nodeIsSynthesized(r)&&e.isEntityName(r)&&(h.flags&2097152||r.parent.kind===271)&&Gc(e.getAliasDeclarationFromName(r),h,void 0,!0),h.flags&i||o?h:Ps(h)}}function bf(r,i){if(Dh(r.parent)){var t=bs(r.parent);if(t)return es(t,r.escapedText,i,void 0,r,!0)}}function bs(r){var i=e.findAncestor(r,function(u){return e.isJSDocNode(u)||u.flags&8388608?e.isJSDocTypeAlias(u):"quit"});if(!i){var t=e.getJSDocHost(r);if(t&&e.isExpressionStatement(t)&&e.isPrototypePropertyAssignment(t.expression)){var o=Et(t.expression.left);if(o)return Dc(o)}if(t&&e.isFunctionExpression(t)&&e.isPrototypePropertyAssignment(t.parent)&&e.isExpressionStatement(t.parent.parent)){var o=Et(t.parent.left);if(o)return Dc(o)}if(t&&(e.isObjectLiteralMethod(t)||e.isPropertyAssignment(t))&&e.isBinaryExpression(t.parent.parent)&&e.getAssignmentDeclarationKind(t.parent.parent)===6){var o=Et(t.parent.parent.left);if(o)return Dc(o)}var s=e.getEffectiveJSDocHost(r);if(s&&e.isFunctionLike(s)){var o=Et(s);return o&&o.valueDeclaration}}}function Dc(r){var i=r.parent.valueDeclaration;if(!!i){var t=e.isAssignmentDeclaration(i)?e.getAssignedExpandoInitializer(i):e.hasOnlyExpressionInitializer(i)?e.getDeclaredExpandoInitializer(i):void 0;return t||i}}function Cc(r){var i=r.valueDeclaration;if(!(!i||!e.isInJSFile(i)||r.flags&524288||e.getExpandoInitializer(i,!1))){var t=e.isVariableDeclaration(i)?e.getDeclaredExpandoInitializer(i):e.getAssignedExpandoInitializer(i);if(t){var o=Et(t);if(o)return iS(o,r)}}}function ac(r,i,t){var o=e.getEmitModuleResolutionKind(ye)===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 Pl(r,i,t?void 0:s)}function Pl(r,i,t,o){return o===void 0&&(o=!1),e.isStringLiteralLike(i)?Il(r,i.text,t,i,o):void 0}function Il(r,i,t,o,s){var u,h,z,me,Me,$e,tr,pr;if(s===void 0&&(s=!1),e.startsWith(i,"@types/")){var Dr=e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,Qr=e.removePrefix(i,"@types/");Xr(o,Dr,Qr,i)}var li=b_(i,!0);if(li)return li;var Ti=e.getSourceFileOfNode(r),Ci=e.isStringLiteralLike(r)?r:((u=e.findAncestor(r,e.isImportCall))===null||u===void 0?void 0:u.arguments[0])||((h=e.findAncestor(r,e.isImportDeclaration))===null||h===void 0?void 0:h.moduleSpecifier)||((z=e.findAncestor(r,e.isExternalModuleImportEqualsDeclaration))===null||z===void 0?void 0:z.moduleReference.expression)||((me=e.findAncestor(r,e.isExportDeclaration))===null||me===void 0?void 0:me.moduleSpecifier)||((Me=e.isModuleDeclaration(r)?r:r.parent&&e.isModuleDeclaration(r.parent)&&r.parent.name===r?r.parent:void 0)===null||Me===void 0?void 0:Me.name)||(($e=e.isLiteralImportTypeNode(r)?r:void 0)===null||$e===void 0?void 0:$e.argument.literal),$i=Ci&&e.isStringLiteralLike(Ci)?e.getModeForUsageLocation(Ti,Ci):Ti.impliedNodeFormat,Zi=e.getResolvedModule(Ti,i,$i),qt=Zi&&e.getResolutionDiagnostic(ye,Zi),Nt=Zi&&(!qt||qt===e.Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set)&&l.getSourceFile(Zi.resolvedFileName);if(Nt){if(qt&&Xr(o,qt,i,Zi.resolvedFileName),Nt.symbol){if(Zi.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&zf(!1,o,Zi,i),e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Ra=Ti.impliedNodeFormat===e.ModuleKind.CommonJS&&!e.findAncestor(r,e.isImportCall)||!!e.findAncestor(r,e.isImportEqualsDeclaration),ca=e.findAncestor(r,function(cn){return e.isImportTypeNode(cn)||e.isExportDeclaration(cn)||e.isImportDeclaration(cn)}),Sn=ca&&e.isImportTypeNode(ca)?(tr=ca.assertions)===null||tr===void 0?void 0:tr.assertClause:ca==null?void 0:ca.assertClause;Ra&&Nt.impliedNodeFormat===e.ModuleKind.ESNext&&!e.getResolutionModeOverrideForClause(Sn)&&Xr(o,e.Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead,i)}return so(Nt.symbol)}t&&Xr(o,e.Diagnostics.File_0_is_not_a_module,Nt.fileName);return}if(S){var ja=e.findBestPatternMatch(S,function(cn){return cn.pattern},i);if(ja){var Fn=Ce&&Ce.get(i);return so(Fn||ja.symbol)}}if(Zi&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&qt===void 0||qt===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type){if(s){var Dr=e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;Xr(o,Dr,i,Zi.resolvedFileName)}else zf(n&&!!t,o,Zi,i);return}if(t){if(Zi){var wn=l.getProjectReferenceRedirect(Zi.resolvedFileName);if(wn){Xr(o,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,wn,Zi.resolvedFileName);return}}if(qt)Xr(o,qt,i,Zi.resolvedFileName);else{var Tn=e.tryExtractTSExtension(i),Eo=e.pathIsRelative(i)&&!e.hasExtension(i),lt=e.getEmitModuleResolutionKind(ye),it=lt===e.ModuleResolutionKind.Node16||lt===e.ModuleResolutionKind.NodeNext;if(Tn){var Dr=e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,Yt=e.removeExtension(i,Tn),Ia=Yt;er>=e.ModuleKind.ES2015&&(Ia+=Tn===".mts"?".mjs":Tn===".cts"?".cjs":".js"),Xr(o,Dr,Tn,Ia)}else if(!ye.resolveJsonModule&&e.fileExtensionIs(i,".json")&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&e.hasJsonModuleEmitEnabled(ye))Xr(o,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,i);else if($i===e.ModuleKind.ESNext&&it&&Eo){var Qt=e.getNormalizedAbsolutePath(i,e.getDirectoryPath(Ti.path)),Ka=(pr=jo.find(function(cn){var jn=cn[0],oa=cn[1];return l.fileExists(Qt+jn)}))===null||pr===void 0?void 0:pr[1];Ka?Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0,i+Ka):Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path)}else Xr(o,t,i)}}}function zf(r,i,t,o){var s=t.packageId,u=t.resolvedFileName,h=!e.isExternalModuleNameRelative(o)&&s?ul(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)):Nu(s.name)?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1,s.name,o):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;Ic(r,i,e.chainDiagnosticMessages(h,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,o,u))}function ul(r){return d().has(e.getTypesPackageName(r))}function Nu(r){return!!d().get(r)}function Us(r,i){if(r!=null&&r.exports){var t=os(r.exports.get("export="),i),o=Ap(so(t),so(r));return so(o)||r}}function Ap(r,i){if(!r||r===xe||r===i||i.exports.size===1||r.flags&2097152)return r;var t=Aa(r);if(t.cjsExportMerged)return t.cjsExportMerged;var o=r.flags&33554432?r:Yl(r);return o.flags=o.flags|512,o.exports===void 0&&(o.exports=e.createSymbolTable()),i.exports.forEach(function(s,u){u!=="export="&&o.exports.set(u,o.exports.has(u)?Bf(o.exports.get(u),s):s)}),Aa(o).cjsExportMerged=o,t.cjsExportMerged=o}function Wf(r,i,t,o){var s,u=Us(r,t);if(!t&&u){if(!o&&!(u.flags&1539)&&!e.getDeclarationOfKind(u,305)){var h=er>=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop";return Xr(i,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,h),u}var z=i.parent;if(e.isImportDeclaration(z)&&e.getNamespaceDeclarationNode(z)||e.isImportCall(z)){var me=e.isImportCall(z)?z.arguments[0]:z.moduleSpecifier,Me=Jt(u),$e=Sk(Me,u,r,me);if($e)return Sf(u,$e,z);var tr=(s=r==null?void 0:r.declarations)===null||s===void 0?void 0:s.find(e.isSourceFile),pr=tr&&$l(hf(me),tr.impliedNodeFormat);if(e.getESModuleInterop(ye)||pr){var Dr=Ft(Me,0);if((!Dr||!Dr.length)&&(Dr=Ft(Me,1)),Dr&&Dr.length||bi(Me,"default",!0)||pr){var Qr=Tk(Me,u,r,me);return Sf(u,Qr,z)}}}}return u}function Sf(r,i,t){var o=oo(r.flags,r.escapedName);o.declarations=r.declarations?r.declarations.slice():[],o.parent=r.parent,o.target=r,o.originatingImport=t,r.valueDeclaration&&(o.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(o.constEnumOnlyModule=!0),r.members&&(o.members=new e.Map(r.members)),r.exports&&(o.exports=new e.Map(r.exports));var s=Ru(i);return o.type=rs(o,s.members,e.emptyArray,e.emptyArray,s.indexInfos),o}function ll(r){return r.exports.get("export=")!==void 0}function J_(r){return Y_(Pu(r))}function j_(r){var i=J_(r),t=Us(r);if(t!==r){var o=Jt(t);qf(o)&&e.addRange(i,uo(o))}return i}function U_(r,i){var t=Pu(r);t.forEach(function(u,h){Ol(h)||i(u,h)});var o=Us(r);if(o!==r){var s=Jt(o);qf(s)&&U1(s,function(u,h){i(u,h)})}}function iu(r,i){var t=Pu(i);if(t)return t.get(r)}function vd(r,i){var t=iu(r,i);if(t)return t;var o=Us(i);if(o!==i){var s=Jt(o);return qf(s)?bi(s,r):void 0}}function qf(r){return!(r.flags&131068||e.getObjectFlags(r)&1||Tu(r)||Yn(r))}function dc(r){return r.flags&6256?Jv(r,"resolvedExports"):r.flags&1536?Pu(r):r.exports||we}function Pu(r){var i=Aa(r);return i.resolvedExports||(i.resolvedExports=Iu(r))}function wl(r,i,t,o){!i||i.forEach(function(s,u){if(u!=="default"){var h=r.get(u);if(!h)r.set(u,s),t&&o&&t.set(u,{specifierText:e.getTextOfNode(o.moduleSpecifier)});else if(t&&o&&h&&os(h)!==os(s)){var z=t.get(u);z.exportsWithDuplicate?z.exportsWithDuplicate.push(o):z.exportsWithDuplicate=[o]}}})}function Iu(r){var i=[];return r=Us(r),t(r)||we;function t(o){if(!!(o&&o.exports&&e.pushIfUnique(i,o))){var s=new e.Map(o.exports),u=o.exports.get("__export");if(u){var h=e.createSymbolTable(),z=new e.Map;if(u.declarations)for(var me=0,Me=u.declarations;me=$e?Me.substr(0,$e-3)+"...":Me}function nf(r,i){var t=Kf(r.symbol)?Ot(r,r.symbol.valueDeclaration):Ot(r),o=Kf(i.symbol)?Ot(i,i.symbol.valueDeclaration):Ot(i);return t===o&&(t=q_(r),o=q_(i)),[t,o]}function q_(r){return Ot(r,void 0,64)}function Kf(r){return r&&!!r.valueDeclaration&&e.isExpression(r.valueDeclaration)&&!Ju(r.valueDeclaration)}function Rp(r){return r===void 0&&(r=0),r&814775659}function yd(r){return!!r.symbol&&!!(r.symbol.flags&32)&&(r===aa(r.symbol)||!!(r.flags&524288)&&!!(e.getObjectFlags(r)&16777216))}function m_(){return{typeToTypeNode:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return o(ci,ea)})},indexInfoToIndexSignatureDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Me(ci,ea,void 0)})},signatureToSignatureDeclaration:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return $e(ci,Fr,Kt)})},symbolToEntityName:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return Fn(ci,Kt,Fr,!1)})},symbolToExpression:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return wn(ci,Kt,Fr)})},symbolToTypeParameterDeclarations:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return $i(ci,ea)})},symbolToParameterDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Qr(ci,ea)})},typeParameterToDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Dr(ci,ea)})},symbolTableToDeclarationStatements:function(ci,Fr,jt,Lt,ea){return r(Fr,jt,Lt,function(Kt){return Ln(ci,Kt,ea)})}};function r(ci,Fr,jt,Lt){var ea,Kt;e.Debug.assert(ci===void 0||(ci.flags&8)===0);var $t={enclosingDeclaration:ci,flags:Fr||0,tracker:jt&&jt.trackSymbol?jt:{trackSymbol:function(){return!1},moduleResolverHost:Fr&134217728?{getCommonSourceDirectory:l.getCommonSourceDirectory?function(){return l.getCommonSourceDirectory()}:function(){return""},getCurrentDirectory:function(){return l.getCurrentDirectory()},getSymlinkCache:e.maybeBind(l,l.getSymlinkCache),getPackageJsonInfoCache:function(){var Yr;return(Yr=l.getPackageJsonInfoCache)===null||Yr===void 0?void 0:Yr.call(l)},useCaseSensitiveFileNames:e.maybeBind(l,l.useCaseSensitiveFileNames),redirectTargetsMap:l.redirectTargetsMap,getProjectReferenceRedirect:function(Yr){return l.getProjectReferenceRedirect(Yr)},isSourceOfProjectReferenceRedirect:function(Yr){return l.isSourceOfProjectReferenceRedirect(Yr)},fileExists:function(Yr){return l.fileExists(Yr)},getFileIncludeReasons:function(){return l.getFileIncludeReasons()},readFile:l.readFile?function(Yr){return l.readFile(Yr)}:void 0}:void 0},encounteredError:!1,reportedDiagnostic:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0};$t.tracker=i($t,$t.tracker);var Ua=Lt($t);return $t.truncating&&$t.flags&1&&((Kt=(ea=$t.tracker)===null||ea===void 0?void 0:ea.reportTruncationError)===null||Kt===void 0||Kt.call(ea)),$t.encounteredError?void 0:Ua}function i(ci,Fr){var jt=Fr.trackSymbol;return Ke(Ke({},Fr),{reportCyclicStructureError:Lt(Fr.reportCyclicStructureError),reportInaccessibleThisError:Lt(Fr.reportInaccessibleThisError),reportInaccessibleUniqueSymbolError:Lt(Fr.reportInaccessibleUniqueSymbolError),reportLikelyUnsafeImportRequiredError:Lt(Fr.reportLikelyUnsafeImportRequiredError),reportNonlocalAugmentation:Lt(Fr.reportNonlocalAugmentation),reportPrivateInBaseOfClassExpression:Lt(Fr.reportPrivateInBaseOfClassExpression),reportNonSerializableProperty:Lt(Fr.reportNonSerializableProperty),trackSymbol:jt&&function(){for(var ea=[],Kt=0;Kt(ci.flags&1?e.noTruncationMaximumTruncationLength:e.defaultMaximumTruncationLength)}function o(ci,Fr){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var jt=Fr.flags&8388608;if(Fr.flags&=-8388609,!ci){if(!(Fr.flags&262144)){Fr.encounteredError=!0;return}return Fr.approximateLength+=3,e.factory.createKeywordTypeNode(130)}if(Fr.flags&536870912||(ci=bu(ci)),ci.flags&1)return ci.aliasSymbol?e.factory.createTypeReferenceNode(Ra(ci.aliasSymbol),z(ci.aliasTypeArguments,Fr)):ci===Ue?e.addSyntheticLeadingComment(e.factory.createKeywordTypeNode(130),3,"unresolved"):(Fr.approximateLength+=3,e.factory.createKeywordTypeNode(ci===De?138:130));if(ci.flags&2)return e.factory.createKeywordTypeNode(155);if(ci.flags&4)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(150);if(ci.flags&8)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(147);if(ci.flags&64)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(158);if(ci.flags&16&&!ci.aliasSymbol)return Fr.approximateLength+=7,e.factory.createKeywordTypeNode(133);if(ci.flags&1024&&!(ci.flags&1048576)){var Lt=Ys(ci.symbol),ea=ca(Lt,Fr,788968);if(go(Lt)===ci)return ea;var Kt=e.symbolName(ci.symbol);return e.isIdentifierText(Kt,0)?fp(ea,e.factory.createTypeReferenceNode(Kt,void 0)):e.isImportTypeNode(ea)?(ea.isTypeOf=!0,e.factory.createIndexedAccessTypeNode(ea,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt)))):e.isTypeReferenceNode(ea)?e.factory.createIndexedAccessTypeNode(e.factory.createTypeQueryNode(ea.typeName),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt))):e.Debug.fail("Unhandled type node kind returned from `symbolToTypeNode`.")}if(ci.flags&1056)return ca(ci.symbol,Fr,788968);if(ci.flags&128)return Fr.approximateLength+=ci.value.length+2,e.factory.createLiteralTypeNode(e.setEmitFlags(e.factory.createStringLiteral(ci.value,!!(Fr.flags&268435456)),16777216));if(ci.flags&256){var $t=ci.value;return Fr.approximateLength+=(""+$t).length,e.factory.createLiteralTypeNode($t<0?e.factory.createPrefixUnaryExpression(40,e.factory.createNumericLiteral(-$t)):e.factory.createNumericLiteral($t))}if(ci.flags&2048)return Fr.approximateLength+=e.pseudoBigIntToString(ci.value).length+1,e.factory.createLiteralTypeNode(e.factory.createBigIntLiteral(ci.value));if(ci.flags&512)return Fr.approximateLength+=ci.intrinsicName.length,e.factory.createLiteralTypeNode(ci.intrinsicName==="true"?e.factory.createTrue():e.factory.createFalse());if(ci.flags&8192){if(!(Fr.flags&1048576)){if(Lp(ci.symbol,Fr.enclosingDeclaration))return Fr.approximateLength+=6,ca(ci.symbol,Fr,111551);Fr.tracker.reportInaccessibleUniqueSymbolError&&Fr.tracker.reportInaccessibleUniqueSymbolError()}return Fr.approximateLength+=13,e.factory.createTypeOperatorNode(154,e.factory.createKeywordTypeNode(151))}if(ci.flags&16384)return Fr.approximateLength+=4,e.factory.createKeywordTypeNode(114);if(ci.flags&32768)return Fr.approximateLength+=9,e.factory.createKeywordTypeNode(153);if(ci.flags&65536)return Fr.approximateLength+=4,e.factory.createLiteralTypeNode(e.factory.createNull());if(ci.flags&131072)return Fr.approximateLength+=5,e.factory.createKeywordTypeNode(143);if(ci.flags&4096)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(151);if(ci.flags&67108864)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(148);if(e.isThisTypeParameter(ci))return Fr.flags&4194304&&(!Fr.encounteredError&&!(Fr.flags&32768)&&(Fr.encounteredError=!0),Fr.tracker.reportInaccessibleThisError&&Fr.tracker.reportInaccessibleThisError()),Fr.approximateLength+=4,e.factory.createThisTypeNode();if(!jt&&ci.aliasSymbol&&(Fr.flags&16384||Gu(ci.aliasSymbol,Fr.enclosingDeclaration))){var Ua=z(ci.aliasTypeArguments,Fr);return Ol(ci.aliasSymbol.escapedName)&&!(ci.aliasSymbol.flags&32)?e.factory.createTypeReferenceNode(e.factory.createIdentifier(""),Ua):ca(ci.aliasSymbol,Fr,788968,Ua)}var Yr=e.getObjectFlags(ci);if(Yr&4)return e.Debug.assert(!!(ci.flags&524288)),ci.node?jd(ci,Tl):Tl(ci);if(ci.flags&262144||Yr&3){if(ci.flags&262144&&e.contains(Fr.inferTypeParameters,ci)){Fr.approximateLength+=e.symbolName(ci.symbol).length+6;var Ni=void 0,Hi=Tc(ci);if(Hi){var _t=sx(ci,!0);_t&&wf(Hi,_t)||(Fr.approximateLength+=9,Ni=Hi&&o(Hi,Fr))}return e.factory.createInferTypeNode(pr(ci,Fr,Ni))}if(Fr.flags&4&&ci.flags&262144&&!Gu(ci.symbol,Fr.enclosingDeclaration)){var gt=ja(ci,Fr);return Fr.approximateLength+=e.idText(gt).length,e.factory.createTypeReferenceNode(e.factory.createIdentifier(e.idText(gt)),void 0)}if(ci.symbol)return ca(ci.symbol,Fr,788968);var Vt=(ci===Rn||ci===Da)&&_e&&_e.symbol?(ci===Da?"sub-":"super-")+e.symbolName(_e.symbol):"?";return e.factory.createTypeReferenceNode(e.factory.createIdentifier(Vt),void 0)}if(ci.flags&1048576&&ci.origin&&(ci=ci.origin),ci.flags&3145728){var Fa=ci.flags&1048576?hd(ci.types):ci.types;if(e.length(Fa)===1)return o(Fa[0],Fr);var on=z(Fa,Fr,!0);if(on&&on.length>0)return ci.flags&1048576?e.factory.createUnionTypeNode(on):e.factory.createIntersectionTypeNode(on);!Fr.encounteredError&&!(Fr.flags&262144)&&(Fr.encounteredError=!0);return}if(Yr&48)return e.Debug.assert(!!(ci.flags&524288)),rl(ci);if(ci.flags&4194304){var Un=ci.type;Fr.approximateLength+=6;var Ga=o(Un,Fr);return e.factory.createTypeOperatorNode(140,Ga)}if(ci.flags&134217728){var Qn=ci.texts,wo=ci.types,Po=e.factory.createTemplateHead(Qn[0]),Uo=e.factory.createNodeArray(e.map(wo,function(za,$r){return e.factory.createTemplateLiteralTypeSpan(o(za,Fr),($r10)return s(Fr);Fr.symbolDepth.set(Ht,Ca+1)}Fr.visitedTypes.add(mt);var An=Fr.approximateLength,gn=$r(za),qn=Fr.approximateLength-An;return!Fr.reportedDiagnostic&&!Fr.encounteredError&&(Fr.truncating&&(gn.truncating=!0),gn.addedLength=qn,(Ri=vt==null?void 0:vt.serializedTypes)===null||Ri===void 0||Ri.set(ht,gn)),Fr.visitedTypes.delete(mt),Ht&&Fr.symbolDepth.set(Ht,Ca),gn;function zo(Bo){return!e.nodeIsSynthesized(Bo)&&e.getParseTreeNode(Bo)===Bo?Bo:e.setTextRange(e.factory.cloneNode(e.visitEachChild(Bo,zo,e.nullTransformationContext,us)),Bo)}function us(Bo,Io,Qo,ls,gi){return Bo&&Bo.length===0?e.setTextRange(e.factory.createNodeArray(void 0,Bo.hasTrailingComma),Bo):e.visitNodes(Bo,Io,Qo,ls,gi)}}function lp(za){if(Bc(za)||za.containsError)return Ts(za);var $r=Ru(za);if(!$r.properties.length&&!$r.indexInfos.length){if(!$r.callSignatures.length&&!$r.constructSignatures.length)return Fr.approximateLength+=2,e.setEmitFlags(e.factory.createTypeLiteralNode(void 0),1);if($r.callSignatures.length===1&&!$r.constructSignatures.length){var hi=$r.callSignatures[0],Ri=$e(hi,179,Fr);return Ri}if($r.constructSignatures.length===1&&!$r.callSignatures.length){var hi=$r.constructSignatures[0],Ri=$e(hi,180,Fr);return Ri}}var mt=e.filter($r.constructSignatures,function(Ca){return!!(Ca.flags&4)});if(e.some(mt)){var ft=e.map(mt,im),Ht=$r.callSignatures.length+($r.constructSignatures.length-mt.length)+$r.indexInfos.length+(Fr.flags&2048?e.countWhere($r.properties,function(Ca){return!(Ca.flags&4194304)}):e.length($r.properties));return Ht&&ft.push(Op($r)),o(Do(ft),Fr)}var vt=Fr.flags;Fr.flags|=4194304;var ht=id($r);Fr.flags=vt;var ma=e.factory.createTypeLiteralNode(ht);return Fr.approximateLength+=2,e.setEmitFlags(ma,Fr.flags&1024?0:1),ma}function Tl(za){var $r=xo(za);if(za.target===Pi||za.target===Qi){if(Fr.flags&2){var hi=o($r[0],Fr);return e.factory.createTypeReferenceNode(za.target===Pi?"Array":"ReadonlyArray",[hi])}var Ri=o($r[0],Fr),mt=e.factory.createArrayTypeNode(Ri);return za.target===Pi?mt:e.factory.createTypeOperatorNode(145,mt)}else if(za.target.objectFlags&8){if($r=e.sameMap($r,function(zt,La){return kg(zt,!!(za.target.elementFlags[La]&2))}),$r.length>0){var ft=$_(za),Ht=z($r.slice(0,ft),Fr);if(Ht){if(za.target.labeledElementDeclarations)for(var vt=0;vt0){var ls=(za.target.typeParameters||e.emptyArray).length;Qo=z($r.slice(vt,ls),Fr)}var ht=Fr.flags;Fr.flags|=16;var gi=ca(za.symbol,Fr,788968,Qo);return Fr.flags=ht,An?fp(An,gi):gi}}function fp(za,$r){if(e.isImportTypeNode(za)){var hi=za.typeArguments,Ri=za.qualifier;Ri&&(e.isIdentifier(Ri)?Ri=e.factory.updateIdentifier(Ri,hi):Ri=e.factory.updateQualifiedName(Ri,Ri.left,e.factory.updateIdentifier(Ri.right,hi))),hi=$r.typeArguments;for(var mt=zg($r),ft=0,Ht=mt;ft2)return[o(ci[0],Fr),e.factory.createTypeReferenceNode("... ".concat(ci.length-2," more ..."),void 0),o(ci[ci.length-1],Fr)]}else return[e.factory.createTypeReferenceNode("...",void 0)];for(var Lt=!(Fr.flags&64),ea=Lt?e.createUnderscoreEscapedMultiMap():void 0,Kt=[],$t=0,Ua=0,Yr=ci;Ua0)):ea=[ci],ea;function $t(Ua,Yr,Ni){var Hi=pl(Ua,Fr.enclosingDeclaration,Yr,!!(Fr.flags&128)),_t;if(!Hi||Fp(Hi[0],Fr.enclosingDeclaration,Hi.length===1?Yr:Fl(Yr))){var gt=Np(Hi?Hi[0]:Ua,Fr.enclosingDeclaration,Yr);if(e.length(gt)){_t=gt.map(function(Po){return e.some(Po.declarations,Fc)?Nt(Po,Fr):void 0});var Vt=gt.map(function(Po,Uo){return Uo});Vt.sort(wo);for(var Fa=Vt.map(function(Po){return gt[Po]}),on=0,Un=Fa;on1?Po(ea,ea.length-1,1):void 0,Ua=Lt||Zi(ea,0,Fr),Yr=e.getSourceFileOfNode(e.getOriginalNode(Fr.enclosingDeclaration)),Ni=e.getSourceFileOfModule(ea[0]),Hi=void 0,_t=void 0;if((e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext)&&(Ni==null?void 0:Ni.impliedNodeFormat)===e.ModuleKind.ESNext&&Ni.impliedNodeFormat!==(Yr==null?void 0:Yr.impliedNodeFormat)&&(Hi=Nt(ea[0],Fr,e.ModuleKind.ESNext),_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral("resolution-mode"),e.factory.createStringLiteral("import"))])))),Hi||(Hi=Nt(ea[0],Fr)),!(Fr.flags&67108864)&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&Hi.indexOf("/node_modules/")>=0){var gt=Hi;if(e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Vt=(Yr==null?void 0:Yr.impliedNodeFormat)===e.ModuleKind.ESNext?e.ModuleKind.CommonJS:e.ModuleKind.ESNext;Hi=Nt(ea[0],Fr,Vt),Hi.indexOf("/node_modules/")>=0?Hi=gt:_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral("resolution-mode"),e.factory.createStringLiteral(Vt===e.ModuleKind.ESNext?"import":"require"))])))}_t||(Fr.encounteredError=!0,Fr.tracker.reportLikelyUnsafeImportRequiredError&&Fr.tracker.reportLikelyUnsafeImportRequiredError(gt))}var Fa=e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Hi));if(Fr.tracker.trackExternalModuleSymbolOfImportTypeNode&&Fr.tracker.trackExternalModuleSymbolOfImportTypeNode(ea[0]),Fr.approximateLength+=Hi.length+10,!$t||e.isEntityName($t)){if($t){var on=e.isIdentifier($t)?$t:$t.right;on.typeArguments=void 0}return e.factory.createImportTypeNode(Fa,_t,$t,Ua,Kt)}else{var Un=qt($t),Ga=Un.objectType.typeName;return e.factory.createIndexedAccessTypeNode(e.factory.createImportTypeNode(Fa,_t,Ga,Ua,Kt),Un.indexType)}}var Qn=Po(ea,ea.length-1,0);if(e.isIndexedAccessTypeNode(Qn))return Qn;if(Kt)return e.factory.createTypeQueryNode(Qn);var on=e.isIdentifier(Qn)?Qn:Qn.right,wo=on.typeArguments;return on.typeArguments=void 0,e.factory.createTypeReferenceNode(Qn,wo);function Po(Uo,Rs,Fs){var rc=Rs===Uo.length-1?Lt:Zi(Uo,Rs,Fr),xu=Uo[Rs],Ts=Uo[Rs-1],rl;if(Rs===0)Fr.flags|=16777216,rl=of(xu,Fr),Fr.approximateLength+=(rl?rl.length:0)+1,Fr.flags^=16777216;else if(Ts&&dc(Ts)){var jd=dc(Ts);e.forEachEntry(jd,function(zg,id){if(_l(zg,xu)&&!pg(id)&&id!=="export=")return rl=e.unescapeLeadingUnderscores(id),!0})}if(rl===void 0){var lp=e.firstDefined(xu.declarations,e.getNameOfDeclaration);if(lp&&e.isComputedPropertyName(lp)&&e.isEntityName(lp.expression)){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createIndexedAccessTypeNode(e.factory.createParenthesizedType(e.factory.createTypeQueryNode(Tl)),e.factory.createTypeQueryNode(lp.expression)):Tl}rl=of(xu,Fr)}if(Fr.approximateLength+=rl.length+1,!(Fr.flags&16)&&Ts&&Nf(Ts)&&Nf(Ts).get(xu.escapedName)&&_l(Nf(Ts).get(xu.escapedName),xu)){var Tl=Po(Uo,Rs-1,Fs);return e.isIndexedAccessTypeNode(Tl)?e.factory.createIndexedAccessTypeNode(Tl,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl))):e.factory.createIndexedAccessTypeNode(e.factory.createTypeReferenceNode(Tl,rc),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl)))}var fp=e.setEmitFlags(e.factory.createIdentifier(rl,rc),16777216);if(fp.symbol=xu,Rs>Fs){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createQualifiedName(Tl,fp):e.Debug.fail("Impossible construct - an export of an indexed access cannot be reachable")}return fp}}function Sn(ci,Fr,jt){var Lt=es(Fr.enclosingDeclaration,ci,788968,void 0,ci,!1);return Lt?!(Lt.flags&262144&&Lt===jt.symbol):!1}function ja(ci,Fr){var jt,Lt;if(Fr.flags&4&&Fr.typeParameterNames){var ea=Fr.typeParameterNames.get(fu(ci));if(ea)return ea}var Kt=Fn(ci.symbol,Fr,788968,!0);if(!(Kt.kind&79))return e.factory.createIdentifier("(Missing type parameter)");if(Fr.flags&4){for(var $t=Kt.escapedText,Ua=((jt=Fr.typeParameterNamesByTextNextNameCount)===null||jt===void 0?void 0:jt.get($t))||0,Yr=$t;((Lt=Fr.typeParameterNamesByText)===null||Lt===void 0?void 0:Lt.has(Yr))||Sn(Yr,Fr,ci);)Ua++,Yr="".concat($t,"_").concat(Ua);Yr!==$t&&(Kt=e.factory.createIdentifier(Yr,Kt.typeArguments)),(Fr.typeParameterNamesByTextNextNameCount||(Fr.typeParameterNamesByTextNextNameCount=new e.Map)).set($t,Ua),(Fr.typeParameterNames||(Fr.typeParameterNames=new e.Map)).set(fu(ci),Kt),(Fr.typeParameterNamesByText||(Fr.typeParameterNamesByText=new e.Set)).add($t)}return Kt}function Fn(ci,Fr,jt,Lt){var ea=Ti(ci,Fr,jt);return Lt&&ea.length!==1&&!Fr.encounteredError&&!(Fr.flags&65536)&&(Fr.encounteredError=!0),Kt(ea,ea.length-1);function Kt($t,Ua){var Yr=Zi($t,Ua,Fr),Ni=$t[Ua];Ua===0&&(Fr.flags|=16777216);var Hi=of(Ni,Fr);Ua===0&&(Fr.flags^=16777216);var _t=e.setEmitFlags(e.factory.createIdentifier(Hi,Yr),16777216);return _t.symbol=Ni,Ua>0?e.factory.createQualifiedName(Kt($t,Ua-1),_t):_t}}function wn(ci,Fr,jt){var Lt=Ti(ci,Fr,jt);return ea(Lt,Lt.length-1);function ea(Kt,$t){var Ua=Zi(Kt,$t,Fr),Yr=Kt[$t];$t===0&&(Fr.flags|=16777216);var Ni=of(Yr,Fr);$t===0&&(Fr.flags^=16777216);var Hi=Ni.charCodeAt(0);if(e.isSingleOrDoubleQuote(Hi)&&e.some(Yr.declarations,Fc))return e.factory.createStringLiteral(Nt(Yr,Fr));var _t=Hi===35?Ni.length>1&&e.isIdentifierStart(Ni.charCodeAt(1),Ae):e.isIdentifierStart(Hi,Ae);if($t===0||_t){var gt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216);return gt.symbol=Yr,$t>0?e.factory.createPropertyAccessExpression(ea(Kt,$t-1),gt):gt}else{Hi===91&&(Ni=Ni.substring(1,Ni.length-1),Hi=Ni.charCodeAt(0));var Vt=void 0;return e.isSingleOrDoubleQuote(Hi)&&!(Yr.flags&8)?Vt=e.factory.createStringLiteral(e.stripQuotes(Ni).replace(/\\./g,function(Fa){return Fa.substring(1)}),Hi===39):""+ +Ni===Ni&&(Vt=e.factory.createNumericLiteral(+Ni)),Vt||(Vt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216),Vt.symbol=Yr),e.factory.createElementAccessExpression(ea(Kt,$t-1),Vt)}}}function Tn(ci){var Fr=e.getNameOfDeclaration(ci);return!!Fr&&e.isStringLiteral(Fr)}function Eo(ci){var Fr=e.getNameOfDeclaration(ci);return!!(Fr&&e.isStringLiteral(Fr)&&(Fr.singleQuote||!e.nodeIsSynthesized(Fr)&&e.startsWith(e.getTextOfNode(Fr,!1),"'")))}function lt(ci,Fr){var jt=!!e.length(ci.declarations)&&e.every(ci.declarations,Eo),Lt=it(ci,Fr,jt);if(Lt)return Lt;var ea=e.unescapeLeadingUnderscores(ci.escapedName),Kt=!!e.length(ci.declarations)&&e.every(ci.declarations,Tn);return e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye),jt,Kt)}function it(ci,Fr,jt){var Lt=Aa(ci).nameType;if(Lt){if(Lt.flags&384){var ea=""+Lt.value;return!e.isIdentifierText(ea,e.getEmitScriptTarget(ye))&&!e.isNumericLiteralName(ea)?e.factory.createStringLiteral(ea,!!jt):e.isNumericLiteralName(ea)&&e.startsWith(ea,"-")?e.factory.createComputedPropertyName(e.factory.createNumericLiteral(+ea)):e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye))}if(Lt.flags&8192)return e.factory.createComputedPropertyName(wn(Lt.symbol,Fr,111551))}}function Yt(ci){var Fr=Ke({},ci);return Fr.typeParameterNames&&(Fr.typeParameterNames=new e.Map(Fr.typeParameterNames)),Fr.typeParameterNamesByText&&(Fr.typeParameterNamesByText=new e.Set(Fr.typeParameterNamesByText)),Fr.typeParameterSymbolList&&(Fr.typeParameterSymbolList=new e.Set(Fr.typeParameterSymbolList)),Fr.tracker=i(Fr,Fr.tracker),Fr}function Ia(ci,Fr){return ci.declarations&&e.find(ci.declarations,function(jt){return!!e.getEffectiveTypeAnnotationNode(jt)&&(!Fr||!!e.findAncestor(jt,function(Lt){return Lt===Fr}))})}function Qt(ci,Fr){return!(e.getObjectFlags(Fr)&4)||!e.isTypeReferenceNode(ci)||e.length(ci.typeArguments)>=Ul(Fr.target.typeParameters)}function Ka(ci,Fr,jt,Lt,ea,Kt){if(!nn(Fr)&&Lt){var $t=Ia(jt,Lt);if($t&&!e.isFunctionLikeDeclaration($t)&&!e.isGetAccessorDeclaration($t)){var Ua=e.getEffectiveTypeAnnotationNode($t);if(cn(Ua,$t,Fr)&&Qt(Ua,Fr)){var Yr=Mn(ci,Ua,ea,Kt);if(Yr)return Yr}}}var Ni=ci.flags;Fr.flags&8192&&Fr.symbol===jt&&(!ci.enclosingDeclaration||e.some(jt.declarations,function(_t){return e.getSourceFileOfNode(_t)===e.getSourceFileOfNode(ci.enclosingDeclaration)}))&&(ci.flags|=1048576);var Hi=o(Fr,ci);return ci.flags=Ni,Hi}function cn(ci,Fr,jt){var Lt=Va(ci);return Lt===jt?!0:e.isParameter(Fr)&&Fr.questionToken?Ks(jt,524288)===Lt:!1}function jn(ci,Fr,jt,Lt,ea){if(!nn(Fr)&&ci.enclosingDeclaration){var Kt=jt.declaration&&e.getEffectiveReturnTypeNode(jt.declaration);if(!!e.findAncestor(Kt,function(Ni){return Ni===ci.enclosingDeclaration})&&Kt){var $t=Va(Kt),Ua=$t.flags&262144&&$t.isThisType?un($t,jt.mapper):$t;if(Ua===Fr&&Qt(Kt,Fr)){var Yr=Mn(ci,Kt,Lt,ea);if(Yr)return Yr}}}return o(Fr,ci)}function oa(ci,Fr,jt){var Lt,ea,Kt=!1,$t=e.getFirstIdentifier(ci);if(e.isInJSFile(ci)&&(e.isExportsIdentifier($t)||e.isModuleExportsAccessExpression($t.parent)||e.isQualifiedName($t.parent)&&e.isModuleIdentifier($t.parent.left)&&e.isExportsIdentifier($t.parent.right)))return Kt=!0,{introducesError:Kt,node:ci};var Ua=Ds($t,67108863,!0,!0);if(Ua&&(g_(Ua,Fr.enclosingDeclaration,67108863,!1).accessibility!==0?Kt=!0:((ea=(Lt=Fr.tracker)===null||Lt===void 0?void 0:Lt.trackSymbol)===null||ea===void 0||ea.call(Lt,Ua,Fr.enclosingDeclaration,67108863),jt==null||jt(Ua)),e.isIdentifier(ci))){var Yr=go(Ua),Ni=Ua.flags&262144&&!Gu(Yr.symbol,Fr.enclosingDeclaration)?ja(Yr,Fr):e.factory.cloneNode(ci);return Ni.symbol=Ua,{introducesError:Kt,node:e.setEmitFlags(e.setOriginalNode(Ni,ci),16777216)}}return{introducesError:Kt,node:ci}}function Mn(ci,Fr,jt,Lt){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var ea=!1,Kt=e.getSourceFileOfNode(Fr),$t=e.visitNode(Fr,Ua);if(ea)return;return $t===Fr?e.setTextRange(e.factory.cloneNode(Fr),Fr):$t;function Ua(Yr){if(e.isJSDocAllType(Yr)||Yr.kind===319)return e.factory.createKeywordTypeNode(130);if(e.isJSDocUnknownType(Yr))return e.factory.createKeywordTypeNode(155);if(e.isJSDocNullableType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createLiteralTypeNode(e.factory.createNull())]);if(e.isJSDocOptionalType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createKeywordTypeNode(153)]);if(e.isJSDocNonNullableType(Yr))return e.visitNode(Yr.type,Ua);if(e.isJSDocVariadicType(Yr))return e.factory.createArrayTypeNode(e.visitNode(Yr.type,Ua));if(e.isJSDocTypeLiteral(Yr))return e.factory.createTypeLiteralNode(e.map(Yr.jsDocPropertyTags,function(Ga){var Qn=e.isIdentifier(Ga.name)?Ga.name:Ga.name.right,wo=da(Va(Yr),Qn.escapedText),Po=wo&&Ga.typeExpression&&Va(Ga.typeExpression.type)!==wo?o(wo,ci):void 0;return e.factory.createPropertySignature(void 0,Qn,Ga.isBracketed||Ga.typeExpression&&e.isJSDocOptionalType(Ga.typeExpression.type)?e.factory.createToken(57):void 0,Po||Ga.typeExpression&&e.visitNode(Ga.typeExpression.type,Ua)||e.factory.createKeywordTypeNode(130))}));if(e.isTypeReferenceNode(Yr)&&e.isIdentifier(Yr.typeName)&&Yr.typeName.escapedText==="")return e.setOriginalNode(e.factory.createKeywordTypeNode(130),Yr);if((e.isExpressionWithTypeArguments(Yr)||e.isTypeReferenceNode(Yr))&&e.isJSDocIndexSignature(Yr))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(Yr.typeArguments[0],Ua))],e.visitNode(Yr.typeArguments[1],Ua))]);if(e.isJSDocFunctionType(Yr))if(e.isJSDocConstructSignature(Yr)){var Ni;return e.factory.createConstructorTypeNode(Yr.modifiers,e.visitNodes(Yr.typeParameters,Ua),e.mapDefined(Yr.parameters,function(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText==="new"?(Ni=Ga.type,void 0):e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Ni||Yr.type,Ua)||e.factory.createKeywordTypeNode(130))}else return e.factory.createFunctionTypeNode(e.visitNodes(Yr.typeParameters,Ua),e.map(Yr.parameters,function(Ga,Qn){return e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Yr.type,Ua)||e.factory.createKeywordTypeNode(130));if(e.isTypeReferenceNode(Yr)&&e.isInJSDoc(Yr)&&(!Qt(Yr,Va(Yr))||vx(Yr)||xe===nm(Yr,788968,!0)))return e.setOriginalNode(o(Va(Yr),ci),Yr);if(e.isLiteralImportTypeNode(Yr)){var Hi=va(Yr).resolvedSymbol;return e.isInJSDoc(Yr)&&Hi&&(!Yr.isTypeOf&&!(Hi.flags&788968)||!(e.length(Yr.typeArguments)>=Ul(Af(Hi))))?e.setOriginalNode(o(Va(Yr),ci),Yr):e.factory.updateImportTypeNode(Yr,e.factory.updateLiteralTypeNode(Yr.argument,Un(Yr,Yr.argument.literal)),Yr.qualifier,e.visitNodes(Yr.typeArguments,Ua,e.isTypeNode),Yr.isTypeOf)}if(e.isEntityName(Yr)||e.isEntityNameExpression(Yr)){var _t=oa(Yr,ci,jt),gt=_t.introducesError,Vt=_t.node;if(ea=ea||gt,Vt!==Yr)return Vt}return Kt&&e.isTupleTypeNode(Yr)&&e.getLineAndCharacterOfPosition(Kt,Yr.pos).line===e.getLineAndCharacterOfPosition(Kt,Yr.end).line&&e.setEmitFlags(Yr,1),e.visitEachChild(Yr,Ua,e.nullTransformationContext);function Fa(Ga){return Ga.dotDotDotToken||(Ga.type&&e.isJSDocVariadicType(Ga.type)?e.factory.createToken(25):void 0)}function on(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText==="this"?"this":Fa(Ga)?"args":"arg".concat(Qn)}function Un(Ga,Qn){if(Lt){if(ci.tracker&&ci.tracker.moduleResolverHost){var wo=US(Ga);if(wo){var Po=e.createGetCanonicalFileName(!!l.useCaseSensitiveFileNames),Uo={getCanonicalFileName:Po,getCurrentDirectory:function(){return ci.tracker.moduleResolverHost.getCurrentDirectory()},getCommonSourceDirectory:function(){return ci.tracker.moduleResolverHost.getCommonSourceDirectory()}},Rs=e.getResolvedExternalModuleName(Uo,wo);return e.factory.createStringLiteral(Rs)}}}else if(ci.tracker&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode){var Fs=Pl(Qn,Qn,void 0);Fs&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode(Fs)}return Qn}}}function Ln(ci,Fr,jt){var Lt=Ca(e.factory.createPropertyDeclaration,169,!0),ea=Ca(function(gi,zt,La,fa,ya){return e.factory.createPropertySignature(zt,La,fa,ya)},168,!1),Kt=Fr.enclosingDeclaration,$t=[],Ua=new e.Set,Yr=[],Ni=Fr;Fr=Ke(Ke({},Ni),{usedSymbolNames:new e.Set(Ni.usedSymbolNames),remappedSymbolNames:new e.Map,tracker:Ke(Ke({},Ni.tracker),{trackSymbol:function(gi,zt,La){var fa=g_(gi,zt,La,!1);if(fa.accessibility===0){var ya=Ci(gi,Fr,La);gi.flags&4||rc(ya[0])}else if(Ni.tracker&&Ni.tracker.trackSymbol)return Ni.tracker.trackSymbol(gi,zt,La);return!1}})}),Fr.tracker=i(Fr,Fr.tracker),e.forEachEntry(ci,function(gi,zt){var La=e.unescapeLeadingUnderscores(zt);ls(gi,La)});var Hi=!jt,_t=ci.get("export=");return _t&&ci.size>1&&_t.flags&2097152&&(ci=e.createSymbolTable(),ci.set("export=",_t)),Uo(ci),Ga($t);function gt(gi){return!!gi&&gi.kind===79}function Vt(gi){return e.isVariableStatement(gi)?e.filter(e.map(gi.declarationList.declarations,e.getNameOfDeclaration),gt):e.filter([e.getNameOfDeclaration(gi)],gt)}function Fa(gi){var zt=e.find(gi,e.isExportAssignment),La=e.findIndex(gi,e.isModuleDeclaration),fa=La!==-1?gi[La]:void 0;if(fa&&zt&&zt.isExportEquals&&e.isIdentifier(zt.expression)&&e.isIdentifier(fa.name)&&e.idText(fa.name)===e.idText(zt.expression)&&fa.body&&e.isModuleBlock(fa.body)){var ya=e.filter(gi,function(sn){return!!(e.getEffectiveModifierFlags(sn)&1)}),Nn=fa.name,fn=fa.body;if(e.length(ya)&&(fa=e.factory.updateModuleDeclaration(fa,fa.decorators,fa.modifiers,fa.name,fn=e.factory.updateModuleBlock(fn,e.factory.createNodeArray(Ve(Ve([],fa.body.statements,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.map(e.flatMap(ya,function(sn){return Vt(sn)}),function(sn){return e.factory.createExportSpecifier(!1,void 0,sn)})),void 0)],!1)))),gi=Ve(Ve(Ve([],gi.slice(0,La),!0),[fa],!1),gi.slice(La+1),!0)),!e.find(gi,function(sn){return sn!==fa&&e.nodeHasName(sn,Nn)})){$t=[];var hn=!e.some(fn.statements,function(sn){return e.hasSyntacticModifier(sn,1)||e.isExportAssignment(sn)||e.isExportDeclaration(sn)});e.forEach(fn.statements,function(sn){Ts(sn,hn?1:0)}),gi=Ve(Ve([],e.filter(gi,function(sn){return sn!==fa&&sn!==zt}),!0),$t,!0)}}return gi}function on(gi){var zt=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(zt)>1){var La=e.filter(gi,function(ln){return!e.isExportDeclaration(ln)||!!ln.moduleSpecifier||!ln.exportClause});gi=Ve(Ve([],La,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(zt,function(ln){return e.cast(ln.exportClause,e.isNamedExports).elements})),void 0)],!1)}var fa=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(fa)>1){var ya=e.group(fa,function(ln){return e.isStringLiteral(ln.moduleSpecifier)?">"+ln.moduleSpecifier.text:">"});if(ya.length!==fa.length)for(var Nn=function(ln){ln.length>1&&(gi=Ve(Ve([],e.filter(gi,function(lo){return ln.indexOf(lo)===-1}),!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(ln,function(lo){return e.cast(lo.exportClause,e.isNamedExports).elements})),ln[0].moduleSpecifier)],!1))},fn=0,hn=ya;fn=0){var La=gi[zt],fa=e.mapDefined(La.exportClause.elements,function(ya){if(!ya.propertyName){var Nn=e.indicesOf(gi),fn=e.filter(Nn,function(lo){return e.nodeHasName(gi[lo],ya.name)});if(e.length(fn)&&e.every(fn,function(lo){return Qn(gi[lo])})){for(var hn=0,sn=fn;hn0&&e.isSingleOrDoubleQuote(fa.charCodeAt(0))?e.stripQuotes(fa):fa}return zt==="default"?zt="_default":zt==="export="&&(zt="_exports"),zt=e.isIdentifierText(zt,Ae)&&!e.isStringANonContextualKeyword(zt)?zt:"_"+zt.replace(/[^a-zA-Z0-9]/g,"_"),zt}function ls(gi,zt){var La=y(gi);return Fr.remappedSymbolNames.has(La)?Fr.remappedSymbolNames.get(La):(zt=Qo(gi,zt),Fr.remappedSymbolNames.set(La,zt),zt)}}}function Ll(r,i,t,o){return t===void 0&&(t=16384),o?s(o).getText():e.usingSingleLineStringWriter(s);function s(u){var h=e.factory.createTypePredicateNode(r.kind===2||r.kind===3?e.factory.createToken(128):void 0,r.kind===1||r.kind===3?e.factory.createIdentifier(r.parameterName):e.factory.createThisTypeNode(),r.type&&Ur.typeToTypeNode(r.type,i,Rp(t)|70221824|512)),z=e.createPrinter({removeComments:!0}),me=i&&e.getSourceFileOfNode(i);return z.writeNode(4,h,me,u),u}}function hd(r){for(var i=[],t=0,o=0;o=0){for(var o=eu.length,s=t;s=0;t--){if(sr(eu[t],pu[t]))return-1;if(eu[t]===r&&pu[t]===i)return t}return-1}function sr(r,i){switch(i){case 0:return!!Aa(r).type;case 5:return!!va(r).resolvedEnumType;case 2:return!!Aa(r).declaredType;case 1:return!!r.resolvedBaseConstructorType;case 3:return!!r.resolvedReturnType;case 4:return!!r.immediateBaseConstraint;case 6:return!!r.resolvedTypeArguments;case 7:return!!r.baseTypesResolved;case 8:return!!Aa(r).writeType}return e.Debug.assertNever(i)}function fi(){return eu.pop(),pu.pop(),Ws.pop()}function zi(r){return e.findAncestor(e.getRootDeclaration(r),function(i){switch(i.kind){case 254:case 255:case 270:case 269:case 268:case 267:return!1;default:return!0}}).parent}function Sa(r){var i=go(Ys(r));return i.typeParameters?Yf(i,e.map(i.typeParameters,function(t){return Oe})):i}function da(r,i){var t=bi(r,i);return t?Jt(t):void 0}function Ha(r,i){var t;return da(r,i)||((t=Xo(r,i))===null||t===void 0?void 0:t.type)||gr}function ta(r){return r&&(r.flags&1)!==0}function nn(r){return r===Pe||!!(r.flags&1&&r.aliasSymbol)}function Wo(r,i){if(i!==0)return G_(r,!1,i);var t=Et(r);return t&&Aa(t).type||G_(r,!1,i)}function Lo(r,i,t){if(r=ec(r,function(li){return!(li.flags&98304)}),r.flags&131072)return Ba;if(r.flags&1048576)return Ss(r,function(li){return Lo(li,i,t)});for(var o=Pa(e.map(i,Z_)),s=[],u=[],h=0,z=uo(r);h=2?F3(Oe):mo;var h=e.map(o,function($e){return e.isOmittedExpression($e)?Oe:vs($e,i,t)}),z=e.findLastIndex(o,function($e){return!($e===u||e.isOmittedExpression($e)||pm($e))},o.length-1)+1,me=e.map(o,function($e,tr){return $e===u?4:tr>=z?2:1}),Me=Wl(h,me);return i&&(Me=ux(Me),Me.pattern=r,Me.objectFlags|=131072),Me}function Qu(r,i,t){return i===void 0&&(i=!1),t===void 0&&(t=!1),r.kind===201?Ac(r,i,t):Is(r,i,t)}function sc(r,i){return Mc(G_(r,!0,0),r,i)}function bc(r){var i=Et(r),t=D3(!1);return t&&i&&i===t}function Mc(r,i,t){return r?(r.flags&4096&&bc(i.parent)&&(r=CD(i)),t&&Kh(i,r),r.flags&8192&&(e.isBindingElement(i)||!i.type)&&r.symbol!==Et(i)&&(r=Ki),$c(r)):(r=e.isParameter(i)&&i.dotDotDotToken?mo:Oe,t&&(Yu(i)||Xp(i,r)),r)}function Yu(r){var i=e.getRootDeclaration(r),t=i.kind===164?i.parent:i;return I0(t)}function Rl(r){var i=e.getEffectiveTypeAnnotationNode(r);if(i)return Va(i)}function Lc(r){var i=Aa(r);if(!i.type){var t=_(r);i.type||(i.type=t)}return i.type}function _(r){if(r.flags&4194304)return Sa(r);if(r===qr)return Oe;if(r.flags&134217728&&r.valueDeclaration){var i=Et(e.getSourceFileOfNode(r.valueDeclaration)),t=oo(i.flags,"exports");t.declarations=i.declarations?i.declarations.slice():[],t.parent=r,t.target=i,i.valueDeclaration&&(t.valueDeclaration=i.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),i.exports&&(t.exports=new e.Map(i.exports));var o=e.createSymbolTable();return o.set("exports",t),rs(r,o,e.emptyArray,e.emptyArray,e.emptyArray)}e.Debug.assertIsDefined(r.valueDeclaration);var s=r.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(s)){var u=e.getEffectiveTypeAnnotationNode(s);if(u===void 0)return be?gr:Oe;var h=Bd(u);return ta(h)||h===gr?h:Pe}if(e.isSourceFile(s)&&e.isJsonSourceFile(s))return s.statements.length?$c(Hp(yn(s.statements[0].expression))):Ba;if(e.isAccessor(s))return rt(r);if(!yu(r,0))return r.flags&512&&!(r.flags&67108864)?vo(r):lg(r);var z;if(s.kind===271)z=Mc(Rl(s)||Os(s.expression),s);else if(e.isBinaryExpression(s)||e.isInJSFile(s)&&(e.isCallExpression(s)||(e.isPropertyAccessExpression(s)||e.isBindableStaticElementAccessExpression(s))&&e.isBinaryExpression(s.parent)))z=Ta(r);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(r.flags&9136)return vo(r);z=e.isBinaryExpression(s.parent)?Ta(r):Rl(s)||Oe}else if(e.isPropertyAssignment(s))z=Rl(s)||Kk(s);else if(e.isJsxAttribute(s))z=Rl(s)||OC(s);else if(e.isShorthandPropertyAssignment(s))z=Rl(s)||Dm(s.name,0);else if(e.isObjectLiteralMethod(s))z=Rl(s)||Gk(s,0);else if(e.isParameter(s)||e.isPropertyDeclaration(s)||e.isPropertySignature(s)||e.isVariableDeclaration(s)||e.isBindingElement(s)||e.isJSDocPropertyLikeTag(s))z=sc(s,!0);else if(e.isEnumDeclaration(s))z=vo(r);else if(e.isEnumMember(s))z=H_(r);else return e.Debug.fail("Unhandled declaration kind! "+e.Debug.formatSyntaxKind(s.kind)+" for "+e.Debug.formatSymbol(r));return fi()?z:r.flags&512&&!(r.flags&67108864)?vo(r):lg(r)}function W(r){if(r)if(r.kind===172){var i=e.getEffectiveReturnTypeNode(r);return i}else{var t=e.getEffectiveSetAccessorTypeAnnotationNode(r);return t}}function Te(r){var i=W(r);return i&&Va(i)}function cr(r){var i=qS(r);return i&&i.symbol}function ni(r){return T_(yl(r))}function rt(r){var i=Aa(r);if(!i.type){if(!yu(r,0))return Pe;var t=e.getDeclarationOfKind(r,172),o=e.getDeclarationOfKind(r,173),s=t&&e.isInJSFile(t)&&K_(t)||Te(t)||Te(o)||t&&t.body&&C0(t);s||(o&&!I0(o)?Ic(n,o,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,tn(r)):t&&!I0(t)&&Ic(n,t,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,tn(r)),s=Oe),fi()||(W(t)?Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):W(o)?Xr(o,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):t&&n&&Xr(t,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,tn(r)),s=Oe),i.type=s}return i.type}function yt(r){var i=Aa(r);if(!i.writeType){if(!yu(r,8))return Pe;var t=e.getDeclarationOfKind(r,173),o=Te(t);fi()||(W(t)&&Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),o=Oe),i.writeType=o||rt(r)}return i.writeType}function Xa(r){var i=Bl(aa(r));return i.flags&8650752?i:i.flags&2097152?e.find(i.types,function(t){return!!(t.flags&8650752)}):void 0}function vo(r){var i=Aa(r),t=i;if(!i.type){var o=r.valueDeclaration&&T0(r.valueDeclaration,!1);if(o){var s=iS(r,o);s&&(r=i=s)}t.type=i.type=Vs(r)}return i.type}function Vs(r){var i=r.valueDeclaration;if(r.flags&1536&&e.isShorthandAmbientModuleSymbol(r))return Oe;if(i&&(i.kind===221||e.isAccessExpression(i)&&i.parent.kind===221))return Ta(r);if(r.flags&512&&i&&e.isSourceFile(i)&&i.commonJsModuleIndicator){var t=Us(r);if(t!==r){if(!yu(r,0))return Pe;var o=so(r.exports.get("export=")),s=Ta(o,o===t?void 0:t);return fi()?s:lg(r)}}var u=tu(16,r);if(r.flags&32){var h=Xa(r);return h?Do([u,h]):u}else return Ye&&r.flags&16777216?i_(u):u}function H_(r){var i=Aa(r);return i.type||(i.type=hu(r))}function y_(r){var i=Aa(r);if(!i.type){var t=Ps(r),o=r.declarations&&Ec(ru(r),!0),s=e.firstDefined(o==null?void 0:o.declarations,function(u){return e.isExportAssignment(u)?Rl(u):void 0});i.type=(o==null?void 0:o.declarations)&&z0(o.declarations)&&r.declarations.length?di(o):z0(r.declarations)?nr:s||(t.flags&111551?Jt(t):Pe)}return i.type}function Dd(r){var i=Aa(r);return i.type||(i.type=un(Jt(i.target),i.mapper))}function jp(r){var i=Aa(r);return i.writeType||(i.writeType=un(Vg(i.target),i.mapper))}function lg(r){var i=r.valueDeclaration;return e.getEffectiveTypeAnnotationNode(i)?(Xr(r.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),Pe):(n&&(i.kind!==164||i.initializer)&&Xr(r.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,tn(r)),Oe)}function Om(r){var i=Aa(r);return i.type||(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.type=i.deferralParent.flags&1048576?Pa(i.deferralConstituents):Do(i.deferralConstituents)),i.type}function Fm(r){var i=Aa(r);return!i.writeType&&i.deferralWriteConstituents&&(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.writeType=i.deferralParent.flags&1048576?Pa(i.deferralWriteConstituents):Do(i.deferralWriteConstituents)),i.writeType}function Vg(r){var i=e.getCheckFlags(r);return r.flags&4?i&2?i&65536?Fm(r)||Om(r):r.writeType||r.type:Jt(r):r.flags&98304?i&1?jp(r):yt(r):Jt(r)}function Jt(r){var i=e.getCheckFlags(r);return i&65536?Om(r):i&1?Dd(r):i&262144?J1(r):i&8192?jw(r):r.flags&7?Lc(r):r.flags&9136?vo(r):r.flags&8?H_(r):r.flags&98304?rt(r):r.flags&2097152?y_(r):Pe}function ml(r){return kg(Jt(r),!!(r.flags&16777216))}function Xf(r,i){return r!==void 0&&i!==void 0&&(e.getObjectFlags(r)&4)!==0&&r.target===i}function bd(r){return e.getObjectFlags(r)&4?r.target:r}function lf(r,i){return t(r);function t(o){if(e.getObjectFlags(o)&7){var s=bd(o);return s===i||e.some(Qc(s),t)}else if(o.flags&2097152)return e.some(o.types,t);return!1}}function Kg(r,i){for(var t=0,o=i;t0)return!0;if(r.flags&8650752){var i=uc(r);return!!i&&Wd(i)}return!1}function fg(r){var i=e.getClassLikeDeclarationOfSymbol(r.symbol);return i&&e.getEffectiveBaseTypeNode(i)}function Mm(r,i,t){var o=e.length(i),s=e.isInJSFile(t);return e.filter(ot(r,1),function(u){return(s||o>=Ul(u.typeParameters))&&o<=e.length(u.typeParameters)})}function Xg(r,i,t){var o=Mm(r,i,t),s=e.map(i,Va);return e.sameMap(o,function(u){return e.some(u.typeParameters)?Xm(u,s,e.isInJSFile(t)):u})}function Bl(r){if(!r.resolvedBaseConstructorType){var i=e.getClassLikeDeclarationOfSymbol(r.symbol),t=i&&e.getEffectiveBaseTypeNode(i),o=fg(r);if(!o)return r.resolvedBaseConstructorType=Tr;if(!yu(r,1))return Pe;var s=yn(o.expression);if(t&&o!==t&&(e.Debug.assert(!t.typeArguments),yn(t.expression)),s.flags&2621440&&Ru(s),!fi())return Xr(r.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,tn(r.symbol)),r.resolvedBaseConstructorType=Pe;if(!(s.flags&1)&&s!==ct&&!qd(s)){var u=Xr(o.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,Ot(s));if(s.flags&262144){var h=tm(s),z=gr;if(h){var me=ot(h,1);me[0]&&(z=yo(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,tn(s.symbol),Ot(z)))}return r.resolvedBaseConstructorType=Pe}r.resolvedBaseConstructorType=s}return r.resolvedBaseConstructorType}function Qg(r){var i=e.emptyArray;if(r.symbol.declarations)for(var t=0,o=r.symbol.declarations;t=Dr&&me<=Qr){var li=Qr?mh(pr,zp(z,pr.typeParameters,Dr,h)):xd(pr);li.typeParameters=r.localTypeParameters,li.resolvedReturnType=r,li.flags=s?li.flags|4:li.flags&-5,Me.push(li)}}return Me}function gg(r,i,t,o,s){for(var u=0,h=r;u0)return;for(var o=1;o1&&(t=t===void 0?o:-1);for(var s=0,u=r[o];s1){var Me=h.thisParameter,$e=e.forEach(z,function(Zi){return Zi.thisParameter});if($e){var tr=Do(e.mapDefined(z,function(Zi){return Zi.thisParameter&&Jt(Zi.thisParameter)}));Me=eg($e,tr)}me=Uv(h,z),me.thisParameter=Me}(i||(i=[])).push(me)}}}}if(!e.length(i)&&t!==-1){for(var pr=r[t!==void 0?t:0],Dr=pr.slice(),Qr=function(Zi){if(Zi!==pr){var qt=Zi[0];if(e.Debug.assert(!!qt,"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass"),Dr=!!qt.typeParameters&&e.some(Dr,function(Nt){return!!Nt.typeParameters&&!ah(qt.typeParameters,Nt.typeParameters)})?void 0:e.map(Dr,function(Nt){return M1(Nt,qt)}),!Dr)return"break"}},li=0,Ti=r;li=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||"arg".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,"args");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function M1(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=nh(r,i,o),h=F1(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=1048576,me.compositeSignatures=e.concatenate(r.compositeKind!==2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind!==2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function oh(r){var i=Hn(r[0]);if(i){for(var t=[],o=function(z){var me=z.keyType;e.every(r,function(Me){return!!ss(Me,me)})&&t.push(zl(me,Pa(e.map(r,function(Me){return cs(Me,me)})),e.some(r,function(Me){return ss(Me,me).isReadonly})))},s=0,u=i;s0}),t=e.map(r,Wd);if(i>0&&i===e.countWhere(t,function(s){return s})){var o=t.indexOf(!0);t[o]=!1}return t}function sh(r,i,t,o){for(var s=[],u=0;u0&&(tr=e.map(tr,function(pr){var Dr=xd(pr);return Dr.resolvedReturnType=sh(yo(pr),s,u,Me),Dr})),t=ch(t,tr)}i=ch(i,ot($e,0)),o=e.reduceLeft(Hn($e),function(pr,Dr){return uh(pr,Dr,!1)},o)},me=0;me2?(Qt.checkFlags|=65536,Qt.deferralParent=r,Qt.deferralConstituents=wn,Qt.deferralWriteConstituents=Tn):(Qt.type=me?Pa(wn):Do(wn),Tn&&(Qt.writeType=me?Pa(Tn):Do(Tn))),Qt}}function $v(r,i,t){var o,s,u=((o=r.propertyCacheWithoutObjectFunctionPropertyAugment)===null||o===void 0?void 0:o.get(i))||!t?(s=r.propertyCache)===null||s===void 0?void 0:s.get(i):void 0;if(!u&&(u=Yv(r,i,t),u)){var h=t?r.propertyCacheWithoutObjectFunctionPropertyAugment||(r.propertyCacheWithoutObjectFunctionPropertyAugment=e.createSymbolTable()):r.propertyCache||(r.propertyCache=e.createSymbolTable());h.set(i,u)}return u}function Zv(r,i,t){var o=$v(r,i,t);return o&&!(e.getCheckFlags(o)&16)?o:void 0}function bu(r){return r.flags&1048576&&r.objectFlags&16777216?r.resolvedReducedType||(r.resolvedReducedType=$1(r)):r.flags&2097152?(r.objectFlags&16777216||(r.objectFlags|=16777216|(e.some(em(r),c)?33554432:0)),r.objectFlags&33554432?ui:r):r}function $1(r){var i=e.sameMap(r.types,bu);if(i===r.types)return r;var t=Pa(i);return t.flags&1048576&&(t.resolvedReducedType=t),t}function c(r){return te(r)||xr(r)}function te(r){return!(r.flags&16777216)&&(e.getCheckFlags(r)&131264)===192&&!!(Jt(r).flags&131072)}function xr(r){return!r.valueDeclaration&&!!(e.getCheckFlags(r)&1024)}function ei(r,i){if(i.flags&2097152&&e.getObjectFlags(i)&33554432){var t=e.find(em(i),te);if(t)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents,Ot(i,void 0,536870912),tn(t));var o=e.find(em(i),xr);if(o)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some,Ot(i,void 0,536870912),tn(o))}return r}function bi(r,i,t){if(r=Xd(r),r.flags&524288){var o=Ru(r),s=o.members.get(i);if(s&&gc(s))return s;if(t)return;var u=o===xn?br:o.callSignatures.length?Zr:o.constructSignatures.length?Si:void 0;if(u){var h=h_(u,i);if(h)return h}return h_(qe,i)}if(r.flags&3145728)return Zv(r,i,t)}function Ft(r,i){if(r.flags&3670016){var t=Ru(r);return i===0?t.callSignatures:t.constructSignatures}return e.emptyArray}function ot(r,i){return Ft(Xd(r),i)}function xa(r,i){return e.find(r,function(t){return t.keyType===i})}function mn(r,i){for(var t,o,s,u=0,h=r;u=0),t>=Hl(i,3)}var o=e.getImmediatelyInvokedFunctionExpression(r.parent);return o?!r.type&&!r.dotDotDotToken&&r.parent.parameters.indexOf(r)>=o.arguments.length:!1}function qm(r){return e.isPropertyDeclaration(r)&&r.questionToken}function Vm(r){if(!e.isJSDocPropertyLikeTag(r))return!1;var i=r.isBracketed,t=r.typeExpression;return i||!!t&&t.type.kind===316}function vg(r,i,t,o){return{kind:r,parameterName:i,parameterIndex:t,type:o}}function Ul(r){var i=0;if(r)for(var t=0;t=t&&u<=s){for(var h=r?r.slice():[],z=u;zz.arguments.length&&!Dr||Cd(tr);li||(s=t.length)}if((r.kind===172||r.kind===173)&&Td(r)&&(!h||!u)){var Ti=r.kind===172?173:172,Ci=e.getDeclarationOfKind(Et(r),Ti);Ci&&(u=cr(Ci))}var $i=r.kind===171?aa(so(r.parent.symbol)):void 0,Zi=$i?$i.localTypeParameters:jl(r);(e.hasRestParameter(r)||e.isInJSFile(r)&&ey(r,t))&&(o|=1),(e.isConstructorTypeNode(r)&&e.hasSyntacticModifier(r,128)||e.isConstructorDeclaration(r)&&e.hasSyntacticModifier(r.parent,128))&&(o|=4),i.resolvedSignature=Fu(r,Zi,u,t,void 0,void 0,s,o)}return i.resolvedSignature}function ey(r,i){if(e.isJSDocSignature(r)||!Gm(r))return!1;var t=e.lastOrUndefined(r.parameters),o=t?e.getJSDocParameterTags(t):e.getJSDocTags(r).filter(e.isJSDocParameterTag),s=e.firstDefined(o,function(h){return h.typeExpression&&e.isJSDocVariadicType(h.typeExpression.type)?h.typeExpression.type:void 0}),u=oo(3,"args",32768);return s?u.type=Zs(Va(s.type)):(u.checkFlags|=65536,u.deferralParent=ui,u.deferralConstituents=[mo],u.deferralWriteConstituents=[mo]),s&&i.pop(),i.push(u),!0}function rm(r){if(!!(e.isInJSFile(r)&&e.isFunctionLikeDeclaration(r))){var i=e.getJSDocTypeTag(r);return(i==null?void 0:i.typeExpression)&&ig(Va(i.typeExpression))}}function Km(r,i){var t=rm(r);if(!!t){var o=r.parameters.indexOf(i);return i.dotDotDotToken?ym(t,o):$u(t,o)}}function ry(r){var i=rm(r);return i&&yo(i)}function Gm(r){var i=va(r);return i.containsArgumentsReference===void 0&&(i.flags&8192?i.containsArgumentsReference=!0:i.containsArgumentsReference=t(r.body)),i.containsArgumentsReference;function t(o){if(!o)return!1;switch(o.kind){case 79:return o.escapedText===or.escapedName&&Nv(o)===or;case 167:case 169:case 172:case 173:return o.name.kind===162&&t(o.name);case 206:case 207:return t(o.expression);case 296:return t(o.initializer);default:return!e.nodeStartsNewLexicalEnvironment(o)&&!e.isPartOfTypeNode(o)&&!!e.forEachChild(o,t)}}}function S_(r){if(!r||!r.declarations)return e.emptyArray;for(var i=[],t=0;t0&&o.body){var s=r.declarations[t-1];if(o.parent===s.parent&&o.kind===s.kind&&o.pos===s.end)continue}i.push(yl(o))}}return i}function Hm(r){var i=ac(r,r);if(i){var t=Us(i);if(t)return Jt(t)}return Oe}function T_(r){if(r.thisParameter)return Jt(r.thisParameter)}function Yc(r){if(!r.resolvedTypePredicate){if(r.target){var i=Yc(r.target);r.resolvedTypePredicate=i?FI(i,r.mapper):Ro}else if(r.compositeSignatures)r.resolvedTypePredicate=V3(r.compositeSignatures,r.compositeKind)||Ro;else{var t=r.declaration&&e.getEffectiveReturnTypeNode(r.declaration),o=void 0;if(!t&&e.isInJSFile(r.declaration)){var s=rm(r.declaration);s&&r!==s&&(o=Yc(s))}r.resolvedTypePredicate=t&&e.isTypePredicateNode(t)?gh(t,r):o||Ro}e.Debug.assert(!!r.resolvedTypePredicate)}return r.resolvedTypePredicate===Ro?void 0:r.resolvedTypePredicate}function gh(r,i){var t=r.parameterName,o=r.type&&Va(r.type);return t.kind===192?vg(r.assertsModifier?2:0,void 0,void 0,o):vg(r.assertsModifier?3:1,t.escapedText,e.findIndex(i.parameters,function(s){return s.escapedName===t.escapedText}),o)}function iy(r,i,t){return i!==2097152?Pa(r,t):Do(r)}function yo(r){if(!r.resolvedReturnType){if(!yu(r,3))return Pe;var i=r.target?un(yo(r.target),r.mapper):r.compositeSignatures?un(iy(e.map(r.compositeSignatures,yo),r.compositeKind,2),r.mapper):yg(r.declaration)||(e.nodeIsMissing(r.declaration.body)?Oe:C0(r.declaration));if(r.flags&8?i=FE(i):r.flags&16&&(i=i_(i)),!fi()){if(r.declaration){var t=e.getEffectiveReturnTypeNode(r.declaration);if(t)Xr(t,e.Diagnostics.Return_type_annotation_circularly_references_itself);else if(n){var o=r.declaration,s=e.getNameOfDeclaration(o);s?Xr(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)):Xr(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)}}i=Oe}r.resolvedReturnType=i}return r.resolvedReturnType}function yg(r){if(r.kind===171)return aa(so(r.parent.symbol));if(e.isJSDocConstructSignature(r))return Va(r.parameters[0].type);var i=e.getEffectiveReturnTypeNode(r);if(i)return Va(i);if(r.kind===172&&Td(r)){var t=e.isInJSFile(r)&&K_(r);if(t)return t;var o=e.getDeclarationOfKind(Et(r),173),s=Te(o);if(s)return s}return ry(r)}function Z1(r){return!r.resolvedReturnType&&v(r,3)>=0}function c3(r){return ix(r)||Oe}function ix(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]),t=Yn(i)?sv(i):i;return t&&cs(t,nt)}}function Xm(r,i,t,o){var s=eD(r,zp(i,r.typeParameters,Ul(r.typeParameters),t));if(o){var u=ok(yo(s));if(u){var h=xd(u);h.typeParameters=o;var z=xd(s);return z.resolvedReturnType=im(h),z}}return s}function eD(r,i){var t=r.instantiations||(r.instantiations=new e.Map),o=Su(i),s=t.get(o);return s||t.set(o,s=mh(r,i)),s}function mh(r,i){return Tg(r,u3(r,i),!0)}function u3(r,i){return Uc(r.typeParameters,i)}function Qm(r){return r.typeParameters?r.erasedSignatureCache||(r.erasedSignatureCache=l3(r)):r}function l3(r){return Tg(r,sE(r.typeParameters),!0)}function f3(r){return r.typeParameters?r.canonicalSignatureCache||(r.canonicalSignatureCache=_3(r)):r}function _3(r){return Xm(r,e.map(r.typeParameters,function(i){return i.target&&!Tc(i.target)?i.target:i}),e.isInJSFile(r.declaration))}function p3(r){var i=r.typeParameters;if(i){if(r.baseSignatureCache)return r.baseSignatureCache;for(var t=sE(i),o=Uc(i,e.map(i,function(h){return Tc(h)||gr})),s=e.map(i,function(h){return un(h,o)||gr}),u=0;u1&&(i+=":"+u),o+=u}return i}function hg(r,i){return r?"@".concat(y(r))+(i?":".concat(Su(i)):""):""}function iD(r,i){for(var t=0,o=0,s=r;oo.length)){var me=h&&e.isExpressionWithTypeArguments(r)&&!e.isJSDocAugmentsTag(r.parent),Me=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,$e=Ot(t,void 0,2);if(Xr(r,Me,$e,u,o.length),!h)return Pe}if(r.kind===178&&wx(r,e.length(r.typeArguments)!==o.length))return tD(t,r,void 0);var tr=e.concatenate(t.outerTypeParameters,zp(bh(r),o,u,h));return Yf(t,tr)}return Wp(r,i)?t:Pe}function am(r,i,t,o){var s=go(r);if(s===De&&x.has(r.escapedName)&&i&&i.length===1)return Th(r,i[0]);var u=Aa(r),h=u.typeParameters,z=Su(i)+hg(t,o),me=u.instantiations.get(z);return me||u.instantiations.set(z,me=lE(s,Uc(h,zp(i,h,Ul(h),e.isInJSFile(r.valueDeclaration))),t,o)),me}function d3(r,i){if(e.getCheckFlags(i)&1048576){var t=bh(r),o=hg(i,t),s=Ar.get(o);return s||(s=ms(1,"error"),s.aliasSymbol=i,s.aliasTypeArguments=t,Ar.set(o,s)),s}var u=go(i),h=Aa(i).typeParameters;if(h){var z=e.length(r.typeArguments),me=Ul(h);if(zh.length)return Xr(r,me===h.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,tn(i),me,h.length),Pe;var Me=Qd(r),$e=Me&&(fx(i)||!fx(Me))?Me:void 0;return am(i,bh(r),$e,bg($e))}return Wp(r,i)?u:Pe}function fx(r){var i,t=(i=r.declarations)===null||i===void 0?void 0:i.find(e.isTypeAlias);return!!(t&&e.getContainingFunction(t))}function g3(r){switch(r.kind){case 178:return r.typeName;case 228:var i=r.expression;if(e.isEntityNameExpression(i))return i}}function _x(r){return r.parent?"".concat(_x(r.parent),".").concat(r.escapedName):r.escapedName}function yh(r){var i=r.kind===161?r.right:r.kind===206?r.name:r,t=i.escapedText;if(t){var o=r.kind===161?yh(r.left):r.kind===206?yh(r.expression):void 0,s=o?"".concat(_x(o),".").concat(t):t,u=mr.get(s);return u||(mr.set(s,u=oo(524288,t,1048576)),u.parent=o,u.declaredType=Ue),u}return xe}function nm(r,i,t){var o=g3(r);if(!o)return xe;var s=Ds(o,i,t);return s&&s!==xe?s:t?xe:yh(o)}function hh(r,i){if(i===xe)return Pe;if(i=Cc(i)||i,i.flags&96)return lx(r,i);if(i.flags&524288)return d3(r,i);var t=Vd(i);if(t)return Wp(r,i)?jc(t):Pe;if(i.flags&111551&&Dh(r)){var o=m3(r,i);return o||(nm(r,788968),Jt(i))}return Pe}function m3(r,i){var t=va(r);if(!t.resolvedJSDocType){var o=Jt(i),s=o;if(i.valueDeclaration){var u=r.kind===200&&r.qualifier;o.symbol&&o.symbol!==i&&u&&(s=hh(r,o.symbol))}t.resolvedJSDocType=s}return t.resolvedJSDocType}function px(r,i){if(i.flags&3||i===r)return r;var t="".concat(fu(r),">").concat(fu(i)),o=Ze.get(t);if(o)return o;var s=mc(33554432);return s.baseType=r,s.substitute=i,Ze.set(t,s),s}function dx(r){return r.kind===184&&r.elements.length===1}function gx(r,i,t){return dx(i)&&dx(t)?gx(r,i.elements[0],t.elements[0]):rp(Va(i))===rp(r)?Va(t):void 0}function mx(r,i){for(var t,o=!0;i&&!e.isStatement(i)&&i.kind!==320;){var s=i.parent;if(s.kind===164&&(o=!o),(o||r.flags&8650752)&&s.kind===189&&i===s.trueType){var u=gx(r,s.checkType,s.extendsType);u&&(t=e.append(t,u))}else if(r.flags&262144&&s.kind===195&&i===s.type){var h=Va(s);if(Du(h)===rp(r)){var z=Ih(h);if(z){var u=Tc(z);u&&gf(u,Pd)&&(t=e.append(t,Pa([nt,$a])))}}}i=s}return t?px(r,Do(e.append(t,r))):r}function Dh(r){return!!(r.flags&8388608)&&(r.kind===178||r.kind===200)}function Wp(r,i){return r.typeArguments?(Xr(r,e.Diagnostics.Type_0_is_not_generic,i?tn(i):r.typeName?e.declarationNameToString(r.typeName):C),!1):!0}function vx(r){if(e.isIdentifier(r.typeName)){var i=r.typeArguments;switch(r.typeName.escapedText){case"String":return Wp(r),Li;case"Number":return Wp(r),nt;case"Boolean":return Wp(r),Ii;case"Void":return Wp(r),Fi;case"Undefined":return Wp(r),Tr;case"Null":return Wp(r),Wi;case"Function":case"function":return Wp(r),br;case"array":return(!i||!i.length)&&!n?mo:void 0;case"promise":return(!i||!i.length)&&!n?Ny(Oe):void 0;case"Object":if(i&&i.length===2){if(e.isJSDocIndexSignature(r)){var t=Va(i[0]),o=Va(i[1]),s=t===Li||t===nt?[zl(t,o,!1)]:e.emptyArray;return rs(void 0,we,e.emptyArray,e.emptyArray,s)}return Oe}return Wp(r),n?void 0:Oe}}}function v3(r){var i=Va(r.type);return Ye?Uh(i,65536):i}function ty(r){var i=va(r);if(!i.resolvedType){if(e.isConstTypeReference(r)&&e.isAssertionExpression(r.parent))return i.resolvedSymbol=xe,i.resolvedType=Os(r.parent.expression);var t=void 0,o=void 0,s=788968;Dh(r)&&(o=vx(r),o||(t=nm(r,s,!0),t===xe?t=nm(r,s|111551):nm(r,s),o=hh(r,t))),o||(t=nm(r,s),o=hh(r,t)),i.resolvedSymbol=t,i.resolvedType=o}return i.resolvedType}function bh(r){return e.map(r.typeArguments,Va)}function yx(r){var i=va(r);if(!i.resolvedType){var t=kk(r);i.resolvedType=jc($c(t))}return i.resolvedType}function hx(r,i){function t(s){var u=s.declarations;if(u)for(var h=0,z=u;h=0)return ny(e.map(i,function(Ci,$i){return r.elementFlags[$i]&8?Ci:gr}))?Ss(i[u],function(Ci){return Fx(r,e.replaceElement(i,u,Ci))}):Pe}for(var h=[],z=[],me=[],Me=-1,$e=-1,tr=-1,pr=function(Ci){var $i=i[Ci],Zi=r.elementFlags[Ci];if(Zi&8)if($i.flags&58982400||Bc($i))Ti($i,8,(t=r.labeledElementDeclarations)===null||t===void 0?void 0:t[Ci]);else if(Yn($i)){var qt=xo($i);if(qt.length+h.length>=1e4)return Xr(Ie,e.isPartOfTypeNode(Ie)?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:Pe};e.forEach(qt,function(Nt,Ra){var ca;return Ti(Nt,$i.target.elementFlags[Ra],(ca=$i.target.labeledElementDeclarations)===null||ca===void 0?void 0:ca[Ra])})}else Ti(sp($i)&&cs($i,nt)||Pe,4,(o=r.labeledElementDeclarations)===null||o===void 0?void 0:o[Ci]);else Ti($i,Zi,(s=r.labeledElementDeclarations)===null||s===void 0?void 0:s[Ci])},Dr=0;Dr=0&&$eo.fixedLength?xw(r)||Wl(e.emptyArray):Wl(xo(r).slice(i,s),o.elementFlags.slice(i,s),!1,o.labeledElementDeclarations&&o.labeledElementDeclarations.slice(i,s))}function Mx(r){return Pa(e.append(e.arrayOf(r.target.fixedLength,function(i){return Bu(""+i)}),ql(r.target.readonly?Qi:Pi)))}function Lx(r,i){var t=e.findIndex(r.elementFlags,function(o){return!(o&i)});return t>=0?t:r.elementFlags.length}function Sh(r,i){return r.elementFlags.length-e.findLastIndex(r.elementFlags,function(t){return!(t&i)})-1}function J3(r){return kc(Va(r.type),!0)}function fu(r){return r.id}function $f(r,i){return e.binarySearch(r,i,fu,e.compareValues)>=0}function lD(r,i){var t=e.binarySearch(r,i,fu,e.compareValues);return t<0?(r.splice(~t,0,i),!0):!1}function j3(r,i,t){var o=t.flags;if(o&1048576)return Rx(r,i|(q3(t)?1048576:0),t.types);if(!(o&131072))if(i|=o&205258751,o&465829888&&(i|=33554432),t===Mr&&(i|=8388608),!Ye&&o&98304)e.getObjectFlags(t)&65536||(i|=4194304);else{var s=r.length,u=s&&t.id>r[s-1].id?~s:e.binarySearch(r,t,fu,e.compareValues);u<0&&r.splice(~u,0,t)}return i}function Rx(r,i,t){for(var o=0,s=t;o0;){h--;var me=r[h];if(s||me.flags&469499904)for(var Me=me.flags&61603840?e.find(uo(me),function(Ti){return Vl(Jt(Ti))}):void 0,$e=Me&&jc(Jt(Me)),tr=0,pr=r;tr1e6){e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","removeSubtypes_DepthLimit",{typeIds:r.map(function(Ti){return Ti.id})}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);return}}if(z++,Me&&Dr.flags&61603840){var li=da(Dr,Me.escapedName);if(li&&Vl(li)&&jc(li)!==$e)continue}if(r_(me,Dr,ki)&&(!(e.getObjectFlags(bd(me))&1)||!(e.getObjectFlags(bd(Dr))&1)||xg(me,Dr))){e.orderedRemoveItemAt(r,h);break}}}}return Sr.set(t,r),r}function z3(r,i,t){for(var o=r.length;o>0;){o--;var s=r[o],u=s.flags,h=u&402653312&&i&4||u&256&&i&8||u&2048&&i&64||u&8192&&i&4096||t&&u&32768&&i&16384||Kp(s)&&$f(r,s.regularType);h&&e.orderedRemoveItemAt(r,o)}}function W3(r){var i=e.filter(r,sm);if(i.length)for(var t=r.length,o=function(){t--;var s=r[t];s.flags&128&&e.some(i,function(u){return VE(s,u)})&&e.orderedRemoveItemAt(r,t)};t>0;)o()}function q3(r){return!!(r.flags&1048576&&(r.aliasSymbol||r.origin))}function Bx(r,i){for(var t=0,o=i;t=0&&$f(u,Tr)&&e.orderedRemoveItemAt(u,z)}if((h&402664320||h&16384&&h&32768)&&z3(u,h,!!(i&2)),h&128&&h&134217728&&W3(u),i===2&&(u=U3(u,!!(h&524288)),!u))return Pe;if(u.length===0)return h&65536?h&4194304?Wi:ct:h&32768?h&4194304?Tr:vi:ui}if(!s&&h&1048576){var me=[];Bx(me,r);for(var Me=[],$e=function($i){e.some(me,function(Zi){return $f(Zi.types,$i)})||Me.push($i)},tr=0,pr=u;tr0;){t--;var o=r[t],s=o.flags&4&&i&402653312||o.flags&8&&i&256||o.flags&64&&i&2048||o.flags&4096&&i&8192;s&&e.orderedRemoveItemAt(r,t)}}function X3(r,i){for(var t=0,o=r;t0;){i--;var o=r[i];if(!!(o.flags&134217728))for(var s=0,u=t;s=1e5?(e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","checkCrossProductUnion_DepthLimit",{typeIds:r.map(function(t){return t.id}),size:i}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1):!0}function Z3(r){for(var i=zx(r),t=[],o=0;o=0;h--)if(r[h].flags&1048576){var z=r[h].types,me=z.length;s[h]=z[u%me],u=Math.floor(u/me)}var Me=Do(s);Me.flags&131072||t.push(Me)}return t}function eI(r){var i=va(r);if(!i.resolvedType){var t=Qd(r);i.resolvedType=Do(e.map(r.types,Va),t,bg(t))}return i.resolvedType}function Wx(r,i){var t=mc(4194304);return t.type=r,t.stringsOnly=i,t}function rI(r){var i=Ip(4194304);return i.type=r,i}function dD(r,i){return i?r.resolvedStringIndexType||(r.resolvedStringIndexType=Wx(r,!0)):r.resolvedIndexType||(r.resolvedIndexType=Wx(r,!1))}function iI(r,i,t){var o=Du(r),s=Mu(r),u=Jl(r.target||r);if(!u&&!t)return s;var h=[];if(mg(r)){if(qp(s))return dD(r,i);var z=$s(Ed(r));Um(z,8576,i,Me)}else Od(Kd(s),Me);qp(s)&&Od(s,Me);var me=t?ec(Pa(h),function($e){return!($e.flags&5)}):Pa(h);if(me.flags&1048576&&s.flags&1048576&&Su(me.types)===Su(s.types))return s;return me;function Me($e){var tr=u?un(u,tv(r.mapper,o,$e)):$e;h.push(tr===Li?ji:tr)}}function tI(r){var i=Du(r);return t(Jl(r)||i);function t(o){return o.flags&68157439?!0:o.flags&16777216?o.root.isDistributive&&o.checkType===i:o.flags&137363456?e.every(o.types,t):o.flags&8388608?t(o.objectType)&&t(o.indexType):o.flags&33554432?t(o.substitute):o.flags&268435456?t(o.type):!1}}function Z_(r){return e.isPrivateIdentifier(r)?ui:e.isIdentifier(r)?Bu(e.unescapeLeadingUnderscores(r.escapedText)):jc(e.isComputedPropertyName(r)?t_(r):yn(r))}function om(r,i,t){if(t||!(e.getDeclarationModifierFlagsFromSymbol(r)&24)){var o=Aa(dg(r)).nameType;if(!o){var s=e.getNameOfDeclaration(r.valueDeclaration);o=r.escapedName==="default"?Bu("default"):s&&Z_(s)||(e.isKnownSymbol(r)?void 0:Bu(e.symbolName(r)))}if(o&&o.flags&i)return o}return ui}function qx(r,i){return!!(r.flags&i||r.flags&2097152&&e.some(r.types,function(t){return qx(t,i)}))}function aI(r,i,t){var o=t&&(e.getObjectFlags(r)&7||r.aliasSymbol)?rI(r):void 0,s=e.map(uo(r),function(h){return om(h,i)}),u=e.map(Hn(r),function(h){return h!==Ko&&qx(h.keyType,i)?h.keyType===Li&&i&8?ji:h.keyType:ui});return Pa(e.concatenate(s,u),1,void 0,void 0,o)}function nI(r){return e.some(r.types,function(i){var t=zI(i);return bu(t)!==t})}function ql(r,i,t){return i===void 0&&(i=Ge),r=bu(r),r.flags&1048576?nI(r)?dD(r,i):Do(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&2097152?Pa(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&58982400||lm(r)||Bc(r)&&!tI(r)?dD(r,i):e.getObjectFlags(r)&32?iI(r,i,t):r===Mr?Mr:r.flags&2?ui:r.flags&131073?at:aI(r,(t?128:402653316)|(i?0:12584),i===Ge&&!t)}function Vx(r){if(Ge)return r;var i=I3();return i?am(i,[r,Li]):Li}function oI(r){var i=Vx(ql(r));return i.flags&131072?Li:i}function sI(r){var i=va(r);if(!i.resolvedType)switch(r.operator){case 140:i.resolvedType=ql(Va(r.type));break;case 154:i.resolvedType=r.type.kind===151?CD(e.walkUpParenthesizedTypes(r.parent)):Pe;break;case 145:i.resolvedType=Va(r.type);break;default:throw e.Debug.assertNever(r.operator)}return i.resolvedType}function cI(r){var i=va(r);return i.resolvedType||(i.resolvedType=Dg(Ve([r.head.text],e.map(r.templateSpans,function(t){return t.literal.text}),!0),e.map(r.templateSpans,function(t){return Va(t.type)}))),i.resolvedType}function Dg(r,i){var t=e.findIndex(i,function(Me){return!!(Me.flags&1179648)});if(t>=0)return ny(i)?Ss(i[t],function(Me){return Dg(r,e.replaceElement(i,t,Me))}):Pe;if(e.contains(i,Mr))return Mr;var o=[],s=[],u=r[0];if(!me(r,i))return Li;if(o.length===0)return Bu(u);if(s.push(u),e.every(s,function(Me){return Me===""})&&e.every(o,function(Me){return!!(Me.flags&4)}))return Li;var h="".concat(Su(o),"|").concat(e.map(s,function(Me){return Me.length}).join(","),"|").concat(s.join("")),z=Jr.get(h);return z||Jr.set(h,z=lI(s,o)),z;function me(Me,$e){for(var tr=e.isArray(Me),pr=0;pr<$e.length;pr++){var Dr=$e[pr],Qr=tr?Me[pr+1]:Me;if(Dr.flags&101248){if(u+=uI(Dr)||"",u+=Qr,!tr)return!0}else if(Dr.flags&134217728){if(u+=Dr.texts[0],!me(Dr.texts,Dr.types))return!1;if(u+=Qr,!tr)return!0}else if(qp(Dr)||Gx(Dr))o.push(Dr),s.push(u),u=Qr;else if(Dr.flags&2097152){var li=me(Me[pr+1],Dr.types);if(!li)return!1}else if(tr)return!1}return!0}}function uI(r){return r.flags&128?r.value:r.flags&256?""+r.value:r.flags&2048?e.pseudoBigIntToString(r.value):r.flags&98816?r.intrinsicName:void 0}function lI(r,i){var t=mc(134217728);return t.texts=r,t.types=i,t}function Th(r,i){return i.flags&1179648?Ss(i,function(t){return Th(r,t)}):qp(i)?_I(r,i):i.flags&128?Bu(fI(r,i.value)):i}function fI(r,i){switch(x.get(r.escapedName)){case 0:return i.toUpperCase();case 1:return i.toLowerCase();case 2:return i.charAt(0).toUpperCase()+i.slice(1);case 3:return i.charAt(0).toLowerCase()+i.slice(1)}return i}function _I(r,i){var t="".concat(y(r),",").concat(fu(i)),o=ti.get(t);return o||ti.set(t,o=pI(r,i)),o}function pI(r,i){var t=mc(268435456);return t.symbol=r,t.type=i,t}function dI(r,i,t,o,s){var u=mc(8388608);return u.objectType=r,u.indexType=i,u.accessFlags=t,u.aliasSymbol=o,u.aliasTypeArguments=s,u}function ev(r){if(n)return!1;if(e.getObjectFlags(r)&4096)return!0;if(r.flags&1048576)return e.every(r.types,ev);if(r.flags&2097152)return e.some(r.types,ev);if(r.flags&465829888){var i=Hv(r);return i!==r&&ev(i)}return!1}function gD(r,i){return _f(r)?pf(r):i&&e.isPropertyName(i)?e.getPropertyNameForPropertyNameNode(i):void 0}function mD(r,i){if(i.flags&8208){var t=e.findAncestor(r.parent,function(o){return!e.isAccessExpression(o)})||r.parent;return e.isCallLikeExpression(t)?e.isCallOrNewExpression(t)&&e.isIdentifier(r)&&eC(t,r):e.every(i.declarations,function(o){return!e.isFunctionLike(o)||!!(e.getCombinedNodeFlags(o)&268435456)})}return!0}function Kx(r,i,t,o,s,u){var h,z=s&&s.kind===207?s:void 0,me=s&&e.isPrivateIdentifier(s)?void 0:gD(t,s);if(me!==void 0){if(u&256)return Md(i,me)||Oe;var Me=bi(i,me);if(Me){if(u&64&&s&&Me.declarations&&P_(Me)&&mD(s,Me)){var $e=(h=z==null?void 0:z.argumentExpression)!==null&&h!==void 0?h:e.isIndexedAccessTypeNode(s)?s.indexType:s;El($e,Me.declarations,me)}if(z){if(xy(Me,z,rk(z.expression,i.symbol)),jk(z,Me,e.getAssignmentTargetKind(z))){Xr(z.argumentExpression,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(Me));return}if(u&8&&(va(s).resolvedSymbol=Me),HC(z,Me))return nr}var tr=Jt(Me);return z&&e.getAssignmentTargetKind(z)!==1?up(z,tr):tr}if(gf(i,Yn)&&e.isNumericLiteralName(me)&&+me>=0){if(s&&gf(i,function(Nt){return!Nt.target.hasRestElement})&&!(u&16)){var pr=vD(s);Yn(i)?Xr(pr,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,Ot(i),$_(i),e.unescapeLeadingUnderscores(me)):Xr(pr,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i))}return qt(ss(i,nt)),Ss(i,function(Nt){var Ra=sv(Nt)||Tr;return u&1?Pa([Ra,Tr]):Ra})}}if(!(t.flags&98304)&&Ns(t,402665900)){if(i.flags&131073)return i;var Dr=nu(i,t)||ss(i,Li);if(Dr){if(u&2&&Dr.keyType!==nt){z&&Xr(z,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Ot(t),Ot(r));return}if(s&&Dr.keyType===Li&&!Ns(t,12)){var pr=vD(s);return Xr(pr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t)),u&1?Pa([Dr.type,Tr]):Dr.type}return qt(Dr),u&1?Pa([Dr.type,Tr]):Dr.type}if(t.flags&131072)return ui;if(ev(i))return Oe;if(z&&!uS(i)){if(Qp(i)){if(n&&t.flags&384)return rn.add(e.createDiagnosticForNode(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i))),Tr;if(t.flags&12){var Qr=e.map(i.properties,function(Nt){return Jt(Nt)});return Pa(e.append(Qr,Tr))}}if(i.symbol===pe&&me!==void 0&&pe.exports.has(me)&&pe.exports.get(me).flags&418)Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i));else if(n&&!ye.suppressImplicitAnyIndexErrors&&!(u&128))if(me!==void 0&&$C(me,i)){var li=Ot(i);Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,me,li,li+"["+e.getTextOfNode(z.argumentExpression)+"]")}else if(cs(i,nt))Xr(z.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var Ti=void 0;if(me!==void 0&&(Ti=Vb(me,i)))Ti!==void 0&&Xr(z.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,me,Ot(i),Ti);else{var Ci=$5(i,z,t);if(Ci!==void 0)Xr(z,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,Ot(i),Ci);else{var $i=void 0;if(t.flags&1024)$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+Ot(t)+"]",Ot(i));else if(t.flags&8192){var Zi=cl(t.symbol,z);$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+Zi+"]",Ot(i))}else t.flags&128||t.flags&256?$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i)):t.flags&12&&($i=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,Ot(t),Ot(i)));$i=e.chainDiagnosticMessages($i,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,Ot(o),Ot(i)),rn.add(e.createDiagnosticForNodeFromMessageChain(z,$i))}}}return}}if(ev(i))return Oe;if(s){var pr=vD(s);t.flags&384?Xr(pr,e.Diagnostics.Property_0_does_not_exist_on_type_1,""+t.value,Ot(i)):t.flags&12?Xr(pr,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,Ot(i),Ot(t)):Xr(pr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t))}if(ta(t))return t;return;function qt(Nt){Nt&&Nt.isReadonly&&z&&(e.isAssignmentTarget(z)||e.isDeleteTarget(z))&&Xr(z,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Ot(i))}}function vD(r){return r.kind===207?r.argumentExpression:r.kind===194?r.indexType:r.kind===162?r.expression:r}function Gx(r){return!!(r.flags&77)}function sm(r){return!!(r.flags&134217728)&&e.every(r.types,Gx)}function rv(r){return!!iv(r)}function Ad(r){return!!(iv(r)&4194304)}function qp(r){return!!(iv(r)&8388608)}function iv(r){return r.flags&3145728?(r.objectFlags&2097152||(r.objectFlags|=2097152|e.reduceLeft(r.types,function(i,t){return i|iv(t)},0)),r.objectFlags&12582912):r.flags&33554432?(r.objectFlags&2097152||(r.objectFlags|=2097152|iv(r.substitute)|iv(r.baseType)),r.objectFlags&12582912):(r.flags&58982400||Bc(r)||lm(r)?4194304:0)|(r.flags&465829888&&!sm(r)?8388608:0)}function Zf(r,i){return r.flags&8388608?mI(r,i):r.flags&16777216?vI(r,i):r}function Hx(r,i,t){if(r.flags&3145728){var o=e.map(r.types,function(s){return Zf(Jc(s,i),t)});return r.flags&2097152||t?Do(o):Pa(o)}}function gI(r,i,t){if(i.flags&1048576){var o=e.map(i.types,function(s){return Zf(Jc(r,s),t)});return t?Do(o):Pa(o)}}function mI(r,i){var t=i?"simplifiedForWriting":"simplifiedForReading";if(r[t])return r[t]===Pn?r:r[t];r[t]=Pn;var o=Zf(r.objectType,i),s=Zf(r.indexType,i),u=gI(o,s,i);if(u)return r[t]=u;if(!(s.flags&465829888)){var h=Hx(o,s,i);if(h)return r[t]=h}if(lm(o)&&s.flags&296){var z=jh(o,s.flags&8?0:o.target.fixedLength,0,i);if(z)return r[t]=z}if(Bc(o)){var me=Jl(o);if(!me||ao(me,Du(o)))return r[t]=Ss(xh(o,r.indexType),function(Me){return Zf(Me,i)})}return r[t]=r}function vI(r,i){var t=r.checkType,o=r.extendsType,s=ip(r),u=tp(r);if(u.flags&131072&&rp(s)===rp(t)){if(t.flags&1||ao(Nd(t),Nd(o)))return Zf(s,i);if(Xx(t,o))return ui}else if(s.flags&131072&&rp(u)===rp(t)){if(!(t.flags&1)&&ao(Nd(t),Nd(o)))return ui;if(t.flags&1||Xx(t,o))return Zf(u,i)}return r}function Xx(r,i){return!!(Pa([Zg(r,i),ui]).flags&131072)}function xh(r,i){var t=Uc([Du(r)],[i]),o=np(r.mapper,t);return un(vl(r),o)}function Jc(r,i,t,o,s,u){return t===void 0&&(t=0),ep(r,i,t,o,s,u)||(o?Pe:gr)}function Qx(r,i){return gf(r,function(t){if(t.flags&384){var o=pf(t);if(e.isNumericLiteralName(o)){var s=+o;return s>=0&&s=i?gr:t})}function np(r,i){return r?Nh(3,r,i):i}function wI(r,i){return r?Nh(4,r,i):i}function $d(r,i,t){return t?Nh(4,Yd(r,i),t):Yd(r,i)}function tv(r,i,t){return r?Nh(4,r,Yd(i,t)):Yd(i,t)}function OI(r){return r.constraint===gr?r:r.restrictiveInstantiation||(r.restrictiveInstantiation=Hc(r.symbol),r.restrictiveInstantiation.constraint=gr,r.restrictiveInstantiation)}function kD(r){var i=Hc(r.symbol);return i.target=r,i}function FI(r,i){return vg(r.kind,r.parameterName,r.parameterIndex,un(r.type,i))}function Tg(r,i,t){var o;if(r.typeParameters&&!t){o=e.map(r.typeParameters,kD),i=np(Uc(r.typeParameters,o),i);for(var s=0,u=o;s=5e6)return e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","instantiateType_DepthLimit",{typeId:r.id,instantiationDepth:He,instantiationCount:Ee}),Xr(Ie,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),Pe;ze++,Ee++,He++;var s=jI(r,i,t,o);return He--,s}function jI(r,i,t,o){var s=r.flags;if(s&262144)return ap(r,i);if(s&524288){var u=r.objectFlags;if(u&52){if(u&4&&!r.node){var h=r.resolvedTypeArguments,z=e_(h,i);return z!==h?uD(r.target,z):r}return u&1024?UI(r,i):MI(r,i,t,o)}return r}if(s&3145728){var me=r.flags&1048576?r.origin:void 0,Me=me&&me.flags&3145728?me.types:r.types,$e=e_(Me,i);if($e===Me&&t===r.aliasSymbol)return r;var tr=t||r.aliasSymbol,pr=t?o:e_(r.aliasTypeArguments,i);return s&2097152||me&&me.flags&2097152?Do($e,tr,pr):Pa($e,1,tr,pr)}if(s&4194304)return ql(un(r.type,i));if(s&134217728)return Dg(r.texts,e_(r.types,i));if(s&268435456)return Th(r.symbol,un(r.type,i));if(s&8388608){var tr=t||r.aliasSymbol,pr=t?o:e_(r.aliasTypeArguments,i);return Jc(un(r.objectType,i),un(r.indexType,i),r.accessFlags,void 0,tr,pr)}if(s&16777216)return ID(r,np(r.mapper,i),t,o);if(s&33554432){var Dr=un(r.baseType,i);if(Dr.flags&8650752)return px(Dr,un(r.substitute,i));var Qr=un(r.substitute,i);return Qr.flags&3||ao(Nd(Dr),Nd(Qr))?Dr:Qr}return r}function UI(r,i){var t=un(r.mappedType,i);if(!(e.getObjectFlags(t)&32))return r;var o=un(r.constraintType,i);if(!(o.flags&4194304))return r;var s=UE(un(r.source,i),t,o);return s||r}function zI(r){return r.flags&262143?r:r.uniqueLiteralFilledInstantiation||(r.uniqueLiteralFilledInstantiation=un(r,ka))}function wh(r){return r.flags&262143?r:r.permissiveInstantiation||(r.permissiveInstantiation=un(r,ai))}function Nd(r){return r.flags&262143?r:(r.restrictiveInstantiation||(r.restrictiveInstantiation=un(r,Qa),r.restrictiveInstantiation.restrictiveInstantiation=r.restrictiveInstantiation),r.restrictiveInstantiation)}function WI(r,i){return zl(r.keyType,un(r.type,i),r.isReadonly,r.declaration)}function Ju(r){switch(e.Debug.assert(r.kind!==169||e.isObjectLiteralMethod(r)),r.kind){case 213:case 214:case 169:case 256:return fE(r);case 205:return e.some(r.properties,Ju);case 204:return e.some(r.elements,Ju);case 222:return Ju(r.whenTrue)||Ju(r.whenFalse);case 221:return(r.operatorToken.kind===56||r.operatorToken.kind===60)&&(Ju(r.left)||Ju(r.right));case 296:return Ju(r.initializer);case 212:return Ju(r.expression);case 286:return e.some(r.properties,Ju)||e.isJsxOpeningElement(r.parent)&&e.some(r.parent.parent.children,Ju);case 285:{var i=r.initializer;return!!i&&Ju(i)}case 288:{var t=r.expression;return!!t&&Ju(t)}}return!1}function fE(r){return(!e.isFunctionDeclaration(r)||e.isInJSFile(r)&&!!K_(r))&&(e.hasContextSensitiveParameters(r)||qI(r))}function qI(r){return!r.typeParameters&&!e.getEffectiveReturnTypeNode(r)&&!!r.body&&r.body.kind!==235&&Ju(r.body)}function wD(r){return(e.isInJSFile(r)&&e.isFunctionDeclaration(r)||e.isFunctionExpressionOrArrowFunction(r)||e.isObjectLiteralMethod(r))&&fE(r)}function _E(r){if(r.flags&524288){var i=Ru(r);if(i.constructSignatures.length||i.callSignatures.length){var t=tu(16,r.symbol);return t.members=i.members,t.properties=i.properties,t.callSignatures=e.emptyArray,t.constructSignatures=e.emptyArray,t.indexInfos=e.emptyArray,t}}else if(r.flags&2097152)return Do(e.map(r.types,_E));return r}function wf(r,i){return r_(r,i,Oa)}function av(r,i){return r_(r,i,Oa)?-1:0}function OD(r,i){return r_(r,i,dt)?-1:0}function VI(r,i){return r_(r,i,Or)?-1:0}function E_(r,i){return r_(r,i,Or)}function ao(r,i){return r_(r,i,dt)}function xg(r,i){return r.flags&1048576?e.every(r.types,function(t){return xg(t,i)}):i.flags&1048576?e.some(i.types,function(t){return xg(r,t)}):r.flags&58982400?xg(uc(r)||gr,i):i===qe?!!(r.flags&67633152):i===br?!!(r.flags&524288)&&db(r):lf(r,bd(i))||Tu(i)&&!um(i)&&xg(r,Qi)}function cm(r,i){return r_(r,i,la)}function Oh(r,i){return cm(r,i)||cm(i,r)}function zc(r,i,t,o,s,u){return hl(r,i,dt,t,o,s,u)}function op(r,i,t,o,s,u){return FD(r,i,dt,t,o,s,u,void 0)}function FD(r,i,t,o,s,u,h,z){return r_(r,i,t)?!0:!o||!cy(s,r,i,t,u,h,z)?hl(r,i,t,o,u,h,z):!1}function pE(r){return!!(r.flags&16777216||r.flags&2097152&&e.some(r.types,pE))}function cy(r,i,t,o,s,u,h){if(!r||pE(t))return!1;if(!hl(i,t,o,void 0)&&KI(r,i,t,o,s,u,h))return!0;switch(r.kind){case 288:case 212:return cy(r.expression,i,t,o,s,u,h);case 221:switch(r.operatorToken.kind){case 63:case 27:return cy(r.right,i,t,o,s,u,h)}break;case 205:return rw(r,i,t,o,u,h);case 204:return ZI(r,i,t,o,u,h);case 286:return $I(r,i,t,o,u,h);case 214:return GI(r,i,t,o,u,h)}return!1}function KI(r,i,t,o,s,u,h){for(var z=ot(i,0),me=ot(i,1),Me=0,$e=[me,z];Me<$e.length;Me++){var tr=$e[Me];if(e.some(tr,function(Qr){var li=yo(Qr);return!(li.flags&131073)&&hl(li,t,o,void 0)})){var pr=h||{};zc(i,t,r,s,u,pr);var Dr=pr.errors[pr.errors.length-1];return e.addRelatedInfo(Dr,e.createDiagnosticForNode(r,tr===me?e.Diagnostics.Did_you_mean_to_use_new_with_this_expression:e.Diagnostics.Did_you_mean_to_call_this_expression)),!0}}return!1}function GI(r,i,t,o,s,u){if(e.isBlock(r.body)||e.some(r.parameters,e.hasType))return!1;var h=ig(i);if(!h)return!1;var z=ot(t,0);if(!e.length(z))return!1;var me=r.body,Me=yo(h),$e=Pa(e.map(z,yo));if(!hl(Me,$e,o,void 0)){var tr=me&&cy(me,Me,$e,o,void 0,s,u);if(tr)return tr;var pr=u||{};if(hl(Me,$e,o,me,void 0,s,pr),pr.errors)return t.symbol&&e.length(t.symbol.declarations)&&e.addRelatedInfo(pr.errors[pr.errors.length-1],e.createDiagnosticForNode(t.symbol.declarations[0],e.Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature)),(e.getFunctionFlags(r)&2)===0&&!da(Me,"then")&&hl(Ny(Me),$e,o,void 0)&&e.addRelatedInfo(pr.errors[pr.errors.length-1],e.createDiagnosticForNode(r,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async)),!0}return!1}function HI(r,i,t){var o=ep(i,t);if(o)return o;if(i.flags&1048576){var s=bE(r,i);if(s)return ep(s,t)}}function XI(r,i){r.contextualType=i;try{return Dm(r,1,i)}finally{r.contextualType=void 0}}function nv(r,i,t,o,s,u){for(var h=!1,z=r.next();!z.done;z=r.next()){var me=z.value,Me=me.errorNode,$e=me.innerExpression,tr=me.nameType,pr=me.errorMessage,Dr=HI(i,t,tr);if(!(!Dr||Dr.flags&8388608)){var Qr=ep(i,tr);if(!!Qr){var li=gD(tr,void 0);if(!hl(Qr,Dr,o,void 0)){var Ti=$e&&cy($e,Qr,Dr,o,void 0,s,u);if(h=!0,!Ti){var Ci=u||{},$i=$e?XI($e,Qr):Qr;if(yr&&jD($i,Dr)){var Zi=e.createDiagnosticForNode(Me,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target,Ot($i),Ot(Dr));rn.add(Zi),Ci.errors=[Zi]}else{var qt=!!(li&&(bi(t,li)||xe).flags&16777216),Nt=!!(li&&(bi(i,li)||xe).flags&16777216);Dr=kg(Dr,qt),Qr=kg(Qr,qt&&Nt);var Ra=hl($i,Dr,o,Me,pr,s,Ci);Ra&&$i!==Qr&&hl(Qr,Dr,o,Me,pr,s,Ci)}if(Ci.errors){var ca=Ci.errors[Ci.errors.length-1],Sn=_f(tr)?pf(tr):void 0,ja=Sn!==void 0?bi(t,Sn):void 0,Fn=!1;if(!ja){var wn=nu(t,tr);wn&&wn.declaration&&!e.getSourceFileOfNode(wn.declaration).hasNoDefaultLib&&(Fn=!0,e.addRelatedInfo(ca,e.createDiagnosticForNode(wn.declaration,e.Diagnostics.The_expected_type_comes_from_this_index_signature)))}if(!Fn&&(ja&&e.length(ja.declarations)||t.symbol&&e.length(t.symbol.declarations))){var Tn=ja&&e.length(ja.declarations)?ja.declarations[0]:t.symbol.declarations[0];e.getSourceFileOfNode(Tn).hasNoDefaultLib||e.addRelatedInfo(ca,e.createDiagnosticForNode(Tn,e.Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,Sn&&!(tr.flags&8192)?e.unescapeLeadingUnderscores(Sn):Ot(tr),Ot(t)))}}}}}}}return h}function QI(r){var i,t,o;return kr(this,function(s){switch(s.label){case 0:if(!e.length(r.properties))return[2];i=0,t=r.properties,s.label=1;case 1:return i1,li=ec(pr,AE),Ti=ec(pr,function(ca){return!AE(ca)});if(Qr){if(li!==ui){var Ci=Wl(f0(me,0)),$i=YI(me,Ra);h=nv($i,Ci,li,o,s,u)||h}else if(!r_(Jc(i,tr),pr,o)){h=!0;var Zi=Xr(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,$e,Ot(pr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}else if(Ti!==ui){var qt=Dr[0],Nt=dE(qt,tr,Ra);Nt&&(h=nv(function(){return kr(this,function(ca){switch(ca.label){case 0:return[4,Nt];case 1:return ca.sent(),[2]}})}(),i,t,o,s,u)||h)}else if(!r_(Jc(i,tr),pr,o)){h=!0;var Zi=Xr(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,$e,Ot(pr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}return h;function Ra(){if(!z){var ca=e.getTextOfNode(r.parent.tagName),Sn=_0(Og(r)),ja=Sn===void 0?"children":e.unescapeLeadingUnderscores(Sn),Fn=Jc(t,Bu(ja)),wn=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;z=Ke(Ke({},wn),{key:"!!ALREADY FORMATTED!!",message:e.formatMessage(void 0,wn,ca,ja,Ot(Fn))})}return z}}function gE(r,i){var t,o,s,u;return kr(this,function(h){switch(h.label){case 0:if(t=e.length(r.elements),!t)return[2];o=0,h.label=1;case 1:return ome:Hl(r)>me);if(Me)return 0;r.typeParameters&&r.typeParameters!==i.typeParameters&&(i=f3(i),r=sk(r,i,void 0,h));var $e=Wc(r),tr=yv(r),pr=yv(i);(tr||pr)&&un(tr||pr,z);var Dr=i.declaration?i.declaration.kind:0,Qr=!(t&3)&&Br&&Dr!==169&&Dr!==168&&Dr!==171,li=-1,Ti=T_(r);if(Ti&&Ti!==Fi){var Ci=T_(i);if(Ci){var $i=!Qr&&h(Ti,Ci,!1)||h(Ci,Ti,o);if(!$i)return o&&s(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;li&=$i}}for(var Zi=tr||pr?Math.min($e,me):Math.max($e,me),qt=tr||pr?Zi-1:-1,Nt=0;Nt=Hl(r)&&Nt0||RS(vt)),qn=!!(e.getObjectFlags(vt)&2048);if(gn&&!sw(vt,ht,qn)){if(mt){var zo=Ot($r.aliasSymbol?$r:vt),us=Ot(hi.aliasSymbol?hi:ht),Bo=ot(vt,0),Io=ot(vt,1);Bo.length>0&&oa(yo(Bo[0]),ht,1,!1)||Io.length>0&&oa(yo(Io[0]),ht,1,!1)?Yt(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,zo,us):Yt(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,zo,us)}return 0}Ln(vt,ht);var Qo=vt.flags&1048576&&vt.types.length<4&&!(ht.flags&1048576)||ht.flags&1048576&&ht.types.length<4&&!(vt.flags&469499904),ls=Qo?Lt(vt,ht,mt,Ht):_t(vt,ht,mt,Ht,Ri);if(ls&&!qt&&(ht.flags&2097152&&(An||gn)||bD(ht)&&!Pd(ht)&&vt.flags&2097152&&$s(vt).flags&3670016&&!e.some(vt.types,function(gi){return!!(e.getObjectFlags(gi)&262144)}))&&(qt=!0,ls&=_t(vt,ht,mt,4,Ri),qt=!1),ls)return ls}return mt&&Mn($r,hi,vt,ht,ft),0}function Mn($r,hi,Ri,mt,ft){var Ht=!!GD($r),vt=!!GD(hi);Ri=$r.aliasSymbol||Ht?$r:Ri,mt=hi.aliasSymbol||vt?hi:mt;var ht=Ci>0;if(ht&&Ci--,Ri.flags&524288&&mt.flags&524288){var ma=z;cn(Ri,mt,!0),z!==ma&&(ht=!!z)}if(Ri.flags&524288&&mt.flags&131068)Ka(Ri,mt);else if(Ri.symbol&&Ri.flags&524288&&qe===Ri)Yt(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(e.getObjectFlags(Ri)&2048&&mt.flags&2097152){var Ca=mt.types,An=Zp(U.IntrinsicAttributes,o),gn=Zp(U.IntrinsicClassAttributes,o);if(!nn(An)&&!nn(gn)&&(e.contains(Ca,An)||e.contains(Ca,gn)))return}else z=ei(z,hi);if(!ft&&ht){$i=[Ri,mt];return}Qt(ft,Ri,mt)}function Ln($r,hi){if(!!e.tracing&&$r.flags&3145728&&hi.flags&3145728){var Ri=$r,mt=hi;if(Ri.objectFlags&mt.objectFlags&32768)return;var ft=Ri.types.length,Ht=mt.types.length;ft*Ht>1e6&&e.tracing.instant("checkTypes","traceUnionsOrIntersectionsTooLarge_DepthLimit",{sourceId:$r.id,sourceSize:ft,targetId:hi.id,targetSize:Ht,pos:o==null?void 0:o.pos,end:o==null?void 0:o.end})}}function ci($r,hi){var Ri=function(mt,ft){var Ht;ft=$s(ft);var vt=ft.flags&3145728?Zv(ft,hi):h_(ft,hi),ht=vt&&Jt(vt)||((Ht=Xo(ft,hi))===null||Ht===void 0?void 0:Ht.type)||Tr;return e.append(mt,ht)};return Pa(e.reduceLeft($r,Ri,void 0)||e.emptyArray)}function Fr($r,hi,Ri){var mt;if(!Sy(hi)||!n&&e.getObjectFlags(hi)&4096)return!1;var ft=!!(e.getObjectFlags($r)&2048);if((t===dt||t===la)&&(dy(qe,hi)||!ft&&Of(hi)))return!1;var Ht=hi,vt;hi.flags&1048576&&(Ht=bA($r,hi,oa)||kL(hi),vt=Ht.flags&1048576?Ht.types:[Ht]);for(var ht=function(qn){if(jt(qn,$r.symbol)&&!hE($r,qn)){if(!Rb(Ht,qn.escapedName,ft)){if(Ri){var zo=ec(Ht,Sy);if(!o)return{value:e.Debug.fail()};if(e.isJsxAttributes(o)||e.isJsxOpeningLikeElement(o)||e.isJsxOpeningLikeElement(o.parent)){qn.valueDeclaration&&e.isJsxAttribute(qn.valueDeclaration)&&e.getSourceFileOfNode(o)===e.getSourceFileOfNode(qn.valueDeclaration.name)&&(o=qn.valueDeclaration.name);var us=tn(qn),Bo=ek(us,zo),Io=Bo?tn(Bo):void 0;Io?Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,us,Ot(zo),Io):Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1,us,Ot(zo))}else{var Qo=((mt=$r.symbol)===null||mt===void 0?void 0:mt.declarations)&&e.firstOrUndefined($r.symbol.declarations),Io=void 0;if(qn.valueDeclaration&&e.findAncestor(qn.valueDeclaration,function(La){return La===Qo})&&e.getSourceFileOfNode(Qo)===e.getSourceFileOfNode(o)){var ls=qn.valueDeclaration;e.Debug.assertNode(ls,e.isObjectLiteralElementLike),o=ls;var gi=ls.name;e.isIdentifier(gi)&&(Io=Vb(gi,zo))}Io!==void 0?Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,tn(qn),Ot(zo),Io):Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,tn(qn),Ot(zo))}}return{value:!0}}if(vt&&!oa(Jt(qn),ci(vt,qn.escapedName),3,Ri))return Ri&<(e.Diagnostics.Types_of_property_0_are_incompatible,tn(qn)),{value:!0}}},ma=0,Ca=uo($r);ma=vt.types.length&&Ht.length%vt.types.length===0){var Ca=oa(ma,vt.types[ht%vt.types.length],3,!1,void 0,mt);if(Ca){ft&=Ca;continue}}var An=oa(ma,hi,1,Ri,void 0,mt);if(!An)return 0;ft&=An}return ft}function Hi($r,hi,Ri,mt,ft){if($r===void 0&&($r=e.emptyArray),hi===void 0&&(hi=e.emptyArray),Ri===void 0&&(Ri=e.emptyArray),$r.length!==hi.length&&t===Oa)return 0;for(var Ht=$r.length<=hi.length?$r.length:hi.length,vt=-1,ht=0;ht25)return e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","typeRelatedToDiscriminatedType_DepthLimit",{sourceId:$r.id,targetId:hi.id,numCombinations:ft}),0}for(var ma=new Array(mt.length),Ca=new e.Set,An=0;An5?Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,Ot($r),Ot(hi),e.map(Ca.slice(0,4),function(gn){return tn(gn)}).join(", "),Ca.length-4):Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,Ot($r),Ot(hi),e.map(Ca,function(gn){return tn(gn)}).join(", ")),ft&&z&&Ci++)}function Uo($r,hi,Ri,mt,ft){if(t===Oa)return Rs($r,hi,mt);var Ht=-1;if(Yn(hi)){if(Pd($r)){if(!hi.target.readonly&&(um($r)||Yn($r)&&$r.target.readonly))return 0;var vt=$_($r),ht=$_(hi),ma=Yn($r)?$r.target.combinedFlags&4:4,Ca=hi.target.combinedFlags&4,An=Yn($r)?$r.target.minLength:0,gn=hi.target.minLength;if(!ma&&vt=ht-Bo)?$r.target.elementFlags[ls]:4,zt=hi.target.elementFlags[Qo];if(zt&8&&!(gi&8))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target,Qo),0;if(gi&8&&!(zt&12))return Ri&&Yt(e.Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target,ls,Qo),0;if(zt&1&&!(gi&1))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target,Qo),0;if(!(Io&&((gi&12||zt&12)&&(Io=!1),Io&&(mt==null?void 0:mt.has(""+Qo))))){var La=Yn($r)?Qo=ht-Bo?kg(qn[ls],!!(gi&zt&2)):jh($r,us,Bo)||ui:qn[0],fa=zo[Qo],ya=gi&8&&zt&4?Zs(fa):kg(fa,!!(zt&2)),Nn=oa(La,ya,3,Ri,void 0,ft);if(!Nn)return Ri&&(ht>1||vt>1)&&(Qo=ht-Bo||vt-us-Bo===1?lt(e.Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,ls,Qo):lt(e.Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,us,vt-Bo-1,Qo)),0;Ht&=Nn}}return Ht}if(hi.target.combinedFlags&12)return 0}var fn=(t===Or||t===ki)&&!Qp($r)&&!Jh($r)&&!Yn($r),hn=cb($r,hi,fn,!1);if(hn)return Ri&&rc($r,hi)&&Po($r,hi,hn,fn),0;if(Qp(hi))for(var sn=0,ln=Ga(uo($r),mt);sn0&&e.every(i.properties,function(t){return!!(t.flags&16777216)})}return r.flags&2097152?e.every(r.types,SE):!1}function sw(r,i,t){for(var o=0,s=uo(r);o";continue}tr+="-"+Qr.id}return tr}}function qD(r,i,t,o,s){if(o===Oa&&r.id>i.id){var u=r;r=i,i=u}var h=t?":"+t:"";return Mh(r)&&Mh(i)?fw(r,i,h,s):"".concat(r.id,",").concat(i.id).concat(h)}function fy(r,i){if(e.getCheckFlags(r)&6){for(var t=0,o=r.containingType.types;t=o)for(var s=ov(r),u=0,h=0,z=0;z=h&&(u++,u>=o))return!0;h=me.id}}return!1}function ov(r){if(r.flags&524288&&!lb(r)){if(e.getObjectFlags(r)&&4&&r.node)return r.node;if(r.symbol&&!(e.getObjectFlags(r)&16&&r.symbol.flags&32))return r.symbol;if(Yn(r))return r.target}if(r.flags&262144)return r.symbol;if(r.flags&8388608){do r=r.objectType;while(r.flags&8388608);return r}return r.flags&16777216?r.root:r}function dw(r,i){return VD(r,i,av)!==0}function VD(r,i,t){if(r===i)return-1;var o=e.getDeclarationModifierFlagsFromSymbol(r)&24,s=e.getDeclarationModifierFlagsFromSymbol(i)&24;if(o!==s)return 0;if(o){if(jg(r)!==jg(i))return 0}else if((r.flags&16777216)!==(i.flags&16777216))return 0;return Zu(r)!==Zu(i)?0:t(Jt(r),Jt(i))}function gw(r,i,t){var o=Wc(r),s=Wc(i),u=Hl(r),h=Hl(i),z=Xl(r),me=Xl(i);return!!(o===s&&u===h&&z===me||t&&u<=h)}function _y(r,i,t,o,s,u){if(r===i)return-1;if(!gw(r,i,t)||e.length(r.typeParameters)!==e.length(i.typeParameters))return 0;if(i.typeParameters){for(var h=Uc(r.typeParameters,i.typeParameters),z=0;ze.length(i.typeParameters)&&(s=Rc(s,e.last(xo(r)))),r.objectFlags|=67108864,r.cachedEquivalentBaseType=s}}}function kE(r){return Ye?r===na:r===vi}function Jh(r){var i=KD(r);return!!i&&kE(i)}function Eg(r){return Yn(r)||!!bi(r,"0")}function AE(r){return sp(r)||Eg(r)}function Dw(r,i){var t=da(r,""+i);if(t)return t;if(gf(r,Yn))return Ss(r,function(o){return sv(o)||Tr})}function bw(r){return!(r.flags&240512)}function Vl(r){return!!(r.flags&109440)}function NE(r){return r.flags&2097152?e.some(r.types,Vl):!!(r.flags&109440)}function Sw(r){return r.flags&2097152&&e.find(r.types,Vl)||r}function Cg(r){return r.flags&16?!0:r.flags&1048576?r.flags&1024?!0:e.every(r.types,Vl):Vl(r)}function Kl(r){return r.flags&1024?cc(r):r.flags&402653312?Li:r.flags&256?nt:r.flags&2048?Mt:r.flags&512?Ii:r.flags&1048576?Ss(r,Kl):r}function Hp(r){return r.flags&1024&&Kp(r)?cc(r):r.flags&128&&Kp(r)?Li:r.flags&256&&Kp(r)?nt:r.flags&2048&&Kp(r)?Mt:r.flags&512&&Kp(r)?Ii:r.flags&1048576?Ss(r,Hp):r}function PE(r){return r.flags&8192?Ki:r.flags&1048576?Ss(r,PE):r}function HD(r,i){return N0(r,i)||(r=PE(Hp(r))),r}function Tw(r,i,t){if(r&&Vl(r)){var o=i?t?Tv(i):i:void 0;r=HD(r,o)}return r}function XD(r,i,t,o){if(r&&Vl(r)){var s=i?Jg(t,i,o):void 0;r=HD(r,s)}return r}function Yn(r){return!!(e.getObjectFlags(r)&4&&r.target.objectFlags&8)}function lm(r){return Yn(r)&&!!(r.target.combinedFlags&8)}function IE(r){return lm(r)&&r.target.elementFlags.length===1}function sv(r){return jh(r,r.target.fixedLength)}function xw(r){var i=sv(r);return i&&Zs(i)}function jh(r,i,t,o){t===void 0&&(t=0),o===void 0&&(o=!1);var s=$_(r)-t;if(i-1&&(es(u,u.name.escapedText,788968,void 0,u.name.escapedText,!0)||u.name.originalKeywordKind&&e.isTypeNodeKind(u.name.originalKeywordKind))){var h="arg"+u.parent.parameters.indexOf(u),z=e.declarationNameToString(u.name)+(u.dotDotDotToken?"[]":"");Ic(n,r,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,h,z);return}s=r.dotDotDotToken?n?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:n?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 203:if(s=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!n)return;break;case 317:Xr(r,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return;case 256:case 169:case 168:case 172:case 173:case 213:case 214:if(n&&!r.name){t===3?Xr(r,e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation,o):Xr(r,e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return}s=n?t===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 195:n&&Xr(r,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type);return;default:s=n?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}Ic(n,r,s,e.declarationNameToString(e.getNameOfDeclaration(r)),o)}}function Kh(r,i,t){fe(function(){n&&e.getObjectFlags(i)&65536&&(!t||!Pb(r))&&(Vh(i)||Xp(r,i,t))})}function eb(r,i,t){var o=Wc(r),s=Wc(i),u=vv(r),h=vv(i),z=h?s-1:s,me=u?z:Math.min(o,z),Me=T_(r);if(Me){var $e=T_(i);$e&&t(Me,$e)}for(var tr=0;trr.target.minLength||!i.target.hasRestElement&&(r.target.hasRestElement||i.target.fixedLength0){for(var Ti=pr,Ci=Dr;Ci=$i(Ti).indexOf(li,Ci),!(Ci>=0);){if(Ti++,Ti===r.length)return;Ci=0}Zi(Ti,Ci),Dr+=li.length}else if(Dr<$i(pr).length)Zi(pr,Dr+1);else if(pr0)for(var $t=0,Ua=it;$t1){var i=e.filter(r,lb);if(i.length){var t=Pa(i,2);return e.concatenate(e.filter(r,function(o){return!lb(o)}),[t])}}return r}function Yw(r){return r.priority&416?Do(r.contraCandidates):hw(r.contraCandidates)}function $w(r,i){var t=Qw(r.candidates),o=Xw(r.typeParameter),s=!o&&r.topLevel&&(r.isFixed||!nb(yo(i),r.typeParameter)),u=o?e.sameMap(t,jc):s?e.sameMap(t,Hp):t,h=r.priority&416?Pa(u,2):yw(u);return $c(h)}function GE(r,i){var t=r.inferences[i];if(!t.inferredType){var o=void 0,s=r.signature;if(s){var u=t.candidates?$w(t,s):void 0;if(t.contraCandidates)o=u&&!(u.flags&131072)&&e.some(t.contraCandidates,function(Me){return E_(u,Me)})?u:Yw(t);else if(u)o=u;else if(r.flags&1)o=Bt;else{var h=D_(t.typeParameter);h&&(o=un(h,wI(II(r,i),r.nonFixingMapper)))}}else o=zE(t);t.inferredType=o||fb(!!(r.flags&2));var z=Tc(t.typeParameter);if(z){var me=un(z,r.nonFixingMapper);(!o||!r.compareTypes(o,Rc(me,o)))&&(t.inferredType=o=me)}}return t.inferredType}function fb(r){return r?Oe:gr}function _b(r){for(var i=[],t=0;t=10&&o*2>=r.length?t:void 0}function Qh(r){var i=r.types;if(!(i.length<10||e.getObjectFlags(r)&32768||e.countWhere(i,function(s){return!!(s.flags&59506688)})<10)){if(r.keyPropertyName===void 0){var t=e.forEach(i,function(s){return s.flags&59506688?e.forEach(uo(s),function(u){return Vl(Jt(u))?u.escapedName:void 0}):void 0}),o=t&&e8(i,t);r.keyPropertyName=o?t:"",r.constituentMap=o}return r.keyPropertyName.length?r.keyPropertyName:void 0}}function Yh(r,i){var t,o=(t=r.constituentMap)===null||t===void 0?void 0:t.get(fu(jc(i)));return o!==gr?o:void 0}function $E(r,i){var t=Qh(r),o=t&&da(i,t);return o&&Yh(r,o)}function r8(r,i){var t=Qh(r),o=t&&e.find(i.properties,function(u){return u.symbol&&u.kind===296&&u.symbol.escapedName===t&&hy(u.initializer)}),s=o&&Oy(o.initializer);return s&&Yh(r,s)}function ZE(r,i){return zs(r,i)||QE(r,i)}function eC(r,i){if(r.arguments)for(var t=0,o=r.arguments;t=0&&Hi.parameterIndex=Hi&&Vt<_t,on,Un;if(Vt>-1){var Ga=gt.filter(function(Uo){return Uo!==void 0}),Qn=Vt=2){var o=t.parent.parent;if(o.kind===254&&e.getCombinedNodeFlags(t)&2||o.kind===164){var s=va(o);if(!(s.flags&268435456)){s.flags|=268435456;var u=Wo(o,0);if(s.flags&=-268435457,u&&u.flags&1048576&&!(o.kind===164&&n0(r))){var h=t.parent,z=up(h,u,u,void 0,i.flowNode);return z.flags&131072?ui:uf(t,z)}}}}if(e.isParameter(t)&&!t.type&&!t.initializer&&!t.dotDotDotToken){var me=t.parent;if(me.parameters.length>=2&&wD(me)){var Me=dv(me);if(Me&&Me.parameters.length===1&&H(Me)){var $e=Xd(Jt(Me.parameters[0]));if($e.flags&1048576&&gf($e,Yn)&&!n0(r)){var z=up(me,$e,$e,void 0,i.flowNode),tr=me.parameters.indexOf(t)-(e.getThisParameter(me)?1:0);return Jc(z,If(tr))}}}}}return Jt(r)}function O8(r,i){if(e.isThisInTypeQuery(r))return yy(r);var t=Dl(r);if(t===xe)return Pe;if(t===or){if(QC(r))return Xr(r,e.Diagnostics.arguments_cannot_be_referenced_in_property_initializers),Pe;var o=e.getContainingFunction(r);return Ae<2&&(o.kind===214?Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression):e.hasSyntacticModifier(o,256)&&Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)),va(o).flags|=8192,Jt(t)}r.parent&&e.isPropertyAccessExpression(r.parent)&&r.parent.expression===r||o0(t,r);var s=cu(t),u=W6(s,r);P_(u)&&mD(r,u)&&u.declarations&&El(r,u.declarations,r.escapedText);var h=s.valueDeclaration;if(h&&s.flags&32){if(h.kind===257&&e.nodeIsDecorated(h))for(var o=e.getContainingClass(r);o!==void 0;){if(o===h&&o.name!==r){va(h).flags|=16777216,va(r).flags|=33554432;break}o=e.getContainingClass(o)}else if(h.kind===226)for(var o=e.getThisContainer(r,!1);o.kind!==305;){if(o.parent===h){(e.isPropertyDeclaration(o)&&e.isStatic(o)||e.isClassStaticBlockDeclaration(o))&&(va(h).flags|=16777216,va(r).flags|=33554432);break}o=e.getThisContainer(o,!1)}}L8(r,t);var z=w8(s,r),me=e.getAssignmentTargetKind(r);if(me){if(!(s.flags&3)&&!(e.isInJSFile(r)&&s.flags&512)){var Me=s.flags&384?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_enum:s.flags&32?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_class:s.flags&1536?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace:s.flags&16?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_function:s.flags&2097152?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_import:e.Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable;return Xr(r,Me,tn(t)),Pe}if(Zu(s))return s.flags&3?Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant,tn(t)):Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(t)),Pe}var $e=s.flags&2097152;if(s.flags&3){if(me===1)return z}else if($e)h=ru(t);else return z;if(!h)return z;z=yb(z,r,i);for(var tr=e.getRootDeclaration(h).kind===164,pr=_v(h),Dr=_v(r),Qr=Dr!==pr,li=r.parent&&r.parent.parent&&e.isSpreadAssignment(r.parent)&&mb(r.parent.parent),Ti=t.flags&134217728;Dr!==pr&&(Dr.kind===213||Dr.kind===214||e.isObjectLiteralOrClassExpressionMethodOrAccessor(Dr))&&(pv(s)&&z!==So||tr&&!n0(s));)Dr=_v(Dr);var Ci=tr||$e||Qr||li||Ti||e.isBindingElement(h)||z!==nr&&z!==So&&(!Ye||(z.flags&16387)!==0||_m(r)||r.parent.kind===275)||r.parent.kind===230||h.kind===254&&h.exclamationToken||h.flags&16777216,$i=Ci?tr?k8(z,h):z:z===nr||z===So?Tr:i_(z),Zi=up(r,z,$i,Dr);if(!_C(r)&&(z===nr||z===So)){if(Zi===nr||Zi===So)return n&&(Xr(e.getNameOfDeclaration(h),e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,tn(t),Ot(Zi)),Xr(r,e.Diagnostics.Variable_0_implicitly_has_an_1_type,tn(t),Ot(Zi))),kv(Zi)}else if(!Ci&&!(ju(z)&32768)&&ju(Zi)&32768)return Xr(r,e.Diagnostics.Variable_0_is_used_before_being_assigned,tn(t)),z;return me?Kl(Zi):Zi}function F8(r,i){return!!e.findAncestor(r,function(t){return t===i?"quit":e.isFunctionLike(t)||t.parent&&e.isPropertyDeclaration(t.parent)&&!e.hasStaticModifier(t.parent)&&t.parent.initializer===t})}function M8(r,i){return e.findAncestor(r,function(t){return t===i?"quit":t===i.initializer||t===i.condition||t===i.incrementor||t===i.statement})}function hb(r){return e.findAncestor(r,function(i){return!i||e.nodeStartsNewLexicalEnvironment(i)?"quit":e.isIterationStatement(i,!1)})}function L8(r,i){if(!(Ae>=2||(i.flags&34)===0||!i.valueDeclaration||e.isSourceFile(i.valueDeclaration)||i.valueDeclaration.parent.kind===292)){var t=e.getEnclosingBlockScopeContainer(i.valueDeclaration),o=F8(r,t),s=hb(t);if(s){if(o){var u=!0;if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);if(h&&h.parent===t){var z=M8(r.parent,t);if(z){var me=va(z);me.flags|=131072;var Me=me.capturedBlockScopeBindings||(me.capturedBlockScopeBindings=[]);e.pushIfUnique(Me,i),z===t.initializer&&(u=!1)}}}u&&(va(s).flags|=65536)}if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);h&&h.parent===t&&B8(r,t)&&(va(i.valueDeclaration).flags|=4194304)}va(i.valueDeclaration).flags|=524288}o&&(va(i.valueDeclaration).flags|=262144)}}function R8(r,i){var t=va(r);return!!t&&e.contains(t.capturedBlockScopeBindings,Et(i))}function B8(r,i){for(var t=r;t.parent.kind===212;)t=t.parent;var o=!1;if(e.isAssignmentTarget(t))o=!0;else if(t.parent.kind===219||t.parent.kind===220){var s=t.parent;o=s.operator===45||s.operator===46}return o?!!e.findAncestor(t,function(u){return u===i?"quit":u===i.statement}):!1}function Db(r,i){if(va(r).flags|=2,i.kind===167||i.kind===171){var t=i.parent;va(t).flags|=4}else va(i).flags|=4}function vC(r){return e.isSuperCall(r)?r:e.isFunctionLike(r)?void 0:e.forEachChild(r,vC)}function yC(r){var i=Et(r),t=go(i),o=Bl(t);return o===ct}function hC(r,i,t){var o=i.parent,s=e.getClassExtendsHeritageElement(o);s&&!yC(o)&&r.flowNode&&!a0(r.flowNode,!1)&&Xr(r,t)}function J8(r,i){e.isPropertyDeclaration(i)&&e.hasStaticModifier(i)&&i.initializer&&e.textRangeContainsPositionInclusive(i.initializer,r.pos)&&e.length(i.parent.decorators)&&Xr(r,e.Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class)}function yy(r){var i=_m(r),t=e.getThisContainer(r,!0),o=!1;switch(t.kind===171&&hC(r,t,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),t.kind===214&&(t=e.getThisContainer(t,!1),o=!0),J8(r,t),t.kind){case 261:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 260:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 171:DC(r,t)&&Xr(r,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 162:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);break}!i&&o&&Ae<2&&Db(r,t);var s=bb(r,!0,t);if(lr){var u=Jt(pe);if(s===u&&o)Xr(r,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!s){var h=Xr(r,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(t)){var z=bb(t);z&&z!==u&&e.addRelatedInfo(h,e.createDiagnosticForNode(t,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return s||Oe}function bb(r,i,t){i===void 0&&(i=!0),t===void 0&&(t=e.getThisContainer(r,!1));var o=e.isInJSFile(r);if(e.isFunctionLike(t)&&(!xb(r)||e.getThisParameter(t))){var s=ni(t)||o&&z8(t);if(!s){var u=U8(t);if(o&&u){var h=yn(u).symbol;h&&h.members&&h.flags&16&&(s=go(h).thisType)}else Sl(t)&&(s=go(so(t.symbol)).thisType);s||(s=SC(t))}if(s)return up(r,s)}if(e.isClassLike(t.parent)){var z=Et(t.parent),me=e.isStatic(t)?Jt(z):go(z).thisType;return up(r,me)}if(e.isSourceFile(t))if(t.commonJsModuleIndicator){var Me=Et(t);return Me&&Jt(Me)}else{if(t.externalModuleIndicator)return Tr;if(i)return Jt(pe)}}function j8(r){var i=e.getThisContainer(r,!1);if(e.isFunctionLike(i)){var t=yl(i);if(t.thisParameter)return r0(t.thisParameter)}if(e.isClassLike(i.parent)){var o=Et(i.parent);return e.isStatic(i)?Jt(o):go(o).thisType}}function U8(r){if(r.kind===213&&e.isBinaryExpression(r.parent)&&e.getAssignmentDeclarationKind(r.parent)===3)return r.parent.left.expression.expression;if(r.kind===169&&r.parent.kind===205&&e.isBinaryExpression(r.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent)===6)return r.parent.parent.left.expression;if(r.kind===213&&r.parent.kind===296&&r.parent.parent.kind===205&&e.isBinaryExpression(r.parent.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===6)return r.parent.parent.parent.left.expression;if(r.kind===213&&e.isPropertyAssignment(r.parent)&&e.isIdentifier(r.parent.name)&&(r.parent.name.escapedText==="value"||r.parent.name.escapedText==="get"||r.parent.name.escapedText==="set")&&e.isObjectLiteralExpression(r.parent.parent)&&e.isCallExpression(r.parent.parent.parent)&&r.parent.parent.parent.arguments[2]===r.parent.parent&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===9)return r.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(r)&&e.isIdentifier(r.name)&&(r.name.escapedText==="value"||r.name.escapedText==="get"||r.name.escapedText==="set")&&e.isObjectLiteralExpression(r.parent)&&e.isCallExpression(r.parent.parent)&&r.parent.parent.arguments[2]===r.parent&&e.getAssignmentDeclarationKind(r.parent.parent)===9)return r.parent.parent.arguments[0].expression}function z8(r){var i=e.getJSDocType(r);if(i&&i.kind===317){var t=i;if(t.parameters.length>0&&t.parameters[0].name&&t.parameters[0].name.escapedText==="this")return Va(t.parameters[0].type)}var o=e.getJSDocThisTag(r);if(o&&o.typeExpression)return Va(o.typeExpression)}function DC(r,i){return!!e.findAncestor(r,function(t){return e.isFunctionLikeDeclaration(t)?"quit":t.kind===164&&t.parent===i})}function Sb(r){var i=r.parent.kind===208&&r.parent.expression===r,t=e.getSuperContainer(r,!0),o=t,s=!1;if(!i)for(;o&&o.kind===214;)o=e.getSuperContainer(o,!0),s=Ae<2;var u=tr(o),h=0;if(!u){var z=e.findAncestor(r,function(pr){return pr===o?"quit":pr.kind===162});return z&&z.kind===162?Xr(r,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):i?Xr(r,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===205)?Xr(r,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions):Xr(r,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class),Pe}if(!i&&t.kind===171&&hC(r,o,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),e.isStatic(o)||i?(h=512,!i&&Ae>=2&&Ae<=8&&(e.isPropertyDeclaration(o)||e.isClassStaticBlockDeclaration(o))&&e.forEachEnclosingBlockScopeContainer(r.parent,function(pr){(!e.isSourceFile(pr)||e.isExternalOrCommonJsModule(pr))&&(va(pr).flags|=134217728)})):h=256,va(r).flags|=h,o.kind===169&&e.hasSyntacticModifier(o,256)&&(e.isSuperProperty(r.parent)&&e.isAssignmentTarget(r.parent)?va(o).flags|=4096:va(o).flags|=2048),s&&Db(r.parent,o),o.parent.kind===205)return Ae<2?(Xr(r,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),Pe):Oe;var me=o.parent;if(!e.getClassExtendsHeritageElement(me))return Xr(r,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),Pe;var Me=go(Et(me)),$e=Me&&Qc(Me)[0];if(!$e)return Pe;if(o.kind===171&&DC(r,o))return Xr(r,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),Pe;return h===512?Bl(Me):Rc($e,Me.thisType);function tr(pr){return pr?i?pr.kind===171:e.isClassLike(pr.parent)||pr.parent.kind===205?e.isStatic(pr)?pr.kind===169||pr.kind===168||pr.kind===172||pr.kind===173||pr.kind===167||pr.kind===170:pr.kind===169||pr.kind===168||pr.kind===172||pr.kind===173||pr.kind===167||pr.kind===166||pr.kind===171:!1:!1}}function W8(r){return(r.kind===169||r.kind===172||r.kind===173)&&r.parent.kind===205?r.parent:r.kind===213&&r.parent.kind===296?r.parent.parent:void 0}function bC(r){return e.getObjectFlags(r)&4&&r.target===Wn?xo(r)[0]:void 0}function q8(r){return Ss(r,function(i){return i.flags&2097152?e.forEach(i.types,bC):bC(i)})}function SC(r){if(r.kind!==214){if(wD(r)){var i=dv(r);if(i){var t=i.thisParameter;if(t)return Jt(t)}}var o=e.isInJSFile(r);if(lr||o){var s=W8(r);if(s){for(var u=$p(s),h=s,z=u;z;){var me=q8(z);if(me)return un(me,ab(wg(s)));if(h.parent.kind!==296)break;h=h.parent.parent,z=$p(h)}return $c(u?C_(u):Os(s))}var Me=e.walkUpParenthesizedExpressions(r.parent);if(Me.kind===221&&Me.operatorToken.kind===63){var $e=Me.left;if(e.isAccessExpression($e)){var tr=$e.expression;if(o&&e.isIdentifier(tr)){var pr=e.getSourceFileOfNode(Me);if(pr.commonJsModuleIndicator&&Dl(tr)===pr.symbol)return}return $c(Os(tr))}}}}}function TC(r){var i=r.parent;if(!!wD(i)){var t=e.getImmediatelyInvokedFunctionExpression(i);if(t&&t.arguments){var o=Zb(t),s=i.parameters.indexOf(r);if(r.dotDotDotToken)return Yb(o,s,o.length,Oe,void 0,0);var u=va(t),h=u.resolvedSignature;u.resolvedSignature=En;var z=s=o?Jc(Jt(t.parameters[o]),If(i-o),256):$u(t,i)}function Y8(r,i){if(r.parent.kind===210)return EC(r.parent,i)}function $8(r,i){var t=r.parent,o=t.left,s=t.operatorToken,u=t.right;switch(s.kind){case 63:case 76:case 75:case 77:return r===u?e5(t):void 0;case 56:case 60:var h=ou(t,i);return r===u&&(h&&h.pattern||!h&&!e.isDefaultedExpandoInitializer(t))?Gs(o):h;case 55:case 27:return r===u?ou(t,i):void 0;default:return}}function Z8(r){if(r.symbol)return r.symbol;if(e.isIdentifier(r))return Dl(r);if(e.isPropertyAccessExpression(r)){var i=Gs(r.expression);return e.isPrivateIdentifier(r.name)?t(i,r.name):bi(i,r.name.escapedText)}return;function t(o,s){var u=g0(s.escapedText,s);return u&&Ub(o,u)}}function e5(r){var i,t,o=e.getAssignmentDeclarationKind(r);switch(o){case 0:case 4:var s=Z8(r.left),u=s&&s.valueDeclaration;if(u&&(e.isPropertyDeclaration(u)||e.isPropertySignature(u))){var h=e.getEffectiveTypeAnnotationNode(u);return h&&un(Va(h),Aa(s).mapper)||u.initializer&&Gs(r.left)}return o===0?Gs(r.left):CC(r);case 5:if(s0(r,o))return CC(r);if(r.left.symbol){var z=r.left.symbol.valueDeclaration;if(!z)return;var me=e.cast(r.left,e.isAccessExpression),h=e.getEffectiveTypeAnnotationNode(z);if(h)return Va(h);if(e.isIdentifier(me.expression)){var Me=me.expression,$e=es(Me,Me.escapedText,111551,void 0,Me.escapedText,!0);if($e){var tr=$e.valueDeclaration&&e.getEffectiveTypeAnnotationNode($e.valueDeclaration);if(tr){var pr=e.getElementOrPropertyAccessName(me);if(pr!==void 0)return Md(Va(tr),pr)}return}}return e.isInJSFile(z)?void 0:Gs(r.left)}else return Gs(r.left);case 1:case 6:case 3:var Dr=(i=r.left.symbol)===null||i===void 0?void 0:i.valueDeclaration;case 2:Dr||(Dr=(t=r.symbol)===null||t===void 0?void 0:t.valueDeclaration);var Qr=Dr&&e.getEffectiveTypeAnnotationNode(Dr);return Qr?Va(Qr):void 0;case 7:case 8:case 9:return e.Debug.fail("Does not apply");default:return e.Debug.assertNever(o)}}function s0(r,i){if(i===void 0&&(i=e.getAssignmentDeclarationKind(r)),i===4)return!0;if(!e.isInJSFile(r)||i!==5||!e.isIdentifier(r.left.expression))return!1;var t=r.left.expression.escapedText,o=es(r.left,t,111551,void 0,void 0,!0,!0);return e.isThisInitializedDeclaration(o==null?void 0:o.valueDeclaration)}function CC(r){if(!r.symbol)return Gs(r.left);if(r.symbol.valueDeclaration){var i=e.getEffectiveTypeAnnotationNode(r.symbol.valueDeclaration);if(i){var t=Va(i);if(t)return t}}var o=e.cast(r.left,e.isAccessExpression);if(!!e.isObjectLiteralMethod(e.getThisContainer(o.expression,!1))){var s=yy(o.expression),u=e.getElementOrPropertyAccessName(o);return u!==void 0&&Md(s,u)||void 0}}function r5(r){return!!(e.getCheckFlags(r)&262144&&!r.type&&v(r,0)>=0)}function Md(r,i,t){return Ss(r,function(o){var s;if(Bc(o)&&!o.declaration.nameType){var u=Mu(o),h=uc(u)||u,z=t||Bu(e.unescapeLeadingUnderscores(i));if(ao(z,h))return xh(o,z)}else if(o.flags&3670016){var me=bi(o,i);if(me)return r5(me)?void 0:Jt(me);if(Yn(o)){var Me=sv(o);if(Me&&e.isNumericLiteralName(i)&&+i>=0)return Me}return(s=mn(To(o),t||Bu(e.unescapeLeadingUnderscores(i))))===null||s===void 0?void 0:s.type}},!0)}function kC(r,i){if(e.Debug.assert(e.isObjectLiteralMethod(r)),!(r.flags&33554432))return kb(r,i)}function kb(r,i){var t=r.parent,o=e.isPropertyAssignment(r)&&Tb(r);if(o)return o;var s=$p(t,i);if(s){if(Td(r)){var u=Et(r);return Md(s,u.escapedName,Aa(u).nameType)}if(r.name){var h=Z_(r.name);return Ss(s,function(z){var me;return(me=mn(To(z),h))===null||me===void 0?void 0:me.type},!0)}}}function Ab(r,i){return r&&(Md(r,""+i)||Ss(r,function(t){return xS(1,t,Tr,void 0,!1)},!0))}function i5(r,i){var t=r.parent;return r===t.whenTrue||r===t.whenFalse?ou(t,i):void 0}function t5(r,i){var t=$p(r.openingElement.tagName),o=_0(Og(r));if(!!(t&&!ta(t)&&o&&o!=="")){var s=e.getSemanticJsxChildren(r.children),u=s.indexOf(i),h=Md(t,o);return h&&(s.length===1?h:Ss(h,function(z){return sp(z)?Jc(z,If(u)):z},!0))}}function a5(r){var i=r.parent;return e.isJsxAttributeLike(i)?ou(r):e.isJsxElement(i)?t5(i,r):void 0}function AC(r){if(e.isJsxAttribute(r)){var i=$p(r.parent);return!i||ta(i)?void 0:Md(i,r.name.escapedText)}else return ou(r.parent)}function hy(r){switch(r.kind){case 10:case 8:case 9:case 14:case 110:case 95:case 104:case 79:case 153:return!0;case 206:case 212:return hy(r.expression);case 288:return!r.expression||hy(r.expression)}return!1}function n5(r,i){return r8(i,r)||UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===296&&hy(t.initializer)&&lv(i,t.symbol.escapedName)}),function(t){return[function(){return Oy(t.initializer)},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function o5(r,i){return UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===285&&lv(i,t.symbol.escapedName)&&(!t.initializer||hy(t.initializer))}),function(t){return[t.initializer?function(){return Oy(t.initializer)}:function(){return Dt},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function $p(r,i){var t=e.isObjectLiteralMethod(r)?kC(r,i):ou(r,i),o=c0(t,r,i);if(o&&!(i&&i&2&&o.flags&8650752)){var s=Ss(o,$s,!0);return s.flags&1048576&&e.isObjectLiteralExpression(r)?n5(r,s):s.flags&1048576&&e.isJsxAttributes(r)?o5(r,s):s}}function c0(r,i,t){if(r&&fs(r,465829888)){var o=wg(i);if(o&&e.some(o.inferences,tg)){if(t&&t&1)return u0(r,o.nonFixingMapper);if(o.returnMapper){var s=u0(r,o.returnMapper);return s.flags&1048576&&$f(s.types,ut)&&$f(s.types,Rt)?ec(s,function(u){return u!==ut&&u!==Rt}):s}}}return r}function u0(r,i){return r.flags&465829888?un(r,i):r.flags&1048576?Pa(e.map(r.types,function(t){return u0(t,i)}),0):r.flags&2097152?Do(e.map(r.types,function(t){return u0(t,i)})):r}function ou(r,i){if(r.flags&33554432)return;if(r.contextualType)return r.contextualType;var t=r.parent;switch(t.kind){case 254:case 164:case 167:case 166:case 203:return G8(r,i);case 214:case 247:return H8(r);case 224:return Q8(t);case 218:return X8(t,i);case 208:case 209:return EC(t,r);case 211:case 229:return e.isConstTypeReference(t.type)?h(t):Va(t.type);case 221:return $8(r,i);case 296:case 297:return kb(t,i);case 298:return ou(t.parent,i);case 204:{var o=t,s=$p(o,i);return Ab(s,e.indexOfNode(o.elements,r))}case 222:return i5(r,i);case 233:return e.Debug.assert(t.parent.kind===223),Y8(t.parent,r);case 212:{var u=e.isInJSFile(t)?e.getJSDocTypeTag(t):void 0;return u?e.isJSDocTypeTag(u)&&e.isConstTypeReference(u.typeExpression.type)?h(t):Va(u.typeExpression.type):ou(t,i)}case 230:return ou(t,i);case 271:return Rl(t);case 288:return a5(t);case 285:case 287:return AC(t);case 280:case 279:return s5(t,i)}return;function h(z){return ou(z)}}function wg(r){var i=e.findAncestor(r,function(t){return!!t.inferenceContext});return i&&i.inferenceContext}function s5(r,i){return e.isJsxOpeningElement(r)&&r.parent.contextualType&&i!==4?r.parent.contextualType:Cb(r,0)}function l0(r,i){return lk(i)!==0?c5(r,i):f5(r,i)}function c5(r,i){var t=nS(r,gr);t=NC(i,Og(i),t);var o=Zp(U.IntrinsicAttributes,i);return nn(o)||(t=Zg(o,t)),t}function u5(r,i){if(r.compositeSignatures){for(var t=[],o=0,s=r.compositeSignatures;o=2){var z=zp([u,t],h,2,e.isInJSFile(r));return am(o,z)}}if(e.length(s.typeParameters)>=2){var z=zp([u,t],s.typeParameters,2,e.isInJSFile(r));return Yf(s,z)}}return t}function f5(r,i){var t=Og(i),o=I5(t),s=o===void 0?nS(r,gr):o===""?yo(r):u5(r,o);if(!s)return!!o&&!!e.length(i.attributes.properties)&&Xr(i,e.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,e.unescapeLeadingUnderscores(o)),gr;if(s=NC(i,t,s),ta(s))return s;var u=s,h=Zp(U.IntrinsicClassAttributes,i);if(!nn(h)){var z=Af(h.symbol),me=yo(r);u=Zg(z?Yf(h,zp([me],z,Ul(z),e.isInJSFile(i))):h,u)}var Me=Zp(U.IntrinsicAttributes,i);return nn(Me)||(u=Zg(Me,u)),u}function _5(r){return e.getStrictOptionValue(ye,"noImplicitAny")?e.reduceLeft(r,function(i,t){return i===t||!i?i:ah(i.typeParameters,t.typeParameters)?g5(i,t):void 0}):void 0}function p5(r,i,t){if(!r||!i)return r||i;var o=Pa([Jt(r),un(Jt(i),t)]);return eg(r,o)}function d5(r,i,t){for(var o=Wc(r),s=Wc(i),u=o>=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||"arg".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,"args");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function g5(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=d5(r,i,o),h=p5(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=2097152,me.compositeSignatures=e.concatenate(r.compositeKind===2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind===2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function Nb(r,i){var t=ot(r,0),o=e.filter(t,function(s){return!m5(s,i)});return o.length===1?o[0]:_5(o)}function m5(r,i){for(var t=0;t0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1,$i=!1);var Tn=bu(yn(ja.expression));if(Dy(Tn)){var cn=TD(Tn,Me);if(o&&FC(cn,o,ja),Ra=u.length,nn(h))continue;h=Vp(h,cn,r.symbol,Qr,Me)}else Xr(ja,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),h=Pe;continue}else e.Debug.assert(ja.kind===172||ja.kind===173),xm(ja);wn&&!(wn.flags&8576)?ao(wn,Vi)&&(ao(wn,nt)?Ci=!0:ao(wn,Ki)?$i=!0:Ti=!0,t&&(li=!0)):s.set(Fn.escapedName,Fn),u.push(Fn)}if(me&&r.parent.kind!==298)for(var jn=0,oa=uo(z);jn0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1),Ss(h,function(Ln){return Ln===Ba?Mn():Ln});return Mn();function Mn(){var Ln=[];Ti&&Ln.push(Ib(r,Ra,u,Li)),Ci&&Ln.push(Ib(r,Ra,u,nt)),$i&&Ln.push(Ib(r,Ra,u,Ki));var ci=rs(r.symbol,s,e.emptyArray,e.emptyArray,Ln);return ci.objectFlags|=Qr|128|131072,Dr&&(ci.objectFlags|=4096),li&&(ci.objectFlags|=512),t&&(ci.pattern=r),ci}}function Dy(r){var i=OE(Ss(r,Hd));return!!(i.flags&126615553||i.flags&3145728&&e.every(i.types,Dy))}function T5(r){Lb(r)}function x5(r,i){return xm(r),by(r)||Oe}function E5(r){Lb(r.openingElement),dm(r.closingElement.tagName)?Fb(r.closingElement):yn(r.closingElement.tagName),f0(r)}function C5(r,i){return xm(r),by(r)||Oe}function k5(r){Lb(r.openingFragment);var i=e.getSourceFileOfNode(r);return e.getJSXTransformEnabled(ye)&&(ye.jsxFactory||i.pragmas.has("jsx"))&&!ye.jsxFragmentFactory&&!i.pragmas.has("jsxfrag")&&Xr(r,ye.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),f0(r),by(r)||Oe}function Ob(r){return e.stringContains(r,"-")}function dm(r){return r.kind===79&&e.isIntrinsicJsxName(r.escapedText)}function OC(r,i){return r.initializer?Dm(r.initializer,i):Dt}function A5(r,i){for(var t=r.attributes,o=Ye?e.createSymbolTable():void 0,s=e.createSymbolTable(),u=pn,h=!1,z,me=!1,Me=2048,$e=_0(Og(r)),tr=0,pr=t.properties;tr0&&(u=Vp(u,ca(),t.symbol,Me,!1),s=e.createSymbolTable());var li=bu(Os(Dr.expression,i));ta(li)&&(h=!0),Dy(li)?(u=Vp(u,li,t.symbol,Me,!1),o&&FC(li,o,Dr)):(Xr(Dr.expression,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),z=z?Do([z,li]):li)}}h||s.size>0&&(u=Vp(u,ca(),t.symbol,Me,!1));var Ci=r.parent.kind===278?r.parent:void 0;if(Ci&&Ci.openingElement===r&&Ci.children.length>0){var $i=f0(Ci,i);if(!h&&$e&&$e!==""){me&&Xr(t,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores($e));var Zi=$p(r.attributes),qt=Zi&&Md(Zi,$e),Nt=oo(4,$e);Nt.type=$i.length===1?$i[0]:qt&&rg(qt,Eg)?Wl($i):Zs(Pa($i)),Nt.valueDeclaration=e.factory.createPropertySignature(void 0,e.unescapeLeadingUnderscores($e),void 0,void 0),e.setParent(Nt.valueDeclaration,t),Nt.valueDeclaration.symbol=Nt;var Ra=e.createSymbolTable();Ra.set($e,Nt),u=Vp(u,rs(t.symbol,Ra,e.emptyArray,e.emptyArray,e.emptyArray),t.symbol,Me,!1)}}if(h)return Oe;if(z&&u!==pn)return Do([z,u]);return z||(u===pn?ca():u);function ca(){Me|=ur;var Sn=rs(t.symbol,s,e.emptyArray,e.emptyArray,e.emptyArray);return Sn.objectFlags|=Me|128|131072,Sn}}function f0(r,i){for(var t=[],o=0,s=r.children;o1&&t.declarations&&Xr(t.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(r))}}function P5(r){return r&&qs(r.exports,U.LibraryManagedAttributes,788968)}function I5(r){return MC(U.ElementAttributesPropertyNameContainer,r)}function _0(r){return MC(U.ElementChildrenAttributeNameContainer,r)}function LC(r,i){if(r.flags&4)return[En];if(r.flags&128){var t=RC(r,i);if(t){var o=S0(i,t);return[o]}else return Xr(i,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,"JSX."+U.IntrinsicElements),e.emptyArray}var s=$s(r),u=ot(s,1);return u.length===0&&(u=ot(s,0)),u.length===0&&s.flags&1048576&&(u=zv(e.map(s.types,function(h){return LC(h,i)}))),u}function RC(r,i){var t=Zp(U.IntrinsicElements,i);if(!nn(t)){var o=r.value,s=bi(t,e.escapeLeadingUnderscores(o));if(s)return Jt(s);var u=cs(t,Li);return u||void 0}return Oe}function w5(r,i,t){if(r===1){var o=jC(t);o&&hl(i,o,dt,t.tagName,e.Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element,h)}else if(r===0){var s=JC(t);s&&hl(i,s,dt,t.tagName,e.Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element,h)}else{var o=jC(t),s=JC(t);if(!o||!s)return;var u=Pa([o,s]);hl(i,u,dt,t.tagName,e.Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element,h)}function h(){var z=e.getTextOfNode(t.tagName);return e.chainDiagnosticMessages(void 0,e.Diagnostics._0_cannot_be_used_as_a_JSX_component,z)}}function BC(r){e.Debug.assert(dm(r.tagName));var i=va(r);if(!i.resolvedJsxElementAttributesType){var t=Fb(r);return i.jsxFlags&1?i.resolvedJsxElementAttributesType=Jt(t)||Pe:i.jsxFlags&2?i.resolvedJsxElementAttributesType=cs(Zp(U.IntrinsicElements,r),Li)||Pe:i.resolvedJsxElementAttributesType=Pe}return i.resolvedJsxElementAttributesType}function JC(r){var i=Zp(U.ElementClass,r);if(!nn(i))return i}function by(r){return Zp(U.Element,r)}function jC(r){var i=by(r);if(i)return Pa([i,Wi])}function O5(r){var i=Zp(U.IntrinsicElements,r);return i?uo(i):e.emptyArray}function F5(r){(ye.jsx||0)===0&&Xr(r,e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided),by(r)===void 0&&n&&Xr(r,e.Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist)}function Lb(r){var i=e.isJsxOpeningLikeElement(r);if(i&&Y9(r),F5(r),!Mb(r)){var t=rn&&ye.jsx===2?e.Diagnostics.Cannot_find_name_0:void 0,o=po(r),s=i?r.tagName:r,u=void 0;if(e.isJsxOpeningFragment(r)&&o==="null"||(u=es(s,o,111551,t,o,!0)),u&&(u.isReferenced=67108863,u.flags&2097152&&!vu(u)&&As(u)),e.isJsxOpeningFragment(r)){var h=e.getSourceFileOfNode(r),z=Gn(h);z&&es(s,z,111551,t,z,!0)}}if(i){var me=r,Me=Mg(me);x0(Me,r),w5(lk(me),yo(Me),me)}}function Rb(r,i,t){if(r.flags&524288){if(h_(r,i)||Xo(r,i)||pg(i)&&ss(r,Li)||t&&Ob(i))return!0}else if(r.flags&3145728&&Sy(r))for(var o=0,s=r.types;o=1&&ao(t,$u(me,0))}return!1}var s=e.isAssignmentTarget(i)?"set":"get";if(!!o(s)){var u=e.tryGetPropertyAccessOrIdentifierToString(i.expression);return u===void 0?u=s:u+="."+s,u}}function Z5(r,i){var t=i.types.filter(function(o){return!!(o.flags&128)});return e.getSpellingSuggestion(r.value,t,function(o){return o.value})}function Ty(r,i,t){return e.getSpellingSuggestion(r,i,o);function o(s){var u=e.symbolName(s);if(!e.startsWith(u,'"')){if(s.flags&t)return u;if(s.flags&2097152){var h=d_(s);if(h&&h.flags&t)return u}}}}function xy(r,i,t){var o=r&&r.flags&106500&&r.valueDeclaration;if(!!o){var s=e.hasEffectiveModifier(o,8),u=r.valueDeclaration&&e.isNamedDeclaration(r.valueDeclaration)&&e.isPrivateIdentifier(r.valueDeclaration.name);if(!(!s&&!u)&&!(i&&e.isWriteOnlyAccess(i)&&!(r.flags&65536))){if(t){var h=e.findAncestor(i,e.isFunctionLikeDeclaration);if(h&&h.symbol===r)return}(e.getCheckFlags(r)&1?Aa(r).target:r).isReferenced=67108863}}}function rk(r,i){return r.kind===108||!!i&&e.isEntityNameExpression(r)&&i===Dl(e.getFirstIdentifier(r))}function e7(r,i){switch(r.kind){case 206:return Gb(r,r.expression.kind===106,i,$c(yn(r.expression)));case 161:return Gb(r,!1,i,$c(yn(r.left)));case 200:return Gb(r,!1,i,Va(r))}}function ik(r,i,t){return Hb(r,r.kind===206&&r.expression.kind===106,!1,i,t)}function Gb(r,i,t,o){if(ta(o))return!0;var s=bi(o,t);return!!s&&Hb(r,i,!1,o,s)}function Hb(r,i,t,o,s){if(ta(o))return!0;if(s.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(s.valueDeclaration)){var u=e.getContainingClass(s.valueDeclaration);return!e.isOptionalChain(r)&&!!e.findAncestor(r,function(h){return h===u})}return UC(r,i,t,o,s)}function r7(r){var i=r.initializer;if(i.kind===255){var t=i.declarations[0];if(t&&!e.isBindingPattern(t.name))return Et(t)}else if(i.kind===79)return Dl(i)}function i7(r){return Hn(r).length===1&&!!ss(r,nt)}function t7(r){var i=e.skipParentheses(r);if(i.kind===79){var t=Dl(i);if(t.flags&3)for(var o=r,s=r.parent;s;){if(s.kind===243&&o===s.statement&&r7(s)===t&&i7(Gs(s.expression)))return!0;o=s,s=s.parent}}return!1}function a7(r,i){return r.flags&32?n7(r,i):tk(r,gm(r.expression),i)}function n7(r,i){var t=yn(r.expression),o=cv(t,r.expression);return zh(tk(r,bl(o,r.expression),i),r,o!==t)}function tk(r,i,t){var o=e.getAssignmentTargetKind(r)!==0||GC(r)?$c(i):i,s=r.argumentExpression,u=yn(s);if(nn(o)||o===Bt)return o;if(uS(o)&&!e.isStringLiteralLike(s))return Xr(s,e.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal),Pe;var h=t7(s)?nt:u,z=e.isAssignmentTarget(r)?4|(Ad(o)&&!e.isThisTypeParameter(o)?2:0):32,me=ep(o,h,z,r)||Pe;return o6(XC(r,va(r).resolvedSymbol,me,s,t),r)}function ak(r){return e.isCallOrNewExpression(r)||e.isTaggedTemplateExpression(r)||e.isJsxOpeningLikeElement(r)}function Fg(r){return ak(r)&&e.forEach(r.typeArguments,io),r.kind===210?yn(r.template):e.isJsxOpeningLikeElement(r)?yn(r.attributes):r.kind!==165&&e.forEach(r.arguments,function(i){yn(i)}),En}function Gl(r){return Fg(r),zn}function o7(r,i,t){var o,s,u=0,h,z=-1,me;e.Debug.assert(!i.length);for(var Me=0,$e=r;Me<$e.length;Me++){var tr=$e[Me],pr=tr.declaration&&Et(tr.declaration),Dr=tr.declaration&&tr.declaration.parent;!s||pr===s?o&&Dr===o?h=h+1:(o=Dr,h=u):(h=u=i.length,o=Dr),s=pr,w(tr)?(z++,me=z,u++):me=h,i.splice(me,0,t?w1(tr,t):tr)}}function y0(r){return!!r&&(r.kind===225||r.kind===232&&r.isSpread)}function h0(r){return e.findIndex(r,y0)}function nk(r){return!!(r.flags&16384)}function s7(r){return!!(r.flags&49155)}function D0(r,i,t,o){o===void 0&&(o=!1);var s,u=!1,h=Wc(t),z=Hl(t);if(r.kind===210)if(s=i.length,r.template.kind===223){var me=e.last(r.template.templateSpans);u=e.nodeIsMissing(me.literal)||!!me.literal.isUnterminated}else{var Me=r.template;e.Debug.assert(Me.kind===14),u=!!Me.isUnterminated}else if(r.kind===165)s=_k(r,t);else if(e.isJsxOpeningLikeElement(r)){if(u=r.attributes.end===r.end,u)return!0;s=z===0?i.length:1,h=i.length===0?h:1,z=Math.min(z,1)}else if(r.arguments){s=o?i.length+1:i.length,u=r.arguments.end===r.end;var $e=h0(i);if($e>=0)return $e>=Hl(t)&&(Xl(t)||$eh)return!1;if(u||s>=z)return!0;for(var tr=s;tr=o&&i.length<=t}function ig(r){return gv(r,0,!1)}function ok(r){return gv(r,0,!1)||gv(r,1,!1)}function gv(r,i,t){if(r.flags&524288){var o=Ru(r);if(t||o.properties.length===0&&o.indexInfos.length===0){if(i===0&&o.callSignatures.length===1&&o.constructSignatures.length===0)return o.callSignatures[0];if(i===1&&o.constructSignatures.length===1&&o.callSignatures.length===0)return o.constructSignatures[0]}}}function sk(r,i,t,o){var s=uv(r.typeParameters,r,0,o),u=vv(i),h=t&&(u&&u.flags&262144?t.nonFixingMapper:t.mapper),z=h?Tg(i,h):i;return eb(z,r,function(me,Me){df(s.inferences,me,Me)}),t||rb(i,r,function(me,Me){df(s.inferences,me,Me,128)}),Xm(r,_b(s),e.isInJSFile(i.declaration))}function c7(r,i,t,o){var s=l0(i,r),u=Rg(r.attributes,s,o,t);return df(o.inferences,u,s),_b(o)}function ck(r){if(!r)return Fi;var i=yn(r);return e.isOptionalChainRoot(r.parent)?C_(i):e.isOptionalChain(r.parent)?YD(i):i}function Qb(r,i,t,o,s){if(e.isJsxOpeningLikeElement(r))return c7(r,i,o,s);if(r.kind!==165){var u=ou(r,e.every(i.typeParameters,function(Sn){return!!D_(Sn)})?8:0);if(u){var h=yo(i);if(Id(h)){var z=wg(r),me=ab(Mw(z,1)),Me=un(u,me),$e=ig(Me),tr=$e&&$e.typeParameters?im(eD($e,$e.typeParameters)):Me;df(s.inferences,tr,h,128);var pr=uv(i.typeParameters,i,s.flags),Dr=un(u,z&&z.returnMapper);df(pr.inferences,Dr,h),s.returnMapper=e.some(pr.inferences,tg)?ab(Rw(pr)):void 0}}}var Qr=yv(i),li=Qr?Math.min(Wc(i)-1,t.length):t.length;if(Qr&&Qr.flags&262144){var Ti=e.find(s.inferences,function(Sn){return Sn.typeParameter===Qr});Ti&&(Ti.impliedArity=e.findIndex(t,y0,li)<0?t.length-li:void 0)}var Ci=T_(i);if(Ci&&Id(Ci)){var $i=fk(r);df(s.inferences,ck($i),Ci)}for(var Zi=0;Zi=t-1){var h=r[t-1];if(y0(h))return uk(h.kind===232?h.type:Rg(h.expression,o,s,u))}for(var z=[],me=[],Me=[],$e=i;$e$i&&($i=wn)}}if(!Ci)return!0;for(var Tn=1/0,Eo=0,lt=pr;Eo0||e.isJsxOpeningElement(r)&&r.parent.children.length>0?[r.attributes]:e.emptyArray;var o=r.arguments||e.emptyArray,s=h0(o);if(s>=0){for(var u=o.slice(0,s),h=function(me){var Me=o[me],$e=Me.kind===225&&(Ao?yn(Me.expression):Os(Me.expression));$e&&Yn($e)?e.forEach(xo($e),function(tr,pr){var Dr,Qr=$e.target.elementFlags[pr],li=ed(Me,Qr&4?Zs(tr):tr,!!(Qr&12),(Dr=$e.target.labeledElementDeclarations)===null||Dr===void 0?void 0:Dr[pr]);u.push(li)}):u.push(Me)},z=s;z-1)return e.createDiagnosticForNode(t[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,h=Number.NEGATIVE_INFINITY,z=Number.NEGATIVE_INFINITY,me=Number.POSITIVE_INFINITY,Me,$e=0,tr=i;$ez&&(z=Dr),t.lengtho?me=Math.min(me,tr):h1&&($i=ea(tr,Or,Dr,Zi)),$i||($i=ea(tr,dt,Dr,Zi)),$i)return $i;if(Me)if(li)if(li.length===1||li.length>3){var qt=li[li.length-1],Nt;li.length>3&&(Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.The_last_overload_gave_the_following_error),Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.No_overload_matches_this_call));var Ra=Ey(r,pr,qt,dt,0,!0,function(){return Nt});if(Ra)for(var ca=0,Sn=Ra;ca3&&e.addRelatedInfo(ja,e.createDiagnosticForNode(qt.declaration,e.Diagnostics.The_last_overload_is_declared_here)),Lt(qt,ja),rn.add(ja)}else e.Debug.fail("No error for last overload signature")}else{for(var Fn=[],wn=0,Tn=Number.MAX_VALUE,Eo=0,lt=0,it=function(Kt){var $t=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,lt+1,tr.length,Ml(Kt))},Ua=Ey(r,pr,Kt,dt,0,!0,$t);Ua?(Ua.length<=Tn&&(Tn=Ua.length,Eo=lt),wn=Math.max(wn,Ua.length),Fn.push(Ua)):e.Debug.fail("No error for 3 or fewer overload signatures"),lt++},Yt=0,Ia=li;Yt1?Fn[Eo]:e.flatten(Fn);e.Debug.assert(Ka.length>0,"No errors reported for 3 or fewer overload signatures");var cn=e.chainDiagnosticMessages(e.map(Ka,e.createDiagnosticMessageChainFromDiagnostic),e.Diagnostics.No_overload_matches_this_call),jn=Ve([],e.flatMap(Ka,function(Kt){return Kt.relatedInformation}),!0),oa=void 0;if(e.every(Ka,function(Kt){return Kt.start===Ka[0].start&&Kt.length===Ka[0].length&&Kt.file===Ka[0].file})){var Mn=Ka[0],Ln=Mn.file,ci=Mn.start,Fr=Mn.length;oa={file:Ln,start:ci,length:Fr,code:cn.code,category:cn.category,messageText:cn,relatedInformation:jn}}else oa=e.createDiagnosticForNodeFromMessageChain(r,cn,jn);Lt(li[0],oa),rn.add(oa)}else if(Ti)rn.add(dk(r,[Ti],pr));else if(Ci)$b(Ci,r.typeArguments,!0,u);else{var jt=e.filter(i,function(Kt){return Xb(Kt,$e)});jt.length===0?rn.add(_7(r,i,$e)):z?u&&rn.add(Cy(r,u)):rn.add(dk(r,jt,pr))}return p7(r,tr,pr,!!t,o);function Lt(Kt,$t){var Ua,Yr,Ni=li,Hi=Ti,_t=Ci,gt=((Yr=(Ua=Kt.declaration)===null||Ua===void 0?void 0:Ua.symbol)===null||Yr===void 0?void 0:Yr.declarations)||e.emptyArray,Vt=gt.length>1,Fa=Vt?e.find(gt,function(Ga){return e.isFunctionLikeDeclaration(Ga)&&e.nodeIsPresent(Ga.body)}):void 0;if(Fa){var on=yl(Fa),Un=!on.typeParameters;ea([on],dt,Un)&&e.addRelatedInfo($t,e.createDiagnosticForNode(Fa,e.Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible))}li=Ni,Ti=Hi,Ci=_t}function ea(Kt,$t,Ua,Yr){if(Yr===void 0&&(Yr=!1),li=void 0,Ti=void 0,Ci=void 0,Ua){var Ni=Kt[0];if(e.some($e)||!D0(r,pr,Ni,Yr))return;if(Ey(r,pr,Ni,$t,0,!1,void 0)){li=[Ni];return}return Ni}for(var Hi=0;Hi0),xm(r),o||i.length===1||i.some(function(u){return!!u.typeParameters})?m7(r,i,t,s):d7(i)}function d7(r){var i=e.mapDefined(r,function(pr){return pr.thisParameter}),t;i.length&&(t=gk(i,i.map(mv)));for(var o=e.minAndMax(r,g7),s=o.min,u=o.max,h=[],z=function(pr){var Dr=e.mapDefined(r,function(Qr){return H(Qr)?pri.length;)o.pop();for(;o.length=i)return s;h>o&&(o=h,t=s)}return t}function D7(r,i,t){if(r.expression.kind===106){var o=Sb(r.expression);if(ta(o)){for(var s=0,u=r.arguments;s=0&&Xr(r.arguments[o],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var s=gm(r.expression);if(s===Bt)return Co;if(s=$s(s),nn(s))return Gl(r);if(ta(s))return r.typeArguments&&Xr(r,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),Fg(r);var u=ot(s,1);if(u.length){if(!T7(r,u[0]))return Gl(r);if(vk(u,function(Me){return!!(Me.flags&4)}))return Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r);var h=s.symbol&&e.getClassLikeDeclarationOfSymbol(s.symbol);return h&&e.hasSyntacticModifier(h,128)?(Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r)):mm(r,u,i,t,0)}var z=ot(s,0);if(z.length){var me=mm(r,z,i,t,0);return n||(me.declaration&&!Sl(me.declaration)&&yo(me)!==Fi&&Xr(r,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),T_(me)===Fi&&Xr(r,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),me}return rS(r.expression,s,1),Gl(r)}function vk(r,i){return e.isArray(r)?e.some(r,function(t){return vk(t,i)}):r.compositeKind===1048576?e.some(r.compositeSignatures,i):i(r)}function eS(r,i){var t=Qc(i);if(!e.length(t))return!1;var o=t[0];if(o.flags&2097152){for(var s=o.types,u=Wv(s),h=0,z=0,me=o.types;z0;if(i.flags&1048576){for(var z=i.types,me=!1,Me=0,$e=z;Me<$e.length;Me++){var tr=$e[Me],pr=ot(tr,t);if(pr.length!==0){if(me=!0,o)break}else if(o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(tr)),o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Not_all_constituents_of_type_0_are_callable:e.Diagnostics.Not_all_constituents_of_type_0_are_constructable,Ot(i))),me)break}me||(o=e.chainDiagnosticMessages(void 0,s?e.Diagnostics.No_constituent_of_type_0_is_callable:e.Diagnostics.No_constituent_of_type_0_is_constructable,Ot(i))),o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:e.Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,Ot(i)))}else o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(i));var Dr=s?e.Diagnostics.This_expression_is_not_callable:e.Diagnostics.This_expression_is_not_constructable;if(e.isCallExpression(r.parent)&&r.parent.arguments.length===0){var Qr=va(r).resolvedSymbol;Qr&&Qr.flags&32768&&(Dr=e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without)}return{messageChain:e.chainDiagnosticMessages(o,Dr),relatedMessage:h?e.Diagnostics.Did_you_forget_to_use_await:void 0}}function rS(r,i,t,o){var s=yk(r,i,t),u=s.messageChain,h=s.relatedMessage,z=e.createDiagnosticForNodeFromMessageChain(r,u);if(h&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,h)),e.isCallExpression(r.parent)){var me=pk(r.parent,!0),Me=me.start,$e=me.length;z.start=Me,z.length=$e}rn.add(z),hk(i,t,o?e.addRelatedInfo(z,o):z)}function hk(r,i,t){if(!!r.symbol){var o=Aa(r.symbol).originatingImport;if(o&&!e.isImportCall(o)){var s=ot(Jt(Aa(r.symbol).target),i);if(!s||!s.length)return;e.addRelatedInfo(t,e.createDiagnosticForNode(o,e.Diagnostics.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))}}}function x7(r,i,t){var o=yn(r.tag),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(!u.length){if(e.isArrayLiteralExpression(r.parent)){var z=e.createDiagnosticForNode(r.tag,e.Diagnostics.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);return rn.add(z),Gl(r)}return rS(r.tag,s,0),Gl(r)}return mm(r,u,i,t,0)}function E7(r){switch(r.parent.kind){case 257:case 226:return e.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;case 164:return e.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;case 167:return e.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;case 169:case 172:case 173:return e.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;default:return e.Debug.fail()}}function C7(r,i,t){var o=yn(r.expression),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(A7(r,u)){var z=e.getTextOfNode(r.expression,!1);return Xr(r,e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0,z),Gl(r)}var me=E7(r);if(!u.length){var Me=yk(r.expression,s,0),$e=e.chainDiagnosticMessages(Me.messageChain,me),tr=e.createDiagnosticForNodeFromMessageChain(r.expression,$e);return Me.relatedMessage&&e.addRelatedInfo(tr,e.createDiagnosticForNode(r.expression,Me.relatedMessage)),rn.add(tr),hk(s,0,tr),Gl(r)}return mm(r,u,i,t,0,me)}function S0(r,i){var t=Og(r),o=t&&dc(t),s=o&&qs(o,U.Element,788968),u=s&&Ur.symbolToEntityName(s,788968,r),h=e.factory.createFunctionTypeNode(void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,"props",void 0,Ur.typeToTypeNode(i,r))],u?e.factory.createTypeReferenceNode(u,void 0):e.factory.createKeywordTypeNode(130)),z=oo(1,"props");return z.type=i,Fu(h,void 0,void 0,[z],s?go(s):Pe,void 0,1,0)}function k7(r,i,t){if(dm(r.tagName)){var o=BC(r),s=S0(r,o);return op(Rg(r.attributes,l0(s,r),void 0,0),o,r.tagName,r.attributes),e.length(r.typeArguments)&&(e.forEach(r.typeArguments,io),rn.add(e.createDiagnosticForNodeArray(e.getSourceFileOfNode(r),r.typeArguments,e.Diagnostics.Expected_0_type_arguments_but_got_1,0,e.length(r.typeArguments)))),s}var u=yn(r.tagName),h=$s(u);if(nn(h))return Gl(r);var z=LC(u,r);return b0(u,h,z.length,0)?Fg(r):z.length===0?(Xr(r.tagName,e.Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures,e.getTextOfNode(r.tagName)),Gl(r)):mm(r,z,i,t,0)}function A7(r,i){return i.length&&e.every(i,function(t){return t.minArgumentCount===0&&!H(t)&&t.parameters.length<_k(r,t)})}function N7(r,i,t){switch(r.kind){case 208:return D7(r,i,t);case 209:return S7(r,i,t);case 210:return x7(r,i,t);case 165:return C7(r,i,t);case 280:case 279:return k7(r,i,t)}throw e.Debug.assertNever(r,"Branch in 'resolveSignature' should be unreachable.")}function Mg(r,i,t){var o=va(r),s=o.resolvedSignature;if(s&&s!==to&&!i)return s;o.resolvedSignature=to;var u=N7(r,i,t||0);return u!==to&&(o.resolvedSignature=ko===Ao?u:s),u}function Sl(r){var i;if(!r||!e.isInJSFile(r))return!1;var t=e.isFunctionDeclaration(r)||e.isFunctionExpression(r)?r:e.isVariableDeclaration(r)&&r.initializer&&e.isFunctionExpression(r.initializer)?r.initializer:void 0;if(t){if(e.getJSDocClassTag(r))return!0;var o=Et(t);return!!(!((i=o==null?void 0:o.members)===null||i===void 0)&&i.size)}return!1}function iS(r,i){var t,o;if(i){var s=Aa(i);if(!s.inferredClassSymbol||!s.inferredClassSymbol.has(y(r))){var u=e.isTransientSymbol(r)?r:Yl(r);return u.exports=u.exports||e.createSymbolTable(),u.members=u.members||e.createSymbolTable(),u.flags|=i.flags&32,!((t=i.exports)===null||t===void 0)&&t.size&&gu(u.exports,i.exports),!((o=i.members)===null||o===void 0)&&o.size&&gu(u.members,i.members),(s.inferredClassSymbol||(s.inferredClassSymbol=new e.Map)).set(y(u),u),u}return s.inferredClassSymbol.get(y(r))}}function P7(r){var i,t=r&&T0(r,!0),o=(i=t==null?void 0:t.exports)===null||i===void 0?void 0:i.get("prototype"),s=(o==null?void 0:o.valueDeclaration)&&I7(o.valueDeclaration);return s?Et(s):void 0}function T0(r,i){if(!!r.parent){var t,o;if(e.isVariableDeclaration(r.parent)&&r.parent.initializer===r){if(!e.isInJSFile(r)&&!(e.isVarConst(r.parent)&&e.isFunctionLikeDeclaration(r)))return;t=r.parent.name,o=r.parent}else if(e.isBinaryExpression(r.parent)){var s=r.parent,u=r.parent.operatorToken.kind;if(u===63&&(i||s.right===r))t=s.left,o=t;else if((u===56||u===60)&&(e.isVariableDeclaration(s.parent)&&s.parent.initializer===s?(t=s.parent.name,o=s.parent):e.isBinaryExpression(s.parent)&&s.parent.operatorToken.kind===63&&(i||s.parent.right===s)&&(t=s.parent.left,o=t),!t||!e.isBindableStaticNameExpression(t)||!e.isSameEntityName(t,s.left)))return}else i&&e.isFunctionDeclaration(r)&&(t=r.name,o=r);if(!(!o||!t||!i&&!e.getExpandoInitializer(r,e.isPrototypeAccess(t))))return Et(o)}}function I7(r){if(!r.parent)return!1;for(var i=r.parent;i&&i.kind===206;)i=i.parent;if(i&&e.isBinaryExpression(i)&&e.isPrototypeAccess(i.left)&&i.operatorToken.kind===63){var t=e.getInitializerOfBinaryExpression(i);return e.isObjectLiteralExpression(t)&&t}}function w7(r,i){var t;Wy(r,r.typeArguments);var o=Mg(r,void 0,i);if(o===to)return wt;if(x0(o,r),r.expression.kind===106)return Fi;if(r.kind===209){var s=o.declaration;if(s&&s.kind!==171&&s.kind!==175&&s.kind!==180&&!e.isJSDocConstructSignature(s)&&!Sl(s))return n&&Xr(r,e.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type),Oe}if(e.isInJSFile(r)&&xk(r))return Hm(r.arguments[0]);var u=yo(o);if(u.flags&12288&&Dk(r))return CD(e.walkUpParenthesizedExpressions(r.parent));if(r.kind===208&&!r.questionDotToken&&r.parent.kind===238&&u.flags&16384&&Yc(o)){if(!e.isDottedName(r.expression))Xr(r.expression,e.Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);else if(!i0(r)){var h=Xr(r.expression,e.Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);gy(r.expression,h)}}if(e.isInJSFile(r)){var z=T0(r,!1);if(!((t=z==null?void 0:z.exports)===null||t===void 0)&&t.size){var me=rs(z,z.exports,e.emptyArray,e.emptyArray,e.emptyArray);return me.objectFlags|=4096,Do([u,me])}}return u}function x0(r,i){if(r.declaration&&r.declaration.flags&268435456){var t=ky(i),o=e.tryGetPropertyAccessOrIdentifierToString(e.getInvokedExpression(i));vp(t,r.declaration,o,Ml(r))}}function ky(r){switch(r=e.skipParentheses(r),r.kind){case 208:case 165:case 209:return ky(r.expression);case 210:return ky(r.tag);case 280:case 279:return ky(r.tagName);case 207:return r.argumentExpression;case 206:return r.name;case 178:var i=r;return e.isQualifiedName(i.typeName)?i.typeName.right:i;default:return r}}function Dk(r){if(!e.isCallExpression(r))return!1;var i=r.expression;if(e.isPropertyAccessExpression(i)&&i.name.escapedText==="for"&&(i=i.expression),!e.isIdentifier(i)||i.escapedText!=="Symbol")return!1;var t=Ex(!1);return t?t===es(i,"Symbol",111551,void 0,void 0,!1):!1}function O7(r){if(SL(r),r.arguments.length===0)return Py(r,Oe);for(var i=r.arguments[0],t=Os(i),o=r.arguments.length>1?Os(r.arguments[1]):void 0,s=2;s=t-1)return i===t-1?s:Zs(Jc(s,nt));for(var u=[],h=[],z=[],me=i;me0&&(s=r.parameters.length-1+z)}}if(s===void 0){if(!t&&r.flags&32)return 0;s=r.minArgumentCount}if(o)return s;for(var me=s-1;me>=0;me--){var Me=$u(r,me);if(ec(Me,nk).flags&131072)break;s=me}r.resolvedMinArgumentCount=s}return r.resolvedMinArgumentCount}function Xl(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);return!Yn(i)||i.target.hasRestElement}return!1}function vv(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);if(!Yn(i))return i;if(i.target.hasRestElement)return Zm(i,i.target.fixedLength)}}function yv(r){var i=vv(r);return i&&!Tu(i)&&!ta(i)&&(bu(i).flags&131072)===0?i:void 0}function aS(r){return nS(r,ui)}function nS(r,i){return r.parameters.length>0?$u(r,0):i}function z7(r,i,t){for(var o=r.parameters.length-(H(r)?1:0),s=0;s0&&(u=Pa(Me,2)):me=ui;var $e=V7(r,i),tr=$e.yieldTypes,pr=$e.nextTypes;h=e.some(tr)?Pa(tr,2):void 0,z=e.some(pr)?Do(pr):void 0}else{var Dr=Bk(r,i);if(!Dr)return t&2?Py(r,ui):ui;if(Dr.length===0)return t&2?Py(r,Fi):Fi;u=Pa(Dr,2)}if(u||h||z){if(h&&Kh(r,h,3),u&&Kh(r,u,1),z&&Kh(r,z,2),u&&Vl(u)||h&&Vl(h)||z&&Vl(z)){var Qr=Pb(r),li=Qr?Qr===yl(r)?s?void 0:u:c0(yo(Qr),r):void 0;s?(h=XD(h,li,0,o),u=XD(u,li,1,o),z=XD(z,li,2,o)):u=Tw(u,li,o)}h&&(h=$c(h)),u&&(u=$c(u)),z&&(z=$c(z))}return s?Fk(h||ui,u||me,z||xC(2,r)||gr,o):o?Ny(u||me):u||me}function Fk(r,i,t,o){var s=o?St:pa,u=s.getGlobalGeneratorType(!1);if(r=s.resolveIterationType(r,void 0)||gr,i=s.resolveIterationType(i,void 0)||gr,t=s.resolveIterationType(t,void 0)||gr,u===kn){var h=s.getGlobalIterableIteratorType(!1),z=h!==kn?x6(h,s):void 0,me=z?z.returnType:Oe,Me=z?z.nextType:Tr;return ao(i,me)&&ao(Me,t)?h!==kn?$m(h,[r]):(s.getGlobalIterableIteratorType(!0),Ba):(s.getGlobalGeneratorType(!0),Ba)}return $m(u,[r,i,t])}function V7(r,i){var t=[],o=[],s=(e.getFunctionFlags(r)&2)!==0;return e.forEachYieldExpression(r.body,function(u){var h=u.expression?yn(u.expression,i):vi;e.pushIfUnique(t,Mk(u,h,Oe,s));var z;if(u.asteriskToken){var me=Jy(h,s?19:17,u.expression);z=me&&me.nextType}else z=ou(u);z&&e.pushIfUnique(o,z)}),{yieldTypes:t,nextTypes:o}}function Mk(r,i,t,o){var s=r.expression||r,u=r.asteriskToken?N_(o?19:17,i,t,s):i;return o?ag(u,s,r.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 oS(r,i,t,o){var s=0;if(o){for(var u=i;u=4)break;default:o!=null||(o=e.getSpanOfTokenAtPosition(t,r.pos)),rn.add(e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}}else{var t=e.getSourceFileOfNode(r);if(!Jd(t)){var o=e.getSpanOfTokenAtPosition(t,r.pos),s=e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);if(i&&i.kind!==171&&(e.getFunctionFlags(i)&2)===0){var u=e.createDiagnosticForNode(i,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(s,u)}rn.add(s)}}xb(r)&&Xr(r,e.Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer)}function iO(r){fe(function(){return rO(r)});var i=yn(r.expression),t=xv(i,!0,r,e.Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);return t===i&&!nn(t)&&!(i.flags&3)&&Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression)),t}function tO(r){var i=yn(r.operand);if(i===Bt)return Bt;switch(r.operand.kind){case 8:switch(r.operator){case 40:return Sg(If(-r.operand.text));case 39:return Sg(If(+r.operand.text))}break;case 9:if(r.operator===40)return Sg(ED({negative:!0,base10Value:e.parsePseudoBigInt(r.operand.text)}))}switch(r.operator){case 39:case 40:case 54:return bl(i,r.operand),A0(i,12288)&&Xr(r.operand,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(r.operator)),r.operator===39?(fs(i,2112)&&Xr(r.operand,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1,e.tokenToString(r.operator),Ot(Kl(i))),nt):cS(i);case 53:Bg(r.operand);var t=cp(i)&12582912;return t===4194304?xt:t===8388608?Dt:Ii;case 45:case 46:var o=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return o&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}return Pe}function aO(r){var i=yn(r.operand);if(i===Bt)return Bt;var t=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return t&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}function cS(r){return fs(r,2112)?Ns(r,3)||fs(r,296)?At:Mt:nt}function A0(r,i){if(fs(r,i))return!0;var t=Hd(r);return!!t&&fs(t,i)}function fs(r,i){if(r.flags&i)return!0;if(r.flags&3145728)for(var t=r.types,o=0,s=t;o1&&i.charCodeAt(t-1)>=48&&i.charCodeAt(t-1)<=57;)t--;for(var o=i.slice(0,t),s=1;;s++){var u=o+s;if(!pS(r,u))return u}}function Qk(r){var i=ig(r);if(i&&!i.typeParameters)return yo(i)}function xO(r){var i=yn(r.expression),t=cv(i,r.expression),o=Qk(i);return o&&zh(o,r,t!==i)}function Gs(r){var i=Yk(r);if(i)return i;if(r.flags&134217728&&Zc){var t=Zc[A(r)];if(t)return t}var o=xc,s=yn(r);if(xc!==o){var u=Zc||(Zc=[]);u[A(r)]=s,e.setNodeFlags(r,r.flags|134217728)}return s}function Yk(r){var i=e.skipParentheses(r,!0);if(e.isJSDocTypeAssertion(i)){var t=e.getJSDocTypeAssertionType(i);if(!e.isConstTypeReference(t))return Va(t)}if(i=e.skipParentheses(r),e.isCallExpression(i)&&i.expression.kind!==106&&!e.isRequireCall(i,!0)&&!Dk(i)){var t=e.isCallChain(i)?xO(i):Qk(gm(i.expression));if(t)return t}else{if(e.isAssertionExpression(i)&&!e.isConstTypeReference(i.type))return Va(i.type);if(r.kind===8||r.kind===10||r.kind===110||r.kind===95)return yn(r)}}function Oy(r){var i=va(r);if(i.contextFreeType)return i.contextFreeType;var t=r.contextualType;r.contextualType=Oe;try{var o=i.contextFreeType=yn(r,4);return o}finally{r.contextualType=t}}function yn(r,i,t){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkExpression",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var o=Ie;Ie=r,Ee=0;var s=kO(r,i,t),u=Hk(r,s,i);return uS(u)&&EO(r,u),Ie=o,e.tracing===null||e.tracing===void 0||e.tracing.pop(),u}function EO(r,i){var t=r.parent.kind===206&&r.parent.expression===r||r.parent.kind===207&&r.parent.expression===r||(r.kind===79||r.kind===161)&&W0(r)||r.parent.kind===181&&r.parent.exprName===r||r.parent.kind===275;if(t||Xr(r,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),ye.isolatedModules){e.Debug.assert(!!(i.symbol.flags&128));var o=i.symbol.valueDeclaration;o.flags&16777216&&Xr(r,e.Diagnostics.Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided)}}function CO(r,i){if(e.hasJSDocNodes(r)&&e.isJSDocTypeAssertion(r)){var t=e.getJSDocTypeAssertionType(r);return Ck(t,t,r.expression,i)}return yn(r.expression,i)}function kO(r,i,t){var o=r.kind;if(g)switch(o){case 226:case 213:case 214:g.throwIfCancellationRequested()}switch(o){case 79:return O8(r,i);case 80:return z5(r);case 108:return yy(r);case 106:return Sb(r);case 104:return ct;case 14:case 10:return Sg(Bu(r.text));case 8:return KS(r),Sg(If(+r.text));case 9:return yL(r),Sg(ED({negative:!1,base10Value:e.parsePseudoBigInt(r.text)}));case 110:return Dt;case 95:return xt;case 223:return mO(r);case 13:return Wa;case 204:return PC(r,i,t);case 205:return S5(r,i);case 206:return VC(r,i);case 161:return KC(r,i);case 207:return a7(r,i);case 208:if(r.expression.kind===100)return O7(r);case 209:return w7(r,i);case 210:return F7(r);case 212:return CO(r,i);case 226:return nM(r);case 213:case 214:return Jk(r,i);case 216:return Z7(r);case 211:case 229:return M7(r);case 230:return R7(r);case 228:return kk(r);case 231:return B7(r);case 215:return Y7(r);case 217:return eO(r);case 218:return iO(r);case 219:return tO(r);case 220:return aO(r);case 221:return Ir(r,i);case 222:return gO(r,i);case 225:return v5(r,i);case 227:return vi;case 224:return dO(r);case 232:return y5(r);case 288:return M5(r,i);case 278:return C5(r,i);case 279:return x5(r,i);case 282:return k5(r);case 286:return N5(r,i);case 280:e.Debug.fail("Shouldn't ever directly check a JsxOpeningElement")}return Pe}function $k(r){sA(r),r.expression&&Hs(r.expression,e.Diagnostics.Type_expected),io(r.constraint),io(r.default);var i=Js(Et(r));uc(i),X1(i)||Xr(r.default,e.Diagnostics.Type_parameter_0_has_a_circular_default,Ot(i));var t=Tc(i),o=D_(i);t&&o&&zc(o,Rc(un(t,Yd(i,o)),o),r.default,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1),xm(r),fe(function(){return Tm(r.name,e.Diagnostics.Type_parameter_name_cannot_be_0)})}function AO(r){if(e.isInterfaceDeclaration(r.parent)||e.isClassLike(r.parent)||e.isTypeAliasDeclaration(r.parent)){var i=Js(Et(r)),t=WD(i);if(t){var o=Et(r.parent);if(e.isTypeAliasDeclaration(r.parent)&&!(e.getObjectFlags(go(o))&48))Xr(r,e.Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);else if(t===32768||t===65536){var s=ly(o,i,t===65536?Da:Rn),u=ly(o,i,t===65536?Rn:Da),h=i;_e=i,zc(s,u,r,e.Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation),_e=h}}}}function Zk(r){Ff(r),L0(r);var i=e.getContainingFunction(r);e.hasSyntacticModifier(r,16476)&&(i.kind===171&&e.nodeIsPresent(i.body)||Xr(r,e.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation),i.kind===171&&e.isIdentifier(r.name)&&r.name.escapedText==="constructor"&&Xr(r.name,e.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name)),r.questionToken&&e.isBindingPattern(r.name)&&i.body&&Xr(r,e.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),r.name&&e.isIdentifier(r.name)&&(r.name.escapedText==="this"||r.name.escapedText==="new")&&(i.parameters.indexOf(r)!==0&&Xr(r,e.Diagnostics.A_0_parameter_must_be_the_first_parameter,r.name.escapedText),(i.kind===171||i.kind===175||i.kind===180)&&Xr(r,e.Diagnostics.A_constructor_cannot_have_a_this_parameter),i.kind===214&&Xr(r,e.Diagnostics.An_arrow_function_cannot_have_a_this_parameter),(i.kind===172||i.kind===173)&&Xr(r,e.Diagnostics.get_and_set_accessors_cannot_declare_this_parameters)),r.dotDotDotToken&&!e.isBindingPattern(r.name)&&!ao(bu(Jt(r.symbol)),Go)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_of_an_array_type)}function NO(r){var i=PO(r);if(!i){Xr(r,e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return}var t=yl(i),o=Yc(t);if(!!o){io(r.type);var s=r.parameterName;if(o.kind===0||o.kind===2)Ch(s);else if(o.parameterIndex>=0){if(H(t)&&o.parameterIndex===t.parameters.length-1)Xr(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)};zc(o.type,Jt(t.parameters[o.parameterIndex]),r.type,void 0,u)}}else if(s){for(var h=!1,z=0,me=i.parameters;z0&&i.declarations[0]!==r)return}var t=tx(Et(r));if(t!=null&&t.declarations){for(var o=new e.Map,s=function(me){me.parameters.length===1&&me.parameters[0].type&&Od(Va(me.parameters[0].type),function(Me){var $e=o.get(fu(Me));$e?$e.declarations.push(me):o.set(fu(Me),{type:Me,declarations:[me]})})},u=0,h=t.declarations;u1)for(var Me=0,$e=me.declarations;Me<$e.length;Me++){var tr=$e[Me];Xr(tr,e.Diagnostics.Duplicate_index_signature_for_type_0,Ot(me.type))}})}}function i6(r){!Ff(r)&&!pL(r)&&Q0(r.name),L0(r),gS(r),e.hasSyntacticModifier(r,128)&&r.kind===167&&r.initializer&&Xr(r,e.Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract,e.declarationNameToString(r.name))}function OO(r){return e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),i6(r)}function FO(r){dA(r)||Q0(r.name),f6(r),e.hasSyntacticModifier(r,128)&&r.kind===169&&r.body&&Xr(r,e.Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,e.declarationNameToString(r.name)),e.isPrivateIdentifier(r.name)&&!e.getContainingClass(r)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),gS(r)}function gS(r){if(e.isPrivateIdentifier(r.name)&&Ae<99){for(var i=e.getEnclosingBlockScopeContainer(r);i;i=e.getEnclosingBlockScopeContainer(i))va(i).flags|=67108864;if(e.isClassExpression(r.parent)){var t=hb(r.parent);t&&(va(r.name).flags|=524288,va(t).flags|=65536)}}}function MO(r){Ff(r),e.forEachChild(r,io)}function LO(r){Dv(r),fL(r)||_L(r),io(r.body);var i=Et(r),t=e.getDeclarationOfKind(i,r.kind);if(r===t&&O0(i),e.nodeIsMissing(r.body))return;fe(s);return;function o(u){return e.isPrivateIdentifierClassElementDeclaration(u)?!0:u.kind===167&&!e.isStatic(u)&&!!u.initializer}function s(){var u=r.parent;if(e.getClassExtendsHeritageElement(u)){Db(r.parent,u);var h=yC(u),z=vC(r.body);if(z){h&&Xr(z,e.Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null);var me=(e.getEmitScriptTarget(ye)!==99||!ir)&&(e.some(r.parent.members,o)||e.some(r.parameters,function(Dr){return e.hasSyntacticModifier(Dr,16476)}));if(me)if(!RO(z,r.body))Xr(z,e.Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers);else{for(var Me=void 0,$e=0,tr=r.body.statements;$e1){var t=Aa(i);if(!t.typeParametersChecked){t.typeParametersChecked=!0;var o=Js(i),s=e.getDeclarationsOfKind(i,163);if(!F6(s,[o],function(Me){return[Me]}))for(var u=tn(i),h=0,z=s;h0}function yS(r){var i;if(r.flags&16777216){var t=oD(!1);return!!t&&r.aliasSymbol===t&&((i=r.aliasTypeArguments)===null||i===void 0?void 0:i.length)===1}return!1}function Ev(r){return r.flags&1048576?Ss(r,Ev):yS(r)?r.aliasTypeArguments[0]:r}function tF(r){if(ta(r)||yS(r))return r;if(Ad(r)){var i=uc(r);if(!i||i.flags&3||Of(i)||s6(i)){var t=oD(!0);if(t)return am(t,[Ev(r)])}}return e.Debug.assert(Tv(r)===void 0,"type provided should not be a non-generic 'promise'-like."),r}function ag(r,i,t,o){var s=k_(r,i,t,o);return s&&tF(s)}function k_(r,i,t,o){if(ta(r)||yS(r))return r;var s=r;if(s.awaitedTypeOfType)return s.awaitedTypeOfType;if(r.flags&1048576){var u=i?function(me){return k_(me,i,t,o)}:k_;return s.awaitedTypeOfType=Ss(r,u)}var h=Tv(r);if(h){if(r.id===h.id||qa.lastIndexOf(h.id)>=0){i&&Xr(i,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);return}qa.push(r.id);var z=k_(h,i,t,o);return qa.pop(),z?s.awaitedTypeOfType=z:void 0}if(s6(r)){i&&(e.Debug.assertIsDefined(t),Xr(i,t,o));return}return s.awaitedTypeOfType=r}function aF(r,i){var t=Va(i);if(Ae>=2){if(nn(t))return;var o=ay(!0);if(o!==kn&&!Xf(t,o)){Xr(i,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,Ot(k_(t)||Fi));return}}else{if(oF(i),nn(t))return;var s=e.getEntityNameFromTypeNode(i);if(s===void 0){Xr(i,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,Ot(t));return}var u=Ds(s,111551,!0),h=u?Jt(u):Pe;if(nn(h)){s.kind===79&&s.escapedText==="Promise"&&bd(t)===ay(!1)?Xr(i,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):Xr(i,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 z=b3(!0);if(z===Ba){Xr(i,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(!zc(h,z,i,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),Me=qs(r.locals,me.escapedText,111551);if(Me){Xr(Me.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(me),e.entityNameToString(s));return}}xv(t,!1,r,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}function nF(r){var i=Mg(r);x0(i,r);var t=yo(i);if(!(t.flags&1)){var o,s;switch(r.parent.kind){case 257:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var u=Et(r.parent),h=Jt(u);s=Pa([h,Fi]);break;case 167:case 164:o=e.Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any,s=Fi;break;case 169:case 172:case 173:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var z=Bd(r.parent),me=Px(z);s=Pa([me,Fi]);break;default:return e.Debug.fail()}zc(t,s,r,o)}}function oF(r){c6(r&&e.getEntityNameFromTypeNode(r),!1)}function c6(r,i){if(!!r){var t=e.getFirstIdentifier(r),o=(r.kind===79?788968:1920)|2097152,s=es(t,t.escapedText,o,void 0,void 0,!0);if(s&&s.flags&2097152){if(gc(s)&&!Av(Ps(s))&&!vu(s))As(s);else if(i&&ye.isolatedModules&&e.getEmitModuleKind(ye)>=e.ModuleKind.ES2015&&!gc(s)&&!e.some(s.declarations,e.isTypeOnlyImportOrExportDeclaration)){var u=Xr(r,e.Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled),h=e.find(s.declarations||e.emptyArray,yf);h&&e.addRelatedInfo(u,e.createDiagnosticForNode(h,e.Diagnostics._0_was_imported_here,e.idText(t)))}}}}function bm(r){var i=hS(r);i&&e.isEntityName(i)&&c6(i,!0)}function hS(r){if(r)switch(r.kind){case 188:case 187:return u6(r.types);case 189:return u6([r.trueType,r.falseType]);case 191:case 197:return hS(r.type);case 178:return r.typeName}}function u6(r){for(var i,t=0,o=r;t0),t.length>1&&Xr(t[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var o=l6(r.class.expression),s=e.getClassExtendsHeritageElement(i);if(s){var u=l6(s.expression);u&&o.escapedText!==u.escapedText&&Xr(o,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(r.tagName),e.idText(o),e.idText(u))}}function mF(r){var i=e.getJSDocHost(r);i&&e.isPrivateIdentifierClassElementDeclaration(i)&&Xr(r,e.Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier)}function l6(r){switch(r.kind){case 79:return r;case 206:return r.name;default:return}}function f6(r){var i;Fy(r),Dv(r);var t=e.getFunctionFlags(r);if(r.name&&r.name.kind===162&&t_(r.name),Td(r)){var o=Et(r),s=r.localSymbol||o,u=(i=s.declarations)===null||i===void 0?void 0:i.find(function(Me){return Me.kind===r.kind&&!(Me.flags&262144)});r===u&&O0(s),o.parent&&O0(o)}var h=r.kind===168?void 0:r.body;if(io(h),sS(r,yg(r)),fe(me),e.isInJSFile(r)){var z=e.getJSDocTypeTag(r);z&&z.typeExpression&&!Nb(Va(z.typeExpression),r)&&Xr(z.typeExpression.type,e.Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature)}function me(){e.getEffectiveReturnTypeNode(r)||(e.nodeIsMissing(h)&&!I0(r)&&Xp(r,Oe),t&1&&e.nodeIsPresent(h)&&yo(yl(r)))}}function A_(r){fe(i);function i(){var t=e.getSourceFileOfNode(r),o=Fo.get(t.path);o||(o=[],Fo.set(t.path,o)),o.push(r)}}function _6(r,i){for(var t=0,o=r;t=2||!e.hasRestParameter(r)||r.flags&16777216||e.nodeIsMissing(r.body)||e.forEach(r.parameters,function(i){i.name&&!e.isBindingPattern(i.name)&&i.name.escapedText===or.escapedName&&Es("noEmit",i,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)})}function Cv(r,i,t){if((i==null?void 0:i.escapedText)!==t||r.kind===167||r.kind===166||r.kind===169||r.kind===168||r.kind===172||r.kind===173||r.kind===296||r.flags&16777216||(e.isImportClause(r)||e.isImportEqualsDeclaration(r)||e.isImportSpecifier(r))&&e.isTypeOnlyImportOrExportDeclaration(r))return!1;var o=e.getRootDeclaration(r);return!(e.isParameter(o)&&e.nodeIsMissing(o.parent.body))}function SF(r){e.findAncestor(r,function(i){if(Ug(i)&4){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0}return!1})}function TF(r){e.findAncestor(r,function(i){if(Ug(i)&8){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0}return!1})}function xF(r,i){if(!(er>=e.ModuleKind.ES2015&&!(er>=e.ModuleKind.Node16&&e.getSourceFileOfNode(r).impliedNodeFormat===e.ModuleKind.CommonJS))&&!(!i||!Cv(r,i,"require")&&!Cv(r,i,"exports"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&Es("noEmit",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(i),e.declarationNameToString(i))}}function EF(r,i){if(!(!i||Ae>=4||!Cv(r,i,"Promise"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&t.flags&2048&&Es("noEmit",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(i),e.declarationNameToString(i))}}function CF(r,i){Ae<=8&&(Cv(r,i,"WeakMap")||Cv(r,i,"WeakSet"))&&bn.push(r)}function kF(r){var i=e.getEnclosingBlockScopeContainer(r);Ug(i)&67108864&&(e.Debug.assert(e.isNamedDeclaration(r)&&e.isIdentifier(r.name)&&typeof r.name.escapedText=="string","The target of a WeakMap/WeakSet collision check should be an identifier"),Es("noEmit",r,e.Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel,r.name.escapedText))}function AF(r,i){i&&Ae>=2&&Ae<=8&&Cv(r,i,"Reflect")&&_a.push(r)}function NF(r){var i=!1;if(e.isClassExpression(r))for(var t=0,o=r.members;t1&&e.some(Dr.declarations,function($i){return $i!==r&&e.isVariableLike($i)&&!y6($i,r)})&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}else{var Ci=kv(sc(r));!nn(Qr)&&!nn(Ci)&&!wf(Qr,Ci)&&!(Dr.flags&67108864)&&v6(Dr.valueDeclaration,Qr,r,Ci),r.initializer&&op(Os(r.initializer),Ci,r,r.initializer,void 0),Dr.valueDeclaration&&!y6(r,Dr.valueDeclaration)&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}r.kind!==167&&r.kind!==166&&(bv(r),(r.kind===254||r.kind===203)&&PF(r),Sm(r,r.name))}}function v6(r,i,t,o){var s=e.getNameOfDeclaration(t),u=t.kind===167||t.kind===166?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,h=e.declarationNameToString(s),z=Xr(s,u,h,Ot(i),Ot(o));r&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,e.Diagnostics._0_was_also_declared_here,h))}function y6(r,i){if(r.kind===164&&i.kind===254||r.kind===254&&i.kind===164)return!0;if(e.hasQuestionToken(r)!==e.hasQuestionToken(i))return!1;var t=504;return e.getSelectedEffectiveModifierFlags(r,t)===e.getSelectedEffectiveModifierFlags(i,t)}function SS(r){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkVariableDeclaration",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath}),sL(r),L0(r),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function IF(r){return aL(r),L0(r)}function wF(r){!Ff(r)&&!VS(r.declarationList)&&cL(r),e.forEach(r.declarationList.declarations,io)}function OF(r){Mf(r),yn(r.expression)}function FF(r){Mf(r),Bg(r.expression),TS(r.expression,r.thenStatement),io(r.thenStatement),r.thenStatement.kind===236&&Xr(r.thenStatement,e.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement),io(r.elseStatement)}function TS(r,i){if(!Ye)return;for(t(r,i);e.isBinaryExpression(r)&&r.operatorToken.kind===56;)r=r.left,t(r,i);function t(o,s){var u=e.isBinaryExpression(o)&&(o.operatorToken.kind===56||o.operatorToken.kind===55)?o.right:o;if(!e.isModuleExportsAccessExpression(u)){var h=Bg(u),z=e.isPropertyAccessExpression(u)&&Vk(u.expression);if(!(ju(h)||z)){var me=ot(h,0),Me=!!Sv(h);if(!(me.length===0&&!Me)){var $e=e.isIdentifier(u)?u:e.isPropertyAccessExpression(u)?u.name:e.isBinaryExpression(u)&&e.isIdentifier(u.right)?u.right:void 0,tr=$e&&el($e);if(!(!tr&&!Me)){var pr=tr&&e.isBinaryExpression(o.parent)&&LF(o.parent,tr)||tr&&s&&MF(o,s,$e,tr);pr||(Me?zu(u,!0,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined,q_(h)):Xr(u,e.Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead))}}}}}}function MF(r,i,t,o){return!!e.forEachChild(i,function s(u){if(e.isIdentifier(u)){var h=el(u);if(h&&h===o){if(e.isIdentifier(r)||e.isIdentifier(t)&&e.isBinaryExpression(t.parent))return!0;for(var z=t.parent,me=u.parent;z&&me;){if(e.isIdentifier(z)&&e.isIdentifier(me)||z.kind===108&&me.kind===108)return el(z)===el(me);if(e.isPropertyAccessExpression(z)&&e.isPropertyAccessExpression(me)){if(el(z.name)!==el(me.name))return!1;me=me.expression,z=z.expression}else if(e.isCallExpression(z)&&e.isCallExpression(me))me=me.expression,z=z.expression;else return!1}}}return e.forEachChild(u,s)})}function LF(r,i){for(;e.isBinaryExpression(r)&&r.operatorToken.kind===55;){var t=e.forEachChild(r.right,function o(s){if(e.isIdentifier(s)){var u=el(s);if(u&&u===i)return!0}return e.forEachChild(s,o)});if(t)return!0;r=r.parent}return!1}function RF(r){Mf(r),io(r.statement),Bg(r.expression)}function BF(r){Mf(r),Bg(r.expression),io(r.statement)}function h6(r,i){return r.flags&16384&&Xr(i,e.Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness),r}function Bg(r,i){return h6(yn(r,i),r)}function JF(r){Mf(r)||r.initializer&&r.initializer.kind===255&&VS(r.initializer),r.initializer&&(r.initializer.kind===255?e.forEach(r.initializer.declarations,SS):yn(r.initializer)),r.condition&&Bg(r.condition),r.incrementor&&yn(r.incrementor),io(r.statement),r.locals&&A_(r)}function jF(r){pA(r);var i=e.getContainingFunctionOrClassStaticBlock(r);if(r.awaitModifier)if(i&&e.isClassStaticBlockDeclaration(i))Tt(r.awaitModifier,e.Diagnostics.For_await_loops_cannot_be_used_inside_a_class_static_block);else{var t=e.getFunctionFlags(i);(t&6)===2&&Ae<99&&fc(r,16384)}else ye.downlevelIteration&&Ae<2&&fc(r,256);if(r.initializer.kind===255)D6(r);else{var o=r.initializer,s=By(r);if(o.kind===204||o.kind===205)Rd(o,s||Pe);else{var u=yn(o);hv(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&&op(s,u,o,r.expression)}}io(r.statement),r.locals&&A_(r)}function UF(r){pA(r);var i=jb(yn(r.expression));if(r.initializer.kind===255){var t=r.initializer.declarations[0];t&&e.isBindingPattern(t.name)&&Xr(t.name,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern),D6(r)}else{var o=r.initializer,s=yn(o);o.kind===204||o.kind===205?Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern):ao(oI(i),s)?hv(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):Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any)}(i===ui||!Ns(i,126091264))&&Xr(r.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,Ot(i)),io(r.statement),r.locals&&A_(r)}function D6(r){var i=r.initializer;if(i.declarations.length>=1){var t=i.declarations[0];SS(t)}}function By(r){var i=r.awaitModifier?15:13;return N_(i,gm(r.expression),Tr,r.expression)}function N_(r,i,t,o){return ta(i)?i:xS(r,i,t,o,!0)||Oe}function xS(r,i,t,o,s){var u=(r&2)!==0;if(i===ui){AS(o,i,u);return}var h=Ae>=2,z=!h&&ye.downlevelIteration,me=ye.noUncheckedIndexedAccess&&!!(r&128);if(h||z||u){var Me=Jy(i,r,h?o:void 0);if(s&&Me){var $e=r&8?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:r&32?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:r&64?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:r&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;$e&&zc(t,Me.nextType,o,$e)}if(Me||h)return me?fv(Me&&Me.yieldType):Me&&Me.yieldType}var tr=i,pr=!1,Dr=!1;if(r&4){if(tr.flags&1048576){var Qr=i.types,li=e.filter(Qr,function(Ra){return!(Ra.flags&402653316)});li!==Qr&&(tr=Pa(li,2))}else tr.flags&402653316&&(tr=ui);if(Dr=tr!==i,Dr&&(Ae<1&&o&&(Xr(o,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),pr=!0),tr.flags&131072))return me?fv(Li):Li}if(!sp(tr)){if(o&&!pr){var Ti=!!(r&4)&&!Dr,Ci=Nt(Ti,z),$i=Ci[0],Zi=Ci[1];zu(o,Zi&&!!Sv(tr),$i,Ot(tr))}return Dr?me?fv(Li):Li:void 0}var qt=cs(tr,nt);if(Dr&&qt)return qt.flags&402653316&&!ye.noUncheckedIndexedAccess?Li:Pa(me?[qt,Li,Tr]:[qt,Li],2);return r&128?fv(qt):qt;function Nt(Ra,ca){var Sn;if(ca)return Ra?[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 ja=b6(r,0,i,void 0);return ja?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!1]:zF((Sn=i.symbol)===null||Sn===void 0?void 0:Sn.escapedName)?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!0]:Ra?[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 zF(r){switch(r){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 b6(r,i,t,o){if(!ta(t)){var s=Jy(t,r,o);return s&&s[j(i)]}}function a_(r,i,t){if(r===void 0&&(r=ui),i===void 0&&(i=ui),t===void 0&&(t=gr),r.flags&67359327&&i.flags&180227&&t.flags&180227){var o=Su([r,i,t]),s=Oo.get(o);return s||(s={yieldType:r,returnType:i,nextType:t},Oo.set(o,s)),s}return{yieldType:r,returnType:i,nextType:t}}function S6(r){for(var i,t,o,s=0,u=r;s1)for(var pr=0,Dr=o;pr=1&&r.escapedText==="Object"&&(ero)return!1;for(var $e=0;$e=o&&z.pos<=s){var me=e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(me.expression,me),e.setParent(me,z),me.flowNode=z.returnFlowNode;var Me=up(me,i,i_(i));if(!(ju(Me)&32768))return!0}}return!1}function j6(r,i,t){var o=e.isComputedPropertyName(r)?e.factory.createElementAccessExpression(e.factory.createThis(),r.expression):e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(o.expression,o),e.setParent(o,t),o.flowNode=t.returnFlowNode;var s=up(o,i,i_(i));return!(ju(s)&32768)}function vM(r){Ff(r)||X9(r),jy(r.typeParameters),fe(function(){Tm(r.name,e.Diagnostics.Interface_name_cannot_be_0),bv(r);var i=Et(r);O6(i);var t=e.getDeclarationOfKind(i,258);if(r===t){var o=go(i),s=Rc(o);if(dM(o,r.name)){for(var u=0,h=Qc(o);u>tr;case 49:return $e>>>tr;case 47:return $e<1){var o=e.isEnumConst(r);e.forEach(i.declarations,function(u){e.isEnumDeclaration(u)&&e.isEnumConst(u)!==o&&Xr(e.getNameOfDeclaration(u),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)})}var s=!1;e.forEach(i.declarations,function(u){if(u.kind!==260)return!1;var h=u;if(!h.members.length)return!1;var z=h.members[0];z.initializer||(s?Xr(z.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):s=!0)})}}function TM(r){e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier)}function xM(r){var i=r.declarations;if(i)for(var t=0,o=i;t1&&V(r,e.shouldPreserveConstEnums(ye))){var z=xM(h);z&&(e.getSourceFileOfNode(r)!==e.getSourceFileOfNode(z)?Xr(r.name,e.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):r.pos=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat===void 0&&!r.isTypeOnly&&!(r.flags&16777216)&&Tt(r,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 PM(r){if(!Uy(r,e.isInJSFile(r)?e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)){if(!Ff(r)&&e.hasSyntacticModifiers(r)&&Hs(r,e.Diagnostics.An_export_declaration_cannot_have_modifiers),r.moduleSpecifier&&r.exportClause&&e.isNamedExports(r.exportClause)&&e.length(r.exportClause.elements)&&Ae===0&&fc(r,4194304),IM(r),!r.moduleSpecifier||wS(r))if(r.exportClause&&!e.isNamespaceExport(r.exportClause)){e.forEach(r.exportClause.elements,RM);var i=r.parent.kind===262&&e.isAmbientModule(r.parent.parent),t=!i&&r.parent.kind===262&&!r.moduleSpecifier&&r.flags&16777216;r.parent.kind!==305&&!i&&!t&&Xr(r,e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace)}else{var o=ac(r,r.moduleSpecifier);o&&ll(o)?Xr(r.moduleSpecifier,e.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,tn(o)):r.exportClause&&j0(r.exportClause),er!==e.ModuleKind.System&&(er=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat!==e.ModuleKind.CommonJS?Tt(r,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):er===e.ModuleKind.System&&Tt(r,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}}function JM(r){return e.forEachEntry(r.exports,function(i,t){return t!=="export="})}function V6(r){var i=Et(r),t=Aa(i);if(!t.exportsChecked){var o=i.exports.get("export=");if(o&&JM(i)){var s=ru(o)||o.valueDeclaration;s&&!Xu(s)&&!e.isInJSFile(s)&&Xr(s,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}var u=Pu(i);u&&u.forEach(function(h,z){var me=h.declarations,Me=h.flags;if(z!=="__export"&&!(Me&1920)){var $e=e.countWhere(me,e.and(O,e.not(e.isInterfaceDeclaration)));if(!(Me&524288&&$e<=2)&&$e>1&&!z0(me))for(var tr=0,pr=me;tr1&&r.every(function(i){return e.isInJSFile(i)&&e.isAccessExpression(i)&&(e.isExportsIdentifier(i.expression)||e.isModuleExportsAccessExpression(i.expression))})}function io(r){if(r){var i=Ie;Ie=r,Ee=0,jM(r),Ie=i}}function jM(r){e.isInJSFile(r)&&e.forEach(r.jsDoc,function(t){var o=t.tags;return e.forEach(o,io)});var i=r.kind;if(g)switch(i){case 261:case 257:case 258:case 256:g.throwIfCancellationRequested()}switch(i>=237&&i<=253&&r.flowNode&&!my(r.flowNode)&&Ic(ye.allowUnreachableCode===!1,r,e.Diagnostics.Unreachable_code_detected),i){case 163:return $k(r);case 164:return Zk(r);case 167:return i6(r);case 166:return OO(r);case 180:case 179:case 174:case 175:case 176:return Dv(r);case 169:case 168:return FO(r);case 170:return MO(r);case 171:return LO(r);case 172:case 173:return a6(r);case 178:return vS(r);case 177:return NO(r);case 181:return jO(r);case 182:return UO(r);case 183:return zO(r);case 184:return WO(r);case 187:case 188:return qO(r);case 191:case 185:case 186:return io(r.type);case 192:return HO(r);case 193:return XO(r);case 189:return QO(r);case 190:return YO(r);case 198:return $O(r);case 200:return ZO(r);case 197:return eF(r);case 328:return gF(r);case 329:return dF(r);case 345:case 338:case 339:return cF(r);case 344:return uF(r);case 343:return lF(r);case 340:return fF(r);case 347:return _F(r);case 317:pF(r);case 315:case 314:case 312:case 313:case 322:K6(r),e.forEachChild(r,io);return;case 318:UM(r);return;case 309:return io(r.type);case 333:case 335:case 334:return mF(r);case 194:return VO(r);case 195:return KO(r);case 256:return sF(r);case 235:case 262:return M0(r);case 237:return wF(r);case 238:return OF(r);case 239:return FF(r);case 240:return RF(r);case 241:return BF(r);case 242:return JF(r);case 243:return UF(r);case 244:return jF(r);case 245:case 246:return HF(r);case 247:return XF(r);case 248:return QF(r);case 249:return YF(r);case 250:return $F(r);case 251:return ZF(r);case 252:return eM(r);case 254:return SS(r);case 203:return IF(r);case 257:return sM(r);case 258:return vM(r);case 259:return yM(r);case 260:return bM(r);case 261:return CM(r);case 266:return AM(r);case 265:return NM(r);case 272:return PM(r);case 271:return BM(r);case 236:case 253:Mf(r);return;case 276:return BO(r)}}function K6(r){e.isInJSFile(r)||Tt(r,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function UM(r){K6(r),io(r.type);var i=r.parent;if(e.isParameter(i)&&e.isJSDocFunctionType(i.parent)){e.last(i.parent.parameters)!==i&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);return}e.isJSDocTypeExpression(i)||Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var t=r.parent.parent;if(!e.isJSDocParameterTag(t)){Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);return}var o=e.getParameterSymbolFromJSDoc(t);if(!!o){var s=e.getHostSignatureFromJSDoc(t);(!s||e.last(s.parameters).symbol!==o)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list)}}function zM(r){var i=Va(r.type),t=r.parent,o=r.parent.parent;if(e.isJSDocTypeExpression(r.parent)&&e.isJSDocParameterTag(o)){var s=e.getHostSignatureFromJSDoc(o),u=e.isJSDocCallbackTag(o.parent.parent);if(s||u){var h=u?e.lastOrUndefined(o.parent.parent.typeExpression.parameters):e.lastOrUndefined(s.parameters),z=e.getParameterSymbolFromJSDoc(o);if(!h||z&&h.symbol===z&&e.isRestParameter(h))return Zs(i)}}return e.isParameter(t)&&e.isJSDocFunctionType(t.parent)?Zs(i):kc(i)}function xm(r){var i=e.getSourceFileOfNode(r),t=va(i);t.flags&1||(t.deferredNodes||(t.deferredNodes=new e.Set),t.deferredNodes.add(r))}function WM(r){var i=va(r);i.deferredNodes&&i.deferredNodes.forEach(qM)}function qM(r){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkDeferredNode",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var i=Ie;switch(Ie=r,Ee=0,r.kind){case 208:case 209:case 210:case 165:case 280:Fg(r);break;case 213:case 214:case 169:case 168:X7(r);break;case 172:case 173:a6(r);break;case 226:oM(r);break;case 163:AO(r);break;case 279:T5(r);break;case 278:E5(r);break}Ie=i,e.tracing===null||e.tracing===void 0||e.tracing.pop()}function VM(r){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkSourceFile",{path:r.path},!0),e.performance.mark("beforeCheck"),KM(r),e.performance.mark("afterCheck"),e.performance.measure("Check","beforeCheck","afterCheck"),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function G6(r,i){if(i)return!1;switch(r){case 0:return!!ye.noUnusedLocals;case 1:return!!ye.noUnusedParameters;default:return e.Debug.assertNever(r)}}function H6(r){return Fo.get(r.path)||e.emptyArray}function KM(r){var i=va(r);if(!(i.flags&1)){if(e.skipTypeChecking(r,ye,l))return;mL(r),e.clear(Xt),e.clear(Za),e.clear(bn),e.clear(_a),e.forEach(r.statements,io),io(r.endOfFileToken),WM(r),e.isExternalOrCommonJsModule(r)&&A_(r),fe(function(){!r.isDeclarationFile&&(ye.noUnusedLocals||ye.noUnusedParameters)&&_6(H6(r),function(t,o,s){!e.containsParseError(t)&&G6(o,!!(t.flags&16777216))&&rn.add(s)})}),ye.importsNotUsedAsValues===2&&!r.isDeclarationFile&&e.isExternalModule(r)&&LM(r),e.isExternalOrCommonJsModule(r)&&V6(r),Xt.length&&(e.forEach(Xt,SF),e.clear(Xt)),Za.length&&(e.forEach(Za,TF),e.clear(Za)),bn.length&&(e.forEach(bn,kF),e.clear(bn)),_a.length&&(e.forEach(_a,NF),e.clear(_a)),i.flags|=1}}function X6(r,i){try{return g=i,GM(r)}finally{g=void 0}}function OS(){for(var r=0,i=D;r0)return e.concatenate(s,o);return o}return e.forEach(l.getSourceFiles(),FS),rn.getDiagnostics()}function HM(){return OS(),rn.getGlobalDiagnostics()}function XM(r,i){if(r.flags&33554432)return[];var t=e.createSymbolTable(),o=!1;return s(),t.delete("this"),Y_(t);function s(){for(;r;){switch(r.locals&&!Cu(r)&&h(r.locals,i),r.kind){case 305:if(!e.isExternalModule(r))break;case 261:z(Et(r).exports,i&2623475);break;case 260:h(Et(r).exports,i&8);break;case 226:var me=r.name;me&&u(r.symbol,i);case 257:case 258:o||h(Nf(Et(r)),i&788968);break;case 213:var Me=r.name;Me&&u(r.symbol,i);break}e.introducesArgumentsExoticObject(r)&&u(or,i),o=e.isStatic(r),r=r.parent}h(ii,i)}function u(me,Me){if(e.getCombinedLocalAndExportSymbolFlags(me)&Me){var $e=me.escapedName;t.has($e)||t.set($e,me)}}function h(me,Me){Me&&me.forEach(function($e){u($e,Me)})}function z(me,Me){Me&&me.forEach(function($e){!e.getDeclarationOfKind($e,275)&&!e.getDeclarationOfKind($e,274)&&u($e,Me)})}}function QM(r){return r.kind===79&&zy(r.parent)&&e.getNameOfDeclaration(r.parent)===r}function zy(r){switch(r.kind){case 163:case 257:case 258:case 259:case 260:case 345:case 338:case 339:return!0;case 267:return r.isTypeOnly;case 270:case 275:return r.parent.parent.isTypeOnly;default:return!1}}function Q6(r){for(;r.parent.kind===161;)r=r.parent;return r.parent.kind===178}function YM(r){for(;r.parent.kind===206;)r=r.parent;return r.parent.kind===228}function Y6(r,i){for(var t;r=e.getContainingClass(r),!(!r||(t=i(r))););return t}function $M(r){return!!e.findAncestor(r,function(i){return e.isConstructorDeclaration(i)&&e.nodeIsPresent(i.body)||e.isPropertyDeclaration(i)?!0:e.isClassLike(i)||e.isFunctionLikeDeclaration(i)?"quit":!1})}function MS(r,i){return!!Y6(r,function(t){return t===i})}function ZM(r){for(;r.parent.kind===161;)r=r.parent;if(r.parent.kind===265)return r.parent.moduleReference===r?r.parent:void 0;if(r.parent.kind===271)return r.parent.expression===r?r.parent:void 0}function W0(r){return ZM(r)!==void 0}function e9(r){var i=e.getAssignmentDeclarationKind(r.parent.parent);switch(i){case 1:case 3:return Et(r.parent);case 4:case 2:case 5:return Et(r.parent.parent)}}function r9(r){for(var i=r.parent;e.isQualifiedName(i);)r=i,i=i.parent;if(i&&i.kind===200&&i.qualifier===r)return i}function $6(r){if(e.isDeclarationName(r))return Et(r.parent);if(e.isInJSFile(r)&&r.parent.kind===206&&r.parent===r.parent.parent.left&&!e.isPrivateIdentifier(r)&&!e.isJSDocMemberName(r)){var i=e9(r);if(i)return i}if(r.parent.kind===271&&e.isEntityNameExpression(r)){var t=Ds(r,2998271,!0);if(t&&t!==xe)return t}else if(e.isEntityName(r)&&W0(r)){var o=e.getAncestor(r,265);return e.Debug.assert(o!==void 0),Nl(r,!0)}if(e.isEntityName(r)){var s=r9(r);if(s){Va(s);var u=va(r).resolvedSymbol;return u===xe?void 0:u}}for(;e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(r);)r=r.parent;if(YM(r)){var h=0;r.parent.kind===228?(h=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(r.parent)&&(h|=111551)):h=1920,h|=2097152;var z=e.isEntityNameExpression(r)?Ds(r,h):void 0;if(z)return z}if(r.parent.kind===340)return e.getParameterSymbolFromJSDoc(r.parent);if(r.parent.kind===163&&r.parent.parent.kind===344){e.Debug.assert(!e.isInJSFile(r));var me=e.getTypeParameterFromJsDoc(r.parent);return me&&me.symbol}if(e.isExpressionNode(r)){if(e.nodeIsMissing(r))return;var Me=e.findAncestor(r,e.or(e.isJSDocLinkLike,e.isJSDocNameReference,e.isJSDocMemberName)),h=Me?901119:111551;if(r.kind===79){if(e.isJSXTagName(r)&&dm(r)){var $e=Fb(r.parent);return $e===xe?void 0:$e}var tr=Ds(r,h,!1,!0,e.getHostSignatureFromJSDoc(r));if(!tr&&Me){var pr=e.findAncestor(r,e.or(e.isClassLike,e.isInterfaceDeclaration));if(pr)return q0(r,Et(pr))}return tr}else{if(e.isPrivateIdentifier(r))return m0(r);if(r.kind===206||r.kind===161){var Dr=va(r);return Dr.resolvedSymbol?Dr.resolvedSymbol:(r.kind===206?VC(r,0):KC(r,0),!Dr.resolvedSymbol&&Me&&e.isQualifiedName(r)?q0(r):Dr.resolvedSymbol)}else if(e.isJSDocMemberName(r))return q0(r)}}else if(Q6(r)){var h=r.parent.kind===178?788968:1920,$e=Ds(r,h,!1,!0);return $e&&$e!==xe?$e:yh(r)}if(r.parent.kind===177)return Ds(r,1)}function q0(r,i){if(e.isEntityName(r)){var t=901119,o=Ds(r,t,!1,!0,e.getHostSignatureFromJSDoc(r));if(!o&&e.isIdentifier(r)&&i&&(o=so(qs(dc(i),r.escapedText,t))),o)return o}var s=e.isIdentifier(r)?i:q0(r.left),u=e.isIdentifier(r)?r.escapedText:r.right.escapedText;if(s){var h=s.flags&111551&&bi(Jt(s),"prototype"),z=h?Jt(h):go(s);return bi(z,u)}}function el(r,i){if(r.kind===305)return e.isExternalModule(r)?so(r.symbol):void 0;var t=r.parent,o=t.parent;if(!(r.flags&33554432)){if(Y(r)){var s=Et(t);return e.isImportOrExportSpecifier(r.parent)&&r.parent.propertyName===r?wb(s):s}else if(e.isLiteralComputedPropertyDeclarationName(r))return Et(t.parent);if(r.kind===79){if(W0(r))return $6(r);if(t.kind===203&&o.kind===201&&r===t.propertyName){var u=Bd(o),h=bi(u,r.escapedText);if(h)return h}else if(e.isMetaProperty(t)&&t.name===r)return t.keywordToken===103&&e.idText(r)==="target"?tS(t).symbol:t.keywordToken===100&&e.idText(r)==="meta"?Tx().members.get("meta"):void 0}switch(r.kind){case 79:case 80:case 206:case 161:if(!e.isThisInTypeQuery(r))return $6(r);case 108:var z=e.getThisContainer(r,!1);if(e.isFunctionLike(z)){var me=yl(z);if(me.thisParameter)return me.thisParameter}if(e.isInExpressionContext(r))return yn(r).symbol;case 192:return Ch(r).symbol;case 106:return yn(r).symbol;case 134:var Me=r.parent;return Me&&Me.kind===171?Me.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(r.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(r.parent.parent)===r||(r.parent.kind===266||r.parent.kind===272)&&r.parent.moduleSpecifier===r||e.isInJSFile(r)&&e.isRequireCall(r.parent,!1)||e.isImportCall(r.parent)||e.isLiteralTypeNode(r.parent)&&e.isLiteralImportTypeNode(r.parent.parent)&&r.parent.parent.argument===r.parent)return ac(r,r,i);if(e.isCallExpression(t)&&e.isBindableObjectDefinePropertyCall(t)&&t.arguments[1]===r)return Et(t);case 8:var $e=e.isElementAccessExpression(t)?t.argumentExpression===r?Gs(t.expression):void 0:e.isLiteralTypeNode(t)&&e.isIndexedAccessTypeNode(o)?Va(o.objectType):void 0;return $e&&bi($e,e.escapeLeadingUnderscores(r.text));case 88:case 98:case 38:case 84:return Et(r.parent);case 200:return e.isLiteralImportTypeNode(r)?el(r.argument.literal,i):void 0;case 93:return e.isExportAssignment(r.parent)?e.Debug.checkDefined(r.parent.symbol):void 0;case 100:case 103:return e.isMetaProperty(r.parent)?Ak(r.parent).symbol:void 0;case 231:return yn(r).symbol;default:return}}}function i9(r){if(e.isIdentifier(r)&&e.isPropertyAccessExpression(r.parent)&&r.parent.name===r){var i=Z_(r),t=Gs(r.parent.expression),o=t.flags&1048576?t.types:[t];return e.flatMap(o,function(s){return e.filter(Hn(s),function(u){return an(i,u.keyType)})})}}function t9(r){if(r&&r.kind===297)return Ds(r.name,2208703)}function a9(r){return e.isExportSpecifier(r)?r.parent.parent.moduleSpecifier?kl(r.parent.parent,r):Ds(r.propertyName||r.name,2998271):Ds(r,2998271)}function Bd(r){if(e.isSourceFile(r)&&!e.isExternalModule(r)||r.flags&33554432)return Pe;var i=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(r),t=i&&aa(Et(i.class));if(e.isPartOfTypeNode(r)){var o=Va(r);return t?Rc(o,t.thisType):o}if(e.isExpressionNode(r))return Z6(r);if(t&&!i.isImplements){var s=e.firstOrUndefined(Qc(t));return s?Rc(s,t.thisType):Pe}if(zy(r)){var u=Et(r);return go(u)}if(QM(r)){var u=el(r);return u?go(u):Pe}if(e.isDeclaration(r)){var u=Et(r);return u?Jt(u):Pe}if(Y(r)){var u=el(r);return u?Jt(u):Pe}if(e.isBindingPattern(r))return G_(r.parent,!0,0)||Pe;if(W0(r)){var u=el(r);if(u){var h=go(u);return nn(h)?Jt(u):h}}return e.isMetaProperty(r.parent)&&r.parent.keywordToken===r.kind?Ak(r.parent):Pe}function V0(r){if(e.Debug.assert(r.kind===205||r.kind===204),r.parent.kind===244){var i=By(r.parent);return Rd(r,i||Pe)}if(r.parent.kind===221){var i=Gs(r.parent.right);return Rd(r,i||Pe)}if(r.parent.kind===296){var t=e.cast(r.parent.parent,e.isObjectLiteralExpression),o=V0(t)||Pe,s=e.indexOfNode(t.properties,r.parent);return Uk(t,o,s)}var u=e.cast(r.parent,e.isArrayLiteralExpression),h=V0(u)||Pe,z=N_(65,h,Tr,r.parent)||Pe;return zk(u,h,u.elements.indexOf(r),z)}function n9(r){var i=V0(e.cast(r.parent.parent,e.isAssignmentPattern));return i&&bi(i,r.escapedText)}function Z6(r){return e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),jc(Gs(r))}function o9(r){var i=Et(r.parent);return e.isStatic(r)?Jt(i):go(i)}function s9(r){var i=r.name;switch(i.kind){case 79:return Bu(e.idText(i));case 8:case 10:return Bu(i.text);case 162:var t=t_(i);return Ns(t,12288)?t:Li;default:return e.Debug.fail("Unsupported property name.")}}function LS(r){r=$s(r);var i=e.createSymbolTable(uo(r)),t=ot(r,0).length?Zr:ot(r,1).length?Si:void 0;return t&&e.forEach(uo(t),function(o){i.has(o.escapedName)||i.set(o.escapedName,o)}),tf(i)}function RS(r){return e.typeHasCallOrConstructSignatures(r,Di)}function eA(r){var i=c9(r);return i?e.flatMap(i,eA):[r]}function c9(r){if(e.getCheckFlags(r)&6)return e.mapDefined(Aa(r).containingType.types,function(u){return bi(u,r.escapedName)});if(r.flags&33554432){var i=r,t=i.leftSpread,o=i.rightSpread,s=i.syntheticOrigin;return t?[t,o]:s?[s]:e.singleElementArray(u9(r))}}function u9(r){for(var i,t=r;t=Aa(t).target;)i=t;return i}function l9(r){if(e.isGeneratedIdentifier(r))return!1;var i=e.getParseTreeNode(r,e.isIdentifier);if(!i)return!1;var t=i.parent;if(!t)return!1;var o=(e.isPropertyAccessExpression(t)||e.isPropertyAssignment(t))&&t.name===i;return!o&&Nv(i)===or}function f9(r){var i=ac(r.parent,r);if(!i||e.isShorthandAmbientModuleSymbol(i))return!0;var t=ll(i);i=Us(i);var o=Aa(i);return o.exportsSomeValue===void 0&&(o.exportsSomeValue=t?!!(i.flags&111551):e.forEachEntry(Pu(i),s)),o.exportsSomeValue;function s(u){return u=os(u),u&&!!(u.flags&111551)}}function _9(r){return e.isModuleOrEnumDeclaration(r.parent)&&r===r.parent.name}function p9(r,i){var t,o=e.getParseTreeNode(r,e.isIdentifier);if(o){var s=Nv(o,_9(o));if(s){if(s.flags&1048576){var u=so(s.exportSymbol);if(!i&&u.flags&944&&!(u.flags&3))return;s=u}var h=Ys(s);if(h){if(h.flags&512&&((t=h.valueDeclaration)===null||t===void 0?void 0:t.kind)===305){var z=h.valueDeclaration,me=e.getSourceFileOfNode(o),Me=z!==me;return Me?void 0:z}return e.findAncestor(o.parent,function($e){return e.isModuleOrEnumDeclaration($e)&&Et($e)===h})}}}}function d9(r){if(r.generatedImportReference)return r.generatedImportReference;var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(Zn(t,111551)&&!vu(t))return ru(t)}}function g9(r){return r.valueDeclaration&&e.isBindingElement(r.valueDeclaration)&&e.walkUpBindingElementsAndPatterns(r.valueDeclaration).parent.kind===292}function rA(r){if(r.flags&418&&r.valueDeclaration&&!e.isSourceFile(r.valueDeclaration)){var i=Aa(r);if(i.isDeclarationWithCollidingName===void 0){var t=e.getEnclosingBlockScopeContainer(r.valueDeclaration);if(e.isStatementWithLocals(t)||g9(r)){var o=va(r.valueDeclaration);if(es(t.parent,r.escapedName,111551,void 0,void 0,!1))i.isDeclarationWithCollidingName=!0;else if(o.flags&262144){var s=o.flags&524288,u=e.isIterationStatement(t,!1),h=t.kind===235&&e.isIterationStatement(t.parent,!1);i.isDeclarationWithCollidingName=!e.isBlockScopedContainerTopLevel(t)&&(!s||!u&&!h)}else i.isDeclarationWithCollidingName=!1}}return i.isDeclarationWithCollidingName}return!1}function m9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t&&rA(t))return t.valueDeclaration}}}function v9(r){var i=e.getParseTreeNode(r,e.isDeclaration);if(i){var t=Et(i);if(t)return rA(t)}return!1}function iA(r){switch(r.kind){case 265:return K0(Et(r));case 267:case 268:case 270:case 275:var i=Et(r);return!!i&&K0(i)&&!vu(i);case 272:var t=r.exportClause;return!!t&&(e.isNamespaceExport(t)||e.some(t.elements,iA));case 271:return r.expression&&r.expression.kind===79?K0(Et(r)):!0}return!1}function y9(r){var i=e.getParseTreeNode(r,e.isImportEqualsDeclaration);if(i===void 0||i.parent.kind!==305||!e.isInternalModuleImportEqualsDeclaration(i))return!1;var t=K0(Et(i));return t&&i.moduleReference&&!e.nodeIsMissing(i.moduleReference)}function K0(r){if(!r)return!1;var i=cu(Ps(r));return i===xe?!0:!!(i.flags&111551)&&(e.shouldPreserveConstEnums(ye)||!Av(i))}function Av(r){return lS(r)||!!r.constEnumOnlyModule}function G0(r,i){if(yf(r)){var t=Et(r),o=t&&Aa(t);if(o!=null&&o.referenced)return!0;var s=Aa(t).aliasTarget;if(s&&e.getEffectiveModifierFlags(r)&1&&s.flags&111551&&(e.shouldPreserveConstEnums(ye)||!Av(s)))return!0}return i?!!e.forEachChild(r,function(u){return G0(u,i)}):!1}function tA(r){if(e.nodeIsPresent(r.body)){if(e.isGetAccessor(r)||e.isSetAccessor(r))return!1;var i=Et(r),t=S_(i);return t.length>1||t.length===1&&t[0].declaration!==r}return!1}function aA(r){return!!Ye&&!kd(r)&&!e.isJSDocParameterTag(r)&&!!r.initializer&&!e.hasSyntacticModifier(r,16476)}function h9(r){return Ye&&kd(r)&&!r.initializer&&e.hasSyntacticModifier(r,16476)}function D9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return!1;var t=Et(i);return!t||!(t.flags&16)?!1:!!e.forEachEntry(dc(t),function(o){return o.flags&111551&&o.valueDeclaration&&e.isPropertyAccessExpression(o.valueDeclaration)})}function b9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return e.emptyArray;var t=Et(i);return t&&uo(Jt(t))||e.emptyArray}function Ug(r){var i,t=r.id||0;return t<0||t>=du.length?0:((i=du[t])===null||i===void 0?void 0:i.flags)||0}function H0(r){return U6(r.parent),va(r).enumMemberValue}function nA(r){switch(r.kind){case 299:case 206:case 207:return!0}return!1}function BS(r){if(r.kind===299)return H0(r);var i=va(r).resolvedSymbol;if(i&&i.flags&8){var t=i.valueDeclaration;if(e.isEnumConst(t.parent))return H0(t)}}function JS(r){return!!(r.flags&524288)&&ot(r,0).length>0}function S9(r,i){var t,o,s=e.getParseTreeNode(r,e.isEntityName);if(!s||i&&(i=e.getParseTreeNode(i),!i))return e.TypeReferenceSerializationKind.Unknown;var u=!1;if(e.isQualifiedName(s)){var h=Ds(e.getFirstIdentifier(s),111551,!0,!0,i);u=!!(!((t=h==null?void 0:h.declarations)===null||t===void 0)&&t.every(e.isTypeOnlyImportOrExportDeclaration))}var z=Ds(s,111551,!0,!0,i),me=z&&z.flags&2097152?Ps(z):z;u||(u=!!(!((o=z==null?void 0:z.declarations)===null||o===void 0)&&o.every(e.isTypeOnlyImportOrExportDeclaration)));var Me=Ds(s,788968,!0,!1,i);if(me&&me===Me){var $e=nD(!1);if($e&&me===$e)return e.TypeReferenceSerializationKind.Promise;var tr=Jt(me);if(tr&&qd(tr))return u?e.TypeReferenceSerializationKind.TypeWithCallSignature:e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!Me)return u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown;var pr=go(Me);return nn(pr)?u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown:pr.flags&3?e.TypeReferenceSerializationKind.ObjectType:Ns(pr,245760)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:Ns(pr,528)?e.TypeReferenceSerializationKind.BooleanType:Ns(pr,296)?e.TypeReferenceSerializationKind.NumberLikeType:Ns(pr,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:Ns(pr,402653316)?e.TypeReferenceSerializationKind.StringLikeType:Yn(pr)?e.TypeReferenceSerializationKind.ArrayLikeType:Ns(pr,12288)?e.TypeReferenceSerializationKind.ESSymbolType:JS(pr)?e.TypeReferenceSerializationKind.TypeWithCallSignature:Tu(pr)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function T9(r,i,t,o,s){var u=e.getParseTreeNode(r,e.isVariableLikeOrAccessor);if(!u)return e.factory.createToken(130);var h=Et(u),z=h&&!(h.flags&133120)?Hp(Jt(h)):Pe;return z.flags&8192&&z.symbol===h&&(t|=1048576),s&&(z=i_(z)),Ur.typeToTypeNode(z,i,t|1024,o)}function x9(r,i,t,o){var s=e.getParseTreeNode(r,e.isFunctionLike);if(!s)return e.factory.createToken(130);var u=yl(s);return Ur.typeToTypeNode(yo(u),i,t|1024,o)}function E9(r,i,t,o){var s=e.getParseTreeNode(r,e.isExpression);if(!s)return e.factory.createToken(130);var u=$c(Z6(s));return Ur.typeToTypeNode(u,i,t|1024,o)}function C9(r){return ii.has(e.escapeLeadingUnderscores(r))}function Nv(r,i){var t=va(r).resolvedSymbol;if(t)return t;var o=r;if(i){var s=r.parent;e.isDeclaration(s)&&r===s.name&&(o=zi(s))}return es(o,r.escapedText,3257279,void 0,void 0,!0)}function k9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t)return cu(t).valueDeclaration}}}function A9(r){return e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r)?Kp(Jt(Et(r))):!1}function N9(r,i,t){var o=r.flags&1024?Ur.symbolToExpression(r.symbol,111551,i,void 0,t):r===Dt?e.factory.createTrue():r===xt&&e.factory.createFalse();if(o)return o;var s=r.value;return typeof s=="object"?e.factory.createBigIntLiteral(s):typeof s=="number"?e.factory.createNumericLiteral(s):e.factory.createStringLiteral(s)}function P9(r,i){var t=Jt(Et(r));return N9(t,r,i)}function oA(r){return r?(po(r),e.getSourceFileOfNode(r).localJsxFactory||Se):Se}function jS(r){if(r){var i=e.getSourceFileOfNode(r);if(i){if(i.localJsxFragmentFactory)return i.localJsxFragmentFactory;var t=i.pragmas.get("jsxfrag"),o=e.isArray(t)?t[0]:t;if(o)return i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),i.localJsxFragmentFactory}}if(ye.jsxFragmentFactory)return e.parseIsolatedEntityName(ye.jsxFragmentFactory,Ae)}function I9(){var r=l.getResolvedTypeReferenceDirectives(),i;return r&&(i=new e.Map,r.forEach(function(me,Me,$e){if(!(!me||!me.resolvedFileName)){var tr=l.getSourceFile(me.resolvedFileName);tr&&z(tr,Me,$e)}})),{getReferencedExportContainer:p9,getReferencedImportDeclaration:d9,getReferencedDeclarationWithCollidingName:m9,isDeclarationWithCollidingName:v9,isValueAliasDeclaration:function(me){var Me=e.getParseTreeNode(me);return Me?iA(Me):!0},hasGlobalName:C9,isReferencedAliasDeclaration:function(me,Me){var $e=e.getParseTreeNode(me);return $e?G0($e,Me):!0},getNodeCheckFlags:function(me){var Me=e.getParseTreeNode(me);return Me?Ug(Me):0},isTopLevelValueImportEqualsWithEntityName:y9,isDeclarationVisible:wu,isImplementationOfOverload:tA,isRequiredInitializedParameter:aA,isOptionalUninitializedParameterProperty:h9,isExpandoFunctionDeclaration:D9,getPropertiesOfContainerFunction:b9,createTypeOfDeclaration:T9,createReturnTypeOfSignatureDeclaration:x9,createTypeOfExpression:E9,createLiteralConstValue:P9,isSymbolAccessible:g_,isEntityNameVisible:af,getConstantValue:function(me){var Me=e.getParseTreeNode(me,nA);return Me?BS(Me):void 0},collectLinkedAliases:V_,getReferencedValueDeclaration:k9,getTypeReferenceSerializationKind:S9,isOptionalParameter:kd,moduleExportsSomeValue:f9,isArgumentsLocalBinding:l9,getExternalModuleFileFromDeclaration:function(me){var Me=e.getParseTreeNode(me,e.hasPossibleExternalModuleReference);return Me&&US(Me)},getTypeReferenceDirectivesForEntityName:s,getTypeReferenceDirectivesForSymbol:u,isLiteralConstDeclaration:A9,isLateBound:function(me){var Me=e.getParseTreeNode(me,e.isDeclaration),$e=Me&&Et(Me);return!!($e&&e.getCheckFlags($e)&4096)},getJsxFactoryEntity:oA,getJsxFragmentFactoryEntity:jS,getAllAccessorDeclarations:function(me){me=e.getParseTreeNode(me,e.isGetOrSetAccessorDeclaration);var Me=me.kind===173?172:173,$e=e.getDeclarationOfKind(Et(me),Me),tr=$e&&$e.pos3})||Xr(r,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,h,4):u&1048576?e.some(S_(z),function(me){return Wc(me)>4})||Xr(r,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,h,5):u&1024&&(e.some(S_(z),function(me){return Wc(me)>2})||Xr(r,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,h,3)):Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h)}}ne|=i}}}function O9(r){switch(r){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"__classPrivateFieldIn";case 4194304:return"__createBinding";default:return e.Debug.fail("Unrecognized helper")}}function F9(r,i){return ue||(ue=Il(r,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,i)||xe),ue}function Ff(r){return M9(r)||sA(r)}function M9(r){if(!r.decorators)return!1;if(e.nodeCanBeDecorated(r,r.parent,r.parent.parent)){if(r.kind===172||r.kind===173){var i=e.getAllAccessorDeclarations(r.parent.members,r);if(i.firstAccessor.decorators&&r===i.secondAccessor)return Hs(r,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}}else return r.kind===169&&!e.nodeIsPresent(r.body)?Hs(r,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload):Hs(r,e.Diagnostics.Decorators_are_not_valid_here);return!1}function sA(r){var i=L9(r);if(i!==void 0)return i;for(var t,o,s,u,h=0,z=0,me=r.modifiers;z1||r.modifiers[0].kind!==i}function B9(r,i){switch(r.kind){case 169:case 256:case 213:case 214:return!1}return Tt(i,e.Diagnostics._0_modifier_cannot_be_used_here,"async")}function ng(r,i){return i===void 0&&(i=e.Diagnostics.Trailing_comma_not_allowed),r&&r.hasTrailingComma?rd(r[0],r.end-1,1,i):!1}function cA(r,i){if(r&&r.length===0){var t=r.pos-1,o=e.skipTrivia(i.text,r.end)+1;return rd(i,t,o-t,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function J9(r){for(var i=!1,t=r.length,o=0;o=3){var i=r.body&&e.isBlock(r.body)&&e.findUseStrictPrologue(r.body.statements);if(i){var t=j9(r.parameters);if(e.length(t)){e.forEach(t,function(s){e.addRelatedInfo(Xr(s,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(i,e.Diagnostics.use_strict_directive_used_here))});var o=t.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,Ve([Xr(i,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],o,!1)),!0}}}return!1}function X0(r){var i=e.getSourceFileOfNode(r);return Ff(r)||cA(r.typeParameters,i)||J9(r.parameters)||W9(r,i)||e.isFunctionLikeDeclaration(r)&&U9(r)}function z9(r){var i=e.getSourceFileOfNode(r);return H9(r)||cA(r.typeParameters,i)}function W9(r,i){if(!e.isArrowFunction(r))return!1;r.typeParameters&&!(e.length(r.typeParameters)>1||r.typeParameters.hasTrailingComma||r.typeParameters[0].constraint)&&i&&e.fileExtensionIsOneOf(i.fileName,[".mts",".cts"])&&Tt(r.typeParameters[0],e.Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);var t=r.equalsGreaterThanToken,o=e.getLineAndCharacterOfPosition(i,t.pos).line,s=e.getLineAndCharacterOfPosition(i,t.end).line;return o!==s&&Tt(t,e.Diagnostics.Line_terminator_not_permitted_before_arrow)}function q9(r){var i=r.parameters[0];if(r.parameters.length!==1)return Tt(i?i.name:r,e.Diagnostics.An_index_signature_must_have_exactly_one_parameter);if(ng(r.parameters,e.Diagnostics.An_index_signature_cannot_have_a_trailing_comma),i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);if(e.hasEffectiveModifiers(i))return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);if(i.initializer)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);if(!i.type)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);var t=Va(i.type);return rg(t,function(o){return!!(o.flags&8576)})||rv(t)?Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead):gf(t,vh)?r.type?!1:Tt(r,e.Diagnostics.An_index_signature_must_have_a_type_annotation):Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type)}function V9(r){return Ff(r)||q9(r)}function K9(r,i){if(i&&i.length===0){var t=e.getSourceFileOfNode(r),o=i.pos-1,s=e.skipTrivia(t.text,i.end)+1;return rd(t,o,s-o,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}function Wy(r,i){return ng(i)||K9(r,i)}function G9(r){return r.questionDotToken||r.flags&32?Tt(r.template,e.Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain):!1}function uA(r){var i=r.types;if(ng(i))return!0;if(i&&i.length===0){var t=e.tokenToString(r.token);return rd(r,i.pos,0,e.Diagnostics._0_list_cannot_be_empty,t)}return e.some(i,lA)}function lA(r){return e.isExpressionWithTypeArguments(r)&&e.isImportKeyword(r.expression)&&r.typeArguments?Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments):Wy(r,r.typeArguments)}function H9(r){var i=!1,t=!1;if(!Ff(r)&&r.heritageClauses)for(var o=0,s=r.heritageClauses;o1)return Hs(u.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);i=!0}else{if(e.Debug.assert(u.token===117),t)return Hs(u,e.Diagnostics.implements_clause_already_seen);t=!0}uA(u)}}function X9(r){var i=!1;if(r.heritageClauses)for(var t=0,o=r.heritageClauses;t=4)break;default:rn.add(e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}else if(!Jd(i)){var t=e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules),o=e.getContainingFunction(r);if(o&&o.kind!==171){e.Debug.assert((e.getFunctionFlags(o)&2)===0,"Enclosing function should never be an async function.");var s=e.createDiagnosticForNode(o,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(t,s)}return rn.add(t),!0}return!1}if(e.isForOfStatement(r)&&!(r.flags&32768)&&e.isIdentifier(r.initializer)&&r.initializer.escapedText==="async")return Tt(r.initializer,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async),!1;if(r.initializer.kind===255){var u=r.initializer;if(!VS(u)){var h=u.declarations;if(!h.length)return!1;if(h.length>1){var t=r.kind===243?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 Hs(u.declarations[1],t)}var z=h[0];if(z.initializer){var t=r.kind===243?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 Tt(z.name,t)}if(z.type){var t=r.kind===243?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 Tt(z,t)}}}return!1}function eL(r){if(!(r.flags&16777216)&&r.parent.kind!==182&&r.parent.kind!==258){if(Ae<1)return Tt(r.name,e.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.body===void 0&&!e.hasSyntacticModifier(r,128))return rd(r,r.end-1,1,e.Diagnostics._0_expected,"{")}if(r.body){if(e.hasSyntacticModifier(r,128))return Tt(r,e.Diagnostics.An_abstract_accessor_cannot_have_an_implementation);if(r.parent.kind===182||r.parent.kind===258)return Tt(r.body,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts)}if(r.typeParameters)return Tt(r.name,e.Diagnostics.An_accessor_cannot_have_type_parameters);if(!rL(r))return Tt(r.name,r.kind===172?e.Diagnostics.A_get_accessor_cannot_have_parameters:e.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);if(r.kind===173){if(r.type)return Tt(r.name,e.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);var i=e.Debug.checkDefined(e.getSetAccessorValueParameter(r),"Return value does not match parameter count assertion.");if(i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.A_set_accessor_cannot_have_rest_parameter);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);if(i.initializer)return Tt(r.name,e.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}function rL(r){return qS(r)||r.parameters.length===(r.kind===172?0:1)}function qS(r){if(r.parameters.length===(r.kind===172?1:2))return e.getThisParameter(r)}function iL(r){if(r.operator===154){if(r.type.kind!==151)return Tt(r.type,e.Diagnostics._0_expected,e.tokenToString(151));var i=e.walkUpParenthesizedTypes(r.parent);if(e.isInJSFile(i)&&e.isJSDocTypeExpression(i)){var t=e.getJSDocHost(i);t&&(i=e.getSingleVariableOfVariableStatement(t)||t)}switch(i.kind){case 254:var o=i;if(o.name.kind!==79)return Tt(r,e.Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!e.isVariableDeclarationInVariableStatement(o))return Tt(r,e.Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(o.parent.flags&2))return Tt(i.name,e.Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 167:if(!e.isStatic(i)||!e.hasEffectiveReadonlyModifier(i))return Tt(i.name,e.Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 166:if(!e.hasSyntacticModifier(i,64))return Tt(i.name,e.Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:return Tt(r,e.Diagnostics.unique_symbol_types_are_not_allowed_here)}}else if(r.operator===145&&r.type.kind!==183&&r.type.kind!==184)return Hs(r,e.Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,e.tokenToString(151))}function Em(r,i){if(I1(r))return Tt(r,i)}function dA(r){if(X0(r))return!0;if(r.kind===169){if(r.parent.kind===205){if(r.modifiers&&!(r.modifiers.length===1&&e.first(r.modifiers).kind===131))return Hs(r,e.Diagnostics.Modifiers_cannot_appear_here);if(fA(r.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(_A(r.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(r.body===void 0)return rd(r,r.end-1,1,e.Diagnostics._0_expected,"{")}if(WS(r))return!0}if(e.isClassLike(r.parent)){if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.flags&16777216)return Em(r.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(r.kind===169&&!r.body)return Em(r.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(r.parent.kind===258)return Em(r.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(r.parent.kind===182)return Em(r.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 tL(r){for(var i=r;i;){if(e.isFunctionLikeOrClassStaticBlockDeclaration(i))return Tt(r,e.Diagnostics.Jump_target_cannot_cross_function_boundary);switch(i.kind){case 250:if(r.label&&i.label.escapedText===r.label.escapedText){var t=r.kind===245&&!e.isIterationStatement(i.statement,!0);return t?Tt(r,e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement):!1}break;case 249:if(r.kind===246&&!r.label)return!1;break;default:if(e.isIterationStatement(i,!1)&&!r.label)return!1;break}i=i.parent}if(r.label){var o=r.kind===246?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 Tt(r,o)}else{var o=r.kind===246?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 Tt(r,o)}}function aL(r){if(r.dotDotDotToken){var i=r.parent.elements;if(r!==e.last(i))return Tt(r,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);if(ng(i,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),r.propertyName)return Tt(r.name,e.Diagnostics.A_rest_element_cannot_have_a_property_name)}if(r.dotDotDotToken&&r.initializer)return rd(r,r.initializer.pos-1,1,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}function gA(r){return e.isStringOrNumericLiteralLike(r)||r.kind===219&&r.operator===40&&r.operand.kind===8}function nL(r){return r.kind===9||r.kind===219&&r.operator===40&&r.operand.kind===9}function oL(r){if((e.isPropertyAccessExpression(r)||e.isElementAccessExpression(r)&&gA(r.argumentExpression))&&e.isEntityNameExpression(r.expression))return!!(Os(r).flags&1024)}function mA(r){var i=r.initializer;if(i){var t=!(gA(i)||oL(i)||i.kind===110||i.kind===95||nL(i)),o=e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r);if(o&&!r.type){if(t)return Tt(i,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference)}else return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(!o||t)return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function sL(r){if(r.parent.parent.kind!==243&&r.parent.parent.kind!==244){if(r.flags&16777216)mA(r);else if(!r.initializer){if(e.isBindingPattern(r.name)&&!e.isBindingPattern(r.parent))return Tt(r,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(r))return Tt(r,e.Diagnostics.const_declarations_must_be_initialized)}}if(r.exclamationToken&&(r.parent.parent.kind!==237||!r.type||r.initializer||r.flags&16777216)){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.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 Tt(r.exclamationToken,i)}(er0}function Hs(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,h.start,h.length,i,t,o,s)),!0}return!1}function rd(r,i,t,o,s,u,h){var z=e.getSourceFileOfNode(r);return Jd(z)?!1:(rn.add(e.createFileDiagnostic(z,i,t,o,s,u,h)),!0)}function lL(r,i,t,o,s,u){var h=e.getSourceFileOfNode(i);return Jd(h)?!1:(Es(r,i,t,o,s,u),!0)}function Tt(r,i,t,o,s){var u=e.getSourceFileOfNode(r);return Jd(u)?!1:(rn.add(e.createDiagnosticForNode(r,i,t,o,s)),!0)}function fL(r){var i=e.isInJSFile(r)?e.getJSDocTypeParameterDeclarations(r):void 0,t=r.typeParameters||i&&e.firstOrUndefined(i);if(t){var o=t.pos===t.end?t.pos:e.skipTrivia(e.getSourceFileOfNode(r).text,t.pos);return rd(r,o,t.end-o,e.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration)}}function _L(r){var i=e.getEffectiveReturnTypeNode(r);if(i)return Tt(i,e.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration)}function pL(r){if(e.isComputedPropertyName(r.name)&&e.isBinaryExpression(r.name.expression)&&r.name.expression.operatorToken.kind===101)return Tt(r.parent.members[0],e.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);if(e.isClassLike(r.parent)){if(e.isStringLiteral(r.name)&&r.name.text==="constructor")return Tt(r.name,e.Diagnostics.Classes_may_not_have_a_field_named_constructor);if(Em(r.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(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher)}else if(r.parent.kind===258){if(Em(r.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(r.initializer)return Tt(r.initializer,e.Diagnostics.An_interface_property_cannot_have_an_initializer)}else if(e.isTypeLiteralNode(r.parent)){if(Em(r.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(r.initializer)return Tt(r.initializer,e.Diagnostics.A_type_literal_property_cannot_have_an_initializer)}if(r.flags&16777216&&mA(r),e.isPropertyDeclaration(r)&&r.exclamationToken&&(!e.isClassLike(r.parent)||!r.type||r.initializer||r.flags&16777216||e.isStatic(r)||e.hasAbstractModifier(r))){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.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 Tt(r.exclamationToken,i)}}function dL(r){return r.kind===258||r.kind===259||r.kind===266||r.kind===265||r.kind===272||r.kind===271||r.kind===264||e.hasSyntacticModifier(r,515)?!1:Hs(r,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function gL(r){for(var i=0,t=r.statements;i=1?i=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(r,196)?i=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(r,299)&&(i=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),i){var t=e.isPrefixUnaryExpression(r.parent)&&r.parent.operator===40,o=(t?"-":"")+"0o"+r.text;return Tt(t?r.parent:r,i,o)}}return vL(r),!1}function vL(r){var i=e.getTextOfNode(r).indexOf(".")!==-1,t=r.numericLiteralFlags&16;if(!(i||t)){var o=+r.text;o<=Math.pow(2,53)-1||Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}}function yL(r){var i=e.isLiteralTypeNode(r.parent)||e.isPrefixUnaryExpression(r.parent)&&e.isLiteralTypeNode(r.parent.parent);return!!(!i&&Ae<7&&Tt(r,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020))}function hL(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,e.textSpanEnd(h),0,i,t,o,s)),!0}return!1}function DL(){return Gr||(Gr=[],ii.forEach(function(r,i){a.test(i)&&Gr.push(r)})),Gr}function bL(r){var i;return r.isTypeOnly&&r.name&&r.namedBindings?Tt(r,e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both):r.isTypeOnly&&((i=r.namedBindings)===null||i===void 0?void 0:i.kind)===269?DA(r.namedBindings):!1}function DA(r){return!!e.forEach(r.elements,function(i){if(i.isTypeOnly)return Hs(i,i.kind===270?e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement)})}function SL(r){if(er===e.ModuleKind.ES2015)return Tt(r,e.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext);if(r.typeArguments)return Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);var i=r.arguments;if(er!==e.ModuleKind.ESNext&&er!==e.ModuleKind.NodeNext&&(ng(i),i.length>1)){var t=i[1];return Tt(t,e.Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext)}if(i.length===0||i.length>2)return Tt(r,e.Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments);var o=e.find(i,e.isSpreadElement);return o?Tt(o,e.Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element):!1}function TL(r,i){var t=e.getObjectFlags(r);if(t&20&&i.flags&1048576)return e.find(i.types,function(o){if(o.flags&524288){var s=t&e.getObjectFlags(o);if(s&4)return r.target===o.target;if(s&16)return!!r.aliasSymbol&&r.aliasSymbol===o.aliasSymbol}return!1})}function xL(r,i){if(e.getObjectFlags(r)&128&&rg(i,sp))return e.find(i.types,function(t){return!sp(t)})}function EL(r,i){var t=0,o=ot(r,t).length>0||(t=1,ot(r,t).length>0);if(o)return e.find(i.types,function(s){return ot(s,t).length>0})}function CL(r,i){var t;if(!(r.flags&406978556))for(var o=0,s=0,u=i.types;s=o&&(t=h,o=me)}}}return t}function kL(r){if(fs(r,67108864)){var i=ec(r,function(t){return!(t.flags&131068)});if(!(i.flags&131072))return i}return r}function bA(r,i,t,o){if(i.flags&1048576&&r.flags&2621440){var s=$E(i,r);if(s)return s;var u=uo(r);if(u){var h=YE(u,i);if(h)return UD(i,e.map(h,function(z){return[function(){return Jt(z)},z.escapedName]}),t,void 0,o)}}}}e.createTypeChecker=L;function P(l){return!e.isAccessor(l)}function k(l){return l.kind!==256&&l.kind!==169||!!l.body}function Y(l){switch(l.parent.kind){case 270:case 275:return e.isIdentifier(l);default:return e.isDeclarationName(l)}}var U;(function(l){l.JSX="JSX",l.IntrinsicElements="IntrinsicElements",l.ElementClass="ElementClass",l.ElementAttributesPropertyNameContainer="ElementAttributesProperty",l.ElementChildrenAttributeNameContainer="ElementChildrenAttribute",l.Element="Element",l.IntrinsicAttributes="IntrinsicAttributes",l.IntrinsicClassAttributes="IntrinsicClassAttributes",l.LibraryManagedAttributes="LibraryManagedAttributes"})(U||(U={}));function j(l){switch(l){case 0:return"yieldType";case 1:return"returnType";case 2:return"nextType"}}function H(l){return!!(l.flags&1)}e.signatureHasRestParameter=H;function w(l){return!!(l.flags&2)}e.signatureHasLiteralTypes=w})(ke||(ke={}));var ke;(function(e){function a(f,T,K,b){if(f===void 0||T===void 0)return f;var se=T(f);if(se===f)return f;var J;if(se!==void 0)return e.isArray(se)?J=(b||oe)(se):J=se,e.Debug.assertNode(J,K),J}e.visitNode=a;function C(f,T,K,b,se){if(f===void 0||T===void 0)return f;var J,ie=f.length;(b===void 0||b<0)&&(b=0),(se===void 0||se>ie-b)&&(se=ie-b);var B,q=-1,O=-1;(b>0||se=2&&(se=E(se,K)),K.setLexicalEnvironmentFlags(1,!1)),K.suspendLexicalEnvironment(),se}e.visitParameterList=R;function E(f,T){for(var K,b=0;b0&&ie<=160||ie===192)return f;var B=K.factory;switch(ie){case 79:return e.Debug.type(f),B.updateIdentifier(f,b(f.typeArguments,T,e.isTypeNodeOrTypeParameterDeclaration));case 161:return e.Debug.type(f),B.updateQualifiedName(f,J(f.left,T,e.isEntityName),J(f.right,T,e.isIdentifier));case 162:return e.Debug.type(f),B.updateComputedPropertyName(f,J(f.expression,T,e.isExpression));case 163:return e.Debug.type(f),B.updateTypeParameterDeclaration(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),J(f.constraint,T,e.isTypeNode),J(f.default,T,e.isTypeNode));case 164:return e.Debug.type(f),B.updateParameterDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.name,T,e.isBindingName),J(f.questionToken,se,e.isQuestionToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 165:return e.Debug.type(f),B.updateDecorator(f,J(f.expression,T,e.isExpression));case 166:return e.Debug.type(f),B.updatePropertySignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isToken),J(f.type,T,e.isTypeNode));case 167:return e.Debug.type(f),B.updatePropertyDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken||f.exclamationToken,se,e.isQuestionOrExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 168:return e.Debug.type(f),B.updateMethodSignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 169:return e.Debug.type(f),B.updateMethodDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),R(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 171:return e.Debug.type(f),B.updateConstructorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),R(f.parameters,T,K,b),p(f.body,T,K,J));case 172:return e.Debug.type(f),B.updateGetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),R(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 173:return e.Debug.type(f),B.updateSetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),R(f.parameters,T,K,b),p(f.body,T,K,J));case 170:return e.Debug.type(f),K.startLexicalEnvironment(),K.suspendLexicalEnvironment(),B.updateClassStaticBlockDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),p(f.body,T,K,J));case 174:return e.Debug.type(f),B.updateCallSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 175:return e.Debug.type(f),B.updateConstructSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 176:return e.Debug.type(f),B.updateIndexSignature(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 177:return e.Debug.type(f),B.updateTypePredicateNode(f,J(f.assertsModifier,T,e.isAssertsKeyword),J(f.parameterName,T,e.isIdentifierOrThisTypeNode),J(f.type,T,e.isTypeNode));case 178:return e.Debug.type(f),B.updateTypeReferenceNode(f,J(f.typeName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 179:return e.Debug.type(f),B.updateFunctionTypeNode(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 180:return e.Debug.type(f),B.updateConstructorTypeNode(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 181:return e.Debug.type(f),B.updateTypeQueryNode(f,J(f.exprName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 182:return e.Debug.type(f),B.updateTypeLiteralNode(f,b(f.members,T,e.isTypeElement));case 183:return e.Debug.type(f),B.updateArrayTypeNode(f,J(f.elementType,T,e.isTypeNode));case 184:return e.Debug.type(f),B.updateTupleTypeNode(f,b(f.elements,T,e.isTypeNode));case 185:return e.Debug.type(f),B.updateOptionalTypeNode(f,J(f.type,T,e.isTypeNode));case 186:return e.Debug.type(f),B.updateRestTypeNode(f,J(f.type,T,e.isTypeNode));case 187:return e.Debug.type(f),B.updateUnionTypeNode(f,b(f.types,T,e.isTypeNode));case 188:return e.Debug.type(f),B.updateIntersectionTypeNode(f,b(f.types,T,e.isTypeNode));case 189:return e.Debug.type(f),B.updateConditionalTypeNode(f,J(f.checkType,T,e.isTypeNode),J(f.extendsType,T,e.isTypeNode),J(f.trueType,T,e.isTypeNode),J(f.falseType,T,e.isTypeNode));case 190:return e.Debug.type(f),B.updateInferTypeNode(f,J(f.typeParameter,T,e.isTypeParameterDeclaration));case 200:return e.Debug.type(f),B.updateImportTypeNode(f,J(f.argument,T,e.isTypeNode),J(f.assertions,T,e.isNode),J(f.qualifier,T,e.isEntityName),C(f.typeArguments,T,e.isTypeNode),f.isTypeOf);case 295:return e.Debug.type(f),B.updateImportTypeAssertionContainer(f,J(f.assertClause,T,e.isNode),f.multiLine);case 197:return e.Debug.type(f),B.updateNamedTupleMember(f,a(f.dotDotDotToken,T,e.isDotDotDotToken),a(f.name,T,e.isIdentifier),a(f.questionToken,T,e.isQuestionToken),a(f.type,T,e.isTypeNode));case 191:return e.Debug.type(f),B.updateParenthesizedType(f,J(f.type,T,e.isTypeNode));case 193:return e.Debug.type(f),B.updateTypeOperatorNode(f,J(f.type,T,e.isTypeNode));case 194:return e.Debug.type(f),B.updateIndexedAccessTypeNode(f,J(f.objectType,T,e.isTypeNode),J(f.indexType,T,e.isTypeNode));case 195:return e.Debug.type(f),B.updateMappedTypeNode(f,J(f.readonlyToken,se,e.isReadonlyKeywordOrPlusOrMinusToken),J(f.typeParameter,T,e.isTypeParameterDeclaration),J(f.nameType,T,e.isTypeNode),J(f.questionToken,se,e.isQuestionOrPlusOrMinusToken),J(f.type,T,e.isTypeNode),b(f.members,T,e.isTypeElement));case 196:return e.Debug.type(f),B.updateLiteralTypeNode(f,J(f.literal,T,e.isExpression));case 198:return e.Debug.type(f),B.updateTemplateLiteralType(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateLiteralTypeSpan));case 199:return e.Debug.type(f),B.updateTemplateLiteralTypeSpan(f,J(f.type,T,e.isTypeNode),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 201:return e.Debug.type(f),B.updateObjectBindingPattern(f,b(f.elements,T,e.isBindingElement));case 202:return e.Debug.type(f),B.updateArrayBindingPattern(f,b(f.elements,T,e.isArrayBindingElement));case 203:return e.Debug.type(f),B.updateBindingElement(f,J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.propertyName,T,e.isPropertyName),J(f.name,T,e.isBindingName),J(f.initializer,T,e.isExpression));case 204:return e.Debug.type(f),B.updateArrayLiteralExpression(f,b(f.elements,T,e.isExpression));case 205:return e.Debug.type(f),B.updateObjectLiteralExpression(f,b(f.properties,T,e.isObjectLiteralElementLike));case 206:return f.flags&32?(e.Debug.type(f),B.updatePropertyAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.name,T,e.isMemberName))):(e.Debug.type(f),B.updatePropertyAccessExpression(f,J(f.expression,T,e.isExpression),J(f.name,T,e.isMemberName)));case 207:return f.flags&32?(e.Debug.type(f),B.updateElementAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.argumentExpression,T,e.isExpression))):(e.Debug.type(f),B.updateElementAccessExpression(f,J(f.expression,T,e.isExpression),J(f.argumentExpression,T,e.isExpression)));case 208:return f.flags&32?(e.Debug.type(f),B.updateCallChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression))):(e.Debug.type(f),B.updateCallExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression)));case 209:return e.Debug.type(f),B.updateNewExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression));case 210:return e.Debug.type(f),B.updateTaggedTemplateExpression(f,J(f.tag,T,e.isExpression),C(f.typeArguments,T,e.isTypeNode),J(f.template,T,e.isTemplateLiteral));case 211:return e.Debug.type(f),B.updateTypeAssertion(f,J(f.type,T,e.isTypeNode),J(f.expression,T,e.isExpression));case 212:return e.Debug.type(f),B.updateParenthesizedExpression(f,J(f.expression,T,e.isExpression));case 213:return e.Debug.type(f),B.updateFunctionExpression(f,b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),R(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 214:return e.Debug.type(f),B.updateArrowFunction(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),R(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),J(f.equalsGreaterThanToken,se,e.isEqualsGreaterThanToken),p(f.body,T,K,J));case 215:return e.Debug.type(f),B.updateDeleteExpression(f,J(f.expression,T,e.isExpression));case 216:return e.Debug.type(f),B.updateTypeOfExpression(f,J(f.expression,T,e.isExpression));case 217:return e.Debug.type(f),B.updateVoidExpression(f,J(f.expression,T,e.isExpression));case 218:return e.Debug.type(f),B.updateAwaitExpression(f,J(f.expression,T,e.isExpression));case 219:return e.Debug.type(f),B.updatePrefixUnaryExpression(f,J(f.operand,T,e.isExpression));case 220:return e.Debug.type(f),B.updatePostfixUnaryExpression(f,J(f.operand,T,e.isExpression));case 221:return e.Debug.type(f),B.updateBinaryExpression(f,J(f.left,T,e.isExpression),J(f.operatorToken,se,e.isBinaryOperatorToken),J(f.right,T,e.isExpression));case 222:return e.Debug.type(f),B.updateConditionalExpression(f,J(f.condition,T,e.isExpression),J(f.questionToken,se,e.isQuestionToken),J(f.whenTrue,T,e.isExpression),J(f.colonToken,se,e.isColonToken),J(f.whenFalse,T,e.isExpression));case 223:return e.Debug.type(f),B.updateTemplateExpression(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateSpan));case 224:return e.Debug.type(f),B.updateYieldExpression(f,J(f.asteriskToken,se,e.isAsteriskToken),J(f.expression,T,e.isExpression));case 225:return e.Debug.type(f),B.updateSpreadElement(f,J(f.expression,T,e.isExpression));case 226:return e.Debug.type(f),B.updateClassExpression(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 228:return e.Debug.type(f),B.updateExpressionWithTypeArguments(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode));case 229:return e.Debug.type(f),B.updateAsExpression(f,J(f.expression,T,e.isExpression),J(f.type,T,e.isTypeNode));case 230:return f.flags&32?(e.Debug.type(f),B.updateNonNullChain(f,J(f.expression,T,e.isExpression))):(e.Debug.type(f),B.updateNonNullExpression(f,J(f.expression,T,e.isExpression)));case 231:return e.Debug.type(f),B.updateMetaProperty(f,J(f.name,T,e.isIdentifier));case 233:return e.Debug.type(f),B.updateTemplateSpan(f,J(f.expression,T,e.isExpression),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 235:return e.Debug.type(f),B.updateBlock(f,b(f.statements,T,e.isStatement));case 237:return e.Debug.type(f),B.updateVariableStatement(f,b(f.modifiers,T,e.isModifier),J(f.declarationList,T,e.isVariableDeclarationList));case 238:return e.Debug.type(f),B.updateExpressionStatement(f,J(f.expression,T,e.isExpression));case 239:return e.Debug.type(f),B.updateIfStatement(f,J(f.expression,T,e.isExpression),J(f.thenStatement,T,e.isStatement,B.liftToBlock),J(f.elseStatement,T,e.isStatement,B.liftToBlock));case 240:return e.Debug.type(f),B.updateDoStatement(f,m(f.statement,T,K),J(f.expression,T,e.isExpression));case 241:return e.Debug.type(f),B.updateWhileStatement(f,J(f.expression,T,e.isExpression),m(f.statement,T,K));case 242:return e.Debug.type(f),B.updateForStatement(f,J(f.initializer,T,e.isForInitializer),J(f.condition,T,e.isExpression),J(f.incrementor,T,e.isExpression),m(f.statement,T,K));case 243:return e.Debug.type(f),B.updateForInStatement(f,J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 244:return e.Debug.type(f),B.updateForOfStatement(f,J(f.awaitModifier,se,e.isAwaitKeyword),J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 245:return e.Debug.type(f),B.updateContinueStatement(f,J(f.label,T,e.isIdentifier));case 246:return e.Debug.type(f),B.updateBreakStatement(f,J(f.label,T,e.isIdentifier));case 247:return e.Debug.type(f),B.updateReturnStatement(f,J(f.expression,T,e.isExpression));case 248:return e.Debug.type(f),B.updateWithStatement(f,J(f.expression,T,e.isExpression),J(f.statement,T,e.isStatement,B.liftToBlock));case 249:return e.Debug.type(f),B.updateSwitchStatement(f,J(f.expression,T,e.isExpression),J(f.caseBlock,T,e.isCaseBlock));case 250:return e.Debug.type(f),B.updateLabeledStatement(f,J(f.label,T,e.isIdentifier),J(f.statement,T,e.isStatement,B.liftToBlock));case 251:return e.Debug.type(f),B.updateThrowStatement(f,J(f.expression,T,e.isExpression));case 252:return e.Debug.type(f),B.updateTryStatement(f,J(f.tryBlock,T,e.isBlock),J(f.catchClause,T,e.isCatchClause),J(f.finallyBlock,T,e.isBlock));case 254:return e.Debug.type(f),B.updateVariableDeclaration(f,J(f.name,T,e.isBindingName),J(f.exclamationToken,se,e.isExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 255:return e.Debug.type(f),B.updateVariableDeclarationList(f,b(f.declarations,T,e.isVariableDeclaration));case 256:return e.Debug.type(f),B.updateFunctionDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),R(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 257:return e.Debug.type(f),B.updateClassDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 258:return e.Debug.type(f),B.updateInterfaceDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isTypeElement));case 259:return e.Debug.type(f),B.updateTypeAliasDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),J(f.type,T,e.isTypeNode));case 260:return e.Debug.type(f),B.updateEnumDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.members,T,e.isEnumMember));case 261:return e.Debug.type(f),B.updateModuleDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isModuleName),J(f.body,T,e.isModuleBody));case 262:return e.Debug.type(f),B.updateModuleBlock(f,b(f.statements,T,e.isStatement));case 263:return e.Debug.type(f),B.updateCaseBlock(f,b(f.clauses,T,e.isCaseOrDefaultClause));case 264:return e.Debug.type(f),B.updateNamespaceExportDeclaration(f,J(f.name,T,e.isIdentifier));case 265:return e.Debug.type(f),B.updateImportEqualsDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.moduleReference,T,e.isModuleReference));case 266:return e.Debug.type(f),B.updateImportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.importClause,T,e.isImportClause),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 293:return e.Debug.type(f),B.updateAssertClause(f,b(f.elements,T,e.isAssertEntry),f.multiLine);case 294:return e.Debug.type(f),B.updateAssertEntry(f,J(f.name,T,e.isAssertionKey),J(f.value,T,e.isExpressionNode));case 267:return e.Debug.type(f),B.updateImportClause(f,f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.namedBindings,T,e.isNamedImportBindings));case 268:return e.Debug.type(f),B.updateNamespaceImport(f,J(f.name,T,e.isIdentifier));case 274:return e.Debug.type(f),B.updateNamespaceExport(f,J(f.name,T,e.isIdentifier));case 269:return e.Debug.type(f),B.updateNamedImports(f,b(f.elements,T,e.isImportSpecifier));case 270:return e.Debug.type(f),B.updateImportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 271:return e.Debug.type(f),B.updateExportAssignment(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.expression,T,e.isExpression));case 272:return e.Debug.type(f),B.updateExportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.exportClause,T,e.isNamedExportBindings),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 273:return e.Debug.type(f),B.updateNamedExports(f,b(f.elements,T,e.isExportSpecifier));case 275:return e.Debug.type(f),B.updateExportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 277:return e.Debug.type(f),B.updateExternalModuleReference(f,J(f.expression,T,e.isExpression));case 278:return e.Debug.type(f),B.updateJsxElement(f,J(f.openingElement,T,e.isJsxOpeningElement),b(f.children,T,e.isJsxChild),J(f.closingElement,T,e.isJsxClosingElement));case 279:return e.Debug.type(f),B.updateJsxSelfClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 280:return e.Debug.type(f),B.updateJsxOpeningElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 281:return e.Debug.type(f),B.updateJsxClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression));case 282:return e.Debug.type(f),B.updateJsxFragment(f,J(f.openingFragment,T,e.isJsxOpeningFragment),b(f.children,T,e.isJsxChild),J(f.closingFragment,T,e.isJsxClosingFragment));case 285:return e.Debug.type(f),B.updateJsxAttribute(f,J(f.name,T,e.isIdentifier),J(f.initializer,T,e.isStringLiteralOrJsxExpression));case 286:return e.Debug.type(f),B.updateJsxAttributes(f,b(f.properties,T,e.isJsxAttributeLike));case 287:return e.Debug.type(f),B.updateJsxSpreadAttribute(f,J(f.expression,T,e.isExpression));case 288:return e.Debug.type(f),B.updateJsxExpression(f,J(f.expression,T,e.isExpression));case 289:return e.Debug.type(f),B.updateCaseClause(f,J(f.expression,T,e.isExpression),b(f.statements,T,e.isStatement));case 290:return e.Debug.type(f),B.updateDefaultClause(f,b(f.statements,T,e.isStatement));case 291:return e.Debug.type(f),B.updateHeritageClause(f,b(f.types,T,e.isExpressionWithTypeArguments));case 292:return e.Debug.type(f),B.updateCatchClause(f,J(f.variableDeclaration,T,e.isVariableDeclaration),J(f.block,T,e.isBlock));case 296:return e.Debug.type(f),B.updatePropertyAssignment(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 297:return e.Debug.type(f),B.updateShorthandPropertyAssignment(f,J(f.name,T,e.isIdentifier),J(f.objectAssignmentInitializer,T,e.isExpression));case 298:return e.Debug.type(f),B.updateSpreadAssignment(f,J(f.expression,T,e.isExpression));case 299:return e.Debug.type(f),B.updateEnumMember(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 305:return e.Debug.type(f),B.updateSourceFile(f,I(f.statements,T,K));case 350:return e.Debug.type(f),B.updatePartiallyEmittedExpression(f,J(f.expression,T,e.isExpression));case 351:return e.Debug.type(f),B.updateCommaListExpression(f,b(f.elements,T,e.isExpression));default:return f}}}e.visitEachChild=G;function oe(f){return e.Debug.assert(f.length<=1,"Too many nodes written to output."),e.singleOrUndefined(f)}})(ke||(ke={}));var ke;(function(e){function a(q,O,ve,ee,he){var F=he.extendedDiagnostics?e.performance.createTimer("Source Map","beforeSourcemap","afterSourcemap"):e.performance.nullTimer,x=F.enter,Q=F.exit,$=[],A=[],y=new e.Map,V,L=[],P,k=[],Y="",U=0,j=0,H=0,w=0,l=0,d=0,D=!1,fe=0,g=0,ne=0,ue=0,We=0,Fe=0,Z=!1,Be=!1,ge=!1;return{getSources:function(){return $},addSource:Re,setSourceContent:ze,addName:Ee,addMapping:Ie,appendSourceMap:_e,toJSON:er,toString:function(){return JSON.stringify(er())}};function Re(Cr){x();var Ye=e.getRelativePathToDirectoryOrUrl(ee,Cr,q.getCurrentDirectory(),q.getCanonicalFileName,!0),Br=y.get(Ye);return Br===void 0&&(Br=A.length,A.push(Ye),$.push(Cr),y.set(Ye,Br)),Q(),Br}function ze(Cr,Ye){if(x(),Ye!==null){for(V||(V=[]);V.lengthYe||ue===Ye&&We>Br)}function Ie(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,"generatedLine cannot backtrack"),e.Debug.assert(Ye>=0,"generatedCharacter cannot be negative"),e.Debug.assert(Br===void 0||Br>=0,"sourceIndex cannot be negative"),e.Debug.assert(Er===void 0||Er>=0,"sourceLine cannot be negative"),e.Debug.assert(Ne===void 0||Ne>=0,"sourceCharacter cannot be negative"),x(),(He(Cr,Ye)||rr(Br,Er,Ne))&&(ye(),fe=Cr,g=Ye,Be=!1,ge=!1,Z=!0),Br!==void 0&&Er!==void 0&&Ne!==void 0&&(ne=Br,ue=Er,We=Ne,Be=!0,n!==void 0&&(Fe=n,ge=!0)),Q()}function _e(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,"generatedLine cannot backtrack"),e.Debug.assert(Ye>=0,"generatedCharacter cannot be negative"),x();for(var lr=[],be,Ge=p(Br.mappings),ur=Ge.next();!ur.done;ur=Ge.next()){var yr=ur.value;if(n&&(yr.generatedLine>n.line||yr.generatedLine===n.line&&yr.generatedCharacter>n.character))break;if(!(Ne&&(yr.generatedLine=1024&&Ae()}function ye(){if(!(!Z||!we())){if(x(),U0&&(Y+=String.fromCharCode.apply(void 0,k),k.length=0)}function er(){return ye(),Ae(),{version:3,file:O,sourceRoot:ve,sources:A,names:L,mappings:Y,sourcesContent:V}}function ir(Cr){Cr<0?Cr=(-Cr<<1)+1:Cr=Cr<<1;do{var Ye=Cr&31;Cr=Cr>>5,Cr>0&&(Ye=Ye|32),de(oe(Ye))}while(Cr>0)}}e.createSourceMapGenerator=a;var C=/^\/\/[@#] source[M]appingURL=(.+)\r?\n?$/,I=/^\s*(\/\/[@#] .*)?$/;function R(q,O){return{getLineCount:function(){return O.length},getLineText:function(ve){return q.substring(O[ve],O[ve+1])}}}e.getLineInfo=R;function E(q){for(var O=q.getLineCount()-1;O>=0;O--){var ve=q.getLineText(O),ee=C.exec(ve);if(ee)return e.trimStringEnd(ee[1]);if(!ve.match(I))break}}e.tryGetSourceMappingURL=E;function X(q){return typeof q=="string"||q===null}function le(q){return q!==null&&typeof q=="object"&&q.version===3&&typeof q.file=="string"&&typeof q.mappings=="string"&&e.isArray(q.sources)&&e.every(q.sources,e.isString)&&(q.sourceRoot===void 0||q.sourceRoot===null||typeof q.sourceRoot=="string")&&(q.sourcesContent===void 0||q.sourcesContent===null||e.isArray(q.sourcesContent)&&e.every(q.sourcesContent,X))&&(q.names===void 0||q.names===null||e.isArray(q.names)&&e.every(q.names,e.isString))}e.isRawSourceMap=le;function N(q){try{var O=JSON.parse(q);if(le(O))return O}catch{}}e.tryParseRawSourceMap=N;function p(q){var O=!1,ve=0,ee=0,he=0,F=0,x=0,Q=0,$=0,A;return{get pos(){return ve},get error(){return A},get state(){return y(!0,!0)},next:function(){for(;!O&&ve=q.length)return L("Error in decoding base64VLQFormatDecode, past the mapping string"),-1;var l=f(q.charCodeAt(ve));if(l===-1)return L("Invalid character in VLQ"),-1;j=(l&32)!==0,w=w|(l&31)<>1:(w=w>>1,w=-w),w}}e.decodeMappings=p;function m(q,O){return q===O||q.generatedLine===O.generatedLine&&q.generatedCharacter===O.generatedCharacter&&q.sourceIndex===O.sourceIndex&&q.sourceLine===O.sourceLine&&q.sourceCharacter===O.sourceCharacter&&q.nameIndex===O.nameIndex}e.sameMapping=m;function G(q){return q.sourceIndex!==void 0&&q.sourceLine!==void 0&&q.sourceCharacter!==void 0}e.isSourceMapping=G;function oe(q){return q>=0&&q<26?65+q:q>=26&&q<52?97+q-26:q>=52&&q<62?48+q-52:q===62?43:q===63?47:e.Debug.fail("".concat(q,": not a base64 value"))}function f(q){return q>=65&&q<=90?q-65:q>=97&&q<=122?q-97+26:q>=48&&q<=57?q-48+52:q===43?62:q===47?63:-1}function T(q){return q.sourceIndex!==void 0&&q.sourcePosition!==void 0}function K(q,O){return q.generatedPosition===O.generatedPosition&&q.sourceIndex===O.sourceIndex&&q.sourcePosition===O.sourcePosition}function b(q,O){return e.Debug.assert(q.sourceIndex===O.sourceIndex),e.compareValues(q.sourcePosition,O.sourcePosition)}function se(q,O){return e.compareValues(q.generatedPosition,O.generatedPosition)}function J(q){return q.sourcePosition}function ie(q){return q.generatedPosition}function B(q,O,ve){var ee=e.getDirectoryPath(ve),he=O.sourceRoot?e.getNormalizedAbsolutePath(O.sourceRoot,ee):ee,F=e.getNormalizedAbsolutePath(O.file,ee),x=q.getSourceFileLike(F),Q=O.sources.map(function(H){return e.getNormalizedAbsolutePath(H,he)}),$=new e.Map(Q.map(function(H,w){return[q.getCanonicalFileName(H),w]})),A,y,V;return{getSourcePosition:j,getGeneratedPosition:U};function L(H){var w=x!==void 0?e.getPositionOfLineAndCharacter(x,H.generatedLine,H.generatedCharacter,!0):-1,l,d;if(G(H)){var D=q.getSourceFileLike(Q[H.sourceIndex]);l=O.sources[H.sourceIndex],d=D!==void 0?e.getPositionOfLineAndCharacter(D,H.sourceLine,H.sourceCharacter,!0):-1}return{generatedPosition:w,source:l,sourceIndex:H.sourceIndex,sourcePosition:d,nameIndex:H.nameIndex}}function P(){if(A===void 0){var H=p(O.mappings),w=e.arrayFrom(H,L);H.error!==void 0?(q.log&&q.log("Encountered error while decoding sourcemap: ".concat(H.error)),A=e.emptyArray):A=w}return A}function k(H){if(V===void 0){for(var w=[],l=0,d=P();l0&&F!==he.elements.length||!!(he.elements.length-F)&&e.isDefaultImport(ee)}e.getImportNeedsImportStarHelper=X;function le(ee){return!X(ee)&&(e.isDefaultImport(ee)||!!ee.importClause&&e.isNamedImports(ee.importClause.namedBindings)&&C(ee.importClause.namedBindings))}e.getImportNeedsImportDefaultHelper=le;function N(ee,he,F,x){for(var Q=[],$=e.createMultiMap(),A=[],y=new e.Map,V,L=!1,P,k=!1,Y=!1,U=!1,j=0,H=he.statements;j=64&&ee<=78}e.isCompoundAssignment=f;function T(ee){switch(ee){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=T;function K(ee){if(!!e.isExpressionStatement(ee)){var he=e.skipParentheses(ee.expression);return e.isSuperCall(he)?he:void 0}}e.getSuperCallFromStatement=K;function b(ee,he){for(var F=he;F=1&&!(V.transformFlags&49152)&&!(e.getTargetOfBindingOrAssignmentElement(V).transformFlags&49152)&&!e.isComputedPropertyName(L))$=e.append($,e.visitNode(V,q.visitor));else{$&&(q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve),$=void 0);var P=f(q,ee,L);e.isComputedPropertyName(L)&&(A=e.append(A,P.argumentExpression)),N(q,V,P,V)}}}$&&q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve)}function m(q,O,ve,ee,he){var F=e.getElementsOfBindingOrAssignmentPattern(ve),x=F.length;if(q.level<1&&q.downlevelIteration)ee=T(q,e.setTextRange(q.context.getEmitHelperFactory().createReadHelper(ee,x>0&&e.getRestIndicatorOfBindingOrAssignmentElement(F[x-1])?void 0:x),he),!1,he);else if(x!==1&&(q.level<1||x===0)||e.every(F,e.isOmittedExpression)){var Q=!e.isDeclarationBindingElement(O)||x!==0;ee=T(q,ee,Q,he)}for(var $,A,y=0;y=1)if(V.transformFlags&32768||q.hasTransformedPriorElement&&!G(V)){q.hasTransformedPriorElement=!0;var L=q.context.factory.createTempVariable(void 0);q.hoistTempVariables&&q.context.hoistVariableDeclaration(L),A=e.append(A,[L,V]),$=e.append($,q.createArrayBindingOrAssignmentElement(L))}else $=e.append($,V);else{if(e.isOmittedExpression(V))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(V)){if(y===x-1){var P=q.context.factory.createArraySliceCall(ee,y);N(q,V,P,V)}}else{var P=q.context.factory.createElementAccessExpression(ee,y);N(q,V,P,V)}}}if($&&q.emitBindingOrAssignment(q.createArrayBindingOrAssignmentPattern($),ee,he,ve),A)for(var k=0,Y=A;k=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(S);return X.updateSourceFile(S,e.visitLexicalEnvironment(S.statements,Y,E,0,Ce))}function ne(S,Ce){var qe=0;e.some(Ce)&&(qe|=1);var br=e.getEffectiveBaseTypeNode(S);return br&&e.skipOuterExpressions(br.expression).kind!==104&&(qe|=64),e.classOrConstructorParameterIsDecorated(S)&&(qe|=2),e.childIsDecorated(S)&&(qe|=4),ai(S)?qe|=8:Ba(S)?qe|=32:ka(S)&&(qe|=16),K<=1&&qe&7&&(qe|=128),qe}function ue(S){return!!(S.transformFlags&4096)}function We(S){return e.some(S.decorators)||e.some(S.typeParameters)||e.some(S.heritageClauses,ue)||e.some(S.members,ue)}function Fe(S){if(!We(S)&&!(B&&e.hasSyntacticModifier(S,1)))return e.visitEachChild(S,P,E);var Ce=e.getProperties(S,!0,!0),qe=ne(S,Ce);qe&128&&E.startLexicalEnvironment();var br=S.name||(qe&5?X.getGeneratedNameForNode(S):void 0),Zr=qe&2?Be(S,br):Z(S,br,qe),Si=[Zr];if(ir(Si,S,!1),ir(Si,S,!0),Br(Si,S),qe&128){var Pi=e.createTokenRange(e.skipTrivia(ie.text,S.members.end),19),Qi=X.getInternalName(S),Ct=X.createPartiallyEmittedExpression(Qi);e.setTextRangeEnd(Ct,Pi.end),e.setEmitFlags(Ct,1536);var sa=X.createReturnStatement(Ct);e.setTextRangePos(sa,Pi.pos),e.setEmitFlags(sa,1920),Si.push(sa),e.insertStatementsAfterStandardPrologue(Si,E.endLexicalEnvironment());var en=X.createImmediatelyInvokedArrowFunction(Si);e.setEmitFlags(en,33554432);var Wa=X.createVariableStatement(void 0,X.createVariableDeclarationList([X.createVariableDeclaration(X.getLocalName(S,!1,!1),void 0,void 0,en)]));e.setOriginalNode(Wa,S),e.setCommentRange(Wa,S),e.setSourceMapRange(Wa,e.moveRangePastDecorators(S)),e.startOnNewLine(Wa),Si=[Wa]}return qe&8?Cn(Si,S):(qe&128||qe&2)&&(qe&32?Si.push(X.createExportDefault(X.getLocalName(S,!1,!0))):qe&16&&Si.push(X.createExternalModuleExport(X.getLocalName(S,!1,!0)))),Si.length>1&&(Si.push(X.createEndOfDeclarationMarker(S)),e.setEmitFlags(Zr,e.getEmitFlags(Zr)|4194304)),e.singleOrMany(Si)}function Z(S,Ce,qe){var br=qe&128?void 0:e.visitNodes(S.modifiers,D,e.isModifier),Zr=X.createClassDeclaration(void 0,br,Ce,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S)),Si=e.getEmitFlags(S);return qe&1&&(Si|=32),e.setTextRange(Zr,S),e.setOriginalNode(Zr,S),e.setEmitFlags(Zr,Si),Zr}function Be(S,Ce){var qe=e.moveRangePastDecorators(S),br=eo(S),Zr=K<=2?X.getInternalName(S,!1,!0):X.getLocalName(S,!1,!0),Si=e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Pi=Re(S),Qi=X.createClassExpression(void 0,void 0,Ce,void 0,Si,Pi);e.setOriginalNode(Qi,S),e.setTextRange(Qi,qe);var Ct=X.createVariableStatement(void 0,X.createVariableDeclarationList([X.createVariableDeclaration(Zr,void 0,void 0,br?X.createAssignment(br,Qi):Qi)],1));return e.setOriginalNode(Ct,S),e.setTextRange(Ct,qe),e.setCommentRange(Ct,S),Ct}function ge(S){if(!We(S))return e.visitEachChild(S,P,E);var Ce=X.createClassExpression(void 0,void 0,S.name,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S));return e.setOriginalNode(Ce,S),e.setTextRange(Ce,S),Ce}function Re(S){var Ce=[],qe=e.getFirstConstructorWithBody(S),br=qe&&e.filter(qe.parameters,function(Qi){return e.isParameterPropertyDeclaration(Qi,qe)});if(br)for(var Zr=0,Si=br;Zr0&&e.parameterIsThisKeyword(qe[0]),Zr=br?1:0,Si=br?qe.length-1:qe.length,Pi=0;Pi0?Ce.kind===167?X.createVoidZero():X.createNull():void 0,Qi=le().createDecorateHelper(br,Zr,Si,Pi);return e.setTextRange(Qi,e.moveRangePastDecorators(Ce)),e.setEmitFlags(Qi,1536),Qi}}function Br(S,Ce){var qe=Er(Ce);qe&&S.push(e.setOriginalNode(X.createExpressionStatement(qe),Ce))}function Er(S){var Ce=_e(S),qe=er(S,S,Ce);if(!!qe){var br=x&&x[e.getOriginalNodeId(S)],Zr=K<=2?X.getInternalName(S,!1,!0):X.getLocalName(S,!1,!0),Si=le().createDecorateHelper(qe,Zr),Pi=X.createAssignment(Zr,br?X.createAssignment(br,Si):Si);return e.setEmitFlags(Pi,1536),e.setSourceMapRange(Pi,e.moveRangePastDecorators(S)),Pi}}function Ne(S){return e.visitNode(S.expression,P,e.isExpression)}function n(S,Ce){var qe;if(S){qe=[];for(var br=0,Zr=S;br=0&&e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Zr,Si+1-Zr));var Pi=e.mapDefined(qe,Sr);Si>=0?e.addRange(br,Pi):br=Ve(Ve(Ve([],br.slice(0,Zr),!0),Pi,!0),br.slice(Zr),!0),e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Si+1+Zr)),br=X.mergeLexicalEnvironment(br,m());var Qi=X.createBlock(e.setTextRange(X.createNodeArray(br),S.statements),!0);return e.setTextRange(Qi,S),e.setOriginalNode(Qi,S),Qi}function Sr(S){var Ce=S.name;if(!!e.isIdentifier(Ce)){var qe=e.setParent(e.setTextRange(X.cloneNode(Ce),Ce),Ce.parent);e.setEmitFlags(qe,1584);var br=e.setParent(e.setTextRange(X.cloneNode(Ce),Ce),Ce.parent);return e.setEmitFlags(br,1536),e.startOnNewLine(e.removeAllComments(e.setTextRange(e.setOriginalNode(X.createExpressionStatement(X.createAssignment(e.setTextRange(X.createPropertyAccessExpression(X.createThis(),qe),S.name),br)),S),e.moveRangePos(S,-1))))}}function zr(S){if(!!Xe(S)){var Ce=X.updateMethodDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,_r(S),void 0,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function Wr(S){return!(e.nodeIsMissing(S.body)&&e.hasSyntacticModifier(S,128))}function Je(S){if(!!Wr(S)){var Ce=X.updateGetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||X.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function xe(S){if(!!Wr(S)){var Ce=X.updateSetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),e.visitFunctionBody(S.body,P,E)||X.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function vr(S){if(!Xe(S))return X.createNotEmittedStatement(S);var Ce=X.updateFunctionDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||X.createBlock([]));if(ai(S)){var qe=[Ce];return Cn(qe,S),qe}return Ce}function mr(S){if(!Xe(S))return X.createOmittedExpression();var Ce=X.updateFunctionExpression(S,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||X.createBlock([]));return Ce}function Ar(S){var Ce=X.updateArrowFunction(S,e.visitNodes(S.modifiers,D,e.isModifier),void 0,e.visitParameterList(S.parameters,P,E),void 0,S.equalsGreaterThanToken,e.visitFunctionBody(S.body,P,E));return Ce}function Oe(S){if(!e.parameterIsThisKeyword(S)){var Ce=X.updateParameterDeclaration(S,void 0,void 0,S.dotDotDotToken,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return Ce!==S&&(e.setCommentRange(Ce,S),e.setTextRange(Ce,e.moveRangePastModifiers(S)),e.setSourceMapRange(Ce,e.moveRangePastModifiers(S)),e.setEmitFlags(Ce.name,32)),Ce}}function nr(S){if(ai(S)){var Ce=e.getInitializedVariables(S.declarationList);return Ce.length===0?void 0:e.setTextRange(X.createExpressionStatement(X.inlineExpressions(e.map(Ce,Mr))),S)}else return e.visitEachChild(S,P,E)}function Mr(S){var Ce=S.name;return e.isBindingPattern(Ce)?e.flattenDestructuringAssignment(S,P,E,0,!1,kn):e.setTextRange(X.createAssignment(xn(Ce),e.visitNode(S.initializer,P,e.isExpression)),S)}function Pe(S){var Ce=X.updateVariableDeclaration(S,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return S.type&&e.setTypeNode(Ce.name,S.type),Ce}function Ue(S){var Ce=e.skipOuterExpressions(S.expression,-7);if(e.isAssertionExpression(Ce)){var qe=e.visitNode(S.expression,P,e.isExpression);return X.createPartiallyEmittedExpression(qe,S)}return e.visitEachChild(S,P,E)}function fr(S){var Ce=e.visitNode(S.expression,P,e.isExpression);return X.createPartiallyEmittedExpression(Ce,S)}function De(S){var Ce=e.visitNode(S.expression,P,e.isLeftHandSideExpression);return X.createPartiallyEmittedExpression(Ce,S)}function gr(S){return X.updateCallExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Vr(S){return X.updateNewExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Tr(S){return X.updateTaggedTemplateExpression(S,e.visitNode(S.tag,P,e.isExpression),void 0,e.visitNode(S.template,P,e.isExpression))}function vi(S){return X.updateJsxSelfClosingElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Ui(S){return X.updateJsxOpeningElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Yi(S){return!e.isEnumConst(S)||e.shouldPreserveConstEnums(f)}function Wi(S){if(!Yi(S))return X.createNotEmittedStatement(S);var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?X.getExternalModuleOrNamespaceExportName(q,S,!1,!0):X.getLocalName(S,!1,!0),Qi=X.createLogicalOr(Pi,X.createAssignment(Pi,X.createObjectLiteralExpression()));if(xt(S)){var Ct=X.getLocalName(S,!1,!0);Qi=X.createAssignment(Ct,Qi)}var sa=X.createExpressionStatement(X.createCallExpression(X.createFunctionExpression(void 0,void 0,void 0,void 0,[X.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,ct(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(X.createEndOfDeclarationMarker(S)),Ce}function ct(S,Ce){var qe=q;q=Ce;var br=[];N();var Zr=e.map(S.members,Li);return e.insertStatementsAfterStandardPrologue(br,m()),e.addRange(br,Zr),q=qe,X.createBlock(e.setTextRange(X.createNodeArray(br),S.members),!0)}function Li(S){var Ce=Zt(S,!1),qe=nt(S),br=X.createAssignment(X.createElementAccessExpression(q,Ce),qe),Zr=qe.kind===10?br:X.createAssignment(X.createElementAccessExpression(q,br),Ce);return e.setTextRange(X.createExpressionStatement(e.setTextRange(Zr,S)),S)}function nt(S){var Ce=oe.getConstantValue(S);return Ce!==void 0?typeof Ce=="string"?X.createStringLiteral(Ce):X.createNumericLiteral(Ce):(bo(),S.initializer?e.visitNode(S.initializer,P,e.isExpression):X.createVoidZero())}function Mt(S){var Ce=e.getParseTreeNode(S,e.isModuleDeclaration);return Ce?e.isInstantiatedModule(Ce,e.shouldPreserveConstEnums(f)):!0}function xt(S){return ai(S)||Dn(S)&&b!==e.ModuleKind.ES2015&&b!==e.ModuleKind.ES2020&&b!==e.ModuleKind.ES2022&&b!==e.ModuleKind.ESNext&&b!==e.ModuleKind.System}function ut(S){ee||(ee=new e.Map);var Ce=Rt(S);ee.has(Ce)||ee.set(Ce,S)}function Dt(S){if(ee){var Ce=Rt(S);return ee.get(Ce)===S}return!0}function Rt(S){return e.Debug.assertNode(S.name,e.isIdentifier),S.name.escapedText}function Ii(S,Ce){var qe=X.createVariableStatement(e.visitNodes(Ce.modifiers,D,e.isModifier),X.createVariableDeclarationList([X.createVariableDeclaration(X.getLocalName(Ce,!1,!0))],O.kind===305?0:1));if(e.setOriginalNode(qe,Ce),ut(Ce),Dt(Ce))return Ce.kind===260?e.setSourceMapRange(qe.declarationList,Ce):e.setSourceMapRange(qe,Ce),e.setCommentRange(qe,Ce),e.addEmitFlags(qe,4195328),S.push(qe),!0;var br=X.createMergeDeclarationMarker(qe);return e.setEmitFlags(br,4195840),S.push(br),!1}function Ki(S){if(!Mt(S))return X.createNotEmittedStatement(S);e.Debug.assertNode(S.name,e.isIdentifier,"A TypeScript namespace should have an Identifier name."),En();var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?X.getExternalModuleOrNamespaceExportName(q,S,!1,!0):X.getLocalName(S,!1,!0),Qi=X.createLogicalOr(Pi,X.createAssignment(Pi,X.createObjectLiteralExpression()));if(xt(S)){var Ct=X.getLocalName(S,!1,!0);Qi=X.createAssignment(Ct,Qi)}var sa=X.createExpressionStatement(X.createCallExpression(X.createFunctionExpression(void 0,void 0,void 0,void 0,[X.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,Fi(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(X.createEndOfDeclarationMarker(S)),Ce}function Fi(S,Ce){var qe=q,br=B,Zr=ee;q=Ce,B=S,ee=void 0;var Si=[];N();var Pi,Qi;if(S.body)if(S.body.kind===262)V(S.body,function(Wa){return e.addRange(Si,e.visitNodes(Wa.statements,H,e.isStatement))}),Pi=S.body.statements,Qi=S.body;else{var Ct=Ki(S.body);Ct&&(e.isArray(Ct)?e.addRange(Si,Ct):Si.push(Ct));var sa=ui(S).body;Pi=e.moveRangePos(sa.statements,-1)}e.insertStatementsAfterStandardPrologue(Si,m()),q=qe,B=br,ee=Zr;var en=X.createBlock(e.setTextRange(X.createNodeArray(Si),Pi),!0);return e.setTextRange(en,Qi),(!S.body||S.body.kind!==262)&&e.setEmitFlags(en,e.getEmitFlags(en)|1536),en}function ui(S){if(S.body.kind===261){var Ce=ui(S.body);return Ce||S.body}}function Bt(S){if(!S.importClause)return S;if(!S.importClause.isTypeOnly){var Ce=e.visitNode(S.importClause,wt,e.isImportClause);return Ce||f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2?X.updateImportDeclaration(S,void 0,void 0,Ce,S.moduleSpecifier,S.assertClause):void 0}}function wt(S){e.Debug.assert(!S.isTypeOnly);var Ce=Gr(S)?S.name:void 0,qe=e.visitNode(S.namedBindings,na,e.isNamedImportBindings);return Ce||qe?X.updateImportClause(S,!1,Ce,qe):void 0}function na(S){if(S.kind===268)return Gr(S)?S:void 0;var Ce=f.preserveValueImports&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNodes(S.elements,Ai,e.isImportSpecifier);return Ce||e.some(qe)?X.updateNamedImports(S,qe):void 0}function Ai(S){return!S.isTypeOnly&&Gr(S)?S:void 0}function Oi(S){return oe.isValueAliasDeclaration(S)?e.visitEachChild(S,P,E):void 0}function ji(S){if(!S.isTypeOnly){if(!S.exportClause||e.isNamespaceExport(S.exportClause))return S;var Ce=!!S.moduleSpecifier&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNode(S.exportClause,function(br){return At(br,Ce)},e.isNamedExportBindings);return qe?X.updateExportDeclaration(S,void 0,void 0,S.isTypeOnly,qe,S.moduleSpecifier,S.assertClause):void 0}}function Vi(S,Ce){var qe=e.visitNodes(S.elements,ba,e.isExportSpecifier);return Ce||e.some(qe)?X.updateNamedExports(S,qe):void 0}function at(S){return X.updateNamespaceExport(S,e.visitNode(S.name,P,e.isIdentifier))}function At(S,Ce){return e.isNamespaceExport(S)?at(S):Vi(S,Ce)}function ba(S){return!S.isTypeOnly&&oe.isValueAliasDeclaration(S)?S:void 0}function $a(S){return Gr(S)||!e.isExternalModule(ie)&&oe.isTopLevelValueImportEqualsWithEntityName(S)}function Qa(S){if(!S.isTypeOnly){if(e.isExternalModuleImportEqualsDeclaration(S)){var Ce=Gr(S);return!Ce&&f.importsNotUsedAsValues===1?e.setOriginalNode(e.setTextRange(X.createImportDeclaration(void 0,void 0,void 0,S.moduleReference.expression,void 0),S),S):Ce?e.visitEachChild(S,P,E):void 0}if(!!$a(S)){var qe=e.createExpressionFromEntityName(X,S.moduleReference);return e.setEmitFlags(qe,3584),ka(S)||!ai(S)?e.setOriginalNode(e.setTextRange(X.createVariableStatement(e.visitNodes(S.modifiers,D,e.isModifier),X.createVariableDeclarationList([e.setOriginalNode(X.createVariableDeclaration(S.name,void 0,void 0,qe),S)])),S),S):e.setOriginalNode(Bi(S.name,qe,S),S)}}}function ai(S){return B!==void 0&&e.hasSyntacticModifier(S,1)}function Dn(S){return B===void 0&&e.hasSyntacticModifier(S,1)}function ka(S){return Dn(S)&&!e.hasSyntacticModifier(S,512)}function Ba(S){return Dn(S)&&e.hasSyntacticModifier(S,512)}function pn(S){return X.createExpressionStatement(S)}function Cn(S,Ce){var qe=X.createAssignment(X.getExternalModuleOrNamespaceExportName(q,Ce,!1,!0),X.getLocalName(Ce));e.setSourceMapRange(qe,e.createRange(Ce.name?Ce.name.pos:Ce.pos,Ce.end));var br=X.createExpressionStatement(qe);e.setSourceMapRange(br,e.createRange(-1,Ce.end)),S.push(br)}function Bi(S,Ce,qe){return e.setTextRange(X.createExpressionStatement(X.createAssignment(X.getNamespaceMemberName(q,S,!1,!0),Ce)),qe)}function kn(S,Ce,qe){return e.setTextRange(X.createAssignment(xn(S),Ce),qe)}function xn(S){return X.getNamespaceMemberName(q,S,!1,!0)}function Kn(S){var Ce=X.getGeneratedNameForNode(S);return e.setSourceMapRange(Ce,S.name),Ce}function Pn(S){return X.getGeneratedNameForNode(S)}function eo(S){if(oe.getNodeCheckFlags(S)&16777216){Ro();var Ce=X.createUniqueName(S.name&&!e.isGeneratedIdentifier(S.name)?e.idText(S.name):"default");return x[e.getOriginalNodeId(S)]=Ce,G(Ce),Ce}}function Rn(S){return X.createPropertyAccessExpression(X.getDeclarationName(S),"prototype")}function Da(S,Ce){return e.isStatic(Ce)?X.getDeclarationName(S):Rn(S)}function bo(){(F&8)===0&&(F|=8,E.enableSubstitution(79))}function Ro(){(F&1)===0&&(F|=1,E.enableSubstitution(79),x=[])}function En(){(F&2)===0&&(F|=2,E.enableSubstitution(79),E.enableSubstitution(297),E.enableEmitNotification(261))}function zn(S){return e.getOriginalNode(S).kind===261}function to(S){return e.getOriginalNode(S).kind===260}function Co(S,Ce,qe){var br=Q,Zr=ie;e.isSourceFile(Ce)&&(ie=Ce),F&2&&zn(Ce)&&(Q|=2),F&8&&to(Ce)&&(Q|=8),se(S,Ce,qe),Q=br,ie=Zr}function Ko(S,Ce){return Ce=J(S,Ce),S===1?no(Ce):e.isShorthandPropertyAssignment(Ce)?Oo(Ce):Ce}function Oo(S){if(F&2){var Ce=S.name,qe=xi(Ce);if(qe){if(S.objectAssignmentInitializer){var br=X.createAssignment(qe,S.objectAssignmentInitializer);return e.setTextRange(X.createPropertyAssignment(Ce,br),S)}return e.setTextRange(X.createPropertyAssignment(Ce,qe),S)}}return S}function no(S){switch(S.kind){case 79:return $o(S);case 206:return St(S);case 207:return pa(S)}return S}function $o(S){return Pr(S)||xi(S)||S}function Pr(S){if(F&1&&oe.getNodeCheckFlags(S)&33554432){var Ce=oe.getReferencedValueDeclaration(S);if(Ce){var qe=x[Ce.id];if(qe){var br=X.cloneNode(qe);return e.setSourceMapRange(br,S),e.setCommentRange(br,S),br}}}}function xi(S){if(F&Q&&!e.isGeneratedIdentifier(S)&&!e.isLocalName(S)){var Ce=oe.getReferencedExportContainer(S,!1);if(Ce&&Ce.kind!==305){var qe=Q&2&&Ce.kind===261||Q&8&&Ce.kind===260;if(qe)return e.setTextRange(X.createPropertyAccessExpression(X.getGeneratedNameForNode(Ce),S),S)}}}function St(S){return Bn(S)}function pa(S){return Bn(S)}function dn(S){return S.replace(/\*\//g,"*_/")}function Bn(S){var Ce=Qe(S);if(Ce!==void 0){e.setConstantValue(S,Ce);var qe=typeof Ce=="string"?X.createStringLiteral(Ce):X.createNumericLiteral(Ce);if(!f.removeComments){var br=e.getOriginalNode(S,e.isAccessExpression);e.addSyntheticTrailingComment(qe,3," ".concat(dn(e.getTextOfNode(br))," "))}return qe}return S}function Qe(S){if(!f.isolatedModules)return e.isPropertyAccessExpression(S)||e.isElementAccessExpression(S)?oe.getConstantValue(S):void 0}function Gr(S){return f.preserveValueImports?oe.isValueAliasDeclaration(S):oe.isReferencedAliasDeclaration(S)}}e.transformTypeScript=R})(ke||(ke={}));var ke;(function(e){var a;(function(p){p[p.ClassAliases=1]="ClassAliases",p[p.ClassStaticThisOrSuperReference=2]="ClassStaticThisOrSuperReference"})(a||(a={}));var C;(function(p){p.Field="f",p.Method="m",p.Accessor="a"})(C=e.PrivateIdentifierKind||(e.PrivateIdentifierKind={}));var I;(function(p){p[p.None=0]="None",p[p.ClassWasDecorated=1]="ClassWasDecorated",p[p.NeedsClassConstructorReference=2]="NeedsClassConstructorReference",p[p.NeedsClassSuperReference=4]="NeedsClassSuperReference",p[p.NeedsSubstitutionForThisInClassStaticField=8]="NeedsSubstitutionForThisInClassStaticField"})(I||(I={}));function R(p){var m=p.factory,G=p.hoistVariableDeclaration,oe=p.endLexicalEnvironment,f=p.startLexicalEnvironment,T=p.resumeLexicalEnvironment,K=p.addBlockScopedVariable,b=p.getEmitResolver(),se=p.getCompilerOptions(),J=e.getEmitScriptTarget(se),ie=e.getUseDefineForClassFields(se),B=J<9,q=J<9,O=q&&J>=2,ve=p.onSubstituteNode;p.onSubstituteNode=qr;var ee=p.onEmitNode;p.onEmitNode=or;var he,F,x,Q,$=[],A=new e.Map,y,V,L;return e.chainBundle(p,P);function P(Je){var xe=p.getCompilerOptions();if(Je.isDeclarationFile||ie&&e.getEmitScriptTarget(xe)>=9)return Je;var vr=e.visitEachChild(Je,U,p);return e.addEmitHelpers(vr,p.readEmitHelpers()),vr}function k(Je,xe){if(Je.transformFlags&8388608)switch(Je.kind){case 226:case 257:return de(Je);case 167:return ue(Je);case 237:return D(Je);case 80:return w(Je);case 170:return Br(Je)}if(Je.transformFlags&8388608||Je.transformFlags&33554432&&O&&L&&y)switch(Je.kind){case 219:case 220:return ge(Je,xe);case 221:return _e(Je,xe);case 208:return He(Je);case 210:return rr(Je);case 206:return Z(Je);case 207:return Be(Je);case 238:return ze(Je);case 242:return Re(Je);case 256:case 213:case 171:case 169:case 172:case 173:{var vr=L;L=void 0;var mr=e.visitEachChild(Je,U,p);return L=vr,mr}}return e.visitEachChild(Je,U,p)}function Y(Je){return k(Je,!0)}function U(Je){return k(Je,!1)}function j(Je){switch(Je.kind){case 291:return e.visitEachChild(Je,j,p);case 228:return ir(Je)}return U(Je)}function H(Je){switch(Je.kind){case 205:case 204:return Wr(Je);default:return U(Je)}}function w(Je){return!B||e.isStatement(Je.parent)?Je:e.setOriginalNode(m.createIdentifier(""),Je)}function l(Je){if(!B)return Je;var xe=Je.left;e.Debug.assertNode(xe,e.isPrivateIdentifier),e.Debug.assert(Je.operatorToken.kind===101);var vr=ti(xe);if(vr){var mr=e.visitNode(Je.right,U,e.isExpression);return e.setOriginalNode(p.getEmitHelperFactory().createClassPrivateFieldInHelper(vr.brandCheckIdentifier,mr),Je)}return e.visitEachChild(Je,U,p)}function d(Je){switch(Je.kind){case 171:return;case 172:case 173:case 169:return g(Je);case 167:return ue(Je);case 162:return fe(Je);case 234:return Je;default:return U(Je)}}function D(Je){var xe=Q;Q=[];var vr=e.visitEachChild(Je,U,p),mr=e.some(Q)?Ve([vr],Q,!0):vr;return Q=xe,mr}function fe(Je){var xe=e.visitEachChild(Je,U,p);if(e.some(x)){var vr=x;vr.push(xe.expression),x=[],xe=m.updateComputedPropertyName(xe,m.inlineExpressions(vr))}return xe}function g(Je){if(e.Debug.assert(!e.some(Je.decorators)),!B||!e.isPrivateIdentifier(Je.name))return e.visitEachChild(Je,d,p);var xe=ti(Je.name);if(e.Debug.assert(xe,"Undeclared private name for property declaration."),!xe.isValid)return Je;var vr=ne(Je);vr&&pi().push(m.createAssignment(vr,m.createFunctionExpression(e.filter(Je.modifiers,function(mr){return!e.isStaticModifier(mr)}),Je.asteriskToken,vr,void 0,e.visitParameterList(Je.parameters,d,p),void 0,e.visitFunctionBody(Je.body,d,p))))}function ne(Je){e.Debug.assert(e.isPrivateIdentifier(Je.name));var xe=ti(Je.name);if(e.Debug.assert(xe,"Undeclared private name for property declaration."),xe.kind==="m")return xe.methodName;if(xe.kind==="a"){if(e.isGetAccessor(Je))return xe.getterName;if(e.isSetAccessor(Je))return xe.setterName}}function ue(Je){if(e.Debug.assert(!e.some(Je.decorators)),e.isPrivateIdentifier(Je.name)){if(!B)return e.isStatic(Je)?e.visitEachChild(Je,U,p):m.updatePropertyDeclaration(Je,void 0,e.visitNodes(Je.modifiers,U,e.isModifier),Je.name,void 0,void 0,void 0);var xe=ti(Je.name);if(e.Debug.assert(xe,"Undeclared private name for property declaration."),!xe.isValid)return Je}var vr=et(Je.name,!!Je.initializer||ie);if(vr&&!e.isSimpleInlineableExpression(vr)&&pi().push(vr),e.isStatic(Je)&&!B&&!ie){var mr=ur(Je,m.createThis());if(mr){var Ar=m.createClassStaticBlockDeclaration(void 0,void 0,m.createBlock([mr]));return e.setOriginalNode(Ar,Je),e.setCommentRange(Ar,Je),e.setCommentRange(mr,{pos:-1,end:-1}),e.setSyntheticLeadingComments(mr,void 0),e.setSyntheticTrailingComments(mr,void 0),Ar}}}function We(Je,xe){return Fe(Je,e.visitNode(xe,U,e.isExpression))}function Fe(Je,xe){switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case"a":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.getterName);case"m":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.methodName);case"f":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,"Unknown private element type")}}function Z(Je){if(B&&e.isPrivateIdentifier(Je.name)){var xe=ti(Je.name);if(xe)return e.setTextRange(e.setOriginalNode(We(xe,Je.expression),Je),Je)}if(O&&e.isSuperProperty(Je)&&e.isIdentifier(Je.name)&&L&&y){var vr=y.classConstructor,mr=y.superClassReference,Ar=y.facts;if(Ar&1)return pe(Je);if(vr&&mr){var Oe=m.createReflectGetCall(mr,m.createStringLiteralFromNode(Je.name),vr);return e.setOriginalNode(Oe,Je.expression),e.setTextRange(Oe,Je.expression),Oe}}return e.visitEachChild(Je,U,p)}function Be(Je){if(O&&e.isSuperProperty(Je)&&L&&y){var xe=y.classConstructor,vr=y.superClassReference,mr=y.facts;if(mr&1)return pe(Je);if(xe&&vr){var Ar=m.createReflectGetCall(vr,e.visitNode(Je.argumentExpression,U,e.isExpression),xe);return e.setOriginalNode(Ar,Je.expression),e.setTextRange(Ar,Je.expression),Ar}}return e.visitEachChild(Je,U,p)}function ge(Je,xe){if(Je.operator===45||Je.operator===46){if(B&&e.isPrivateIdentifierPropertyAccessExpression(Je.operand)){var vr=void 0;if(vr=ti(Je.operand.name)){var mr=e.visitNode(Je.operand.expression,U,e.isExpression),Ar=Ee(mr),Oe=Ar.readExpression,nr=Ar.initializeExpression,Mr=We(vr,Oe),Pe=e.isPrefixUnaryExpression(Je)||xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=we(vr,nr||Oe,Mr,63),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}else if(O&&e.isSuperProperty(Je.operand)&&L&&y){var Ue=y.classConstructor,fr=y.superClassReference,De=y.facts;if(De&1){var gr=pe(Je.operand);return e.isPrefixUnaryExpression(Je)?m.updatePrefixUnaryExpression(Je,gr):m.updatePostfixUnaryExpression(Je,gr)}if(Ue&&fr){var Vr=void 0,Tr=void 0;if(e.isPropertyAccessExpression(Je.operand)?e.isIdentifier(Je.operand.name)&&(Tr=Vr=m.createStringLiteralFromNode(Je.operand.name)):e.isSimpleInlineableExpression(Je.operand.argumentExpression)?Tr=Vr=Je.operand.argumentExpression:(Tr=m.createTempVariable(G),Vr=m.createAssignment(Tr,e.visitNode(Je.operand.argumentExpression,U,e.isExpression))),Vr&&Tr){var Mr=m.createReflectGetCall(fr,Tr,Ue);e.setTextRange(Mr,Je.operand);var Pe=xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=m.createReflectSetCall(fr,Vr,Mr,Ue),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}}}return e.visitEachChild(Je,U,p)}function Re(Je){return m.updateForStatement(Je,e.visitNode(Je.initializer,Y,e.isForInitializer),e.visitNode(Je.condition,U,e.isExpression),e.visitNode(Je.incrementor,Y,e.isExpression),e.visitIterationBody(Je.statement,U,p))}function ze(Je){return m.updateExpressionStatement(Je,e.visitNode(Je.expression,Y,e.isExpression))}function Ee(Je){var xe=e.nodeIsSynthesized(Je)?Je:m.cloneNode(Je);if(e.isSimpleInlineableExpression(Je))return{readExpression:xe,initializeExpression:void 0};var vr=m.createTempVariable(G),mr=m.createAssignment(vr,xe);return{readExpression:vr,initializeExpression:mr}}function He(Je){if(B&&e.isPrivateIdentifierPropertyAccessExpression(Je.expression)){var xe=m.createCallBinding(Je.expression,G,J),vr=xe.thisArg,mr=xe.target;return e.isCallChain(Je)?m.updateCallChain(Je,m.createPropertyAccessChain(e.visitNode(mr,U),Je.questionDotToken,"call"),void 0,void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0)):m.updateCallExpression(Je,m.createPropertyAccessExpression(e.visitNode(mr,U),"call"),void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0))}if(O&&e.isSuperProperty(Je.expression)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionCallCall(e.visitNode(Je.expression,U,e.isExpression),y.classConstructor,e.visitNodes(Je.arguments,U,e.isExpression));return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),Ar}return e.visitEachChild(Je,U,p)}function rr(Je){if(B&&e.isPrivateIdentifierPropertyAccessExpression(Je.tag)){var xe=m.createCallBinding(Je.tag,G,J),vr=xe.thisArg,mr=xe.target;return m.updateTaggedTemplateExpression(Je,m.createCallExpression(m.createPropertyAccessExpression(e.visitNode(mr,U),"bind"),void 0,[e.visitNode(vr,U,e.isExpression)]),void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}if(O&&e.isSuperProperty(Je.tag)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionBindCall(e.visitNode(Je.tag,U,e.isExpression),y.classConstructor,[]);return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),m.updateTaggedTemplateExpression(Je,Ar,void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}return e.visitEachChild(Je,U,p)}function Ie(Je){if(B){y&&A.set(e.getOriginalNodeId(Je),y),f();var xe=L;L=Je;var vr=e.visitNodes(Je.body.statements,U,e.isStatement);vr=m.mergeLexicalEnvironment(vr,oe()),L=xe;var mr=m.createImmediatelyInvokedArrowFunction(vr);return e.setOriginalNode(mr,Je),e.setTextRange(mr,Je),e.addEmitFlags(mr,2),mr}}function _e(Je,xe){if(e.isDestructuringAssignment(Je)){var vr=x;x=void 0,Je=m.updateBinaryExpression(Je,e.visitNode(Je.left,H),Je.operatorToken,e.visitNode(Je.right,U));var mr=e.some(x)?m.inlineExpressions(e.compact(Ve(Ve([],x,!0),[Je],!1))):Je;return x=vr,mr}if(e.isAssignmentExpression(Je)){if(B&&e.isPrivateIdentifierPropertyAccessExpression(Je.left)){var Ar=ti(Je.left.name);if(Ar)return e.setTextRange(e.setOriginalNode(we(Ar,Je.left.expression,Je.right,Je.operatorToken.kind),Je),Je)}else if(O&&e.isSuperProperty(Je.left)&&L&&y){var Oe=y.classConstructor,nr=y.superClassReference,Mr=y.facts;if(Mr&1)return m.updateBinaryExpression(Je,pe(Je.left),Je.operatorToken,e.visitNode(Je.right,U,e.isExpression));if(Oe&&nr){var Pe=e.isElementAccessExpression(Je.left)?e.visitNode(Je.left.argumentExpression,U,e.isExpression):e.isIdentifier(Je.left.name)?m.createStringLiteralFromNode(Je.left.name):void 0;if(Pe){var Ue=e.visitNode(Je.right,U,e.isExpression);if(e.isCompoundAssignment(Je.operatorToken.kind)){var fr=Pe;e.isSimpleInlineableExpression(Pe)||(fr=m.createTempVariable(G),Pe=m.createAssignment(fr,Pe));var De=m.createReflectGetCall(nr,fr,Oe);e.setOriginalNode(De,Je.left),e.setTextRange(De,Je.left),Ue=m.createBinaryExpression(De,e.getNonAssignmentOperatorForCompoundAssignment(Je.operatorToken.kind),Ue),e.setTextRange(Ue,Je)}var gr=xe?void 0:m.createTempVariable(G);return gr&&(Ue=m.createAssignment(gr,Ue),e.setTextRange(gr,Je)),Ue=m.createReflectSetCall(nr,Pe,Ue,Oe),e.setOriginalNode(Ue,Je),e.setTextRange(Ue,Je),gr&&(Ue=m.createComma(Ue,gr),e.setTextRange(Ue,Je)),Ue}}}}return Je.operatorToken.kind===101&&e.isPrivateIdentifier(Je.left)?l(Je):e.visitEachChild(Je,U,p)}function we(Je,xe,vr,mr){if(xe=e.visitNode(xe,U,e.isExpression),vr=e.visitNode(vr,U,e.isExpression),e.isCompoundAssignment(mr)){var Ar=Ee(xe),Oe=Ar.readExpression,nr=Ar.initializeExpression;xe=nr||Oe,vr=m.createBinaryExpression(Fe(Je,Oe),e.getNonAssignmentOperatorForCompoundAssignment(mr),vr)}switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case"a":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.setterName);case"m":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,void 0);case"f":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,"Unknown private element type")}}function de(Je){if(!e.forEach(Je.members,ye))return e.visitEachChild(Je,U,p);var xe=x;if(x=void 0,Gi(),B){var vr=e.getNameOfDeclaration(Je);vr&&e.isIdentifier(vr)&&(_r().className=e.idText(vr));var mr=Ae(Je);e.some(mr)&&(_r().weakSetName=Xe("instances",mr[0].name))}var Ar=e.isClassDeclaration(Je)?Cr(Je):Ye(Je);return Wt(),x=xe,Ar}function ye(Je){return e.isPropertyDeclaration(Je)||e.isClassStaticBlockDeclaration(Je)||B&&Je.name&&e.isPrivateIdentifier(Je.name)}function Ae(Je){return e.filter(Je.members,e.isNonStaticMethodOrAccessorWithPrivateName)}function er(Je){var xe=0,vr=e.getOriginalNode(Je);e.isClassDeclaration(vr)&&e.classOrConstructorParameterIsDecorated(vr)&&(xe|=1);for(var mr=0,Ar=Je.members;mr=0?(Pe=fr+1,De=Ve(Ve(Ve([],De.slice(0,Ue),!0),e.visitNodes(xe.body.statements,U,e.isStatement,Ue,Pe-Ue),!0),De.slice(Ue),!0)):Ue>=0&&(Pe=Ue)),Mr&&De.push(m.createExpressionStatement(m.createCallExpression(m.createSuper(),void 0,[m.createSpreadElement(m.createIdentifier("arguments"))])));var gr=0;if(xe!=null&&xe.body)if(ie)De=De.filter(function(Li){return!e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)});else{for(var Vr=0,Tr=xe.body.statements;Vr0){var Ui=e.visitNodes(xe.body.statements,U,e.isStatement,Pe,gr);if(fr>=0)e.addRange(De,Ui);else{var Yi=Ue;Mr&&Yi++,De=Ve(Ve(Ve([],De.slice(0,Yi),!0),Ui,!0),De.slice(Yi),!0)}Pe+=gr}}var Wi=m.createThis();return mi(De,Oe,Wi),Ge(De,Ar,Wi),xe&&e.addRange(De,e.visitNodes(xe.body.statements,ct,e.isStatement,Pe)),De=m.mergeLexicalEnvironment(De,oe()),e.setTextRange(m.createBlock(e.setTextRange(m.createNodeArray(De),xe?xe.body.statements:Je.members),!0),xe?xe.body:void 0);function ct(Li){if(!(ie&&e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)))return U(Li)}}function Ge(Je,xe,vr){for(var mr=0,Ar=xe;mr=0;--mr){var Ar=$[mr];if(!!Ar){var vr=(xe=Ar.privateIdentifierEnvironment)===null||xe===void 0?void 0:xe.identifiers.get(Je.escapedText);if(vr)return vr}}}function Ze(Je){var xe=m.getGeneratedNameForNode(Je),vr=ti(Je.name);if(!vr)return e.visitEachChild(Je,U,p);var mr=Je.expression;return(e.isThisProperty(Je)||e.isSuperProperty(Je)||!e.isSimpleCopiableExpression(Je.expression))&&(mr=m.createTempVariable(G,!0),pi().push(m.createBinaryExpression(mr,63,e.visitNode(Je.expression,U,e.isExpression)))),m.createAssignmentTargetWrapper(xe,we(vr,mr,xe,63))}function Sr(Je){var xe=e.getTargetOfBindingOrAssignmentElement(Je);if(xe){var vr=void 0;if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}if(vr)return e.isAssignmentExpression(Je)?m.updateBinaryExpression(Je,vr,Je.operatorToken,e.visitNode(Je.right,U,e.isExpression)):e.isSpreadElement(Je)?m.updateSpreadElement(Je,vr):vr}return e.visitNode(Je,H)}function zr(Je){if(e.isObjectBindingOrAssignmentElement(Je)&&!e.isShorthandPropertyAssignment(Je)){var xe=e.getTargetOfBindingOrAssignmentElement(Je),vr=void 0;if(xe){if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}}if(e.isPropertyAssignment(Je)){var Pe=e.getInitializerOfBindingOrAssignmentElement(Je);return m.updatePropertyAssignment(Je,e.visitNode(Je.name,U,e.isPropertyName),vr?Pe?m.createAssignment(vr,e.visitNode(Pe,U)):vr:e.visitNode(Je.initializer,H,e.isExpression))}if(e.isSpreadAssignment(Je))return m.updateSpreadAssignment(Je,vr||e.visitNode(Je.expression,H,e.isExpression));e.Debug.assert(vr===void 0,"Should not have generated a wrapped target")}return e.visitNode(Je,U)}function Wr(Je){return e.isArrayLiteralExpression(Je)?m.updateArrayLiteralExpression(Je,e.visitNodes(Je.elements,Sr,e.isExpression)):m.updateObjectLiteralExpression(Je,e.visitNodes(Je.properties,zr,e.isObjectLiteralElementLike))}}e.transformClassFields=R;function E(p,m){return e.factory.createAssignment(p,e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment("value",m||e.factory.createVoidZero())]))}function X(p,m,G){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(G,"set"),void 0,[p,m||e.factory.createVoidZero()])}function le(p,m){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(m,"add"),void 0,[p])}function N(p){return p.escapedText==="#constructor"}})(ke||(ke={}));var ke;(function(e){var a;(function(E){E[E.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"})(a||(a={}));var C;(function(E){E[E.NonTopLevel=1]="NonTopLevel",E[E.HasLexicalThis=2]="HasLexicalThis"})(C||(C={}));function I(E){var X=E.factory,le=E.getEmitHelperFactory,N=E.resumeLexicalEnvironment,p=E.endLexicalEnvironment,m=E.hoistVariableDeclaration,G=E.getEmitResolver(),oe=E.getCompilerOptions(),f=e.getEmitScriptTarget(oe),T,K=0,b,se,J,ie=[],B=0,q=E.onEmitNode,O=E.onSubstituteNode;return E.onEmitNode=Re,E.onSubstituteNode=ze,e.chainBundle(E,ve);function ve(de){if(de.isDeclarationFile)return de;ee(1,!1),ee(2,!e.isEffectiveStrictModeSourceFile(de,oe));var ye=e.visitEachChild(de,A,E);return e.addEmitHelpers(ye,E.readEmitHelpers()),ye}function ee(de,ye){B=ye?B|de:B&~de}function he(de){return(B&de)!==0}function F(){return!he(1)}function x(){return he(2)}function Q(de,ye,Ae){var er=de&~B;if(er){ee(er,!0);var ir=ye(Ae);return ee(er,!1),ir}return ye(Ae)}function $(de){return e.visitEachChild(de,A,E)}function A(de){if((de.transformFlags&256)===0)return de;switch(de.kind){case 131:return;case 218:return U(de);case 169:return Q(3,j,de);case 256:return Q(3,H,de);case 213:return Q(3,w,de);case 214:return Q(1,l,de);case 206:return se&&e.isPropertyAccessExpression(de)&&de.expression.kind===106&&se.add(de.name.escapedText),e.visitEachChild(de,A,E);case 207:return se&&de.expression.kind===106&&(J=!0),e.visitEachChild(de,A,E);case 172:case 173:case 171:case 257:case 226:return Q(3,$,de);default:return e.visitEachChild(de,A,E)}}function y(de){if(e.isNodeWithPossibleHoistedDeclaration(de))switch(de.kind){case 237:return L(de);case 242:return Y(de);case 243:return P(de);case 244:return k(de);case 292:return V(de);case 235:case 249:case 263:case 289:case 290:case 252:case 240:case 241:case 239:case 248:case 250:return e.visitEachChild(de,y,E);default:return e.Debug.assertNever(de,"Unhandled node.")}return A(de)}function V(de){var ye=new e.Set;d(de.variableDeclaration,ye);var Ae;if(ye.forEach(function(Cr,Ye){b.has(Ye)&&(Ae||(Ae=new e.Set(b)),Ae.delete(Ye))}),Ae){var er=b;b=Ae;var ir=e.visitEachChild(de,y,E);return b=er,ir}else return e.visitEachChild(de,y,E)}function L(de){if(D(de.declarationList)){var ye=fe(de.declarationList,!1);return ye?X.createExpressionStatement(ye):void 0}return e.visitEachChild(de,A,E)}function P(de){return X.updateForInStatement(de,D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function k(de){return X.updateForOfStatement(de,e.visitNode(de.awaitModifier,A,e.isToken),D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function Y(de){var ye=de.initializer;return X.updateForStatement(de,D(ye)?fe(ye,!1):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.condition,A,e.isExpression),e.visitNode(de.incrementor,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function U(de){return F()?e.visitEachChild(de,A,E):e.setOriginalNode(e.setTextRange(X.createYieldExpression(void 0,e.visitNode(de.expression,A,e.isExpression)),de),de)}function j(de){return X.updateMethodDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function H(de){return X.updateFunctionDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function w(de){return X.updateFunctionExpression(de,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function l(de){return X.updateArrowFunction(de,e.visitNodes(de.modifiers,A,e.isModifier),void 0,e.visitParameterList(de.parameters,A,E),void 0,de.equalsGreaterThanToken,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function d(de,ye){var Ae=de.name;if(e.isIdentifier(Ae))ye.add(Ae.escapedText);else for(var er=0,ir=Ae.elements;er=2&&G.getNodeCheckFlags(de)&6144;if(yr&&(ge(),se.size)){var Ir=R(X,G,de,se);ie[e.getNodeId(Ir)]=!0,e.insertStatementsAfterStandardPrologue(Ge,[Ir])}var wr=X.createBlock(Ge,!0);e.setTextRange(wr,de.body),yr&&J&&(G.getNodeCheckFlags(de)&4096?e.addEmitHelper(wr,e.advancedAsyncSuperHelper):G.getNodeCheckFlags(de)&2048&&e.addEmitHelper(wr,e.asyncSuperHelper)),be=wr}return b=Ye,ir||(se=n,J=lr),be}function Z(de,ye){return e.isBlock(de)?X.updateBlock(de,e.visitNodes(de.statements,y,e.isStatement,ye)):X.converters.convertToFunctionBlock(e.visitNode(de,y,e.isConciseBody))}function Be(de){var ye=de&&e.getEntityNameFromTypeNode(de);if(ye&&e.isEntityName(ye)){var Ae=G.getTypeReferenceSerializationKind(ye);if(Ae===e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue||Ae===e.TypeReferenceSerializationKind.Unknown)return ye}}function ge(){(T&1)===0&&(T|=1,E.enableSubstitution(208),E.enableSubstitution(206),E.enableSubstitution(207),E.enableEmitNotification(257),E.enableEmitNotification(169),E.enableEmitNotification(172),E.enableEmitNotification(173),E.enableEmitNotification(171),E.enableEmitNotification(237))}function Re(de,ye,Ae){if(T&1&&_e(ye)){var er=G.getNodeCheckFlags(ye)&6144;if(er!==K){var ir=K;K=er,q(de,ye,Ae),K=ir;return}}else if(T&&ie[e.getNodeId(ye)]){var ir=K;K=0,q(de,ye,Ae),K=ir;return}q(de,ye,Ae)}function ze(de,ye){return ye=O(de,ye),de===1&&K?Ee(ye):ye}function Ee(de){switch(de.kind){case 206:return He(de);case 207:return rr(de);case 208:return Ie(de)}return de}function He(de){return de.expression.kind===106?e.setTextRange(X.createPropertyAccessExpression(X.createUniqueName("_super",48),de.name),de):de}function rr(de){return de.expression.kind===106?we(de.argumentExpression,de):de}function Ie(de){var ye=de.expression;if(e.isSuperProperty(ye)){var Ae=e.isPropertyAccessExpression(ye)?He(ye):rr(ye);return X.createCallExpression(X.createPropertyAccessExpression(Ae,"call"),void 0,Ve([X.createThis()],de.arguments,!0))}return de}function _e(de){var ye=de.kind;return ye===257||ye===171||ye===169||ye===172||ye===173}function we(de,ye){return K&4096?e.setTextRange(X.createPropertyAccessExpression(X.createCallExpression(X.createUniqueName("_superIndex",48),void 0,[de]),"value"),ye):e.setTextRange(X.createCallExpression(X.createUniqueName("_superIndex",48),void 0,[de]),ye)}}e.transformES2017=I;function R(E,X,le,N){var p=(X.getNodeCheckFlags(le)&4096)!==0,m=[];return N.forEach(function(G,oe){var f=e.unescapeLeadingUnderscores(oe),T=[];T.push(E.createPropertyAssignment("get",E.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4)))),p&&T.push(E.createPropertyAssignment("set",E.createArrowFunction(void 0,void 0,[E.createParameterDeclaration(void 0,void 0,void 0,"v",void 0,void 0,void 0)],void 0,void 0,E.createAssignment(e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4),E.createIdentifier("v"))))),m.push(E.createPropertyAssignment(f,E.createObjectLiteralExpression(T)))}),E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.createUniqueName("_super",48),void 0,void 0,E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier("Object"),"create"),void 0,[E.createNull(),E.createObjectLiteralExpression(m,!0)]))],2))}e.createSuperAccessVariableStatement=R})(ke||(ke={}));var ke;(function(e){var a;(function(R){R[R.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"})(a||(a={}));var C;(function(R){R[R.None=0]="None",R[R.HasLexicalThis=1]="HasLexicalThis",R[R.IterationContainer=2]="IterationContainer",R[R.AncestorFactsMask=3]="AncestorFactsMask",R[R.SourceFileIncludes=1]="SourceFileIncludes",R[R.SourceFileExcludes=2]="SourceFileExcludes",R[R.StrictModeSourceFileIncludes=0]="StrictModeSourceFileIncludes",R[R.ClassOrFunctionIncludes=1]="ClassOrFunctionIncludes",R[R.ClassOrFunctionExcludes=2]="ClassOrFunctionExcludes",R[R.ArrowFunctionIncludes=0]="ArrowFunctionIncludes",R[R.ArrowFunctionExcludes=2]="ArrowFunctionExcludes",R[R.IterationStatementIncludes=2]="IterationStatementIncludes",R[R.IterationStatementExcludes=0]="IterationStatementExcludes"})(C||(C={}));function I(R){var E=R.factory,X=R.getEmitHelperFactory,le=R.resumeLexicalEnvironment,N=R.endLexicalEnvironment,p=R.hoistVariableDeclaration,m=R.getEmitResolver(),G=R.getCompilerOptions(),oe=e.getEmitScriptTarget(G),f=R.onEmitNode;R.onEmitNode=Ge;var T=R.onSubstituteNode;R.onSubstituteNode=ur;var K=!1,b,se,J,ie=0,B=0,q,O,ve,ee,he=[];return e.chainBundle(R,A);function F(pe,or){return B!==(B&~pe|or)}function x(pe,or){var qr=B;return B=(B&~pe|or)&3,qr}function Q(pe){B=pe}function $(pe){O=e.append(O,E.createVariableDeclaration(pe))}function A(pe){if(pe.isDeclarationFile)return pe;q=pe;var or=g(pe);return e.addEmitHelpers(or,R.readEmitHelpers()),q=void 0,O=void 0,or}function y(pe){return Y(pe,!1)}function V(pe){return Y(pe,!0)}function L(pe){if(pe.kind!==131)return pe}function P(pe,or,qr,si){if(F(qr,si)){var Di=x(qr,si),wi=pe(or);return Q(Di),wi}return pe(or)}function k(pe){return e.visitEachChild(pe,y,R)}function Y(pe,or){if((pe.transformFlags&128)===0)return pe;switch(pe.kind){case 218:return U(pe);case 224:return j(pe);case 247:return H(pe);case 250:return w(pe);case 205:return d(pe);case 221:return ue(pe,or);case 351:return We(pe,or);case 292:return Fe(pe);case 237:return Z(pe);case 254:return Be(pe);case 240:case 241:case 243:return P(k,pe,0,2);case 244:return Ee(pe,void 0);case 242:return P(Re,pe,0,2);case 217:return ze(pe);case 171:return P(Ae,pe,2,1);case 169:return P(Cr,pe,2,1);case 172:return P(er,pe,2,1);case 173:return P(ir,pe,2,1);case 256:return P(Ye,pe,2,1);case 213:return P(Er,pe,2,1);case 214:return P(Br,pe,2,0);case 164:return de(pe);case 238:return D(pe);case 212:return fe(pe,or);case 210:return ne(pe);case 206:return ve&&e.isPropertyAccessExpression(pe)&&pe.expression.kind===106&&ve.add(pe.name.escapedText),e.visitEachChild(pe,y,R);case 207:return ve&&pe.expression.kind===106&&(ee=!0),e.visitEachChild(pe,y,R);case 257:case 226:return P(k,pe,2,1);default:return e.visitEachChild(pe,y,R)}}function U(pe){return se&2&&se&1?e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,X().createAwaitHelper(e.visitNode(pe.expression,y,e.isExpression))),pe),pe):e.visitEachChild(pe,y,R)}function j(pe){if(se&2&&se&1){if(pe.asteriskToken){var or=e.visitNode(e.Debug.checkDefined(pe.expression),y,e.isExpression);return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,X().createAwaitHelper(E.updateYieldExpression(pe,pe.asteriskToken,e.setTextRange(X().createAsyncDelegatorHelper(e.setTextRange(X().createAsyncValuesHelper(or),or)),or)))),pe),pe)}return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())),pe),pe)}return e.visitEachChild(pe,y,R)}function H(pe){return se&2&&se&1?E.updateReturnStatement(pe,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())):e.visitEachChild(pe,y,R)}function w(pe){if(se&2){var or=e.unwrapInnermostStatementOfLabel(pe);return or.kind===244&&or.awaitModifier?Ee(or,pe):E.restoreEnclosingLabel(e.visitNode(or,y,e.isStatement,E.liftToBlock),pe)}return e.visitEachChild(pe,y,R)}function l(pe){for(var or,qr=[],si=0,Di=pe;si1){for(var si=1;si=2&&m.getNodeCheckFlags(pe)&6144;if(Xi){be();var et=e.createSuperAccessVariableStatement(E,m,pe,ve);he[e.getNodeId(et)]=!0,e.insertStatementsAfterStandardPrologue(or,[et])}or.push(wi),e.insertStatementsAfterStandardPrologue(or,N());var Gi=E.updateBlock(pe.body,or);return Xi&&ee&&(m.getNodeCheckFlags(pe)&4096?e.addEmitHelper(Gi,e.advancedAsyncSuperHelper):m.getNodeCheckFlags(pe)&2048&&e.addEmitHelper(Gi,e.asyncSuperHelper)),ve=si,ee=Di,Gi}function n(pe){var or;le();var qr=0,si=[],Di=(or=e.visitNode(pe.body,y,e.isConciseBody))!==null&&or!==void 0?or:E.createBlock([]);e.isBlock(Di)&&(qr=E.copyPrologue(Di.statements,si,!1,y)),e.addRange(si,lr(void 0,pe));var wi=N();if(qr>0||e.some(si)||e.some(wi)){var Xi=E.converters.convertToFunctionBlock(Di,!0);return e.insertStatementsAfterStandardPrologue(si,wi),e.addRange(si,Xi.statements.slice(qr)),E.updateBlock(Xi,e.setTextRange(E.createNodeArray(si),Xi.statements))}return Di}function lr(pe,or){for(var qr=!1,si=0,Di=or.parameters;si0){var Xi=e.flattenDestructuringBinding(wi,y,R,0,E.getGeneratedNameForNode(wi));if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.getGeneratedNameForNode(wi),Zt=e.visitNode(wi.initializer,y,e.isExpression),_r=E.createAssignment(Wt,Zt),Gi=E.createExpressionStatement(_r);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.cloneNode(wi.name);e.setTextRange(Wt,wi.name),e.setEmitFlags(Wt,48);var Zt=e.visitNode(wi.initializer,y,e.isExpression);e.addEmitFlags(Zt,1584);var _r=E.createAssignment(Wt,Zt);e.setTextRange(_r,wi),e.setEmitFlags(_r,1536);var pi=E.createBlock([E.createExpressionStatement(_r)]);e.setTextRange(pi,wi),e.setEmitFlags(pi,1953);var ae=E.createTypeCheck(E.cloneNode(wi.name),"undefined"),Gi=E.createIfStatement(ae,pi);e.startOnNewLine(Gi),e.setTextRange(Gi,wi),e.setEmitFlags(Gi,1050528),pe=e.append(pe,Gi)}}else if(wi.transformFlags&32768){qr=!0;var Xi=e.flattenDestructuringBinding(wi,y,R,1,E.getGeneratedNameForNode(wi),!1,!0);if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}}return pe}function be(){(b&1)===0&&(b|=1,R.enableSubstitution(208),R.enableSubstitution(206),R.enableSubstitution(207),R.enableEmitNotification(257),R.enableEmitNotification(169),R.enableEmitNotification(172),R.enableEmitNotification(173),R.enableEmitNotification(171),R.enableEmitNotification(237))}function Ge(pe,or,qr){if(b&1&&ii(or)){var si=m.getNodeCheckFlags(or)&6144;if(si!==ie){var Di=ie;ie=si,f(pe,or,qr),ie=Di;return}}else if(b&&he[e.getNodeId(or)]){var Di=ie;ie=0,f(pe,or,qr),ie=Di;return}f(pe,or,qr)}function ur(pe,or){return or=T(pe,or),pe===1&&ie?yr(or):or}function yr(pe){switch(pe.kind){case 206:return Ir(pe);case 207:return wr(pe);case 208:return Ur(pe)}return pe}function Ir(pe){return pe.expression.kind===106?e.setTextRange(E.createPropertyAccessExpression(E.createUniqueName("_super",48),pe.name),pe):pe}function wr(pe){return pe.expression.kind===106?mi(pe.argumentExpression,pe):pe}function Ur(pe){var or=pe.expression;if(e.isSuperProperty(or)){var qr=e.isPropertyAccessExpression(or)?Ir(or):wr(or);return E.createCallExpression(E.createPropertyAccessExpression(qr,"call"),void 0,Ve([E.createThis()],pe.arguments,!0))}return pe}function ii(pe){var or=pe.kind;return or===257||or===171||or===169||or===172||or===173}function mi(pe,or){return ie&4096?e.setTextRange(E.createPropertyAccessExpression(E.createCallExpression(E.createIdentifier("_superIndex"),void 0,[pe]),"value"),or):e.setTextRange(E.createCallExpression(E.createIdentifier("_superIndex"),void 0,[pe]),or)}}e.transformES2018=I})(ke||(ke={}));var ke;(function(e){function a(C){var I=C.factory;return e.chainBundle(C,R);function R(le){return le.isDeclarationFile?le:e.visitEachChild(le,E,C)}function E(le){if((le.transformFlags&64)===0)return le;switch(le.kind){case 292:return X(le);default:return e.visitEachChild(le,E,C)}}function X(le){return le.variableDeclaration?e.visitEachChild(le,E,C):I.updateCatchClause(le,I.createVariableDeclaration(I.createTempVariable(void 0)),e.visitNode(le.block,E,e.isBlock))}}e.transformES2019=a})(ke||(ke={}));var ke;(function(e){function a(C){var I=C.factory,R=C.hoistVariableDeclaration;return e.chainBundle(C,E);function E(b){return b.isDeclarationFile?b:e.visitEachChild(b,X,C)}function X(b){if((b.transformFlags&32)===0)return b;switch(b.kind){case 208:{var se=m(b,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}case 206:case 207:if(e.isOptionalChain(b)){var se=oe(b,!1,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}return e.visitEachChild(b,X,C);case 221:return b.operatorToken.kind===60?T(b):e.visitEachChild(b,X,C);case 215:return K(b);default:return e.visitEachChild(b,X,C)}}function le(b){e.Debug.assertNotNode(b,e.isNonNullChain);for(var se=[b];!b.questionDotToken&&!e.isTaggedTemplateExpression(b);)b=e.cast(e.skipPartiallyEmittedExpressions(b.expression),e.isOptionalChain),e.Debug.assertNotNode(b,e.isNonNullChain),se.unshift(b);return{expression:b.expression,chain:se}}function N(b,se,J){var ie=G(b.expression,se,J);return e.isSyntheticReference(ie)?I.createSyntheticReferenceExpression(I.updateParenthesizedExpression(b,ie.expression),ie.thisArg):I.updateParenthesizedExpression(b,ie)}function p(b,se,J){if(e.isOptionalChain(b))return oe(b,se,J);var ie=e.visitNode(b.expression,X,e.isExpression);e.Debug.assertNotNode(ie,e.isSyntheticReference);var B;return se&&(e.isSimpleCopiableExpression(ie)?B=ie:(B=I.createTempVariable(R),ie=I.createAssignment(B,ie))),ie=b.kind===206?I.updatePropertyAccessExpression(b,ie,e.visitNode(b.name,X,e.isIdentifier)):I.updateElementAccessExpression(b,ie,e.visitNode(b.argumentExpression,X,e.isExpression)),B?I.createSyntheticReferenceExpression(ie,B):ie}function m(b,se){if(e.isOptionalChain(b))return oe(b,se,!1);if(e.isParenthesizedExpression(b.expression)&&e.isOptionalChain(e.skipParentheses(b.expression))){var J=N(b.expression,!0,!1),ie=e.visitNodes(b.arguments,X,e.isExpression);return e.isSyntheticReference(J)?e.setTextRange(I.createFunctionCallCall(J.expression,J.thisArg,ie),b):I.updateCallExpression(b,J,void 0,ie)}return e.visitEachChild(b,X,C)}function G(b,se,J){switch(b.kind){case 212:return N(b,se,J);case 206:case 207:return p(b,se,J);case 208:return m(b,se);default:return e.visitNode(b,X,e.isExpression)}}function oe(b,se,J){var ie=le(b),B=ie.expression,q=ie.chain,O=G(e.skipPartiallyEmittedExpressions(B),e.isCallChain(q[0]),!1),ve=e.isSyntheticReference(O)?O.thisArg:void 0,ee=e.isSyntheticReference(O)?O.expression:O,he=I.restoreOuterExpressions(B,ee,8);e.isSimpleCopiableExpression(ee)||(ee=I.createTempVariable(R),he=I.createAssignment(ee,he));for(var F=ee,x,Q=0;Q1||!!(!((Be=ge[0])===null||Be===void 0)&&Be.dotDotDotToken),ze=[g,ne];if(ue&&ze.push(Y(ue.initializer)),X.jsx===5){var Ee=e.getOriginalNode(le);if(Ee&&e.isSourceFile(Ee)){ue===void 0&&ze.push(R.createVoidZero()),ze.push(Re?R.createTrue():R.createFalse());var He=e.getLineAndCharacterOfPosition(Ee,Z.pos);ze.push(R.createObjectLiteralExpression([R.createPropertyAssignment("fileName",p()),R.createPropertyAssignment("lineNumber",R.createNumericLiteral(He.line+1)),R.createPropertyAssignment("columnNumber",R.createNumericLiteral(He.character+1))])),ze.push(R.createThis())}}var rr=e.setTextRange(R.createCallExpression(G(Re),void 0,ze),Z);return Fe&&e.startOnNewLine(rr),rr}function x(g,ne,ue,We){var Fe=d(g),Z=g.attributes.properties,Be=e.length(Z)?y(Z):R.createNull(),ge=N.importSpecifier===void 0?e.createJsxFactoryExpression(R,I.getEmitResolver().getJsxFactoryEntity(le),X.reactNamespace,g):f("createElement"),Re=e.createExpressionForJsxElement(R,ge,Fe,Be,e.mapDefined(ne,se),We);return ue&&e.startOnNewLine(Re),Re}function Q(g,ne,ue,We){var Fe;if(ne&&ne.length){var Z=ve(ne);Z&&(Fe=Z)}return F(oe(),Fe||R.createObjectLiteralExpression([]),void 0,ne,ue,We)}function $(g,ne,ue,We){var Fe=e.createExpressionForJsxFragment(R,I.getEmitResolver().getJsxFactoryEntity(le),I.getEmitResolver().getJsxFragmentFactoryEntity(le),X.reactNamespace,e.mapDefined(ne,se),g,We);return ue&&e.startOnNewLine(Fe),Fe}function A(g){return R.createSpreadAssignment(e.visitNode(g.expression,K,e.isExpression))}function y(g,ne){var ue=e.getEmitScriptTarget(X);return ue&&ue>=5?R.createObjectLiteralExpression(V(g,ne)):L(g,ne)}function V(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return e.map(We,function(Z){return Fe?A(Z):k(Z)})}));return ne&&ue.push(ne),ue}function L(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return Fe?e.map(We,P):R.createObjectLiteralExpression(e.map(We,k))}));return e.isJsxSpreadAttribute(g[0])&&ue.unshift(R.createObjectLiteralExpression()),ne&&ue.push(R.createObjectLiteralExpression([ne])),e.singleOrUndefined(ue)||E().createAssignHelper(ue)}function P(g){return e.visitNode(g.expression,K,e.isExpression)}function k(g){var ne=D(g),ue=Y(g.initializer);return R.createPropertyAssignment(ne,ue)}function Y(g){if(g===void 0)return R.createTrue();if(g.kind===10){var ne=g.singleQuote!==void 0?g.singleQuote:!e.isStringDoubleQuoted(g,le),ue=R.createStringLiteral(l(g.text)||g.text,ne);return e.setTextRange(ue,g)}else return g.kind===288?g.expression===void 0?R.createTrue():e.visitNode(g.expression,K,e.isExpression):e.Debug.failBadSyntaxKind(g)}function U(g){var ne=j(g.text);return ne===void 0?void 0:R.createStringLiteral(ne)}function j(g){for(var ne,ue=0,We=-1,Fe=0;Fe0?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(Gr,L,p,0,m.getGeneratedNameForNode(Gr)))),1048576)),!0):Ce?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createExpressionStatement(m.createAssignment(m.getGeneratedNameForNode(Gr),e.visitNode(Ce,L,e.isExpression))),1048576)),!0):!1}function er(Qe,Gr,S,Ce){Ce=e.visitNode(Ce,L,e.isExpression);var qe=m.createIfStatement(m.createTypeCheck(m.cloneNode(S),"undefined"),e.setEmitFlags(e.setTextRange(m.createBlock([m.createExpressionStatement(e.setEmitFlags(e.setTextRange(m.createAssignment(e.setEmitFlags(e.setParent(e.setTextRange(m.cloneNode(S),S),S.parent),48),e.setEmitFlags(Ce,48|e.getEmitFlags(Ce)|1536)),Gr),1536))]),Gr),1953));e.startOnNewLine(qe),e.setTextRange(qe,Gr),e.setEmitFlags(qe,1050528),e.insertStatementAfterCustomPrologue(Qe,qe)}function ir(Qe,Gr){return!!(Qe&&Qe.dotDotDotToken&&!Gr)}function Cr(Qe,Gr,S){var Ce=[],qe=e.lastOrUndefined(Gr.parameters);if(!ir(qe,S))return!1;var br=qe.name.kind===79?e.setParent(e.setTextRange(m.cloneNode(qe.name),qe.name),qe.name.parent):m.createTempVariable(void 0);e.setEmitFlags(br,48);var Zr=qe.name.kind===79?m.cloneNode(qe.name):br,Si=Gr.parameters.length-1,Pi=m.createLoopVariable();Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(br,void 0,void 0,m.createArrayLiteralExpression([]))])),qe),1048576));var Qi=m.createForStatement(e.setTextRange(m.createVariableDeclarationList([m.createVariableDeclaration(Pi,void 0,void 0,m.createNumericLiteral(Si))]),qe),e.setTextRange(m.createLessThan(Pi,m.createPropertyAccessExpression(m.createIdentifier("arguments"),"length")),qe),e.setTextRange(m.createPostfixIncrement(Pi),qe),m.createBlock([e.startOnNewLine(e.setTextRange(m.createExpressionStatement(m.createAssignment(m.createElementAccessExpression(Zr,Si===0?Pi:m.createSubtract(Pi,m.createNumericLiteral(Si))),m.createElementAccessExpression(m.createIdentifier("arguments"),Pi))),qe))]));return e.setEmitFlags(Qi,1048576),e.startOnNewLine(Qi),Ce.push(Qi),qe.name.kind!==79&&Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(qe,L,p,0,Zr))),qe),1048576)),e.insertStatementsAfterCustomPrologue(Qe,Ce),!0}function Ye(Qe,Gr){return O&65536&&Gr.kind!==214?(Er(Qe,Gr,m.createThis()),!0):!1}function Br(Qe,Gr){Ko();var S=m.createExpressionStatement(m.createBinaryExpression(m.createThis(),63,Gr));e.insertStatementAfterCustomPrologue(Qe,S),e.setCommentRange(S,e.getOriginalNode(Gr).parent)}function Er(Qe,Gr,S){Ko();var Ce=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName("_this",48),void 0,void 0,S)]));e.setEmitFlags(Ce,1050112),e.setSourceMapRange(Ce,Gr),e.insertStatementAfterCustomPrologue(Qe,Ce)}function Ne(Qe,Gr,S){if(O&32768){var Ce=void 0;switch(Gr.kind){case 214:return Qe;case 169:case 172:case 173:Ce=m.createVoidZero();break;case 171:Ce=m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),"constructor");break;case 256:case 213:Ce=m.createConditionalExpression(m.createLogicalAnd(e.setEmitFlags(m.createThis(),4),m.createBinaryExpression(e.setEmitFlags(m.createThis(),4),102,m.getLocalName(Gr))),void 0,m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),"constructor"),void 0,m.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(Gr)}var qe=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName("_newTarget",48),void 0,void 0,Ce)]));e.setEmitFlags(qe,1050112),S&&(Qe=Qe.slice()),e.insertStatementAfterCustomPrologue(Qe,qe)}return Qe}function n(Qe,Gr){for(var S=0,Ce=Gr.members;S0&&br.push(m.createStringLiteral(qe.literal.text)),Gr=m.createCallExpression(m.createPropertyAccessExpression(Gr,"concat"),void 0,br)}return e.setTextRange(Gr,Qe)}function En(Qe){return O&8&&!Qe?m.createPropertyAccessExpression(m.createUniqueName("_super",48),"prototype"):m.createUniqueName("_super",48)}function zn(Qe){return Qe.keywordToken===103&&Qe.name.escapedText==="target"?(O|=32768,m.createUniqueName("_newTarget",48)):Qe}function to(Qe,Gr,S){if(F&1&&e.isFunctionLike(Gr)){var Ce=Q(32670,e.getEmitFlags(Gr)&8?81:65);ie(Qe,Gr,S),$(Ce,0,0);return}ie(Qe,Gr,S)}function Co(){(F&2)===0&&(F|=2,p.enableSubstitution(79))}function Ko(){(F&1)===0&&(F|=1,p.enableSubstitution(108),p.enableEmitNotification(171),p.enableEmitNotification(169),p.enableEmitNotification(172),p.enableEmitNotification(173),p.enableEmitNotification(214),p.enableEmitNotification(213),p.enableEmitNotification(256))}function Oo(Qe,Gr){return Gr=J(Qe,Gr),Qe===1?Pr(Gr):e.isIdentifier(Gr)?no(Gr):Gr}function no(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=e.getParseTreeNode(Qe,e.isIdentifier);if(Gr&&$o(Gr))return e.setTextRange(m.getGeneratedNameForNode(Gr),Qe)}return Qe}function $o(Qe){switch(Qe.parent.kind){case 203:case 257:case 260:case 254:return Qe.parent.name===Qe&&se.isDeclarationWithCollidingName(Qe.parent)}return!1}function Pr(Qe){switch(Qe.kind){case 79:return xi(Qe);case 108:return pa(Qe)}return Qe}function xi(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=se.getReferencedDeclarationWithCollidingName(Qe);if(Gr&&!(e.isClassLike(Gr)&&St(Gr,Qe)))return e.setTextRange(m.getGeneratedNameForNode(e.getNameOfDeclaration(Gr)),Qe)}return Qe}function St(Qe,Gr){var S=e.getParseTreeNode(Gr);if(!S||S===Qe||S.end<=Qe.pos||S.pos>=Qe.end)return!1;for(var Ce=e.getEnclosingBlockScopeContainer(Qe);S;){if(S===Ce||S===Qe)return!1;if(e.isClassElement(S)&&S.parent===Qe)return!0;S=S.parent}return!1}function pa(Qe){return F&1&&O&16?e.setTextRange(m.createUniqueName("_this",48),Qe):Qe}function dn(Qe,Gr){return e.isStatic(Gr)?m.getInternalName(Qe):m.createPropertyAccessExpression(m.getInternalName(Qe),"prototype")}function Bn(Qe,Gr){if(!Qe||!Gr||e.some(Qe.parameters))return!1;var S=e.firstOrUndefined(Qe.body.statements);if(!S||!e.nodeIsSynthesized(S)||S.kind!==238)return!1;var Ce=S.expression;if(!e.nodeIsSynthesized(Ce)||Ce.kind!==208)return!1;var qe=Ce.expression;if(!e.nodeIsSynthesized(qe)||qe.kind!==106)return!1;var br=e.singleOrUndefined(Ce.arguments);if(!br||!e.nodeIsSynthesized(br)||br.kind!==225)return!1;var Zr=br.expression;return e.isIdentifier(Zr)&&Zr.escapedText==="arguments"}}e.transformES2015=N})(ke||(ke={}));var ke;(function(e){function a(C){var I=C.factory,R=C.getCompilerOptions(),E,X;(R.jsx===1||R.jsx===3)&&(E=C.onEmitNode,C.onEmitNode=p,C.enableEmitNotification(280),C.enableEmitNotification(281),C.enableEmitNotification(279),X=[]);var le=C.onSubstituteNode;return C.onSubstituteNode=m,C.enableSubstitution(206),C.enableSubstitution(296),e.chainBundle(C,N);function N(T){return T}function p(T,K,b){switch(K.kind){case 280:case 281:case 279:var se=K.tagName;X[e.getOriginalNodeId(se)]=!0;break}E(T,K,b)}function m(T,K){return K.id&&X&&X[K.id]?le(T,K):(K=le(T,K),e.isPropertyAccessExpression(K)?G(K):e.isPropertyAssignment(K)?oe(K):K)}function G(T){if(e.isPrivateIdentifier(T.name))return T;var K=f(T.name);return K?e.setTextRange(I.createElementAccessExpression(T.expression,K),T):T}function oe(T){var K=e.isIdentifier(T.name)&&f(T.name);return K?I.updatePropertyAssignment(T,K,T.initializer):T}function f(T){var K=T.originalKeywordKind||(e.nodeIsSynthesized(T)?e.stringToToken(e.idText(T)):void 0);if(K!==void 0&&K>=81&&K<=116)return e.setTextRange(I.createStringLiteralFromNode(T),T)}}e.transformES5=a})(ke||(ke={}));var ke;(function(e){var a;(function(N){N[N.Nop=0]="Nop",N[N.Statement=1]="Statement",N[N.Assign=2]="Assign",N[N.Break=3]="Break",N[N.BreakWhenTrue=4]="BreakWhenTrue",N[N.BreakWhenFalse=5]="BreakWhenFalse",N[N.Yield=6]="Yield",N[N.YieldStar=7]="YieldStar",N[N.Return=8]="Return",N[N.Throw=9]="Throw",N[N.Endfinally=10]="Endfinally"})(a||(a={}));var C;(function(N){N[N.Open=0]="Open",N[N.Close=1]="Close"})(C||(C={}));var I;(function(N){N[N.Exception=0]="Exception",N[N.With=1]="With",N[N.Switch=2]="Switch",N[N.Loop=3]="Loop",N[N.Labeled=4]="Labeled"})(I||(I={}));var R;(function(N){N[N.Try=0]="Try",N[N.Catch=1]="Catch",N[N.Finally=2]="Finally",N[N.Done=3]="Done"})(R||(R={}));var E;(function(N){N[N.Next=0]="Next",N[N.Throw=1]="Throw",N[N.Return=2]="Return",N[N.Break=3]="Break",N[N.Yield=4]="Yield",N[N.YieldStar=5]="YieldStar",N[N.Catch=6]="Catch",N[N.Endfinally=7]="Endfinally"})(E||(E={}));function X(N){switch(N){case 2:return"return";case 3:return"break";case 4:return"yield";case 5:return"yield*";case 7:return"endfinally";default:return}}function le(N){var p=N.factory,m=N.getEmitHelperFactory,G=N.resumeLexicalEnvironment,oe=N.endLexicalEnvironment,f=N.hoistFunctionDeclaration,T=N.hoistVariableDeclaration,K=N.getCompilerOptions(),b=e.getEmitScriptTarget(K),se=N.getEmitResolver(),J=N.onSubstituteNode;N.onSubstituteNode=zr;var ie,B,q,O,ve,ee,he,F,x,Q,$=1,A,y,V,L,P=0,k=0,Y,U,j,H,w,l,d,D;return e.chainBundle(N,fe);function fe(Pr){if(Pr.isDeclarationFile||(Pr.transformFlags&2048)===0)return Pr;var xi=e.visitEachChild(Pr,g,N);return e.addEmitHelpers(xi,N.readEmitHelpers()),xi}function g(Pr){var xi=Pr.transformFlags;return O?ne(Pr):q?ue(Pr):e.isFunctionLikeDeclaration(Pr)&&Pr.asteriskToken?Fe(Pr):xi&2048?e.visitEachChild(Pr,g,N):Pr}function ne(Pr){switch(Pr.kind){case 240:return Ur(Pr);case 241:return mi(Pr);case 249:return pi(Pr);case 250:return Xe(Pr);default:return ue(Pr)}}function ue(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);case 172:case 173:return ge(Pr);case 237:return ze(Pr);case 242:return or(Pr);case 243:return si(Pr);case 246:return et(Pr);case 245:return wi(Pr);case 247:return Wt(Pr);default:return Pr.transformFlags&524288?We(Pr):Pr.transformFlags&2099200?e.visitEachChild(Pr,g,N):Pr}}function We(Pr){switch(Pr.kind){case 221:return Ee(Pr);case 351:return _e(Pr);case 222:return de(Pr);case 224:return ye(Pr);case 204:return Ae(Pr);case 205:return ir(Pr);case 207:return Cr(Pr);case 208:return Ye(Pr);case 209:return Br(Pr);default:return e.visitEachChild(Pr,g,N)}}function Fe(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);default:return e.Debug.failBadSyntaxKind(Pr)}}function Z(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionDeclaration(void 0,Pr.modifiers,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}if(q){f(Pr);return}else return Pr}function Be(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionExpression(void 0,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}return Pr}function ge(Pr){var xi=q,St=O;return q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St,Pr}function Re(Pr){var xi=[],St=q,pa=O,dn=ve,Bn=ee,Qe=he,Gr=F,S=x,Ce=Q,qe=$,br=A,Zr=y,Si=V,Pi=L;q=!0,O=!1,ve=void 0,ee=void 0,he=void 0,F=void 0,x=void 0,Q=void 0,$=1,A=void 0,y=void 0,V=void 0,L=p.createTempVariable(void 0),G();var Qi=p.copyPrologue(Pr.statements,xi,!1,g);Er(Pr.statements,Qi);var Ct=pn();return e.insertStatementsAfterStandardPrologue(xi,oe()),xi.push(p.createReturnStatement(Ct)),q=St,O=pa,ve=dn,ee=Bn,he=Qe,F=Gr,x=S,Q=Ce,$=qe,A=br,y=Zr,V=Si,L=Pi,e.setTextRange(p.createBlock(xi,Pr.multiLine),Pr)}function ze(Pr){if(Pr.transformFlags&524288){ur(Pr.declarationList);return}else{if(e.getEmitFlags(Pr)&1048576)return Pr;for(var xi=0,St=Pr.declarationList.declarations;xi0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(pa,g,e.isExpression)))}}function _e(Pr){for(var xi=[],St=0,pa=Pr.elements;St0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(dn,g,e.isExpression)))}return p.inlineExpressions(xi)}function we(Pr){var xi=mr(),St=vr();return Vi(St,e.visitNode(Pr.left,g,e.isExpression),Pr.left),Pr.operatorToken.kind===55?ba(xi,St,Pr.left):At(xi,St,Pr.left),Vi(St,e.visitNode(Pr.right,g,e.isExpression),Pr.right),Ar(xi),St}function de(Pr){if(Ze(Pr.whenTrue)||Ze(Pr.whenFalse)){var xi=mr(),St=mr(),pa=vr();return ba(xi,e.visitNode(Pr.condition,g,e.isExpression),Pr.condition),Vi(pa,e.visitNode(Pr.whenTrue,g,e.isExpression),Pr.whenTrue),at(St),Ar(xi),Vi(pa,e.visitNode(Pr.whenFalse,g,e.isExpression),Pr.whenFalse),Ar(St),pa}return e.visitEachChild(Pr,g,N)}function ye(Pr){var xi=mr(),St=e.visitNode(Pr.expression,g,e.isExpression);if(Pr.asteriskToken){var pa=(e.getEmitFlags(Pr.expression)&8388608)===0?e.setTextRange(m().createValuesHelper(St),Pr):St;$a(pa,Pr)}else Qa(St,Pr);return Ar(xi),Ai(Pr)}function Ae(Pr){return er(Pr.elements,void 0,void 0,Pr.multiLine)}function er(Pr,xi,St,pa){var dn=Sr(Pr),Bn;if(dn>0){Bn=vr();var Qe=e.visitNodes(Pr,g,e.isExpression,0,dn);Vi(Bn,p.createArrayLiteralExpression(xi?Ve([xi],Qe,!0):Qe)),xi=void 0}var Gr=e.reduceLeft(Pr,S,[],dn);return Bn?p.createArrayConcatCall(Bn,[p.createArrayLiteralExpression(Gr,pa)]):e.setTextRange(p.createArrayLiteralExpression(xi?Ve([xi],Gr,!0):Gr,pa),St);function S(Ce,qe){if(Ze(qe)&&Ce.length>0){var br=Bn!==void 0;Bn||(Bn=vr()),Vi(Bn,br?p.createArrayConcatCall(Bn,[p.createArrayLiteralExpression(Ce,pa)]):p.createArrayLiteralExpression(xi?Ve([xi],Ce,!0):Ce,pa)),xi=void 0,Ce=[]}return Ce.push(e.visitNode(qe,g,e.isExpression)),Ce}}function ir(Pr){var xi=Pr.properties,St=Pr.multiLine,pa=Sr(xi),dn=vr();Vi(dn,p.createObjectLiteralExpression(e.visitNodes(xi,g,e.isObjectLiteralElementLike,0,pa),St));var Bn=e.reduceLeft(xi,Qe,[],pa);return Bn.push(St?e.startOnNewLine(e.setParent(e.setTextRange(p.cloneNode(dn),dn),dn.parent)):dn),p.inlineExpressions(Bn);function Qe(Gr,S){Ze(S)&&Gr.length>0&&(ji(p.createExpressionStatement(p.inlineExpressions(Gr))),Gr=[]);var Ce=e.createExpressionForObjectLiteralElementLike(p,Pr,S,dn),qe=e.visitNode(Ce,g,e.isExpression);return qe&&(St&&e.startOnNewLine(qe),Gr.push(qe)),Gr}}function Cr(Pr){return Ze(Pr.argumentExpression)?p.updateElementAccessExpression(Pr,xe(e.visitNode(Pr.expression,g,e.isLeftHandSideExpression)),e.visitNode(Pr.argumentExpression,g,e.isExpression)):e.visitEachChild(Pr,g,N)}function Ye(Pr){if(!e.isImportCall(Pr)&&e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(Pr.expression,T,b,!0),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isLeftHandSideExpression)),pa,er(Pr.arguments)),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Br(Pr){if(e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(p.createPropertyAccessExpression(Pr.expression,"bind"),T),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createNewExpression(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isExpression)),pa,er(Pr.arguments,p.createVoidZero())),void 0,[]),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Er(Pr,xi){xi===void 0&&(xi=0);for(var St=Pr.length,pa=xi;pa0)break;S.push(yr(pa))}S.length&&(ji(p.createExpressionStatement(p.inlineExpressions(S))),Gr+=S.length,S=[])}}function yr(Pr){return e.setSourceMapRange(p.createAssignment(e.setSourceMapRange(p.cloneNode(Pr.name),Pr.name),e.visitNode(Pr.initializer,g,e.isExpression)),Pr)}function Ir(Pr){if(Ze(Pr))if(Ze(Pr.thenStatement)||Ze(Pr.elseStatement)){var xi=mr(),St=Pr.elseStatement?mr():void 0;ba(Pr.elseStatement?St:xi,e.visitNode(Pr.expression,g,e.isExpression),Pr.expression),Ne(Pr.thenStatement),Pr.elseStatement&&(at(xi),Ar(St),Ne(Pr.elseStatement)),Ar(xi)}else ji(e.visitNode(Pr,g,e.isStatement));else ji(e.visitNode(Pr,g,e.isStatement))}function wr(Pr){if(Ze(Pr)){var xi=mr(),St=mr();Ui(xi),Ar(St),Ne(Pr.statement),Ar(xi),At(St,e.visitNode(Pr.expression,g,e.isExpression)),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function Ur(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function ii(Pr){if(Ze(Pr)){var xi=mr(),St=Ui(xi);Ar(xi),ba(St,e.visitNode(Pr.expression,g,e.isExpression)),Ne(Pr.statement),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function mi(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function pe(Pr){if(Ze(Pr)){var xi=mr(),St=mr(),pa=Ui(St);if(Pr.initializer){var dn=Pr.initializer;e.isVariableDeclarationList(dn)?ur(dn):ji(e.setTextRange(p.createExpressionStatement(e.visitNode(dn,g,e.isExpression)),dn))}Ar(xi),Pr.condition&&ba(pa,e.visitNode(Pr.condition,g,e.isExpression)),Ne(Pr.statement),Ar(St),Pr.incrementor&&ji(e.setTextRange(p.createExpressionStatement(e.visitNode(Pr.incrementor,g,e.isExpression)),Pr.incrementor)),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function or(Pr){O&&vi();var xi=Pr.initializer;if(xi&&e.isVariableDeclarationList(xi)){for(var St=0,pa=xi.declarations;St0?p.inlineExpressions(e.map(Bn,yr)):void 0,e.visitNode(Pr.condition,g,e.isExpression),e.visitNode(Pr.incrementor,g,e.isExpression),e.visitIterationBody(Pr.statement,g,N))}else Pr=e.visitEachChild(Pr,g,N);return O&&Yi(),Pr}function qr(Pr){if(Ze(Pr)){var xi=vr(),St=vr(),pa=p.createLoopVariable(),dn=Pr.initializer;T(pa),Vi(xi,p.createArrayLiteralExpression()),ji(p.createForInStatement(St,e.visitNode(Pr.expression,g,e.isExpression),p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(xi,"push"),void 0,[St])))),Vi(pa,p.createNumericLiteral(0));var Bn=mr(),Qe=mr(),Gr=Ui(Qe);Ar(Bn),ba(Gr,p.createLessThan(pa,p.createPropertyAccessExpression(xi,"length")));var S=void 0;if(e.isVariableDeclarationList(dn)){for(var Ce=0,qe=dn.declarations;Ce0?at(xi,Pr):ji(Pr)}function wi(Pr){if(O){var xi=Fi(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Xi(Pr){var xi=Ki(Pr.label?e.idText(Pr.label):void 0);xi>0?at(xi,Pr):ji(Pr)}function et(Pr){if(O){var xi=Ki(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Gi(Pr){ai(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Wt(Pr){return na(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Zt(Pr){Ze(Pr)?(Ue(xe(e.visitNode(Pr.expression,g,e.isExpression))),Ne(Pr.statement),fr()):ji(e.visitNode(Pr,g,e.isStatement))}function _r(Pr){if(Ze(Pr.caseBlock)){for(var xi=Pr.caseBlock,St=xi.clauses.length,pa=ct(),dn=xe(e.visitNode(Pr.expression,g,e.isExpression)),Bn=[],Qe=-1,Gr=0;Gr0)break;qe.push(p.createCaseClause(e.visitNode(S.expression,g,e.isExpression),[wt(Bn[Gr],S.expression)]))}else br++}qe.length&&(ji(p.createSwitchStatement(dn,p.createCaseBlock(qe))),Ce+=qe.length,qe=[]),br>0&&(Ce+=br,br=0)}Qe>=0?at(Bn[Qe]):at(pa);for(var Gr=0;Gr=0;St--){var pa=F[St];if(Dt(pa)){if(pa.labelText===Pr)return!0}else break}return!1}function Ki(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Dt(St)&&St.labelText===Pr)return St.breakLabel;if(ut(St)&&Ii(Pr,xi-1))return St.breakLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(ut(St))return St.breakLabel}return 0}function Fi(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St)&&Ii(Pr,xi-1))return St.continueLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St))return St.continueLabel}return 0}function ui(Pr){if(Pr!==void 0&&Pr>0){Q===void 0&&(Q=[]);var xi=p.createNumericLiteral(-1);return Q[Pr]===void 0?Q[Pr]=[xi]:Q[Pr].push(xi),xi}return p.createOmittedExpression()}function Bt(Pr){var xi=p.createNumericLiteral(Pr);return e.addSyntheticTrailingComment(xi,3,X(Pr)),xi}function wt(Pr,xi){return e.Debug.assertLessThan(0,Pr,"Invalid label"),e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression([Bt(3),ui(Pr)])),xi)}function na(Pr,xi){return e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression(Pr?[Bt(2),Pr]:[Bt(2)])),xi)}function Ai(Pr){return e.setTextRange(p.createCallExpression(p.createPropertyAccessExpression(L,"sent"),void 0,[]),Pr)}function Oi(){Ba(0)}function ji(Pr){Pr?Ba(1,[Pr]):Oi()}function Vi(Pr,xi,St){Ba(2,[Pr,xi],St)}function at(Pr,xi){Ba(3,[Pr],xi)}function At(Pr,xi,St){Ba(4,[Pr,xi],St)}function ba(Pr,xi,St){Ba(5,[Pr,xi],St)}function $a(Pr,xi){Ba(7,[Pr],xi)}function Qa(Pr,xi){Ba(6,[Pr],xi)}function ai(Pr,xi){Ba(8,[Pr],xi)}function Dn(Pr,xi){Ba(9,[Pr],xi)}function ka(){Ba(10)}function Ba(Pr,xi,St){A===void 0&&(A=[],y=[],V=[]),x===void 0&&Ar(mr());var pa=A.length;A[pa]=Pr,y[pa]=xi,V[pa]=St}function pn(){P=0,k=0,Y=void 0,U=!1,j=!1,H=void 0,w=void 0,l=void 0,d=void 0,D=void 0;var Pr=Cn();return m().createGeneratorHelper(e.setEmitFlags(p.createFunctionExpression(void 0,void 0,void 0,void 0,[p.createParameterDeclaration(void 0,void 0,void 0,L)],void 0,p.createBlock(Pr,Pr.length>0)),524288))}function Cn(){if(A){for(var Pr=0;Pr=0;xi--){var St=D[xi];w=[p.createWithStatement(St.expression,p.createBlock(w))]}if(d){var pa=d.startLabel,dn=d.catchLabel,Bn=d.finallyLabel,Qe=d.endLabel;w.unshift(p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(p.createPropertyAccessExpression(L,"trys"),"push"),void 0,[p.createArrayLiteralExpression([ui(pa),ui(dn),ui(Bn),ui(Qe)])]))),d=void 0}Pr&&w.push(p.createExpressionStatement(p.createAssignment(p.createPropertyAccessExpression(L,"label"),p.createNumericLiteral(k+1))))}H.push(p.createCaseClause(p.createNumericLiteral(k),w||[])),w=void 0}function Pn(Pr){if(!!x)for(var xi=0;xi(e.isExportName(pe)?1:0);return!1}function U(pe,or){return Y(pe.left)?e.flattenDestructuringAssignment(pe,P,I,0,!or,rr):e.visitEachChild(pe,P,I)}function j(pe){return E.updateForStatement(pe,e.visitNode(pe.initializer,k,e.isForInitializer),e.visitNode(pe.condition,P,e.isExpression),e.visitNode(pe.incrementor,k,e.isExpression),e.visitIterationBody(pe.statement,P,I))}function H(pe){return E.updateExpressionStatement(pe,e.visitNode(pe.expression,k,e.isExpression))}function w(pe,or){return E.updateParenthesizedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function l(pe,or){return E.updatePartiallyEmittedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function d(pe,or){if((pe.operator===45||pe.operator===46)&&e.isIdentifier(pe.operand)&&!e.isGeneratedIdentifier(pe.operand)&&!e.isLocalName(pe.operand)&&!e.isDeclarationNameOfEnumOrNamespace(pe.operand)){var qr=mi(pe.operand);if(qr){var si=void 0,Di=e.visitNode(pe.operand,P,e.isExpression);e.isPrefixUnaryExpression(pe)?Di=E.updatePrefixUnaryExpression(pe,Di):(Di=E.updatePostfixUnaryExpression(pe,Di),or||(si=E.createTempVariable(p),Di=E.createAssignment(si,Di),e.setTextRange(Di,pe)),Di=E.createComma(Di,E.cloneNode(pe.operand)),e.setTextRange(Di,pe));for(var wi=0,Xi=qr;wi=2?Xi=E.createArrowFunction(void 0,void 0,Di,void 0,void 0,wi):(Xi=E.createFunctionExpression(void 0,void 0,void 0,void 0,Di,void 0,wi),or&&e.setEmitFlags(Xi,8));var et=E.createNewExpression(E.createIdentifier("Promise"),void 0,[Xi]);return e.getESModuleInterop(m)?E.createCallExpression(E.createPropertyAccessExpression(et,E.createIdentifier("then")),void 0,[X().createImportStarCallbackHelper()]):et}function ne(pe,or){var qr=E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier("Promise"),"resolve"),void 0,[]),si=E.createCallExpression(E.createIdentifier("require"),void 0,pe?[pe]:[]);e.getESModuleInterop(m)&&(si=X().createImportStarHelper(si));var Di;return f>=2?Di=E.createArrowFunction(void 0,void 0,[],void 0,void 0,si):(Di=E.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,E.createBlock([E.createReturnStatement(si)])),or&&e.setEmitFlags(Di,8)),E.createCallExpression(E.createPropertyAccessExpression(qr,"then"),void 0,[Di])}function ue(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getExportNeedsImportStarHelper(pe)?X().createImportStarHelper(or):or}function We(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getImportNeedsImportStarHelper(pe)?X().createImportStarHelper(or):e.getImportNeedsImportDefaultHelper(pe)?X().createImportDefaultHelper(or):or}function Fe(pe){var or,qr=e.getNamespaceDeclarationNode(pe);if(T!==e.ModuleKind.AMD)if(pe.importClause){var si=[];qr&&!e.isDefaultImport(pe)?si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,We(pe,Z(pe)))):(si.push(E.createVariableDeclaration(E.getGeneratedNameForNode(pe),void 0,void 0,We(pe,Z(pe)))),qr&&e.isDefaultImport(pe)&&si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)))),or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList(si,f>=2?2:0)),pe),pe))}else return e.setOriginalNode(e.setTextRange(E.createExpressionStatement(Z(pe)),pe),pe);else qr&&e.isDefaultImport(pe)&&(or=e.append(or,E.createVariableStatement(void 0,E.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)),pe),pe)],f>=2?2:0))));if(we(pe)){var Di=e.getOriginalNodeId(pe);J[Di]=ye(J[Di],pe)}else or=ye(or,pe);return e.singleOrMany(or)}function Z(pe){var or=e.getExternalModuleNameLiteral(E,pe,ie,oe,G,m),qr=[];return or&&qr.push(or),E.createCallExpression(E.createIdentifier("require"),void 0,qr)}function Be(pe){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(pe),"import= for internal module references should be handled in an earlier transformer.");var or;if(T!==e.ModuleKind.AMD?e.hasSyntacticModifier(pe,1)?or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(pe.name,Z(pe))),pe),pe)):or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.cloneNode(pe.name),void 0,void 0,Z(pe))],f>=2?2:0)),pe),pe)):e.hasSyntacticModifier(pe,1)&&(or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(E.getExportName(pe),E.getLocalName(pe))),pe),pe))),we(pe)){var qr=e.getOriginalNodeId(pe);J[qr]=Ae(J[qr],pe)}else or=Ae(or,pe);return e.singleOrMany(or)}function ge(pe){if(!!pe.moduleSpecifier){var or=E.getGeneratedNameForNode(pe);if(pe.exportClause&&e.isNamedExports(pe.exportClause)){var qr=[];T!==e.ModuleKind.AMD&&qr.push(e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(or,void 0,void 0,Z(pe))])),pe),pe));for(var si=0,Di=pe.exportClause.elements;si=e.ModuleKind.ES2020?J(he):void 0;case 271:return B(he);case 272:var F=he;return q(F)}return he}function se(he){var F=e.getExternalModuleNameLiteral(I,he,e.Debug.checkDefined(oe),E,X,le),x=[];if(F&&x.push(F),!f){var Q=I.createUniqueName("_createRequire",48),$=I.createImportDeclaration(void 0,void 0,I.createImportClause(!1,void 0,I.createNamedImports([I.createImportSpecifier(!1,I.createIdentifier("createRequire"),Q)])),I.createStringLiteral("module")),A=I.createUniqueName("__require",48),y=I.createVariableStatement(void 0,I.createVariableDeclarationList([I.createVariableDeclaration(A,void 0,void 0,I.createCallExpression(I.cloneNode(Q),void 0,[I.createPropertyAccessExpression(I.createMetaProperty(100,I.createIdentifier("meta")),I.createIdentifier("url"))]))],N>=2?2:0));f=[$,y]}var V=f[1].declarationList.declarations[0].name;return e.Debug.assertNode(V,e.isIdentifier),I.createCallExpression(I.cloneNode(V),void 0,x)}function J(he){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(he),"import= for internal module references should be handled in an earlier transformer.");var F;return F=e.append(F,e.setOriginalNode(e.setTextRange(I.createVariableStatement(void 0,I.createVariableDeclarationList([I.createVariableDeclaration(I.cloneNode(he.name),void 0,void 0,se(he))],N>=2?2:0)),he),he)),F=ie(F,he),e.singleOrMany(F)}function ie(he,F){return e.hasSyntacticModifier(F,1)&&(he=e.append(he,I.createExportDeclaration(void 0,void 0,F.isTypeOnly,I.createNamedExports([I.createExportSpecifier(!1,void 0,e.idText(F.name))])))),he}function B(he){return he.isExportEquals?void 0:he}function q(he){if(le.module!==void 0&&le.module>e.ModuleKind.ES2015||!he.exportClause||!e.isNamespaceExport(he.exportClause)||!he.moduleSpecifier)return he;var F=he.exportClause.name,x=I.getGeneratedNameForNode(F),Q=I.createImportDeclaration(void 0,void 0,I.createImportClause(!1,void 0,I.createNamespaceImport(x)),he.moduleSpecifier,he.assertClause);e.setOriginalNode(Q,he.exportClause);var $=e.isExportNamespaceAsDefaultDeclaration(he)?I.createExportDefault(x):I.createExportDeclaration(void 0,void 0,!1,I.createNamedExports([I.createExportSpecifier(!1,x,F)]));return e.setOriginalNode($,he),[Q,$]}function O(he,F,x){e.isSourceFile(F)?((e.isExternalModule(F)||le.isolatedModules)&&le.importHelpers&&(G=new e.Map),p(he,F,x),G=void 0):p(he,F,x)}function ve(he,F){return F=m(he,F),G&&e.isIdentifier(F)&&e.getEmitFlags(F)&4096?ee(F):F}function ee(he){var F=e.idText(he),x=G.get(F);return x||G.set(F,x=I.createUniqueName(F,48)),x}}e.transformECMAScriptModule=a})(ke||(ke={}));var ke;(function(e){function a(C){var I=C.onSubstituteNode,R=C.onEmitNode,E=e.transformECMAScriptModule(C),X=C.onSubstituteNode,le=C.onEmitNode;C.onSubstituteNode=I,C.onEmitNode=R;var N=e.transformModule(C),p=C.onSubstituteNode,m=C.onEmitNode;C.onSubstituteNode=oe,C.onEmitNode=f,C.enableSubstitution(305),C.enableEmitNotification(305);var G;return b;function oe(J,ie){return e.isSourceFile(ie)?(G=ie,I(J,ie)):G?G.impliedNodeFormat===e.ModuleKind.ESNext?X(J,ie):p(J,ie):I(J,ie)}function f(J,ie,B){return e.isSourceFile(ie)&&(G=ie),G?G.impliedNodeFormat===e.ModuleKind.ESNext?le(J,ie,B):m(J,ie,B):R(J,ie,B)}function T(J){return J.impliedNodeFormat===e.ModuleKind.ESNext?E:N}function K(J){if(J.isDeclarationFile)return J;G=J;var ie=T(J)(J);return G=void 0,e.Debug.assert(e.isSourceFile(ie)),ie}function b(J){return J.kind===305?K(J):se(J)}function se(J){return C.factory.createBundle(e.map(J.sourceFiles,K),J.prepends)}}e.transformNodeModule=a})(ke||(ke={}));var ke;(function(e){function a(R){return e.isVariableDeclaration(R)||e.isPropertyDeclaration(R)||e.isPropertySignature(R)||e.isBindingElement(R)||e.isSetAccessor(R)||e.isGetAccessor(R)||e.isConstructSignatureDeclaration(R)||e.isCallSignatureDeclaration(R)||e.isMethodDeclaration(R)||e.isMethodSignature(R)||e.isFunctionDeclaration(R)||e.isParameter(R)||e.isTypeParameterDeclaration(R)||e.isExpressionWithTypeArguments(R)||e.isImportEqualsDeclaration(R)||e.isTypeAliasDeclaration(R)||e.isConstructorDeclaration(R)||e.isIndexSignatureDeclaration(R)||e.isPropertyAccessExpression(R)||e.isJSDocTypeAlias(R)}e.canProduceDiagnostics=a;function C(R){if(e.isSetAccessor(R)||e.isGetAccessor(R))return E;return e.isMethodSignature(R)||e.isMethodDeclaration(R)?le:I(R);function E(p){var m=X(p);return m!==void 0?{diagnosticMessage:m,errorNode:R,typeName:R.name}:void 0}function X(p){return e.isStatic(R)?p.errorModuleName?p.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:R.parent.kind===257?p.errorModuleName?p.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:p.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 le(p){var m=N(p);return m!==void 0?{diagnosticMessage:m,errorNode:R,typeName:R.name}:void 0}function N(p){return e.isStatic(R)?p.errorModuleName?p.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:R.parent.kind===257?p.errorModuleName?p.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:p.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=C;function I(R){if(e.isVariableDeclaration(R)||e.isPropertyDeclaration(R)||e.isPropertySignature(R)||e.isPropertyAccessExpression(R)||e.isBindingElement(R)||e.isConstructorDeclaration(R))return X;return e.isSetAccessor(R)||e.isGetAccessor(R)?le:e.isConstructSignatureDeclaration(R)||e.isCallSignatureDeclaration(R)||e.isMethodDeclaration(R)||e.isMethodSignature(R)||e.isFunctionDeclaration(R)||e.isIndexSignatureDeclaration(R)?N:e.isParameter(R)?e.isParameterPropertyDeclaration(R,R.parent)&&e.hasSyntacticModifier(R.parent,8)?X:p:e.isTypeParameterDeclaration(R)?G:e.isExpressionWithTypeArguments(R)?oe:e.isImportEqualsDeclaration(R)?f:e.isTypeAliasDeclaration(R)||e.isJSDocTypeAlias(R)?T:e.Debug.assertNever(R,"Attempted to set a declaration diagnostic context for unhandled node kind: ".concat(e.SyntaxKind[R.kind]));function E(K){if(R.kind===254||R.kind===203)return K.errorModuleName?K.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(R.kind===167||R.kind===206||R.kind===166||R.kind===164&&e.hasSyntacticModifier(R.parent,8))return e.isStatic(R)?K.errorModuleName?K.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:R.parent.kind===257||R.kind===164?K.errorModuleName?K.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:K.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 X(K){var b=E(K);return b!==void 0?{diagnosticMessage:b,errorNode:R,typeName:R.name}:void 0}function le(K){var b;return R.kind===173?e.isStatic(R)?b=K.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:b=K.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(R)?b=K.errorModuleName?K.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:b=K.errorModuleName?K.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:b,errorNode:R.name,typeName:R.name}}function N(K){var b;switch(R.kind){case 175:b=K.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 174:b=K.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 176:b=K.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 169:case 168:e.isStatic(R)?b=K.errorModuleName?K.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:R.parent.kind===257?b=K.errorModuleName?K.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:b=K.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 256:b=K.errorModuleName?K.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: "+R.kind)}return{diagnosticMessage:b,errorNode:R.name||R}}function p(K){var b=m(K);return b!==void 0?{diagnosticMessage:b,errorNode:R,typeName:R.name}:void 0}function m(K){switch(R.parent.kind){case 171:return K.errorModuleName?K.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 175:case 180:return K.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 174:return K.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 176:return K.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 169:case 168:return e.isStatic(R.parent)?K.errorModuleName?K.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:R.parent.parent.kind===257?K.errorModuleName?K.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:K.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 256:case 179:return K.errorModuleName?K.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 173:case 172:return K.errorModuleName?K.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: ".concat(e.SyntaxKind[R.parent.kind]))}}function G(){var K;switch(R.parent.kind){case 257:K=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 258:K=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 195:K=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 180:case 175:K=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 174:K=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 169:case 168:e.isStatic(R.parent)?K=e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:R.parent.parent.kind===257?K=e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:K=e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 179:case 256:K=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 259:K=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: "+R.parent.kind)}return{diagnosticMessage:K,errorNode:R,typeName:R.name}}function oe(){var K;return e.isClassDeclaration(R.parent.parent)?K=e.isHeritageClause(R.parent)&&R.parent.token===117?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:R.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:K=e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1,{diagnosticMessage:K,errorNode:R,typeName:e.getNameOfDeclaration(R.parent.parent)}}function f(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:R,typeName:R.name}}function T(K){return{diagnosticMessage:K.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(R)?e.Debug.checkDefined(R.typeExpression):R.type,typeName:e.isJSDocTypeAlias(R)?e.getNameOfDeclaration(R):R.name}}}e.createGetSymbolAccessibilityDiagnosticForNode=I})(ke||(ke={}));var ke;(function(e){function a(f,T,K){var b=f.getCompilerOptions(),se=e.transformNodes(T,f,e.factory,b,K?[K]:e.filter(f.getSourceFiles(),e.isSourceFileNotJson),[E],!1);return se.diagnostics}e.getDeclarationDiagnostics=a;function C(f,T){var K=T.text.substring(f.pos,f.end);return e.stringContains(K,"@internal")}function I(f,T){var K=e.getParseTreeNode(f);if(K&&K.kind===164){var b=K.parent.parameters.indexOf(K),se=b>0?K.parent.parameters[b-1]:void 0,J=T.text,ie=se?e.concatenate(e.getTrailingCommentRanges(J,e.skipTrivia(J,se.end+1,!1,!0)),e.getLeadingCommentRanges(J,f.pos)):e.getTrailingCommentRanges(J,e.skipTrivia(J,f.pos,!1,!0));return ie&&ie.length&&C(e.last(ie),T)}var B=K&&e.getLeadingCommentRangesOfNode(K,T);return!!e.forEach(B,function(q){return C(q,T)})}e.isInternalDeclaration=I;var R=531469;function E(f){var T=function(){return e.Debug.fail("Diagnostic emitted without context")},K=T,b=!0,se=!1,J=!1,ie=!1,B=!1,q,O,ve,ee,he,F,x=f.factory,Q=f.getEmitHost(),$={trackSymbol:fe,reportInaccessibleThisError:Fe,reportInaccessibleUniqueSymbolError:ue,reportCyclicStructureError:We,reportPrivateInBaseOfClassExpression:g,reportLikelyUnsafeImportRequiredError:Z,reportTruncationError:Be,moduleResolverHost:Q,trackReferencedAmbientModule:l,trackExternalModuleSymbolOfImportTypeNode:D,reportNonlocalAugmentation:ge,reportNonSerializableProperty:Re},A,y,V,L,P,k,Y=f.getEmitResolver(),U=f.getCompilerOptions(),j=U.noResolve,H=U.stripInternal;return Ee;function w(_r){if(!!_r){O=O||new e.Set;for(var pi=0,ae=_r;pi0?f.parameters[0].type:void 0}function m(f){switch(f.kind){case 167:case 166:return!e.hasEffectiveModifier(f,8);case 164:case 254:return!0}return!1}function G(f){switch(f.kind){case 256:case 261:case 265:case 258:case 257:case 259:case 260:case 237:case 266:case 272:case 271:return!0}return!1}function oe(f){switch(f.kind){case 175:case 171:case 169:case 172:case 173:case 167:case 166:case 168:case 174:case 176:case 254:case 163:case 228:case 178:case 189:case 179:case 180:case 200:return!0}return!1}})(ke||(ke={}));var ke;(function(e){function a(T){switch(T){case e.ModuleKind.ESNext:case e.ModuleKind.ES2022:case e.ModuleKind.ES2020:case e.ModuleKind.ES2015:return e.transformECMAScriptModule;case e.ModuleKind.System:return e.transformSystemModule;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return e.transformNodeModule;default:return e.transformModule}}var C;(function(T){T[T.Uninitialized=0]="Uninitialized",T[T.Initialized=1]="Initialized",T[T.Completed=2]="Completed",T[T.Disposed=3]="Disposed"})(C||(C={}));var I;(function(T){T[T.Substitution=1]="Substitution",T[T.EmitNotifications=2]="EmitNotifications"})(I||(I={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray};function R(T,K,b){return{scriptTransformers:E(T,K,b),declarationTransformers:X(K)}}e.getTransformers=R;function E(T,K,b){if(b)return e.emptyArray;var se=e.getEmitScriptTarget(T),J=e.getEmitModuleKind(T),ie=[];return e.addRange(ie,K&&e.map(K.before,p)),ie.push(e.transformTypeScript),ie.push(e.transformClassFields),e.getJSXTransformEnabled(T)&&ie.push(e.transformJsx),se<99&&ie.push(e.transformESNext),se<8&&ie.push(e.transformES2021),se<7&&ie.push(e.transformES2020),se<6&&ie.push(e.transformES2019),se<5&&ie.push(e.transformES2018),se<4&&ie.push(e.transformES2017),se<3&&ie.push(e.transformES2016),se<2&&(ie.push(e.transformES2015),ie.push(e.transformGenerators)),ie.push(a(J)),se<1&&ie.push(e.transformES5),e.addRange(ie,K&&e.map(K.after,p)),ie}function X(T){var K=[];return K.push(e.transformDeclarations),e.addRange(K,T&&e.map(T.afterDeclarations,m)),K}function le(T){return function(K){return e.isBundle(K)?T.transformBundle(K):T.transformSourceFile(K)}}function N(T,K){return function(b){var se=T(b);return typeof se=="function"?K(b,se):le(se)}}function p(T){return N(T,e.chainBundle)}function m(T){return N(T,function(K,b){return b})}function G(T,K){return K}e.noEmitSubstitution=G;function oe(T,K,b){b(T,K)}e.noEmitNotification=oe;function f(T,K,b,se,J,ie,B){for(var q=new Array(355),O,ve,ee,he=0,F=[],x=[],Q=[],$=[],A=0,y=!1,V=[],L=0,P,k,Y=G,U=oe,j=0,H=[],w={factory:b,getCompilerOptions:function(){return se},getEmitResolver:function(){return T},getEmitHost:function(){return K},getEmitHelperFactory:e.memoize(function(){return e.createEmitHelperFactory(w)}),startLexicalEnvironment:_e,suspendLexicalEnvironment:we,resumeLexicalEnvironment:de,endLexicalEnvironment:ye,setLexicalEnvironmentFlags:Ae,getLexicalEnvironmentFlags:er,hoistVariableDeclaration:He,hoistFunctionDeclaration:rr,addInitializationStatement:Ie,startBlockScope:ir,endBlockScope:Cr,addBlockScopedVariable:Ye,requestEmitHelper:Br,readEmitHelpers:Er,enableSubstitution:Z,enableEmitNotification:Re,isSubstitutionEnabled:Be,isEmitNotificationEnabled:ze,get onSubstituteNode(){return Y},set onSubstituteNode(n){e.Debug.assert(j<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(n!==void 0,"Value must not be 'undefined'"),Y=n},get onEmitNode(){return U},set onEmitNode(n){e.Debug.assert(j<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(n!==void 0,"Value must not be 'undefined'"),U=n},addDiagnostic:function(n){H.push(n)}},l=0,d=J;l0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed.");var lr=e.setEmitFlags(b.createVariableDeclaration(n),64);O?O.push(lr):O=[lr],he&1&&(he|=2)}function rr(n){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(n,1048576),ve?ve.push(n):ve=[n]}function Ie(n){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(n,1048576),ee?ee.push(n):ee=[n]}function _e(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!y,"Lexical environment is suspended."),F[A]=O,x[A]=ve,Q[A]=ee,$[A]=he,A++,O=void 0,ve=void 0,ee=void 0,he=0}function we(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!y,"Lexical environment is already suspended."),y=!0}function de(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(y,"Lexical environment is not suspended."),y=!1}function ye(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!y,"Lexical environment is suspended.");var n;if(O||ve||ee){if(ve&&(n=Ve([],ve,!0)),O){var lr=b.createVariableStatement(void 0,b.createVariableDeclarationList(O));e.setEmitFlags(lr,1048576),n?n.push(lr):n=[lr]}ee&&(n?n=Ve(Ve([],n,!0),ee,!0):n=Ve([],ee,!0))}return A--,O=F[A],ve=x[A],ee=Q[A],he=$[A],A===0&&(F=[],x=[],Q=[],$=[]),n}function Ae(n,lr){he=lr?he|n:he&~n}function er(){return he}function ir(){e.Debug.assert(j>0,"Cannot start a block scope during initialization."),e.Debug.assert(j<2,"Cannot start a block scope after transformation has completed."),V[L]=P,L++,P=void 0}function Cr(){e.Debug.assert(j>0,"Cannot end a block scope during initialization."),e.Debug.assert(j<2,"Cannot end a block scope after transformation has completed.");var n=e.some(P)?[b.createVariableStatement(void 0,b.createVariableDeclarationList(P.map(function(lr){return b.createVariableDeclaration(lr)}),1))]:void 0;return L--,P=V[L],L===0&&(V=[]),n}function Ye(n){e.Debug.assert(L>0,"Cannot add a block scoped variable outside of an iteration body."),(P||(P=[])).push(n)}function Br(n){if(e.Debug.assert(j>0,"Cannot modify the transformation context during initialization."),e.Debug.assert(j<2,"Cannot modify the transformation context after transformation has completed."),e.Debug.assert(!n.scoped,"Cannot request a scoped emit helper."),n.dependencies)for(var lr=0,be=n.dependencies;lr0,"Cannot modify the transformation context during initialization."),e.Debug.assert(j<2,"Cannot modify the transformation context after transformation has completed.");var n=k;return k=void 0,n}function Ne(){if(j<3){for(var n=0,lr=J;n"),Ut(),gr(v.type),Iu(v)}function Ko(v){vn("function"),ef(v,v.parameters),Gt(":"),gr(v.type)}function Oo(v){Gt("?"),gr(v.type)}function no(v){Gt("!"),gr(v.type)}function $o(v){gr(v.type),Gt("=")}function Pr(v){wl(v),ks(v,v.modifiers),vn("new"),Ut(),Vu(v,v.typeParameters),ef(v,v.parameters),Ut(),Gt("=>"),Ut(),gr(v.type),Iu(v)}function xi(v){vn("typeof"),Ut(),gr(v.exprName),qu(v,v.typeArguments)}function St(v){Gt("{");var sr=e.getEmitFlags(v)&1?768:32897;Zn(v,v.members,sr|524288),Gt("}")}function pa(v){gr(v.elementType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt("["),Gt("]")}function dn(v){Gt("..."),gr(v.type)}function Bn(v){Ya(22,v.pos,Gt,v);var sr=e.getEmitFlags(v)&1?528:657;Zn(v,v.elements,sr|524288,Gi.parenthesizeElementTypeOfTupleType),Ya(23,v.elements.end,Gt,v)}function Qe(v){gr(v.dotDotDotToken),gr(v.name),gr(v.questionToken),Ya(58,v.name.end,Gt,v),Ut(),gr(v.type)}function Gr(v){gr(v.type,Gi.parenthesizeTypeOfOptionalType),Gt("?")}function S(v){Zn(v,v.types,516,Gi.parenthesizeConstituentTypeOfUnionType)}function Ce(v){Zn(v,v.types,520,Gi.parenthesizeConstituentTypeOfIntersectionType)}function qe(v){gr(v.checkType,Gi.parenthesizeCheckTypeOfConditionalType),Ut(),vn("extends"),Ut(),gr(v.extendsType,Gi.parenthesizeExtendsTypeOfConditionalType),Ut(),Gt("?"),Ut(),gr(v.trueType),Ut(),Gt(":"),Ut(),gr(v.falseType)}function br(v){vn("infer"),Ut(),gr(v.typeParameter)}function Zr(v){Gt("("),gr(v.type),Gt(")")}function Si(){vn("this")}function Pi(v){Il(v.operator,vn),Ut();var sr=v.operator===145?Gi.parenthesizeOperandOfReadonlyTypeOperator:Gi.parenthesizeOperandOfTypeOperator;gr(v.type,sr)}function Qi(v){gr(v.objectType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt("["),gr(v.indexType),Gt("]")}function Ct(v){var sr=e.getEmitFlags(v);Gt("{"),sr&1?Ut():(bs(),Dc()),v.readonlyToken&&(gr(v.readonlyToken),v.readonlyToken.kind!==145&&vn("readonly"),Ut()),Gt("["),Wi(3,v.typeParameter),v.nameType&&(Ut(),vn("as"),Ut(),gr(v.nameType)),Gt("]"),v.questionToken&&(gr(v.questionToken),v.questionToken.kind!==57&&Gt("?")),Gt(":"),Ut(),gr(v.type),As(),sr&1?Ut():(bs(),Cc()),Zn(v,v.members,2),Gt("}")}function sa(v){Tr(v.literal)}function en(v){gr(v.head),Zn(v,v.templateSpans,262144)}function Wa(v){if(v.isTypeOf&&(vn("typeof"),Ut()),vn("import"),Gt("("),gr(v.argument),v.assertions){Gt(","),Ut(),Gt("{"),Ut(),vn("assert"),Gt(":"),Ut();var sr=v.assertions.assertClause.elements;Zn(v.assertions.assertClause,sr,526226),Ut(),Gt("}")}Gt(")"),v.qualifier&&(Gt("."),gr(v.qualifier)),qu(v,v.typeArguments)}function Wn(v){Gt("{"),Zn(v,v.elements,525136),Gt("}")}function mo(v){Gt("["),Zn(v,v.elements,524880),Gt("]")}function So(v){gr(v.dotDotDotToken),v.propertyName&&(gr(v.propertyName),Gt(":"),Ut()),gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function Go(v){var sr=v.elements,fi=v.multiLine?65536:0;os(v,sr,8914|fi,Gi.parenthesizeExpressionForDisallowedComma)}function ys(v){e.forEach(v.properties,Ys);var sr=e.getEmitFlags(v)&65536;sr&&Dc();var fi=v.multiLine?65536:0,zi=Re&&Re.languageVersion>=1&&!e.isJsonSourceFile(Re)?64:0;Zn(v,v.properties,526226|zi|fi),sr&&Cc()}function Pc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess);var sr=v.questionDotToken||e.setTextRangePosEnd(e.factory.createToken(24),v.expression.end,v.name.pos),fi=iu(v,v.expression,sr),zi=iu(v,sr,v.name);Nu(fi,!1);var Sa=sr.kind!==28&&Vc(v.expression)&&!Ae.hasTrailingComment()&&!Ae.hasTrailingWhitespace();Sa&&Gt("."),v.questionDotToken?gr(sr):Ya(sr.kind,v.expression.end,Gt,v),Nu(zi,!1),gr(v.name),Us(fi,zi)}function Vc(v){if(v=e.skipPartiallyEmittedExpressions(v),e.isNumericLiteral(v)){var sr=Pu(v,!0,!1);return!v.numericLiteralFlags&&!e.stringContains(sr,e.tokenToString(24))}else if(e.isAccessExpression(v)){var fi=e.getConstantValue(v);return typeof fi=="number"&&isFinite(fi)&&Math.floor(fi)===fi}}function Kc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),gr(v.questionDotToken),Ya(22,v.expression.end,Gt,v),Tr(v.argumentExpression),Ya(23,v.argumentExpression.end,Gt,v)}function Xs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt("("),d_("0"),Gt(","),Ut()),Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(")"),gr(v.questionDotToken),qu(v,v.typeArguments),os(v,v.arguments,2576,Gi.parenthesizeExpressionForDisallowedComma)}function pc(v){Ya(103,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionOfNew),qu(v,v.typeArguments),os(v,v.arguments,18960,Gi.parenthesizeExpressionForDisallowedComma)}function hs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt("("),d_("0"),Gt(","),Ut()),Tr(v.tag,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(")"),qu(v,v.typeArguments),Ut(),Tr(v.template)}function tc(v){Gt("<"),gr(v.type),Gt(">"),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ps(v){var sr=Ya(20,v.pos,Gt,v),fi=J_(v.expression,v);Tr(v.expression,void 0),j_(v.expression,v),Us(fi),Ya(21,v.expression?v.expression.end:sr,Gt,v)}function Qs(v){Ku(v.name),rn(v)}function js(v){wc(v,v.decorators),ks(v,v.modifiers),Jn(v,ds)}function ds(v){Vu(v,v.typeParameters),p_(v,v.parameters),Wu(v.type),Ut(),gr(v.equalsGreaterThanToken)}function Ji(v){Ya(89,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ce(v){Ya(112,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function Rr(v){Ya(114,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function yi(v){Ya(132,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function qi(v){Il(v.operator,Nl),je(v)&&Ut(),Tr(v.operand,Gi.parenthesizeOperandOfPrefixUnary)}function je(v){var sr=v.operand;return sr.kind===219&&(v.operator===39&&(sr.operator===39||sr.operator===45)||v.operator===40&&(sr.operator===40||sr.operator===46))}function Hr(v){Tr(v.operand,Gi.parenthesizeOperandOfPostfixUnary),Il(v.operator,Nl)}function pt(){return e.createBinaryExpressionTrampoline(v,sr,fi,zi,Sa,void 0);function v(Ha,ta){if(ta){ta.stackIndex++,ta.preserveSourceNewlinesStack[ta.stackIndex]=de,ta.containerPosStack[ta.stackIndex]=wr,ta.containerEndStack[ta.stackIndex]=Ur,ta.declarationListContainerEndStack[ta.stackIndex]=ii;var nn=ta.shouldEmitCommentsStack[ta.stackIndex]=ct(Ha),Wo=ta.shouldEmitSourceMapsStack[ta.stackIndex]=Li(Ha);D==null||D(Ha),nn&&z_(Ha),Wo&&v_(Ha),Ui(Ha)}else ta={stackIndex:0,preserveSourceNewlinesStack:[void 0],containerPosStack:[-1],containerEndStack:[-1],declarationListContainerEndStack:[-1],shouldEmitCommentsStack:[!1],shouldEmitSourceMapsStack:[!1]};return ta}function sr(Ha,ta,nn){return da(Ha,nn,"left")}function fi(Ha,ta,nn){var Wo=Ha.kind!==27,Lo=iu(nn,nn.left,Ha),oc=iu(nn,Ha,nn.right);Nu(Lo,Wo),Vf(Ha.pos),Pl(Ha,Ha.kind===101?vn:Nl),af(Ha.end,!0),Nu(oc,!0)}function zi(Ha,ta,nn){return da(Ha,nn,"right")}function Sa(Ha,ta){var nn=iu(Ha,Ha.left,Ha.operatorToken),Wo=iu(Ha,Ha.operatorToken,Ha.right);if(Us(nn,Wo),ta.stackIndex>0){var Lo=ta.preserveSourceNewlinesStack[ta.stackIndex],oc=ta.containerPosStack[ta.stackIndex],uu=ta.containerEndStack[ta.stackIndex],is=ta.declarationListContainerEndStack[ta.stackIndex],au=ta.shouldEmitCommentsStack[ta.stackIndex],Ou=ta.shouldEmitSourceMapsStack[ta.stackIndex];Yi(Lo),Ou&&Bp(Ha),au&&Oc(Ha,oc,uu,is),fe==null||fe(Ha),ta.stackIndex--}}function da(Ha,ta,nn){var Wo=nn==="left"?Gi.getParenthesizeLeftSideOfBinaryForOperator(ta.operatorToken.kind):Gi.getParenthesizeRightSideOfBinaryForOperator(ta.operatorToken.kind),Lo=nt(0,1,Ha);if(Lo===Ii&&(e.Debug.assertIsDefined(si),Ha=Wo(e.cast(si,e.isExpression)),Lo=Mt(1,1,Ha),si=void 0),(Lo===xf||Lo===hd||Lo===ut)&&e.isBinaryExpression(Ha))return Ha;Di=Wo,Lo(1,Ha)}}function Pt(v){var sr=iu(v,v.condition,v.questionToken),fi=iu(v,v.questionToken,v.whenTrue),zi=iu(v,v.whenTrue,v.colonToken),Sa=iu(v,v.colonToken,v.whenFalse);Tr(v.condition,Gi.parenthesizeConditionOfConditionalExpression),Nu(sr,!0),gr(v.questionToken),Nu(fi,!0),Tr(v.whenTrue,Gi.parenthesizeBranchOfConditionalExpression),Us(sr,fi),Nu(zi,!0),gr(v.colonToken),Nu(Sa,!0),Tr(v.whenFalse,Gi.parenthesizeBranchOfConditionalExpression),Us(zi,Sa)}function ga(v){gr(v.head),Zn(v,v.templateSpans,262144)}function ua(v){Ya(125,v.pos,vn,v),gr(v.asteriskToken),__(v.expression&&Kr(v.expression),_i)}function Xn(v){Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma)}function jr(v){Ku(v.name),ki(v)}function fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),qu(v,v.typeArguments)}function xs(v){Tr(v.expression,void 0),v.type&&(Ut(),vn("as"),Ut(),gr(v.type))}function Fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),Nl("!")}function ko(v){ac(v.keywordToken,v.pos,Gt),Gt("."),gr(v.name)}function Ao(v){Tr(v.expression),gr(v.literal)}function Ms(v){Bs(v,!v.multiLine&&vd(v))}function Bs(v,sr){Ya(18,v.pos,Gt,v);var fi=sr||e.getEmitFlags(v)&1?768:129;Zn(v,v.statements,fi),Ya(19,v.statements.end,Gt,v,!!(fi&1))}function xc(v){ks(v,v.modifiers),gr(v.declarationList),As()}function su(v){v?Gt(";"):As()}function tl(v){Tr(v.expression,Gi.parenthesizeExpressionOfExpressionStatement),(!Re||!e.isJsonSourceFile(Re)||e.nodeIsSynthesized(v.expression))&&As()}function Zc(v){var sr=Ya(99,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.thenStatement),v.elseStatement&&(zf(v,v.thenStatement,v.elseStatement),Ya(91,v.thenStatement.end,vn,v),v.elseStatement.kind===239?(Ut(),gr(v.elseStatement)):Al(v,v.elseStatement))}function Rf(v,sr){var fi=Ya(115,sr,vn,v);Ut(),Ya(20,fi,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v)}function al(v){Ya(90,v.pos,vn,v),Al(v,v.statement),e.isBlock(v.statement)&&!de?Ut():zf(v,v.statement,v.expression),Rf(v,v.statement.end),As()}function Jo(v){Rf(v,v.pos),Al(v,v.statement)}function eu(v){var sr=Ya(97,v.pos,vn,v);Ut();var fi=Ya(20,sr,Gt,v);Uu(v.initializer),fi=Ya(26,v.initializer?v.initializer.end:fi,Gt,v),__(v.condition),fi=Ya(26,v.condition?v.condition.end:fi,Gt,v),__(v.incrementor),Ya(21,v.incrementor?v.incrementor.end:fi,Gt,v),Al(v,v.statement)}function Ws(v){var sr=Ya(97,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(101,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function pu(v){var sr=Ya(97,v.pos,vn,v);Ut(),zd(v.awaitModifier),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(160,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function Uu(v){v!==void 0&&(v.kind===255?gr(v):Tr(v))}function Ql(v){Ya(86,v.pos,vn,v),kl(v.label),As()}function xl(v){Ya(81,v.pos,vn,v),kl(v.label),As()}function Ya(v,sr,fi,zi,Sa){var da=e.getParseTreeNode(zi),Ha=da&&da.kind===zi.kind,ta=sr;if(Ha&&Re&&(sr=e.skipTrivia(Re.text,sr)),Ha&&zi.pos!==ta){var nn=Sa&&Re&&!e.positionsAreOnSameLine(ta,sr,Re);nn&&Dc(),Vf(ta),nn&&Cc()}if(sr=Il(v,fi,sr),Ha&&zi.end!==sr){var Wo=zi.kind===288;af(sr,!Wo,Wo)}return sr}function du(v){return v.kind===2||!!v.hasTrailingNewLine}function vc(v){return Re?e.some(e.getLeadingCommentRanges(Re.text,v.pos),du)||e.some(e.getSyntheticLeadingComments(v),du)?!0:e.isPartiallyEmittedExpression(v)?v.pos!==v.expression.pos&&e.some(e.getTrailingCommentRanges(Re.text,v.expression.pos),du)?!0:vc(v.expression):!1:!1}function Kr(v){if(!qr&&e.isPartiallyEmittedExpression(v)&&vc(v)){var sr=e.getParseTreeNode(v);if(sr&&e.isParenthesizedExpression(sr)){var fi=e.factory.createParenthesizedExpression(v.expression);return e.setOriginalNode(fi,v),e.setTextRange(fi,sr),fi}return e.factory.createParenthesizedExpression(v)}return v}function _i(v){return Kr(Gi.parenthesizeExpressionForDisallowedComma(v))}function Ei(v){Ya(105,v.pos,vn,v),__(v.expression&&Kr(v.expression),Kr),As()}function tt(v){var sr=Ya(116,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function kt(v){var sr=Ya(107,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Ut(),gr(v.caseBlock)}function bt(v){gr(v.label),Ya(58,v.label.end,Gt,v),Ut(),gr(v.statement)}function ia(v){Ya(109,v.pos,vn,v),__(Kr(v.expression),Kr),As()}function Xt(v){Ya(111,v.pos,vn,v),Ut(),gr(v.tryBlock),v.catchClause&&(zf(v,v.tryBlock,v.catchClause),gr(v.catchClause)),v.finallyBlock&&(zf(v,v.catchClause||v.tryBlock,v.finallyBlock),Ya(96,(v.catchClause||v.tryBlock).end,vn,v),Ut(),gr(v.finallyBlock))}function Za(v){ac(87,v.pos,vn),As()}function bn(v){var sr,fi,zi,Sa,da;gr(v.name),gr(v.exclamationToken),Wu(v.type),Zl(v.initializer,(da=(fi=(sr=v.type)===null||sr===void 0?void 0:sr.end)!==null&&fi!==void 0?fi:(Sa=(zi=v.name.emitNode)===null||zi===void 0?void 0:zi.typeNode)===null||Sa===void 0?void 0:Sa.end)!==null&&da!==void 0?da:v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function _a(v){vn(e.isLet(v)?"let":e.isVarConst(v)?"const":"var"),Ut(),Zn(v,v.declarations,528)}function qa(v){rn(v)}function rn(v){wc(v,v.decorators),ks(v,v.modifiers),vn("function"),gr(v.asteriskToken),Ut(),Vr(v.name),Jn(v,Mo)}function Jn(v,sr){var fi=v.body;if(fi)if(e.isBlock(fi)){var zi=e.getEmitFlags(v)&65536;zi&&Dc(),wl(v),e.forEach(v.parameters,Et),Et(v.body),sr(v),gs(fi),Iu(v),zi&&Cc()}else sr(v),Ut(),Tr(fi,Gi.parenthesizeConciseBodyOfArrowFunction);else sr(v),As()}function Mo(v){Vu(v,v.typeParameters),ef(v,v.parameters),Wu(v.type)}function ho(v){if(e.getEmitFlags(v)&1)return!0;if(v.multiLine||!e.nodeIsSynthesized(v)&&Re&&!e.rangeIsOnSingleLine(v,Re)||Ap(v,v.statements,2)||Sf(v,v.statements,2))return!1;for(var sr,fi=0,zi=v.statements;fi0)return!1;sr=Sa}return!0}function gs(v){D==null||D(v),Ut(),Gt("{"),Dc();var sr=ho(v)?Se:hr;Mp(v,v.statements,sr),Cc(),ac(19,v.statements.end,Gt,v),fe==null||fe(v)}function Se(v){hr(v,!0)}function hr(v,sr){var fi=$l(v.statements),zi=Ae.getTextPos();Fi(v),fi===0&&zi===Ae.getTextPos()&&sr?(Cc(),Zn(v,v.statements,768),Dc()):Zn(v,v.statements,1,void 0,fi)}function Or(v){ki(v)}function ki(v){e.forEach(v.members,Ys),wc(v,v.decorators),ks(v,v.modifiers),vn("class"),v.name&&(Ut(),Vr(v.name));var sr=e.getEmitFlags(v)&65536;sr&&Dc(),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,0),Ut(),Gt("{"),Zn(v,v.members,129),Gt("}"),sr&&Cc()}function dt(v){wc(v,v.decorators),ks(v,v.modifiers),vn("interface"),Ut(),gr(v.name),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,512),Ut(),Gt("{"),Zn(v,v.members,129),Gt("}")}function la(v){wc(v,v.decorators),ks(v,v.modifiers),vn("type"),Ut(),gr(v.name),Vu(v,v.typeParameters),Ut(),Gt("="),Ut(),gr(v.type),As()}function Oa(v){ks(v,v.modifiers),vn("enum"),Ut(),gr(v.name),Ut(),Gt("{"),Zn(v,v.members,145),Gt("}")}function On(v){ks(v,v.modifiers),~v.flags&1024&&(vn(v.flags&16?"namespace":"module"),Ut()),gr(v.name);var sr=v.body;if(!sr)return As();for(;sr&&e.isModuleDeclaration(sr);)Gt("."),gr(sr.name),sr=sr.body;Ut(),gr(sr)}function No(v){wl(v),e.forEach(v.statements,Et),Bs(v,vd(v)),Iu(v)}function jo(v){Ya(18,v.pos,Gt,v),Zn(v,v.clauses,129),Ya(19,v.clauses.end,Gt,v,!0)}function po(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),Ut(),Ya(63,v.name.end,Gt,v),Ut(),Gn(v.moduleReference),As()}function Gn(v){v.kind===79?Tr(v):gr(v)}function $n(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.importClause&&(gr(v.importClause),Ut(),Ya(156,v.importClause.end,vn,v),Ut()),Tr(v.moduleSpecifier),v.assertClause&&kl(v.assertClause),As()}function Ho(v){v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),v.name&&v.namedBindings&&(Ya(27,v.name.end,Gt,v),Ut()),gr(v.namedBindings)}function Zo(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function Es(v){oo(v)}function yc(v){I_(v)}function Xr(v){var sr=Ya(93,v.pos,vn,v);Ut(),v.isExportEquals?Ya(63,sr,Nl,v):Ya(88,sr,vn,v),Ut(),Tr(v.expression,v.isExportEquals?Gi.getParenthesizeRightSideOfBinaryForOperator(63):Gi.parenthesizeExpressionOfExportDefault),As()}function Ls(v){var sr=Ya(93,v.pos,vn,v);if(Ut(),v.isTypeOnly&&(sr=Ya(152,sr,vn,v),Ut()),v.exportClause?gr(v.exportClause):sr=Ya(41,sr,Gt,v),v.moduleSpecifier){Ut();var fi=v.exportClause?v.exportClause.end:sr;Ya(156,fi,vn,v),Ut(),Tr(v.moduleSpecifier)}v.assertClause&&kl(v.assertClause),As()}function Ic(v){Ya(129,v.pos,vn,v),Ut();var sr=v.elements;Zn(v,sr,526226)}function zu(v){gr(v.name),Gt(":"),Ut();var sr=v.value;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}gr(sr)}function vf(v){var sr=Ya(93,v.pos,vn,v);Ut(),sr=Ya(127,sr,vn,v),Ut(),sr=Ya(142,sr,vn,v),Ut(),gr(v.name),As()}function P_(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function El(v){oo(v)}function vp(v){I_(v)}function oo(v){Gt("{"),Zn(v,v.elements,525136),Gt("}")}function I_(v){v.isTypeOnly&&(vn("type"),Ut()),v.propertyName&&(gr(v.propertyName),Ut(),Ya(127,v.propertyName.end,vn,v),Ut()),gr(v.name)}function yp(v){vn("require"),Gt("("),Tr(v.expression),Gt(")")}function Yl(v){gr(v.openingElement),Zn(v,v.children,262144),gr(v.closingElement)}function Bf(v){Gt("<"),ns(v.tagName),qu(v,v.typeArguments),Ut(),gr(v.attributes),Gt("/>")}function Cl(v){gr(v.openingFragment),Zn(v,v.children,262144),gr(v.closingFragment)}function c_(v){if(Gt("<"),e.isJsxOpeningElement(v)){var sr=J_(v.tagName,v);ns(v.tagName),qu(v,v.typeArguments),v.attributes.properties&&v.attributes.properties.length>0&&Ut(),gr(v.attributes),j_(v.attributes,v),Us(sr)}Gt(">")}function hp(v){Ae.writeLiteral(v.text)}function gu(v){Gt("")}function Dp(v){Zn(v,v.properties,262656)}function sd(v){gr(v.name),R_("=",Gt,v.initializer,vi)}function Aa(v){Gt("{..."),Tr(v.expression),Gt("}")}function va(v){var sr=!1;return e.forEachTrailingCommentRange((Re==null?void 0:Re.text)||"",v+1,function(){return sr=!0}),sr}function Cu(v){var sr=!1;return e.forEachLeadingCommentRange((Re==null?void 0:Re.text)||"",v+1,function(){return sr=!0}),sr}function qs(v){return va(v)||Cu(v)}function cd(v){var sr;if(v.expression||!qr&&!e.nodeIsSynthesized(v)&&qs(v.pos)){var fi=Re&&!e.nodeIsSynthesized(v)&&e.getLineAndCharacterOfPosition(Re,v.pos).line!==e.getLineAndCharacterOfPosition(Re,v.end).line;fi&&Ae.increaseIndent();var zi=Ya(18,v.pos,Gt,v);gr(v.dotDotDotToken),Tr(v.expression),Ya(19,((sr=v.expression)===null||sr===void 0?void 0:sr.end)||zi,Gt,v),fi&&Ae.decreaseIndent()}}function ns(v){v.kind===79?Tr(v):gr(v)}function nl(v){Ya(82,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma),es(v,v.statements,v.expression.end)}function hc(v){var sr=Ya(88,v.pos,vn,v);es(v,v.statements,sr)}function es(v,sr,fi){var zi=sr.length===1&&(!Re||e.nodeIsSynthesized(v)||e.nodeIsSynthesized(sr[0])||e.rangeStartPositionsAreOnSameLine(v,sr[0],Re)),Sa=163969;zi?(ac(58,fi,Gt,v),Ut(),Sa&=-130):Ya(58,fi,Gt,v),Zn(v,sr,Sa)}function u_(v){Ut(),Il(v.token,vn),Ut(),Zn(v,v.types,528)}function Jf(v){var sr=Ya(83,v.pos,vn,v);Ut(),v.variableDeclaration&&(Ya(20,sr,Gt,v),gr(v.variableDeclaration),Ya(21,v.variableDeclaration.end,Gt,v),Ut()),gr(v.block)}function w_(v){gr(v.name),Gt(":"),Ut();var sr=v.initializer;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}Tr(sr,Gi.parenthesizeExpressionForDisallowedComma)}function ud(v){gr(v.name),v.objectAssignmentInitializer&&(Ut(),Gt("="),Ut(),Tr(v.objectAssignmentInitializer,Gi.parenthesizeExpressionForDisallowedComma))}function ku(v){v.expression&&(Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma))}function ld(v){gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function fd(v){if(ir("/**"),v.comment){var sr=e.getTextOfJSDocComment(v.comment);if(sr)for(var fi=sr.split(/\r\n?|\n/g),zi=0,Sa=fi;zi'),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:"no-default-lib"}),bs()}if(Re&&Re.moduleName&&(rf('/// ')),bs()),Re&&Re.amdDependencies)for(var da=0,Ha=Re.amdDependencies;da')):rf('/// ')),bs()}for(var nn=0,Wo=sr;nn')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:"reference",data:Lo.fileName}),bs()}for(var oc=0,uu=fi;oc")),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:Lo.resolutionMode?Lo.resolutionMode===e.ModuleKind.ESNext?"type-import":"type-require":"type",data:Lo.fileName}),bs()}for(var au=0,Ou=zi;au')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:"lib",data:Lo.fileName}),bs()}}function mu(v){var sr=v.statements;wl(v),e.forEach(v.statements,Et),Fi(v);var fi=e.findIndex(sr,function(zi){return!e.isPrologueDirective(zi)});dd(v),Zn(v,sr,1,void 0,fi===-1?sr.length:fi),Iu(v)}function gd(v){var sr=e.getEmitFlags(v);!(sr&512)&&v.pos!==v.expression.pos&&af(v.expression.pos),Tr(v.expression),!(sr&1024)&&v.end!==v.expression.end&&Vf(v.expression.end)}function hf(v){os(v,v.elements,528,void 0)}function $l(v,sr,fi,zi){for(var Sa=!!sr,da=0;da=fi.length||Ha===0;if(nn&&zi&32768){g&&g(fi),ne&&ne(fi);return}if(zi&15360&&(Gt(Q(zi)),nn&&fi&&af(fi.pos,!0)),g&&g(fi),nn)zi&1&&!(de&&(!sr||Re&&e.rangeIsOnSingleLine(sr,Re)))?bs():zi&256&&!(zi&524288)&&Ut();else{e.Debug.type(fi);var Wo=(zi&262144)===0,Lo=Wo,oc=Ap(sr,fi,zi);oc?(bs(oc),Lo=!1):zi&256&&Ut(),zi&128&&Dc();for(var uu=P(v,Sa),is=void 0,au=void 0,Ou=!1,sf=0;sf0?((zi&131)===0&&(Dc(),Ou=!0),bs(cf),Lo=!1):is&&zi&512&&Ut()}if(au=Wr(lu),Lo){var uf=e.getCommentRange(lu);af(uf.pos)}else Lo=Wo;ye=lu.pos,uu(lu,v,Sa,sf),Ou&&(Cc(),Ou=!1),is=lu}var K_=is?e.getEmitFlags(is):0,Jp=qr||!!(K_&1024),Hf=(fi==null?void 0:fi.hasTrailingComma)&&zi&64&&zi&16;Hf&&(is&&!Jp?Ya(27,is.end,Gt,is):Gt(",")),is&&(sr?sr.end:-1)!==is.end&&zi&60&&!Jp&&Vf(Hf&&(fi==null?void 0:fi.end)?fi.end:is.end),zi&128&&Cc(),Je(au);var kc=Sf(sr,fi,zi);kc?bs(kc):zi&2097408&&Ut()}ne&&ne(fi),zi&15360&&(nn&&fi&&Vf(fi.end),Gt($(zi)))}}function d_(v){Ae.writeLiteral(v)}function Gc(v){Ae.writeStringLiteral(v)}function B_(v){Ae.write(v)}function vu(v,sr){Ae.writeSymbol(v,sr)}function Gt(v){Ae.writePunctuation(v)}function As(){Ae.writeTrailingSemicolon(";")}function vn(v){Ae.writeKeyword(v)}function Nl(v){Ae.writeOperator(v)}function cl(v){Ae.writeParameter(v)}function rf(v){Ae.writeComment(v)}function Ut(){Ae.writeSpace(" ")}function Ds(v){Ae.writeProperty(v)}function bf(v){Ae.nonEscapingWrite?Ae.nonEscapingWrite(v):Ae.write(v)}function bs(v){v===void 0&&(v=1);for(var sr=0;sr0)}function Dc(){Ae.increaseIndent()}function Cc(){Ae.decreaseIndent()}function ac(v,sr,fi,zi){return lr?Il(v,fi,sr):of(zi,v,fi,sr,Il)}function Pl(v,sr){ue&&ue(v),sr(e.tokenToString(v.kind)),We&&We(v)}function Il(v,sr,fi){var zi=e.tokenToString(v);return sr(zi),fi<0?fi:fi+zi.length}function zf(v,sr,fi){if(e.getEmitFlags(v)&1)Ut();else if(de){var zi=iu(v,sr,fi);zi?bs(zi):Ut()}else bs()}function ul(v){for(var sr=v.split(/\r\n?|\n/g),fi=e.guessIndentation(sr),zi=0,Sa=sr;zi0||zi>0)&&fi!==zi&&(Sa||Cf(fi,v.kind!==349),(!Sa||fi>=0&&(sr&512)!==0)&&(wr=fi),(!da||zi>=0&&(sr&1024)!==0)&&(Ur=zi,v.kind===255&&(ii=zi))),e.forEach(e.getSyntheticLeadingComments(v),Ef),et()}function Op(v,sr,fi,zi,Sa,da,Ha){Xi();var ta=zi<0||(sr&1024)!==0||v.kind===11;e.forEach(e.getSyntheticTrailingComments(v),Fl),(fi>0||zi>0)&&fi!==zi&&(wr=Sa,Ur=da,ii=Ha,!ta&&v.kind!==349&&Fc(zi)),et()}function Ef(v){(v.hasLeadingNewline||v.kind===2)&&Ae.writeLine(),pl(v),v.hasTrailingNewLine||v.kind===2?Ae.writeLine():Ae.writeSpace(" ")}function Fl(v){Ae.isAtStartOfLine()||Ae.writeSpace(" "),pl(v),v.hasTrailingNewLine&&Ae.writeLine()}function pl(v){var sr=Fp(v),fi=v.kind===3?e.computeLineStarts(sr):void 0;e.writeCommentRange(sr,fi,Ae,0,sr.length,Z)}function Fp(v){return v.kind===3?"/*".concat(v.text,"*/"):"//".concat(v.text)}function Mp(v,sr,fi){Xi();var zi=sr.pos,Sa=sr.end,da=e.getEmitFlags(v),Ha=zi<0||(da&512)!==0,ta=qr||Sa<0||(da&1024)!==0;Ha||Rp(sr),et(),da&2048&&!qr?(qr=!0,fi(v),qr=!1):fi(v),Xi(),ta||(Cf(sr.end,!0),or&&!Ae.isAtStartOfLine()&&Ae.writeLine()),et()}function Gu(v,sr){return v=e.getOriginalNode(v),v.parent&&v.parent===e.getOriginalNode(sr).parent}function Lp(v,sr){if(sr.pos-1&&zi.indexOf(sr)===Sa+1}function Cf(v,sr){or=!1,sr?v===0&&(Re==null?void 0:Re.isDeclarationFile)?Ot(v,g_):Ot(v,gl):v===0&&Ot(v,W_)}function W_(v,sr,fi,zi,Sa){m_(v,sr)&&gl(v,sr,fi,zi,Sa)}function g_(v,sr,fi,zi,Sa){m_(v,sr)||gl(v,sr,fi,zi,Sa)}function dl(v,sr){return k.onlyPrintJsDocStyle?e.isJSDocLikeText(v,sr)||e.isPinnedComment(v,sr):!0}function gl(v,sr,fi,zi,Sa){!Re||!dl(Re.text,v)||(or||(e.emitNewLineBeforeLeadingCommentOfPosition(De(),Ae,Sa,v),or=!0),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():fi===3&&Ae.writeSpace(" "))}function Vf(v){qr||v===-1||Cf(v,!0)}function Fc(v){nf(v,Hu)}function Hu(v,sr,fi,zi){!Re||!dl(Re.text,v)||(Ae.isAtStartOfLine()||Ae.writeSpace(" "),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi&&Ae.writeLine())}function af(v,sr,fi){qr||(Xi(),nf(v,sr?Hu:fi?tn:Ml),et())}function tn(v,sr,fi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),fi===2&&Ae.writeLine())}function Ml(v,sr,fi,zi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():Ae.writeSpace(" "))}function Ot(v,sr){Re&&(wr===-1||v!==wr)&&(q_(v)?Kf(sr):e.forEachLeadingCommentRange(Re.text,v,sr,v))}function nf(v,sr){Re&&(Ur===-1||v!==Ur&&v!==ii)&&e.forEachTrailingCommentRange(Re.text,v,sr)}function q_(v){return pe!==void 0&&e.last(pe).nodePos===v}function Kf(v){if(!!Re){var sr=e.last(pe).detachedCommentEndPos;pe.length-1?pe.pop():pe=void 0,e.forEachLeadingCommentRange(Re.text,sr,v,sr)}}function Rp(v){var sr=Re&&e.emitDetachedComments(Re.text,De(),Ae,yd,v,Z,qr);sr&&(pe?pe.push(sr):pe=[sr])}function yd(v,sr,fi,zi,Sa,da){!Re||!dl(Re.text,zi)||(Xc(zi),e.writeCommentRange(v,sr,fi,zi,Sa,da),Xc(Sa))}function m_(v,sr){return!!Re&&e.isRecognizedTripleSlashComment(Re.text,v,sr)}function Ll(v){return v.parsedSourceMap===void 0&&v.sourceMapText!==void 0&&(v.parsedSourceMap=e.tryParseRawSourceMap(v.sourceMapText)||!1),v.parsedSourceMap||void 0}function hd(v,sr){var fi=Mt(3,v,sr);v_(sr),fi(v,sr),Bp(sr)}function v_(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);if(e.isUnparsedNode(v)){e.Debug.assertIsDefined(v.parent,"UnparsedNodes must have parent pointers");var zi=Ll(v.parent);zi&&be&&be.appendSourceMap(Ae.getLine(),Ae.getColumn(),zi,v.parent.sourceMapPath,v.parent.getLineAndCharacterOfPosition(v.pos),v.parent.getLineAndCharacterOfPosition(v.end))}else{var Sa=fi.source||Ge;v.kind!==349&&(sr&16)===0&&fi.pos>=0&&Gf(fi.source||Ge,Xu(Sa,fi.pos)),sr&64&&(lr=!0)}}function Bp(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);e.isUnparsedNode(v)||(sr&64&&(lr=!1),v.kind!==349&&(sr&32)===0&&fi.end>=0&&Gf(fi.source||Ge,fi.end))}function Xu(v,sr){return v.skipTrivia?v.skipTrivia(sr):e.skipTrivia(v.text,sr)}function Xc(v){if(!(lr||e.positionIsSynthesized(v)||yu(Ge))){var sr=e.getLineAndCharacterOfPosition(Ge,v),fi=sr.line,zi=sr.character;be.addMapping(Ae.getLine(),Ae.getColumn(),ur,fi,zi,void 0)}}function Gf(v,sr){if(v!==Ge){var fi=Ge,zi=ur;wu(v),Xc(sr),V_(fi,zi)}else Xc(sr)}function of(v,sr,fi,zi,Sa){if(lr||v&&e.isInJsonFile(v))return Sa(sr,fi,zi);var da=v&&v.emitNode,Ha=da&&da.flags||0,ta=da&&da.tokenSourceMapRanges&&da.tokenSourceMapRanges[sr],nn=ta&&ta.source||Ge;return zi=Xu(nn,ta?ta.pos:zi),(Ha&128)===0&&zi>=0&&Gf(nn,zi),zi=Sa(sr,fi,zi),ta&&(zi=ta.end),(Ha&256)===0&&zi>=0&&Gf(nn,zi),zi}function wu(v){if(!lr){if(Ge=v,v===yr){ur=Ir;return}yu(v)||(ur=be.addSource(v.fileName),k.inlineSources&&be.setSourceContent(ur,v.text),yr=v,Ir=ur)}}function V_(v,sr){Ge=v,ur=sr}function yu(v){return e.fileExtensionIs(v.fileName,".json")}}e.createPrinter=F;function x(){var k=[];return k[1024]=["{","}"],k[2048]=["(",")"],k[4096]=["<",">"],k[8192]=["[","]"],k}function Q(k){return a[k&15360][0]}function $(k){return a[k&15360][1]}var A;(function(k){k[k.Auto=0]="Auto",k[k.CountMask=268435455]="CountMask",k[k._i=268435456]="_i"})(A||(A={}));function y(k,Y,U,j){Y(k)}function V(k,Y,U,j){Y(k,U.select(j))}function L(k,Y,U,j){Y(k,U)}function P(k,Y){return k.length===1?y:typeof Y=="object"?V:L}})(ke||(ke={}));var ke;(function(e){function a(b,se,J){if(!b.getDirectories||!b.readDirectory)return;var ie=new e.Map,B=e.createGetCanonicalFileName(J);return{useCaseSensitiveFileNames:J,fileExists:y,readFile:function(l,d){return b.readFile(l,d)},directoryExists:b.directoryExists&&V,getDirectories:P,readDirectory:k,createDirectory:b.createDirectory&&L,writeFile:b.writeFile&&A,addOrDeleteFileOrDirectory:U,addOrDeleteFile:j,clearCache:w,realpath:b.realpath&&Y};function q(l){return e.toPath(l,se,B)}function O(l){return ie.get(e.ensureTrailingDirectorySeparator(l))}function ve(l){return O(e.getDirectoryPath(l))}function ee(l){return e.getBaseFileName(e.normalizePath(l))}function he(l,d){var D;if(!b.realpath||e.ensureTrailingDirectorySeparator(q(b.realpath(l)))===d){var fe={files:e.map(b.readDirectory(l,void 0,void 0,["*.*"]),ee)||[],directories:b.getDirectories(l)||[]};return ie.set(e.ensureTrailingDirectorySeparator(d),fe),fe}if(!((D=b.directoryExists)===null||D===void 0)&&D.call(b,l))return ie.set(d,!1),!1}function F(l,d){d=e.ensureTrailingDirectorySeparator(d);var D=O(d);if(D)return D;try{return he(l,d)}catch{e.Debug.assert(!ie.has(e.ensureTrailingDirectorySeparator(d)));return}}function x(l,d){return B(l)===B(d)}function Q(l,d){return e.some(l,function(D){return x(D,d)})}function $(l,d,D){if(Q(l,d)){if(!D)return e.filterMutate(l,function(fe){return!x(fe,d)})}else if(D)return l.push(d)}function A(l,d,D){var fe=q(l),g=ve(fe);return g&&H(g,ee(l),!0),b.writeFile(l,d,D)}function y(l){var d=q(l),D=ve(d);return D&&Q(D.files,ee(l))||b.fileExists(l)}function V(l){var d=q(l);return ie.has(e.ensureTrailingDirectorySeparator(d))||b.directoryExists(l)}function L(l){var d=q(l),D=ve(d),fe=ee(l);D&&$(D.directories,fe,!0),b.createDirectory(l)}function P(l){var d=q(l),D=F(l,d);return D?D.directories.slice():b.getDirectories(l)}function k(l,d,D,fe,g){var ne=q(l),ue=F(l,ne),We;if(ue!==void 0)return e.matchFiles(l,d,D,fe,J,se,g,Fe,Y);return b.readDirectory(l,d,D,fe,g);function Fe(Be){var ge=q(Be);if(ge===ne)return ue||Z(Be,ge);var Re=F(Be,ge);return Re!==void 0?Re||Z(Be,ge):e.emptyFileSystemEntries}function Z(Be,ge){if(We&&ge===ne)return We;var Re={files:e.map(b.readDirectory(Be,void 0,void 0,["*.*"]),ee)||e.emptyArray,directories:b.getDirectories(Be)||e.emptyArray};return ge===ne&&(We=Re),Re}}function Y(l){return b.realpath?b.realpath(l):l}function U(l,d){var D=O(d);if(D!==void 0){w();return}var fe=ve(d);if(!!fe){if(!b.directoryExists){w();return}var g=ee(l),ne={fileExists:b.fileExists(d),directoryExists:b.directoryExists(d)};return ne.directoryExists||Q(fe.directories,g)?w():H(fe,g,ne.fileExists),ne}}function j(l,d,D){if(D!==e.FileWatcherEventKind.Changed){var fe=ve(d);fe&&H(fe,ee(l),D===e.FileWatcherEventKind.Created)}}function H(l,d,D){$(l.files,d,D)}function w(){ie.clear()}}e.createCachedDirectoryStructureHost=a;var C;(function(b){b[b.None=0]="None",b[b.Partial=1]="Partial",b[b.Full=2]="Full"})(C=e.ConfigFileProgramReloadLevel||(e.ConfigFileProgramReloadLevel={}));function I(b,se,J,ie,B){var q,O=e.arrayToMap(((q=se==null?void 0:se.configFile)===null||q===void 0?void 0:q.extendedSourceFiles)||e.emptyArray,B);J.forEach(function(ve,ee){O.has(ee)||(ve.projects.delete(b),ve.close())}),O.forEach(function(ve,ee){var he=J.get(ee);he?he.projects.add(b):J.set(ee,{projects:new e.Set([b]),watcher:ie(ve,ee),close:function(){var F=J.get(ee);!F||F.projects.size!==0||(F.watcher.close(),J.delete(ee))}})})}e.updateSharedExtendedConfigFileWatcher=I;function R(b,se){se.forEach(function(J){J.projects.delete(b)&&J.close()})}e.clearSharedExtendedConfigFileWatcher=R;function E(b,se,J){!b.delete(se)||b.forEach(function(ie,B){var q,O=ie.extendedResult;!((q=O.extendedSourceFiles)===null||q===void 0)&&q.some(function(ve){return J(ve)===se})&&E(b,B,J)})}e.cleanExtendedConfigCache=E;function X(b,se,J){var ie=new e.Map(b);e.mutateMap(se,ie,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updatePackageJsonWatch=X;function le(b,se,J){var ie=b.getMissingFilePaths(),B=e.arrayToMap(ie,e.identity,e.returnTrue);e.mutateMap(se,B,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updateMissingFilePathsWatch=le;function N(b,se,J){e.mutateMap(b,se,{createNewValue:ie,onDeleteValue:K,onExistingValue:B});function ie(q,O){return{watcher:J(q,O),flags:O}}function B(q,O,ve){q.flags!==O&&(q.watcher.close(),b.set(ve,ie(ve,O)))}}e.updateWatchingWildcardDirectories=N;function p(b){var se=b.watchedDirPath,J=b.fileOrDirectory,ie=b.fileOrDirectoryPath,B=b.configFileName,q=b.options,O=b.program,ve=b.extraFileExtensions,ee=b.currentDirectory,he=b.useCaseSensitiveFileNames,F=b.writeLog,x=b.toPath,Q=e.removeIgnoredPath(ie);if(!Q)return F("Project: ".concat(B," Detected ignored path: ").concat(J)),!0;if(ie=Q,ie===se)return!1;if(e.hasExtension(ie)&&!e.isSupportedSourceFileName(J,q,ve))return F("Project: ".concat(B," Detected file add/remove of non supported extension: ").concat(J)),!0;if(e.isExcludedFile(J,q.configFile.configFileSpecs,e.getNormalizedAbsolutePath(e.getDirectoryPath(B),ee),he,ee))return F("Project: ".concat(B," Detected excluded file: ").concat(J)),!0;if(!O||e.outFile(q)||q.outDir)return!1;if(e.isDeclarationFileName(ie)){if(q.declarationDir)return!1}else if(!e.fileExtensionIsOneOf(ie,e.supportedJSExtensionsFlat))return!1;var $=e.removeFileExtension(ie),A=e.isArray(O)?void 0:m(O)?O.getProgramOrUndefined():O,y=!A&&!e.isArray(O)?O:void 0;if(V($+".ts")||V($+".tsx"))return F("Project: ".concat(B," Detected output file: ").concat(J)),!0;return!1;function V(L){return A?!!A.getSourceFileByPath(L):y?y.getState().fileInfos.has(L):!!e.find(O,function(P){return x(P)===L})}}e.isIgnoredFileFromWildCardWatching=p;function m(b){return!!b.getState}function G(b,se){return b?b.isEmittedFile(se):!1}e.isEmittedFileOfProgram=G;var oe;(function(b){b[b.None=0]="None",b[b.TriggerOnly=1]="TriggerOnly",b[b.Verbose=2]="Verbose"})(oe=e.WatchLogLevel||(e.WatchLogLevel={}));function f(b,se,J,ie){e.setSysLog(se===oe.Verbose?J:e.noop);var B={watchFile:function(y,V,L,P){return b.watchFile(y,V,L,P)},watchDirectory:function(y,V,L,P){return b.watchDirectory(y,V,(L&1)!==0,P)}},q=se!==oe.None?{watchFile:$("watchFile"),watchDirectory:$("watchDirectory")}:void 0,O=se===oe.Verbose?{watchFile:x,watchDirectory:Q}:q||B,ve=se===oe.Verbose?F:e.returnNoopFileWatcher;return{watchFile:ee("watchFile"),watchDirectory:ee("watchDirectory")};function ee(y){return function(V,L,P,k,Y,U){var j;return e.matchesExclude(V,y==="watchFile"?k==null?void 0:k.excludeFiles:k==null?void 0:k.excludeDirectories,he(),((j=b.getCurrentDirectory)===null||j===void 0?void 0:j.call(b))||"")?ve(V,P,k,Y,U):O[y].call(void 0,V,L,P,k,Y,U)}}function he(){return typeof b.useCaseSensitiveFileNames=="boolean"?b.useCaseSensitiveFileNames:b.useCaseSensitiveFileNames()}function F(y,V,L,P,k){return J("ExcludeWatcher:: Added:: ".concat(A(y,V,L,P,k,ie))),{close:function(){return J("ExcludeWatcher:: Close:: ".concat(A(y,V,L,P,k,ie)))}}}function x(y,V,L,P,k,Y){J("FileWatcher:: Added:: ".concat(A(y,L,P,k,Y,ie)));var U=q.watchFile(y,V,L,P,k,Y);return{close:function(){J("FileWatcher:: Close:: ".concat(A(y,L,P,k,Y,ie))),U.close()}}}function Q(y,V,L,P,k,Y){var U="DirectoryWatcher:: Added:: ".concat(A(y,L,P,k,Y,ie));J(U);var j=e.timestamp(),H=q.watchDirectory(y,V,L,P,k,Y),w=e.timestamp()-j;return J("Elapsed:: ".concat(w,"ms ").concat(U)),{close:function(){var l="DirectoryWatcher:: Close:: ".concat(A(y,L,P,k,Y,ie));J(l);var d=e.timestamp();H.close();var D=e.timestamp()-d;J("Elapsed:: ".concat(D,"ms ").concat(l))}}}function $(y){return function(V,L,P,k,Y,U){return B[y].call(void 0,V,function(){for(var j=[],H=0;H=4,er=(we+1+"").length;Ae&&(er=Math.max(T.length,er));for(var ir="",Cr=rr;Cr<=we;Cr++){ir+=Ee.getNewLine(),Ae&&rr+1=e.length(Ei==null?void 0:Ei.imports)+e.length(Ei==null?void 0:Ei.moduleAugmentations))return!1;var ki=e.getResolvedModule(Ei,hr,Ei&&he(Ei,Or)),dt=ki&&er.getSourceFile(ki.resolvedFileName);if(ki&&dt)return!1;var la=lr.get(hr);return la?(e.isTraceEnabled(de,pe)&&e.trace(pe,e.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified,hr,la),!0):!1}}function $a(){return!y(er.getProjectReferences(),er.getResolvedProjectReferences(),function(Kr,_i,Ei){var tt=(_i?_i.commandLine.projectReferences:Ae)[Ei],kt=fo(tt);return Kr?!kt||kt.sourceFile!==Kr.sourceFile||!e.arrayIsEqualTo(Kr.commandLine.fileNames,kt.commandLine.fileNames):kt!==void 0},function(Kr,_i){var Ei=_i?yi(_i.sourceFile.path).commandLine.projectReferences:Ae;return!e.arrayIsEqualTo(Kr,Ei,e.projectReferenceIsEqualTo)})}function Qa(){var Kr;if(!er)return 0;var _i=er.getCompilerOptions();if(e.changesAffectModuleResolution(_i,de))return 0;var Ei=er.getRootFileNames();if(!e.arrayIsEqualTo(Ei,we)||!$a())return 0;Ae&&(Ar=Ae.map(fo));var tt=[],kt=[];if(vi=2,er.getMissingFilePaths().some(function(Ls){return pe.fileExists(Ls)}))return 0;var bt=er.getSourceFiles(),ia;(function(Ls){Ls[Ls.Exists=0]="Exists",Ls[Ls.Modified=1]="Modified"})(ia||(ia={}));for(var Xt=new e.Map,Za=0,bn=bt;Za=0;){if(_i.markUsed(bt))return bt;var ia=Ei.text.slice(kt[bt],kt[bt+1]).trim();if(ia!==""&&!/^(\s*)\/\/(.*)$/.test(ia))return-1;bt--}return-1}function Qe(Kr){return no(function(){var _i=[];return Ei(Kr,Kr),e.forEachChildRecursively(Kr,Ei,tt),_i;function Ei(Xt,Za){switch(Za.kind){case 164:case 167:case 169:if(Za.questionToken===Xt)return _i.push(ia(Xt,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,"?")),"skip";case 168:case 171:case 172:case 173:case 213:case 256:case 214:case 254:if(Za.type===Xt)return _i.push(ia(Xt,e.Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files)),"skip"}switch(Xt.kind){case 267:if(Xt.isTypeOnly)return _i.push(ia(Za,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,"import type")),"skip";break;case 272:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,"export type")),"skip";break;case 270:case 275:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,e.isImportSpecifier(Xt)?"import...type":"export...type")),"skip";break;case 265:return _i.push(ia(Xt,e.Diagnostics.import_can_only_be_used_in_TypeScript_files)),"skip";case 271:if(Xt.isExportEquals)return _i.push(ia(Xt,e.Diagnostics.export_can_only_be_used_in_TypeScript_files)),"skip";break;case 291:var bn=Xt;if(bn.token===117)return _i.push(ia(Xt,e.Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files)),"skip";break;case 258:var _a=e.tokenToString(118);return e.Debug.assertIsDefined(_a),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,_a)),"skip";case 261:var qa=Xt.flags&16?e.tokenToString(142):e.tokenToString(141);return e.Debug.assertIsDefined(qa),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,qa)),"skip";case 259:return _i.push(ia(Xt,e.Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files)),"skip";case 260:var rn=e.Debug.checkDefined(e.tokenToString(92));return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,rn)),"skip";case 230:return _i.push(ia(Xt,e.Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files)),"skip";case 229:return _i.push(ia(Xt.type,e.Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)),"skip";case 211:e.Debug.fail()}}function tt(Xt,Za){switch(Za.decorators===Xt&&!de.experimentalDecorators&&_i.push(ia(Za,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)),Za.kind){case 257:case 226:case 169:case 171:case 172:case 173:case 213:case 256:case 214:if(Xt===Za.typeParameters)return _i.push(bt(Xt,e.Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)),"skip";case 237:if(Xt===Za.modifiers)return kt(Za.modifiers,Za.kind===237),"skip";break;case 167:if(Xt===Za.modifiers){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];qa.kind!==124&&_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)))}return"skip"}break;case 164:if(Xt===Za.modifiers)return _i.push(bt(Xt,e.Diagnostics.Parameter_modifiers_can_only_be_used_in_TypeScript_files)),"skip";break;case 208:case 209:case 228:case 279:case 280:case 210:if(Xt===Za.typeArguments)return _i.push(bt(Xt,e.Diagnostics.Type_arguments_can_only_be_used_in_TypeScript_files)),"skip";break}}function kt(Xt,Za){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];switch(qa.kind){case 85:if(Za)continue;case 123:case 121:case 122:case 145:case 135:case 126:case 159:case 101:case 144:_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)));break;case 124:case 93:case 88:}}}function bt(Xt,Za,bn,_a,qa){var rn=Xt.pos;return e.createFileDiagnostic(Kr,rn,Xt.end-rn,Za,bn,_a,qa)}function ia(Xt,Za,bn,_a,qa){return e.createDiagnosticForNodeInSourceFile(Kr,Xt,Za,bn,_a,qa)}})}function Gr(Kr,_i){return Ce(Kr,_i,ur,S)}function S(Kr,_i){return no(function(){var Ei=xn().getEmitResolver(Kr,_i);return e.getDeclarationDiagnostics(ai(e.noop),Ei,Kr)||e.emptyArray})}function Ce(Kr,_i,Ei,tt){var kt,bt=Kr?(kt=Ei.perFile)===null||kt===void 0?void 0:kt.get(Kr.path):Ei.allDiagnostics;if(bt)return bt;var ia=tt(Kr,_i);return Kr?(Ei.perFile||(Ei.perFile=new e.Map)).set(Kr.path,ia):Ei.allDiagnostics=ia,ia}function qe(Kr,_i){return Kr.isDeclarationFile?[]:Gr(Kr,_i)}function br(){return e.sortAndDeduplicateDiagnostics(e.concatenate(wi.getGlobalDiagnostics(),Zr()))}function Zr(){if(!de.configFile)return e.emptyArray;var Kr=wi.getDiagnostics(de.configFile.fileName);return Ji(function(_i){Kr=e.concatenate(Kr,wi.getDiagnostics(_i.sourceFile.fileName))}),Kr}function Si(){return we.length?e.sortAndDeduplicateDiagnostics(xn().getGlobalDiagnostics().slice()):e.emptyArray}function Pi(){return ye||e.emptyArray}function Qi(Kr,_i,Ei,tt){Go(e.normalizePath(Kr),_i,Ei,void 0,tt)}function Ct(Kr,_i){return Kr.fileName===_i.fileName}function sa(Kr,_i){return Kr.kind===79?_i.kind===79&&Kr.escapedText===_i.escapedText:_i.kind===10&&Kr.text===_i.text}function en(Kr,_i){var Ei=e.factory.createStringLiteral(Kr),tt=e.factory.createImportDeclaration(void 0,void 0,void 0,Ei,void 0);return e.addEmitFlags(tt,67108864),e.setParent(Ei,tt),e.setParent(tt,_i),Ei.flags&=-9,tt.flags&=-9,Ei}function Wa(Kr){if(Kr.imports)return;var _i=e.isSourceFileJS(Kr),Ei=e.isExternalModule(Kr),tt,kt,bt;if((de.isolatedModules||Ei)&&!Kr.isDeclarationFile){de.importHelpers&&(tt=[en(e.externalHelpersModuleNameText,Kr)]);var ia=e.getJSXRuntimeImport(e.getJSXImplicitImportBase(de,Kr),de);ia&&(tt||(tt=[])).push(en(ia,Kr))}for(var Xt=0,Za=Kr.statements;Xt=1&&e.isStringLiteralLike(ho.arguments[0])?(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.arguments[0])):e.isLiteralImportTypeNode(ho)&&(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.argument.literal))}}function rn(Jn,Mo){for(var ho=Jn,gs=function(hr){if(hr.pos<=Mo&&(Mo0),Object.defineProperties(ia,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(Xt){this.redirectInfo.redirectTarget.id=Xt}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(Xt){this.redirectInfo.redirectTarget.symbol=Xt}}}),ia}function Kc(Kr,_i,Ei,tt,kt){e.tracing===null||e.tracing===void 0||e.tracing.push("program","findSourceFile",{fileName:Kr,isDefaultLib:_i||void 0,fileIncludeKind:e.FileIncludeKind[tt.kind]});var bt=pc(Kr,_i,Ei,tt,kt);return e.tracing===null||e.tracing===void 0||e.tracing.pop(),bt}function Xs(Kr,_i,Ei,tt){var kt=U(Vi(Kr),_i==null?void 0:_i.getPackageJsonInfoCache(),Ei,tt);return{languageVersion:e.getEmitScriptTarget(tt),impliedNodeFormat:kt,setExternalModuleIndicator:e.getSetExternalModuleIndicator(tt)}}function pc(Kr,_i,Ei,tt,kt){var bt=Vi(Kr);if(Pe){var ia=ce(bt);if(!ia&&pe.realpath&&de.preserveSymlinks&&e.isDeclarationFileName(Kr)&&e.stringContains(Kr,e.nodeModulesPathPart)){var Xt=Vi(pe.realpath(Kr));Xt!==bt&&(ia=ce(Xt))}if(ia){var Za=e.isString(ia)?Kc(ia,_i,Ei,tt,kt):void 0;return Za&&tc(Za,bt,void 0),Za}}var bn=Kr;if(xe.has(bt)){var _a=xe.get(bt);if(hs(_a||void 0,tt),_a&&de.forceConsistentCasingInFileNames){var qa=_a.fileName,rn=Vi(qa)!==Vi(Kr);rn&&(Kr=ps(Kr)||Kr);var Jn=e.getNormalizedAbsolutePathWithoutRoot(qa,Xi),Mo=e.getNormalizedAbsolutePathWithoutRoot(Kr,Xi);Jn!==Mo&&Pc(Kr,_a,tt)}return _a&&mi.get(_a.path)&&Ur===0?(mi.set(_a.path,!1),de.noResolve||(qi(_a,_i),je(_a)),de.noLib||ga(_a),ii.set(_a.path,!1),Xn(_a)):_a&&ii.get(_a.path)&&Ur0),hr.fileName=Kr,hr.path=bt,hr.resolvedPath=Vi(Kr),hr.originalFileName=bn,hs(hr,tt),pe.useCaseSensitiveFileNames()){var la=e.toFileNameLowerCase(bt),Oa=mr.get(la);Oa?Pc(Kr,Oa,tt):mr.set(la,hr)}qr=qr||hr.hasNoDefaultLib&&!Ei,de.noResolve||(qi(hr,_i),je(hr)),de.noLib||ga(hr),Xn(hr),_i?ir.push(hr):Cr.push(hr)}return hr}function hs(Kr,_i){Kr&&be.add(Kr.path,_i)}function tc(Kr,_i,Ei){Ei?(xe.set(Ei,Kr),xe.set(_i,Kr||!1)):xe.set(_i,Kr)}function ps(Kr){var _i=Qs(Kr);return _i&&js(_i,Kr)}function Qs(Kr){if(!(!Ar||!Ar.length||e.isDeclarationFileName(Kr)||e.fileExtensionIs(Kr,".json")))return ds(Kr)}function js(Kr,_i){var Ei=e.outFile(Kr.commandLine.options);return Ei?e.changeExtension(Ei,".d.ts"):e.getOutputDeclarationFileName(_i,Kr.commandLine,!pe.useCaseSensitiveFileNames())}function ds(Kr){nr===void 0&&(nr=new e.Map,Ji(function(Ei){Vi(de.configFilePath)!==Ei.sourceFile.path&&Ei.commandLine.fileNames.forEach(function(tt){return nr.set(Vi(tt),Ei.sourceFile.path)})}));var _i=nr.get(Vi(Kr));return _i&&yi(_i)}function Ji(Kr){return e.forEachResolvedProjectReference(Ar,Kr)}function ce(Kr){if(!!e.isDeclarationFileName(Kr))return Mr===void 0&&(Mr=new e.Map,Ji(function(_i){var Ei=e.outFile(_i.commandLine.options);if(Ei){var tt=e.changeExtension(Ei,".d.ts");Mr.set(Vi(tt),!0)}else{var kt=e.memoize(function(){return e.getCommonSourceDirectoryOfConfig(_i.commandLine,!pe.useCaseSensitiveFileNames())});e.forEach(_i.commandLine.fileNames,function(bt){if(!e.isDeclarationFileName(bt)&&!e.fileExtensionIs(bt,".json")){var ia=e.getOutputDeclarationFileName(bt,_i.commandLine,!pe.useCaseSensitiveFileNames(),kt);Mr.set(Vi(ia),bt)}})}})),Mr.get(Kr)}function Rr(Kr){return Pe&&!!ds(Kr)}function yi(Kr){if(!!Oe)return Oe.get(Kr)||void 0}function qi(Kr,_i){e.forEach(Kr.referencedFiles,function(Ei,tt){Go(C(Ei.fileName,Kr.fileName),_i,!1,void 0,{kind:e.FileIncludeKind.ReferenceFile,file:Kr.path,index:tt})})}function je(Kr){var _i=Kr.typeReferenceDirectives;if(!!_i)for(var Ei=Bt(_i,Kr),tt=0;tt<_i.length;tt++){var kt=Kr.typeReferenceDirectives[tt],bt=Ei[tt],ia=e.toFileNameLowerCase(kt.fileName);e.setResolvedTypeReferenceDirective(Kr,ia,bt);var Xt=kt.resolutionMode||Kr.impliedNodeFormat;Xt&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.Node16&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.NodeNext&&wi.add(e.createDiagnosticForRange(Kr,kt,e.Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext)),Hr(ia,Xt,bt,{kind:e.FileIncludeKind.TypeReferenceDirective,file:Kr.path,index:tt})}}function Hr(Kr,_i,Ei,tt){e.tracing===null||e.tracing===void 0||e.tracing.push("program","processTypeReferenceDirective",{directive:Kr,hasResolved:!!ba,refKind:tt.kind,refPath:V(tt)?tt.file:void 0}),pt(Kr,_i,Ei,tt),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function pt(Kr,_i,Ei,tt){var kt=yr.get(Kr,_i);if(!(kt&&kt.primary)){var bt=!0;if(Ei){if(Ei.isExternalLibraryImport&&Ur++,Ei.primary)Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);else if(kt){if(Ei.resolvedFileName!==kt.resolvedFileName){var ia=pe.readFile(Ei.resolvedFileName),Xt=Rn(kt.resolvedFileName);ia!==Xt.text&&ko(Xt,tt,e.Diagnostics.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict,[Kr,Ei.resolvedFileName,kt.resolvedFileName])}bt=!1}else Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);Ei.isExternalLibraryImport&&Ur--}else ko(void 0,tt,e.Diagnostics.Cannot_find_type_definition_file_for_0,[Kr]);bt&&yr.set(Kr,_i,Ei)}}function Pt(Kr){for(var _i=Kr.split("."),Ei=_i[1],tt=2;_i[tt]&&_i[tt]!=="d";)Ei+=(tt===2?"/":"-")+_i[tt],tt++;var kt=e.combinePaths(Xi,"__lib_node_modules_lookup_".concat(Kr,"__.ts")),bt=e.resolveModuleName("@typescript/lib-"+Ei,kt,{moduleResolution:e.ModuleResolutionKind.NodeJs},pe,_r);return bt!=null&&bt.resolvedModule?bt.resolvedModule.resolvedFileName:e.combinePaths(Di,Kr)}function ga(Kr){e.forEach(Kr.libReferenceDirectives,function(_i,Ei){var tt=e.toFileNameLowerCase(_i.fileName),kt=e.libMap.get(tt);if(kt)Qi(Pt(kt),!0,!0,{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei});else{var bt=e.removeSuffix(e.removePrefix(tt,"lib."),".d.ts"),ia=e.getSpellingSuggestion(bt,e.libs,e.identity),Xt=ia?e.Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1:e.Diagnostics.Cannot_find_lib_definition_for_0;(Ir||(Ir=[])).push({kind:0,reason:{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei},diagnostic:Xt,args:[tt,ia]})}})}function ua(Kr){return pe.getCanonicalFileName(Kr)}function Xn(Kr){var _i;if(Wa(Kr),Kr.imports.length||Kr.moduleAugmentations.length){var Ei=We(Kr),tt=ba(Ei,Kr);e.Debug.assert(tt.length===Ei.length);for(var kt=(Pe?(_i=wt(Kr))===null||_i===void 0?void 0:_i.commandLine.options:void 0)||de,bt=0;btwr,rn=_a&&!ue(kt,ia)&&!kt.noResolve&&bt1})&&Jo(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,"outDir")}if(de.useDefineForClassFields&&_a===0&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,"useDefineForClassFields"),de.checkJs&&!e.getAllowJSCompilerOption(de)&&wi.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"checkJs","allowJs")),de.emitDeclarationOnly&&(e.getEmitDeclarations(de)||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,"emitDeclarationOnly","declaration","composite"),de.noEmit&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"emitDeclarationOnly","noEmit")),de.emitDecoratorMetadata&&!de.experimentalDecorators&&Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"emitDecoratorMetadata","experimentalDecorators"),de.jsxFactory?(de.reactNamespace&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"reactNamespace","jsxFactory"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFactory",e.inverseJsxOptionMap.get(""+de.jsx)),e.parseIsolatedEntityName(de.jsxFactory,_a)||eu("jsxFactory",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFactory)):de.reactNamespace&&!e.isIdentifierText(de.reactNamespace,_a)&&eu("reactNamespace",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,de.reactNamespace),de.jsxFragmentFactory&&(de.jsxFactory||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"jsxFragmentFactory","jsxFactory"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFragmentFactory",e.inverseJsxOptionMap.get(""+de.jsx)),e.parseIsolatedEntityName(de.jsxFragmentFactory,_a)||eu("jsxFragmentFactory",e.Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFragmentFactory)),de.reactNamespace&&(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"reactNamespace",e.inverseJsxOptionMap.get(""+de.jsx)),de.jsxImportSource&&de.jsx===2&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxImportSource",e.inverseJsxOptionMap.get(""+de.jsx)),de.preserveValueImports&&e.getEmitModuleKind(de)qa?e.createDiagnosticForNodeInSourceFile(_a,rn.elements[qa],Kr.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(!de.types)return;tt=al("types",Kr.typeReference),kt=e.Diagnostics.File_is_entry_point_of_type_library_specified_here;break;case e.FileIncludeKind.LibFile:if(Kr.index!==void 0){tt=al("lib",de.lib[Kr.index]),kt=e.Diagnostics.File_is_library_specified_here;break}var Jn=e.forEachEntry(e.targetOptionDeclaration.type,function(Mo,ho){return Mo===e.getEmitScriptTarget(de)?ho:void 0});tt=Jn?Rf("target",Jn):void 0,kt=e.Diagnostics.File_is_default_library_for_target_specified_here;break;default:e.Debug.assertNever(Kr)}return tt&&e.createDiagnosticForNodeInSourceFile(de.configFile,tt,kt)}}function Bs(){var Kr=de.suppressOutputPathCheck?void 0:e.getTsBuildInfoEmitOutputFilePath(de);y(Ae,Ar,function(_i,Ei,tt){var kt=(Ei?Ei.commandLine.projectReferences:Ae)[tt],bt=Ei&&Ei.sourceFile;if(!_i){Ws(bt,tt,e.Diagnostics.File_0_not_found,kt.path);return}var ia=_i.commandLine.options;if(!ia.composite||ia.noEmit){var Xt=Ei?Ei.commandLine.fileNames:we;Xt.length&&(ia.composite||Ws(bt,tt,e.Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true,kt.path),ia.noEmit&&Ws(bt,tt,e.Diagnostics.Referenced_project_0_may_not_disable_emit,kt.path))}if(kt.prepend){var Za=e.outFile(ia);Za?pe.fileExists(Za)||Ws(bt,tt,e.Diagnostics.Output_file_0_from_project_1_does_not_exist,Za,kt.path):Ws(bt,tt,e.Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set,kt.path)}!Ei&&Kr&&Kr===e.getTsBuildInfoEmitOutputFilePath(ia)&&(Ws(bt,tt,e.Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,Kr,kt.path),Wt.set(Vi(Kr),!0))})}function xc(Kr,_i,Ei,tt,kt,bt){for(var ia=!0,Xt=Zc(),Za=0,bn=Xt;Za_i&&(wi.add(e.createDiagnosticForNodeInSourceFile(de.configFile,Mo.elements[_i],Ei,tt,kt,bt)),ia=!1)}}ia&&wi.add(e.createCompilerDiagnostic(Ei,tt,kt,bt))}function su(Kr,_i,Ei,tt){for(var kt=!0,bt=Zc(),ia=0,Xt=bt;ia_i?wi.add(e.createDiagnosticForNodeInSourceFile(Kr||de.configFile,bt.elements[_i],Ei,tt,kt)):wi.add(e.createCompilerDiagnostic(Ei,tt,kt))}function pu(Kr,_i,Ei,tt,kt,bt,ia){var Xt=Uu(),Za=!Xt||!Ql(Xt,Kr,_i,Ei,tt,kt,bt,ia);Za&&wi.add(e.createCompilerDiagnostic(tt,kt,bt,ia))}function Uu(){if(Zt===void 0){Zt=!1;var Kr=e.getTsConfigObjectLiteralExpression(de.configFile);if(Kr)for(var _i=0,Ei=e.getPropertyAssignment(Kr,"compilerOptions");_i0)for(var P=A.getTypeChecker(),k=0,Y=y.imports;k0)for(var w=0,l=y.referencedFiles;w1&&Be(Z)}return L;function Be(Re){if(!!Re.declarations)for(var ze=0,Ee=Re.declarations;ze0;){var w=H.pop();if(!j.has(w)){var l=y.getSourceFileByPath(w);j.set(w,l),l&&J(A,y,l,L,P,k,Y)&&H.push.apply(H,ve(A,l.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(j.values(),function(d){return d}))}})(C=e.BuilderState||(e.BuilderState={}))})(ke||(ke={}));var ke;(function(e){var a;(function(j){j[j.DtsOnly=0]="DtsOnly",j[j.Full=1]="Full"})(a=e.BuilderFileEmit||(e.BuilderFileEmit={}));function C(j,H){return j===H||j!==void 0&&H!==void 0&&j.size===H.size&&!e.forEachKey(j,function(w){return!H.has(w)})}function I(j,H,w,l){var d=e.BuilderState.create(j,H,w,l);d.program=j;var D=j.getCompilerOptions();d.compilerOptions=D,e.outFile(D)||(d.semanticDiagnosticsPerFile=new e.Map),d.changedFilesSet=new e.Set;var fe=e.BuilderState.canReuseOldState(d.referencedMap,w),g=fe?w.compilerOptions:void 0,ne=fe&&w.semanticDiagnosticsPerFile&&!!d.semanticDiagnosticsPerFile&&!e.compilerOptionsAffectSemanticDiagnostics(D,g);if(fe){if(!w.currentChangedFilePath){var ue=w.currentAffectedFilesSignatures;e.Debug.assert(!w.affectedFiles&&(!ue||!ue.size),"Cannot reuse if only few affected files of currentChangedFile were iterated")}var We=w.changedFilesSet;ne&&e.Debug.assert(!We||!e.forEachKey(We,function(Re){return w.semanticDiagnosticsPerFile.has(Re)}),"Semantic diagnostics shouldnt be available for changed files"),We==null||We.forEach(function(Re){return d.changedFilesSet.add(Re)}),!e.outFile(D)&&w.affectedFilesPendingEmit&&(d.affectedFilesPendingEmit=w.affectedFilesPendingEmit.slice(),d.affectedFilesPendingEmitKind=w.affectedFilesPendingEmitKind&&new e.Map(w.affectedFilesPendingEmitKind),d.affectedFilesPendingEmitIndex=w.affectedFilesPendingEmitIndex,d.seenAffectedFiles=new e.Set)}var Fe=d.referencedMap,Z=fe?w.referencedMap:void 0,Be=ne&&!D.skipLibCheck==!g.skipLibCheck,ge=Be&&!D.skipDefaultLibCheck==!g.skipDefaultLibCheck;return d.fileInfos.forEach(function(Re,ze){var Ee,He;if(!fe||!(Ee=w.fileInfos.get(ze))||Ee.version!==Re.version||!C(He=Fe&&Fe.getValues(ze),Z&&Z.getValues(ze))||He&&e.forEachKey(He,function(_e){return!d.fileInfos.has(_e)&&w.fileInfos.has(_e)}))d.changedFilesSet.add(ze);else if(ne){var rr=j.getSourceFileByPath(ze);if(rr.isDeclarationFile&&!Be||rr.hasNoDefaultLib&&!ge)return;var Ie=w.semanticDiagnosticsPerFile.get(ze);Ie&&(d.semanticDiagnosticsPerFile.set(ze,w.hasReusableDiagnostic?R(Ie,j,H):Ie),d.semanticDiagnosticsFromOldState||(d.semanticDiagnosticsFromOldState=new e.Set),d.semanticDiagnosticsFromOldState.add(ze))}}),fe&&e.forEachEntry(w.fileInfos,function(Re,ze){return Re.affectsGlobalScope&&!d.fileInfos.has(ze)})?e.BuilderState.getAllFilesExcludingDefaultLibraryFile(d,j,void 0).forEach(function(Re){return d.changedFilesSet.add(Re.resolvedPath)}):g&&!e.outFile(D)&&e.compilerOptionsAffectEmit(D,g)&&(j.getSourceFiles().forEach(function(Re){return P(d,Re.resolvedPath,1)}),e.Debug.assert(!d.seenAffectedFiles||!d.seenAffectedFiles.size),d.seenAffectedFiles=d.seenAffectedFiles||new e.Set),fe&&e.forEachEntry(w.fileInfos,function(Re,ze){d.fileInfos.has(ze)&&d.fileInfos.get(ze).impliedFormat!==Re.impliedFormat&&d.changedFilesSet.add(ze)}),d.buildInfoEmitPending=!!d.changedFilesSet.size,d}function R(j,H,w){if(!j.length)return e.emptyArray;var l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(H.getCompilerOptions()),H.getCurrentDirectory()));return j.map(function(D){var fe=E(D,H,d);fe.reportsUnnecessary=D.reportsUnnecessary,fe.reportsDeprecated=D.reportDeprecated,fe.source=D.source,fe.skippedOn=D.skippedOn;var g=D.relatedInformation;return fe.relatedInformation=g?g.length?g.map(function(ne){return E(ne,H,d)}):[]:void 0,fe});function d(D){return e.toPath(D,l,w)}}function E(j,H,w){var l=j.file;return Ke(Ke({},j),{file:l?H.getSourceFileByPath(w(l)):void 0})}function X(j){e.BuilderState.releaseCache(j),j.program=void 0}function le(j){var H,w=e.BuilderState.clone(j);return w.semanticDiagnosticsPerFile=j.semanticDiagnosticsPerFile&&new e.Map(j.semanticDiagnosticsPerFile),w.changedFilesSet=new e.Set(j.changedFilesSet),w.affectedFiles=j.affectedFiles,w.affectedFilesIndex=j.affectedFilesIndex,w.currentChangedFilePath=j.currentChangedFilePath,w.currentAffectedFilesSignatures=j.currentAffectedFilesSignatures&&new e.Map(j.currentAffectedFilesSignatures),w.currentAffectedFilesExportedModulesMap=(H=j.currentAffectedFilesExportedModulesMap)===null||H===void 0?void 0:H.clone(),w.seenAffectedFiles=j.seenAffectedFiles&&new e.Set(j.seenAffectedFiles),w.cleanedDiagnosticsOfLibFiles=j.cleanedDiagnosticsOfLibFiles,w.semanticDiagnosticsFromOldState=j.semanticDiagnosticsFromOldState&&new e.Set(j.semanticDiagnosticsFromOldState),w.program=j.program,w.compilerOptions=j.compilerOptions,w.affectedFilesPendingEmit=j.affectedFilesPendingEmit&&j.affectedFilesPendingEmit.slice(),w.affectedFilesPendingEmitKind=j.affectedFilesPendingEmitKind&&new e.Map(j.affectedFilesPendingEmitKind),w.affectedFilesPendingEmitIndex=j.affectedFilesPendingEmitIndex,w.seenEmittedFiles=j.seenEmittedFiles&&new e.Map(j.seenEmittedFiles),w.programEmitComplete=j.programEmitComplete,w}function N(j,H){e.Debug.assert(!H||!j.affectedFiles||j.affectedFiles[j.affectedFilesIndex-1]!==H||!j.semanticDiagnosticsPerFile.has(H.resolvedPath))}function p(j,H,w,l){for(var d;;){var D=j.affectedFiles;if(D){for(var fe=j.seenAffectedFiles,g=j.affectedFilesIndex;g0;){var g=fe.pop();if(!D.has(g)){if(D.set(g,!0),J(j,g,w,l,d))return;if(T(j,g,w,l,d),b(j,g)){var ne=e.Debug.checkDefined(j.program).getSourceFileByPath(g);fe.push.apply(fe,e.BuilderState.getReferencedByPaths(j,ne.resolvedPath))}}}}e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap);var ue=new e.Set;se(j,H.resolvedPath,function(We){if(J(j,We,w,l,d))return!0;var Fe=j.referencedMap.getKeys(We);return Fe&&e.forEachKey(Fe,function(Z){return B(j,Z,ue,w,l,d)})})}}function B(j,H,w,l,d,D){var fe;if(!!e.tryAddToSet(w,H)){if(J(j,H,l,d,D))return!0;T(j,H,l,d,D),e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap),se(j,H,function(g){return B(j,g,w,l,d,D)}),(fe=j.referencedMap.getKeys(H))===null||fe===void 0||fe.forEach(function(g){return!w.has(g)&&T(j,g,l,d,D)})}}function q(j,H,w,l,d){d?j.buildInfoEmitPending=!1:H===j.program?(j.changedFilesSet.clear(),j.programEmitComplete=!0):(j.seenAffectedFiles.add(H.resolvedPath),w!==void 0&&(j.seenEmittedFiles||(j.seenEmittedFiles=new e.Map)).set(H.resolvedPath,w),l?(j.affectedFilesPendingEmitIndex++,j.buildInfoEmitPending=!0):j.affectedFilesIndex++)}function O(j,H,w){return q(j,w),{result:H,affected:w}}function ve(j,H,w,l,d,D){return q(j,w,l,d,D),{result:H,affected:w}}function ee(j,H,w){return e.concatenate(he(j,H,w),e.Debug.checkDefined(j.program).getProgramDiagnostics(H))}function he(j,H,w){var l=H.resolvedPath;if(j.semanticDiagnosticsPerFile){var d=j.semanticDiagnosticsPerFile.get(l);if(d)return e.filterSemanticDiagnostics(d,j.compilerOptions)}var D=e.Debug.checkDefined(j.program).getBindAndCheckDiagnostics(H,w);return j.semanticDiagnosticsPerFile&&j.semanticDiagnosticsPerFile.set(l,D),e.filterSemanticDiagnostics(D,j.compilerOptions)}function F(j,H){if(e.outFile(j.compilerOptions))return;var w=e.Debug.checkDefined(j.program).getCurrentDirectory(),l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(j.compilerOptions),w)),d=[],D=new e.Map,fe,g,ne=e.arrayFrom(j.fileInfos.entries(),function(Ae){var er=Ae[0],ir=Ae[1],Cr=de(er);e.Debug.assert(d[Cr-1]===we(er));var Ye=j.currentAffectedFilesSignatures&&j.currentAffectedFilesSignatures.get(er),Br=Ye!=null?Ye:ir.signature;return ir.version===Br?ir.affectsGlobalScope||ir.impliedFormat?{version:ir.version,signature:void 0,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:ir.version:Br!==void 0?Ye===void 0?ir:{version:ir.version,signature:Ye,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:{version:ir.version,signature:!1,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}}),ue;j.referencedMap&&(ue=e.arrayFrom(j.referencedMap.keys()).sort(e.compareStringsCaseSensitive).map(function(Ae){return[de(Ae),ye(j.referencedMap.getValues(Ae))]}));var We;j.exportedModulesMap&&(We=e.mapDefined(e.arrayFrom(j.exportedModulesMap.keys()).sort(e.compareStringsCaseSensitive),function(Ae){var er;if(j.currentAffectedFilesExportedModulesMap){if(!((er=j.currentAffectedFilesExportedModulesMap.deletedKeys())===null||er===void 0)&&er.has(Ae))return;var ir=j.currentAffectedFilesExportedModulesMap.getValues(Ae);if(ir)return[de(Ae),ye(ir)]}return[de(Ae),ye(j.exportedModulesMap.getValues(Ae))]}));var Fe;if(j.semanticDiagnosticsPerFile)for(var Z=0,Be=e.arrayFrom(j.semanticDiagnosticsPerFile.keys()).sort(e.compareStringsCaseSensitive);Z1||E.charCodeAt(0)!==47;if(p&&E.search(/[a-zA-Z]:/)!==0&&N.search(/[a-zA-z]\$\//)===0){if(le=E.indexOf(e.directorySeparator,le+1),le===-1)return!1;N=E.substring(X+N.length,le+1)}if(p&&N.search(/users\//i)!==0)return!0;for(var m=le+1,G=2;G>0;G--)if(m=E.indexOf(e.directorySeparator,m)+1,m===0)return!1;return!0}e.canWatchDirectory=C;function I(E,X,le){var N,p,m,G=e.createMultiMap(),oe=[],f=e.createMultiMap(),T=!1,K,b,se,J=e.memoize(function(){return E.getCurrentDirectory()}),ie=E.getCachedDirectoryStructureHost(),B=new e.Map,q=e.createCacheWithRedirects(),O=e.createCacheWithRedirects(),ve=e.createModuleResolutionCache(J(),E.getCanonicalFileName,void 0,q,O),ee=new e.Map,he=e.createCacheWithRedirects(),F=e.createTypeReferenceDirectiveResolutionCache(J(),E.getCanonicalFileName,void 0,ve.getPackageJsonInfoCache(),he),x=[".ts",".tsx",".js",".jsx",".json"],Q=new e.Map,$=new e.Map,A=X&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(X,J())),y=A&&E.toPath(A),V=y!==void 0?y.split(e.directorySeparator).length:0,L=new e.Map;return{getModuleResolutionCache:function(){return ve},startRecordingFilesWithChangedResolutions:j,finishRecordingFilesWithChangedResolutions:H,startCachingPerDirectoryResolution:d,finishCachingPerDirectoryResolution:D,resolveModuleNames:We,getResolvedModuleWithFailedLookupLocationsFromCache:Fe,resolveTypeReferenceDirectives:ue,removeResolutionsFromProjectReferenceRedirects:ye,removeResolutionsOfFile:Ae,hasChangedAutomaticTypeDirectiveNames:function(){return T},invalidateResolutionOfFile:ir,invalidateResolutionsOfFailedLookupLocations:Br,setFilesWithInvalidatedNonRelativeUnresolvedImports:Cr,createHasInvalidatedResolution:l,isFileWithInvalidatedNonRelativeUnresolvedImports:w,updateTypeRootsWatch:be,closeTypeRootsWatch:Ne,clear:U};function P(ur){return ur.resolvedModule}function k(ur){return ur.resolvedTypeReferenceDirective}function Y(ur,yr){return ur===void 0||yr.length<=ur.length?!1:e.startsWith(yr,ur)&&yr[ur.length]===e.directorySeparator}function U(){e.clearMap($,e.closeFileWatcherOf),Q.clear(),G.clear(),Ne(),B.clear(),ee.clear(),f.clear(),oe.length=0,K=void 0,b=void 0,se=void 0,d(),T=!1}function j(){N=[]}function H(){var ur=N;return N=void 0,ur}function w(ur){if(!m)return!1;var yr=m.get(ur);return!!yr&&!!yr.length}function l(ur){if(Br(),ur)return p=void 0,e.returnTrue;var yr=p;return p=void 0,function(Ir){return!!yr&&yr.has(Ir)||w(Ir)}}function d(){ve.clear(),F.clear(),G.forEach(He),G.clear()}function D(){m=void 0,d(),$.forEach(function(ur,yr){ur.refCount===0&&($.delete(yr),ur.watcher.close())}),T=!1}function fe(ur,yr,Ir,wr,Ur,ii,mi){var pe,or=e.resolveModuleName(ur,yr,Ir,wr,ve,Ur,mi);if(!E.getGlobalCache)return or;var qr=E.getGlobalCache();if(qr!==void 0&&!e.isExternalModuleNameRelative(ur)&&!(or.resolvedModule&&e.extensionIsTS(or.resolvedModule.extension))){var si=e.loadModuleFromGlobalCache(e.Debug.checkDefined(E.globalCacheResolutionModuleName)(ur),E.projectName,Ir,wr,qr,ve),Di=si.resolvedModule,wi=si.failedLookupLocations;if(Di)return or.resolvedModule=Di,(pe=or.failedLookupLocations).push.apply(pe,wi),or}return or}function g(ur,yr,Ir,wr,Ur,ii,mi){return e.resolveTypeReferenceDirective(ur,yr,Ir,wr,Ur,F,mi)}function ne(ur){var yr,Ir,wr,Ur=ur.names,ii=ur.containingFile,mi=ur.redirectedReference,pe=ur.cache,or=ur.perDirectoryCacheWithRedirects,qr=ur.loader,si=ur.getResolutionWithResolvedFileName,Di=ur.shouldRetryResolution,wi=ur.reusedNames,Xi=ur.logChanges,et=ur.containingSourceFile,Gi=ur.containingSourceFileMode,Wt=E.toPath(ii),Zt=pe.get(Wt)||pe.set(Wt,e.createModeAwareCache()).get(Wt),_r=e.getDirectoryPath(Wt),pi=or.getOrCreateMapOfCacheRedirects(mi),ae=pi.get(_r);ae||(ae=e.createModeAwareCache(),pi.set(_r,ae));for(var Xe=[],Jr=E.getCompilationSettings(),ti=Xi&&w(Wt),Ze=E.getCurrentProgram(),Sr=Ze&&Ze.getResolvedProjectReferenceToRedirect(ii),zr=Sr?!mi||mi.sourceFile.path!==Sr.sourceFile.path:!!mi,Wr=e.createModeAwareCache(),Je=0,xe=0,vr=Ur;xeV+1?{dir:wr.slice(0,V+1).join(e.directorySeparator),dirPath:Ir.slice(0,V+1).join(e.directorySeparator)}:{dir:A,dirPath:y,nonRecursive:!1}}return ge(e.getDirectoryPath(e.getNormalizedAbsolutePath(ur,J())),e.getDirectoryPath(yr))}function ge(ur,yr){for(;e.pathContainsNodeModules(yr);)ur=e.getDirectoryPath(ur),yr=e.getDirectoryPath(yr);if(e.isNodeModulesDirectory(yr))return C(e.getDirectoryPath(yr))?{dir:ur,dirPath:yr}:void 0;var Ir=!0,wr,Ur;if(y!==void 0)for(;!Y(yr,y);){var ii=e.getDirectoryPath(yr);if(ii===yr)break;Ir=!1,wr=yr,Ur=ur,yr=ii,ur=e.getDirectoryPath(ur)}return C(yr)?{dir:Ur||ur,dirPath:wr||yr,nonRecursive:Ir}:void 0}function Re(ur){return e.fileExtensionIsOneOf(ur,x)}function ze(ur,yr,Ir,wr){if(yr.refCount)yr.refCount++,e.Debug.assertIsDefined(yr.files);else{yr.refCount=1,e.Debug.assert(e.length(yr.files)===0),e.isExternalModuleNameRelative(ur)?Ee(yr):G.add(ur,yr);var Ur=wr(yr);Ur&&Ur.resolvedFileName&&f.add(E.toPath(Ur.resolvedFileName),yr)}(yr.files||(yr.files=[])).push(Ir)}function Ee(ur){e.Debug.assert(!!ur.refCount);var yr=ur.failedLookupLocations;if(!!yr.length){oe.push(ur);for(var Ir=!1,wr=0,Ur=yr;wr1),Q.set(qr,wi-1))),Di===y?ii=!0:_e(Di)}}ii&&_e(y)}}}function _e(ur){var yr=$.get(ur);yr.refCount--}function we(ur,yr,Ir){return E.watchDirectoryOfFailedLookupLocation(ur,function(wr){var Ur=E.toPath(wr);ie&&ie.addOrDeleteFileOrDirectory(wr,Ur),Ye(Ur,yr===Ur)},Ir?0:1)}function de(ur,yr,Ir){var wr=ur.get(yr);wr&&(wr.forEach(function(Ur){return Ie(Ur,yr,Ir)}),ur.delete(yr))}function ye(ur){if(!!e.fileExtensionIs(ur,".json")){var yr=E.getCurrentProgram();if(!!yr){var Ir=yr.getResolvedProjectReferenceByPath(ur);!Ir||Ir.commandLine.fileNames.forEach(function(wr){return Ae(E.toPath(wr))})}}}function Ae(ur){de(B,ur,P),de(ee,ur,k)}function er(ur,yr){if(!ur)return!1;for(var Ir=!1,wr=0,Ur=ur;wr1&&ze.sort(O),ne.push.apply(ne,ze));var Ee=e.getDirectoryPath(ge);if(Ee===ge)return We=ge,"break";ge=Ee,We=ge},We,Fe=e.getDirectoryPath(w);fe.size!==0;){var Z=ue(Fe);if(Fe=We,Z==="break")break}if(fe.size){var Be=e.arrayFrom(fe.values());Be.length>1&&Be.sort(O),ne.push.apply(ne,Be)}return ne}function x(w,l){var d,D=(d=w.declarations)===null||d===void 0?void 0:d.find(function(ne){return e.isNonGlobalAmbientModule(ne)&&(!e.isExternalModuleAugmentation(ne)||!e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(ne.name)))});if(D)return D.name.text;var fe=e.mapDefined(w.declarations,function(ne){var ue,We,Fe,Z;if(!e.isModuleDeclaration(ne))return;var Be=Ee(ne);if(!(((ue=Be==null?void 0:Be.parent)===null||ue===void 0?void 0:ue.parent)&&e.isModuleBlock(Be.parent)&&e.isAmbientModule(Be.parent.parent)&&e.isSourceFile(Be.parent.parent.parent)))return;var ge=(Z=(Fe=(We=Be.parent.parent.symbol.exports)===null||We===void 0?void 0:We.get("export="))===null||Fe===void 0?void 0:Fe.valueDeclaration)===null||Z===void 0?void 0:Z.expression;if(!ge)return;var Re=l.getSymbolAtLocation(ge);if(!Re)return;var ze=(Re==null?void 0:Re.flags)&2097152?l.getAliasedSymbol(Re):Re;if(ze===ne.symbol)return Be.parent.parent;function Ee(He){for(;He.flags&4;)He=He.parent;return He}}),g=fe[0];if(g)return g.name.text}function Q(w,l,d){for(var D in d)for(var fe=0,g=d[D];fe=Fe.length+Z.length&&e.startsWith(l,Fe)&&e.endsWith(l,Z)||!Z&&l===e.removeTrailingDirectorySeparator(Fe)){var Be=l.substr(Fe.length,l.length-Z.length-Fe.length);return D.replace("*",Be)}}else if(ue===l||ue===w)return D}}var $;(function(w){w[w.Exact=0]="Exact",w[w.Directory=1]="Directory",w[w.Pattern=2]="Pattern"})($||($={}));function A(w,l,d,D,fe,g,ne){if(ne===void 0&&(ne=0),typeof fe=="string"){var ue=e.getNormalizedAbsolutePath(e.combinePaths(d,fe),void 0),We=e.hasTSFileExtension(l)?e.removeFileExtension(l)+U(l,w):void 0;switch(ne){case 0:if(e.comparePaths(l,ue)===0||We&&e.comparePaths(We,ue)===0)return{moduleFileToTry:D};break;case 1:if(e.containsPath(ue,l)){var Fe=e.getRelativePathFromDirectory(ue,l,!1);return{moduleFileToTry:e.getNormalizedAbsolutePath(e.combinePaths(e.combinePaths(D,fe),Fe),void 0)}}break;case 2:var Z=ue.indexOf("*"),Be=ue.slice(0,Z),ge=ue.slice(Z+1);if(e.startsWith(l,Be)&&e.endsWith(l,ge)){var Re=l.slice(Be.length,l.length-ge.length);return{moduleFileToTry:D.replace("*",Re)}}if(We&&e.startsWith(We,Be)&&e.endsWith(We,ge)){var Re=We.slice(Be.length,We.length-ge.length);return{moduleFileToTry:D.replace("*",Re)}}break}}else{if(Array.isArray(fe))return e.forEach(fe,function(_e){return A(w,l,d,D,_e,g)});if(typeof fe=="object"&&fe!==null){if(e.allKeysStartWithDot(fe))return e.forEach(e.getOwnKeys(fe),function(_e){var we=e.getNormalizedAbsolutePath(e.combinePaths(D,_e),void 0),de=e.endsWith(_e,"/")?1:e.stringContains(_e,"*")?2:0;return A(w,l,d,we,fe[_e],g,de)});for(var ze=0,Ee=e.getOwnKeys(fe);ze=0||e.isApplicableVersionedTypesKey(g,He)){var rr=fe[He],Ie=A(w,l,d,D,rr,g);if(Ie)return Ie}}}}}function y(w,l,d,D,fe,g){var ne=P(l,w,D);if(ne!==void 0){var ue=P(d,w,D),We=ue!==void 0?e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(ue,ne,D)):ne;return e.getEmitModuleResolutionKind(g)===e.ModuleResolutionKind.NodeJs?k(We,fe,g):e.removeFileExtension(We)}}function V(w,l,d,D,fe,g,ne,ue){var We=w.path,Fe=w.isRedirect,Z=l.getCanonicalFileName,Be=l.sourceDirectory;if(!D.fileExists||!D.readFile)return;var ge=e.getNodeModulePathParts(We);if(!ge)return;var Re=We,ze=!1;if(!ne)for(var Ee=E(D,g,fe,d),He=ge.packageRootIndex,rr=void 0;;){var Ie=Ye(He),_e=Ie.moduleFileToTry,we=Ie.packageRootPath,de=Ie.blockedByExports,ye=Ie.verbatimFromExports;if(e.getEmitModuleResolutionKind(fe)!==e.ModuleResolutionKind.Classic){if(de)return;if(ye)return _e}if(we){Re=we,ze=!0;break}if(rr||(rr=_e),He=We.indexOf(e.directorySeparator,He+1),He===-1){Re=k(rr,Ee.ending,fe,D);break}}if(Fe&&!ze)return;var Ae=D.getGlobalTypingsCacheLocation&&D.getGlobalTypingsCacheLocation(),er=Z(Re.substring(0,ge.topLevelNodeModulesIndex));if(!(e.startsWith(Be,er)||Ae&&e.startsWith(Z(Ae),er)))return;var ir=Re.substring(ge.topLevelPackageNameIndex+1),Cr=e.getPackageNameFromTypesPackageName(ir);return e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Classic&&Cr===ir?void 0:Cr;function Ye(Br){var Er,Ne,n=We.substring(0,Br),lr=e.combinePaths(n,"package.json"),be=We,Ge=(Ne=(Er=D.getPackageJsonInfoCache)===null||Er===void 0?void 0:Er.call(D))===null||Ne===void 0?void 0:Ne.getPackageJsonInfo(lr);if(typeof Ge=="object"||Ge===void 0&&D.fileExists(lr)){var ur=(Ge==null?void 0:Ge.packageJsonContent)||JSON.parse(D.readFile(lr));if(e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.NodeNext){var yr=["node",ue||d.impliedNodeFormat===e.ModuleKind.ESNext?"import":"require","types"],Ir=ur.exports&&typeof ur.name=="string"?A(fe,We,n,e.getPackageNameFromTypesPackageName(ur.name),ur.exports,yr):void 0;if(Ir){var wr=e.hasTSFileExtension(Ir.moduleFileToTry)?{moduleFileToTry:e.removeFileExtension(Ir.moduleFileToTry)+U(Ir.moduleFileToTry,fe)}:Ir;return Ke(Ke({},wr),{verbatimFromExports:!0})}if(ur.exports)return{moduleFileToTry:We,blockedByExports:!0}}var Ur=ur.typesVersions?e.getPackageJsonTypesVersionsPaths(ur.typesVersions):void 0;if(Ur){var ii=We.slice(n.length+1),mi=Q(e.removeFileExtension(ii),k(ii,0,fe),Ur.paths);mi!==void 0&&(be=e.combinePaths(n,mi))}var pe=ur.typings||ur.types||ur.main||"index.js";if(e.isString(pe)){var or=e.toPath(pe,n,Z);if(e.removeFileExtension(or)===e.removeFileExtension(Z(be)))return{packageRootPath:n,moduleFileToTry:be}}}else{var qr=Z(be.substring(ge.packageRootIndex+1));if(qr==="index.d.ts"||qr==="index.js"||qr==="index.ts"||qr==="index.tsx")return{moduleFileToTry:be,packageRootPath:n}}return{moduleFileToTry:be}}}function L(w,l){if(!!w.fileExists)for(var d=e.flatten(e.getSupportedExtensions({allowJs:!0},[{extension:"node",isMixedContent:!1},{extension:"json",isMixedContent:!1,scriptKind:6}])),D=0,fe=d;D1?f(j,U):"";return"".concat(Y).concat(e.flattenDiagnosticMessageText(l.messageText,Y)).concat(Y).concat(Y).concat(d)}e.getErrorSummaryText=oe;function f(P,k){var Y=P.filter(function(g,ne,ue){return ne===ue.findIndex(function(We){return(We==null?void 0:We.fileName)===(g==null?void 0:g.fileName)})});if(Y.length===0)return"";var U=function(g){return Math.log(g)*Math.LOG10E+1},j=Y.map(function(g){return[g,e.countWhere(P,function(ne){return ne.fileName===g.fileName})]}),H=j.reduce(function(g,ne){return Math.max(g,ne[1]||0)},0),w=e.Diagnostics.Errors_Files.message,l=w.split(" ")[0].length,d=Math.max(l,U(H)),D=Math.max(U(H)-l,0),fe="";return fe+=" ".repeat(D)+w+` +`,j.forEach(function(g){var ne=g[0],ue=g[1],We=Math.log(ue)*Math.LOG10E+1|0,Fe=We0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:fe.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}e.emitFilesAndReportErrorsAndGetExitStatus=ve,e.noopFileWatcher={close:e.noop},e.returnNoopFileWatcher=function(){return e.noopFileWatcher};function ee(P,k){P===void 0&&(P=e.sys);var Y=k||X(P);return{onWatchStatusChange:Y,watchFile:e.maybeBind(P,P.watchFile)||e.returnNoopFileWatcher,watchDirectory:e.maybeBind(P,P.watchDirectory)||e.returnNoopFileWatcher,setTimeout:e.maybeBind(P,P.setTimeout)||e.noop,clearTimeout:e.maybeBind(P,P.clearTimeout)||e.noop}}e.createWatchHost=ee,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 he(P,k){var Y=P.trace?k.extendedDiagnostics?e.WatchLogLevel.Verbose:k.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,U=Y!==e.WatchLogLevel.None?function(H){return P.trace(H)}:e.noop,j=e.getWatchFactory(P,Y,U);return j.writeLog=U,j}e.createWatchFactory=he;function F(P,k,Y){Y===void 0&&(Y=P);var U=P.useCaseSensitiveFileNames(),j=e.memoize(function(){return P.getNewLine()});return{getSourceFile:function(w,l,d){var D;try{e.performance.mark("beforeIORead"),D=P.readFile(w,k().charset),e.performance.mark("afterIORead"),e.performance.measure("I/O Read","beforeIORead","afterIORead")}catch(fe){d&&d(fe.message),D=""}return D!==void 0?e.createSourceFile(w,D,l):void 0},getDefaultLibLocation:e.maybeBind(P,P.getDefaultLibLocation),getDefaultLibFileName:function(w){return P.getDefaultLibFileName(w)},writeFile:H,getCurrentDirectory:e.memoize(function(){return P.getCurrentDirectory()}),useCaseSensitiveFileNames:function(){return U},getCanonicalFileName:e.createGetCanonicalFileName(U),getNewLine:function(){return e.getNewLineCharacter(k(),j)},fileExists:function(w){return P.fileExists(w)},readFile:function(w){return P.readFile(w)},trace:e.maybeBind(P,P.trace),directoryExists:e.maybeBind(Y,Y.directoryExists),getDirectories:e.maybeBind(Y,Y.getDirectories),realpath:e.maybeBind(P,P.realpath),getEnvironmentVariable:e.maybeBind(P,P.getEnvironmentVariable)||function(){return""},createHash:e.maybeBind(P,P.createHash),readDirectory:e.maybeBind(P,P.readDirectory),disableUseFileVersionAsSignature:P.disableUseFileVersionAsSignature,storeFilesChangingSignatureDuringEmit:P.storeFilesChangingSignatureDuringEmit};function H(w,l,d,D){try{e.performance.mark("beforeIOWrite"),e.writeFileEnsuringDirectories(w,l,d,function(fe,g,ne){return P.writeFile(fe,g,ne)},function(fe){return P.createDirectory(fe)},function(fe){return P.directoryExists(fe)}),e.performance.mark("afterIOWrite"),e.performance.measure("I/O Write","beforeIOWrite","afterIOWrite")}catch(fe){D&&D(fe.message)}}}e.createCompilerHostFromProgramHost=F;function x(P,k){var Y=P.getSourceFile,U=e.maybeBind(k,k.createHash)||e.generateDjb2Hash;P.getSourceFile=function(){for(var j=[],H=0;Hbe?Ge:be}function le(be){return!!be&&!!be.buildOrder}e.isCircularBuildOrder=le;function N(be){return le(be)?be.buildOrder:be}e.getBuildOrderFromAnyBuildOrder=N;function p(be,Ge){return function(ur){var yr=Ge?"[".concat(e.formatColorAndReset(e.getLocaleTimeString(be),e.ForegroundColorEscapeSequences.Grey),"] "):"".concat(e.getLocaleTimeString(be)," - ");yr+="".concat(e.flattenDiagnosticMessageText(ur.messageText,be.newLine)).concat(be.newLine+be.newLine),be.write(yr)}}e.createBuilderStatusReporter=p;function m(be,Ge,ur,yr){var Ir=e.createProgramHost(be,Ge);return Ir.getModifiedTime=be.getModifiedTime?function(wr){return be.getModifiedTime(wr)}:e.returnUndefined,Ir.setModifiedTime=be.setModifiedTime?function(wr,Ur){return be.setModifiedTime(wr,Ur)}:e.noop,Ir.deleteFile=be.deleteFile?function(wr){return be.deleteFile(wr)}:e.noop,Ir.reportDiagnostic=ur||e.createDiagnosticReporter(be),Ir.reportSolutionBuilderStatus=yr||p(be),Ir.now=e.maybeBind(be,be.now),Ir}function G(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr);return wr.reportErrorSummary=Ir,wr}e.createSolutionBuilderHost=G;function oe(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr),Ur=e.createWatchHost(be,Ir);return e.copyProperties(wr,Ur),wr}e.createSolutionBuilderWithWatchHost=oe;function f(be){var Ge={};return e.commonOptionsWithBuild.forEach(function(ur){e.hasProperty(be,ur.name)&&(Ge[ur.name]=be[ur.name])}),Ge}function T(be,Ge,ur){return ye(!1,be,Ge,ur)}e.createSolutionBuilder=T;function K(be,Ge,ur,yr){return ye(!0,be,Ge,ur,yr)}e.createSolutionBuilderWithWatch=K;function b(be,Ge,ur,yr,Ir){var wr=Ge,Ur=Ge,ii=wr.getCurrentDirectory(),mi=e.createGetCanonicalFileName(wr.useCaseSensitiveFileNames()),pe=f(yr),or=e.createCompilerHostFromProgramHost(wr,function(){return Zt.projectCompilerOptions});e.setGetSourceFileAsHashVersioned(or,wr),or.getParsedCommandLine=function(_r){return q(Zt,_r,J(Zt,_r))},or.resolveModuleNames=e.maybeBind(wr,wr.resolveModuleNames),or.resolveTypeReferenceDirectives=e.maybeBind(wr,wr.resolveTypeReferenceDirectives);var qr=or.resolveModuleNames?void 0:e.createModuleResolutionCache(ii,mi),si=or.resolveTypeReferenceDirectives?void 0:e.createTypeReferenceDirectiveResolutionCache(ii,mi,void 0,qr==null?void 0:qr.getPackageJsonInfoCache());if(!or.resolveModuleNames){var Di=function(_r,pi,ae,Xe){return e.resolveModuleName(_r,ae,Zt.projectCompilerOptions,or,qr,Xe,pi).resolvedModule};or.resolveModuleNames=function(_r,pi,ae,Xe,Jr,ti){return e.loadWithModeAwareCache(e.Debug.checkEachDefined(_r),e.Debug.checkDefined(ti),pi,Xe,Di)},or.getModuleResolutionCache=function(){return qr}}if(!or.resolveTypeReferenceDirectives){var wi=function(_r,pi,ae,Xe){return e.resolveTypeReferenceDirective(_r,pi,Zt.projectCompilerOptions,or,ae,Zt.typeReferenceDirectiveResolutionCache,Xe).resolvedTypeReferenceDirective};or.resolveTypeReferenceDirectives=function(_r,pi,ae,Xe,Jr){return e.loadWithTypeDirectiveCache(e.Debug.checkEachDefined(_r),pi,ae,Jr,wi)}}var Xi=e.createWatchFactory(Ur,yr),et=Xi.watchFile,Gi=Xi.watchDirectory,Wt=Xi.writeLog,Zt={host:wr,hostWithWatch:Ur,currentDirectory:ii,getCanonicalFileName:mi,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(wr),write:e.maybeBind(wr,wr.trace),options:yr,baseCompilerOptions:pe,rootNames:ur,baseWatchOptions:Ir,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:or,moduleResolutionCache:qr,typeReferenceDirectiveResolutionCache:si,buildOrder:void 0,readFileWithCache:function(_r){return wr.readFile(_r)},projectCompilerOptions:pe,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:be,currentInvalidatedProject:void 0,watch:be,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:et,watchDirectory:Gi,writeLog:Wt};return Zt}function se(be,Ge){return e.toPath(Ge,be.currentDirectory,be.getCanonicalFileName)}function J(be,Ge){var ur=be.resolvedConfigFilePaths,yr=ur.get(Ge);if(yr!==void 0)return yr;var Ir=se(be,Ge);return ur.set(Ge,Ir),Ir}function ie(be){return!!be.options}function B(be,Ge){var ur=be.configFileCache.get(Ge);return ur&&ie(ur)?ur:void 0}function q(be,Ge,ur){var yr=be.configFileCache,Ir=yr.get(ur);if(Ir)return ie(Ir)?Ir:void 0;var wr,Ur=be.parseConfigFileHost,ii=be.baseCompilerOptions,mi=be.baseWatchOptions,pe=be.extendedConfigCache,or=be.host,qr;return or.getParsedCommandLine?(qr=or.getParsedCommandLine(Ge),qr||(wr=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,Ge))):(Ur.onUnRecoverableConfigFileDiagnostic=function(si){return wr=si},qr=e.getParsedCommandLineOfConfigFile(Ge,ii,Ur,pe,mi),Ur.onUnRecoverableConfigFileDiagnostic=e.noop),yr.set(ur,qr||wr),qr}function O(be,Ge){return e.resolveConfigFileProjectName(e.resolvePath(be.currentDirectory,Ge))}function ve(be,Ge){for(var ur=new e.Map,yr=new e.Map,Ir=[],wr,Ur,ii=0,mi=Ge;iiSr)}}}function U(be,Ge,ur){var yr=be.options;return Ge.type!==e.UpToDateStatusType.OutOfDateWithPrepend||yr.force?!0:ur.fileNames.length===0||!!e.getConfigFileParsingDiagnostics(ur).length||!e.isIncrementalCompilation(ur.options)}function j(be,Ge,ur){if(!!be.projectPendingBuild.size&&!le(Ge)){if(be.currentInvalidatedProject)return e.arrayIsEqualTo(be.currentInvalidatedProject.buildOrder,Ge)?be.currentInvalidatedProject:void 0;for(var yr=be.options,Ir=be.projectPendingBuild,wr=0;wrwr&&(Ir=pe,wr=or)}}if(!Ge.fileNames.length&&!e.canJsonReportNoInputFiles(Ge.raw))return{type:e.UpToDateStatusType.ContainerOnly};var qr=e.getAllProjectOutputs(Ge,!Ur.useCaseSensitiveFileNames()),si="(none)",Di=C,wi="(none)",Xi=a,et,Gi=a,Wt=!1;if(!yr)for(var Zt=0,_r=qr;Zt<_r.length;Zt++){var pi=_r[Zt];if(!Ur.fileExists(pi)){et=pi;break}var ae=e.getModifiedTime(Ur,pi);if(aeXi&&(Xi=ae,wi=pi),e.isDeclarationFileName(pi)){var Xe=e.getModifiedTime(Ur,pi);Gi=X(Gi,Xe)}}var Jr=!1,ti=!1,Ze;if(Ge.projectReferences){be.projectStatus.set(ur,{type:e.UpToDateStatusType.ComputingUpstream});for(var Sr=0,zr=Ge.projectReferences;Sr=0}C.hasArgument=R;function E(le){var N=e.sys.args.indexOf(le);return N>=0&&Nm)return 2;if(K.charCodeAt(0)===46)return 3;if(K.charCodeAt(0)===95)return 4;if(b){var se=/^@([^/]+)\/([^/]+)$/.exec(K);if(se){var J=oe(se[1],!1);if(J!==0)return{name:se[1],isScopeName:!0,result:J};var ie=oe(se[2],!1);return ie!==0?{name:se[2],isScopeName:!1,result:ie}:0}}return encodeURIComponent(K)!==K?5:0}function f(K,b){return typeof K=="object"?T(b,K.result,K.name,K.isScopeName):T(b,K,b,!1)}C.renderPackageNameValidationFailure=f;function T(K,b,se,J){var ie=J?"Scope":"Package";switch(b){case 1:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' cannot be empty");case 2:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' should be less than ").concat(m," characters");case 3:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' cannot start with '.'");case 4:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' cannot start with '_'");case 5:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' contains non URI safe characters");case 0:return e.Debug.fail();default:throw e.Debug.assertNever(b)}}})(a=e.JsTyping||(e.JsTyping={}))})(ke||(ke={}));var ke;(function(e){var a;(function(O){var ve=function(){function he(F){this.text=F}return he.prototype.getText=function(F,x){return F===0&&x===this.text.length?this.text:this.text.substring(F,x)},he.prototype.getLength=function(){return this.text.length},he.prototype.getChangeRange=function(){},he}();function ee(he){return new ve(he)}O.fromString=ee})(a=e.ScriptSnapshot||(e.ScriptSnapshot={}));var C;(function(O){O[O.Dependencies=1]="Dependencies",O[O.DevDependencies=2]="DevDependencies",O[O.PeerDependencies=4]="PeerDependencies",O[O.OptionalDependencies=8]="OptionalDependencies",O[O.All=15]="All"})(C=e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={}));var I;(function(O){O[O.Off=0]="Off",O[O.On=1]="On",O[O.Auto=2]="Auto"})(I=e.PackageJsonAutoImportPreference||(e.PackageJsonAutoImportPreference={}));var R;(function(O){O[O.Semantic=0]="Semantic",O[O.PartialSemantic=1]="PartialSemantic",O[O.Syntactic=2]="Syntactic"})(R=e.LanguageServiceMode||(e.LanguageServiceMode={})),e.emptyOptions={};var E;(function(O){O.Original="original",O.TwentyTwenty="2020"})(E=e.SemanticClassificationFormat||(e.SemanticClassificationFormat={}));var X;(function(O){O[O.Invoked=1]="Invoked",O[O.TriggerCharacter=2]="TriggerCharacter",O[O.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions"})(X=e.CompletionTriggerKind||(e.CompletionTriggerKind={}));var le;(function(O){O.Type="Type",O.Parameter="Parameter",O.Enum="Enum"})(le=e.InlayHintKind||(e.InlayHintKind={}));var N;(function(O){O.none="none",O.definition="definition",O.reference="reference",O.writtenReference="writtenReference"})(N=e.HighlightSpanKind||(e.HighlightSpanKind={}));var p;(function(O){O[O.None=0]="None",O[O.Block=1]="Block",O[O.Smart=2]="Smart"})(p=e.IndentStyle||(e.IndentStyle={}));var m;(function(O){O.Ignore="ignore",O.Insert="insert",O.Remove="remove"})(m=e.SemicolonPreference||(e.SemicolonPreference={}));function G(O){return{indentSize:4,tabSize:4,newLineCharacter:O||` +`,convertTabsToSpaces:!0,indentStyle:p.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:m.Ignore,trimTrailingWhitespace:!0}}e.getDefaultFormatCodeSettings=G,e.testFormatSettings=G(` +`);var oe;(function(O){O[O.aliasName=0]="aliasName",O[O.className=1]="className",O[O.enumName=2]="enumName",O[O.fieldName=3]="fieldName",O[O.interfaceName=4]="interfaceName",O[O.keyword=5]="keyword",O[O.lineBreak=6]="lineBreak",O[O.numericLiteral=7]="numericLiteral",O[O.stringLiteral=8]="stringLiteral",O[O.localName=9]="localName",O[O.methodName=10]="methodName",O[O.moduleName=11]="moduleName",O[O.operator=12]="operator",O[O.parameterName=13]="parameterName",O[O.propertyName=14]="propertyName",O[O.punctuation=15]="punctuation",O[O.space=16]="space",O[O.text=17]="text",O[O.typeParameterName=18]="typeParameterName",O[O.enumMemberName=19]="enumMemberName",O[O.functionName=20]="functionName",O[O.regularExpressionLiteral=21]="regularExpressionLiteral",O[O.link=22]="link",O[O.linkName=23]="linkName",O[O.linkText=24]="linkText"})(oe=e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={}));var f;(function(O){O[O.None=0]="None",O[O.MayIncludeAutoImports=1]="MayIncludeAutoImports",O[O.IsImportStatementCompletion=2]="IsImportStatementCompletion",O[O.IsContinuation=4]="IsContinuation",O[O.ResolvedModuleSpecifiers=8]="ResolvedModuleSpecifiers",O[O.ResolvedModuleSpecifiersBeyondLimit=16]="ResolvedModuleSpecifiersBeyondLimit",O[O.MayIncludeMethodSnippets=32]="MayIncludeMethodSnippets"})(f=e.CompletionInfoFlags||(e.CompletionInfoFlags={}));var T;(function(O){O.Comment="comment",O.Region="region",O.Code="code",O.Imports="imports"})(T=e.OutliningSpanKind||(e.OutliningSpanKind={}));var K;(function(O){O[O.JavaScript=0]="JavaScript",O[O.SourceMap=1]="SourceMap",O[O.Declaration=2]="Declaration"})(K=e.OutputFileType||(e.OutputFileType={}));var b;(function(O){O[O.None=0]="None",O[O.InMultiLineCommentTrivia=1]="InMultiLineCommentTrivia",O[O.InSingleQuoteStringLiteral=2]="InSingleQuoteStringLiteral",O[O.InDoubleQuoteStringLiteral=3]="InDoubleQuoteStringLiteral",O[O.InTemplateHeadOrNoSubstitutionTemplate=4]="InTemplateHeadOrNoSubstitutionTemplate",O[O.InTemplateMiddleOrTail=5]="InTemplateMiddleOrTail",O[O.InTemplateSubstitutionPosition=6]="InTemplateSubstitutionPosition"})(b=e.EndOfLineState||(e.EndOfLineState={}));var se;(function(O){O[O.Punctuation=0]="Punctuation",O[O.Keyword=1]="Keyword",O[O.Operator=2]="Operator",O[O.Comment=3]="Comment",O[O.Whitespace=4]="Whitespace",O[O.Identifier=5]="Identifier",O[O.NumberLiteral=6]="NumberLiteral",O[O.BigIntLiteral=7]="BigIntLiteral",O[O.StringLiteral=8]="StringLiteral",O[O.RegExpLiteral=9]="RegExpLiteral"})(se=e.TokenClass||(e.TokenClass={}));var J;(function(O){O.unknown="",O.warning="warning",O.keyword="keyword",O.scriptElement="script",O.moduleElement="module",O.classElement="class",O.localClassElement="local class",O.interfaceElement="interface",O.typeElement="type",O.enumElement="enum",O.enumMemberElement="enum member",O.variableElement="var",O.localVariableElement="local var",O.functionElement="function",O.localFunctionElement="local function",O.memberFunctionElement="method",O.memberGetAccessorElement="getter",O.memberSetAccessorElement="setter",O.memberVariableElement="property",O.constructorImplementationElement="constructor",O.callSignatureElement="call",O.indexSignatureElement="index",O.constructSignatureElement="construct",O.parameterElement="parameter",O.typeParameterElement="type parameter",O.primitiveType="primitive type",O.label="label",O.alias="alias",O.constElement="const",O.letElement="let",O.directory="directory",O.externalModuleName="external module name",O.jsxAttribute="JSX attribute",O.string="string",O.link="link",O.linkName="link name",O.linkText="link text"})(J=e.ScriptElementKind||(e.ScriptElementKind={}));var ie;(function(O){O.none="",O.publicMemberModifier="public",O.privateMemberModifier="private",O.protectedMemberModifier="protected",O.exportedModifier="export",O.ambientModifier="declare",O.staticModifier="static",O.abstractModifier="abstract",O.optionalModifier="optional",O.deprecatedModifier="deprecated",O.dtsModifier=".d.ts",O.tsModifier=".ts",O.tsxModifier=".tsx",O.jsModifier=".js",O.jsxModifier=".jsx",O.jsonModifier=".json",O.dmtsModifier=".d.mts",O.mtsModifier=".mts",O.mjsModifier=".mjs",O.dctsModifier=".d.cts",O.ctsModifier=".cts",O.cjsModifier=".cjs"})(ie=e.ScriptElementKindModifier||(e.ScriptElementKindModifier={}));var B;(function(O){O.comment="comment",O.identifier="identifier",O.keyword="keyword",O.numericLiteral="number",O.bigintLiteral="bigint",O.operator="operator",O.stringLiteral="string",O.whiteSpace="whitespace",O.text="text",O.punctuation="punctuation",O.className="class name",O.enumName="enum name",O.interfaceName="interface name",O.moduleName="module name",O.typeParameterName="type parameter name",O.typeAliasName="type alias name",O.parameterName="parameter name",O.docCommentTagName="doc comment tag name",O.jsxOpenTagName="jsx open tag name",O.jsxCloseTagName="jsx close tag name",O.jsxSelfClosingTagName="jsx self closing tag name",O.jsxAttribute="jsx attribute",O.jsxText="jsx text",O.jsxAttributeStringLiteralValue="jsx attribute string literal value"})(B=e.ClassificationTypeNames||(e.ClassificationTypeNames={}));var q;(function(O){O[O.comment=1]="comment",O[O.identifier=2]="identifier",O[O.keyword=3]="keyword",O[O.numericLiteral=4]="numericLiteral",O[O.operator=5]="operator",O[O.stringLiteral=6]="stringLiteral",O[O.regularExpressionLiteral=7]="regularExpressionLiteral",O[O.whiteSpace=8]="whiteSpace",O[O.text=9]="text",O[O.punctuation=10]="punctuation",O[O.className=11]="className",O[O.enumName=12]="enumName",O[O.interfaceName=13]="interfaceName",O[O.moduleName=14]="moduleName",O[O.typeParameterName=15]="typeParameterName",O[O.typeAliasName=16]="typeAliasName",O[O.parameterName=17]="parameterName",O[O.docCommentTagName=18]="docCommentTagName",O[O.jsxOpenTagName=19]="jsxOpenTagName",O[O.jsxCloseTagName=20]="jsxCloseTagName",O[O.jsxSelfClosingTagName=21]="jsxSelfClosingTagName",O[O.jsxAttribute=22]="jsxAttribute",O[O.jsxText=23]="jsxText",O[O.jsxAttributeStringLiteralValue=24]="jsxAttributeStringLiteralValue",O[O.bigintLiteral=25]="bigintLiteral"})(q=e.ClassificationType||(e.ClassificationType={}))})(ke||(ke={}));var ke;(function(e){e.scanner=e.createScanner(99,!0);var a;(function(Se){Se[Se.None=0]="None",Se[Se.Value=1]="Value",Se[Se.Type=2]="Type",Se[Se.Namespace=4]="Namespace",Se[Se.All=7]="All"})(a=e.SemanticMeaning||(e.SemanticMeaning={}));function C(Se){switch(Se.kind){case 254:return e.isInJSFile(Se)&&e.getJSDocEnumTag(Se)?7:1;case 164:case 203:case 167:case 166:case 296:case 297:case 169:case 168:case 171:case 172:case 173:case 256:case 213:case 214:case 292:case 285:return 1;case 163:case 258:case 259:case 182:return 2;case 345:return Se.name===void 0?3:2;case 299:case 257:return 3;case 261:return e.isAmbientModule(Se)||e.getModuleInstanceState(Se)===1?5:4;case 260:case 269:case 270:case 265:case 266:case 271:case 272:return 7;case 305:return 5}return 7}e.getMeaningFromDeclaration=C;function I(Se){Se=Br(Se);var hr=Se.parent;return Se.kind===305?1:e.isExportAssignment(hr)||e.isExportSpecifier(hr)||e.isExternalModuleReference(hr)||e.isImportSpecifier(hr)||e.isImportClause(hr)||e.isImportEqualsDeclaration(hr)&&Se===hr.name?7:E(Se)?R(Se):e.isDeclarationName(Se)?C(hr):e.isEntityName(Se)&&e.findAncestor(Se,e.or(e.isJSDocNameReference,e.isJSDocLinkLike,e.isJSDocMemberName))?7:p(Se)?2:X(Se)?4:e.isTypeParameterDeclaration(hr)?(e.Debug.assert(e.isJSDocTemplateTag(hr.parent)),2):e.isLiteralTypeNode(hr)?3:1}e.getMeaningFromLocation=I;function R(Se){var hr=Se.kind===161?Se:e.isQualifiedName(Se.parent)&&Se.parent.right===Se?Se.parent:void 0;return hr&&hr.parent.kind===265?7:4}function E(Se){for(;Se.parent.kind===161;)Se=Se.parent;return e.isInternalModuleImportEqualsDeclaration(Se.parent)&&Se.parent.moduleReference===Se}e.isInRightSideOfInternalImportEqualsDeclaration=E;function X(Se){return le(Se)||N(Se)}function le(Se){var hr=Se,Or=!0;if(hr.parent.kind===161){for(;hr.parent&&hr.parent.kind===161;)hr=hr.parent;Or=hr.right===Se}return hr.parent.kind===178&&!Or}function N(Se){var hr=Se,Or=!0;if(hr.parent.kind===206){for(;hr.parent&&hr.parent.kind===206;)hr=hr.parent;Or=hr.name===Se}if(!Or&&hr.parent.kind===228&&hr.parent.parent.kind===291){var ki=hr.parent.parent.parent;return ki.kind===257&&hr.parent.parent.token===117||ki.kind===258&&hr.parent.parent.token===94}return!1}function p(Se){switch(e.isRightSideOfQualifiedNameOrPropertyAccess(Se)&&(Se=Se.parent),Se.kind){case 108:return!e.isExpressionNode(Se);case 192:return!0}switch(Se.parent.kind){case 178:return!0;case 200:return!Se.parent.isTypeOf;case 228:return e.isPartOfTypeNode(Se.parent)}return!1}function m(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallExpression,b,hr,Or)}e.isCallExpressionTarget=m;function G(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isNewExpression,b,hr,Or)}e.isNewExpressionTarget=G;function oe(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallOrNewExpression,b,hr,Or)}e.isCallOrNewExpressionTarget=oe;function f(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isTaggedTemplateExpression,se,hr,Or)}e.isTaggedTemplateTag=f;function T(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isDecorator,b,hr,Or)}e.isDecoratorTarget=T;function K(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isJsxOpeningLikeElement,J,hr,Or)}e.isJsxOpeningLikeElementTagName=K;function b(Se){return Se.expression}function se(Se){return Se.tag}function J(Se){return Se.tagName}function ie(Se,hr,Or,ki,dt){var la=ki?q(Se):B(Se);return dt&&(la=e.skipOuterExpressions(la)),!!la&&!!la.parent&&hr(la.parent)&&Or(la.parent)===la}function B(Se){return $(Se)?Se.parent:Se}e.climbPastPropertyAccess=B;function q(Se){return $(Se)||A(Se)?Se.parent:Se}e.climbPastPropertyOrElementAccess=q;function O(Se,hr){for(;Se;){if(Se.kind===250&&Se.label.escapedText===hr)return Se.label;Se=Se.parent}}e.getTargetLabel=O;function ve(Se,hr){return e.isPropertyAccessExpression(Se.expression)?Se.expression.name.text===hr:!1}e.hasPropertyAccessExpressionWithName=ve;function ee(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isBreakOrContinueStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isJumpStatementTarget=ee;function he(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isLabeledStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isLabelOfLabeledStatement=he;function F(Se){return he(Se)||ee(Se)}e.isLabelName=F;function x(Se){var hr;return((hr=e.tryCast(Se.parent,e.isJSDocTag))===null||hr===void 0?void 0:hr.tagName)===Se}e.isTagName=x;function Q(Se){var hr;return((hr=e.tryCast(Se.parent,e.isQualifiedName))===null||hr===void 0?void 0:hr.right)===Se}e.isRightSideOfQualifiedName=Q;function $(Se){var hr;return((hr=e.tryCast(Se.parent,e.isPropertyAccessExpression))===null||hr===void 0?void 0:hr.name)===Se}e.isRightSideOfPropertyAccess=$;function A(Se){var hr;return((hr=e.tryCast(Se.parent,e.isElementAccessExpression))===null||hr===void 0?void 0:hr.argumentExpression)===Se}e.isArgumentExpressionOfElementAccess=A;function y(Se){var hr;return((hr=e.tryCast(Se.parent,e.isModuleDeclaration))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfModuleDeclaration=y;function V(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isFunctionLike))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfFunctionDeclaration=V;function L(Se){switch(Se.parent.kind){case 167:case 166:case 296:case 299:case 169:case 168:case 172:case 173:case 261:return e.getNameOfDeclaration(Se.parent)===Se;case 207:return Se.parent.argumentExpression===Se;case 162:return!0;case 196:return Se.parent.parent.kind===194;default:return!1}}e.isLiteralNameOfPropertyDeclarationOrIndexAccess=L;function P(Se){return e.isExternalModuleImportEqualsDeclaration(Se.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(Se.parent.parent)===Se}e.isExpressionOfExternalModuleImportEqualsDeclaration=P;function k(Se){for(e.isJSDocTypeAlias(Se)&&(Se=Se.parent.parent);;){if(Se=Se.parent,!Se)return;switch(Se.kind){case 305:case 169:case 168:case 256:case 213:case 172:case 173:case 257:case 258:case 260:case 261:return Se}}}e.getContainerNode=k;function Y(Se){switch(Se.kind){case 305:return e.isExternalModule(Se)?"module":"script";case 261:return"module";case 257:case 226:return"class";case 258:return"interface";case 259:case 338:case 345:return"type";case 260:return"enum";case 254:return Oa(Se);case 203:return Oa(e.getRootDeclaration(Se));case 214:case 256:case 213:return"function";case 172:return"getter";case 173:return"setter";case 169:case 168:return"method";case 296:var hr=Se.initializer;return e.isFunctionLike(hr)?"method":"property";case 167:case 166:case 297:case 298:return"property";case 176:return"index";case 175:return"construct";case 174:return"call";case 171:case 170:return"constructor";case 163:return"type parameter";case 299:return"enum member";case 164:return e.hasSyntacticModifier(Se,16476)?"property":"parameter";case 265:case 270:case 275:case 268:case 274:return"alias";case 221:var Or=e.getAssignmentDeclarationKind(Se),ki=Se.right;switch(Or){case 7:case 8:case 9:case 0:return"";case 1:case 2:var dt=Y(ki);return dt===""?"const":dt;case 3:return e.isFunctionExpression(ki)?"method":"property";case 4:return"property";case 5:return e.isFunctionExpression(ki)?"method":"property";case 6:return"local class";default:return e.assertType(Or),""}case 79:return e.isImportClause(Se.parent)?"alias":"";case 271:var la=Y(Se.expression);return la===""?"const":la;default:return""}function Oa(On){return e.isVarConst(On)?"const":e.isLet(On)?"let":"var"}}e.getNodeKind=Y;function U(Se){switch(Se.kind){case 108:return!0;case 79:return e.identifierIsThisKeyword(Se)&&Se.parent.kind===164;default:return!1}}e.isThis=U;var j=/^\/\/\/\s*=Or.end}e.startEndContainsRange=fe;function g(Se,hr,Or){return Se.pos<=hr&&Se.end>=Or}e.rangeContainsStartEnd=g;function ne(Se,hr,Or){return We(Se.pos,Se.end,hr,Or)}e.rangeOverlapsWithStartEnd=ne;function ue(Se,hr,Or,ki){return We(Se.getStart(hr),Se.end,Or,ki)}e.nodeOverlapsWithStartEnd=ue;function We(Se,hr,Or,ki){var dt=Math.max(Se,Or),la=Math.min(hr,ki);return dthr?1:jo(po[$n])?po[$n-1]&&jo(po[$n-1])?1:0:ki&&Zo===hr&&po[$n-1]&&po[$n-1].getEnd()===hr&&jo(po[$n-1])?1:-1});return Oa?{value:Oa}:Gn>=0&&po[Gn]?(la=po[Gn],"continue-outer"):{value:la}};e:for(;;){var No=On();if(typeof No=="object")return No.value;switch(No){case"continue-outer":continue e}}function jo(po){var Gn=Or?po.getFullStart():po.getStart(Se,!0);if(Gn>hr)return!1;var $n=po.getEnd();if(hr<$n||hr===$n&&(po.kind===1||dt))return!0;if(ki&&$n===hr){var Ho=Ir(hr,Se,po);if(Ho&&ki(Ho))return Oa=Ho,!0}return!1}}function Ge(Se,hr){for(var Or=lr(Se,hr);or(Or);){var ki=yr(Or,Or.parent,Se);if(!ki)return;Or=ki}return Or}e.findFirstNonJsxWhitespaceToken=Ge;function ur(Se,hr){var Or=lr(Se,hr);return e.isToken(Or)&&hr>Or.getStart(Se)&&hrSe.end||la.pos===Se.end;return Oa&&pi(la,Or)?ki(la):void 0})}}e.findNextToken=yr;function Ir(Se,hr,Or,ki){var dt=la(Or||hr);return e.Debug.assert(!(dt&&or(dt))),dt;function la(Oa){if(wr(Oa)&&Oa.kind!==1)return Oa;var On=Oa.getChildren(hr),No=e.binarySearchKey(On,Se,function(Zo,Es){return Es},function(Zo,Es){return Se=On[Zo-1].end?0:1:-1});if(No>=0&&On[No]){var jo=On[No];if(Se=Se||!pi(jo,hr)||or(jo);if(Gn){var $n=ii(On,No,hr,Oa.kind);return $n&&Ur($n,hr)}else return la(jo)}}e.Debug.assert(Or!==void 0||Oa.kind===305||Oa.kind===1||e.isJSDocCommentContainingNode(Oa));var Ho=ii(On,On.length,hr,Oa.kind);return Ho&&Ur(Ho,hr)}}e.findPrecedingToken=Ir;function wr(Se){return e.isToken(Se)&&!or(Se)}function Ur(Se,hr){if(wr(Se))return Se;var Or=Se.getChildren(hr);if(Or.length===0)return Se;var ki=ii(Or,Or.length,hr,Se.kind);return ki&&Ur(ki,hr)}function ii(Se,hr,Or,ki){for(var dt=hr-1;dt>=0;dt--){var la=Se[dt];if(or(la))dt===0&&(ki===11||ki===279)&&e.Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");else if(pi(Se[dt],Or))return Se[dt]}}function mi(Se,hr,Or){if(Or===void 0&&(Or=Ir(hr,Se)),Or&&e.isStringTextContainingNode(Or)){var ki=Or.getStart(Se),dt=Or.getEnd();if(kiOr.getStart(Se)}e.isInTemplateString=qr;function si(Se,hr){var Or=lr(Se,hr);return!!(e.isJsxText(Or)||Or.kind===18&&e.isJsxExpression(Or.parent)&&e.isJsxElement(Or.parent.parent)||Or.kind===29&&e.isJsxOpeningLikeElement(Or.parent)&&e.isJsxElement(Or.parent.parent))}e.isInJSXText=si;function Di(Se,hr){function Or(ki){for(;ki;)if(ki.kind>=279&&ki.kind<=288||ki.kind===11||ki.kind===29||ki.kind===31||ki.kind===79||ki.kind===19||ki.kind===18||ki.kind===43)ki=ki.parent;else if(ki.kind===278){if(hr>ki.getStart(Se))return!0;ki=ki.parent}else return!1;return!1}return Or(lr(Se,hr))}e.isInsideJsxElement=Di;function wi(Se,hr,Or){var ki=e.tokenToString(Se.kind),dt=e.tokenToString(hr),la=Se.getFullStart(),Oa=Or.text.lastIndexOf(dt,la);if(Oa!==-1){if(Or.text.lastIndexOf(ki,la-1)=hr})}e.getPossibleGenericSignatures=Gi;function Wt(Se,hr){if(hr.text.lastIndexOf("<",Se?Se.pos:hr.text.length)!==-1)for(var Or=Se,ki=0,dt=0;Or;){switch(Or.kind){case 29:if(Or=Ir(Or.getFullStart(),hr),Or&&Or.kind===28&&(Or=Ir(Or.getFullStart(),hr)),!Or||!e.isIdentifier(Or))return;if(!ki)return e.isDeclarationName(Or)?void 0:{called:Or,nTypeArguments:dt};ki--;break;case 49:ki=3;break;case 48:ki=2;break;case 31:ki++;break;case 19:if(Or=wi(Or,18,hr),!Or)return;break;case 21:if(Or=wi(Or,20,hr),!Or)return;break;case 23:if(Or=wi(Or,22,hr),!Or)return;break;case 27:dt++;break;case 38:case 79:case 10:case 8:case 9:case 110:case 95:case 112:case 94:case 140:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(Or))break;return}Or=Ir(Or.getFullStart(),hr)}}e.getPossibleTypeArgumentsInfo=Wt;function Zt(Se,hr,Or){return e.formatting.getRangeOfEnclosingComment(Se,hr,void 0,Or)}e.isInComment=Zt;function _r(Se,hr){var Or=lr(Se,hr);return!!e.findAncestor(Or,e.isJSDoc)}e.hasDocComment=_r;function pi(Se,hr){return Se.kind===1?!!Se.jsDoc:Se.getWidth(hr)!==0}function ae(Se,hr){hr===void 0&&(hr=0);var Or=[],ki=e.isDeclaration(Se)?e.getCombinedNodeFlagsAlwaysIncludeJSDoc(Se)&~hr:0;return ki&8&&Or.push("private"),ki&16&&Or.push("protected"),ki&4&&Or.push("public"),(ki&32||e.isClassStaticBlockDeclaration(Se))&&Or.push("static"),ki&128&&Or.push("abstract"),ki&1&&Or.push("export"),ki&8192&&Or.push("deprecated"),Se.flags&16777216&&Or.push("declare"),Se.kind===271&&Or.push("export"),Or.length>0?Or.join(","):""}e.getNodeModifiers=ae;function Xe(Se){if(Se.kind===178||Se.kind===208)return Se.typeArguments;if(e.isFunctionLike(Se)||Se.kind===257||Se.kind===258)return Se.typeParameters}e.getTypeArgumentOrTypeParameterList=Xe;function Jr(Se){return Se===2||Se===3}e.isComment=Jr;function ti(Se){return!!(Se===10||Se===13||e.isTemplateLiteralKind(Se))}e.isStringOrRegularExpressionOrTemplateLiteral=ti;function Ze(Se){return 18<=Se&&Se<=78}e.isPunctuation=Ze;function Sr(Se,hr,Or){return e.isTemplateLiteralKind(Se.kind)&&Se.getStart(Or)=2||!!Se.noEmit}e.compilerOptionsIndicateEsModules=xt;function ut(Se,hr){return{fileExists:function(Or){return Se.fileExists(Or)},getCurrentDirectory:function(){return hr.getCurrentDirectory()},readFile:e.maybeBind(hr,hr.readFile),useCaseSensitiveFileNames:e.maybeBind(hr,hr.useCaseSensitiveFileNames),getSymlinkCache:e.maybeBind(hr,hr.getSymlinkCache)||Se.getSymlinkCache,getModuleSpecifierCache:e.maybeBind(hr,hr.getModuleSpecifierCache),getPackageJsonInfoCache:function(){var Or;return(Or=Se.getModuleResolutionCache())===null||Or===void 0?void 0:Or.getPackageJsonInfoCache()},getGlobalTypingsCacheLocation:e.maybeBind(hr,hr.getGlobalTypingsCacheLocation),redirectTargetsMap:Se.redirectTargetsMap,getProjectReferenceRedirect:function(Or){return Se.getProjectReferenceRedirect(Or)},isSourceOfProjectReferenceRedirect:function(Or){return Se.isSourceOfProjectReferenceRedirect(Or)},getNearestAncestorDirectoryWithPackageJson:e.maybeBind(hr,hr.getNearestAncestorDirectoryWithPackageJson),getFileIncludeReasons:function(){return Se.getFileIncludeReasons()}}}e.createModuleSpecifierResolutionHost=ut;function Dt(Se,hr){return Ke(Ke({},ut(Se,hr)),{getCommonSourceDirectory:function(){return Se.getCommonSourceDirectory()}})}e.getModuleSpecifierResolverHost=Dt;function Rt(Se){return Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionRespectsExports=Rt;function Ii(Se){return Se===e.ModuleResolutionKind.NodeJs||Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionUsesNodeModules=Ii;function Ki(Se,hr,Or,ki){return Se||hr&&hr.length?Fi(Se,hr,Or,ki):void 0}e.makeImportIfNecessary=Ki;function Fi(Se,hr,Or,ki,dt){return e.factory.createImportDeclaration(void 0,void 0,Se||hr?e.factory.createImportClause(!!dt,Se,hr&&hr.length?e.factory.createNamedImports(hr):void 0):void 0,typeof Or=="string"?ui(Or,ki):Or,void 0)}e.makeImport=Fi;function ui(Se,hr){return e.factory.createStringLiteral(Se,hr===0)}e.makeStringLiteral=ui;var Bt;(function(Se){Se[Se.Single=0]="Single",Se[Se.Double=1]="Double"})(Bt=e.QuotePreference||(e.QuotePreference={}));function wt(Se,hr){return e.isStringDoubleQuoted(Se,hr)?1:0}e.quotePreferenceFromString=wt;function na(Se,hr){if(hr.quotePreference&&hr.quotePreference!=="auto")return hr.quotePreference==="single"?0:1;var Or=Se.imports&&e.find(Se.imports,function(ki){return e.isStringLiteral(ki)&&!e.nodeIsSynthesized(ki.parent)});return Or?wt(Or,Se):1}e.getQuotePreference=na;function Ai(Se){switch(Se){case 0:return"'";case 1:return'"';default:return e.Debug.assertNever(Se)}}e.getQuoteFromPreference=Ai;function Oi(Se){var hr=ji(Se);return hr===void 0?void 0:e.unescapeLeadingUnderscores(hr)}e.symbolNameNoDefault=Oi;function ji(Se){return Se.escapedName!=="default"?Se.escapedName:e.firstDefined(Se.declarations,function(hr){var Or=e.getNameOfDeclaration(hr);return Or&&Or.kind===79?Or.escapedText:void 0})}e.symbolEscapedNameNoDefault=ji;function Vi(Se){return e.isStringLiteralLike(Se)&&(e.isExternalModuleReference(Se.parent)||e.isImportDeclaration(Se.parent)||e.isRequireCall(Se.parent,!1)&&Se.parent.arguments[0]===Se||e.isImportCall(Se.parent)&&Se.parent.arguments[0]===Se)}e.isModuleSpecifierLike=Vi;function at(Se){return e.isBindingElement(Se)&&e.isObjectBindingPattern(Se.parent)&&e.isIdentifier(Se.name)&&!Se.propertyName}e.isObjectBindingElementWithoutPropertyName=at;function At(Se,hr){var Or=Se.getTypeAtLocation(hr.parent);return Or&&Se.getPropertyOfType(Or,hr.name.text)}e.getPropertySymbolFromBindingElement=At;function ba(Se,hr,Or){if(!!Se)for(;Se.parent;){if(e.isSourceFile(Se.parent)||!$a(Or,Se.parent,hr))return Se;Se=Se.parent}}e.getParentNodeInSpan=ba;function $a(Se,hr,Or){return e.textSpanContainsPosition(Se,hr.getStart(Or))&&hr.getEnd()<=e.textSpanEnd(Se)}function Qa(Se,hr){return Se.modifiers&&e.find(Se.modifiers,function(Or){return Or.kind===hr})}e.findModifier=Qa;function ai(Se,hr,Or,ki){var dt=e.isArray(Or)?Or[0]:Or,la=dt.kind===237?e.isRequireVariableStatement:e.isAnyImportSyntax,Oa=e.filter(hr.statements,la),On=e.isArray(Or)?e.stableSort(Or,e.OrganizeImports.compareImportsOrRequireStatements):[Or];if(!Oa.length)Se.insertNodesAtTopOfFile(hr,On,ki);else if(Oa&&e.OrganizeImports.importsAreSorted(Oa))for(var No=0,jo=On;NoSe&&Gn&&Gn!=="..."&&(e.isWhiteSpaceLike(Gn.charCodeAt(Gn.length-1))||hr.push(Pn(" ",e.SymbolDisplayPartKind.space)),hr.push(Pn("...",e.SymbolDisplayPartKind.punctuation))),hr},writeKeyword:function(Gn){return On(Gn,e.SymbolDisplayPartKind.keyword)},writeOperator:function(Gn){return On(Gn,e.SymbolDisplayPartKind.operator)},writePunctuation:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(Gn){return On(Gn,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(Gn){return On(Gn,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(Gn){return On(Gn,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:No,writeLine:jo,write:la,writeComment:la,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 ki},increaseIndent:function(){ki++},decreaseIndent:function(){ki--},clear:po,trackSymbol:function(){return!1},reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function Oa(){if(!(dt>Se)&&Or){var Gn=e.getIndentString(ki);Gn&&(dt+=Gn.length,hr.push(Pn(Gn,e.SymbolDisplayPartKind.space))),Or=!1}}function On(Gn,$n){dt>Se||(Oa(),dt+=Gn.length,hr.push(Pn(Gn,$n)))}function No(Gn,$n){dt>Se||(Oa(),dt+=Gn.length,hr.push(Kn(Gn,$n)))}function jo(){dt>Se||(dt+=1,hr.push(Bn()),Or=!0)}function po(){hr=[],Or=!0,ki=0,dt=0}}function Kn(Se,hr){return Pn(Se,Or(hr));function Or(ki){var dt=ki.flags;return dt&3?Bi(ki)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName:dt&4||dt&32768||dt&65536?e.SymbolDisplayPartKind.propertyName:dt&8?e.SymbolDisplayPartKind.enumMemberName:dt&16?e.SymbolDisplayPartKind.functionName:dt&32?e.SymbolDisplayPartKind.className:dt&64?e.SymbolDisplayPartKind.interfaceName:dt&384?e.SymbolDisplayPartKind.enumName:dt&1536?e.SymbolDisplayPartKind.moduleName:dt&8192?e.SymbolDisplayPartKind.methodName:dt&262144?e.SymbolDisplayPartKind.typeParameterName:dt&524288||dt&2097152?e.SymbolDisplayPartKind.aliasName:e.SymbolDisplayPartKind.text}}e.symbolPart=Kn;function Pn(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[hr]}}e.displayPart=Pn;function eo(){return Pn(" ",e.SymbolDisplayPartKind.space)}e.spacePart=eo;function Rn(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.keyword)}e.keywordPart=Rn;function Da(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.punctuation)}e.punctuationPart=Da;function bo(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.operator)}e.operatorPart=bo;function Ro(Se){return Pn(Se,e.SymbolDisplayPartKind.parameterName)}e.parameterNamePart=Ro;function En(Se){return Pn(Se,e.SymbolDisplayPartKind.propertyName)}e.propertyNamePart=En;function zn(Se){var hr=e.stringToToken(Se);return hr===void 0?to(Se):Rn(hr)}e.textOrKeywordPart=zn;function to(Se){return Pn(Se,e.SymbolDisplayPartKind.text)}e.textPart=to;function Co(Se){return Pn(Se,e.SymbolDisplayPartKind.aliasName)}e.typeAliasNamePart=Co;function Ko(Se){return Pn(Se,e.SymbolDisplayPartKind.typeParameterName)}e.typeParameterNamePart=Ko;function Oo(Se){return Pn(Se,e.SymbolDisplayPartKind.linkText)}e.linkTextPart=Oo;function no(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[e.SymbolDisplayPartKind.linkName],target:{fileName:e.getSourceFileOfNode(hr).fileName,textSpan:Oe(hr)}}}e.linkNamePart=no;function $o(Se){return Pn(Se,e.SymbolDisplayPartKind.link)}e.linkPart=$o;function Pr(Se,hr){var Or,ki=e.isJSDocLink(Se)?"link":e.isJSDocLinkCode(Se)?"linkcode":"linkplain",dt=[$o("{@".concat(ki," "))];if(!Se.name)Se.text&&dt.push(Oo(Se.text));else{var la=hr==null?void 0:hr.getSymbolAtLocation(Se.name),Oa=St(Se.text),On=e.getTextOfNode(Se.name)+Se.text.slice(0,Oa),No=xi(Se.text.slice(Oa)),jo=(la==null?void 0:la.valueDeclaration)||((Or=la==null?void 0:la.declarations)===null||Or===void 0?void 0:Or[0]);jo?(dt.push(no(On,jo)),No&&dt.push(Oo(No))):dt.push(Oo(On+(Oa||No.indexOf("://")===0?"":" ")+No))}return dt.push($o("}")),dt}e.buildLinkParts=Pr;function xi(Se){var hr=0;if(Se.charCodeAt(hr++)===124){for(;hr"&&hr--,Or++,!hr)return Or;return 0}var pa=`\r +`;function dn(Se,hr){var Or;return(hr==null?void 0:hr.newLineCharacter)||((Or=Se.getNewLine)===null||Or===void 0?void 0:Or.call(Se))||pa}e.getNewLineOrDefaultFromHost=dn;function Bn(){return Pn(` +`,e.SymbolDisplayPartKind.lineBreak)}e.lineBreakPart=Bn;function Qe(Se){try{return Se(kn),kn.displayParts()}finally{kn.clear()}}e.mapToDisplayParts=Qe;function Gr(Se,hr,Or,ki){return ki===void 0&&(ki=0),Qe(function(dt){Se.writeType(hr,Or,ki|1024|16384,dt)})}e.typeToDisplayParts=Gr;function S(Se,hr,Or,ki,dt){return dt===void 0&&(dt=0),Qe(function(la){Se.writeSymbol(hr,Or,ki,dt|8,la)})}e.symbolToDisplayParts=S;function Ce(Se,hr,Or,ki){return ki===void 0&&(ki=0),ki|=25632,Qe(function(dt){Se.writeSignature(hr,Or,ki,void 0,dt)})}e.signatureToDisplayParts=Ce;function qe(Se,hr){var Or=hr.getSourceFile();return Qe(function(ki){var dt=e.createPrinter({removeComments:!0,omitTrailingSemicolon:!0});dt.writeNode(4,Se,Or,ki)})}e.nodeToDisplayParts=qe;function br(Se){return!!Se.parent&&e.isImportOrExportSpecifier(Se.parent)&&Se.parent.propertyName===Se}e.isImportOrExportSpecifierName=br;function Zr(Se,hr){return e.ensureScriptKind(Se,hr.getScriptKind&&hr.getScriptKind(Se))}e.getScriptKind=Zr;function Si(Se,hr){for(var Or=Se;Qi(Or)||Pi(Or)&&Or.target;)Pi(Or)&&Or.target?Or=Or.target:Or=e.skipAlias(Or,hr);return Or}e.getSymbolTarget=Si;function Pi(Se){return(Se.flags&33554432)!==0}function Qi(Se){return(Se.flags&2097152)!==0}function Ct(Se,hr){return e.getSymbolId(e.skipAlias(Se,hr))}e.getUniqueSymbolId=Ct;function sa(Se,hr){for(;e.isWhiteSpaceLike(Se.charCodeAt(hr));)hr+=1;return hr}e.getFirstNonSpaceCharacterPosition=sa;function en(Se,hr){for(;hr>-1&&e.isWhiteSpaceSingleLine(Se.charCodeAt(hr));)hr-=1;return hr+1}e.getPrecedingNonSpaceCharacterPosition=en;function Wa(Se,hr){hr===void 0&&(hr=!0);var Or=Se&&mo(Se);return Or&&!hr&&ys(Or),Or}e.getSynthesizedDeepClone=Wa;function Wn(Se,hr,Or){var ki=Or(Se);return ki?e.setOriginalNode(ki,Se):ki=mo(Se,Or),ki&&!hr&&ys(ki),ki}e.getSynthesizedDeepCloneWithReplacements=Wn;function mo(Se,hr){var Or=hr?function(Oa){return Wn(Oa,!0,hr)}:Wa,ki=hr?function(Oa){return Oa&&Go(Oa,!0,hr)}:function(Oa){return Oa&&So(Oa)},dt=e.visitEachChild(Se,Or,e.nullTransformationContext,ki,Or);if(dt===Se){var la=e.isStringLiteral(Se)?e.setOriginalNode(e.factory.createStringLiteralFromNode(Se),Se):e.isNumericLiteral(Se)?e.setOriginalNode(e.factory.createNumericLiteral(Se.text,Se.numericLiteralFlags),Se):e.factory.cloneNode(Se);return e.setTextRange(la,Se)}return dt.parent=void 0,dt}function So(Se,hr){return hr===void 0&&(hr=!0),Se&&e.factory.createNodeArray(Se.map(function(Or){return Wa(Or,hr)}),Se.hasTrailingComma)}e.getSynthesizedDeepClones=So;function Go(Se,hr,Or){return e.factory.createNodeArray(Se.map(function(ki){return Wn(ki,hr,Or)}),Se.hasTrailingComma)}e.getSynthesizedDeepClonesWithReplacements=Go;function ys(Se){Pc(Se),Vc(Se)}e.suppressLeadingAndTrailingTrivia=ys;function Pc(Se){pc(Se,512,hs)}e.suppressLeadingTrivia=Pc;function Vc(Se){pc(Se,1024,e.getLastChild)}e.suppressTrailingTrivia=Vc;function Kc(Se,hr){var Or=Se.getSourceFile(),ki=Or.text;Xs(Se,ki)?Qs(Se,hr,Or):ds(Se,hr,Or),js(Se,hr,Or)}e.copyComments=Kc;function Xs(Se,hr){for(var Or=Se.getFullStart(),ki=Se.getStart(),dt=Or;dt=0),la}e.getRenameLocation=ps;function Qs(Se,hr,Or,ki,dt){e.forEachLeadingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyLeadingComments=Qs;function js(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.end,Ji(hr,Or,ki,dt,e.addSyntheticTrailingComment))}e.copyTrailingComments=js;function ds(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyTrailingAsLeadingComments=ds;function Ji(Se,hr,Or,ki,dt){return function(la,Oa,On,No){On===3?(la+=2,Oa-=2):la+=2,dt(Se,Or||On,hr.text.slice(la,Oa),ki!==void 0?ki:No)}}function ce(Se,hr){if(e.startsWith(Se,hr))return 0;var Or=Se.indexOf(" "+hr);return Or===-1&&(Or=Se.indexOf("."+hr)),Or===-1&&(Or=Se.indexOf('"'+hr)),Or===-1?-1:Or+1}function Rr(Se){return e.isBinaryExpression(Se)&&Se.operatorToken.kind===27||e.isObjectLiteralExpression(Se)||e.isAsExpression(Se)&&e.isObjectLiteralExpression(Se.expression)}e.needsParentheses=Rr;function yi(Se,hr){var Or=Se.parent;switch(Or.kind){case 209:return hr.getContextualType(Or);case 221:{var ki=Or,dt=ki.left,la=ki.operatorToken,Oa=ki.right;return je(la.kind)?hr.getTypeAtLocation(Se===Oa?dt:Oa):hr.getContextualType(Se)}case 289:return Or.expression===Se?Pt(Or,hr):void 0;default:return hr.getContextualType(Se)}}e.getContextualTypeFromParent=yi;function qi(Se,hr,Or){var ki=na(Se,hr),dt=JSON.stringify(Or);return ki===0?"'".concat(e.stripQuotes(dt).replace(/'/g,"\\'").replace(/\\"/g,'"'),"'"):dt}e.quote=qi;function je(Se){switch(Se){case 36:case 34:case 37:case 35:return!0;default:return!1}}e.isEqualityOperatorKind=je;function Hr(Se){switch(Se.kind){case 10:case 14:case 223:case 210:return!0;default:return!1}}e.isStringLiteralOrTemplate=Hr;function pt(Se){return!!Se.getStringIndexType()||!!Se.getNumberIndexType()}e.hasIndexSignature=pt;function Pt(Se,hr){return hr.getTypeAtLocation(Se.parent.parent.expression)}e.getSwitchedType=Pt,e.ANONYMOUS="anonymous function";function ga(Se,hr,Or,ki){var dt=Or.getTypeChecker(),la=!0,Oa=function(){return la=!1},On=dt.typeToTypeNode(Se,hr,1,{trackSymbol:function(No,jo,po){return la=la&&dt.isSymbolAccessible(No,jo,po,!1).accessibility===0,!la},reportInaccessibleThisError:Oa,reportPrivateInBaseOfClassExpression:Oa,reportInaccessibleUniqueSymbolError:Oa,moduleResolverHost:Dt(Or,ki)});return la?On:void 0}e.getTypeNodeIfAccessible=ga;function ua(Se){return Se===174||Se===175||Se===176||Se===166||Se===168}function Xn(Se){return Se===256||Se===171||Se===169||Se===172||Se===173}function jr(Se){return Se===261}function fo(Se){return Se===237||Se===238||Se===240||Se===245||Se===246||Se===247||Se===251||Se===253||Se===167||Se===259||Se===266||Se===265||Se===272||Se===264||Se===271}e.syntaxRequiresTrailingSemicolonOrASI=fo,e.syntaxMayBeASICandidate=e.or(ua,Xn,jr,fo);function xs(Se,hr){var Or=Se.getLastToken(hr);if(Or&&Or.kind===26)return!1;if(ua(Se.kind)){if(Or&&Or.kind===27)return!1}else if(jr(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isModuleBlock(ki))return!1}else if(Xn(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isFunctionBlock(ki))return!1}else if(!fo(Se.kind))return!1;if(Se.kind===240)return!0;var dt=e.findAncestor(Se,function(No){return!No.parent}),la=yr(Se,dt,hr);if(!la||la.kind===19)return!0;var Oa=hr.getLineAndCharacterOfPosition(Se.getEnd()).line,On=hr.getLineAndCharacterOfPosition(la.getStart(hr)).line;return Oa!==On}function Fo(Se,hr,Or){var ki=e.findAncestor(hr,function(dt){return dt.end!==Se?"quit":e.syntaxMayBeASICandidate(dt.kind)});return!!ki&&xs(ki,Or)}e.positionIsASICandidate=Fo;function ko(Se){var hr=0,Or=0,ki=5;return e.forEachChild(Se,function dt(la){if(fo(la.kind)){var Oa=la.getLastToken(Se);(Oa==null?void 0:Oa.kind)===26?hr++:Or++}else if(ua(la.kind)){var Oa=la.getLastToken(Se);if((Oa==null?void 0:Oa.kind)===26)hr++;else if(Oa&&Oa.kind!==27){var On=e.getLineAndCharacterOfPosition(Se,Oa.getStart(Se)).line,No=e.getLineAndCharacterOfPosition(Se,e.getSpanOfTokenAtPosition(Se,Oa.end).start).line;On!==No&&Or++}}return hr+Or>=ki?!0:e.forEachChild(la,dt)}),hr===0&&Or<=1?!0:hr/Or>1/ki}e.probablyUsesSemicolons=ko;function Ao(Se,hr){return tl(Se,Se.getDirectories,hr)||[]}e.tryGetDirectories=Ao;function Ms(Se,hr,Or,ki,dt){return tl(Se,Se.readDirectory,hr,Or,ki,dt)||e.emptyArray}e.tryReadDirectory=Ms;function Bs(Se,hr){return tl(Se,Se.fileExists,hr)}e.tryFileExists=Bs;function xc(Se,hr){return su(function(){return e.directoryProbablyExists(hr,Se)})||!1}e.tryDirectoryExists=xc;function su(Se){try{return Se()}catch{return}}e.tryAndIgnoreErrors=su;function tl(Se,hr){for(var Or=[],ki=2;ki"u")return!0;var yc=e.stripQuotes($n.getName());return jo(yc)?!0:la(Es)||la(yc)}function On($n,Ho){if(!ki.length)return!0;var Zo=po($n.fileName,Ho);return Zo?la(Zo):!0}function No($n){return!ki.length||jo($n)||e.pathIsRelative($n)||e.isRootedDiskPath($n)?!0:la($n)}function jo($n){return!!(e.isSourceFileJS(Se)&&e.JsTyping.nodeCoreModules.has($n)&&(dt===void 0&&(dt=pu(Se)),dt))}function po($n,Ho){if(!!e.stringContains($n,"node_modules")){var Zo=e.moduleSpecifiers.getNodeModulesPackageName(Or.getCompilationSettings(),Se,$n,Ho,hr);if(!!Zo&&!e.pathIsRelative(Zo)&&!e.isRootedDiskPath(Zo))return Gn(Zo)}}function Gn($n){var Ho=e.getPathComponents(e.getPackageNameFromTypesPackageName($n)).slice(1);return e.startsWith(Ho[0],"@")?"".concat(Ho[0],"/").concat(Ho[1]):Ho[0]}}e.createPackageJsonImportFilter=eu;function Ws(Se){try{return JSON.parse(Se)}catch{return}}function pu(Se){return e.some(Se.imports,function(hr){var Or=hr.text;return e.JsTyping.nodeCoreModules.has(Or)})}e.consumesNodeCoreModules=pu;function Uu(Se){return e.contains(e.getPathComponents(Se),"node_modules")}e.isInsideNodeModules=Uu;function Ql(Se){return Se.file!==void 0&&Se.start!==void 0&&Se.length!==void 0}e.isDiagnosticWithLocation=Ql;function xl(Se,hr){var Or=Oe(Se),ki=e.binarySearchKey(hr,Or,e.identity,e.compareTextSpans);if(ki>=0){var dt=hr[ki];return e.Debug.assertEqual(dt.file,Se.getSourceFile(),"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"),e.cast(dt,Ql)}}e.findDiagnosticForNode=xl;function Ya(Se,hr){var Or,ki=e.binarySearchKey(hr,Se.start,function(On){return On.start},e.compareValues);for(ki<0&&(ki=~ki);((Or=hr[ki-1])===null||Or===void 0?void 0:Or.start)===Se.start;)ki--;for(var dt=[],la=e.textSpanEnd(Se);;){var Oa=e.tryCast(hr[ki],Ql);if(!Oa||Oa.start>la)break;e.textSpanContainsTextSpan(Se,Oa)&&dt.push(Oa),ki++}return dt}e.getDiagnosticsWithinSpan=Ya;function du(Se){var hr=Se.startPosition,Or=Se.endPosition;return e.createTextSpanFromBounds(hr,Or===void 0?hr:Or)}e.getRefactorContextSpan=du;function vc(Se,hr){var Or=lr(Se,hr.start),ki=e.findAncestor(Or,function(dt){return dt.getStart(Se)e.textSpanEnd(hr)?"quit":e.isExpression(dt)&&ka(hr,Oe(dt,Se))});return ki}e.getFixableErrorSpanExpression=vc;function Kr(Se,hr,Or){return Or===void 0&&(Or=e.identity),Se?e.isArray(Se)?Or(e.map(Se,hr)):hr(Se,0):void 0}e.mapOneOrMany=Kr;function _i(Se){return e.isArray(Se)?e.first(Se):Se}e.firstOrOnly=_i;function Ei(Se,hr){if(kt(Se)){var Or=bt(Se);if(Or)return Or;var ki=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!1),dt=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!0);return ki===dt?ki:[ki,dt]}return Se.name}e.getNamesForExportedSymbol=Ei;function tt(Se,hr,Or){return kt(Se)?bt(Se)||e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!!Or):Se.name}e.getNameForExportedSymbol=tt;function kt(Se){return!(Se.flags&33554432)&&(Se.escapedName==="export="||Se.escapedName==="default")}function bt(Se){return e.firstDefined(Se.declarations,function(hr){var Or;return e.isExportAssignment(hr)?(Or=e.tryCast(e.skipOuterExpressions(hr.expression),e.isIdentifier))===null||Or===void 0?void 0:Or.text:void 0})}function ia(Se){var hr;return e.Debug.checkDefined(Se.parent,"Symbol parent was undefined. Flags: ".concat(e.Debug.formatSymbolFlags(Se.flags),". ")+"Declarations: ".concat((hr=Se.declarations)===null||hr===void 0?void 0:hr.map(function(Or){var ki=e.Debug.formatSyntaxKind(Or.kind),dt=e.isInJSFile(Or),la=Or.expression;return(dt?"[JS]":"")+ki+(la?" (expression: ".concat(e.Debug.formatSyntaxKind(la.kind),")"):"")}).join(", "),"."))}function Xt(Se,hr,Or){var ki=hr.length;if(ki+Or>Se.length)return!1;for(var dt=0;dtd&&J.set(k,l)}else J.set(k,l)}}}var D=V===1,fe=D&&e.getLocalSymbolForExportDefault(Q)||Q,g=V===0||e.isExternalModuleSymbol(fe)?e.unescapeLeadingUnderscores($):e.getNamesForExportedSymbol(fe,void 0),ne=typeof g=="string"?g:g[0],ue=typeof g=="string"?void 0:g[1],We=e.stripQuotes(A.name),Fe=K++,Z=e.skipAlias(Q,P),Be=Q.flags&33554432?void 0:Q,ge=A.flags&33554432?void 0:A;(!Be||!ge)&&se.set(Fe,[Q,A]),b.add(O(ne,Q,e.isExternalModuleNameRelative(We)?void 0:We,P),{id:Fe,symbolTableKey:$,symbolName:ne,capitalizedSymbolName:ue,moduleName:We,moduleFile:y,moduleFileName:y==null?void 0:y.fileName,packageName:k,exportKind:V,targetFlags:Z.flags,isFromPackageJson:L,symbol:Be,moduleSymbol:ge})},get:function(x,Q){if(x===ie){var $=b.get(Q);return $==null?void 0:$.map(q)}},search:function(x,Q,$,A){x===ie&&b.forEach(function(y,V){var L=ve(V),P=L.symbolName,k=L.ambientModuleName,Y=Q&&y[0].capitalizedSymbolName||P;if($(Y,y[0].targetFlags)){var U=y.map(q),j=U.filter(function(H,w){return F(H,y[w].packageName)});j.length&&A(j,Y,!!k,V)}})},releaseSymbols:function(){se.clear()},onFileChanged:function(x,Q,$){return ee(x)&&ee(Q)?!1:ie&&ie!==Q.path||$&&e.consumesNodeCoreModules(x)!==e.consumesNodeCoreModules(Q)||!e.arrayIsEqualTo(x.moduleAugmentations,Q.moduleAugmentations)||!he(x,Q)?(B.clear(),!0):(ie=Q.path,!1)}};return e.Debug.isDebugging&&Object.defineProperty(B,"__cache",{get:function(){return b}}),B;function q(x){if(x.symbol&&x.moduleSymbol)return x;var Q=x.id,$=x.exportKind,A=x.targetFlags,y=x.isFromPackageJson,V=x.moduleFileName,L=se.get(Q)||e.emptyArray,P=L[0],k=L[1];if(P&&k)return{symbol:P,moduleSymbol:k,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y};var Y=(y?T.getPackageJsonAutoImportProvider():T.getCurrentProgram()).getTypeChecker(),U=x.moduleSymbol||k||e.Debug.checkDefined(x.moduleFile?Y.getMergedSymbol(x.moduleFile.symbol):Y.tryFindAmbientModule(x.moduleName)),j=x.symbol||P||e.Debug.checkDefined($===2?Y.resolveExternalModuleSymbol(U):Y.tryGetMemberInModuleExportsAndProperties(e.unescapeLeadingUnderscores(x.symbolTableKey),U),"Could not find symbol '".concat(x.symbolName,"' by key '").concat(x.symbolTableKey,"' in module ").concat(U.name));return se.set(Q,[j,U]),{symbol:j,moduleSymbol:U,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y}}function O(x,Q,$,A){var y=$||"";return"".concat(x,"|").concat(e.getSymbolId(e.skipAlias(Q,A)),"|").concat(y)}function ve(x){var Q=x.substring(0,x.indexOf("|")),$=x.substring(x.lastIndexOf("|")+1),A=$===""?void 0:$;return{symbolName:Q,ambientModuleName:A}}function ee(x){return!x.commonJsModuleIndicator&&!x.externalModuleIndicator&&!x.moduleAugmentations&&!x.ambientModuleNames}function he(x,Q){if(!e.arrayIsEqualTo(x.ambientModuleNames,Q.ambientModuleNames))return!1;for(var $=-1,A=-1,y=function(Y){var U=function(j){return e.isNonGlobalAmbientModule(j)&&j.name.text===Y};if($=e.findIndex(x.statements,U,$+1),A=e.findIndex(Q.statements,U,A+1),x.statements[$]!==Q.statements[A])return{value:!1}},V=0,L=Q.ambientModuleNames;V=ee.length){var j=I(q,x,e.lastOrUndefined($));j!==void 0&&(P=j)}}while(x!==1);function H(){switch(x){case 43:case 68:!C[Q]&&q.reScanSlashToken()===13&&(x=13);break;case 29:Q===79&&Y++;break;case 31:Y>0&&Y--;break;case 130:case 150:case 147:case 133:case 151:Y>0&&!F&&(x=79);break;case 15:$.push(x);break;case 18:$.length>0&&$.push(x);break;case 19:if($.length>0){var w=e.lastOrUndefined($);w===15?(x=q.reScanTemplateToken(!1),x===17?$.pop():e.Debug.assertEqual(x,16,"Should have been a template middle.")):(e.Debug.assertEqual(w,18,"Should have been an open brace"),$.pop())}break;default:if(!e.isKeyword(x))break;(Q===24||e.isKeyword(Q)&&e.isKeyword(x)&&!le(Q,x))&&(x=79)}}return{endOfLineState:P,spans:k}}return{getClassificationsForLine:O,getEncodedLexicalClassifications:ve}}e.createClassifier=a;var C=e.arrayToNumericMap([79,10,8,9,13,108,45,46,21,23,19,110,95],function(q){return q},function(){return!0});function I(q,O,ve){switch(O){case 10:{if(!q.isUnterminated())return;for(var ee=q.getTokenText(),he=ee.length-1,F=0;ee.charCodeAt(he-F)===92;)F++;return(F&1)===0?void 0:ee.charCodeAt(0)===34?3:2}case 3:return q.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(O)){if(!q.isUnterminated())return;switch(O){case 17:return 5;case 14:return 4;default:return e.Debug.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #"+O)}}return ve===15?6:void 0}}function R(q,O,ve,ee,he){if(ee!==8){q===0&&ve>0&&(q+=ve);var F=O-q;F>0&&he.push(q-ve,F,ee)}}function E(q,O){for(var ve=[],ee=q.spans,he=0,F=0;F=0){var A=x-he;A>0&&ve.push({length:A,classification:e.TokenClass.Whitespace})}ve.push({length:Q,classification:X($)}),he=x+Q}var y=O.length-he;return y>0&&ve.push({length:y,classification:e.TokenClass.Whitespace}),{entries:ve,finalLexState:q.endOfLineState}}function X(q){switch(q){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 le(q,O){if(!e.isAccessibilityModifier(q))return!0;switch(O){case 136:case 149:case 134:case 124:return!0;default:return!1}}function N(q){switch(q){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(q)}}function p(q){switch(q){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 m(q){switch(q){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}function G(q){if(e.isKeyword(q))return 3;if(p(q)||m(q))return 5;if(q>=18&&q<=78)return 10;switch(q){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(q)?6:2}}function oe(q,O,ve,ee,he){return J(T(q,O,ve,ee,he))}e.getSemanticClassifications=oe;function f(q,O){switch(O){case 261:case 257:case 258:case 256:case 226:case 213:case 214:q.throwIfCancellationRequested()}}function T(q,O,ve,ee,he){var F=[];return ve.forEachChild(function Q($){if(!(!$||!e.textSpanIntersectsWith(he,$.pos,$.getFullWidth()))){if(f(O,$.kind),e.isIdentifier($)&&!e.nodeIsMissing($)&&ee.has($.escapedText)){var A=q.getSymbolAtLocation($),y=A&&K(A,e.getMeaningFromLocation($),q);y&&x($.getStart(ve),$.getEnd(),y)}$.forEachChild(Q)}}),{spans:F,endOfLineState:0};function x(Q,$,A){var y=$-Q;e.Debug.assert(y>0,"Classification had non-positive length of ".concat(y)),F.push(Q),F.push(y),F.push(A)}}e.getEncodedSemanticClassifications=T;function K(q,O,ve){var ee=q.getFlags();if((ee&2885600)!==0)return ee&32?11:ee&384?12:ee&524288?16:ee&1536?O&4||O&1&&b(q)?14:void 0:ee&2097152?K(ve.getAliasedSymbol(q),O,ve):O&2?ee&64?13:ee&262144?15:void 0:void 0}function b(q){return e.some(q.declarations,function(O){return e.isModuleDeclaration(O)&&e.getModuleInstanceState(O)===1})}function se(q){switch(q){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 J(q){e.Debug.assert(q.spans.length%3===0);for(var O=q.spans,ve=[],ee=0;ee])*)(\/>)?)?/im,g=/(\s)(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/img,ne=O.text.substr(d,D),ue=fe.exec(ne);if(!ue||!ue[3]||!(ue[3]in e.commentPragmas))return!1;var We=d;V(We,ue[1].length),We+=ue[1].length,$(We,ue[2].length,10),We+=ue[2].length,$(We,ue[3].length,21),We+=ue[3].length;for(var Fe=ue[4],Z=We;;){var Be=g.exec(Fe);if(!Be)break;var ge=We+Be.index+Be[1].length;ge>Z&&(V(Z,ge-Z),Z=ge),$(Z,Be[2].length,22),Z+=Be[2].length,Be[3].length&&(V(Z,Be[3].length),Z+=Be[3].length),$(Z,Be[4].length,5),Z+=Be[4].length,Be[5].length&&(V(Z,Be[5].length),Z+=Be[5].length),$(Z,Be[6].length,24),Z+=Be[6].length}We+=ue[4].length,We>Z&&V(Z,We-Z),ue[5]&&($(We,ue[5].length,10),We+=ue[5].length);var Re=d+D;return We=0),g>0){var ne=D||w(d.kind,d);ne&&$(fe,g,ne)}return!0}function H(d){switch(d.parent&&d.parent.kind){case 280:if(d.parent.tagName===d)return 19;break;case 281:if(d.parent.tagName===d)return 20;break;case 279:if(d.parent.tagName===d)return 21;break;case 285:if(d.parent.name===d)return 22;break}}function w(d,D){if(e.isKeyword(d))return 3;if((d===29||d===31)&&D&&e.getTypeArgumentOrTypeParameterList(D.parent))return 10;if(e.isPunctuation(d)){if(D){var fe=D.parent;if(d===63&&(fe.kind===254||fe.kind===167||fe.kind===164||fe.kind===285)||fe.kind===221||fe.kind===219||fe.kind===220||fe.kind===222)return 5}return 10}else{if(d===8)return 4;if(d===9)return 25;if(d===10)return D&&D.parent.kind===285?24:6;if(d===13)return 6;if(e.isTemplateLiteralKind(d))return 6;if(d===11)return 23;if(d===79){if(D){switch(D.parent.kind){case 257:return D.parent.name===D?11:void 0;case 163:return D.parent.name===D?15:void 0;case 258:return D.parent.name===D?13:void 0;case 260:return D.parent.name===D?12:void 0;case 261:return D.parent.name===D?14:void 0;case 164:return D.parent.name===D?e.isThisIdentifier(D)?3:17:void 0}if(e.isConstTypeReference(D.parent))return 3}return 2}}}function l(d){if(!!d&&e.decodedTextSpanIntersectsWith(ee,he,d.pos,d.getFullWidth())){f(q,d.kind);for(var D=0,fe=d.getChildren(O);D0}))return 0;if(ee(function(he){return he.getCallSignatures().length>0})&&!ee(function(he){return he.getProperties().length>0})||se(q))return O===9?11:10}}return O}function T(B,q){return e.isBindingElement(B)&&(B=K(B)),e.isVariableDeclaration(B)?(!e.isSourceFile(B.parent.parent.parent)||e.isCatchClause(B.parent))&&B.getSourceFile()===q:e.isFunctionDeclaration(B)?!e.isSourceFile(B.parent)&&B.getSourceFile()===q:!1}function K(B){for(;;)if(e.isBindingElement(B.parent.parent))B=B.parent.parent;else return B.parent.parent}function b(B){var q=B.parent;return q&&(e.isImportClause(q)||e.isImportSpecifier(q)||e.isNamespaceImport(q))}function se(B){for(;J(B);)B=B.parent;return e.isCallExpression(B.parent)&&B.parent.expression===B}function J(B){return e.isQualifiedName(B.parent)&&B.parent.right===B||e.isPropertyAccessExpression(B.parent)&&B.parent.name===B}var ie=new e.Map([[254,7],[164,6],[167,9],[261,3],[260,1],[299,8],[257,0],[169,11],[256,10],[213,10],[168,11],[172,9],[173,9],[166,9],[258,2],[259,5],[163,4],[296,9],[297,9]])})(I=C.v2020||(C.v2020={}))})(a=e.classifier||(e.classifier={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I;(function(R){function E(Z,Be,ge,Re,ze,Ee,He,rr){if(e.isInReferenceComment(Z,Be)){var Ie=l(Z,Be,Re,ze);return Ie&&p(Ie)}if(e.isInString(Z,Be,ge)){if(!ge||!e.isStringLiteralLike(ge))return;var Ie=oe(Z,ge,Be,Ee.getTypeChecker(),Re,ze,rr);return X(Ie,ge,Z,ze,Ee,He,Re,rr)}}R.getStringLiteralCompletions=E;function X(Z,Be,ge,Re,ze,Ee,He,rr){if(Z!==void 0){var Ie=e.createTextSpanFromStringLiteralLikeContent(Be);switch(Z.kind){case 0:return p(Z.paths);case 1:{var _e=e.createSortedArray();return C.getCompletionEntriesFromSymbols(Z.symbols,_e,Be,Be,ge,ge,Re,ze,99,Ee,4,rr,He,void 0),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:Z.hasIndexSignature,optionalReplacementSpan:Ie,entries:_e}}case 2:{var _e=Z.types.map(function(de){return{name:de.value,kindModifiers:"",kind:"string",sortText:C.SortText.LocationPriority,replacementSpan:e.getReplacementSpanForContextToken(Be)}});return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:Z.isNewIdentifier,optionalReplacementSpan:Ie,entries:_e}}default:return e.Debug.assertNever(Z)}}}function le(Z,Be,ge,Re,ze,Ee,He,rr,Ie){if(!(!Re||!e.isStringLiteralLike(Re))){var _e=oe(Be,Re,ge,ze,Ee,He,Ie);return _e&&N(Z,Re,_e,Be,ze,rr)}}R.getStringLiteralCompletionDetails=le;function N(Z,Be,ge,Re,ze,Ee){switch(ge.kind){case 0:{var He=e.find(ge.paths,function(rr){return rr.name===Z});return He&&C.createCompletionDetails(Z,m(He.extension),He.kind,[e.textPart(Z)])}case 1:{var He=e.find(ge.symbols,function(Ie){return Ie.name===Z});return He&&C.createCompletionDetailsForSymbol(He,ze,Re,Be,Ee)}case 2:return e.find(ge.types,function(rr){return rr.value===Z})?C.createCompletionDetails(Z,"","type",[e.textPart(Z)]):void 0;default:return e.Debug.assertNever(ge)}}function p(Z){var Be=!1,ge=!0,Re=Z.map(function(ze){var Ee=ze.name,He=ze.kind,rr=ze.span,Ie=ze.extension;return{name:Ee,kind:He,kindModifiers:m(Ie),sortText:C.SortText.LocationPriority,replacementSpan:rr}});return{isGlobalCompletion:Be,isMemberCompletion:!1,isNewIdentifierLocation:ge,entries:Re}}function m(Z){switch(Z){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".d.mts":return".d.mts";case".mjs":return".mjs";case".mts":return".mts";case".d.cts":return".d.cts";case".cjs":return".cjs";case".cts":return".cts";case".tsbuildinfo":return e.Debug.fail("Extension ".concat(".tsbuildinfo"," is unsupported."));case void 0:return"";default:return e.Debug.assertNever(Z)}}var G;(function(Z){Z[Z.Paths=0]="Paths",Z[Z.Properties=1]="Properties",Z[Z.Types=2]="Types"})(G||(G={}));function oe(Z,Be,ge,Re,ze,Ee,He){var rr=f(Be.parent);switch(rr.kind){case 196:{var Ie=f(rr.parent);switch(Ie.kind){case 178:{var _e=Ie,we=e.findAncestor(rr,function(n){return n.parent===_e});return we?{kind:2,types:J(Re.getTypeArgumentConstraint(we)),isNewIdentifier:!1}:void 0}case 194:var de=Ie,ye=de.indexType,Ae=de.objectType;return e.rangeContainsPosition(ye,ge)?b(Re.getTypeFromTypeNode(Ae)):void 0;case 200:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};case 187:{if(!e.isTypeReferenceNode(Ie.parent))return;var er=T(Ie,rr),ir=J(Re.getTypeArgumentConstraint(Ie)).filter(function(n){return!e.contains(er,n.value)});return{kind:2,types:ir,isNewIdentifier:!1}}default:return}}case 296:return e.isObjectLiteralExpression(rr.parent)&&rr.name===Be?se(Re,rr.parent):Ne();case 207:{var Cr=rr,Ye=Cr.expression,Br=Cr.argumentExpression;return Be===e.skipParentheses(Br)?b(Re.getTypeAtLocation(Ye)):void 0}case 208:case 209:case 285:if(!Fe(Be)&&!e.isImportCall(rr)){var Er=e.SignatureHelp.getArgumentInfoForCompletions(rr.kind===285?rr.parent:Be,ge,Z);return Er?K(Er.invocation,Be,Er,Re):Ne()}case 266:case 272:case 277:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};default:return Ne()}function Ne(){return{kind:2,types:J(e.getContextualTypeFromParent(Be,Re)),isNewIdentifier:!1}}}function f(Z){switch(Z.kind){case 191:return e.walkUpParenthesizedTypes(Z);case 212:return e.walkUpParenthesizedExpressions(Z);default:return Z}}function T(Z,Be){return e.mapDefined(Z.types,function(ge){return ge!==Be&&e.isLiteralTypeNode(ge)&&e.isStringLiteral(ge.literal)?ge.literal.text:void 0})}function K(Z,Be,ge,Re){var ze=!1,Ee=new e.Map,He=[],rr=e.isJsxOpeningLikeElement(Z)?e.Debug.checkDefined(e.findAncestor(Be.parent,e.isJsxAttribute)):Be;Re.getResolvedSignatureForStringLiteralCompletions(Z,rr,He);var Ie=e.flatMap(He,function(_e){if(!(!e.signatureHasRestParameter(_e)&&ge.argumentCount>_e.parameters.length)){var we=_e.getTypeParameterAtPosition(ge.argumentIndex);if(e.isJsxOpeningLikeElement(Z)){var de=Re.getTypeOfPropertyOfType(we,rr.name.text);de&&(we=de)}return ze=ze||!!(we.flags&4),J(we,Ee)}});return{kind:2,types:Ie,isNewIdentifier:ze}}function b(Z){return Z&&{kind:1,symbols:e.filter(Z.getApparentProperties(),function(Be){return!(Be.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(Be.valueDeclaration))}),hasIndexSignature:e.hasIndexSignature(Z)}}function se(Z,Be){var ge=Z.getContextualType(Be);if(!!ge){var Re=Z.getContextualType(Be,4),ze=C.getPropertiesForObjectExpression(ge,Re,Be,Z);return{kind:1,symbols:ze,hasIndexSignature:e.hasIndexSignature(ge)}}}function J(Z,Be){return Be===void 0&&(Be=new e.Map),Z?(Z=e.skipConstraint(Z),Z.isUnion()?e.flatMap(Z.types,function(ge){return J(ge,Be)}):Z.isStringLiteral()&&!(Z.flags&1024)&&e.addToSeen(Be,Z.value)?[Z]:e.emptyArray):e.emptyArray}function ie(Z,Be,ge){return{name:Z,kind:Be,extension:ge}}function B(Z){return ie(Z,"directory",void 0)}function q(Z,Be,ge){var Re=fe(Z,Be),ze=Z.length===0?void 0:e.createTextSpan(Be,Z.length);return ge.map(function(Ee){var He=Ee.name,rr=Ee.kind,Ie=Ee.extension;return Math.max(He.indexOf(e.directorySeparator),He.indexOf(e.altDirectorySeparator))!==-1?{name:He,kind:rr,extension:Ie,span:ze}:{name:He,kind:rr,extension:Ie,span:Re}})}function O(Z,Be,ge,Re,ze,Ee){return q(Be.text,Be.getStart(Z)+1,ve(Z,Be,ge,Re,ze,Ee))}function ve(Z,Be,ge,Re,ze,Ee){var He=e.normalizeSlashes(Be.text),rr=Z.path,Ie=e.getDirectoryPath(rr);return g(He)||!ge.baseUrl&&(e.isRootedDiskPath(He)||e.isUrl(He))?he(He,Ie,ge,Re,rr,_e()):P(He,Ie,ge,Re,ze);function _e(){var we=e.isStringLiteralLike(Be)?e.getModeForUsageLocation(Z,Be):void 0;return Ee.importModuleSpecifierEnding==="js"||we===e.ModuleKind.ESNext?2:0}}function ee(Z,Be){return Be===void 0&&(Be=0),{extensions:e.flatten(Q(Z)),includeExtensionsOption:Be}}function he(Z,Be,ge,Re,ze,Ee){var He=ee(ge,Ee);return ge.rootDirs?A(ge.rootDirs,Z,Be,He,ge,Re,ze):V(Z,Be,He,Re,ze)}function F(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeJs||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function x(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function Q(Z){var Be=e.getSupportedExtensions(Z);return F(Z)?e.getSupportedExtensionsWithJsonIfResolveJsonModule(Z,Be):Be}function $(Z,Be,ge,Re){Z=Z.map(function(Ee){return e.normalizePath(e.isRootedDiskPath(Ee)?Ee:e.combinePaths(Be,Ee))});var ze=e.firstDefined(Z,function(Ee){return e.containsPath(Ee,ge,Be,Re)?ge.substr(Ee.length):void 0});return e.deduplicate(Ve(Ve([],Z.map(function(Ee){return e.combinePaths(Ee,ze)}),!0),[ge],!1),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}function A(Z,Be,ge,Re,ze,Ee,He){var rr=ze.project||Ee.getCurrentDirectory(),Ie=!(Ee.useCaseSensitiveFileNames&&Ee.useCaseSensitiveFileNames()),_e=$(Z,rr,ge,Ie);return e.flatMap(_e,function(we){return V(Be,we,Re,Ee,He)})}var y;(function(Z){Z[Z.Exclude=0]="Exclude",Z[Z.Include=1]="Include",Z[Z.ModuleSpecifierCompletion=2]="ModuleSpecifierCompletion"})(y||(y={}));function V(Z,Be,ge,Re,ze,Ee){var He=ge.extensions,rr=ge.includeExtensionsOption;Ee===void 0&&(Ee=[]),Z===void 0&&(Z=""),Z=e.normalizeSlashes(Z),e.hasTrailingDirectorySeparator(Z)||(Z=e.getDirectoryPath(Z)),Z===""&&(Z="."+e.directorySeparator),Z=e.ensureTrailingDirectorySeparator(Z);var Ie=e.resolvePath(Be,Z),_e=e.hasTrailingDirectorySeparator(Ie)?Ie:e.getDirectoryPath(Ie),we=!(Re.useCaseSensitiveFileNames&&Re.useCaseSensitiveFileNames());if(!e.tryDirectoryExists(Re,_e))return Ee;var de=e.tryReadDirectory(Re,_e,He,void 0,["./*"]);if(de){for(var ye=new e.Map,Ae=0,er=de;Ae=er.pos&&Be<=er.end});if(!!He){var rr=Z.text.slice(He.pos,Be),Ie=ne.exec(rr);if(!!Ie){var _e=Ie[1],we=Ie[2],de=Ie[3],ye=e.getDirectoryPath(Z.path),Ae=we==="path"?V(de,ye,ee(ge,1),Re,Z.path):we==="types"?d(Re,ge,ye,k(de),ee(ge)):e.Debug.fail();return q(de,He.pos+_e.length,Ae)}}}function d(Z,Be,ge,Re,ze,Ee){Ee===void 0&&(Ee=[]);for(var He=new e.Map,rr=e.tryAndIgnoreErrors(function(){return e.getEffectiveTypeRoots(Be,Z)})||e.emptyArray,Ie=0,_e=rr;Ie<_e.length;Ie++){var we=_e[Ie];ir(we)}for(var de=0,ye=e.findPackageJsons(ge,Z);de=2&&Z.charCodeAt(0)===46){var Be=Z.length>=3&&Z.charCodeAt(1)===46?2:1,ge=Z.charCodeAt(Be);return ge===47||ge===92}return!1}var ne=/^(\/\/\/\s*0},resolvedBeyondLimit:function(){return Wi>C.moduleSpecifierResolutionLimit}}),Mt=Li?" (".concat((ct/Li*100).toFixed(1),"% hit rate)"):"";return(fr=vr.log)===null||fr===void 0||fr.call(vr,"".concat(xe,": resolved ").concat(Wi," module specifiers, plus ").concat(Yi," ambient and ").concat(ct," from cache").concat(Mt)),(De=vr.log)===null||De===void 0||De.call(vr,"".concat(xe,": response is ").concat(Ui?"incomplete":"complete")),(gr=vr.log)===null||gr===void 0||gr.call(vr,"".concat(xe,": ").concat(e.timestamp()-Vr)),nt;function xt(ut,Dt,Rt){if(Rt){var Ii=e.codefix.getModuleSpecifierForBestExportInfo(ut,Dt,Oe,Pe,Ar,mr,vr,nr);return Ii&&Yi++,Ii||"failed"}var Ki=vi||nr.allowIncompleteCompletions&&Wi"),Pe=e.createTextSpanFromNode(mr.tagName),Ue={name:Mr,kind:"class",kindModifiers:void 0,sortText:C.SortText.LocationPriority};return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,optionalReplacementSpan:Pe,entries:[Ue]}}}function V(xe,vr,mr,Ar,Oe){e.getNameTable(xe).forEach(function(nr,Mr){if(nr!==vr){var Pe=e.unescapeLeadingUnderscores(Mr);!mr.has(Pe)&&e.isIdentifierText(Pe,Ar)&&(mr.add(Pe),e.insertSorted(Oe,{name:Pe,kind:"warning",kindModifiers:"",sortText:C.SortText.JavascriptIdentifiers,isFromUncheckedFile:!0},ie))}})}function L(xe,vr,mr){return typeof mr=="object"?e.pseudoBigIntToString(mr)+"n":e.isString(mr)?e.quote(xe,vr,mr):JSON.stringify(mr)}function P(xe,vr,mr){return{name:L(xe,vr,mr),kind:"string",kindModifiers:"",sortText:C.SortText.LocationPriority}}function k(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt){var xt,ut,Dt,Rt=e.getReplacementSpanForContextToken(mr),Ii,Ki,Fi=We(De),ui,Bt,wt,na=Pe.getTypeChecker(),Ai=De&&oe(De),Oi=De&&X(De)||fr;if(De&&E(De))Dt=fr?"this".concat(Ai?"?.":"","[").concat(ne(nr,Wi,Ue),"]"):"this".concat(Ai?"?.":".").concat(Ue);else if((Oi||Ai)&&Vr){Dt=Oi?fr?"[".concat(ne(nr,Wi,Ue),"]"):"[".concat(Ue,"]"):Ue,(Ai||Vr.questionDotToken)&&(Dt="?.".concat(Dt));var ji=e.findChildOfKind(Vr,24,nr)||e.findChildOfKind(Vr,28,nr);if(!ji)return;var Vi=e.startsWith(Ue,Vr.name.text)?Vr.name.end:ji.end;Rt=e.createTextSpanFromBounds(ji.getStart(nr),Vi)}if(Tr&&(Dt===void 0&&(Dt=Ue),Dt="{".concat(Dt,"}"),typeof Tr!="boolean"&&(Rt=e.createTextSpanFromNode(Tr,nr))),De&&G(De)&&Vr){Dt===void 0&&(Dt=Ue);var at=e.findPrecedingToken(Vr.pos,nr),At="";at&&e.positionIsASICandidate(at.end,at.parent,nr)&&(At=";"),At+="(await ".concat(Vr.expression.getText(),")"),Dt=fr?"".concat(At).concat(Dt):"".concat(At).concat(Ai?"?.":".").concat(Dt),Rt=e.createTextSpanFromBounds(Vr.getStart(nr),Vr.end)}if(N(De)&&(ui=[e.textPart(De.moduleSpecifier)],vi&&(xt=g(Ue,vi,Ar,De,Ui,Yi,Wi),Dt=xt.insertText,Rt=xt.replacementSpan,Ki=Wi.includeCompletionsWithSnippetText?!0:void 0)),(De==null?void 0:De.kind)===64&&(Bt=!0),Wi.includeCompletionsWithClassMemberSnippets&&Wi.includeCompletionsWithInsertText&&ct===3&&Y(xe,Oe)){var ba=void 0;ut=U(Mr,Pe,Yi,Wi,Ue,xe,Oe,Ar,Li),Dt=ut.insertText,Ki=ut.isSnippet,ba=ut.importAdder,Rt=ut.replacementSpan,vr=C.SortText.ClassMemberSnippets,ba!=null&&ba.hasFixes()&&(Bt=!0,Fi=I.ClassMemberSnippet)}if(De&&T(De)&&(Dt=De.insertText,Ki=De.isSnippet,wt=De.labelDetails,Wi.useLabelDetailsInCompletionEntries||(Ue=Ue+wt.detail,wt=void 0),Fi=I.ObjectLiteralMethodSnippet,vr=C.SortText.SortBelow(vr)),nt&&!Mt&&Wi.includeCompletionsWithSnippetText&&Wi.jsxAttributeCompletionStyle&&Wi.jsxAttributeCompletionStyle!=="none"){var $a=Wi.jsxAttributeCompletionStyle==="braces",Qa=na.getTypeOfSymbolAtLocation(xe,Oe);Wi.jsxAttributeCompletionStyle==="auto"&&!(Qa.flags&528)&&!(Qa.flags&1048576&&e.find(Qa.types,function(ai){return!!(ai.flags&528)}))&&(Qa.flags&402653316||Qa.flags&1048576&&e.every(Qa.types,function(ai){return!!(ai.flags&402686084)})?(Dt="".concat(e.escapeSnippetText(Ue),"=").concat(e.quote(nr,Wi,"$1")),Ki=!0):$a=!0),$a&&(Dt="".concat(e.escapeSnippetText(Ue),"={$1}"),Ki=!0)}if(!(Dt!==void 0&&!Wi.includeCompletionsWithInsertText))return(le(De)||N(De))&&(Ii=D(De),Bt=!vi),{name:Ue,kind:e.SymbolDisplay.getSymbolKind(na,xe,Oe),kindModifiers:e.SymbolDisplay.getSymbolModifiers(na,xe),sortText:vr,source:Fi,hasAction:Bt?!0:void 0,isRecommended:ue(xe,gr,na)||void 0,insertText:Dt,replacementSpan:Rt,sourceDisplay:ui,labelDetails:wt,isSnippet:Ki,isPackageJsonImport:m(De)||void 0,isImportStatementCompletion:!!vi||void 0,data:Ii}}function Y(xe,vr){if(e.isInJSFile(vr))return!1;var mr=106500;return!!(xe.flags&mr)&&(e.isClassLike(vr)||vr.parent&&vr.parent.parent&&e.isClassElement(vr.parent)&&vr===vr.parent.name&&e.isClassLike(vr.parent.parent)||vr.parent&&e.isSyntaxList(vr)&&e.isClassLike(vr.parent))}function U(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue){var fr=e.findAncestor(Mr,e.isClassLike);if(!fr)return{insertText:Oe};var De,gr,Vr=Oe,Tr=vr.getTypeChecker(),vi=Mr.getSourceFile(),Ui=d({removeComments:!0,module:mr.module,target:mr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(mr,e.maybeBind(xe,xe.getNewLine)))}),Yi=e.codefix.createImportAdder(vi,vr,Ar,xe),Wi;if(Ar.includeCompletionsWithSnippetText){De=!0;var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=0,nt=j(Pe),Mt=nt.modifiers,xt=nt.span,ut=!!(Mt&128),Dt=[];if(e.codefix.addNewNodeForMemberSymbol(nr,fr,vi,{program:vr,host:xe},Ar,Yi,function(Ii){var Ki=0;ut&&(Ki|=128),e.isClassElement(Ii)&&Tr.getMemberOverrideModifierStatus(fr,Ii)===1&&(Ki|=16384),Dt.length||(Li=Ii.modifierFlagsCache|Ki|Mt),Ii=e.factory.updateModifiers(Ii,Li),Dt.push(Ii)},Wi,2,ut),Dt.length){var Rt=131073;gr=xt,Ue?Vr=Ui.printAndFormatSnippetList(Rt,e.factory.createNodeArray(Dt),vi,Ue):Vr=Ui.printSnippetList(Rt,e.factory.createNodeArray(Dt),vi)}return{insertText:Vr,isSnippet:De,importAdder:Yi,replacementSpan:gr}}function j(xe){if(!xe)return{modifiers:0};var vr=0,mr,Ar;return(Ar=H(xe))&&(vr|=e.modifierToFlag(Ar),mr=e.createTextSpanFromNode(xe)),e.isPropertyDeclaration(xe.parent)&&(vr|=e.modifiersToFlags(xe.parent.modifiers),mr=e.createTextSpanFromNode(xe.parent)),{modifiers:vr,span:mr}}function H(xe){if(e.isModifier(xe))return xe.kind;if(e.isIdentifier(xe)&&xe.originalKeywordKind&&e.isModifierKind(xe.originalKeywordKind))return xe.originalKeywordKind}function w(xe,vr,mr,Ar,Oe,nr,Mr,Pe){var Ue=Mr.includeCompletionsWithSnippetText||void 0,fr=vr,De=mr.getSourceFile(),gr=l(xe,mr,De,Ar,Oe,Mr);if(!!gr){var Vr=d({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(nr,e.maybeBind(Oe,Oe.getNewLine)))});Pe?fr=Vr.printAndFormatSnippetList(80,e.factory.createNodeArray([gr],!0),De,Pe):fr=Vr.printSnippetList(80,e.factory.createNodeArray([gr],!0),De);var Tr=e.createPrinter({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!0}),vi=e.factory.createMethodSignature(void 0,"",gr.questionToken,gr.typeParameters,gr.parameters,gr.type),Ui={detail:Tr.printNode(4,vi,De)};return{isSnippet:Ue,insertText:fr,labelDetails:Ui}}}function l(xe,vr,mr,Ar,Oe,nr){var Mr=xe.getDeclarations();if(!!(Mr&&Mr.length)){var Pe=Ar.getTypeChecker(),Ue=Mr[0],fr=e.getSynthesizedDeepClone(e.getNameOfDeclaration(Ue),!1),De=Pe.getWidenedType(Pe.getTypeOfSymbolAtLocation(xe,vr)),gr=e.getQuotePreference(mr,nr),Vr=gr===0?268435456:void 0;switch(Ue.kind){case 166:case 167:case 168:case 169:{var Tr=De.flags&1048576&&De.types.length<10?Pe.getUnionType(De.types,2):De;if(Tr.flags&1048576){var vi=e.filter(Tr.types,function(nt){return Pe.getSignaturesOfType(nt,0).length>0});if(vi.length===1)Tr=vi[0];else return}var Ui=Pe.getSignaturesOfType(Tr,0);if(Ui.length!==1)return;var Yi=Pe.typeToTypeNode(Tr,vr,Vr,e.codefix.getNoopSymbolTrackerWithResolver({program:Ar,host:Oe}));if(!Yi||!e.isFunctionTypeNode(Yi))return;var Wi=void 0;if(nr.includeCompletionsWithSnippetText){var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=Yi.parameters.map(function(nt){return e.factory.createParameterDeclaration(void 0,void 0,nt.dotDotDotToken,nt.name,nt.questionToken,void 0,nt.initializer)});return e.factory.createMethodDeclaration(void 0,void 0,void 0,fr,void 0,void 0,Li,void 0,Wi)}default:return}}}function d(xe){var vr,mr=e.textChanges.createWriter(e.getNewLineCharacter(xe)),Ar=e.createPrinter(xe,mr),Oe=Ke(Ke({},mr),{write:function(fr){return nr(fr,function(){return mr.write(fr)})},nonEscapingWrite:mr.write,writeLiteral:function(fr){return nr(fr,function(){return mr.writeLiteral(fr)})},writeStringLiteral:function(fr){return nr(fr,function(){return mr.writeStringLiteral(fr)})},writeSymbol:function(fr,De){return nr(fr,function(){return mr.writeSymbol(fr,De)})},writeParameter:function(fr){return nr(fr,function(){return mr.writeParameter(fr)})},writeComment:function(fr){return nr(fr,function(){return mr.writeComment(fr)})},writeProperty:function(fr){return nr(fr,function(){return mr.writeProperty(fr)})}});return{printSnippetList:Mr,printAndFormatSnippetList:Ue};function nr(fr,De){var gr=e.escapeSnippetText(fr);if(gr!==fr){var Vr=mr.getTextPos();De();var Tr=mr.getTextPos();vr=e.append(vr||(vr=[]),{newText:gr,span:{start:Vr,length:Tr-Vr}})}else De()}function Mr(fr,De,gr){var Vr=Pe(fr,De,gr);return vr?e.textChanges.applyChanges(Vr,vr):Vr}function Pe(fr,De,gr){return vr=void 0,Oe.clear(),Ar.writeList(fr,De,gr,Oe),Oe.getText()}function Ue(fr,De,gr,Vr){var Tr={text:Pe(fr,De,gr),getLineAndCharacterOfPosition:function(Wi){return e.getLineAndCharacterOfPosition(this,Wi)}},vi=e.getFormatCodeSettingsForWriting(Vr,gr),Ui=e.flatMap(De,function(Wi){var ct=e.textChanges.assignPositionsToNode(Wi);return e.formatting.formatNodeGivenIndentation(ct,Tr,gr.languageVariant,0,0,Ke(Ke({},Vr),{options:vi}))}),Yi=vr?e.stableSort(e.concatenate(Ui,vr),function(Wi,ct){return e.compareTextSpans(Wi.span,ct.span)}):Ui;return e.textChanges.applyChanges(Tr.text,Yi)}}function D(xe){var vr=xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),mr=xe.isFromPackageJson?!0:void 0;if(N(xe)){var Ar={exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,ambientModuleName:vr,fileName:xe.fileName,isPackageJsonImport:mr};return Ar}var Oe={exportName:xe.exportName,exportMapKey:xe.exportMapKey,fileName:xe.fileName,ambientModuleName:xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),isPackageJsonImport:xe.isFromPackageJson?!0:void 0};return Oe}function fe(xe,vr,mr){var Ar=xe.exportName==="default",Oe=!!xe.isPackageJsonImport;if(B(xe)){var nr={kind:32,exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return nr}var Mr={kind:4,exportName:xe.exportName,exportMapKey:xe.exportMapKey,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return Mr}function g(xe,vr,mr,Ar,Oe,nr,Mr){var Pe,Ue,fr,De=vr.getSourceFile(),gr=e.createTextSpanFromNode(e.findAncestor(vr,e.or(e.isImportDeclaration,e.isImportEqualsDeclaration))||vr,De),Vr=e.quote(De,Mr,Ar.moduleSpecifier),Tr=Ar.isDefaultExport?1:Ar.exportName==="export="?2:0,vi=Mr.includeCompletionsWithSnippetText?"$1":"",Ui=e.codefix.getImportKind(De,Tr,nr,!0),Yi=((Ue=(Pe=e.tryCast(vr,e.isImportDeclaration))===null||Pe===void 0?void 0:Pe.importClause)===null||Ue===void 0?void 0:Ue.isTypeOnly)||((fr=e.tryCast(vr,e.isImportEqualsDeclaration))===null||fr===void 0?void 0:fr.isTypeOnly),Wi=ae(vr,mr),ct=Yi?" ".concat(e.tokenToString(152)," "):" ",Li=Wi?"".concat(e.tokenToString(152)," "):"",nt=Oe?";":"";switch(Ui){case 3:return{replacementSpan:gr,insertText:"import".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi," = require(").concat(Vr,")").concat(nt)};case 1:return{replacementSpan:gr,insertText:"import".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi," from ").concat(Vr).concat(nt)};case 2:return{replacementSpan:gr,insertText:"import".concat(ct,"* as ").concat(e.escapeSnippetText(xe)," from ").concat(Vr).concat(nt)};case 0:return{replacementSpan:gr,insertText:"import".concat(ct,"{ ").concat(Li).concat(e.escapeSnippetText(xe)).concat(vi," } from ").concat(Vr).concat(nt)}}}function ne(xe,vr,mr){return/^\d+$/.test(mr)?mr:e.quote(xe,vr,mr)}function ue(xe,vr,mr){return xe===vr||!!(xe.flags&1048576)&&mr.getExportSymbolOfSymbol(xe)===vr}function We(xe){if(le(xe))return e.stripQuotes(xe.moduleSymbol.name);if(N(xe))return xe.moduleSpecifier;if((xe==null?void 0:xe.kind)===1)return I.ThisProperty;if((xe==null?void 0:xe.kind)===64)return I.TypeOnlyAlias}function Fe(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt,xt,ut){for(var Dt,Rt=e.timestamp(),Ii=ti(Oe),Ki=e.probablyUsesSemicolons(nr),Fi=Pe.getTypeChecker(),ui=new e.Map,Bt=0;Bt90)?!1:Mr?!0:Wr(ua,yi)},function(ua,Xn,jr,fo){var xs;if(!(Mr&&!e.some(ua,function(su){return Mr.source===e.stripQuotes(su.moduleSymbol.name)}))){var Fo=e.find(ua,Pt);if(!!Fo){var ko=ga.tryResolve(ua,Xn,jr)||{};if(ko!=="failed"){var Ao=Fo,Ms;ko!=="skipped"&&(xs=ko.exportInfo,Ao=xs===void 0?Fo:xs,Ms=ko.moduleSpecifier);var Bs=Ao.exportKind===1,xc=Bs&&e.getLocalSymbolForExportDefault(Ao.symbol)||Ao.symbol;Qe(xc,{kind:Ms?32:4,moduleSpecifier:Ms,symbolName:Xn,exportMapKey:fo,exportName:Ao.exportKind===2?"export=":Ao.symbol.name,fileName:Ao.moduleFileName,isDefaultExport:Bs,moduleSymbol:Ao.moduleSymbol,isFromPackageJson:Ao.isFromPackageJson})}}}}),Dn=ga.skippedAny(),Vi|=ga.resolvedAny()?8:0,Vi|=ga.resolvedBeyondLimit()?16:0});function Pt(ga){var ua=e.tryCast(ga.moduleSymbol.valueDeclaration,e.isSourceFile);if(!ua){var Xn=e.stripQuotes(ga.moduleSymbol.name);return e.JsTyping.nodeCoreModules.has(Xn)&&e.startsWith(Xn,"node:")!==e.shouldUseUriStyleNodeCoreModules(mr,xe)?!1:pt?pt.allowsImportingAmbientModule(ga.moduleSymbol,kn(ga.isFromPackageJson)):!0}return e.isImportableFile(ga.isFromPackageJson?Hr:xe,mr,ua,nr,pt,kn(ga.isFromPackageJson),qi)}}function Qe(Ji,ce){var Rr=e.getSymbolId(Ji);pn[Rr]!==C.SortText.GlobalsOrKeywords&&(Ba[ka.length]=ce,pn[Rr]=na?C.SortText.LocationPriority:C.SortText.AutoImportSuggestions,ka.push(Ji))}function Gr(Ji,ce){e.isInJSFile(Ai)||Ji.forEach(function(Rr){if(!!S(Rr)){var yi=Er(Rr,e.getEmitScriptTarget(Ar),void 0,0,!1);if(!!yi){var qi=yi.name,je=w(Rr,qi,ce,xe,Pe,Ar,nr,Ue);if(!!je){var Hr=Ke({kind:128},je);Vi|=32,Ba[ka.length]=Hr,ka.push(Rr)}}}})}function S(Ji){return!!(Ji.flags&8196)}function Ce(Ji,ce,Rr){for(var yi=Ji;yi&&!e.positionBelongsToNode(yi,ce,Rr);)yi=yi.parent;return yi}function qe(Ji){var ce=e.timestamp(),Rr=Si(Ji)||Go(Ji)||Vc(Ji)||br(Ji)||e.isBigIntLiteral(Ji);return vr("getCompletionsAtPosition: isCompletionListBlocker: "+(e.timestamp()-ce)),Rr}function br(Ji){if(Ji.kind===11)return!0;if(Ji.kind===31&&Ji.parent){if(Ai===Ji.parent&&(Ai.kind===280||Ai.kind===279))return!1;if(Ji.parent.kind===280)return Ai.parent.kind!==280;if(Ji.parent.kind===281||Ji.parent.kind===279)return!!Ji.parent.parent&&Ji.parent.parent.kind===278}return!1}function Zr(){if(ut){var Ji=ut.parent.kind,ce=wr(ut);switch(ce){case 27:return Ji===208||Ji===171||Ji===209||Ji===204||Ji===221||Ji===179||Ji===205;case 20:return Ji===208||Ji===171||Ji===209||Ji===212||Ji===191;case 22:return Ji===204||Ji===176||Ji===162;case 141:case 142:case 100:return!0;case 24:return Ji===261;case 18:return Ji===257||Ji===205;case 63:return Ji===254||Ji===221;case 15:return Ji===223;case 16:return Ji===233;case 131:return Ji===169||Ji===297;case 41:return Ji===169}if(yr(ce))return!0}return!1}function Si(Ji){return(e.isRegularExpressionLiteral(Ji)||e.isStringTextContainingNode(Ji))&&(e.rangeContainsPositionExclusive(e.createTextRangeFromSpan(e.createTextSpanFromNode(Ji)),Oe)||Oe===Ji.end&&(!!Ji.isUnterminated||e.isRegularExpressionLiteral(Ji)))}function Pi(){var Ji=Di(ut);if(!Ji)return 0;var ce=e.isIntersectionTypeNode(Ji.parent)?Ji.parent:void 0,Rr=ce||Ji,yi=wi(Rr,De);if(!yi)return 0;var qi=De.getTypeFromTypeNode(Rr),je=qr(yi,De),Hr=qr(qi,De),pt=new e.Set;return Hr.forEach(function(Pt){return pt.add(Pt.escapedName)}),ka=e.concatenate(ka,e.filter(je,function(Pt){return!pt.has(Pt.escapedName)})),Qa=0,ji=!0,1}function Qi(){var Ji=ka.length,ce=Cr(ut);if(!ce)return 0;Qa=0;var Rr,yi;if(ce.kind===205){var qi=_r(ce,De);if(qi===void 0)return ce.flags&33554432?2:(ai=!0,0);var je=De.getContextualType(ce,4),Hr=(je||qi).getStringIndexType(),pt=(je||qi).getNumberIndexType();if(ji=!!Hr||!!pt,Rr=mi(qi,je,ce,De),yi=ce.properties,Rr.length===0&&!pt)return ai=!0,0}else{e.Debug.assert(ce.kind===201),ji=!1;var Pt=e.getRootDeclaration(ce.parent);if(!e.isVariableLike(Pt))return e.Debug.fail("Root declaration is not variable-like.");var ga=e.hasInitializer(Pt)||!!e.getEffectiveTypeAnnotationNode(Pt)||Pt.parent.parent.kind===244;if(!ga&&Pt.kind===164&&(e.isExpression(Pt.parent)?ga=!!De.getContextualType(Pt.parent):(Pt.parent.kind===169||Pt.parent.kind===173)&&(ga=e.isExpression(Pt.parent.parent)&&!!De.getContextualType(Pt.parent.parent))),ga){var ua=De.getTypeAtLocation(ce);if(!ua)return 2;Rr=De.getPropertiesOfType(ua).filter(function(jr){return De.isPropertyAccessible(ce,!1,!1,ua,jr)}),yi=ce.elements}}if(Rr&&Rr.length>0){var Xn=Xs(Rr,e.Debug.checkDefined(yi));ka=e.concatenate(ka,Xn),hs(),ce.kind===205&&nr.includeCompletionsWithObjectLiteralMethodSnippets&&nr.includeCompletionsWithInsertText&&(ps(Ji),Gr(Xn,ce))}return 1}function Ct(){if(!ut)return 0;var Ji=ut.kind===18||ut.kind===27?e.tryCast(ut.parent,e.isNamedImportsOrExports):e.isTypeKeywordTokenOrIdentifier(ut)?e.tryCast(ut.parent.parent,e.isNamedImportsOrExports):void 0;if(!Ji)return 0;e.isTypeKeywordTokenOrIdentifier(ut)||(Oi=8);var ce=(Ji.kind===269?Ji.parent.parent:Ji.parent).moduleSpecifier;if(!ce)return ji=!0,Ji.kind===269?2:0;var Rr=De.getSymbolAtLocation(ce);if(!Rr)return ji=!0,2;Qa=3,ji=!1;var yi=De.getExportsAndPropertiesOfModule(Rr),qi=new e.Set(Ji.elements.filter(function(Hr){return!ds(Hr)}).map(function(Hr){return(Hr.propertyName||Hr.name).escapedText})),je=yi.filter(function(Hr){return Hr.escapedName!=="default"&&!qi.has(Hr.escapedName)});return ka=e.concatenate(ka,je),je.length||(Oi=0),1}function sa(){var Ji,ce=ut&&(ut.kind===18||ut.kind===27)?e.tryCast(ut.parent,e.isNamedExports):void 0;if(!ce)return 0;var Rr=e.findAncestor(ce,e.or(e.isSourceFile,e.isModuleDeclaration));return Qa=5,ji=!1,(Ji=Rr.locals)===null||Ji===void 0||Ji.forEach(function(yi,qi){var je,Hr;ka.push(yi),!((Hr=(je=Rr.symbol)===null||je===void 0?void 0:je.exports)===null||Hr===void 0)&&Hr.has(qi)&&(pn[e.getSymbolId(yi)]=C.SortText.OptionalMember)}),1}function en(){var Ji=si(mr,ut,Ai,Oe);if(!Ji)return 0;if(Qa=3,ji=!0,Oi=ut.kind===41?0:e.isClassLike(Ji)?2:3,!e.isClassLike(Ji))return 1;var ce=ut.kind===26?ut.parent.parent:ut.parent,Rr=e.isClassElement(ce)?e.getEffectiveModifierFlags(ce):0;if(ut.kind===79&&!ds(ut))switch(ut.getText()){case"private":Rr=Rr|8;break;case"static":Rr=Rr|32;break;case"override":Rr=Rr|16384;break}if(e.isClassStaticBlockDeclaration(ce)&&(Rr|=32),!(Rr&8)){var yi=e.isClassLike(Ji)&&Rr&16384?e.singleElementArray(e.getEffectiveBaseTypeNode(Ji)):e.getAllSuperTypeNodes(Ji),qi=e.flatMap(yi,function(je){var Hr=De.getTypeAtLocation(je);return Rr&32?(Hr==null?void 0:Hr.symbol)&&De.getPropertiesOfType(De.getTypeOfSymbolAtLocation(Hr.symbol,Ji)):Hr&&De.getPropertiesOfType(Hr)});ka=e.concatenate(ka,Qs(qi,Ji.members,Rr))}return 1}function Wa(Ji){return!!Ji.parent&&e.isParameter(Ji.parent)&&e.isConstructorDeclaration(Ji.parent.parent)&&(e.isParameterPropertyModifier(Ji.kind)||e.isDeclarationName(Ji))}function Wn(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 20:case 27:return e.isConstructorDeclaration(Ji.parent)?Ji.parent:void 0;default:if(Wa(Ji))return ce.parent}}}function mo(Ji){if(Ji){var ce,Rr=e.findAncestor(Ji.parent,function(yi){return e.isClassLike(yi)?"quit":e.isFunctionLikeDeclaration(yi)&&ce===yi.body?!0:(ce=yi,!1)});return Rr&&Rr}}function So(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 31:case 30:case 43:case 79:case 206:case 286:case 285:case 287:if(ce&&(ce.kind===279||ce.kind===280)){if(Ji.kind===31){var Rr=e.findPrecedingToken(Ji.pos,mr,void 0);if(!ce.typeArguments||Rr&&Rr.kind===43)break}return ce}else if(ce.kind===285)return ce.parent.parent;break;case 10:if(ce&&(ce.kind===285||ce.kind===287))return ce.parent.parent;break;case 19:if(ce&&ce.kind===288&&ce.parent&&ce.parent.kind===285)return ce.parent.parent.parent;if(ce&&ce.kind===287)return ce.parent.parent;break}}}function Go(Ji){var ce=Ji.parent,Rr=ce.kind;switch(Ji.kind){case 27:return Rr===254||Kc(Ji)||Rr===237||Rr===260||Pc(Rr)||Rr===258||Rr===202||Rr===259||e.isClassLike(ce)&&!!ce.typeParameters&&ce.typeParameters.end>=Ji.pos;case 24:return Rr===202;case 58:return Rr===203;case 22:return Rr===202;case 20:return Rr===292||Pc(Rr);case 18:return Rr===260;case 29:return Rr===257||Rr===226||Rr===258||Rr===259||e.isFunctionLikeKind(Rr);case 124:return Rr===167&&!e.isClassLike(ce.parent);case 25:return Rr===164||!!ce.parent&&ce.parent.kind===202;case 123:case 121:case 122:return Rr===164&&!e.isConstructorDeclaration(ce.parent);case 127:return Rr===270||Rr===275||Rr===268;case 136:case 149:return!Xi(Ji);case 79:if(Rr===270&&Ji===ce.name&&Ji.text==="type")return!1;break;case 84:case 92:case 118:case 98:case 113:case 100:case 119:case 85:case 137:return!0;case 152:return Rr!==270;case 41:return e.isFunctionLike(Ji.parent)&&!e.isMethodDeclaration(Ji.parent)}if(yr(wr(Ji))&&Xi(Ji)||Wa(Ji)&&(!e.isIdentifier(Ji)||e.isParameterPropertyModifier(wr(Ji))||ds(Ji)))return!1;switch(wr(Ji)){case 126:case 84:case 85:case 135:case 92:case 98:case 118:case 119:case 121:case 122:case 123:case 124:case 113:return!0;case 131:return e.isPropertyDeclaration(Ji.parent)}var yi=e.findAncestor(Ji.parent,e.isClassLike);if(yi&&Ji===xt&&ys(Ji,Oe))return!1;var qi=e.getAncestor(Ji.parent,167);if(qi&&Ji!==xt&&e.isClassLike(xt.parent.parent)&&Oe<=xt.end){if(ys(Ji,xt.end))return!1;if(Ji.kind!==63&&(e.isInitializedProperty(qi)||e.hasType(qi)))return!0}return e.isDeclarationName(Ji)&&!e.isShorthandPropertyAssignment(Ji.parent)&&!e.isJsxAttribute(Ji.parent)&&!(e.isClassLike(Ji.parent)&&(Ji!==xt||Oe>xt.end))}function ys(Ji,ce){return Ji.kind!==63&&(Ji.kind===26||!e.positionsAreOnSameLine(Ji.end,ce,mr))}function Pc(Ji){return e.isFunctionLikeKind(Ji)&&Ji!==171}function Vc(Ji){if(Ji.kind===8){var ce=Ji.getFullText();return ce.charAt(ce.length-1)==="."}return!1}function Kc(Ji){return Ji.parent.kind===255&&!e.isPossiblyTypeArgumentPosition(Ji,mr,De)}function Xs(Ji,ce){if(ce.length===0)return Ji;for(var Rr=new e.Set,yi=new e.Set,qi=0,je=ce;qi=0&&!b(A,y[V],115);V--);return e.forEach(m($.statement),function(L){oe($,L)&&b(A,L.getFirstToken(),81,86)}),A}function J($){var A=f($);if(A)switch(A.kind){case 242:case 243:case 244:case 240:case 241:return se(A);case 249:return ie(A)}}function ie($){var A=[];return b(A,$.getFirstToken(),107),e.forEach($.caseBlock.clauses,function(y){b(A,y.getFirstToken(),82,88),e.forEach(m(y),function(V){oe($,V)&&b(A,V.getFirstToken(),81)})}),A}function B($,A){var y=[];if(b(y,$.getFirstToken(),111),$.catchClause&&b(y,$.catchClause.getFirstToken(),83),$.finallyBlock){var V=e.findChildOfKind($,96,A);b(y,V,96)}return y}function q($,A){var y=p($);if(!!y){var V=[];return e.forEach(N(y),function(L){V.push(e.findChildOfKind(L,109,A))}),e.isFunctionBlock(y)&&e.forEachReturnStatement(y,function(L){V.push(e.findChildOfKind(L,105,A))}),V}}function O($,A){var y=e.getContainingFunction($);if(!!y){var V=[];return e.forEachReturnStatement(e.cast(y.body,e.isBlock),function(L){V.push(e.findChildOfKind(L,105,A))}),e.forEach(N(y.body),function(L){V.push(e.findChildOfKind(L,109,A))}),V}}function ve($){var A=e.getContainingFunction($);if(!!A){var y=[];return A.modifiers&&A.modifiers.forEach(function(V){b(y,V,131)}),e.forEachChild(A,function(V){he(V,function(L){e.isAwaitExpression(L)&&b(y,L.getFirstToken(),132)})}),y}}function ee($){var A=e.getContainingFunction($);if(!!A){var y=[];return e.forEachChild(A,function(V){he(V,function(L){e.isYieldExpression(L)&&b(y,L.getFirstToken(),125)})}),y}}function he($,A){A($),!e.isFunctionLike($)&&!e.isClassLike($)&&!e.isInterfaceDeclaration($)&&!e.isModuleDeclaration($)&&!e.isTypeAliasDeclaration($)&&!e.isTypeNode($)&&e.forEachChild($,function(y){return he(y,A)})}function F($,A){for(var y=x($,A),V=[],L=0;L=P.end;U--)if(!e.isWhiteSpaceSingleLine(A.text.charCodeAt(U))){Y=!1;break}if(Y){V.push({fileName:A.fileName,textSpan:e.createTextSpanFromBounds(P.getStart(),k.end),kind:"reference"}),L++;continue}}V.push(R(y[L],A))}return V}function x($,A){for(var y=[];e.isIfStatement($.parent)&&$.parent.elseStatement===$;)$=$.parent;for(;;){var V=$.getChildren(A);b(y,V[0],99);for(var L=V.length-1;L>=0&&!b(y,V[L],91);L--);if(!$.elseStatement||!e.isIfStatement($.elseStatement))break;$=$.elseStatement}return y}function Q($,A){return!!e.findAncestor($.parent,function(y){return e.isLabeledStatement(y)?y.label.escapedText===A:"quit"})}})(a=e.DocumentHighlights||(e.DocumentHighlights={}))})(ke||(ke={}));var ke;(function(e){function a(X){return!!X.sourceFile}function C(X,le){return I(X,le)}e.createDocumentRegistry=C;function I(X,le,N){le===void 0&&(le="");var p=new e.Map,m=e.createGetCanonicalFileName(!!X);function G(){var O=e.arrayFrom(p.keys()).filter(function(ve){return ve&&ve.charAt(0)==="_"}).map(function(ve){var ee=p.get(ve),he=[];return ee.forEach(function(F,x){a(F)?he.push({name:x,scriptKind:F.sourceFile.scriptKind,refCount:F.languageServiceRefCount}):F.forEach(function(Q,$){return he.push({name:x,scriptKind:$,refCount:Q.languageServiceRefCount})})}),he.sort(function(F,x){return x.refCount-F.refCount}),{bucket:ve,sourceFiles:he}});return JSON.stringify(O,void 0,2)}function oe(O){return typeof O.getCompilationSettings=="function"?O.getCompilationSettings():O}function f(O,ve,ee,he,F){var x=e.toPath(O,le,m),Q=E(oe(ve));return T(O,x,ve,Q,ee,he,F)}function T(O,ve,ee,he,F,x,Q){return J(O,ve,ee,he,F,x,!0,Q)}function K(O,ve,ee,he,F){var x=e.toPath(O,le,m),Q=E(oe(ve));return b(O,x,ve,Q,ee,he,F)}function b(O,ve,ee,he,F,x,Q){return J(O,ve,oe(ee),he,F,x,!1,Q)}function se(O,ve){var ee=a(O)?O:O.get(e.Debug.checkDefined(ve,"If there are more than one scriptKind's for same document the scriptKind should be provided"));return e.Debug.assert(ve===void 0||!ee||ee.sourceFile.scriptKind===ve,"Script kind should match provided ScriptKind:".concat(ve," and sourceFile.scriptKind: ").concat(ee==null?void 0:ee.sourceFile.scriptKind,", !entry: ").concat(!ee)),ee}function J(O,ve,ee,he,F,x,Q,$){var A,y,V,L;$=e.ensureScriptKind(O,$);var P=oe(ee),k=ee===P?void 0:ee,Y=$===6?100:e.getEmitScriptTarget(P),U={languageVersion:Y,impliedNodeFormat:k&&e.getImpliedNodeFormatForFile(ve,(L=(V=(y=(A=k.getCompilerHost)===null||A===void 0?void 0:A.call(k))===null||y===void 0?void 0:y.getModuleResolutionCache)===null||V===void 0?void 0:V.call(y))===null||L===void 0?void 0:L.getPackageJsonInfoCache(),k,P),setExternalModuleIndicator:e.getSetExternalModuleIndicator(P)},j=p.size,H=e.getOrUpdate(p,he,function(){return new e.Map});if(e.tracing){p.size>j&&e.tracing.instant("session","createdDocumentRegistryBucket",{configFilePath:P.configFilePath,key:he});var w=!e.isDeclarationFileName(ve)&&e.forEachEntry(p,function(g,ne){return ne!==he&&g.has(ve)&&ne});w&&e.tracing.instant("session","documentRegistryBucketOverlap",{path:ve,key1:w,key2:he})}var l=H.get(ve),d=l&&se(l,$);if(!d&&N){var D=N.getDocument(he,ve);D&&(e.Debug.assert(Q),d={sourceFile:D,languageServiceRefCount:0},fe())}if(d)d.sourceFile.version!==x&&(d.sourceFile=e.updateLanguageServiceSourceFile(d.sourceFile,F,x,F.getChangeRange(d.sourceFile.scriptSnapshot)),N&&N.setDocument(he,ve,d.sourceFile)),Q&&d.languageServiceRefCount++;else{var D=e.createLanguageServiceSourceFile(O,F,U,x,!1,$);N&&N.setDocument(he,ve,D),d={sourceFile:D,languageServiceRefCount:1},fe()}return e.Debug.assert(d.languageServiceRefCount!==0),d.sourceFile;function fe(){if(!l)H.set(ve,d);else if(a(l)){var g=new e.Map;g.set(l.sourceFile.scriptKind,l),g.set($,d),H.set(ve,g)}else l.set($,d)}}function ie(O,ve,ee){var he=e.toPath(O,le,m),F=E(ve);return B(he,F,ee)}function B(O,ve,ee){var he=e.Debug.checkDefined(p.get(ve)),F=he.get(O),x=se(F,ee);x.languageServiceRefCount--,e.Debug.assert(x.languageServiceRefCount>=0),x.languageServiceRefCount===0&&(a(F)?he.delete(O):(F.delete(ee),F.size===1&&he.set(O,e.firstDefinedIterator(F.values(),e.identity))))}function q(O,ve){return e.arrayFrom(p.entries(),function(ee){var he=ee[0],F=ee[1],x=F.get(O),Q=x&&se(x,ve);return[he,Q&&Q.languageServiceRefCount]})}return{acquireDocument:f,acquireDocumentWithKey:T,updateDocument:K,updateDocumentWithKey:b,releaseDocument:ie,releaseDocumentWithKey:B,getLanguageServiceRefCounts:q,reportStats:G,getKeyForCompilationSettings:E}}e.createDocumentRegistryInternal=I;function R(X){var le;if(X===null||typeof X!="object")return""+X;if(e.isArray(X))return"[".concat((le=e.map(X,function(m){return R(m)}))===null||le===void 0?void 0:le.join(","),"]");var N="{";for(var p in X)e.hasOwnProperty.call(X,p)&&(N+="".concat(p,": ").concat(R(X[p])));return N+"}"}function E(X){return e.sourceFileAffectingCompilerOptions.map(function(le){return R(e.getCompilerOptionValue(X,le))}).join("|")+(X.pathsBasePath?"|".concat(X.pathsBasePath):void 0)}})(ke||(ke={}));var ke;(function(e){var a;(function(C){function I(ve,ee,he,F){var x=m(ve,he,F);return function(Q,$,A){var y=X(ve,ee,x,$,he,F),V=y.directImports,L=y.indirectUsers;return Ke({indirectUsers:L},le(V,Q,$.exportKind,he,A))}}C.createImportTracker=I;var R;(function(ve){ve[ve.Named=0]="Named",ve[ve.Default=1]="Default",ve[ve.ExportEquals=2]="ExportEquals"})(R=C.ExportKind||(C.ExportKind={}));var E;(function(ve){ve[ve.Import=0]="Import",ve[ve.Export=1]="Export"})(E=C.ImportExport||(C.ImportExport={}));function X(ve,ee,he,F,x,Q){var $=F.exportingModuleSymbol,A=F.exportKind,y=e.nodeSeenTracker(),V=e.nodeSeenTracker(),L=[],P=!!$.globalExports,k=P?void 0:[];return U($),{directImports:L,indirectUsers:Y()};function Y(){if(P)return ve;if($.declarations)for(var D=0,fe=$.declarations;D2&&(e.Debug.assert(U===void 0),j+=1,H-=1),e.createTextSpanFromBounds(j,H)}function A(k){return k.kind===0?k.textSpan:$(k.node,k.node.getSourceFile())}C.getTextSpanOfEntry=A;function y(k){var Y=e.getDeclarationFromName(k);return!!Y&&L(Y)||k.kind===88||e.isWriteAccess(k)}function V(k,Y){var U;if(!Y)return!1;var j=e.getDeclarationFromName(k)||(k.kind===88?k.parent:e.isLiteralComputedPropertyDeclarationName(k)||k.kind===134&&e.isConstructorDeclaration(k.parent)?k.parent.parent:void 0),H=j&&e.isBinaryExpression(j)?j.left:void 0;return!!(j&&((U=Y.declarations)===null||U===void 0?void 0:U.some(function(w){return w===j||w===H})))}function L(k){if(k.flags&16777216)return!0;switch(k.kind){case 221:case 203:case 257:case 226:case 88:case 260:case 299:case 275:case 267:case 265:case 270:case 258:case 338:case 345:case 285:case 261:case 264:case 268:case 274:case 164:case 297:case 259:case 163:return!0;case 296:return!e.isArrayLiteralOrObjectLiteralDestructuringPattern(k.parent);case 256:case 213:case 171:case 169:case 172:case 173:return!!k.body;case 254:case 167:return!!k.initializer||e.isCatchClause(k.parent);case 168:case 166:case 347:case 340:return!1;default:return e.Debug.failBadSyntaxKind(k)}}var P;(function(k){function Y(Oe,nr,Mr,Pe,Ue,fr,De){var gr,Vr;if(fr===void 0&&(fr={}),De===void 0&&(De=new e.Set(Pe.map(function(Rt){return Rt.fileName}))),nr=U(nr,fr),e.isSourceFile(nr)){var Tr=e.GoToDefinition.getReferenceAtPosition(nr,Oe,Mr);if(!(Tr!=null&&Tr.file))return;var vi=Mr.getTypeChecker().getMergedSymbol(Tr.file.symbol);if(vi)return fe(Mr,vi,!1,Pe,De);var Ui=Mr.getFileIncludeReasons();return Ui?[{definition:{type:5,reference:Tr.reference,file:nr},references:H(Tr.file,Ui,Mr)||e.emptyArray}]:void 0}if(!fr.implementations){var Yi=ne(nr,Pe,Ue);if(Yi)return Yi}var Wi=Mr.getTypeChecker(),ct=Wi.getSymbolAtLocation(e.isConstructorDeclaration(nr)&&nr.parent.name||nr);if(!ct){if(!fr.implementations&&e.isStringLiteralLike(nr)){if(e.isModuleSpecifierLike(nr)){var Ui=Mr.getFileIncludeReasons(),Li=(Vr=(gr=nr.getSourceFile().resolvedModules)===null||gr===void 0?void 0:gr.get(nr.text,e.getModeForUsageLocation(nr.getSourceFile(),nr)))===null||Vr===void 0?void 0:Vr.resolvedFileName,nt=Li?Mr.getSourceFile(Li):void 0;if(nt)return[{definition:{type:4,node:nr},references:H(nt,Ui,Mr)||e.emptyArray}]}return ae(nr,Pe,Wi,Ue)}return}if(ct.escapedName==="export=")return fe(Mr,ct.parent,!1,Pe,De);var Mt=l(ct,Mr,Pe,Ue,fr,De);if(Mt&&!(ct.flags&33554432))return Mt;var xt=w(nr,ct,Wi),ut=xt&&l(xt,Mr,Pe,Ue,fr,De),Dt=ue(ct,nr,Pe,De,Wi,Ue,fr);return d(Mr,Mt,Dt,ut)}k.getReferencedSymbolsForNode=Y;function U(Oe,nr){return nr.use===1?Oe=e.getAdjustedReferenceLocation(Oe):nr.use===2&&(Oe=e.getAdjustedRenameLocation(Oe)),Oe}k.getAdjustedNode=U;function j(Oe,nr,Mr,Pe){var Ue,fr;Pe===void 0&&(Pe=new e.Set(Mr.map(function(Tr){return Tr.fileName})));var De=(Ue=nr.getSourceFile(Oe))===null||Ue===void 0?void 0:Ue.symbol;if(De)return((fr=fe(nr,De,!1,Mr,Pe)[0])===null||fr===void 0?void 0:fr.references)||e.emptyArray;var gr=nr.getFileIncludeReasons(),Vr=nr.getSourceFile(Oe);return Vr&&gr&&H(Vr,gr,nr)||e.emptyArray}k.getReferencesForFileName=j;function H(Oe,nr,Mr){for(var Pe,Ue=nr.get(Oe.path)||e.emptyArray,fr=0,De=Ue;fr=0&&!(gr>Mr.end);){var Vr=gr+De;(gr===0||!e.isIdentifierPart(Ue.charCodeAt(gr-1),99))&&(Vr===fr||!e.isIdentifierPart(Ue.charCodeAt(Vr),99))&&Pe.push(gr),gr=Ue.indexOf(nr,gr+De+1)}return Pe}function Ye(Oe,nr){var Mr=Oe.getSourceFile(),Pe=nr.text,Ue=e.mapDefined(ir(Mr,Pe,Oe),function(fr){return fr===nr||e.isJumpStatementTarget(fr)&&e.getTargetLabel(fr,Pe)===nr?E(fr):void 0});return[{definition:{type:1,node:nr},references:Ue}]}function Br(Oe,nr){switch(Oe.kind){case 80:if(e.isJSDocMemberName(Oe.parent))return!0;case 79:return Oe.text.length===nr.length;case 14:case 10:{var Mr=Oe;return(e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Mr)||e.isNameOfModuleDeclaration(Oe)||e.isExpressionOfExternalModuleImportEqualsDeclaration(Oe)||e.isCallExpression(Oe.parent)&&e.isBindableObjectDefinePropertyCall(Oe.parent)&&Oe.parent.arguments[1]===Oe)&&Mr.text.length===nr.length}case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Oe)&&Oe.text.length===nr.length;case 88:return nr.length===7;default:return!1}}function Er(Oe,nr){var Mr=e.flatMap(Oe,function(Pe){return nr.throwIfCancellationRequested(),e.mapDefined(ir(Pe,"meta",Pe),function(Ue){var fr=Ue.parent;if(e.isImportMeta(fr))return E(fr)})});return Mr.length?[{definition:{type:2,node:Mr[0].node},references:Mr}]:void 0}function Ne(Oe,nr,Mr,Pe){var Ue=e.flatMap(Oe,function(fr){return Mr.throwIfCancellationRequested(),e.mapDefined(ir(fr,e.tokenToString(nr),fr),function(De){if(De.kind===nr&&(!Pe||Pe(De)))return E(De)})});return Ue.length?[{definition:{type:2,node:Ue[0].node},references:Ue}]:void 0}function n(Oe,nr,Mr,Pe){return Pe===void 0&&(Pe=!0),Mr.cancellationToken.throwIfCancellationRequested(),lr(Oe,Oe,nr,Mr,Pe)}function lr(Oe,nr,Mr,Pe,Ue){if(!!Pe.markSearchedSymbols(nr,Mr.allSearchSymbols))for(var fr=0,De=Cr(nr,Mr.text,Oe);fr0;Ae--){var de=we[Ae];he(Ie,de)}return[we.length-1,we[0]]}function he(Ie,_e){var we=q(Ie,_e);J(p,we),N.push(p),m.push(G),G=void 0,p=we}function F(){p.children&&(y(p.children,p),w(p.children)),p=N.pop(),G=m.pop()}function x(Ie,_e,we){he(Ie,we),A(_e),F()}function Q(Ie){Ie.initializer&&He(Ie.initializer)?(he(Ie),e.forEachChild(Ie.initializer,A),F()):x(Ie,Ie.initializer)}function $(Ie){return!e.hasDynamicName(Ie)||Ie.kind!==221&&e.isPropertyAccessExpression(Ie.name.expression)&&e.isIdentifier(Ie.name.expression.expression)&&e.idText(Ie.name.expression.expression)==="Symbol"}function A(Ie){var _e;if(X.throwIfCancellationRequested(),!(!Ie||e.isToken(Ie)))switch(Ie.kind){case 171:var we=Ie;x(we,we.body);for(var de=0,ye=we.parameters;de0&&(he(Ur,or),e.forEachChild(Ur.right,A),F()):e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,or):(he(Ur,or),x(Ie,Ur.right,ii.name),F()),ve(pe);return}case 7:case 9:{var qr=Ie,or=wr===7?qr.arguments[0]:qr.arguments[0].expression,si=qr.arguments[1],Di=ee(Ie,or),pe=Di[0],wi=Di[1];he(Ie,wi),he(Ie,e.setTextRange(e.factory.createIdentifier(si.text),si)),A(Ie.arguments[2]),F(),F(),ve(pe);return}case 5:{var Ur=Ie,ii=Ur.left,Xi=ii.expression;if(e.isIdentifier(Xi)&&e.getElementOrPropertyAccessName(ii)!=="prototype"&&G&&G.has(Xi.text)){e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,Xi):e.isBindableStaticAccessExpression(ii)&&(he(Ur,Xi),x(Ur.left,Ur.right,e.getNameOrArgument(ii)),F());return}break}case 4:case 0:case 8:break;default:e.Debug.assertNever(wr)}}default:e.hasJSDocNodes(Ie)&&e.forEach(Ie.jsDoc,function(et){e.forEach(et.tags,function(Gi){e.isJSDocTypeAlias(Gi)&&B(Gi)})}),e.forEachChild(Ie,A)}}function y(Ie,_e){var we=new e.Map;e.filterMutate(Ie,function(de,ye){var Ae=de.name||e.getNameOfDeclaration(de.node),er=Ae&&b(Ae);if(!er)return!0;var ir=we.get(er);if(!ir)return we.set(er,de),!0;if(ir instanceof Array){for(var Cr=0,Ye=ir;Cr0)return rr(we)}switch(Ie.kind){case 305:var de=Ie;return e.isExternalModule(de)?'"'.concat(e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(de.fileName)))),'"'):"";case 271:return e.isExportAssignment(Ie)&&Ie.isExportEquals?"export=":"default";case 214:case 256:case 213:case 257:case 226:return e.getSyntacticModifierFlags(Ie)&512?"default":ze(Ie);case 171:return"constructor";case 175:return"new()";case 174:return"()";case 176:return"[]";default:return""}}function fe(Ie){var _e=[];function we(ye){if(de(ye)&&(_e.push(ye),ye.children))for(var Ae=0,er=ye.children;Ae0)return rr(e.declarationNameToString(Ie.name));if(e.isVariableDeclaration(_e))return rr(e.declarationNameToString(_e.name));if(e.isBinaryExpression(_e)&&_e.operatorToken.kind===63)return b(_e.left).replace(R,"");if(e.isPropertyAssignment(_e))return b(_e.name);if(e.getSyntacticModifierFlags(Ie)&512)return"default";if(e.isClassLike(Ie))return"";if(e.isCallExpression(_e)){var we=Ee(_e.expression);if(we!==void 0){if(we=rr(we),we.length>E)return"".concat(we," callback");var de=rr(e.mapDefined(_e.arguments,function(ye){return e.isStringLiteralLike(ye)?ye.getText(le):void 0}).join(", "));return"".concat(we,"(").concat(de,") callback")}}return""}function Ee(Ie){if(e.isIdentifier(Ie))return Ie.text;if(e.isPropertyAccessExpression(Ie)){var _e=Ee(Ie.expression),we=Ie.name.text;return _e===void 0?we:"".concat(_e,".").concat(we)}else return}function He(Ie){switch(Ie.kind){case 214:case 213:case 226:return!0;default:return!1}}function rr(Ie){return Ie=Ie.length>E?Ie.substring(0,E)+"...":Ie,Ie.replace(/\\?(\r?\n|\r|\u2028|\u2029)/g,"")}})(a=e.NavigationBar||(e.NavigationBar={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){function I(x,Q,$,A,y,V){var L=e.textChanges.ChangeTracker.fromContext({host:$,formatContext:Q,preferences:y}),P=function(D){return e.stableSort(p(X(D,x,A,V)),function(fe,g){return O(fe,g)})},k=R(x,x.statements.filter(e.isImportDeclaration));k.forEach(function(D){return d(D,P)});var Y=x.statements.filter(e.isExportDeclaration);d(Y,G);for(var U=0,j=x.statements.filter(e.isAmbientModule);U=2))return!0}return!1}function X(x,Q,$,A){if(A)return x;for(var y=$.getTypeChecker(),V=$.getCompilerOptions(),L=y.getJsxNamespace(Q),P=y.getJsxFragmentFactory(Q),k=!!(Q.transformFlags&2),Y=[],U=0,j=x;U0?j[0]:w[0],ge=Z.length===0?ne?void 0:e.factory.createNamedImports(e.emptyArray):w.length===0?e.factory.createNamedImports(Z):e.factory.updateNamedImports(w[0].importClause.namedBindings,Z);U&&ne&&ge?(L.push(oe(Be,ne,void 0)),L.push(oe((Q=w[0])!==null&&Q!==void 0?Q:Be,void 0,ge))):L.push(oe(Be,ne,ge))}}return L}C.coalesceImports=p;function m(x){for(var Q,$={defaultImports:[],namespaceImports:[],namedImports:[]},A={defaultImports:[],namespaceImports:[],namedImports:[]},y=0,V=x;y1&&ie.push(m(q,O,"comment"))}}function p(b,se,J,ie){e.isJsxText(b)||N(b.pos,se,J,ie)}function m(b,se,J){return T(e.createTextSpanFromBounds(b,se),J)}function G(b,se){switch(b.kind){case 235:if(e.isFunctionLike(b.parent))return oe(b.parent,b,se);switch(b.parent.kind){case 240:case 243:case 244:case 242:case 239:case 241:case 248:case 292:return x(b.parent);case 252:var J=b.parent;if(J.tryBlock===b)return x(b.parent);if(J.finallyBlock===b){var ie=e.findChildOfKind(J,96,se);if(ie)return x(ie)}default:return T(e.createTextSpanFromNode(b,se),"code")}case 262:return x(b.parent);case 257:case 226:case 258:case 260:case 263:case 182:case 201:return x(b);case 184:return x(b,!1,!e.isTupleTypeNode(b.parent),22);case 289:case 290:return Q(b.statements);case 205:return F(b);case 204:return F(b,22);case 278:return O(b);case 282:return ve(b);case 279:case 280:return ee(b.attributes);case 223:case 14:return he(b);case 202:return x(b,!1,!e.isBindingElement(b.parent),22);case 214:return q(b);case 208:return B(b);case 212:return $(b)}function B(A){if(!!A.arguments.length){var y=e.findChildOfKind(A,20,se),V=e.findChildOfKind(A,21,se);if(!(!y||!V||e.positionsAreOnSameLine(y.pos,V.pos,se)))return f(y,V,A,se,!1,!0)}}function q(A){if(!(e.isBlock(A.body)||e.isParenthesizedExpression(A.body)||e.positionsAreOnSameLine(A.body.getFullStart(),A.body.getEnd(),se))){var y=e.createTextSpanFromBounds(A.body.getFullStart(),A.body.getEnd());return T(y,"code",e.createTextSpanFromNode(A))}}function O(A){var y=e.createTextSpanFromBounds(A.openingElement.getStart(se),A.closingElement.getEnd()),V=A.openingElement.tagName.getText(se),L="<"+V+">...";return T(y,"code",y,!1,L)}function ve(A){var y=e.createTextSpanFromBounds(A.openingFragment.getStart(se),A.closingFragment.getEnd()),V="<>...";return T(y,"code",y,!1,V)}function ee(A){if(A.properties.length!==0)return m(A.getStart(se),A.getEnd(),"code")}function he(A){if(!(A.kind===14&&A.text.length===0))return m(A.getStart(se),A.getEnd(),"code")}function F(A,y){return y===void 0&&(y=18),x(A,!1,!e.isArrayLiteralExpression(A.parent)&&!e.isCallExpression(A.parent),y)}function x(A,y,V,L,P){y===void 0&&(y=!1),V===void 0&&(V=!0),L===void 0&&(L=18),P===void 0&&(P=L===18?19:23);var k=e.findChildOfKind(b,L,se),Y=e.findChildOfKind(b,P,se);return k&&Y&&f(k,Y,A,se,y,V)}function Q(A){return A.length?T(e.createTextSpanFromRange(A),"code"):void 0}function $(A){if(!e.positionsAreOnSameLine(A.getStart(),A.getEnd(),se)){var y=e.createTextSpanFromBounds(A.getStart(),A.getEnd());return T(y,"code",e.createTextSpanFromNode(A))}}}function oe(b,se,J){var ie=K(b,se,J),B=e.findChildOfKind(se,19,J);return ie&&B&&f(ie,B,b,J,b.kind!==214)}function f(b,se,J,ie,B,q){B===void 0&&(B=!1),q===void 0&&(q=!0);var O=e.createTextSpanFromBounds(q?b.getFullStart():b.getStart(ie),se.getEnd());return T(O,"code",e.createTextSpanFromNode(J,ie),B)}function T(b,se,J,ie,B){return J===void 0&&(J=b),ie===void 0&&(ie=!1),B===void 0&&(B="..."),{textSpan:b,kind:se,hintSpan:J,bannerText:B,autoCollapse:ie}}function K(b,se,J){if(e.isNodeArrayMultiLine(b.parameters,J)){var ie=e.findChildOfKind(b,20,J);if(ie)return ie}return e.findChildOfKind(se,18,J)}})(a=e.OutliningElementsCollector||(e.OutliningElementsCollector={}))})(ke||(ke={}));var ke;(function(e){var a;(function(y){y[y.exact=0]="exact",y[y.prefix=1]="prefix",y[y.substring=2]="substring",y[y.camelCase=3]="camelCase"})(a=e.PatternMatchKind||(e.PatternMatchKind={}));function C(y,V){return{kind:y,isCaseSensitive:V}}function I(y){var V=new e.Map,L=y.trim().split(".").map(function(P){return f(P.trim())});if(!L.some(function(P){return!P.subWordTextChunks.length}))return{getFullMatch:function(P,k){return R(P,k,L,V)},getMatchForLastSegmentOfPattern:function(P){return le(P,e.last(L),V)},patternContainsDots:L.length>1}}e.createPatternMatcher=I;function R(y,V,L,P){var k=le(V,e.last(L),P);if(!!k&&!(L.length-1>y.length)){for(var Y,U=L.length-2,j=y.length-1;U>=0;U-=1,j-=1)Y=N(Y,le(y[j],L[U],P));return Y}}function E(y,V){var L=V.get(y);return L||V.set(y,L=ve(y)),L}function X(y,V,L){var P=b(y,V.textLowerCase);if(P===0)return C(V.text.length===y.length?a.exact:a.prefix,e.startsWith(y,V.text));if(V.isLowerCase){if(P===-1)return;for(var k=E(y,L),Y=0,U=k;Y0)return C(a.substring,!0);if(V.characterSpans.length>0){var H=E(y,L),w=oe(y,H,V,!1)?!0:oe(y,H,V,!0)?!1:void 0;if(w!==void 0)return C(a.camelCase,w)}}}function le(y,V,L){if(A(V.totalTextChunk.text,function(w){return w!==32&&w!==42})){var P=X(y,V.totalTextChunk,L);if(P)return P}for(var k=V.subWordTextChunks,Y,U=0,j=k;U=65&&y<=90)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toUpperCase()}function K(y){if(y>=97&&y<=122)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toLowerCase()}function b(y,V){for(var L=y.length-V.length,P=function(U){if(A(V,function(j,H){return se(y.charCodeAt(H+U))===j}))return{value:U}},k=0;k<=L;k++){var Y=P(k);if(typeof Y=="object")return Y.value}return-1}function se(y){return y>=65&&y<=90?97+(y-65):y<127?y:String.fromCharCode(y).toLowerCase().charCodeAt(0)}function J(y){return y>=48&&y<=57}function ie(y){return T(y)||K(y)||J(y)||y===95||y===36}function B(y){for(var V=[],L=0,P=0,k=0;k0&&(V.push(q(y.substr(L,P))),P=0)}return P>0&&V.push(q(y.substr(L,P))),V}function q(y){var V=y.toLowerCase();return{text:y,textLowerCase:V,isLowerCase:y===V,characterSpans:O(y)}}function O(y){return ee(y,!1)}e.breakIntoCharacterSpans=O;function ve(y){return ee(y,!0)}e.breakIntoWordSpans=ve;function ee(y,V){for(var L=[],P=0,k=1;kf)break e;var ve=e.singleOrUndefined(e.getTrailingCommentRanges(T.text,q.end));if(ve&&ve.kind===2&&A(ve.pos,ve.end),R(T,f,q)){if(e.isBlock(q)||e.isTemplateSpan(q)||e.isTemplateHead(q)||e.isTemplateTail(q)||B&&e.isTemplateHead(B)||e.isVariableDeclarationList(q)&&e.isVariableStatement(se)||e.isSyntaxList(q)&&e.isVariableDeclarationList(se)||e.isVariableDeclaration(q)&&e.isSyntaxList(se)&&J.length===1||e.isJSDocTypeExpression(q)||e.isJSDocSignature(q)||e.isJSDocTypeLiteral(q)){se=q;break}if(e.isTemplateSpan(se)&&O&&e.isTemplateMiddleOrTemplateTail(O)){var ee=q.getFullStart()-2,he=O.getStart()+1;$(ee,he)}var F=e.isSyntaxList(q)&&m(B)&&G(O)&&!e.positionsAreOnSameLine(B.getStart(),O.getStart(),T),x=F?B.getEnd():q.getStart(),Q=F?O.getStart():oe(T,q);e.hasJSDocNodes(q)&&((K=q.jsDoc)===null||K===void 0?void 0:K.length)&&$(e.first(q.jsDoc).getStart(),Q),$(x,Q),(e.isStringLiteral(q)||e.isTemplateLiteral(q))&&$(x+1,Q-1),se=q;break}if(ie===J.length-1)break e}}return b;function $(y,V){if(y!==V){var L=e.createTextSpanFromBounds(y,V);(!b||!e.textSpansEqual(L,b.textSpan)&&e.textSpanIntersectsWithPosition(L,f))&&(b=Ke({textSpan:L},b&&{parent:b}))}}function A(y,V){$(y,V);for(var L=y;T.text.charCodeAt(L)===47;)L++;$(L,V)}}C.getSmartSelectionRange=I;function R(f,T,K){if(e.Debug.assert(K.pos<=T),T0&&e.last(D).kind===27&&fe++,fe}function O(l,d,D,fe){return e.Debug.assert(D>=d.getStart(),"Assumed 'position' could not occur before node."),e.isTemplateLiteralToken(d)?e.isInsideTemplateLiteral(d,D,fe)?0:l+2:l+1}function ve(l,d,D){var fe=e.isNoSubstitutionTemplateLiteral(l.template)?1:l.template.templateSpans.length+1;return d!==0&&e.Debug.assertLessThan(d,fe),{isTypeParameterList:!1,invocation:{kind:0,node:l},argumentsSpan:he(l,D),argumentIndex:d,argumentCount:fe}}function ee(l,d){var D=l.getFullStart(),fe=e.skipTrivia(d.text,l.getEnd(),!1);return e.createTextSpan(D,fe-D)}function he(l,d){var D=l.template,fe=D.getStart(),g=D.getEnd();if(D.kind===223){var ne=e.last(D.templateSpans);ne.literal.getFullWidth()===0&&(g=e.skipTrivia(d.text,g,!1))}return e.createTextSpan(fe,g-fe)}function F(l,d,D,fe,g){for(var ne=function(Fe){e.Debug.assert(e.rangeContainsRange(Fe.parent,Fe),"Not a subspan",function(){return"Child: ".concat(e.Debug.formatSyntaxKind(Fe.kind),", parent: ").concat(e.Debug.formatSyntaxKind(Fe.parent.kind))});var Z=T(Fe,d,D,fe);if(Z)return{value:Z}},ue=l;!e.isSourceFile(ue)&&(g||!e.isBlock(ue));ue=ue.parent){var We=ne(ue);if(typeof We=="object")return We.value}}function x(l,d,D){var fe=l.getChildren(D),g=fe.indexOf(d);return e.Debug.assert(g>=0&&fe.length>g+1),fe[g+1]}function Q(l){return l.kind===0?e.getInvokedExpression(l.node):l.called}function $(l){return l.kind===0?l.node:l.kind===1?l.called:l.node}var A=70246400;function y(l,d,D,fe,g,ne){var ue,We=D.isTypeParameterList,Fe=D.argumentCount,Z=D.argumentsSpan,Be=D.invocation,ge=D.argumentIndex,Re=$(Be),ze=Be.kind===2?Be.symbol:g.getSymbolAtLocation(Q(Be))||ne&&((ue=d.declaration)===null||ue===void 0?void 0:ue.symbol),Ee=ze?e.symbolToDisplayParts(g,ze,ne?fe:void 0,void 0):e.emptyArray,He=e.map(l,function(Br){return k(Br,Ee,We,g,Re,fe)});ge!==0&&e.Debug.assertLessThan(ge,Fe);for(var rr=0,Ie=0,_e=0;_e1))for(var de=0,ye=0,Ae=we;ye=Fe){rr=Ie+de;break}de++}Ie+=we.length}e.Debug.assert(rr!==-1);var ir={items:e.flatMapToMutable(He,e.identity),applicableSpan:Z,selectedItemIndex:rr,argumentIndex:ge,argumentCount:Fe},Cr=ir.items[rr];if(Cr.isVariadic){var Ye=e.findIndex(Cr.parameters,function(Br){return!!Br.isRest});-1j?U.substr(0,j-3)+"...":U}function k(U){var j=71286784,H={removeComments:!0},w=e.createPrinter(H);return e.usingSingleLineStringWriter(function(l){var d=b.typeToTypeNode(U,void 0,j,l);e.Debug.assertIsDefined(d,"should always get typenode"),w.writeNode(4,d,p,l)})}function Y(U){return U==="undefined"}}C.provideInlayHints=le})(a=e.InlayHints||(e.InlayHints={}))})(ke||(ke={}));var ke;(function(e){var a=/^data:(?:application\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\/=]+)$)?/;function C(X){var le=e.createGetCanonicalFileName(X.useCaseSensitiveFileNames()),N=X.getCurrentDirectory(),p=new e.Map,m=new e.Map;return{tryGetSourcePosition:f,tryGetGeneratedPosition:T,toLineColumnOffset:J,clearCache:ie};function G(B){return e.toPath(B,N,le)}function oe(B,q){var O=G(B),ve=m.get(O);if(ve)return ve;var ee;if(X.getDocumentPositionMapper)ee=X.getDocumentPositionMapper(B,q);else if(X.readFile){var he=se(B);ee=he&&e.getDocumentPositionMapper({getSourceFileLike:se,getCanonicalFileName:le,log:function(F){return X.log(F)}},B,e.getLineInfo(he.text,e.getLineStarts(he)),function(F){return!X.fileExists||X.fileExists(F)?X.readFile(F):void 0})}return m.set(O,ee||e.identitySourceMapConsumer),ee||e.identitySourceMapConsumer}function f(B){if(!!e.isDeclarationFileName(B.fileName)){var q=K(B.fileName);if(!!q){var O=oe(B.fileName).getSourcePosition(B);return!O||O===B?void 0:f(O)||O}}}function T(B){if(!e.isDeclarationFileName(B.fileName)){var q=K(B.fileName);if(!!q){var O=X.getProgram();if(!O.isSourceOfProjectReferenceRedirect(q.fileName)){var ve=O.getCompilerOptions(),ee=e.outFile(ve),he=ee?e.removeFileExtension(ee)+".d.ts":e.getDeclarationEmitOutputFilePathWorker(B.fileName,O.getCompilerOptions(),N,O.getCommonSourceDirectory(),le);if(he!==void 0){var F=oe(he,B.fileName).getGeneratedPosition(B);return F===B?void 0:F}}}}}function K(B){var q=X.getProgram();if(!!q){var O=G(B),ve=q.getSourceFileByPath(O);return ve&&ve.resolvedPath===O?ve:void 0}}function b(B){var q=G(B),O=p.get(q);if(O!==void 0)return O||void 0;if(!X.readFile||X.fileExists&&!X.fileExists(q)){p.set(q,!1);return}var ve=X.readFile(q),ee=ve?E(ve):!1;return p.set(q,ee),ee||void 0}function se(B){return X.getSourceFileLike?X.getSourceFileLike(B):K(B)||b(B)}function J(B,q){var O=se(B);return O.getLineAndCharacterOfPosition(q)}function ie(){p.clear(),m.clear()}}e.getSourceMapper=C;function I(X,le,N,p){var m=e.tryGetSourceMappingURL(N);if(m){var G=a.exec(m);if(G){if(G[1]){var oe=G[1];return R(X,e.base64decode(e.sys,oe),le)}m=void 0}}var f=[];m&&f.push(m),f.push(le+".map");for(var T=m&&e.getNormalizedAbsolutePath(m,e.getDirectoryPath(le)),K=0,b=f;Kq?!1:ie.arguments.length0?e.arrayFrom(oe.values()).join(","):""}C.getSymbolModifiers=le;function N(m,G,oe,f,T,K,b){var se;K===void 0&&(K=e.getMeaningFromLocation(T));var J=[],ie=[],B=[],q=e.getCombinedLocalAndExportSymbolFlags(G),O=K&1?E(m,G,T):"",ve=!1,ee=T.kind===108&&e.isInExpressionContext(T)||e.isThisInTypeQuery(T),he,F,x,Q,$=!1;if(T.kind===108&&!ee)return{displayParts:[e.keywordPart(108)],documentation:[],symbolKind:"primitive type",tags:void 0};if(O!==""||q&32||q&2097152){if(O==="getter"||O==="setter"){var A=e.find(G.declarations,function(er){return er.name===T});if(A)switch(A.kind){case 172:O="getter";break;case 173:O="setter";break;default:e.Debug.assertNever(A)}else O="property"}var y=void 0;if(he=ee?m.getTypeAtLocation(T):m.getTypeOfSymbolAtLocation(G,T),T.parent&&T.parent.kind===206){var V=T.parent.name;(V===T||V&&V.getFullWidth()===0)&&(T=T.parent)}var L=void 0;if(e.isCallOrNewExpression(T)?L=T:(e.isCallExpressionTarget(T)||e.isNewExpressionTarget(T)||T.parent&&(e.isJsxOpeningLikeElement(T.parent)||e.isTaggedTemplateExpression(T.parent))&&e.isFunctionLike(G.valueDeclaration))&&(L=T.parent),L){y=m.getResolvedSignature(L);var P=L.kind===209||e.isCallExpression(L)&&L.expression.kind===106,k=P?he.getConstructSignatures():he.getCallSignatures();if(y&&!e.contains(k,y.target)&&!e.contains(k,y)&&(y=k.length?k[0]:void 0),y){switch(P&&q&32?(O="constructor",we(he.symbol,O)):q&2097152?(O="alias",de(O),J.push(e.spacePart()),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),_e(G)):we(G,O),O){case"JSX attribute":case"property":case"var":case"const":case"let":case"parameter":case"local var":J.push(e.punctuationPart(58)),J.push(e.spacePart()),!(e.getObjectFlags(he)&16)&&he.symbol&&(e.addRange(J,e.symbolToDisplayParts(m,he.symbol,f,void 0,5)),J.push(e.lineBreakPart())),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),ye(y,k,262144);break;default:ye(y,k)}ve=!0,$=k.length>1}}else if(e.isNameOfFunctionDeclaration(T)&&!(q&98304)||T.kind===134&&T.parent.kind===171){var Y=T.parent,U=G.declarations&&e.find(G.declarations,function(er){return er===(T.kind===134?Y.parent:Y)});if(U){var k=Y.kind===171?he.getNonNullableType().getConstructSignatures():he.getNonNullableType().getCallSignatures();m.isImplementationOfOverload(Y)?y=k[0]:y=m.getSignatureFromDeclaration(Y),Y.kind===171?(O="constructor",we(he.symbol,O)):we(Y.kind===174&&!(he.symbol.flags&2048||he.symbol.flags&4096)?he.symbol:G,O),y&&ye(y,k),ve=!0,$=k.length>1}}}if(q&32&&!ve&&!ee&&(rr(),e.getDeclarationOfKind(G,226)?de("local class"):J.push(e.keywordPart(84)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&64&&K&2&&(He(),J.push(e.keywordPart(118)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&524288&&K&2&&(He(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(G),Ae(G,oe),J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),e.addRange(J,e.typeToDisplayParts(m,e.isConstTypeReference(T.parent)?m.getTypeAtLocation(T.parent):m.getDeclaredTypeOfSymbol(G),f,8388608))),q&384&&(He(),e.some(G.declarations,function(er){return e.isEnumDeclaration(er)&&e.isEnumConst(er)})&&(J.push(e.keywordPart(85)),J.push(e.spacePart())),J.push(e.keywordPart(92)),J.push(e.spacePart()),_e(G)),q&1536&&!ee){He();var A=e.getDeclarationOfKind(G,261),j=A&&A.name&&A.name.kind===79;J.push(e.keywordPart(j?142:141)),J.push(e.spacePart()),_e(G)}if(q&262144&&K&2)if(He(),J.push(e.punctuationPart(20)),J.push(e.textPart("type parameter")),J.push(e.punctuationPart(21)),J.push(e.spacePart()),_e(G),G.parent)Ie(),_e(G.parent,f),Ae(G.parent,f);else{var H=e.getDeclarationOfKind(G,163);if(H===void 0)return e.Debug.fail();var A=H.parent;if(A)if(e.isFunctionLikeKind(A.kind)){Ie();var y=m.getSignatureFromDeclaration(A);A.kind===175?(J.push(e.keywordPart(103)),J.push(e.spacePart())):A.kind!==174&&A.name&&_e(A.symbol),e.addRange(J,e.signatureToDisplayParts(m,y,oe,32))}else A.kind===259&&(Ie(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(A.symbol),Ae(A.symbol,oe))}if(q&8){O="enum member",we(G,"enum member");var A=(se=G.declarations)===null||se===void 0?void 0:se[0];if((A==null?void 0:A.kind)===299){var w=m.getConstantValue(A);w!==void 0&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.displayPart(e.getTextOfConstantValue(w),typeof w=="number"?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}}if(G.flags&2097152){if(He(),!ve){var l=m.getAliasedSymbol(G);if(l!==G&&l.declarations&&l.declarations.length>0){var d=l.declarations[0],D=e.getNameOfDeclaration(d);if(D){var fe=e.isModuleWithStringLiteralName(d)&&e.hasSyntacticModifier(d,2),g=G.name!=="default"&&!fe,ne=N(m,l,e.getSourceFileOfNode(d),d,D,K,g?G:l);J.push.apply(J,ne.displayParts),J.push(e.lineBreakPart()),x=ne.documentation,Q=ne.tags}else x=l.getContextualDocumentationComment(d,m),Q=l.getJsDocTags(m)}}if(G.declarations)switch(G.declarations[0].kind){case 264:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(142));break;case 271:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(G.declarations[0].isExportEquals?63:88));break;case 275:J.push(e.keywordPart(93));break;default:J.push(e.keywordPart(100))}J.push(e.spacePart()),_e(G),e.forEach(G.declarations,function(er){if(er.kind===265){var ir=er;if(e.isExternalModuleImportEqualsDeclaration(ir))J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.keywordPart(146)),J.push(e.punctuationPart(20)),J.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(ir)),e.SymbolDisplayPartKind.stringLiteral)),J.push(e.punctuationPart(21));else{var Cr=m.getSymbolAtLocation(ir.moduleReference);Cr&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),_e(Cr,f))}return!0}})}if(!ve)if(O!==""){if(he){if(ee?(He(),J.push(e.keywordPart(108))):we(G,O),O==="property"||O==="getter"||O==="setter"||O==="JSX attribute"||q&3||O==="local var"||ee){if(J.push(e.punctuationPart(58)),J.push(e.spacePart()),he.symbol&&he.symbol.flags&262144){var ue=e.mapToDisplayParts(function(er){var ir=m.typeParameterToDeclaration(he,f,I);Ee().writeNode(4,ir,e.getSourceFileOfNode(e.getParseTreeNode(f)),er)});e.addRange(J,ue)}else e.addRange(J,e.typeToDisplayParts(m,he,f));if(G.target&&G.target.tupleLabelDeclaration){var We=G.target.tupleLabelDeclaration;e.Debug.assertNode(We.name,e.isIdentifier),J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.textPart(e.idText(We.name))),J.push(e.punctuationPart(21))}}else if(q&16||q&8192||q&16384||q&131072||q&98304||O==="method"){var k=he.getNonNullableType().getCallSignatures();k.length&&(ye(k[0],k),$=k.length>1)}}}else O=R(m,G,T);if(ie.length===0&&!$&&(ie=G.getContextualDocumentationComment(f,m)),ie.length===0&&q&4&&G.parent&&G.declarations&&e.forEach(G.parent.declarations,function(er){return er.kind===305}))for(var Fe=0,Z=G.declarations;Fe0))break}}if(ie.length===0&&e.isIdentifier(T)&&G.valueDeclaration&&e.isBindingElement(G.valueDeclaration)){var A=G.valueDeclaration,ge=A.parent;if(e.isIdentifier(A.name)&&e.isObjectBindingPattern(ge)){var Re=e.getTextOfIdentifierOrLiteral(A.name),ze=m.getTypeAtLocation(ge);ie=e.firstDefined(ze.isUnion()?ze.types:[ze],function(ir){var Cr=ir.getProperty(Re);return Cr?Cr.getDocumentationComment(m):void 0})||e.emptyArray}}return B.length===0&&!$&&(B=G.getContextualJsDocTags(f,m)),ie.length===0&&x&&(ie=x),B.length===0&&Q&&(B=Q),{displayParts:J,documentation:ie,symbolKind:O,tags:B.length===0?void 0:B};function Ee(){return F||(F=e.createPrinter({removeComments:!0})),F}function He(){J.length&&J.push(e.lineBreakPart()),rr()}function rr(){b&&(de("alias"),J.push(e.spacePart()))}function Ie(){J.push(e.spacePart()),J.push(e.keywordPart(101)),J.push(e.spacePart())}function _e(er,ir){b&&er===G&&(er=b);var Cr=e.symbolToDisplayParts(m,er,ir||oe,void 0,7);e.addRange(J,Cr),G.flags&16777216&&J.push(e.punctuationPart(57))}function we(er,ir){He(),ir&&(de(ir),er&&!e.some(er.declarations,function(Cr){return e.isArrowFunction(Cr)||(e.isFunctionExpression(Cr)||e.isClassExpression(Cr))&&!Cr.name})&&(J.push(e.spacePart()),_e(er)))}function de(er){switch(er){case"var":case"function":case"let":case"const":case"constructor":J.push(e.textOrKeywordPart(er));return;default:J.push(e.punctuationPart(20)),J.push(e.textOrKeywordPart(er)),J.push(e.punctuationPart(21));return}}function ye(er,ir,Cr){Cr===void 0&&(Cr=0),e.addRange(J,e.signatureToDisplayParts(m,er,f,Cr|32)),ir.length>1&&(J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.operatorPart(39)),J.push(e.displayPart((ir.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),J.push(e.spacePart()),J.push(e.textPart(ir.length===2?"overload":"overloads")),J.push(e.punctuationPart(21))),ie=er.getDocumentationComment(m),B=er.getJsDocTags(),ir.length>1&&ie.length===0&&B.length===0&&(ie=ir[0].getDocumentationComment(m),B=ir[0].getJsDocTags())}function Ae(er,ir){var Cr=e.mapToDisplayParts(function(Ye){var Br=m.symbolToTypeParameterDeclarations(er,ir,I);Ee().writeList(53776,Br,e.getSourceFileOfNode(e.getParseTreeNode(ir)),Ye)});e.addRange(J,Cr)}}C.getSymbolDisplayPartsDocumentationAndSymbolKind=N;function p(m){return m.parent?!1:e.forEach(m.declarations,function(G){if(G.kind===213)return!0;if(G.kind!==254&&G.kind!==256)return!1;for(var oe=G.parent;!e.isFunctionBlock(oe);oe=oe.parent)if(oe.kind===305||oe.kind===262)return!1;return!0})}})(a=e.SymbolDisplay||(e.SymbolDisplay={}))})(ke||(ke={}));var ke;(function(e){function a(E,X){var le=[],N=X.compilerOptions?R(X.compilerOptions,le):{},p=e.getDefaultCompilerOptions();for(var m in p)e.hasProperty(p,m)&&N[m]===void 0&&(N[m]=p[m]);for(var G=0,oe=e.transpileOptionValueCompilerOptions;G>=m;return ie}function b(se,J){var ie=(se>>J&G)+1;return e.Debug.assert((ie&G)===ie,"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."),se&~(G<=V.length)return!1;var Y=V[L];if(k.end<=Y.start)return!1;if(e.startEndOverlapsWithStartEnd(k.pos,k.end,Y.start,Y.start+Y.length))return!0;L++}};function P(){return!1}}function b(A,y,V){var L=A.getStart(V);if(L===y.pos&&A.end===y.end)return L;var P=e.findPrecedingToken(y.pos,V);return!P||P.end>=y.pos?A.pos:P.end}function se(A,y,V){for(var L=-1,P;A;){var k=V.getLineAndCharacterOfPosition(A.getStart(V)).line;if(L!==-1&&k!==L)break;if(C.SmartIndenter.shouldIndentChildNode(y,A,P,V))return y.indentSize;L=k,P=A,A=A.parent}return 0}function J(A,y,V,L,P,k){var Y={pos:A.pos,end:A.end};return C.getFormattingScanner(y.text,V,Y.pos,Y.end,function(U){return q(Y,A,L,P,U,k,1,function(j){return!1},y)})}C.formatNodeGivenIndentation=J;function ie(A,y,V,L){if(!A)return[];var P={pos:e.getLineStartPositionForPosition(A.getStart(y),y),end:A.end};return B(P,y,V,L)}function B(A,y,V,L){var P=T(A,y);return C.getFormattingScanner(y.text,y.languageVariant,b(P,A,y),A.end,function(k){return q(A,P,C.SmartIndenter.getIndentationForNode(P,A,y,V.options),se(P,V.options,y),k,V,L,K(y.parseDiagnostics,A),y)})}function q(A,y,V,L,P,k,Y,U,j){var H,w=k.options,l=k.getRules,d=k.host,D=new C.FormattingContext(j,Y,w),fe,g,ne,ue,We=-1,Fe=[];if(P.advance(),P.isOnToken()){var Z=j.getLineAndCharacterOfPosition(y.getStart(j)).line,Be=Z;y.decorators&&(Be=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(y,j)).line),we(y,y,Z,Be,V,L)}if(!P.isOnToken()){var ge=C.SmartIndenter.nodeWillIndentChild(w,y,void 0,j,!1)?V+w.indentSize:V,Re=P.getCurrentLeadingTrivia();Re&&(de(Re,ge,!1,function(Ir){return Ae(Ir,j.getLineAndCharacterOfPosition(Ir.pos),y,y,void 0)}),w.trimTrailingWhitespace!==!1&&n(Re))}if(fe&&P.getStartPos()>=A.end){var ze=P.isOnEOF()?P.readEOFTokenRange():P.isOnToken()?P.readTokenInfo(y).token:void 0;if(ze){var Ee=((H=e.findPrecedingToken(ze.end,j,y))===null||H===void 0?void 0:H.parent)||g;er(ze,j.getLineAndCharacterOfPosition(ze.pos).line,Ee,fe,ne,g,Ee,void 0)}}return Fe;function He(Ir,wr,Ur,ii,mi){if(e.rangeOverlapsWithStartEnd(ii,Ir,wr)||e.rangeContainsStartEnd(ii,Ir,wr)){if(mi!==-1)return mi}else{var pe=j.getLineAndCharacterOfPosition(Ir).line,or=e.getLineStartPositionForPosition(Ir,j),qr=C.SmartIndenter.findFirstNonWhitespaceColumn(or,Ir,j,w);if(pe!==Ur||Ir===qr){var si=C.SmartIndenter.getBaseIndentation(w);return si>qr?si:qr}}return-1}function rr(Ir,wr,Ur,ii,mi,pe){var or=C.SmartIndenter.shouldIndentChildNode(w,Ir)?w.indentSize:0;return pe===wr?{indentation:wr===ue?We:mi.getIndentation(),delta:Math.min(w.indentSize,mi.getDelta(Ir)+or)}:Ur===-1?Ir.kind===20&&wr===ue?{indentation:We,delta:mi.getDelta(Ir)}:C.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(ii,Ir,wr,j)||C.SmartIndenter.childIsUnindentedBranchOfConditionalExpression(ii,Ir,wr,j)||C.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(ii,Ir,wr,j)?{indentation:mi.getIndentation(),delta:or}:{indentation:mi.getIndentation()+mi.getDelta(Ir),delta:or}:{indentation:Ur,delta:or}}function Ie(Ir){if(Ir.modifiers&&Ir.modifiers.length)return Ir.modifiers[0].kind;switch(Ir.kind){case 257:return 84;case 258:return 118;case 256:return 98;case 260:return 260;case 172:return 136;case 173:return 149;case 169:if(Ir.asteriskToken)return 41;case 167:case 164:var wr=e.getNameOfDeclaration(Ir);if(wr)return wr.kind}}function _e(Ir,wr,Ur,ii){return{getIndentationForComment:function(or,qr,si){switch(or){case 19:case 23:case 21:return Ur+pe(si)}return qr!==-1?qr:Ur},getIndentationForToken:function(or,qr,si,Di){return!Di&&mi(or,qr,si)?Ur+pe(si):Ur},getIndentation:function(){return Ur},getDelta:pe,recomputeIndentation:function(or,qr){C.SmartIndenter.shouldIndentChildNode(w,qr,Ir,j)&&(Ur+=or?w.indentSize:-w.indentSize,ii=C.SmartIndenter.shouldIndentChildNode(w,Ir)?w.indentSize:0)}};function mi(or,qr,si){switch(qr){case 18:case 19:case 21:case 91:case 115:case 59:return!1;case 43:case 31:switch(si.kind){case 280:case 281:case 279:case 228:return!1}break;case 22:case 23:if(si.kind!==195)return!1;break}return wr!==or&&!(Ir.decorators&&qr===Ie(Ir))}function pe(or){return C.SmartIndenter.nodeWillIndentChild(w,Ir,or,j,!0)?ii:0}}function we(Ir,wr,Ur,ii,mi,pe){if(!e.rangeOverlapsWithStartEnd(A,Ir.getStart(j),Ir.getEnd()))return;var or=_e(Ir,Ur,mi,pe),qr=wr;for(e.forEachChild(Ir,function(et){Di(et,-1,Ir,or,Ur,ii,!1)},function(et){wi(et,Ir,Ur,or)});P.isOnToken()&&P.getStartPos()Math.min(Ir.end,A.end))break;Xi(si,Ir,or,Ir)}function Di(et,Gi,Wt,Zt,_r,pi,ae,Xe){if(e.nodeIsMissing(et))return Gi;var Jr=et.getStart(j),ti=j.getLineAndCharacterOfPosition(Jr).line,Ze=ti;et.decorators&&(Ze=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(et,j)).line);var Sr=-1;if(ae&&e.rangeContainsRange(A,Wt)&&(Sr=He(Jr,et.end,_r,A,Gi),Sr!==-1&&(Gi=Sr)),!e.rangeOverlapsWithStartEnd(A,et.pos,et.end))return et.endA.end)return Gi;if(zr.token.end>Jr){zr.token.pos>Jr&&P.skipToStartOf(et);break}Xi(zr,Ir,Zt,Ir)}if(!P.isOnToken()||P.getStartPos()>=A.end)return Gi;if(e.isToken(et)){var zr=P.readTokenInfo(et);if(et.kind!==11)return e.Debug.assert(zr.token.end===et.end,"Token end is child end"),Xi(zr,Ir,Zt,et),Gi}var Wr=et.kind===165?ti:pi,Je=rr(et,ti,Sr,Ir,Zt,Wr);return we(et,qr,ti,Ze,Je.indentation,Je.delta),qr=Ir,Xe&&Wt.kind===204&&Gi===-1&&(Gi=Je.indentation),Gi}function wi(et,Gi,Wt,Zt){e.Debug.assert(e.isNodeArray(et));var _r=ee(Gi,et),pi=Zt,ae=Wt;if(!e.rangeOverlapsWithStartEnd(A,et.pos,et.end)){et.endet.pos)break;if(Xe.token.kind===_r){ae=j.getLineAndCharacterOfPosition(Xe.token.pos).line,Xi(Xe,Gi,Zt,Gi);var Jr=void 0;if(We!==-1)Jr=We;else{var ti=e.getLineStartPositionForPosition(Xe.token.pos,j);Jr=C.SmartIndenter.findFirstNonWhitespaceColumn(ti,Xe.token.pos,j,w)}pi=_e(Gi,Wt,Jr,w.indentSize)}else Xi(Xe,Gi,Zt,Gi)}for(var Ze=-1,Sr=0;Sr0){var ae=$(pi,w);Ge(Zt,_r.character,ae)}else be(Zt,_r.character)}}}function Er(Ir,wr,Ur){for(var ii=Ir;iipe)){var or=Ne(mi,pe);or!==-1&&(e.Debug.assert(or===mi||!e.isWhiteSpaceSingleLine(j.text.charCodeAt(or-1))),be(or,pe+1-or))}}}function Ne(Ir,wr){for(var Ur=wr;Ur>=Ir&&e.isWhiteSpaceSingleLine(j.text.charCodeAt(Ur));)Ur--;return Ur!==wr?Ur+1:-1}function n(Ir){for(var wr=fe?fe.end:A.pos,Ur=0,ii=Ir;Urj.text.length)return G(H);if(H.indentStyle===e.IndentStyle.None)return 0;var l=e.findPrecedingToken(U,j,void 0,!0),d=C.getRangeOfEnclosingComment(j,U,l||null);if(d&&d.kind===3)return le(j,U,H,d);if(!l)return G(H);var D=e.isStringOrRegularExpressionOrTemplateLiteral(l.kind);if(D&&l.getStart(j)<=U&&U=0),l<=d)return V(e.getStartPositionOfLine(d,U),j,U,H);var D=e.getStartPositionOfLine(l,U),fe=y(D,j,U,H),g=fe.column,ne=fe.character;if(g===0)return g;var ue=U.text.charCodeAt(D+ne);return ue===42?g-1:g}function N(U,j,H){for(var w=j;w>0;){var l=U.text.charCodeAt(w);if(!e.isWhiteSpaceLike(l))break;w--}var d=e.getLineStartPositionForPosition(w,U);return V(d,w,U,H)}function p(U,j,H,w,l,d){for(var D,fe=H;fe;){if(e.positionBelongsToNode(fe,j,U)&&k(d,fe,D,U,!0)){var g=J(fe,U),ne=se(H,fe,w,U),ue=ne!==0?l&&ne===2?d.indentSize:0:w!==g.line?d.indentSize:0;return oe(fe,g,void 0,ue,U,!0,d)}var We=Q(fe,U,d,!0);if(We!==-1)return We;D=fe,fe=fe.parent}return G(d)}function m(U,j,H,w){var l=H.getLineAndCharacterOfPosition(U.getStart(H));return oe(U,l,j,0,H,!1,w)}R.getIndentationForNode=m;function G(U){return U.baseIndentSize||0}R.getBaseIndentation=G;function oe(U,j,H,w,l,d,D){for(var fe,g=U.parent;g;){var ne=!0;if(H){var ue=U.getStart(l);ne=ueH.end}var We=f(g,U,l),Fe=We.line===j.line||B(g,U,j.line,l);if(ne){var Z=(fe=ve(U,l))===null||fe===void 0?void 0:fe[0],Be=!!Z&&J(Z,l).line>We.line,ge=Q(U,l,D,Be);if(ge!==-1||(ge=K(U,g,j,Fe,l,D),ge!==-1))return ge+w}k(D,g,U,l,d)&&!Fe&&(w+=D.indentSize);var Re=ie(g,U,j.line,l);U=g,g=U.parent,j=Re?l.getLineAndCharacterOfPosition(U.getStart(l)):We}return w+G(D)}function f(U,j,H){var w=ve(j,H),l=w?w.pos:U.getStart(H);return H.getLineAndCharacterOfPosition(l)}function T(U,j,H){var w=e.findListItemInfo(U);return w&&w.listItemIndex>0?$(w.list.getChildren(),w.listItemIndex-1,j,H):-1}function K(U,j,H,w,l,d){var D=(e.isDeclaration(U)||e.isStatementButNotDeclaration(U))&&(j.kind===305||!w);return D?A(H,l,d):-1}var b;(function(U){U[U.Unknown=0]="Unknown",U[U.OpenBrace=1]="OpenBrace",U[U.CloseBrace=2]="CloseBrace"})(b||(b={}));function se(U,j,H,w){var l=e.findNextToken(U,j,w);if(!l)return 0;if(l.kind===18)return 1;if(l.kind===19){var d=J(l,w).line;return H===d?2:0}return 0}function J(U,j){return j.getLineAndCharacterOfPosition(U.getStart(j))}function ie(U,j,H,w){if(!(e.isCallExpression(U)&&e.contains(U.arguments,j)))return!1;var l=U.expression.getEnd(),d=e.getLineAndCharacterOfPosition(w,l).line;return d===H}R.isArgumentAndStartLineOverlapsExpressionBeingCalled=ie;function B(U,j,H,w){if(U.kind===239&&U.elseStatement===j){var l=e.findChildOfKind(U,91,w);e.Debug.assert(l!==void 0);var d=J(l,w).line;return d===H}return!1}R.childStartsOnTheSameLineWithElseInIfStatement=B;function q(U,j,H,w){if(e.isConditionalExpression(U)&&(j===U.whenTrue||j===U.whenFalse)){var l=e.getLineAndCharacterOfPosition(w,U.condition.end).line;if(j===U.whenTrue)return H===l;var d=J(U.whenTrue,w).line,D=e.getLineAndCharacterOfPosition(w,U.whenTrue.end).line;return l===d&&D===H}return!1}R.childIsUnindentedBranchOfConditionalExpression=q;function O(U,j,H,w){if(e.isCallOrNewExpression(U)){if(!U.arguments)return!1;var l=e.find(U.arguments,function(g){return g.pos===j.pos});if(!l)return!1;var d=U.arguments.indexOf(l);if(d===0)return!1;var D=U.arguments[d-1],fe=e.getLineAndCharacterOfPosition(w,D.getEnd()).line;if(H===fe)return!0}return!1}R.argumentStartsOnSameLineAsPreviousArgument=O;function ve(U,j){return U.parent&&he(U.getStart(j),U.getEnd(),U.parent,j)}R.getContainingList=ve;function ee(U,j,H){return j&&he(U,U,j,H)}function he(U,j,H,w){switch(H.kind){case 178:return l(H.typeArguments);case 205:return l(H.properties);case 204:return l(H.elements);case 182:return l(H.members);case 256:case 213:case 214:case 169:case 168:case 174:case 171:case 180:case 175:return l(H.typeParameters)||l(H.parameters);case 172:return l(H.parameters);case 257:case 226:case 258:case 259:case 344:return l(H.typeParameters);case 209:case 208:return l(H.typeArguments)||l(H.arguments);case 255:return l(H.declarations);case 269:case 273:return l(H.elements);case 201:case 202:return l(H.elements)}function l(d){return d&&e.rangeContainsStartEnd(F(H,d,w),U,j)?d:void 0}}function F(U,j,H){for(var w=U.getChildren(H),l=1;l=0&&j=0;D--)if(U[D].kind!==27){var fe=H.getLineAndCharacterOfPosition(U[D].end).line;if(fe!==d.line)return A(d,H,w);d=J(U[D],H)}return-1}function A(U,j,H){var w=j.getPositionOfLineAndCharacter(U.line,0);return V(w,w+U.character,j,H)}function y(U,j,H,w){for(var l=0,d=0,D=U;D0?1:0,Ee=e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Be)+ze,H);return Ee=p(H.text,Ee),e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Ee),H)}function K(H,w,l){var d=w.end,D=l.trailingTriviaOption;if(D===N.Include){var fe=e.getTrailingCommentRanges(H.text,d);if(fe)for(var g=e.getLineOfLocalPosition(H,w.end),ne=0,ue=fe;neg)break;var Fe=e.getLineOfLocalPosition(H,We.end);if(Fe>g)return e.skipTrivia(H.text,We.end,!0,!0)}}}function b(H,w,l){var d,D=w.end,fe=l.trailingTriviaOption;if(fe===N.Exclude)return D;if(fe===N.ExcludeWhitespace){var g=e.concatenate(e.getTrailingCommentRanges(H.text,D),e.getLeadingCommentRanges(H.text,D)),ne=(d=g==null?void 0:g[g.length-1])===null||d===void 0?void 0:d.end;return ne||D}var ue=K(H,w,l);if(ue)return ue;var We=e.skipTrivia(H.text,D,!0);return We!==D&&(fe===N.Include||e.isLineBreak(H.text.charCodeAt(We-1)))?We:D}function se(H,w){return!!w&&!!H.parent&&(w.kind===27||w.kind===26&&H.parent.kind===205)}function J(H){return e.isFunctionExpression(H)||e.isFunctionDeclaration(H)}C.isThisTypeAnnotatable=J;var ie=function(){function H(w,l){this.newLineCharacter=w,this.formatContext=l,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=new e.Map,this.deletedNodes=[]}return H.fromContext=function(w){return new H(e.getNewLineOrDefaultFromHost(w.host,w.formatContext.options),w.formatContext)},H.with=function(w,l){var d=H.fromContext(w);return l(d),d.getChanges()},H.prototype.pushRaw=function(w,l){e.Debug.assertEqual(w.fileName,l.fileName);for(var d=0,D=l.textChanges;d",joiner:", "})},H.prototype.getOptionsForInsertNodeBefore=function(w,l,d){return e.isStatement(w)||e.isClassElement(w)?{suffix:d?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(w)?{suffix:", "}:e.isParameter(w)?e.isParameter(l)?{suffix:", "}:{}:e.isStringLiteral(w)&&e.isImportDeclaration(w.parent)||e.isNamedImports(w)?{suffix:", "}:e.isImportSpecifier(w)?{suffix:","+(d?this.newLineCharacter:" ")}:e.Debug.failBadSyntaxKind(w)},H.prototype.insertNodeAtConstructorStart=function(w,l,d){var D=e.firstOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(w,l,Ve([d],l.body.statements,!0)):this.insertNodeBefore(w,D,d)},H.prototype.insertNodeAtConstructorStartAfterSuperCall=function(w,l,d){var D=e.find(l.body.statements,function(fe){return e.isExpressionStatement(fe)&&e.isSuperCall(fe.expression)});!D||!l.body.multiLine?this.replaceConstructorBody(w,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(w,D,d)},H.prototype.insertNodeAtConstructorEnd=function(w,l,d){var D=e.lastOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(w,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(w,D,d)},H.prototype.replaceConstructorBody=function(w,l,d){this.replaceNode(w,l.body,e.factory.createBlock(d,!0))},H.prototype.insertNodeAtEndOfScope=function(w,l,d){var D=T(w,l.getLastToken(),{});this.insertNodeAt(w,D,d,{prefix:e.isLineBreak(w.text.charCodeAt(l.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},H.prototype.insertMemberAtStart=function(w,l,d){this.insertNodeAtStartWorker(w,l,d)},H.prototype.insertNodeAtObjectStart=function(w,l,d){this.insertNodeAtStartWorker(w,l,d)},H.prototype.insertNodeAtStartWorker=function(w,l,d){var D,fe=(D=this.guessIndentationFromExistingMembers(w,l))!==null&&D!==void 0?D:this.computeIndentationForNewMember(w,l);this.insertNodeAt(w,ee(l).pos,d,this.getInsertNodeAtStartInsertOptions(w,l,fe))},H.prototype.guessIndentationFromExistingMembers=function(w,l){for(var d,D=l,fe=0,g=ee(l);fe0?{fileName:Be.fileName,textChanges:Ee}:void 0})}H.getTextChangesFromChanges=w;function l(ne,ue,We,Fe,Z){var Be=d(ne,e.getScriptKindFromFileName(ue),We,Fe,Z);return{fileName:ue,textChanges:[e.createTextChange(e.createTextSpan(0,0),Be)],isNewFile:!0}}H.newFileChanges=l;function d(ne,ue,We,Fe,Z){var Be=We.map(function(ze){return ze===4?"":g(ze,ne,Fe).text}).join(Fe),ge=e.createSourceFile("any file name",Be,99,!0,ue),Re=e.formatting.formatDocument(ge,Z);return x(Be,Re)+Fe}H.newFileChangesWorker=d;function D(ne,ue,We,Fe,Z){var Be;if(ne.kind===oe.Remove)return"";if(ne.kind===oe.Text)return ne.text;var ge=ne.options,Re=ge===void 0?{}:ge,ze=ne.range.pos,Ee=function(Ie){return fe(Ie,ue,ze,Re,We,Fe,Z)},He=ne.kind===oe.ReplaceWithMultipleNodes?ne.nodes.map(function(Ie){return e.removeSuffix(Ee(Ie),We)}).join(((Be=ne.options)===null||Be===void 0?void 0:Be.joiner)||We):Ee(ne.node),rr=Re.indentation!==void 0||e.getLineStartPositionForPosition(ze,ue)===ze?He:He.replace(/^\s+/,"");return(Re.prefix||"")+rr+(!Re.suffix||e.endsWith(rr,Re.suffix)?"":Re.suffix)}function fe(ne,ue,We,Fe,Z,Be,ge){var Re=Fe.indentation,ze=Fe.prefix,Ee=Fe.delta,He=g(ne,ue,Z),rr=He.node,Ie=He.text;ge&&ge(rr,Ie);var _e=e.getFormatCodeSettingsForWriting(Be,ue),we=Re!==void 0?Re:e.formatting.SmartIndenter.getIndentation(We,ue,_e,ze===Z||e.getLineStartPositionForPosition(We,ue)===We);Ee===void 0&&(Ee=e.formatting.SmartIndenter.shouldIndentChildNode(_e,ne)&&_e.indentSize||0);var de={text:Ie,getLineAndCharacterOfPosition:function(Ae){return e.getLineAndCharacterOfPosition(this,Ae)}},ye=e.formatting.formatNodeGivenIndentation(rr,de,ue.languageVariant,we,Ee,Ke(Ke({},Be),{options:_e}));return x(Ie,ye)}function g(ne,ue,We){var Fe=V(We),Z=e.getNewLineKind(We);return e.createPrinter({newLine:Z,neverAsciiEscape:!0,preserveSourceNewlines:!0,terminateUnterminatedLiterals:!0},Fe).writeNode(4,ne,ue,Fe),{text:Fe.getText(),node:A(ne)}}H.getNonformattedText=g})(F||(F={}));function x(H,w){for(var l=w.length-1;l>=0;l--){var d=w[l],D=d.span,fe=d.newText;H="".concat(H.substring(0,D.start)).concat(fe).concat(H.substring(e.textSpanEnd(D)))}return H}C.applyChanges=x;function Q(H){return e.skipTrivia(H,0)===H.length}var $=Ke(Ke({},e.nullTransformationContext),{factory:e.createNodeFactory(e.nullTransformationContext.factory.flags|1,e.nullTransformationContext.factory.baseFactory)});function A(H){var w=e.visitEachChild(H,A,$,y,A),l=e.nodeIsSynthesized(w)?w:Object.create(w);return e.setTextRangePosEnd(l,I(H),E(H)),l}C.assignPositionsToNode=A;function y(H,w,l,d,D){var fe=e.visitNodes(H,w,l,d,D);if(!fe)return fe;var g=fe===H?e.factory.createNodeArray(fe.slice(0)):fe;return e.setTextRangePosEnd(g,I(H),E(H)),g}function V(H){var w=0,l=e.createTextWriter(H),d=function(lr){lr&&R(lr,w)},D=function(lr){lr&&X(lr,w)},fe=function(lr){lr&&R(lr,w)},g=function(lr){lr&&X(lr,w)},ne=function(lr){lr&&R(lr,w)},ue=function(lr){lr&&X(lr,w)};function We(lr,be){if(be||!Q(lr)){w=l.getTextPos();for(var Ge=0;e.isWhiteSpaceLike(lr.charCodeAt(lr.length-Ge-1));)Ge++;w-=Ge}}function Fe(lr){l.write(lr),We(lr,!1)}function Z(lr){l.writeComment(lr)}function Be(lr){l.writeKeyword(lr),We(lr,!1)}function ge(lr){l.writeOperator(lr),We(lr,!1)}function Re(lr){l.writePunctuation(lr),We(lr,!1)}function ze(lr){l.writeTrailingSemicolon(lr),We(lr,!1)}function Ee(lr){l.writeParameter(lr),We(lr,!1)}function He(lr){l.writeProperty(lr),We(lr,!1)}function rr(lr){l.writeSpace(lr),We(lr,!1)}function Ie(lr){l.writeStringLiteral(lr),We(lr,!1)}function _e(lr,be){l.writeSymbol(lr,be),We(lr,!1)}function we(lr){l.writeLine(lr)}function de(){l.increaseIndent()}function ye(){l.decreaseIndent()}function Ae(){return l.getText()}function er(lr){l.rawWrite(lr),We(lr,!1)}function ir(lr){l.writeLiteral(lr),We(lr,!0)}function Cr(){return l.getTextPos()}function Ye(){return l.getLine()}function Br(){return l.getColumn()}function Er(){return l.getIndent()}function Ne(){return l.isAtStartOfLine()}function n(){l.clear(),w=0}return{onBeforeEmitNode:d,onAfterEmitNode:D,onBeforeEmitNodeArray:fe,onAfterEmitNodeArray:g,onBeforeEmitToken:ne,onAfterEmitToken:ue,write:Fe,writeComment:Z,writeKeyword:Be,writeOperator:ge,writePunctuation:Re,writeTrailingSemicolon:ze,writeParameter:Ee,writeProperty:He,writeSpace:rr,writeStringLiteral:Ie,writeSymbol:_e,writeLine:we,increaseIndent:de,decreaseIndent:ye,getText:Ae,rawWrite:er,writeLiteral:ir,getTextPos:Cr,getLine:Ye,getColumn:Br,getIndent:Er,isAtStartOfLine:Ne,hasTrailingComment:function(){return l.hasTrailingComment()},hasTrailingWhitespace:function(){return l.hasTrailingWhitespace()},clear:n}}C.createWriter=V;function L(H){for(var w,l=0,d=H.statements;l=ze+2)break}if(H.statements.length){Fe===void 0&&(Fe=H.getLineAndCharacterOfPosition(H.statements[0].getStart()).line);var Ee=H.getLineAndCharacterOfPosition(ge.end).line;if(Fe1)break}var F=O<2;return function(x){var Q=x.fixId,$=x.fixAllDescription,A=dr(x,["fixId","fixAllDescription"]);return F?A:Ke(Ke({},A),{fixId:Q,fixAllDescription:$})}}function oe(ie){var B=J(ie),q=I.get(String(ie.errorCode));return e.flatMap(q,function(O){return e.map(O.getCodeActions(ie),G(O,B))})}C.getFixes=oe;function f(ie){return R.get(e.cast(ie.fixId,e.isString)).getAllCodeActions(ie)}C.getAllFixes=f;function T(ie,B){return{changes:ie,commands:B}}C.createCombinedCodeActions=T;function K(ie,B){return{fileName:ie,textChanges:B}}C.createFileTextChanges=K;function b(ie,B,q){var O=[],ve=e.textChanges.ChangeTracker.with(ie,function(ee){return se(ie,B,function(he){return q(ee,he,O)})});return T(ve,O.length===0?void 0:O)}C.codeFixAll=b;function se(ie,B,q){for(var O=0,ve=J(ie);Oe.textSpanEnd(m)?"quit":(e.isArrowFunction(f)||e.isMethodDeclaration(f)||e.isFunctionExpression(f)||e.isFunctionDeclaration(f))&&e.textSpansEqual(m,e.createTextSpanFromNode(f,p))});return oe}}function N(p,m){return function(G){var oe=G.start,f=G.length,T=G.relatedInformation,K=G.code;return e.isNumber(oe)&&e.isNumber(f)&&e.textSpansEqual({start:oe,length:f},p)&&K===m&&!!T&&e.some(T,function(b){return b.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code})}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="addMissingAwait",R=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,E=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],X=Ve([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_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.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,R],E,!0);C.registerCodeFix({fixIds:[I],errorCodes:X,getCodeActions:function(J){var ie=J.sourceFile,B=J.errorCode,q=J.span,O=J.cancellationToken,ve=J.program,ee=le(ie,B,q,O,ve);if(!!ee){var he=J.program.getTypeChecker(),F=function(x){return e.textChanges.ChangeTracker.with(J,x)};return e.compact([N(J,ee,B,he,F),p(J,ee,B,he,F)])}},getAllCodeActions:function(se){var J=se.sourceFile,ie=se.program,B=se.cancellationToken,q=se.program.getTypeChecker(),O=new e.Set;return C.codeFixAll(se,X,function(ve,ee){var he=le(J,ee.code,ee,B,ie);if(!!he){var F=function(x){return x(ve),[]};return N(se,he,ee.code,q,F,O)||p(se,he,ee.code,q,F,O)}})}});function le(se,J,ie,B,q){var O=e.getFixableErrorSpanExpression(se,ie);return O&&m(se,J,ie,B,q)&&T(O)?O:void 0}function N(se,J,ie,B,q,O){var ve=se.sourceFile,ee=se.program,he=se.cancellationToken,F=G(J,ve,he,ee,B);if(F){var x=q(function(Q){e.forEach(F.initializers,function($){var A=$.expression;return K(Q,ie,ve,B,A,O)}),O&&F.needsSecondPassForFixAll&&K(Q,ie,ve,B,J,O)});return C.createCodeFixActionWithoutFixAll("addMissingAwaitToInitializer",x,F.initializers.length===1?[e.Diagnostics.Add_await_to_initializer_for_0,F.initializers[0].declarationSymbol.name]:e.Diagnostics.Add_await_to_initializers)}}function p(se,J,ie,B,q,O){var ve=q(function(ee){return K(ee,ie,se.sourceFile,B,J,O)});return C.createCodeFixAction(I,ve,e.Diagnostics.Add_await,I,e.Diagnostics.Fix_all_expressions_possibly_missing_await)}function m(se,J,ie,B,q){var O=q.getTypeChecker(),ve=O.getDiagnostics(se,B);return e.some(ve,function(ee){var he=ee.start,F=ee.length,x=ee.relatedInformation,Q=ee.code;return e.isNumber(he)&&e.isNumber(F)&&e.textSpansEqual({start:he,length:F},ie)&&Q===J&&!!x&&e.some(x,function($){return $.code===e.Diagnostics.Did_you_forget_to_use_await.code})})}function G(se,J,ie,B,q){var O=oe(se,q);if(!!O){for(var ve=O.isCompleteFix,ee,he=function($){var A=q.getSymbolAtLocation($);if(!A)return"continue";var y=e.tryCast(A.valueDeclaration,e.isVariableDeclaration),V=y&&e.tryCast(y.name,e.isIdentifier),L=e.getAncestor(y,237);if(!y||!L||y.type||!y.initializer||L.getSourceFile()!==J||e.hasSyntacticModifier(L,1)||!V||!T(y.initializer))return ve=!1,"continue";var P=B.getSemanticDiagnostics(J,ie),k=e.FindAllReferences.Core.eachSymbolReferenceInFile(V,q,J,function(Y){return $!==Y&&!f(Y,P,J,q)});if(k)return ve=!1,"continue";(ee||(ee=[])).push({expression:y.initializer,declarationSymbol:A})},F=0,x=O.identifiers;F0)return[C.createCodeFixAction(I,f,e.Diagnostics.Add_const_to_unresolved_variable,I,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[I],getAllCodeActions:function(G){var oe=new e.Set;return C.codeFixAll(G,R,function(f,T){return E(f,T.file,T.start,G.program,oe)})}});function E(G,oe,f,T,K){var b=e.getTokenAtPosition(oe,f),se=e.findAncestor(b,function(O){return e.isForInOrOfStatement(O.parent)?O.parent.initializer===O:le(O)?!1:"quit"});if(se)return X(G,se,oe,K);var J=b.parent;if(e.isBinaryExpression(J)&&J.operatorToken.kind===63&&e.isExpressionStatement(J.parent))return X(G,b,oe,K);if(e.isArrayLiteralExpression(J)){var ie=T.getTypeChecker();return e.every(J.elements,function(O){return N(O,ie)})?X(G,J,oe,K):void 0}var B=e.findAncestor(b,function(O){return e.isExpressionStatement(O.parent)?!0:p(O)?!1:"quit"});if(B){var q=T.getTypeChecker();return m(B,q)?X(G,B,oe,K):void 0}}function X(G,oe,f,T){(!T||e.tryAddToSet(T,oe))&&G.insertModifierBefore(f,85,oe)}function le(G){switch(G.kind){case 79:case 204:case 205:case 296:case 297:return!0;default:return!1}}function N(G,oe){var f=e.isIdentifier(G)?G:e.isAssignmentExpression(G,!0)&&e.isIdentifier(G.left)?G.left:void 0;return!!f&&!oe.getSymbolAtLocation(f)}function p(G){switch(G.kind){case 79:case 221:case 27:return!0;default:return!1}}function m(G,oe){return e.isBinaryExpression(G)?G.operatorToken.kind===27?e.every([G.left,G.right],function(f){return m(f,oe)}):G.operatorToken.kind===63&&e.isIdentifier(G.left)&&!oe.getSymbolAtLocation(G.left):!1}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="addMissingDeclareProperty",R=[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];C.registerCodeFix({errorCodes:R,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});if(N.length>0)return[C.createCodeFixAction(I,N,e.Diagnostics.Prefix_with_declare,I,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[I],getAllCodeActions:function(X){var le=new e.Set;return C.codeFixAll(X,R,function(N,p){return E(N,p.file,p.start,le)})}});function E(X,le,N,p){var m=e.getTokenAtPosition(le,N);if(!!e.isIdentifier(m)){var G=m.parent;G.kind===167&&(!p||e.tryAddToSet(p,G))&&X.insertModifierBefore(le,135,G)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="addMissingInvocationForDecorator",R=[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];C.registerCodeFix({errorCodes:R,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(I,N,e.Diagnostics.Call_decorator_expression,I,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[I],getAllCodeActions:function(X){return C.codeFixAll(X,R,function(le,N){return E(le,N.file,N.start)})}});function E(X,le,N){var p=e.getTokenAtPosition(le,N),m=e.findAncestor(p,e.isDecorator);e.Debug.assert(!!m,"Expected position to be owned by a decorator.");var G=e.factory.createCallExpression(m.expression,void 0,void 0);X.replaceNode(le,m.expression,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="addNameToNamelessParameter",R=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(I,N,e.Diagnostics.Add_parameter_name,I,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[I],getAllCodeActions:function(X){return C.codeFixAll(X,R,function(le,N){return E(le,N.file,N.start)})}});function E(X,le,N){var p=e.getTokenAtPosition(le,N),m=p.parent;if(!e.isParameter(m))return e.Debug.fail("Tried to add a parameter name to a non-parameter: "+e.Debug.formatSyntaxKind(p.kind));var G=m.parent.parameters.indexOf(m);e.Debug.assert(!m.type,"Tried to add a parameter name to a parameter that already had one."),e.Debug.assert(G>-1,"Parameter not found in parent parameter list.");var oe=e.factory.createTypeReferenceNode(m.name,void 0),f=e.factory.createParameterDeclaration(void 0,m.modifiers,m.dotDotDotToken,"arg"+G,m.questionToken,m.dotDotDotToken?e.factory.createArrayTypeNode(oe):oe,m.initializer);X.replaceNode(le,m,f)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="addOptionalPropertyUndefined",R=[e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(p){var m=p.program.getTypeChecker(),G=E(p.sourceFile,p.span,m);if(!!G.length){var oe=e.textChanges.ChangeTracker.with(p,function(f){return N(f,G)});return[C.createCodeFixActionWithoutFixAll(I,oe,e.Diagnostics.Add_undefined_to_optional_property_type)]}},fixIds:[I]});function E(p,m,G){var oe,f,T=le(e.getFixableErrorSpanExpression(p,m),G);if(!T)return e.emptyArray;var K=T.source,b=T.target,se=X(K,b,G)?G.getTypeAtLocation(b.expression):G.getTypeAtLocation(b);return!((f=(oe=se.symbol)===null||oe===void 0?void 0:oe.declarations)===null||f===void 0)&&f.some(function(J){return e.getSourceFileOfNode(J).fileName.match(/\.d\.ts$/)})?e.emptyArray:G.getExactOptionalProperties(se)}function X(p,m,G){return e.isPropertyAccessExpression(m)&&!!G.getExactOptionalProperties(G.getTypeAtLocation(m.expression)).length&&G.getTypeAtLocation(p)===G.getUndefinedType()}function le(p,m){var G;if(p){if(e.isBinaryExpression(p.parent)&&p.parent.operatorToken.kind===63)return{source:p.parent.right,target:p.parent.left};if(e.isVariableDeclaration(p.parent)&&p.parent.initializer)return{source:p.parent.initializer,target:p.parent.name};if(e.isCallExpression(p.parent)){var oe=m.getSymbolAtLocation(p.parent.expression);if(!(oe!=null&&oe.valueDeclaration)||!e.isFunctionLikeKind(oe.valueDeclaration.kind)||!e.isExpression(p))return;var f=p.parent.arguments.indexOf(p);if(f===-1)return;var T=oe.valueDeclaration.parameters[f].name;if(e.isIdentifier(T))return{source:p,target:T}}else if(e.isPropertyAssignment(p.parent)&&e.isIdentifier(p.parent.name)||e.isShorthandPropertyAssignment(p.parent)){var K=le(p.parent.parent,m);if(!K)return;var b=m.getPropertyOfType(m.getTypeAtLocation(K.target),p.parent.name.text),se=(G=b==null?void 0:b.declarations)===null||G===void 0?void 0:G[0];return se?{source:e.isPropertyAssignment(p.parent)?p.parent.initializer:p.parent.name,target:se}:void 0}}else return}function N(p,m){for(var G=0,oe=m;G1?(p.delete(m,b),p.insertNodeAfter(m,J,se)):p.replaceNode(m,J,se)}function ie(O){var ve=[];return O.exports&&O.exports.forEach(function(F){if(F.name==="prototype"&&F.declarations){var x=F.declarations[0];if(F.declarations.length===1&&e.isPropertyAccessExpression(x)&&e.isBinaryExpression(x.parent)&&x.parent.operatorToken.kind===63&&e.isObjectLiteralExpression(x.parent.right)){var Q=x.parent.right;he(Q.symbol,void 0,ve)}}else he(F,[e.factory.createToken(124)],ve)}),O.members&&O.members.forEach(function(F,x){var Q,$,A,y;if(x==="constructor"&&F.valueDeclaration){var V=(y=(A=($=(Q=O.exports)===null||Q===void 0?void 0:Q.get("prototype"))===null||$===void 0?void 0:$.declarations)===null||A===void 0?void 0:A[0])===null||y===void 0?void 0:y.parent;V&&e.isBinaryExpression(V)&&e.isObjectLiteralExpression(V.right)&&e.some(V.right.properties,le)||p.delete(m,F.valueDeclaration.parent);return}he(F,void 0,ve)}),ve;function ee(F,x){return e.isAccessExpression(F)?e.isPropertyAccessExpression(F)&&le(F)?!0:e.isFunctionLike(x):e.every(F.properties,function(Q){return!!(e.isMethodDeclaration(Q)||e.isGetOrSetAccessorDeclaration(Q)||e.isPropertyAssignment(Q)&&e.isFunctionExpression(Q.initializer)&&!!Q.name||le(Q))})}function he(F,x,Q){if(!(F.flags&8192)&&!(F.flags&4096))return;var $=F.valueDeclaration,A=$.parent,y=A.right;if(!ee($,y)||e.some(Q,function(H){var w=e.getNameOfDeclaration(H);return!!(w&&e.isIdentifier(w)&&e.idText(w)===e.symbolName(F))}))return;var V=A.parent&&A.parent.kind===238?A.parent:A;if(p.delete(m,V),!y){Q.push(e.factory.createPropertyDeclaration([],x,F.name,void 0,void 0,void 0));return}if(e.isAccessExpression($)&&(e.isFunctionExpression(y)||e.isArrowFunction(y))){var L=e.getQuotePreference(m,f),P=N($,T,L);P&&Y(Q,y,P);return}else if(e.isObjectLiteralExpression(y)){e.forEach(y.properties,function(H){(e.isMethodDeclaration(H)||e.isGetOrSetAccessorDeclaration(H))&&Q.push(H),e.isPropertyAssignment(H)&&e.isFunctionExpression(H.initializer)&&Y(Q,H.initializer,H.name),le(H)});return}else{if(e.isSourceFileJS(m)||!e.isPropertyAccessExpression($))return;var k=e.factory.createPropertyDeclaration(void 0,x,$.name,void 0,void 0,y);e.copyLeadingComments(A.parent,k,m),Q.push(k);return}function Y(H,w,l){return e.isFunctionExpression(w)?U(H,w,l):j(H,w,l)}function U(H,w,l){var d=e.concatenate(x,X(w,131)),D=e.factory.createMethodDeclaration(void 0,d,void 0,l,void 0,void 0,w.parameters,void 0,w.body);e.copyLeadingComments(A,D,m),H.push(D)}function j(H,w,l){var d=w.body,D;d.kind===235?D=d:D=e.factory.createBlock([e.factory.createReturnStatement(d)]);var fe=e.concatenate(x,X(w,131)),g=e.factory.createMethodDeclaration(void 0,fe,void 0,l,void 0,void 0,w.parameters,void 0,D);e.copyLeadingComments(A,g,m),H.push(g)}}}function B(O){var ve=O.initializer;if(!(!ve||!e.isFunctionExpression(ve)||!e.isIdentifier(O.name))){var ee=ie(O.symbol);ve.body&&ee.unshift(e.factory.createConstructorDeclaration(void 0,void 0,ve.parameters,ve.body));var he=X(O.parent.parent,93),F=e.factory.createClassDeclaration(void 0,he,O.name,void 0,void 0,ee);return F}}function q(O){var ve=ie(K);O.body&&ve.unshift(e.factory.createConstructorDeclaration(void 0,void 0,O.parameters,O.body));var ee=X(O,93),he=e.factory.createClassDeclaration(void 0,ee,O.name,void 0,void 0,ve);return he}}function X(p,m){return e.filter(p.modifiers,function(G){return G.kind===m})}function le(p){return p.name?!!(e.isIdentifier(p.name)&&p.name.text==="constructor"):!1}function N(p,m,G){if(e.isPropertyAccessExpression(p))return p.name;var oe=p.argumentExpression;if(e.isNumericLiteral(oe))return oe;if(e.isStringLiteralLike(oe))return e.isIdentifierText(oe.text,e.getEmitScriptTarget(m))?e.factory.createIdentifier(oe.text):e.isNoSubstitutionTemplateLiteral(oe)?e.factory.createStringLiteral(oe.text,G===0):oe}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="convertToAsyncFunction",R=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],E=!0;C.registerCodeFix({errorCodes:R,getCodeActions:function(g){E=!0;var ne=e.textChanges.ChangeTracker.with(g,function(ue){return le(ue,g.sourceFile,g.span.start,g.program.getTypeChecker())});return E?[C.createCodeFixAction(I,ne,e.Diagnostics.Convert_to_async_function,I,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[I],getAllCodeActions:function(g){return C.codeFixAll(g,R,function(ne,ue){return le(ne,ue.file,ue.start,g.program.getTypeChecker())})}});var X;(function(g){g[g.Identifier=0]="Identifier",g[g.BindingPattern=1]="BindingPattern"})(X||(X={}));function le(g,ne,ue,We){var Fe=e.getTokenAtPosition(ne,ue),Z;if(e.isIdentifier(Fe)&&e.isVariableDeclaration(Fe.parent)&&Fe.parent.initializer&&e.isFunctionLikeDeclaration(Fe.parent.initializer)?Z=Fe.parent.initializer:Z=e.tryCast(e.getContainingFunction(e.getTokenAtPosition(ne,ue)),e.canBeConvertedToAsync),!!Z){var Be=new e.Map,ge=e.isInJSFile(Z),Re=p(Z,We),ze=T(Z,We,Be);if(!!e.returnsPromise(ze,We)){var Ee=ze.body&&e.isBlock(ze.body)?N(ze.body,We):e.emptyArray,He={checker:We,synthNamesMap:Be,setOfExpressionsToReturn:Re,isInJSFile:ge};if(!!Ee.length){var rr=Z.modifiers?Z.modifiers.end:Z.decorators?e.skipTrivia(ne.text,Z.decorators.end):Z.getStart(ne),Ie=Z.modifiers?{prefix:" "}:{suffix:" "};g.insertModifierAt(ne,rr,131,Ie);for(var _e=function(er){if(e.forEachChild(er,function ir(Cr){if(e.isCallExpression(Cr)){var Ye=J(Cr,Cr,He,!1);if(b())return!0;g.replaceNodeWithNodes(ne,er,Ye)}else if(!e.isFunctionLike(Cr)&&(e.forEachChild(Cr,ir),b()))return!0}),b())return{value:void 0}},we=0,de=Ee;we0)return ir;if(Ie){var er=A(Z.checker,Ie,rr);if(fe(Fe,Z))return Q(er,oe(Fe,g,Z.checker));var Cr=x(ue,er,void 0);return ue&&ue.types.push(Z.checker.getAwaitedType(Ie)||Ie),Cr}else return se()}}default:return se()}return e.emptyArray}function A(g,ne,ue){var We=e.getSynthesizedDeepClone(ue);return g.getPromisedTypeOfPromise(ne)?e.factory.createAwaitExpression(We):We}function y(g,ne){var ue=ne.getSignaturesOfType(g,0);return e.lastOrUndefined(ue)}function V(g,ne,ue,We){for(var Fe=[],Z=0,Be=g;Z0)return}else e.isFunctionLike(Be)||e.forEachChild(Be,Z)}),Fe}function P(g,ne){var ue=[],We;if(e.isFunctionLikeDeclaration(g)){if(g.parameters.length>0){var Fe=g.parameters[0].name;We=Z(Fe)}}else e.isIdentifier(g)?We=Be(g):e.isPropertyAccessExpression(g)&&e.isIdentifier(g.name)&&(We=Be(g.name));if(!We||"identifier"in We&&We.identifier.text==="undefined")return;return We;function Z(ze){if(e.isIdentifier(ze))return Be(ze);var Ee=e.flatMap(ze.elements,function(He){return e.isOmittedExpression(He)?[]:[Z(He.name)]});return U(ze,Ee)}function Be(ze){var Ee=Re(ze),He=ge(Ee);if(!He)return Y(ze,ue);var rr=ne.synthNamesMap.get(e.getSymbolId(He).toString());return rr||Y(ze,ue)}function ge(ze){return ze.symbol?ze.symbol:ne.checker.getSymbolAtLocation(ze)}function Re(ze){return ze.original?ze.original:ze}}function k(g){return g?d(g)?!g.identifier.text:e.every(g.elements,k):!0}function Y(g,ne){return ne===void 0&&(ne=[]),{kind:0,identifier:g,types:ne,hasBeenDeclared:!1,hasBeenReferenced:!1}}function U(g,ne,ue){return ne===void 0&&(ne=e.emptyArray),ue===void 0&&(ue=[]),{kind:1,bindingPattern:g,elements:ne,types:ue}}function j(g){return g.hasBeenReferenced=!0,g.identifier}function H(g){return d(g)?l(g):w(g)}function w(g){for(var ne=0,ue=g.elements;ne1?[[K(k),b(k)],!0]:[[b(k)],!0]:[[K(k)],!1]}function K(L){return y(void 0,L)}function b(L){return y([e.factory.createExportSpecifier(!1,void 0,"default")],L)}function se(L,P,k){var Y=L.left,U=L.right,j=L.parent,H=Y.name.text;if((e.isFunctionExpression(U)||e.isArrowFunction(U)||e.isClassExpression(U))&&(!U.name||U.name.text===H)){k.replaceRange(P,{pos:Y.getStart(P),end:U.getStart(P)},e.factory.createToken(93),{suffix:" "}),U.name||k.insertName(P,U,H);var w=e.findChildOfKind(j,26,P);w&&k.delete(P,w)}else k.replaceNodeRangeWithNodes(P,Y.expression,e.findChildOfKind(Y,24,P),[e.factory.createToken(93),e.factory.createToken(85)],{joiner:" ",suffix:" "})}function J(L,P,k){var Y=[e.factory.createToken(93)];switch(P.kind){case 213:{var U=P.name;if(U&&U.text!==L)return j()}case 214:return F(L,Y,P,k);case 226:return x(L,Y,P,k);default:return j()}function j(){return A(Y,e.factory.createIdentifier(L),ie(P,k))}}function ie(L,P){if(!P||!e.some(e.arrayFrom(P.keys()),function(Y){return e.rangeContainsRange(L,Y)}))return L;return e.isArray(L)?e.getSynthesizedDeepClonesWithReplacements(L,!0,k):e.getSynthesizedDeepCloneWithReplacements(L,!0,k);function k(Y){if(Y.kind===206){var U=P.get(Y);return P.delete(Y),U}}}function B(L,P,k,Y,U,j){switch(L.kind){case 201:{var H=e.mapAllOrFail(L.elements,function(l){return l.dotDotDotToken||l.initializer||l.propertyName&&!e.isIdentifier(l.propertyName)||!e.isIdentifier(l.name)?void 0:$(l.propertyName&&l.propertyName.text,l.name.text)});if(H)return V([e.makeImport(void 0,H,P,j)])}case 202:{var w=O(C.moduleSpecifierToValidIdentifier(P.text,U),Y);return V([e.makeImport(e.factory.createIdentifier(w),void 0,P,j),A(void 0,e.getSynthesizedDeepClone(L),e.factory.createIdentifier(w))])}case 79:return q(L,P,k,Y,j);default:return e.Debug.assertNever(L,"Convert to ES module got invalid name kind ".concat(L.kind))}}function q(L,P,k,Y,U){for(var j=k.getSymbolAtLocation(L),H=new e.Map,w=!1,l,d=0,D=Y.original.get(L.text);d0||Cr.length>0||Ye.size>0||Br.size>0}}var le;(function(_e){_e[_e.UseNamespace=0]="UseNamespace",_e[_e.JsdocTypeImport=1]="JsdocTypeImport",_e[_e.AddToExisting=2]="AddToExisting",_e[_e.AddNew=3]="AddNew",_e[_e.PromoteTypeOnly=4]="PromoteTypeOnly"})(le||(le={}));var N;(function(_e){_e[_e.Allowed=1]="Allowed",_e[_e.Required=2]="Required",_e[_e.NotAllowed=4]="NotAllowed"})(N||(N={}));function p(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=ir.getCompilerOptions(),Ne=e.pathIsBareSpecifier(e.stripQuotes(we.name))?[f(_e,we,ir,er)]:T(de,_e,we,ye,Ae,er,ir,Br,!0),n=ve(de,ir),lr=e.isValidTypeOnlyAliasUseSite(e.getTokenAtPosition(de,Ye)),be=e.Debug.checkDefined(G(de,Ne,we,ir,{symbolName:ye,position:Ye},lr,n,er,Br));return{moduleSpecifier:be.moduleSpecifier,codeAction:oe(fe({host:er,formatContext:Cr,preferences:Br},de,ye,be,!1,e.getQuotePreference(de,Br),Er))}}C.getImportCompletionAction=p;function m(_e,we,de,ye,Ae,er){var ir=de.getCompilerOptions(),Cr=w(_e,de.getTypeChecker(),we,ir),Ye=H(_e,we,Cr,de),Br=Cr!==we.text;return Ye&&oe(fe({host:ye,formatContext:Ae,preferences:er},_e,Cr,Ye,Br,1,ir))}C.getPromoteTypeOnlyCompletionAction=m;function G(_e,we,de,ye,Ae,er,ir,Cr,Ye){e.Debug.assert(we.some(function(Er){return Er.moduleSymbol===de||Er.symbol.parent===de}),"Some exportInfo should match the specified moduleSymbol");var Br=e.createPackageJsonImportFilter(_e,Ye,Cr);return $(b(we,Ae,er,ir,ye,_e,Cr,Ye).fixes,_e,ye,Br,Cr)}function oe(_e){var we=_e.description,de=_e.changes,ye=_e.commands;return{description:we,changes:de,commands:ye}}function f(_e,we,de,ye){var Ae,er,ir=de.getCompilerOptions(),Cr=Br(de.getTypeChecker(),!1);if(Cr)return Cr;var Ye=(er=(Ae=ye.getPackageJsonAutoImportProvider)===null||Ae===void 0?void 0:Ae.call(ye))===null||er===void 0?void 0:er.getTypeChecker();return e.Debug.checkDefined(Ye&&Br(Ye,!0),"Could not find symbol in specified module for code actions");function Br(Er,Ne){var n=e.getDefaultLikeExportInfo(we,Er,ir);if(n&&e.skipAlias(n.symbol,Er)===_e)return{symbol:n.symbol,moduleSymbol:we,moduleFileName:void 0,exportKind:n.exportKind,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne};var lr=Er.tryGetMemberInModuleExportsAndProperties(_e.name,we);if(lr&&e.skipAlias(lr,Er)===_e)return{symbol:lr,moduleSymbol:we,moduleFileName:void 0,exportKind:0,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne}}}function T(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br=[],Er=ir.getCompilerOptions(),Ne=e.memoizeOne(function(lr){return e.createModuleSpecifierResolutionHost(lr?er.getPackageJsonAutoImportProvider():ir,er)});return e.forEachExternalModuleToImportFrom(ir,er,Ye,function(lr,be,Ge,ur){var yr=Ge.getTypeChecker();if(!(be&&lr!==de&&e.startsWith(_e.fileName,e.getDirectoryPath(be.fileName)))){var Ir=e.getDefaultLikeExportInfo(lr,yr,Er);Ir&&(Ir.name===ye||rr(lr,e.getEmitScriptTarget(Er),Ae)===ye)&&e.skipAlias(Ir.symbol,yr)===we&&n(Ge,be,ur)&&Br.push({symbol:Ir.symbol,moduleSymbol:lr,moduleFileName:be==null?void 0:be.fileName,exportKind:Ir.exportKind,targetFlags:e.skipAlias(Ir.symbol,yr).flags,isFromPackageJson:ur});for(var wr=0,Ur=yr.getExportsAndPropertiesOfModule(lr);wr0}:{kind:3,moduleSpecifier:qr,importKind:Y(we,yr.exportKind,Er),useRequire:Ae,addAsTypeOnly:or,exportInfo:yr,isReExport:Ir>0}})});return{computedWithoutCacheCount:Ge,fixes:ur}}function he(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=e.firstDefined(we,function(Ne){return F(Ne,er,ir,de.getTypeChecker(),de.getCompilerOptions())});return Er?{fixes:[Er]}:ee(de,ye,Ae,er,ir,_e,Cr,Ye,Br)}function F(_e,we,de,ye,Ae){var er,ir=_e.declaration,Cr=_e.importKind,Ye=_e.symbol,Br=_e.targetFlags,Er=(er=e.tryGetModuleSpecifierFromDeclaration(ir))===null||er===void 0?void 0:er.text;if(Er){var Ne=de?4:B(we,!0,Ye,Br,ye,Ae);return{kind:3,moduleSpecifier:Er,importKind:Cr,addAsTypeOnly:Ne,useRequire:de}}}function x(_e,we,de,ye){var Ae=e.getTokenAtPosition(_e.sourceFile,de),er;if(we===e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code)er=P(_e,Ae);else if(e.isIdentifier(Ae))if(we===e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code){var ir=w(_e.sourceFile,_e.program.getTypeChecker(),Ae,_e.program.getCompilerOptions()),Cr=H(_e.sourceFile,Ae,ir,_e.program);return Cr&&{fixes:[Cr],symbolName:ir,errorIdentifierText:Ae.text}}else er=j(_e,Ae,ye);else return;var Ye=e.createPackageJsonImportFilter(_e.sourceFile,_e.preferences,_e.host);return er&&Ke(Ke({},er),{fixes:Q(er.fixes,_e.sourceFile,_e.program,Ye,_e.host)})}function Q(_e,we,de,ye,Ae){var er=function(ir){return e.toPath(ir,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))};return e.sort(_e,function(ir,Cr){return e.compareValues(ir.kind,Cr.kind)||A(ir,Cr,we,de,ye.allowsImportingSpecifier,er)})}function $(_e,we,de,ye,Ae){if(!!e.some(_e))return _e[0].kind===0||_e[0].kind===2?_e[0]:_e.reduce(function(er,ir){return A(ir,er,we,de,ye.allowsImportingSpecifier,function(Cr){return e.toPath(Cr,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))})===-1?ir:er})}function A(_e,we,de,ye,Ae,er){return _e.kind!==0&&we.kind!==0?e.compareBooleans(Ae(we.moduleSpecifier),Ae(_e.moduleSpecifier))||L(_e.moduleSpecifier,we.moduleSpecifier,de,ye)||e.compareBooleans(y(_e,de,ye.getCompilerOptions(),er),y(we,de,ye.getCompilerOptions(),er))||e.compareNumberOfDirectorySeparators(_e.moduleSpecifier,we.moduleSpecifier):0}function y(_e,we,de,ye){var Ae;if(_e.isReExport&&((Ae=_e.exportInfo)===null||Ae===void 0?void 0:Ae.moduleFileName)&&e.getEmitModuleResolutionKind(de)===e.ModuleResolutionKind.NodeJs&&V(_e.exportInfo.moduleFileName)){var er=ye(e.getDirectoryPath(_e.exportInfo.moduleFileName));return e.startsWith(we.path,er)}return!1}function V(_e){return e.getBaseFileName(_e,[".js",".jsx",".d.ts",".ts",".tsx"],!0)==="index"}function L(_e,we,de,ye){return e.startsWith(_e,"node:")&&!e.startsWith(we,"node:")?e.shouldUseUriStyleNodeCoreModules(de,ye)?-1:1:e.startsWith(we,"node:")&&!e.startsWith(_e,"node:")?e.shouldUseUriStyleNodeCoreModules(de,ye)?1:-1:0}function P(_e,we){var de,ye=_e.sourceFile,Ae=_e.program,er=_e.host,ir=_e.preferences,Cr=Ae.getTypeChecker(),Ye=k(we,Cr);if(!!Ye){var Br=Cr.getAliasedSymbol(Ye),Er=Ye.name,Ne=[{symbol:Ye,moduleSymbol:Br,moduleFileName:void 0,exportKind:3,targetFlags:Br.flags,isFromPackageJson:!1}],n=ve(ye,Ae),lr=e.isIdentifier(we)?we.getStart(ye):void 0,be=b(Ne,lr?{position:lr,symbolName:Er}:void 0,!1,n,Ae,ye,er,ir).fixes;return{fixes:be,symbolName:Er,errorIdentifierText:(de=e.tryCast(we,e.isIdentifier))===null||de===void 0?void 0:de.text}}}function k(_e,we){var de=e.isIdentifier(_e)?we.getSymbolAtLocation(_e):void 0;if(e.isUMDExportSymbol(de))return de;var ye=_e.parent;return e.isJsxOpeningLikeElement(ye)&&ye.tagName===_e||e.isJsxOpeningFragment(ye)?e.tryCast(we.resolveName(we.getJsxNamespace(ye),e.isJsxOpeningLikeElement(ye)?_e:ye,111551,!1),e.isUMDExportSymbol):void 0}function Y(_e,we,de,ye){switch(we){case 0:return 0;case 1:return 1;case 2:return D(_e,de,!!ye);case 3:return U(_e,de,!!ye);default:return e.Debug.assertNever(we)}}C.getImportKind=Y;function U(_e,we,de){if(e.getAllowSyntheticDefaultImports(we))return 1;var ye=e.getEmitModuleKind(we);switch(ye){case e.ModuleKind.AMD:case e.ModuleKind.CommonJS:case e.ModuleKind.UMD:return e.isInJSFile(_e)&&(e.isExternalModule(_e)||de)?2:3;case e.ModuleKind.System:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.None:return 2;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return _e.impliedNodeFormat===e.ModuleKind.ESNext?2:3;default:return e.Debug.assertNever(ye,"Unexpected moduleKind ".concat(ye))}}function j(_e,we,de){var ye=_e.sourceFile,Ae=_e.program,er=_e.cancellationToken,ir=_e.host,Cr=_e.preferences,Ye=Ae.getTypeChecker(),Br=Ae.getCompilerOptions(),Er=w(ye,Ye,we,Br);if(Er!=="default"){var Ne=e.isValidTypeOnlyAliasUseSite(we),n=ve(ye,Ae),lr=d(Er,e.isJSXTagName(we),e.getMeaningFromLocation(we),er,ye,Ae,de,ir,Cr),be=e.arrayFrom(e.flatMapIterator(lr.entries(),function(Ge){var ur=Ge[0],yr=Ge[1];return b(yr,{symbolName:Er,position:we.getStart(ye)},Ne,n,Ae,ye,ir,Cr).fixes}));return{fixes:be,symbolName:Er,errorIdentifierText:we.text}}}function H(_e,we,de,ye){var Ae=ye.getTypeChecker(),er=Ae.resolveName(de,we,111551,!0);if(!!er){var ir=Ae.getTypeOnlyAliasDeclaration(er);if(!(!ir||e.getSourceFileOfNode(ir)!==_e))return{kind:4,typeOnlyAliasDeclaration:ir}}}function w(_e,we,de,ye){var Ae=de.parent;if((e.isJsxOpeningLikeElement(Ae)||e.isJsxClosingElement(Ae))&&Ae.tagName===de&&e.jsxModeNeedsExplicitImport(ye.jsx)){var er=we.getJsxNamespace(_e);if(l(er,de,we))return er}return de.text}function l(_e,we,de){if(e.isIntrinsicJsxName(we.text))return!0;var ye=de.resolveName(_e,we,111551,!0);return!ye||e.some(ye.declarations,e.isTypeOnlyImportOrExportDeclaration)&&!(ye.flags&111551)}function d(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br,Er=e.createMultiMap(),Ne=e.createPackageJsonImportFilter(Ae,Ye,Cr),n=(Br=Cr.getModuleSpecifierCache)===null||Br===void 0?void 0:Br.call(Cr),lr=e.memoizeOne(function(Ge){return e.createModuleSpecifierResolutionHost(Ge?Cr.getPackageJsonAutoImportProvider():er,Cr)});function be(Ge,ur,yr,Ir,wr,Ur){var ii=lr(Ur);if(ur&&e.isImportableFile(wr,Ae,ur,Ye,Ne,ii,n)||!ur&&Ne.allowsImportingAmbientModule(Ge,ii)){var mi=wr.getTypeChecker();Er.add(e.getUniqueSymbolId(yr,mi).toString(),{symbol:yr,moduleSymbol:Ge,moduleFileName:ur==null?void 0:ur.fileName,exportKind:Ir,targetFlags:e.skipAlias(yr,mi).flags,isFromPackageJson:Ur})}}return e.forEachExternalModuleToImportFrom(er,Cr,ir,function(Ge,ur,yr,Ir){var wr=yr.getTypeChecker();ye.throwIfCancellationRequested();var Ur=yr.getCompilerOptions(),ii=e.getDefaultLikeExportInfo(Ge,wr,Ur);ii&&(ii.name===_e||rr(Ge,e.getEmitScriptTarget(Ur),we)===_e)&&He(ii.symbolForMeaning,de)&&be(Ge,ur,ii.symbol,ii.exportKind,yr,Ir);var mi=wr.tryGetMemberInModuleExportsAndProperties(_e,Ge);mi&&He(mi,de)&&be(Ge,ur,mi,0,yr,Ir)}),Er}function D(_e,we,de){var ye=e.getAllowSyntheticDefaultImports(we),Ae=e.isInJSFile(_e);if(!Ae&&e.getEmitModuleKind(we)>=e.ModuleKind.ES2015)return ye?1:2;if(Ae)return e.isExternalModule(_e)||de?ye?1:2:3;for(var er=0,ir=_e.statements;er1&&e.OrganizeImports.importSpecifiersAreSorted(we.parent.elements)){_e.delete(ye,we);var er=e.factory.updateImportSpecifier(we,!1,we.propertyName,we.name),ir=e.OrganizeImports.getImportSpecifierInsertionIndex(we.parent.elements,er);_e.insertImportSpecifierAtIndex(ye,er,we.parent,ir)}else _e.deleteRange(ye,we.getFirstToken());return we}else return e.Debug.assert(we.parent.parent.isTypeOnly),Cr(we.parent.parent),we.parent.parent;case 267:return Cr(we),we;case 268:return Cr(we.parent),we.parent;case 265:return _e.deleteRange(ye,we.getChildAt(1)),we;default:e.Debug.failBadSyntaxKind(we)}function Cr(Ye){if(_e.delete(ye,e.getTypeKeywordOfTypeOnlyImport(Ye,ye)),Ae){var Br=e.tryCast(Ye.namedBindings,e.isNamedImports);if(Br&&Br.elements.length>1){e.OrganizeImports.importSpecifiersAreSorted(Br.elements)&&we.kind===270&&Br.elements.indexOf(we)!==0&&(_e.delete(ye,we),_e.insertImportSpecifierAtIndex(ye,we,Br,0));for(var Er=0,Ne=Br.elements;Er"),[e.Diagnostics.Convert_function_expression_0_to_arrow_function,f?f.text:e.ANONYMOUS]):(X.replaceNode(le,oe,e.factory.createToken(85)),X.insertText(le,f.end," = "),X.insertText(le,T.pos," =>"),[e.Diagnostics.Convert_function_declaration_0_to_arrow_function,f.text])}}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixIncorrectNamedTupleSyntax",R=[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];C.registerCodeFix({errorCodes:R,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=E(p,m.start),oe=e.textChanges.ChangeTracker.with(N,function(f){return X(f,p,G)});return[C.createCodeFixAction(I,oe,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels,I,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)]},fixIds:[I]});function E(le,N){var p=e.getTokenAtPosition(le,N);return e.findAncestor(p,function(m){return m.kind===197})}function X(le,N,p){if(!!p){for(var m=p.type,G=!1,oe=!1;m.kind===185||m.kind===186||m.kind===191;)m.kind===185?G=!0:m.kind===186&&(oe=!0),m=m.type;var f=e.factory.updateNamedTupleMember(p,p.dotDotDotToken||(oe?e.factory.createToken(25):void 0),p.name,p.questionToken||(G?e.factory.createToken(57):void 0),m);f!==p&&le.replaceNode(N,p,f)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixSpelling",R=[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_namespace_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.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_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];C.registerCodeFix({errorCodes:R,getCodeActions:function(p){var m=p.sourceFile,G=p.errorCode,oe=E(m,p.span.start,p,G);if(!!oe){var f=oe.node,T=oe.suggestedSymbol,K=e.getEmitScriptTarget(p.host.getCompilationSettings()),b=e.textChanges.ChangeTracker.with(p,function(se){return X(se,m,f,T,K)});return[C.createCodeFixAction("spelling",b,[e.Diagnostics.Change_spelling_to_0,e.symbolName(T)],I,e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[I],getAllCodeActions:function(p){return C.codeFixAll(p,R,function(m,G){var oe=E(G.file,G.start,p,G.code),f=e.getEmitScriptTarget(p.host.getCompilationSettings());oe&&X(m,p.sourceFile,oe.node,oe.suggestedSymbol,f)})}});function E(p,m,G,oe){var f=e.getTokenAtPosition(p,m),T=f.parent;if(!((oe===e.Diagnostics.No_overload_matches_this_call.code||oe===e.Diagnostics.Type_0_is_not_assignable_to_type_1.code)&&!e.isJsxAttribute(T))){var K=G.program.getTypeChecker(),b;if(e.isPropertyAccessExpression(T)&&T.name===f){e.Debug.assert(e.isMemberName(f),"Expected an identifier for spelling (property access)");var se=K.getTypeAtLocation(T.expression);T.flags&32&&(se=K.getNonNullableType(se)),b=K.getSuggestedSymbolForNonexistentProperty(f,se)}else if(e.isBinaryExpression(T)&&T.operatorToken.kind===101&&T.left===f&&e.isPrivateIdentifier(f)){var J=K.getTypeAtLocation(T.right);b=K.getSuggestedSymbolForNonexistentProperty(f,J)}else if(e.isQualifiedName(T)&&T.right===f){var ie=K.getSymbolAtLocation(T.left);ie&&ie.flags&1536&&(b=K.getSuggestedSymbolForNonexistentModule(T.right,ie))}else if(e.isImportSpecifier(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,"Expected an identifier for spelling (import)");var B=e.findAncestor(f,e.isImportDeclaration),q=N(p,G,B);q&&q.symbol&&(b=K.getSuggestedSymbolForNonexistentModule(f,q.symbol))}else if(e.isJsxAttribute(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,"Expected an identifier for JSX attribute");var O=e.findAncestor(f,e.isJsxOpeningLikeElement),ve=K.getContextualTypeForArgumentAtIndex(O,0);b=K.getSuggestedSymbolForNonexistentJSXAttribute(f,ve)}else if(e.hasSyntacticModifier(T,16384)&&e.isClassElement(T)&&T.name===f){var ee=e.findAncestor(f,e.isClassLike),he=ee?e.getEffectiveBaseTypeNode(ee):void 0,F=he?K.getTypeAtLocation(he):void 0;F&&(b=K.getSuggestedSymbolForNonexistentClassMember(e.getTextOfNode(f),F))}else{var x=e.getMeaningFromLocation(f),Q=e.getTextOfNode(f);e.Debug.assert(Q!==void 0,"name should be defined"),b=K.getSuggestedSymbolForNonexistentSymbol(f,Q,le(x))}return b===void 0?void 0:{node:f,suggestedSymbol:b}}}function X(p,m,G,oe,f){var T=e.symbolName(oe);if(!e.isIdentifierText(T,f)&&e.isPropertyAccessExpression(G.parent)){var K=oe.valueDeclaration;K&&e.isNamedDeclaration(K)&&e.isPrivateIdentifier(K.name)?p.replaceNode(m,G,e.factory.createIdentifier(T)):p.replaceNode(m,G.parent,e.factory.createElementAccessExpression(G.parent.expression,e.factory.createStringLiteral(T)))}else p.replaceNode(m,G,e.factory.createIdentifier(T))}function le(p){var m=0;return p&4&&(m|=1920),p&2&&(m|=788968),p&1&&(m|=111551),m}function N(p,m,G){if(!(!G||!e.isStringLiteralLike(G.moduleSpecifier))){var oe=e.getResolvedModule(p,G.moduleSpecifier.text,e.getModeForUsageLocation(p,G.moduleSpecifier));if(!!oe)return m.program.getSourceFile(oe.resolvedFileName)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="returnValueCorrect",R="fixAddReturnStatement",E="fixRemoveBracesFromArrowFunctionBody",X="fixWrapTheBlockWithParen",le=[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],N;(function(B){B[B.MissingReturnStatement=0]="MissingReturnStatement",B[B.MissingParentheses=1]="MissingParentheses"})(N||(N={})),C.registerCodeFix({errorCodes:le,fixIds:[R,E,X],getCodeActions:function(q){var O=q.program,ve=q.sourceFile,ee=q.span.start,he=q.errorCode,F=oe(O.getTypeChecker(),ve,ee,he);if(!!F)return F.kind===N.MissingReturnStatement?e.append([se(q,F.expression,F.statement)],e.isArrowFunction(F.declaration)?J(q,F.declaration,F.expression,F.commentSource):void 0):[ie(q,F.declaration,F.expression)]},getAllCodeActions:function(B){return C.codeFixAll(B,le,function(q,O){var ve=oe(B.program.getTypeChecker(),O.file,O.start,O.code);if(!!ve)switch(B.fixId){case R:T(q,O.file,ve.expression,ve.statement);break;case E:if(!e.isArrowFunction(ve.declaration))return;K(q,O.file,ve.declaration,ve.expression,ve.commentSource,!1);break;case X:if(!e.isArrowFunction(ve.declaration))return;b(q,O.file,ve.declaration,ve.expression);break;default:e.Debug.fail(JSON.stringify(B.fixId))}})}});function p(B,q,O){var ve=B.createSymbol(4,q.escapedText);ve.type=B.getTypeAtLocation(O);var ee=e.createSymbolTable([ve]);return B.createAnonymousType(void 0,ee,[],[],[])}function m(B,q,O,ve){if(!(!q.body||!e.isBlock(q.body)||e.length(q.body.statements)!==1)){var ee=e.first(q.body.statements);if(e.isExpressionStatement(ee)&&G(B,q,B.getTypeAtLocation(ee.expression),O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:ee.expression,statement:ee,commentSource:ee.expression};if(e.isLabeledStatement(ee)&&e.isExpressionStatement(ee.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(ee.label,ee.statement.expression)]),F=p(B,ee.label,ee.statement.expression);if(G(B,q,F,O,ve))return e.isArrowFunction(q)?{declaration:q,kind:N.MissingParentheses,expression:he,statement:ee,commentSource:ee.statement.expression}:{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:ee.statement.expression}}else if(e.isBlock(ee)&&e.length(ee.statements)===1){var x=e.first(ee.statements);if(e.isLabeledStatement(x)&&e.isExpressionStatement(x.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(x.label,x.statement.expression)]),F=p(B,x.label,x.statement.expression);if(G(B,q,F,O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:x}}}}}function G(B,q,O,ve,ee){if(ee){var he=B.getSignatureFromDeclaration(q);if(he){e.hasSyntacticModifier(q,256)&&(O=B.createPromiseType(O));var F=B.createSignature(q,he.typeParameters,he.thisParameter,he.parameters,O,void 0,he.minArgumentCount,he.flags);O=B.createAnonymousType(void 0,e.createSymbolTable(),[F],[],[])}else O=B.getAnyType()}return B.isTypeAssignableTo(O,ve)}function oe(B,q,O,ve){var ee=e.getTokenAtPosition(q,O);if(!!ee.parent){var he=e.findAncestor(ee.parent,e.isFunctionLikeDeclaration);switch(ve){case e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:return!he||!he.body||!he.type||!e.rangeContainsRange(he.type,ee)?void 0:m(B,he,B.getTypeFromTypeNode(he.type),!1);case e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:if(!he||!e.isCallExpression(he.parent)||!he.body)return;var F=he.parent.arguments.indexOf(he),x=B.getContextualTypeForArgumentAtIndex(he.parent,F);return x?m(B,he,x,!0):void 0;case e.Diagnostics.Type_0_is_not_assignable_to_type_1.code:if(!e.isDeclarationName(ee)||!e.isVariableLike(ee.parent)&&!e.isJsxAttribute(ee.parent))return;var Q=f(ee.parent);return!Q||!e.isFunctionLikeDeclaration(Q)||!Q.body?void 0:m(B,Q,B.getTypeAtLocation(ee.parent),!0)}}}function f(B){switch(B.kind){case 254:case 164:case 203:case 167:case 296:return B.initializer;case 285:return B.initializer&&(e.isJsxExpression(B.initializer)?B.initializer.expression:void 0);case 297:case 166:case 299:case 347:case 340:return}}function T(B,q,O,ve){e.suppressLeadingAndTrailingTrivia(O);var ee=e.probablyUsesSemicolons(q);B.replaceNode(q,ve,e.factory.createReturnStatement(O),{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Exclude,suffix:ee?";":void 0})}function K(B,q,O,ve,ee,he){var F=he||e.needsParentheses(ve)?e.factory.createParenthesizedExpression(ve):ve;e.suppressLeadingAndTrailingTrivia(ee),e.copyComments(ee,F),B.replaceNode(q,O.body,F)}function b(B,q,O,ve){B.replaceNode(q,O.body,e.factory.createParenthesizedExpression(ve))}function se(B,q,O){var ve=e.textChanges.ChangeTracker.with(B,function(ee){return T(ee,B.sourceFile,q,O)});return C.createCodeFixAction(I,ve,e.Diagnostics.Add_a_return_statement,R,e.Diagnostics.Add_all_missing_return_statement)}function J(B,q,O,ve){var ee=e.textChanges.ChangeTracker.with(B,function(he){return K(he,B.sourceFile,q,O,ve,!1)});return C.createCodeFixAction(I,ee,e.Diagnostics.Remove_braces_from_arrow_function_body,E,e.Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues)}function ie(B,q,O){var ve=e.textChanges.ChangeTracker.with(B,function(ee){return b(ee,B.sourceFile,q,O)});return C.createCodeFixAction(I,ve,e.Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal,X,e.Diagnostics.Wrap_all_object_literal_with_parentheses)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixMissingMember",R="fixMissingProperties",E="fixMissingAttributes",X="fixMissingFunctionDeclaration",le=[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.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,e.Diagnostics.Cannot_find_name_0.code];C.registerCodeFix({errorCodes:le,getCodeActions:function(y){var V=y.program.getTypeChecker(),L=p(y.sourceFile,y.span.start,y.errorCode,V,y.program);if(!!L){if(L.kind===3){var P=e.textChanges.ChangeTracker.with(y,function(k){return he(k,y,L)});return[C.createCodeFixAction(R,P,e.Diagnostics.Add_missing_properties,R,e.Diagnostics.Add_all_missing_properties)]}if(L.kind===4){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ee(Y,y,L)});return[C.createCodeFixAction(E,P,e.Diagnostics.Add_missing_attributes,E,e.Diagnostics.Add_all_missing_attributes)]}if(L.kind===2){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ve(Y,y,L)});return[C.createCodeFixAction(X,P,[e.Diagnostics.Add_missing_function_declaration_0,L.token.text],X,e.Diagnostics.Add_all_missing_function_declarations)]}if(L.kind===1){var P=e.textChanges.ChangeTracker.with(y,function(Y){return O(Y,y.program.getTypeChecker(),L)});return[C.createCodeFixAction(I,P,[e.Diagnostics.Add_missing_enum_member_0,L.token.text],I,e.Diagnostics.Add_all_missing_members)]}return e.concatenate(B(y,L),G(y,L))}},fixIds:[I,X,R,E],getAllCodeActions:function(y){var V=y.program,L=y.fixId,P=V.getTypeChecker(),k=new e.Map,Y=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(y,function(U){C.eachDiagnostic(y,le,function(j){var H=p(j.file,j.start,j.code,P,y.program);if(!(!H||!e.addToSeen(k,e.getNodeId(H.parentDeclaration)+"#"+H.token.text))){if(L===X&&H.kind===2)ve(U,y,H);else if(L===R&&H.kind===3)he(U,y,H);else if(L===E&&H.kind===4)ee(U,y,H);else if(H.kind===1&&O(U,P,H),H.kind===0){var w=H.parentDeclaration,l=H.token,d=e.getOrUpdate(Y,w,function(){return[]});d.some(function(D){return D.token.text===l.text})||d.push(H)}}}),Y.forEach(function(j,H){for(var w=e.isTypeLiteralNode(H)?void 0:C.getAllSupers(H,P),l=function(g){if(w!=null&&w.some(function(Re){var ze=Y.get(Re);return!!ze&&ze.some(function(Ee){var He=Ee.token;return He.text===g.token.text})}))return"continue";var ne=g.parentDeclaration,ue=g.declSourceFile,We=g.modifierFlags,Fe=g.token,Z=g.call,Be=g.isJSFile;if(Z&&!e.isPrivateIdentifier(Fe))q(y,U,Z,Fe,We&32,ne,ue);else if(Be&&!e.isInterfaceDeclaration(ne)&&!e.isTypeLiteralNode(ne))f(U,ue,ne,Fe,!!(We&32));else{var ge=b(P,ne,Fe);se(U,ue,ne,Fe.text,ge,We&32)}},d=0,D=j;d=e.ModuleKind.ES2015&&N99;if(oe){var m=e.textChanges.ChangeTracker.with(R,function(T){var K=e.getTsConfigObjectLiteralExpression(X);if(!!K){var b=[["target",e.factory.createStringLiteral("es2017")]];N===e.ModuleKind.CommonJS&&b.push(["module",e.factory.createStringLiteral("commonjs")]),C.setJsonCompilerOptionValues(T,X,b)}});le.push(C.createCodeFixActionWithoutFixAll("fixTargetOption",m,[e.Diagnostics.Set_the_target_option_in_your_configuration_file_to_0,"es2017"]))}return le.length?le:void 0}}})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixPropertyAssignment",R=[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];C.registerCodeFix({errorCodes:R,fixIds:[I],getCodeActions:function(le){var N=le.sourceFile,p=le.span,m=X(N,p.start),G=e.textChanges.ChangeTracker.with(le,function(oe){return E(oe,le.sourceFile,m)});return[C.createCodeFixAction(I,G,[e.Diagnostics.Change_0_to_1,"=",":"],I,[e.Diagnostics.Switch_each_misused_0_to_1,"=",":"])]},getAllCodeActions:function(le){return C.codeFixAll(le,R,function(N,p){return E(N,p.file,X(p.file,p.start))})}});function E(le,N,p){le.replaceNode(N,p,e.factory.createPropertyAssignment(p.name,p.objectAssignmentInitializer))}function X(le,N){return e.cast(e.getTokenAtPosition(le,N).parent,e.isShorthandPropertyAssignment)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="extendsInterfaceBecomesImplements",R=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(le){var N=le.sourceFile,p=E(N,le.span.start);if(!!p){var m=p.extendsToken,G=p.heritageClauses,oe=e.textChanges.ChangeTracker.with(le,function(f){return X(f,N,m,G)});return[C.createCodeFixAction(I,oe,e.Diagnostics.Change_extends_to_implements,I,e.Diagnostics.Change_all_extended_interfaces_to_implements)]}},fixIds:[I],getAllCodeActions:function(le){return C.codeFixAll(le,R,function(N,p){var m=E(p.file,p.start);m&&X(N,p.file,m.extendsToken,m.heritageClauses)})}});function E(le,N){var p=e.getTokenAtPosition(le,N),m=e.getContainingClass(p).heritageClauses,G=m[0].getFirstToken();return G.kind===94?{extendsToken:G,heritageClauses:m}:void 0}function X(le,N,p,m){if(le.replaceNode(N,p,e.factory.createToken(117)),m.length===2&&m[0].token===94&&m[1].token===117){var G=m[1].getFirstToken(),oe=G.getFullStart();le.replaceRange(N,{pos:oe,end:oe},e.factory.createToken(27));for(var f=N.text,T=G.end;T":">","}":"}"};function le(p){return e.hasProperty(X,p)}function N(p,m,G,oe,f){var T=G.getText()[oe];if(!!le(T)){var K=f?X[T]:"{".concat(e.quote(G,m,T),"}");p.replaceRangeWithText(G,{pos:oe,end:oe+1},K)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="deleteUnmatchedParameter",R="renameUnmatchedParameter",E=[e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code];C.registerCodeFix({fixIds:[I,R],errorCodes:E,getCodeActions:function(m){var G=m.sourceFile,oe=m.span,f=[],T=N(G,oe.start);if(T)return e.append(f,X(m,T)),e.append(f,le(m,T)),f},getAllCodeActions:function(m){var G=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(m,function(oe){C.eachDiagnostic(m,E,function(f){var T=f.file,K=f.start,b=N(T,K);b&&G.set(b.signature,e.append(G.get(b.signature),b.jsDocParameterTag))}),G.forEach(function(f,T){if(m.fixId===I){var K=new e.Set(f);oe.filterJSDocTags(T.getSourceFile(),T,function(b){return!K.has(b)})}})}))}});function X(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag,T=e.textChanges.ChangeTracker.with(p,function(K){return K.filterJSDocTags(p.sourceFile,oe,function(b){return b!==f})});return C.createCodeFixAction(I,T,[e.Diagnostics.Delete_unused_param_tag_0,G.getText(p.sourceFile)],I,e.Diagnostics.Delete_all_unused_param_tags)}function le(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag;if(!!e.length(oe.parameters)){for(var T=p.sourceFile,K=e.getJSDocTags(oe),b=new e.Set,se=0,J=K;se1?e.Diagnostics.Remove_unused_declarations_for_Colon_0:e.Diagnostics.Remove_unused_declaration_for_Colon_0,e.map(j,function(D){return D.getText($)}).join(", ")];return[m(e.textChanges.ChangeTracker.with(x,function(D){return b(D,$,P.parent)}),H)]}return[m(e.textChanges.ChangeTracker.with(x,function(D){return D.delete($,P.parent.parent)}),e.Diagnostics.Remove_unused_destructuring_declaration)]}if(T($,P))return[m(e.textChanges.ChangeTracker.with(x,function(D){return K(D,$,P.parent)}),e.Diagnostics.Remove_variable_statement)];var w=[];if(P.kind===137){var k=e.textChanges.ChangeTracker.with(x,function(fe){return p(fe,$,P)}),l=e.cast(P.parent,e.isInferTypeNode).typeParameter.name.text;w.push(C.createCodeFixAction(I,k,[e.Diagnostics.Replace_infer_0_with_unknown,l],le,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var U=e.textChanges.ChangeTracker.with(x,function(fe){return ie($,P,fe,V,L,A,y,!1)});if(U.length){var l=e.isComputedPropertyName(P.parent)?P.parent:P;w.push(m(U,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,l.getText($)]))}}var d=e.textChanges.ChangeTracker.with(x,function(D){return se(D,Q,$,P)});return d.length&&w.push(C.createCodeFixAction(I,d,[e.Diagnostics.Prefix_0_with_an_underscore,P.getText($)],R,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),w},fixIds:[R,E,X,le],getAllCodeActions:function(x){var Q=x.sourceFile,$=x.program,A=x.cancellationToken,y=$.getTypeChecker(),V=$.getSourceFiles();return C.codeFixAll(x,N,function(L,P){var k=e.getTokenAtPosition(Q,P.start);switch(x.fixId){case R:se(L,P.code,Q,k);break;case X:{var Y=f(k);Y?L.delete(Q,Y):oe(k)&&ie(Q,k,L,y,V,$,A,!0);break}case E:{if(k.kind===137||oe(k))break;if(e.isJSDocTemplateTag(k))L.delete(Q,k);else if(k.kind===29)G(L,Q,k);else if(e.isObjectBindingPattern(k.parent)){if(k.parent.parent.initializer)break;(!e.isParameter(k.parent.parent)||O(k.parent.parent,y,V))&&L.delete(Q,k.parent.parent)}else{if(e.isArrayBindingPattern(k.parent.parent)&&k.parent.parent.parent.initializer)break;T(Q,k)?K(L,Q,k.parent):ie(Q,k,L,y,V,$,A,!0)}break}case le:k.kind===137&&p(L,Q,k);break;default:e.Debug.fail(JSON.stringify(x.fixId))}})}});function p(x,Q,$){x.replaceNode(Q,$.parent,e.factory.createKeywordTypeNode(155))}function m(x,Q){return C.createCodeFixAction(I,x,Q,E,e.Diagnostics.Delete_all_unused_declarations)}function G(x,Q,$){x.delete(Q,e.Debug.checkDefined(e.cast($.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,"The type parameter to delete should exist"))}function oe(x){return x.kind===100||x.kind===79&&(x.parent.kind===270||x.parent.kind===267)}function f(x){return x.kind===100?e.tryCast(x.parent,e.isImportDeclaration):void 0}function T(x,Q){return e.isVariableDeclarationList(Q.parent)&&e.first(Q.parent.getChildren(x))===Q}function K(x,Q,$){x.delete(Q,$.parent.kind===237?$.parent:$)}function b(x,Q,$){e.forEach($.elements,function(A){return x.delete(Q,A)})}function se(x,Q,$,A){Q!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(A.kind===137&&(A=e.cast(A.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(A)&&J(A)&&(x.replaceNode($,A,e.factory.createIdentifier("_".concat(A.text))),e.isParameter(A.parent)&&e.getJSDocParameterTags(A.parent).forEach(function(y){e.isIdentifier(y.name)&&x.replaceNode($,y.name,e.factory.createIdentifier("_".concat(y.name.text)))})))}function J(x){switch(x.parent.kind){case 164:case 163:return!0;case 254:{var Q=x.parent;switch(Q.parent.parent.kind){case 244:case 243:return!0}}}return!1}function ie(x,Q,$,A,y,V,L,P){B(Q,$,x,A,y,V,L,P),e.isIdentifier(Q)&&e.FindAllReferences.Core.eachSymbolReferenceInFile(Q,A,x,function(k){e.isPropertyAccessExpression(k.parent)&&k.parent.name===k&&(k=k.parent),!P&&F(k)&&$.delete(x,k.parent.parent)})}function B(x,Q,$,A,y,V,L,P){var k=x.parent;if(e.isParameter(k))q(Q,$,k,A,y,V,L,P);else if(!(P&&e.isIdentifier(x)&&e.FindAllReferences.Core.isSymbolReferencedInFile(x,A,$))){var Y=e.isImportClause(k)?x:e.isComputedPropertyName(k)?k.parent:k;e.Debug.assert(Y!==$,"should not delete whole source file"),Q.delete($,Y)}}function q(x,Q,$,A,y,V,L,P){P===void 0&&(P=!1),ve(A,Q,$,y,V,L,P)&&($.modifiers&&$.modifiers.length>0&&(!e.isIdentifier($.name)||e.FindAllReferences.Core.isSymbolReferencedInFile($.name,A,Q))?$.modifiers.forEach(function(k){return x.deleteModifier(Q,k)}):!$.initializer&&O($,A,y)&&x.delete(Q,$))}function O(x,Q,$){var A=x.parent.parameters.indexOf(x);return!e.FindAllReferences.Core.someSignatureUsage(x.parent,$,Q,function(y,V){return!V||V.arguments.length>A})}function ve(x,Q,$,A,y,V,L){var P=$.parent;switch(P.kind){case 169:case 171:var k=P.parameters.indexOf($),Y=e.isMethodDeclaration(P)?P.name:P,U=e.FindAllReferences.Core.getReferencedSymbolsForNode(P.pos,Y,y,A,V);if(U)for(var j=0,H=U;jk,g=e.isPropertyAccessExpression(D.node.parent)&&e.isSuperKeyword(D.node.parent.expression)&&e.isCallExpression(D.node.parent.parent)&&D.node.parent.parent.arguments.length>k,ne=(e.isMethodDeclaration(D.node.parent)||e.isMethodSignature(D.node.parent))&&D.node.parent!==$.parent&&D.node.parent.parameters.length>k;if(fe||g||ne)return!1}}return!0;case 256:return P.name&&ee(x,Q,P.name)?he(P,$,L):!0;case 213:case 214:return he(P,$,L);case 173:return!1;case 172:return!0;default:return e.Debug.failBadSyntaxKind(P)}}function ee(x,Q,$){return!!e.FindAllReferences.Core.eachSymbolReferenceInFile($,x,Q,function(A){return e.isIdentifier(A)&&e.isCallExpression(A.parent)&&A.parent.arguments.indexOf(A)>=0})}function he(x,Q,$){var A=x.parameters,y=A.indexOf(Q);return e.Debug.assert(y!==-1,"The parameter should already be in the list"),$?A.slice(y+1).every(function(V){return e.isIdentifier(V.name)&&!V.symbol.isReferenced}):y===A.length-1}function F(x){return(e.isBinaryExpression(x.parent)&&x.parent.left===x||(e.isPostfixUnaryExpression(x.parent)||e.isPrefixUnaryExpression(x.parent))&&x.parent.operand===x)&&e.isExpressionStatement(x.parent.parent)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixUnreachableCode",R=[e.Diagnostics.Unreachable_code_detected.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(le){var N=le.program.getSyntacticDiagnostics(le.sourceFile,le.cancellationToken);if(!N.length){var p=e.textChanges.ChangeTracker.with(le,function(m){return E(m,le.sourceFile,le.span.start,le.span.length,le.errorCode)});return[C.createCodeFixAction(I,p,e.Diagnostics.Remove_unreachable_code,I,e.Diagnostics.Remove_all_unreachable_code)]}},fixIds:[I],getAllCodeActions:function(le){return C.codeFixAll(le,R,function(N,p){return E(N,p.file,p.start,p.length,p.code)})}});function E(le,N,p,m,G){var oe=e.getTokenAtPosition(N,p),f=e.findAncestor(oe,e.isStatement);if(f.getStart(N)!==oe.getStart(N)){var T=JSON.stringify({statementKind:e.Debug.formatSyntaxKind(f.kind),tokenKind:e.Debug.formatSyntaxKind(oe.kind),errorCode:G,start:p,length:m});e.Debug.fail("Token and statement should start at the same point. "+T)}var K=(e.isBlock(f.parent)?f.parent:f).parent;if(!e.isBlock(f.parent)||f===e.first(f.parent.statements))switch(K.kind){case 239:if(K.elseStatement){if(e.isBlock(f.parent))break;le.replaceNode(N,f,e.factory.createBlock(e.emptyArray));return}case 241:case 242:le.delete(N,K);return}if(e.isBlock(f.parent)){var b=p+m,se=e.Debug.checkDefined(X(e.sliceAfter(f.parent.statements,f),function(J){return J.posHe.length){var rr=k.getSignatureFromDeclaration(P[P.length-1]);we(fe,rr,w,j,y||T(fe))}else e.Debug.assert(P.length===He.length,"Declarations and signatures should match count"),A(G(k,x,he,He,j,d&&!!(V&1),w,fe,y));break}function we(de,ye,Ae,er,ir){var Cr=le(169,x,de,ye,ir,er,Ae,d&&!!(V&1),he,$);Cr&&A(Cr)}}C.addNewNodeForMemberSymbol=X;function le(ee,he,F,x,Q,$,A,y,V,L){var P=he.program,k=P.getTypeChecker(),Y=e.getEmitScriptTarget(P.getCompilerOptions()),U=524545|(F===0?268435456:0),j=k.signatureToSignatureDeclaration(x,ee,V,U,R(he));if(!!j){var H=j.typeParameters,w=j.parameters,l=j.type;if(L){if(H){var d=e.sameMap(H,function(ue){var We=ue.constraint,Fe=ue.default;if(We){var Z=q(We,Y);Z&&(We=Z.typeNode,ve(L,Z.symbols))}if(Fe){var Z=q(Fe,Y);Z&&(Fe=Z.typeNode,ve(L,Z.symbols))}return e.factory.updateTypeParameterDeclaration(ue,ue.modifiers,ue.name,We,Fe)});H!==d&&(H=e.setTextRange(e.factory.createNodeArray(d,H.hasTrailingComma),H))}var D=e.sameMap(w,function(ue){var We=q(ue.type,Y),Fe=ue.type;return We&&(Fe=We.typeNode,ve(L,We.symbols)),e.factory.updateParameterDeclaration(ue,ue.decorators,ue.modifiers,ue.dotDotDotToken,ue.name,ue.questionToken,Fe,ue.initializer)});if(w!==D&&(w=e.setTextRange(e.factory.createNodeArray(D,w.hasTrailingComma),w)),l){var fe=q(l,Y);fe&&(l=fe.typeNode,ve(L,fe.symbols))}}var g=y?e.factory.createToken(57):void 0,ne=j.asteriskToken;if(e.isFunctionExpression(j))return e.factory.updateFunctionExpression(j,A,j.asteriskToken,e.tryCast($,e.isIdentifier),H,w,l,Q!=null?Q:j.body);if(e.isArrowFunction(j))return e.factory.updateArrowFunction(j,A,H,w,l,j.equalsGreaterThanToken,Q!=null?Q:j.body);if(e.isMethodDeclaration(j))return e.factory.updateMethodDeclaration(j,void 0,A,ne,$!=null?$:e.factory.createIdentifier(""),g,H,w,l,Q)}}C.createSignatureDeclarationFromSignature=le;function N(ee,he,F,x,Q,$,A){var y=e.getQuotePreference(he.sourceFile,he.preferences),V=e.getEmitScriptTarget(he.program.getCompilerOptions()),L=R(he),P=he.program.getTypeChecker(),k=e.isInJSFile(A),Y=x.typeArguments,U=x.arguments,j=x.parent,H=k?void 0:P.getContextualType(x),w=e.map(U,function(ue){return e.isIdentifier(ue)?ue.text:e.isPropertyAccessExpression(ue)&&e.isIdentifier(ue.name)?ue.name.text:void 0}),l=k?[]:e.map(U,function(ue){return p(P,F,P.getBaseTypeOfLiteralType(P.getTypeAtLocation(ue)),A,V,void 0,L)}),d=$?e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags($)):void 0,D=e.isYieldExpression(j)?e.factory.createToken(41):void 0,fe=k||Y===void 0?void 0:e.map(Y,function(ue,We){return e.factory.createTypeParameterDeclaration(void 0,84+Y.length-1<=90?String.fromCharCode(84+We):"T".concat(We))}),g=m(U.length,w,l,void 0,k),ne=k||H===void 0?void 0:P.typeToTypeNode(H,A,void 0,L);switch(ee){case 169:return e.factory.createMethodDeclaration(void 0,d,D,Q,void 0,fe,g,ne,T(y));case 168:return e.factory.createMethodSignature(d,Q,void 0,fe,g,ne);case 256:return e.factory.createFunctionDeclaration(void 0,d,D,Q,fe,g,ne,K(e.Diagnostics.Function_not_implemented.message,y));default:e.Debug.fail("Unexpected kind")}}C.createSignatureDeclarationFromCallExpression=N;function p(ee,he,F,x,Q,$,A){var y=ee.typeToTypeNode(F,x,$,A);if(y&&e.isImportTypeNode(y)){var V=q(y,Q);V&&(ve(he,V.symbols),y=V.typeNode)}return e.getSynthesizedDeepClone(y)}C.typeToAutoImportableTypeNode=p;function m(ee,he,F,x,Q){for(var $=[],A=0;A=x?e.factory.createToken(57):void 0,Q?void 0:F&&F[A]||e.factory.createKeywordTypeNode(155),void 0);$.push(y)}return $}function G(ee,he,F,x,Q,$,A,y,V){for(var L=x[0],P=x[0].minArgumentCount,k=!1,Y=0,U=x;Y=L.parameters.length&&(!e.signatureHasRestParameter(j)||e.signatureHasRestParameter(L))&&(L=j)}var H=L.parameters.length-(e.signatureHasRestParameter(L)?1:0),w=L.parameters.map(function(D){return D.name}),l=m(H,w,void 0,P,!1);if(k){var d=e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),w[H]||"rest",H>=P?e.factory.createToken(57):void 0,e.factory.createArrayTypeNode(e.factory.createKeywordTypeNode(155)),void 0);l.push(d)}return f(A,Q,$,void 0,l,oe(x,ee,he,F),y,V)}function oe(ee,he,F,x){if(e.length(ee)){var Q=he.getUnionType(e.map(ee,he.getReturnTypeOfSignature));return he.typeToTypeNode(Q,x,void 0,R(F))}}function f(ee,he,F,x,Q,$,A,y){return e.factory.createMethodDeclaration(void 0,ee,void 0,he,F?e.factory.createToken(57):void 0,x,Q,$,y||T(A))}function T(ee){return K(e.Diagnostics.Method_not_implemented.message,ee)}function K(ee,he){return e.factory.createBlock([e.factory.createThrowStatement(e.factory.createNewExpression(e.factory.createIdentifier("Error"),void 0,[e.factory.createStringLiteral(ee,he===0)]))],!0)}C.createStubbedBody=K;function b(ee){if(ee&4)return e.factory.createToken(123);if(ee&16)return e.factory.createToken(122)}function se(ee,he,F){var x=e.getTsConfigObjectLiteralExpression(he);if(!!x){var Q=B(x,"compilerOptions");if(Q===void 0){ee.insertNodeAtObjectStart(he,x,ie("compilerOptions",e.factory.createObjectLiteralExpression(F.map(function(Y){var U=Y[0],j=Y[1];return ie(U,j)}),!0)));return}var $=Q.initializer;if(!!e.isObjectLiteralExpression($))for(var A=0,y=F;A0)return[C.createCodeFixAction(I,N,e.Diagnostics.Convert_to_a_bigint_numeric_literal,I,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[I],getAllCodeActions:function(X){return C.codeFixAll(X,R,function(le,N){return E(le,N.file,N)})}});function E(X,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),e.isNumericLiteral);if(!!p){var m=p.getText(le)+"n";X.replaceNode(le,p,e.factory.createBigIntLiteral(m))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixAddModuleReferTypeMissingTypeof",R=I,E=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];C.registerCodeFix({errorCodes:E,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=X(m,G.start),f=e.textChanges.ChangeTracker.with(p,function(T){return le(T,m,oe)});return[C.createCodeFixAction(R,f,e.Diagnostics.Add_missing_typeof,R,e.Diagnostics.Add_missing_typeof)]},fixIds:[R],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return le(p,N.sourceFile,X(m.file,m.start))})}});function X(N,p){var m=e.getTokenAtPosition(N,p);return e.Debug.assert(m.kind===100,"This token should be an ImportKeyword"),e.Debug.assert(m.parent.kind===200,"Token parent should be an ImportType"),m.parent}function le(N,p,m){var G=e.factory.updateImportTypeNode(m,m.argument,m.qualifier,m.typeArguments,!0);N.replaceNode(p,m,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="wrapJsxInFragment",R=[e.Diagnostics.JSX_expressions_must_have_one_parent_element.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(T){return X(T,m,oe)});return[C.createCodeFixAction(I,f,e.Diagnostics.Wrap_in_JSX_fragment,I,e.Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)]}},fixIds:[I],getAllCodeActions:function(N){return C.codeFixAll(N,R,function(p,m){var G=E(N.sourceFile,m.start);!G||X(p,N.sourceFile,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=m.parent,oe=G.parent;if(!(!e.isBinaryExpression(oe)&&(oe=oe.parent,!e.isBinaryExpression(oe)))&&!!e.nodeIsMissing(oe.operatorToken))return oe}function X(N,p,m){var G=le(m);G&&N.replaceNode(p,m,e.factory.createJsxFragment(e.factory.createJsxOpeningFragment(),G,e.factory.createJsxJsxClosingFragment()))}function le(N){for(var p=[],m=N;;)if(e.isBinaryExpression(m)&&e.nodeIsMissing(m.operatorToken)&&m.operatorToken.kind===27){if(p.push(m.left),e.isJsxChild(m.right))return p.push(m.right),p;if(e.isBinaryExpression(m.right)){m=m.right;continue}else return}else return}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixConvertToMappedObjectType",R=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(K){return le(K,m,oe)}),T=e.idText(oe.container.name);return[C.createCodeFixAction(I,f,[e.Diagnostics.Convert_0_to_mapped_object_type,T],I,[e.Diagnostics.Convert_0_to_mapped_object_type,T])]}},fixIds:[I],getAllCodeActions:function(N){return C.codeFixAll(N,R,function(p,m){var G=E(m.file,m.start);G&&le(p,m.file,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=e.tryCast(m.parent.parent,e.isIndexSignatureDeclaration);if(!!G){var oe=e.isInterfaceDeclaration(G.parent)?G.parent:e.tryCast(G.parent.parent,e.isTypeAliasDeclaration);if(!!oe)return{indexSignature:G,container:oe}}}function X(N,p){return e.factory.createTypeAliasDeclaration(N.decorators,N.modifiers,N.name,N.typeParameters,p)}function le(N,p,m){var G=m.indexSignature,oe=m.container,f=e.isInterfaceDeclaration(oe)?oe.members:oe.type.members,T=f.filter(function(ie){return!e.isIndexSignatureDeclaration(ie)}),K=e.first(G.parameters),b=e.factory.createTypeParameterDeclaration(void 0,e.cast(K.name,e.isIdentifier),K.type),se=e.factory.createMappedTypeNode(e.hasEffectiveReadonlyModifier(G)?e.factory.createModifier(145):void 0,b,void 0,G.questionToken,G.type,void 0),J=e.factory.createIntersectionTypeNode(Ve(Ve(Ve([],e.getAllSuperTypeNodes(oe),!0),[se],!1),T.length?[e.factory.createTypeLiteralNode(T)]:e.emptyArray,!0));N.replaceNode(p,oe,X(oe,J))}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="removeAccidentalCallParentheses",R=[e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(E){var X=e.findAncestor(e.getTokenAtPosition(E.sourceFile,E.span.start),e.isCallExpression);if(!!X){var le=e.textChanges.ChangeTracker.with(E,function(N){N.deleteRange(E.sourceFile,{pos:X.expression.end,end:X.end})});return[C.createCodeFixActionWithoutFixAll(I,le,e.Diagnostics.Remove_parentheses)]}},fixIds:[I]})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="removeUnnecessaryAwait",R=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span)});if(N.length>0)return[C.createCodeFixAction(I,N,e.Diagnostics.Remove_unnecessary_await,I,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[I],getAllCodeActions:function(X){return C.codeFixAll(X,R,function(le,N){return E(le,N.file,N)})}});function E(X,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),function(K){return K.kind===132}),m=p&&e.tryCast(p.parent,e.isAwaitExpression);if(!!m){var G=m,oe=e.isParenthesizedExpression(m.parent);if(oe){var f=e.getLeftmostExpression(m.expression,!1);if(e.isIdentifier(f)){var T=e.findPrecedingToken(m.parent.pos,le);T&&T.kind!==103&&(G=m.parent)}}X.replaceNode(le,G,m.expression)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I=[e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code],R="splitTypeOnlyImport";C.registerCodeFix({errorCodes:I,fixIds:[R],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return X(m,E(N.sourceFile,N.span),N)});if(p.length)return[C.createCodeFixAction(R,p,e.Diagnostics.Split_into_two_separate_import_declarations,R,e.Diagnostics.Split_all_invalid_type_only_imports)]},getAllCodeActions:function(le){return C.codeFixAll(le,I,function(N,p){X(N,E(le.sourceFile,p),le)})}});function E(le,N){return e.findAncestor(e.getTokenAtPosition(le,N.start),e.isImportDeclaration)}function X(le,N,p){if(!!N){var m=e.Debug.checkDefined(N.importClause);le.replaceNode(p.sourceFile,N,e.factory.updateImportDeclaration(N,N.decorators,N.modifiers,e.factory.updateImportClause(m,m.isTypeOnly,m.name,void 0),N.moduleSpecifier,N.assertClause)),le.insertNodeAfter(p.sourceFile,N,e.factory.createImportDeclaration(void 0,void 0,e.factory.updateImportClause(m,m.isTypeOnly,void 0,m.namedBindings),N.moduleSpecifier,N.assertClause))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixConvertConstToLet",R=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];C.registerCodeFix({errorCodes:R,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=N.program,oe=E(p,m.start,G);if(oe!==void 0){var f=e.textChanges.ChangeTracker.with(N,function(T){return X(T,p,oe)});return[C.createCodeFixAction(I,f,e.Diagnostics.Convert_const_to_let,I,e.Diagnostics.Convert_const_to_let)]}},fixIds:[I]});function E(le,N,p){var m,G=p.getTypeChecker(),oe=G.getSymbolAtLocation(e.getTokenAtPosition(le,N)),f=e.tryCast((m=oe==null?void 0:oe.valueDeclaration)===null||m===void 0?void 0:m.parent,e.isVariableDeclarationList);if(f!==void 0){var T=e.findChildOfKind(f,85,le);if(T!==void 0)return e.createRange(T.pos,T.end)}}function X(le,N,p){le.replaceRangeWithText(N,p,"let")}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="fixExpectedComma",R=e.Diagnostics._0_expected.code,E=[R];C.registerCodeFix({errorCodes:E,getCodeActions:function(N){var p=N.sourceFile,m=X(p,N.span.start,N.errorCode);if(!!m){var G=e.textChanges.ChangeTracker.with(N,function(oe){return le(oe,p,m)});return[C.createCodeFixAction(I,G,[e.Diagnostics.Change_0_to_1,";",","],I,[e.Diagnostics.Change_0_to_1,";",","])]}},fixIds:[I],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){var G=X(m.file,m.start,m.code);G&&le(p,N.sourceFile,G)})}});function X(N,p,m){var G=e.getTokenAtPosition(N,p);return G.kind===26&&G.parent&&(e.isObjectLiteralExpression(G.parent)||e.isArrayLiteralExpression(G.parent))?{node:G}:void 0}function le(N,p,m){var G=m.node,oe=e.factory.createToken(27);N.replaceNode(p,G,oe)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="addVoidToPromise",R="addVoidToPromise",E=[e.Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,e.Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code];C.registerCodeFix({errorCodes:E,fixIds:[R],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return X(m,N.sourceFile,N.span,N.program)});if(p.length>0)return[C.createCodeFixAction(I,p,e.Diagnostics.Add_void_to_Promise_resolved_without_a_value,R,e.Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)]},getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return X(p,m.file,m,N.program,new e.Set)})}});function X(N,p,m,G,oe){var f=e.getTokenAtPosition(p,m.start);if(!(!e.isIdentifier(f)||!e.isCallExpression(f.parent)||f.parent.expression!==f||f.parent.arguments.length!==0)){var T=G.getTypeChecker(),K=T.getSymbolAtLocation(f),b=K==null?void 0:K.valueDeclaration;if(!(!b||!e.isParameter(b)||!e.isNewExpression(b.parent.parent))&&!(oe!=null&&oe.has(b))){oe==null||oe.add(b);var se=le(b.parent.parent);if(e.some(se)){var J=se[0],ie=!e.isUnionTypeNode(J)&&!e.isParenthesizedTypeNode(J)&&e.isParenthesizedTypeNode(e.factory.createUnionTypeNode([J,e.factory.createKeywordTypeNode(114)]).types[0]);ie&&N.insertText(p,J.pos,"("),N.insertText(p,J.end,ie?") | void":" | void")}else{var B=T.getResolvedSignature(f.parent),q=B==null?void 0:B.parameters[0],O=q&&T.getTypeOfSymbolAtLocation(q,b.parent.parent);e.isInJSFile(b)?(!O||O.flags&3)&&(N.insertText(p,b.parent.parent.end,")"),N.insertText(p,e.skipTrivia(p.text,b.parent.parent.pos),"/** @type {Promise} */(")):(!O||O.flags&2)&&N.insertText(p,b.parent.parent.expression.end,"")}}}}function le(N){var p;if(e.isInJSFile(N)){if(e.isParenthesizedExpression(N.parent)){var m=(p=e.getJSDocTypeTag(N.parent))===null||p===void 0?void 0:p.typeExpression.type;if(m&&e.isTypeReferenceNode(m)&&e.isIdentifier(m.typeName)&&e.idText(m.typeName)==="Promise")return m.typeArguments}}else return N.typeArguments}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="Convert export",R={name:"Convert default export to named export",description:e.Diagnostics.Convert_default_export_to_named_export.message,kind:"refactor.rewrite.export.named"},E={name:"Convert named export to default export",description:e.Diagnostics.Convert_named_export_to_default_export.message,kind:"refactor.rewrite.export.default"};C.registerRefactor(I,{kinds:[R.kind,E.kind],getAvailableActions:function(K){var b=X(K,K.triggerReason==="invoked");if(!b)return e.emptyArray;if(!C.isRefactorErrorInfo(b)){var se=b.wasDefault?R:E;return[{name:I,description:se.description,actions:[se]}]}return K.preferences.provideRefactorNotApplicableReason?[{name:I,description:e.Diagnostics.Convert_default_export_to_named_export.message,actions:[Ke(Ke({},R),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray},getEditsForAction:function(K,b){e.Debug.assert(b===R.name||b===E.name,"Unexpected action name");var se=X(K);e.Debug.assert(se&&!C.isRefactorErrorInfo(se),"Expected applicable refactor info");var J=e.textChanges.ChangeTracker.with(K,function(ie){return le(K.file,K.program,se,ie,K.cancellationToken)});return{edits:J,renameFilename:void 0,renameLocation:void 0}}});function X(T,K){K===void 0&&(K=!0);var b=T.file,se=T.program,J=e.getRefactorContextSpan(T),ie=e.getTokenAtPosition(b,J.start),B=!!(ie.parent&&e.getSyntacticModifierFlags(ie.parent)&1)&&K?ie.parent:e.getParentNodeInSpan(ie,b,J);if(!B||!e.isSourceFile(B.parent)&&!(e.isModuleBlock(B.parent)&&e.isAmbientModule(B.parent.parent)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_export_statement)};var q=e.isSourceFile(B.parent)?B.parent.symbol:B.parent.parent.symbol,O=e.getSyntacticModifierFlags(B)||(e.isExportAssignment(B)&&!B.isExportEquals?513:0),ve=!!(O&512);if(!(O&1)||!ve&&q.exports.has("default"))return{error:e.getLocaleSpecificMessage(e.Diagnostics.This_file_already_has_a_default_export)};var ee=se.getTypeChecker(),he=function($){return e.isIdentifier($)&&ee.getSymbolAtLocation($)?void 0:{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_named_export)}};switch(B.kind){case 256:case 257:case 258:case 260:case 259:case 261:{var F=B;return F.name?he(F.name)||{exportNode:F,exportName:F.name,wasDefault:ve,exportingModuleSymbol:q}:void 0}case 237:{var x=B;if(!(x.declarationList.flags&2)||x.declarationList.declarations.length!==1)return;var Q=e.first(x.declarationList.declarations);return Q.initializer?(e.Debug.assert(!ve,"Can't have a default flag here"),he(Q.name)||{exportNode:x,exportName:Q.name,wasDefault:ve,exportingModuleSymbol:q}):void 0}case 271:{var F=B;return F.isExportEquals?void 0:he(F.expression)||{exportNode:F,exportName:F.expression,wasDefault:ve,exportingModuleSymbol:q}}default:return}}function le(T,K,b,se,J){N(T,b,se,K.getTypeChecker()),p(K,b,se,J)}function N(T,K,b,se){var J=K.wasDefault,ie=K.exportNode,B=K.exportName;if(J)if(e.isExportAssignment(ie)&&!ie.isExportEquals){var q=ie.expression,O=f(q.text,q.text);b.replaceNode(T,ie,e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports([O])))}else b.delete(T,e.Debug.checkDefined(e.findModifier(ie,88),"Should find a default keyword in modifier list"));else{var ve=e.Debug.checkDefined(e.findModifier(ie,93),"Should find an export keyword in modifier list");switch(ie.kind){case 256:case 257:case 258:b.insertNodeAfter(T,ve,e.factory.createToken(88));break;case 237:var ee=e.first(ie.declarationList.declarations);if(!e.FindAllReferences.Core.isSymbolReferencedInFile(B,se,T)&&!ee.type){b.replaceNode(T,ie,e.factory.createExportDefault(e.Debug.checkDefined(ee.initializer,"Initializer was previously known to be present")));break}case 260:case 259:case 261:b.deleteModifier(T,ve),b.insertNodeAfter(T,ie,e.factory.createExportDefault(e.factory.createIdentifier(B.text)));break;default:e.Debug.fail("Unexpected exportNode kind ".concat(ie.kind))}}}function p(T,K,b,se){var J=K.wasDefault,ie=K.exportName,B=K.exportingModuleSymbol,q=T.getTypeChecker(),O=e.Debug.checkDefined(q.getSymbolAtLocation(ie),"Export name should resolve to a symbol");e.FindAllReferences.Core.eachExportReference(T.getSourceFiles(),q,se,O,B,ie.text,J,function(ve){var ee=ve.getSourceFile();J?m(ee,ve,b,ie.text):G(ee,ve,b)})}function m(T,K,b,se){var J=K.parent;switch(J.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier(se));break;case 270:case 275:{var ie=J;b.replaceNode(T,ie,oe(se,ie.name.text));break}case 267:{var B=J;e.Debug.assert(B.name===K,"Import clause name should match provided ref");var ie=oe(se,K.text),q=B.namedBindings;if(!q)b.replaceNode(T,K,e.factory.createNamedImports([ie]));else if(q.kind===268){b.deleteRange(T,{pos:K.getStart(T),end:q.getStart(T)});var O=e.isStringLiteral(B.parent.moduleSpecifier)?e.quotePreferenceFromString(B.parent.moduleSpecifier,T):1,ve=e.makeImport(void 0,[oe(se,K.text)],B.parent.moduleSpecifier,O);b.insertNodeAfter(T,B.parent,ve)}else b.delete(T,K),b.insertNodeAtEndOfList(T,q.elements,ie);break}case 200:var ee=J;b.replaceNode(T,J,e.factory.createImportTypeNode(ee.argument,e.factory.createIdentifier(se),ee.typeArguments,ee.isTypeOf));break;default:e.Debug.failBadSyntaxKind(J)}}function G(T,K,b){var se=K.parent;switch(se.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier("default"));break;case 270:{var J=e.factory.createIdentifier(se.name.text);se.parent.elements.length===1?b.replaceNode(T,se.parent,J):(b.delete(T,se),b.insertNodeBefore(T,se.parent,J));break}case 275:{b.replaceNode(T,se,f("default",se.name.text));break}default:e.Debug.assertNever(se,"Unexpected parent kind ".concat(se.kind))}}function oe(T,K){return e.factory.createImportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}function f(T,K){return e.factory.createExportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I,R="Convert import",E=(I={},I[0]={name:"Convert namespace import to named imports",description:e.Diagnostics.Convert_namespace_import_to_named_imports.message,kind:"refactor.rewrite.import.named"},I[2]={name:"Convert named imports to namespace import",description:e.Diagnostics.Convert_named_imports_to_namespace_import.message,kind:"refactor.rewrite.import.namespace"},I[1]={name:"Convert named imports to default import",description:e.Diagnostics.Convert_named_imports_to_default_import.message,kind:"refactor.rewrite.import.default"},I);C.registerRefactor(R,{kinds:e.getOwnValues(E).map(function(K){return K.kind}),getAvailableActions:function(b){var se=X(b,b.triggerReason==="invoked");if(!se)return e.emptyArray;if(!C.isRefactorErrorInfo(se)){var J=E[se.convertTo];return[{name:R,description:J.description,actions:[J]}]}return b.preferences.provideRefactorNotApplicableReason?e.getOwnValues(E).map(function(ie){return{name:R,description:ie.description,actions:[Ke(Ke({},ie),{notApplicableReason:se.error})]}}):e.emptyArray},getEditsForAction:function(b,se){e.Debug.assert(e.some(e.getOwnValues(E),function(B){return B.name===se}),"Unexpected action name");var J=X(b);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),"Expected applicable refactor info");var ie=e.textChanges.ChangeTracker.with(b,function(B){return N(b.file,b.program,B,J)});return{edits:ie,renameFilename:void 0,renameLocation:void 0}}});function X(K,b){b===void 0&&(b=!0);var se=K.file,J=e.getRefactorContextSpan(K),ie=e.getTokenAtPosition(se,J.start),B=b?e.findAncestor(ie,e.isImportDeclaration):e.getParentNodeInSpan(ie,se,J);if(!B||!e.isImportDeclaration(B))return{error:"Selection is not an import declaration."};var q=J.start+J.length,O=e.findNextToken(B,B.parent,se);if(!(O&&q>O.getStart())){var ve=B.importClause;if(!ve)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_import_clause)};if(!ve.namedBindings)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_namespace_import_or_named_imports)};if(ve.namedBindings.kind===268)return{convertTo:0,import:ve.namedBindings};var ee=le(K.program,ve);return ee?{convertTo:1,import:ve.namedBindings}:{convertTo:2,import:ve.namedBindings}}}function le(K,b){return e.getAllowSyntheticDefaultImports(K.getCompilerOptions())&&f(b.parent.moduleSpecifier,K.getTypeChecker())}function N(K,b,se,J){var ie=b.getTypeChecker();J.convertTo===0?p(K,ie,se,J.import,e.getAllowSyntheticDefaultImports(b.getCompilerOptions())):oe(K,b,se,J.import,J.convertTo===1)}function p(K,b,se,J,ie){var B=!1,q=[],O=new e.Map;e.FindAllReferences.Core.eachSymbolReferenceInFile(J.name,b,K,function(y){if(!e.isPropertyAccessOrQualifiedName(y.parent))B=!0;else{var V=m(y.parent).text;b.resolveName(V,y,67108863,!0)&&O.set(V,!0),e.Debug.assert(G(y.parent)===y,"Parent expression should match id"),q.push(y.parent)}});for(var ve=new e.Map,ee=0,he=q;ee=V.pos?L.getEnd():V.getEnd()),k=y?q(V):B(V,P),Y=k&&oe(k)?O(k):void 0;if(!Y)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var U=$.getTypeChecker();return e.isConditionalExpression(Y)?T(Y,U):K(Y)}}function T(F,x){var Q=F.condition,$=ve(F.whenTrue);if(!$||x.isNullableType(x.getTypeAtLocation($)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};if((e.isPropertyAccessExpression(Q)||e.isIdentifier(Q))&&se(Q,$.expression))return{finalExpression:$,occurrences:[Q],expression:F};if(e.isBinaryExpression(Q)){var A=b($.expression,Q);return A?{finalExpression:$,occurrences:A,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}}function K(F){if(F.operatorToken.kind!==55)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_logical_AND_access_chains)};var x=ve(F.right);if(!x)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var Q=b(x.expression,F.left);return Q?{finalExpression:x,occurrences:Q,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}function b(F,x){for(var Q=[];e.isBinaryExpression(x)&&x.operatorToken.kind===55;){var $=se(e.skipParentheses(F),e.skipParentheses(x.right));if(!$)break;Q.push($),F=$,x=x.left}var A=se(F,x);return A&&Q.push(A),Q.length>0?Q:void 0}function se(F,x){if(!(!e.isIdentifier(x)&&!e.isPropertyAccessExpression(x)&&!e.isElementAccessExpression(x)))return J(F,x)?x:void 0}function J(F,x){for(;(e.isCallExpression(F)||e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F))&&ie(F)!==ie(x);)F=F.expression;for(;e.isPropertyAccessExpression(F)&&e.isPropertyAccessExpression(x)||e.isElementAccessExpression(F)&&e.isElementAccessExpression(x);){if(ie(F)!==ie(x))return!1;F=F.expression,x=x.expression}return e.isIdentifier(F)&&e.isIdentifier(x)&&F.getText()===x.getText()}function ie(F){if(e.isIdentifier(F)||e.isStringOrNumericLiteralLike(F))return F.getText();if(e.isPropertyAccessExpression(F))return ie(F.name);if(e.isElementAccessExpression(F))return ie(F.argumentExpression)}function B(F,x){for(;F.parent;){if(oe(F)&&x.length!==0&&F.end>=x.start+x.length)return F;F=F.parent}}function q(F){for(;F.parent;){if(oe(F)&&!oe(F.parent))return F;F=F.parent}}function O(F){if(m(F))return F;if(e.isVariableStatement(F)){var x=e.getSingleVariableOfVariableStatement(F),Q=x==null?void 0:x.initializer;return Q&&m(Q)?Q:void 0}return F.expression&&m(F.expression)?F.expression:void 0}function ve(F){if(F=e.skipParentheses(F),e.isBinaryExpression(F))return ve(F.left);if((e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F)||e.isCallExpression(F))&&!e.isOptionalChain(F))return F}function ee(F,x,Q){if(e.isPropertyAccessExpression(x)||e.isElementAccessExpression(x)||e.isCallExpression(x)){var $=ee(F,x.expression,Q),A=Q.length>0?Q[Q.length-1]:void 0,y=(A==null?void 0:A.getText())===x.expression.getText();if(y&&Q.pop(),e.isCallExpression(x))return y?e.factory.createCallChain($,e.factory.createToken(28),x.typeArguments,x.arguments):e.factory.createCallChain($,x.questionDotToken,x.typeArguments,x.arguments);if(e.isPropertyAccessExpression(x))return y?e.factory.createPropertyAccessChain($,e.factory.createToken(28),x.name):e.factory.createPropertyAccessChain($,x.questionDotToken,x.name);if(e.isElementAccessExpression(x))return y?e.factory.createElementAccessChain($,e.factory.createToken(28),x.argumentExpression):e.factory.createElementAccessChain($,x.questionDotToken,x.argumentExpression)}return x}function he(F,x,Q,$,A){var y=$.finalExpression,V=$.occurrences,L=$.expression,P=V[V.length-1],k=ee(x,y,V);k&&(e.isPropertyAccessExpression(k)||e.isElementAccessExpression(k)||e.isCallExpression(k))&&(e.isBinaryExpression(L)?Q.replaceNodeRange(F,P,y,k):e.isConditionalExpression(L)&&Q.replaceNode(F,L,e.factory.createBinaryExpression(k,e.factory.createToken(60),L.whenFalse)))}})(I=C.convertToOptionalChainExpression||(C.convertToOptionalChainExpression={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I;(function(R){var E="Convert overload list to single signature",X=e.Diagnostics.Convert_overload_list_to_single_signature.message,le={name:E,description:X,kind:"refactor.rewrite.function.overloadList"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:p,getAvailableActions:N});function N(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);return b?[{name:E,description:X,actions:[le]}]:e.emptyArray}function p(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);if(!b)return;var se=K.getTypeChecker(),J=b[b.length-1],ie=J;switch(J.kind){case 168:{ie=e.factory.updateMethodSignature(J,J.modifiers,J.name,J.questionToken,J.typeParameters,q(b),J.type);break}case 169:{ie=e.factory.updateMethodDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.questionToken,J.typeParameters,q(b),J.type,J.body);break}case 174:{ie=e.factory.updateCallSignature(J,J.typeParameters,q(b),J.type);break}case 171:{ie=e.factory.updateConstructorDeclaration(J,J.decorators,J.modifiers,q(b),J.body);break}case 175:{ie=e.factory.updateConstructSignature(J,J.typeParameters,q(b),J.type);break}case 256:{ie=e.factory.updateFunctionDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.typeParameters,q(b),J.type,J.body);break}default:return e.Debug.failBadSyntaxKind(J,"Unhandled signature kind in overload list conversion refactoring")}if(ie===J)return;var B=e.textChanges.ChangeTracker.with(oe,function(ee){ee.replaceNodeRange(f,b[0],b[b.length-1],ie)});return{renameFilename:void 0,renameLocation:void 0,edits:B};function q(ee){var he=ee[ee.length-1];return e.isFunctionLikeDeclaration(he)&&he.body&&(ee=ee.slice(0,ee.length-1)),e.factory.createNodeArray([e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),"args",void 0,e.factory.createUnionTypeNode(e.map(ee,O)))])}function O(ee){var he=e.map(ee.parameters,ve);return e.setEmitFlags(e.factory.createTupleTypeNode(he),e.some(he,function(F){return!!e.length(e.getSyntheticLeadingComments(F))})?0:1)}function ve(ee){e.Debug.assert(e.isIdentifier(ee.name));var he=e.setTextRange(e.factory.createNamedTupleMember(ee.dotDotDotToken,ee.name,ee.questionToken,ee.type||e.factory.createKeywordTypeNode(130)),ee),F=ee.symbol&&ee.symbol.getDocumentationComment(se);if(F){var x=e.displayPartsToString(F);x.length&&e.setSyntheticLeadingComments(he,[{text:`* +`.concat(x.split(` +`).map(function(Q){return" * ".concat(Q)}).join(` +`),` + `),kind:3,pos:-1,end:-1,hasTrailingNewLine:!0,hasLeadingNewline:!0}])}return he}}function m(oe){switch(oe.kind){case 168:case 169:case 174:case 171:case 175:case 256:return!0}return!1}function G(oe,f,T){var K=e.getTokenAtPosition(oe,f),b=e.findAncestor(K,m);if(!!b){var se=T.getTypeChecker(),J=b.symbol;if(!!J){var ie=J.declarations;if(!(e.length(ie)<=1)&&!!e.every(ie,function(ee){return e.getSourceFileOfNode(ee)===oe})&&!!m(ie[0])){var B=ie[0].kind;if(!!e.every(ie,function(ee){return ee.kind===B})){var q=ie;if(!e.some(q,function(ee){return!!ee.typeParameters||e.some(ee.parameters,function(he){return!!he.decorators||!!he.modifiers||!e.isIdentifier(he.name)})})){var O=e.mapDefined(q,function(ee){return se.getSignatureFromDeclaration(ee)});if(e.length(O)===e.length(ie)){var ve=se.getReturnTypeOfSignature(O[0]);if(!!e.every(O,function(ee){return se.getReturnTypeOfSignature(ee)===ve}))return q}}}}}}}})(I=C.addOrRemoveBracesToArrowFunction||(C.addOrRemoveBracesToArrowFunction={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I;(function(R){var E="Extract Symbol",X={name:"Extract Constant",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),kind:"refactor.extract.constant"},le={name:"Extract Function",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),kind:"refactor.extract.function"};C.registerRefactor(E,{kinds:[X.kind,le.kind],getEditsForAction:p,getAvailableActions:N});function N(Fe){var Z=Fe.kind,Be=oe(Fe.file,e.getRefactorContextSpan(Fe),Fe.triggerReason==="invoked"),ge=Be.targetRange;if(ge===void 0){if(!Be.errors||Be.errors.length===0||!Fe.preferences.provideRefactorNotApplicableReason)return e.emptyArray;var Re=[];return C.refactorKindBeginsWith(le.kind,Z)&&Re.push({name:E,description:le.description,actions:[Ke(Ke({},le),{notApplicableReason:Ne(Be.errors)})]}),C.refactorKindBeginsWith(X.kind,Z)&&Re.push({name:E,description:X.description,actions:[Ke(Ke({},X),{notApplicableReason:Ne(Be.errors)})]}),Re}var ze=ie(ge,Fe);if(ze===void 0)return e.emptyArray;for(var Ee=[],He=new e.Map,rr,Ie=[],_e=new e.Map,we,de=0,ye=0,Ae=ze;ye=Z.start+Z.length)return(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractSuper)),!0}else we|=G.UsesThis,de=mi;break;case 214:e.forEachChild(mi,function Di(wi){if(e.isThis(wi))we|=G.UsesThis,de=mi;else{if(e.isClassLike(wi)||e.isFunctionLike(wi)&&!e.isArrowFunction(wi))return!1;e.forEachChild(wi,Di)}});case 257:case 256:e.isSourceFile(mi.parent)&&mi.parent.externalModuleIndicator===void 0&&(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.functionWillNotBeVisibleInTheNewScope));case 226:case 213:case 169:case 171:case 172:case 173:return!1}var qr=Ir;switch(mi.kind){case 239:Ir=0;break;case 252:Ir=0;break;case 235:mi.parent&&mi.parent.kind===252&&mi.parent.finallyBlock===mi&&(Ir=4);break;case 290:case 289:Ir|=1;break;default:e.isIterationStatement(mi,!1)&&(Ir|=3);break}switch(mi.kind){case 192:case 108:we|=G.UsesThis,de=mi;break;case 250:{var si=mi.label;(wr||(wr=[])).push(si.escapedText),e.forEachChild(mi,ii),wr.pop();break}case 246:case 245:{var si=mi.label;si?e.contains(wr,si.escapedText)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):Ir&(mi.kind===246?1:2)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break}case 218:we|=G.IsAsyncFunction;break;case 224:we|=G.IsGenerator;break;case 247:Ir&4?we|=G.HasReturn:(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(mi,ii);break}Ir=qr}}}R.getRangeToExtract=oe;function f(Fe,Z,Be){var ge=Fe.getStart(Be),Re=Z.getEnd();return Be.text.charCodeAt(Re)===59&&Re++,{start:ge,length:Re-ge}}function T(Fe){if(e.isStatement(Fe))return[Fe];if(e.isExpressionNode(Fe))return e.isExpressionStatement(Fe.parent)?[Fe.parent]:Fe;if(We(Fe))return Fe}function K(Fe){return e.isArrowFunction(Fe)?e.isFunctionBody(Fe.body):e.isFunctionLikeDeclaration(Fe)||e.isSourceFile(Fe)||e.isModuleBlock(Fe)||e.isClassLike(Fe)}function b(Fe){var Z=w(Fe.range)?e.first(Fe.range):Fe.range;if(Fe.facts&G.UsesThis&&!(Fe.facts&G.UsesThisInFunction)){var Be=e.getContainingClass(Z);if(Be){var ge=e.findAncestor(Z,e.isFunctionLikeDeclaration);return ge?[ge,Be]:[Be]}}for(var Re=[];;)if(Z=Z.parent,Z.kind===164&&(Z=e.findAncestor(Z,function(ze){return e.isFunctionLikeDeclaration(ze)}).parent),K(Z)&&(Re.push(Z),Z.kind===305))return Re}function se(Fe,Z,Be){var ge=B(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.functionErrorsPerScope,Ie=ze.exposedVariableDeclarations;return e.Debug.assert(!rr[Be].length,"The extraction went missing? How?"),Z.cancellationToken.throwIfCancellationRequested(),x(Ee,Re[Be],He[Be],Ie,Fe,Z)}function J(Fe,Z,Be){var ge=B(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.constantErrorsPerScope,Ie=ze.exposedVariableDeclarations;e.Debug.assert(!rr[Be].length,"The extraction went missing? How?"),e.Debug.assert(Ie.length===0,"Extract constant accepted a range containing a variable declaration?"),Z.cancellationToken.throwIfCancellationRequested();var _e=e.isExpression(Ee)?Ee:Ee.statements[0].expression;return Q(_e,Re[Be],He[Be],Fe.facts,Z)}function ie(Fe,Z){var Be=B(Fe,Z),ge=Be.scopes,Re=Be.readsAndWrites,ze=Re.functionErrorsPerScope,Ee=Re.constantErrorsPerScope,He=ge.map(function(rr,Ie){var _e=q(rr),we=O(rr),de=e.isFunctionLikeDeclaration(rr)?ve(rr):e.isClassLike(rr)?ee(rr):he(rr),ye,Ae;return de===1?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,"global"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,"global"])):de===0?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,"module"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,"module"])):(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[_e,de]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[we,de])),Ie===0&&!e.isClassLike(rr)&&(Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[we])),{functionExtraction:{description:ye,errors:ze[Ie]},constantExtraction:{description:Ae,errors:Ee[Ie]}}});return He}function B(Fe,Z){var Be=Z.file,ge=b(Fe),Re=l(Fe,Be),ze=D(Fe,ge,Re,Be,Z.program.getTypeChecker(),Z.cancellationToken);return{scopes:ge,readsAndWrites:ze}}function q(Fe){return e.isFunctionLikeDeclaration(Fe)?"inner function":e.isClassLike(Fe)?"method":"function"}function O(Fe){return e.isClassLike(Fe)?"readonly field":"constant"}function ve(Fe){switch(Fe.kind){case 171:return"constructor";case 213:case 256:return Fe.name?"function '".concat(Fe.name.text,"'"):e.ANONYMOUS;case 214:return"arrow function";case 169:return"method '".concat(Fe.name.getText(),"'");case 172:return"'get ".concat(Fe.name.getText(),"'");case 173:return"'set ".concat(Fe.name.getText(),"'");default:throw e.Debug.assertNever(Fe,"Unexpected scope kind ".concat(Fe.kind))}}function ee(Fe){return Fe.kind===257?Fe.name?"class '".concat(Fe.name.text,"'"):"anonymous class declaration":Fe.name?"class expression '".concat(Fe.name.text,"'"):"anonymous class expression"}function he(Fe){return Fe.kind===262?"namespace '".concat(Fe.parent.name.getText(),"'"):Fe.externalModuleIndicator?0:1}var F;(function(Fe){Fe[Fe.Module=0]="Module",Fe[Fe.Global=1]="Global"})(F||(F={}));function x(Fe,Z,Be,ge,Re,ze){var Ee=Be.usages,He=Be.typeParameterUsages,rr=Be.substitutions,Ie=ze.program.getTypeChecker(),_e=e.getEmitScriptTarget(ze.program.getCompilerOptions()),we=e.codefix.createImportAdder(ze.file,ze.program,ze.preferences,ze.host),de=Z.getSourceFile(),ye=e.getUniqueName(e.isClassLike(Z)?"newMethod":"newFunction",de),Ae=e.isInJSFile(Z),er=e.factory.createIdentifier(ye),ir,Cr=[],Ye=[],Br;Ee.forEach(function(xe,vr){var mr;if(!Ae){var Ar=Ie.getTypeOfSymbolAtLocation(xe.symbol,xe.node);Ar=Ie.getBaseTypeOfLiteralType(Ar),mr=e.codefix.typeToAutoImportableTypeNode(Ie,we,Ar,Z,_e,1)}var Oe=e.factory.createParameterDeclaration(void 0,void 0,void 0,vr,void 0,mr);Cr.push(Oe),xe.usage===2&&(Br||(Br=[])).push(xe),Ye.push(e.factory.createIdentifier(vr))});var Er=e.arrayFrom(He.values()).map(function(xe){return{type:xe,declaration:A(xe)}}),Ne=Er.sort(y),n=Ne.length===0?void 0:Ne.map(function(xe){return xe.declaration}),lr=n!==void 0?n.map(function(xe){return e.factory.createTypeReferenceNode(xe.name,void 0)}):void 0;if(e.isExpression(Fe)&&!Ae){var be=Ie.getContextualType(Fe);ir=Ie.typeToTypeNode(be,Z,1)}var Ge=L(Fe,ge,Br,rr,!!(Re.facts&G.HasReturn)),ur=Ge.body,yr=Ge.returnValueProperty;e.suppressLeadingAndTrailingTrivia(ur);var Ir,wr=!!(Re.facts&G.UsesThisInFunction);if(e.isClassLike(Z)){var Ur=Ae?[]:[e.factory.createModifier(121)];Re.facts&G.InStaticRegion&&Ur.push(e.factory.createModifier(124)),Re.facts&G.IsAsyncFunction&&Ur.push(e.factory.createModifier(131)),Ir=e.factory.createMethodDeclaration(void 0,Ur.length?Ur:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,void 0,n,Cr,ir,ur)}else wr&&Cr.unshift(e.factory.createParameterDeclaration(void 0,void 0,void 0,"this",void 0,Ie.typeToTypeNode(Ie.getTypeAtLocation(Re.thisNode),Z,1),void 0)),Ir=e.factory.createFunctionDeclaration(void 0,Re.facts&G.IsAsyncFunction?[e.factory.createToken(131)]:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,n,Cr,ir,ur);var ii=e.textChanges.ChangeTracker.fromContext(ze),mi=(w(Re.range)?e.last(Re.range):Re.range).end,pe=Y(mi,Z);pe?ii.insertNodeBefore(ze.file,pe,Ir,!0):ii.insertNodeAtEndOfScope(ze.file,Z,Ir),we.writeFixes(ii);var or=[],qr=V(Z,Re,ye);wr&&Ye.unshift(e.factory.createIdentifier("this"));var si=e.factory.createCallExpression(wr?e.factory.createPropertyAccessExpression(qr,"call"):qr,lr,Ye);if(Re.facts&G.IsGenerator&&(si=e.factory.createYieldExpression(e.factory.createToken(41),si)),Re.facts&G.IsAsyncFunction&&(si=e.factory.createAwaitExpression(si)),ue(Fe)&&(si=e.factory.createJsxExpression(void 0,si)),ge.length&&!Br)if(e.Debug.assert(!yr,"Expected no returnValueProperty"),e.Debug.assert(!(Re.facts&G.HasReturn),"Expected RangeFacts.HasReturn flag to be unset"),ge.length===1){var Di=ge[0];or.push(e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([e.factory.createVariableDeclaration(e.getSynthesizedDeepClone(Di.name),void 0,e.getSynthesizedDeepClone(Di.type),si)],Di.parent.flags)))}else{for(var wi=[],Xi=[],et=ge[0].parent.flags,Gi=!1,Wt=0,Zt=ge;Wt1)return Fe;Be=Fe,Fe=Fe.parent}}function A(Fe){var Z,Be=Fe.symbol;if(Be&&Be.declarations)for(var ge=0,Re=Be.declarations;ge0;if(e.isBlock(Fe)&&!ze&&ge.size===0)return{body:e.factory.createBlock(Fe.statements,!0),returnValueProperty:void 0};var Ee,He=!1,rr=e.factory.createNodeArray(e.isBlock(Fe)?Fe.statements.slice(0):[e.isStatement(Fe)?Fe:e.factory.createReturnStatement(e.skipParentheses(Fe))]);if(ze||ge.size){var Ie=e.visitNodes(rr,we).slice();if(ze&&!Re&&e.isStatement(Fe)){var _e=H(Z,Be);_e.length===1?Ie.push(e.factory.createReturnStatement(_e[0].name)):Ie.push(e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(_e)))}return{body:e.factory.createBlock(Ie,!0),returnValueProperty:Ee}}else return{body:e.factory.createBlock(rr,!0),returnValueProperty:void 0};function we(de){if(!He&&e.isReturnStatement(de)&&ze){var ye=H(Z,Be);return de.expression&&(Ee||(Ee="__return"),ye.unshift(e.factory.createPropertyAssignment(Ee,e.visitNode(de.expression,we)))),ye.length===1?e.factory.createReturnStatement(ye[0].name):e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(ye))}else{var Ae=He;He=He||e.isFunctionLikeDeclaration(de)||e.isClassLike(de);var er=ge.get(e.getNodeId(de).toString()),ir=er?e.getSynthesizedDeepClone(er):e.visitEachChild(de,we,e.nullTransformationContext);return He=Ae,ir}}}function P(Fe,Z){return Z.size?Be(Fe):Fe;function Be(ge){var Re=Z.get(e.getNodeId(ge).toString());return Re?e.getSynthesizedDeepClone(Re):e.visitEachChild(ge,Be,e.nullTransformationContext)}}function k(Fe){if(e.isFunctionLikeDeclaration(Fe)){var Z=Fe.body;if(e.isBlock(Z))return Z.statements}else{if(e.isModuleBlock(Fe)||e.isSourceFile(Fe))return Fe.statements;if(e.isClassLike(Fe))return Fe.members;e.assertType(Fe)}return e.emptyArray}function Y(Fe,Z){return e.find(k(Z),function(Be){return Be.pos>=Fe&&e.isFunctionLikeDeclaration(Be)&&!e.isConstructorDeclaration(Be)})}function U(Fe,Z){var Be=Z.members;e.Debug.assert(Be.length>0,"Found no members");for(var ge,Re=!0,ze=0,Ee=Be;zeFe)return ge||Be[0];if(Re&&!e.isPropertyDeclaration(He)){if(ge!==void 0)return He;Re=!1}ge=He}return ge===void 0?e.Debug.fail():ge}function j(Fe,Z){e.Debug.assert(!e.isClassLike(Z));for(var Be,ge=Fe;ge!==Z;ge=ge.parent)K(ge)&&(Be=ge);for(var ge=(Be||Fe).parent;;ge=ge.parent){if(ne(ge)){for(var Re=void 0,ze=0,Ee=ge.statements;zeFe.pos)break;Re=He}return!Re&&e.isCaseClause(ge)?(e.Debug.assert(e.isSwitchStatement(ge.parent.parent),"Grandparent isn't a switch statement"),ge.parent.parent):e.Debug.checkDefined(Re,"prevStatement failed to get set")}e.Debug.assert(ge!==Z,"Didn't encounter a block-like before encountering scope")}}function H(Fe,Z){var Be=e.map(Fe,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)}),ge=e.map(Z,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)});return Be===void 0?ge:ge===void 0?Be:Be.concat(ge)}function w(Fe){return e.isArray(Fe)}function l(Fe,Z){return w(Fe.range)?{pos:e.first(Fe.range).getStart(Z),end:e.last(Fe.range).getEnd()}:Fe.range}var d;(function(Fe){Fe[Fe.Read=1]="Read",Fe[Fe.Write=2]="Write"})(d||(d={}));function D(Fe,Z,Be,ge,Re,ze){var Ee=new e.Map,He=[],rr=[],Ie=[],_e=[],we=[],de=new e.Map,ye=[],Ae,er=w(Fe.range)?Fe.range.length===1&&e.isExpressionStatement(Fe.range[0])?Fe.range[0].expression:void 0:Fe.range,ir;if(er===void 0){var Cr=Fe.range,Ye=e.first(Cr).getStart(),Br=e.last(Cr).end;ir=e.createFileDiagnostic(ge,Ye,Br-Ye,m.expressionExpected)}else Re.getTypeAtLocation(er).flags&147456&&(ir=e.createDiagnosticForNode(er,m.uselessConstantType));for(var Er=0,Ne=Z;Er0){for(var wr=new e.Map,Ur=0,ii=ur;ii!==void 0&&Ur0&&(Jr.usages.size>0||Jr.typeParameterUsages.size>0)){var ti=w(Fe.range)?Fe.range[0]:Fe.range;_e[Xe].push(e.createDiagnosticForNode(ti,m.cannotAccessVariablesFromNestedScopes))}Fe.facts&G.UsesThisInFunction&&e.isClassLike(Z[Xe])&&Ie[Xe].push(e.createDiagnosticForNode(Fe.thisNode,m.cannotExtractFunctionsContainingThisToMethod));var Ze=!1,Sr;if(He[Xe].usages.forEach(function(Wr){Wr.usage===2&&(Ze=!0,Wr.symbol.flags&106500&&Wr.symbol.valueDeclaration&&e.hasEffectiveModifier(Wr.symbol.valueDeclaration,64)&&(Sr=Wr.symbol.valueDeclaration))}),e.Debug.assert(w(Fe.range)||ye.length===0,"No variable declarations expected if something was extracted"),Ze&&!w(Fe.range)){var zr=e.createDiagnosticForNode(Fe.range,m.cannotWriteInExpression);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Sr&&Xe>0){var zr=e.createDiagnosticForNode(Sr,m.cannotExtractReadonlyPropertyInitializerOutsideConstructor);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Ae){var zr=e.createDiagnosticForNode(Ae,m.cannotExtractExportedEntity);Ie[Xe].push(zr),_e[Xe].push(zr)}},wi=0;wi=Jr)return Sr;if(be.set(Sr,Jr),zr){for(var Wr=0,Je=He;Wr=0)){var Jr=e.isIdentifier(Xe)?pi(Xe):Re.getSymbolAtLocation(Xe);if(Jr){var ti=e.find(we,function(Sr){return Sr.symbol===Jr});if(ti)if(e.isVariableDeclaration(ti)){var Ze=ti.symbol.id.toString();de.has(Ze)||(ye.push(ti),de.set(Ze,!0))}else Ae=Ae||ti}e.forEachChild(Xe,_r)}}function pi(Xe){return Xe.parent&&e.isShorthandPropertyAssignment(Xe.parent)&&Xe.parent.name===Xe?Re.getShorthandAssignmentValueSymbol(Xe.parent):Re.getSymbolAtLocation(Xe)}function ae(Xe,Jr,ti){if(!!Xe){var Ze=Xe.getDeclarations();if(Ze&&Ze.some(function(zr){return zr.parent===Jr}))return e.factory.createIdentifier(Xe.name);var Sr=ae(Xe.parent,Jr,ti);if(Sr!==void 0)return ti?e.factory.createQualifiedName(Sr,e.factory.createIdentifier(Xe.name)):e.factory.createPropertyAccessExpression(Sr,Xe.name)}}}function fe(Fe){return e.findAncestor(Fe,function(Z){return Z.parent&&g(Z)&&!e.isBinaryExpression(Z.parent)})}function g(Fe){var Z=Fe.parent;switch(Z.kind){case 299:return!1}switch(Fe.kind){case 10:return Z.kind!==266&&Z.kind!==270;case 225:case 201:case 203:return!1;case 79:return Z.kind!==203&&Z.kind!==270&&Z.kind!==275}return!0}function ne(Fe){switch(Fe.kind){case 235:case 305:case 262:case 289:return!0;default:return!1}}function ue(Fe){return We(Fe)||(e.isJsxElement(Fe)||e.isJsxSelfClosingElement(Fe)||e.isJsxFragment(Fe))&&(e.isJsxElement(Fe.parent)||e.isJsxFragment(Fe.parent))}function We(Fe){return e.isStringLiteral(Fe)&&Fe.parent&&e.isJsxAttribute(Fe.parent)}})(I=C.extractSymbol||(C.extractSymbol={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I="Extract type",R={name:"Extract to type alias",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_type_alias),kind:"refactor.extract.type"},E={name:"Extract to interface",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_interface),kind:"refactor.extract.interface"},X={name:"Extract to typedef",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_typedef),kind:"refactor.extract.typedef"};C.registerRefactor(I,{kinds:[R.kind,E.kind,X.kind],getAvailableActions:function(K){var b=le(K,K.triggerReason==="invoked");return b?C.isRefactorErrorInfo(b)?K.preferences.provideRefactorNotApplicableReason?[{name:I,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:[Ke(Ke({},X),{notApplicableReason:b.error}),Ke(Ke({},R),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray:[{name:I,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:b.isJS?[X]:e.append([R],b.typeElements&&E)}]:e.emptyArray},getEditsForAction:function(K,b){var se=K.file,J=le(K);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),"Expected to find a range to extract");var ie=e.getUniqueName("NewType",se),B=e.textChanges.ChangeTracker.with(K,function(ve){switch(b){case R.name:return e.Debug.assert(!J.isJS,"Invalid actionName/JS combo"),G(ve,se,ie,J);case X.name:return e.Debug.assert(J.isJS,"Invalid actionName/JS combo"),f(ve,se,ie,J);case E.name:return e.Debug.assert(!J.isJS&&!!J.typeElements,"Invalid actionName/JS combo"),oe(ve,se,ie,J);default:e.Debug.fail("Unexpected action name")}}),q=se.fileName,O=e.getRenameLocation(B,q,ie,!1);return{edits:B,renameFilename:q,renameLocation:O}}});function le(T,K){K===void 0&&(K=!0);var b=T.file,se=T.startPosition,J=e.isSourceFileJS(b),ie=e.getTokenAtPosition(b,se),B=e.createTextRangeFromSpan(e.getRefactorContextSpan(T)),q=B.pos===B.end&&K,O=e.findAncestor(ie,function(x){return x.parent&&e.isTypeNode(x)&&!p(B,x.parent,b)&&(q||e.nodeOverlapsWithStartEnd(ie,b,B.pos,B.end))});if(!O||!e.isTypeNode(O))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Selection_is_not_a_valid_type_node)};var ve=T.program.getTypeChecker(),ee=e.Debug.checkDefined(e.findAncestor(O,e.isStatement),"Should find a statement"),he=m(ve,O,ee,b);if(!he)return{error:e.getLocaleSpecificMessage(e.Diagnostics.No_type_could_be_extracted_from_this_type_node)};var F=N(ve,O);return{isJS:J,selection:O,firstStatement:ee,typeParameters:he,typeElements:F}}function N(T,K){if(!!K)if(e.isIntersectionTypeNode(K)){for(var b=[],se=new e.Map,J=0,ie=K.types;Jrr.pos});if(_e!==-1){var we=Ie[_e];if(e.isNamedDeclaration(we)&&we.name&&e.rangeContainsRange(we.name,rr))return{toMove:[Ie[_e]],afterLast:Ie[_e+1]};if(!(rr.pos>we.getStart(He))){var de=e.findIndex(Ie,function(ye){return ye.end>rr.end},_e);if(!(de!==-1&&(de===0||Ie[de].getStart(He)=X&&e.every(U,function(H){return F(H,j)})}function F(U,j){if(e.isRestParameter(U)){var H=j.getTypeAtLocation(U);if(!j.isArrayType(H)&&!j.isTupleType(H))return!1}return!U.modifiers&&!U.decorators&&e.isIdentifier(U.name)}function x(U){return e.isVariableDeclaration(U)&&e.isVarConst(U)&&e.isIdentifier(U.name)&&!U.type}function Q(U){return U.length>0&&e.isThis(U[0].name)}function $(U){return Q(U)?U.length-1:U.length}function A(U){return Q(U)&&(U=e.factory.createNodeArray(U.slice(1),U.hasTrailingComma)),U}function y(U,j){return e.isIdentifier(j)&&e.getTextOfIdentifierOrLiteral(j)===U?e.factory.createShorthandPropertyAssignment(U):e.factory.createPropertyAssignment(U,j)}function V(U,j){var H=A(U.parameters),w=e.isRestParameter(e.last(H)),l=w?j.slice(0,H.length-1):j,d=e.map(l,function(ne,ue){var We=P(H[ue]),Fe=y(We,ne);return e.suppressLeadingAndTrailingTrivia(Fe.name),e.isPropertyAssignment(Fe)&&e.suppressLeadingAndTrailingTrivia(Fe.initializer),e.copyComments(ne,Fe),Fe});if(w&&j.length>=H.length){var D=j.slice(H.length-1),fe=e.factory.createPropertyAssignment(P(e.last(H)),e.factory.createArrayLiteralExpression(D));d.push(fe)}var g=e.factory.createObjectLiteralExpression(d,!1);return g}function L(U,j,H){var w=j.getTypeChecker(),l=A(U.parameters),d=e.map(l,Fe),D=e.factory.createObjectBindingPattern(d),fe=Z(l),g;e.every(l,Re)&&(g=e.factory.createObjectLiteralExpression());var ne=e.factory.createParameterDeclaration(void 0,void 0,void 0,D,void 0,fe,g);if(Q(U.parameters)){var ue=U.parameters[0],We=e.factory.createParameterDeclaration(void 0,void 0,void 0,ue.name,void 0,ue.type);return e.suppressLeadingAndTrailingTrivia(We.name),e.copyComments(ue.name,We.name),ue.type&&(e.suppressLeadingAndTrailingTrivia(We.type),e.copyComments(ue.type,We.type)),e.factory.createNodeArray([We,ne])}return e.factory.createNodeArray([ne]);function Fe(ze){var Ee=e.factory.createBindingElement(void 0,void 0,P(ze),e.isRestParameter(ze)&&Re(ze)?e.factory.createArrayLiteralExpression():ze.initializer);return e.suppressLeadingAndTrailingTrivia(Ee),ze.initializer&&Ee.initializer&&e.copyComments(ze.initializer,Ee.initializer),Ee}function Z(ze){var Ee=e.map(ze,Be),He=e.addEmitFlags(e.factory.createTypeLiteralNode(Ee),1);return He}function Be(ze){var Ee=ze.type;!Ee&&(ze.initializer||e.isRestParameter(ze))&&(Ee=ge(ze));var He=e.factory.createPropertySignature(void 0,P(ze),Re(ze)?e.factory.createToken(57):ze.questionToken,Ee);return e.suppressLeadingAndTrailingTrivia(He),e.copyComments(ze.name,He.name),ze.type&&He.type&&e.copyComments(ze.type,He.type),He}function ge(ze){var Ee=w.getTypeAtLocation(ze);return e.getTypeNodeIfAccessible(Ee,ze,j,H)}function Re(ze){if(e.isRestParameter(ze)){var Ee=w.getTypeAtLocation(ze);return!w.isTupleType(Ee)}return w.isOptionalParameter(ze)}}function P(U){return e.getTextOfIdentifierOrLiteral(U.name)}function k(U){switch(U.parent.kind){case 257:var j=U.parent;if(j.name)return[j.name];var H=e.Debug.checkDefined(e.findModifier(j,88),"Nameless class declaration should be a default export");return[H];case 226:var w=U.parent,l=U.parent.parent,d=w.name;return d?[d,l.name]:[l.name]}}function Y(U){switch(U.kind){case 256:if(U.name)return[U.name];var j=e.Debug.checkDefined(e.findModifier(U,88),"Nameless function declaration should be a default export");return[j];case 169:return[U.name];case 171:var H=e.Debug.checkDefined(e.findChildOfKind(U,134,U.getSourceFile()),"Constructor declaration should have constructor keyword");if(U.parent.kind===226){var w=U.parent.parent;return[w.name,H]}return[H];case 214:return[U.parent.name];case 213:return U.name?[U.name,U.parent.name]:[U.parent.name];default:return e.Debug.assertNever(U,"Unexpected function declaration kind ".concat(U.kind))}}})(I=C.convertParamsToDestructuredObject||(C.convertParamsToDestructuredObject={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var I;(function(R){var E="Convert to template string",X=e.getLocaleSpecificMessage(e.Diagnostics.Convert_to_template_string),le={name:E,description:X,kind:"refactor.rewrite.string"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:m,getAvailableActions:N});function N(ve){var ee=ve.file,he=ve.startPosition,F=p(ee,he),x=f(F),Q={name:E,description:X,actions:[]};return e.isBinaryExpression(x)&&T(x).isValidConcatenation?(Q.actions.push(le),[Q]):ve.preferences.provideRefactorNotApplicableReason?(Q.actions.push(Ke(Ke({},le),{notApplicableReason:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_string_concatenation)})),[Q]):e.emptyArray}function p(ve,ee){var he=e.getTokenAtPosition(ve,ee),F=f(he),x=!T(F).isValidConcatenation;return x&&e.isParenthesizedExpression(F.parent)&&e.isBinaryExpression(F.parent.parent)?F.parent.parent:he}function m(ve,ee){var he=ve.file,F=ve.startPosition,x=p(he,F);switch(ee){case X:return{edits:G(ve,x)};default:return e.Debug.fail("invalid action")}}function G(ve,ee){var he=f(ee),F=ve.file,x=B(T(he),F),Q=e.getTrailingCommentRanges(F.text,he.end);if(Q){var $=Q[Q.length-1],A={pos:Q[0].pos,end:$.end};return e.textChanges.ChangeTracker.with(ve,function(y){y.deleteRange(F,A),y.replaceNode(F,he,x)})}else return e.textChanges.ChangeTracker.with(ve,function(y){return y.replaceNode(F,he,x)})}function oe(ve){return ve.operatorToken.kind!==63}function f(ve){var ee=e.findAncestor(ve.parent,function(he){switch(he.kind){case 206:case 207:return!1;case 223:case 221:return!(e.isBinaryExpression(he.parent)&&oe(he.parent));default:return"quit"}});return ee||ve}function T(ve){var ee=function(A){if(!e.isBinaryExpression(A))return{nodes:[A],operators:[],validOperators:!0,hasString:e.isStringLiteral(A)||e.isNoSubstitutionTemplateLiteral(A)};var y=ee(A.left),V=y.nodes,L=y.operators,P=y.hasString,k=y.validOperators;if(!(P||e.isStringLiteral(A.right)||e.isTemplateExpression(A.right)))return{nodes:[A],operators:[],hasString:!1,validOperators:!0};var Y=A.operatorToken.kind===39,U=k&&Y;return V.push(A.right),L.push(A.operatorToken),{nodes:V,operators:L,hasString:!0,validOperators:U}},he=ee(ve),F=he.nodes,x=he.operators,Q=he.validOperators,$=he.hasString;return{nodes:F,operators:x,isValidConcatenation:Q&&$}}var K=function(ve,ee){return function(he,F){he0;){var Q=F.shift();e.copyTrailingComments(ve[Q],x,ee,3,!1),he(Q,x)}}};function se(ve){return ve.replace(/\\.|[$`]/g,function(ee){return ee[0]==="\\"?ee:"\\"+ee})}function J(ve){var ee=e.isTemplateHead(ve)||e.isTemplateMiddle(ve)?-2:-1;return e.getTextOfNode(ve).slice(1,ee)}function ie(ve,ee){for(var he=[],F="",x="";ve1)return T.getUnionType(e.mapDefined(b,function(J){return J.getReturnType()}))}var se=T.getSignatureFromDeclaration(K);if(se)return T.getReturnTypeOfSignature(se)}})(I=C.inferFunctionReturnType||(C.inferFunctionReturnType={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){e.servicesVersion="0.8";function a(g,ne,ue,We){var Fe=e.isNodeKind(g)?new C(g,ne,ue):g===79?new p(79,ne,ue):g===80?new m(80,ne,ue):new N(g,ne,ue);return Fe.parent=We,Fe.flags=We.flags&50720768,Fe}var C=function(){function g(ne,ue,We){this.pos=ue,this.end=We,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=ne}return g.prototype.assertHasRealPosition=function(ne){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),ne||"Node must have a real position for this operation")},g.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},g.prototype.getStart=function(ne,ue){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,ne,ue)},g.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},g.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},g.prototype.getWidth=function(ne){return this.assertHasRealPosition(),this.getEnd()-this.getStart(ne)},g.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},g.prototype.getLeadingTriviaWidth=function(ne){return this.assertHasRealPosition(),this.getStart(ne)-this.pos},g.prototype.getFullText=function(ne){return this.assertHasRealPosition(),(ne||this.getSourceFile()).text.substring(this.pos,this.end)},g.prototype.getText=function(ne){return this.assertHasRealPosition(),ne||(ne=this.getSourceFile()),ne.text.substring(this.getStart(ne),this.getEnd())},g.prototype.getChildCount=function(ne){return this.getChildren(ne).length},g.prototype.getChildAt=function(ne,ue){return this.getChildren(ue)[ne]},g.prototype.getChildren=function(ne){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=I(this,ne))},g.prototype.getFirstToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne);if(!!ue.length){var We=e.find(ue,function(Fe){return Fe.kind<309||Fe.kind>347});return We.kind<161?We:We.getFirstToken(ne)}},g.prototype.getLastToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne),We=e.lastOrUndefined(ue);if(!!We)return We.kind<161?We:We.getLastToken(ne)},g.prototype.forEachChild=function(ne,ue){return e.forEachChild(this,ne,ue)},g}();function I(g,ne){if(!e.isNodeKind(g.kind))return e.emptyArray;var ue=[];if(e.isJSDocCommentContainingNode(g))return g.forEachChild(function(Be){ue.push(Be)}),ue;e.scanner.setText((ne||g.getSourceFile()).text);var We=g.pos,Fe=function(Be){R(ue,We,Be.pos,g),ue.push(Be),We=Be.end},Z=function(Be){R(ue,We,Be.pos,g),ue.push(E(Be,g)),We=Be.end};return e.forEach(g.jsDoc,Fe),We=g.pos,g.forEachChild(Fe,Z),R(ue,We,g.end,g),e.scanner.setText(void 0),ue}function R(g,ne,ue,We){for(e.scanner.setTextPos(ne);ne=Fe.length&&(Z=this.getEnd()),Z||(Z=Fe[We+1]-1);var Be=this.getFullText();return Be[Z]===` +`&&Be[Z-1]==="\r"?Z-1:Z},ne.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},ne.prototype.computeNamedDeclarations=function(){var ue=e.createMultiMap();return this.forEachChild(Be),ue;function We(ge){var Re=Z(ge);Re&&ue.add(Re,ge)}function Fe(ge){var Re=ue.get(ge);return Re||ue.set(ge,Re=[]),Re}function Z(ge){var Re=e.getNonAssignedNameOfDeclaration(ge);return Re&&(e.isComputedPropertyName(Re)&&e.isPropertyAccessExpression(Re.expression)?Re.expression.name.text:e.isPropertyName(Re)?e.getNameFromPropertyName(Re):void 0)}function Be(ge){switch(ge.kind){case 256:case 213:case 169:case 168:var Re=ge,ze=Z(Re);if(ze){var Ee=Fe(ze),He=e.lastOrUndefined(Ee);He&&Re.parent===He.parent&&Re.symbol===He.symbol?Re.body&&!He.body&&(Ee[Ee.length-1]=Re):Ee.push(Re)}e.forEachChild(ge,Be);break;case 257:case 226:case 258:case 259:case 260:case 261:case 265:case 275:case 270:case 267:case 268:case 172:case 173:case 182:We(ge),e.forEachChild(ge,Be);break;case 164:if(!e.hasSyntacticModifier(ge,16476))break;case 254:case 203:{var rr=ge;if(e.isBindingPattern(rr.name)){e.forEachChild(rr.name,Be);break}rr.initializer&&Be(rr.initializer)}case 299:case 167:case 166:We(ge);break;case 272:var Ie=ge;Ie.exportClause&&(e.isNamedExports(Ie.exportClause)?e.forEach(Ie.exportClause.elements,Be):Be(Ie.exportClause.name));break;case 266:var _e=ge.importClause;_e&&(_e.name&&We(_e.name),_e.namedBindings&&(_e.namedBindings.kind===268?We(_e.namedBindings):e.forEach(_e.namedBindings.elements,Be)));break;case 221:e.getAssignmentDeclarationKind(ge)!==0&&We(ge);default:e.forEachChild(ge,Be)}}},ne}(C),J=function(){function g(ne,ue,We){this.fileName=ne,this.text=ue,this.skipTrivia=We}return g.prototype.getLineAndCharacterOfPosition=function(ne){return e.getLineAndCharacterOfPosition(this,ne)},g}();function ie(){return{getNodeConstructor:function(){return C},getTokenConstructor:function(){return N},getIdentifierConstructor:function(){return p},getPrivateIdentifierConstructor:function(){return m},getSourceFileConstructor:function(){return se},getSymbolConstructor:function(){return le},getTypeConstructor:function(){return G},getSignatureConstructor:function(){return oe},getSourceMapSourceConstructor:function(){return J}}}function B(g){var ne=!0;for(var ue in g)if(e.hasProperty(g,ue)&&!q(ue)){ne=!1;break}if(ne)return g;var We={};for(var ue in g)if(e.hasProperty(g,ue)){var Fe=q(ue)?ue:ue.charAt(0).toLowerCase()+ue.substr(1);We[Fe]=g[ue]}return We}e.toEditorSettings=B;function q(g){return!g.length||g.charAt(0)===g.charAt(0).toLowerCase()}function O(g){return g?e.map(g,function(ne){return ne.text}).join(""):""}e.displayPartsToString=O;function ve(){return{target:1,jsx:1}}e.getDefaultCompilerOptions=ve;function ee(){return e.codefix.getSupportedErrorCodes()}e.getSupportedCodeFixes=ee;var he=function(){function g(ne,ue){this.host=ne,this.currentDirectory=ne.getCurrentDirectory(),this.fileNameToEntry=new e.Map;var We=ne.getScriptFileNames();e.tracing===null||e.tracing===void 0||e.tracing.push("session","initializeHostCache",{count:We.length});for(var Fe=0,Z=We;Fe=this.throttleWaitMilliseconds?(this.lastCancellationCheckTime=ne,this.hostCancellationToken.isCancellationRequested()):!1},g.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw e.tracing===null||e.tracing===void 0||e.tracing.instant("session","cancellationThrown",{kind:"ThrottledCancellationToken"}),new e.OperationCanceledException},g}();e.ThrottledCancellationToken=V;var L=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints"],P=Ve(Ve([],L,!0),["getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getOccurrencesAtPosition","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors"],!1);function k(g,ne,ue){var We,Fe;ne===void 0&&(ne=e.createDocumentRegistry(g.useCaseSensitiveFileNames&&g.useCaseSensitiveFileNames(),g.getCurrentDirectory()));var Z;ue===void 0?Z=e.LanguageServiceMode.Semantic:typeof ue=="boolean"?Z=ue?e.LanguageServiceMode.Syntactic:e.LanguageServiceMode.Semantic:Z=ue;var Be=new F(g),ge,Re,ze=0,Ee=g.getCancellationToken?new y(g.getCancellationToken()):A,He=g.getCurrentDirectory();e.maybeSetLocalizedDiagnosticMessages((Fe=g.getLocalizedDiagnosticMessages)===null||Fe===void 0?void 0:Fe.bind(g));function rr(Ai){g.log&&g.log(Ai)}var Ie=e.hostUsesCaseSensitiveFileNames(g),_e=e.createGetCanonicalFileName(Ie),we=e.getSourceMapper({useCaseSensitiveFileNames:function(){return Ie},getCurrentDirectory:function(){return He},getProgram:Ae,fileExists:e.maybeBind(g,g.fileExists),readFile:e.maybeBind(g,g.readFile),getDocumentPositionMapper:e.maybeBind(g,g.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(g,g.getSourceFileLike),log:rr});function de(Ai){var Oi=ge.getSourceFile(Ai);if(!Oi){var ji=new Error("Could not find source file: '".concat(Ai,"'."));throw ji.ProgramFiles=ge.getSourceFiles().map(function(Vi){return Vi.fileName}),ji}return Oi}function ye(){var Ai,Oi,ji;if(e.Debug.assert(Z!==e.LanguageServiceMode.Syntactic),g.getProjectVersion){var Vi=g.getProjectVersion();if(Vi){if(Re===Vi&&!(!((Ai=g.hasChangedAutomaticTypeDirectiveNames)===null||Ai===void 0)&&Ai.call(g)))return;Re=Vi}}var at=g.getTypeRootsVersion?g.getTypeRootsVersion():0;ze!==at&&(rr("TypeRoots version has changed; provide new program"),ge=void 0,ze=at);var At=new he(g,_e),ba=At.getRootFileNames(),$a=g.getCompilationSettings()||ve(),Qa=g.hasInvalidatedResolution||e.returnFalse,ai=e.maybeBind(g,g.hasChangedAutomaticTypeDirectiveNames),Dn=(Oi=g.getProjectReferences)===null||Oi===void 0?void 0:Oi.call(g),ka,Ba={useCaseSensitiveFileNames:Ie,fileExists:Pn,readFile:eo,readDirectory:Rn,trace:e.maybeBind(g,g.trace),getCurrentDirectory:function(){return He},onUnRecoverableConfigFileDiagnostic:e.noop};if(e.isProgramUptoDate(ge,ba,$a,function(En,zn){return g.getScriptVersion(zn)},Pn,Qa,ai,kn,Dn))return;var pn={getSourceFile:bo,getSourceFileByPath:Ro,getCancellationToken:function(){return Ee},getCanonicalFileName:_e,useCaseSensitiveFileNames:function(){return Ie},getNewLine:function(){return e.getNewLineCharacter($a,function(){return e.getNewLineOrDefaultFromHost(g)})},getDefaultLibFileName:function(En){return g.getDefaultLibFileName(En)},writeFile:e.noop,getCurrentDirectory:function(){return He},fileExists:Pn,readFile:eo,getSymlinkCache:e.maybeBind(g,g.getSymlinkCache),realpath:e.maybeBind(g,g.realpath),directoryExists:function(En){return e.directoryProbablyExists(En,g)},getDirectories:function(En){return g.getDirectories?g.getDirectories(En):[]},readDirectory:Rn,onReleaseOldSourceFile:Da,onReleaseParsedCommandLine:Kn,hasInvalidatedResolution:Qa,hasChangedAutomaticTypeDirectiveNames:ai,trace:Ba.trace,resolveModuleNames:e.maybeBind(g,g.resolveModuleNames),getModuleResolutionCache:e.maybeBind(g,g.getModuleResolutionCache),resolveTypeReferenceDirectives:e.maybeBind(g,g.resolveTypeReferenceDirectives),useSourceOfProjectReferenceRedirect:e.maybeBind(g,g.useSourceOfProjectReferenceRedirect),getParsedCommandLine:kn};(ji=g.setCompilerHost)===null||ji===void 0||ji.call(g,pn);var Cn=ne.getKeyForCompilationSettings($a),Bi={rootNames:ba,options:$a,host:pn,oldProgram:ge,projectReferences:Dn};ge=e.createProgram(Bi),At=void 0,ka=void 0,we.clearCache(),ge.getTypeChecker();return;function kn(En){var zn=e.toPath(En,He,_e),to=ka==null?void 0:ka.get(zn);if(to!==void 0)return to||void 0;var Co=g.getParsedCommandLine?g.getParsedCommandLine(En):xn(En);return(ka||(ka=new e.Map)).set(zn,Co||!1),Co}function xn(En){var zn=bo(En,100);if(!!zn)return zn.path=e.toPath(En,He,_e),zn.resolvedPath=zn.path,zn.originalFileName=zn.fileName,e.parseJsonSourceFileConfigFileContent(zn,Ba,e.getNormalizedAbsolutePath(e.getDirectoryPath(En),He),void 0,e.getNormalizedAbsolutePath(En,He))}function Kn(En,zn,to){var Co;g.getParsedCommandLine?(Co=g.onReleaseParsedCommandLine)===null||Co===void 0||Co.call(g,En,zn,to):zn&&Da(zn.sourceFile,to)}function Pn(En){var zn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(zn);return to?!e.isString(to):!!g.fileExists&&g.fileExists(En)}function eo(En){var zn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(zn);return to?e.isString(to)?void 0:e.getSnapshotText(to.scriptSnapshot):g.readFile&&g.readFile(En)}function Rn(En,zn,to,Co,Ko){return e.Debug.checkDefined(g.readDirectory,"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"),g.readDirectory(En,zn,to,Co,Ko)}function Da(En,zn){var to=ne.getKeyForCompilationSettings(zn);ne.releaseDocumentWithKey(En.resolvedPath,to,En.scriptKind)}function bo(En,zn,to,Co){return Ro(En,e.toPath(En,He,_e),zn,to,Co)}function Ro(En,zn,to,Co,Ko){e.Debug.assert(At!==void 0,"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.");var Oo=At&&At.getOrCreateEntryByPath(En,zn);if(!!Oo){if(!Ko){var no=ge&&ge.getSourceFileByPath(zn);if(no){if(Oo.scriptKind===no.scriptKind)return ne.updateDocumentWithKey(En,zn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind);ne.releaseDocumentWithKey(no.resolvedPath,ne.getKeyForCompilationSettings(ge.getCompilerOptions()),no.scriptKind)}}return ne.acquireDocumentWithKey(En,zn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind)}}}function Ae(){if(Z===e.LanguageServiceMode.Syntactic){e.Debug.assert(ge===void 0);return}return ye(),ge}function er(){var Ai;return(Ai=g.getPackageJsonAutoImportProvider)===null||Ai===void 0?void 0:Ai.call(g)}function ir(){ge=void 0}function Cr(){if(ge){var Ai=ne.getKeyForCompilationSettings(ge.getCompilerOptions());e.forEach(ge.getSourceFiles(),function(Oi){return ne.releaseDocumentWithKey(Oi.resolvedPath,Ai,Oi.scriptKind)}),ge=void 0}g=void 0}function Ye(Ai){return ye(),ge.getSyntacticDiagnostics(de(Ai),Ee).slice()}function Br(Ai){ye();var Oi=de(Ai),ji=ge.getSemanticDiagnostics(Oi,Ee);if(!e.getEmitDeclarations(ge.getCompilerOptions()))return ji.slice();var Vi=ge.getDeclarationDiagnostics(Oi,Ee);return Ve(Ve([],ji,!0),Vi,!0)}function Er(Ai){return ye(),e.computeSuggestionDiagnostics(de(Ai),ge,Ee)}function Ne(){return ye(),Ve(Ve([],ge.getOptionsDiagnostics(Ee),!0),ge.getGlobalDiagnostics(Ee),!0)}function n(Ai,Oi,ji,Vi){ji===void 0&&(ji=e.emptyOptions);var at=Ke(Ke({},e.identity(ji)),{includeCompletionsForModuleExports:ji.includeCompletionsForModuleExports||ji.includeExternalModuleExports,includeCompletionsWithInsertText:ji.includeCompletionsWithInsertText||ji.includeInsertTextCompletions});return ye(),e.Completions.getCompletionsAtPosition(g,ge,rr,de(Ai),Oi,at,ji.triggerCharacter,ji.triggerKind,Ee,Vi&&e.formatting.getFormatContext(Vi,g))}function lr(Ai,Oi,ji,Vi,at,At,ba){return At===void 0&&(At=e.emptyOptions),ye(),e.Completions.getCompletionEntryDetails(ge,rr,de(Ai),Oi,{name:ji,source:at,data:ba},g,Vi&&e.formatting.getFormatContext(Vi,g),At,Ee)}function be(Ai,Oi,ji,Vi,at){return at===void 0&&(at=e.emptyOptions),ye(),e.Completions.getCompletionEntrySymbol(ge,rr,de(Ai),Oi,{name:ji,source:Vi},g,at)}function Ge(Ai,Oi){ye();var ji=de(Ai),Vi=e.getTouchingPropertyName(ji,Oi);if(Vi!==ji){var at=ge.getTypeChecker(),At=ur(Vi),ba=l(At,at);if(!ba||at.isUnknownSymbol(ba)){var $a=yr(ji,At,Oi)?at.getTypeAtLocation(At):void 0;return $a&&{kind:"",kindModifiers:"",textSpan:e.createTextSpanFromNode(At,ji),displayParts:at.runWithCancellationToken(Ee,function(pn){return e.typeToDisplayParts(pn,$a,e.getContainerNode(At))}),documentation:$a.symbol?$a.symbol.getDocumentationComment(at):void 0,tags:$a.symbol?$a.symbol.getJsDocTags(at):void 0}}var Qa=at.runWithCancellationToken(Ee,function(pn){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(pn,ba,ji,e.getContainerNode(At),At)}),ai=Qa.symbolKind,Dn=Qa.displayParts,ka=Qa.documentation,Ba=Qa.tags;return{kind:ai,kindModifiers:e.SymbolDisplay.getSymbolModifiers(at,ba),textSpan:e.createTextSpanFromNode(At,ji),displayParts:Dn,documentation:ka,tags:Ba}}}function ur(Ai){return e.isNewExpression(Ai.parent)&&Ai.pos===Ai.parent.pos?Ai.parent.expression:e.isNamedTupleMember(Ai.parent)&&Ai.pos===Ai.parent.pos||e.isImportMeta(Ai.parent)&&Ai.parent.name===Ai?Ai.parent:Ai}function yr(Ai,Oi,ji){switch(Oi.kind){case 79:return!e.isLabelName(Oi)&&!e.isTagName(Oi)&&!e.isConstTypeReference(Oi.parent);case 206:case 161:return!e.isInComment(Ai,ji);case 108:case 192:case 106:case 197:return!0;case 231:return e.isImportMeta(Oi);default:return!1}}function Ir(Ai,Oi,ji,Vi){return ye(),e.GoToDefinition.getDefinitionAtPosition(ge,de(Ai),Oi,ji,Vi)}function wr(Ai,Oi){return ye(),e.GoToDefinition.getDefinitionAndBoundSpan(ge,de(Ai),Oi)}function Ur(Ai,Oi){return ye(),e.GoToDefinition.getTypeDefinitionAtPosition(ge.getTypeChecker(),de(Ai),Oi)}function ii(Ai,Oi){return ye(),e.FindAllReferences.getImplementationsAtPosition(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function mi(Ai,Oi){return e.flatMap(pe(Ai,Oi,[Ai]),function(ji){return ji.highlightSpans.map(function(Vi){return Ke(Ke({fileName:ji.fileName,textSpan:Vi.textSpan,isWriteAccess:Vi.kind==="writtenReference"},Vi.isInString&&{isInString:!0}),Vi.contextSpan&&{contextSpan:Vi.contextSpan})})})}function pe(Ai,Oi,ji){var Vi=e.normalizePath(Ai);e.Debug.assert(ji.some(function(ba){return e.normalizePath(ba)===Vi})),ye();var at=e.mapDefined(ji,function(ba){return ge.getSourceFile(ba)}),At=de(Ai);return e.DocumentHighlights.getDocumentHighlights(ge,Ee,At,Oi,at)}function or(Ai,Oi,ji,Vi,at){ye();var At=de(Ai),ba=e.getAdjustedRenameLocation(e.getTouchingPropertyName(At,Oi));if(!!e.Rename.nodeIsEligibleForRename(ba))if(e.isIdentifier(ba)&&(e.isJsxOpeningElement(ba.parent)||e.isJsxClosingElement(ba.parent))&&e.isIntrinsicJsxName(ba.escapedText)){var $a=ba.parent.parent,Qa=$a.openingElement,ai=$a.closingElement;return[Qa,ai].map(function(Dn){var ka=e.createTextSpanFromNode(Dn.tagName,At);return Ke({fileName:At.fileName,textSpan:ka},e.FindAllReferences.toContextSpan(ka,At,Dn.parent))})}else return si(ba,Oi,{findInStrings:ji,findInComments:Vi,providePrefixAndSuffixTextForRename:at,use:2},function(Dn,ka,Ba){return e.FindAllReferences.toRenameLocation(Dn,ka,Ba,at||!1)})}function qr(Ai,Oi){return ye(),si(e.getTouchingPropertyName(de(Ai),Oi),Oi,{use:1},e.FindAllReferences.toReferenceEntry)}function si(Ai,Oi,ji,Vi){ye();var at=ji&&ji.use===2?ge.getSourceFiles().filter(function(At){return!ge.isSourceFileDefaultLibrary(At)}):ge.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(ge,Ee,at,Ai,Oi,ji,Vi)}function Di(Ai,Oi){return ye(),e.FindAllReferences.findReferencedSymbols(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function wi(Ai){return ye(),e.FindAllReferences.Core.getReferencesForFileName(Ai,ge,ge.getSourceFiles()).map(e.FindAllReferences.toReferenceEntry)}function Xi(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=!1),ye();var at=ji?[de(ji)]:ge.getSourceFiles();return e.NavigateTo.getNavigateToItems(at,ge.getTypeChecker(),Ee,Ai,Oi,Vi)}function et(Ai,Oi,ji){ye();var Vi=de(Ai),at=g.getCustomTransformers&&g.getCustomTransformers();return e.getFileEmitOutput(ge,Vi,!!Oi,Ee,at,ji)}function Gi(Ai,Oi,ji){var Vi=ji===void 0?e.emptyOptions:ji,at=Vi.triggerReason;ye();var At=de(Ai);return e.SignatureHelp.getSignatureHelpItems(ge,At,Oi,at,Ee)}function Wt(Ai){return Be.getCurrentSourceFile(Ai)}function Zt(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.getTouchingPropertyName(Vi,Oi);if(at!==Vi){switch(at.kind){case 206:case 161:case 10:case 95:case 110:case 104:case 106:case 108:case 192:case 79:break;default:return}for(var At=at;;)if(e.isRightSideOfPropertyAccess(At)||e.isRightSideOfQualifiedName(At))At=At.parent;else if(e.isNameOfModuleDeclaration(At))if(At.parent.parent.kind===261&&At.parent.parent.body===At.parent)At=At.parent.parent.name;else break;else break;return e.createTextSpanFromBounds(At.getStart(),at.getEnd())}}function _r(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai);return e.BreakpointResolver.spanInSourceFileAtLocation(ji,Oi)}function pi(Ai){return e.NavigationBar.getNavigationBarItems(Be.getCurrentSourceFile(Ai),Ee)}function ae(Ai){return e.NavigationBar.getNavigationTree(Be.getCurrentSourceFile(Ai),Ee)}function Xe(Ai,Oi,ji){ye();var Vi=ji||"original";return Vi==="2020"?e.classifier.v2020.getSemanticClassifications(ge,Ee,de(Ai),Oi):e.getSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi)}function Jr(Ai,Oi,ji){ye();var Vi=ji||"original";return Vi==="original"?e.getEncodedSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi):e.classifier.v2020.getEncodedSemanticClassifications(ge,Ee,de(Ai),Oi)}function ti(Ai,Oi){return e.getSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Ze(Ai,Oi){return e.getEncodedSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Sr(Ai){var Oi=Be.getCurrentSourceFile(Ai);return e.OutliningElementsCollector.collectElements(Oi,Ee)}var zr=new e.Map(e.getEntries((We={},We[18]=19,We[20]=21,We[22]=23,We[31]=29,We)));zr.forEach(function(Ai,Oi){return zr.set(Ai.toString(),Number(Oi))});function Wr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.getTouchingToken(ji,Oi),at=Vi.getStart(ji)===Oi?zr.get(Vi.kind.toString()):void 0,At=at&&e.findChildOfKind(Vi.parent,at,ji);return At?[e.createTextSpanFromNode(Vi,ji),e.createTextSpanFromNode(At,ji)].sort(function(ba,$a){return ba.start-$a.start}):e.emptyArray}function Je(Ai,Oi,ji){var Vi=e.timestamp(),at=B(ji),At=Be.getCurrentSourceFile(Ai);rr("getIndentationAtPosition: getCurrentSourceFile: "+(e.timestamp()-Vi)),Vi=e.timestamp();var ba=e.formatting.SmartIndenter.getIndentation(Oi,At,at);return rr("getIndentationAtPosition: computeIndentation : "+(e.timestamp()-Vi)),ba}function xe(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai);return e.formatting.formatSelection(Oi,ji,at,e.formatting.getFormatContext(B(Vi),g))}function vr(Ai,Oi){return e.formatting.formatDocument(Be.getCurrentSourceFile(Ai),e.formatting.getFormatContext(B(Oi),g))}function mr(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai),At=e.formatting.getFormatContext(B(Vi),g);if(!e.isInComment(at,Oi))switch(ji){case"{":return e.formatting.formatOnOpeningCurly(Oi,at,At);case"}":return e.formatting.formatOnClosingCurly(Oi,at,At);case";":return e.formatting.formatOnSemicolon(Oi,at,At);case` +`:return e.formatting.formatOnEnter(Oi,at,At)}return[]}function Ar(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai),$a=e.createTextSpanFromBounds(Oi,ji),Qa=e.formatting.getFormatContext(at,g);return e.flatMap(e.deduplicate(Vi,e.equateValues,e.compareValues),function(ai){return Ee.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:ai,sourceFile:ba,span:$a,program:ge,host:g,cancellationToken:Ee,formatContext:Qa,preferences:At})})}function Oe(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=e.emptyOptions),ye(),e.Debug.assert(Ai.type==="file");var at=de(Ai.fileName),At=e.formatting.getFormatContext(ji,g);return e.codefix.getAllFixes({fixId:Oi,sourceFile:at,program:ge,host:g,cancellationToken:Ee,formatContext:At,preferences:Vi})}function nr(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye(),e.Debug.assert(Ai.type==="file");var Vi=de(Ai.fileName),at=e.formatting.getFormatContext(Oi,g);return e.OrganizeImports.organizeImports(Vi,at,g,ge,ji,Ai.skipDestructiveCodeActions)}function Mr(Ai,Oi,ji,Vi){return Vi===void 0&&(Vi=e.emptyOptions),e.getEditsForFileRename(Ae(),Ai,Oi,g,e.formatting.getFormatContext(ji,g),Vi,we)}function Pe(Ai,Oi){var ji=typeof Ai=="string"?Oi:Ai;return e.isArray(ji)?Promise.all(ji.map(function(Vi){return Ue(Vi)})):Ue(ji)}function Ue(Ai){var Oi=function(ji){return e.toPath(ji,He,_e)};return e.Debug.assertEqual(Ai.type,"install package"),g.installPackage?g.installPackage({fileName:Oi(Ai.file),packageName:Ai.packageName}):Promise.reject("Host does not implement `installPackage`")}function fr(Ai,Oi,ji){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(g),Be.getCurrentSourceFile(Ai),Oi,ji)}function De(Ai,Oi,ji){if(ji===60)return!1;var Vi=Be.getCurrentSourceFile(Ai);if(e.isInString(Vi,Oi))return!1;if(e.isInsideJsxElementOrAttribute(Vi,Oi))return ji===123;if(e.isInTemplateString(Vi,Oi))return!1;switch(ji){case 39:case 34:case 96:return!e.isInComment(Vi,Oi)}return!0}function gr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.findPrecedingToken(Oi,ji);if(!!Vi){var at=Vi.kind===31&&e.isJsxOpeningElement(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxElement(Vi.parent)?Vi.parent:void 0;if(at&&Wi(at))return{newText:"")};var At=Vi.kind===31&&e.isJsxOpeningFragment(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxFragment(Vi.parent)?Vi.parent:void 0;if(At&&ct(At))return{newText:""}}}function Vr(Ai,Oi){return{lineStarts:Ai.getLineStarts(),firstLine:Ai.getLineAndCharacterOfPosition(Oi.pos).line,lastLine:Ai.getLineAndCharacterOfPosition(Oi.end).line}}function Tr(Ai,Oi,ji){for(var Vi=Be.getCurrentSourceFile(Ai),at=[],At=Vr(Vi,Oi),ba=At.lineStarts,$a=At.firstLine,Qa=At.lastLine,ai=ji||!1,Dn=Number.MAX_VALUE,ka=new e.Map,Ba=new RegExp(/\S/),pn=e.isInsideJsxElement(Vi,ba[$a]),Cn=pn?"{/*":"//",Bi=$a;Bi<=Qa;Bi++){var kn=Vi.text.substring(ba[Bi],Vi.getLineEndOfPosition(ba[Bi])),xn=Ba.exec(kn);xn&&(Dn=Math.min(Dn,xn.index),ka.set(Bi.toString(),xn.index),kn.substr(xn.index,Cn.length)!==Cn&&(ai=ji===void 0||ji))}for(var Bi=$a;Bi<=Qa;Bi++)if(!($a!==Qa&&ba[Bi]===Oi.end)){var Kn=ka.get(Bi.toString());Kn!==void 0&&(pn?at.push.apply(at,vi(Ai,{pos:ba[Bi]+Dn,end:Vi.getLineEndOfPosition(ba[Bi])},ai,pn)):ai?at.push({newText:Cn,span:{length:0,start:ba[Bi]+Dn}}):Vi.text.substr(ba[Bi]+Kn,Cn.length)===Cn&&at.push({newText:"",span:{length:Cn.length,start:ba[Bi]+Kn}}))}return at}function vi(Ai,Oi,ji,Vi){for(var at,At=Be.getCurrentSourceFile(Ai),ba=[],$a=At.text,Qa=!1,ai=ji||!1,Dn=[],ka=Oi.pos,Ba=Vi!==void 0?Vi:e.isInsideJsxElement(At,ka),pn=Ba?"{/*":"/*",Cn=Ba?"*/}":"*/",Bi=Ba?"\\{\\/\\*":"\\/\\*",kn=Ba?"\\*\\/\\}":"\\*\\/";ka<=Oi.end;){var xn=$a.substr(ka,pn.length)===pn?pn.length:0,Kn=e.isInComment(At,ka+xn);if(Kn)Ba&&(Kn.pos--,Kn.end++),Dn.push(Kn.pos),Kn.kind===3&&Dn.push(Kn.end),Qa=!0,ka=Kn.end+1;else{var Pn=$a.substring(ka,Oi.end).search("(".concat(Bi,")|(").concat(kn,")"));ai=ji!==void 0?ji:ai||!e.isTextWhiteSpaceLike($a,ka,Pn===-1?Oi.end:ka+Pn),ka=Pn===-1?Oi.end+1:ka+Pn+Cn.length}}if(ai||!Qa){((at=e.isInComment(At,Oi.pos))===null||at===void 0?void 0:at.kind)!==2&&e.insertSorted(Dn,Oi.pos,e.compareValues),e.insertSorted(Dn,Oi.end,e.compareValues);var eo=Dn[0];$a.substr(eo,pn.length)!==pn&&ba.push({newText:pn,span:{length:0,start:eo}});for(var Rn=1;Rn0?Ro-Cn.length:0,xn=$a.substr(En,Cn.length)===Cn?Cn.length:0;ba.push({newText:"",span:{length:pn.length,start:Ro-xn}})}return ba}function Ui(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=Vr(ji,Oi),at=Vi.firstLine,At=Vi.lastLine;return at===At&&Oi.pos!==Oi.end?vi(Ai,Oi,!0):Tr(Ai,Oi,!0)}function Yi(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=[],at=Oi.pos,At=Oi.end;at===At&&(At+=e.isInsideJsxElement(ji,at)?2:1);for(var ba=at;ba<=At;ba++){var $a=e.isInComment(ji,ba);if($a){switch($a.kind){case 2:Vi.push.apply(Vi,Tr(Ai,{end:$a.end,pos:$a.pos+1},!1));break;case 3:Vi.push.apply(Vi,vi(Ai,{end:$a.end,pos:$a.pos+1},!1))}ba=$a.end+1}}return Vi}function Wi(Ai){var Oi=Ai.openingElement,ji=Ai.closingElement,Vi=Ai.parent;return!e.tagNamesAreEquivalent(Oi.tagName,ji.tagName)||e.isJsxElement(Vi)&&e.tagNamesAreEquivalent(Oi.tagName,Vi.openingElement.tagName)&&Wi(Vi)}function ct(Ai){var Oi=Ai.closingFragment,ji=Ai.parent;return!!(Oi.flags&131072)||e.isJsxFragment(ji)&&ct(ji)}function Li(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.formatting.getRangeOfEnclosingComment(Vi,Oi);return at&&(!ji||at.kind===3)?e.createTextSpanFromRange(at):void 0}function nt(Ai,Oi){ye();var ji=de(Ai);Ee.throwIfCancellationRequested();var Vi=ji.text,at=[];if(Oi.length>0&&!kn(ji.fileName))for(var At=Cn(),ba=void 0;ba=At.exec(Vi);){Ee.throwIfCancellationRequested();var $a=3;e.Debug.assert(ba.length===Oi.length+$a);var Qa=ba[1],ai=ba.index+Qa.length;if(!!e.isInComment(ji,ai)){for(var Dn=void 0,ka=0;ka=97&&xn<=122||xn>=65&&xn<=90||xn>=48&&xn<=57}function kn(xn){return e.stringContains(xn,"/node_modules/")}}function Mt(Ai,Oi,ji){return ye(),e.Rename.getRenameInfo(ge,de(Ai),Oi,ji)}function xt(Ai,Oi,ji,Vi,at,At){var ba=typeof Oi=="number"?[Oi,void 0]:[Oi.pos,Oi.end],$a=ba[0],Qa=ba[1];return{file:Ai,startPosition:$a,endPosition:Qa,program:Ae(),host:g,formatContext:e.formatting.getFormatContext(Vi,g),cancellationToken:Ee,preferences:ji,triggerReason:at,kind:At}}function ut(Ai,Oi,ji){return{file:Ai,program:Ae(),host:g,span:Oi,preferences:ji,cancellationToken:Ee}}function Dt(Ai,Oi){return e.SmartSelectionRange.getSmartSelectionRange(Oi,Be.getCurrentSourceFile(Ai))}function Rt(Ai,Oi,ji,Vi,at){ji===void 0&&(ji=e.emptyOptions),ye();var At=de(Ai);return e.refactor.getApplicableRefactors(xt(At,Oi,ji,e.emptyOptions,Vi,at))}function Ii(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai);return e.refactor.getEditsForRefactor(xt(ba,ji,At,Oi),Vi,at)}function Ki(Ai,Oi){return Oi===0?{line:0,character:0}:we.toLineColumnOffset(Ai,Oi)}function Fi(Ai,Oi){ye();var ji=e.CallHierarchy.resolveCallHierarchyDeclaration(ge,e.getTouchingPropertyName(de(Ai),Oi));return ji&&e.mapOneOrMany(ji,function(Vi){return e.CallHierarchy.createCallHierarchyItem(ge,Vi)})}function ui(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getIncomingCalls(ge,Vi,Ee):[]}function Bt(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getOutgoingCalls(ge,Vi):[]}function wt(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye();var Vi=de(Ai);return e.InlayHints.provideInlayHints(ut(Vi,Oi,ji))}var na={dispose:Cr,cleanupSemanticCache:ir,getSyntacticDiagnostics:Ye,getSemanticDiagnostics:Br,getSuggestionDiagnostics:Er,getCompilerOptionsDiagnostics:Ne,getSyntacticClassifications:ti,getSemanticClassifications:Xe,getEncodedSyntacticClassifications:Ze,getEncodedSemanticClassifications:Jr,getCompletionsAtPosition:n,getCompletionEntryDetails:lr,getCompletionEntrySymbol:be,getSignatureHelpItems:Gi,getQuickInfoAtPosition:Ge,getDefinitionAtPosition:Ir,getDefinitionAndBoundSpan:wr,getImplementationAtPosition:ii,getTypeDefinitionAtPosition:Ur,getReferencesAtPosition:qr,findReferences:Di,getFileReferences:wi,getOccurrencesAtPosition:mi,getDocumentHighlights:pe,getNameOrDottedNameSpan:Zt,getBreakpointStatementAtPosition:_r,getNavigateToItems:Xi,getRenameInfo:Mt,getSmartSelectionRange:Dt,findRenameLocations:or,getNavigationBarItems:pi,getNavigationTree:ae,getOutliningSpans:Sr,getTodoComments:nt,getBraceMatchingAtPosition:Wr,getIndentationAtPosition:Je,getFormattingEditsForRange:xe,getFormattingEditsForDocument:vr,getFormattingEditsAfterKeystroke:mr,getDocCommentTemplateAtPosition:fr,isValidBraceCompletionAtPosition:De,getJsxClosingTagAtPosition:gr,getSpanOfEnclosingComment:Li,getCodeFixesAtPosition:Ar,getCombinedCodeFix:Oe,applyCodeActionCommand:Pe,organizeImports:nr,getEditsForFileRename:Mr,getEmitOutput:et,getNonBoundSourceFile:Wt,getProgram:Ae,getAutoImportProvider:er,getApplicableRefactors:Rt,getEditsForRefactor:Ii,toLineColumnOffset:Ki,getSourceMapper:function(){return we},clearSourceMapperCache:function(){return we.clearCache()},prepareCallHierarchy:Fi,provideCallHierarchyIncomingCalls:ui,provideCallHierarchyOutgoingCalls:Bt,toggleLineComment:Tr,toggleMultilineComment:vi,commentSelection:Ui,uncommentSelection:Yi,provideInlayHints:wt};switch(Z){case e.LanguageServiceMode.Semantic:break;case e.LanguageServiceMode.PartialSemantic:L.forEach(function(Ai){return na[Ai]=function(){throw new Error("LanguageService Operation: ".concat(Ai," not allowed in LanguageServiceMode.PartialSemantic"))}});break;case e.LanguageServiceMode.Syntactic:P.forEach(function(Ai){return na[Ai]=function(){throw new Error("LanguageService Operation: ".concat(Ai," not allowed in LanguageServiceMode.Syntactic"))}});break;default:e.Debug.assertNever(Z)}return na}e.createLanguageService=k;function Y(g){return g.nameTable||U(g),g.nameTable}e.getNameTable=Y;function U(g){var ne=g.nameTable=new e.Map;g.forEachChild(function ue(We){if(e.isIdentifier(We)&&!e.isTagName(We)&&We.escapedText||e.isStringOrNumericLiteralLike(We)&&j(We)){var Fe=e.getEscapedTextOfIdentifierOrLiteral(We);ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}else if(e.isPrivateIdentifier(We)){var Fe=We.escapedText;ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}if(e.forEachChild(We,ue),e.hasJSDocNodes(We))for(var Z=0,Be=We.jsDoc;Zle){var N=e.findPrecedingToken(X.pos,R);if(!N||R.getLineAndCharacterOfPosition(N.getEnd()).line!==le)return;X=N}if(X.flags&16777216)return;return K(X);function p(b,se){var J=b.decorators?e.skipTrivia(R.text,b.decorators.end):b.getStart(R);return e.createTextSpanFromBounds(J,(se||b).getEnd())}function m(b,se){return p(b,e.findNextToken(se,se.parent,R))}function G(b,se){return b&&le===R.getLineAndCharacterOfPosition(b.getStart(R)).line?K(b):K(se)}function oe(b){return e.createTextSpanFromBounds(e.skipTrivia(R.text,b.pos),b.end)}function f(b){return K(e.findPrecedingToken(b.pos,R))}function T(b){return K(e.findNextToken(b,b.parent,R))}function K(b){if(b){var se=b.parent;switch(b.kind){case 237:return he(b.declarationList.declarations[0]);case 254:case 167:case 166:return he(b);case 164:return x(b);case 256:case 169:case 168:case 172:case 173:case 171:case 213:case 214:return $(b);case 235:if(e.isFunctionBlock(b))return A(b);case 262:return y(b);case 292:return y(b.block);case 238:return p(b.expression);case 247:return p(b.getChildAt(0),b.expression);case 241:return m(b,b.expression);case 240:return K(b.statement);case 253:return p(b.getChildAt(0));case 239:return m(b,b.expression);case 250:return K(b.statement);case 246:case 245:return p(b.getChildAt(0),b.label);case 242:return L(b);case 243:return m(b,b.expression);case 244:return V(b);case 249:return m(b,b.expression);case 289:case 290:return K(b.statements[0]);case 252:return y(b.tryBlock);case 251:return p(b,b.expression);case 271:return p(b,b.expression);case 265:return p(b,b.moduleReference);case 266:return p(b,b.moduleSpecifier);case 272:return p(b,b.moduleSpecifier);case 261:if(e.getModuleInstanceState(b)!==1)return;case 257:case 260:case 299:case 203:return p(b);case 248:return K(b.statement);case 165:return oe(se.decorators);case 201:case 202:return P(b);case 258:case 259:return;case 26:case 1:return G(e.findPrecedingToken(b.pos,R));case 27:return f(b);case 18:return Y(b);case 19:return U(b);case 23:return j(b);case 20:return H(b);case 21:return w(b);case 58:return l(b);case 31:case 29:return d(b);case 115:return D(b);case 91:case 83:case 96:return T(b);case 160:return fe(b);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(b))return k(b);if((b.kind===79||b.kind===225||b.kind===296||b.kind===297)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(se))return p(b);if(b.kind===221){var J=b,ie=J.left,B=J.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie))return k(ie);if(B.kind===63&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent))return p(b);if(B.kind===27)return K(ie)}if(e.isExpressionNode(b))switch(se.kind){case 240:return f(b);case 165:return K(b.parent);case 242:case 244:return p(b);case 221:if(b.parent.operatorToken.kind===27)return p(b);break;case 214:if(b.parent.body===b)return p(b);break}switch(b.parent.kind){case 296:if(b.parent.name===b&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent.parent))return K(b.parent.initializer);break;case 211:if(b.parent.type===b)return T(b.parent.type);break;case 254:case 164:{var q=b.parent,O=q.initializer,ve=q.type;if(O===b||ve===b||e.isAssignmentOperator(b.kind))return f(b);break}case 221:{var ie=b.parent.left;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie)&&b!==ie)return f(b);break}default:if(e.isFunctionLike(b.parent)&&b.parent.type===b)return f(b)}return K(b.parent)}}function ee(g){return e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]===g?p(e.findPrecedingToken(g.pos,R,g.parent),g):p(g)}function he(g){if(g.parent.parent.kind===243)return K(g.parent.parent);var ne=g.parent;if(e.isBindingPattern(g.name))return P(g.name);if(g.initializer||e.hasSyntacticModifier(g,1)||ne.parent.kind===244)return ee(g);if(e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]!==g)return K(e.findPrecedingToken(g.pos,R,g.parent))}function F(g){return!!g.initializer||g.dotDotDotToken!==void 0||e.hasSyntacticModifier(g,12)}function x(g){if(e.isBindingPattern(g.name))return P(g.name);if(F(g))return p(g);var ne=g.parent,ue=ne.parameters.indexOf(g);return e.Debug.assert(ue!==-1),ue!==0?x(ne.parameters[ue-1]):K(ne.body)}function Q(g){return e.hasSyntacticModifier(g,1)||g.parent.kind===257&&g.kind!==171}function $(g){if(!!g.body)return Q(g)?p(g):K(g.body)}function A(g){var ne=g.statements.length?g.statements[0]:g.getLastToken();return Q(g.parent)?G(g.parent,ne):K(ne)}function y(g){switch(g.parent.kind){case 261:if(e.getModuleInstanceState(g.parent)!==1)return;case 241:case 239:case 243:return G(g.parent,g.statements[0]);case 242:case 244:return G(e.findPrecedingToken(g.pos,R,g.parent),g.statements[0])}return K(g.statements[0])}function V(g){if(g.initializer.kind===255){var ne=g.initializer;if(ne.declarations.length>0)return K(ne.declarations[0])}else return K(g.initializer)}function L(g){if(g.initializer)return V(g);if(g.condition)return p(g.condition);if(g.incrementor)return p(g.incrementor)}function P(g){var ne=e.forEach(g.elements,function(ue){return ue.kind!==227?ue:void 0});return ne?K(ne):g.parent.kind===203?p(g.parent):ee(g.parent)}function k(g){e.Debug.assert(g.kind!==202&&g.kind!==201);var ne=g.kind===204?g.elements:g.properties,ue=e.forEach(ne,function(We){return We.kind!==227?We:void 0});return ue?K(ue):p(g.parent.kind===221?g.parent:g)}function Y(g){switch(g.parent.kind){case 260:var ne=g.parent;return G(e.findPrecedingToken(g.pos,R,g.parent),ne.members.length?ne.members[0]:ne.getLastToken(R));case 257:var ue=g.parent;return G(e.findPrecedingToken(g.pos,R,g.parent),ue.members.length?ue.members[0]:ue.getLastToken(R));case 263:return G(g.parent.parent,g.parent.clauses[0])}return K(g.parent)}function U(g){switch(g.parent.kind){case 262:if(e.getModuleInstanceState(g.parent.parent)!==1)return;case 260:case 257:return p(g);case 235:if(e.isFunctionBlock(g.parent))return p(g);case 292:return K(e.lastOrUndefined(g.parent.statements));case 263:var ne=g.parent,ue=e.lastOrUndefined(ne.clauses);return ue?K(e.lastOrUndefined(ue.statements)):void 0;case 201:var We=g.parent;return K(e.lastOrUndefined(We.elements)||We);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var Fe=g.parent;return p(e.lastOrUndefined(Fe.properties)||Fe)}return K(g.parent)}}function j(g){switch(g.parent.kind){case 202:var ne=g.parent;return p(e.lastOrUndefined(ne.elements)||ne);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var ue=g.parent;return p(e.lastOrUndefined(ue.elements)||ue)}return K(g.parent)}}function H(g){return g.parent.kind===240||g.parent.kind===208||g.parent.kind===209?f(g):g.parent.kind===212?T(g):K(g.parent)}function w(g){switch(g.parent.kind){case 213:case 256:case 214:case 169:case 168:case 172:case 173:case 171:case 241:case 240:case 242:case 244:case 208:case 209:case 212:return f(g);default:return K(g.parent)}}function l(g){return e.isFunctionLike(g.parent)||g.parent.kind===296||g.parent.kind===164?f(g):K(g.parent)}function d(g){return g.parent.kind===211?T(g):K(g.parent)}function D(g){return g.parent.kind===240?m(g,g.parent.expression):K(g.parent)}function fe(g){return g.parent.kind===244?T(g):K(g.parent)}}}C.spanInSourceFileAtLocation=I})(a=e.BreakpointResolver||(e.BreakpointResolver={}))})(ke||(ke={}));var ke;(function(e){function a(C,I,R){var E=[];R=e.fixupCompilerOptions(R,E);var X=e.isArray(C)?C:[C],le=e.transformNodes(void 0,void 0,e.factory,R,X,I,!0);return le.diagnostics=e.concatenate(le.diagnostics,E),le}e.transform=a})(ke||(ke={}));var ar=function(){return this}(),ke;(function(e){function a(m,G){m&&m.log("*INTERNAL ERROR* - Exception in typescript services: "+G.message)}var C=void 0,I=void 0;e.LanguageServiceShimHostAdapter=I;var R=void 0;e.CoreServicesShimHostAdapter=R;var E=void 0;e.realizeDiagnostics=void 0;var X=void 0,le=void 0,N=void 0,p=void 0;e.TypeScriptServicesFactory=void 0})(ke||(ke={})),function(){return;try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,typeof globalThis>"u"&&(window.globalThis=window),delete Object.prototype.__magic__}catch{window.globalThis=window}}(),typeof re<"u"&&re.exports&&(re.exports=ke);var ke;(function(e){var a={since:"4.0",warnAfter:"4.1",message:"Use the appropriate method on 'ts.factory' or the 'factory' supplied by your transformation context instead."};e.createNodeArray=e.Debug.deprecate(e.factory.createNodeArray,a),e.createNumericLiteral=e.Debug.deprecate(e.factory.createNumericLiteral,a),e.createBigIntLiteral=e.Debug.deprecate(e.factory.createBigIntLiteral,a),e.createStringLiteral=e.Debug.deprecate(e.factory.createStringLiteral,a),e.createStringLiteralFromNode=e.Debug.deprecate(e.factory.createStringLiteralFromNode,a),e.createRegularExpressionLiteral=e.Debug.deprecate(e.factory.createRegularExpressionLiteral,a),e.createLoopVariable=e.Debug.deprecate(e.factory.createLoopVariable,a),e.createUniqueName=e.Debug.deprecate(e.factory.createUniqueName,a),e.createPrivateIdentifier=e.Debug.deprecate(e.factory.createPrivateIdentifier,a),e.createSuper=e.Debug.deprecate(e.factory.createSuper,a),e.createThis=e.Debug.deprecate(e.factory.createThis,a),e.createNull=e.Debug.deprecate(e.factory.createNull,a),e.createTrue=e.Debug.deprecate(e.factory.createTrue,a),e.createFalse=e.Debug.deprecate(e.factory.createFalse,a),e.createModifier=e.Debug.deprecate(e.factory.createModifier,a),e.createModifiersFromModifierFlags=e.Debug.deprecate(e.factory.createModifiersFromModifierFlags,a),e.createQualifiedName=e.Debug.deprecate(e.factory.createQualifiedName,a),e.updateQualifiedName=e.Debug.deprecate(e.factory.updateQualifiedName,a),e.createComputedPropertyName=e.Debug.deprecate(e.factory.createComputedPropertyName,a),e.updateComputedPropertyName=e.Debug.deprecate(e.factory.updateComputedPropertyName,a),e.createTypeParameterDeclaration=e.Debug.deprecate(e.factory.createTypeParameterDeclaration,a),e.updateTypeParameterDeclaration=e.Debug.deprecate(e.factory.updateTypeParameterDeclaration,a),e.createParameter=e.Debug.deprecate(e.factory.createParameterDeclaration,a),e.updateParameter=e.Debug.deprecate(e.factory.updateParameterDeclaration,a),e.createDecorator=e.Debug.deprecate(e.factory.createDecorator,a),e.updateDecorator=e.Debug.deprecate(e.factory.updateDecorator,a),e.createProperty=e.Debug.deprecate(e.factory.createPropertyDeclaration,a),e.updateProperty=e.Debug.deprecate(e.factory.updatePropertyDeclaration,a),e.createMethod=e.Debug.deprecate(e.factory.createMethodDeclaration,a),e.updateMethod=e.Debug.deprecate(e.factory.updateMethodDeclaration,a),e.createConstructor=e.Debug.deprecate(e.factory.createConstructorDeclaration,a),e.updateConstructor=e.Debug.deprecate(e.factory.updateConstructorDeclaration,a),e.createGetAccessor=e.Debug.deprecate(e.factory.createGetAccessorDeclaration,a),e.updateGetAccessor=e.Debug.deprecate(e.factory.updateGetAccessorDeclaration,a),e.createSetAccessor=e.Debug.deprecate(e.factory.createSetAccessorDeclaration,a),e.updateSetAccessor=e.Debug.deprecate(e.factory.updateSetAccessorDeclaration,a),e.createCallSignature=e.Debug.deprecate(e.factory.createCallSignature,a),e.updateCallSignature=e.Debug.deprecate(e.factory.updateCallSignature,a),e.createConstructSignature=e.Debug.deprecate(e.factory.createConstructSignature,a),e.updateConstructSignature=e.Debug.deprecate(e.factory.updateConstructSignature,a),e.updateIndexSignature=e.Debug.deprecate(e.factory.updateIndexSignature,a),e.createKeywordTypeNode=e.Debug.deprecate(e.factory.createKeywordTypeNode,a),e.createTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.createTypePredicateNode,a),e.updateTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.updateTypePredicateNode,a),e.createTypeReferenceNode=e.Debug.deprecate(e.factory.createTypeReferenceNode,a),e.updateTypeReferenceNode=e.Debug.deprecate(e.factory.updateTypeReferenceNode,a),e.createFunctionTypeNode=e.Debug.deprecate(e.factory.createFunctionTypeNode,a),e.updateFunctionTypeNode=e.Debug.deprecate(e.factory.updateFunctionTypeNode,a),e.createConstructorTypeNode=e.Debug.deprecate(function(C,I,R){return e.factory.createConstructorTypeNode(void 0,C,I,R)},a),e.updateConstructorTypeNode=e.Debug.deprecate(function(C,I,R,E){return e.factory.updateConstructorTypeNode(C,C.modifiers,I,R,E)},a),e.createTypeQueryNode=e.Debug.deprecate(e.factory.createTypeQueryNode,a),e.updateTypeQueryNode=e.Debug.deprecate(e.factory.updateTypeQueryNode,a),e.createTypeLiteralNode=e.Debug.deprecate(e.factory.createTypeLiteralNode,a),e.updateTypeLiteralNode=e.Debug.deprecate(e.factory.updateTypeLiteralNode,a),e.createArrayTypeNode=e.Debug.deprecate(e.factory.createArrayTypeNode,a),e.updateArrayTypeNode=e.Debug.deprecate(e.factory.updateArrayTypeNode,a),e.createTupleTypeNode=e.Debug.deprecate(e.factory.createTupleTypeNode,a),e.updateTupleTypeNode=e.Debug.deprecate(e.factory.updateTupleTypeNode,a),e.createOptionalTypeNode=e.Debug.deprecate(e.factory.createOptionalTypeNode,a),e.updateOptionalTypeNode=e.Debug.deprecate(e.factory.updateOptionalTypeNode,a),e.createRestTypeNode=e.Debug.deprecate(e.factory.createRestTypeNode,a),e.updateRestTypeNode=e.Debug.deprecate(e.factory.updateRestTypeNode,a),e.createUnionTypeNode=e.Debug.deprecate(e.factory.createUnionTypeNode,a),e.updateUnionTypeNode=e.Debug.deprecate(e.factory.updateUnionTypeNode,a),e.createIntersectionTypeNode=e.Debug.deprecate(e.factory.createIntersectionTypeNode,a),e.updateIntersectionTypeNode=e.Debug.deprecate(e.factory.updateIntersectionTypeNode,a),e.createConditionalTypeNode=e.Debug.deprecate(e.factory.createConditionalTypeNode,a),e.updateConditionalTypeNode=e.Debug.deprecate(e.factory.updateConditionalTypeNode,a),e.createInferTypeNode=e.Debug.deprecate(e.factory.createInferTypeNode,a),e.updateInferTypeNode=e.Debug.deprecate(e.factory.updateInferTypeNode,a),e.createImportTypeNode=e.Debug.deprecate(e.factory.createImportTypeNode,a),e.updateImportTypeNode=e.Debug.deprecate(e.factory.updateImportTypeNode,a),e.createParenthesizedType=e.Debug.deprecate(e.factory.createParenthesizedType,a),e.updateParenthesizedType=e.Debug.deprecate(e.factory.updateParenthesizedType,a),e.createThisTypeNode=e.Debug.deprecate(e.factory.createThisTypeNode,a),e.updateTypeOperatorNode=e.Debug.deprecate(e.factory.updateTypeOperatorNode,a),e.createIndexedAccessTypeNode=e.Debug.deprecate(e.factory.createIndexedAccessTypeNode,a),e.updateIndexedAccessTypeNode=e.Debug.deprecate(e.factory.updateIndexedAccessTypeNode,a),e.createMappedTypeNode=e.Debug.deprecate(e.factory.createMappedTypeNode,a),e.updateMappedTypeNode=e.Debug.deprecate(e.factory.updateMappedTypeNode,a),e.createLiteralTypeNode=e.Debug.deprecate(e.factory.createLiteralTypeNode,a),e.updateLiteralTypeNode=e.Debug.deprecate(e.factory.updateLiteralTypeNode,a),e.createObjectBindingPattern=e.Debug.deprecate(e.factory.createObjectBindingPattern,a),e.updateObjectBindingPattern=e.Debug.deprecate(e.factory.updateObjectBindingPattern,a),e.createArrayBindingPattern=e.Debug.deprecate(e.factory.createArrayBindingPattern,a),e.updateArrayBindingPattern=e.Debug.deprecate(e.factory.updateArrayBindingPattern,a),e.createBindingElement=e.Debug.deprecate(e.factory.createBindingElement,a),e.updateBindingElement=e.Debug.deprecate(e.factory.updateBindingElement,a),e.createArrayLiteral=e.Debug.deprecate(e.factory.createArrayLiteralExpression,a),e.updateArrayLiteral=e.Debug.deprecate(e.factory.updateArrayLiteralExpression,a),e.createObjectLiteral=e.Debug.deprecate(e.factory.createObjectLiteralExpression,a),e.updateObjectLiteral=e.Debug.deprecate(e.factory.updateObjectLiteralExpression,a),e.createPropertyAccess=e.Debug.deprecate(e.factory.createPropertyAccessExpression,a),e.updatePropertyAccess=e.Debug.deprecate(e.factory.updatePropertyAccessExpression,a),e.createPropertyAccessChain=e.Debug.deprecate(e.factory.createPropertyAccessChain,a),e.updatePropertyAccessChain=e.Debug.deprecate(e.factory.updatePropertyAccessChain,a),e.createElementAccess=e.Debug.deprecate(e.factory.createElementAccessExpression,a),e.updateElementAccess=e.Debug.deprecate(e.factory.updateElementAccessExpression,a),e.createElementAccessChain=e.Debug.deprecate(e.factory.createElementAccessChain,a),e.updateElementAccessChain=e.Debug.deprecate(e.factory.updateElementAccessChain,a),e.createCall=e.Debug.deprecate(e.factory.createCallExpression,a),e.updateCall=e.Debug.deprecate(e.factory.updateCallExpression,a),e.createCallChain=e.Debug.deprecate(e.factory.createCallChain,a),e.updateCallChain=e.Debug.deprecate(e.factory.updateCallChain,a),e.createNew=e.Debug.deprecate(e.factory.createNewExpression,a),e.updateNew=e.Debug.deprecate(e.factory.updateNewExpression,a),e.createTypeAssertion=e.Debug.deprecate(e.factory.createTypeAssertion,a),e.updateTypeAssertion=e.Debug.deprecate(e.factory.updateTypeAssertion,a),e.createParen=e.Debug.deprecate(e.factory.createParenthesizedExpression,a),e.updateParen=e.Debug.deprecate(e.factory.updateParenthesizedExpression,a),e.createFunctionExpression=e.Debug.deprecate(e.factory.createFunctionExpression,a),e.updateFunctionExpression=e.Debug.deprecate(e.factory.updateFunctionExpression,a),e.createDelete=e.Debug.deprecate(e.factory.createDeleteExpression,a),e.updateDelete=e.Debug.deprecate(e.factory.updateDeleteExpression,a),e.createTypeOf=e.Debug.deprecate(e.factory.createTypeOfExpression,a),e.updateTypeOf=e.Debug.deprecate(e.factory.updateTypeOfExpression,a),e.createVoid=e.Debug.deprecate(e.factory.createVoidExpression,a),e.updateVoid=e.Debug.deprecate(e.factory.updateVoidExpression,a),e.createAwait=e.Debug.deprecate(e.factory.createAwaitExpression,a),e.updateAwait=e.Debug.deprecate(e.factory.updateAwaitExpression,a),e.createPrefix=e.Debug.deprecate(e.factory.createPrefixUnaryExpression,a),e.updatePrefix=e.Debug.deprecate(e.factory.updatePrefixUnaryExpression,a),e.createPostfix=e.Debug.deprecate(e.factory.createPostfixUnaryExpression,a),e.updatePostfix=e.Debug.deprecate(e.factory.updatePostfixUnaryExpression,a),e.createBinary=e.Debug.deprecate(e.factory.createBinaryExpression,a),e.updateConditional=e.Debug.deprecate(e.factory.updateConditionalExpression,a),e.createTemplateExpression=e.Debug.deprecate(e.factory.createTemplateExpression,a),e.updateTemplateExpression=e.Debug.deprecate(e.factory.updateTemplateExpression,a),e.createTemplateHead=e.Debug.deprecate(e.factory.createTemplateHead,a),e.createTemplateMiddle=e.Debug.deprecate(e.factory.createTemplateMiddle,a),e.createTemplateTail=e.Debug.deprecate(e.factory.createTemplateTail,a),e.createNoSubstitutionTemplateLiteral=e.Debug.deprecate(e.factory.createNoSubstitutionTemplateLiteral,a),e.updateYield=e.Debug.deprecate(e.factory.updateYieldExpression,a),e.createSpread=e.Debug.deprecate(e.factory.createSpreadElement,a),e.updateSpread=e.Debug.deprecate(e.factory.updateSpreadElement,a),e.createOmittedExpression=e.Debug.deprecate(e.factory.createOmittedExpression,a),e.createAsExpression=e.Debug.deprecate(e.factory.createAsExpression,a),e.updateAsExpression=e.Debug.deprecate(e.factory.updateAsExpression,a),e.createNonNullExpression=e.Debug.deprecate(e.factory.createNonNullExpression,a),e.updateNonNullExpression=e.Debug.deprecate(e.factory.updateNonNullExpression,a),e.createNonNullChain=e.Debug.deprecate(e.factory.createNonNullChain,a),e.updateNonNullChain=e.Debug.deprecate(e.factory.updateNonNullChain,a),e.createMetaProperty=e.Debug.deprecate(e.factory.createMetaProperty,a),e.updateMetaProperty=e.Debug.deprecate(e.factory.updateMetaProperty,a),e.createTemplateSpan=e.Debug.deprecate(e.factory.createTemplateSpan,a),e.updateTemplateSpan=e.Debug.deprecate(e.factory.updateTemplateSpan,a),e.createSemicolonClassElement=e.Debug.deprecate(e.factory.createSemicolonClassElement,a),e.createBlock=e.Debug.deprecate(e.factory.createBlock,a),e.updateBlock=e.Debug.deprecate(e.factory.updateBlock,a),e.createVariableStatement=e.Debug.deprecate(e.factory.createVariableStatement,a),e.updateVariableStatement=e.Debug.deprecate(e.factory.updateVariableStatement,a),e.createEmptyStatement=e.Debug.deprecate(e.factory.createEmptyStatement,a),e.createExpressionStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateExpressionStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createIf=e.Debug.deprecate(e.factory.createIfStatement,a),e.updateIf=e.Debug.deprecate(e.factory.updateIfStatement,a),e.createDo=e.Debug.deprecate(e.factory.createDoStatement,a),e.updateDo=e.Debug.deprecate(e.factory.updateDoStatement,a),e.createWhile=e.Debug.deprecate(e.factory.createWhileStatement,a),e.updateWhile=e.Debug.deprecate(e.factory.updateWhileStatement,a),e.createFor=e.Debug.deprecate(e.factory.createForStatement,a),e.updateFor=e.Debug.deprecate(e.factory.updateForStatement,a),e.createForIn=e.Debug.deprecate(e.factory.createForInStatement,a),e.updateForIn=e.Debug.deprecate(e.factory.updateForInStatement,a),e.createForOf=e.Debug.deprecate(e.factory.createForOfStatement,a),e.updateForOf=e.Debug.deprecate(e.factory.updateForOfStatement,a),e.createContinue=e.Debug.deprecate(e.factory.createContinueStatement,a),e.updateContinue=e.Debug.deprecate(e.factory.updateContinueStatement,a),e.createBreak=e.Debug.deprecate(e.factory.createBreakStatement,a),e.updateBreak=e.Debug.deprecate(e.factory.updateBreakStatement,a),e.createReturn=e.Debug.deprecate(e.factory.createReturnStatement,a),e.updateReturn=e.Debug.deprecate(e.factory.updateReturnStatement,a),e.createWith=e.Debug.deprecate(e.factory.createWithStatement,a),e.updateWith=e.Debug.deprecate(e.factory.updateWithStatement,a),e.createSwitch=e.Debug.deprecate(e.factory.createSwitchStatement,a),e.updateSwitch=e.Debug.deprecate(e.factory.updateSwitchStatement,a),e.createLabel=e.Debug.deprecate(e.factory.createLabeledStatement,a),e.updateLabel=e.Debug.deprecate(e.factory.updateLabeledStatement,a),e.createThrow=e.Debug.deprecate(e.factory.createThrowStatement,a),e.updateThrow=e.Debug.deprecate(e.factory.updateThrowStatement,a),e.createTry=e.Debug.deprecate(e.factory.createTryStatement,a),e.updateTry=e.Debug.deprecate(e.factory.updateTryStatement,a),e.createDebuggerStatement=e.Debug.deprecate(e.factory.createDebuggerStatement,a),e.createVariableDeclarationList=e.Debug.deprecate(e.factory.createVariableDeclarationList,a),e.updateVariableDeclarationList=e.Debug.deprecate(e.factory.updateVariableDeclarationList,a),e.createFunctionDeclaration=e.Debug.deprecate(e.factory.createFunctionDeclaration,a),e.updateFunctionDeclaration=e.Debug.deprecate(e.factory.updateFunctionDeclaration,a),e.createClassDeclaration=e.Debug.deprecate(e.factory.createClassDeclaration,a),e.updateClassDeclaration=e.Debug.deprecate(e.factory.updateClassDeclaration,a),e.createInterfaceDeclaration=e.Debug.deprecate(e.factory.createInterfaceDeclaration,a),e.updateInterfaceDeclaration=e.Debug.deprecate(e.factory.updateInterfaceDeclaration,a),e.createTypeAliasDeclaration=e.Debug.deprecate(e.factory.createTypeAliasDeclaration,a),e.updateTypeAliasDeclaration=e.Debug.deprecate(e.factory.updateTypeAliasDeclaration,a),e.createEnumDeclaration=e.Debug.deprecate(e.factory.createEnumDeclaration,a),e.updateEnumDeclaration=e.Debug.deprecate(e.factory.updateEnumDeclaration,a),e.createModuleDeclaration=e.Debug.deprecate(e.factory.createModuleDeclaration,a),e.updateModuleDeclaration=e.Debug.deprecate(e.factory.updateModuleDeclaration,a),e.createModuleBlock=e.Debug.deprecate(e.factory.createModuleBlock,a),e.updateModuleBlock=e.Debug.deprecate(e.factory.updateModuleBlock,a),e.createCaseBlock=e.Debug.deprecate(e.factory.createCaseBlock,a),e.updateCaseBlock=e.Debug.deprecate(e.factory.updateCaseBlock,a),e.createNamespaceExportDeclaration=e.Debug.deprecate(e.factory.createNamespaceExportDeclaration,a),e.updateNamespaceExportDeclaration=e.Debug.deprecate(e.factory.updateNamespaceExportDeclaration,a),e.createImportEqualsDeclaration=e.Debug.deprecate(e.factory.createImportEqualsDeclaration,a),e.updateImportEqualsDeclaration=e.Debug.deprecate(e.factory.updateImportEqualsDeclaration,a),e.createImportDeclaration=e.Debug.deprecate(e.factory.createImportDeclaration,a),e.updateImportDeclaration=e.Debug.deprecate(e.factory.updateImportDeclaration,a),e.createNamespaceImport=e.Debug.deprecate(e.factory.createNamespaceImport,a),e.updateNamespaceImport=e.Debug.deprecate(e.factory.updateNamespaceImport,a),e.createNamedImports=e.Debug.deprecate(e.factory.createNamedImports,a),e.updateNamedImports=e.Debug.deprecate(e.factory.updateNamedImports,a),e.createImportSpecifier=e.Debug.deprecate(e.factory.createImportSpecifier,a),e.updateImportSpecifier=e.Debug.deprecate(e.factory.updateImportSpecifier,a),e.createExportAssignment=e.Debug.deprecate(e.factory.createExportAssignment,a),e.updateExportAssignment=e.Debug.deprecate(e.factory.updateExportAssignment,a),e.createNamedExports=e.Debug.deprecate(e.factory.createNamedExports,a),e.updateNamedExports=e.Debug.deprecate(e.factory.updateNamedExports,a),e.createExportSpecifier=e.Debug.deprecate(e.factory.createExportSpecifier,a),e.updateExportSpecifier=e.Debug.deprecate(e.factory.updateExportSpecifier,a),e.createExternalModuleReference=e.Debug.deprecate(e.factory.createExternalModuleReference,a),e.updateExternalModuleReference=e.Debug.deprecate(e.factory.updateExternalModuleReference,a),e.createJSDocTypeExpression=e.Debug.deprecate(e.factory.createJSDocTypeExpression,a),e.createJSDocTypeTag=e.Debug.deprecate(e.factory.createJSDocTypeTag,a),e.createJSDocReturnTag=e.Debug.deprecate(e.factory.createJSDocReturnTag,a),e.createJSDocThisTag=e.Debug.deprecate(e.factory.createJSDocThisTag,a),e.createJSDocComment=e.Debug.deprecate(e.factory.createJSDocComment,a),e.createJSDocParameterTag=e.Debug.deprecate(e.factory.createJSDocParameterTag,a),e.createJSDocClassTag=e.Debug.deprecate(e.factory.createJSDocClassTag,a),e.createJSDocAugmentsTag=e.Debug.deprecate(e.factory.createJSDocAugmentsTag,a),e.createJSDocEnumTag=e.Debug.deprecate(e.factory.createJSDocEnumTag,a),e.createJSDocTemplateTag=e.Debug.deprecate(e.factory.createJSDocTemplateTag,a),e.createJSDocTypedefTag=e.Debug.deprecate(e.factory.createJSDocTypedefTag,a),e.createJSDocCallbackTag=e.Debug.deprecate(e.factory.createJSDocCallbackTag,a),e.createJSDocSignature=e.Debug.deprecate(e.factory.createJSDocSignature,a),e.createJSDocPropertyTag=e.Debug.deprecate(e.factory.createJSDocPropertyTag,a),e.createJSDocTypeLiteral=e.Debug.deprecate(e.factory.createJSDocTypeLiteral,a),e.createJSDocImplementsTag=e.Debug.deprecate(e.factory.createJSDocImplementsTag,a),e.createJSDocAuthorTag=e.Debug.deprecate(e.factory.createJSDocAuthorTag,a),e.createJSDocPublicTag=e.Debug.deprecate(e.factory.createJSDocPublicTag,a),e.createJSDocPrivateTag=e.Debug.deprecate(e.factory.createJSDocPrivateTag,a),e.createJSDocProtectedTag=e.Debug.deprecate(e.factory.createJSDocProtectedTag,a),e.createJSDocReadonlyTag=e.Debug.deprecate(e.factory.createJSDocReadonlyTag,a),e.createJSDocTag=e.Debug.deprecate(e.factory.createJSDocUnknownTag,a),e.createJsxElement=e.Debug.deprecate(e.factory.createJsxElement,a),e.updateJsxElement=e.Debug.deprecate(e.factory.updateJsxElement,a),e.createJsxSelfClosingElement=e.Debug.deprecate(e.factory.createJsxSelfClosingElement,a),e.updateJsxSelfClosingElement=e.Debug.deprecate(e.factory.updateJsxSelfClosingElement,a),e.createJsxOpeningElement=e.Debug.deprecate(e.factory.createJsxOpeningElement,a),e.updateJsxOpeningElement=e.Debug.deprecate(e.factory.updateJsxOpeningElement,a),e.createJsxClosingElement=e.Debug.deprecate(e.factory.createJsxClosingElement,a),e.updateJsxClosingElement=e.Debug.deprecate(e.factory.updateJsxClosingElement,a),e.createJsxFragment=e.Debug.deprecate(e.factory.createJsxFragment,a),e.createJsxText=e.Debug.deprecate(e.factory.createJsxText,a),e.updateJsxText=e.Debug.deprecate(e.factory.updateJsxText,a),e.createJsxOpeningFragment=e.Debug.deprecate(e.factory.createJsxOpeningFragment,a),e.createJsxJsxClosingFragment=e.Debug.deprecate(e.factory.createJsxJsxClosingFragment,a),e.updateJsxFragment=e.Debug.deprecate(e.factory.updateJsxFragment,a),e.createJsxAttribute=e.Debug.deprecate(e.factory.createJsxAttribute,a),e.updateJsxAttribute=e.Debug.deprecate(e.factory.updateJsxAttribute,a),e.createJsxAttributes=e.Debug.deprecate(e.factory.createJsxAttributes,a),e.updateJsxAttributes=e.Debug.deprecate(e.factory.updateJsxAttributes,a),e.createJsxSpreadAttribute=e.Debug.deprecate(e.factory.createJsxSpreadAttribute,a),e.updateJsxSpreadAttribute=e.Debug.deprecate(e.factory.updateJsxSpreadAttribute,a),e.createJsxExpression=e.Debug.deprecate(e.factory.createJsxExpression,a),e.updateJsxExpression=e.Debug.deprecate(e.factory.updateJsxExpression,a),e.createCaseClause=e.Debug.deprecate(e.factory.createCaseClause,a),e.updateCaseClause=e.Debug.deprecate(e.factory.updateCaseClause,a),e.createDefaultClause=e.Debug.deprecate(e.factory.createDefaultClause,a),e.updateDefaultClause=e.Debug.deprecate(e.factory.updateDefaultClause,a),e.createHeritageClause=e.Debug.deprecate(e.factory.createHeritageClause,a),e.updateHeritageClause=e.Debug.deprecate(e.factory.updateHeritageClause,a),e.createCatchClause=e.Debug.deprecate(e.factory.createCatchClause,a),e.updateCatchClause=e.Debug.deprecate(e.factory.updateCatchClause,a),e.createPropertyAssignment=e.Debug.deprecate(e.factory.createPropertyAssignment,a),e.updatePropertyAssignment=e.Debug.deprecate(e.factory.updatePropertyAssignment,a),e.createShorthandPropertyAssignment=e.Debug.deprecate(e.factory.createShorthandPropertyAssignment,a),e.updateShorthandPropertyAssignment=e.Debug.deprecate(e.factory.updateShorthandPropertyAssignment,a),e.createSpreadAssignment=e.Debug.deprecate(e.factory.createSpreadAssignment,a),e.updateSpreadAssignment=e.Debug.deprecate(e.factory.updateSpreadAssignment,a),e.createEnumMember=e.Debug.deprecate(e.factory.createEnumMember,a),e.updateEnumMember=e.Debug.deprecate(e.factory.updateEnumMember,a),e.updateSourceFileNode=e.Debug.deprecate(e.factory.updateSourceFile,a),e.createNotEmittedStatement=e.Debug.deprecate(e.factory.createNotEmittedStatement,a),e.createPartiallyEmittedExpression=e.Debug.deprecate(e.factory.createPartiallyEmittedExpression,a),e.updatePartiallyEmittedExpression=e.Debug.deprecate(e.factory.updatePartiallyEmittedExpression,a),e.createCommaList=e.Debug.deprecate(e.factory.createCommaListExpression,a),e.updateCommaList=e.Debug.deprecate(e.factory.updateCommaListExpression,a),e.createBundle=e.Debug.deprecate(e.factory.createBundle,a),e.updateBundle=e.Debug.deprecate(e.factory.updateBundle,a),e.createImmediatelyInvokedFunctionExpression=e.Debug.deprecate(e.factory.createImmediatelyInvokedFunctionExpression,a),e.createImmediatelyInvokedArrowFunction=e.Debug.deprecate(e.factory.createImmediatelyInvokedArrowFunction,a),e.createVoidZero=e.Debug.deprecate(e.factory.createVoidZero,a),e.createExportDefault=e.Debug.deprecate(e.factory.createExportDefault,a),e.createExternalModuleExport=e.Debug.deprecate(e.factory.createExternalModuleExport,a),e.createNamespaceExport=e.Debug.deprecate(e.factory.createNamespaceExport,a),e.updateNamespaceExport=e.Debug.deprecate(e.factory.updateNamespaceExport,a),e.createToken=e.Debug.deprecate(function(I){return e.factory.createToken(I)},a),e.createIdentifier=e.Debug.deprecate(function(I){return e.factory.createIdentifier(I,void 0,void 0)},a),e.createTempVariable=e.Debug.deprecate(function(I){return e.factory.createTempVariable(I,void 0)},a),e.getGeneratedNameForNode=e.Debug.deprecate(function(I){return e.factory.getGeneratedNameForNode(I,void 0)},a),e.createOptimisticUniqueName=e.Debug.deprecate(function(I){return e.factory.createUniqueName(I,16)},a),e.createFileLevelUniqueName=e.Debug.deprecate(function(I){return e.factory.createUniqueName(I,48)},a),e.createIndexSignature=e.Debug.deprecate(function(I,R,E,X){return e.factory.createIndexSignature(I,R,E,X)},a),e.createTypePredicateNode=e.Debug.deprecate(function(I,R){return e.factory.createTypePredicateNode(void 0,I,R)},a),e.updateTypePredicateNode=e.Debug.deprecate(function(I,R,E){return e.factory.updateTypePredicateNode(I,void 0,R,E)},a),e.createLiteral=e.Debug.deprecate(function(I){return typeof I=="number"?e.factory.createNumericLiteral(I):typeof I=="object"&&"base10Value"in I?e.factory.createBigIntLiteral(I):typeof I=="boolean"?I?e.factory.createTrue():e.factory.createFalse():typeof I=="string"?e.factory.createStringLiteral(I,void 0):e.factory.createStringLiteralFromNode(I)},{since:"4.0",warnAfter:"4.1",message:"Use `factory.createStringLiteral`, `factory.createStringLiteralFromNode`, `factory.createNumericLiteral`, `factory.createBigIntLiteral`, `factory.createTrue`, `factory.createFalse`, or the factory supplied by your transformation context instead."}),e.createMethodSignature=e.Debug.deprecate(function(I,R,E,X,le){return e.factory.createMethodSignature(void 0,X,le,I,R,E)},a),e.updateMethodSignature=e.Debug.deprecate(function(I,R,E,X,le,N){return e.factory.updateMethodSignature(I,I.modifiers,le,N,R,E,X)},a),e.createTypeOperatorNode=e.Debug.deprecate(function(I,R){var E;return R?E=I:(R=I,E=140),e.factory.createTypeOperatorNode(E,R)},a),e.createTaggedTemplate=e.Debug.deprecate(function(I,R,E){var X;return E?X=R:E=R,e.factory.createTaggedTemplateExpression(I,X,E)},a),e.updateTaggedTemplate=e.Debug.deprecate(function(I,R,E,X){var le;return X?le=E:X=E,e.factory.updateTaggedTemplateExpression(I,R,le,X)},a),e.updateBinary=e.Debug.deprecate(function(I,R,E,X){return X===void 0&&(X=I.operatorToken),typeof X=="number"&&(X=X===I.operatorToken.kind?I.operatorToken:e.factory.createToken(X)),e.factory.updateBinaryExpression(I,R,X,E)},a),e.createConditional=e.Debug.deprecate(function(I,R,E,X,le){return arguments.length===5?e.factory.createConditionalExpression(I,R,E,X,le):arguments.length===3?e.factory.createConditionalExpression(I,e.factory.createToken(57),R,e.factory.createToken(58),E):e.Debug.fail("Argument count mismatch")},a),e.createYield=e.Debug.deprecate(function(I,R){var E;return R?E=I:R=I,e.factory.createYieldExpression(E,R)},a),e.createClassExpression=e.Debug.deprecate(function(I,R,E,X,le){return e.factory.createClassExpression(void 0,I,R,E,X,le)},a),e.updateClassExpression=e.Debug.deprecate(function(I,R,E,X,le,N){return e.factory.updateClassExpression(I,void 0,R,E,X,le,N)},a),e.createPropertySignature=e.Debug.deprecate(function(I,R,E,X,le){var N=e.factory.createPropertySignature(I,R,E,X);return N.initializer=le,N},a),e.updatePropertySignature=e.Debug.deprecate(function(I,R,E,X,le,N){var p=e.factory.updatePropertySignature(I,R,E,X,le);return I.initializer!==N&&(p===I&&(p=e.factory.cloneNode(I)),p.initializer=N),p},a),e.createExpressionWithTypeArguments=e.Debug.deprecate(function(I,R){return e.factory.createExpressionWithTypeArguments(R,I)},a),e.updateExpressionWithTypeArguments=e.Debug.deprecate(function(I,R,E){return e.factory.updateExpressionWithTypeArguments(I,E,R)},a),e.createArrowFunction=e.Debug.deprecate(function(I,R,E,X,le,N){return arguments.length===6?e.factory.createArrowFunction(I,R,E,X,le,N):arguments.length===5?e.factory.createArrowFunction(I,R,E,X,void 0,le):e.Debug.fail("Argument count mismatch")},a),e.updateArrowFunction=e.Debug.deprecate(function(I,R,E,X,le,N,p){return arguments.length===7?e.factory.updateArrowFunction(I,R,E,X,le,N,p):arguments.length===6?e.factory.updateArrowFunction(I,R,E,X,le,I.equalsGreaterThanToken,N):e.Debug.fail("Argument count mismatch")},a),e.createVariableDeclaration=e.Debug.deprecate(function(I,R,E,X){return arguments.length===4?e.factory.createVariableDeclaration(I,R,E,X):arguments.length>=1&&arguments.length<=3?e.factory.createVariableDeclaration(I,void 0,R,E):e.Debug.fail("Argument count mismatch")},a),e.updateVariableDeclaration=e.Debug.deprecate(function(I,R,E,X,le){return arguments.length===5?e.factory.updateVariableDeclaration(I,R,E,X,le):arguments.length===4?e.factory.updateVariableDeclaration(I,R,I.exclamationToken,E,X):e.Debug.fail("Argument count mismatch")},a),e.createImportClause=e.Debug.deprecate(function(I,R,E){return E===void 0&&(E=!1),e.factory.createImportClause(E,I,R)},a),e.updateImportClause=e.Debug.deprecate(function(I,R,E,X){return e.factory.updateImportClause(I,X,R,E)},a),e.createExportDeclaration=e.Debug.deprecate(function(I,R,E,X,le){return le===void 0&&(le=!1),e.factory.createExportDeclaration(I,R,le,E,X)},a),e.updateExportDeclaration=e.Debug.deprecate(function(I,R,E,X,le,N){return e.factory.updateExportDeclaration(I,R,E,N,X,le,I.assertClause)},a),e.createJSDocParamTag=e.Debug.deprecate(function(I,R,E,X){return e.factory.createJSDocParameterTag(void 0,I,R,E,!1,X?e.factory.createNodeArray([e.factory.createJSDocText(X)]):void 0)},a),e.createComma=e.Debug.deprecate(function(I,R){return e.factory.createComma(I,R)},a),e.createLessThan=e.Debug.deprecate(function(I,R){return e.factory.createLessThan(I,R)},a),e.createAssignment=e.Debug.deprecate(function(I,R){return e.factory.createAssignment(I,R)},a),e.createStrictEquality=e.Debug.deprecate(function(I,R){return e.factory.createStrictEquality(I,R)},a),e.createStrictInequality=e.Debug.deprecate(function(I,R){return e.factory.createStrictInequality(I,R)},a),e.createAdd=e.Debug.deprecate(function(I,R){return e.factory.createAdd(I,R)},a),e.createSubtract=e.Debug.deprecate(function(I,R){return e.factory.createSubtract(I,R)},a),e.createLogicalAnd=e.Debug.deprecate(function(I,R){return e.factory.createLogicalAnd(I,R)},a),e.createLogicalOr=e.Debug.deprecate(function(I,R){return e.factory.createLogicalOr(I,R)},a),e.createPostfixIncrement=e.Debug.deprecate(function(I){return e.factory.createPostfixIncrement(I)},a),e.createLogicalNot=e.Debug.deprecate(function(I){return e.factory.createLogicalNot(I)},a),e.createNode=e.Debug.deprecate(function(I,R,E){return R===void 0&&(R=0),E===void 0&&(E=0),e.setTextRangePosEnd(I===305?e.parseBaseNodeFactory.createBaseSourceFileNode(I):I===79?e.parseBaseNodeFactory.createBaseIdentifierNode(I):I===80?e.parseBaseNodeFactory.createBasePrivateIdentifierNode(I):e.isNodeKind(I)?e.parseBaseNodeFactory.createBaseNode(I):e.parseBaseNodeFactory.createBaseTokenNode(I),R,E)},{since:"4.0",warnAfter:"4.1",message:"Use an appropriate `factory` method instead."}),e.getMutableClone=e.Debug.deprecate(function(I){var R=e.factory.cloneNode(I);return e.setTextRange(R,I),e.setParent(R,I.parent),R},{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(I){return I.kind===211},{since:"4.0",warnAfter:"4.1",message:"Use `isTypeAssertionExpression` instead."}),e.isIdentifierOrPrivateIdentifier=e.Debug.deprecate(function(I){return e.isMemberName(I)},{since:"4.2",warnAfter:"4.3",message:"Use `isMemberName` instead."})})(ke||(ke={}))}}),X4=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var re;(function(Ke){Ke.ArrayExpression="ArrayExpression",Ke.ArrayPattern="ArrayPattern",Ke.ArrowFunctionExpression="ArrowFunctionExpression",Ke.AssignmentExpression="AssignmentExpression",Ke.AssignmentPattern="AssignmentPattern",Ke.AwaitExpression="AwaitExpression",Ke.BinaryExpression="BinaryExpression",Ke.BlockStatement="BlockStatement",Ke.BreakStatement="BreakStatement",Ke.CallExpression="CallExpression",Ke.CatchClause="CatchClause",Ke.ChainExpression="ChainExpression",Ke.ClassBody="ClassBody",Ke.ClassDeclaration="ClassDeclaration",Ke.ClassExpression="ClassExpression",Ke.ConditionalExpression="ConditionalExpression",Ke.ContinueStatement="ContinueStatement",Ke.DebuggerStatement="DebuggerStatement",Ke.Decorator="Decorator",Ke.DoWhileStatement="DoWhileStatement",Ke.EmptyStatement="EmptyStatement",Ke.ExportAllDeclaration="ExportAllDeclaration",Ke.ExportDefaultDeclaration="ExportDefaultDeclaration",Ke.ExportNamedDeclaration="ExportNamedDeclaration",Ke.ExportSpecifier="ExportSpecifier",Ke.ExpressionStatement="ExpressionStatement",Ke.ForInStatement="ForInStatement",Ke.ForOfStatement="ForOfStatement",Ke.ForStatement="ForStatement",Ke.FunctionDeclaration="FunctionDeclaration",Ke.FunctionExpression="FunctionExpression",Ke.Identifier="Identifier",Ke.IfStatement="IfStatement",Ke.ImportAttribute="ImportAttribute",Ke.ImportDeclaration="ImportDeclaration",Ke.ImportDefaultSpecifier="ImportDefaultSpecifier",Ke.ImportExpression="ImportExpression",Ke.ImportNamespaceSpecifier="ImportNamespaceSpecifier",Ke.ImportSpecifier="ImportSpecifier",Ke.JSXAttribute="JSXAttribute",Ke.JSXClosingElement="JSXClosingElement",Ke.JSXClosingFragment="JSXClosingFragment",Ke.JSXElement="JSXElement",Ke.JSXEmptyExpression="JSXEmptyExpression",Ke.JSXExpressionContainer="JSXExpressionContainer",Ke.JSXFragment="JSXFragment",Ke.JSXIdentifier="JSXIdentifier",Ke.JSXMemberExpression="JSXMemberExpression",Ke.JSXNamespacedName="JSXNamespacedName",Ke.JSXOpeningElement="JSXOpeningElement",Ke.JSXOpeningFragment="JSXOpeningFragment",Ke.JSXSpreadAttribute="JSXSpreadAttribute",Ke.JSXSpreadChild="JSXSpreadChild",Ke.JSXText="JSXText",Ke.LabeledStatement="LabeledStatement",Ke.Literal="Literal",Ke.LogicalExpression="LogicalExpression",Ke.MemberExpression="MemberExpression",Ke.MetaProperty="MetaProperty",Ke.MethodDefinition="MethodDefinition",Ke.NewExpression="NewExpression",Ke.ObjectExpression="ObjectExpression",Ke.ObjectPattern="ObjectPattern",Ke.PrivateIdentifier="PrivateIdentifier",Ke.Program="Program",Ke.Property="Property",Ke.PropertyDefinition="PropertyDefinition",Ke.RestElement="RestElement",Ke.ReturnStatement="ReturnStatement",Ke.SequenceExpression="SequenceExpression",Ke.SpreadElement="SpreadElement",Ke.StaticBlock="StaticBlock",Ke.Super="Super",Ke.SwitchCase="SwitchCase",Ke.SwitchStatement="SwitchStatement",Ke.TaggedTemplateExpression="TaggedTemplateExpression",Ke.TemplateElement="TemplateElement",Ke.TemplateLiteral="TemplateLiteral",Ke.ThisExpression="ThisExpression",Ke.ThrowStatement="ThrowStatement",Ke.TryStatement="TryStatement",Ke.UnaryExpression="UnaryExpression",Ke.UpdateExpression="UpdateExpression",Ke.VariableDeclaration="VariableDeclaration",Ke.VariableDeclarator="VariableDeclarator",Ke.WhileStatement="WhileStatement",Ke.WithStatement="WithStatement",Ke.YieldExpression="YieldExpression",Ke.TSAbstractKeyword="TSAbstractKeyword",Ke.TSAbstractMethodDefinition="TSAbstractMethodDefinition",Ke.TSAbstractPropertyDefinition="TSAbstractPropertyDefinition",Ke.TSAnyKeyword="TSAnyKeyword",Ke.TSArrayType="TSArrayType",Ke.TSAsExpression="TSAsExpression",Ke.TSAsyncKeyword="TSAsyncKeyword",Ke.TSBigIntKeyword="TSBigIntKeyword",Ke.TSBooleanKeyword="TSBooleanKeyword",Ke.TSCallSignatureDeclaration="TSCallSignatureDeclaration",Ke.TSClassImplements="TSClassImplements",Ke.TSConditionalType="TSConditionalType",Ke.TSConstructorType="TSConstructorType",Ke.TSConstructSignatureDeclaration="TSConstructSignatureDeclaration",Ke.TSDeclareFunction="TSDeclareFunction",Ke.TSDeclareKeyword="TSDeclareKeyword",Ke.TSEmptyBodyFunctionExpression="TSEmptyBodyFunctionExpression",Ke.TSEnumDeclaration="TSEnumDeclaration",Ke.TSEnumMember="TSEnumMember",Ke.TSExportAssignment="TSExportAssignment",Ke.TSExportKeyword="TSExportKeyword",Ke.TSExternalModuleReference="TSExternalModuleReference",Ke.TSFunctionType="TSFunctionType",Ke.TSInstantiationExpression="TSInstantiationExpression",Ke.TSImportEqualsDeclaration="TSImportEqualsDeclaration",Ke.TSImportType="TSImportType",Ke.TSIndexedAccessType="TSIndexedAccessType",Ke.TSIndexSignature="TSIndexSignature",Ke.TSInferType="TSInferType",Ke.TSInterfaceBody="TSInterfaceBody",Ke.TSInterfaceDeclaration="TSInterfaceDeclaration",Ke.TSInterfaceHeritage="TSInterfaceHeritage",Ke.TSIntersectionType="TSIntersectionType",Ke.TSIntrinsicKeyword="TSIntrinsicKeyword",Ke.TSLiteralType="TSLiteralType",Ke.TSMappedType="TSMappedType",Ke.TSMethodSignature="TSMethodSignature",Ke.TSModuleBlock="TSModuleBlock",Ke.TSModuleDeclaration="TSModuleDeclaration",Ke.TSNamedTupleMember="TSNamedTupleMember",Ke.TSNamespaceExportDeclaration="TSNamespaceExportDeclaration",Ke.TSNeverKeyword="TSNeverKeyword",Ke.TSNonNullExpression="TSNonNullExpression",Ke.TSNullKeyword="TSNullKeyword",Ke.TSNumberKeyword="TSNumberKeyword",Ke.TSObjectKeyword="TSObjectKeyword",Ke.TSOptionalType="TSOptionalType",Ke.TSParameterProperty="TSParameterProperty",Ke.TSPrivateKeyword="TSPrivateKeyword",Ke.TSPropertySignature="TSPropertySignature",Ke.TSProtectedKeyword="TSProtectedKeyword",Ke.TSPublicKeyword="TSPublicKeyword",Ke.TSQualifiedName="TSQualifiedName",Ke.TSReadonlyKeyword="TSReadonlyKeyword",Ke.TSRestType="TSRestType",Ke.TSStaticKeyword="TSStaticKeyword",Ke.TSStringKeyword="TSStringKeyword",Ke.TSSymbolKeyword="TSSymbolKeyword",Ke.TSTemplateLiteralType="TSTemplateLiteralType",Ke.TSThisType="TSThisType",Ke.TSTupleType="TSTupleType",Ke.TSTypeAliasDeclaration="TSTypeAliasDeclaration",Ke.TSTypeAnnotation="TSTypeAnnotation",Ke.TSTypeAssertion="TSTypeAssertion",Ke.TSTypeLiteral="TSTypeLiteral",Ke.TSTypeOperator="TSTypeOperator",Ke.TSTypeParameter="TSTypeParameter",Ke.TSTypeParameterDeclaration="TSTypeParameterDeclaration",Ke.TSTypeParameterInstantiation="TSTypeParameterInstantiation",Ke.TSTypePredicate="TSTypePredicate",Ke.TSTypeQuery="TSTypeQuery",Ke.TSTypeReference="TSTypeReference",Ke.TSUndefinedKeyword="TSUndefinedKeyword",Ke.TSUnionType="TSUnionType",Ke.TSUnknownKeyword="TSUnknownKeyword",Ke.TSVoidKeyword="TSVoidKeyword"})(re=M.AST_NODE_TYPES||(M.AST_NODE_TYPES={}));var Ve;(function(Ke){Ke.Boolean="Boolean",Ke.Identifier="Identifier",Ke.JSXIdentifier="JSXIdentifier",Ke.JSXText="JSXText",Ke.Keyword="Keyword",Ke.Null="Null",Ke.Numeric="Numeric",Ke.Punctuator="Punctuator",Ke.RegularExpression="RegularExpression",Ke.String="String",Ke.Template="Template",Ke.Block="Block",Ke.Line="Line"})(Ve=M.AST_TOKEN_TYPES||(M.AST_TOKEN_TYPES={}))}}),mU=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/lib.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0})}}),vU=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/parser-options.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0})}}),yU=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/ts-estree.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,dr,Lr){Lr===void 0&&(Lr=dr);var ar=Object.getOwnPropertyDescriptor(kr,dr);(!ar||("get"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[dr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,dr,Lr){Lr===void 0&&(Lr=dr),oi[Lr]=kr[dr]}),Ve=M&&M.__setModuleDefault||(Object.create?function(oi,kr){Object.defineProperty(oi,"default",{enumerable:!0,value:kr})}:function(oi,kr){oi.default=kr}),Ke=M&&M.__importStar||function(oi){if(oi&&oi.__esModule)return oi;var kr={};if(oi!=null)for(var dr in oi)dr!=="default"&&Object.prototype.hasOwnProperty.call(oi,dr)&&re(kr,oi,dr);return Ve(kr,oi),kr};Object.defineProperty(M,"__esModule",{value:!0}),M.TSESTree=void 0,M.TSESTree=Ke(X4())}}),Q4=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/index.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,dr,Lr){Lr===void 0&&(Lr=dr);var ar=Object.getOwnPropertyDescriptor(kr,dr);(!ar||("get"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[dr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,dr,Lr){Lr===void 0&&(Lr=dr),oi[Lr]=kr[dr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var dr in oi)dr!=="default"&&!Object.prototype.hasOwnProperty.call(kr,dr)&&re(kr,oi,dr)};Object.defineProperty(M,"__esModule",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=X4();Object.defineProperty(M,"AST_NODE_TYPES",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,"AST_TOKEN_TYPES",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Ve(mU(),M),Ve(vU(),M),Ve(yU(),M)}}),hU=wa({"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0})}}),DU=wa({"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=Q4()}}),k1=wa({"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,dr,Lr){Lr===void 0&&(Lr=dr);var ar=Object.getOwnPropertyDescriptor(kr,dr);(!ar||("get"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[dr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,dr,Lr){Lr===void 0&&(Lr=dr),oi[Lr]=kr[dr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var dr in oi)dr!=="default"&&!Object.prototype.hasOwnProperty.call(kr,dr)&&re(kr,oi,dr)};Object.defineProperty(M,"__esModule",{value:!0}),M.TSESTree=M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=Q4();Object.defineProperty(M,"AST_NODE_TYPES",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,"AST_TOKEN_TYPES",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Object.defineProperty(M,"TSESTree",{enumerable:!0,get:function(){return Ke.TSESTree}}),Ve(hU(),M),Ve(DU(),M)}}),bU=wa({"node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.xhtmlEntities=void 0,M.xhtmlEntities={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",lang:"\u2329",rang:"\u232A",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"}}}),A1=wa({"node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(V,L,P,k){k===void 0&&(k=P);var Y=Object.getOwnPropertyDescriptor(L,P);(!Y||("get"in Y?!L.__esModule:Y.writable||Y.configurable))&&(Y={enumerable:!0,get:function(){return L[P]}}),Object.defineProperty(V,k,Y)}:function(V,L,P,k){k===void 0&&(k=P),V[k]=L[P]}),Ve=M&&M.__setModuleDefault||(Object.create?function(V,L){Object.defineProperty(V,"default",{enumerable:!0,value:L})}:function(V,L){V.default=L}),Ke=M&&M.__importStar||function(V){if(V&&V.__esModule)return V;var L={};if(V!=null)for(var P in V)P!=="default"&&Object.prototype.hasOwnProperty.call(V,P)&&re(L,V,P);return Ve(L,V),L};Object.defineProperty(M,"__esModule",{value:!0}),M.firstDefined=M.nodeHasTokens=M.createError=M.TSError=M.convertTokens=M.convertToken=M.getTokenType=M.isChildUnwrappableOptionalChain=M.isChainExpression=M.isOptional=M.isComputedProperty=M.unescapeStringLiteralText=M.hasJSXAncestor=M.findFirstMatchingAncestor=M.findNextToken=M.getTSNodeAccessibility=M.getDeclarationKind=M.isJSXToken=M.isToken=M.getRange=M.canContainDirective=M.getLocFor=M.getLineAndCharacterFor=M.getBinaryExpressionType=M.isJSDocComment=M.isComment=M.isComma=M.getLastModifier=M.hasModifier=M.isESTreeClassMember=M.getTextForTokenKind=M.isLogicalOperator=M.isAssignmentOperator=void 0;var oi=Ke(_u()),kr=k1(),dr=bU(),Lr=oi.SyntaxKind,ar=[Lr.BarBarToken,Lr.AmpersandAmpersandToken,Lr.QuestionQuestionToken];function ke(V){return V.kind>=Lr.FirstAssignment&&V.kind<=Lr.LastAssignment}M.isAssignmentOperator=ke;function e(V){return ar.includes(V.kind)}M.isLogicalOperator=e;function a(V){return oi.tokenToString(V)}M.getTextForTokenKind=a;function C(V){return V.kind!==Lr.SemicolonClassElement}M.isESTreeClassMember=C;function I(V,L){return!!L.modifiers&&!!L.modifiers.length&&L.modifiers.some(P=>P.kind===V)}M.hasModifier=I;function R(V){return!!V.modifiers&&!!V.modifiers.length&&V.modifiers[V.modifiers.length-1]||null}M.getLastModifier=R;function E(V){return V.kind===Lr.CommaToken}M.isComma=E;function X(V){return V.kind===Lr.SingleLineCommentTrivia||V.kind===Lr.MultiLineCommentTrivia}M.isComment=X;function le(V){return V.kind===Lr.JSDocComment}M.isJSDocComment=le;function N(V){return ke(V)?kr.AST_NODE_TYPES.AssignmentExpression:e(V)?kr.AST_NODE_TYPES.LogicalExpression:kr.AST_NODE_TYPES.BinaryExpression}M.getBinaryExpressionType=N;function p(V,L){let P=L.getLineAndCharacterOfPosition(V);return{line:P.line+1,column:P.character}}M.getLineAndCharacterFor=p;function m(V,L,P){return{start:p(V,P),end:p(L,P)}}M.getLocFor=m;function G(V){if(V.kind===oi.SyntaxKind.Block)switch(V.parent.kind){case oi.SyntaxKind.Constructor:case oi.SyntaxKind.GetAccessor:case oi.SyntaxKind.SetAccessor:case oi.SyntaxKind.ArrowFunction:case oi.SyntaxKind.FunctionExpression:case oi.SyntaxKind.FunctionDeclaration:case oi.SyntaxKind.MethodDeclaration:return!0;default:return!1}return!0}M.canContainDirective=G;function oe(V,L){return[V.getStart(L),V.getEnd()]}M.getRange=oe;function f(V){return V.kind>=Lr.FirstToken&&V.kind<=Lr.LastToken}M.isToken=f;function T(V){return V.kind>=Lr.JsxElement&&V.kind<=Lr.JsxAttribute}M.isJSXToken=T;function K(V){return V.flags&oi.NodeFlags.Let?"let":V.flags&oi.NodeFlags.Const?"const":"var"}M.getDeclarationKind=K;function b(V){let L=V.modifiers;if(!L)return null;for(let P of L)switch(P.kind){case Lr.PublicKeyword:return"public";case Lr.ProtectedKeyword:return"protected";case Lr.PrivateKeyword:return"private";default:break}return null}M.getTSNodeAccessibility=b;function se(V,L,P){return k(L);function k(Y){return oi.isToken(Y)&&Y.pos===V.end?Y:y(Y.getChildren(P),U=>(U.pos<=V.pos&&U.end>V.end||U.pos===V.end)&&A(U,P)?k(U):void 0)}}M.findNextToken=se;function J(V,L){for(;V;){if(L(V))return V;V=V.parent}}M.findFirstMatchingAncestor=J;function ie(V){return!!J(V,T)}M.hasJSXAncestor=ie;function B(V){return V.replace(/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g,L=>{let P=L.slice(1,-1);if(P[0]==="#"){let k=P[1]==="x"?parseInt(P.slice(2),16):parseInt(P.slice(1),10);return k>1114111?L:String.fromCodePoint(k)}return dr.xhtmlEntities[P]||L})}M.unescapeStringLiteralText=B;function q(V){return V.kind===Lr.ComputedPropertyName}M.isComputedProperty=q;function O(V){return V.questionToken?V.questionToken.kind===Lr.QuestionToken:!1}M.isOptional=O;function ve(V){return V.type===kr.AST_NODE_TYPES.ChainExpression}M.isChainExpression=ve;function ee(V,L){return ve(L)&&V.expression.kind!==oi.SyntaxKind.ParenthesizedExpression}M.isChildUnwrappableOptionalChain=ee;function he(V){if("originalKeywordKind"in V&&V.originalKeywordKind)return V.originalKeywordKind===Lr.NullKeyword?kr.AST_TOKEN_TYPES.Null:V.originalKeywordKind>=Lr.FirstFutureReservedWord&&V.originalKeywordKind<=Lr.LastKeyword?kr.AST_TOKEN_TYPES.Identifier:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstKeyword&&V.kind<=Lr.LastFutureReservedWord)return V.kind===Lr.FalseKeyword||V.kind===Lr.TrueKeyword?kr.AST_TOKEN_TYPES.Boolean:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstPunctuation&&V.kind<=Lr.LastPunctuation)return kr.AST_TOKEN_TYPES.Punctuator;if(V.kind>=Lr.NoSubstitutionTemplateLiteral&&V.kind<=Lr.TemplateTail)return kr.AST_TOKEN_TYPES.Template;switch(V.kind){case Lr.NumericLiteral:return kr.AST_TOKEN_TYPES.Numeric;case Lr.JsxText:return kr.AST_TOKEN_TYPES.JSXText;case Lr.StringLiteral:return V.parent&&(V.parent.kind===Lr.JsxAttribute||V.parent.kind===Lr.JsxElement)?kr.AST_TOKEN_TYPES.JSXText:kr.AST_TOKEN_TYPES.String;case Lr.RegularExpressionLiteral:return kr.AST_TOKEN_TYPES.RegularExpression;case Lr.Identifier:case Lr.ConstructorKeyword:case Lr.GetKeyword:case Lr.SetKeyword:default:}return V.parent&&V.kind===Lr.Identifier&&(T(V.parent)||V.parent.kind===Lr.PropertyAccessExpression&&ie(V))?kr.AST_TOKEN_TYPES.JSXIdentifier:kr.AST_TOKEN_TYPES.Identifier}M.getTokenType=he;function F(V,L){let P=V.kind===Lr.JsxText?V.getFullStart():V.getStart(L),k=V.getEnd(),Y=L.text.slice(P,k),U=he(V);return U===kr.AST_TOKEN_TYPES.RegularExpression?{type:U,value:Y,range:[P,k],loc:m(P,k,L),regex:{pattern:Y.slice(1,Y.lastIndexOf("/")),flags:Y.slice(Y.lastIndexOf("/")+1)}}:{type:U,value:Y,range:[P,k],loc:m(P,k,L)}}M.convertToken=F;function x(V){let L=[];function P(k){if(!(X(k)||le(k)))if(f(k)&&k.kind!==Lr.EndOfFileToken){let Y=F(k,V);Y&&L.push(Y)}else k.getChildren(V).forEach(P)}return P(V),L}M.convertTokens=x;var Q=class extends Error{constructor(V,L,P,k,Y){super(V),this.fileName=L,this.index=P,this.lineNumber=k,this.column=Y,Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0})}};M.TSError=Q;function $(V,L,P){let k=V.getLineAndCharacterOfPosition(L);return new Q(P,V.fileName,L,k.line+1,k.character)}M.createError=$;function A(V,L){return V.kind===Lr.EndOfFileToken?!!V.jsDoc:V.getWidth(L)!==0}M.nodeHasTokens=A;function y(V,L){if(V!==void 0)for(let P=0;P{let E=this.convertChild(R);if(I)if((E==null?void 0:E.expression)&&oi.isExpressionStatement(R)&&oi.isStringLiteral(R.expression)){let X=E.expression.raw;return E.directive=X.slice(1,-1),E}else I=!1;return E}).filter(R=>R)}convertTypeArgumentsToTypeParameters(a,C){let I=(0,kr.findNextToken)(a,this.ast,this.ast);return this.createNode(C,{type:dr.AST_NODE_TYPES.TSTypeParameterInstantiation,range:[a.pos-1,I.end],params:a.map(R=>this.convertType(R))})}convertTSTypeParametersToTypeParametersDeclaration(a){let C=(0,kr.findNextToken)(a,this.ast,this.ast);return{type:dr.AST_NODE_TYPES.TSTypeParameterDeclaration,range:[a.pos-1,C.end],loc:(0,kr.getLocFor)(a.pos-1,C.end,this.ast),params:a.map(I=>this.convertType(I))}}convertParameters(a){return!a||!a.length?[]:a.map(C=>{var I;let R=this.convertChild(C);return!((I=C.decorators)===null||I===void 0)&&I.length&&(R.decorators=C.decorators.map(E=>this.convertChild(E))),R})}convertChainExpression(a,C){let{child:I,isOptional:R}=(()=>a.type===dr.AST_NODE_TYPES.MemberExpression?{child:a.object,isOptional:a.optional}:a.type===dr.AST_NODE_TYPES.CallExpression?{child:a.callee,isOptional:a.optional}:{child:a.expression,isOptional:!1})(),E=(0,kr.isChildUnwrappableOptionalChain)(C,I);if(!E&&!R)return a;if(E&&(0,kr.isChainExpression)(I)){let X=I.expression;a.type===dr.AST_NODE_TYPES.MemberExpression?a.object=X:a.type===dr.AST_NODE_TYPES.CallExpression?a.callee=X:a.expression=X}return this.createNode(C,{type:dr.AST_NODE_TYPES.ChainExpression,expression:a})}deeplyCopy(a){if(a.kind===oi.SyntaxKind.JSDocFunctionType)throw(0,kr.createError)(this.ast,a.pos,"JSDoc types can only be used inside documentation comments.");let C="TS".concat(ar[a.kind]);if(this.options.errorOnUnknownASTType&&!dr.AST_NODE_TYPES[C])throw new Error('Unknown AST_NODE_TYPE: "'.concat(C,'"'));let I=this.createNode(a,{type:C});return"type"in a&&(I.typeAnnotation=a.type&&"kind"in a.type&&oi.isTypeNode(a.type)?this.convertTypeAnnotation(a.type,a):null),"typeArguments"in a&&(I.typeParameters=a.typeArguments&&"pos"in a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null),"typeParameters"in a&&(I.typeParameters=a.typeParameters&&"pos"in a.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters):null),"decorators"in a&&a.decorators&&a.decorators.length&&(I.decorators=a.decorators.map(R=>this.convertChild(R))),Object.entries(a).filter(R=>{let[E]=R;return!/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators|transformFlags)$/.test(E)}).forEach(R=>{let[E,X]=R;Array.isArray(X)?I[E]=X.map(le=>this.convertChild(le)):X&&typeof X=="object"&&X.kind?I[E]=this.convertChild(X):I[E]=X}),I}convertJSXIdentifier(a){let C=this.createNode(a,{type:dr.AST_NODE_TYPES.JSXIdentifier,name:a.getText()});return this.registerTSNodeInNodeMap(a,C),C}convertJSXNamespaceOrIdentifier(a){let C=a.getText(),I=C.indexOf(":");if(I>0){let R=(0,kr.getRange)(a,this.ast),E=this.createNode(a,{type:dr.AST_NODE_TYPES.JSXNamespacedName,namespace:this.createNode(a,{type:dr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(0,I),range:[R[0],R[0]+I]}),name:this.createNode(a,{type:dr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(I+1),range:[R[0]+I+1,R[1]]}),range:R});return this.registerTSNodeInNodeMap(a,E),E}return this.convertJSXIdentifier(a)}convertJSXTagName(a,C){let I;switch(a.kind){case ar.PropertyAccessExpression:if(a.name.kind===ar.PrivateIdentifier)throw new Error("Non-private identifier expected.");I=this.createNode(a,{type:dr.AST_NODE_TYPES.JSXMemberExpression,object:this.convertJSXTagName(a.expression,C),property:this.convertJSXIdentifier(a.name)});break;case ar.ThisKeyword:case ar.Identifier:default:return this.convertJSXNamespaceOrIdentifier(a)}return this.registerTSNodeInNodeMap(a,I),I}convertMethodSignature(a){let C=this.createNode(a,{type:dr.AST_NODE_TYPES.TSMethodSignature,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),params:this.convertParameters(a.parameters),kind:(()=>{switch(a.kind){case ar.GetAccessor:return"get";case ar.SetAccessor:return"set";case ar.MethodSignature:return"method"}})()});(0,kr.isOptional)(a)&&(C.optional=!0),a.type&&(C.returnType=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(C.readonly=!0),a.typeParameters&&(C.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters));let I=(0,kr.getTSNodeAccessibility)(a);return I&&(C.accessibility=I),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(C.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(C.static=!0),C}convertAssertClasue(a){return a===void 0?[]:a.elements.map(C=>this.convertChild(C))}applyModifiersToResult(a,C){if(!C||!C.length)return;let I=[];for(let R of C)switch(R.kind){case ar.ExportKeyword:case ar.DefaultKeyword:break;case ar.ConstKeyword:a.const=!0;break;case ar.DeclareKeyword:a.declare=!0;break;default:I.push(this.convertChild(R));break}I.length&&(a.modifiers=I)}fixParentLocation(a,C){C[0]a.range[1]&&(a.range[1]=C[1],a.loc.end=(0,kr.getLineAndCharacterFor)(a.range[1],this.ast))}assertModuleSpecifier(a,C){var I;if(!C&&a.moduleSpecifier==null)throw(0,kr.createError)(this.ast,a.pos,"Module specifier must be a string literal.");if(a.moduleSpecifier&&((I=a.moduleSpecifier)===null||I===void 0?void 0:I.kind)!==ar.StringLiteral)throw(0,kr.createError)(this.ast,a.moduleSpecifier.pos,"Module specifier must be a string literal.")}convertNode(a,C){var I,R,E,X,le,N,p,m,G,oe;switch(a.kind){case ar.SourceFile:return this.createNode(a,{type:dr.AST_NODE_TYPES.Program,body:this.convertBodyExpressions(a.statements,a),sourceType:a.externalModuleIndicator?"module":"script",range:[a.getStart(this.ast),a.endOfFileToken.end]});case ar.Block:return this.createNode(a,{type:dr.AST_NODE_TYPES.BlockStatement,body:this.convertBodyExpressions(a.statements,a)});case ar.Identifier:return this.createNode(a,{type:dr.AST_NODE_TYPES.Identifier,name:a.text});case ar.PrivateIdentifier:return this.createNode(a,{type:dr.AST_NODE_TYPES.PrivateIdentifier,name:a.text.slice(1)});case ar.WithStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.WithStatement,object:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ReturnStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.ReturnStatement,argument:this.convertChild(a.expression)});case ar.LabeledStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.LabeledStatement,label:this.convertChild(a.label),body:this.convertChild(a.statement)});case ar.ContinueStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.ContinueStatement,label:this.convertChild(a.label)});case ar.BreakStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.BreakStatement,label:this.convertChild(a.label)});case ar.IfStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.IfStatement,test:this.convertChild(a.expression),consequent:this.convertChild(a.thenStatement),alternate:this.convertChild(a.elseStatement)});case ar.SwitchStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.SwitchStatement,discriminant:this.convertChild(a.expression),cases:a.caseBlock.clauses.map(f=>this.convertChild(f))});case ar.CaseClause:case ar.DefaultClause:return this.createNode(a,{type:dr.AST_NODE_TYPES.SwitchCase,test:a.kind===ar.CaseClause?this.convertChild(a.expression):null,consequent:a.statements.map(f=>this.convertChild(f))});case ar.ThrowStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.ThrowStatement,argument:this.convertChild(a.expression)});case ar.TryStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.TryStatement,block:this.convertChild(a.tryBlock),handler:this.convertChild(a.catchClause),finalizer:this.convertChild(a.finallyBlock)});case ar.CatchClause:return this.createNode(a,{type:dr.AST_NODE_TYPES.CatchClause,param:a.variableDeclaration?this.convertBindingNameWithTypeAnnotation(a.variableDeclaration.name,a.variableDeclaration.type):null,body:this.convertChild(a.block)});case ar.WhileStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.WhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.DoStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.DoWhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.ForStatement,init:this.convertChild(a.initializer),test:this.convertChild(a.condition),update:this.convertChild(a.incrementor),body:this.convertChild(a.statement)});case ar.ForInStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.ForInStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForOfStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.ForOfStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement),await:Boolean(a.awaitModifier&&a.awaitModifier.kind===ar.AwaitKeyword)});case ar.FunctionDeclaration:{let f=(0,kr.hasModifier)(ar.DeclareKeyword,a),T=this.createNode(a,{type:f||!a.body?dr.AST_NODE_TYPES.TSDeclareFunction:dr.AST_NODE_TYPES.FunctionDeclaration,id:this.convertChild(a.name),generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),params:this.convertParameters(a.parameters),body:this.convertChild(a.body)||void 0});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f&&(T.declare=!0),this.fixExports(a,T)}case ar.VariableDeclaration:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.VariableDeclarator,id:this.convertBindingNameWithTypeAnnotation(a.name,a.type,a),init:this.convertChild(a.initializer)});return a.exclamationToken&&(f.definite=!0),f}case ar.VariableStatement:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarationList.declarations.map(T=>this.convertChild(T)),kind:(0,kr.getDeclarationKind)(a.declarationList)});return a.decorators&&(f.decorators=a.decorators.map(T=>this.convertChild(T))),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),this.fixExports(a,f)}case ar.VariableDeclarationList:return this.createNode(a,{type:dr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarations.map(f=>this.convertChild(f)),kind:(0,kr.getDeclarationKind)(a)});case ar.ExpressionStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.ExpressionStatement,expression:this.convertChild(a.expression)});case ar.ThisKeyword:return this.createNode(a,{type:dr.AST_NODE_TYPES.ThisExpression});case ar.ArrayLiteralExpression:return this.allowPattern?this.createNode(a,{type:dr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))}):this.createNode(a,{type:dr.AST_NODE_TYPES.ArrayExpression,elements:a.elements.map(f=>this.convertChild(f))});case ar.ObjectLiteralExpression:return this.allowPattern?this.createNode(a,{type:dr.AST_NODE_TYPES.ObjectPattern,properties:a.properties.map(f=>this.convertPattern(f))}):this.createNode(a,{type:dr.AST_NODE_TYPES.ObjectExpression,properties:a.properties.map(f=>this.convertChild(f))});case ar.PropertyAssignment:return this.createNode(a,{type:dr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.converter(a.initializer,a,this.inTypeMode,this.allowPattern),computed:(0,kr.isComputedProperty)(a.name),method:!1,shorthand:!1,kind:"init"});case ar.ShorthandPropertyAssignment:return a.objectAssignmentInitializer?this.createNode(a,{type:dr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.createNode(a,{type:dr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.name),right:this.convertChild(a.objectAssignmentInitializer)}),computed:!1,method:!1,shorthand:!0,kind:"init"}):this.createNode(a,{type:dr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.convertChild(a.name),computed:!1,method:!1,shorthand:!0,kind:"init"});case ar.ComputedPropertyName:return this.convertChild(a.expression);case ar.PropertyDeclaration:{let f=(0,kr.hasModifier)(ar.AbstractKeyword,a),T=this.createNode(a,{type:f?dr.AST_NODE_TYPES.TSAbstractPropertyDefinition:dr.AST_NODE_TYPES.PropertyDefinition,key:this.convertChild(a.name),value:f?null:this.convertChild(a.initializer),computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,declare:(0,kr.hasModifier)(ar.DeclareKeyword,a),override:(0,kr.hasModifier)(ar.OverrideKeyword,a)});a.type&&(T.typeAnnotation=this.convertTypeAnnotation(a.type,a)),a.decorators&&(T.decorators=a.decorators.map(b=>this.convertChild(b)));let K=(0,kr.getTSNodeAccessibility)(a);return K&&(T.accessibility=K),(a.name.kind===ar.Identifier||a.name.kind===ar.ComputedPropertyName||a.name.kind===ar.PrivateIdentifier)&&a.questionToken&&(T.optional=!0),a.exclamationToken&&(T.definite=!0),T.key.type===dr.AST_NODE_TYPES.Literal&&a.questionToken&&(T.optional=!0),T}case ar.GetAccessor:case ar.SetAccessor:if(a.parent.kind===ar.InterfaceDeclaration||a.parent.kind===ar.TypeLiteral)return this.convertMethodSignature(a);case ar.MethodDeclaration:{let f=this.createNode(a,{type:a.body?dr.AST_NODE_TYPES.FunctionExpression:dr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end],params:[]});a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(f,f.typeParameters.range));let T;if(C.kind===ar.ObjectLiteralExpression)f.params=a.parameters.map(K=>this.convertChild(K)),T=this.createNode(a,{type:dr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),method:a.kind===ar.MethodDeclaration,shorthand:!1,kind:"init"});else{f.params=this.convertParameters(a.parameters);let K=(0,kr.hasModifier)(ar.AbstractKeyword,a)?dr.AST_NODE_TYPES.TSAbstractMethodDefinition:dr.AST_NODE_TYPES.MethodDefinition;T=this.createNode(a,{type:K,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),kind:"method",override:(0,kr.hasModifier)(ar.OverrideKeyword,a)}),a.decorators&&(T.decorators=a.decorators.map(se=>this.convertChild(se)));let b=(0,kr.getTSNodeAccessibility)(a);b&&(T.accessibility=b)}return a.questionToken&&(T.optional=!0),a.kind===ar.GetAccessor?T.kind="get":a.kind===ar.SetAccessor?T.kind="set":!T.static&&a.name.kind===ar.StringLiteral&&a.name.text==="constructor"&&T.type!==dr.AST_NODE_TYPES.Property&&(T.kind="constructor"),T}case ar.Constructor:{let f=(0,kr.getLastModifier)(a),T=f&&(0,kr.findNextToken)(f,a,this.ast)||a.getFirstToken(),K=this.createNode(a,{type:a.body?dr.AST_NODE_TYPES.FunctionExpression:dr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,params:this.convertParameters(a.parameters),generator:!1,expression:!1,async:!1,body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end]});a.typeParameters&&(K.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(K,K.typeParameters.range)),a.type&&(K.returnType=this.convertTypeAnnotation(a.type,a));let b=this.createNode(a,{type:dr.AST_NODE_TYPES.Identifier,name:"constructor",range:[T.getStart(this.ast),T.end]}),se=(0,kr.hasModifier)(ar.StaticKeyword,a),J=this.createNode(a,{type:(0,kr.hasModifier)(ar.AbstractKeyword,a)?dr.AST_NODE_TYPES.TSAbstractMethodDefinition:dr.AST_NODE_TYPES.MethodDefinition,key:b,value:K,computed:!1,static:se,kind:se?"method":"constructor",override:!1}),ie=(0,kr.getTSNodeAccessibility)(a);return ie&&(J.accessibility=ie),J}case ar.FunctionExpression:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.FunctionExpression,id:this.convertChild(a.name),generator:!!a.asteriskToken,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:!1});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.SuperKeyword:return this.createNode(a,{type:dr.AST_NODE_TYPES.Super});case ar.ArrayBindingPattern:return this.createNode(a,{type:dr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))});case ar.OmittedExpression:return null;case ar.ObjectBindingPattern:return this.createNode(a,{type:dr.AST_NODE_TYPES.ObjectPattern,properties:a.elements.map(f=>this.convertPattern(f))});case ar.BindingElement:if(C.kind===ar.ArrayBindingPattern){let f=this.convertChild(a.name,C);return a.initializer?this.createNode(a,{type:dr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}):a.dotDotDotToken?this.createNode(a,{type:dr.AST_NODE_TYPES.RestElement,argument:f}):f}else{let f;return a.dotDotDotToken?f=this.createNode(a,{type:dr.AST_NODE_TYPES.RestElement,argument:this.convertChild((I=a.propertyName)!==null&&I!==void 0?I:a.name)}):f=this.createNode(a,{type:dr.AST_NODE_TYPES.Property,key:this.convertChild((R=a.propertyName)!==null&&R!==void 0?R:a.name),value:this.convertChild(a.name),computed:Boolean(a.propertyName&&a.propertyName.kind===ar.ComputedPropertyName),method:!1,shorthand:!a.propertyName,kind:"init"}),a.initializer&&(f.value=this.createNode(a,{type:dr.AST_NODE_TYPES.AssignmentPattern,left:this.convertChild(a.name),right:this.convertChild(a.initializer),range:[a.name.getStart(this.ast),a.initializer.end]})),f}case ar.ArrowFunction:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.ArrowFunctionExpression,generator:!1,id:null,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:a.body.kind!==ar.Block});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.YieldExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.YieldExpression,delegate:!!a.asteriskToken,argument:this.convertChild(a.expression)});case ar.AwaitExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.AwaitExpression,argument:this.convertChild(a.expression)});case ar.NoSubstitutionTemplateLiteral:return this.createNode(a,{type:dr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.createNode(a,{type:dr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-1),cooked:a.text},tail:!0})],expressions:[]});case ar.TemplateExpression:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.convertChild(a.head)],expressions:[]});return a.templateSpans.forEach(T=>{f.expressions.push(this.convertChild(T.expression)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.TaggedTemplateExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.TaggedTemplateExpression,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,tag:this.convertChild(a.tag),quasi:this.convertChild(a.template)});case ar.TemplateHead:case ar.TemplateMiddle:case ar.TemplateTail:{let f=a.kind===ar.TemplateTail;return this.createNode(a,{type:dr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-(f?1:2)),cooked:a.text},tail:f})}case ar.SpreadAssignment:case ar.SpreadElement:return this.allowPattern?this.createNode(a,{type:dr.AST_NODE_TYPES.RestElement,argument:this.convertPattern(a.expression)}):this.createNode(a,{type:dr.AST_NODE_TYPES.SpreadElement,argument:this.convertChild(a.expression)});case ar.Parameter:{let f,T;return a.dotDotDotToken?f=T=this.createNode(a,{type:dr.AST_NODE_TYPES.RestElement,argument:this.convertChild(a.name)}):a.initializer?(f=this.convertChild(a.name),T=this.createNode(a,{type:dr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}),a.modifiers&&(T.range[0]=f.range[0],T.loc=(0,kr.getLocFor)(T.range[0],T.range[1],this.ast))):f=T=this.convertChild(a.name,C),a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),this.fixParentLocation(f,f.typeAnnotation.range)),a.questionToken&&(a.questionToken.end>f.range[1]&&(f.range[1]=a.questionToken.end,f.loc.end=(0,kr.getLineAndCharacterFor)(f.range[1],this.ast)),f.optional=!0),a.modifiers?this.createNode(a,{type:dr.AST_NODE_TYPES.TSParameterProperty,accessibility:(E=(0,kr.getTSNodeAccessibility)(a))!==null&&E!==void 0?E:void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0,override:(0,kr.hasModifier)(ar.OverrideKeyword,a)||void 0,parameter:T}):T}case ar.ClassDeclaration:case ar.ClassExpression:{let f=(X=a.heritageClauses)!==null&&X!==void 0?X:[],T=a.kind===ar.ClassDeclaration?dr.AST_NODE_TYPES.ClassDeclaration:dr.AST_NODE_TYPES.ClassExpression,K=f.find(ie=>ie.token===ar.ExtendsKeyword),b=f.find(ie=>ie.token===ar.ImplementsKeyword),se=this.createNode(a,{type:T,id:this.convertChild(a.name),body:this.createNode(a,{type:dr.AST_NODE_TYPES.ClassBody,body:[],range:[a.members.pos-1,a.end]}),superClass:K!=null&&K.types[0]?this.convertChild(K.types[0].expression):null});if(K){if(K.types.length>1)throw(0,kr.createError)(this.ast,K.types[1].pos,"Classes can only extend a single class.");!((le=K.types[0])===null||le===void 0)&&le.typeArguments&&(se.superTypeParameters=this.convertTypeArgumentsToTypeParameters(K.types[0].typeArguments,K.types[0]))}a.typeParameters&&(se.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),b&&(se.implements=b.types.map(ie=>this.convertChild(ie))),(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(se.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(se.declare=!0),a.decorators&&(se.decorators=a.decorators.map(ie=>this.convertChild(ie)));let J=a.members.filter(kr.isESTreeClassMember);return J.length&&(se.body.body=J.map(ie=>this.convertChild(ie))),this.fixExports(a,se)}case ar.ModuleBlock:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSModuleBlock,body:this.convertBodyExpressions(a.statements,a)});case ar.ImportDeclaration:{this.assertModuleSpecifier(a,!1);let f=this.createNode(a,{type:dr.AST_NODE_TYPES.ImportDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:[],importKind:"value",assertions:this.convertAssertClasue(a.assertClause)});if(a.importClause&&(a.importClause.isTypeOnly&&(f.importKind="type"),a.importClause.name&&f.specifiers.push(this.convertChild(a.importClause)),a.importClause.namedBindings))switch(a.importClause.namedBindings.kind){case ar.NamespaceImport:f.specifiers.push(this.convertChild(a.importClause.namedBindings));break;case ar.NamedImports:f.specifiers=f.specifiers.concat(a.importClause.namedBindings.elements.map(T=>this.convertChild(T)));break}return f}case ar.NamespaceImport:return this.createNode(a,{type:dr.AST_NODE_TYPES.ImportNamespaceSpecifier,local:this.convertChild(a.name)});case ar.ImportSpecifier:return this.createNode(a,{type:dr.AST_NODE_TYPES.ImportSpecifier,local:this.convertChild(a.name),imported:this.convertChild((N=a.propertyName)!==null&&N!==void 0?N:a.name),importKind:a.isTypeOnly?"type":"value"});case ar.ImportClause:{let f=this.convertChild(a.name);return this.createNode(a,{type:dr.AST_NODE_TYPES.ImportDefaultSpecifier,local:f,range:f.range})}case ar.ExportDeclaration:return((p=a.exportClause)===null||p===void 0?void 0:p.kind)===ar.NamedExports?(this.assertModuleSpecifier(a,!0),this.createNode(a,{type:dr.AST_NODE_TYPES.ExportNamedDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:a.exportClause.elements.map(f=>this.convertChild(f)),exportKind:a.isTypeOnly?"type":"value",declaration:null,assertions:this.convertAssertClasue(a.assertClause)})):(this.assertModuleSpecifier(a,!1),this.createNode(a,{type:dr.AST_NODE_TYPES.ExportAllDeclaration,source:this.convertChild(a.moduleSpecifier),exportKind:a.isTypeOnly?"type":"value",exported:a.exportClause&&a.exportClause.kind===ar.NamespaceExport?this.convertChild(a.exportClause.name):null,assertions:this.convertAssertClasue(a.assertClause)}));case ar.ExportSpecifier:return this.createNode(a,{type:dr.AST_NODE_TYPES.ExportSpecifier,local:this.convertChild((m=a.propertyName)!==null&&m!==void 0?m:a.name),exported:this.convertChild(a.name),exportKind:a.isTypeOnly?"type":"value"});case ar.ExportAssignment:return a.isExportEquals?this.createNode(a,{type:dr.AST_NODE_TYPES.TSExportAssignment,expression:this.convertChild(a.expression)}):this.createNode(a,{type:dr.AST_NODE_TYPES.ExportDefaultDeclaration,declaration:this.convertChild(a.expression),exportKind:"value"});case ar.PrefixUnaryExpression:case ar.PostfixUnaryExpression:{let f=(0,kr.getTextForTokenKind)(a.operator);return f==="++"||f==="--"?this.createNode(a,{type:dr.AST_NODE_TYPES.UpdateExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)}):this.createNode(a,{type:dr.AST_NODE_TYPES.UnaryExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)})}case ar.DeleteExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.UnaryExpression,operator:"delete",prefix:!0,argument:this.convertChild(a.expression)});case ar.VoidExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.UnaryExpression,operator:"void",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOfExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.UnaryExpression,operator:"typeof",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOperator:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypeOperator,operator:(0,kr.getTextForTokenKind)(a.operator),typeAnnotation:this.convertChild(a.type)});case ar.BinaryExpression:if((0,kr.isComma)(a.operatorToken)){let f=this.createNode(a,{type:dr.AST_NODE_TYPES.SequenceExpression,expressions:[]}),T=this.convertChild(a.left);return T.type===dr.AST_NODE_TYPES.SequenceExpression&&a.left.kind!==ar.ParenthesizedExpression?f.expressions=f.expressions.concat(T.expressions):f.expressions.push(T),f.expressions.push(this.convertChild(a.right)),f}else{let f=(0,kr.getBinaryExpressionType)(a.operatorToken);return this.allowPattern&&f===dr.AST_NODE_TYPES.AssignmentExpression?this.createNode(a,{type:dr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.left,a),right:this.convertChild(a.right)}):this.createNode(a,{type:f,operator:(0,kr.getTextForTokenKind)(a.operatorToken.kind),left:this.converter(a.left,a,this.inTypeMode,f===dr.AST_NODE_TYPES.AssignmentExpression),right:this.convertChild(a.right)})}case ar.PropertyAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.name),K=!1,b=this.createNode(a,{type:dr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.ElementAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.argumentExpression),K=!0,b=this.createNode(a,{type:dr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.CallExpression:{if(a.expression.kind===ar.ImportKeyword){if(a.arguments.length!==1&&a.arguments.length!==2)throw(0,kr.createError)(this.ast,a.arguments.pos,"Dynamic import requires exactly one or two arguments.");return this.createNode(a,{type:dr.AST_NODE_TYPES.ImportExpression,source:this.convertChild(a.arguments[0]),attributes:a.arguments[1]?this.convertChild(a.arguments[1]):null})}let f=this.convertChild(a.expression),T=a.arguments.map(b=>this.convertChild(b)),K=this.createNode(a,{type:dr.AST_NODE_TYPES.CallExpression,callee:f,arguments:T,optional:a.questionDotToken!==void 0});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),this.convertChainExpression(K,a)}case ar.NewExpression:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.NewExpression,callee:this.convertChild(a.expression),arguments:a.arguments?a.arguments.map(T=>this.convertChild(T)):[]});return a.typeArguments&&(f.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),f}case ar.ConditionalExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.ConditionalExpression,test:this.convertChild(a.condition),consequent:this.convertChild(a.whenTrue),alternate:this.convertChild(a.whenFalse)});case ar.MetaProperty:return this.createNode(a,{type:dr.AST_NODE_TYPES.MetaProperty,meta:this.createNode(a.getFirstToken(),{type:dr.AST_NODE_TYPES.Identifier,name:(0,kr.getTextForTokenKind)(a.keywordToken)}),property:this.convertChild(a.name)});case ar.Decorator:return this.createNode(a,{type:dr.AST_NODE_TYPES.Decorator,expression:this.convertChild(a.expression)});case ar.StringLiteral:return this.createNode(a,{type:dr.AST_NODE_TYPES.Literal,value:C.kind===ar.JsxAttribute?(0,kr.unescapeStringLiteralText)(a.text):a.text,raw:a.getText()});case ar.NumericLiteral:return this.createNode(a,{type:dr.AST_NODE_TYPES.Literal,value:Number(a.text),raw:a.getText()});case ar.BigIntLiteral:{let f=(0,kr.getRange)(a,this.ast),T=this.ast.text.slice(f[0],f[1]),K=T.slice(0,-1).replace(/_/g,""),b=typeof BigInt<"u"?BigInt(K):null;return this.createNode(a,{type:dr.AST_NODE_TYPES.Literal,raw:T,value:b,bigint:b===null?K:String(b),range:f})}case ar.RegularExpressionLiteral:{let f=a.text.slice(1,a.text.lastIndexOf("/")),T=a.text.slice(a.text.lastIndexOf("/")+1),K=null;try{K=new RegExp(f,T)}catch{K=null}return this.createNode(a,{type:dr.AST_NODE_TYPES.Literal,value:K,raw:a.text,regex:{pattern:f,flags:T}})}case ar.TrueKeyword:return this.createNode(a,{type:dr.AST_NODE_TYPES.Literal,value:!0,raw:"true"});case ar.FalseKeyword:return this.createNode(a,{type:dr.AST_NODE_TYPES.Literal,value:!1,raw:"false"});case ar.NullKeyword:return!Lr.typescriptVersionIsAtLeast["4.0"]&&this.inTypeMode?this.createNode(a,{type:dr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:dr.AST_NODE_TYPES.Literal,value:null,raw:"null"});case ar.EmptyStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.EmptyStatement});case ar.DebuggerStatement:return this.createNode(a,{type:dr.AST_NODE_TYPES.DebuggerStatement});case ar.JsxElement:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXElement,openingElement:this.convertChild(a.openingElement),closingElement:this.convertChild(a.closingElement),children:a.children.map(f=>this.convertChild(f))});case ar.JsxFragment:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXFragment,openingFragment:this.convertChild(a.openingFragment),closingFragment:this.convertChild(a.closingFragment),children:a.children.map(f=>this.convertChild(f))});case ar.JsxSelfClosingElement:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXElement,openingElement:this.createNode(a,{type:dr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!0,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f)),range:(0,kr.getRange)(a,this.ast)}),closingElement:null,children:[]});case ar.JsxOpeningElement:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!1,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f))});case ar.JsxClosingElement:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXClosingElement,name:this.convertJSXTagName(a.tagName,a)});case ar.JsxOpeningFragment:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXOpeningFragment});case ar.JsxClosingFragment:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXClosingFragment});case ar.JsxExpression:{let f=a.expression?this.convertChild(a.expression):this.createNode(a,{type:dr.AST_NODE_TYPES.JSXEmptyExpression,range:[a.getStart(this.ast)+1,a.getEnd()-1]});return a.dotDotDotToken?this.createNode(a,{type:dr.AST_NODE_TYPES.JSXSpreadChild,expression:f}):this.createNode(a,{type:dr.AST_NODE_TYPES.JSXExpressionContainer,expression:f})}case ar.JsxAttribute:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(a.name),value:this.convertChild(a.initializer)});case ar.JsxText:{let f=a.getFullStart(),T=a.getEnd(),K=this.ast.text.slice(f,T);return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXText,value:(0,kr.unescapeStringLiteralText)(K),raw:K,range:[f,T]})}case ar.JsxSpreadAttribute:return this.createNode(a,{type:dr.AST_NODE_TYPES.JSXSpreadAttribute,argument:this.convertChild(a.expression)});case ar.QualifiedName:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSQualifiedName,left:this.convertChild(a.left),right:this.convertChild(a.right)});case ar.TypeReference:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypeReference,typeName:this.convertType(a.typeName),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0});case ar.TypeParameter:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypeParameter,name:this.convertType(a.name),constraint:a.constraint?this.convertType(a.constraint):void 0,default:a.default?this.convertType(a.default):void 0,in:(0,kr.hasModifier)(ar.InKeyword,a),out:(0,kr.hasModifier)(ar.OutKeyword,a)});case ar.ThisType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSThisType});case ar.AnyKeyword:case ar.BigIntKeyword:case ar.BooleanKeyword:case ar.NeverKeyword:case ar.NumberKeyword:case ar.ObjectKeyword:case ar.StringKeyword:case ar.SymbolKeyword:case ar.UnknownKeyword:case ar.VoidKeyword:case ar.UndefinedKeyword:case ar.IntrinsicKeyword:return this.createNode(a,{type:dr.AST_NODE_TYPES["TS".concat(ar[a.kind])]});case ar.NonNullExpression:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSNonNullExpression,expression:this.convertChild(a.expression)});return this.convertChainExpression(f,a)}case ar.TypeLiteral:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypeLiteral,members:a.members.map(f=>this.convertChild(f))});case ar.ArrayType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSArrayType,elementType:this.convertType(a.elementType)});case ar.IndexedAccessType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSIndexedAccessType,objectType:this.convertType(a.objectType),indexType:this.convertType(a.indexType)});case ar.ConditionalType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSConditionalType,checkType:this.convertType(a.checkType),extendsType:this.convertType(a.extendsType),trueType:this.convertType(a.trueType),falseType:this.convertType(a.falseType)});case ar.TypeQuery:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypeQuery,exprName:this.convertType(a.exprName),typeParameters:a.typeArguments&&this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)});case ar.MappedType:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSMappedType,typeParameter:this.convertType(a.typeParameter),nameType:(G=this.convertType(a.nameType))!==null&&G!==void 0?G:null});return a.readonlyToken&&(a.readonlyToken.kind===ar.ReadonlyKeyword?f.readonly=!0:f.readonly=(0,kr.getTextForTokenKind)(a.readonlyToken.kind)),a.questionToken&&(a.questionToken.kind===ar.QuestionToken?f.optional=!0:f.optional=(0,kr.getTextForTokenKind)(a.questionToken.kind)),a.type&&(f.typeAnnotation=this.convertType(a.type)),f}case ar.ParenthesizedExpression:return this.convertChild(a.expression,C);case ar.TypeAliasDeclaration:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypeAliasDeclaration,id:this.convertChild(a.name),typeAnnotation:this.convertType(a.type)});return(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),this.fixExports(a,f)}case ar.MethodSignature:return this.convertMethodSignature(a);case ar.PropertySignature:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSPropertySignature,optional:(0,kr.isOptional)(a)||void 0,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),typeAnnotation:a.type?this.convertTypeAnnotation(a.type,a):void 0,initializer:this.convertChild(a.initializer)||void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0}),T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),f}case ar.IndexSignature:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSIndexSignature,parameters:a.parameters.map(K=>this.convertChild(K))});a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(f.readonly=!0);let T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(f.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(f.static=!0),f}case ar.ConstructorType:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSConstructorType,params:this.convertParameters(a.parameters),abstract:(0,kr.hasModifier)(ar.AbstractKeyword,a)});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.FunctionType:case ar.ConstructSignature:case ar.CallSignature:{let f=a.kind===ar.ConstructSignature?dr.AST_NODE_TYPES.TSConstructSignatureDeclaration:a.kind===ar.CallSignature?dr.AST_NODE_TYPES.TSCallSignatureDeclaration:dr.AST_NODE_TYPES.TSFunctionType,T=this.createNode(a,{type:f,params:this.convertParameters(a.parameters)});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),T}case ar.ExpressionWithTypeArguments:{let f=C.kind,T=f===ar.InterfaceDeclaration?dr.AST_NODE_TYPES.TSInterfaceHeritage:f===ar.HeritageClause?dr.AST_NODE_TYPES.TSClassImplements:dr.AST_NODE_TYPES.TSInstantiationExpression,K=this.createNode(a,{type:T,expression:this.convertChild(a.expression)});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),K}case ar.InterfaceDeclaration:{let f=(oe=a.heritageClauses)!==null&&oe!==void 0?oe:[],T=this.createNode(a,{type:dr.AST_NODE_TYPES.TSInterfaceDeclaration,body:this.createNode(a,{type:dr.AST_NODE_TYPES.TSInterfaceBody,body:a.members.map(K=>this.convertChild(K)),range:[a.members.pos-1,a.end]}),id:this.convertChild(a.name)});if(a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f.length>0){let K=[],b=[];for(let se of f)if(se.token===ar.ExtendsKeyword)for(let J of se.types)K.push(this.convertChild(J,a));else for(let J of se.types)b.push(this.convertChild(J,a));K.length&&(T.extends=K),b.length&&(T.implements=b)}return(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(T.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(T.declare=!0),this.fixExports(a,T)}case ar.TypePredicate:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypePredicate,asserts:a.assertsModifier!==void 0,parameterName:this.convertChild(a.parameterName),typeAnnotation:null});return a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),f.typeAnnotation.loc=f.typeAnnotation.typeAnnotation.loc,f.typeAnnotation.range=f.typeAnnotation.typeAnnotation.range),f}case ar.ImportType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSImportType,isTypeOf:!!a.isTypeOf,parameter:this.convertChild(a.argument),qualifier:this.convertChild(a.qualifier),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null});case ar.EnumDeclaration:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSEnumDeclaration,id:this.convertChild(a.name),members:a.members.map(T=>this.convertChild(T))});return this.applyModifiersToResult(f,a.modifiers),this.fixExports(a,f)}case ar.EnumMember:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSEnumMember,id:this.convertChild(a.name)});return a.initializer&&(f.initializer=this.convertChild(a.initializer)),a.name.kind===oi.SyntaxKind.ComputedPropertyName&&(f.computed=!0),f}case ar.ModuleDeclaration:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSModuleDeclaration,id:this.convertChild(a.name)});return a.body&&(f.body=this.convertChild(a.body)),this.applyModifiersToResult(f,a.modifiers),a.flags&oi.NodeFlags.GlobalAugmentation&&(f.global=!0),this.fixExports(a,f)}case ar.ParenthesizedType:return this.convertType(a.type);case ar.UnionType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSUnionType,types:a.types.map(f=>this.convertType(f))});case ar.IntersectionType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSIntersectionType,types:a.types.map(f=>this.convertType(f))});case ar.AsExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSAsExpression,expression:this.convertChild(a.expression),typeAnnotation:this.convertType(a.type)});case ar.InferType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSInferType,typeParameter:this.convertType(a.typeParameter)});case ar.LiteralType:return Lr.typescriptVersionIsAtLeast["4.0"]&&a.literal.kind===ar.NullKeyword?this.createNode(a.literal,{type:dr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:dr.AST_NODE_TYPES.TSLiteralType,literal:this.convertType(a.literal)});case ar.TypeAssertionExpression:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSTypeAssertion,typeAnnotation:this.convertType(a.type),expression:this.convertChild(a.expression)});case ar.ImportEqualsDeclaration:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSImportEqualsDeclaration,id:this.convertChild(a.name),moduleReference:this.convertChild(a.moduleReference),importKind:a.isTypeOnly?"type":"value",isExport:(0,kr.hasModifier)(ar.ExportKeyword,a)});case ar.ExternalModuleReference:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSExternalModuleReference,expression:this.convertChild(a.expression)});case ar.NamespaceExportDeclaration:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSNamespaceExportDeclaration,id:this.convertChild(a.name)});case ar.AbstractKeyword:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSAbstractKeyword});case ar.TupleType:{let f="elementTypes"in a?a.elementTypes.map(T=>this.convertType(T)):a.elements.map(T=>this.convertType(T));return this.createNode(a,{type:dr.AST_NODE_TYPES.TSTupleType,elementTypes:f})}case ar.NamedTupleMember:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSNamedTupleMember,elementType:this.convertType(a.type,a),label:this.convertChild(a.name,a),optional:a.questionToken!=null});return a.dotDotDotToken?(f.range[0]=f.label.range[0],f.loc.start=f.label.loc.start,this.createNode(a,{type:dr.AST_NODE_TYPES.TSRestType,typeAnnotation:f})):f}case ar.OptionalType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSOptionalType,typeAnnotation:this.convertType(a.type)});case ar.RestType:return this.createNode(a,{type:dr.AST_NODE_TYPES.TSRestType,typeAnnotation:this.convertType(a.type)});case ar.TemplateLiteralType:{let f=this.createNode(a,{type:dr.AST_NODE_TYPES.TSTemplateLiteralType,quasis:[this.convertChild(a.head)],types:[]});return a.templateSpans.forEach(T=>{f.types.push(this.convertChild(T.type)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.ClassStaticBlockDeclaration:return this.createNode(a,{type:dr.AST_NODE_TYPES.StaticBlock,body:this.convertBodyExpressions(a.body.statements,a)});case ar.AssertEntry:return this.createNode(a,{type:dr.AST_NODE_TYPES.ImportAttribute,key:this.convertChild(a.name),value:this.convertChild(a.value)});default:return this.deeplyCopy(a)}}};M.Converter=e}}),Ud={};h1(Ud,{__assign:()=>v1,__asyncDelegator:()=>MU,__asyncGenerator:()=>FU,__asyncValues:()=>LU,__await:()=>Xy,__awaiter:()=>AU,__classPrivateFieldGet:()=>jU,__classPrivateFieldSet:()=>UU,__createBinding:()=>PU,__decorate:()=>EU,__exportStar:()=>IU,__extends:()=>TU,__generator:()=>NU,__importDefault:()=>JU,__importStar:()=>BU,__makeTemplateObject:()=>RU,__metadata:()=>kU,__param:()=>CU,__read:()=>$4,__rest:()=>xU,__spread:()=>wU,__spreadArrays:()=>OU,__values:()=>UT});function TU(M,re){m1(M,re);function Ve(){this.constructor=M}M.prototype=re===null?Object.create(re):(Ve.prototype=re.prototype,new Ve)}function xU(M,re){var Ve={};for(var Ke in M)Object.prototype.hasOwnProperty.call(M,Ke)&&re.indexOf(Ke)<0&&(Ve[Ke]=M[Ke]);if(M!=null&&typeof Object.getOwnPropertySymbols=="function")for(var oi=0,Ke=Object.getOwnPropertySymbols(M);oi=0;Lr--)(dr=M[Lr])&&(kr=(oi<3?dr(kr):oi>3?dr(re,Ve,kr):dr(re,Ve))||kr);return oi>3&&kr&&Object.defineProperty(re,Ve,kr),kr}function CU(M,re){return function(Ve,Ke){re(Ve,Ke,M)}}function kU(M,re){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M,re)}function AU(M,re,Ve,Ke){function oi(kr){return kr instanceof Ve?kr:new Ve(function(dr){dr(kr)})}return new(Ve||(Ve=Promise))(function(kr,dr){function Lr(e){try{ke(Ke.next(e))}catch(a){dr(a)}}function ar(e){try{ke(Ke.throw(e))}catch(a){dr(a)}}function ke(e){e.done?kr(e.value):oi(e.value).then(Lr,ar)}ke((Ke=Ke.apply(M,re||[])).next())})}function NU(M,re){var Ve={label:0,sent:function(){if(kr[0]&1)throw kr[1];return kr[1]},trys:[],ops:[]},Ke,oi,kr,dr;return dr={next:Lr(0),throw:Lr(1),return:Lr(2)},typeof Symbol=="function"&&(dr[Symbol.iterator]=function(){return this}),dr;function Lr(ke){return function(e){return ar([ke,e])}}function ar(ke){if(Ke)throw new TypeError("Generator is already executing.");for(;Ve;)try{if(Ke=1,oi&&(kr=ke[0]&2?oi.return:ke[0]?oi.throw||((kr=oi.return)&&kr.call(oi),0):oi.next)&&!(kr=kr.call(oi,ke[1])).done)return kr;switch(oi=0,kr&&(ke=[ke[0]&2,kr.value]),ke[0]){case 0:case 1:kr=ke;break;case 4:return Ve.label++,{value:ke[1],done:!1};case 5:Ve.label++,oi=ke[1],ke=[0];continue;case 7:ke=Ve.ops.pop(),Ve.trys.pop();continue;default:if(kr=Ve.trys,!(kr=kr.length>0&&kr[kr.length-1])&&(ke[0]===6||ke[0]===2)){Ve=0;continue}if(ke[0]===3&&(!kr||ke[1]>kr[0]&&ke[1]=M.length&&(M=void 0),{value:M&&M[Ke++],done:!M}}};throw new TypeError(re?"Object is not iterable.":"Symbol.iterator is not defined.")}function $4(M,re){var Ve=typeof Symbol=="function"&&M[Symbol.iterator];if(!Ve)return M;var Ke=Ve.call(M),oi,kr=[],dr;try{for(;(re===void 0||re-- >0)&&!(oi=Ke.next()).done;)kr.push(oi.value)}catch(Lr){dr={error:Lr}}finally{try{oi&&!oi.done&&(Ve=Ke.return)&&Ve.call(Ke)}finally{if(dr)throw dr.error}}return kr}function wU(){for(var M=[],re=0;re1||Lr(C,I)})})}function Lr(C,I){try{ar(Ke[C](I))}catch(R){a(kr[0][3],R)}}function ar(C){C.value instanceof Xy?Promise.resolve(C.value.v).then(ke,e):a(kr[0][2],C)}function ke(C){Lr("next",C)}function e(C){Lr("throw",C)}function a(C,I){C(I),kr.shift(),kr.length&&Lr(kr[0][0],kr[0][1])}}function MU(M){var re,Ve;return re={},Ke("next"),Ke("throw",function(oi){throw oi}),Ke("return"),re[Symbol.iterator]=function(){return this},re;function Ke(oi,kr){re[oi]=M[oi]?function(dr){return(Ve=!Ve)?{value:Xy(M[oi](dr)),done:oi==="return"}:kr?kr(dr):dr}:kr}}function LU(M){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var re=M[Symbol.asyncIterator],Ve;return re?re.call(M):(M=typeof UT=="function"?UT(M):M[Symbol.iterator](),Ve={},Ke("next"),Ke("throw"),Ke("return"),Ve[Symbol.asyncIterator]=function(){return this},Ve);function Ke(kr){Ve[kr]=M[kr]&&function(dr){return new Promise(function(Lr,ar){dr=M[kr](dr),oi(Lr,ar,dr.done,dr.value)})}}function oi(kr,dr,Lr,ar){Promise.resolve(ar).then(function(ke){kr({value:ke,done:Lr})},dr)}}function RU(M,re){return Object.defineProperty?Object.defineProperty(M,"raw",{value:re}):M.raw=re,M}function BU(M){if(M&&M.__esModule)return M;var re={};if(M!=null)for(var Ve in M)Object.hasOwnProperty.call(M,Ve)&&(re[Ve]=M[Ve]);return re.default=M,re}function JU(M){return M&&M.__esModule?M:{default:M}}function jU(M,re){if(!re.has(M))throw new TypeError("attempted to get private field on non-instance");return re.get(M)}function UU(M,re,Ve){if(!re.has(M))throw new TypeError("attempted to set private field on non-instance");return re.set(M,Ve),Ve}var m1,v1,ug=Qy({"node_modules/tslib/tslib.es6.js"(){Ea(),m1=function(M,re){return m1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Ve,Ke){Ve.__proto__=Ke}||function(Ve,Ke){for(var oi in Ke)Ke.hasOwnProperty(oi)&&(Ve[oi]=Ke[oi])},m1(M,re)},v1=function(){return v1=Object.assign||function(re){for(var Ve,Ke=1,oi=arguments.length;Ke=re.SyntaxKind.FirstLiteralToken&&ai.kind<=re.SyntaxKind.LastLiteralToken}M.isLiteralExpression=ii;function mi(ai){return ai.kind===re.SyntaxKind.LiteralType}M.isLiteralTypeNode=mi;function pe(ai){return ai.kind===re.SyntaxKind.MappedType}M.isMappedTypeNode=pe;function or(ai){return ai.kind===re.SyntaxKind.MetaProperty}M.isMetaProperty=or;function qr(ai){return ai.kind===re.SyntaxKind.MethodDeclaration}M.isMethodDeclaration=qr;function si(ai){return ai.kind===re.SyntaxKind.MethodSignature}M.isMethodSignature=si;function Di(ai){return ai.kind===re.SyntaxKind.ModuleBlock}M.isModuleBlock=Di;function wi(ai){return ai.kind===re.SyntaxKind.ModuleDeclaration}M.isModuleDeclaration=wi;function Xi(ai){return ai.kind===re.SyntaxKind.NamedExports}M.isNamedExports=Xi;function et(ai){return ai.kind===re.SyntaxKind.NamedImports}M.isNamedImports=et;function Gi(ai){return wi(ai)&&ai.name.kind===re.SyntaxKind.Identifier&&ai.body!==void 0&&(ai.body.kind===re.SyntaxKind.ModuleBlock||Gi(ai.body))}M.isNamespaceDeclaration=Gi;function Wt(ai){return ai.kind===re.SyntaxKind.NamespaceImport}M.isNamespaceImport=Wt;function Zt(ai){return ai.kind===re.SyntaxKind.NamespaceExportDeclaration}M.isNamespaceExportDeclaration=Zt;function _r(ai){return ai.kind===re.SyntaxKind.NewExpression}M.isNewExpression=_r;function pi(ai){return ai.kind===re.SyntaxKind.NonNullExpression}M.isNonNullExpression=pi;function ae(ai){return ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isNoSubstitutionTemplateLiteral=ae;function Xe(ai){return ai.kind===re.SyntaxKind.NullKeyword}M.isNullLiteral=Xe;function Jr(ai){return ai.kind===re.SyntaxKind.NumericLiteral}M.isNumericLiteral=Jr;function ti(ai){switch(ai.kind){case re.SyntaxKind.StringLiteral:case re.SyntaxKind.NumericLiteral:case re.SyntaxKind.NoSubstitutionTemplateLiteral:return!0;default:return!1}}M.isNumericOrStringLikeLiteral=ti;function Ze(ai){return ai.kind===re.SyntaxKind.ObjectBindingPattern}M.isObjectBindingPattern=Ze;function Sr(ai){return ai.kind===re.SyntaxKind.ObjectLiteralExpression}M.isObjectLiteralExpression=Sr;function zr(ai){return ai.kind===re.SyntaxKind.OmittedExpression}M.isOmittedExpression=zr;function Wr(ai){return ai.kind===re.SyntaxKind.Parameter}M.isParameterDeclaration=Wr;function Je(ai){return ai.kind===re.SyntaxKind.ParenthesizedExpression}M.isParenthesizedExpression=Je;function xe(ai){return ai.kind===re.SyntaxKind.ParenthesizedType}M.isParenthesizedTypeNode=xe;function vr(ai){return ai.kind===re.SyntaxKind.PostfixUnaryExpression}M.isPostfixUnaryExpression=vr;function mr(ai){return ai.kind===re.SyntaxKind.PrefixUnaryExpression}M.isPrefixUnaryExpression=mr;function Ar(ai){return ai.kind===re.SyntaxKind.PropertyAccessExpression}M.isPropertyAccessExpression=Ar;function Oe(ai){return ai.kind===re.SyntaxKind.PropertyAssignment}M.isPropertyAssignment=Oe;function nr(ai){return ai.kind===re.SyntaxKind.PropertyDeclaration}M.isPropertyDeclaration=nr;function Mr(ai){return ai.kind===re.SyntaxKind.PropertySignature}M.isPropertySignature=Mr;function Pe(ai){return ai.kind===re.SyntaxKind.QualifiedName}M.isQualifiedName=Pe;function Ue(ai){return ai.kind===re.SyntaxKind.RegularExpressionLiteral}M.isRegularExpressionLiteral=Ue;function fr(ai){return ai.kind===re.SyntaxKind.ReturnStatement}M.isReturnStatement=fr;function De(ai){return ai.kind===re.SyntaxKind.SetAccessor}M.isSetAccessorDeclaration=De;function gr(ai){return ai.kind===re.SyntaxKind.ShorthandPropertyAssignment}M.isShorthandPropertyAssignment=gr;function Vr(ai){return ai.parameters!==void 0}M.isSignatureDeclaration=Vr;function Tr(ai){return ai.kind===re.SyntaxKind.SourceFile}M.isSourceFile=Tr;function vi(ai){return ai.kind===re.SyntaxKind.SpreadAssignment}M.isSpreadAssignment=vi;function Ui(ai){return ai.kind===re.SyntaxKind.SpreadElement}M.isSpreadElement=Ui;function Yi(ai){return ai.kind===re.SyntaxKind.StringLiteral}M.isStringLiteral=Yi;function Wi(ai){return ai.kind===re.SyntaxKind.SwitchStatement}M.isSwitchStatement=Wi;function ct(ai){return ai.kind===re.SyntaxKind.SyntaxList}M.isSyntaxList=ct;function Li(ai){return ai.kind===re.SyntaxKind.TaggedTemplateExpression}M.isTaggedTemplateExpression=Li;function nt(ai){return ai.kind===re.SyntaxKind.TemplateExpression}M.isTemplateExpression=nt;function Mt(ai){return ai.kind===re.SyntaxKind.TemplateExpression||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTemplateLiteral=Mt;function xt(ai){return ai.kind===re.SyntaxKind.StringLiteral||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTextualLiteral=xt;function ut(ai){return ai.kind===re.SyntaxKind.ThrowStatement}M.isThrowStatement=ut;function Dt(ai){return ai.kind===re.SyntaxKind.TryStatement}M.isTryStatement=Dt;function Rt(ai){return ai.kind===re.SyntaxKind.TupleType}M.isTupleTypeNode=Rt;function Ii(ai){return ai.kind===re.SyntaxKind.TypeAliasDeclaration}M.isTypeAliasDeclaration=Ii;function Ki(ai){return ai.kind===re.SyntaxKind.TypeAssertionExpression}M.isTypeAssertion=Ki;function Fi(ai){return ai.kind===re.SyntaxKind.TypeLiteral}M.isTypeLiteralNode=Fi;function ui(ai){return ai.kind===re.SyntaxKind.TypeOfExpression}M.isTypeOfExpression=ui;function Bt(ai){return ai.kind===re.SyntaxKind.TypeOperator}M.isTypeOperatorNode=Bt;function wt(ai){return ai.kind===re.SyntaxKind.TypeParameter}M.isTypeParameterDeclaration=wt;function na(ai){return ai.kind===re.SyntaxKind.TypePredicate}M.isTypePredicateNode=na;function Ai(ai){return ai.kind===re.SyntaxKind.TypeReference}M.isTypeReferenceNode=Ai;function Oi(ai){return ai.kind===re.SyntaxKind.TypeQuery}M.isTypeQueryNode=Oi;function ji(ai){return ai.kind===re.SyntaxKind.UnionType}M.isUnionTypeNode=ji;function Vi(ai){return ai.kind===re.SyntaxKind.VariableDeclaration}M.isVariableDeclaration=Vi;function at(ai){return ai.kind===re.SyntaxKind.VariableStatement}M.isVariableStatement=at;function At(ai){return ai.kind===re.SyntaxKind.VariableDeclarationList}M.isVariableDeclarationList=At;function ba(ai){return ai.kind===re.SyntaxKind.VoidExpression}M.isVoidExpression=ba;function $a(ai){return ai.kind===re.SyntaxKind.WhileStatement}M.isWhileStatement=$a;function Qa(ai){return ai.kind===re.SyntaxKind.WithStatement}M.isWithStatement=Qa}}),WU=wa({"node_modules/tsutils/typeguard/2.9/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isImportTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(zU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.ImportType}M.isImportTypeNode=Ke}}),qU=wa({"node_modules/tsutils/typeguard/3.0/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isSyntheticExpression=M.isRestTypeNode=M.isOptionalTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(WU(),M);var Ve=_u();function Ke(dr){return dr.kind===Ve.SyntaxKind.OptionalType}M.isOptionalTypeNode=Ke;function oi(dr){return dr.kind===Ve.SyntaxKind.RestType}M.isRestTypeNode=oi;function kr(dr){return dr.kind===Ve.SyntaxKind.SyntheticExpression}M.isSyntheticExpression=kr}}),Z4=wa({"node_modules/tsutils/typeguard/3.2/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isBigIntLiteral=void 0;var re=(ug(),mp(Ud));re.__exportStar(qU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.BigIntLiteral}M.isBigIntLiteral=Ke}}),e3=wa({"node_modules/tsutils/typeguard/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(Z4(),M)}}),VU=wa({"node_modules/tsutils/typeguard/2.8/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isUniqueESSymbolType=M.isUnionType=M.isUnionOrIntersectionType=M.isTypeVariable=M.isTypeReference=M.isTypeParameter=M.isSubstitutionType=M.isObjectType=M.isLiteralType=M.isIntersectionType=M.isInterfaceType=M.isInstantiableType=M.isIndexedAccessype=M.isIndexedAccessType=M.isGenericType=M.isEnumType=M.isConditionalType=void 0;var re=_u();function Ve(p){return(p.flags&re.TypeFlags.Conditional)!==0}M.isConditionalType=Ve;function Ke(p){return(p.flags&re.TypeFlags.Enum)!==0}M.isEnumType=Ke;function oi(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isGenericType=oi;function kr(p){return(p.flags&re.TypeFlags.IndexedAccess)!==0}M.isIndexedAccessType=kr;function dr(p){return(p.flags&re.TypeFlags.Index)!==0}M.isIndexedAccessype=dr;function Lr(p){return(p.flags&re.TypeFlags.Instantiable)!==0}M.isInstantiableType=Lr;function ar(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0}M.isInterfaceType=ar;function ke(p){return(p.flags&re.TypeFlags.Intersection)!==0}M.isIntersectionType=ke;function e(p){return(p.flags&(re.TypeFlags.StringOrNumberLiteral|re.TypeFlags.BigIntLiteral))!==0}M.isLiteralType=e;function a(p){return(p.flags&re.TypeFlags.Object)!==0}M.isObjectType=a;function C(p){return(p.flags&re.TypeFlags.Substitution)!==0}M.isSubstitutionType=C;function I(p){return(p.flags&re.TypeFlags.TypeParameter)!==0}M.isTypeParameter=I;function R(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isTypeReference=R;function E(p){return(p.flags&re.TypeFlags.TypeVariable)!==0}M.isTypeVariable=E;function X(p){return(p.flags&re.TypeFlags.UnionOrIntersection)!==0}M.isUnionOrIntersectionType=X;function le(p){return(p.flags&re.TypeFlags.Union)!==0}M.isUnionType=le;function N(p){return(p.flags&re.TypeFlags.UniqueESSymbol)!==0}M.isUniqueESSymbolType=N}}),y4=wa({"node_modules/tsutils/typeguard/2.9/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(VU(),M)}}),KU=wa({"node_modules/tsutils/typeguard/3.0/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isTupleTypeReference=M.isTupleType=void 0;var re=(ug(),mp(Ud));re.__exportStar(y4(),M);var Ve=_u(),Ke=y4();function oi(dr){return(dr.flags&Ve.TypeFlags.Object&&dr.objectFlags&Ve.ObjectFlags.Tuple)!==0}M.isTupleType=oi;function kr(dr){return Ke.isTypeReference(dr)&&oi(dr.target)}M.isTupleTypeReference=kr}}),r3=wa({"node_modules/tsutils/typeguard/3.2/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(KU(),M)}}),GU=wa({"node_modules/tsutils/typeguard/3.2/index.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(Z4(),M),re.__exportStar(r3(),M)}}),HU=wa({"node_modules/tsutils/typeguard/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(r3(),M)}}),XU=wa({"node_modules/tsutils/util/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.getBaseClassMemberOfClassElement=M.getIteratorYieldResultFromIteratorResult=M.getInstanceTypeOfClassLikeDeclaration=M.getConstructorTypeOfClassLikeDeclaration=M.getSymbolOfClassLikeDeclaration=M.getPropertyNameFromType=M.symbolHasReadonlyDeclaration=M.isPropertyReadonlyInType=M.getWellKnownSymbolPropertyOfType=M.getPropertyOfType=M.isBooleanLiteralType=M.isFalsyType=M.isThenableType=M.someTypePart=M.intersectionTypeParts=M.unionTypeParts=M.getCallSignaturesOfType=M.isTypeAssignableToString=M.isTypeAssignableToNumber=M.isOptionalChainingUndefinedMarkerType=M.removeOptionalChainingUndefinedMarkerType=M.removeOptionalityFromType=M.isEmptyObjectType=void 0;var re=_u(),Ve=HU(),Ke=i3(),oi=e3();function kr(F){if(Ve.isObjectType(F)&&F.objectFlags&re.ObjectFlags.Anonymous&&F.getProperties().length===0&&F.getCallSignatures().length===0&&F.getConstructSignatures().length===0&&F.getStringIndexType()===void 0&&F.getNumberIndexType()===void 0){let x=F.getBaseTypes();return x===void 0||x.every(kr)}return!1}M.isEmptyObjectType=kr;function dr(F,x){if(!Lr(x,re.TypeFlags.Undefined))return x;let Q=Lr(x,re.TypeFlags.Null);return x=F.getNonNullableType(x),Q?F.getNullableType(x,re.TypeFlags.Null):x}M.removeOptionalityFromType=dr;function Lr(F,x){for(let Q of R(F))if(Ke.isTypeFlagSet(Q,x))return!0;return!1}function ar(F,x){if(!Ve.isUnionType(x))return ke(F,x)?x.getNonNullableType():x;let Q=0,$=!1;for(let A of x.types)ke(F,A)?$=!0:Q|=A.flags;return $?F.getNullableType(x.getNonNullableType(),Q):x}M.removeOptionalChainingUndefinedMarkerType=ar;function ke(F,x){return Ke.isTypeFlagSet(x,re.TypeFlags.Undefined)&&F.getNullableType(x.getNonNullableType(),re.TypeFlags.Undefined)!==x}M.isOptionalChainingUndefinedMarkerType=ke;function e(F,x){return C(F,x,re.TypeFlags.NumberLike)}M.isTypeAssignableToNumber=e;function a(F,x){return C(F,x,re.TypeFlags.StringLike)}M.isTypeAssignableToString=a;function C(F,x,Q){Q|=re.TypeFlags.Any;let $;return function A(y){if(Ve.isTypeParameter(y)&&y.symbol!==void 0&&y.symbol.declarations!==void 0){if($===void 0)$=new Set([y]);else if(!$.has(y))$.add(y);else return!1;let V=y.symbol.declarations[0];return V.constraint===void 0?!0:A(F.getTypeFromTypeNode(V.constraint))}return Ve.isUnionType(y)?y.types.every(A):Ve.isIntersectionType(y)?y.types.some(A):Ke.isTypeFlagSet(y,Q)}(x)}function I(F){if(Ve.isUnionType(F)){let x=[];for(let Q of F.types)x.push(...I(Q));return x}if(Ve.isIntersectionType(F)){let x;for(let Q of F.types){let $=I(Q);if($.length!==0){if(x!==void 0)return[];x=$}}return x===void 0?[]:x}return F.getCallSignatures()}M.getCallSignaturesOfType=I;function R(F){return Ve.isUnionType(F)?F.types:[F]}M.unionTypeParts=R;function E(F){return Ve.isIntersectionType(F)?F.types:[F]}M.intersectionTypeParts=E;function X(F,x,Q){return x(F)?F.types.some(Q):Q(F)}M.someTypePart=X;function le(F,x){let Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:F.getTypeAtLocation(x);for(let $ of R(F.getApparentType(Q))){let A=$.getProperty("then");if(A===void 0)continue;let y=F.getTypeOfSymbolAtLocation(A,x);for(let V of R(y))for(let L of V.getCallSignatures())if(L.parameters.length!==0&&N(F,L.parameters[0],x))return!0}return!1}M.isThenableType=le;function N(F,x,Q){let $=F.getApparentType(F.getTypeOfSymbolAtLocation(x,Q));if(x.valueDeclaration.dotDotDotToken&&($=$.getNumberIndexType(),$===void 0))return!1;for(let A of R($))if(A.getCallSignatures().length!==0)return!0;return!1}function p(F){return F.flags&(re.TypeFlags.Undefined|re.TypeFlags.Null|re.TypeFlags.Void)?!0:Ve.isLiteralType(F)?!F.value:m(F,!1)}M.isFalsyType=p;function m(F,x){return Ke.isTypeFlagSet(F,re.TypeFlags.BooleanLiteral)&&F.intrinsicName===(x?"true":"false")}M.isBooleanLiteralType=m;function G(F,x){return x.startsWith("__")?F.getProperties().find(Q=>Q.escapedName===x):F.getProperty(x)}M.getPropertyOfType=G;function oe(F,x,Q){let $="__@"+x;for(let A of F.getProperties()){if(!A.name.startsWith($))continue;let y=Q.getApparentType(Q.getTypeAtLocation(A.valueDeclaration.name.expression)).symbol;if(A.escapedName===f(Q,y,x))return A}}M.getWellKnownSymbolPropertyOfType=oe;function f(F,x,Q){let $=x&&F.getTypeOfSymbolAtLocation(x,x.valueDeclaration).getProperty(Q),A=$&&F.getTypeOfSymbolAtLocation($,$.valueDeclaration);return A&&Ve.isUniqueESSymbolType(A)?A.escapedName:"__@"+Q}function T(F,x,Q){let $=!1,A=!1;for(let y of R(F))if(G(y,x)===void 0){let V=(Ke.isNumericPropertyName(x)?Q.getIndexInfoOfType(y,re.IndexKind.Number):void 0)||Q.getIndexInfoOfType(y,re.IndexKind.String);if(V!==void 0&&V.isReadonly){if($)return!0;A=!0}}else{if(A||K(y,x,Q))return!0;$=!0}return!1}M.isPropertyReadonlyInType=T;function K(F,x,Q){return X(F,Ve.isIntersectionType,$=>{let A=G($,x);if(A===void 0)return!1;if(A.flags&re.SymbolFlags.Transient){if(/^(?:[1-9]\d*|0)$/.test(x)&&Ve.isTupleTypeReference($))return $.target.readonly;switch(b($,x,Q)){case!0:return!0;case!1:return!1;default:}}return Ke.isSymbolFlagSet(A,re.SymbolFlags.ValueModule)||se(A,Q)})}function b(F,x,Q){if(!Ve.isObjectType(F)||!Ke.isObjectFlagSet(F,re.ObjectFlags.Mapped))return;let $=F.symbol.declarations[0];return $.readonlyToken!==void 0&&!/^__@[^@]+$/.test(x)?$.readonlyToken.kind!==re.SyntaxKind.MinusToken:T(F.modifiersType,x,Q)}function se(F,x){return(F.flags&re.SymbolFlags.Accessor)===re.SymbolFlags.GetAccessor||F.declarations!==void 0&&F.declarations.some(Q=>Ke.isModifierFlagSet(Q,re.ModifierFlags.Readonly)||oi.isVariableDeclaration(Q)&&Ke.isNodeFlagSet(Q.parent,re.NodeFlags.Const)||oi.isCallExpression(Q)&&Ke.isReadonlyAssignmentDeclaration(Q,x)||oi.isEnumMember(Q)||(oi.isPropertyAssignment(Q)||oi.isShorthandPropertyAssignment(Q))&&Ke.isInConstContext(Q.parent))}M.symbolHasReadonlyDeclaration=se;function J(F){if(F.flags&(re.TypeFlags.StringLiteral|re.TypeFlags.NumberLiteral)){let x=String(F.value);return{displayName:x,symbolName:re.escapeLeadingUnderscores(x)}}if(Ve.isUniqueESSymbolType(F))return{displayName:"[".concat(F.symbol?"".concat(ie(F.symbol)?"Symbol.":"").concat(F.symbol.name):F.escapedName.replace(/^__@|@\d+$/g,""),"]"),symbolName:F.escapedName}}M.getPropertyNameFromType=J;function ie(F){return Ke.isSymbolFlagSet(F,re.SymbolFlags.Property)&&F.valueDeclaration!==void 0&&oi.isInterfaceDeclaration(F.valueDeclaration.parent)&&F.valueDeclaration.parent.name.text==="SymbolConstructor"&&B(F.valueDeclaration.parent)}function B(F){return Ke.isNodeFlagSet(F.parent,re.NodeFlags.GlobalAugmentation)||oi.isSourceFile(F.parent)&&!re.isExternalModule(F.parent)}function q(F,x){var Q;return x.getSymbolAtLocation((Q=F.name)!==null&&Q!==void 0?Q:Ke.getChildOfKind(F,re.SyntaxKind.ClassKeyword))}M.getSymbolOfClassLikeDeclaration=q;function O(F,x){return F.kind===re.SyntaxKind.ClassExpression?x.getTypeAtLocation(F):x.getTypeOfSymbolAtLocation(q(F,x),F)}M.getConstructorTypeOfClassLikeDeclaration=O;function ve(F,x){return F.kind===re.SyntaxKind.ClassDeclaration?x.getTypeAtLocation(F):x.getDeclaredTypeOfSymbol(q(F,x))}M.getInstanceTypeOfClassLikeDeclaration=ve;function ee(F,x,Q){return Ve.isUnionType(F)&&F.types.find($=>{let A=$.getProperty("done");return A!==void 0&&m(dr(Q,Q.getTypeOfSymbolAtLocation(A,x)),!1)})||F}M.getIteratorYieldResultFromIteratorResult=ee;function he(F,x){if(!oi.isClassLikeDeclaration(F.parent))return;let Q=Ke.getBaseOfClassLikeExpression(F.parent);if(Q===void 0)return;let $=Ke.getSingleLateBoundPropertyNameOfPropertyName(F.name,x);if($===void 0)return;let A=x.getTypeAtLocation(Ke.hasModifier(F.modifiers,re.SyntaxKind.StaticKeyword)?Q.expression:Q);return G(A,$.symbolName)}M.getBaseClassMemberOfClassElement=he}}),i3=wa({"node_modules/tsutils/util/util.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isValidIdentifier=M.getLineBreakStyle=M.getLineRanges=M.forEachComment=M.forEachTokenWithTrivia=M.forEachToken=M.isFunctionWithBody=M.hasOwnThisReference=M.isBlockScopeBoundary=M.isFunctionScopeBoundary=M.isTypeScopeBoundary=M.isScopeBoundary=M.ScopeBoundarySelector=M.ScopeBoundary=M.isInSingleStatementContext=M.isBlockScopedDeclarationStatement=M.isBlockScopedVariableDeclaration=M.isBlockScopedVariableDeclarationList=M.getVariableDeclarationKind=M.VariableDeclarationKind=M.forEachDeclaredVariable=M.forEachDestructuringIdentifier=M.getPropertyName=M.getWrappedNodeAtPosition=M.getAstNodeAtPosition=M.commentText=M.isPositionInComment=M.getCommentAtPosition=M.getTokenAtPosition=M.getNextToken=M.getPreviousToken=M.getNextStatement=M.getPreviousStatement=M.isModifierFlagSet=M.isObjectFlagSet=M.isSymbolFlagSet=M.isTypeFlagSet=M.isNodeFlagSet=M.hasAccessModifier=M.isParameterProperty=M.hasModifier=M.getModifier=M.isThisParameter=M.isKeywordKind=M.isJsDocKind=M.isTypeNodeKind=M.isAssignmentKind=M.isNodeKind=M.isTokenKind=M.getChildOfKind=void 0,M.getBaseOfClassLikeExpression=M.hasExhaustiveCaseClauses=M.formatPseudoBigInt=M.unwrapParentheses=M.getSingleLateBoundPropertyNameOfPropertyName=M.getLateBoundPropertyNamesOfPropertyName=M.getLateBoundPropertyNames=M.getPropertyNameOfWellKnownSymbol=M.isWellKnownSymbolLiterally=M.isBindableObjectDefinePropertyCall=M.isReadonlyAssignmentDeclaration=M.isInConstContext=M.isConstAssertion=M.getTsCheckDirective=M.getCheckJsDirective=M.isAmbientModule=M.isCompilerOptionEnabled=M.isStrictCompilerOptionEnabled=M.getIIFE=M.isAmbientModuleBlock=M.isStatementInAmbientContext=M.findImportLikeNodes=M.findImports=M.ImportKind=M.parseJsDocOfNode=M.getJsDoc=M.canHaveJsDoc=M.isReassignmentTarget=M.getAccessKind=M.AccessKind=M.isExpressionValueUsed=M.getDeclarationOfBindingElement=M.hasSideEffects=M.SideEffectOptions=M.isSameLine=M.isNumericPropertyName=M.isValidJsxIdentifier=M.isValidNumericLiteral=M.isValidPropertyName=M.isValidPropertyAccess=void 0;var re=_u(),Ve=e3(),Ke=GU(),oi=XU();function kr(ae,Xe,Jr){for(let ti of ae.getChildren(Jr))if(ti.kind===Xe)return ti}M.getChildOfKind=kr;function dr(ae){return ae>=re.SyntaxKind.FirstToken&&ae<=re.SyntaxKind.LastToken}M.isTokenKind=dr;function Lr(ae){return ae>=re.SyntaxKind.FirstNode}M.isNodeKind=Lr;function ar(ae){return ae>=re.SyntaxKind.FirstAssignment&&ae<=re.SyntaxKind.LastAssignment}M.isAssignmentKind=ar;function ke(ae){return ae>=re.SyntaxKind.FirstTypeNode&&ae<=re.SyntaxKind.LastTypeNode}M.isTypeNodeKind=ke;function e(ae){return ae>=re.SyntaxKind.FirstJSDocNode&&ae<=re.SyntaxKind.LastJSDocNode}M.isJsDocKind=e;function a(ae){return ae>=re.SyntaxKind.FirstKeyword&&ae<=re.SyntaxKind.LastKeyword}M.isKeywordKind=a;function C(ae){return ae.name.kind===re.SyntaxKind.Identifier&&ae.name.originalKeywordKind===re.SyntaxKind.ThisKeyword}M.isThisParameter=C;function I(ae,Xe){if(ae.modifiers!==void 0){for(let Jr of ae.modifiers)if(Jr.kind===Xe)return Jr}}M.getModifier=I;function R(ae){if(ae===void 0)return!1;for(var Xe=arguments.length,Jr=new Array(Xe>1?Xe-1:0),ti=1;ti0)return Xe.statements[Jr-1]}}M.getPreviousStatement=m;function G(ae){let Xe=ae.parent;if(Ve.isBlockLike(Xe)){let Jr=Xe.statements.indexOf(ae);if(Jr=ae.end))return dr(ae.kind)?ae:K(ae,Xe,Jr!=null?Jr:ae.getSourceFile(),ti===!0)}M.getTokenAtPosition=T;function K(ae,Xe,Jr,ti){if(!ti&&(ae=B(ae,Xe),dr(ae.kind)))return ae;e:for(;;){for(let Ze of ae.getChildren(Jr))if(Ze.end>Xe&&(ti||Ze.kind!==re.SyntaxKind.JSDocComment)){if(dr(Ze.kind))return Ze;ae=Ze;continue e}return}}function b(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae,ti=T(Jr,Xe,ae);if(ti===void 0||ti.kind===re.SyntaxKind.JsxText||Xe>=ti.end-(re.tokenToString(ti.kind)||"").length)return;let Ze=ti.pos===0?(re.getShebang(ae.text)||"").length:ti.pos;return Ze!==0&&re.forEachTrailingCommentRange(ae.text,Ze,se,Xe)||re.forEachLeadingCommentRange(ae.text,Ze,se,Xe)}M.getCommentAtPosition=b;function se(ae,Xe,Jr,ti,Ze){return Ze>=ae&&ZeXe||ae.end<=Xe)){for(;Lr(ae.kind);){let Jr=re.forEachChild(ae,ti=>ti.pos<=Xe&&ti.end>Xe?ti:void 0);if(Jr===void 0)break;ae=Jr}return ae}}M.getAstNodeAtPosition=B;function q(ae,Xe){if(ae.node.pos>Xe||ae.node.end<=Xe)return;e:for(;;){for(let Jr of ae.children){if(Jr.node.pos>Xe)return ae;if(Jr.node.end>Xe){ae=Jr;continue e}}return ae}}M.getWrappedNodeAtPosition=q;function O(ae){if(ae.kind===re.SyntaxKind.ComputedPropertyName){let Xe=Gi(ae.expression);if(Ve.isPrefixUnaryExpression(Xe)){let Jr=!1;switch(Xe.operator){case re.SyntaxKind.MinusToken:Jr=!0;case re.SyntaxKind.PlusToken:return Ve.isNumericLiteral(Xe.operand)?"".concat(Jr?"-":"").concat(Xe.operand.text):Ke.isBigIntLiteral(Xe.operand)?"".concat(Jr?"-":"").concat(Xe.operand.text.slice(0,-1)):void 0;default:return}}return Ke.isBigIntLiteral(Xe)?Xe.text.slice(0,-1):Ve.isNumericOrStringLikeLiteral(Xe)?Xe.text:void 0}return ae.kind===re.SyntaxKind.PrivateIdentifier?void 0:ae.text}M.getPropertyName=O;function ve(ae,Xe){for(let Jr of ae.elements){if(Jr.kind!==re.SyntaxKind.BindingElement)continue;let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDestructuringIdentifier=ve;function ee(ae,Xe){for(let Jr of ae.declarations){let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDeclaredVariable=ee;var he;(function(ae){ae[ae.Var=0]="Var",ae[ae.Let=1]="Let",ae[ae.Const=2]="Const"})(he=M.VariableDeclarationKind||(M.VariableDeclarationKind={}));function F(ae){return ae.flags&re.NodeFlags.Let?1:ae.flags&re.NodeFlags.Const?2:0}M.getVariableDeclarationKind=F;function x(ae){return(ae.flags&re.NodeFlags.BlockScoped)!==0}M.isBlockScopedVariableDeclarationList=x;function Q(ae){let Xe=ae.parent;return Xe.kind===re.SyntaxKind.CatchClause||x(Xe)}M.isBlockScopedVariableDeclaration=Q;function $(ae){switch(ae.kind){case re.SyntaxKind.VariableStatement:return x(ae.declarationList);case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:return!0;default:return!1}}M.isBlockScopedDeclarationStatement=$;function A(ae){switch(ae.parent.kind){case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.WhileStatement:case re.SyntaxKind.DoStatement:case re.SyntaxKind.IfStatement:case re.SyntaxKind.WithStatement:case re.SyntaxKind.LabeledStatement:return!0;default:return!1}}M.isInSingleStatementContext=A;var y;(function(ae){ae[ae.None=0]="None",ae[ae.Function=1]="Function",ae[ae.Block=2]="Block",ae[ae.Type=4]="Type",ae[ae.ConditionalType=8]="ConditionalType"})(y=M.ScopeBoundary||(M.ScopeBoundary={}));var V;(function(ae){ae[ae.Function=1]="Function",ae[ae.Block=3]="Block",ae[ae.Type=7]="Type",ae[ae.InferType=8]="InferType"})(V=M.ScopeBoundarySelector||(M.ScopeBoundarySelector={}));function L(ae){return k(ae)||Y(ae)||P(ae)}M.isScopeBoundary=L;function P(ae){switch(ae.kind){case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:case re.SyntaxKind.MappedType:return 4;case re.SyntaxKind.ConditionalType:return 8;default:return 0}}M.isTypeScopeBoundary=P;function k(ae){switch(ae.kind){case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:case re.SyntaxKind.Constructor:case re.SyntaxKind.ModuleDeclaration:case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.MethodSignature:case re.SyntaxKind.CallSignature:case re.SyntaxKind.ConstructSignature:case re.SyntaxKind.ConstructorType:case re.SyntaxKind.FunctionType:return 1;case re.SyntaxKind.SourceFile:return re.isExternalModule(ae)?1:0;default:return 0}}M.isFunctionScopeBoundary=k;function Y(ae){switch(ae.kind){case re.SyntaxKind.Block:let Xe=ae.parent;return Xe.kind!==re.SyntaxKind.CatchClause&&(Xe.kind===re.SyntaxKind.SourceFile||!k(Xe))?2:0;case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.CaseBlock:case re.SyntaxKind.CatchClause:case re.SyntaxKind.WithStatement:return 2;default:return 0}}M.isBlockScopeBoundary=Y;function U(ae){switch(ae.kind){case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.FunctionExpression:return!0;case re.SyntaxKind.FunctionDeclaration:return ae.body!==void 0;case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:return ae.parent.kind===re.SyntaxKind.ObjectLiteralExpression;default:return!1}}M.hasOwnThisReference=U;function j(ae){switch(ae.kind){case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.Constructor:return ae.body!==void 0;case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:return!0;default:return!1}}M.isFunctionWithBody=j;function H(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=[];for(;;){if(dr(ae.kind))Xe(ae);else if(ae.kind!==re.SyntaxKind.JSDocComment){let Ze=ae.getChildren(Jr);if(Ze.length===1){ae=Ze[0];continue}for(let Sr=Ze.length-1;Sr>=0;--Sr)ti.push(Ze[Sr])}if(ti.length===0)break;ae=ti.pop()}}M.forEachToken=H;function w(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=re.createScanner(Jr.languageVersion,!1,Jr.languageVariant,ti);return H(ae,Sr=>{let zr=Sr.kind===re.SyntaxKind.JsxText||Sr.pos===Sr.end?Sr.pos:Sr.getStart(Jr);if(zr!==Sr.pos){Ze.setTextPos(Sr.pos);let Wr=Ze.scan(),Je=Ze.getTokenPos();for(;Je2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=Jr.languageVariant!==re.LanguageVariant.JSX;return H(ae,zr=>{if(zr.pos!==zr.end&&(zr.kind!==re.SyntaxKind.JsxText&&re.forEachLeadingCommentRange(ti,zr.pos===0?(re.getShebang(ti)||"").length:zr.pos,Sr),Ze||d(zr)))return re.forEachTrailingCommentRange(ti,zr.end,Sr)},Jr);function Sr(zr,Wr,Je){Xe(ti,{pos:zr,end:Wr,kind:Je})}}M.forEachComment=l;function d(ae){switch(ae.kind){case re.SyntaxKind.CloseBraceToken:return ae.parent.kind!==re.SyntaxKind.JsxExpression||!D(ae.parent.parent);case re.SyntaxKind.GreaterThanToken:switch(ae.parent.kind){case re.SyntaxKind.JsxOpeningElement:return ae.end!==ae.parent.end;case re.SyntaxKind.JsxOpeningFragment:return!1;case re.SyntaxKind.JsxSelfClosingElement:return ae.end!==ae.parent.end||!D(ae.parent.parent);case re.SyntaxKind.JsxClosingElement:case re.SyntaxKind.JsxClosingFragment:return!D(ae.parent.parent.parent)}}return!0}function D(ae){return ae.kind===re.SyntaxKind.JsxElement||ae.kind===re.SyntaxKind.JsxFragment}function fe(ae){let Xe=ae.getLineStarts(),Jr=[],ti=Xe.length,Ze=ae.text,Sr=0;for(let zr=1;zrSr&&re.isLineBreak(Ze.charCodeAt(Je-1));--Je);Jr.push({pos:Sr,end:Wr,contentLength:Je-Sr}),Sr=Wr}return Jr.push({pos:Sr,end:ae.end,contentLength:ae.end-Sr}),Jr}M.getLineRanges=fe;function g(ae){let Xe=ae.getLineStarts();return Xe.length===1||Xe[1]<2||ae.text[Xe[1]-2]!=="\r"?` +`:`\r +`}M.getLineBreakStyle=g;var ne;function ue(ae,Xe){return ne===void 0?ne=re.createScanner(Xe,!1,void 0,ae):(ne.setScriptTarget(Xe),ne.setText(ae)),ne.scan(),ne}function We(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.isIdentifier()&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidIdentifier=We;function Fe(ae){return ae>=65536?2:1}function Z(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=ae.codePointAt(0);if(!re.isIdentifierStart(Jr,Xe))return!1;for(let ti=Fe(Jr);ti1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(Z(ae,Xe))return!0;let Jr=ue(ae,Xe);return Jr.getTextPos()===ae.length&&Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTokenValue()===ae}M.isValidPropertyName=Be;function ge(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidNumericLiteral=ge;function Re(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=!1,ti=ae.codePointAt(0);if(!re.isIdentifierStart(ti,Xe))return!1;for(let Ze=Fe(ti);Ze2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile();if(er(ae)&&ae.kind!==re.SyntaxKind.EndOfFileToken){let ti=ir(ae,Jr);if(ti.length!==0||!Xe)return ti}return Ye(ae,ae.getStart(Jr),Jr,Xe)}M.parseJsDocOfNode=Cr;function Ye(ae,Xe,Jr,ti){let Ze=re[ti&&Ee(Jr,ae.pos,Xe)?"forEachTrailingCommentRange":"forEachLeadingCommentRange"](Jr.text,ae.pos,(vr,mr,Ar)=>Ar===re.SyntaxKind.MultiLineCommentTrivia&&Jr.text[vr+2]==="*"?{pos:vr}:void 0);if(Ze===void 0)return[];let Sr=Ze.pos,zr=Jr.text.slice(Sr,Xe),Wr=re.createSourceFile("jsdoc.ts","".concat(zr,"var a;"),Jr.languageVersion),Je=ir(Wr.statements[0],Wr);for(let vr of Je)xe(vr,ae);return Je;function xe(vr,mr){return vr.pos+=Sr,vr.end+=Sr,vr.parent=mr,re.forEachChild(vr,Ar=>xe(Ar,vr),Ar=>{Ar.pos+=Sr,Ar.end+=Sr;for(let Oe of Ar)xe(Oe,vr)})}}var Br;(function(ae){ae[ae.ImportDeclaration=1]="ImportDeclaration",ae[ae.ImportEquals=2]="ImportEquals",ae[ae.ExportFrom=4]="ExportFrom",ae[ae.DynamicImport=8]="DynamicImport",ae[ae.Require=16]="Require",ae[ae.ImportType=32]="ImportType",ae[ae.All=63]="All",ae[ae.AllImports=59]="AllImports",ae[ae.AllStaticImports=3]="AllStaticImports",ae[ae.AllImportExpressions=24]="AllImportExpressions",ae[ae.AllRequireLike=18]="AllRequireLike",ae[ae.AllNestedImports=56]="AllNestedImports",ae[ae.AllTopLevelImports=7]="AllTopLevelImports"})(Br=M.ImportKind||(M.ImportKind={}));function Er(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ti=[];for(let Sr of Ne(ae,Xe,Jr))switch(Sr.kind){case re.SyntaxKind.ImportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.ImportEqualsDeclaration:Ze(Sr.moduleReference.expression);break;case re.SyntaxKind.ExportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.CallExpression:Ze(Sr.arguments[0]);break;case re.SyntaxKind.ImportType:Ve.isLiteralTypeNode(Sr.argument)&&Ze(Sr.argument.literal);break;default:throw new Error("unexpected node")}return ti;function Ze(Sr){Ve.isTextualLiteral(Sr)&&ti.push(Sr)}}M.findImports=Er;function Ne(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return new n(ae,Xe,Jr).find()}M.findImportLikeNodes=Ne;var n=class{constructor(ae,Xe,Jr){this._sourceFile=ae,this._options=Xe,this._ignoreFileName=Jr,this._result=[]}find(){return this._sourceFile.isDeclarationFile&&(this._options&=-25),this._options&7&&this._findImports(this._sourceFile.statements),this._options&56&&this._findNestedImports(),this._result}_findImports(ae){for(let Xe of ae)Ve.isImportDeclaration(Xe)?this._options&1&&this._result.push(Xe):Ve.isImportEqualsDeclaration(Xe)?this._options&2&&Xe.moduleReference.kind===re.SyntaxKind.ExternalModuleReference&&this._result.push(Xe):Ve.isExportDeclaration(Xe)?Xe.moduleSpecifier!==void 0&&this._options&4&&this._result.push(Xe):Ve.isModuleDeclaration(Xe)&&this._findImportsInModule(Xe)}_findImportsInModule(ae){if(ae.body!==void 0){if(ae.body.kind===re.SyntaxKind.ModuleDeclaration)return this._findImportsInModule(ae.body);this._findImports(ae.body.statements)}}_findNestedImports(){let ae=this._ignoreFileName||(this._sourceFile.flags&re.NodeFlags.JavaScriptFile)!==0,Xe,Jr;if((this._options&56)===16){if(!ae)return;Xe=/\brequire\s*[1&&this._result.push(Ze.parent)}}else Ze.kind===re.SyntaxKind.Identifier&&Ze.end-7===ti.index&&Ze.parent.kind===re.SyntaxKind.CallExpression&&Ze.parent.expression===Ze&&Ze.parent.arguments.length===1&&this._result.push(Ze.parent)}}};function lr(ae){for(;ae.flags&re.NodeFlags.NestedNamespace;)ae=ae.parent;return R(ae.modifiers,re.SyntaxKind.DeclareKeyword)||be(ae.parent)}M.isStatementInAmbientContext=lr;function be(ae){for(;ae.kind===re.SyntaxKind.ModuleBlock;){do ae=ae.parent;while(ae.flags&re.NodeFlags.NestedNamespace);if(R(ae.modifiers,re.SyntaxKind.DeclareKeyword))return!0;ae=ae.parent}return!1}M.isAmbientModuleBlock=be;function Ge(ae){let Xe=ae.parent;for(;Xe.kind===re.SyntaxKind.ParenthesizedExpression;)Xe=Xe.parent;return Ve.isCallExpression(Xe)&&ae.end<=Xe.expression.end?Xe:void 0}M.getIIFE=Ge;function ur(ae,Xe){return(ae.strict?ae[Xe]!==!1:ae[Xe]===!0)&&(Xe!=="strictPropertyInitialization"||ur(ae,"strictNullChecks"))}M.isStrictCompilerOptionEnabled=ur;function yr(ae,Xe){switch(Xe){case"stripInternal":case"declarationMap":case"emitDeclarationOnly":return ae[Xe]===!0&&yr(ae,"declaration");case"declaration":return ae.declaration||yr(ae,"composite");case"incremental":return ae.incremental===void 0?yr(ae,"composite"):ae.incremental;case"skipDefaultLibCheck":return ae.skipDefaultLibCheck||yr(ae,"skipLibCheck");case"suppressImplicitAnyIndexErrors":return ae.suppressImplicitAnyIndexErrors===!0&&yr(ae,"noImplicitAny");case"allowSyntheticDefaultImports":return ae.allowSyntheticDefaultImports!==void 0?ae.allowSyntheticDefaultImports:yr(ae,"esModuleInterop")||ae.module===re.ModuleKind.System;case"noUncheckedIndexedAccess":return ae.noUncheckedIndexedAccess===!0&&yr(ae,"strictNullChecks");case"allowJs":return ae.allowJs===void 0?yr(ae,"checkJs"):ae.allowJs;case"noImplicitAny":case"noImplicitThis":case"strictNullChecks":case"strictFunctionTypes":case"strictPropertyInitialization":case"alwaysStrict":case"strictBindCallApply":return ur(ae,Xe)}return ae[Xe]===!0}M.isCompilerOptionEnabled=yr;function Ir(ae){return ae.name.kind===re.SyntaxKind.StringLiteral||(ae.flags&re.NodeFlags.GlobalAugmentation)!==0}M.isAmbientModule=Ir;function wr(ae){return Ur(ae)}M.getCheckJsDirective=wr;function Ur(ae){let Xe;return re.forEachLeadingCommentRange(ae,(re.getShebang(ae)||"").length,(Jr,ti,Ze)=>{if(Ze===re.SyntaxKind.SingleLineCommentTrivia){let Sr=ae.slice(Jr,ti),zr=/^\/{2,3}\s*@ts-(no)?check(?:\s|$)/i.exec(Sr);zr!==null&&(Xe={pos:Jr,end:ti,enabled:zr[1]===void 0})}}),Xe}M.getTsCheckDirective=Ur;function ii(ae){return Ve.isTypeReferenceNode(ae.type)&&ae.type.typeName.kind===re.SyntaxKind.Identifier&&ae.type.typeName.escapedText==="const"}M.isConstAssertion=ii;function mi(ae){let Xe=ae;for(;;){let Jr=Xe.parent;e:switch(Jr.kind){case re.SyntaxKind.TypeAssertionExpression:case re.SyntaxKind.AsExpression:return ii(Jr);case re.SyntaxKind.PrefixUnaryExpression:if(Xe.kind!==re.SyntaxKind.NumericLiteral)return!1;switch(Jr.operator){case re.SyntaxKind.PlusToken:case re.SyntaxKind.MinusToken:Xe=Jr;break e;default:return!1}case re.SyntaxKind.PropertyAssignment:if(Jr.initializer!==Xe)return!1;Xe=Jr.parent;break;case re.SyntaxKind.ShorthandPropertyAssignment:Xe=Jr.parent;break;case re.SyntaxKind.ParenthesizedExpression:case re.SyntaxKind.ArrayLiteralExpression:case re.SyntaxKind.ObjectLiteralExpression:case re.SyntaxKind.TemplateExpression:Xe=Jr;break;default:return!1}}}M.isInConstContext=mi;function pe(ae,Xe){if(!or(ae))return!1;let Jr=Xe.getTypeAtLocation(ae.arguments[2]);if(Jr.getProperty("value")===void 0)return Jr.getProperty("set")===void 0;let ti=Jr.getProperty("writable");if(ti===void 0)return!1;let Ze=ti.valueDeclaration!==void 0&&Ve.isPropertyAssignment(ti.valueDeclaration)?Xe.getTypeAtLocation(ti.valueDeclaration.initializer):Xe.getTypeOfSymbolAtLocation(ti,ae.arguments[2]);return oi.isBooleanLiteralType(Ze,!1)}M.isReadonlyAssignmentDeclaration=pe;function or(ae){return ae.arguments.length===3&&Ve.isEntityNameExpression(ae.arguments[0])&&Ve.isNumericOrStringLikeLiteral(ae.arguments[1])&&Ve.isPropertyAccessExpression(ae.expression)&&ae.expression.name.escapedText==="defineProperty"&&Ve.isIdentifier(ae.expression.expression)&&ae.expression.expression.escapedText==="Object"}M.isBindableObjectDefinePropertyCall=or;function qr(ae){return re.isPropertyAccessExpression(ae)&&re.isIdentifier(ae.expression)&&ae.expression.escapedText==="Symbol"}M.isWellKnownSymbolLiterally=qr;function si(ae){return{displayName:"[Symbol.".concat(ae.name.text,"]"),symbolName:"__@"+ae.name.text}}M.getPropertyNameOfWellKnownSymbol=si;var Di=(ae=>{let[Xe,Jr]=ae;return Xe<"4"||Xe==="4"&&Jr<"3"})(re.versionMajorMinor.split("."));function wi(ae,Xe){let Jr={known:!0,names:[]};if(ae=Gi(ae),Di&&qr(ae))Jr.names.push(si(ae));else{let ti=Xe.getTypeAtLocation(ae);for(let Ze of oi.unionTypeParts(Xe.getBaseConstraintOfType(ti)||ti)){let Sr=oi.getPropertyNameFromType(Ze);Sr?Jr.names.push(Sr):Jr.known=!1}}return Jr}M.getLateBoundPropertyNames=wi;function Xi(ae,Xe){let Jr=O(ae);return Jr!==void 0?{known:!0,names:[{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)}]}:ae.kind===re.SyntaxKind.PrivateIdentifier?{known:!0,names:[{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName}]}:wi(ae.expression,Xe)}M.getLateBoundPropertyNamesOfPropertyName=Xi;function et(ae,Xe){let Jr=O(ae);if(Jr!==void 0)return{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)};if(ae.kind===re.SyntaxKind.PrivateIdentifier)return{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName};let{expression:ti}=ae;return Di&&qr(ti)?si(ti):oi.getPropertyNameFromType(Xe.getTypeAtLocation(ti))}M.getSingleLateBoundPropertyNameOfPropertyName=et;function Gi(ae){for(;ae.kind===re.SyntaxKind.ParenthesizedExpression;)ae=ae.expression;return ae}M.unwrapParentheses=Gi;function Wt(ae){return"".concat(ae.negative?"-":"").concat(ae.base10Value,"n")}M.formatPseudoBigInt=Wt;function Zt(ae,Xe){let Jr=ae.caseBlock.clauses.filter(Ve.isCaseClause);if(Jr.length===0)return!1;let ti=oi.unionTypeParts(Xe.getTypeAtLocation(ae.expression));if(ti.length>Jr.length)return!1;let Ze=new Set(ti.map(_r));if(Ze.has(void 0))return!1;let Sr=new Set;for(let zr of Jr){let Wr=Xe.getTypeAtLocation(zr.expression);if(M.isTypeFlagSet(Wr,re.TypeFlags.Never))continue;let Je=_r(Wr);if(Ze.has(Je))Sr.add(Je);else if(Je!=="null"&&Je!=="undefined")return!1}return Ze.size===Sr.size}M.hasExhaustiveCaseClauses=Zt;function _r(ae){if(M.isTypeFlagSet(ae,re.TypeFlags.Null))return"null";if(M.isTypeFlagSet(ae,re.TypeFlags.Undefined))return"undefined";if(M.isTypeFlagSet(ae,re.TypeFlags.NumberLiteral))return"".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?"enum:":"").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.StringLiteral))return"".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?"enum:":"","string:").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.BigIntLiteral))return Wt(ae.value);if(Ke.isUniqueESSymbolType(ae))return ae.escapedName;if(oi.isBooleanLiteralType(ae,!0))return"true";if(oi.isBooleanLiteralType(ae,!1))return"false"}function pi(ae){var Xe;if(((Xe=ae.heritageClauses)===null||Xe===void 0?void 0:Xe[0].token)===re.SyntaxKind.ExtendsKeyword)return ae.heritageClauses[0].types[0]}M.getBaseOfClassLikeExpression=pi}}),QU=wa({"node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var I=Object.getOwnPropertyDescriptor(e,a);(!I||("get"in I?!e.__esModule:I.writable||I.configurable))&&(I={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,I)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,"default",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!=="default"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e};Object.defineProperty(M,"__esModule",{value:!0}),M.convertComments=void 0;var oi=Ke(_u()),kr=i3(),dr=A1(),Lr=k1();function ar(ke,e){let a=[];return(0,kr.forEachComment)(ke,(C,I)=>{let R=I.kind==oi.SyntaxKind.SingleLineCommentTrivia?Lr.AST_TOKEN_TYPES.Line:Lr.AST_TOKEN_TYPES.Block,E=[I.pos,I.end],X=(0,dr.getLocFor)(E[0],E[1],ke),le=E[0]+2,N=I.kind===oi.SyntaxKind.SingleLineCommentTrivia?E[1]-le:E[1]-le-2;a.push({type:R,value:e.slice(le,le+N),range:E,loc:X})},ke),a}M.convertComments=ar}}),t3=wa({"node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["exported","source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportExpression:["source"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],JSXClosingFragment:[],JSXOpeningFragment:[],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],StaticBlock:["body"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},Ve=Object.keys(re);for(let Lr of Ve)Object.freeze(re[Lr]);Object.freeze(re);var Ke=new Set(["parent","leadingComments","trailingComments"]);function oi(Lr){return!Ke.has(Lr)&&Lr[0]!=="_"}function kr(Lr){return Object.keys(Lr).filter(oi)}function dr(Lr){let ar=Object.assign({},re);for(let ke of Object.keys(Lr))if(Object.prototype.hasOwnProperty.call(ar,ke)){let e=new Set(Lr[ke]);for(let a of ar[ke])e.add(a);ar[ke]=Object.freeze(Array.from(e))}else ar[ke]=Object.freeze(Array.from(Lr[ke]));return Object.freeze(ar)}M.KEYS=re,M.getKeys=kr,M.unionWith=dr}}),YU=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/get-keys.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.getKeys=void 0;var re=t3(),Ve=re.getKeys;M.getKeys=Ve}}),$U=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(Lr,ar,ke,e){e===void 0&&(e=ke);var a=Object.getOwnPropertyDescriptor(ar,ke);(!a||("get"in a?!ar.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return ar[ke]}}),Object.defineProperty(Lr,e,a)}:function(Lr,ar,ke,e){e===void 0&&(e=ke),Lr[e]=ar[ke]}),Ve=M&&M.__setModuleDefault||(Object.create?function(Lr,ar){Object.defineProperty(Lr,"default",{enumerable:!0,value:ar})}:function(Lr,ar){Lr.default=ar}),Ke=M&&M.__importStar||function(Lr){if(Lr&&Lr.__esModule)return Lr;var ar={};if(Lr!=null)for(var ke in Lr)ke!=="default"&&Object.prototype.hasOwnProperty.call(Lr,ke)&&re(ar,Lr,ke);return Ve(ar,Lr),ar};Object.defineProperty(M,"__esModule",{value:!0}),M.visitorKeys=void 0;var oi=Ke(t3()),kr={ImportAttribute:["key","value"],ArrayPattern:["decorators","elements","typeAnnotation"],ArrowFunctionExpression:["typeParameters","params","returnType","body"],AssignmentPattern:["decorators","left","right","typeAnnotation"],CallExpression:["callee","typeParameters","arguments"],ClassDeclaration:["decorators","id","typeParameters","superClass","superTypeParameters","implements","body"],ClassExpression:["decorators","id","typeParameters","superClass","superTypeParameters","implements","body"],ExportAllDeclaration:["exported","source","assertions"],ExportNamedDeclaration:["declaration","specifiers","source","assertions"],FunctionDeclaration:["id","typeParameters","params","returnType","body"],FunctionExpression:["id","typeParameters","params","returnType","body"],Identifier:["decorators","typeAnnotation"],ImportDeclaration:["specifiers","source","assertions"],ImportExpression:["source","attributes"],MethodDefinition:["decorators","key","value","typeParameters"],NewExpression:["callee","typeParameters","arguments"],ObjectPattern:["decorators","properties","typeAnnotation"],PropertyDefinition:["decorators","key","typeAnnotation","value"],RestElement:["decorators","argument","typeAnnotation"],TaggedTemplateExpression:["tag","typeParameters","quasi"],StaticBlock:["body"],JSXOpeningElement:["name","typeParameters","attributes"],JSXClosingFragment:[],JSXOpeningFragment:[],JSXSpreadChild:["expression"],Decorator:["expression"],TSAbstractKeyword:[],TSAbstractMethodDefinition:["key","value"],TSAbstractPropertyDefinition:["decorators","key","typeAnnotation"],TSAnyKeyword:[],TSArrayType:["elementType"],TSAsExpression:["expression","typeAnnotation"],TSAsyncKeyword:[],TSBigIntKeyword:[],TSBooleanKeyword:[],TSCallSignatureDeclaration:["typeParameters","params","returnType"],TSClassImplements:["expression","typeParameters"],TSConditionalType:["checkType","extendsType","trueType","falseType"],TSConstructorType:["typeParameters","params","returnType"],TSConstructSignatureDeclaration:["typeParameters","params","returnType"],TSDeclareFunction:["id","typeParameters","params","returnType","body"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:["id","typeParameters","params","returnType"],TSEnumDeclaration:["id","members"],TSEnumMember:["id","initializer"],TSExportAssignment:["expression"],TSExportKeyword:[],TSExternalModuleReference:["expression"],TSFunctionType:["typeParameters","params","returnType"],TSImportEqualsDeclaration:["id","moduleReference"],TSImportType:["parameter","qualifier","typeParameters"],TSIndexedAccessType:["indexType","objectType"],TSIndexSignature:["parameters","typeAnnotation"],TSInferType:["typeParameter"],TSInstantiationExpression:["expression","typeParameters"],TSInterfaceBody:["body"],TSInterfaceDeclaration:["id","typeParameters","extends","body"],TSInterfaceHeritage:["expression","typeParameters"],TSIntersectionType:["types"],TSIntrinsicKeyword:[],TSLiteralType:["literal"],TSMappedType:["nameType","typeParameter","typeAnnotation"],TSMethodSignature:["typeParameters","key","params","returnType"],TSModuleBlock:["body"],TSModuleDeclaration:["id","body"],TSNamedTupleMember:["label","elementType"],TSNamespaceExportDeclaration:["id"],TSNeverKeyword:[],TSNonNullExpression:["expression"],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSOptionalType:["typeAnnotation"],TSParameterProperty:["decorators","parameter"],TSPrivateKeyword:[],TSPropertySignature:["typeAnnotation","key","initializer"],TSProtectedKeyword:[],TSPublicKeyword:[],TSQualifiedName:["left","right"],TSReadonlyKeyword:[],TSRestType:["typeAnnotation"],TSStaticKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSTemplateLiteralType:["quasis","types"],TSThisType:[],TSTupleType:["elementTypes"],TSTypeAliasDeclaration:["id","typeParameters","typeAnnotation"],TSTypeAnnotation:["typeAnnotation"],TSTypeAssertion:["typeAnnotation","expression"],TSTypeLiteral:["members"],TSTypeOperator:["typeAnnotation"],TSTypeParameter:["name","constraint","default"],TSTypeParameterDeclaration:["params"],TSTypeParameterInstantiation:["params"],TSTypePredicate:["typeAnnotation","parameterName"],TSTypeQuery:["exprName"],TSTypeReference:["typeName","typeParameters"],TSUndefinedKeyword:[],TSUnionType:["types"],TSUnknownKeyword:[],TSVoidKeyword:[]},dr=oi.unionWith(kr);M.visitorKeys=dr}}),a3=wa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/index.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.visitorKeys=M.getKeys=void 0;var re=YU();Object.defineProperty(M,"getKeys",{enumerable:!0,get:function(){return re.getKeys}});var Ve=$U();Object.defineProperty(M,"visitorKeys",{enumerable:!0,get:function(){return Ve.visitorKeys}})}}),n3=wa({"node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.simpleTraverse=void 0;var re=a3();function Ve(dr){return dr!==null&&typeof dr=="object"&&typeof dr.type=="string"}function Ke(dr,Lr){let ar=dr[Lr.type];return ar!=null?ar:[]}var oi=class{constructor(dr){let Lr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.allVisitorKeys=re.visitorKeys,this.selectors=dr,this.setParentPointers=Lr}traverse(dr,Lr){if(!Ve(dr))return;this.setParentPointers&&(dr.parent=Lr),"enter"in this.selectors?this.selectors.enter(dr,Lr):dr.type in this.selectors&&this.selectors[dr.type](dr,Lr);let ar=Ke(this.allVisitorKeys,dr);if(!(ar.length<1))for(let ke of ar){let e=dr[ke];if(Array.isArray(e))for(let a of e)this.traverse(a,dr);else this.traverse(e,dr)}}};function kr(dr,Lr){let ar=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;new oi(Lr,ar).traverse(dr,void 0)}M.simpleTraverse=kr}}),ZU=wa({"node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.astConverter=void 0;var re=Y4(),Ve=QU(),Ke=A1(),oi=n3();function kr(dr,Lr,ar){let{parseDiagnostics:ke}=dr;if(ke.length)throw(0,re.convertError)(ke[0]);let e=new re.Converter(dr,{errorOnUnknownASTType:Lr.errorOnUnknownASTType||!1,shouldPreserveNodeMaps:ar}),a=e.convertProgram();(!Lr.range||!Lr.loc)&&(0,oi.simpleTraverse)(a,{enter:I=>{Lr.range||delete I.range,Lr.loc||delete I.loc}}),Lr.tokens&&(a.tokens=(0,Ke.convertTokens)(dr)),Lr.comment&&(a.comments=(0,Ve.convertComments)(dr,Lr.code));let C=e.getASTMaps();return{estree:a,astMaps:C}}M.astConverter=kr}}),Mv=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(p,m,G,oe){oe===void 0&&(oe=G);var f=Object.getOwnPropertyDescriptor(m,G);(!f||("get"in f?!m.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return m[G]}}),Object.defineProperty(p,oe,f)}:function(p,m,G,oe){oe===void 0&&(oe=G),p[oe]=m[G]}),Ve=M&&M.__setModuleDefault||(Object.create?function(p,m){Object.defineProperty(p,"default",{enumerable:!0,value:m})}:function(p,m){p.default=m}),Ke=M&&M.__importStar||function(p){if(p&&p.__esModule)return p;var m={};if(p!=null)for(var G in p)G!=="default"&&Object.prototype.hasOwnProperty.call(p,G)&&re(m,p,G);return Ve(m,p),m},oi=M&&M.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(M,"__esModule",{value:!0}),M.getModuleResolver=M.getAstFromProgram=M.getCanonicalFileName=M.ensureAbsolutePath=M.createDefaultCompilerOptionsFromExtra=M.canonicalDirname=M.CORE_COMPILER_OPTIONS=void 0;var kr=oi(Fv()),dr=Ke(_u()),Lr={noEmit:!0,noUnusedLocals:!0,noUnusedParameters:!0};M.CORE_COMPILER_OPTIONS=Lr;var ar=Object.assign(Object.assign({},Lr),{allowNonTsExtensions:!0,allowJs:!0,checkJs:!0});function ke(p){return p.debugLevel.has("typescript")?Object.assign(Object.assign({},ar),{extendedDiagnostics:!0}):ar}M.createDefaultCompilerOptionsFromExtra=ke;var e=dr.sys!==void 0?dr.sys.useCaseSensitiveFileNames:!0,a=e?p=>p:p=>p.toLowerCase();function C(p){let m=kr.default.normalize(p);return m.endsWith(kr.default.sep)&&(m=m.slice(0,-1)),a(m)}M.getCanonicalFileName=C;function I(p,m){return kr.default.isAbsolute(p)?p:kr.default.join(m.tsconfigRootDir||"/prettier-security-dirname-placeholder",p)}M.ensureAbsolutePath=I;function R(p){return kr.default.dirname(p)}M.canonicalDirname=R;var E=[dr.Extension.Dts,dr.Extension.Dcts,dr.Extension.Dmts];function X(p){var m;return p?(m=E.find(G=>p.endsWith(G)))!==null&&m!==void 0?m:kr.default.extname(p):null}function le(p,m){let G=p.getSourceFile(m.filePath),oe=X(m.filePath),f=X(G==null?void 0:G.fileName);if(oe===f)return G&&{ast:G,program:p}}M.getAstFromProgram=le;function N(p){let m;try{throw new Error("Dynamic require is not supported")}catch{let oe=["Could not find the provided parserOptions.moduleResolver.","Hint: use an absolute path if you are not in control over where the ESLint instance runs."];throw new Error(oe.join(` +`))}return m}M.getModuleResolver=N}}),ez=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,I,R){R===void 0&&(R=I);var E=Object.getOwnPropertyDescriptor(C,I);(!E||("get"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[I]}}),Object.defineProperty(a,R,E)}:function(a,C,I,R){R===void 0&&(R=I),a[R]=C[I]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var I in a)I!=="default"&&Object.prototype.hasOwnProperty.call(a,I)&&re(C,a,I);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,"__esModule",{value:!0}),M.createDefaultProgram=void 0;var kr=oi(wm()),dr=oi(Fv()),Lr=Ke(_u()),ar=Mv(),ke=(0,kr.default)("typescript-eslint:typescript-estree:createDefaultProgram");function e(a,C){if(ke("Getting default program for: %s",C.filePath||"unnamed file"),!C.projects||C.projects.length!==1)return;let I=C.projects[0],R=Lr.getParsedCommandLineOfConfigFile(I,(0,ar.createDefaultCompilerOptionsFromExtra)(C),Object.assign(Object.assign({},Lr.sys),{onUnRecoverableConfigFileDiagnostic:()=>{}}));if(!R)return;let E=Lr.createCompilerHost(R.options,!0);C.moduleResolver&&(E.resolveModuleNames=(0,ar.getModuleResolver)(C.moduleResolver).resolveModuleNames);let X=E.readFile;E.readFile=p=>dr.default.normalize(p)===dr.default.normalize(C.filePath)?a:X(p);let le=Lr.createProgram([C.filePath],R.options,E),N=le.getSourceFile(C.filePath);return N&&{ast:N,program:le}}M.createDefaultProgram=e}}),rx=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var I=Object.getOwnPropertyDescriptor(e,a);(!I||("get"in I?!e.__esModule:I.writable||I.configurable))&&(I={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,I)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,"default",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!=="default"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e},oi=M&&M.__importDefault||function(ke){return ke&&ke.__esModule?ke:{default:ke}};Object.defineProperty(M,"__esModule",{value:!0}),M.getLanguageVariant=M.getScriptKind=void 0;var kr=oi(Fv()),dr=Ke(_u());function Lr(ke,e){switch(kr.default.extname(ke).toLowerCase()){case dr.Extension.Js:case dr.Extension.Cjs:case dr.Extension.Mjs:return dr.ScriptKind.JS;case dr.Extension.Jsx:return dr.ScriptKind.JSX;case dr.Extension.Ts:case dr.Extension.Cts:case dr.Extension.Mts:return dr.ScriptKind.TS;case dr.Extension.Tsx:return dr.ScriptKind.TSX;case dr.Extension.Json:return dr.ScriptKind.JSON;default:return e?dr.ScriptKind.TSX:dr.ScriptKind.TS}}M.getScriptKind=Lr;function ar(ke){switch(ke){case dr.ScriptKind.TSX:case dr.ScriptKind.JSX:case dr.ScriptKind.JS:case dr.ScriptKind.JSON:return dr.LanguageVariant.JSX;default:return dr.LanguageVariant.Standard}}M.getLanguageVariant=ar}}),rz=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,I,R){R===void 0&&(R=I);var E=Object.getOwnPropertyDescriptor(C,I);(!E||("get"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[I]}}),Object.defineProperty(a,R,E)}:function(a,C,I,R){R===void 0&&(R=I),a[R]=C[I]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var I in a)I!=="default"&&Object.prototype.hasOwnProperty.call(a,I)&&re(C,a,I);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,"__esModule",{value:!0}),M.createIsolatedProgram=void 0;var kr=oi(wm()),dr=Ke(_u()),Lr=Mv(),ar=rx(),ke=(0,kr.default)("typescript-eslint:typescript-estree:createIsolatedProgram");function e(a,C){ke("Getting isolated program in %s mode for: %s",C.jsx?"TSX":"TS",C.filePath);let I={fileExists(){return!0},getCanonicalFileName(){return C.filePath},getCurrentDirectory(){return""},getDirectories(){return[]},getDefaultLibFileName(){return"lib.d.ts"},getNewLine(){return` +`},getSourceFile(X){return dr.createSourceFile(X,a,dr.ScriptTarget.Latest,!0,(0,ar.getScriptKind)(C.filePath,C.jsx))},readFile(){},useCaseSensitiveFileNames(){return!0},writeFile(){return null}},R=dr.createProgram([C.filePath],Object.assign({noResolve:!0,target:dr.ScriptTarget.Latest,jsx:C.jsx?dr.JsxEmit.Preserve:void 0},(0,Lr.createDefaultCompilerOptionsFromExtra)(C)),I),E=R.getSourceFile(C.filePath);if(!E)throw new Error("Expected an ast to be returned for the single-file isolated program.");return{ast:E,program:R}}M.createIsolatedProgram=e}}),o3=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(J,ie,B,q){q===void 0&&(q=B);var O=Object.getOwnPropertyDescriptor(ie,B);(!O||("get"in O?!ie.__esModule:O.writable||O.configurable))&&(O={enumerable:!0,get:function(){return ie[B]}}),Object.defineProperty(J,q,O)}:function(J,ie,B,q){q===void 0&&(q=B),J[q]=ie[B]}),Ve=M&&M.__setModuleDefault||(Object.create?function(J,ie){Object.defineProperty(J,"default",{enumerable:!0,value:ie})}:function(J,ie){J.default=ie}),Ke=M&&M.__importStar||function(J){if(J&&J.__esModule)return J;var ie={};if(J!=null)for(var B in J)B!=="default"&&Object.prototype.hasOwnProperty.call(J,B)&&re(ie,J,B);return Ve(ie,J),ie},oi=M&&M.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(M,"__esModule",{value:!0}),M.getProgramsForProjects=M.createWatchProgram=M.clearWatchCaches=void 0;var kr=oi(wm()),dr=oi(ex()),Lr=oi(QT()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)("typescript-eslint:typescript-estree:createWatchProgram"),a=new Map,C=new Map,I=new Map,R=new Map,E=new Map,X=new Map;function le(){a.clear(),C.clear(),I.clear(),X.clear(),R.clear(),E.clear()}M.clearWatchCaches=le;function N(J){return(ie,B)=>{let q=(0,ke.getCanonicalFileName)(ie),O=(()=>{let ve=J.get(q);return ve||(ve=new Set,J.set(q,ve)),ve})();return O.add(B),{close:()=>{O.delete(B)}}}}var p={code:"",filePath:""};function m(J){throw new Error(ar.flattenDiagnosticMessageText(J.messageText,ar.sys.newLine))}function G(J){var ie;return!((ie=ar.sys)===null||ie===void 0)&&ie.createHash?ar.sys.createHash(J):J}function oe(J,ie,B){let q=B.EXPERIMENTAL_useSourceOfProjectReferenceRedirect?new Set(ie.getSourceFiles().map(O=>(0,ke.getCanonicalFileName)(O.fileName))):new Set(ie.getRootFileNames().map(O=>(0,ke.getCanonicalFileName)(O)));return R.set(J,q),q}function f(J,ie,B){let q=(0,ke.getCanonicalFileName)(ie),O=[];p.code=J,p.filePath=q;let ve=C.get(q),ee=G(J);X.get(q)!==ee&&ve&&ve.size>0&&ve.forEach(he=>he(q,ar.FileWatcherEventKind.Changed));for(let[he,F]of a.entries()){let x=R.get(he),Q=null;if(x||(Q=F.getProgram().getProgram(),x=oe(he,Q,B)),x.has(q))return e("Found existing program for file. %s",q),Q=Q!=null?Q:F.getProgram().getProgram(),Q.getTypeChecker(),[Q]}e("File did not belong to any existing programs, moving to create/update. %s",q);for(let he of B.projects){let F=a.get(he);if(F){let A=se(F,q,he);if(!A)continue;if(A.getTypeChecker(),oe(he,A,B).has(q))return e("Found updated program for file. %s",q),[A];O.push(A);continue}let x=K(he,B);a.set(he,x);let Q=x.getProgram().getProgram();if(Q.getTypeChecker(),oe(he,Q,B).has(q))return e("Found program for file. %s",q),[Q];O.push(Q)}return O}M.getProgramsForProjects=f;var T=Lr.default.satisfies(ar.version,">=3.9.0-beta",{includePrerelease:!0});function K(J,ie){e("Creating watch program for %s.",J);let B=ar.createWatchCompilerHost(J,(0,ke.createDefaultCompilerOptionsFromExtra)(ie),ar.sys,ar.createAbstractBuilder,m,()=>{});ie.moduleResolver&&(B.resolveModuleNames=(0,ke.getModuleResolver)(ie.moduleResolver).resolveModuleNames);let q=B.readFile;B.readFile=(he,F)=>{let x=(0,ke.getCanonicalFileName)(he),Q=x===p.filePath?p.code:q(x,F);return Q!==void 0&&X.set(x,G(Q)),Q},B.onUnRecoverableConfigFileDiagnostic=m,B.afterProgramCreate=he=>{let F=he.getConfigFileParsingDiagnostics().filter(x=>x.category===ar.DiagnosticCategory.Error&&x.code!==18003);F.length>0&&m(F[0])},B.watchFile=N(C),B.watchDirectory=N(I);let O=B.onCachedDirectoryStructureHostCreate;B.onCachedDirectoryStructureHostCreate=he=>{let F=he.readDirectory;he.readDirectory=(x,Q,$,A,y)=>F(x,Q?Q.concat(ie.extraFileExtensions):void 0,$,A,y),O(he)},B.extraFileExtensions=ie.extraFileExtensions.map(he=>({extension:he,isMixedContent:!0,scriptKind:ar.ScriptKind.Deferred})),B.trace=e,B.useSourceOfProjectReferenceRedirect=()=>ie.EXPERIMENTAL_useSourceOfProjectReferenceRedirect;let ve;T?(B.setTimeout=void 0,B.clearTimeout=void 0):(e("Running without timeout fix"),B.setTimeout=function(he,F){for(var x=arguments.length,Q=new Array(x>2?x-2:0),$=2;${ve=void 0});let ee=ar.createWatchProgram(B);if(!T){let he=ee.getProgram;ee.getProgram=()=>(ve&&ve(),ve=void 0,he.call(ee))}return ee}M.createWatchProgram=K;function b(J){let B=dr.default.statSync(J).mtimeMs,q=E.get(J);return E.set(J,B),q===void 0?!1:Math.abs(q-B)>Number.EPSILON}function se(J,ie,B){let q=J.getProgram().getProgram();if(Eu.env.TSESTREE_NO_INVALIDATION==="true")return q;b(B)&&(e("tsconfig has changed - triggering program update. %s",B),C.get(B).forEach(A=>A(B,ar.FileWatcherEventKind.Changed)),R.delete(B));let O=q.getSourceFile(ie);if(O)return q;e("File was not found in program - triggering folder update. %s",ie);let ve=(0,ke.canonicalDirname)(ie),ee=null,he=ve,F=!1;for(;ee!==he;){ee=he;let A=I.get(ee);A&&(A.forEach(y=>{ve!==ee&&y(ve,ar.FileWatcherEventKind.Changed),y(ee,ar.FileWatcherEventKind.Changed)}),F=!0),he=(0,ke.canonicalDirname)(ee)}if(!F)return e("No callback found for file, not part of this program. %s",ie),null;if(R.delete(B),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O)return q;e("File was still not found in program after directory update - checking file deletions. %s",ie);let Q=q.getRootFileNames().find(A=>!dr.default.existsSync(A));if(!Q)return null;let $=C.get((0,ke.getCanonicalFileName)(Q));return $?(e("Marking file as deleted. %s",Q),$.forEach(A=>A(Q,ar.FileWatcherEventKind.Deleted)),R.delete(B),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O?q:(e("File was still not found in program after deletion check, assuming it is not part of this program. %s",ie),null)):(e("Could not find watch callbacks for root file. %s",Q),q)}}}),iz=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(R,E,X,le){le===void 0&&(le=X);var N=Object.getOwnPropertyDescriptor(E,X);(!N||("get"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[X]}}),Object.defineProperty(R,le,N)}:function(R,E,X,le){le===void 0&&(le=X),R[le]=E[X]}),Ve=M&&M.__setModuleDefault||(Object.create?function(R,E){Object.defineProperty(R,"default",{enumerable:!0,value:E})}:function(R,E){R.default=E}),Ke=M&&M.__importStar||function(R){if(R&&R.__esModule)return R;var E={};if(R!=null)for(var X in R)X!=="default"&&Object.prototype.hasOwnProperty.call(R,X)&&re(E,R,X);return Ve(E,R),E},oi=M&&M.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(M,"__esModule",{value:!0}),M.createProjectProgram=void 0;var kr=oi(wm()),dr=oi(Fv()),Lr=Ke(_u()),ar=o3(),ke=A1(),e=Mv(),a=(0,kr.default)("typescript-eslint:typescript-estree:createProjectProgram"),C=[Lr.Extension.Ts,Lr.Extension.Tsx,Lr.Extension.Js,Lr.Extension.Jsx,Lr.Extension.Mjs,Lr.Extension.Mts,Lr.Extension.Cjs,Lr.Extension.Cts];function I(R,E,X){a("Creating project program for: %s",X.filePath);let le=(0,ke.firstDefined)((0,ar.getProgramsForProjects)(R,X.filePath,X),N=>(0,e.getAstFromProgram)(N,X));if(!le&&!E){let N=['"parserOptions.project" has been set for @typescript-eslint/parser.',"The file does not match your project config: ".concat(dr.default.relative(X.tsconfigRootDir||"/prettier-security-dirname-placeholder",X.filePath),".")],p=!1,m=X.extraFileExtensions||[];m.forEach(oe=>{oe.startsWith(".")||N.push('Found unexpected extension "'.concat(oe,'" specified with the "extraFileExtensions" option. Did you mean ".').concat(oe,'"?')),C.includes(oe)&&N.push('You unnecessarily included the extension "'.concat(oe,'" with the "extraFileExtensions" option. This extension is already handled by the parser by default.'))});let G=dr.default.extname(X.filePath);if(!C.includes(G)){let oe="The extension for the file (".concat(G,") is non-standard");m.length>0?m.includes(G)||(N.push("".concat(oe,'. It should be added to your existing "parserOptions.extraFileExtensions".')),p=!0):(N.push("".concat(oe,'. You should add "parserOptions.extraFileExtensions" to your config.')),p=!0)}throw p||N.push("The file must be included in at least one of the projects provided."),new Error(N.join(` +`))}return le}M.createProjectProgram=I}}),tz=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(e,a,C,I){I===void 0&&(I=C);var R=Object.getOwnPropertyDescriptor(a,C);(!R||("get"in R?!a.__esModule:R.writable||R.configurable))&&(R={enumerable:!0,get:function(){return a[C]}}),Object.defineProperty(e,I,R)}:function(e,a,C,I){I===void 0&&(I=C),e[I]=a[C]}),Ve=M&&M.__setModuleDefault||(Object.create?function(e,a){Object.defineProperty(e,"default",{enumerable:!0,value:a})}:function(e,a){e.default=a}),Ke=M&&M.__importStar||function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var C in e)C!=="default"&&Object.prototype.hasOwnProperty.call(e,C)&&re(a,e,C);return Ve(a,e),a},oi=M&&M.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M,"__esModule",{value:!0}),M.createSourceFile=void 0;var kr=oi(wm()),dr=Ke(_u()),Lr=rx(),ar=(0,kr.default)("typescript-eslint:typescript-estree:createSourceFile");function ke(e,a){return ar("Getting AST without type information in %s mode for: %s",a.jsx?"TSX":"TS",a.filePath),dr.createSourceFile(a.filePath,e,dr.ScriptTarget.Latest,!0,(0,Lr.getScriptKind)(a.filePath,a.jsx))}M.createSourceFile=ke}}),az=wa({"node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.getFirstSemanticOrSyntacticError=void 0;var re=_u();function Ve(kr,dr){try{let Lr=Ke(kr.getSyntacticDiagnostics(dr));if(Lr.length)return oi(Lr[0]);let ar=Ke(kr.getSemanticDiagnostics(dr));return ar.length?oi(ar[0]):void 0}catch(Lr){console.warn('Warning From TSC: "'.concat(Lr.message));return}}M.getFirstSemanticOrSyntacticError=Ve;function Ke(kr){return kr.filter(dr=>{switch(dr.code){case 1013:case 1014:case 1044:case 1045:case 1048:case 1049:case 1070:case 1071:case 1085:case 1090:case 1096:case 1097:case 1098:case 1099:case 1117:case 1121:case 1123:case 1141:case 1162:case 1164:case 1172:case 1173:case 1175:case 1176:case 1190:case 1196:case 1200:case 1206:case 1211:case 1242:case 1246:case 1255:case 1308:case 2364:case 2369:case 2452:case 2462:case 8017:case 17012:case 17013:return!0}return!1})}function oi(kr){return Object.assign(Object.assign({},kr),{message:(0,re.flattenDiagnosticMessageText)(kr.messageText,re.sys.newLine)})}}}),s3=wa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(R,E,X,le){le===void 0&&(le=X);var N=Object.getOwnPropertyDescriptor(E,X);(!N||("get"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[X]}}),Object.defineProperty(R,le,N)}:function(R,E,X,le){le===void 0&&(le=X),R[le]=E[X]}),Ve=M&&M.__setModuleDefault||(Object.create?function(R,E){Object.defineProperty(R,"default",{enumerable:!0,value:E})}:function(R,E){R.default=E}),Ke=M&&M.__importStar||function(R){if(R&&R.__esModule)return R;var E={};if(R!=null)for(var X in R)X!=="default"&&Object.prototype.hasOwnProperty.call(R,X)&&re(E,R,X);return Ve(E,R),E},oi=M&&M.__importDefault||function(R){return R&&R.__esModule?R:{default:R}};Object.defineProperty(M,"__esModule",{value:!0}),M.createProgramFromConfigFile=M.useProvidedPrograms=void 0;var kr=oi(wm()),dr=Ke(ex()),Lr=Ke(Fv()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)("typescript-eslint:typescript-estree:useProvidedProgram");function a(R,E){e("Retrieving ast for %s from provided program instance(s)",E.filePath);let X;for(let le of R)if(X=(0,ke.getAstFromProgram)(le,E),X)break;if(!X){let le=Lr.relative(E.tsconfigRootDir||"/prettier-security-dirname-placeholder",E.filePath),N=['"parserOptions.programs" has been provided for @typescript-eslint/parser.',"The file was not found in any of the provided program instance(s): ".concat(le)];throw new Error(N.join(` +`))}return X.program.getTypeChecker(),X}M.useProvidedPrograms=a;function C(R,E){if(ar.sys===void 0)throw new Error("`createProgramFromConfigFile` is only supported in a Node-like environment.");let le=ar.getParsedCommandLineOfConfigFile(R,ke.CORE_COMPILER_OPTIONS,{onUnRecoverableConfigFileDiagnostic:p=>{throw new Error(I([p]))},fileExists:dr.existsSync,getCurrentDirectory:()=>E&&Lr.resolve(E)||"/prettier-security-dirname-placeholder",readDirectory:ar.sys.readDirectory,readFile:p=>dr.readFileSync(p,"utf-8"),useCaseSensitiveFileNames:ar.sys.useCaseSensitiveFileNames});if(le.errors.length)throw new Error(I(le.errors));let N=ar.createCompilerHost(le.options,!0);return ar.createProgram(le.fileNames,le.options,N)}M.createProgramFromConfigFile=C;function I(R){return ar.formatDiagnostics(R,{getCanonicalFileName:E=>E,getCurrentDirectory:Eu.cwd,getNewLine:()=>` +`})}}}),nz=wa({"node_modules/@typescript-eslint/typescript-estree/dist/parser.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(y,V,L,P){P===void 0&&(P=L);var k=Object.getOwnPropertyDescriptor(V,L);(!k||("get"in k?!V.__esModule:k.writable||k.configurable))&&(k={enumerable:!0,get:function(){return V[L]}}),Object.defineProperty(y,P,k)}:function(y,V,L,P){P===void 0&&(P=L),y[P]=V[L]}),Ve=M&&M.__setModuleDefault||(Object.create?function(y,V){Object.defineProperty(y,"default",{enumerable:!0,value:V})}:function(y,V){y.default=V}),Ke=M&&M.__importStar||function(y){if(y&&y.__esModule)return y;var V={};if(y!=null)for(var L in y)L!=="default"&&Object.prototype.hasOwnProperty.call(y,L)&&re(V,y,L);return Ve(V,y),V},oi=M&&M.__importDefault||function(y){return y&&y.__esModule?y:{default:y}};Object.defineProperty(M,"__esModule",{value:!0}),M.clearParseAndGenerateServicesCalls=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var kr=oi(wm()),dr=oi(Uj()),Lr=oi(QT()),ar=Fv(),ke=Ke(_u()),e=ZU(),a=Y4(),C=ez(),I=rz(),R=iz(),E=tz(),X=az(),le=Mv(),N=s3(),p=(0,kr.default)("typescript-eslint:typescript-estree:parser"),m=">=3.3.1 <4.8.0",G=[],oe=ke.version,f=Lr.default.satisfies(oe,[m].concat(G).join(" || ")),T,K=!1,b=new Map;function se(){b.clear()}M.clearProgramCache=se;function J(y){return typeof y!="string"?String(y):y}function ie(y,V,L,P){return V&&(0,N.useProvidedPrograms)(V,T)||L&&(0,R.createProjectProgram)(y,P,T)||L&&P&&(0,C.createDefaultProgram)(y,T)||(0,I.createIsolatedProgram)(y,T)}function B(){let{jsx:y}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return y?"estree.tsx":"estree.ts"}function q(){T={code:"",comment:!1,comments:[],createDefaultProgram:!1,debugLevel:new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:!1,EXPERIMENTAL_useSourceOfProjectReferenceRedirect:!1,extraFileExtensions:[],filePath:B(),jsx:!1,loc:!1,log:console.log,preserveNodeMaps:!0,programs:null,projects:[],range:!1,strict:!1,tokens:null,tsconfigRootDir:"/prettier-security-dirname-placeholder",singleRun:!1,moduleResolver:""}}function O(y){var V;if(y.debugLevel===!0?T.debugLevel=new Set(["typescript-eslint"]):Array.isArray(y.debugLevel)&&(T.debugLevel=new Set(y.debugLevel)),T.debugLevel.size>0){let L=[];T.debugLevel.has("typescript-eslint")&&L.push("typescript-eslint:*"),(T.debugLevel.has("eslint")||kr.default.enabled("eslint:*,-eslint:code-path"))&&L.push("eslint:*,-eslint:code-path"),kr.default.enable(L.join(","))}if(T.range=typeof y.range=="boolean"&&y.range,T.loc=typeof y.loc=="boolean"&&y.loc,typeof y.tokens=="boolean"&&y.tokens&&(T.tokens=[]),typeof y.comment=="boolean"&&y.comment&&(T.comment=!0,T.comments=[]),typeof y.jsx!="boolean"?T.jsx=!1:T.jsx=y.jsx,typeof y.filePath=="string"&&y.filePath!==""?T.filePath=y.filePath:T.filePath=B(T),typeof y.errorOnUnknownASTType=="boolean"&&y.errorOnUnknownASTType&&(T.errorOnUnknownASTType=!0),typeof y.loggerFn=="function"?T.log=y.loggerFn:y.loggerFn===!1&&(T.log=()=>{}),typeof y.tsconfigRootDir=="string"&&(T.tsconfigRootDir=y.tsconfigRootDir),T.filePath=(0,le.ensureAbsolutePath)(T.filePath,T),Array.isArray(y.programs)){if(!y.programs.length)throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.");T.programs=y.programs,p("parserOptions.programs was provided, so parserOptions.project will be ignored.")}if(!T.programs){let L=((V=y.projectFolderIgnoreList)!==null&&V!==void 0?V:["**/node_modules/**"]).reduce((P,k)=>(typeof k=="string"&&P.push(k),P),[]).map(P=>P.startsWith("!")?P:"!".concat(P));T.projects=[]}Array.isArray(y.extraFileExtensions)&&y.extraFileExtensions.every(L=>typeof L=="string")&&(T.extraFileExtensions=y.extraFileExtensions),typeof y.preserveNodeMaps=="boolean"&&(T.preserveNodeMaps=y.preserveNodeMaps),T.createDefaultProgram=typeof y.createDefaultProgram=="boolean"&&y.createDefaultProgram,T.EXPERIMENTAL_useSourceOfProjectReferenceRedirect=typeof y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect=="boolean"&&y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect,typeof y.moduleResolver=="string"&&(T.moduleResolver=y.moduleResolver)}function ve(){var y;if(!f&&!K){if(typeof Eu>"u"?!1:(y=Eu.stdout)===null||y===void 0?void 0:y.isTTY){let L="=============",P=[L,"WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.","You may find that it works just fine, or you may not.","SUPPORTED TYPESCRIPT VERSIONS: ".concat(m),"YOUR TYPESCRIPT VERSION: ".concat(oe),"Please only submit bug reports when using the officially supported version.",L];T.log(P.join(` + +`))}K=!0}}function ee(y){if(Eu.env.TSESTREE_SINGLE_RUN==="false"){T.singleRun=!1;return}if(Eu.env.TSESTREE_SINGLE_RUN==="true"){T.singleRun=!0;return}if(y!=null&&y.allowAutomaticSingleRunInference&&(Eu.env.CI==="true"||Eu.argv[1].endsWith((0,ar.normalize)("node_modules/.bin/eslint")))){T.singleRun=!0;return}T.singleRun=!1}function he(y,V){let{ast:L}=F(y,V,!1);return L}M.parse=he;function F(y,V,L){if(q(),V!=null&&V.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()');y=J(y),T.code=y,typeof V<"u"&&O(V),ve(),ee(V);let P=(0,E.createSourceFile)(y,T),{estree:k,astMaps:Y}=(0,e.astConverter)(P,T,L);return{ast:k,esTreeNodeToTSNodeMap:Y.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:Y.tsNodeToESTreeNodeMap}}function x(y,V){return F(y,V,!0)}M.parseWithNodeMaps=x;var Q={};function $(){Q={}}M.clearParseAndGenerateServicesCalls=$;function A(y,V){var L;q(),y=J(y),T.code=y,typeof V<"u"&&(O(V),typeof V.errorOnTypeScriptSyntacticAndSemanticIssues=="boolean"&&V.errorOnTypeScriptSyntacticAndSemanticIssues&&(T.errorOnTypeScriptSyntacticAndSemanticIssues=!0)),ve(),ee(V),T.singleRun&&!T.programs&&((L=T.projects)===null||L===void 0?void 0:L.length)>0&&(T.programs={*[Symbol.iterator](){for(let w of T.projects){let l=b.get(w);if(l)yield l;else{p("Detected single-run/CLI usage, creating Program once ahead of time for project: %s",w);let d=(0,N.createProgramFromConfigFile)(w);b.set(w,d),yield d}}}});let P=T.programs!=null||T.projects&&T.projects.length>0,k,Y;if(T.singleRun&&V.filePath&&(Q[V.filePath]=(Q[V.filePath]||0)+1),T.singleRun&&V.filePath&&Q[V.filePath]>1){let w=(0,I.createIsolatedProgram)(y,T);k=w.ast,Y=w.program}else{let w=ie(y,T.programs,P,T.createDefaultProgram);k=w.ast,Y=w.program}let U=typeof T.preserveNodeMaps=="boolean"?T.preserveNodeMaps:!0,{estree:j,astMaps:H}=(0,e.astConverter)(k,T,U);if(Y&&T.errorOnTypeScriptSyntacticAndSemanticIssues){let w=(0,X.getFirstSemanticOrSyntacticError)(Y,k);if(w)throw(0,a.convertError)(w)}return{ast:j,services:{hasFullTypeInformation:P,program:Y,esTreeNodeToTSNodeMap:H.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:H.tsNodeToESTreeNodeMap}}}M.parseAndGenerateServices=A}}),oz=wa({"node_modules/@typescript-eslint/typescript-estree/package.json"(M,re){re.exports={name:"@typescript-eslint/typescript-estree",version:"5.27.0",description:"A parser that converts TypeScript source code into an ESTree compatible form",main:"dist/index.js",types:"dist/index.d.ts",files:["dist","README.md","LICENSE"],engines:{node:"^12.22.0 || ^14.17.0 || >=16.0.0"},repository:{type:"git",url:"https://github.com/typescript-eslint/typescript-eslint.git",directory:"packages/typescript-estree"},bugs:{url:"https://github.com/typescript-eslint/typescript-eslint/issues"},license:"BSD-2-Clause",keywords:["ast","estree","ecmascript","javascript","typescript","parser","syntax"],scripts:{build:"tsc -b tsconfig.build.json",postbuild:"downlevel-dts dist _ts3.4/dist",clean:"tsc -b tsconfig.build.json --clean",postclean:"rimraf dist && rimraf _ts3.4 && rimraf coverage",format:'prettier --write "./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}" --ignore-path ../../.prettierignore',lint:"eslint . --ignore-path='../../.eslintignore'",test:"jest --coverage",typecheck:"tsc -p tsconfig.json --noEmit"},dependencies:{"@typescript-eslint/types":"5.27.0","@typescript-eslint/visitor-keys":"5.27.0",debug:"^4.3.4",globby:"^11.1.0","is-glob":"^4.0.3",semver:"^7.3.7",tsutils:"^3.21.0"},devDependencies:{"@babel/code-frame":"*","@babel/parser":"*","@types/babel__code-frame":"*","@types/debug":"*","@types/glob":"*","@types/is-glob":"*","@types/semver":"*","@types/tmp":"*","@typescript-eslint/shared-fixtures":"5.27.0",glob:"*","jest-specific-snapshot":"*","make-dir":"*",tmp:"*",typescript:"*"},peerDependenciesMeta:{typescript:{optional:!0}},funding:{type:"opencollective",url:"https://opencollective.com/typescript-eslint"},typesVersions:{"<3.8":{"*":["_ts3.4/*"]}},gitHead:"e0db364b94158437f041db3597101d0c8b30d8bc"}}}),sz=wa({"node_modules/@typescript-eslint/typescript-estree/dist/index.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(ar,ke,e,a){a===void 0&&(a=e);var C=Object.getOwnPropertyDescriptor(ke,e);(!C||("get"in C?!ke.__esModule:C.writable||C.configurable))&&(C={enumerable:!0,get:function(){return ke[e]}}),Object.defineProperty(ar,a,C)}:function(ar,ke,e,a){a===void 0&&(a=e),ar[a]=ke[e]}),Ve=M&&M.__exportStar||function(ar,ke){for(var e in ar)e!=="default"&&!Object.prototype.hasOwnProperty.call(ke,e)&&re(ke,ar,e)};Object.defineProperty(M,"__esModule",{value:!0}),M.version=M.visitorKeys=M.createProgram=M.clearCaches=M.simpleTraverse=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var Ke=nz();Object.defineProperty(M,"parse",{enumerable:!0,get:function(){return Ke.parse}}),Object.defineProperty(M,"parseAndGenerateServices",{enumerable:!0,get:function(){return Ke.parseAndGenerateServices}}),Object.defineProperty(M,"parseWithNodeMaps",{enumerable:!0,get:function(){return Ke.parseWithNodeMaps}}),Object.defineProperty(M,"clearProgramCache",{enumerable:!0,get:function(){return Ke.clearProgramCache}});var oi=n3();Object.defineProperty(M,"simpleTraverse",{enumerable:!0,get:function(){return oi.simpleTraverse}}),Ve(k1(),M);var kr=o3();Object.defineProperty(M,"clearCaches",{enumerable:!0,get:function(){return kr.clearWatchCaches}});var dr=s3();Object.defineProperty(M,"createProgram",{enumerable:!0,get:function(){return dr.createProgramFromConfigFile}}),Ve(rx(),M);var Lr=a3();Object.defineProperty(M,"visitorKeys",{enumerable:!0,get:function(){return Lr.visitorKeys}}),M.version=oz().version}}),cz=wa({"src/language-js/parse/typescript.js"(M,re){Ea();var Ve=h4(),Ke=hj(),oi=Pj(),kr=Ij(),dr=Rj(),Lr={loc:!0,range:!0,comment:!0,jsx:!0,tokens:!0,loggerFn:!1,project:[]};function ar(a){let{message:C,lineNumber:I,column:R}=a;return typeof I!="number"?a:Ve(C,{start:{line:I,column:R+1}})}function ke(a,C){let I=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},R=kr(a),E=e(a),{parseWithNodeMaps:X}=sz(),{result:le,error:N}=Ke(()=>X(R,Object.assign(Object.assign({},Lr),{},{jsx:E})),()=>X(R,Object.assign(Object.assign({},Lr),{},{jsx:!E})));if(!le)throw ar(N);return I.originalText=a,I.tsParseResult=le,dr(le.ast,I)}function e(a){return new RegExp(["(?:^[^\"'`]*)"].join(""),"m").test(a)}re.exports={parsers:{typescript:oi(ke)}}}}),PW=cz();export{PW as default}; diff --git a/node_modules/prettier/esm/parser-yaml.mjs b/node_modules/prettier/esm/parser-yaml.mjs new file mode 100644 index 0000000..d49e3b8 --- /dev/null +++ b/node_modules/prettier/esm/parser-yaml.mjs @@ -0,0 +1,150 @@ +"use strict";var De=Object.defineProperty,bt=Object.getOwnPropertyDescriptor,Fe=Object.getOwnPropertyNames,wt=Object.prototype.hasOwnProperty,xe=(s,e)=>function(){return s&&(e=(0,s[Fe(s)[0]])(s=0)),e},F=(s,e)=>function(){return e||(0,s[Fe(s)[0]])((e={exports:{}}).exports,e),e.exports},St=(s,e)=>{for(var n in e)De(s,n,{get:e[n],enumerable:!0})},Et=(s,e,n,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let h of Fe(e))!wt.call(s,h)&&h!==n&&De(s,h,{get:()=>e[h],enumerable:!(c=bt(e,h))||c.enumerable});return s},se=s=>Et(De({},"__esModule",{value:!0}),s),Ke,$e,Te,D=xe({""(){Ke={},$e=[],Te={env:Ke,argv:$e}}}),Mt=F({"src/common/parser-create-error.js"(s,e){"use strict";D();function n(c,h){let d=new SyntaxError(c+" ("+h.start.line+":"+h.start.column+")");return d.loc=h,d}e.exports=n}}),Ot=F({"src/language-yaml/pragma.js"(s,e){"use strict";D();function n(d){return/^\s*@(?:prettier|format)\s*$/.test(d)}function c(d){return/^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/.test(d)}function h(d){return`# @format + +`.concat(d)}e.exports={isPragma:n,hasPragma:c,insertPragma:h}}}),Lt=F({"src/language-yaml/loc.js"(s,e){"use strict";D();function n(h){return h.position.start.offset}function c(h){return h.position.end.offset}e.exports={locStart:n,locEnd:c}}}),te={};St(te,{__assign:()=>qe,__asyncDelegator:()=>Dt,__asyncGenerator:()=>Yt,__asyncValues:()=>Ft,__await:()=>Ce,__awaiter:()=>Pt,__classPrivateFieldGet:()=>Ut,__classPrivateFieldSet:()=>Kt,__createBinding:()=>Rt,__decorate:()=>Tt,__exportStar:()=>qt,__extends:()=>At,__generator:()=>It,__importDefault:()=>Qt,__importStar:()=>Vt,__makeTemplateObject:()=>Wt,__metadata:()=>kt,__param:()=>Ct,__read:()=>He,__rest:()=>Nt,__spread:()=>Bt,__spreadArrays:()=>jt,__values:()=>Ye});function At(s,e){Re(s,e);function n(){this.constructor=s}s.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function Nt(s,e){var n={};for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&e.indexOf(c)<0&&(n[c]=s[c]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var h=0,c=Object.getOwnPropertySymbols(s);h=0;M--)(y=s[M])&&(d=(h<3?y(d):h>3?y(e,n,d):y(e,n))||d);return h>3&&d&&Object.defineProperty(e,n,d),d}function Ct(s,e){return function(n,c){e(n,c,s)}}function kt(s,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(s,e)}function Pt(s,e,n,c){function h(d){return d instanceof n?d:new n(function(y){y(d)})}return new(n||(n=Promise))(function(d,y){function M(E){try{w(c.next(E))}catch(T){y(T)}}function k(E){try{w(c.throw(E))}catch(T){y(T)}}function w(E){E.done?d(E.value):h(E.value).then(M,k)}w((c=c.apply(s,e||[])).next())})}function It(s,e){var n={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},c,h,d,y;return y={next:M(0),throw:M(1),return:M(2)},typeof Symbol=="function"&&(y[Symbol.iterator]=function(){return this}),y;function M(w){return function(E){return k([w,E])}}function k(w){if(c)throw new TypeError("Generator is already executing.");for(;n;)try{if(c=1,h&&(d=w[0]&2?h.return:w[0]?h.throw||((d=h.return)&&d.call(h),0):h.next)&&!(d=d.call(h,w[1])).done)return d;switch(h=0,d&&(w=[w[0]&2,d.value]),w[0]){case 0:case 1:d=w;break;case 4:return n.label++,{value:w[1],done:!1};case 5:n.label++,h=w[1],w=[0];continue;case 7:w=n.ops.pop(),n.trys.pop();continue;default:if(d=n.trys,!(d=d.length>0&&d[d.length-1])&&(w[0]===6||w[0]===2)){n=0;continue}if(w[0]===3&&(!d||w[1]>d[0]&&w[1]=s.length&&(s=void 0),{value:s&&s[c++],done:!s}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function He(s,e){var n=typeof Symbol=="function"&&s[Symbol.iterator];if(!n)return s;var c=n.call(s),h,d=[],y;try{for(;(e===void 0||e-- >0)&&!(h=c.next()).done;)d.push(h.value)}catch(M){y={error:M}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(y)throw y.error}}return d}function Bt(){for(var s=[],e=0;e1||M(I,C)})})}function M(I,C){try{k(c[I](C))}catch(q){T(d[0][3],q)}}function k(I){I.value instanceof Ce?Promise.resolve(I.value.v).then(w,E):T(d[0][2],I)}function w(I){M("next",I)}function E(I){M("throw",I)}function T(I,C){I(C),d.shift(),d.length&&M(d[0][0],d[0][1])}}function Dt(s){var e,n;return e={},c("next"),c("throw",function(h){throw h}),c("return"),e[Symbol.iterator]=function(){return this},e;function c(h,d){e[h]=s[h]?function(y){return(n=!n)?{value:Ce(s[h](y)),done:h==="return"}:d?d(y):y}:d}}function Ft(s){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=s[Symbol.asyncIterator],n;return e?e.call(s):(s=typeof Ye=="function"?Ye(s):s[Symbol.iterator](),n={},c("next"),c("throw"),c("return"),n[Symbol.asyncIterator]=function(){return this},n);function c(d){n[d]=s[d]&&function(y){return new Promise(function(M,k){y=s[d](y),h(M,k,y.done,y.value)})}}function h(d,y,M,k){Promise.resolve(k).then(function(w){d({value:w,done:M})},y)}}function Wt(s,e){return Object.defineProperty?Object.defineProperty(s,"raw",{value:e}):s.raw=e,s}function Vt(s){if(s&&s.__esModule)return s;var e={};if(s!=null)for(var n in s)Object.hasOwnProperty.call(s,n)&&(e[n]=s[n]);return e.default=s,e}function Qt(s){return s&&s.__esModule?s:{default:s}}function Ut(s,e){if(!e.has(s))throw new TypeError("attempted to get private field on non-instance");return e.get(s)}function Kt(s,e,n){if(!e.has(s))throw new TypeError("attempted to set private field on non-instance");return e.set(s,n),n}var Re,qe,ae=xe({"node_modules/tslib/tslib.es6.js"(){D(),Re=function(s,e){return Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,c){n.__proto__=c}||function(n,c){for(var h in c)c.hasOwnProperty(h)&&(n[h]=c[h])},Re(s,e)},qe=function(){return qe=Object.assign||function(e){for(var n,c=1,h=arguments.length;cthis.string.length)return null;for(var y=0,M=this.offsets;M[y+1]<=d;)y++;var k=d-M[y];return{line:y,column:k}},h.prototype.indexForLocation=function(d){var y=d.line,M=d.column;return y<0||y>=this.offsets.length||M<0||M>this.lengthOfLine(y)?null:this.offsets[y]+M},h.prototype.lengthOfLine=function(d){var y=this.offsets[d],M=d===this.offsets.length-1?this.string.length:this.offsets[d+1];return M-y},h}();s.LinesAndColumns=c,s.default=c}}),Jt=F({"node_modules/yaml-unist-parser/lib/utils/define-parents.js"(s){"use strict";D(),s.__esModule=!0;function e(n,c){c===void 0&&(c=null),"children"in n&&n.children.forEach(function(h){return e(h,n)}),"anchor"in n&&n.anchor&&e(n.anchor,n),"tag"in n&&n.tag&&e(n.tag,n),"leadingComments"in n&&n.leadingComments.forEach(function(h){return e(h,n)}),"middleComments"in n&&n.middleComments.forEach(function(h){return e(h,n)}),"indicatorComment"in n&&n.indicatorComment&&e(n.indicatorComment,n),"trailingComment"in n&&n.trailingComment&&e(n.trailingComment,n),"endComments"in n&&n.endComments.forEach(function(h){return e(h,n)}),Object.defineProperty(n,"_parent",{value:c,enumerable:!1})}s.defineParents=e}}),We=F({"node_modules/yaml-unist-parser/lib/utils/get-point-text.js"(s){"use strict";D(),s.__esModule=!0;function e(n){return n.line+":"+n.column}s.getPointText=e}}),xt=F({"node_modules/yaml-unist-parser/lib/attach.js"(s){"use strict";D(),s.__esModule=!0;var e=Jt(),n=We();function c(w){e.defineParents(w);var E=h(w),T=w.children.slice();w.comments.sort(function(I,C){return I.position.start.offset-C.position.end.offset}).filter(function(I){return!I._parent}).forEach(function(I){for(;T.length>1&&I.position.start.line>T[0].position.end.line;)T.shift();y(I,E,T[0])})}s.attachComments=c;function h(w){for(var E=Array.from(new Array(w.position.end.line),function(){return{}}),T=0,I=w.comments;T1&&E.type!=="document"&&E.type!=="documentHead"){var C=E.position.end,q=w[C.line-1].trailingAttachableNode;(!q||C.column>=q.position.end.column)&&(w[C.line-1].trailingAttachableNode=E)}if(E.type!=="root"&&E.type!=="document"&&E.type!=="documentHead"&&E.type!=="documentBody")for(var R=E.position,T=R.start,C=R.end,j=[C.line].concat(T.line===C.line?[]:T.line),K=0,m=j;K=t.position.end.column)&&(w[a-1].trailingNode=E)}"children"in E&&E.children.forEach(function(r){d(w,r)})}}function y(w,E,T){var I=w.position.start.line,C=E[I-1].trailingAttachableNode;if(C){if(C.trailingComment)throw new Error("Unexpected multiple trailing comment at "+n.getPointText(w.position.start));e.defineParents(w,C),C.trailingComment=w;return}for(var q=I;q>=T.position.start.line;q--){var R=E[q-1].trailingNode,j=void 0;if(R)j=R;else if(q!==I&&E[q-1].comment)j=E[q-1].comment._parent;else continue;if((j.type==="sequence"||j.type==="mapping")&&(j=j.children[0]),j.type==="mappingItem"){var K=j.children,m=K[0],a=K[1];j=k(m)?m:a}for(;;){if(M(j,w)){e.defineParents(w,j),j.endComments.push(w);return}if(!j._parent)break;j=j._parent}break}for(var q=I+1;q<=T.position.end.line;q++){var t=E[q-1].leadingAttachableNode;if(t){e.defineParents(w,t),t.leadingComments.push(w);return}}var r=T.children[1];e.defineParents(w,r),r.endComments.push(w)}function M(w,E){if(w.position.start.offsetE.position.end.offset)switch(w.type){case"flowMapping":case"flowSequence":return w.children.length===0||E.position.start.line>w.children[w.children.length-1].position.end.line}if(E.position.end.offsetw.position.start.column;case"mappingKey":case"mappingValue":return E.position.start.column>w._parent.position.start.column&&(w.children.length===0||w.children.length===1&&w.children[0].type!=="blockFolded"&&w.children[0].type!=="blockLiteral")&&(w.type==="mappingValue"||k(w));default:return!1}}function k(w){return w.position.start!==w.position.end&&(w.children.length===0||w.position.start.offset!==w.children[0].position.start.offset)}}}),me=F({"node_modules/yaml-unist-parser/lib/factories/node.js"(s){"use strict";D(),s.__esModule=!0;function e(n,c){return{type:n,position:c}}s.createNode=e}}),Ht=F({"node_modules/yaml-unist-parser/lib/factories/root.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d,y){return e.__assign(e.__assign({},n.createNode("root",h)),{children:d,comments:y})}s.createRoot=c}}),Gt=F({"node_modules/yaml-unist-parser/lib/preprocess.js"(s){"use strict";D(),s.__esModule=!0;function e(n){switch(n.type){case"DOCUMENT":for(var c=n.contents.length-1;c>=0;c--)n.contents[c].type==="BLANK_LINE"?n.contents.splice(c,1):e(n.contents[c]);for(var c=n.directives.length-1;c>=0;c--)n.directives[c].type==="BLANK_LINE"&&n.directives.splice(c,1);break;case"FLOW_MAP":case"FLOW_SEQ":case"MAP":case"SEQ":for(var c=n.items.length-1;c>=0;c--){var h=n.items[c];"char"in h||(h.type==="BLANK_LINE"?n.items.splice(c,1):e(h))}break;case"MAP_KEY":case"MAP_VALUE":case"SEQ_ITEM":n.node&&e(n.node);break;case"ALIAS":case"BLANK_LINE":case"BLOCK_FOLDED":case"BLOCK_LITERAL":case"COMMENT":case"DIRECTIVE":case"PLAIN":case"QUOTE_DOUBLE":case"QUOTE_SINGLE":break;default:throw new Error("Unexpected node type "+JSON.stringify(n.type))}}s.removeCstBlankLine=e}}),Oe=F({"node_modules/yaml-unist-parser/lib/factories/leading-comment-attachable.js"(s){"use strict";D(),s.__esModule=!0;function e(){return{leadingComments:[]}}s.createLeadingCommentAttachable=e}}),Be=F({"node_modules/yaml-unist-parser/lib/factories/trailing-comment-attachable.js"(s){"use strict";D(),s.__esModule=!0;function e(n){return n===void 0&&(n=null),{trailingComment:n}}s.createTrailingCommentAttachable=e}}),Se=F({"node_modules/yaml-unist-parser/lib/factories/comment-attachable.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=Be();function h(){return e.__assign(e.__assign({},n.createLeadingCommentAttachable()),c.createTrailingCommentAttachable())}s.createCommentAttachable=h}}),zt=F({"node_modules/yaml-unist-parser/lib/factories/alias.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,M){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("alias",d)),n.createCommentAttachable()),y),{value:M})}s.createAlias=h}}),Zt=F({"node_modules/yaml-unist-parser/lib/transforms/alias.js"(s){"use strict";D(),s.__esModule=!0;var e=zt();function n(c,h){var d=c.cstNode;return e.createAlias(h.transformRange({origStart:d.valueRange.origStart-1,origEnd:d.valueRange.origEnd}),h.transformContent(c),d.rawValue)}s.transformAlias=n}}),Xt=F({"node_modules/yaml-unist-parser/lib/factories/block-folded.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:"blockFolded"})}s.createBlockFolded=n}}),en=F({"node_modules/yaml-unist-parser/lib/factories/block-value.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,M,k,w,E){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("blockValue",d)),n.createLeadingCommentAttachable()),y),{chomping:M,indent:k,value:w,indicatorComment:E})}s.createBlockValue=h}}),Ge=F({"node_modules/yaml-unist-parser/lib/constants.js"(s){"use strict";D(),s.__esModule=!0;var e;(function(n){n.Tag="!",n.Anchor="&",n.Comment="#"})(e=s.PropLeadingCharacter||(s.PropLeadingCharacter={}))}}),tn=F({"node_modules/yaml-unist-parser/lib/factories/anchor.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode("anchor",h)),{value:d})}s.createAnchor=c}}),Ve=F({"node_modules/yaml-unist-parser/lib/factories/comment.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode("comment",h)),{value:d})}s.createComment=c}}),nn=F({"node_modules/yaml-unist-parser/lib/factories/content.js"(s){"use strict";D(),s.__esModule=!0;function e(n,c,h){return{anchor:c,tag:n,middleComments:h}}s.createContent=e}}),rn=F({"node_modules/yaml-unist-parser/lib/factories/tag.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode("tag",h)),{value:d})}s.createTag=c}}),ze=F({"node_modules/yaml-unist-parser/lib/transforms/content.js"(s){"use strict";D(),s.__esModule=!0;var e=Ge(),n=tn(),c=Ve(),h=nn(),d=rn();function y(M,k,w){w===void 0&&(w=function(){return!1});for(var E=M.cstNode,T=[],I=null,C=null,q=null,R=0,j=E.props;R=0;K--){var m=w.contents[K];if(m.type==="COMMENT"){var a=E.transformNode(m);T&&T.line===a.position.start.line?R.unshift(a):j?I.unshift(a):a.position.start.offset>=w.valueRange.origEnd?q.unshift(a):I.unshift(a)}else j=!0}if(q.length>1)throw new Error("Unexpected multiple document trailing comments at "+d.getPointText(q[1].position.start));if(R.length>1)throw new Error("Unexpected multiple documentHead trailing comments at "+d.getPointText(R[1].position.start));return{comments:I,endComments:C,documentTrailingComment:c.getLast(q)||null,documentHeadTrailingComment:c.getLast(R)||null}}function k(w,E,T){var I=h.getMatchIndex(T.text.slice(w.valueRange.origEnd),/^\.\.\./),C=I===-1?w.valueRange.origEnd:Math.max(0,w.valueRange.origEnd-1);T.text[C-1]==="\r"&&C--;var q=T.transformRange({origStart:E!==null?E.position.start.offset:C,origEnd:C}),R=I===-1?q.end:T.transformOffset(w.valueRange.origEnd+3);return{position:q,documentEndPoint:R}}}}),hn=F({"node_modules/yaml-unist-parser/lib/factories/document-head.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=me(),h=Be();function d(y,M,k,w){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("documentHead",y)),n.createEndCommentAttachable(k)),h.createTrailingCommentAttachable(w)),{children:M})}s.createDocumentHead=d}}),pn=F({"node_modules/yaml-unist-parser/lib/transforms/document-head.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=hn(),c=Xe();function h(M,k){var w,E=M.cstNode,T=d(E,k),I=T.directives,C=T.comments,q=T.endComments,R=y(E,I,k),j=R.position,K=R.endMarkerPoint;(w=k.comments).push.apply(w,e.__spreadArrays(C,q));var m=function(a){return a&&k.comments.push(a),n.createDocumentHead(j,I,q,a)};return{createDocumentHeadWithTrailingComment:m,documentHeadEndMarkerPoint:K}}s.transformDocumentHead=h;function d(M,k){for(var w=[],E=[],T=[],I=!1,C=M.directives.length-1;C>=0;C--){var q=k.transformNode(M.directives[C]);q.type==="comment"?I?E.unshift(q):T.unshift(q):(I=!0,w.unshift(q))}return{directives:w,comments:E,endComments:T}}function y(M,k,w){var E=c.getMatchIndex(w.text.slice(0,M.valueRange.origStart),/---\s*$/);E>0&&!/[\r\n]/.test(w.text[E-1])&&(E=-1);var T=E===-1?{origStart:M.valueRange.origStart,origEnd:M.valueRange.origStart}:{origStart:E,origEnd:E+3};return k.length!==0&&(T.origStart=k[0].position.start.offset),{position:w.transformRange(T),endMarkerPoint:E===-1?null:w.transformOffset(E)}}}}),gn=F({"node_modules/yaml-unist-parser/lib/transforms/document.js"(s){"use strict";D(),s.__esModule=!0;var e=fn(),n=Le(),c=dn(),h=pn();function d(y,M){var k=h.transformDocumentHead(y,M),w=k.createDocumentHeadWithTrailingComment,E=k.documentHeadEndMarkerPoint,T=c.transformDocumentBody(y,M,E),I=T.documentBody,C=T.documentEndPoint,q=T.documentTrailingComment,R=T.documentHeadTrailingComment,j=w(R);return q&&M.comments.push(q),e.createDocument(n.createPosition(j.position.start,C),j,I,q)}s.transformDocument=d}}),et=F({"node_modules/yaml-unist-parser/lib/factories/flow-collection.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,M,k){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode("flowCollection",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),M),{children:k})}s.createFlowCollection=d}}),_n=F({"node_modules/yaml-unist-parser/lib/factories/flow-mapping.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=et();function c(h,d,y){return e.__assign(e.__assign({},n.createFlowCollection(h,d,y)),{type:"flowMapping"})}s.createFlowMapping=c}}),tt=F({"node_modules/yaml-unist-parser/lib/factories/flow-mapping-item.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,M){return e.__assign(e.__assign(e.__assign({},c.createNode("flowMappingItem",d)),n.createLeadingCommentAttachable()),{children:[y,M]})}s.createFlowMappingItem=h}}),je=F({"node_modules/yaml-unist-parser/lib/utils/extract-comments.js"(s){"use strict";D(),s.__esModule=!0;function e(n,c){for(var h=[],d=0,y=n;d=0;d--)if(h.test(n[d]))return d;return-1}s.findLastCharIndex=e}}),Tn=F({"node_modules/yaml-unist-parser/lib/transforms/plain.js"(s){"use strict";D(),s.__esModule=!0;var e=An(),n=Nn();function c(h,d){var y=h.cstNode;return e.createPlain(d.transformRange({origStart:y.valueRange.origStart,origEnd:n.findLastCharIndex(d.text,y.valueRange.origEnd-1,/\S/)+1}),d.transformContent(h),y.strValue)}s.transformPlain=c}}),Cn=F({"node_modules/yaml-unist-parser/lib/factories/quote-double.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:"quoteDouble"})}s.createQuoteDouble=n}}),kn=F({"node_modules/yaml-unist-parser/lib/factories/quote-value.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,M){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("quoteValue",d)),y),n.createCommentAttachable()),{value:M})}s.createQuoteValue=h}}),at=F({"node_modules/yaml-unist-parser/lib/transforms/quote-value.js"(s){"use strict";D(),s.__esModule=!0;var e=kn();function n(c,h){var d=c.cstNode;return e.createQuoteValue(h.transformRange(d.valueRange),h.transformContent(c),d.strValue)}s.transformAstQuoteValue=n}}),Pn=F({"node_modules/yaml-unist-parser/lib/transforms/quote-double.js"(s){"use strict";D(),s.__esModule=!0;var e=Cn(),n=at();function c(h,d){return e.createQuoteDouble(n.transformAstQuoteValue(h,d))}s.transformQuoteDouble=c}}),In=F({"node_modules/yaml-unist-parser/lib/factories/quote-single.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:"quoteSingle"})}s.createQuoteSingle=n}}),Rn=F({"node_modules/yaml-unist-parser/lib/transforms/quote-single.js"(s){"use strict";D(),s.__esModule=!0;var e=In(),n=at();function c(h,d){return e.createQuoteSingle(n.transformAstQuoteValue(h,d))}s.transformQuoteSingle=c}}),qn=F({"node_modules/yaml-unist-parser/lib/factories/sequence.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=Oe(),h=me();function d(y,M,k){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode("sequence",y)),c.createLeadingCommentAttachable()),n.createEndCommentAttachable()),M),{children:k})}s.createSequence=d}}),Bn=F({"node_modules/yaml-unist-parser/lib/factories/sequence-item.js"(s){"use strict";D(),s.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,M){return e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode("sequenceItem",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),{children:M?[M]:[]})}s.createSequenceItem=d}}),jn=F({"node_modules/yaml-unist-parser/lib/transforms/seq.js"(s){"use strict";D(),s.__esModule=!0;var e=Le(),n=qn(),c=Bn(),h=je(),d=Qe(),y=Ae();function M(k,w){var E=h.extractComments(k.cstNode.items,w),T=E.map(function(I,C){d.extractPropComments(I,w);var q=w.transformNode(k.items[C]);return c.createSequenceItem(e.createPosition(w.transformOffset(I.valueRange.origStart),q===null?w.transformOffset(I.valueRange.origStart+1):q.position.end),q)});return n.createSequence(e.createPosition(T[0].position.start,y.getLast(T).position.end),w.transformContent(k),T)}s.transformSeq=M}}),Yn=F({"node_modules/yaml-unist-parser/lib/transform.js"(s){"use strict";D(),s.__esModule=!0;var e=Zt(),n=sn(),c=on(),h=ln(),d=un(),y=gn(),M=bn(),k=En(),w=Ln(),E=Tn(),T=Pn(),I=Rn(),C=jn();function q(R,j){if(R===null||R.type===void 0&&R.value===null)return null;switch(R.type){case"ALIAS":return e.transformAlias(R,j);case"BLOCK_FOLDED":return n.transformBlockFolded(R,j);case"BLOCK_LITERAL":return c.transformBlockLiteral(R,j);case"COMMENT":return h.transformComment(R,j);case"DIRECTIVE":return d.transformDirective(R,j);case"DOCUMENT":return y.transformDocument(R,j);case"FLOW_MAP":return M.transformFlowMap(R,j);case"FLOW_SEQ":return k.transformFlowSeq(R,j);case"MAP":return w.transformMap(R,j);case"PLAIN":return E.transformPlain(R,j);case"QUOTE_DOUBLE":return T.transformQuoteDouble(R,j);case"QUOTE_SINGLE":return I.transformQuoteSingle(R,j);case"SEQ":return C.transformSeq(R,j);default:throw new Error("Unexpected node type "+R.type)}}s.transformNode=q}}),Dn=F({"node_modules/yaml-unist-parser/lib/factories/error.js"(s){"use strict";D(),s.__esModule=!0;function e(n,c,h){var d=new SyntaxError(n);return d.name="YAMLSyntaxError",d.source=c,d.position=h,d}s.createError=e}}),Fn=F({"node_modules/yaml-unist-parser/lib/transforms/error.js"(s){"use strict";D(),s.__esModule=!0;var e=Dn();function n(c,h){var d=c.source.range||c.source.valueRange;return e.createError(c.message,h.text,h.transformRange(d))}s.transformError=n}}),Wn=F({"node_modules/yaml-unist-parser/lib/factories/point.js"(s){"use strict";D(),s.__esModule=!0;function e(n,c,h){return{offset:n,line:c,column:h}}s.createPoint=e}}),Vn=F({"node_modules/yaml-unist-parser/lib/transforms/offset.js"(s){"use strict";D(),s.__esModule=!0;var e=Wn();function n(c,h){c<0?c=0:c>h.text.length&&(c=h.text.length);var d=h.locator.locationForIndex(c);return e.createPoint(c,d.line+1,d.column+1)}s.transformOffset=n}}),Qn=F({"node_modules/yaml-unist-parser/lib/transforms/range.js"(s){"use strict";D(),s.__esModule=!0;var e=Le();function n(c,h){return e.createPosition(h.transformOffset(c.origStart),h.transformOffset(c.origEnd))}s.transformRange=n}}),Un=F({"node_modules/yaml-unist-parser/lib/utils/add-orig-range.js"(s){"use strict";D(),s.__esModule=!0;var e=!0;function n(y){if(!y.setOrigRanges()){var M=function(k){if(h(k))return k.origStart=k.start,k.origEnd=k.end,e;if(d(k))return k.origOffset=k.offset,e};y.forEach(function(k){return c(k,M)})}}s.addOrigRange=n;function c(y,M){if(!(!y||typeof y!="object")&&M(y)!==e)for(var k=0,w=Object.keys(y);kE.offset}}}),Me=F({"node_modules/yaml/dist/PlainValue-ec8e588e.js"(s){"use strict";D();var e={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},n={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"},c="tag:yaml.org,2002:",h={MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"};function d(a){let t=[0],r=a.indexOf(` +`);for(;r!==-1;)r+=1,t.push(r),r=a.indexOf(` +`,r);return t}function y(a){let t,r;return typeof a=="string"?(t=d(a),r=a):(Array.isArray(a)&&(a=a[0]),a&&a.context&&(a.lineStarts||(a.lineStarts=d(a.context.src)),t=a.lineStarts,r=a.context.src)),{lineStarts:t,src:r}}function M(a,t){if(typeof a!="number"||a<0)return null;let{lineStarts:r,src:i}=y(t);if(!r||!i||a>i.length)return null;for(let p=0;p=1)||a>r.length)return null;let f=r[a-1],p=r[a];for(;p&&p>f&&i[p-1]===` +`;)--p;return i.slice(f,p)}function w(a,t){let{start:r,end:i}=a,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:80,p=k(r.line,t);if(!p)return null;let{col:u}=r;if(p.length>f)if(u<=f-10)p=p.substr(0,f-1)+"\u2026";else{let $=Math.round(f/2);p.length>u+$&&(p=p.substr(0,u+$-1)+"\u2026"),u-=p.length-f,p="\u2026"+p.substr(1-f)}let g=1,L="";i&&(i.line===r.line&&u+(i.col-r.col)<=f+1?g=i.col-r.col:(g=Math.min(p.length+1,f)-u,L="\u2026"));let P=u>1?" ".repeat(u-1):"",B="^".repeat(g);return"".concat(p,` +`).concat(P).concat(B).concat(L)}var E=class{static copy(a){return new E(a.start,a.end)}constructor(a,t){this.start=a,this.end=t||a}isEmpty(){return typeof this.start!="number"||!this.end||this.end<=this.start}setOrigRange(a,t){let{start:r,end:i}=this;if(a.length===0||i<=a[0])return this.origStart=r,this.origEnd=i,t;let f=t;for(;fr);)++f;this.origStart=r+f;let p=f;for(;f=i);)++f;return this.origEnd=i+f,p}},T=class{static addStringTerminator(a,t,r){if(r[r.length-1]===` +`)return r;let i=T.endOfWhiteSpace(a,t);return i>=a.length||a[i]===` +`?r+` +`:r}static atDocumentBoundary(a,t,r){let i=a[t];if(!i)return!0;let f=a[t-1];if(f&&f!==` +`)return!1;if(r){if(i!==r)return!1}else if(i!==e.DIRECTIVES_END&&i!==e.DOCUMENT_END)return!1;let p=a[t+1],u=a[t+2];if(p!==i||u!==i)return!1;let g=a[t+3];return!g||g===` +`||g===" "||g===" "}static endOfIdentifier(a,t){let r=a[t],i=r==="<",f=i?[` +`," "," ",">"]:[` +`," "," ","[","]","{","}",","];for(;r&&f.indexOf(r)===-1;)r=a[t+=1];return i&&r===">"&&(t+=1),t}static endOfIndent(a,t){let r=a[t];for(;r===" ";)r=a[t+=1];return t}static endOfLine(a,t){let r=a[t];for(;r&&r!==` +`;)r=a[t+=1];return t}static endOfWhiteSpace(a,t){let r=a[t];for(;r===" "||r===" ";)r=a[t+=1];return t}static startOfLine(a,t){let r=a[t-1];if(r===` +`)return t;for(;r&&r!==` +`;)r=a[t-=1];return t+1}static endOfBlockIndent(a,t,r){let i=T.endOfIndent(a,r);if(i>r+t)return i;{let f=T.endOfWhiteSpace(a,i),p=a[f];if(!p||p===` +`)return f}return null}static atBlank(a,t,r){let i=a[t];return i===` +`||i===" "||i===" "||r&&!i}static nextNodeIsIndented(a,t,r){return!a||t<0?!1:t>0?!0:r&&a==="-"}static normalizeOffset(a,t){let r=a[t];return r?r!==` +`&&a[t-1]===` +`?t-1:T.endOfWhiteSpace(a,t):t}static foldNewline(a,t,r){let i=0,f=!1,p="",u=a[t+1];for(;u===" "||u===" "||u===` +`;){switch(u){case` +`:i=0,t+=1,p+=` +`;break;case" ":i<=r&&(f=!0),t=T.endOfWhiteSpace(a,t+2)-1;break;case" ":i+=1,t+=1;break}u=a[t+1]}return p||(p=" "),u&&i<=r&&(f=!0),{fold:p,offset:t,error:f}}constructor(a,t,r){Object.defineProperty(this,"context",{value:r||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=t||[],this.type=a,this.value=null}getPropValue(a,t,r){if(!this.context)return null;let{src:i}=this.context,f=this.props[a];return f&&i[f.start]===t?i.slice(f.start+(r?1:0),f.end):null}get anchor(){for(let a=0;a0?a.join(` +`):null}commentHasRequiredWhitespace(a){let{src:t}=this.context;if(this.header&&a===this.header.end||!this.valueRange)return!1;let{end:r}=this.valueRange;return a!==r||T.atBlank(t,r-1)}get hasComment(){if(this.context){let{src:a}=this.context;for(let t=0;tr.setOrigRange(a,t)),t}toString(){let{context:{src:a},range:t,value:r}=this;if(r!=null)return r;let i=a.slice(t.start,t.end);return T.addStringTerminator(a,t.end,i)}},I=class extends Error{constructor(a,t,r){if(!r||!(t instanceof T))throw new Error("Invalid arguments for new ".concat(a));super(),this.name=a,this.message=r,this.source=t}makePretty(){if(!this.source)return;this.nodeType=this.source.type;let a=this.source.context&&this.source.context.root;if(typeof this.offset=="number"){this.range=new E(this.offset,this.offset+1);let t=a&&M(this.offset,a);if(t){let r={line:t.line,col:t.col+1};this.linePos={start:t,end:r}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){let{line:t,col:r}=this.linePos.start;this.message+=" at line ".concat(t,", column ").concat(r);let i=a&&w(this.linePos,a);i&&(this.message+=`: + +`.concat(i,` +`))}delete this.source}},C=class extends I{constructor(a,t){super("YAMLReferenceError",a,t)}},q=class extends I{constructor(a,t){super("YAMLSemanticError",a,t)}},R=class extends I{constructor(a,t){super("YAMLSyntaxError",a,t)}},j=class extends I{constructor(a,t){super("YAMLWarning",a,t)}};function K(a,t,r){return t in a?Object.defineProperty(a,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):a[t]=r,a}var m=class extends T{static endOfLine(a,t,r){let i=a[t],f=t;for(;i&&i!==` +`&&!(r&&(i==="["||i==="]"||i==="{"||i==="}"||i===","));){let p=a[f+1];if(i===":"&&(!p||p===` +`||p===" "||p===" "||r&&p===",")||(i===" "||i===" ")&&p==="#")break;f+=1,i=p}return f}get strValue(){if(!this.valueRange||!this.context)return null;let{start:a,end:t}=this.valueRange,{src:r}=this.context,i=r[t-1];for(;aL?r.slice(L,u+1):g)}else f+=g}let p=r[a];switch(p){case" ":{let u="Plain value cannot start with a tab character";return{errors:[new q(this,u)],str:f}}case"@":case"`":{let u="Plain value cannot start with reserved character ".concat(p);return{errors:[new q(this,u)],str:f}}default:return f}}parseBlockValue(a){let{indent:t,inFlow:r,src:i}=this.context,f=a,p=a;for(let u=i[f];u===` +`&&!T.atDocumentBoundary(i,f+1);u=i[f]){let g=T.endOfBlockIndent(i,t,f+1);if(g===null||i[g]==="#")break;i[g]===` +`?f=g:(p=m.endOfLine(i,g,r),f=p)}return this.valueRange.isEmpty()&&(this.valueRange.start=a),this.valueRange.end=p,p}parse(a,t){this.context=a;let{inFlow:r,src:i}=a,f=t,p=i[f];return p&&p!=="#"&&p!==` +`&&(f=m.endOfLine(i,t,r)),this.valueRange=new E(t,f),f=T.endOfWhiteSpace(i,f),f=this.parseComment(f),(!this.hasComment||this.valueRange.isEmpty())&&(f=this.parseBlockValue(f)),f}};s.Char=e,s.Node=T,s.PlainValue=m,s.Range=E,s.Type=n,s.YAMLError=I,s.YAMLReferenceError=C,s.YAMLSemanticError=q,s.YAMLSyntaxError=R,s.YAMLWarning=j,s._defineProperty=K,s.defaultTagPrefix=c,s.defaultTags=h}}),xn=F({"node_modules/yaml/dist/parse-cst.js"(s){"use strict";D();var e=Me(),n=class extends e.Node{constructor(){super(e.Type.BLANK_LINE)}get includesTrailingLines(){return!0}parse(m,a){return this.context=m,this.range=new e.Range(a,a+1),a+1}},c=class extends e.Node{constructor(m,a){super(m,a),this.node=null}get includesTrailingLines(){return!!this.node&&this.node.includesTrailingLines}parse(m,a){this.context=m;let{parseNode:t,src:r}=m,{atLineStart:i,lineStart:f}=m;!i&&this.type===e.Type.SEQ_ITEM&&(this.error=new e.YAMLSemanticError(this,"Sequence items must not have preceding content on the same line"));let p=i?a-f:m.indent,u=e.Node.endOfWhiteSpace(r,a+1),g=r[u],L=g==="#",P=[],B=null;for(;g===` +`||g==="#";){if(g==="#"){let Q=e.Node.endOfLine(r,u+1);P.push(new e.Range(u,Q)),u=Q}else{i=!0,f=u+1;let Q=e.Node.endOfWhiteSpace(r,f);r[Q]===` +`&&P.length===0&&(B=new n,f=B.parse({src:r},f)),u=e.Node.endOfIndent(r,f)}g=r[u]}if(e.Node.nextNodeIsIndented(g,u-(f+p),this.type!==e.Type.SEQ_ITEM)?this.node=t({atLineStart:i,inCollection:!1,indent:p,lineStart:f,parent:this},u):g&&f>a+1&&(u=f-1),this.node){if(B){let Q=m.parent.items||m.parent.contents;Q&&Q.push(B)}P.length&&Array.prototype.push.apply(this.props,P),u=this.node.range.end}else if(L){let Q=P[0];this.props.push(Q),u=Q.end}else u=e.Node.endOfLine(r,a+1);let $=this.node?this.node.valueRange.end:u;return this.valueRange=new e.Range(a,$),u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.node?this.node.setOrigRanges(m,a):a}toString(){let{context:{src:m},node:a,range:t,value:r}=this;if(r!=null)return r;let i=a?m.slice(t.start,a.range.start)+String(a):m.slice(t.start,t.end);return e.Node.addStringTerminator(m,t.end,i)}},h=class extends e.Node{constructor(){super(e.Type.COMMENT)}parse(m,a){this.context=m;let t=this.parseComment(a);return this.range=new e.Range(a,t),t}};function d(m){let a=m;for(;a instanceof c;)a=a.node;if(!(a instanceof y))return null;let t=a.items.length,r=-1;for(let p=t-1;p>=0;--p){let u=a.items[p];if(u.type===e.Type.COMMENT){let{indent:g,lineStart:L}=u.context;if(g>0&&u.range.start>=L+g)break;r=p}else if(u.type===e.Type.BLANK_LINE)r=p;else break}if(r===-1)return null;let i=a.items.splice(r,t-r),f=i[0].range.start;for(;a.range.end=f,a.valueRange&&a.valueRange.end>f&&(a.valueRange.end=f),a!==m;)a=a.context.parent;return i}var y=class extends e.Node{static nextContentHasIndent(m,a,t){let r=e.Node.endOfLine(m,a)+1;a=e.Node.endOfWhiteSpace(m,r);let i=m[a];return i?a>=r+t?!0:i!=="#"&&i!==` +`?!1:y.nextContentHasIndent(m,a,t):!1}constructor(m){super(m.type===e.Type.SEQ_ITEM?e.Type.SEQ:e.Type.MAP);for(let t=m.props.length-1;t>=0;--t)if(m.props[t].start0}parse(m,a){this.context=m;let{parseNode:t,src:r}=m,i=e.Node.startOfLine(r,a),f=this.items[0];f.context.parent=this,this.valueRange=e.Range.copy(f.valueRange);let p=f.range.start-f.context.lineStart,u=a;u=e.Node.normalizeOffset(r,u);let g=r[u],L=e.Node.endOfWhiteSpace(r,i)===u,P=!1;for(;g;){for(;g===` +`||g==="#";){if(L&&g===` +`&&!P){let Q=new n;if(u=Q.parse({src:r},u),this.valueRange.end=u,u>=r.length){g=null;break}this.items.push(Q),u-=1}else if(g==="#"){if(u=r.length){g=null;break}}if(i=u+1,u=e.Node.endOfIndent(r,i),e.Node.atBlank(r,u)){let Q=e.Node.endOfWhiteSpace(r,u),z=r[Q];(!z||z===` +`||z==="#")&&(u=Q)}g=r[u],L=!0}if(!g)break;if(u!==i+p&&(L||g!==":")){if(ua&&(u=i);break}else if(!this.error){let Q="All collection items must start at the same column";this.error=new e.YAMLSyntaxError(this,Q)}}if(f.type===e.Type.SEQ_ITEM){if(g!=="-"){i>a&&(u=i);break}}else if(g==="-"&&!this.error){let Q=r[u+1];if(!Q||Q===` +`||Q===" "||Q===" "){let z="A collection cannot be both a mapping and a sequence";this.error=new e.YAMLSyntaxError(this,z)}}let B=t({atLineStart:L,inCollection:!0,indent:p,lineStart:i,parent:this},u);if(!B)return u;if(this.items.push(B),this.valueRange.end=B.valueRange.end,u=e.Node.normalizeOffset(r,B.range.end),g=r[u],L=!1,P=B.includesTrailingLines,g){let Q=u-1,z=r[Q];for(;z===" "||z===" ";)z=r[--Q];z===` +`&&(i=Q+1,L=!0)}let $=d(B);$&&Array.prototype.push.apply(this.items,$)}return u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.items.forEach(t=>{a=t.setOrigRanges(m,a)}),a}toString(){let{context:{src:m},items:a,range:t,value:r}=this;if(r!=null)return r;let i=m.slice(t.start,a[0].range.start)+String(a[0]);for(let f=1;f0&&(this.contents=this.directives,this.directives=[]),i}return a[i]?(this.directivesEndMarker=new e.Range(i,i+3),i+3):(r?this.error=new e.YAMLSemanticError(this,"Missing directives-end indicator line"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),i)}parseContents(m){let{parseNode:a,src:t}=this.context;this.contents||(this.contents=[]);let r=m;for(;t[r-1]==="-";)r-=1;let i=e.Node.endOfWhiteSpace(t,m),f=r===m;for(this.valueRange=new e.Range(i);!e.Node.atDocumentBoundary(t,i,e.Char.DOCUMENT_END);){switch(t[i]){case` +`:if(f){let p=new n;i=p.parse({src:t},i),i{a=t.setOrigRanges(m,a)}),this.directivesEndMarker&&(a=this.directivesEndMarker.setOrigRange(m,a)),this.contents.forEach(t=>{a=t.setOrigRanges(m,a)}),this.documentEndMarker&&(a=this.documentEndMarker.setOrigRange(m,a)),a}toString(){let{contents:m,directives:a,value:t}=this;if(t!=null)return t;let r=a.join("");return m.length>0&&((a.length>0||m[0].type===e.Type.COMMENT)&&(r+=`--- +`),r+=m.join("")),r[r.length-1]!==` +`&&(r+=` +`),r}},w=class extends e.Node{parse(m,a){this.context=m;let{src:t}=m,r=e.Node.endOfIdentifier(t,a+1);return this.valueRange=new e.Range(a+1,r),r=e.Node.endOfWhiteSpace(t,r),r=this.parseComment(r),r}},E={CLIP:"CLIP",KEEP:"KEEP",STRIP:"STRIP"},T=class extends e.Node{constructor(m,a){super(m,a),this.blockIndent=null,this.chomping=E.CLIP,this.header=null}get includesTrailingLines(){return this.chomping===E.KEEP}get strValue(){if(!this.valueRange||!this.context)return null;let{start:m,end:a}=this.valueRange,{indent:t,src:r}=this.context;if(this.valueRange.isEmpty())return"";let i=null,f=r[a-1];for(;f===` +`||f===" "||f===" ";){if(a-=1,a<=m){if(this.chomping===E.KEEP)break;return""}f===` +`&&(i=a),f=r[a-1]}let p=a+1;i&&(this.chomping===E.KEEP?(p=i,a=this.valueRange.end):a=i);let u=t+this.blockIndent,g=this.type===e.Type.BLOCK_FOLDED,L=!0,P="",B="",$=!1;for(let Q=m;Qp&&(p=P);t[g]===` +`?i=g:i=f=e.Node.endOfLine(t,g)}return this.chomping!==E.KEEP&&(i=t[f]?f+1:f),this.valueRange=new e.Range(m+1,i),i}parse(m,a){this.context=m;let{src:t}=m,r=this.parseBlockHeader(a);return r=e.Node.endOfWhiteSpace(t,r),r=this.parseComment(r),r=this.parseBlockValue(r),r}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.header?this.header.setOrigRange(m,a):a}},I=class extends e.Node{constructor(m,a){super(m,a),this.items=null}prevNodeIsJsonLike(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.items.length,a=this.items[m-1];return!!a&&(a.jsonLike||a.type===e.Type.COMMENT&&this.prevNodeIsJsonLike(m-1))}parse(m,a){this.context=m;let{parseNode:t,src:r}=m,{indent:i,lineStart:f}=m,p=r[a];this.items=[{char:p,offset:a}];let u=e.Node.endOfWhiteSpace(r,a+1);for(p=r[u];p&&p!=="]"&&p!=="}";){switch(p){case` +`:{f=u+1;let g=e.Node.endOfWhiteSpace(r,f);if(r[g]===` +`){let L=new n;f=L.parse({src:r},f),this.items.push(L)}if(u=e.Node.endOfIndent(r,f),u<=f+i&&(p=r[u],u{if(t instanceof e.Node)a=t.setOrigRanges(m,a);else if(m.length===0)t.origOffset=t.offset;else{let r=a;for(;rt.offset);)++r;t.origOffset=t.offset+r,a=r}}),a}toString(){let{context:{src:m},items:a,range:t,value:r}=this;if(r!=null)return r;let i=a.filter(u=>u instanceof e.Node),f="",p=t.start;return i.forEach(u=>{let g=m.slice(p,u.range.start);p=u.range.end,f+=g+String(u),f[f.length-1]===` +`&&m[p-1]!==` +`&&m[p]===` +`&&(p+=1)}),f+=m.slice(p,t.end),e.Node.addStringTerminator(m,t.end,f)}},C=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t&&t!=='"';)a+=t==="\\"?2:1,t=m[a];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:r,src:i}=this.context;i[t-1]!=='"'&&m.push(new e.YAMLSyntaxError(this,'Missing closing "quote'));let f="";for(let p=a+1;pg?i.slice(g,p+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parseCharCode(m,a,t){let{src:r}=this.context,i=r.substr(m,a),p=i.length===a&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;return isNaN(p)?(t.push(new e.YAMLSyntaxError(this,"Invalid escape sequence ".concat(r.substr(m-2,a+2)))),r.substr(m-2,a+2)):String.fromCodePoint(p)}parse(m,a){this.context=m;let{src:t}=m,r=C.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,r),r=e.Node.endOfWhiteSpace(t,r),r=this.parseComment(r),r}},q=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t;)if(t==="'"){if(m[a+1]!=="'")break;t=m[a+=2]}else t=m[a+=1];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:r,src:i}=this.context;i[t-1]!=="'"&&m.push(new e.YAMLSyntaxError(this,"Missing closing 'quote"));let f="";for(let p=a+1;pg?i.slice(g,p+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parse(m,a){this.context=m;let{src:t}=m,r=q.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,r),r=e.Node.endOfWhiteSpace(t,r),r=this.parseComment(r),r}};function R(m,a){switch(m){case e.Type.ALIAS:return new w(m,a);case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return new T(m,a);case e.Type.FLOW_MAP:case e.Type.FLOW_SEQ:return new I(m,a);case e.Type.MAP_KEY:case e.Type.MAP_VALUE:case e.Type.SEQ_ITEM:return new c(m,a);case e.Type.COMMENT:case e.Type.PLAIN:return new e.PlainValue(m,a);case e.Type.QUOTE_DOUBLE:return new C(m,a);case e.Type.QUOTE_SINGLE:return new q(m,a);default:return null}}var j=class{static parseType(m,a,t){switch(m[a]){case"*":return e.Type.ALIAS;case">":return e.Type.BLOCK_FOLDED;case"|":return e.Type.BLOCK_LITERAL;case"{":return e.Type.FLOW_MAP;case"[":return e.Type.FLOW_SEQ;case"?":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_KEY:e.Type.PLAIN;case":":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_VALUE:e.Type.PLAIN;case"-":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.SEQ_ITEM:e.Type.PLAIN;case'"':return e.Type.QUOTE_DOUBLE;case"'":return e.Type.QUOTE_SINGLE;default:return e.Type.PLAIN}}constructor(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{atLineStart:a,inCollection:t,inFlow:r,indent:i,lineStart:f,parent:p}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e._defineProperty(this,"parseNode",(u,g)=>{if(e.Node.atDocumentBoundary(this.src,g))return null;let L=new j(this,u),{props:P,type:B,valueStart:$}=L.parseProps(g),Q=R(B,P),z=Q.parse(L,$);if(Q.range=new e.Range(g,z),z<=g&&(Q.error=new Error("Node#parse consumed no characters"),Q.error.parseEnd=z,Q.error.source=Q,Q.range.end=g+1),L.nodeStartsCollection(Q)){!Q.error&&!L.atLineStart&&L.parent.type===e.Type.DOCUMENT&&(Q.error=new e.YAMLSyntaxError(Q,"Block collection must not have preceding content here (e.g. directives-end indicator)"));let ie=new y(Q);return z=ie.parse(new j(L),z),ie.range=new e.Range(g,z),ie}return Q}),this.atLineStart=a!=null?a:m.atLineStart||!1,this.inCollection=t!=null?t:m.inCollection||!1,this.inFlow=r!=null?r:m.inFlow||!1,this.indent=i!=null?i:m.indent,this.lineStart=f!=null?f:m.lineStart,this.parent=p!=null?p:m.parent||{},this.root=m.root,this.src=m.src}nodeStartsCollection(m){let{inCollection:a,inFlow:t,src:r}=this;if(a||t)return!1;if(m instanceof c)return!0;let i=m.range.end;return r[i]===` +`||r[i-1]===` +`?!1:(i=e.Node.endOfWhiteSpace(r,i),r[i]===":")}parseProps(m){let{inFlow:a,parent:t,src:r}=this,i=[],f=!1;m=this.atLineStart?e.Node.endOfIndent(r,m):e.Node.endOfWhiteSpace(r,m);let p=r[m];for(;p===e.Char.ANCHOR||p===e.Char.COMMENT||p===e.Char.TAG||p===` +`;){if(p===` +`){let g=m,L;do L=g+1,g=e.Node.endOfIndent(r,L);while(r[g]===` +`);let P=g-(L+this.indent),B=t.type===e.Type.SEQ_ITEM&&t.context.atLineStart;if(r[g]!=="#"&&!e.Node.nextNodeIsIndented(r[g],P,!B))break;this.atLineStart=!0,this.lineStart=L,f=!1,m=g}else if(p===e.Char.COMMENT){let g=e.Node.endOfLine(r,m+1);i.push(new e.Range(m,g)),m=g}else{let g=e.Node.endOfIdentifier(r,m+1);p===e.Char.TAG&&r[g]===","&&/^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(r.slice(m+1,g+13))&&(g=e.Node.endOfIdentifier(r,g+5)),i.push(new e.Range(m,g)),f=!0,m=e.Node.endOfWhiteSpace(r,g)}p=r[m]}f&&p===":"&&e.Node.atBlank(r,m+1,!0)&&(m-=1);let u=j.parseType(r,m,a);return{props:i,type:u,valueStart:m}}};function K(m){let a=[];m.indexOf("\r")!==-1&&(m=m.replace(/\r\n?/g,(i,f)=>(i.length>1&&a.push(f),` +`)));let t=[],r=0;do{let i=new k,f=new j({src:m});r=i.parse(f,r),t.push(i)}while(r{if(a.length===0)return!1;for(let f=1;ft.join(`... +`),t}s.parse=K}}),ke=F({"node_modules/yaml/dist/resolveSeq-d03cb037.js"(s){"use strict";D();var e=Me();function n(o,l,_){if(!_)return o;let v=_.replace(/[\s\S]^/gm,"$&".concat(l,"#"));return"#".concat(v,` +`).concat(l).concat(o)}function c(o,l,_){return _?_.indexOf(` +`)===-1?"".concat(o," #").concat(_):"".concat(o,` +`)+_.replace(/^/gm,"".concat(l||"","#")):o}var h=class{};function d(o,l,_){if(Array.isArray(o))return o.map((v,b)=>d(v,String(b),_));if(o&&typeof o.toJSON=="function"){let v=_&&_.anchors&&_.anchors.get(o);v&&(_.onCreate=S=>{v.res=S,delete _.onCreate});let b=o.toJSON(l,_);return v&&_.onCreate&&_.onCreate(b),b}return(!_||!_.keep)&&typeof o=="bigint"?Number(o):o}var y=class extends h{constructor(o){super(),this.value=o}toJSON(o,l){return l&&l.keep?this.value:d(this.value,o,l)}toString(){return String(this.value)}};function M(o,l,_){let v=_;for(let b=l.length-1;b>=0;--b){let S=l[b];if(Number.isInteger(S)&&S>=0){let A=[];A[S]=v,v=A}else{let A={};Object.defineProperty(A,S,{value:v,writable:!0,enumerable:!0,configurable:!0}),v=A}}return o.createNode(v,!1)}var k=o=>o==null||typeof o=="object"&&o[Symbol.iterator]().next().done,w=class extends h{constructor(o){super(),e._defineProperty(this,"items",[]),this.schema=o}addIn(o,l){if(k(o))this.add(l);else{let[_,...v]=o,b=this.get(_,!0);if(b instanceof w)b.addIn(v,l);else if(b===void 0&&this.schema)this.set(_,M(this.schema,v,l));else throw new Error("Expected YAML collection at ".concat(_,". Remaining path: ").concat(v))}}deleteIn(o){let[l,..._]=o;if(_.length===0)return this.delete(l);let v=this.get(l,!0);if(v instanceof w)return v.deleteIn(_);throw new Error("Expected YAML collection at ".concat(l,". Remaining path: ").concat(_))}getIn(o,l){let[_,...v]=o,b=this.get(_,!0);return v.length===0?!l&&b instanceof y?b.value:b:b instanceof w?b.getIn(v,l):void 0}hasAllNullValues(){return this.items.every(o=>{if(!o||o.type!=="PAIR")return!1;let l=o.value;return l==null||l instanceof y&&l.value==null&&!l.commentBefore&&!l.comment&&!l.tag})}hasIn(o){let[l,..._]=o;if(_.length===0)return this.has(l);let v=this.get(l,!0);return v instanceof w?v.hasIn(_):!1}setIn(o,l){let[_,...v]=o;if(v.length===0)this.set(_,l);else{let b=this.get(_,!0);if(b instanceof w)b.setIn(v,l);else if(b===void 0&&this.schema)this.set(_,M(this.schema,v,l));else throw new Error("Expected YAML collection at ".concat(_,". Remaining path: ").concat(v))}}toJSON(){return null}toString(o,l,_,v){let{blockItem:b,flowChars:S,isMap:A,itemIndent:N}=l,{indent:Y,indentStep:W,stringify:U}=o,H=this.type===e.Type.FLOW_MAP||this.type===e.Type.FLOW_SEQ||o.inFlow;H&&(N+=W);let oe=A&&this.hasAllNullValues();o=Object.assign({},o,{allNullValues:oe,indent:N,inFlow:H,type:null});let le=!1,Z=!1,ee=this.items.reduce((de,re,he)=>{let ce;re&&(!le&&re.spaceBefore&&de.push({type:"comment",str:""}),re.commentBefore&&re.commentBefore.match(/^.*$/gm).forEach(Ie=>{de.push({type:"comment",str:"#".concat(Ie)})}),re.comment&&(ce=re.comment),H&&(!le&&re.spaceBefore||re.commentBefore||re.comment||re.key&&(re.key.commentBefore||re.key.comment)||re.value&&(re.value.commentBefore||re.value.comment))&&(Z=!0)),le=!1;let fe=U(re,o,()=>ce=null,()=>le=!0);return H&&!Z&&fe.includes(` +`)&&(Z=!0),H&&hece.str);if(Z||he.reduce((ce,fe)=>ce+fe.length+2,2)>w.maxFlowStringSingleLineLength){X=de;for(let ce of he)X+=ce?` +`.concat(W).concat(Y).concat(ce):` +`;X+=` +`.concat(Y).concat(re)}else X="".concat(de," ").concat(he.join(" ")," ").concat(re)}else{let de=ee.map(b);X=de.shift();for(let re of de)X+=re?` +`.concat(Y).concat(re):` +`}return this.comment?(X+=` +`+this.comment.replace(/^/gm,"".concat(Y,"#")),_&&_()):le&&v&&v(),X}};e._defineProperty(w,"maxFlowStringSingleLineLength",60);function E(o){let l=o instanceof y?o.value:o;return l&&typeof l=="string"&&(l=Number(l)),Number.isInteger(l)&&l>=0?l:null}var T=class extends w{add(o){this.items.push(o)}delete(o){let l=E(o);return typeof l!="number"?!1:this.items.splice(l,1).length>0}get(o,l){let _=E(o);if(typeof _!="number")return;let v=this.items[_];return!l&&v instanceof y?v.value:v}has(o){let l=E(o);return typeof l=="number"&&lv.type==="comment"?v.str:"- ".concat(v.str),flowChars:{start:"[",end:"]"},isMap:!1,itemIndent:(o.indent||"")+" "},l,_):JSON.stringify(this)}},I=(o,l,_)=>l===null?"":typeof l!="object"?String(l):o instanceof h&&_&&_.doc?o.toString({anchors:Object.create(null),doc:_.doc,indent:"",indentStep:_.indentStep,inFlow:!0,inStringifyKey:!0,stringify:_.stringify}):JSON.stringify(l),C=class extends h{constructor(o){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;super(),this.key=o,this.value=l,this.type=C.Type.PAIR}get commentBefore(){return this.key instanceof h?this.key.commentBefore:void 0}set commentBefore(o){if(this.key==null&&(this.key=new y(null)),this.key instanceof h)this.key.commentBefore=o;else{let l="Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.";throw new Error(l)}}addToJSMap(o,l){let _=d(this.key,"",o);if(l instanceof Map){let v=d(this.value,_,o);l.set(_,v)}else if(l instanceof Set)l.add(_);else{let v=I(this.key,_,o),b=d(this.value,v,o);v in l?Object.defineProperty(l,v,{value:b,writable:!0,enumerable:!0,configurable:!0}):l[v]=b}return l}toJSON(o,l){let _=l&&l.mapAsMap?new Map:{};return this.addToJSMap(l,_)}toString(o,l,_){if(!o||!o.doc)return JSON.stringify(this);let{indent:v,indentSeq:b,simpleKeys:S}=o.doc.options,{key:A,value:N}=this,Y=A instanceof h&&A.comment;if(S){if(Y)throw new Error("With simple keys, key nodes cannot have comments");if(A instanceof w){let ce="With simple keys, collection cannot be used as a key value";throw new Error(ce)}}let W=!S&&(!A||Y||(A instanceof h?A instanceof w||A.type===e.Type.BLOCK_FOLDED||A.type===e.Type.BLOCK_LITERAL:typeof A=="object")),{doc:U,indent:H,indentStep:oe,stringify:le}=o;o=Object.assign({},o,{implicitKey:!W,indent:H+oe});let Z=!1,ee=le(A,o,()=>Y=null,()=>Z=!0);if(ee=c(ee,o.indent,Y),!W&&ee.length>1024){if(S)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");W=!0}if(o.allNullValues&&!S)return this.comment?(ee=c(ee,o.indent,this.comment),l&&l()):Z&&!Y&&_&&_(),o.inFlow&&!W?ee:"? ".concat(ee);ee=W?"? ".concat(ee,` +`).concat(H,":"):"".concat(ee,":"),this.comment&&(ee=c(ee,o.indent,this.comment),l&&l());let X="",de=null;if(N instanceof h){if(N.spaceBefore&&(X=` +`),N.commentBefore){let ce=N.commentBefore.replace(/^/gm,"".concat(o.indent,"#"));X+=` +`.concat(ce)}de=N.comment}else N&&typeof N=="object"&&(N=U.schema.createNode(N,!0));o.implicitKey=!1,!W&&!this.comment&&N instanceof y&&(o.indentAtStart=ee.length+1),Z=!1,!b&&v>=2&&!o.inFlow&&!W&&N instanceof T&&N.type!==e.Type.FLOW_SEQ&&!N.tag&&!U.anchors.getName(N)&&(o.indent=o.indent.substr(2));let re=le(N,o,()=>de=null,()=>Z=!0),he=" ";return X||this.comment?he="".concat(X,` +`).concat(o.indent):!W&&N instanceof w?(!(re[0]==="["||re[0]==="{")||re.includes(` +`))&&(he=` +`.concat(o.indent)):re[0]===` +`&&(he=""),Z&&!de&&_&&_(),c(ee+he+re,o.indent,de)}};e._defineProperty(C,"Type",{PAIR:"PAIR",MERGE_PAIR:"MERGE_PAIR"});var q=(o,l)=>{if(o instanceof R){let _=l.get(o.source);return _.count*_.aliasCount}else if(o instanceof w){let _=0;for(let v of o.items){let b=q(v,l);b>_&&(_=b)}return _}else if(o instanceof C){let _=q(o.key,l),v=q(o.value,l);return Math.max(_,v)}return 1},R=class extends h{static stringify(o,l){let{range:_,source:v}=o,{anchors:b,doc:S,implicitKey:A,inStringifyKey:N}=l,Y=Object.keys(b).find(U=>b[U]===v);if(!Y&&N&&(Y=S.anchors.getName(v)||S.anchors.newName()),Y)return"*".concat(Y).concat(A?" ":"");let W=S.anchors.getName(v)?"Alias node must be after source node":"Source node not found for alias node";throw new Error("".concat(W," [").concat(_,"]"))}constructor(o){super(),this.source=o,this.type=e.Type.ALIAS}set tag(o){throw new Error("Alias nodes cannot have tags")}toJSON(o,l){if(!l)return d(this.source,o,l);let{anchors:_,maxAliasCount:v}=l,b=_.get(this.source);if(!b||b.res===void 0){let S="This should not happen: Alias anchor was not resolved?";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,S):new ReferenceError(S)}if(v>=0&&(b.count+=1,b.aliasCount===0&&(b.aliasCount=q(this.source,_)),b.count*b.aliasCount>v)){let S="Excessive alias count indicates a resource exhaustion attack";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,S):new ReferenceError(S)}return b.res}toString(o){return R.stringify(this,o)}};e._defineProperty(R,"default",!0);function j(o,l){let _=l instanceof y?l.value:l;for(let v of o)if(v instanceof C&&(v.key===l||v.key===_||v.key&&v.key.value===_))return v}var K=class extends w{add(o,l){o?o instanceof C||(o=new C(o.key||o,o.value)):o=new C(o);let _=j(this.items,o.key),v=this.schema&&this.schema.sortMapEntries;if(_)if(l)_.value=o.value;else throw new Error("Key ".concat(o.key," already set"));else if(v){let b=this.items.findIndex(S=>v(o,S)<0);b===-1?this.items.push(o):this.items.splice(b,0,o)}else this.items.push(o)}delete(o){let l=j(this.items,o);return l?this.items.splice(this.items.indexOf(l),1).length>0:!1}get(o,l){let _=j(this.items,o),v=_&&_.value;return!l&&v instanceof y?v.value:v}has(o){return!!j(this.items,o)}set(o,l){this.add(new C(o,l),!0)}toJSON(o,l,_){let v=_?new _:l&&l.mapAsMap?new Map:{};l&&l.onCreate&&l.onCreate(v);for(let b of this.items)b.addToJSMap(l,v);return v}toString(o,l,_){if(!o)return JSON.stringify(this);for(let v of this.items)if(!(v instanceof C))throw new Error("Map items must all be pairs; found ".concat(JSON.stringify(v)," instead"));return super.toString(o,{blockItem:v=>v.str,flowChars:{start:"{",end:"}"},isMap:!0,itemIndent:o.indent||""},l,_)}},m="<<",a=class extends C{constructor(o){if(o instanceof C){let l=o.value;l instanceof T||(l=new T,l.items.push(o.value),l.range=o.value.range),super(o.key,l),this.range=o.range}else super(new y(m),new T);this.type=C.Type.MERGE_PAIR}addToJSMap(o,l){for(let{source:_}of this.value.items){if(!(_ instanceof K))throw new Error("Merge sources must be maps");let v=_.toJSON(null,o,Map);for(let[b,S]of v)l instanceof Map?l.has(b)||l.set(b,S):l instanceof Set?l.add(b):Object.prototype.hasOwnProperty.call(l,b)||Object.defineProperty(l,b,{value:S,writable:!0,enumerable:!0,configurable:!0})}return l}toString(o,l){let _=this.value;if(_.items.length>1)return super.toString(o,l);this.value=_.items[0];let v=super.toString(o,l);return this.value=_,v}},t={defaultType:e.Type.BLOCK_LITERAL,lineWidth:76},r={trueStr:"true",falseStr:"false"},i={asBigInt:!1},f={nullStr:"null"},p={defaultType:e.Type.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function u(o,l,_){for(let{format:v,test:b,resolve:S}of l)if(b){let A=o.match(b);if(A){let N=S.apply(null,A);return N instanceof y||(N=new y(N)),v&&(N.format=v),N}}return _&&(o=_(o)),new y(o)}var g="flow",L="block",P="quoted",B=(o,l)=>{let _=o[l+1];for(;_===" "||_===" ";){do _=o[l+=1];while(_&&_!==` +`);_=o[l+1]}return l};function $(o,l,_,v){let{indentAtStart:b,lineWidth:S=80,minContentWidth:A=20,onFold:N,onOverflow:Y}=v;if(!S||S<0)return o;let W=Math.max(1+A,1+S-l.length);if(o.length<=W)return o;let U=[],H={},oe=S-l.length;typeof b=="number"&&(b>S-Math.max(2,A)?U.push(0):oe=S-b);let le,Z,ee=!1,X=-1,de=-1,re=-1;_===L&&(X=B(o,X),X!==-1&&(oe=X+W));for(let ce;ce=o[X+=1];){if(_===P&&ce==="\\"){switch(de=X,o[X+1]){case"x":X+=3;break;case"u":X+=5;break;case"U":X+=9;break;default:X+=1}re=X}if(ce===` +`)_===L&&(X=B(o,X)),oe=X+W,le=void 0;else{if(ce===" "&&Z&&Z!==" "&&Z!==` +`&&Z!==" "){let fe=o[X+1];fe&&fe!==" "&&fe!==` +`&&fe!==" "&&(le=X)}if(X>=oe)if(le)U.push(le),oe=le+W,le=void 0;else if(_===P){for(;Z===" "||Z===" ";)Z=ce,ce=o[X+=1],ee=!0;let fe=X>re+1?X-2:de-1;if(H[fe])return o;U.push(fe),H[fe]=!0,oe=fe+W,le=void 0}else ee=!0}Z=ce}if(ee&&Y&&Y(),U.length===0)return o;N&&N();let he=o.slice(0,U[0]);for(let ce=0;ce{let{indentAtStart:l}=o;return l?Object.assign({indentAtStart:l},p.fold):p.fold},z=o=>/^(%|---|\.\.\.)/m.test(o);function ie(o,l,_){if(!l||l<0)return!1;let v=l-_,b=o.length;if(b<=v)return!1;for(let S=0,A=0;Sv)return!0;if(A=S+1,b-A<=v)return!1}return!0}function ue(o,l){let{implicitKey:_}=l,{jsonEncoding:v,minMultiLineLength:b}=p.doubleQuoted,S=JSON.stringify(o);if(v)return S;let A=l.indent||(z(o)?" ":""),N="",Y=0;for(let W=0,U=S[W];U;U=S[++W])if(U===" "&&S[W+1]==="\\"&&S[W+2]==="n"&&(N+=S.slice(Y,W)+"\\ ",W+=1,Y=W,U="\\"),U==="\\")switch(S[W+1]){case"u":{N+=S.slice(Y,W);let H=S.substr(W+2,4);switch(H){case"0000":N+="\\0";break;case"0007":N+="\\a";break;case"000b":N+="\\v";break;case"001b":N+="\\e";break;case"0085":N+="\\N";break;case"00a0":N+="\\_";break;case"2028":N+="\\L";break;case"2029":N+="\\P";break;default:H.substr(0,2)==="00"?N+="\\x"+H.substr(2):N+=S.substr(W,6)}W+=5,Y=W+1}break;case"n":if(_||S[W+2]==='"'||S.length";if(!A)return U+` +`;let H="",oe="";if(A=A.replace(/[\n\t ]*$/,Z=>{let ee=Z.indexOf(` +`);return ee===-1?U+="-":(A===Z||ee!==Z.length-1)&&(U+="+",v&&v()),oe=Z.replace(/\n$/,""),""}).replace(/^[\n ]*/,Z=>{Z.indexOf(" ")!==-1&&(U+=Y);let ee=Z.match(/ +$/);return ee?(H=Z.slice(0,-ee[0].length),ee[0]):(H=Z,"")}),oe&&(oe=oe.replace(/\n+(?!\n|$)/g,"$&".concat(N))),H&&(H=H.replace(/\n+/g,"$&".concat(N))),b&&(U+=" #"+b.replace(/ ?[\r\n]+/g," "),_&&_()),!A)return"".concat(U).concat(Y,` +`).concat(N).concat(oe);if(W)return A=A.replace(/\n+/g,"$&".concat(N)),"".concat(U,` +`).concat(N).concat(H).concat(A).concat(oe);A=A.replace(/\n+/g,` +$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,"$&".concat(N));let le=$("".concat(H).concat(A).concat(oe),N,L,p.fold);return"".concat(U,` +`).concat(N).concat(le)}function O(o,l,_,v){let{comment:b,type:S,value:A}=o,{actualString:N,implicitKey:Y,indent:W,inFlow:U}=l;if(Y&&/[\n[\]{},]/.test(A)||U&&/[[\]{},]/.test(A))return ue(A,l);if(!A||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(A))return Y||U||A.indexOf(` +`)===-1?A.indexOf('"')!==-1&&A.indexOf("'")===-1?ge(A,l):ue(A,l):pe(o,l,_,v);if(!Y&&!U&&S!==e.Type.PLAIN&&A.indexOf(` +`)!==-1)return pe(o,l,_,v);if(W===""&&z(A))return l.forceBlockIndent=!0,pe(o,l,_,v);let H=A.replace(/\n+/g,`$& +`.concat(W));if(N){let{tags:le}=l.doc.schema;if(typeof u(H,le,le.scalarFallback).value!="string")return ue(A,l)}let oe=Y?H:$(H,W,g,Q(l));return b&&!U&&(oe.indexOf(` +`)!==-1||b.indexOf(` +`)!==-1)?(_&&_(),n(oe,W,b)):oe}function V(o,l,_,v){let{defaultType:b}=p,{implicitKey:S,inFlow:A}=l,{type:N,value:Y}=o;typeof Y!="string"&&(Y=String(Y),o=Object.assign({},o,{value:Y}));let W=H=>{switch(H){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return pe(o,l,_,v);case e.Type.QUOTE_DOUBLE:return ue(Y,l);case e.Type.QUOTE_SINGLE:return ge(Y,l);case e.Type.PLAIN:return O(o,l,_,v);default:return null}};(N!==e.Type.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(Y)||(S||A)&&(N===e.Type.BLOCK_FOLDED||N===e.Type.BLOCK_LITERAL))&&(N=e.Type.QUOTE_DOUBLE);let U=W(N);if(U===null&&(U=W(b),U===null))throw new Error("Unsupported default string type ".concat(b));return U}function J(o){let{format:l,minFractionDigits:_,tag:v,value:b}=o;if(typeof b=="bigint")return String(b);if(!isFinite(b))return isNaN(b)?".nan":b<0?"-.inf":".inf";let S=JSON.stringify(b);if(!l&&_&&(!v||v==="tag:yaml.org,2002:float")&&/^\d/.test(S)){let A=S.indexOf(".");A<0&&(A=S.length,S+=".");let N=_-(S.length-A-1);for(;N-- >0;)S+="0"}return S}function x(o,l){let _,v;switch(l.type){case e.Type.FLOW_MAP:_="}",v="flow map";break;case e.Type.FLOW_SEQ:_="]",v="flow sequence";break;default:o.push(new e.YAMLSemanticError(l,"Not a flow collection!?"));return}let b;for(let S=l.items.length-1;S>=0;--S){let A=l.items[S];if(!A||A.type!==e.Type.COMMENT){b=A;break}}if(b&&b.char!==_){let S="Expected ".concat(v," to end with ").concat(_),A;typeof b.offset=="number"?(A=new e.YAMLSemanticError(l,S),A.offset=b.offset+1):(A=new e.YAMLSemanticError(b,S),b.range&&b.range.end&&(A.offset=b.range.end-b.range.start)),o.push(A)}}function G(o,l){let _=l.context.src[l.range.start-1];if(_!==` +`&&_!==" "&&_!==" "){let v="Comments must be separated from other tokens by white space characters";o.push(new e.YAMLSemanticError(l,v))}}function ne(o,l){let _=String(l),v=_.substr(0,8)+"..."+_.substr(-8);return new e.YAMLSemanticError(o,'The "'.concat(v,'" key is too long'))}function _e(o,l){for(let{afterKey:_,before:v,comment:b}of l){let S=o.items[v];S?(_&&S.value&&(S=S.value),b===void 0?(_||!S.commentBefore)&&(S.spaceBefore=!0):S.commentBefore?S.commentBefore+=` +`+b:S.commentBefore=b):b!==void 0&&(o.comment?o.comment+=` +`+b:o.comment=b)}}function ye(o,l){let _=l.strValue;return _?typeof _=="string"?_:(_.errors.forEach(v=>{v.source||(v.source=l),o.errors.push(v)}),_.str):""}function be(o,l){let{handle:_,suffix:v}=l.tag,b=o.tagPrefixes.find(S=>S.handle===_);if(!b){let S=o.getDefaults().tagPrefixes;if(S&&(b=S.find(A=>A.handle===_)),!b)throw new e.YAMLSemanticError(l,"The ".concat(_," tag handle is non-default and was not declared."))}if(!v)throw new e.YAMLSemanticError(l,"The ".concat(_," tag has no suffix."));if(_==="!"&&(o.version||o.options.version)==="1.0"){if(v[0]==="^")return o.warnings.push(new e.YAMLWarning(l,"YAML 1.0 ^ tag expansion is not supported")),v;if(/[:/]/.test(v)){let S=v.match(/^([a-z0-9-]+)\/(.*)/i);return S?"tag:".concat(S[1],".yaml.org,2002:").concat(S[2]):"tag:".concat(v)}}return b.prefix+decodeURIComponent(v)}function ve(o,l){let{tag:_,type:v}=l,b=!1;if(_){let{handle:S,suffix:A,verbatim:N}=_;if(N){if(N!=="!"&&N!=="!!")return N;let Y="Verbatim tags aren't resolved, so ".concat(N," is invalid.");o.errors.push(new e.YAMLSemanticError(l,Y))}else if(S==="!"&&!A)b=!0;else try{return be(o,l)}catch(Y){o.errors.push(Y)}}switch(v){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:case e.Type.QUOTE_DOUBLE:case e.Type.QUOTE_SINGLE:return e.defaultTags.STR;case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;case e.Type.PLAIN:return b?e.defaultTags.STR:null;default:return null}}function Ne(o,l,_){let{tags:v}=o.schema,b=[];for(let A of v)if(A.tag===_)if(A.test)b.push(A);else{let N=A.resolve(o,l);return N instanceof w?N:new y(N)}let S=ye(o,l);return typeof S=="string"&&b.length>0?u(S,b,v.scalarFallback):null}function Pe(o){let{type:l}=o;switch(l){case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;default:return e.defaultTags.STR}}function lt(o,l,_){try{let v=Ne(o,l,_);if(v)return _&&l.tag&&(v.tag=_),v}catch(v){return v.source||(v.source=l),o.errors.push(v),null}try{let v=Pe(l);if(!v)throw new Error("The tag ".concat(_," is unavailable"));let b="The tag ".concat(_," is unavailable, falling back to ").concat(v);o.warnings.push(new e.YAMLWarning(l,b));let S=Ne(o,l,v);return S.tag=_,S}catch(v){let b=new e.YAMLReferenceError(l,v.message);return b.stack=v.stack,o.errors.push(b),null}}var ct=o=>{if(!o)return!1;let{type:l}=o;return l===e.Type.MAP_KEY||l===e.Type.MAP_VALUE||l===e.Type.SEQ_ITEM};function ut(o,l){let _={before:[],after:[]},v=!1,b=!1,S=ct(l.context.parent)?l.context.parent.props.concat(l.props):l.props;for(let{start:A,end:N}of S)switch(l.context.src[A]){case e.Char.COMMENT:{if(!l.commentHasRequiredWhitespace(A)){let H="Comments must be separated from other tokens by white space characters";o.push(new e.YAMLSemanticError(l,H))}let{header:Y,valueRange:W}=l;(W&&(A>W.start||Y&&A>Y.start)?_.after:_.before).push(l.context.src.slice(A+1,N));break}case e.Char.ANCHOR:if(v){let Y="A node can have at most one anchor";o.push(new e.YAMLSemanticError(l,Y))}v=!0;break;case e.Char.TAG:if(b){let Y="A node can have at most one tag";o.push(new e.YAMLSemanticError(l,Y))}b=!0;break}return{comments:_,hasAnchor:v,hasTag:b}}function ft(o,l){let{anchors:_,errors:v,schema:b}=o;if(l.type===e.Type.ALIAS){let A=l.rawValue,N=_.getNode(A);if(!N){let W="Aliased anchor not found: ".concat(A);return v.push(new e.YAMLReferenceError(l,W)),null}let Y=new R(N);return _._cstAliases.push(Y),Y}let S=ve(o,l);if(S)return lt(o,l,S);if(l.type!==e.Type.PLAIN){let A="Failed to resolve ".concat(l.type," node here");return v.push(new e.YAMLSyntaxError(l,A)),null}try{let A=ye(o,l);return u(A,b.tags,b.tags.scalarFallback)}catch(A){return A.source||(A.source=l),v.push(A),null}}function we(o,l){if(!l)return null;l.error&&o.errors.push(l.error);let{comments:_,hasAnchor:v,hasTag:b}=ut(o.errors,l);if(v){let{anchors:A}=o,N=l.anchor,Y=A.getNode(N);Y&&(A.map[A.newName(N)]=Y),A.map[N]=l}if(l.type===e.Type.ALIAS&&(v||b)){let A="An alias node must not specify any properties";o.errors.push(new e.YAMLSemanticError(l,A))}let S=ft(o,l);if(S){S.range=[l.range.start,l.range.end],o.options.keepCstNodes&&(S.cstNode=l),o.options.keepNodeTypes&&(S.type=l.type);let A=_.before.join(` +`);A&&(S.commentBefore=S.commentBefore?"".concat(S.commentBefore,` +`).concat(A):A);let N=_.after.join(` +`);N&&(S.comment=S.comment?"".concat(S.comment,` +`).concat(N):N)}return l.resolved=S}function mt(o,l){if(l.type!==e.Type.MAP&&l.type!==e.Type.FLOW_MAP){let A="A ".concat(l.type," node cannot be resolved as a mapping");return o.errors.push(new e.YAMLSyntaxError(l,A)),null}let{comments:_,items:v}=l.type===e.Type.FLOW_MAP?gt(o,l):pt(o,l),b=new K;b.items=v,_e(b,_);let S=!1;for(let A=0;A{if(U instanceof R){let{type:H}=U.source;return H===e.Type.MAP||H===e.Type.FLOW_MAP?!1:W="Merge nodes aliases can only point to maps"}return W="Merge nodes can only have Alias nodes as values"}),W&&o.errors.push(new e.YAMLSemanticError(l,W))}else for(let Y=A+1;Y{let{context:{lineStart:l,node:_,src:v},props:b}=o;if(b.length===0)return!1;let{start:S}=b[0];if(_&&S>_.valueRange.start||v[S]!==e.Char.COMMENT)return!1;for(let A=l;A0){Y=new e.PlainValue(e.Type.PLAIN,[]),Y.context={parent:N,src:N.context.src};let U=N.range.start+1;if(Y.range={start:U,end:U},Y.valueRange={start:U,end:U},typeof N.range.origStart=="number"){let H=N.range.origStart+1;Y.range.origStart=Y.range.origEnd=H,Y.valueRange.origStart=Y.valueRange.origEnd=H}}let W=new C(b,we(o,Y));ht(N,W),v.push(W),b&&typeof S=="number"&&N.range.start>S+1024&&o.errors.push(ne(l,b)),b=void 0,S=null}break;default:b!==void 0&&v.push(new C(b)),b=we(o,N),S=N.range.start,N.error&&o.errors.push(N.error);e:for(let Y=A+1;;++Y){let W=l.items[Y];switch(W&&W.type){case e.Type.BLANK_LINE:case e.Type.COMMENT:continue e;case e.Type.MAP_VALUE:break e;default:{let U="Implicit map keys need to be followed by map values";o.errors.push(new e.YAMLSemanticError(N,U));break e}}}if(N.valueRangeContainsNewline){let Y="Implicit map keys need to be on a single line";o.errors.push(new e.YAMLSemanticError(N,Y))}}}return b!==void 0&&v.push(new C(b)),{comments:_,items:v}}function gt(o,l){let _=[],v=[],b,S=!1,A="{";for(let N=0;NS instanceof C&&S.key instanceof w)){let S="Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.";o.warnings.push(new e.YAMLWarning(l,S))}return l.resolved=b,b}function vt(o,l){let _=[],v=[];for(let b=0;bA+1024&&o.errors.push(ne(l,S));let{src:Z}=Y.context;for(let ee=A;eeu instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve:(u,g)=>{let L=n.resolveString(u,g);if(typeof Buffer=="function")return Buffer.from(L,"base64");if(typeof atob=="function"){let P=atob(L.replace(/[\n\r]/g,"")),B=new Uint8Array(P.length);for(let $=0;${let{comment:B,type:$,value:Q}=u,z;if(typeof Buffer=="function")z=Q instanceof Buffer?Q.toString("base64"):Buffer.from(Q.buffer).toString("base64");else if(typeof btoa=="function"){let ie="";for(let ue=0;ue1){let Q="Each pair must have its own sequence indicator";throw new e.YAMLSemanticError(g,Q)}let $=B.items[0]||new n.Pair;B.commentBefore&&($.commentBefore=$.commentBefore?"".concat(B.commentBefore,` +`).concat($.commentBefore):B.commentBefore),B.comment&&($.comment=$.comment?"".concat(B.comment,` +`).concat($.comment):B.comment),B=$}L.items[P]=B instanceof n.Pair?B:new n.Pair(B)}}return L}function d(u,g,L){let P=new n.YAMLSeq(u);P.tag="tag:yaml.org,2002:pairs";for(let B of g){let $,Q;if(Array.isArray(B))if(B.length===2)$=B[0],Q=B[1];else throw new TypeError("Expected [key, value] tuple: ".concat(B));else if(B&&B instanceof Object){let ie=Object.keys(B);if(ie.length===1)$=ie[0],Q=B[$];else throw new TypeError("Expected { key: value } tuple: ".concat(B))}else $=B;let z=u.createPair($,Q,L);P.items.push(z)}return P}var y={default:!1,tag:"tag:yaml.org,2002:pairs",resolve:h,createNode:d},M=class extends n.YAMLSeq{constructor(){super(),e._defineProperty(this,"add",n.YAMLMap.prototype.add.bind(this)),e._defineProperty(this,"delete",n.YAMLMap.prototype.delete.bind(this)),e._defineProperty(this,"get",n.YAMLMap.prototype.get.bind(this)),e._defineProperty(this,"has",n.YAMLMap.prototype.has.bind(this)),e._defineProperty(this,"set",n.YAMLMap.prototype.set.bind(this)),this.tag=M.tag}toJSON(u,g){let L=new Map;g&&g.onCreate&&g.onCreate(L);for(let P of this.items){let B,$;if(P instanceof n.Pair?(B=n.toJSON(P.key,"",g),$=n.toJSON(P.value,B,g)):B=n.toJSON(P,"",g),L.has(B))throw new Error("Ordered maps must not include duplicate keys");L.set(B,$)}return L}};e._defineProperty(M,"tag","tag:yaml.org,2002:omap");function k(u,g){let L=h(u,g),P=[];for(let{key:B}of L.items)if(B instanceof n.Scalar)if(P.includes(B.value)){let $="Ordered maps must not include duplicate keys";throw new e.YAMLSemanticError(g,$)}else P.push(B.value);return Object.assign(new M,L)}function w(u,g,L){let P=d(u,g,L),B=new M;return B.items=P.items,B}var E={identify:u=>u instanceof Map,nodeClass:M,default:!1,tag:"tag:yaml.org,2002:omap",resolve:k,createNode:w},T=class extends n.YAMLMap{constructor(){super(),this.tag=T.tag}add(u){let g=u instanceof n.Pair?u:new n.Pair(u);n.findPair(this.items,g.key)||this.items.push(g)}get(u,g){let L=n.findPair(this.items,u);return!g&&L instanceof n.Pair?L.key instanceof n.Scalar?L.key.value:L.key:L}set(u,g){if(typeof g!="boolean")throw new Error("Expected boolean value for set(key, value) in a YAML set, not ".concat(typeof g));let L=n.findPair(this.items,u);L&&!g?this.items.splice(this.items.indexOf(L),1):!L&&g&&this.items.push(new n.Pair(u))}toJSON(u,g){return super.toJSON(u,g,Set)}toString(u,g,L){if(!u)return JSON.stringify(this);if(this.hasAllNullValues())return super.toString(u,g,L);throw new Error("Set items must all have null values")}};e._defineProperty(T,"tag","tag:yaml.org,2002:set");function I(u,g){let L=n.resolveMap(u,g);if(!L.hasAllNullValues())throw new e.YAMLSemanticError(g,"Set items must all have null values");return Object.assign(new T,L)}function C(u,g,L){let P=new T;for(let B of g)P.items.push(u.createPair(B,null,L));return P}var q={identify:u=>u instanceof Set,nodeClass:T,default:!1,tag:"tag:yaml.org,2002:set",resolve:I,createNode:C},R=(u,g)=>{let L=g.split(":").reduce((P,B)=>P*60+Number(B),0);return u==="-"?-L:L},j=u=>{let{value:g}=u;if(isNaN(g)||!isFinite(g))return n.stringifyNumber(g);let L="";g<0&&(L="-",g=Math.abs(g));let P=[g%60];return g<60?P.unshift(0):(g=Math.round((g-P[0])/60),P.unshift(g%60),g>=60&&(g=Math.round((g-P[0])/60),P.unshift(g))),L+P.map(B=>B<10?"0"+String(B):String(B)).join(":").replace(/000000\d*$/,"")},K={identify:u=>typeof u=="number",default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:(u,g,L)=>R(g,L.replace(/_/g,"")),stringify:j},m={identify:u=>typeof u=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,resolve:(u,g,L)=>R(g,L.replace(/_/g,"")),stringify:j},a={identify:u=>u instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"),resolve:(u,g,L,P,B,$,Q,z,ie)=>{z&&(z=(z+"00").substr(1,3));let ue=Date.UTC(g,L-1,P,B||0,$||0,Q||0,z||0);if(ie&&ie!=="Z"){let ge=R(ie[0],ie.slice(1));Math.abs(ge)<30&&(ge*=60),ue-=6e4*ge}return new Date(ue)},stringify:u=>{let{value:g}=u;return g.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")}};function t(u){let g=typeof Te<"u"&&Te.env||{};return u?typeof YAML_SILENCE_DEPRECATION_WARNINGS<"u"?!YAML_SILENCE_DEPRECATION_WARNINGS:!g.YAML_SILENCE_DEPRECATION_WARNINGS:typeof YAML_SILENCE_WARNINGS<"u"?!YAML_SILENCE_WARNINGS:!g.YAML_SILENCE_WARNINGS}function r(u,g){if(t(!1)){let L=typeof Te<"u"&&Te.emitWarning;L?L(u,g):console.warn(g?"".concat(g,": ").concat(u):u)}}function i(u){if(t(!0)){let g=u.replace(/.*yaml[/\\]/i,"").replace(/\.js$/,"").replace(/\\/g,"/");r("The endpoint 'yaml/".concat(g,"' will be removed in a future release."),"DeprecationWarning")}}var f={};function p(u,g){if(!f[u]&&t(!0)){f[u]=!0;let L="The option '".concat(u,"' will be removed in a future release");L+=g?", use '".concat(g,"' instead."):".",r(L,"DeprecationWarning")}}s.binary=c,s.floatTime=m,s.intTime=K,s.omap=E,s.pairs=y,s.set=q,s.timestamp=a,s.warn=r,s.warnFileDeprecation=i,s.warnOptionDeprecation=p}}),ot=F({"node_modules/yaml/dist/Schema-88e323a7.js"(s){"use strict";D();var e=Me(),n=ke(),c=it();function h(O,V,J){let x=new n.YAMLMap(O);if(V instanceof Map)for(let[G,ne]of V)x.items.push(O.createPair(G,ne,J));else if(V&&typeof V=="object")for(let G of Object.keys(V))x.items.push(O.createPair(G,V[G],J));return typeof O.sortMapEntries=="function"&&x.items.sort(O.sortMapEntries),x}var d={createNode:h,default:!0,nodeClass:n.YAMLMap,tag:"tag:yaml.org,2002:map",resolve:n.resolveMap};function y(O,V,J){let x=new n.YAMLSeq(O);if(V&&V[Symbol.iterator])for(let G of V){let ne=O.createNode(G,J.wrapScalars,null,J);x.items.push(ne)}return x}var M={createNode:y,default:!0,nodeClass:n.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve:n.resolveSeq},k={identify:O=>typeof O=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n.resolveString,stringify(O,V,J,x){return V=Object.assign({actualString:!0},V),n.stringifyString(O,V,J,x)},options:n.strOptions},w=[d,M,k],E=O=>typeof O=="bigint"||Number.isInteger(O),T=(O,V,J)=>n.intOptions.asBigInt?BigInt(O):parseInt(V,J);function I(O,V,J){let{value:x}=O;return E(x)&&x>=0?J+x.toString(V):n.stringifyNumber(O)}var C={identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},q={identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:O=>O[0]==="t"||O[0]==="T",options:n.boolOptions,stringify:O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr}},R={identify:O=>E(O)&&O>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o([0-7]+)$/,resolve:(O,V)=>T(O,V,8),options:n.intOptions,stringify:O=>I(O,8,"0o")},j={identify:E,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:O=>T(O,O,10),options:n.intOptions,stringify:n.stringifyNumber},K={identify:O=>E(O)&&O>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x([0-9a-fA-F]+)$/,resolve:(O,V)=>T(O,V,16),options:n.intOptions,stringify:O=>I(O,16,"0x")},m={identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},a={identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},t={identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,resolve(O,V,J){let x=V||J,G=new n.Scalar(parseFloat(O));return x&&x[x.length-1]==="0"&&(G.minFractionDigits=x.length),G},stringify:n.stringifyNumber},r=w.concat([C,q,R,j,K,m,a,t]),i=O=>typeof O=="bigint"||Number.isInteger(O),f=O=>{let{value:V}=O;return JSON.stringify(V)},p=[d,M,{identify:O=>typeof O=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n.resolveString,stringify:f},{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:f},{identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:O=>O==="true",stringify:f},{identify:i,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:O=>n.intOptions.asBigInt?BigInt(O):parseInt(O,10),stringify:O=>{let{value:V}=O;return i(V)?V.toString():JSON.stringify(V)}},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:O=>parseFloat(O),stringify:f}];p.scalarFallback=O=>{throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(O)))};var u=O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr},g=O=>typeof O=="bigint"||Number.isInteger(O);function L(O,V,J){let x=V.replace(/_/g,"");if(n.intOptions.asBigInt){switch(J){case 2:x="0b".concat(x);break;case 8:x="0o".concat(x);break;case 16:x="0x".concat(x);break}let ne=BigInt(x);return O==="-"?BigInt(-1)*ne:ne}let G=parseInt(x,J);return O==="-"?-1*G:G}function P(O,V,J){let{value:x}=O;if(g(x)){let G=x.toString(V);return x<0?"-"+J+G.substr(1):J+G}return n.stringifyNumber(O)}var B=w.concat([{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},{identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>!0,options:n.boolOptions,stringify:u},{identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>!1,options:n.boolOptions,stringify:u},{identify:g,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^([-+]?)0b([0-1_]+)$/,resolve:(O,V,J)=>L(V,J,2),stringify:O=>P(O,2,"0b")},{identify:g,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^([-+]?)0([0-7_]+)$/,resolve:(O,V,J)=>L(V,J,8),stringify:O=>P(O,8,"0")},{identify:g,default:!0,tag:"tag:yaml.org,2002:int",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:(O,V,J)=>L(V,J,10),stringify:n.stringifyNumber},{identify:g,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:(O,V,J)=>L(V,J,16),stringify:O=>P(O,16,"0x")},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O.replace(/_/g,"")),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,resolve(O,V){let J=new n.Scalar(parseFloat(O.replace(/_/g,"")));if(V){let x=V.replace(/_/g,"");x[x.length-1]==="0"&&(J.minFractionDigits=x.length)}return J},stringify:n.stringifyNumber}],c.binary,c.omap,c.pairs,c.set,c.intTime,c.floatTime,c.timestamp),$={core:r,failsafe:w,json:p,yaml11:B},Q={binary:c.binary,bool:q,float:t,floatExp:a,floatNaN:m,floatTime:c.floatTime,int:j,intHex:K,intOct:R,intTime:c.intTime,map:d,null:C,omap:c.omap,pairs:c.pairs,seq:M,set:c.set,timestamp:c.timestamp};function z(O,V,J){if(V){let x=J.filter(ne=>ne.tag===V),G=x.find(ne=>!ne.format)||x[0];if(!G)throw new Error("Tag ".concat(V," not found"));return G}return J.find(x=>(x.identify&&x.identify(O)||x.class&&O instanceof x.class)&&!x.format)}function ie(O,V,J){if(O instanceof n.Node)return O;let{defaultPrefix:x,onTagObj:G,prevObjects:ne,schema:_e,wrapScalars:ye}=J;V&&V.startsWith("!!")&&(V=x+V.slice(2));let be=z(O,V,_e.tags);if(!be){if(typeof O.toJSON=="function"&&(O=O.toJSON()),!O||typeof O!="object")return ye?new n.Scalar(O):O;be=O instanceof Map?d:O[Symbol.iterator]?M:d}G&&(G(be),delete J.onTagObj);let ve={value:void 0,node:void 0};if(O&&typeof O=="object"&&ne){let Ne=ne.get(O);if(Ne){let Pe=new n.Alias(Ne);return J.aliasNodes.push(Pe),Pe}ve.value=O,ne.set(O,ve)}return ve.node=be.createNode?be.createNode(J.schema,O,J):ye?new n.Scalar(O):O,V&&ve.node instanceof n.Node&&(ve.node.tag=V),ve.node}function ue(O,V,J,x){let G=O[x.replace(/\W/g,"")];if(!G){let ne=Object.keys(O).map(_e=>JSON.stringify(_e)).join(", ");throw new Error('Unknown schema "'.concat(x,'"; use one of ').concat(ne))}if(Array.isArray(J))for(let ne of J)G=G.concat(ne);else typeof J=="function"&&(G=J(G.slice()));for(let ne=0;neJSON.stringify(ve)).join(", ");throw new Error('Unknown custom tag "'.concat(_e,'"; use one of ').concat(be))}G[ne]=ye}}return G}var ge=(O,V)=>O.keyV.key?1:0,pe=class{constructor(O){let{customTags:V,merge:J,schema:x,sortMapEntries:G,tags:ne}=O;this.merge=!!J,this.name=x,this.sortMapEntries=G===!0?ge:G||null,!V&&ne&&c.warnOptionDeprecation("tags","customTags"),this.tags=ue($,Q,V||ne,x)}createNode(O,V,J,x){let G={defaultPrefix:pe.defaultPrefix,schema:this,wrapScalars:V},ne=x?Object.assign(x,G):G;return ie(O,J,ne)}createPair(O,V,J){J||(J={wrapScalars:!0});let x=this.createNode(O,J.wrapScalars,null,J),G=this.createNode(V,J.wrapScalars,null,J);return new n.Pair(x,G)}};e._defineProperty(pe,"defaultPrefix",e.defaultTagPrefix),e._defineProperty(pe,"defaultTags",e.defaultTags),s.Schema=pe}}),Hn=F({"node_modules/yaml/dist/Document-9b4560a1.js"(s){"use strict";D();var e=Me(),n=ke(),c=ot(),h={anchorPrefix:"a",customTags:null,indent:2,indentSeq:!0,keepCstNodes:!1,keepNodeTypes:!0,keepBlobsInJSON:!0,mapAsMap:!1,maxAliasCount:100,prettyErrors:!1,simpleKeys:!1,version:"1.2"},d={get binary(){return n.binaryOptions},set binary(t){Object.assign(n.binaryOptions,t)},get bool(){return n.boolOptions},set bool(t){Object.assign(n.boolOptions,t)},get int(){return n.intOptions},set int(t){Object.assign(n.intOptions,t)},get null(){return n.nullOptions},set null(t){Object.assign(n.nullOptions,t)},get str(){return n.strOptions},set str(t){Object.assign(n.strOptions,t)}},y={"1.0":{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:e.defaultTagPrefix},{handle:"!!",prefix:"tag:private.yaml.org,2002:"}]},1.1:{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:e.defaultTagPrefix}]},1.2:{schema:"core",merge:!1,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:e.defaultTagPrefix}]}};function M(t,r){if((t.version||t.options.version)==="1.0"){let p=r.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);if(p)return"!"+p[1];let u=r.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);return u?"!".concat(u[1],"/").concat(u[2]):"!".concat(r.replace(/^tag:/,""))}let i=t.tagPrefixes.find(p=>r.indexOf(p.prefix)===0);if(!i){let p=t.getDefaults().tagPrefixes;i=p&&p.find(u=>r.indexOf(u.prefix)===0)}if(!i)return r[0]==="!"?r:"!<".concat(r,">");let f=r.substr(i.prefix.length).replace(/[!,[\]{}]/g,p=>({"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"})[p]);return i.handle+f}function k(t,r){if(r instanceof n.Alias)return n.Alias;if(r.tag){let p=t.filter(u=>u.tag===r.tag);if(p.length>0)return p.find(u=>u.format===r.format)||p[0]}let i,f;if(r instanceof n.Scalar){f=r.value;let p=t.filter(u=>u.identify&&u.identify(f)||u.class&&f instanceof u.class);i=p.find(u=>u.format===r.format)||p.find(u=>!u.format)}else f=r,i=t.find(p=>p.nodeClass&&f instanceof p.nodeClass);if(!i){let p=f&&f.constructor?f.constructor.name:typeof f;throw new Error("Tag not resolved for ".concat(p," value"))}return i}function w(t,r,i){let{anchors:f,doc:p}=i,u=[],g=p.anchors.getName(t);return g&&(f[g]=t,u.push("&".concat(g))),t.tag?u.push(M(p,t.tag)):r.default||u.push(M(p,r.tag)),u.join(" ")}function E(t,r,i,f){let{anchors:p,schema:u}=r.doc,g;if(!(t instanceof n.Node)){let B={aliasNodes:[],onTagObj:$=>g=$,prevObjects:new Map};t=u.createNode(t,!0,null,B);for(let $ of B.aliasNodes){$.source=$.source.node;let Q=p.getName($.source);Q||(Q=p.newName(),p.map[Q]=$.source)}}if(t instanceof n.Pair)return t.toString(r,i,f);g||(g=k(u.tags,t));let L=w(t,g,r);L.length>0&&(r.indentAtStart=(r.indentAtStart||0)+L.length+1);let P=typeof g.stringify=="function"?g.stringify(t,r,i,f):t instanceof n.Scalar?n.stringifyString(t,r,i,f):t.toString(r,i,f);return L?t instanceof n.Scalar||P[0]==="{"||P[0]==="["?"".concat(L," ").concat(P):"".concat(L,` +`).concat(r.indent).concat(P):P}var T=class{static validAnchorNode(t){return t instanceof n.Scalar||t instanceof n.YAMLSeq||t instanceof n.YAMLMap}constructor(t){e._defineProperty(this,"map",Object.create(null)),this.prefix=t}createAlias(t,r){return this.setAnchor(t,r),new n.Alias(t)}createMergePair(){let t=new n.Merge;for(var r=arguments.length,i=new Array(r),f=0;f{if(p instanceof n.Alias){if(p.source instanceof n.YAMLMap)return p}else if(p instanceof n.YAMLMap)return this.createAlias(p);throw new Error("Merge sources must be Map nodes or their Aliases")}),t}getName(t){let{map:r}=this;return Object.keys(r).find(i=>r[i]===t)}getNames(){return Object.keys(this.map)}getNode(t){return this.map[t]}newName(t){t||(t=this.prefix);let r=Object.keys(this.map);for(let i=1;;++i){let f="".concat(t).concat(i);if(!r.includes(f))return f}}resolveNodes(){let{map:t,_cstAliases:r}=this;Object.keys(t).forEach(i=>{t[i]=t[i].resolved}),r.forEach(i=>{i.source=i.source.resolved}),delete this._cstAliases}setAnchor(t,r){if(t!=null&&!T.validAnchorNode(t))throw new Error("Anchors may only be set for Scalar, Seq and Map nodes");if(r&&/[\x00-\x19\s,[\]{}]/.test(r))throw new Error("Anchor names must not contain whitespace or control characters");let{map:i}=this,f=t&&Object.keys(i).find(p=>i[p]===t);if(f)if(r)f!==r&&(delete i[f],i[r]=t);else return f;else{if(!r){if(!t)return null;r=this.newName()}i[r]=t}return r}},I=(t,r)=>{if(t&&typeof t=="object"){let{tag:i}=t;t instanceof n.Collection?(i&&(r[i]=!0),t.items.forEach(f=>I(f,r))):t instanceof n.Pair?(I(t.key,r),I(t.value,r)):t instanceof n.Scalar&&i&&(r[i]=!0)}return r},C=t=>Object.keys(I(t,{}));function q(t,r){let i={before:[],after:[]},f,p=!1;for(let u of r)if(u.valueRange){if(f!==void 0){let L="Document contains trailing content not separated by a ... or --- line";t.errors.push(new e.YAMLSyntaxError(u,L));break}let g=n.resolveNode(t,u);p&&(g.spaceBefore=!0,p=!1),f=g}else u.comment!==null?(f===void 0?i.before:i.after).push(u.comment):u.type===e.Type.BLANK_LINE&&(p=!0,f===void 0&&i.before.length>0&&!t.commentBefore&&(t.commentBefore=i.before.join(` +`),i.before=[]));if(t.contents=f||null,!f)t.comment=i.before.concat(i.after).join(` +`)||null;else{let u=i.before.join(` +`);if(u){let g=f instanceof n.Collection&&f.items[0]?f.items[0]:f;g.commentBefore=g.commentBefore?"".concat(u,` +`).concat(g.commentBefore):u}t.comment=i.after.join(` +`)||null}}function R(t,r){let{tagPrefixes:i}=t,[f,p]=r.parameters;if(!f||!p){let u="Insufficient parameters given for %TAG directive";throw new e.YAMLSemanticError(r,u)}if(i.some(u=>u.handle===f)){let u="The %TAG directive must only be given at most once per handle in the same document.";throw new e.YAMLSemanticError(r,u)}return{handle:f,prefix:p}}function j(t,r){let[i]=r.parameters;if(r.name==="YAML:1.0"&&(i="1.0"),!i){let f="Insufficient parameters given for %YAML directive";throw new e.YAMLSemanticError(r,f)}if(!y[i]){let f=t.version||t.options.version,p="Document will be parsed as YAML ".concat(f," rather than YAML ").concat(i);t.warnings.push(new e.YAMLWarning(r,p))}return i}function K(t,r,i){let f=[],p=!1;for(let u of r){let{comment:g,name:L}=u;switch(L){case"TAG":try{t.tagPrefixes.push(R(t,u))}catch(P){t.errors.push(P)}p=!0;break;case"YAML":case"YAML:1.0":if(t.version){let P="The %YAML directive must only be given at most once per document.";t.errors.push(new e.YAMLSemanticError(u,P))}try{t.version=j(t,u)}catch(P){t.errors.push(P)}p=!0;break;default:if(L){let P="YAML only supports %TAG and %YAML directives, and not %".concat(L);t.warnings.push(new e.YAMLWarning(u,P))}}g&&f.push(g)}if(i&&!p&&(t.version||i.version||t.options.version)==="1.1"){let u=g=>{let{handle:L,prefix:P}=g;return{handle:L,prefix:P}};t.tagPrefixes=i.tagPrefixes.map(u),t.version=i.version}t.commentBefore=f.join(` +`)||null}function m(t){if(t instanceof n.Collection)return!0;throw new Error("Expected a YAML collection as document contents")}var a=class{constructor(t){this.anchors=new T(t.anchorPrefix),this.commentBefore=null,this.comment=null,this.contents=null,this.directivesEndMarker=null,this.errors=[],this.options=t,this.schema=null,this.tagPrefixes=[],this.version=null,this.warnings=[]}add(t){return m(this.contents),this.contents.add(t)}addIn(t,r){m(this.contents),this.contents.addIn(t,r)}delete(t){return m(this.contents),this.contents.delete(t)}deleteIn(t){return n.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):(m(this.contents),this.contents.deleteIn(t))}getDefaults(){return a.defaults[this.version]||a.defaults[this.options.version]||{}}get(t,r){return this.contents instanceof n.Collection?this.contents.get(t,r):void 0}getIn(t,r){return n.isEmptyPath(t)?!r&&this.contents instanceof n.Scalar?this.contents.value:this.contents:this.contents instanceof n.Collection?this.contents.getIn(t,r):void 0}has(t){return this.contents instanceof n.Collection?this.contents.has(t):!1}hasIn(t){return n.isEmptyPath(t)?this.contents!==void 0:this.contents instanceof n.Collection?this.contents.hasIn(t):!1}set(t,r){m(this.contents),this.contents.set(t,r)}setIn(t,r){n.isEmptyPath(t)?this.contents=r:(m(this.contents),this.contents.setIn(t,r))}setSchema(t,r){if(!t&&!r&&this.schema)return;typeof t=="number"&&(t=t.toFixed(1)),t==="1.0"||t==="1.1"||t==="1.2"?(this.version?this.version=t:this.options.version=t,delete this.options.schema):t&&typeof t=="string"&&(this.options.schema=t),Array.isArray(r)&&(this.options.customTags=r);let i=Object.assign({},this.getDefaults(),this.options);this.schema=new c.Schema(i)}parse(t,r){this.options.keepCstNodes&&(this.cstNode=t),this.options.keepNodeTypes&&(this.type="DOCUMENT");let{directives:i=[],contents:f=[],directivesEndMarker:p,error:u,valueRange:g}=t;if(u&&(u.source||(u.source=this),this.errors.push(u)),K(this,i,r),p&&(this.directivesEndMarker=!0),this.range=g?[g.start,g.end]:null,this.setSchema(),this.anchors._cstAliases=[],q(this,f),this.anchors.resolveNodes(),this.options.prettyErrors){for(let L of this.errors)L instanceof e.YAMLError&&L.makePretty();for(let L of this.warnings)L instanceof e.YAMLError&&L.makePretty()}return this}listNonDefaultTags(){return C(this.contents).filter(t=>t.indexOf(c.Schema.defaultPrefix)!==0)}setTagPrefix(t,r){if(t[0]!=="!"||t[t.length-1]!=="!")throw new Error("Handle must start and end with !");if(r){let i=this.tagPrefixes.find(f=>f.handle===t);i?i.prefix=r:this.tagPrefixes.push({handle:t,prefix:r})}else this.tagPrefixes=this.tagPrefixes.filter(i=>i.handle!==t)}toJSON(t,r){let{keepBlobsInJSON:i,mapAsMap:f,maxAliasCount:p}=this.options,u=i&&(typeof t!="string"||!(this.contents instanceof n.Scalar)),g={doc:this,indentStep:" ",keep:u,mapAsMap:u&&!!f,maxAliasCount:p,stringify:E},L=Object.keys(this.anchors.map);L.length>0&&(g.anchors=new Map(L.map(B=>[this.anchors.map[B],{alias:[],aliasCount:0,count:1}])));let P=n.toJSON(this.contents,t,g);if(typeof r=="function"&&g.anchors)for(let{count:B,res:$}of g.anchors.values())r($,B);return P}toString(){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");let t=this.options.indent;if(!Number.isInteger(t)||t<=0){let L=JSON.stringify(t);throw new Error('"indent" option must be a positive integer, not '.concat(L))}this.setSchema();let r=[],i=!1;if(this.version){let L="%YAML 1.2";this.schema.name==="yaml-1.1"&&(this.version==="1.0"?L="%YAML:1.0":this.version==="1.1"&&(L="%YAML 1.1")),r.push(L),i=!0}let f=this.listNonDefaultTags();this.tagPrefixes.forEach(L=>{let{handle:P,prefix:B}=L;f.some($=>$.indexOf(B)===0)&&(r.push("%TAG ".concat(P," ").concat(B)),i=!0)}),(i||this.directivesEndMarker)&&r.push("---"),this.commentBefore&&((i||!this.directivesEndMarker)&&r.unshift(""),r.unshift(this.commentBefore.replace(/^/gm,"#")));let p={anchors:Object.create(null),doc:this,indent:"",indentStep:" ".repeat(t),stringify:E},u=!1,g=null;if(this.contents){this.contents instanceof n.Node&&(this.contents.spaceBefore&&(i||this.directivesEndMarker)&&r.push(""),this.contents.commentBefore&&r.push(this.contents.commentBefore.replace(/^/gm,"#")),p.forceBlockIndent=!!this.comment,g=this.contents.comment);let L=g?null:()=>u=!0,P=E(this.contents,p,()=>g=null,L);r.push(n.addComment(P,"",g))}else this.contents!==void 0&&r.push(E(this.contents,p));return this.comment&&((!u||g)&&r[r.length-1]!==""&&r.push(""),r.push(this.comment.replace(/^/gm,"#"))),r.join(` +`)+` +`}};e._defineProperty(a,"defaults",y),s.Document=a,s.defaultOptions=h,s.scalarOptions=d}}),Gn=F({"node_modules/yaml/dist/index.js"(s){"use strict";D();var e=xn(),n=Hn(),c=ot(),h=Me(),d=it();ke();function y(C){let q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,R=arguments.length>2?arguments[2]:void 0;R===void 0&&typeof q=="string"&&(R=q,q=!0);let j=Object.assign({},n.Document.defaults[n.defaultOptions.version],n.defaultOptions);return new c.Schema(j).createNode(C,q,R)}var M=class extends n.Document{constructor(C){super(Object.assign({},n.defaultOptions,C))}};function k(C,q){let R=[],j;for(let K of e.parse(C)){let m=new M(q);m.parse(K,j),R.push(m),j=m}return R}function w(C,q){let R=e.parse(C),j=new M(q).parse(R[0]);if(R.length>1){let K="Source contains multiple documents; please use YAML.parseAllDocuments()";j.errors.unshift(new h.YAMLSemanticError(R[1],K))}return j}function E(C,q){let R=w(C,q);if(R.warnings.forEach(j=>d.warn(j)),R.errors.length>0)throw R.errors[0];return R.toJSON()}function T(C,q){let R=new M(q);return R.contents=C,String(R)}var I={createNode:y,defaultOptions:n.defaultOptions,Document:M,parse:E,parseAllDocuments:k,parseCST:e.parse,parseDocument:w,scalarOptions:n.scalarOptions,stringify:T};s.YAML=I}}),Je=F({"node_modules/yaml/index.js"(s,e){D(),e.exports=Gn().YAML}}),zn=F({"node_modules/yaml/dist/util.js"(s){"use strict";D();var e=ke(),n=Me();s.findPair=e.findPair,s.parseMap=e.resolveMap,s.parseSeq=e.resolveSeq,s.stringifyNumber=e.stringifyNumber,s.stringifyString=e.stringifyString,s.toJSON=e.toJSON,s.Type=n.Type,s.YAMLError=n.YAMLError,s.YAMLReferenceError=n.YAMLReferenceError,s.YAMLSemanticError=n.YAMLSemanticError,s.YAMLSyntaxError=n.YAMLSyntaxError,s.YAMLWarning=n.YAMLWarning}}),Zn=F({"node_modules/yaml/util.js"(s){D();var e=zn();s.findPair=e.findPair,s.toJSON=e.toJSON,s.parseMap=e.parseMap,s.parseSeq=e.parseSeq,s.stringifyNumber=e.stringifyNumber,s.stringifyString=e.stringifyString,s.Type=e.Type,s.YAMLError=e.YAMLError,s.YAMLReferenceError=e.YAMLReferenceError,s.YAMLSemanticError=e.YAMLSemanticError,s.YAMLSyntaxError=e.YAMLSyntaxError,s.YAMLWarning=e.YAMLWarning}}),Xn=F({"node_modules/yaml-unist-parser/lib/yaml.js"(s){"use strict";D(),s.__esModule=!0;var e=Je();s.Document=e.Document;var n=Je();s.parseCST=n.parseCST;var c=Zn();s.YAMLError=c.YAMLError,s.YAMLSyntaxError=c.YAMLSyntaxError,s.YAMLSemanticError=c.YAMLSemanticError}}),er=F({"node_modules/yaml-unist-parser/lib/parse.js"(s){"use strict";D(),s.__esModule=!0;var e=$t(),n=xt(),c=Ht(),h=Gt(),d=Yn(),y=ze(),M=Fn(),k=Vn(),w=Qn(),E=Un(),T=Kn(),I=Jn(),C=Xn();function q(R){var j=C.parseCST(R);E.addOrigRange(j);for(var K=j.map(function(P){return new C.Document({merge:!1,keepCstNodes:!0}).parse(P)}),m=new e.default(R),a=[],t={text:R,locator:m,comments:a,transformOffset:function(P){return k.transformOffset(P,t)},transformRange:function(P){return w.transformRange(P,t)},transformNode:function(P){return d.transformNode(P,t)},transformContent:function(P){return y.transformContent(P,t)}},r=0,i=K;r()=>(n||e((n={exports:{}}).exports,n),n.exports);var Ye=_e((Eg,Zn)=>{var er=function(e){return e&&e.Math==Math&&e};Zn.exports=er(typeof globalThis=="object"&&globalThis)||er(typeof window=="object"&&window)||er(typeof self=="object"&&self)||er(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Dt=_e((Fg,eu)=>{eu.exports=function(e){try{return!!e()}catch{return!0}}});var Ct=_e((Ag,tu)=>{var go=Dt();tu.exports=!go(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var tr=_e((Sg,ru)=>{var yo=Dt();ru.exports=!yo(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var Et=_e((xg,nu)=>{var ho=tr(),rr=Function.prototype.call;nu.exports=ho?rr.bind(rr):function(){return rr.apply(rr,arguments)}});var au=_e(iu=>{"use strict";var uu={}.propertyIsEnumerable,su=Object.getOwnPropertyDescriptor,vo=su&&!uu.call({1:2},1);iu.f=vo?function(n){var t=su(this,n);return!!t&&t.enumerable}:uu});var nr=_e((Tg,ou)=>{ou.exports=function(e,n){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:n}}});var at=_e((Bg,pu)=>{var lu=tr(),cu=Function.prototype,Co=cu.bind,Lr=cu.call,Eo=lu&&Co.bind(Lr,Lr);pu.exports=lu?function(e){return e&&Eo(e)}:function(e){return e&&function(){return Lr.apply(e,arguments)}}});var ur=_e((Ng,Du)=>{var fu=at(),Fo=fu({}.toString),Ao=fu("".slice);Du.exports=function(e){return Ao(Fo(e),8,-1)}});var du=_e((wg,mu)=>{var So=Ye(),xo=at(),bo=Dt(),To=ur(),jr=So.Object,Bo=xo("".split);mu.exports=bo(function(){return!jr("z").propertyIsEnumerable(0)})?function(e){return To(e)=="String"?Bo(e,""):jr(e)}:jr});var Or=_e((_g,gu)=>{var No=Ye(),wo=No.TypeError;gu.exports=function(e){if(e==null)throw wo("Can't call method on "+e);return e}});var sr=_e((Pg,yu)=>{var _o=du(),Po=Or();yu.exports=function(e){return _o(Po(e))}});var ot=_e((kg,hu)=>{hu.exports=function(e){return typeof e=="function"}});var Ft=_e((Ig,vu)=>{var ko=ot();vu.exports=function(e){return typeof e=="object"?e!==null:ko(e)}});var qt=_e((Lg,Cu)=>{var qr=Ye(),Io=ot(),Lo=function(e){return Io(e)?e:void 0};Cu.exports=function(e,n){return arguments.length<2?Lo(qr[e]):qr[e]&&qr[e][n]}});var Mr=_e((jg,Eu)=>{var jo=at();Eu.exports=jo({}.isPrototypeOf)});var Au=_e((Og,Fu)=>{var Oo=qt();Fu.exports=Oo("navigator","userAgent")||""});var wu=_e((qg,Nu)=>{var Bu=Ye(),Rr=Au(),Su=Bu.process,xu=Bu.Deno,bu=Su&&Su.versions||xu&&xu.version,Tu=bu&&bu.v8,ft,ir;Tu&&(ft=Tu.split("."),ir=ft[0]>0&&ft[0]<4?1:+(ft[0]+ft[1]));!ir&&Rr&&(ft=Rr.match(/Edge\/(\d+)/),(!ft||ft[1]>=74)&&(ft=Rr.match(/Chrome\/(\d+)/),ft&&(ir=+ft[1])));Nu.exports=ir});var Vr=_e((Mg,Pu)=>{var _u=wu(),qo=Dt();Pu.exports=!!Object.getOwnPropertySymbols&&!qo(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&_u&&_u<41})});var Wr=_e((Rg,ku)=>{var Mo=Vr();ku.exports=Mo&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var $r=_e((Vg,Iu)=>{var Ro=Ye(),Vo=qt(),Wo=ot(),$o=Mr(),Ho=Wr(),Go=Ro.Object;Iu.exports=Ho?function(e){return typeof e=="symbol"}:function(e){var n=Vo("Symbol");return Wo(n)&&$o(n.prototype,Go(e))}});var ar=_e((Wg,Lu)=>{var Jo=Ye(),Uo=Jo.String;Lu.exports=function(e){try{return Uo(e)}catch{return"Object"}}});var Mt=_e(($g,ju)=>{var zo=Ye(),Xo=ot(),Ko=ar(),Yo=zo.TypeError;ju.exports=function(e){if(Xo(e))return e;throw Yo(Ko(e)+" is not a function")}});var or=_e((Hg,Ou)=>{var Qo=Mt();Ou.exports=function(e,n){var t=e[n];return t==null?void 0:Qo(t)}});var Mu=_e((Gg,qu)=>{var Zo=Ye(),Hr=Et(),Gr=ot(),Jr=Ft(),el=Zo.TypeError;qu.exports=function(e,n){var t,s;if(n==="string"&&Gr(t=e.toString)&&!Jr(s=Hr(t,e))||Gr(t=e.valueOf)&&!Jr(s=Hr(t,e))||n!=="string"&&Gr(t=e.toString)&&!Jr(s=Hr(t,e)))return s;throw el("Can't convert object to primitive value")}});var Vu=_e((Jg,Ru)=>{Ru.exports=!1});var lr=_e((Ug,$u)=>{var Wu=Ye(),tl=Object.defineProperty;$u.exports=function(e,n){try{tl(Wu,e,{value:n,configurable:!0,writable:!0})}catch{Wu[e]=n}return n}});var cr=_e((zg,Gu)=>{var rl=Ye(),nl=lr(),Hu="__core-js_shared__",ul=rl[Hu]||nl(Hu,{});Gu.exports=ul});var Ur=_e((Xg,Uu)=>{var sl=Vu(),Ju=cr();(Uu.exports=function(e,n){return Ju[e]||(Ju[e]=n!==void 0?n:{})})("versions",[]).push({version:"3.22.2",mode:sl?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var pr=_e((Kg,zu)=>{var il=Ye(),al=Or(),ol=il.Object;zu.exports=function(e){return ol(al(e))}});var gt=_e((Yg,Xu)=>{var ll=at(),cl=pr(),pl=ll({}.hasOwnProperty);Xu.exports=Object.hasOwn||function(n,t){return pl(cl(n),t)}});var zr=_e((Qg,Ku)=>{var fl=at(),Dl=0,ml=Math.random(),dl=fl(1 .toString);Ku.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+dl(++Dl+ml,36)}});var St=_e((Zg,ts)=>{var gl=Ye(),yl=Ur(),Yu=gt(),hl=zr(),Qu=Vr(),es=Wr(),Bt=yl("wks"),At=gl.Symbol,Zu=At&&At.for,vl=es?At:At&&At.withoutSetter||hl;ts.exports=function(e){if(!Yu(Bt,e)||!(Qu||typeof Bt[e]=="string")){var n="Symbol."+e;Qu&&Yu(At,e)?Bt[e]=At[e]:es&&Zu?Bt[e]=Zu(n):Bt[e]=vl(n)}return Bt[e]}});var ss=_e((e0,us)=>{var Cl=Ye(),El=Et(),rs=Ft(),ns=$r(),Fl=or(),Al=Mu(),Sl=St(),xl=Cl.TypeError,bl=Sl("toPrimitive");us.exports=function(e,n){if(!rs(e)||ns(e))return e;var t=Fl(e,bl),s;if(t){if(n===void 0&&(n="default"),s=El(t,e,n),!rs(s)||ns(s))return s;throw xl("Can't convert object to primitive value")}return n===void 0&&(n="number"),Al(e,n)}});var fr=_e((t0,is)=>{var Tl=ss(),Bl=$r();is.exports=function(e){var n=Tl(e,"string");return Bl(n)?n:n+""}});var ls=_e((r0,os)=>{var Nl=Ye(),as=Ft(),Xr=Nl.document,wl=as(Xr)&&as(Xr.createElement);os.exports=function(e){return wl?Xr.createElement(e):{}}});var Kr=_e((n0,cs)=>{var _l=Ct(),Pl=Dt(),kl=ls();cs.exports=!_l&&!Pl(function(){return Object.defineProperty(kl("div"),"a",{get:function(){return 7}}).a!=7})});var Yr=_e(fs=>{var Il=Ct(),Ll=Et(),jl=au(),Ol=nr(),ql=sr(),Ml=fr(),Rl=gt(),Vl=Kr(),ps=Object.getOwnPropertyDescriptor;fs.f=Il?ps:function(n,t){if(n=ql(n),t=Ml(t),Vl)try{return ps(n,t)}catch{}if(Rl(n,t))return Ol(!Ll(jl.f,n,t),n[t])}});var ms=_e((s0,Ds)=>{var Wl=Ct(),$l=Dt();Ds.exports=Wl&&$l(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Nt=_e((i0,gs)=>{var ds=Ye(),Hl=Ft(),Gl=ds.String,Jl=ds.TypeError;gs.exports=function(e){if(Hl(e))return e;throw Jl(Gl(e)+" is not an object")}});var mr=_e(hs=>{var Ul=Ye(),zl=Ct(),Xl=Kr(),Kl=ms(),Dr=Nt(),ys=fr(),Yl=Ul.TypeError,Qr=Object.defineProperty,Ql=Object.getOwnPropertyDescriptor,Zr="enumerable",en="configurable",tn="writable";hs.f=zl?Kl?function(n,t,s){if(Dr(n),t=ys(t),Dr(s),typeof n=="function"&&t==="prototype"&&"value"in s&&tn in s&&!s[tn]){var a=Ql(n,t);a&&a[tn]&&(n[t]=s.value,s={configurable:en in s?s[en]:a[en],enumerable:Zr in s?s[Zr]:a[Zr],writable:!1})}return Qr(n,t,s)}:Qr:function(n,t,s){if(Dr(n),t=ys(t),Dr(s),Xl)try{return Qr(n,t,s)}catch{}if("get"in s||"set"in s)throw Yl("Accessors not supported");return"value"in s&&(n[t]=s.value),n}});var dr=_e((o0,vs)=>{var Zl=Ct(),ec=mr(),tc=nr();vs.exports=Zl?function(e,n,t){return ec.f(e,n,tc(1,t))}:function(e,n,t){return e[n]=t,e}});var gr=_e((l0,Cs)=>{var rc=at(),nc=ot(),rn=cr(),uc=rc(Function.toString);nc(rn.inspectSource)||(rn.inspectSource=function(e){return uc(e)});Cs.exports=rn.inspectSource});var As=_e((c0,Fs)=>{var sc=Ye(),ic=ot(),ac=gr(),Es=sc.WeakMap;Fs.exports=ic(Es)&&/native code/.test(ac(Es))});var bs=_e((p0,xs)=>{var oc=Ur(),lc=zr(),Ss=oc("keys");xs.exports=function(e){return Ss[e]||(Ss[e]=lc(e))}});var nn=_e((f0,Ts)=>{Ts.exports={}});var ks=_e((D0,Ps)=>{var cc=As(),_s=Ye(),un=at(),pc=Ft(),fc=dr(),sn=gt(),an=cr(),Dc=bs(),mc=nn(),Bs="Object already initialized",ln=_s.TypeError,dc=_s.WeakMap,yr,Rt,hr,gc=function(e){return hr(e)?Rt(e):yr(e,{})},yc=function(e){return function(n){var t;if(!pc(n)||(t=Rt(n)).type!==e)throw ln("Incompatible receiver, "+e+" required");return t}};cc||an.state?(yt=an.state||(an.state=new dc),Ns=un(yt.get),on=un(yt.has),ws=un(yt.set),yr=function(e,n){if(on(yt,e))throw new ln(Bs);return n.facade=e,ws(yt,e,n),n},Rt=function(e){return Ns(yt,e)||{}},hr=function(e){return on(yt,e)}):(xt=Dc("state"),mc[xt]=!0,yr=function(e,n){if(sn(e,xt))throw new ln(Bs);return n.facade=e,fc(e,xt,n),n},Rt=function(e){return sn(e,xt)?e[xt]:{}},hr=function(e){return sn(e,xt)});var yt,Ns,on,ws,xt;Ps.exports={set:yr,get:Rt,has:hr,enforce:gc,getterFor:yc}});var js=_e((m0,Ls)=>{var cn=Ct(),hc=gt(),Is=Function.prototype,vc=cn&&Object.getOwnPropertyDescriptor,pn=hc(Is,"name"),Cc=pn&&function(){}.name==="something",Ec=pn&&(!cn||cn&&vc(Is,"name").configurable);Ls.exports={EXISTS:pn,PROPER:Cc,CONFIGURABLE:Ec}});var Vs=_e((d0,Rs)=>{var Fc=Ye(),Os=ot(),Ac=gt(),qs=dr(),Sc=lr(),xc=gr(),Ms=ks(),bc=js().CONFIGURABLE,Tc=Ms.get,Bc=Ms.enforce,Nc=String(String).split("String");(Rs.exports=function(e,n,t,s){var a=s?!!s.unsafe:!1,r=s?!!s.enumerable:!1,u=s?!!s.noTargetGet:!1,i=s&&s.name!==void 0?s.name:n,o;if(Os(t)&&(String(i).slice(0,7)==="Symbol("&&(i="["+String(i).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Ac(t,"name")||bc&&t.name!==i)&&qs(t,"name",i),o=Bc(t),o.source||(o.source=Nc.join(typeof i=="string"?i:""))),e===Fc){r?e[n]=t:Sc(n,t);return}else a?!u&&e[n]&&(r=!0):delete e[n];r?e[n]=t:qs(e,n,t)})(Function.prototype,"toString",function(){return Os(this)&&Tc(this).source||xc(this)})});var vr=_e((g0,Ws)=>{var wc=Math.ceil,_c=Math.floor;Ws.exports=function(e){var n=+e;return n!==n||n===0?0:(n>0?_c:wc)(n)}});var Hs=_e((y0,$s)=>{var Pc=vr(),kc=Math.max,Ic=Math.min;$s.exports=function(e,n){var t=Pc(e);return t<0?kc(t+n,0):Ic(t,n)}});var Js=_e((h0,Gs)=>{var Lc=vr(),jc=Math.min;Gs.exports=function(e){return e>0?jc(Lc(e),9007199254740991):0}});var wt=_e((v0,Us)=>{var Oc=Js();Us.exports=function(e){return Oc(e.length)}});var Ks=_e((C0,Xs)=>{var qc=sr(),Mc=Hs(),Rc=wt(),zs=function(e){return function(n,t,s){var a=qc(n),r=Rc(a),u=Mc(s,r),i;if(e&&t!=t){for(;r>u;)if(i=a[u++],i!=i)return!0}else for(;r>u;u++)if((e||u in a)&&a[u]===t)return e||u||0;return!e&&-1}};Xs.exports={includes:zs(!0),indexOf:zs(!1)}});var Zs=_e((E0,Qs)=>{var Vc=at(),fn=gt(),Wc=sr(),$c=Ks().indexOf,Hc=nn(),Ys=Vc([].push);Qs.exports=function(e,n){var t=Wc(e),s=0,a=[],r;for(r in t)!fn(Hc,r)&&fn(t,r)&&Ys(a,r);for(;n.length>s;)fn(t,r=n[s++])&&(~$c(a,r)||Ys(a,r));return a}});var ti=_e((F0,ei)=>{ei.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ni=_e(ri=>{var Gc=Zs(),Jc=ti(),Uc=Jc.concat("length","prototype");ri.f=Object.getOwnPropertyNames||function(n){return Gc(n,Uc)}});var si=_e(ui=>{ui.f=Object.getOwnPropertySymbols});var ai=_e((x0,ii)=>{var zc=qt(),Xc=at(),Kc=ni(),Yc=si(),Qc=Nt(),Zc=Xc([].concat);ii.exports=zc("Reflect","ownKeys")||function(n){var t=Kc.f(Qc(n)),s=Yc.f;return s?Zc(t,s(n)):t}});var ci=_e((b0,li)=>{var oi=gt(),ep=ai(),tp=Yr(),rp=mr();li.exports=function(e,n,t){for(var s=ep(n),a=rp.f,r=tp.f,u=0;u{var np=Dt(),up=ot(),sp=/#|\.prototype\./,Vt=function(e,n){var t=ap[ip(e)];return t==lp?!0:t==op?!1:up(n)?np(n):!!n},ip=Vt.normalize=function(e){return String(e).replace(sp,".").toLowerCase()},ap=Vt.data={},op=Vt.NATIVE="N",lp=Vt.POLYFILL="P";pi.exports=Vt});var Wt=_e((B0,Di)=>{var Dn=Ye(),cp=Yr().f,pp=dr(),fp=Vs(),Dp=lr(),mp=ci(),dp=fi();Di.exports=function(e,n){var t=e.target,s=e.global,a=e.stat,r,u,i,o,c,y;if(s?u=Dn:a?u=Dn[t]||Dp(t,{}):u=(Dn[t]||{}).prototype,u)for(i in n){if(c=n[i],e.noTargetGet?(y=cp(u,i),o=y&&y.value):o=u[i],r=dp(s?i:t+(a?".":"#")+i,e.forced),!r&&o!==void 0){if(typeof c==typeof o)continue;mp(c,o)}(e.sham||o&&o.sham)&&pp(c,"sham",!0),fp(u,i,c,e)}}});var mn=_e((N0,mi)=>{var gp=ur();mi.exports=Array.isArray||function(n){return gp(n)=="Array"}});var dn=_e((w0,gi)=>{var di=at(),yp=Mt(),hp=tr(),vp=di(di.bind);gi.exports=function(e,n){return yp(e),n===void 0?e:hp?vp(e,n):function(){return e.apply(n,arguments)}}});var gn=_e((_0,hi)=>{"use strict";var Cp=Ye(),Ep=mn(),Fp=wt(),Ap=dn(),Sp=Cp.TypeError,yi=function(e,n,t,s,a,r,u,i){for(var o=a,c=0,y=u?Ap(u,i):!1,m,d;c0&&Ep(m))d=Fp(m),o=yi(e,n,m,d,o,r-1)-1;else{if(o>=9007199254740991)throw Sp("Exceed the acceptable array length");e[o]=m}o++}c++}return o};hi.exports=yi});var Ei=_e((P0,Ci)=>{var xp=St(),bp=xp("toStringTag"),vi={};vi[bp]="z";Ci.exports=String(vi)==="[object z]"});var yn=_e((k0,Fi)=>{var Tp=Ye(),Bp=Ei(),Np=ot(),Cr=ur(),wp=St(),_p=wp("toStringTag"),Pp=Tp.Object,kp=Cr(function(){return arguments}())=="Arguments",Ip=function(e,n){try{return e[n]}catch{}};Fi.exports=Bp?Cr:function(e){var n,t,s;return e===void 0?"Undefined":e===null?"Null":typeof(t=Ip(n=Pp(e),_p))=="string"?t:kp?Cr(n):(s=Cr(n))=="Object"&&Np(n.callee)?"Arguments":s}});var Bi=_e((I0,Ti)=>{var Lp=at(),jp=Dt(),Ai=ot(),Op=yn(),qp=qt(),Mp=gr(),Si=function(){},Rp=[],xi=qp("Reflect","construct"),hn=/^\s*(?:class|function)\b/,Vp=Lp(hn.exec),Wp=!hn.exec(Si),$t=function(n){if(!Ai(n))return!1;try{return xi(Si,Rp,n),!0}catch{return!1}},bi=function(n){if(!Ai(n))return!1;switch(Op(n)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Wp||!!Vp(hn,Mp(n))}catch{return!0}};bi.sham=!0;Ti.exports=!xi||jp(function(){var e;return $t($t.call)||!$t(Object)||!$t(function(){e=!0})||e})?bi:$t});var Pi=_e((L0,_i)=>{var $p=Ye(),Ni=mn(),Hp=Bi(),Gp=Ft(),Jp=St(),Up=Jp("species"),wi=$p.Array;_i.exports=function(e){var n;return Ni(e)&&(n=e.constructor,Hp(n)&&(n===wi||Ni(n.prototype))?n=void 0:Gp(n)&&(n=n[Up],n===null&&(n=void 0))),n===void 0?wi:n}});var vn=_e((j0,ki)=>{var zp=Pi();ki.exports=function(e,n){return new(zp(e))(n===0?0:n)}});var Cn=_e((O0,Ii)=>{Ii.exports={}});var ji=_e((q0,Li)=>{var tf=St(),rf=Cn(),nf=tf("iterator"),uf=Array.prototype;Li.exports=function(e){return e!==void 0&&(rf.Array===e||uf[nf]===e)}});var En=_e((M0,qi)=>{var sf=yn(),Oi=or(),af=Cn(),of=St(),lf=of("iterator");qi.exports=function(e){if(e!=null)return Oi(e,lf)||Oi(e,"@@iterator")||af[sf(e)]}});var Ri=_e((R0,Mi)=>{var cf=Ye(),pf=Et(),ff=Mt(),Df=Nt(),mf=ar(),df=En(),gf=cf.TypeError;Mi.exports=function(e,n){var t=arguments.length<2?df(e):n;if(ff(t))return Df(pf(t,e));throw gf(mf(e)+" is not iterable")}});var $i=_e((V0,Wi)=>{var yf=Et(),Vi=Nt(),hf=or();Wi.exports=function(e,n,t){var s,a;Vi(e);try{if(s=hf(e,"return"),!s){if(n==="throw")throw t;return t}s=yf(s,e)}catch(r){a=!0,s=r}if(n==="throw")throw t;if(a)throw s;return Vi(s),t}});var zi=_e((W0,Ui)=>{var vf=Ye(),Cf=dn(),Ef=Et(),Ff=Nt(),Af=ar(),Sf=ji(),xf=wt(),Hi=Mr(),bf=Ri(),Tf=En(),Gi=$i(),Bf=vf.TypeError,Er=function(e,n){this.stopped=e,this.result=n},Ji=Er.prototype;Ui.exports=function(e,n,t){var s=t&&t.that,a=!!(t&&t.AS_ENTRIES),r=!!(t&&t.IS_ITERATOR),u=!!(t&&t.INTERRUPTED),i=Cf(n,s),o,c,y,m,d,p,f,h=function(T){return o&&Gi(o,"normal",T),new Er(!0,T)},w=function(T){return a?(Ff(T),u?i(T[0],T[1],h):i(T[0],T[1])):u?i(T,h):i(T)};if(r)o=e;else{if(c=Tf(e),!c)throw Bf(Af(e)+" is not iterable");if(Sf(c)){for(y=0,m=xf(e);m>y;y++)if(d=w(e[y]),d&&Hi(Ji,d))return d;return new Er(!1)}o=bf(e,c)}for(p=o.next;!(f=Ef(p,o)).done;){try{d=w(f.value)}catch(T){Gi(o,"throw",T)}if(typeof d=="object"&&d&&Hi(Ji,d))return d}return new Er(!1)}});var Ki=_e(($0,Xi)=>{"use strict";var Nf=fr(),wf=mr(),_f=nr();Xi.exports=function(e,n,t){var s=Nf(n);s in e?wf.f(e,s,_f(0,t)):e[s]=t}});var Yi=_e(()=>{var Lf=Wt(),jf=Ye();Lf({global:!0},{globalThis:jf})});var Xp=Wt(),Kp=gn(),Yp=Mt(),Qp=pr(),Zp=wt(),ef=vn();Xp({target:"Array",proto:!0},{flatMap:function(n){var t=Qp(this),s=Zp(t),a;return Yp(n),a=ef(t,0),a.length=Kp(a,t,t,s,0,1,n,arguments.length>1?arguments[1]:void 0),a}});var Pf=Wt(),kf=zi(),If=Ki();Pf({target:"Object",stat:!0},{fromEntries:function(n){var t={};return kf(n,function(s,a){If(t,s,a)},{AS_ENTRIES:!0}),t}});Yi();var Of=Wt(),qf=gn(),Mf=pr(),Rf=wt(),Vf=vr(),Wf=vn();Of({target:"Array",proto:!0},{flat:function(){var n=arguments.length?arguments[0]:void 0,t=Mf(this),s=Rf(t),a=Wf(t,0);return a.length=qf(a,t,t,s,0,n===void 0?1:Vf(n)),a}});var $f=["cliName","cliCategory","cliDescription"],Hf=["_"],Gf=["languageId"],Qi,Zi,ea,ta,ra,na;function wn(e,n){if(e==null)return{};var t=Jf(e,n),s,a;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}function Jf(e,n){if(e==null)return{};var t={},s=Object.keys(e),a,r;for(r=0;r=0)&&(t[a]=e[a]);return t}function _t(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var Uf=Object.create,br=Object.defineProperty,zf=Object.getOwnPropertyDescriptor,_n=Object.getOwnPropertyNames,Xf=Object.getPrototypeOf,Kf=Object.prototype.hasOwnProperty,mt=(e,n)=>function(){return e&&(n=(0,e[_n(e)[0]])(e=0)),n},Z=(e,n)=>function(){return n||(0,e[_n(e)[0]])((n={exports:{}}).exports,n),n.exports},Gt=(e,n)=>{for(var t in n)br(e,t,{get:n[t],enumerable:!0})},la=(e,n,t,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of _n(n))!Kf.call(e,a)&&a!==t&&br(e,a,{get:()=>n[a],enumerable:!(s=zf(n,a))||s.enumerable});return e},Yf=(e,n,t)=>(t=e!=null?Uf(Xf(e)):{},la(n||!e||!e.__esModule?br(t,"default",{value:e,enumerable:!0}):t,e)),lt=e=>la(br({},"__esModule",{value:!0}),e),ua,sa,bt,re=mt({""(){ua={},sa=[],bt={env:ua,argv:sa}}}),ca=Z({"package.json"(e,n){n.exports={version:"2.7.1"}}}),Qf=Z({"node_modules/diff/lib/diff/base.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.default=n;function n(){}n.prototype={diff:function(r,u){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i.callback;typeof i=="function"&&(o=i,i={}),this.options=i;var c=this;function y(S){return o?(setTimeout(function(){o(void 0,S)},0),!0):S}r=this.castInput(r),u=this.castInput(u),r=this.removeEmpty(this.tokenize(r)),u=this.removeEmpty(this.tokenize(u));var m=u.length,d=r.length,p=1,f=m+d,h=[{newPos:-1,components:[]}],w=this.extractCommon(h[0],u,r,0);if(h[0].newPos+1>=m&&w+1>=d)return y([{value:this.join(u),count:u.length}]);function T(){for(var S=-1*p;S<=p;S+=2){var B=void 0,I=h[S-1],k=h[S+1],P=(k?k.newPos:0)-S;I&&(h[S-1]=void 0);var C=I&&I.newPos+1=m&&P+1>=d)return y(t(c,B.components,u,r,c.useLongestToken));h[S]=B}p++}if(o)(function S(){setTimeout(function(){if(p>f)return o();T()||S()},0)})();else for(;p<=f;){var A=T();if(A)return A}},pushComponent:function(r,u,i){var o=r[r.length-1];o&&o.added===u&&o.removed===i?r[r.length-1]={count:o.count+1,added:u,removed:i}:r.push({count:1,added:u,removed:i})},extractCommon:function(r,u,i,o){for(var c=u.length,y=i.length,m=r.newPos,d=m-o,p=0;m+1T.length?S:T}),p.value=a.join(f)}else p.value=a.join(u.slice(m,m+p.count));m+=p.count,p.added||(d+=p.count)}}var w=r[y-1];return y>1&&typeof w.value=="string"&&(w.added||w.removed)&&a.equals("",w.value)&&(r[y-2].value+=w.value,r.pop()),r}function s(a){return{newPos:a.newPos,components:a.components.slice(0)}}}}),Zf=Z({"node_modules/diff/lib/diff/array.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.diffArrays=a,e.arrayDiff=void 0;var n=t(Qf());function t(r){return r&&r.__esModule?r:{default:r}}var s=new n.default;e.arrayDiff=s,s.tokenize=function(r){return r.slice()},s.join=s.removeEmpty=function(r){return r};function a(r,u,i){return s.diff(r,u,i)}}}),Pn=Z({"src/document/doc-builders.js"(e,n){"use strict";re();function t(F){return{type:"concat",parts:F}}function s(F){return{type:"indent",contents:F}}function a(F,l){return{type:"align",contents:l,n:F}}function r(F){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return{type:"group",id:l.id,contents:F,break:Boolean(l.shouldBreak),expandedStates:l.expandedStates}}function u(F){return a(Number.NEGATIVE_INFINITY,F)}function i(F){return a({type:"root"},F)}function o(F){return a(-1,F)}function c(F,l){return r(F[0],Object.assign(Object.assign({},l),{},{expandedStates:F}))}function y(F){return{type:"fill",parts:F}}function m(F,l){let E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return{type:"if-break",breakContents:F,flatContents:l,groupId:E.groupId}}function d(F,l){return{type:"indent-if-break",contents:F,groupId:l.groupId,negate:l.negate}}function p(F){return{type:"line-suffix",contents:F}}var f={type:"line-suffix-boundary"},h={type:"break-parent"},w={type:"trim"},T={type:"line",hard:!0},A={type:"line",hard:!0,literal:!0},S={type:"line"},B={type:"line",soft:!0},I=t([T,h]),k=t([A,h]),P={type:"cursor",placeholder:Symbol("cursor")};function C(F,l){let E=[];for(let v=0;v0){for(let N=0;N=0?u.charAt(i+1)===` +`?"crlf":"cr":"lf"}function s(u){switch(u){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function a(u,i){let o;switch(i){case` +`:o=/\n/g;break;case"\r":o=/\r/g;break;case`\r +`:o=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(i),"."))}let c=u.match(o);return c?c.length:0}function r(u){return u.replace(/\r\n?/g,` +`)}n.exports={guessEndOfLine:t,convertEndOfLineToChars:s,countEndOfLineChars:a,normalizeEndOfLine:r}}}),it=Z({"src/utils/get-last.js"(e,n){"use strict";re();var t=s=>s[s.length-1];n.exports=t}});function eD(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(n,e?void 0:"g")}var tD=mt({"node_modules/strip-ansi/node_modules/ansi-regex/index.js"(){re()}});function rD(e){if(typeof e!="string")throw new TypeError("Expected a `string`, got `".concat(typeof e,"`"));return e.replace(eD(),"")}var nD=mt({"node_modules/strip-ansi/index.js"(){re(),tD()}});function uD(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var sD=mt({"node_modules/is-fullwidth-code-point/index.js"(){re()}}),iD=Z({"node_modules/emoji-regex/index.js"(e,n){"use strict";re(),n.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}}),pa={};Gt(pa,{default:()=>aD});function aD(e){if(typeof e!="string"||e.length===0||(e=rD(e),e.length===0))return 0;e=e.replace((0,fa.default)()," ");let n=0;for(let t=0;t=127&&s<=159||s>=768&&s<=879||(s>65535&&t++,n+=uD(s)?2:1)}return n}var fa,oD=mt({"node_modules/string-width/index.js"(){re(),nD(),sD(),fa=Yf(iD())}}),Da=Z({"src/utils/get-string-width.js"(e,n){"use strict";re();var t=(oD(),lt(pa)).default,s=/[^\x20-\x7F]/;function a(r){return r?s.test(r)?t(r):r.length:0}n.exports=a}}),In=Z({"src/document/doc-utils.js"(e,n){"use strict";re();var t=it(),{literalline:s,join:a}=Pn(),r=l=>Array.isArray(l)||l&&l.type==="concat",u=l=>{if(Array.isArray(l))return l;if(l.type!=="concat"&&l.type!=="fill")throw new Error("Expect doc type to be `concat` or `fill`.");return l.parts},i={};function o(l,E,v,N){let x=[l];for(;x.length>0;){let b=x.pop();if(b===i){v(x.pop());continue}if(v&&x.push(b,i),!E||E(b)!==!1)if(r(b)||b.type==="fill"){let L=u(b);for(let M=L.length,j=M-1;j>=0;--j)x.push(L[j])}else if(b.type==="if-break")b.flatContents&&x.push(b.flatContents),b.breakContents&&x.push(b.breakContents);else if(b.type==="group"&&b.expandedStates)if(N)for(let L=b.expandedStates.length,M=L-1;M>=0;--M)x.push(b.expandedStates[M]);else x.push(b.contents);else b.contents&&x.push(b.contents)}}function c(l,E){let v=new Map;return N(l);function N(b){if(v.has(b))return v.get(b);let L=x(b);return v.set(b,L),L}function x(b){if(Array.isArray(b))return E(b.map(N));if(b.type==="concat"||b.type==="fill"){let L=b.parts.map(N);return E(Object.assign(Object.assign({},b),{},{parts:L}))}if(b.type==="if-break"){let L=b.breakContents&&N(b.breakContents),M=b.flatContents&&N(b.flatContents);return E(Object.assign(Object.assign({},b),{},{breakContents:L,flatContents:M}))}if(b.type==="group"&&b.expandedStates){let L=b.expandedStates.map(N),M=L[0];return E(Object.assign(Object.assign({},b),{},{contents:M,expandedStates:L}))}if(b.contents){let L=N(b.contents);return E(Object.assign(Object.assign({},b),{},{contents:L}))}return E(b)}}function y(l,E,v){let N=v,x=!1;function b(L){let M=E(L);if(M!==void 0&&(x=!0,N=M),x)return!1}return o(l,b),N}function m(l){if(l.type==="group"&&l.break||l.type==="line"&&l.hard||l.type==="break-parent")return!0}function d(l){return y(l,m,!1)}function p(l){if(l.length>0){let E=t(l);!E.expandedStates&&!E.break&&(E.break="propagated")}return null}function f(l){let E=new Set,v=[];function N(b){if(b.type==="break-parent"&&p(v),b.type==="group"){if(v.push(b),E.has(b))return!1;E.add(b)}}function x(b){b.type==="group"&&v.pop().break&&p(v)}o(l,N,x,!0)}function h(l){return l.type==="line"&&!l.hard?l.soft?"":" ":l.type==="if-break"?l.flatContents||"":l}function w(l){return c(l,h)}var T=(l,E)=>l&&l.type==="line"&&l.hard&&E&&E.type==="break-parent";function A(l){if(!l)return l;if(r(l)||l.type==="fill"){let E=u(l);for(;E.length>1&&T(...E.slice(-2));)E.length-=2;if(E.length>0){let v=A(t(E));E[E.length-1]=v}return Array.isArray(l)?E:Object.assign(Object.assign({},l),{},{parts:E})}switch(l.type){case"align":case"indent":case"indent-if-break":case"group":case"line-suffix":case"label":{let E=A(l.contents);return Object.assign(Object.assign({},l),{},{contents:E})}case"if-break":{let E=A(l.breakContents),v=A(l.flatContents);return Object.assign(Object.assign({},l),{},{breakContents:E,flatContents:v})}}return l}function S(l){return A(I(l))}function B(l){switch(l.type){case"fill":if(l.parts.every(v=>v===""))return"";break;case"group":if(!l.contents&&!l.id&&!l.break&&!l.expandedStates)return"";if(l.contents.type==="group"&&l.contents.id===l.id&&l.contents.break===l.break&&l.contents.expandedStates===l.expandedStates)return l.contents;break;case"align":case"indent":case"indent-if-break":case"line-suffix":if(!l.contents)return"";break;case"if-break":if(!l.flatContents&&!l.breakContents)return"";break}if(!r(l))return l;let E=[];for(let v of u(l)){if(!v)continue;let[N,...x]=r(v)?u(v):[v];typeof N=="string"&&typeof t(E)=="string"?E[E.length-1]+=N:E.push(N),E.push(...x)}return E.length===0?"":E.length===1?E[0]:Array.isArray(l)?E:Object.assign(Object.assign({},l),{},{parts:E})}function I(l){return c(l,E=>B(E))}function k(l){let E=[],v=l.filter(Boolean);for(;v.length>0;){let N=v.shift();if(!!N){if(r(N)){v.unshift(...u(N));continue}if(E.length>0&&typeof t(E)=="string"&&typeof N=="string"){E[E.length-1]+=N;continue}E.push(N)}}return E}function P(l){return c(l,E=>Array.isArray(E)?k(E):E.parts?Object.assign(Object.assign({},E),{},{parts:k(E.parts)}):E)}function C(l){return c(l,E=>typeof E=="string"&&E.includes(` +`)?D(E):E)}function D(l){let E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s;return a(E,l.split(` +`)).parts}function g(l){if(l.type==="line")return!0}function F(l){return y(l,g,!1)}n.exports={isConcat:r,getDocParts:u,willBreak:d,traverseDoc:o,findInDoc:y,mapDoc:c,propagateBreaks:f,removeLines:w,stripTrailingHardline:S,normalizeParts:k,normalizeDoc:P,cleanDoc:I,replaceTextEndOfLine:D,replaceEndOfLine:C,canBreak:F}}}),lD=Z({"src/document/doc-printer.js"(e,n){"use strict";re();var{convertEndOfLineToChars:t}=kn(),s=it(),a=Da(),{fill:r,cursor:u,indent:i}=Pn(),{isConcat:o,getDocParts:c}=In(),y,m=1,d=2;function p(){return{value:"",length:0,queue:[]}}function f(B,I){return w(B,{type:"indent"},I)}function h(B,I,k){return I===Number.NEGATIVE_INFINITY?B.root||p():I<0?w(B,{type:"dedent"},k):I?I.type==="root"?Object.assign(Object.assign({},B),{},{root:B}):w(B,{type:typeof I=="string"?"stringAlign":"numberAlign",n:I},k):B}function w(B,I,k){let P=I.type==="dedent"?B.queue.slice(0,-1):[...B.queue,I],C="",D=0,g=0,F=0;for(let L of P)switch(L.type){case"indent":v(),k.useTabs?l(1):E(k.tabWidth);break;case"stringAlign":v(),C+=L.n,D+=L.n.length;break;case"numberAlign":g+=1,F+=L.n;break;default:throw new Error("Unexpected type '".concat(L.type,"'"))}return x(),Object.assign(Object.assign({},B),{},{value:C,length:D,queue:P});function l(L){C+=" ".repeat(L),D+=k.tabWidth*L}function E(L){C+=" ".repeat(L),D+=L}function v(){k.useTabs?N():x()}function N(){g>0&&l(g),b()}function x(){F>0&&E(F),b()}function b(){g=0,F=0}}function T(B){if(B.length===0)return 0;let I=0;for(;B.length>0&&typeof s(B)=="string"&&/^[\t ]*$/.test(s(B));)I+=B.pop().length;if(B.length>0&&typeof s(B)=="string"){let k=s(B).replace(/[\t ]*$/,"");I+=s(B).length-k.length,B[B.length-1]=k}return I}function A(B,I,k,P,C,D){let g=I.length,F=[B],l=[];for(;k>=0;){if(F.length===0){if(g===0)return!0;F.push(I[g-1]),g--;continue}let[E,v,N]=F.pop();if(typeof N=="string")l.push(N),k-=a(N);else if(o(N)){let x=c(N);for(let b=x.length-1;b>=0;b--)F.push([E,v,x[b]])}else switch(N.type){case"indent":F.push([f(E,P),v,N.contents]);break;case"align":F.push([h(E,N.n,P),v,N.contents]);break;case"trim":k+=T(l);break;case"group":{if(D&&N.break)return!1;let x=N.break?m:v;F.push([E,x,N.expandedStates&&x===m?s(N.expandedStates):N.contents]),N.id&&(y[N.id]=x);break}case"fill":for(let x=N.parts.length-1;x>=0;x--)F.push([E,v,N.parts[x]]);break;case"if-break":case"indent-if-break":{let x=N.groupId?y[N.groupId]:v;if(x===m){let b=N.type==="if-break"?N.breakContents:N.negate?N.contents:i(N.contents);b&&F.push([E,v,b])}if(x===d){let b=N.type==="if-break"?N.flatContents:N.negate?i(N.contents):N.contents;b&&F.push([E,v,b])}break}case"line":switch(v){case d:if(!N.hard){N.soft||(l.push(" "),k-=1);break}return!0;case m:return!0}break;case"line-suffix":C=!0;break;case"line-suffix-boundary":if(C)return!1;break;case"label":F.push([E,v,N.contents]);break}}return!1}function S(B,I){y={};let k=I.printWidth,P=t(I.endOfLine),C=0,D=[[p(),m,B]],g=[],F=!1,l=[];for(;D.length>0;){let[v,N,x]=D.pop();if(typeof x=="string"){let b=P!==` +`?x.replace(/\n/g,P):x;g.push(b),C+=a(b)}else if(o(x)){let b=c(x);for(let L=b.length-1;L>=0;L--)D.push([v,N,b[L]])}else switch(x.type){case"cursor":g.push(u.placeholder);break;case"indent":D.push([f(v,I),N,x.contents]);break;case"align":D.push([h(v,x.n,I),N,x.contents]);break;case"trim":C-=T(g);break;case"group":switch(N){case d:if(!F){D.push([v,x.break?m:d,x.contents]);break}case m:{F=!1;let b=[v,d,x.contents],L=k-C,M=l.length>0;if(!x.break&&A(b,D,L,I,M))D.push(b);else if(x.expandedStates){let j=s(x.expandedStates);if(x.break){D.push([v,m,j]);break}else for(let $=1;$=x.expandedStates.length){D.push([v,m,j]);break}else{let V=x.expandedStates[$],q=[v,d,V];if(A(q,D,L,I,M)){D.push(q);break}}}else D.push([v,m,x.contents]);break}}x.id&&(y[x.id]=s(D)[1]);break;case"fill":{let b=k-C,{parts:L}=x;if(L.length===0)break;let[M,j]=L,$=[v,d,M],V=[v,m,M],q=A($,[],b,I,l.length>0,!0);if(L.length===1){q?D.push($):D.push(V);break}let Y=[v,d,j],H=[v,m,j];if(L.length===2){q?D.push(Y,$):D.push(H,V);break}L.splice(0,2);let R=[v,N,r(L)],Q=L[0];A([v,d,[M,j,Q]],[],b,I,l.length>0,!0)?D.push(R,Y,$):q?D.push(R,H,$):D.push(R,H,V);break}case"if-break":case"indent-if-break":{let b=x.groupId?y[x.groupId]:N;if(b===m){let L=x.type==="if-break"?x.breakContents:x.negate?x.contents:i(x.contents);L&&D.push([v,N,L])}if(b===d){let L=x.type==="if-break"?x.flatContents:x.negate?i(x.contents):x.contents;L&&D.push([v,N,L])}break}case"line-suffix":l.push([v,N,x.contents]);break;case"line-suffix-boundary":l.length>0&&D.push([v,N,{type:"line",hard:!0}]);break;case"line":switch(N){case d:if(x.hard)F=!0;else{x.soft||(g.push(" "),C+=1);break}case m:if(l.length>0){D.push([v,N,x],...l.reverse()),l=[];break}x.literal?v.root?(g.push(P,v.root.value),C=v.root.length):(g.push(P),C=0):(C-=T(g),g.push(P+v.value),C=v.length);break}break;case"label":D.push([v,N,x.contents]);break;default:}D.length===0&&l.length>0&&(D.push(...l.reverse()),l=[])}let E=g.indexOf(u.placeholder);if(E!==-1){let v=g.indexOf(u.placeholder,E+1),N=g.slice(0,E).join(""),x=g.slice(E+1,v).join(""),b=g.slice(v+1).join("");return{formatted:N+x+b,cursorNodeStart:N.length,cursorNodeText:x}}return{formatted:g.join("")}}n.exports={printDocToString:S}}}),cD=Z({"src/document/doc-debug.js"(e,n){"use strict";re();var{isConcat:t,getDocParts:s}=In();function a(u){if(!u)return"";if(t(u)){let i=[];for(let o of s(u))if(t(o))i.push(...a(o).parts);else{let c=a(o);c!==""&&i.push(c)}return{type:"concat",parts:i}}return u.type==="if-break"?Object.assign(Object.assign({},u),{},{breakContents:a(u.breakContents),flatContents:a(u.flatContents)}):u.type==="group"?Object.assign(Object.assign({},u),{},{contents:a(u.contents),expandedStates:u.expandedStates&&u.expandedStates.map(a)}):u.type==="fill"?{type:"fill",parts:u.parts.map(a)}:u.contents?Object.assign(Object.assign({},u),{},{contents:a(u.contents)}):u}function r(u){let i=Object.create(null),o=new Set;return c(a(u));function c(m,d,p){if(typeof m=="string")return JSON.stringify(m);if(t(m)){let f=s(m).map(c).filter(Boolean);return f.length===1?f[0]:"[".concat(f.join(", "),"]")}if(m.type==="line"){let f=Array.isArray(p)&&p[d+1]&&p[d+1].type==="break-parent";return m.literal?f?"literalline":"literallineWithoutBreakParent":m.hard?f?"hardline":"hardlineWithoutBreakParent":m.soft?"softline":"line"}if(m.type==="break-parent")return Array.isArray(p)&&p[d-1]&&p[d-1].type==="line"&&p[d-1].hard?void 0:"breakParent";if(m.type==="trim")return"trim";if(m.type==="indent")return"indent("+c(m.contents)+")";if(m.type==="align")return m.n===Number.NEGATIVE_INFINITY?"dedentToRoot("+c(m.contents)+")":m.n<0?"dedent("+c(m.contents)+")":m.n.type==="root"?"markAsRoot("+c(m.contents)+")":"align("+JSON.stringify(m.n)+", "+c(m.contents)+")";if(m.type==="if-break")return"ifBreak("+c(m.breakContents)+(m.flatContents?", "+c(m.flatContents):"")+(m.groupId?(m.flatContents?"":', ""')+", { groupId: ".concat(y(m.groupId)," }"):"")+")";if(m.type==="indent-if-break"){let f=[];m.negate&&f.push("negate: true"),m.groupId&&f.push("groupId: ".concat(y(m.groupId)));let h=f.length>0?", { ".concat(f.join(", ")," }"):"";return"indentIfBreak(".concat(c(m.contents)).concat(h,")")}if(m.type==="group"){let f=[];m.break&&m.break!=="propagated"&&f.push("shouldBreak: true"),m.id&&f.push("id: ".concat(y(m.id)));let h=f.length>0?", { ".concat(f.join(", ")," }"):"";return m.expandedStates?"conditionalGroup([".concat(m.expandedStates.map(w=>c(w)).join(","),"]").concat(h,")"):"group(".concat(c(m.contents)).concat(h,")")}if(m.type==="fill")return"fill([".concat(m.parts.map(f=>c(f)).join(", "),"])");if(m.type==="line-suffix")return"lineSuffix("+c(m.contents)+")";if(m.type==="line-suffix-boundary")return"lineSuffixBoundary";if(m.type==="label")return"label(".concat(JSON.stringify(m.label),", ").concat(c(m.contents),")");throw new Error("Unknown doc type "+m.type)}function y(m){if(typeof m!="symbol")return JSON.stringify(String(m));if(m in i)return i[m];let d=String(m).slice(7,-1)||"symbol";for(let p=0;;p++){let f=d+(p>0?" #".concat(p):"");if(!o.has(f))return o.add(f),i[m]="Symbol.for(".concat(JSON.stringify(f),")")}}}n.exports={printDocToDebug:r}}}),Oe=Z({"src/document/index.js"(e,n){"use strict";re(),n.exports={builders:Pn(),printer:lD(),utils:In(),debug:cD()}}}),ma={};Gt(ma,{default:()=>pD});function pD(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var fD=mt({"node_modules/escape-string-regexp/index.js"(){re()}}),da=Z({"node_modules/semver/internal/debug.js"(e,n){re();var t=typeof bt=="object"&&bt.env&&bt.env.NODE_DEBUG&&/\bsemver\b/i.test(bt.env.NODE_DEBUG)?function(){for(var s=arguments.length,a=new Array(s),r=0;r{};n.exports=t}}),ga=Z({"node_modules/semver/internal/constants.js"(e,n){re();var t="2.0.0",s=256,a=Number.MAX_SAFE_INTEGER||9007199254740991,r=16;n.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:s,MAX_SAFE_INTEGER:a,MAX_SAFE_COMPONENT_LENGTH:r}}}),DD=Z({"node_modules/semver/internal/re.js"(e,n){re();var{MAX_SAFE_COMPONENT_LENGTH:t}=ga(),s=da();e=n.exports={};var a=e.re=[],r=e.src=[],u=e.t={},i=0,o=(c,y,m)=>{let d=i++;s(c,d,y),u[c]=d,r[d]=y,a[d]=new RegExp(y,m?"g":void 0)};o("NUMERICIDENTIFIER","0|[1-9]\\d*"),o("NUMERICIDENTIFIERLOOSE","[0-9]+"),o("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),o("MAINVERSION","(".concat(r[u.NUMERICIDENTIFIER],")\\.(").concat(r[u.NUMERICIDENTIFIER],")\\.(").concat(r[u.NUMERICIDENTIFIER],")")),o("MAINVERSIONLOOSE","(".concat(r[u.NUMERICIDENTIFIERLOOSE],")\\.(").concat(r[u.NUMERICIDENTIFIERLOOSE],")\\.(").concat(r[u.NUMERICIDENTIFIERLOOSE],")")),o("PRERELEASEIDENTIFIER","(?:".concat(r[u.NUMERICIDENTIFIER],"|").concat(r[u.NONNUMERICIDENTIFIER],")")),o("PRERELEASEIDENTIFIERLOOSE","(?:".concat(r[u.NUMERICIDENTIFIERLOOSE],"|").concat(r[u.NONNUMERICIDENTIFIER],")")),o("PRERELEASE","(?:-(".concat(r[u.PRERELEASEIDENTIFIER],"(?:\\.").concat(r[u.PRERELEASEIDENTIFIER],")*))")),o("PRERELEASELOOSE","(?:-?(".concat(r[u.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(r[u.PRERELEASEIDENTIFIERLOOSE],")*))")),o("BUILDIDENTIFIER","[0-9A-Za-z-]+"),o("BUILD","(?:\\+(".concat(r[u.BUILDIDENTIFIER],"(?:\\.").concat(r[u.BUILDIDENTIFIER],")*))")),o("FULLPLAIN","v?".concat(r[u.MAINVERSION]).concat(r[u.PRERELEASE],"?").concat(r[u.BUILD],"?")),o("FULL","^".concat(r[u.FULLPLAIN],"$")),o("LOOSEPLAIN","[v=\\s]*".concat(r[u.MAINVERSIONLOOSE]).concat(r[u.PRERELEASELOOSE],"?").concat(r[u.BUILD],"?")),o("LOOSE","^".concat(r[u.LOOSEPLAIN],"$")),o("GTLT","((?:<|>)?=?)"),o("XRANGEIDENTIFIERLOOSE","".concat(r[u.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),o("XRANGEIDENTIFIER","".concat(r[u.NUMERICIDENTIFIER],"|x|X|\\*")),o("XRANGEPLAIN","[v=\\s]*(".concat(r[u.XRANGEIDENTIFIER],")(?:\\.(").concat(r[u.XRANGEIDENTIFIER],")(?:\\.(").concat(r[u.XRANGEIDENTIFIER],")(?:").concat(r[u.PRERELEASE],")?").concat(r[u.BUILD],"?)?)?")),o("XRANGEPLAINLOOSE","[v=\\s]*(".concat(r[u.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(r[u.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(r[u.XRANGEIDENTIFIERLOOSE],")(?:").concat(r[u.PRERELEASELOOSE],")?").concat(r[u.BUILD],"?)?)?")),o("XRANGE","^".concat(r[u.GTLT],"\\s*").concat(r[u.XRANGEPLAIN],"$")),o("XRANGELOOSE","^".concat(r[u.GTLT],"\\s*").concat(r[u.XRANGEPLAINLOOSE],"$")),o("COERCE","(^|[^\\d])(\\d{1,".concat(t,"})(?:\\.(\\d{1,").concat(t,"}))?(?:\\.(\\d{1,").concat(t,"}))?(?:$|[^\\d])")),o("COERCERTL",r[u.COERCE],!0),o("LONETILDE","(?:~>?)"),o("TILDETRIM","(\\s*)".concat(r[u.LONETILDE],"\\s+"),!0),e.tildeTrimReplace="$1~",o("TILDE","^".concat(r[u.LONETILDE]).concat(r[u.XRANGEPLAIN],"$")),o("TILDELOOSE","^".concat(r[u.LONETILDE]).concat(r[u.XRANGEPLAINLOOSE],"$")),o("LONECARET","(?:\\^)"),o("CARETTRIM","(\\s*)".concat(r[u.LONECARET],"\\s+"),!0),e.caretTrimReplace="$1^",o("CARET","^".concat(r[u.LONECARET]).concat(r[u.XRANGEPLAIN],"$")),o("CARETLOOSE","^".concat(r[u.LONECARET]).concat(r[u.XRANGEPLAINLOOSE],"$")),o("COMPARATORLOOSE","^".concat(r[u.GTLT],"\\s*(").concat(r[u.LOOSEPLAIN],")$|^$")),o("COMPARATOR","^".concat(r[u.GTLT],"\\s*(").concat(r[u.FULLPLAIN],")$|^$")),o("COMPARATORTRIM","(\\s*)".concat(r[u.GTLT],"\\s*(").concat(r[u.LOOSEPLAIN],"|").concat(r[u.XRANGEPLAIN],")"),!0),e.comparatorTrimReplace="$1$2$3",o("HYPHENRANGE","^\\s*(".concat(r[u.XRANGEPLAIN],")\\s+-\\s+(").concat(r[u.XRANGEPLAIN],")\\s*$")),o("HYPHENRANGELOOSE","^\\s*(".concat(r[u.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(r[u.XRANGEPLAINLOOSE],")\\s*$")),o("STAR","(<|>)?=?\\s*\\*"),o("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),o("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),mD=Z({"node_modules/semver/internal/parse-options.js"(e,n){re();var t=["includePrerelease","loose","rtl"],s=a=>a?typeof a!="object"?{loose:!0}:t.filter(r=>a[r]).reduce((r,u)=>(r[u]=!0,r),{}):{};n.exports=s}}),dD=Z({"node_modules/semver/internal/identifiers.js"(e,n){re();var t=/^[0-9]+$/,s=(r,u)=>{let i=t.test(r),o=t.test(u);return i&&o&&(r=+r,u=+u),r===u?0:i&&!o?-1:o&&!i?1:rs(u,r);n.exports={compareIdentifiers:s,rcompareIdentifiers:a}}}),gD=Z({"node_modules/semver/classes/semver.js"(e,n){re();var t=da(),{MAX_LENGTH:s,MAX_SAFE_INTEGER:a}=ga(),{re:r,t:u}=DD(),i=mD(),{compareIdentifiers:o}=dD(),c=class{constructor(y,m){if(m=i(m),y instanceof c){if(y.loose===!!m.loose&&y.includePrerelease===!!m.includePrerelease)return y;y=y.version}else if(typeof y!="string")throw new TypeError("Invalid Version: ".concat(y));if(y.length>s)throw new TypeError("version is longer than ".concat(s," characters"));t("SemVer",y,m),this.options=m,this.loose=!!m.loose,this.includePrerelease=!!m.includePrerelease;let d=y.trim().match(m.loose?r[u.LOOSE]:r[u.FULL]);if(!d)throw new TypeError("Invalid Version: ".concat(y));if(this.raw=y,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>a||this.major<0)throw new TypeError("Invalid major version");if(this.minor>a||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>a||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map(p=>{if(/^[0-9]+$/.test(p)){let f=+p;if(f>=0&&f=0;)typeof this.prerelease[d]=="number"&&(this.prerelease[d]++,d=-2);d===-1&&this.prerelease.push(0)}m&&(o(this.prerelease[0],m)===0?isNaN(this.prerelease[1])&&(this.prerelease=[m,0]):this.prerelease=[m,0]);break;default:throw new Error("invalid increment argument: ".concat(y))}return this.format(),this.raw=this.version,this}};n.exports=c}}),Ln=Z({"node_modules/semver/functions/compare.js"(e,n){re();var t=gD(),s=(a,r,u)=>new t(a,u).compare(new t(r,u));n.exports=s}}),yD=Z({"node_modules/semver/functions/lt.js"(e,n){re();var t=Ln(),s=(a,r,u)=>t(a,r,u)<0;n.exports=s}}),hD=Z({"node_modules/semver/functions/gte.js"(e,n){re();var t=Ln(),s=(a,r,u)=>t(a,r,u)>=0;n.exports=s}}),vD=Z({"src/utils/arrayify.js"(e,n){"use strict";re(),n.exports=(t,s)=>Object.entries(t).map(a=>{let[r,u]=a;return Object.assign({[s]:r},u)})}}),CD=Z({"node_modules/outdent/lib/index.js"(e,n){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.outdent=void 0;function t(){for(var A=[],S=0;Stypeof m=="string"||typeof m=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"acorn",since:"2.6.0",description:"JavaScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:o,description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:m=>typeof m=="string"||typeof m=="object",cliName:"plugin",cliCategory:s},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:o,description:t(ea||(ea=_t([` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `]))),exception:m=>typeof m=="string"||typeof m=="object",cliName:"plugin-search-dir",cliCategory:s},printWidth:{since:"0.0.0",category:o,type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:c,type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(ta||(ta=_t([` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:a},rangeStart:{since:"1.4.0",category:c,type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(ra||(ra=_t([` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:a},requirePragma:{since:"1.7.0",category:c,type:"boolean",default:!1,description:t(na||(na=_t([` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `]))),cliCategory:u},tabWidth:{type:"int",category:o,default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:o,type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:o,type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};n.exports={CATEGORY_CONFIG:s,CATEGORY_EDITOR:a,CATEGORY_FORMAT:r,CATEGORY_OTHER:u,CATEGORY_OUTPUT:i,CATEGORY_GLOBAL:o,CATEGORY_SPECIAL:c,options:y}}}),jn=Z({"src/main/support.js"(e,n){"use strict";re();var t={compare:Ln(),lt:yD(),gte:hD()},s=vD(),a=ca().version,r=ED().options;function u(){let{plugins:o=[],showUnreleased:c=!1,showDeprecated:y=!1,showInternal:m=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=a.split("-",1)[0],p=o.flatMap(A=>A.languages||[]).filter(h),f=s(Object.assign({},...o.map(A=>{let{options:S}=A;return S}),r),"name").filter(A=>h(A)&&w(A)).sort((A,S)=>A.name===S.name?0:A.name{A=Object.assign({},A),Array.isArray(A.default)&&(A.default=A.default.length===1?A.default[0].value:A.default.filter(h).sort((B,I)=>t.compare(I.since,B.since))[0].value),Array.isArray(A.choices)&&(A.choices=A.choices.filter(B=>h(B)&&w(B)),A.name==="parser"&&i(A,p,o));let S=Object.fromEntries(o.filter(B=>B.defaultOptions&&B.defaultOptions[A.name]!==void 0).map(B=>[B.name,B.defaultOptions[A.name]]));return Object.assign(Object.assign({},A),{},{pluginDefaults:S})});return{languages:p,options:f};function h(A){return c||!("since"in A)||A.since&&t.gte(d,A.since)}function w(A){return y||!("deprecated"in A)||A.deprecated&&t.lt(d,A.deprecated)}function T(A){if(m)return A;let{cliName:S,cliCategory:B,cliDescription:I}=A;return wn(A,$f)}}function i(o,c,y){let m=new Set(o.choices.map(d=>d.value));for(let d of c)if(d.parsers){for(let p of d.parsers)if(!m.has(p)){m.add(p);let f=y.find(w=>w.parsers&&w.parsers[p]),h=d.name;f&&f.name&&(h+=" (plugin: ".concat(f.name,")")),o.choices.push({value:p,description:h})}}}n.exports={getSupportInfo:u}}}),On=Z({"src/utils/is-non-empty-array.js"(e,n){"use strict";re();function t(s){return Array.isArray(s)&&s.length>0}n.exports=t}}),Tr=Z({"src/utils/text/skip.js"(e,n){"use strict";re();function t(i){return(o,c,y)=>{let m=y&&y.backwards;if(c===!1)return!1;let{length:d}=o,p=c;for(;p>=0&&pH[H.length-2];function w(H){return(R,Q,ee)=>{let te=ee&&ee.backwards;if(Q===!1)return!1;let{length:oe}=R,W=Q;for(;W>=0&&W2&&arguments[2]!==void 0?arguments[2]:{},ee=o(H,Q.backwards?R-1:R,Q),te=p(H,ee,Q);return ee!==te}function A(H,R,Q){for(let ee=R;ee2&&arguments[2]!==void 0?arguments[2]:{};return o(H,Q.backwards?R-1:R,Q)!==R}function D(H,R){let Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,ee=0;for(let te=Q;teue?oe:te}return W}function l(H,R){let Q=H.slice(1,-1),ee=R.parser==="json"||R.parser==="json5"&&R.quoteProps==="preserve"&&!R.singleQuote?'"':R.__isInHtmlAttribute?"'":F(Q,R.singleQuote?"'":'"').quote;return E(Q,ee,!(R.parser==="css"||R.parser==="less"||R.parser==="scss"||R.__embeddedInHtml))}function E(H,R,Q){let ee=R==='"'?"'":'"',te=/\\(.)|(["'])/gs,oe=H.replace(te,(W,X,ue)=>X===ee?X:ue===R?"\\"+ue:ue||(Q&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(X)?X:"\\"+X));return R+oe+R}function v(H){return H.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e|$)/,"")}function N(H,R){let Q=H.match(new RegExp("(".concat(t(R),")+"),"g"));return Q===null?0:Q.reduce((ee,te)=>Math.max(ee,te.length/R.length),0)}function x(H,R){let Q=H.match(new RegExp("(".concat(t(R),")+"),"g"));if(Q===null)return 0;let ee=new Map,te=0;for(let oe of Q){let W=oe.length/R.length;ee.set(W,!0),W>te&&(te=W)}for(let oe=1;oe{let{name:oe}=te;return oe.toLowerCase()===H})||Q.find(te=>{let{aliases:oe}=te;return Array.isArray(oe)&&oe.includes(H)})||Q.find(te=>{let{extensions:oe}=te;return Array.isArray(oe)&&oe.includes(".".concat(H))});return ee&&ee.parsers[0]}function V(H){return H&&H.type==="front-matter"}function q(H){let R=new WeakMap;return function(Q){return R.has(Q)||R.set(Q,Symbol(H)),R.get(Q)}}function Y(H){let R=H.type||H.kind||"(unknown type)",Q=String(H.name||H.id&&(typeof H.id=="object"?H.id.name:H.id)||H.key&&(typeof H.key=="object"?H.key.name:H.key)||H.value&&(typeof H.value=="object"?"":String(H.value))||H.operator||"");return Q.length>20&&(Q=Q.slice(0,19)+"\u2026"),R+(Q?" "+Q:"")}n.exports={inferParserByLanguage:$,getStringWidth:u,getMaxContinuousCount:N,getMinNotPresentContinuousCount:x,getPenultimate:h,getLast:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:f,getNextNonSpaceNonCommentCharacterIndex:k,getNextNonSpaceNonCommentCharacter:P,skip:w,skipWhitespace:i,skipSpaces:o,skipToLineEnd:c,skipEverythingButNewLine:y,skipInlineComment:m,skipTrailingComment:d,skipNewline:p,isNextLineEmptyAfterIndex:B,isNextLineEmpty:I,isPreviousLineEmpty:S,hasNewline:T,hasNewlineInRange:A,hasSpaces:C,getAlignmentSize:D,getIndentSize:g,getPreferredQuote:F,printString:l,printNumber:v,makeString:E,addLeadingComment:L,addDanglingComment:M,addTrailingComment:j,isFrontMatterNode:V,isNonEmptyArray:r,createGroupIdMapper:q}}}),Ca={};Gt(Ca,{basename:()=>xa,default:()=>Ta,delimiter:()=>xn,dirname:()=>Sa,extname:()=>ba,isAbsolute:()=>Mn,join:()=>Fa,normalize:()=>qn,relative:()=>Aa,resolve:()=>xr,sep:()=>Sn});function Ea(e,n){for(var t=0,s=e.length-1;s>=0;s--){var a=e[s];a==="."?e.splice(s,1):a===".."?(e.splice(s,1),t++):t&&(e.splice(s,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}function xr(){for(var e="",n=!1,t=arguments.length-1;t>=-1&&!n;t--){var s=t>=0?arguments[t]:"/";if(typeof s!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!s)continue;e=s+"/"+e,n=s.charAt(0)==="/"}return e=Ea(Rn(e.split("/"),function(a){return!!a}),!n).join("/"),(n?"/":"")+e||"."}function qn(e){var n=Mn(e),t=Ba(e,-1)==="/";return e=Ea(Rn(e.split("/"),function(s){return!!s}),!n).join("/"),!e&&!n&&(e="."),e&&t&&(e+="/"),(n?"/":"")+e}function Mn(e){return e.charAt(0)==="/"}function Fa(){var e=Array.prototype.slice.call(arguments,0);return qn(Rn(e,function(n,t){if(typeof n!="string")throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))}function Aa(e,n){e=xr(e).substr(1),n=xr(n).substr(1);function t(c){for(var y=0;y=0&&c[m]==="";m--);return y>m?[]:c.slice(y,m-y+1)}for(var s=t(e.split("/")),a=t(n.split("/")),r=Math.min(s.length,a.length),u=r,i=0;iSr,__asyncDelegator:()=>OD,__asyncGenerator:()=>jD,__asyncValues:()=>qD,__await:()=>Ht,__awaiter:()=>wD,__classPrivateFieldGet:()=>WD,__classPrivateFieldSet:()=>$D,__createBinding:()=>PD,__decorate:()=>TD,__exportStar:()=>kD,__extends:()=>xD,__generator:()=>_D,__importDefault:()=>VD,__importStar:()=>RD,__makeTemplateObject:()=>MD,__metadata:()=>ND,__param:()=>BD,__read:()=>Na,__rest:()=>bD,__spread:()=>ID,__spreadArrays:()=>LD,__values:()=>bn});function xD(e,n){Ar(e,n);function t(){this.constructor=e}e.prototype=n===null?Object.create(n):(t.prototype=n.prototype,new t)}function bD(e,n){var t={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&n.indexOf(s)<0&&(t[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(e);a=0;i--)(u=e[i])&&(r=(a<3?u(r):a>3?u(n,t,r):u(n,t))||r);return a>3&&r&&Object.defineProperty(n,t,r),r}function BD(e,n){return function(t,s){n(t,s,e)}}function ND(e,n){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,n)}function wD(e,n,t,s){function a(r){return r instanceof t?r:new t(function(u){u(r)})}return new(t||(t=Promise))(function(r,u){function i(y){try{c(s.next(y))}catch(m){u(m)}}function o(y){try{c(s.throw(y))}catch(m){u(m)}}function c(y){y.done?r(y.value):a(y.value).then(i,o)}c((s=s.apply(e,n||[])).next())})}function _D(e,n){var t={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},s,a,r,u;return u={next:i(0),throw:i(1),return:i(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function i(c){return function(y){return o([c,y])}}function o(c){if(s)throw new TypeError("Generator is already executing.");for(;t;)try{if(s=1,a&&(r=c[0]&2?a.return:c[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,c[1])).done)return r;switch(a=0,r&&(c=[c[0]&2,r.value]),c[0]){case 0:case 1:r=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,a=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(r=t.trys,!(r=r.length>0&&r[r.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!r||c[1]>r[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[s++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function Na(e,n){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var s=t.call(e),a,r=[],u;try{for(;(n===void 0||n-- >0)&&!(a=s.next()).done;)r.push(a.value)}catch(i){u={error:i}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(u)throw u.error}}return r}function ID(){for(var e=[],n=0;n1||i(d,p)})})}function i(d,p){try{o(s[d](p))}catch(f){m(r[0][3],f)}}function o(d){d.value instanceof Ht?Promise.resolve(d.value.v).then(c,y):m(r[0][2],d)}function c(d){i("next",d)}function y(d){i("throw",d)}function m(d,p){d(p),r.shift(),r.length&&i(r[0][0],r[0][1])}}function OD(e){var n,t;return n={},s("next"),s("throw",function(a){throw a}),s("return"),n[Symbol.iterator]=function(){return this},n;function s(a,r){n[a]=e[a]?function(u){return(t=!t)?{value:Ht(e[a](u)),done:a==="return"}:r?r(u):u}:r}}function qD(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=e[Symbol.asyncIterator],t;return n?n.call(e):(e=typeof bn=="function"?bn(e):e[Symbol.iterator](),t={},s("next"),s("throw"),s("return"),t[Symbol.asyncIterator]=function(){return this},t);function s(r){t[r]=e[r]&&function(u){return new Promise(function(i,o){u=e[r](u),a(i,o,u.done,u.value)})}}function a(r,u,i,o){Promise.resolve(o).then(function(c){r({value:c,done:i})},u)}}function MD(e,n){return Object.defineProperty?Object.defineProperty(e,"raw",{value:n}):e.raw=n,e}function RD(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function VD(e){return e&&e.__esModule?e:{default:e}}function WD(e,n){if(!n.has(e))throw new TypeError("attempted to get private field on non-instance");return n.get(e)}function $D(e,n,t){if(!n.has(e))throw new TypeError("attempted to set private field on non-instance");return n.set(e,t),t}var Ar,Sr,ht=mt({"node_modules/tslib/tslib.es6.js"(){re(),Ar=function(e,n){return Ar=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,s){t.__proto__=s}||function(t,s){for(var a in s)s.hasOwnProperty(a)&&(t[a]=s[a])},Ar(e,n)},Sr=function(){return Sr=Object.assign||function(n){for(var t,s=1,a=arguments.length;s/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(n)?n:JSON.stringify(n),value(n){if(n===null||typeof n!="object")return JSON.stringify(n);if(Array.isArray(n))return"[".concat(n.map(s=>e.apiDescriptor.value(s)).join(", "),"]");let t=Object.keys(n);return t.length===0?"{}":"{ ".concat(t.map(s=>"".concat(e.apiDescriptor.key(s),": ").concat(e.apiDescriptor.value(n[s]))).join(", ")," }")},pair:n=>{let{key:t,value:s}=n;return e.apiDescriptor.value({[t]:s})}}}}),HD=Z({"node_modules/vnopts/lib/descriptors/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(wa(),e)}}),Nr=Z({"scripts/build/shims/chalk.cjs"(e,n){"use strict";re();var t=s=>s;t.grey=t,t.red=t,t.bold=t,t.yellow=t,t.blue=t,t.default=t,n.exports=t}}),_a=Z({"node_modules/vnopts/lib/handlers/deprecated/common.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Nr();e.commonDeprecatedHandler=(t,s,a)=>{let{descriptor:r}=a,u=["".concat(n.default.yellow(typeof t=="string"?r.key(t):r.pair(t))," is deprecated")];return s&&u.push("we now treat it as ".concat(n.default.blue(typeof s=="string"?r.key(s):r.pair(s)))),u.join("; ")+"."}}}),GD=Z({"node_modules/vnopts/lib/handlers/deprecated/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(_a(),e)}}),JD=Z({"node_modules/vnopts/lib/handlers/invalid/common.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Nr();e.commonInvalidHandler=(t,s,a)=>["Invalid ".concat(n.default.red(a.descriptor.key(t))," value."),"Expected ".concat(n.default.blue(a.schemas[t].expected(a)),","),"but received ".concat(n.default.red(a.descriptor.value(s)),".")].join(" ")}}),Pa=Z({"node_modules/vnopts/lib/handlers/invalid/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(JD(),e)}}),UD=Z({"node_modules/vnopts/node_modules/leven/index.js"(e,n){"use strict";re();var t=[],s=[];n.exports=function(a,r){if(a===r)return 0;var u=a;a.length>r.length&&(a=r,r=u);var i=a.length,o=r.length;if(i===0)return o;if(o===0)return i;for(;i>0&&a.charCodeAt(~-i)===r.charCodeAt(~-o);)i--,o--;if(i===0)return o;for(var c=0;cm?p>m?m+1:p:p>d?d+1:p;return m}}}),ka=Z({"node_modules/vnopts/lib/handlers/unknown/leven.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Nr(),t=UD();e.levenUnknownHandler=(s,a,r)=>{let{descriptor:u,logger:i,schemas:o}=r,c=["Ignored unknown option ".concat(n.default.yellow(u.pair({key:s,value:a})),".")],y=Object.keys(o).sort().find(m=>t(s,m)<3);y&&c.push("Did you mean ".concat(n.default.blue(u.key(y)),"?")),i.warn(c.join(" "))}}}),zD=Z({"node_modules/vnopts/lib/handlers/unknown/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(ka(),e)}}),XD=Z({"node_modules/vnopts/lib/handlers/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(GD(),e),n.__exportStar(Pa(),e),n.__exportStar(zD(),e)}}),vt=Z({"node_modules/vnopts/lib/schema.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=["default","expected","validate","deprecated","forward","redirect","overlap","preprocess","postprocess"];function t(r,u){let i=new r(u),o=Object.create(i);for(let c of n)c in u&&(o[c]=a(u[c],i,s.prototype[c].length));return o}e.createSchema=t;var s=class{constructor(r){this.name=r.name}static create(r){return t(this,r)}default(r){}expected(r){return"nothing"}validate(r,u){return!1}deprecated(r,u){return!1}forward(r,u){}redirect(r,u){}overlap(r,u,i){return r}preprocess(r,u){return r}postprocess(r,u){return r}};e.Schema=s;function a(r,u,i){return typeof r=="function"?function(){for(var o=arguments.length,c=new Array(o),y=0;yr}}}),KD=Z({"node_modules/vnopts/lib/schemas/alias.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{constructor(s){super(s),this._sourceName=s.sourceName}expected(s){return s.schemas[this._sourceName].expected(s)}validate(s,a){return a.schemas[this._sourceName].validate(s,a)}redirect(s,a){return this._sourceName}};e.AliasSchema=t}}),YD=Z({"node_modules/vnopts/lib/schemas/any.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"anything"}validate(){return!0}};e.AnySchema=t}}),QD=Z({"node_modules/vnopts/lib/schemas/array.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt)),t=vt(),s=class extends t.Schema{constructor(r){var{valueSchema:u,name:i=u.name}=r,o=n.__rest(r,["valueSchema","name"]);super(Object.assign({},o,{name:i})),this._valueSchema=u}expected(r){return"an array of ".concat(this._valueSchema.expected(r))}validate(r,u){if(!Array.isArray(r))return!1;let i=[];for(let o of r){let c=u.normalizeValidateResult(this._valueSchema.validate(o,u),o);c!==!0&&i.push(c.value)}return i.length===0?!0:{value:i}}deprecated(r,u){let i=[];for(let o of r){let c=u.normalizeDeprecatedResult(this._valueSchema.deprecated(o,u),o);c!==!1&&i.push(...c.map(y=>{let{value:m}=y;return{value:[m]}}))}return i}forward(r,u){let i=[];for(let o of r){let c=u.normalizeForwardResult(this._valueSchema.forward(o,u),o);i.push(...c.map(a))}return i}redirect(r,u){let i=[],o=[];for(let c of r){let y=u.normalizeRedirectResult(this._valueSchema.redirect(c,u),c);"remain"in y&&i.push(y.remain),o.push(...y.redirect.map(a))}return i.length===0?{redirect:o}:{redirect:o,remain:i}}overlap(r,u){return r.concat(u)}};e.ArraySchema=s;function a(r){let{from:u,to:i}=r;return{from:[u],to:i}}}}),ZD=Z({"node_modules/vnopts/lib/schemas/boolean.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"true or false"}validate(s){return typeof s=="boolean"}};e.BooleanSchema=t}}),Vn=Z({"node_modules/vnopts/lib/utils.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});function n(p,f){let h=Object.create(null);for(let w of p){let T=w[f];if(h[T])throw new Error("Duplicate ".concat(f," ").concat(JSON.stringify(T)));h[T]=w}return h}e.recordFromArray=n;function t(p,f){let h=new Map;for(let w of p){let T=w[f];if(h.has(T))throw new Error("Duplicate ".concat(f," ").concat(JSON.stringify(T)));h.set(T,w)}return h}e.mapFromArray=t;function s(){let p=Object.create(null);return f=>{let h=JSON.stringify(f);return p[h]?!0:(p[h]=!0,!1)}}e.createAutoChecklist=s;function a(p,f){let h=[],w=[];for(let T of p)f(T)?h.push(T):w.push(T);return[h,w]}e.partition=a;function r(p){return p===Math.floor(p)}e.isInt=r;function u(p,f){if(p===f)return 0;let h=typeof p,w=typeof f,T=["undefined","object","boolean","number","string"];return h!==w?T.indexOf(h)-T.indexOf(w):h!=="string"?Number(p)-Number(f):p.localeCompare(f)}e.comparePrimitive=u;function i(p){return p===void 0?{}:p}e.normalizeDefaultResult=i;function o(p,f){return p===!0?!0:p===!1?{value:f}:p}e.normalizeValidateResult=o;function c(p,f){let h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return p===!1?!1:p===!0?h?!0:[{value:f}]:"value"in p?[p]:p.length===0?!1:p}e.normalizeDeprecatedResult=c;function y(p,f){return typeof p=="string"||"key"in p?{from:f,to:p}:"from"in p?{from:p.from,to:p.to}:{from:f,to:p.to}}e.normalizeTransferResult=y;function m(p,f){return p===void 0?[]:Array.isArray(p)?p.map(h=>y(h,f)):[y(p,f)]}e.normalizeForwardResult=m;function d(p,f){let h=m(typeof p=="object"&&"redirect"in p?p.redirect:p,f);return h.length===0?{remain:f,redirect:h}:typeof p=="object"&&"remain"in p?{remain:p.remain,redirect:h}:{redirect:h}}e.normalizeRedirectResult=d}}),em=Z({"node_modules/vnopts/lib/schemas/choice.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=Vn(),s=class extends n.Schema{constructor(a){super(a),this._choices=t.mapFromArray(a.choices.map(r=>r&&typeof r=="object"?r:{value:r}),"value")}expected(a){let{descriptor:r}=a,u=Array.from(this._choices.keys()).map(c=>this._choices.get(c)).filter(c=>!c.deprecated).map(c=>c.value).sort(t.comparePrimitive).map(r.value),i=u.slice(0,-2),o=u.slice(-2);return i.concat(o.join(" or ")).join(", ")}validate(a){return this._choices.has(a)}deprecated(a){let r=this._choices.get(a);return r&&r.deprecated?{value:a}:!1}forward(a){let r=this._choices.get(a);return r?r.forward:void 0}redirect(a){let r=this._choices.get(a);return r?r.redirect:void 0}};e.ChoiceSchema=s}}),Ia=Z({"node_modules/vnopts/lib/schemas/number.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"a number"}validate(s,a){return typeof s=="number"}};e.NumberSchema=t}}),tm=Z({"node_modules/vnopts/lib/schemas/integer.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Vn(),t=Ia(),s=class extends t.NumberSchema{expected(){return"an integer"}validate(a,r){return r.normalizeValidateResult(super.validate(a,r),a)===!0&&n.isInt(a)}};e.IntegerSchema=s}}),rm=Z({"node_modules/vnopts/lib/schemas/string.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"a string"}validate(s){return typeof s=="string"}};e.StringSchema=t}}),nm=Z({"node_modules/vnopts/lib/schemas/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(KD(),e),n.__exportStar(YD(),e),n.__exportStar(QD(),e),n.__exportStar(ZD(),e),n.__exportStar(em(),e),n.__exportStar(tm(),e),n.__exportStar(Ia(),e),n.__exportStar(rm(),e)}}),um=Z({"node_modules/vnopts/lib/defaults.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=wa(),t=_a(),s=Pa(),a=ka();e.defaultDescriptor=n.apiDescriptor,e.defaultUnknownHandler=a.levenUnknownHandler,e.defaultInvalidHandler=s.commonInvalidHandler,e.defaultDeprecatedHandler=t.commonDeprecatedHandler}}),sm=Z({"node_modules/vnopts/lib/normalize.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=um(),t=Vn();e.normalize=(a,r,u)=>new s(r,u).normalize(a);var s=class{constructor(a,r){let{logger:u=console,descriptor:i=n.defaultDescriptor,unknown:o=n.defaultUnknownHandler,invalid:c=n.defaultInvalidHandler,deprecated:y=n.defaultDeprecatedHandler}=r||{};this._utils={descriptor:i,logger:u||{warn:()=>{}},schemas:t.recordFromArray(a,"name"),normalizeDefaultResult:t.normalizeDefaultResult,normalizeDeprecatedResult:t.normalizeDeprecatedResult,normalizeForwardResult:t.normalizeForwardResult,normalizeRedirectResult:t.normalizeRedirectResult,normalizeValidateResult:t.normalizeValidateResult},this._unknownHandler=o,this._invalidHandler=c,this._deprecatedHandler=y,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=t.createAutoChecklist()}normalize(a){let r={},u=[a],i=()=>{for(;u.length!==0;){let o=u.shift(),c=this._applyNormalization(o,r);u.push(...c)}};i();for(let o of Object.keys(this._utils.schemas)){let c=this._utils.schemas[o];if(!(o in r)){let y=t.normalizeDefaultResult(c.default(this._utils));"value"in y&&u.push({[o]:y.value})}}i();for(let o of Object.keys(this._utils.schemas)){let c=this._utils.schemas[o];o in r&&(r[o]=c.postprocess(r[o],this._utils))}return r}_applyNormalization(a,r){let u=[],[i,o]=t.partition(Object.keys(a),c=>c in this._utils.schemas);for(let c of i){let y=this._utils.schemas[c],m=y.preprocess(a[c],this._utils),d=t.normalizeValidateResult(y.validate(m,this._utils),m);if(d!==!0){let{value:T}=d,A=this._invalidHandler(c,T,this._utils);throw typeof A=="string"?new Error(A):A}let p=T=>{let{from:A,to:S}=T;u.push(typeof S=="string"?{[S]:A}:{[S.key]:S.value})},f=T=>{let{value:A,redirectTo:S}=T,B=t.normalizeDeprecatedResult(y.deprecated(A,this._utils),m,!0);if(B!==!1)if(B===!0)this._hasDeprecationWarned(c)||this._utils.logger.warn(this._deprecatedHandler(c,S,this._utils));else for(let{value:I}of B){let k={key:c,value:I};if(!this._hasDeprecationWarned(k)){let P=typeof S=="string"?{key:S,value:I}:S;this._utils.logger.warn(this._deprecatedHandler(k,P,this._utils))}}};t.normalizeForwardResult(y.forward(m,this._utils),m).forEach(p);let w=t.normalizeRedirectResult(y.redirect(m,this._utils),m);if(w.redirect.forEach(p),"remain"in w){let T=w.remain;r[c]=c in r?y.overlap(r[c],T,this._utils):T,f({value:T})}for(let{from:T,to:A}of w.redirect)f({value:T,redirectTo:A})}for(let c of o){let y=a[c],m=this._unknownHandler(c,y,this._utils);if(m)for(let d of Object.keys(m)){let p={[d]:m[d]};d in this._utils.schemas?u.push(p):Object.assign(r,p)}}return u}};e.Normalizer=s}}),im=Z({"node_modules/vnopts/lib/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(HD(),e),n.__exportStar(XD(),e),n.__exportStar(nm(),e),n.__exportStar(sm(),e),n.__exportStar(vt(),e)}}),am=Z({"src/main/options-normalizer.js"(e,n){"use strict";re();var t=im(),s=it(),a={key:d=>d.length===1?"-".concat(d):"--".concat(d),value:d=>t.apiDescriptor.value(d),pair:d=>{let{key:p,value:f}=d;return f===!1?"--no-".concat(p):f===!0?a.key(p):f===""?"".concat(a.key(p)," without an argument"):"".concat(a.key(p),"=").concat(f)}},r=d=>{let{colorsModule:p,levenshteinDistance:f}=d;return class extends t.ChoiceSchema{constructor(w){let{name:T,flags:A}=w;super({name:T,choices:A}),this._flags=[...A].sort()}preprocess(w,T){if(typeof w=="string"&&w.length>0&&!this._flags.includes(w)){let A=this._flags.find(S=>f(S,w)<3);if(A)return T.logger.warn(["Unknown flag ".concat(p.yellow(T.descriptor.value(w)),","),"did you mean ".concat(p.blue(T.descriptor.value(A)),"?")].join(" ")),A}return w}expected(){return"a flag"}}},u;function i(d,p){let{logger:f=!1,isCLI:h=!1,passThrough:w=!1,colorsModule:T=null,levenshteinDistance:A=null}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},S=w?Array.isArray(w)?(D,g)=>w.includes(D)?{[D]:g}:void 0:(D,g)=>({[D]:g}):(D,g,F)=>{let l=F.schemas,{_:E}=l,v=wn(l,Hf);return t.levenUnknownHandler(D,g,Object.assign(Object.assign({},F),{},{schemas:v}))},B=h?a:t.apiDescriptor,I=o(p,{isCLI:h,colorsModule:T,levenshteinDistance:A}),k=new t.Normalizer(I,{logger:f,unknown:S,descriptor:B}),P=f!==!1;P&&u&&(k._hasDeprecationWarned=u);let C=k.normalize(d);return P&&(u=k._hasDeprecationWarned),h&&C["plugin-search"]===!1&&(C["plugin-search-dir"]=!1),C}function o(d,p){let{isCLI:f,colorsModule:h,levenshteinDistance:w}=p,T=[];f&&T.push(t.AnySchema.create({name:"_"}));for(let A of d)T.push(c(A,{isCLI:f,optionInfos:d,colorsModule:h,levenshteinDistance:w})),A.alias&&f&&T.push(t.AliasSchema.create({name:A.alias,sourceName:A.name}));return T}function c(d,p){let{isCLI:f,optionInfos:h,colorsModule:w,levenshteinDistance:T}=p,{name:A}=d;if(A==="plugin-search-dir"||A==="pluginSearchDirs")return t.AnySchema.create({name:A,preprocess(k){return k===!1||(k=Array.isArray(k)?k:[k]),k},validate(k){return k===!1?!0:k.every(P=>typeof P=="string")},expected(){return"false or paths to plugin search dir"}});let S={name:A},B,I={};switch(d.type){case"int":B=t.IntegerSchema,f&&(S.preprocess=Number);break;case"string":B=t.StringSchema;break;case"choice":B=t.ChoiceSchema,S.choices=d.choices.map(k=>typeof k=="object"&&k.redirect?Object.assign(Object.assign({},k),{},{redirect:{to:{key:d.name,value:k.redirect}}}):k);break;case"boolean":B=t.BooleanSchema;break;case"flag":B=r({colorsModule:w,levenshteinDistance:T}),S.flags=h.flatMap(k=>[k.alias,k.description&&k.name,k.oppositeDescription&&"no-".concat(k.name)].filter(Boolean));break;case"path":B=t.StringSchema;break;default:throw new Error("Unexpected type ".concat(d.type))}if(d.exception?S.validate=(k,P,C)=>d.exception(k)||P.validate(k,C):S.validate=(k,P,C)=>k===void 0||P.validate(k,C),d.redirect&&(I.redirect=k=>k?{to:{key:d.redirect.option,value:d.redirect.value}}:void 0),d.deprecated&&(I.deprecated=!0),f&&!d.array){let k=S.preprocess||(P=>P);S.preprocess=(P,C,D)=>C.preprocess(k(Array.isArray(P)?s(P):P),D)}return d.array?t.ArraySchema.create(Object.assign(Object.assign(Object.assign({},f?{preprocess:k=>Array.isArray(k)?k:[k]}:{}),I),{},{valueSchema:B.create(S)})):B.create(Object.assign(Object.assign({},S),I))}function y(d,p,f){return i(d,p,f)}function m(d,p,f){return i(d,p,Object.assign({isCLI:!0},f))}n.exports={normalizeApiOptions:y,normalizeCliOptions:m}}}),st=Z({"src/language-js/loc.js"(e,n){"use strict";re();var t=On();function s(o,c){let{ignoreDecorators:y}=c||{};if(!y){let m=o.declaration&&o.declaration.decorators||o.decorators;if(t(m))return s(m[0])}return o.range?o.range[0]:o.start}function a(o){return o.range?o.range[1]:o.end}function r(o,c){let y=s(o);return Number.isInteger(y)&&y===s(c)}function u(o,c){let y=a(o);return Number.isInteger(y)&&y===a(c)}function i(o,c){return r(o,c)&&u(o,c)}n.exports={locStart:s,locEnd:a,hasSameLocStart:r,hasSameLoc:i}}}),om=Z({"src/main/load-parser.js"(e,n){re(),n.exports=()=>{}}}),lm=Z({"scripts/build/shims/babel-highlight.cjs"(e,n){"use strict";re();var t=Nr(),s={shouldHighlight:()=>!1,getChalk:()=>t};n.exports=s}}),cm=Z({"node_modules/@babel/code-frame/lib/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.codeFrameColumns=u,e.default=i;var n=lm(),t=!1;function s(o){return{gutter:o.grey,marker:o.red.bold,message:o.red.bold}}var a=/\r\n|[\n\r\u2028\u2029]/;function r(o,c,y){let m=Object.assign({column:0,line:-1},o.start),d=Object.assign({},m,o.end),{linesAbove:p=2,linesBelow:f=3}=y||{},h=m.line,w=m.column,T=d.line,A=d.column,S=Math.max(h-(p+1),0),B=Math.min(c.length,T+f);h===-1&&(S=0),T===-1&&(B=c.length);let I=T-h,k={};if(I)for(let P=0;P<=I;P++){let C=P+h;if(!w)k[C]=!0;else if(P===0){let D=c[C-1].length;k[C]=[w,D-w+1]}else if(P===I)k[C]=[0,A];else{let D=c[C-P].length;k[C]=[0,D]}}else w===A?w?k[h]=[w,0]:k[h]=!0:k[h]=[w,A-w];return{start:S,end:B,markerLines:k}}function u(o,c){let y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},m=(y.highlightCode||y.forceColor)&&(0,n.shouldHighlight)(y),d=(0,n.getChalk)(y),p=s(d),f=(P,C)=>m?P(C):C,h=o.split(a),{start:w,end:T,markerLines:A}=r(c,h,y),S=c.start&&typeof c.start.column=="number",B=String(T).length,k=(m?(0,n.default)(o,y):o).split(a,T).slice(w,T).map((P,C)=>{let D=w+1+C,g=" ".concat(D).slice(-B),F=" ".concat(g," |"),l=A[D],E=!A[D+1];if(l){let v="";if(Array.isArray(l)){let N=P.slice(0,Math.max(l[0]-1,0)).replace(/[^\t]/g," "),x=l[1]||1;v=[` + `,f(p.gutter,F.replace(/\d/g," "))," ",N,f(p.marker,"^").repeat(x)].join(""),E&&y.message&&(v+=" "+f(p.message,y.message))}return[f(p.marker,">"),f(p.gutter,F),P.length>0?" ".concat(P):"",v].join("")}else return" ".concat(f(p.gutter,F)).concat(P.length>0?" ".concat(P):"")}).join(` +`);return y.message&&!S&&(k="".concat(" ".repeat(B+1)).concat(y.message,` +`).concat(k)),m?d.reset(k):k}function i(o,c,y){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};if(!t){t=!0;let p="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(bt.emitWarning)bt.emitWarning(p,"DeprecationWarning");else{let f=new Error(p);f.name="DeprecationWarning",console.warn(new Error(p))}}return y=Math.max(y,0),u(o,{start:{column:y,line:c}},m)}}}),Wn=Z({"src/main/parser.js"(e,n){"use strict";re();var{ConfigError:t}=Jt(),s=st(),a=om(),{locStart:r,locEnd:u}=s,i=Object.getOwnPropertyNames,o=Object.getOwnPropertyDescriptor;function c(d){let p={};for(let f of d.plugins)if(!!f.parsers)for(let h of i(f.parsers))Object.defineProperty(p,h,o(f.parsers,h));return p}function y(d){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c(d);if(typeof d.parser=="function")return{parse:d.parser,astFormat:"estree",locStart:r,locEnd:u};if(typeof d.parser=="string"){if(Object.prototype.hasOwnProperty.call(p,d.parser))return p[d.parser];throw new t(`Couldn't resolve parser "`.concat(d.parser,'". Parsers must be explicitly added to the standalone bundle.'))}}function m(d,p){let f=c(p),h=Object.defineProperties({},Object.fromEntries(Object.keys(f).map(T=>[T,{enumerable:!0,get(){return f[T].parse}}]))),w=y(p,f);try{return w.preprocess&&(d=w.preprocess(d,p)),{text:d,ast:w.parse(d,h,p)}}catch(T){let{loc:A}=T;if(A){let{codeFrameColumns:S}=cm();throw T.codeFrame=S(d,A,{highlightCode:!0}),T.message+=` +`+T.codeFrame,T}throw T.stack}}n.exports={parse:m,resolveParser:y}}}),La=Z({"src/main/options.js"(e,n){"use strict";re();var t=SD(),{UndefinedParserError:s}=Jt(),{getSupportInfo:a}=jn(),r=am(),{resolveParser:u}=Wn(),i={astFormat:"estree",printer:{},originalText:void 0,locStart:null,locEnd:null};function o(m){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=Object.assign({},m),f=a({plugins:m.plugins,showUnreleased:!0,showDeprecated:!0}).options,h=Object.assign(Object.assign({},i),Object.fromEntries(f.filter(B=>B.default!==void 0).map(B=>[B.name,B.default])));if(!p.parser){if(!p.filepath)(d.logger||console).warn("No parser and no filepath given, using 'babel' the parser now but this will throw an error in the future. Please specify a parser or a filepath so one can be inferred."),p.parser="babel";else if(p.parser=y(p.filepath,p.plugins),!p.parser)throw new s("No parser could be inferred for file: ".concat(p.filepath))}let w=u(r.normalizeApiOptions(p,[f.find(B=>B.name==="parser")],{passThrough:!0,logger:!1}));p.astFormat=w.astFormat,p.locEnd=w.locEnd,p.locStart=w.locStart;let T=c(p);p.printer=T.printers[p.astFormat];let A=Object.fromEntries(f.filter(B=>B.pluginDefaults&&B.pluginDefaults[T.name]!==void 0).map(B=>[B.name,B.pluginDefaults[T.name]])),S=Object.assign(Object.assign({},h),A);for(let[B,I]of Object.entries(S))(p[B]===null||p[B]===void 0)&&(p[B]=I);return p.parser==="json"&&(p.trailingComma="none"),r.normalizeApiOptions(p,f,Object.assign({passThrough:Object.keys(i)},d))}function c(m){let{astFormat:d}=m;if(!d)throw new Error("getPlugin() requires astFormat to be set");let p=m.plugins.find(f=>f.printers&&f.printers[d]);if(!p)throw new Error(`Couldn't find plugin for AST format "`.concat(d,'"'));return p}function y(m,d){let p=t.basename(m).toLowerCase(),h=a({plugins:d}).languages.filter(w=>w.since!==null).find(w=>w.extensions&&w.extensions.some(T=>p.endsWith(T))||w.filenames&&w.filenames.some(T=>T.toLowerCase()===p));return h&&h.parsers[0]}n.exports={normalize:o,hiddenDefaults:i,inferParser:y}}}),pm=Z({"src/main/massage-ast.js"(e,n){"use strict";re();function t(s,a,r){if(Array.isArray(s))return s.map(c=>t(c,a,r)).filter(Boolean);if(!s||typeof s!="object")return s;let u=a.printer.massageAstNode,i;u&&u.ignoredProperties?i=u.ignoredProperties:i=new Set;let o={};for(let[c,y]of Object.entries(s))!i.has(c)&&typeof y!="function"&&(o[c]=t(y,a,s));if(u){let c=u(s,o,r);if(c===null)return;if(c)return c}return o}n.exports=t}}),Ut=Z({"scripts/build/shims/assert.cjs"(e,n){"use strict";re();var t=()=>{};t.ok=t,t.strictEqual=t,n.exports=t}}),et=Z({"src/main/comments.js"(e,n){"use strict";re();var t=Ut(),{builders:{line:s,hardline:a,breakParent:r,indent:u,lineSuffix:i,join:o,cursor:c}}=Oe(),{hasNewline:y,skipNewline:m,skipSpaces:d,isPreviousLineEmpty:p,addLeadingComment:f,addDanglingComment:h,addTrailingComment:w}=Ue(),T=new WeakMap;function A(L,M,j){if(!L)return;let{printer:$,locStart:V,locEnd:q}=M;if(j){if($.canAttachComment&&$.canAttachComment(L)){let H;for(H=j.length-1;H>=0&&!(V(j[H])<=V(L)&&q(j[H])<=q(L));--H);j.splice(H+1,0,L);return}}else if(T.has(L))return T.get(L);let Y=$.getCommentChildNodes&&$.getCommentChildNodes(L,M)||typeof L=="object"&&Object.entries(L).filter(H=>{let[R]=H;return R!=="enclosingNode"&&R!=="precedingNode"&&R!=="followingNode"&&R!=="tokens"&&R!=="comments"&&R!=="parent"}).map(H=>{let[,R]=H;return R});if(!!Y){j||(j=[],T.set(L,j));for(let H of Y)A(H,M,j);return j}}function S(L,M,j,$){let{locStart:V,locEnd:q}=j,Y=V(M),H=q(M),R=A(L,j),Q,ee,te=0,oe=R.length;for(;te>1,X=R[W],ue=V(X),De=q(X);if(ue<=Y&&H<=De)return S(X,M,j,X);if(De<=Y){Q=X,te=W+1;continue}if(H<=ue){ee=X,oe=W;continue}throw new Error("Comment location overlaps with node location")}if($&&$.type==="TemplateLiteral"){let{quasis:W}=$,X=F(W,M,j);Q&&F(W,Q,j)!==X&&(Q=null),ee&&F(W,ee,j)!==X&&(ee=null)}return{enclosingNode:$,precedingNode:Q,followingNode:ee}}var B=()=>!1;function I(L,M,j,$){if(!Array.isArray(L))return;let V=[],{locStart:q,locEnd:Y,printer:{handleComments:H={}}}=$,{avoidAstMutation:R,ownLine:Q=B,endOfLine:ee=B,remaining:te=B}=H,oe=L.map((W,X)=>Object.assign(Object.assign({},S(M,W,$)),{},{comment:W,text:j,options:$,ast:M,isLastComment:L.length-1===X}));for(let[W,X]of oe.entries()){let{comment:ue,precedingNode:De,enclosingNode:ie,followingNode:G,text:z,options:U,ast:le,isLastComment:ge}=X;if(U.parser==="json"||U.parser==="json5"||U.parser==="__js_expression"||U.parser==="__vue_expression"||U.parser==="__vue_ts_expression"){if(q(ue)-q(le)<=0){f(le,ue);continue}if(Y(ue)-Y(le)>=0){w(le,ue);continue}}let Ae;if(R?Ae=[X]:(ue.enclosingNode=ie,ue.precedingNode=De,ue.followingNode=G,Ae=[ue,z,U,le,ge]),P(z,U,oe,W))ue.placement="ownLine",Q(...Ae)||(G?f(G,ue):De?w(De,ue):h(ie||le,ue));else if(C(z,U,oe,W))ue.placement="endOfLine",ee(...Ae)||(De?w(De,ue):G?f(G,ue):h(ie||le,ue));else if(ue.placement="remaining",!te(...Ae))if(De&&G){let Ne=V.length;Ne>0&&V[Ne-1].followingNode!==G&&D(V,z,U),V.push(X)}else De?w(De,ue):G?f(G,ue):h(ie||le,ue)}if(D(V,j,$),!R)for(let W of L)delete W.precedingNode,delete W.enclosingNode,delete W.followingNode}var k=L=>!/[\S\n\u2028\u2029]/.test(L);function P(L,M,j,$){let{comment:V,precedingNode:q}=j[$],{locStart:Y,locEnd:H}=M,R=Y(V);if(q)for(let Q=$-1;Q>=0;Q--){let{comment:ee,precedingNode:te}=j[Q];if(te!==q||!k(L.slice(H(ee),R)))break;R=Y(ee)}return y(L,R,{backwards:!0})}function C(L,M,j,$){let{comment:V,followingNode:q}=j[$],{locStart:Y,locEnd:H}=M,R=H(V);if(q)for(let Q=$+1;Q0;--Q){let{comment:ee,precedingNode:te,followingNode:oe}=L[Q-1];t.strictEqual(te,V),t.strictEqual(oe,q);let W=M.slice(j.locEnd(ee),R);if(H.test(W))R=j.locStart(ee);else break}for(let[ee,{comment:te}]of L.entries())ee1&&ee.comments.sort((te,oe)=>j.locStart(te)-j.locStart(oe));L.length=0}function g(L,M){let j=L.getValue();return j.printed=!0,M.printer.printComment(L,M)}function F(L,M,j){let $=j.locStart(M)-1;for(let V=1;V{let Y=L.getValue();!Y.leading&&!Y.trailing&&(!$||$(Y))&&V.push(g(L,M))},"comments"),V.length===0)?"":j?o(a,V):u([a,o(a,V)])}function N(L,M,j){let $=L.getValue();if(!$)return{};let V=$.comments||[];j&&(V=V.filter(R=>!j.has(R)));let q=$===M.cursorNode;if(V.length===0){let R=q?c:"";return{leading:R,trailing:R}}let Y=[],H=[];return L.each(()=>{let R=L.getValue();if(j&&j.has(R))return;let{leading:Q,trailing:ee}=R;Q?Y.push(l(L,M)):ee&&H.push(E(L,M))},"comments"),q&&(Y.unshift(c),H.push(c)),{leading:Y,trailing:H}}function x(L,M,j,$){let{leading:V,trailing:q}=N(L,j,$);return!V&&!q?M:[V,M,q]}function b(L){if(!!L)for(let M of L){if(!M.printed)throw new Error('Comment "'+M.value.trim()+'" was not printed. Please report this error!');delete M.printed}}n.exports={attach:I,printComments:x,printCommentsSeparately:N,printDanglingComments:v,getSortedChildNodes:A,ensureAllCommentsPrinted:b}}}),fm=Z({"src/common/ast-path.js"(e,n){"use strict";re();var t=it();function s(u,i){let o=a(u.stack,i);return o===-1?null:u.stack[o]}function a(u,i){for(let o=u.length-1;o>=0;o-=2){let c=u[o];if(c&&!Array.isArray(c)&&--i<0)return o}return-1}var r=class{constructor(u){this.stack=[u]}getName(){let{stack:u}=this,{length:i}=u;return i>1?u[i-2]:null}getValue(){return t(this.stack)}getNode(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return s(this,u)}getParentNode(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return s(this,u+1)}call(u){let{stack:i}=this,{length:o}=i,c=t(i);for(var y=arguments.length,m=new Array(y>1?y-1:0),d=1;d1&&arguments[1]!==void 0?arguments[1]:0,o=a(this.stack,i+1),c=this.stack.splice(o+1),y=u(this);return this.stack.push(...c),y}each(u){let{stack:i}=this,{length:o}=i,c=t(i);for(var y=arguments.length,m=new Array(y>1?y-1:0),d=1;d1?o-1:0),y=1;y{i[d]=u(m,d,p)},...c),i}try(u){let{stack:i}=this,o=[...i];try{return u()}finally{i.length=0,i.push(...o)}}match(){let u=this.stack.length-1,i=null,o=this.stack[u--];for(var c=arguments.length,y=new Array(c),m=0;mu(m,d,c,y,p),c)}function u(i,o,c,y){let{stripTrailingHardline:m=!1}=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{},d=s(Object.assign(Object.assign(Object.assign({},c),o),{},{parentParser:c.parser,originalText:i}),{passThrough:!0}),p=Wn().parse(i,d),{ast:f}=p;i=p.text;let h=f.comments;delete f.comments,a.attach(h,f,i,d),d[Symbol.for("comments")]=h||[],d[Symbol.for("tokens")]=f.tokens||[];let w=y(f,d);return a.ensureAllCommentsPrinted(h),m?typeof w=="string"?w.replace(/(?:\r?\n)*$/,""):t(w):w}n.exports={printSubtree:r}}}),mm=Z({"src/main/ast-to-doc.js"(e,n){"use strict";re();var t=fm(),{builders:{hardline:s,addAlignmentToDoc:a},utils:{propagateBreaks:r}}=Oe(),{printComments:u}=et(),i=Dm();function o(m,d){let p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,{printer:f}=d;f.preprocess&&(m=f.preprocess(m,d));let h=new Map,w=new t(m),T=A();return p>0&&(T=a([s,T],p,d.tabWidth)),r(T),T;function A(B,I){return B===void 0||B===w?S(I):Array.isArray(B)?w.call(()=>S(I),...B):w.call(()=>S(I),B)}function S(B){let I=w.getValue(),k=I&&typeof I=="object"&&B===void 0;if(k&&h.has(I))return h.get(I);let P=y(w,d,A,B);return k&&h.set(I,P),P}}function c(m,d){let{originalText:p,[Symbol.for("comments")]:f,locStart:h,locEnd:w}=d,T=h(m),A=w(m),S=new Set;for(let B of f)h(B)>=T&&w(B)<=A&&(B.printed=!0,S.add(B));return{doc:p.slice(T,A),printedComments:S}}function y(m,d,p,f){let h=m.getValue(),{printer:w}=d,T,A;if(w.hasPrettierIgnore&&w.hasPrettierIgnore(m))({doc:T,printedComments:A}=c(h,d));else{if(h)try{T=i.printSubtree(m,p,d,o)}catch(S){if(globalThis.PRETTIER_DEBUG)throw S}T||(T=w.print(m,d,p,f))}return(!w.willPrintOwnComments||!w.willPrintOwnComments(m,d))&&(T=u(m,T,d,A)),T}n.exports=o}}),dm=Z({"src/main/range-util.js"(e,n){"use strict";re();var t=Ut(),s=et(),a=f=>{let{parser:h}=f;return h==="json"||h==="json5"||h==="json-stringify"};function r(f,h){let w=[f.node,...f.parentNodes],T=new Set([h.node,...h.parentNodes]);return w.find(A=>y.has(A.type)&&T.has(A))}function u(f){let h=f.length-1;for(;;){let w=f[h];if(w&&(w.type==="Program"||w.type==="File"))h--;else break}return f.slice(0,h+1)}function i(f,h,w){let{locStart:T,locEnd:A}=w,S=f.node,B=h.node;if(S===B)return{startNode:S,endNode:B};let I=T(f.node);for(let P of u(h.parentNodes))if(T(P)>=I)B=P;else break;let k=A(h.node);for(let P of u(f.parentNodes))if(A(P)<=k)S=P;else break;return{startNode:S,endNode:B}}function o(f,h,w,T){let A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[],S=arguments.length>5?arguments[5]:void 0,{locStart:B,locEnd:I}=w,k=B(f),P=I(f);if(!(h>P||hT);let I=f.slice(T,A).search(/\S/),k=I===-1;if(!k)for(T+=I;A>T&&!/\S/.test(f[A-1]);--A);let P=o(w,T,h,(F,l)=>d(h,F,l),[],"rangeStart"),C=k?P:o(w,A,h,F=>d(h,F),[],"rangeEnd");if(!P||!C)return{rangeStart:0,rangeEnd:0};let D,g;if(a(h)){let F=r(P,C);D=F,g=F}else({startNode:D,endNode:g}=i(P,C,h));return{rangeStart:Math.min(S(D),S(g)),rangeEnd:Math.max(B(D),B(g))}}n.exports={calculateRange:p,findNodeAtOffset:o}}}),gm=Z({"src/main/core.js"(e,n){"use strict";re();var{diffArrays:t}=Zf(),{printer:{printDocToString:s},debug:{printDocToDebug:a}}=Oe(),{getAlignmentSize:r}=Ue(),{guessEndOfLine:u,convertEndOfLineToChars:i,countEndOfLineChars:o,normalizeEndOfLine:c}=kn(),y=La().normalize,m=pm(),d=et(),p=Wn(),f=mm(),h=dm(),w="\uFEFF",T=Symbol("cursor");function A(g,F,l){let E=F.comments;return E&&(delete F.comments,d.attach(E,F,g,l)),l[Symbol.for("comments")]=E||[],l[Symbol.for("tokens")]=F.tokens||[],l.originalText=g,E}function S(g,F){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(!g||g.trim().length===0)return{formatted:"",cursorOffset:-1,comments:[]};let{ast:E,text:v}=p.parse(g,F);if(F.cursorOffset>=0){let L=h.findNodeAtOffset(E,F.cursorOffset,F);L&&L.node&&(F.cursorNode=L.node)}let N=A(v,E,F),x=f(E,F,l),b=s(x,F);if(d.ensureAllCommentsPrinted(N),l>0){let L=b.formatted.trim();b.cursorNodeStart!==void 0&&(b.cursorNodeStart-=b.formatted.indexOf(L)),b.formatted=L+i(F.endOfLine)}if(F.cursorOffset>=0){let L,M,j,$,V;if(F.cursorNode&&b.cursorNodeText?(L=F.locStart(F.cursorNode),M=v.slice(L,F.locEnd(F.cursorNode)),j=F.cursorOffset-L,$=b.cursorNodeStart,V=b.cursorNodeText):(L=0,M=v,j=F.cursorOffset,$=0,V=b.formatted),M===V)return{formatted:b.formatted,cursorOffset:$+j,comments:N};let q=[...M];q.splice(j,0,T);let Y=[...V],H=t(q,Y),R=$;for(let Q of H)if(Q.removed){if(Q.value.includes(T))break}else R+=Q.count;return{formatted:b.formatted,cursorOffset:R,comments:N}}return{formatted:b.formatted,cursorOffset:-1,comments:N}}function B(g,F){let{ast:l,text:E}=p.parse(g,F),{rangeStart:v,rangeEnd:N}=h.calculateRange(E,F,l),x=E.slice(v,N),b=Math.min(v,E.lastIndexOf(` +`,v)+1),L=E.slice(b,v).match(/^\s*/)[0],M=r(L,F.tabWidth),j=S(x,Object.assign(Object.assign({},F),{},{rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:F.cursorOffset>v&&F.cursorOffset<=N?F.cursorOffset-v:-1,endOfLine:"lf"}),M),$=j.formatted.trimEnd(),{cursorOffset:V}=F;V>N?V+=$.length-x.length:j.cursorOffset>=0&&(V=j.cursorOffset+v);let q=E.slice(0,v)+$+E.slice(N);if(F.endOfLine!=="lf"){let Y=i(F.endOfLine);V>=0&&Y===`\r +`&&(V+=o(q.slice(0,V),` +`)),q=q.replace(/\n/g,Y)}return{formatted:q,cursorOffset:V,comments:j.comments}}function I(g,F,l){return typeof F!="number"||Number.isNaN(F)||F<0||F>g.length?l:F}function k(g,F){let{cursorOffset:l,rangeStart:E,rangeEnd:v}=F;return l=I(g,l,-1),E=I(g,E,0),v=I(g,v,g.length),Object.assign(Object.assign({},F),{},{cursorOffset:l,rangeStart:E,rangeEnd:v})}function P(g,F){let{cursorOffset:l,rangeStart:E,rangeEnd:v,endOfLine:N}=k(g,F),x=g.charAt(0)===w;if(x&&(g=g.slice(1),l--,E--,v--),N==="auto"&&(N=u(g)),g.includes("\r")){let b=L=>o(g.slice(0,Math.max(L,0)),`\r +`);l-=b(l),E-=b(E),v-=b(v),g=c(g)}return{hasBOM:x,text:g,options:k(g,Object.assign(Object.assign({},F),{},{cursorOffset:l,rangeStart:E,rangeEnd:v,endOfLine:N}))}}function C(g,F){let l=p.resolveParser(F);return!l.hasPragma||l.hasPragma(g)}function D(g,F){let{hasBOM:l,text:E,options:v}=P(g,y(F));if(v.rangeStart>=v.rangeEnd&&E!==""||v.requirePragma&&!C(E,v))return{formatted:g,cursorOffset:F.cursorOffset,comments:[]};let N;return v.rangeStart>0||v.rangeEnd=0&&N.cursorOffset++),N}n.exports={formatWithCursor:D,parse(g,F,l){let{text:E,options:v}=P(g,y(F)),N=p.parse(E,v);return l&&(N.ast=m(N.ast,v)),N},formatAST(g,F){F=y(F);let l=f(g,F);return s(l,F)},formatDoc(g,F){return D(a(g),Object.assign(Object.assign({},F),{},{parser:"__js_expression"})).formatted},printToDoc(g,F){F=y(F);let{ast:l,text:E}=p.parse(g,F);return A(E,l,F),f(l,F)},printDocToString(g,F){return s(g,y(F))}}}}),ym=Z({"src/common/util-shared.js"(e,n){"use strict";re();var{getMaxContinuousCount:t,getStringWidth:s,getAlignmentSize:a,getIndentSize:r,skip:u,skipWhitespace:i,skipSpaces:o,skipNewline:c,skipToLineEnd:y,skipEverythingButNewLine:m,skipInlineComment:d,skipTrailingComment:p,hasNewline:f,hasNewlineInRange:h,hasSpaces:w,isNextLineEmpty:T,isNextLineEmptyAfterIndex:A,isPreviousLineEmpty:S,getNextNonSpaceNonCommentCharacterIndex:B,makeString:I,addLeadingComment:k,addDanglingComment:P,addTrailingComment:C}=Ue();n.exports={getMaxContinuousCount:t,getStringWidth:s,getAlignmentSize:a,getIndentSize:r,skip:u,skipWhitespace:i,skipSpaces:o,skipNewline:c,skipToLineEnd:y,skipEverythingButNewLine:m,skipInlineComment:d,skipTrailingComment:p,hasNewline:f,hasNewlineInRange:h,hasSpaces:w,isNextLineEmpty:T,isNextLineEmptyAfterIndex:A,isPreviousLineEmpty:S,getNextNonSpaceNonCommentCharacterIndex:B,makeString:I,addLeadingComment:k,addDanglingComment:P,addTrailingComment:C}}}),Tt=Z({"src/utils/create-language.js"(e,n){"use strict";re(),n.exports=function(t,s){let{languageId:a}=t,r=wn(t,Gf);return Object.assign(Object.assign({linguistLanguageId:a},r),s(t))}}}),hm=Z({"node_modules/esutils/lib/ast.js"(e,n){re(),function(){"use strict";function t(o){if(o==null)return!1;switch(o.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function s(o){if(o==null)return!1;switch(o.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function a(o){if(o==null)return!1;switch(o.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function r(o){return a(o)||o!=null&&o.type==="FunctionDeclaration"}function u(o){switch(o.type){case"IfStatement":return o.alternate!=null?o.alternate:o.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return o.body}return null}function i(o){var c;if(o.type!=="IfStatement"||o.alternate==null)return!1;c=o.consequent;do{if(c.type==="IfStatement"&&c.alternate==null)return!0;c=u(c)}while(c);return!1}n.exports={isExpression:t,isStatement:a,isIterationStatement:s,isSourceElement:r,isProblematicIfStatement:i,trailingStatement:u}}()}}),ja=Z({"node_modules/esutils/lib/code.js"(e,n){re(),function(){"use strict";var t,s,a,r,u,i;s={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};function o(A){return 48<=A&&A<=57}function c(A){return 48<=A&&A<=57||97<=A&&A<=102||65<=A&&A<=70}function y(A){return A>=48&&A<=55}a=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function m(A){return A===32||A===9||A===11||A===12||A===160||A>=5760&&a.indexOf(A)>=0}function d(A){return A===10||A===13||A===8232||A===8233}function p(A){if(A<=65535)return String.fromCharCode(A);var S=String.fromCharCode(Math.floor((A-65536)/1024)+55296),B=String.fromCharCode((A-65536)%1024+56320);return S+B}for(r=new Array(128),i=0;i<128;++i)r[i]=i>=97&&i<=122||i>=65&&i<=90||i===36||i===95;for(u=new Array(128),i=0;i<128;++i)u[i]=i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||i===36||i===95;function f(A){return A<128?r[A]:s.NonAsciiIdentifierStart.test(p(A))}function h(A){return A<128?u[A]:s.NonAsciiIdentifierPart.test(p(A))}function w(A){return A<128?r[A]:t.NonAsciiIdentifierStart.test(p(A))}function T(A){return A<128?u[A]:t.NonAsciiIdentifierPart.test(p(A))}n.exports={isDecimalDigit:o,isHexDigit:c,isOctalDigit:y,isWhiteSpace:m,isLineTerminator:d,isIdentifierStartES5:f,isIdentifierPartES5:h,isIdentifierStartES6:w,isIdentifierPartES6:T}}()}}),vm=Z({"node_modules/esutils/lib/keyword.js"(e,n){re(),function(){"use strict";var t=ja();function s(f){switch(f){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function a(f,h){return!h&&f==="yield"?!1:r(f,h)}function r(f,h){if(h&&s(f))return!0;switch(f.length){case 2:return f==="if"||f==="in"||f==="do";case 3:return f==="var"||f==="for"||f==="new"||f==="try";case 4:return f==="this"||f==="else"||f==="case"||f==="void"||f==="with"||f==="enum";case 5:return f==="while"||f==="break"||f==="catch"||f==="throw"||f==="const"||f==="yield"||f==="class"||f==="super";case 6:return f==="return"||f==="typeof"||f==="delete"||f==="switch"||f==="export"||f==="import";case 7:return f==="default"||f==="finally"||f==="extends";case 8:return f==="function"||f==="continue"||f==="debugger";case 10:return f==="instanceof";default:return!1}}function u(f,h){return f==="null"||f==="true"||f==="false"||a(f,h)}function i(f,h){return f==="null"||f==="true"||f==="false"||r(f,h)}function o(f){return f==="eval"||f==="arguments"}function c(f){var h,w,T;if(f.length===0||(T=f.charCodeAt(0),!t.isIdentifierStartES5(T)))return!1;for(h=1,w=f.length;h=w||(A=f.charCodeAt(h),!(56320<=A&&A<=57343)))return!1;T=y(T,A)}if(!S(T))return!1;S=t.isIdentifierPartES6}return!0}function d(f,h){return c(f)&&!u(f,h)}function p(f,h){return m(f)&&!i(f,h)}n.exports={isKeywordES5:a,isKeywordES6:r,isReservedWordES5:u,isReservedWordES6:i,isRestrictedWord:o,isIdentifierNameES5:c,isIdentifierNameES6:m,isIdentifierES5:d,isIdentifierES6:p}}()}}),Cm=Z({"node_modules/esutils/lib/utils.js"(e){re(),function(){"use strict";e.ast=hm(),e.code=ja(),e.keyword=vm()}()}}),Pt=Z({"src/language-js/utils/is-block-comment.js"(e,n){"use strict";re();var t=new Set(["Block","CommentBlock","MultiLine"]),s=a=>t.has(a==null?void 0:a.type);n.exports=s}}),Em=Z({"src/language-js/utils/is-node-matches.js"(e,n){"use strict";re();function t(a,r){let u=r.split(".");for(let i=u.length-1;i>=0;i--){let o=u[i];if(i===0)return a.type==="Identifier"&&a.name===o;if(a.type!=="MemberExpression"||a.optional||a.computed||a.property.type!=="Identifier"||a.property.name!==o)return!1;a=a.object}}function s(a,r){return r.some(u=>t(a,u))}n.exports=s}}),Ke=Z({"src/language-js/utils/index.js"(e,n){"use strict";re();var t=Cm().keyword.isIdentifierNameES5,{getLast:s,hasNewline:a,skipWhitespace:r,isNonEmptyArray:u,isNextLineEmptyAfterIndex:i,getStringWidth:o}=Ue(),{locStart:c,locEnd:y,hasSameLocStart:m}=st(),d=Pt(),p=Em(),f="(?:(?=.)\\s)",h=new RegExp("^".concat(f,"*:")),w=new RegExp("^".concat(f,"*::"));function T(O){var fe,Te;return((fe=O.extra)===null||fe===void 0?void 0:fe.parenthesized)&&d((Te=O.trailingComments)===null||Te===void 0?void 0:Te[0])&&h.test(O.trailingComments[0].value)}function A(O){let fe=O==null?void 0:O[0];return d(fe)&&w.test(fe.value)}function S(O,fe){if(!O||typeof O!="object")return!1;if(Array.isArray(O))return O.some($e=>S($e,fe));let Te=fe(O);return typeof Te=="boolean"?Te:Object.values(O).some($e=>S($e,fe))}function B(O){return O.type==="AssignmentExpression"||O.type==="BinaryExpression"||O.type==="LogicalExpression"||O.type==="NGPipeExpression"||O.type==="ConditionalExpression"||ue(O)||De(O)||O.type==="SequenceExpression"||O.type==="TaggedTemplateExpression"||O.type==="BindExpression"||O.type==="UpdateExpression"&&!O.prefix||O.type==="TSAsExpression"||O.type==="TSNonNullExpression"}function I(O){var fe,Te,$e,Je,Ze,ut;return O.expressions?O.expressions[0]:(fe=(Te=($e=(Je=(Ze=(ut=O.left)!==null&&ut!==void 0?ut:O.test)!==null&&Ze!==void 0?Ze:O.callee)!==null&&Je!==void 0?Je:O.object)!==null&&$e!==void 0?$e:O.tag)!==null&&Te!==void 0?Te:O.argument)!==null&&fe!==void 0?fe:O.expression}function k(O,fe){if(fe.expressions)return["expressions",0];if(fe.left)return["left"];if(fe.test)return["test"];if(fe.object)return["object"];if(fe.callee)return["callee"];if(fe.tag)return["tag"];if(fe.argument)return["argument"];if(fe.expression)return["expression"];throw new Error("Unexpected node has no left side.")}function P(O){return O=new Set(O),fe=>O.has(fe==null?void 0:fe.type)}var C=P(["Line","CommentLine","SingleLine","HashbangComment","HTMLOpen","HTMLClose"]),D=P(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function g(O){let fe=O.getParentNode();return O.getName()==="declaration"&&D(fe)?fe:null}var F=P(["BooleanLiteral","DirectiveLiteral","Literal","NullLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","RegExpLiteral","StringLiteral","TemplateLiteral","TSTypeLiteral","JSXText"]);function l(O){return O.type==="NumericLiteral"||O.type==="Literal"&&typeof O.value=="number"}function E(O){return O.type==="UnaryExpression"&&(O.operator==="+"||O.operator==="-")&&l(O.argument)}function v(O){return O.type==="StringLiteral"||O.type==="Literal"&&typeof O.value=="string"}var N=P(["ObjectTypeAnnotation","TSTypeLiteral","TSMappedType"]),x=P(["FunctionExpression","ArrowFunctionExpression"]);function b(O){return O.type==="FunctionExpression"||O.type==="ArrowFunctionExpression"&&O.body.type==="BlockStatement"}function L(O){return ue(O)&&O.callee.type==="Identifier"&&["async","inject","fakeAsync","waitForAsync"].includes(O.callee.name)}var M=P(["JSXElement","JSXFragment"]);function j(O,fe){if(O.parentParser!=="markdown"&&O.parentParser!=="mdx")return!1;let Te=fe.getNode();if(!Te.expression||!M(Te.expression))return!1;let $e=fe.getParentNode();return $e.type==="Program"&&$e.body.length===1}function $(O){return O.kind==="get"||O.kind==="set"}function V(O){return $(O)||m(O,O.value)}function q(O){return(O.type==="ObjectTypeProperty"||O.type==="ObjectTypeInternalSlot")&&O.value.type==="FunctionTypeAnnotation"&&!O.static&&!V(O)}function Y(O){return(O.type==="TypeAnnotation"||O.type==="TSTypeAnnotation")&&O.typeAnnotation.type==="FunctionTypeAnnotation"&&!O.static&&!m(O,O.typeAnnotation)}var H=P(["BinaryExpression","LogicalExpression","NGPipeExpression"]);function R(O){return De(O)||O.type==="BindExpression"&&Boolean(O.object)}var Q=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);function ee(O){return O?!!((O.type==="GenericTypeAnnotation"||O.type==="TSTypeReference")&&!O.typeParameters||Q.has(O.type)):!1}function te(O){let fe=/^(?:before|after)(?:Each|All)$/;return O.callee.type==="Identifier"&&fe.test(O.callee.name)&&O.arguments.length===1}var oe=["it","it.only","it.skip","describe","describe.only","describe.skip","test","test.only","test.skip","test.step","test.describe","test.describe.only","test.describe.parallel","test.describe.parallel.only","test.describe.serial","test.describe.serial.only","skip","xit","xdescribe","xtest","fit","fdescribe","ftest"];function W(O){return p(O,oe)}function X(O,fe){if(O.type!=="CallExpression")return!1;if(O.arguments.length===1){if(L(O)&&fe&&X(fe))return x(O.arguments[0]);if(te(O))return L(O.arguments[0])}else if((O.arguments.length===2||O.arguments.length===3)&&(O.arguments[0].type==="TemplateLiteral"||v(O.arguments[0]))&&W(O.callee))return O.arguments[2]&&!l(O.arguments[2])?!1:(O.arguments.length===2?x(O.arguments[1]):b(O.arguments[1])&&Se(O.arguments[1]).length<=1)||L(O.arguments[1]);return!1}var ue=P(["CallExpression","OptionalCallExpression"]),De=P(["MemberExpression","OptionalMemberExpression"]);function ie(O){let fe="expressions";O.type==="TSTemplateLiteralType"&&(fe="types");let Te=O[fe];return Te.length===0?!1:Te.every($e=>{if(se($e))return!1;if($e.type==="Identifier"||$e.type==="ThisExpression")return!0;if(De($e)){let Je=$e;for(;De(Je);)if(Je.property.type!=="Identifier"&&Je.property.type!=="Literal"&&Je.property.type!=="StringLiteral"&&Je.property.type!=="NumericLiteral"||(Je=Je.object,se(Je)))return!1;return Je.type==="Identifier"||Je.type==="ThisExpression"}return!1})}function G(O,fe){return O==="+"||O==="-"?O+fe:fe}function z(O,fe){let Te=c(fe),$e=r(O,y(fe));return $e!==!1&&O.slice(Te,Te+2)==="/*"&&O.slice($e,$e+2)==="*/"}function U(O,fe){return M(fe)?Re(fe):se(fe,Le.Leading,Te=>a(O,y(Te)))}function le(O,fe){return fe.parser!=="json"&&v(O.key)&&ve(O.key).slice(1,-1)===O.key.value&&(t(O.key.value)&&!(fe.parser==="babel-ts"&&O.type==="ClassProperty"||fe.parser==="typescript"&&O.type==="PropertyDefinition")||ge(O.key.value)&&String(Number(O.key.value))===O.key.value&&(fe.parser==="babel"||fe.parser==="acorn"||fe.parser==="espree"||fe.parser==="meriyah"||fe.parser==="__babel_estree"))}function ge(O){return/^(?:\d+|\d+\.\d+)$/.test(O)}function Ae(O,fe){let Te=/^[fx]?(?:describe|it|test)$/;return fe.type==="TaggedTemplateExpression"&&fe.quasi===O&&fe.tag.type==="MemberExpression"&&fe.tag.property.type==="Identifier"&&fe.tag.property.name==="each"&&(fe.tag.object.type==="Identifier"&&Te.test(fe.tag.object.name)||fe.tag.object.type==="MemberExpression"&&fe.tag.object.property.type==="Identifier"&&(fe.tag.object.property.name==="only"||fe.tag.object.property.name==="skip")&&fe.tag.object.object.type==="Identifier"&&Te.test(fe.tag.object.object.name))}function Ne(O){return O.quasis.some(fe=>fe.value.raw.includes(` +`))}function ke(O,fe){return(O.type==="TemplateLiteral"&&Ne(O)||O.type==="TaggedTemplateExpression"&&Ne(O.quasi))&&!a(fe,c(O),{backwards:!0})}function ce(O){if(!se(O))return!1;let fe=s(He(O,Le.Dangling));return fe&&!d(fe)}function pe(O){if(O.length<=1)return!1;let fe=0;for(let Te of O)if(x(Te)){if(fe+=1,fe>1)return!0}else if(ue(Te)){for(let $e of Te.arguments)if(x($e))return!0}return!1}function de(O){let fe=O.getValue(),Te=O.getParentNode();return ue(fe)&&ue(Te)&&Te.callee===fe&&fe.arguments.length>Te.arguments.length&&Te.arguments.length>0}function ae(O,fe){if(fe>=2)return!1;let Te=Je=>ae(Je,fe+1),$e=O.type==="Literal"&&"regex"in O&&O.regex.pattern||O.type==="RegExpLiteral"&&O.pattern;return $e&&o($e)>5?!1:O.type==="Literal"||O.type==="BigIntLiteral"||O.type==="DecimalLiteral"||O.type==="BooleanLiteral"||O.type==="NullLiteral"||O.type==="NumericLiteral"||O.type==="RegExpLiteral"||O.type==="StringLiteral"||O.type==="Identifier"||O.type==="ThisExpression"||O.type==="Super"||O.type==="PrivateName"||O.type==="PrivateIdentifier"||O.type==="ArgumentPlaceholder"||O.type==="Import"?!0:O.type==="TemplateLiteral"?O.quasis.every(Je=>!Je.value.raw.includes(` +`))&&O.expressions.every(Te):O.type==="ObjectExpression"?O.properties.every(Je=>!Je.computed&&(Je.shorthand||Je.value&&Te(Je.value))):O.type==="ArrayExpression"?O.elements.every(Je=>Je===null||Te(Je)):ze(O)?(O.type==="ImportExpression"||ae(O.callee,fe))&&Xe(O).every(Te):De(O)?ae(O.object,fe)&&ae(O.property,fe):O.type==="UnaryExpression"&&(O.operator==="!"||O.operator==="-")?ae(O.argument,fe):O.type==="TSNonNullExpression"?ae(O.expression,fe):!1}function ve(O){var fe,Te;return(fe=(Te=O.extra)===null||Te===void 0?void 0:Te.raw)!==null&&fe!==void 0?fe:O.raw}function K(O){return O}function he(O){return O.filepath&&/\.tsx$/i.test(O.filepath)}function ye(O){let fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"es5";return O.trailingComma==="es5"&&fe==="es5"||O.trailingComma==="all"&&(fe==="all"||fe==="es5")}function Ce(O,fe){switch(O=Ee(O),O.type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return fe;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return Ce(O.object,fe);case"TaggedTemplateExpression":return O.tag.type==="FunctionExpression"?!1:Ce(O.tag,fe);case"CallExpression":case"OptionalCallExpression":return O.callee.type==="FunctionExpression"?!1:Ce(O.callee,fe);case"ConditionalExpression":return Ce(O.test,fe);case"UpdateExpression":return!O.prefix&&Ce(O.argument,fe);case"BindExpression":return O.object&&Ce(O.object,fe);case"SequenceExpression":return Ce(O.expressions[0],fe);case"TSAsExpression":case"TSNonNullExpression":return Ce(O.expression,fe);default:return!1}}var Ie={"==":!0,"!=":!0,"===":!0,"!==":!0},Fe={"*":!0,"/":!0,"%":!0},me={">>":!0,">>>":!0,"<<":!0};function _(O,fe){return!(ne(fe)!==ne(O)||O==="**"||Ie[O]&&Ie[fe]||fe==="%"&&Fe[O]||O==="%"&&Fe[fe]||fe!==O&&Fe[fe]&&Fe[O]||me[O]&&me[fe])}var J=new Map([["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].flatMap((O,fe)=>O.map(Te=>[Te,fe])));function ne(O){return J.get(O)}function Ee(O){for(;O.left;)O=O.left;return O}function We(O){return Boolean(me[O])||O==="|"||O==="^"||O==="&"}function Be(O){var fe;if(O.rest)return!0;let Te=Se(O);return((fe=s(Te))===null||fe===void 0?void 0:fe.type)==="RestElement"}var Pe=new WeakMap;function Se(O){if(Pe.has(O))return Pe.get(O);let fe=[];return O.this&&fe.push(O.this),Array.isArray(O.parameters)?fe.push(...O.parameters):Array.isArray(O.params)&&fe.push(...O.params),O.rest&&fe.push(O.rest),Pe.set(O,fe),fe}function Qe(O,fe){let Te=O.getValue(),$e=0,Je=Ze=>fe(Ze,$e++);Te.this&&O.call(Je,"this"),Array.isArray(Te.parameters)?O.each(Je,"parameters"):Array.isArray(Te.params)&&O.each(Je,"params"),Te.rest&&O.call(Je,"rest")}var xe=new WeakMap;function Xe(O){if(xe.has(O))return xe.get(O);let fe=O.arguments;return O.type==="ImportExpression"&&(fe=[O.source],O.attributes&&fe.push(O.attributes)),xe.set(O,fe),fe}function we(O,fe){let Te=O.getValue();Te.type==="ImportExpression"?(O.call($e=>fe($e,0),"source"),Te.attributes&&O.call($e=>fe($e,1),"attributes")):O.each(fe,"arguments")}function je(O){return O.value.trim()==="prettier-ignore"&&!O.unignore}function Re(O){return O&&(O.prettierIgnore||se(O,Le.PrettierIgnore))}function be(O){let fe=O.getValue();return Re(fe)}var Le={Leading:1<<1,Trailing:1<<2,Dangling:1<<3,Block:1<<4,Line:1<<5,PrettierIgnore:1<<6,First:1<<7,Last:1<<8},qe=(O,fe)=>{if(typeof O=="function"&&(fe=O,O=0),O||fe)return(Te,$e,Je)=>!(O&Le.Leading&&!Te.leading||O&Le.Trailing&&!Te.trailing||O&Le.Dangling&&(Te.leading||Te.trailing)||O&Le.Block&&!d(Te)||O&Le.Line&&!C(Te)||O&Le.First&&$e!==0||O&Le.Last&&$e!==Je.length-1||O&Le.PrettierIgnore&&!je(Te)||fe&&!fe(Te))};function se(O,fe,Te){if(!u(O==null?void 0:O.comments))return!1;let $e=qe(fe,Te);return $e?O.comments.some($e):!0}function He(O,fe,Te){if(!Array.isArray(O==null?void 0:O.comments))return[];let $e=qe(fe,Te);return $e?O.comments.filter($e):O.comments}var Me=(O,fe)=>{let{originalText:Te}=fe;return i(Te,y(O))};function ze(O){return ue(O)||O.type==="NewExpression"||O.type==="ImportExpression"}function nt(O){return O&&(O.type==="ObjectProperty"||O.type==="Property"&&!O.method&&O.kind==="init")}function tt(O){return Boolean(O.__isUsingHackPipeline)}var pt=Symbol("ifWithoutBlockAndSameLineComment");n.exports={getFunctionParameters:Se,iterateFunctionParametersPath:Qe,getCallArguments:Xe,iterateCallArgumentsPath:we,hasRestParameter:Be,getLeftSide:I,getLeftSidePathName:k,getParentExportDeclaration:g,getTypeScriptMappedTypeModifier:G,hasFlowAnnotationComment:A,hasFlowShorthandAnnotationComment:T,hasLeadingOwnLineComment:U,hasNakedLeftSide:B,hasNode:S,hasIgnoreComment:be,hasNodeIgnoreComment:Re,identity:K,isBinaryish:H,isCallLikeExpression:ze,isEnabledHackPipeline:tt,isLineComment:C,isPrettierIgnoreComment:je,isCallExpression:ue,isMemberExpression:De,isExportDeclaration:D,isFlowAnnotationComment:z,isFunctionCompositionArgs:pe,isFunctionNotation:V,isFunctionOrArrowExpression:x,isGetterOrSetter:$,isJestEachTemplateLiteral:Ae,isJsxNode:M,isLiteral:F,isLongCurriedCallExpression:de,isSimpleCallArgument:ae,isMemberish:R,isNumericLiteral:l,isSignedNumericLiteral:E,isObjectProperty:nt,isObjectType:N,isObjectTypePropertyAFunction:q,isSimpleType:ee,isSimpleNumber:ge,isSimpleTemplateLiteral:ie,isStringLiteral:v,isStringPropSafeToUnquote:le,isTemplateOnItsOwnLine:ke,isTestCall:X,isTheOnlyJsxElementInMarkdown:j,isTSXFile:he,isTypeAnnotationAFunction:Y,isNextLineEmpty:Me,needsHardlineAfterDanglingComment:ce,rawText:ve,shouldPrintComma:ye,isBitwiseOperator:We,shouldFlatten:_,startsWithNoLookaheadToken:Ce,getPrecedence:ne,hasComment:se,getComments:He,CommentCheckFlags:Le,markerForIfWithoutBlockAndSameLineComment:pt}}}),kt=Z({"src/language-js/print/template-literal.js"(e,n){"use strict";re();var t=it(),{getStringWidth:s,getIndentSize:a}=Ue(),{builders:{join:r,hardline:u,softline:i,group:o,indent:c,align:y,lineSuffixBoundary:m,addAlignmentToDoc:d},printer:{printDocToString:p},utils:{mapDoc:f}}=Oe(),{isBinaryish:h,isJestEachTemplateLiteral:w,isSimpleTemplateLiteral:T,hasComment:A,isMemberExpression:S}=Ke();function B(g,F,l){let E=g.getValue();if(E.type==="TemplateLiteral"&&w(E,g.getParentNode())){let M=I(g,l,F);if(M)return M}let N="expressions";E.type==="TSTemplateLiteralType"&&(N="types");let x=[],b=g.map(F,N),L=T(E);return L&&(b=b.map(M=>p(M,Object.assign(Object.assign({},l),{},{printWidth:Number.POSITIVE_INFINITY})).formatted)),x.push(m,"`"),g.each(M=>{let j=M.getName();if(x.push(F()),j1||v.some(N=>N.length>0)){F.__inJestEach=!0;let N=g.map(l,"expressions");F.__inJestEach=!1;let x=[],b=N.map(V=>"${"+p(V,Object.assign(Object.assign({},F),{},{printWidth:Number.POSITIVE_INFINITY,endOfLine:"lf"})).formatted+"}"),L=[{hasLineBreak:!1,cells:[]}];for(let V=1;VV.cells.length)),j=Array.from({length:M}).fill(0),$=[{cells:v},...L.filter(V=>V.cells.length>0)];for(let{cells:V}of $.filter(q=>!q.hasLineBreak))for(let[q,Y]of V.entries())j[q]=Math.max(j[q],s(Y));return x.push(m,"`",c([u,r(u,$.map(V=>r(" | ",V.cells.map((q,Y)=>V.hasLineBreak?q:q+" ".repeat(j[Y]-s(q))))))]),u,"`"),x}}function k(g,F){let l=g.getValue(),E=F();return A(l)&&(E=o([c([i,E]),i])),["${",E,m,"}"]}function P(g,F){return g.map(l=>k(l,F),"expressions")}function C(g,F){return f(g,l=>typeof l=="string"?F?l.replace(/(\\*)`/g,"$1$1\\`"):D(l):l)}function D(g){return g.replace(/([\\`]|\${)/g,"\\$1")}n.exports={printTemplateLiteral:B,printTemplateExpressions:P,escapeTemplateCharacters:C,uncookTemplateElementValue:D}}}),Fm=Z({"src/language-js/embed/markdown.js"(e,n){"use strict";re();var{builders:{indent:t,softline:s,literalline:a,dedentToRoot:r}}=Oe(),{escapeTemplateCharacters:u}=kt();function i(c,y,m){let p=c.getValue().quasis[0].value.raw.replace(/((?:\\\\)*)\\`/g,(T,A)=>"\\".repeat(A.length/2)+"`"),f=o(p),h=f!=="";h&&(p=p.replace(new RegExp("^".concat(f),"gm"),""));let w=u(m(p,{parser:"markdown",__inJsTemplate:!0},{stripTrailingHardline:!0}),!0);return["`",h?t([s,w]):[a,r(w)],s,"`"]}function o(c){let y=c.match(/^([^\S\n]*)\S/m);return y===null?"":y[1]}n.exports=i}}),Am=Z({"src/language-js/embed/css.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{indent:s,hardline:a,softline:r},utils:{mapDoc:u,replaceEndOfLine:i,cleanDoc:o}}=Oe(),{printTemplateExpressions:c}=kt();function y(p,f,h){let w=p.getValue(),T=w.quasis.map(k=>k.value.raw),A=0,S=T.reduce((k,P,C)=>C===0?P:k+"@prettier-placeholder-"+A+++"-id"+P,""),B=h(S,{parser:"scss"},{stripTrailingHardline:!0}),I=c(p,f);return m(B,w,I)}function m(p,f,h){if(f.quasis.length===1&&!f.quasis[0].value.raw.trim())return"``";let T=d(p,h);if(!T)throw new Error("Couldn't insert all the expressions");return["`",s([a,T]),r,"`"]}function d(p,f){if(!t(f))return p;let h=0,w=u(o(p),T=>typeof T!="string"||!T.includes("@prettier-placeholder")?T:T.split(/@prettier-placeholder-(\d+)-id/).map((A,S)=>S%2===0?i(A):(h++,f[A])));return f.length===h?w:null}n.exports=y}}),Sm=Z({"src/language-js/embed/graphql.js"(e,n){"use strict";re();var{builders:{indent:t,join:s,hardline:a}}=Oe(),{escapeTemplateCharacters:r,printTemplateExpressions:u}=kt();function i(c,y,m){let d=c.getValue(),p=d.quasis.length;if(p===1&&d.quasis[0].value.raw.trim()==="")return"``";let f=u(c,y),h=[];for(let w=0;w2&&I[0].trim()===""&&I[1].trim()==="",D=k>2&&I[k-1].trim()===""&&I[k-2].trim()==="",g=I.every(l=>/^\s*(?:#[^\n\r]*)?$/.test(l));if(!S&&/#[^\n\r]*$/.test(I[k-1]))return null;let F=null;g?F=o(I):F=m(B,{parser:"graphql"},{stripTrailingHardline:!0}),F?(F=r(F,!1),!A&&C&&h.push(""),h.push(F),!S&&D&&h.push("")):!A&&!S&&C&&h.push(""),P&&h.push(P)}return["`",t([a,s(a,h)]),a,"`"]}function o(c){let y=[],m=!1,d=c.map(p=>p.trim());for(let[p,f]of d.entries())f!==""&&(d[p-1]===""&&m?y.push([a,f]):y.push(f),m=!0);return y.length===0?null:s(a,y)}n.exports=i}}),xm=Z({"src/language-js/embed/html.js"(e,n){"use strict";re();var{builders:{indent:t,line:s,hardline:a,group:r},utils:{mapDoc:u}}=Oe(),{printTemplateExpressions:i,uncookTemplateElementValue:o}=kt(),c=0;function y(m,d,p,f,h){let{parser:w}=h,T=m.getValue(),A=c;c=c+1>>>0;let S=E=>"PRETTIER_HTML_PLACEHOLDER_".concat(E,"_").concat(A,"_IN_JS"),B=T.quasis.map((E,v,N)=>v===N.length-1?E.value.cooked:E.value.cooked+S(v)).join(""),I=i(m,d);if(I.length===0&&B.trim().length===0)return"``";let k=new RegExp(S("(\\d+)"),"g"),P=0,C=p(B,{parser:w,__onHtmlRoot(E){P=E.children.length}},{stripTrailingHardline:!0}),D=u(C,E=>{if(typeof E!="string")return E;let v=[],N=E.split(k);for(let x=0;x1?t(r(D)):r(D),F,"`"])}n.exports=y}}),bm=Z({"src/language-js/embed.js"(e,n){"use strict";re();var{hasComment:t,CommentCheckFlags:s,isObjectProperty:a}=Ke(),r=Fm(),u=Am(),i=Sm(),o=xm();function c(C){if(d(C)||w(C)||T(C)||p(C))return"css";if(B(C))return"graphql";if(k(C))return"html";if(f(C))return"angular";if(m(C))return"markdown"}function y(C,D,g,F){let l=C.getValue();if(l.type!=="TemplateLiteral"||P(l))return;let E=c(C);if(!!E){if(E==="markdown")return r(C,D,g);if(E==="css")return u(C,D,g);if(E==="graphql")return i(C,D,g);if(E==="html"||E==="angular")return o(C,D,g,F,{parser:E})}}function m(C){let D=C.getValue(),g=C.getParentNode();return g&&g.type==="TaggedTemplateExpression"&&D.quasis.length===1&&g.tag.type==="Identifier"&&(g.tag.name==="md"||g.tag.name==="markdown")}function d(C){let D=C.getValue(),g=C.getParentNode(),F=C.getParentNode(1);return F&&D.quasis&&g.type==="JSXExpressionContainer"&&F.type==="JSXElement"&&F.openingElement.name.name==="style"&&F.openingElement.attributes.some(l=>l.name.name==="jsx")||g&&g.type==="TaggedTemplateExpression"&&g.tag.type==="Identifier"&&g.tag.name==="css"||g&&g.type==="TaggedTemplateExpression"&&g.tag.type==="MemberExpression"&&g.tag.object.name==="css"&&(g.tag.property.name==="global"||g.tag.property.name==="resolve")}function p(C){return C.match(D=>D.type==="TemplateLiteral",(D,g)=>D.type==="ArrayExpression"&&g==="elements",(D,g)=>a(D)&&D.key.type==="Identifier"&&D.key.name==="styles"&&g==="value",...h)}function f(C){return C.match(D=>D.type==="TemplateLiteral",(D,g)=>a(D)&&D.key.type==="Identifier"&&D.key.name==="template"&&g==="value",...h)}var h=[(C,D)=>C.type==="ObjectExpression"&&D==="properties",(C,D)=>C.type==="CallExpression"&&C.callee.type==="Identifier"&&C.callee.name==="Component"&&D==="arguments",(C,D)=>C.type==="Decorator"&&D==="expression"];function w(C){let D=C.getParentNode();if(!D||D.type!=="TaggedTemplateExpression")return!1;let g=D.tag.type==="ParenthesizedExpression"?D.tag.expression:D.tag;switch(g.type){case"MemberExpression":return A(g.object)||S(g);case"CallExpression":return A(g.callee)||g.callee.type==="MemberExpression"&&(g.callee.object.type==="MemberExpression"&&(A(g.callee.object.object)||S(g.callee.object))||g.callee.object.type==="CallExpression"&&A(g.callee.object.callee));case"Identifier":return g.name==="css";default:return!1}}function T(C){let D=C.getParentNode(),g=C.getParentNode(1);return g&&D.type==="JSXExpressionContainer"&&g.type==="JSXAttribute"&&g.name.type==="JSXIdentifier"&&g.name.name==="css"}function A(C){return C.type==="Identifier"&&C.name==="styled"}function S(C){return/^[A-Z]/.test(C.object.name)&&C.property.name==="extend"}function B(C){let D=C.getValue(),g=C.getParentNode();return I(D,"GraphQL")||g&&(g.type==="TaggedTemplateExpression"&&(g.tag.type==="MemberExpression"&&g.tag.object.name==="graphql"&&g.tag.property.name==="experimental"||g.tag.type==="Identifier"&&(g.tag.name==="gql"||g.tag.name==="graphql"))||g.type==="CallExpression"&&g.callee.type==="Identifier"&&g.callee.name==="graphql")}function I(C,D){return t(C,s.Block|s.Leading,g=>{let{value:F}=g;return F===" ".concat(D," ")})}function k(C){return I(C.getValue(),"HTML")||C.match(D=>D.type==="TemplateLiteral",(D,g)=>D.type==="TaggedTemplateExpression"&&D.tag.type==="Identifier"&&D.tag.name==="html"&&g==="quasi")}function P(C){let{quasis:D}=C;return D.some(g=>{let{value:{cooked:F}}=g;return F===null})}n.exports=y}}),Tm=Z({"src/language-js/clean.js"(e,n){"use strict";re();var t=Pt(),s=new Set(["range","raw","comments","leadingComments","trailingComments","innerComments","extra","start","end","loc","flags","errors","tokens"]),a=u=>{for(let i of u.quasis)delete i.value};function r(u,i,o){if(u.type==="Program"&&delete i.sourceType,(u.type==="BigIntLiteral"||u.type==="BigIntLiteralTypeAnnotation")&&i.value&&(i.value=i.value.toLowerCase()),(u.type==="BigIntLiteral"||u.type==="Literal")&&i.bigint&&(i.bigint=i.bigint.toLowerCase()),u.type==="DecimalLiteral"&&(i.value=Number(i.value)),u.type==="Literal"&&i.decimal&&(i.decimal=Number(i.decimal)),u.type==="EmptyStatement"||u.type==="JSXText"||u.type==="JSXExpressionContainer"&&(u.expression.type==="Literal"||u.expression.type==="StringLiteral")&&u.expression.value===" ")return null;if((u.type==="Property"||u.type==="ObjectProperty"||u.type==="MethodDefinition"||u.type==="ClassProperty"||u.type==="ClassMethod"||u.type==="PropertyDefinition"||u.type==="TSDeclareMethod"||u.type==="TSPropertySignature"||u.type==="ObjectTypeProperty")&&typeof u.key=="object"&&u.key&&(u.key.type==="Literal"||u.key.type==="NumericLiteral"||u.key.type==="StringLiteral"||u.key.type==="Identifier")&&delete i.key,u.type==="JSXElement"&&u.openingElement.name.name==="style"&&u.openingElement.attributes.some(m=>m.name.name==="jsx"))for(let{type:m,expression:d}of i.children)m==="JSXExpressionContainer"&&d.type==="TemplateLiteral"&&a(d);u.type==="JSXAttribute"&&u.name.name==="css"&&u.value.type==="JSXExpressionContainer"&&u.value.expression.type==="TemplateLiteral"&&a(i.value.expression),u.type==="JSXAttribute"&&u.value&&u.value.type==="Literal"&&/["']|"|'/.test(u.value.value)&&(i.value.value=i.value.value.replace(/["']|"|'/g,'"'));let c=u.expression||u.callee;if(u.type==="Decorator"&&c.type==="CallExpression"&&c.callee.name==="Component"&&c.arguments.length===1){let m=u.expression.arguments[0].properties;for(let[d,p]of i.expression.arguments[0].properties.entries())switch(m[d].key.name){case"styles":p.value.type==="ArrayExpression"&&a(p.value.elements[0]);break;case"template":p.value.type==="TemplateLiteral"&&a(p.value);break}}if(u.type==="TaggedTemplateExpression"&&(u.tag.type==="MemberExpression"||u.tag.type==="Identifier"&&(u.tag.name==="gql"||u.tag.name==="graphql"||u.tag.name==="css"||u.tag.name==="md"||u.tag.name==="markdown"||u.tag.name==="html")||u.tag.type==="CallExpression")&&a(i.quasi),u.type==="TemplateLiteral"){var y;(((y=u.leadingComments)===null||y===void 0?void 0:y.some(d=>t(d)&&["GraphQL","HTML"].some(p=>d.value===" ".concat(p," "))))||o.type==="CallExpression"&&o.callee.name==="graphql"||!u.leadingComments)&&a(i)}if(u.type==="InterpreterDirective"&&(i.value=i.value.trimEnd()),(u.type==="TSIntersectionType"||u.type==="TSUnionType")&&u.types.length===1)return i.types[0]}r.ignoredProperties=s,n.exports=r}}),Oa={};Gt(Oa,{EOL:()=>Nn,arch:()=>Bm,cpus:()=>Ha,default:()=>Xa,endianness:()=>qa,freemem:()=>Wa,getNetworkInterfaces:()=>za,hostname:()=>Ma,loadavg:()=>Ra,networkInterfaces:()=>Ua,platform:()=>Nm,release:()=>Ja,tmpDir:()=>Tn,tmpdir:()=>Bn,totalmem:()=>$a,type:()=>Ga,uptime:()=>Va});function qa(){if(typeof Fr>"u"){var e=new ArrayBuffer(2),n=new Uint8Array(e),t=new Uint16Array(e);if(n[0]=1,n[1]=2,t[0]===258)Fr="BE";else if(t[0]===513)Fr="LE";else throw new Error("unable to figure out endianess")}return Fr}function Ma(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function Ra(){return[]}function Va(){return 0}function Wa(){return Number.MAX_VALUE}function $a(){return Number.MAX_VALUE}function Ha(){return[]}function Ga(){return"Browser"}function Ja(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function Ua(){}function za(){}function Bm(){return"javascript"}function Nm(){return"browser"}function Tn(){return"/tmp"}var Fr,Bn,Nn,Xa,wm=mt({"node-modules-polyfills:os"(){re(),Bn=Tn,Nn=` +`,Xa={EOL:Nn,tmpdir:Bn,tmpDir:Tn,networkInterfaces:Ua,getNetworkInterfaces:za,release:Ja,type:Ga,cpus:Ha,totalmem:$a,freemem:Wa,uptime:Va,loadavg:Ra,hostname:Ma,endianness:qa}}}),_m=Z({"node-modules-polyfills-commonjs:os"(e,n){re();var t=(wm(),lt(Oa));if(t&&t.default){n.exports=t.default;for(let s in t)n.exports[s]=t[s]}else t&&(n.exports=t)}}),Pm=Z({"node_modules/detect-newline/index.js"(e,n){"use strict";re();var t=s=>{if(typeof s!="string")throw new TypeError("Expected a string");let a=s.match(/(?:\r?\n)/g)||[];if(a.length===0)return;let r=a.filter(i=>i===`\r +`).length,u=a.length-r;return r>u?`\r +`:` +`};n.exports=t,n.exports.graceful=s=>typeof s=="string"&&t(s)||` +`}}),km=Z({"node_modules/jest-docblock/build/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.extract=p,e.parse=h,e.parseWithComments=w,e.print=T,e.strip=f;function n(){let S=_m();return n=function(){return S},S}function t(){let S=s(Pm());return t=function(){return S},S}function s(S){return S&&S.__esModule?S:{default:S}}var a=/\*\/$/,r=/^\/\*\*/,u=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,i=/(^|\s+)\/\/([^\r\n]*)/g,o=/^(\r?\n)+/,c=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,y=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,m=/(\r?\n|^) *\* ?/g,d=[];function p(S){let B=S.match(u);return B?B[0].trimLeft():""}function f(S){let B=S.match(u);return B&&B[0]?S.substring(B[0].length):S}function h(S){return w(S).pragmas}function w(S){let B=(0,t().default)(S)||n().EOL;S=S.replace(r,"").replace(a,"").replace(m,"$1");let I="";for(;I!==S;)I=S,S=S.replace(c,"".concat(B,"$1 $2").concat(B));S=S.replace(o,"").trimRight();let k=Object.create(null),P=S.replace(y,"").replace(o,"").trimRight(),C;for(;C=y.exec(S);){let D=C[2].replace(i,"");typeof k[C[1]]=="string"||Array.isArray(k[C[1]])?k[C[1]]=d.concat(k[C[1]],D):k[C[1]]=D}return{comments:P,pragmas:k}}function T(S){let{comments:B="",pragmas:I={}}=S,k=(0,t().default)(B)||n().EOL,P="/**",C=" *",D=" */",g=Object.keys(I),F=g.map(E=>A(E,I[E])).reduce((E,v)=>E.concat(v),[]).map(E=>C+" "+E+k).join("");if(!B){if(g.length===0)return"";if(g.length===1&&!Array.isArray(I[g[0]])){let E=I[g[0]];return"".concat(P," ").concat(A(g[0],E)[0]).concat(D)}}let l=B.split(k).map(E=>"".concat(C," ").concat(E)).join(k)+k;return P+k+(B?l:"")+(B&&g.length?C+k:"")+F+D}function A(S,B){return d.concat(B).map(I=>"@".concat(S," ").concat(I).trim())}}}),Im=Z({"src/language-js/utils/get-shebang.js"(e,n){"use strict";re();function t(s){if(!s.startsWith("#!"))return"";let a=s.indexOf(` +`);return a===-1?s:s.slice(0,a)}n.exports=t}}),Ka=Z({"src/language-js/pragma.js"(e,n){"use strict";re();var{parseWithComments:t,strip:s,extract:a,print:r}=km(),{normalizeEndOfLine:u}=kn(),i=Im();function o(m){let d=i(m);d&&(m=m.slice(d.length+1));let p=a(m),{pragmas:f,comments:h}=t(p);return{shebang:d,text:m,pragmas:f,comments:h}}function c(m){let d=Object.keys(o(m).pragmas);return d.includes("prettier")||d.includes("format")}function y(m){let{shebang:d,text:p,pragmas:f,comments:h}=o(m),w=s(p),T=r({pragmas:Object.assign({format:""},f),comments:h.trimStart()});return(d?"".concat(d,` +`):"")+u(T)+(w.startsWith(` +`)?` +`:` + +`)+w}n.exports={hasPragma:c,insertPragma:y}}}),Ya=Z({"src/language-js/comments.js"(e,n){"use strict";re();var{getLast:t,hasNewline:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:a,getNextNonSpaceNonCommentCharacter:r,hasNewlineInRange:u,addLeadingComment:i,addTrailingComment:o,addDanglingComment:c,getNextNonSpaceNonCommentCharacterIndex:y,isNonEmptyArray:m}=Ue(),{getFunctionParameters:d,isPrettierIgnoreComment:p,isJsxNode:f,hasFlowShorthandAnnotationComment:h,hasFlowAnnotationComment:w,hasIgnoreComment:T,isCallLikeExpression:A,getCallArguments:S,isCallExpression:B,isMemberExpression:I,isObjectProperty:k,isLineComment:P,getComments:C,CommentCheckFlags:D,markerForIfWithoutBlockAndSameLineComment:g}=Ke(),{locStart:F,locEnd:l}=st(),E=Pt();function v(me){return[ve,De,q,j,$,V,Q,Ae,U,ge,Ne,ke,te,ie,G].some(_=>_(me))}function N(me){return[M,De,Y,Ne,j,$,V,Q,ie,z,le,ge,de,G,he].some(_=>_(me))}function x(me){return[ve,j,$,H,ue,te,ge,X,W,K,G,ae].some(_=>_(me))}function b(me,_){let J=(me.body||me.properties).find(ne=>{let{type:Ee}=ne;return Ee!=="EmptyStatement"});J?i(J,_):c(me,_)}function L(me,_){me.type==="BlockStatement"?b(me,_):i(me,_)}function M(me){let{comment:_,followingNode:J}=me;return J&&Ie(_)?(i(J,_),!0):!1}function j(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me;if((ne==null?void 0:ne.type)!=="IfStatement"||!Ee)return!1;if(r(We,_,l)===")")return o(J,_),!0;if(J===ne.consequent&&Ee===ne.alternate){if(J.type==="BlockStatement")o(J,_);else{let Pe=_.type==="SingleLine"||_.loc.start.line===_.loc.end.line,Se=_.loc.start.line===J.loc.start.line;Pe&&Se?c(J,_,g):c(ne,_)}return!0}return Ee.type==="BlockStatement"?(b(Ee,_),!0):Ee.type==="IfStatement"?(L(Ee.consequent,_),!0):ne.consequent===Ee?(i(Ee,_),!0):!1}function $(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me;return(ne==null?void 0:ne.type)!=="WhileStatement"||!Ee?!1:r(We,_,l)===")"?(o(J,_),!0):Ee.type==="BlockStatement"?(b(Ee,_),!0):ne.body===Ee?(i(Ee,_),!0):!1}function V(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;return(ne==null?void 0:ne.type)!=="TryStatement"&&(ne==null?void 0:ne.type)!=="CatchClause"||!Ee?!1:ne.type==="CatchClause"&&J?(o(J,_),!0):Ee.type==="BlockStatement"?(b(Ee,_),!0):Ee.type==="TryStatement"?(L(Ee.finalizer,_),!0):Ee.type==="CatchClause"?(L(Ee.body,_),!0):!1}function q(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;return I(J)&&(ne==null?void 0:ne.type)==="Identifier"?(i(J,_),!0):!1}function Y(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me,Be=J&&!u(We,l(J),F(_));return(!J||!Be)&&((ne==null?void 0:ne.type)==="ConditionalExpression"||(ne==null?void 0:ne.type)==="TSConditionalType")&&Ee?(i(Ee,_),!0):!1}function H(me){let{comment:_,precedingNode:J,enclosingNode:ne}=me;return k(ne)&&ne.shorthand&&ne.key===J&&ne.value.type==="AssignmentPattern"?(o(ne.value.left,_),!0):!1}var R=new Set(["ClassDeclaration","ClassExpression","DeclareClass","DeclareInterface","InterfaceDeclaration","TSInterfaceDeclaration"]);function Q(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;if(R.has(ne==null?void 0:ne.type)){if(m(ne.decorators)&&!(Ee&&Ee.type==="Decorator"))return o(t(ne.decorators),_),!0;if(ne.body&&Ee===ne.body)return b(ne.body,_),!0;if(Ee){if(ne.superClass&&Ee===ne.superClass&&J&&(J===ne.id||J===ne.typeParameters))return o(J,_),!0;for(let We of["implements","extends","mixins"])if(ne[We]&&Ee===ne[We][0])return J&&(J===ne.id||J===ne.typeParameters||J===ne.superClass)?o(J,_):c(ne,_,We),!0}}return!1}var ee=new Set(["ClassMethod","ClassProperty","PropertyDefinition","TSAbstractPropertyDefinition","TSAbstractMethodDefinition","TSDeclareMethod","MethodDefinition"]);function te(me){let{comment:_,precedingNode:J,enclosingNode:ne,text:Ee}=me;return ne&&J&&r(Ee,_,l)==="("&&(ne.type==="Property"||ne.type==="TSDeclareMethod"||ne.type==="TSAbstractMethodDefinition")&&J.type==="Identifier"&&ne.key===J&&r(Ee,J,l)!==":"||(J==null?void 0:J.type)==="Decorator"&&ee.has(ne==null?void 0:ne.type)?(o(J,_),!0):!1}var oe=new Set(["FunctionDeclaration","FunctionExpression","ClassMethod","MethodDefinition","ObjectMethod"]);function W(me){let{comment:_,precedingNode:J,enclosingNode:ne,text:Ee}=me;return r(Ee,_,l)!=="("?!1:J&&oe.has(ne==null?void 0:ne.type)?(o(J,_),!0):!1}function X(me){let{comment:_,enclosingNode:J,text:ne}=me;if((J==null?void 0:J.type)!=="ArrowFunctionExpression")return!1;let Ee=y(ne,_,l);return Ee!==!1&&ne.slice(Ee,Ee+2)==="=>"?(c(J,_),!0):!1}function ue(me){let{comment:_,enclosingNode:J,text:ne}=me;return r(ne,_,l)!==")"?!1:J&&(ye(J)&&d(J).length===0||A(J)&&S(J).length===0)?(c(J,_),!0):((J==null?void 0:J.type)==="MethodDefinition"||(J==null?void 0:J.type)==="TSAbstractMethodDefinition")&&d(J.value).length===0?(c(J.value,_),!0):!1}function De(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me;if((J==null?void 0:J.type)==="FunctionTypeParam"&&(ne==null?void 0:ne.type)==="FunctionTypeAnnotation"&&(Ee==null?void 0:Ee.type)!=="FunctionTypeParam"||((J==null?void 0:J.type)==="Identifier"||(J==null?void 0:J.type)==="AssignmentPattern")&&ne&&ye(ne)&&r(We,_,l)===")")return o(J,_),!0;if((ne==null?void 0:ne.type)==="FunctionDeclaration"&&(Ee==null?void 0:Ee.type)==="BlockStatement"){let Be=(()=>{let Pe=d(ne);if(Pe.length>0)return a(We,l(t(Pe)));let Se=a(We,l(ne.id));return Se!==!1&&a(We,Se+1)})();if(F(_)>Be)return b(Ee,_),!0}return!1}function ie(me){let{comment:_,enclosingNode:J}=me;return(J==null?void 0:J.type)==="LabeledStatement"?(i(J,_),!0):!1}function G(me){let{comment:_,enclosingNode:J}=me;return((J==null?void 0:J.type)==="ContinueStatement"||(J==null?void 0:J.type)==="BreakStatement")&&!J.label?(o(J,_),!0):!1}function z(me){let{comment:_,precedingNode:J,enclosingNode:ne}=me;return B(ne)&&J&&ne.callee===J&&ne.arguments.length>0?(i(ne.arguments[0],_),!0):!1}function U(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;return(ne==null?void 0:ne.type)==="UnionTypeAnnotation"||(ne==null?void 0:ne.type)==="TSUnionType"?(p(_)&&(Ee.prettierIgnore=!0,_.unignore=!0),J?(o(J,_),!0):!1):(((Ee==null?void 0:Ee.type)==="UnionTypeAnnotation"||(Ee==null?void 0:Ee.type)==="TSUnionType")&&p(_)&&(Ee.types[0].prettierIgnore=!0,_.unignore=!0),!1)}function le(me){let{comment:_,enclosingNode:J}=me;return k(J)?(i(J,_),!0):!1}function ge(me){let{comment:_,enclosingNode:J,followingNode:ne,ast:Ee,isLastComment:We}=me;return Ee&&Ee.body&&Ee.body.length===0?(We?c(Ee,_):i(Ee,_),!0):(J==null?void 0:J.type)==="Program"&&(J==null?void 0:J.body.length)===0&&!m(J.directives)?(We?c(J,_):i(J,_),!0):(ne==null?void 0:ne.type)==="Program"&&(ne==null?void 0:ne.body.length)===0&&(J==null?void 0:J.type)==="ModuleExpression"?(c(ne,_),!0):!1}function Ae(me){let{comment:_,enclosingNode:J}=me;return(J==null?void 0:J.type)==="ForInStatement"||(J==null?void 0:J.type)==="ForOfStatement"?(i(J,_),!0):!1}function Ne(me){let{comment:_,precedingNode:J,enclosingNode:ne,text:Ee}=me;if((ne==null?void 0:ne.type)==="ImportSpecifier"||(ne==null?void 0:ne.type)==="ExportSpecifier")return i(ne,_),!0;let We=(J==null?void 0:J.type)==="ImportSpecifier"&&(ne==null?void 0:ne.type)==="ImportDeclaration",Be=(J==null?void 0:J.type)==="ExportSpecifier"&&(ne==null?void 0:ne.type)==="ExportNamedDeclaration";return(We||Be)&&s(Ee,l(_))?(o(J,_),!0):!1}function ke(me){let{comment:_,enclosingNode:J}=me;return(J==null?void 0:J.type)==="AssignmentPattern"?(i(J,_),!0):!1}var ce=new Set(["VariableDeclarator","AssignmentExpression","TypeAlias","TSTypeAliasDeclaration"]),pe=new Set(["ObjectExpression","ArrayExpression","TemplateLiteral","TaggedTemplateExpression","ObjectTypeAnnotation","TSTypeLiteral"]);function de(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;return ce.has(J==null?void 0:J.type)&&ne&&(pe.has(ne.type)||E(_))?(i(ne,_),!0):!1}function ae(me){let{comment:_,enclosingNode:J,followingNode:ne,text:Ee}=me;return!ne&&((J==null?void 0:J.type)==="TSMethodSignature"||(J==null?void 0:J.type)==="TSDeclareFunction"||(J==null?void 0:J.type)==="TSAbstractMethodDefinition")&&r(Ee,_,l)===";"?(o(J,_),!0):!1}function ve(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;if(p(_)&&(J==null?void 0:J.type)==="TSMappedType"&&(ne==null?void 0:ne.type)==="TSTypeParameter"&&ne.constraint)return J.prettierIgnore=!0,_.unignore=!0,!0}function K(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;return(ne==null?void 0:ne.type)!=="TSMappedType"?!1:(Ee==null?void 0:Ee.type)==="TSTypeParameter"&&Ee.name?(i(Ee.name,_),!0):(J==null?void 0:J.type)==="TSTypeParameter"&&J.constraint?(o(J.constraint,_),!0):!1}function he(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;return!J||J.type!=="SwitchCase"||J.test?!1:(ne.type==="BlockStatement"&&P(_)?b(ne,_):c(J,_),!0)}function ye(me){return me.type==="ArrowFunctionExpression"||me.type==="FunctionExpression"||me.type==="FunctionDeclaration"||me.type==="ObjectMethod"||me.type==="ClassMethod"||me.type==="TSDeclareFunction"||me.type==="TSCallSignatureDeclaration"||me.type==="TSConstructSignatureDeclaration"||me.type==="TSMethodSignature"||me.type==="TSConstructorType"||me.type==="TSFunctionType"||me.type==="TSDeclareMethod"}function Ce(me,_){if((_.parser==="typescript"||_.parser==="flow"||_.parser==="acorn"||_.parser==="espree"||_.parser==="meriyah"||_.parser==="__babel_estree")&&me.type==="MethodDefinition"&&me.value&&me.value.type==="FunctionExpression"&&d(me.value).length===0&&!me.value.returnType&&!m(me.value.typeParameters)&&me.value.body)return[...me.decorators||[],me.key,me.value.body]}function Ie(me){return E(me)&&me.value[0]==="*"&&/@type\b/.test(me.value)}function Fe(me){let _=me.getValue(),J=me.getParentNode(),ne=Ee=>w(C(Ee,D.Leading))||w(C(Ee,D.Trailing));return(_&&(f(_)||h(_)||B(J)&&ne(_))||J&&(J.type==="JSXSpreadAttribute"||J.type==="JSXSpreadChild"||J.type==="UnionTypeAnnotation"||J.type==="TSUnionType"||(J.type==="ClassDeclaration"||J.type==="ClassExpression")&&J.superClass===_))&&(!T(me)||J.type==="UnionTypeAnnotation"||J.type==="TSUnionType")}n.exports={handleOwnLineComment:v,handleEndOfLineComment:N,handleRemainingComment:x,isTypeCastComment:Ie,getCommentChildNodes:Ce,willPrintOwnComments:Fe}}}),It=Z({"src/language-js/needs-parens.js"(e,n){"use strict";re();var t=it(),s=On(),{getFunctionParameters:a,getLeftSidePathName:r,hasFlowShorthandAnnotationComment:u,hasNakedLeftSide:i,hasNode:o,isBitwiseOperator:c,startsWithNoLookaheadToken:y,shouldFlatten:m,getPrecedence:d,isCallExpression:p,isMemberExpression:f,isObjectProperty:h}=Ke();function w(P,C){let D=P.getParentNode();if(!D)return!1;let g=P.getName(),F=P.getNode();if(C.__isInHtmlInterpolation&&!C.bracketSpacing&&B(F)&&I(P))return!0;if(T(F))return!1;if(C.parser!=="flow"&&u(P.getValue()))return!0;if(F.type==="Identifier")return!!(F.extra&&F.extra.parenthesized&&/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(F.name)||g==="left"&&F.name==="async"&&D.type==="ForOfStatement"&&!D.await);switch(D.type){case"ParenthesizedExpression":return!1;case"ClassDeclaration":case"ClassExpression":{if(g==="superClass"&&(F.type==="ArrowFunctionExpression"||F.type==="AssignmentExpression"||F.type==="AwaitExpression"||F.type==="BinaryExpression"||F.type==="ConditionalExpression"||F.type==="LogicalExpression"||F.type==="NewExpression"||F.type==="ObjectExpression"||F.type==="SequenceExpression"||F.type==="TaggedTemplateExpression"||F.type==="UnaryExpression"||F.type==="UpdateExpression"||F.type==="YieldExpression"||F.type==="TSNonNullExpression"))return!0;break}case"ExportDefaultDeclaration":return k(P,C)||F.type==="SequenceExpression";case"Decorator":{if(g==="expression"){let l=!1,E=!1,v=F;for(;v;)switch(v.type){case"MemberExpression":E=!0,v=v.object;break;case"CallExpression":if(E||l)return C.parser!=="typescript";l=!0,v=v.callee;break;case"Identifier":return!1;case"TaggedTemplateExpression":return C.parser!=="typescript";default:return!0}return!0}break}case"ExpressionStatement":{if(y(F,!0))return!0;break}case"ArrowFunctionExpression":{if(g==="body"&&F.type!=="SequenceExpression"&&y(F,!1))return!0;break}}switch(F.type){case"UpdateExpression":if(D.type==="UnaryExpression")return F.prefix&&(F.operator==="++"&&D.operator==="+"||F.operator==="--"&&D.operator==="-");case"UnaryExpression":switch(D.type){case"UnaryExpression":return F.operator===D.operator&&(F.operator==="+"||F.operator==="-");case"BindExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return g==="object";case"TaggedTemplateExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"BinaryExpression":return g==="left"&&D.operator==="**";case"TSNonNullExpression":return!0;default:return!1}case"BinaryExpression":{if(D.type==="UpdateExpression"||F.operator==="in"&&A(P))return!0;if(F.operator==="|>"&&F.extra&&F.extra.parenthesized){let l=P.getParentNode(1);if(l.type==="BinaryExpression"&&l.operator==="|>")return!0}}case"TSTypeAssertion":case"TSAsExpression":case"LogicalExpression":switch(D.type){case"TSAsExpression":return F.type!=="TSAsExpression";case"ConditionalExpression":return F.type==="TSAsExpression";case"CallExpression":case"NewExpression":case"OptionalCallExpression":return g==="callee";case"ClassExpression":case"ClassDeclaration":return g==="superClass";case"TSTypeAssertion":case"TaggedTemplateExpression":case"UnaryExpression":case"JSXSpreadAttribute":case"SpreadElement":case"SpreadProperty":case"BindExpression":case"AwaitExpression":case"TSNonNullExpression":case"UpdateExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return g==="object";case"AssignmentExpression":case"AssignmentPattern":return g==="left"&&(F.type==="TSTypeAssertion"||F.type==="TSAsExpression");case"LogicalExpression":if(F.type==="LogicalExpression")return D.operator!==F.operator;case"BinaryExpression":{let{operator:l,type:E}=F;if(!l&&E!=="TSTypeAssertion")return!0;let v=d(l),N=D.operator,x=d(N);return x>v||g==="right"&&x===v||x===v&&!m(N,l)?!0:x");default:return!1}case"TSConditionalType":if(g==="extendsType"&&D.type==="TSConditionalType")return!0;case"TSFunctionType":case"TSConstructorType":if(g==="checkType"&&D.type==="TSConditionalType")return!0;case"TSUnionType":case"TSIntersectionType":if((D.type==="TSUnionType"||D.type==="TSIntersectionType")&&D.types.length>1&&(!F.types||F.types.length>1))return!0;case"TSInferType":if(F.type==="TSInferType"&&D.type==="TSRestType")return!1;case"TSTypeOperator":return D.type==="TSArrayType"||D.type==="TSOptionalType"||D.type==="TSRestType"||g==="objectType"&&D.type==="TSIndexedAccessType"||D.type==="TSTypeOperator"||D.type==="TSTypeAnnotation"&&P.getParentNode(1).type.startsWith("TSJSDoc");case"ArrayTypeAnnotation":return D.type==="NullableTypeAnnotation";case"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return D.type==="ArrayTypeAnnotation"||D.type==="NullableTypeAnnotation"||D.type==="IntersectionTypeAnnotation"||D.type==="UnionTypeAnnotation"||g==="objectType"&&(D.type==="IndexedAccessType"||D.type==="OptionalIndexedAccessType");case"NullableTypeAnnotation":return D.type==="ArrayTypeAnnotation"||g==="objectType"&&(D.type==="IndexedAccessType"||D.type==="OptionalIndexedAccessType");case"FunctionTypeAnnotation":{let l=D.type==="NullableTypeAnnotation"?P.getParentNode(1):D;return l.type==="UnionTypeAnnotation"||l.type==="IntersectionTypeAnnotation"||l.type==="ArrayTypeAnnotation"||g==="objectType"&&(l.type==="IndexedAccessType"||l.type==="OptionalIndexedAccessType")||l.type==="NullableTypeAnnotation"||D.type==="FunctionTypeParam"&&D.name===null&&a(F).some(E=>E.typeAnnotation&&E.typeAnnotation.type==="NullableTypeAnnotation")}case"OptionalIndexedAccessType":return g==="objectType"&&D.type==="IndexedAccessType";case"TypeofTypeAnnotation":return g==="objectType"&&(D.type==="IndexedAccessType"||D.type==="OptionalIndexedAccessType");case"StringLiteral":case"NumericLiteral":case"Literal":if(typeof F.value=="string"&&D.type==="ExpressionStatement"&&!D.directive){let l=P.getParentNode(1);return l.type==="Program"||l.type==="BlockStatement"}return g==="object"&&D.type==="MemberExpression"&&typeof F.value=="number";case"AssignmentExpression":{let l=P.getParentNode(1);return g==="body"&&D.type==="ArrowFunctionExpression"?!0:g==="key"&&(D.type==="ClassProperty"||D.type==="PropertyDefinition")&&D.computed||(g==="init"||g==="update")&&D.type==="ForStatement"?!1:D.type==="ExpressionStatement"?F.left.type==="ObjectPattern":!(g==="key"&&D.type==="TSPropertySignature"||D.type==="AssignmentExpression"||D.type==="SequenceExpression"&&l&&l.type==="ForStatement"&&(l.init===D||l.update===D)||g==="value"&&D.type==="Property"&&l&&l.type==="ObjectPattern"&&l.properties.includes(D)||D.type==="NGChainedExpression")}case"ConditionalExpression":switch(D.type){case"TaggedTemplateExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":case"NGPipeExpression":case"ExportDefaultDeclaration":case"AwaitExpression":case"JSXSpreadAttribute":case"TSTypeAssertion":case"TypeCastExpression":case"TSAsExpression":case"TSNonNullExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"ConditionalExpression":return g==="test";case"MemberExpression":case"OptionalMemberExpression":return g==="object";default:return!1}case"FunctionExpression":switch(D.type){case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"TaggedTemplateExpression":return!0;default:return!1}case"ArrowFunctionExpression":switch(D.type){case"BinaryExpression":return D.operator!=="|>"||F.extra&&F.extra.parenthesized;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"MemberExpression":case"OptionalMemberExpression":return g==="object";case"TSAsExpression":case"TSNonNullExpression":case"BindExpression":case"TaggedTemplateExpression":case"UnaryExpression":case"LogicalExpression":case"AwaitExpression":case"TSTypeAssertion":return!0;case"ConditionalExpression":return g==="test";default:return!1}case"ClassExpression":if(s(F.decorators))return!0;switch(D.type){case"NewExpression":return g==="callee";default:return!1}case"OptionalMemberExpression":case"OptionalCallExpression":{let l=P.getParentNode(1);if(g==="object"&&D.type==="MemberExpression"||g==="callee"&&(D.type==="CallExpression"||D.type==="NewExpression")||D.type==="TSNonNullExpression"&&l.type==="MemberExpression"&&l.object===D)return!0}case"CallExpression":case"MemberExpression":case"TaggedTemplateExpression":case"TSNonNullExpression":if(g==="callee"&&(D.type==="BindExpression"||D.type==="NewExpression")){let l=F;for(;l;)switch(l.type){case"CallExpression":case"OptionalCallExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":case"BindExpression":l=l.object;break;case"TaggedTemplateExpression":l=l.tag;break;case"TSNonNullExpression":l=l.expression;break;default:return!1}}return!1;case"BindExpression":return g==="callee"&&(D.type==="BindExpression"||D.type==="NewExpression")||g==="object"&&f(D);case"NGPipeExpression":return!(D.type==="NGRoot"||D.type==="NGMicrosyntaxExpression"||D.type==="ObjectProperty"&&!(F.extra&&F.extra.parenthesized)||D.type==="ArrayExpression"||p(D)&&D.arguments[g]===F||g==="right"&&D.type==="NGPipeExpression"||g==="property"&&D.type==="MemberExpression"||D.type==="AssignmentExpression");case"JSXFragment":case"JSXElement":return g==="callee"||g==="left"&&D.type==="BinaryExpression"&&D.operator==="<"||D.type!=="ArrayExpression"&&D.type!=="ArrowFunctionExpression"&&D.type!=="AssignmentExpression"&&D.type!=="AssignmentPattern"&&D.type!=="BinaryExpression"&&D.type!=="NewExpression"&&D.type!=="ConditionalExpression"&&D.type!=="ExpressionStatement"&&D.type!=="JsExpressionRoot"&&D.type!=="JSXAttribute"&&D.type!=="JSXElement"&&D.type!=="JSXExpressionContainer"&&D.type!=="JSXFragment"&&D.type!=="LogicalExpression"&&!p(D)&&!h(D)&&D.type!=="ReturnStatement"&&D.type!=="ThrowStatement"&&D.type!=="TypeCastExpression"&&D.type!=="VariableDeclarator"&&D.type!=="YieldExpression";case"TypeAnnotation":return g==="returnType"&&D.type==="ArrowFunctionExpression"&&S(F)}return!1}function T(P){return P.type==="BlockStatement"||P.type==="BreakStatement"||P.type==="ClassBody"||P.type==="ClassDeclaration"||P.type==="ClassMethod"||P.type==="ClassProperty"||P.type==="PropertyDefinition"||P.type==="ClassPrivateProperty"||P.type==="ContinueStatement"||P.type==="DebuggerStatement"||P.type==="DeclareClass"||P.type==="DeclareExportAllDeclaration"||P.type==="DeclareExportDeclaration"||P.type==="DeclareFunction"||P.type==="DeclareInterface"||P.type==="DeclareModule"||P.type==="DeclareModuleExports"||P.type==="DeclareVariable"||P.type==="DoWhileStatement"||P.type==="EnumDeclaration"||P.type==="ExportAllDeclaration"||P.type==="ExportDefaultDeclaration"||P.type==="ExportNamedDeclaration"||P.type==="ExpressionStatement"||P.type==="ForInStatement"||P.type==="ForOfStatement"||P.type==="ForStatement"||P.type==="FunctionDeclaration"||P.type==="IfStatement"||P.type==="ImportDeclaration"||P.type==="InterfaceDeclaration"||P.type==="LabeledStatement"||P.type==="MethodDefinition"||P.type==="ReturnStatement"||P.type==="SwitchStatement"||P.type==="ThrowStatement"||P.type==="TryStatement"||P.type==="TSDeclareFunction"||P.type==="TSEnumDeclaration"||P.type==="TSImportEqualsDeclaration"||P.type==="TSInterfaceDeclaration"||P.type==="TSModuleDeclaration"||P.type==="TSNamespaceExportDeclaration"||P.type==="TypeAlias"||P.type==="VariableDeclaration"||P.type==="WhileStatement"||P.type==="WithStatement"}function A(P){let C=0,D=P.getValue();for(;D;){let g=P.getParentNode(C++);if(g&&g.type==="ForStatement"&&g.init===D)return!0;D=g}return!1}function S(P){return o(P,C=>C.type==="ObjectTypeAnnotation"&&o(C,D=>D.type==="FunctionTypeAnnotation"||void 0)||void 0)}function B(P){switch(P.type){case"ObjectExpression":return!0;default:return!1}}function I(P){let C=P.getValue(),D=P.getParentNode(),g=P.getName();switch(D.type){case"NGPipeExpression":if(typeof g=="number"&&D.arguments[g]===C&&D.arguments.length-1===g)return P.callParent(I);break;case"ObjectProperty":if(g==="value"){let F=P.getParentNode(1);return t(F.properties)===D}break;case"BinaryExpression":case"LogicalExpression":if(g==="right")return P.callParent(I);break;case"ConditionalExpression":if(g==="alternate")return P.callParent(I);break;case"UnaryExpression":if(D.prefix)return P.callParent(I);break}return!1}function k(P,C){let D=P.getValue(),g=P.getParentNode();return D.type==="FunctionExpression"||D.type==="ClassExpression"?g.type==="ExportDefaultDeclaration"||!w(P,C):!i(D)||g.type!=="ExportDefaultDeclaration"&&w(P,C)?!1:P.call(F=>k(F,C),...r(P,D))}n.exports=w}}),Qa=Z({"src/language-js/print-preprocess.js"(e,n){"use strict";re();function t(s,a){switch(a.parser){case"json":case"json5":case"json-stringify":case"__js_expression":case"__vue_expression":case"__vue_ts_expression":return Object.assign(Object.assign({},s),{},{type:a.parser.startsWith("__")?"JsExpressionRoot":"JsonRoot",node:s,comments:[],rootMarker:a.rootMarker});default:return s}}n.exports=t}}),Lm=Z({"src/language-js/print/html-binding.js"(e,n){"use strict";re();var{builders:{join:t,line:s,group:a,softline:r,indent:u}}=Oe();function i(c,y,m){let d=c.getValue();if(y.__onHtmlBindingRoot&&c.getName()===null&&y.__onHtmlBindingRoot(d,y),d.type==="File"){if(y.__isVueForBindingLeft)return c.call(p=>{let f=t([",",s],p.map(m,"params")),{params:h}=p.getValue();return h.length===1?f:["(",u([r,a(f)]),r,")"]},"program","body",0);if(y.__isVueBindings)return c.call(p=>t([",",s],p.map(m,"params")),"program","body",0)}}function o(c){switch(c.type){case"MemberExpression":switch(c.property.type){case"Identifier":case"NumericLiteral":case"StringLiteral":return o(c.object)}return!1;case"Identifier":return!0;default:return!1}}n.exports={isVueEventBindingExpression:o,printHtmlBinding:i}}}),$n=Z({"src/language-js/print/binaryish.js"(e,n){"use strict";re();var{printComments:t}=et(),{getLast:s}=Ue(),{builders:{join:a,line:r,softline:u,group:i,indent:o,align:c,ifBreak:y,indentIfBreak:m},utils:{cleanDoc:d,getDocParts:p,isConcat:f}}=Oe(),{hasLeadingOwnLineComment:h,isBinaryish:w,isJsxNode:T,shouldFlatten:A,hasComment:S,CommentCheckFlags:B,isCallExpression:I,isMemberExpression:k,isObjectProperty:P,isEnabledHackPipeline:C}=Ke(),D=0;function g(E,v,N){let x=E.getValue(),b=E.getParentNode(),L=E.getParentNode(1),M=x!==b.body&&(b.type==="IfStatement"||b.type==="WhileStatement"||b.type==="SwitchStatement"||b.type==="DoWhileStatement"),j=C(v)&&x.operator==="|>",$=F(E,N,v,!1,M);if(M)return $;if(j)return i($);if(I(b)&&b.callee===x||b.type==="UnaryExpression"||k(b)&&!b.computed)return i([o([u,...$]),u]);let V=b.type==="ReturnStatement"||b.type==="ThrowStatement"||b.type==="JSXExpressionContainer"&&L.type==="JSXAttribute"||x.operator!=="|"&&b.type==="JsExpressionRoot"||x.type!=="NGPipeExpression"&&(b.type==="NGRoot"&&v.parser==="__ng_binding"||b.type==="NGMicrosyntaxExpression"&&L.type==="NGMicrosyntax"&&L.body.length===1)||x===b.body&&b.type==="ArrowFunctionExpression"||x!==b.body&&b.type==="ForStatement"||b.type==="ConditionalExpression"&&L.type!=="ReturnStatement"&&L.type!=="ThrowStatement"&&!I(L)||b.type==="TemplateLiteral",q=b.type==="AssignmentExpression"||b.type==="VariableDeclarator"||b.type==="ClassProperty"||b.type==="PropertyDefinition"||b.type==="TSAbstractPropertyDefinition"||b.type==="ClassPrivateProperty"||P(b),Y=w(x.left)&&A(x.operator,x.left.operator);if(V||l(x)&&!Y||!l(x)&&q)return i($);if($.length===0)return"";let H=T(x.right),R=$.findIndex(X=>typeof X!="string"&&!Array.isArray(X)&&X.type==="group"),Q=$.slice(0,R===-1?1:R+1),ee=$.slice(Q.length,H?-1:void 0),te=Symbol("logicalChain-"+ ++D),oe=i([...Q,o(ee)],{id:te});if(!H)return oe;let W=s($);return i([oe,m(W,{groupId:te})])}function F(E,v,N,x,b){let L=E.getValue();if(!w(L))return[i(v())];let M=[];A(L.operator,L.left.operator)?M=E.call(ee=>F(ee,v,N,!0,b),"left"):M.push(i(v("left")));let j=l(L),$=(L.operator==="|>"||L.type==="NGPipeExpression"||L.operator==="|"&&N.parser==="__vue_expression")&&!h(N.originalText,L.right),V=L.type==="NGPipeExpression"?"|":L.operator,q=L.type==="NGPipeExpression"&&L.arguments.length>0?i(o([u,": ",a([u,":",y(" ")],E.map(v,"arguments").map(ee=>c(2,i(ee))))])):"",Y;if(j)Y=[V," ",v("right"),q];else{let te=C(N)&&V==="|>"?E.call(oe=>F(oe,v,N,!0,b),"right"):v("right");Y=[$?r:"",V,$?" ":r,te,q]}let H=E.getParentNode(),R=S(L.left,B.Trailing|B.Line),Q=R||!(b&&L.type==="LogicalExpression")&&H.type!==L.type&&L.left.type!==L.type&&L.right.type!==L.type;if(M.push($?"":" ",Q?i(Y,{shouldBreak:R}):Y),x&&S(L)){let ee=d(t(E,M,N));return f(ee)||ee.type==="fill"?p(ee):[ee]}return M}function l(E){return E.type!=="LogicalExpression"?!1:!!(E.right.type==="ObjectExpression"&&E.right.properties.length>0||E.right.type==="ArrayExpression"&&E.right.elements.length>0||T(E.right))}n.exports={printBinaryishExpression:g,shouldInlineLogicalExpression:l}}}),jm=Z({"src/language-js/print/angular.js"(e,n){"use strict";re();var{builders:{join:t,line:s,group:a}}=Oe(),{hasNode:r,hasComment:u,getComments:i}=Ke(),{printBinaryishExpression:o}=$n();function c(d,p,f){let h=d.getValue();if(!!h.type.startsWith("NG"))switch(h.type){case"NGRoot":return[f("node"),u(h.node)?" //"+i(h.node)[0].value.trimEnd():""];case"NGPipeExpression":return o(d,p,f);case"NGChainedExpression":return a(t([";",s],d.map(w=>m(w)?f():["(",f(),")"],"expressions")));case"NGEmptyExpression":return"";case"NGQuotedExpression":return[h.prefix,": ",h.value.trim()];case"NGMicrosyntax":return d.map((w,T)=>[T===0?"":y(w.getValue(),T,h)?" ":[";",s],f()],"body");case"NGMicrosyntaxKey":return/^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/i.test(h.name)?h.name:JSON.stringify(h.name);case"NGMicrosyntaxExpression":return[f("expression"),h.alias===null?"":[" as ",f("alias")]];case"NGMicrosyntaxKeyedExpression":{let w=d.getName(),T=d.getParentNode(),A=y(h,w,T)||(w===1&&(h.key.name==="then"||h.key.name==="else")||w===2&&h.key.name==="else"&&T.body[w-1].type==="NGMicrosyntaxKeyedExpression"&&T.body[w-1].key.name==="then")&&T.body[0].type==="NGMicrosyntaxExpression";return[f("key"),A?" ":": ",f("expression")]}case"NGMicrosyntaxLet":return["let ",f("key"),h.value===null?"":[" = ",f("value")]];case"NGMicrosyntaxAs":return[f("key")," as ",f("alias")];default:throw new Error("Unknown Angular node type: ".concat(JSON.stringify(h.type),"."))}}function y(d,p,f){return d.type==="NGMicrosyntaxKeyedExpression"&&d.key.name==="of"&&p===1&&f.body[0].type==="NGMicrosyntaxLet"&&f.body[0].value===null}function m(d){return r(d.getValue(),p=>{switch(p.type){case void 0:return!1;case"CallExpression":case"OptionalCallExpression":case"AssignmentExpression":return!0}})}n.exports={printAngular:c}}}),Om=Z({"src/language-js/print/jsx.js"(e,n){"use strict";re();var{printComments:t,printDanglingComments:s}=et(),{builders:{line:a,hardline:r,softline:u,group:i,indent:o,conditionalGroup:c,fill:y,ifBreak:m,lineSuffixBoundary:d,join:p},utils:{willBreak:f}}=Oe(),{getLast:h,getPreferredQuote:w}=Ue(),{isJsxNode:T,rawText:A,isLiteral:S,isCallExpression:B,isStringLiteral:I,isBinaryish:k,hasComment:P,CommentCheckFlags:C,hasNodeIgnoreComment:D}=Ke(),g=It(),{willPrintOwnComments:F}=Ya(),l=ie=>ie===""||ie===a||ie===r||ie===u;function E(ie,G,z){let U=ie.getValue();if(U.type==="JSXElement"&&W(U))return[z("openingElement"),z("closingElement")];let le=U.type==="JSXElement"?z("openingElement"):z("openingFragment"),ge=U.type==="JSXElement"?z("closingElement"):z("closingFragment");if(U.children.length===1&&U.children[0].type==="JSXExpressionContainer"&&(U.children[0].expression.type==="TemplateLiteral"||U.children[0].expression.type==="TaggedTemplateExpression"))return[le,...ie.map(z,"children"),ge];U.children=U.children.map(Fe=>ue(Fe)?{type:"JSXText",value:" ",raw:" "}:Fe);let Ae=U.children.some(T),Ne=U.children.filter(Fe=>Fe.type==="JSXExpressionContainer").length>1,ke=U.type==="JSXElement"&&U.openingElement.attributes.length>1,ce=f(le)||Ae||ke||Ne,pe=ie.getParentNode().rootMarker==="mdx",de=G.singleQuote?"{' '}":'{" "}',ae=pe?" ":m([de,u]," "),ve=U.openingElement&&U.openingElement.name&&U.openingElement.name.name==="fbt",K=v(ie,G,z,ae,ve),he=U.children.some(Fe=>X(Fe));for(let Fe=K.length-2;Fe>=0;Fe--){let me=K[Fe]===""&&K[Fe+1]==="",_=K[Fe]===r&&K[Fe+1]===""&&K[Fe+2]===r,J=(K[Fe]===u||K[Fe]===r)&&K[Fe+1]===""&&K[Fe+2]===ae,ne=K[Fe]===ae&&K[Fe+1]===""&&(K[Fe+2]===u||K[Fe+2]===r),Ee=K[Fe]===ae&&K[Fe+1]===""&&K[Fe+2]===ae,We=K[Fe]===u&&K[Fe+1]===""&&K[Fe+2]===r||K[Fe]===r&&K[Fe+1]===""&&K[Fe+2]===u;_&&he||me||J||Ee||We?K.splice(Fe,2):ne&&K.splice(Fe+1,2)}for(;K.length>0&&l(h(K));)K.pop();for(;K.length>1&&l(K[0])&&l(K[1]);)K.shift(),K.shift();let ye=[];for(let[Fe,me]of K.entries()){if(me===ae){if(Fe===1&&K[Fe-1]===""){if(K.length===2){ye.push(de);continue}ye.push([de,r]);continue}else if(Fe===K.length-1){ye.push(de);continue}else if(K[Fe-1]===""&&K[Fe-2]===r){ye.push(de);continue}}ye.push(me),f(me)&&(ce=!0)}let Ce=he?y(ye):i(ye,{shouldBreak:!0});if(pe)return Ce;let Ie=i([le,o([r,Ce]),r,ge]);return ce?Ie:c([i([le,...K,ge]),Ie])}function v(ie,G,z,U,le){let ge=[];return ie.each((Ae,Ne,ke)=>{let ce=Ae.getValue();if(S(ce)){let pe=A(ce);if(X(ce)){let de=pe.split(ee);if(de[0]===""){if(ge.push(""),de.shift(),/\n/.test(de[0])){let ve=ke[Ne+1];ge.push(x(le,de[1],ce,ve))}else ge.push(U);de.shift()}let ae;if(h(de)===""&&(de.pop(),ae=de.pop()),de.length===0)return;for(let[ve,K]of de.entries())ve%2===1?ge.push(a):ge.push(K);if(ae!==void 0)if(/\n/.test(ae)){let ve=ke[Ne+1];ge.push(x(le,h(ge),ce,ve))}else ge.push(U);else{let ve=ke[Ne+1];ge.push(N(le,h(ge),ce,ve))}}else/\n/.test(pe)?pe.match(/\n/g).length>1&&ge.push("",r):ge.push("",U)}else{let pe=z();ge.push(pe);let de=ke[Ne+1];if(de&&X(de)){let ve=oe(A(de)).split(ee)[0];ge.push(N(le,ve,ce,de))}else ge.push(r)}},"children"),ge}function N(ie,G,z,U){return ie?"":z.type==="JSXElement"&&!z.closingElement||U&&U.type==="JSXElement"&&!U.closingElement?G.length===1?u:r:u}function x(ie,G,z,U){return ie?r:G.length===1?z.type==="JSXElement"&&!z.closingElement||U&&U.type==="JSXElement"&&!U.closingElement?r:u:r}function b(ie,G,z){let U=ie.getParentNode();if(!U||{ArrayExpression:!0,JSXAttribute:!0,JSXElement:!0,JSXExpressionContainer:!0,JSXFragment:!0,ExpressionStatement:!0,CallExpression:!0,OptionalCallExpression:!0,ConditionalExpression:!0,JsExpressionRoot:!0}[U.type])return G;let ge=ie.match(void 0,Ne=>Ne.type==="ArrowFunctionExpression",B,Ne=>Ne.type==="JSXExpressionContainer"),Ae=g(ie,z);return i([Ae?"":m("("),o([u,G]),u,Ae?"":m(")")],{shouldBreak:ge})}function L(ie,G,z){let U=ie.getValue(),le=[];if(le.push(z("name")),U.value){let ge;if(I(U.value)){let Ne=A(U.value).slice(1,-1).replace(/'/g,"'").replace(/"/g,'"'),{escaped:ke,quote:ce,regex:pe}=w(Ne,G.jsxSingleQuote?"'":'"');Ne=Ne.replace(pe,ke),ge=[ce,Ne,ce]}else ge=z("value");le.push("=",ge)}return le}function M(ie,G,z){let U=ie.getValue(),le=(ge,Ae)=>ge.type==="JSXEmptyExpression"||!P(ge)&&(ge.type==="ArrayExpression"||ge.type==="ObjectExpression"||ge.type==="ArrowFunctionExpression"||ge.type==="AwaitExpression"&&(le(ge.argument,ge)||ge.argument.type==="JSXElement")||B(ge)||ge.type==="FunctionExpression"||ge.type==="TemplateLiteral"||ge.type==="TaggedTemplateExpression"||ge.type==="DoExpression"||T(Ae)&&(ge.type==="ConditionalExpression"||k(ge)));return le(U.expression,ie.getParentNode(0))?i(["{",z("expression"),d,"}"]):i(["{",o([u,z("expression")]),u,d,"}"])}function j(ie,G,z){let U=ie.getValue(),le=U.name&&P(U.name)||U.typeParameters&&P(U.typeParameters);if(U.selfClosing&&U.attributes.length===0&&!le)return["<",z("name"),z("typeParameters")," />"];if(U.attributes&&U.attributes.length===1&&U.attributes[0].value&&I(U.attributes[0].value)&&!U.attributes[0].value.value.includes(` +`)&&!le&&!P(U.attributes[0]))return i(["<",z("name"),z("typeParameters")," ",...ie.map(z,"attributes"),U.selfClosing?" />":">"]);let ge=U.attributes.length>0&&P(h(U.attributes),C.Trailing),Ae=U.attributes.length===0&&!le||(G.bracketSameLine||G.jsxBracketSameLine)&&(!le||U.attributes.length>0)&&!ge,Ne=U.attributes&&U.attributes.some(ce=>ce.value&&I(ce.value)&&ce.value.value.includes(` +`)),ke=G.singleAttributePerLine&&U.attributes.length>1?r:a;return i(["<",z("name"),z("typeParameters"),o(ie.map(()=>[ke,z()],"attributes")),U.selfClosing?a:Ae?">":u,U.selfClosing?"/>":Ae?"":">"],{shouldBreak:Ne})}function $(ie,G,z){let U=ie.getValue(),le=[];le.push(""),le}function V(ie,G){let z=ie.getValue(),U=P(z),le=P(z,C.Line),ge=z.type==="JSXOpeningFragment";return[ge?"<":""]}function q(ie,G,z){let U=t(ie,E(ie,G,z),G);return b(ie,U,G)}function Y(ie,G){let z=ie.getValue(),U=P(z,C.Line);return[s(ie,G,!U),U?r:""]}function H(ie,G,z){let U=ie.getValue();return["{",ie.call(le=>{let ge=["...",z()],Ae=le.getValue();return!P(Ae)||!F(le)?ge:[o([u,t(le,ge,G)]),u]},U.type==="JSXSpreadAttribute"?"argument":"expression"),"}"]}function R(ie,G,z){let U=ie.getValue();if(!!U.type.startsWith("JSX"))switch(U.type){case"JSXAttribute":return L(ie,G,z);case"JSXIdentifier":return String(U.name);case"JSXNamespacedName":return p(":",[z("namespace"),z("name")]);case"JSXMemberExpression":return p(".",[z("object"),z("property")]);case"JSXSpreadAttribute":return H(ie,G,z);case"JSXSpreadChild":return H(ie,G,z);case"JSXExpressionContainer":return M(ie,G,z);case"JSXFragment":case"JSXElement":return q(ie,G,z);case"JSXOpeningElement":return j(ie,G,z);case"JSXClosingElement":return $(ie,G,z);case"JSXOpeningFragment":case"JSXClosingFragment":return V(ie,G);case"JSXEmptyExpression":return Y(ie,G);case"JSXText":throw new Error("JSXTest should be handled by JSXElement");default:throw new Error("Unknown JSX node type: ".concat(JSON.stringify(U.type),"."))}}var Q=` +\r `,ee=new RegExp("(["+Q+"]+)"),te=new RegExp("[^"+Q+"]"),oe=ie=>ie.replace(new RegExp("(?:^"+ee.source+"|"+ee.source+"$)"),"");function W(ie){if(ie.children.length===0)return!0;if(ie.children.length>1)return!1;let G=ie.children[0];return S(G)&&!X(G)}function X(ie){return S(ie)&&(te.test(A(ie))||!/\n/.test(A(ie)))}function ue(ie){return ie.type==="JSXExpressionContainer"&&S(ie.expression)&&ie.expression.value===" "&&!P(ie.expression)}function De(ie){let G=ie.getValue(),z=ie.getParentNode();if(!z||!G||!T(G)||!T(z))return!1;let U=z.children.indexOf(G),le=null;for(let ge=U;ge>0;ge--){let Ae=z.children[ge-1];if(!(Ae.type==="JSXText"&&!X(Ae))){le=Ae;break}}return le&&le.type==="JSXExpressionContainer"&&le.expression.type==="JSXEmptyExpression"&&D(le.expression)}n.exports={hasJsxIgnoreComment:De,printJsx:R}}}),ct=Z({"src/language-js/print/misc.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{indent:s,join:a,line:r}}=Oe(),{isFlowAnnotationComment:u}=Ke();function i(h){let w=h.getValue();return!w.optional||w.type==="Identifier"&&w===h.getParentNode().key?"":w.type==="OptionalCallExpression"||w.type==="OptionalMemberExpression"&&w.computed?"?.":"?"}function o(h){return h.getValue().definite||h.match(void 0,(w,T)=>T==="id"&&w.type==="VariableDeclarator"&&w.definite)?"!":""}function c(h,w,T){let A=h.getValue();return A.typeArguments?T("typeArguments"):A.typeParameters?T("typeParameters"):""}function y(h,w,T){let A=h.getValue();if(!A.typeAnnotation)return"";let S=h.getParentNode(),B=S.type==="DeclareFunction"&&S.id===A;return u(w.originalText,A.typeAnnotation)?[" /*: ",T("typeAnnotation")," */"]:[B?"":": ",T("typeAnnotation")]}function m(h,w,T){return["::",T("callee")]}function d(h,w,T){let A=h.getValue();return t(A.modifiers)?[a(" ",h.map(T,"modifiers"))," "]:""}function p(h,w,T){return h.type==="EmptyStatement"?";":h.type==="BlockStatement"||T?[" ",w]:s([r,w])}function f(h,w,T){return["...",T("argument"),y(h,w,T)]}n.exports={printOptionalToken:i,printDefiniteToken:o,printFunctionTypeParameters:c,printBindExpressionCallee:m,printTypeScriptModifiers:d,printTypeAnnotation:y,printRestSpread:f,adjustClause:p}}}),zt=Z({"src/language-js/print/array.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{builders:{line:s,softline:a,hardline:r,group:u,indent:i,ifBreak:o,fill:c}}=Oe(),{getLast:y,hasNewline:m}=Ue(),{shouldPrintComma:d,hasComment:p,CommentCheckFlags:f,isNextLineEmpty:h,isNumericLiteral:w,isSignedNumericLiteral:T}=Ke(),{locStart:A}=st(),{printOptionalToken:S,printTypeAnnotation:B}=ct();function I(D,g,F){let l=D.getValue(),E=[],v=l.type==="TupleExpression"?"#[":"[",N="]";if(l.elements.length===0)p(l,f.Dangling)?E.push(u([v,t(D,g),a,N])):E.push(v,N);else{let x=y(l.elements),b=!(x&&x.type==="RestElement"),L=x===null,M=Symbol("array"),j=!g.__inJestEach&&l.elements.length>1&&l.elements.every((q,Y,H)=>{let R=q&&q.type;if(R!=="ArrayExpression"&&R!=="ObjectExpression")return!1;let Q=H[Y+1];if(Q&&R!==Q.type)return!1;let ee=R==="ArrayExpression"?"elements":"properties";return q[ee]&&q[ee].length>1}),$=k(l,g),V=b?L?",":d(g)?$?o(",","",{groupId:M}):o(","):"":"";E.push(u([v,i([a,$?C(D,g,F,V):[P(D,g,"elements",F),V],t(D,g,!0)]),a,N],{shouldBreak:j,id:M}))}return E.push(S(D),B(D,g,F)),E}function k(D,g){return D.elements.length>1&&D.elements.every(F=>F&&(w(F)||T(F)&&!p(F.argument))&&!p(F,f.Trailing|f.Line,l=>!m(g.originalText,A(l),{backwards:!0})))}function P(D,g,F,l){let E=[],v=[];return D.each(N=>{E.push(v,u(l())),v=[",",s],N.getValue()&&h(N.getValue(),g)&&v.push(a)},F),E}function C(D,g,F,l){let E=[];return D.each((v,N,x)=>{let b=N===x.length-1;E.push([F(),b?l:","]),b||E.push(h(v.getValue(),g)?[r,r]:p(x[N+1],f.Leading|f.Line)?r:s)},"elements"),c(E)}n.exports={printArray:I,printArrayItems:P,isConciselyPrintedArray:k}}}),Za=Z({"src/language-js/print/call-arguments.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{getLast:s,getPenultimate:a}=Ue(),{getFunctionParameters:r,hasComment:u,CommentCheckFlags:i,isFunctionCompositionArgs:o,isJsxNode:c,isLongCurriedCallExpression:y,shouldPrintComma:m,getCallArguments:d,iterateCallArgumentsPath:p,isNextLineEmpty:f,isCallExpression:h,isStringLiteral:w,isObjectProperty:T}=Ke(),{builders:{line:A,hardline:S,softline:B,group:I,indent:k,conditionalGroup:P,ifBreak:C,breakParent:D},utils:{willBreak:g}}=Oe(),{ArgExpansionBailout:F}=Jt(),{isConciselyPrintedArray:l}=zt();function E(j,$,V){let q=j.getValue(),Y=q.type==="ImportExpression",H=d(q);if(H.length===0)return["(",t(j,$,!0),")"];if(b(H))return["(",V(["arguments",0]),", ",V(["arguments",1]),")"];let R=!1,Q=!1,ee=H.length-1,te=[];p(j,(ie,G)=>{let z=ie.getNode(),U=[V()];G===ee||(f(z,$)?(G===0&&(Q=!0),R=!0,U.push(",",S,S)):U.push(",",A)),te.push(U)});let oe=!(Y||q.callee&&q.callee.type==="Import")&&m($,"all")?",":"";function W(){return I(["(",k([A,...te]),oe,A,")"],{shouldBreak:!0})}if(R||j.getParentNode().type!=="Decorator"&&o(H))return W();let X=x(H),ue=N(H,$);if(X||ue){if(X?te.slice(1).some(g):te.slice(0,-1).some(g))return W();let ie=[];try{j.try(()=>{p(j,(G,z)=>{X&&z===0&&(ie=[[V([],{expandFirstArg:!0}),te.length>1?",":"",Q?S:A,Q?S:""],...te.slice(1)]),ue&&z===ee&&(ie=[...te.slice(0,-1),V([],{expandLastArg:!0})])})})}catch(G){if(G instanceof F)return W();throw G}return[te.some(g)?D:"",P([["(",...ie,")"],X?["(",I(ie[0],{shouldBreak:!0}),...ie.slice(1),")"]:["(",...te.slice(0,-1),I(s(ie),{shouldBreak:!0}),")"],W()])]}let De=["(",k([B,...te]),C(oe),B,")"];return y(j)?De:I(De,{shouldBreak:te.some(g)||R})}function v(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return j.type==="ObjectExpression"&&(j.properties.length>0||u(j))||j.type==="ArrayExpression"&&(j.elements.length>0||u(j))||j.type==="TSTypeAssertion"&&v(j.expression)||j.type==="TSAsExpression"&&v(j.expression)||j.type==="FunctionExpression"||j.type==="ArrowFunctionExpression"&&(!j.returnType||!j.returnType.typeAnnotation||j.returnType.typeAnnotation.type!=="TSTypeReference"||L(j.body))&&(j.body.type==="BlockStatement"||j.body.type==="ArrowFunctionExpression"&&v(j.body,!0)||j.body.type==="ObjectExpression"||j.body.type==="ArrayExpression"||!$&&(h(j.body)||j.body.type==="ConditionalExpression")||c(j.body))||j.type==="DoExpression"||j.type==="ModuleExpression"}function N(j,$){let V=s(j),q=a(j);return!u(V,i.Leading)&&!u(V,i.Trailing)&&v(V)&&(!q||q.type!==V.type)&&(j.length!==2||q.type!=="ArrowFunctionExpression"||V.type!=="ArrayExpression")&&!(j.length>1&&V.type==="ArrayExpression"&&l(V,$))}function x(j){if(j.length!==2)return!1;let[$,V]=j;return $.type==="ModuleExpression"&&M(V)?!0:!u($)&&($.type==="FunctionExpression"||$.type==="ArrowFunctionExpression"&&$.body.type==="BlockStatement")&&V.type!=="FunctionExpression"&&V.type!=="ArrowFunctionExpression"&&V.type!=="ConditionalExpression"&&!v(V)}function b(j){return j.length===2&&j[0].type==="ArrowFunctionExpression"&&r(j[0]).length===0&&j[0].body.type==="BlockStatement"&&j[1].type==="ArrayExpression"&&!j.some($=>u($))}function L(j){return j.type==="BlockStatement"&&(j.body.some($=>$.type!=="EmptyStatement")||u(j,i.Dangling))}function M(j){return j.type==="ObjectExpression"&&j.properties.length===1&&T(j.properties[0])&&j.properties[0].key.type==="Identifier"&&j.properties[0].key.name==="type"&&w(j.properties[0].value)&&j.properties[0].value.value==="module"}n.exports=E}}),eo=Z({"src/language-js/print/member.js"(e,n){"use strict";re();var{builders:{softline:t,group:s,indent:a,label:r}}=Oe(),{isNumericLiteral:u,isMemberExpression:i,isCallExpression:o}=Ke(),{printOptionalToken:c}=ct();function y(d,p,f){let h=d.getValue(),w=d.getParentNode(),T,A=0;do T=d.getParentNode(A),A++;while(T&&(i(T)||T.type==="TSNonNullExpression"));let S=f("object"),B=m(d,p,f),I=T&&(T.type==="NewExpression"||T.type==="BindExpression"||T.type==="AssignmentExpression"&&T.left.type!=="Identifier")||h.computed||h.object.type==="Identifier"&&h.property.type==="Identifier"&&!i(w)||(w.type==="AssignmentExpression"||w.type==="VariableDeclarator")&&(o(h.object)&&h.object.arguments.length>0||h.object.type==="TSNonNullExpression"&&o(h.object.expression)&&h.object.expression.arguments.length>0||S.label==="member-chain");return r(S.label==="member-chain"?"member-chain":"member",[S,I?B:s(a([t,B]))])}function m(d,p,f){let h=f("property"),w=d.getValue(),T=c(d);return w.computed?!w.property||u(w.property)?[T,"[",h,"]"]:s([T,"[",a([t,h]),t,"]"]):[T,".",h]}n.exports={printMemberExpression:y,printMemberLookup:m}}}),qm=Z({"src/language-js/print/member-chain.js"(e,n){"use strict";re();var{printComments:t}=et(),{getLast:s,isNextLineEmptyAfterIndex:a,getNextNonSpaceNonCommentCharacterIndex:r}=Ue(),u=It(),{isCallExpression:i,isMemberExpression:o,isFunctionOrArrowExpression:c,isLongCurriedCallExpression:y,isMemberish:m,isNumericLiteral:d,isSimpleCallArgument:p,hasComment:f,CommentCheckFlags:h,isNextLineEmpty:w}=Ke(),{locEnd:T}=st(),{builders:{join:A,hardline:S,group:B,indent:I,conditionalGroup:k,breakParent:P,label:C},utils:{willBreak:D}}=Oe(),g=Za(),{printMemberLookup:F}=eo(),{printOptionalToken:l,printFunctionTypeParameters:E,printBindExpressionCallee:v}=ct();function N(x,b,L){let M=x.getParentNode(),j=!M||M.type==="ExpressionStatement",$=[];function V(de){let{originalText:ae}=b,ve=r(ae,de,T);return ae.charAt(ve)===")"?ve!==!1&&a(ae,ve+1):w(de,b)}function q(de){let ae=de.getValue();i(ae)&&(m(ae.callee)||i(ae.callee))?($.unshift({node:ae,printed:[t(de,[l(de),E(de,b,L),g(de,b,L)],b),V(ae)?S:""]}),de.call(ve=>q(ve),"callee")):m(ae)?($.unshift({node:ae,needsParens:u(de,b),printed:t(de,o(ae)?F(de,b,L):v(de,b,L),b)}),de.call(ve=>q(ve),"object")):ae.type==="TSNonNullExpression"?($.unshift({node:ae,printed:t(de,"!",b)}),de.call(ve=>q(ve),"expression")):$.unshift({node:ae,printed:L()})}let Y=x.getValue();$.unshift({node:Y,printed:[l(x),E(x,b,L),g(x,b,L)]}),Y.callee&&x.call(de=>q(de),"callee");let H=[],R=[$[0]],Q=1;for(;Q<$.length&&($[Q].node.type==="TSNonNullExpression"||i($[Q].node)||o($[Q].node)&&$[Q].node.computed&&d($[Q].node.property));++Q)R.push($[Q]);if(!i($[0].node))for(;Q+1<$.length&&(m($[Q].node)&&m($[Q+1].node));++Q)R.push($[Q]);H.push(R),R=[];let ee=!1;for(;Q<$.length;++Q){if(ee&&m($[Q].node)){if($[Q].node.computed&&d($[Q].node.property)){R.push($[Q]);continue}H.push(R),R=[],ee=!1}(i($[Q].node)||$[Q].node.type==="ImportExpression")&&(ee=!0),R.push($[Q]),f($[Q].node,h.Trailing)&&(H.push(R),R=[],ee=!1)}R.length>0&&H.push(R);function te(de){return/^[A-Z]|^[$_]+$/.test(de)}function oe(de){return de.length<=b.tabWidth}function W(de){let ae=de[1].length>0&&de[1][0].node.computed;if(de[0].length===1){let K=de[0][0].node;return K.type==="ThisExpression"||K.type==="Identifier"&&(te(K.name)||j&&oe(K.name)||ae)}let ve=s(de[0]).node;return o(ve)&&ve.property.type==="Identifier"&&(te(ve.property.name)||ae)}let X=H.length>=2&&!f(H[1][0].node)&&W(H);function ue(de){let ae=de.map(ve=>ve.printed);return de.length>0&&s(de).needsParens?["(",...ae,")"]:ae}function De(de){return de.length===0?"":I(B([S,A(S,de.map(ue))]))}let ie=H.map(ue),G=ie,z=X?3:2,U=H.flat(),le=U.slice(1,-1).some(de=>f(de.node,h.Leading))||U.slice(0,-1).some(de=>f(de.node,h.Trailing))||H[z]&&f(H[z][0].node,h.Leading);if(H.length<=z&&!le)return y(x)?G:B(G);let ge=s(H[X?1:0]).node,Ae=!i(ge)&&V(ge),Ne=[ue(H[0]),X?H.slice(1,2).map(ue):"",Ae?S:"",De(H.slice(X?2:1))],ke=$.map(de=>{let{node:ae}=de;return ae}).filter(i);function ce(){let de=s(s(H)).node,ae=s(ie);return i(de)&&D(ae)&&ke.slice(0,-1).some(ve=>ve.arguments.some(c))}let pe;return le||ke.length>2&&ke.some(de=>!de.arguments.every(ae=>p(ae,0)))||ie.slice(0,-1).some(D)||ce()?pe=B(Ne):pe=[D(G)||Ae?P:"",k([G,Ne])],C("member-chain",pe)}n.exports=N}}),to=Z({"src/language-js/print/call-expression.js"(e,n){"use strict";re();var{builders:{join:t,group:s}}=Oe(),a=It(),{getCallArguments:r,hasFlowAnnotationComment:u,isCallExpression:i,isMemberish:o,isStringLiteral:c,isTemplateOnItsOwnLine:y,isTestCall:m,iterateCallArgumentsPath:d}=Ke(),p=qm(),f=Za(),{printOptionalToken:h,printFunctionTypeParameters:w}=ct();function T(S,B,I){let k=S.getValue(),P=S.getParentNode(),C=k.type==="NewExpression",D=k.type==="ImportExpression",g=h(S),F=r(k);if(F.length>0&&(!D&&!C&&A(k,P)||F.length===1&&y(F[0],B.originalText)||!C&&m(k,P))){let v=[];return d(S,()=>{v.push(I())}),[C?"new ":"",I("callee"),g,w(S,B,I),"(",t(", ",v),")"]}let l=(B.parser==="babel"||B.parser==="babel-flow")&&k.callee&&k.callee.type==="Identifier"&&u(k.callee.trailingComments);if(l&&(k.callee.trailingComments[0].printed=!0),!D&&!C&&o(k.callee)&&!S.call(v=>a(v,B),"callee"))return p(S,B,I);let E=[C?"new ":"",D?"import":I("callee"),g,l?"/*:: ".concat(k.callee.trailingComments[0].value.slice(2).trim()," */"):"",w(S,B,I),f(S,B,I)];return D||i(k.callee)?s(E):E}function A(S,B){if(S.callee.type!=="Identifier")return!1;if(S.callee.name==="require")return!0;if(S.callee.name==="define"){let I=r(S);return B.type==="ExpressionStatement"&&(I.length===1||I.length===2&&I[0].type==="ArrayExpression"||I.length===3&&c(I[0])&&I[1].type==="ArrayExpression")}return!1}n.exports={printCallExpression:T}}}),Xt=Z({"src/language-js/print/assignment.js"(e,n){"use strict";re();var{isNonEmptyArray:t,getStringWidth:s}=Ue(),{builders:{line:a,group:r,indent:u,indentIfBreak:i,lineSuffixBoundary:o},utils:{cleanDoc:c,willBreak:y,canBreak:m}}=Oe(),{hasLeadingOwnLineComment:d,isBinaryish:p,isStringLiteral:f,isLiteral:h,isNumericLiteral:w,isCallExpression:T,isMemberExpression:A,getCallArguments:S,rawText:B,hasComment:I,isSignedNumericLiteral:k,isObjectProperty:P}=Ke(),{shouldInlineLogicalExpression:C}=$n(),{printCallExpression:D}=to();function g(W,X,ue,De,ie,G){let z=E(W,X,ue,De,G),U=ue(G,{assignmentLayout:z});switch(z){case"break-after-operator":return r([r(De),ie,r(u([a,U]))]);case"never-break-after-operator":return r([r(De),ie," ",U]);case"fluid":{let le=Symbol("assignment");return r([r(De),ie,r(u(a),{id:le}),o,i(U,{groupId:le})])}case"break-lhs":return r([De,ie," ",r(U)]);case"chain":return[r(De),ie,a,U];case"chain-tail":return[r(De),ie,u([a,U])];case"chain-tail-arrow-chain":return[r(De),ie,U];case"only-left":return De}}function F(W,X,ue){let De=W.getValue();return g(W,X,ue,ue("left"),[" ",De.operator],"right")}function l(W,X,ue){return g(W,X,ue,ue("id")," =","init")}function E(W,X,ue,De,ie){let G=W.getValue(),z=G[ie];if(!z)return"only-left";let U=!x(z);if(W.match(x,b,Ne=>!U||Ne.type!=="ExpressionStatement"&&Ne.type!=="VariableDeclaration"))return U?z.type==="ArrowFunctionExpression"&&z.body.type==="ArrowFunctionExpression"?"chain-tail-arrow-chain":"chain-tail":"chain";if(!U&&x(z.right)||d(X.originalText,z))return"break-after-operator";if(z.type==="CallExpression"&&z.callee.name==="require"||X.parser==="json5"||X.parser==="json")return"never-break-after-operator";if(N(G)||L(G)||$(G)||V(G)&&m(De))return"break-lhs";let Ae=ee(G,De,X);return W.call(()=>v(W,X,ue,Ae),ie)?"break-after-operator":Ae||z.type==="TemplateLiteral"||z.type==="TaggedTemplateExpression"||z.type==="BooleanLiteral"||w(z)||z.type==="ClassExpression"?"never-break-after-operator":"fluid"}function v(W,X,ue,De){let ie=W.getValue();if(p(ie)&&!C(ie))return!0;switch(ie.type){case"StringLiteralTypeAnnotation":case"SequenceExpression":return!0;case"ConditionalExpression":{let{test:U}=ie;return p(U)&&!C(U)}case"ClassExpression":return t(ie.decorators)}if(De)return!1;let G=ie,z=[];for(;;)if(G.type==="UnaryExpression")G=G.argument,z.push("argument");else if(G.type==="TSNonNullExpression")G=G.expression,z.push("expression");else break;return!!(f(G)||W.call(()=>H(W,X,ue),...z))}function N(W){if(b(W)){let X=W.left||W.id;return X.type==="ObjectPattern"&&X.properties.length>2&&X.properties.some(ue=>P(ue)&&(!ue.shorthand||ue.value&&ue.value.type==="AssignmentPattern"))}return!1}function x(W){return W.type==="AssignmentExpression"}function b(W){return x(W)||W.type==="VariableDeclarator"}function L(W){let X=M(W);if(t(X)){let ue=W.type==="TSTypeAliasDeclaration"?"constraint":"bound";if(X.length>1&&X.some(De=>De[ue]||De.default))return!0}return!1}function M(W){return j(W)&&W.typeParameters&&W.typeParameters.params?W.typeParameters.params:null}function j(W){return W.type==="TSTypeAliasDeclaration"||W.type==="TypeAlias"}function $(W){if(W.type!=="VariableDeclarator")return!1;let{typeAnnotation:X}=W.id;if(!X||!X.typeAnnotation)return!1;let ue=q(X.typeAnnotation);return t(ue)&&ue.length>1&&ue.some(De=>t(q(De))||De.type==="TSConditionalType")}function V(W){return W.type==="VariableDeclarator"&&W.init&&W.init.type==="ArrowFunctionExpression"}function q(W){return Y(W)&&W.typeParameters&&W.typeParameters.params?W.typeParameters.params:null}function Y(W){return W.type==="TSTypeReference"||W.type==="GenericTypeAnnotation"}function H(W,X,ue){let De=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,ie=W.getValue(),G=()=>H(W,X,ue,!0);if(ie.type==="TSNonNullExpression")return W.call(G,"expression");if(T(ie)){if(D(W,X,ue).label==="member-chain")return!1;let U=S(ie);return!(U.length===0||U.length===1&&Q(U[0],X))||te(ie,ue)?!1:W.call(G,"callee")}return A(ie)?W.call(G,"object"):De&&(ie.type==="Identifier"||ie.type==="ThisExpression")}var R=.25;function Q(W,X){let{printWidth:ue}=X;if(I(W))return!1;let De=ue*R;if(W.type==="ThisExpression"||W.type==="Identifier"&&W.name.length<=De||k(W)&&!I(W.argument))return!0;let ie=W.type==="Literal"&&"regex"in W&&W.regex.pattern||W.type==="RegExpLiteral"&&W.pattern;return ie?ie.length<=De:f(W)?B(W).length<=De:W.type==="TemplateLiteral"?W.expressions.length===0&&W.quasis[0].value.raw.length<=De&&!W.quasis[0].value.raw.includes(` +`):h(W)}function ee(W,X,ue){if(!P(W))return!1;X=c(X);let De=3;return typeof X=="string"&&s(X)1)return!0;if(ue.length===1){let ie=ue[0];if(ie.type==="TSUnionType"||ie.type==="UnionTypeAnnotation"||ie.type==="TSIntersectionType"||ie.type==="IntersectionTypeAnnotation"||ie.type==="TSTypeLiteral"||ie.type==="ObjectTypeAnnotation")return!0}let De=W.typeParameters?"typeParameters":"typeArguments";if(y(X(De)))return!0}return!1}function oe(W){return W.typeParameters&&W.typeParameters.params||W.typeArguments&&W.typeArguments.params}n.exports={printVariableDeclarator:l,printAssignmentExpression:F,printAssignment:g,isArrowFunctionVariableDeclarator:V}}}),wr=Z({"src/language-js/print/function-parameters.js"(e,n){"use strict";re();var{getNextNonSpaceNonCommentCharacter:t}=Ue(),{printDanglingComments:s}=et(),{builders:{line:a,hardline:r,softline:u,group:i,indent:o,ifBreak:c},utils:{removeLines:y,willBreak:m}}=Oe(),{getFunctionParameters:d,iterateFunctionParametersPath:p,isSimpleType:f,isTestCall:h,isTypeAnnotationAFunction:w,isObjectType:T,isObjectTypePropertyAFunction:A,hasRestParameter:S,shouldPrintComma:B,hasComment:I,isNextLineEmpty:k}=Ke(),{locEnd:P}=st(),{ArgExpansionBailout:C}=Jt(),{printFunctionTypeParameters:D}=ct();function g(v,N,x,b,L){let M=v.getValue(),j=d(M),$=L?D(v,x,N):"";if(j.length===0)return[$,"(",s(v,x,!0,ee=>t(x.originalText,ee,P)===")"),")"];let V=v.getParentNode(),q=h(V),Y=F(M),H=[];if(p(v,(ee,te)=>{let oe=te===j.length-1;oe&&M.rest&&H.push("..."),H.push(N()),!oe&&(H.push(","),q||Y?H.push(" "):k(j[te],x)?H.push(r,r):H.push(a))}),b){if(m($)||m(H))throw new C;return i([y($),"(",y(H),")"])}let R=j.every(ee=>!ee.decorators);return Y&&R?[$,"(",...H,")"]:q?[$,"(",...H,")"]:(A(V)||w(V)||V.type==="TypeAlias"||V.type==="UnionTypeAnnotation"||V.type==="TSUnionType"||V.type==="IntersectionTypeAnnotation"||V.type==="FunctionTypeAnnotation"&&V.returnType===M)&&j.length===1&&j[0].name===null&&M.this!==j[0]&&j[0].typeAnnotation&&M.typeParameters===null&&f(j[0].typeAnnotation)&&!M.rest?x.arrowParens==="always"?["(",...H,")"]:H:[$,"(",o([u,...H]),c(!S(M)&&B(x,"all")?",":""),u,")"]}function F(v){if(!v)return!1;let N=d(v);if(N.length!==1)return!1;let[x]=N;return!I(x)&&(x.type==="ObjectPattern"||x.type==="ArrayPattern"||x.type==="Identifier"&&x.typeAnnotation&&(x.typeAnnotation.type==="TypeAnnotation"||x.typeAnnotation.type==="TSTypeAnnotation")&&T(x.typeAnnotation.typeAnnotation)||x.type==="FunctionTypeParam"&&T(x.typeAnnotation)||x.type==="AssignmentPattern"&&(x.left.type==="ObjectPattern"||x.left.type==="ArrayPattern")&&(x.right.type==="Identifier"||x.right.type==="ObjectExpression"&&x.right.properties.length===0||x.right.type==="ArrayExpression"&&x.right.elements.length===0))}function l(v){let N;return v.returnType?(N=v.returnType,N.typeAnnotation&&(N=N.typeAnnotation)):v.typeAnnotation&&(N=v.typeAnnotation),N}function E(v,N){let x=l(v);if(!x)return!1;let b=v.typeParameters&&v.typeParameters.params;if(b){if(b.length>1)return!1;if(b.length===1){let L=b[0];if(L.constraint||L.default)return!1}}return d(v).length===1&&(T(x)||m(N))}n.exports={printFunctionParameters:g,shouldHugFunctionParameters:F,shouldGroupFunctionParameters:E}}}),_r=Z({"src/language-js/print/type-annotation.js"(e,n){"use strict";re();var{printComments:t,printDanglingComments:s}=et(),{isNonEmptyArray:a}=Ue(),{builders:{group:r,join:u,line:i,softline:o,indent:c,align:y,ifBreak:m}}=Oe(),d=It(),{locStart:p}=st(),{isSimpleType:f,isObjectType:h,hasLeadingOwnLineComment:w,isObjectTypePropertyAFunction:T,shouldPrintComma:A}=Ke(),{printAssignment:S}=Xt(),{printFunctionParameters:B,shouldGroupFunctionParameters:I}=wr(),{printArrayItems:k}=zt();function P(x){if(f(x)||h(x))return!0;if(x.type==="UnionTypeAnnotation"||x.type==="TSUnionType"){let b=x.types.filter(M=>M.type==="VoidTypeAnnotation"||M.type==="TSVoidKeyword"||M.type==="NullLiteralTypeAnnotation"||M.type==="TSNullKeyword").length,L=x.types.some(M=>M.type==="ObjectTypeAnnotation"||M.type==="TSTypeLiteral"||M.type==="GenericTypeAnnotation"||M.type==="TSTypeReference");if(x.types.length-1===b&&L)return!0}return!1}function C(x,b,L){let M=b.semi?";":"",j=x.getValue(),$=[];return $.push("opaque type ",L("id"),L("typeParameters")),j.supertype&&$.push(": ",L("supertype")),j.impltype&&$.push(" = ",L("impltype")),$.push(M),$}function D(x,b,L){let M=b.semi?";":"",j=x.getValue(),$=[];j.declare&&$.push("declare "),$.push("type ",L("id"),L("typeParameters"));let V=j.type==="TSTypeAliasDeclaration"?"typeAnnotation":"right";return[S(x,b,L,$," =",V),M]}function g(x,b,L){let M=x.getValue(),j=x.map(L,"types"),$=[],V=!1;for(let q=0;q1&&(V=!0),$.push(" & ",q>1?c(j[q]):j[q]));return r($)}function F(x,b,L){let M=x.getValue(),j=x.getParentNode(),$=j.type!=="TypeParameterInstantiation"&&j.type!=="TSTypeParameterInstantiation"&&j.type!=="GenericTypeAnnotation"&&j.type!=="TSTypeReference"&&j.type!=="TSTypeAssertion"&&j.type!=="TupleTypeAnnotation"&&j.type!=="TSTupleType"&&!(j.type==="FunctionTypeParam"&&!j.name&&x.getParentNode(1).this!==j)&&!((j.type==="TypeAlias"||j.type==="VariableDeclarator"||j.type==="TSTypeAliasDeclaration")&&w(b.originalText,M)),V=P(M),q=x.map(R=>{let Q=L();return V||(Q=y(2,Q)),t(R,Q,b)},"types");if(V)return u(" | ",q);let Y=$&&!w(b.originalText,M),H=[m([Y?i:"","| "]),u([i,"| "],q)];return d(x,b)?r([c(H),o]):j.type==="TupleTypeAnnotation"&&j.types.length>1||j.type==="TSTupleType"&&j.elementTypes.length>1?r([c([m(["(",o]),H]),o,m(")")]):r($?c(H):H)}function l(x,b,L){let M=x.getValue(),j=[],$=x.getParentNode(0),V=x.getParentNode(1),q=x.getParentNode(2),Y=M.type==="TSFunctionType"||!(($.type==="ObjectTypeProperty"||$.type==="ObjectTypeInternalSlot")&&!$.variance&&!$.optional&&p($)===p(M)||$.type==="ObjectTypeCallProperty"||q&&q.type==="DeclareFunction"),H=Y&&($.type==="TypeAnnotation"||$.type==="TSTypeAnnotation"),R=H&&Y&&($.type==="TypeAnnotation"||$.type==="TSTypeAnnotation")&&V.type==="ArrowFunctionExpression";T($)&&(Y=!0,H=!0),R&&j.push("(");let Q=B(x,L,b,!1,!0),ee=M.returnType||M.predicate||M.typeAnnotation?[Y?" => ":": ",L("returnType"),L("predicate"),L("typeAnnotation")]:"",te=I(M,ee);return j.push(te?r(Q):Q),ee&&j.push(ee),R&&j.push(")"),r(j)}function E(x,b,L){let M=x.getValue(),j=M.type==="TSTupleType"?"elementTypes":"types",$=M[j],V=a($),q=V?o:"";return r(["[",c([q,k(x,b,j,L)]),m(V&&A(b,"all")?",":""),s(x,b,!0),q,"]"])}function v(x,b,L){let M=x.getValue(),j=M.type==="OptionalIndexedAccessType"&&M.optional?"?.[":"[";return[L("objectType"),j,L("indexType"),"]"]}function N(x,b,L){let M=x.getValue();return[M.postfix?"":L,b("typeAnnotation"),M.postfix?L:""]}n.exports={printOpaqueType:C,printTypeAlias:D,printIntersectionType:g,printUnionType:F,printFunctionType:l,printTupleType:E,printIndexedAccessType:v,shouldHugType:P,printJSDocType:N}}}),Pr=Z({"src/language-js/print/type-parameters.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{builders:{join:s,line:a,hardline:r,softline:u,group:i,indent:o,ifBreak:c}}=Oe(),{isTestCall:y,hasComment:m,CommentCheckFlags:d,isTSXFile:p,shouldPrintComma:f,getFunctionParameters:h,isObjectType:w}=Ke(),{createGroupIdMapper:T}=Ue(),{shouldHugType:A}=_r(),{isArrowFunctionVariableDeclarator:S}=Xt(),B=T("typeParameters");function I(C,D,g,F){let l=C.getValue();if(!l[F])return"";if(!Array.isArray(l[F]))return g(F);let E=C.getNode(2),v=E&&y(E);if(!C.match(L=>!(L[F].length===1&&w(L[F][0])),void 0,(L,M)=>M==="typeAnnotation",L=>L.type==="Identifier",S)&&(v||l[F].length===0||l[F].length===1&&(l[F][0].type==="NullableTypeAnnotation"||A(l[F][0]))))return["<",s(", ",C.map(g,F)),k(C,D),">"];let b=l.type==="TSTypeParameterInstantiation"?"":h(l).length===1&&p(D)&&!l[F][0].constraint&&C.getParentNode().type==="ArrowFunctionExpression"?",":f(D,"all")?c(","):"";return i(["<",o([u,s([",",a],C.map(g,F))]),b,u,">"],{id:B(l)})}function k(C,D){let g=C.getValue();if(!m(g,d.Dangling))return"";let F=!m(g,d.Line),l=t(C,D,F);return F?l:[l,r]}function P(C,D,g){let F=C.getValue(),l=[],E=C.getParentNode();return E.type==="TSMappedType"?(l.push("[",g("name")),F.constraint&&l.push(" in ",g("constraint")),E.nameType&&l.push(" as ",C.callParent(()=>g("nameType"))),l.push("]"),l):(F.variance&&l.push(g("variance")),F.in&&l.push("in "),F.out&&l.push("out "),l.push(g("name")),F.bound&&l.push(": ",g("bound")),F.constraint&&l.push(" extends ",g("constraint")),F.default&&l.push(" = ",g("default")),l)}n.exports={printTypeParameter:P,printTypeParameters:I,getTypeParametersGroupId:B}}}),Kt=Z({"src/language-js/print/property.js"(e,n){"use strict";re();var{printComments:t}=et(),{printString:s,printNumber:a}=Ue(),{isNumericLiteral:r,isSimpleNumber:u,isStringLiteral:i,isStringPropSafeToUnquote:o,rawText:c}=Ke(),{printAssignment:y}=Xt(),m=new WeakMap;function d(f,h,w){let T=f.getNode();if(T.computed)return["[",w("key"),"]"];let A=f.getParentNode(),{key:S}=T;if(T.type==="ClassPrivateProperty"&&S.type==="Identifier")return["#",w("key")];if(h.quoteProps==="consistent"&&!m.has(A)){let B=(A.properties||A.body||A.members).some(I=>!I.computed&&I.key&&i(I.key)&&!o(I,h));m.set(A,B)}if((S.type==="Identifier"||r(S)&&u(a(c(S)))&&String(S.value)===a(c(S))&&!(h.parser==="typescript"||h.parser==="babel-ts"))&&(h.parser==="json"||h.quoteProps==="consistent"&&m.get(A))){let B=s(JSON.stringify(S.type==="Identifier"?S.name:S.value.toString()),h);return f.call(I=>t(I,B,h),"key")}return o(T,h)&&(h.quoteProps==="as-needed"||h.quoteProps==="consistent"&&!m.get(A))?f.call(B=>t(B,/^\d/.test(S.value)?a(S.value):S.value,h),"key"):w("key")}function p(f,h,w){return f.getValue().shorthand?w("value"):y(f,h,w,d(f,h,w),":","value")}n.exports={printProperty:p,printPropertyKey:d}}}),kr=Z({"src/language-js/print/function.js"(e,n){"use strict";re();var t=Ut(),{printDanglingComments:s,printCommentsSeparately:a}=et(),r=it(),{getNextNonSpaceNonCommentCharacterIndex:u}=Ue(),{builders:{line:i,softline:o,group:c,indent:y,ifBreak:m,hardline:d,join:p,indentIfBreak:f},utils:{removeLines:h,willBreak:w}}=Oe(),{ArgExpansionBailout:T}=Jt(),{getFunctionParameters:A,hasLeadingOwnLineComment:S,isFlowAnnotationComment:B,isJsxNode:I,isTemplateOnItsOwnLine:k,shouldPrintComma:P,startsWithNoLookaheadToken:C,isBinaryish:D,isLineComment:g,hasComment:F,getComments:l,CommentCheckFlags:E,isCallLikeExpression:v,isCallExpression:N,getCallArguments:x,hasNakedLeftSide:b,getLeftSide:L}=Ke(),{locEnd:M}=st(),{printFunctionParameters:j,shouldGroupFunctionParameters:$}=wr(),{printPropertyKey:V}=Kt(),{printFunctionTypeParameters:q}=ct();function Y(z,U,le,ge){let Ae=z.getValue(),Ne=!1;if((Ae.type==="FunctionDeclaration"||Ae.type==="FunctionExpression")&&ge&&ge.expandLastArg){let ae=z.getParentNode();N(ae)&&x(ae).length>1&&(Ne=!0)}let ke=[];Ae.type==="TSDeclareFunction"&&Ae.declare&&ke.push("declare "),Ae.async&&ke.push("async "),Ae.generator?ke.push("function* "):ke.push("function "),Ae.id&&ke.push(U("id"));let ce=j(z,U,le,Ne),pe=X(z,U,le),de=$(Ae,pe);return ke.push(q(z,le,U),c([de?c(ce):ce,pe]),Ae.body?" ":"",U("body")),le.semi&&(Ae.declare||!Ae.body)&&ke.push(";"),ke}function H(z,U,le){let ge=z.getNode(),{kind:Ae}=ge,Ne=ge.value||ge,ke=[];return!Ae||Ae==="init"||Ae==="method"||Ae==="constructor"?Ne.async&&ke.push("async "):(t.ok(Ae==="get"||Ae==="set"),ke.push(Ae," ")),Ne.generator&&ke.push("*"),ke.push(V(z,U,le),ge.optional||ge.key.optional?"?":""),ge===Ne?ke.push(R(z,U,le)):Ne.type==="FunctionExpression"?ke.push(z.call(ce=>R(ce,U,le),"value")):ke.push(le("value")),ke}function R(z,U,le){let ge=z.getNode(),Ae=j(z,le,U),Ne=X(z,le,U),ke=$(ge,Ne),ce=[q(z,U,le),c([ke?c(Ae):Ae,Ne])];return ge.body?ce.push(" ",le("body")):ce.push(U.semi?";":""),ce}function Q(z,U,le,ge){let Ae=z.getValue(),Ne=[];if(Ae.async&&Ne.push("async "),W(z,U))Ne.push(le(["params",0]));else{let ce=ge&&(ge.expandLastArg||ge.expandFirstArg),pe=X(z,le,U);if(ce){if(w(pe))throw new T;pe=c(h(pe))}Ne.push(c([j(z,le,U,ce,!0),pe]))}let ke=s(z,U,!0,ce=>{let pe=u(U.originalText,ce,M);return pe!==!1&&U.originalText.slice(pe,pe+2)==="=>"});return ke&&Ne.push(" ",ke),Ne}function ee(z,U,le,ge,Ae,Ne){let ke=z.getName(),ce=z.getParentNode(),pe=v(ce)&&ke==="callee",de=Boolean(U&&U.assignmentLayout),ae=Ne.body.type!=="BlockStatement"&&Ne.body.type!=="ObjectExpression"&&Ne.body.type!=="SequenceExpression",ve=pe&&ae||U&&U.assignmentLayout==="chain-tail-arrow-chain",K=Symbol("arrow-chain");return Ne.body.type==="SequenceExpression"&&(Ae=c(["(",y([o,Ae]),o,")"])),c([c(y([pe||de?o:"",c(p([" =>",i],le),{shouldBreak:ge})]),{id:K,shouldBreak:ve})," =>",f(ae?y([i,Ae]):[" ",Ae],{groupId:K}),pe?m(o,"",{groupId:K}):""])}function te(z,U,le,ge){let Ae=z.getValue(),Ne=[],ke=[],ce=!1;if(function K(){let he=Q(z,U,le,ge);if(Ne.length===0)Ne.push(he);else{let{leading:ye,trailing:Ce}=a(z,U);Ne.push([ye,he]),ke.unshift(Ce)}ce=ce||Ae.returnType&&A(Ae).length>0||Ae.typeParameters||A(Ae).some(ye=>ye.type!=="Identifier"),Ae.body.type!=="ArrowFunctionExpression"||ge&&ge.expandLastArg?ke.unshift(le("body",ge)):(Ae=Ae.body,z.call(K,"body"))}(),Ne.length>1)return ee(z,ge,Ne,ce,ke,Ae);let pe=Ne;if(pe.push(" =>"),!S(U.originalText,Ae.body)&&(Ae.body.type==="ArrayExpression"||Ae.body.type==="ObjectExpression"||Ae.body.type==="BlockStatement"||I(Ae.body)||k(Ae.body,U.originalText)||Ae.body.type==="ArrowFunctionExpression"||Ae.body.type==="DoExpression"))return c([...pe," ",ke]);if(Ae.body.type==="SequenceExpression")return c([...pe,c([" (",y([o,ke]),o,")"])]);let de=(ge&&ge.expandLastArg||z.getParentNode().type==="JSXExpressionContainer")&&!F(Ae),ae=ge&&ge.expandLastArg&&P(U,"all"),ve=Ae.body.type==="ConditionalExpression"&&!C(Ae.body,!1);return c([...pe,c([y([i,ve?m("","("):"",ke,ve?m("",")"):""]),de?[m(ae?",":""),o]:""])])}function oe(z){let U=A(z);return U.length===1&&!z.typeParameters&&!F(z,E.Dangling)&&U[0].type==="Identifier"&&!U[0].typeAnnotation&&!F(U[0])&&!U[0].optional&&!z.predicate&&!z.returnType}function W(z,U){if(U.arrowParens==="always")return!1;if(U.arrowParens==="avoid"){let le=z.getValue();return oe(le)}return!1}function X(z,U,le){let ge=z.getValue(),Ae=U("returnType");if(ge.returnType&&B(le.originalText,ge.returnType))return[" /*: ",Ae," */"];let Ne=[Ae];return ge.returnType&&ge.returnType.typeAnnotation&&Ne.unshift(": "),ge.predicate&&Ne.push(ge.returnType?" ":": ",U("predicate")),Ne}function ue(z,U,le){let ge=z.getValue(),Ae=U.semi?";":"",Ne=[];ge.argument&&(G(U,ge.argument)?Ne.push([" (",y([d,le("argument")]),d,")"]):D(ge.argument)||ge.argument.type==="SequenceExpression"?Ne.push(c([m(" ("," "),y([o,le("argument")]),o,m(")")])):Ne.push(" ",le("argument")));let ke=l(ge),ce=r(ke),pe=ce&&g(ce);return pe&&Ne.push(Ae),F(ge,E.Dangling)&&Ne.push(" ",s(z,U,!0)),pe||Ne.push(Ae),Ne}function De(z,U,le){return["return",ue(z,U,le)]}function ie(z,U,le){return["throw",ue(z,U,le)]}function G(z,U){if(S(z.originalText,U))return!0;if(b(U)){let le=U,ge;for(;ge=L(le);)if(le=ge,S(z.originalText,le))return!0}return!1}n.exports={printFunction:Y,printArrowFunction:te,printMethod:H,printReturnStatement:De,printThrowStatement:ie,printMethodInternal:R,shouldPrintParamsWithoutParens:W}}}),Hn=Z({"src/language-js/print/decorators.js"(e,n){"use strict";re();var{isNonEmptyArray:t,hasNewline:s}=Ue(),{builders:{line:a,hardline:r,join:u,breakParent:i,group:o}}=Oe(),{locStart:c,locEnd:y}=st(),{getParentExportDeclaration:m}=Ke();function d(T,A,S){let B=T.getValue();return o([u(a,T.map(S,"decorators")),h(B,A)?r:a])}function p(T,A,S){return[u(r,T.map(S,"declaration","decorators")),r]}function f(T,A,S){let B=T.getValue(),{decorators:I}=B;if(!t(I)||w(T.getParentNode()))return;let k=B.type==="ClassExpression"||B.type==="ClassDeclaration"||h(B,A);return[m(T)?r:k?i:"",u(a,T.map(S,"decorators")),a]}function h(T,A){return T.decorators.some(S=>s(A.originalText,y(S)))}function w(T){if(T.type!=="ExportDefaultDeclaration"&&T.type!=="ExportNamedDeclaration"&&T.type!=="DeclareExportDeclaration")return!1;let A=T.declaration&&T.declaration.decorators;return t(A)&&c(T,{ignoreDecorators:!0})>c(A[0])}n.exports={printDecorators:f,printClassMemberDecorators:d,printDecoratorsBeforeExport:p,hasDecoratorsBeforeExport:w}}}),Yt=Z({"src/language-js/print/class.js"(e,n){"use strict";re();var{isNonEmptyArray:t,createGroupIdMapper:s}=Ue(),{printComments:a,printDanglingComments:r}=et(),{builders:{join:u,line:i,hardline:o,softline:c,group:y,indent:m,ifBreak:d}}=Oe(),{hasComment:p,CommentCheckFlags:f}=Ke(),{getTypeParametersGroupId:h}=Pr(),{printMethod:w}=kr(),{printOptionalToken:T,printTypeAnnotation:A,printDefiniteToken:S}=ct(),{printPropertyKey:B}=Kt(),{printAssignment:I}=Xt(),{printClassMemberDecorators:k}=Hn();function P(x,b,L){let M=x.getValue(),j=[];M.declare&&j.push("declare "),M.abstract&&j.push("abstract "),j.push("class");let $=M.id&&p(M.id,f.Trailing)||M.typeParameters&&p(M.typeParameters,f.Trailing)||M.superClass&&p(M.superClass)||t(M.extends)||t(M.mixins)||t(M.implements),V=[],q=[];if(M.id&&V.push(" ",L("id")),V.push(L("typeParameters")),M.superClass){let Y=[E(x,b,L),L("superTypeParameters")],H=x.call(R=>["extends ",a(R,Y,b)],"superClass");$?q.push(i,y(H)):q.push(" ",H)}else q.push(l(x,b,L,"extends"));if(q.push(l(x,b,L,"mixins"),l(x,b,L,"implements")),$){let Y;F(M)?Y=[...V,m(q)]:Y=m([...V,q]),j.push(y(Y,{id:C(M)}))}else j.push(...V,...q);return j.push(" ",L("body")),j}var C=s("heritageGroup");function D(x){return d(o,"",{groupId:C(x)})}function g(x){return["superClass","extends","mixins","implements"].filter(b=>Boolean(x[b])).length>1}function F(x){return x.typeParameters&&!p(x.typeParameters,f.Trailing|f.Line)&&!g(x)}function l(x,b,L,M){let j=x.getValue();if(!t(j[M]))return"";let $=r(x,b,!0,V=>{let{marker:q}=V;return q===M});return[F(j)?d(" ",i,{groupId:h(j.typeParameters)}):i,$,$&&o,M,y(m([i,u([",",i],x.map(L,M))]))]}function E(x,b,L){let M=L("superClass");return x.getParentNode().type==="AssignmentExpression"?y(d(["(",m([c,M]),c,")"],M)):M}function v(x,b,L){let M=x.getValue(),j=[];return t(M.decorators)&&j.push(k(x,b,L)),M.accessibility&&j.push(M.accessibility+" "),M.readonly&&j.push("readonly "),M.declare&&j.push("declare "),M.static&&j.push("static "),(M.type==="TSAbstractMethodDefinition"||M.abstract)&&j.push("abstract "),M.override&&j.push("override "),j.push(w(x,b,L)),j}function N(x,b,L){let M=x.getValue(),j=[],$=b.semi?";":"";return t(M.decorators)&&j.push(k(x,b,L)),M.accessibility&&j.push(M.accessibility+" "),M.declare&&j.push("declare "),M.static&&j.push("static "),(M.type==="TSAbstractPropertyDefinition"||M.abstract)&&j.push("abstract "),M.override&&j.push("override "),M.readonly&&j.push("readonly "),M.variance&&j.push(L("variance")),M.type==="ClassAccessorProperty"&&j.push("accessor "),j.push(B(x,b,L),T(x),S(x),A(x,b,L)),[I(x,b,L,j," =","value"),$]}n.exports={printClass:P,printClassMethod:v,printClassProperty:N,printHardlineAfterHeritage:D}}}),ro=Z({"src/language-js/print/interface.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{join:s,line:a,group:r,indent:u,ifBreak:i}}=Oe(),{hasComment:o,identity:c,CommentCheckFlags:y}=Ke(),{getTypeParametersGroupId:m}=Pr(),{printTypeScriptModifiers:d}=ct();function p(f,h,w){let T=f.getValue(),A=[];T.declare&&A.push("declare "),T.type==="TSInterfaceDeclaration"&&A.push(T.abstract?"abstract ":"",d(f,h,w)),A.push("interface");let S=[],B=[];T.type!=="InterfaceTypeAnnotation"&&S.push(" ",w("id"),w("typeParameters"));let I=T.typeParameters&&!o(T.typeParameters,y.Trailing|y.Line);return t(T.extends)&&B.push(I?i(" ",a,{groupId:m(T.typeParameters)}):a,"extends ",(T.extends.length===1?c:u)(s([",",a],f.map(w,"extends")))),T.id&&o(T.id,y.Trailing)||t(T.extends)?I?A.push(r([...S,u(B)])):A.push(r(u([...S,...B]))):A.push(...S,...B),A.push(" ",w("body")),r(A)}n.exports={printInterface:p}}}),no=Z({"src/language-js/print/module.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{softline:s,group:a,indent:r,join:u,line:i,ifBreak:o,hardline:c}}=Oe(),{printDanglingComments:y}=et(),{hasComment:m,CommentCheckFlags:d,shouldPrintComma:p,needsHardlineAfterDanglingComment:f,isStringLiteral:h,rawText:w}=Ke(),{locStart:T,hasSameLoc:A}=st(),{hasDecoratorsBeforeExport:S,printDecoratorsBeforeExport:B}=Hn();function I(N,x,b){let L=N.getValue(),M=x.semi?";":"",j=[],{importKind:$}=L;return j.push("import"),$&&$!=="value"&&j.push(" ",$),j.push(g(N,x,b),D(N,x,b),l(N,x,b),M),j}function k(N,x,b){let L=N.getValue(),M=[];S(L)&&M.push(B(N,x,b));let{type:j,exportKind:$,declaration:V}=L;return M.push("export"),(L.default||j==="ExportDefaultDeclaration")&&M.push(" default"),m(L,d.Dangling)&&(M.push(" ",y(N,x,!0)),f(L)&&M.push(c)),V?M.push(" ",b("declaration")):M.push($==="type"?" type":"",g(N,x,b),D(N,x,b),l(N,x,b)),C(L,x)&&M.push(";"),M}function P(N,x,b){let L=N.getValue(),M=x.semi?";":"",j=[],{exportKind:$,exported:V}=L;return j.push("export"),$==="type"&&j.push(" type"),j.push(" *"),V&&j.push(" as ",b("exported")),j.push(D(N,x,b),l(N,x,b),M),j}function C(N,x){if(!x.semi)return!1;let{type:b,declaration:L}=N,M=N.default||b==="ExportDefaultDeclaration";if(!L)return!0;let{type:j}=L;return!!(M&&j!=="ClassDeclaration"&&j!=="FunctionDeclaration"&&j!=="TSInterfaceDeclaration"&&j!=="DeclareClass"&&j!=="DeclareFunction"&&j!=="TSDeclareFunction"&&j!=="EnumDeclaration")}function D(N,x,b){let L=N.getValue();if(!L.source)return"";let M=[];return F(L,x)||M.push(" from"),M.push(" ",b("source")),M}function g(N,x,b){let L=N.getValue();if(F(L,x))return"";let M=[" "];if(t(L.specifiers)){let j=[],$=[];N.each(()=>{let V=N.getValue().type;if(V==="ExportNamespaceSpecifier"||V==="ExportDefaultSpecifier"||V==="ImportNamespaceSpecifier"||V==="ImportDefaultSpecifier")j.push(b());else if(V==="ExportSpecifier"||V==="ImportSpecifier")$.push(b());else throw new Error("Unknown specifier type ".concat(JSON.stringify(V)))},"specifiers"),M.push(u(", ",j)),$.length>0&&(j.length>0&&M.push(", "),$.length>1||j.length>0||L.specifiers.some(q=>m(q))?M.push(a(["{",r([x.bracketSpacing?i:s,u([",",i],$)]),o(p(x)?",":""),x.bracketSpacing?i:s,"}"])):M.push(["{",x.bracketSpacing?" ":"",...$,x.bracketSpacing?" ":"","}"]))}else M.push("{}");return M}function F(N,x){let{type:b,importKind:L,source:M,specifiers:j}=N;return b!=="ImportDeclaration"||t(j)||L==="type"?!1:!/{\s*}/.test(x.originalText.slice(T(N),T(M)))}function l(N,x,b){let L=N.getNode();return t(L.assertions)?[" assert {",x.bracketSpacing?" ":"",u(", ",N.map(b,"assertions")),x.bracketSpacing?" ":"","}"]:""}function E(N,x,b){let L=N.getNode(),{type:M}=L,j=[],$=M==="ImportSpecifier"?L.importKind:L.exportKind;$&&$!=="value"&&j.push($," ");let V=M.startsWith("Import"),q=V?"imported":"local",Y=V?"local":"exported",H=L[q],R=L[Y],Q="",ee="";return M==="ExportNamespaceSpecifier"||M==="ImportNamespaceSpecifier"?Q="*":H&&(Q=b(q)),R&&!v(L)&&(ee=b(Y)),j.push(Q,Q&&ee?" as ":"",ee),j}function v(N){if(N.type!=="ImportSpecifier"&&N.type!=="ExportSpecifier")return!1;let{local:x,[N.type==="ImportSpecifier"?"imported":"exported"]:b}=N;if(x.type!==b.type||!A(x,b))return!1;if(h(x))return x.value===b.value&&w(x)===w(b);switch(x.type){case"Identifier":return x.name===b.name;default:return!1}}n.exports={printImportDeclaration:I,printExportDeclaration:k,printExportAllDeclaration:P,printModuleSpecifier:E}}}),Gn=Z({"src/language-js/print/object.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{builders:{line:s,softline:a,group:r,indent:u,ifBreak:i,hardline:o}}=Oe(),{getLast:c,hasNewlineInRange:y,hasNewline:m,isNonEmptyArray:d}=Ue(),{shouldPrintComma:p,hasComment:f,getComments:h,CommentCheckFlags:w,isNextLineEmpty:T}=Ke(),{locStart:A,locEnd:S}=st(),{printOptionalToken:B,printTypeAnnotation:I}=ct(),{shouldHugFunctionParameters:k}=wr(),{shouldHugType:P}=_r(),{printHardlineAfterHeritage:C}=Yt();function D(g,F,l){let E=F.semi?";":"",v=g.getValue(),N;v.type==="TSTypeLiteral"?N="members":v.type==="TSInterfaceBody"?N="body":N="properties";let x=v.type==="ObjectTypeAnnotation",b=[N];x&&b.push("indexers","callProperties","internalSlots");let L=b.map(W=>v[W][0]).sort((W,X)=>A(W)-A(X))[0],M=g.getParentNode(0),j=x&&M&&(M.type==="InterfaceDeclaration"||M.type==="DeclareInterface"||M.type==="DeclareClass")&&g.getName()==="body",$=v.type==="TSInterfaceBody"||j||v.type==="ObjectPattern"&&M.type!=="FunctionDeclaration"&&M.type!=="FunctionExpression"&&M.type!=="ArrowFunctionExpression"&&M.type!=="ObjectMethod"&&M.type!=="ClassMethod"&&M.type!=="ClassPrivateMethod"&&M.type!=="AssignmentPattern"&&M.type!=="CatchClause"&&v.properties.some(W=>W.value&&(W.value.type==="ObjectPattern"||W.value.type==="ArrayPattern"))||v.type!=="ObjectPattern"&&L&&y(F.originalText,A(v),A(L)),V=j?";":v.type==="TSInterfaceBody"||v.type==="TSTypeLiteral"?i(E,";"):",",q=v.type==="RecordExpression"?"#{":v.exact?"{|":"{",Y=v.exact?"|}":"}",H=[];for(let W of b)g.each(X=>{let ue=X.getValue();H.push({node:ue,printed:l(),loc:A(ue)})},W);b.length>1&&H.sort((W,X)=>W.loc-X.loc);let R=[],Q=H.map(W=>{let X=[...R,r(W.printed)];return R=[V,s],(W.node.type==="TSPropertySignature"||W.node.type==="TSMethodSignature"||W.node.type==="TSConstructSignatureDeclaration")&&f(W.node,w.PrettierIgnore)&&R.shift(),T(W.node,F)&&R.push(o),X});if(v.inexact){let W;if(f(v,w.Dangling)){let X=f(v,w.Line);W=[t(g,F,!0),X||m(F.originalText,S(c(h(v))))?o:s,"..."]}else W=["..."];Q.push([...R,...W])}let ee=c(v[N]),te=!(v.inexact||ee&&ee.type==="RestElement"||ee&&(ee.type==="TSPropertySignature"||ee.type==="TSCallSignatureDeclaration"||ee.type==="TSMethodSignature"||ee.type==="TSConstructSignatureDeclaration")&&f(ee,w.PrettierIgnore)),oe;if(Q.length===0){if(!f(v,w.Dangling))return[q,Y,I(g,F,l)];oe=r([q,t(g,F),a,Y,B(g),I(g,F,l)])}else oe=[j&&d(v.properties)?C(M):"",q,u([F.bracketSpacing?s:a,...Q]),i(te&&(V!==","||p(F))?V:""),F.bracketSpacing?s:a,Y,B(g),I(g,F,l)];return g.match(W=>W.type==="ObjectPattern"&&!W.decorators,(W,X,ue)=>k(W)&&(X==="params"||X==="parameters"||X==="this"||X==="rest")&&ue===0)||g.match(P,(W,X)=>X==="typeAnnotation",(W,X)=>X==="typeAnnotation",(W,X,ue)=>k(W)&&(X==="params"||X==="parameters"||X==="this"||X==="rest")&&ue===0)||!$&&g.match(W=>W.type==="ObjectPattern",W=>W.type==="AssignmentExpression"||W.type==="VariableDeclarator")?oe:r(oe,{shouldBreak:$})}n.exports={printObject:D}}}),Mm=Z({"src/language-js/print/flow.js"(e,n){"use strict";re();var t=Ut(),{printDanglingComments:s}=et(),{printString:a,printNumber:r}=Ue(),{builders:{hardline:u,softline:i,group:o,indent:c}}=Oe(),{getParentExportDeclaration:y,isFunctionNotation:m,isGetterOrSetter:d,rawText:p,shouldPrintComma:f}=Ke(),{locStart:h,locEnd:w}=st(),{printClass:T}=Yt(),{printOpaqueType:A,printTypeAlias:S,printIntersectionType:B,printUnionType:I,printFunctionType:k,printTupleType:P,printIndexedAccessType:C}=_r(),{printInterface:D}=ro(),{printTypeParameter:g,printTypeParameters:F}=Pr(),{printExportDeclaration:l,printExportAllDeclaration:E}=no(),{printArrayItems:v}=zt(),{printObject:N}=Gn(),{printPropertyKey:x}=Kt(),{printOptionalToken:b,printTypeAnnotation:L,printRestSpread:M}=ct();function j(V,q,Y){let H=V.getValue(),R=q.semi?";":"",Q=[];switch(H.type){case"DeclareClass":return $(V,T(V,q,Y));case"DeclareFunction":return $(V,["function ",Y("id"),H.predicate?" ":"",Y("predicate"),R]);case"DeclareModule":return $(V,["module ",Y("id")," ",Y("body")]);case"DeclareModuleExports":return $(V,["module.exports",": ",Y("typeAnnotation"),R]);case"DeclareVariable":return $(V,["var ",Y("id"),R]);case"DeclareOpaqueType":return $(V,A(V,q,Y));case"DeclareInterface":return $(V,D(V,q,Y));case"DeclareTypeAlias":return $(V,S(V,q,Y));case"DeclareExportDeclaration":return $(V,l(V,q,Y));case"DeclareExportAllDeclaration":return $(V,E(V,q,Y));case"OpaqueType":return A(V,q,Y);case"TypeAlias":return S(V,q,Y);case"IntersectionTypeAnnotation":return B(V,q,Y);case"UnionTypeAnnotation":return I(V,q,Y);case"FunctionTypeAnnotation":return k(V,q,Y);case"TupleTypeAnnotation":return P(V,q,Y);case"GenericTypeAnnotation":return[Y("id"),F(V,q,Y,"typeParameters")];case"IndexedAccessType":case"OptionalIndexedAccessType":return C(V,q,Y);case"TypeAnnotation":return Y("typeAnnotation");case"TypeParameter":return g(V,q,Y);case"TypeofTypeAnnotation":return["typeof ",Y("argument")];case"ExistsTypeAnnotation":return"*";case"EmptyTypeAnnotation":return"empty";case"MixedTypeAnnotation":return"mixed";case"ArrayTypeAnnotation":return[Y("elementType"),"[]"];case"BooleanLiteralTypeAnnotation":return String(H.value);case"EnumDeclaration":return["enum ",Y("id")," ",Y("body")];case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":{if(H.type==="EnumSymbolBody"||H.explicitType){let ee=null;switch(H.type){case"EnumBooleanBody":ee="boolean";break;case"EnumNumberBody":ee="number";break;case"EnumStringBody":ee="string";break;case"EnumSymbolBody":ee="symbol";break}Q.push("of ",ee," ")}if(H.members.length===0&&!H.hasUnknownMembers)Q.push(o(["{",s(V,q),i,"}"]));else{let ee=H.members.length>0?[u,v(V,q,"members",Y),H.hasUnknownMembers||f(q)?",":""]:[];Q.push(o(["{",c([...ee,...H.hasUnknownMembers?[u,"..."]:[]]),s(V,q,!0),u,"}"]))}return Q}case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":return[Y("id")," = ",typeof H.init=="object"?Y("init"):String(H.init)];case"EnumDefaultedMember":return Y("id");case"FunctionTypeParam":{let ee=H.name?Y("name"):V.getParentNode().this===H?"this":"";return[ee,b(V),ee?": ":"",Y("typeAnnotation")]}case"InterfaceDeclaration":case"InterfaceTypeAnnotation":return D(V,q,Y);case"ClassImplements":case"InterfaceExtends":return[Y("id"),Y("typeParameters")];case"NullableTypeAnnotation":return["?",Y("typeAnnotation")];case"Variance":{let{kind:ee}=H;return t.ok(ee==="plus"||ee==="minus"),ee==="plus"?"+":"-"}case"ObjectTypeCallProperty":return H.static&&Q.push("static "),Q.push(Y("value")),Q;case"ObjectTypeIndexer":return[H.static?"static ":"",H.variance?Y("variance"):"","[",Y("id"),H.id?": ":"",Y("key"),"]: ",Y("value")];case"ObjectTypeProperty":{let ee="";return H.proto?ee="proto ":H.static&&(ee="static "),[ee,d(H)?H.kind+" ":"",H.variance?Y("variance"):"",x(V,q,Y),b(V),m(H)?"":": ",Y("value")]}case"ObjectTypeAnnotation":return N(V,q,Y);case"ObjectTypeInternalSlot":return[H.static?"static ":"","[[",Y("id"),"]]",b(V),H.method?"":": ",Y("value")];case"ObjectTypeSpreadProperty":return M(V,q,Y);case"QualifiedTypeofIdentifier":case"QualifiedTypeIdentifier":return[Y("qualification"),".",Y("id")];case"StringLiteralTypeAnnotation":return a(p(H),q);case"NumberLiteralTypeAnnotation":t.strictEqual(typeof H.value,"number");case"BigIntLiteralTypeAnnotation":return H.extra?r(H.extra.raw):r(H.raw);case"TypeCastExpression":return["(",Y("expression"),L(V,q,Y),")"];case"TypeParameterDeclaration":case"TypeParameterInstantiation":{let ee=F(V,q,Y,"params");if(q.parser==="flow"){let te=h(H),oe=w(H),W=q.originalText.lastIndexOf("/*",te),X=q.originalText.indexOf("*/",oe);if(W!==-1&&X!==-1){let ue=q.originalText.slice(W+2,X).trim();if(ue.startsWith("::")&&!ue.includes("/*")&&!ue.includes("*/"))return["/*:: ",ee," */"]}}return ee}case"InferredPredicate":return"%checks";case"DeclaredPredicate":return["%checks(",Y("value"),")"];case"AnyTypeAnnotation":return"any";case"BooleanTypeAnnotation":return"boolean";case"BigIntTypeAnnotation":return"bigint";case"NullLiteralTypeAnnotation":return"null";case"NumberTypeAnnotation":return"number";case"SymbolTypeAnnotation":return"symbol";case"StringTypeAnnotation":return"string";case"VoidTypeAnnotation":return"void";case"ThisTypeAnnotation":return"this";case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"MemberTypeAnnotation":case"Type":throw new Error("unprintable type: "+JSON.stringify(H.type))}}function $(V,q){let Y=y(V);return Y?(t.strictEqual(Y.type,"DeclareExportDeclaration"),q):["declare ",q]}n.exports={printFlow:j}}}),Rm=Z({"src/language-js/utils/is-ts-keyword-type.js"(e,n){"use strict";re();function t(s){let{type:a}=s;return a.startsWith("TS")&&a.endsWith("Keyword")}n.exports=t}}),uo=Z({"src/language-js/print/ternary.js"(e,n){"use strict";re();var{hasNewlineInRange:t}=Ue(),{isJsxNode:s,getComments:a,isCallExpression:r,isMemberExpression:u}=Ke(),{locStart:i,locEnd:o}=st(),c=Pt(),{builders:{line:y,softline:m,group:d,indent:p,align:f,ifBreak:h,dedent:w,breakParent:T}}=Oe();function A(P){let C=[P];for(let D=0;DM[ue]===g),$=M.type===g.type&&!j,V,q,Y=0;do q=V||g,V=P.getParentNode(Y),Y++;while(V&&V.type===g.type&&v.every(ue=>V[ue]!==q));let H=V||M,R=q;if(F&&(s(g[v[0]])||s(N)||s(x)||A(R))){L=!0,$=!0;let ue=ie=>[h("("),p([m,ie]),m,h(")")],De=ie=>ie.type==="NullLiteral"||ie.type==="Literal"&&ie.value===null||ie.type==="Identifier"&&ie.name==="undefined";b.push(" ? ",De(N)?D(l):ue(D(l))," : ",x.type===g.type||De(x)?D(E):ue(D(E)))}else{let ue=[y,"? ",N.type===g.type?h("","("):"",f(2,D(l)),N.type===g.type?h("",")"):"",y,": ",x.type===g.type?D(E):f(2,D(E))];b.push(M.type!==g.type||M[E]===g||j?ue:C.useTabs?w(p(ue)):f(Math.max(0,C.tabWidth-2),ue))}let ee=[...v.map(ue=>a(g[ue])),a(N),a(x)].flat().some(ue=>c(ue)&&t(C.originalText,i(ue),o(ue))),te=ue=>M===H?d(ue,{shouldBreak:ee}):ee?[ue,T]:ue,oe=!L&&(u(M)||M.type==="NGPipeExpression"&&M.left===g)&&!M.computed,W=I(P),X=te([S(P,C,D),$?b:p(b),F&&oe&&!W?m:""]);return j||W?d([p([m,X]),m]):X}n.exports={printTernary:k}}}),so=Z({"src/language-js/print/statement.js"(e,n){"use strict";re();var{builders:{hardline:t}}=Oe(),s=It(),{getLeftSidePathName:a,hasNakedLeftSide:r,isJsxNode:u,isTheOnlyJsxElementInMarkdown:i,hasComment:o,CommentCheckFlags:c,isNextLineEmpty:y}=Ke(),{shouldPrintParamsWithoutParens:m}=kr();function d(B,I,k,P){let C=B.getValue(),D=[],g=C.type==="ClassBody",F=p(C[P]);return B.each((l,E,v)=>{let N=l.getValue();if(N.type==="EmptyStatement")return;let x=k();!I.semi&&!g&&!i(I,l)&&f(l,I)?o(N,c.Leading)?D.push(k([],{needsSemi:!0})):D.push(";",x):D.push(x),!I.semi&&g&&A(N)&&S(N,v[E+1])&&D.push(";"),N!==F&&(D.push(t),y(N,I)&&D.push(t))},P),D}function p(B){for(let I=B.length-1;I>=0;I--){let k=B[I];if(k.type!=="EmptyStatement")return k}}function f(B,I){return B.getNode().type!=="ExpressionStatement"?!1:B.call(P=>h(P,I),"expression")}function h(B,I){let k=B.getValue();switch(k.type){case"ParenthesizedExpression":case"TypeCastExpression":case"ArrayExpression":case"ArrayPattern":case"TemplateLiteral":case"TemplateElement":case"RegExpLiteral":return!0;case"ArrowFunctionExpression":{if(!m(B,I))return!0;break}case"UnaryExpression":{let{prefix:P,operator:C}=k;if(P&&(C==="+"||C==="-"))return!0;break}case"BindExpression":{if(!k.object)return!0;break}case"Literal":{if(k.regex)return!0;break}default:if(u(k))return!0}return s(B,I)?!0:r(k)?B.call(P=>h(P,I),...a(B,k)):!1}function w(B,I,k){return d(B,I,k,"body")}function T(B,I,k){return d(B,I,k,"consequent")}var A=B=>{let{type:I}=B;return I==="ClassProperty"||I==="PropertyDefinition"||I==="ClassPrivateProperty"||I==="ClassAccessorProperty"};function S(B,I){let k=B.key&&B.key.name;if((k==="static"||k==="get"||k==="set")&&!B.value&&!B.typeAnnotation)return!0;if(!I||I.static||I.accessibility)return!1;if(!I.computed){let P=I.key&&I.key.name;if(P==="in"||P==="instanceof")return!0}if(A(I)&&I.variance&&!I.static&&!I.declare)return!0;switch(I.type){case"ClassProperty":case"PropertyDefinition":case"TSAbstractPropertyDefinition":return I.computed;case"MethodDefinition":case"TSAbstractMethodDefinition":case"ClassMethod":case"ClassPrivateMethod":{if((I.value?I.value.async:I.async)||I.kind==="get"||I.kind==="set")return!1;let C=I.value?I.value.generator:I.generator;return!!(I.computed||C)}case"TSIndexSignature":return!0}return!1}n.exports={printBody:w,printSwitchCaseConsequent:T}}}),io=Z({"src/language-js/print/block.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{isNonEmptyArray:s}=Ue(),{builders:{hardline:a,indent:r}}=Oe(),{hasComment:u,CommentCheckFlags:i,isNextLineEmpty:o}=Ke(),{printHardlineAfterHeritage:c}=Yt(),{printBody:y}=so();function m(p,f,h){let w=p.getValue(),T=[];if(w.type==="StaticBlock"&&T.push("static "),w.type==="ClassBody"&&s(w.body)){let S=p.getParentNode();T.push(c(S))}T.push("{");let A=d(p,f,h);if(A)T.push(r([a,A]),a);else{let S=p.getParentNode(),B=p.getParentNode(1);S.type==="ArrowFunctionExpression"||S.type==="FunctionExpression"||S.type==="FunctionDeclaration"||S.type==="ObjectMethod"||S.type==="ClassMethod"||S.type==="ClassPrivateMethod"||S.type==="ForStatement"||S.type==="WhileStatement"||S.type==="DoWhileStatement"||S.type==="DoExpression"||S.type==="CatchClause"&&!B.finalizer||S.type==="TSModuleDeclaration"||S.type==="TSDeclareFunction"||w.type==="StaticBlock"||w.type==="ClassBody"||T.push(a)}return T.push("}"),T}function d(p,f,h){let w=p.getValue(),T=s(w.directives),A=w.body.some(I=>I.type!=="EmptyStatement"),S=u(w,i.Dangling);if(!T&&!A&&!S)return"";let B=[];if(T&&p.each((I,k,P)=>{B.push(h()),(k"]),z=[m("("),c([i,W("expression")]),i,m(")")];return ie?y([[G,W("expression")],[G,o(z,{shouldBreak:!0})],[G,W("expression")]]):o([G,W("expression")])}case"TSDeclareFunction":return b(te,W,oe);case"TSExportAssignment":return["export = ",W("expression"),ue];case"TSModuleBlock":return j(te,oe,W);case"TSInterfaceBody":case"TSTypeLiteral":return F(te,oe,W);case"TSTypeAliasDeclaration":return $(te,oe,W);case"TSQualifiedName":return a(".",[W("left"),W("right")]);case"TSAbstractMethodDefinition":case"TSDeclareMethod":return E(te,oe,W);case"TSAbstractPropertyDefinition":return l(te,oe,W);case"TSInterfaceHeritage":case"TSExpressionWithTypeArguments":return De.push(W("expression")),X.typeParameters&&De.push(W("typeParameters")),De;case"TSTemplateLiteralType":return D(te,W,oe);case"TSNamedTupleMember":return[W("label"),X.optional?"?":"",": ",W("elementType")];case"TSRestType":return["...",W("typeAnnotation")];case"TSOptionalType":return[W("typeAnnotation"),"?"];case"TSInterfaceDeclaration":return M(te,oe,W);case"TSClassImplements":return[W("expression"),W("typeParameters")];case"TSTypeParameterDeclaration":case"TSTypeParameterInstantiation":return N(te,oe,W,"params");case"TSTypeParameter":return v(te,oe,W);case"TSAsExpression":{De.push(W("expression")," as ",W("typeAnnotation"));let ie=te.getParentNode();return h(ie)&&ie.callee===X||w(ie)&&ie.object===X?o([c([i,...De]),i]):De}case"TSArrayType":return[W("elementType"),"[]"];case"TSPropertySignature":return X.readonly&&De.push("readonly "),De.push(x(te,oe,W),B(te)),X.typeAnnotation&&De.push(": ",W("typeAnnotation")),X.initializer&&De.push(" = ",W("initializer")),De;case"TSParameterProperty":return X.accessibility&&De.push(X.accessibility+" "),X.export&&De.push("export "),X.static&&De.push("static "),X.override&&De.push("override "),X.readonly&&De.push("readonly "),De.push(W("parameter")),De;case"TSTypeQuery":return["typeof ",W("exprName"),W("typeParameters")];case"TSIndexSignature":{let ie=te.getParentNode(),G=X.parameters.length>1?m(f(oe)?",":""):"",z=o([c([i,a([", ",i],te.map(W,"parameters"))]),G,i]);return[X.export?"export ":"",X.accessibility?[X.accessibility," "]:"",X.static?"static ":"",X.readonly?"readonly ":"",X.declare?"declare ":"","[",X.parameters?z:"",X.typeAnnotation?"]: ":"]",X.typeAnnotation?W("typeAnnotation"):"",ie.type==="ClassBody"?ue:""]}case"TSTypePredicate":return[X.asserts?"asserts ":"",W("parameterName"),X.typeAnnotation?[" is ",W("typeAnnotation")]:""];case"TSNonNullExpression":return[W("expression"),"!"];case"TSImportType":return[X.isTypeOf?"typeof ":"","import(",W(X.parameter?"parameter":"argument"),")",X.qualifier?[".",W("qualifier")]:"",N(te,oe,W,"typeParameters")];case"TSLiteralType":return W("literal");case"TSIndexedAccessType":return R(te,oe,W);case"TSConstructSignatureDeclaration":case"TSCallSignatureDeclaration":case"TSConstructorType":{if(X.type==="TSConstructorType"&&X.abstract&&De.push("abstract "),X.type!=="TSCallSignatureDeclaration"&&De.push("new "),De.push(o(P(te,W,oe,!1,!0))),X.returnType||X.typeAnnotation){let ie=X.type==="TSConstructorType";De.push(ie?" => ":": ",W("returnType"),W("typeAnnotation"))}return De}case"TSTypeOperator":return[X.operator," ",W("typeAnnotation")];case"TSMappedType":{let ie=s(oe.originalText,A(X),S(X));return o(["{",c([oe.bracketSpacing?r:i,X.readonly?[p(X.readonly,"readonly")," "]:"",I(te,oe,W),W("typeParameter"),X.optional?p(X.optional,"?"):"",X.typeAnnotation?": ":"",W("typeAnnotation"),m(ue)]),t(te,oe,!0),oe.bracketSpacing?r:i,"}"],{shouldBreak:ie})}case"TSMethodSignature":{let ie=X.kind&&X.kind!=="method"?"".concat(X.kind," "):"";De.push(X.accessibility?[X.accessibility," "]:"",ie,X.export?"export ":"",X.static?"static ":"",X.readonly?"readonly ":"",X.abstract?"abstract ":"",X.declare?"declare ":"",X.computed?"[":"",W("key"),X.computed?"]":"",B(te));let G=P(te,W,oe,!1,!0),z=X.returnType?"returnType":"typeAnnotation",U=X[z],le=U?W(z):"",ge=C(X,le);return De.push(ge?o(G):G),U&&De.push(": ",o(le)),o(De)}case"TSNamespaceExportDeclaration":return De.push("export as namespace ",W("id")),oe.semi&&De.push(";"),o(De);case"TSEnumDeclaration":return X.declare&&De.push("declare "),X.modifiers&&De.push(I(te,oe,W)),X.const&&De.push("const "),De.push("enum ",W("id")," "),X.members.length===0?De.push(o(["{",t(te,oe),i,"}"])):De.push(o(["{",c([u,g(te,oe,"members",W),f(oe,"es5")?",":""]),t(te,oe,!0),u,"}"])),De;case"TSEnumMember":return X.computed?De.push("[",W("id"),"]"):De.push(W("id")),X.initializer&&De.push(" = ",W("initializer")),De;case"TSImportEqualsDeclaration":return X.isExport&&De.push("export "),De.push("import "),X.importKind&&X.importKind!=="value"&&De.push(X.importKind," "),De.push(W("id")," = ",W("moduleReference")),oe.semi&&De.push(";"),o(De);case"TSExternalModuleReference":return["require(",W("expression"),")"];case"TSModuleDeclaration":{let ie=te.getParentNode(),G=d(X.id),z=ie.type==="TSModuleDeclaration",U=X.body&&X.body.type==="TSModuleDeclaration";if(z)De.push(".");else{X.declare&&De.push("declare "),De.push(I(te,oe,W));let le=oe.originalText.slice(A(X),A(X.id));X.id.type==="Identifier"&&X.id.name==="global"&&!/namespace|module/.test(le)||De.push(G||/(?:^|\s)module(?:\s|$)/.test(le)?"module ":"namespace ")}return De.push(W("id")),U?De.push(W("body")):X.body?De.push(" ",o(W("body"))):De.push(ue),De}case"TSConditionalType":return k(te,oe,W);case"TSInferType":return["infer"," ",W("typeParameter")];case"TSIntersectionType":return V(te,oe,W);case"TSUnionType":return q(te,oe,W);case"TSFunctionType":return Y(te,oe,W);case"TSTupleType":return H(te,oe,W);case"TSTypeReference":return[W("typeName"),N(te,oe,W,"typeParameters")];case"TSTypeAnnotation":return W("typeAnnotation");case"TSEmptyBodyFunctionExpression":return L(te,oe,W);case"TSJSDocAllType":return"*";case"TSJSDocUnknownType":return"?";case"TSJSDocNullableType":return Q(te,W,"?");case"TSJSDocNonNullableType":return Q(te,W,"!");case"TSInstantiationExpression":return[W("expression"),W("typeParameters")];default:throw new Error("Unknown TypeScript node type: ".concat(JSON.stringify(X.type),"."))}}n.exports={printTypescript:ee}}}),Wm=Z({"src/language-js/print/comment.js"(e,n){"use strict";re();var{hasNewline:t}=Ue(),{builders:{join:s,hardline:a},utils:{replaceTextEndOfLine:r}}=Oe(),{isLineComment:u}=Ke(),{locStart:i,locEnd:o}=st(),c=Pt();function y(p,f){let h=p.getValue();if(u(h))return f.originalText.slice(i(h),o(h)).trimEnd();if(c(h)){if(m(h)){let A=d(h);return h.trailing&&!t(f.originalText,i(h),{backwards:!0})?[a,A]:A}let w=o(h),T=f.originalText.slice(w-3,w)==="*-/";return["/*",r(h.value),T?"*-/":"*/"]}throw new Error("Not a comment: "+JSON.stringify(h))}function m(p){let f="*".concat(p.value,"*").split(` +`);return f.length>1&&f.every(h=>h.trim()[0]==="*")}function d(p){let f=p.value.split(` +`);return["/*",s(a,f.map((h,w)=>w===0?h.trimEnd():" "+(w{let{marker:be}=Re;return be===l});return[Se("expression"),B(Pe,Be)?"":Xe,je?[" ",je]:""]}case"ParenthesizedExpression":return!A(xe.expression)&&(xe.expression.type==="ObjectExpression"||xe.expression.type==="ArrayExpression")?["(",Se("expression"),")"]:o(["(",c([i,Se("expression")]),i,")"]);case"AssignmentExpression":return ve(Be,Pe,Se);case"VariableDeclarator":return ae(Be,Pe,Se);case"BinaryExpression":case"LogicalExpression":return K(Be,Pe,Se);case"AssignmentPattern":return[Se("left")," = ",Se("right")];case"OptionalMemberExpression":case"MemberExpression":return ye(Be,Pe,Se);case"MetaProperty":return[Se("meta"),".",Se("property")];case"BindExpression":return xe.object&&we.push(Se("object")),we.push(o(c([i,Y(Be,Pe,Se)]))),we;case"Identifier":return[xe.name,q(Be),ee(Be),H(Be,Pe,Se)];case"V8IntrinsicIdentifier":return["%",xe.name];case"SpreadElement":case"SpreadElementPattern":case"SpreadProperty":case"SpreadPropertyPattern":case"RestElement":return Q(Be,Pe,Se);case"FunctionDeclaration":case"FunctionExpression":return Ae(Be,Se,Pe,Qe);case"ArrowFunctionExpression":return Ne(Be,Pe,Se,Qe);case"YieldExpression":return we.push("yield"),xe.delegate&&we.push("*"),xe.argument&&we.push(" ",Se("argument")),we;case"AwaitExpression":{if(we.push("await"),xe.argument){we.push(" ",Se("argument"));let je=Be.getParentNode();if(g(je)&&je.callee===xe||F(je)&&je.object===xe){we=[c([i,...we]),i];let Re=Be.findAncestor(be=>be.type==="AwaitExpression"||be.type==="BlockStatement");if(!Re||Re.type!=="AwaitExpression")return o(we)}}return we}case"ExportDefaultDeclaration":case"ExportNamedDeclaration":return oe(Be,Pe,Se);case"ExportAllDeclaration":return W(Be,Pe,Se);case"ImportDeclaration":return te(Be,Pe,Se);case"ImportSpecifier":case"ExportSpecifier":case"ImportNamespaceSpecifier":case"ExportNamespaceSpecifier":case"ImportDefaultSpecifier":case"ExportDefaultSpecifier":return X(Be,Pe,Se);case"ImportAttribute":return[Se("key"),": ",Se("value")];case"Import":return"import";case"BlockStatement":case"StaticBlock":case"ClassBody":return Ce(Be,Pe,Se);case"ThrowStatement":return pe(Be,Pe,Se);case"ReturnStatement":return ce(Be,Pe,Se);case"NewExpression":case"ImportExpression":case"OptionalCallExpression":case"CallExpression":return de(Be,Pe,Se);case"ObjectExpression":case"ObjectPattern":case"RecordExpression":return G(Be,Pe,Se);case"ObjectProperty":case"Property":return xe.method||xe.kind==="get"||xe.kind==="set"?ke(Be,Pe,Se):ge(Be,Pe,Se);case"ObjectMethod":return ke(Be,Pe,Se);case"Decorator":return["@",Se("expression")];case"ArrayExpression":case"ArrayPattern":case"TupleExpression":return ie(Be,Pe,Se);case"SequenceExpression":{let je=Be.getParentNode(0);if(je.type==="ExpressionStatement"||je.type==="ForStatement"){let Re=[];return Be.each((be,Le)=>{Le===0?Re.push(Se()):Re.push(",",c([r,Se()]))},"expressions"),o(Re)}return o(a([",",r],Be.map(Se,"expressions")))}case"ThisExpression":return"this";case"Super":return"super";case"Directive":return[Se("value"),Xe];case"DirectiveLiteral":return Ee(xe,Pe);case"UnaryExpression":return we.push(xe.operator),/[a-z]$/.test(xe.operator)&&we.push(" "),A(xe.argument)?we.push(o(["(",c([i,Se("argument")]),i,")"])):we.push(Se("argument")),we;case"UpdateExpression":return we.push(Se("argument"),xe.operator),xe.prefix&&we.reverse(),we;case"ConditionalExpression":return ue(Be,Pe,Se);case"VariableDeclaration":{let je=Be.map(Se,"declarations"),Re=Be.getParentNode(),be=Re.type==="ForStatement"||Re.type==="ForInStatement"||Re.type==="ForOfStatement",Le=xe.declarations.some(se=>se.init),qe;return je.length===1&&!A(xe.declarations[0])?qe=je[0]:je.length>0&&(qe=c(je[0])),we=[xe.declare?"declare ":"",xe.kind,qe?[" ",qe]:"",c(je.slice(1).map(se=>[",",Le&&!be?u:r,se]))],be&&Re.body!==xe||we.push(Xe),o(we)}case"WithStatement":return o(["with (",Se("object"),")",R(xe.body,Se("body"))]);case"IfStatement":{let je=R(xe.consequent,Se("consequent")),Re=o(["if (",o([c([i,Se("test")]),i]),")",je]);if(we.push(Re),xe.alternate){let be=A(xe.consequent,S.Trailing|S.Line)||P(xe),Le=xe.consequent.type==="BlockStatement"&&!be;we.push(Le?" ":u),A(xe,S.Dangling)&&we.push(t(Be,Pe,!0),be?u:" "),we.push("else",o(R(xe.alternate,Se("alternate"),xe.alternate.type==="IfStatement")))}return we}case"ForStatement":{let je=R(xe.body,Se("body")),Re=t(Be,Pe,!0),be=Re?[Re,i]:"";return!xe.init&&!xe.test&&!xe.update?[be,o(["for (;;)",je])]:[be,o(["for (",o([c([i,Se("init"),";",r,Se("test"),";",r,Se("update")]),i]),")",je])]}case"WhileStatement":return o(["while (",o([c([i,Se("test")]),i]),")",R(xe.body,Se("body"))]);case"ForInStatement":return o(["for (",Se("left")," in ",Se("right"),")",R(xe.body,Se("body"))]);case"ForOfStatement":return o(["for",xe.await?" await":""," (",Se("left")," of ",Se("right"),")",R(xe.body,Se("body"))]);case"DoWhileStatement":{let je=R(xe.body,Se("body"));return we=[o(["do",je])],xe.body.type==="BlockStatement"?we.push(" "):we.push(u),we.push("while (",o([c([i,Se("test")]),i]),")",Xe),we}case"DoExpression":return[xe.async?"async ":"","do ",Se("body")];case"BreakStatement":return we.push("break"),xe.label&&we.push(" ",Se("label")),we.push(Xe),we;case"ContinueStatement":return we.push("continue"),xe.label&&we.push(" ",Se("label")),we.push(Xe),we;case"LabeledStatement":return xe.body.type==="EmptyStatement"?[Se("label"),":;"]:[Se("label"),": ",Se("body")];case"TryStatement":return["try ",Se("block"),xe.handler?[" ",Se("handler")]:"",xe.finalizer?[" finally ",Se("finalizer")]:""];case"CatchClause":if(xe.param){let je=A(xe.param,be=>!N(be)||be.leading&&s(Pe.originalText,v(be))||be.trailing&&s(Pe.originalText,E(be),{backwards:!0})),Re=Se("param");return["catch ",je?["(",c([i,Re]),i,") "]:["(",Re,") "],Se("body")]}return["catch ",Se("body")];case"SwitchStatement":return[o(["switch (",c([i,Se("discriminant")]),i,")"])," {",xe.cases.length>0?c([u,a(u,Be.map((je,Re,be)=>{let Le=je.getValue();return[Se(),Re!==be.length-1&&k(Le,Pe)?u:""]},"cases"))]):"",u,"}"];case"SwitchCase":{xe.test?we.push("case ",Se("test"),":"):we.push("default:"),A(xe,S.Dangling)&&we.push(" ",t(Be,Pe,!0));let je=xe.consequent.filter(Re=>Re.type!=="EmptyStatement");if(je.length>0){let Re=he(Be,Pe,Se);we.push(je.length===1&&je[0].type==="BlockStatement"?[" ",Re]:c([u,Re]))}return we}case"DebuggerStatement":return["debugger",Xe];case"ClassDeclaration":case"ClassExpression":return z(Be,Pe,Se);case"ClassMethod":case"ClassPrivateMethod":case"MethodDefinition":return U(Be,Pe,Se);case"ClassProperty":case"PropertyDefinition":case"ClassPrivateProperty":case"ClassAccessorProperty":return le(Be,Pe,Se);case"TemplateElement":return y(xe.value.raw);case"TemplateLiteral":return De(Be,Se,Pe);case"TaggedTemplateExpression":return[Se("tag"),Se("typeParameters"),Se("quasi")];case"PrivateIdentifier":return["#",Se("name")];case"PrivateName":return["#",Se("id")];case"InterpreterDirective":return we.push("#!",xe.value,u),k(xe,Pe)&&we.push(u),we;case"TopicReference":return"%";case"ArgumentPlaceholder":return"?";case"ModuleExpression":{we.push("module {");let je=Se("body");return je&&we.push(c([u,je]),u),we.push("}"),we}default:throw new Error("unknown type: "+JSON.stringify(xe.type))}}function Ee(Be,Pe){let Se=C(Be),Qe=Se.slice(1,-1);if(Qe.includes('"')||Qe.includes("'"))return Se;let xe=Pe.singleQuote?"'":'"';return xe+Qe+xe}function We(Be){return Be.type&&!N(Be)&&!I(Be)&&Be.type!=="EmptyStatement"&&Be.type!=="TemplateElement"&&Be.type!=="Import"&&Be.type!=="TSEmptyBodyFunctionExpression"}n.exports={preprocess:w,print:J,embed:m,insertPragma:p,massageAstNode:d,hasPrettierIgnore(Be){return D(Be)||j(Be)},willPrintOwnComments:f.willPrintOwnComments,canAttachComment:We,printComment:Fe,isBlockComment:N,handleComments:{avoidAstMutation:!0,ownLine:f.handleOwnLineComment,endOfLine:f.handleEndOfLineComment,remaining:f.handleRemainingComment},getCommentChildNodes:f.getCommentChildNodes}}}),Gm=Z({"src/language-js/printer-estree-json.js"(e,n){"use strict";re();var{builders:{hardline:t,indent:s,join:a}}=Oe(),r=Qa();function u(c,y,m){let d=c.getValue();switch(d.type){case"JsonRoot":return[m("node"),t];case"ArrayExpression":{if(d.elements.length===0)return"[]";let p=c.map(()=>c.getValue()===null?"null":m(),"elements");return["[",s([t,a([",",t],p)]),t,"]"]}case"ObjectExpression":return d.properties.length===0?"{}":["{",s([t,a([",",t],c.map(m,"properties"))]),t,"}"];case"ObjectProperty":return[m("key"),": ",m("value")];case"UnaryExpression":return[d.operator==="+"?"":d.operator,m("argument")];case"NullLiteral":return"null";case"BooleanLiteral":return d.value?"true":"false";case"StringLiteral":case"NumericLiteral":return JSON.stringify(d.value);case"Identifier":{let p=c.getParentNode();return p&&p.type==="ObjectProperty"&&p.key===d?JSON.stringify(d.name):d.name}case"TemplateLiteral":return m(["quasis",0]);case"TemplateElement":return JSON.stringify(d.value.cooked);default:throw new Error("unknown type: "+JSON.stringify(d.type))}}var i=new Set(["start","end","extra","loc","comments","leadingComments","trailingComments","innerComments","errors","range","tokens"]);function o(c,y){let{type:m}=c;if(m==="ObjectProperty"&&c.key.type==="Identifier"){y.key={type:"StringLiteral",value:c.key.name};return}if(m==="UnaryExpression"&&c.operator==="+")return y.argument;if(m==="ArrayExpression"){for(let[d,p]of c.elements.entries())p===null&&y.elements.splice(d,0,{type:"NullLiteral"});return}if(m==="TemplateLiteral")return{type:"StringLiteral",value:c.quasis[0].value.cooked}}o.ignoredProperties=i,n.exports={preprocess:r,print:u,massageAstNode:o}}}),Lt=Z({"src/common/common-options.js"(e,n){"use strict";re();var t="Common";n.exports={bracketSpacing:{since:"0.0.0",category:t,type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},singleQuote:{since:"0.0.0",category:t,type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{since:"1.8.2",category:t,type:"choice",default:[{since:"1.8.2",value:!0},{since:"1.9.0",value:"preserve"}],description:"How to wrap prose.",choices:[{since:"1.9.0",value:"always",description:"Wrap prose if it exceeds the print width."},{since:"1.9.0",value:"never",description:"Do not wrap prose."},{since:"1.9.0",value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{since:"2.4.0",category:t,type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{since:"2.6.0",category:t,type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}}}}),Jm=Z({"src/language-js/options.js"(e,n){"use strict";re();var t=Lt(),s="JavaScript";n.exports={arrowParens:{since:"1.9.0",category:s,type:"choice",default:[{since:"1.9.0",value:"avoid"},{since:"2.0.0",value:"always"}],description:"Include parentheses around a sole arrow function parameter.",choices:[{value:"always",description:"Always include parens. Example: `(x) => x`"},{value:"avoid",description:"Omit parens when possible. Example: `x => x`"}]},bracketSameLine:t.bracketSameLine,bracketSpacing:t.bracketSpacing,jsxBracketSameLine:{since:"0.17.0",category:s,type:"boolean",description:"Put > on the last line instead of at a new line.",deprecated:"2.4.0"},semi:{since:"1.0.0",category:s,type:"boolean",default:!0,description:"Print semicolons.",oppositeDescription:"Do not print semicolons, except at the beginning of lines which may need them."},singleQuote:t.singleQuote,jsxSingleQuote:{since:"1.15.0",category:s,type:"boolean",default:!1,description:"Use single quotes in JSX."},quoteProps:{since:"1.17.0",category:s,type:"choice",default:"as-needed",description:"Change when properties in objects are quoted.",choices:[{value:"as-needed",description:"Only add quotes around object properties where required."},{value:"consistent",description:"If at least one property in an object requires quotes, quote all properties."},{value:"preserve",description:"Respect the input use of quotes in object properties."}]},trailingComma:{since:"0.0.0",category:s,type:"choice",default:[{since:"0.0.0",value:!1},{since:"0.19.0",value:"none"},{since:"2.0.0",value:"es5"}],description:"Print trailing commas wherever possible when multi-line.",choices:[{value:"es5",description:"Trailing commas where valid in ES5 (objects, arrays, etc.)"},{value:"none",description:"No trailing commas."},{value:"all",description:"Trailing commas wherever possible (including function arguments)."}]},singleAttributePerLine:t.singleAttributePerLine}}}),Um=Z({"src/language-js/parse/parsers.js"(){re()}}),Fn=Z({"node_modules/linguist-languages/data/JavaScript.json"(e,n){n.exports={name:"JavaScript",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:["js","node"],extensions:[".js","._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".jsx",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell"],languageId:183}}}),zm=Z({"node_modules/linguist-languages/data/TypeScript.json"(e,n){n.exports={name:"TypeScript",type:"programming",color:"#3178c6",aliases:["ts"],interpreters:["deno","ts-node"],extensions:[".ts",".cts",".mts"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",languageId:378}}}),Xm=Z({"node_modules/linguist-languages/data/TSX.json"(e,n){n.exports={name:"TSX",type:"programming",color:"#3178c6",group:"TypeScript",extensions:[".tsx"],tmScope:"source.tsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",languageId:94901924}}}),aa=Z({"node_modules/linguist-languages/data/JSON.json"(e,n){n.exports={name:"JSON",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".json",".4DForm",".4DProject",".avsc",".geojson",".gltf",".har",".ice",".JSON-tmLanguage",".jsonl",".mcmeta",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","Pipfile.lock","composer.lock","mcmod.info"],languageId:174}}}),Km=Z({"node_modules/linguist-languages/data/JSON with Comments.json"(e,n){n.exports={name:"JSON with Comments",type:"data",color:"#292929",group:"JSON",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["jsonc"],extensions:[".jsonc",".code-snippets",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[".babelrc",".devcontainer.json",".eslintrc.json",".jscsrc",".jshintrc",".jslintrc","api-extractor.json","devcontainer.json","jsconfig.json","language-configuration.json","tsconfig.json","tslint.json"],languageId:423}}}),Ym=Z({"node_modules/linguist-languages/data/JSON5.json"(e,n){n.exports={name:"JSON5",type:"data",color:"#267CB9",extensions:[".json5"],tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"application/json",languageId:175}}}),Qm=Z({"src/language-js/index.js"(e,n){"use strict";re();var t=Tt(),s=Hm(),a=Gm(),r=Jm(),u=Um(),i=[t(Fn(),c=>({since:"0.0.0",parsers:["babel","acorn","espree","meriyah","babel-flow","babel-ts","flow","typescript"],vscodeLanguageIds:["javascript","mongo"],interpreters:[...c.interpreters,"zx"],extensions:[...c.extensions.filter(y=>y!==".jsx"),".wxs"]})),t(Fn(),()=>({name:"Flow",since:"0.0.0",parsers:["flow","babel-flow"],vscodeLanguageIds:["javascript"],aliases:[],filenames:[],extensions:[".js.flow"]})),t(Fn(),()=>({name:"JSX",since:"0.0.0",parsers:["babel","babel-flow","babel-ts","flow","typescript","espree","meriyah"],vscodeLanguageIds:["javascriptreact"],aliases:void 0,filenames:void 0,extensions:[".jsx"],group:"JavaScript",interpreters:void 0,tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",color:void 0})),t(zm(),()=>({since:"1.4.0",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescript"]})),t(Xm(),()=>({since:"1.4.0",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescriptreact"]})),t(aa(),()=>({name:"JSON.stringify",since:"1.13.0",parsers:["json-stringify"],vscodeLanguageIds:["json"],extensions:[".importmap"],filenames:["package.json","package-lock.json","composer.json"]})),t(aa(),c=>({since:"1.5.0",parsers:["json"],vscodeLanguageIds:["json"],extensions:c.extensions.filter(y=>y!==".jsonl")})),t(Km(),c=>({since:"1.5.0",parsers:["json"],vscodeLanguageIds:["jsonc"],filenames:[...c.filenames,".eslintrc",".swcrc"]})),t(Ym(),()=>({since:"1.13.0",parsers:["json5"],vscodeLanguageIds:["json5"]}))],o={estree:s,"estree-json":a};n.exports={languages:i,options:r,printers:o,parsers:u}}}),Zm=Z({"src/language-css/clean.js"(e,n){"use strict";re();var{isFrontMatterNode:t}=Ue(),s=it(),a=new Set(["raw","raws","sourceIndex","source","before","after","trailingComma"]);function r(i,o,c){if(t(i)&&i.lang==="yaml"&&delete o.value,i.type==="css-comment"&&c.type==="css-root"&&c.nodes.length>0&&((c.nodes[0]===i||t(c.nodes[0])&&c.nodes[1]===i)&&(delete o.text,/^\*\s*@(?:format|prettier)\s*$/.test(i.text))||c.type==="css-root"&&s(c.nodes)===i))return null;if(i.type==="value-root"&&delete o.text,(i.type==="media-query"||i.type==="media-query-list"||i.type==="media-feature-expression")&&delete o.value,i.type==="css-rule"&&delete o.params,i.type==="selector-combinator"&&(o.value=o.value.replace(/\s+/g," ")),i.type==="media-feature"&&(o.value=o.value.replace(/ /g,"")),(i.type==="value-word"&&(i.isColor&&i.isHex||["initial","inherit","unset","revert"].includes(o.value.replace().toLowerCase()))||i.type==="media-feature"||i.type==="selector-root-invalid"||i.type==="selector-pseudo")&&(o.value=o.value.toLowerCase()),i.type==="css-decl"&&(o.prop=o.prop.toLowerCase()),(i.type==="css-atrule"||i.type==="css-import")&&(o.name=o.name.toLowerCase()),i.type==="value-number"&&(o.unit=o.unit.toLowerCase()),(i.type==="media-feature"||i.type==="media-keyword"||i.type==="media-type"||i.type==="media-unknown"||i.type==="media-url"||i.type==="media-value"||i.type==="selector-attribute"||i.type==="selector-string"||i.type==="selector-class"||i.type==="selector-combinator"||i.type==="value-string")&&o.value&&(o.value=u(o.value)),i.type==="selector-attribute"&&(o.attribute=o.attribute.trim(),o.namespace&&typeof o.namespace=="string"&&(o.namespace=o.namespace.trim(),o.namespace.length===0&&(o.namespace=!0)),o.value&&(o.value=o.value.trim().replace(/^["']|["']$/g,""),delete o.quoted)),(i.type==="media-value"||i.type==="media-type"||i.type==="value-number"||i.type==="selector-root-invalid"||i.type==="selector-class"||i.type==="selector-combinator"||i.type==="selector-tag")&&o.value&&(o.value=o.value.replace(/([\d+.Ee-]+)([A-Za-z]*)/g,(y,m,d)=>{let p=Number(m);return Number.isNaN(p)?y:p+d.toLowerCase()})),i.type==="selector-tag"){let y=i.value.toLowerCase();["from","to"].includes(y)&&(o.value=y)}if(i.type==="css-atrule"&&i.name.toLowerCase()==="supports"&&delete o.value,i.type==="selector-unknown"&&delete o.value,i.type==="value-comma_group"){let y=i.groups.findIndex(m=>m.type==="value-number"&&m.unit==="...");y!==-1&&(o.groups[y].unit="",o.groups.splice(y+1,0,{type:"value-word",value:"...",isColor:!1,isHex:!1}))}}r.ignoredProperties=a;function u(i){return i.replace(/'/g,'"').replace(/\\([^\dA-Fa-f])/g,"$1")}n.exports=r}}),Jn=Z({"src/utils/front-matter/print.js"(e,n){"use strict";re();var{builders:{hardline:t,markAsRoot:s}}=Oe();function a(r,u){if(r.lang==="yaml"){let i=r.value.trim(),o=i?u(i,{parser:"yaml"},{stripTrailingHardline:!0}):"";return s([r.startDelimiter,t,o,o?t:"",r.endDelimiter])}}n.exports=a}}),ed=Z({"src/language-css/embed.js"(e,n){"use strict";re();var{builders:{hardline:t}}=Oe(),s=Jn();function a(r,u,i){let o=r.getValue();if(o.type==="front-matter"){let c=s(o,i);return c?[c,t]:""}}n.exports=a}}),ao=Z({"src/utils/front-matter/parse.js"(e,n){"use strict";re();var t=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function s(a){let r=a.match(t);if(!r)return{content:a};let{startDelimiter:u,language:i,value:o="",endDelimiter:c}=r.groups,y=i.trim()||"yaml";if(u==="+++"&&(y="toml"),y!=="yaml"&&u!==c)return{content:a};let[m]=r;return{frontMatter:{type:"front-matter",lang:y,value:o,startDelimiter:u,endDelimiter:c,raw:m.replace(/\n$/,"")},content:m.replace(/[^\n]/g," ")+a.slice(m.length)}}n.exports=s}}),td=Z({"src/language-css/pragma.js"(e,n){"use strict";re();var t=Ka(),s=ao();function a(u){return t.hasPragma(s(u).content)}function r(u){let{frontMatter:i,content:o}=s(u);return(i?i.raw+` + +`:"")+t.insertPragma(o)}n.exports={hasPragma:a,insertPragma:r}}}),rd=Z({"src/language-css/utils/index.js"(e,n){"use strict";re();var t=new Set(["red","green","blue","alpha","a","rgb","hue","h","saturation","s","lightness","l","whiteness","w","blackness","b","tint","shade","blend","blenda","contrast","hsl","hsla","hwb","hwba"]);function s(G,z){let U=Array.isArray(z)?z:[z],le=-1,ge;for(;ge=G.getParentNode(++le);)if(U.includes(ge.type))return le;return-1}function a(G,z){let U=s(G,z);return U===-1?null:G.getParentNode(U)}function r(G){var z;let U=a(G,"css-decl");return U==null||(z=U.prop)===null||z===void 0?void 0:z.toLowerCase()}var u=new Set(["initial","inherit","unset","revert"]);function i(G){return u.has(G.toLowerCase())}function o(G,z){let U=a(G,"css-atrule");return(U==null?void 0:U.name)&&U.name.toLowerCase().endsWith("keyframes")&&["from","to"].includes(z.toLowerCase())}function c(G){return G.includes("$")||G.includes("@")||G.includes("#")||G.startsWith("%")||G.startsWith("--")||G.startsWith(":--")||G.includes("(")&&G.includes(")")?G:G.toLowerCase()}function y(G,z){var U;let le=a(G,"value-func");return(le==null||(U=le.value)===null||U===void 0?void 0:U.toLowerCase())===z}function m(G){var z;let U=a(G,"css-rule"),le=U==null||(z=U.raws)===null||z===void 0?void 0:z.selector;return le&&(le.startsWith(":import")||le.startsWith(":export"))}function d(G,z){let U=Array.isArray(z)?z:[z],le=a(G,"css-atrule");return le&&U.includes(le.name.toLowerCase())}function p(G){let z=G.getValue(),U=a(G,"css-atrule");return(U==null?void 0:U.name)==="import"&&z.groups[0].value==="url"&&z.groups.length===2}function f(G){return G.type==="value-func"&&G.value.toLowerCase()==="url"}function h(G,z){var U;let le=(U=G.getParentNode())===null||U===void 0?void 0:U.nodes;return le&&le.indexOf(z)===le.length-1}function w(G){let{selector:z}=G;return z?typeof z=="string"&&/^@.+:.*$/.test(z)||z.value&&/^@.+:.*$/.test(z.value):!1}function T(G){return G.type==="value-word"&&["from","through","end"].includes(G.value)}function A(G){return G.type==="value-word"&&["and","or","not"].includes(G.value)}function S(G){return G.type==="value-word"&&G.value==="in"}function B(G){return G.type==="value-operator"&&G.value==="*"}function I(G){return G.type==="value-operator"&&G.value==="/"}function k(G){return G.type==="value-operator"&&G.value==="+"}function P(G){return G.type==="value-operator"&&G.value==="-"}function C(G){return G.type==="value-operator"&&G.value==="%"}function D(G){return B(G)||I(G)||k(G)||P(G)||C(G)}function g(G){return G.type==="value-word"&&["==","!="].includes(G.value)}function F(G){return G.type==="value-word"&&["<",">","<=",">="].includes(G.value)}function l(G){return G.type==="css-atrule"&&["if","else","for","each","while"].includes(G.name)}function E(G){var z;return((z=G.raws)===null||z===void 0?void 0:z.params)&&/^\(\s*\)$/.test(G.raws.params)}function v(G){return G.name.startsWith("prettier-placeholder")}function N(G){return G.prop.startsWith("@prettier-placeholder")}function x(G,z){return G.value==="$$"&&G.type==="value-func"&&(z==null?void 0:z.type)==="value-word"&&!z.raws.before}function b(G){var z,U;return((z=G.value)===null||z===void 0?void 0:z.type)==="value-root"&&((U=G.value.group)===null||U===void 0?void 0:U.type)==="value-value"&&G.prop.toLowerCase()==="composes"}function L(G){var z,U,le;return((z=G.value)===null||z===void 0||(U=z.group)===null||U===void 0||(le=U.group)===null||le===void 0?void 0:le.type)==="value-paren_group"&&G.value.group.group.open!==null&&G.value.group.group.close!==null}function M(G){var z;return((z=G.raws)===null||z===void 0?void 0:z.before)===""}function j(G){var z,U;return G.type==="value-comma_group"&&((z=G.groups)===null||z===void 0||(U=z[1])===null||U===void 0?void 0:U.type)==="value-colon"}function $(G){var z;return G.type==="value-paren_group"&&((z=G.groups)===null||z===void 0?void 0:z[0])&&j(G.groups[0])}function V(G){var z;let U=G.getValue();if(U.groups.length===0)return!1;let le=G.getParentNode(1);if(!$(U)&&!(le&&$(le)))return!1;let ge=a(G,"css-decl");return!!(ge!=null&&(z=ge.prop)!==null&&z!==void 0&&z.startsWith("$")||$(le)||le.type==="value-func")}function q(G){return G.type==="value-comment"&&G.inline}function Y(G){return G.type==="value-word"&&G.value==="#"}function H(G){return G.type==="value-word"&&G.value==="{"}function R(G){return G.type==="value-word"&&G.value==="}"}function Q(G){return["value-word","value-atword"].includes(G.type)}function ee(G){return(G==null?void 0:G.type)==="value-colon"}function te(G,z){if(!j(z))return!1;let{groups:U}=z,le=U.indexOf(G);return le===-1?!1:ee(U[le+1])}function oe(G){return G.value&&["not","and","or"].includes(G.value.toLowerCase())}function W(G){return G.type!=="value-func"?!1:t.has(G.value.toLowerCase())}function X(G){return/\/\//.test(G.split(/[\n\r]/).pop())}function ue(G){return(G==null?void 0:G.type)==="value-atword"&&G.value.startsWith("prettier-placeholder-")}function De(G,z){var U,le;if(((U=G.open)===null||U===void 0?void 0:U.value)!=="("||((le=G.close)===null||le===void 0?void 0:le.value)!==")"||G.groups.some(ge=>ge.type!=="value-comma_group"))return!1;if(z.type==="value-comma_group"){let ge=z.groups.indexOf(G)-1,Ae=z.groups[ge];if((Ae==null?void 0:Ae.type)==="value-word"&&Ae.value==="with")return!0}return!1}function ie(G){var z,U;return G.type==="value-paren_group"&&((z=G.open)===null||z===void 0?void 0:z.value)==="("&&((U=G.close)===null||U===void 0?void 0:U.value)===")"}n.exports={getAncestorCounter:s,getAncestorNode:a,getPropOfDeclNode:r,maybeToLowerCase:c,insideValueFunctionNode:y,insideICSSRuleNode:m,insideAtRuleNode:d,insideURLFunctionInImportAtRuleNode:p,isKeyframeAtRuleKeywords:o,isWideKeywords:i,isLastNode:h,isSCSSControlDirectiveNode:l,isDetachedRulesetDeclarationNode:w,isRelationalOperatorNode:F,isEqualityOperatorNode:g,isMultiplicationNode:B,isDivisionNode:I,isAdditionNode:k,isSubtractionNode:P,isModuloNode:C,isMathOperatorNode:D,isEachKeywordNode:S,isForKeywordNode:T,isURLFunctionNode:f,isIfElseKeywordNode:A,hasComposesNode:b,hasParensAroundNode:L,hasEmptyRawBefore:M,isDetachedRulesetCallNode:E,isTemplatePlaceholderNode:v,isTemplatePropNode:N,isPostcssSimpleVarNode:x,isKeyValuePairNode:j,isKeyValuePairInParenGroupNode:$,isKeyInValuePairNode:te,isSCSSMapItemNode:V,isInlineValueCommentNode:q,isHashNode:Y,isLeftCurlyBraceNode:H,isRightCurlyBraceNode:R,isWordNode:Q,isColonNode:ee,isMediaAndSupportsKeywords:oe,isColorAdjusterFuncNode:W,lastLineHasInlineComment:X,isAtWordPlaceholderNode:ue,isConfigurationNode:De,isParenGroupNode:ie}}}),nd=Z({"src/utils/line-column-to-index.js"(e,n){"use strict";re(),n.exports=function(t,s){let a=0;for(let r=0;r0?m:""]}case"css-comment":{let He=se.inline||se.raws.inline,Me=Le.originalText.slice(Ie(se),Fe(se));return He?Me.trimEnd():Me}case"css-rule":return[qe("selector"),se.important?" !important":"",se.nodes?[se.selector&&se.selector.type==="selector-unknown"&&K(se.selector.value)?y:" ","{",se.nodes.length>0?h([m,We(be,Le,qe)]):"",m,"}",M(se)?";":""]:";"];case"css-decl":{let He=be.getParentNode(),{between:Me}=se.raws,ze=Me.trim(),nt=ze===":",tt=W(se)?S(qe("value")):qe("value");return!nt&&K(ze)&&(tt=h([m,w(tt)])),[se.raws.before.replace(/[\s;]/g,""),l(be)?se.prop:g(se.prop),ze.startsWith("//")?" ":"",ze,se.extend?"":" ",me(Le)&&se.extend&&se.selector?["extend(",qe("selector"),")"]:"",tt,se.raws.important?se.raws.important.replace(/\s*!\s*important/i," !important"):se.important?" !important":"",se.raws.scssDefault?se.raws.scssDefault.replace(/\s*!default/i," !default"):se.scssDefault?" !default":"",se.raws.scssGlobal?se.raws.scssGlobal.replace(/\s*!global/i," !global"):se.scssGlobal?" !global":"",se.nodes?[" {",h([d,We(be,Le,qe)]),d,"}"]:U(se)&&!He.raws.semicolon&&Le.originalText[Fe(se)-1]!==";"?"":Le.__isHTMLStyleAttribute&&b(be,se)?T(";"):";"]}case"css-atrule":{let He=be.getParentNode(),Me=z(se)&&!He.raws.semicolon&&Le.originalText[Fe(se)-1]!==";";if(me(Le)){if(se.mixin)return[qe("selector"),se.important?" !important":"",Me?"":";"];if(se.function)return[se.name,qe("params"),Me?"":";"];if(se.variable)return["@",se.name,": ",se.value?qe("value"):"",se.raws.between.trim()?se.raws.between.trim()+" ":"",se.nodes?["{",h([se.nodes.length>0?d:"",We(be,Le,qe)]),d,"}"]:"",Me?"":";"]}return["@",G(se)||se.name.endsWith(":")?se.name:g(se.name),se.params?[G(se)?"":z(se)?se.raws.afterName===""?"":se.name.endsWith(":")?" ":/^\s*\n\s*\n/.test(se.raws.afterName)?[m,m]:/^\s*\n/.test(se.raws.afterName)?m:" ":" ",qe("params")]:"",se.selector?h([" ",qe("selector")]):"",se.value?p([" ",qe("value"),L(se)?X(se)?" ":y:""]):se.name==="else"?" ":"",se.nodes?[L(se)?"":se.selector&&!se.selector.nodes&&typeof se.selector.value=="string"&&K(se.selector.value)||!se.selector&&typeof se.params=="string"&&K(se.params)?y:" ","{",h([se.nodes.length>0?d:"",We(be,Le,qe)]),d,"}"]:Me?"":";"]}case"media-query-list":{let He=[];return be.each(Me=>{let ze=Me.getValue();ze.type==="media-query"&&ze.value===""||He.push(qe())},"nodes"),p(h(c(y,He)))}case"media-query":return[c(" ",be.map(qe,"nodes")),b(be,se)?"":","];case"media-type":return je(Xe(se.value,Le));case"media-feature-expression":return se.nodes?["(",...be.map(qe,"nodes"),")"]:se.value;case"media-feature":return g(Xe(se.value.replace(/ +/g," "),Le));case"media-colon":return[se.value," "];case"media-value":return je(Xe(se.value,Le));case"media-keyword":return Xe(se.value,Le);case"media-url":return Xe(se.value.replace(/^url\(\s+/gi,"url(").replace(/\s+\)$/g,")"),Le);case"media-unknown":return se.value;case"selector-root":return p([E(be,"custom-selector")?[C(be,"css-atrule").customSelector,y]:"",c([",",E(be,["extend","custom-selector","nest"])?y:m],be.map(qe,"nodes"))]);case"selector-selector":return p(h(be.map(qe,"nodes")));case"selector-comment":return se.value;case"selector-string":return Xe(se.value,Le);case"selector-tag":{let He=be.getParentNode(),Me=He&&He.nodes.indexOf(se),ze=Me&&He.nodes[Me-1];return[se.namespace?[se.namespace===!0?"":se.namespace.trim(),"|"]:"",ze.type==="selector-nesting"?se.value:je(N(be,se.value)?se.value.toLowerCase():se.value)]}case"selector-id":return["#",se.value];case"selector-class":return[".",je(Xe(se.value,Le))];case"selector-attribute":return["[",se.namespace?[se.namespace===!0?"":se.namespace.trim(),"|"]:"",se.attribute.trim(),se.operator?se.operator:"",se.value?we(Xe(se.value.trim(),Le),Le):"",se.insensitive?" i":"","]"];case"selector-combinator":{if(se.value==="+"||se.value===">"||se.value==="~"||se.value===">>>"){let ze=be.getParentNode();return[ze.type==="selector-selector"&&ze.nodes[0]===se?"":y,se.value,b(be,se)?"":" "]}let He=se.value.trim().startsWith("(")?y:"",Me=je(Xe(se.value.trim(),Le))||y;return[He,Me]}case"selector-universal":return[se.namespace?[se.namespace===!0?"":se.namespace.trim(),"|"]:"",se.value];case"selector-pseudo":return[g(se.value),o(se.nodes)?["(",c(", ",be.map(qe,"nodes")),")"]:""];case"selector-nesting":return se.value;case"selector-unknown":{let He=C(be,"css-rule");if(He&&He.isSCSSNesterProperty)return je(Xe(g(se.value),Le));let Me=be.getParentNode();if(Me.raws&&Me.raws.selector){let nt=Ie(Me),tt=nt+Me.raws.selector.length;return Le.originalText.slice(nt,tt).trim()}let ze=be.getParentNode(1);if(Me.type==="value-paren_group"&&ze&&ze.type==="value-func"&&ze.value==="selector"){let nt=Fe(Me.open)+1,tt=Ie(Me.close),pt=Le.originalText.slice(nt,tt).trim();return K(pt)?[A,pt]:pt}return se.value}case"value-value":case"value-root":return qe("group");case"value-comment":return Le.originalText.slice(Ie(se),Fe(se));case"value-comma_group":{let He=be.getParentNode(),Me=be.getParentNode(1),ze=D(be),nt=ze&&He.type==="value-value"&&(ze==="grid"||ze.startsWith("grid-template")),tt=C(be,"css-atrule"),pt=tt&&L(tt),O=se.groups.some(ut=>Ae(ut)),fe=be.map(qe,"groups"),Te=[],$e=F(be,"url"),Je=!1,Ze=!1;for(let ut=0;ut0&&se.groups[0].type==="value-comma_group"&&se.groups[0].groups.length>0&&se.groups[0].groups[0].type==="value-word"&&se.groups[0].groups[0].value.startsWith("data:")))return[se.open?qe("open"):"",c(",",be.map(qe,"groups")),se.close?qe("close"):""];if(!se.open){let $e=be.map(qe,"groups"),Je=[];for(let Ze=0;Ze<$e.length;Ze++)Ze!==0&&Je.push([",",y]),Je.push($e[Ze]);return p(h(f(Je)))}let Me=ge(be),ze=t(se.groups),nt=ze&&ze.type==="value-comment",tt=ie(se,He),pt=ye(se,He),O=pt||Me&&!tt,fe=pt||tt,Te=p([se.open?qe("open"):"",h([d,c([y],be.map(($e,Je)=>{let Ze=$e.getValue(),ut=Je===se.groups.length-1,rt=[qe(),ut?"":","];if(De(Ze)&&Ze.type==="value-comma_group"&&Ze.groups&&Ze.groups[0].type!=="value-paren_group"&&Ze.groups[2]&&Ze.groups[2].type==="value-paren_group"){let Ve=B(rt[0].contents.contents);return Ve[1]=p(Ve[1]),p(w(rt))}if(!ut&&Ze.type==="value-comma_group"&&o(Ze.groups)){let Ve=t(Ze.groups);Ve.source&&i(Le.originalText,Ve,Fe)&&rt.push(m)}return rt},"groups"))]),T(!nt&&_(Le.parser,Le.originalText)&&Me&&ne(Le)?",":""),d,se.close?qe("close"):""],{shouldBreak:O});return fe?w(Te):Te}case"value-func":return[se.value,E(be,"supports")&&ae(se)?" ":"",qe("group")];case"value-paren":return se.value;case"value-number":return[Re(se.value),J(se.unit)];case"value-operator":return se.value;case"value-word":return se.isColor&&se.isHex||x(se.value)?se.value.toLowerCase():se.value;case"value-colon":{let He=be.getParentNode(),Me=He&&He.groups.indexOf(se),ze=Me&&He.groups[Me-1];return[se.value,ze&&typeof ze.value=="string"&&t(ze.value)==="\\"||F(be,"url")?"":y]}case"value-comma":return[se.value," "];case"value-string":return a(se.raws.quote+se.value+se.raws.quote,Le);case"value-atword":return["@",se.value];case"value-unicode-range":return se.value;case"value-unknown":return se.value;default:throw new Error("Unknown postcss type ".concat(JSON.stringify(se.type)))}}function We(be,Le,qe){let se=[];return be.each((He,Me,ze)=>{let nt=ze[Me-1];if(nt&&nt.type==="css-comment"&&nt.text.trim()==="prettier-ignore"){let tt=He.getValue();se.push(Le.originalText.slice(Ie(tt),Fe(tt)))}else se.push(qe());Me!==ze.length-1&&(ze[Me+1].type==="css-comment"&&!r(Le.originalText,Ie(ze[Me+1]),{backwards:!0})&&!u(ze[Me])||ze[Me+1].type==="css-atrule"&&ze[Me+1].name==="else"&&ze[Me].type!=="css-comment"?se.push(" "):(se.push(Le.__isHTMLStyleAttribute?y:m),i(Le.originalText,He.getValue(),Fe)&&!u(ze[Me])&&se.push(m)))},"nodes"),se}var Be=/(["'])(?:(?!\1)[^\\]|\\.)*\1/gs,Pe=/(?:\d*\.\d+|\d+\.?)(?:[Ee][+-]?\d+)?/g,Se=/[A-Za-z]+/g,Qe=/[$@]?[A-Z_a-z\u0080-\uFFFF][\w\u0080-\uFFFF-]*/g,xe=new RegExp(Be.source+"|(".concat(Qe.source,")?(").concat(Pe.source,")(").concat(Se.source,")?"),"g");function Xe(be,Le){return be.replace(Be,qe=>a(qe,Le))}function we(be,Le){let qe=Le.singleQuote?"'":'"';return be.includes('"')||be.includes("'")?be:qe+be+qe}function je(be){return be.replace(xe,(Le,qe,se,He,Me)=>!se&&He?Re(He)+g(Me||""):Le)}function Re(be){return s(be).replace(/\.0(?=$|e)/,"")}n.exports={print:Ee,embed:k,insertPragma:P,massageAstNode:I}}}),cd=Z({"src/language-css/options.js"(e,n){"use strict";re();var t=Lt();n.exports={singleQuote:t.singleQuote}}}),pd=Z({"src/language-css/parsers.js"(){re()}}),fd=Z({"node_modules/linguist-languages/data/CSS.json"(e,n){n.exports={name:"CSS",type:"markup",tmScope:"source.css",aceMode:"css",codemirrorMode:"css",codemirrorMimeType:"text/css",color:"#563d7c",extensions:[".css"],languageId:50}}}),Dd=Z({"node_modules/linguist-languages/data/PostCSS.json"(e,n){n.exports={name:"PostCSS",type:"markup",color:"#dc3a0c",tmScope:"source.postcss",group:"CSS",extensions:[".pcss",".postcss"],aceMode:"text",languageId:262764437}}}),md=Z({"node_modules/linguist-languages/data/Less.json"(e,n){n.exports={name:"Less",type:"markup",color:"#1d365d",aliases:["less-css"],extensions:[".less"],tmScope:"source.css.less",aceMode:"less",codemirrorMode:"css",codemirrorMimeType:"text/css",languageId:198}}}),dd=Z({"node_modules/linguist-languages/data/SCSS.json"(e,n){n.exports={name:"SCSS",type:"markup",color:"#c6538c",tmScope:"source.css.scss",aceMode:"scss",codemirrorMode:"css",codemirrorMimeType:"text/x-scss",extensions:[".scss"],languageId:329}}}),gd=Z({"src/language-css/index.js"(e,n){"use strict";re();var t=Tt(),s=ld(),a=cd(),r=pd(),u=[t(fd(),o=>({since:"1.4.0",parsers:["css"],vscodeLanguageIds:["css"],extensions:[...o.extensions,".wxss"]})),t(Dd(),()=>({since:"1.4.0",parsers:["css"],vscodeLanguageIds:["postcss"]})),t(md(),()=>({since:"1.4.0",parsers:["less"],vscodeLanguageIds:["less"]})),t(dd(),()=>({since:"1.4.0",parsers:["scss"],vscodeLanguageIds:["scss"]}))],i={postcss:s};n.exports={languages:u,options:a,printers:i,parsers:r}}}),yd=Z({"src/language-handlebars/loc.js"(e,n){"use strict";re();function t(a){return a.loc.start.offset}function s(a){return a.loc.end.offset}n.exports={locStart:t,locEnd:s}}}),hd=Z({"src/language-handlebars/clean.js"(e,n){"use strict";re();function t(s,a){if(s.type==="TextNode"){let r=s.chars.trim();if(!r)return null;a.chars=r.replace(/[\t\n\f\r ]+/g," ")}s.type==="AttrNode"&&s.name.toLowerCase()==="class"&&delete a.value}t.ignoredProperties=new Set(["loc","selfClosing"]),n.exports=t}}),vd=Z({"vendors/html-void-elements.json"(e,n){n.exports={htmlVoidElements:["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","isindex","keygen","link","menuitem","meta","nextid","param","source","track","wbr"]}}}),Cd=Z({"src/language-handlebars/utils.js"(e,n){"use strict";re();var{htmlVoidElements:t}=vd(),s=it();function a(S){let B=S.getValue(),I=S.getParentNode(0);return!!(m(S,["ElementNode"])&&s(I.children)===B||m(S,["Block"])&&s(I.body)===B)}function r(S){return S.toUpperCase()===S}function u(S){return y(S,["ElementNode"])&&typeof S.tag=="string"&&!S.tag.startsWith(":")&&(r(S.tag[0])||S.tag.includes("."))}var i=new Set(t);function o(S){return i.has(S.tag)||u(S)&&S.children.every(B=>c(B))}function c(S){return y(S,["TextNode"])&&!/\S/.test(S.chars)}function y(S,B){return S&&B.includes(S.type)}function m(S,B){let I=S.getParentNode(0);return y(I,B)}function d(S,B){let I=h(S);return y(I,B)}function p(S,B){let I=w(S);return y(I,B)}function f(S,B){var I,k,P,C;let D=S.getValue(),g=(I=S.getParentNode(0))!==null&&I!==void 0?I:{},F=(k=(P=(C=g.children)!==null&&C!==void 0?C:g.body)!==null&&P!==void 0?P:g.parts)!==null&&k!==void 0?k:[],l=F.indexOf(D);return l!==-1&&F[l+B]}function h(S){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return f(S,-B)}function w(S){return f(S,1)}function T(S){return y(S,["MustacheCommentStatement"])&&typeof S.value=="string"&&S.value.trim()==="prettier-ignore"}function A(S){let B=S.getValue(),I=h(S,2);return T(B)||T(I)}n.exports={getNextNode:w,getPreviousNode:h,hasPrettierIgnore:A,isLastNodeOfSiblings:a,isNextNodeOfSomeType:p,isNodeOfSomeType:y,isParentOfSomeType:m,isPreviousNodeOfSomeType:d,isVoid:o,isWhitespaceNode:c}}}),Ed=Z({"src/language-handlebars/printer-glimmer.js"(e,n){"use strict";re();var{builders:{dedent:t,fill:s,group:a,hardline:r,ifBreak:u,indent:i,join:o,line:c,softline:y},utils:{getDocParts:m,replaceTextEndOfLine:d}}=Oe(),{getPreferredQuote:p,isNonEmptyArray:f}=Ue(),{locStart:h,locEnd:w}=yd(),T=hd(),{getNextNode:A,getPreviousNode:S,hasPrettierIgnore:B,isLastNodeOfSiblings:I,isNextNodeOfSomeType:k,isNodeOfSomeType:P,isParentOfSomeType:C,isPreviousNodeOfSomeType:D,isVoid:g,isWhitespaceNode:F}=Cd(),l=2;function E(K,he,ye){let Ce=K.getValue();if(!Ce)return"";if(B(K))return he.originalText.slice(h(Ce),w(Ce));let Ie=he.singleQuote?"'":'"';switch(Ce.type){case"Block":case"Program":case"Template":return a(K.map(ye,"body"));case"ElementNode":{let Fe=a(N(K,ye)),me=he.htmlWhitespaceSensitivity==="ignore"&&k(K,["ElementNode"])?y:"";if(g(Ce))return[Fe,me];let _=[""];return Ce.children.length===0?[Fe,i(_),me]:he.htmlWhitespaceSensitivity==="ignore"?[Fe,i(x(K,he,ye)),r,i(_),me]:[Fe,i(a(x(K,he,ye))),i(_),me]}case"BlockStatement":{let Fe=K.getParentNode(1);return Fe&&Fe.inverse&&Fe.inverse.body.length===1&&Fe.inverse.body[0]===Ce&&Fe.inverse.body[0].path.parts[0]==="if"?[ee(K,ye),ue(K,ye,he),De(K,ye,he)]:[R(K,ye),a([ue(K,ye,he),De(K,ye,he),te(K,ye,he)])]}case"ElementModifierStatement":return a(["{{",pe(K,ye),"}}"]);case"MustacheStatement":return a([L(Ce),pe(K,ye),M(Ce)]);case"SubExpression":return a(["(",ce(K,ye),y,")"]);case"AttrNode":{let Fe=Ce.value.type==="TextNode";if(Fe&&Ce.value.chars===""&&h(Ce.value)===w(Ce.value))return Ce.name;let _=Fe?p(Ce.value.chars,Ie).quote:Ce.value.type==="ConcatStatement"?p(Ce.value.parts.filter(ne=>ne.type==="TextNode").map(ne=>ne.chars).join(""),Ie).quote:"",J=ye("value");return[Ce.name,"=",_,Ce.name==="class"&&_?a(i(J)):J,_]}case"ConcatStatement":return K.map(ye,"parts");case"Hash":return o(c,K.map(ye,"pairs"));case"HashPair":return[Ce.key,"=",ye("value")];case"TextNode":{let Fe=Ce.chars.replace(/{{/g,"\\{{"),me=z(K);if(me){if(me==="class"){let xe=Fe.trim().split(/\s+/).join(" "),Xe=!1,we=!1;return C(K,["ConcatStatement"])&&(D(K,["MustacheStatement"])&&/^\s/.test(Fe)&&(Xe=!0),k(K,["MustacheStatement"])&&/\s$/.test(Fe)&&xe!==""&&(we=!0)),[Xe?c:"",xe,we?c:""]}return d(Fe)}let J=/^[\t\n\f\r ]*$/.test(Fe),ne=!S(K),Ee=!A(K);if(he.htmlWhitespaceSensitivity!=="ignore"){let xe=/^[\t\n\f\r ]*/,Xe=/[\t\n\f\r ]*$/,we=Ee&&C(K,["Template"]),je=ne&&C(K,["Template"]);if(J){if(je||we)return"";let se=[c],He=U(Fe);return He&&(se=Ae(He)),I(K)&&(se=se.map(Me=>t(Me))),se}let[Re]=Fe.match(xe),[be]=Fe.match(Xe),Le=[];if(Re){Le=[c];let se=U(Re);se&&(Le=Ae(se)),Fe=Fe.replace(xe,"")}let qe=[];if(be){if(!we){qe=[c];let se=U(be);se&&(qe=Ae(se)),I(K)&&(qe=qe.map(He=>t(He)))}Fe=Fe.replace(Xe,"")}return[...Le,s(ie(Fe)),...qe]}let We=U(Fe),Be=le(Fe),Pe=ge(Fe);if((ne||Ee)&&J&&C(K,["Block","ElementNode","Template"]))return"";J&&We?(Be=Math.min(We,l),Pe=0):(k(K,["BlockStatement","ElementNode"])&&(Pe=Math.max(Pe,1)),D(K,["BlockStatement","ElementNode"])&&(Be=Math.max(Be,1)));let Se="",Qe="";return Pe===0&&k(K,["MustacheStatement"])&&(Qe=" "),Be===0&&D(K,["MustacheStatement"])&&(Se=" "),ne&&(Be=0,Se=""),Ee&&(Pe=0,Qe=""),Fe=Fe.replace(/^[\t\n\f\r ]+/g,Se).replace(/[\t\n\f\r ]+$/,Qe),[...Ae(Be),s(ie(Fe)),...Ae(Pe)]}case"MustacheCommentStatement":{let Fe=h(Ce),me=w(Ce),_=he.originalText.charAt(Fe+2)==="~",J=he.originalText.charAt(me-3)==="~",ne=Ce.value.includes("}}")?"--":"";return["{{",_?"~":"","!",ne,Ce.value,ne,J?"~":"","}}"]}case"PathExpression":return Ce.original;case"BooleanLiteral":return String(Ce.value);case"CommentStatement":return[""];case"StringLiteral":{if(ke(K)){let Fe=he.singleQuote?'"':"'";return Ne(Ce.value,Fe)}return Ne(Ce.value,Ie)}case"NumberLiteral":return String(Ce.value);case"UndefinedLiteral":return"undefined";case"NullLiteral":return"null";default:throw new Error("unknown glimmer type: "+JSON.stringify(Ce.type))}}function v(K,he){return h(K)-h(he)}function N(K,he){let ye=K.getValue(),Ce=["attributes","modifiers","comments"].filter(Fe=>f(ye[Fe])),Ie=Ce.flatMap(Fe=>ye[Fe]).sort(v);for(let Fe of Ce)K.each(me=>{let _=Ie.indexOf(me.getValue());Ie.splice(_,1,[c,he()])},Fe);return f(ye.blockParams)&&Ie.push(c,ve(ye)),["<",ye.tag,i(Ie),b(ye)]}function x(K,he,ye){let Ie=K.getValue().children.every(Fe=>F(Fe));return he.htmlWhitespaceSensitivity==="ignore"&&Ie?"":K.map((Fe,me)=>{let _=ye();return me===0&&he.htmlWhitespaceSensitivity==="ignore"?[y,_]:_},"children")}function b(K){return g(K)?u([y,"/>"],[" />",y]):u([y,">"],">")}function L(K){let he=K.escaped===!1?"{{{":"{{",ye=K.strip&&K.strip.open?"~":"";return[he,ye]}function M(K){let he=K.escaped===!1?"}}}":"}}";return[K.strip&&K.strip.close?"~":"",he]}function j(K){let he=L(K),ye=K.openStrip.open?"~":"";return[he,ye,"#"]}function $(K){let he=M(K);return[K.openStrip.close?"~":"",he]}function V(K){let he=L(K),ye=K.closeStrip.open?"~":"";return[he,ye,"/"]}function q(K){let he=M(K);return[K.closeStrip.close?"~":"",he]}function Y(K){let he=L(K),ye=K.inverseStrip.open?"~":"";return[he,ye]}function H(K){let he=M(K);return[K.inverseStrip.close?"~":"",he]}function R(K,he){let ye=K.getValue(),Ce=j(ye),Ie=$(ye),Fe=[de(K,he)],me=ae(K,he);if(me&&Fe.push(c,me),f(ye.program.blockParams)){let _=ve(ye.program);Fe.push(c,_)}return a([Ce,i(Fe),y,Ie])}function Q(K,he){return[he.htmlWhitespaceSensitivity==="ignore"?r:"",Y(K),"else",H(K)]}function ee(K,he){let ye=K.getParentNode(1);return[Y(ye),"else if ",ae(K,he),H(ye)]}function te(K,he,ye){let Ce=K.getValue();return ye.htmlWhitespaceSensitivity==="ignore"?[oe(Ce)?y:r,V(Ce),he("path"),q(Ce)]:[V(Ce),he("path"),q(Ce)]}function oe(K){return P(K,["BlockStatement"])&&K.program.body.every(he=>F(he))}function W(K){return X(K)&&K.inverse.body.length===1&&P(K.inverse.body[0],["BlockStatement"])&&K.inverse.body[0].path.parts[0]==="if"}function X(K){return P(K,["BlockStatement"])&&K.inverse}function ue(K,he,ye){let Ce=K.getValue();if(oe(Ce))return"";let Ie=he("program");return ye.htmlWhitespaceSensitivity==="ignore"?i([r,Ie]):i(Ie)}function De(K,he,ye){let Ce=K.getValue(),Ie=he("inverse"),Fe=ye.htmlWhitespaceSensitivity==="ignore"?[r,Ie]:Ie;return W(Ce)?Fe:X(Ce)?[Q(Ce,ye),i(Fe)]:""}function ie(K){return m(o(c,G(K)))}function G(K){return K.split(/[\t\n\f\r ]+/)}function z(K){for(let he=0;he<2;he++){let ye=K.getParentNode(he);if(ye&&ye.type==="AttrNode")return ye.name.toLowerCase()}}function U(K){return K=typeof K=="string"?K:"",K.split(` +`).length-1}function le(K){K=typeof K=="string"?K:"";let he=(K.match(/^([^\S\n\r]*[\n\r])+/g)||[])[0]||"";return U(he)}function ge(K){K=typeof K=="string"?K:"";let he=(K.match(/([\n\r][^\S\n\r]*)+$/g)||[])[0]||"";return U(he)}function Ae(){let K=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return Array.from({length:Math.min(K,l)}).fill(r)}function Ne(K,he){let{quote:ye,regex:Ce}=p(K,he);return[ye,K.replace(Ce,"\\".concat(ye)),ye]}function ke(K){let he=0,ye=K.getParentNode(he);for(;ye&&P(ye,["SubExpression"]);)he++,ye=K.getParentNode(he);return!!(ye&&P(K.getParentNode(he+1),["ConcatStatement"])&&P(K.getParentNode(he+2),["AttrNode"]))}function ce(K,he){let ye=de(K,he),Ce=ae(K,he);return Ce?i([ye,c,a(Ce)]):ye}function pe(K,he){let ye=de(K,he),Ce=ae(K,he);return Ce?[i([ye,c,Ce]),y]:ye}function de(K,he){return he("path")}function ae(K,he){let ye=K.getValue(),Ce=[];if(ye.params.length>0){let Ie=K.map(he,"params");Ce.push(...Ie)}if(ye.hash&&ye.hash.pairs.length>0){let Ie=he("hash");Ce.push(Ie)}return Ce.length===0?"":o(c,Ce)}function ve(K){return["as |",K.blockParams.join(" "),"|"]}n.exports={print:E,massageAstNode:T}}}),Fd=Z({"src/language-handlebars/parsers.js"(){re()}}),Ad=Z({"node_modules/linguist-languages/data/Handlebars.json"(e,n){n.exports={name:"Handlebars",type:"markup",color:"#f7931e",aliases:["hbs","htmlbars"],extensions:[".handlebars",".hbs"],tmScope:"text.html.handlebars",aceMode:"handlebars",languageId:155}}}),Sd=Z({"src/language-handlebars/index.js"(e,n){"use strict";re();var t=Tt(),s=Ed(),a=Fd(),r=[t(Ad(),()=>({since:"2.3.0",parsers:["glimmer"],vscodeLanguageIds:["handlebars"]}))],u={glimmer:s};n.exports={languages:r,printers:u,parsers:a}}}),xd=Z({"src/language-graphql/pragma.js"(e,n){"use strict";re();function t(a){return/^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/.test(a)}function s(a){return`# @format + +`+a}n.exports={hasPragma:t,insertPragma:s}}}),bd=Z({"src/language-graphql/loc.js"(e,n){"use strict";re();function t(a){return typeof a.start=="number"?a.start:a.loc&&a.loc.start}function s(a){return typeof a.end=="number"?a.end:a.loc&&a.loc.end}n.exports={locStart:t,locEnd:s}}}),Td=Z({"src/language-graphql/printer-graphql.js"(e,n){"use strict";re();var{builders:{join:t,hardline:s,line:a,softline:r,group:u,indent:i,ifBreak:o}}=Oe(),{isNextLineEmpty:c,isNonEmptyArray:y}=Ue(),{insertPragma:m}=xd(),{locStart:d,locEnd:p}=bd();function f(k,P,C){let D=k.getValue();if(!D)return"";if(typeof D=="string")return D;switch(D.kind){case"Document":{let g=[];return k.each((F,l,E)=>{g.push(C()),l!==E.length-1&&(g.push(s),c(P.originalText,F.getValue(),p)&&g.push(s))},"definitions"),[...g,s]}case"OperationDefinition":{let g=P.originalText[d(D)]!=="{",F=Boolean(D.name);return[g?D.operation:"",g&&F?[" ",C("name")]:"",g&&!F&&y(D.variableDefinitions)?" ":"",y(D.variableDefinitions)?u(["(",i([r,t([o("",", "),r],k.map(C,"variableDefinitions"))]),r,")"]):"",h(k,C,D),D.selectionSet?!g&&!F?"":" ":"",C("selectionSet")]}case"FragmentDefinition":return["fragment ",C("name"),y(D.variableDefinitions)?u(["(",i([r,t([o("",", "),r],k.map(C,"variableDefinitions"))]),r,")"]):""," on ",C("typeCondition"),h(k,C,D)," ",C("selectionSet")];case"SelectionSet":return["{",i([s,t(s,w(k,P,C,"selections"))]),s,"}"];case"Field":return u([D.alias?[C("alias"),": "]:"",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):"",h(k,C,D),D.selectionSet?" ":"",C("selectionSet")]);case"Name":return D.value;case"StringValue":{if(D.block){let g=D.value.replace(/"""/g,"\\$&").split(` +`);return g.length===1&&(g[0]=g[0].trim()),g.every(F=>F==="")&&(g.length=0),t(s,['"""',...g,'"""'])}return['"',D.value.replace(/["\\]/g,"\\$&").replace(/\n/g,"\\n"),'"']}case"IntValue":case"FloatValue":case"EnumValue":return D.value;case"BooleanValue":return D.value?"true":"false";case"NullValue":return"null";case"Variable":return["$",C("name")];case"ListValue":return u(["[",i([r,t([o("",", "),r],k.map(C,"values"))]),r,"]"]);case"ObjectValue":return u(["{",P.bracketSpacing&&D.fields.length>0?" ":"",i([r,t([o("",", "),r],k.map(C,"fields"))]),r,o("",P.bracketSpacing&&D.fields.length>0?" ":""),"}"]);case"ObjectField":case"Argument":return[C("name"),": ",C("value")];case"Directive":return["@",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):""];case"NamedType":return C("name");case"VariableDefinition":return[C("variable"),": ",C("type"),D.defaultValue?[" = ",C("defaultValue")]:"",h(k,C,D)];case"ObjectTypeExtension":case"ObjectTypeDefinition":return[C("description"),D.description?s:"",D.kind==="ObjectTypeExtension"?"extend ":"","type ",C("name"),D.interfaces.length>0?[" implements ",...S(k,P,C)]:"",h(k,C,D),D.fields.length>0?[" {",i([s,t(s,w(k,P,C,"fields"))]),s,"}"]:""];case"FieldDefinition":return[C("description"),D.description?s:"",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):"",": ",C("type"),h(k,C,D)];case"DirectiveDefinition":return[C("description"),D.description?s:"","directive ","@",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):"",D.repeatable?" repeatable":""," on ",t(" | ",k.map(C,"locations"))];case"EnumTypeExtension":case"EnumTypeDefinition":return[C("description"),D.description?s:"",D.kind==="EnumTypeExtension"?"extend ":"","enum ",C("name"),h(k,C,D),D.values.length>0?[" {",i([s,t(s,w(k,P,C,"values"))]),s,"}"]:""];case"EnumValueDefinition":return[C("description"),D.description?s:"",C("name"),h(k,C,D)];case"InputValueDefinition":return[C("description"),D.description?D.description.block?s:a:"",C("name"),": ",C("type"),D.defaultValue?[" = ",C("defaultValue")]:"",h(k,C,D)];case"InputObjectTypeExtension":case"InputObjectTypeDefinition":return[C("description"),D.description?s:"",D.kind==="InputObjectTypeExtension"?"extend ":"","input ",C("name"),h(k,C,D),D.fields.length>0?[" {",i([s,t(s,w(k,P,C,"fields"))]),s,"}"]:""];case"SchemaExtension":return["extend schema",h(k,C,D),...D.operationTypes.length>0?[" {",i([s,t(s,w(k,P,C,"operationTypes"))]),s,"}"]:[]];case"SchemaDefinition":return[C("description"),D.description?s:"","schema",h(k,C,D)," {",D.operationTypes.length>0?i([s,t(s,w(k,P,C,"operationTypes"))]):"",s,"}"];case"OperationTypeDefinition":return[C("operation"),": ",C("type")];case"InterfaceTypeExtension":case"InterfaceTypeDefinition":return[C("description"),D.description?s:"",D.kind==="InterfaceTypeExtension"?"extend ":"","interface ",C("name"),D.interfaces.length>0?[" implements ",...S(k,P,C)]:"",h(k,C,D),D.fields.length>0?[" {",i([s,t(s,w(k,P,C,"fields"))]),s,"}"]:""];case"FragmentSpread":return["...",C("name"),h(k,C,D)];case"InlineFragment":return["...",D.typeCondition?[" on ",C("typeCondition")]:"",h(k,C,D)," ",C("selectionSet")];case"UnionTypeExtension":case"UnionTypeDefinition":return u([C("description"),D.description?s:"",u([D.kind==="UnionTypeExtension"?"extend ":"","union ",C("name"),h(k,C,D),D.types.length>0?[" =",o(""," "),i([o([a," "]),t([a,"| "],k.map(C,"types"))])]:""])]);case"ScalarTypeExtension":case"ScalarTypeDefinition":return[C("description"),D.description?s:"",D.kind==="ScalarTypeExtension"?"extend ":"","scalar ",C("name"),h(k,C,D)];case"NonNullType":return[C("type"),"!"];case"ListType":return["[",C("type"),"]"];default:throw new Error("unknown graphql type: "+JSON.stringify(D.kind))}}function h(k,P,C){if(C.directives.length===0)return"";let D=t(a,k.map(P,"directives"));return C.kind==="FragmentDefinition"||C.kind==="OperationDefinition"?u([a,D]):[" ",u(i([r,D]))]}function w(k,P,C,D){return k.map((g,F,l)=>{let E=C();return FC(E),"interfaces");for(let E=0;ED.value.trim()==="prettier-ignore")}n.exports={print:f,massageAstNode:B,hasPrettierIgnore:I,insertPragma:m,printComment:A,canAttachComment:T}}}),Bd=Z({"src/language-graphql/options.js"(e,n){"use strict";re();var t=Lt();n.exports={bracketSpacing:t.bracketSpacing}}}),Nd=Z({"src/language-graphql/parsers.js"(){re()}}),wd=Z({"node_modules/linguist-languages/data/GraphQL.json"(e,n){n.exports={name:"GraphQL",type:"data",color:"#e10098",extensions:[".graphql",".gql",".graphqls"],tmScope:"source.graphql",aceMode:"text",languageId:139}}}),_d=Z({"src/language-graphql/index.js"(e,n){"use strict";re();var t=Tt(),s=Td(),a=Bd(),r=Nd(),u=[t(wd(),()=>({since:"1.5.0",parsers:["graphql"],vscodeLanguageIds:["graphql"]}))],i={graphql:s};n.exports={languages:u,options:a,printers:i,parsers:r}}}),oo=Z({"src/language-markdown/loc.js"(e,n){"use strict";re();function t(a){return a.position.start.offset}function s(a){return a.position.end.offset}n.exports={locStart:t,locEnd:s}}}),Pd=Z({"src/language-markdown/constants.evaluate.js"(e,n){n.exports={cjkPattern:"(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?",kPattern:"[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]",punctuationPattern:"[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]"}}}),Un=Z({"src/language-markdown/utils.js"(e,n){"use strict";re();var{getLast:t}=Ue(),{locStart:s,locEnd:a}=oo(),{cjkPattern:r,kPattern:u,punctuationPattern:i}=Pd(),o=["liquidNode","inlineCode","emphasis","esComment","strong","delete","wikiLink","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break","inlineMath"],c=[...o,"tableCell","paragraph","heading"],y=new RegExp(u),m=new RegExp(i);function d(A,S){let B="non-cjk",I="cj-letter",k="k-letter",P="cjk-punctuation",C=[],D=(S.proseWrap==="preserve"?A:A.replace(new RegExp("(".concat(r,`) +(`).concat(r,")"),"g"),"$1$2")).split(/([\t\n ]+)/);for(let[F,l]of D.entries()){if(F%2===1){C.push({type:"whitespace",value:/\n/.test(l)?` +`:" "});continue}if((F===0||F===D.length-1)&&l==="")continue;let E=l.split(new RegExp("(".concat(r,")")));for(let[v,N]of E.entries())if(!((v===0||v===E.length-1)&&N==="")){if(v%2===0){N!==""&&g({type:"word",value:N,kind:B,hasLeadingPunctuation:m.test(N[0]),hasTrailingPunctuation:m.test(t(N))});continue}g(m.test(N)?{type:"word",value:N,kind:P,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:"word",value:N,kind:y.test(N)?k:I,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return C;function g(F){let l=t(C);l&&l.type==="word"&&(l.kind===B&&F.kind===I&&!l.hasTrailingPunctuation||l.kind===I&&F.kind===B&&!F.hasLeadingPunctuation?C.push({type:"whitespace",value:" "}):!E(B,P)&&![l.value,F.value].some(v=>/\u3000/.test(v))&&C.push({type:"whitespace",value:""})),C.push(F);function E(v,N){return l.kind===v&&F.kind===N||l.kind===N&&F.kind===v}}}function p(A,S){let[,B,I,k]=S.slice(A.position.start.offset,A.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/);return{numberText:B,marker:I,leadingSpaces:k}}function f(A,S){if(!A.ordered||A.children.length<2)return!1;let B=Number(p(A.children[0],S.originalText).numberText),I=Number(p(A.children[1],S.originalText).numberText);if(B===0&&A.children.length>2){let k=Number(p(A.children[2],S.originalText).numberText);return I===1&&k===1}return I===1}function h(A,S){let{value:B}=A;return A.position.end.offset===S.length&&B.endsWith(` +`)&&S.endsWith(` +`)?B.slice(0,-1):B}function w(A,S){return function B(I,k,P){let C=Object.assign({},S(I,k,P));return C.children&&(C.children=C.children.map((D,g)=>B(D,g,[C,...P]))),C}(A,null,[])}function T(A){if((A==null?void 0:A.type)!=="link"||A.children.length!==1)return!1;let[S]=A.children;return s(A)===s(S)&&a(A)===a(S)}n.exports={mapAst:w,splitText:d,punctuationPattern:i,getFencedCodeBlockValue:h,getOrderedListItemInfo:p,hasGitDiffFriendlyOrderedList:f,INLINE_NODE_TYPES:o,INLINE_NODE_WRAPPER_TYPES:c,isAutolink:T}}}),kd=Z({"src/language-markdown/embed.js"(e,n){"use strict";re();var{inferParserByLanguage:t,getMaxContinuousCount:s}=Ue(),{builders:{hardline:a,markAsRoot:r},utils:{replaceEndOfLine:u}}=Oe(),i=Jn(),{getFencedCodeBlockValue:o}=Un();function c(y,m,d,p){let f=y.getValue();if(f.type==="code"&&f.lang!==null){let h=t(f.lang,p);if(h){let w=p.__inJsTemplate?"~":"`",T=w.repeat(Math.max(3,s(f.value,w)+1)),A={parser:h};f.lang==="tsx"&&(A.filepath="dummy.tsx");let S=d(o(f,p.originalText),A,{stripTrailingHardline:!0});return r([T,f.lang,f.meta?" "+f.meta:"",a,u(S),a,T])}}switch(f.type){case"front-matter":return i(f,d);case"importExport":return[d(f.value,{parser:"babel"},{stripTrailingHardline:!0}),a];case"jsx":return d("<$>".concat(f.value,""),{parser:"__js_expression",rootMarker:"mdx"},{stripTrailingHardline:!0})}return null}n.exports=c}}),lo=Z({"src/language-markdown/pragma.js"(e,n){"use strict";re();var t=ao(),s=["format","prettier"];function a(r){let u="@(".concat(s.join("|"),")"),i=new RegExp([""),"{\\s*\\/\\*\\s*".concat(u,"\\s*\\*\\/\\s*}"),``)].join("|"),"m"),o=r.match(i);return(o==null?void 0:o.index)===0}n.exports={startWithPragma:a,hasPragma:r=>a(t(r).content.trimStart()),insertPragma:r=>{let u=t(r),i="");return u.frontMatter?"".concat(u.frontMatter.raw,` + +`).concat(i,` + +`).concat(u.content):"".concat(i,` + +`).concat(u.content)}}}}),Id=Z({"src/language-markdown/print-preprocess.js"(e,n){"use strict";re();var t=it(),{getOrderedListItemInfo:s,mapAst:a,splitText:r}=Un(),u=/^.$/su;function i(T,A){return T=y(T,A),T=p(T),T=c(T),T=h(T,A),T=w(T,A),T=f(T,A),T=o(T),T=m(T),T}function o(T){return a(T,A=>A.type!=="import"&&A.type!=="export"?A:Object.assign(Object.assign({},A),{},{type:"importExport"}))}function c(T){return a(T,A=>A.type!=="inlineCode"?A:Object.assign(Object.assign({},A),{},{value:A.value.replace(/\s+/g," ")}))}function y(T,A){return a(T,S=>S.type!=="text"||S.value==="*"||S.value==="_"||!u.test(S.value)||S.position.end.offset-S.position.start.offset===S.value.length?S:Object.assign(Object.assign({},S),{},{value:A.originalText.slice(S.position.start.offset,S.position.end.offset)}))}function m(T){return d(T,(A,S)=>A.type==="importExport"&&S.type==="importExport",(A,S)=>({type:"importExport",value:A.value+` + +`+S.value,position:{start:A.position.start,end:S.position.end}}))}function d(T,A,S){return a(T,B=>{if(!B.children)return B;let I=B.children.reduce((k,P)=>{let C=t(k);return C&&A(C,P)?k.splice(-1,1,S(C,P)):k.push(P),k},[]);return Object.assign(Object.assign({},B),{},{children:I})})}function p(T){return d(T,(A,S)=>A.type==="text"&&S.type==="text",(A,S)=>({type:"text",value:A.value+S.value,position:{start:A.position.start,end:S.position.end}}))}function f(T,A){return a(T,(S,B,I)=>{let[k]=I;if(S.type!=="text")return S;let{value:P}=S;return k.type==="paragraph"&&(B===0&&(P=P.trimStart()),B===k.children.length-1&&(P=P.trimEnd())),{type:"sentence",position:S.position,children:r(P,A)}})}function h(T,A){return a(T,(S,B,I)=>{if(S.type==="code"){let k=/^\n?(?: {4,}|\t)/.test(A.originalText.slice(S.position.start.offset,S.position.end.offset));if(S.isIndented=k,k)for(let P=0;P{if(I.type==="list"&&I.children.length>0){for(let C=0;C1)return!0;let D=S(k);if(D===-1)return!1;if(I.children.length===1)return D%A.tabWidth===0;let g=S(P);return D!==g?!1:D%A.tabWidth===0?!0:s(P,A.originalText).leadingSpaces.length>1}}n.exports=i}}),Ld=Z({"src/language-markdown/clean.js"(e,n){"use strict";re();var{isFrontMatterNode:t}=Ue(),{startWithPragma:s}=lo(),a=new Set(["position","raw"]);function r(u,i,o){if((u.type==="front-matter"||u.type==="code"||u.type==="yaml"||u.type==="import"||u.type==="export"||u.type==="jsx")&&delete i.value,u.type==="list"&&delete i.isAligned,(u.type==="list"||u.type==="listItem")&&(delete i.spread,delete i.loose),u.type==="text"||(u.type==="inlineCode"&&(i.value=u.value.replace(/[\t\n ]+/g," ")),u.type==="wikiLink"&&(i.value=u.value.trim().replace(/[\t\n]+/g," ")),(u.type==="definition"||u.type==="linkReference")&&(i.label=u.label.trim().replace(/[\t\n ]+/g," ").toLowerCase()),(u.type==="definition"||u.type==="link"||u.type==="image")&&u.title&&(i.title=u.title.replace(/\\(["')])/g,"$1")),o&&o.type==="root"&&o.children.length>0&&(o.children[0]===u||t(o.children[0])&&o.children[1]===u)&&u.type==="html"&&s(u.value)))return null}r.ignoredProperties=a,n.exports=r}}),jd=Z({"src/language-markdown/printer-markdown.js"(e,n){"use strict";re();var{getLast:t,getMinNotPresentContinuousCount:s,getMaxContinuousCount:a,getStringWidth:r,isNonEmptyArray:u}=Ue(),{builders:{breakParent:i,join:o,line:c,literalline:y,markAsRoot:m,hardline:d,softline:p,ifBreak:f,fill:h,align:w,indent:T,group:A,hardlineWithoutBreakParent:S},utils:{normalizeDoc:B,replaceTextEndOfLine:I},printer:{printDocToString:k}}=Oe(),P=kd(),{insertPragma:C}=lo(),{locStart:D,locEnd:g}=oo(),F=Id(),l=Ld(),{getFencedCodeBlockValue:E,hasGitDiffFriendlyOrderedList:v,splitText:N,punctuationPattern:x,INLINE_NODE_TYPES:b,INLINE_NODE_WRAPPER_TYPES:L,isAutolink:M}=Un(),j=new Set(["importExport"]),$=["heading","tableCell","link","wikiLink"],V=new Set(["listItem","definition","footnoteDefinition"]);function q(ce,pe,de){let ae=ce.getValue();if(le(ce))return N(pe.originalText.slice(ae.position.start.offset,ae.position.end.offset),pe).map(ve=>ve.type==="word"?ve.value:ve.value===""?"":oe(ce,ve.value,pe));switch(ae.type){case"front-matter":return pe.originalText.slice(ae.position.start.offset,ae.position.end.offset);case"root":return ae.children.length===0?"":[B(X(ce,pe,de)),j.has(De(ae).type)?"":d];case"paragraph":return ue(ce,pe,de,{postprocessor:h});case"sentence":return ue(ce,pe,de);case"word":{let ve=ae.value.replace(/\*/g,"\\$&").replace(new RegExp(["(^|".concat(x,")(_+)"),"(_+)(".concat(x,"|$)")].join("|"),"g"),(ye,Ce,Ie,Fe,me)=>(Ie?"".concat(Ce).concat(Ie):"".concat(Fe).concat(me)).replace(/_/g,"\\_")),K=(ye,Ce,Ie)=>ye.type==="sentence"&&Ie===0,he=(ye,Ce,Ie)=>M(ye.children[Ie-1]);return ve!==ae.value&&(ce.match(void 0,K,he)||ce.match(void 0,K,(ye,Ce,Ie)=>ye.type==="emphasis"&&Ie===0,he))&&(ve=ve.replace(/^(\\?[*_])+/,ye=>ye.replace(/\\/g,""))),ve}case"whitespace":{let ve=ce.getParentNode(),K=ve.children.indexOf(ae),he=ve.children[K+1],ye=he&&/^>|^(?:[*+-]|#{1,6}|\d+[).])$/.test(he.value)?"never":pe.proseWrap;return oe(ce,ae.value,{proseWrap:ye})}case"emphasis":{let ve;if(M(ae.children[0]))ve=pe.originalText[ae.position.start.offset];else{let K=ce.getParentNode(),he=K.children.indexOf(ae),ye=K.children[he-1],Ce=K.children[he+1];ve=ye&&ye.type==="sentence"&&ye.children.length>0&&t(ye.children).type==="word"&&!t(ye.children).hasTrailingPunctuation||Ce&&Ce.type==="sentence"&&Ce.children.length>0&&Ce.children[0].type==="word"&&!Ce.children[0].hasLeadingPunctuation||te(ce,"emphasis")?"*":"_"}return[ve,ue(ce,pe,de),ve]}case"strong":return["**",ue(ce,pe,de),"**"];case"delete":return["~~",ue(ce,pe,de),"~~"];case"inlineCode":{let ve=s(ae.value,"`"),K="`".repeat(ve||1),he=ve&&!/^\s/.test(ae.value)?" ":"";return[K,he,ae.value,he,K]}case"wikiLink":{let ve="";return pe.proseWrap==="preserve"?ve=ae.value:ve=ae.value.replace(/[\t\n]+/g," "),["[[",ve,"]]"]}case"link":switch(pe.originalText[ae.position.start.offset]){case"<":{let ve="mailto:",K=ae.url.startsWith(ve)&&pe.originalText.slice(ae.position.start.offset+1,ae.position.start.offset+1+ve.length)!==ve?ae.url.slice(ve.length):ae.url;return["<",K,">"]}case"[":return["[",ue(ce,pe,de),"](",ge(ae.url,")"),Ae(ae.title,pe),")"];default:return pe.originalText.slice(ae.position.start.offset,ae.position.end.offset)}case"image":return["![",ae.alt||"","](",ge(ae.url,")"),Ae(ae.title,pe),")"];case"blockquote":return["> ",w("> ",ue(ce,pe,de))];case"heading":return["#".repeat(ae.depth)+" ",ue(ce,pe,de)];case"code":{if(ae.isIndented){let he=" ".repeat(4);return w(he,[he,...I(ae.value,d)])}let ve=pe.__inJsTemplate?"~":"`",K=ve.repeat(Math.max(3,a(ae.value,ve)+1));return[K,ae.lang||"",ae.meta?" "+ae.meta:"",d,...I(E(ae,pe.originalText),d),d,K]}case"html":{let ve=ce.getParentNode(),K=ve.type==="root"&&t(ve.children)===ae?ae.value.trimEnd():ae.value,he=/^$/s.test(K);return I(K,he?d:m(y))}case"list":{let ve=R(ae,ce.getParentNode()),K=v(ae,pe);return ue(ce,pe,de,{processor:(he,ye)=>{let Ce=Fe(),Ie=he.getValue();if(Ie.children.length===2&&Ie.children[1].type==="html"&&Ie.children[0].position.start.column!==Ie.children[1].position.start.column)return[Ce,Y(he,pe,de,Ce)];return[Ce,w(" ".repeat(Ce.length),Y(he,pe,de,Ce))];function Fe(){let me=ae.ordered?(ye===0?ae.start:K?1:ae.start+ye)+(ve%2===0?". ":") "):ve%2===0?"- ":"* ";return ae.isAligned||ae.hasIndentedCodeblock?H(me,pe):me}}})}case"thematicBreak":{let ve=ee(ce,"list");return ve===-1?"---":R(ce.getParentNode(ve),ce.getParentNode(ve+1))%2===0?"***":"---"}case"linkReference":return["[",ue(ce,pe,de),"]",ae.referenceType==="full"?["[",ae.identifier,"]"]:ae.referenceType==="collapsed"?"[]":""];case"imageReference":switch(ae.referenceType){case"full":return["![",ae.alt||"","][",ae.identifier,"]"];default:return["![",ae.alt,"]",ae.referenceType==="collapsed"?"[]":""]}case"definition":{let ve=pe.proseWrap==="always"?c:" ";return A(["[",ae.identifier,"]:",T([ve,ge(ae.url),ae.title===null?"":[ve,Ae(ae.title,pe,!1)]])])}case"footnote":return["[^",ue(ce,pe,de),"]"];case"footnoteReference":return["[^",ae.identifier,"]"];case"footnoteDefinition":{let ve=ce.getParentNode().children[ce.getName()+1],K=ae.children.length===1&&ae.children[0].type==="paragraph"&&(pe.proseWrap==="never"||pe.proseWrap==="preserve"&&ae.children[0].position.start.line===ae.children[0].position.end.line);return["[^",ae.identifier,"]: ",K?ue(ce,pe,de):A([w(" ".repeat(4),ue(ce,pe,de,{processor:(he,ye)=>ye===0?A([p,de()]):de()})),ve&&ve.type==="footnoteDefinition"?p:""])]}case"table":return W(ce,pe,de);case"tableCell":return ue(ce,pe,de);case"break":return/\s/.test(pe.originalText[ae.position.start.offset])?[" ",m(y)]:["\\",d];case"liquidNode":return I(ae.value,d);case"importExport":return[ae.value,d];case"esComment":return["{/* ",ae.value," */}"];case"jsx":return ae.value;case"math":return["$$",d,ae.value?[...I(ae.value,d),d]:"","$$"];case"inlineMath":return pe.originalText.slice(D(ae),g(ae));case"tableRow":case"listItem":default:throw new Error("Unknown markdown type ".concat(JSON.stringify(ae.type)))}}function Y(ce,pe,de,ae){let ve=ce.getValue(),K=ve.checked===null?"":ve.checked?"[x] ":"[ ] ";return[K,ue(ce,pe,de,{processor:(he,ye)=>{if(ye===0&&he.getValue().type!=="list")return w(" ".repeat(K.length),de());let Ce=" ".repeat(Ne(pe.tabWidth-ae.length,0,3));return[Ce,w(Ce,de())]}})]}function H(ce,pe){let de=ae();return ce+" ".repeat(de>=4?0:de);function ae(){let ve=ce.length%pe.tabWidth;return ve===0?0:pe.tabWidth-ve}}function R(ce,pe){return Q(ce,pe,de=>de.ordered===ce.ordered)}function Q(ce,pe,de){let ae=-1;for(let ve of pe.children)if(ve.type===ce.type&&de(ve)?ae++:ae=-1,ve===ce)return ae}function ee(ce,pe){let de=Array.isArray(pe)?pe:[pe],ae=-1,ve;for(;ve=ce.getParentNode(++ae);)if(de.includes(ve.type))return ae;return-1}function te(ce,pe){let de=ee(ce,pe);return de===-1?null:ce.getParentNode(de)}function oe(ce,pe,de){if(de.proseWrap==="preserve"&&pe===` +`)return d;let ae=de.proseWrap==="always"&&!te(ce,$);return pe!==""?ae?c:" ":ae?p:""}function W(ce,pe,de){let ae=ce.getValue(),ve=[],K=ce.map(me=>me.map((_,J)=>{let ne=k(de(),pe).formatted,Ee=r(ne);return ve[J]=Math.max(ve[J]||3,Ee),{text:ne,width:Ee}},"children"),"children"),he=Ce(!1);if(pe.proseWrap!=="never")return[i,he];let ye=Ce(!0);return[i,A(f(ye,he))];function Ce(me){let _=[Fe(K[0],me),Ie(me)];return K.length>1&&_.push(o(S,K.slice(1).map(J=>Fe(J,me)))),o(S,_)}function Ie(me){let _=ve.map((J,ne)=>{let Ee=ae.align[ne],We=Ee==="center"||Ee==="left"?":":"-",Be=Ee==="center"||Ee==="right"?":":"-",Pe=me?"-":"-".repeat(J-2);return"".concat(We).concat(Pe).concat(Be)});return"| ".concat(_.join(" | ")," |")}function Fe(me,_){let J=me.map((ne,Ee)=>{let{text:We,width:Be}=ne;if(_)return We;let Pe=ve[Ee]-Be,Se=ae.align[Ee],Qe=0;Se==="right"?Qe=Pe:Se==="center"&&(Qe=Math.floor(Pe/2));let xe=Pe-Qe;return"".concat(" ".repeat(Qe)).concat(We).concat(" ".repeat(xe))});return"| ".concat(J.join(" | ")," |")}}function X(ce,pe,de){let ae=[],ve=null,{children:K}=ce.getValue();for(let[he,ye]of K.entries())switch(ie(ye)){case"start":ve===null&&(ve={index:he,offset:ye.position.end.offset});break;case"end":ve!==null&&(ae.push({start:ve,end:{index:he,offset:ye.position.start.offset}}),ve=null);break;default:break}return ue(ce,pe,de,{processor:(he,ye)=>{if(ae.length>0){let Ce=ae[0];if(ye===Ce.start.index)return[K[Ce.start.index].value,pe.originalText.slice(Ce.start.offset,Ce.end.offset),K[Ce.end.index].value];if(Ce.start.index3&&arguments[3]!==void 0?arguments[3]:{},{postprocessor:ve}=ae,K=ae.processor||(()=>de()),he=ce.getValue(),ye=[],Ce;return ce.each((Ie,Fe)=>{let me=Ie.getValue(),_=K(Ie,Fe);if(_!==!1){let J={parts:ye,prevNode:Ce,parentNode:he,options:pe};G(me,J)&&(ye.push(d),Ce&&j.has(Ce.type)||(z(me,J)||U(me,J))&&ye.push(d),U(me,J)&&ye.push(d)),ye.push(_),Ce=me}},"children"),ve?ve(ye):ye}function De(ce){let pe=ce;for(;u(pe.children);)pe=t(pe.children);return pe}function ie(ce){let pe;if(ce.type==="html")pe=ce.value.match(/^$/);else{let de;ce.type==="esComment"?de=ce:ce.type==="paragraph"&&ce.children.length===1&&ce.children[0].type==="esComment"&&(de=ce.children[0]),de&&(pe=de.value.match(/^prettier-ignore(?:-(start|end))?$/))}return pe?pe[1]||"next":!1}function G(ce,pe){let de=pe.parts.length===0,ae=b.includes(ce.type),ve=ce.type==="html"&&L.includes(pe.parentNode.type);return!de&&!ae&&!ve}function z(ce,pe){var de,ae,ve;let he=(pe.prevNode&&pe.prevNode.type)===ce.type&&V.has(ce.type),ye=pe.parentNode.type==="listItem"&&!pe.parentNode.loose,Ce=((de=pe.prevNode)===null||de===void 0?void 0:de.type)==="listItem"&&pe.prevNode.loose,Ie=ie(pe.prevNode)==="next",Fe=ce.type==="html"&&((ae=pe.prevNode)===null||ae===void 0?void 0:ae.type)==="html"&&pe.prevNode.position.end.line+1===ce.position.start.line,me=ce.type==="html"&&pe.parentNode.type==="listItem"&&((ve=pe.prevNode)===null||ve===void 0?void 0:ve.type)==="paragraph"&&pe.prevNode.position.end.line+1===ce.position.start.line;return Ce||!(he||ye||Ie||Fe||me)}function U(ce,pe){let de=pe.prevNode&&pe.prevNode.type==="list",ae=ce.type==="code"&&ce.isIndented;return de&&ae}function le(ce){let pe=te(ce,["linkReference","imageReference"]);return pe&&(pe.type!=="linkReference"||pe.referenceType!=="full")}function ge(ce){let pe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],de=[" ",...Array.isArray(pe)?pe:[pe]];return new RegExp(de.map(ae=>"\\".concat(ae)).join("|")).test(ce)?"<".concat(ce,">"):ce}function Ae(ce,pe){let de=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!ce)return"";if(de)return" "+Ae(ce,pe,!1);if(ce=ce.replace(/\\(["')])/g,"$1"),ce.includes('"')&&ce.includes("'")&&!ce.includes(")"))return"(".concat(ce,")");let ae=ce.split("'").length-1,ve=ce.split('"').length-1,K=ae>ve?'"':ve>ae||pe.singleQuote?"'":'"';return ce=ce.replace(/\\/,"\\\\"),ce=ce.replace(new RegExp("(".concat(K,")"),"g"),"\\$1"),"".concat(K).concat(ce).concat(K)}function Ne(ce,pe,de){return cede?de:ce}function ke(ce){let pe=Number(ce.getName());if(pe===0)return!1;let de=ce.getParentNode().children[pe-1];return ie(de)==="next"}n.exports={preprocess:F,print:q,embed:P,massageAstNode:l,hasPrettierIgnore:ke,insertPragma:C}}}),Od=Z({"src/language-markdown/options.js"(e,n){"use strict";re();var t=Lt();n.exports={proseWrap:t.proseWrap,singleQuote:t.singleQuote}}}),qd=Z({"src/language-markdown/parsers.js"(){re()}}),oa=Z({"node_modules/linguist-languages/data/Markdown.json"(e,n){n.exports={name:"Markdown",type:"prose",color:"#083fa1",aliases:["pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:!0,extensions:[".md",".livemd",".markdown",".mdown",".mdwn",".mdx",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr"],tmScope:"source.gfm",languageId:222}}}),Md=Z({"src/language-markdown/index.js"(e,n){"use strict";re();var t=Tt(),s=jd(),a=Od(),r=qd(),u=[t(oa(),o=>({since:"1.8.0",parsers:["markdown"],vscodeLanguageIds:["markdown"],filenames:[...o.filenames,"README"],extensions:o.extensions.filter(c=>c!==".mdx")})),t(oa(),()=>({name:"MDX",since:"1.15.0",parsers:["mdx"],vscodeLanguageIds:["mdx"],filenames:[],extensions:[".mdx"]}))],i={mdast:s};n.exports={languages:u,options:a,printers:i,parsers:r}}}),Rd=Z({"src/language-html/clean.js"(e,n){"use strict";re();var{isFrontMatterNode:t}=Ue(),s=new Set(["sourceSpan","startSourceSpan","endSourceSpan","nameSpan","valueSpan"]);function a(r,u){if(r.type==="text"||r.type==="comment"||t(r)||r.type==="yaml"||r.type==="toml")return null;r.type==="attribute"&&delete u.value,r.type==="docType"&&delete u.value}a.ignoredProperties=s,n.exports=a}}),Vd=Z({"src/language-html/constants.evaluate.js"(e,n){n.exports={CSS_DISPLAY_TAGS:{area:"none",base:"none",basefont:"none",datalist:"none",head:"none",link:"none",meta:"none",noembed:"none",noframes:"none",param:"block",rp:"none",script:"block",source:"block",style:"none",template:"inline",track:"block",title:"none",html:"block",body:"block",address:"block",blockquote:"block",center:"block",div:"block",figure:"block",figcaption:"block",footer:"block",form:"block",header:"block",hr:"block",legend:"block",listing:"block",main:"block",p:"block",plaintext:"block",pre:"block",xmp:"block",slot:"contents",ruby:"ruby",rt:"ruby-text",article:"block",aside:"block",h1:"block",h2:"block",h3:"block",h4:"block",h5:"block",h6:"block",hgroup:"block",nav:"block",section:"block",dir:"block",dd:"block",dl:"block",dt:"block",ol:"block",ul:"block",li:"list-item",table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell",fieldset:"block",button:"inline-block",details:"block",summary:"block",dialog:"block",meter:"inline-block",progress:"inline-block",object:"inline-block",video:"inline-block",audio:"inline-block",select:"inline-block",option:"block",optgroup:"block"},CSS_DISPLAY_DEFAULT:"inline",CSS_WHITE_SPACE_TAGS:{listing:"pre",plaintext:"pre",pre:"pre",xmp:"pre",nobr:"nowrap",table:"initial",textarea:"pre-wrap"},CSS_WHITE_SPACE_DEFAULT:"normal"}}}),Wd=Z({"src/language-html/utils/is-unknown-namespace.js"(e,n){"use strict";re();function t(s){return s.type==="element"&&!s.hasExplicitNamespace&&!["html","svg"].includes(s.namespace)}n.exports=t}}),jt=Z({"src/language-html/utils/index.js"(e,n){"use strict";re();var{inferParserByLanguage:t,isFrontMatterNode:s}=Ue(),{builders:{line:a,hardline:r,join:u},utils:{getDocParts:i,replaceTextEndOfLine:o}}=Oe(),{CSS_DISPLAY_TAGS:c,CSS_DISPLAY_DEFAULT:y,CSS_WHITE_SPACE_TAGS:m,CSS_WHITE_SPACE_DEFAULT:d}=Vd(),p=Wd(),f=new Set([" ",` +`,"\f","\r"," "]),h=_=>_.replace(/^[\t\n\f\r ]+/,""),w=_=>_.replace(/[\t\n\f\r ]+$/,""),T=_=>h(w(_)),A=_=>_.replace(/^[\t\f\r ]*\n/g,""),S=_=>A(w(_)),B=_=>_.split(/[\t\n\f\r ]+/),I=_=>_.match(/^[\t\n\f\r ]*/)[0],k=_=>{let[,J,ne,Ee]=_.match(/^([\t\n\f\r ]*)(.*?)([\t\n\f\r ]*)$/s);return{leadingWhitespace:J,trailingWhitespace:Ee,text:ne}},P=_=>/[\t\n\f\r ]/.test(_);function C(_,J){return!!(_.type==="ieConditionalComment"&&_.lastChild&&!_.lastChild.isSelfClosing&&!_.lastChild.endSourceSpan||_.type==="ieConditionalComment"&&!_.complete||le(_)&&_.children.some(ne=>ne.type!=="text"&&ne.type!=="interpolation")||ye(_,J)&&!l(_)&&_.type!=="interpolation")}function D(_){return _.type==="attribute"||!_.parent||!_.prev?!1:g(_.prev)}function g(_){return _.type==="comment"&&_.value.trim()==="prettier-ignore"}function F(_){return _.type==="text"||_.type==="comment"}function l(_){return _.type==="element"&&(_.fullName==="script"||_.fullName==="style"||_.fullName==="svg:style"||p(_)&&(_.name==="script"||_.name==="style"))}function E(_){return _.children&&!l(_)}function v(_){return l(_)||_.type==="interpolation"||N(_)}function N(_){return ke(_).startsWith("pre")}function x(_,J){let ne=Ee();if(ne&&!_.prev&&_.parent&&_.parent.tagDefinition&&_.parent.tagDefinition.ignoreFirstLf)return _.type==="interpolation";return ne;function Ee(){return s(_)?!1:(_.type==="text"||_.type==="interpolation")&&_.prev&&(_.prev.type==="text"||_.prev.type==="interpolation")?!0:!_.parent||_.parent.cssDisplay==="none"?!1:le(_.parent)?!0:!(!_.prev&&(_.parent.type==="root"||le(_)&&_.parent||l(_.parent)||K(_.parent,J)||!De(_.parent.cssDisplay))||_.prev&&!z(_.prev.cssDisplay))}}function b(_,J){return s(_)?!1:(_.type==="text"||_.type==="interpolation")&&_.next&&(_.next.type==="text"||_.next.type==="interpolation")?!0:!_.parent||_.parent.cssDisplay==="none"?!1:le(_.parent)?!0:!(!_.next&&(_.parent.type==="root"||le(_)&&_.parent||l(_.parent)||K(_.parent,J)||!ie(_.parent.cssDisplay))||_.next&&!G(_.next.cssDisplay))}function L(_){return U(_.cssDisplay)&&!l(_)}function M(_){return s(_)||_.next&&_.sourceSpan.end&&_.sourceSpan.end.line+1<_.next.sourceSpan.start.line}function j(_){return $(_)||_.type==="element"&&_.children.length>0&&(["body","script","style"].includes(_.name)||_.children.some(J=>te(J)))||_.firstChild&&_.firstChild===_.lastChild&&_.firstChild.type!=="text"&&H(_.firstChild)&&(!_.lastChild.isTrailingSpaceSensitive||R(_.lastChild))}function $(_){return _.type==="element"&&_.children.length>0&&(["html","head","ul","ol","select"].includes(_.name)||_.cssDisplay.startsWith("table")&&_.cssDisplay!=="table-cell")}function V(_){return Q(_)||_.prev&&q(_.prev)||Y(_)}function q(_){return Q(_)||_.type==="element"&&_.fullName==="br"||Y(_)}function Y(_){return H(_)&&R(_)}function H(_){return _.hasLeadingSpaces&&(_.prev?_.prev.sourceSpan.end.line<_.sourceSpan.start.line:_.parent.type==="root"||_.parent.startSourceSpan.end.line<_.sourceSpan.start.line)}function R(_){return _.hasTrailingSpaces&&(_.next?_.next.sourceSpan.start.line>_.sourceSpan.end.line:_.parent.type==="root"||_.parent.endSourceSpan&&_.parent.endSourceSpan.start.line>_.sourceSpan.end.line)}function Q(_){switch(_.type){case"ieConditionalComment":case"comment":case"directive":return!0;case"element":return["script","select"].includes(_.name)}return!1}function ee(_){return _.lastChild?ee(_.lastChild):_}function te(_){return _.children&&_.children.some(J=>J.type!=="text")}function oe(_){let{type:J,lang:ne}=_.attrMap;if(J==="module"||J==="text/javascript"||J==="text/babel"||J==="application/javascript"||ne==="jsx")return"babel";if(J==="application/x-typescript"||ne==="ts"||ne==="tsx")return"typescript";if(J==="text/markdown")return"markdown";if(J==="text/html")return"html";if(J&&(J.endsWith("json")||J.endsWith("importmap"))||J==="speculationrules")return"json";if(J==="text/x-handlebars-template")return"glimmer"}function W(_,J){let{lang:ne}=_.attrMap;if(!ne||ne==="postcss"||ne==="css")return"css";if(ne==="scss")return"scss";if(ne==="less")return"less";if(ne==="stylus")return t("stylus",J)}function X(_,J){if(_.name==="script"&&!_.attrMap.src)return!_.attrMap.lang&&!_.attrMap.type?"babel":oe(_);if(_.name==="style")return W(_,J);if(J&&ye(_,J))return oe(_)||!("src"in _.attrMap)&&t(_.attrMap.lang,J)}function ue(_){return _==="block"||_==="list-item"||_.startsWith("table")}function De(_){return!ue(_)&&_!=="inline-block"}function ie(_){return!ue(_)&&_!=="inline-block"}function G(_){return!ue(_)}function z(_){return!ue(_)}function U(_){return!ue(_)&&_!=="inline-block"}function le(_){return ke(_).startsWith("pre")}function ge(_,J){let ne=0;for(let Ee=_.stack.length-1;Ee>=0;Ee--){let We=_.stack[Ee];We&&typeof We=="object"&&!Array.isArray(We)&&J(We)&&ne++}return ne}function Ae(_,J){let ne=_;for(;ne;){if(J(ne))return!0;ne=ne.parent}return!1}function Ne(_,J){if(_.prev&&_.prev.type==="comment"){let Ee=_.prev.value.match(/^\s*display:\s*([a-z]+)\s*$/);if(Ee)return Ee[1]}let ne=!1;if(_.type==="element"&&_.namespace==="svg")if(Ae(_,Ee=>Ee.fullName==="svg:foreignObject"))ne=!0;else return _.name==="svg"?"inline-block":"block";switch(J.htmlWhitespaceSensitivity){case"strict":return"inline";case"ignore":return"block";default:return J.parser==="vue"&&_.parent&&_.parent.type==="root"?"block":_.type==="element"&&(!_.namespace||ne||p(_))&&c[_.name]||y}}function ke(_){return _.type==="element"&&(!_.namespace||p(_))&&m[_.name]||d}function ce(_){let J=Number.POSITIVE_INFINITY;for(let ne of _.split(` +`)){if(ne.length===0)continue;if(!f.has(ne[0]))return 0;let Ee=I(ne).length;ne.length!==Ee&&Ee1&&arguments[1]!==void 0?arguments[1]:ce(_);return J===0?_:_.split(` +`).map(ne=>ne.slice(J)).join(` +`)}function de(_,J){let ne=0;for(let Ee=0;Ee<_.length;Ee++)_[Ee]===J&&ne++;return ne}function ae(_){return _.replace(/'/g,"'").replace(/"/g,'"')}var ve=new Set(["template","style","script"]);function K(_,J){return he(_,J)&&!ve.has(_.fullName)}function he(_,J){return J.parser==="vue"&&_.type==="element"&&_.parent.type==="root"&&_.fullName.toLowerCase()!=="html"}function ye(_,J){return he(_,J)&&(K(_,J)||_.attrMap.lang&&_.attrMap.lang!=="html")}function Ce(_){let J=_.fullName;return J.charAt(0)==="#"||J==="slot-scope"||J==="v-slot"||J.startsWith("v-slot:")}function Ie(_,J){let ne=_.parent;if(!he(ne,J))return!1;let Ee=ne.fullName,We=_.fullName;return Ee==="script"&&We==="setup"||Ee==="style"&&We==="vars"}function Fe(_){let J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_.value;return _.parent.isWhitespaceSensitive?_.parent.isIndentationSensitive?o(J):o(pe(S(J)),r):i(u(a,B(J)))}function me(_,J){return he(_,J)&&_.name==="script"}n.exports={htmlTrim:T,htmlTrimPreserveIndentation:S,hasHtmlWhitespace:P,getLeadingAndTrailingHtmlWhitespace:k,canHaveInterpolation:E,countChars:de,countParents:ge,dedentString:pe,forceBreakChildren:$,forceBreakContent:j,forceNextEmptyLine:M,getLastDescendant:ee,getNodeCssStyleDisplay:Ne,getNodeCssStyleWhiteSpace:ke,hasPrettierIgnore:D,inferScriptParser:X,isVueCustomBlock:K,isVueNonHtmlBlock:ye,isVueScriptTag:me,isVueSlotAttribute:Ce,isVueSfcBindingsAttribute:Ie,isVueSfcBlock:he,isDanglingSpaceSensitiveNode:L,isIndentationSensitiveNode:N,isLeadingSpaceSensitiveNode:x,isPreLikeNode:le,isScriptLikeTag:l,isTextLikeNode:F,isTrailingSpaceSensitiveNode:b,isWhitespaceSensitiveNode:v,isUnknownNamespace:p,preferHardlineAsLeadingSpaces:V,preferHardlineAsTrailingSpaces:q,shouldPreserveContent:C,unescapeQuoteEntities:ae,getTextValueParts:Fe}}}),$d=Z({"node_modules/angular-html-parser/lib/compiler/src/chars.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.$EOF=0,e.$BSPACE=8,e.$TAB=9,e.$LF=10,e.$VTAB=11,e.$FF=12,e.$CR=13,e.$SPACE=32,e.$BANG=33,e.$DQ=34,e.$HASH=35,e.$$=36,e.$PERCENT=37,e.$AMPERSAND=38,e.$SQ=39,e.$LPAREN=40,e.$RPAREN=41,e.$STAR=42,e.$PLUS=43,e.$COMMA=44,e.$MINUS=45,e.$PERIOD=46,e.$SLASH=47,e.$COLON=58,e.$SEMICOLON=59,e.$LT=60,e.$EQ=61,e.$GT=62,e.$QUESTION=63,e.$0=48,e.$7=55,e.$9=57,e.$A=65,e.$E=69,e.$F=70,e.$X=88,e.$Z=90,e.$LBRACKET=91,e.$BACKSLASH=92,e.$RBRACKET=93,e.$CARET=94,e.$_=95,e.$a=97,e.$b=98,e.$e=101,e.$f=102,e.$n=110,e.$r=114,e.$t=116,e.$u=117,e.$v=118,e.$x=120,e.$z=122,e.$LBRACE=123,e.$BAR=124,e.$RBRACE=125,e.$NBSP=160,e.$PIPE=124,e.$TILDA=126,e.$AT=64,e.$BT=96;function n(i){return i>=e.$TAB&&i<=e.$SPACE||i==e.$NBSP}e.isWhitespace=n;function t(i){return e.$0<=i&&i<=e.$9}e.isDigit=t;function s(i){return i>=e.$a&&i<=e.$z||i>=e.$A&&i<=e.$Z}e.isAsciiLetter=s;function a(i){return i>=e.$a&&i<=e.$f||i>=e.$A&&i<=e.$F||t(i)}e.isAsciiHexDigit=a;function r(i){return i===e.$LF||i===e.$CR}e.isNewLine=r;function u(i){return e.$0<=i&&i<=e.$7}e.isOctalDigit=u}}),Hd=Z({"node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=class{constructor(s,a,r){this.filePath=s,this.name=a,this.members=r}assertNoMembers(){if(this.members.length)throw new Error("Illegal state: symbol without members expected, but got ".concat(JSON.stringify(this),"."))}};e.StaticSymbol=n;var t=class{constructor(){this.cache=new Map}get(s,a,r){r=r||[];let u=r.length?".".concat(r.join(".")):"",i='"'.concat(s,'".').concat(a).concat(u),o=this.cache.get(i);return o||(o=new n(s,a,r),this.cache.set(i,o)),o}};e.StaticSymbolCache=t}}),Gd=Z({"node_modules/angular-html-parser/lib/compiler/src/util.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=/-+([a-z0-9])/g;function t(l){return l.replace(n,function(){for(var E=arguments.length,v=new Array(E),N=0;Nu(v,this,E))}visitStringMap(l,E){let v={};return Object.keys(l).forEach(N=>{v[N]=u(l[N],this,E)}),v}visitPrimitive(l,E){return l}visitOther(l,E){return l}};e.ValueTransformer=c,e.SyncAsync={assertSync:l=>{if(k(l))throw new Error("Illegal state: value cannot be a promise");return l},then:(l,E)=>k(l)?l.then(E):E(l),all:l=>l.some(k)?Promise.all(l):l};function y(l){throw new Error("Internal Error: ".concat(l))}e.error=y;function m(l,E){let v=Error(l);return v[d]=!0,E&&(v[p]=E),v}e.syntaxError=m;var d="ngSyntaxError",p="ngParseErrors";function f(l){return l[d]}e.isSyntaxError=f;function h(l){return l[p]||[]}e.getParseErrors=h;function w(l){return l.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}e.escapeRegExp=w;var T=Object.getPrototypeOf({});function A(l){return typeof l=="object"&&l!==null&&Object.getPrototypeOf(l)===T}function S(l){let E="";for(let v=0;v=55296&&N<=56319&&l.length>v+1){let x=l.charCodeAt(v+1);x>=56320&&x<=57343&&(v++,N=(N-55296<<10)+x-56320+65536)}N<=127?E+=String.fromCharCode(N):N<=2047?E+=String.fromCharCode(N>>6&31|192,N&63|128):N<=65535?E+=String.fromCharCode(N>>12|224,N>>6&63|128,N&63|128):N<=2097151&&(E+=String.fromCharCode(N>>18&7|240,N>>12&63|128,N>>6&63|128,N&63|128))}return E}e.utf8Encode=S;function B(l){if(typeof l=="string")return l;if(l instanceof Array)return"["+l.map(B).join(", ")+"]";if(l==null)return""+l;if(l.overriddenName)return"".concat(l.overriddenName);if(l.name)return"".concat(l.name);if(!l.toString)return"object";let E=l.toString();if(E==null)return""+E;let v=E.indexOf(` +`);return v===-1?E:E.substring(0,v)}e.stringify=B;function I(l){return typeof l=="function"&&l.hasOwnProperty("__forward_ref__")?l():l}e.resolveForwardRef=I;function k(l){return!!l&&typeof l.then=="function"}e.isPromise=k;var P=class{constructor(l){this.full=l;let E=l.split(".");this.major=E[0],this.minor=E[1],this.patch=E.slice(2).join(".")}};e.Version=P;var C=typeof window<"u"&&window,D=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,g=typeof globalThis<"u"&&globalThis,F=g||C||D;e.global=F}}),Jd=Z({"node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Hd(),t=Gd(),s=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/;function a(v){return v.replace(/\W/g,"_")}e.sanitizeIdentifier=a;var r=0;function u(v){if(!v||!v.reference)return null;let N=v.reference;if(N instanceof n.StaticSymbol)return N.name;if(N.__anonymousType)return N.__anonymousType;let x=t.stringify(N);return x.indexOf("(")>=0?(x="anonymous_".concat(r++),N.__anonymousType=x):x=a(x),x}e.identifierName=u;function i(v){let N=v.reference;return N instanceof n.StaticSymbol?N.filePath:"./".concat(t.stringify(N))}e.identifierModuleUrl=i;function o(v,N){return"View_".concat(u({reference:v}),"_").concat(N)}e.viewClassName=o;function c(v){return"RenderType_".concat(u({reference:v}))}e.rendererTypeName=c;function y(v){return"HostView_".concat(u({reference:v}))}e.hostViewClassName=y;function m(v){return"".concat(u({reference:v}),"NgFactory")}e.componentFactoryName=m;var d;(function(v){v[v.Pipe=0]="Pipe",v[v.Directive=1]="Directive",v[v.NgModule=2]="NgModule",v[v.Injectable=3]="Injectable"})(d=e.CompileSummaryKind||(e.CompileSummaryKind={}));function p(v){return v.value!=null?a(v.value):u(v.identifier)}e.tokenName=p;function f(v){return v.identifier!=null?v.identifier.reference:v.value}e.tokenReference=f;var h=class{constructor(){let{moduleUrl:v,styles:N,styleUrls:x}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.moduleUrl=v||null,this.styles=k(N),this.styleUrls=k(x)}};e.CompileStylesheetMetadata=h;var w=class{constructor(v){let{encapsulation:N,template:x,templateUrl:b,htmlAst:L,styles:M,styleUrls:j,externalStylesheets:$,animations:V,ngContentSelectors:q,interpolation:Y,isInline:H,preserveWhitespaces:R}=v;if(this.encapsulation=N,this.template=x,this.templateUrl=b,this.htmlAst=L,this.styles=k(M),this.styleUrls=k(j),this.externalStylesheets=k($),this.animations=V?C(V):[],this.ngContentSelectors=q||[],Y&&Y.length!=2)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=Y,this.isInline=H,this.preserveWhitespaces=R}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};e.CompileTemplateMetadata=w;var T=class{static create(v){let{isHost:N,type:x,isComponent:b,selector:L,exportAs:M,changeDetection:j,inputs:$,outputs:V,host:q,providers:Y,viewProviders:H,queries:R,guards:Q,viewQueries:ee,entryComponents:te,template:oe,componentViewType:W,rendererType:X,componentFactory:ue}=v,De={},ie={},G={};q!=null&&Object.keys(q).forEach(le=>{let ge=q[le],Ae=le.match(s);Ae===null?G[le]=ge:Ae[1]!=null?ie[Ae[1]]=ge:Ae[2]!=null&&(De[Ae[2]]=ge)});let z={};$!=null&&$.forEach(le=>{let ge=t.splitAtColon(le,[le,le]);z[ge[0]]=ge[1]});let U={};return V!=null&&V.forEach(le=>{let ge=t.splitAtColon(le,[le,le]);U[ge[0]]=ge[1]}),new T({isHost:N,type:x,isComponent:!!b,selector:L,exportAs:M,changeDetection:j,inputs:z,outputs:U,hostListeners:De,hostProperties:ie,hostAttributes:G,providers:Y,viewProviders:H,queries:R,guards:Q,viewQueries:ee,entryComponents:te,template:oe,componentViewType:W,rendererType:X,componentFactory:ue})}constructor(v){let{isHost:N,type:x,isComponent:b,selector:L,exportAs:M,changeDetection:j,inputs:$,outputs:V,hostListeners:q,hostProperties:Y,hostAttributes:H,providers:R,viewProviders:Q,queries:ee,guards:te,viewQueries:oe,entryComponents:W,template:X,componentViewType:ue,rendererType:De,componentFactory:ie}=v;this.isHost=!!N,this.type=x,this.isComponent=b,this.selector=L,this.exportAs=M,this.changeDetection=j,this.inputs=$,this.outputs=V,this.hostListeners=q,this.hostProperties=Y,this.hostAttributes=H,this.providers=k(R),this.viewProviders=k(Q),this.queries=k(ee),this.guards=te,this.viewQueries=k(oe),this.entryComponents=k(W),this.template=X,this.componentViewType=ue,this.rendererType=De,this.componentFactory=ie}toSummary(){return{summaryKind:d.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}};e.CompileDirectiveMetadata=T;var A=class{constructor(v){let{type:N,name:x,pure:b}=v;this.type=N,this.name=x,this.pure=!!b}toSummary(){return{summaryKind:d.Pipe,type:this.type,name:this.name,pure:this.pure}}};e.CompilePipeMetadata=A;var S=class{};e.CompileShallowModuleMetadata=S;var B=class{constructor(v){let{type:N,providers:x,declaredDirectives:b,exportedDirectives:L,declaredPipes:M,exportedPipes:j,entryComponents:$,bootstrapComponents:V,importedModules:q,exportedModules:Y,schemas:H,transitiveModule:R,id:Q}=v;this.type=N||null,this.declaredDirectives=k(b),this.exportedDirectives=k(L),this.declaredPipes=k(M),this.exportedPipes=k(j),this.providers=k(x),this.entryComponents=k($),this.bootstrapComponents=k(V),this.importedModules=k(q),this.exportedModules=k(Y),this.schemas=k(H),this.id=Q||null,this.transitiveModule=R||null}toSummary(){let v=this.transitiveModule;return{summaryKind:d.NgModule,type:this.type,entryComponents:v.entryComponents,providers:v.providers,modules:v.modules,exportedDirectives:v.exportedDirectives,exportedPipes:v.exportedPipes}}};e.CompileNgModuleMetadata=B;var I=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(v,N){this.providers.push({provider:v,module:N})}addDirective(v){this.directivesSet.has(v.reference)||(this.directivesSet.add(v.reference),this.directives.push(v))}addExportedDirective(v){this.exportedDirectivesSet.has(v.reference)||(this.exportedDirectivesSet.add(v.reference),this.exportedDirectives.push(v))}addPipe(v){this.pipesSet.has(v.reference)||(this.pipesSet.add(v.reference),this.pipes.push(v))}addExportedPipe(v){this.exportedPipesSet.has(v.reference)||(this.exportedPipesSet.add(v.reference),this.exportedPipes.push(v))}addModule(v){this.modulesSet.has(v.reference)||(this.modulesSet.add(v.reference),this.modules.push(v))}addEntryComponent(v){this.entryComponentsSet.has(v.componentType)||(this.entryComponentsSet.add(v.componentType),this.entryComponents.push(v))}};e.TransitiveCompileNgModuleMetadata=I;function k(v){return v||[]}var P=class{constructor(v,N){let{useClass:x,useValue:b,useExisting:L,useFactory:M,deps:j,multi:$}=N;this.token=v,this.useClass=x||null,this.useValue=b,this.useExisting=L,this.useFactory=M||null,this.dependencies=j||null,this.multi=!!$}};e.ProviderMeta=P;function C(v){return v.reduce((N,x)=>{let b=Array.isArray(x)?C(x):x;return N.concat(b)},[])}e.flatten=C;function D(v){return v.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}function g(v,N,x){let b;return x.isInline?N.type.reference instanceof n.StaticSymbol?b="".concat(N.type.reference.filePath,".").concat(N.type.reference.name,".html"):b="".concat(u(v),"/").concat(u(N.type),".html"):b=x.templateUrl,N.type.reference instanceof n.StaticSymbol?b:D(b)}e.templateSourceUrl=g;function F(v,N){let x=v.moduleUrl.split(/\/\\/g),b=x[x.length-1];return D("css/".concat(N).concat(b,".ngstyle.js"))}e.sharedStylesheetJitUrl=F;function l(v){return D("".concat(u(v.type),"/module.ngfactory.js"))}e.ngModuleJitUrl=l;function E(v,N){return D("".concat(u(v),"/").concat(u(N.type),".ngfactory.js"))}e.templateJitUrl=E}}),Ud=Z({"node_modules/angular-html-parser/lib/compiler/src/parse_util.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=$d(),t=Jd(),s=class{constructor(y,m,d,p){this.file=y,this.offset=m,this.line=d,this.col=p}toString(){return this.offset!=null?"".concat(this.file.url,"@").concat(this.line,":").concat(this.col):this.file.url}moveBy(y){let m=this.file.content,d=m.length,p=this.offset,f=this.line,h=this.col;for(;p>0&&y<0;)if(p--,y++,m.charCodeAt(p)==n.$LF){f--;let T=m.substr(0,p-1).lastIndexOf(String.fromCharCode(n.$LF));h=T>0?p-T:p}else h--;for(;p0;){let w=m.charCodeAt(p);p++,y--,w==n.$LF?(f++,h=0):h++}return new s(this.file,p,f,h)}getContext(y,m){let d=this.file.content,p=this.offset;if(p!=null){p>d.length-1&&(p=d.length-1);let f=p,h=0,w=0;for(;h0&&(p--,h++,!(d[p]==` +`&&++w==m)););for(h=0,w=0;h2&&arguments[2]!==void 0?arguments[2]:null;this.start=y,this.end=m,this.details=d}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}};e.ParseSourceSpan=r,e.EMPTY_PARSE_LOCATION=new s(new a("",""),0,0,0),e.EMPTY_SOURCE_SPAN=new r(e.EMPTY_PARSE_LOCATION,e.EMPTY_PARSE_LOCATION);var u;(function(y){y[y.WARNING=0]="WARNING",y[y.ERROR=1]="ERROR"})(u=e.ParseErrorLevel||(e.ParseErrorLevel={}));var i=class{constructor(y,m){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:u.ERROR;this.span=y,this.msg=m,this.level=d}contextualMessage(){let y=this.span.start.getContext(100,3);return y?"".concat(this.msg,' ("').concat(y.before,"[").concat(u[this.level]," ->]").concat(y.after,'")'):this.msg}toString(){let y=this.span.details?", ".concat(this.span.details):"";return"".concat(this.contextualMessage(),": ").concat(this.span.start).concat(y)}};e.ParseError=i;function o(y,m){let d=t.identifierModuleUrl(m),p=d!=null?"in ".concat(y," ").concat(t.identifierName(m)," in ").concat(d):"in ".concat(y," ").concat(t.identifierName(m)),f=new a("",p);return new r(new s(f,-1,-1,-1),new s(f,-1,-1,-1))}e.typeSourceSpan=o;function c(y,m,d){let p="in ".concat(y," ").concat(m," in ").concat(d),f=new a("",p);return new r(new s(f,-1,-1,-1),new s(f,-1,-1,-1))}e.r3JitTypeSourceSpan=c}}),zd=Z({"src/language-html/print-preprocess.js"(e,n){"use strict";re();var{ParseSourceSpan:t}=Ud(),{htmlTrim:s,getLeadingAndTrailingHtmlWhitespace:a,hasHtmlWhitespace:r,canHaveInterpolation:u,getNodeCssStyleDisplay:i,isDanglingSpaceSensitiveNode:o,isIndentationSensitiveNode:c,isLeadingSpaceSensitiveNode:y,isTrailingSpaceSensitiveNode:m,isWhitespaceSensitiveNode:d,isVueScriptTag:p}=jt(),f=[w,T,S,I,k,D,P,C,g,B,F];function h(l,E){for(let v of f)v(l,E);return l}function w(l){l.walk(E=>{if(E.type==="element"&&E.tagDefinition.ignoreFirstLf&&E.children.length>0&&E.children[0].type==="text"&&E.children[0].value[0]===` +`){let v=E.children[0];v.value.length===1?E.removeChild(v):v.value=v.value.slice(1)}})}function T(l){let E=v=>v.type==="element"&&v.prev&&v.prev.type==="ieConditionalStartComment"&&v.prev.sourceSpan.end.offset===v.startSourceSpan.start.offset&&v.firstChild&&v.firstChild.type==="ieConditionalEndComment"&&v.firstChild.sourceSpan.start.offset===v.startSourceSpan.end.offset;l.walk(v=>{if(v.children)for(let N=0;N{if(N.children)for(let x=0;xE.type==="cdata",E=>""))}function B(l){let E=v=>v.type==="element"&&v.attrs.length===0&&v.children.length===1&&v.firstChild.type==="text"&&!r(v.children[0].value)&&!v.firstChild.hasLeadingSpaces&&!v.firstChild.hasTrailingSpaces&&v.isLeadingSpaceSensitive&&!v.hasLeadingSpaces&&v.isTrailingSpaceSensitive&&!v.hasTrailingSpaces&&v.prev&&v.prev.type==="text"&&v.next&&v.next.type==="text";l.walk(v=>{if(v.children)for(let N=0;N")+x.firstChild.value+"")+L.value,b.sourceSpan=new t(b.sourceSpan.start,L.sourceSpan.end),b.isTrailingSpaceSensitive=L.isTrailingSpaceSensitive,b.hasTrailingSpaces=L.hasTrailingSpaces,v.removeChild(x),N--,v.removeChild(L)}})}function I(l,E){if(E.parser==="html")return;let v=/{{(.+?)}}/s;l.walk(N=>{if(!!u(N))for(let x of N.children){if(x.type!=="text")continue;let b=x.sourceSpan.start,L=null,M=x.value.split(v);for(let j=0;j0&&N.insertChildBefore(x,{type:"text",value:$,sourceSpan:new t(b,L)});continue}L=b.moveBy($.length+4),N.insertChildBefore(x,{type:"interpolation",sourceSpan:new t(b,L),children:$.length===0?[]:[{type:"text",value:$,sourceSpan:new t(b.moveBy(2),L.moveBy(-2))}]})}N.removeChild(x)}})}function k(l){l.walk(E=>{if(!E.children)return;if(E.children.length===0||E.children.length===1&&E.children[0].type==="text"&&s(E.children[0].value).length===0){E.hasDanglingSpaces=E.children.length>0,E.children=[];return}let v=d(E),N=c(E);if(!v)for(let x=0;x{E.isSelfClosing=!E.children||E.type==="element"&&(E.tagDefinition.isVoid||E.startSourceSpan===E.endSourceSpan)})}function C(l,E){l.walk(v=>{v.type==="element"&&(v.hasHtmComponentClosingTag=v.endSourceSpan&&/^<\s*\/\s*\/\s*>$/.test(E.originalText.slice(v.endSourceSpan.start.offset,v.endSourceSpan.end.offset)))})}function D(l,E){l.walk(v=>{v.cssDisplay=i(v,E)})}function g(l,E){l.walk(v=>{let{children:N}=v;if(!!N){if(N.length===0){v.isDanglingSpaceSensitive=o(v);return}for(let x of N)x.isLeadingSpaceSensitive=y(x,E),x.isTrailingSpaceSensitive=m(x,E);for(let x=0;xp(x,E));if(!v)return;let{lang:N}=v.attrMap;(N==="ts"||N==="typescript")&&(E.__should_parse_vue_template_with_ts=!0)}}n.exports=h}}),Xd=Z({"src/language-html/pragma.js"(e,n){"use strict";re();function t(a){return/^\s*/.test(a)}function s(a){return` + +`+a.replace(/^\s*\n/,"")}n.exports={hasPragma:t,insertPragma:s}}}),zn=Z({"src/language-html/loc.js"(e,n){"use strict";re();function t(a){return a.sourceSpan.start.offset}function s(a){return a.sourceSpan.end.offset}n.exports={locStart:t,locEnd:s}}}),Qt=Z({"src/language-html/print/tag.js"(e,n){"use strict";re();var t=Ut(),{isNonEmptyArray:s}=Ue(),{builders:{indent:a,join:r,line:u,softline:i,hardline:o},utils:{replaceTextEndOfLine:c}}=Oe(),{locStart:y,locEnd:m}=zn(),{isTextLikeNode:d,getLastDescendant:p,isPreLikeNode:f,hasPrettierIgnore:h,shouldPreserveContent:w,isVueSfcBlock:T}=jt();function A(q,Y){return[q.isSelfClosing?"":S(q,Y),B(q,Y)]}function S(q,Y){return q.lastChild&&l(q.lastChild)?"":[I(q,Y),P(q,Y)]}function B(q,Y){return(q.next?g(q.next):F(q.parent))?"":[C(q,Y),k(q,Y)]}function I(q,Y){return F(q)?C(q.lastChild,Y):""}function k(q,Y){return l(q)?P(q.parent,Y):E(q)?$(q.next):""}function P(q,Y){if(t(!q.isSelfClosing),D(q,Y))return"";switch(q.type){case"ieConditionalComment":return"";case"ieConditionalStartComment":return"]>";case"interpolation":return"}}";case"element":if(q.isSelfClosing)return"/>";default:return">"}}function D(q,Y){return!q.isSelfClosing&&!q.endSourceSpan&&(h(q)||w(q.parent,Y))}function g(q){return q.prev&&q.prev.type!=="docType"&&!d(q.prev)&&q.isLeadingSpaceSensitive&&!q.hasLeadingSpaces}function F(q){return q.lastChild&&q.lastChild.isTrailingSpaceSensitive&&!q.lastChild.hasTrailingSpaces&&!d(p(q.lastChild))&&!f(q)}function l(q){return!q.next&&!q.hasTrailingSpaces&&q.isTrailingSpaceSensitive&&d(p(q))}function E(q){return q.next&&!d(q.next)&&d(q)&&q.isTrailingSpaceSensitive&&!q.hasTrailingSpaces}function v(q){let Y=q.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/s);return Y?Y[1]?Y[1].split(/\s+/):!0:!1}function N(q){return!q.prev&&q.isLeadingSpaceSensitive&&!q.hasLeadingSpaces}function x(q,Y,H){let R=q.getValue();if(!s(R.attrs))return R.isSelfClosing?" ":"";let Q=R.prev&&R.prev.type==="comment"&&v(R.prev.value),ee=typeof Q=="boolean"?()=>Q:Array.isArray(Q)?De=>Q.includes(De.rawName):()=>!1,te=q.map(De=>{let ie=De.getValue();return ee(ie)?c(Y.originalText.slice(y(ie),m(ie))):H()},"attrs"),oe=R.type==="element"&&R.fullName==="script"&&R.attrs.length===1&&R.attrs[0].fullName==="src"&&R.children.length===0,X=Y.singleAttributePerLine&&R.attrs.length>1&&!T(R,Y)?o:u,ue=[a([oe?" ":u,r(X,te)])];return R.firstChild&&N(R.firstChild)||R.isSelfClosing&&F(R.parent)||oe?ue.push(R.isSelfClosing?" ":""):ue.push(Y.bracketSameLine?R.isSelfClosing?" ":"":R.isSelfClosing?u:i),ue}function b(q){return q.firstChild&&N(q.firstChild)?"":V(q)}function L(q,Y,H){let R=q.getValue();return[M(R,Y),x(q,Y,H),R.isSelfClosing?"":b(R)]}function M(q,Y){return q.prev&&E(q.prev)?"":[j(q,Y),$(q)]}function j(q,Y){return N(q)?V(q.parent):g(q)?C(q.prev,Y):""}function $(q){switch(q.type){case"ieConditionalComment":case"ieConditionalStartComment":return"<").concat(q.rawName);default:return"<".concat(q.rawName)}}function V(q){switch(t(!q.isSelfClosing),q.type){case"ieConditionalComment":return"]>";case"element":if(q.condition)return">";default:return">"}}n.exports={printClosingTag:A,printClosingTagStart:S,printClosingTagStartMarker:P,printClosingTagEndMarker:C,printClosingTagSuffix:k,printClosingTagEnd:B,needsToBorrowLastChildClosingTagEndMarker:F,needsToBorrowParentClosingTagStartMarker:l,needsToBorrowPrevClosingTagEndMarker:g,printOpeningTag:L,printOpeningTagStart:M,printOpeningTagPrefix:j,printOpeningTagStartMarker:$,printOpeningTagEndMarker:V,needsToBorrowNextOpeningTagStartMarker:E,needsToBorrowParentOpeningTagEndMarker:N}}}),Kd=Z({"node_modules/parse-srcset/src/parse-srcset.js"(e,n){re(),function(t,s){typeof define=="function"&&define.amd?define([],s):typeof n=="object"&&n.exports?n.exports=s():t.parseSrcset=s()}(e,function(){return function(t,s){var a=s&&s.logger||console;function r(P){return P===" "||P===" "||P===` +`||P==="\f"||P==="\r"}function u(P){var C,D=P.exec(t.substring(S));if(D)return C=D[0],S+=C.length,C}for(var i=t.length,o=/^[ \t\n\r\u000c]+/,c=/^[, \t\n\r\u000c]+/,y=/^[^ \t\n\r\u000c]+/,m=/[,]+$/,d=/^\d+$/,p=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,f,h,w,T,A,S=0,B=[];;){if(u(c),S>=i)return B;f=u(y),h=[],f.slice(-1)===","?(f=f.replace(m,""),k()):I()}function I(){for(u(o),w="",T="in descriptor";;){if(A=t.charAt(S),T==="in descriptor")if(r(A))w&&(h.push(w),w="",T="after descriptor");else if(A===","){S+=1,w&&h.push(w),k();return}else if(A==="(")w=w+A,T="in parens";else if(A===""){w&&h.push(w),k();return}else w=w+A;else if(T==="in parens")if(A===")")w=w+A,T="in descriptor";else if(A===""){h.push(w),k();return}else w=w+A;else if(T==="after descriptor"&&!r(A))if(A===""){k();return}else T="in descriptor",S-=1;S+=1}}function k(){var P=!1,C,D,g,F,l={},E,v,N,x,b;for(F=0;F{let{w:k}=I;return k}),m=c.some(I=>{let{h:k}=I;return k}),d=c.some(I=>{let{d:k}=I;return k});if(y+m+d>1)throw new Error("Mixed descriptor in srcset is not supported");let p=y?"w":m?"h":"d",f=y?"w":m?"h":"x",h=I=>Math.max(...I),w=c.map(I=>I.url),T=h(w.map(I=>I.length)),A=c.map(I=>I[p]).map(I=>I?I.toString():""),S=A.map(I=>{let k=I.indexOf(".");return k===-1?I.length:k}),B=h(S);return a([",",r],w.map((I,k)=>{let P=[I],C=A[k];if(C){let D=T-I.length+1,g=B-S[k],F=" ".repeat(D+g);P.push(s(F," "),C+f)}return P}))}function i(o){return o.trim().split(/\s+/).join(" ")}n.exports={printImgSrcset:u,printClassNames:i}}}),Qd=Z({"src/language-html/syntax-vue.js"(e,n){"use strict";re();var{builders:{group:t}}=Oe();function s(i,o){let{left:c,operator:y,right:m}=a(i);return[t(o("function _(".concat(c,") {}"),{parser:"babel",__isVueForBindingLeft:!0}))," ",y," ",o(m,{parser:"__js_expression"},{stripTrailingHardline:!0})]}function a(i){let o=/(.*?)\s+(in|of)\s+(.*)/s,c=/,([^,\]}]*)(?:,([^,\]}]*))?$/,y=/^\(|\)$/g,m=i.match(o);if(!m)return;let d={};if(d.for=m[3].trim(),!d.for)return;let p=m[1].trim().replace(y,""),f=p.match(c);f?(d.alias=p.replace(c,""),d.iterator1=f[1].trim(),f[2]&&(d.iterator2=f[2].trim())):d.alias=p;let h=[d.alias,d.iterator1,d.iterator2];if(!h.some((w,T)=>!w&&(T===0||h.slice(T+1).some(Boolean))))return{left:h.filter(Boolean).join(","),operator:m[2],right:d.for}}function r(i,o){return o("function _(".concat(i,") {}"),{parser:"babel",__isVueBindings:!0})}function u(i){let o=/^(?:[\w$]+|\([^)]*\))\s*=>|^function\s*\(/,c=/^[$A-Z_a-z][\w$]*(?:\.[$A-Z_a-z][\w$]*|\['[^']*']|\["[^"]*"]|\[\d+]|\[[$A-Z_a-z][\w$]*])*$/,y=i.trim();return o.test(y)||c.test(y)}n.exports={isVueEventBindingExpression:u,printVueFor:s,printVueBindings:r}}}),co=Z({"src/language-html/get-node-content.js"(e,n){"use strict";re();var{needsToBorrowParentClosingTagStartMarker:t,printClosingTagStartMarker:s,needsToBorrowLastChildClosingTagEndMarker:a,printClosingTagEndMarker:r,needsToBorrowParentOpeningTagEndMarker:u,printOpeningTagEndMarker:i}=Qt();function o(c,y){let m=c.startSourceSpan.end.offset;c.firstChild&&u(c.firstChild)&&(m-=i(c).length);let d=c.endSourceSpan.start.offset;return c.lastChild&&t(c.lastChild)?d+=s(c,y).length:a(c)&&(d-=r(c.lastChild,y).length),y.originalText.slice(m,d)}n.exports=o}}),Zd=Z({"src/language-html/embed.js"(e,n){"use strict";re();var{builders:{breakParent:t,group:s,hardline:a,indent:r,line:u,fill:i,softline:o},utils:{mapDoc:c,replaceTextEndOfLine:y}}=Oe(),m=Jn(),{printClosingTag:d,printClosingTagSuffix:p,needsToBorrowPrevClosingTagEndMarker:f,printOpeningTagPrefix:h,printOpeningTag:w}=Qt(),{printImgSrcset:T,printClassNames:A}=Yd(),{printVueFor:S,printVueBindings:B,isVueEventBindingExpression:I}=Qd(),{isScriptLikeTag:k,isVueNonHtmlBlock:P,inferScriptParser:C,htmlTrimPreserveIndentation:D,dedentString:g,unescapeQuoteEntities:F,isVueSlotAttribute:l,isVueSfcBindingsAttribute:E,getTextValueParts:v}=jt(),N=co();function x(L,M,j){let $=te=>new RegExp(te.join("|")).test(L.fullName),V=()=>F(L.value),q=!1,Y=(te,oe)=>{let W=te.type==="NGRoot"?te.node.type==="NGMicrosyntax"&&te.node.body.length===1&&te.node.body[0].type==="NGMicrosyntaxExpression"?te.node.body[0].expression:te.node:te.type==="JsExpressionRoot"?te.node:te;W&&(W.type==="ObjectExpression"||W.type==="ArrayExpression"||oe.parser==="__vue_expression"&&(W.type==="TemplateLiteral"||W.type==="StringLiteral"))&&(q=!0)},H=te=>s(te),R=function(te){let oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return s([r([o,te]),oe?o:""])},Q=te=>q?H(te):R(te),ee=(te,oe)=>M(te,Object.assign({__onHtmlBindingRoot:Y,__embeddedInHtml:!0},oe));if(L.fullName==="srcset"&&(L.parent.fullName==="img"||L.parent.fullName==="source"))return R(T(V()));if(L.fullName==="class"&&!j.parentParser){let te=V();if(!te.includes("{{"))return A(te)}if(L.fullName==="style"&&!j.parentParser){let te=V();if(!te.includes("{{"))return R(ee(te,{parser:"css",__isHTMLStyleAttribute:!0}))}if(j.parser==="vue"){if(L.fullName==="v-for")return S(V(),ee);if(l(L)||E(L,j))return B(V(),ee);let te=["^@","^v-on:"],oe=["^:","^v-bind:"],W=["^v-"];if($(te)){let X=V(),ue=I(X)?"__js_expression":j.__should_parse_vue_template_with_ts?"__vue_ts_event_binding":"__vue_event_binding";return Q(ee(X,{parser:ue}))}if($(oe))return Q(ee(V(),{parser:"__vue_expression"}));if($(W))return Q(ee(V(),{parser:"__js_expression"}))}if(j.parser==="angular"){let te=(G,z)=>ee(G,Object.assign(Object.assign({},z),{},{trailingComma:"none"})),oe=["^\\*"],W=["^\\(.+\\)$","^on-"],X=["^\\[.+\\]$","^bind(on)?-","^ng-(if|show|hide|class|style)$"],ue=["^i18n(-.+)?$"];if($(W))return Q(te(V(),{parser:"__ng_action"}));if($(X))return Q(te(V(),{parser:"__ng_binding"}));if($(ue)){let G=V().trim();return R(i(v(L,G)),!G.includes("@@"))}if($(oe))return Q(te(V(),{parser:"__ng_directive"}));let De=/{{(.+?)}}/s,ie=V();if(De.test(ie)){let G=[];for(let[z,U]of ie.split(De).entries())if(z%2===0)G.push(y(U));else try{G.push(s(["{{",r([u,te(U,{parser:"__ng_interpolation",__isInHtmlInterpolation:!0})]),u,"}}"]))}catch{G.push("{{",y(U),"}}")}return s(G)}}return null}function b(L,M,j,$){let V=L.getValue();switch(V.type){case"element":{if(k(V)||V.type==="interpolation")return;if(!V.isSelfClosing&&P(V,$)){let q=C(V,$);if(!q)return;let Y=N(V,$),H=/^\s*$/.test(Y),R="";return H||(R=j(D(Y),{parser:q,__embeddedInHtml:!0},{stripTrailingHardline:!0}),H=R===""),[h(V,$),s(w(L,$,M)),H?"":a,R,H?"":a,d(V,$),p(V,$)]}break}case"text":{if(k(V.parent)){let q=C(V.parent,$);if(q){let Y=q==="markdown"?g(V.value.replace(/^[^\S\n]*\n/,"")):V.value,H={parser:q,__embeddedInHtml:!0};if($.parser==="html"&&q==="babel"){let R="script",{attrMap:Q}=V.parent;Q&&(Q.type==="module"||Q.type==="text/babel"&&Q["data-type"]==="module")&&(R="module"),H.__babelSourceType=R}return[t,h(V,$),j(Y,H,{stripTrailingHardline:!0}),p(V,$)]}}else if(V.parent.type==="interpolation"){let q={__isInHtmlInterpolation:!0,__embeddedInHtml:!0};return $.parser==="angular"?(q.parser="__ng_interpolation",q.trailingComma="none"):$.parser==="vue"?q.parser=$.__should_parse_vue_template_with_ts?"__vue_ts_expression":"__vue_expression":q.parser="__js_expression",[r([u,j(V.value,q,{stripTrailingHardline:!0})]),V.parent.next&&f(V.parent.next)?" ":u]}break}case"attribute":{if(!V.value)break;if(/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test($.originalText.slice(V.valueSpan.start.offset,V.valueSpan.end.offset)))return[V.rawName,"=",V.value];if($.parser==="lwc"&&/^{.*}$/s.test($.originalText.slice(V.valueSpan.start.offset,V.valueSpan.end.offset)))return[V.rawName,"=",V.value];let q=x(V,(Y,H)=>j(Y,Object.assign({__isInHtmlAttribute:!0,__embeddedInHtml:!0},H),{stripTrailingHardline:!0}),$);if(q)return[V.rawName,'="',s(c(q,Y=>typeof Y=="string"?Y.replace(/"/g,"""):Y)),'"'];break}case"front-matter":return m(V,j)}}n.exports=b}}),po=Z({"src/language-html/print/children.js"(e,n){"use strict";re();var{builders:{breakParent:t,group:s,ifBreak:a,line:r,softline:u,hardline:i},utils:{replaceTextEndOfLine:o}}=Oe(),{locStart:c,locEnd:y}=zn(),{forceBreakChildren:m,forceNextEmptyLine:d,isTextLikeNode:p,hasPrettierIgnore:f,preferHardlineAsLeadingSpaces:h}=jt(),{printOpeningTagPrefix:w,needsToBorrowNextOpeningTagStartMarker:T,printOpeningTagStartMarker:A,needsToBorrowPrevClosingTagEndMarker:S,printClosingTagEndMarker:B,printClosingTagSuffix:I,needsToBorrowParentClosingTagStartMarker:k}=Qt();function P(g,F,l){let E=g.getValue();return f(E)?[w(E,F),...o(F.originalText.slice(c(E)+(E.prev&&T(E.prev)?A(E).length:0),y(E)-(E.next&&S(E.next)?B(E,F).length:0))),I(E,F)]:l()}function C(g,F){return p(g)&&p(F)?g.isTrailingSpaceSensitive?g.hasTrailingSpaces?h(F)?i:r:"":h(F)?i:u:T(g)&&(f(F)||F.firstChild||F.isSelfClosing||F.type==="element"&&F.attrs.length>0)||g.type==="element"&&g.isSelfClosing&&S(F)?"":!F.isLeadingSpaceSensitive||h(F)||S(F)&&g.lastChild&&k(g.lastChild)&&g.lastChild.lastChild&&k(g.lastChild.lastChild)?i:F.hasLeadingSpaces?r:u}function D(g,F,l){let E=g.getValue();if(m(E))return[t,...g.map(N=>{let x=N.getValue(),b=x.prev?C(x.prev,x):"";return[b?[b,d(x.prev)?i:""]:"",P(N,F,l)]},"children")];let v=E.children.map(()=>Symbol(""));return g.map((N,x)=>{let b=N.getValue();if(p(b)){if(b.prev&&p(b.prev)){let Y=C(b.prev,b);if(Y)return d(b.prev)?[i,i,P(N,F,l)]:[Y,P(N,F,l)]}return P(N,F,l)}let L=[],M=[],j=[],$=[],V=b.prev?C(b.prev,b):"",q=b.next?C(b,b.next):"";return V&&(d(b.prev)?L.push(i,i):V===i?L.push(i):p(b.prev)?M.push(V):M.push(a("",u,{groupId:v[x-1]}))),q&&(d(b)?p(b.next)&&$.push(i,i):q===i?p(b.next)&&$.push(i):j.push(q)),[...L,s([...M,s([P(N,F,l),...j],{id:v[x]})]),...$]},"children")}n.exports={printChildren:D}}}),eg=Z({"src/language-html/print/element.js"(e,n){"use strict";re();var{builders:{breakParent:t,dedentToRoot:s,group:a,ifBreak:r,indentIfBreak:u,indent:i,line:o,softline:c},utils:{replaceTextEndOfLine:y}}=Oe(),m=co(),{shouldPreserveContent:d,isScriptLikeTag:p,isVueCustomBlock:f,countParents:h,forceBreakContent:w}=jt(),{printOpeningTagPrefix:T,printOpeningTag:A,printClosingTagSuffix:S,printClosingTag:B,needsToBorrowPrevClosingTagEndMarker:I,needsToBorrowLastChildClosingTagEndMarker:k}=Qt(),{printChildren:P}=po();function C(D,g,F){let l=D.getValue();if(d(l,g))return[T(l,g),a(A(D,g,F)),...y(m(l,g)),...B(l,g),S(l,g)];let E=l.children.length===1&&l.firstChild.type==="interpolation"&&l.firstChild.isLeadingSpaceSensitive&&!l.firstChild.hasLeadingSpaces&&l.lastChild.isTrailingSpaceSensitive&&!l.lastChild.hasTrailingSpaces,v=Symbol("element-attr-group-id"),N=M=>a([a(A(D,g,F),{id:v}),M,B(l,g)]),x=M=>E?u(M,{groupId:v}):(p(l)||f(l,g))&&l.parent.type==="root"&&g.parser==="vue"&&!g.vueIndentScriptAndStyle?M:i(M),b=()=>E?r(c,"",{groupId:v}):l.firstChild.hasLeadingSpaces&&l.firstChild.isLeadingSpaceSensitive?o:l.firstChild.type==="text"&&l.isWhitespaceSensitive&&l.isIndentationSensitive?s(c):c,L=()=>(l.next?I(l.next):k(l.parent))?l.lastChild.hasTrailingSpaces&&l.lastChild.isTrailingSpaceSensitive?" ":"":E?r(c,"",{groupId:v}):l.lastChild.hasTrailingSpaces&&l.lastChild.isTrailingSpaceSensitive?o:(l.lastChild.type==="comment"||l.lastChild.type==="text"&&l.isWhitespaceSensitive&&l.isIndentationSensitive)&&new RegExp("\\n[\\t ]{".concat(g.tabWidth*h(D,j=>j.parent&&j.parent.type!=="root"),"}$")).test(l.lastChild.value)?"":c;return l.children.length===0?N(l.hasDanglingSpaces&&l.isDanglingSpaceSensitive?o:""):N([w(l)?t:"",x([b(),P(D,g,F)]),L()])}n.exports={printElement:C}}}),tg=Z({"src/language-html/printer-html.js"(e,n){"use strict";re();var{builders:{fill:t,group:s,hardline:a,literalline:r},utils:{cleanDoc:u,getDocParts:i,isConcat:o,replaceTextEndOfLine:c}}=Oe(),y=Rd(),{countChars:m,unescapeQuoteEntities:d,getTextValueParts:p}=jt(),f=zd(),{insertPragma:h}=Xd(),{locStart:w,locEnd:T}=zn(),A=Zd(),{printClosingTagSuffix:S,printClosingTagEnd:B,printOpeningTagPrefix:I,printOpeningTagStart:k}=Qt(),{printElement:P}=eg(),{printChildren:C}=po();function D(g,F,l){let E=g.getValue();switch(E.type){case"front-matter":return c(E.raw);case"root":return F.__onHtmlRoot&&F.__onHtmlRoot(E),[s(C(g,F,l)),a];case"element":case"ieConditionalComment":return P(g,F,l);case"ieConditionalStartComment":case"ieConditionalEndComment":return[k(E),B(E)];case"interpolation":return[k(E,F),...g.map(l,"children"),B(E,F)];case"text":{if(E.parent.type==="interpolation"){let N=/\n[^\S\n]*$/,x=N.test(E.value),b=x?E.value.replace(N,""):E.value;return[...c(b),x?a:""]}let v=u([I(E,F),...p(E),S(E,F)]);return o(v)||v.type==="fill"?t(i(v)):v}case"docType":return[s([k(E,F)," ",E.value.replace(/^html\b/i,"html").replace(/\s+/g," ")]),B(E,F)];case"comment":return[I(E,F),...c(F.originalText.slice(w(E),T(E)),r),S(E,F)];case"attribute":{if(E.value===null)return E.rawName;let v=d(E.value),N=m(v,"'"),x=m(v,'"'),b=N({name:"Angular",since:"1.15.0",parsers:["angular"],vscodeLanguageIds:["html"],extensions:[".component.html"],filenames:[]})),t(An(),o=>({since:"1.15.0",parsers:["html"],vscodeLanguageIds:["html"],extensions:[...o.extensions,".mjml"]})),t(An(),()=>({name:"Lightning Web Components",since:"1.17.0",parsers:["lwc"],vscodeLanguageIds:["html"],extensions:[],filenames:[]})),t(ug(),()=>({since:"1.10.0",parsers:["vue"],vscodeLanguageIds:["vue"]}))],i={html:s};n.exports={languages:u,printers:i,options:a,parsers:r}}}),ig=Z({"src/language-yaml/pragma.js"(e,n){"use strict";re();function t(r){return/^\s*@(?:prettier|format)\s*$/.test(r)}function s(r){return/^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/.test(r)}function a(r){return`# @format + +`.concat(r)}n.exports={isPragma:t,hasPragma:s,insertPragma:a}}}),ag=Z({"src/language-yaml/loc.js"(e,n){"use strict";re();function t(a){return a.position.start.offset}function s(a){return a.position.end.offset}n.exports={locStart:t,locEnd:s}}}),og=Z({"src/language-yaml/embed.js"(e,n){"use strict";re();function t(s,a,r,u){if(s.getValue().type==="root"&&u.filepath&&/(?:[/\\]|^)\.(?:prettier|stylelint)rc$/.test(u.filepath))return r(u.originalText,Object.assign(Object.assign({},u),{},{parser:"json"}))}n.exports=t}}),Ot=Z({"src/language-yaml/utils.js"(e,n){"use strict";re();var{getLast:t,isNonEmptyArray:s}=Ue();function a(C,D){let g=0,F=C.stack.length-1;for(let l=0;lu(F,D,C))}):C,g)}function i(C,D,g){Object.defineProperty(C,D,{get:g,enumerable:!1})}function o(C,D){let g=0,F=D.length;for(let l=C.position.end.offset-1;lE===0&&E===v.length-1?l:E!==0&&E!==v.length-1?l.trim():E===0?l.trimEnd():l.trimStart());return g.proseWrap==="preserve"?F.map(l=>l.length===0?[]:[l]):F.map(l=>l.length===0?[]:B(l)).reduce((l,E,v)=>v!==0&&F[v-1].length>0&&E.length>0&&!(C==="quoteDouble"&&t(t(l)).endsWith("\\"))?[...l.slice(0,-1),[...t(l),...E]]:[...l,E],[]).map(l=>g.proseWrap==="never"?[l.join(" ")]:l)}function k(C,D){let{parentIndent:g,isLastDescendant:F,options:l}=D,E=C.position.start.line===C.position.end.line?"":l.originalText.slice(C.position.start.offset,C.position.end.offset).match(/^[^\n]*\n(.*)$/s)[1],v;if(C.indent===null){let b=E.match(/^(? *)[^\n\r ]/m);v=b?b.groups.leadingSpace.length:Number.POSITIVE_INFINITY}else v=C.indent-1+g;let N=E.split(` +`).map(b=>b.slice(v));if(l.proseWrap==="preserve"||C.type==="blockLiteral")return x(N.map(b=>b.length===0?[]:[b]));return x(N.map(b=>b.length===0?[]:B(b)).reduce((b,L,M)=>M!==0&&N[M-1].length>0&&L.length>0&&!/^\s/.test(L[0])&&!/^\s|\s$/.test(t(b))?[...b.slice(0,-1),[...t(b),...L]]:[...b,L],[]).map(b=>b.reduce((L,M)=>L.length>0&&/\s$/.test(t(L))?[...L.slice(0,-1),t(L)+" "+M]:[...L,M],[])).map(b=>l.proseWrap==="never"?[b.join(" ")]:b));function x(b){if(C.chomping==="keep")return t(b).length===0?b.slice(0,-1):b;let L=0;for(let M=b.length-1;M>=0&&b[M].length===0;M--)L++;return L===0?b:L>=2&&!F?b.slice(0,-(L-1)):b.slice(0,-L)}}function P(C){if(!C)return!0;switch(C.type){case"plain":case"quoteDouble":case"quoteSingle":case"alias":case"flowMapping":case"flowSequence":return!0;default:return!1}}n.exports={getLast:t,getAncestorCount:a,isNode:r,isEmptyNode:p,isInlineNode:P,mapNode:u,defineShortcut:i,isNextLineEmpty:o,isLastDescendantNode:c,getBlockValueLineContents:k,getFlowScalarLineContents:I,getLastDescendantNode:y,hasPrettierIgnore:d,hasLeadingComments:h,hasMiddleComments:w,hasIndicatorComment:T,hasTrailingComment:A,hasEndComments:S}}}),lg=Z({"src/language-yaml/print-preprocess.js"(e,n){"use strict";re();var{defineShortcut:t,mapNode:s}=Ot();function a(u){return s(u,r)}function r(u){switch(u.type){case"document":t(u,"head",()=>u.children[0]),t(u,"body",()=>u.children[1]);break;case"documentBody":case"sequenceItem":case"flowSequenceItem":case"mappingKey":case"mappingValue":t(u,"content",()=>u.children[0]);break;case"mappingItem":case"flowMappingItem":t(u,"key",()=>u.children[0]),t(u,"value",()=>u.children[1]);break}return u}n.exports=a}}),Ir=Z({"src/language-yaml/print/misc.js"(e,n){"use strict";re();var{builders:{softline:t,align:s}}=Oe(),{hasEndComments:a,isNextLineEmpty:r,isNode:u}=Ot(),i=new WeakMap;function o(m,d){let p=m.getValue(),f=m.stack[0],h;return i.has(f)?h=i.get(f):(h=new Set,i.set(f,h)),!h.has(p.position.end.line)&&(h.add(p.position.end.line),r(p,d)&&!c(m.getParentNode()))?t:""}function c(m){return a(m)&&!u(m,["documentHead","documentBody","flowMapping","flowSequence"])}function y(m,d){return s(" ".repeat(m),d)}n.exports={alignWithSpaces:y,shouldPrintEndComments:c,printNextEmptyLine:o}}}),cg=Z({"src/language-yaml/print/flow-mapping-sequence.js"(e,n){"use strict";re();var{builders:{ifBreak:t,line:s,softline:a,hardline:r,join:u}}=Oe(),{isEmptyNode:i,getLast:o,hasEndComments:c}=Ot(),{printNextEmptyLine:y,alignWithSpaces:m}=Ir();function d(f,h,w){let T=f.getValue(),A=T.type==="flowMapping",S=A?"{":"[",B=A?"}":"]",I=a;A&&T.children.length>0&&w.bracketSpacing&&(I=s);let k=o(T.children),P=k&&k.type==="flowMappingItem"&&i(k.key)&&i(k.value);return[S,m(w.tabWidth,[I,p(f,h,w),w.trailingComma==="none"?"":t(","),c(T)?[r,u(r,f.map(h,"endComments"))]:""]),P?"":I,B]}function p(f,h,w){let T=f.getValue();return f.map((S,B)=>[h(),B===T.children.length-1?"":[",",s,T.children[B].position.start.line!==T.children[B+1].position.start.line?y(S,w.originalText):""]],"children")}n.exports={printFlowMapping:d,printFlowSequence:d}}}),pg=Z({"src/language-yaml/print/mapping-item.js"(e,n){"use strict";re();var{builders:{conditionalGroup:t,group:s,hardline:a,ifBreak:r,join:u,line:i}}=Oe(),{hasLeadingComments:o,hasMiddleComments:c,hasTrailingComment:y,hasEndComments:m,isNode:d,isEmptyNode:p,isInlineNode:f}=Ot(),{alignWithSpaces:h}=Ir();function w(B,I,k,P,C){let{key:D,value:g}=B,F=p(D),l=p(g);if(F&&l)return": ";let E=P("key"),v=A(B)?" ":"";if(l)return B.type==="flowMappingItem"&&I.type==="flowMapping"?E:B.type==="mappingItem"&&T(D.content,C)&&!y(D.content)&&(!I.tag||I.tag.value!=="tag:yaml.org,2002:set")?[E,v,":"]:["? ",h(2,E)];let N=P("value");if(F)return[": ",h(2,N)];if(o(g)||!f(D.content))return["? ",h(2,E),a,u("",k.map(P,"value","leadingComments").map($=>[$,a])),": ",h(2,N)];if(S(D.content)&&!o(D.content)&&!c(D.content)&&!y(D.content)&&!m(D)&&!o(g.content)&&!c(g.content)&&!m(g)&&T(g.content,C))return[E,v,": ",N];let x=Symbol("mappingKey"),b=s([r("? "),s(h(2,E),{id:x})]),L=[a,": ",h(2,N)],M=[v,":"];o(g.content)||m(g)&&g.content&&!d(g.content,["mapping","sequence"])||I.type==="mapping"&&y(D.content)&&f(g.content)||d(g.content,["mapping","sequence"])&&g.content.tag===null&&g.content.anchor===null?M.push(a):g.content&&M.push(i),M.push(N);let j=h(C.tabWidth,M);return T(D.content,C)&&!o(D.content)&&!c(D.content)&&!m(D)?t([[E,j]]):t([[b,r(L,j,{groupId:x})]])}function T(B,I){if(!B)return!0;switch(B.type){case"plain":case"quoteSingle":case"quoteDouble":break;case"alias":return!0;default:return!1}if(I.proseWrap==="preserve")return B.position.start.line===B.position.end.line;if(/\\$/m.test(I.originalText.slice(B.position.start.offset,B.position.end.offset)))return!1;switch(I.proseWrap){case"never":return!B.value.includes(` +`);case"always":return!/[\n ]/.test(B.value);default:return!1}}function A(B){return B.key.content&&B.key.content.type==="alias"}function S(B){if(!B)return!0;switch(B.type){case"plain":case"quoteDouble":case"quoteSingle":return B.position.start.line===B.position.end.line;case"alias":return!0;default:return!1}}n.exports=w}}),fg=Z({"src/language-yaml/print/block.js"(e,n){"use strict";re();var{builders:{dedent:t,dedentToRoot:s,fill:a,hardline:r,join:u,line:i,literalline:o,markAsRoot:c},utils:{getDocParts:y}}=Oe(),{getAncestorCount:m,getBlockValueLineContents:d,hasIndicatorComment:p,isLastDescendantNode:f,isNode:h}=Ot(),{alignWithSpaces:w}=Ir();function T(A,S,B){let I=A.getValue(),k=m(A,F=>h(F,["sequence","mapping"])),P=f(A),C=[I.type==="blockFolded"?">":"|"];I.indent!==null&&C.push(I.indent.toString()),I.chomping!=="clip"&&C.push(I.chomping==="keep"?"+":"-"),p(I)&&C.push(" ",S("indicatorComment"));let D=d(I,{parentIndent:k,isLastDescendant:P,options:B}),g=[];for(let[F,l]of D.entries())F===0&&g.push(r),g.push(a(y(u(i,l)))),F!==D.length-1?g.push(l.length===0?r:c(o)):I.chomping==="keep"&&P&&g.push(s(l.length===0?r:o));return I.indent===null?C.push(t(w(B.tabWidth,g))):C.push(s(w(I.indent-1+k,g))),C}n.exports=T}}),Dg=Z({"src/language-yaml/printer-yaml.js"(e,n){"use strict";re();var{builders:{breakParent:t,fill:s,group:a,hardline:r,join:u,line:i,lineSuffix:o,literalline:c},utils:{getDocParts:y,replaceTextEndOfLine:m}}=Oe(),{isPreviousLineEmpty:d}=Ue(),{insertPragma:p,isPragma:f}=ig(),{locStart:h}=ag(),w=og(),{getFlowScalarLineContents:T,getLastDescendantNode:A,hasLeadingComments:S,hasMiddleComments:B,hasTrailingComment:I,hasEndComments:k,hasPrettierIgnore:P,isLastDescendantNode:C,isNode:D,isInlineNode:g}=Ot(),F=lg(),{alignWithSpaces:l,printNextEmptyLine:E,shouldPrintEndComments:v}=Ir(),{printFlowMapping:N,printFlowSequence:x}=cg(),b=pg(),L=fg();function M(R,Q,ee){let te=R.getValue(),oe=[];te.type!=="mappingValue"&&S(te)&&oe.push([u(r,R.map(ee,"leadingComments")),r]);let{tag:W,anchor:X}=te;W&&oe.push(ee("tag")),W&&X&&oe.push(" "),X&&oe.push(ee("anchor"));let ue="";D(te,["mapping","sequence","comment","directive","mappingItem","sequenceItem"])&&!C(R)&&(ue=E(R,Q.originalText)),(W||X)&&(D(te,["sequence","mapping"])&&!B(te)?oe.push(r):oe.push(" ")),B(te)&&oe.push([te.middleComments.length===1?"":r,u(r,R.map(ee,"middleComments")),r]);let De=R.getParentNode();return P(R)?oe.push(m(Q.originalText.slice(te.position.start.offset,te.position.end.offset).trimEnd(),c)):oe.push(a(j(te,De,R,Q,ee))),I(te)&&!D(te,["document","documentHead"])&&oe.push(o([te.type==="mappingValue"&&!te.content?"":" ",De.type==="mappingKey"&&R.getParentNode(2).type==="mapping"&&g(te)?"":t,ee("trailingComment")])),v(te)&&oe.push(l(te.type==="sequenceItem"?2:0,[r,u(r,R.map(ie=>[d(Q.originalText,ie.getValue(),h)?r:"",ee()],"endComments"))])),oe.push(ue),oe}function j(R,Q,ee,te,oe){switch(R.type){case"root":{let{children:W}=R,X=[];ee.each((De,ie)=>{let G=W[ie],z=W[ie+1];ie!==0&&X.push(r),X.push(oe()),V(G,z)?(X.push(r,"..."),I(G)&&X.push(" ",oe("trailingComment"))):z&&!I(z.head)&&X.push(r,"---")},"children");let ue=A(R);return(!D(ue,["blockLiteral","blockFolded"])||ue.chomping!=="keep")&&X.push(r),X}case"document":{let W=Q.children[ee.getName()+1],X=[];return q(R,W,Q,te)==="head"&&((R.head.children.length>0||R.head.endComments.length>0)&&X.push(oe("head")),I(R.head)?X.push(["---"," ",oe(["head","trailingComment"])]):X.push("---")),$(R)&&X.push(oe("body")),u(r,X)}case"documentHead":return u(r,[...ee.map(oe,"children"),...ee.map(oe,"endComments")]);case"documentBody":{let{children:W,endComments:X}=R,ue="";if(W.length>0&&X.length>0){let De=A(R);D(De,["blockFolded","blockLiteral"])?De.chomping!=="keep"&&(ue=[r,r]):ue=r}return[u(r,ee.map(oe,"children")),ue,u(r,ee.map(oe,"endComments"))]}case"directive":return["%",u(" ",[R.name,...R.parameters])];case"comment":return["#",R.value];case"alias":return["*",R.value];case"tag":return te.originalText.slice(R.position.start.offset,R.position.end.offset);case"anchor":return["&",R.value];case"plain":return Y(R.type,te.originalText.slice(R.position.start.offset,R.position.end.offset),te);case"quoteDouble":case"quoteSingle":{let W="'",X='"',ue=te.originalText.slice(R.position.start.offset+1,R.position.end.offset-1);if(R.type==="quoteSingle"&&ue.includes("\\")||R.type==="quoteDouble"&&/\\[^"]/.test(ue)){let ie=R.type==="quoteDouble"?X:W;return[ie,Y(R.type,ue,te),ie]}if(ue.includes(X))return[W,Y(R.type,R.type==="quoteDouble"?ue.replace(/\\"/g,X).replace(/'/g,W.repeat(2)):ue,te),W];if(ue.includes(W))return[X,Y(R.type,R.type==="quoteSingle"?ue.replace(/''/g,W):ue,te),X];let De=te.singleQuote?W:X;return[De,Y(R.type,ue,te),De]}case"blockFolded":case"blockLiteral":return L(ee,oe,te);case"mapping":case"sequence":return u(r,ee.map(oe,"children"));case"sequenceItem":return["- ",l(2,R.content?oe("content"):"")];case"mappingKey":case"mappingValue":return R.content?oe("content"):"";case"mappingItem":case"flowMappingItem":return b(R,Q,ee,oe,te);case"flowMapping":return N(ee,oe,te);case"flowSequence":return x(ee,oe,te);case"flowSequenceItem":return oe("content");default:throw new Error("Unexpected node type ".concat(R.type))}}function $(R){return R.body.children.length>0||k(R.body)}function V(R,Q){return I(R)||Q&&(Q.head.children.length>0||k(Q.head))}function q(R,Q,ee,te){return ee.children[0]===R&&/---(?:\s|$)/.test(te.originalText.slice(h(R),h(R)+4))||R.head.children.length>0||k(R.head)||I(R.head)?"head":V(R,Q)?!1:Q?"root":!1}function Y(R,Q,ee){let te=T(R,Q,ee);return u(r,te.map(oe=>s(y(u(i,oe)))))}function H(R,Q){if(D(Q))switch(delete Q.position,Q.type){case"comment":if(f(Q.value))return null;break;case"quoteDouble":case"quoteSingle":Q.type="quote";break}}n.exports={preprocess:F,embed:w,print:M,massageAstNode:H,insertPragma:p}}}),mg=Z({"src/language-yaml/options.js"(e,n){"use strict";re();var t=Lt();n.exports={bracketSpacing:t.bracketSpacing,singleQuote:t.singleQuote,proseWrap:t.proseWrap}}}),dg=Z({"src/language-yaml/parsers.js"(){re()}}),gg=Z({"node_modules/linguist-languages/data/YAML.json"(e,n){n.exports={name:"YAML",type:"data",color:"#cb171e",tmScope:"source.yaml",aliases:["yml"],extensions:[".yml",".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".gemrc","CITATION.cff","glide.lock","yarn.lock"],aceMode:"yaml",codemirrorMode:"yaml",codemirrorMimeType:"text/x-yaml",languageId:407}}}),yg=Z({"src/language-yaml/index.js"(e,n){"use strict";re();var t=Tt(),s=Dg(),a=mg(),r=dg(),u=[t(gg(),i=>({since:"1.14.0",parsers:["yaml"],vscodeLanguageIds:["yaml","ansible","home-assistant"],filenames:[...i.filenames.filter(o=>o!=="yarn.lock"),".prettierrc",".stylelintrc"]}))];n.exports={languages:u,printers:{yaml:s},options:a,parsers:r}}}),hg=Z({"src/languages.js"(e,n){"use strict";re(),n.exports=[Qm(),gd(),Sd(),_d(),Md(),sg(),yg()]}}),vg=Z({"src/standalone.js"(e,n){re();var{version:t}=ca(),s=gm(),{getSupportInfo:a}=jn(),r=ym(),u=hg(),i=Oe();function o(y){let m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return function(){for(var d=arguments.length,p=new Array(d),f=0;f function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +// node_modules/core-js/internals/global.js +var require_global = __commonJS({ + "node_modules/core-js/internals/global.js"(exports2, module2) { + var check = function(it) { + return it && it.Math == Math && it; + }; + module2.exports = check(typeof globalThis == "object" && globalThis) || check(typeof window == "object" && window) || check(typeof self == "object" && self) || check(typeof global == "object" && global) || function() { + return this; + }() || Function("return this")(); + } +}); + +// node_modules/core-js/internals/fails.js +var require_fails = __commonJS({ + "node_modules/core-js/internals/fails.js"(exports2, module2) { + module2.exports = function(exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + } +}); + +// node_modules/core-js/internals/descriptors.js +var require_descriptors = __commonJS({ + "node_modules/core-js/internals/descriptors.js"(exports2, module2) { + var fails = require_fails(); + module2.exports = !fails(function() { + return Object.defineProperty({}, 1, { get: function() { + return 7; + } })[1] != 7; + }); + } +}); + +// node_modules/core-js/internals/function-bind-native.js +var require_function_bind_native = __commonJS({ + "node_modules/core-js/internals/function-bind-native.js"(exports2, module2) { + var fails = require_fails(); + module2.exports = !fails(function() { + var test = function() { + }.bind(); + return typeof test != "function" || test.hasOwnProperty("prototype"); + }); + } +}); + +// node_modules/core-js/internals/function-call.js +var require_function_call = __commonJS({ + "node_modules/core-js/internals/function-call.js"(exports2, module2) { + var NATIVE_BIND = require_function_bind_native(); + var call = Function.prototype.call; + module2.exports = NATIVE_BIND ? call.bind(call) : function() { + return call.apply(call, arguments); + }; + } +}); + +// node_modules/core-js/internals/object-property-is-enumerable.js +var require_object_property_is_enumerable = __commonJS({ + "node_modules/core-js/internals/object-property-is-enumerable.js"(exports2) { + "use strict"; + var $propertyIsEnumerable = {}.propertyIsEnumerable; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + exports2.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + } +}); + +// node_modules/core-js/internals/create-property-descriptor.js +var require_create_property_descriptor = __commonJS({ + "node_modules/core-js/internals/create-property-descriptor.js"(exports2, module2) { + module2.exports = function(bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value + }; + }; + } +}); + +// node_modules/core-js/internals/function-uncurry-this.js +var require_function_uncurry_this = __commonJS({ + "node_modules/core-js/internals/function-uncurry-this.js"(exports2, module2) { + var NATIVE_BIND = require_function_bind_native(); + var FunctionPrototype = Function.prototype; + var bind = FunctionPrototype.bind; + var call = FunctionPrototype.call; + var uncurryThis = NATIVE_BIND && bind.bind(call, call); + module2.exports = NATIVE_BIND ? function(fn) { + return fn && uncurryThis(fn); + } : function(fn) { + return fn && function() { + return call.apply(fn, arguments); + }; + }; + } +}); + +// node_modules/core-js/internals/classof-raw.js +var require_classof_raw = __commonJS({ + "node_modules/core-js/internals/classof-raw.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var toString = uncurryThis({}.toString); + var stringSlice = uncurryThis("".slice); + module2.exports = function(it) { + return stringSlice(toString(it), 8, -1); + }; + } +}); + +// node_modules/core-js/internals/indexed-object.js +var require_indexed_object = __commonJS({ + "node_modules/core-js/internals/indexed-object.js"(exports2, module2) { + var global2 = require_global(); + var uncurryThis = require_function_uncurry_this(); + var fails = require_fails(); + var classof = require_classof_raw(); + var Object2 = global2.Object; + var split = uncurryThis("".split); + module2.exports = fails(function() { + return !Object2("z").propertyIsEnumerable(0); + }) ? function(it) { + return classof(it) == "String" ? split(it, "") : Object2(it); + } : Object2; + } +}); + +// node_modules/core-js/internals/require-object-coercible.js +var require_require_object_coercible = __commonJS({ + "node_modules/core-js/internals/require-object-coercible.js"(exports2, module2) { + var global2 = require_global(); + var TypeError2 = global2.TypeError; + module2.exports = function(it) { + if (it == void 0) + throw TypeError2("Can't call method on " + it); + return it; + }; + } +}); + +// node_modules/core-js/internals/to-indexed-object.js +var require_to_indexed_object = __commonJS({ + "node_modules/core-js/internals/to-indexed-object.js"(exports2, module2) { + var IndexedObject = require_indexed_object(); + var requireObjectCoercible = require_require_object_coercible(); + module2.exports = function(it) { + return IndexedObject(requireObjectCoercible(it)); + }; + } +}); + +// node_modules/core-js/internals/is-callable.js +var require_is_callable = __commonJS({ + "node_modules/core-js/internals/is-callable.js"(exports2, module2) { + module2.exports = function(argument) { + return typeof argument == "function"; + }; + } +}); + +// node_modules/core-js/internals/is-object.js +var require_is_object = __commonJS({ + "node_modules/core-js/internals/is-object.js"(exports2, module2) { + var isCallable = require_is_callable(); + module2.exports = function(it) { + return typeof it == "object" ? it !== null : isCallable(it); + }; + } +}); + +// node_modules/core-js/internals/get-built-in.js +var require_get_built_in = __commonJS({ + "node_modules/core-js/internals/get-built-in.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var aFunction = function(argument) { + return isCallable(argument) ? argument : void 0; + }; + module2.exports = function(namespace, method) { + return arguments.length < 2 ? aFunction(global2[namespace]) : global2[namespace] && global2[namespace][method]; + }; + } +}); + +// node_modules/core-js/internals/object-is-prototype-of.js +var require_object_is_prototype_of = __commonJS({ + "node_modules/core-js/internals/object-is-prototype-of.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + module2.exports = uncurryThis({}.isPrototypeOf); + } +}); + +// node_modules/core-js/internals/engine-user-agent.js +var require_engine_user_agent = __commonJS({ + "node_modules/core-js/internals/engine-user-agent.js"(exports2, module2) { + var getBuiltIn = require_get_built_in(); + module2.exports = getBuiltIn("navigator", "userAgent") || ""; + } +}); + +// node_modules/core-js/internals/engine-v8-version.js +var require_engine_v8_version = __commonJS({ + "node_modules/core-js/internals/engine-v8-version.js"(exports2, module2) { + var global2 = require_global(); + var userAgent = require_engine_user_agent(); + var process2 = global2.process; + var Deno = global2.Deno; + var versions = process2 && process2.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match; + var version2; + if (v8) { + match = v8.split("."); + version2 = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + if (!version2 && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) + version2 = +match[1]; + } + } + module2.exports = version2; + } +}); + +// node_modules/core-js/internals/native-symbol.js +var require_native_symbol = __commonJS({ + "node_modules/core-js/internals/native-symbol.js"(exports2, module2) { + var V8_VERSION = require_engine_v8_version(); + var fails = require_fails(); + module2.exports = !!Object.getOwnPropertySymbols && !fails(function() { + var symbol = Symbol(); + return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41; + }); + } +}); + +// node_modules/core-js/internals/use-symbol-as-uid.js +var require_use_symbol_as_uid = __commonJS({ + "node_modules/core-js/internals/use-symbol-as-uid.js"(exports2, module2) { + var NATIVE_SYMBOL = require_native_symbol(); + module2.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == "symbol"; + } +}); + +// node_modules/core-js/internals/is-symbol.js +var require_is_symbol = __commonJS({ + "node_modules/core-js/internals/is-symbol.js"(exports2, module2) { + var global2 = require_global(); + var getBuiltIn = require_get_built_in(); + var isCallable = require_is_callable(); + var isPrototypeOf = require_object_is_prototype_of(); + var USE_SYMBOL_AS_UID = require_use_symbol_as_uid(); + var Object2 = global2.Object; + module2.exports = USE_SYMBOL_AS_UID ? function(it) { + return typeof it == "symbol"; + } : function(it) { + var $Symbol = getBuiltIn("Symbol"); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object2(it)); + }; + } +}); + +// node_modules/core-js/internals/try-to-string.js +var require_try_to_string = __commonJS({ + "node_modules/core-js/internals/try-to-string.js"(exports2, module2) { + var global2 = require_global(); + var String2 = global2.String; + module2.exports = function(argument) { + try { + return String2(argument); + } catch (error) { + return "Object"; + } + }; + } +}); + +// node_modules/core-js/internals/a-callable.js +var require_a_callable = __commonJS({ + "node_modules/core-js/internals/a-callable.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var tryToString = require_try_to_string(); + var TypeError2 = global2.TypeError; + module2.exports = function(argument) { + if (isCallable(argument)) + return argument; + throw TypeError2(tryToString(argument) + " is not a function"); + }; + } +}); + +// node_modules/core-js/internals/get-method.js +var require_get_method = __commonJS({ + "node_modules/core-js/internals/get-method.js"(exports2, module2) { + var aCallable = require_a_callable(); + module2.exports = function(V, P) { + var func = V[P]; + return func == null ? void 0 : aCallable(func); + }; + } +}); + +// node_modules/core-js/internals/ordinary-to-primitive.js +var require_ordinary_to_primitive = __commonJS({ + "node_modules/core-js/internals/ordinary-to-primitive.js"(exports2, module2) { + var global2 = require_global(); + var call = require_function_call(); + var isCallable = require_is_callable(); + var isObject = require_is_object(); + var TypeError2 = global2.TypeError; + module2.exports = function(input, pref) { + var fn, val; + if (pref === "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) + return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) + return val; + if (pref !== "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) + return val; + throw TypeError2("Can't convert object to primitive value"); + }; + } +}); + +// node_modules/core-js/internals/is-pure.js +var require_is_pure = __commonJS({ + "node_modules/core-js/internals/is-pure.js"(exports2, module2) { + module2.exports = false; + } +}); + +// node_modules/core-js/internals/set-global.js +var require_set_global = __commonJS({ + "node_modules/core-js/internals/set-global.js"(exports2, module2) { + var global2 = require_global(); + var defineProperty = Object.defineProperty; + module2.exports = function(key, value) { + try { + defineProperty(global2, key, { value, configurable: true, writable: true }); + } catch (error) { + global2[key] = value; + } + return value; + }; + } +}); + +// node_modules/core-js/internals/shared-store.js +var require_shared_store = __commonJS({ + "node_modules/core-js/internals/shared-store.js"(exports2, module2) { + var global2 = require_global(); + var setGlobal = require_set_global(); + var SHARED = "__core-js_shared__"; + var store = global2[SHARED] || setGlobal(SHARED, {}); + module2.exports = store; + } +}); + +// node_modules/core-js/internals/shared.js +var require_shared = __commonJS({ + "node_modules/core-js/internals/shared.js"(exports2, module2) { + var IS_PURE = require_is_pure(); + var store = require_shared_store(); + (module2.exports = function(key, value) { + return store[key] || (store[key] = value !== void 0 ? value : {}); + })("versions", []).push({ + version: "3.22.2", + mode: IS_PURE ? "pure" : "global", + copyright: "\xA9 2014-2022 Denis Pushkarev (zloirock.ru)", + license: "https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE", + source: "https://github.com/zloirock/core-js" + }); + } +}); + +// node_modules/core-js/internals/to-object.js +var require_to_object = __commonJS({ + "node_modules/core-js/internals/to-object.js"(exports2, module2) { + var global2 = require_global(); + var requireObjectCoercible = require_require_object_coercible(); + var Object2 = global2.Object; + module2.exports = function(argument) { + return Object2(requireObjectCoercible(argument)); + }; + } +}); + +// node_modules/core-js/internals/has-own-property.js +var require_has_own_property = __commonJS({ + "node_modules/core-js/internals/has-own-property.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var toObject = require_to_object(); + var hasOwnProperty = uncurryThis({}.hasOwnProperty); + module2.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); + }; + } +}); + +// node_modules/core-js/internals/uid.js +var require_uid = __commonJS({ + "node_modules/core-js/internals/uid.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var id = 0; + var postfix = Math.random(); + var toString = uncurryThis(1 .toString); + module2.exports = function(key) { + return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString(++id + postfix, 36); + }; + } +}); + +// node_modules/core-js/internals/well-known-symbol.js +var require_well_known_symbol = __commonJS({ + "node_modules/core-js/internals/well-known-symbol.js"(exports2, module2) { + var global2 = require_global(); + var shared = require_shared(); + var hasOwn = require_has_own_property(); + var uid = require_uid(); + var NATIVE_SYMBOL = require_native_symbol(); + var USE_SYMBOL_AS_UID = require_use_symbol_as_uid(); + var WellKnownSymbolsStore = shared("wks"); + var Symbol2 = global2.Symbol; + var symbolFor = Symbol2 && Symbol2["for"]; + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol2 : Symbol2 && Symbol2.withoutSetter || uid; + module2.exports = function(name) { + if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == "string")) { + var description = "Symbol." + name; + if (NATIVE_SYMBOL && hasOwn(Symbol2, name)) { + WellKnownSymbolsStore[name] = Symbol2[name]; + } else if (USE_SYMBOL_AS_UID && symbolFor) { + WellKnownSymbolsStore[name] = symbolFor(description); + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol(description); + } + } + return WellKnownSymbolsStore[name]; + }; + } +}); + +// node_modules/core-js/internals/to-primitive.js +var require_to_primitive = __commonJS({ + "node_modules/core-js/internals/to-primitive.js"(exports2, module2) { + var global2 = require_global(); + var call = require_function_call(); + var isObject = require_is_object(); + var isSymbol = require_is_symbol(); + var getMethod = require_get_method(); + var ordinaryToPrimitive = require_ordinary_to_primitive(); + var wellKnownSymbol = require_well_known_symbol(); + var TypeError2 = global2.TypeError; + var TO_PRIMITIVE = wellKnownSymbol("toPrimitive"); + module2.exports = function(input, pref) { + if (!isObject(input) || isSymbol(input)) + return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === void 0) + pref = "default"; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) + return result; + throw TypeError2("Can't convert object to primitive value"); + } + if (pref === void 0) + pref = "number"; + return ordinaryToPrimitive(input, pref); + }; + } +}); + +// node_modules/core-js/internals/to-property-key.js +var require_to_property_key = __commonJS({ + "node_modules/core-js/internals/to-property-key.js"(exports2, module2) { + var toPrimitive = require_to_primitive(); + var isSymbol = require_is_symbol(); + module2.exports = function(argument) { + var key = toPrimitive(argument, "string"); + return isSymbol(key) ? key : key + ""; + }; + } +}); + +// node_modules/core-js/internals/document-create-element.js +var require_document_create_element = __commonJS({ + "node_modules/core-js/internals/document-create-element.js"(exports2, module2) { + var global2 = require_global(); + var isObject = require_is_object(); + var document = global2.document; + var EXISTS = isObject(document) && isObject(document.createElement); + module2.exports = function(it) { + return EXISTS ? document.createElement(it) : {}; + }; + } +}); + +// node_modules/core-js/internals/ie8-dom-define.js +var require_ie8_dom_define = __commonJS({ + "node_modules/core-js/internals/ie8-dom-define.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var fails = require_fails(); + var createElement = require_document_create_element(); + module2.exports = !DESCRIPTORS && !fails(function() { + return Object.defineProperty(createElement("div"), "a", { + get: function() { + return 7; + } + }).a != 7; + }); + } +}); + +// node_modules/core-js/internals/object-get-own-property-descriptor.js +var require_object_get_own_property_descriptor = __commonJS({ + "node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports2) { + var DESCRIPTORS = require_descriptors(); + var call = require_function_call(); + var propertyIsEnumerableModule = require_object_property_is_enumerable(); + var createPropertyDescriptor = require_create_property_descriptor(); + var toIndexedObject = require_to_indexed_object(); + var toPropertyKey = require_to_property_key(); + var hasOwn = require_has_own_property(); + var IE8_DOM_DEFINE = require_ie8_dom_define(); + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + exports2.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) + try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { + } + if (hasOwn(O, P)) + return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); + }; + } +}); + +// node_modules/core-js/internals/v8-prototype-define-bug.js +var require_v8_prototype_define_bug = __commonJS({ + "node_modules/core-js/internals/v8-prototype-define-bug.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var fails = require_fails(); + module2.exports = DESCRIPTORS && fails(function() { + return Object.defineProperty(function() { + }, "prototype", { + value: 42, + writable: false + }).prototype != 42; + }); + } +}); + +// node_modules/core-js/internals/an-object.js +var require_an_object = __commonJS({ + "node_modules/core-js/internals/an-object.js"(exports2, module2) { + var global2 = require_global(); + var isObject = require_is_object(); + var String2 = global2.String; + var TypeError2 = global2.TypeError; + module2.exports = function(argument) { + if (isObject(argument)) + return argument; + throw TypeError2(String2(argument) + " is not an object"); + }; + } +}); + +// node_modules/core-js/internals/object-define-property.js +var require_object_define_property = __commonJS({ + "node_modules/core-js/internals/object-define-property.js"(exports2) { + var global2 = require_global(); + var DESCRIPTORS = require_descriptors(); + var IE8_DOM_DEFINE = require_ie8_dom_define(); + var V8_PROTOTYPE_DEFINE_BUG = require_v8_prototype_define_bug(); + var anObject = require_an_object(); + var toPropertyKey = require_to_property_key(); + var TypeError2 = global2.TypeError; + var $defineProperty = Object.defineProperty; + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = "enumerable"; + var CONFIGURABLE = "configurable"; + var WRITABLE = "writable"; + exports2.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === "function" && P === "prototype" && "value" in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } + return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) + try { + return $defineProperty(O, P, Attributes); + } catch (error) { + } + if ("get" in Attributes || "set" in Attributes) + throw TypeError2("Accessors not supported"); + if ("value" in Attributes) + O[P] = Attributes.value; + return O; + }; + } +}); + +// node_modules/core-js/internals/create-non-enumerable-property.js +var require_create_non_enumerable_property = __commonJS({ + "node_modules/core-js/internals/create-non-enumerable-property.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var definePropertyModule = require_object_define_property(); + var createPropertyDescriptor = require_create_property_descriptor(); + module2.exports = DESCRIPTORS ? function(object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); + } : function(object, key, value) { + object[key] = value; + return object; + }; + } +}); + +// node_modules/core-js/internals/inspect-source.js +var require_inspect_source = __commonJS({ + "node_modules/core-js/internals/inspect-source.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var isCallable = require_is_callable(); + var store = require_shared_store(); + var functionToString = uncurryThis(Function.toString); + if (!isCallable(store.inspectSource)) { + store.inspectSource = function(it) { + return functionToString(it); + }; + } + module2.exports = store.inspectSource; + } +}); + +// node_modules/core-js/internals/native-weak-map.js +var require_native_weak_map = __commonJS({ + "node_modules/core-js/internals/native-weak-map.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var inspectSource = require_inspect_source(); + var WeakMap2 = global2.WeakMap; + module2.exports = isCallable(WeakMap2) && /native code/.test(inspectSource(WeakMap2)); + } +}); + +// node_modules/core-js/internals/shared-key.js +var require_shared_key = __commonJS({ + "node_modules/core-js/internals/shared-key.js"(exports2, module2) { + var shared = require_shared(); + var uid = require_uid(); + var keys = shared("keys"); + module2.exports = function(key) { + return keys[key] || (keys[key] = uid(key)); + }; + } +}); + +// node_modules/core-js/internals/hidden-keys.js +var require_hidden_keys = __commonJS({ + "node_modules/core-js/internals/hidden-keys.js"(exports2, module2) { + module2.exports = {}; + } +}); + +// node_modules/core-js/internals/internal-state.js +var require_internal_state = __commonJS({ + "node_modules/core-js/internals/internal-state.js"(exports2, module2) { + var NATIVE_WEAK_MAP = require_native_weak_map(); + var global2 = require_global(); + var uncurryThis = require_function_uncurry_this(); + var isObject = require_is_object(); + var createNonEnumerableProperty = require_create_non_enumerable_property(); + var hasOwn = require_has_own_property(); + var shared = require_shared_store(); + var sharedKey = require_shared_key(); + var hiddenKeys = require_hidden_keys(); + var OBJECT_ALREADY_INITIALIZED = "Object already initialized"; + var TypeError2 = global2.TypeError; + var WeakMap2 = global2.WeakMap; + var set; + var get; + var has; + var enforce = function(it) { + return has(it) ? get(it) : set(it, {}); + }; + var getterFor = function(TYPE) { + return function(it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError2("Incompatible receiver, " + TYPE + " required"); + } + return state; + }; + }; + if (NATIVE_WEAK_MAP || shared.state) { + store = shared.state || (shared.state = new WeakMap2()); + wmget = uncurryThis(store.get); + wmhas = uncurryThis(store.has); + wmset = uncurryThis(store.set); + set = function(it, metadata) { + if (wmhas(store, it)) + throw new TypeError2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset(store, it, metadata); + return metadata; + }; + get = function(it) { + return wmget(store, it) || {}; + }; + has = function(it) { + return wmhas(store, it); + }; + } else { + STATE = sharedKey("state"); + hiddenKeys[STATE] = true; + set = function(it, metadata) { + if (hasOwn(it, STATE)) + throw new TypeError2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function(it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function(it) { + return hasOwn(it, STATE); + }; + } + var store; + var wmget; + var wmhas; + var wmset; + var STATE; + module2.exports = { + set, + get, + has, + enforce, + getterFor + }; + } +}); + +// node_modules/core-js/internals/function-name.js +var require_function_name = __commonJS({ + "node_modules/core-js/internals/function-name.js"(exports2, module2) { + var DESCRIPTORS = require_descriptors(); + var hasOwn = require_has_own_property(); + var FunctionPrototype = Function.prototype; + var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + var EXISTS = hasOwn(FunctionPrototype, "name"); + var PROPER = EXISTS && function something() { + }.name === "something"; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, "name").configurable); + module2.exports = { + EXISTS, + PROPER, + CONFIGURABLE + }; + } +}); + +// node_modules/core-js/internals/redefine.js +var require_redefine = __commonJS({ + "node_modules/core-js/internals/redefine.js"(exports2, module2) { + var global2 = require_global(); + var isCallable = require_is_callable(); + var hasOwn = require_has_own_property(); + var createNonEnumerableProperty = require_create_non_enumerable_property(); + var setGlobal = require_set_global(); + var inspectSource = require_inspect_source(); + var InternalStateModule = require_internal_state(); + var CONFIGURABLE_FUNCTION_NAME = require_function_name().CONFIGURABLE; + var getInternalState = InternalStateModule.get; + var enforceInternalState = InternalStateModule.enforce; + var TEMPLATE = String(String).split("String"); + (module2.exports = function(O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var name = options && options.name !== void 0 ? options.name : key; + var state; + if (isCallable(value)) { + if (String(name).slice(0, 7) === "Symbol(") { + name = "[" + String(name).replace(/^Symbol\(([^)]*)\)/, "$1") + "]"; + } + if (!hasOwn(value, "name") || CONFIGURABLE_FUNCTION_NAME && value.name !== name) { + createNonEnumerableProperty(value, "name", name); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof name == "string" ? name : ""); + } + } + if (O === global2) { + if (simple) + O[key] = value; + else + setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) + O[key] = value; + else + createNonEnumerableProperty(O, key, value); + })(Function.prototype, "toString", function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); + }); + } +}); + +// node_modules/core-js/internals/to-integer-or-infinity.js +var require_to_integer_or_infinity = __commonJS({ + "node_modules/core-js/internals/to-integer-or-infinity.js"(exports2, module2) { + var ceil = Math.ceil; + var floor = Math.floor; + module2.exports = function(argument) { + var number = +argument; + return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); + }; + } +}); + +// node_modules/core-js/internals/to-absolute-index.js +var require_to_absolute_index = __commonJS({ + "node_modules/core-js/internals/to-absolute-index.js"(exports2, module2) { + var toIntegerOrInfinity = require_to_integer_or_infinity(); + var max = Math.max; + var min = Math.min; + module2.exports = function(index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); + }; + } +}); + +// node_modules/core-js/internals/to-length.js +var require_to_length = __commonJS({ + "node_modules/core-js/internals/to-length.js"(exports2, module2) { + var toIntegerOrInfinity = require_to_integer_or_infinity(); + var min = Math.min; + module2.exports = function(argument) { + return argument > 0 ? min(toIntegerOrInfinity(argument), 9007199254740991) : 0; + }; + } +}); + +// node_modules/core-js/internals/length-of-array-like.js +var require_length_of_array_like = __commonJS({ + "node_modules/core-js/internals/length-of-array-like.js"(exports2, module2) { + var toLength = require_to_length(); + module2.exports = function(obj) { + return toLength(obj.length); + }; + } +}); + +// node_modules/core-js/internals/array-includes.js +var require_array_includes = __commonJS({ + "node_modules/core-js/internals/array-includes.js"(exports2, module2) { + var toIndexedObject = require_to_indexed_object(); + var toAbsoluteIndex = require_to_absolute_index(); + var lengthOfArrayLike = require_length_of_array_like(); + var createMethod = function(IS_INCLUDES) { + return function($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + var index = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) + while (length > index) { + value = O[index++]; + if (value != value) + return true; + } + else + for (; length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) + return IS_INCLUDES || index || 0; + } + return !IS_INCLUDES && -1; + }; + }; + module2.exports = { + includes: createMethod(true), + indexOf: createMethod(false) + }; + } +}); + +// node_modules/core-js/internals/object-keys-internal.js +var require_object_keys_internal = __commonJS({ + "node_modules/core-js/internals/object-keys-internal.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var hasOwn = require_has_own_property(); + var toIndexedObject = require_to_indexed_object(); + var indexOf = require_array_includes().indexOf; + var hiddenKeys = require_hidden_keys(); + var push = uncurryThis([].push); + module2.exports = function(object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) + !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + while (names.length > i) + if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; + }; + } +}); + +// node_modules/core-js/internals/enum-bug-keys.js +var require_enum_bug_keys = __commonJS({ + "node_modules/core-js/internals/enum-bug-keys.js"(exports2, module2) { + module2.exports = [ + "constructor", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "toLocaleString", + "toString", + "valueOf" + ]; + } +}); + +// node_modules/core-js/internals/object-get-own-property-names.js +var require_object_get_own_property_names = __commonJS({ + "node_modules/core-js/internals/object-get-own-property-names.js"(exports2) { + var internalObjectKeys = require_object_keys_internal(); + var enumBugKeys = require_enum_bug_keys(); + var hiddenKeys = enumBugKeys.concat("length", "prototype"); + exports2.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); + }; + } +}); + +// node_modules/core-js/internals/object-get-own-property-symbols.js +var require_object_get_own_property_symbols = __commonJS({ + "node_modules/core-js/internals/object-get-own-property-symbols.js"(exports2) { + exports2.f = Object.getOwnPropertySymbols; + } +}); + +// node_modules/core-js/internals/own-keys.js +var require_own_keys = __commonJS({ + "node_modules/core-js/internals/own-keys.js"(exports2, module2) { + var getBuiltIn = require_get_built_in(); + var uncurryThis = require_function_uncurry_this(); + var getOwnPropertyNamesModule = require_object_get_own_property_names(); + var getOwnPropertySymbolsModule = require_object_get_own_property_symbols(); + var anObject = require_an_object(); + var concat = uncurryThis([].concat); + module2.exports = getBuiltIn("Reflect", "ownKeys") || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; + }; + } +}); + +// node_modules/core-js/internals/copy-constructor-properties.js +var require_copy_constructor_properties = __commonJS({ + "node_modules/core-js/internals/copy-constructor-properties.js"(exports2, module2) { + var hasOwn = require_has_own_property(); + var ownKeys = require_own_keys(); + var getOwnPropertyDescriptorModule = require_object_get_own_property_descriptor(); + var definePropertyModule = require_object_define_property(); + module2.exports = function(target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + } +}); + +// node_modules/core-js/internals/is-forced.js +var require_is_forced = __commonJS({ + "node_modules/core-js/internals/is-forced.js"(exports2, module2) { + var fails = require_fails(); + var isCallable = require_is_callable(); + var replacement = /#|\.prototype\./; + var isForced = function(feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection; + }; + var normalize = isForced.normalize = function(string) { + return String(string).replace(replacement, ".").toLowerCase(); + }; + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = "N"; + var POLYFILL = isForced.POLYFILL = "P"; + module2.exports = isForced; + } +}); + +// node_modules/core-js/internals/export.js +var require_export = __commonJS({ + "node_modules/core-js/internals/export.js"(exports2, module2) { + var global2 = require_global(); + var getOwnPropertyDescriptor = require_object_get_own_property_descriptor().f; + var createNonEnumerableProperty = require_create_non_enumerable_property(); + var redefine = require_redefine(); + var setGlobal = require_set_global(); + var copyConstructorProperties = require_copy_constructor_properties(); + var isForced = require_is_forced(); + module2.exports = function(options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global2; + } else if (STATIC) { + target = global2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global2[TARGET] || {}).prototype; + } + if (target) + for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else + targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced); + if (!FORCED && targetProperty !== void 0) { + if (typeof sourceProperty == typeof targetProperty) + continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + if (options.sham || targetProperty && targetProperty.sham) { + createNonEnumerableProperty(sourceProperty, "sham", true); + } + redefine(target, key, sourceProperty, options); + } + }; + } +}); + +// node_modules/core-js/internals/is-array.js +var require_is_array = __commonJS({ + "node_modules/core-js/internals/is-array.js"(exports2, module2) { + var classof = require_classof_raw(); + module2.exports = Array.isArray || function isArray(argument) { + return classof(argument) == "Array"; + }; + } +}); + +// node_modules/core-js/internals/function-bind-context.js +var require_function_bind_context = __commonJS({ + "node_modules/core-js/internals/function-bind-context.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var aCallable = require_a_callable(); + var NATIVE_BIND = require_function_bind_native(); + var bind = uncurryThis(uncurryThis.bind); + module2.exports = function(fn, that) { + aCallable(fn); + return that === void 0 ? fn : NATIVE_BIND ? bind(fn, that) : function() { + return fn.apply(that, arguments); + }; + }; + } +}); + +// node_modules/core-js/internals/flatten-into-array.js +var require_flatten_into_array = __commonJS({ + "node_modules/core-js/internals/flatten-into-array.js"(exports2, module2) { + "use strict"; + var global2 = require_global(); + var isArray = require_is_array(); + var lengthOfArrayLike = require_length_of_array_like(); + var bind = require_function_bind_context(); + var TypeError2 = global2.TypeError; + var flattenIntoArray = function(target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 9007199254740991) + throw TypeError2("Exceed the acceptable array length"); + target[targetIndex] = element; + } + targetIndex++; + } + sourceIndex++; + } + return targetIndex; + }; + module2.exports = flattenIntoArray; + } +}); + +// node_modules/core-js/internals/to-string-tag-support.js +var require_to_string_tag_support = __commonJS({ + "node_modules/core-js/internals/to-string-tag-support.js"(exports2, module2) { + var wellKnownSymbol = require_well_known_symbol(); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var test = {}; + test[TO_STRING_TAG] = "z"; + module2.exports = String(test) === "[object z]"; + } +}); + +// node_modules/core-js/internals/classof.js +var require_classof = __commonJS({ + "node_modules/core-js/internals/classof.js"(exports2, module2) { + var global2 = require_global(); + var TO_STRING_TAG_SUPPORT = require_to_string_tag_support(); + var isCallable = require_is_callable(); + var classofRaw = require_classof_raw(); + var wellKnownSymbol = require_well_known_symbol(); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var Object2 = global2.Object; + var CORRECT_ARGUMENTS = classofRaw(function() { + return arguments; + }()) == "Arguments"; + var tryGet = function(it, key) { + try { + return it[key]; + } catch (error) { + } + }; + module2.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function(it) { + var O, tag, result; + return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = Object2(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && isCallable(O.callee) ? "Arguments" : result; + }; + } +}); + +// node_modules/core-js/internals/is-constructor.js +var require_is_constructor = __commonJS({ + "node_modules/core-js/internals/is-constructor.js"(exports2, module2) { + var uncurryThis = require_function_uncurry_this(); + var fails = require_fails(); + var isCallable = require_is_callable(); + var classof = require_classof(); + var getBuiltIn = require_get_built_in(); + var inspectSource = require_inspect_source(); + var noop = function() { + }; + var empty = []; + var construct = getBuiltIn("Reflect", "construct"); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); + var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + switch (classof(argument)) { + case "AsyncFunction": + case "GeneratorFunction": + case "AsyncGeneratorFunction": + return false; + } + try { + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + isConstructorLegacy.sham = true; + module2.exports = !construct || fails(function() { + var called; + return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function() { + called = true; + }) || called; + }) ? isConstructorLegacy : isConstructorModern; + } +}); + +// node_modules/core-js/internals/array-species-constructor.js +var require_array_species_constructor = __commonJS({ + "node_modules/core-js/internals/array-species-constructor.js"(exports2, module2) { + var global2 = require_global(); + var isArray = require_is_array(); + var isConstructor = require_is_constructor(); + var isObject = require_is_object(); + var wellKnownSymbol = require_well_known_symbol(); + var SPECIES = wellKnownSymbol("species"); + var Array2 = global2.Array; + module2.exports = function(originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + if (isConstructor(C) && (C === Array2 || isArray(C.prototype))) + C = void 0; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) + C = void 0; + } + } + return C === void 0 ? Array2 : C; + }; + } +}); + +// node_modules/core-js/internals/array-species-create.js +var require_array_species_create = __commonJS({ + "node_modules/core-js/internals/array-species-create.js"(exports2, module2) { + var arraySpeciesConstructor = require_array_species_constructor(); + module2.exports = function(originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + } +}); + +// node_modules/core-js/modules/es.array.flat-map.js +var require_es_array_flat_map = __commonJS({ + "node_modules/core-js/modules/es.array.flat-map.js"() { + "use strict"; + var $ = require_export(); + var flattenIntoArray = require_flatten_into_array(); + var aCallable = require_a_callable(); + var toObject = require_to_object(); + var lengthOfArrayLike = require_length_of_array_like(); + var arraySpeciesCreate = require_array_species_create(); + $({ target: "Array", proto: true }, { + flatMap: function flatMap(callbackfn) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : void 0); + return A; + } + }); + } +}); + +// node_modules/core-js/internals/iterators.js +var require_iterators = __commonJS({ + "node_modules/core-js/internals/iterators.js"(exports2, module2) { + module2.exports = {}; + } +}); + +// node_modules/core-js/internals/is-array-iterator-method.js +var require_is_array_iterator_method = __commonJS({ + "node_modules/core-js/internals/is-array-iterator-method.js"(exports2, module2) { + var wellKnownSymbol = require_well_known_symbol(); + var Iterators = require_iterators(); + var ITERATOR = wellKnownSymbol("iterator"); + var ArrayPrototype = Array.prototype; + module2.exports = function(it) { + return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); + }; + } +}); + +// node_modules/core-js/internals/get-iterator-method.js +var require_get_iterator_method = __commonJS({ + "node_modules/core-js/internals/get-iterator-method.js"(exports2, module2) { + var classof = require_classof(); + var getMethod = require_get_method(); + var Iterators = require_iterators(); + var wellKnownSymbol = require_well_known_symbol(); + var ITERATOR = wellKnownSymbol("iterator"); + module2.exports = function(it) { + if (it != void 0) + return getMethod(it, ITERATOR) || getMethod(it, "@@iterator") || Iterators[classof(it)]; + }; + } +}); + +// node_modules/core-js/internals/get-iterator.js +var require_get_iterator = __commonJS({ + "node_modules/core-js/internals/get-iterator.js"(exports2, module2) { + var global2 = require_global(); + var call = require_function_call(); + var aCallable = require_a_callable(); + var anObject = require_an_object(); + var tryToString = require_try_to_string(); + var getIteratorMethod = require_get_iterator_method(); + var TypeError2 = global2.TypeError; + module2.exports = function(argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) + return anObject(call(iteratorMethod, argument)); + throw TypeError2(tryToString(argument) + " is not iterable"); + }; + } +}); + +// node_modules/core-js/internals/iterator-close.js +var require_iterator_close = __commonJS({ + "node_modules/core-js/internals/iterator-close.js"(exports2, module2) { + var call = require_function_call(); + var anObject = require_an_object(); + var getMethod = require_get_method(); + module2.exports = function(iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, "return"); + if (!innerResult) { + if (kind === "throw") + throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === "throw") + throw value; + if (innerError) + throw innerResult; + anObject(innerResult); + return value; + }; + } +}); + +// node_modules/core-js/internals/iterate.js +var require_iterate = __commonJS({ + "node_modules/core-js/internals/iterate.js"(exports2, module2) { + var global2 = require_global(); + var bind = require_function_bind_context(); + var call = require_function_call(); + var anObject = require_an_object(); + var tryToString = require_try_to_string(); + var isArrayIteratorMethod = require_is_array_iterator_method(); + var lengthOfArrayLike = require_length_of_array_like(); + var isPrototypeOf = require_object_is_prototype_of(); + var getIterator = require_get_iterator(); + var getIteratorMethod = require_get_iterator_method(); + var iteratorClose = require_iterator_close(); + var TypeError2 = global2.TypeError; + var Result = function(stopped, result) { + this.stopped = stopped; + this.result = result; + }; + var ResultPrototype = Result.prototype; + module2.exports = function(iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + var stop = function(condition) { + if (iterator) + iteratorClose(iterator, "normal", condition); + return new Result(true, condition); + }; + var callFn = function(value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } + return INTERRUPTED ? fn(value, stop) : fn(value); + }; + if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) + throw TypeError2(tryToString(iterable) + " is not iterable"); + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) + return result; + } + return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + next = iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, "throw", error); + } + if (typeof result == "object" && result && isPrototypeOf(ResultPrototype, result)) + return result; + } + return new Result(false); + }; + } +}); + +// node_modules/core-js/internals/create-property.js +var require_create_property = __commonJS({ + "node_modules/core-js/internals/create-property.js"(exports2, module2) { + "use strict"; + var toPropertyKey = require_to_property_key(); + var definePropertyModule = require_object_define_property(); + var createPropertyDescriptor = require_create_property_descriptor(); + module2.exports = function(object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) + definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else + object[propertyKey] = value; + }; + } +}); + +// node_modules/core-js/modules/es.object.from-entries.js +var require_es_object_from_entries = __commonJS({ + "node_modules/core-js/modules/es.object.from-entries.js"() { + var $ = require_export(); + var iterate = require_iterate(); + var createProperty = require_create_property(); + $({ target: "Object", stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function(k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } + }); + } +}); + +// node_modules/core-js/modules/es.array.flat.js +var require_es_array_flat = __commonJS({ + "node_modules/core-js/modules/es.array.flat.js"() { + "use strict"; + var $ = require_export(); + var flattenIntoArray = require_flatten_into_array(); + var toObject = require_to_object(); + var lengthOfArrayLike = require_length_of_array_like(); + var toIntegerOrInfinity = require_to_integer_or_infinity(); + var arraySpeciesCreate = require_array_species_create(); + $({ target: "Array", proto: true }, { + flat: function flat() { + var depthArg = arguments.length ? arguments[0] : void 0; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === void 0 ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } + }); + } +}); + +// dist/_index.js.cjs.js +var _excluded = ["cliName", "cliCategory", "cliDescription"]; +var _excluded2 = ["_"]; +var _excluded3 = ["overrides"]; +var _excluded4 = ["languageId"]; +function _objectWithoutProperties(source, excluded) { + if (source == null) + return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); + var key, i; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) + continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) + continue; + target[key] = source[key]; + } + } + return target; +} +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) + return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) + continue; + target[key] = source[key]; + } + return target; +} +require_es_array_flat_map(); +require_es_object_from_entries(); +require_es_array_flat(); +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { + exports: {} + }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { + get: all[name], + enumerable: true + }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames2(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { + get: () => from[key], + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true +}) : target, mod)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { + value: true +}), mod); +var require_base = __commonJS2({ + "node_modules/diff/lib/diff/base.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = Diff; + function Diff() { + } + Diff.prototype = { + diff: function diff(oldString, newString) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self2 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ + newPos: -1, + components: [] + }]; + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = void 0; + var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self2.pushComponent(basePath.components, void 0, true); + } else { + basePath = addPath; + basePath.newPos++; + self2.pushComponent(basePath.components, true, void 0); + } + _oldPos = self2.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self2, basePath.components, newString, oldString, self2.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; + if (last && last.added === added && last.removed === removed) { + components[components.length - 1] = { + count: last.count + 1, + added, + removed + }; + } else { + components.push({ + count: 1, + added, + removed + }); + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } + basePath.newPos = newPos; + return oldPos; + }, + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return value.split(""); + }, + join: function join(chars) { + return chars.join(""); + } + }; + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff.equals("", lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + return components; + } + function clonePath(path) { + return { + newPos: path.newPos, + components: path.components.slice(0) + }; + } + } +}); +var require_array = __commonJS2({ + "node_modules/diff/lib/diff/array.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.diffArrays = diffArrays; + exports2.arrayDiff = void 0; + var _base = _interopRequireDefault(require_base()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + var arrayDiff = new _base["default"](); + exports2.arrayDiff = arrayDiff; + arrayDiff.tokenize = function(value) { + return value.slice(); + }; + arrayDiff.join = arrayDiff.removeEmpty = function(value) { + return value; + }; + function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); + } + } +}); +var escape_string_regexp_exports = {}; +__export(escape_string_regexp_exports, { + default: () => escapeStringRegexp +}); +function escapeStringRegexp(string) { + if (typeof string !== "string") { + throw new TypeError("Expected a string"); + } + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); +} +var init_escape_string_regexp = __esm({ + "node_modules/escape-string-regexp/index.js"() { + } +}); +var require_get_last = __commonJS2({ + "src/utils/get-last.js"(exports2, module2) { + "use strict"; + var getLast = (arr) => arr[arr.length - 1]; + module2.exports = getLast; + } +}); +var require_debug = __commonJS2({ + "node_modules/semver/internal/debug.js"(exports2, module2) { + var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { + }; + module2.exports = debug; + } +}); +var require_constants = __commonJS2({ + "node_modules/semver/internal/constants.js"(exports2, module2) { + var SEMVER_SPEC_VERSION = "2.0.0"; + var MAX_LENGTH = 256; + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; + var MAX_SAFE_COMPONENT_LENGTH = 16; + module2.exports = { + SEMVER_SPEC_VERSION, + MAX_LENGTH, + MAX_SAFE_INTEGER, + MAX_SAFE_COMPONENT_LENGTH + }; + } +}); +var require_re = __commonJS2({ + "node_modules/semver/internal/re.js"(exports2, module2) { + var { + MAX_SAFE_COMPONENT_LENGTH + } = require_constants(); + var debug = require_debug(); + exports2 = module2.exports = {}; + var re = exports2.re = []; + var src = exports2.src = []; + var t = exports2.t = {}; + var R = 0; + var createToken = (name, value, isGlobal) => { + const index = R++; + debug(name, index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? "g" : void 0); + }; + createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); + createToken("NUMERICIDENTIFIERLOOSE", "[0-9]+"); + createToken("NONNUMERICIDENTIFIER", "\\d*[a-zA-Z-][a-zA-Z0-9-]*"); + createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`); + createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`); + createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`); + createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + createToken("BUILDIDENTIFIER", "[0-9A-Za-z-]+"); + createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); + createToken("FULL", `^${src[t.FULLPLAIN]}$`); + createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); + createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`); + createToken("GTLT", "((?:<|>)?=?)"); + createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COERCE", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:$|[^\\d])`); + createToken("COERCERTL", src[t.COERCE], true); + createToken("LONETILDE", "(?:~>?)"); + createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports2.tildeTrimReplace = "$1~"; + createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("LONECARET", "(?:\\^)"); + createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports2.caretTrimReplace = "$1^"; + createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports2.comparatorTrimReplace = "$1$2$3"; + createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`); + createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`); + createToken("STAR", "(<|>)?=?\\s*\\*"); + createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); + createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); + } +}); +var require_parse_options = __commonJS2({ + "node_modules/semver/internal/parse-options.js"(exports2, module2) { + var opts = ["includePrerelease", "loose", "rtl"]; + var parseOptions = (options) => !options ? {} : typeof options !== "object" ? { + loose: true + } : opts.filter((k) => options[k]).reduce((o, k) => { + o[k] = true; + return o; + }, {}); + module2.exports = parseOptions; + } +}); +var require_identifiers = __commonJS2({ + "node_modules/semver/internal/identifiers.js"(exports2, module2) { + var numeric = /^[0-9]+$/; + var compareIdentifiers = (a, b) => { + const anum = numeric.test(a); + const bnum = numeric.test(b); + if (anum && bnum) { + a = +a; + b = +b; + } + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; + }; + var rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); + module2.exports = { + compareIdentifiers, + rcompareIdentifiers + }; + } +}); +var require_semver = __commonJS2({ + "node_modules/semver/classes/semver.js"(exports2, module2) { + var debug = require_debug(); + var { + MAX_LENGTH, + MAX_SAFE_INTEGER + } = require_constants(); + var { + re, + t + } = require_re(); + var parseOptions = require_parse_options(); + var { + compareIdentifiers + } = require_identifiers(); + var SemVer = class { + constructor(version2, options) { + options = parseOptions(options); + if (version2 instanceof SemVer) { + if (version2.loose === !!options.loose && version2.includePrerelease === !!options.includePrerelease) { + return version2; + } else { + version2 = version2.version; + } + } else if (typeof version2 !== "string") { + throw new TypeError(`Invalid Version: ${version2}`); + } + if (version2.length > MAX_LENGTH) { + throw new TypeError(`version is longer than ${MAX_LENGTH} characters`); + } + debug("SemVer", version2, options); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + const m = version2.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + if (!m) { + throw new TypeError(`Invalid Version: ${version2}`); + } + this.raw = version2; + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError("Invalid major version"); + } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError("Invalid minor version"); + } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError("Invalid patch version"); + } + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split(".").map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + return id; + }); + } + this.build = m[5] ? m[5].split(".") : []; + this.format(); + } + format() { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join(".")}`; + } + return this.version; + } + toString() { + return this.version; + } + compare(other) { + debug("SemVer.compare", this.version, this.options, other); + if (!(other instanceof SemVer)) { + if (typeof other === "string" && other === this.version) { + return 0; + } + other = new SemVer(other, this.options); + } + if (other.version === this.version) { + return 0; + } + return this.compareMain(other) || this.comparePre(other); + } + compareMain(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); + } + comparePre(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug("prerelease compare", i, a, b); + if (a === void 0 && b === void 0) { + return 0; + } else if (b === void 0) { + return 1; + } else if (a === void 0) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + compareBuild(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug("prerelease compare", i, a, b); + if (a === void 0 && b === void 0) { + return 0; + } else if (b === void 0) { + return 1; + } else if (a === void 0) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + inc(release, identifier) { + switch (release) { + case "premajor": + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc("pre", identifier); + break; + case "preminor": + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc("pre", identifier); + break; + case "prepatch": + this.prerelease.length = 0; + this.inc("patch", identifier); + this.inc("pre", identifier); + break; + case "prerelease": + if (this.prerelease.length === 0) { + this.inc("patch", identifier); + } + this.inc("pre", identifier); + break; + case "major": + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case "minor": + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case "patch": + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + case "pre": + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + let i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === "number") { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) { + this.prerelease.push(0); + } + } + if (identifier) { + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0]; + } + } else { + this.prerelease = [identifier, 0]; + } + } + break; + default: + throw new Error(`invalid increment argument: ${release}`); + } + this.format(); + this.raw = this.version; + return this; + } + }; + module2.exports = SemVer; + } +}); +var require_compare = __commonJS2({ + "node_modules/semver/functions/compare.js"(exports2, module2) { + var SemVer = require_semver(); + var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); + module2.exports = compare; + } +}); +var require_lt = __commonJS2({ + "node_modules/semver/functions/lt.js"(exports2, module2) { + var compare = require_compare(); + var lt = (a, b, loose) => compare(a, b, loose) < 0; + module2.exports = lt; + } +}); +var require_gte = __commonJS2({ + "node_modules/semver/functions/gte.js"(exports2, module2) { + var compare = require_compare(); + var gte = (a, b, loose) => compare(a, b, loose) >= 0; + module2.exports = gte; + } +}); +var require_arrayify = __commonJS2({ + "src/utils/arrayify.js"(exports2, module2) { + "use strict"; + module2.exports = (object, keyName) => Object.entries(object).map(([key, value]) => Object.assign({ + [keyName]: key + }, value)); + } +}); +var require_lib = __commonJS2({ + "node_modules/outdent/lib/index.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.outdent = void 0; + function noop() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + } + function createWeakMap() { + if (typeof WeakMap !== "undefined") { + return /* @__PURE__ */ new WeakMap(); + } else { + return fakeSetOrMap(); + } + } + function fakeSetOrMap() { + return { + add: noop, + delete: noop, + get: noop, + set: noop, + has: function(k) { + return false; + } + }; + } + var hop = Object.prototype.hasOwnProperty; + var has = function(obj, prop) { + return hop.call(obj, prop); + }; + function extend(target, source) { + for (var prop in source) { + if (has(source, prop)) { + target[prop] = source[prop]; + } + } + return target; + } + var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/; + var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/; + var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/; + var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/; + var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/; + function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) { + var indentationLevel = 0; + var match = strings[0].match(reDetectIndentation); + if (match) { + indentationLevel = match[1].length; + } + var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}"; + var reMatchIndent = new RegExp(reSource, "g"); + if (firstInterpolatedValueSetsIndentationLevel) { + strings = strings.slice(1); + } + var newline = options.newline, trimLeadingNewline = options.trimLeadingNewline, trimTrailingNewline = options.trimTrailingNewline; + var normalizeNewlines = typeof newline === "string"; + var l = strings.length; + var outdentedStrings = strings.map(function(v, i) { + v = v.replace(reMatchIndent, "$1"); + if (i === 0 && trimLeadingNewline) { + v = v.replace(reLeadingNewline, ""); + } + if (i === l - 1 && trimTrailingNewline) { + v = v.replace(reTrailingNewline, ""); + } + if (normalizeNewlines) { + v = v.replace(/\r\n|\n|\r/g, function(_) { + return newline; + }); + } + return v; + }); + return outdentedStrings; + } + function concatStringsAndValues(strings, values) { + var ret = ""; + for (var i = 0, l = strings.length; i < l; i++) { + ret += strings[i]; + if (i < l - 1) { + ret += values[i]; + } + } + return ret; + } + function isTemplateStringsArray(v) { + return has(v, "raw") && has(v, "length"); + } + function createInstance(options) { + var arrayAutoIndentCache = createWeakMap(); + var arrayFirstInterpSetsIndentCache = createWeakMap(); + function outdent(stringsOrOptions) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + if (isTemplateStringsArray(stringsOrOptions)) { + var strings = stringsOrOptions; + var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]); + var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache; + var renderedArray = cache.get(strings); + if (!renderedArray) { + renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options); + cache.set(strings, renderedArray); + } + if (values.length === 0) { + return renderedArray[0]; + } + var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values); + return rendered; + } else { + return createInstance(extend(extend({}, options), stringsOrOptions || {})); + } + } + var fullOutdent = extend(outdent, { + string: function(str) { + return _outdentArray([str], false, options)[0]; + } + }); + return fullOutdent; + } + var defaultOutdent = createInstance({ + trimLeadingNewline: true, + trimTrailingNewline: true + }); + exports2.outdent = defaultOutdent; + exports2.default = defaultOutdent; + if (typeof module2 !== "undefined") { + try { + module2.exports = defaultOutdent; + Object.defineProperty(defaultOutdent, "__esModule", { + value: true + }); + defaultOutdent.default = defaultOutdent; + defaultOutdent.outdent = defaultOutdent; + } catch (e) { + } + } + } +}); +var require_core_options = __commonJS2({ + "src/main/core-options.js"(exports2, module2) { + "use strict"; + var { + outdent + } = require_lib(); + var CATEGORY_CONFIG = "Config"; + var CATEGORY_EDITOR = "Editor"; + var CATEGORY_FORMAT = "Format"; + var CATEGORY_OTHER = "Other"; + var CATEGORY_OUTPUT = "Output"; + var CATEGORY_GLOBAL = "Global"; + var CATEGORY_SPECIAL = "Special"; + var options = { + cursorOffset: { + since: "1.4.0", + category: CATEGORY_SPECIAL, + type: "int", + default: -1, + range: { + start: -1, + end: Number.POSITIVE_INFINITY, + step: 1 + }, + description: outdent` + Print (to stderr) where a cursor at the given position would move to after formatting. + This option cannot be used with --range-start and --range-end. + `, + cliCategory: CATEGORY_EDITOR + }, + endOfLine: { + since: "1.15.0", + category: CATEGORY_GLOBAL, + type: "choice", + default: [{ + since: "1.15.0", + value: "auto" + }, { + since: "2.0.0", + value: "lf" + }], + description: "Which end of line characters to apply.", + choices: [{ + value: "lf", + description: "Line Feed only (\\n), common on Linux and macOS as well as inside git repos" + }, { + value: "crlf", + description: "Carriage Return + Line Feed characters (\\r\\n), common on Windows" + }, { + value: "cr", + description: "Carriage Return character only (\\r), used very rarely" + }, { + value: "auto", + description: outdent` + Maintain existing + (mixed values within one file are normalised by looking at what's used after the first line) + ` + }] + }, + filepath: { + since: "1.4.0", + category: CATEGORY_SPECIAL, + type: "path", + description: "Specify the input filepath. This will be used to do parser inference.", + cliName: "stdin-filepath", + cliCategory: CATEGORY_OTHER, + cliDescription: "Path to the file to pretend that stdin comes from." + }, + insertPragma: { + since: "1.8.0", + category: CATEGORY_SPECIAL, + type: "boolean", + default: false, + description: "Insert @format pragma into file's first docblock comment.", + cliCategory: CATEGORY_OTHER + }, + parser: { + since: "0.0.10", + category: CATEGORY_GLOBAL, + type: "choice", + default: [{ + since: "0.0.10", + value: "babylon" + }, { + since: "1.13.0", + value: void 0 + }], + description: "Which parser to use.", + exception: (value) => typeof value === "string" || typeof value === "function", + choices: [{ + value: "flow", + description: "Flow" + }, { + value: "babel", + since: "1.16.0", + description: "JavaScript" + }, { + value: "babel-flow", + since: "1.16.0", + description: "Flow" + }, { + value: "babel-ts", + since: "2.0.0", + description: "TypeScript" + }, { + value: "typescript", + since: "1.4.0", + description: "TypeScript" + }, { + value: "acorn", + since: "2.6.0", + description: "JavaScript" + }, { + value: "espree", + since: "2.2.0", + description: "JavaScript" + }, { + value: "meriyah", + since: "2.2.0", + description: "JavaScript" + }, { + value: "css", + since: "1.7.1", + description: "CSS" + }, { + value: "less", + since: "1.7.1", + description: "Less" + }, { + value: "scss", + since: "1.7.1", + description: "SCSS" + }, { + value: "json", + since: "1.5.0", + description: "JSON" + }, { + value: "json5", + since: "1.13.0", + description: "JSON5" + }, { + value: "json-stringify", + since: "1.13.0", + description: "JSON.stringify" + }, { + value: "graphql", + since: "1.5.0", + description: "GraphQL" + }, { + value: "markdown", + since: "1.8.0", + description: "Markdown" + }, { + value: "mdx", + since: "1.15.0", + description: "MDX" + }, { + value: "vue", + since: "1.10.0", + description: "Vue" + }, { + value: "yaml", + since: "1.14.0", + description: "YAML" + }, { + value: "glimmer", + since: "2.3.0", + description: "Ember / Handlebars" + }, { + value: "html", + since: "1.15.0", + description: "HTML" + }, { + value: "angular", + since: "1.15.0", + description: "Angular" + }, { + value: "lwc", + since: "1.17.0", + description: "Lightning Web Components" + }] + }, + plugins: { + since: "1.10.0", + type: "path", + array: true, + default: [{ + value: [] + }], + category: CATEGORY_GLOBAL, + description: "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.", + exception: (value) => typeof value === "string" || typeof value === "object", + cliName: "plugin", + cliCategory: CATEGORY_CONFIG + }, + pluginSearchDirs: { + since: "1.13.0", + type: "path", + array: true, + default: [{ + value: [] + }], + category: CATEGORY_GLOBAL, + description: outdent` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `, + exception: (value) => typeof value === "string" || typeof value === "object", + cliName: "plugin-search-dir", + cliCategory: CATEGORY_CONFIG + }, + printWidth: { + since: "0.0.0", + category: CATEGORY_GLOBAL, + type: "int", + default: 80, + description: "The line length where Prettier will try wrap.", + range: { + start: 0, + end: Number.POSITIVE_INFINITY, + step: 1 + } + }, + rangeEnd: { + since: "1.4.0", + category: CATEGORY_SPECIAL, + type: "int", + default: Number.POSITIVE_INFINITY, + range: { + start: 0, + end: Number.POSITIVE_INFINITY, + step: 1 + }, + description: outdent` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `, + cliCategory: CATEGORY_EDITOR + }, + rangeStart: { + since: "1.4.0", + category: CATEGORY_SPECIAL, + type: "int", + default: 0, + range: { + start: 0, + end: Number.POSITIVE_INFINITY, + step: 1 + }, + description: outdent` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `, + cliCategory: CATEGORY_EDITOR + }, + requirePragma: { + since: "1.7.0", + category: CATEGORY_SPECIAL, + type: "boolean", + default: false, + description: outdent` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `, + cliCategory: CATEGORY_OTHER + }, + tabWidth: { + type: "int", + category: CATEGORY_GLOBAL, + default: 2, + description: "Number of spaces per indentation level.", + range: { + start: 0, + end: Number.POSITIVE_INFINITY, + step: 1 + } + }, + useTabs: { + since: "1.0.0", + category: CATEGORY_GLOBAL, + type: "boolean", + default: false, + description: "Indent with tabs instead of spaces." + }, + embeddedLanguageFormatting: { + since: "2.1.0", + category: CATEGORY_GLOBAL, + type: "choice", + default: [{ + since: "2.1.0", + value: "auto" + }], + description: "Control how Prettier formats quoted code embedded in the file.", + choices: [{ + value: "auto", + description: "Format embedded code if Prettier can automatically identify it." + }, { + value: "off", + description: "Never automatically format embedded code." + }] + } + }; + module2.exports = { + CATEGORY_CONFIG, + CATEGORY_EDITOR, + CATEGORY_FORMAT, + CATEGORY_OTHER, + CATEGORY_OUTPUT, + CATEGORY_GLOBAL, + CATEGORY_SPECIAL, + options + }; + } +}); +var require_support = __commonJS2({ + "src/main/support.js"(exports2, module2) { + "use strict"; + var semver = { + compare: require_compare(), + lt: require_lt(), + gte: require_gte() + }; + var arrayify = require_arrayify(); + var currentVersion = require("./package.json").version; + var coreOptions = require_core_options().options; + function getSupportInfo2({ + plugins: plugins2 = [], + showUnreleased = false, + showDeprecated = false, + showInternal = false + } = {}) { + const version2 = currentVersion.split("-", 1)[0]; + const languages = plugins2.flatMap((plugin) => plugin.languages || []).filter(filterSince); + const options = arrayify(Object.assign({}, ...plugins2.map(({ + options: options2 + }) => options2), coreOptions), "name").filter((option) => filterSince(option) && filterDeprecated(option)).sort((a, b) => a.name === b.name ? 0 : a.name < b.name ? -1 : 1).map(mapInternal).map((option) => { + option = Object.assign({}, option); + if (Array.isArray(option.default)) { + option.default = option.default.length === 1 ? option.default[0].value : option.default.filter(filterSince).sort((info1, info2) => semver.compare(info2.since, info1.since))[0].value; + } + if (Array.isArray(option.choices)) { + option.choices = option.choices.filter((option2) => filterSince(option2) && filterDeprecated(option2)); + if (option.name === "parser") { + collectParsersFromLanguages(option, languages, plugins2); + } + } + const pluginDefaults = Object.fromEntries(plugins2.filter((plugin) => plugin.defaultOptions && plugin.defaultOptions[option.name] !== void 0).map((plugin) => [plugin.name, plugin.defaultOptions[option.name]])); + return Object.assign(Object.assign({}, option), {}, { + pluginDefaults + }); + }); + return { + languages, + options + }; + function filterSince(object) { + return showUnreleased || !("since" in object) || object.since && semver.gte(version2, object.since); + } + function filterDeprecated(object) { + return showDeprecated || !("deprecated" in object) || object.deprecated && semver.lt(version2, object.deprecated); + } + function mapInternal(object) { + if (showInternal) { + return object; + } + const { + cliName, + cliCategory, + cliDescription + } = object, newObject = _objectWithoutProperties(object, _excluded); + return newObject; + } + } + function collectParsersFromLanguages(option, languages, plugins2) { + const existingValues = new Set(option.choices.map((choice) => choice.value)); + for (const language of languages) { + if (language.parsers) { + for (const value of language.parsers) { + if (!existingValues.has(value)) { + existingValues.add(value); + const plugin = plugins2.find((plugin2) => plugin2.parsers && plugin2.parsers[value]); + let description = language.name; + if (plugin && plugin.name) { + description += ` (plugin: ${plugin.name})`; + } + option.choices.push({ + value, + description + }); + } + } + } + } + } + module2.exports = { + getSupportInfo: getSupportInfo2 + }; + } +}); +var require_is_non_empty_array = __commonJS2({ + "src/utils/is-non-empty-array.js"(exports2, module2) { + "use strict"; + function isNonEmptyArray(object) { + return Array.isArray(object) && object.length > 0; + } + module2.exports = isNonEmptyArray; + } +}); +function ansiRegex({ + onlyFirst = false +} = {}) { + const pattern = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"); + return new RegExp(pattern, onlyFirst ? void 0 : "g"); +} +var init_ansi_regex = __esm({ + "node_modules/strip-ansi/node_modules/ansi-regex/index.js"() { + } +}); +function stripAnsi(string) { + if (typeof string !== "string") { + throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); + } + return string.replace(ansiRegex(), ""); +} +var init_strip_ansi = __esm({ + "node_modules/strip-ansi/index.js"() { + init_ansi_regex(); + } +}); +function isFullwidthCodePoint(codePoint) { + if (!Number.isInteger(codePoint)) { + return false; + } + return codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141); +} +var init_is_fullwidth_code_point = __esm({ + "node_modules/is-fullwidth-code-point/index.js"() { + } +}); +var require_emoji_regex = __commonJS2({ + "node_modules/emoji-regex/index.js"(exports2, module2) { + "use strict"; + module2.exports = function() { + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; + }; + } +}); +var string_width_exports = {}; +__export(string_width_exports, { + default: () => stringWidth +}); +function stringWidth(string) { + if (typeof string !== "string" || string.length === 0) { + return 0; + } + string = stripAnsi(string); + if (string.length === 0) { + return 0; + } + string = string.replace((0, import_emoji_regex.default)(), " "); + let width = 0; + for (let index = 0; index < string.length; index++) { + const codePoint = string.codePointAt(index); + if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { + continue; + } + if (codePoint >= 768 && codePoint <= 879) { + continue; + } + if (codePoint > 65535) { + index++; + } + width += isFullwidthCodePoint(codePoint) ? 2 : 1; + } + return width; +} +var import_emoji_regex; +var init_string_width = __esm({ + "node_modules/string-width/index.js"() { + init_strip_ansi(); + init_is_fullwidth_code_point(); + import_emoji_regex = __toESM(require_emoji_regex()); + } +}); +var require_get_string_width = __commonJS2({ + "src/utils/get-string-width.js"(exports2, module2) { + "use strict"; + var stringWidth2 = (init_string_width(), __toCommonJS(string_width_exports)).default; + var notAsciiRegex = /[^\x20-\x7F]/; + function getStringWidth(text) { + if (!text) { + return 0; + } + if (!notAsciiRegex.test(text)) { + return text.length; + } + return stringWidth2(text); + } + module2.exports = getStringWidth; + } +}); +var require_skip = __commonJS2({ + "src/utils/text/skip.js"(exports2, module2) { + "use strict"; + function skip(chars) { + return (text, index, opts) => { + const backwards = opts && opts.backwards; + if (index === false) { + return false; + } + const { + length + } = text; + let cursor = index; + while (cursor >= 0 && cursor < length) { + const c = text.charAt(cursor); + if (chars instanceof RegExp) { + if (!chars.test(c)) { + return cursor; + } + } else if (!chars.includes(c)) { + return cursor; + } + backwards ? cursor-- : cursor++; + } + if (cursor === -1 || cursor === length) { + return cursor; + } + return false; + }; + } + var skipWhitespace = skip(/\s/); + var skipSpaces = skip(" "); + var skipToLineEnd = skip(",; "); + var skipEverythingButNewLine = skip(/[^\n\r]/); + module2.exports = { + skipWhitespace, + skipSpaces, + skipToLineEnd, + skipEverythingButNewLine + }; + } +}); +var require_skip_inline_comment = __commonJS2({ + "src/utils/text/skip-inline-comment.js"(exports2, module2) { + "use strict"; + function skipInlineComment(text, index) { + if (index === false) { + return false; + } + if (text.charAt(index) === "/" && text.charAt(index + 1) === "*") { + for (let i = index + 2; i < text.length; ++i) { + if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") { + return i + 2; + } + } + } + return index; + } + module2.exports = skipInlineComment; + } +}); +var require_skip_trailing_comment = __commonJS2({ + "src/utils/text/skip-trailing-comment.js"(exports2, module2) { + "use strict"; + var { + skipEverythingButNewLine + } = require_skip(); + function skipTrailingComment(text, index) { + if (index === false) { + return false; + } + if (text.charAt(index) === "/" && text.charAt(index + 1) === "/") { + return skipEverythingButNewLine(text, index); + } + return index; + } + module2.exports = skipTrailingComment; + } +}); +var require_skip_newline = __commonJS2({ + "src/utils/text/skip-newline.js"(exports2, module2) { + "use strict"; + function skipNewline(text, index, opts) { + const backwards = opts && opts.backwards; + if (index === false) { + return false; + } + const atIndex = text.charAt(index); + if (backwards) { + if (text.charAt(index - 1) === "\r" && atIndex === "\n") { + return index - 2; + } + if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") { + return index - 1; + } + } else { + if (atIndex === "\r" && text.charAt(index + 1) === "\n") { + return index + 2; + } + if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") { + return index + 1; + } + } + return index; + } + module2.exports = skipNewline; + } +}); +var require_get_next_non_space_non_comment_character_index_with_start_index = __commonJS2({ + "src/utils/text/get-next-non-space-non-comment-character-index-with-start-index.js"(exports2, module2) { + "use strict"; + var skipInlineComment = require_skip_inline_comment(); + var skipNewline = require_skip_newline(); + var skipTrailingComment = require_skip_trailing_comment(); + var { + skipSpaces + } = require_skip(); + function getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, idx) { + let oldIdx = null; + let nextIdx = idx; + while (nextIdx !== oldIdx) { + oldIdx = nextIdx; + nextIdx = skipSpaces(text, nextIdx); + nextIdx = skipInlineComment(text, nextIdx); + nextIdx = skipTrailingComment(text, nextIdx); + nextIdx = skipNewline(text, nextIdx); + } + return nextIdx; + } + module2.exports = getNextNonSpaceNonCommentCharacterIndexWithStartIndex; + } +}); +var require_util = __commonJS2({ + "src/common/util.js"(exports2, module2) { + "use strict"; + var { + default: escapeStringRegexp2 + } = (init_escape_string_regexp(), __toCommonJS(escape_string_regexp_exports)); + var getLast = require_get_last(); + var { + getSupportInfo: getSupportInfo2 + } = require_support(); + var isNonEmptyArray = require_is_non_empty_array(); + var getStringWidth = require_get_string_width(); + var { + skipWhitespace, + skipSpaces, + skipToLineEnd, + skipEverythingButNewLine + } = require_skip(); + var skipInlineComment = require_skip_inline_comment(); + var skipTrailingComment = require_skip_trailing_comment(); + var skipNewline = require_skip_newline(); + var getNextNonSpaceNonCommentCharacterIndexWithStartIndex = require_get_next_non_space_non_comment_character_index_with_start_index(); + var getPenultimate = (arr) => arr[arr.length - 2]; + function skip(chars) { + return (text, index, opts) => { + const backwards = opts && opts.backwards; + if (index === false) { + return false; + } + const { + length + } = text; + let cursor = index; + while (cursor >= 0 && cursor < length) { + const c = text.charAt(cursor); + if (chars instanceof RegExp) { + if (!chars.test(c)) { + return cursor; + } + } else if (!chars.includes(c)) { + return cursor; + } + backwards ? cursor-- : cursor++; + } + if (cursor === -1 || cursor === length) { + return cursor; + } + return false; + }; + } + function hasNewline(text, index, opts = {}) { + const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); + const idx2 = skipNewline(text, idx, opts); + return idx !== idx2; + } + function hasNewlineInRange(text, start, end) { + for (let i = start; i < end; ++i) { + if (text.charAt(i) === "\n") { + return true; + } + } + return false; + } + function isPreviousLineEmpty(text, node, locStart) { + let idx = locStart(node) - 1; + idx = skipSpaces(text, idx, { + backwards: true + }); + idx = skipNewline(text, idx, { + backwards: true + }); + idx = skipSpaces(text, idx, { + backwards: true + }); + const idx2 = skipNewline(text, idx, { + backwards: true + }); + return idx !== idx2; + } + function isNextLineEmptyAfterIndex(text, index) { + let oldIdx = null; + let idx = index; + while (idx !== oldIdx) { + oldIdx = idx; + idx = skipToLineEnd(text, idx); + idx = skipInlineComment(text, idx); + idx = skipSpaces(text, idx); + } + idx = skipTrailingComment(text, idx); + idx = skipNewline(text, idx); + return idx !== false && hasNewline(text, idx); + } + function isNextLineEmpty(text, node, locEnd) { + return isNextLineEmptyAfterIndex(text, locEnd(node)); + } + function getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { + return getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd(node)); + } + function getNextNonSpaceNonCommentCharacter(text, node, locEnd) { + return text.charAt(getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd)); + } + function hasSpaces(text, index, opts = {}) { + const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); + return idx !== index; + } + function getAlignmentSize(value, tabWidth, startIndex = 0) { + let size = 0; + for (let i = startIndex; i < value.length; ++i) { + if (value[i] === " ") { + size = size + tabWidth - size % tabWidth; + } else { + size++; + } + } + return size; + } + function getIndentSize(value, tabWidth) { + const lastNewlineIndex = value.lastIndexOf("\n"); + if (lastNewlineIndex === -1) { + return 0; + } + return getAlignmentSize(value.slice(lastNewlineIndex + 1).match(/^[\t ]*/)[0], tabWidth); + } + function getPreferredQuote(rawContent, preferredQuote) { + const double = { + quote: '"', + regex: /"/g, + escaped: """ + }; + const single = { + quote: "'", + regex: /'/g, + escaped: "'" + }; + const preferred = preferredQuote === "'" ? single : double; + const alternate = preferred === single ? double : single; + let result = preferred; + if (rawContent.includes(preferred.quote) || rawContent.includes(alternate.quote)) { + const numPreferredQuotes = (rawContent.match(preferred.regex) || []).length; + const numAlternateQuotes = (rawContent.match(alternate.regex) || []).length; + result = numPreferredQuotes > numAlternateQuotes ? alternate : preferred; + } + return result; + } + function printString(raw, options) { + const rawContent = raw.slice(1, -1); + const enclosingQuote = options.parser === "json" || options.parser === "json5" && options.quoteProps === "preserve" && !options.singleQuote ? '"' : options.__isInHtmlAttribute ? "'" : getPreferredQuote(rawContent, options.singleQuote ? "'" : '"').quote; + return makeString(rawContent, enclosingQuote, !(options.parser === "css" || options.parser === "less" || options.parser === "scss" || options.__embeddedInHtml)); + } + function makeString(rawContent, enclosingQuote, unescapeUnnecessaryEscapes) { + const otherQuote = enclosingQuote === '"' ? "'" : '"'; + const regex = /\\(.)|(["'])/gs; + const newContent = rawContent.replace(regex, (match, escaped, quote) => { + if (escaped === otherQuote) { + return escaped; + } + if (quote === enclosingQuote) { + return "\\" + quote; + } + if (quote) { + return quote; + } + return unescapeUnnecessaryEscapes && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(escaped) ? escaped : "\\" + escaped; + }); + return enclosingQuote + newContent + enclosingQuote; + } + function printNumber(rawNumber) { + return rawNumber.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/, "$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/, "$1").replace(/^([+-])?\./, "$10.").replace(/(\.\d+?)0+(?=e|$)/, "$1").replace(/\.(?=e|$)/, ""); + } + function getMaxContinuousCount(str, target) { + const results = str.match(new RegExp(`(${escapeStringRegexp2(target)})+`, "g")); + if (results === null) { + return 0; + } + return results.reduce((maxCount, result) => Math.max(maxCount, result.length / target.length), 0); + } + function getMinNotPresentContinuousCount(str, target) { + const matches = str.match(new RegExp(`(${escapeStringRegexp2(target)})+`, "g")); + if (matches === null) { + return 0; + } + const countPresent = /* @__PURE__ */ new Map(); + let max = 0; + for (const match of matches) { + const count = match.length / target.length; + countPresent.set(count, true); + if (count > max) { + max = count; + } + } + for (let i = 1; i < max; i++) { + if (!countPresent.get(i)) { + return i; + } + } + return max + 1; + } + function addCommentHelper(node, comment) { + const comments = node.comments || (node.comments = []); + comments.push(comment); + comment.printed = false; + comment.nodeDescription = describeNodeForDebugging(node); + } + function addLeadingComment(node, comment) { + comment.leading = true; + comment.trailing = false; + addCommentHelper(node, comment); + } + function addDanglingComment(node, comment, marker) { + comment.leading = false; + comment.trailing = false; + if (marker) { + comment.marker = marker; + } + addCommentHelper(node, comment); + } + function addTrailingComment(node, comment) { + comment.leading = false; + comment.trailing = true; + addCommentHelper(node, comment); + } + function inferParserByLanguage(language, options) { + const { + languages + } = getSupportInfo2({ + plugins: options.plugins + }); + const matched = languages.find(({ + name + }) => name.toLowerCase() === language) || languages.find(({ + aliases + }) => Array.isArray(aliases) && aliases.includes(language)) || languages.find(({ + extensions + }) => Array.isArray(extensions) && extensions.includes(`.${language}`)); + return matched && matched.parsers[0]; + } + function isFrontMatterNode(node) { + return node && node.type === "front-matter"; + } + function createGroupIdMapper(description) { + const groupIds = /* @__PURE__ */ new WeakMap(); + return function(node) { + if (!groupIds.has(node)) { + groupIds.set(node, Symbol(description)); + } + return groupIds.get(node); + }; + } + function describeNodeForDebugging(node) { + const nodeType = node.type || node.kind || "(unknown type)"; + let nodeName = String(node.name || node.id && (typeof node.id === "object" ? node.id.name : node.id) || node.key && (typeof node.key === "object" ? node.key.name : node.key) || node.value && (typeof node.value === "object" ? "" : String(node.value)) || node.operator || ""); + if (nodeName.length > 20) { + nodeName = nodeName.slice(0, 19) + "\u2026"; + } + return nodeType + (nodeName ? " " + nodeName : ""); + } + module2.exports = { + inferParserByLanguage, + getStringWidth, + getMaxContinuousCount, + getMinNotPresentContinuousCount, + getPenultimate, + getLast, + getNextNonSpaceNonCommentCharacterIndexWithStartIndex, + getNextNonSpaceNonCommentCharacterIndex, + getNextNonSpaceNonCommentCharacter, + skip, + skipWhitespace, + skipSpaces, + skipToLineEnd, + skipEverythingButNewLine, + skipInlineComment, + skipTrailingComment, + skipNewline, + isNextLineEmptyAfterIndex, + isNextLineEmpty, + isPreviousLineEmpty, + hasNewline, + hasNewlineInRange, + hasSpaces, + getAlignmentSize, + getIndentSize, + getPreferredQuote, + printString, + printNumber, + makeString, + addLeadingComment, + addDanglingComment, + addTrailingComment, + isFrontMatterNode, + isNonEmptyArray, + createGroupIdMapper + }; + } +}); +var require_end_of_line = __commonJS2({ + "src/common/end-of-line.js"(exports2, module2) { + "use strict"; + function guessEndOfLine(text) { + const index = text.indexOf("\r"); + if (index >= 0) { + return text.charAt(index + 1) === "\n" ? "crlf" : "cr"; + } + return "lf"; + } + function convertEndOfLineToChars(value) { + switch (value) { + case "cr": + return "\r"; + case "crlf": + return "\r\n"; + default: + return "\n"; + } + } + function countEndOfLineChars(text, eol) { + let regex; + switch (eol) { + case "\n": + regex = /\n/g; + break; + case "\r": + regex = /\r/g; + break; + case "\r\n": + regex = /\r\n/g; + break; + default: + throw new Error(`Unexpected "eol" ${JSON.stringify(eol)}.`); + } + const endOfLines = text.match(regex); + return endOfLines ? endOfLines.length : 0; + } + function normalizeEndOfLine(text) { + return text.replace(/\r\n?/g, "\n"); + } + module2.exports = { + guessEndOfLine, + convertEndOfLineToChars, + countEndOfLineChars, + normalizeEndOfLine + }; + } +}); +var require_errors = __commonJS2({ + "src/common/errors.js"(exports2, module2) { + "use strict"; + var ConfigError = class extends Error { + }; + var DebugError = class extends Error { + }; + var UndefinedParserError = class extends Error { + }; + var ArgExpansionBailout = class extends Error { + }; + module2.exports = { + ConfigError, + DebugError, + UndefinedParserError, + ArgExpansionBailout + }; + } +}); +var tslib_es6_exports = {}; +__export(tslib_es6_exports, { + __assign: () => __assign, + __asyncDelegator: () => __asyncDelegator, + __asyncGenerator: () => __asyncGenerator, + __asyncValues: () => __asyncValues, + __await: () => __await, + __awaiter: () => __awaiter, + __classPrivateFieldGet: () => __classPrivateFieldGet, + __classPrivateFieldSet: () => __classPrivateFieldSet, + __createBinding: () => __createBinding, + __decorate: () => __decorate, + __exportStar: () => __exportStar, + __extends: () => __extends, + __generator: () => __generator, + __importDefault: () => __importDefault, + __importStar: () => __importStar, + __makeTemplateObject: () => __makeTemplateObject, + __metadata: () => __metadata, + __param: () => __param, + __read: () => __read, + __rest: () => __rest, + __spread: () => __spread, + __spreadArrays: () => __spreadArrays, + __values: () => __values +}); +function __extends(d, b) { + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} +function __rest(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; +} +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r = Reflect.decorate(decorators, target, key, desc); + else + for (var i = decorators.length - 1; i >= 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; +} +function __param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); +} +function __awaiter(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()); + }); +} +function __generator(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 + }; + } +} +function __createBinding(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; +} +function __exportStar(m, exports2) { + for (var p in m) + if (p !== "default" && !exports2.hasOwnProperty(p)) + exports2[p] = m[p]; +} +function __values(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."); +} +function __read(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 + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; +} +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} +function __asyncGenerator(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]); + } +} +function __asyncDelegator(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; + } +} +function __asyncValues(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(v2) { + resolve({ + value: v2, + done: d + }); + }, reject); + } +} +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { + value: raw + }); + } else { + cooked.raw = raw; + } + return cooked; +} +function __importStar(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (Object.hasOwnProperty.call(mod, k)) + result[k] = mod[k]; + } + result.default = mod; + return result; +} +function __importDefault(mod) { + return mod && mod.__esModule ? mod : { + default: mod + }; +} +function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); +} +function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; +} +var extendStatics; +var __assign; +var init_tslib_es6 = __esm({ + "node_modules/tslib/tslib.es6.js"() { + 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 (b2.hasOwnProperty(p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + __assign = function() { + __assign = Object.assign || function __assign2(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); + }; + } +}); +var require_api = __commonJS2({ + "node_modules/vnopts/lib/descriptors/api.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.apiDescriptor = { + key: (key) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(key) ? key : JSON.stringify(key), + value(value) { + if (value === null || typeof value !== "object") { + return JSON.stringify(value); + } + if (Array.isArray(value)) { + return `[${value.map((subValue) => exports2.apiDescriptor.value(subValue)).join(", ")}]`; + } + const keys = Object.keys(value); + return keys.length === 0 ? "{}" : `{ ${keys.map((key) => `${exports2.apiDescriptor.key(key)}: ${exports2.apiDescriptor.value(value[key])}`).join(", ")} }`; + }, + pair: ({ + key, + value + }) => exports2.apiDescriptor.value({ + [key]: value + }) + }; + } +}); +var require_descriptors2 = __commonJS2({ + "node_modules/vnopts/lib/descriptors/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_api(), exports2); + } +}); +var require_escape_string_regexp = __commonJS2({ + "node_modules/vnopts/node_modules/escape-string-regexp/index.js"(exports2, module2) { + "use strict"; + var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + module2.exports = function(str) { + if (typeof str !== "string") { + throw new TypeError("Expected a string"); + } + return str.replace(matchOperatorsRe, "\\$&"); + }; + } +}); +var require_color_name = __commonJS2({ + "node_modules/color-name/index.js"(exports2, module2) { + "use strict"; + module2.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] + }; + } +}); +var require_conversions = __commonJS2({ + "node_modules/color-convert/conversions.js"(exports2, module2) { + var cssKeywords = require_color_name(); + var reverseKeywords = {}; + for (key in cssKeywords) { + if (cssKeywords.hasOwnProperty(key)) { + reverseKeywords[cssKeywords[key]] = key; + } + } + var key; + var convert = module2.exports = { + rgb: { + channels: 3, + labels: "rgb" + }, + hsl: { + channels: 3, + labels: "hsl" + }, + hsv: { + channels: 3, + labels: "hsv" + }, + hwb: { + channels: 3, + labels: "hwb" + }, + cmyk: { + channels: 4, + labels: "cmyk" + }, + xyz: { + channels: 3, + labels: "xyz" + }, + lab: { + channels: 3, + labels: "lab" + }, + lch: { + channels: 3, + labels: "lch" + }, + hex: { + channels: 1, + labels: ["hex"] + }, + keyword: { + channels: 1, + labels: ["keyword"] + }, + ansi16: { + channels: 1, + labels: ["ansi16"] + }, + ansi256: { + channels: 1, + labels: ["ansi256"] + }, + hcg: { + channels: 3, + labels: ["h", "c", "g"] + }, + apple: { + channels: 3, + labels: ["r16", "g16", "b16"] + }, + gray: { + channels: 1, + labels: ["gray"] + } + }; + for (model in convert) { + if (convert.hasOwnProperty(model)) { + if (!("channels" in convert[model])) { + throw new Error("missing channels property: " + model); + } + if (!("labels" in convert[model])) { + throw new Error("missing channel labels property: " + model); + } + if (convert[model].labels.length !== convert[model].channels) { + throw new Error("channel and label counts mismatch: " + model); + } + channels = convert[model].channels; + labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], "channels", { + value: channels + }); + Object.defineProperty(convert[model], "labels", { + value: labels + }); + } + } + var channels; + var labels; + var model; + convert.rgb.hsl = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + h = Math.min(h * 60, 360); + if (h < 0) { + h += 360; + } + l = (min + max) / 2; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + return [h, s * 100, l * 100]; + }; + convert.rgb.hsv = function(rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + var diffc = function(c) { + return (v - c) / 6 / diff + 1 / 2; + }; + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = 1 / 3 + rdif - bdif; + } else if (b === v) { + h = 2 / 3 + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + return [h * 360, s * 100, v * 100]; + }; + convert.rgb.hwb = function(rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; + }; + convert.rgb.cmyk = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; + }; + function comparativeDistance(x, y) { + return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2); + } + convert.rgb.keyword = function(rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + var currentClosestDistance = Infinity; + var currentClosestKeyword; + for (var keyword in cssKeywords) { + if (cssKeywords.hasOwnProperty(keyword)) { + var value = cssKeywords[keyword]; + var distance = comparativeDistance(rgb, value); + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } + return currentClosestKeyword; + }; + convert.keyword.rgb = function(keyword) { + return cssKeywords[keyword]; + }; + convert.rgb.xyz = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; + g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; + b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; + var x = r * 0.4124 + g * 0.3576 + b * 0.1805; + var y = r * 0.2126 + g * 0.7152 + b * 0.0722; + var z = r * 0.0193 + g * 0.1192 + b * 0.9505; + return [x * 100, y * 100, z * 100]; + }; + convert.rgb.lab = function(rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 8856e-6 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; + }; + convert.hsl.rgb = function(hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + t1 = 2 * l - t2; + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + rgb[i] = val * 255; + } + return rgb; + }; + convert.hsl.hsv = function(hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; + }; + convert.hsv.rgb = function(hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - s * f); + var t = 255 * v * (1 - s * (1 - f)); + v *= 255; + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } + }; + convert.hsv.hsl = function(hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; + }; + convert.hwb.rgb = function(hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + if ((i & 1) !== 0) { + f = 1 - f; + } + n = wh + f * (v - wh); + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: + r = v; + g = n; + b = wh; + break; + case 1: + r = n; + g = v; + b = wh; + break; + case 2: + r = wh; + g = v; + b = n; + break; + case 3: + r = wh; + g = n; + b = v; + break; + case 4: + r = n; + g = wh; + b = v; + break; + case 5: + r = v; + g = wh; + b = n; + break; + } + return [r * 255, g * 255, b * 255]; + }; + convert.cmyk.rgb = function(cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; + }; + convert.xyz.rgb = function(xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; + r = x * 3.2406 + y * -1.5372 + z * -0.4986; + g = x * -0.9689 + y * 1.8758 + z * 0.0415; + b = x * 0.0557 + y * -0.204 + z * 1.057; + r = r > 31308e-7 ? 1.055 * Math.pow(r, 1 / 2.4) - 0.055 : r * 12.92; + g = g > 31308e-7 ? 1.055 * Math.pow(g, 1 / 2.4) - 0.055 : g * 12.92; + b = b > 31308e-7 ? 1.055 * Math.pow(b, 1 / 2.4) - 0.055 : b * 12.92; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + return [r * 255, g * 255, b * 255]; + }; + convert.xyz.lab = function(xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 8856e-6 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; + }; + convert.lab.xyz = function(lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z *= 108.883; + return [x, y, z]; + }; + convert.lab.lch = function(lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + if (h < 0) { + h += 360; + } + c = Math.sqrt(a * a + b * b); + return [l, c, h]; + }; + convert.lch.lab = function(lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + return [l, a, b]; + }; + convert.rgb.ansi16 = function(args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; + value = Math.round(value / 50); + if (value === 0) { + return 30; + } + var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + if (value === 2) { + ansi += 60; + } + return ansi; + }; + convert.hsv.ansi16 = function(args) { + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + }; + convert.rgb.ansi256 = function(args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + if (r === g && g === b) { + if (r < 8) { + return 16; + } + if (r > 248) { + return 231; + } + return Math.round((r - 8) / 247 * 24) + 232; + } + var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; + }; + convert.ansi16.rgb = function(args) { + var color = args % 10; + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + color = color / 10.5 * 255; + return [color, color, color]; + } + var mult = (~~(args > 50) + 1) * 0.5; + var r = (color & 1) * mult * 255; + var g = (color >> 1 & 1) * mult * 255; + var b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; + }; + convert.ansi256.rgb = function(args) { + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } + args -= 16; + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = rem % 6 / 5 * 255; + return [r, g, b]; + }; + convert.rgb.hex = function(args) { + var integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); + var string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; + }; + convert.hex.rgb = function(args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + var colorString = match[0]; + if (match[0].length === 3) { + colorString = colorString.split("").map(function(char) { + return char + char; + }).join(""); + } + var integer = parseInt(colorString, 16); + var r = integer >> 16 & 255; + var g = integer >> 8 & 255; + var b = integer & 255; + return [r, g, b]; + }; + convert.rgb.hcg = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = max - min; + var grayscale; + var hue; + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; + }; + convert.hsl.hcg = function(hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; + if (l < 0.5) { + c = 2 * s * l; + } else { + c = 2 * s * (1 - l); + } + if (c < 1) { + f = (l - 0.5 * c) / (1 - c); + } + return [hsl[0], c * 100, f * 100]; + }; + convert.hsv.hcg = function(hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var c = s * v; + var f = 0; + if (c < 1) { + f = (v - c) / (1 - c); + } + return [hsv[0], c * 100, f * 100]; + }; + convert.hcg.rgb = function(hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; + if (c === 0) { + return [g * 255, g * 255, g * 255]; + } + var pure = [0, 0, 0]; + var hi = h % 1 * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + case 1: + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + case 2: + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + case 3: + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + case 4: + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + default: + pure[0] = 1; + pure[1] = 0; + pure[2] = w; + } + mg = (1 - c) * g; + return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; + }; + convert.hcg.hsv = function(hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1 - c); + var f = 0; + if (v > 0) { + f = c / v; + } + return [hcg[0], f * 100, v * 100]; + }; + convert.hcg.hsl = function(hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var l = g * (1 - c) + 0.5 * c; + var s = 0; + if (l > 0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1) { + s = c / (2 * (1 - l)); + } + return [hcg[0], s * 100, l * 100]; + }; + convert.hcg.hwb = function(hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; + }; + convert.hwb.hcg = function(hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; + if (c < 1) { + g = (v - c) / (1 - c); + } + return [hwb[0], c * 100, g * 100]; + }; + convert.apple.rgb = function(apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; + }; + convert.rgb.apple = function(rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; + }; + convert.gray.rgb = function(args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; + }; + convert.gray.hsl = convert.gray.hsv = function(args) { + return [0, 0, args[0]]; + }; + convert.gray.hwb = function(gray) { + return [0, 100, gray[0]]; + }; + convert.gray.cmyk = function(gray) { + return [0, 0, 0, gray[0]]; + }; + convert.gray.lab = function(gray) { + return [gray[0], 0, 0]; + }; + convert.gray.hex = function(gray) { + var val = Math.round(gray[0] / 100 * 255) & 255; + var integer = (val << 16) + (val << 8) + val; + var string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; + }; + convert.rgb.gray = function(rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; + }; + } +}); +var require_route = __commonJS2({ + "node_modules/color-convert/route.js"(exports2, module2) { + var conversions = require_conversions(); + function buildGraph() { + var graph = {}; + var models = Object.keys(conversions); + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + distance: -1, + parent: null + }; + } + return graph; + } + function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; + graph[fromModel].distance = 0; + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + return graph; + } + function link(from, to) { + return function(args) { + return to(from(args)); + }; + } + function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + fn.conversion = path; + return fn; + } + module2.exports = function(fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; + if (node.parent === null) { + continue; + } + conversion[toModel] = wrapConversion(toModel, graph); + } + return conversion; + }; + } +}); +var require_color_convert = __commonJS2({ + "node_modules/color-convert/index.js"(exports2, module2) { + var conversions = require_conversions(); + var route = require_route(); + var convert = {}; + var models = Object.keys(conversions); + function wrapRaw(fn) { + var wrappedFn = function(args) { + if (args === void 0 || args === null) { + return args; + } + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + return fn(args); + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; + } + function wrapRounded(fn) { + var wrappedFn = function(args) { + if (args === void 0 || args === null) { + return args; + } + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + var result = fn(args); + if (typeof result === "object") { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + return result; + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; + } + models.forEach(function(fromModel) { + convert[fromModel] = {}; + Object.defineProperty(convert[fromModel], "channels", { + value: conversions[fromModel].channels + }); + Object.defineProperty(convert[fromModel], "labels", { + value: conversions[fromModel].labels + }); + var routes = route(fromModel); + var routeModels = Object.keys(routes); + routeModels.forEach(function(toModel) { + var fn = routes[toModel]; + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); + }); + module2.exports = convert; + } +}); +var require_ansi_styles = __commonJS2({ + "node_modules/ansi-styles/index.js"(exports2, module2) { + "use strict"; + var colorConvert = require_color_convert(); + var wrapAnsi16 = (fn, offset) => function() { + const code = fn.apply(colorConvert, arguments); + return `\x1B[${code + offset}m`; + }; + var wrapAnsi256 = (fn, offset) => function() { + const code = fn.apply(colorConvert, arguments); + return `\x1B[${38 + offset};5;${code}m`; + }; + var wrapAnsi16m = (fn, offset) => function() { + const rgb = fn.apply(colorConvert, arguments); + return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; + }; + function assembleStyles() { + const codes = /* @__PURE__ */ new Map(); + const styles = { + modifier: { + reset: [0, 0], + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + styles.color.grey = styles.color.gray; + for (const groupName of Object.keys(styles)) { + const group = styles[groupName]; + for (const styleName of Object.keys(group)) { + const style = group[styleName]; + styles[styleName] = { + open: `\x1B[${style[0]}m`, + close: `\x1B[${style[1]}m` + }; + group[styleName] = styles[styleName]; + codes.set(style[0], style[1]); + } + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + Object.defineProperty(styles, "codes", { + value: codes, + enumerable: false + }); + } + const ansi2ansi = (n) => n; + const rgb2rgb = (r, g, b) => [r, g, b]; + styles.color.close = "\x1B[39m"; + styles.bgColor.close = "\x1B[49m"; + styles.color.ansi = { + ansi: wrapAnsi16(ansi2ansi, 0) + }; + styles.color.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 0) + }; + styles.color.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 0) + }; + styles.bgColor.ansi = { + ansi: wrapAnsi16(ansi2ansi, 10) + }; + styles.bgColor.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 10) + }; + styles.bgColor.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 10) + }; + for (let key of Object.keys(colorConvert)) { + if (typeof colorConvert[key] !== "object") { + continue; + } + const suite = colorConvert[key]; + if (key === "ansi16") { + key = "ansi"; + } + if ("ansi16" in suite) { + styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); + styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); + } + if ("ansi256" in suite) { + styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); + styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); + } + if ("rgb" in suite) { + styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); + styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); + } + } + return styles; + } + Object.defineProperty(module2, "exports", { + enumerable: true, + get: assembleStyles + }); + } +}); +var require_has_flag = __commonJS2({ + "node_modules/vnopts/node_modules/has-flag/index.js"(exports2, module2) { + "use strict"; + module2.exports = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf("--"); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); + }; + } +}); +var require_supports_color = __commonJS2({ + "node_modules/vnopts/node_modules/supports-color/index.js"(exports2, module2) { + "use strict"; + var os = require("os"); + var hasFlag = require_has_flag(); + var env = process.env; + var forceColor; + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) { + forceColor = false; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + forceColor = true; + } + if ("FORCE_COLOR" in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; + } + function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + const min = forceColor ? 1 : 0; + if (process.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version2 = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version2 >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + if (env.TERM === "dumb") { + return min; + } + return min; + } + function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); + } + module2.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) + }; + } +}); +var require_templates = __commonJS2({ + "node_modules/vnopts/node_modules/chalk/templates.js"(exports2, module2) { + "use strict"; + var TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; + var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; + var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; + var ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; + var ESCAPES = /* @__PURE__ */ new Map([["n", "\n"], ["r", "\r"], ["t", " "], ["b", "\b"], ["f", "\f"], ["v", "\v"], ["0", "\0"], ["\\", "\\"], ["e", "\x1B"], ["a", "\x07"]]); + function unescape(c) { + if (c[0] === "u" && c.length === 5 || c[0] === "x" && c.length === 3) { + return String.fromCharCode(parseInt(c.slice(1), 16)); + } + return ESCAPES.get(c) || c; + } + function parseArguments(name, args) { + const results = []; + const chunks = args.trim().split(/\s*,\s*/g); + let matches; + for (const chunk of chunks) { + if (!isNaN(chunk)) { + results.push(Number(chunk)); + } else if (matches = chunk.match(STRING_REGEX)) { + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } + return results; + } + function parseStyle(style) { + STYLE_REGEX.lastIndex = 0; + const results = []; + let matches; + while ((matches = STYLE_REGEX.exec(style)) !== null) { + const name = matches[1]; + if (matches[2]) { + const args = parseArguments(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); + } + } + return results; + } + function buildStyle(chalk, styles) { + const enabled = {}; + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } + let current = chalk; + for (const styleName of Object.keys(enabled)) { + if (Array.isArray(enabled[styleName])) { + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } + if (enabled[styleName].length > 0) { + current = current[styleName].apply(current, enabled[styleName]); + } else { + current = current[styleName]; + } + } + } + return current; + } + module2.exports = (chalk, tmp) => { + const styles = []; + const chunks = []; + let chunk = []; + tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + if (escapeChar) { + chunk.push(unescape(escapeChar)); + } else if (style) { + const str = chunk.join(""); + chunk = []; + chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + styles.push({ + inverse, + styles: parseStyle(style) + }); + } else if (close) { + if (styles.length === 0) { + throw new Error("Found extraneous } in Chalk template literal"); + } + chunks.push(buildStyle(chalk, styles)(chunk.join(""))); + chunk = []; + styles.pop(); + } else { + chunk.push(chr); + } + }); + chunks.push(chunk.join("")); + if (styles.length > 0) { + const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`; + throw new Error(errMsg); + } + return chunks.join(""); + }; + } +}); +var require_chalk = __commonJS2({ + "node_modules/vnopts/node_modules/chalk/index.js"(exports2, module2) { + "use strict"; + var escapeStringRegexp2 = require_escape_string_regexp(); + var ansiStyles = require_ansi_styles(); + var stdoutColor = require_supports_color().stdout; + var template = require_templates(); + var isSimpleWindowsTerm = process.platform === "win32" && !(process.env.TERM || "").toLowerCase().startsWith("xterm"); + var levelMapping = ["ansi", "ansi", "ansi256", "ansi16m"]; + var skipModels = /* @__PURE__ */ new Set(["gray"]); + var styles = /* @__PURE__ */ Object.create(null); + function applyOptions(obj, options) { + options = options || {}; + const scLevel = stdoutColor ? stdoutColor.level : 0; + obj.level = options.level === void 0 ? scLevel : options.level; + obj.enabled = "enabled" in options ? options.enabled : obj.level > 0; + } + function Chalk(options) { + if (!this || !(this instanceof Chalk) || this.template) { + const chalk = {}; + applyOptions(chalk, options); + chalk.template = function() { + const args = [].slice.call(arguments); + return chalkTag.apply(null, [chalk.template].concat(args)); + }; + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + chalk.template.constructor = Chalk; + return chalk.template; + } + applyOptions(this, options); + } + if (isSimpleWindowsTerm) { + ansiStyles.blue.open = "\x1B[94m"; + } + for (const key of Object.keys(ansiStyles)) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp2(ansiStyles[key].close), "g"); + styles[key] = { + get() { + const codes = ansiStyles[key]; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + } + }; + } + styles.visible = { + get() { + return build.call(this, this._styles || [], true, "visible"); + } + }; + ansiStyles.color.closeRe = new RegExp(escapeStringRegexp2(ansiStyles.color.close), "g"); + for (const model of Object.keys(ansiStyles.color.ansi)) { + if (skipModels.has(model)) { + continue; + } + styles[model] = { + get() { + const level = this.level; + return function() { + const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.color.close, + closeRe: ansiStyles.color.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; + } + ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp2(ansiStyles.bgColor.close), "g"); + for (const model of Object.keys(ansiStyles.bgColor.ansi)) { + if (skipModels.has(model)) { + continue; + } + const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const level = this.level; + return function() { + const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.bgColor.close, + closeRe: ansiStyles.bgColor.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; + } + var proto = Object.defineProperties(() => { + }, styles); + function build(_styles, _empty, key) { + const builder = function() { + return applyStyle.apply(builder, arguments); + }; + builder._styles = _styles; + builder._empty = _empty; + const self2 = this; + Object.defineProperty(builder, "level", { + enumerable: true, + get() { + return self2.level; + }, + set(level) { + self2.level = level; + } + }); + Object.defineProperty(builder, "enabled", { + enumerable: true, + get() { + return self2.enabled; + }, + set(enabled) { + self2.enabled = enabled; + } + }); + builder.hasGrey = this.hasGrey || key === "gray" || key === "grey"; + builder.__proto__ = proto; + return builder; + } + function applyStyle() { + const args = arguments; + const argsLen = args.length; + let str = String(arguments[0]); + if (argsLen === 0) { + return ""; + } + if (argsLen > 1) { + for (let a = 1; a < argsLen; a++) { + str += " " + args[a]; + } + } + if (!this.enabled || this.level <= 0 || !str) { + return this._empty ? "" : str; + } + const originalDim = ansiStyles.dim.open; + if (isSimpleWindowsTerm && this.hasGrey) { + ansiStyles.dim.open = ""; + } + for (const code of this._styles.slice().reverse()) { + str = code.open + str.replace(code.closeRe, code.open) + code.close; + str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + } + ansiStyles.dim.open = originalDim; + return str; + } + function chalkTag(chalk, strings) { + if (!Array.isArray(strings)) { + return [].slice.call(arguments, 1).join(" "); + } + const args = [].slice.call(arguments, 2); + const parts = [strings.raw[0]]; + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, "\\$&")); + parts.push(String(strings.raw[i])); + } + return template(chalk, parts.join("")); + } + Object.defineProperties(Chalk.prototype, styles); + module2.exports = Chalk(); + module2.exports.supportsColor = stdoutColor; + module2.exports.default = module2.exports; + } +}); +var require_common = __commonJS2({ + "node_modules/vnopts/lib/handlers/deprecated/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var chalk_1 = require_chalk(); + exports2.commonDeprecatedHandler = (keyOrPair, redirectTo, { + descriptor + }) => { + const messages = [`${chalk_1.default.yellow(typeof keyOrPair === "string" ? descriptor.key(keyOrPair) : descriptor.pair(keyOrPair))} is deprecated`]; + if (redirectTo) { + messages.push(`we now treat it as ${chalk_1.default.blue(typeof redirectTo === "string" ? descriptor.key(redirectTo) : descriptor.pair(redirectTo))}`); + } + return messages.join("; ") + "."; + }; + } +}); +var require_deprecated = __commonJS2({ + "node_modules/vnopts/lib/handlers/deprecated/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_common(), exports2); + } +}); +var require_common2 = __commonJS2({ + "node_modules/vnopts/lib/handlers/invalid/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var chalk_1 = require_chalk(); + exports2.commonInvalidHandler = (key, value, utils) => [`Invalid ${chalk_1.default.red(utils.descriptor.key(key))} value.`, `Expected ${chalk_1.default.blue(utils.schemas[key].expected(utils))},`, `but received ${chalk_1.default.red(utils.descriptor.value(value))}.`].join(" "); + } +}); +var require_invalid = __commonJS2({ + "node_modules/vnopts/lib/handlers/invalid/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_common2(), exports2); + } +}); +var require_leven = __commonJS2({ + "node_modules/vnopts/node_modules/leven/index.js"(exports2, module2) { + "use strict"; + var arr = []; + var charCodeCache = []; + module2.exports = function(a, b) { + if (a === b) { + return 0; + } + var swap = a; + if (a.length > b.length) { + a = b; + b = swap; + } + var aLen = a.length; + var bLen = b.length; + if (aLen === 0) { + return bLen; + } + if (bLen === 0) { + return aLen; + } + while (aLen > 0 && a.charCodeAt(~-aLen) === b.charCodeAt(~-bLen)) { + aLen--; + bLen--; + } + if (aLen === 0) { + return bLen; + } + var start = 0; + while (start < aLen && a.charCodeAt(start) === b.charCodeAt(start)) { + start++; + } + aLen -= start; + bLen -= start; + if (aLen === 0) { + return bLen; + } + var bCharCode; + var ret; + var tmp; + var tmp2; + var i = 0; + var j = 0; + while (i < aLen) { + charCodeCache[start + i] = a.charCodeAt(start + i); + arr[i] = ++i; + } + while (j < bLen) { + bCharCode = b.charCodeAt(start + j); + tmp = j++; + ret = j; + for (i = 0; i < aLen; i++) { + tmp2 = bCharCode === charCodeCache[start + i] ? tmp : tmp + 1; + tmp = arr[i]; + ret = arr[i] = tmp > ret ? tmp2 > ret ? ret + 1 : tmp2 : tmp2 > tmp ? tmp + 1 : tmp2; + } + } + return ret; + }; + } +}); +var require_leven2 = __commonJS2({ + "node_modules/vnopts/lib/handlers/unknown/leven.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var chalk_1 = require_chalk(); + var leven = require_leven(); + exports2.levenUnknownHandler = (key, value, { + descriptor, + logger, + schemas + }) => { + const messages = [`Ignored unknown option ${chalk_1.default.yellow(descriptor.pair({ + key, + value + }))}.`]; + const suggestion = Object.keys(schemas).sort().find((knownKey) => leven(key, knownKey) < 3); + if (suggestion) { + messages.push(`Did you mean ${chalk_1.default.blue(descriptor.key(suggestion))}?`); + } + logger.warn(messages.join(" ")); + }; + } +}); +var require_unknown = __commonJS2({ + "node_modules/vnopts/lib/handlers/unknown/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_leven2(), exports2); + } +}); +var require_handlers = __commonJS2({ + "node_modules/vnopts/lib/handlers/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_deprecated(), exports2); + tslib_1.__exportStar(require_invalid(), exports2); + tslib_1.__exportStar(require_unknown(), exports2); + } +}); +var require_schema = __commonJS2({ + "node_modules/vnopts/lib/schema.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var HANDLER_KEYS = ["default", "expected", "validate", "deprecated", "forward", "redirect", "overlap", "preprocess", "postprocess"]; + function createSchema(SchemaConstructor, parameters) { + const schema = new SchemaConstructor(parameters); + const subSchema = Object.create(schema); + for (const handlerKey of HANDLER_KEYS) { + if (handlerKey in parameters) { + subSchema[handlerKey] = normalizeHandler(parameters[handlerKey], schema, Schema.prototype[handlerKey].length); + } + } + return subSchema; + } + exports2.createSchema = createSchema; + var Schema = class { + constructor(parameters) { + this.name = parameters.name; + } + static create(parameters) { + return createSchema(this, parameters); + } + default(_utils) { + return void 0; + } + expected(_utils) { + return "nothing"; + } + validate(_value, _utils) { + return false; + } + deprecated(_value, _utils) { + return false; + } + forward(_value, _utils) { + return void 0; + } + redirect(_value, _utils) { + return void 0; + } + overlap(currentValue, _newValue, _utils) { + return currentValue; + } + preprocess(value, _utils) { + return value; + } + postprocess(value, _utils) { + return value; + } + }; + exports2.Schema = Schema; + function normalizeHandler(handler, superSchema, handlerArgumentsLength) { + return typeof handler === "function" ? (...args) => handler(...args.slice(0, handlerArgumentsLength - 1), superSchema, ...args.slice(handlerArgumentsLength - 1)) : () => handler; + } + } +}); +var require_alias = __commonJS2({ + "node_modules/vnopts/lib/schemas/alias.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var schema_1 = require_schema(); + var AliasSchema = class extends schema_1.Schema { + constructor(parameters) { + super(parameters); + this._sourceName = parameters.sourceName; + } + expected(utils) { + return utils.schemas[this._sourceName].expected(utils); + } + validate(value, utils) { + return utils.schemas[this._sourceName].validate(value, utils); + } + redirect(_value, _utils) { + return this._sourceName; + } + }; + exports2.AliasSchema = AliasSchema; + } +}); +var require_any = __commonJS2({ + "node_modules/vnopts/lib/schemas/any.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var schema_1 = require_schema(); + var AnySchema = class extends schema_1.Schema { + expected() { + return "anything"; + } + validate() { + return true; + } + }; + exports2.AnySchema = AnySchema; + } +}); +var require_array2 = __commonJS2({ + "node_modules/vnopts/lib/schemas/array.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var schema_1 = require_schema(); + var ArraySchema = class extends schema_1.Schema { + constructor(_a) { + var { + valueSchema, + name = valueSchema.name + } = _a, handlers = tslib_1.__rest(_a, ["valueSchema", "name"]); + super(Object.assign({}, handlers, { + name + })); + this._valueSchema = valueSchema; + } + expected(utils) { + return `an array of ${this._valueSchema.expected(utils)}`; + } + validate(value, utils) { + if (!Array.isArray(value)) { + return false; + } + const invalidValues = []; + for (const subValue of value) { + const subValidateResult = utils.normalizeValidateResult(this._valueSchema.validate(subValue, utils), subValue); + if (subValidateResult !== true) { + invalidValues.push(subValidateResult.value); + } + } + return invalidValues.length === 0 ? true : { + value: invalidValues + }; + } + deprecated(value, utils) { + const deprecatedResult = []; + for (const subValue of value) { + const subDeprecatedResult = utils.normalizeDeprecatedResult(this._valueSchema.deprecated(subValue, utils), subValue); + if (subDeprecatedResult !== false) { + deprecatedResult.push(...subDeprecatedResult.map(({ + value: deprecatedValue + }) => ({ + value: [deprecatedValue] + }))); + } + } + return deprecatedResult; + } + forward(value, utils) { + const forwardResult = []; + for (const subValue of value) { + const subForwardResult = utils.normalizeForwardResult(this._valueSchema.forward(subValue, utils), subValue); + forwardResult.push(...subForwardResult.map(wrapTransferResult)); + } + return forwardResult; + } + redirect(value, utils) { + const remain = []; + const redirect = []; + for (const subValue of value) { + const subRedirectResult = utils.normalizeRedirectResult(this._valueSchema.redirect(subValue, utils), subValue); + if ("remain" in subRedirectResult) { + remain.push(subRedirectResult.remain); + } + redirect.push(...subRedirectResult.redirect.map(wrapTransferResult)); + } + return remain.length === 0 ? { + redirect + } : { + redirect, + remain + }; + } + overlap(currentValue, newValue) { + return currentValue.concat(newValue); + } + }; + exports2.ArraySchema = ArraySchema; + function wrapTransferResult({ + from, + to + }) { + return { + from: [from], + to + }; + } + } +}); +var require_boolean = __commonJS2({ + "node_modules/vnopts/lib/schemas/boolean.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var schema_1 = require_schema(); + var BooleanSchema = class extends schema_1.Schema { + expected() { + return "true or false"; + } + validate(value) { + return typeof value === "boolean"; + } + }; + exports2.BooleanSchema = BooleanSchema; + } +}); +var require_utils = __commonJS2({ + "node_modules/vnopts/lib/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + function recordFromArray(array, mainKey) { + const record = /* @__PURE__ */ Object.create(null); + for (const value of array) { + const key = value[mainKey]; + if (record[key]) { + throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); + } + record[key] = value; + } + return record; + } + exports2.recordFromArray = recordFromArray; + function mapFromArray(array, mainKey) { + const map = /* @__PURE__ */ new Map(); + for (const value of array) { + const key = value[mainKey]; + if (map.has(key)) { + throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); + } + map.set(key, value); + } + return map; + } + exports2.mapFromArray = mapFromArray; + function createAutoChecklist() { + const map = /* @__PURE__ */ Object.create(null); + return (id) => { + const idString = JSON.stringify(id); + if (map[idString]) { + return true; + } + map[idString] = true; + return false; + }; + } + exports2.createAutoChecklist = createAutoChecklist; + function partition(array, predicate) { + const trueArray = []; + const falseArray = []; + for (const value of array) { + if (predicate(value)) { + trueArray.push(value); + } else { + falseArray.push(value); + } + } + return [trueArray, falseArray]; + } + exports2.partition = partition; + function isInt(value) { + return value === Math.floor(value); + } + exports2.isInt = isInt; + function comparePrimitive(a, b) { + if (a === b) { + return 0; + } + const typeofA = typeof a; + const typeofB = typeof b; + const orders = ["undefined", "object", "boolean", "number", "string"]; + if (typeofA !== typeofB) { + return orders.indexOf(typeofA) - orders.indexOf(typeofB); + } + if (typeofA !== "string") { + return Number(a) - Number(b); + } + return a.localeCompare(b); + } + exports2.comparePrimitive = comparePrimitive; + function normalizeDefaultResult(result) { + return result === void 0 ? {} : result; + } + exports2.normalizeDefaultResult = normalizeDefaultResult; + function normalizeValidateResult(result, value) { + return result === true ? true : result === false ? { + value + } : result; + } + exports2.normalizeValidateResult = normalizeValidateResult; + function normalizeDeprecatedResult(result, value, doNotNormalizeTrue = false) { + return result === false ? false : result === true ? doNotNormalizeTrue ? true : [{ + value + }] : "value" in result ? [result] : result.length === 0 ? false : result; + } + exports2.normalizeDeprecatedResult = normalizeDeprecatedResult; + function normalizeTransferResult(result, value) { + return typeof result === "string" || "key" in result ? { + from: value, + to: result + } : "from" in result ? { + from: result.from, + to: result.to + } : { + from: value, + to: result.to + }; + } + exports2.normalizeTransferResult = normalizeTransferResult; + function normalizeForwardResult(result, value) { + return result === void 0 ? [] : Array.isArray(result) ? result.map((transferResult) => normalizeTransferResult(transferResult, value)) : [normalizeTransferResult(result, value)]; + } + exports2.normalizeForwardResult = normalizeForwardResult; + function normalizeRedirectResult(result, value) { + const redirect = normalizeForwardResult(typeof result === "object" && "redirect" in result ? result.redirect : result, value); + return redirect.length === 0 ? { + remain: value, + redirect + } : typeof result === "object" && "remain" in result ? { + remain: result.remain, + redirect + } : { + redirect + }; + } + exports2.normalizeRedirectResult = normalizeRedirectResult; + } +}); +var require_choice = __commonJS2({ + "node_modules/vnopts/lib/schemas/choice.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var schema_1 = require_schema(); + var utils_1 = require_utils(); + var ChoiceSchema = class extends schema_1.Schema { + constructor(parameters) { + super(parameters); + this._choices = utils_1.mapFromArray(parameters.choices.map((choice) => choice && typeof choice === "object" ? choice : { + value: choice + }), "value"); + } + expected({ + descriptor + }) { + const choiceValues = Array.from(this._choices.keys()).map((value) => this._choices.get(value)).filter((choiceInfo) => !choiceInfo.deprecated).map((choiceInfo) => choiceInfo.value).sort(utils_1.comparePrimitive).map(descriptor.value); + const head = choiceValues.slice(0, -2); + const tail = choiceValues.slice(-2); + return head.concat(tail.join(" or ")).join(", "); + } + validate(value) { + return this._choices.has(value); + } + deprecated(value) { + const choiceInfo = this._choices.get(value); + return choiceInfo && choiceInfo.deprecated ? { + value + } : false; + } + forward(value) { + const choiceInfo = this._choices.get(value); + return choiceInfo ? choiceInfo.forward : void 0; + } + redirect(value) { + const choiceInfo = this._choices.get(value); + return choiceInfo ? choiceInfo.redirect : void 0; + } + }; + exports2.ChoiceSchema = ChoiceSchema; + } +}); +var require_number = __commonJS2({ + "node_modules/vnopts/lib/schemas/number.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var schema_1 = require_schema(); + var NumberSchema = class extends schema_1.Schema { + expected() { + return "a number"; + } + validate(value, _utils) { + return typeof value === "number"; + } + }; + exports2.NumberSchema = NumberSchema; + } +}); +var require_integer = __commonJS2({ + "node_modules/vnopts/lib/schemas/integer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils_1 = require_utils(); + var number_1 = require_number(); + var IntegerSchema = class extends number_1.NumberSchema { + expected() { + return "an integer"; + } + validate(value, utils) { + return utils.normalizeValidateResult(super.validate(value, utils), value) === true && utils_1.isInt(value); + } + }; + exports2.IntegerSchema = IntegerSchema; + } +}); +var require_string = __commonJS2({ + "node_modules/vnopts/lib/schemas/string.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var schema_1 = require_schema(); + var StringSchema = class extends schema_1.Schema { + expected() { + return "a string"; + } + validate(value) { + return typeof value === "string"; + } + }; + exports2.StringSchema = StringSchema; + } +}); +var require_schemas = __commonJS2({ + "node_modules/vnopts/lib/schemas/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_alias(), exports2); + tslib_1.__exportStar(require_any(), exports2); + tslib_1.__exportStar(require_array2(), exports2); + tslib_1.__exportStar(require_boolean(), exports2); + tslib_1.__exportStar(require_choice(), exports2); + tslib_1.__exportStar(require_integer(), exports2); + tslib_1.__exportStar(require_number(), exports2); + tslib_1.__exportStar(require_string(), exports2); + } +}); +var require_defaults = __commonJS2({ + "node_modules/vnopts/lib/defaults.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var api_1 = require_api(); + var common_1 = require_common(); + var invalid_1 = require_invalid(); + var leven_1 = require_leven2(); + exports2.defaultDescriptor = api_1.apiDescriptor; + exports2.defaultUnknownHandler = leven_1.levenUnknownHandler; + exports2.defaultInvalidHandler = invalid_1.commonInvalidHandler; + exports2.defaultDeprecatedHandler = common_1.commonDeprecatedHandler; + } +}); +var require_normalize = __commonJS2({ + "node_modules/vnopts/lib/normalize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var defaults_1 = require_defaults(); + var utils_1 = require_utils(); + exports2.normalize = (options, schemas, opts) => new Normalizer(schemas, opts).normalize(options); + var Normalizer = class { + constructor(schemas, opts) { + const { + logger = console, + descriptor = defaults_1.defaultDescriptor, + unknown = defaults_1.defaultUnknownHandler, + invalid = defaults_1.defaultInvalidHandler, + deprecated = defaults_1.defaultDeprecatedHandler + } = opts || {}; + this._utils = { + descriptor, + logger: logger || { + warn: () => { + } + }, + schemas: utils_1.recordFromArray(schemas, "name"), + normalizeDefaultResult: utils_1.normalizeDefaultResult, + normalizeDeprecatedResult: utils_1.normalizeDeprecatedResult, + normalizeForwardResult: utils_1.normalizeForwardResult, + normalizeRedirectResult: utils_1.normalizeRedirectResult, + normalizeValidateResult: utils_1.normalizeValidateResult + }; + this._unknownHandler = unknown; + this._invalidHandler = invalid; + this._deprecatedHandler = deprecated; + this.cleanHistory(); + } + cleanHistory() { + this._hasDeprecationWarned = utils_1.createAutoChecklist(); + } + normalize(options) { + const normalized = {}; + const restOptionsArray = [options]; + const applyNormalization = () => { + while (restOptionsArray.length !== 0) { + const currentOptions = restOptionsArray.shift(); + const transferredOptionsArray = this._applyNormalization(currentOptions, normalized); + restOptionsArray.push(...transferredOptionsArray); + } + }; + applyNormalization(); + for (const key of Object.keys(this._utils.schemas)) { + const schema = this._utils.schemas[key]; + if (!(key in normalized)) { + const defaultResult = utils_1.normalizeDefaultResult(schema.default(this._utils)); + if ("value" in defaultResult) { + restOptionsArray.push({ + [key]: defaultResult.value + }); + } + } + } + applyNormalization(); + for (const key of Object.keys(this._utils.schemas)) { + const schema = this._utils.schemas[key]; + if (key in normalized) { + normalized[key] = schema.postprocess(normalized[key], this._utils); + } + } + return normalized; + } + _applyNormalization(options, normalized) { + const transferredOptionsArray = []; + const [knownOptionNames, unknownOptionNames] = utils_1.partition(Object.keys(options), (key) => key in this._utils.schemas); + for (const key of knownOptionNames) { + const schema = this._utils.schemas[key]; + const value = schema.preprocess(options[key], this._utils); + const validateResult = utils_1.normalizeValidateResult(schema.validate(value, this._utils), value); + if (validateResult !== true) { + const { + value: invalidValue + } = validateResult; + const errorMessageOrError = this._invalidHandler(key, invalidValue, this._utils); + throw typeof errorMessageOrError === "string" ? new Error(errorMessageOrError) : errorMessageOrError; + } + const appendTransferredOptions = ({ + from, + to + }) => { + transferredOptionsArray.push(typeof to === "string" ? { + [to]: from + } : { + [to.key]: to.value + }); + }; + const warnDeprecated = ({ + value: currentValue, + redirectTo + }) => { + const deprecatedResult = utils_1.normalizeDeprecatedResult(schema.deprecated(currentValue, this._utils), value, true); + if (deprecatedResult === false) { + return; + } + if (deprecatedResult === true) { + if (!this._hasDeprecationWarned(key)) { + this._utils.logger.warn(this._deprecatedHandler(key, redirectTo, this._utils)); + } + } else { + for (const { + value: deprecatedValue + } of deprecatedResult) { + const pair = { + key, + value: deprecatedValue + }; + if (!this._hasDeprecationWarned(pair)) { + const redirectToPair = typeof redirectTo === "string" ? { + key: redirectTo, + value: deprecatedValue + } : redirectTo; + this._utils.logger.warn(this._deprecatedHandler(pair, redirectToPair, this._utils)); + } + } + } + }; + const forwardResult = utils_1.normalizeForwardResult(schema.forward(value, this._utils), value); + forwardResult.forEach(appendTransferredOptions); + const redirectResult = utils_1.normalizeRedirectResult(schema.redirect(value, this._utils), value); + redirectResult.redirect.forEach(appendTransferredOptions); + if ("remain" in redirectResult) { + const remainingValue = redirectResult.remain; + normalized[key] = key in normalized ? schema.overlap(normalized[key], remainingValue, this._utils) : remainingValue; + warnDeprecated({ + value: remainingValue + }); + } + for (const { + from, + to + } of redirectResult.redirect) { + warnDeprecated({ + value: from, + redirectTo: to + }); + } + } + for (const key of unknownOptionNames) { + const value = options[key]; + const unknownResult = this._unknownHandler(key, value, this._utils); + if (unknownResult) { + for (const unknownKey of Object.keys(unknownResult)) { + const unknownOption = { + [unknownKey]: unknownResult[unknownKey] + }; + if (unknownKey in this._utils.schemas) { + transferredOptionsArray.push(unknownOption); + } else { + Object.assign(normalized, unknownOption); + } + } + } + } + return transferredOptionsArray; + } + }; + exports2.Normalizer = Normalizer; + } +}); +var require_lib2 = __commonJS2({ + "node_modules/vnopts/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_descriptors2(), exports2); + tslib_1.__exportStar(require_handlers(), exports2); + tslib_1.__exportStar(require_schemas(), exports2); + tslib_1.__exportStar(require_normalize(), exports2); + tslib_1.__exportStar(require_schema(), exports2); + } +}); +var require_options_normalizer = __commonJS2({ + "src/main/options-normalizer.js"(exports2, module2) { + "use strict"; + var vnopts = require_lib2(); + var getLast = require_get_last(); + var cliDescriptor = { + key: (key) => key.length === 1 ? `-${key}` : `--${key}`, + value: (value) => vnopts.apiDescriptor.value(value), + pair: ({ + key, + value + }) => value === false ? `--no-${key}` : value === true ? cliDescriptor.key(key) : value === "" ? `${cliDescriptor.key(key)} without an argument` : `${cliDescriptor.key(key)}=${value}` + }; + var getFlagSchema = ({ + colorsModule, + levenshteinDistance + }) => class FlagSchema extends vnopts.ChoiceSchema { + constructor({ + name, + flags + }) { + super({ + name, + choices: flags + }); + this._flags = [...flags].sort(); + } + preprocess(value, utils) { + if (typeof value === "string" && value.length > 0 && !this._flags.includes(value)) { + const suggestion = this._flags.find((flag) => levenshteinDistance(flag, value) < 3); + if (suggestion) { + utils.logger.warn([`Unknown flag ${colorsModule.yellow(utils.descriptor.value(value))},`, `did you mean ${colorsModule.blue(utils.descriptor.value(suggestion))}?`].join(" ")); + return suggestion; + } + } + return value; + } + expected() { + return "a flag"; + } + }; + var hasDeprecationWarned; + function normalizeOptions(options, optionInfos, { + logger = false, + isCLI = false, + passThrough = false, + colorsModule = null, + levenshteinDistance = null + } = {}) { + const unknown = !passThrough ? (key, value, options2) => { + const _options2$schemas = options2.schemas, { + _ + } = _options2$schemas, schemas2 = _objectWithoutProperties(_options2$schemas, _excluded2); + return vnopts.levenUnknownHandler(key, value, Object.assign(Object.assign({}, options2), {}, { + schemas: schemas2 + })); + } : Array.isArray(passThrough) ? (key, value) => !passThrough.includes(key) ? void 0 : { + [key]: value + } : (key, value) => ({ + [key]: value + }); + const descriptor = isCLI ? cliDescriptor : vnopts.apiDescriptor; + const schemas = optionInfosToSchemas(optionInfos, { + isCLI, + colorsModule, + levenshteinDistance + }); + const normalizer = new vnopts.Normalizer(schemas, { + logger, + unknown, + descriptor + }); + const shouldSuppressDuplicateDeprecationWarnings = logger !== false; + if (shouldSuppressDuplicateDeprecationWarnings && hasDeprecationWarned) { + normalizer._hasDeprecationWarned = hasDeprecationWarned; + } + const normalized = normalizer.normalize(options); + if (shouldSuppressDuplicateDeprecationWarnings) { + hasDeprecationWarned = normalizer._hasDeprecationWarned; + } + if (isCLI && normalized["plugin-search"] === false) { + normalized["plugin-search-dir"] = false; + } + return normalized; + } + function optionInfosToSchemas(optionInfos, { + isCLI, + colorsModule, + levenshteinDistance + }) { + const schemas = []; + if (isCLI) { + schemas.push(vnopts.AnySchema.create({ + name: "_" + })); + } + for (const optionInfo of optionInfos) { + schemas.push(optionInfoToSchema(optionInfo, { + isCLI, + optionInfos, + colorsModule, + levenshteinDistance + })); + if (optionInfo.alias && isCLI) { + schemas.push(vnopts.AliasSchema.create({ + name: optionInfo.alias, + sourceName: optionInfo.name + })); + } + } + return schemas; + } + function optionInfoToSchema(optionInfo, { + isCLI, + optionInfos, + colorsModule, + levenshteinDistance + }) { + const { + name + } = optionInfo; + if (name === "plugin-search-dir" || name === "pluginSearchDirs") { + return vnopts.AnySchema.create({ + name, + preprocess(value) { + if (value === false) { + return value; + } + value = Array.isArray(value) ? value : [value]; + return value; + }, + validate(value) { + if (value === false) { + return true; + } + return value.every((dir) => typeof dir === "string"); + }, + expected() { + return "false or paths to plugin search dir"; + } + }); + } + const parameters = { + name + }; + let SchemaConstructor; + const handlers = {}; + switch (optionInfo.type) { + case "int": + SchemaConstructor = vnopts.IntegerSchema; + if (isCLI) { + parameters.preprocess = Number; + } + break; + case "string": + SchemaConstructor = vnopts.StringSchema; + break; + case "choice": + SchemaConstructor = vnopts.ChoiceSchema; + parameters.choices = optionInfo.choices.map((choiceInfo) => typeof choiceInfo === "object" && choiceInfo.redirect ? Object.assign(Object.assign({}, choiceInfo), {}, { + redirect: { + to: { + key: optionInfo.name, + value: choiceInfo.redirect + } + } + }) : choiceInfo); + break; + case "boolean": + SchemaConstructor = vnopts.BooleanSchema; + break; + case "flag": + SchemaConstructor = getFlagSchema({ + colorsModule, + levenshteinDistance + }); + parameters.flags = optionInfos.flatMap((optionInfo2) => [optionInfo2.alias, optionInfo2.description && optionInfo2.name, optionInfo2.oppositeDescription && `no-${optionInfo2.name}`].filter(Boolean)); + break; + case "path": + SchemaConstructor = vnopts.StringSchema; + break; + default: + throw new Error(`Unexpected type ${optionInfo.type}`); + } + if (optionInfo.exception) { + parameters.validate = (value, schema, utils) => optionInfo.exception(value) || schema.validate(value, utils); + } else { + parameters.validate = (value, schema, utils) => value === void 0 || schema.validate(value, utils); + } + if (optionInfo.redirect) { + handlers.redirect = (value) => !value ? void 0 : { + to: { + key: optionInfo.redirect.option, + value: optionInfo.redirect.value + } + }; + } + if (optionInfo.deprecated) { + handlers.deprecated = true; + } + if (isCLI && !optionInfo.array) { + const originalPreprocess = parameters.preprocess || ((x) => x); + parameters.preprocess = (value, schema, utils) => schema.preprocess(originalPreprocess(Array.isArray(value) ? getLast(value) : value), utils); + } + return optionInfo.array ? vnopts.ArraySchema.create(Object.assign(Object.assign(Object.assign({}, isCLI ? { + preprocess: (v) => Array.isArray(v) ? v : [v] + } : {}), handlers), {}, { + valueSchema: SchemaConstructor.create(parameters) + })) : SchemaConstructor.create(Object.assign(Object.assign({}, parameters), handlers)); + } + function normalizeApiOptions(options, optionInfos, opts) { + return normalizeOptions(options, optionInfos, opts); + } + function normalizeCliOptions(options, optionInfos, opts) { + if (false) { + if (!opts.colorsModule) { + throw new Error("'colorsModule' option is required."); + } + if (!opts.levenshteinDistance) { + throw new Error("'levenshteinDistance' option is required."); + } + } + return normalizeOptions(options, optionInfos, Object.assign({ + isCLI: true + }, opts)); + } + module2.exports = { + normalizeApiOptions, + normalizeCliOptions + }; + } +}); +var require_loc = __commonJS2({ + "src/language-js/loc.js"(exports2, module2) { + "use strict"; + var isNonEmptyArray = require_is_non_empty_array(); + function locStart(node, opts) { + const { + ignoreDecorators + } = opts || {}; + if (!ignoreDecorators) { + const decorators = node.declaration && node.declaration.decorators || node.decorators; + if (isNonEmptyArray(decorators)) { + return locStart(decorators[0]); + } + } + return node.range ? node.range[0] : node.start; + } + function locEnd(node) { + return node.range ? node.range[1] : node.end; + } + function hasSameLocStart(nodeA, nodeB) { + const nodeAStart = locStart(nodeA); + return Number.isInteger(nodeAStart) && nodeAStart === locStart(nodeB); + } + function hasSameLocEnd(nodeA, nodeB) { + const nodeAEnd = locEnd(nodeA); + return Number.isInteger(nodeAEnd) && nodeAEnd === locEnd(nodeB); + } + function hasSameLoc(nodeA, nodeB) { + return hasSameLocStart(nodeA, nodeB) && hasSameLocEnd(nodeA, nodeB); + } + module2.exports = { + locStart, + locEnd, + hasSameLocStart, + hasSameLoc + }; + } +}); +var require_load_parser = __commonJS2({ + "src/main/load-parser.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var { + ConfigError + } = require_errors(); + var { + locStart, + locEnd + } = require_loc(); + function requireParser(parser) { + try { + return { + parse: require(path.resolve(process.cwd(), parser)), + astFormat: "estree", + locStart, + locEnd + }; + } catch { + throw new ConfigError(`Couldn't resolve parser "${parser}"`); + } + } + module2.exports = requireParser; + } +}); +var require_js_tokens = __commonJS2({ + "node_modules/js-tokens/index.js"(exports2) { + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; + exports2.matchToToken = function(match) { + var token = { + type: "invalid", + value: match[0], + closed: void 0 + }; + if (match[1]) + token.type = "string", token.closed = !!(match[3] || match[4]); + else if (match[5]) + token.type = "comment"; + else if (match[6]) + token.type = "comment", token.closed = !!match[7]; + else if (match[8]) + token.type = "regex"; + else if (match[9]) + token.type = "number"; + else if (match[10]) + token.type = "name"; + else if (match[11]) + token.type = "punctuator"; + else if (match[12]) + token.type = "whitespace"; + return token; + }; + } +}); +var require_identifier = __commonJS2({ + "node_modules/@babel/helper-validator-identifier/lib/identifier.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isIdentifierChar = isIdentifierChar; + exports2.isIdentifierName = isIdentifierName; + exports2.isIdentifierStart = isIdentifierStart; + var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; + var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F"; + var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); + var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); + nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; + var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; + var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + function isInAstralSet(code, set) { + let pos = 65536; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) + return false; + pos += set[i + 1]; + if (pos >= code) + return true; + } + return false; + } + function isIdentifierStart(code) { + if (code < 65) + return code === 36; + if (code <= 90) + return true; + if (code < 97) + return code === 95; + if (code <= 122) + return true; + if (code <= 65535) { + return code >= 170 && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); + } + function isIdentifierChar(code) { + if (code < 48) + return code === 36; + if (code < 58) + return true; + if (code < 65) + return false; + if (code <= 90) + return true; + if (code < 97) + return code === 95; + if (code <= 122) + return true; + if (code <= 65535) { + return code >= 170 && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); + } + function isIdentifierName(name) { + let isFirst = true; + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + if ((cp & 64512) === 55296 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + if ((trail & 64512) === 56320) { + cp = 65536 + ((cp & 1023) << 10) + (trail & 1023); + } + } + if (isFirst) { + isFirst = false; + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + return !isFirst; + } + } +}); +var require_keyword = __commonJS2({ + "node_modules/@babel/helper-validator-identifier/lib/keyword.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isKeyword = isKeyword; + exports2.isReservedWord = isReservedWord; + exports2.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; + exports2.isStrictBindReservedWord = isStrictBindReservedWord; + exports2.isStrictReservedWord = isStrictReservedWord; + var reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] + }; + var keywords = new Set(reservedWords.keyword); + var reservedWordsStrictSet = new Set(reservedWords.strict); + var reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; + } + function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); + } + function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); + } + function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); + } + function isKeyword(word) { + return keywords.has(word); + } + } +}); +var require_lib3 = __commonJS2({ + "node_modules/@babel/helper-validator-identifier/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + Object.defineProperty(exports2, "isIdentifierChar", { + enumerable: true, + get: function() { + return _identifier.isIdentifierChar; + } + }); + Object.defineProperty(exports2, "isIdentifierName", { + enumerable: true, + get: function() { + return _identifier.isIdentifierName; + } + }); + Object.defineProperty(exports2, "isIdentifierStart", { + enumerable: true, + get: function() { + return _identifier.isIdentifierStart; + } + }); + Object.defineProperty(exports2, "isKeyword", { + enumerable: true, + get: function() { + return _keyword.isKeyword; + } + }); + Object.defineProperty(exports2, "isReservedWord", { + enumerable: true, + get: function() { + return _keyword.isReservedWord; + } + }); + Object.defineProperty(exports2, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function() { + return _keyword.isStrictBindOnlyReservedWord; + } + }); + Object.defineProperty(exports2, "isStrictBindReservedWord", { + enumerable: true, + get: function() { + return _keyword.isStrictBindReservedWord; + } + }); + Object.defineProperty(exports2, "isStrictReservedWord", { + enumerable: true, + get: function() { + return _keyword.isStrictReservedWord; + } + }); + var _identifier = require_identifier(); + var _keyword = require_keyword(); + } +}); +var require_escape_string_regexp2 = __commonJS2({ + "node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js"(exports2, module2) { + "use strict"; + var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + module2.exports = function(str) { + if (typeof str !== "string") { + throw new TypeError("Expected a string"); + } + return str.replace(matchOperatorsRe, "\\$&"); + }; + } +}); +var require_has_flag2 = __commonJS2({ + "node_modules/@babel/highlight/node_modules/has-flag/index.js"(exports2, module2) { + "use strict"; + module2.exports = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf("--"); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); + }; + } +}); +var require_supports_color2 = __commonJS2({ + "node_modules/@babel/highlight/node_modules/supports-color/index.js"(exports2, module2) { + "use strict"; + var os = require("os"); + var hasFlag = require_has_flag2(); + var env = process.env; + var forceColor; + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) { + forceColor = false; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + forceColor = true; + } + if ("FORCE_COLOR" in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; + } + function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + const min = forceColor ? 1 : 0; + if (process.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version2 = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version2 >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + if (env.TERM === "dumb") { + return min; + } + return min; + } + function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); + } + module2.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) + }; + } +}); +var require_templates2 = __commonJS2({ + "node_modules/@babel/highlight/node_modules/chalk/templates.js"(exports2, module2) { + "use strict"; + var TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; + var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; + var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; + var ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; + var ESCAPES = /* @__PURE__ */ new Map([["n", "\n"], ["r", "\r"], ["t", " "], ["b", "\b"], ["f", "\f"], ["v", "\v"], ["0", "\0"], ["\\", "\\"], ["e", "\x1B"], ["a", "\x07"]]); + function unescape(c) { + if (c[0] === "u" && c.length === 5 || c[0] === "x" && c.length === 3) { + return String.fromCharCode(parseInt(c.slice(1), 16)); + } + return ESCAPES.get(c) || c; + } + function parseArguments(name, args) { + const results = []; + const chunks = args.trim().split(/\s*,\s*/g); + let matches; + for (const chunk of chunks) { + if (!isNaN(chunk)) { + results.push(Number(chunk)); + } else if (matches = chunk.match(STRING_REGEX)) { + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } + return results; + } + function parseStyle(style) { + STYLE_REGEX.lastIndex = 0; + const results = []; + let matches; + while ((matches = STYLE_REGEX.exec(style)) !== null) { + const name = matches[1]; + if (matches[2]) { + const args = parseArguments(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); + } + } + return results; + } + function buildStyle(chalk, styles) { + const enabled = {}; + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } + let current = chalk; + for (const styleName of Object.keys(enabled)) { + if (Array.isArray(enabled[styleName])) { + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } + if (enabled[styleName].length > 0) { + current = current[styleName].apply(current, enabled[styleName]); + } else { + current = current[styleName]; + } + } + } + return current; + } + module2.exports = (chalk, tmp) => { + const styles = []; + const chunks = []; + let chunk = []; + tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + if (escapeChar) { + chunk.push(unescape(escapeChar)); + } else if (style) { + const str = chunk.join(""); + chunk = []; + chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + styles.push({ + inverse, + styles: parseStyle(style) + }); + } else if (close) { + if (styles.length === 0) { + throw new Error("Found extraneous } in Chalk template literal"); + } + chunks.push(buildStyle(chalk, styles)(chunk.join(""))); + chunk = []; + styles.pop(); + } else { + chunk.push(chr); + } + }); + chunks.push(chunk.join("")); + if (styles.length > 0) { + const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`; + throw new Error(errMsg); + } + return chunks.join(""); + }; + } +}); +var require_chalk2 = __commonJS2({ + "node_modules/@babel/highlight/node_modules/chalk/index.js"(exports2, module2) { + "use strict"; + var escapeStringRegexp2 = require_escape_string_regexp2(); + var ansiStyles = require_ansi_styles(); + var stdoutColor = require_supports_color2().stdout; + var template = require_templates2(); + var isSimpleWindowsTerm = process.platform === "win32" && !(process.env.TERM || "").toLowerCase().startsWith("xterm"); + var levelMapping = ["ansi", "ansi", "ansi256", "ansi16m"]; + var skipModels = /* @__PURE__ */ new Set(["gray"]); + var styles = /* @__PURE__ */ Object.create(null); + function applyOptions(obj, options) { + options = options || {}; + const scLevel = stdoutColor ? stdoutColor.level : 0; + obj.level = options.level === void 0 ? scLevel : options.level; + obj.enabled = "enabled" in options ? options.enabled : obj.level > 0; + } + function Chalk(options) { + if (!this || !(this instanceof Chalk) || this.template) { + const chalk = {}; + applyOptions(chalk, options); + chalk.template = function() { + const args = [].slice.call(arguments); + return chalkTag.apply(null, [chalk.template].concat(args)); + }; + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + chalk.template.constructor = Chalk; + return chalk.template; + } + applyOptions(this, options); + } + if (isSimpleWindowsTerm) { + ansiStyles.blue.open = "\x1B[94m"; + } + for (const key of Object.keys(ansiStyles)) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp2(ansiStyles[key].close), "g"); + styles[key] = { + get() { + const codes = ansiStyles[key]; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + } + }; + } + styles.visible = { + get() { + return build.call(this, this._styles || [], true, "visible"); + } + }; + ansiStyles.color.closeRe = new RegExp(escapeStringRegexp2(ansiStyles.color.close), "g"); + for (const model of Object.keys(ansiStyles.color.ansi)) { + if (skipModels.has(model)) { + continue; + } + styles[model] = { + get() { + const level = this.level; + return function() { + const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.color.close, + closeRe: ansiStyles.color.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; + } + ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp2(ansiStyles.bgColor.close), "g"); + for (const model of Object.keys(ansiStyles.bgColor.ansi)) { + if (skipModels.has(model)) { + continue; + } + const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const level = this.level; + return function() { + const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.bgColor.close, + closeRe: ansiStyles.bgColor.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; + } + var proto = Object.defineProperties(() => { + }, styles); + function build(_styles, _empty, key) { + const builder = function() { + return applyStyle.apply(builder, arguments); + }; + builder._styles = _styles; + builder._empty = _empty; + const self2 = this; + Object.defineProperty(builder, "level", { + enumerable: true, + get() { + return self2.level; + }, + set(level) { + self2.level = level; + } + }); + Object.defineProperty(builder, "enabled", { + enumerable: true, + get() { + return self2.enabled; + }, + set(enabled) { + self2.enabled = enabled; + } + }); + builder.hasGrey = this.hasGrey || key === "gray" || key === "grey"; + builder.__proto__ = proto; + return builder; + } + function applyStyle() { + const args = arguments; + const argsLen = args.length; + let str = String(arguments[0]); + if (argsLen === 0) { + return ""; + } + if (argsLen > 1) { + for (let a = 1; a < argsLen; a++) { + str += " " + args[a]; + } + } + if (!this.enabled || this.level <= 0 || !str) { + return this._empty ? "" : str; + } + const originalDim = ansiStyles.dim.open; + if (isSimpleWindowsTerm && this.hasGrey) { + ansiStyles.dim.open = ""; + } + for (const code of this._styles.slice().reverse()) { + str = code.open + str.replace(code.closeRe, code.open) + code.close; + str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + } + ansiStyles.dim.open = originalDim; + return str; + } + function chalkTag(chalk, strings) { + if (!Array.isArray(strings)) { + return [].slice.call(arguments, 1).join(" "); + } + const args = [].slice.call(arguments, 2); + const parts = [strings.raw[0]]; + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, "\\$&")); + parts.push(String(strings.raw[i])); + } + return template(chalk, parts.join("")); + } + Object.defineProperties(Chalk.prototype, styles); + module2.exports = Chalk(); + module2.exports.supportsColor = stdoutColor; + module2.exports.default = module2.exports; + } +}); +var require_lib4 = __commonJS2({ + "node_modules/@babel/highlight/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = highlight; + exports2.getChalk = getChalk; + exports2.shouldHighlight = shouldHighlight; + var _jsTokens = require_js_tokens(); + var _helperValidatorIdentifier = require_lib3(); + var _chalk = require_chalk2(); + var sometimesKeywords = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]); + function getDefs(chalk) { + return { + keyword: chalk.cyan, + capitalized: chalk.yellow, + jsxIdentifier: chalk.yellow, + punctuator: chalk.yellow, + number: chalk.magenta, + string: chalk.green, + regex: chalk.magenta, + comment: chalk.grey, + invalid: chalk.white.bgRed.bold + }; + } + var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + var BRACKET = /^[()[\]{}]$/; + var tokenize; + { + const JSX_TAG = /^[a-z][\w-]*$/i; + const getTokenType = function(token, offset, text) { + if (token.type === "name") { + if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " colorize(str)).join("\n"); + } else { + highlighted += value; + } + } + return highlighted; + } + function shouldHighlight(options) { + return !!_chalk.supportsColor || options.forceColor; + } + function getChalk(options) { + return options.forceColor ? new _chalk.constructor({ + enabled: true, + level: 1 + }) : _chalk; + } + function highlight(code, options = {}) { + if (code !== "" && shouldHighlight(options)) { + const chalk = getChalk(options); + const defs = getDefs(chalk); + return highlightTokens(defs, code); + } else { + return code; + } + } + } +}); +var require_lib5 = __commonJS2({ + "node_modules/@babel/code-frame/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.codeFrameColumns = codeFrameColumns; + exports2.default = _default; + var _highlight = require_lib4(); + var deprecationWarningShown = false; + function getDefs(chalk) { + return { + gutter: chalk.grey, + marker: chalk.red.bold, + message: chalk.red.bold + }; + } + var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + if (startLine === -1) { + start = 0; + } + if (endLine === -1) { + end = source.length; + } + const lineDiff = endLine - startLine; + const markerLines = {}; + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + return { + start, + end, + markerLines + }; + } + function codeFrameColumns(rawLines, loc, opts = {}) { + const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); + const chalk = (0, _highlight.getChalk)(opts); + const defs = getDefs(chalk); + const maybeHighlight = (chalkFn, string) => { + return highlighted ? chalkFn(string) : string; + }; + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; + let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + if (hasMarker) { + let markerLine = ""; + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + if (lastMarkerLine && opts.message) { + markerLine += " " + maybeHighlight(defs.message, opts.message); + } + } + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message} +${frame}`; + } + if (highlighted) { + return chalk.reset(frame); + } else { + return frame; + } + } + function _default(rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); + } + } +}); +var require_parser = __commonJS2({ + "src/main/parser.js"(exports2, module2) { + "use strict"; + var { + ConfigError + } = require_errors(); + var jsLoc = require_loc(); + var loadParser = require_load_parser(); + var { + locStart, + locEnd + } = jsLoc; + var ownNames = Object.getOwnPropertyNames; + var ownDescriptor = Object.getOwnPropertyDescriptor; + function getParsers(options) { + const parsers = {}; + for (const plugin of options.plugins) { + if (!plugin.parsers) { + continue; + } + for (const name of ownNames(plugin.parsers)) { + Object.defineProperty(parsers, name, ownDescriptor(plugin.parsers, name)); + } + } + return parsers; + } + function resolveParser(opts, parsers = getParsers(opts)) { + if (typeof opts.parser === "function") { + return { + parse: opts.parser, + astFormat: "estree", + locStart, + locEnd + }; + } + if (typeof opts.parser === "string") { + if (Object.prototype.hasOwnProperty.call(parsers, opts.parser)) { + return parsers[opts.parser]; + } + if (false) { + throw new ConfigError(`Couldn't resolve parser "${opts.parser}". Parsers must be explicitly added to the standalone bundle.`); + } + return loadParser(opts.parser); + } + } + function parse(text, opts) { + const parsers = getParsers(opts); + const parsersForCustomParserApi = Object.defineProperties({}, Object.fromEntries(Object.keys(parsers).map((parserName) => [parserName, { + enumerable: true, + get() { + return parsers[parserName].parse; + } + }]))); + const parser = resolveParser(opts, parsers); + try { + if (parser.preprocess) { + text = parser.preprocess(text, opts); + } + return { + text, + ast: parser.parse(text, parsersForCustomParserApi, opts) + }; + } catch (error) { + const { + loc + } = error; + if (loc) { + const { + codeFrameColumns + } = require_lib5(); + error.codeFrame = codeFrameColumns(text, loc, { + highlightCode: true + }); + error.message += "\n" + error.codeFrame; + throw error; + } + throw error.stack; + } + } + module2.exports = { + parse, + resolveParser + }; + } +}); +var require_readlines = __commonJS2({ + "node_modules/n-readlines/readlines.js"(exports2, module2) { + "use strict"; + var fs = require("fs"); + var LineByLine = class { + constructor(file, options) { + options = options || {}; + if (!options.readChunk) + options.readChunk = 1024; + if (!options.newLineCharacter) { + options.newLineCharacter = 10; + } else { + options.newLineCharacter = options.newLineCharacter.charCodeAt(0); + } + if (typeof file === "number") { + this.fd = file; + } else { + this.fd = fs.openSync(file, "r"); + } + this.options = options; + this.newLineCharacter = options.newLineCharacter; + this.reset(); + } + _searchInBuffer(buffer, hexNeedle) { + let found = -1; + for (let i = 0; i <= buffer.length; i++) { + let b_byte = buffer[i]; + if (b_byte === hexNeedle) { + found = i; + break; + } + } + return found; + } + reset() { + this.eofReached = false; + this.linesCache = []; + this.fdPosition = 0; + } + close() { + fs.closeSync(this.fd); + this.fd = null; + } + _extractLines(buffer) { + let line; + const lines = []; + let bufferPosition = 0; + let lastNewLineBufferPosition = 0; + while (true) { + let bufferPositionValue = buffer[bufferPosition++]; + if (bufferPositionValue === this.newLineCharacter) { + line = buffer.slice(lastNewLineBufferPosition, bufferPosition); + lines.push(line); + lastNewLineBufferPosition = bufferPosition; + } else if (bufferPositionValue === void 0) { + break; + } + } + let leftovers = buffer.slice(lastNewLineBufferPosition, bufferPosition); + if (leftovers.length) { + lines.push(leftovers); + } + return lines; + } + _readChunk(lineLeftovers) { + let totalBytesRead = 0; + let bytesRead; + const buffers = []; + do { + const readBuffer = new Buffer(this.options.readChunk); + bytesRead = fs.readSync(this.fd, readBuffer, 0, this.options.readChunk, this.fdPosition); + totalBytesRead = totalBytesRead + bytesRead; + this.fdPosition = this.fdPosition + bytesRead; + buffers.push(readBuffer); + } while (bytesRead && this._searchInBuffer(buffers[buffers.length - 1], this.options.newLineCharacter) === -1); + let bufferData = Buffer.concat(buffers); + if (bytesRead < this.options.readChunk) { + this.eofReached = true; + bufferData = bufferData.slice(0, totalBytesRead); + } + if (totalBytesRead) { + this.linesCache = this._extractLines(bufferData); + if (lineLeftovers) { + this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]); + } + } + return totalBytesRead; + } + next() { + if (!this.fd) + return false; + let line = false; + if (this.eofReached && this.linesCache.length === 0) { + return line; + } + let bytesRead; + if (!this.linesCache.length) { + bytesRead = this._readChunk(); + } + if (this.linesCache.length) { + line = this.linesCache.shift(); + const lastLineCharacter = line[line.length - 1]; + if (lastLineCharacter !== this.newLineCharacter) { + bytesRead = this._readChunk(line); + if (bytesRead) { + line = this.linesCache.shift(); + } + } + } + if (this.eofReached && this.linesCache.length === 0) { + this.close(); + } + if (line && line[line.length - 1] === this.newLineCharacter) { + line = line.slice(0, line.length - 1); + } + return line; + } + }; + module2.exports = LineByLine; + } +}); +var require_get_interpreter = __commonJS2({ + "src/utils/get-interpreter.js"(exports2, module2) { + "use strict"; + var fs = require("fs"); + var readlines = require_readlines(); + function getInterpreter(filepath) { + if (typeof filepath !== "string") { + return ""; + } + let fd; + try { + fd = fs.openSync(filepath, "r"); + } catch { + return ""; + } + try { + const liner = new readlines(fd); + const firstLine = liner.next().toString("utf8"); + const m1 = firstLine.match(/^#!\/(?:usr\/)?bin\/env\s+(\S+)/); + if (m1) { + return m1[1]; + } + const m2 = firstLine.match(/^#!\/(?:usr\/(?:local\/)?)?bin\/(\S+)/); + if (m2) { + return m2[1]; + } + return ""; + } catch { + return ""; + } finally { + try { + fs.closeSync(fd); + } catch { + } + } + } + module2.exports = getInterpreter; + } +}); +var require_options = __commonJS2({ + "src/main/options.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var { + UndefinedParserError + } = require_errors(); + var { + getSupportInfo: getSupportInfo2 + } = require_support(); + var normalizer = require_options_normalizer(); + var { + resolveParser + } = require_parser(); + var hiddenDefaults = { + astFormat: "estree", + printer: {}, + originalText: void 0, + locStart: null, + locEnd: null + }; + function normalize(options, opts = {}) { + const rawOptions = Object.assign({}, options); + const supportOptions = getSupportInfo2({ + plugins: options.plugins, + showUnreleased: true, + showDeprecated: true + }).options; + const defaults = Object.assign(Object.assign({}, hiddenDefaults), Object.fromEntries(supportOptions.filter((optionInfo) => optionInfo.default !== void 0).map((option) => [option.name, option.default]))); + if (!rawOptions.parser) { + if (!rawOptions.filepath) { + const logger = opts.logger || console; + logger.warn("No parser and no filepath given, using 'babel' the parser now but this will throw an error in the future. Please specify a parser or a filepath so one can be inferred."); + rawOptions.parser = "babel"; + } else { + rawOptions.parser = inferParser(rawOptions.filepath, rawOptions.plugins); + if (!rawOptions.parser) { + throw new UndefinedParserError(`No parser could be inferred for file: ${rawOptions.filepath}`); + } + } + } + const parser = resolveParser(normalizer.normalizeApiOptions(rawOptions, [supportOptions.find((x) => x.name === "parser")], { + passThrough: true, + logger: false + })); + rawOptions.astFormat = parser.astFormat; + rawOptions.locEnd = parser.locEnd; + rawOptions.locStart = parser.locStart; + const plugin = getPlugin(rawOptions); + rawOptions.printer = plugin.printers[rawOptions.astFormat]; + const pluginDefaults = Object.fromEntries(supportOptions.filter((optionInfo) => optionInfo.pluginDefaults && optionInfo.pluginDefaults[plugin.name] !== void 0).map((optionInfo) => [optionInfo.name, optionInfo.pluginDefaults[plugin.name]])); + const mixedDefaults = Object.assign(Object.assign({}, defaults), pluginDefaults); + for (const [k, value] of Object.entries(mixedDefaults)) { + if (rawOptions[k] === null || rawOptions[k] === void 0) { + rawOptions[k] = value; + } + } + if (rawOptions.parser === "json") { + rawOptions.trailingComma = "none"; + } + return normalizer.normalizeApiOptions(rawOptions, supportOptions, Object.assign({ + passThrough: Object.keys(hiddenDefaults) + }, opts)); + } + function getPlugin(options) { + const { + astFormat + } = options; + if (!astFormat) { + throw new Error("getPlugin() requires astFormat to be set"); + } + const printerPlugin = options.plugins.find((plugin) => plugin.printers && plugin.printers[astFormat]); + if (!printerPlugin) { + throw new Error(`Couldn't find plugin for AST format "${astFormat}"`); + } + return printerPlugin; + } + function inferParser(filepath, plugins2) { + const filename = path.basename(filepath).toLowerCase(); + const languages = getSupportInfo2({ + plugins: plugins2 + }).languages.filter((language2) => language2.since !== null); + let language = languages.find((language2) => language2.extensions && language2.extensions.some((extension) => filename.endsWith(extension)) || language2.filenames && language2.filenames.some((name) => name.toLowerCase() === filename)); + if (!language && !filename.includes(".")) { + const getInterpreter = require_get_interpreter(); + const interpreter = getInterpreter(filepath); + language = languages.find((language2) => language2.interpreters && language2.interpreters.includes(interpreter)); + } + return language && language.parsers[0]; + } + module2.exports = { + normalize, + hiddenDefaults, + inferParser + }; + } +}); +var require_massage_ast = __commonJS2({ + "src/main/massage-ast.js"(exports2, module2) { + "use strict"; + function massageAST(ast, options, parent) { + if (Array.isArray(ast)) { + return ast.map((e) => massageAST(e, options, parent)).filter(Boolean); + } + if (!ast || typeof ast !== "object") { + return ast; + } + const cleanFunction = options.printer.massageAstNode; + let ignoredProperties; + if (cleanFunction && cleanFunction.ignoredProperties) { + ignoredProperties = cleanFunction.ignoredProperties; + } else { + ignoredProperties = /* @__PURE__ */ new Set(); + } + const newObj = {}; + for (const [key, value] of Object.entries(ast)) { + if (!ignoredProperties.has(key) && typeof value !== "function") { + newObj[key] = massageAST(value, options, ast); + } + } + if (cleanFunction) { + const result = cleanFunction(ast, newObj, parent); + if (result === null) { + return; + } + if (result) { + return result; + } + } + return newObj; + } + module2.exports = massageAST; + } +}); +var require_comments = __commonJS2({ + "src/main/comments.js"(exports2, module2) { + "use strict"; + var assert = require("assert"); + var { + builders: { + line, + hardline, + breakParent, + indent, + lineSuffix, + join, + cursor + } + } = require("./doc.js"); + var { + hasNewline, + skipNewline, + skipSpaces, + isPreviousLineEmpty, + addLeadingComment, + addDanglingComment, + addTrailingComment + } = require_util(); + var childNodesCache = /* @__PURE__ */ new WeakMap(); + function getSortedChildNodes(node, options, resultArray) { + if (!node) { + return; + } + const { + printer, + locStart, + locEnd + } = options; + if (resultArray) { + if (printer.canAttachComment && printer.canAttachComment(node)) { + let i; + for (i = resultArray.length - 1; i >= 0; --i) { + if (locStart(resultArray[i]) <= locStart(node) && locEnd(resultArray[i]) <= locEnd(node)) { + break; + } + } + resultArray.splice(i + 1, 0, node); + return; + } + } else if (childNodesCache.has(node)) { + return childNodesCache.get(node); + } + const childNodes = printer.getCommentChildNodes && printer.getCommentChildNodes(node, options) || typeof node === "object" && Object.entries(node).filter(([key]) => key !== "enclosingNode" && key !== "precedingNode" && key !== "followingNode" && key !== "tokens" && key !== "comments" && key !== "parent").map(([, value]) => value); + if (!childNodes) { + return; + } + if (!resultArray) { + resultArray = []; + childNodesCache.set(node, resultArray); + } + for (const childNode of childNodes) { + getSortedChildNodes(childNode, options, resultArray); + } + return resultArray; + } + function decorateComment(node, comment, options, enclosingNode) { + const { + locStart, + locEnd + } = options; + const commentStart = locStart(comment); + const commentEnd = locEnd(comment); + const childNodes = getSortedChildNodes(node, options); + let precedingNode; + let followingNode; + let left = 0; + let right = childNodes.length; + while (left < right) { + const middle = left + right >> 1; + const child = childNodes[middle]; + const start = locStart(child); + const end = locEnd(child); + if (start <= commentStart && commentEnd <= end) { + return decorateComment(child, comment, options, child); + } + if (end <= commentStart) { + precedingNode = child; + left = middle + 1; + continue; + } + if (commentEnd <= start) { + followingNode = child; + right = middle; + continue; + } + throw new Error("Comment location overlaps with node location"); + } + if (enclosingNode && enclosingNode.type === "TemplateLiteral") { + const { + quasis + } = enclosingNode; + const commentIndex = findExpressionIndexForComment(quasis, comment, options); + if (precedingNode && findExpressionIndexForComment(quasis, precedingNode, options) !== commentIndex) { + precedingNode = null; + } + if (followingNode && findExpressionIndexForComment(quasis, followingNode, options) !== commentIndex) { + followingNode = null; + } + } + return { + enclosingNode, + precedingNode, + followingNode + }; + } + var returnFalse = () => false; + function attach(comments, ast, text, options) { + if (!Array.isArray(comments)) { + return; + } + const tiesToBreak = []; + const { + locStart, + locEnd, + printer: { + handleComments = {} + } + } = options; + const { + avoidAstMutation, + ownLine: handleOwnLineComment = returnFalse, + endOfLine: handleEndOfLineComment = returnFalse, + remaining: handleRemainingComment = returnFalse + } = handleComments; + const decoratedComments = comments.map((comment, index) => Object.assign(Object.assign({}, decorateComment(ast, comment, options)), {}, { + comment, + text, + options, + ast, + isLastComment: comments.length - 1 === index + })); + for (const [index, context] of decoratedComments.entries()) { + const { + comment, + precedingNode, + enclosingNode, + followingNode, + text: text2, + options: options2, + ast: ast2, + isLastComment + } = context; + if (options2.parser === "json" || options2.parser === "json5" || options2.parser === "__js_expression" || options2.parser === "__vue_expression" || options2.parser === "__vue_ts_expression") { + if (locStart(comment) - locStart(ast2) <= 0) { + addLeadingComment(ast2, comment); + continue; + } + if (locEnd(comment) - locEnd(ast2) >= 0) { + addTrailingComment(ast2, comment); + continue; + } + } + let args; + if (avoidAstMutation) { + args = [context]; + } else { + comment.enclosingNode = enclosingNode; + comment.precedingNode = precedingNode; + comment.followingNode = followingNode; + args = [comment, text2, options2, ast2, isLastComment]; + } + if (isOwnLineComment(text2, options2, decoratedComments, index)) { + comment.placement = "ownLine"; + if (handleOwnLineComment(...args)) { + } else if (followingNode) { + addLeadingComment(followingNode, comment); + } else if (precedingNode) { + addTrailingComment(precedingNode, comment); + } else if (enclosingNode) { + addDanglingComment(enclosingNode, comment); + } else { + addDanglingComment(ast2, comment); + } + } else if (isEndOfLineComment(text2, options2, decoratedComments, index)) { + comment.placement = "endOfLine"; + if (handleEndOfLineComment(...args)) { + } else if (precedingNode) { + addTrailingComment(precedingNode, comment); + } else if (followingNode) { + addLeadingComment(followingNode, comment); + } else if (enclosingNode) { + addDanglingComment(enclosingNode, comment); + } else { + addDanglingComment(ast2, comment); + } + } else { + comment.placement = "remaining"; + if (handleRemainingComment(...args)) { + } else if (precedingNode && followingNode) { + const tieCount = tiesToBreak.length; + if (tieCount > 0) { + const lastTie = tiesToBreak[tieCount - 1]; + if (lastTie.followingNode !== followingNode) { + breakTies(tiesToBreak, text2, options2); + } + } + tiesToBreak.push(context); + } else if (precedingNode) { + addTrailingComment(precedingNode, comment); + } else if (followingNode) { + addLeadingComment(followingNode, comment); + } else if (enclosingNode) { + addDanglingComment(enclosingNode, comment); + } else { + addDanglingComment(ast2, comment); + } + } + } + breakTies(tiesToBreak, text, options); + if (!avoidAstMutation) { + for (const comment of comments) { + delete comment.precedingNode; + delete comment.enclosingNode; + delete comment.followingNode; + } + } + } + var isAllEmptyAndNoLineBreak = (text) => !/[\S\n\u2028\u2029]/.test(text); + function isOwnLineComment(text, options, decoratedComments, commentIndex) { + const { + comment, + precedingNode + } = decoratedComments[commentIndex]; + const { + locStart, + locEnd + } = options; + let start = locStart(comment); + if (precedingNode) { + for (let index = commentIndex - 1; index >= 0; index--) { + const { + comment: comment2, + precedingNode: currentCommentPrecedingNode + } = decoratedComments[index]; + if (currentCommentPrecedingNode !== precedingNode || !isAllEmptyAndNoLineBreak(text.slice(locEnd(comment2), start))) { + break; + } + start = locStart(comment2); + } + } + return hasNewline(text, start, { + backwards: true + }); + } + function isEndOfLineComment(text, options, decoratedComments, commentIndex) { + const { + comment, + followingNode + } = decoratedComments[commentIndex]; + const { + locStart, + locEnd + } = options; + let end = locEnd(comment); + if (followingNode) { + for (let index = commentIndex + 1; index < decoratedComments.length; index++) { + const { + comment: comment2, + followingNode: currentCommentFollowingNode + } = decoratedComments[index]; + if (currentCommentFollowingNode !== followingNode || !isAllEmptyAndNoLineBreak(text.slice(end, locStart(comment2)))) { + break; + } + end = locEnd(comment2); + } + } + return hasNewline(text, end); + } + function breakTies(tiesToBreak, text, options) { + const tieCount = tiesToBreak.length; + if (tieCount === 0) { + return; + } + const { + precedingNode, + followingNode, + enclosingNode + } = tiesToBreak[0]; + const gapRegExp = options.printer.getGapRegex && options.printer.getGapRegex(enclosingNode) || /^[\s(]*$/; + let gapEndPos = options.locStart(followingNode); + let indexOfFirstLeadingComment; + for (indexOfFirstLeadingComment = tieCount; indexOfFirstLeadingComment > 0; --indexOfFirstLeadingComment) { + const { + comment, + precedingNode: currentCommentPrecedingNode, + followingNode: currentCommentFollowingNode + } = tiesToBreak[indexOfFirstLeadingComment - 1]; + assert.strictEqual(currentCommentPrecedingNode, precedingNode); + assert.strictEqual(currentCommentFollowingNode, followingNode); + const gap = text.slice(options.locEnd(comment), gapEndPos); + if (gapRegExp.test(gap)) { + gapEndPos = options.locStart(comment); + } else { + break; + } + } + for (const [i, { + comment + }] of tiesToBreak.entries()) { + if (i < indexOfFirstLeadingComment) { + addTrailingComment(precedingNode, comment); + } else { + addLeadingComment(followingNode, comment); + } + } + for (const node of [precedingNode, followingNode]) { + if (node.comments && node.comments.length > 1) { + node.comments.sort((a, b) => options.locStart(a) - options.locStart(b)); + } + } + tiesToBreak.length = 0; + } + function printComment(path, options) { + const comment = path.getValue(); + comment.printed = true; + return options.printer.printComment(path, options); + } + function findExpressionIndexForComment(quasis, comment, options) { + const startPos = options.locStart(comment) - 1; + for (let i = 1; i < quasis.length; ++i) { + if (startPos < options.locStart(quasis[i])) { + return i - 1; + } + } + return 0; + } + function printLeadingComment(path, options) { + const comment = path.getValue(); + const parts = [printComment(path, options)]; + const { + printer, + originalText, + locStart, + locEnd + } = options; + const isBlock = printer.isBlockComment && printer.isBlockComment(comment); + if (isBlock) { + const lineBreak = hasNewline(originalText, locEnd(comment)) ? hasNewline(originalText, locStart(comment), { + backwards: true + }) ? hardline : line : " "; + parts.push(lineBreak); + } else { + parts.push(hardline); + } + const index = skipNewline(originalText, skipSpaces(originalText, locEnd(comment))); + if (index !== false && hasNewline(originalText, index)) { + parts.push(hardline); + } + return parts; + } + function printTrailingComment(path, options) { + const comment = path.getValue(); + const printed = printComment(path, options); + const { + printer, + originalText, + locStart + } = options; + const isBlock = printer.isBlockComment && printer.isBlockComment(comment); + if (hasNewline(originalText, locStart(comment), { + backwards: true + })) { + const isLineBeforeEmpty = isPreviousLineEmpty(originalText, comment, locStart); + return lineSuffix([hardline, isLineBeforeEmpty ? hardline : "", printed]); + } + let parts = [" ", printed]; + if (!isBlock) { + parts = [lineSuffix(parts), breakParent]; + } + return parts; + } + function printDanglingComments(path, options, sameIndent, filter) { + const parts = []; + const node = path.getValue(); + if (!node || !node.comments) { + return ""; + } + path.each(() => { + const comment = path.getValue(); + if (!comment.leading && !comment.trailing && (!filter || filter(comment))) { + parts.push(printComment(path, options)); + } + }, "comments"); + if (parts.length === 0) { + return ""; + } + if (sameIndent) { + return join(hardline, parts); + } + return indent([hardline, join(hardline, parts)]); + } + function printCommentsSeparately(path, options, ignored) { + const value = path.getValue(); + if (!value) { + return {}; + } + let comments = value.comments || []; + if (ignored) { + comments = comments.filter((comment) => !ignored.has(comment)); + } + const isCursorNode = value === options.cursorNode; + if (comments.length === 0) { + const maybeCursor = isCursorNode ? cursor : ""; + return { + leading: maybeCursor, + trailing: maybeCursor + }; + } + const leadingParts = []; + const trailingParts = []; + path.each(() => { + const comment = path.getValue(); + if (ignored && ignored.has(comment)) { + return; + } + const { + leading, + trailing + } = comment; + if (leading) { + leadingParts.push(printLeadingComment(path, options)); + } else if (trailing) { + trailingParts.push(printTrailingComment(path, options)); + } + }, "comments"); + if (isCursorNode) { + leadingParts.unshift(cursor); + trailingParts.push(cursor); + } + return { + leading: leadingParts, + trailing: trailingParts + }; + } + function printComments(path, doc2, options, ignored) { + const { + leading, + trailing + } = printCommentsSeparately(path, options, ignored); + if (!leading && !trailing) { + return doc2; + } + return [leading, doc2, trailing]; + } + function ensureAllCommentsPrinted(astComments) { + if (!astComments) { + return; + } + for (const comment of astComments) { + if (!comment.printed) { + throw new Error('Comment "' + comment.value.trim() + '" was not printed. Please report this error!'); + } + delete comment.printed; + } + } + module2.exports = { + attach, + printComments, + printCommentsSeparately, + printDanglingComments, + getSortedChildNodes, + ensureAllCommentsPrinted + }; + } +}); +var require_ast_path = __commonJS2({ + "src/common/ast-path.js"(exports2, module2) { + "use strict"; + var getLast = require_get_last(); + function getNodeHelper(path, count) { + const stackIndex = getNodeStackIndexHelper(path.stack, count); + return stackIndex === -1 ? null : path.stack[stackIndex]; + } + function getNodeStackIndexHelper(stack, count) { + for (let i = stack.length - 1; i >= 0; i -= 2) { + const value = stack[i]; + if (value && !Array.isArray(value) && --count < 0) { + return i; + } + } + return -1; + } + var AstPath = class { + constructor(value) { + this.stack = [value]; + } + getName() { + const { + stack + } = this; + const { + length + } = stack; + if (length > 1) { + return stack[length - 2]; + } + return null; + } + getValue() { + return getLast(this.stack); + } + getNode(count = 0) { + return getNodeHelper(this, count); + } + getParentNode(count = 0) { + return getNodeHelper(this, count + 1); + } + call(callback, ...names) { + const { + stack + } = this; + const { + length + } = stack; + let value = getLast(stack); + for (const name of names) { + value = value[name]; + stack.push(name, value); + } + const result = callback(this); + stack.length = length; + return result; + } + callParent(callback, count = 0) { + const stackIndex = getNodeStackIndexHelper(this.stack, count + 1); + const parentValues = this.stack.splice(stackIndex + 1); + const result = callback(this); + this.stack.push(...parentValues); + return result; + } + each(callback, ...names) { + const { + stack + } = this; + const { + length + } = stack; + let value = getLast(stack); + for (const name of names) { + value = value[name]; + stack.push(name, value); + } + for (let i = 0; i < value.length; ++i) { + stack.push(i, value[i]); + callback(this, i, value); + stack.length -= 2; + } + stack.length = length; + } + map(callback, ...names) { + const result = []; + this.each((path, index, value) => { + result[index] = callback(path, index, value); + }, ...names); + return result; + } + try(callback) { + const { + stack + } = this; + const stackBackup = [...stack]; + try { + return callback(); + } finally { + stack.length = 0; + stack.push(...stackBackup); + } + } + match(...predicates) { + let stackPointer = this.stack.length - 1; + let name = null; + let node = this.stack[stackPointer--]; + for (const predicate of predicates) { + if (node === void 0) { + return false; + } + let number = null; + if (typeof name === "number") { + number = name; + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; + } + if (predicate && !predicate(node, name, number)) { + return false; + } + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; + } + return true; + } + findAncestor(predicate) { + let stackPointer = this.stack.length - 1; + let name = null; + let node = this.stack[stackPointer--]; + while (node) { + let number = null; + if (typeof name === "number") { + number = name; + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; + } + if (name !== null && predicate(node, name, number)) { + return node; + } + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; + } + } + }; + module2.exports = AstPath; + } +}); +var require_multiparser = __commonJS2({ + "src/main/multiparser.js"(exports2, module2) { + "use strict"; + var { + utils: { + stripTrailingHardline + } + } = require("./doc.js"); + var { + normalize + } = require_options(); + var comments = require_comments(); + function printSubtree(path, print, options, printAstToDoc) { + if (options.printer.embed && options.embeddedLanguageFormatting === "auto") { + return options.printer.embed(path, print, (text, partialNextOptions, textToDocOptions) => textToDoc(text, partialNextOptions, options, printAstToDoc, textToDocOptions), options); + } + } + function textToDoc(text, partialNextOptions, parentOptions, printAstToDoc, { + stripTrailingHardline: shouldStripTrailingHardline = false + } = {}) { + const nextOptions = normalize(Object.assign(Object.assign(Object.assign({}, parentOptions), partialNextOptions), {}, { + parentParser: parentOptions.parser, + originalText: text + }), { + passThrough: true + }); + const result = require_parser().parse(text, nextOptions); + const { + ast + } = result; + text = result.text; + const astComments = ast.comments; + delete ast.comments; + comments.attach(astComments, ast, text, nextOptions); + nextOptions[Symbol.for("comments")] = astComments || []; + nextOptions[Symbol.for("tokens")] = ast.tokens || []; + const doc2 = printAstToDoc(ast, nextOptions); + comments.ensureAllCommentsPrinted(astComments); + if (shouldStripTrailingHardline) { + if (typeof doc2 === "string") { + return doc2.replace(/(?:\r?\n)*$/, ""); + } + return stripTrailingHardline(doc2); + } + return doc2; + } + module2.exports = { + printSubtree + }; + } +}); +var require_ast_to_doc = __commonJS2({ + "src/main/ast-to-doc.js"(exports2, module2) { + "use strict"; + var AstPath = require_ast_path(); + var { + builders: { + hardline, + addAlignmentToDoc + }, + utils: { + propagateBreaks + } + } = require("./doc.js"); + var { + printComments + } = require_comments(); + var multiparser = require_multiparser(); + function printAstToDoc(ast, options, alignmentSize = 0) { + const { + printer + } = options; + if (printer.preprocess) { + ast = printer.preprocess(ast, options); + } + const cache = /* @__PURE__ */ new Map(); + const path = new AstPath(ast); + let doc2 = mainPrint(); + if (alignmentSize > 0) { + doc2 = addAlignmentToDoc([hardline, doc2], alignmentSize, options.tabWidth); + } + propagateBreaks(doc2); + return doc2; + function mainPrint(selector, args) { + if (selector === void 0 || selector === path) { + return mainPrintInternal(args); + } + if (Array.isArray(selector)) { + return path.call(() => mainPrintInternal(args), ...selector); + } + return path.call(() => mainPrintInternal(args), selector); + } + function mainPrintInternal(args) { + const value = path.getValue(); + const shouldCache = value && typeof value === "object" && args === void 0; + if (shouldCache && cache.has(value)) { + return cache.get(value); + } + const doc3 = callPluginPrintFunction(path, options, mainPrint, args); + if (shouldCache) { + cache.set(value, doc3); + } + return doc3; + } + } + function printPrettierIgnoredNode(node, options) { + const { + originalText, + [Symbol.for("comments")]: comments, + locStart, + locEnd + } = options; + const start = locStart(node); + const end = locEnd(node); + const printedComments = /* @__PURE__ */ new Set(); + for (const comment of comments) { + if (locStart(comment) >= start && locEnd(comment) <= end) { + comment.printed = true; + printedComments.add(comment); + } + } + return { + doc: originalText.slice(start, end), + printedComments + }; + } + function callPluginPrintFunction(path, options, printPath, args) { + const node = path.getValue(); + const { + printer + } = options; + let doc2; + let printedComments; + if (printer.hasPrettierIgnore && printer.hasPrettierIgnore(path)) { + ({ + doc: doc2, + printedComments + } = printPrettierIgnoredNode(node, options)); + } else { + if (node) { + try { + doc2 = multiparser.printSubtree(path, printPath, options, printAstToDoc); + } catch (error) { + if (process.env.PRETTIER_DEBUG) { + throw error; + } + } + } + if (!doc2) { + doc2 = printer.print(path, options, printPath, args); + } + } + if (!printer.willPrintOwnComments || !printer.willPrintOwnComments(path, options)) { + doc2 = printComments(path, doc2, options, printedComments); + } + return doc2; + } + module2.exports = printAstToDoc; + } +}); +var require_range_util = __commonJS2({ + "src/main/range-util.js"(exports2, module2) { + "use strict"; + var assert = require("assert"); + var comments = require_comments(); + var isJsonParser = ({ + parser + }) => parser === "json" || parser === "json5" || parser === "json-stringify"; + function findCommonAncestor(startNodeAndParents, endNodeAndParents) { + const startNodeAndAncestors = [startNodeAndParents.node, ...startNodeAndParents.parentNodes]; + const endNodeAndAncestors = /* @__PURE__ */ new Set([endNodeAndParents.node, ...endNodeAndParents.parentNodes]); + return startNodeAndAncestors.find((node) => jsonSourceElements.has(node.type) && endNodeAndAncestors.has(node)); + } + function dropRootParents(parents) { + let lastParentIndex = parents.length - 1; + for (; ; ) { + const parent = parents[lastParentIndex]; + if (parent && (parent.type === "Program" || parent.type === "File")) { + lastParentIndex--; + } else { + break; + } + } + return parents.slice(0, lastParentIndex + 1); + } + function findSiblingAncestors(startNodeAndParents, endNodeAndParents, { + locStart, + locEnd + }) { + let resultStartNode = startNodeAndParents.node; + let resultEndNode = endNodeAndParents.node; + if (resultStartNode === resultEndNode) { + return { + startNode: resultStartNode, + endNode: resultEndNode + }; + } + const startNodeStart = locStart(startNodeAndParents.node); + for (const endParent of dropRootParents(endNodeAndParents.parentNodes)) { + if (locStart(endParent) >= startNodeStart) { + resultEndNode = endParent; + } else { + break; + } + } + const endNodeEnd = locEnd(endNodeAndParents.node); + for (const startParent of dropRootParents(startNodeAndParents.parentNodes)) { + if (locEnd(startParent) <= endNodeEnd) { + resultStartNode = startParent; + } else { + break; + } + } + return { + startNode: resultStartNode, + endNode: resultEndNode + }; + } + function findNodeAtOffset(node, offset, options, predicate, parentNodes = [], type) { + const { + locStart, + locEnd + } = options; + const start = locStart(node); + const end = locEnd(node); + if (offset > end || offset < start || type === "rangeEnd" && offset === start || type === "rangeStart" && offset === end) { + return; + } + for (const childNode of comments.getSortedChildNodes(node, options)) { + const childResult = findNodeAtOffset(childNode, offset, options, predicate, [node, ...parentNodes], type); + if (childResult) { + return childResult; + } + } + if (!predicate || predicate(node, parentNodes[0])) { + return { + node, + parentNodes + }; + } + } + function isJsSourceElement(type, parentType) { + return parentType !== "DeclareExportDeclaration" && type !== "TypeParameterDeclaration" && (type === "Directive" || type === "TypeAlias" || type === "TSExportAssignment" || type.startsWith("Declare") || type.startsWith("TSDeclare") || type.endsWith("Statement") || type.endsWith("Declaration")); + } + var jsonSourceElements = /* @__PURE__ */ new Set(["ObjectExpression", "ArrayExpression", "StringLiteral", "NumericLiteral", "BooleanLiteral", "NullLiteral", "UnaryExpression", "TemplateLiteral"]); + var graphqlSourceElements = /* @__PURE__ */ new Set(["OperationDefinition", "FragmentDefinition", "VariableDefinition", "TypeExtensionDefinition", "ObjectTypeDefinition", "FieldDefinition", "DirectiveDefinition", "EnumTypeDefinition", "EnumValueDefinition", "InputValueDefinition", "InputObjectTypeDefinition", "SchemaDefinition", "OperationTypeDefinition", "InterfaceTypeDefinition", "UnionTypeDefinition", "ScalarTypeDefinition"]); + function isSourceElement(opts, node, parentNode) { + if (!node) { + return false; + } + switch (opts.parser) { + case "flow": + case "babel": + case "babel-flow": + case "babel-ts": + case "typescript": + case "acorn": + case "espree": + case "meriyah": + case "__babel_estree": + return isJsSourceElement(node.type, parentNode && parentNode.type); + case "json": + case "json5": + case "json-stringify": + return jsonSourceElements.has(node.type); + case "graphql": + return graphqlSourceElements.has(node.kind); + case "vue": + return node.tag !== "root"; + } + return false; + } + function calculateRange(text, opts, ast) { + let { + rangeStart: start, + rangeEnd: end, + locStart, + locEnd + } = opts; + assert.ok(end > start); + const firstNonWhitespaceCharacterIndex = text.slice(start, end).search(/\S/); + const isAllWhitespace = firstNonWhitespaceCharacterIndex === -1; + if (!isAllWhitespace) { + start += firstNonWhitespaceCharacterIndex; + for (; end > start; --end) { + if (/\S/.test(text[end - 1])) { + break; + } + } + } + const startNodeAndParents = findNodeAtOffset(ast, start, opts, (node, parentNode) => isSourceElement(opts, node, parentNode), [], "rangeStart"); + const endNodeAndParents = isAllWhitespace ? startNodeAndParents : findNodeAtOffset(ast, end, opts, (node) => isSourceElement(opts, node), [], "rangeEnd"); + if (!startNodeAndParents || !endNodeAndParents) { + return { + rangeStart: 0, + rangeEnd: 0 + }; + } + let startNode; + let endNode; + if (isJsonParser(opts)) { + const commonAncestor = findCommonAncestor(startNodeAndParents, endNodeAndParents); + startNode = commonAncestor; + endNode = commonAncestor; + } else { + ({ + startNode, + endNode + } = findSiblingAncestors(startNodeAndParents, endNodeAndParents, opts)); + } + return { + rangeStart: Math.min(locStart(startNode), locStart(endNode)), + rangeEnd: Math.max(locEnd(startNode), locEnd(endNode)) + }; + } + module2.exports = { + calculateRange, + findNodeAtOffset + }; + } +}); +var require_core = __commonJS2({ + "src/main/core.js"(exports2, module2) { + "use strict"; + var { + diffArrays + } = require_array(); + var { + printer: { + printDocToString + }, + debug: { + printDocToDebug + } + } = require("./doc.js"); + var { + getAlignmentSize + } = require_util(); + var { + guessEndOfLine, + convertEndOfLineToChars, + countEndOfLineChars, + normalizeEndOfLine + } = require_end_of_line(); + var normalizeOptions = require_options().normalize; + var massageAST = require_massage_ast(); + var comments = require_comments(); + var parser = require_parser(); + var printAstToDoc = require_ast_to_doc(); + var rangeUtil = require_range_util(); + var BOM = "\uFEFF"; + var CURSOR = Symbol("cursor"); + function attachComments(text, ast, opts) { + const astComments = ast.comments; + if (astComments) { + delete ast.comments; + comments.attach(astComments, ast, text, opts); + } + opts[Symbol.for("comments")] = astComments || []; + opts[Symbol.for("tokens")] = ast.tokens || []; + opts.originalText = text; + return astComments; + } + function coreFormat(originalText, opts, addAlignmentSize = 0) { + if (!originalText || originalText.trim().length === 0) { + return { + formatted: "", + cursorOffset: -1, + comments: [] + }; + } + const { + ast, + text + } = parser.parse(originalText, opts); + if (opts.cursorOffset >= 0) { + const nodeResult = rangeUtil.findNodeAtOffset(ast, opts.cursorOffset, opts); + if (nodeResult && nodeResult.node) { + opts.cursorNode = nodeResult.node; + } + } + const astComments = attachComments(text, ast, opts); + const doc2 = printAstToDoc(ast, opts, addAlignmentSize); + const result = printDocToString(doc2, opts); + comments.ensureAllCommentsPrinted(astComments); + if (addAlignmentSize > 0) { + const trimmed = result.formatted.trim(); + if (result.cursorNodeStart !== void 0) { + result.cursorNodeStart -= result.formatted.indexOf(trimmed); + } + result.formatted = trimmed + convertEndOfLineToChars(opts.endOfLine); + } + if (opts.cursorOffset >= 0) { + let oldCursorNodeStart; + let oldCursorNodeText; + let cursorOffsetRelativeToOldCursorNode; + let newCursorNodeStart; + let newCursorNodeText; + if (opts.cursorNode && result.cursorNodeText) { + oldCursorNodeStart = opts.locStart(opts.cursorNode); + oldCursorNodeText = text.slice(oldCursorNodeStart, opts.locEnd(opts.cursorNode)); + cursorOffsetRelativeToOldCursorNode = opts.cursorOffset - oldCursorNodeStart; + newCursorNodeStart = result.cursorNodeStart; + newCursorNodeText = result.cursorNodeText; + } else { + oldCursorNodeStart = 0; + oldCursorNodeText = text; + cursorOffsetRelativeToOldCursorNode = opts.cursorOffset; + newCursorNodeStart = 0; + newCursorNodeText = result.formatted; + } + if (oldCursorNodeText === newCursorNodeText) { + return { + formatted: result.formatted, + cursorOffset: newCursorNodeStart + cursorOffsetRelativeToOldCursorNode, + comments: astComments + }; + } + const oldCursorNodeCharArray = [...oldCursorNodeText]; + oldCursorNodeCharArray.splice(cursorOffsetRelativeToOldCursorNode, 0, CURSOR); + const newCursorNodeCharArray = [...newCursorNodeText]; + const cursorNodeDiff = diffArrays(oldCursorNodeCharArray, newCursorNodeCharArray); + let cursorOffset = newCursorNodeStart; + for (const entry of cursorNodeDiff) { + if (entry.removed) { + if (entry.value.includes(CURSOR)) { + break; + } + } else { + cursorOffset += entry.count; + } + } + return { + formatted: result.formatted, + cursorOffset, + comments: astComments + }; + } + return { + formatted: result.formatted, + cursorOffset: -1, + comments: astComments + }; + } + function formatRange(originalText, opts) { + const { + ast, + text + } = parser.parse(originalText, opts); + const { + rangeStart, + rangeEnd + } = rangeUtil.calculateRange(text, opts, ast); + const rangeString = text.slice(rangeStart, rangeEnd); + const rangeStart2 = Math.min(rangeStart, text.lastIndexOf("\n", rangeStart) + 1); + const indentString = text.slice(rangeStart2, rangeStart).match(/^\s*/)[0]; + const alignmentSize = getAlignmentSize(indentString, opts.tabWidth); + const rangeResult = coreFormat(rangeString, Object.assign(Object.assign({}, opts), {}, { + rangeStart: 0, + rangeEnd: Number.POSITIVE_INFINITY, + cursorOffset: opts.cursorOffset > rangeStart && opts.cursorOffset <= rangeEnd ? opts.cursorOffset - rangeStart : -1, + endOfLine: "lf" + }), alignmentSize); + const rangeTrimmed = rangeResult.formatted.trimEnd(); + let { + cursorOffset + } = opts; + if (cursorOffset > rangeEnd) { + cursorOffset += rangeTrimmed.length - rangeString.length; + } else if (rangeResult.cursorOffset >= 0) { + cursorOffset = rangeResult.cursorOffset + rangeStart; + } + let formatted = text.slice(0, rangeStart) + rangeTrimmed + text.slice(rangeEnd); + if (opts.endOfLine !== "lf") { + const eol = convertEndOfLineToChars(opts.endOfLine); + if (cursorOffset >= 0 && eol === "\r\n") { + cursorOffset += countEndOfLineChars(formatted.slice(0, cursorOffset), "\n"); + } + formatted = formatted.replace(/\n/g, eol); + } + return { + formatted, + cursorOffset, + comments: rangeResult.comments + }; + } + function ensureIndexInText(text, index, defaultValue) { + if (typeof index !== "number" || Number.isNaN(index) || index < 0 || index > text.length) { + return defaultValue; + } + return index; + } + function normalizeIndexes(text, options) { + let { + cursorOffset, + rangeStart, + rangeEnd + } = options; + cursorOffset = ensureIndexInText(text, cursorOffset, -1); + rangeStart = ensureIndexInText(text, rangeStart, 0); + rangeEnd = ensureIndexInText(text, rangeEnd, text.length); + return Object.assign(Object.assign({}, options), {}, { + cursorOffset, + rangeStart, + rangeEnd + }); + } + function normalizeInputAndOptions(text, options) { + let { + cursorOffset, + rangeStart, + rangeEnd, + endOfLine + } = normalizeIndexes(text, options); + const hasBOM = text.charAt(0) === BOM; + if (hasBOM) { + text = text.slice(1); + cursorOffset--; + rangeStart--; + rangeEnd--; + } + if (endOfLine === "auto") { + endOfLine = guessEndOfLine(text); + } + if (text.includes("\r")) { + const countCrlfBefore = (index) => countEndOfLineChars(text.slice(0, Math.max(index, 0)), "\r\n"); + cursorOffset -= countCrlfBefore(cursorOffset); + rangeStart -= countCrlfBefore(rangeStart); + rangeEnd -= countCrlfBefore(rangeEnd); + text = normalizeEndOfLine(text); + } + return { + hasBOM, + text, + options: normalizeIndexes(text, Object.assign(Object.assign({}, options), {}, { + cursorOffset, + rangeStart, + rangeEnd, + endOfLine + })) + }; + } + function hasPragma(text, options) { + const selectedParser = parser.resolveParser(options); + return !selectedParser.hasPragma || selectedParser.hasPragma(text); + } + function formatWithCursor2(originalText, originalOptions) { + let { + hasBOM, + text, + options + } = normalizeInputAndOptions(originalText, normalizeOptions(originalOptions)); + if (options.rangeStart >= options.rangeEnd && text !== "" || options.requirePragma && !hasPragma(text, options)) { + return { + formatted: originalText, + cursorOffset: originalOptions.cursorOffset, + comments: [] + }; + } + let result; + if (options.rangeStart > 0 || options.rangeEnd < text.length) { + result = formatRange(text, options); + } else { + if (!options.requirePragma && options.insertPragma && options.printer.insertPragma && !hasPragma(text, options)) { + text = options.printer.insertPragma(text); + } + result = coreFormat(text, options); + } + if (hasBOM) { + result.formatted = BOM + result.formatted; + if (result.cursorOffset >= 0) { + result.cursorOffset++; + } + } + return result; + } + module2.exports = { + formatWithCursor: formatWithCursor2, + parse(originalText, originalOptions, massage) { + const { + text, + options + } = normalizeInputAndOptions(originalText, normalizeOptions(originalOptions)); + const parsed = parser.parse(text, options); + if (massage) { + parsed.ast = massageAST(parsed.ast, options); + } + return parsed; + }, + formatAST(ast, options) { + options = normalizeOptions(options); + const doc2 = printAstToDoc(ast, options); + return printDocToString(doc2, options); + }, + formatDoc(doc2, options) { + return formatWithCursor2(printDocToDebug(doc2), Object.assign(Object.assign({}, options), {}, { + parser: "__js_expression" + })).formatted; + }, + printToDoc(originalText, options) { + options = normalizeOptions(options); + const { + ast, + text + } = parser.parse(originalText, options); + attachComments(text, ast, options); + return printAstToDoc(ast, options); + }, + printDocToString(doc2, options) { + return printDocToString(doc2, normalizeOptions(options)); + } + }; + } +}); +var require_utils2 = __commonJS2({ + "node_modules/braces/lib/utils.js"(exports2) { + "use strict"; + exports2.isInteger = (num) => { + if (typeof num === "number") { + return Number.isInteger(num); + } + if (typeof num === "string" && num.trim() !== "") { + return Number.isInteger(Number(num)); + } + return false; + }; + exports2.find = (node, type) => node.nodes.find((node2) => node2.type === type); + exports2.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) + return false; + if (!exports2.isInteger(min) || !exports2.isInteger(max)) + return false; + return (Number(max) - Number(min)) / Number(step) >= limit; + }; + exports2.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) + return; + if (type && node.type === type || node.type === "open" || node.type === "close") { + if (node.escaped !== true) { + node.value = "\\" + node.value; + node.escaped = true; + } + } + }; + exports2.encloseBrace = (node) => { + if (node.type !== "brace") + return false; + if (node.commas >> 0 + node.ranges >> 0 === 0) { + node.invalid = true; + return true; + } + return false; + }; + exports2.isInvalidBrace = (block) => { + if (block.type !== "brace") + return false; + if (block.invalid === true || block.dollar) + return true; + if (block.commas >> 0 + block.ranges >> 0 === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; + }; + exports2.isOpenOrClose = (node) => { + if (node.type === "open" || node.type === "close") { + return true; + } + return node.open === true || node.close === true; + }; + exports2.reduce = (nodes) => nodes.reduce((acc, node) => { + if (node.type === "text") + acc.push(node.value); + if (node.type === "range") + node.type = "text"; + return acc; + }, []); + exports2.flatten = (...args) => { + const result = []; + const flat = (arr) => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); + } + return result; + }; + flat(args); + return result; + }; + } +}); +var require_stringify = __commonJS2({ + "node_modules/braces/lib/stringify.js"(exports2, module2) { + "use strict"; + var utils = require_utils2(); + module2.exports = (ast, options = {}) => { + let stringify = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ""; + if (node.value) { + if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { + return "\\" + node.value; + } + return node.value; + } + if (node.value) { + return node.value; + } + if (node.nodes) { + for (let child of node.nodes) { + output += stringify(child); + } + } + return output; + }; + return stringify(ast); + }; + } +}); +var require_is_number = __commonJS2({ + "node_modules/is-number/index.js"(exports2, module2) { + "use strict"; + module2.exports = function(num) { + if (typeof num === "number") { + return num - num === 0; + } + if (typeof num === "string" && num.trim() !== "") { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; + }; + } +}); +var require_to_regex_range = __commonJS2({ + "node_modules/to-regex-range/index.js"(exports2, module2) { + "use strict"; + var isNumber = require_is_number(); + var toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError("toRegexRange: expected the first argument to be a number"); + } + if (max === void 0 || min === max) { + return String(min); + } + if (isNumber(max) === false) { + throw new TypeError("toRegexRange: expected the second argument to be a number."); + } + let opts = Object.assign({ + relaxZeros: true + }, options); + if (typeof opts.strictZeros === "boolean") { + opts.relaxZeros = opts.strictZeros === false; + } + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ":" + max + "=" + relax + shorthand + capture + wrap; + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + let a = Math.min(min, max); + let b = Math.max(min, max); + if (Math.abs(a - b) === 1) { + let result = min + "|" + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + let isPadded = hasPadding(min) || hasPadding(max); + let state = { + min, + max, + a, + b + }; + let positives = []; + let negatives = []; + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && positives.length + negatives.length > 1) { + state.result = `(?:${state.result})`; + } + toRegexRange.cache[cacheKey] = state; + return state.result; + }; + function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, "-", false, options) || []; + let onlyPositive = filterPatterns(pos, neg, "", false, options) || []; + let intersected = filterPatterns(neg, pos, "-?", true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join("|"); + } + function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + let stop = countNines(min, nines); + let stops = /* @__PURE__ */ new Set([max]); + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + stop = countZeros(max + 1, zeros) - 1; + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + stops = [...stops]; + stops.sort(compare); + return stops; + } + function rangeToPattern(start, stop, options) { + if (start === stop) { + return { + pattern: start, + count: [], + digits: 0 + }; + } + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ""; + let count = 0; + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + if (startDigit === stopDigit) { + pattern += startDigit; + } else if (startDigit !== "0" || stopDigit !== "9") { + pattern += toCharacterClass(startDigit, stopDigit, options); + } else { + count++; + } + } + if (count) { + pattern += options.shorthand === true ? "\\d" : "[0-9]"; + } + return { + pattern, + count: [count], + digits + }; + } + function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + for (let i = 0; i < ranges.length; i++) { + let max2 = ranges[i]; + let obj = rangeToPattern(String(start), String(max2), options); + let zeros = ""; + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max2 + 1; + continue; + } + if (tok.isPadded) { + zeros = padZeros(max2, tok, options); + } + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max2 + 1; + prev = obj; + } + return tokens; + } + function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + for (let ele of arr) { + let { + string + } = ele; + if (!intersection && !contains(comparison, "string", string)) { + result.push(prefix + string); + } + if (intersection && contains(comparison, "string", string)) { + result.push(prefix + string); + } + } + return result; + } + function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) + arr.push([a[i], b[i]]); + return arr; + } + function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; + } + function contains(arr, key, val) { + return arr.some((ele) => ele[key] === val); + } + function countNines(min, len) { + return Number(String(min).slice(0, -len) + "9".repeat(len)); + } + function countZeros(integer, zeros) { + return integer - integer % Math.pow(10, zeros); + } + function toQuantifier(digits) { + let [start = 0, stop = ""] = digits; + if (stop || start > 1) { + return `{${start + (stop ? "," + stop : "")}}`; + } + return ""; + } + function toCharacterClass(a, b, options) { + return `[${a}${b - a === 1 ? "" : "-"}${b}]`; + } + function hasPadding(str) { + return /^-?(0+)\d/.test(str); + } + function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + switch (diff) { + case 0: + return ""; + case 1: + return relax ? "0?" : "0"; + case 2: + return relax ? "0{0,2}" : "00"; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } + } + toRegexRange.cache = {}; + toRegexRange.clearCache = () => toRegexRange.cache = {}; + module2.exports = toRegexRange; + } +}); +var require_fill_range = __commonJS2({ + "node_modules/fill-range/index.js"(exports2, module2) { + "use strict"; + var util = require("util"); + var toRegexRange = require_to_regex_range(); + var isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); + var transform = (toNumber) => { + return (value) => toNumber === true ? Number(value) : String(value); + }; + var isValidValue = (value) => { + return typeof value === "number" || typeof value === "string" && value !== ""; + }; + var isNumber = (num) => Number.isInteger(+num); + var zeros = (input) => { + let value = `${input}`; + let index = -1; + if (value[0] === "-") + value = value.slice(1); + if (value === "0") + return false; + while (value[++index] === "0") + ; + return index > 0; + }; + var stringify = (start, end, options) => { + if (typeof start === "string" || typeof end === "string") { + return true; + } + return options.stringify === true; + }; + var pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === "-" ? "-" : ""; + if (dash) + input = input.slice(1); + input = dash + input.padStart(dash ? maxLength - 1 : maxLength, "0"); + } + if (toNumber === false) { + return String(input); + } + return input; + }; + var toMaxLen = (input, maxLength) => { + let negative = input[0] === "-" ? "-" : ""; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) + input = "0" + input; + return negative ? "-" + input : input; + }; + var toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + let prefix = options.capture ? "" : "?:"; + let positives = ""; + let negatives = ""; + let result; + if (parts.positives.length) { + positives = parts.positives.join("|"); + } + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join("|")})`; + } + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + if (options.wrap) { + return `(${prefix}${result})`; + } + return result; + }; + var toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, Object.assign({ + wrap: false + }, options)); + } + let start = String.fromCharCode(a); + if (a === b) + return start; + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; + }; + var toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? "" : "?:"; + return wrap ? `(${prefix}${start.join("|")})` : start.join("|"); + } + return toRegexRange(start, end, options); + }; + var rangeError = (...args) => { + return new RangeError("Invalid range arguments: " + util.inspect(...args)); + }; + var invalidRange = (start, end, options) => { + if (options.strictRanges === true) + throw rangeError([start, end]); + return []; + }; + var invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; + }; + var fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) + throw rangeError([start, end]); + return []; + } + if (a === 0) + a = 0; + if (b === 0) + b = 0; + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify(start, end, options) === false; + let format = options.transform || transform(toNumber); + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + let parts = { + negatives: [], + positives: [] + }; + let push = (num) => parts[num < 0 ? "negatives" : "positives"].push(Math.abs(num)); + let range = []; + let index = 0; + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } + if (options.toRegex === true) { + return step > 1 ? toSequence(parts, options) : toRegex(range, null, Object.assign({ + wrap: false + }, options)); + } + return range; + }; + var fillLetters = (start, end, step = 1, options = {}) => { + if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) { + return invalidRange(start, end, options); + } + let format = options.transform || ((val) => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + let range = []; + let index = 0; + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + if (options.toRegex === true) { + return toRegex(range, null, { + wrap: false, + options + }); + } + return range; + }; + var fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + if (typeof step === "function") { + return fill(start, end, 1, { + transform: step + }); + } + if (isObject(step)) { + return fill(start, end, 0, step); + } + let opts = Object.assign({}, options); + if (opts.capture === true) + opts.wrap = true; + step = step || opts.step || 1; + if (!isNumber(step)) { + if (step != null && !isObject(step)) + return invalidStep(step, opts); + return fill(start, end, 1, step); + } + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); + }; + module2.exports = fill; + } +}); +var require_compile = __commonJS2({ + "node_modules/braces/lib/compile.js"(exports2, module2) { + "use strict"; + var fill = require_fill_range(); + var utils = require_utils2(); + var compile = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? "\\" : ""; + let output = ""; + if (node.isOpen === true) { + return prefix + node.value; + } + if (node.isClose === true) { + return prefix + node.value; + } + if (node.type === "open") { + return invalid ? prefix + node.value : "("; + } + if (node.type === "close") { + return invalid ? prefix + node.value : ")"; + } + if (node.type === "comma") { + return node.prev.type === "comma" ? "" : invalid ? node.value : "|"; + } + if (node.value) { + return node.value; + } + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + let range = fill(...args, Object.assign(Object.assign({}, options), {}, { + wrap: false, + toRegex: true + })); + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); + } + } + return output; + }; + return walk(ast); + }; + module2.exports = compile; + } +}); +var require_expand = __commonJS2({ + "node_modules/braces/lib/expand.js"(exports2, module2) { + "use strict"; + var fill = require_fill_range(); + var stringify = require_stringify(); + var utils = require_utils2(); + var append = (queue = "", stash = "", enclose = false) => { + let result = []; + queue = [].concat(queue); + stash = [].concat(stash); + if (!stash.length) + return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map((ele) => `{${ele}}`) : stash; + } + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === "string") + ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); + } + } + } + return utils.flatten(result); + }; + var expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1e3 : options.rangeLimit; + let walk = (node, parent = {}) => { + node.queue = []; + let p = parent; + let q = parent.queue; + while (p.type !== "brace" && p.type !== "root" && p.parent) { + p = p.parent; + q = p.queue; + } + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify(node, options))); + return; + } + if (node.type === "brace" && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ["{}"])); + return; + } + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit."); + } + let range = fill(...args, options); + if (range.length === 0) { + range = stringify(node, options); + } + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } + let enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; + while (block.type !== "brace" && block.type !== "root" && block.parent) { + block = block.parent; + queue = block.queue; + } + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + if (child.type === "comma" && node.type === "brace") { + if (i === 1) + queue.push(""); + queue.push(""); + continue; + } + if (child.type === "close") { + q.push(append(q.pop(), queue, enclose)); + continue; + } + if (child.value && child.type !== "open") { + queue.push(append(queue.pop(), child.value)); + continue; + } + if (child.nodes) { + walk(child, node); + } + } + return queue; + }; + return utils.flatten(walk(ast)); + }; + module2.exports = expand; + } +}); +var require_constants2 = __commonJS2({ + "node_modules/braces/lib/constants.js"(exports2, module2) { + "use strict"; + module2.exports = { + MAX_LENGTH: 1024 * 64, + CHAR_0: "0", + CHAR_9: "9", + CHAR_UPPERCASE_A: "A", + CHAR_LOWERCASE_A: "a", + CHAR_UPPERCASE_Z: "Z", + CHAR_LOWERCASE_Z: "z", + CHAR_LEFT_PARENTHESES: "(", + CHAR_RIGHT_PARENTHESES: ")", + CHAR_ASTERISK: "*", + CHAR_AMPERSAND: "&", + CHAR_AT: "@", + CHAR_BACKSLASH: "\\", + CHAR_BACKTICK: "`", + CHAR_CARRIAGE_RETURN: "\r", + CHAR_CIRCUMFLEX_ACCENT: "^", + CHAR_COLON: ":", + CHAR_COMMA: ",", + CHAR_DOLLAR: "$", + CHAR_DOT: ".", + CHAR_DOUBLE_QUOTE: '"', + CHAR_EQUAL: "=", + CHAR_EXCLAMATION_MARK: "!", + CHAR_FORM_FEED: "\f", + CHAR_FORWARD_SLASH: "/", + CHAR_HASH: "#", + CHAR_HYPHEN_MINUS: "-", + CHAR_LEFT_ANGLE_BRACKET: "<", + CHAR_LEFT_CURLY_BRACE: "{", + CHAR_LEFT_SQUARE_BRACKET: "[", + CHAR_LINE_FEED: "\n", + CHAR_NO_BREAK_SPACE: "\xA0", + CHAR_PERCENT: "%", + CHAR_PLUS: "+", + CHAR_QUESTION_MARK: "?", + CHAR_RIGHT_ANGLE_BRACKET: ">", + CHAR_RIGHT_CURLY_BRACE: "}", + CHAR_RIGHT_SQUARE_BRACKET: "]", + CHAR_SEMICOLON: ";", + CHAR_SINGLE_QUOTE: "'", + CHAR_SPACE: " ", + CHAR_TAB: " ", + CHAR_UNDERSCORE: "_", + CHAR_VERTICAL_LINE: "|", + CHAR_ZERO_WIDTH_NOBREAK_SPACE: "\uFEFF" + }; + } +}); +var require_parse = __commonJS2({ + "node_modules/braces/lib/parse.js"(exports2, module2) { + "use strict"; + var stringify = require_stringify(); + var { + MAX_LENGTH, + CHAR_BACKSLASH, + CHAR_BACKTICK, + CHAR_COMMA, + CHAR_DOT, + CHAR_LEFT_PARENTHESES, + CHAR_RIGHT_PARENTHESES, + CHAR_LEFT_CURLY_BRACE, + CHAR_RIGHT_CURLY_BRACE, + CHAR_LEFT_SQUARE_BRACKET, + CHAR_RIGHT_SQUARE_BRACKET, + CHAR_DOUBLE_QUOTE, + CHAR_SINGLE_QUOTE, + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE + } = require_constants2(); + var parse = (input, options = {}) => { + if (typeof input !== "string") { + throw new TypeError("Expected a string"); + } + let opts = options || {}; + let max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } + let ast = { + type: "root", + input, + nodes: [] + }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + let memo = {}; + const advance = () => input[index++]; + const push = (node) => { + if (node.type === "text" && prev.type === "dot") { + prev.type = "text"; + } + if (prev && prev.type === "text" && node.type === "text") { + prev.value += node.value; + return; + } + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + push({ + type: "bos" + }); + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + if (value === CHAR_BACKSLASH) { + push({ + type: "text", + value: (options.keepEscaping ? value : "") + advance() + }); + continue; + } + if (value === CHAR_RIGHT_SQUARE_BRACKET) { + push({ + type: "text", + value: "\\" + value + }); + continue; + } + if (value === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + let closed = true; + let next; + while (index < length && (next = advance())) { + value += next; + if (next === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + continue; + } + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + brackets--; + if (brackets === 0) { + break; + } + } + } + push({ + type: "text", + value + }); + continue; + } + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ + type: "paren", + nodes: [] + }); + stack.push(block); + push({ + type: "text", + value + }); + continue; + } + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== "paren") { + push({ + type: "text", + value + }); + continue; + } + block = stack.pop(); + push({ + type: "text", + value + }); + block = stack[stack.length - 1]; + continue; + } + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; + if (options.keepQuotes !== true) { + value = ""; + } + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + if (next === open) { + if (options.keepQuotes === true) + value += next; + break; + } + value += next; + } + push({ + type: "text", + value + }); + continue; + } + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; + let dollar = prev.value && prev.value.slice(-1) === "$" || block.dollar === true; + let brace = { + type: "brace", + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + block = push(brace); + stack.push(block); + push({ + type: "open", + value + }); + continue; + } + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== "brace") { + push({ + type: "text", + value + }); + continue; + } + let type = "close"; + block = stack.pop(); + block.close = true; + push({ + type, + value + }); + depth--; + block = stack[stack.length - 1]; + continue; + } + if (value === CHAR_COMMA && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { + type: "text", + value: stringify(block) + }]; + } + push({ + type: "comma", + value + }); + block.commas++; + continue; + } + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + let siblings = block.nodes; + if (depth === 0 || siblings.length === 0) { + push({ + type: "text", + value + }); + continue; + } + if (prev.type === "dot") { + block.range = []; + prev.value += value; + prev.type = "range"; + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = "text"; + continue; + } + block.ranges++; + block.args = []; + continue; + } + if (prev.type === "range") { + siblings.pop(); + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + push({ + type: "dot", + value + }); + continue; + } + push({ + type: "text", + value + }); + } + do { + block = stack.pop(); + if (block.type !== "root") { + block.nodes.forEach((node) => { + if (!node.nodes) { + if (node.type === "open") + node.isOpen = true; + if (node.type === "close") + node.isClose = true; + if (!node.nodes) + node.type = "text"; + node.invalid = true; + } + }); + let parent = stack[stack.length - 1]; + let index2 = parent.nodes.indexOf(block); + parent.nodes.splice(index2, 1, ...block.nodes); + } + } while (stack.length > 0); + push({ + type: "eos" + }); + return ast; + }; + module2.exports = parse; + } +}); +var require_braces = __commonJS2({ + "node_modules/braces/index.js"(exports2, module2) { + "use strict"; + var stringify = require_stringify(); + var compile = require_compile(); + var expand = require_expand(); + var parse = require_parse(); + var braces = (input, options = {}) => { + let output = []; + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; + }; + braces.parse = (input, options = {}) => parse(input, options); + braces.stringify = (input, options = {}) => { + if (typeof input === "string") { + return stringify(braces.parse(input, options), options); + } + return stringify(input, options); + }; + braces.compile = (input, options = {}) => { + if (typeof input === "string") { + input = braces.parse(input, options); + } + return compile(input, options); + }; + braces.expand = (input, options = {}) => { + if (typeof input === "string") { + input = braces.parse(input, options); + } + let result = expand(input, options); + if (options.noempty === true) { + result = result.filter(Boolean); + } + if (options.nodupes === true) { + result = [...new Set(result)]; + } + return result; + }; + braces.create = (input, options = {}) => { + if (input === "" || input.length < 3) { + return [input]; + } + return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); + }; + module2.exports = braces; + } +}); +var require_constants3 = __commonJS2({ + "node_modules/picomatch/lib/constants.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var WIN_SLASH = "\\\\/"; + var WIN_NO_SLASH = `[^${WIN_SLASH}]`; + var DOT_LITERAL = "\\."; + var PLUS_LITERAL = "\\+"; + var QMARK_LITERAL = "\\?"; + var SLASH_LITERAL = "\\/"; + var ONE_CHAR = "(?=.)"; + var QMARK = "[^/]"; + var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; + var START_ANCHOR = `(?:^|${SLASH_LITERAL})`; + var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; + var NO_DOT = `(?!${DOT_LITERAL})`; + var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; + var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; + var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; + var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; + var STAR = `${QMARK}*?`; + var POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR + }; + var WINDOWS_CHARS = Object.assign(Object.assign({}, POSIX_CHARS), {}, { + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` + }); + var POSIX_REGEX_SOURCE = { + alnum: "a-zA-Z0-9", + alpha: "a-zA-Z", + ascii: "\\x00-\\x7F", + blank: " \\t", + cntrl: "\\x00-\\x1F\\x7F", + digit: "0-9", + graph: "\\x21-\\x7E", + lower: "a-z", + print: "\\x20-\\x7E ", + punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", + space: " \\t\\r\\n\\v\\f", + upper: "A-Z", + word: "A-Za-z0-9_", + xdigit: "A-Fa-f0-9" + }; + module2.exports = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + REPLACEMENTS: { + "***": "*", + "**/**": "**", + "**/**/**": "**" + }, + CHAR_0: 48, + CHAR_9: 57, + CHAR_UPPERCASE_A: 65, + CHAR_LOWERCASE_A: 97, + CHAR_UPPERCASE_Z: 90, + CHAR_LOWERCASE_Z: 122, + CHAR_LEFT_PARENTHESES: 40, + CHAR_RIGHT_PARENTHESES: 41, + CHAR_ASTERISK: 42, + CHAR_AMPERSAND: 38, + CHAR_AT: 64, + CHAR_BACKWARD_SLASH: 92, + CHAR_CARRIAGE_RETURN: 13, + CHAR_CIRCUMFLEX_ACCENT: 94, + CHAR_COLON: 58, + CHAR_COMMA: 44, + CHAR_DOT: 46, + CHAR_DOUBLE_QUOTE: 34, + CHAR_EQUAL: 61, + CHAR_EXCLAMATION_MARK: 33, + CHAR_FORM_FEED: 12, + CHAR_FORWARD_SLASH: 47, + CHAR_GRAVE_ACCENT: 96, + CHAR_HASH: 35, + CHAR_HYPHEN_MINUS: 45, + CHAR_LEFT_ANGLE_BRACKET: 60, + CHAR_LEFT_CURLY_BRACE: 123, + CHAR_LEFT_SQUARE_BRACKET: 91, + CHAR_LINE_FEED: 10, + CHAR_NO_BREAK_SPACE: 160, + CHAR_PERCENT: 37, + CHAR_PLUS: 43, + CHAR_QUESTION_MARK: 63, + CHAR_RIGHT_ANGLE_BRACKET: 62, + CHAR_RIGHT_CURLY_BRACE: 125, + CHAR_RIGHT_SQUARE_BRACKET: 93, + CHAR_SEMICOLON: 59, + CHAR_SINGLE_QUOTE: 39, + CHAR_SPACE: 32, + CHAR_TAB: 9, + CHAR_UNDERSCORE: 95, + CHAR_VERTICAL_LINE: 124, + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, + SEP: path.sep, + extglobChars(chars) { + return { + "!": { + type: "negate", + open: "(?:(?!(?:", + close: `))${chars.STAR})` + }, + "?": { + type: "qmark", + open: "(?:", + close: ")?" + }, + "+": { + type: "plus", + open: "(?:", + close: ")+" + }, + "*": { + type: "star", + open: "(?:", + close: ")*" + }, + "@": { + type: "at", + open: "(?:", + close: ")" + } + }; + }, + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } + }; + } +}); +var require_utils3 = __commonJS2({ + "node_modules/picomatch/lib/utils.js"(exports2) { + "use strict"; + var path = require("path"); + var win32 = process.platform === "win32"; + var { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL + } = require_constants3(); + exports2.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); + exports2.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str); + exports2.isRegexChar = (str) => str.length === 1 && exports2.hasRegexChars(str); + exports2.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); + exports2.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, "/"); + exports2.removeBackslashes = (str) => { + return str.replace(REGEX_REMOVE_BACKSLASH, (match) => { + return match === "\\" ? "" : match; + }); + }; + exports2.supportsLookbehinds = () => { + const segs = process.version.slice(1).split(".").map(Number); + if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { + return true; + } + return false; + }; + exports2.isWindows = (options) => { + if (options && typeof options.windows === "boolean") { + return options.windows; + } + return win32 === true || path.sep === "\\"; + }; + exports2.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) + return input; + if (input[idx - 1] === "\\") + return exports2.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; + }; + exports2.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith("./")) { + output = output.slice(2); + state.prefix = "./"; + } + return output; + }; + exports2.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? "" : "^"; + const append = options.contains ? "" : "$"; + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; + }; + } +}); +var require_scan = __commonJS2({ + "node_modules/picomatch/lib/scan.js"(exports2, module2) { + "use strict"; + var utils = require_utils3(); + var { + CHAR_ASTERISK, + CHAR_AT, + CHAR_BACKWARD_SLASH, + CHAR_COMMA, + CHAR_DOT, + CHAR_EXCLAMATION_MARK, + CHAR_FORWARD_SLASH, + CHAR_LEFT_CURLY_BRACE, + CHAR_LEFT_PARENTHESES, + CHAR_LEFT_SQUARE_BRACKET, + CHAR_PLUS, + CHAR_QUESTION_MARK, + CHAR_RIGHT_CURLY_BRACE, + CHAR_RIGHT_PARENTHESES, + CHAR_RIGHT_SQUARE_BRACKET + } = require_constants3(); + var isPathSeparator = (code) => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; + }; + var depth = (token) => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; + } + }; + var scan = (input, options) => { + const opts = options || {}; + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { + value: "", + depth: 0, + isGlob: false + }; + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; + while (index < length) { + code = advance(); + let next; + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; + } + continue; + } + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { + value: "", + depth: 0, + isGlob: false + }; + if (finished === true) + continue; + if (prev === CHAR_DOT && index === start + 1) { + start += 2; + continue; + } + lastIndex = index + 1; + continue; + } + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; + } + } + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) + isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + if (scanToEnd === true) { + continue; + } + break; + } + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + continue; + } + break; + } + if (isGlob === true) { + finished = true; + if (scanToEnd === true) { + continue; + } + break; + } + } + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } + let base = str; + let prefix = ""; + let glob = ""; + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ""; + glob = str; + } else { + base = str; + } + if (base && base !== "" && base !== "/" && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } + } + if (opts.unescape === true) { + if (glob) + glob = utils.removeBackslashes(glob); + if (base && backslashes === true) { + base = utils.removeBackslashes(base); + } + } + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; + } + if (opts.parts === true || opts.tokens === true) { + let prevIndex; + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } + if (idx !== 0 || value !== "") { + parts.push(value); + } + prevIndex = i; + } + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } + state.slashes = slashes; + state.parts = parts; + } + return state; + }; + module2.exports = scan; + } +}); +var require_parse2 = __commonJS2({ + "node_modules/picomatch/lib/parse.js"(exports2, module2) { + "use strict"; + var constants = require_constants3(); + var utils = require_utils3(); + var { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS + } = constants; + var expandRange = (args, options) => { + if (typeof options.expandRange === "function") { + return options.expandRange(...args, options); + } + args.sort(); + const value = `[${args.join("-")}]`; + try { + new RegExp(value); + } catch (ex) { + return args.map((v) => utils.escapeRegex(v)).join(".."); + } + return value; + }; + var syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; + }; + var parse = (input, options) => { + if (typeof input !== "string") { + throw new TypeError("Expected a string"); + } + input = REPLACEMENTS[input] || input; + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + const bos = { + type: "bos", + value: "", + output: opts.prepend || "" + }; + const tokens = [bos]; + const capture = opts.capture ? "" : "?:"; + const win32 = utils.isWindows(options); + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + const globstar = (opts2) => { + return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + const nodot = opts.dot ? "" : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + if (opts.capture) { + star = `(${star})`; + } + if (typeof opts.noext === "boolean") { + opts.noextglob = opts.noext; + } + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: "", + output: "", + prefix: "", + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; + input = utils.removePrefix(input, state); + len = input.length; + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index] || ""; + const remaining = () => input.slice(state.index + 1); + const consume = (value2 = "", num = 0) => { + state.consumed += value2; + state.index += num; + }; + const append = (token) => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + const negate = () => { + let count = 1; + while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) { + advance(); + state.start++; + count++; + } + if (count % 2 === 0) { + return false; + } + state.negated = true; + state.start++; + return true; + }; + const increment = (type) => { + state[type]++; + stack.push(type); + }; + const decrement = (type) => { + state[type]--; + stack.pop(); + }; + const push = (tok) => { + if (prev.type === "globstar") { + const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"); + const isExtglob = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); + if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = "star"; + prev.value = "*"; + prev.output = star; + state.output += prev.output; + } + } + if (extglobs.length && tok.type !== "paren") { + extglobs[extglobs.length - 1].inner += tok.value; + } + if (tok.value || tok.output) + append(tok); + if (prev && prev.type === "text" && tok.type === "text") { + prev.value += tok.value; + prev.output = (prev.output || "") + tok.value; + return; + } + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; + const extglobOpen = (type, value2) => { + const token = Object.assign(Object.assign({}, EXTGLOB_CHARS[value2]), {}, { + conditions: 1, + inner: "" + }); + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? "(" : "") + token.open; + increment("parens"); + push({ + type, + value: value2, + output: state.output ? "" : ONE_CHAR + }); + push({ + type: "paren", + extglob: true, + value: advance(), + output + }); + extglobs.push(token); + }; + const extglobClose = (token) => { + let output = token.close + (opts.capture ? ")" : ""); + let rest; + if (token.type === "negate") { + let extglobStar = star; + if (token.inner && token.inner.length > 1 && token.inner.includes("/")) { + extglobStar = globstar(opts); + } + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + const expression = parse(rest, Object.assign(Object.assign({}, options), {}, { + fastpaths: false + })).output; + output = token.close = `)${expression})${extglobStar})`; + } + if (token.prev.type === "bos") { + state.negatedExtglob = true; + } + } + push({ + type: "paren", + extglob: true, + value, + output + }); + decrement("parens"); + }; + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === "\\") { + backslashes = true; + return m; + } + if (first === "?") { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ""); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ""); + } + return QMARK.repeat(chars.length); + } + if (first === ".") { + return DOT_LITERAL.repeat(chars.length); + } + if (first === "*") { + if (esc) { + return esc + first + (rest ? star : ""); + } + return star; + } + return esc ? m : `\\${m}`; + }); + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ""); + } else { + output = output.replace(/\\+/g, (m) => { + return m.length % 2 === 0 ? "\\\\" : m ? "\\" : ""; + }); + } + } + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + state.output = utils.wrapOutput(output, state, options); + return state; + } + while (!eos()) { + value = advance(); + if (value === "\0") { + continue; + } + if (value === "\\") { + const next = peek(); + if (next === "/" && opts.bash !== true) { + continue; + } + if (next === "." || next === ";") { + continue; + } + if (!next) { + value += "\\"; + push({ + type: "text", + value + }); + continue; + } + const match = /^\\+/.exec(remaining()); + let slashes = 0; + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += "\\"; + } + } + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } + if (state.brackets === 0) { + push({ + type: "text", + value + }); + continue; + } + } + if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) { + if (opts.posix !== false && value === ":") { + const inner = prev.value.slice(1); + if (inner.includes("[")) { + prev.posix = true; + if (inner.includes(":")) { + const idx = prev.value.lastIndexOf("["); + const pre = prev.value.slice(0, idx); + const rest2 = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest2]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } + if (value === "[" && peek() !== ":" || value === "-" && peek() === "]") { + value = `\\${value}`; + } + if (value === "]" && (prev.value === "[" || prev.value === "[^")) { + value = `\\${value}`; + } + if (opts.posix === true && value === "!" && prev.value === "[") { + value = "^"; + } + prev.value += value; + append({ + value + }); + continue; + } + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ + value + }); + continue; + } + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ + type: "text", + value + }); + } + continue; + } + if (value === "(") { + increment("parens"); + push({ + type: "paren", + value + }); + continue; + } + if (value === ")") { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("opening", "(")); + } + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } + push({ + type: "paren", + value, + output: state.parens ? ")" : "\\)" + }); + decrement("parens"); + continue; + } + if (value === "[") { + if (opts.nobracket === true || !remaining().includes("]")) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("closing", "]")); + } + value = `\\${value}`; + } else { + increment("brackets"); + } + push({ + type: "bracket", + value + }); + continue; + } + if (value === "]") { + if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) { + push({ + type: "text", + value, + output: `\\${value}` + }); + continue; + } + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError("opening", "[")); + } + push({ + type: "text", + value, + output: `\\${value}` + }); + continue; + } + decrement("brackets"); + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) { + value = `/${value}`; + } + prev.value += value; + append({ + value + }); + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + continue; + } + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + if (value === "{" && opts.nobrace !== true) { + increment("braces"); + const open = { + type: "brace", + value, + output: "(", + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + braces.push(open); + push(open); + continue; + } + if (value === "}") { + const brace = braces[braces.length - 1]; + if (opts.nobrace === true || !brace) { + push({ + type: "text", + value, + output: value + }); + continue; + } + let output = ")"; + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === "brace") { + break; + } + if (arr[i].type !== "dots") { + range.unshift(arr[i].value); + } + } + output = expandRange(range, opts); + state.backtrack = true; + } + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = "\\{"; + value = output = "\\}"; + state.output = out; + for (const t of toks) { + state.output += t.output || t.value; + } + } + push({ + type: "brace", + value, + output + }); + decrement("braces"); + braces.pop(); + continue; + } + if (value === "|") { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ + type: "text", + value + }); + continue; + } + if (value === ",") { + let output = value; + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === "braces") { + brace.comma = true; + output = "|"; + } + push({ + type: "comma", + value, + output + }); + continue; + } + if (value === "/") { + if (prev.type === "dot" && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ""; + state.output = ""; + tokens.pop(); + prev = bos; + continue; + } + push({ + type: "slash", + value, + output: SLASH_LITERAL + }); + continue; + } + if (value === ".") { + if (state.braces > 0 && prev.type === "dot") { + if (prev.value === ".") + prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = "dots"; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } + if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { + push({ + type: "text", + value, + output: DOT_LITERAL + }); + continue; + } + push({ + type: "dot", + value, + output: DOT_LITERAL + }); + continue; + } + if (value === "?") { + const isGroup = prev && prev.value === "("; + if (!isGroup && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + extglobOpen("qmark", value); + continue; + } + if (prev && prev.type === "paren") { + const next = peek(); + let output = value; + if (next === "<" && !utils.supportsLookbehinds()) { + throw new Error("Node.js v10 or higher is required for regex lookbehinds"); + } + if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) { + output = `\\${value}`; + } + push({ + type: "text", + value, + output + }); + continue; + } + if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) { + push({ + type: "qmark", + value, + output: QMARK_NO_DOT + }); + continue; + } + push({ + type: "qmark", + value, + output: QMARK + }); + continue; + } + if (value === "!") { + if (opts.noextglob !== true && peek() === "(") { + if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) { + extglobOpen("negate", value); + continue; + } + } + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } + if (value === "+") { + if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + extglobOpen("plus", value); + continue; + } + if (prev && prev.value === "(" || opts.regex === false) { + push({ + type: "plus", + value, + output: PLUS_LITERAL + }); + continue; + } + if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { + push({ + type: "plus", + value + }); + continue; + } + push({ + type: "plus", + value: PLUS_LITERAL + }); + continue; + } + if (value === "@") { + if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { + push({ + type: "at", + extglob: true, + value, + output: "" + }); + continue; + } + push({ + type: "text", + value + }); + continue; + } + if (value !== "*") { + if (value === "$" || value === "^") { + value = `\\${value}`; + } + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } + push({ + type: "text", + value + }); + continue; + } + if (prev && (prev.type === "globstar" || prev.star === true)) { + prev.type = "star"; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen("star", value); + continue; + } + if (prev.type === "star") { + if (opts.noglobstar === true) { + consume(value); + continue; + } + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === "slash" || prior.type === "bos"; + const afterStar = before && (before.type === "star" || before.type === "globstar"); + if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) { + push({ + type: "star", + value, + output: "" + }); + continue; + } + const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"); + const isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); + if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) { + push({ + type: "star", + value, + output: "" + }); + continue; + } + while (rest.slice(0, 3) === "/**") { + const after = input[state.index + 4]; + if (after && after !== "/") { + break; + } + rest = rest.slice(3); + consume("/**", 3); + } + if (prior.type === "bos" && eos()) { + prev.type = "globstar"; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; + } + if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = "globstar"; + prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } + if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { + const end = rest[1] !== void 0 ? "|$" : ""; + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = "globstar"; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + state.output += prior.output + prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: "slash", + value: "/", + output: "" + }); + continue; + } + if (prior.type === "bos" && rest[0] === "/") { + prev.type = "globstar"; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: "slash", + value: "/", + output: "" + }); + continue; + } + state.output = state.output.slice(0, -prev.output.length); + prev.type = "globstar"; + prev.output = globstar(opts); + prev.value += value; + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } + const token = { + type: "star", + value, + output: star + }; + if (opts.bash === true) { + token.output = ".*?"; + if (prev.type === "bos" || prev.type === "slash") { + token.output = nodot + token.output; + } + push(token); + continue; + } + if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) { + token.output = value; + push(token); + continue; + } + if (state.index === state.start || prev.type === "slash" || prev.type === "dot") { + if (prev.type === "dot") { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + } else { + state.output += nodot; + prev.output += nodot; + } + if (peek() !== "*") { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } + push(token); + } + while (state.brackets > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", "]")); + state.output = utils.escapeLast(state.output, "["); + decrement("brackets"); + } + while (state.parens > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", ")")); + state.output = utils.escapeLast(state.output, "("); + decrement("parens"); + } + while (state.braces > 0) { + if (opts.strictBrackets === true) + throw new SyntaxError(syntaxError("closing", "}")); + state.output = utils.escapeLast(state.output, "{"); + decrement("braces"); + } + if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) { + push({ + type: "maybe_slash", + value: "", + output: `${SLASH_LITERAL}?` + }); + } + if (state.backtrack === true) { + state.output = ""; + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; + if (token.suffix) { + state.output += token.suffix; + } + } + } + return state; + }; + parse.fastpaths = (input, options) => { + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? "" : "?:"; + const state = { + negated: false, + prefix: "" + }; + let star = opts.bash === true ? ".*?" : STAR; + if (opts.capture) { + star = `(${star})`; + } + const globstar = (opts2) => { + if (opts2.noglobstar === true) + return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + const create = (str) => { + switch (str) { + case "*": + return `${nodot}${ONE_CHAR}${star}`; + case ".*": + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + case "*.*": + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + case "*/*": + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + case "**": + return nodot + globstar(opts); + case "**/*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + case "**/*.*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + case "**/.*": + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) + return; + const source2 = create(match[1]); + if (!source2) + return; + return source2 + DOT_LITERAL + match[2]; + } + } + }; + const output = utils.removePrefix(input, state); + let source = create(output); + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + return source; + }; + module2.exports = parse; + } +}); +var require_picomatch = __commonJS2({ + "node_modules/picomatch/lib/picomatch.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var scan = require_scan(); + var parse = require_parse2(); + var utils = require_utils3(); + var constants = require_constants3(); + var isObject = (val) => val && typeof val === "object" && !Array.isArray(val); + var picomatch = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map((input) => picomatch(input, options, returnState)); + const arrayMatcher = (str) => { + for (const isMatch of fns) { + const state2 = isMatch(str); + if (state2) + return state2; + } + return false; + }; + return arrayMatcher; + } + const isState = isObject(glob) && glob.tokens && glob.input; + if (glob === "" || typeof glob !== "string" && !isState) { + throw new TypeError("Expected pattern to be a non-empty string"); + } + const opts = options || {}; + const posix = utils.isWindows(options); + const regex = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, false, true); + const state = regex.state; + delete regex.state; + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = Object.assign(Object.assign({}, options), {}, { + ignore: null, + onMatch: null, + onResult: null + }); + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } + const matcher = (input, returnObject = false) => { + const { + isMatch, + match, + output + } = picomatch.test(input, regex, options, { + glob, + posix + }); + const result = { + glob, + state, + regex, + posix, + input, + output, + match, + isMatch + }; + if (typeof opts.onResult === "function") { + opts.onResult(result); + } + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } + if (isIgnored(input)) { + if (typeof opts.onIgnore === "function") { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } + if (typeof opts.onMatch === "function") { + opts.onMatch(result); + } + return returnObject ? result : true; + }; + if (returnState) { + matcher.state = state; + } + return matcher; + }; + picomatch.test = (input, regex, options, { + glob, + posix + } = {}) => { + if (typeof input !== "string") { + throw new TypeError("Expected input to be a string"); + } + if (input === "") { + return { + isMatch: false, + output: "" + }; + } + const opts = options || {}; + const format = opts.format || (posix ? utils.toPosixSlashes : null); + let match = input === glob; + let output = match && format ? format(input) : input; + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } + return { + isMatch: Boolean(match), + match, + output + }; + }; + picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); + return regex.test(path.basename(input)); + }; + picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) + return pattern.map((p) => picomatch.parse(p, options)); + return parse(pattern, Object.assign(Object.assign({}, options), {}, { + fastpaths: false + })); + }; + picomatch.scan = (input, options) => scan(input, options); + picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; + } + const opts = options || {}; + const prepend = opts.contains ? "" : "^"; + const append = opts.contains ? "" : "$"; + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; + } + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = state; + } + return regex; + }; + picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== "string") { + throw new TypeError("Expected a non-empty string"); + } + let parsed = { + negated: false, + fastpaths: true + }; + if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) { + parsed.output = parse.fastpaths(input, options); + } + if (!parsed.output) { + parsed = parse(input, options); + } + return picomatch.compileRe(parsed, options, returnOutput, returnState); + }; + picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); + } catch (err) { + if (options && options.debug === true) + throw err; + return /$^/; + } + }; + picomatch.constants = constants; + module2.exports = picomatch; + } +}); +var require_picomatch2 = __commonJS2({ + "node_modules/picomatch/index.js"(exports2, module2) { + "use strict"; + module2.exports = require_picomatch(); + } +}); +var require_micromatch = __commonJS2({ + "node_modules/micromatch/index.js"(exports2, module2) { + "use strict"; + var util = require("util"); + var braces = require_braces(); + var picomatch = require_picomatch2(); + var utils = require_utils3(); + var isEmptyString = (val) => val === "" || val === "./"; + var micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + let omit = /* @__PURE__ */ new Set(); + let keep = /* @__PURE__ */ new Set(); + let items = /* @__PURE__ */ new Set(); + let negatives = 0; + let onResult = (state) => { + items.add(state.output); + if (options && options.onResult) { + options.onResult(state); + } + }; + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), Object.assign(Object.assign({}, options), {}, { + onResult + }), true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) + negatives++; + for (let item of list) { + let matched = isMatch(item, true); + let match = negated ? !matched.isMatch : matched.isMatch; + if (!match) + continue; + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); + } + } + } + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter((item) => !omit.has(item)); + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(", ")}"`); + } + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map((p) => p.replace(/\\/g, "")) : patterns; + } + } + return matches; + }; + micromatch.match = micromatch; + micromatch.matcher = (pattern, options) => picomatch(pattern, options); + micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + micromatch.any = micromatch.isMatch; + micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = /* @__PURE__ */ new Set(); + let items = []; + let onResult = (state) => { + if (options.onResult) + options.onResult(state); + items.push(state.output); + }; + let matches = new Set(micromatch(list, patterns, Object.assign(Object.assign({}, options), {}, { + onResult + }))); + for (let item of items) { + if (!matches.has(item)) { + result.add(item); + } + } + return [...result]; + }; + micromatch.contains = (str, pattern, options) => { + if (typeof str !== "string") { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + if (Array.isArray(pattern)) { + return pattern.some((p) => micromatch.contains(str, p, options)); + } + if (typeof pattern === "string") { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; + } + if (str.includes(pattern) || str.startsWith("./") && str.slice(2).includes(pattern)) { + return true; + } + } + return micromatch.isMatch(str, pattern, Object.assign(Object.assign({}, options), {}, { + contains: true + })); + }; + micromatch.matchKeys = (obj, patterns, options) => { + if (!utils.isObject(obj)) { + throw new TypeError("Expected the first argument to be an object"); + } + let keys = micromatch(Object.keys(obj), patterns, options); + let res = {}; + for (let key of keys) + res[key] = obj[key]; + return res; + }; + micromatch.some = (list, patterns, options) => { + let items = [].concat(list); + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (items.some((item) => isMatch(item))) { + return true; + } + } + return false; + }; + micromatch.every = (list, patterns, options) => { + let items = [].concat(list); + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (!items.every((item) => isMatch(item))) { + return false; + } + } + return true; + }; + micromatch.all = (str, patterns, options) => { + if (typeof str !== "string") { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + return [].concat(patterns).every((p) => picomatch(p, options)(str)); + }; + micromatch.capture = (glob, input, options) => { + let posix = utils.isWindows(options); + let regex = picomatch.makeRe(String(glob), Object.assign(Object.assign({}, options), {}, { + capture: true + })); + let match = regex.exec(posix ? utils.toPosixSlashes(input) : input); + if (match) { + return match.slice(1).map((v) => v === void 0 ? "" : v); + } + }; + micromatch.makeRe = (...args) => picomatch.makeRe(...args); + micromatch.scan = (...args) => picomatch.scan(...args); + micromatch.parse = (patterns, options) => { + let res = []; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } + } + return res; + }; + micromatch.braces = (pattern, options) => { + if (typeof pattern !== "string") + throw new TypeError("Expected a string"); + if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { + return [pattern]; + } + return braces(pattern, options); + }; + micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== "string") + throw new TypeError("Expected a string"); + return micromatch.braces(pattern, Object.assign(Object.assign({}, options), {}, { + expand: true + })); + }; + module2.exports = micromatch; + } +}); +var require_parser2 = __commonJS2({ + "node_modules/@iarna/toml/lib/parser.js"(exports2, module2) { + "use strict"; + var ParserEND = 1114112; + var ParserError = class extends Error { + constructor(msg, filename, linenumber) { + super("[ParserError] " + msg, filename, linenumber); + this.name = "ParserError"; + this.code = "ParserError"; + if (Error.captureStackTrace) + Error.captureStackTrace(this, ParserError); + } + }; + var State = class { + constructor(parser) { + this.parser = parser; + this.buf = ""; + this.returned = null; + this.result = null; + this.resultTable = null; + this.resultArr = null; + } + }; + var Parser = class { + constructor() { + this.pos = 0; + this.col = 0; + this.line = 0; + this.obj = {}; + this.ctx = this.obj; + this.stack = []; + this._buf = ""; + this.char = null; + this.ii = 0; + this.state = new State(this.parseStart); + } + parse(str) { + if (str.length === 0 || str.length == null) + return; + this._buf = String(str); + this.ii = -1; + this.char = -1; + let getNext; + while (getNext === false || this.nextChar()) { + getNext = this.runOne(); + } + this._buf = null; + } + nextChar() { + if (this.char === 10) { + ++this.line; + this.col = -1; + } + ++this.ii; + this.char = this._buf.codePointAt(this.ii); + ++this.pos; + ++this.col; + return this.haveBuffer(); + } + haveBuffer() { + return this.ii < this._buf.length; + } + runOne() { + return this.state.parser.call(this, this.state.returned); + } + finish() { + this.char = ParserEND; + let last; + do { + last = this.state.parser; + this.runOne(); + } while (this.state.parser !== last); + this.ctx = null; + this.state = null; + this._buf = null; + return this.obj; + } + next(fn) { + if (typeof fn !== "function") + throw new ParserError("Tried to set state to non-existent state: " + JSON.stringify(fn)); + this.state.parser = fn; + } + goto(fn) { + this.next(fn); + return this.runOne(); + } + call(fn, returnWith) { + if (returnWith) + this.next(returnWith); + this.stack.push(this.state); + this.state = new State(fn); + } + callNow(fn, returnWith) { + this.call(fn, returnWith); + return this.runOne(); + } + return(value) { + if (this.stack.length === 0) + throw this.error(new ParserError("Stack underflow")); + if (value === void 0) + value = this.state.buf; + this.state = this.stack.pop(); + this.state.returned = value; + } + returnNow(value) { + this.return(value); + return this.runOne(); + } + consume() { + if (this.char === ParserEND) + throw this.error(new ParserError("Unexpected end-of-buffer")); + this.state.buf += this._buf[this.ii]; + } + error(err) { + err.line = this.line; + err.col = this.col; + err.pos = this.pos; + return err; + } + parseStart() { + throw new ParserError("Must declare a parseStart method"); + } + }; + Parser.END = ParserEND; + Parser.Error = ParserError; + module2.exports = Parser; + } +}); +var require_create_datetime = __commonJS2({ + "node_modules/@iarna/toml/lib/create-datetime.js"(exports2, module2) { + "use strict"; + module2.exports = (value) => { + const date = new Date(value); + if (isNaN(date)) { + throw new TypeError("Invalid Datetime"); + } else { + return date; + } + }; + } +}); +var require_format_num = __commonJS2({ + "node_modules/@iarna/toml/lib/format-num.js"(exports2, module2) { + "use strict"; + module2.exports = (d, num) => { + num = String(num); + while (num.length < d) + num = "0" + num; + return num; + }; + } +}); +var require_create_datetime_float = __commonJS2({ + "node_modules/@iarna/toml/lib/create-datetime-float.js"(exports2, module2) { + "use strict"; + var f = require_format_num(); + var FloatingDateTime = class extends Date { + constructor(value) { + super(value + "Z"); + this.isFloating = true; + } + toISOString() { + const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`; + const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`; + return `${date}T${time}`; + } + }; + module2.exports = (value) => { + const date = new FloatingDateTime(value); + if (isNaN(date)) { + throw new TypeError("Invalid Datetime"); + } else { + return date; + } + }; + } +}); +var require_create_date = __commonJS2({ + "node_modules/@iarna/toml/lib/create-date.js"(exports2, module2) { + "use strict"; + var f = require_format_num(); + var DateTime = global.Date; + var Date2 = class extends DateTime { + constructor(value) { + super(value); + this.isDate = true; + } + toISOString() { + return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}`; + } + }; + module2.exports = (value) => { + const date = new Date2(value); + if (isNaN(date)) { + throw new TypeError("Invalid Datetime"); + } else { + return date; + } + }; + } +}); +var require_create_time = __commonJS2({ + "node_modules/@iarna/toml/lib/create-time.js"(exports2, module2) { + "use strict"; + var f = require_format_num(); + var Time = class extends Date { + constructor(value) { + super(`0000-01-01T${value}Z`); + this.isTime = true; + } + toISOString() { + return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}`; + } + }; + module2.exports = (value) => { + const date = new Time(value); + if (isNaN(date)) { + throw new TypeError("Invalid Datetime"); + } else { + return date; + } + }; + } +}); +var require_toml_parser = __commonJS2({ + "node_modules/@iarna/toml/lib/toml-parser.js"(exports2, module2) { + "use strict"; + module2.exports = makeParserClass(require_parser2()); + module2.exports.makeParserClass = makeParserClass; + var TomlError = class extends Error { + constructor(msg) { + super(msg); + this.name = "TomlError"; + if (Error.captureStackTrace) + Error.captureStackTrace(this, TomlError); + this.fromTOML = true; + this.wrapped = null; + } + }; + TomlError.wrap = (err) => { + const terr = new TomlError(err.message); + terr.code = err.code; + terr.wrapped = err; + return terr; + }; + module2.exports.TomlError = TomlError; + var createDateTime = require_create_datetime(); + var createDateTimeFloat = require_create_datetime_float(); + var createDate = require_create_date(); + var createTime = require_create_time(); + var CTRL_I = 9; + var CTRL_J = 10; + var CTRL_M = 13; + var CTRL_CHAR_BOUNDARY = 31; + var CHAR_SP = 32; + var CHAR_QUOT = 34; + var CHAR_NUM = 35; + var CHAR_APOS = 39; + var CHAR_PLUS = 43; + var CHAR_COMMA = 44; + var CHAR_HYPHEN = 45; + var CHAR_PERIOD = 46; + var CHAR_0 = 48; + var CHAR_1 = 49; + var CHAR_7 = 55; + var CHAR_9 = 57; + var CHAR_COLON = 58; + var CHAR_EQUALS = 61; + var CHAR_A = 65; + var CHAR_E = 69; + var CHAR_F = 70; + var CHAR_T = 84; + var CHAR_U = 85; + var CHAR_Z = 90; + var CHAR_LOWBAR = 95; + var CHAR_a = 97; + var CHAR_b = 98; + var CHAR_e = 101; + var CHAR_f = 102; + var CHAR_i = 105; + var CHAR_l = 108; + var CHAR_n = 110; + var CHAR_o = 111; + var CHAR_r = 114; + var CHAR_s = 115; + var CHAR_t = 116; + var CHAR_u = 117; + var CHAR_x = 120; + var CHAR_z = 122; + var CHAR_LCUB = 123; + var CHAR_RCUB = 125; + var CHAR_LSQB = 91; + var CHAR_BSOL = 92; + var CHAR_RSQB = 93; + var CHAR_DEL = 127; + var SURROGATE_FIRST = 55296; + var SURROGATE_LAST = 57343; + var escapes = { + [CHAR_b]: "\b", + [CHAR_t]: " ", + [CHAR_n]: "\n", + [CHAR_f]: "\f", + [CHAR_r]: "\r", + [CHAR_QUOT]: '"', + [CHAR_BSOL]: "\\" + }; + function isDigit(cp) { + return cp >= CHAR_0 && cp <= CHAR_9; + } + function isHexit(cp) { + return cp >= CHAR_A && cp <= CHAR_F || cp >= CHAR_a && cp <= CHAR_f || cp >= CHAR_0 && cp <= CHAR_9; + } + function isBit(cp) { + return cp === CHAR_1 || cp === CHAR_0; + } + function isOctit(cp) { + return cp >= CHAR_0 && cp <= CHAR_7; + } + function isAlphaNumQuoteHyphen(cp) { + return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_APOS || cp === CHAR_QUOT || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN; + } + function isAlphaNumHyphen(cp) { + return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN; + } + var _type = Symbol("type"); + var _declared = Symbol("declared"); + var hasOwnProperty = Object.prototype.hasOwnProperty; + var defineProperty = Object.defineProperty; + var descriptor = { + configurable: true, + enumerable: true, + writable: true, + value: void 0 + }; + function hasKey(obj, key) { + if (hasOwnProperty.call(obj, key)) + return true; + if (key === "__proto__") + defineProperty(obj, "__proto__", descriptor); + return false; + } + var INLINE_TABLE = Symbol("inline-table"); + function InlineTable() { + return Object.defineProperties({}, { + [_type]: { + value: INLINE_TABLE + } + }); + } + function isInlineTable(obj) { + if (obj === null || typeof obj !== "object") + return false; + return obj[_type] === INLINE_TABLE; + } + var TABLE = Symbol("table"); + function Table() { + return Object.defineProperties({}, { + [_type]: { + value: TABLE + }, + [_declared]: { + value: false, + writable: true + } + }); + } + function isTable(obj) { + if (obj === null || typeof obj !== "object") + return false; + return obj[_type] === TABLE; + } + var _contentType = Symbol("content-type"); + var INLINE_LIST = Symbol("inline-list"); + function InlineList(type) { + return Object.defineProperties([], { + [_type]: { + value: INLINE_LIST + }, + [_contentType]: { + value: type + } + }); + } + function isInlineList(obj) { + if (obj === null || typeof obj !== "object") + return false; + return obj[_type] === INLINE_LIST; + } + var LIST = Symbol("list"); + function List() { + return Object.defineProperties([], { + [_type]: { + value: LIST + } + }); + } + function isList(obj) { + if (obj === null || typeof obj !== "object") + return false; + return obj[_type] === LIST; + } + var _custom; + try { + const utilInspect = require("util").inspect; + _custom = utilInspect.custom; + } catch (_) { + } + var _inspect = _custom || "inspect"; + var BoxedBigInt = class { + constructor(value) { + try { + this.value = global.BigInt.asIntN(64, value); + } catch (_) { + this.value = null; + } + Object.defineProperty(this, _type, { + value: INTEGER + }); + } + isNaN() { + return this.value === null; + } + toString() { + return String(this.value); + } + [_inspect]() { + return `[BigInt: ${this.toString()}]}`; + } + valueOf() { + return this.value; + } + }; + var INTEGER = Symbol("integer"); + function Integer(value) { + let num = Number(value); + if (Object.is(num, -0)) + num = 0; + if (global.BigInt && !Number.isSafeInteger(num)) { + return new BoxedBigInt(value); + } else { + return Object.defineProperties(new Number(num), { + isNaN: { + value: function() { + return isNaN(this); + } + }, + [_type]: { + value: INTEGER + }, + [_inspect]: { + value: () => `[Integer: ${value}]` + } + }); + } + } + function isInteger(obj) { + if (obj === null || typeof obj !== "object") + return false; + return obj[_type] === INTEGER; + } + var FLOAT = Symbol("float"); + function Float(value) { + return Object.defineProperties(new Number(value), { + [_type]: { + value: FLOAT + }, + [_inspect]: { + value: () => `[Float: ${value}]` + } + }); + } + function isFloat(obj) { + if (obj === null || typeof obj !== "object") + return false; + return obj[_type] === FLOAT; + } + function tomlType(value) { + const type = typeof value; + if (type === "object") { + if (value === null) + return "null"; + if (value instanceof Date) + return "datetime"; + if (_type in value) { + switch (value[_type]) { + case INLINE_TABLE: + return "inline-table"; + case INLINE_LIST: + return "inline-list"; + case TABLE: + return "table"; + case LIST: + return "list"; + case FLOAT: + return "float"; + case INTEGER: + return "integer"; + } + } + } + return type; + } + function makeParserClass(Parser) { + class TOMLParser extends Parser { + constructor() { + super(); + this.ctx = this.obj = Table(); + } + atEndOfWord() { + return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine(); + } + atEndOfLine() { + return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M; + } + parseStart() { + if (this.char === Parser.END) { + return null; + } else if (this.char === CHAR_LSQB) { + return this.call(this.parseTableOrList); + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment); + } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null; + } else if (isAlphaNumQuoteHyphen(this.char)) { + return this.callNow(this.parseAssignStatement); + } else { + throw this.error(new TomlError(`Unknown character "${this.char}"`)); + } + } + parseWhitespaceToEOL() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null; + } else if (this.char === CHAR_NUM) { + return this.goto(this.parseComment); + } else if (this.char === Parser.END || this.char === CTRL_J) { + return this.return(); + } else { + throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line")); + } + } + parseAssignStatement() { + return this.callNow(this.parseAssign, this.recordAssignStatement); + } + recordAssignStatement(kv) { + let target = this.ctx; + let finalKey = kv.key.pop(); + for (let kw of kv.key) { + if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")); + } + target = target[kw] = target[kw] || Table(); + } + if (hasKey(target, finalKey)) { + throw this.error(new TomlError("Can't redefine existing key")); + } + if (isInteger(kv.value) || isFloat(kv.value)) { + target[finalKey] = kv.value.valueOf(); + } else { + target[finalKey] = kv.value; + } + return this.goto(this.parseWhitespaceToEOL); + } + parseAssign() { + return this.callNow(this.parseKeyword, this.recordAssignKeyword); + } + recordAssignKeyword(key) { + if (this.state.resultTable) { + this.state.resultTable.push(key); + } else { + this.state.resultTable = [key]; + } + return this.goto(this.parseAssignKeywordPreDot); + } + parseAssignKeywordPreDot() { + if (this.char === CHAR_PERIOD) { + return this.next(this.parseAssignKeywordPostDot); + } else if (this.char !== CHAR_SP && this.char !== CTRL_I) { + return this.goto(this.parseAssignEqual); + } + } + parseAssignKeywordPostDot() { + if (this.char !== CHAR_SP && this.char !== CTRL_I) { + return this.callNow(this.parseKeyword, this.recordAssignKeyword); + } + } + parseAssignEqual() { + if (this.char === CHAR_EQUALS) { + return this.next(this.parseAssignPreValue); + } else { + throw this.error(new TomlError('Invalid character, expected "="')); + } + } + parseAssignPreValue() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else { + return this.callNow(this.parseValue, this.recordAssignValue); + } + } + recordAssignValue(value) { + return this.returnNow({ + key: this.state.resultTable, + value + }); + } + parseComment() { + do { + if (this.char === Parser.END || this.char === CTRL_J) { + return this.return(); + } + } while (this.nextChar()); + } + parseTableOrList() { + if (this.char === CHAR_LSQB) { + this.next(this.parseList); + } else { + return this.goto(this.parseTable); + } + } + parseTable() { + this.ctx = this.obj; + return this.goto(this.parseTableNext); + } + parseTableNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else { + return this.callNow(this.parseKeyword, this.parseTableMore); + } + } + parseTableMore(keyword) { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === CHAR_RSQB) { + if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")); + } else { + this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table(); + this.ctx[_declared] = true; + } + return this.next(this.parseWhitespaceToEOL); + } else if (this.char === CHAR_PERIOD) { + if (!hasKey(this.ctx, keyword)) { + this.ctx = this.ctx[keyword] = Table(); + } else if (isTable(this.ctx[keyword])) { + this.ctx = this.ctx[keyword]; + } else if (isList(this.ctx[keyword])) { + this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; + } else { + throw this.error(new TomlError("Can't redefine existing key")); + } + return this.next(this.parseTableNext); + } else { + throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]")); + } + } + parseList() { + this.ctx = this.obj; + return this.goto(this.parseListNext); + } + parseListNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else { + return this.callNow(this.parseKeyword, this.parseListMore); + } + } + parseListMore(keyword) { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === CHAR_RSQB) { + if (!hasKey(this.ctx, keyword)) { + this.ctx[keyword] = List(); + } + if (isInlineList(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline array")); + } else if (isList(this.ctx[keyword])) { + const next = Table(); + this.ctx[keyword].push(next); + this.ctx = next; + } else { + throw this.error(new TomlError("Can't redefine an existing key")); + } + return this.next(this.parseListEnd); + } else if (this.char === CHAR_PERIOD) { + if (!hasKey(this.ctx, keyword)) { + this.ctx = this.ctx[keyword] = Table(); + } else if (isInlineList(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline array")); + } else if (isInlineTable(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline table")); + } else if (isList(this.ctx[keyword])) { + this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; + } else if (isTable(this.ctx[keyword])) { + this.ctx = this.ctx[keyword]; + } else { + throw this.error(new TomlError("Can't redefine an existing key")); + } + return this.next(this.parseListNext); + } else { + throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]")); + } + } + parseListEnd(keyword) { + if (this.char === CHAR_RSQB) { + return this.next(this.parseWhitespaceToEOL); + } else { + throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]")); + } + } + parseValue() { + if (this.char === Parser.END) { + throw this.error(new TomlError("Key without value")); + } else if (this.char === CHAR_QUOT) { + return this.next(this.parseDoubleString); + } + if (this.char === CHAR_APOS) { + return this.next(this.parseSingleString); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + return this.goto(this.parseNumberSign); + } else if (this.char === CHAR_i) { + return this.next(this.parseInf); + } else if (this.char === CHAR_n) { + return this.next(this.parseNan); + } else if (isDigit(this.char)) { + return this.goto(this.parseNumberOrDateTime); + } else if (this.char === CHAR_t || this.char === CHAR_f) { + return this.goto(this.parseBoolean); + } else if (this.char === CHAR_LSQB) { + return this.call(this.parseInlineList, this.recordValue); + } else if (this.char === CHAR_LCUB) { + return this.call(this.parseInlineTable, this.recordValue); + } else { + throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table")); + } + } + recordValue(value) { + return this.returnNow(value); + } + parseInf() { + if (this.char === CHAR_n) { + return this.next(this.parseInf2); + } else { + throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); + } + } + parseInf2() { + if (this.char === CHAR_f) { + if (this.state.buf === "-") { + return this.return(-Infinity); + } else { + return this.return(Infinity); + } + } else { + throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); + } + } + parseNan() { + if (this.char === CHAR_a) { + return this.next(this.parseNan2); + } else { + throw this.error(new TomlError('Unexpected character, expected "nan"')); + } + } + parseNan2() { + if (this.char === CHAR_n) { + return this.return(NaN); + } else { + throw this.error(new TomlError('Unexpected character, expected "nan"')); + } + } + parseKeyword() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseBasicString); + } else if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralString); + } else { + return this.goto(this.parseBareKey); + } + } + parseBareKey() { + do { + if (this.char === Parser.END) { + throw this.error(new TomlError("Key ended without value")); + } else if (isAlphaNumHyphen(this.char)) { + this.consume(); + } else if (this.state.buf.length === 0) { + throw this.error(new TomlError("Empty bare keys are not allowed")); + } else { + return this.returnNow(); + } + } while (this.nextChar()); + } + parseSingleString() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiStringMaybe); + } else { + return this.goto(this.parseLiteralString); + } + } + parseLiteralString() { + do { + if (this.char === CHAR_APOS) { + return this.return(); + } else if (this.atEndOfLine()) { + throw this.error(new TomlError("Unterminated string")); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); + } + parseLiteralMultiStringMaybe() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiString); + } else { + return this.returnNow(); + } + } + parseLiteralMultiString() { + if (this.char === CTRL_M) { + return null; + } else if (this.char === CTRL_J) { + return this.next(this.parseLiteralMultiStringContent); + } else { + return this.goto(this.parseLiteralMultiStringContent); + } + } + parseLiteralMultiStringContent() { + do { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiEnd); + } else if (this.char === Parser.END) { + throw this.error(new TomlError("Unterminated multi-line string")); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); + } + parseLiteralMultiEnd() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiEnd2); + } else { + this.state.buf += "'"; + return this.goto(this.parseLiteralMultiStringContent); + } + } + parseLiteralMultiEnd2() { + if (this.char === CHAR_APOS) { + return this.return(); + } else { + this.state.buf += "''"; + return this.goto(this.parseLiteralMultiStringContent); + } + } + parseDoubleString() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiStringMaybe); + } else { + return this.goto(this.parseBasicString); + } + } + parseBasicString() { + do { + if (this.char === CHAR_BSOL) { + return this.call(this.parseEscape, this.recordEscapeReplacement); + } else if (this.char === CHAR_QUOT) { + return this.return(); + } else if (this.atEndOfLine()) { + throw this.error(new TomlError("Unterminated string")); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); + } + recordEscapeReplacement(replacement) { + this.state.buf += replacement; + return this.goto(this.parseBasicString); + } + parseMultiStringMaybe() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiString); + } else { + return this.returnNow(); + } + } + parseMultiString() { + if (this.char === CTRL_M) { + return null; + } else if (this.char === CTRL_J) { + return this.next(this.parseMultiStringContent); + } else { + return this.goto(this.parseMultiStringContent); + } + } + parseMultiStringContent() { + do { + if (this.char === CHAR_BSOL) { + return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement); + } else if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiEnd); + } else if (this.char === Parser.END) { + throw this.error(new TomlError("Unterminated multi-line string")); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); + } + errorControlCharInString() { + let displayCode = "\\u00"; + if (this.char < 16) { + displayCode += "0"; + } + displayCode += this.char.toString(16); + return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`)); + } + recordMultiEscapeReplacement(replacement) { + this.state.buf += replacement; + return this.goto(this.parseMultiStringContent); + } + parseMultiEnd() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiEnd2); + } else { + this.state.buf += '"'; + return this.goto(this.parseMultiStringContent); + } + } + parseMultiEnd2() { + if (this.char === CHAR_QUOT) { + return this.return(); + } else { + this.state.buf += '""'; + return this.goto(this.parseMultiStringContent); + } + } + parseMultiEscape() { + if (this.char === CTRL_M || this.char === CTRL_J) { + return this.next(this.parseMultiTrim); + } else if (this.char === CHAR_SP || this.char === CTRL_I) { + return this.next(this.parsePreMultiTrim); + } else { + return this.goto(this.parseEscape); + } + } + parsePreMultiTrim() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === CTRL_M || this.char === CTRL_J) { + return this.next(this.parseMultiTrim); + } else { + throw this.error(new TomlError("Can't escape whitespace")); + } + } + parseMultiTrim() { + if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null; + } else { + return this.returnNow(); + } + } + parseEscape() { + if (this.char in escapes) { + return this.return(escapes[this.char]); + } else if (this.char === CHAR_u) { + return this.call(this.parseSmallUnicode, this.parseUnicodeReturn); + } else if (this.char === CHAR_U) { + return this.call(this.parseLargeUnicode, this.parseUnicodeReturn); + } else { + throw this.error(new TomlError("Unknown escape character: " + this.char)); + } + } + parseUnicodeReturn(char) { + try { + const codePoint = parseInt(char, 16); + if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) { + throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved")); + } + return this.returnNow(String.fromCodePoint(codePoint)); + } catch (err) { + throw this.error(TomlError.wrap(err)); + } + } + parseSmallUnicode() { + if (!isHexit(this.char)) { + throw this.error(new TomlError("Invalid character in unicode sequence, expected hex")); + } else { + this.consume(); + if (this.state.buf.length >= 4) + return this.return(); + } + } + parseLargeUnicode() { + if (!isHexit(this.char)) { + throw this.error(new TomlError("Invalid character in unicode sequence, expected hex")); + } else { + this.consume(); + if (this.state.buf.length >= 8) + return this.return(); + } + } + parseNumberSign() { + this.consume(); + return this.next(this.parseMaybeSignedInfOrNan); + } + parseMaybeSignedInfOrNan() { + if (this.char === CHAR_i) { + return this.next(this.parseInf); + } else if (this.char === CHAR_n) { + return this.next(this.parseNan); + } else { + return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart); + } + } + parseNumberIntegerStart() { + if (this.char === CHAR_0) { + this.consume(); + return this.next(this.parseNumberIntegerExponentOrDecimal); + } else { + return this.goto(this.parseNumberInteger); + } + } + parseNumberIntegerExponentOrDecimal() { + if (this.char === CHAR_PERIOD) { + this.consume(); + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else { + return this.returnNow(Integer(this.state.buf)); + } + } + parseNumberInteger() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else if (this.char === CHAR_PERIOD) { + this.consume(); + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else { + const result = Integer(this.state.buf); + if (result.isNaN()) { + throw this.error(new TomlError("Invalid number")); + } else { + return this.returnNow(result); + } + } + } + parseNoUnder() { + if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) { + throw this.error(new TomlError("Unexpected character, expected digit")); + } else if (this.atEndOfWord()) { + throw this.error(new TomlError("Incomplete number")); + } + return this.returnNow(); + } + parseNoUnderHexOctBinLiteral() { + if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) { + throw this.error(new TomlError("Unexpected character, expected digit")); + } else if (this.atEndOfWord()) { + throw this.error(new TomlError("Incomplete number")); + } + return this.returnNow(); + } + parseNumberFloat() { + if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else if (isDigit(this.char)) { + this.consume(); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else { + return this.returnNow(Float(this.state.buf)); + } + } + parseNumberExponentSign() { + if (isDigit(this.char)) { + return this.goto(this.parseNumberExponent); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + this.consume(); + this.call(this.parseNoUnder, this.parseNumberExponent); + } else { + throw this.error(new TomlError("Unexpected character, expected -, + or digit")); + } + } + parseNumberExponent() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder); + } else { + return this.returnNow(Float(this.state.buf)); + } + } + parseNumberOrDateTime() { + if (this.char === CHAR_0) { + this.consume(); + return this.next(this.parseNumberBaseOrDateTime); + } else { + return this.goto(this.parseNumberOrDateTimeOnly); + } + } + parseNumberOrDateTimeOnly() { + if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder, this.parseNumberInteger); + } else if (isDigit(this.char)) { + this.consume(); + if (this.state.buf.length > 4) + this.next(this.parseNumberInteger); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else if (this.char === CHAR_PERIOD) { + this.consume(); + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else if (this.char === CHAR_HYPHEN) { + return this.goto(this.parseDateTime); + } else if (this.char === CHAR_COLON) { + return this.goto(this.parseOnlyTimeHour); + } else { + return this.returnNow(Integer(this.state.buf)); + } + } + parseDateTimeOnly() { + if (this.state.buf.length < 4) { + if (isDigit(this.char)) { + return this.consume(); + } else if (this.char === CHAR_COLON) { + return this.goto(this.parseOnlyTimeHour); + } else { + throw this.error(new TomlError("Expected digit while parsing year part of a date")); + } + } else { + if (this.char === CHAR_HYPHEN) { + return this.goto(this.parseDateTime); + } else { + throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date")); + } + } + } + parseNumberBaseOrDateTime() { + if (this.char === CHAR_b) { + this.consume(); + return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin); + } else if (this.char === CHAR_o) { + this.consume(); + return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct); + } else if (this.char === CHAR_x) { + this.consume(); + return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex); + } else if (this.char === CHAR_PERIOD) { + return this.goto(this.parseNumberInteger); + } else if (isDigit(this.char)) { + return this.goto(this.parseDateTimeOnly); + } else { + return this.returnNow(Integer(this.state.buf)); + } + } + parseIntegerHex() { + if (isHexit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnderHexOctBinLiteral); + } else { + const result = Integer(this.state.buf); + if (result.isNaN()) { + throw this.error(new TomlError("Invalid number")); + } else { + return this.returnNow(result); + } + } + } + parseIntegerOct() { + if (isOctit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnderHexOctBinLiteral); + } else { + const result = Integer(this.state.buf); + if (result.isNaN()) { + throw this.error(new TomlError("Invalid number")); + } else { + return this.returnNow(result); + } + } + } + parseIntegerBin() { + if (isBit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnderHexOctBinLiteral); + } else { + const result = Integer(this.state.buf); + if (result.isNaN()) { + throw this.error(new TomlError("Invalid number")); + } else { + return this.returnNow(result); + } + } + } + parseDateTime() { + if (this.state.buf.length < 4) { + throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters")); + } + this.state.result = this.state.buf; + this.state.buf = ""; + return this.next(this.parseDateMonth); + } + parseDateMonth() { + if (this.char === CHAR_HYPHEN) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError("Months less than 10 must be zero padded to two characters")); + } + this.state.result += "-" + this.state.buf; + this.state.buf = ""; + return this.next(this.parseDateDay); + } else if (isDigit(this.char)) { + this.consume(); + } else { + throw this.error(new TomlError("Incomplete datetime")); + } + } + parseDateDay() { + if (this.char === CHAR_T || this.char === CHAR_SP) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError("Days less than 10 must be zero padded to two characters")); + } + this.state.result += "-" + this.state.buf; + this.state.buf = ""; + return this.next(this.parseStartTimeHour); + } else if (this.atEndOfWord()) { + return this.returnNow(createDate(this.state.result + "-" + this.state.buf)); + } else if (isDigit(this.char)) { + this.consume(); + } else { + throw this.error(new TomlError("Incomplete datetime")); + } + } + parseStartTimeHour() { + if (this.atEndOfWord()) { + return this.returnNow(createDate(this.state.result)); + } else { + return this.goto(this.parseTimeHour); + } + } + parseTimeHour() { + if (this.char === CHAR_COLON) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters")); + } + this.state.result += "T" + this.state.buf; + this.state.buf = ""; + return this.next(this.parseTimeMin); + } else if (isDigit(this.char)) { + this.consume(); + } else { + throw this.error(new TomlError("Incomplete datetime")); + } + } + parseTimeMin() { + if (this.state.buf.length < 2 && isDigit(this.char)) { + this.consume(); + } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { + this.state.result += ":" + this.state.buf; + this.state.buf = ""; + return this.next(this.parseTimeSec); + } else { + throw this.error(new TomlError("Incomplete datetime")); + } + } + parseTimeSec() { + if (isDigit(this.char)) { + this.consume(); + if (this.state.buf.length === 2) { + this.state.result += ":" + this.state.buf; + this.state.buf = ""; + return this.next(this.parseTimeZoneOrFraction); + } + } else { + throw this.error(new TomlError("Incomplete datetime")); + } + } + parseOnlyTimeHour() { + if (this.char === CHAR_COLON) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters")); + } + this.state.result = this.state.buf; + this.state.buf = ""; + return this.next(this.parseOnlyTimeMin); + } else { + throw this.error(new TomlError("Incomplete time")); + } + } + parseOnlyTimeMin() { + if (this.state.buf.length < 2 && isDigit(this.char)) { + this.consume(); + } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { + this.state.result += ":" + this.state.buf; + this.state.buf = ""; + return this.next(this.parseOnlyTimeSec); + } else { + throw this.error(new TomlError("Incomplete time")); + } + } + parseOnlyTimeSec() { + if (isDigit(this.char)) { + this.consume(); + if (this.state.buf.length === 2) { + return this.next(this.parseOnlyTimeFractionMaybe); + } + } else { + throw this.error(new TomlError("Incomplete time")); + } + } + parseOnlyTimeFractionMaybe() { + this.state.result += ":" + this.state.buf; + if (this.char === CHAR_PERIOD) { + this.state.buf = ""; + this.next(this.parseOnlyTimeFraction); + } else { + return this.return(createTime(this.state.result)); + } + } + parseOnlyTimeFraction() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.atEndOfWord()) { + if (this.state.buf.length === 0) + throw this.error(new TomlError("Expected digit in milliseconds")); + return this.returnNow(createTime(this.state.result + "." + this.state.buf)); + } else { + throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z")); + } + } + parseTimeZoneOrFraction() { + if (this.char === CHAR_PERIOD) { + this.consume(); + this.next(this.parseDateTimeFraction); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + this.consume(); + this.next(this.parseTimeZoneHour); + } else if (this.char === CHAR_Z) { + this.consume(); + return this.return(createDateTime(this.state.result + this.state.buf)); + } else if (this.atEndOfWord()) { + return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)); + } else { + throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z")); + } + } + parseDateTimeFraction() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.state.buf.length === 1) { + throw this.error(new TomlError("Expected digit in milliseconds")); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + this.consume(); + this.next(this.parseTimeZoneHour); + } else if (this.char === CHAR_Z) { + this.consume(); + return this.return(createDateTime(this.state.result + this.state.buf)); + } else if (this.atEndOfWord()) { + return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)); + } else { + throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z")); + } + } + parseTimeZoneHour() { + if (isDigit(this.char)) { + this.consume(); + if (/\d\d$/.test(this.state.buf)) + return this.next(this.parseTimeZoneSep); + } else { + throw this.error(new TomlError("Unexpected character in datetime, expected digit")); + } + } + parseTimeZoneSep() { + if (this.char === CHAR_COLON) { + this.consume(); + this.next(this.parseTimeZoneMin); + } else { + throw this.error(new TomlError("Unexpected character in datetime, expected colon")); + } + } + parseTimeZoneMin() { + if (isDigit(this.char)) { + this.consume(); + if (/\d\d$/.test(this.state.buf)) + return this.return(createDateTime(this.state.result + this.state.buf)); + } else { + throw this.error(new TomlError("Unexpected character in datetime, expected digit")); + } + } + parseBoolean() { + if (this.char === CHAR_t) { + this.consume(); + return this.next(this.parseTrue_r); + } else if (this.char === CHAR_f) { + this.consume(); + return this.next(this.parseFalse_a); + } + } + parseTrue_r() { + if (this.char === CHAR_r) { + this.consume(); + return this.next(this.parseTrue_u); + } else { + throw this.error(new TomlError("Invalid boolean, expected true or false")); + } + } + parseTrue_u() { + if (this.char === CHAR_u) { + this.consume(); + return this.next(this.parseTrue_e); + } else { + throw this.error(new TomlError("Invalid boolean, expected true or false")); + } + } + parseTrue_e() { + if (this.char === CHAR_e) { + return this.return(true); + } else { + throw this.error(new TomlError("Invalid boolean, expected true or false")); + } + } + parseFalse_a() { + if (this.char === CHAR_a) { + this.consume(); + return this.next(this.parseFalse_l); + } else { + throw this.error(new TomlError("Invalid boolean, expected true or false")); + } + } + parseFalse_l() { + if (this.char === CHAR_l) { + this.consume(); + return this.next(this.parseFalse_s); + } else { + throw this.error(new TomlError("Invalid boolean, expected true or false")); + } + } + parseFalse_s() { + if (this.char === CHAR_s) { + this.consume(); + return this.next(this.parseFalse_e); + } else { + throw this.error(new TomlError("Invalid boolean, expected true or false")); + } + } + parseFalse_e() { + if (this.char === CHAR_e) { + return this.return(false); + } else { + throw this.error(new TomlError("Invalid boolean, expected true or false")); + } + } + parseInlineList() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { + return null; + } else if (this.char === Parser.END) { + throw this.error(new TomlError("Unterminated inline array")); + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment); + } else if (this.char === CHAR_RSQB) { + return this.return(this.state.resultArr || InlineList()); + } else { + return this.callNow(this.parseValue, this.recordInlineListValue); + } + } + recordInlineListValue(value) { + if (this.state.resultArr) { + const listType = this.state.resultArr[_contentType]; + const valueType = tomlType(value); + if (listType !== valueType) { + throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`)); + } + } else { + this.state.resultArr = InlineList(tomlType(value)); + } + if (isFloat(value) || isInteger(value)) { + this.state.resultArr.push(value.valueOf()); + } else { + this.state.resultArr.push(value); + } + return this.goto(this.parseInlineListNext); + } + parseInlineListNext() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { + return null; + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment); + } else if (this.char === CHAR_COMMA) { + return this.next(this.parseInlineList); + } else if (this.char === CHAR_RSQB) { + return this.goto(this.parseInlineList); + } else { + throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])")); + } + } + parseInlineTable() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { + throw this.error(new TomlError("Unterminated inline array")); + } else if (this.char === CHAR_RCUB) { + return this.return(this.state.resultTable || InlineTable()); + } else { + if (!this.state.resultTable) + this.state.resultTable = InlineTable(); + return this.callNow(this.parseAssign, this.recordInlineTableValue); + } + } + recordInlineTableValue(kv) { + let target = this.state.resultTable; + let finalKey = kv.key.pop(); + for (let kw of kv.key) { + if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")); + } + target = target[kw] = target[kw] || Table(); + } + if (hasKey(target, finalKey)) { + throw this.error(new TomlError("Can't redefine existing key")); + } + if (isInteger(kv.value) || isFloat(kv.value)) { + target[finalKey] = kv.value.valueOf(); + } else { + target[finalKey] = kv.value; + } + return this.goto(this.parseInlineTableNext); + } + parseInlineTableNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { + throw this.error(new TomlError("Unterminated inline array")); + } else if (this.char === CHAR_COMMA) { + return this.next(this.parseInlineTable); + } else if (this.char === CHAR_RCUB) { + return this.goto(this.parseInlineTable); + } else { + throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])")); + } + } + } + return TOMLParser; + } + } +}); +var require_parse_pretty_error = __commonJS2({ + "node_modules/@iarna/toml/parse-pretty-error.js"(exports2, module2) { + "use strict"; + module2.exports = prettyError; + function prettyError(err, buf) { + if (err.pos == null || err.line == null) + return err; + let msg = err.message; + msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}: +`; + if (buf && buf.split) { + const lines = buf.split(/\n/); + const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length; + let linePadding = " "; + while (linePadding.length < lineNumWidth) + linePadding += " "; + for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) { + let lineNum = String(ii + 1); + if (lineNum.length < lineNumWidth) + lineNum = " " + lineNum; + if (err.line === ii) { + msg += lineNum + "> " + lines[ii] + "\n"; + msg += linePadding + " "; + for (let hh = 0; hh < err.col; ++hh) { + msg += " "; + } + msg += "^\n"; + } else { + msg += lineNum + ": " + lines[ii] + "\n"; + } + } + } + err.message = msg + "\n"; + return err; + } + } +}); +var require_parse_string = __commonJS2({ + "node_modules/@iarna/toml/parse-string.js"(exports2, module2) { + "use strict"; + module2.exports = parseString; + var TOMLParser = require_toml_parser(); + var prettyError = require_parse_pretty_error(); + function parseString(str) { + if (global.Buffer && global.Buffer.isBuffer(str)) { + str = str.toString("utf8"); + } + const parser = new TOMLParser(); + try { + parser.parse(str); + return parser.finish(); + } catch (err) { + throw prettyError(err, str); + } + } + } +}); +var require_load_toml = __commonJS2({ + "src/utils/load-toml.js"(exports2, module2) { + "use strict"; + var parse = require_parse_string(); + module2.exports = function(filePath, content) { + try { + return parse(content); + } catch (error) { + error.message = `TOML Error in ${filePath}: +${error.message}`; + throw error; + } + }; + } +}); +var require_unicode = __commonJS2({ + "node_modules/json5/lib/unicode.js"(exports2, module2) { + module2.exports.Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/; + module2.exports.ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/; + module2.exports.ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/; + } +}); +var require_util2 = __commonJS2({ + "node_modules/json5/lib/util.js"(exports2, module2) { + var unicode = require_unicode(); + module2.exports = { + isSpaceSeparator(c) { + return typeof c === "string" && unicode.Space_Separator.test(c); + }, + isIdStartChar(c) { + return typeof c === "string" && (c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c === "$" || c === "_" || unicode.ID_Start.test(c)); + }, + isIdContinueChar(c) { + return typeof c === "string" && (c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c >= "0" && c <= "9" || c === "$" || c === "_" || c === "\u200C" || c === "\u200D" || unicode.ID_Continue.test(c)); + }, + isDigit(c) { + return typeof c === "string" && /[0-9]/.test(c); + }, + isHexDigit(c) { + return typeof c === "string" && /[0-9A-Fa-f]/.test(c); + } + }; + } +}); +var require_parse3 = __commonJS2({ + "node_modules/json5/lib/parse.js"(exports2, module2) { + var util = require_util2(); + var source; + var parseState; + var stack; + var pos; + var line; + var column; + var token; + var key; + var root; + module2.exports = function parse(text, reviver) { + source = String(text); + parseState = "start"; + stack = []; + pos = 0; + line = 1; + column = 0; + token = void 0; + key = void 0; + root = void 0; + do { + token = lex(); + parseStates[parseState](); + } while (token.type !== "eof"); + if (typeof reviver === "function") { + return internalize({ + "": root + }, "", reviver); + } + return root; + }; + function internalize(holder, name, reviver) { + const value = holder[name]; + if (value != null && typeof value === "object") { + for (const key2 in value) { + const replacement = internalize(value, key2, reviver); + if (replacement === void 0) { + delete value[key2]; + } else { + value[key2] = replacement; + } + } + } + return reviver.call(holder, name, value); + } + var lexState; + var buffer; + var doubleQuote; + var sign; + var c; + function lex() { + lexState = "default"; + buffer = ""; + doubleQuote = false; + sign = 1; + for (; ; ) { + c = peek(); + const token2 = lexStates[lexState](); + if (token2) { + return token2; + } + } + } + function peek() { + if (source[pos]) { + return String.fromCodePoint(source.codePointAt(pos)); + } + } + function read() { + const c2 = peek(); + if (c2 === "\n") { + line++; + column = 0; + } else if (c2) { + column += c2.length; + } else { + column++; + } + if (c2) { + pos += c2.length; + } + return c2; + } + var lexStates = { + default() { + switch (c) { + case " ": + case "\v": + case "\f": + case " ": + case "\xA0": + case "\uFEFF": + case "\n": + case "\r": + case "\u2028": + case "\u2029": + read(); + return; + case "/": + read(); + lexState = "comment"; + return; + case void 0: + read(); + return newToken("eof"); + } + if (util.isSpaceSeparator(c)) { + read(); + return; + } + return lexStates[parseState](); + }, + comment() { + switch (c) { + case "*": + read(); + lexState = "multiLineComment"; + return; + case "/": + read(); + lexState = "singleLineComment"; + return; + } + throw invalidChar(read()); + }, + multiLineComment() { + switch (c) { + case "*": + read(); + lexState = "multiLineCommentAsterisk"; + return; + case void 0: + throw invalidChar(read()); + } + read(); + }, + multiLineCommentAsterisk() { + switch (c) { + case "*": + read(); + return; + case "/": + read(); + lexState = "default"; + return; + case void 0: + throw invalidChar(read()); + } + read(); + lexState = "multiLineComment"; + }, + singleLineComment() { + switch (c) { + case "\n": + case "\r": + case "\u2028": + case "\u2029": + read(); + lexState = "default"; + return; + case void 0: + read(); + return newToken("eof"); + } + read(); + }, + value() { + switch (c) { + case "{": + case "[": + return newToken("punctuator", read()); + case "n": + read(); + literal("ull"); + return newToken("null", null); + case "t": + read(); + literal("rue"); + return newToken("boolean", true); + case "f": + read(); + literal("alse"); + return newToken("boolean", false); + case "-": + case "+": + if (read() === "-") { + sign = -1; + } + lexState = "sign"; + return; + case ".": + buffer = read(); + lexState = "decimalPointLeading"; + return; + case "0": + buffer = read(); + lexState = "zero"; + return; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + buffer = read(); + lexState = "decimalInteger"; + return; + case "I": + read(); + literal("nfinity"); + return newToken("numeric", Infinity); + case "N": + read(); + literal("aN"); + return newToken("numeric", NaN); + case '"': + case "'": + doubleQuote = read() === '"'; + buffer = ""; + lexState = "string"; + return; + } + throw invalidChar(read()); + }, + identifierNameStartEscape() { + if (c !== "u") { + throw invalidChar(read()); + } + read(); + const u = unicodeEscape(); + switch (u) { + case "$": + case "_": + break; + default: + if (!util.isIdStartChar(u)) { + throw invalidIdentifier(); + } + break; + } + buffer += u; + lexState = "identifierName"; + }, + identifierName() { + switch (c) { + case "$": + case "_": + case "\u200C": + case "\u200D": + buffer += read(); + return; + case "\\": + read(); + lexState = "identifierNameEscape"; + return; + } + if (util.isIdContinueChar(c)) { + buffer += read(); + return; + } + return newToken("identifier", buffer); + }, + identifierNameEscape() { + if (c !== "u") { + throw invalidChar(read()); + } + read(); + const u = unicodeEscape(); + switch (u) { + case "$": + case "_": + case "\u200C": + case "\u200D": + break; + default: + if (!util.isIdContinueChar(u)) { + throw invalidIdentifier(); + } + break; + } + buffer += u; + lexState = "identifierName"; + }, + sign() { + switch (c) { + case ".": + buffer = read(); + lexState = "decimalPointLeading"; + return; + case "0": + buffer = read(); + lexState = "zero"; + return; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + buffer = read(); + lexState = "decimalInteger"; + return; + case "I": + read(); + literal("nfinity"); + return newToken("numeric", sign * Infinity); + case "N": + read(); + literal("aN"); + return newToken("numeric", NaN); + } + throw invalidChar(read()); + }, + zero() { + switch (c) { + case ".": + buffer += read(); + lexState = "decimalPoint"; + return; + case "e": + case "E": + buffer += read(); + lexState = "decimalExponent"; + return; + case "x": + case "X": + buffer += read(); + lexState = "hexadecimal"; + return; + } + return newToken("numeric", sign * 0); + }, + decimalInteger() { + switch (c) { + case ".": + buffer += read(); + lexState = "decimalPoint"; + return; + case "e": + case "E": + buffer += read(); + lexState = "decimalExponent"; + return; + } + if (util.isDigit(c)) { + buffer += read(); + return; + } + return newToken("numeric", sign * Number(buffer)); + }, + decimalPointLeading() { + if (util.isDigit(c)) { + buffer += read(); + lexState = "decimalFraction"; + return; + } + throw invalidChar(read()); + }, + decimalPoint() { + switch (c) { + case "e": + case "E": + buffer += read(); + lexState = "decimalExponent"; + return; + } + if (util.isDigit(c)) { + buffer += read(); + lexState = "decimalFraction"; + return; + } + return newToken("numeric", sign * Number(buffer)); + }, + decimalFraction() { + switch (c) { + case "e": + case "E": + buffer += read(); + lexState = "decimalExponent"; + return; + } + if (util.isDigit(c)) { + buffer += read(); + return; + } + return newToken("numeric", sign * Number(buffer)); + }, + decimalExponent() { + switch (c) { + case "+": + case "-": + buffer += read(); + lexState = "decimalExponentSign"; + return; + } + if (util.isDigit(c)) { + buffer += read(); + lexState = "decimalExponentInteger"; + return; + } + throw invalidChar(read()); + }, + decimalExponentSign() { + if (util.isDigit(c)) { + buffer += read(); + lexState = "decimalExponentInteger"; + return; + } + throw invalidChar(read()); + }, + decimalExponentInteger() { + if (util.isDigit(c)) { + buffer += read(); + return; + } + return newToken("numeric", sign * Number(buffer)); + }, + hexadecimal() { + if (util.isHexDigit(c)) { + buffer += read(); + lexState = "hexadecimalInteger"; + return; + } + throw invalidChar(read()); + }, + hexadecimalInteger() { + if (util.isHexDigit(c)) { + buffer += read(); + return; + } + return newToken("numeric", sign * Number(buffer)); + }, + string() { + switch (c) { + case "\\": + read(); + buffer += escape(); + return; + case '"': + if (doubleQuote) { + read(); + return newToken("string", buffer); + } + buffer += read(); + return; + case "'": + if (!doubleQuote) { + read(); + return newToken("string", buffer); + } + buffer += read(); + return; + case "\n": + case "\r": + throw invalidChar(read()); + case "\u2028": + case "\u2029": + separatorChar(c); + break; + case void 0: + throw invalidChar(read()); + } + buffer += read(); + }, + start() { + switch (c) { + case "{": + case "[": + return newToken("punctuator", read()); + } + lexState = "value"; + }, + beforePropertyName() { + switch (c) { + case "$": + case "_": + buffer = read(); + lexState = "identifierName"; + return; + case "\\": + read(); + lexState = "identifierNameStartEscape"; + return; + case "}": + return newToken("punctuator", read()); + case '"': + case "'": + doubleQuote = read() === '"'; + lexState = "string"; + return; + } + if (util.isIdStartChar(c)) { + buffer += read(); + lexState = "identifierName"; + return; + } + throw invalidChar(read()); + }, + afterPropertyName() { + if (c === ":") { + return newToken("punctuator", read()); + } + throw invalidChar(read()); + }, + beforePropertyValue() { + lexState = "value"; + }, + afterPropertyValue() { + switch (c) { + case ",": + case "}": + return newToken("punctuator", read()); + } + throw invalidChar(read()); + }, + beforeArrayValue() { + if (c === "]") { + return newToken("punctuator", read()); + } + lexState = "value"; + }, + afterArrayValue() { + switch (c) { + case ",": + case "]": + return newToken("punctuator", read()); + } + throw invalidChar(read()); + }, + end() { + throw invalidChar(read()); + } + }; + function newToken(type, value) { + return { + type, + value, + line, + column + }; + } + function literal(s) { + for (const c2 of s) { + const p = peek(); + if (p !== c2) { + throw invalidChar(read()); + } + read(); + } + } + function escape() { + const c2 = peek(); + switch (c2) { + case "b": + read(); + return "\b"; + case "f": + read(); + return "\f"; + case "n": + read(); + return "\n"; + case "r": + read(); + return "\r"; + case "t": + read(); + return " "; + case "v": + read(); + return "\v"; + case "0": + read(); + if (util.isDigit(peek())) { + throw invalidChar(read()); + } + return "\0"; + case "x": + read(); + return hexEscape(); + case "u": + read(); + return unicodeEscape(); + case "\n": + case "\u2028": + case "\u2029": + read(); + return ""; + case "\r": + read(); + if (peek() === "\n") { + read(); + } + return ""; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + throw invalidChar(read()); + case void 0: + throw invalidChar(read()); + } + return read(); + } + function hexEscape() { + let buffer2 = ""; + let c2 = peek(); + if (!util.isHexDigit(c2)) { + throw invalidChar(read()); + } + buffer2 += read(); + c2 = peek(); + if (!util.isHexDigit(c2)) { + throw invalidChar(read()); + } + buffer2 += read(); + return String.fromCodePoint(parseInt(buffer2, 16)); + } + function unicodeEscape() { + let buffer2 = ""; + let count = 4; + while (count-- > 0) { + const c2 = peek(); + if (!util.isHexDigit(c2)) { + throw invalidChar(read()); + } + buffer2 += read(); + } + return String.fromCodePoint(parseInt(buffer2, 16)); + } + var parseStates = { + start() { + if (token.type === "eof") { + throw invalidEOF(); + } + push(); + }, + beforePropertyName() { + switch (token.type) { + case "identifier": + case "string": + key = token.value; + parseState = "afterPropertyName"; + return; + case "punctuator": + pop(); + return; + case "eof": + throw invalidEOF(); + } + }, + afterPropertyName() { + if (token.type === "eof") { + throw invalidEOF(); + } + parseState = "beforePropertyValue"; + }, + beforePropertyValue() { + if (token.type === "eof") { + throw invalidEOF(); + } + push(); + }, + beforeArrayValue() { + if (token.type === "eof") { + throw invalidEOF(); + } + if (token.type === "punctuator" && token.value === "]") { + pop(); + return; + } + push(); + }, + afterPropertyValue() { + if (token.type === "eof") { + throw invalidEOF(); + } + switch (token.value) { + case ",": + parseState = "beforePropertyName"; + return; + case "}": + pop(); + } + }, + afterArrayValue() { + if (token.type === "eof") { + throw invalidEOF(); + } + switch (token.value) { + case ",": + parseState = "beforeArrayValue"; + return; + case "]": + pop(); + } + }, + end() { + } + }; + function push() { + let value; + switch (token.type) { + case "punctuator": + switch (token.value) { + case "{": + value = {}; + break; + case "[": + value = []; + break; + } + break; + case "null": + case "boolean": + case "numeric": + case "string": + value = token.value; + break; + } + if (root === void 0) { + root = value; + } else { + const parent = stack[stack.length - 1]; + if (Array.isArray(parent)) { + parent.push(value); + } else { + parent[key] = value; + } + } + if (value !== null && typeof value === "object") { + stack.push(value); + if (Array.isArray(value)) { + parseState = "beforeArrayValue"; + } else { + parseState = "beforePropertyName"; + } + } else { + const current = stack[stack.length - 1]; + if (current == null) { + parseState = "end"; + } else if (Array.isArray(current)) { + parseState = "afterArrayValue"; + } else { + parseState = "afterPropertyValue"; + } + } + } + function pop() { + stack.pop(); + const current = stack[stack.length - 1]; + if (current == null) { + parseState = "end"; + } else if (Array.isArray(current)) { + parseState = "afterArrayValue"; + } else { + parseState = "afterPropertyValue"; + } + } + function invalidChar(c2) { + if (c2 === void 0) { + return syntaxError(`JSON5: invalid end of input at ${line}:${column}`); + } + return syntaxError(`JSON5: invalid character '${formatChar(c2)}' at ${line}:${column}`); + } + function invalidEOF() { + return syntaxError(`JSON5: invalid end of input at ${line}:${column}`); + } + function invalidIdentifier() { + column -= 5; + return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`); + } + function separatorChar(c2) { + console.warn(`JSON5: '${formatChar(c2)}' in strings is not valid ECMAScript; consider escaping`); + } + function formatChar(c2) { + const replacements = { + "'": "\\'", + '"': '\\"', + "\\": "\\\\", + "\b": "\\b", + "\f": "\\f", + "\n": "\\n", + "\r": "\\r", + " ": "\\t", + "\v": "\\v", + "\0": "\\0", + "\u2028": "\\u2028", + "\u2029": "\\u2029" + }; + if (replacements[c2]) { + return replacements[c2]; + } + if (c2 < " ") { + const hexString = c2.charCodeAt(0).toString(16); + return "\\x" + ("00" + hexString).substring(hexString.length); + } + return c2; + } + function syntaxError(message) { + const err = new SyntaxError(message); + err.lineNumber = line; + err.columnNumber = column; + return err; + } + } +}); +var require_stringify2 = __commonJS2({ + "node_modules/json5/lib/stringify.js"(exports2, module2) { + var util = require_util2(); + module2.exports = function stringify(value, replacer, space) { + const stack = []; + let indent = ""; + let propertyList; + let replacerFunc; + let gap = ""; + let quote; + if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) { + space = replacer.space; + quote = replacer.quote; + replacer = replacer.replacer; + } + if (typeof replacer === "function") { + replacerFunc = replacer; + } else if (Array.isArray(replacer)) { + propertyList = []; + for (const v of replacer) { + let item; + if (typeof v === "string") { + item = v; + } else if (typeof v === "number" || v instanceof String || v instanceof Number) { + item = String(v); + } + if (item !== void 0 && propertyList.indexOf(item) < 0) { + propertyList.push(item); + } + } + } + if (space instanceof Number) { + space = Number(space); + } else if (space instanceof String) { + space = String(space); + } + if (typeof space === "number") { + if (space > 0) { + space = Math.min(10, Math.floor(space)); + gap = " ".substr(0, space); + } + } else if (typeof space === "string") { + gap = space.substr(0, 10); + } + return serializeProperty("", { + "": value + }); + function serializeProperty(key, holder) { + let value2 = holder[key]; + if (value2 != null) { + if (typeof value2.toJSON5 === "function") { + value2 = value2.toJSON5(key); + } else if (typeof value2.toJSON === "function") { + value2 = value2.toJSON(key); + } + } + if (replacerFunc) { + value2 = replacerFunc.call(holder, key, value2); + } + if (value2 instanceof Number) { + value2 = Number(value2); + } else if (value2 instanceof String) { + value2 = String(value2); + } else if (value2 instanceof Boolean) { + value2 = value2.valueOf(); + } + switch (value2) { + case null: + return "null"; + case true: + return "true"; + case false: + return "false"; + } + if (typeof value2 === "string") { + return quoteString(value2, false); + } + if (typeof value2 === "number") { + return String(value2); + } + if (typeof value2 === "object") { + return Array.isArray(value2) ? serializeArray(value2) : serializeObject(value2); + } + return void 0; + } + function quoteString(value2) { + const quotes = { + "'": 0.1, + '"': 0.2 + }; + const replacements = { + "'": "\\'", + '"': '\\"', + "\\": "\\\\", + "\b": "\\b", + "\f": "\\f", + "\n": "\\n", + "\r": "\\r", + " ": "\\t", + "\v": "\\v", + "\0": "\\0", + "\u2028": "\\u2028", + "\u2029": "\\u2029" + }; + let product = ""; + for (let i = 0; i < value2.length; i++) { + const c = value2[i]; + switch (c) { + case "'": + case '"': + quotes[c]++; + product += c; + continue; + case "\0": + if (util.isDigit(value2[i + 1])) { + product += "\\x00"; + continue; + } + } + if (replacements[c]) { + product += replacements[c]; + continue; + } + if (c < " ") { + let hexString = c.charCodeAt(0).toString(16); + product += "\\x" + ("00" + hexString).substring(hexString.length); + continue; + } + product += c; + } + const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b); + product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]); + return quoteChar + product + quoteChar; + } + function serializeObject(value2) { + if (stack.indexOf(value2) >= 0) { + throw TypeError("Converting circular structure to JSON5"); + } + stack.push(value2); + let stepback = indent; + indent = indent + gap; + let keys = propertyList || Object.keys(value2); + let partial = []; + for (const key of keys) { + const propertyString = serializeProperty(key, value2); + if (propertyString !== void 0) { + let member = serializeKey(key) + ":"; + if (gap !== "") { + member += " "; + } + member += propertyString; + partial.push(member); + } + } + let final; + if (partial.length === 0) { + final = "{}"; + } else { + let properties; + if (gap === "") { + properties = partial.join(","); + final = "{" + properties + "}"; + } else { + let separator = ",\n" + indent; + properties = partial.join(separator); + final = "{\n" + indent + properties + ",\n" + stepback + "}"; + } + } + stack.pop(); + indent = stepback; + return final; + } + function serializeKey(key) { + if (key.length === 0) { + return quoteString(key, true); + } + const firstChar = String.fromCodePoint(key.codePointAt(0)); + if (!util.isIdStartChar(firstChar)) { + return quoteString(key, true); + } + for (let i = firstChar.length; i < key.length; i++) { + if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) { + return quoteString(key, true); + } + } + return key; + } + function serializeArray(value2) { + if (stack.indexOf(value2) >= 0) { + throw TypeError("Converting circular structure to JSON5"); + } + stack.push(value2); + let stepback = indent; + indent = indent + gap; + let partial = []; + for (let i = 0; i < value2.length; i++) { + const propertyString = serializeProperty(String(i), value2); + partial.push(propertyString !== void 0 ? propertyString : "null"); + } + let final; + if (partial.length === 0) { + final = "[]"; + } else { + if (gap === "") { + let properties = partial.join(","); + final = "[" + properties + "]"; + } else { + let separator = ",\n" + indent; + let properties = partial.join(separator); + final = "[\n" + indent + properties + ",\n" + stepback + "]"; + } + } + stack.pop(); + indent = stepback; + return final; + } + }; + } +}); +var require_lib6 = __commonJS2({ + "node_modules/json5/lib/index.js"(exports2, module2) { + var parse = require_parse3(); + var stringify = require_stringify2(); + var JSON5 = { + parse, + stringify + }; + module2.exports = JSON5; + } +}); +var require_load_json5 = __commonJS2({ + "src/utils/load-json5.js"(exports2, module2) { + "use strict"; + var { + parse + } = require_lib6(); + module2.exports = function(filePath, content) { + try { + return parse(content); + } catch (error) { + error.message = `JSON5 Error in ${filePath}: +${error.message}`; + throw error; + } + }; + } +}); +var require_partition = __commonJS2({ + "src/utils/partition.js"(exports2, module2) { + "use strict"; + function partition(array, predicate) { + const result = [[], []]; + for (const value of array) { + result[predicate(value) ? 0 : 1].push(value); + } + return result; + } + module2.exports = partition; + } +}); +var require_homedir = __commonJS2({ + "node_modules/resolve/lib/homedir.js"(exports2, module2) { + "use strict"; + var os = require("os"); + module2.exports = os.homedir || function homedir() { + var home = process.env.HOME; + var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME; + if (process.platform === "win32") { + return process.env.USERPROFILE || process.env.HOMEDRIVE + process.env.HOMEPATH || home || null; + } + if (process.platform === "darwin") { + return home || (user ? "/Users/" + user : null); + } + if (process.platform === "linux") { + return home || (process.getuid() === 0 ? "/root" : user ? "/home/" + user : null); + } + return home || null; + }; + } +}); +var require_caller = __commonJS2({ + "node_modules/resolve/lib/caller.js"(exports2, module2) { + module2.exports = function() { + var origPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = function(_, stack2) { + return stack2; + }; + var stack = new Error().stack; + Error.prepareStackTrace = origPrepareStackTrace; + return stack[2].getFileName(); + }; + } +}); +var require_path_parse = __commonJS2({ + "node_modules/path-parse/index.js"(exports2, module2) { + "use strict"; + var isWindows = process.platform === "win32"; + var splitWindowsRe = /^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/; + var win32 = {}; + function win32SplitPath(filename) { + return splitWindowsRe.exec(filename).slice(1); + } + win32.parse = function(pathString) { + if (typeof pathString !== "string") { + throw new TypeError("Parameter 'pathString' must be a string, not " + typeof pathString); + } + var allParts = win32SplitPath(pathString); + if (!allParts || allParts.length !== 5) { + throw new TypeError("Invalid path '" + pathString + "'"); + } + return { + root: allParts[1], + dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1), + base: allParts[2], + ext: allParts[4], + name: allParts[3] + }; + }; + var splitPathRe = /^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/; + var posix = {}; + function posixSplitPath(filename) { + return splitPathRe.exec(filename).slice(1); + } + posix.parse = function(pathString) { + if (typeof pathString !== "string") { + throw new TypeError("Parameter 'pathString' must be a string, not " + typeof pathString); + } + var allParts = posixSplitPath(pathString); + if (!allParts || allParts.length !== 5) { + throw new TypeError("Invalid path '" + pathString + "'"); + } + return { + root: allParts[1], + dir: allParts[0].slice(0, -1), + base: allParts[2], + ext: allParts[4], + name: allParts[3] + }; + }; + if (isWindows) + module2.exports = win32.parse; + else + module2.exports = posix.parse; + module2.exports.posix = posix.parse; + module2.exports.win32 = win32.parse; + } +}); +var require_node_modules_paths = __commonJS2({ + "node_modules/resolve/lib/node-modules-paths.js"(exports2, module2) { + var path = require("path"); + var parse = path.parse || require_path_parse(); + var getNodeModulesDirs = function getNodeModulesDirs2(absoluteStart, modules) { + var prefix = "/"; + if (/^([A-Za-z]:)/.test(absoluteStart)) { + prefix = ""; + } else if (/^\\\\/.test(absoluteStart)) { + prefix = "\\\\"; + } + var paths = [absoluteStart]; + var parsed = parse(absoluteStart); + while (parsed.dir !== paths[paths.length - 1]) { + paths.push(parsed.dir); + parsed = parse(parsed.dir); + } + return paths.reduce(function(dirs, aPath) { + return dirs.concat(modules.map(function(moduleDir) { + return path.resolve(prefix, aPath, moduleDir); + })); + }, []); + }; + module2.exports = function nodeModulesPaths(start, opts, request) { + var modules = opts && opts.moduleDirectory ? [].concat(opts.moduleDirectory) : ["node_modules"]; + if (opts && typeof opts.paths === "function") { + return opts.paths(request, start, function() { + return getNodeModulesDirs(start, modules); + }, opts); + } + var dirs = getNodeModulesDirs(start, modules); + return opts && opts.paths ? dirs.concat(opts.paths) : dirs; + }; + } +}); +var require_normalize_options = __commonJS2({ + "node_modules/resolve/lib/normalize-options.js"(exports2, module2) { + module2.exports = function(x, opts) { + return opts || {}; + }; + } +}); +var require_implementation = __commonJS2({ + "node_modules/function-bind/implementation.js"(exports2, module2) { + "use strict"; + var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; + var slice = Array.prototype.slice; + var toStr = Object.prototype.toString; + var funcType = "[object Function]"; + module2.exports = function bind(that) { + var target = this; + if (typeof target !== "function" || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + var bound; + var binder = function() { + if (this instanceof bound) { + var result = target.apply(this, args.concat(slice.call(arguments))); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply(that, args.concat(slice.call(arguments))); + } + }; + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push("$" + i); + } + bound = Function("binder", "return function (" + boundArgs.join(",") + "){ return binder.apply(this,arguments); }")(binder); + if (target.prototype) { + var Empty = function Empty2() { + }; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; + } +}); +var require_function_bind = __commonJS2({ + "node_modules/function-bind/index.js"(exports2, module2) { + "use strict"; + var implementation = require_implementation(); + module2.exports = Function.prototype.bind || implementation; + } +}); +var require_src = __commonJS2({ + "node_modules/has/src/index.js"(exports2, module2) { + "use strict"; + var bind = require_function_bind(); + module2.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); + } +}); +var require_core2 = __commonJS2({ + "node_modules/is-core-module/core.json"(exports2, module2) { + module2.exports = { + assert: true, + "node:assert": [">= 14.18 && < 15", ">= 16"], + "assert/strict": ">= 15", + "node:assert/strict": ">= 16", + async_hooks: ">= 8", + "node:async_hooks": [">= 14.18 && < 15", ">= 16"], + buffer_ieee754: ">= 0.5 && < 0.9.7", + buffer: true, + "node:buffer": [">= 14.18 && < 15", ">= 16"], + child_process: true, + "node:child_process": [">= 14.18 && < 15", ">= 16"], + cluster: ">= 0.5", + "node:cluster": [">= 14.18 && < 15", ">= 16"], + console: true, + "node:console": [">= 14.18 && < 15", ">= 16"], + constants: true, + "node:constants": [">= 14.18 && < 15", ">= 16"], + crypto: true, + "node:crypto": [">= 14.18 && < 15", ">= 16"], + _debug_agent: ">= 1 && < 8", + _debugger: "< 8", + dgram: true, + "node:dgram": [">= 14.18 && < 15", ">= 16"], + diagnostics_channel: [">= 14.17 && < 15", ">= 15.1"], + "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"], + dns: true, + "node:dns": [">= 14.18 && < 15", ">= 16"], + "dns/promises": ">= 15", + "node:dns/promises": ">= 16", + domain: ">= 0.7.12", + "node:domain": [">= 14.18 && < 15", ">= 16"], + events: true, + "node:events": [">= 14.18 && < 15", ">= 16"], + freelist: "< 6", + fs: true, + "node:fs": [">= 14.18 && < 15", ">= 16"], + "fs/promises": [">= 10 && < 10.1", ">= 14"], + "node:fs/promises": [">= 14.18 && < 15", ">= 16"], + _http_agent: ">= 0.11.1", + "node:_http_agent": [">= 14.18 && < 15", ">= 16"], + _http_client: ">= 0.11.1", + "node:_http_client": [">= 14.18 && < 15", ">= 16"], + _http_common: ">= 0.11.1", + "node:_http_common": [">= 14.18 && < 15", ">= 16"], + _http_incoming: ">= 0.11.1", + "node:_http_incoming": [">= 14.18 && < 15", ">= 16"], + _http_outgoing: ">= 0.11.1", + "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"], + _http_server: ">= 0.11.1", + "node:_http_server": [">= 14.18 && < 15", ">= 16"], + http: true, + "node:http": [">= 14.18 && < 15", ">= 16"], + http2: ">= 8.8", + "node:http2": [">= 14.18 && < 15", ">= 16"], + https: true, + "node:https": [">= 14.18 && < 15", ">= 16"], + inspector: ">= 8", + "node:inspector": [">= 14.18 && < 15", ">= 16"], + _linklist: "< 8", + module: true, + "node:module": [">= 14.18 && < 15", ">= 16"], + net: true, + "node:net": [">= 14.18 && < 15", ">= 16"], + "node-inspect/lib/_inspect": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", + os: true, + "node:os": [">= 14.18 && < 15", ">= 16"], + path: true, + "node:path": [">= 14.18 && < 15", ">= 16"], + "path/posix": ">= 15.3", + "node:path/posix": ">= 16", + "path/win32": ">= 15.3", + "node:path/win32": ">= 16", + perf_hooks: ">= 8.5", + "node:perf_hooks": [">= 14.18 && < 15", ">= 16"], + process: ">= 1", + "node:process": [">= 14.18 && < 15", ">= 16"], + punycode: ">= 0.5", + "node:punycode": [">= 14.18 && < 15", ">= 16"], + querystring: true, + "node:querystring": [">= 14.18 && < 15", ">= 16"], + readline: true, + "node:readline": [">= 14.18 && < 15", ">= 16"], + "readline/promises": ">= 17", + "node:readline/promises": ">= 17", + repl: true, + "node:repl": [">= 14.18 && < 15", ">= 16"], + smalloc: ">= 0.11.5 && < 3", + _stream_duplex: ">= 0.9.4", + "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"], + _stream_transform: ">= 0.9.4", + "node:_stream_transform": [">= 14.18 && < 15", ">= 16"], + _stream_wrap: ">= 1.4.1", + "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"], + _stream_passthrough: ">= 0.9.4", + "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"], + _stream_readable: ">= 0.9.4", + "node:_stream_readable": [">= 14.18 && < 15", ">= 16"], + _stream_writable: ">= 0.9.4", + "node:_stream_writable": [">= 14.18 && < 15", ">= 16"], + stream: true, + "node:stream": [">= 14.18 && < 15", ">= 16"], + "stream/consumers": ">= 16.7", + "node:stream/consumers": ">= 16.7", + "stream/promises": ">= 15", + "node:stream/promises": ">= 16", + "stream/web": ">= 16.5", + "node:stream/web": ">= 16.5", + string_decoder: true, + "node:string_decoder": [">= 14.18 && < 15", ">= 16"], + sys: [">= 0.4 && < 0.7", ">= 0.8"], + "node:sys": [">= 14.18 && < 15", ">= 16"], + timers: true, + "node:timers": [">= 14.18 && < 15", ">= 16"], + "timers/promises": ">= 15", + "node:timers/promises": ">= 16", + _tls_common: ">= 0.11.13", + "node:_tls_common": [">= 14.18 && < 15", ">= 16"], + _tls_legacy: ">= 0.11.3 && < 10", + _tls_wrap: ">= 0.11.3", + "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"], + tls: true, + "node:tls": [">= 14.18 && < 15", ">= 16"], + trace_events: ">= 10", + "node:trace_events": [">= 14.18 && < 15", ">= 16"], + tty: true, + "node:tty": [">= 14.18 && < 15", ">= 16"], + url: true, + "node:url": [">= 14.18 && < 15", ">= 16"], + util: true, + "node:util": [">= 14.18 && < 15", ">= 16"], + "util/types": ">= 15.3", + "node:util/types": ">= 16", + "v8/tools/arguments": ">= 10 && < 12", + "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], + v8: ">= 1", + "node:v8": [">= 14.18 && < 15", ">= 16"], + vm: true, + "node:vm": [">= 14.18 && < 15", ">= 16"], + wasi: ">= 13.4 && < 13.5", + worker_threads: ">= 11.7", + "node:worker_threads": [">= 14.18 && < 15", ">= 16"], + zlib: ">= 0.5", + "node:zlib": [">= 14.18 && < 15", ">= 16"] + }; + } +}); +var require_is_core_module = __commonJS2({ + "node_modules/is-core-module/index.js"(exports2, module2) { + "use strict"; + var has = require_src(); + function specifierIncluded(current, specifier) { + var nodeParts = current.split("."); + var parts = specifier.split(" "); + var op = parts.length > 1 ? parts[0] : "="; + var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split("."); + for (var i = 0; i < 3; ++i) { + var cur = parseInt(nodeParts[i] || 0, 10); + var ver = parseInt(versionParts[i] || 0, 10); + if (cur === ver) { + continue; + } + if (op === "<") { + return cur < ver; + } + if (op === ">=") { + return cur >= ver; + } + return false; + } + return op === ">="; + } + function matchesRange(current, range) { + var specifiers = range.split(/ ?&& ?/); + if (specifiers.length === 0) { + return false; + } + for (var i = 0; i < specifiers.length; ++i) { + if (!specifierIncluded(current, specifiers[i])) { + return false; + } + } + return true; + } + function versionIncluded(nodeVersion, specifierValue) { + if (typeof specifierValue === "boolean") { + return specifierValue; + } + var current = typeof nodeVersion === "undefined" ? process.versions && process.versions.node : nodeVersion; + if (typeof current !== "string") { + throw new TypeError(typeof nodeVersion === "undefined" ? "Unable to determine current node version" : "If provided, a valid node version is required"); + } + if (specifierValue && typeof specifierValue === "object") { + for (var i = 0; i < specifierValue.length; ++i) { + if (matchesRange(current, specifierValue[i])) { + return true; + } + } + return false; + } + return matchesRange(current, specifierValue); + } + var data = require_core2(); + module2.exports = function isCore(x, nodeVersion) { + return has(data, x) && versionIncluded(nodeVersion, data[x]); + }; + } +}); +var require_async = __commonJS2({ + "node_modules/resolve/lib/async.js"(exports2, module2) { + var fs = require("fs"); + var getHomedir = require_homedir(); + var path = require("path"); + var caller = require_caller(); + var nodeModulesPaths = require_node_modules_paths(); + var normalizeOptions = require_normalize_options(); + var isCore = require_is_core_module(); + var realpathFS = fs.realpath && typeof fs.realpath.native === "function" ? fs.realpath.native : fs.realpath; + var homedir = getHomedir(); + var defaultPaths = function() { + return [path.join(homedir, ".node_modules"), path.join(homedir, ".node_libraries")]; + }; + var defaultIsFile = function isFile(file, cb) { + fs.stat(file, function(err, stat) { + if (!err) { + return cb(null, stat.isFile() || stat.isFIFO()); + } + if (err.code === "ENOENT" || err.code === "ENOTDIR") + return cb(null, false); + return cb(err); + }); + }; + var defaultIsDir = function isDirectory(dir, cb) { + fs.stat(dir, function(err, stat) { + if (!err) { + return cb(null, stat.isDirectory()); + } + if (err.code === "ENOENT" || err.code === "ENOTDIR") + return cb(null, false); + return cb(err); + }); + }; + var defaultRealpath = function realpath(x, cb) { + realpathFS(x, function(realpathErr, realPath) { + if (realpathErr && realpathErr.code !== "ENOENT") + cb(realpathErr); + else + cb(null, realpathErr ? x : realPath); + }); + }; + var maybeRealpath = function maybeRealpath2(realpath, x, opts, cb) { + if (opts && opts.preserveSymlinks === false) { + realpath(x, cb); + } else { + cb(null, x); + } + }; + var defaultReadPackage = function defaultReadPackage2(readFile, pkgfile, cb) { + readFile(pkgfile, function(readFileErr, body) { + if (readFileErr) + cb(readFileErr); + else { + try { + var pkg = JSON.parse(body); + cb(null, pkg); + } catch (jsonErr) { + cb(null); + } + } + }); + }; + var getPackageCandidates = function getPackageCandidates2(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path.join(dirs[i], x); + } + return dirs; + }; + module2.exports = function resolve(x, options, callback) { + var cb = callback; + var opts = options; + if (typeof options === "function") { + cb = opts; + opts = {}; + } + if (typeof x !== "string") { + var err = new TypeError("Path must be a string."); + return process.nextTick(function() { + cb(err); + }); + } + opts = normalizeOptions(x, opts); + var isFile = opts.isFile || defaultIsFile; + var isDirectory = opts.isDirectory || defaultIsDir; + var readFile = opts.readFile || fs.readFile; + var realpath = opts.realpath || defaultRealpath; + var readPackage = opts.readPackage || defaultReadPackage; + if (opts.readFile && opts.readPackage) { + var conflictErr = new TypeError("`readFile` and `readPackage` are mutually exclusive."); + return process.nextTick(function() { + cb(conflictErr); + }); + } + var packageIterator = opts.packageIterator; + var extensions = opts.extensions || [".js"]; + var includeCoreModules = opts.includeCoreModules !== false; + var basedir = opts.basedir || path.dirname(caller()); + var parent = opts.filename || basedir; + opts.paths = opts.paths || defaultPaths(); + var absoluteStart = path.resolve(basedir); + maybeRealpath(realpath, absoluteStart, opts, function(err2, realStart) { + if (err2) + cb(err2); + else + init(realStart); + }); + var res; + function init(basedir2) { + if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) { + res = path.resolve(basedir2, x); + if (x === "." || x === ".." || x.slice(-1) === "/") + res += "/"; + if (/\/$/.test(x) && res === basedir2) { + loadAsDirectory(res, opts.package, onfile); + } else + loadAsFile(res, opts.package, onfile); + } else if (includeCoreModules && isCore(x)) { + return cb(null, x); + } else + loadNodeModules(x, basedir2, function(err2, n, pkg) { + if (err2) + cb(err2); + else if (n) { + return maybeRealpath(realpath, n, opts, function(err3, realN) { + if (err3) { + cb(err3); + } else { + cb(null, realN, pkg); + } + }); + } else { + var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + moduleError.code = "MODULE_NOT_FOUND"; + cb(moduleError); + } + }); + } + function onfile(err2, m, pkg) { + if (err2) + cb(err2); + else if (m) + cb(null, m, pkg); + else + loadAsDirectory(res, function(err3, d, pkg2) { + if (err3) + cb(err3); + else if (d) { + maybeRealpath(realpath, d, opts, function(err4, realD) { + if (err4) { + cb(err4); + } else { + cb(null, realD, pkg2); + } + }); + } else { + var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + moduleError.code = "MODULE_NOT_FOUND"; + cb(moduleError); + } + }); + } + function loadAsFile(x2, thePackage, callback2) { + var loadAsFilePackage = thePackage; + var cb2 = callback2; + if (typeof loadAsFilePackage === "function") { + cb2 = loadAsFilePackage; + loadAsFilePackage = void 0; + } + var exts = [""].concat(extensions); + load(exts, x2, loadAsFilePackage); + function load(exts2, x3, loadPackage) { + if (exts2.length === 0) + return cb2(null, void 0, loadPackage); + var file = x3 + exts2[0]; + var pkg = loadPackage; + if (pkg) + onpkg(null, pkg); + else + loadpkg(path.dirname(file), onpkg); + function onpkg(err2, pkg_, dir) { + pkg = pkg_; + if (err2) + return cb2(err2); + if (dir && pkg && opts.pathFilter) { + var rfile = path.relative(dir, file); + var rel = rfile.slice(0, rfile.length - exts2[0].length); + var r = opts.pathFilter(pkg, x3, rel); + if (r) + return load([""].concat(extensions.slice()), path.resolve(dir, r), pkg); + } + isFile(file, onex); + } + function onex(err2, ex) { + if (err2) + return cb2(err2); + if (ex) + return cb2(null, file, pkg); + load(exts2.slice(1), x3, pkg); + } + } + } + function loadpkg(dir, cb2) { + if (dir === "" || dir === "/") + return cb2(null); + if (process.platform === "win32" && /^\w:[/\\]*$/.test(dir)) { + return cb2(null); + } + if (/[/\\]node_modules[/\\]*$/.test(dir)) + return cb2(null); + maybeRealpath(realpath, dir, opts, function(unwrapErr, pkgdir) { + if (unwrapErr) + return loadpkg(path.dirname(dir), cb2); + var pkgfile = path.join(pkgdir, "package.json"); + isFile(pkgfile, function(err2, ex) { + if (!ex) + return loadpkg(path.dirname(dir), cb2); + readPackage(readFile, pkgfile, function(err3, pkgParam) { + if (err3) + cb2(err3); + var pkg = pkgParam; + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); + } + cb2(null, pkg, dir); + }); + }); + }); + } + function loadAsDirectory(x2, loadAsDirectoryPackage, callback2) { + var cb2 = callback2; + var fpkg = loadAsDirectoryPackage; + if (typeof fpkg === "function") { + cb2 = fpkg; + fpkg = opts.package; + } + maybeRealpath(realpath, x2, opts, function(unwrapErr, pkgdir) { + if (unwrapErr) + return cb2(unwrapErr); + var pkgfile = path.join(pkgdir, "package.json"); + isFile(pkgfile, function(err2, ex) { + if (err2) + return cb2(err2); + if (!ex) + return loadAsFile(path.join(x2, "index"), fpkg, cb2); + readPackage(readFile, pkgfile, function(err3, pkgParam) { + if (err3) + return cb2(err3); + var pkg = pkgParam; + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); + } + if (pkg && pkg.main) { + if (typeof pkg.main !== "string") { + var mainError = new TypeError("package \u201C" + pkg.name + "\u201D `main` must be a string"); + mainError.code = "INVALID_PACKAGE_MAIN"; + return cb2(mainError); + } + if (pkg.main === "." || pkg.main === "./") { + pkg.main = "index"; + } + loadAsFile(path.resolve(x2, pkg.main), pkg, function(err4, m, pkg2) { + if (err4) + return cb2(err4); + if (m) + return cb2(null, m, pkg2); + if (!pkg2) + return loadAsFile(path.join(x2, "index"), pkg2, cb2); + var dir = path.resolve(x2, pkg2.main); + loadAsDirectory(dir, pkg2, function(err5, n, pkg3) { + if (err5) + return cb2(err5); + if (n) + return cb2(null, n, pkg3); + loadAsFile(path.join(x2, "index"), pkg3, cb2); + }); + }); + return; + } + loadAsFile(path.join(x2, "/index"), pkg, cb2); + }); + }); + }); + } + function processDirs(cb2, dirs) { + if (dirs.length === 0) + return cb2(null, void 0); + var dir = dirs[0]; + isDirectory(path.dirname(dir), isdir); + function isdir(err2, isdir2) { + if (err2) + return cb2(err2); + if (!isdir2) + return processDirs(cb2, dirs.slice(1)); + loadAsFile(dir, opts.package, onfile2); + } + function onfile2(err2, m, pkg) { + if (err2) + return cb2(err2); + if (m) + return cb2(null, m, pkg); + loadAsDirectory(dir, opts.package, ondir); + } + function ondir(err2, n, pkg) { + if (err2) + return cb2(err2); + if (n) + return cb2(null, n, pkg); + processDirs(cb2, dirs.slice(1)); + } + } + function loadNodeModules(x2, start, cb2) { + var thunk = function() { + return getPackageCandidates(x2, start, opts); + }; + processDirs(cb2, packageIterator ? packageIterator(x2, start, thunk, opts) : thunk()); + } + }; + } +}); +var require_core3 = __commonJS2({ + "node_modules/resolve/lib/core.json"(exports2, module2) { + module2.exports = { + assert: true, + "node:assert": [">= 14.18 && < 15", ">= 16"], + "assert/strict": ">= 15", + "node:assert/strict": ">= 16", + async_hooks: ">= 8", + "node:async_hooks": [">= 14.18 && < 15", ">= 16"], + buffer_ieee754: ">= 0.5 && < 0.9.7", + buffer: true, + "node:buffer": [">= 14.18 && < 15", ">= 16"], + child_process: true, + "node:child_process": [">= 14.18 && < 15", ">= 16"], + cluster: ">= 0.5", + "node:cluster": [">= 14.18 && < 15", ">= 16"], + console: true, + "node:console": [">= 14.18 && < 15", ">= 16"], + constants: true, + "node:constants": [">= 14.18 && < 15", ">= 16"], + crypto: true, + "node:crypto": [">= 14.18 && < 15", ">= 16"], + _debug_agent: ">= 1 && < 8", + _debugger: "< 8", + dgram: true, + "node:dgram": [">= 14.18 && < 15", ">= 16"], + diagnostics_channel: [">= 14.17 && < 15", ">= 15.1"], + "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"], + dns: true, + "node:dns": [">= 14.18 && < 15", ">= 16"], + "dns/promises": ">= 15", + "node:dns/promises": ">= 16", + domain: ">= 0.7.12", + "node:domain": [">= 14.18 && < 15", ">= 16"], + events: true, + "node:events": [">= 14.18 && < 15", ">= 16"], + freelist: "< 6", + fs: true, + "node:fs": [">= 14.18 && < 15", ">= 16"], + "fs/promises": [">= 10 && < 10.1", ">= 14"], + "node:fs/promises": [">= 14.18 && < 15", ">= 16"], + _http_agent: ">= 0.11.1", + "node:_http_agent": [">= 14.18 && < 15", ">= 16"], + _http_client: ">= 0.11.1", + "node:_http_client": [">= 14.18 && < 15", ">= 16"], + _http_common: ">= 0.11.1", + "node:_http_common": [">= 14.18 && < 15", ">= 16"], + _http_incoming: ">= 0.11.1", + "node:_http_incoming": [">= 14.18 && < 15", ">= 16"], + _http_outgoing: ">= 0.11.1", + "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"], + _http_server: ">= 0.11.1", + "node:_http_server": [">= 14.18 && < 15", ">= 16"], + http: true, + "node:http": [">= 14.18 && < 15", ">= 16"], + http2: ">= 8.8", + "node:http2": [">= 14.18 && < 15", ">= 16"], + https: true, + "node:https": [">= 14.18 && < 15", ">= 16"], + inspector: ">= 8", + "node:inspector": [">= 14.18 && < 15", ">= 16"], + _linklist: "< 8", + module: true, + "node:module": [">= 14.18 && < 15", ">= 16"], + net: true, + "node:net": [">= 14.18 && < 15", ">= 16"], + "node-inspect/lib/_inspect": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", + os: true, + "node:os": [">= 14.18 && < 15", ">= 16"], + path: true, + "node:path": [">= 14.18 && < 15", ">= 16"], + "path/posix": ">= 15.3", + "node:path/posix": ">= 16", + "path/win32": ">= 15.3", + "node:path/win32": ">= 16", + perf_hooks: ">= 8.5", + "node:perf_hooks": [">= 14.18 && < 15", ">= 16"], + process: ">= 1", + "node:process": [">= 14.18 && < 15", ">= 16"], + punycode: ">= 0.5", + "node:punycode": [">= 14.18 && < 15", ">= 16"], + querystring: true, + "node:querystring": [">= 14.18 && < 15", ">= 16"], + readline: true, + "node:readline": [">= 14.18 && < 15", ">= 16"], + "readline/promises": ">= 17", + "node:readline/promises": ">= 17", + repl: true, + "node:repl": [">= 14.18 && < 15", ">= 16"], + smalloc: ">= 0.11.5 && < 3", + _stream_duplex: ">= 0.9.4", + "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"], + _stream_transform: ">= 0.9.4", + "node:_stream_transform": [">= 14.18 && < 15", ">= 16"], + _stream_wrap: ">= 1.4.1", + "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"], + _stream_passthrough: ">= 0.9.4", + "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"], + _stream_readable: ">= 0.9.4", + "node:_stream_readable": [">= 14.18 && < 15", ">= 16"], + _stream_writable: ">= 0.9.4", + "node:_stream_writable": [">= 14.18 && < 15", ">= 16"], + stream: true, + "node:stream": [">= 14.18 && < 15", ">= 16"], + "stream/consumers": ">= 16.7", + "node:stream/consumers": ">= 16.7", + "stream/promises": ">= 15", + "node:stream/promises": ">= 16", + "stream/web": ">= 16.5", + "node:stream/web": ">= 16.5", + string_decoder: true, + "node:string_decoder": [">= 14.18 && < 15", ">= 16"], + sys: [">= 0.4 && < 0.7", ">= 0.8"], + "node:sys": [">= 14.18 && < 15", ">= 16"], + timers: true, + "node:timers": [">= 14.18 && < 15", ">= 16"], + "timers/promises": ">= 15", + "node:timers/promises": ">= 16", + _tls_common: ">= 0.11.13", + "node:_tls_common": [">= 14.18 && < 15", ">= 16"], + _tls_legacy: ">= 0.11.3 && < 10", + _tls_wrap: ">= 0.11.3", + "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"], + tls: true, + "node:tls": [">= 14.18 && < 15", ">= 16"], + trace_events: ">= 10", + "node:trace_events": [">= 14.18 && < 15", ">= 16"], + tty: true, + "node:tty": [">= 14.18 && < 15", ">= 16"], + url: true, + "node:url": [">= 14.18 && < 15", ">= 16"], + util: true, + "node:util": [">= 14.18 && < 15", ">= 16"], + "util/types": ">= 15.3", + "node:util/types": ">= 16", + "v8/tools/arguments": ">= 10 && < 12", + "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], + v8: ">= 1", + "node:v8": [">= 14.18 && < 15", ">= 16"], + vm: true, + "node:vm": [">= 14.18 && < 15", ">= 16"], + wasi: ">= 13.4 && < 13.5", + worker_threads: ">= 11.7", + "node:worker_threads": [">= 14.18 && < 15", ">= 16"], + zlib: ">= 0.5", + "node:zlib": [">= 14.18 && < 15", ">= 16"] + }; + } +}); +var require_core4 = __commonJS2({ + "node_modules/resolve/lib/core.js"(exports2, module2) { + var current = process.versions && process.versions.node && process.versions.node.split(".") || []; + function specifierIncluded(specifier) { + var parts = specifier.split(" "); + var op = parts.length > 1 ? parts[0] : "="; + var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split("."); + for (var i = 0; i < 3; ++i) { + var cur = parseInt(current[i] || 0, 10); + var ver = parseInt(versionParts[i] || 0, 10); + if (cur === ver) { + continue; + } + if (op === "<") { + return cur < ver; + } else if (op === ">=") { + return cur >= ver; + } + return false; + } + return op === ">="; + } + function matchesRange(range) { + var specifiers = range.split(/ ?&& ?/); + if (specifiers.length === 0) { + return false; + } + for (var i = 0; i < specifiers.length; ++i) { + if (!specifierIncluded(specifiers[i])) { + return false; + } + } + return true; + } + function versionIncluded(specifierValue) { + if (typeof specifierValue === "boolean") { + return specifierValue; + } + if (specifierValue && typeof specifierValue === "object") { + for (var i = 0; i < specifierValue.length; ++i) { + if (matchesRange(specifierValue[i])) { + return true; + } + } + return false; + } + return matchesRange(specifierValue); + } + var data = require_core3(); + var core2 = {}; + for (mod in data) { + if (Object.prototype.hasOwnProperty.call(data, mod)) { + core2[mod] = versionIncluded(data[mod]); + } + } + var mod; + module2.exports = core2; + } +}); +var require_is_core = __commonJS2({ + "node_modules/resolve/lib/is-core.js"(exports2, module2) { + var isCoreModule = require_is_core_module(); + module2.exports = function isCore(x) { + return isCoreModule(x); + }; + } +}); +var require_sync = __commonJS2({ + "node_modules/resolve/lib/sync.js"(exports2, module2) { + var isCore = require_is_core_module(); + var fs = require("fs"); + var path = require("path"); + var getHomedir = require_homedir(); + var caller = require_caller(); + var nodeModulesPaths = require_node_modules_paths(); + var normalizeOptions = require_normalize_options(); + var realpathFS = fs.realpathSync && typeof fs.realpathSync.native === "function" ? fs.realpathSync.native : fs.realpathSync; + var homedir = getHomedir(); + var defaultPaths = function() { + return [path.join(homedir, ".node_modules"), path.join(homedir, ".node_libraries")]; + }; + var defaultIsFile = function isFile(file) { + try { + var stat = fs.statSync(file, { + throwIfNoEntry: false + }); + } catch (e) { + if (e && (e.code === "ENOENT" || e.code === "ENOTDIR")) + return false; + throw e; + } + return !!stat && (stat.isFile() || stat.isFIFO()); + }; + var defaultIsDir = function isDirectory(dir) { + try { + var stat = fs.statSync(dir, { + throwIfNoEntry: false + }); + } catch (e) { + if (e && (e.code === "ENOENT" || e.code === "ENOTDIR")) + return false; + throw e; + } + return !!stat && stat.isDirectory(); + }; + var defaultRealpathSync = function realpathSync(x) { + try { + return realpathFS(x); + } catch (realpathErr) { + if (realpathErr.code !== "ENOENT") { + throw realpathErr; + } + } + return x; + }; + var maybeRealpathSync = function maybeRealpathSync2(realpathSync, x, opts) { + if (opts && opts.preserveSymlinks === false) { + return realpathSync(x); + } + return x; + }; + var defaultReadPackageSync = function defaultReadPackageSync2(readFileSync, pkgfile) { + var body = readFileSync(pkgfile); + try { + var pkg = JSON.parse(body); + return pkg; + } catch (jsonErr) { + } + }; + var getPackageCandidates = function getPackageCandidates2(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path.join(dirs[i], x); + } + return dirs; + }; + module2.exports = function resolveSync(x, options) { + if (typeof x !== "string") { + throw new TypeError("Path must be a string."); + } + var opts = normalizeOptions(x, options); + var isFile = opts.isFile || defaultIsFile; + var readFileSync = opts.readFileSync || fs.readFileSync; + var isDirectory = opts.isDirectory || defaultIsDir; + var realpathSync = opts.realpathSync || defaultRealpathSync; + var readPackageSync = opts.readPackageSync || defaultReadPackageSync; + if (opts.readFileSync && opts.readPackageSync) { + throw new TypeError("`readFileSync` and `readPackageSync` are mutually exclusive."); + } + var packageIterator = opts.packageIterator; + var extensions = opts.extensions || [".js"]; + var includeCoreModules = opts.includeCoreModules !== false; + var basedir = opts.basedir || path.dirname(caller()); + var parent = opts.filename || basedir; + opts.paths = opts.paths || defaultPaths(); + var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts); + if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) { + var res = path.resolve(absoluteStart, x); + if (x === "." || x === ".." || x.slice(-1) === "/") + res += "/"; + var m = loadAsFileSync(res) || loadAsDirectorySync(res); + if (m) + return maybeRealpathSync(realpathSync, m, opts); + } else if (includeCoreModules && isCore(x)) { + return x; + } else { + var n = loadNodeModulesSync(x, absoluteStart); + if (n) + return maybeRealpathSync(realpathSync, n, opts); + } + var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + err.code = "MODULE_NOT_FOUND"; + throw err; + function loadAsFileSync(x2) { + var pkg = loadpkg(path.dirname(x2)); + if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { + var rfile = path.relative(pkg.dir, x2); + var r = opts.pathFilter(pkg.pkg, x2, rfile); + if (r) { + x2 = path.resolve(pkg.dir, r); + } + } + if (isFile(x2)) { + return x2; + } + for (var i = 0; i < extensions.length; i++) { + var file = x2 + extensions[i]; + if (isFile(file)) { + return file; + } + } + } + function loadpkg(dir) { + if (dir === "" || dir === "/") + return; + if (process.platform === "win32" && /^\w:[/\\]*$/.test(dir)) { + return; + } + if (/[/\\]node_modules[/\\]*$/.test(dir)) + return; + var pkgfile = path.join(maybeRealpathSync(realpathSync, dir, opts), "package.json"); + if (!isFile(pkgfile)) { + return loadpkg(path.dirname(dir)); + } + var pkg = readPackageSync(readFileSync, pkgfile); + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, dir); + } + return { + pkg, + dir + }; + } + function loadAsDirectorySync(x2) { + var pkgfile = path.join(maybeRealpathSync(realpathSync, x2, opts), "/package.json"); + if (isFile(pkgfile)) { + try { + var pkg = readPackageSync(readFileSync, pkgfile); + } catch (e) { + } + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, x2); + } + if (pkg && pkg.main) { + if (typeof pkg.main !== "string") { + var mainError = new TypeError("package \u201C" + pkg.name + "\u201D `main` must be a string"); + mainError.code = "INVALID_PACKAGE_MAIN"; + throw mainError; + } + if (pkg.main === "." || pkg.main === "./") { + pkg.main = "index"; + } + try { + var m2 = loadAsFileSync(path.resolve(x2, pkg.main)); + if (m2) + return m2; + var n2 = loadAsDirectorySync(path.resolve(x2, pkg.main)); + if (n2) + return n2; + } catch (e) { + } + } + } + return loadAsFileSync(path.join(x2, "/index")); + } + function loadNodeModulesSync(x2, start) { + var thunk = function() { + return getPackageCandidates(x2, start, opts); + }; + var dirs = packageIterator ? packageIterator(x2, start, thunk, opts) : thunk(); + for (var i = 0; i < dirs.length; i++) { + var dir = dirs[i]; + if (isDirectory(path.dirname(dir))) { + var m2 = loadAsFileSync(dir); + if (m2) + return m2; + var n2 = loadAsDirectorySync(dir); + if (n2) + return n2; + } + } + } + }; + } +}); +var require_resolve = __commonJS2({ + "node_modules/resolve/index.js"(exports2, module2) { + var async = require_async(); + async.core = require_core4(); + async.isCore = require_is_core(); + async.sync = require_sync(); + module2.exports = async; + } +}); +var require_resolve2 = __commonJS2({ + "src/common/resolve.js"(exports2, module2) { + "use strict"; + var { + resolve + } = require; + if (resolve.length === 1 || process.env.PRETTIER_FALLBACK_RESOLVE) { + resolve = (id, options) => { + let basedir; + if (options && options.paths && options.paths.length === 1) { + basedir = options.paths[0]; + } + return require_resolve().sync(id, { + basedir + }); + }; + } + module2.exports = resolve; + } +}); +function mimicFunction(to, from, { + ignoreNonConfigurable = false +} = {}) { + const { + name + } = to; + for (const property of Reflect.ownKeys(from)) { + copyProperty(to, from, property, ignoreNonConfigurable); + } + changePrototype(to, from); + changeToString(to, from, name); + return to; +} +var copyProperty; +var canCopyProperty; +var changePrototype; +var wrappedToString; +var toStringDescriptor; +var toStringName; +var changeToString; +var init_mimic_fn = __esm({ + "node_modules/mimic-fn/index.js"() { + copyProperty = (to, from, property, ignoreNonConfigurable) => { + if (property === "length" || property === "prototype") { + return; + } + if (property === "arguments" || property === "caller") { + return; + } + const toDescriptor = Object.getOwnPropertyDescriptor(to, property); + const fromDescriptor = Object.getOwnPropertyDescriptor(from, property); + if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) { + return; + } + Object.defineProperty(to, property, fromDescriptor); + }; + canCopyProperty = function(toDescriptor, fromDescriptor) { + return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value); + }; + changePrototype = (to, from) => { + const fromPrototype = Object.getPrototypeOf(from); + if (fromPrototype === Object.getPrototypeOf(to)) { + return; + } + Object.setPrototypeOf(to, fromPrototype); + }; + wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/ +${fromBody}`; + toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString"); + toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name"); + changeToString = (to, from, name) => { + const withName = name === "" ? "" : `with ${name.trim()}() `; + const newToString = wrappedToString.bind(null, withName, from.toString()); + Object.defineProperty(newToString, "name", toStringName); + Object.defineProperty(to, "toString", Object.assign(Object.assign({}, toStringDescriptor), {}, { + value: newToString + })); + }; + } +}); +var require_p_defer = __commonJS2({ + "node_modules/p-defer/index.js"(exports2, module2) { + "use strict"; + module2.exports = () => { + const ret = {}; + ret.promise = new Promise((resolve, reject) => { + ret.resolve = resolve; + ret.reject = reject; + }); + return ret; + }; + } +}); +var require_dist = __commonJS2({ + "node_modules/map-age-cleaner/dist/index.js"(exports2, module2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + 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) : new P(function(resolve2) { + resolve2(result.value); + }).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; + }; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var p_defer_1 = __importDefault2(require_p_defer()); + function mapAgeCleaner2(map, property = "maxAge") { + let processingKey; + let processingTimer; + let processingDeferred; + const cleanup = () => __awaiter2(this, void 0, void 0, function* () { + if (processingKey !== void 0) { + return; + } + const setupTimer = (item) => __awaiter2(this, void 0, void 0, function* () { + processingDeferred = p_defer_1.default(); + const delay = item[1][property] - Date.now(); + if (delay <= 0) { + map.delete(item[0]); + processingDeferred.resolve(); + return; + } + processingKey = item[0]; + processingTimer = setTimeout(() => { + map.delete(item[0]); + if (processingDeferred) { + processingDeferred.resolve(); + } + }, delay); + if (typeof processingTimer.unref === "function") { + processingTimer.unref(); + } + return processingDeferred.promise; + }); + try { + for (const entry of map) { + yield setupTimer(entry); + } + } catch (_a) { + } + processingKey = void 0; + }); + const reset = () => { + processingKey = void 0; + if (processingTimer !== void 0) { + clearTimeout(processingTimer); + processingTimer = void 0; + } + if (processingDeferred !== void 0) { + processingDeferred.reject(void 0); + processingDeferred = void 0; + } + }; + const originalSet = map.set.bind(map); + map.set = (key, value) => { + if (map.has(key)) { + map.delete(key); + } + const result = originalSet(key, value); + if (processingKey && processingKey === key) { + reset(); + } + cleanup(); + return result; + }; + cleanup(); + return map; + } + exports2.default = mapAgeCleaner2; + module2.exports = mapAgeCleaner2; + module2.exports.default = mapAgeCleaner2; + } +}); +var dist_exports = {}; +__export(dist_exports, { + default: () => mem, + memClear: () => memClear, + memDecorator: () => memDecorator +}); +function mem(fn, { + cacheKey, + cache = /* @__PURE__ */ new Map(), + maxAge +} = {}) { + if (typeof maxAge === "number") { + (0, import_map_age_cleaner.default)(cache); + } + const memoized = function(...arguments_) { + const key = cacheKey ? cacheKey(arguments_) : arguments_[0]; + const cacheItem = cache.get(key); + if (cacheItem) { + return cacheItem.data; + } + const result = fn.apply(this, arguments_); + cache.set(key, { + data: result, + maxAge: maxAge ? Date.now() + maxAge : Number.POSITIVE_INFINITY + }); + return result; + }; + mimicFunction(memoized, fn, { + ignoreNonConfigurable: true + }); + cacheStore.set(memoized, cache); + return memoized; +} +function memDecorator(options = {}) { + const instanceMap = /* @__PURE__ */ new WeakMap(); + return (target, propertyKey, descriptor) => { + const input = target[propertyKey]; + if (typeof input !== "function") { + throw new TypeError("The decorated value must be a function"); + } + delete descriptor.value; + delete descriptor.writable; + descriptor.get = function() { + if (!instanceMap.has(this)) { + const value = mem(input, options); + instanceMap.set(this, value); + return value; + } + return instanceMap.get(this); + }; + }; +} +function memClear(fn) { + const cache = cacheStore.get(fn); + if (!cache) { + throw new TypeError("Can't clear a function that was not memoized!"); + } + if (typeof cache.clear !== "function") { + throw new TypeError("The cache Map can't be cleared!"); + } + cache.clear(); +} +var import_map_age_cleaner; +var cacheStore; +var init_dist = __esm({ + "node_modules/mem/dist/index.js"() { + init_mimic_fn(); + import_map_age_cleaner = __toESM(require_dist()); + cacheStore = /* @__PURE__ */ new WeakMap(); + } +}); +var require_pseudomap = __commonJS2({ + "node_modules/pseudomap/pseudomap.js"(exports2, module2) { + var hasOwnProperty = Object.prototype.hasOwnProperty; + module2.exports = PseudoMap; + function PseudoMap(set2) { + if (!(this instanceof PseudoMap)) + throw new TypeError("Constructor PseudoMap requires 'new'"); + this.clear(); + if (set2) { + if (set2 instanceof PseudoMap || typeof Map === "function" && set2 instanceof Map) + set2.forEach(function(value, key) { + this.set(key, value); + }, this); + else if (Array.isArray(set2)) + set2.forEach(function(kv) { + this.set(kv[0], kv[1]); + }, this); + else + throw new TypeError("invalid argument"); + } + } + PseudoMap.prototype.forEach = function(fn, thisp) { + thisp = thisp || this; + Object.keys(this._data).forEach(function(k) { + if (k !== "size") + fn.call(thisp, this._data[k].value, this._data[k].key); + }, this); + }; + PseudoMap.prototype.has = function(k) { + return !!find(this._data, k); + }; + PseudoMap.prototype.get = function(k) { + var res = find(this._data, k); + return res && res.value; + }; + PseudoMap.prototype.set = function(k, v) { + set(this._data, k, v); + }; + PseudoMap.prototype.delete = function(k) { + var res = find(this._data, k); + if (res) { + delete this._data[res._index]; + this._data.size--; + } + }; + PseudoMap.prototype.clear = function() { + var data = /* @__PURE__ */ Object.create(null); + data.size = 0; + Object.defineProperty(this, "_data", { + value: data, + enumerable: false, + configurable: true, + writable: false + }); + }; + Object.defineProperty(PseudoMap.prototype, "size", { + get: function() { + return this._data.size; + }, + set: function(n) { + }, + enumerable: true, + configurable: true + }); + PseudoMap.prototype.values = PseudoMap.prototype.keys = PseudoMap.prototype.entries = function() { + throw new Error("iterators are not implemented in this version"); + }; + function same(a, b) { + return a === b || a !== a && b !== b; + } + function Entry(k, v, i) { + this.key = k; + this.value = v; + this._index = i; + } + function find(data, k) { + for (var i = 0, s = "_" + k, key = s; hasOwnProperty.call(data, key); key = s + i++) { + if (same(data[key].key, k)) + return data[key]; + } + } + function set(data, k, v) { + for (var i = 0, s = "_" + k, key = s; hasOwnProperty.call(data, key); key = s + i++) { + if (same(data[key].key, k)) { + data[key].value = v; + return; + } + } + data.size++; + data[key] = new Entry(k, v, key); + } + } +}); +var require_map = __commonJS2({ + "node_modules/pseudomap/map.js"(exports2, module2) { + if (process.env.npm_package_name === "pseudomap" && process.env.npm_lifecycle_script === "test") + process.env.TEST_PSEUDOMAP = "true"; + if (typeof Map === "function" && !process.env.TEST_PSEUDOMAP) { + module2.exports = Map; + } else { + module2.exports = require_pseudomap(); + } + } +}); +var require_yallist = __commonJS2({ + "node_modules/editorconfig/node_modules/yallist/yallist.js"(exports2, module2) { + module2.exports = Yallist; + Yallist.Node = Node; + Yallist.create = Yallist; + function Yallist(list) { + var self2 = this; + if (!(self2 instanceof Yallist)) { + self2 = new Yallist(); + } + self2.tail = null; + self2.head = null; + self2.length = 0; + if (list && typeof list.forEach === "function") { + list.forEach(function(item) { + self2.push(item); + }); + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self2.push(arguments[i]); + } + } + return self2; + } + Yallist.prototype.removeNode = function(node) { + if (node.list !== this) { + throw new Error("removing node which does not belong to this list"); + } + var next = node.next; + var prev = node.prev; + if (next) { + next.prev = prev; + } + if (prev) { + prev.next = next; + } + if (node === this.head) { + this.head = next; + } + if (node === this.tail) { + this.tail = prev; + } + node.list.length--; + node.next = null; + node.prev = null; + node.list = null; + }; + Yallist.prototype.unshiftNode = function(node) { + if (node === this.head) { + return; + } + if (node.list) { + node.list.removeNode(node); + } + var head = this.head; + node.list = this; + node.next = head; + if (head) { + head.prev = node; + } + this.head = node; + if (!this.tail) { + this.tail = node; + } + this.length++; + }; + Yallist.prototype.pushNode = function(node) { + if (node === this.tail) { + return; + } + if (node.list) { + node.list.removeNode(node); + } + var tail = this.tail; + node.list = this; + node.prev = tail; + if (tail) { + tail.next = node; + } + this.tail = node; + if (!this.head) { + this.head = node; + } + this.length++; + }; + Yallist.prototype.push = function() { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]); + } + return this.length; + }; + Yallist.prototype.unshift = function() { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]); + } + return this.length; + }; + Yallist.prototype.pop = function() { + if (!this.tail) { + return void 0; + } + var res = this.tail.value; + this.tail = this.tail.prev; + if (this.tail) { + this.tail.next = null; + } else { + this.head = null; + } + this.length--; + return res; + }; + Yallist.prototype.shift = function() { + if (!this.head) { + return void 0; + } + var res = this.head.value; + this.head = this.head.next; + if (this.head) { + this.head.prev = null; + } else { + this.tail = null; + } + this.length--; + return res; + }; + Yallist.prototype.forEach = function(fn, thisp) { + thisp = thisp || this; + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this); + walker = walker.next; + } + }; + Yallist.prototype.forEachReverse = function(fn, thisp) { + thisp = thisp || this; + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this); + walker = walker.prev; + } + }; + Yallist.prototype.get = function(n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + walker = walker.next; + } + if (i === n && walker !== null) { + return walker.value; + } + }; + Yallist.prototype.getReverse = function(n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + walker = walker.prev; + } + if (i === n && walker !== null) { + return walker.value; + } + }; + Yallist.prototype.map = function(fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.head; walker !== null; ) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.next; + } + return res; + }; + Yallist.prototype.mapReverse = function(fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.tail; walker !== null; ) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.prev; + } + return res; + }; + Yallist.prototype.reduce = function(fn, initial) { + var acc; + var walker = this.head; + if (arguments.length > 1) { + acc = initial; + } else if (this.head) { + walker = this.head.next; + acc = this.head.value; + } else { + throw new TypeError("Reduce of empty list with no initial value"); + } + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i); + walker = walker.next; + } + return acc; + }; + Yallist.prototype.reduceReverse = function(fn, initial) { + var acc; + var walker = this.tail; + if (arguments.length > 1) { + acc = initial; + } else if (this.tail) { + walker = this.tail.prev; + acc = this.tail.value; + } else { + throw new TypeError("Reduce of empty list with no initial value"); + } + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i); + walker = walker.prev; + } + return acc; + }; + Yallist.prototype.toArray = function() { + var arr = new Array(this.length); + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.next; + } + return arr; + }; + Yallist.prototype.toArrayReverse = function() { + var arr = new Array(this.length); + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.prev; + } + return arr; + }; + Yallist.prototype.slice = function(from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret; + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next; + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value); + } + return ret; + }; + Yallist.prototype.sliceReverse = function(from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret; + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev; + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value); + } + return ret; + }; + Yallist.prototype.reverse = function() { + var head = this.head; + var tail = this.tail; + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev; + walker.prev = walker.next; + walker.next = p; + } + this.head = tail; + this.tail = head; + return this; + }; + function push(self2, item) { + self2.tail = new Node(item, self2.tail, null, self2); + if (!self2.head) { + self2.head = self2.tail; + } + self2.length++; + } + function unshift(self2, item) { + self2.head = new Node(item, null, self2.head, self2); + if (!self2.tail) { + self2.tail = self2.head; + } + self2.length++; + } + function Node(value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list); + } + this.list = list; + this.value = value; + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; + } + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } + } + } +}); +var require_lru_cache = __commonJS2({ + "node_modules/editorconfig/node_modules/lru-cache/index.js"(exports2, module2) { + "use strict"; + module2.exports = LRUCache; + var Map2 = require_map(); + var util = require("util"); + var Yallist = require_yallist(); + var hasSymbol = typeof Symbol === "function" && process.env._nodeLRUCacheForceNoSymbol !== "1"; + var makeSymbol; + if (hasSymbol) { + makeSymbol = function(key) { + return Symbol(key); + }; + } else { + makeSymbol = function(key) { + return "_" + key; + }; + } + var MAX = makeSymbol("max"); + var LENGTH = makeSymbol("length"); + var LENGTH_CALCULATOR = makeSymbol("lengthCalculator"); + var ALLOW_STALE = makeSymbol("allowStale"); + var MAX_AGE = makeSymbol("maxAge"); + var DISPOSE = makeSymbol("dispose"); + var NO_DISPOSE_ON_SET = makeSymbol("noDisposeOnSet"); + var LRU_LIST = makeSymbol("lruList"); + var CACHE = makeSymbol("cache"); + function naiveLength() { + return 1; + } + function LRUCache(options) { + if (!(this instanceof LRUCache)) { + return new LRUCache(options); + } + if (typeof options === "number") { + options = { + max: options + }; + } + if (!options) { + options = {}; + } + var max = this[MAX] = options.max; + if (!max || !(typeof max === "number") || max <= 0) { + this[MAX] = Infinity; + } + var lc = options.length || naiveLength; + if (typeof lc !== "function") { + lc = naiveLength; + } + this[LENGTH_CALCULATOR] = lc; + this[ALLOW_STALE] = options.stale || false; + this[MAX_AGE] = options.maxAge || 0; + this[DISPOSE] = options.dispose; + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; + this.reset(); + } + Object.defineProperty(LRUCache.prototype, "max", { + set: function(mL) { + if (!mL || !(typeof mL === "number") || mL <= 0) { + mL = Infinity; + } + this[MAX] = mL; + trim(this); + }, + get: function() { + return this[MAX]; + }, + enumerable: true + }); + Object.defineProperty(LRUCache.prototype, "allowStale", { + set: function(allowStale) { + this[ALLOW_STALE] = !!allowStale; + }, + get: function() { + return this[ALLOW_STALE]; + }, + enumerable: true + }); + Object.defineProperty(LRUCache.prototype, "maxAge", { + set: function(mA) { + if (!mA || !(typeof mA === "number") || mA < 0) { + mA = 0; + } + this[MAX_AGE] = mA; + trim(this); + }, + get: function() { + return this[MAX_AGE]; + }, + enumerable: true + }); + Object.defineProperty(LRUCache.prototype, "lengthCalculator", { + set: function(lC) { + if (typeof lC !== "function") { + lC = naiveLength; + } + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC; + this[LENGTH] = 0; + this[LRU_LIST].forEach(function(hit) { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); + this[LENGTH] += hit.length; + }, this); + } + trim(this); + }, + get: function() { + return this[LENGTH_CALCULATOR]; + }, + enumerable: true + }); + Object.defineProperty(LRUCache.prototype, "length", { + get: function() { + return this[LENGTH]; + }, + enumerable: true + }); + Object.defineProperty(LRUCache.prototype, "itemCount", { + get: function() { + return this[LRU_LIST].length; + }, + enumerable: true + }); + LRUCache.prototype.rforEach = function(fn, thisp) { + thisp = thisp || this; + for (var walker = this[LRU_LIST].tail; walker !== null; ) { + var prev = walker.prev; + forEachStep(this, fn, walker, thisp); + walker = prev; + } + }; + function forEachStep(self2, fn, node, thisp) { + var hit = node.value; + if (isStale(self2, hit)) { + del(self2, node); + if (!self2[ALLOW_STALE]) { + hit = void 0; + } + } + if (hit) { + fn.call(thisp, hit.value, hit.key, self2); + } + } + LRUCache.prototype.forEach = function(fn, thisp) { + thisp = thisp || this; + for (var walker = this[LRU_LIST].head; walker !== null; ) { + var next = walker.next; + forEachStep(this, fn, walker, thisp); + walker = next; + } + }; + LRUCache.prototype.keys = function() { + return this[LRU_LIST].toArray().map(function(k) { + return k.key; + }, this); + }; + LRUCache.prototype.values = function() { + return this[LRU_LIST].toArray().map(function(k) { + return k.value; + }, this); + }; + LRUCache.prototype.reset = function() { + if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { + this[LRU_LIST].forEach(function(hit) { + this[DISPOSE](hit.key, hit.value); + }, this); + } + this[CACHE] = new Map2(); + this[LRU_LIST] = new Yallist(); + this[LENGTH] = 0; + }; + LRUCache.prototype.dump = function() { + return this[LRU_LIST].map(function(hit) { + if (!isStale(this, hit)) { + return { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }; + } + }, this).toArray().filter(function(h) { + return h; + }); + }; + LRUCache.prototype.dumpLru = function() { + return this[LRU_LIST]; + }; + LRUCache.prototype.inspect = function(n, opts) { + var str = "LRUCache {"; + var extras = false; + var as = this[ALLOW_STALE]; + if (as) { + str += "\n allowStale: true"; + extras = true; + } + var max = this[MAX]; + if (max && max !== Infinity) { + if (extras) { + str += ","; + } + str += "\n max: " + util.inspect(max, opts); + extras = true; + } + var maxAge = this[MAX_AGE]; + if (maxAge) { + if (extras) { + str += ","; + } + str += "\n maxAge: " + util.inspect(maxAge, opts); + extras = true; + } + var lc = this[LENGTH_CALCULATOR]; + if (lc && lc !== naiveLength) { + if (extras) { + str += ","; + } + str += "\n length: " + util.inspect(this[LENGTH], opts); + extras = true; + } + var didFirst = false; + this[LRU_LIST].forEach(function(item) { + if (didFirst) { + str += ",\n "; + } else { + if (extras) { + str += ",\n"; + } + didFirst = true; + str += "\n "; + } + var key = util.inspect(item.key).split("\n").join("\n "); + var val = { + value: item.value + }; + if (item.maxAge !== maxAge) { + val.maxAge = item.maxAge; + } + if (lc !== naiveLength) { + val.length = item.length; + } + if (isStale(this, item)) { + val.stale = true; + } + val = util.inspect(val, opts).split("\n").join("\n "); + str += key + " => " + val; + }); + if (didFirst || extras) { + str += "\n"; + } + str += "}"; + return str; + }; + LRUCache.prototype.set = function(key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; + var now = maxAge ? Date.now() : 0; + var len = this[LENGTH_CALCULATOR](value, key); + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)); + return false; + } + var node = this[CACHE].get(key); + var item = node.value; + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) { + this[DISPOSE](key, item.value); + } + } + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true; + } + var hit = new Entry(key, value, len, now, maxAge); + if (hit.length > this[MAX]) { + if (this[DISPOSE]) { + this[DISPOSE](key, value); + } + return false; + } + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); + trim(this); + return true; + }; + LRUCache.prototype.has = function(key) { + if (!this[CACHE].has(key)) + return false; + var hit = this[CACHE].get(key).value; + if (isStale(this, hit)) { + return false; + } + return true; + }; + LRUCache.prototype.get = function(key) { + return get(this, key, true); + }; + LRUCache.prototype.peek = function(key) { + return get(this, key, false); + }; + LRUCache.prototype.pop = function() { + var node = this[LRU_LIST].tail; + if (!node) + return null; + del(this, node); + return node.value; + }; + LRUCache.prototype.del = function(key) { + del(this, this[CACHE].get(key)); + }; + LRUCache.prototype.load = function(arr) { + this.reset(); + var now = Date.now(); + for (var l = arr.length - 1; l >= 0; l--) { + var hit = arr[l]; + var expiresAt = hit.e || 0; + if (expiresAt === 0) { + this.set(hit.k, hit.v); + } else { + var maxAge = expiresAt - now; + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge); + } + } + } + }; + LRUCache.prototype.prune = function() { + var self2 = this; + this[CACHE].forEach(function(value, key) { + get(self2, key, false); + }); + }; + function get(self2, key, doUse) { + var node = self2[CACHE].get(key); + if (node) { + var hit = node.value; + if (isStale(self2, hit)) { + del(self2, node); + if (!self2[ALLOW_STALE]) + hit = void 0; + } else { + if (doUse) { + self2[LRU_LIST].unshiftNode(node); + } + } + if (hit) + hit = hit.value; + } + return hit; + } + function isStale(self2, hit) { + if (!hit || !hit.maxAge && !self2[MAX_AGE]) { + return false; + } + var stale = false; + var diff = Date.now() - hit.now; + if (hit.maxAge) { + stale = diff > hit.maxAge; + } else { + stale = self2[MAX_AGE] && diff > self2[MAX_AGE]; + } + return stale; + } + function trim(self2) { + if (self2[LENGTH] > self2[MAX]) { + for (var walker = self2[LRU_LIST].tail; self2[LENGTH] > self2[MAX] && walker !== null; ) { + var prev = walker.prev; + del(self2, walker); + walker = prev; + } + } + } + function del(self2, node) { + if (node) { + var hit = node.value; + if (self2[DISPOSE]) { + self2[DISPOSE](hit.key, hit.value); + } + self2[LENGTH] -= hit.length; + self2[CACHE].delete(hit.key); + self2[LRU_LIST].removeNode(node); + } + } + function Entry(key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; + } + } +}); +var require_sigmund = __commonJS2({ + "node_modules/sigmund/sigmund.js"(exports2, module2) { + module2.exports = sigmund; + function sigmund(subject, maxSessions) { + maxSessions = maxSessions || 10; + var notes = []; + var analysis = ""; + var RE = RegExp; + function psychoAnalyze(subject2, session) { + if (session > maxSessions) + return; + if (typeof subject2 === "function" || typeof subject2 === "undefined") { + return; + } + if (typeof subject2 !== "object" || !subject2 || subject2 instanceof RE) { + analysis += subject2; + return; + } + if (notes.indexOf(subject2) !== -1 || session === maxSessions) + return; + notes.push(subject2); + analysis += "{"; + Object.keys(subject2).forEach(function(issue, _, __) { + if (issue.charAt(0) === "_") + return; + var to = typeof subject2[issue]; + if (to === "function" || to === "undefined") + return; + analysis += issue; + psychoAnalyze(subject2[issue], session + 1); + }); + } + psychoAnalyze(subject, 0); + return analysis; + } + } +}); +var require_fnmatch = __commonJS2({ + "node_modules/editorconfig/src/lib/fnmatch.js"(exports2, module2) { + var platform = typeof process === "object" ? process.platform : "win32"; + if (module2) + module2.exports = minimatch; + else + exports2.minimatch = minimatch; + minimatch.Minimatch = Minimatch; + var LRU = require_lru_cache(); + var cache = minimatch.cache = new LRU({ + max: 100 + }); + var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; + var sigmund = require_sigmund(); + var path = require("path"); + var qmark = "[^/]"; + var star = qmark + "*?"; + var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; + var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; + var reSpecials = charSet("().*{}+?[]^$\\!"); + function charSet(s) { + return s.split("").reduce(function(set, c) { + set[c] = true; + return set; + }, {}); + } + var slashSplit = /\/+/; + minimatch.monkeyPatch = monkeyPatch; + function monkeyPatch() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "match"); + var orig = desc.value; + desc.value = function(p) { + if (p instanceof Minimatch) + return p.match(this); + return orig.call(this, p); + }; + Object.defineProperty(String.prototype, desc); + } + minimatch.filter = filter; + function filter(pattern, options) { + options = options || {}; + return function(p, i, list) { + return minimatch(p, pattern, options); + }; + } + function ext(a, b) { + a = a || {}; + b = b || {}; + var t = {}; + Object.keys(b).forEach(function(k) { + t[k] = b[k]; + }); + Object.keys(a).forEach(function(k) { + t[k] = a[k]; + }); + return t; + } + minimatch.defaults = function(def) { + if (!def || !Object.keys(def).length) + return minimatch; + var orig = minimatch; + var m = function minimatch2(p, pattern, options) { + return orig.minimatch(p, pattern, ext(def, options)); + }; + m.Minimatch = function Minimatch2(pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)); + }; + return m; + }; + Minimatch.defaults = function(def) { + if (!def || !Object.keys(def).length) + return Minimatch; + return minimatch.defaults(def).Minimatch; + }; + function minimatch(p, pattern, options) { + if (typeof pattern !== "string") { + throw new TypeError("glob pattern string required"); + } + if (!options) + options = {}; + if (!options.nocomment && pattern.charAt(0) === "#") { + return false; + } + if (pattern.trim() === "") + return p === ""; + return new Minimatch(pattern, options).match(p); + } + function Minimatch(pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options, cache); + } + if (typeof pattern !== "string") { + throw new TypeError("glob pattern string required"); + } + if (!options) + options = {}; + if (platform === "win32") { + pattern = pattern.split("\\").join("/"); + } + var cacheKey = pattern + "\n" + sigmund(options); + var cached = minimatch.cache.get(cacheKey); + if (cached) + return cached; + minimatch.cache.set(cacheKey, this); + this.options = options; + this.set = []; + this.pattern = pattern; + this.regexp = null; + this.negate = false; + this.comment = false; + this.empty = false; + this.make(); + } + Minimatch.prototype.make = make; + function make() { + if (this._made) + return; + var pattern = this.pattern; + var options = this.options; + if (!options.nocomment && pattern.charAt(0) === "#") { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + this.parseNegate(); + var set = this.globSet = this.braceExpand(); + if (options.debug) + console.error(this.pattern, set); + set = this.globParts = set.map(function(s) { + return s.split(slashSplit); + }); + if (options.debug) + console.error(this.pattern, set); + set = set.map(function(s, si, set2) { + return s.map(this.parse, this); + }, this); + if (options.debug) + console.error(this.pattern, set); + set = set.filter(function(s) { + return s.indexOf(false) === -1; + }); + if (options.debug) + console.error(this.pattern, set); + this.set = set; + } + Minimatch.prototype.parseNegate = parseNegate; + function parseNegate() { + var pattern = this.pattern, negate = false, options = this.options, negateOffset = 0; + if (options.nonegate) + return; + for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === "!"; i++) { + negate = !negate; + negateOffset++; + } + if (negateOffset) + this.pattern = pattern.substr(negateOffset); + this.negate = negate; + } + minimatch.braceExpand = function(pattern, options) { + return new Minimatch(pattern, options).braceExpand(); + }; + Minimatch.prototype.braceExpand = braceExpand; + function braceExpand(pattern, options) { + options = options || this.options; + pattern = typeof pattern === "undefined" ? this.pattern : pattern; + if (typeof pattern === "undefined") { + throw new Error("undefined pattern"); + } + if (options.nobrace || !pattern.match(/\{.*\}/)) { + return [pattern]; + } + var escaping = false; + if (pattern.charAt(0) !== "{") { + var prefix = null; + for (var i = 0, l = pattern.length; i < l; i++) { + var c = pattern.charAt(i); + if (c === "\\") { + escaping = !escaping; + } else if (c === "{" && !escaping) { + prefix = pattern.substr(0, i); + break; + } + } + if (prefix === null) { + return [pattern]; + } + var tail = braceExpand(pattern.substr(i), options); + return tail.map(function(t) { + return prefix + t; + }); + } + var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/); + if (numset) { + var suf = braceExpand(pattern.substr(numset[0].length), options), start = +numset[1], end = +numset[2], inc = start > end ? -1 : 1, set = []; + for (var i = start; i != end + inc; i += inc) { + for (var ii = 0, ll = suf.length; ii < ll; ii++) { + set.push(i + suf[ii]); + } + } + return set; + } + var i = 1, depth = 1, set = [], member = "", sawEnd = false, escaping = false; + function addMember() { + set.push(member); + member = ""; + } + FOR: + for (i = 1, l = pattern.length; i < l; i++) { + var c = pattern.charAt(i); + if (escaping) { + escaping = false; + member += "\\" + c; + } else { + switch (c) { + case "\\": + escaping = true; + continue; + case "{": + depth++; + member += "{"; + continue; + case "}": + depth--; + if (depth === 0) { + addMember(); + i++; + break FOR; + } else { + member += c; + continue; + } + case ",": + if (depth === 1) { + addMember(); + } else { + member += c; + } + continue; + default: + member += c; + continue; + } + } + } + if (depth !== 0) { + return braceExpand("\\" + pattern, options); + } + var suf = braceExpand(pattern.substr(i), options); + var addBraces = set.length === 1; + set = set.map(function(p) { + return braceExpand(p, options); + }); + set = set.reduce(function(l2, r) { + return l2.concat(r); + }); + if (addBraces) { + set = set.map(function(s) { + return "{" + s + "}"; + }); + } + var ret = []; + for (var i = 0, l = set.length; i < l; i++) { + for (var ii = 0, ll = suf.length; ii < ll; ii++) { + ret.push(set[i] + suf[ii]); + } + } + return ret; + } + Minimatch.prototype.parse = parse; + var SUBPARSE = {}; + function parse(pattern, isSub) { + var options = this.options; + if (!options.noglobstar && pattern === "**") + return GLOBSTAR; + if (pattern === "") + return ""; + var re = "", hasMagic = !!options.nocase, escaping = false, patternListStack = [], plType, stateChar, inClass = false, reClassStart = -1, classStart = -1, patternStart = pattern.charAt(0) === "." ? "" : options.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)"; + function clearStateChar() { + if (stateChar) { + switch (stateChar) { + case "*": + re += star; + hasMagic = true; + break; + case "?": + re += qmark; + hasMagic = true; + break; + default: + re += "\\" + stateChar; + break; + } + stateChar = false; + } + } + for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { + if (options.debug) { + console.error("%s %s %s %j", pattern, i, re, c); + } + if (escaping && reSpecials[c]) { + re += "\\" + c; + escaping = false; + continue; + } + SWITCH: + switch (c) { + case "/": + return false; + case "\\": + clearStateChar(); + escaping = true; + continue; + case "?": + case "*": + case "+": + case "@": + case "!": + if (options.debug) { + console.error("%s %s %s %j <-- stateChar", pattern, i, re, c); + } + if (inClass) { + if (c === "!" && i === classStart + 1) + c = "^"; + re += c; + continue; + } + clearStateChar(); + stateChar = c; + if (options.noext) + clearStateChar(); + continue; + case "(": + if (inClass) { + re += "("; + continue; + } + if (!stateChar) { + re += "\\("; + continue; + } + plType = stateChar; + patternListStack.push({ + type: plType, + start: i - 1, + reStart: re.length + }); + re += stateChar === "!" ? "(?:(?!" : "(?:"; + stateChar = false; + continue; + case ")": + if (inClass || !patternListStack.length) { + re += "\\)"; + continue; + } + hasMagic = true; + re += ")"; + plType = patternListStack.pop().type; + switch (plType) { + case "!": + re += "[^/]*?)"; + break; + case "?": + case "+": + case "*": + re += plType; + case "@": + break; + } + continue; + case "|": + if (inClass || !patternListStack.length || escaping) { + re += "\\|"; + escaping = false; + continue; + } + re += "|"; + continue; + case "[": + clearStateChar(); + if (inClass) { + re += "\\" + c; + continue; + } + inClass = true; + classStart = i; + reClassStart = re.length; + re += c; + continue; + case "]": + if (i === classStart + 1 || !inClass) { + re += "\\" + c; + escaping = false; + continue; + } + hasMagic = true; + inClass = false; + re += c; + continue; + default: + clearStateChar(); + if (escaping) { + escaping = false; + } else if (reSpecials[c] && !(c === "^" && inClass)) { + re += "\\"; + } + re += c; + } + } + if (inClass) { + var cs = pattern.substr(classStart + 1), sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + "\\[" + sp[0]; + hasMagic = hasMagic || sp[1]; + } + var pl; + while (pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + 3); + tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function(_, $1, $2) { + if (!$2) { + $2 = "\\"; + } + return $1 + $1 + $2 + "|"; + }); + var t = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type; + hasMagic = true; + re = re.slice(0, pl.reStart) + t + "\\(" + tail; + } + clearStateChar(); + if (escaping) { + re += "\\\\"; + } + var addPatternStart = false; + switch (re.charAt(0)) { + case ".": + case "[": + case "(": + addPatternStart = true; + } + if (re !== "" && hasMagic) + re = "(?=.)" + re; + if (addPatternStart) + re = patternStart + re; + if (isSub === SUBPARSE) { + return [re, hasMagic]; + } + if (!hasMagic) { + return globUnescape(pattern); + } + var flags = options.nocase ? "i" : "", regExp = new RegExp("^" + re + "$", flags); + regExp._glob = pattern; + regExp._src = re; + return regExp; + } + minimatch.makeRe = function(pattern, options) { + return new Minimatch(pattern, options || {}).makeRe(); + }; + Minimatch.prototype.makeRe = makeRe; + function makeRe() { + if (this.regexp || this.regexp === false) + return this.regexp; + var set = this.set; + if (!set.length) + return this.regexp = false; + var options = this.options; + var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot, flags = options.nocase ? "i" : ""; + var re = set.map(function(pattern) { + return pattern.map(function(p) { + return p === GLOBSTAR ? twoStar : typeof p === "string" ? regExpEscape(p) : p._src; + }).join("\\/"); + }).join("|"); + re = "^(?:" + re + ")$"; + if (this.negate) + re = "^(?!" + re + ").*$"; + try { + return this.regexp = new RegExp(re, flags); + } catch (ex) { + return this.regexp = false; + } + } + minimatch.match = function(list, pattern, options) { + var mm = new Minimatch(pattern, options); + list = list.filter(function(f) { + return mm.match(f); + }); + if (options.nonull && !list.length) { + list.push(pattern); + } + return list; + }; + Minimatch.prototype.match = match; + function match(f, partial) { + if (this.comment) + return false; + if (this.empty) + return f === ""; + if (f === "/" && partial) + return true; + var options = this.options; + if (platform === "win32") { + f = f.split("\\").join("/"); + } + f = f.split(slashSplit); + if (options.debug) { + console.error(this.pattern, "split", f); + } + var set = this.set; + for (var i = 0, l = set.length; i < l; i++) { + var pattern = set[i]; + var hit = this.matchOne(f, pattern, partial); + if (hit) { + if (options.flipNegate) + return true; + return !this.negate; + } + } + if (options.flipNegate) + return false; + return this.negate; + } + Minimatch.prototype.matchOne = function(file, pattern, partial) { + var options = this.options; + if (options.debug) { + console.error("matchOne", { + "this": this, + file, + pattern + }); + } + if (options.matchBase && pattern.length === 1) { + file = path.basename(file.join("/")).split("/"); + } + if (options.debug) { + console.error("matchOne", file.length, pattern.length); + } + for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + if (options.debug) { + console.error("matchOne loop"); + } + var p = pattern[pi], f = file[fi]; + if (options.debug) { + console.error(pattern, p, f); + } + if (p === false) + return false; + if (p === GLOBSTAR) { + if (options.debug) + console.error("GLOBSTAR", [pattern, p, f]); + var fr = fi, pr = pi + 1; + if (pr === pl) { + if (options.debug) + console.error("** at the end"); + for (; fi < fl; fi++) { + if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".") + return false; + } + return true; + } + WHILE: + while (fr < fl) { + var swallowee = file[fr]; + if (options.debug) { + console.error("\nglobstar while", file, fr, pattern, pr, swallowee); + } + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + if (options.debug) + console.error("globstar found match!", fr, fl, swallowee); + return true; + } else { + if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") { + if (options.debug) + console.error("dot detected!", file, fr, pattern, pr); + break WHILE; + } + if (options.debug) + console.error("globstar swallow a segment, and continue"); + fr++; + } + } + if (partial) { + if (fr === fl) + return true; + } + return false; + } + var hit; + if (typeof p === "string") { + if (options.nocase) { + hit = f.toLowerCase() === p.toLowerCase(); + } else { + hit = f === p; + } + if (options.debug) { + console.error("string match", p, f, hit); + } + } else { + hit = f.match(p); + if (options.debug) { + console.error("pattern match", p, f, hit); + } + } + if (!hit) + return false; + } + if (fi === fl && pi === pl) { + return true; + } else if (fi === fl) { + return partial; + } else if (pi === pl) { + var emptyFileEnd = fi === fl - 1 && file[fi] === ""; + return emptyFileEnd; + } + throw new Error("wtf?"); + }; + function globUnescape(s) { + return s.replace(/\\(.)/g, "$1"); + } + function regExpEscape(s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + } + } +}); +var require_ini = __commonJS2({ + "node_modules/editorconfig/src/lib/ini.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + 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) : new P(function(resolve2) { + resolve2(result.value); + }).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator2 = exports2 && exports2.__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 + }; + } + }; + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (Object.hasOwnProperty.call(mod, k)) + result[k] = mod[k]; + } + result["default"] = mod; + return result; + }; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fs = __importStar2(require("fs")); + var regex = { + section: /^\s*\[(([^#;]|\\#|\\;)+)\]\s*([#;].*)?$/, + param: /^\s*([\w\.\-\_]+)\s*[=:]\s*(.*?)\s*([#;].*)?$/, + comment: /^\s*[#;].*$/ + }; + function parse(file) { + return __awaiter2(this, void 0, void 0, function() { + return __generator2(this, function(_a) { + return [2, new Promise(function(resolve, reject) { + fs.readFile(file, "utf8", function(err, data) { + if (err) { + reject(err); + return; + } + resolve(parseString(data)); + }); + })]; + }); + }); + } + exports2.parse = parse; + function parseSync(file) { + return parseString(fs.readFileSync(file, "utf8")); + } + exports2.parseSync = parseSync; + function parseString(data) { + var sectionBody = {}; + var sectionName = null; + var value = [[sectionName, sectionBody]]; + var lines = data.split(/\r\n|\r|\n/); + lines.forEach(function(line) { + var match; + if (regex.comment.test(line)) { + return; + } + if (regex.param.test(line)) { + match = line.match(regex.param); + sectionBody[match[1]] = match[2]; + } else if (regex.section.test(line)) { + match = line.match(regex.section); + sectionName = match[1]; + sectionBody = {}; + value.push([sectionName, sectionBody]); + } + }); + return value; + } + exports2.parseString = parseString; + } +}); +var require_package = __commonJS2({ + "node_modules/editorconfig/package.json"(exports2, module2) { + module2.exports = { + name: "editorconfig", + version: "0.15.3", + description: "EditorConfig File Locator and Interpreter for Node.js", + keywords: ["editorconfig", "core"], + main: "src/index.js", + contributors: ["Hong Xu (topbug.net)", "Jed Mao (https://github.com/jedmao/)", "Trey Hunner (http://treyhunner.com)"], + directories: { + bin: "./bin", + lib: "./lib" + }, + scripts: { + clean: "rimraf dist", + prebuild: "npm run clean", + build: "tsc", + pretest: "npm run lint && npm run build && npm run copy && cmake .", + test: "ctest .", + "pretest:ci": "npm run pretest", + "test:ci": "ctest -VV --output-on-failure .", + lint: "npm run eclint && npm run tslint", + eclint: 'eclint check --indent_size ignore "src/**"', + tslint: "tslint --project tsconfig.json --exclude package.json", + copy: "cpy .npmignore LICENSE README.md CHANGELOG.md dist && cpy bin/* dist/bin && cpy src/lib/fnmatch*.* dist/src/lib", + prepub: "npm run lint && npm run build && npm run copy", + pub: "npm publish ./dist" + }, + repository: { + type: "git", + url: "git://github.com/editorconfig/editorconfig-core-js.git" + }, + bugs: "https://github.com/editorconfig/editorconfig-core-js/issues", + author: "EditorConfig Team", + license: "MIT", + dependencies: { + commander: "^2.19.0", + "lru-cache": "^4.1.5", + semver: "^5.6.0", + sigmund: "^1.0.1" + }, + devDependencies: { + "@types/mocha": "^5.2.6", + "@types/node": "^10.12.29", + "@types/semver": "^5.5.0", + "cpy-cli": "^2.0.0", + eclint: "^2.8.1", + mocha: "^5.2.0", + rimraf: "^2.6.3", + should: "^13.2.3", + tslint: "^5.13.1", + typescript: "^3.3.3333" + } + }; + } +}); +var require_src2 = __commonJS2({ + "node_modules/editorconfig/src/index.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + 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) : new P(function(resolve2) { + resolve2(result.value); + }).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator2 = exports2 && exports2.__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 + }; + } + }; + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (Object.hasOwnProperty.call(mod, k)) + result[k] = mod[k]; + } + result["default"] = mod; + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; + }; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fs = __importStar2(require("fs")); + var path = __importStar2(require("path")); + var semver = { + gte: require_gte() + }; + var fnmatch_1 = __importDefault2(require_fnmatch()); + var ini_1 = require_ini(); + exports2.parseString = ini_1.parseString; + var package_json_1 = __importDefault2(require_package()); + var knownProps = { + end_of_line: true, + indent_style: true, + indent_size: true, + insert_final_newline: true, + trim_trailing_whitespace: true, + charset: true + }; + function fnmatch(filepath, glob) { + var matchOptions = { + matchBase: true, + dot: true, + noext: true + }; + glob = glob.replace(/\*\*/g, "{*,**/**/**}"); + return fnmatch_1.default(filepath, glob, matchOptions); + } + function getConfigFileNames(filepath, options) { + var paths = []; + do { + filepath = path.dirname(filepath); + paths.push(path.join(filepath, options.config)); + } while (filepath !== options.root); + return paths; + } + function processMatches(matches, version2) { + if ("indent_style" in matches && matches.indent_style === "tab" && !("indent_size" in matches) && semver.gte(version2, "0.10.0")) { + matches.indent_size = "tab"; + } + if ("indent_size" in matches && !("tab_width" in matches) && matches.indent_size !== "tab") { + matches.tab_width = matches.indent_size; + } + if ("indent_size" in matches && "tab_width" in matches && matches.indent_size === "tab") { + matches.indent_size = matches.tab_width; + } + return matches; + } + function processOptions(options, filepath) { + if (options === void 0) { + options = {}; + } + return { + config: options.config || ".editorconfig", + version: options.version || package_json_1.default.version, + root: path.resolve(options.root || path.parse(filepath).root) + }; + } + function buildFullGlob(pathPrefix, glob) { + switch (glob.indexOf("/")) { + case -1: + glob = "**/" + glob; + break; + case 0: + glob = glob.substring(1); + break; + default: + break; + } + return path.join(pathPrefix, glob); + } + function extendProps(props, options) { + if (props === void 0) { + props = {}; + } + if (options === void 0) { + options = {}; + } + for (var key in options) { + if (options.hasOwnProperty(key)) { + var value = options[key]; + var key2 = key.toLowerCase(); + var value2 = value; + if (knownProps[key2]) { + value2 = value.toLowerCase(); + } + try { + value2 = JSON.parse(value); + } catch (e) { + } + if (typeof value === "undefined" || value === null) { + value2 = String(value); + } + props[key2] = value2; + } + } + return props; + } + function parseFromConfigs(configs, filepath, options) { + return processMatches(configs.reverse().reduce(function(matches, file) { + var pathPrefix = path.dirname(file.name); + file.contents.forEach(function(section) { + var glob = section[0]; + var options2 = section[1]; + if (!glob) { + return; + } + var fullGlob = buildFullGlob(pathPrefix, glob); + if (!fnmatch(filepath, fullGlob)) { + return; + } + matches = extendProps(matches, options2); + }); + return matches; + }, {}), options.version); + } + function getConfigsForFiles(files) { + var configs = []; + for (var i in files) { + if (files.hasOwnProperty(i)) { + var file = files[i]; + var contents = ini_1.parseString(file.contents); + configs.push({ + name: file.name, + contents + }); + if ((contents[0][1].root || "").toLowerCase() === "true") { + break; + } + } + } + return configs; + } + function readConfigFiles(filepaths) { + return __awaiter2(this, void 0, void 0, function() { + return __generator2(this, function(_a) { + return [2, Promise.all(filepaths.map(function(name) { + return new Promise(function(resolve) { + fs.readFile(name, "utf8", function(err, data) { + resolve({ + name, + contents: err ? "" : data + }); + }); + }); + }))]; + }); + }); + } + function readConfigFilesSync(filepaths) { + var files = []; + var file; + filepaths.forEach(function(filepath) { + try { + file = fs.readFileSync(filepath, "utf8"); + } catch (e) { + file = ""; + } + files.push({ + name: filepath, + contents: file + }); + }); + return files; + } + function opts(filepath, options) { + if (options === void 0) { + options = {}; + } + var resolvedFilePath = path.resolve(filepath); + return [resolvedFilePath, processOptions(options, resolvedFilePath)]; + } + function parseFromFiles(filepath, files, options) { + if (options === void 0) { + options = {}; + } + return __awaiter2(this, void 0, void 0, function() { + var _a, resolvedFilePath, processedOptions; + return __generator2(this, function(_b) { + _a = opts(filepath, options), resolvedFilePath = _a[0], processedOptions = _a[1]; + return [2, files.then(getConfigsForFiles).then(function(configs) { + return parseFromConfigs(configs, resolvedFilePath, processedOptions); + })]; + }); + }); + } + exports2.parseFromFiles = parseFromFiles; + function parseFromFilesSync(filepath, files, options) { + if (options === void 0) { + options = {}; + } + var _a = opts(filepath, options), resolvedFilePath = _a[0], processedOptions = _a[1]; + return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); + } + exports2.parseFromFilesSync = parseFromFilesSync; + function parse(_filepath, _options) { + if (_options === void 0) { + _options = {}; + } + return __awaiter2(this, void 0, void 0, function() { + var _a, resolvedFilePath, processedOptions, filepaths; + return __generator2(this, function(_b) { + _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1]; + filepaths = getConfigFileNames(resolvedFilePath, processedOptions); + return [2, readConfigFiles(filepaths).then(getConfigsForFiles).then(function(configs) { + return parseFromConfigs(configs, resolvedFilePath, processedOptions); + })]; + }); + }); + } + exports2.parse = parse; + function parseSync(_filepath, _options) { + if (_options === void 0) { + _options = {}; + } + var _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1]; + var filepaths = getConfigFileNames(resolvedFilePath, processedOptions); + var files = readConfigFilesSync(filepaths); + return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); + } + exports2.parseSync = parseSync; + } +}); +var require_editorconfig_to_prettier = __commonJS2({ + "node_modules/editorconfig-to-prettier/index.js"(exports2, module2) { + module2.exports = editorConfigToPrettier; + function removeUnset(editorConfig) { + const result = {}; + const keys = Object.keys(editorConfig); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (editorConfig[key] === "unset") { + continue; + } + result[key] = editorConfig[key]; + } + return result; + } + function editorConfigToPrettier(editorConfig) { + if (!editorConfig) { + return null; + } + editorConfig = removeUnset(editorConfig); + if (Object.keys(editorConfig).length === 0) { + return null; + } + const result = {}; + if (editorConfig.indent_style) { + result.useTabs = editorConfig.indent_style === "tab"; + } + if (editorConfig.indent_size === "tab") { + result.useTabs = true; + } + if (result.useTabs && editorConfig.tab_width) { + result.tabWidth = editorConfig.tab_width; + } else if (editorConfig.indent_style === "space" && editorConfig.indent_size && editorConfig.indent_size !== "tab") { + result.tabWidth = editorConfig.indent_size; + } else if (editorConfig.tab_width !== void 0) { + result.tabWidth = editorConfig.tab_width; + } + if (editorConfig.max_line_length && editorConfig.max_line_length !== "off") { + result.printWidth = editorConfig.max_line_length; + } + if (editorConfig.quote_type === "single") { + result.singleQuote = true; + } else if (editorConfig.quote_type === "double") { + result.singleQuote = false; + } + if (["cr", "crlf", "lf"].indexOf(editorConfig.end_of_line) !== -1) { + result.endOfLine = editorConfig.end_of_line; + } + if (editorConfig.insert_final_newline === false || editorConfig.insert_final_newline === true) { + result.insertFinalNewline = editorConfig.insert_final_newline; + } + return result; + } + } +}); +var require_find_project_root = __commonJS2({ + "src/config/find-project-root.js"(exports2, module2) { + "use strict"; + var fs = require("fs"); + var path = require("path"); + var MARKERS = [".git", ".hg"]; + var markerExists = (directory) => MARKERS.some((mark) => fs.existsSync(path.join(directory, mark))); + function findProjectRoot(directory) { + while (!markerExists(directory)) { + const parentDirectory = path.resolve(directory, ".."); + if (parentDirectory === directory) { + break; + } + directory = parentDirectory; + } + return directory; + } + module2.exports = findProjectRoot; + } +}); +var require_resolve_config_editorconfig = __commonJS2({ + "src/config/resolve-config-editorconfig.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var editorconfig = require_src2(); + var editorConfigToPrettier = require_editorconfig_to_prettier(); + var { + default: mem2, + memClear: memClear2 + } = (init_dist(), __toCommonJS(dist_exports)); + var findProjectRoot = require_find_project_root(); + var jsonStringifyMem = (fn) => mem2(fn, { + cacheKey: JSON.stringify + }); + var maybeParse = (filePath, parse) => filePath && parse(filePath, { + root: findProjectRoot(path.dirname(path.resolve(filePath))) + }); + var editorconfigAsyncNoCache = async (filePath) => editorConfigToPrettier(await maybeParse(filePath, editorconfig.parse)); + var editorconfigAsyncWithCache = jsonStringifyMem(editorconfigAsyncNoCache); + var editorconfigSyncNoCache = (filePath) => editorConfigToPrettier(maybeParse(filePath, editorconfig.parseSync)); + var editorconfigSyncWithCache = jsonStringifyMem(editorconfigSyncNoCache); + function getLoadFunction(opts) { + if (!opts.editorconfig) { + return () => null; + } + if (opts.sync) { + return opts.cache ? editorconfigSyncWithCache : editorconfigSyncNoCache; + } + return opts.cache ? editorconfigAsyncWithCache : editorconfigAsyncNoCache; + } + function clearCache() { + memClear2(editorconfigSyncWithCache); + memClear2(editorconfigAsyncWithCache); + } + module2.exports = { + getLoadFunction, + clearCache + }; + } +}); +var require_resolve_config = __commonJS2({ + "src/config/resolve-config.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var micromatch = require_micromatch(); + var thirdParty = require("./third-party.js"); + var loadToml = require_load_toml(); + var loadJson5 = require_load_json5(); + var partition = require_partition(); + var resolve = require_resolve2(); + var { + default: mem2, + memClear: memClear2 + } = (init_dist(), __toCommonJS(dist_exports)); + var resolveEditorConfig = require_resolve_config_editorconfig(); + var getExplorerMemoized = mem2((opts) => { + const cosmiconfig = thirdParty["cosmiconfig" + (opts.sync ? "Sync" : "")]; + const explorer = cosmiconfig("prettier", { + cache: opts.cache, + transform: (result) => { + if (result && result.config) { + if (typeof result.config === "string") { + const dir = path.dirname(result.filepath); + const modulePath = resolve(result.config, { + paths: [dir] + }); + result.config = require(modulePath); + } + if (typeof result.config !== "object") { + throw new TypeError(`Config is only allowed to be an object, but received ${typeof result.config} in "${result.filepath}"`); + } + delete result.config.$schema; + } + return result; + }, + searchPlaces: ["package.json", ".prettierrc", ".prettierrc.json", ".prettierrc.yaml", ".prettierrc.yml", ".prettierrc.json5", ".prettierrc.js", ".prettierrc.cjs", "prettier.config.js", "prettier.config.cjs", ".prettierrc.toml"], + loaders: { + ".toml": loadToml, + ".json5": loadJson5 + } + }); + return explorer; + }, { + cacheKey: JSON.stringify + }); + function getExplorer(opts) { + opts = Object.assign({ + sync: false, + cache: false + }, opts); + return getExplorerMemoized(opts); + } + function _resolveConfig(filePath, opts, sync) { + opts = Object.assign({ + useCache: true + }, opts); + const loadOpts = { + cache: Boolean(opts.useCache), + sync: Boolean(sync), + editorconfig: Boolean(opts.editorconfig) + }; + const { + load, + search + } = getExplorer(loadOpts); + const loadEditorConfig = resolveEditorConfig.getLoadFunction(loadOpts); + const arr = [opts.config ? load(opts.config) : search(filePath), loadEditorConfig(filePath)]; + const unwrapAndMerge = ([result, editorConfigured]) => { + const merged = Object.assign(Object.assign({}, editorConfigured), mergeOverrides(result, filePath)); + for (const optionName of ["plugins", "pluginSearchDirs"]) { + if (Array.isArray(merged[optionName])) { + merged[optionName] = merged[optionName].map((value) => typeof value === "string" && value.startsWith(".") ? path.resolve(path.dirname(result.filepath), value) : value); + } + } + if (!result && !editorConfigured) { + return null; + } + delete merged.insertFinalNewline; + return merged; + }; + if (loadOpts.sync) { + return unwrapAndMerge(arr); + } + return Promise.all(arr).then(unwrapAndMerge); + } + var resolveConfig = (filePath, opts) => _resolveConfig(filePath, opts, false); + resolveConfig.sync = (filePath, opts) => _resolveConfig(filePath, opts, true); + function clearCache() { + memClear2(getExplorerMemoized); + resolveEditorConfig.clearCache(); + } + async function resolveConfigFile(filePath) { + const { + search + } = getExplorer({ + sync: false + }); + const result = await search(filePath); + return result ? result.filepath : null; + } + resolveConfigFile.sync = (filePath) => { + const { + search + } = getExplorer({ + sync: true + }); + const result = search(filePath); + return result ? result.filepath : null; + }; + function mergeOverrides(configResult, filePath) { + const { + config: config2, + filepath: configPath + } = configResult || {}; + const _ref = config2 || {}, { + overrides + } = _ref, options = _objectWithoutProperties(_ref, _excluded3); + if (filePath && overrides) { + const relativeFilePath = path.relative(path.dirname(configPath), filePath); + for (const override of overrides) { + if (pathMatchesGlobs(relativeFilePath, override.files, override.excludeFiles)) { + Object.assign(options, override.options); + } + } + } + return options; + } + function pathMatchesGlobs(filePath, patterns, excludedPatterns) { + const patternList = Array.isArray(patterns) ? patterns : [patterns]; + const [withSlashes, withoutSlashes] = partition(patternList, (pattern) => pattern.includes("/")); + return micromatch.isMatch(filePath, withoutSlashes, { + ignore: excludedPatterns, + basename: true, + dot: true + }) || micromatch.isMatch(filePath, withSlashes, { + ignore: excludedPatterns, + basename: false, + dot: true + }); + } + module2.exports = { + resolveConfig, + resolveConfigFile, + clearCache + }; + } +}); +var require_ignore = __commonJS2({ + "node_modules/ignore/index.js"(exports2, module2) { + function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; + } + var EMPTY = ""; + var SPACE = " "; + var ESCAPE = "\\"; + var REGEX_TEST_BLANK_LINE = /^\s+$/; + var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; + var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; + var REGEX_SPLITALL_CRLF = /\r?\n/g; + var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; + var SLASH = "/"; + var KEY_IGNORE = typeof Symbol !== "undefined" ? Symbol.for("node-ignore") : "node-ignore"; + var define2 = (object, key, value) => Object.defineProperty(object, key, { + value + }); + var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + var RETURN_FALSE = () => false; + var sanitizeRange = (range) => range.replace(REGEX_REGEXP_RANGE, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY); + var cleanRangeBackSlash = (slashes) => { + const { + length + } = slashes; + return slashes.slice(0, length - length % 2); + }; + var REPLACERS = [[/\\?\s+$/, (match) => match.indexOf("\\") === 0 ? SPACE : EMPTY], [/\\\s/g, () => SPACE], [/[\\$.|*+(){^]/g, (match) => `\\${match}`], [/(?!\\)\?/g, () => "[^/]"], [/^\//, () => "^"], [/\//g, () => "\\/"], [/^\^*\\\*\\\*\\\//, () => "^(?:.*\\/)?"], [/^(?=[^^])/, function startingReplacer() { + return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; + }], [/\\\/\\\*\\\*(?=\\\/|$)/g, (_, index, str) => index + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+"], [/(^|[^\\]+)\\\*(?=.+)/g, (_, p1) => `${p1}[^\\/]*`], [/\\\\\\(?=[$.|*+(){^])/g, () => ESCAPE], [/\\\\/g, () => ESCAPE], [/(\\)?\[([^\]/]*?)(\\*)($|\])/g, (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]"], [/(?:[^*])$/, (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)`], [/(\^|\\\/)?\\\*$/, (_, p1) => { + const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; + return `${prefix}(?=$|\\/$)`; + }]]; + var regexCache = /* @__PURE__ */ Object.create(null); + var makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern]; + if (!source) { + source = REPLACERS.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern); + regexCache[pattern] = source; + } + return ignoreCase ? new RegExp(source, "i") : new RegExp(source); + }; + var isString = (subject) => typeof subject === "string"; + var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && pattern.indexOf("#") !== 0; + var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF); + var IgnoreRule = class { + constructor(origin, pattern, negative, regex) { + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex; + } + }; + var createRule = (pattern, ignoreCase) => { + const origin = pattern; + let negative = false; + if (pattern.indexOf("!") === 0) { + negative = true; + pattern = pattern.substr(1); + } + pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); + const regex = makeRegex(pattern, ignoreCase); + return new IgnoreRule(origin, pattern, negative, regex); + }; + var throwError = (message, Ctor) => { + throw new Ctor(message); + }; + var checkPath = (path, originalPath, doThrow) => { + if (!isString(path)) { + return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError); + } + if (!path) { + return doThrow(`path must not be empty`, TypeError); + } + if (checkPath.isNotRelative(path)) { + const r = "`path.relative()`d"; + return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError); + } + return true; + }; + var isNotRelative = (path) => REGEX_TEST_INVALID_PATH.test(path); + checkPath.isNotRelative = isNotRelative; + checkPath.convert = (p) => p; + var Ignore = class { + constructor({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define2(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + this._initCache(); + } + _initCache() { + this._ignoreCache = /* @__PURE__ */ Object.create(null); + this._testCache = /* @__PURE__ */ Object.create(null); + } + _addPattern(pattern) { + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase); + this._added = true; + this._rules.push(rule); + } + } + add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); + if (this._added) { + this._initCache(); + } + return this; + } + addPattern(pattern) { + return this.add(pattern); + } + _testOne(path, checkUnignored) { + let ignored = false; + let unignored = false; + this._rules.forEach((rule) => { + const { + negative + } = rule; + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + const matched = rule.regex.test(path); + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + return { + ignored, + unignored + }; + } + _test(originalPath, cache, checkUnignored, slices) { + const path = originalPath && checkPath.convert(originalPath); + checkPath(path, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError); + return this._t(path, cache, checkUnignored, slices); + } + _t(path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path]; + } + if (!slices) { + slices = path.split(SLASH); + } + slices.pop(); + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored); + } + const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); + return cache[path] = parent.ignored ? parent : this._testOne(path, checkUnignored); + } + ignores(path) { + return this._test(path, this._ignoreCache, false).ignored; + } + createFilter() { + return (path) => !this.ignores(path); + } + filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } + test(path) { + return this._test(path, this._testCache, true); + } + }; + var factory = (options) => new Ignore(options); + var isPathValid = (path) => checkPath(path && checkPath.convert(path), path, RETURN_FALSE); + factory.isPathValid = isPathValid; + factory.default = factory; + module2.exports = factory; + if (typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")) { + const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"); + checkPath.convert = makePosix; + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = (path) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path); + } + } +}); +var require_get_file_content_or_null = __commonJS2({ + "src/utils/get-file-content-or-null.js"(exports2, module2) { + "use strict"; + var fs = require("fs"); + var fsAsync = fs.promises; + async function getFileContentOrNull(filename) { + try { + return await fsAsync.readFile(filename, "utf8"); + } catch (error) { + return handleError(filename, error); + } + } + getFileContentOrNull.sync = function(filename) { + try { + return fs.readFileSync(filename, "utf8"); + } catch (error) { + return handleError(filename, error); + } + }; + function handleError(filename, error) { + if (error && error.code === "ENOENT") { + return null; + } + throw new Error(`Unable to read ${filename}: ${error.message}`); + } + module2.exports = getFileContentOrNull; + } +}); +var require_create_ignorer = __commonJS2({ + "src/common/create-ignorer.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var ignore = require_ignore().default; + var getFileContentOrNull = require_get_file_content_or_null(); + async function createIgnorer(ignorePath, withNodeModules) { + const ignoreContent = ignorePath ? await getFileContentOrNull(path.resolve(ignorePath)) : null; + return _createIgnorer(ignoreContent, withNodeModules); + } + createIgnorer.sync = function(ignorePath, withNodeModules) { + const ignoreContent = !ignorePath ? null : getFileContentOrNull.sync(path.resolve(ignorePath)); + return _createIgnorer(ignoreContent, withNodeModules); + }; + function _createIgnorer(ignoreContent, withNodeModules) { + const ignorer = ignore({ + allowRelativePaths: true + }).add(ignoreContent || ""); + if (!withNodeModules) { + ignorer.add("node_modules"); + } + return ignorer; + } + module2.exports = createIgnorer; + } +}); +var require_get_file_info = __commonJS2({ + "src/common/get-file-info.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var options = require_options(); + var config2 = require_resolve_config(); + var createIgnorer = require_create_ignorer(); + async function getFileInfo2(filePath, opts) { + if (typeof filePath !== "string") { + throw new TypeError(`expect \`filePath\` to be a string, got \`${typeof filePath}\``); + } + const ignorer = await createIgnorer(opts.ignorePath, opts.withNodeModules); + return _getFileInfo({ + ignorer, + filePath, + plugins: opts.plugins, + resolveConfig: opts.resolveConfig, + ignorePath: opts.ignorePath, + sync: false + }); + } + getFileInfo2.sync = function(filePath, opts) { + if (typeof filePath !== "string") { + throw new TypeError(`expect \`filePath\` to be a string, got \`${typeof filePath}\``); + } + const ignorer = createIgnorer.sync(opts.ignorePath, opts.withNodeModules); + return _getFileInfo({ + ignorer, + filePath, + plugins: opts.plugins, + resolveConfig: opts.resolveConfig, + ignorePath: opts.ignorePath, + sync: true + }); + }; + function getFileParser(resolvedConfig, filePath, plugins2) { + if (resolvedConfig && resolvedConfig.parser) { + return resolvedConfig.parser; + } + const inferredParser = options.inferParser(filePath, plugins2); + if (inferredParser) { + return inferredParser; + } + return null; + } + function _getFileInfo({ + ignorer, + filePath, + plugins: plugins2, + resolveConfig = false, + ignorePath, + sync = false + }) { + const normalizedFilePath = normalizeFilePath(filePath, ignorePath); + const fileInfo = { + ignored: ignorer.ignores(normalizedFilePath), + inferredParser: null + }; + if (fileInfo.ignored) { + return fileInfo; + } + let resolvedConfig; + if (resolveConfig) { + if (sync) { + resolvedConfig = config2.resolveConfig.sync(filePath); + } else { + return config2.resolveConfig(filePath).then((resolvedConfig2) => { + fileInfo.inferredParser = getFileParser(resolvedConfig2, filePath, plugins2); + return fileInfo; + }); + } + } + fileInfo.inferredParser = getFileParser(resolvedConfig, filePath, plugins2); + return fileInfo; + } + function normalizeFilePath(filePath, ignorePath) { + return ignorePath ? path.relative(path.dirname(ignorePath), filePath) : filePath; + } + module2.exports = getFileInfo2; + } +}); +var require_util_shared = __commonJS2({ + "src/common/util-shared.js"(exports2, module2) { + "use strict"; + var { + getMaxContinuousCount, + getStringWidth, + getAlignmentSize, + getIndentSize, + skip, + skipWhitespace, + skipSpaces, + skipNewline, + skipToLineEnd, + skipEverythingButNewLine, + skipInlineComment, + skipTrailingComment, + hasNewline, + hasNewlineInRange, + hasSpaces, + isNextLineEmpty, + isNextLineEmptyAfterIndex, + isPreviousLineEmpty, + getNextNonSpaceNonCommentCharacterIndex, + makeString, + addLeadingComment, + addDanglingComment, + addTrailingComment + } = require_util(); + module2.exports = { + getMaxContinuousCount, + getStringWidth, + getAlignmentSize, + getIndentSize, + skip, + skipWhitespace, + skipSpaces, + skipNewline, + skipToLineEnd, + skipEverythingButNewLine, + skipInlineComment, + skipTrailingComment, + hasNewline, + hasNewlineInRange, + hasSpaces, + isNextLineEmpty, + isNextLineEmptyAfterIndex, + isPreviousLineEmpty, + getNextNonSpaceNonCommentCharacterIndex, + makeString, + addLeadingComment, + addDanglingComment, + addTrailingComment + }; + } +}); +var require_array3 = __commonJS2({ + "node_modules/fast-glob/out/utils/array.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.splitWhen = exports2.flatten = void 0; + function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); + } + exports2.flatten = flatten; + function splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } else { + result[groupIndex].push(item); + } + } + return result; + } + exports2.splitWhen = splitWhen; + } +}); +var require_errno = __commonJS2({ + "node_modules/fast-glob/out/utils/errno.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isEnoentCodeError = void 0; + function isEnoentCodeError(error) { + return error.code === "ENOENT"; + } + exports2.isEnoentCodeError = isEnoentCodeError; + } +}); +var require_fs = __commonJS2({ + "node_modules/fast-glob/out/utils/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createDirentFromStats = void 0; + var DirentFromStats = class { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } + }; + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); + } + exports2.createDirentFromStats = createDirentFromStats; + } +}); +var require_path = __commonJS2({ + "node_modules/fast-glob/out/utils/path.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.removeLeadingDotSegment = exports2.escape = exports2.makeAbsolute = exports2.unixify = void 0; + var path = require("path"); + var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; + var UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; + function unixify(filepath) { + return filepath.replace(/\\/g, "/"); + } + exports2.unixify = unixify; + function makeAbsolute(cwd, filepath) { + return path.resolve(cwd, filepath); + } + exports2.makeAbsolute = makeAbsolute; + function escape(pattern) { + return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, "\\$2"); + } + exports2.escape = escape; + function removeLeadingDotSegment(entry) { + if (entry.charAt(0) === ".") { + const secondCharactery = entry.charAt(1); + if (secondCharactery === "/" || secondCharactery === "\\") { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } + } + return entry; + } + exports2.removeLeadingDotSegment = removeLeadingDotSegment; + } +}); +var require_is_extglob = __commonJS2({ + "node_modules/is-extglob/index.js"(exports2, module2) { + module2.exports = function isExtglob(str) { + if (typeof str !== "string" || str === "") { + return false; + } + var match; + while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) { + if (match[2]) + return true; + str = str.slice(match.index + match[0].length); + } + return false; + }; + } +}); +var require_is_glob = __commonJS2({ + "node_modules/is-glob/index.js"(exports2, module2) { + var isExtglob = require_is_extglob(); + var chars = { + "{": "}", + "(": ")", + "[": "]" + }; + var strictCheck = function(str) { + if (str[0] === "!") { + return true; + } + var index = 0; + var pipeIndex = -2; + var closeSquareIndex = -2; + var closeCurlyIndex = -2; + var closeParenIndex = -2; + var backSlashIndex = -2; + while (index < str.length) { + if (str[index] === "*") { + return true; + } + if (str[index + 1] === "?" && /[\].+)]/.test(str[index])) { + return true; + } + if (closeSquareIndex !== -1 && str[index] === "[" && str[index + 1] !== "]") { + if (closeSquareIndex < index) { + closeSquareIndex = str.indexOf("]", index); + } + if (closeSquareIndex > index) { + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + backSlashIndex = str.indexOf("\\", index); + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + } + } + if (closeCurlyIndex !== -1 && str[index] === "{" && str[index + 1] !== "}") { + closeCurlyIndex = str.indexOf("}", index); + if (closeCurlyIndex > index) { + backSlashIndex = str.indexOf("\\", index); + if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { + return true; + } + } + } + if (closeParenIndex !== -1 && str[index] === "(" && str[index + 1] === "?" && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ")") { + closeParenIndex = str.indexOf(")", index); + if (closeParenIndex > index) { + backSlashIndex = str.indexOf("\\", index); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + if (pipeIndex !== -1 && str[index] === "(" && str[index + 1] !== "|") { + if (pipeIndex < index) { + pipeIndex = str.indexOf("|", index); + } + if (pipeIndex !== -1 && str[pipeIndex + 1] !== ")") { + closeParenIndex = str.indexOf(")", pipeIndex); + if (closeParenIndex > pipeIndex) { + backSlashIndex = str.indexOf("\\", pipeIndex); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + } + if (str[index] === "\\") { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + if (str[index] === "!") { + return true; + } + } else { + index++; + } + } + return false; + }; + var relaxedCheck = function(str) { + if (str[0] === "!") { + return true; + } + var index = 0; + while (index < str.length) { + if (/[*?{}()[\]]/.test(str[index])) { + return true; + } + if (str[index] === "\\") { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + if (str[index] === "!") { + return true; + } + } else { + index++; + } + } + return false; + }; + module2.exports = function isGlob(str, options) { + if (typeof str !== "string" || str === "") { + return false; + } + if (isExtglob(str)) { + return true; + } + var check = strictCheck; + if (options && options.strict === false) { + check = relaxedCheck; + } + return check(str); + }; + } +}); +var require_glob_parent = __commonJS2({ + "node_modules/glob-parent/index.js"(exports2, module2) { + "use strict"; + var isGlob = require_is_glob(); + var pathPosixDirname = require("path").posix.dirname; + var isWin32 = require("os").platform() === "win32"; + var slash = "/"; + var backslash = /\\/g; + var enclosure = /[\{\[].*[\}\]]$/; + var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; + var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + module2.exports = function globParent(str, opts) { + var options = Object.assign({ + flipBackslashes: true + }, opts); + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + if (enclosure.test(str)) { + str += slash; + } + str += "a"; + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); + return str.replace(escaped, "$1"); + }; + } +}); +var require_pattern = __commonJS2({ + "node_modules/fast-glob/out/utils/pattern.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.matchAny = exports2.convertPatternsToRe = exports2.makeRe = exports2.getPatternParts = exports2.expandBraceExpansion = exports2.expandPatternsWithBraceExpansion = exports2.isAffectDepthOfReadingPattern = exports2.endsWithSlashGlobStar = exports2.hasGlobStar = exports2.getBaseDirectory = exports2.isPatternRelatedToParentDirectory = exports2.getPatternsOutsideCurrentDirectory = exports2.getPatternsInsideCurrentDirectory = exports2.getPositivePatterns = exports2.getNegativePatterns = exports2.isPositivePattern = exports2.isNegativePattern = exports2.convertToNegativePattern = exports2.convertToPositivePattern = exports2.isDynamicPattern = exports2.isStaticPattern = void 0; + var path = require("path"); + var globParent = require_glob_parent(); + var micromatch = require_micromatch(); + var GLOBSTAR = "**"; + var ESCAPE_SYMBOL = "\\"; + var COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; + var REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; + var REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; + var GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; + var BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; + function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); + } + exports2.isStaticPattern = isStaticPattern; + function isDynamicPattern(pattern, options = {}) { + if (pattern === "") { + return false; + } + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; + } + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.braceExpansion !== false && hasBraceExpansion(pattern)) { + return true; + } + return false; + } + exports2.isDynamicPattern = isDynamicPattern; + function hasBraceExpansion(pattern) { + const openingBraceIndex = pattern.indexOf("{"); + if (openingBraceIndex === -1) { + return false; + } + const closingBraceIndex = pattern.indexOf("}", openingBraceIndex + 1); + if (closingBraceIndex === -1) { + return false; + } + const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); + return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); + } + function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; + } + exports2.convertToPositivePattern = convertToPositivePattern; + function convertToNegativePattern(pattern) { + return "!" + pattern; + } + exports2.convertToNegativePattern = convertToNegativePattern; + function isNegativePattern(pattern) { + return pattern.startsWith("!") && pattern[1] !== "("; + } + exports2.isNegativePattern = isNegativePattern; + function isPositivePattern(pattern) { + return !isNegativePattern(pattern); + } + exports2.isPositivePattern = isPositivePattern; + function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); + } + exports2.getNegativePatterns = getNegativePatterns; + function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); + } + exports2.getPositivePatterns = getPositivePatterns; + function getPatternsInsideCurrentDirectory(patterns) { + return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); + } + exports2.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; + function getPatternsOutsideCurrentDirectory(patterns) { + return patterns.filter(isPatternRelatedToParentDirectory); + } + exports2.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; + function isPatternRelatedToParentDirectory(pattern) { + return pattern.startsWith("..") || pattern.startsWith("./.."); + } + exports2.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; + function getBaseDirectory(pattern) { + return globParent(pattern, { + flipBackslashes: false + }); + } + exports2.getBaseDirectory = getBaseDirectory; + function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); + } + exports2.hasGlobStar = hasGlobStar; + function endsWithSlashGlobStar(pattern) { + return pattern.endsWith("/" + GLOBSTAR); + } + exports2.endsWithSlashGlobStar = endsWithSlashGlobStar; + function isAffectDepthOfReadingPattern(pattern) { + const basename = path.basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); + } + exports2.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; + function expandPatternsWithBraceExpansion(patterns) { + return patterns.reduce((collection, pattern) => { + return collection.concat(expandBraceExpansion(pattern)); + }, []); + } + exports2.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; + function expandBraceExpansion(pattern) { + return micromatch.braces(pattern, { + expand: true, + nodupes: true + }); + } + exports2.expandBraceExpansion = expandBraceExpansion; + function getPatternParts(pattern, options) { + let { + parts + } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { + parts: true + })); + if (parts.length === 0) { + parts = [pattern]; + } + if (parts[0].startsWith("/")) { + parts[0] = parts[0].slice(1); + parts.unshift(""); + } + return parts; + } + exports2.getPatternParts = getPatternParts; + function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); + } + exports2.makeRe = makeRe; + function convertPatternsToRe(patterns, options) { + return patterns.map((pattern) => makeRe(pattern, options)); + } + exports2.convertPatternsToRe = convertPatternsToRe; + function matchAny(entry, patternsRe) { + return patternsRe.some((patternRe) => patternRe.test(entry)); + } + exports2.matchAny = matchAny; + } +}); +var require_merge2 = __commonJS2({ + "node_modules/merge2/index.js"(exports2, module2) { + "use strict"; + var Stream = require("stream"); + var PassThrough = Stream.PassThrough; + var slice = Array.prototype.slice; + module2.exports = merge2; + function merge2() { + const streamsQueue = []; + const args = slice.call(arguments); + let merging = false; + let options = args[args.length - 1]; + if (options && !Array.isArray(options) && options.pipe == null) { + args.pop(); + } else { + options = {}; + } + const doEnd = options.end !== false; + const doPipeError = options.pipeError === true; + if (options.objectMode == null) { + options.objectMode = true; + } + if (options.highWaterMark == null) { + options.highWaterMark = 64 * 1024; + } + const mergedStream = PassThrough(options); + function addStream() { + for (let i = 0, len = arguments.length; i < len; i++) { + streamsQueue.push(pauseStreams(arguments[i], options)); + } + mergeStream(); + return this; + } + function mergeStream() { + if (merging) { + return; + } + merging = true; + let streams = streamsQueue.shift(); + if (!streams) { + process.nextTick(endStream); + return; + } + if (!Array.isArray(streams)) { + streams = [streams]; + } + let pipesCount = streams.length + 1; + function next() { + if (--pipesCount > 0) { + return; + } + merging = false; + mergeStream(); + } + function pipe(stream) { + function onend() { + stream.removeListener("merge2UnpipeEnd", onend); + stream.removeListener("end", onend); + if (doPipeError) { + stream.removeListener("error", onerror); + } + next(); + } + function onerror(err) { + mergedStream.emit("error", err); + } + if (stream._readableState.endEmitted) { + return next(); + } + stream.on("merge2UnpipeEnd", onend); + stream.on("end", onend); + if (doPipeError) { + stream.on("error", onerror); + } + stream.pipe(mergedStream, { + end: false + }); + stream.resume(); + } + for (let i = 0; i < streams.length; i++) { + pipe(streams[i]); + } + next(); + } + function endStream() { + merging = false; + mergedStream.emit("queueDrain"); + if (doEnd) { + mergedStream.end(); + } + } + mergedStream.setMaxListeners(0); + mergedStream.add = addStream; + mergedStream.on("unpipe", function(stream) { + stream.emit("merge2UnpipeEnd"); + }); + if (args.length) { + addStream.apply(null, args); + } + return mergedStream; + } + function pauseStreams(streams, options) { + if (!Array.isArray(streams)) { + if (!streams._readableState && streams.pipe) { + streams = streams.pipe(PassThrough(options)); + } + if (!streams._readableState || !streams.pause || !streams.pipe) { + throw new Error("Only readable stream can be merged."); + } + streams.pause(); + } else { + for (let i = 0, len = streams.length; i < len; i++) { + streams[i] = pauseStreams(streams[i], options); + } + } + return streams; + } + } +}); +var require_stream = __commonJS2({ + "node_modules/fast-glob/out/utils/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.merge = void 0; + var merge2 = require_merge2(); + function merge(streams) { + const mergedStream = merge2(streams); + streams.forEach((stream) => { + stream.once("error", (error) => mergedStream.emit("error", error)); + }); + mergedStream.once("close", () => propagateCloseEventToSources(streams)); + mergedStream.once("end", () => propagateCloseEventToSources(streams)); + return mergedStream; + } + exports2.merge = merge; + function propagateCloseEventToSources(streams) { + streams.forEach((stream) => stream.emit("close")); + } + } +}); +var require_string2 = __commonJS2({ + "node_modules/fast-glob/out/utils/string.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isEmpty = exports2.isString = void 0; + function isString(input) { + return typeof input === "string"; + } + exports2.isString = isString; + function isEmpty(input) { + return input === ""; + } + exports2.isEmpty = isEmpty; + } +}); +var require_utils4 = __commonJS2({ + "node_modules/fast-glob/out/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.string = exports2.stream = exports2.pattern = exports2.path = exports2.fs = exports2.errno = exports2.array = void 0; + var array = require_array3(); + exports2.array = array; + var errno = require_errno(); + exports2.errno = errno; + var fs = require_fs(); + exports2.fs = fs; + var path = require_path(); + exports2.path = path; + var pattern = require_pattern(); + exports2.pattern = pattern; + var stream = require_stream(); + exports2.stream = stream; + var string = require_string2(); + exports2.string = string; + } +}); +var require_tasks = __commonJS2({ + "node_modules/fast-glob/out/managers/tasks.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.convertPatternGroupToTask = exports2.convertPatternGroupsToTasks = exports2.groupPatternsByBaseDirectory = exports2.getNegativePatternsAsPositive = exports2.getPositivePatterns = exports2.convertPatternsToTasks = exports2.generate = void 0; + var utils = require_utils4(); + function generate(patterns, settings) { + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); + const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, true); + return staticTasks.concat(dynamicTasks); + } + exports2.generate = generate; + function convertPatternsToTasks(positive, negative, dynamic) { + const tasks = []; + const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive); + const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive); + const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); + const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); + tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); + if ("." in insideCurrentDirectoryGroup) { + tasks.push(convertPatternGroupToTask(".", patternsInsideCurrentDirectory, negative, dynamic)); + } else { + tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); + } + return tasks; + } + exports2.convertPatternsToTasks = convertPatternsToTasks; + function getPositivePatterns(patterns) { + return utils.pattern.getPositivePatterns(patterns); + } + exports2.getPositivePatterns = getPositivePatterns; + function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils.pattern.convertToPositivePattern); + return positive; + } + exports2.getNegativePatternsAsPositive = getNegativePatternsAsPositive; + function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils.pattern.getBaseDirectory(pattern); + if (base in collection) { + collection[base].push(pattern); + } else { + collection[base] = [pattern]; + } + return collection; + }, group); + } + exports2.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; + function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map((base) => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); + } + exports2.convertPatternGroupsToTasks = convertPatternGroupsToTasks; + function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern)) + }; + } + exports2.convertPatternGroupToTask = convertPatternGroupToTask; + } +}); +var require_patterns = __commonJS2({ + "node_modules/fast-glob/out/managers/patterns.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.removeDuplicateSlashes = exports2.transform = void 0; + var DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; + function transform(patterns) { + return patterns.map((pattern) => removeDuplicateSlashes(pattern)); + } + exports2.transform = transform; + function removeDuplicateSlashes(pattern) { + return pattern.replace(DOUBLE_SLASH_RE, "/"); + } + exports2.removeDuplicateSlashes = removeDuplicateSlashes; + } +}); +var require_async2 = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.read = void 0; + function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; + } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } + callSuccessCallback(callback, lstat); + return; + } + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + callSuccessCallback(callback, stat); + }); + }); + } + exports2.read = read; + function callFailureCallback(callback, error) { + callback(error); + } + function callSuccessCallback(callback, result) { + callback(null, result); + } + } +}); +var require_sync2 = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.read = void 0; + function read(path, settings) { + const lstat = settings.fs.lstatSync(path); + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + try { + const stat = settings.fs.statSync(path); + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + return stat; + } catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; + } + throw error; + } + } + exports2.read = read; + } +}); +var require_fs2 = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/adapters/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createFileSystemAdapter = exports2.FILE_SYSTEM_ADAPTER = void 0; + var fs = require("fs"); + exports2.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync + }; + function createFileSystemAdapter(fsMethods) { + if (fsMethods === void 0) { + return exports2.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports2.FILE_SYSTEM_ADAPTER), fsMethods); + } + exports2.createFileSystemAdapter = createFileSystemAdapter; + } +}); +var require_settings = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fs = require_fs2(); + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } + }; + exports2.default = Settings; + } +}); +var require_out = __commonJS2({ + "node_modules/@nodelib/fs.stat/out/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.statSync = exports2.stat = exports2.Settings = void 0; + var async = require_async2(); + var sync = require_sync2(); + var settings_1 = require_settings(); + exports2.Settings = settings_1.default; + function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === "function") { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } + exports2.stat = stat; + function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); + } + exports2.statSync = statSync; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); + } + } +}); +var require_queue_microtask = __commonJS2({ + "node_modules/queue-microtask/index.js"(exports2, module2) { + var promise; + module2.exports = typeof queueMicrotask === "function" ? queueMicrotask.bind(typeof window !== "undefined" ? window : global) : (cb) => (promise || (promise = Promise.resolve())).then(cb).catch((err) => setTimeout(() => { + throw err; + }, 0)); + } +}); +var require_run_parallel = __commonJS2({ + "node_modules/run-parallel/index.js"(exports2, module2) { + module2.exports = runParallel; + var queueMicrotask2 = require_queue_microtask(); + function runParallel(tasks, cb) { + let results, pending, keys; + let isSync = true; + if (Array.isArray(tasks)) { + results = []; + pending = tasks.length; + } else { + keys = Object.keys(tasks); + results = {}; + pending = keys.length; + } + function done(err) { + function end() { + if (cb) + cb(err, results); + cb = null; + } + if (isSync) + queueMicrotask2(end); + else + end(); + } + function each(i, err, result) { + results[i] = result; + if (--pending === 0 || err) { + done(err); + } + } + if (!pending) { + done(null); + } else if (keys) { + keys.forEach(function(key) { + tasks[key](function(err, result) { + each(key, err, result); + }); + }); + } else { + tasks.forEach(function(task, i) { + task(function(err, result) { + each(i, err, result); + }); + }); + } + isSync = false; + } + } +}); +var require_constants4 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; + var NODE_PROCESS_VERSION_PARTS = process.versions.node.split("."); + if (NODE_PROCESS_VERSION_PARTS[0] === void 0 || NODE_PROCESS_VERSION_PARTS[1] === void 0) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); + } + var MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); + var MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); + var SUPPORTED_MAJOR_VERSION = 10; + var SUPPORTED_MINOR_VERSION = 10; + var IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; + var IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; + exports2.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; + } +}); +var require_fs3 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/utils/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createDirentFromStats = void 0; + var DirentFromStats = class { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } + }; + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); + } + exports2.createDirentFromStats = createDirentFromStats; + } +}); +var require_utils5 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.fs = void 0; + var fs = require_fs3(); + exports2.fs = fs; + } +}); +var require_common3 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/providers/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.joinPathSegments = void 0; + function joinPathSegments(a, b, separator) { + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; + } + exports2.joinPathSegments = joinPathSegments; + } +}); +var require_async3 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.readdir = exports2.readdirWithFileTypes = exports2.read = void 0; + var fsStat = require_out(); + var rpl = require_run_parallel(); + var constants_1 = require_constants4(); + var utils = require_utils5(); + var common = require_common3(); + function read(directory, settings, callback) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; + } + readdir(directory, settings, callback); + } + exports2.read = read; + function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { + withFileTypes: true + }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const entries = dirents.map((dirent) => ({ + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; + } + const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings)); + rpl(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, rplEntries); + }); + }); + } + exports2.readdirWithFileTypes = readdirWithFileTypes; + function makeRplTaskEntry(entry, settings) { + return (done) => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; + } + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } + done(null, entry); + return; + } + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; + } + function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const tasks = names.map((name) => { + const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return (done) => { + fsStat.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } + const entry = { + name, + path, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + done(null, entry); + }); + }; + }); + rpl(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, entries); + }); + }); + } + exports2.readdir = readdir; + function callFailureCallback(callback, error) { + callback(error); + } + function callSuccessCallback(callback, result) { + callback(null, result); + } + } +}); +var require_sync3 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.readdir = exports2.readdirWithFileTypes = exports2.read = void 0; + var fsStat = require_out(); + var constants_1 = require_constants4(); + var utils = require_utils5(); + var common = require_common3(); + function read(directory, settings) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); + } + return readdir(directory, settings); + } + exports2.read = read; + function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { + withFileTypes: true + }); + return dirents.map((dirent) => { + const entry = { + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + } catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } + return entry; + }); + } + exports2.readdirWithFileTypes = readdirWithFileTypes; + function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map((name) => { + const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = fsStat.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + return entry; + }); + } + exports2.readdir = readdir; + } +}); +var require_fs4 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/adapters/fs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.createFileSystemAdapter = exports2.FILE_SYSTEM_ADAPTER = void 0; + var fs = require("fs"); + exports2.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync + }; + function createFileSystemAdapter(fsMethods) { + if (fsMethods === void 0) { + return exports2.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports2.FILE_SYSTEM_ADAPTER), fsMethods); + } + exports2.createFileSystemAdapter = createFileSystemAdapter; + } +}); +var require_settings2 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var fsStat = require_out(); + var fs = require_fs4(); + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } + }; + exports2.default = Settings; + } +}); +var require_out2 = __commonJS2({ + "node_modules/@nodelib/fs.scandir/out/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.Settings = exports2.scandirSync = exports2.scandir = void 0; + var async = require_async3(); + var sync = require_sync3(); + var settings_1 = require_settings2(); + exports2.Settings = settings_1.default; + function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === "function") { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } + exports2.scandir = scandir; + function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); + } + exports2.scandirSync = scandirSync; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); + } + } +}); +var require_reusify = __commonJS2({ + "node_modules/reusify/reusify.js"(exports2, module2) { + "use strict"; + function reusify(Constructor) { + var head = new Constructor(); + var tail = head; + function get() { + var current = head; + if (current.next) { + head = current.next; + } else { + head = new Constructor(); + tail = head; + } + current.next = null; + return current; + } + function release(obj) { + tail.next = obj; + tail = obj; + } + return { + get, + release + }; + } + module2.exports = reusify; + } +}); +var require_queue = __commonJS2({ + "node_modules/fastq/queue.js"(exports2, module2) { + "use strict"; + var reusify = require_reusify(); + function fastqueue(context, worker, concurrency) { + if (typeof context === "function") { + concurrency = worker; + worker = context; + context = null; + } + if (concurrency < 1) { + throw new Error("fastqueue concurrency must be greater than 1"); + } + var cache = reusify(Task); + var queueHead = null; + var queueTail = null; + var _running = 0; + var errorHandler = null; + var self2 = { + push, + drain: noop, + saturated: noop, + pause, + paused: false, + concurrency, + running, + resume, + idle, + length, + getQueue, + unshift, + empty: noop, + kill, + killAndDrain, + error + }; + return self2; + function running() { + return _running; + } + function pause() { + self2.paused = true; + } + function length() { + var current = queueHead; + var counter = 0; + while (current) { + current = current.next; + counter++; + } + return counter; + } + function getQueue() { + var current = queueHead; + var tasks = []; + while (current) { + tasks.push(current.value); + current = current.next; + } + return tasks; + } + function resume() { + if (!self2.paused) + return; + self2.paused = false; + for (var i = 0; i < self2.concurrency; i++) { + _running++; + release(); + } + } + function idle() { + return _running === 0 && self2.length() === 0; + } + function push(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; + current.errorHandler = errorHandler; + if (_running === self2.concurrency || self2.paused) { + if (queueTail) { + queueTail.next = current; + queueTail = current; + } else { + queueHead = current; + queueTail = current; + self2.saturated(); + } + } else { + _running++; + worker.call(context, current.value, current.worked); + } + } + function unshift(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; + if (_running === self2.concurrency || self2.paused) { + if (queueHead) { + current.next = queueHead; + queueHead = current; + } else { + queueHead = current; + queueTail = current; + self2.saturated(); + } + } else { + _running++; + worker.call(context, current.value, current.worked); + } + } + function release(holder) { + if (holder) { + cache.release(holder); + } + var next = queueHead; + if (next) { + if (!self2.paused) { + if (queueTail === queueHead) { + queueTail = null; + } + queueHead = next.next; + next.next = null; + worker.call(context, next.value, next.worked); + if (queueTail === null) { + self2.empty(); + } + } else { + _running--; + } + } else if (--_running === 0) { + self2.drain(); + } + } + function kill() { + queueHead = null; + queueTail = null; + self2.drain = noop; + } + function killAndDrain() { + queueHead = null; + queueTail = null; + self2.drain(); + self2.drain = noop; + } + function error(handler) { + errorHandler = handler; + } + } + function noop() { + } + function Task() { + this.value = null; + this.callback = noop; + this.next = null; + this.release = noop; + this.context = null; + this.errorHandler = null; + var self2 = this; + this.worked = function worked(err, result) { + var callback = self2.callback; + var errorHandler = self2.errorHandler; + var val = self2.value; + self2.value = null; + self2.callback = noop; + if (self2.errorHandler) { + errorHandler(err, val); + } + callback.call(self2.context, err, result); + self2.release(self2); + }; + } + function queueAsPromised(context, worker, concurrency) { + if (typeof context === "function") { + concurrency = worker; + worker = context; + context = null; + } + function asyncWrapper(arg, cb) { + worker.call(this, arg).then(function(res) { + cb(null, res); + }, cb); + } + var queue = fastqueue(context, asyncWrapper, concurrency); + var pushCb = queue.push; + var unshiftCb = queue.unshift; + queue.push = push; + queue.unshift = unshift; + queue.drained = drained; + return queue; + function push(value) { + var p = new Promise(function(resolve, reject) { + pushCb(value, function(err, result) { + if (err) { + reject(err); + return; + } + resolve(result); + }); + }); + p.catch(noop); + return p; + } + function unshift(value) { + var p = new Promise(function(resolve, reject) { + unshiftCb(value, function(err, result) { + if (err) { + reject(err); + return; + } + resolve(result); + }); + }); + p.catch(noop); + return p; + } + function drained() { + var previousDrain = queue.drain; + var p = new Promise(function(resolve) { + queue.drain = function() { + previousDrain(); + resolve(); + }; + }); + return p; + } + } + module2.exports = fastqueue; + module2.exports.promise = queueAsPromised; + } +}); +var require_common4 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/common.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.joinPathSegments = exports2.replacePathSegmentSeparator = exports2.isAppliedFilter = exports2.isFatalError = void 0; + function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; + } + return !settings.errorFilter(error); + } + exports2.isFatalError = isFatalError; + function isAppliedFilter(filter, value) { + return filter === null || filter(value); + } + exports2.isAppliedFilter = isAppliedFilter; + function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); + } + exports2.replacePathSegmentSeparator = replacePathSegmentSeparator; + function joinPathSegments(a, b, separator) { + if (a === "") { + return b; + } + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; + } + exports2.joinPathSegments = joinPathSegments; + } +}); +var require_reader = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/reader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var common = require_common4(); + var Reader = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } + }; + exports2.default = Reader; + } +}); +var require_async4 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var events_1 = require("events"); + var fsScandir = require_out2(); + var fastq = require_queue(); + var common = require_common4(); + var reader_1 = require_reader(); + var AsyncReader = class extends reader_1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = fsScandir.scandir; + this._emitter = new events_1.EventEmitter(); + this._queue = fastq(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit("end"); + } + }; + } + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; + } + get isDestroyed() { + return this._isDestroyed; + } + destroy() { + if (this._isDestroyed) { + throw new Error("The reader is already destroyed"); + } + this._isDestroyed = true; + this._queue.killAndDrain(); + } + onEntry(callback) { + this._emitter.on("entry", callback); + } + onError(callback) { + this._emitter.once("error", callback); + } + onEnd(callback) { + this._emitter.once("end", callback); + } + _pushToQueue(directory, base) { + const queueItem = { + directory, + base + }; + this._queue.push(queueItem, (error) => { + if (error !== null) { + this._handleError(error); + } + }); + } + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, void 0); + return; + } + for (const entry of entries) { + this._handleEntry(entry, item.base); + } + done(null, void 0); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } + this._isFatalError = true; + this._isDestroyed = true; + this._emitter.emit("error", error); + } + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; + } + const fullpath = entry.path; + if (base !== void 0) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path); + } + } + _emitEntry(entry) { + this._emitter.emit("entry", entry); + } + }; + exports2.default = AsyncReader; + } +}); +var require_async5 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var async_1 = require_async4(); + var AsyncProvider = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._storage = []; + } + read(callback) { + this._reader.onError((error) => { + callFailureCallback(callback, error); + }); + this._reader.onEntry((entry) => { + this._storage.push(entry); + }); + this._reader.onEnd(() => { + callSuccessCallback(callback, this._storage); + }); + this._reader.read(); + } + }; + exports2.default = AsyncProvider; + function callFailureCallback(callback, error) { + callback(error); + } + function callSuccessCallback(callback, entries) { + callback(null, entries); + } + } +}); +var require_stream2 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/providers/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require("stream"); + var async_1 = require_async4(); + var StreamProvider = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._stream = new stream_1.Readable({ + objectMode: true, + read: () => { + }, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); + } + } + }); + } + read() { + this._reader.onError((error) => { + this._stream.emit("error", error); + }); + this._reader.onEntry((entry) => { + this._stream.push(entry); + }); + this._reader.onEnd(() => { + this._stream.push(null); + }); + this._reader.read(); + return this._stream; + } + }; + exports2.default = StreamProvider; + } +}); +var require_sync4 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/readers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fsScandir = require_out2(); + var common = require_common4(); + var reader_1 = require_reader(); + var SyncReader = class extends reader_1.default { + constructor() { + super(...arguments); + this._scandir = fsScandir.scandirSync; + this._storage = []; + this._queue = /* @__PURE__ */ new Set(); + } + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); + return this._storage; + } + _pushToQueue(directory, base) { + this._queue.add({ + directory, + base + }); + } + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); + for (const entry of entries) { + this._handleEntry(entry, base); + } + } catch (error) { + this._handleError(error); + } + } + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; + } + throw error; + } + _handleEntry(entry, base) { + const fullpath = entry.path; + if (base !== void 0) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path); + } + } + _pushToStorage(entry) { + this._storage.push(entry); + } + }; + exports2.default = SyncReader; + } +}); +var require_sync5 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var sync_1 = require_sync4(); + var SyncProvider = class { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync_1.default(this._root, this._settings); + } + read() { + return this._reader.read(); + } + }; + exports2.default = SyncProvider; + } +}); +var require_settings3 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var fsScandir = require_out2(); + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, void 0); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.fsScandirSettings = new fsScandir.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } + }; + exports2.default = Settings; + } +}); +var require_out3 = __commonJS2({ + "node_modules/@nodelib/fs.walk/out/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.Settings = exports2.walkStream = exports2.walkSync = exports2.walk = void 0; + var async_1 = require_async5(); + var stream_1 = require_stream2(); + var sync_1 = require_sync5(); + var settings_1 = require_settings3(); + exports2.Settings = settings_1.default; + function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === "function") { + new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; + } + new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); + } + exports2.walk = walk; + function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync_1.default(directory, settings); + return provider.read(); + } + exports2.walkSync = walkSync; + function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream_1.default(directory, settings); + return provider.read(); + } + exports2.walkStream = walkStream; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); + } + } +}); +var require_reader2 = __commonJS2({ + "node_modules/fast-glob/out/readers/reader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var fsStat = require_out(); + var utils = require_utils4(); + var Reader = class { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } + _getFullEntryPath(filepath) { + return path.resolve(this._settings.cwd, filepath); + } + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils.fs.createDirentFromStats(pattern, stats) + }; + if (this._settings.stats) { + entry.stats = stats; + } + return entry; + } + _isFatalError(error) { + return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + } + }; + exports2.default = Reader; + } +}); +var require_stream3 = __commonJS2({ + "node_modules/fast-glob/out/readers/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require("stream"); + var fsStat = require_out(); + var fsWalk = require_out3(); + var reader_1 = require_reader2(); + var ReaderStream = class extends reader_1.default { + constructor() { + super(...arguments); + this._walkStream = fsWalk.walkStream; + this._stat = fsStat.stat; + } + dynamic(root, options) { + return this._walkStream(root, options); + } + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1.PassThrough({ + objectMode: true + }); + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options).then((entry) => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } + if (index === filepaths.length - 1) { + stream.end(); + } + done(); + }).catch(done); + }; + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); + } + return stream; + } + _getEntry(filepath, pattern, options) { + return this._getStat(filepath).then((stats) => this._makeEntry(stats, pattern)).catch((error) => { + if (options.errorFilter(error)) { + return null; + } + throw error; + }); + } + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); + }); + }); + } + }; + exports2.default = ReaderStream; + } +}); +var require_matcher = __commonJS2({ + "node_modules/fast-glob/out/providers/matchers/matcher.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var Matcher = class { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; + this._fillStorage(); + } + _fillStorage() { + const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns); + for (const pattern of patterns) { + const segments = this._getPatternSegments(pattern); + const sections = this._splitSegmentsIntoSections(segments); + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); + } + } + _getPatternSegments(pattern) { + const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map((part) => { + const dynamic = utils.pattern.isDynamicPattern(part, this._settings); + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } + return { + dynamic: true, + pattern: part, + patternRe: utils.pattern.makeRe(part, this._micromatchOptions) + }; + }); + } + _splitSegmentsIntoSections(segments) { + return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern)); + } + }; + exports2.default = Matcher; + } +}); +var require_partial = __commonJS2({ + "node_modules/fast-glob/out/providers/matchers/partial.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var matcher_1 = require_matcher(); + var PartialMatcher = class extends matcher_1.default { + match(filepath) { + const parts = filepath.split("/"); + const levels = parts.length; + const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels); + for (const pattern of patterns) { + const section = pattern.sections[0]; + if (!pattern.complete && levels > section.length) { + return true; + } + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } + if (!segment.dynamic && segment.pattern === part) { + return true; + } + return false; + }); + if (match) { + return true; + } + } + return false; + } + }; + exports2.default = PartialMatcher; + } +}); +var require_deep = __commonJS2({ + "node_modules/fast-glob/out/providers/filters/deep.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var partial_1 = require_partial(); + var DeepFilter = class { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + } + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); + const negativeRe = this._getNegativePatternsRe(negative); + return (entry) => this._filter(basePath, entry, matcher, negativeRe); + } + _getMatcher(patterns) { + return new partial_1.default(patterns, this._settings, this._micromatchOptions); + } + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern); + return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; + } + if (this._isSkippedSymbolicLink(entry)) { + return false; + } + const filepath = utils.path.removeLeadingDotSegment(entry.path); + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; + } + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } + _isSkippedByDeep(basePath, entryPath) { + if (this._settings.deep === Infinity) { + return false; + } + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; + } + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split("/").length; + if (basePath === "") { + return entryPathDepth; + } + const basePathDepth = basePath.split("/").length; + return entryPathDepth - basePathDepth; + } + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils.pattern.matchAny(entryPath, patternsRe); + } + }; + exports2.default = DeepFilter; + } +}); +var require_entry = __commonJS2({ + "node_modules/fast-glob/out/providers/filters/entry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var EntryFilter = class { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = /* @__PURE__ */ new Map(); + } + getFilter(positive, negative) { + const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions); + return (entry) => this._filter(entry, positiveRe, negativeRe); + } + _filter(entry, positiveRe, negativeRe) { + if (this._settings.unique && this._isDuplicateEntry(entry)) { + return false; + } + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; + } + if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + return false; + } + const filepath = this._settings.baseNameMatch ? entry.name : entry.path; + const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe); + if (this._settings.unique && isMatched) { + this._createIndexRecord(entry); + } + return isMatched; + } + _isDuplicateEntry(entry) { + return this.index.has(entry.path); + } + _createIndexRecord(entry) { + this.index.set(entry.path, void 0); + } + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); + } + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; + } + const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath); + return utils.pattern.matchAny(fullpath, patternsRe); + } + _isMatchToPatterns(entryPath, patternsRe) { + const filepath = utils.path.removeLeadingDotSegment(entryPath); + return utils.pattern.matchAny(filepath, patternsRe) || utils.pattern.matchAny(filepath + "/", patternsRe); + } + }; + exports2.default = EntryFilter; + } +}); +var require_error = __commonJS2({ + "node_modules/fast-glob/out/providers/filters/error.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var ErrorFilter = class { + constructor(_settings) { + this._settings = _settings; + } + getFilter() { + return (error) => this._isNonFatalError(error); + } + _isNonFatalError(error) { + return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + } + }; + exports2.default = ErrorFilter; + } +}); +var require_entry2 = __commonJS2({ + "node_modules/fast-glob/out/providers/transformers/entry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var utils = require_utils4(); + var EntryTransformer = class { + constructor(_settings) { + this._settings = _settings; + } + getTransformer() { + return (entry) => this._transform(entry); + } + _transform(entry) { + let filepath = entry.path; + if (this._settings.absolute) { + filepath = utils.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils.path.unixify(filepath); + } + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += "/"; + } + if (!this._settings.objectMode) { + return filepath; + } + return Object.assign(Object.assign({}, entry), { + path: filepath + }); + } + }; + exports2.default = EntryTransformer; + } +}); +var require_provider = __commonJS2({ + "node_modules/fast-glob/out/providers/provider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var path = require("path"); + var deep_1 = require_deep(); + var entry_1 = require_entry(); + var error_1 = require_error(); + var entry_2 = require_entry2(); + var Provider = class { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error_1.default(this._settings); + this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry_2.default(this._settings); + } + _getRootDirectory(task) { + return path.resolve(this._settings.cwd, task.base); + } + _getReaderOptions(task) { + const basePath = task.base === "." ? "" : task.base; + return { + basePath, + pathSegmentSeparator: "/", + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.negative), + errorFilter: this.errorFilter.getFilter(), + followSymbolicLinks: this._settings.followSymbolicLinks, + fs: this._settings.fs, + stats: this._settings.stats, + throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, + transform: this.entryTransformer.getTransformer() + }; + } + _getMicromatchOptions() { + return { + dot: this._settings.dot, + matchBase: this._settings.baseNameMatch, + nobrace: !this._settings.braceExpansion, + nocase: !this._settings.caseSensitiveMatch, + noext: !this._settings.extglob, + noglobstar: !this._settings.globstar, + posix: true, + strictSlashes: false + }; + } + }; + exports2.default = Provider; + } +}); +var require_async6 = __commonJS2({ + "node_modules/fast-glob/out/providers/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require_stream3(); + var provider_1 = require_provider(); + var ProviderAsync = class extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = []; + return new Promise((resolve, reject) => { + const stream = this.api(root, task, options); + stream.once("error", reject); + stream.on("data", (entry) => entries.push(options.transform(entry))); + stream.once("end", () => resolve(entries)); + }); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } + }; + exports2.default = ProviderAsync; + } +}); +var require_stream4 = __commonJS2({ + "node_modules/fast-glob/out/providers/stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var stream_1 = require("stream"); + var stream_2 = require_stream3(); + var provider_1 = require_provider(); + var ProviderStream = class extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_2.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const source = this.api(root, task, options); + const destination = new stream_1.Readable({ + objectMode: true, + read: () => { + } + }); + source.once("error", (error) => destination.emit("error", error)).on("data", (entry) => destination.emit("data", options.transform(entry))).once("end", () => destination.emit("end")); + destination.once("close", () => source.destroy()); + return destination; + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } + }; + exports2.default = ProviderStream; + } +}); +var require_sync6 = __commonJS2({ + "node_modules/fast-glob/out/readers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var fsStat = require_out(); + var fsWalk = require_out3(); + var reader_1 = require_reader2(); + var ReaderSync = class extends reader_1.default { + constructor() { + super(...arguments); + this._walkSync = fsWalk.walkSync; + this._statSync = fsStat.statSync; + } + dynamic(root, options) { + return this._walkSync(root, options); + } + static(patterns, options) { + const entries = []; + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); + const entry = this._getEntry(filepath, pattern, options); + if (entry === null || !options.entryFilter(entry)) { + continue; + } + entries.push(entry); + } + return entries; + } + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); + return this._makeEntry(stats, pattern); + } catch (error) { + if (options.errorFilter(error)) { + return null; + } + throw error; + } + } + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } + }; + exports2.default = ReaderSync; + } +}); +var require_sync7 = __commonJS2({ + "node_modules/fast-glob/out/providers/sync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var sync_1 = require_sync6(); + var provider_1 = require_provider(); + var ProviderSync = class extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new sync_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = this.api(root, task, options); + return entries.map(options.transform); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } + }; + exports2.default = ProviderSync; + } +}); +var require_settings4 = __commonJS2({ + "node_modules/fast-glob/out/settings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; + var fs = require("fs"); + var os = require("os"); + var CPU_COUNT = Math.max(os.cpus().length, 1); + exports2.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + lstatSync: fs.lstatSync, + stat: fs.stat, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync + }; + var Settings = class { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); + if (this.onlyDirectories) { + this.onlyFiles = false; + } + if (this.stats) { + this.objectMode = true; + } + } + _getValue(option, value) { + return option === void 0 ? value : option; + } + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports2.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } + }; + exports2.default = Settings; + } +}); +var require_out4 = __commonJS2({ + "node_modules/fast-glob/out/index.js"(exports2, module2) { + "use strict"; + var taskManager = require_tasks(); + var patternManager = require_patterns(); + var async_1 = require_async6(); + var stream_1 = require_stream4(); + var sync_1 = require_sync7(); + var settings_1 = require_settings4(); + var utils = require_utils4(); + async function FastGlob(source, options) { + assertPatternsInput(source); + const works = getWorks(source, async_1.default, options); + const result = await Promise.all(works); + return utils.array.flatten(result); + } + (function(FastGlob2) { + function sync(source, options) { + assertPatternsInput(source); + const works = getWorks(source, sync_1.default, options); + return utils.array.flatten(works); + } + FastGlob2.sync = sync; + function stream(source, options) { + assertPatternsInput(source); + const works = getWorks(source, stream_1.default, options); + return utils.stream.merge(works); + } + FastGlob2.stream = stream; + function generateTasks(source, options) { + assertPatternsInput(source); + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + return taskManager.generate(patterns, settings); + } + FastGlob2.generateTasks = generateTasks; + function isDynamicPattern(source, options) { + assertPatternsInput(source); + const settings = new settings_1.default(options); + return utils.pattern.isDynamicPattern(source, settings); + } + FastGlob2.isDynamicPattern = isDynamicPattern; + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escape(source); + } + FastGlob2.escapePath = escapePath; + })(FastGlob || (FastGlob = {})); + function getWorks(source, _Provider, options) { + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + const tasks = taskManager.generate(patterns, settings); + const provider = new _Provider(settings); + return tasks.map(provider.read, provider); + } + function assertPatternsInput(input) { + const source = [].concat(input); + const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item)); + if (!isValidSource) { + throw new TypeError("Patterns must be a string (non empty) or an array of strings"); + } + } + module2.exports = FastGlob; + } +}); +var require_uniq_by_key = __commonJS2({ + "src/utils/uniq-by-key.js"(exports2, module2) { + "use strict"; + function uniqByKey(array, key) { + const result = []; + const seen = /* @__PURE__ */ new Set(); + for (const element of array) { + const value = element[key]; + if (!seen.has(value)) { + seen.add(value); + result.push(element); + } + } + return result; + } + module2.exports = uniqByKey; + } +}); +var require_create_language = __commonJS2({ + "src/utils/create-language.js"(exports2, module2) { + "use strict"; + module2.exports = function(linguistData, override) { + const { + languageId + } = linguistData, rest = _objectWithoutProperties(linguistData, _excluded4); + return Object.assign(Object.assign({ + linguistLanguageId: languageId + }, rest), override(linguistData)); + }; + } +}); +var require_ast = __commonJS2({ + "node_modules/esutils/lib/ast.js"(exports2, module2) { + (function() { + "use strict"; + function isExpression(node) { + if (node == null) { + return false; + } + switch (node.type) { + case "ArrayExpression": + case "AssignmentExpression": + case "BinaryExpression": + case "CallExpression": + case "ConditionalExpression": + case "FunctionExpression": + case "Identifier": + case "Literal": + case "LogicalExpression": + case "MemberExpression": + case "NewExpression": + case "ObjectExpression": + case "SequenceExpression": + case "ThisExpression": + case "UnaryExpression": + case "UpdateExpression": + return true; + } + return false; + } + function isIterationStatement(node) { + if (node == null) { + return false; + } + switch (node.type) { + case "DoWhileStatement": + case "ForInStatement": + case "ForStatement": + case "WhileStatement": + return true; + } + return false; + } + function isStatement(node) { + if (node == null) { + return false; + } + switch (node.type) { + case "BlockStatement": + case "BreakStatement": + case "ContinueStatement": + case "DebuggerStatement": + case "DoWhileStatement": + case "EmptyStatement": + case "ExpressionStatement": + case "ForInStatement": + case "ForStatement": + case "IfStatement": + case "LabeledStatement": + case "ReturnStatement": + case "SwitchStatement": + case "ThrowStatement": + case "TryStatement": + case "VariableDeclaration": + case "WhileStatement": + case "WithStatement": + return true; + } + return false; + } + function isSourceElement(node) { + return isStatement(node) || node != null && node.type === "FunctionDeclaration"; + } + function trailingStatement(node) { + switch (node.type) { + case "IfStatement": + if (node.alternate != null) { + return node.alternate; + } + return node.consequent; + case "LabeledStatement": + case "ForStatement": + case "ForInStatement": + case "WhileStatement": + case "WithStatement": + return node.body; + } + return null; + } + function isProblematicIfStatement(node) { + var current; + if (node.type !== "IfStatement") { + return false; + } + if (node.alternate == null) { + return false; + } + current = node.consequent; + do { + if (current.type === "IfStatement") { + if (current.alternate == null) { + return true; + } + } + current = trailingStatement(current); + } while (current); + return false; + } + module2.exports = { + isExpression, + isStatement, + isIterationStatement, + isSourceElement, + isProblematicIfStatement, + trailingStatement + }; + })(); + } +}); +var require_code = __commonJS2({ + "node_modules/esutils/lib/code.js"(exports2, module2) { + (function() { + "use strict"; + var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch; + ES5Regex = { + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, + NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/ + }; + ES6Regex = { + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/, + NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ + }; + function isDecimalDigit(ch2) { + return 48 <= ch2 && ch2 <= 57; + } + function isHexDigit(ch2) { + return 48 <= ch2 && ch2 <= 57 || 97 <= ch2 && ch2 <= 102 || 65 <= ch2 && ch2 <= 70; + } + function isOctalDigit(ch2) { + return ch2 >= 48 && ch2 <= 55; + } + NON_ASCII_WHITESPACES = [5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288, 65279]; + function isWhiteSpace(ch2) { + return ch2 === 32 || ch2 === 9 || ch2 === 11 || ch2 === 12 || ch2 === 160 || ch2 >= 5760 && NON_ASCII_WHITESPACES.indexOf(ch2) >= 0; + } + function isLineTerminator(ch2) { + return ch2 === 10 || ch2 === 13 || ch2 === 8232 || ch2 === 8233; + } + function fromCodePoint(cp) { + if (cp <= 65535) { + return String.fromCharCode(cp); + } + var cu1 = String.fromCharCode(Math.floor((cp - 65536) / 1024) + 55296); + var cu2 = String.fromCharCode((cp - 65536) % 1024 + 56320); + return cu1 + cu2; + } + IDENTIFIER_START = new Array(128); + for (ch = 0; ch < 128; ++ch) { + IDENTIFIER_START[ch] = ch >= 97 && ch <= 122 || ch >= 65 && ch <= 90 || ch === 36 || ch === 95; + } + IDENTIFIER_PART = new Array(128); + for (ch = 0; ch < 128; ++ch) { + IDENTIFIER_PART[ch] = ch >= 97 && ch <= 122 || ch >= 65 && ch <= 90 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95; + } + function isIdentifierStartES5(ch2) { + return ch2 < 128 ? IDENTIFIER_START[ch2] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch2)); + } + function isIdentifierPartES5(ch2) { + return ch2 < 128 ? IDENTIFIER_PART[ch2] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch2)); + } + function isIdentifierStartES6(ch2) { + return ch2 < 128 ? IDENTIFIER_START[ch2] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch2)); + } + function isIdentifierPartES6(ch2) { + return ch2 < 128 ? IDENTIFIER_PART[ch2] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch2)); + } + module2.exports = { + isDecimalDigit, + isHexDigit, + isOctalDigit, + isWhiteSpace, + isLineTerminator, + isIdentifierStartES5, + isIdentifierPartES5, + isIdentifierStartES6, + isIdentifierPartES6 + }; + })(); + } +}); +var require_keyword2 = __commonJS2({ + "node_modules/esutils/lib/keyword.js"(exports2, module2) { + (function() { + "use strict"; + var code = require_code(); + function isStrictModeReservedWordES6(id) { + switch (id) { + case "implements": + case "interface": + case "package": + case "private": + case "protected": + case "public": + case "static": + case "let": + return true; + default: + return false; + } + } + function isKeywordES5(id, strict) { + if (!strict && id === "yield") { + return false; + } + return isKeywordES6(id, strict); + } + function isKeywordES6(id, strict) { + if (strict && isStrictModeReservedWordES6(id)) { + return true; + } + switch (id.length) { + case 2: + return id === "if" || id === "in" || id === "do"; + case 3: + return id === "var" || id === "for" || id === "new" || id === "try"; + case 4: + return id === "this" || id === "else" || id === "case" || id === "void" || id === "with" || id === "enum"; + case 5: + return id === "while" || id === "break" || id === "catch" || id === "throw" || id === "const" || id === "yield" || id === "class" || id === "super"; + case 6: + return id === "return" || id === "typeof" || id === "delete" || id === "switch" || id === "export" || id === "import"; + case 7: + return id === "default" || id === "finally" || id === "extends"; + case 8: + return id === "function" || id === "continue" || id === "debugger"; + case 10: + return id === "instanceof"; + default: + return false; + } + } + function isReservedWordES5(id, strict) { + return id === "null" || id === "true" || id === "false" || isKeywordES5(id, strict); + } + function isReservedWordES6(id, strict) { + return id === "null" || id === "true" || id === "false" || isKeywordES6(id, strict); + } + function isRestrictedWord(id) { + return id === "eval" || id === "arguments"; + } + function isIdentifierNameES5(id) { + var i, iz, ch; + if (id.length === 0) { + return false; + } + ch = id.charCodeAt(0); + if (!code.isIdentifierStartES5(ch)) { + return false; + } + for (i = 1, iz = id.length; i < iz; ++i) { + ch = id.charCodeAt(i); + if (!code.isIdentifierPartES5(ch)) { + return false; + } + } + return true; + } + function decodeUtf16(lead, trail) { + return (lead - 55296) * 1024 + (trail - 56320) + 65536; + } + function isIdentifierNameES6(id) { + var i, iz, ch, lowCh, check; + if (id.length === 0) { + return false; + } + check = code.isIdentifierStartES6; + for (i = 0, iz = id.length; i < iz; ++i) { + ch = id.charCodeAt(i); + if (55296 <= ch && ch <= 56319) { + ++i; + if (i >= iz) { + return false; + } + lowCh = id.charCodeAt(i); + if (!(56320 <= lowCh && lowCh <= 57343)) { + return false; + } + ch = decodeUtf16(ch, lowCh); + } + if (!check(ch)) { + return false; + } + check = code.isIdentifierPartES6; + } + return true; + } + function isIdentifierES5(id, strict) { + return isIdentifierNameES5(id) && !isReservedWordES5(id, strict); + } + function isIdentifierES6(id, strict) { + return isIdentifierNameES6(id) && !isReservedWordES6(id, strict); + } + module2.exports = { + isKeywordES5, + isKeywordES6, + isReservedWordES5, + isReservedWordES6, + isRestrictedWord, + isIdentifierNameES5, + isIdentifierNameES6, + isIdentifierES5, + isIdentifierES6 + }; + })(); + } +}); +var require_utils6 = __commonJS2({ + "node_modules/esutils/lib/utils.js"(exports2) { + (function() { + "use strict"; + exports2.ast = require_ast(); + exports2.code = require_code(); + exports2.keyword = require_keyword2(); + })(); + } +}); +var require_is_block_comment = __commonJS2({ + "src/language-js/utils/is-block-comment.js"(exports2, module2) { + "use strict"; + var BLOCK_COMMENT_TYPES = /* @__PURE__ */ new Set(["Block", "CommentBlock", "MultiLine"]); + var isBlockComment = (comment) => BLOCK_COMMENT_TYPES.has(comment === null || comment === void 0 ? void 0 : comment.type); + module2.exports = isBlockComment; + } +}); +var require_is_node_matches = __commonJS2({ + "src/language-js/utils/is-node-matches.js"(exports2, module2) { + "use strict"; + function isNodeMatchesNameOrPath(node, nameOrPath) { + const names = nameOrPath.split("."); + for (let index = names.length - 1; index >= 0; index--) { + const name = names[index]; + if (index === 0) { + return node.type === "Identifier" && node.name === name; + } + if (node.type !== "MemberExpression" || node.optional || node.computed || node.property.type !== "Identifier" || node.property.name !== name) { + return false; + } + node = node.object; + } + } + function isNodeMatches(node, nameOrPaths) { + return nameOrPaths.some((nameOrPath) => isNodeMatchesNameOrPath(node, nameOrPath)); + } + module2.exports = isNodeMatches; + } +}); +var require_utils7 = __commonJS2({ + "src/language-js/utils/index.js"(exports2, module2) { + "use strict"; + var isIdentifierName = require_utils6().keyword.isIdentifierNameES5; + var { + getLast, + hasNewline, + skipWhitespace, + isNonEmptyArray, + isNextLineEmptyAfterIndex, + getStringWidth + } = require_util(); + var { + locStart, + locEnd, + hasSameLocStart + } = require_loc(); + var isBlockComment = require_is_block_comment(); + var isNodeMatches = require_is_node_matches(); + var NON_LINE_TERMINATING_WHITE_SPACE = "(?:(?=.)\\s)"; + var FLOW_SHORTHAND_ANNOTATION = new RegExp(`^${NON_LINE_TERMINATING_WHITE_SPACE}*:`); + var FLOW_ANNOTATION = new RegExp(`^${NON_LINE_TERMINATING_WHITE_SPACE}*::`); + function hasFlowShorthandAnnotationComment(node) { + var _node$extra, _node$trailingComment; + return ((_node$extra = node.extra) === null || _node$extra === void 0 ? void 0 : _node$extra.parenthesized) && isBlockComment((_node$trailingComment = node.trailingComments) === null || _node$trailingComment === void 0 ? void 0 : _node$trailingComment[0]) && FLOW_SHORTHAND_ANNOTATION.test(node.trailingComments[0].value); + } + function hasFlowAnnotationComment(comments) { + const firstComment = comments === null || comments === void 0 ? void 0 : comments[0]; + return isBlockComment(firstComment) && FLOW_ANNOTATION.test(firstComment.value); + } + function hasNode(node, fn) { + if (!node || typeof node !== "object") { + return false; + } + if (Array.isArray(node)) { + return node.some((value) => hasNode(value, fn)); + } + const result = fn(node); + return typeof result === "boolean" ? result : Object.values(node).some((value) => hasNode(value, fn)); + } + function hasNakedLeftSide(node) { + return node.type === "AssignmentExpression" || node.type === "BinaryExpression" || node.type === "LogicalExpression" || node.type === "NGPipeExpression" || node.type === "ConditionalExpression" || isCallExpression(node) || isMemberExpression(node) || node.type === "SequenceExpression" || node.type === "TaggedTemplateExpression" || node.type === "BindExpression" || node.type === "UpdateExpression" && !node.prefix || node.type === "TSAsExpression" || node.type === "TSNonNullExpression"; + } + function getLeftSide(node) { + var _ref2, _ref3, _ref4, _ref5, _ref6, _node$left; + if (node.expressions) { + return node.expressions[0]; + } + return (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_ref6 = (_node$left = node.left) !== null && _node$left !== void 0 ? _node$left : node.test) !== null && _ref6 !== void 0 ? _ref6 : node.callee) !== null && _ref5 !== void 0 ? _ref5 : node.object) !== null && _ref4 !== void 0 ? _ref4 : node.tag) !== null && _ref3 !== void 0 ? _ref3 : node.argument) !== null && _ref2 !== void 0 ? _ref2 : node.expression; + } + function getLeftSidePathName(path, node) { + if (node.expressions) { + return ["expressions", 0]; + } + if (node.left) { + return ["left"]; + } + if (node.test) { + return ["test"]; + } + if (node.object) { + return ["object"]; + } + if (node.callee) { + return ["callee"]; + } + if (node.tag) { + return ["tag"]; + } + if (node.argument) { + return ["argument"]; + } + if (node.expression) { + return ["expression"]; + } + throw new Error("Unexpected node has no left side."); + } + function createTypeCheckFunction(types) { + types = new Set(types); + return (node) => types.has(node === null || node === void 0 ? void 0 : node.type); + } + var isLineComment = createTypeCheckFunction(["Line", "CommentLine", "SingleLine", "HashbangComment", "HTMLOpen", "HTMLClose"]); + var isExportDeclaration = createTypeCheckFunction(["ExportDefaultDeclaration", "ExportDefaultSpecifier", "DeclareExportDeclaration", "ExportNamedDeclaration", "ExportAllDeclaration"]); + function getParentExportDeclaration(path) { + const parentNode = path.getParentNode(); + if (path.getName() === "declaration" && isExportDeclaration(parentNode)) { + return parentNode; + } + return null; + } + var isLiteral = createTypeCheckFunction(["BooleanLiteral", "DirectiveLiteral", "Literal", "NullLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "RegExpLiteral", "StringLiteral", "TemplateLiteral", "TSTypeLiteral", "JSXText"]); + function isNumericLiteral(node) { + return node.type === "NumericLiteral" || node.type === "Literal" && typeof node.value === "number"; + } + function isSignedNumericLiteral(node) { + return node.type === "UnaryExpression" && (node.operator === "+" || node.operator === "-") && isNumericLiteral(node.argument); + } + function isStringLiteral(node) { + return node.type === "StringLiteral" || node.type === "Literal" && typeof node.value === "string"; + } + var isObjectType = createTypeCheckFunction(["ObjectTypeAnnotation", "TSTypeLiteral", "TSMappedType"]); + var isFunctionOrArrowExpression = createTypeCheckFunction(["FunctionExpression", "ArrowFunctionExpression"]); + function isFunctionOrArrowExpressionWithBody(node) { + return node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression" && node.body.type === "BlockStatement"; + } + function isAngularTestWrapper(node) { + return isCallExpression(node) && node.callee.type === "Identifier" && ["async", "inject", "fakeAsync", "waitForAsync"].includes(node.callee.name); + } + var isJsxNode = createTypeCheckFunction(["JSXElement", "JSXFragment"]); + function isTheOnlyJsxElementInMarkdown(options, path) { + if (options.parentParser !== "markdown" && options.parentParser !== "mdx") { + return false; + } + const node = path.getNode(); + if (!node.expression || !isJsxNode(node.expression)) { + return false; + } + const parent = path.getParentNode(); + return parent.type === "Program" && parent.body.length === 1; + } + function isGetterOrSetter(node) { + return node.kind === "get" || node.kind === "set"; + } + function isFunctionNotation(node) { + return isGetterOrSetter(node) || hasSameLocStart(node, node.value); + } + function isObjectTypePropertyAFunction(node) { + return (node.type === "ObjectTypeProperty" || node.type === "ObjectTypeInternalSlot") && node.value.type === "FunctionTypeAnnotation" && !node.static && !isFunctionNotation(node); + } + function isTypeAnnotationAFunction(node) { + return (node.type === "TypeAnnotation" || node.type === "TSTypeAnnotation") && node.typeAnnotation.type === "FunctionTypeAnnotation" && !node.static && !hasSameLocStart(node, node.typeAnnotation); + } + var isBinaryish = createTypeCheckFunction(["BinaryExpression", "LogicalExpression", "NGPipeExpression"]); + function isMemberish(node) { + return isMemberExpression(node) || node.type === "BindExpression" && Boolean(node.object); + } + var simpleTypeAnnotations = /* @__PURE__ */ new Set(["AnyTypeAnnotation", "TSAnyKeyword", "NullLiteralTypeAnnotation", "TSNullKeyword", "ThisTypeAnnotation", "TSThisType", "NumberTypeAnnotation", "TSNumberKeyword", "VoidTypeAnnotation", "TSVoidKeyword", "BooleanTypeAnnotation", "TSBooleanKeyword", "BigIntTypeAnnotation", "TSBigIntKeyword", "SymbolTypeAnnotation", "TSSymbolKeyword", "StringTypeAnnotation", "TSStringKeyword", "BooleanLiteralTypeAnnotation", "StringLiteralTypeAnnotation", "BigIntLiteralTypeAnnotation", "NumberLiteralTypeAnnotation", "TSLiteralType", "TSTemplateLiteralType", "EmptyTypeAnnotation", "MixedTypeAnnotation", "TSNeverKeyword", "TSObjectKeyword", "TSUndefinedKeyword", "TSUnknownKeyword"]); + function isSimpleType(node) { + if (!node) { + return false; + } + if ((node.type === "GenericTypeAnnotation" || node.type === "TSTypeReference") && !node.typeParameters) { + return true; + } + if (simpleTypeAnnotations.has(node.type)) { + return true; + } + return false; + } + function isUnitTestSetUp(node) { + const unitTestSetUpRe = /^(?:before|after)(?:Each|All)$/; + return node.callee.type === "Identifier" && unitTestSetUpRe.test(node.callee.name) && node.arguments.length === 1; + } + var testCallCalleePatterns = ["it", "it.only", "it.skip", "describe", "describe.only", "describe.skip", "test", "test.only", "test.skip", "test.step", "test.describe", "test.describe.only", "test.describe.parallel", "test.describe.parallel.only", "test.describe.serial", "test.describe.serial.only", "skip", "xit", "xdescribe", "xtest", "fit", "fdescribe", "ftest"]; + function isTestCallCallee(node) { + return isNodeMatches(node, testCallCalleePatterns); + } + function isTestCall(node, parent) { + if (node.type !== "CallExpression") { + return false; + } + if (node.arguments.length === 1) { + if (isAngularTestWrapper(node) && parent && isTestCall(parent)) { + return isFunctionOrArrowExpression(node.arguments[0]); + } + if (isUnitTestSetUp(node)) { + return isAngularTestWrapper(node.arguments[0]); + } + } else if (node.arguments.length === 2 || node.arguments.length === 3) { + if ((node.arguments[0].type === "TemplateLiteral" || isStringLiteral(node.arguments[0])) && isTestCallCallee(node.callee)) { + if (node.arguments[2] && !isNumericLiteral(node.arguments[2])) { + return false; + } + return (node.arguments.length === 2 ? isFunctionOrArrowExpression(node.arguments[1]) : isFunctionOrArrowExpressionWithBody(node.arguments[1]) && getFunctionParameters(node.arguments[1]).length <= 1) || isAngularTestWrapper(node.arguments[1]); + } + } + return false; + } + var isCallExpression = createTypeCheckFunction(["CallExpression", "OptionalCallExpression"]); + var isMemberExpression = createTypeCheckFunction(["MemberExpression", "OptionalMemberExpression"]); + function isSimpleTemplateLiteral(node) { + let expressionsKey = "expressions"; + if (node.type === "TSTemplateLiteralType") { + expressionsKey = "types"; + } + const expressions = node[expressionsKey]; + if (expressions.length === 0) { + return false; + } + return expressions.every((expr) => { + if (hasComment(expr)) { + return false; + } + if (expr.type === "Identifier" || expr.type === "ThisExpression") { + return true; + } + if (isMemberExpression(expr)) { + let head = expr; + while (isMemberExpression(head)) { + if (head.property.type !== "Identifier" && head.property.type !== "Literal" && head.property.type !== "StringLiteral" && head.property.type !== "NumericLiteral") { + return false; + } + head = head.object; + if (hasComment(head)) { + return false; + } + } + if (head.type === "Identifier" || head.type === "ThisExpression") { + return true; + } + return false; + } + return false; + }); + } + function getTypeScriptMappedTypeModifier(tokenNode, keyword) { + if (tokenNode === "+" || tokenNode === "-") { + return tokenNode + keyword; + } + return keyword; + } + function isFlowAnnotationComment(text, typeAnnotation) { + const start = locStart(typeAnnotation); + const end = skipWhitespace(text, locEnd(typeAnnotation)); + return end !== false && text.slice(start, start + 2) === "/*" && text.slice(end, end + 2) === "*/"; + } + function hasLeadingOwnLineComment(text, node) { + if (isJsxNode(node)) { + return hasNodeIgnoreComment(node); + } + return hasComment(node, CommentCheckFlags.Leading, (comment) => hasNewline(text, locEnd(comment))); + } + function isStringPropSafeToUnquote(node, options) { + return options.parser !== "json" && isStringLiteral(node.key) && rawText(node.key).slice(1, -1) === node.key.value && (isIdentifierName(node.key.value) && !(options.parser === "babel-ts" && node.type === "ClassProperty" || options.parser === "typescript" && node.type === "PropertyDefinition") || isSimpleNumber(node.key.value) && String(Number(node.key.value)) === node.key.value && (options.parser === "babel" || options.parser === "acorn" || options.parser === "espree" || options.parser === "meriyah" || options.parser === "__babel_estree")); + } + function isSimpleNumber(numberString) { + return /^(?:\d+|\d+\.\d+)$/.test(numberString); + } + function isJestEachTemplateLiteral(node, parentNode) { + const jestEachTriggerRegex = /^[fx]?(?:describe|it|test)$/; + return parentNode.type === "TaggedTemplateExpression" && parentNode.quasi === node && parentNode.tag.type === "MemberExpression" && parentNode.tag.property.type === "Identifier" && parentNode.tag.property.name === "each" && (parentNode.tag.object.type === "Identifier" && jestEachTriggerRegex.test(parentNode.tag.object.name) || parentNode.tag.object.type === "MemberExpression" && parentNode.tag.object.property.type === "Identifier" && (parentNode.tag.object.property.name === "only" || parentNode.tag.object.property.name === "skip") && parentNode.tag.object.object.type === "Identifier" && jestEachTriggerRegex.test(parentNode.tag.object.object.name)); + } + function templateLiteralHasNewLines(template) { + return template.quasis.some((quasi) => quasi.value.raw.includes("\n")); + } + function isTemplateOnItsOwnLine(node, text) { + return (node.type === "TemplateLiteral" && templateLiteralHasNewLines(node) || node.type === "TaggedTemplateExpression" && templateLiteralHasNewLines(node.quasi)) && !hasNewline(text, locStart(node), { + backwards: true + }); + } + function needsHardlineAfterDanglingComment(node) { + if (!hasComment(node)) { + return false; + } + const lastDanglingComment = getLast(getComments(node, CommentCheckFlags.Dangling)); + return lastDanglingComment && !isBlockComment(lastDanglingComment); + } + function isFunctionCompositionArgs(args) { + if (args.length <= 1) { + return false; + } + let count = 0; + for (const arg of args) { + if (isFunctionOrArrowExpression(arg)) { + count += 1; + if (count > 1) { + return true; + } + } else if (isCallExpression(arg)) { + for (const childArg of arg.arguments) { + if (isFunctionOrArrowExpression(childArg)) { + return true; + } + } + } + } + return false; + } + function isLongCurriedCallExpression(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + return isCallExpression(node) && isCallExpression(parent) && parent.callee === node && node.arguments.length > parent.arguments.length && parent.arguments.length > 0; + } + function isSimpleCallArgument(node, depth) { + if (depth >= 2) { + return false; + } + const isChildSimple = (child) => isSimpleCallArgument(child, depth + 1); + const regexpPattern = node.type === "Literal" && "regex" in node && node.regex.pattern || node.type === "RegExpLiteral" && node.pattern; + if (regexpPattern && getStringWidth(regexpPattern) > 5) { + return false; + } + if (node.type === "Literal" || node.type === "BigIntLiteral" || node.type === "DecimalLiteral" || node.type === "BooleanLiteral" || node.type === "NullLiteral" || node.type === "NumericLiteral" || node.type === "RegExpLiteral" || node.type === "StringLiteral" || node.type === "Identifier" || node.type === "ThisExpression" || node.type === "Super" || node.type === "PrivateName" || node.type === "PrivateIdentifier" || node.type === "ArgumentPlaceholder" || node.type === "Import") { + return true; + } + if (node.type === "TemplateLiteral") { + return node.quasis.every((element) => !element.value.raw.includes("\n")) && node.expressions.every(isChildSimple); + } + if (node.type === "ObjectExpression") { + return node.properties.every((p) => !p.computed && (p.shorthand || p.value && isChildSimple(p.value))); + } + if (node.type === "ArrayExpression") { + return node.elements.every((x) => x === null || isChildSimple(x)); + } + if (isCallLikeExpression(node)) { + return (node.type === "ImportExpression" || isSimpleCallArgument(node.callee, depth)) && getCallArguments(node).every(isChildSimple); + } + if (isMemberExpression(node)) { + return isSimpleCallArgument(node.object, depth) && isSimpleCallArgument(node.property, depth); + } + if (node.type === "UnaryExpression" && (node.operator === "!" || node.operator === "-")) { + return isSimpleCallArgument(node.argument, depth); + } + if (node.type === "TSNonNullExpression") { + return isSimpleCallArgument(node.expression, depth); + } + return false; + } + function rawText(node) { + var _node$extra$raw, _node$extra2; + return (_node$extra$raw = (_node$extra2 = node.extra) === null || _node$extra2 === void 0 ? void 0 : _node$extra2.raw) !== null && _node$extra$raw !== void 0 ? _node$extra$raw : node.raw; + } + function identity(x) { + return x; + } + function isTSXFile(options) { + return options.filepath && /\.tsx$/i.test(options.filepath); + } + function shouldPrintComma(options, level = "es5") { + return options.trailingComma === "es5" && level === "es5" || options.trailingComma === "all" && (level === "all" || level === "es5"); + } + function startsWithNoLookaheadToken(node, forbidFunctionClassAndDoExpr) { + node = getLeftMost(node); + switch (node.type) { + case "FunctionExpression": + case "ClassExpression": + case "DoExpression": + return forbidFunctionClassAndDoExpr; + case "ObjectExpression": + return true; + case "MemberExpression": + case "OptionalMemberExpression": + return startsWithNoLookaheadToken(node.object, forbidFunctionClassAndDoExpr); + case "TaggedTemplateExpression": + if (node.tag.type === "FunctionExpression") { + return false; + } + return startsWithNoLookaheadToken(node.tag, forbidFunctionClassAndDoExpr); + case "CallExpression": + case "OptionalCallExpression": + if (node.callee.type === "FunctionExpression") { + return false; + } + return startsWithNoLookaheadToken(node.callee, forbidFunctionClassAndDoExpr); + case "ConditionalExpression": + return startsWithNoLookaheadToken(node.test, forbidFunctionClassAndDoExpr); + case "UpdateExpression": + return !node.prefix && startsWithNoLookaheadToken(node.argument, forbidFunctionClassAndDoExpr); + case "BindExpression": + return node.object && startsWithNoLookaheadToken(node.object, forbidFunctionClassAndDoExpr); + case "SequenceExpression": + return startsWithNoLookaheadToken(node.expressions[0], forbidFunctionClassAndDoExpr); + case "TSAsExpression": + case "TSNonNullExpression": + return startsWithNoLookaheadToken(node.expression, forbidFunctionClassAndDoExpr); + default: + return false; + } + } + var equalityOperators = { + "==": true, + "!=": true, + "===": true, + "!==": true + }; + var multiplicativeOperators = { + "*": true, + "/": true, + "%": true + }; + var bitshiftOperators = { + ">>": true, + ">>>": true, + "<<": true + }; + function shouldFlatten(parentOp, nodeOp) { + if (getPrecedence(nodeOp) !== getPrecedence(parentOp)) { + return false; + } + if (parentOp === "**") { + return false; + } + if (equalityOperators[parentOp] && equalityOperators[nodeOp]) { + return false; + } + if (nodeOp === "%" && multiplicativeOperators[parentOp] || parentOp === "%" && multiplicativeOperators[nodeOp]) { + return false; + } + if (nodeOp !== parentOp && multiplicativeOperators[nodeOp] && multiplicativeOperators[parentOp]) { + return false; + } + if (bitshiftOperators[parentOp] && bitshiftOperators[nodeOp]) { + return false; + } + return true; + } + var PRECEDENCE = new Map([["|>"], ["??"], ["||"], ["&&"], ["|"], ["^"], ["&"], ["==", "===", "!=", "!=="], ["<", ">", "<=", ">=", "in", "instanceof"], [">>", "<<", ">>>"], ["+", "-"], ["*", "/", "%"], ["**"]].flatMap((operators, index) => operators.map((operator) => [operator, index]))); + function getPrecedence(operator) { + return PRECEDENCE.get(operator); + } + function getLeftMost(node) { + while (node.left) { + node = node.left; + } + return node; + } + function isBitwiseOperator(operator) { + return Boolean(bitshiftOperators[operator]) || operator === "|" || operator === "^" || operator === "&"; + } + function hasRestParameter(node) { + var _getLast; + if (node.rest) { + return true; + } + const parameters = getFunctionParameters(node); + return ((_getLast = getLast(parameters)) === null || _getLast === void 0 ? void 0 : _getLast.type) === "RestElement"; + } + var functionParametersCache = /* @__PURE__ */ new WeakMap(); + function getFunctionParameters(node) { + if (functionParametersCache.has(node)) { + return functionParametersCache.get(node); + } + const parameters = []; + if (node.this) { + parameters.push(node.this); + } + if (Array.isArray(node.parameters)) { + parameters.push(...node.parameters); + } else if (Array.isArray(node.params)) { + parameters.push(...node.params); + } + if (node.rest) { + parameters.push(node.rest); + } + functionParametersCache.set(node, parameters); + return parameters; + } + function iterateFunctionParametersPath(path, iteratee) { + const node = path.getValue(); + let index = 0; + const callback = (childPath) => iteratee(childPath, index++); + if (node.this) { + path.call(callback, "this"); + } + if (Array.isArray(node.parameters)) { + path.each(callback, "parameters"); + } else if (Array.isArray(node.params)) { + path.each(callback, "params"); + } + if (node.rest) { + path.call(callback, "rest"); + } + } + var callArgumentsCache = /* @__PURE__ */ new WeakMap(); + function getCallArguments(node) { + if (callArgumentsCache.has(node)) { + return callArgumentsCache.get(node); + } + let args = node.arguments; + if (node.type === "ImportExpression") { + args = [node.source]; + if (node.attributes) { + args.push(node.attributes); + } + } + callArgumentsCache.set(node, args); + return args; + } + function iterateCallArgumentsPath(path, iteratee) { + const node = path.getValue(); + if (node.type === "ImportExpression") { + path.call((sourcePath) => iteratee(sourcePath, 0), "source"); + if (node.attributes) { + path.call((sourcePath) => iteratee(sourcePath, 1), "attributes"); + } + } else { + path.each(iteratee, "arguments"); + } + } + function isPrettierIgnoreComment(comment) { + return comment.value.trim() === "prettier-ignore" && !comment.unignore; + } + function hasNodeIgnoreComment(node) { + return node && (node.prettierIgnore || hasComment(node, CommentCheckFlags.PrettierIgnore)); + } + function hasIgnoreComment(path) { + const node = path.getValue(); + return hasNodeIgnoreComment(node); + } + var CommentCheckFlags = { + Leading: 1 << 1, + Trailing: 1 << 2, + Dangling: 1 << 3, + Block: 1 << 4, + Line: 1 << 5, + PrettierIgnore: 1 << 6, + First: 1 << 7, + Last: 1 << 8 + }; + var getCommentTestFunction = (flags, fn) => { + if (typeof flags === "function") { + fn = flags; + flags = 0; + } + if (flags || fn) { + return (comment, index, comments) => !(flags & CommentCheckFlags.Leading && !comment.leading || flags & CommentCheckFlags.Trailing && !comment.trailing || flags & CommentCheckFlags.Dangling && (comment.leading || comment.trailing) || flags & CommentCheckFlags.Block && !isBlockComment(comment) || flags & CommentCheckFlags.Line && !isLineComment(comment) || flags & CommentCheckFlags.First && index !== 0 || flags & CommentCheckFlags.Last && index !== comments.length - 1 || flags & CommentCheckFlags.PrettierIgnore && !isPrettierIgnoreComment(comment) || fn && !fn(comment)); + } + }; + function hasComment(node, flags, fn) { + if (!isNonEmptyArray(node === null || node === void 0 ? void 0 : node.comments)) { + return false; + } + const test = getCommentTestFunction(flags, fn); + return test ? node.comments.some(test) : true; + } + function getComments(node, flags, fn) { + if (!Array.isArray(node === null || node === void 0 ? void 0 : node.comments)) { + return []; + } + const test = getCommentTestFunction(flags, fn); + return test ? node.comments.filter(test) : node.comments; + } + var isNextLineEmpty = (node, { + originalText + }) => isNextLineEmptyAfterIndex(originalText, locEnd(node)); + function isCallLikeExpression(node) { + return isCallExpression(node) || node.type === "NewExpression" || node.type === "ImportExpression"; + } + function isObjectProperty(node) { + return node && (node.type === "ObjectProperty" || node.type === "Property" && !node.method && node.kind === "init"); + } + function isEnabledHackPipeline(options) { + return Boolean(options.__isUsingHackPipeline); + } + var markerForIfWithoutBlockAndSameLineComment = Symbol("ifWithoutBlockAndSameLineComment"); + module2.exports = { + getFunctionParameters, + iterateFunctionParametersPath, + getCallArguments, + iterateCallArgumentsPath, + hasRestParameter, + getLeftSide, + getLeftSidePathName, + getParentExportDeclaration, + getTypeScriptMappedTypeModifier, + hasFlowAnnotationComment, + hasFlowShorthandAnnotationComment, + hasLeadingOwnLineComment, + hasNakedLeftSide, + hasNode, + hasIgnoreComment, + hasNodeIgnoreComment, + identity, + isBinaryish, + isCallLikeExpression, + isEnabledHackPipeline, + isLineComment, + isPrettierIgnoreComment, + isCallExpression, + isMemberExpression, + isExportDeclaration, + isFlowAnnotationComment, + isFunctionCompositionArgs, + isFunctionNotation, + isFunctionOrArrowExpression, + isGetterOrSetter, + isJestEachTemplateLiteral, + isJsxNode, + isLiteral, + isLongCurriedCallExpression, + isSimpleCallArgument, + isMemberish, + isNumericLiteral, + isSignedNumericLiteral, + isObjectProperty, + isObjectType, + isObjectTypePropertyAFunction, + isSimpleType, + isSimpleNumber, + isSimpleTemplateLiteral, + isStringLiteral, + isStringPropSafeToUnquote, + isTemplateOnItsOwnLine, + isTestCall, + isTheOnlyJsxElementInMarkdown, + isTSXFile, + isTypeAnnotationAFunction, + isNextLineEmpty, + needsHardlineAfterDanglingComment, + rawText, + shouldPrintComma, + isBitwiseOperator, + shouldFlatten, + startsWithNoLookaheadToken, + getPrecedence, + hasComment, + getComments, + CommentCheckFlags, + markerForIfWithoutBlockAndSameLineComment + }; + } +}); +var require_template_literal = __commonJS2({ + "src/language-js/print/template-literal.js"(exports2, module2) { + "use strict"; + var getLast = require_get_last(); + var { + getStringWidth, + getIndentSize + } = require_util(); + var { + builders: { + join, + hardline, + softline, + group, + indent, + align, + lineSuffixBoundary, + addAlignmentToDoc + }, + printer: { + printDocToString + }, + utils: { + mapDoc + } + } = require("./doc.js"); + var { + isBinaryish, + isJestEachTemplateLiteral, + isSimpleTemplateLiteral, + hasComment, + isMemberExpression + } = require_utils7(); + function printTemplateLiteral(path, print, options) { + const node = path.getValue(); + const isTemplateLiteral = node.type === "TemplateLiteral"; + if (isTemplateLiteral && isJestEachTemplateLiteral(node, path.getParentNode())) { + const printed = printJestEachTemplateLiteral(path, options, print); + if (printed) { + return printed; + } + } + let expressionsKey = "expressions"; + if (node.type === "TSTemplateLiteralType") { + expressionsKey = "types"; + } + const parts = []; + let expressions = path.map(print, expressionsKey); + const isSimple = isSimpleTemplateLiteral(node); + if (isSimple) { + expressions = expressions.map((doc2) => printDocToString(doc2, Object.assign(Object.assign({}, options), {}, { + printWidth: Number.POSITIVE_INFINITY + })).formatted); + } + parts.push(lineSuffixBoundary, "`"); + path.each((childPath) => { + const i = childPath.getName(); + parts.push(print()); + if (i < expressions.length) { + const { + tabWidth + } = options; + const quasi = childPath.getValue(); + const indentSize = getIndentSize(quasi.value.raw, tabWidth); + let printed = expressions[i]; + if (!isSimple) { + const expression = node[expressionsKey][i]; + if (hasComment(expression) || isMemberExpression(expression) || expression.type === "ConditionalExpression" || expression.type === "SequenceExpression" || expression.type === "TSAsExpression" || isBinaryish(expression)) { + printed = [indent([softline, printed]), softline]; + } + } + const aligned = indentSize === 0 && quasi.value.raw.endsWith("\n") ? align(Number.NEGATIVE_INFINITY, printed) : addAlignmentToDoc(printed, indentSize, tabWidth); + parts.push(group(["${", aligned, lineSuffixBoundary, "}"])); + } + }, "quasis"); + parts.push("`"); + return parts; + } + function printJestEachTemplateLiteral(path, options, print) { + const node = path.getNode(); + const headerNames = node.quasis[0].value.raw.trim().split(/\s*\|\s*/); + if (headerNames.length > 1 || headerNames.some((headerName) => headerName.length > 0)) { + options.__inJestEach = true; + const expressions = path.map(print, "expressions"); + options.__inJestEach = false; + const parts = []; + const stringifiedExpressions = expressions.map((doc2) => "${" + printDocToString(doc2, Object.assign(Object.assign({}, options), {}, { + printWidth: Number.POSITIVE_INFINITY, + endOfLine: "lf" + })).formatted + "}"); + const tableBody = [{ + hasLineBreak: false, + cells: [] + }]; + for (let i = 1; i < node.quasis.length; i++) { + const row = getLast(tableBody); + const correspondingExpression = stringifiedExpressions[i - 1]; + row.cells.push(correspondingExpression); + if (correspondingExpression.includes("\n")) { + row.hasLineBreak = true; + } + if (node.quasis[i].value.raw.includes("\n")) { + tableBody.push({ + hasLineBreak: false, + cells: [] + }); + } + } + const maxColumnCount = Math.max(headerNames.length, ...tableBody.map((row) => row.cells.length)); + const maxColumnWidths = Array.from({ + length: maxColumnCount + }).fill(0); + const table = [{ + cells: headerNames + }, ...tableBody.filter((row) => row.cells.length > 0)]; + for (const { + cells + } of table.filter((row) => !row.hasLineBreak)) { + for (const [index, cell] of cells.entries()) { + maxColumnWidths[index] = Math.max(maxColumnWidths[index], getStringWidth(cell)); + } + } + parts.push(lineSuffixBoundary, "`", indent([hardline, join(hardline, table.map((row) => join(" | ", row.cells.map((cell, index) => row.hasLineBreak ? cell : cell + " ".repeat(maxColumnWidths[index] - getStringWidth(cell))))))]), hardline, "`"); + return parts; + } + } + function printTemplateExpression(path, print) { + const node = path.getValue(); + let printed = print(); + if (hasComment(node)) { + printed = group([indent([softline, printed]), softline]); + } + return ["${", printed, lineSuffixBoundary, "}"]; + } + function printTemplateExpressions(path, print) { + return path.map((path2) => printTemplateExpression(path2, print), "expressions"); + } + function escapeTemplateCharacters(doc2, raw) { + return mapDoc(doc2, (currentDoc) => { + if (typeof currentDoc === "string") { + return raw ? currentDoc.replace(/(\\*)`/g, "$1$1\\`") : uncookTemplateElementValue(currentDoc); + } + return currentDoc; + }); + } + function uncookTemplateElementValue(cookedValue) { + return cookedValue.replace(/([\\`]|\${)/g, "\\$1"); + } + module2.exports = { + printTemplateLiteral, + printTemplateExpressions, + escapeTemplateCharacters, + uncookTemplateElementValue + }; + } +}); +var require_markdown = __commonJS2({ + "src/language-js/embed/markdown.js"(exports2, module2) { + "use strict"; + var { + builders: { + indent, + softline, + literalline, + dedentToRoot + } + } = require("./doc.js"); + var { + escapeTemplateCharacters + } = require_template_literal(); + function format(path, print, textToDoc) { + const node = path.getValue(); + let text = node.quasis[0].value.raw.replace(/((?:\\\\)*)\\`/g, (_, backslashes) => "\\".repeat(backslashes.length / 2) + "`"); + const indentation = getIndentation(text); + const hasIndent = indentation !== ""; + if (hasIndent) { + text = text.replace(new RegExp(`^${indentation}`, "gm"), ""); + } + const doc2 = escapeTemplateCharacters(textToDoc(text, { + parser: "markdown", + __inJsTemplate: true + }, { + stripTrailingHardline: true + }), true); + return ["`", hasIndent ? indent([softline, doc2]) : [literalline, dedentToRoot(doc2)], softline, "`"]; + } + function getIndentation(str) { + const firstMatchedIndent = str.match(/^([^\S\n]*)\S/m); + return firstMatchedIndent === null ? "" : firstMatchedIndent[1]; + } + module2.exports = format; + } +}); +var require_css = __commonJS2({ + "src/language-js/embed/css.js"(exports2, module2) { + "use strict"; + var { + isNonEmptyArray + } = require_util(); + var { + builders: { + indent, + hardline, + softline + }, + utils: { + mapDoc, + replaceEndOfLine, + cleanDoc + } + } = require("./doc.js"); + var { + printTemplateExpressions + } = require_template_literal(); + function format(path, print, textToDoc) { + const node = path.getValue(); + const rawQuasis = node.quasis.map((q) => q.value.raw); + let placeholderID = 0; + const text = rawQuasis.reduce((prevVal, currVal, idx) => idx === 0 ? currVal : prevVal + "@prettier-placeholder-" + placeholderID++ + "-id" + currVal, ""); + const doc2 = textToDoc(text, { + parser: "scss" + }, { + stripTrailingHardline: true + }); + const expressionDocs = printTemplateExpressions(path, print); + return transformCssDoc(doc2, node, expressionDocs); + } + function transformCssDoc(quasisDoc, parentNode, expressionDocs) { + const isEmpty = parentNode.quasis.length === 1 && !parentNode.quasis[0].value.raw.trim(); + if (isEmpty) { + return "``"; + } + const newDoc = replacePlaceholders(quasisDoc, expressionDocs); + if (!newDoc) { + throw new Error("Couldn't insert all the expressions"); + } + return ["`", indent([hardline, newDoc]), softline, "`"]; + } + function replacePlaceholders(quasisDoc, expressionDocs) { + if (!isNonEmptyArray(expressionDocs)) { + return quasisDoc; + } + let replaceCounter = 0; + const newDoc = mapDoc(cleanDoc(quasisDoc), (doc2) => { + if (typeof doc2 !== "string" || !doc2.includes("@prettier-placeholder")) { + return doc2; + } + return doc2.split(/@prettier-placeholder-(\d+)-id/).map((component, idx) => { + if (idx % 2 === 0) { + return replaceEndOfLine(component); + } + replaceCounter++; + return expressionDocs[component]; + }); + }); + return expressionDocs.length === replaceCounter ? newDoc : null; + } + module2.exports = format; + } +}); +var require_graphql = __commonJS2({ + "src/language-js/embed/graphql.js"(exports2, module2) { + "use strict"; + var { + builders: { + indent, + join, + hardline + } + } = require("./doc.js"); + var { + escapeTemplateCharacters, + printTemplateExpressions + } = require_template_literal(); + function format(path, print, textToDoc) { + const node = path.getValue(); + const numQuasis = node.quasis.length; + if (numQuasis === 1 && node.quasis[0].value.raw.trim() === "") { + return "``"; + } + const expressionDocs = printTemplateExpressions(path, print); + const parts = []; + for (let i = 0; i < numQuasis; i++) { + const templateElement = node.quasis[i]; + const isFirst = i === 0; + const isLast = i === numQuasis - 1; + const text = templateElement.value.cooked; + const lines = text.split("\n"); + const numLines = lines.length; + const expressionDoc = expressionDocs[i]; + const startsWithBlankLine = numLines > 2 && lines[0].trim() === "" && lines[1].trim() === ""; + const endsWithBlankLine = numLines > 2 && lines[numLines - 1].trim() === "" && lines[numLines - 2].trim() === ""; + const commentsAndWhitespaceOnly = lines.every((line) => /^\s*(?:#[^\n\r]*)?$/.test(line)); + if (!isLast && /#[^\n\r]*$/.test(lines[numLines - 1])) { + return null; + } + let doc2 = null; + if (commentsAndWhitespaceOnly) { + doc2 = printGraphqlComments(lines); + } else { + doc2 = textToDoc(text, { + parser: "graphql" + }, { + stripTrailingHardline: true + }); + } + if (doc2) { + doc2 = escapeTemplateCharacters(doc2, false); + if (!isFirst && startsWithBlankLine) { + parts.push(""); + } + parts.push(doc2); + if (!isLast && endsWithBlankLine) { + parts.push(""); + } + } else if (!isFirst && !isLast && startsWithBlankLine) { + parts.push(""); + } + if (expressionDoc) { + parts.push(expressionDoc); + } + } + return ["`", indent([hardline, join(hardline, parts)]), hardline, "`"]; + } + function printGraphqlComments(lines) { + const parts = []; + let seenComment = false; + const array = lines.map((textLine) => textLine.trim()); + for (const [i, textLine] of array.entries()) { + if (textLine === "") { + continue; + } + if (array[i - 1] === "" && seenComment) { + parts.push([hardline, textLine]); + } else { + parts.push(textLine); + } + seenComment = true; + } + return parts.length === 0 ? null : join(hardline, parts); + } + module2.exports = format; + } +}); +var require_html = __commonJS2({ + "src/language-js/embed/html.js"(exports2, module2) { + "use strict"; + var { + builders: { + indent, + line, + hardline, + group + }, + utils: { + mapDoc + } + } = require("./doc.js"); + var { + printTemplateExpressions, + uncookTemplateElementValue + } = require_template_literal(); + var htmlTemplateLiteralCounter = 0; + function format(path, print, textToDoc, options, { + parser + }) { + const node = path.getValue(); + const counter = htmlTemplateLiteralCounter; + htmlTemplateLiteralCounter = htmlTemplateLiteralCounter + 1 >>> 0; + const composePlaceholder = (index) => `PRETTIER_HTML_PLACEHOLDER_${index}_${counter}_IN_JS`; + const text = node.quasis.map((quasi, index, quasis) => index === quasis.length - 1 ? quasi.value.cooked : quasi.value.cooked + composePlaceholder(index)).join(""); + const expressionDocs = printTemplateExpressions(path, print); + if (expressionDocs.length === 0 && text.trim().length === 0) { + return "``"; + } + const placeholderRegex = new RegExp(composePlaceholder("(\\d+)"), "g"); + let topLevelCount = 0; + const doc2 = textToDoc(text, { + parser, + __onHtmlRoot(root) { + topLevelCount = root.children.length; + } + }, { + stripTrailingHardline: true + }); + const contentDoc = mapDoc(doc2, (doc3) => { + if (typeof doc3 !== "string") { + return doc3; + } + const parts = []; + const components = doc3.split(placeholderRegex); + for (let i = 0; i < components.length; i++) { + let component = components[i]; + if (i % 2 === 0) { + if (component) { + component = uncookTemplateElementValue(component); + if (options.__embeddedInHtml) { + component = component.replace(/<\/(script)\b/gi, "<\\/$1"); + } + parts.push(component); + } + continue; + } + const placeholderIndex = Number(component); + parts.push(expressionDocs[placeholderIndex]); + } + return parts; + }); + const leadingWhitespace = /^\s/.test(text) ? " " : ""; + const trailingWhitespace = /\s$/.test(text) ? " " : ""; + const linebreak = options.htmlWhitespaceSensitivity === "ignore" ? hardline : leadingWhitespace && trailingWhitespace ? line : null; + if (linebreak) { + return group(["`", indent([linebreak, group(contentDoc)]), linebreak, "`"]); + } + return group(["`", leadingWhitespace, topLevelCount > 1 ? indent(group(contentDoc)) : group(contentDoc), trailingWhitespace, "`"]); + } + module2.exports = format; + } +}); +var require_embed = __commonJS2({ + "src/language-js/embed.js"(exports2, module2) { + "use strict"; + var { + hasComment, + CommentCheckFlags, + isObjectProperty + } = require_utils7(); + var formatMarkdown = require_markdown(); + var formatCss = require_css(); + var formatGraphql = require_graphql(); + var formatHtml = require_html(); + function getLanguage(path) { + if (isStyledJsx(path) || isStyledComponents(path) || isCssProp(path) || isAngularComponentStyles(path)) { + return "css"; + } + if (isGraphQL(path)) { + return "graphql"; + } + if (isHtml(path)) { + return "html"; + } + if (isAngularComponentTemplate(path)) { + return "angular"; + } + if (isMarkdown(path)) { + return "markdown"; + } + } + function embed(path, print, textToDoc, options) { + const node = path.getValue(); + if (node.type !== "TemplateLiteral" || hasInvalidCookedValue(node)) { + return; + } + const language = getLanguage(path); + if (!language) { + return; + } + if (language === "markdown") { + return formatMarkdown(path, print, textToDoc); + } + if (language === "css") { + return formatCss(path, print, textToDoc); + } + if (language === "graphql") { + return formatGraphql(path, print, textToDoc); + } + if (language === "html" || language === "angular") { + return formatHtml(path, print, textToDoc, options, { + parser: language + }); + } + } + function isMarkdown(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + return parent && parent.type === "TaggedTemplateExpression" && node.quasis.length === 1 && parent.tag.type === "Identifier" && (parent.tag.name === "md" || parent.tag.name === "markdown"); + } + function isStyledJsx(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); + return parentParent && node.quasis && parent.type === "JSXExpressionContainer" && parentParent.type === "JSXElement" && parentParent.openingElement.name.name === "style" && parentParent.openingElement.attributes.some((attribute) => attribute.name.name === "jsx") || parent && parent.type === "TaggedTemplateExpression" && parent.tag.type === "Identifier" && parent.tag.name === "css" || parent && parent.type === "TaggedTemplateExpression" && parent.tag.type === "MemberExpression" && parent.tag.object.name === "css" && (parent.tag.property.name === "global" || parent.tag.property.name === "resolve"); + } + function isAngularComponentStyles(path) { + return path.match((node) => node.type === "TemplateLiteral", (node, name) => node.type === "ArrayExpression" && name === "elements", (node, name) => isObjectProperty(node) && node.key.type === "Identifier" && node.key.name === "styles" && name === "value", ...angularComponentObjectExpressionPredicates); + } + function isAngularComponentTemplate(path) { + return path.match((node) => node.type === "TemplateLiteral", (node, name) => isObjectProperty(node) && node.key.type === "Identifier" && node.key.name === "template" && name === "value", ...angularComponentObjectExpressionPredicates); + } + var angularComponentObjectExpressionPredicates = [(node, name) => node.type === "ObjectExpression" && name === "properties", (node, name) => node.type === "CallExpression" && node.callee.type === "Identifier" && node.callee.name === "Component" && name === "arguments", (node, name) => node.type === "Decorator" && name === "expression"]; + function isStyledComponents(path) { + const parent = path.getParentNode(); + if (!parent || parent.type !== "TaggedTemplateExpression") { + return false; + } + const tag = parent.tag.type === "ParenthesizedExpression" ? parent.tag.expression : parent.tag; + switch (tag.type) { + case "MemberExpression": + return isStyledIdentifier(tag.object) || isStyledExtend(tag); + case "CallExpression": + return isStyledIdentifier(tag.callee) || tag.callee.type === "MemberExpression" && (tag.callee.object.type === "MemberExpression" && (isStyledIdentifier(tag.callee.object.object) || isStyledExtend(tag.callee.object)) || tag.callee.object.type === "CallExpression" && isStyledIdentifier(tag.callee.object.callee)); + case "Identifier": + return tag.name === "css"; + default: + return false; + } + } + function isCssProp(path) { + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); + return parentParent && parent.type === "JSXExpressionContainer" && parentParent.type === "JSXAttribute" && parentParent.name.type === "JSXIdentifier" && parentParent.name.name === "css"; + } + function isStyledIdentifier(node) { + return node.type === "Identifier" && node.name === "styled"; + } + function isStyledExtend(node) { + return /^[A-Z]/.test(node.object.name) && node.property.name === "extend"; + } + function isGraphQL(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + return hasLanguageComment(node, "GraphQL") || parent && (parent.type === "TaggedTemplateExpression" && (parent.tag.type === "MemberExpression" && parent.tag.object.name === "graphql" && parent.tag.property.name === "experimental" || parent.tag.type === "Identifier" && (parent.tag.name === "gql" || parent.tag.name === "graphql")) || parent.type === "CallExpression" && parent.callee.type === "Identifier" && parent.callee.name === "graphql"); + } + function hasLanguageComment(node, languageName) { + return hasComment(node, CommentCheckFlags.Block | CommentCheckFlags.Leading, ({ + value + }) => value === ` ${languageName} `); + } + function isHtml(path) { + return hasLanguageComment(path.getValue(), "HTML") || path.match((node) => node.type === "TemplateLiteral", (node, name) => node.type === "TaggedTemplateExpression" && node.tag.type === "Identifier" && node.tag.name === "html" && name === "quasi"); + } + function hasInvalidCookedValue({ + quasis + }) { + return quasis.some(({ + value: { + cooked + } + }) => cooked === null); + } + module2.exports = embed; + } +}); +var require_clean = __commonJS2({ + "src/language-js/clean.js"(exports2, module2) { + "use strict"; + var isBlockComment = require_is_block_comment(); + var ignoredProperties = /* @__PURE__ */ new Set(["range", "raw", "comments", "leadingComments", "trailingComments", "innerComments", "extra", "start", "end", "loc", "flags", "errors", "tokens"]); + var removeTemplateElementsValue = (node) => { + for (const templateElement of node.quasis) { + delete templateElement.value; + } + }; + function clean(ast, newObj, parent) { + if (ast.type === "Program") { + delete newObj.sourceType; + } + if (ast.type === "BigIntLiteral" || ast.type === "BigIntLiteralTypeAnnotation") { + if (newObj.value) { + newObj.value = newObj.value.toLowerCase(); + } + } + if (ast.type === "BigIntLiteral" || ast.type === "Literal") { + if (newObj.bigint) { + newObj.bigint = newObj.bigint.toLowerCase(); + } + } + if (ast.type === "DecimalLiteral") { + newObj.value = Number(newObj.value); + } + if (ast.type === "Literal" && newObj.decimal) { + newObj.decimal = Number(newObj.decimal); + } + if (ast.type === "EmptyStatement") { + return null; + } + if (ast.type === "JSXText") { + return null; + } + if (ast.type === "JSXExpressionContainer" && (ast.expression.type === "Literal" || ast.expression.type === "StringLiteral") && ast.expression.value === " ") { + return null; + } + if ((ast.type === "Property" || ast.type === "ObjectProperty" || ast.type === "MethodDefinition" || ast.type === "ClassProperty" || ast.type === "ClassMethod" || ast.type === "PropertyDefinition" || ast.type === "TSDeclareMethod" || ast.type === "TSPropertySignature" || ast.type === "ObjectTypeProperty") && typeof ast.key === "object" && ast.key && (ast.key.type === "Literal" || ast.key.type === "NumericLiteral" || ast.key.type === "StringLiteral" || ast.key.type === "Identifier")) { + delete newObj.key; + } + if (ast.type === "JSXElement" && ast.openingElement.name.name === "style" && ast.openingElement.attributes.some((attr) => attr.name.name === "jsx")) { + for (const { + type, + expression: expression2 + } of newObj.children) { + if (type === "JSXExpressionContainer" && expression2.type === "TemplateLiteral") { + removeTemplateElementsValue(expression2); + } + } + } + if (ast.type === "JSXAttribute" && ast.name.name === "css" && ast.value.type === "JSXExpressionContainer" && ast.value.expression.type === "TemplateLiteral") { + removeTemplateElementsValue(newObj.value.expression); + } + if (ast.type === "JSXAttribute" && ast.value && ast.value.type === "Literal" && /["']|"|'/.test(ast.value.value)) { + newObj.value.value = newObj.value.value.replace(/["']|"|'/g, '"'); + } + const expression = ast.expression || ast.callee; + if (ast.type === "Decorator" && expression.type === "CallExpression" && expression.callee.name === "Component" && expression.arguments.length === 1) { + const astProps = ast.expression.arguments[0].properties; + for (const [index, prop] of newObj.expression.arguments[0].properties.entries()) { + switch (astProps[index].key.name) { + case "styles": + if (prop.value.type === "ArrayExpression") { + removeTemplateElementsValue(prop.value.elements[0]); + } + break; + case "template": + if (prop.value.type === "TemplateLiteral") { + removeTemplateElementsValue(prop.value); + } + break; + } + } + } + if (ast.type === "TaggedTemplateExpression" && (ast.tag.type === "MemberExpression" || ast.tag.type === "Identifier" && (ast.tag.name === "gql" || ast.tag.name === "graphql" || ast.tag.name === "css" || ast.tag.name === "md" || ast.tag.name === "markdown" || ast.tag.name === "html") || ast.tag.type === "CallExpression")) { + removeTemplateElementsValue(newObj.quasi); + } + if (ast.type === "TemplateLiteral") { + var _ast$leadingComments; + const hasLanguageComment = (_ast$leadingComments = ast.leadingComments) === null || _ast$leadingComments === void 0 ? void 0 : _ast$leadingComments.some((comment) => isBlockComment(comment) && ["GraphQL", "HTML"].some((languageName) => comment.value === ` ${languageName} `)); + if (hasLanguageComment || parent.type === "CallExpression" && parent.callee.name === "graphql" || !ast.leadingComments) { + removeTemplateElementsValue(newObj); + } + } + if (ast.type === "InterpreterDirective") { + newObj.value = newObj.value.trimEnd(); + } + if ((ast.type === "TSIntersectionType" || ast.type === "TSUnionType") && ast.types.length === 1) { + return newObj.types[0]; + } + } + clean.ignoredProperties = ignoredProperties; + module2.exports = clean; + } +}); +var require_detect_newline = __commonJS2({ + "node_modules/detect-newline/index.js"(exports2, module2) { + "use strict"; + var detectNewline = (string) => { + if (typeof string !== "string") { + throw new TypeError("Expected a string"); + } + const newlines = string.match(/(?:\r?\n)/g) || []; + if (newlines.length === 0) { + return; + } + const crlf = newlines.filter((newline) => newline === "\r\n").length; + const lf = newlines.length - crlf; + return crlf > lf ? "\r\n" : "\n"; + }; + module2.exports = detectNewline; + module2.exports.graceful = (string) => typeof string === "string" && detectNewline(string) || "\n"; + } +}); +var require_build = __commonJS2({ + "node_modules/jest-docblock/build/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.extract = extract; + exports2.parse = parse; + exports2.parseWithComments = parseWithComments; + exports2.print = print; + exports2.strip = strip; + function _os() { + const data = require("os"); + _os = function() { + return data; + }; + return data; + } + function _detectNewline() { + const data = _interopRequireDefault(require_detect_newline()); + _detectNewline = function() { + return data; + }; + return data; + } + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var commentEndRe = /\*\/$/; + var commentStartRe = /^\/\*\*/; + var docblockRe = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/; + var lineCommentRe = /(^|\s+)\/\/([^\r\n]*)/g; + var ltrimNewlineRe = /^(\r?\n)+/; + var multilineRe = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g; + var propertyRe = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g; + var stringStartRe = /(\r?\n|^) *\* ?/g; + var STRING_ARRAY = []; + function extract(contents) { + const match = contents.match(docblockRe); + return match ? match[0].trimLeft() : ""; + } + function strip(contents) { + const match = contents.match(docblockRe); + return match && match[0] ? contents.substring(match[0].length) : contents; + } + function parse(docblock) { + return parseWithComments(docblock).pragmas; + } + function parseWithComments(docblock) { + const line = (0, _detectNewline().default)(docblock) || _os().EOL; + docblock = docblock.replace(commentStartRe, "").replace(commentEndRe, "").replace(stringStartRe, "$1"); + let prev = ""; + while (prev !== docblock) { + prev = docblock; + docblock = docblock.replace(multilineRe, `${line}$1 $2${line}`); + } + docblock = docblock.replace(ltrimNewlineRe, "").trimRight(); + const result = /* @__PURE__ */ Object.create(null); + const comments = docblock.replace(propertyRe, "").replace(ltrimNewlineRe, "").trimRight(); + let match; + while (match = propertyRe.exec(docblock)) { + const nextPragma = match[2].replace(lineCommentRe, ""); + if (typeof result[match[1]] === "string" || Array.isArray(result[match[1]])) { + result[match[1]] = STRING_ARRAY.concat(result[match[1]], nextPragma); + } else { + result[match[1]] = nextPragma; + } + } + return { + comments, + pragmas: result + }; + } + function print({ + comments = "", + pragmas = {} + }) { + const line = (0, _detectNewline().default)(comments) || _os().EOL; + const head = "/**"; + const start = " *"; + const tail = " */"; + const keys = Object.keys(pragmas); + const printedObject = keys.map((key) => printKeyValues(key, pragmas[key])).reduce((arr, next) => arr.concat(next), []).map((keyValue) => start + " " + keyValue + line).join(""); + if (!comments) { + if (keys.length === 0) { + return ""; + } + if (keys.length === 1 && !Array.isArray(pragmas[keys[0]])) { + const value = pragmas[keys[0]]; + return `${head} ${printKeyValues(keys[0], value)[0]}${tail}`; + } + } + const printedComments = comments.split(line).map((textLine) => `${start} ${textLine}`).join(line) + line; + return head + line + (comments ? printedComments : "") + (comments && keys.length ? start + line : "") + printedObject + tail; + } + function printKeyValues(key, valueOrArray) { + return STRING_ARRAY.concat(valueOrArray).map((value) => `@${key} ${value}`.trim()); + } + } +}); +var require_get_shebang = __commonJS2({ + "src/language-js/utils/get-shebang.js"(exports2, module2) { + "use strict"; + function getShebang(text) { + if (!text.startsWith("#!")) { + return ""; + } + const index = text.indexOf("\n"); + if (index === -1) { + return text; + } + return text.slice(0, index); + } + module2.exports = getShebang; + } +}); +var require_pragma = __commonJS2({ + "src/language-js/pragma.js"(exports2, module2) { + "use strict"; + var { + parseWithComments, + strip, + extract, + print + } = require_build(); + var { + normalizeEndOfLine + } = require_end_of_line(); + var getShebang = require_get_shebang(); + function parseDocBlock(text) { + const shebang = getShebang(text); + if (shebang) { + text = text.slice(shebang.length + 1); + } + const docBlock = extract(text); + const { + pragmas, + comments + } = parseWithComments(docBlock); + return { + shebang, + text, + pragmas, + comments + }; + } + function hasPragma(text) { + const pragmas = Object.keys(parseDocBlock(text).pragmas); + return pragmas.includes("prettier") || pragmas.includes("format"); + } + function insertPragma(originalText) { + const { + shebang, + text, + pragmas, + comments + } = parseDocBlock(originalText); + const strippedText = strip(text); + const docBlock = print({ + pragmas: Object.assign({ + format: "" + }, pragmas), + comments: comments.trimStart() + }); + return (shebang ? `${shebang} +` : "") + normalizeEndOfLine(docBlock) + (strippedText.startsWith("\n") ? "\n" : "\n\n") + strippedText; + } + module2.exports = { + hasPragma, + insertPragma + }; + } +}); +var require_comments2 = __commonJS2({ + "src/language-js/comments.js"(exports2, module2) { + "use strict"; + var { + getLast, + hasNewline, + getNextNonSpaceNonCommentCharacterIndexWithStartIndex, + getNextNonSpaceNonCommentCharacter, + hasNewlineInRange, + addLeadingComment, + addTrailingComment, + addDanglingComment, + getNextNonSpaceNonCommentCharacterIndex, + isNonEmptyArray + } = require_util(); + var { + getFunctionParameters, + isPrettierIgnoreComment, + isJsxNode, + hasFlowShorthandAnnotationComment, + hasFlowAnnotationComment, + hasIgnoreComment, + isCallLikeExpression, + getCallArguments, + isCallExpression, + isMemberExpression, + isObjectProperty, + isLineComment, + getComments, + CommentCheckFlags, + markerForIfWithoutBlockAndSameLineComment + } = require_utils7(); + var { + locStart, + locEnd + } = require_loc(); + var isBlockComment = require_is_block_comment(); + function handleOwnLineComment(context) { + return [handleIgnoreComments, handleLastFunctionArgComments, handleMemberExpressionComments, handleIfStatementComments, handleWhileComments, handleTryStatementComments, handleClassComments, handleForComments, handleUnionTypeComments, handleOnlyComments, handleModuleSpecifiersComments, handleAssignmentPatternComments, handleMethodNameComments, handleLabeledStatementComments, handleBreakAndContinueStatementComments].some((fn) => fn(context)); + } + function handleEndOfLineComment(context) { + return [handleClosureTypeCastComments, handleLastFunctionArgComments, handleConditionalExpressionComments, handleModuleSpecifiersComments, handleIfStatementComments, handleWhileComments, handleTryStatementComments, handleClassComments, handleLabeledStatementComments, handleCallExpressionComments, handlePropertyComments, handleOnlyComments, handleVariableDeclaratorComments, handleBreakAndContinueStatementComments, handleSwitchDefaultCaseComments].some((fn) => fn(context)); + } + function handleRemainingComment(context) { + return [handleIgnoreComments, handleIfStatementComments, handleWhileComments, handleObjectPropertyAssignment, handleCommentInEmptyParens, handleMethodNameComments, handleOnlyComments, handleCommentAfterArrowParams, handleFunctionNameComments, handleTSMappedTypeComments, handleBreakAndContinueStatementComments, handleTSFunctionTrailingComments].some((fn) => fn(context)); + } + function addBlockStatementFirstComment(node, comment) { + const firstNonEmptyNode = (node.body || node.properties).find(({ + type + }) => type !== "EmptyStatement"); + if (firstNonEmptyNode) { + addLeadingComment(firstNonEmptyNode, comment); + } else { + addDanglingComment(node, comment); + } + } + function addBlockOrNotComment(node, comment) { + if (node.type === "BlockStatement") { + addBlockStatementFirstComment(node, comment); + } else { + addLeadingComment(node, comment); + } + } + function handleClosureTypeCastComments({ + comment, + followingNode + }) { + if (followingNode && isTypeCastComment(comment)) { + addLeadingComment(followingNode, comment); + return true; + } + return false; + } + function handleIfStatementComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) !== "IfStatement" || !followingNode) { + return false; + } + const nextCharacter = getNextNonSpaceNonCommentCharacter(text, comment, locEnd); + if (nextCharacter === ")") { + addTrailingComment(precedingNode, comment); + return true; + } + if (precedingNode === enclosingNode.consequent && followingNode === enclosingNode.alternate) { + if (precedingNode.type === "BlockStatement") { + addTrailingComment(precedingNode, comment); + } else { + const isSingleLineComment = comment.type === "SingleLine" || comment.loc.start.line === comment.loc.end.line; + const isSameLineComment = comment.loc.start.line === precedingNode.loc.start.line; + if (isSingleLineComment && isSameLineComment) { + addDanglingComment(precedingNode, comment, markerForIfWithoutBlockAndSameLineComment); + } else { + addDanglingComment(enclosingNode, comment); + } + } + return true; + } + if (followingNode.type === "BlockStatement") { + addBlockStatementFirstComment(followingNode, comment); + return true; + } + if (followingNode.type === "IfStatement") { + addBlockOrNotComment(followingNode.consequent, comment); + return true; + } + if (enclosingNode.consequent === followingNode) { + addLeadingComment(followingNode, comment); + return true; + } + return false; + } + function handleWhileComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) !== "WhileStatement" || !followingNode) { + return false; + } + const nextCharacter = getNextNonSpaceNonCommentCharacter(text, comment, locEnd); + if (nextCharacter === ")") { + addTrailingComment(precedingNode, comment); + return true; + } + if (followingNode.type === "BlockStatement") { + addBlockStatementFirstComment(followingNode, comment); + return true; + } + if (enclosingNode.body === followingNode) { + addLeadingComment(followingNode, comment); + return true; + } + return false; + } + function handleTryStatementComments({ + comment, + precedingNode, + enclosingNode, + followingNode + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) !== "TryStatement" && (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) !== "CatchClause" || !followingNode) { + return false; + } + if (enclosingNode.type === "CatchClause" && precedingNode) { + addTrailingComment(precedingNode, comment); + return true; + } + if (followingNode.type === "BlockStatement") { + addBlockStatementFirstComment(followingNode, comment); + return true; + } + if (followingNode.type === "TryStatement") { + addBlockOrNotComment(followingNode.finalizer, comment); + return true; + } + if (followingNode.type === "CatchClause") { + addBlockOrNotComment(followingNode.body, comment); + return true; + } + return false; + } + function handleMemberExpressionComments({ + comment, + enclosingNode, + followingNode + }) { + if (isMemberExpression(enclosingNode) && (followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) === "Identifier") { + addLeadingComment(enclosingNode, comment); + return true; + } + return false; + } + function handleConditionalExpressionComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text + }) { + const isSameLineAsPrecedingNode = precedingNode && !hasNewlineInRange(text, locEnd(precedingNode), locStart(comment)); + if ((!precedingNode || !isSameLineAsPrecedingNode) && ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ConditionalExpression" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "TSConditionalType") && followingNode) { + addLeadingComment(followingNode, comment); + return true; + } + return false; + } + function handleObjectPropertyAssignment({ + comment, + precedingNode, + enclosingNode + }) { + if (isObjectProperty(enclosingNode) && enclosingNode.shorthand && enclosingNode.key === precedingNode && enclosingNode.value.type === "AssignmentPattern") { + addTrailingComment(enclosingNode.value.left, comment); + return true; + } + return false; + } + var classLikeNodeTypes = /* @__PURE__ */ new Set(["ClassDeclaration", "ClassExpression", "DeclareClass", "DeclareInterface", "InterfaceDeclaration", "TSInterfaceDeclaration"]); + function handleClassComments({ + comment, + precedingNode, + enclosingNode, + followingNode + }) { + if (classLikeNodeTypes.has(enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type)) { + if (isNonEmptyArray(enclosingNode.decorators) && !(followingNode && followingNode.type === "Decorator")) { + addTrailingComment(getLast(enclosingNode.decorators), comment); + return true; + } + if (enclosingNode.body && followingNode === enclosingNode.body) { + addBlockStatementFirstComment(enclosingNode.body, comment); + return true; + } + if (followingNode) { + if (enclosingNode.superClass && followingNode === enclosingNode.superClass && precedingNode && (precedingNode === enclosingNode.id || precedingNode === enclosingNode.typeParameters)) { + addTrailingComment(precedingNode, comment); + return true; + } + for (const prop of ["implements", "extends", "mixins"]) { + if (enclosingNode[prop] && followingNode === enclosingNode[prop][0]) { + if (precedingNode && (precedingNode === enclosingNode.id || precedingNode === enclosingNode.typeParameters || precedingNode === enclosingNode.superClass)) { + addTrailingComment(precedingNode, comment); + } else { + addDanglingComment(enclosingNode, comment, prop); + } + return true; + } + } + } + } + return false; + } + var propertyLikeNodeTypes = /* @__PURE__ */ new Set(["ClassMethod", "ClassProperty", "PropertyDefinition", "TSAbstractPropertyDefinition", "TSAbstractMethodDefinition", "TSDeclareMethod", "MethodDefinition"]); + function handleMethodNameComments({ + comment, + precedingNode, + enclosingNode, + text + }) { + if (enclosingNode && precedingNode && getNextNonSpaceNonCommentCharacter(text, comment, locEnd) === "(" && (enclosingNode.type === "Property" || enclosingNode.type === "TSDeclareMethod" || enclosingNode.type === "TSAbstractMethodDefinition") && precedingNode.type === "Identifier" && enclosingNode.key === precedingNode && getNextNonSpaceNonCommentCharacter(text, precedingNode, locEnd) !== ":") { + addTrailingComment(precedingNode, comment); + return true; + } + if ((precedingNode === null || precedingNode === void 0 ? void 0 : precedingNode.type) === "Decorator" && propertyLikeNodeTypes.has(enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type)) { + addTrailingComment(precedingNode, comment); + return true; + } + return false; + } + var functionLikeNodeTypes = /* @__PURE__ */ new Set(["FunctionDeclaration", "FunctionExpression", "ClassMethod", "MethodDefinition", "ObjectMethod"]); + function handleFunctionNameComments({ + comment, + precedingNode, + enclosingNode, + text + }) { + if (getNextNonSpaceNonCommentCharacter(text, comment, locEnd) !== "(") { + return false; + } + if (precedingNode && functionLikeNodeTypes.has(enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type)) { + addTrailingComment(precedingNode, comment); + return true; + } + return false; + } + function handleCommentAfterArrowParams({ + comment, + enclosingNode, + text + }) { + if (!((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ArrowFunctionExpression")) { + return false; + } + const index = getNextNonSpaceNonCommentCharacterIndex(text, comment, locEnd); + if (index !== false && text.slice(index, index + 2) === "=>") { + addDanglingComment(enclosingNode, comment); + return true; + } + return false; + } + function handleCommentInEmptyParens({ + comment, + enclosingNode, + text + }) { + if (getNextNonSpaceNonCommentCharacter(text, comment, locEnd) !== ")") { + return false; + } + if (enclosingNode && (isRealFunctionLikeNode(enclosingNode) && getFunctionParameters(enclosingNode).length === 0 || isCallLikeExpression(enclosingNode) && getCallArguments(enclosingNode).length === 0)) { + addDanglingComment(enclosingNode, comment); + return true; + } + if (((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "MethodDefinition" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "TSAbstractMethodDefinition") && getFunctionParameters(enclosingNode.value).length === 0) { + addDanglingComment(enclosingNode.value, comment); + return true; + } + return false; + } + function handleLastFunctionArgComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text + }) { + if ((precedingNode === null || precedingNode === void 0 ? void 0 : precedingNode.type) === "FunctionTypeParam" && (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "FunctionTypeAnnotation" && (followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) !== "FunctionTypeParam") { + addTrailingComment(precedingNode, comment); + return true; + } + if (((precedingNode === null || precedingNode === void 0 ? void 0 : precedingNode.type) === "Identifier" || (precedingNode === null || precedingNode === void 0 ? void 0 : precedingNode.type) === "AssignmentPattern") && enclosingNode && isRealFunctionLikeNode(enclosingNode) && getNextNonSpaceNonCommentCharacter(text, comment, locEnd) === ")") { + addTrailingComment(precedingNode, comment); + return true; + } + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "FunctionDeclaration" && (followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) === "BlockStatement") { + const functionParamRightParenIndex = (() => { + const parameters = getFunctionParameters(enclosingNode); + if (parameters.length > 0) { + return getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd(getLast(parameters))); + } + const functionParamLeftParenIndex = getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd(enclosingNode.id)); + return functionParamLeftParenIndex !== false && getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, functionParamLeftParenIndex + 1); + })(); + if (locStart(comment) > functionParamRightParenIndex) { + addBlockStatementFirstComment(followingNode, comment); + return true; + } + } + return false; + } + function handleLabeledStatementComments({ + comment, + enclosingNode + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "LabeledStatement") { + addLeadingComment(enclosingNode, comment); + return true; + } + return false; + } + function handleBreakAndContinueStatementComments({ + comment, + enclosingNode + }) { + if (((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ContinueStatement" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "BreakStatement") && !enclosingNode.label) { + addTrailingComment(enclosingNode, comment); + return true; + } + return false; + } + function handleCallExpressionComments({ + comment, + precedingNode, + enclosingNode + }) { + if (isCallExpression(enclosingNode) && precedingNode && enclosingNode.callee === precedingNode && enclosingNode.arguments.length > 0) { + addLeadingComment(enclosingNode.arguments[0], comment); + return true; + } + return false; + } + function handleUnionTypeComments({ + comment, + precedingNode, + enclosingNode, + followingNode + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "UnionTypeAnnotation" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "TSUnionType") { + if (isPrettierIgnoreComment(comment)) { + followingNode.prettierIgnore = true; + comment.unignore = true; + } + if (precedingNode) { + addTrailingComment(precedingNode, comment); + return true; + } + return false; + } + if (((followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) === "UnionTypeAnnotation" || (followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) === "TSUnionType") && isPrettierIgnoreComment(comment)) { + followingNode.types[0].prettierIgnore = true; + comment.unignore = true; + } + return false; + } + function handlePropertyComments({ + comment, + enclosingNode + }) { + if (isObjectProperty(enclosingNode)) { + addLeadingComment(enclosingNode, comment); + return true; + } + return false; + } + function handleOnlyComments({ + comment, + enclosingNode, + followingNode, + ast, + isLastComment + }) { + if (ast && ast.body && ast.body.length === 0) { + if (isLastComment) { + addDanglingComment(ast, comment); + } else { + addLeadingComment(ast, comment); + } + return true; + } + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "Program" && (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.body.length) === 0 && !isNonEmptyArray(enclosingNode.directives)) { + if (isLastComment) { + addDanglingComment(enclosingNode, comment); + } else { + addLeadingComment(enclosingNode, comment); + } + return true; + } + if ((followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) === "Program" && (followingNode === null || followingNode === void 0 ? void 0 : followingNode.body.length) === 0 && (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ModuleExpression") { + addDanglingComment(followingNode, comment); + return true; + } + return false; + } + function handleForComments({ + comment, + enclosingNode + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ForInStatement" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ForOfStatement") { + addLeadingComment(enclosingNode, comment); + return true; + } + return false; + } + function handleModuleSpecifiersComments({ + comment, + precedingNode, + enclosingNode, + text + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ImportSpecifier" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ExportSpecifier") { + addLeadingComment(enclosingNode, comment); + return true; + } + const isImportDeclaration = (precedingNode === null || precedingNode === void 0 ? void 0 : precedingNode.type) === "ImportSpecifier" && (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ImportDeclaration"; + const isExportDeclaration = (precedingNode === null || precedingNode === void 0 ? void 0 : precedingNode.type) === "ExportSpecifier" && (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "ExportNamedDeclaration"; + if ((isImportDeclaration || isExportDeclaration) && hasNewline(text, locEnd(comment))) { + addTrailingComment(precedingNode, comment); + return true; + } + return false; + } + function handleAssignmentPatternComments({ + comment, + enclosingNode + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "AssignmentPattern") { + addLeadingComment(enclosingNode, comment); + return true; + } + return false; + } + var assignmentLikeNodeTypes = /* @__PURE__ */ new Set(["VariableDeclarator", "AssignmentExpression", "TypeAlias", "TSTypeAliasDeclaration"]); + var complexExprNodeTypes = /* @__PURE__ */ new Set(["ObjectExpression", "ArrayExpression", "TemplateLiteral", "TaggedTemplateExpression", "ObjectTypeAnnotation", "TSTypeLiteral"]); + function handleVariableDeclaratorComments({ + comment, + enclosingNode, + followingNode + }) { + if (assignmentLikeNodeTypes.has(enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) && followingNode && (complexExprNodeTypes.has(followingNode.type) || isBlockComment(comment))) { + addLeadingComment(followingNode, comment); + return true; + } + return false; + } + function handleTSFunctionTrailingComments({ + comment, + enclosingNode, + followingNode, + text + }) { + if (!followingNode && ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "TSMethodSignature" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "TSDeclareFunction" || (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "TSAbstractMethodDefinition") && getNextNonSpaceNonCommentCharacter(text, comment, locEnd) === ";") { + addTrailingComment(enclosingNode, comment); + return true; + } + return false; + } + function handleIgnoreComments({ + comment, + enclosingNode, + followingNode + }) { + if (isPrettierIgnoreComment(comment) && (enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) === "TSMappedType" && (followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) === "TSTypeParameter" && followingNode.constraint) { + enclosingNode.prettierIgnore = true; + comment.unignore = true; + return true; + } + } + function handleTSMappedTypeComments({ + comment, + precedingNode, + enclosingNode, + followingNode + }) { + if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.type) !== "TSMappedType") { + return false; + } + if ((followingNode === null || followingNode === void 0 ? void 0 : followingNode.type) === "TSTypeParameter" && followingNode.name) { + addLeadingComment(followingNode.name, comment); + return true; + } + if ((precedingNode === null || precedingNode === void 0 ? void 0 : precedingNode.type) === "TSTypeParameter" && precedingNode.constraint) { + addTrailingComment(precedingNode.constraint, comment); + return true; + } + return false; + } + function handleSwitchDefaultCaseComments({ + comment, + enclosingNode, + followingNode + }) { + if (!enclosingNode || enclosingNode.type !== "SwitchCase" || enclosingNode.test) { + return false; + } + if (followingNode.type === "BlockStatement" && isLineComment(comment)) { + addBlockStatementFirstComment(followingNode, comment); + } else { + addDanglingComment(enclosingNode, comment); + } + return true; + } + function isRealFunctionLikeNode(node) { + return node.type === "ArrowFunctionExpression" || node.type === "FunctionExpression" || node.type === "FunctionDeclaration" || node.type === "ObjectMethod" || node.type === "ClassMethod" || node.type === "TSDeclareFunction" || node.type === "TSCallSignatureDeclaration" || node.type === "TSConstructSignatureDeclaration" || node.type === "TSMethodSignature" || node.type === "TSConstructorType" || node.type === "TSFunctionType" || node.type === "TSDeclareMethod"; + } + function getCommentChildNodes(node, options) { + if ((options.parser === "typescript" || options.parser === "flow" || options.parser === "acorn" || options.parser === "espree" || options.parser === "meriyah" || options.parser === "__babel_estree") && node.type === "MethodDefinition" && node.value && node.value.type === "FunctionExpression" && getFunctionParameters(node.value).length === 0 && !node.value.returnType && !isNonEmptyArray(node.value.typeParameters) && node.value.body) { + return [...node.decorators || [], node.key, node.value.body]; + } + } + function isTypeCastComment(comment) { + return isBlockComment(comment) && comment.value[0] === "*" && /@type\b/.test(comment.value); + } + function willPrintOwnComments(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + const hasFlowAnnotations = (node2) => hasFlowAnnotationComment(getComments(node2, CommentCheckFlags.Leading)) || hasFlowAnnotationComment(getComments(node2, CommentCheckFlags.Trailing)); + return (node && (isJsxNode(node) || hasFlowShorthandAnnotationComment(node) || isCallExpression(parent) && hasFlowAnnotations(node)) || parent && (parent.type === "JSXSpreadAttribute" || parent.type === "JSXSpreadChild" || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType" || (parent.type === "ClassDeclaration" || parent.type === "ClassExpression") && parent.superClass === node)) && (!hasIgnoreComment(path) || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType"); + } + module2.exports = { + handleOwnLineComment, + handleEndOfLineComment, + handleRemainingComment, + isTypeCastComment, + getCommentChildNodes, + willPrintOwnComments + }; + } +}); +var require_needs_parens = __commonJS2({ + "src/language-js/needs-parens.js"(exports2, module2) { + "use strict"; + var getLast = require_get_last(); + var isNonEmptyArray = require_is_non_empty_array(); + var { + getFunctionParameters, + getLeftSidePathName, + hasFlowShorthandAnnotationComment, + hasNakedLeftSide, + hasNode, + isBitwiseOperator, + startsWithNoLookaheadToken, + shouldFlatten, + getPrecedence, + isCallExpression, + isMemberExpression, + isObjectProperty + } = require_utils7(); + function needsParens(path, options) { + const parent = path.getParentNode(); + if (!parent) { + return false; + } + const name = path.getName(); + const node = path.getNode(); + if (options.__isInHtmlInterpolation && !options.bracketSpacing && endsWithRightBracket(node) && isFollowedByRightBracket(path)) { + return true; + } + if (isStatement(node)) { + return false; + } + if (options.parser !== "flow" && hasFlowShorthandAnnotationComment(path.getValue())) { + return true; + } + if (node.type === "Identifier") { + if (node.extra && node.extra.parenthesized && /^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(node.name)) { + return true; + } + if (name === "left" && node.name === "async" && parent.type === "ForOfStatement" && !parent.await) { + return true; + } + return false; + } + switch (parent.type) { + case "ParenthesizedExpression": + return false; + case "ClassDeclaration": + case "ClassExpression": { + if (name === "superClass" && (node.type === "ArrowFunctionExpression" || node.type === "AssignmentExpression" || node.type === "AwaitExpression" || node.type === "BinaryExpression" || node.type === "ConditionalExpression" || node.type === "LogicalExpression" || node.type === "NewExpression" || node.type === "ObjectExpression" || node.type === "SequenceExpression" || node.type === "TaggedTemplateExpression" || node.type === "UnaryExpression" || node.type === "UpdateExpression" || node.type === "YieldExpression" || node.type === "TSNonNullExpression")) { + return true; + } + break; + } + case "ExportDefaultDeclaration": { + return shouldWrapFunctionForExportDefault(path, options) || node.type === "SequenceExpression"; + } + case "Decorator": { + if (name === "expression") { + let hasCallExpression = false; + let hasMemberExpression = false; + let current = node; + while (current) { + switch (current.type) { + case "MemberExpression": + hasMemberExpression = true; + current = current.object; + break; + case "CallExpression": + if (hasMemberExpression || hasCallExpression) { + return options.parser !== "typescript"; + } + hasCallExpression = true; + current = current.callee; + break; + case "Identifier": + return false; + case "TaggedTemplateExpression": + return options.parser !== "typescript"; + default: + return true; + } + } + return true; + } + break; + } + case "ExpressionStatement": { + if (startsWithNoLookaheadToken(node, true)) { + return true; + } + break; + } + case "ArrowFunctionExpression": { + if (name === "body" && node.type !== "SequenceExpression" && startsWithNoLookaheadToken(node, false)) { + return true; + } + break; + } + } + switch (node.type) { + case "UpdateExpression": + if (parent.type === "UnaryExpression") { + return node.prefix && (node.operator === "++" && parent.operator === "+" || node.operator === "--" && parent.operator === "-"); + } + case "UnaryExpression": + switch (parent.type) { + case "UnaryExpression": + return node.operator === parent.operator && (node.operator === "+" || node.operator === "-"); + case "BindExpression": + return true; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; + case "TaggedTemplateExpression": + return true; + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; + case "BinaryExpression": + return name === "left" && parent.operator === "**"; + case "TSNonNullExpression": + return true; + default: + return false; + } + case "BinaryExpression": { + if (parent.type === "UpdateExpression") { + return true; + } + if (node.operator === "in" && isPathInForStatementInitializer(path)) { + return true; + } + if (node.operator === "|>" && node.extra && node.extra.parenthesized) { + const grandParent = path.getParentNode(1); + if (grandParent.type === "BinaryExpression" && grandParent.operator === "|>") { + return true; + } + } + } + case "TSTypeAssertion": + case "TSAsExpression": + case "LogicalExpression": + switch (parent.type) { + case "TSAsExpression": + return node.type !== "TSAsExpression"; + case "ConditionalExpression": + return node.type === "TSAsExpression"; + case "CallExpression": + case "NewExpression": + case "OptionalCallExpression": + return name === "callee"; + case "ClassExpression": + case "ClassDeclaration": + return name === "superClass"; + case "TSTypeAssertion": + case "TaggedTemplateExpression": + case "UnaryExpression": + case "JSXSpreadAttribute": + case "SpreadElement": + case "SpreadProperty": + case "BindExpression": + case "AwaitExpression": + case "TSNonNullExpression": + case "UpdateExpression": + return true; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; + case "AssignmentExpression": + case "AssignmentPattern": + return name === "left" && (node.type === "TSTypeAssertion" || node.type === "TSAsExpression"); + case "LogicalExpression": + if (node.type === "LogicalExpression") { + return parent.operator !== node.operator; + } + case "BinaryExpression": { + const { + operator, + type + } = node; + if (!operator && type !== "TSTypeAssertion") { + return true; + } + const precedence = getPrecedence(operator); + const parentOperator = parent.operator; + const parentPrecedence = getPrecedence(parentOperator); + if (parentPrecedence > precedence) { + return true; + } + if (name === "right" && parentPrecedence === precedence) { + return true; + } + if (parentPrecedence === precedence && !shouldFlatten(parentOperator, operator)) { + return true; + } + if (parentPrecedence < precedence && operator === "%") { + return parentOperator === "+" || parentOperator === "-"; + } + if (isBitwiseOperator(parentOperator)) { + return true; + } + return false; + } + default: + return false; + } + case "SequenceExpression": + switch (parent.type) { + case "ReturnStatement": + return false; + case "ForStatement": + return false; + case "ExpressionStatement": + return name !== "expression"; + case "ArrowFunctionExpression": + return name !== "body"; + default: + return true; + } + case "YieldExpression": + if (parent.type === "UnaryExpression" || parent.type === "AwaitExpression" || parent.type === "TSAsExpression" || parent.type === "TSNonNullExpression") { + return true; + } + case "AwaitExpression": + switch (parent.type) { + case "TaggedTemplateExpression": + case "UnaryExpression": + case "LogicalExpression": + case "SpreadElement": + case "SpreadProperty": + case "TSAsExpression": + case "TSNonNullExpression": + case "BindExpression": + return true; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; + case "ConditionalExpression": + return name === "test"; + case "BinaryExpression": { + if (!node.argument && parent.operator === "|>") { + return false; + } + return true; + } + default: + return false; + } + case "TSConditionalType": + if (name === "extendsType" && parent.type === "TSConditionalType") { + return true; + } + case "TSFunctionType": + case "TSConstructorType": + if (name === "checkType" && parent.type === "TSConditionalType") { + return true; + } + case "TSUnionType": + case "TSIntersectionType": + if ((parent.type === "TSUnionType" || parent.type === "TSIntersectionType") && parent.types.length > 1 && (!node.types || node.types.length > 1)) { + return true; + } + case "TSInferType": + if (node.type === "TSInferType" && parent.type === "TSRestType") { + return false; + } + case "TSTypeOperator": + return parent.type === "TSArrayType" || parent.type === "TSOptionalType" || parent.type === "TSRestType" || name === "objectType" && parent.type === "TSIndexedAccessType" || parent.type === "TSTypeOperator" || parent.type === "TSTypeAnnotation" && path.getParentNode(1).type.startsWith("TSJSDoc"); + case "ArrayTypeAnnotation": + return parent.type === "NullableTypeAnnotation"; + case "IntersectionTypeAnnotation": + case "UnionTypeAnnotation": + return parent.type === "ArrayTypeAnnotation" || parent.type === "NullableTypeAnnotation" || parent.type === "IntersectionTypeAnnotation" || parent.type === "UnionTypeAnnotation" || name === "objectType" && (parent.type === "IndexedAccessType" || parent.type === "OptionalIndexedAccessType"); + case "NullableTypeAnnotation": + return parent.type === "ArrayTypeAnnotation" || name === "objectType" && (parent.type === "IndexedAccessType" || parent.type === "OptionalIndexedAccessType"); + case "FunctionTypeAnnotation": { + const ancestor = parent.type === "NullableTypeAnnotation" ? path.getParentNode(1) : parent; + return ancestor.type === "UnionTypeAnnotation" || ancestor.type === "IntersectionTypeAnnotation" || ancestor.type === "ArrayTypeAnnotation" || name === "objectType" && (ancestor.type === "IndexedAccessType" || ancestor.type === "OptionalIndexedAccessType") || ancestor.type === "NullableTypeAnnotation" || parent.type === "FunctionTypeParam" && parent.name === null && getFunctionParameters(node).some((param) => param.typeAnnotation && param.typeAnnotation.type === "NullableTypeAnnotation"); + } + case "OptionalIndexedAccessType": + return name === "objectType" && parent.type === "IndexedAccessType"; + case "TypeofTypeAnnotation": + return name === "objectType" && (parent.type === "IndexedAccessType" || parent.type === "OptionalIndexedAccessType"); + case "StringLiteral": + case "NumericLiteral": + case "Literal": + if (typeof node.value === "string" && parent.type === "ExpressionStatement" && !parent.directive) { + const grandParent = path.getParentNode(1); + return grandParent.type === "Program" || grandParent.type === "BlockStatement"; + } + return name === "object" && parent.type === "MemberExpression" && typeof node.value === "number"; + case "AssignmentExpression": { + const grandParent = path.getParentNode(1); + if (name === "body" && parent.type === "ArrowFunctionExpression") { + return true; + } + if (name === "key" && (parent.type === "ClassProperty" || parent.type === "PropertyDefinition") && parent.computed) { + return false; + } + if ((name === "init" || name === "update") && parent.type === "ForStatement") { + return false; + } + if (parent.type === "ExpressionStatement") { + return node.left.type === "ObjectPattern"; + } + if (name === "key" && parent.type === "TSPropertySignature") { + return false; + } + if (parent.type === "AssignmentExpression") { + return false; + } + if (parent.type === "SequenceExpression" && grandParent && grandParent.type === "ForStatement" && (grandParent.init === parent || grandParent.update === parent)) { + return false; + } + if (name === "value" && parent.type === "Property" && grandParent && grandParent.type === "ObjectPattern" && grandParent.properties.includes(parent)) { + return false; + } + if (parent.type === "NGChainedExpression") { + return false; + } + return true; + } + case "ConditionalExpression": + switch (parent.type) { + case "TaggedTemplateExpression": + case "UnaryExpression": + case "SpreadElement": + case "SpreadProperty": + case "BinaryExpression": + case "LogicalExpression": + case "NGPipeExpression": + case "ExportDefaultDeclaration": + case "AwaitExpression": + case "JSXSpreadAttribute": + case "TSTypeAssertion": + case "TypeCastExpression": + case "TSAsExpression": + case "TSNonNullExpression": + return true; + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; + case "ConditionalExpression": + return name === "test"; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; + default: + return false; + } + case "FunctionExpression": + switch (parent.type) { + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; + case "TaggedTemplateExpression": + return true; + default: + return false; + } + case "ArrowFunctionExpression": + switch (parent.type) { + case "BinaryExpression": + return parent.operator !== "|>" || node.extra && node.extra.parenthesized; + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; + case "TSAsExpression": + case "TSNonNullExpression": + case "BindExpression": + case "TaggedTemplateExpression": + case "UnaryExpression": + case "LogicalExpression": + case "AwaitExpression": + case "TSTypeAssertion": + return true; + case "ConditionalExpression": + return name === "test"; + default: + return false; + } + case "ClassExpression": + if (isNonEmptyArray(node.decorators)) { + return true; + } + switch (parent.type) { + case "NewExpression": + return name === "callee"; + default: + return false; + } + case "OptionalMemberExpression": + case "OptionalCallExpression": { + const parentParent = path.getParentNode(1); + if (name === "object" && parent.type === "MemberExpression" || name === "callee" && (parent.type === "CallExpression" || parent.type === "NewExpression") || parent.type === "TSNonNullExpression" && parentParent.type === "MemberExpression" && parentParent.object === parent) { + return true; + } + } + case "CallExpression": + case "MemberExpression": + case "TaggedTemplateExpression": + case "TSNonNullExpression": + if (name === "callee" && (parent.type === "BindExpression" || parent.type === "NewExpression")) { + let object = node; + while (object) { + switch (object.type) { + case "CallExpression": + case "OptionalCallExpression": + return true; + case "MemberExpression": + case "OptionalMemberExpression": + case "BindExpression": + object = object.object; + break; + case "TaggedTemplateExpression": + object = object.tag; + break; + case "TSNonNullExpression": + object = object.expression; + break; + default: + return false; + } + } + } + return false; + case "BindExpression": + return name === "callee" && (parent.type === "BindExpression" || parent.type === "NewExpression") || name === "object" && isMemberExpression(parent); + case "NGPipeExpression": + if (parent.type === "NGRoot" || parent.type === "NGMicrosyntaxExpression" || parent.type === "ObjectProperty" && !(node.extra && node.extra.parenthesized) || parent.type === "ArrayExpression" || isCallExpression(parent) && parent.arguments[name] === node || name === "right" && parent.type === "NGPipeExpression" || name === "property" && parent.type === "MemberExpression" || parent.type === "AssignmentExpression") { + return false; + } + return true; + case "JSXFragment": + case "JSXElement": + return name === "callee" || name === "left" && parent.type === "BinaryExpression" && parent.operator === "<" || parent.type !== "ArrayExpression" && parent.type !== "ArrowFunctionExpression" && parent.type !== "AssignmentExpression" && parent.type !== "AssignmentPattern" && parent.type !== "BinaryExpression" && parent.type !== "NewExpression" && parent.type !== "ConditionalExpression" && parent.type !== "ExpressionStatement" && parent.type !== "JsExpressionRoot" && parent.type !== "JSXAttribute" && parent.type !== "JSXElement" && parent.type !== "JSXExpressionContainer" && parent.type !== "JSXFragment" && parent.type !== "LogicalExpression" && !isCallExpression(parent) && !isObjectProperty(parent) && parent.type !== "ReturnStatement" && parent.type !== "ThrowStatement" && parent.type !== "TypeCastExpression" && parent.type !== "VariableDeclarator" && parent.type !== "YieldExpression"; + case "TypeAnnotation": + return name === "returnType" && parent.type === "ArrowFunctionExpression" && includesFunctionTypeInObjectType(node); + } + return false; + } + function isStatement(node) { + return node.type === "BlockStatement" || node.type === "BreakStatement" || node.type === "ClassBody" || node.type === "ClassDeclaration" || node.type === "ClassMethod" || node.type === "ClassProperty" || node.type === "PropertyDefinition" || node.type === "ClassPrivateProperty" || node.type === "ContinueStatement" || node.type === "DebuggerStatement" || node.type === "DeclareClass" || node.type === "DeclareExportAllDeclaration" || node.type === "DeclareExportDeclaration" || node.type === "DeclareFunction" || node.type === "DeclareInterface" || node.type === "DeclareModule" || node.type === "DeclareModuleExports" || node.type === "DeclareVariable" || node.type === "DoWhileStatement" || node.type === "EnumDeclaration" || node.type === "ExportAllDeclaration" || node.type === "ExportDefaultDeclaration" || node.type === "ExportNamedDeclaration" || node.type === "ExpressionStatement" || node.type === "ForInStatement" || node.type === "ForOfStatement" || node.type === "ForStatement" || node.type === "FunctionDeclaration" || node.type === "IfStatement" || node.type === "ImportDeclaration" || node.type === "InterfaceDeclaration" || node.type === "LabeledStatement" || node.type === "MethodDefinition" || node.type === "ReturnStatement" || node.type === "SwitchStatement" || node.type === "ThrowStatement" || node.type === "TryStatement" || node.type === "TSDeclareFunction" || node.type === "TSEnumDeclaration" || node.type === "TSImportEqualsDeclaration" || node.type === "TSInterfaceDeclaration" || node.type === "TSModuleDeclaration" || node.type === "TSNamespaceExportDeclaration" || node.type === "TypeAlias" || node.type === "VariableDeclaration" || node.type === "WhileStatement" || node.type === "WithStatement"; + } + function isPathInForStatementInitializer(path) { + let i = 0; + let node = path.getValue(); + while (node) { + const parent = path.getParentNode(i++); + if (parent && parent.type === "ForStatement" && parent.init === node) { + return true; + } + node = parent; + } + return false; + } + function includesFunctionTypeInObjectType(node) { + return hasNode(node, (n1) => n1.type === "ObjectTypeAnnotation" && hasNode(n1, (n2) => n2.type === "FunctionTypeAnnotation" || void 0) || void 0); + } + function endsWithRightBracket(node) { + switch (node.type) { + case "ObjectExpression": + return true; + default: + return false; + } + } + function isFollowedByRightBracket(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + const name = path.getName(); + switch (parent.type) { + case "NGPipeExpression": + if (typeof name === "number" && parent.arguments[name] === node && parent.arguments.length - 1 === name) { + return path.callParent(isFollowedByRightBracket); + } + break; + case "ObjectProperty": + if (name === "value") { + const parentParent = path.getParentNode(1); + return getLast(parentParent.properties) === parent; + } + break; + case "BinaryExpression": + case "LogicalExpression": + if (name === "right") { + return path.callParent(isFollowedByRightBracket); + } + break; + case "ConditionalExpression": + if (name === "alternate") { + return path.callParent(isFollowedByRightBracket); + } + break; + case "UnaryExpression": + if (parent.prefix) { + return path.callParent(isFollowedByRightBracket); + } + break; + } + return false; + } + function shouldWrapFunctionForExportDefault(path, options) { + const node = path.getValue(); + const parent = path.getParentNode(); + if (node.type === "FunctionExpression" || node.type === "ClassExpression") { + return parent.type === "ExportDefaultDeclaration" || !needsParens(path, options); + } + if (!hasNakedLeftSide(node) || parent.type !== "ExportDefaultDeclaration" && needsParens(path, options)) { + return false; + } + return path.call((childPath) => shouldWrapFunctionForExportDefault(childPath, options), ...getLeftSidePathName(path, node)); + } + module2.exports = needsParens; + } +}); +var require_print_preprocess = __commonJS2({ + "src/language-js/print-preprocess.js"(exports2, module2) { + "use strict"; + function preprocess(ast, options) { + switch (options.parser) { + case "json": + case "json5": + case "json-stringify": + case "__js_expression": + case "__vue_expression": + case "__vue_ts_expression": + return Object.assign(Object.assign({}, ast), {}, { + type: options.parser.startsWith("__") ? "JsExpressionRoot" : "JsonRoot", + node: ast, + comments: [], + rootMarker: options.rootMarker + }); + default: + return ast; + } + } + module2.exports = preprocess; + } +}); +var require_html_binding = __commonJS2({ + "src/language-js/print/html-binding.js"(exports2, module2) { + "use strict"; + var { + builders: { + join, + line, + group, + softline, + indent + } + } = require("./doc.js"); + function printHtmlBinding(path, options, print) { + const node = path.getValue(); + if (options.__onHtmlBindingRoot && path.getName() === null) { + options.__onHtmlBindingRoot(node, options); + } + if (node.type !== "File") { + return; + } + if (options.__isVueForBindingLeft) { + return path.call((functionDeclarationPath) => { + const printed = join([",", line], functionDeclarationPath.map(print, "params")); + const { + params + } = functionDeclarationPath.getValue(); + if (params.length === 1) { + return printed; + } + return ["(", indent([softline, group(printed)]), softline, ")"]; + }, "program", "body", 0); + } + if (options.__isVueBindings) { + return path.call((functionDeclarationPath) => join([",", line], functionDeclarationPath.map(print, "params")), "program", "body", 0); + } + } + function isVueEventBindingExpression(node) { + switch (node.type) { + case "MemberExpression": + switch (node.property.type) { + case "Identifier": + case "NumericLiteral": + case "StringLiteral": + return isVueEventBindingExpression(node.object); + } + return false; + case "Identifier": + return true; + default: + return false; + } + } + module2.exports = { + isVueEventBindingExpression, + printHtmlBinding + }; + } +}); +var require_binaryish = __commonJS2({ + "src/language-js/print/binaryish.js"(exports2, module2) { + "use strict"; + var { + printComments + } = require_comments(); + var { + getLast + } = require_util(); + var { + builders: { + join, + line, + softline, + group, + indent, + align, + ifBreak, + indentIfBreak + }, + utils: { + cleanDoc, + getDocParts, + isConcat + } + } = require("./doc.js"); + var { + hasLeadingOwnLineComment, + isBinaryish, + isJsxNode, + shouldFlatten, + hasComment, + CommentCheckFlags, + isCallExpression, + isMemberExpression, + isObjectProperty, + isEnabledHackPipeline + } = require_utils7(); + var uid = 0; + function printBinaryishExpression(path, options, print) { + const node = path.getValue(); + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); + const isInsideParenthesis = node !== parent.body && (parent.type === "IfStatement" || parent.type === "WhileStatement" || parent.type === "SwitchStatement" || parent.type === "DoWhileStatement"); + const isHackPipeline = isEnabledHackPipeline(options) && node.operator === "|>"; + const parts = printBinaryishExpressions(path, print, options, false, isInsideParenthesis); + if (isInsideParenthesis) { + return parts; + } + if (isHackPipeline) { + return group(parts); + } + if (isCallExpression(parent) && parent.callee === node || parent.type === "UnaryExpression" || isMemberExpression(parent) && !parent.computed) { + return group([indent([softline, ...parts]), softline]); + } + const shouldNotIndent = parent.type === "ReturnStatement" || parent.type === "ThrowStatement" || parent.type === "JSXExpressionContainer" && parentParent.type === "JSXAttribute" || node.operator !== "|" && parent.type === "JsExpressionRoot" || node.type !== "NGPipeExpression" && (parent.type === "NGRoot" && options.parser === "__ng_binding" || parent.type === "NGMicrosyntaxExpression" && parentParent.type === "NGMicrosyntax" && parentParent.body.length === 1) || node === parent.body && parent.type === "ArrowFunctionExpression" || node !== parent.body && parent.type === "ForStatement" || parent.type === "ConditionalExpression" && parentParent.type !== "ReturnStatement" && parentParent.type !== "ThrowStatement" && !isCallExpression(parentParent) || parent.type === "TemplateLiteral"; + const shouldIndentIfInlining = parent.type === "AssignmentExpression" || parent.type === "VariableDeclarator" || parent.type === "ClassProperty" || parent.type === "PropertyDefinition" || parent.type === "TSAbstractPropertyDefinition" || parent.type === "ClassPrivateProperty" || isObjectProperty(parent); + const samePrecedenceSubExpression = isBinaryish(node.left) && shouldFlatten(node.operator, node.left.operator); + if (shouldNotIndent || shouldInlineLogicalExpression(node) && !samePrecedenceSubExpression || !shouldInlineLogicalExpression(node) && shouldIndentIfInlining) { + return group(parts); + } + if (parts.length === 0) { + return ""; + } + const hasJsx = isJsxNode(node.right); + const firstGroupIndex = parts.findIndex((part) => typeof part !== "string" && !Array.isArray(part) && part.type === "group"); + const headParts = parts.slice(0, firstGroupIndex === -1 ? 1 : firstGroupIndex + 1); + const rest = parts.slice(headParts.length, hasJsx ? -1 : void 0); + const groupId = Symbol("logicalChain-" + ++uid); + const chain = group([...headParts, indent(rest)], { + id: groupId + }); + if (!hasJsx) { + return chain; + } + const jsxPart = getLast(parts); + return group([chain, indentIfBreak(jsxPart, { + groupId + })]); + } + function printBinaryishExpressions(path, print, options, isNested, isInsideParenthesis) { + const node = path.getValue(); + if (!isBinaryish(node)) { + return [group(print())]; + } + let parts = []; + if (shouldFlatten(node.operator, node.left.operator)) { + parts = path.call((left) => printBinaryishExpressions(left, print, options, true, isInsideParenthesis), "left"); + } else { + parts.push(group(print("left"))); + } + const shouldInline = shouldInlineLogicalExpression(node); + const lineBeforeOperator = (node.operator === "|>" || node.type === "NGPipeExpression" || node.operator === "|" && options.parser === "__vue_expression") && !hasLeadingOwnLineComment(options.originalText, node.right); + const operator = node.type === "NGPipeExpression" ? "|" : node.operator; + const rightSuffix = node.type === "NGPipeExpression" && node.arguments.length > 0 ? group(indent([softline, ": ", join([softline, ":", ifBreak(" ")], path.map(print, "arguments").map((arg) => align(2, group(arg))))])) : ""; + let right; + if (shouldInline) { + right = [operator, " ", print("right"), rightSuffix]; + } else { + const isHackPipeline = isEnabledHackPipeline(options) && operator === "|>"; + const rightContent = isHackPipeline ? path.call((left) => printBinaryishExpressions(left, print, options, true, isInsideParenthesis), "right") : print("right"); + right = [lineBeforeOperator ? line : "", operator, lineBeforeOperator ? " " : line, rightContent, rightSuffix]; + } + const parent = path.getParentNode(); + const shouldBreak = hasComment(node.left, CommentCheckFlags.Trailing | CommentCheckFlags.Line); + const shouldGroup = shouldBreak || !(isInsideParenthesis && node.type === "LogicalExpression") && parent.type !== node.type && node.left.type !== node.type && node.right.type !== node.type; + parts.push(lineBeforeOperator ? "" : " ", shouldGroup ? group(right, { + shouldBreak + }) : right); + if (isNested && hasComment(node)) { + const printed = cleanDoc(printComments(path, parts, options)); + if (isConcat(printed) || printed.type === "fill") { + return getDocParts(printed); + } + return [printed]; + } + return parts; + } + function shouldInlineLogicalExpression(node) { + if (node.type !== "LogicalExpression") { + return false; + } + if (node.right.type === "ObjectExpression" && node.right.properties.length > 0) { + return true; + } + if (node.right.type === "ArrayExpression" && node.right.elements.length > 0) { + return true; + } + if (isJsxNode(node.right)) { + return true; + } + return false; + } + module2.exports = { + printBinaryishExpression, + shouldInlineLogicalExpression + }; + } +}); +var require_angular = __commonJS2({ + "src/language-js/print/angular.js"(exports2, module2) { + "use strict"; + var { + builders: { + join, + line, + group + } + } = require("./doc.js"); + var { + hasNode, + hasComment, + getComments + } = require_utils7(); + var { + printBinaryishExpression + } = require_binaryish(); + function printAngular(path, options, print) { + const node = path.getValue(); + if (!node.type.startsWith("NG")) { + return; + } + switch (node.type) { + case "NGRoot": + return [print("node"), !hasComment(node.node) ? "" : " //" + getComments(node.node)[0].value.trimEnd()]; + case "NGPipeExpression": + return printBinaryishExpression(path, options, print); + case "NGChainedExpression": + return group(join([";", line], path.map((childPath) => hasNgSideEffect(childPath) ? print() : ["(", print(), ")"], "expressions"))); + case "NGEmptyExpression": + return ""; + case "NGQuotedExpression": + return [node.prefix, ": ", node.value.trim()]; + case "NGMicrosyntax": + return path.map((childPath, index) => [index === 0 ? "" : isNgForOf(childPath.getValue(), index, node) ? " " : [";", line], print()], "body"); + case "NGMicrosyntaxKey": + return /^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/i.test(node.name) ? node.name : JSON.stringify(node.name); + case "NGMicrosyntaxExpression": + return [print("expression"), node.alias === null ? "" : [" as ", print("alias")]]; + case "NGMicrosyntaxKeyedExpression": { + const index = path.getName(); + const parentNode = path.getParentNode(); + const shouldNotPrintColon = isNgForOf(node, index, parentNode) || (index === 1 && (node.key.name === "then" || node.key.name === "else") || index === 2 && node.key.name === "else" && parentNode.body[index - 1].type === "NGMicrosyntaxKeyedExpression" && parentNode.body[index - 1].key.name === "then") && parentNode.body[0].type === "NGMicrosyntaxExpression"; + return [print("key"), shouldNotPrintColon ? " " : ": ", print("expression")]; + } + case "NGMicrosyntaxLet": + return ["let ", print("key"), node.value === null ? "" : [" = ", print("value")]]; + case "NGMicrosyntaxAs": + return [print("key"), " as ", print("alias")]; + default: + throw new Error(`Unknown Angular node type: ${JSON.stringify(node.type)}.`); + } + } + function isNgForOf(node, index, parentNode) { + return node.type === "NGMicrosyntaxKeyedExpression" && node.key.name === "of" && index === 1 && parentNode.body[0].type === "NGMicrosyntaxLet" && parentNode.body[0].value === null; + } + function hasNgSideEffect(path) { + return hasNode(path.getValue(), (node) => { + switch (node.type) { + case void 0: + return false; + case "CallExpression": + case "OptionalCallExpression": + case "AssignmentExpression": + return true; + } + }); + } + module2.exports = { + printAngular + }; + } +}); +var require_jsx = __commonJS2({ + "src/language-js/print/jsx.js"(exports2, module2) { + "use strict"; + var { + printComments, + printDanglingComments + } = require_comments(); + var { + builders: { + line, + hardline, + softline, + group, + indent, + conditionalGroup, + fill, + ifBreak, + lineSuffixBoundary, + join + }, + utils: { + willBreak + } + } = require("./doc.js"); + var { + getLast, + getPreferredQuote + } = require_util(); + var { + isJsxNode, + rawText, + isLiteral, + isCallExpression, + isStringLiteral, + isBinaryish, + hasComment, + CommentCheckFlags, + hasNodeIgnoreComment + } = require_utils7(); + var pathNeedsParens = require_needs_parens(); + var { + willPrintOwnComments + } = require_comments2(); + var isEmptyStringOrAnyLine = (doc2) => doc2 === "" || doc2 === line || doc2 === hardline || doc2 === softline; + function printJsxElementInternal(path, options, print) { + const node = path.getValue(); + if (node.type === "JSXElement" && isEmptyJsxElement(node)) { + return [print("openingElement"), print("closingElement")]; + } + const openingLines = node.type === "JSXElement" ? print("openingElement") : print("openingFragment"); + const closingLines = node.type === "JSXElement" ? print("closingElement") : print("closingFragment"); + if (node.children.length === 1 && node.children[0].type === "JSXExpressionContainer" && (node.children[0].expression.type === "TemplateLiteral" || node.children[0].expression.type === "TaggedTemplateExpression")) { + return [openingLines, ...path.map(print, "children"), closingLines]; + } + node.children = node.children.map((child) => { + if (isJsxWhitespaceExpression(child)) { + return { + type: "JSXText", + value: " ", + raw: " " + }; + } + return child; + }); + const containsTag = node.children.some(isJsxNode); + const containsMultipleExpressions = node.children.filter((child) => child.type === "JSXExpressionContainer").length > 1; + const containsMultipleAttributes = node.type === "JSXElement" && node.openingElement.attributes.length > 1; + let forcedBreak = willBreak(openingLines) || containsTag || containsMultipleAttributes || containsMultipleExpressions; + const isMdxBlock = path.getParentNode().rootMarker === "mdx"; + const rawJsxWhitespace = options.singleQuote ? "{' '}" : '{" "}'; + const jsxWhitespace = isMdxBlock ? " " : ifBreak([rawJsxWhitespace, softline], " "); + const isFacebookTranslationTag = node.openingElement && node.openingElement.name && node.openingElement.name.name === "fbt"; + const children = printJsxChildren(path, options, print, jsxWhitespace, isFacebookTranslationTag); + const containsText = node.children.some((child) => isMeaningfulJsxText(child)); + for (let i = children.length - 2; i >= 0; i--) { + const isPairOfEmptyStrings = children[i] === "" && children[i + 1] === ""; + const isPairOfHardlines = children[i] === hardline && children[i + 1] === "" && children[i + 2] === hardline; + const isLineFollowedByJsxWhitespace = (children[i] === softline || children[i] === hardline) && children[i + 1] === "" && children[i + 2] === jsxWhitespace; + const isJsxWhitespaceFollowedByLine = children[i] === jsxWhitespace && children[i + 1] === "" && (children[i + 2] === softline || children[i + 2] === hardline); + const isDoubleJsxWhitespace = children[i] === jsxWhitespace && children[i + 1] === "" && children[i + 2] === jsxWhitespace; + const isPairOfHardOrSoftLines = children[i] === softline && children[i + 1] === "" && children[i + 2] === hardline || children[i] === hardline && children[i + 1] === "" && children[i + 2] === softline; + if (isPairOfHardlines && containsText || isPairOfEmptyStrings || isLineFollowedByJsxWhitespace || isDoubleJsxWhitespace || isPairOfHardOrSoftLines) { + children.splice(i, 2); + } else if (isJsxWhitespaceFollowedByLine) { + children.splice(i + 1, 2); + } + } + while (children.length > 0 && isEmptyStringOrAnyLine(getLast(children))) { + children.pop(); + } + while (children.length > 1 && isEmptyStringOrAnyLine(children[0]) && isEmptyStringOrAnyLine(children[1])) { + children.shift(); + children.shift(); + } + const multilineChildren = []; + for (const [i, child] of children.entries()) { + if (child === jsxWhitespace) { + if (i === 1 && children[i - 1] === "") { + if (children.length === 2) { + multilineChildren.push(rawJsxWhitespace); + continue; + } + multilineChildren.push([rawJsxWhitespace, hardline]); + continue; + } else if (i === children.length - 1) { + multilineChildren.push(rawJsxWhitespace); + continue; + } else if (children[i - 1] === "" && children[i - 2] === hardline) { + multilineChildren.push(rawJsxWhitespace); + continue; + } + } + multilineChildren.push(child); + if (willBreak(child)) { + forcedBreak = true; + } + } + const content = containsText ? fill(multilineChildren) : group(multilineChildren, { + shouldBreak: true + }); + if (isMdxBlock) { + return content; + } + const multiLineElem = group([openingLines, indent([hardline, content]), hardline, closingLines]); + if (forcedBreak) { + return multiLineElem; + } + return conditionalGroup([group([openingLines, ...children, closingLines]), multiLineElem]); + } + function printJsxChildren(path, options, print, jsxWhitespace, isFacebookTranslationTag) { + const parts = []; + path.each((childPath, i, children) => { + const child = childPath.getValue(); + if (isLiteral(child)) { + const text = rawText(child); + if (isMeaningfulJsxText(child)) { + const words = text.split(matchJsxWhitespaceRegex); + if (words[0] === "") { + parts.push(""); + words.shift(); + if (/\n/.test(words[0])) { + const next = children[i + 1]; + parts.push(separatorWithWhitespace(isFacebookTranslationTag, words[1], child, next)); + } else { + parts.push(jsxWhitespace); + } + words.shift(); + } + let endWhitespace; + if (getLast(words) === "") { + words.pop(); + endWhitespace = words.pop(); + } + if (words.length === 0) { + return; + } + for (const [i2, word] of words.entries()) { + if (i2 % 2 === 1) { + parts.push(line); + } else { + parts.push(word); + } + } + if (endWhitespace !== void 0) { + if (/\n/.test(endWhitespace)) { + const next = children[i + 1]; + parts.push(separatorWithWhitespace(isFacebookTranslationTag, getLast(parts), child, next)); + } else { + parts.push(jsxWhitespace); + } + } else { + const next = children[i + 1]; + parts.push(separatorNoWhitespace(isFacebookTranslationTag, getLast(parts), child, next)); + } + } else if (/\n/.test(text)) { + if (text.match(/\n/g).length > 1) { + parts.push("", hardline); + } + } else { + parts.push("", jsxWhitespace); + } + } else { + const printedChild = print(); + parts.push(printedChild); + const next = children[i + 1]; + const directlyFollowedByMeaningfulText = next && isMeaningfulJsxText(next); + if (directlyFollowedByMeaningfulText) { + const firstWord = trimJsxWhitespace(rawText(next)).split(matchJsxWhitespaceRegex)[0]; + parts.push(separatorNoWhitespace(isFacebookTranslationTag, firstWord, child, next)); + } else { + parts.push(hardline); + } + } + }, "children"); + return parts; + } + function separatorNoWhitespace(isFacebookTranslationTag, child, childNode, nextNode) { + if (isFacebookTranslationTag) { + return ""; + } + if (childNode.type === "JSXElement" && !childNode.closingElement || nextNode && nextNode.type === "JSXElement" && !nextNode.closingElement) { + return child.length === 1 ? softline : hardline; + } + return softline; + } + function separatorWithWhitespace(isFacebookTranslationTag, child, childNode, nextNode) { + if (isFacebookTranslationTag) { + return hardline; + } + if (child.length === 1) { + return childNode.type === "JSXElement" && !childNode.closingElement || nextNode && nextNode.type === "JSXElement" && !nextNode.closingElement ? hardline : softline; + } + return hardline; + } + function maybeWrapJsxElementInParens(path, elem, options) { + const parent = path.getParentNode(); + if (!parent) { + return elem; + } + const NO_WRAP_PARENTS = { + ArrayExpression: true, + JSXAttribute: true, + JSXElement: true, + JSXExpressionContainer: true, + JSXFragment: true, + ExpressionStatement: true, + CallExpression: true, + OptionalCallExpression: true, + ConditionalExpression: true, + JsExpressionRoot: true + }; + if (NO_WRAP_PARENTS[parent.type]) { + return elem; + } + const shouldBreak = path.match(void 0, (node) => node.type === "ArrowFunctionExpression", isCallExpression, (node) => node.type === "JSXExpressionContainer"); + const needsParens = pathNeedsParens(path, options); + return group([needsParens ? "" : ifBreak("("), indent([softline, elem]), softline, needsParens ? "" : ifBreak(")")], { + shouldBreak + }); + } + function printJsxAttribute(path, options, print) { + const node = path.getValue(); + const parts = []; + parts.push(print("name")); + if (node.value) { + let res; + if (isStringLiteral(node.value)) { + const raw = rawText(node.value); + let final = raw.slice(1, -1).replace(/'/g, "'").replace(/"/g, '"'); + const { + escaped, + quote, + regex + } = getPreferredQuote(final, options.jsxSingleQuote ? "'" : '"'); + final = final.replace(regex, escaped); + res = [quote, final, quote]; + } else { + res = print("value"); + } + parts.push("=", res); + } + return parts; + } + function printJsxExpressionContainer(path, options, print) { + const node = path.getValue(); + const shouldInline = (node2, parent) => node2.type === "JSXEmptyExpression" || !hasComment(node2) && (node2.type === "ArrayExpression" || node2.type === "ObjectExpression" || node2.type === "ArrowFunctionExpression" || node2.type === "AwaitExpression" && (shouldInline(node2.argument, node2) || node2.argument.type === "JSXElement") || isCallExpression(node2) || node2.type === "FunctionExpression" || node2.type === "TemplateLiteral" || node2.type === "TaggedTemplateExpression" || node2.type === "DoExpression" || isJsxNode(parent) && (node2.type === "ConditionalExpression" || isBinaryish(node2))); + if (shouldInline(node.expression, path.getParentNode(0))) { + return group(["{", print("expression"), lineSuffixBoundary, "}"]); + } + return group(["{", indent([softline, print("expression")]), softline, lineSuffixBoundary, "}"]); + } + function printJsxOpeningElement(path, options, print) { + const node = path.getValue(); + const nameHasComments = node.name && hasComment(node.name) || node.typeParameters && hasComment(node.typeParameters); + if (node.selfClosing && node.attributes.length === 0 && !nameHasComments) { + return ["<", print("name"), print("typeParameters"), " />"]; + } + if (node.attributes && node.attributes.length === 1 && node.attributes[0].value && isStringLiteral(node.attributes[0].value) && !node.attributes[0].value.value.includes("\n") && !nameHasComments && !hasComment(node.attributes[0])) { + return group(["<", print("name"), print("typeParameters"), " ", ...path.map(print, "attributes"), node.selfClosing ? " />" : ">"]); + } + const lastAttrHasTrailingComments = node.attributes.length > 0 && hasComment(getLast(node.attributes), CommentCheckFlags.Trailing); + const bracketSameLine = node.attributes.length === 0 && !nameHasComments || (options.bracketSameLine || options.jsxBracketSameLine) && (!nameHasComments || node.attributes.length > 0) && !lastAttrHasTrailingComments; + const shouldBreak = node.attributes && node.attributes.some((attr) => attr.value && isStringLiteral(attr.value) && attr.value.value.includes("\n")); + const attributeLine = options.singleAttributePerLine && node.attributes.length > 1 ? hardline : line; + return group(["<", print("name"), print("typeParameters"), indent(path.map(() => [attributeLine, print()], "attributes")), node.selfClosing ? line : bracketSameLine ? ">" : softline, node.selfClosing ? "/>" : bracketSameLine ? "" : ">"], { + shouldBreak + }); + } + function printJsxClosingElement(path, options, print) { + const node = path.getValue(); + const parts = []; + parts.push(""); + return parts; + } + function printJsxOpeningClosingFragment(path, options) { + const node = path.getValue(); + const nodeHasComment = hasComment(node); + const hasOwnLineComment = hasComment(node, CommentCheckFlags.Line); + const isOpeningFragment = node.type === "JSXOpeningFragment"; + return [isOpeningFragment ? "<" : ""]; + } + function printJsxElement(path, options, print) { + const elem = printComments(path, printJsxElementInternal(path, options, print), options); + return maybeWrapJsxElementInParens(path, elem, options); + } + function printJsxEmptyExpression(path, options) { + const node = path.getValue(); + const requiresHardline = hasComment(node, CommentCheckFlags.Line); + return [printDanglingComments(path, options, !requiresHardline), requiresHardline ? hardline : ""]; + } + function printJsxSpreadAttribute(path, options, print) { + const node = path.getValue(); + return ["{", path.call((p) => { + const printed = ["...", print()]; + const node2 = p.getValue(); + if (!hasComment(node2) || !willPrintOwnComments(p)) { + return printed; + } + return [indent([softline, printComments(p, printed, options)]), softline]; + }, node.type === "JSXSpreadAttribute" ? "argument" : "expression"), "}"]; + } + function printJsx(path, options, print) { + const node = path.getValue(); + if (!node.type.startsWith("JSX")) { + return; + } + switch (node.type) { + case "JSXAttribute": + return printJsxAttribute(path, options, print); + case "JSXIdentifier": + return String(node.name); + case "JSXNamespacedName": + return join(":", [print("namespace"), print("name")]); + case "JSXMemberExpression": + return join(".", [print("object"), print("property")]); + case "JSXSpreadAttribute": + return printJsxSpreadAttribute(path, options, print); + case "JSXSpreadChild": { + const printJsxSpreadChild = printJsxSpreadAttribute; + return printJsxSpreadChild(path, options, print); + } + case "JSXExpressionContainer": + return printJsxExpressionContainer(path, options, print); + case "JSXFragment": + case "JSXElement": + return printJsxElement(path, options, print); + case "JSXOpeningElement": + return printJsxOpeningElement(path, options, print); + case "JSXClosingElement": + return printJsxClosingElement(path, options, print); + case "JSXOpeningFragment": + case "JSXClosingFragment": + return printJsxOpeningClosingFragment(path, options); + case "JSXEmptyExpression": + return printJsxEmptyExpression(path, options); + case "JSXText": + throw new Error("JSXTest should be handled by JSXElement"); + default: + throw new Error(`Unknown JSX node type: ${JSON.stringify(node.type)}.`); + } + } + var jsxWhitespaceChars = " \n\r "; + var matchJsxWhitespaceRegex = new RegExp("([" + jsxWhitespaceChars + "]+)"); + var containsNonJsxWhitespaceRegex = new RegExp("[^" + jsxWhitespaceChars + "]"); + var trimJsxWhitespace = (text) => text.replace(new RegExp("(?:^" + matchJsxWhitespaceRegex.source + "|" + matchJsxWhitespaceRegex.source + "$)"), ""); + function isEmptyJsxElement(node) { + if (node.children.length === 0) { + return true; + } + if (node.children.length > 1) { + return false; + } + const child = node.children[0]; + return isLiteral(child) && !isMeaningfulJsxText(child); + } + function isMeaningfulJsxText(node) { + return isLiteral(node) && (containsNonJsxWhitespaceRegex.test(rawText(node)) || !/\n/.test(rawText(node))); + } + function isJsxWhitespaceExpression(node) { + return node.type === "JSXExpressionContainer" && isLiteral(node.expression) && node.expression.value === " " && !hasComment(node.expression); + } + function hasJsxIgnoreComment(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + if (!parent || !node || !isJsxNode(node) || !isJsxNode(parent)) { + return false; + } + const index = parent.children.indexOf(node); + let prevSibling = null; + for (let i = index; i > 0; i--) { + const candidate = parent.children[i - 1]; + if (candidate.type === "JSXText" && !isMeaningfulJsxText(candidate)) { + continue; + } + prevSibling = candidate; + break; + } + return prevSibling && prevSibling.type === "JSXExpressionContainer" && prevSibling.expression.type === "JSXEmptyExpression" && hasNodeIgnoreComment(prevSibling.expression); + } + module2.exports = { + hasJsxIgnoreComment, + printJsx + }; + } +}); +var require_misc = __commonJS2({ + "src/language-js/print/misc.js"(exports2, module2) { + "use strict"; + var { + isNonEmptyArray + } = require_util(); + var { + builders: { + indent, + join, + line + } + } = require("./doc.js"); + var { + isFlowAnnotationComment + } = require_utils7(); + function printOptionalToken(path) { + const node = path.getValue(); + if (!node.optional || node.type === "Identifier" && node === path.getParentNode().key) { + return ""; + } + if (node.type === "OptionalCallExpression" || node.type === "OptionalMemberExpression" && node.computed) { + return "?."; + } + return "?"; + } + function printDefiniteToken(path) { + return path.getValue().definite || path.match(void 0, (node, name) => name === "id" && node.type === "VariableDeclarator" && node.definite) ? "!" : ""; + } + function printFunctionTypeParameters(path, options, print) { + const fun = path.getValue(); + if (fun.typeArguments) { + return print("typeArguments"); + } + if (fun.typeParameters) { + return print("typeParameters"); + } + return ""; + } + function printTypeAnnotation(path, options, print) { + const node = path.getValue(); + if (!node.typeAnnotation) { + return ""; + } + const parentNode = path.getParentNode(); + const isFunctionDeclarationIdentifier = parentNode.type === "DeclareFunction" && parentNode.id === node; + if (isFlowAnnotationComment(options.originalText, node.typeAnnotation)) { + return [" /*: ", print("typeAnnotation"), " */"]; + } + return [isFunctionDeclarationIdentifier ? "" : ": ", print("typeAnnotation")]; + } + function printBindExpressionCallee(path, options, print) { + return ["::", print("callee")]; + } + function printTypeScriptModifiers(path, options, print) { + const node = path.getValue(); + if (!isNonEmptyArray(node.modifiers)) { + return ""; + } + return [join(" ", path.map(print, "modifiers")), " "]; + } + function adjustClause(node, clause, forceSpace) { + if (node.type === "EmptyStatement") { + return ";"; + } + if (node.type === "BlockStatement" || forceSpace) { + return [" ", clause]; + } + return indent([line, clause]); + } + function printRestSpread(path, options, print) { + return ["...", print("argument"), printTypeAnnotation(path, options, print)]; + } + module2.exports = { + printOptionalToken, + printDefiniteToken, + printFunctionTypeParameters, + printBindExpressionCallee, + printTypeScriptModifiers, + printTypeAnnotation, + printRestSpread, + adjustClause + }; + } +}); +var require_array4 = __commonJS2({ + "src/language-js/print/array.js"(exports2, module2) { + "use strict"; + var { + printDanglingComments + } = require_comments(); + var { + builders: { + line, + softline, + hardline, + group, + indent, + ifBreak, + fill + } + } = require("./doc.js"); + var { + getLast, + hasNewline + } = require_util(); + var { + shouldPrintComma, + hasComment, + CommentCheckFlags, + isNextLineEmpty, + isNumericLiteral, + isSignedNumericLiteral + } = require_utils7(); + var { + locStart + } = require_loc(); + var { + printOptionalToken, + printTypeAnnotation + } = require_misc(); + function printArray(path, options, print) { + const node = path.getValue(); + const parts = []; + const openBracket = node.type === "TupleExpression" ? "#[" : "["; + const closeBracket = "]"; + if (node.elements.length === 0) { + if (!hasComment(node, CommentCheckFlags.Dangling)) { + parts.push(openBracket, closeBracket); + } else { + parts.push(group([openBracket, printDanglingComments(path, options), softline, closeBracket])); + } + } else { + const lastElem = getLast(node.elements); + const canHaveTrailingComma = !(lastElem && lastElem.type === "RestElement"); + const needsForcedTrailingComma = lastElem === null; + const groupId = Symbol("array"); + const shouldBreak = !options.__inJestEach && node.elements.length > 1 && node.elements.every((element, i, elements) => { + const elementType = element && element.type; + if (elementType !== "ArrayExpression" && elementType !== "ObjectExpression") { + return false; + } + const nextElement = elements[i + 1]; + if (nextElement && elementType !== nextElement.type) { + return false; + } + const itemsKey = elementType === "ArrayExpression" ? "elements" : "properties"; + return element[itemsKey] && element[itemsKey].length > 1; + }); + const shouldUseConciseFormatting = isConciselyPrintedArray(node, options); + const trailingComma = !canHaveTrailingComma ? "" : needsForcedTrailingComma ? "," : !shouldPrintComma(options) ? "" : shouldUseConciseFormatting ? ifBreak(",", "", { + groupId + }) : ifBreak(","); + parts.push(group([openBracket, indent([softline, shouldUseConciseFormatting ? printArrayItemsConcisely(path, options, print, trailingComma) : [printArrayItems(path, options, "elements", print), trailingComma], printDanglingComments(path, options, true)]), softline, closeBracket], { + shouldBreak, + id: groupId + })); + } + parts.push(printOptionalToken(path), printTypeAnnotation(path, options, print)); + return parts; + } + function isConciselyPrintedArray(node, options) { + return node.elements.length > 1 && node.elements.every((element) => element && (isNumericLiteral(element) || isSignedNumericLiteral(element) && !hasComment(element.argument)) && !hasComment(element, CommentCheckFlags.Trailing | CommentCheckFlags.Line, (comment) => !hasNewline(options.originalText, locStart(comment), { + backwards: true + }))); + } + function printArrayItems(path, options, printPath, print) { + const printedElements = []; + let separatorParts = []; + path.each((childPath) => { + printedElements.push(separatorParts, group(print())); + separatorParts = [",", line]; + if (childPath.getValue() && isNextLineEmpty(childPath.getValue(), options)) { + separatorParts.push(softline); + } + }, printPath); + return printedElements; + } + function printArrayItemsConcisely(path, options, print, trailingComma) { + const parts = []; + path.each((childPath, i, elements) => { + const isLast = i === elements.length - 1; + parts.push([print(), isLast ? trailingComma : ","]); + if (!isLast) { + parts.push(isNextLineEmpty(childPath.getValue(), options) ? [hardline, hardline] : hasComment(elements[i + 1], CommentCheckFlags.Leading | CommentCheckFlags.Line) ? hardline : line); + } + }, "elements"); + return fill(parts); + } + module2.exports = { + printArray, + printArrayItems, + isConciselyPrintedArray + }; + } +}); +var require_call_arguments = __commonJS2({ + "src/language-js/print/call-arguments.js"(exports2, module2) { + "use strict"; + var { + printDanglingComments + } = require_comments(); + var { + getLast, + getPenultimate + } = require_util(); + var { + getFunctionParameters, + hasComment, + CommentCheckFlags, + isFunctionCompositionArgs, + isJsxNode, + isLongCurriedCallExpression, + shouldPrintComma, + getCallArguments, + iterateCallArgumentsPath, + isNextLineEmpty, + isCallExpression, + isStringLiteral, + isObjectProperty + } = require_utils7(); + var { + builders: { + line, + hardline, + softline, + group, + indent, + conditionalGroup, + ifBreak, + breakParent + }, + utils: { + willBreak + } + } = require("./doc.js"); + var { + ArgExpansionBailout + } = require_errors(); + var { + isConciselyPrintedArray + } = require_array4(); + function printCallArguments(path, options, print) { + const node = path.getValue(); + const isDynamicImport = node.type === "ImportExpression"; + const args = getCallArguments(node); + if (args.length === 0) { + return ["(", printDanglingComments(path, options, true), ")"]; + } + if (isReactHookCallWithDepsArray(args)) { + return ["(", print(["arguments", 0]), ", ", print(["arguments", 1]), ")"]; + } + let anyArgEmptyLine = false; + let hasEmptyLineFollowingFirstArg = false; + const lastArgIndex = args.length - 1; + const printedArguments = []; + iterateCallArgumentsPath(path, (argPath, index) => { + const arg = argPath.getNode(); + const parts = [print()]; + if (index === lastArgIndex) { + } else if (isNextLineEmpty(arg, options)) { + if (index === 0) { + hasEmptyLineFollowingFirstArg = true; + } + anyArgEmptyLine = true; + parts.push(",", hardline, hardline); + } else { + parts.push(",", line); + } + printedArguments.push(parts); + }); + const maybeTrailingComma = !(isDynamicImport || node.callee && node.callee.type === "Import") && shouldPrintComma(options, "all") ? "," : ""; + function allArgsBrokenOut() { + return group(["(", indent([line, ...printedArguments]), maybeTrailingComma, line, ")"], { + shouldBreak: true + }); + } + if (anyArgEmptyLine || path.getParentNode().type !== "Decorator" && isFunctionCompositionArgs(args)) { + return allArgsBrokenOut(); + } + const shouldGroupFirst = shouldGroupFirstArg(args); + const shouldGroupLast = shouldGroupLastArg(args, options); + if (shouldGroupFirst || shouldGroupLast) { + if (shouldGroupFirst ? printedArguments.slice(1).some(willBreak) : printedArguments.slice(0, -1).some(willBreak)) { + return allArgsBrokenOut(); + } + let printedExpanded = []; + try { + path.try(() => { + iterateCallArgumentsPath(path, (argPath, i) => { + if (shouldGroupFirst && i === 0) { + printedExpanded = [[print([], { + expandFirstArg: true + }), printedArguments.length > 1 ? "," : "", hasEmptyLineFollowingFirstArg ? hardline : line, hasEmptyLineFollowingFirstArg ? hardline : ""], ...printedArguments.slice(1)]; + } + if (shouldGroupLast && i === lastArgIndex) { + printedExpanded = [...printedArguments.slice(0, -1), print([], { + expandLastArg: true + })]; + } + }); + }); + } catch (caught) { + if (caught instanceof ArgExpansionBailout) { + return allArgsBrokenOut(); + } + throw caught; + } + return [printedArguments.some(willBreak) ? breakParent : "", conditionalGroup([["(", ...printedExpanded, ")"], shouldGroupFirst ? ["(", group(printedExpanded[0], { + shouldBreak: true + }), ...printedExpanded.slice(1), ")"] : ["(", ...printedArguments.slice(0, -1), group(getLast(printedExpanded), { + shouldBreak: true + }), ")"], allArgsBrokenOut()])]; + } + const contents = ["(", indent([softline, ...printedArguments]), ifBreak(maybeTrailingComma), softline, ")"]; + if (isLongCurriedCallExpression(path)) { + return contents; + } + return group(contents, { + shouldBreak: printedArguments.some(willBreak) || anyArgEmptyLine + }); + } + function couldGroupArg(arg, arrowChainRecursion = false) { + return arg.type === "ObjectExpression" && (arg.properties.length > 0 || hasComment(arg)) || arg.type === "ArrayExpression" && (arg.elements.length > 0 || hasComment(arg)) || arg.type === "TSTypeAssertion" && couldGroupArg(arg.expression) || arg.type === "TSAsExpression" && couldGroupArg(arg.expression) || arg.type === "FunctionExpression" || arg.type === "ArrowFunctionExpression" && (!arg.returnType || !arg.returnType.typeAnnotation || arg.returnType.typeAnnotation.type !== "TSTypeReference" || isNonEmptyBlockStatement(arg.body)) && (arg.body.type === "BlockStatement" || arg.body.type === "ArrowFunctionExpression" && couldGroupArg(arg.body, true) || arg.body.type === "ObjectExpression" || arg.body.type === "ArrayExpression" || !arrowChainRecursion && (isCallExpression(arg.body) || arg.body.type === "ConditionalExpression") || isJsxNode(arg.body)) || arg.type === "DoExpression" || arg.type === "ModuleExpression"; + } + function shouldGroupLastArg(args, options) { + const lastArg = getLast(args); + const penultimateArg = getPenultimate(args); + return !hasComment(lastArg, CommentCheckFlags.Leading) && !hasComment(lastArg, CommentCheckFlags.Trailing) && couldGroupArg(lastArg) && (!penultimateArg || penultimateArg.type !== lastArg.type) && (args.length !== 2 || penultimateArg.type !== "ArrowFunctionExpression" || lastArg.type !== "ArrayExpression") && !(args.length > 1 && lastArg.type === "ArrayExpression" && isConciselyPrintedArray(lastArg, options)); + } + function shouldGroupFirstArg(args) { + if (args.length !== 2) { + return false; + } + const [firstArg, secondArg] = args; + if (firstArg.type === "ModuleExpression" && isTypeModuleObjectExpression(secondArg)) { + return true; + } + return !hasComment(firstArg) && (firstArg.type === "FunctionExpression" || firstArg.type === "ArrowFunctionExpression" && firstArg.body.type === "BlockStatement") && secondArg.type !== "FunctionExpression" && secondArg.type !== "ArrowFunctionExpression" && secondArg.type !== "ConditionalExpression" && !couldGroupArg(secondArg); + } + function isReactHookCallWithDepsArray(args) { + return args.length === 2 && args[0].type === "ArrowFunctionExpression" && getFunctionParameters(args[0]).length === 0 && args[0].body.type === "BlockStatement" && args[1].type === "ArrayExpression" && !args.some((arg) => hasComment(arg)); + } + function isNonEmptyBlockStatement(node) { + return node.type === "BlockStatement" && (node.body.some((node2) => node2.type !== "EmptyStatement") || hasComment(node, CommentCheckFlags.Dangling)); + } + function isTypeModuleObjectExpression(node) { + return node.type === "ObjectExpression" && node.properties.length === 1 && isObjectProperty(node.properties[0]) && node.properties[0].key.type === "Identifier" && node.properties[0].key.name === "type" && isStringLiteral(node.properties[0].value) && node.properties[0].value.value === "module"; + } + module2.exports = printCallArguments; + } +}); +var require_member = __commonJS2({ + "src/language-js/print/member.js"(exports2, module2) { + "use strict"; + var { + builders: { + softline, + group, + indent, + label + } + } = require("./doc.js"); + var { + isNumericLiteral, + isMemberExpression, + isCallExpression + } = require_utils7(); + var { + printOptionalToken + } = require_misc(); + function printMemberExpression(path, options, print) { + const node = path.getValue(); + const parent = path.getParentNode(); + let firstNonMemberParent; + let i = 0; + do { + firstNonMemberParent = path.getParentNode(i); + i++; + } while (firstNonMemberParent && (isMemberExpression(firstNonMemberParent) || firstNonMemberParent.type === "TSNonNullExpression")); + const objectDoc = print("object"); + const lookupDoc = printMemberLookup(path, options, print); + const shouldInline = firstNonMemberParent && (firstNonMemberParent.type === "NewExpression" || firstNonMemberParent.type === "BindExpression" || firstNonMemberParent.type === "AssignmentExpression" && firstNonMemberParent.left.type !== "Identifier") || node.computed || node.object.type === "Identifier" && node.property.type === "Identifier" && !isMemberExpression(parent) || (parent.type === "AssignmentExpression" || parent.type === "VariableDeclarator") && (isCallExpression(node.object) && node.object.arguments.length > 0 || node.object.type === "TSNonNullExpression" && isCallExpression(node.object.expression) && node.object.expression.arguments.length > 0 || objectDoc.label === "member-chain"); + return label(objectDoc.label === "member-chain" ? "member-chain" : "member", [objectDoc, shouldInline ? lookupDoc : group(indent([softline, lookupDoc]))]); + } + function printMemberLookup(path, options, print) { + const property = print("property"); + const node = path.getValue(); + const optional = printOptionalToken(path); + if (!node.computed) { + return [optional, ".", property]; + } + if (!node.property || isNumericLiteral(node.property)) { + return [optional, "[", property, "]"]; + } + return group([optional, "[", indent([softline, property]), softline, "]"]); + } + module2.exports = { + printMemberExpression, + printMemberLookup + }; + } +}); +var require_member_chain = __commonJS2({ + "src/language-js/print/member-chain.js"(exports2, module2) { + "use strict"; + var { + printComments + } = require_comments(); + var { + getLast, + isNextLineEmptyAfterIndex, + getNextNonSpaceNonCommentCharacterIndex + } = require_util(); + var pathNeedsParens = require_needs_parens(); + var { + isCallExpression, + isMemberExpression, + isFunctionOrArrowExpression, + isLongCurriedCallExpression, + isMemberish, + isNumericLiteral, + isSimpleCallArgument, + hasComment, + CommentCheckFlags, + isNextLineEmpty + } = require_utils7(); + var { + locEnd + } = require_loc(); + var { + builders: { + join, + hardline, + group, + indent, + conditionalGroup, + breakParent, + label + }, + utils: { + willBreak + } + } = require("./doc.js"); + var printCallArguments = require_call_arguments(); + var { + printMemberLookup + } = require_member(); + var { + printOptionalToken, + printFunctionTypeParameters, + printBindExpressionCallee + } = require_misc(); + function printMemberChain(path, options, print) { + const parent = path.getParentNode(); + const isExpressionStatement = !parent || parent.type === "ExpressionStatement"; + const printedNodes = []; + function shouldInsertEmptyLineAfter(node2) { + const { + originalText + } = options; + const nextCharIndex = getNextNonSpaceNonCommentCharacterIndex(originalText, node2, locEnd); + const nextChar = originalText.charAt(nextCharIndex); + if (nextChar === ")") { + return nextCharIndex !== false && isNextLineEmptyAfterIndex(originalText, nextCharIndex + 1); + } + return isNextLineEmpty(node2, options); + } + function rec(path2) { + const node2 = path2.getValue(); + if (isCallExpression(node2) && (isMemberish(node2.callee) || isCallExpression(node2.callee))) { + printedNodes.unshift({ + node: node2, + printed: [printComments(path2, [printOptionalToken(path2), printFunctionTypeParameters(path2, options, print), printCallArguments(path2, options, print)], options), shouldInsertEmptyLineAfter(node2) ? hardline : ""] + }); + path2.call((callee) => rec(callee), "callee"); + } else if (isMemberish(node2)) { + printedNodes.unshift({ + node: node2, + needsParens: pathNeedsParens(path2, options), + printed: printComments(path2, isMemberExpression(node2) ? printMemberLookup(path2, options, print) : printBindExpressionCallee(path2, options, print), options) + }); + path2.call((object) => rec(object), "object"); + } else if (node2.type === "TSNonNullExpression") { + printedNodes.unshift({ + node: node2, + printed: printComments(path2, "!", options) + }); + path2.call((expression) => rec(expression), "expression"); + } else { + printedNodes.unshift({ + node: node2, + printed: print() + }); + } + } + const node = path.getValue(); + printedNodes.unshift({ + node, + printed: [printOptionalToken(path), printFunctionTypeParameters(path, options, print), printCallArguments(path, options, print)] + }); + if (node.callee) { + path.call((callee) => rec(callee), "callee"); + } + const groups = []; + let currentGroup = [printedNodes[0]]; + let i = 1; + for (; i < printedNodes.length; ++i) { + if (printedNodes[i].node.type === "TSNonNullExpression" || isCallExpression(printedNodes[i].node) || isMemberExpression(printedNodes[i].node) && printedNodes[i].node.computed && isNumericLiteral(printedNodes[i].node.property)) { + currentGroup.push(printedNodes[i]); + } else { + break; + } + } + if (!isCallExpression(printedNodes[0].node)) { + for (; i + 1 < printedNodes.length; ++i) { + if (isMemberish(printedNodes[i].node) && isMemberish(printedNodes[i + 1].node)) { + currentGroup.push(printedNodes[i]); + } else { + break; + } + } + } + groups.push(currentGroup); + currentGroup = []; + let hasSeenCallExpression = false; + for (; i < printedNodes.length; ++i) { + if (hasSeenCallExpression && isMemberish(printedNodes[i].node)) { + if (printedNodes[i].node.computed && isNumericLiteral(printedNodes[i].node.property)) { + currentGroup.push(printedNodes[i]); + continue; + } + groups.push(currentGroup); + currentGroup = []; + hasSeenCallExpression = false; + } + if (isCallExpression(printedNodes[i].node) || printedNodes[i].node.type === "ImportExpression") { + hasSeenCallExpression = true; + } + currentGroup.push(printedNodes[i]); + if (hasComment(printedNodes[i].node, CommentCheckFlags.Trailing)) { + groups.push(currentGroup); + currentGroup = []; + hasSeenCallExpression = false; + } + } + if (currentGroup.length > 0) { + groups.push(currentGroup); + } + function isFactory(name) { + return /^[A-Z]|^[$_]+$/.test(name); + } + function isShort(name) { + return name.length <= options.tabWidth; + } + function shouldNotWrap(groups2) { + const hasComputed = groups2[1].length > 0 && groups2[1][0].node.computed; + if (groups2[0].length === 1) { + const firstNode = groups2[0][0].node; + return firstNode.type === "ThisExpression" || firstNode.type === "Identifier" && (isFactory(firstNode.name) || isExpressionStatement && isShort(firstNode.name) || hasComputed); + } + const lastNode = getLast(groups2[0]).node; + return isMemberExpression(lastNode) && lastNode.property.type === "Identifier" && (isFactory(lastNode.property.name) || hasComputed); + } + const shouldMerge = groups.length >= 2 && !hasComment(groups[1][0].node) && shouldNotWrap(groups); + function printGroup(printedGroup) { + const printed = printedGroup.map((tuple) => tuple.printed); + if (printedGroup.length > 0 && getLast(printedGroup).needsParens) { + return ["(", ...printed, ")"]; + } + return printed; + } + function printIndentedGroup(groups2) { + if (groups2.length === 0) { + return ""; + } + return indent(group([hardline, join(hardline, groups2.map(printGroup))])); + } + const printedGroups = groups.map(printGroup); + const oneLine = printedGroups; + const cutoff = shouldMerge ? 3 : 2; + const flatGroups = groups.flat(); + const nodeHasComment = flatGroups.slice(1, -1).some((node2) => hasComment(node2.node, CommentCheckFlags.Leading)) || flatGroups.slice(0, -1).some((node2) => hasComment(node2.node, CommentCheckFlags.Trailing)) || groups[cutoff] && hasComment(groups[cutoff][0].node, CommentCheckFlags.Leading); + if (groups.length <= cutoff && !nodeHasComment) { + if (isLongCurriedCallExpression(path)) { + return oneLine; + } + return group(oneLine); + } + const lastNodeBeforeIndent = getLast(groups[shouldMerge ? 1 : 0]).node; + const shouldHaveEmptyLineBeforeIndent = !isCallExpression(lastNodeBeforeIndent) && shouldInsertEmptyLineAfter(lastNodeBeforeIndent); + const expanded = [printGroup(groups[0]), shouldMerge ? groups.slice(1, 2).map(printGroup) : "", shouldHaveEmptyLineBeforeIndent ? hardline : "", printIndentedGroup(groups.slice(shouldMerge ? 2 : 1))]; + const callExpressions = printedNodes.map(({ + node: node2 + }) => node2).filter(isCallExpression); + function lastGroupWillBreakAndOtherCallsHaveFunctionArguments() { + const lastGroupNode = getLast(getLast(groups)).node; + const lastGroupDoc = getLast(printedGroups); + return isCallExpression(lastGroupNode) && willBreak(lastGroupDoc) && callExpressions.slice(0, -1).some((node2) => node2.arguments.some(isFunctionOrArrowExpression)); + } + let result; + if (nodeHasComment || callExpressions.length > 2 && callExpressions.some((expr) => !expr.arguments.every((arg) => isSimpleCallArgument(arg, 0))) || printedGroups.slice(0, -1).some(willBreak) || lastGroupWillBreakAndOtherCallsHaveFunctionArguments()) { + result = group(expanded); + } else { + result = [willBreak(oneLine) || shouldHaveEmptyLineBeforeIndent ? breakParent : "", conditionalGroup([oneLine, expanded])]; + } + return label("member-chain", result); + } + module2.exports = printMemberChain; + } +}); +var require_call_expression = __commonJS2({ + "src/language-js/print/call-expression.js"(exports2, module2) { + "use strict"; + var { + builders: { + join, + group + } + } = require("./doc.js"); + var pathNeedsParens = require_needs_parens(); + var { + getCallArguments, + hasFlowAnnotationComment, + isCallExpression, + isMemberish, + isStringLiteral, + isTemplateOnItsOwnLine, + isTestCall, + iterateCallArgumentsPath + } = require_utils7(); + var printMemberChain = require_member_chain(); + var printCallArguments = require_call_arguments(); + var { + printOptionalToken, + printFunctionTypeParameters + } = require_misc(); + function printCallExpression(path, options, print) { + const node = path.getValue(); + const parentNode = path.getParentNode(); + const isNew = node.type === "NewExpression"; + const isDynamicImport = node.type === "ImportExpression"; + const optional = printOptionalToken(path); + const args = getCallArguments(node); + if (args.length > 0 && (!isDynamicImport && !isNew && isCommonsJsOrAmdCall(node, parentNode) || args.length === 1 && isTemplateOnItsOwnLine(args[0], options.originalText) || !isNew && isTestCall(node, parentNode))) { + const printed = []; + iterateCallArgumentsPath(path, () => { + printed.push(print()); + }); + return [isNew ? "new " : "", print("callee"), optional, printFunctionTypeParameters(path, options, print), "(", join(", ", printed), ")"]; + } + const isIdentifierWithFlowAnnotation = (options.parser === "babel" || options.parser === "babel-flow") && node.callee && node.callee.type === "Identifier" && hasFlowAnnotationComment(node.callee.trailingComments); + if (isIdentifierWithFlowAnnotation) { + node.callee.trailingComments[0].printed = true; + } + if (!isDynamicImport && !isNew && isMemberish(node.callee) && !path.call((path2) => pathNeedsParens(path2, options), "callee")) { + return printMemberChain(path, options, print); + } + const contents = [isNew ? "new " : "", isDynamicImport ? "import" : print("callee"), optional, isIdentifierWithFlowAnnotation ? `/*:: ${node.callee.trailingComments[0].value.slice(2).trim()} */` : "", printFunctionTypeParameters(path, options, print), printCallArguments(path, options, print)]; + if (isDynamicImport || isCallExpression(node.callee)) { + return group(contents); + } + return contents; + } + function isCommonsJsOrAmdCall(node, parentNode) { + if (node.callee.type !== "Identifier") { + return false; + } + if (node.callee.name === "require") { + return true; + } + if (node.callee.name === "define") { + const args = getCallArguments(node); + return parentNode.type === "ExpressionStatement" && (args.length === 1 || args.length === 2 && args[0].type === "ArrayExpression" || args.length === 3 && isStringLiteral(args[0]) && args[1].type === "ArrayExpression"); + } + return false; + } + module2.exports = { + printCallExpression + }; + } +}); +var require_assignment = __commonJS2({ + "src/language-js/print/assignment.js"(exports2, module2) { + "use strict"; + var { + isNonEmptyArray, + getStringWidth + } = require_util(); + var { + builders: { + line, + group, + indent, + indentIfBreak, + lineSuffixBoundary + }, + utils: { + cleanDoc, + willBreak, + canBreak + } + } = require("./doc.js"); + var { + hasLeadingOwnLineComment, + isBinaryish, + isStringLiteral, + isLiteral, + isNumericLiteral, + isCallExpression, + isMemberExpression, + getCallArguments, + rawText, + hasComment, + isSignedNumericLiteral, + isObjectProperty + } = require_utils7(); + var { + shouldInlineLogicalExpression + } = require_binaryish(); + var { + printCallExpression + } = require_call_expression(); + function printAssignment(path, options, print, leftDoc, operator, rightPropertyName) { + const layout = chooseLayout(path, options, print, leftDoc, rightPropertyName); + const rightDoc = print(rightPropertyName, { + assignmentLayout: layout + }); + switch (layout) { + case "break-after-operator": + return group([group(leftDoc), operator, group(indent([line, rightDoc]))]); + case "never-break-after-operator": + return group([group(leftDoc), operator, " ", rightDoc]); + case "fluid": { + const groupId = Symbol("assignment"); + return group([group(leftDoc), operator, group(indent(line), { + id: groupId + }), lineSuffixBoundary, indentIfBreak(rightDoc, { + groupId + })]); + } + case "break-lhs": + return group([leftDoc, operator, " ", group(rightDoc)]); + case "chain": + return [group(leftDoc), operator, line, rightDoc]; + case "chain-tail": + return [group(leftDoc), operator, indent([line, rightDoc])]; + case "chain-tail-arrow-chain": + return [group(leftDoc), operator, rightDoc]; + case "only-left": + return leftDoc; + } + } + function printAssignmentExpression(path, options, print) { + const node = path.getValue(); + return printAssignment(path, options, print, print("left"), [" ", node.operator], "right"); + } + function printVariableDeclarator(path, options, print) { + return printAssignment(path, options, print, print("id"), " =", "init"); + } + function chooseLayout(path, options, print, leftDoc, rightPropertyName) { + const node = path.getValue(); + const rightNode = node[rightPropertyName]; + if (!rightNode) { + return "only-left"; + } + const isTail = !isAssignment(rightNode); + const shouldUseChainFormatting = path.match(isAssignment, isAssignmentOrVariableDeclarator, (node2) => !isTail || node2.type !== "ExpressionStatement" && node2.type !== "VariableDeclaration"); + if (shouldUseChainFormatting) { + return !isTail ? "chain" : rightNode.type === "ArrowFunctionExpression" && rightNode.body.type === "ArrowFunctionExpression" ? "chain-tail-arrow-chain" : "chain-tail"; + } + const isHeadOfLongChain = !isTail && isAssignment(rightNode.right); + if (isHeadOfLongChain || hasLeadingOwnLineComment(options.originalText, rightNode)) { + return "break-after-operator"; + } + if (rightNode.type === "CallExpression" && rightNode.callee.name === "require" || options.parser === "json5" || options.parser === "json") { + return "never-break-after-operator"; + } + if (isComplexDestructuring(node) || isComplexTypeAliasParams(node) || hasComplexTypeAnnotation(node) || isArrowFunctionVariableDeclarator(node) && canBreak(leftDoc)) { + return "break-lhs"; + } + const hasShortKey = isObjectPropertyWithShortKey(node, leftDoc, options); + if (path.call(() => shouldBreakAfterOperator(path, options, print, hasShortKey), rightPropertyName)) { + return "break-after-operator"; + } + if (hasShortKey || rightNode.type === "TemplateLiteral" || rightNode.type === "TaggedTemplateExpression" || rightNode.type === "BooleanLiteral" || isNumericLiteral(rightNode) || rightNode.type === "ClassExpression") { + return "never-break-after-operator"; + } + return "fluid"; + } + function shouldBreakAfterOperator(path, options, print, hasShortKey) { + const rightNode = path.getValue(); + if (isBinaryish(rightNode) && !shouldInlineLogicalExpression(rightNode)) { + return true; + } + switch (rightNode.type) { + case "StringLiteralTypeAnnotation": + case "SequenceExpression": + return true; + case "ConditionalExpression": { + const { + test + } = rightNode; + return isBinaryish(test) && !shouldInlineLogicalExpression(test); + } + case "ClassExpression": + return isNonEmptyArray(rightNode.decorators); + } + if (hasShortKey) { + return false; + } + let node = rightNode; + const propertiesForPath = []; + for (; ; ) { + if (node.type === "UnaryExpression") { + node = node.argument; + propertiesForPath.push("argument"); + } else if (node.type === "TSNonNullExpression") { + node = node.expression; + propertiesForPath.push("expression"); + } else { + break; + } + } + if (isStringLiteral(node) || path.call(() => isPoorlyBreakableMemberOrCallChain(path, options, print), ...propertiesForPath)) { + return true; + } + return false; + } + function isComplexDestructuring(node) { + if (isAssignmentOrVariableDeclarator(node)) { + const leftNode = node.left || node.id; + return leftNode.type === "ObjectPattern" && leftNode.properties.length > 2 && leftNode.properties.some((property) => isObjectProperty(property) && (!property.shorthand || property.value && property.value.type === "AssignmentPattern")); + } + return false; + } + function isAssignment(node) { + return node.type === "AssignmentExpression"; + } + function isAssignmentOrVariableDeclarator(node) { + return isAssignment(node) || node.type === "VariableDeclarator"; + } + function isComplexTypeAliasParams(node) { + const typeParams = getTypeParametersFromTypeAlias(node); + if (isNonEmptyArray(typeParams)) { + const constraintPropertyName = node.type === "TSTypeAliasDeclaration" ? "constraint" : "bound"; + if (typeParams.length > 1 && typeParams.some((param) => param[constraintPropertyName] || param.default)) { + return true; + } + } + return false; + } + function getTypeParametersFromTypeAlias(node) { + if (isTypeAlias(node) && node.typeParameters && node.typeParameters.params) { + return node.typeParameters.params; + } + return null; + } + function isTypeAlias(node) { + return node.type === "TSTypeAliasDeclaration" || node.type === "TypeAlias"; + } + function hasComplexTypeAnnotation(node) { + if (node.type !== "VariableDeclarator") { + return false; + } + const { + typeAnnotation + } = node.id; + if (!typeAnnotation || !typeAnnotation.typeAnnotation) { + return false; + } + const typeParams = getTypeParametersFromTypeReference(typeAnnotation.typeAnnotation); + return isNonEmptyArray(typeParams) && typeParams.length > 1 && typeParams.some((param) => isNonEmptyArray(getTypeParametersFromTypeReference(param)) || param.type === "TSConditionalType"); + } + function isArrowFunctionVariableDeclarator(node) { + return node.type === "VariableDeclarator" && node.init && node.init.type === "ArrowFunctionExpression"; + } + function getTypeParametersFromTypeReference(node) { + if (isTypeReference(node) && node.typeParameters && node.typeParameters.params) { + return node.typeParameters.params; + } + return null; + } + function isTypeReference(node) { + return node.type === "TSTypeReference" || node.type === "GenericTypeAnnotation"; + } + function isPoorlyBreakableMemberOrCallChain(path, options, print, deep = false) { + const node = path.getValue(); + const goDeeper = () => isPoorlyBreakableMemberOrCallChain(path, options, print, true); + if (node.type === "TSNonNullExpression") { + return path.call(goDeeper, "expression"); + } + if (isCallExpression(node)) { + const doc2 = printCallExpression(path, options, print); + if (doc2.label === "member-chain") { + return false; + } + const args = getCallArguments(node); + const isPoorlyBreakableCall = args.length === 0 || args.length === 1 && isLoneShortArgument(args[0], options); + if (!isPoorlyBreakableCall) { + return false; + } + if (isCallExpressionWithComplexTypeArguments(node, print)) { + return false; + } + return path.call(goDeeper, "callee"); + } + if (isMemberExpression(node)) { + return path.call(goDeeper, "object"); + } + return deep && (node.type === "Identifier" || node.type === "ThisExpression"); + } + var LONE_SHORT_ARGUMENT_THRESHOLD_RATE = 0.25; + function isLoneShortArgument(node, { + printWidth + }) { + if (hasComment(node)) { + return false; + } + const threshold = printWidth * LONE_SHORT_ARGUMENT_THRESHOLD_RATE; + if (node.type === "ThisExpression" || node.type === "Identifier" && node.name.length <= threshold || isSignedNumericLiteral(node) && !hasComment(node.argument)) { + return true; + } + const regexpPattern = node.type === "Literal" && "regex" in node && node.regex.pattern || node.type === "RegExpLiteral" && node.pattern; + if (regexpPattern) { + return regexpPattern.length <= threshold; + } + if (isStringLiteral(node)) { + return rawText(node).length <= threshold; + } + if (node.type === "TemplateLiteral") { + return node.expressions.length === 0 && node.quasis[0].value.raw.length <= threshold && !node.quasis[0].value.raw.includes("\n"); + } + return isLiteral(node); + } + function isObjectPropertyWithShortKey(node, keyDoc, options) { + if (!isObjectProperty(node)) { + return false; + } + keyDoc = cleanDoc(keyDoc); + const MIN_OVERLAP_FOR_BREAK = 3; + return typeof keyDoc === "string" && getStringWidth(keyDoc) < options.tabWidth + MIN_OVERLAP_FOR_BREAK; + } + function isCallExpressionWithComplexTypeArguments(node, print) { + const typeArgs = getTypeArgumentsFromCallExpression(node); + if (isNonEmptyArray(typeArgs)) { + if (typeArgs.length > 1) { + return true; + } + if (typeArgs.length === 1) { + const firstArg = typeArgs[0]; + if (firstArg.type === "TSUnionType" || firstArg.type === "UnionTypeAnnotation" || firstArg.type === "TSIntersectionType" || firstArg.type === "IntersectionTypeAnnotation" || firstArg.type === "TSTypeLiteral" || firstArg.type === "ObjectTypeAnnotation") { + return true; + } + } + const typeArgsKeyName = node.typeParameters ? "typeParameters" : "typeArguments"; + if (willBreak(print(typeArgsKeyName))) { + return true; + } + } + return false; + } + function getTypeArgumentsFromCallExpression(node) { + return node.typeParameters && node.typeParameters.params || node.typeArguments && node.typeArguments.params; + } + module2.exports = { + printVariableDeclarator, + printAssignmentExpression, + printAssignment, + isArrowFunctionVariableDeclarator + }; + } +}); +var require_function_parameters = __commonJS2({ + "src/language-js/print/function-parameters.js"(exports2, module2) { + "use strict"; + var { + getNextNonSpaceNonCommentCharacter + } = require_util(); + var { + printDanglingComments + } = require_comments(); + var { + builders: { + line, + hardline, + softline, + group, + indent, + ifBreak + }, + utils: { + removeLines, + willBreak + } + } = require("./doc.js"); + var { + getFunctionParameters, + iterateFunctionParametersPath, + isSimpleType, + isTestCall, + isTypeAnnotationAFunction, + isObjectType, + isObjectTypePropertyAFunction, + hasRestParameter, + shouldPrintComma, + hasComment, + isNextLineEmpty + } = require_utils7(); + var { + locEnd + } = require_loc(); + var { + ArgExpansionBailout + } = require_errors(); + var { + printFunctionTypeParameters + } = require_misc(); + function printFunctionParameters(path, print, options, expandArg, printTypeParams) { + const functionNode = path.getValue(); + const parameters = getFunctionParameters(functionNode); + const typeParams = printTypeParams ? printFunctionTypeParameters(path, options, print) : ""; + if (parameters.length === 0) { + return [typeParams, "(", printDanglingComments(path, options, true, (comment) => getNextNonSpaceNonCommentCharacter(options.originalText, comment, locEnd) === ")"), ")"]; + } + const parent = path.getParentNode(); + const isParametersInTestCall = isTestCall(parent); + const shouldHugParameters = shouldHugFunctionParameters(functionNode); + const printed = []; + iterateFunctionParametersPath(path, (parameterPath, index) => { + const isLastParameter = index === parameters.length - 1; + if (isLastParameter && functionNode.rest) { + printed.push("..."); + } + printed.push(print()); + if (isLastParameter) { + return; + } + printed.push(","); + if (isParametersInTestCall || shouldHugParameters) { + printed.push(" "); + } else if (isNextLineEmpty(parameters[index], options)) { + printed.push(hardline, hardline); + } else { + printed.push(line); + } + }); + if (expandArg) { + if (willBreak(typeParams) || willBreak(printed)) { + throw new ArgExpansionBailout(); + } + return group([removeLines(typeParams), "(", removeLines(printed), ")"]); + } + const hasNotParameterDecorator = parameters.every((node) => !node.decorators); + if (shouldHugParameters && hasNotParameterDecorator) { + return [typeParams, "(", ...printed, ")"]; + } + if (isParametersInTestCall) { + return [typeParams, "(", ...printed, ")"]; + } + const isFlowShorthandWithOneArg = (isObjectTypePropertyAFunction(parent) || isTypeAnnotationAFunction(parent) || parent.type === "TypeAlias" || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType" || parent.type === "IntersectionTypeAnnotation" || parent.type === "FunctionTypeAnnotation" && parent.returnType === functionNode) && parameters.length === 1 && parameters[0].name === null && functionNode.this !== parameters[0] && parameters[0].typeAnnotation && functionNode.typeParameters === null && isSimpleType(parameters[0].typeAnnotation) && !functionNode.rest; + if (isFlowShorthandWithOneArg) { + if (options.arrowParens === "always") { + return ["(", ...printed, ")"]; + } + return printed; + } + return [typeParams, "(", indent([softline, ...printed]), ifBreak(!hasRestParameter(functionNode) && shouldPrintComma(options, "all") ? "," : ""), softline, ")"]; + } + function shouldHugFunctionParameters(node) { + if (!node) { + return false; + } + const parameters = getFunctionParameters(node); + if (parameters.length !== 1) { + return false; + } + const [parameter] = parameters; + return !hasComment(parameter) && (parameter.type === "ObjectPattern" || parameter.type === "ArrayPattern" || parameter.type === "Identifier" && parameter.typeAnnotation && (parameter.typeAnnotation.type === "TypeAnnotation" || parameter.typeAnnotation.type === "TSTypeAnnotation") && isObjectType(parameter.typeAnnotation.typeAnnotation) || parameter.type === "FunctionTypeParam" && isObjectType(parameter.typeAnnotation) || parameter.type === "AssignmentPattern" && (parameter.left.type === "ObjectPattern" || parameter.left.type === "ArrayPattern") && (parameter.right.type === "Identifier" || parameter.right.type === "ObjectExpression" && parameter.right.properties.length === 0 || parameter.right.type === "ArrayExpression" && parameter.right.elements.length === 0)); + } + function getReturnTypeNode(functionNode) { + let returnTypeNode; + if (functionNode.returnType) { + returnTypeNode = functionNode.returnType; + if (returnTypeNode.typeAnnotation) { + returnTypeNode = returnTypeNode.typeAnnotation; + } + } else if (functionNode.typeAnnotation) { + returnTypeNode = functionNode.typeAnnotation; + } + return returnTypeNode; + } + function shouldGroupFunctionParameters(functionNode, returnTypeDoc) { + const returnTypeNode = getReturnTypeNode(functionNode); + if (!returnTypeNode) { + return false; + } + const typeParameters = functionNode.typeParameters && functionNode.typeParameters.params; + if (typeParameters) { + if (typeParameters.length > 1) { + return false; + } + if (typeParameters.length === 1) { + const typeParameter = typeParameters[0]; + if (typeParameter.constraint || typeParameter.default) { + return false; + } + } + } + return getFunctionParameters(functionNode).length === 1 && (isObjectType(returnTypeNode) || willBreak(returnTypeDoc)); + } + module2.exports = { + printFunctionParameters, + shouldHugFunctionParameters, + shouldGroupFunctionParameters + }; + } +}); +var require_type_annotation = __commonJS2({ + "src/language-js/print/type-annotation.js"(exports2, module2) { + "use strict"; + var { + printComments, + printDanglingComments + } = require_comments(); + var { + isNonEmptyArray + } = require_util(); + var { + builders: { + group, + join, + line, + softline, + indent, + align, + ifBreak + } + } = require("./doc.js"); + var pathNeedsParens = require_needs_parens(); + var { + locStart + } = require_loc(); + var { + isSimpleType, + isObjectType, + hasLeadingOwnLineComment, + isObjectTypePropertyAFunction, + shouldPrintComma + } = require_utils7(); + var { + printAssignment + } = require_assignment(); + var { + printFunctionParameters, + shouldGroupFunctionParameters + } = require_function_parameters(); + var { + printArrayItems + } = require_array4(); + function shouldHugType(node) { + if (isSimpleType(node) || isObjectType(node)) { + return true; + } + if (node.type === "UnionTypeAnnotation" || node.type === "TSUnionType") { + const voidCount = node.types.filter((node2) => node2.type === "VoidTypeAnnotation" || node2.type === "TSVoidKeyword" || node2.type === "NullLiteralTypeAnnotation" || node2.type === "TSNullKeyword").length; + const hasObject = node.types.some((node2) => node2.type === "ObjectTypeAnnotation" || node2.type === "TSTypeLiteral" || node2.type === "GenericTypeAnnotation" || node2.type === "TSTypeReference"); + if (node.types.length - 1 === voidCount && hasObject) { + return true; + } + } + return false; + } + function printOpaqueType(path, options, print) { + const semi = options.semi ? ";" : ""; + const node = path.getValue(); + const parts = []; + parts.push("opaque type ", print("id"), print("typeParameters")); + if (node.supertype) { + parts.push(": ", print("supertype")); + } + if (node.impltype) { + parts.push(" = ", print("impltype")); + } + parts.push(semi); + return parts; + } + function printTypeAlias(path, options, print) { + const semi = options.semi ? ";" : ""; + const node = path.getValue(); + const parts = []; + if (node.declare) { + parts.push("declare "); + } + parts.push("type ", print("id"), print("typeParameters")); + const rightPropertyName = node.type === "TSTypeAliasDeclaration" ? "typeAnnotation" : "right"; + return [printAssignment(path, options, print, parts, " =", rightPropertyName), semi]; + } + function printIntersectionType(path, options, print) { + const node = path.getValue(); + const types = path.map(print, "types"); + const result = []; + let wasIndented = false; + for (let i = 0; i < types.length; ++i) { + if (i === 0) { + result.push(types[i]); + } else if (isObjectType(node.types[i - 1]) && isObjectType(node.types[i])) { + result.push([" & ", wasIndented ? indent(types[i]) : types[i]]); + } else if (!isObjectType(node.types[i - 1]) && !isObjectType(node.types[i])) { + result.push(indent([" &", line, types[i]])); + } else { + if (i > 1) { + wasIndented = true; + } + result.push(" & ", i > 1 ? indent(types[i]) : types[i]); + } + } + return group(result); + } + function printUnionType(path, options, print) { + const node = path.getValue(); + const parent = path.getParentNode(); + const shouldIndent = parent.type !== "TypeParameterInstantiation" && parent.type !== "TSTypeParameterInstantiation" && parent.type !== "GenericTypeAnnotation" && parent.type !== "TSTypeReference" && parent.type !== "TSTypeAssertion" && parent.type !== "TupleTypeAnnotation" && parent.type !== "TSTupleType" && !(parent.type === "FunctionTypeParam" && !parent.name && path.getParentNode(1).this !== parent) && !((parent.type === "TypeAlias" || parent.type === "VariableDeclarator" || parent.type === "TSTypeAliasDeclaration") && hasLeadingOwnLineComment(options.originalText, node)); + const shouldHug = shouldHugType(node); + const printed = path.map((typePath) => { + let printedType = print(); + if (!shouldHug) { + printedType = align(2, printedType); + } + return printComments(typePath, printedType, options); + }, "types"); + if (shouldHug) { + return join(" | ", printed); + } + const shouldAddStartLine = shouldIndent && !hasLeadingOwnLineComment(options.originalText, node); + const code = [ifBreak([shouldAddStartLine ? line : "", "| "]), join([line, "| "], printed)]; + if (pathNeedsParens(path, options)) { + return group([indent(code), softline]); + } + if (parent.type === "TupleTypeAnnotation" && parent.types.length > 1 || parent.type === "TSTupleType" && parent.elementTypes.length > 1) { + return group([indent([ifBreak(["(", softline]), code]), softline, ifBreak(")")]); + } + return group(shouldIndent ? indent(code) : code); + } + function printFunctionType(path, options, print) { + const node = path.getValue(); + const parts = []; + const parent = path.getParentNode(0); + const parentParent = path.getParentNode(1); + const parentParentParent = path.getParentNode(2); + let isArrowFunctionTypeAnnotation = node.type === "TSFunctionType" || !((parent.type === "ObjectTypeProperty" || parent.type === "ObjectTypeInternalSlot") && !parent.variance && !parent.optional && locStart(parent) === locStart(node) || parent.type === "ObjectTypeCallProperty" || parentParentParent && parentParentParent.type === "DeclareFunction"); + let needsColon = isArrowFunctionTypeAnnotation && (parent.type === "TypeAnnotation" || parent.type === "TSTypeAnnotation"); + const needsParens = needsColon && isArrowFunctionTypeAnnotation && (parent.type === "TypeAnnotation" || parent.type === "TSTypeAnnotation") && parentParent.type === "ArrowFunctionExpression"; + if (isObjectTypePropertyAFunction(parent)) { + isArrowFunctionTypeAnnotation = true; + needsColon = true; + } + if (needsParens) { + parts.push("("); + } + const parametersDoc = printFunctionParameters(path, print, options, false, true); + const returnTypeDoc = node.returnType || node.predicate || node.typeAnnotation ? [isArrowFunctionTypeAnnotation ? " => " : ": ", print("returnType"), print("predicate"), print("typeAnnotation")] : ""; + const shouldGroupParameters = shouldGroupFunctionParameters(node, returnTypeDoc); + parts.push(shouldGroupParameters ? group(parametersDoc) : parametersDoc); + if (returnTypeDoc) { + parts.push(returnTypeDoc); + } + if (needsParens) { + parts.push(")"); + } + return group(parts); + } + function printTupleType(path, options, print) { + const node = path.getValue(); + const typesField = node.type === "TSTupleType" ? "elementTypes" : "types"; + const types = node[typesField]; + const isNonEmptyTuple = isNonEmptyArray(types); + const bracketsDelimiterLine = isNonEmptyTuple ? softline : ""; + return group(["[", indent([bracketsDelimiterLine, printArrayItems(path, options, typesField, print)]), ifBreak(isNonEmptyTuple && shouldPrintComma(options, "all") ? "," : ""), printDanglingComments(path, options, true), bracketsDelimiterLine, "]"]); + } + function printIndexedAccessType(path, options, print) { + const node = path.getValue(); + const leftDelimiter = node.type === "OptionalIndexedAccessType" && node.optional ? "?.[" : "["; + return [print("objectType"), leftDelimiter, print("indexType"), "]"]; + } + function printJSDocType(path, print, token) { + const node = path.getValue(); + return [node.postfix ? "" : token, print("typeAnnotation"), node.postfix ? token : ""]; + } + module2.exports = { + printOpaqueType, + printTypeAlias, + printIntersectionType, + printUnionType, + printFunctionType, + printTupleType, + printIndexedAccessType, + shouldHugType, + printJSDocType + }; + } +}); +var require_type_parameters = __commonJS2({ + "src/language-js/print/type-parameters.js"(exports2, module2) { + "use strict"; + var { + printDanglingComments + } = require_comments(); + var { + builders: { + join, + line, + hardline, + softline, + group, + indent, + ifBreak + } + } = require("./doc.js"); + var { + isTestCall, + hasComment, + CommentCheckFlags, + isTSXFile, + shouldPrintComma, + getFunctionParameters, + isObjectType + } = require_utils7(); + var { + createGroupIdMapper + } = require_util(); + var { + shouldHugType + } = require_type_annotation(); + var { + isArrowFunctionVariableDeclarator + } = require_assignment(); + var getTypeParametersGroupId = createGroupIdMapper("typeParameters"); + function printTypeParameters(path, options, print, paramsKey) { + const node = path.getValue(); + if (!node[paramsKey]) { + return ""; + } + if (!Array.isArray(node[paramsKey])) { + return print(paramsKey); + } + const grandparent = path.getNode(2); + const isParameterInTestCall = grandparent && isTestCall(grandparent); + const isArrowFunctionVariable = path.match((node2) => !(node2[paramsKey].length === 1 && isObjectType(node2[paramsKey][0])), void 0, (node2, name) => name === "typeAnnotation", (node2) => node2.type === "Identifier", isArrowFunctionVariableDeclarator); + const shouldInline = !isArrowFunctionVariable && (isParameterInTestCall || node[paramsKey].length === 0 || node[paramsKey].length === 1 && (node[paramsKey][0].type === "NullableTypeAnnotation" || shouldHugType(node[paramsKey][0]))); + if (shouldInline) { + return ["<", join(", ", path.map(print, paramsKey)), printDanglingCommentsForInline(path, options), ">"]; + } + const trailingComma = node.type === "TSTypeParameterInstantiation" ? "" : getFunctionParameters(node).length === 1 && isTSXFile(options) && !node[paramsKey][0].constraint && path.getParentNode().type === "ArrowFunctionExpression" ? "," : shouldPrintComma(options, "all") ? ifBreak(",") : ""; + return group(["<", indent([softline, join([",", line], path.map(print, paramsKey))]), trailingComma, softline, ">"], { + id: getTypeParametersGroupId(node) + }); + } + function printDanglingCommentsForInline(path, options) { + const node = path.getValue(); + if (!hasComment(node, CommentCheckFlags.Dangling)) { + return ""; + } + const hasOnlyBlockComments = !hasComment(node, CommentCheckFlags.Line); + const printed = printDanglingComments(path, options, hasOnlyBlockComments); + if (hasOnlyBlockComments) { + return printed; + } + return [printed, hardline]; + } + function printTypeParameter(path, options, print) { + const node = path.getValue(); + const parts = []; + const parent = path.getParentNode(); + if (parent.type === "TSMappedType") { + parts.push("[", print("name")); + if (node.constraint) { + parts.push(" in ", print("constraint")); + } + if (parent.nameType) { + parts.push(" as ", path.callParent(() => print("nameType"))); + } + parts.push("]"); + return parts; + } + if (node.variance) { + parts.push(print("variance")); + } + if (node.in) { + parts.push("in "); + } + if (node.out) { + parts.push("out "); + } + parts.push(print("name")); + if (node.bound) { + parts.push(": ", print("bound")); + } + if (node.constraint) { + parts.push(" extends ", print("constraint")); + } + if (node.default) { + parts.push(" = ", print("default")); + } + return parts; + } + module2.exports = { + printTypeParameter, + printTypeParameters, + getTypeParametersGroupId + }; + } +}); +var require_property = __commonJS2({ + "src/language-js/print/property.js"(exports2, module2) { + "use strict"; + var { + printComments + } = require_comments(); + var { + printString, + printNumber + } = require_util(); + var { + isNumericLiteral, + isSimpleNumber, + isStringLiteral, + isStringPropSafeToUnquote, + rawText + } = require_utils7(); + var { + printAssignment + } = require_assignment(); + var needsQuoteProps = /* @__PURE__ */ new WeakMap(); + function printPropertyKey(path, options, print) { + const node = path.getNode(); + if (node.computed) { + return ["[", print("key"), "]"]; + } + const parent = path.getParentNode(); + const { + key + } = node; + if (node.type === "ClassPrivateProperty" && key.type === "Identifier") { + return ["#", print("key")]; + } + if (options.quoteProps === "consistent" && !needsQuoteProps.has(parent)) { + const objectHasStringProp = (parent.properties || parent.body || parent.members).some((prop) => !prop.computed && prop.key && isStringLiteral(prop.key) && !isStringPropSafeToUnquote(prop, options)); + needsQuoteProps.set(parent, objectHasStringProp); + } + if ((key.type === "Identifier" || isNumericLiteral(key) && isSimpleNumber(printNumber(rawText(key))) && String(key.value) === printNumber(rawText(key)) && !(options.parser === "typescript" || options.parser === "babel-ts")) && (options.parser === "json" || options.quoteProps === "consistent" && needsQuoteProps.get(parent))) { + const prop = printString(JSON.stringify(key.type === "Identifier" ? key.name : key.value.toString()), options); + return path.call((keyPath) => printComments(keyPath, prop, options), "key"); + } + if (isStringPropSafeToUnquote(node, options) && (options.quoteProps === "as-needed" || options.quoteProps === "consistent" && !needsQuoteProps.get(parent))) { + return path.call((keyPath) => printComments(keyPath, /^\d/.test(key.value) ? printNumber(key.value) : key.value, options), "key"); + } + return print("key"); + } + function printProperty(path, options, print) { + const node = path.getValue(); + if (node.shorthand) { + return print("value"); + } + return printAssignment(path, options, print, printPropertyKey(path, options, print), ":", "value"); + } + module2.exports = { + printProperty, + printPropertyKey + }; + } +}); +var require_function = __commonJS2({ + "src/language-js/print/function.js"(exports2, module2) { + "use strict"; + var assert = require("assert"); + var { + printDanglingComments, + printCommentsSeparately + } = require_comments(); + var getLast = require_get_last(); + var { + getNextNonSpaceNonCommentCharacterIndex + } = require_util(); + var { + builders: { + line, + softline, + group, + indent, + ifBreak, + hardline, + join, + indentIfBreak + }, + utils: { + removeLines, + willBreak + } + } = require("./doc.js"); + var { + ArgExpansionBailout + } = require_errors(); + var { + getFunctionParameters, + hasLeadingOwnLineComment, + isFlowAnnotationComment, + isJsxNode, + isTemplateOnItsOwnLine, + shouldPrintComma, + startsWithNoLookaheadToken, + isBinaryish, + isLineComment, + hasComment, + getComments, + CommentCheckFlags, + isCallLikeExpression, + isCallExpression, + getCallArguments, + hasNakedLeftSide, + getLeftSide + } = require_utils7(); + var { + locEnd + } = require_loc(); + var { + printFunctionParameters, + shouldGroupFunctionParameters + } = require_function_parameters(); + var { + printPropertyKey + } = require_property(); + var { + printFunctionTypeParameters + } = require_misc(); + function printFunction(path, print, options, args) { + const node = path.getValue(); + let expandArg = false; + if ((node.type === "FunctionDeclaration" || node.type === "FunctionExpression") && args && args.expandLastArg) { + const parent = path.getParentNode(); + if (isCallExpression(parent) && getCallArguments(parent).length > 1) { + expandArg = true; + } + } + const parts = []; + if (node.type === "TSDeclareFunction" && node.declare) { + parts.push("declare "); + } + if (node.async) { + parts.push("async "); + } + if (node.generator) { + parts.push("function* "); + } else { + parts.push("function "); + } + if (node.id) { + parts.push(print("id")); + } + const parametersDoc = printFunctionParameters(path, print, options, expandArg); + const returnTypeDoc = printReturnType(path, print, options); + const shouldGroupParameters = shouldGroupFunctionParameters(node, returnTypeDoc); + parts.push(printFunctionTypeParameters(path, options, print), group([shouldGroupParameters ? group(parametersDoc) : parametersDoc, returnTypeDoc]), node.body ? " " : "", print("body")); + if (options.semi && (node.declare || !node.body)) { + parts.push(";"); + } + return parts; + } + function printMethod(path, options, print) { + const node = path.getNode(); + const { + kind + } = node; + const value = node.value || node; + const parts = []; + if (!kind || kind === "init" || kind === "method" || kind === "constructor") { + if (value.async) { + parts.push("async "); + } + } else { + assert.ok(kind === "get" || kind === "set"); + parts.push(kind, " "); + } + if (value.generator) { + parts.push("*"); + } + parts.push(printPropertyKey(path, options, print), node.optional || node.key.optional ? "?" : ""); + if (node === value) { + parts.push(printMethodInternal(path, options, print)); + } else if (value.type === "FunctionExpression") { + parts.push(path.call((path2) => printMethodInternal(path2, options, print), "value")); + } else { + parts.push(print("value")); + } + return parts; + } + function printMethodInternal(path, options, print) { + const node = path.getNode(); + const parametersDoc = printFunctionParameters(path, print, options); + const returnTypeDoc = printReturnType(path, print, options); + const shouldGroupParameters = shouldGroupFunctionParameters(node, returnTypeDoc); + const parts = [printFunctionTypeParameters(path, options, print), group([shouldGroupParameters ? group(parametersDoc) : parametersDoc, returnTypeDoc])]; + if (node.body) { + parts.push(" ", print("body")); + } else { + parts.push(options.semi ? ";" : ""); + } + return parts; + } + function printArrowFunctionSignature(path, options, print, args) { + const node = path.getValue(); + const parts = []; + if (node.async) { + parts.push("async "); + } + if (shouldPrintParamsWithoutParens(path, options)) { + parts.push(print(["params", 0])); + } else { + const expandArg = args && (args.expandLastArg || args.expandFirstArg); + let returnTypeDoc = printReturnType(path, print, options); + if (expandArg) { + if (willBreak(returnTypeDoc)) { + throw new ArgExpansionBailout(); + } + returnTypeDoc = group(removeLines(returnTypeDoc)); + } + parts.push(group([printFunctionParameters(path, print, options, expandArg, true), returnTypeDoc])); + } + const dangling = printDanglingComments(path, options, true, (comment) => { + const nextCharacter = getNextNonSpaceNonCommentCharacterIndex(options.originalText, comment, locEnd); + return nextCharacter !== false && options.originalText.slice(nextCharacter, nextCharacter + 2) === "=>"; + }); + if (dangling) { + parts.push(" ", dangling); + } + return parts; + } + function printArrowChain(path, args, signatures, shouldBreak, bodyDoc, tailNode) { + const name = path.getName(); + const parent = path.getParentNode(); + const isCallee = isCallLikeExpression(parent) && name === "callee"; + const isAssignmentRhs = Boolean(args && args.assignmentLayout); + const shouldPutBodyOnSeparateLine = tailNode.body.type !== "BlockStatement" && tailNode.body.type !== "ObjectExpression" && tailNode.body.type !== "SequenceExpression"; + const shouldBreakBeforeChain = isCallee && shouldPutBodyOnSeparateLine || args && args.assignmentLayout === "chain-tail-arrow-chain"; + const groupId = Symbol("arrow-chain"); + if (tailNode.body.type === "SequenceExpression") { + bodyDoc = group(["(", indent([softline, bodyDoc]), softline, ")"]); + } + return group([group(indent([isCallee || isAssignmentRhs ? softline : "", group(join([" =>", line], signatures), { + shouldBreak + })]), { + id: groupId, + shouldBreak: shouldBreakBeforeChain + }), " =>", indentIfBreak(shouldPutBodyOnSeparateLine ? indent([line, bodyDoc]) : [" ", bodyDoc], { + groupId + }), isCallee ? ifBreak(softline, "", { + groupId + }) : ""]); + } + function printArrowFunction(path, options, print, args) { + let node = path.getValue(); + const signatures = []; + const body = []; + let chainShouldBreak = false; + (function rec() { + const doc2 = printArrowFunctionSignature(path, options, print, args); + if (signatures.length === 0) { + signatures.push(doc2); + } else { + const { + leading, + trailing + } = printCommentsSeparately(path, options); + signatures.push([leading, doc2]); + body.unshift(trailing); + } + chainShouldBreak = chainShouldBreak || node.returnType && getFunctionParameters(node).length > 0 || node.typeParameters || getFunctionParameters(node).some((param) => param.type !== "Identifier"); + if (node.body.type !== "ArrowFunctionExpression" || args && args.expandLastArg) { + body.unshift(print("body", args)); + } else { + node = node.body; + path.call(rec, "body"); + } + })(); + if (signatures.length > 1) { + return printArrowChain(path, args, signatures, chainShouldBreak, body, node); + } + const parts = signatures; + parts.push(" =>"); + if (!hasLeadingOwnLineComment(options.originalText, node.body) && (node.body.type === "ArrayExpression" || node.body.type === "ObjectExpression" || node.body.type === "BlockStatement" || isJsxNode(node.body) || isTemplateOnItsOwnLine(node.body, options.originalText) || node.body.type === "ArrowFunctionExpression" || node.body.type === "DoExpression")) { + return group([...parts, " ", body]); + } + if (node.body.type === "SequenceExpression") { + return group([...parts, group([" (", indent([softline, body]), softline, ")"])]); + } + const shouldAddSoftLine = (args && args.expandLastArg || path.getParentNode().type === "JSXExpressionContainer") && !hasComment(node); + const printTrailingComma = args && args.expandLastArg && shouldPrintComma(options, "all"); + const shouldAddParens = node.body.type === "ConditionalExpression" && !startsWithNoLookaheadToken(node.body, false); + return group([...parts, group([indent([line, shouldAddParens ? ifBreak("", "(") : "", body, shouldAddParens ? ifBreak("", ")") : ""]), shouldAddSoftLine ? [ifBreak(printTrailingComma ? "," : ""), softline] : ""])]); + } + function canPrintParamsWithoutParens(node) { + const parameters = getFunctionParameters(node); + return parameters.length === 1 && !node.typeParameters && !hasComment(node, CommentCheckFlags.Dangling) && parameters[0].type === "Identifier" && !parameters[0].typeAnnotation && !hasComment(parameters[0]) && !parameters[0].optional && !node.predicate && !node.returnType; + } + function shouldPrintParamsWithoutParens(path, options) { + if (options.arrowParens === "always") { + return false; + } + if (options.arrowParens === "avoid") { + const node = path.getValue(); + return canPrintParamsWithoutParens(node); + } + return false; + } + function printReturnType(path, print, options) { + const node = path.getValue(); + const returnType = print("returnType"); + if (node.returnType && isFlowAnnotationComment(options.originalText, node.returnType)) { + return [" /*: ", returnType, " */"]; + } + const parts = [returnType]; + if (node.returnType && node.returnType.typeAnnotation) { + parts.unshift(": "); + } + if (node.predicate) { + parts.push(node.returnType ? " " : ": ", print("predicate")); + } + return parts; + } + function printReturnOrThrowArgument(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + const parts = []; + if (node.argument) { + if (returnArgumentHasLeadingComment(options, node.argument)) { + parts.push([" (", indent([hardline, print("argument")]), hardline, ")"]); + } else if (isBinaryish(node.argument) || node.argument.type === "SequenceExpression") { + parts.push(group([ifBreak(" (", " "), indent([softline, print("argument")]), softline, ifBreak(")")])); + } else { + parts.push(" ", print("argument")); + } + } + const comments = getComments(node); + const lastComment = getLast(comments); + const isLastCommentLine = lastComment && isLineComment(lastComment); + if (isLastCommentLine) { + parts.push(semi); + } + if (hasComment(node, CommentCheckFlags.Dangling)) { + parts.push(" ", printDanglingComments(path, options, true)); + } + if (!isLastCommentLine) { + parts.push(semi); + } + return parts; + } + function printReturnStatement(path, options, print) { + return ["return", printReturnOrThrowArgument(path, options, print)]; + } + function printThrowStatement(path, options, print) { + return ["throw", printReturnOrThrowArgument(path, options, print)]; + } + function returnArgumentHasLeadingComment(options, argument) { + if (hasLeadingOwnLineComment(options.originalText, argument)) { + return true; + } + if (hasNakedLeftSide(argument)) { + let leftMost = argument; + let newLeftMost; + while (newLeftMost = getLeftSide(leftMost)) { + leftMost = newLeftMost; + if (hasLeadingOwnLineComment(options.originalText, leftMost)) { + return true; + } + } + } + return false; + } + module2.exports = { + printFunction, + printArrowFunction, + printMethod, + printReturnStatement, + printThrowStatement, + printMethodInternal, + shouldPrintParamsWithoutParens + }; + } +}); +var require_decorators = __commonJS2({ + "src/language-js/print/decorators.js"(exports2, module2) { + "use strict"; + var { + isNonEmptyArray, + hasNewline + } = require_util(); + var { + builders: { + line, + hardline, + join, + breakParent, + group + } + } = require("./doc.js"); + var { + locStart, + locEnd + } = require_loc(); + var { + getParentExportDeclaration + } = require_utils7(); + function printClassMemberDecorators(path, options, print) { + const node = path.getValue(); + return group([join(line, path.map(print, "decorators")), hasNewlineBetweenOrAfterDecorators(node, options) ? hardline : line]); + } + function printDecoratorsBeforeExport(path, options, print) { + return [join(hardline, path.map(print, "declaration", "decorators")), hardline]; + } + function printDecorators(path, options, print) { + const node = path.getValue(); + const { + decorators + } = node; + if (!isNonEmptyArray(decorators) || hasDecoratorsBeforeExport(path.getParentNode())) { + return; + } + const shouldBreak = node.type === "ClassExpression" || node.type === "ClassDeclaration" || hasNewlineBetweenOrAfterDecorators(node, options); + return [getParentExportDeclaration(path) ? hardline : shouldBreak ? breakParent : "", join(line, path.map(print, "decorators")), line]; + } + function hasNewlineBetweenOrAfterDecorators(node, options) { + return node.decorators.some((decorator) => hasNewline(options.originalText, locEnd(decorator))); + } + function hasDecoratorsBeforeExport(node) { + if (node.type !== "ExportDefaultDeclaration" && node.type !== "ExportNamedDeclaration" && node.type !== "DeclareExportDeclaration") { + return false; + } + const decorators = node.declaration && node.declaration.decorators; + return isNonEmptyArray(decorators) && locStart(node, { + ignoreDecorators: true + }) > locStart(decorators[0]); + } + module2.exports = { + printDecorators, + printClassMemberDecorators, + printDecoratorsBeforeExport, + hasDecoratorsBeforeExport + }; + } +}); +var require_class = __commonJS2({ + "src/language-js/print/class.js"(exports2, module2) { + "use strict"; + var { + isNonEmptyArray, + createGroupIdMapper + } = require_util(); + var { + printComments, + printDanglingComments + } = require_comments(); + var { + builders: { + join, + line, + hardline, + softline, + group, + indent, + ifBreak + } + } = require("./doc.js"); + var { + hasComment, + CommentCheckFlags + } = require_utils7(); + var { + getTypeParametersGroupId + } = require_type_parameters(); + var { + printMethod + } = require_function(); + var { + printOptionalToken, + printTypeAnnotation, + printDefiniteToken + } = require_misc(); + var { + printPropertyKey + } = require_property(); + var { + printAssignment + } = require_assignment(); + var { + printClassMemberDecorators + } = require_decorators(); + function printClass(path, options, print) { + const node = path.getValue(); + const parts = []; + if (node.declare) { + parts.push("declare "); + } + if (node.abstract) { + parts.push("abstract "); + } + parts.push("class"); + const groupMode = node.id && hasComment(node.id, CommentCheckFlags.Trailing) || node.typeParameters && hasComment(node.typeParameters, CommentCheckFlags.Trailing) || node.superClass && hasComment(node.superClass) || isNonEmptyArray(node.extends) || isNonEmptyArray(node.mixins) || isNonEmptyArray(node.implements); + const partsGroup = []; + const extendsParts = []; + if (node.id) { + partsGroup.push(" ", print("id")); + } + partsGroup.push(print("typeParameters")); + if (node.superClass) { + const printed = [printSuperClass(path, options, print), print("superTypeParameters")]; + const printedWithComments = path.call((superClass) => ["extends ", printComments(superClass, printed, options)], "superClass"); + if (groupMode) { + extendsParts.push(line, group(printedWithComments)); + } else { + extendsParts.push(" ", printedWithComments); + } + } else { + extendsParts.push(printList(path, options, print, "extends")); + } + extendsParts.push(printList(path, options, print, "mixins"), printList(path, options, print, "implements")); + if (groupMode) { + let printedPartsGroup; + if (shouldIndentOnlyHeritageClauses(node)) { + printedPartsGroup = [...partsGroup, indent(extendsParts)]; + } else { + printedPartsGroup = indent([...partsGroup, extendsParts]); + } + parts.push(group(printedPartsGroup, { + id: getHeritageGroupId(node) + })); + } else { + parts.push(...partsGroup, ...extendsParts); + } + parts.push(" ", print("body")); + return parts; + } + var getHeritageGroupId = createGroupIdMapper("heritageGroup"); + function printHardlineAfterHeritage(node) { + return ifBreak(hardline, "", { + groupId: getHeritageGroupId(node) + }); + } + function hasMultipleHeritage(node) { + return ["superClass", "extends", "mixins", "implements"].filter((key) => Boolean(node[key])).length > 1; + } + function shouldIndentOnlyHeritageClauses(node) { + return node.typeParameters && !hasComment(node.typeParameters, CommentCheckFlags.Trailing | CommentCheckFlags.Line) && !hasMultipleHeritage(node); + } + function printList(path, options, print, listName) { + const node = path.getValue(); + if (!isNonEmptyArray(node[listName])) { + return ""; + } + const printedLeadingComments = printDanglingComments(path, options, true, ({ + marker + }) => marker === listName); + return [shouldIndentOnlyHeritageClauses(node) ? ifBreak(" ", line, { + groupId: getTypeParametersGroupId(node.typeParameters) + }) : line, printedLeadingComments, printedLeadingComments && hardline, listName, group(indent([line, join([",", line], path.map(print, listName))]))]; + } + function printSuperClass(path, options, print) { + const printed = print("superClass"); + const parent = path.getParentNode(); + if (parent.type === "AssignmentExpression") { + return group(ifBreak(["(", indent([softline, printed]), softline, ")"], printed)); + } + return printed; + } + function printClassMethod(path, options, print) { + const node = path.getValue(); + const parts = []; + if (isNonEmptyArray(node.decorators)) { + parts.push(printClassMemberDecorators(path, options, print)); + } + if (node.accessibility) { + parts.push(node.accessibility + " "); + } + if (node.readonly) { + parts.push("readonly "); + } + if (node.declare) { + parts.push("declare "); + } + if (node.static) { + parts.push("static "); + } + if (node.type === "TSAbstractMethodDefinition" || node.abstract) { + parts.push("abstract "); + } + if (node.override) { + parts.push("override "); + } + parts.push(printMethod(path, options, print)); + return parts; + } + function printClassProperty(path, options, print) { + const node = path.getValue(); + const parts = []; + const semi = options.semi ? ";" : ""; + if (isNonEmptyArray(node.decorators)) { + parts.push(printClassMemberDecorators(path, options, print)); + } + if (node.accessibility) { + parts.push(node.accessibility + " "); + } + if (node.declare) { + parts.push("declare "); + } + if (node.static) { + parts.push("static "); + } + if (node.type === "TSAbstractPropertyDefinition" || node.abstract) { + parts.push("abstract "); + } + if (node.override) { + parts.push("override "); + } + if (node.readonly) { + parts.push("readonly "); + } + if (node.variance) { + parts.push(print("variance")); + } + if (node.type === "ClassAccessorProperty") { + parts.push("accessor "); + } + parts.push(printPropertyKey(path, options, print), printOptionalToken(path), printDefiniteToken(path), printTypeAnnotation(path, options, print)); + return [printAssignment(path, options, print, parts, " =", "value"), semi]; + } + module2.exports = { + printClass, + printClassMethod, + printClassProperty, + printHardlineAfterHeritage + }; + } +}); +var require_interface = __commonJS2({ + "src/language-js/print/interface.js"(exports2, module2) { + "use strict"; + var { + isNonEmptyArray + } = require_util(); + var { + builders: { + join, + line, + group, + indent, + ifBreak + } + } = require("./doc.js"); + var { + hasComment, + identity, + CommentCheckFlags + } = require_utils7(); + var { + getTypeParametersGroupId + } = require_type_parameters(); + var { + printTypeScriptModifiers + } = require_misc(); + function printInterface(path, options, print) { + const node = path.getValue(); + const parts = []; + if (node.declare) { + parts.push("declare "); + } + if (node.type === "TSInterfaceDeclaration") { + parts.push(node.abstract ? "abstract " : "", printTypeScriptModifiers(path, options, print)); + } + parts.push("interface"); + const partsGroup = []; + const extendsParts = []; + if (node.type !== "InterfaceTypeAnnotation") { + partsGroup.push(" ", print("id"), print("typeParameters")); + } + const shouldIndentOnlyHeritageClauses = node.typeParameters && !hasComment(node.typeParameters, CommentCheckFlags.Trailing | CommentCheckFlags.Line); + if (isNonEmptyArray(node.extends)) { + extendsParts.push(shouldIndentOnlyHeritageClauses ? ifBreak(" ", line, { + groupId: getTypeParametersGroupId(node.typeParameters) + }) : line, "extends ", (node.extends.length === 1 ? identity : indent)(join([",", line], path.map(print, "extends")))); + } + if (node.id && hasComment(node.id, CommentCheckFlags.Trailing) || isNonEmptyArray(node.extends)) { + if (shouldIndentOnlyHeritageClauses) { + parts.push(group([...partsGroup, indent(extendsParts)])); + } else { + parts.push(group(indent([...partsGroup, ...extendsParts]))); + } + } else { + parts.push(...partsGroup, ...extendsParts); + } + parts.push(" ", print("body")); + return group(parts); + } + module2.exports = { + printInterface + }; + } +}); +var require_module = __commonJS2({ + "src/language-js/print/module.js"(exports2, module2) { + "use strict"; + var { + isNonEmptyArray + } = require_util(); + var { + builders: { + softline, + group, + indent, + join, + line, + ifBreak, + hardline + } + } = require("./doc.js"); + var { + printDanglingComments + } = require_comments(); + var { + hasComment, + CommentCheckFlags, + shouldPrintComma, + needsHardlineAfterDanglingComment, + isStringLiteral, + rawText + } = require_utils7(); + var { + locStart, + hasSameLoc + } = require_loc(); + var { + hasDecoratorsBeforeExport, + printDecoratorsBeforeExport + } = require_decorators(); + function printImportDeclaration(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + const parts = []; + const { + importKind + } = node; + parts.push("import"); + if (importKind && importKind !== "value") { + parts.push(" ", importKind); + } + parts.push(printModuleSpecifiers(path, options, print), printModuleSource(path, options, print), printImportAssertions(path, options, print), semi); + return parts; + } + function printExportDeclaration(path, options, print) { + const node = path.getValue(); + const parts = []; + if (hasDecoratorsBeforeExport(node)) { + parts.push(printDecoratorsBeforeExport(path, options, print)); + } + const { + type, + exportKind, + declaration + } = node; + parts.push("export"); + const isDefaultExport = node.default || type === "ExportDefaultDeclaration"; + if (isDefaultExport) { + parts.push(" default"); + } + if (hasComment(node, CommentCheckFlags.Dangling)) { + parts.push(" ", printDanglingComments(path, options, true)); + if (needsHardlineAfterDanglingComment(node)) { + parts.push(hardline); + } + } + if (declaration) { + parts.push(" ", print("declaration")); + } else { + parts.push(exportKind === "type" ? " type" : "", printModuleSpecifiers(path, options, print), printModuleSource(path, options, print), printImportAssertions(path, options, print)); + } + if (shouldExportDeclarationPrintSemi(node, options)) { + parts.push(";"); + } + return parts; + } + function printExportAllDeclaration(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + const parts = []; + const { + exportKind, + exported + } = node; + parts.push("export"); + if (exportKind === "type") { + parts.push(" type"); + } + parts.push(" *"); + if (exported) { + parts.push(" as ", print("exported")); + } + parts.push(printModuleSource(path, options, print), printImportAssertions(path, options, print), semi); + return parts; + } + function shouldExportDeclarationPrintSemi(node, options) { + if (!options.semi) { + return false; + } + const { + type, + declaration + } = node; + const isDefaultExport = node.default || type === "ExportDefaultDeclaration"; + if (!declaration) { + return true; + } + const { + type: declarationType + } = declaration; + if (isDefaultExport && declarationType !== "ClassDeclaration" && declarationType !== "FunctionDeclaration" && declarationType !== "TSInterfaceDeclaration" && declarationType !== "DeclareClass" && declarationType !== "DeclareFunction" && declarationType !== "TSDeclareFunction" && declarationType !== "EnumDeclaration") { + return true; + } + return false; + } + function printModuleSource(path, options, print) { + const node = path.getValue(); + if (!node.source) { + return ""; + } + const parts = []; + if (!shouldNotPrintSpecifiers(node, options)) { + parts.push(" from"); + } + parts.push(" ", print("source")); + return parts; + } + function printModuleSpecifiers(path, options, print) { + const node = path.getValue(); + if (shouldNotPrintSpecifiers(node, options)) { + return ""; + } + const parts = [" "]; + if (isNonEmptyArray(node.specifiers)) { + const standaloneSpecifiers = []; + const groupedSpecifiers = []; + path.each(() => { + const specifierType = path.getValue().type; + if (specifierType === "ExportNamespaceSpecifier" || specifierType === "ExportDefaultSpecifier" || specifierType === "ImportNamespaceSpecifier" || specifierType === "ImportDefaultSpecifier") { + standaloneSpecifiers.push(print()); + } else if (specifierType === "ExportSpecifier" || specifierType === "ImportSpecifier") { + groupedSpecifiers.push(print()); + } else { + throw new Error(`Unknown specifier type ${JSON.stringify(specifierType)}`); + } + }, "specifiers"); + parts.push(join(", ", standaloneSpecifiers)); + if (groupedSpecifiers.length > 0) { + if (standaloneSpecifiers.length > 0) { + parts.push(", "); + } + const canBreak = groupedSpecifiers.length > 1 || standaloneSpecifiers.length > 0 || node.specifiers.some((node2) => hasComment(node2)); + if (canBreak) { + parts.push(group(["{", indent([options.bracketSpacing ? line : softline, join([",", line], groupedSpecifiers)]), ifBreak(shouldPrintComma(options) ? "," : ""), options.bracketSpacing ? line : softline, "}"])); + } else { + parts.push(["{", options.bracketSpacing ? " " : "", ...groupedSpecifiers, options.bracketSpacing ? " " : "", "}"]); + } + } + } else { + parts.push("{}"); + } + return parts; + } + function shouldNotPrintSpecifiers(node, options) { + const { + type, + importKind, + source, + specifiers + } = node; + if (type !== "ImportDeclaration" || isNonEmptyArray(specifiers) || importKind === "type") { + return false; + } + return !/{\s*}/.test(options.originalText.slice(locStart(node), locStart(source))); + } + function printImportAssertions(path, options, print) { + const node = path.getNode(); + if (isNonEmptyArray(node.assertions)) { + return [" assert {", options.bracketSpacing ? " " : "", join(", ", path.map(print, "assertions")), options.bracketSpacing ? " " : "", "}"]; + } + return ""; + } + function printModuleSpecifier(path, options, print) { + const node = path.getNode(); + const { + type + } = node; + const parts = []; + const kind = type === "ImportSpecifier" ? node.importKind : node.exportKind; + if (kind && kind !== "value") { + parts.push(kind, " "); + } + const isImport = type.startsWith("Import"); + const leftSideProperty = isImport ? "imported" : "local"; + const rightSideProperty = isImport ? "local" : "exported"; + const leftSideNode = node[leftSideProperty]; + const rightSideNode = node[rightSideProperty]; + let left = ""; + let right = ""; + if (type === "ExportNamespaceSpecifier" || type === "ImportNamespaceSpecifier") { + left = "*"; + } else if (leftSideNode) { + left = print(leftSideProperty); + } + if (rightSideNode && !isShorthandSpecifier(node)) { + right = print(rightSideProperty); + } + parts.push(left, left && right ? " as " : "", right); + return parts; + } + function isShorthandSpecifier(specifier) { + if (specifier.type !== "ImportSpecifier" && specifier.type !== "ExportSpecifier") { + return false; + } + const { + local, + [specifier.type === "ImportSpecifier" ? "imported" : "exported"]: importedOrExported + } = specifier; + if (local.type !== importedOrExported.type || !hasSameLoc(local, importedOrExported)) { + return false; + } + if (isStringLiteral(local)) { + return local.value === importedOrExported.value && rawText(local) === rawText(importedOrExported); + } + switch (local.type) { + case "Identifier": + return local.name === importedOrExported.name; + default: + return false; + } + } + module2.exports = { + printImportDeclaration, + printExportDeclaration, + printExportAllDeclaration, + printModuleSpecifier + }; + } +}); +var require_object = __commonJS2({ + "src/language-js/print/object.js"(exports2, module2) { + "use strict"; + var { + printDanglingComments + } = require_comments(); + var { + builders: { + line, + softline, + group, + indent, + ifBreak, + hardline + } + } = require("./doc.js"); + var { + getLast, + hasNewlineInRange, + hasNewline, + isNonEmptyArray + } = require_util(); + var { + shouldPrintComma, + hasComment, + getComments, + CommentCheckFlags, + isNextLineEmpty + } = require_utils7(); + var { + locStart, + locEnd + } = require_loc(); + var { + printOptionalToken, + printTypeAnnotation + } = require_misc(); + var { + shouldHugFunctionParameters + } = require_function_parameters(); + var { + shouldHugType + } = require_type_annotation(); + var { + printHardlineAfterHeritage + } = require_class(); + function printObject(path, options, print) { + const semi = options.semi ? ";" : ""; + const node = path.getValue(); + let propertiesField; + if (node.type === "TSTypeLiteral") { + propertiesField = "members"; + } else if (node.type === "TSInterfaceBody") { + propertiesField = "body"; + } else { + propertiesField = "properties"; + } + const isTypeAnnotation = node.type === "ObjectTypeAnnotation"; + const fields = [propertiesField]; + if (isTypeAnnotation) { + fields.push("indexers", "callProperties", "internalSlots"); + } + const firstProperty = fields.map((field) => node[field][0]).sort((a, b) => locStart(a) - locStart(b))[0]; + const parent = path.getParentNode(0); + const isFlowInterfaceLikeBody = isTypeAnnotation && parent && (parent.type === "InterfaceDeclaration" || parent.type === "DeclareInterface" || parent.type === "DeclareClass") && path.getName() === "body"; + const shouldBreak = node.type === "TSInterfaceBody" || isFlowInterfaceLikeBody || node.type === "ObjectPattern" && parent.type !== "FunctionDeclaration" && parent.type !== "FunctionExpression" && parent.type !== "ArrowFunctionExpression" && parent.type !== "ObjectMethod" && parent.type !== "ClassMethod" && parent.type !== "ClassPrivateMethod" && parent.type !== "AssignmentPattern" && parent.type !== "CatchClause" && node.properties.some((property) => property.value && (property.value.type === "ObjectPattern" || property.value.type === "ArrayPattern")) || node.type !== "ObjectPattern" && firstProperty && hasNewlineInRange(options.originalText, locStart(node), locStart(firstProperty)); + const separator = isFlowInterfaceLikeBody ? ";" : node.type === "TSInterfaceBody" || node.type === "TSTypeLiteral" ? ifBreak(semi, ";") : ","; + const leftBrace = node.type === "RecordExpression" ? "#{" : node.exact ? "{|" : "{"; + const rightBrace = node.exact ? "|}" : "}"; + const propsAndLoc = []; + for (const field of fields) { + path.each((childPath) => { + const node2 = childPath.getValue(); + propsAndLoc.push({ + node: node2, + printed: print(), + loc: locStart(node2) + }); + }, field); + } + if (fields.length > 1) { + propsAndLoc.sort((a, b) => a.loc - b.loc); + } + let separatorParts = []; + const props = propsAndLoc.map((prop) => { + const result = [...separatorParts, group(prop.printed)]; + separatorParts = [separator, line]; + if ((prop.node.type === "TSPropertySignature" || prop.node.type === "TSMethodSignature" || prop.node.type === "TSConstructSignatureDeclaration") && hasComment(prop.node, CommentCheckFlags.PrettierIgnore)) { + separatorParts.shift(); + } + if (isNextLineEmpty(prop.node, options)) { + separatorParts.push(hardline); + } + return result; + }); + if (node.inexact) { + let printed; + if (hasComment(node, CommentCheckFlags.Dangling)) { + const hasLineComments = hasComment(node, CommentCheckFlags.Line); + const printedDanglingComments = printDanglingComments(path, options, true); + printed = [printedDanglingComments, hasLineComments || hasNewline(options.originalText, locEnd(getLast(getComments(node)))) ? hardline : line, "..."]; + } else { + printed = ["..."]; + } + props.push([...separatorParts, ...printed]); + } + const lastElem = getLast(node[propertiesField]); + const canHaveTrailingSeparator = !(node.inexact || lastElem && lastElem.type === "RestElement" || lastElem && (lastElem.type === "TSPropertySignature" || lastElem.type === "TSCallSignatureDeclaration" || lastElem.type === "TSMethodSignature" || lastElem.type === "TSConstructSignatureDeclaration") && hasComment(lastElem, CommentCheckFlags.PrettierIgnore)); + let content; + if (props.length === 0) { + if (!hasComment(node, CommentCheckFlags.Dangling)) { + return [leftBrace, rightBrace, printTypeAnnotation(path, options, print)]; + } + content = group([leftBrace, printDanglingComments(path, options), softline, rightBrace, printOptionalToken(path), printTypeAnnotation(path, options, print)]); + } else { + content = [isFlowInterfaceLikeBody && isNonEmptyArray(node.properties) ? printHardlineAfterHeritage(parent) : "", leftBrace, indent([options.bracketSpacing ? line : softline, ...props]), ifBreak(canHaveTrailingSeparator && (separator !== "," || shouldPrintComma(options)) ? separator : ""), options.bracketSpacing ? line : softline, rightBrace, printOptionalToken(path), printTypeAnnotation(path, options, print)]; + } + if (path.match((node2) => node2.type === "ObjectPattern" && !node2.decorators, (node2, name, number) => shouldHugFunctionParameters(node2) && (name === "params" || name === "parameters" || name === "this" || name === "rest") && number === 0) || path.match(shouldHugType, (node2, name) => name === "typeAnnotation", (node2, name) => name === "typeAnnotation", (node2, name, number) => shouldHugFunctionParameters(node2) && (name === "params" || name === "parameters" || name === "this" || name === "rest") && number === 0) || !shouldBreak && path.match((node2) => node2.type === "ObjectPattern", (node2) => node2.type === "AssignmentExpression" || node2.type === "VariableDeclarator")) { + return content; + } + return group(content, { + shouldBreak + }); + } + module2.exports = { + printObject + }; + } +}); +var require_flow = __commonJS2({ + "src/language-js/print/flow.js"(exports2, module2) { + "use strict"; + var assert = require("assert"); + var { + printDanglingComments + } = require_comments(); + var { + printString, + printNumber + } = require_util(); + var { + builders: { + hardline, + softline, + group, + indent + } + } = require("./doc.js"); + var { + getParentExportDeclaration, + isFunctionNotation, + isGetterOrSetter, + rawText, + shouldPrintComma + } = require_utils7(); + var { + locStart, + locEnd + } = require_loc(); + var { + printClass + } = require_class(); + var { + printOpaqueType, + printTypeAlias, + printIntersectionType, + printUnionType, + printFunctionType, + printTupleType, + printIndexedAccessType + } = require_type_annotation(); + var { + printInterface + } = require_interface(); + var { + printTypeParameter, + printTypeParameters + } = require_type_parameters(); + var { + printExportDeclaration, + printExportAllDeclaration + } = require_module(); + var { + printArrayItems + } = require_array4(); + var { + printObject + } = require_object(); + var { + printPropertyKey + } = require_property(); + var { + printOptionalToken, + printTypeAnnotation, + printRestSpread + } = require_misc(); + function printFlow(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + const parts = []; + switch (node.type) { + case "DeclareClass": + return printFlowDeclaration(path, printClass(path, options, print)); + case "DeclareFunction": + return printFlowDeclaration(path, ["function ", print("id"), node.predicate ? " " : "", print("predicate"), semi]); + case "DeclareModule": + return printFlowDeclaration(path, ["module ", print("id"), " ", print("body")]); + case "DeclareModuleExports": + return printFlowDeclaration(path, ["module.exports", ": ", print("typeAnnotation"), semi]); + case "DeclareVariable": + return printFlowDeclaration(path, ["var ", print("id"), semi]); + case "DeclareOpaqueType": + return printFlowDeclaration(path, printOpaqueType(path, options, print)); + case "DeclareInterface": + return printFlowDeclaration(path, printInterface(path, options, print)); + case "DeclareTypeAlias": + return printFlowDeclaration(path, printTypeAlias(path, options, print)); + case "DeclareExportDeclaration": + return printFlowDeclaration(path, printExportDeclaration(path, options, print)); + case "DeclareExportAllDeclaration": + return printFlowDeclaration(path, printExportAllDeclaration(path, options, print)); + case "OpaqueType": + return printOpaqueType(path, options, print); + case "TypeAlias": + return printTypeAlias(path, options, print); + case "IntersectionTypeAnnotation": + return printIntersectionType(path, options, print); + case "UnionTypeAnnotation": + return printUnionType(path, options, print); + case "FunctionTypeAnnotation": + return printFunctionType(path, options, print); + case "TupleTypeAnnotation": + return printTupleType(path, options, print); + case "GenericTypeAnnotation": + return [print("id"), printTypeParameters(path, options, print, "typeParameters")]; + case "IndexedAccessType": + case "OptionalIndexedAccessType": + return printIndexedAccessType(path, options, print); + case "TypeAnnotation": + return print("typeAnnotation"); + case "TypeParameter": + return printTypeParameter(path, options, print); + case "TypeofTypeAnnotation": + return ["typeof ", print("argument")]; + case "ExistsTypeAnnotation": + return "*"; + case "EmptyTypeAnnotation": + return "empty"; + case "MixedTypeAnnotation": + return "mixed"; + case "ArrayTypeAnnotation": + return [print("elementType"), "[]"]; + case "BooleanLiteralTypeAnnotation": + return String(node.value); + case "EnumDeclaration": + return ["enum ", print("id"), " ", print("body")]; + case "EnumBooleanBody": + case "EnumNumberBody": + case "EnumStringBody": + case "EnumSymbolBody": { + if (node.type === "EnumSymbolBody" || node.explicitType) { + let type = null; + switch (node.type) { + case "EnumBooleanBody": + type = "boolean"; + break; + case "EnumNumberBody": + type = "number"; + break; + case "EnumStringBody": + type = "string"; + break; + case "EnumSymbolBody": + type = "symbol"; + break; + } + parts.push("of ", type, " "); + } + if (node.members.length === 0 && !node.hasUnknownMembers) { + parts.push(group(["{", printDanglingComments(path, options), softline, "}"])); + } else { + const members = node.members.length > 0 ? [hardline, printArrayItems(path, options, "members", print), node.hasUnknownMembers || shouldPrintComma(options) ? "," : ""] : []; + parts.push(group(["{", indent([...members, ...node.hasUnknownMembers ? [hardline, "..."] : []]), printDanglingComments(path, options, true), hardline, "}"])); + } + return parts; + } + case "EnumBooleanMember": + case "EnumNumberMember": + case "EnumStringMember": + return [print("id"), " = ", typeof node.init === "object" ? print("init") : String(node.init)]; + case "EnumDefaultedMember": + return print("id"); + case "FunctionTypeParam": { + const name = node.name ? print("name") : path.getParentNode().this === node ? "this" : ""; + return [name, printOptionalToken(path), name ? ": " : "", print("typeAnnotation")]; + } + case "InterfaceDeclaration": + case "InterfaceTypeAnnotation": + return printInterface(path, options, print); + case "ClassImplements": + case "InterfaceExtends": + return [print("id"), print("typeParameters")]; + case "NullableTypeAnnotation": + return ["?", print("typeAnnotation")]; + case "Variance": { + const { + kind + } = node; + assert.ok(kind === "plus" || kind === "minus"); + return kind === "plus" ? "+" : "-"; + } + case "ObjectTypeCallProperty": + if (node.static) { + parts.push("static "); + } + parts.push(print("value")); + return parts; + case "ObjectTypeIndexer": { + return [node.static ? "static " : "", node.variance ? print("variance") : "", "[", print("id"), node.id ? ": " : "", print("key"), "]: ", print("value")]; + } + case "ObjectTypeProperty": { + let modifier = ""; + if (node.proto) { + modifier = "proto "; + } else if (node.static) { + modifier = "static "; + } + return [modifier, isGetterOrSetter(node) ? node.kind + " " : "", node.variance ? print("variance") : "", printPropertyKey(path, options, print), printOptionalToken(path), isFunctionNotation(node) ? "" : ": ", print("value")]; + } + case "ObjectTypeAnnotation": + return printObject(path, options, print); + case "ObjectTypeInternalSlot": + return [node.static ? "static " : "", "[[", print("id"), "]]", printOptionalToken(path), node.method ? "" : ": ", print("value")]; + case "ObjectTypeSpreadProperty": + return printRestSpread(path, options, print); + case "QualifiedTypeofIdentifier": + case "QualifiedTypeIdentifier": + return [print("qualification"), ".", print("id")]; + case "StringLiteralTypeAnnotation": + return printString(rawText(node), options); + case "NumberLiteralTypeAnnotation": + assert.strictEqual(typeof node.value, "number"); + case "BigIntLiteralTypeAnnotation": + if (node.extra) { + return printNumber(node.extra.raw); + } + return printNumber(node.raw); + case "TypeCastExpression": { + return ["(", print("expression"), printTypeAnnotation(path, options, print), ")"]; + } + case "TypeParameterDeclaration": + case "TypeParameterInstantiation": { + const printed = printTypeParameters(path, options, print, "params"); + if (options.parser === "flow") { + const start = locStart(node); + const end = locEnd(node); + const commentStartIndex = options.originalText.lastIndexOf("/*", start); + const commentEndIndex = options.originalText.indexOf("*/", end); + if (commentStartIndex !== -1 && commentEndIndex !== -1) { + const comment = options.originalText.slice(commentStartIndex + 2, commentEndIndex).trim(); + if (comment.startsWith("::") && !comment.includes("/*") && !comment.includes("*/")) { + return ["/*:: ", printed, " */"]; + } + } + } + return printed; + } + case "InferredPredicate": + return "%checks"; + case "DeclaredPredicate": + return ["%checks(", print("value"), ")"]; + case "AnyTypeAnnotation": + return "any"; + case "BooleanTypeAnnotation": + return "boolean"; + case "BigIntTypeAnnotation": + return "bigint"; + case "NullLiteralTypeAnnotation": + return "null"; + case "NumberTypeAnnotation": + return "number"; + case "SymbolTypeAnnotation": + return "symbol"; + case "StringTypeAnnotation": + return "string"; + case "VoidTypeAnnotation": + return "void"; + case "ThisTypeAnnotation": + return "this"; + case "Node": + case "Printable": + case "SourceLocation": + case "Position": + case "Statement": + case "Function": + case "Pattern": + case "Expression": + case "Declaration": + case "Specifier": + case "NamedSpecifier": + case "Comment": + case "MemberTypeAnnotation": + case "Type": + throw new Error("unprintable type: " + JSON.stringify(node.type)); + } + } + function printFlowDeclaration(path, printed) { + const parentExportDecl = getParentExportDeclaration(path); + if (parentExportDecl) { + assert.strictEqual(parentExportDecl.type, "DeclareExportDeclaration"); + return printed; + } + return ["declare ", printed]; + } + module2.exports = { + printFlow + }; + } +}); +var require_is_ts_keyword_type = __commonJS2({ + "src/language-js/utils/is-ts-keyword-type.js"(exports2, module2) { + "use strict"; + function isTsKeywordType({ + type + }) { + return type.startsWith("TS") && type.endsWith("Keyword"); + } + module2.exports = isTsKeywordType; + } +}); +var require_ternary = __commonJS2({ + "src/language-js/print/ternary.js"(exports2, module2) { + "use strict"; + var { + hasNewlineInRange + } = require_util(); + var { + isJsxNode, + getComments, + isCallExpression, + isMemberExpression + } = require_utils7(); + var { + locStart, + locEnd + } = require_loc(); + var isBlockComment = require_is_block_comment(); + var { + builders: { + line, + softline, + group, + indent, + align, + ifBreak, + dedent, + breakParent + } + } = require("./doc.js"); + function conditionalExpressionChainContainsJsx(node) { + const conditionalExpressions = [node]; + for (let index = 0; index < conditionalExpressions.length; index++) { + const conditionalExpression = conditionalExpressions[index]; + for (const property of ["test", "consequent", "alternate"]) { + const node2 = conditionalExpression[property]; + if (isJsxNode(node2)) { + return true; + } + if (node2.type === "ConditionalExpression") { + conditionalExpressions.push(node2); + } + } + } + return false; + } + function printTernaryTest(path, options, print) { + const node = path.getValue(); + const isConditionalExpression = node.type === "ConditionalExpression"; + const alternateNodePropertyName = isConditionalExpression ? "alternate" : "falseType"; + const parent = path.getParentNode(); + const printed = isConditionalExpression ? print("test") : [print("checkType"), " ", "extends", " ", print("extendsType")]; + if (parent.type === node.type && parent[alternateNodePropertyName] === node) { + return align(2, printed); + } + return printed; + } + var ancestorNameMap = /* @__PURE__ */ new Map([["AssignmentExpression", "right"], ["VariableDeclarator", "init"], ["ReturnStatement", "argument"], ["ThrowStatement", "argument"], ["UnaryExpression", "argument"], ["YieldExpression", "argument"]]); + function shouldExtraIndentForConditionalExpression(path) { + const node = path.getValue(); + if (node.type !== "ConditionalExpression") { + return false; + } + let parent; + let child = node; + for (let ancestorCount = 0; !parent; ancestorCount++) { + const node2 = path.getParentNode(ancestorCount); + if (isCallExpression(node2) && node2.callee === child || isMemberExpression(node2) && node2.object === child || node2.type === "TSNonNullExpression" && node2.expression === child) { + child = node2; + continue; + } + if (node2.type === "NewExpression" && node2.callee === child || node2.type === "TSAsExpression" && node2.expression === child) { + parent = path.getParentNode(ancestorCount + 1); + child = node2; + } else { + parent = node2; + } + } + if (child === node) { + return false; + } + return parent[ancestorNameMap.get(parent.type)] === child; + } + function printTernary(path, options, print) { + const node = path.getValue(); + const isConditionalExpression = node.type === "ConditionalExpression"; + const consequentNodePropertyName = isConditionalExpression ? "consequent" : "trueType"; + const alternateNodePropertyName = isConditionalExpression ? "alternate" : "falseType"; + const testNodePropertyNames = isConditionalExpression ? ["test"] : ["checkType", "extendsType"]; + const consequentNode = node[consequentNodePropertyName]; + const alternateNode = node[alternateNodePropertyName]; + const parts = []; + let jsxMode = false; + const parent = path.getParentNode(); + const isParentTest = parent.type === node.type && testNodePropertyNames.some((prop) => parent[prop] === node); + let forceNoIndent = parent.type === node.type && !isParentTest; + let currentParent; + let previousParent; + let i = 0; + do { + previousParent = currentParent || node; + currentParent = path.getParentNode(i); + i++; + } while (currentParent && currentParent.type === node.type && testNodePropertyNames.every((prop) => currentParent[prop] !== previousParent)); + const firstNonConditionalParent = currentParent || parent; + const lastConditionalParent = previousParent; + if (isConditionalExpression && (isJsxNode(node[testNodePropertyNames[0]]) || isJsxNode(consequentNode) || isJsxNode(alternateNode) || conditionalExpressionChainContainsJsx(lastConditionalParent))) { + jsxMode = true; + forceNoIndent = true; + const wrap = (doc2) => [ifBreak("("), indent([softline, doc2]), softline, ifBreak(")")]; + const isNil = (node2) => node2.type === "NullLiteral" || node2.type === "Literal" && node2.value === null || node2.type === "Identifier" && node2.name === "undefined"; + parts.push(" ? ", isNil(consequentNode) ? print(consequentNodePropertyName) : wrap(print(consequentNodePropertyName)), " : ", alternateNode.type === node.type || isNil(alternateNode) ? print(alternateNodePropertyName) : wrap(print(alternateNodePropertyName))); + } else { + const part = [line, "? ", consequentNode.type === node.type ? ifBreak("", "(") : "", align(2, print(consequentNodePropertyName)), consequentNode.type === node.type ? ifBreak("", ")") : "", line, ": ", alternateNode.type === node.type ? print(alternateNodePropertyName) : align(2, print(alternateNodePropertyName))]; + parts.push(parent.type !== node.type || parent[alternateNodePropertyName] === node || isParentTest ? part : options.useTabs ? dedent(indent(part)) : align(Math.max(0, options.tabWidth - 2), part)); + } + const comments = [...testNodePropertyNames.map((propertyName) => getComments(node[propertyName])), getComments(consequentNode), getComments(alternateNode)].flat(); + const shouldBreak = comments.some((comment) => isBlockComment(comment) && hasNewlineInRange(options.originalText, locStart(comment), locEnd(comment))); + const maybeGroup = (doc2) => parent === firstNonConditionalParent ? group(doc2, { + shouldBreak + }) : shouldBreak ? [doc2, breakParent] : doc2; + const breakClosingParen = !jsxMode && (isMemberExpression(parent) || parent.type === "NGPipeExpression" && parent.left === node) && !parent.computed; + const shouldExtraIndent = shouldExtraIndentForConditionalExpression(path); + const result = maybeGroup([printTernaryTest(path, options, print), forceNoIndent ? parts : indent(parts), isConditionalExpression && breakClosingParen && !shouldExtraIndent ? softline : ""]); + return isParentTest || shouldExtraIndent ? group([indent([softline, result]), softline]) : result; + } + module2.exports = { + printTernary + }; + } +}); +var require_statement = __commonJS2({ + "src/language-js/print/statement.js"(exports2, module2) { + "use strict"; + var { + builders: { + hardline + } + } = require("./doc.js"); + var pathNeedsParens = require_needs_parens(); + var { + getLeftSidePathName, + hasNakedLeftSide, + isJsxNode, + isTheOnlyJsxElementInMarkdown, + hasComment, + CommentCheckFlags, + isNextLineEmpty + } = require_utils7(); + var { + shouldPrintParamsWithoutParens + } = require_function(); + function printStatementSequence(path, options, print, property) { + const node = path.getValue(); + const parts = []; + const isClassBody = node.type === "ClassBody"; + const lastStatement = getLastStatement(node[property]); + path.each((path2, index, statements) => { + const node2 = path2.getValue(); + if (node2.type === "EmptyStatement") { + return; + } + const printed = print(); + if (!options.semi && !isClassBody && !isTheOnlyJsxElementInMarkdown(options, path2) && statementNeedsASIProtection(path2, options)) { + if (hasComment(node2, CommentCheckFlags.Leading)) { + parts.push(print([], { + needsSemi: true + })); + } else { + parts.push(";", printed); + } + } else { + parts.push(printed); + } + if (!options.semi && isClassBody && isClassProperty(node2) && shouldPrintSemicolonAfterClassProperty(node2, statements[index + 1])) { + parts.push(";"); + } + if (node2 !== lastStatement) { + parts.push(hardline); + if (isNextLineEmpty(node2, options)) { + parts.push(hardline); + } + } + }, property); + return parts; + } + function getLastStatement(statements) { + for (let i = statements.length - 1; i >= 0; i--) { + const statement = statements[i]; + if (statement.type !== "EmptyStatement") { + return statement; + } + } + } + function statementNeedsASIProtection(path, options) { + const node = path.getNode(); + if (node.type !== "ExpressionStatement") { + return false; + } + return path.call((childPath) => expressionNeedsASIProtection(childPath, options), "expression"); + } + function expressionNeedsASIProtection(path, options) { + const node = path.getValue(); + switch (node.type) { + case "ParenthesizedExpression": + case "TypeCastExpression": + case "ArrayExpression": + case "ArrayPattern": + case "TemplateLiteral": + case "TemplateElement": + case "RegExpLiteral": + return true; + case "ArrowFunctionExpression": { + if (!shouldPrintParamsWithoutParens(path, options)) { + return true; + } + break; + } + case "UnaryExpression": { + const { + prefix, + operator + } = node; + if (prefix && (operator === "+" || operator === "-")) { + return true; + } + break; + } + case "BindExpression": { + if (!node.object) { + return true; + } + break; + } + case "Literal": { + if (node.regex) { + return true; + } + break; + } + default: { + if (isJsxNode(node)) { + return true; + } + } + } + if (pathNeedsParens(path, options)) { + return true; + } + if (!hasNakedLeftSide(node)) { + return false; + } + return path.call((childPath) => expressionNeedsASIProtection(childPath, options), ...getLeftSidePathName(path, node)); + } + function printBody(path, options, print) { + return printStatementSequence(path, options, print, "body"); + } + function printSwitchCaseConsequent(path, options, print) { + return printStatementSequence(path, options, print, "consequent"); + } + var isClassProperty = ({ + type + }) => type === "ClassProperty" || type === "PropertyDefinition" || type === "ClassPrivateProperty" || type === "ClassAccessorProperty"; + function shouldPrintSemicolonAfterClassProperty(node, nextNode) { + const name = node.key && node.key.name; + if ((name === "static" || name === "get" || name === "set") && !node.value && !node.typeAnnotation) { + return true; + } + if (!nextNode) { + return false; + } + if (nextNode.static || nextNode.accessibility) { + return false; + } + if (!nextNode.computed) { + const name2 = nextNode.key && nextNode.key.name; + if (name2 === "in" || name2 === "instanceof") { + return true; + } + } + if (isClassProperty(nextNode) && nextNode.variance && !nextNode.static && !nextNode.declare) { + return true; + } + switch (nextNode.type) { + case "ClassProperty": + case "PropertyDefinition": + case "TSAbstractPropertyDefinition": + return nextNode.computed; + case "MethodDefinition": + case "TSAbstractMethodDefinition": + case "ClassMethod": + case "ClassPrivateMethod": { + const isAsync = nextNode.value ? nextNode.value.async : nextNode.async; + if (isAsync || nextNode.kind === "get" || nextNode.kind === "set") { + return false; + } + const isGenerator = nextNode.value ? nextNode.value.generator : nextNode.generator; + if (nextNode.computed || isGenerator) { + return true; + } + return false; + } + case "TSIndexSignature": + return true; + } + return false; + } + module2.exports = { + printBody, + printSwitchCaseConsequent + }; + } +}); +var require_block = __commonJS2({ + "src/language-js/print/block.js"(exports2, module2) { + "use strict"; + var { + printDanglingComments + } = require_comments(); + var { + isNonEmptyArray + } = require_util(); + var { + builders: { + hardline, + indent + } + } = require("./doc.js"); + var { + hasComment, + CommentCheckFlags, + isNextLineEmpty + } = require_utils7(); + var { + printHardlineAfterHeritage + } = require_class(); + var { + printBody + } = require_statement(); + function printBlock(path, options, print) { + const node = path.getValue(); + const parts = []; + if (node.type === "StaticBlock") { + parts.push("static "); + } + if (node.type === "ClassBody" && isNonEmptyArray(node.body)) { + const parent = path.getParentNode(); + parts.push(printHardlineAfterHeritage(parent)); + } + parts.push("{"); + const printed = printBlockBody(path, options, print); + if (printed) { + parts.push(indent([hardline, printed]), hardline); + } else { + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); + if (!(parent.type === "ArrowFunctionExpression" || parent.type === "FunctionExpression" || parent.type === "FunctionDeclaration" || parent.type === "ObjectMethod" || parent.type === "ClassMethod" || parent.type === "ClassPrivateMethod" || parent.type === "ForStatement" || parent.type === "WhileStatement" || parent.type === "DoWhileStatement" || parent.type === "DoExpression" || parent.type === "CatchClause" && !parentParent.finalizer || parent.type === "TSModuleDeclaration" || parent.type === "TSDeclareFunction" || node.type === "StaticBlock" || node.type === "ClassBody")) { + parts.push(hardline); + } + } + parts.push("}"); + return parts; + } + function printBlockBody(path, options, print) { + const node = path.getValue(); + const nodeHasDirectives = isNonEmptyArray(node.directives); + const nodeHasBody = node.body.some((node2) => node2.type !== "EmptyStatement"); + const nodeHasComment = hasComment(node, CommentCheckFlags.Dangling); + if (!nodeHasDirectives && !nodeHasBody && !nodeHasComment) { + return ""; + } + const parts = []; + if (nodeHasDirectives) { + path.each((childPath, index, directives) => { + parts.push(print()); + if (index < directives.length - 1 || nodeHasBody || nodeHasComment) { + parts.push(hardline); + if (isNextLineEmpty(childPath.getValue(), options)) { + parts.push(hardline); + } + } + }, "directives"); + } + if (nodeHasBody) { + parts.push(printBody(path, options, print)); + } + if (nodeHasComment) { + parts.push(printDanglingComments(path, options, true)); + } + if (node.type === "Program") { + const parent = path.getParentNode(); + if (!parent || parent.type !== "ModuleExpression") { + parts.push(hardline); + } + } + return parts; + } + module2.exports = { + printBlock, + printBlockBody + }; + } +}); +var require_typescript = __commonJS2({ + "src/language-js/print/typescript.js"(exports2, module2) { + "use strict"; + var { + printDanglingComments + } = require_comments(); + var { + hasNewlineInRange + } = require_util(); + var { + builders: { + join, + line, + hardline, + softline, + group, + indent, + conditionalGroup, + ifBreak + } + } = require("./doc.js"); + var { + isLiteral, + getTypeScriptMappedTypeModifier, + shouldPrintComma, + isCallExpression, + isMemberExpression + } = require_utils7(); + var isTsKeywordType = require_is_ts_keyword_type(); + var { + locStart, + locEnd + } = require_loc(); + var { + printOptionalToken, + printTypeScriptModifiers + } = require_misc(); + var { + printTernary + } = require_ternary(); + var { + printFunctionParameters, + shouldGroupFunctionParameters + } = require_function_parameters(); + var { + printTemplateLiteral + } = require_template_literal(); + var { + printArrayItems + } = require_array4(); + var { + printObject + } = require_object(); + var { + printClassProperty, + printClassMethod + } = require_class(); + var { + printTypeParameter, + printTypeParameters + } = require_type_parameters(); + var { + printPropertyKey + } = require_property(); + var { + printFunction, + printMethodInternal + } = require_function(); + var { + printInterface + } = require_interface(); + var { + printBlock + } = require_block(); + var { + printTypeAlias, + printIntersectionType, + printUnionType, + printFunctionType, + printTupleType, + printIndexedAccessType, + printJSDocType + } = require_type_annotation(); + function printTypescript(path, options, print) { + const node = path.getValue(); + if (!node.type.startsWith("TS")) { + return; + } + if (isTsKeywordType(node)) { + return node.type.slice(2, -7).toLowerCase(); + } + const semi = options.semi ? ";" : ""; + const parts = []; + switch (node.type) { + case "TSThisType": + return "this"; + case "TSTypeAssertion": { + const shouldBreakAfterCast = !(node.expression.type === "ArrayExpression" || node.expression.type === "ObjectExpression"); + const castGroup = group(["<", indent([softline, print("typeAnnotation")]), softline, ">"]); + const exprContents = [ifBreak("("), indent([softline, print("expression")]), softline, ifBreak(")")]; + if (shouldBreakAfterCast) { + return conditionalGroup([[castGroup, print("expression")], [castGroup, group(exprContents, { + shouldBreak: true + })], [castGroup, print("expression")]]); + } + return group([castGroup, print("expression")]); + } + case "TSDeclareFunction": + return printFunction(path, print, options); + case "TSExportAssignment": + return ["export = ", print("expression"), semi]; + case "TSModuleBlock": + return printBlock(path, options, print); + case "TSInterfaceBody": + case "TSTypeLiteral": + return printObject(path, options, print); + case "TSTypeAliasDeclaration": + return printTypeAlias(path, options, print); + case "TSQualifiedName": + return join(".", [print("left"), print("right")]); + case "TSAbstractMethodDefinition": + case "TSDeclareMethod": + return printClassMethod(path, options, print); + case "TSAbstractPropertyDefinition": + return printClassProperty(path, options, print); + case "TSInterfaceHeritage": + case "TSExpressionWithTypeArguments": + parts.push(print("expression")); + if (node.typeParameters) { + parts.push(print("typeParameters")); + } + return parts; + case "TSTemplateLiteralType": + return printTemplateLiteral(path, print, options); + case "TSNamedTupleMember": + return [print("label"), node.optional ? "?" : "", ": ", print("elementType")]; + case "TSRestType": + return ["...", print("typeAnnotation")]; + case "TSOptionalType": + return [print("typeAnnotation"), "?"]; + case "TSInterfaceDeclaration": + return printInterface(path, options, print); + case "TSClassImplements": + return [print("expression"), print("typeParameters")]; + case "TSTypeParameterDeclaration": + case "TSTypeParameterInstantiation": + return printTypeParameters(path, options, print, "params"); + case "TSTypeParameter": + return printTypeParameter(path, options, print); + case "TSAsExpression": { + parts.push(print("expression"), " as ", print("typeAnnotation")); + const parent = path.getParentNode(); + if (isCallExpression(parent) && parent.callee === node || isMemberExpression(parent) && parent.object === node) { + return group([indent([softline, ...parts]), softline]); + } + return parts; + } + case "TSArrayType": + return [print("elementType"), "[]"]; + case "TSPropertySignature": { + if (node.readonly) { + parts.push("readonly "); + } + parts.push(printPropertyKey(path, options, print), printOptionalToken(path)); + if (node.typeAnnotation) { + parts.push(": ", print("typeAnnotation")); + } + if (node.initializer) { + parts.push(" = ", print("initializer")); + } + return parts; + } + case "TSParameterProperty": + if (node.accessibility) { + parts.push(node.accessibility + " "); + } + if (node.export) { + parts.push("export "); + } + if (node.static) { + parts.push("static "); + } + if (node.override) { + parts.push("override "); + } + if (node.readonly) { + parts.push("readonly "); + } + parts.push(print("parameter")); + return parts; + case "TSTypeQuery": + return ["typeof ", print("exprName"), print("typeParameters")]; + case "TSIndexSignature": { + const parent = path.getParentNode(); + const trailingComma = node.parameters.length > 1 ? ifBreak(shouldPrintComma(options) ? "," : "") : ""; + const parametersGroup = group([indent([softline, join([", ", softline], path.map(print, "parameters"))]), trailingComma, softline]); + return [node.export ? "export " : "", node.accessibility ? [node.accessibility, " "] : "", node.static ? "static " : "", node.readonly ? "readonly " : "", node.declare ? "declare " : "", "[", node.parameters ? parametersGroup : "", node.typeAnnotation ? "]: " : "]", node.typeAnnotation ? print("typeAnnotation") : "", parent.type === "ClassBody" ? semi : ""]; + } + case "TSTypePredicate": + return [node.asserts ? "asserts " : "", print("parameterName"), node.typeAnnotation ? [" is ", print("typeAnnotation")] : ""]; + case "TSNonNullExpression": + return [print("expression"), "!"]; + case "TSImportType": + return [!node.isTypeOf ? "" : "typeof ", "import(", print(node.parameter ? "parameter" : "argument"), ")", !node.qualifier ? "" : [".", print("qualifier")], printTypeParameters(path, options, print, "typeParameters")]; + case "TSLiteralType": + return print("literal"); + case "TSIndexedAccessType": + return printIndexedAccessType(path, options, print); + case "TSConstructSignatureDeclaration": + case "TSCallSignatureDeclaration": + case "TSConstructorType": { + if (node.type === "TSConstructorType" && node.abstract) { + parts.push("abstract "); + } + if (node.type !== "TSCallSignatureDeclaration") { + parts.push("new "); + } + parts.push(group(printFunctionParameters(path, print, options, false, true))); + if (node.returnType || node.typeAnnotation) { + const isType = node.type === "TSConstructorType"; + parts.push(isType ? " => " : ": ", print("returnType"), print("typeAnnotation")); + } + return parts; + } + case "TSTypeOperator": + return [node.operator, " ", print("typeAnnotation")]; + case "TSMappedType": { + const shouldBreak = hasNewlineInRange(options.originalText, locStart(node), locEnd(node)); + return group(["{", indent([options.bracketSpacing ? line : softline, node.readonly ? [getTypeScriptMappedTypeModifier(node.readonly, "readonly"), " "] : "", printTypeScriptModifiers(path, options, print), print("typeParameter"), node.optional ? getTypeScriptMappedTypeModifier(node.optional, "?") : "", node.typeAnnotation ? ": " : "", print("typeAnnotation"), ifBreak(semi)]), printDanglingComments(path, options, true), options.bracketSpacing ? line : softline, "}"], { + shouldBreak + }); + } + case "TSMethodSignature": { + const kind = node.kind && node.kind !== "method" ? `${node.kind} ` : ""; + parts.push(node.accessibility ? [node.accessibility, " "] : "", kind, node.export ? "export " : "", node.static ? "static " : "", node.readonly ? "readonly " : "", node.abstract ? "abstract " : "", node.declare ? "declare " : "", node.computed ? "[" : "", print("key"), node.computed ? "]" : "", printOptionalToken(path)); + const parametersDoc = printFunctionParameters(path, print, options, false, true); + const returnTypePropertyName = node.returnType ? "returnType" : "typeAnnotation"; + const returnTypeNode = node[returnTypePropertyName]; + const returnTypeDoc = returnTypeNode ? print(returnTypePropertyName) : ""; + const shouldGroupParameters = shouldGroupFunctionParameters(node, returnTypeDoc); + parts.push(shouldGroupParameters ? group(parametersDoc) : parametersDoc); + if (returnTypeNode) { + parts.push(": ", group(returnTypeDoc)); + } + return group(parts); + } + case "TSNamespaceExportDeclaration": + parts.push("export as namespace ", print("id")); + if (options.semi) { + parts.push(";"); + } + return group(parts); + case "TSEnumDeclaration": + if (node.declare) { + parts.push("declare "); + } + if (node.modifiers) { + parts.push(printTypeScriptModifiers(path, options, print)); + } + if (node.const) { + parts.push("const "); + } + parts.push("enum ", print("id"), " "); + if (node.members.length === 0) { + parts.push(group(["{", printDanglingComments(path, options), softline, "}"])); + } else { + parts.push(group(["{", indent([hardline, printArrayItems(path, options, "members", print), shouldPrintComma(options, "es5") ? "," : ""]), printDanglingComments(path, options, true), hardline, "}"])); + } + return parts; + case "TSEnumMember": + if (node.computed) { + parts.push("[", print("id"), "]"); + } else { + parts.push(print("id")); + } + if (node.initializer) { + parts.push(" = ", print("initializer")); + } + return parts; + case "TSImportEqualsDeclaration": + if (node.isExport) { + parts.push("export "); + } + parts.push("import "); + if (node.importKind && node.importKind !== "value") { + parts.push(node.importKind, " "); + } + parts.push(print("id"), " = ", print("moduleReference")); + if (options.semi) { + parts.push(";"); + } + return group(parts); + case "TSExternalModuleReference": + return ["require(", print("expression"), ")"]; + case "TSModuleDeclaration": { + const parent = path.getParentNode(); + const isExternalModule = isLiteral(node.id); + const parentIsDeclaration = parent.type === "TSModuleDeclaration"; + const bodyIsDeclaration = node.body && node.body.type === "TSModuleDeclaration"; + if (parentIsDeclaration) { + parts.push("."); + } else { + if (node.declare) { + parts.push("declare "); + } + parts.push(printTypeScriptModifiers(path, options, print)); + const textBetweenNodeAndItsId = options.originalText.slice(locStart(node), locStart(node.id)); + const isGlobalDeclaration = node.id.type === "Identifier" && node.id.name === "global" && !/namespace|module/.test(textBetweenNodeAndItsId); + if (!isGlobalDeclaration) { + parts.push(isExternalModule || /(?:^|\s)module(?:\s|$)/.test(textBetweenNodeAndItsId) ? "module " : "namespace "); + } + } + parts.push(print("id")); + if (bodyIsDeclaration) { + parts.push(print("body")); + } else if (node.body) { + parts.push(" ", group(print("body"))); + } else { + parts.push(semi); + } + return parts; + } + case "TSConditionalType": + return printTernary(path, options, print); + case "TSInferType": + return ["infer", " ", print("typeParameter")]; + case "TSIntersectionType": + return printIntersectionType(path, options, print); + case "TSUnionType": + return printUnionType(path, options, print); + case "TSFunctionType": + return printFunctionType(path, options, print); + case "TSTupleType": + return printTupleType(path, options, print); + case "TSTypeReference": + return [print("typeName"), printTypeParameters(path, options, print, "typeParameters")]; + case "TSTypeAnnotation": + return print("typeAnnotation"); + case "TSEmptyBodyFunctionExpression": + return printMethodInternal(path, options, print); + case "TSJSDocAllType": + return "*"; + case "TSJSDocUnknownType": + return "?"; + case "TSJSDocNullableType": + return printJSDocType(path, print, "?"); + case "TSJSDocNonNullableType": + return printJSDocType(path, print, "!"); + case "TSInstantiationExpression": + return [print("expression"), print("typeParameters")]; + default: + throw new Error(`Unknown TypeScript node type: ${JSON.stringify(node.type)}.`); + } + } + module2.exports = { + printTypescript + }; + } +}); +var require_comment = __commonJS2({ + "src/language-js/print/comment.js"(exports2, module2) { + "use strict"; + var { + hasNewline + } = require_util(); + var { + builders: { + join, + hardline + }, + utils: { + replaceTextEndOfLine + } + } = require("./doc.js"); + var { + isLineComment + } = require_utils7(); + var { + locStart, + locEnd + } = require_loc(); + var isBlockComment = require_is_block_comment(); + function printComment(commentPath, options) { + const comment = commentPath.getValue(); + if (isLineComment(comment)) { + return options.originalText.slice(locStart(comment), locEnd(comment)).trimEnd(); + } + if (isBlockComment(comment)) { + if (isIndentableBlockComment(comment)) { + const printed = printIndentableBlockComment(comment); + if (comment.trailing && !hasNewline(options.originalText, locStart(comment), { + backwards: true + })) { + return [hardline, printed]; + } + return printed; + } + const commentEnd = locEnd(comment); + const isInsideFlowComment = options.originalText.slice(commentEnd - 3, commentEnd) === "*-/"; + return ["/*", replaceTextEndOfLine(comment.value), isInsideFlowComment ? "*-/" : "*/"]; + } + throw new Error("Not a comment: " + JSON.stringify(comment)); + } + function isIndentableBlockComment(comment) { + const lines = `*${comment.value}*`.split("\n"); + return lines.length > 1 && lines.every((line) => line.trim()[0] === "*"); + } + function printIndentableBlockComment(comment) { + const lines = comment.value.split("\n"); + return ["/*", join(hardline, lines.map((line, index) => index === 0 ? line.trimEnd() : " " + (index < lines.length - 1 ? line.trim() : line.trimStart()))), "*/"]; + } + module2.exports = { + printComment + }; + } +}); +var require_literal = __commonJS2({ + "src/language-js/print/literal.js"(exports2, module2) { + "use strict"; + var { + printString, + printNumber + } = require_util(); + function printLiteral(path, options) { + const node = path.getNode(); + switch (node.type) { + case "RegExpLiteral": + return printRegex(node); + case "BigIntLiteral": + return printBigInt(node.bigint || node.extra.raw); + case "NumericLiteral": + return printNumber(node.extra.raw); + case "StringLiteral": + return printString(node.extra.raw, options); + case "NullLiteral": + return "null"; + case "BooleanLiteral": + return String(node.value); + case "DecimalLiteral": + return printNumber(node.value) + "m"; + case "Literal": { + if (node.regex) { + return printRegex(node.regex); + } + if (node.bigint) { + return printBigInt(node.raw); + } + if (node.decimal) { + return printNumber(node.decimal) + "m"; + } + const { + value + } = node; + if (typeof value === "number") { + return printNumber(node.raw); + } + if (typeof value === "string") { + return printString(node.raw, options); + } + return String(value); + } + } + } + function printBigInt(raw) { + return raw.toLowerCase(); + } + function printRegex({ + pattern, + flags + }) { + flags = [...flags].sort().join(""); + return `/${pattern}/${flags}`; + } + module2.exports = { + printLiteral + }; + } +}); +var require_printer_estree = __commonJS2({ + "src/language-js/printer-estree.js"(exports2, module2) { + "use strict"; + var { + printDanglingComments + } = require_comments(); + var { + hasNewline + } = require_util(); + var { + builders: { + join, + line, + hardline, + softline, + group, + indent + }, + utils: { + replaceTextEndOfLine + } + } = require("./doc.js"); + var embed = require_embed(); + var clean = require_clean(); + var { + insertPragma + } = require_pragma(); + var handleComments = require_comments2(); + var pathNeedsParens = require_needs_parens(); + var preprocess = require_print_preprocess(); + var { + hasFlowShorthandAnnotationComment, + hasComment, + CommentCheckFlags, + isTheOnlyJsxElementInMarkdown, + isLineComment, + isNextLineEmpty, + needsHardlineAfterDanglingComment, + rawText, + hasIgnoreComment, + isCallExpression, + isMemberExpression, + markerForIfWithoutBlockAndSameLineComment + } = require_utils7(); + var { + locStart, + locEnd + } = require_loc(); + var isBlockComment = require_is_block_comment(); + var { + printHtmlBinding, + isVueEventBindingExpression + } = require_html_binding(); + var { + printAngular + } = require_angular(); + var { + printJsx, + hasJsxIgnoreComment + } = require_jsx(); + var { + printFlow + } = require_flow(); + var { + printTypescript + } = require_typescript(); + var { + printOptionalToken, + printBindExpressionCallee, + printTypeAnnotation, + adjustClause, + printRestSpread, + printDefiniteToken + } = require_misc(); + var { + printImportDeclaration, + printExportDeclaration, + printExportAllDeclaration, + printModuleSpecifier + } = require_module(); + var { + printTernary + } = require_ternary(); + var { + printTemplateLiteral + } = require_template_literal(); + var { + printArray + } = require_array4(); + var { + printObject + } = require_object(); + var { + printClass, + printClassMethod, + printClassProperty + } = require_class(); + var { + printProperty + } = require_property(); + var { + printFunction, + printArrowFunction, + printMethod, + printReturnStatement, + printThrowStatement + } = require_function(); + var { + printCallExpression + } = require_call_expression(); + var { + printVariableDeclarator, + printAssignmentExpression + } = require_assignment(); + var { + printBinaryishExpression + } = require_binaryish(); + var { + printSwitchCaseConsequent + } = require_statement(); + var { + printMemberExpression + } = require_member(); + var { + printBlock, + printBlockBody + } = require_block(); + var { + printComment + } = require_comment(); + var { + printLiteral + } = require_literal(); + var { + printDecorators + } = require_decorators(); + function genericPrint(path, options, print, args) { + const printed = printPathNoParens(path, options, print, args); + if (!printed) { + return ""; + } + const node = path.getValue(); + const { + type + } = node; + if (type === "ClassMethod" || type === "ClassPrivateMethod" || type === "ClassProperty" || type === "ClassAccessorProperty" || type === "PropertyDefinition" || type === "TSAbstractPropertyDefinition" || type === "ClassPrivateProperty" || type === "MethodDefinition" || type === "TSAbstractMethodDefinition" || type === "TSDeclareMethod") { + return printed; + } + let parts = [printed]; + const printedDecorators = printDecorators(path, options, print); + const isClassExpressionWithDecorators = node.type === "ClassExpression" && printedDecorators; + if (printedDecorators) { + parts = [...printedDecorators, printed]; + if (!isClassExpressionWithDecorators) { + return group(parts); + } + } + const needsParens = pathNeedsParens(path, options); + if (!needsParens) { + if (args && args.needsSemi) { + parts.unshift(";"); + } + if (parts.length === 1 && parts[0] === printed) { + return printed; + } + return parts; + } + if (isClassExpressionWithDecorators) { + parts = [indent([line, ...parts])]; + } + parts.unshift("("); + if (args && args.needsSemi) { + parts.unshift(";"); + } + if (hasFlowShorthandAnnotationComment(node)) { + const [comment] = node.trailingComments; + parts.push(" /*", comment.value.trimStart(), "*/"); + comment.printed = true; + } + if (isClassExpressionWithDecorators) { + parts.push(line); + } + parts.push(")"); + return parts; + } + function printPathNoParens(path, options, print, args) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + if (!node) { + return ""; + } + if (typeof node === "string") { + return node; + } + for (const printer of [printLiteral, printHtmlBinding, printAngular, printJsx, printFlow, printTypescript]) { + const printed = printer(path, options, print); + if (typeof printed !== "undefined") { + return printed; + } + } + let parts = []; + switch (node.type) { + case "JsExpressionRoot": + return print("node"); + case "JsonRoot": + return [print("node"), hardline]; + case "File": + if (node.program && node.program.interpreter) { + parts.push(print(["program", "interpreter"])); + } + parts.push(print("program")); + return parts; + case "Program": + return printBlockBody(path, options, print); + case "EmptyStatement": + return ""; + case "ExpressionStatement": { + if (node.directive) { + return [printDirective(node.expression, options), semi]; + } + if (options.parser === "__vue_event_binding" || options.parser === "__vue_ts_event_binding") { + const parent = path.getParentNode(); + if (parent.type === "Program" && parent.body.length === 1 && parent.body[0] === node) { + return [print("expression"), isVueEventBindingExpression(node.expression) ? ";" : ""]; + } + } + const danglingComment = printDanglingComments(path, options, true, ({ + marker + }) => marker === markerForIfWithoutBlockAndSameLineComment); + return [print("expression"), isTheOnlyJsxElementInMarkdown(options, path) ? "" : semi, danglingComment ? [" ", danglingComment] : ""]; + } + case "ParenthesizedExpression": { + const shouldHug = !hasComment(node.expression) && (node.expression.type === "ObjectExpression" || node.expression.type === "ArrayExpression"); + if (shouldHug) { + return ["(", print("expression"), ")"]; + } + return group(["(", indent([softline, print("expression")]), softline, ")"]); + } + case "AssignmentExpression": + return printAssignmentExpression(path, options, print); + case "VariableDeclarator": + return printVariableDeclarator(path, options, print); + case "BinaryExpression": + case "LogicalExpression": + return printBinaryishExpression(path, options, print); + case "AssignmentPattern": + return [print("left"), " = ", print("right")]; + case "OptionalMemberExpression": + case "MemberExpression": { + return printMemberExpression(path, options, print); + } + case "MetaProperty": + return [print("meta"), ".", print("property")]; + case "BindExpression": + if (node.object) { + parts.push(print("object")); + } + parts.push(group(indent([softline, printBindExpressionCallee(path, options, print)]))); + return parts; + case "Identifier": { + return [node.name, printOptionalToken(path), printDefiniteToken(path), printTypeAnnotation(path, options, print)]; + } + case "V8IntrinsicIdentifier": + return ["%", node.name]; + case "SpreadElement": + case "SpreadElementPattern": + case "SpreadProperty": + case "SpreadPropertyPattern": + case "RestElement": + return printRestSpread(path, options, print); + case "FunctionDeclaration": + case "FunctionExpression": + return printFunction(path, print, options, args); + case "ArrowFunctionExpression": + return printArrowFunction(path, options, print, args); + case "YieldExpression": + parts.push("yield"); + if (node.delegate) { + parts.push("*"); + } + if (node.argument) { + parts.push(" ", print("argument")); + } + return parts; + case "AwaitExpression": { + parts.push("await"); + if (node.argument) { + parts.push(" ", print("argument")); + const parent = path.getParentNode(); + if (isCallExpression(parent) && parent.callee === node || isMemberExpression(parent) && parent.object === node) { + parts = [indent([softline, ...parts]), softline]; + const parentAwaitOrBlock = path.findAncestor((node2) => node2.type === "AwaitExpression" || node2.type === "BlockStatement"); + if (!parentAwaitOrBlock || parentAwaitOrBlock.type !== "AwaitExpression") { + return group(parts); + } + } + } + return parts; + } + case "ExportDefaultDeclaration": + case "ExportNamedDeclaration": + return printExportDeclaration(path, options, print); + case "ExportAllDeclaration": + return printExportAllDeclaration(path, options, print); + case "ImportDeclaration": + return printImportDeclaration(path, options, print); + case "ImportSpecifier": + case "ExportSpecifier": + case "ImportNamespaceSpecifier": + case "ExportNamespaceSpecifier": + case "ImportDefaultSpecifier": + case "ExportDefaultSpecifier": + return printModuleSpecifier(path, options, print); + case "ImportAttribute": + return [print("key"), ": ", print("value")]; + case "Import": + return "import"; + case "BlockStatement": + case "StaticBlock": + case "ClassBody": + return printBlock(path, options, print); + case "ThrowStatement": + return printThrowStatement(path, options, print); + case "ReturnStatement": + return printReturnStatement(path, options, print); + case "NewExpression": + case "ImportExpression": + case "OptionalCallExpression": + case "CallExpression": + return printCallExpression(path, options, print); + case "ObjectExpression": + case "ObjectPattern": + case "RecordExpression": + return printObject(path, options, print); + case "ObjectProperty": + case "Property": + if (node.method || node.kind === "get" || node.kind === "set") { + return printMethod(path, options, print); + } + return printProperty(path, options, print); + case "ObjectMethod": + return printMethod(path, options, print); + case "Decorator": + return ["@", print("expression")]; + case "ArrayExpression": + case "ArrayPattern": + case "TupleExpression": + return printArray(path, options, print); + case "SequenceExpression": { + const parent = path.getParentNode(0); + if (parent.type === "ExpressionStatement" || parent.type === "ForStatement") { + const parts2 = []; + path.each((expressionPath, index) => { + if (index === 0) { + parts2.push(print()); + } else { + parts2.push(",", indent([line, print()])); + } + }, "expressions"); + return group(parts2); + } + return group(join([",", line], path.map(print, "expressions"))); + } + case "ThisExpression": + return "this"; + case "Super": + return "super"; + case "Directive": + return [print("value"), semi]; + case "DirectiveLiteral": + return printDirective(node, options); + case "UnaryExpression": + parts.push(node.operator); + if (/[a-z]$/.test(node.operator)) { + parts.push(" "); + } + if (hasComment(node.argument)) { + parts.push(group(["(", indent([softline, print("argument")]), softline, ")"])); + } else { + parts.push(print("argument")); + } + return parts; + case "UpdateExpression": + parts.push(print("argument"), node.operator); + if (node.prefix) { + parts.reverse(); + } + return parts; + case "ConditionalExpression": + return printTernary(path, options, print); + case "VariableDeclaration": { + const printed = path.map(print, "declarations"); + const parentNode = path.getParentNode(); + const isParentForLoop = parentNode.type === "ForStatement" || parentNode.type === "ForInStatement" || parentNode.type === "ForOfStatement"; + const hasValue = node.declarations.some((decl) => decl.init); + let firstVariable; + if (printed.length === 1 && !hasComment(node.declarations[0])) { + firstVariable = printed[0]; + } else if (printed.length > 0) { + firstVariable = indent(printed[0]); + } + parts = [node.declare ? "declare " : "", node.kind, firstVariable ? [" ", firstVariable] : "", indent(printed.slice(1).map((p) => [",", hasValue && !isParentForLoop ? hardline : line, p]))]; + if (!(isParentForLoop && parentNode.body !== node)) { + parts.push(semi); + } + return group(parts); + } + case "WithStatement": + return group(["with (", print("object"), ")", adjustClause(node.body, print("body"))]); + case "IfStatement": { + const con = adjustClause(node.consequent, print("consequent")); + const opening = group(["if (", group([indent([softline, print("test")]), softline]), ")", con]); + parts.push(opening); + if (node.alternate) { + const commentOnOwnLine = hasComment(node.consequent, CommentCheckFlags.Trailing | CommentCheckFlags.Line) || needsHardlineAfterDanglingComment(node); + const elseOnSameLine = node.consequent.type === "BlockStatement" && !commentOnOwnLine; + parts.push(elseOnSameLine ? " " : hardline); + if (hasComment(node, CommentCheckFlags.Dangling)) { + parts.push(printDanglingComments(path, options, true), commentOnOwnLine ? hardline : " "); + } + parts.push("else", group(adjustClause(node.alternate, print("alternate"), node.alternate.type === "IfStatement"))); + } + return parts; + } + case "ForStatement": { + const body = adjustClause(node.body, print("body")); + const dangling = printDanglingComments(path, options, true); + const printedComments = dangling ? [dangling, softline] : ""; + if (!node.init && !node.test && !node.update) { + return [printedComments, group(["for (;;)", body])]; + } + return [printedComments, group(["for (", group([indent([softline, print("init"), ";", line, print("test"), ";", line, print("update")]), softline]), ")", body])]; + } + case "WhileStatement": + return group(["while (", group([indent([softline, print("test")]), softline]), ")", adjustClause(node.body, print("body"))]); + case "ForInStatement": + return group(["for (", print("left"), " in ", print("right"), ")", adjustClause(node.body, print("body"))]); + case "ForOfStatement": + return group(["for", node.await ? " await" : "", " (", print("left"), " of ", print("right"), ")", adjustClause(node.body, print("body"))]); + case "DoWhileStatement": { + const clause = adjustClause(node.body, print("body")); + const doBody = group(["do", clause]); + parts = [doBody]; + if (node.body.type === "BlockStatement") { + parts.push(" "); + } else { + parts.push(hardline); + } + parts.push("while (", group([indent([softline, print("test")]), softline]), ")", semi); + return parts; + } + case "DoExpression": + return [node.async ? "async " : "", "do ", print("body")]; + case "BreakStatement": + parts.push("break"); + if (node.label) { + parts.push(" ", print("label")); + } + parts.push(semi); + return parts; + case "ContinueStatement": + parts.push("continue"); + if (node.label) { + parts.push(" ", print("label")); + } + parts.push(semi); + return parts; + case "LabeledStatement": + if (node.body.type === "EmptyStatement") { + return [print("label"), ":;"]; + } + return [print("label"), ": ", print("body")]; + case "TryStatement": + return ["try ", print("block"), node.handler ? [" ", print("handler")] : "", node.finalizer ? [" finally ", print("finalizer")] : ""]; + case "CatchClause": + if (node.param) { + const parameterHasComments = hasComment(node.param, (comment) => !isBlockComment(comment) || comment.leading && hasNewline(options.originalText, locEnd(comment)) || comment.trailing && hasNewline(options.originalText, locStart(comment), { + backwards: true + })); + const param = print("param"); + return ["catch ", parameterHasComments ? ["(", indent([softline, param]), softline, ") "] : ["(", param, ") "], print("body")]; + } + return ["catch ", print("body")]; + case "SwitchStatement": + return [group(["switch (", indent([softline, print("discriminant")]), softline, ")"]), " {", node.cases.length > 0 ? indent([hardline, join(hardline, path.map((casePath, index, cases) => { + const caseNode = casePath.getValue(); + return [print(), index !== cases.length - 1 && isNextLineEmpty(caseNode, options) ? hardline : ""]; + }, "cases"))]) : "", hardline, "}"]; + case "SwitchCase": { + if (node.test) { + parts.push("case ", print("test"), ":"); + } else { + parts.push("default:"); + } + if (hasComment(node, CommentCheckFlags.Dangling)) { + parts.push(" ", printDanglingComments(path, options, true)); + } + const consequent = node.consequent.filter((node2) => node2.type !== "EmptyStatement"); + if (consequent.length > 0) { + const cons = printSwitchCaseConsequent(path, options, print); + parts.push(consequent.length === 1 && consequent[0].type === "BlockStatement" ? [" ", cons] : indent([hardline, cons])); + } + return parts; + } + case "DebuggerStatement": + return ["debugger", semi]; + case "ClassDeclaration": + case "ClassExpression": + return printClass(path, options, print); + case "ClassMethod": + case "ClassPrivateMethod": + case "MethodDefinition": + return printClassMethod(path, options, print); + case "ClassProperty": + case "PropertyDefinition": + case "ClassPrivateProperty": + case "ClassAccessorProperty": + return printClassProperty(path, options, print); + case "TemplateElement": + return replaceTextEndOfLine(node.value.raw); + case "TemplateLiteral": + return printTemplateLiteral(path, print, options); + case "TaggedTemplateExpression": + return [print("tag"), print("typeParameters"), print("quasi")]; + case "PrivateIdentifier": + return ["#", print("name")]; + case "PrivateName": + return ["#", print("id")]; + case "InterpreterDirective": + parts.push("#!", node.value, hardline); + if (isNextLineEmpty(node, options)) { + parts.push(hardline); + } + return parts; + case "TopicReference": + return "%"; + case "ArgumentPlaceholder": + return "?"; + case "ModuleExpression": { + parts.push("module {"); + const printed = print("body"); + if (printed) { + parts.push(indent([hardline, printed]), hardline); + } + parts.push("}"); + return parts; + } + default: + throw new Error("unknown type: " + JSON.stringify(node.type)); + } + } + function printDirective(node, options) { + const raw = rawText(node); + const rawContent = raw.slice(1, -1); + if (rawContent.includes('"') || rawContent.includes("'")) { + return raw; + } + const enclosingQuote = options.singleQuote ? "'" : '"'; + return enclosingQuote + rawContent + enclosingQuote; + } + function canAttachComment(node) { + return node.type && !isBlockComment(node) && !isLineComment(node) && node.type !== "EmptyStatement" && node.type !== "TemplateElement" && node.type !== "Import" && node.type !== "TSEmptyBodyFunctionExpression"; + } + module2.exports = { + preprocess, + print: genericPrint, + embed, + insertPragma, + massageAstNode: clean, + hasPrettierIgnore(path) { + return hasIgnoreComment(path) || hasJsxIgnoreComment(path); + }, + willPrintOwnComments: handleComments.willPrintOwnComments, + canAttachComment, + printComment, + isBlockComment, + handleComments: { + avoidAstMutation: true, + ownLine: handleComments.handleOwnLineComment, + endOfLine: handleComments.handleEndOfLineComment, + remaining: handleComments.handleRemainingComment + }, + getCommentChildNodes: handleComments.getCommentChildNodes + }; + } +}); +var require_printer_estree_json = __commonJS2({ + "src/language-js/printer-estree-json.js"(exports2, module2) { + "use strict"; + var { + builders: { + hardline, + indent, + join + } + } = require("./doc.js"); + var preprocess = require_print_preprocess(); + function genericPrint(path, options, print) { + const node = path.getValue(); + switch (node.type) { + case "JsonRoot": + return [print("node"), hardline]; + case "ArrayExpression": { + if (node.elements.length === 0) { + return "[]"; + } + const printed = path.map(() => path.getValue() === null ? "null" : print(), "elements"); + return ["[", indent([hardline, join([",", hardline], printed)]), hardline, "]"]; + } + case "ObjectExpression": + return node.properties.length === 0 ? "{}" : ["{", indent([hardline, join([",", hardline], path.map(print, "properties"))]), hardline, "}"]; + case "ObjectProperty": + return [print("key"), ": ", print("value")]; + case "UnaryExpression": + return [node.operator === "+" ? "" : node.operator, print("argument")]; + case "NullLiteral": + return "null"; + case "BooleanLiteral": + return node.value ? "true" : "false"; + case "StringLiteral": + case "NumericLiteral": + return JSON.stringify(node.value); + case "Identifier": { + const parent = path.getParentNode(); + if (parent && parent.type === "ObjectProperty" && parent.key === node) { + return JSON.stringify(node.name); + } + return node.name; + } + case "TemplateLiteral": + return print(["quasis", 0]); + case "TemplateElement": + return JSON.stringify(node.value.cooked); + default: + throw new Error("unknown type: " + JSON.stringify(node.type)); + } + } + var ignoredProperties = /* @__PURE__ */ new Set(["start", "end", "extra", "loc", "comments", "leadingComments", "trailingComments", "innerComments", "errors", "range", "tokens"]); + function clean(node, newNode) { + const { + type + } = node; + if (type === "ObjectProperty" && node.key.type === "Identifier") { + newNode.key = { + type: "StringLiteral", + value: node.key.name + }; + return; + } + if (type === "UnaryExpression" && node.operator === "+") { + return newNode.argument; + } + if (type === "ArrayExpression") { + for (const [index, element] of node.elements.entries()) { + if (element === null) { + newNode.elements.splice(index, 0, { + type: "NullLiteral" + }); + } + } + return; + } + if (type === "TemplateLiteral") { + return { + type: "StringLiteral", + value: node.quasis[0].value.cooked + }; + } + } + clean.ignoredProperties = ignoredProperties; + module2.exports = { + preprocess, + print: genericPrint, + massageAstNode: clean + }; + } +}); +var require_common_options = __commonJS2({ + "src/common/common-options.js"(exports2, module2) { + "use strict"; + var CATEGORY_COMMON = "Common"; + module2.exports = { + bracketSpacing: { + since: "0.0.0", + category: CATEGORY_COMMON, + type: "boolean", + default: true, + description: "Print spaces between brackets.", + oppositeDescription: "Do not print spaces between brackets." + }, + singleQuote: { + since: "0.0.0", + category: CATEGORY_COMMON, + type: "boolean", + default: false, + description: "Use single quotes instead of double quotes." + }, + proseWrap: { + since: "1.8.2", + category: CATEGORY_COMMON, + type: "choice", + default: [{ + since: "1.8.2", + value: true + }, { + since: "1.9.0", + value: "preserve" + }], + description: "How to wrap prose.", + choices: [{ + since: "1.9.0", + value: "always", + description: "Wrap prose if it exceeds the print width." + }, { + since: "1.9.0", + value: "never", + description: "Do not wrap prose." + }, { + since: "1.9.0", + value: "preserve", + description: "Wrap prose as-is." + }] + }, + bracketSameLine: { + since: "2.4.0", + category: CATEGORY_COMMON, + type: "boolean", + default: false, + description: "Put > of opening tags on the last line instead of on a new line." + }, + singleAttributePerLine: { + since: "2.6.0", + category: CATEGORY_COMMON, + type: "boolean", + default: false, + description: "Enforce single attribute per line in HTML, Vue and JSX." + } + }; + } +}); +var require_options2 = __commonJS2({ + "src/language-js/options.js"(exports2, module2) { + "use strict"; + var commonOptions = require_common_options(); + var CATEGORY_JAVASCRIPT = "JavaScript"; + module2.exports = { + arrowParens: { + since: "1.9.0", + category: CATEGORY_JAVASCRIPT, + type: "choice", + default: [{ + since: "1.9.0", + value: "avoid" + }, { + since: "2.0.0", + value: "always" + }], + description: "Include parentheses around a sole arrow function parameter.", + choices: [{ + value: "always", + description: "Always include parens. Example: `(x) => x`" + }, { + value: "avoid", + description: "Omit parens when possible. Example: `x => x`" + }] + }, + bracketSameLine: commonOptions.bracketSameLine, + bracketSpacing: commonOptions.bracketSpacing, + jsxBracketSameLine: { + since: "0.17.0", + category: CATEGORY_JAVASCRIPT, + type: "boolean", + description: "Put > on the last line instead of at a new line.", + deprecated: "2.4.0" + }, + semi: { + since: "1.0.0", + category: CATEGORY_JAVASCRIPT, + type: "boolean", + default: true, + description: "Print semicolons.", + oppositeDescription: "Do not print semicolons, except at the beginning of lines which may need them." + }, + singleQuote: commonOptions.singleQuote, + jsxSingleQuote: { + since: "1.15.0", + category: CATEGORY_JAVASCRIPT, + type: "boolean", + default: false, + description: "Use single quotes in JSX." + }, + quoteProps: { + since: "1.17.0", + category: CATEGORY_JAVASCRIPT, + type: "choice", + default: "as-needed", + description: "Change when properties in objects are quoted.", + choices: [{ + value: "as-needed", + description: "Only add quotes around object properties where required." + }, { + value: "consistent", + description: "If at least one property in an object requires quotes, quote all properties." + }, { + value: "preserve", + description: "Respect the input use of quotes in object properties." + }] + }, + trailingComma: { + since: "0.0.0", + category: CATEGORY_JAVASCRIPT, + type: "choice", + default: [{ + since: "0.0.0", + value: false + }, { + since: "0.19.0", + value: "none" + }, { + since: "2.0.0", + value: "es5" + }], + description: "Print trailing commas wherever possible when multi-line.", + choices: [{ + value: "es5", + description: "Trailing commas where valid in ES5 (objects, arrays, etc.)" + }, { + value: "none", + description: "No trailing commas." + }, { + value: "all", + description: "Trailing commas wherever possible (including function arguments)." + }] + }, + singleAttributePerLine: commonOptions.singleAttributePerLine + }; + } +}); +var require_parsers = __commonJS2({ + "src/language-js/parse/parsers.js"(exports2, module2) { + "use strict"; + module2.exports = { + get babel() { + return require("./parser-babel.js").parsers.babel; + }, + get "babel-flow"() { + return require("./parser-babel.js").parsers["babel-flow"]; + }, + get "babel-ts"() { + return require("./parser-babel.js").parsers["babel-ts"]; + }, + get json() { + return require("./parser-babel.js").parsers.json; + }, + get json5() { + return require("./parser-babel.js").parsers.json5; + }, + get "json-stringify"() { + return require("./parser-babel.js").parsers["json-stringify"]; + }, + get __js_expression() { + return require("./parser-babel.js").parsers.__js_expression; + }, + get __vue_expression() { + return require("./parser-babel.js").parsers.__vue_expression; + }, + get __vue_ts_expression() { + return require("./parser-babel.js").parsers.__vue_ts_expression; + }, + get __vue_event_binding() { + return require("./parser-babel.js").parsers.__vue_event_binding; + }, + get __vue_ts_event_binding() { + return require("./parser-babel.js").parsers.__vue_ts_event_binding; + }, + get flow() { + return require("./parser-flow.js").parsers.flow; + }, + get typescript() { + return require("./parser-typescript.js").parsers.typescript; + }, + get __ng_action() { + return require("./parser-angular.js").parsers.__ng_action; + }, + get __ng_binding() { + return require("./parser-angular.js").parsers.__ng_binding; + }, + get __ng_interpolation() { + return require("./parser-angular.js").parsers.__ng_interpolation; + }, + get __ng_directive() { + return require("./parser-angular.js").parsers.__ng_directive; + }, + get acorn() { + return require("./parser-espree.js").parsers.acorn; + }, + get espree() { + return require("./parser-espree.js").parsers.espree; + }, + get meriyah() { + return require("./parser-meriyah.js").parsers.meriyah; + }, + get __babel_estree() { + return require("./parser-babel.js").parsers.__babel_estree; + } + }; + } +}); +var require_JavaScript = __commonJS2({ + "node_modules/linguist-languages/data/JavaScript.json"(exports2, module2) { + module2.exports = { + name: "JavaScript", + type: "programming", + tmScope: "source.js", + aceMode: "javascript", + codemirrorMode: "javascript", + codemirrorMimeType: "text/javascript", + color: "#f1e05a", + aliases: ["js", "node"], + extensions: [".js", "._js", ".bones", ".cjs", ".es", ".es6", ".frag", ".gs", ".jake", ".javascript", ".jsb", ".jscad", ".jsfl", ".jslib", ".jsm", ".jspre", ".jss", ".jsx", ".mjs", ".njs", ".pac", ".sjs", ".ssjs", ".xsjs", ".xsjslib"], + filenames: ["Jakefile"], + interpreters: ["chakra", "d8", "gjs", "js", "node", "nodejs", "qjs", "rhino", "v8", "v8-shell"], + languageId: 183 + }; + } +}); +var require_TypeScript = __commonJS2({ + "node_modules/linguist-languages/data/TypeScript.json"(exports2, module2) { + module2.exports = { + name: "TypeScript", + type: "programming", + color: "#3178c6", + aliases: ["ts"], + interpreters: ["deno", "ts-node"], + extensions: [".ts", ".cts", ".mts"], + tmScope: "source.ts", + aceMode: "typescript", + codemirrorMode: "javascript", + codemirrorMimeType: "application/typescript", + languageId: 378 + }; + } +}); +var require_TSX = __commonJS2({ + "node_modules/linguist-languages/data/TSX.json"(exports2, module2) { + module2.exports = { + name: "TSX", + type: "programming", + color: "#3178c6", + group: "TypeScript", + extensions: [".tsx"], + tmScope: "source.tsx", + aceMode: "javascript", + codemirrorMode: "jsx", + codemirrorMimeType: "text/jsx", + languageId: 94901924 + }; + } +}); +var require_JSON = __commonJS2({ + "node_modules/linguist-languages/data/JSON.json"(exports2, module2) { + module2.exports = { + name: "JSON", + type: "data", + color: "#292929", + tmScope: "source.json", + aceMode: "json", + codemirrorMode: "javascript", + codemirrorMimeType: "application/json", + aliases: ["geojson", "jsonl", "topojson"], + extensions: [".json", ".4DForm", ".4DProject", ".avsc", ".geojson", ".gltf", ".har", ".ice", ".JSON-tmLanguage", ".jsonl", ".mcmeta", ".tfstate", ".tfstate.backup", ".topojson", ".webapp", ".webmanifest", ".yy", ".yyp"], + filenames: [".arcconfig", ".auto-changelog", ".c8rc", ".htmlhintrc", ".imgbotconfig", ".nycrc", ".tern-config", ".tern-project", ".watchmanconfig", "Pipfile.lock", "composer.lock", "mcmod.info"], + languageId: 174 + }; + } +}); +var require_JSON_with_Comments = __commonJS2({ + "node_modules/linguist-languages/data/JSON with Comments.json"(exports2, module2) { + module2.exports = { + name: "JSON with Comments", + type: "data", + color: "#292929", + group: "JSON", + tmScope: "source.js", + aceMode: "javascript", + codemirrorMode: "javascript", + codemirrorMimeType: "text/javascript", + aliases: ["jsonc"], + extensions: [".jsonc", ".code-snippets", ".sublime-build", ".sublime-commands", ".sublime-completions", ".sublime-keymap", ".sublime-macro", ".sublime-menu", ".sublime-mousemap", ".sublime-project", ".sublime-settings", ".sublime-theme", ".sublime-workspace", ".sublime_metrics", ".sublime_session"], + filenames: [".babelrc", ".devcontainer.json", ".eslintrc.json", ".jscsrc", ".jshintrc", ".jslintrc", "api-extractor.json", "devcontainer.json", "jsconfig.json", "language-configuration.json", "tsconfig.json", "tslint.json"], + languageId: 423 + }; + } +}); +var require_JSON5 = __commonJS2({ + "node_modules/linguist-languages/data/JSON5.json"(exports2, module2) { + module2.exports = { + name: "JSON5", + type: "data", + color: "#267CB9", + extensions: [".json5"], + tmScope: "source.js", + aceMode: "javascript", + codemirrorMode: "javascript", + codemirrorMimeType: "application/json", + languageId: 175 + }; + } +}); +var require_language_js = __commonJS2({ + "src/language-js/index.js"(exports2, module2) { + "use strict"; + var createLanguage = require_create_language(); + var estreePrinter = require_printer_estree(); + var estreeJsonPrinter = require_printer_estree_json(); + var options = require_options2(); + var parsers = require_parsers(); + var languages = [createLanguage(require_JavaScript(), (data) => ({ + since: "0.0.0", + parsers: ["babel", "acorn", "espree", "meriyah", "babel-flow", "babel-ts", "flow", "typescript"], + vscodeLanguageIds: ["javascript", "mongo"], + interpreters: [...data.interpreters, "zx"], + extensions: [...data.extensions.filter((extension) => extension !== ".jsx"), ".wxs"] + })), createLanguage(require_JavaScript(), () => ({ + name: "Flow", + since: "0.0.0", + parsers: ["flow", "babel-flow"], + vscodeLanguageIds: ["javascript"], + aliases: [], + filenames: [], + extensions: [".js.flow"] + })), createLanguage(require_JavaScript(), () => ({ + name: "JSX", + since: "0.0.0", + parsers: ["babel", "babel-flow", "babel-ts", "flow", "typescript", "espree", "meriyah"], + vscodeLanguageIds: ["javascriptreact"], + aliases: void 0, + filenames: void 0, + extensions: [".jsx"], + group: "JavaScript", + interpreters: void 0, + tmScope: "source.js.jsx", + aceMode: "javascript", + codemirrorMode: "jsx", + codemirrorMimeType: "text/jsx", + color: void 0 + })), createLanguage(require_TypeScript(), () => ({ + since: "1.4.0", + parsers: ["typescript", "babel-ts"], + vscodeLanguageIds: ["typescript"] + })), createLanguage(require_TSX(), () => ({ + since: "1.4.0", + parsers: ["typescript", "babel-ts"], + vscodeLanguageIds: ["typescriptreact"] + })), createLanguage(require_JSON(), () => ({ + name: "JSON.stringify", + since: "1.13.0", + parsers: ["json-stringify"], + vscodeLanguageIds: ["json"], + extensions: [".importmap"], + filenames: ["package.json", "package-lock.json", "composer.json"] + })), createLanguage(require_JSON(), (data) => ({ + since: "1.5.0", + parsers: ["json"], + vscodeLanguageIds: ["json"], + extensions: data.extensions.filter((extension) => extension !== ".jsonl") + })), createLanguage(require_JSON_with_Comments(), (data) => ({ + since: "1.5.0", + parsers: ["json"], + vscodeLanguageIds: ["jsonc"], + filenames: [...data.filenames, ".eslintrc", ".swcrc"] + })), createLanguage(require_JSON5(), () => ({ + since: "1.13.0", + parsers: ["json5"], + vscodeLanguageIds: ["json5"] + }))]; + var printers = { + estree: estreePrinter, + "estree-json": estreeJsonPrinter + }; + module2.exports = { + languages, + options, + printers, + parsers + }; + } +}); +var require_clean2 = __commonJS2({ + "src/language-css/clean.js"(exports2, module2) { + "use strict"; + var { + isFrontMatterNode + } = require_util(); + var getLast = require_get_last(); + var ignoredProperties = /* @__PURE__ */ new Set(["raw", "raws", "sourceIndex", "source", "before", "after", "trailingComma"]); + function clean(ast, newObj, parent) { + if (isFrontMatterNode(ast) && ast.lang === "yaml") { + delete newObj.value; + } + if (ast.type === "css-comment" && parent.type === "css-root" && parent.nodes.length > 0) { + if (parent.nodes[0] === ast || isFrontMatterNode(parent.nodes[0]) && parent.nodes[1] === ast) { + delete newObj.text; + if (/^\*\s*@(?:format|prettier)\s*$/.test(ast.text)) { + return null; + } + } + if (parent.type === "css-root" && getLast(parent.nodes) === ast) { + return null; + } + } + if (ast.type === "value-root") { + delete newObj.text; + } + if (ast.type === "media-query" || ast.type === "media-query-list" || ast.type === "media-feature-expression") { + delete newObj.value; + } + if (ast.type === "css-rule") { + delete newObj.params; + } + if (ast.type === "selector-combinator") { + newObj.value = newObj.value.replace(/\s+/g, " "); + } + if (ast.type === "media-feature") { + newObj.value = newObj.value.replace(/ /g, ""); + } + if (ast.type === "value-word" && (ast.isColor && ast.isHex || ["initial", "inherit", "unset", "revert"].includes(newObj.value.replace().toLowerCase())) || ast.type === "media-feature" || ast.type === "selector-root-invalid" || ast.type === "selector-pseudo") { + newObj.value = newObj.value.toLowerCase(); + } + if (ast.type === "css-decl") { + newObj.prop = newObj.prop.toLowerCase(); + } + if (ast.type === "css-atrule" || ast.type === "css-import") { + newObj.name = newObj.name.toLowerCase(); + } + if (ast.type === "value-number") { + newObj.unit = newObj.unit.toLowerCase(); + } + if ((ast.type === "media-feature" || ast.type === "media-keyword" || ast.type === "media-type" || ast.type === "media-unknown" || ast.type === "media-url" || ast.type === "media-value" || ast.type === "selector-attribute" || ast.type === "selector-string" || ast.type === "selector-class" || ast.type === "selector-combinator" || ast.type === "value-string") && newObj.value) { + newObj.value = cleanCSSStrings(newObj.value); + } + if (ast.type === "selector-attribute") { + newObj.attribute = newObj.attribute.trim(); + if (newObj.namespace) { + if (typeof newObj.namespace === "string") { + newObj.namespace = newObj.namespace.trim(); + if (newObj.namespace.length === 0) { + newObj.namespace = true; + } + } + } + if (newObj.value) { + newObj.value = newObj.value.trim().replace(/^["']|["']$/g, ""); + delete newObj.quoted; + } + } + if ((ast.type === "media-value" || ast.type === "media-type" || ast.type === "value-number" || ast.type === "selector-root-invalid" || ast.type === "selector-class" || ast.type === "selector-combinator" || ast.type === "selector-tag") && newObj.value) { + newObj.value = newObj.value.replace(/([\d+.Ee-]+)([A-Za-z]*)/g, (match, numStr, unit) => { + const num = Number(numStr); + return Number.isNaN(num) ? match : num + unit.toLowerCase(); + }); + } + if (ast.type === "selector-tag") { + const lowercasedValue = ast.value.toLowerCase(); + if (["from", "to"].includes(lowercasedValue)) { + newObj.value = lowercasedValue; + } + } + if (ast.type === "css-atrule" && ast.name.toLowerCase() === "supports") { + delete newObj.value; + } + if (ast.type === "selector-unknown") { + delete newObj.value; + } + if (ast.type === "value-comma_group") { + const index = ast.groups.findIndex((node) => node.type === "value-number" && node.unit === "..."); + if (index !== -1) { + newObj.groups[index].unit = ""; + newObj.groups.splice(index + 1, 0, { + type: "value-word", + value: "...", + isColor: false, + isHex: false + }); + } + } + } + clean.ignoredProperties = ignoredProperties; + function cleanCSSStrings(value) { + return value.replace(/'/g, '"').replace(/\\([^\dA-Fa-f])/g, "$1"); + } + module2.exports = clean; + } +}); +var require_print = __commonJS2({ + "src/utils/front-matter/print.js"(exports2, module2) { + "use strict"; + var { + builders: { + hardline, + markAsRoot + } + } = require("./doc.js"); + function print(node, textToDoc) { + if (node.lang === "yaml") { + const value = node.value.trim(); + const doc2 = value ? textToDoc(value, { + parser: "yaml" + }, { + stripTrailingHardline: true + }) : ""; + return markAsRoot([node.startDelimiter, hardline, doc2, doc2 ? hardline : "", node.endDelimiter]); + } + } + module2.exports = print; + } +}); +var require_embed2 = __commonJS2({ + "src/language-css/embed.js"(exports2, module2) { + "use strict"; + var { + builders: { + hardline + } + } = require("./doc.js"); + var printFrontMatter = require_print(); + function embed(path, print, textToDoc) { + const node = path.getValue(); + if (node.type === "front-matter") { + const doc2 = printFrontMatter(node, textToDoc); + return doc2 ? [doc2, hardline] : ""; + } + } + module2.exports = embed; + } +}); +var require_parse4 = __commonJS2({ + "src/utils/front-matter/parse.js"(exports2, module2) { + "use strict"; + var frontMatterRegex = new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)", "s"); + function parse(text) { + const match = text.match(frontMatterRegex); + if (!match) { + return { + content: text + }; + } + const { + startDelimiter, + language, + value = "", + endDelimiter + } = match.groups; + let lang = language.trim() || "yaml"; + if (startDelimiter === "+++") { + lang = "toml"; + } + if (lang !== "yaml" && startDelimiter !== endDelimiter) { + return { + content: text + }; + } + const [raw] = match; + const frontMatter = { + type: "front-matter", + lang, + value, + startDelimiter, + endDelimiter, + raw: raw.replace(/\n$/, "") + }; + return { + frontMatter, + content: raw.replace(/[^\n]/g, " ") + text.slice(raw.length) + }; + } + module2.exports = parse; + } +}); +var require_pragma2 = __commonJS2({ + "src/language-css/pragma.js"(exports2, module2) { + "use strict"; + var jsPragma = require_pragma(); + var parseFrontMatter = require_parse4(); + function hasPragma(text) { + return jsPragma.hasPragma(parseFrontMatter(text).content); + } + function insertPragma(text) { + const { + frontMatter, + content + } = parseFrontMatter(text); + return (frontMatter ? frontMatter.raw + "\n\n" : "") + jsPragma.insertPragma(content); + } + module2.exports = { + hasPragma, + insertPragma + }; + } +}); +var require_utils8 = __commonJS2({ + "src/language-css/utils/index.js"(exports2, module2) { + "use strict"; + var colorAdjusterFunctions = /* @__PURE__ */ new Set(["red", "green", "blue", "alpha", "a", "rgb", "hue", "h", "saturation", "s", "lightness", "l", "whiteness", "w", "blackness", "b", "tint", "shade", "blend", "blenda", "contrast", "hsl", "hsla", "hwb", "hwba"]); + function getAncestorCounter(path, typeOrTypes) { + const types = Array.isArray(typeOrTypes) ? typeOrTypes : [typeOrTypes]; + let counter = -1; + let ancestorNode; + while (ancestorNode = path.getParentNode(++counter)) { + if (types.includes(ancestorNode.type)) { + return counter; + } + } + return -1; + } + function getAncestorNode(path, typeOrTypes) { + const counter = getAncestorCounter(path, typeOrTypes); + return counter === -1 ? null : path.getParentNode(counter); + } + function getPropOfDeclNode(path) { + var _declAncestorNode$pro; + const declAncestorNode = getAncestorNode(path, "css-decl"); + return declAncestorNode === null || declAncestorNode === void 0 ? void 0 : (_declAncestorNode$pro = declAncestorNode.prop) === null || _declAncestorNode$pro === void 0 ? void 0 : _declAncestorNode$pro.toLowerCase(); + } + var wideKeywords = /* @__PURE__ */ new Set(["initial", "inherit", "unset", "revert"]); + function isWideKeywords(value) { + return wideKeywords.has(value.toLowerCase()); + } + function isKeyframeAtRuleKeywords(path, value) { + const atRuleAncestorNode = getAncestorNode(path, "css-atrule"); + return (atRuleAncestorNode === null || atRuleAncestorNode === void 0 ? void 0 : atRuleAncestorNode.name) && atRuleAncestorNode.name.toLowerCase().endsWith("keyframes") && ["from", "to"].includes(value.toLowerCase()); + } + function maybeToLowerCase(value) { + return value.includes("$") || value.includes("@") || value.includes("#") || value.startsWith("%") || value.startsWith("--") || value.startsWith(":--") || value.includes("(") && value.includes(")") ? value : value.toLowerCase(); + } + function insideValueFunctionNode(path, functionName) { + var _funcAncestorNode$val; + const funcAncestorNode = getAncestorNode(path, "value-func"); + return (funcAncestorNode === null || funcAncestorNode === void 0 ? void 0 : (_funcAncestorNode$val = funcAncestorNode.value) === null || _funcAncestorNode$val === void 0 ? void 0 : _funcAncestorNode$val.toLowerCase()) === functionName; + } + function insideICSSRuleNode(path) { + var _ruleAncestorNode$raw; + const ruleAncestorNode = getAncestorNode(path, "css-rule"); + const selector = ruleAncestorNode === null || ruleAncestorNode === void 0 ? void 0 : (_ruleAncestorNode$raw = ruleAncestorNode.raws) === null || _ruleAncestorNode$raw === void 0 ? void 0 : _ruleAncestorNode$raw.selector; + return selector && (selector.startsWith(":import") || selector.startsWith(":export")); + } + function insideAtRuleNode(path, atRuleNameOrAtRuleNames) { + const atRuleNames = Array.isArray(atRuleNameOrAtRuleNames) ? atRuleNameOrAtRuleNames : [atRuleNameOrAtRuleNames]; + const atRuleAncestorNode = getAncestorNode(path, "css-atrule"); + return atRuleAncestorNode && atRuleNames.includes(atRuleAncestorNode.name.toLowerCase()); + } + function insideURLFunctionInImportAtRuleNode(path) { + const node = path.getValue(); + const atRuleAncestorNode = getAncestorNode(path, "css-atrule"); + return (atRuleAncestorNode === null || atRuleAncestorNode === void 0 ? void 0 : atRuleAncestorNode.name) === "import" && node.groups[0].value === "url" && node.groups.length === 2; + } + function isURLFunctionNode(node) { + return node.type === "value-func" && node.value.toLowerCase() === "url"; + } + function isLastNode(path, node) { + var _path$getParentNode; + const nodes = (_path$getParentNode = path.getParentNode()) === null || _path$getParentNode === void 0 ? void 0 : _path$getParentNode.nodes; + return nodes && nodes.indexOf(node) === nodes.length - 1; + } + function isDetachedRulesetDeclarationNode(node) { + const { + selector + } = node; + if (!selector) { + return false; + } + return typeof selector === "string" && /^@.+:.*$/.test(selector) || selector.value && /^@.+:.*$/.test(selector.value); + } + function isForKeywordNode(node) { + return node.type === "value-word" && ["from", "through", "end"].includes(node.value); + } + function isIfElseKeywordNode(node) { + return node.type === "value-word" && ["and", "or", "not"].includes(node.value); + } + function isEachKeywordNode(node) { + return node.type === "value-word" && node.value === "in"; + } + function isMultiplicationNode(node) { + return node.type === "value-operator" && node.value === "*"; + } + function isDivisionNode(node) { + return node.type === "value-operator" && node.value === "/"; + } + function isAdditionNode(node) { + return node.type === "value-operator" && node.value === "+"; + } + function isSubtractionNode(node) { + return node.type === "value-operator" && node.value === "-"; + } + function isModuloNode(node) { + return node.type === "value-operator" && node.value === "%"; + } + function isMathOperatorNode(node) { + return isMultiplicationNode(node) || isDivisionNode(node) || isAdditionNode(node) || isSubtractionNode(node) || isModuloNode(node); + } + function isEqualityOperatorNode(node) { + return node.type === "value-word" && ["==", "!="].includes(node.value); + } + function isRelationalOperatorNode(node) { + return node.type === "value-word" && ["<", ">", "<=", ">="].includes(node.value); + } + function isSCSSControlDirectiveNode(node) { + return node.type === "css-atrule" && ["if", "else", "for", "each", "while"].includes(node.name); + } + function isDetachedRulesetCallNode(node) { + var _node$raws; + return ((_node$raws = node.raws) === null || _node$raws === void 0 ? void 0 : _node$raws.params) && /^\(\s*\)$/.test(node.raws.params); + } + function isTemplatePlaceholderNode(node) { + return node.name.startsWith("prettier-placeholder"); + } + function isTemplatePropNode(node) { + return node.prop.startsWith("@prettier-placeholder"); + } + function isPostcssSimpleVarNode(currentNode, nextNode) { + return currentNode.value === "$$" && currentNode.type === "value-func" && (nextNode === null || nextNode === void 0 ? void 0 : nextNode.type) === "value-word" && !nextNode.raws.before; + } + function hasComposesNode(node) { + var _node$value, _node$value$group; + return ((_node$value = node.value) === null || _node$value === void 0 ? void 0 : _node$value.type) === "value-root" && ((_node$value$group = node.value.group) === null || _node$value$group === void 0 ? void 0 : _node$value$group.type) === "value-value" && node.prop.toLowerCase() === "composes"; + } + function hasParensAroundNode(node) { + var _node$value2, _node$value2$group, _node$value2$group$gr; + return ((_node$value2 = node.value) === null || _node$value2 === void 0 ? void 0 : (_node$value2$group = _node$value2.group) === null || _node$value2$group === void 0 ? void 0 : (_node$value2$group$gr = _node$value2$group.group) === null || _node$value2$group$gr === void 0 ? void 0 : _node$value2$group$gr.type) === "value-paren_group" && node.value.group.group.open !== null && node.value.group.group.close !== null; + } + function hasEmptyRawBefore(node) { + var _node$raws2; + return ((_node$raws2 = node.raws) === null || _node$raws2 === void 0 ? void 0 : _node$raws2.before) === ""; + } + function isKeyValuePairNode(node) { + var _node$groups, _node$groups$; + return node.type === "value-comma_group" && ((_node$groups = node.groups) === null || _node$groups === void 0 ? void 0 : (_node$groups$ = _node$groups[1]) === null || _node$groups$ === void 0 ? void 0 : _node$groups$.type) === "value-colon"; + } + function isKeyValuePairInParenGroupNode(node) { + var _node$groups2; + return node.type === "value-paren_group" && ((_node$groups2 = node.groups) === null || _node$groups2 === void 0 ? void 0 : _node$groups2[0]) && isKeyValuePairNode(node.groups[0]); + } + function isSCSSMapItemNode(path) { + var _declNode$prop; + const node = path.getValue(); + if (node.groups.length === 0) { + return false; + } + const parentParentNode = path.getParentNode(1); + if (!isKeyValuePairInParenGroupNode(node) && !(parentParentNode && isKeyValuePairInParenGroupNode(parentParentNode))) { + return false; + } + const declNode = getAncestorNode(path, "css-decl"); + if (declNode !== null && declNode !== void 0 && (_declNode$prop = declNode.prop) !== null && _declNode$prop !== void 0 && _declNode$prop.startsWith("$")) { + return true; + } + if (isKeyValuePairInParenGroupNode(parentParentNode)) { + return true; + } + if (parentParentNode.type === "value-func") { + return true; + } + return false; + } + function isInlineValueCommentNode(node) { + return node.type === "value-comment" && node.inline; + } + function isHashNode(node) { + return node.type === "value-word" && node.value === "#"; + } + function isLeftCurlyBraceNode(node) { + return node.type === "value-word" && node.value === "{"; + } + function isRightCurlyBraceNode(node) { + return node.type === "value-word" && node.value === "}"; + } + function isWordNode(node) { + return ["value-word", "value-atword"].includes(node.type); + } + function isColonNode(node) { + return (node === null || node === void 0 ? void 0 : node.type) === "value-colon"; + } + function isKeyInValuePairNode(node, parentNode) { + if (!isKeyValuePairNode(parentNode)) { + return false; + } + const { + groups + } = parentNode; + const index = groups.indexOf(node); + if (index === -1) { + return false; + } + return isColonNode(groups[index + 1]); + } + function isMediaAndSupportsKeywords(node) { + return node.value && ["not", "and", "or"].includes(node.value.toLowerCase()); + } + function isColorAdjusterFuncNode(node) { + if (node.type !== "value-func") { + return false; + } + return colorAdjusterFunctions.has(node.value.toLowerCase()); + } + function lastLineHasInlineComment(text) { + return /\/\//.test(text.split(/[\n\r]/).pop()); + } + function isAtWordPlaceholderNode(node) { + return (node === null || node === void 0 ? void 0 : node.type) === "value-atword" && node.value.startsWith("prettier-placeholder-"); + } + function isConfigurationNode(node, parentNode) { + var _node$open, _node$close; + if (((_node$open = node.open) === null || _node$open === void 0 ? void 0 : _node$open.value) !== "(" || ((_node$close = node.close) === null || _node$close === void 0 ? void 0 : _node$close.value) !== ")" || node.groups.some((group) => group.type !== "value-comma_group")) { + return false; + } + if (parentNode.type === "value-comma_group") { + const prevIdx = parentNode.groups.indexOf(node) - 1; + const maybeWithNode = parentNode.groups[prevIdx]; + if ((maybeWithNode === null || maybeWithNode === void 0 ? void 0 : maybeWithNode.type) === "value-word" && maybeWithNode.value === "with") { + return true; + } + } + return false; + } + function isParenGroupNode(node) { + var _node$open2, _node$close2; + return node.type === "value-paren_group" && ((_node$open2 = node.open) === null || _node$open2 === void 0 ? void 0 : _node$open2.value) === "(" && ((_node$close2 = node.close) === null || _node$close2 === void 0 ? void 0 : _node$close2.value) === ")"; + } + module2.exports = { + getAncestorCounter, + getAncestorNode, + getPropOfDeclNode, + maybeToLowerCase, + insideValueFunctionNode, + insideICSSRuleNode, + insideAtRuleNode, + insideURLFunctionInImportAtRuleNode, + isKeyframeAtRuleKeywords, + isWideKeywords, + isLastNode, + isSCSSControlDirectiveNode, + isDetachedRulesetDeclarationNode, + isRelationalOperatorNode, + isEqualityOperatorNode, + isMultiplicationNode, + isDivisionNode, + isAdditionNode, + isSubtractionNode, + isModuloNode, + isMathOperatorNode, + isEachKeywordNode, + isForKeywordNode, + isURLFunctionNode, + isIfElseKeywordNode, + hasComposesNode, + hasParensAroundNode, + hasEmptyRawBefore, + isDetachedRulesetCallNode, + isTemplatePlaceholderNode, + isTemplatePropNode, + isPostcssSimpleVarNode, + isKeyValuePairNode, + isKeyValuePairInParenGroupNode, + isKeyInValuePairNode, + isSCSSMapItemNode, + isInlineValueCommentNode, + isHashNode, + isLeftCurlyBraceNode, + isRightCurlyBraceNode, + isWordNode, + isColonNode, + isMediaAndSupportsKeywords, + isColorAdjusterFuncNode, + lastLineHasInlineComment, + isAtWordPlaceholderNode, + isConfigurationNode, + isParenGroupNode + }; + } +}); +var require_line_column_to_index = __commonJS2({ + "src/utils/line-column-to-index.js"(exports2, module2) { + "use strict"; + module2.exports = function(lineColumn, text) { + let index = 0; + for (let i = 0; i < lineColumn.line - 1; ++i) { + index = text.indexOf("\n", index) + 1; + } + return index + lineColumn.column; + }; + } +}); +var require_loc2 = __commonJS2({ + "src/language-css/loc.js"(exports2, module2) { + "use strict"; + var { + skipEverythingButNewLine + } = require_skip(); + var getLast = require_get_last(); + var lineColumnToIndex = require_line_column_to_index(); + function calculateLocStart(node, text) { + if (typeof node.sourceIndex === "number") { + return node.sourceIndex; + } + return node.source ? lineColumnToIndex(node.source.start, text) - 1 : null; + } + function calculateLocEnd(node, text) { + if (node.type === "css-comment" && node.inline) { + return skipEverythingButNewLine(text, node.source.startOffset); + } + const endNode = node.nodes && getLast(node.nodes); + if (endNode && node.source && !node.source.end) { + node = endNode; + } + if (node.source && node.source.end) { + return lineColumnToIndex(node.source.end, text); + } + return null; + } + function calculateLoc(node, text) { + if (node.source) { + node.source.startOffset = calculateLocStart(node, text); + node.source.endOffset = calculateLocEnd(node, text); + } + for (const key in node) { + const child = node[key]; + if (key === "source" || !child || typeof child !== "object") { + continue; + } + if (child.type === "value-root" || child.type === "value-unknown") { + calculateValueNodeLoc(child, getValueRootOffset(node), child.text || child.value); + } else { + calculateLoc(child, text); + } + } + } + function calculateValueNodeLoc(node, rootOffset, text) { + if (node.source) { + node.source.startOffset = calculateLocStart(node, text) + rootOffset; + node.source.endOffset = calculateLocEnd(node, text) + rootOffset; + } + for (const key in node) { + const child = node[key]; + if (key === "source" || !child || typeof child !== "object") { + continue; + } + calculateValueNodeLoc(child, rootOffset, text); + } + } + function getValueRootOffset(node) { + let result = node.source.startOffset; + if (typeof node.prop === "string") { + result += node.prop.length; + } + if (node.type === "css-atrule" && typeof node.name === "string") { + result += 1 + node.name.length + node.raws.afterName.match(/^\s*:?\s*/)[0].length; + } + if (node.type !== "css-atrule" && node.raws && typeof node.raws.between === "string") { + result += node.raws.between.length; + } + return result; + } + function replaceQuotesInInlineComments(text) { + let state = "initial"; + let stateToReturnFromQuotes = "initial"; + let inlineCommentStartIndex; + let inlineCommentContainsQuotes = false; + const inlineCommentsToReplace = []; + for (let i = 0; i < text.length; i++) { + const c = text[i]; + switch (state) { + case "initial": + if (c === "'") { + state = "single-quotes"; + continue; + } + if (c === '"') { + state = "double-quotes"; + continue; + } + if ((c === "u" || c === "U") && text.slice(i, i + 4).toLowerCase() === "url(") { + state = "url"; + i += 3; + continue; + } + if (c === "*" && text[i - 1] === "/") { + state = "comment-block"; + continue; + } + if (c === "/" && text[i - 1] === "/") { + state = "comment-inline"; + inlineCommentStartIndex = i - 1; + continue; + } + continue; + case "single-quotes": + if (c === "'" && text[i - 1] !== "\\") { + state = stateToReturnFromQuotes; + stateToReturnFromQuotes = "initial"; + } + if (c === "\n" || c === "\r") { + return text; + } + continue; + case "double-quotes": + if (c === '"' && text[i - 1] !== "\\") { + state = stateToReturnFromQuotes; + stateToReturnFromQuotes = "initial"; + } + if (c === "\n" || c === "\r") { + return text; + } + continue; + case "url": + if (c === ")") { + state = "initial"; + } + if (c === "\n" || c === "\r") { + return text; + } + if (c === "'") { + state = "single-quotes"; + stateToReturnFromQuotes = "url"; + continue; + } + if (c === '"') { + state = "double-quotes"; + stateToReturnFromQuotes = "url"; + continue; + } + continue; + case "comment-block": + if (c === "/" && text[i - 1] === "*") { + state = "initial"; + } + continue; + case "comment-inline": + if (c === '"' || c === "'" || c === "*") { + inlineCommentContainsQuotes = true; + } + if (c === "\n" || c === "\r") { + if (inlineCommentContainsQuotes) { + inlineCommentsToReplace.push([inlineCommentStartIndex, i]); + } + state = "initial"; + inlineCommentContainsQuotes = false; + } + continue; + } + } + for (const [start, end] of inlineCommentsToReplace) { + text = text.slice(0, start) + text.slice(start, end).replace(/["'*]/g, " ") + text.slice(end); + } + return text; + } + function locStart(node) { + return node.source.startOffset; + } + function locEnd(node) { + return node.source.endOffset; + } + module2.exports = { + locStart, + locEnd, + calculateLoc, + replaceQuotesInInlineComments + }; + } +}); +var require_is_less_parser = __commonJS2({ + "src/language-css/utils/is-less-parser.js"(exports2, module2) { + "use strict"; + function isLessParser(options) { + return options.parser === "css" || options.parser === "less"; + } + module2.exports = isLessParser; + } +}); +var require_is_scss = __commonJS2({ + "src/language-css/utils/is-scss.js"(exports2, module2) { + "use strict"; + function isSCSS(parser, text) { + const hasExplicitParserChoice = parser === "less" || parser === "scss"; + const IS_POSSIBLY_SCSS = /(?:\w\s*:\s*[^:}]+|#){|@import[^\n]+(?:url|,)/; + return hasExplicitParserChoice ? parser === "scss" : IS_POSSIBLY_SCSS.test(text); + } + module2.exports = isSCSS; + } +}); +var require_css_units_evaluate = __commonJS2({ + "src/language-css/utils/css-units.evaluate.js"(exports2, module2) { + module2.exports = { + em: "em", + rem: "rem", + ex: "ex", + rex: "rex", + cap: "cap", + rcap: "rcap", + ch: "ch", + rch: "rch", + ic: "ic", + ric: "ric", + lh: "lh", + rlh: "rlh", + vw: "vw", + svw: "svw", + lvw: "lvw", + dvw: "dvw", + vh: "vh", + svh: "svh", + lvh: "lvh", + dvh: "dvh", + vi: "vi", + svi: "svi", + lvi: "lvi", + dvi: "dvi", + vb: "vb", + svb: "svb", + lvb: "lvb", + dvb: "dvb", + vmin: "vmin", + svmin: "svmin", + lvmin: "lvmin", + dvmin: "dvmin", + vmax: "vmax", + svmax: "svmax", + lvmax: "lvmax", + dvmax: "dvmax", + cm: "cm", + mm: "mm", + q: "Q", + in: "in", + pt: "pt", + pc: "pc", + px: "px", + deg: "deg", + grad: "grad", + rad: "rad", + turn: "turn", + s: "s", + ms: "ms", + hz: "Hz", + khz: "kHz", + dpi: "dpi", + dpcm: "dpcm", + dppx: "dppx", + x: "x" + }; + } +}); +var require_print_unit = __commonJS2({ + "src/language-css/utils/print-unit.js"(exports2, module2) { + "use strict"; + var CSS_UNITS = require_css_units_evaluate(); + function printUnit(unit) { + const lowercased = unit.toLowerCase(); + return Object.prototype.hasOwnProperty.call(CSS_UNITS, lowercased) ? CSS_UNITS[lowercased] : unit; + } + module2.exports = printUnit; + } +}); +var require_printer_postcss = __commonJS2({ + "src/language-css/printer-postcss.js"(exports2, module2) { + "use strict"; + var getLast = require_get_last(); + var { + printNumber, + printString, + hasNewline, + isFrontMatterNode, + isNextLineEmpty, + isNonEmptyArray + } = require_util(); + var { + builders: { + join, + line, + hardline, + softline, + group, + fill, + indent, + dedent, + ifBreak, + breakParent + }, + utils: { + removeLines, + getDocParts + } + } = require("./doc.js"); + var clean = require_clean2(); + var embed = require_embed2(); + var { + insertPragma + } = require_pragma2(); + var { + getAncestorNode, + getPropOfDeclNode, + maybeToLowerCase, + insideValueFunctionNode, + insideICSSRuleNode, + insideAtRuleNode, + insideURLFunctionInImportAtRuleNode, + isKeyframeAtRuleKeywords, + isWideKeywords, + isLastNode, + isSCSSControlDirectiveNode, + isDetachedRulesetDeclarationNode, + isRelationalOperatorNode, + isEqualityOperatorNode, + isMultiplicationNode, + isDivisionNode, + isAdditionNode, + isSubtractionNode, + isMathOperatorNode, + isEachKeywordNode, + isForKeywordNode, + isURLFunctionNode, + isIfElseKeywordNode, + hasComposesNode, + hasParensAroundNode, + hasEmptyRawBefore, + isKeyValuePairNode, + isKeyInValuePairNode, + isDetachedRulesetCallNode, + isTemplatePlaceholderNode, + isTemplatePropNode, + isPostcssSimpleVarNode, + isSCSSMapItemNode, + isInlineValueCommentNode, + isHashNode, + isLeftCurlyBraceNode, + isRightCurlyBraceNode, + isWordNode, + isColonNode, + isMediaAndSupportsKeywords, + isColorAdjusterFuncNode, + lastLineHasInlineComment, + isAtWordPlaceholderNode, + isConfigurationNode, + isParenGroupNode + } = require_utils8(); + var { + locStart, + locEnd + } = require_loc2(); + var isLessParser = require_is_less_parser(); + var isSCSS = require_is_scss(); + var printUnit = require_print_unit(); + function shouldPrintComma(options) { + return options.trailingComma === "es5" || options.trailingComma === "all"; + } + function genericPrint(path, options, print) { + const node = path.getValue(); + if (!node) { + return ""; + } + if (typeof node === "string") { + return node; + } + switch (node.type) { + case "front-matter": + return [node.raw, hardline]; + case "css-root": { + const nodes = printNodeSequence(path, options, print); + const after = node.raws.after.trim(); + return [nodes, after ? ` ${after}` : "", getDocParts(nodes).length > 0 ? hardline : ""]; + } + case "css-comment": { + const isInlineComment = node.inline || node.raws.inline; + const text = options.originalText.slice(locStart(node), locEnd(node)); + return isInlineComment ? text.trimEnd() : text; + } + case "css-rule": { + return [print("selector"), node.important ? " !important" : "", node.nodes ? [node.selector && node.selector.type === "selector-unknown" && lastLineHasInlineComment(node.selector.value) ? line : " ", "{", node.nodes.length > 0 ? indent([hardline, printNodeSequence(path, options, print)]) : "", hardline, "}", isDetachedRulesetDeclarationNode(node) ? ";" : ""] : ";"]; + } + case "css-decl": { + const parentNode = path.getParentNode(); + const { + between: rawBetween + } = node.raws; + const trimmedBetween = rawBetween.trim(); + const isColon = trimmedBetween === ":"; + let value = hasComposesNode(node) ? removeLines(print("value")) : print("value"); + if (!isColon && lastLineHasInlineComment(trimmedBetween)) { + value = indent([hardline, dedent(value)]); + } + return [node.raws.before.replace(/[\s;]/g, ""), insideICSSRuleNode(path) ? node.prop : maybeToLowerCase(node.prop), trimmedBetween.startsWith("//") ? " " : "", trimmedBetween, node.extend ? "" : " ", isLessParser(options) && node.extend && node.selector ? ["extend(", print("selector"), ")"] : "", value, node.raws.important ? node.raws.important.replace(/\s*!\s*important/i, " !important") : node.important ? " !important" : "", node.raws.scssDefault ? node.raws.scssDefault.replace(/\s*!default/i, " !default") : node.scssDefault ? " !default" : "", node.raws.scssGlobal ? node.raws.scssGlobal.replace(/\s*!global/i, " !global") : node.scssGlobal ? " !global" : "", node.nodes ? [" {", indent([softline, printNodeSequence(path, options, print)]), softline, "}"] : isTemplatePropNode(node) && !parentNode.raws.semicolon && options.originalText[locEnd(node) - 1] !== ";" ? "" : options.__isHTMLStyleAttribute && isLastNode(path, node) ? ifBreak(";") : ";"]; + } + case "css-atrule": { + const parentNode = path.getParentNode(); + const isTemplatePlaceholderNodeWithoutSemiColon = isTemplatePlaceholderNode(node) && !parentNode.raws.semicolon && options.originalText[locEnd(node) - 1] !== ";"; + if (isLessParser(options)) { + if (node.mixin) { + return [print("selector"), node.important ? " !important" : "", isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; + } + if (node.function) { + return [node.name, print("params"), isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; + } + if (node.variable) { + return ["@", node.name, ": ", node.value ? print("value") : "", node.raws.between.trim() ? node.raws.between.trim() + " " : "", node.nodes ? ["{", indent([node.nodes.length > 0 ? softline : "", printNodeSequence(path, options, print)]), softline, "}"] : "", isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; + } + } + return ["@", isDetachedRulesetCallNode(node) || node.name.endsWith(":") ? node.name : maybeToLowerCase(node.name), node.params ? [isDetachedRulesetCallNode(node) ? "" : isTemplatePlaceholderNode(node) ? node.raws.afterName === "" ? "" : node.name.endsWith(":") ? " " : /^\s*\n\s*\n/.test(node.raws.afterName) ? [hardline, hardline] : /^\s*\n/.test(node.raws.afterName) ? hardline : " " : " ", print("params")] : "", node.selector ? indent([" ", print("selector")]) : "", node.value ? group([" ", print("value"), isSCSSControlDirectiveNode(node) ? hasParensAroundNode(node) ? " " : line : ""]) : node.name === "else" ? " " : "", node.nodes ? [isSCSSControlDirectiveNode(node) ? "" : node.selector && !node.selector.nodes && typeof node.selector.value === "string" && lastLineHasInlineComment(node.selector.value) || !node.selector && typeof node.params === "string" && lastLineHasInlineComment(node.params) ? line : " ", "{", indent([node.nodes.length > 0 ? softline : "", printNodeSequence(path, options, print)]), softline, "}"] : isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; + } + case "media-query-list": { + const parts = []; + path.each((childPath) => { + const node2 = childPath.getValue(); + if (node2.type === "media-query" && node2.value === "") { + return; + } + parts.push(print()); + }, "nodes"); + return group(indent(join(line, parts))); + } + case "media-query": { + return [join(" ", path.map(print, "nodes")), isLastNode(path, node) ? "" : ","]; + } + case "media-type": { + return adjustNumbers(adjustStrings(node.value, options)); + } + case "media-feature-expression": { + if (!node.nodes) { + return node.value; + } + return ["(", ...path.map(print, "nodes"), ")"]; + } + case "media-feature": { + return maybeToLowerCase(adjustStrings(node.value.replace(/ +/g, " "), options)); + } + case "media-colon": { + return [node.value, " "]; + } + case "media-value": { + return adjustNumbers(adjustStrings(node.value, options)); + } + case "media-keyword": { + return adjustStrings(node.value, options); + } + case "media-url": { + return adjustStrings(node.value.replace(/^url\(\s+/gi, "url(").replace(/\s+\)$/g, ")"), options); + } + case "media-unknown": { + return node.value; + } + case "selector-root": { + return group([insideAtRuleNode(path, "custom-selector") ? [getAncestorNode(path, "css-atrule").customSelector, line] : "", join([",", insideAtRuleNode(path, ["extend", "custom-selector", "nest"]) ? line : hardline], path.map(print, "nodes"))]); + } + case "selector-selector": { + return group(indent(path.map(print, "nodes"))); + } + case "selector-comment": { + return node.value; + } + case "selector-string": { + return adjustStrings(node.value, options); + } + case "selector-tag": { + const parentNode = path.getParentNode(); + const index = parentNode && parentNode.nodes.indexOf(node); + const prevNode = index && parentNode.nodes[index - 1]; + return [node.namespace ? [node.namespace === true ? "" : node.namespace.trim(), "|"] : "", prevNode.type === "selector-nesting" ? node.value : adjustNumbers(isKeyframeAtRuleKeywords(path, node.value) ? node.value.toLowerCase() : node.value)]; + } + case "selector-id": { + return ["#", node.value]; + } + case "selector-class": { + return [".", adjustNumbers(adjustStrings(node.value, options))]; + } + case "selector-attribute": { + return ["[", node.namespace ? [node.namespace === true ? "" : node.namespace.trim(), "|"] : "", node.attribute.trim(), node.operator ? node.operator : "", node.value ? quoteAttributeValue(adjustStrings(node.value.trim(), options), options) : "", node.insensitive ? " i" : "", "]"]; + } + case "selector-combinator": { + if (node.value === "+" || node.value === ">" || node.value === "~" || node.value === ">>>") { + const parentNode = path.getParentNode(); + const leading2 = parentNode.type === "selector-selector" && parentNode.nodes[0] === node ? "" : line; + return [leading2, node.value, isLastNode(path, node) ? "" : " "]; + } + const leading = node.value.trim().startsWith("(") ? line : ""; + const value = adjustNumbers(adjustStrings(node.value.trim(), options)) || line; + return [leading, value]; + } + case "selector-universal": { + return [node.namespace ? [node.namespace === true ? "" : node.namespace.trim(), "|"] : "", node.value]; + } + case "selector-pseudo": { + return [maybeToLowerCase(node.value), isNonEmptyArray(node.nodes) ? ["(", join(", ", path.map(print, "nodes")), ")"] : ""]; + } + case "selector-nesting": { + return node.value; + } + case "selector-unknown": { + const ruleAncestorNode = getAncestorNode(path, "css-rule"); + if (ruleAncestorNode && ruleAncestorNode.isSCSSNesterProperty) { + return adjustNumbers(adjustStrings(maybeToLowerCase(node.value), options)); + } + const parentNode = path.getParentNode(); + if (parentNode.raws && parentNode.raws.selector) { + const start = locStart(parentNode); + const end = start + parentNode.raws.selector.length; + return options.originalText.slice(start, end).trim(); + } + const grandParent = path.getParentNode(1); + if (parentNode.type === "value-paren_group" && grandParent && grandParent.type === "value-func" && grandParent.value === "selector") { + const start = locEnd(parentNode.open) + 1; + const end = locStart(parentNode.close); + const selector = options.originalText.slice(start, end).trim(); + return lastLineHasInlineComment(selector) ? [breakParent, selector] : selector; + } + return node.value; + } + case "value-value": + case "value-root": { + return print("group"); + } + case "value-comment": { + return options.originalText.slice(locStart(node), locEnd(node)); + } + case "value-comma_group": { + const parentNode = path.getParentNode(); + const parentParentNode = path.getParentNode(1); + const declAncestorProp = getPropOfDeclNode(path); + const isGridValue = declAncestorProp && parentNode.type === "value-value" && (declAncestorProp === "grid" || declAncestorProp.startsWith("grid-template")); + const atRuleAncestorNode = getAncestorNode(path, "css-atrule"); + const isControlDirective = atRuleAncestorNode && isSCSSControlDirectiveNode(atRuleAncestorNode); + const hasInlineComment = node.groups.some((node2) => isInlineValueCommentNode(node2)); + const printed = path.map(print, "groups"); + const parts = []; + const insideURLFunction = insideValueFunctionNode(path, "url"); + let insideSCSSInterpolationInString = false; + let didBreak = false; + for (let i = 0; i < node.groups.length; ++i) { + parts.push(printed[i]); + const iPrevNode = node.groups[i - 1]; + const iNode = node.groups[i]; + const iNextNode = node.groups[i + 1]; + const iNextNextNode = node.groups[i + 2]; + if (insideURLFunction) { + if (iNextNode && isAdditionNode(iNextNode) || isAdditionNode(iNode)) { + parts.push(" "); + } + continue; + } + if (insideAtRuleNode(path, "forward") && iNode.type === "value-word" && iNode.value && iPrevNode !== void 0 && iPrevNode.type === "value-word" && iPrevNode.value === "as" && iNextNode.type === "value-operator" && iNextNode.value === "*") { + continue; + } + if (!iNextNode) { + continue; + } + if (iNode.type === "value-word" && iNode.value.endsWith("-") && isAtWordPlaceholderNode(iNextNode)) { + continue; + } + const isStartSCSSInterpolationInString = iNode.type === "value-string" && iNode.value.startsWith("#{"); + const isEndingSCSSInterpolationInString = insideSCSSInterpolationInString && iNextNode.type === "value-string" && iNextNode.value.endsWith("}"); + if (isStartSCSSInterpolationInString || isEndingSCSSInterpolationInString) { + insideSCSSInterpolationInString = !insideSCSSInterpolationInString; + continue; + } + if (insideSCSSInterpolationInString) { + continue; + } + if (isColonNode(iNode) || isColonNode(iNextNode)) { + continue; + } + if (iNode.type === "value-atword" && iNode.value === "") { + continue; + } + if (iNode.value === "~") { + continue; + } + if (iNode.value && iNode.value.includes("\\") && iNextNode && iNextNode.type !== "value-comment") { + continue; + } + if (iPrevNode && iPrevNode.value && iPrevNode.value.indexOf("\\") === iPrevNode.value.length - 1 && iNode.type === "value-operator" && iNode.value === "/") { + continue; + } + if (iNode.value === "\\") { + continue; + } + if (isPostcssSimpleVarNode(iNode, iNextNode)) { + continue; + } + if (isHashNode(iNode) || isLeftCurlyBraceNode(iNode) || isRightCurlyBraceNode(iNextNode) || isLeftCurlyBraceNode(iNextNode) && hasEmptyRawBefore(iNextNode) || isRightCurlyBraceNode(iNode) && hasEmptyRawBefore(iNextNode)) { + continue; + } + if (iNode.value === "--" && isHashNode(iNextNode)) { + continue; + } + const isMathOperator = isMathOperatorNode(iNode); + const isNextMathOperator = isMathOperatorNode(iNextNode); + if ((isMathOperator && isHashNode(iNextNode) || isNextMathOperator && isRightCurlyBraceNode(iNode)) && hasEmptyRawBefore(iNextNode)) { + continue; + } + if (!iPrevNode && isDivisionNode(iNode)) { + continue; + } + if (insideValueFunctionNode(path, "calc") && (isAdditionNode(iNode) || isAdditionNode(iNextNode) || isSubtractionNode(iNode) || isSubtractionNode(iNextNode)) && hasEmptyRawBefore(iNextNode)) { + continue; + } + const isColorAdjusterNode = (isAdditionNode(iNode) || isSubtractionNode(iNode)) && i === 0 && (iNextNode.type === "value-number" || iNextNode.isHex) && parentParentNode && isColorAdjusterFuncNode(parentParentNode) && !hasEmptyRawBefore(iNextNode); + const requireSpaceBeforeOperator = iNextNextNode && iNextNextNode.type === "value-func" || iNextNextNode && isWordNode(iNextNextNode) || iNode.type === "value-func" || isWordNode(iNode); + const requireSpaceAfterOperator = iNextNode.type === "value-func" || isWordNode(iNextNode) || iPrevNode && iPrevNode.type === "value-func" || iPrevNode && isWordNode(iPrevNode); + if (!(isMultiplicationNode(iNextNode) || isMultiplicationNode(iNode)) && !insideValueFunctionNode(path, "calc") && !isColorAdjusterNode && (isDivisionNode(iNextNode) && !requireSpaceBeforeOperator || isDivisionNode(iNode) && !requireSpaceAfterOperator || isAdditionNode(iNextNode) && !requireSpaceBeforeOperator || isAdditionNode(iNode) && !requireSpaceAfterOperator || isSubtractionNode(iNextNode) || isSubtractionNode(iNode)) && (hasEmptyRawBefore(iNextNode) || isMathOperator && (!iPrevNode || iPrevNode && isMathOperatorNode(iPrevNode)))) { + continue; + } + if (isInlineValueCommentNode(iNode)) { + if (parentNode.type === "value-paren_group") { + parts.push(dedent(hardline)); + continue; + } + parts.push(hardline); + continue; + } + if (isControlDirective && (isEqualityOperatorNode(iNextNode) || isRelationalOperatorNode(iNextNode) || isIfElseKeywordNode(iNextNode) || isEachKeywordNode(iNode) || isForKeywordNode(iNode))) { + parts.push(" "); + continue; + } + if (atRuleAncestorNode && atRuleAncestorNode.name.toLowerCase() === "namespace") { + parts.push(" "); + continue; + } + if (isGridValue) { + if (iNode.source && iNextNode.source && iNode.source.start.line !== iNextNode.source.start.line) { + parts.push(hardline); + didBreak = true; + } else { + parts.push(" "); + } + continue; + } + if (isNextMathOperator) { + parts.push(" "); + continue; + } + if (iNextNode && iNextNode.value === "...") { + continue; + } + if (isAtWordPlaceholderNode(iNode) && isAtWordPlaceholderNode(iNextNode) && locEnd(iNode) === locStart(iNextNode)) { + continue; + } + if (isAtWordPlaceholderNode(iNode) && isParenGroupNode(iNextNode) && locEnd(iNode) === locStart(iNextNode.open)) { + parts.push(softline); + continue; + } + if (iNode.value === "with" && isParenGroupNode(iNextNode)) { + parts.push(" "); + continue; + } + parts.push(line); + } + if (hasInlineComment) { + parts.push(breakParent); + } + if (didBreak) { + parts.unshift(hardline); + } + if (isControlDirective) { + return group(indent(parts)); + } + if (insideURLFunctionInImportAtRuleNode(path)) { + return group(fill(parts)); + } + return group(indent(fill(parts))); + } + case "value-paren_group": { + const parentNode = path.getParentNode(); + if (parentNode && isURLFunctionNode(parentNode) && (node.groups.length === 1 || node.groups.length > 0 && node.groups[0].type === "value-comma_group" && node.groups[0].groups.length > 0 && node.groups[0].groups[0].type === "value-word" && node.groups[0].groups[0].value.startsWith("data:"))) { + return [node.open ? print("open") : "", join(",", path.map(print, "groups")), node.close ? print("close") : ""]; + } + if (!node.open) { + const printed2 = path.map(print, "groups"); + const res = []; + for (let i = 0; i < printed2.length; i++) { + if (i !== 0) { + res.push([",", line]); + } + res.push(printed2[i]); + } + return group(indent(fill(res))); + } + const isSCSSMapItem = isSCSSMapItemNode(path); + const lastItem = getLast(node.groups); + const isLastItemComment = lastItem && lastItem.type === "value-comment"; + const isKey = isKeyInValuePairNode(node, parentNode); + const isConfiguration = isConfigurationNode(node, parentNode); + const shouldBreak = isConfiguration || isSCSSMapItem && !isKey; + const shouldDedent = isConfiguration || isKey; + const printed = group([node.open ? print("open") : "", indent([softline, join([line], path.map((childPath, index) => { + const child = childPath.getValue(); + const isLast = index === node.groups.length - 1; + const printed2 = [print(), isLast ? "" : ","]; + if (isKeyValuePairNode(child) && child.type === "value-comma_group" && child.groups && child.groups[0].type !== "value-paren_group" && child.groups[2] && child.groups[2].type === "value-paren_group") { + const parts = getDocParts(printed2[0].contents.contents); + parts[1] = group(parts[1]); + return group(dedent(printed2)); + } + if (!isLast && child.type === "value-comma_group" && isNonEmptyArray(child.groups)) { + const last = getLast(child.groups); + if (last.source && isNextLineEmpty(options.originalText, last, locEnd)) { + printed2.push(hardline); + } + } + return printed2; + }, "groups"))]), ifBreak(!isLastItemComment && isSCSS(options.parser, options.originalText) && isSCSSMapItem && shouldPrintComma(options) ? "," : ""), softline, node.close ? print("close") : ""], { + shouldBreak + }); + return shouldDedent ? dedent(printed) : printed; + } + case "value-func": { + return [node.value, insideAtRuleNode(path, "supports") && isMediaAndSupportsKeywords(node) ? " " : "", print("group")]; + } + case "value-paren": { + return node.value; + } + case "value-number": { + return [printCssNumber(node.value), printUnit(node.unit)]; + } + case "value-operator": { + return node.value; + } + case "value-word": { + if (node.isColor && node.isHex || isWideKeywords(node.value)) { + return node.value.toLowerCase(); + } + return node.value; + } + case "value-colon": { + const parentNode = path.getParentNode(); + const index = parentNode && parentNode.groups.indexOf(node); + const prevNode = index && parentNode.groups[index - 1]; + return [node.value, prevNode && typeof prevNode.value === "string" && getLast(prevNode.value) === "\\" || insideValueFunctionNode(path, "url") ? "" : line]; + } + case "value-comma": { + return [node.value, " "]; + } + case "value-string": { + return printString(node.raws.quote + node.value + node.raws.quote, options); + } + case "value-atword": { + return ["@", node.value]; + } + case "value-unicode-range": { + return node.value; + } + case "value-unknown": { + return node.value; + } + default: + throw new Error(`Unknown postcss type ${JSON.stringify(node.type)}`); + } + } + function printNodeSequence(path, options, print) { + const parts = []; + path.each((pathChild, i, nodes) => { + const prevNode = nodes[i - 1]; + if (prevNode && prevNode.type === "css-comment" && prevNode.text.trim() === "prettier-ignore") { + const childNode = pathChild.getValue(); + parts.push(options.originalText.slice(locStart(childNode), locEnd(childNode))); + } else { + parts.push(print()); + } + if (i !== nodes.length - 1) { + if (nodes[i + 1].type === "css-comment" && !hasNewline(options.originalText, locStart(nodes[i + 1]), { + backwards: true + }) && !isFrontMatterNode(nodes[i]) || nodes[i + 1].type === "css-atrule" && nodes[i + 1].name === "else" && nodes[i].type !== "css-comment") { + parts.push(" "); + } else { + parts.push(options.__isHTMLStyleAttribute ? line : hardline); + if (isNextLineEmpty(options.originalText, pathChild.getValue(), locEnd) && !isFrontMatterNode(nodes[i])) { + parts.push(hardline); + } + } + } + }, "nodes"); + return parts; + } + var STRING_REGEX = /(["'])(?:(?!\1)[^\\]|\\.)*\1/gs; + var NUMBER_REGEX = /(?:\d*\.\d+|\d+\.?)(?:[Ee][+-]?\d+)?/g; + var STANDARD_UNIT_REGEX = /[A-Za-z]+/g; + var WORD_PART_REGEX = /[$@]?[A-Z_a-z\u0080-\uFFFF][\w\u0080-\uFFFF-]*/g; + var ADJUST_NUMBERS_REGEX = new RegExp(STRING_REGEX.source + `|(${WORD_PART_REGEX.source})?(${NUMBER_REGEX.source})(${STANDARD_UNIT_REGEX.source})?`, "g"); + function adjustStrings(value, options) { + return value.replace(STRING_REGEX, (match) => printString(match, options)); + } + function quoteAttributeValue(value, options) { + const quote = options.singleQuote ? "'" : '"'; + return value.includes('"') || value.includes("'") ? value : quote + value + quote; + } + function adjustNumbers(value) { + return value.replace(ADJUST_NUMBERS_REGEX, (match, quote, wordPart, number, unit) => !wordPart && number ? printCssNumber(number) + maybeToLowerCase(unit || "") : match); + } + function printCssNumber(rawNumber) { + return printNumber(rawNumber).replace(/\.0(?=$|e)/, ""); + } + module2.exports = { + print: genericPrint, + embed, + insertPragma, + massageAstNode: clean + }; + } +}); +var require_options3 = __commonJS2({ + "src/language-css/options.js"(exports2, module2) { + "use strict"; + var commonOptions = require_common_options(); + module2.exports = { + singleQuote: commonOptions.singleQuote + }; + } +}); +var require_parsers2 = __commonJS2({ + "src/language-css/parsers.js"(exports2, module2) { + "use strict"; + module2.exports = { + get css() { + return require("./parser-postcss.js").parsers.css; + }, + get less() { + return require("./parser-postcss.js").parsers.less; + }, + get scss() { + return require("./parser-postcss.js").parsers.scss; + } + }; + } +}); +var require_CSS = __commonJS2({ + "node_modules/linguist-languages/data/CSS.json"(exports2, module2) { + module2.exports = { + name: "CSS", + type: "markup", + tmScope: "source.css", + aceMode: "css", + codemirrorMode: "css", + codemirrorMimeType: "text/css", + color: "#563d7c", + extensions: [".css"], + languageId: 50 + }; + } +}); +var require_PostCSS = __commonJS2({ + "node_modules/linguist-languages/data/PostCSS.json"(exports2, module2) { + module2.exports = { + name: "PostCSS", + type: "markup", + color: "#dc3a0c", + tmScope: "source.postcss", + group: "CSS", + extensions: [".pcss", ".postcss"], + aceMode: "text", + languageId: 262764437 + }; + } +}); +var require_Less = __commonJS2({ + "node_modules/linguist-languages/data/Less.json"(exports2, module2) { + module2.exports = { + name: "Less", + type: "markup", + color: "#1d365d", + aliases: ["less-css"], + extensions: [".less"], + tmScope: "source.css.less", + aceMode: "less", + codemirrorMode: "css", + codemirrorMimeType: "text/css", + languageId: 198 + }; + } +}); +var require_SCSS = __commonJS2({ + "node_modules/linguist-languages/data/SCSS.json"(exports2, module2) { + module2.exports = { + name: "SCSS", + type: "markup", + color: "#c6538c", + tmScope: "source.css.scss", + aceMode: "scss", + codemirrorMode: "css", + codemirrorMimeType: "text/x-scss", + extensions: [".scss"], + languageId: 329 + }; + } +}); +var require_language_css = __commonJS2({ + "src/language-css/index.js"(exports2, module2) { + "use strict"; + var createLanguage = require_create_language(); + var printer = require_printer_postcss(); + var options = require_options3(); + var parsers = require_parsers2(); + var languages = [createLanguage(require_CSS(), (data) => ({ + since: "1.4.0", + parsers: ["css"], + vscodeLanguageIds: ["css"], + extensions: [...data.extensions, ".wxss"] + })), createLanguage(require_PostCSS(), () => ({ + since: "1.4.0", + parsers: ["css"], + vscodeLanguageIds: ["postcss"] + })), createLanguage(require_Less(), () => ({ + since: "1.4.0", + parsers: ["less"], + vscodeLanguageIds: ["less"] + })), createLanguage(require_SCSS(), () => ({ + since: "1.4.0", + parsers: ["scss"], + vscodeLanguageIds: ["scss"] + }))]; + var printers = { + postcss: printer + }; + module2.exports = { + languages, + options, + printers, + parsers + }; + } +}); +var require_loc3 = __commonJS2({ + "src/language-handlebars/loc.js"(exports2, module2) { + "use strict"; + function locStart(node) { + return node.loc.start.offset; + } + function locEnd(node) { + return node.loc.end.offset; + } + module2.exports = { + locStart, + locEnd + }; + } +}); +var require_clean3 = __commonJS2({ + "src/language-handlebars/clean.js"(exports2, module2) { + "use strict"; + function clean(ast, newNode) { + if (ast.type === "TextNode") { + const trimmed = ast.chars.trim(); + if (!trimmed) { + return null; + } + newNode.chars = trimmed.replace(/[\t\n\f\r ]+/g, " "); + } + if (ast.type === "AttrNode" && ast.name.toLowerCase() === "class") { + delete newNode.value; + } + } + clean.ignoredProperties = /* @__PURE__ */ new Set(["loc", "selfClosing"]); + module2.exports = clean; + } +}); +var require_html_void_elements = __commonJS2({ + "vendors/html-void-elements.json"(exports2, module2) { + module2.exports = { + htmlVoidElements: ["area", "base", "basefont", "bgsound", "br", "col", "command", "embed", "frame", "hr", "image", "img", "input", "isindex", "keygen", "link", "menuitem", "meta", "nextid", "param", "source", "track", "wbr"] + }; + } +}); +var require_utils9 = __commonJS2({ + "src/language-handlebars/utils.js"(exports2, module2) { + "use strict"; + var { + htmlVoidElements + } = require_html_void_elements(); + var getLast = require_get_last(); + function isLastNodeOfSiblings(path) { + const node = path.getValue(); + const parentNode = path.getParentNode(0); + if (isParentOfSomeType(path, ["ElementNode"]) && getLast(parentNode.children) === node) { + return true; + } + if (isParentOfSomeType(path, ["Block"]) && getLast(parentNode.body) === node) { + return true; + } + return false; + } + function isUppercase(string) { + return string.toUpperCase() === string; + } + function isGlimmerComponent(node) { + return isNodeOfSomeType(node, ["ElementNode"]) && typeof node.tag === "string" && !node.tag.startsWith(":") && (isUppercase(node.tag[0]) || node.tag.includes(".")); + } + var voidTags = new Set(htmlVoidElements); + function isVoid(node) { + return voidTags.has(node.tag) || isGlimmerComponent(node) && node.children.every((node2) => isWhitespaceNode(node2)); + } + function isWhitespaceNode(node) { + return isNodeOfSomeType(node, ["TextNode"]) && !/\S/.test(node.chars); + } + function isNodeOfSomeType(node, types) { + return node && types.includes(node.type); + } + function isParentOfSomeType(path, types) { + const parentNode = path.getParentNode(0); + return isNodeOfSomeType(parentNode, types); + } + function isPreviousNodeOfSomeType(path, types) { + const previousNode = getPreviousNode(path); + return isNodeOfSomeType(previousNode, types); + } + function isNextNodeOfSomeType(path, types) { + const nextNode = getNextNode(path); + return isNodeOfSomeType(nextNode, types); + } + function getSiblingNode(path, offset) { + var _path$getParentNode2, _ref7, _ref8, _parentNode$children; + const node = path.getValue(); + const parentNode = (_path$getParentNode2 = path.getParentNode(0)) !== null && _path$getParentNode2 !== void 0 ? _path$getParentNode2 : {}; + const children = (_ref7 = (_ref8 = (_parentNode$children = parentNode.children) !== null && _parentNode$children !== void 0 ? _parentNode$children : parentNode.body) !== null && _ref8 !== void 0 ? _ref8 : parentNode.parts) !== null && _ref7 !== void 0 ? _ref7 : []; + const index = children.indexOf(node); + return index !== -1 && children[index + offset]; + } + function getPreviousNode(path, lookBack = 1) { + return getSiblingNode(path, -lookBack); + } + function getNextNode(path) { + return getSiblingNode(path, 1); + } + function isPrettierIgnoreNode(node) { + return isNodeOfSomeType(node, ["MustacheCommentStatement"]) && typeof node.value === "string" && node.value.trim() === "prettier-ignore"; + } + function hasPrettierIgnore(path) { + const node = path.getValue(); + const previousPreviousNode = getPreviousNode(path, 2); + return isPrettierIgnoreNode(node) || isPrettierIgnoreNode(previousPreviousNode); + } + module2.exports = { + getNextNode, + getPreviousNode, + hasPrettierIgnore, + isLastNodeOfSiblings, + isNextNodeOfSomeType, + isNodeOfSomeType, + isParentOfSomeType, + isPreviousNodeOfSomeType, + isVoid, + isWhitespaceNode + }; + } +}); +var require_printer_glimmer = __commonJS2({ + "src/language-handlebars/printer-glimmer.js"(exports2, module2) { + "use strict"; + var { + builders: { + dedent, + fill, + group, + hardline, + ifBreak, + indent, + join, + line, + softline + }, + utils: { + getDocParts, + replaceTextEndOfLine + } + } = require("./doc.js"); + var { + getPreferredQuote, + isNonEmptyArray + } = require_util(); + var { + locStart, + locEnd + } = require_loc3(); + var clean = require_clean3(); + var { + getNextNode, + getPreviousNode, + hasPrettierIgnore, + isLastNodeOfSiblings, + isNextNodeOfSomeType, + isNodeOfSomeType, + isParentOfSomeType, + isPreviousNodeOfSomeType, + isVoid, + isWhitespaceNode + } = require_utils9(); + var NEWLINES_TO_PRESERVE_MAX = 2; + function print(path, options, print2) { + const node = path.getValue(); + if (!node) { + return ""; + } + if (hasPrettierIgnore(path)) { + return options.originalText.slice(locStart(node), locEnd(node)); + } + const favoriteQuote = options.singleQuote ? "'" : '"'; + switch (node.type) { + case "Block": + case "Program": + case "Template": { + return group(path.map(print2, "body")); + } + case "ElementNode": { + const startingTag = group(printStartingTag(path, print2)); + const escapeNextElementNode = options.htmlWhitespaceSensitivity === "ignore" && isNextNodeOfSomeType(path, ["ElementNode"]) ? softline : ""; + if (isVoid(node)) { + return [startingTag, escapeNextElementNode]; + } + const endingTag = [""]; + if (node.children.length === 0) { + return [startingTag, indent(endingTag), escapeNextElementNode]; + } + if (options.htmlWhitespaceSensitivity === "ignore") { + return [startingTag, indent(printChildren(path, options, print2)), hardline, indent(endingTag), escapeNextElementNode]; + } + return [startingTag, indent(group(printChildren(path, options, print2))), indent(endingTag), escapeNextElementNode]; + } + case "BlockStatement": { + const pp = path.getParentNode(1); + const isElseIf = pp && pp.inverse && pp.inverse.body.length === 1 && pp.inverse.body[0] === node && pp.inverse.body[0].path.parts[0] === "if"; + if (isElseIf) { + return [printElseIfBlock(path, print2), printProgram(path, print2, options), printInverse(path, print2, options)]; + } + return [printOpenBlock(path, print2), group([printProgram(path, print2, options), printInverse(path, print2, options), printCloseBlock(path, print2, options)])]; + } + case "ElementModifierStatement": { + return group(["{{", printPathAndParams(path, print2), "}}"]); + } + case "MustacheStatement": { + return group([printOpeningMustache(node), printPathAndParams(path, print2), printClosingMustache(node)]); + } + case "SubExpression": { + return group(["(", printSubExpressionPathAndParams(path, print2), softline, ")"]); + } + case "AttrNode": { + const isText = node.value.type === "TextNode"; + const isEmptyText = isText && node.value.chars === ""; + if (isEmptyText && locStart(node.value) === locEnd(node.value)) { + return node.name; + } + const quote = isText ? getPreferredQuote(node.value.chars, favoriteQuote).quote : node.value.type === "ConcatStatement" ? getPreferredQuote(node.value.parts.filter((part) => part.type === "TextNode").map((part) => part.chars).join(""), favoriteQuote).quote : ""; + const valueDoc = print2("value"); + return [node.name, "=", quote, node.name === "class" && quote ? group(indent(valueDoc)) : valueDoc, quote]; + } + case "ConcatStatement": { + return path.map(print2, "parts"); + } + case "Hash": { + return join(line, path.map(print2, "pairs")); + } + case "HashPair": { + return [node.key, "=", print2("value")]; + } + case "TextNode": { + let text = node.chars.replace(/{{/g, "\\{{"); + const attrName = getCurrentAttributeName(path); + if (attrName) { + if (attrName === "class") { + const formattedClasses = text.trim().split(/\s+/).join(" "); + let leadingSpace2 = false; + let trailingSpace2 = false; + if (isParentOfSomeType(path, ["ConcatStatement"])) { + if (isPreviousNodeOfSomeType(path, ["MustacheStatement"]) && /^\s/.test(text)) { + leadingSpace2 = true; + } + if (isNextNodeOfSomeType(path, ["MustacheStatement"]) && /\s$/.test(text) && formattedClasses !== "") { + trailingSpace2 = true; + } + } + return [leadingSpace2 ? line : "", formattedClasses, trailingSpace2 ? line : ""]; + } + return replaceTextEndOfLine(text); + } + const whitespacesOnlyRE = /^[\t\n\f\r ]*$/; + const isWhitespaceOnly = whitespacesOnlyRE.test(text); + const isFirstElement = !getPreviousNode(path); + const isLastElement = !getNextNode(path); + if (options.htmlWhitespaceSensitivity !== "ignore") { + const leadingWhitespacesRE = /^[\t\n\f\r ]*/; + const trailingWhitespacesRE = /[\t\n\f\r ]*$/; + const shouldTrimTrailingNewlines = isLastElement && isParentOfSomeType(path, ["Template"]); + const shouldTrimLeadingNewlines = isFirstElement && isParentOfSomeType(path, ["Template"]); + if (isWhitespaceOnly) { + if (shouldTrimLeadingNewlines || shouldTrimTrailingNewlines) { + return ""; + } + let breaks = [line]; + const newlines = countNewLines(text); + if (newlines) { + breaks = generateHardlines(newlines); + } + if (isLastNodeOfSiblings(path)) { + breaks = breaks.map((newline) => dedent(newline)); + } + return breaks; + } + const [lead] = text.match(leadingWhitespacesRE); + const [tail] = text.match(trailingWhitespacesRE); + let leadBreaks = []; + if (lead) { + leadBreaks = [line]; + const leadingNewlines = countNewLines(lead); + if (leadingNewlines) { + leadBreaks = generateHardlines(leadingNewlines); + } + text = text.replace(leadingWhitespacesRE, ""); + } + let trailBreaks = []; + if (tail) { + if (!shouldTrimTrailingNewlines) { + trailBreaks = [line]; + const trailingNewlines = countNewLines(tail); + if (trailingNewlines) { + trailBreaks = generateHardlines(trailingNewlines); + } + if (isLastNodeOfSiblings(path)) { + trailBreaks = trailBreaks.map((hardline2) => dedent(hardline2)); + } + } + text = text.replace(trailingWhitespacesRE, ""); + } + return [...leadBreaks, fill(getTextValueParts(text)), ...trailBreaks]; + } + const lineBreaksCount = countNewLines(text); + let leadingLineBreaksCount = countLeadingNewLines(text); + let trailingLineBreaksCount = countTrailingNewLines(text); + if ((isFirstElement || isLastElement) && isWhitespaceOnly && isParentOfSomeType(path, ["Block", "ElementNode", "Template"])) { + return ""; + } + if (isWhitespaceOnly && lineBreaksCount) { + leadingLineBreaksCount = Math.min(lineBreaksCount, NEWLINES_TO_PRESERVE_MAX); + trailingLineBreaksCount = 0; + } else { + if (isNextNodeOfSomeType(path, ["BlockStatement", "ElementNode"])) { + trailingLineBreaksCount = Math.max(trailingLineBreaksCount, 1); + } + if (isPreviousNodeOfSomeType(path, ["BlockStatement", "ElementNode"])) { + leadingLineBreaksCount = Math.max(leadingLineBreaksCount, 1); + } + } + let leadingSpace = ""; + let trailingSpace = ""; + if (trailingLineBreaksCount === 0 && isNextNodeOfSomeType(path, ["MustacheStatement"])) { + trailingSpace = " "; + } + if (leadingLineBreaksCount === 0 && isPreviousNodeOfSomeType(path, ["MustacheStatement"])) { + leadingSpace = " "; + } + if (isFirstElement) { + leadingLineBreaksCount = 0; + leadingSpace = ""; + } + if (isLastElement) { + trailingLineBreaksCount = 0; + trailingSpace = ""; + } + text = text.replace(/^[\t\n\f\r ]+/g, leadingSpace).replace(/[\t\n\f\r ]+$/, trailingSpace); + return [...generateHardlines(leadingLineBreaksCount), fill(getTextValueParts(text)), ...generateHardlines(trailingLineBreaksCount)]; + } + case "MustacheCommentStatement": { + const start = locStart(node); + const end = locEnd(node); + const isLeftWhiteSpaceSensitive = options.originalText.charAt(start + 2) === "~"; + const isRightWhitespaceSensitive = options.originalText.charAt(end - 3) === "~"; + const dashes = node.value.includes("}}") ? "--" : ""; + return ["{{", isLeftWhiteSpaceSensitive ? "~" : "", "!", dashes, node.value, dashes, isRightWhitespaceSensitive ? "~" : "", "}}"]; + } + case "PathExpression": { + return node.original; + } + case "BooleanLiteral": { + return String(node.value); + } + case "CommentStatement": { + return [""]; + } + case "StringLiteral": { + if (needsOppositeQuote(path)) { + const printFavoriteQuote = !options.singleQuote ? "'" : '"'; + return printStringLiteral(node.value, printFavoriteQuote); + } + return printStringLiteral(node.value, favoriteQuote); + } + case "NumberLiteral": { + return String(node.value); + } + case "UndefinedLiteral": { + return "undefined"; + } + case "NullLiteral": { + return "null"; + } + default: + throw new Error("unknown glimmer type: " + JSON.stringify(node.type)); + } + } + function sortByLoc(a, b) { + return locStart(a) - locStart(b); + } + function printStartingTag(path, print2) { + const node = path.getValue(); + const types = ["attributes", "modifiers", "comments"].filter((property) => isNonEmptyArray(node[property])); + const attributes = types.flatMap((type) => node[type]).sort(sortByLoc); + for (const attributeType of types) { + path.each((attributePath) => { + const index = attributes.indexOf(attributePath.getValue()); + attributes.splice(index, 1, [line, print2()]); + }, attributeType); + } + if (isNonEmptyArray(node.blockParams)) { + attributes.push(line, printBlockParams(node)); + } + return ["<", node.tag, indent(attributes), printStartingTagEndMarker(node)]; + } + function printChildren(path, options, print2) { + const node = path.getValue(); + const isEmpty = node.children.every((node2) => isWhitespaceNode(node2)); + if (options.htmlWhitespaceSensitivity === "ignore" && isEmpty) { + return ""; + } + return path.map((childPath, childIndex) => { + const printedChild = print2(); + if (childIndex === 0 && options.htmlWhitespaceSensitivity === "ignore") { + return [softline, printedChild]; + } + return printedChild; + }, "children"); + } + function printStartingTagEndMarker(node) { + if (isVoid(node)) { + return ifBreak([softline, "/>"], [" />", softline]); + } + return ifBreak([softline, ">"], ">"); + } + function printOpeningMustache(node) { + const mustache = node.escaped === false ? "{{{" : "{{"; + const strip = node.strip && node.strip.open ? "~" : ""; + return [mustache, strip]; + } + function printClosingMustache(node) { + const mustache = node.escaped === false ? "}}}" : "}}"; + const strip = node.strip && node.strip.close ? "~" : ""; + return [strip, mustache]; + } + function printOpeningBlockOpeningMustache(node) { + const opening = printOpeningMustache(node); + const strip = node.openStrip.open ? "~" : ""; + return [opening, strip, "#"]; + } + function printOpeningBlockClosingMustache(node) { + const closing = printClosingMustache(node); + const strip = node.openStrip.close ? "~" : ""; + return [strip, closing]; + } + function printClosingBlockOpeningMustache(node) { + const opening = printOpeningMustache(node); + const strip = node.closeStrip.open ? "~" : ""; + return [opening, strip, "/"]; + } + function printClosingBlockClosingMustache(node) { + const closing = printClosingMustache(node); + const strip = node.closeStrip.close ? "~" : ""; + return [strip, closing]; + } + function printInverseBlockOpeningMustache(node) { + const opening = printOpeningMustache(node); + const strip = node.inverseStrip.open ? "~" : ""; + return [opening, strip]; + } + function printInverseBlockClosingMustache(node) { + const closing = printClosingMustache(node); + const strip = node.inverseStrip.close ? "~" : ""; + return [strip, closing]; + } + function printOpenBlock(path, print2) { + const node = path.getValue(); + const openingMustache = printOpeningBlockOpeningMustache(node); + const closingMustache = printOpeningBlockClosingMustache(node); + const attributes = [printPath(path, print2)]; + const params = printParams(path, print2); + if (params) { + attributes.push(line, params); + } + if (isNonEmptyArray(node.program.blockParams)) { + const block = printBlockParams(node.program); + attributes.push(line, block); + } + return group([openingMustache, indent(attributes), softline, closingMustache]); + } + function printElseBlock(node, options) { + return [options.htmlWhitespaceSensitivity === "ignore" ? hardline : "", printInverseBlockOpeningMustache(node), "else", printInverseBlockClosingMustache(node)]; + } + function printElseIfBlock(path, print2) { + const parentNode = path.getParentNode(1); + return [printInverseBlockOpeningMustache(parentNode), "else if ", printParams(path, print2), printInverseBlockClosingMustache(parentNode)]; + } + function printCloseBlock(path, print2, options) { + const node = path.getValue(); + if (options.htmlWhitespaceSensitivity === "ignore") { + const escape = blockStatementHasOnlyWhitespaceInProgram(node) ? softline : hardline; + return [escape, printClosingBlockOpeningMustache(node), print2("path"), printClosingBlockClosingMustache(node)]; + } + return [printClosingBlockOpeningMustache(node), print2("path"), printClosingBlockClosingMustache(node)]; + } + function blockStatementHasOnlyWhitespaceInProgram(node) { + return isNodeOfSomeType(node, ["BlockStatement"]) && node.program.body.every((node2) => isWhitespaceNode(node2)); + } + function blockStatementHasElseIf(node) { + return blockStatementHasElse(node) && node.inverse.body.length === 1 && isNodeOfSomeType(node.inverse.body[0], ["BlockStatement"]) && node.inverse.body[0].path.parts[0] === "if"; + } + function blockStatementHasElse(node) { + return isNodeOfSomeType(node, ["BlockStatement"]) && node.inverse; + } + function printProgram(path, print2, options) { + const node = path.getValue(); + if (blockStatementHasOnlyWhitespaceInProgram(node)) { + return ""; + } + const program = print2("program"); + if (options.htmlWhitespaceSensitivity === "ignore") { + return indent([hardline, program]); + } + return indent(program); + } + function printInverse(path, print2, options) { + const node = path.getValue(); + const inverse = print2("inverse"); + const printed = options.htmlWhitespaceSensitivity === "ignore" ? [hardline, inverse] : inverse; + if (blockStatementHasElseIf(node)) { + return printed; + } + if (blockStatementHasElse(node)) { + return [printElseBlock(node, options), indent(printed)]; + } + return ""; + } + function getTextValueParts(value) { + return getDocParts(join(line, splitByHtmlWhitespace(value))); + } + function splitByHtmlWhitespace(string) { + return string.split(/[\t\n\f\r ]+/); + } + function getCurrentAttributeName(path) { + for (let depth = 0; depth < 2; depth++) { + const parentNode = path.getParentNode(depth); + if (parentNode && parentNode.type === "AttrNode") { + return parentNode.name.toLowerCase(); + } + } + } + function countNewLines(string) { + string = typeof string === "string" ? string : ""; + return string.split("\n").length - 1; + } + function countLeadingNewLines(string) { + string = typeof string === "string" ? string : ""; + const newLines = (string.match(/^([^\S\n\r]*[\n\r])+/g) || [])[0] || ""; + return countNewLines(newLines); + } + function countTrailingNewLines(string) { + string = typeof string === "string" ? string : ""; + const newLines = (string.match(/([\n\r][^\S\n\r]*)+$/g) || [])[0] || ""; + return countNewLines(newLines); + } + function generateHardlines(number = 0) { + return Array.from({ + length: Math.min(number, NEWLINES_TO_PRESERVE_MAX) + }).fill(hardline); + } + function printStringLiteral(stringLiteral, favoriteQuote) { + const { + quote, + regex + } = getPreferredQuote(stringLiteral, favoriteQuote); + return [quote, stringLiteral.replace(regex, `\\${quote}`), quote]; + } + function needsOppositeQuote(path) { + let index = 0; + let parentNode = path.getParentNode(index); + while (parentNode && isNodeOfSomeType(parentNode, ["SubExpression"])) { + index++; + parentNode = path.getParentNode(index); + } + if (parentNode && isNodeOfSomeType(path.getParentNode(index + 1), ["ConcatStatement"]) && isNodeOfSomeType(path.getParentNode(index + 2), ["AttrNode"])) { + return true; + } + return false; + } + function printSubExpressionPathAndParams(path, print2) { + const printed = printPath(path, print2); + const params = printParams(path, print2); + if (!params) { + return printed; + } + return indent([printed, line, group(params)]); + } + function printPathAndParams(path, print2) { + const p = printPath(path, print2); + const params = printParams(path, print2); + if (!params) { + return p; + } + return [indent([p, line, params]), softline]; + } + function printPath(path, print2) { + return print2("path"); + } + function printParams(path, print2) { + const node = path.getValue(); + const parts = []; + if (node.params.length > 0) { + const params = path.map(print2, "params"); + parts.push(...params); + } + if (node.hash && node.hash.pairs.length > 0) { + const hash = print2("hash"); + parts.push(hash); + } + if (parts.length === 0) { + return ""; + } + return join(line, parts); + } + function printBlockParams(node) { + return ["as |", node.blockParams.join(" "), "|"]; + } + module2.exports = { + print, + massageAstNode: clean + }; + } +}); +var require_parsers3 = __commonJS2({ + "src/language-handlebars/parsers.js"(exports2, module2) { + "use strict"; + module2.exports = { + get glimmer() { + return require("./parser-glimmer.js").parsers.glimmer; + } + }; + } +}); +var require_Handlebars = __commonJS2({ + "node_modules/linguist-languages/data/Handlebars.json"(exports2, module2) { + module2.exports = { + name: "Handlebars", + type: "markup", + color: "#f7931e", + aliases: ["hbs", "htmlbars"], + extensions: [".handlebars", ".hbs"], + tmScope: "text.html.handlebars", + aceMode: "handlebars", + languageId: 155 + }; + } +}); +var require_language_handlebars = __commonJS2({ + "src/language-handlebars/index.js"(exports2, module2) { + "use strict"; + var createLanguage = require_create_language(); + var printer = require_printer_glimmer(); + var parsers = require_parsers3(); + var languages = [createLanguage(require_Handlebars(), () => ({ + since: "2.3.0", + parsers: ["glimmer"], + vscodeLanguageIds: ["handlebars"] + }))]; + var printers = { + glimmer: printer + }; + module2.exports = { + languages, + printers, + parsers + }; + } +}); +var require_pragma3 = __commonJS2({ + "src/language-graphql/pragma.js"(exports2, module2) { + "use strict"; + function hasPragma(text) { + return /^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/.test(text); + } + function insertPragma(text) { + return "# @format\n\n" + text; + } + module2.exports = { + hasPragma, + insertPragma + }; + } +}); +var require_loc4 = __commonJS2({ + "src/language-graphql/loc.js"(exports2, module2) { + "use strict"; + function locStart(node) { + if (typeof node.start === "number") { + return node.start; + } + return node.loc && node.loc.start; + } + function locEnd(node) { + if (typeof node.end === "number") { + return node.end; + } + return node.loc && node.loc.end; + } + module2.exports = { + locStart, + locEnd + }; + } +}); +var require_printer_graphql = __commonJS2({ + "src/language-graphql/printer-graphql.js"(exports2, module2) { + "use strict"; + var { + builders: { + join, + hardline, + line, + softline, + group, + indent, + ifBreak + } + } = require("./doc.js"); + var { + isNextLineEmpty, + isNonEmptyArray + } = require_util(); + var { + insertPragma + } = require_pragma3(); + var { + locStart, + locEnd + } = require_loc4(); + function genericPrint(path, options, print) { + const node = path.getValue(); + if (!node) { + return ""; + } + if (typeof node === "string") { + return node; + } + switch (node.kind) { + case "Document": { + const parts = []; + path.each((pathChild, index, definitions) => { + parts.push(print()); + if (index !== definitions.length - 1) { + parts.push(hardline); + if (isNextLineEmpty(options.originalText, pathChild.getValue(), locEnd)) { + parts.push(hardline); + } + } + }, "definitions"); + return [...parts, hardline]; + } + case "OperationDefinition": { + const hasOperation = options.originalText[locStart(node)] !== "{"; + const hasName = Boolean(node.name); + return [hasOperation ? node.operation : "", hasOperation && hasName ? [" ", print("name")] : "", hasOperation && !hasName && isNonEmptyArray(node.variableDefinitions) ? " " : "", isNonEmptyArray(node.variableDefinitions) ? group(["(", indent([softline, join([ifBreak("", ", "), softline], path.map(print, "variableDefinitions"))]), softline, ")"]) : "", printDirectives(path, print, node), node.selectionSet ? !hasOperation && !hasName ? "" : " " : "", print("selectionSet")]; + } + case "FragmentDefinition": { + return ["fragment ", print("name"), isNonEmptyArray(node.variableDefinitions) ? group(["(", indent([softline, join([ifBreak("", ", "), softline], path.map(print, "variableDefinitions"))]), softline, ")"]) : "", " on ", print("typeCondition"), printDirectives(path, print, node), " ", print("selectionSet")]; + } + case "SelectionSet": { + return ["{", indent([hardline, join(hardline, printSequence(path, options, print, "selections"))]), hardline, "}"]; + } + case "Field": { + return group([node.alias ? [print("alias"), ": "] : "", print("name"), node.arguments.length > 0 ? group(["(", indent([softline, join([ifBreak("", ", "), softline], printSequence(path, options, print, "arguments"))]), softline, ")"]) : "", printDirectives(path, print, node), node.selectionSet ? " " : "", print("selectionSet")]); + } + case "Name": { + return node.value; + } + case "StringValue": { + if (node.block) { + const lines = node.value.replace(/"""/g, "\\$&").split("\n"); + if (lines.length === 1) { + lines[0] = lines[0].trim(); + } + if (lines.every((line2) => line2 === "")) { + lines.length = 0; + } + return join(hardline, ['"""', ...lines, '"""']); + } + return ['"', node.value.replace(/["\\]/g, "\\$&").replace(/\n/g, "\\n"), '"']; + } + case "IntValue": + case "FloatValue": + case "EnumValue": { + return node.value; + } + case "BooleanValue": { + return node.value ? "true" : "false"; + } + case "NullValue": { + return "null"; + } + case "Variable": { + return ["$", print("name")]; + } + case "ListValue": { + return group(["[", indent([softline, join([ifBreak("", ", "), softline], path.map(print, "values"))]), softline, "]"]); + } + case "ObjectValue": { + return group(["{", options.bracketSpacing && node.fields.length > 0 ? " " : "", indent([softline, join([ifBreak("", ", "), softline], path.map(print, "fields"))]), softline, ifBreak("", options.bracketSpacing && node.fields.length > 0 ? " " : ""), "}"]); + } + case "ObjectField": + case "Argument": { + return [print("name"), ": ", print("value")]; + } + case "Directive": { + return ["@", print("name"), node.arguments.length > 0 ? group(["(", indent([softline, join([ifBreak("", ", "), softline], printSequence(path, options, print, "arguments"))]), softline, ")"]) : ""]; + } + case "NamedType": { + return print("name"); + } + case "VariableDefinition": { + return [print("variable"), ": ", print("type"), node.defaultValue ? [" = ", print("defaultValue")] : "", printDirectives(path, print, node)]; + } + case "ObjectTypeExtension": + case "ObjectTypeDefinition": { + return [print("description"), node.description ? hardline : "", node.kind === "ObjectTypeExtension" ? "extend " : "", "type ", print("name"), node.interfaces.length > 0 ? [" implements ", ...printInterfaces(path, options, print)] : "", printDirectives(path, print, node), node.fields.length > 0 ? [" {", indent([hardline, join(hardline, printSequence(path, options, print, "fields"))]), hardline, "}"] : ""]; + } + case "FieldDefinition": { + return [print("description"), node.description ? hardline : "", print("name"), node.arguments.length > 0 ? group(["(", indent([softline, join([ifBreak("", ", "), softline], printSequence(path, options, print, "arguments"))]), softline, ")"]) : "", ": ", print("type"), printDirectives(path, print, node)]; + } + case "DirectiveDefinition": { + return [print("description"), node.description ? hardline : "", "directive ", "@", print("name"), node.arguments.length > 0 ? group(["(", indent([softline, join([ifBreak("", ", "), softline], printSequence(path, options, print, "arguments"))]), softline, ")"]) : "", node.repeatable ? " repeatable" : "", " on ", join(" | ", path.map(print, "locations"))]; + } + case "EnumTypeExtension": + case "EnumTypeDefinition": { + return [print("description"), node.description ? hardline : "", node.kind === "EnumTypeExtension" ? "extend " : "", "enum ", print("name"), printDirectives(path, print, node), node.values.length > 0 ? [" {", indent([hardline, join(hardline, printSequence(path, options, print, "values"))]), hardline, "}"] : ""]; + } + case "EnumValueDefinition": { + return [print("description"), node.description ? hardline : "", print("name"), printDirectives(path, print, node)]; + } + case "InputValueDefinition": { + return [print("description"), node.description ? node.description.block ? hardline : line : "", print("name"), ": ", print("type"), node.defaultValue ? [" = ", print("defaultValue")] : "", printDirectives(path, print, node)]; + } + case "InputObjectTypeExtension": + case "InputObjectTypeDefinition": { + return [print("description"), node.description ? hardline : "", node.kind === "InputObjectTypeExtension" ? "extend " : "", "input ", print("name"), printDirectives(path, print, node), node.fields.length > 0 ? [" {", indent([hardline, join(hardline, printSequence(path, options, print, "fields"))]), hardline, "}"] : ""]; + } + case "SchemaExtension": { + return ["extend schema", printDirectives(path, print, node), ...node.operationTypes.length > 0 ? [" {", indent([hardline, join(hardline, printSequence(path, options, print, "operationTypes"))]), hardline, "}"] : []]; + } + case "SchemaDefinition": { + return [print("description"), node.description ? hardline : "", "schema", printDirectives(path, print, node), " {", node.operationTypes.length > 0 ? indent([hardline, join(hardline, printSequence(path, options, print, "operationTypes"))]) : "", hardline, "}"]; + } + case "OperationTypeDefinition": { + return [print("operation"), ": ", print("type")]; + } + case "InterfaceTypeExtension": + case "InterfaceTypeDefinition": { + return [print("description"), node.description ? hardline : "", node.kind === "InterfaceTypeExtension" ? "extend " : "", "interface ", print("name"), node.interfaces.length > 0 ? [" implements ", ...printInterfaces(path, options, print)] : "", printDirectives(path, print, node), node.fields.length > 0 ? [" {", indent([hardline, join(hardline, printSequence(path, options, print, "fields"))]), hardline, "}"] : ""]; + } + case "FragmentSpread": { + return ["...", print("name"), printDirectives(path, print, node)]; + } + case "InlineFragment": { + return ["...", node.typeCondition ? [" on ", print("typeCondition")] : "", printDirectives(path, print, node), " ", print("selectionSet")]; + } + case "UnionTypeExtension": + case "UnionTypeDefinition": { + return group([print("description"), node.description ? hardline : "", group([node.kind === "UnionTypeExtension" ? "extend " : "", "union ", print("name"), printDirectives(path, print, node), node.types.length > 0 ? [" =", ifBreak("", " "), indent([ifBreak([line, " "]), join([line, "| "], path.map(print, "types"))])] : ""])]); + } + case "ScalarTypeExtension": + case "ScalarTypeDefinition": { + return [print("description"), node.description ? hardline : "", node.kind === "ScalarTypeExtension" ? "extend " : "", "scalar ", print("name"), printDirectives(path, print, node)]; + } + case "NonNullType": { + return [print("type"), "!"]; + } + case "ListType": { + return ["[", print("type"), "]"]; + } + default: + throw new Error("unknown graphql type: " + JSON.stringify(node.kind)); + } + } + function printDirectives(path, print, node) { + if (node.directives.length === 0) { + return ""; + } + const printed = join(line, path.map(print, "directives")); + if (node.kind === "FragmentDefinition" || node.kind === "OperationDefinition") { + return group([line, printed]); + } + return [" ", group(indent([softline, printed]))]; + } + function printSequence(path, options, print, property) { + return path.map((path2, index, sequence) => { + const printed = print(); + if (index < sequence.length - 1 && isNextLineEmpty(options.originalText, path2.getValue(), locEnd)) { + return [printed, hardline]; + } + return printed; + }, property); + } + function canAttachComment(node) { + return node.kind && node.kind !== "Comment"; + } + function printComment(commentPath) { + const comment = commentPath.getValue(); + if (comment.kind === "Comment") { + return "#" + comment.value.trimEnd(); + } + throw new Error("Not a comment: " + JSON.stringify(comment)); + } + function printInterfaces(path, options, print) { + const node = path.getNode(); + const parts = []; + const { + interfaces + } = node; + const printed = path.map((node2) => print(node2), "interfaces"); + for (let index = 0; index < interfaces.length; index++) { + const interfaceNode = interfaces[index]; + parts.push(printed[index]); + const nextInterfaceNode = interfaces[index + 1]; + if (nextInterfaceNode) { + const textBetween = options.originalText.slice(interfaceNode.loc.end, nextInterfaceNode.loc.start); + const hasComment = textBetween.includes("#"); + const separator = textBetween.replace(/#.*/g, "").trim(); + parts.push(separator === "," ? "," : " &", hasComment ? line : " "); + } + } + return parts; + } + function clean(node, newNode) { + if (node.kind === "StringValue" && node.block && !node.value.includes("\n")) { + newNode.value = newNode.value.trim(); + } + } + clean.ignoredProperties = /* @__PURE__ */ new Set(["loc", "comments"]); + function hasPrettierIgnore(path) { + var _node$comments; + const node = path.getValue(); + return node === null || node === void 0 ? void 0 : (_node$comments = node.comments) === null || _node$comments === void 0 ? void 0 : _node$comments.some((comment) => comment.value.trim() === "prettier-ignore"); + } + module2.exports = { + print: genericPrint, + massageAstNode: clean, + hasPrettierIgnore, + insertPragma, + printComment, + canAttachComment + }; + } +}); +var require_options4 = __commonJS2({ + "src/language-graphql/options.js"(exports2, module2) { + "use strict"; + var commonOptions = require_common_options(); + module2.exports = { + bracketSpacing: commonOptions.bracketSpacing + }; + } +}); +var require_parsers4 = __commonJS2({ + "src/language-graphql/parsers.js"(exports2, module2) { + "use strict"; + module2.exports = { + get graphql() { + return require("./parser-graphql.js").parsers.graphql; + } + }; + } +}); +var require_GraphQL = __commonJS2({ + "node_modules/linguist-languages/data/GraphQL.json"(exports2, module2) { + module2.exports = { + name: "GraphQL", + type: "data", + color: "#e10098", + extensions: [".graphql", ".gql", ".graphqls"], + tmScope: "source.graphql", + aceMode: "text", + languageId: 139 + }; + } +}); +var require_language_graphql = __commonJS2({ + "src/language-graphql/index.js"(exports2, module2) { + "use strict"; + var createLanguage = require_create_language(); + var printer = require_printer_graphql(); + var options = require_options4(); + var parsers = require_parsers4(); + var languages = [createLanguage(require_GraphQL(), () => ({ + since: "1.5.0", + parsers: ["graphql"], + vscodeLanguageIds: ["graphql"] + }))]; + var printers = { + graphql: printer + }; + module2.exports = { + languages, + options, + printers, + parsers + }; + } +}); +var require_loc5 = __commonJS2({ + "src/language-markdown/loc.js"(exports2, module2) { + "use strict"; + function locStart(node) { + return node.position.start.offset; + } + function locEnd(node) { + return node.position.end.offset; + } + module2.exports = { + locStart, + locEnd + }; + } +}); +var require_constants_evaluate = __commonJS2({ + "src/language-markdown/constants.evaluate.js"(exports2, module2) { + module2.exports = { + cjkPattern: "(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?", + kPattern: "[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]", + punctuationPattern: "[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]" + }; + } +}); +var require_utils10 = __commonJS2({ + "src/language-markdown/utils.js"(exports2, module2) { + "use strict"; + var { + getLast + } = require_util(); + var { + locStart, + locEnd + } = require_loc5(); + var { + cjkPattern, + kPattern, + punctuationPattern + } = require_constants_evaluate(); + var INLINE_NODE_TYPES = ["liquidNode", "inlineCode", "emphasis", "esComment", "strong", "delete", "wikiLink", "link", "linkReference", "image", "imageReference", "footnote", "footnoteReference", "sentence", "whitespace", "word", "break", "inlineMath"]; + var INLINE_NODE_WRAPPER_TYPES = [...INLINE_NODE_TYPES, "tableCell", "paragraph", "heading"]; + var kRegex = new RegExp(kPattern); + var punctuationRegex = new RegExp(punctuationPattern); + function splitText(text, options) { + const KIND_NON_CJK = "non-cjk"; + const KIND_CJ_LETTER = "cj-letter"; + const KIND_K_LETTER = "k-letter"; + const KIND_CJK_PUNCTUATION = "cjk-punctuation"; + const nodes = []; + const tokens = (options.proseWrap === "preserve" ? text : text.replace(new RegExp(`(${cjkPattern}) +(${cjkPattern})`, "g"), "$1$2")).split(/([\t\n ]+)/); + for (const [index, token] of tokens.entries()) { + if (index % 2 === 1) { + nodes.push({ + type: "whitespace", + value: /\n/.test(token) ? "\n" : " " + }); + continue; + } + if ((index === 0 || index === tokens.length - 1) && token === "") { + continue; + } + const innerTokens = token.split(new RegExp(`(${cjkPattern})`)); + for (const [innerIndex, innerToken] of innerTokens.entries()) { + if ((innerIndex === 0 || innerIndex === innerTokens.length - 1) && innerToken === "") { + continue; + } + if (innerIndex % 2 === 0) { + if (innerToken !== "") { + appendNode({ + type: "word", + value: innerToken, + kind: KIND_NON_CJK, + hasLeadingPunctuation: punctuationRegex.test(innerToken[0]), + hasTrailingPunctuation: punctuationRegex.test(getLast(innerToken)) + }); + } + continue; + } + appendNode(punctuationRegex.test(innerToken) ? { + type: "word", + value: innerToken, + kind: KIND_CJK_PUNCTUATION, + hasLeadingPunctuation: true, + hasTrailingPunctuation: true + } : { + type: "word", + value: innerToken, + kind: kRegex.test(innerToken) ? KIND_K_LETTER : KIND_CJ_LETTER, + hasLeadingPunctuation: false, + hasTrailingPunctuation: false + }); + } + } + return nodes; + function appendNode(node) { + const lastNode = getLast(nodes); + if (lastNode && lastNode.type === "word") { + if (lastNode.kind === KIND_NON_CJK && node.kind === KIND_CJ_LETTER && !lastNode.hasTrailingPunctuation || lastNode.kind === KIND_CJ_LETTER && node.kind === KIND_NON_CJK && !node.hasLeadingPunctuation) { + nodes.push({ + type: "whitespace", + value: " " + }); + } else if (!isBetween(KIND_NON_CJK, KIND_CJK_PUNCTUATION) && ![lastNode.value, node.value].some((value) => /\u3000/.test(value))) { + nodes.push({ + type: "whitespace", + value: "" + }); + } + } + nodes.push(node); + function isBetween(kind1, kind2) { + return lastNode.kind === kind1 && node.kind === kind2 || lastNode.kind === kind2 && node.kind === kind1; + } + } + } + function getOrderedListItemInfo(orderListItem, originalText) { + const [, numberText, marker, leadingSpaces] = originalText.slice(orderListItem.position.start.offset, orderListItem.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/); + return { + numberText, + marker, + leadingSpaces + }; + } + function hasGitDiffFriendlyOrderedList(node, options) { + if (!node.ordered) { + return false; + } + if (node.children.length < 2) { + return false; + } + const firstNumber = Number(getOrderedListItemInfo(node.children[0], options.originalText).numberText); + const secondNumber = Number(getOrderedListItemInfo(node.children[1], options.originalText).numberText); + if (firstNumber === 0 && node.children.length > 2) { + const thirdNumber = Number(getOrderedListItemInfo(node.children[2], options.originalText).numberText); + return secondNumber === 1 && thirdNumber === 1; + } + return secondNumber === 1; + } + function getFencedCodeBlockValue(node, originalText) { + const { + value + } = node; + if (node.position.end.offset === originalText.length && value.endsWith("\n") && originalText.endsWith("\n")) { + return value.slice(0, -1); + } + return value; + } + function mapAst(ast, handler) { + return function preorder(node, index, parentStack) { + const newNode = Object.assign({}, handler(node, index, parentStack)); + if (newNode.children) { + newNode.children = newNode.children.map((child, index2) => preorder(child, index2, [newNode, ...parentStack])); + } + return newNode; + }(ast, null, []); + } + function isAutolink(node) { + if ((node === null || node === void 0 ? void 0 : node.type) !== "link" || node.children.length !== 1) { + return false; + } + const [child] = node.children; + return locStart(node) === locStart(child) && locEnd(node) === locEnd(child); + } + module2.exports = { + mapAst, + splitText, + punctuationPattern, + getFencedCodeBlockValue, + getOrderedListItemInfo, + hasGitDiffFriendlyOrderedList, + INLINE_NODE_TYPES, + INLINE_NODE_WRAPPER_TYPES, + isAutolink + }; + } +}); +var require_embed3 = __commonJS2({ + "src/language-markdown/embed.js"(exports2, module2) { + "use strict"; + var { + inferParserByLanguage, + getMaxContinuousCount + } = require_util(); + var { + builders: { + hardline, + markAsRoot + }, + utils: { + replaceEndOfLine + } + } = require("./doc.js"); + var printFrontMatter = require_print(); + var { + getFencedCodeBlockValue + } = require_utils10(); + function embed(path, print, textToDoc, options) { + const node = path.getValue(); + if (node.type === "code" && node.lang !== null) { + const parser = inferParserByLanguage(node.lang, options); + if (parser) { + const styleUnit = options.__inJsTemplate ? "~" : "`"; + const style = styleUnit.repeat(Math.max(3, getMaxContinuousCount(node.value, styleUnit) + 1)); + const newOptions = { + parser + }; + if (node.lang === "tsx") { + newOptions.filepath = "dummy.tsx"; + } + const doc2 = textToDoc(getFencedCodeBlockValue(node, options.originalText), newOptions, { + stripTrailingHardline: true + }); + return markAsRoot([style, node.lang, node.meta ? " " + node.meta : "", hardline, replaceEndOfLine(doc2), hardline, style]); + } + } + switch (node.type) { + case "front-matter": + return printFrontMatter(node, textToDoc); + case "importExport": + return [textToDoc(node.value, { + parser: "babel" + }, { + stripTrailingHardline: true + }), hardline]; + case "jsx": + return textToDoc(`<$>${node.value}`, { + parser: "__js_expression", + rootMarker: "mdx" + }, { + stripTrailingHardline: true + }); + } + return null; + } + module2.exports = embed; + } +}); +var require_pragma4 = __commonJS2({ + "src/language-markdown/pragma.js"(exports2, module2) { + "use strict"; + var parseFrontMatter = require_parse4(); + var pragmas = ["format", "prettier"]; + function startWithPragma(text) { + const pragma = `@(${pragmas.join("|")})`; + const regex = new RegExp([``, `{\\s*\\/\\*\\s*${pragma}\\s*\\*\\/\\s*}`, ``].join("|"), "m"); + const matched = text.match(regex); + return (matched === null || matched === void 0 ? void 0 : matched.index) === 0; + } + module2.exports = { + startWithPragma, + hasPragma: (text) => startWithPragma(parseFrontMatter(text).content.trimStart()), + insertPragma: (text) => { + const extracted = parseFrontMatter(text); + const pragma = ``; + return extracted.frontMatter ? `${extracted.frontMatter.raw} + +${pragma} + +${extracted.content}` : `${pragma} + +${extracted.content}`; + } + }; + } +}); +var require_print_preprocess2 = __commonJS2({ + "src/language-markdown/print-preprocess.js"(exports2, module2) { + "use strict"; + var getLast = require_get_last(); + var { + getOrderedListItemInfo, + mapAst, + splitText + } = require_utils10(); + var isSingleCharRegex = /^.$/su; + function preprocess(ast, options) { + ast = restoreUnescapedCharacter(ast, options); + ast = mergeContinuousTexts(ast); + ast = transformInlineCode(ast); + ast = transformIndentedCodeblockAndMarkItsParentList(ast, options); + ast = markAlignedList(ast, options); + ast = splitTextIntoSentences(ast, options); + ast = transformImportExport(ast); + ast = mergeContinuousImportExport(ast); + return ast; + } + function transformImportExport(ast) { + return mapAst(ast, (node) => { + if (node.type !== "import" && node.type !== "export") { + return node; + } + return Object.assign(Object.assign({}, node), {}, { + type: "importExport" + }); + }); + } + function transformInlineCode(ast) { + return mapAst(ast, (node) => { + if (node.type !== "inlineCode") { + return node; + } + return Object.assign(Object.assign({}, node), {}, { + value: node.value.replace(/\s+/g, " ") + }); + }); + } + function restoreUnescapedCharacter(ast, options) { + return mapAst(ast, (node) => node.type !== "text" || node.value === "*" || node.value === "_" || !isSingleCharRegex.test(node.value) || node.position.end.offset - node.position.start.offset === node.value.length ? node : Object.assign(Object.assign({}, node), {}, { + value: options.originalText.slice(node.position.start.offset, node.position.end.offset) + })); + } + function mergeContinuousImportExport(ast) { + return mergeChildren(ast, (prevNode, node) => prevNode.type === "importExport" && node.type === "importExport", (prevNode, node) => ({ + type: "importExport", + value: prevNode.value + "\n\n" + node.value, + position: { + start: prevNode.position.start, + end: node.position.end + } + })); + } + function mergeChildren(ast, shouldMerge, mergeNode) { + return mapAst(ast, (node) => { + if (!node.children) { + return node; + } + const children = node.children.reduce((current, child) => { + const lastChild = getLast(current); + if (lastChild && shouldMerge(lastChild, child)) { + current.splice(-1, 1, mergeNode(lastChild, child)); + } else { + current.push(child); + } + return current; + }, []); + return Object.assign(Object.assign({}, node), {}, { + children + }); + }); + } + function mergeContinuousTexts(ast) { + return mergeChildren(ast, (prevNode, node) => prevNode.type === "text" && node.type === "text", (prevNode, node) => ({ + type: "text", + value: prevNode.value + node.value, + position: { + start: prevNode.position.start, + end: node.position.end + } + })); + } + function splitTextIntoSentences(ast, options) { + return mapAst(ast, (node, index, [parentNode]) => { + if (node.type !== "text") { + return node; + } + let { + value + } = node; + if (parentNode.type === "paragraph") { + if (index === 0) { + value = value.trimStart(); + } + if (index === parentNode.children.length - 1) { + value = value.trimEnd(); + } + } + return { + type: "sentence", + position: node.position, + children: splitText(value, options) + }; + }); + } + function transformIndentedCodeblockAndMarkItsParentList(ast, options) { + return mapAst(ast, (node, index, parentStack) => { + if (node.type === "code") { + const isIndented = /^\n?(?: {4,}|\t)/.test(options.originalText.slice(node.position.start.offset, node.position.end.offset)); + node.isIndented = isIndented; + if (isIndented) { + for (let i = 0; i < parentStack.length; i++) { + const parent = parentStack[i]; + if (parent.hasIndentedCodeblock) { + break; + } + if (parent.type === "list") { + parent.hasIndentedCodeblock = true; + } + } + } + } + return node; + }); + } + function markAlignedList(ast, options) { + return mapAst(ast, (node, index, parentStack) => { + if (node.type === "list" && node.children.length > 0) { + for (let i = 0; i < parentStack.length; i++) { + const parent = parentStack[i]; + if (parent.type === "list" && !parent.isAligned) { + node.isAligned = false; + return node; + } + } + node.isAligned = isAligned(node); + } + return node; + }); + function getListItemStart(listItem) { + return listItem.children.length === 0 ? -1 : listItem.children[0].position.start.column - 1; + } + function isAligned(list) { + if (!list.ordered) { + return true; + } + const [firstItem, secondItem] = list.children; + const firstInfo = getOrderedListItemInfo(firstItem, options.originalText); + if (firstInfo.leadingSpaces.length > 1) { + return true; + } + const firstStart = getListItemStart(firstItem); + if (firstStart === -1) { + return false; + } + if (list.children.length === 1) { + return firstStart % options.tabWidth === 0; + } + const secondStart = getListItemStart(secondItem); + if (firstStart !== secondStart) { + return false; + } + if (firstStart % options.tabWidth === 0) { + return true; + } + const secondInfo = getOrderedListItemInfo(secondItem, options.originalText); + return secondInfo.leadingSpaces.length > 1; + } + } + module2.exports = preprocess; + } +}); +var require_clean4 = __commonJS2({ + "src/language-markdown/clean.js"(exports2, module2) { + "use strict"; + var { + isFrontMatterNode + } = require_util(); + var { + startWithPragma + } = require_pragma4(); + var ignoredProperties = /* @__PURE__ */ new Set(["position", "raw"]); + function clean(ast, newObj, parent) { + if (ast.type === "front-matter" || ast.type === "code" || ast.type === "yaml" || ast.type === "import" || ast.type === "export" || ast.type === "jsx") { + delete newObj.value; + } + if (ast.type === "list") { + delete newObj.isAligned; + } + if (ast.type === "list" || ast.type === "listItem") { + delete newObj.spread; + delete newObj.loose; + } + if (ast.type === "text") { + return null; + } + if (ast.type === "inlineCode") { + newObj.value = ast.value.replace(/[\t\n ]+/g, " "); + } + if (ast.type === "wikiLink") { + newObj.value = ast.value.trim().replace(/[\t\n]+/g, " "); + } + if (ast.type === "definition" || ast.type === "linkReference") { + newObj.label = ast.label.trim().replace(/[\t\n ]+/g, " ").toLowerCase(); + } + if ((ast.type === "definition" || ast.type === "link" || ast.type === "image") && ast.title) { + newObj.title = ast.title.replace(/\\(["')])/g, "$1"); + } + if (parent && parent.type === "root" && parent.children.length > 0 && (parent.children[0] === ast || isFrontMatterNode(parent.children[0]) && parent.children[1] === ast) && ast.type === "html" && startWithPragma(ast.value)) { + return null; + } + } + clean.ignoredProperties = ignoredProperties; + module2.exports = clean; + } +}); +var require_printer_markdown = __commonJS2({ + "src/language-markdown/printer-markdown.js"(exports2, module2) { + "use strict"; + var { + getLast, + getMinNotPresentContinuousCount, + getMaxContinuousCount, + getStringWidth, + isNonEmptyArray + } = require_util(); + var { + builders: { + breakParent, + join, + line, + literalline, + markAsRoot, + hardline, + softline, + ifBreak, + fill, + align, + indent, + group, + hardlineWithoutBreakParent + }, + utils: { + normalizeDoc, + replaceTextEndOfLine + }, + printer: { + printDocToString + } + } = require("./doc.js"); + var embed = require_embed3(); + var { + insertPragma + } = require_pragma4(); + var { + locStart, + locEnd + } = require_loc5(); + var preprocess = require_print_preprocess2(); + var clean = require_clean4(); + var { + getFencedCodeBlockValue, + hasGitDiffFriendlyOrderedList, + splitText, + punctuationPattern, + INLINE_NODE_TYPES, + INLINE_NODE_WRAPPER_TYPES, + isAutolink + } = require_utils10(); + var TRAILING_HARDLINE_NODES = /* @__PURE__ */ new Set(["importExport"]); + var SINGLE_LINE_NODE_TYPES = ["heading", "tableCell", "link", "wikiLink"]; + var SIBLING_NODE_TYPES = /* @__PURE__ */ new Set(["listItem", "definition", "footnoteDefinition"]); + function genericPrint(path, options, print) { + const node = path.getValue(); + if (shouldRemainTheSameContent(path)) { + return splitText(options.originalText.slice(node.position.start.offset, node.position.end.offset), options).map((node2) => node2.type === "word" ? node2.value : node2.value === "" ? "" : printLine(path, node2.value, options)); + } + switch (node.type) { + case "front-matter": + return options.originalText.slice(node.position.start.offset, node.position.end.offset); + case "root": + if (node.children.length === 0) { + return ""; + } + return [normalizeDoc(printRoot(path, options, print)), !TRAILING_HARDLINE_NODES.has(getLastDescendantNode(node).type) ? hardline : ""]; + case "paragraph": + return printChildren(path, options, print, { + postprocessor: fill + }); + case "sentence": + return printChildren(path, options, print); + case "word": { + let escapedValue = node.value.replace(/\*/g, "\\$&").replace(new RegExp([`(^|${punctuationPattern})(_+)`, `(_+)(${punctuationPattern}|$)`].join("|"), "g"), (_, text1, underscore1, underscore2, text2) => (underscore1 ? `${text1}${underscore1}` : `${underscore2}${text2}`).replace(/_/g, "\\_")); + const isFirstSentence = (node2, name, index) => node2.type === "sentence" && index === 0; + const isLastChildAutolink = (node2, name, index) => isAutolink(node2.children[index - 1]); + if (escapedValue !== node.value && (path.match(void 0, isFirstSentence, isLastChildAutolink) || path.match(void 0, isFirstSentence, (node2, name, index) => node2.type === "emphasis" && index === 0, isLastChildAutolink))) { + escapedValue = escapedValue.replace(/^(\\?[*_])+/, (prefix) => prefix.replace(/\\/g, "")); + } + return escapedValue; + } + case "whitespace": { + const parentNode = path.getParentNode(); + const index = parentNode.children.indexOf(node); + const nextNode = parentNode.children[index + 1]; + const proseWrap = nextNode && /^>|^(?:[*+-]|#{1,6}|\d+[).])$/.test(nextNode.value) ? "never" : options.proseWrap; + return printLine(path, node.value, { + proseWrap + }); + } + case "emphasis": { + let style; + if (isAutolink(node.children[0])) { + style = options.originalText[node.position.start.offset]; + } else { + const parentNode = path.getParentNode(); + const index = parentNode.children.indexOf(node); + const prevNode = parentNode.children[index - 1]; + const nextNode = parentNode.children[index + 1]; + const hasPrevOrNextWord = prevNode && prevNode.type === "sentence" && prevNode.children.length > 0 && getLast(prevNode.children).type === "word" && !getLast(prevNode.children).hasTrailingPunctuation || nextNode && nextNode.type === "sentence" && nextNode.children.length > 0 && nextNode.children[0].type === "word" && !nextNode.children[0].hasLeadingPunctuation; + style = hasPrevOrNextWord || getAncestorNode(path, "emphasis") ? "*" : "_"; + } + return [style, printChildren(path, options, print), style]; + } + case "strong": + return ["**", printChildren(path, options, print), "**"]; + case "delete": + return ["~~", printChildren(path, options, print), "~~"]; + case "inlineCode": { + const backtickCount = getMinNotPresentContinuousCount(node.value, "`"); + const style = "`".repeat(backtickCount || 1); + const gap = backtickCount && !/^\s/.test(node.value) ? " " : ""; + return [style, gap, node.value, gap, style]; + } + case "wikiLink": { + let contents = ""; + if (options.proseWrap === "preserve") { + contents = node.value; + } else { + contents = node.value.replace(/[\t\n]+/g, " "); + } + return ["[[", contents, "]]"]; + } + case "link": + switch (options.originalText[node.position.start.offset]) { + case "<": { + const mailto = "mailto:"; + const url = node.url.startsWith(mailto) && options.originalText.slice(node.position.start.offset + 1, node.position.start.offset + 1 + mailto.length) !== mailto ? node.url.slice(mailto.length) : node.url; + return ["<", url, ">"]; + } + case "[": + return ["[", printChildren(path, options, print), "](", printUrl(node.url, ")"), printTitle(node.title, options), ")"]; + default: + return options.originalText.slice(node.position.start.offset, node.position.end.offset); + } + case "image": + return ["![", node.alt || "", "](", printUrl(node.url, ")"), printTitle(node.title, options), ")"]; + case "blockquote": + return ["> ", align("> ", printChildren(path, options, print))]; + case "heading": + return ["#".repeat(node.depth) + " ", printChildren(path, options, print)]; + case "code": { + if (node.isIndented) { + const alignment = " ".repeat(4); + return align(alignment, [alignment, ...replaceTextEndOfLine(node.value, hardline)]); + } + const styleUnit = options.__inJsTemplate ? "~" : "`"; + const style = styleUnit.repeat(Math.max(3, getMaxContinuousCount(node.value, styleUnit) + 1)); + return [style, node.lang || "", node.meta ? " " + node.meta : "", hardline, ...replaceTextEndOfLine(getFencedCodeBlockValue(node, options.originalText), hardline), hardline, style]; + } + case "html": { + const parentNode = path.getParentNode(); + const value = parentNode.type === "root" && getLast(parentNode.children) === node ? node.value.trimEnd() : node.value; + const isHtmlComment = /^$/s.test(value); + return replaceTextEndOfLine(value, isHtmlComment ? hardline : markAsRoot(literalline)); + } + case "list": { + const nthSiblingIndex = getNthListSiblingIndex(node, path.getParentNode()); + const isGitDiffFriendlyOrderedList = hasGitDiffFriendlyOrderedList(node, options); + return printChildren(path, options, print, { + processor: (childPath, index) => { + const prefix = getPrefix(); + const childNode = childPath.getValue(); + if (childNode.children.length === 2 && childNode.children[1].type === "html" && childNode.children[0].position.start.column !== childNode.children[1].position.start.column) { + return [prefix, printListItem(childPath, options, print, prefix)]; + } + return [prefix, align(" ".repeat(prefix.length), printListItem(childPath, options, print, prefix))]; + function getPrefix() { + const rawPrefix = node.ordered ? (index === 0 ? node.start : isGitDiffFriendlyOrderedList ? 1 : node.start + index) + (nthSiblingIndex % 2 === 0 ? ". " : ") ") : nthSiblingIndex % 2 === 0 ? "- " : "* "; + return node.isAligned || node.hasIndentedCodeblock ? alignListPrefix(rawPrefix, options) : rawPrefix; + } + } + }); + } + case "thematicBreak": { + const counter = getAncestorCounter(path, "list"); + if (counter === -1) { + return "---"; + } + const nthSiblingIndex = getNthListSiblingIndex(path.getParentNode(counter), path.getParentNode(counter + 1)); + return nthSiblingIndex % 2 === 0 ? "***" : "---"; + } + case "linkReference": + return ["[", printChildren(path, options, print), "]", node.referenceType === "full" ? ["[", node.identifier, "]"] : node.referenceType === "collapsed" ? "[]" : ""]; + case "imageReference": + switch (node.referenceType) { + case "full": + return ["![", node.alt || "", "][", node.identifier, "]"]; + default: + return ["![", node.alt, "]", node.referenceType === "collapsed" ? "[]" : ""]; + } + case "definition": { + const lineOrSpace = options.proseWrap === "always" ? line : " "; + return group(["[", node.identifier, "]:", indent([lineOrSpace, printUrl(node.url), node.title === null ? "" : [lineOrSpace, printTitle(node.title, options, false)]])]); + } + case "footnote": + return ["[^", printChildren(path, options, print), "]"]; + case "footnoteReference": + return ["[^", node.identifier, "]"]; + case "footnoteDefinition": { + const nextNode = path.getParentNode().children[path.getName() + 1]; + const shouldInlineFootnote = node.children.length === 1 && node.children[0].type === "paragraph" && (options.proseWrap === "never" || options.proseWrap === "preserve" && node.children[0].position.start.line === node.children[0].position.end.line); + return ["[^", node.identifier, "]: ", shouldInlineFootnote ? printChildren(path, options, print) : group([align(" ".repeat(4), printChildren(path, options, print, { + processor: (childPath, index) => index === 0 ? group([softline, print()]) : print() + })), nextNode && nextNode.type === "footnoteDefinition" ? softline : ""])]; + } + case "table": + return printTable(path, options, print); + case "tableCell": + return printChildren(path, options, print); + case "break": + return /\s/.test(options.originalText[node.position.start.offset]) ? [" ", markAsRoot(literalline)] : ["\\", hardline]; + case "liquidNode": + return replaceTextEndOfLine(node.value, hardline); + case "importExport": + return [node.value, hardline]; + case "esComment": + return ["{/* ", node.value, " */}"]; + case "jsx": + return node.value; + case "math": + return ["$$", hardline, node.value ? [...replaceTextEndOfLine(node.value, hardline), hardline] : "", "$$"]; + case "inlineMath": { + return options.originalText.slice(locStart(node), locEnd(node)); + } + case "tableRow": + case "listItem": + default: + throw new Error(`Unknown markdown type ${JSON.stringify(node.type)}`); + } + } + function printListItem(path, options, print, listPrefix) { + const node = path.getValue(); + const prefix = node.checked === null ? "" : node.checked ? "[x] " : "[ ] "; + return [prefix, printChildren(path, options, print, { + processor: (childPath, index) => { + if (index === 0 && childPath.getValue().type !== "list") { + return align(" ".repeat(prefix.length), print()); + } + const alignment = " ".repeat(clamp(options.tabWidth - listPrefix.length, 0, 3)); + return [alignment, align(alignment, print())]; + } + })]; + } + function alignListPrefix(prefix, options) { + const additionalSpaces = getAdditionalSpaces(); + return prefix + " ".repeat(additionalSpaces >= 4 ? 0 : additionalSpaces); + function getAdditionalSpaces() { + const restSpaces = prefix.length % options.tabWidth; + return restSpaces === 0 ? 0 : options.tabWidth - restSpaces; + } + } + function getNthListSiblingIndex(node, parentNode) { + return getNthSiblingIndex(node, parentNode, (siblingNode) => siblingNode.ordered === node.ordered); + } + function getNthSiblingIndex(node, parentNode, condition) { + let index = -1; + for (const childNode of parentNode.children) { + if (childNode.type === node.type && condition(childNode)) { + index++; + } else { + index = -1; + } + if (childNode === node) { + return index; + } + } + } + function getAncestorCounter(path, typeOrTypes) { + const types = Array.isArray(typeOrTypes) ? typeOrTypes : [typeOrTypes]; + let counter = -1; + let ancestorNode; + while (ancestorNode = path.getParentNode(++counter)) { + if (types.includes(ancestorNode.type)) { + return counter; + } + } + return -1; + } + function getAncestorNode(path, typeOrTypes) { + const counter = getAncestorCounter(path, typeOrTypes); + return counter === -1 ? null : path.getParentNode(counter); + } + function printLine(path, value, options) { + if (options.proseWrap === "preserve" && value === "\n") { + return hardline; + } + const isBreakable = options.proseWrap === "always" && !getAncestorNode(path, SINGLE_LINE_NODE_TYPES); + return value !== "" ? isBreakable ? line : " " : isBreakable ? softline : ""; + } + function printTable(path, options, print) { + const node = path.getValue(); + const columnMaxWidths = []; + const contents = path.map((rowPath) => rowPath.map((cellPath, columnIndex) => { + const text = printDocToString(print(), options).formatted; + const width = getStringWidth(text); + columnMaxWidths[columnIndex] = Math.max(columnMaxWidths[columnIndex] || 3, width); + return { + text, + width + }; + }, "children"), "children"); + const alignedTable = printTableContents(false); + if (options.proseWrap !== "never") { + return [breakParent, alignedTable]; + } + const compactTable = printTableContents(true); + return [breakParent, group(ifBreak(compactTable, alignedTable))]; + function printTableContents(isCompact) { + const parts = [printRow(contents[0], isCompact), printAlign(isCompact)]; + if (contents.length > 1) { + parts.push(join(hardlineWithoutBreakParent, contents.slice(1).map((rowContents) => printRow(rowContents, isCompact)))); + } + return join(hardlineWithoutBreakParent, parts); + } + function printAlign(isCompact) { + const align2 = columnMaxWidths.map((width, index) => { + const align3 = node.align[index]; + const first = align3 === "center" || align3 === "left" ? ":" : "-"; + const last = align3 === "center" || align3 === "right" ? ":" : "-"; + const middle = isCompact ? "-" : "-".repeat(width - 2); + return `${first}${middle}${last}`; + }); + return `| ${align2.join(" | ")} |`; + } + function printRow(rowContents, isCompact) { + const columns = rowContents.map(({ + text, + width + }, columnIndex) => { + if (isCompact) { + return text; + } + const spaces = columnMaxWidths[columnIndex] - width; + const align2 = node.align[columnIndex]; + let before = 0; + if (align2 === "right") { + before = spaces; + } else if (align2 === "center") { + before = Math.floor(spaces / 2); + } + const after = spaces - before; + return `${" ".repeat(before)}${text}${" ".repeat(after)}`; + }); + return `| ${columns.join(" | ")} |`; + } + } + function printRoot(path, options, print) { + const ignoreRanges = []; + let ignoreStart = null; + const { + children + } = path.getValue(); + for (const [index, childNode] of children.entries()) { + switch (isPrettierIgnore(childNode)) { + case "start": + if (ignoreStart === null) { + ignoreStart = { + index, + offset: childNode.position.end.offset + }; + } + break; + case "end": + if (ignoreStart !== null) { + ignoreRanges.push({ + start: ignoreStart, + end: { + index, + offset: childNode.position.start.offset + } + }); + ignoreStart = null; + } + break; + default: + break; + } + } + return printChildren(path, options, print, { + processor: (childPath, index) => { + if (ignoreRanges.length > 0) { + const ignoreRange = ignoreRanges[0]; + if (index === ignoreRange.start.index) { + return [children[ignoreRange.start.index].value, options.originalText.slice(ignoreRange.start.offset, ignoreRange.end.offset), children[ignoreRange.end.index].value]; + } + if (ignoreRange.start.index < index && index < ignoreRange.end.index) { + return false; + } + if (index === ignoreRange.end.index) { + ignoreRanges.shift(); + return false; + } + } + return print(); + } + }); + } + function printChildren(path, options, print, events = {}) { + const { + postprocessor + } = events; + const processor = events.processor || (() => print()); + const node = path.getValue(); + const parts = []; + let lastChildNode; + path.each((childPath, index) => { + const childNode = childPath.getValue(); + const result = processor(childPath, index); + if (result !== false) { + const data = { + parts, + prevNode: lastChildNode, + parentNode: node, + options + }; + if (shouldPrePrintHardline(childNode, data)) { + parts.push(hardline); + if (lastChildNode && TRAILING_HARDLINE_NODES.has(lastChildNode.type)) { + if (shouldPrePrintTripleHardline(childNode, data)) { + parts.push(hardline); + } + } else { + if (shouldPrePrintDoubleHardline(childNode, data) || shouldPrePrintTripleHardline(childNode, data)) { + parts.push(hardline); + } + if (shouldPrePrintTripleHardline(childNode, data)) { + parts.push(hardline); + } + } + } + parts.push(result); + lastChildNode = childNode; + } + }, "children"); + return postprocessor ? postprocessor(parts) : parts; + } + function getLastDescendantNode(node) { + let current = node; + while (isNonEmptyArray(current.children)) { + current = getLast(current.children); + } + return current; + } + function isPrettierIgnore(node) { + let match; + if (node.type === "html") { + match = node.value.match(/^$/); + } else { + let comment; + if (node.type === "esComment") { + comment = node; + } else if (node.type === "paragraph" && node.children.length === 1 && node.children[0].type === "esComment") { + comment = node.children[0]; + } + if (comment) { + match = comment.value.match(/^prettier-ignore(?:-(start|end))?$/); + } + } + return match ? match[1] || "next" : false; + } + function shouldPrePrintHardline(node, data) { + const isFirstNode = data.parts.length === 0; + const isInlineNode = INLINE_NODE_TYPES.includes(node.type); + const isInlineHTML = node.type === "html" && INLINE_NODE_WRAPPER_TYPES.includes(data.parentNode.type); + return !isFirstNode && !isInlineNode && !isInlineHTML; + } + function shouldPrePrintDoubleHardline(node, data) { + var _data$prevNode, _data$prevNode2, _data$prevNode3; + const isSequence = (data.prevNode && data.prevNode.type) === node.type; + const isSiblingNode = isSequence && SIBLING_NODE_TYPES.has(node.type); + const isInTightListItem = data.parentNode.type === "listItem" && !data.parentNode.loose; + const isPrevNodeLooseListItem = ((_data$prevNode = data.prevNode) === null || _data$prevNode === void 0 ? void 0 : _data$prevNode.type) === "listItem" && data.prevNode.loose; + const isPrevNodePrettierIgnore = isPrettierIgnore(data.prevNode) === "next"; + const isBlockHtmlWithoutBlankLineBetweenPrevHtml = node.type === "html" && ((_data$prevNode2 = data.prevNode) === null || _data$prevNode2 === void 0 ? void 0 : _data$prevNode2.type) === "html" && data.prevNode.position.end.line + 1 === node.position.start.line; + const isHtmlDirectAfterListItem = node.type === "html" && data.parentNode.type === "listItem" && ((_data$prevNode3 = data.prevNode) === null || _data$prevNode3 === void 0 ? void 0 : _data$prevNode3.type) === "paragraph" && data.prevNode.position.end.line + 1 === node.position.start.line; + return isPrevNodeLooseListItem || !(isSiblingNode || isInTightListItem || isPrevNodePrettierIgnore || isBlockHtmlWithoutBlankLineBetweenPrevHtml || isHtmlDirectAfterListItem); + } + function shouldPrePrintTripleHardline(node, data) { + const isPrevNodeList = data.prevNode && data.prevNode.type === "list"; + const isIndentedCode = node.type === "code" && node.isIndented; + return isPrevNodeList && isIndentedCode; + } + function shouldRemainTheSameContent(path) { + const ancestorNode = getAncestorNode(path, ["linkReference", "imageReference"]); + return ancestorNode && (ancestorNode.type !== "linkReference" || ancestorNode.referenceType !== "full"); + } + function printUrl(url, dangerousCharOrChars = []) { + const dangerousChars = [" ", ...Array.isArray(dangerousCharOrChars) ? dangerousCharOrChars : [dangerousCharOrChars]]; + return new RegExp(dangerousChars.map((x) => `\\${x}`).join("|")).test(url) ? `<${url}>` : url; + } + function printTitle(title, options, printSpace = true) { + if (!title) { + return ""; + } + if (printSpace) { + return " " + printTitle(title, options, false); + } + title = title.replace(/\\(["')])/g, "$1"); + if (title.includes('"') && title.includes("'") && !title.includes(")")) { + return `(${title})`; + } + const singleCount = title.split("'").length - 1; + const doubleCount = title.split('"').length - 1; + const quote = singleCount > doubleCount ? '"' : doubleCount > singleCount ? "'" : options.singleQuote ? "'" : '"'; + title = title.replace(/\\/, "\\\\"); + title = title.replace(new RegExp(`(${quote})`, "g"), "\\$1"); + return `${quote}${title}${quote}`; + } + function clamp(value, min, max) { + return value < min ? min : value > max ? max : value; + } + function hasPrettierIgnore(path) { + const index = Number(path.getName()); + if (index === 0) { + return false; + } + const prevNode = path.getParentNode().children[index - 1]; + return isPrettierIgnore(prevNode) === "next"; + } + module2.exports = { + preprocess, + print: genericPrint, + embed, + massageAstNode: clean, + hasPrettierIgnore, + insertPragma + }; + } +}); +var require_options5 = __commonJS2({ + "src/language-markdown/options.js"(exports2, module2) { + "use strict"; + var commonOptions = require_common_options(); + module2.exports = { + proseWrap: commonOptions.proseWrap, + singleQuote: commonOptions.singleQuote + }; + } +}); +var require_parsers5 = __commonJS2({ + "src/language-markdown/parsers.js"(exports2, module2) { + "use strict"; + module2.exports = { + get remark() { + return require("./parser-markdown.js").parsers.remark; + }, + get markdown() { + return require("./parser-markdown.js").parsers.remark; + }, + get mdx() { + return require("./parser-markdown.js").parsers.mdx; + } + }; + } +}); +var require_Markdown = __commonJS2({ + "node_modules/linguist-languages/data/Markdown.json"(exports2, module2) { + module2.exports = { + name: "Markdown", + type: "prose", + color: "#083fa1", + aliases: ["pandoc"], + aceMode: "markdown", + codemirrorMode: "gfm", + codemirrorMimeType: "text/x-gfm", + wrap: true, + extensions: [".md", ".livemd", ".markdown", ".mdown", ".mdwn", ".mdx", ".mkd", ".mkdn", ".mkdown", ".ronn", ".scd", ".workbook"], + filenames: ["contents.lr"], + tmScope: "source.gfm", + languageId: 222 + }; + } +}); +var require_language_markdown = __commonJS2({ + "src/language-markdown/index.js"(exports2, module2) { + "use strict"; + var createLanguage = require_create_language(); + var printer = require_printer_markdown(); + var options = require_options5(); + var parsers = require_parsers5(); + var languages = [createLanguage(require_Markdown(), (data) => ({ + since: "1.8.0", + parsers: ["markdown"], + vscodeLanguageIds: ["markdown"], + filenames: [...data.filenames, "README"], + extensions: data.extensions.filter((extension) => extension !== ".mdx") + })), createLanguage(require_Markdown(), () => ({ + name: "MDX", + since: "1.15.0", + parsers: ["mdx"], + vscodeLanguageIds: ["mdx"], + filenames: [], + extensions: [".mdx"] + }))]; + var printers = { + mdast: printer + }; + module2.exports = { + languages, + options, + printers, + parsers + }; + } +}); +var require_clean5 = __commonJS2({ + "src/language-html/clean.js"(exports2, module2) { + "use strict"; + var { + isFrontMatterNode + } = require_util(); + var ignoredProperties = /* @__PURE__ */ new Set(["sourceSpan", "startSourceSpan", "endSourceSpan", "nameSpan", "valueSpan"]); + function clean(ast, newNode) { + if (ast.type === "text" || ast.type === "comment") { + return null; + } + if (isFrontMatterNode(ast) || ast.type === "yaml" || ast.type === "toml") { + return null; + } + if (ast.type === "attribute") { + delete newNode.value; + } + if (ast.type === "docType") { + delete newNode.value; + } + } + clean.ignoredProperties = ignoredProperties; + module2.exports = clean; + } +}); +var require_constants_evaluate2 = __commonJS2({ + "src/language-html/constants.evaluate.js"(exports2, module2) { + module2.exports = { + CSS_DISPLAY_TAGS: { + area: "none", + base: "none", + basefont: "none", + datalist: "none", + head: "none", + link: "none", + meta: "none", + noembed: "none", + noframes: "none", + param: "block", + rp: "none", + script: "block", + source: "block", + style: "none", + template: "inline", + track: "block", + title: "none", + html: "block", + body: "block", + address: "block", + blockquote: "block", + center: "block", + div: "block", + figure: "block", + figcaption: "block", + footer: "block", + form: "block", + header: "block", + hr: "block", + legend: "block", + listing: "block", + main: "block", + p: "block", + plaintext: "block", + pre: "block", + xmp: "block", + slot: "contents", + ruby: "ruby", + rt: "ruby-text", + article: "block", + aside: "block", + h1: "block", + h2: "block", + h3: "block", + h4: "block", + h5: "block", + h6: "block", + hgroup: "block", + nav: "block", + section: "block", + dir: "block", + dd: "block", + dl: "block", + dt: "block", + ol: "block", + ul: "block", + li: "list-item", + table: "table", + caption: "table-caption", + colgroup: "table-column-group", + col: "table-column", + thead: "table-header-group", + tbody: "table-row-group", + tfoot: "table-footer-group", + tr: "table-row", + td: "table-cell", + th: "table-cell", + fieldset: "block", + button: "inline-block", + details: "block", + summary: "block", + dialog: "block", + meter: "inline-block", + progress: "inline-block", + object: "inline-block", + video: "inline-block", + audio: "inline-block", + select: "inline-block", + option: "block", + optgroup: "block" + }, + CSS_DISPLAY_DEFAULT: "inline", + CSS_WHITE_SPACE_TAGS: { + listing: "pre", + plaintext: "pre", + pre: "pre", + xmp: "pre", + nobr: "nowrap", + table: "initial", + textarea: "pre-wrap" + }, + CSS_WHITE_SPACE_DEFAULT: "normal" + }; + } +}); +var require_is_unknown_namespace = __commonJS2({ + "src/language-html/utils/is-unknown-namespace.js"(exports2, module2) { + "use strict"; + function isUnknownNamespace(node) { + return node.type === "element" && !node.hasExplicitNamespace && !["html", "svg"].includes(node.namespace); + } + module2.exports = isUnknownNamespace; + } +}); +var require_utils11 = __commonJS2({ + "src/language-html/utils/index.js"(exports2, module2) { + "use strict"; + var { + inferParserByLanguage, + isFrontMatterNode + } = require_util(); + var { + builders: { + line, + hardline, + join + }, + utils: { + getDocParts, + replaceTextEndOfLine + } + } = require("./doc.js"); + var { + CSS_DISPLAY_TAGS, + CSS_DISPLAY_DEFAULT, + CSS_WHITE_SPACE_TAGS, + CSS_WHITE_SPACE_DEFAULT + } = require_constants_evaluate2(); + var isUnknownNamespace = require_is_unknown_namespace(); + var HTML_WHITESPACE = /* @__PURE__ */ new Set([" ", "\n", "\f", "\r", " "]); + var htmlTrimStart = (string) => string.replace(/^[\t\n\f\r ]+/, ""); + var htmlTrimEnd = (string) => string.replace(/[\t\n\f\r ]+$/, ""); + var htmlTrim = (string) => htmlTrimStart(htmlTrimEnd(string)); + var htmlTrimLeadingBlankLines = (string) => string.replace(/^[\t\f\r ]*\n/g, ""); + var htmlTrimPreserveIndentation = (string) => htmlTrimLeadingBlankLines(htmlTrimEnd(string)); + var splitByHtmlWhitespace = (string) => string.split(/[\t\n\f\r ]+/); + var getLeadingHtmlWhitespace = (string) => string.match(/^[\t\n\f\r ]*/)[0]; + var getLeadingAndTrailingHtmlWhitespace = (string) => { + const [, leadingWhitespace, text, trailingWhitespace] = string.match(/^([\t\n\f\r ]*)(.*?)([\t\n\f\r ]*)$/s); + return { + leadingWhitespace, + trailingWhitespace, + text + }; + }; + var hasHtmlWhitespace = (string) => /[\t\n\f\r ]/.test(string); + function shouldPreserveContent(node, options) { + if (node.type === "ieConditionalComment" && node.lastChild && !node.lastChild.isSelfClosing && !node.lastChild.endSourceSpan) { + return true; + } + if (node.type === "ieConditionalComment" && !node.complete) { + return true; + } + if (isPreLikeNode(node) && node.children.some((child) => child.type !== "text" && child.type !== "interpolation")) { + return true; + } + if (isVueNonHtmlBlock(node, options) && !isScriptLikeTag(node) && node.type !== "interpolation") { + return true; + } + return false; + } + function hasPrettierIgnore(node) { + if (node.type === "attribute") { + return false; + } + if (!node.parent) { + return false; + } + if (!node.prev) { + return false; + } + return isPrettierIgnore(node.prev); + } + function isPrettierIgnore(node) { + return node.type === "comment" && node.value.trim() === "prettier-ignore"; + } + function isTextLikeNode(node) { + return node.type === "text" || node.type === "comment"; + } + function isScriptLikeTag(node) { + return node.type === "element" && (node.fullName === "script" || node.fullName === "style" || node.fullName === "svg:style" || isUnknownNamespace(node) && (node.name === "script" || node.name === "style")); + } + function canHaveInterpolation(node) { + return node.children && !isScriptLikeTag(node); + } + function isWhitespaceSensitiveNode(node) { + return isScriptLikeTag(node) || node.type === "interpolation" || isIndentationSensitiveNode(node); + } + function isIndentationSensitiveNode(node) { + return getNodeCssStyleWhiteSpace(node).startsWith("pre"); + } + function isLeadingSpaceSensitiveNode(node, options) { + const isLeadingSpaceSensitive = _isLeadingSpaceSensitiveNode(); + if (isLeadingSpaceSensitive && !node.prev && node.parent && node.parent.tagDefinition && node.parent.tagDefinition.ignoreFirstLf) { + return node.type === "interpolation"; + } + return isLeadingSpaceSensitive; + function _isLeadingSpaceSensitiveNode() { + if (isFrontMatterNode(node)) { + return false; + } + if ((node.type === "text" || node.type === "interpolation") && node.prev && (node.prev.type === "text" || node.prev.type === "interpolation")) { + return true; + } + if (!node.parent || node.parent.cssDisplay === "none") { + return false; + } + if (isPreLikeNode(node.parent)) { + return true; + } + if (!node.prev && (node.parent.type === "root" || isPreLikeNode(node) && node.parent || isScriptLikeTag(node.parent) || isVueCustomBlock(node.parent, options) || !isFirstChildLeadingSpaceSensitiveCssDisplay(node.parent.cssDisplay))) { + return false; + } + if (node.prev && !isNextLeadingSpaceSensitiveCssDisplay(node.prev.cssDisplay)) { + return false; + } + return true; + } + } + function isTrailingSpaceSensitiveNode(node, options) { + if (isFrontMatterNode(node)) { + return false; + } + if ((node.type === "text" || node.type === "interpolation") && node.next && (node.next.type === "text" || node.next.type === "interpolation")) { + return true; + } + if (!node.parent || node.parent.cssDisplay === "none") { + return false; + } + if (isPreLikeNode(node.parent)) { + return true; + } + if (!node.next && (node.parent.type === "root" || isPreLikeNode(node) && node.parent || isScriptLikeTag(node.parent) || isVueCustomBlock(node.parent, options) || !isLastChildTrailingSpaceSensitiveCssDisplay(node.parent.cssDisplay))) { + return false; + } + if (node.next && !isPrevTrailingSpaceSensitiveCssDisplay(node.next.cssDisplay)) { + return false; + } + return true; + } + function isDanglingSpaceSensitiveNode(node) { + return isDanglingSpaceSensitiveCssDisplay(node.cssDisplay) && !isScriptLikeTag(node); + } + function forceNextEmptyLine(node) { + return isFrontMatterNode(node) || node.next && node.sourceSpan.end && node.sourceSpan.end.line + 1 < node.next.sourceSpan.start.line; + } + function forceBreakContent(node) { + return forceBreakChildren(node) || node.type === "element" && node.children.length > 0 && (["body", "script", "style"].includes(node.name) || node.children.some((child) => hasNonTextChild(child))) || node.firstChild && node.firstChild === node.lastChild && node.firstChild.type !== "text" && hasLeadingLineBreak(node.firstChild) && (!node.lastChild.isTrailingSpaceSensitive || hasTrailingLineBreak(node.lastChild)); + } + function forceBreakChildren(node) { + return node.type === "element" && node.children.length > 0 && (["html", "head", "ul", "ol", "select"].includes(node.name) || node.cssDisplay.startsWith("table") && node.cssDisplay !== "table-cell"); + } + function preferHardlineAsLeadingSpaces(node) { + return preferHardlineAsSurroundingSpaces(node) || node.prev && preferHardlineAsTrailingSpaces(node.prev) || hasSurroundingLineBreak(node); + } + function preferHardlineAsTrailingSpaces(node) { + return preferHardlineAsSurroundingSpaces(node) || node.type === "element" && node.fullName === "br" || hasSurroundingLineBreak(node); + } + function hasSurroundingLineBreak(node) { + return hasLeadingLineBreak(node) && hasTrailingLineBreak(node); + } + function hasLeadingLineBreak(node) { + return node.hasLeadingSpaces && (node.prev ? node.prev.sourceSpan.end.line < node.sourceSpan.start.line : node.parent.type === "root" || node.parent.startSourceSpan.end.line < node.sourceSpan.start.line); + } + function hasTrailingLineBreak(node) { + return node.hasTrailingSpaces && (node.next ? node.next.sourceSpan.start.line > node.sourceSpan.end.line : node.parent.type === "root" || node.parent.endSourceSpan && node.parent.endSourceSpan.start.line > node.sourceSpan.end.line); + } + function preferHardlineAsSurroundingSpaces(node) { + switch (node.type) { + case "ieConditionalComment": + case "comment": + case "directive": + return true; + case "element": + return ["script", "select"].includes(node.name); + } + return false; + } + function getLastDescendant(node) { + return node.lastChild ? getLastDescendant(node.lastChild) : node; + } + function hasNonTextChild(node) { + return node.children && node.children.some((child) => child.type !== "text"); + } + function _inferScriptParser(node) { + const { + type, + lang + } = node.attrMap; + if (type === "module" || type === "text/javascript" || type === "text/babel" || type === "application/javascript" || lang === "jsx") { + return "babel"; + } + if (type === "application/x-typescript" || lang === "ts" || lang === "tsx") { + return "typescript"; + } + if (type === "text/markdown") { + return "markdown"; + } + if (type === "text/html") { + return "html"; + } + if (type && (type.endsWith("json") || type.endsWith("importmap")) || type === "speculationrules") { + return "json"; + } + if (type === "text/x-handlebars-template") { + return "glimmer"; + } + } + function inferStyleParser(node, options) { + const { + lang + } = node.attrMap; + if (!lang || lang === "postcss" || lang === "css") { + return "css"; + } + if (lang === "scss") { + return "scss"; + } + if (lang === "less") { + return "less"; + } + if (lang === "stylus") { + return inferParserByLanguage("stylus", options); + } + } + function inferScriptParser(node, options) { + if (node.name === "script" && !node.attrMap.src) { + if (!node.attrMap.lang && !node.attrMap.type) { + return "babel"; + } + return _inferScriptParser(node); + } + if (node.name === "style") { + return inferStyleParser(node, options); + } + if (options && isVueNonHtmlBlock(node, options)) { + return _inferScriptParser(node) || !("src" in node.attrMap) && inferParserByLanguage(node.attrMap.lang, options); + } + } + function isBlockLikeCssDisplay(cssDisplay) { + return cssDisplay === "block" || cssDisplay === "list-item" || cssDisplay.startsWith("table"); + } + function isFirstChildLeadingSpaceSensitiveCssDisplay(cssDisplay) { + return !isBlockLikeCssDisplay(cssDisplay) && cssDisplay !== "inline-block"; + } + function isLastChildTrailingSpaceSensitiveCssDisplay(cssDisplay) { + return !isBlockLikeCssDisplay(cssDisplay) && cssDisplay !== "inline-block"; + } + function isPrevTrailingSpaceSensitiveCssDisplay(cssDisplay) { + return !isBlockLikeCssDisplay(cssDisplay); + } + function isNextLeadingSpaceSensitiveCssDisplay(cssDisplay) { + return !isBlockLikeCssDisplay(cssDisplay); + } + function isDanglingSpaceSensitiveCssDisplay(cssDisplay) { + return !isBlockLikeCssDisplay(cssDisplay) && cssDisplay !== "inline-block"; + } + function isPreLikeNode(node) { + return getNodeCssStyleWhiteSpace(node).startsWith("pre"); + } + function countParents(path, predicate) { + let counter = 0; + for (let i = path.stack.length - 1; i >= 0; i--) { + const value = path.stack[i]; + if (value && typeof value === "object" && !Array.isArray(value) && predicate(value)) { + counter++; + } + } + return counter; + } + function hasParent(node, fn) { + let current = node; + while (current) { + if (fn(current)) { + return true; + } + current = current.parent; + } + return false; + } + function getNodeCssStyleDisplay(node, options) { + if (node.prev && node.prev.type === "comment") { + const match = node.prev.value.match(/^\s*display:\s*([a-z]+)\s*$/); + if (match) { + return match[1]; + } + } + let isInSvgForeignObject = false; + if (node.type === "element" && node.namespace === "svg") { + if (hasParent(node, (parent) => parent.fullName === "svg:foreignObject")) { + isInSvgForeignObject = true; + } else { + return node.name === "svg" ? "inline-block" : "block"; + } + } + switch (options.htmlWhitespaceSensitivity) { + case "strict": + return "inline"; + case "ignore": + return "block"; + default: { + if (options.parser === "vue" && node.parent && node.parent.type === "root") { + return "block"; + } + return node.type === "element" && (!node.namespace || isInSvgForeignObject || isUnknownNamespace(node)) && CSS_DISPLAY_TAGS[node.name] || CSS_DISPLAY_DEFAULT; + } + } + } + function getNodeCssStyleWhiteSpace(node) { + return node.type === "element" && (!node.namespace || isUnknownNamespace(node)) && CSS_WHITE_SPACE_TAGS[node.name] || CSS_WHITE_SPACE_DEFAULT; + } + function getMinIndentation(text) { + let minIndentation = Number.POSITIVE_INFINITY; + for (const lineText of text.split("\n")) { + if (lineText.length === 0) { + continue; + } + if (!HTML_WHITESPACE.has(lineText[0])) { + return 0; + } + const indentation = getLeadingHtmlWhitespace(lineText).length; + if (lineText.length === indentation) { + continue; + } + if (indentation < minIndentation) { + minIndentation = indentation; + } + } + return minIndentation === Number.POSITIVE_INFINITY ? 0 : minIndentation; + } + function dedentString(text, minIndent = getMinIndentation(text)) { + return minIndent === 0 ? text : text.split("\n").map((lineText) => lineText.slice(minIndent)).join("\n"); + } + function countChars(text, char) { + let counter = 0; + for (let i = 0; i < text.length; i++) { + if (text[i] === char) { + counter++; + } + } + return counter; + } + function unescapeQuoteEntities(text) { + return text.replace(/'/g, "'").replace(/"/g, '"'); + } + var vueRootElementsSet = /* @__PURE__ */ new Set(["template", "style", "script"]); + function isVueCustomBlock(node, options) { + return isVueSfcBlock(node, options) && !vueRootElementsSet.has(node.fullName); + } + function isVueSfcBlock(node, options) { + return options.parser === "vue" && node.type === "element" && node.parent.type === "root" && node.fullName.toLowerCase() !== "html"; + } + function isVueNonHtmlBlock(node, options) { + return isVueSfcBlock(node, options) && (isVueCustomBlock(node, options) || node.attrMap.lang && node.attrMap.lang !== "html"); + } + function isVueSlotAttribute(attribute) { + const attributeName = attribute.fullName; + return attributeName.charAt(0) === "#" || attributeName === "slot-scope" || attributeName === "v-slot" || attributeName.startsWith("v-slot:"); + } + function isVueSfcBindingsAttribute(attribute, options) { + const element = attribute.parent; + if (!isVueSfcBlock(element, options)) { + return false; + } + const tagName = element.fullName; + const attributeName = attribute.fullName; + return tagName === "script" && attributeName === "setup" || tagName === "style" && attributeName === "vars"; + } + function getTextValueParts(node, value = node.value) { + return node.parent.isWhitespaceSensitive ? node.parent.isIndentationSensitive ? replaceTextEndOfLine(value) : replaceTextEndOfLine(dedentString(htmlTrimPreserveIndentation(value)), hardline) : getDocParts(join(line, splitByHtmlWhitespace(value))); + } + function isVueScriptTag(node, options) { + return isVueSfcBlock(node, options) && node.name === "script"; + } + module2.exports = { + htmlTrim, + htmlTrimPreserveIndentation, + hasHtmlWhitespace, + getLeadingAndTrailingHtmlWhitespace, + canHaveInterpolation, + countChars, + countParents, + dedentString, + forceBreakChildren, + forceBreakContent, + forceNextEmptyLine, + getLastDescendant, + getNodeCssStyleDisplay, + getNodeCssStyleWhiteSpace, + hasPrettierIgnore, + inferScriptParser, + isVueCustomBlock, + isVueNonHtmlBlock, + isVueScriptTag, + isVueSlotAttribute, + isVueSfcBindingsAttribute, + isVueSfcBlock, + isDanglingSpaceSensitiveNode, + isIndentationSensitiveNode, + isLeadingSpaceSensitiveNode, + isPreLikeNode, + isScriptLikeTag, + isTextLikeNode, + isTrailingSpaceSensitiveNode, + isWhitespaceSensitiveNode, + isUnknownNamespace, + preferHardlineAsLeadingSpaces, + preferHardlineAsTrailingSpaces, + shouldPreserveContent, + unescapeQuoteEntities, + getTextValueParts + }; + } +}); +var require_chars = __commonJS2({ + "node_modules/angular-html-parser/lib/compiler/src/chars.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.$EOF = 0; + exports2.$BSPACE = 8; + exports2.$TAB = 9; + exports2.$LF = 10; + exports2.$VTAB = 11; + exports2.$FF = 12; + exports2.$CR = 13; + exports2.$SPACE = 32; + exports2.$BANG = 33; + exports2.$DQ = 34; + exports2.$HASH = 35; + exports2.$$ = 36; + exports2.$PERCENT = 37; + exports2.$AMPERSAND = 38; + exports2.$SQ = 39; + exports2.$LPAREN = 40; + exports2.$RPAREN = 41; + exports2.$STAR = 42; + exports2.$PLUS = 43; + exports2.$COMMA = 44; + exports2.$MINUS = 45; + exports2.$PERIOD = 46; + exports2.$SLASH = 47; + exports2.$COLON = 58; + exports2.$SEMICOLON = 59; + exports2.$LT = 60; + exports2.$EQ = 61; + exports2.$GT = 62; + exports2.$QUESTION = 63; + exports2.$0 = 48; + exports2.$7 = 55; + exports2.$9 = 57; + exports2.$A = 65; + exports2.$E = 69; + exports2.$F = 70; + exports2.$X = 88; + exports2.$Z = 90; + exports2.$LBRACKET = 91; + exports2.$BACKSLASH = 92; + exports2.$RBRACKET = 93; + exports2.$CARET = 94; + exports2.$_ = 95; + exports2.$a = 97; + exports2.$b = 98; + exports2.$e = 101; + exports2.$f = 102; + exports2.$n = 110; + exports2.$r = 114; + exports2.$t = 116; + exports2.$u = 117; + exports2.$v = 118; + exports2.$x = 120; + exports2.$z = 122; + exports2.$LBRACE = 123; + exports2.$BAR = 124; + exports2.$RBRACE = 125; + exports2.$NBSP = 160; + exports2.$PIPE = 124; + exports2.$TILDA = 126; + exports2.$AT = 64; + exports2.$BT = 96; + function isWhitespace(code) { + return code >= exports2.$TAB && code <= exports2.$SPACE || code == exports2.$NBSP; + } + exports2.isWhitespace = isWhitespace; + function isDigit(code) { + return exports2.$0 <= code && code <= exports2.$9; + } + exports2.isDigit = isDigit; + function isAsciiLetter(code) { + return code >= exports2.$a && code <= exports2.$z || code >= exports2.$A && code <= exports2.$Z; + } + exports2.isAsciiLetter = isAsciiLetter; + function isAsciiHexDigit(code) { + return code >= exports2.$a && code <= exports2.$f || code >= exports2.$A && code <= exports2.$F || isDigit(code); + } + exports2.isAsciiHexDigit = isAsciiHexDigit; + function isNewLine(code) { + return code === exports2.$LF || code === exports2.$CR; + } + exports2.isNewLine = isNewLine; + function isOctalDigit(code) { + return exports2.$0 <= code && code <= exports2.$7; + } + exports2.isOctalDigit = isOctalDigit; + } +}); +var require_static_symbol = __commonJS2({ + "node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var StaticSymbol = class { + constructor(filePath, name, members) { + this.filePath = filePath; + this.name = name; + this.members = members; + } + assertNoMembers() { + if (this.members.length) { + throw new Error(`Illegal state: symbol without members expected, but got ${JSON.stringify(this)}.`); + } + } + }; + exports2.StaticSymbol = StaticSymbol; + var StaticSymbolCache = class { + constructor() { + this.cache = /* @__PURE__ */ new Map(); + } + get(declarationFile, name, members) { + members = members || []; + const memberSuffix = members.length ? `.${members.join(".")}` : ""; + const key = `"${declarationFile}".${name}${memberSuffix}`; + let result = this.cache.get(key); + if (!result) { + result = new StaticSymbol(declarationFile, name, members); + this.cache.set(key, result); + } + return result; + } + }; + exports2.StaticSymbolCache = StaticSymbolCache; + } +}); +var require_util3 = __commonJS2({ + "node_modules/angular-html-parser/lib/compiler/src/util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var DASH_CASE_REGEXP = /-+([a-z0-9])/g; + function dashCaseToCamelCase(input) { + return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase()); + } + exports2.dashCaseToCamelCase = dashCaseToCamelCase; + function splitAtColon(input, defaultValues) { + return _splitAt(input, ":", defaultValues); + } + exports2.splitAtColon = splitAtColon; + function splitAtPeriod(input, defaultValues) { + return _splitAt(input, ".", defaultValues); + } + exports2.splitAtPeriod = splitAtPeriod; + function _splitAt(input, character, defaultValues) { + const characterIndex = input.indexOf(character); + if (characterIndex == -1) + return defaultValues; + return [input.slice(0, characterIndex).trim(), input.slice(characterIndex + 1).trim()]; + } + function visitValue(value, visitor, context) { + if (Array.isArray(value)) { + return visitor.visitArray(value, context); + } + if (isStrictStringMap(value)) { + return visitor.visitStringMap(value, context); + } + if (value == null || typeof value == "string" || typeof value == "number" || typeof value == "boolean") { + return visitor.visitPrimitive(value, context); + } + return visitor.visitOther(value, context); + } + exports2.visitValue = visitValue; + function isDefined(val) { + return val !== null && val !== void 0; + } + exports2.isDefined = isDefined; + function noUndefined(val) { + return val === void 0 ? null : val; + } + exports2.noUndefined = noUndefined; + var ValueTransformer = class { + visitArray(arr, context) { + return arr.map((value) => visitValue(value, this, context)); + } + visitStringMap(map, context) { + const result = {}; + Object.keys(map).forEach((key) => { + result[key] = visitValue(map[key], this, context); + }); + return result; + } + visitPrimitive(value, context) { + return value; + } + visitOther(value, context) { + return value; + } + }; + exports2.ValueTransformer = ValueTransformer; + exports2.SyncAsync = { + assertSync: (value) => { + if (isPromise(value)) { + throw new Error(`Illegal state: value cannot be a promise`); + } + return value; + }, + then: (value, cb) => { + return isPromise(value) ? value.then(cb) : cb(value); + }, + all: (syncAsyncValues) => { + return syncAsyncValues.some(isPromise) ? Promise.all(syncAsyncValues) : syncAsyncValues; + } + }; + function error(msg) { + throw new Error(`Internal Error: ${msg}`); + } + exports2.error = error; + function syntaxError(msg, parseErrors) { + const error2 = Error(msg); + error2[ERROR_SYNTAX_ERROR] = true; + if (parseErrors) + error2[ERROR_PARSE_ERRORS] = parseErrors; + return error2; + } + exports2.syntaxError = syntaxError; + var ERROR_SYNTAX_ERROR = "ngSyntaxError"; + var ERROR_PARSE_ERRORS = "ngParseErrors"; + function isSyntaxError(error2) { + return error2[ERROR_SYNTAX_ERROR]; + } + exports2.isSyntaxError = isSyntaxError; + function getParseErrors(error2) { + return error2[ERROR_PARSE_ERRORS] || []; + } + exports2.getParseErrors = getParseErrors; + function escapeRegExp(s) { + return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1"); + } + exports2.escapeRegExp = escapeRegExp; + var STRING_MAP_PROTO = Object.getPrototypeOf({}); + function isStrictStringMap(obj) { + return typeof obj === "object" && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO; + } + function utf8Encode(str) { + let encoded = ""; + for (let index = 0; index < str.length; index++) { + let codePoint = str.charCodeAt(index); + if (codePoint >= 55296 && codePoint <= 56319 && str.length > index + 1) { + const low = str.charCodeAt(index + 1); + if (low >= 56320 && low <= 57343) { + index++; + codePoint = (codePoint - 55296 << 10) + low - 56320 + 65536; + } + } + if (codePoint <= 127) { + encoded += String.fromCharCode(codePoint); + } else if (codePoint <= 2047) { + encoded += String.fromCharCode(codePoint >> 6 & 31 | 192, codePoint & 63 | 128); + } else if (codePoint <= 65535) { + encoded += String.fromCharCode(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else if (codePoint <= 2097151) { + encoded += String.fromCharCode(codePoint >> 18 & 7 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } + } + return encoded; + } + exports2.utf8Encode = utf8Encode; + function stringify(token) { + if (typeof token === "string") { + return token; + } + if (token instanceof Array) { + return "[" + token.map(stringify).join(", ") + "]"; + } + if (token == null) { + return "" + token; + } + if (token.overriddenName) { + return `${token.overriddenName}`; + } + if (token.name) { + return `${token.name}`; + } + if (!token.toString) { + return "object"; + } + const res = token.toString(); + if (res == null) { + return "" + res; + } + const newLineIndex = res.indexOf("\n"); + return newLineIndex === -1 ? res : res.substring(0, newLineIndex); + } + exports2.stringify = stringify; + function resolveForwardRef(type) { + if (typeof type === "function" && type.hasOwnProperty("__forward_ref__")) { + return type(); + } else { + return type; + } + } + exports2.resolveForwardRef = resolveForwardRef; + function isPromise(obj) { + return !!obj && typeof obj.then === "function"; + } + exports2.isPromise = isPromise; + var Version = class { + constructor(full) { + this.full = full; + const splits = full.split("."); + this.major = splits[0]; + this.minor = splits[1]; + this.patch = splits.slice(2).join("."); + } + }; + exports2.Version = Version; + var __window = typeof window !== "undefined" && window; + var __self = typeof self !== "undefined" && typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope && self; + var __global = typeof global !== "undefined" && global; + var _global = __global || __window || __self; + exports2.global = _global; + } +}); +var require_compile_metadata = __commonJS2({ + "node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var static_symbol_1 = require_static_symbol(); + var util_1 = require_util3(); + var HOST_REG_EXP = /^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/; + function sanitizeIdentifier(name) { + return name.replace(/\W/g, "_"); + } + exports2.sanitizeIdentifier = sanitizeIdentifier; + var _anonymousTypeIndex = 0; + function identifierName(compileIdentifier) { + if (!compileIdentifier || !compileIdentifier.reference) { + return null; + } + const ref = compileIdentifier.reference; + if (ref instanceof static_symbol_1.StaticSymbol) { + return ref.name; + } + if (ref["__anonymousType"]) { + return ref["__anonymousType"]; + } + let identifier = util_1.stringify(ref); + if (identifier.indexOf("(") >= 0) { + identifier = `anonymous_${_anonymousTypeIndex++}`; + ref["__anonymousType"] = identifier; + } else { + identifier = sanitizeIdentifier(identifier); + } + return identifier; + } + exports2.identifierName = identifierName; + function identifierModuleUrl(compileIdentifier) { + const ref = compileIdentifier.reference; + if (ref instanceof static_symbol_1.StaticSymbol) { + return ref.filePath; + } + return `./${util_1.stringify(ref)}`; + } + exports2.identifierModuleUrl = identifierModuleUrl; + function viewClassName(compType, embeddedTemplateIndex) { + return `View_${identifierName({ + reference: compType + })}_${embeddedTemplateIndex}`; + } + exports2.viewClassName = viewClassName; + function rendererTypeName(compType) { + return `RenderType_${identifierName({ + reference: compType + })}`; + } + exports2.rendererTypeName = rendererTypeName; + function hostViewClassName(compType) { + return `HostView_${identifierName({ + reference: compType + })}`; + } + exports2.hostViewClassName = hostViewClassName; + function componentFactoryName(compType) { + return `${identifierName({ + reference: compType + })}NgFactory`; + } + exports2.componentFactoryName = componentFactoryName; + var CompileSummaryKind; + (function(CompileSummaryKind2) { + CompileSummaryKind2[CompileSummaryKind2["Pipe"] = 0] = "Pipe"; + CompileSummaryKind2[CompileSummaryKind2["Directive"] = 1] = "Directive"; + CompileSummaryKind2[CompileSummaryKind2["NgModule"] = 2] = "NgModule"; + CompileSummaryKind2[CompileSummaryKind2["Injectable"] = 3] = "Injectable"; + })(CompileSummaryKind = exports2.CompileSummaryKind || (exports2.CompileSummaryKind = {})); + function tokenName(token) { + return token.value != null ? sanitizeIdentifier(token.value) : identifierName(token.identifier); + } + exports2.tokenName = tokenName; + function tokenReference(token) { + if (token.identifier != null) { + return token.identifier.reference; + } else { + return token.value; + } + } + exports2.tokenReference = tokenReference; + var CompileStylesheetMetadata = class { + constructor({ + moduleUrl, + styles, + styleUrls + } = {}) { + this.moduleUrl = moduleUrl || null; + this.styles = _normalizeArray(styles); + this.styleUrls = _normalizeArray(styleUrls); + } + }; + exports2.CompileStylesheetMetadata = CompileStylesheetMetadata; + var CompileTemplateMetadata = class { + constructor({ + encapsulation, + template, + templateUrl, + htmlAst, + styles, + styleUrls, + externalStylesheets, + animations, + ngContentSelectors, + interpolation, + isInline, + preserveWhitespaces + }) { + this.encapsulation = encapsulation; + this.template = template; + this.templateUrl = templateUrl; + this.htmlAst = htmlAst; + this.styles = _normalizeArray(styles); + this.styleUrls = _normalizeArray(styleUrls); + this.externalStylesheets = _normalizeArray(externalStylesheets); + this.animations = animations ? flatten(animations) : []; + this.ngContentSelectors = ngContentSelectors || []; + if (interpolation && interpolation.length != 2) { + throw new Error(`'interpolation' should have a start and an end symbol.`); + } + this.interpolation = interpolation; + this.isInline = isInline; + this.preserveWhitespaces = preserveWhitespaces; + } + toSummary() { + return { + ngContentSelectors: this.ngContentSelectors, + encapsulation: this.encapsulation, + styles: this.styles, + animations: this.animations + }; + } + }; + exports2.CompileTemplateMetadata = CompileTemplateMetadata; + var CompileDirectiveMetadata = class { + static create({ + isHost, + type, + isComponent, + selector, + exportAs, + changeDetection, + inputs, + outputs, + host, + providers, + viewProviders, + queries, + guards, + viewQueries, + entryComponents, + template, + componentViewType, + rendererType, + componentFactory + }) { + const hostListeners = {}; + const hostProperties = {}; + const hostAttributes = {}; + if (host != null) { + Object.keys(host).forEach((key) => { + const value = host[key]; + const matches = key.match(HOST_REG_EXP); + if (matches === null) { + hostAttributes[key] = value; + } else if (matches[1] != null) { + hostProperties[matches[1]] = value; + } else if (matches[2] != null) { + hostListeners[matches[2]] = value; + } + }); + } + const inputsMap = {}; + if (inputs != null) { + inputs.forEach((bindConfig) => { + const parts = util_1.splitAtColon(bindConfig, [bindConfig, bindConfig]); + inputsMap[parts[0]] = parts[1]; + }); + } + const outputsMap = {}; + if (outputs != null) { + outputs.forEach((bindConfig) => { + const parts = util_1.splitAtColon(bindConfig, [bindConfig, bindConfig]); + outputsMap[parts[0]] = parts[1]; + }); + } + return new CompileDirectiveMetadata({ + isHost, + type, + isComponent: !!isComponent, + selector, + exportAs, + changeDetection, + inputs: inputsMap, + outputs: outputsMap, + hostListeners, + hostProperties, + hostAttributes, + providers, + viewProviders, + queries, + guards, + viewQueries, + entryComponents, + template, + componentViewType, + rendererType, + componentFactory + }); + } + constructor({ + isHost, + type, + isComponent, + selector, + exportAs, + changeDetection, + inputs, + outputs, + hostListeners, + hostProperties, + hostAttributes, + providers, + viewProviders, + queries, + guards, + viewQueries, + entryComponents, + template, + componentViewType, + rendererType, + componentFactory + }) { + this.isHost = !!isHost; + this.type = type; + this.isComponent = isComponent; + this.selector = selector; + this.exportAs = exportAs; + this.changeDetection = changeDetection; + this.inputs = inputs; + this.outputs = outputs; + this.hostListeners = hostListeners; + this.hostProperties = hostProperties; + this.hostAttributes = hostAttributes; + this.providers = _normalizeArray(providers); + this.viewProviders = _normalizeArray(viewProviders); + this.queries = _normalizeArray(queries); + this.guards = guards; + this.viewQueries = _normalizeArray(viewQueries); + this.entryComponents = _normalizeArray(entryComponents); + this.template = template; + this.componentViewType = componentViewType; + this.rendererType = rendererType; + this.componentFactory = componentFactory; + } + toSummary() { + return { + summaryKind: CompileSummaryKind.Directive, + type: this.type, + isComponent: this.isComponent, + selector: this.selector, + exportAs: this.exportAs, + inputs: this.inputs, + outputs: this.outputs, + hostListeners: this.hostListeners, + hostProperties: this.hostProperties, + hostAttributes: this.hostAttributes, + providers: this.providers, + viewProviders: this.viewProviders, + queries: this.queries, + guards: this.guards, + viewQueries: this.viewQueries, + entryComponents: this.entryComponents, + changeDetection: this.changeDetection, + template: this.template && this.template.toSummary(), + componentViewType: this.componentViewType, + rendererType: this.rendererType, + componentFactory: this.componentFactory + }; + } + }; + exports2.CompileDirectiveMetadata = CompileDirectiveMetadata; + var CompilePipeMetadata = class { + constructor({ + type, + name, + pure + }) { + this.type = type; + this.name = name; + this.pure = !!pure; + } + toSummary() { + return { + summaryKind: CompileSummaryKind.Pipe, + type: this.type, + name: this.name, + pure: this.pure + }; + } + }; + exports2.CompilePipeMetadata = CompilePipeMetadata; + var CompileShallowModuleMetadata = class { + }; + exports2.CompileShallowModuleMetadata = CompileShallowModuleMetadata; + var CompileNgModuleMetadata = class { + constructor({ + type, + providers, + declaredDirectives, + exportedDirectives, + declaredPipes, + exportedPipes, + entryComponents, + bootstrapComponents, + importedModules, + exportedModules, + schemas, + transitiveModule, + id + }) { + this.type = type || null; + this.declaredDirectives = _normalizeArray(declaredDirectives); + this.exportedDirectives = _normalizeArray(exportedDirectives); + this.declaredPipes = _normalizeArray(declaredPipes); + this.exportedPipes = _normalizeArray(exportedPipes); + this.providers = _normalizeArray(providers); + this.entryComponents = _normalizeArray(entryComponents); + this.bootstrapComponents = _normalizeArray(bootstrapComponents); + this.importedModules = _normalizeArray(importedModules); + this.exportedModules = _normalizeArray(exportedModules); + this.schemas = _normalizeArray(schemas); + this.id = id || null; + this.transitiveModule = transitiveModule || null; + } + toSummary() { + const module3 = this.transitiveModule; + return { + summaryKind: CompileSummaryKind.NgModule, + type: this.type, + entryComponents: module3.entryComponents, + providers: module3.providers, + modules: module3.modules, + exportedDirectives: module3.exportedDirectives, + exportedPipes: module3.exportedPipes + }; + } + }; + exports2.CompileNgModuleMetadata = CompileNgModuleMetadata; + var TransitiveCompileNgModuleMetadata = class { + constructor() { + this.directivesSet = /* @__PURE__ */ new Set(); + this.directives = []; + this.exportedDirectivesSet = /* @__PURE__ */ new Set(); + this.exportedDirectives = []; + this.pipesSet = /* @__PURE__ */ new Set(); + this.pipes = []; + this.exportedPipesSet = /* @__PURE__ */ new Set(); + this.exportedPipes = []; + this.modulesSet = /* @__PURE__ */ new Set(); + this.modules = []; + this.entryComponentsSet = /* @__PURE__ */ new Set(); + this.entryComponents = []; + this.providers = []; + } + addProvider(provider, module3) { + this.providers.push({ + provider, + module: module3 + }); + } + addDirective(id) { + if (!this.directivesSet.has(id.reference)) { + this.directivesSet.add(id.reference); + this.directives.push(id); + } + } + addExportedDirective(id) { + if (!this.exportedDirectivesSet.has(id.reference)) { + this.exportedDirectivesSet.add(id.reference); + this.exportedDirectives.push(id); + } + } + addPipe(id) { + if (!this.pipesSet.has(id.reference)) { + this.pipesSet.add(id.reference); + this.pipes.push(id); + } + } + addExportedPipe(id) { + if (!this.exportedPipesSet.has(id.reference)) { + this.exportedPipesSet.add(id.reference); + this.exportedPipes.push(id); + } + } + addModule(id) { + if (!this.modulesSet.has(id.reference)) { + this.modulesSet.add(id.reference); + this.modules.push(id); + } + } + addEntryComponent(ec) { + if (!this.entryComponentsSet.has(ec.componentType)) { + this.entryComponentsSet.add(ec.componentType); + this.entryComponents.push(ec); + } + } + }; + exports2.TransitiveCompileNgModuleMetadata = TransitiveCompileNgModuleMetadata; + function _normalizeArray(obj) { + return obj || []; + } + var ProviderMeta = class { + constructor(token, { + useClass, + useValue, + useExisting, + useFactory, + deps, + multi + }) { + this.token = token; + this.useClass = useClass || null; + this.useValue = useValue; + this.useExisting = useExisting; + this.useFactory = useFactory || null; + this.dependencies = deps || null; + this.multi = !!multi; + } + }; + exports2.ProviderMeta = ProviderMeta; + function flatten(list) { + return list.reduce((flat, item) => { + const flatItem = Array.isArray(item) ? flatten(item) : item; + return flat.concat(flatItem); + }, []); + } + exports2.flatten = flatten; + function jitSourceUrl(url) { + return url.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/, "ng:///"); + } + function templateSourceUrl(ngModuleType, compMeta, templateMeta) { + let url; + if (templateMeta.isInline) { + if (compMeta.type.reference instanceof static_symbol_1.StaticSymbol) { + url = `${compMeta.type.reference.filePath}.${compMeta.type.reference.name}.html`; + } else { + url = `${identifierName(ngModuleType)}/${identifierName(compMeta.type)}.html`; + } + } else { + url = templateMeta.templateUrl; + } + return compMeta.type.reference instanceof static_symbol_1.StaticSymbol ? url : jitSourceUrl(url); + } + exports2.templateSourceUrl = templateSourceUrl; + function sharedStylesheetJitUrl(meta, id) { + const pathParts = meta.moduleUrl.split(/\/\\/g); + const baseName = pathParts[pathParts.length - 1]; + return jitSourceUrl(`css/${id}${baseName}.ngstyle.js`); + } + exports2.sharedStylesheetJitUrl = sharedStylesheetJitUrl; + function ngModuleJitUrl(moduleMeta) { + return jitSourceUrl(`${identifierName(moduleMeta.type)}/module.ngfactory.js`); + } + exports2.ngModuleJitUrl = ngModuleJitUrl; + function templateJitUrl(ngModuleType, compMeta) { + return jitSourceUrl(`${identifierName(ngModuleType)}/${identifierName(compMeta.type)}.ngfactory.js`); + } + exports2.templateJitUrl = templateJitUrl; + } +}); +var require_parse_util = __commonJS2({ + "node_modules/angular-html-parser/lib/compiler/src/parse_util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var chars = require_chars(); + var compile_metadata_1 = require_compile_metadata(); + var ParseLocation = class { + constructor(file, offset, line, col) { + this.file = file; + this.offset = offset; + this.line = line; + this.col = col; + } + toString() { + return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url; + } + moveBy(delta) { + const source = this.file.content; + const len = source.length; + let offset = this.offset; + let line = this.line; + let col = this.col; + while (offset > 0 && delta < 0) { + offset--; + delta++; + const ch = source.charCodeAt(offset); + if (ch == chars.$LF) { + line--; + const priorLine = source.substr(0, offset - 1).lastIndexOf(String.fromCharCode(chars.$LF)); + col = priorLine > 0 ? offset - priorLine : offset; + } else { + col--; + } + } + while (offset < len && delta > 0) { + const ch = source.charCodeAt(offset); + offset++; + delta--; + if (ch == chars.$LF) { + line++; + col = 0; + } else { + col++; + } + } + return new ParseLocation(this.file, offset, line, col); + } + getContext(maxChars, maxLines) { + const content = this.file.content; + let startOffset = this.offset; + if (startOffset != null) { + if (startOffset > content.length - 1) { + startOffset = content.length - 1; + } + let endOffset = startOffset; + let ctxChars = 0; + let ctxLines = 0; + while (ctxChars < maxChars && startOffset > 0) { + startOffset--; + ctxChars++; + if (content[startOffset] == "\n") { + if (++ctxLines == maxLines) { + break; + } + } + } + ctxChars = 0; + ctxLines = 0; + while (ctxChars < maxChars && endOffset < content.length - 1) { + endOffset++; + ctxChars++; + if (content[endOffset] == "\n") { + if (++ctxLines == maxLines) { + break; + } + } + } + return { + before: content.substring(startOffset, this.offset), + after: content.substring(this.offset, endOffset + 1) + }; + } + return null; + } + }; + exports2.ParseLocation = ParseLocation; + var ParseSourceFile = class { + constructor(content, url) { + this.content = content; + this.url = url; + } + }; + exports2.ParseSourceFile = ParseSourceFile; + var ParseSourceSpan = class { + constructor(start, end, details = null) { + this.start = start; + this.end = end; + this.details = details; + } + toString() { + return this.start.file.content.substring(this.start.offset, this.end.offset); + } + }; + exports2.ParseSourceSpan = ParseSourceSpan; + exports2.EMPTY_PARSE_LOCATION = new ParseLocation(new ParseSourceFile("", ""), 0, 0, 0); + exports2.EMPTY_SOURCE_SPAN = new ParseSourceSpan(exports2.EMPTY_PARSE_LOCATION, exports2.EMPTY_PARSE_LOCATION); + var ParseErrorLevel; + (function(ParseErrorLevel2) { + ParseErrorLevel2[ParseErrorLevel2["WARNING"] = 0] = "WARNING"; + ParseErrorLevel2[ParseErrorLevel2["ERROR"] = 1] = "ERROR"; + })(ParseErrorLevel = exports2.ParseErrorLevel || (exports2.ParseErrorLevel = {})); + var ParseError = class { + constructor(span, msg, level = ParseErrorLevel.ERROR) { + this.span = span; + this.msg = msg; + this.level = level; + } + contextualMessage() { + const ctx = this.span.start.getContext(100, 3); + return ctx ? `${this.msg} ("${ctx.before}[${ParseErrorLevel[this.level]} ->]${ctx.after}")` : this.msg; + } + toString() { + const details = this.span.details ? `, ${this.span.details}` : ""; + return `${this.contextualMessage()}: ${this.span.start}${details}`; + } + }; + exports2.ParseError = ParseError; + function typeSourceSpan(kind, type) { + const moduleUrl = compile_metadata_1.identifierModuleUrl(type); + const sourceFileName = moduleUrl != null ? `in ${kind} ${compile_metadata_1.identifierName(type)} in ${moduleUrl}` : `in ${kind} ${compile_metadata_1.identifierName(type)}`; + const sourceFile = new ParseSourceFile("", sourceFileName); + return new ParseSourceSpan(new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1)); + } + exports2.typeSourceSpan = typeSourceSpan; + function r3JitTypeSourceSpan(kind, typeName, sourceUrl) { + const sourceFileName = `in ${kind} ${typeName} in ${sourceUrl}`; + const sourceFile = new ParseSourceFile("", sourceFileName); + return new ParseSourceSpan(new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1)); + } + exports2.r3JitTypeSourceSpan = r3JitTypeSourceSpan; + } +}); +var require_print_preprocess3 = __commonJS2({ + "src/language-html/print-preprocess.js"(exports2, module2) { + "use strict"; + var { + ParseSourceSpan + } = require_parse_util(); + var { + htmlTrim, + getLeadingAndTrailingHtmlWhitespace, + hasHtmlWhitespace, + canHaveInterpolation, + getNodeCssStyleDisplay, + isDanglingSpaceSensitiveNode, + isIndentationSensitiveNode, + isLeadingSpaceSensitiveNode, + isTrailingSpaceSensitiveNode, + isWhitespaceSensitiveNode, + isVueScriptTag + } = require_utils11(); + var PREPROCESS_PIPELINE = [removeIgnorableFirstLf, mergeIfConditionalStartEndCommentIntoElementOpeningTag, mergeCdataIntoText, extractInterpolation, extractWhitespaces, addCssDisplay, addIsSelfClosing, addHasHtmComponentClosingTag, addIsSpaceSensitive, mergeSimpleElementIntoText, markTsScript]; + function preprocess(ast, options) { + for (const fn of PREPROCESS_PIPELINE) { + fn(ast, options); + } + return ast; + } + function removeIgnorableFirstLf(ast) { + ast.walk((node) => { + if (node.type === "element" && node.tagDefinition.ignoreFirstLf && node.children.length > 0 && node.children[0].type === "text" && node.children[0].value[0] === "\n") { + const text = node.children[0]; + if (text.value.length === 1) { + node.removeChild(text); + } else { + text.value = text.value.slice(1); + } + } + }); + } + function mergeIfConditionalStartEndCommentIntoElementOpeningTag(ast) { + const isTarget = (node) => node.type === "element" && node.prev && node.prev.type === "ieConditionalStartComment" && node.prev.sourceSpan.end.offset === node.startSourceSpan.start.offset && node.firstChild && node.firstChild.type === "ieConditionalEndComment" && node.firstChild.sourceSpan.start.offset === node.startSourceSpan.end.offset; + ast.walk((node) => { + if (node.children) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (!isTarget(child)) { + continue; + } + const ieConditionalStartComment = child.prev; + const ieConditionalEndComment = child.firstChild; + node.removeChild(ieConditionalStartComment); + i--; + const startSourceSpan = new ParseSourceSpan(ieConditionalStartComment.sourceSpan.start, ieConditionalEndComment.sourceSpan.end); + const sourceSpan = new ParseSourceSpan(startSourceSpan.start, child.sourceSpan.end); + child.condition = ieConditionalStartComment.condition; + child.sourceSpan = sourceSpan; + child.startSourceSpan = startSourceSpan; + child.removeChild(ieConditionalEndComment); + } + } + }); + } + function mergeNodeIntoText(ast, shouldMerge, getValue) { + ast.walk((node) => { + if (node.children) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (child.type !== "text" && !shouldMerge(child)) { + continue; + } + if (child.type !== "text") { + child.type = "text"; + child.value = getValue(child); + } + const prevChild = child.prev; + if (!prevChild || prevChild.type !== "text") { + continue; + } + prevChild.value += child.value; + prevChild.sourceSpan = new ParseSourceSpan(prevChild.sourceSpan.start, child.sourceSpan.end); + node.removeChild(child); + i--; + } + } + }); + } + function mergeCdataIntoText(ast) { + return mergeNodeIntoText(ast, (node) => node.type === "cdata", (node) => ``); + } + function mergeSimpleElementIntoText(ast) { + const isSimpleElement = (node) => node.type === "element" && node.attrs.length === 0 && node.children.length === 1 && node.firstChild.type === "text" && !hasHtmlWhitespace(node.children[0].value) && !node.firstChild.hasLeadingSpaces && !node.firstChild.hasTrailingSpaces && node.isLeadingSpaceSensitive && !node.hasLeadingSpaces && node.isTrailingSpaceSensitive && !node.hasTrailingSpaces && node.prev && node.prev.type === "text" && node.next && node.next.type === "text"; + ast.walk((node) => { + if (node.children) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (!isSimpleElement(child)) { + continue; + } + const prevChild = child.prev; + const nextChild = child.next; + prevChild.value += `<${child.rawName}>` + child.firstChild.value + `` + nextChild.value; + prevChild.sourceSpan = new ParseSourceSpan(prevChild.sourceSpan.start, nextChild.sourceSpan.end); + prevChild.isTrailingSpaceSensitive = nextChild.isTrailingSpaceSensitive; + prevChild.hasTrailingSpaces = nextChild.hasTrailingSpaces; + node.removeChild(child); + i--; + node.removeChild(nextChild); + } + } + }); + } + function extractInterpolation(ast, options) { + if (options.parser === "html") { + return; + } + const interpolationRegex = /{{(.+?)}}/s; + ast.walk((node) => { + if (!canHaveInterpolation(node)) { + return; + } + for (const child of node.children) { + if (child.type !== "text") { + continue; + } + let startSourceSpan = child.sourceSpan.start; + let endSourceSpan = null; + const components = child.value.split(interpolationRegex); + for (let i = 0; i < components.length; i++, startSourceSpan = endSourceSpan) { + const value = components[i]; + if (i % 2 === 0) { + endSourceSpan = startSourceSpan.moveBy(value.length); + if (value.length > 0) { + node.insertChildBefore(child, { + type: "text", + value, + sourceSpan: new ParseSourceSpan(startSourceSpan, endSourceSpan) + }); + } + continue; + } + endSourceSpan = startSourceSpan.moveBy(value.length + 4); + node.insertChildBefore(child, { + type: "interpolation", + sourceSpan: new ParseSourceSpan(startSourceSpan, endSourceSpan), + children: value.length === 0 ? [] : [{ + type: "text", + value, + sourceSpan: new ParseSourceSpan(startSourceSpan.moveBy(2), endSourceSpan.moveBy(-2)) + }] + }); + } + node.removeChild(child); + } + }); + } + function extractWhitespaces(ast) { + ast.walk((node) => { + if (!node.children) { + return; + } + if (node.children.length === 0 || node.children.length === 1 && node.children[0].type === "text" && htmlTrim(node.children[0].value).length === 0) { + node.hasDanglingSpaces = node.children.length > 0; + node.children = []; + return; + } + const isWhitespaceSensitive = isWhitespaceSensitiveNode(node); + const isIndentationSensitive = isIndentationSensitiveNode(node); + if (!isWhitespaceSensitive) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (child.type !== "text") { + continue; + } + const { + leadingWhitespace, + text, + trailingWhitespace + } = getLeadingAndTrailingHtmlWhitespace(child.value); + const prevChild = child.prev; + const nextChild = child.next; + if (!text) { + node.removeChild(child); + i--; + if (leadingWhitespace || trailingWhitespace) { + if (prevChild) { + prevChild.hasTrailingSpaces = true; + } + if (nextChild) { + nextChild.hasLeadingSpaces = true; + } + } + } else { + child.value = text; + child.sourceSpan = new ParseSourceSpan(child.sourceSpan.start.moveBy(leadingWhitespace.length), child.sourceSpan.end.moveBy(-trailingWhitespace.length)); + if (leadingWhitespace) { + if (prevChild) { + prevChild.hasTrailingSpaces = true; + } + child.hasLeadingSpaces = true; + } + if (trailingWhitespace) { + child.hasTrailingSpaces = true; + if (nextChild) { + nextChild.hasLeadingSpaces = true; + } + } + } + } + } + node.isWhitespaceSensitive = isWhitespaceSensitive; + node.isIndentationSensitive = isIndentationSensitive; + }); + } + function addIsSelfClosing(ast) { + ast.walk((node) => { + node.isSelfClosing = !node.children || node.type === "element" && (node.tagDefinition.isVoid || node.startSourceSpan === node.endSourceSpan); + }); + } + function addHasHtmComponentClosingTag(ast, options) { + ast.walk((node) => { + if (node.type !== "element") { + return; + } + node.hasHtmComponentClosingTag = node.endSourceSpan && /^<\s*\/\s*\/\s*>$/.test(options.originalText.slice(node.endSourceSpan.start.offset, node.endSourceSpan.end.offset)); + }); + } + function addCssDisplay(ast, options) { + ast.walk((node) => { + node.cssDisplay = getNodeCssStyleDisplay(node, options); + }); + } + function addIsSpaceSensitive(ast, options) { + ast.walk((node) => { + const { + children + } = node; + if (!children) { + return; + } + if (children.length === 0) { + node.isDanglingSpaceSensitive = isDanglingSpaceSensitiveNode(node); + return; + } + for (const child of children) { + child.isLeadingSpaceSensitive = isLeadingSpaceSensitiveNode(child, options); + child.isTrailingSpaceSensitive = isTrailingSpaceSensitiveNode(child, options); + } + for (let index = 0; index < children.length; index++) { + const child = children[index]; + child.isLeadingSpaceSensitive = index === 0 ? child.isLeadingSpaceSensitive : child.prev.isTrailingSpaceSensitive && child.isLeadingSpaceSensitive; + child.isTrailingSpaceSensitive = index === children.length - 1 ? child.isTrailingSpaceSensitive : child.next.isLeadingSpaceSensitive && child.isTrailingSpaceSensitive; + } + }); + } + function markTsScript(ast, options) { + if (options.parser === "vue") { + const vueScriptTag = ast.children.find((child) => isVueScriptTag(child, options)); + if (!vueScriptTag) { + return; + } + const { + lang + } = vueScriptTag.attrMap; + if (lang === "ts" || lang === "typescript") { + options.__should_parse_vue_template_with_ts = true; + } + } + } + module2.exports = preprocess; + } +}); +var require_pragma5 = __commonJS2({ + "src/language-html/pragma.js"(exports2, module2) { + "use strict"; + function hasPragma(text) { + return /^\s*/.test(text); + } + function insertPragma(text) { + return "\n\n" + text.replace(/^\s*\n/, ""); + } + module2.exports = { + hasPragma, + insertPragma + }; + } +}); +var require_loc6 = __commonJS2({ + "src/language-html/loc.js"(exports2, module2) { + "use strict"; + function locStart(node) { + return node.sourceSpan.start.offset; + } + function locEnd(node) { + return node.sourceSpan.end.offset; + } + module2.exports = { + locStart, + locEnd + }; + } +}); +var require_tag = __commonJS2({ + "src/language-html/print/tag.js"(exports2, module2) { + "use strict"; + var assert = require("assert"); + var { + isNonEmptyArray + } = require_util(); + var { + builders: { + indent, + join, + line, + softline, + hardline + }, + utils: { + replaceTextEndOfLine + } + } = require("./doc.js"); + var { + locStart, + locEnd + } = require_loc6(); + var { + isTextLikeNode, + getLastDescendant, + isPreLikeNode, + hasPrettierIgnore, + shouldPreserveContent, + isVueSfcBlock + } = require_utils11(); + function printClosingTag(node, options) { + return [node.isSelfClosing ? "" : printClosingTagStart(node, options), printClosingTagEnd(node, options)]; + } + function printClosingTagStart(node, options) { + return node.lastChild && needsToBorrowParentClosingTagStartMarker(node.lastChild) ? "" : [printClosingTagPrefix(node, options), printClosingTagStartMarker(node, options)]; + } + function printClosingTagEnd(node, options) { + return (node.next ? needsToBorrowPrevClosingTagEndMarker(node.next) : needsToBorrowLastChildClosingTagEndMarker(node.parent)) ? "" : [printClosingTagEndMarker(node, options), printClosingTagSuffix(node, options)]; + } + function printClosingTagPrefix(node, options) { + return needsToBorrowLastChildClosingTagEndMarker(node) ? printClosingTagEndMarker(node.lastChild, options) : ""; + } + function printClosingTagSuffix(node, options) { + return needsToBorrowParentClosingTagStartMarker(node) ? printClosingTagStartMarker(node.parent, options) : needsToBorrowNextOpeningTagStartMarker(node) ? printOpeningTagStartMarker(node.next) : ""; + } + function printClosingTagStartMarker(node, options) { + assert(!node.isSelfClosing); + if (shouldNotPrintClosingTag(node, options)) { + return ""; + } + switch (node.type) { + case "ieConditionalComment": + return ""; + case "ieConditionalStartComment": + return "]>"; + case "interpolation": + return "}}"; + case "element": + if (node.isSelfClosing) { + return "/>"; + } + default: + return ">"; + } + } + function shouldNotPrintClosingTag(node, options) { + return !node.isSelfClosing && !node.endSourceSpan && (hasPrettierIgnore(node) || shouldPreserveContent(node.parent, options)); + } + function needsToBorrowPrevClosingTagEndMarker(node) { + return node.prev && node.prev.type !== "docType" && !isTextLikeNode(node.prev) && node.isLeadingSpaceSensitive && !node.hasLeadingSpaces; + } + function needsToBorrowLastChildClosingTagEndMarker(node) { + return node.lastChild && node.lastChild.isTrailingSpaceSensitive && !node.lastChild.hasTrailingSpaces && !isTextLikeNode(getLastDescendant(node.lastChild)) && !isPreLikeNode(node); + } + function needsToBorrowParentClosingTagStartMarker(node) { + return !node.next && !node.hasTrailingSpaces && node.isTrailingSpaceSensitive && isTextLikeNode(getLastDescendant(node)); + } + function needsToBorrowNextOpeningTagStartMarker(node) { + return node.next && !isTextLikeNode(node.next) && isTextLikeNode(node) && node.isTrailingSpaceSensitive && !node.hasTrailingSpaces; + } + function getPrettierIgnoreAttributeCommentData(value) { + const match = value.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/s); + if (!match) { + return false; + } + if (!match[1]) { + return true; + } + return match[1].split(/\s+/); + } + function needsToBorrowParentOpeningTagEndMarker(node) { + return !node.prev && node.isLeadingSpaceSensitive && !node.hasLeadingSpaces; + } + function printAttributes(path, options, print) { + const node = path.getValue(); + if (!isNonEmptyArray(node.attrs)) { + return node.isSelfClosing ? " " : ""; + } + const ignoreAttributeData = node.prev && node.prev.type === "comment" && getPrettierIgnoreAttributeCommentData(node.prev.value); + const hasPrettierIgnoreAttribute = typeof ignoreAttributeData === "boolean" ? () => ignoreAttributeData : Array.isArray(ignoreAttributeData) ? (attribute) => ignoreAttributeData.includes(attribute.rawName) : () => false; + const printedAttributes = path.map((attributePath) => { + const attribute = attributePath.getValue(); + return hasPrettierIgnoreAttribute(attribute) ? replaceTextEndOfLine(options.originalText.slice(locStart(attribute), locEnd(attribute))) : print(); + }, "attrs"); + const forceNotToBreakAttrContent = node.type === "element" && node.fullName === "script" && node.attrs.length === 1 && node.attrs[0].fullName === "src" && node.children.length === 0; + const shouldPrintAttributePerLine = options.singleAttributePerLine && node.attrs.length > 1 && !isVueSfcBlock(node, options); + const attributeLine = shouldPrintAttributePerLine ? hardline : line; + const parts = [indent([forceNotToBreakAttrContent ? " " : line, join(attributeLine, printedAttributes)])]; + if (node.firstChild && needsToBorrowParentOpeningTagEndMarker(node.firstChild) || node.isSelfClosing && needsToBorrowLastChildClosingTagEndMarker(node.parent) || forceNotToBreakAttrContent) { + parts.push(node.isSelfClosing ? " " : ""); + } else { + parts.push(options.bracketSameLine ? node.isSelfClosing ? " " : "" : node.isSelfClosing ? line : softline); + } + return parts; + } + function printOpeningTagEnd(node) { + return node.firstChild && needsToBorrowParentOpeningTagEndMarker(node.firstChild) ? "" : printOpeningTagEndMarker(node); + } + function printOpeningTag(path, options, print) { + const node = path.getValue(); + return [printOpeningTagStart(node, options), printAttributes(path, options, print), node.isSelfClosing ? "" : printOpeningTagEnd(node)]; + } + function printOpeningTagStart(node, options) { + return node.prev && needsToBorrowNextOpeningTagStartMarker(node.prev) ? "" : [printOpeningTagPrefix(node, options), printOpeningTagStartMarker(node)]; + } + function printOpeningTagPrefix(node, options) { + return needsToBorrowParentOpeningTagEndMarker(node) ? printOpeningTagEndMarker(node.parent) : needsToBorrowPrevClosingTagEndMarker(node) ? printClosingTagEndMarker(node.prev, options) : ""; + } + function printOpeningTagStartMarker(node) { + switch (node.type) { + case "ieConditionalComment": + case "ieConditionalStartComment": + return `<${node.rawName}`; + } + default: + return `<${node.rawName}`; + } + } + function printOpeningTagEndMarker(node) { + assert(!node.isSelfClosing); + switch (node.type) { + case "ieConditionalComment": + return "]>"; + case "element": + if (node.condition) { + return ">"; + } + default: + return ">"; + } + } + module2.exports = { + printClosingTag, + printClosingTagStart, + printClosingTagStartMarker, + printClosingTagEndMarker, + printClosingTagSuffix, + printClosingTagEnd, + needsToBorrowLastChildClosingTagEndMarker, + needsToBorrowParentClosingTagStartMarker, + needsToBorrowPrevClosingTagEndMarker, + printOpeningTag, + printOpeningTagStart, + printOpeningTagPrefix, + printOpeningTagStartMarker, + printOpeningTagEndMarker, + needsToBorrowNextOpeningTagStartMarker, + needsToBorrowParentOpeningTagEndMarker + }; + } +}); +var require_parse_srcset = __commonJS2({ + "node_modules/parse-srcset/src/parse-srcset.js"(exports2, module2) { + (function(root, factory) { + if (typeof define === "function" && define.amd) { + define([], factory); + } else if (typeof module2 === "object" && module2.exports) { + module2.exports = factory(); + } else { + root.parseSrcset = factory(); + } + })(exports2, function() { + return function(input, options) { + var logger = options && options.logger || console; + function isSpace(c2) { + return c2 === " " || c2 === " " || c2 === "\n" || c2 === "\f" || c2 === "\r"; + } + function collectCharacters(regEx) { + var chars, match = regEx.exec(input.substring(pos)); + if (match) { + chars = match[0]; + pos += chars.length; + return chars; + } + } + var inputLength = input.length, regexLeadingSpaces = /^[ \t\n\r\u000c]+/, regexLeadingCommasOrSpaces = /^[, \t\n\r\u000c]+/, regexLeadingNotSpaces = /^[^ \t\n\r\u000c]+/, regexTrailingCommas = /[,]+$/, regexNonNegativeInteger = /^\d+$/, regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/, url, descriptors, currentDescriptor, state, c, pos = 0, candidates = []; + while (true) { + collectCharacters(regexLeadingCommasOrSpaces); + if (pos >= inputLength) { + return candidates; + } + url = collectCharacters(regexLeadingNotSpaces); + descriptors = []; + if (url.slice(-1) === ",") { + url = url.replace(regexTrailingCommas, ""); + parseDescriptors(); + } else { + tokenize(); + } + } + function tokenize() { + collectCharacters(regexLeadingSpaces); + currentDescriptor = ""; + state = "in descriptor"; + while (true) { + c = input.charAt(pos); + if (state === "in descriptor") { + if (isSpace(c)) { + if (currentDescriptor) { + descriptors.push(currentDescriptor); + currentDescriptor = ""; + state = "after descriptor"; + } + } else if (c === ",") { + pos += 1; + if (currentDescriptor) { + descriptors.push(currentDescriptor); + } + parseDescriptors(); + return; + } else if (c === "(") { + currentDescriptor = currentDescriptor + c; + state = "in parens"; + } else if (c === "") { + if (currentDescriptor) { + descriptors.push(currentDescriptor); + } + parseDescriptors(); + return; + } else { + currentDescriptor = currentDescriptor + c; + } + } else if (state === "in parens") { + if (c === ")") { + currentDescriptor = currentDescriptor + c; + state = "in descriptor"; + } else if (c === "") { + descriptors.push(currentDescriptor); + parseDescriptors(); + return; + } else { + currentDescriptor = currentDescriptor + c; + } + } else if (state === "after descriptor") { + if (isSpace(c)) { + } else if (c === "") { + parseDescriptors(); + return; + } else { + state = "in descriptor"; + pos -= 1; + } + } + pos += 1; + } + } + function parseDescriptors() { + var pError = false, w, d, h, i, candidate = {}, desc, lastChar, value, intVal, floatVal; + for (i = 0; i < descriptors.length; i++) { + desc = descriptors[i]; + lastChar = desc[desc.length - 1]; + value = desc.substring(0, desc.length - 1); + intVal = parseInt(value, 10); + floatVal = parseFloat(value); + if (regexNonNegativeInteger.test(value) && lastChar === "w") { + if (w || d) { + pError = true; + } + if (intVal === 0) { + pError = true; + } else { + w = intVal; + } + } else if (regexFloatingPoint.test(value) && lastChar === "x") { + if (w || d || h) { + pError = true; + } + if (floatVal < 0) { + pError = true; + } else { + d = floatVal; + } + } else if (regexNonNegativeInteger.test(value) && lastChar === "h") { + if (h || d) { + pError = true; + } + if (intVal === 0) { + pError = true; + } else { + h = intVal; + } + } else { + pError = true; + } + } + if (!pError) { + candidate.url = url; + if (w) { + candidate.w = w; + } + if (d) { + candidate.d = d; + } + if (h) { + candidate.h = h; + } + candidates.push(candidate); + } else if (logger && logger.error) { + logger.error("Invalid srcset descriptor found in '" + input + "' at '" + desc + "'."); + } + } + }; + }); + } +}); +var require_syntax_attribute = __commonJS2({ + "src/language-html/syntax-attribute.js"(exports2, module2) { + "use strict"; + var parseSrcset = require_parse_srcset(); + var { + builders: { + ifBreak, + join, + line + } + } = require("./doc.js"); + function printImgSrcset(value) { + const srcset = parseSrcset(value, { + logger: { + error(message) { + throw new Error(message); + } + } + }); + const hasW = srcset.some(({ + w + }) => w); + const hasH = srcset.some(({ + h + }) => h); + const hasX = srcset.some(({ + d + }) => d); + if (hasW + hasH + hasX > 1) { + throw new Error("Mixed descriptor in srcset is not supported"); + } + const key = hasW ? "w" : hasH ? "h" : "d"; + const unit = hasW ? "w" : hasH ? "h" : "x"; + const getMax = (values) => Math.max(...values); + const urls = srcset.map((src) => src.url); + const maxUrlLength = getMax(urls.map((url) => url.length)); + const descriptors = srcset.map((src) => src[key]).map((descriptor) => descriptor ? descriptor.toString() : ""); + const descriptorLeftLengths = descriptors.map((descriptor) => { + const index = descriptor.indexOf("."); + return index === -1 ? descriptor.length : index; + }); + const maxDescriptorLeftLength = getMax(descriptorLeftLengths); + return join([",", line], urls.map((url, index) => { + const parts = [url]; + const descriptor = descriptors[index]; + if (descriptor) { + const urlPadding = maxUrlLength - url.length + 1; + const descriptorPadding = maxDescriptorLeftLength - descriptorLeftLengths[index]; + const alignment = " ".repeat(urlPadding + descriptorPadding); + parts.push(ifBreak(alignment, " "), descriptor + unit); + } + return parts; + })); + } + function printClassNames(value) { + return value.trim().split(/\s+/).join(" "); + } + module2.exports = { + printImgSrcset, + printClassNames + }; + } +}); +var require_syntax_vue = __commonJS2({ + "src/language-html/syntax-vue.js"(exports2, module2) { + "use strict"; + var { + builders: { + group + } + } = require("./doc.js"); + function printVueFor(value, textToDoc) { + const { + left, + operator, + right + } = parseVueFor(value); + return [group(textToDoc(`function _(${left}) {}`, { + parser: "babel", + __isVueForBindingLeft: true + })), " ", operator, " ", textToDoc(right, { + parser: "__js_expression" + }, { + stripTrailingHardline: true + })]; + } + function parseVueFor(value) { + const forAliasRE = /(.*?)\s+(in|of)\s+(.*)/s; + const forIteratorRE = /,([^,\]}]*)(?:,([^,\]}]*))?$/; + const stripParensRE = /^\(|\)$/g; + const inMatch = value.match(forAliasRE); + if (!inMatch) { + return; + } + const res = {}; + res.for = inMatch[3].trim(); + if (!res.for) { + return; + } + const alias = inMatch[1].trim().replace(stripParensRE, ""); + const iteratorMatch = alias.match(forIteratorRE); + if (iteratorMatch) { + res.alias = alias.replace(forIteratorRE, ""); + res.iterator1 = iteratorMatch[1].trim(); + if (iteratorMatch[2]) { + res.iterator2 = iteratorMatch[2].trim(); + } + } else { + res.alias = alias; + } + const left = [res.alias, res.iterator1, res.iterator2]; + if (left.some((part, index) => !part && (index === 0 || left.slice(index + 1).some(Boolean)))) { + return; + } + return { + left: left.filter(Boolean).join(","), + operator: inMatch[2], + right: res.for + }; + } + function printVueBindings(value, textToDoc) { + return textToDoc(`function _(${value}) {}`, { + parser: "babel", + __isVueBindings: true + }); + } + function isVueEventBindingExpression(eventBindingValue) { + const fnExpRE = /^(?:[\w$]+|\([^)]*\))\s*=>|^function\s*\(/; + const simplePathRE = /^[$A-Z_a-z][\w$]*(?:\.[$A-Z_a-z][\w$]*|\['[^']*']|\["[^"]*"]|\[\d+]|\[[$A-Z_a-z][\w$]*])*$/; + const value = eventBindingValue.trim(); + return fnExpRE.test(value) || simplePathRE.test(value); + } + module2.exports = { + isVueEventBindingExpression, + printVueFor, + printVueBindings + }; + } +}); +var require_get_node_content = __commonJS2({ + "src/language-html/get-node-content.js"(exports2, module2) { + "use strict"; + var { + needsToBorrowParentClosingTagStartMarker, + printClosingTagStartMarker, + needsToBorrowLastChildClosingTagEndMarker, + printClosingTagEndMarker, + needsToBorrowParentOpeningTagEndMarker, + printOpeningTagEndMarker + } = require_tag(); + function getNodeContent(node, options) { + let start = node.startSourceSpan.end.offset; + if (node.firstChild && needsToBorrowParentOpeningTagEndMarker(node.firstChild)) { + start -= printOpeningTagEndMarker(node).length; + } + let end = node.endSourceSpan.start.offset; + if (node.lastChild && needsToBorrowParentClosingTagStartMarker(node.lastChild)) { + end += printClosingTagStartMarker(node, options).length; + } else if (needsToBorrowLastChildClosingTagEndMarker(node)) { + end -= printClosingTagEndMarker(node.lastChild, options).length; + } + return options.originalText.slice(start, end); + } + module2.exports = getNodeContent; + } +}); +var require_embed4 = __commonJS2({ + "src/language-html/embed.js"(exports2, module2) { + "use strict"; + var { + builders: { + breakParent, + group, + hardline, + indent, + line, + fill, + softline + }, + utils: { + mapDoc, + replaceTextEndOfLine + } + } = require("./doc.js"); + var printFrontMatter = require_print(); + var { + printClosingTag, + printClosingTagSuffix, + needsToBorrowPrevClosingTagEndMarker, + printOpeningTagPrefix, + printOpeningTag + } = require_tag(); + var { + printImgSrcset, + printClassNames + } = require_syntax_attribute(); + var { + printVueFor, + printVueBindings, + isVueEventBindingExpression + } = require_syntax_vue(); + var { + isScriptLikeTag, + isVueNonHtmlBlock, + inferScriptParser, + htmlTrimPreserveIndentation, + dedentString, + unescapeQuoteEntities, + isVueSlotAttribute, + isVueSfcBindingsAttribute, + getTextValueParts + } = require_utils11(); + var getNodeContent = require_get_node_content(); + function printEmbeddedAttributeValue(node, htmlTextToDoc, options) { + const isKeyMatched = (patterns) => new RegExp(patterns.join("|")).test(node.fullName); + const getValue = () => unescapeQuoteEntities(node.value); + let shouldHug = false; + const __onHtmlBindingRoot = (root, options2) => { + const rootNode = root.type === "NGRoot" ? root.node.type === "NGMicrosyntax" && root.node.body.length === 1 && root.node.body[0].type === "NGMicrosyntaxExpression" ? root.node.body[0].expression : root.node : root.type === "JsExpressionRoot" ? root.node : root; + if (rootNode && (rootNode.type === "ObjectExpression" || rootNode.type === "ArrayExpression" || options2.parser === "__vue_expression" && (rootNode.type === "TemplateLiteral" || rootNode.type === "StringLiteral"))) { + shouldHug = true; + } + }; + const printHug = (doc2) => group(doc2); + const printExpand = (doc2, canHaveTrailingWhitespace = true) => group([indent([softline, doc2]), canHaveTrailingWhitespace ? softline : ""]); + const printMaybeHug = (doc2) => shouldHug ? printHug(doc2) : printExpand(doc2); + const attributeTextToDoc = (code, opts) => htmlTextToDoc(code, Object.assign({ + __onHtmlBindingRoot, + __embeddedInHtml: true + }, opts)); + if (node.fullName === "srcset" && (node.parent.fullName === "img" || node.parent.fullName === "source")) { + return printExpand(printImgSrcset(getValue())); + } + if (node.fullName === "class" && !options.parentParser) { + const value = getValue(); + if (!value.includes("{{")) { + return printClassNames(value); + } + } + if (node.fullName === "style" && !options.parentParser) { + const value = getValue(); + if (!value.includes("{{")) { + return printExpand(attributeTextToDoc(value, { + parser: "css", + __isHTMLStyleAttribute: true + })); + } + } + if (options.parser === "vue") { + if (node.fullName === "v-for") { + return printVueFor(getValue(), attributeTextToDoc); + } + if (isVueSlotAttribute(node) || isVueSfcBindingsAttribute(node, options)) { + return printVueBindings(getValue(), attributeTextToDoc); + } + const vueEventBindingPatterns = ["^@", "^v-on:"]; + const vueExpressionBindingPatterns = ["^:", "^v-bind:"]; + const jsExpressionBindingPatterns = ["^v-"]; + if (isKeyMatched(vueEventBindingPatterns)) { + const value = getValue(); + const parser = isVueEventBindingExpression(value) ? "__js_expression" : options.__should_parse_vue_template_with_ts ? "__vue_ts_event_binding" : "__vue_event_binding"; + return printMaybeHug(attributeTextToDoc(value, { + parser + })); + } + if (isKeyMatched(vueExpressionBindingPatterns)) { + return printMaybeHug(attributeTextToDoc(getValue(), { + parser: "__vue_expression" + })); + } + if (isKeyMatched(jsExpressionBindingPatterns)) { + return printMaybeHug(attributeTextToDoc(getValue(), { + parser: "__js_expression" + })); + } + } + if (options.parser === "angular") { + const ngTextToDoc = (code, opts) => attributeTextToDoc(code, Object.assign(Object.assign({}, opts), {}, { + trailingComma: "none" + })); + const ngDirectiveBindingPatterns = ["^\\*"]; + const ngStatementBindingPatterns = ["^\\(.+\\)$", "^on-"]; + const ngExpressionBindingPatterns = ["^\\[.+\\]$", "^bind(on)?-", "^ng-(if|show|hide|class|style)$"]; + const ngI18nPatterns = ["^i18n(-.+)?$"]; + if (isKeyMatched(ngStatementBindingPatterns)) { + return printMaybeHug(ngTextToDoc(getValue(), { + parser: "__ng_action" + })); + } + if (isKeyMatched(ngExpressionBindingPatterns)) { + return printMaybeHug(ngTextToDoc(getValue(), { + parser: "__ng_binding" + })); + } + if (isKeyMatched(ngI18nPatterns)) { + const value2 = getValue().trim(); + return printExpand(fill(getTextValueParts(node, value2)), !value2.includes("@@")); + } + if (isKeyMatched(ngDirectiveBindingPatterns)) { + return printMaybeHug(ngTextToDoc(getValue(), { + parser: "__ng_directive" + })); + } + const interpolationRegex = /{{(.+?)}}/s; + const value = getValue(); + if (interpolationRegex.test(value)) { + const parts = []; + for (const [index, part] of value.split(interpolationRegex).entries()) { + if (index % 2 === 0) { + parts.push(replaceTextEndOfLine(part)); + } else { + try { + parts.push(group(["{{", indent([line, ngTextToDoc(part, { + parser: "__ng_interpolation", + __isInHtmlInterpolation: true + })]), line, "}}"])); + } catch { + parts.push("{{", replaceTextEndOfLine(part), "}}"); + } + } + } + return group(parts); + } + } + return null; + } + function embed(path, print, textToDoc, options) { + const node = path.getValue(); + switch (node.type) { + case "element": { + if (isScriptLikeTag(node) || node.type === "interpolation") { + return; + } + if (!node.isSelfClosing && isVueNonHtmlBlock(node, options)) { + const parser = inferScriptParser(node, options); + if (!parser) { + return; + } + const content = getNodeContent(node, options); + let isEmpty = /^\s*$/.test(content); + let doc2 = ""; + if (!isEmpty) { + doc2 = textToDoc(htmlTrimPreserveIndentation(content), { + parser, + __embeddedInHtml: true + }, { + stripTrailingHardline: true + }); + isEmpty = doc2 === ""; + } + return [printOpeningTagPrefix(node, options), group(printOpeningTag(path, options, print)), isEmpty ? "" : hardline, doc2, isEmpty ? "" : hardline, printClosingTag(node, options), printClosingTagSuffix(node, options)]; + } + break; + } + case "text": { + if (isScriptLikeTag(node.parent)) { + const parser = inferScriptParser(node.parent, options); + if (parser) { + const value = parser === "markdown" ? dedentString(node.value.replace(/^[^\S\n]*\n/, "")) : node.value; + const textToDocOptions = { + parser, + __embeddedInHtml: true + }; + if (options.parser === "html" && parser === "babel") { + let sourceType = "script"; + const { + attrMap + } = node.parent; + if (attrMap && (attrMap.type === "module" || attrMap.type === "text/babel" && attrMap["data-type"] === "module")) { + sourceType = "module"; + } + textToDocOptions.__babelSourceType = sourceType; + } + return [breakParent, printOpeningTagPrefix(node, options), textToDoc(value, textToDocOptions, { + stripTrailingHardline: true + }), printClosingTagSuffix(node, options)]; + } + } else if (node.parent.type === "interpolation") { + const textToDocOptions = { + __isInHtmlInterpolation: true, + __embeddedInHtml: true + }; + if (options.parser === "angular") { + textToDocOptions.parser = "__ng_interpolation"; + textToDocOptions.trailingComma = "none"; + } else if (options.parser === "vue") { + textToDocOptions.parser = options.__should_parse_vue_template_with_ts ? "__vue_ts_expression" : "__vue_expression"; + } else { + textToDocOptions.parser = "__js_expression"; + } + return [indent([line, textToDoc(node.value, textToDocOptions, { + stripTrailingHardline: true + })]), node.parent.next && needsToBorrowPrevClosingTagEndMarker(node.parent.next) ? " " : line]; + } + break; + } + case "attribute": { + if (!node.value) { + break; + } + if (/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(options.originalText.slice(node.valueSpan.start.offset, node.valueSpan.end.offset))) { + return [node.rawName, "=", node.value]; + } + if (options.parser === "lwc") { + const interpolationRegex = /^{.*}$/s; + if (interpolationRegex.test(options.originalText.slice(node.valueSpan.start.offset, node.valueSpan.end.offset))) { + return [node.rawName, "=", node.value]; + } + } + const embeddedAttributeValueDoc = printEmbeddedAttributeValue(node, (code, opts) => textToDoc(code, Object.assign({ + __isInHtmlAttribute: true, + __embeddedInHtml: true + }, opts), { + stripTrailingHardline: true + }), options); + if (embeddedAttributeValueDoc) { + return [node.rawName, '="', group(mapDoc(embeddedAttributeValueDoc, (doc2) => typeof doc2 === "string" ? doc2.replace(/"/g, """) : doc2)), '"']; + } + break; + } + case "front-matter": + return printFrontMatter(node, textToDoc); + } + } + module2.exports = embed; + } +}); +var require_children = __commonJS2({ + "src/language-html/print/children.js"(exports2, module2) { + "use strict"; + var { + builders: { + breakParent, + group, + ifBreak, + line, + softline, + hardline + }, + utils: { + replaceTextEndOfLine + } + } = require("./doc.js"); + var { + locStart, + locEnd + } = require_loc6(); + var { + forceBreakChildren, + forceNextEmptyLine, + isTextLikeNode, + hasPrettierIgnore, + preferHardlineAsLeadingSpaces + } = require_utils11(); + var { + printOpeningTagPrefix, + needsToBorrowNextOpeningTagStartMarker, + printOpeningTagStartMarker, + needsToBorrowPrevClosingTagEndMarker, + printClosingTagEndMarker, + printClosingTagSuffix, + needsToBorrowParentClosingTagStartMarker + } = require_tag(); + function printChild(childPath, options, print) { + const child = childPath.getValue(); + if (hasPrettierIgnore(child)) { + return [printOpeningTagPrefix(child, options), ...replaceTextEndOfLine(options.originalText.slice(locStart(child) + (child.prev && needsToBorrowNextOpeningTagStartMarker(child.prev) ? printOpeningTagStartMarker(child).length : 0), locEnd(child) - (child.next && needsToBorrowPrevClosingTagEndMarker(child.next) ? printClosingTagEndMarker(child, options).length : 0))), printClosingTagSuffix(child, options)]; + } + return print(); + } + function printBetweenLine(prevNode, nextNode) { + return isTextLikeNode(prevNode) && isTextLikeNode(nextNode) ? prevNode.isTrailingSpaceSensitive ? prevNode.hasTrailingSpaces ? preferHardlineAsLeadingSpaces(nextNode) ? hardline : line : "" : preferHardlineAsLeadingSpaces(nextNode) ? hardline : softline : needsToBorrowNextOpeningTagStartMarker(prevNode) && (hasPrettierIgnore(nextNode) || nextNode.firstChild || nextNode.isSelfClosing || nextNode.type === "element" && nextNode.attrs.length > 0) || prevNode.type === "element" && prevNode.isSelfClosing && needsToBorrowPrevClosingTagEndMarker(nextNode) ? "" : !nextNode.isLeadingSpaceSensitive || preferHardlineAsLeadingSpaces(nextNode) || needsToBorrowPrevClosingTagEndMarker(nextNode) && prevNode.lastChild && needsToBorrowParentClosingTagStartMarker(prevNode.lastChild) && prevNode.lastChild.lastChild && needsToBorrowParentClosingTagStartMarker(prevNode.lastChild.lastChild) ? hardline : nextNode.hasLeadingSpaces ? line : softline; + } + function printChildren(path, options, print) { + const node = path.getValue(); + if (forceBreakChildren(node)) { + return [breakParent, ...path.map((childPath) => { + const childNode = childPath.getValue(); + const prevBetweenLine = !childNode.prev ? "" : printBetweenLine(childNode.prev, childNode); + return [!prevBetweenLine ? "" : [prevBetweenLine, forceNextEmptyLine(childNode.prev) ? hardline : ""], printChild(childPath, options, print)]; + }, "children")]; + } + const groupIds = node.children.map(() => Symbol("")); + return path.map((childPath, childIndex) => { + const childNode = childPath.getValue(); + if (isTextLikeNode(childNode)) { + if (childNode.prev && isTextLikeNode(childNode.prev)) { + const prevBetweenLine2 = printBetweenLine(childNode.prev, childNode); + if (prevBetweenLine2) { + if (forceNextEmptyLine(childNode.prev)) { + return [hardline, hardline, printChild(childPath, options, print)]; + } + return [prevBetweenLine2, printChild(childPath, options, print)]; + } + } + return printChild(childPath, options, print); + } + const prevParts = []; + const leadingParts = []; + const trailingParts = []; + const nextParts = []; + const prevBetweenLine = childNode.prev ? printBetweenLine(childNode.prev, childNode) : ""; + const nextBetweenLine = childNode.next ? printBetweenLine(childNode, childNode.next) : ""; + if (prevBetweenLine) { + if (forceNextEmptyLine(childNode.prev)) { + prevParts.push(hardline, hardline); + } else if (prevBetweenLine === hardline) { + prevParts.push(hardline); + } else { + if (isTextLikeNode(childNode.prev)) { + leadingParts.push(prevBetweenLine); + } else { + leadingParts.push(ifBreak("", softline, { + groupId: groupIds[childIndex - 1] + })); + } + } + } + if (nextBetweenLine) { + if (forceNextEmptyLine(childNode)) { + if (isTextLikeNode(childNode.next)) { + nextParts.push(hardline, hardline); + } + } else if (nextBetweenLine === hardline) { + if (isTextLikeNode(childNode.next)) { + nextParts.push(hardline); + } + } else { + trailingParts.push(nextBetweenLine); + } + } + return [...prevParts, group([...leadingParts, group([printChild(childPath, options, print), ...trailingParts], { + id: groupIds[childIndex] + })]), ...nextParts]; + }, "children"); + } + module2.exports = { + printChildren + }; + } +}); +var require_element = __commonJS2({ + "src/language-html/print/element.js"(exports2, module2) { + "use strict"; + var { + builders: { + breakParent, + dedentToRoot, + group, + ifBreak, + indentIfBreak, + indent, + line, + softline + }, + utils: { + replaceTextEndOfLine + } + } = require("./doc.js"); + var getNodeContent = require_get_node_content(); + var { + shouldPreserveContent, + isScriptLikeTag, + isVueCustomBlock, + countParents, + forceBreakContent + } = require_utils11(); + var { + printOpeningTagPrefix, + printOpeningTag, + printClosingTagSuffix, + printClosingTag, + needsToBorrowPrevClosingTagEndMarker, + needsToBorrowLastChildClosingTagEndMarker + } = require_tag(); + var { + printChildren + } = require_children(); + function printElement(path, options, print) { + const node = path.getValue(); + if (shouldPreserveContent(node, options)) { + return [printOpeningTagPrefix(node, options), group(printOpeningTag(path, options, print)), ...replaceTextEndOfLine(getNodeContent(node, options)), ...printClosingTag(node, options), printClosingTagSuffix(node, options)]; + } + const shouldHugContent = node.children.length === 1 && node.firstChild.type === "interpolation" && node.firstChild.isLeadingSpaceSensitive && !node.firstChild.hasLeadingSpaces && node.lastChild.isTrailingSpaceSensitive && !node.lastChild.hasTrailingSpaces; + const attrGroupId = Symbol("element-attr-group-id"); + const printTag = (doc2) => group([group(printOpeningTag(path, options, print), { + id: attrGroupId + }), doc2, printClosingTag(node, options)]); + const printChildrenDoc = (childrenDoc) => { + if (shouldHugContent) { + return indentIfBreak(childrenDoc, { + groupId: attrGroupId + }); + } + if ((isScriptLikeTag(node) || isVueCustomBlock(node, options)) && node.parent.type === "root" && options.parser === "vue" && !options.vueIndentScriptAndStyle) { + return childrenDoc; + } + return indent(childrenDoc); + }; + const printLineBeforeChildren = () => { + if (shouldHugContent) { + return ifBreak(softline, "", { + groupId: attrGroupId + }); + } + if (node.firstChild.hasLeadingSpaces && node.firstChild.isLeadingSpaceSensitive) { + return line; + } + if (node.firstChild.type === "text" && node.isWhitespaceSensitive && node.isIndentationSensitive) { + return dedentToRoot(softline); + } + return softline; + }; + const printLineAfterChildren = () => { + const needsToBorrow = node.next ? needsToBorrowPrevClosingTagEndMarker(node.next) : needsToBorrowLastChildClosingTagEndMarker(node.parent); + if (needsToBorrow) { + if (node.lastChild.hasTrailingSpaces && node.lastChild.isTrailingSpaceSensitive) { + return " "; + } + return ""; + } + if (shouldHugContent) { + return ifBreak(softline, "", { + groupId: attrGroupId + }); + } + if (node.lastChild.hasTrailingSpaces && node.lastChild.isTrailingSpaceSensitive) { + return line; + } + if ((node.lastChild.type === "comment" || node.lastChild.type === "text" && node.isWhitespaceSensitive && node.isIndentationSensitive) && new RegExp(`\\n[\\t ]{${options.tabWidth * countParents(path, (node2) => node2.parent && node2.parent.type !== "root")}}$`).test(node.lastChild.value)) { + return ""; + } + return softline; + }; + if (node.children.length === 0) { + return printTag(node.hasDanglingSpaces && node.isDanglingSpaceSensitive ? line : ""); + } + return printTag([forceBreakContent(node) ? breakParent : "", printChildrenDoc([printLineBeforeChildren(), printChildren(path, options, print)]), printLineAfterChildren()]); + } + module2.exports = { + printElement + }; + } +}); +var require_printer_html = __commonJS2({ + "src/language-html/printer-html.js"(exports2, module2) { + "use strict"; + var { + builders: { + fill, + group, + hardline, + literalline + }, + utils: { + cleanDoc, + getDocParts, + isConcat, + replaceTextEndOfLine + } + } = require("./doc.js"); + var clean = require_clean5(); + var { + countChars, + unescapeQuoteEntities, + getTextValueParts + } = require_utils11(); + var preprocess = require_print_preprocess3(); + var { + insertPragma + } = require_pragma5(); + var { + locStart, + locEnd + } = require_loc6(); + var embed = require_embed4(); + var { + printClosingTagSuffix, + printClosingTagEnd, + printOpeningTagPrefix, + printOpeningTagStart + } = require_tag(); + var { + printElement + } = require_element(); + var { + printChildren + } = require_children(); + function genericPrint(path, options, print) { + const node = path.getValue(); + switch (node.type) { + case "front-matter": + return replaceTextEndOfLine(node.raw); + case "root": + if (options.__onHtmlRoot) { + options.__onHtmlRoot(node); + } + return [group(printChildren(path, options, print)), hardline]; + case "element": + case "ieConditionalComment": { + return printElement(path, options, print); + } + case "ieConditionalStartComment": + case "ieConditionalEndComment": + return [printOpeningTagStart(node), printClosingTagEnd(node)]; + case "interpolation": + return [printOpeningTagStart(node, options), ...path.map(print, "children"), printClosingTagEnd(node, options)]; + case "text": { + if (node.parent.type === "interpolation") { + const trailingNewlineRegex = /\n[^\S\n]*$/; + const hasTrailingNewline = trailingNewlineRegex.test(node.value); + const value = hasTrailingNewline ? node.value.replace(trailingNewlineRegex, "") : node.value; + return [...replaceTextEndOfLine(value), hasTrailingNewline ? hardline : ""]; + } + const printed = cleanDoc([printOpeningTagPrefix(node, options), ...getTextValueParts(node), printClosingTagSuffix(node, options)]); + if (isConcat(printed) || printed.type === "fill") { + return fill(getDocParts(printed)); + } + return printed; + } + case "docType": + return [group([printOpeningTagStart(node, options), " ", node.value.replace(/^html\b/i, "html").replace(/\s+/g, " ")]), printClosingTagEnd(node, options)]; + case "comment": { + return [printOpeningTagPrefix(node, options), ...replaceTextEndOfLine(options.originalText.slice(locStart(node), locEnd(node)), literalline), printClosingTagSuffix(node, options)]; + } + case "attribute": { + if (node.value === null) { + return node.rawName; + } + const value = unescapeQuoteEntities(node.value); + const singleQuoteCount = countChars(value, "'"); + const doubleQuoteCount = countChars(value, '"'); + const quote = singleQuoteCount < doubleQuoteCount ? "'" : '"'; + return [node.rawName, "=", quote, ...replaceTextEndOfLine(quote === '"' ? value.replace(/"/g, """) : value.replace(/'/g, "'")), quote]; + } + default: + throw new Error(`Unexpected node type ${node.type}`); + } + } + module2.exports = { + preprocess, + print: genericPrint, + insertPragma, + massageAstNode: clean, + embed + }; + } +}); +var require_options6 = __commonJS2({ + "src/language-html/options.js"(exports2, module2) { + "use strict"; + var commonOptions = require_common_options(); + var CATEGORY_HTML = "HTML"; + module2.exports = { + bracketSameLine: commonOptions.bracketSameLine, + htmlWhitespaceSensitivity: { + since: "1.15.0", + category: CATEGORY_HTML, + type: "choice", + default: "css", + description: "How to handle whitespaces in HTML.", + choices: [{ + value: "css", + description: "Respect the default value of CSS display property." + }, { + value: "strict", + description: "Whitespaces are considered sensitive." + }, { + value: "ignore", + description: "Whitespaces are considered insensitive." + }] + }, + singleAttributePerLine: commonOptions.singleAttributePerLine, + vueIndentScriptAndStyle: { + since: "1.19.0", + category: CATEGORY_HTML, + type: "boolean", + default: false, + description: "Indent script and style tags in Vue files." + } + }; + } +}); +var require_parsers6 = __commonJS2({ + "src/language-html/parsers.js"(exports2, module2) { + "use strict"; + module2.exports = { + get html() { + return require("./parser-html.js").parsers.html; + }, + get vue() { + return require("./parser-html.js").parsers.vue; + }, + get angular() { + return require("./parser-html.js").parsers.angular; + }, + get lwc() { + return require("./parser-html.js").parsers.lwc; + } + }; + } +}); +var require_HTML = __commonJS2({ + "node_modules/linguist-languages/data/HTML.json"(exports2, module2) { + module2.exports = { + name: "HTML", + type: "markup", + tmScope: "text.html.basic", + aceMode: "html", + codemirrorMode: "htmlmixed", + codemirrorMimeType: "text/html", + color: "#e34c26", + aliases: ["xhtml"], + extensions: [".html", ".hta", ".htm", ".html.hl", ".inc", ".xht", ".xhtml"], + languageId: 146 + }; + } +}); +var require_Vue = __commonJS2({ + "node_modules/linguist-languages/data/Vue.json"(exports2, module2) { + module2.exports = { + name: "Vue", + type: "markup", + color: "#41b883", + extensions: [".vue"], + tmScope: "text.html.vue", + aceMode: "html", + languageId: 391 + }; + } +}); +var require_language_html = __commonJS2({ + "src/language-html/index.js"(exports2, module2) { + "use strict"; + var createLanguage = require_create_language(); + var printer = require_printer_html(); + var options = require_options6(); + var parsers = require_parsers6(); + var languages = [createLanguage(require_HTML(), () => ({ + name: "Angular", + since: "1.15.0", + parsers: ["angular"], + vscodeLanguageIds: ["html"], + extensions: [".component.html"], + filenames: [] + })), createLanguage(require_HTML(), (data) => ({ + since: "1.15.0", + parsers: ["html"], + vscodeLanguageIds: ["html"], + extensions: [...data.extensions, ".mjml"] + })), createLanguage(require_HTML(), () => ({ + name: "Lightning Web Components", + since: "1.17.0", + parsers: ["lwc"], + vscodeLanguageIds: ["html"], + extensions: [], + filenames: [] + })), createLanguage(require_Vue(), () => ({ + since: "1.10.0", + parsers: ["vue"], + vscodeLanguageIds: ["vue"] + }))]; + var printers = { + html: printer + }; + module2.exports = { + languages, + printers, + options, + parsers + }; + } +}); +var require_pragma6 = __commonJS2({ + "src/language-yaml/pragma.js"(exports2, module2) { + "use strict"; + function isPragma(text) { + return /^\s*@(?:prettier|format)\s*$/.test(text); + } + function hasPragma(text) { + return /^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/.test(text); + } + function insertPragma(text) { + return `# @format + +${text}`; + } + module2.exports = { + isPragma, + hasPragma, + insertPragma + }; + } +}); +var require_loc7 = __commonJS2({ + "src/language-yaml/loc.js"(exports2, module2) { + "use strict"; + function locStart(node) { + return node.position.start.offset; + } + function locEnd(node) { + return node.position.end.offset; + } + module2.exports = { + locStart, + locEnd + }; + } +}); +var require_embed5 = __commonJS2({ + "src/language-yaml/embed.js"(exports2, module2) { + "use strict"; + function embed(path, print, textToDoc, options) { + const node = path.getValue(); + if (node.type === "root" && options.filepath && /(?:[/\\]|^)\.(?:prettier|stylelint)rc$/.test(options.filepath)) { + return textToDoc(options.originalText, Object.assign(Object.assign({}, options), {}, { + parser: "json" + })); + } + } + module2.exports = embed; + } +}); +var require_utils12 = __commonJS2({ + "src/language-yaml/utils.js"(exports2, module2) { + "use strict"; + var { + getLast, + isNonEmptyArray + } = require_util(); + function getAncestorCount(path, filter) { + let counter = 0; + const pathStackLength = path.stack.length - 1; + for (let i = 0; i < pathStackLength; i++) { + const value = path.stack[i]; + if (isNode(value) && filter(value)) { + counter++; + } + } + return counter; + } + function isNode(value, types) { + return value && typeof value.type === "string" && (!types || types.includes(value.type)); + } + function mapNode(node, callback, parent) { + return callback("children" in node ? Object.assign(Object.assign({}, node), {}, { + children: node.children.map((childNode) => mapNode(childNode, callback, node)) + }) : node, parent); + } + function defineShortcut(x, key, getter) { + Object.defineProperty(x, key, { + get: getter, + enumerable: false + }); + } + function isNextLineEmpty(node, text) { + let newlineCount = 0; + const textLength = text.length; + for (let i = node.position.end.offset - 1; i < textLength; i++) { + const char = text[i]; + if (char === "\n") { + newlineCount++; + } + if (newlineCount === 1 && /\S/.test(char)) { + return false; + } + if (newlineCount === 2) { + return true; + } + } + return false; + } + function isLastDescendantNode(path) { + const node = path.getValue(); + switch (node.type) { + case "tag": + case "anchor": + case "comment": + return false; + } + const pathStackLength = path.stack.length; + for (let i = 1; i < pathStackLength; i++) { + const item = path.stack[i]; + const parentItem = path.stack[i - 1]; + if (Array.isArray(parentItem) && typeof item === "number" && item !== parentItem.length - 1) { + return false; + } + } + return true; + } + function getLastDescendantNode(node) { + return isNonEmptyArray(node.children) ? getLastDescendantNode(getLast(node.children)) : node; + } + function isPrettierIgnore(comment) { + return comment.value.trim() === "prettier-ignore"; + } + function hasPrettierIgnore(path) { + const node = path.getValue(); + if (node.type === "documentBody") { + const document = path.getParentNode(); + return hasEndComments(document.head) && isPrettierIgnore(getLast(document.head.endComments)); + } + return hasLeadingComments(node) && isPrettierIgnore(getLast(node.leadingComments)); + } + function isEmptyNode(node) { + return !isNonEmptyArray(node.children) && !hasComments(node); + } + function hasComments(node) { + return hasLeadingComments(node) || hasMiddleComments(node) || hasIndicatorComment(node) || hasTrailingComment(node) || hasEndComments(node); + } + function hasLeadingComments(node) { + return isNonEmptyArray(node === null || node === void 0 ? void 0 : node.leadingComments); + } + function hasMiddleComments(node) { + return isNonEmptyArray(node === null || node === void 0 ? void 0 : node.middleComments); + } + function hasIndicatorComment(node) { + return node === null || node === void 0 ? void 0 : node.indicatorComment; + } + function hasTrailingComment(node) { + return node === null || node === void 0 ? void 0 : node.trailingComment; + } + function hasEndComments(node) { + return isNonEmptyArray(node === null || node === void 0 ? void 0 : node.endComments); + } + function splitWithSingleSpace(text) { + const parts = []; + let lastPart; + for (const part of text.split(/( +)/)) { + if (part !== " ") { + if (lastPart === " ") { + parts.push(part); + } else { + parts.push((parts.pop() || "") + part); + } + } else if (lastPart === void 0) { + parts.unshift(""); + } + lastPart = part; + } + if (lastPart === " ") { + parts.push((parts.pop() || "") + " "); + } + if (parts[0] === "") { + parts.shift(); + parts.unshift(" " + (parts.shift() || "")); + } + return parts; + } + function getFlowScalarLineContents(nodeType, content, options) { + const rawLineContents = content.split("\n").map((lineContent, index, lineContents) => index === 0 && index === lineContents.length - 1 ? lineContent : index !== 0 && index !== lineContents.length - 1 ? lineContent.trim() : index === 0 ? lineContent.trimEnd() : lineContent.trimStart()); + if (options.proseWrap === "preserve") { + return rawLineContents.map((lineContent) => lineContent.length === 0 ? [] : [lineContent]); + } + return rawLineContents.map((lineContent) => lineContent.length === 0 ? [] : splitWithSingleSpace(lineContent)).reduce((reduced, lineContentWords, index) => index !== 0 && rawLineContents[index - 1].length > 0 && lineContentWords.length > 0 && !(nodeType === "quoteDouble" && getLast(getLast(reduced)).endsWith("\\")) ? [...reduced.slice(0, -1), [...getLast(reduced), ...lineContentWords]] : [...reduced, lineContentWords], []).map((lineContentWords) => options.proseWrap === "never" ? [lineContentWords.join(" ")] : lineContentWords); + } + function getBlockValueLineContents(node, { + parentIndent, + isLastDescendant, + options + }) { + const content = node.position.start.line === node.position.end.line ? "" : options.originalText.slice(node.position.start.offset, node.position.end.offset).match(/^[^\n]*\n(.*)$/s)[1]; + let leadingSpaceCount; + if (node.indent === null) { + const matches = content.match(/^(? *)[^\n\r ]/m); + leadingSpaceCount = matches ? matches.groups.leadingSpace.length : Number.POSITIVE_INFINITY; + } else { + leadingSpaceCount = node.indent - 1 + parentIndent; + } + const rawLineContents = content.split("\n").map((lineContent) => lineContent.slice(leadingSpaceCount)); + if (options.proseWrap === "preserve" || node.type === "blockLiteral") { + return removeUnnecessaryTrailingNewlines(rawLineContents.map((lineContent) => lineContent.length === 0 ? [] : [lineContent])); + } + return removeUnnecessaryTrailingNewlines(rawLineContents.map((lineContent) => lineContent.length === 0 ? [] : splitWithSingleSpace(lineContent)).reduce((reduced, lineContentWords, index) => index !== 0 && rawLineContents[index - 1].length > 0 && lineContentWords.length > 0 && !/^\s/.test(lineContentWords[0]) && !/^\s|\s$/.test(getLast(reduced)) ? [...reduced.slice(0, -1), [...getLast(reduced), ...lineContentWords]] : [...reduced, lineContentWords], []).map((lineContentWords) => lineContentWords.reduce((reduced, word) => reduced.length > 0 && /\s$/.test(getLast(reduced)) ? [...reduced.slice(0, -1), getLast(reduced) + " " + word] : [...reduced, word], [])).map((lineContentWords) => options.proseWrap === "never" ? [lineContentWords.join(" ")] : lineContentWords)); + function removeUnnecessaryTrailingNewlines(lineContents) { + if (node.chomping === "keep") { + return getLast(lineContents).length === 0 ? lineContents.slice(0, -1) : lineContents; + } + let trailingNewlineCount = 0; + for (let i = lineContents.length - 1; i >= 0; i--) { + if (lineContents[i].length === 0) { + trailingNewlineCount++; + } else { + break; + } + } + return trailingNewlineCount === 0 ? lineContents : trailingNewlineCount >= 2 && !isLastDescendant ? lineContents.slice(0, -(trailingNewlineCount - 1)) : lineContents.slice(0, -trailingNewlineCount); + } + } + function isInlineNode(node) { + if (!node) { + return true; + } + switch (node.type) { + case "plain": + case "quoteDouble": + case "quoteSingle": + case "alias": + case "flowMapping": + case "flowSequence": + return true; + default: + return false; + } + } + module2.exports = { + getLast, + getAncestorCount, + isNode, + isEmptyNode, + isInlineNode, + mapNode, + defineShortcut, + isNextLineEmpty, + isLastDescendantNode, + getBlockValueLineContents, + getFlowScalarLineContents, + getLastDescendantNode, + hasPrettierIgnore, + hasLeadingComments, + hasMiddleComments, + hasIndicatorComment, + hasTrailingComment, + hasEndComments + }; + } +}); +var require_print_preprocess4 = __commonJS2({ + "src/language-yaml/print-preprocess.js"(exports2, module2) { + "use strict"; + var { + defineShortcut, + mapNode + } = require_utils12(); + function preprocess(ast) { + return mapNode(ast, defineShortcuts); + } + function defineShortcuts(node) { + switch (node.type) { + case "document": + defineShortcut(node, "head", () => node.children[0]); + defineShortcut(node, "body", () => node.children[1]); + break; + case "documentBody": + case "sequenceItem": + case "flowSequenceItem": + case "mappingKey": + case "mappingValue": + defineShortcut(node, "content", () => node.children[0]); + break; + case "mappingItem": + case "flowMappingItem": + defineShortcut(node, "key", () => node.children[0]); + defineShortcut(node, "value", () => node.children[1]); + break; + } + return node; + } + module2.exports = preprocess; + } +}); +var require_misc2 = __commonJS2({ + "src/language-yaml/print/misc.js"(exports2, module2) { + "use strict"; + var { + builders: { + softline, + align + } + } = require("./doc.js"); + var { + hasEndComments, + isNextLineEmpty, + isNode + } = require_utils12(); + var printedEmptyLineCache = /* @__PURE__ */ new WeakMap(); + function printNextEmptyLine(path, originalText) { + const node = path.getValue(); + const root = path.stack[0]; + let isNextEmptyLinePrintedSet; + if (printedEmptyLineCache.has(root)) { + isNextEmptyLinePrintedSet = printedEmptyLineCache.get(root); + } else { + isNextEmptyLinePrintedSet = /* @__PURE__ */ new Set(); + printedEmptyLineCache.set(root, isNextEmptyLinePrintedSet); + } + if (!isNextEmptyLinePrintedSet.has(node.position.end.line)) { + isNextEmptyLinePrintedSet.add(node.position.end.line); + if (isNextLineEmpty(node, originalText) && !shouldPrintEndComments(path.getParentNode())) { + return softline; + } + } + return ""; + } + function shouldPrintEndComments(node) { + return hasEndComments(node) && !isNode(node, ["documentHead", "documentBody", "flowMapping", "flowSequence"]); + } + function alignWithSpaces(width, doc2) { + return align(" ".repeat(width), doc2); + } + module2.exports = { + alignWithSpaces, + shouldPrintEndComments, + printNextEmptyLine + }; + } +}); +var require_flow_mapping_sequence = __commonJS2({ + "src/language-yaml/print/flow-mapping-sequence.js"(exports2, module2) { + "use strict"; + var { + builders: { + ifBreak, + line, + softline, + hardline, + join + } + } = require("./doc.js"); + var { + isEmptyNode, + getLast, + hasEndComments + } = require_utils12(); + var { + printNextEmptyLine, + alignWithSpaces + } = require_misc2(); + function printFlowMapping(path, print, options) { + const node = path.getValue(); + const isMapping = node.type === "flowMapping"; + const openMarker = isMapping ? "{" : "["; + const closeMarker = isMapping ? "}" : "]"; + let bracketSpacing = softline; + if (isMapping && node.children.length > 0 && options.bracketSpacing) { + bracketSpacing = line; + } + const lastItem = getLast(node.children); + const isLastItemEmptyMappingItem = lastItem && lastItem.type === "flowMappingItem" && isEmptyNode(lastItem.key) && isEmptyNode(lastItem.value); + return [openMarker, alignWithSpaces(options.tabWidth, [bracketSpacing, printChildren(path, print, options), options.trailingComma === "none" ? "" : ifBreak(","), hasEndComments(node) ? [hardline, join(hardline, path.map(print, "endComments"))] : ""]), isLastItemEmptyMappingItem ? "" : bracketSpacing, closeMarker]; + } + function printChildren(path, print, options) { + const node = path.getValue(); + const parts = path.map((childPath, index) => [print(), index === node.children.length - 1 ? "" : [",", line, node.children[index].position.start.line !== node.children[index + 1].position.start.line ? printNextEmptyLine(childPath, options.originalText) : ""]], "children"); + return parts; + } + module2.exports = { + printFlowMapping, + printFlowSequence: printFlowMapping + }; + } +}); +var require_mapping_item = __commonJS2({ + "src/language-yaml/print/mapping-item.js"(exports2, module2) { + "use strict"; + var { + builders: { + conditionalGroup, + group, + hardline, + ifBreak, + join, + line + } + } = require("./doc.js"); + var { + hasLeadingComments, + hasMiddleComments, + hasTrailingComment, + hasEndComments, + isNode, + isEmptyNode, + isInlineNode + } = require_utils12(); + var { + alignWithSpaces + } = require_misc2(); + function printMappingItem(node, parentNode, path, print, options) { + const { + key, + value + } = node; + const isEmptyMappingKey = isEmptyNode(key); + const isEmptyMappingValue = isEmptyNode(value); + if (isEmptyMappingKey && isEmptyMappingValue) { + return ": "; + } + const printedKey = print("key"); + const spaceBeforeColon = needsSpaceInFrontOfMappingValue(node) ? " " : ""; + if (isEmptyMappingValue) { + if (node.type === "flowMappingItem" && parentNode.type === "flowMapping") { + return printedKey; + } + if (node.type === "mappingItem" && isAbsolutelyPrintedAsSingleLineNode(key.content, options) && !hasTrailingComment(key.content) && (!parentNode.tag || parentNode.tag.value !== "tag:yaml.org,2002:set")) { + return [printedKey, spaceBeforeColon, ":"]; + } + return ["? ", alignWithSpaces(2, printedKey)]; + } + const printedValue = print("value"); + if (isEmptyMappingKey) { + return [": ", alignWithSpaces(2, printedValue)]; + } + if (hasLeadingComments(value) || !isInlineNode(key.content)) { + return ["? ", alignWithSpaces(2, printedKey), hardline, join("", path.map(print, "value", "leadingComments").map((comment) => [comment, hardline])), ": ", alignWithSpaces(2, printedValue)]; + } + if (isSingleLineNode(key.content) && !hasLeadingComments(key.content) && !hasMiddleComments(key.content) && !hasTrailingComment(key.content) && !hasEndComments(key) && !hasLeadingComments(value.content) && !hasMiddleComments(value.content) && !hasEndComments(value) && isAbsolutelyPrintedAsSingleLineNode(value.content, options)) { + return [printedKey, spaceBeforeColon, ": ", printedValue]; + } + const groupId = Symbol("mappingKey"); + const groupedKey = group([ifBreak("? "), group(alignWithSpaces(2, printedKey), { + id: groupId + })]); + const explicitMappingValue = [hardline, ": ", alignWithSpaces(2, printedValue)]; + const implicitMappingValueParts = [spaceBeforeColon, ":"]; + if (hasLeadingComments(value.content) || hasEndComments(value) && value.content && !isNode(value.content, ["mapping", "sequence"]) || parentNode.type === "mapping" && hasTrailingComment(key.content) && isInlineNode(value.content) || isNode(value.content, ["mapping", "sequence"]) && value.content.tag === null && value.content.anchor === null) { + implicitMappingValueParts.push(hardline); + } else if (value.content) { + implicitMappingValueParts.push(line); + } + implicitMappingValueParts.push(printedValue); + const implicitMappingValue = alignWithSpaces(options.tabWidth, implicitMappingValueParts); + if (isAbsolutelyPrintedAsSingleLineNode(key.content, options) && !hasLeadingComments(key.content) && !hasMiddleComments(key.content) && !hasEndComments(key)) { + return conditionalGroup([[printedKey, implicitMappingValue]]); + } + return conditionalGroup([[groupedKey, ifBreak(explicitMappingValue, implicitMappingValue, { + groupId + })]]); + } + function isAbsolutelyPrintedAsSingleLineNode(node, options) { + if (!node) { + return true; + } + switch (node.type) { + case "plain": + case "quoteSingle": + case "quoteDouble": + break; + case "alias": + return true; + default: + return false; + } + if (options.proseWrap === "preserve") { + return node.position.start.line === node.position.end.line; + } + if (/\\$/m.test(options.originalText.slice(node.position.start.offset, node.position.end.offset))) { + return false; + } + switch (options.proseWrap) { + case "never": + return !node.value.includes("\n"); + case "always": + return !/[\n ]/.test(node.value); + default: + return false; + } + } + function needsSpaceInFrontOfMappingValue(node) { + return node.key.content && node.key.content.type === "alias"; + } + function isSingleLineNode(node) { + if (!node) { + return true; + } + switch (node.type) { + case "plain": + case "quoteDouble": + case "quoteSingle": + return node.position.start.line === node.position.end.line; + case "alias": + return true; + default: + return false; + } + } + module2.exports = printMappingItem; + } +}); +var require_block2 = __commonJS2({ + "src/language-yaml/print/block.js"(exports2, module2) { + "use strict"; + var { + builders: { + dedent, + dedentToRoot, + fill, + hardline, + join, + line, + literalline, + markAsRoot + }, + utils: { + getDocParts + } + } = require("./doc.js"); + var { + getAncestorCount, + getBlockValueLineContents, + hasIndicatorComment, + isLastDescendantNode, + isNode + } = require_utils12(); + var { + alignWithSpaces + } = require_misc2(); + function printBlock(path, print, options) { + const node = path.getValue(); + const parentIndent = getAncestorCount(path, (ancestorNode) => isNode(ancestorNode, ["sequence", "mapping"])); + const isLastDescendant = isLastDescendantNode(path); + const parts = [node.type === "blockFolded" ? ">" : "|"]; + if (node.indent !== null) { + parts.push(node.indent.toString()); + } + if (node.chomping !== "clip") { + parts.push(node.chomping === "keep" ? "+" : "-"); + } + if (hasIndicatorComment(node)) { + parts.push(" ", print("indicatorComment")); + } + const lineContents = getBlockValueLineContents(node, { + parentIndent, + isLastDescendant, + options + }); + const contentsParts = []; + for (const [index, lineWords] of lineContents.entries()) { + if (index === 0) { + contentsParts.push(hardline); + } + contentsParts.push(fill(getDocParts(join(line, lineWords)))); + if (index !== lineContents.length - 1) { + contentsParts.push(lineWords.length === 0 ? hardline : markAsRoot(literalline)); + } else if (node.chomping === "keep" && isLastDescendant) { + contentsParts.push(dedentToRoot(lineWords.length === 0 ? hardline : literalline)); + } + } + if (node.indent === null) { + parts.push(dedent(alignWithSpaces(options.tabWidth, contentsParts))); + } else { + parts.push(dedentToRoot(alignWithSpaces(node.indent - 1 + parentIndent, contentsParts))); + } + return parts; + } + module2.exports = printBlock; + } +}); +var require_printer_yaml = __commonJS2({ + "src/language-yaml/printer-yaml.js"(exports2, module2) { + "use strict"; + var { + builders: { + breakParent, + fill, + group, + hardline, + join, + line, + lineSuffix, + literalline + }, + utils: { + getDocParts, + replaceTextEndOfLine + } + } = require("./doc.js"); + var { + isPreviousLineEmpty + } = require_util(); + var { + insertPragma, + isPragma + } = require_pragma6(); + var { + locStart + } = require_loc7(); + var embed = require_embed5(); + var { + getFlowScalarLineContents, + getLastDescendantNode, + hasLeadingComments, + hasMiddleComments, + hasTrailingComment, + hasEndComments, + hasPrettierIgnore, + isLastDescendantNode, + isNode, + isInlineNode + } = require_utils12(); + var preprocess = require_print_preprocess4(); + var { + alignWithSpaces, + printNextEmptyLine, + shouldPrintEndComments + } = require_misc2(); + var { + printFlowMapping, + printFlowSequence + } = require_flow_mapping_sequence(); + var printMappingItem = require_mapping_item(); + var printBlock = require_block2(); + function genericPrint(path, options, print) { + const node = path.getValue(); + const parts = []; + if (node.type !== "mappingValue" && hasLeadingComments(node)) { + parts.push([join(hardline, path.map(print, "leadingComments")), hardline]); + } + const { + tag, + anchor + } = node; + if (tag) { + parts.push(print("tag")); + } + if (tag && anchor) { + parts.push(" "); + } + if (anchor) { + parts.push(print("anchor")); + } + let nextEmptyLine = ""; + if (isNode(node, ["mapping", "sequence", "comment", "directive", "mappingItem", "sequenceItem"]) && !isLastDescendantNode(path)) { + nextEmptyLine = printNextEmptyLine(path, options.originalText); + } + if (tag || anchor) { + if (isNode(node, ["sequence", "mapping"]) && !hasMiddleComments(node)) { + parts.push(hardline); + } else { + parts.push(" "); + } + } + if (hasMiddleComments(node)) { + parts.push([node.middleComments.length === 1 ? "" : hardline, join(hardline, path.map(print, "middleComments")), hardline]); + } + const parentNode = path.getParentNode(); + if (hasPrettierIgnore(path)) { + parts.push(replaceTextEndOfLine(options.originalText.slice(node.position.start.offset, node.position.end.offset).trimEnd(), literalline)); + } else { + parts.push(group(printNode(node, parentNode, path, options, print))); + } + if (hasTrailingComment(node) && !isNode(node, ["document", "documentHead"])) { + parts.push(lineSuffix([node.type === "mappingValue" && !node.content ? "" : " ", parentNode.type === "mappingKey" && path.getParentNode(2).type === "mapping" && isInlineNode(node) ? "" : breakParent, print("trailingComment")])); + } + if (shouldPrintEndComments(node)) { + parts.push(alignWithSpaces(node.type === "sequenceItem" ? 2 : 0, [hardline, join(hardline, path.map((path2) => [isPreviousLineEmpty(options.originalText, path2.getValue(), locStart) ? hardline : "", print()], "endComments"))])); + } + parts.push(nextEmptyLine); + return parts; + } + function printNode(node, parentNode, path, options, print) { + switch (node.type) { + case "root": { + const { + children + } = node; + const parts = []; + path.each((childPath, index) => { + const document = children[index]; + const nextDocument = children[index + 1]; + if (index !== 0) { + parts.push(hardline); + } + parts.push(print()); + if (shouldPrintDocumentEndMarker(document, nextDocument)) { + parts.push(hardline, "..."); + if (hasTrailingComment(document)) { + parts.push(" ", print("trailingComment")); + } + } else if (nextDocument && !hasTrailingComment(nextDocument.head)) { + parts.push(hardline, "---"); + } + }, "children"); + const lastDescendantNode = getLastDescendantNode(node); + if (!isNode(lastDescendantNode, ["blockLiteral", "blockFolded"]) || lastDescendantNode.chomping !== "keep") { + parts.push(hardline); + } + return parts; + } + case "document": { + const nextDocument = parentNode.children[path.getName() + 1]; + const parts = []; + if (shouldPrintDocumentHeadEndMarker(node, nextDocument, parentNode, options) === "head") { + if (node.head.children.length > 0 || node.head.endComments.length > 0) { + parts.push(print("head")); + } + if (hasTrailingComment(node.head)) { + parts.push(["---", " ", print(["head", "trailingComment"])]); + } else { + parts.push("---"); + } + } + if (shouldPrintDocumentBody(node)) { + parts.push(print("body")); + } + return join(hardline, parts); + } + case "documentHead": + return join(hardline, [...path.map(print, "children"), ...path.map(print, "endComments")]); + case "documentBody": { + const { + children, + endComments + } = node; + let separator = ""; + if (children.length > 0 && endComments.length > 0) { + const lastDescendantNode = getLastDescendantNode(node); + if (isNode(lastDescendantNode, ["blockFolded", "blockLiteral"])) { + if (lastDescendantNode.chomping !== "keep") { + separator = [hardline, hardline]; + } + } else { + separator = hardline; + } + } + return [join(hardline, path.map(print, "children")), separator, join(hardline, path.map(print, "endComments"))]; + } + case "directive": + return ["%", join(" ", [node.name, ...node.parameters])]; + case "comment": + return ["#", node.value]; + case "alias": + return ["*", node.value]; + case "tag": + return options.originalText.slice(node.position.start.offset, node.position.end.offset); + case "anchor": + return ["&", node.value]; + case "plain": + return printFlowScalarContent(node.type, options.originalText.slice(node.position.start.offset, node.position.end.offset), options); + case "quoteDouble": + case "quoteSingle": { + const singleQuote = "'"; + const doubleQuote = '"'; + const raw = options.originalText.slice(node.position.start.offset + 1, node.position.end.offset - 1); + if (node.type === "quoteSingle" && raw.includes("\\") || node.type === "quoteDouble" && /\\[^"]/.test(raw)) { + const originalQuote = node.type === "quoteDouble" ? doubleQuote : singleQuote; + return [originalQuote, printFlowScalarContent(node.type, raw, options), originalQuote]; + } + if (raw.includes(doubleQuote)) { + return [singleQuote, printFlowScalarContent(node.type, node.type === "quoteDouble" ? raw.replace(/\\"/g, doubleQuote).replace(/'/g, singleQuote.repeat(2)) : raw, options), singleQuote]; + } + if (raw.includes(singleQuote)) { + return [doubleQuote, printFlowScalarContent(node.type, node.type === "quoteSingle" ? raw.replace(/''/g, singleQuote) : raw, options), doubleQuote]; + } + const quote = options.singleQuote ? singleQuote : doubleQuote; + return [quote, printFlowScalarContent(node.type, raw, options), quote]; + } + case "blockFolded": + case "blockLiteral": { + return printBlock(path, print, options); + } + case "mapping": + case "sequence": + return join(hardline, path.map(print, "children")); + case "sequenceItem": + return ["- ", alignWithSpaces(2, node.content ? print("content") : "")]; + case "mappingKey": + case "mappingValue": + return !node.content ? "" : print("content"); + case "mappingItem": + case "flowMappingItem": { + return printMappingItem(node, parentNode, path, print, options); + } + case "flowMapping": + return printFlowMapping(path, print, options); + case "flowSequence": + return printFlowSequence(path, print, options); + case "flowSequenceItem": + return print("content"); + default: + throw new Error(`Unexpected node type ${node.type}`); + } + } + function shouldPrintDocumentBody(document) { + return document.body.children.length > 0 || hasEndComments(document.body); + } + function shouldPrintDocumentEndMarker(document, nextDocument) { + return hasTrailingComment(document) || nextDocument && (nextDocument.head.children.length > 0 || hasEndComments(nextDocument.head)); + } + function shouldPrintDocumentHeadEndMarker(document, nextDocument, root, options) { + if (root.children[0] === document && /---(?:\s|$)/.test(options.originalText.slice(locStart(document), locStart(document) + 4)) || document.head.children.length > 0 || hasEndComments(document.head) || hasTrailingComment(document.head)) { + return "head"; + } + if (shouldPrintDocumentEndMarker(document, nextDocument)) { + return false; + } + return nextDocument ? "root" : false; + } + function printFlowScalarContent(nodeType, content, options) { + const lineContents = getFlowScalarLineContents(nodeType, content, options); + return join(hardline, lineContents.map((lineContentWords) => fill(getDocParts(join(line, lineContentWords))))); + } + function clean(node, newNode) { + if (isNode(newNode)) { + delete newNode.position; + switch (newNode.type) { + case "comment": + if (isPragma(newNode.value)) { + return null; + } + break; + case "quoteDouble": + case "quoteSingle": + newNode.type = "quote"; + break; + } + } + } + module2.exports = { + preprocess, + embed, + print: genericPrint, + massageAstNode: clean, + insertPragma + }; + } +}); +var require_options7 = __commonJS2({ + "src/language-yaml/options.js"(exports2, module2) { + "use strict"; + var commonOptions = require_common_options(); + module2.exports = { + bracketSpacing: commonOptions.bracketSpacing, + singleQuote: commonOptions.singleQuote, + proseWrap: commonOptions.proseWrap + }; + } +}); +var require_parsers7 = __commonJS2({ + "src/language-yaml/parsers.js"(exports2, module2) { + "use strict"; + module2.exports = { + get yaml() { + return require("./parser-yaml.js").parsers.yaml; + } + }; + } +}); +var require_YAML = __commonJS2({ + "node_modules/linguist-languages/data/YAML.json"(exports2, module2) { + module2.exports = { + name: "YAML", + type: "data", + color: "#cb171e", + tmScope: "source.yaml", + aliases: ["yml"], + extensions: [".yml", ".mir", ".reek", ".rviz", ".sublime-syntax", ".syntax", ".yaml", ".yaml-tmlanguage", ".yaml.sed", ".yml.mysql"], + filenames: [".clang-format", ".clang-tidy", ".gemrc", "CITATION.cff", "glide.lock", "yarn.lock"], + aceMode: "yaml", + codemirrorMode: "yaml", + codemirrorMimeType: "text/x-yaml", + languageId: 407 + }; + } +}); +var require_language_yaml = __commonJS2({ + "src/language-yaml/index.js"(exports2, module2) { + "use strict"; + var createLanguage = require_create_language(); + var printer = require_printer_yaml(); + var options = require_options7(); + var parsers = require_parsers7(); + var languages = [createLanguage(require_YAML(), (data) => ({ + since: "1.14.0", + parsers: ["yaml"], + vscodeLanguageIds: ["yaml", "ansible", "home-assistant"], + filenames: [...data.filenames.filter((filename) => filename !== "yarn.lock"), ".prettierrc", ".stylelintrc"] + }))]; + module2.exports = { + languages, + printers: { + yaml: printer + }, + options, + parsers + }; + } +}); +var require_languages = __commonJS2({ + "src/languages.js"(exports2, module2) { + "use strict"; + module2.exports = [require_language_js(), require_language_css(), require_language_handlebars(), require_language_graphql(), require_language_markdown(), require_language_html(), require_language_yaml()]; + } +}); +var require_load_plugins = __commonJS2({ + "src/common/load-plugins.js"(exports2, module2) { + "use strict"; + var fs = require("fs"); + var path = require("path"); + var fastGlob = require_out4(); + var partition = require_partition(); + var uniqByKey = require_uniq_by_key(); + var internalPlugins = require_languages(); + var { + default: mem2, + memClear: memClear2 + } = (init_dist(), __toCommonJS(dist_exports)); + var thirdParty = require("./third-party.js"); + var resolve = require_resolve2(); + var memoizedLoad = mem2(load, { + cacheKey: JSON.stringify + }); + var memoizedSearch = mem2(findPluginsInNodeModules); + var clearCache = () => { + memClear2(memoizedLoad); + memClear2(memoizedSearch); + }; + function load(plugins2, pluginSearchDirs) { + if (!plugins2) { + plugins2 = []; + } + if (pluginSearchDirs === false) { + pluginSearchDirs = []; + } else { + pluginSearchDirs = pluginSearchDirs || []; + if (pluginSearchDirs.length === 0) { + const autoLoadDir = thirdParty.findParentDir(__dirname, "node_modules"); + if (autoLoadDir) { + pluginSearchDirs = [autoLoadDir]; + } + } + } + const [externalPluginNames, externalPluginInstances] = partition(plugins2, (plugin) => typeof plugin === "string"); + const externalManualLoadPluginInfos = externalPluginNames.map((pluginName) => { + let requirePath; + try { + requirePath = resolve(path.resolve(process.cwd(), pluginName)); + } catch { + requirePath = resolve(pluginName, { + paths: [process.cwd()] + }); + } + return { + name: pluginName, + requirePath + }; + }); + const externalAutoLoadPluginInfos = pluginSearchDirs.flatMap((pluginSearchDir) => { + const resolvedPluginSearchDir = path.resolve(process.cwd(), pluginSearchDir); + const nodeModulesDir = path.resolve(resolvedPluginSearchDir, "node_modules"); + if (!isDirectory(nodeModulesDir) && !isDirectory(resolvedPluginSearchDir)) { + throw new Error(`${pluginSearchDir} does not exist or is not a directory`); + } + return memoizedSearch(nodeModulesDir).map((pluginName) => ({ + name: pluginName, + requirePath: resolve(pluginName, { + paths: [resolvedPluginSearchDir] + }) + })); + }); + const externalPlugins = [...uniqByKey([...externalManualLoadPluginInfos, ...externalAutoLoadPluginInfos], "requirePath").map((externalPluginInfo) => Object.assign({ + name: externalPluginInfo.name + }, require(externalPluginInfo.requirePath))), ...externalPluginInstances]; + return [...internalPlugins, ...externalPlugins]; + } + function findPluginsInNodeModules(nodeModulesDir) { + const pluginPackageJsonPaths = fastGlob.sync(["prettier-plugin-*/package.json", "@*/prettier-plugin-*/package.json", "@prettier/plugin-*/package.json"], { + cwd: nodeModulesDir + }); + return pluginPackageJsonPaths.map(path.dirname); + } + function isDirectory(dir) { + try { + return fs.statSync(dir).isDirectory(); + } catch { + return false; + } + } + module2.exports = { + loadPlugins: memoizedLoad, + clearCache + }; + } +}); +var { + version +} = require("./package.json"); +var core = require_core(); +var { + getSupportInfo +} = require_support(); +var getFileInfo = require_get_file_info(); +var sharedUtil = require_util_shared(); +var plugins = require_load_plugins(); +var config = require_resolve_config(); +var doc = require("./doc.js"); +function _withPlugins(fn, optsArgIdx = 1) { + return (...args) => { + const opts = args[optsArgIdx] || {}; + args[optsArgIdx] = Object.assign(Object.assign({}, opts), {}, { + plugins: plugins.loadPlugins(opts.plugins, opts.pluginSearchDirs) + }); + return fn(...args); + }; +} +function withPlugins(fn, optsArgIdx) { + const resultingFn = _withPlugins(fn, optsArgIdx); + if (fn.sync) { + resultingFn.sync = _withPlugins(fn.sync, optsArgIdx); + } + return resultingFn; +} +var formatWithCursor = withPlugins(core.formatWithCursor); +module.exports = { + formatWithCursor, + format(text, opts) { + return formatWithCursor(text, opts).formatted; + }, + check(text, opts) { + const { + formatted + } = formatWithCursor(text, opts); + return formatted === text; + }, + doc, + resolveConfig: config.resolveConfig, + resolveConfigFile: config.resolveConfigFile, + clearConfigCache() { + config.clearCache(); + plugins.clearCache(); + }, + getFileInfo: withPlugins(getFileInfo), + getSupportInfo: withPlugins(getSupportInfo, 0), + version, + util: sharedUtil, + __internal: { + errors: require_errors(), + coreOptions: require_core_options(), + createIgnorer: require_create_ignorer(), + optionsModule: require_options(), + optionsNormalizer: require_options_normalizer(), + utils: { + arrayify: require_arrayify(), + getLast: require_get_last(), + partition: require_partition(), + isNonEmptyArray: require_util().isNonEmptyArray + } + }, + __debug: { + parse: withPlugins(core.parse), + formatAST: withPlugins(core.formatAST), + formatDoc: withPlugins(core.formatDoc), + printToDoc: withPlugins(core.printToDoc), + printDocToString: withPlugins(core.printDocToString) + } +}; diff --git a/node_modules/prettier/package.json b/node_modules/prettier/package.json new file mode 100644 index 0000000..f101c3f --- /dev/null +++ b/node_modules/prettier/package.json @@ -0,0 +1,21 @@ +{ + "name": "prettier", + "version": "2.7.1", + "description": "Prettier is an opinionated code formatter", + "bin": "./bin-prettier.js", + "repository": "prettier/prettier", + "funding": "https://github.com/prettier/prettier?sponsor=1", + "homepage": "https://prettier.io", + "author": "James Long", + "license": "MIT", + "main": "./index.js", + "browser": "./standalone.js", + "unpkg": "./standalone.js", + "engines": { + "node": ">=10.13.0" + }, + "files": [ + "*.js", + "esm/*.mjs" + ] +} \ No newline at end of file diff --git a/node_modules/prettier/parser-angular.js b/node_modules/prettier/parser-angular.js new file mode 100644 index 0000000..1a77b9c --- /dev/null +++ b/node_modules/prettier/parser-angular.js @@ -0,0 +1,2 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.angular=e()}})(function(){"use strict";var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Mn=un((jn,on)=>{var ze=Object.defineProperty,hn=Object.getOwnPropertyDescriptor,He=Object.getOwnPropertyNames,ln=Object.prototype.hasOwnProperty,Y=(e,t)=>function(){return e&&(t=(0,e[He(e)[0]])(e=0)),t},q=(e,t)=>function(){return t||(0,e[He(e)[0]])((t={exports:{}}).exports,t),t.exports},Xe=(e,t)=>{for(var n in t)ze(e,n,{get:t[n],enumerable:!0})},pn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of He(t))!ln.call(e,s)&&s!==n&&ze(e,s,{get:()=>t[s],enumerable:!(r=hn(t,s))||r.enumerable});return e},be=e=>pn(ze({},"__esModule",{value:!0}),e),L=Y({""(){}}),dn=q({"src/utils/is-non-empty-array.js"(e,t){"use strict";L();function n(r){return Array.isArray(r)&&r.length>0}t.exports=n}}),fn=q({"src/language-js/loc.js"(e,t){"use strict";L();var n=dn();function r(h,P){let{ignoreDecorators:p}=P||{};if(!p){let x=h.declaration&&h.declaration.decorators||h.decorators;if(n(x))return r(x[0])}return h.range?h.range[0]:h.start}function s(h){return h.range?h.range[1]:h.end}function a(h,P){let p=r(h);return Number.isInteger(p)&&p===r(P)}function i(h,P){let p=s(h);return Number.isInteger(p)&&p===s(P)}function l(h,P){return a(h,P)&&i(h,P)}t.exports={locStart:r,locEnd:s,hasSameLocStart:a,hasSameLoc:l}}}),gn=q({"node_modules/angular-estree-parser/node_modules/lines-and-columns/build/index.js"(e){"use strict";L(),e.__esModule=!0,e.LinesAndColumns=void 0;var t=` +`,n="\r",r=function(){function s(a){this.string=a;for(var i=[0],l=0;lthis.string.length)return null;for(var i=0,l=this.offsets;l[i+1]<=a;)i++;var h=a-l[i];return{line:i,column:h}},s.prototype.indexForLocation=function(a){var i=a.line,l=a.column;return i<0||i>=this.offsets.length||l<0||l>this.lengthOfLine(i)?null:this.offsets[i]+l},s.prototype.lengthOfLine=function(a){var i=this.offsets[a],l=a===this.offsets.length-1?this.string.length:this.offsets[a+1];return l-i},s}();e.LinesAndColumns=r,e.default=r}}),vn=q({"node_modules/angular-estree-parser/lib/context.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.Context=void 0;var t=gn(),n=class{constructor(s){this.text=s,this.locator=new r(this.text)}};e.Context=n;var r=class{constructor(s){this._lineAndColumn=new t.default(s)}locationForIndex(s){let{line:a,column:i}=this._lineAndColumn.locationForIndex(s);return{line:a+1,column:i}}}}}),Je={};Xe(Je,{AST:()=>k,ASTWithName:()=>W,ASTWithSource:()=>G,AbsoluteSourceSpan:()=>U,AstMemoryEfficientTransformer:()=>Ct,AstTransformer:()=>Pt,Binary:()=>K,BindingPipe:()=>fe,BoundElementProperty:()=>It,Chain:()=>oe,Conditional:()=>ce,EmptyExpr:()=>M,ExpressionBinding:()=>Ze,FunctionCall:()=>Pe,ImplicitReceiver:()=>Oe,Interpolation:()=>me,KeyedRead:()=>le,KeyedWrite:()=>de,LiteralArray:()=>ge,LiteralMap:()=>ve,LiteralPrimitive:()=>B,MethodCall:()=>ye,NonNullAssert:()=>Se,ParseSpan:()=>V,ParsedEvent:()=>At,ParsedProperty:()=>Et,ParsedPropertyType:()=>se,ParsedVariable:()=>_t,ParserError:()=>ae,PrefixNot:()=>xe,PropertyRead:()=>re,PropertyWrite:()=>ue,Quote:()=>Le,RecursiveAstVisitor:()=>et,SafeKeyedRead:()=>pe,SafeMethodCall:()=>we,SafePropertyRead:()=>he,ThisReceiver:()=>Ye,Unary:()=>F,VariableBinding:()=>Re});var ae,V,k,W,Le,M,Oe,Ye,oe,ce,re,ue,he,le,pe,de,fe,B,ge,ve,me,K,F,xe,Se,ye,we,Pe,U,G,Re,Ze,et,Pt,Ct,Et,se,At,_t,It,tt=Y({"node_modules/@angular/compiler/esm2015/src/expression_parser/ast.js"(){L(),ae=class{constructor(e,t,n,r){this.input=t,this.errLocation=n,this.ctxLocation=r,this.message="Parser Error: ".concat(e," ").concat(n," [").concat(t,"] in ").concat(r)}},V=class{constructor(e,t){this.start=e,this.end=t}toAbsolute(e){return new U(e+this.start,e+this.end)}},k=class{constructor(e,t){this.span=e,this.sourceSpan=t}toString(){return"AST"}},W=class extends k{constructor(e,t,n){super(e,t),this.nameSpan=n}},Le=class extends k{constructor(e,t,n,r,s){super(e,t),this.prefix=n,this.uninterpretedExpression=r,this.location=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitQuote(this,t)}toString(){return"Quote"}},M=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null}},Oe=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitImplicitReceiver(this,t)}},Ye=class extends Oe{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;var n;return(n=e.visitThisReceiver)===null||n===void 0?void 0:n.call(e,this,t)}},oe=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitChain(this,t)}},ce=class extends k{constructor(e,t,n,r,s){super(e,t),this.condition=n,this.trueExp=r,this.falseExp=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitConditional(this,t)}},re=class extends W{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyRead(this,t)}},ue=class extends W{constructor(e,t,n,r,s,a){super(e,t,n),this.receiver=r,this.name=s,this.value=a}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyWrite(this,t)}},he=class extends W{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafePropertyRead(this,t)}},le=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedRead(this,t)}},pe=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeKeyedRead(this,t)}},de=class extends k{constructor(e,t,n,r,s){super(e,t),this.receiver=n,this.key=r,this.value=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedWrite(this,t)}},fe=class extends W{constructor(e,t,n,r,s,a){super(e,t,a),this.exp=n,this.name=r,this.args=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPipe(this,t)}},B=class extends k{constructor(e,t,n){super(e,t),this.value=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralPrimitive(this,t)}},ge=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralArray(this,t)}},ve=class extends k{constructor(e,t,n,r){super(e,t),this.keys=n,this.values=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralMap(this,t)}},me=class extends k{constructor(e,t,n,r){super(e,t),this.strings=n,this.expressions=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitInterpolation(this,t)}},K=class extends k{constructor(e,t,n,r,s){super(e,t),this.operation=n,this.left=r,this.right=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitBinary(this,t)}},F=class extends K{constructor(e,t,n,r,s,a,i){super(e,t,s,a,i),this.operator=n,this.expr=r}static createMinus(e,t,n){return new F(e,t,"-",n,"-",new B(e,t,0),n)}static createPlus(e,t,n){return new F(e,t,"+",n,"-",n,new B(e,t,0))}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitUnary!==void 0?e.visitUnary(this,t):e.visitBinary(this,t)}},xe=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPrefixNot(this,t)}},Se=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitNonNullAssert(this,t)}},ye=class extends W{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitMethodCall(this,t)}},we=class extends W{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeMethodCall(this,t)}},Pe=class extends k{constructor(e,t,n,r){super(e,t),this.target=n,this.args=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitFunctionCall(this,t)}},U=class{constructor(e,t){this.start=e,this.end=t}},G=class extends k{constructor(e,t,n,r,s){super(new V(0,t===null?0:t.length),new U(r,t===null?r:r+t.length)),this.ast=e,this.source=t,this.location=n,this.errors=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitASTWithSource?e.visitASTWithSource(this,t):this.ast.visit(e,t)}toString(){return"".concat(this.source," in ").concat(this.location)}},Re=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},Ze=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},et=class{visit(e,t){e.visit(this,t)}visitUnary(e,t){this.visit(e.expr,t)}visitBinary(e,t){this.visit(e.left,t),this.visit(e.right,t)}visitChain(e,t){this.visitAll(e.expressions,t)}visitConditional(e,t){this.visit(e.condition,t),this.visit(e.trueExp,t),this.visit(e.falseExp,t)}visitPipe(e,t){this.visit(e.exp,t),this.visitAll(e.args,t)}visitFunctionCall(e,t){e.target&&this.visit(e.target,t),this.visitAll(e.args,t)}visitImplicitReceiver(e,t){}visitThisReceiver(e,t){}visitInterpolation(e,t){this.visitAll(e.expressions,t)}visitKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitKeyedWrite(e,t){this.visit(e.receiver,t),this.visit(e.key,t),this.visit(e.value,t)}visitLiteralArray(e,t){this.visitAll(e.expressions,t)}visitLiteralMap(e,t){this.visitAll(e.values,t)}visitLiteralPrimitive(e,t){}visitMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitPrefixNot(e,t){this.visit(e.expression,t)}visitNonNullAssert(e,t){this.visit(e.expression,t)}visitPropertyRead(e,t){this.visit(e.receiver,t)}visitPropertyWrite(e,t){this.visit(e.receiver,t),this.visit(e.value,t)}visitSafePropertyRead(e,t){this.visit(e.receiver,t)}visitSafeMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitSafeKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitQuote(e,t){}visitAll(e,t){for(let n of e)this.visit(n,t)}},Pt=class{visitImplicitReceiver(e,t){return e}visitThisReceiver(e,t){return e}visitInterpolation(e,t){return new me(e.span,e.sourceSpan,e.strings,this.visitAll(e.expressions))}visitLiteralPrimitive(e,t){return new B(e.span,e.sourceSpan,e.value)}visitPropertyRead(e,t){return new re(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitPropertyWrite(e,t){return new ue(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,e.value.visit(this))}visitSafePropertyRead(e,t){return new he(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitMethodCall(e,t){return new ye(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitSafeMethodCall(e,t){return new we(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitFunctionCall(e,t){return new Pe(e.span,e.sourceSpan,e.target.visit(this),this.visitAll(e.args))}visitLiteralArray(e,t){return new ge(e.span,e.sourceSpan,this.visitAll(e.expressions))}visitLiteralMap(e,t){return new ve(e.span,e.sourceSpan,e.keys,this.visitAll(e.values))}visitUnary(e,t){switch(e.operator){case"+":return F.createPlus(e.span,e.sourceSpan,e.expr.visit(this));case"-":return F.createMinus(e.span,e.sourceSpan,e.expr.visit(this));default:throw new Error("Unknown unary operator ".concat(e.operator))}}visitBinary(e,t){return new K(e.span,e.sourceSpan,e.operation,e.left.visit(this),e.right.visit(this))}visitPrefixNot(e,t){return new xe(e.span,e.sourceSpan,e.expression.visit(this))}visitNonNullAssert(e,t){return new Se(e.span,e.sourceSpan,e.expression.visit(this))}visitConditional(e,t){return new ce(e.span,e.sourceSpan,e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this))}visitPipe(e,t){return new fe(e.span,e.sourceSpan,e.exp.visit(this),e.name,this.visitAll(e.args),e.nameSpan)}visitKeyedRead(e,t){return new le(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this))}visitKeyedWrite(e,t){return new de(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this),e.value.visit(this))}visitAll(e){let t=[];for(let n=0;n=nt&&e<=rt||e==dt}function Q(e){return $t<=e&&e<=jt}function xn(e){return e>=lt&&e<=pt||e>=ut&&e<=ht}function mt(e){return e===at||e===st||e===Xt}var Ce,nt,Ot,kt,Nt,bt,rt,Lt,st,Rt,it,Tt,je,at,Ee,z,Bt,ot,ee,ct,H,Te,X,te,Kt,ie,Mt,Fe,$t,jt,ut,Ft,ht,Ae,Ut,ne,Wt,Ke,lt,Gt,Vt,qt,Qt,Dt,zt,Ht,pt,Be,Ue,_e,dt,Xt,Jt=Y({"node_modules/@angular/compiler/esm2015/src/chars.js"(){L(),Ce=0,nt=9,Ot=10,kt=11,Nt=12,bt=13,rt=32,Lt=33,st=34,Rt=35,it=36,Tt=37,je=38,at=39,Ee=40,z=41,Bt=42,ot=43,ee=44,ct=45,H=46,Te=47,X=58,te=59,Kt=60,ie=61,Mt=62,Fe=63,$t=48,jt=57,ut=65,Ft=69,ht=90,Ae=91,Ut=92,ne=93,Wt=94,Ke=95,lt=97,Gt=101,Vt=102,qt=110,Qt=114,Dt=116,zt=117,Ht=118,pt=122,Be=123,Ue=124,_e=125,dt=160,Xt=96}}),Yt={};Xe(Yt,{EOF:()=>Ie,Lexer:()=>en,Token:()=>$,TokenType:()=>S,isIdentifier:()=>Zt});function xt(e,t,n){return new $(e,t,S.Character,n,String.fromCharCode(n))}function Sn(e,t,n){return new $(e,t,S.Identifier,0,n)}function yn(e,t,n){return new $(e,t,S.PrivateIdentifier,0,n)}function wn(e,t,n){return new $(e,t,S.Keyword,0,n)}function Me(e,t,n){return new $(e,t,S.Operator,0,n)}function Pn(e,t,n){return new $(e,t,S.String,0,n)}function Cn(e,t,n){return new $(e,t,S.Number,n,"")}function En(e,t,n){return new $(e,t,S.Error,0,n)}function We(e){return lt<=e&&e<=pt||ut<=e&&e<=ht||e==Ke||e==it}function Zt(e){if(e.length==0)return!1;let t=new Ve(e);if(!We(t.peek))return!1;for(t.advance();t.peek!==Ce;){if(!Ge(t.peek))return!1;t.advance()}return!0}function Ge(e){return xn(e)||Q(e)||e==Ke||e==it}function An(e){return e==Gt||e==Ft}function _n(e){return e==ct||e==ot}function In(e){switch(e){case qt:return Ot;case Vt:return Nt;case Qt:return bt;case Dt:return nt;case Ht:return kt;default:return e}}function On(e){let t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t}var S,St,en,$,Ie,Ve,tn=Y({"node_modules/@angular/compiler/esm2015/src/expression_parser/lexer.js"(){L(),Jt(),function(e){e[e.Character=0]="Character",e[e.Identifier=1]="Identifier",e[e.PrivateIdentifier=2]="PrivateIdentifier",e[e.Keyword=3]="Keyword",e[e.String=4]="String",e[e.Operator=5]="Operator",e[e.Number=6]="Number",e[e.Error=7]="Error"}(S||(S={})),St=["var","let","as","null","undefined","true","false","if","else","this"],en=class{tokenize(e){let t=new Ve(e),n=[],r=t.scanToken();for(;r!=null;)n.push(r),r=t.scanToken();return n}},$=class{constructor(e,t,n,r,s){this.index=e,this.end=t,this.type=n,this.numValue=r,this.strValue=s}isCharacter(e){return this.type==S.Character&&this.numValue==e}isNumber(){return this.type==S.Number}isString(){return this.type==S.String}isOperator(e){return this.type==S.Operator&&this.strValue==e}isIdentifier(){return this.type==S.Identifier}isPrivateIdentifier(){return this.type==S.PrivateIdentifier}isKeyword(){return this.type==S.Keyword}isKeywordLet(){return this.type==S.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==S.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==S.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==S.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==S.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==S.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==S.Keyword&&this.strValue=="this"}isError(){return this.type==S.Error}toNumber(){return this.type==S.Number?this.numValue:-1}toString(){switch(this.type){case S.Character:case S.Identifier:case S.Keyword:case S.Operator:case S.PrivateIdentifier:case S.String:case S.Error:return this.strValue;case S.Number:return this.numValue.toString();default:return null}}},Ie=new $(-1,-1,S.Character,0,""),Ve=class{constructor(e){this.input=e,this.peek=0,this.index=-1,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?Ce:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,t=this.length,n=this.peek,r=this.index;for(;n<=rt;)if(++r>=t){n=Ce;break}else n=e.charCodeAt(r);if(this.peek=n,this.index=r,r>=t)return null;if(We(n))return this.scanIdentifier();if(Q(n))return this.scanNumber(r);let s=r;switch(n){case H:return this.advance(),Q(this.peek)?this.scanNumber(s):xt(s,this.index,H);case Ee:case z:case Be:case _e:case Ae:case ne:case ee:case X:case te:return this.scanCharacter(s,n);case at:case st:return this.scanString();case Rt:return this.scanPrivateIdentifier();case ot:case ct:case Bt:case Te:case Tt:case Wt:return this.scanOperator(s,String.fromCharCode(n));case Fe:return this.scanQuestion(s);case Kt:case Mt:return this.scanComplexOperator(s,String.fromCharCode(n),ie,"=");case Lt:case ie:return this.scanComplexOperator(s,String.fromCharCode(n),ie,"=",ie,"=");case je:return this.scanComplexOperator(s,"&",je,"&");case Ue:return this.scanComplexOperator(s,"|",Ue,"|");case dt:for(;mn(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character [".concat(String.fromCharCode(n),"]"),0)}scanCharacter(e,t){return this.advance(),xt(e,this.index,t)}scanOperator(e,t){return this.advance(),Me(e,this.index,t)}scanComplexOperator(e,t,n,r,s,a){this.advance();let i=t;return this.peek==n&&(this.advance(),i+=r),s!=null&&this.peek==s&&(this.advance(),i+=a),Me(e,this.index,i)}scanIdentifier(){let e=this.index;for(this.advance();Ge(this.peek);)this.advance();let t=this.input.substring(e,this.index);return St.indexOf(t)>-1?wn(e,this.index,t):Sn(e,this.index,t)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!We(this.peek))return this.error("Invalid character [#]",-1);for(;Ge(this.peek);)this.advance();let t=this.input.substring(e,this.index);return yn(e,this.index,t)}scanNumber(e){let t=this.index===e,n=!1;for(this.advance();;){if(!Q(this.peek))if(this.peek===Ke){if(!Q(this.input.charCodeAt(this.index-1))||!Q(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);n=!0}else if(this.peek===H)t=!1;else if(An(this.peek)){if(this.advance(),_n(this.peek)&&this.advance(),!Q(this.peek))return this.error("Invalid exponent",-1);t=!1}else break;this.advance()}let r=this.input.substring(e,this.index);n&&(r=r.replace(/_/g,""));let s=t?On(r):parseFloat(r);return Cn(e,this.index,s)}scanString(){let e=this.index,t=this.peek;this.advance();let n="",r=this.index,s=this.input;for(;this.peek!=t;)if(this.peek==Ut){n+=s.substring(r,this.index),this.advance();let i;if(this.peek=this.peek,this.peek==zt){let l=s.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(l))i=parseInt(l,16);else return this.error("Invalid unicode escape [\\u".concat(l,"]"),0);for(let h=0;h<5;h++)this.advance()}else i=In(this.peek),this.advance();n+=String.fromCharCode(i),r=this.index}else{if(this.peek==Ce)return this.error("Unterminated quote",0);this.advance()}let a=s.substring(r,this.index);return this.advance(),Pn(e,this.index,n+a)}scanQuestion(e){this.advance();let t="?";return(this.peek===Fe||this.peek===H)&&(t+=this.peek===H?".":"?",this.advance()),Me(e,this.index,t)}error(e,t){let n=this.index+t;return En(n,this.index,"Lexer Error: ".concat(e," at column ").concat(n," in expression [").concat(this.input,"]"))}}}});function kn(e,t){if(t!=null&&!(Array.isArray(t)&&t.length==2))throw new Error("Expected '".concat(e,"' to be an array, [start, end]."));if(t!=null){let n=t[0],r=t[1];nn.forEach(s=>{if(s.test(n)||s.test(r))throw new Error("['".concat(n,"', '").concat(r,"'] contains unusable interpolation symbol."))})}}var nn,Nn=Y({"node_modules/@angular/compiler/esm2015/src/assertions.js"(){L(),nn=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//]}}),$e,J,bn=Y({"node_modules/@angular/compiler/esm2015/src/ml_parser/interpolation_config.js"(){L(),Nn(),$e=class{constructor(e,t){this.start=e,this.end=t}static fromArray(e){return e?(kn("interpolation",e),new $e(e[0],e[1])):J}},J=new $e("{{","}}")}}),rn={};Xe(rn,{IvyParser:()=>sn,Parser:()=>De,SplitInterpolation:()=>qe,TemplateBindingParseResult:()=>Qe,_ParseAST:()=>D});var qe,Qe,De,sn,Z,D,yt,wt,Ln=Y({"node_modules/@angular/compiler/esm2015/src/expression_parser/parser.js"(){L(),Jt(),bn(),tt(),tn(),qe=class{constructor(e,t,n){this.strings=e,this.expressions=t,this.offsets=n}},Qe=class{constructor(e,t,n){this.templateBindings=e,this.warnings=t,this.errors=n}},De=class{constructor(e){this._lexer=e,this.errors=[],this.simpleExpressionChecker=yt}parseAction(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J;this._checkNoInterpolation(e,t,r);let s=this._stripComments(e),a=this._lexer.tokenize(this._stripComments(e)),i=new D(e,t,n,a,s.length,!0,this.errors,e.length-s.length).parseChain();return new G(i,e,t,n,this.errors)}parseBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r);return new G(s,e,t,n,this.errors)}checkSimpleExpression(e){let t=new this.simpleExpressionChecker;return e.visit(t),t.errors}parseSimpleBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r),a=this.checkSimpleExpression(s);return a.length>0&&this._reportError("Host binding expression cannot contain ".concat(a.join(" ")),e,t),new G(s,e,t,n,this.errors)}_reportError(e,t,n,r){this.errors.push(new ae(e,t,n,r))}_parseBindingAst(e,t,n,r){let s=this._parseQuote(e,t,n);if(s!=null)return s;this._checkNoInterpolation(e,t,r);let a=this._stripComments(e),i=this._lexer.tokenize(a);return new D(e,t,n,i,a.length,!1,this.errors,e.length-a.length).parseChain()}_parseQuote(e,t,n){if(e==null)return null;let r=e.indexOf(":");if(r==-1)return null;let s=e.substring(0,r).trim();if(!Zt(s))return null;let a=e.substring(r+1),i=new V(0,e.length);return new Le(i,i.toAbsolute(n),s,a,t)}parseTemplateBindings(e,t,n,r,s){let a=this._lexer.tokenize(t);return new D(t,n,s,a,t.length,!1,this.errors,0).parseTemplateBindings({source:e,span:new U(r,r+e.length)})}parseInterpolation(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,{strings:s,expressions:a,offsets:i}=this.splitInterpolation(e,t,r);if(a.length===0)return null;let l=[];for(let h=0;hh.text),l,e,t,n)}parseInterpolationExpression(e,t,n){let r=this._stripComments(e),s=this._lexer.tokenize(r),a=new D(e,t,n,s,r.length,!1,this.errors,0).parseChain(),i=["",""];return this.createInterpolationAst(i,[a],e,t,n)}createInterpolationAst(e,t,n,r,s){let a=new V(0,n.length),i=new me(a,a.toAbsolute(s),e,t);return new G(i,n,r,s,this.errors)}splitInterpolation(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:J,r=[],s=[],a=[],i=0,l=!1,h=!1,{start:P,end:p}=n;for(;i-1)break;a>-1&&i>-1&&this._reportError("Got interpolation (".concat(r).concat(s,") where expression was expected"),e,"at column ".concat(a," in"),t)}_getInterpolationEndIndex(e,t,n){for(let r of this._forEachUnquotedChar(e,n)){if(e.startsWith(t,r))return r;if(e.startsWith("//",r))return e.indexOf(t,r)}return-1}*_forEachUnquotedChar(e,t){let n=null,r=0;for(let s=t;s=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.inputLength+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,t){let n=this.currentEndIndex;if(t!==void 0&&t>this.currentEndIndex&&(n=t),e>n){let r=n;n=e,e=r}return new V(e,n)}sourceSpan(e,t){let n="".concat(e,"@").concat(this.inputIndex,":").concat(t);return this.sourceSpanCache.has(n)||this.sourceSpanCache.set(n,this.span(e,t).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(n)}advance(){this.index++}withContext(e,t){this.context|=e;let n=t();return this.context^=e,n}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error("Missing expected ".concat(String.fromCharCode(e)))}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error("Missing expected operator ".concat(e))}prettyPrintToken(e){return e===Ie?"end of input":"token ".concat(e)}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error("Unexpected ".concat(this.prettyPrintToken(e),", expected identifier or keyword")),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error("Unexpected ".concat(this.prettyPrintToken(e),", expected identifier, keyword, or string")),""):(this.advance(),e.toString())}parseChain(){let e=[],t=this.inputIndex;for(;this.index":case"<=":case">=":this.advance();let r=this.parseAdditive();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseAdditive(){let e=this.inputIndex,t=this.parseMultiplicative();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case"+":case"-":this.advance();let r=this.parseMultiplicative();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseMultiplicative(){let e=this.inputIndex,t=this.parsePrefix();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case"*":case"%":case"/":this.advance();let r=this.parsePrefix();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parsePrefix(){if(this.next.type==S.Operator){let e=this.inputIndex,t=this.next.strValue,n;switch(t){case"+":return this.advance(),n=this.parsePrefix(),F.createPlus(this.span(e),this.sourceSpan(e),n);case"-":return this.advance(),n=this.parsePrefix(),F.createMinus(this.span(e),this.sourceSpan(e),n);case"!":return this.advance(),n=this.parsePrefix(),new xe(this.span(e),this.sourceSpan(e),n)}}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,t=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(H))t=this.parseAccessMemberOrMethodCall(t,e,!1);else if(this.consumeOptionalOperator("?."))t=this.consumeOptionalCharacter(Ae)?this.parseKeyedReadOrWrite(t,e,!0):this.parseAccessMemberOrMethodCall(t,e,!0);else if(this.consumeOptionalCharacter(Ae))t=this.parseKeyedReadOrWrite(t,e,!1);else if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let n=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(z),t=new Pe(this.span(e),this.sourceSpan(e),t,n)}else if(this.consumeOptionalOperator("!"))t=new Se(this.span(e),this.sourceSpan(e),t);else return t}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(z),t}else{if(this.next.isKeywordNull())return this.advance(),new B(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new B(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new B(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new B(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Ye(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(Ae)){this.rbracketsExpected++;let t=this.parseExpressionList(ne);return this.rbracketsExpected--,this.expectCharacter(ne),new ge(this.span(e),this.sourceSpan(e),t)}else{if(this.next.isCharacter(Be))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Oe(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let t=this.next.toNumber();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else if(this.next.isString()){let t=this.next.toString();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new M(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error("Unexpected end of expression: ".concat(this.input)),new M(this.span(e),this.sourceSpan(e))):(this.error("Unexpected token ".concat(this.next)),new M(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let t=[];do if(!this.next.isCharacter(e))t.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(ee));return t}parseLiteralMap(){let e=[],t=[],n=this.inputIndex;if(this.expectCharacter(Be),!this.consumeOptionalCharacter(_e)){this.rbracesExpected++;do{let r=this.inputIndex,s=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(e.push({key:a,quoted:s}),s)this.expectCharacter(X),t.push(this.parsePipe());else if(this.consumeOptionalCharacter(X))t.push(this.parsePipe());else{let i=this.span(r),l=this.sourceSpan(r);t.push(new re(i,l,l,new Oe(i,l),a))}}while(this.consumeOptionalCharacter(ee));this.rbracesExpected--,this.expectCharacter(_e)}return new ve(this.span(n),this.sourceSpan(n),e,t)}parseAccessMemberOrMethodCall(e,t,n){let r=this.inputIndex,s=this.withContext(Z.Writable,()=>{var i;let l=(i=this.expectIdentifierOrKeyword())!==null&&i!==void 0?i:"";return l.length===0&&this.error("Expected identifier for property access",e.span.end),l}),a=this.sourceSpan(r);if(this.consumeOptionalCharacter(Ee)){let i=this.inputIndex;this.rparensExpected++;let l=this.parseCallArguments(),h=this.span(i,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(z),this.rparensExpected--;let P=this.span(t),p=this.sourceSpan(t);return n?new we(P,p,a,e,s,l,h):new ye(P,p,a,e,s,l,h)}else{if(n)return this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new M(this.span(t),this.sourceSpan(t))):new he(this.span(t),this.sourceSpan(t),a,e,s);if(this.consumeOptionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new M(this.span(t),this.sourceSpan(t));let i=this.parseConditional();return new ue(this.span(t),this.sourceSpan(t),a,e,s,i)}else return new re(this.span(t),this.sourceSpan(t),a,e,s)}}parseCallArguments(){if(this.next.isCharacter(z))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(ee));return e}expectTemplateBindingKey(){let e="",t=!1,n=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),t=this.consumeOptionalOperator("-"),t&&(e+="-");while(t);return{source:e,span:new U(n,n+e.length)}}parseTemplateBindings(e){let t=[];for(t.push(...this.parseDirectiveKeywordBindings(e));this.index{this.rbracketsExpected++;let r=this.parsePipe();if(r instanceof M&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(ne),this.consumeOptionalOperator("="))if(n)this.error("The '?.' operator cannot be used in the assignment");else{let s=this.parseConditional();return new de(this.span(t),this.sourceSpan(t),e,r,s)}else return n?new pe(this.span(t),this.sourceSpan(t),e,r):new le(this.span(t),this.sourceSpan(t),e,r);return new M(this.span(t),this.sourceSpan(t))})}parseDirectiveKeywordBindings(e){let t=[];this.consumeOptionalCharacter(X);let n=this.getDirectiveBoundTarget(),r=this.currentAbsoluteOffset,s=this.parseAsBinding(e);s||(this.consumeStatementTerminator(),r=this.currentAbsoluteOffset);let a=new U(e.span.start,r);return t.push(new Ze(a,e,n)),s&&t.push(s),t}getDirectiveBoundTarget(){if(this.next===Ie||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:t,end:n}=e.span,r=this.input.substring(t,n);return new G(e,r,this.location,this.absoluteOffset+t,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let t=this.expectTemplateBindingKey();this.consumeStatementTerminator();let n=new U(e.span.start,this.currentAbsoluteOffset);return new Re(n,t,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let t=this.expectTemplateBindingKey(),n=null;this.consumeOptionalOperator("=")&&(n=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let r=new U(e,this.currentAbsoluteOffset);return new Re(r,t,n)}consumeStatementTerminator(){this.consumeOptionalCharacter(te)||this.consumeOptionalCharacter(ee)}error(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.errors.push(new ae(e,this.input,this.locationText(t),this.location)),this.skip()}locationText(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return e==null&&(e=this.index),en.visit(this,t))}visitChain(e,t){}visitQuote(e,t){}visitSafeKeyedRead(e,t){}},wt=class extends et{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push("pipes")}}}}),ft=q({"node_modules/angular-estree-parser/lib/utils.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.getLast=e.toLowerCamelCase=e.findBackChar=e.findFrontChar=e.fitSpans=e.getNgType=e.parseNgInterpolation=e.parseNgTemplateBindings=e.parseNgAction=e.parseNgSimpleBinding=e.parseNgBinding=e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX=void 0;var t=(tt(),be(Je)),n=(tn(),be(Yt)),r=(Ln(),be(rn)),s="angular-estree-parser";e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX="NgEstreeParser";var a=0,i=[s,a];function l(){return new r.Parser(new n.Lexer)}function h(o,d){let y=l(),{astInput:C,comments:E}=T(o,y),{ast:I,errors:j}=d(C,y);return R(j),{ast:I,comments:E}}function P(o){return h(o,(d,y)=>y.parseBinding(d,...i))}e.parseNgBinding=P;function p(o){return h(o,(d,y)=>y.parseSimpleBinding(d,...i))}e.parseNgSimpleBinding=p;function x(o){return h(o,(d,y)=>y.parseAction(d,...i))}e.parseNgAction=x;function A(o){let d=l(),{templateBindings:y,errors:C}=d.parseTemplateBindings(e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX,o,s,a,a);return R(C),y}e.parseNgTemplateBindings=A;function b(o){let d=l(),{astInput:y,comments:C}=T(o,d),E="{{",I="}}",{ast:j,errors:cn}=d.parseInterpolation(E+y+I,...i);R(cn);let gt=j.expressions[0],vt=new Set;return _(gt,ke=>{vt.has(ke)||(ke.start-=E.length,ke.end-=E.length,vt.add(ke))}),{ast:gt,comments:C}}e.parseNgInterpolation=b;function _(o,d){if(!(!o||typeof o!="object")){if(Array.isArray(o))return o.forEach(y=>_(y,d));for(let y of Object.keys(o)){let C=o[y];y==="span"?d(C):_(C,d)}}}function R(o){if(o.length!==0){let[{message:d}]=o;throw new SyntaxError(d.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}}function T(o,d){let y=d._commentStart(o);return y===null?{astInput:o,comments:[]}:{astInput:o.slice(0,y),comments:[{type:"Comment",value:o.slice(y+2),span:{start:y,end:o.length}}]}}function O(o){return t.Unary&&o instanceof t.Unary?"Unary":o instanceof t.Binary?"Binary":o instanceof t.BindingPipe?"BindingPipe":o instanceof t.Chain?"Chain":o instanceof t.Conditional?"Conditional":o instanceof t.EmptyExpr?"EmptyExpr":o instanceof t.FunctionCall?"FunctionCall":o instanceof t.ImplicitReceiver?"ImplicitReceiver":o instanceof t.KeyedRead?"KeyedRead":o instanceof t.KeyedWrite?"KeyedWrite":o instanceof t.LiteralArray?"LiteralArray":o instanceof t.LiteralMap?"LiteralMap":o instanceof t.LiteralPrimitive?"LiteralPrimitive":o instanceof t.MethodCall?"MethodCall":o instanceof t.NonNullAssert?"NonNullAssert":o instanceof t.PrefixNot?"PrefixNot":o instanceof t.PropertyRead?"PropertyRead":o instanceof t.PropertyWrite?"PropertyWrite":o instanceof t.Quote?"Quote":o instanceof t.SafeMethodCall?"SafeMethodCall":o instanceof t.SafePropertyRead?"SafePropertyRead":o.type}e.getNgType=O;function N(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==E&&/\s/.test(d[I-1]);)I--;for(;E!==I&&/\s/.test(d[E]);)E++;return{start:E,end:I}}function c(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==d.length&&/\s/.test(d[I]);)I++;for(;E!==0&&/\s/.test(d[E-1]);)E--;return{start:E,end:I}}function g(o,d){return d[o.start-1]==="("&&d[o.end]===")"?{start:o.start-1,end:o.end+1}:o}function u(o,d,y){let C=0,E={start:o.start,end:o.end};for(;;){let I=c(E,d),j=g(I,d);if(I.start===j.start&&I.end===j.end)break;E.start=j.start,E.end=j.end,C++}return{hasParens:(y?C-1:C)!==0,outerSpan:N(y?{start:E.start+1,end:E.end-1}:E,d),innerSpan:N(o,d)}}e.fitSpans=u;function v(o,d,y){let C=d;for(;!o.test(y[C]);)if(--C<0)throw new Error("Cannot find front char ".concat(o," from index ").concat(d," in ").concat(JSON.stringify(y)));return C}e.findFrontChar=v;function m(o,d,y){let C=d;for(;!o.test(y[C]);)if(++C>=y.length)throw new Error("Cannot find back char ".concat(o," from index ").concat(d," in ").concat(JSON.stringify(y)));return C}e.findBackChar=m;function f(o){return o.slice(0,1).toLowerCase()+o.slice(1)}e.toLowerCamelCase=f;function w(o){return o.length===0?void 0:o[o.length-1]}e.getLast=w}}),an=q({"node_modules/angular-estree-parser/lib/transform.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.transformSpan=e.transform=void 0;var t=ft(),n=function(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,l=t.getNgType(s);switch(l){case"Unary":{let{operator:c,expr:g}=s,u=h(g);return p("UnaryExpression",{prefix:!0,argument:u,operator:c},s.span,{hasParentParens:i})}case"Binary":{let{left:c,operation:g,right:u}=s,v=u.span.start===u.span.end,m=c.span.start===c.span.end;if(v||m){let o=c.span.start===c.span.end?h(u):h(c);return p("UnaryExpression",{prefix:!0,argument:o,operator:v?"+":"-"},{start:s.span.start,end:N(o)},{hasParentParens:i})}let f=h(c),w=h(u);return p(g==="&&"||g==="||"?"LogicalExpression":"BinaryExpression",{left:f,right:w,operator:g},{start:O(f),end:N(w)},{hasParentParens:i})}case"BindingPipe":{let{exp:c,name:g,args:u}=s,v=h(c),m=b(/\S/,b(/\|/,N(v))+1),f=p("Identifier",{name:g},{start:m,end:m+g.length}),w=u.map(h);return p("NGPipeExpression",{left:v,right:f,arguments:w},{start:O(v),end:N(w.length===0?f:t.getLast(w))},{hasParentParens:i})}case"Chain":{let{expressions:c}=s;return p("NGChainedExpression",{expressions:c.map(h)},s.span,{hasParentParens:i})}case"Comment":{let{value:c}=s;return p("CommentLine",{value:c},s.span,{processSpan:!1})}case"Conditional":{let{condition:c,trueExp:g,falseExp:u}=s,v=h(c),m=h(g),f=h(u);return p("ConditionalExpression",{test:v,consequent:m,alternate:f},{start:O(v),end:N(f)},{hasParentParens:i})}case"EmptyExpr":return p("NGEmptyExpression",{},s.span,{hasParentParens:i});case"FunctionCall":{let{target:c,args:g}=s,u=g.length===1?[P(g[0])]:g.map(h),v=h(c);return p("CallExpression",{callee:v,arguments:u},{start:O(v),end:s.span.end},{hasParentParens:i})}case"ImplicitReceiver":return p("ThisExpression",{},s.span,{hasParentParens:i});case"KeyedRead":{let{key:c}=s,g=Object.prototype.hasOwnProperty.call(s,"receiver")?s.receiver:s.obj,u=h(c);return x(g,u,{computed:!0,optional:!1},{end:s.span.end,hasParentParens:i})}case"LiteralArray":{let{expressions:c}=s;return p("ArrayExpression",{elements:c.map(h)},s.span,{hasParentParens:i})}case"LiteralMap":{let{keys:c,values:g}=s,u=g.map(m=>h(m)),v=c.map((m,f)=>{let{key:w,quoted:o}=m,d=u[f],y=b(/\S/,f===0?s.span.start+1:b(/,/,N(u[f-1]))+1),C=A(/\S/,A(/:/,O(d)-1)-1)+1,E={start:y,end:C},I=o?p("StringLiteral",{value:w},E):p("Identifier",{name:w},E),j=I.end3&&arguments[3]!==void 0?arguments[3]:{},f=Object.assign(Object.assign({type:c},r(u,a,v,m)),g);switch(c){case"Identifier":{let w=f;w.loc.identifierName=w.name;break}case"NumericLiteral":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}case"StringLiteral":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}}return f}function x(c,g,u){let{end:v=N(g),hasParentParens:m=!1}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};if(_(c)||c.span.start===g.start)return g;let f=h(c),w=R(f);return p(u.optional||w?"OptionalMemberExpression":"MemberExpression",Object.assign({object:f,property:g,computed:u.computed},u.optional?{optional:!0}:w?{optional:!1}:null),{start:O(f),end:v},{hasParentParens:m})}function A(c,g){return t.findFrontChar(c,g,a.text)}function b(c,g){return t.findBackChar(c,g,a.text)}function _(c){return c.span.start>=c.span.end||/^\s+$/.test(a.text.slice(c.span.start,c.span.end))}function R(c){return(c.type==="OptionalCallExpression"||c.type==="OptionalMemberExpression")&&!T(c)}function T(c){return c.extra&&c.extra.parenthesized}function O(c){return T(c)?c.extra.parenStart:c.start}function N(c){return T(c)?c.extra.parenEnd:c.end}};e.transform=n;function r(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!i){let{start:x,end:A}=s;return{start:x,end:A,loc:{start:a.locator.locationForIndex(x),end:a.locator.locationForIndex(A)}}}let{outerSpan:h,innerSpan:P,hasParens:p}=t.fitSpans(s,a.text,l);return Object.assign({start:P.start,end:P.end,loc:{start:a.locator.locationForIndex(P.start),end:a.locator.locationForIndex(P.end)}},p&&{extra:{parenthesized:!0,parenStart:h.start,parenEnd:h.end}})}e.transformSpan=r}}),Rn=q({"node_modules/angular-estree-parser/lib/transform-microsyntax.js"(e){"use strict";L(),Object.defineProperty(e,"__esModule",{value:!0}),e.transformTemplateBindings=void 0;var t=(tt(),be(Je)),n=an(),r=ft();function s(a,i){a.forEach(N);let[l]=a,{key:h}=l,P=i.text.slice(l.sourceSpan.start,l.sourceSpan.end).trim().length===0?a.slice(1):a,p=[],x=null;for(let u=0;uObject.assign(Object.assign({},d),n.transformSpan({start:d.start,end:y},i)),w=d=>Object.assign(Object.assign({},f(d,m.end)),{alias:m}),o=p.pop();if(o.type==="NGMicrosyntaxExpression")p.push(w(o));else if(o.type==="NGMicrosyntaxKeyedExpression"){let d=w(o.expression);p.push(f(Object.assign(Object.assign({},o),{expression:d}),d.end))}else throw new Error("Unexpected type ".concat(o.type))}else p.push(A(v,u));x=v}return _("NGMicrosyntax",{body:p},p.length===0?a[0].sourceSpan:{start:p[0].start,end:p[p.length-1].end});function A(u,v){if(T(u)){let{key:m,value:f}=u;return f?v===0?_("NGMicrosyntaxExpression",{expression:b(f.ast),alias:null},f.sourceSpan):_("NGMicrosyntaxKeyedExpression",{key:_("NGMicrosyntaxKey",{name:R(m.source)},m.span),expression:_("NGMicrosyntaxExpression",{expression:b(f.ast),alias:null},f.sourceSpan)},{start:m.span.start,end:f.sourceSpan.end}):_("NGMicrosyntaxKey",{name:R(m.source)},m.span)}else{let{key:m,sourceSpan:f}=u;if(/^let\s$/.test(i.text.slice(f.start,f.start+4))){let{value:o}=u;return _("NGMicrosyntaxLet",{key:_("NGMicrosyntaxKey",{name:m.source},m.span),value:o?_("NGMicrosyntaxKey",{name:o.source},o.span):null},{start:f.start,end:o?o.span.end:m.span.end})}else{let o=g(u);return _("NGMicrosyntaxAs",{key:_("NGMicrosyntaxKey",{name:o.source},o.span),alias:_("NGMicrosyntaxKey",{name:m.source},m.span)},{start:o.span.start,end:m.span.end})}}}function b(u){return n.transform(u,i)}function _(u,v,m){let f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Object.assign(Object.assign({type:u},n.transformSpan(m,i,f)),v)}function R(u){return r.toLowerCamelCase(u.slice(h.source.length))}function T(u){return u instanceof t.ExpressionBinding}function O(u){return u instanceof t.VariableBinding}function N(u){c(u.key.span),O(u)&&u.value&&c(u.value.span)}function c(u){if(i.text[u.start]!=='"'&&i.text[u.start]!=="'")return;let v=i.text[u.start],m=!1;for(let f=u.start+1;fn.transform(N,R),O=T(b);return O.comments=_.map(T),O}function i(x){return a(x,s.parseNgBinding)}e.parseBinding=i;function l(x){return a(x,s.parseNgSimpleBinding)}e.parseSimpleBinding=l;function h(x){return a(x,s.parseNgInterpolation)}e.parseInterpolation=h;function P(x){return a(x,s.parseNgAction)}e.parseAction=P;function p(x){return r.transformTemplateBindings(s.parseNgTemplateBindings(x),new t.Context(x))}e.parseTemplateBindings=p}});L();var{locStart:Bn,locEnd:Kn}=fn();function Ne(e){return{astFormat:"estree",parse:(n,r,s)=>{let a=Tn(),i=e(n,a);return{type:"NGRoot",node:s.parser==="__ng_action"&&i.type!=="NGChainedExpression"?Object.assign(Object.assign({},i),{},{type:"NGChainedExpression",expressions:[i]}):i}},locStart:Bn,locEnd:Kn}}on.exports={parsers:{__ng_action:Ne((e,t)=>t.parseAction(e)),__ng_binding:Ne((e,t)=>t.parseBinding(e)),__ng_interpolation:Ne((e,t)=>t.parseInterpolation(e)),__ng_directive:Ne((e,t)=>t.parseTemplateBindings(e))}}});return Mn();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-babel.js b/node_modules/prettier/parser-babel.js new file mode 100644 index 0000000..f14a5f7 --- /dev/null +++ b/node_modules/prettier/parser-babel.js @@ -0,0 +1,27 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.babel=e()}})(function(){"use strict";var b=(h,l)=>()=>(l||h((l={exports:{}}).exports,l),l.exports);var G=b((zf,Jr)=>{var Tt=function(h){return h&&h.Math==Math&&h};Jr.exports=Tt(typeof globalThis=="object"&&globalThis)||Tt(typeof window=="object"&&window)||Tt(typeof self=="object"&&self)||Tt(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Ae=b((Kf,Yr)=>{Yr.exports=function(h){try{return!!h()}catch{return!0}}});var ke=b((Vf,$r)=>{var hl=Ae();$r.exports=!hl(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Et=b((Hf,Qr)=>{var ll=Ae();Qr.exports=!ll(function(){var h=function(){}.bind();return typeof h!="function"||h.hasOwnProperty("prototype")})});var bt=b((Wf,Zr)=>{var ul=Et(),Ct=Function.prototype.call;Zr.exports=ul?Ct.bind(Ct):function(){return Ct.apply(Ct,arguments)}});var ri=b(si=>{"use strict";var ei={}.propertyIsEnumerable,ti=Object.getOwnPropertyDescriptor,cl=ti&&!ei.call({1:2},1);si.f=cl?function(l){var p=ti(this,l);return!!p&&p.enumerable}:ei});var ms=b((Xf,ii)=>{ii.exports=function(h,l){return{enumerable:!(h&1),configurable:!(h&2),writable:!(h&4),value:l}}});var ie=b((Jf,oi)=>{var ai=Et(),ni=Function.prototype,pl=ni.bind,ys=ni.call,fl=ai&&pl.bind(ys,ys);oi.exports=ai?function(h){return h&&fl(h)}:function(h){return h&&function(){return ys.apply(h,arguments)}}});var vt=b((Yf,li)=>{var hi=ie(),dl=hi({}.toString),ml=hi("".slice);li.exports=function(h){return ml(dl(h),8,-1)}});var ci=b(($f,ui)=>{var yl=G(),xl=ie(),gl=Ae(),Al=vt(),xs=yl.Object,Pl=xl("".split);ui.exports=gl(function(){return!xs("z").propertyIsEnumerable(0)})?function(h){return Al(h)=="String"?Pl(h,""):xs(h)}:xs});var gs=b((Qf,pi)=>{var Tl=G(),El=Tl.TypeError;pi.exports=function(h){if(h==null)throw El("Can't call method on "+h);return h}});var St=b((Zf,fi)=>{var Cl=ci(),bl=gs();fi.exports=function(h){return Cl(bl(h))}});var ae=b((ed,di)=>{di.exports=function(h){return typeof h=="function"}});var De=b((td,mi)=>{var vl=ae();mi.exports=function(h){return typeof h=="object"?h!==null:vl(h)}});var Qe=b((sd,yi)=>{var As=G(),Sl=ae(),wl=function(h){return Sl(h)?h:void 0};yi.exports=function(h,l){return arguments.length<2?wl(As[h]):As[h]&&As[h][l]}});var gi=b((rd,xi)=>{var Nl=ie();xi.exports=Nl({}.isPrototypeOf)});var Pi=b((id,Ai)=>{var Il=Qe();Ai.exports=Il("navigator","userAgent")||""});var wi=b((ad,Si)=>{var vi=G(),Ps=Pi(),Ti=vi.process,Ei=vi.Deno,Ci=Ti&&Ti.versions||Ei&&Ei.version,bi=Ci&&Ci.v8,oe,wt;bi&&(oe=bi.split("."),wt=oe[0]>0&&oe[0]<4?1:+(oe[0]+oe[1]));!wt&&Ps&&(oe=Ps.match(/Edge\/(\d+)/),(!oe||oe[1]>=74)&&(oe=Ps.match(/Chrome\/(\d+)/),oe&&(wt=+oe[1])));Si.exports=wt});var Ts=b((nd,Ii)=>{var Ni=wi(),kl=Ae();Ii.exports=!!Object.getOwnPropertySymbols&&!kl(function(){var h=Symbol();return!String(h)||!(Object(h)instanceof Symbol)||!Symbol.sham&&Ni&&Ni<41})});var Es=b((od,ki)=>{var Dl=Ts();ki.exports=Dl&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Cs=b((hd,Di)=>{var Fl=G(),Ll=Qe(),Ol=ae(),Bl=gi(),Ml=Es(),Rl=Fl.Object;Di.exports=Ml?function(h){return typeof h=="symbol"}:function(h){var l=Ll("Symbol");return Ol(l)&&Bl(l.prototype,Rl(h))}});var Li=b((ld,Fi)=>{var jl=G(),ql=jl.String;Fi.exports=function(h){try{return ql(h)}catch{return"Object"}}});var Nt=b((ud,Oi)=>{var Ul=G(),_l=ae(),zl=Li(),Kl=Ul.TypeError;Oi.exports=function(h){if(_l(h))return h;throw Kl(zl(h)+" is not a function")}});var Mi=b((cd,Bi)=>{var Vl=Nt();Bi.exports=function(h,l){var p=h[l];return p==null?void 0:Vl(p)}});var ji=b((pd,Ri)=>{var Hl=G(),bs=bt(),vs=ae(),Ss=De(),Wl=Hl.TypeError;Ri.exports=function(h,l){var p,d;if(l==="string"&&vs(p=h.toString)&&!Ss(d=bs(p,h))||vs(p=h.valueOf)&&!Ss(d=bs(p,h))||l!=="string"&&vs(p=h.toString)&&!Ss(d=bs(p,h)))return d;throw Wl("Can't convert object to primitive value")}});var Ui=b((fd,qi)=>{qi.exports=!1});var It=b((dd,zi)=>{var _i=G(),Gl=Object.defineProperty;zi.exports=function(h,l){try{Gl(_i,h,{value:l,configurable:!0,writable:!0})}catch{_i[h]=l}return l}});var kt=b((md,Vi)=>{var Xl=G(),Jl=It(),Ki="__core-js_shared__",Yl=Xl[Ki]||Jl(Ki,{});Vi.exports=Yl});var ws=b((yd,Wi)=>{var $l=Ui(),Hi=kt();(Wi.exports=function(h,l){return Hi[h]||(Hi[h]=l!==void 0?l:{})})("versions",[]).push({version:"3.22.2",mode:$l?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var Ns=b((xd,Gi)=>{var Ql=G(),Zl=gs(),eu=Ql.Object;Gi.exports=function(h){return eu(Zl(h))}});var be=b((gd,Xi)=>{var tu=ie(),su=Ns(),ru=tu({}.hasOwnProperty);Xi.exports=Object.hasOwn||function(l,p){return ru(su(l),p)}});var Is=b((Ad,Ji)=>{var iu=ie(),au=0,nu=Math.random(),ou=iu(1 .toString);Ji.exports=function(h){return"Symbol("+(h===void 0?"":h)+")_"+ou(++au+nu,36)}});var Ze=b((Pd,ea)=>{var hu=G(),lu=ws(),Yi=be(),uu=Is(),$i=Ts(),Zi=Es(),_e=lu("wks"),Fe=hu.Symbol,Qi=Fe&&Fe.for,cu=Zi?Fe:Fe&&Fe.withoutSetter||uu;ea.exports=function(h){if(!Yi(_e,h)||!($i||typeof _e[h]=="string")){var l="Symbol."+h;$i&&Yi(Fe,h)?_e[h]=Fe[h]:Zi&&Qi?_e[h]=Qi(l):_e[h]=cu(l)}return _e[h]}});var ia=b((Td,ra)=>{var pu=G(),fu=bt(),ta=De(),sa=Cs(),du=Mi(),mu=ji(),yu=Ze(),xu=pu.TypeError,gu=yu("toPrimitive");ra.exports=function(h,l){if(!ta(h)||sa(h))return h;var p=du(h,gu),d;if(p){if(l===void 0&&(l="default"),d=fu(p,h,l),!ta(d)||sa(d))return d;throw xu("Can't convert object to primitive value")}return l===void 0&&(l="number"),mu(h,l)}});var ks=b((Ed,aa)=>{var Au=ia(),Pu=Cs();aa.exports=function(h){var l=Au(h,"string");return Pu(l)?l:l+""}});var ha=b((Cd,oa)=>{var Tu=G(),na=De(),Ds=Tu.document,Eu=na(Ds)&&na(Ds.createElement);oa.exports=function(h){return Eu?Ds.createElement(h):{}}});var Fs=b((bd,la)=>{var Cu=ke(),bu=Ae(),vu=ha();la.exports=!Cu&&!bu(function(){return Object.defineProperty(vu("div"),"a",{get:function(){return 7}}).a!=7})});var Ls=b(ca=>{var Su=ke(),wu=bt(),Nu=ri(),Iu=ms(),ku=St(),Du=ks(),Fu=be(),Lu=Fs(),ua=Object.getOwnPropertyDescriptor;ca.f=Su?ua:function(l,p){if(l=ku(l),p=Du(p),Lu)try{return ua(l,p)}catch{}if(Fu(l,p))return Iu(!wu(Nu.f,l,p),l[p])}});var fa=b((Sd,pa)=>{var Ou=ke(),Bu=Ae();pa.exports=Ou&&Bu(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Os=b((wd,ma)=>{var da=G(),Mu=De(),Ru=da.String,ju=da.TypeError;ma.exports=function(h){if(Mu(h))return h;throw ju(Ru(h)+" is not an object")}});var qs=b(xa=>{var qu=G(),Uu=ke(),_u=Fs(),zu=fa(),Dt=Os(),ya=ks(),Ku=qu.TypeError,Bs=Object.defineProperty,Vu=Object.getOwnPropertyDescriptor,Ms="enumerable",Rs="configurable",js="writable";xa.f=Uu?zu?function(l,p,d){if(Dt(l),p=ya(p),Dt(d),typeof l=="function"&&p==="prototype"&&"value"in d&&js in d&&!d[js]){var m=Vu(l,p);m&&m[js]&&(l[p]=d.value,d={configurable:Rs in d?d[Rs]:m[Rs],enumerable:Ms in d?d[Ms]:m[Ms],writable:!1})}return Bs(l,p,d)}:Bs:function(l,p,d){if(Dt(l),p=ya(p),Dt(d),_u)try{return Bs(l,p,d)}catch{}if("get"in d||"set"in d)throw Ku("Accessors not supported");return"value"in d&&(l[p]=d.value),l}});var Ft=b((Id,ga)=>{var Hu=ke(),Wu=qs(),Gu=ms();ga.exports=Hu?function(h,l,p){return Wu.f(h,l,Gu(1,p))}:function(h,l,p){return h[l]=p,h}});var Lt=b((kd,Aa)=>{var Xu=ie(),Ju=ae(),Us=kt(),Yu=Xu(Function.toString);Ju(Us.inspectSource)||(Us.inspectSource=function(h){return Yu(h)});Aa.exports=Us.inspectSource});var Ea=b((Dd,Ta)=>{var $u=G(),Qu=ae(),Zu=Lt(),Pa=$u.WeakMap;Ta.exports=Qu(Pa)&&/native code/.test(Zu(Pa))});var va=b((Fd,ba)=>{var ec=ws(),tc=Is(),Ca=ec("keys");ba.exports=function(h){return Ca[h]||(Ca[h]=tc(h))}});var _s=b((Ld,Sa)=>{Sa.exports={}});var Fa=b((Od,Da)=>{var sc=Ea(),ka=G(),zs=ie(),rc=De(),ic=Ft(),Ks=be(),Vs=kt(),ac=va(),nc=_s(),wa="Object already initialized",Ws=ka.TypeError,oc=ka.WeakMap,Ot,et,Bt,hc=function(h){return Bt(h)?et(h):Ot(h,{})},lc=function(h){return function(l){var p;if(!rc(l)||(p=et(l)).type!==h)throw Ws("Incompatible receiver, "+h+" required");return p}};sc||Vs.state?(ve=Vs.state||(Vs.state=new oc),Na=zs(ve.get),Hs=zs(ve.has),Ia=zs(ve.set),Ot=function(h,l){if(Hs(ve,h))throw new Ws(wa);return l.facade=h,Ia(ve,h,l),l},et=function(h){return Na(ve,h)||{}},Bt=function(h){return Hs(ve,h)}):(Le=ac("state"),nc[Le]=!0,Ot=function(h,l){if(Ks(h,Le))throw new Ws(wa);return l.facade=h,ic(h,Le,l),l},et=function(h){return Ks(h,Le)?h[Le]:{}},Bt=function(h){return Ks(h,Le)});var ve,Na,Hs,Ia,Le;Da.exports={set:Ot,get:et,has:Bt,enforce:hc,getterFor:lc}});var Ba=b((Bd,Oa)=>{var Gs=ke(),uc=be(),La=Function.prototype,cc=Gs&&Object.getOwnPropertyDescriptor,Xs=uc(La,"name"),pc=Xs&&function(){}.name==="something",fc=Xs&&(!Gs||Gs&&cc(La,"name").configurable);Oa.exports={EXISTS:Xs,PROPER:pc,CONFIGURABLE:fc}});var Ua=b((Md,qa)=>{var dc=G(),Ma=ae(),mc=be(),Ra=Ft(),yc=It(),xc=Lt(),ja=Fa(),gc=Ba().CONFIGURABLE,Ac=ja.get,Pc=ja.enforce,Tc=String(String).split("String");(qa.exports=function(h,l,p,d){var m=d?!!d.unsafe:!1,A=d?!!d.enumerable:!1,g=d?!!d.noTargetGet:!1,x=d&&d.name!==void 0?d.name:l,T;if(Ma(p)&&(String(x).slice(0,7)==="Symbol("&&(x="["+String(x).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!mc(p,"name")||gc&&p.name!==x)&&Ra(p,"name",x),T=Pc(p),T.source||(T.source=Tc.join(typeof x=="string"?x:""))),h===dc){A?h[l]=p:yc(l,p);return}else m?!g&&h[l]&&(A=!0):delete h[l];A?h[l]=p:Ra(h,l,p)})(Function.prototype,"toString",function(){return Ma(this)&&Ac(this).source||xc(this)})});var Js=b((Rd,_a)=>{var Ec=Math.ceil,Cc=Math.floor;_a.exports=function(h){var l=+h;return l!==l||l===0?0:(l>0?Cc:Ec)(l)}});var Ka=b((jd,za)=>{var bc=Js(),vc=Math.max,Sc=Math.min;za.exports=function(h,l){var p=bc(h);return p<0?vc(p+l,0):Sc(p,l)}});var Ha=b((qd,Va)=>{var wc=Js(),Nc=Math.min;Va.exports=function(h){return h>0?Nc(wc(h),9007199254740991):0}});var Mt=b((Ud,Wa)=>{var Ic=Ha();Wa.exports=function(h){return Ic(h.length)}});var Ja=b((_d,Xa)=>{var kc=St(),Dc=Ka(),Fc=Mt(),Ga=function(h){return function(l,p,d){var m=kc(l),A=Fc(m),g=Dc(d,A),x;if(h&&p!=p){for(;A>g;)if(x=m[g++],x!=x)return!0}else for(;A>g;g++)if((h||g in m)&&m[g]===p)return h||g||0;return!h&&-1}};Xa.exports={includes:Ga(!0),indexOf:Ga(!1)}});var Qa=b((zd,$a)=>{var Lc=ie(),Ys=be(),Oc=St(),Bc=Ja().indexOf,Mc=_s(),Ya=Lc([].push);$a.exports=function(h,l){var p=Oc(h),d=0,m=[],A;for(A in p)!Ys(Mc,A)&&Ys(p,A)&&Ya(m,A);for(;l.length>d;)Ys(p,A=l[d++])&&(~Bc(m,A)||Ya(m,A));return m}});var en=b((Kd,Za)=>{Za.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var sn=b(tn=>{var Rc=Qa(),jc=en(),qc=jc.concat("length","prototype");tn.f=Object.getOwnPropertyNames||function(l){return Rc(l,qc)}});var an=b(rn=>{rn.f=Object.getOwnPropertySymbols});var on=b((Wd,nn)=>{var Uc=Qe(),_c=ie(),zc=sn(),Kc=an(),Vc=Os(),Hc=_c([].concat);nn.exports=Uc("Reflect","ownKeys")||function(l){var p=zc.f(Vc(l)),d=Kc.f;return d?Hc(p,d(l)):p}});var un=b((Gd,ln)=>{var hn=be(),Wc=on(),Gc=Ls(),Xc=qs();ln.exports=function(h,l,p){for(var d=Wc(l),m=Xc.f,A=Gc.f,g=0;g{var Jc=Ae(),Yc=ae(),$c=/#|\.prototype\./,tt=function(h,l){var p=Zc[Qc(h)];return p==tp?!0:p==ep?!1:Yc(l)?Jc(l):!!l},Qc=tt.normalize=function(h){return String(h).replace($c,".").toLowerCase()},Zc=tt.data={},ep=tt.NATIVE="N",tp=tt.POLYFILL="P";cn.exports=tt});var Qs=b((Jd,fn)=>{var $s=G(),sp=Ls().f,rp=Ft(),ip=Ua(),ap=It(),np=un(),op=pn();fn.exports=function(h,l){var p=h.target,d=h.global,m=h.stat,A,g,x,T,k,D;if(d?g=$s:m?g=$s[p]||ap(p,{}):g=($s[p]||{}).prototype,g)for(x in l){if(k=l[x],h.noTargetGet?(D=sp(g,x),T=D&&D.value):T=g[x],A=op(d?x:p+(m?".":"#")+x,h.forced),!A&&T!==void 0){if(typeof k==typeof T)continue;np(k,T)}(h.sham||T&&T.sham)&&rp(k,"sham",!0),ip(g,x,k,h)}}});var dn=b(()=>{var hp=Qs(),lp=G();hp({global:!0},{globalThis:lp})});var mn=b(()=>{dn()});var Zs=b((em,yn)=>{var up=vt();yn.exports=Array.isArray||function(l){return up(l)=="Array"}});var An=b((tm,gn)=>{var xn=ie(),cp=Nt(),pp=Et(),fp=xn(xn.bind);gn.exports=function(h,l){return cp(h),l===void 0?h:pp?fp(h,l):function(){return h.apply(l,arguments)}}});var En=b((sm,Tn)=>{"use strict";var dp=G(),mp=Zs(),yp=Mt(),xp=An(),gp=dp.TypeError,Pn=function(h,l,p,d,m,A,g,x){for(var T=m,k=0,D=g?xp(g,x):!1,E,L;k0&&mp(E))L=yp(E),T=Pn(h,l,E,L,T,A-1)-1;else{if(T>=9007199254740991)throw gp("Exceed the acceptable array length");h[T]=E}T++}k++}return T};Tn.exports=Pn});var vn=b((rm,bn)=>{var Ap=Ze(),Pp=Ap("toStringTag"),Cn={};Cn[Pp]="z";bn.exports=String(Cn)==="[object z]"});var wn=b((im,Sn)=>{var Tp=G(),Ep=vn(),Cp=ae(),Rt=vt(),bp=Ze(),vp=bp("toStringTag"),Sp=Tp.Object,wp=Rt(function(){return arguments}())=="Arguments",Np=function(h,l){try{return h[l]}catch{}};Sn.exports=Ep?Rt:function(h){var l,p,d;return h===void 0?"Undefined":h===null?"Null":typeof(p=Np(l=Sp(h),vp))=="string"?p:wp?Rt(l):(d=Rt(l))=="Object"&&Cp(l.callee)?"Arguments":d}});var Ln=b((am,Fn)=>{var Ip=ie(),kp=Ae(),Nn=ae(),Dp=wn(),Fp=Qe(),Lp=Lt(),In=function(){},Op=[],kn=Fp("Reflect","construct"),er=/^\s*(?:class|function)\b/,Bp=Ip(er.exec),Mp=!er.exec(In),st=function(l){if(!Nn(l))return!1;try{return kn(In,Op,l),!0}catch{return!1}},Dn=function(l){if(!Nn(l))return!1;switch(Dp(l)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Mp||!!Bp(er,Lp(l))}catch{return!0}};Dn.sham=!0;Fn.exports=!kn||kp(function(){var h;return st(st.call)||!st(Object)||!st(function(){h=!0})||h})?Dn:st});var Rn=b((nm,Mn)=>{var Rp=G(),On=Zs(),jp=Ln(),qp=De(),Up=Ze(),_p=Up("species"),Bn=Rp.Array;Mn.exports=function(h){var l;return On(h)&&(l=h.constructor,jp(l)&&(l===Bn||On(l.prototype))?l=void 0:qp(l)&&(l=l[_p],l===null&&(l=void 0))),l===void 0?Bn:l}});var qn=b((om,jn)=>{var zp=Rn();jn.exports=function(h,l){return new(zp(h))(l===0?0:l)}});var Un=b(()=>{"use strict";var Kp=Qs(),Vp=En(),Hp=Nt(),Wp=Ns(),Gp=Mt(),Xp=qn();Kp({target:"Array",proto:!0},{flatMap:function(l){var p=Wp(this),d=Gp(p),m;return Hp(l),m=Xp(p,0),m.length=Vp(m,p,p,d,0,1,l,arguments.length>1?arguments[1]:void 0),m}})});var qf=b((um,Eo)=>{var _n,zn,Kn,Vn,Hn;function rt(h,l){return l||(l=h.slice(0)),Object.freeze(Object.defineProperties(h,{raw:{value:Object.freeze(l)}}))}mn();Un();var ir=Object.defineProperty,Jp=Object.getOwnPropertyDescriptor,ar=Object.getOwnPropertyNames,Yp=Object.prototype.hasOwnProperty,$n=(h,l)=>function(){return h&&(l=(0,h[ar(h)[0]])(h=0)),l},H=(h,l)=>function(){return l||(0,h[ar(h)[0]])((l={exports:{}}).exports,l),l.exports},$p=(h,l)=>{for(var p in l)ir(h,p,{get:l[p],enumerable:!0})},Qp=(h,l,p,d)=>{if(l&&typeof l=="object"||typeof l=="function")for(let m of ar(l))!Yp.call(h,m)&&m!==p&&ir(h,m,{get:()=>l[m],enumerable:!(d=Jp(l,m))||d.enumerable});return h},Zp=h=>Qp(ir({},"__esModule",{value:!0}),h),V=$n({""(){}}),ef=H({"src/utils/try-combinations.js"(h,l){"use strict";V();function p(){let d;for(var m=arguments.length,A=new Array(m),g=0;g{let E=D&&D.backwards;if(k===!1)return!1;let{length:L}=T,R=k;for(;R>=0&&Rrr,arch:()=>nf,cpus:()=>oo,default:()=>po,endianness:()=>to,freemem:()=>ao,getNetworkInterfaces:()=>co,hostname:()=>so,loadavg:()=>ro,networkInterfaces:()=>uo,platform:()=>of,release:()=>lo,tmpDir:()=>tr,tmpdir:()=>sr,totalmem:()=>no,type:()=>ho,uptime:()=>io});function to(){if(typeof jt>"u"){var h=new ArrayBuffer(2),l=new Uint8Array(h),p=new Uint16Array(h);if(l[0]=1,l[1]=2,p[0]===258)jt="BE";else if(p[0]===513)jt="LE";else throw new Error("unable to figure out endianess")}return jt}function so(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function ro(){return[]}function io(){return 0}function ao(){return Number.MAX_VALUE}function no(){return Number.MAX_VALUE}function oo(){return[]}function ho(){return"Browser"}function lo(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function uo(){}function co(){}function nf(){return"javascript"}function of(){return"browser"}function tr(){return"/tmp"}var jt,sr,rr,po,hf=$n({"node-modules-polyfills:os"(){V(),sr=tr,rr=` +`,po={EOL:rr,tmpdir:sr,tmpDir:tr,networkInterfaces:uo,getNetworkInterfaces:co,release:lo,type:ho,cpus:oo,totalmem:no,freemem:ao,uptime:io,loadavg:ro,hostname:so,endianness:to}}}),lf=H({"node-modules-polyfills-commonjs:os"(h,l){V();var p=(hf(),Zp(eo));if(p&&p.default){l.exports=p.default;for(let d in p)l.exports[d]=p[d]}else p&&(l.exports=p)}}),uf=H({"node_modules/detect-newline/index.js"(h,l){"use strict";V();var p=d=>{if(typeof d!="string")throw new TypeError("Expected a string");let m=d.match(/(?:\r?\n)/g)||[];if(m.length===0)return;let A=m.filter(x=>x===`\r +`).length,g=m.length-A;return A>g?`\r +`:` +`};l.exports=p,l.exports.graceful=d=>typeof d=="string"&&p(d)||` +`}}),cf=H({"node_modules/jest-docblock/build/index.js"(h){"use strict";V(),Object.defineProperty(h,"__esModule",{value:!0}),h.extract=R,h.parse=W,h.parseWithComments=Y,h.print=M,h.strip=F;function l(){let u=lf();return l=function(){return u},u}function p(){let u=d(uf());return p=function(){return u},u}function d(u){return u&&u.__esModule?u:{default:u}}var m=/\*\/$/,A=/^\/\*\*/,g=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,x=/(^|\s+)\/\/([^\r\n]*)/g,T=/^(\r?\n)+/,k=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,D=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,E=/(\r?\n|^) *\* ?/g,L=[];function R(u){let X=u.match(g);return X?X[0].trimLeft():""}function F(u){let X=u.match(g);return X&&X[0]?u.substring(X[0].length):u}function W(u){return Y(u).pragmas}function Y(u){let X=(0,p().default)(u)||l().EOL;u=u.replace(A,"").replace(m,"").replace(E,"$1");let se="";for(;se!==u;)se=u,u=u.replace(k,"".concat(X,"$1 $2").concat(X));u=u.replace(T,"").trimRight();let J=Object.create(null),Oe=u.replace(D,"").replace(T,"").trimRight(),$;for(;$=D.exec(u);){let z=$[2].replace(x,"");typeof J[$[1]]=="string"||Array.isArray(J[$[1]])?J[$[1]]=L.concat(J[$[1]],z):J[$[1]]=z}return{comments:Oe,pragmas:J}}function M(u){let{comments:X="",pragmas:se={}}=u,J=(0,p().default)(X)||l().EOL,Oe="/**",$=" *",z=" */",O=Object.keys(se),C=O.map(Z=>j(Z,se[Z])).reduce((Z,he)=>Z.concat(he),[]).map(Z=>$+" "+Z+J).join("");if(!X){if(O.length===0)return"";if(O.length===1&&!Array.isArray(se[O[0]])){let Z=se[O[0]];return"".concat(Oe," ").concat(j(O[0],Z)[0]).concat(z)}}let Ve=X.split(J).map(Z=>"".concat($," ").concat(Z)).join(J)+J;return Oe+J+(X?Ve:"")+(X&&O.length?$+J:"")+C+z}function j(u,X){return L.concat(X).map(se=>"@".concat(u," ").concat(se).trim())}}}),pf=H({"src/common/end-of-line.js"(h,l){"use strict";V();function p(g){let x=g.indexOf("\r");return x>=0?g.charAt(x+1)===` +`?"crlf":"cr":"lf"}function d(g){switch(g){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function m(g,x){let T;switch(x){case` +`:T=/\n/g;break;case"\r":T=/\r/g;break;case`\r +`:T=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(x),"."))}let k=g.match(T);return k?k.length:0}function A(g){return g.replace(/\r\n?/g,` +`)}l.exports={guessEndOfLine:p,convertEndOfLineToChars:d,countEndOfLineChars:m,normalizeEndOfLine:A}}}),ff=H({"src/language-js/pragma.js"(h,l){"use strict";V();var{parseWithComments:p,strip:d,extract:m,print:A}=cf(),{normalizeEndOfLine:g}=pf(),x=Qn();function T(E){let L=x(E);L&&(E=E.slice(L.length+1));let R=m(E),{pragmas:F,comments:W}=p(R);return{shebang:L,text:E,pragmas:F,comments:W}}function k(E){let L=Object.keys(T(E).pragmas);return L.includes("prettier")||L.includes("format")}function D(E){let{shebang:L,text:R,pragmas:F,comments:W}=T(E),Y=d(R),M=A({pragmas:Object.assign({format:""},F),comments:W.trimStart()});return(L?"".concat(L,` +`):"")+g(M)+(Y.startsWith(` +`)?` +`:` + +`)+Y}l.exports={hasPragma:k,insertPragma:D}}}),fo=H({"src/utils/is-non-empty-array.js"(h,l){"use strict";V();function p(d){return Array.isArray(d)&&d.length>0}l.exports=p}}),mo=H({"src/language-js/loc.js"(h,l){"use strict";V();var p=fo();function d(T,k){let{ignoreDecorators:D}=k||{};if(!D){let E=T.declaration&&T.declaration.decorators||T.decorators;if(p(E))return d(E[0])}return T.range?T.range[0]:T.start}function m(T){return T.range?T.range[1]:T.end}function A(T,k){let D=d(T);return Number.isInteger(D)&&D===d(k)}function g(T,k){let D=m(T);return Number.isInteger(D)&&D===m(k)}function x(T,k){return A(T,k)&&g(T,k)}l.exports={locStart:d,locEnd:m,hasSameLocStart:A,hasSameLoc:x}}}),yo=H({"src/language-js/parse/utils/create-parser.js"(h,l){"use strict";V();var{hasPragma:p}=ff(),{locStart:d,locEnd:m}=mo();function A(g){return g=typeof g=="function"?{parse:g}:g,Object.assign({astFormat:"estree",hasPragma:p,locStart:d,locEnd:m},g)}l.exports=A}}),nr=H({"src/common/parser-create-error.js"(h,l){"use strict";V();function p(d,m){let A=new SyntaxError(d+" ("+m.start.line+":"+m.start.column+")");return A.loc=m,A}l.exports=p}}),xo=H({"src/language-js/parse/utils/create-babel-parse-error.js"(h,l){"use strict";V();var p=nr();function d(m){let{message:A,loc:g}=m;return p(A.replace(/ \(.*\)/,""),{start:{line:g?g.line:0,column:g?g.column+1:0}})}l.exports=d}}),df=H({"src/language-js/utils/is-ts-keyword-type.js"(h,l){"use strict";V();function p(d){let{type:m}=d;return m.startsWith("TS")&&m.endsWith("Keyword")}l.exports=p}}),mf=H({"src/language-js/utils/is-block-comment.js"(h,l){"use strict";V();var p=new Set(["Block","CommentBlock","MultiLine"]),d=m=>p.has(m==null?void 0:m.type);l.exports=d}}),yf=H({"src/language-js/utils/is-type-cast-comment.js"(h,l){"use strict";V();var p=mf();function d(m){return p(m)&&m.value[0]==="*"&&/@type\b/.test(m.value)}l.exports=d}}),xf=H({"src/utils/get-last.js"(h,l){"use strict";V();var p=d=>d[d.length-1];l.exports=p}}),go=H({"src/language-js/parse/postprocess/visit-node.js"(h,l){"use strict";V();function p(d,m){if(Array.isArray(d)){for(let A=0;A{let R=k.get(L);return!R||!E.includes(R)}))&&d(T,"Leading decorators must be attached to a class declaration")}function A(x,T){x.kind!==167||x.modifiers&&!x.modifiers.some(E=>E.kind===126)||x.initializer&&T.value===null&&d(T,"Abstract property cannot have an initializer")}function g(x,T){let{esTreeNodeToTSNodeMap:k,tsNodeToESTreeNodeMap:D}=T.tsParseResult;p(x,E=>{let L=k.get(E);if(!L)return;let R=D.get(L);R===E&&(m(L,R,D),A(L,R))})}l.exports={throwErrorForInvalidNodes:g}}}),Af=H({"src/language-js/parse/postprocess/index.js"(h,l){"use strict";V();var{locStart:p,locEnd:d}=mo(),m=df(),A=yf(),g=xf(),x=go(),{throwErrorForInvalidNodes:T}=gf(),k=Ao();function D(F,W){if(W.parser==="typescript"&&/@|abstract/.test(W.originalText)&&T(F,W),W.parser!=="typescript"&&W.parser!=="flow"&&W.parser!=="acorn"&&W.parser!=="espree"&&W.parser!=="meriyah"){let M=new Set;F=x(F,j=>{j.leadingComments&&j.leadingComments.some(A)&&M.add(p(j))}),F=x(F,j=>{if(j.type==="ParenthesizedExpression"){let{expression:u}=j;if(u.type==="TypeCastExpression")return u.range=j.range,u;let X=p(j);if(!M.has(X))return u.extra=Object.assign(Object.assign({},u.extra),{},{parenthesized:!0}),u}})}return F=x(F,M=>{switch(M.type){case"ChainExpression":return E(M.expression);case"LogicalExpression":{if(L(M))return R(M);break}case"VariableDeclaration":{let j=g(M.declarations);j&&j.init&&Y(M,j);break}case"TSParenthesizedType":return m(M.typeAnnotation)||M.typeAnnotation.type==="TSThisType"||(M.typeAnnotation.range=[p(M),d(M)]),M.typeAnnotation;case"TSTypeParameter":if(typeof M.name=="string"){let j=p(M);M.name={type:"Identifier",name:M.name,range:[j,j+M.name.length]}}break;case"ObjectExpression":if(W.parser==="typescript"){let j=M.properties.find(u=>u.type==="Property"&&u.value.type==="TSEmptyBodyFunctionExpression");j&&k(j.value,"Unexpected token.")}break;case"SequenceExpression":{let j=g(M.expressions);M.range=[p(M),Math.min(d(j),d(M))];break}case"TopicReference":W.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:j}=M;if(W.parser==="meriyah"&&j&&j.type==="Identifier"){let u=W.originalText.slice(p(j),d(j));(u.startsWith('"')||u.startsWith("'"))&&(M.exported=Object.assign(Object.assign({},M.exported),{},{type:"Literal",value:M.exported.name,raw:u}))}break}}}),F;function Y(M,j){W.originalText[d(j)]!==";"&&(M.range=[p(M),d(j)])}}function E(F){switch(F.type){case"CallExpression":F.type="OptionalCallExpression",F.callee=E(F.callee);break;case"MemberExpression":F.type="OptionalMemberExpression",F.object=E(F.object);break;case"TSNonNullExpression":F.expression=E(F.expression);break}return F}function L(F){return F.type==="LogicalExpression"&&F.right.type==="LogicalExpression"&&F.operator===F.right.operator}function R(F){return L(F)?R({type:"LogicalExpression",operator:F.operator,left:R({type:"LogicalExpression",operator:F.operator,left:F.left,right:F.right.left,range:[p(F.left),d(F.right.left)]}),right:F.right.right,range:[p(F),d(F)]}):F}l.exports=D}}),Po=H({"node_modules/@babel/parser/lib/index.js"(h){"use strict";V(),Object.defineProperty(h,"__esModule",{value:!0});function l(t,e){if(t==null)return{};var s={},r=Object.keys(t),i,a;for(a=0;a=0)&&(s[i]=t[i]);return s}var p=class{constructor(t,e,s){this.line=void 0,this.column=void 0,this.index=void 0,this.line=t,this.column=e,this.index=s}},d=class{constructor(t,e){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=t,this.end=e}};function m(t,e){let{line:s,column:r,index:i}=t;return new p(s,r+e,i+e)}var A=Object.freeze({SyntaxError:"BABEL_PARSER_SYNTAX_ERROR",SourceTypeModuleError:"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"}),g=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t.length-1;return{get(){return t.reduce((s,r)=>s[r],this)},set(s){t.reduce((r,i,a)=>a===e?r[i]=s:r[i],this)}}},x=(t,e,s)=>Object.keys(s).map(r=>[r,s[r]]).filter(r=>{let[,i]=r;return!!i}).map(r=>{let[i,a]=r;return[i,typeof a=="function"?{value:a,enumerable:!1}:typeof a.reflect=="string"?Object.assign({},a,g(a.reflect.split("."))):a]}).reduce((r,i)=>{let[a,n]=i;return Object.defineProperty(r,a,Object.assign({configurable:!0},n))},Object.assign(new t,e)),T=t=>({ImportMetaOutsideModule:t(`import.meta may appear only with 'sourceType: "module"'`,{code:A.SourceTypeModuleError}),ImportOutsideModule:t(`'import' and 'export' may appear only with 'sourceType: "module"'`,{code:A.SourceTypeModuleError})}),k={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},D=t=>{let{type:e,prefix:s}=t;return e==="UpdateExpression"?k.UpdateExpression[String(s)]:k[e]},E=t=>({AccessorIsGenerator:t(e=>{let{kind:s}=e;return"A ".concat(s,"ter cannot be a generator.")}),ArgumentsInClass:t("'arguments' is only allowed in functions and class methods."),AsyncFunctionInSingleStatementContext:t("Async functions can only be declared at the top level or inside a block."),AwaitBindingIdentifier:t("Can not use 'await' as identifier inside an async function."),AwaitBindingIdentifierInStaticBlock:t("Can not use 'await' as identifier inside a static block."),AwaitExpressionFormalParameter:t("'await' is not allowed in async function parameters."),AwaitNotInAsyncContext:t("'await' is only allowed within async functions and at the top levels of modules."),AwaitNotInAsyncFunction:t("'await' is only allowed within async functions."),BadGetterArity:t("A 'get' accesor must not have any formal parameters."),BadSetterArity:t("A 'set' accesor must have exactly one formal parameter."),BadSetterRestParameter:t("A 'set' accesor function argument must not be a rest parameter."),ConstructorClassField:t("Classes may not have a field named 'constructor'."),ConstructorClassPrivateField:t("Classes may not have a private field named '#constructor'."),ConstructorIsAccessor:t("Class constructor may not be an accessor."),ConstructorIsAsync:t("Constructor can't be an async function."),ConstructorIsGenerator:t("Constructor can't be a generator."),DeclarationMissingInitializer:t(e=>{let{kind:s}=e;return"Missing initializer in ".concat(s," declaration.")}),DecoratorBeforeExport:t("Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax."),DecoratorConstructor:t("Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?"),DecoratorExportClass:t("Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead."),DecoratorSemicolon:t("Decorators must not be followed by a semicolon."),DecoratorStaticBlock:t("Decorators can't be used with a static block."),DeletePrivateField:t("Deleting a private field is not allowed."),DestructureNamedImport:t("ES2015 named imports do not destructure. Use another statement for destructuring after the import."),DuplicateConstructor:t("Duplicate constructor in the same class."),DuplicateDefaultExport:t("Only one default export allowed per module."),DuplicateExport:t(e=>{let{exportName:s}=e;return"`".concat(s,"` has already been exported. Exported identifiers must be unique.")}),DuplicateProto:t("Redefinition of __proto__ property."),DuplicateRegExpFlags:t("Duplicate regular expression flag."),ElementAfterRest:t("Rest element must be last element."),EscapedCharNotAnIdentifier:t("Invalid Unicode escape."),ExportBindingIsString:t(e=>{let{localName:s,exportName:r}=e;return"A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '".concat(s,"' as '").concat(r,"' } from 'some-module'`?")}),ExportDefaultFromAsIdentifier:t("'from' is not allowed as an identifier after 'export default'."),ForInOfLoopInitializer:t(e=>{let{type:s}=e;return"'".concat(s==="ForInStatement"?"for-in":"for-of","' loop variable declaration may not have an initializer.")}),ForOfAsync:t("The left-hand side of a for-of loop may not be 'async'."),ForOfLet:t("The left-hand side of a for-of loop may not start with 'let'."),GeneratorInSingleStatementContext:t("Generators can only be declared at the top level or inside a block."),IllegalBreakContinue:t(e=>{let{type:s}=e;return"Unsyntactic ".concat(s==="BreakStatement"?"break":"continue",".")}),IllegalLanguageModeDirective:t("Illegal 'use strict' directive in function with non-simple parameter list."),IllegalReturn:t("'return' outside of function."),ImportBindingIsString:t(e=>{let{importName:s}=e;return'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'.concat(s,'" as foo }`?')}),ImportCallArgumentTrailingComma:t("Trailing comma is disallowed inside import(...) arguments."),ImportCallArity:t(e=>{let{maxArgumentCount:s}=e;return"`import()` requires exactly ".concat(s===1?"one argument":"one or two arguments",".")}),ImportCallNotNewExpression:t("Cannot use new with import(...)."),ImportCallSpreadArgument:t("`...` is not allowed in `import()`."),IncompatibleRegExpUVFlags:t("The 'u' and 'v' regular expression flags cannot be enabled at the same time."),InvalidBigIntLiteral:t("Invalid BigIntLiteral."),InvalidCodePoint:t("Code point out of bounds."),InvalidCoverInitializedName:t("Invalid shorthand property initializer."),InvalidDecimal:t("Invalid decimal."),InvalidDigit:t(e=>{let{radix:s}=e;return"Expected number in radix ".concat(s,".")}),InvalidEscapeSequence:t("Bad character escape sequence."),InvalidEscapeSequenceTemplate:t("Invalid escape sequence in template."),InvalidEscapedReservedWord:t(e=>{let{reservedWord:s}=e;return"Escape sequence in keyword ".concat(s,".")}),InvalidIdentifier:t(e=>{let{identifierName:s}=e;return"Invalid identifier ".concat(s,".")}),InvalidLhs:t(e=>{let{ancestor:s}=e;return"Invalid left-hand side in ".concat(D(s),".")}),InvalidLhsBinding:t(e=>{let{ancestor:s}=e;return"Binding invalid left-hand side in ".concat(D(s),".")}),InvalidNumber:t("Invalid number."),InvalidOrMissingExponent:t("Floating-point numbers require a valid exponent after the 'e'."),InvalidOrUnexpectedToken:t(e=>{let{unexpected:s}=e;return"Unexpected character '".concat(s,"'.")}),InvalidParenthesizedAssignment:t("Invalid parenthesized assignment pattern."),InvalidPrivateFieldResolution:t(e=>{let{identifierName:s}=e;return"Private name #".concat(s," is not defined.")}),InvalidPropertyBindingPattern:t("Binding member expression."),InvalidRecordProperty:t("Only properties and spread elements are allowed in record definitions."),InvalidRestAssignmentPattern:t("Invalid rest operator's argument."),LabelRedeclaration:t(e=>{let{labelName:s}=e;return"Label '".concat(s,"' is already declared.")}),LetInLexicalBinding:t("'let' is not allowed to be used as a name in 'let' or 'const' declarations."),LineTerminatorBeforeArrow:t("No line break is allowed before '=>'."),MalformedRegExpFlags:t("Invalid regular expression flag."),MissingClassName:t("A class name is required."),MissingEqInAssignment:t("Only '=' operator can be used for specifying default value."),MissingSemicolon:t("Missing semicolon."),MissingPlugin:t(e=>{let{missingPlugin:s}=e;return"This experimental syntax requires enabling the parser plugin: ".concat(s.map(r=>JSON.stringify(r)).join(", "),".")}),MissingOneOfPlugins:t(e=>{let{missingPlugin:s}=e;return"This experimental syntax requires enabling one of the following parser plugin(s): ".concat(s.map(r=>JSON.stringify(r)).join(", "),".")}),MissingUnicodeEscape:t("Expecting Unicode escape sequence \\uXXXX."),MixingCoalesceWithLogical:t("Nullish coalescing operator(??) requires parens when mixing with logical operators."),ModuleAttributeDifferentFromType:t("The only accepted module attribute is `type`."),ModuleAttributeInvalidValue:t("Only string literals are allowed as module attribute values."),ModuleAttributesWithDuplicateKeys:t(e=>{let{key:s}=e;return'Duplicate key "'.concat(s,'" is not allowed in module attributes.')}),ModuleExportNameHasLoneSurrogate:t(e=>{let{surrogateCharCode:s}=e;return"An export name cannot include a lone surrogate, found '\\u".concat(s.toString(16),"'.")}),ModuleExportUndefined:t(e=>{let{localName:s}=e;return"Export '".concat(s,"' is not defined.")}),MultipleDefaultsInSwitch:t("Multiple default clauses."),NewlineAfterThrow:t("Illegal newline after throw."),NoCatchOrFinally:t("Missing catch or finally clause."),NumberIdentifier:t("Identifier directly after number."),NumericSeparatorInEscapeSequence:t("Numeric separators are not allowed inside unicode escape sequences or hex escape sequences."),ObsoleteAwaitStar:t("'await*' has been removed from the async functions proposal. Use Promise.all() instead."),OptionalChainingNoNew:t("Constructors in/after an Optional Chain are not allowed."),OptionalChainingNoTemplate:t("Tagged Template Literals are not allowed in optionalChain."),OverrideOnConstructor:t("'override' modifier cannot appear on a constructor declaration."),ParamDupe:t("Argument name clash."),PatternHasAccessor:t("Object pattern can't contain getter or setter."),PatternHasMethod:t("Object pattern can't contain methods."),PrivateInExpectedIn:t(e=>{let{identifierName:s}=e;return"Private names are only allowed in property accesses (`obj.#".concat(s,"`) or in `in` expressions (`#").concat(s," in obj`).")}),PrivateNameRedeclaration:t(e=>{let{identifierName:s}=e;return"Duplicate private name #".concat(s,".")}),RecordExpressionBarIncorrectEndSyntaxType:t("Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),RecordExpressionBarIncorrectStartSyntaxType:t("Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),RecordExpressionHashIncorrectStartSyntaxType:t("Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'."),RecordNoProto:t("'__proto__' is not allowed in Record expressions."),RestTrailingComma:t("Unexpected trailing comma after rest element."),SloppyFunction:t("In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement."),StaticPrototype:t("Classes may not have static property named prototype."),SuperNotAllowed:t("`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?"),SuperPrivateField:t("Private fields can't be accessed on super."),TrailingDecorator:t("Decorators must be attached to a class element."),TupleExpressionBarIncorrectEndSyntaxType:t("Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),TupleExpressionBarIncorrectStartSyntaxType:t("Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'."),TupleExpressionHashIncorrectStartSyntaxType:t("Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'."),UnexpectedArgumentPlaceholder:t("Unexpected argument placeholder."),UnexpectedAwaitAfterPipelineBody:t('Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.'),UnexpectedDigitAfterHash:t("Unexpected digit after hash token."),UnexpectedImportExport:t("'import' and 'export' may only appear at the top level."),UnexpectedKeyword:t(e=>{let{keyword:s}=e;return"Unexpected keyword '".concat(s,"'.")}),UnexpectedLeadingDecorator:t("Leading decorators must be attached to a class declaration."),UnexpectedLexicalDeclaration:t("Lexical declaration cannot appear in a single-statement context."),UnexpectedNewTarget:t("`new.target` can only be used in functions or class properties."),UnexpectedNumericSeparator:t("A numeric separator is only allowed between two digits."),UnexpectedPrivateField:t("Unexpected private name."),UnexpectedReservedWord:t(e=>{let{reservedWord:s}=e;return"Unexpected reserved word '".concat(s,"'.")}),UnexpectedSuper:t("'super' is only allowed in object methods and classes."),UnexpectedToken:t(e=>{let{expected:s,unexpected:r}=e;return"Unexpected token".concat(r?" '".concat(r,"'."):"").concat(s?', expected "'.concat(s,'"'):"")}),UnexpectedTokenUnaryExponentiation:t("Illegal expression. Wrap left hand side or entire exponentiation in parentheses."),UnsupportedBind:t("Binding should be performed on object property."),UnsupportedDecoratorExport:t("A decorated export must export a class declaration."),UnsupportedDefaultExport:t("Only expressions, functions or classes are allowed as the `default` export."),UnsupportedImport:t("`import` can only be used in `import()` or `import.meta`."),UnsupportedMetaProperty:t(e=>{let{target:s,onlyValidPropertyName:r}=e;return"The only valid meta property for ".concat(s," is ").concat(s,".").concat(r,".")}),UnsupportedParameterDecorator:t("Decorators cannot be used to decorate parameters."),UnsupportedPropertyDecorator:t("Decorators cannot be used to decorate object literal properties."),UnsupportedSuper:t("'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])."),UnterminatedComment:t("Unterminated comment."),UnterminatedRegExp:t("Unterminated regular expression."),UnterminatedString:t("Unterminated string constant."),UnterminatedTemplate:t("Unterminated template."),VarRedeclaration:t(e=>{let{identifierName:s}=e;return"Identifier '".concat(s,"' has already been declared.")}),YieldBindingIdentifier:t("Can not use 'yield' as identifier inside a generator."),YieldInParameter:t("Yield expression is not allowed in formal parameters."),ZeroDigitNumericSeparator:t("Numeric separator can not be used after leading 0.")}),L=t=>({StrictDelete:t("Deleting local variable in strict mode."),StrictEvalArguments:t(e=>{let{referenceName:s}=e;return"Assigning to '".concat(s,"' in strict mode.")}),StrictEvalArgumentsBinding:t(e=>{let{bindingName:s}=e;return"Binding '".concat(s,"' in strict mode.")}),StrictFunction:t("In strict mode code, functions can only be declared at top level or inside a block."),StrictNumericEscape:t("The only valid numeric escape in strict mode is '\\0'."),StrictOctalLiteral:t("Legacy octal literals are not allowed in strict mode."),StrictWith:t("'with' in strict mode.")}),R=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]),F=t=>({PipeBodyIsTighter:t("Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence."),PipeTopicRequiresHackPipes:t('Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'),PipeTopicUnbound:t("Topic reference is unbound; it must be inside a pipe body."),PipeTopicUnconfiguredToken:t(e=>{let{token:s}=e;return"Invalid topic token ".concat(s,". In order to use ").concat(s,' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "').concat(s,'" }.')}),PipeTopicUnused:t("Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once."),PipeUnparenthesizedBody:t(e=>{let{type:s}=e;return"Hack-style pipe body cannot be an unparenthesized ".concat(D({type:s}),"; please wrap it in parentheses.")}),PipelineBodyNoArrow:t('Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.'),PipelineBodySequenceExpression:t("Pipeline body may not be a comma-separated sequence expression."),PipelineHeadSequenceExpression:t("Pipeline head should not be a comma-separated sequence expression."),PipelineTopicUnused:t("Pipeline is in topic style but does not use topic reference."),PrimaryTopicNotAllowed:t("Topic reference was used in a lexical context without topic binding."),PrimaryTopicRequiresSmartPipeline:t('Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.')}),W=["toMessage"];function Y(t){let{toMessage:e}=t,s=l(t,W);return function r(i){let{loc:a,details:n}=i;return x(SyntaxError,Object.assign({},s,{loc:a}),{clone(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o.loc||{};return r({loc:new p("line"in c?c.line:this.loc.line,"column"in c?c.column:this.loc.column,"index"in c?c.index:this.loc.index),details:Object.assign({},this.details,o.details)})},details:{value:n,enumerable:!1},message:{get(){return"".concat(e(this.details)," (").concat(this.loc.line,":").concat(this.loc.column,")")},set(o){Object.defineProperty(this,"message",{value:o})}},pos:{reflect:"loc.index",enumerable:!0},missingPlugin:"missingPlugin"in n&&{reflect:"details.missingPlugin",enumerable:!0}})}}function M(t,e){return Object.assign({toMessage:typeof t=="string"?()=>t:t},e)}function j(t,e){if(Array.isArray(t))return i=>j(i,t[0]);let s=t(M),r={};for(let i of Object.keys(s))r[i]=Y(Object.assign({code:A.SyntaxError,reasonCode:i},e?{syntaxPlugin:e}:{},s[i]));return r}var u=Object.assign({},j(T),j(E),j(L),j(_n||(_n=rt(["pipelineOperator"])))(F)),{defineProperty:X}=Object,se=(t,e)=>X(t,e,{enumerable:!1,value:t[e]});function J(t){return se(t.loc.start,"index"),se(t.loc.end,"index"),t}var Oe=t=>class extends t{parse(){let e=J(super.parse());return this.options.tokens&&(e.tokens=e.tokens.map(J)),e}parseRegExpLiteral(e){let{pattern:s,flags:r}=e,i=null;try{i=new RegExp(s,r)}catch{}let a=this.estreeParseLiteral(i);return a.regex={pattern:s,flags:r},a}parseBigIntLiteral(e){let s;try{s=BigInt(e)}catch{s=null}let r=this.estreeParseLiteral(s);return r.bigint=String(r.value||e),r}parseDecimalLiteral(e){let r=this.estreeParseLiteral(null);return r.decimal=String(r.value||e),r}estreeParseLiteral(e){return this.parseLiteral(e,"Literal")}parseStringLiteral(e){return this.estreeParseLiteral(e)}parseNumericLiteral(e){return this.estreeParseLiteral(e)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(e){return this.estreeParseLiteral(e)}directiveToStmt(e){let s=e.value,r=this.startNodeAt(e.start,e.loc.start),i=this.startNodeAt(s.start,s.loc.start);return i.value=s.extra.expressionValue,i.raw=s.extra.raw,r.expression=this.finishNodeAt(i,"Literal",s.loc.end),r.directive=s.extra.raw.slice(1,-1),this.finishNodeAt(r,"ExpressionStatement",e.loc.end)}initFunction(e,s){super.initFunction(e,s),e.expression=!1}checkDeclaration(e){e!=null&&this.isObjectProperty(e)?this.checkDeclaration(e.value):super.checkDeclaration(e)}getObjectOrClassMethodParams(e){return e.value.params}isValidDirective(e){var s;return e.type==="ExpressionStatement"&&e.expression.type==="Literal"&&typeof e.expression.value=="string"&&!((s=e.expression.extra)!=null&&s.parenthesized)}parseBlockBody(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;ithis.directiveToStmt(n));e.body=a.concat(e.body),delete e.directives}pushClassMethod(e,s,r,i,a,n){this.parseMethod(s,r,i,a,n,"ClassMethod",!0),s.typeParameters&&(s.value.typeParameters=s.typeParameters,delete s.typeParameters),e.body.push(s)}parsePrivateName(){let e=super.parsePrivateName();return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(e):e}convertPrivateNameToPrivateIdentifier(e){let s=super.getPrivateNameSV(e);return e=e,delete e.id,e.name=s,e.type="PrivateIdentifier",e}isPrivateName(e){return this.getPluginOption("estree","classFeatures")?e.type==="PrivateIdentifier":super.isPrivateName(e)}getPrivateNameSV(e){return this.getPluginOption("estree","classFeatures")?e.name:super.getPrivateNameSV(e)}parseLiteral(e,s){let r=super.parseLiteral(e,s);return r.raw=r.extra.raw,delete r.extra,r}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;super.parseFunctionBody(e,s,r),e.expression=e.body.type!=="BlockStatement"}parseMethod(e,s,r,i,a,n){let o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1,c=this.startNode();return c.kind=e.kind,c=super.parseMethod(c,s,r,i,a,n,o),c.type="FunctionExpression",delete c.kind,e.value=c,n==="ClassPrivateMethod"&&(e.computed=!1),n="MethodDefinition",this.finishNode(e,n)}parseClassProperty(){let e=super.parseClassProperty(...arguments);return this.getPluginOption("estree","classFeatures")&&(e.type="PropertyDefinition"),e}parseClassPrivateProperty(){let e=super.parseClassPrivateProperty(...arguments);return this.getPluginOption("estree","classFeatures")&&(e.type="PropertyDefinition",e.computed=!1),e}parseObjectMethod(e,s,r,i,a){let n=super.parseObjectMethod(e,s,r,i,a);return n&&(n.type="Property",n.kind==="method"&&(n.kind="init"),n.shorthand=!1),n}parseObjectProperty(e,s,r,i,a){let n=super.parseObjectProperty(e,s,r,i,a);return n&&(n.kind="init",n.type="Property"),n}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:!1;if(e!=null&&this.isObjectProperty(e)){let{key:r,value:i}=e;this.isPrivateName(r)&&this.classScope.usePrivateName(this.getPrivateNameSV(r),r.loc.start),this.toAssignable(i,s)}else super.toAssignable(e,s)}toAssignableObjectExpressionProp(e){e.kind==="get"||e.kind==="set"?this.raise(u.PatternHasAccessor,{at:e.key}):e.method?this.raise(u.PatternHasMethod,{at:e.key}):super.toAssignableObjectExpressionProp(...arguments)}finishCallExpression(e,s){if(super.finishCallExpression(e,s),e.callee.type==="Import"){if(e.type="ImportExpression",e.source=e.arguments[0],this.hasPlugin("importAssertions")){var r;e.attributes=(r=e.arguments[1])!=null?r:null}delete e.arguments,delete e.callee}return e}toReferencedArguments(e){e.type!=="ImportExpression"&&super.toReferencedArguments(e)}parseExport(e){switch(super.parseExport(e),e.type){case"ExportAllDeclaration":e.exported=null;break;case"ExportNamedDeclaration":e.specifiers.length===1&&e.specifiers[0].type==="ExportNamespaceSpecifier"&&(e.type="ExportAllDeclaration",e.exported=e.specifiers[0].exported,delete e.specifiers);break}return e}parseSubscript(e,s,r,i,a){let n=super.parseSubscript(e,s,r,i,a);if(a.optionalChainMember){if((n.type==="OptionalMemberExpression"||n.type==="OptionalCallExpression")&&(n.type=n.type.substring(8)),a.stop){let o=this.startNodeAtNode(n);return o.expression=n,this.finishNode(o,"ChainExpression")}}else(n.type==="MemberExpression"||n.type==="CallExpression")&&(n.optional=!1);return n}hasPropertyAsPrivateName(e){return e.type==="ChainExpression"&&(e=e.expression),super.hasPropertyAsPrivateName(e)}isOptionalChain(e){return e.type==="ChainExpression"}isObjectProperty(e){return e.type==="Property"&&e.kind==="init"&&!e.method}isObjectMethod(e){return e.method||e.kind==="get"||e.kind==="set"}finishNodeAt(e,s,r){return J(super.finishNodeAt(e,s,r))}resetEndLocation(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;super.resetEndLocation(e,s),J(e)}},$=class{constructor(t,e){this.token=void 0,this.preserveSpace=void 0,this.token=t,this.preserveSpace=!!e}},z={brace:new $("{"),j_oTag:new $("...",!0)};z.template=new $("`",!0);var O=!0,C=!0,Ve=!0,Z=!0,he=!0,Co=!0,or=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.rightAssociative=!!e.rightAssociative,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop!=null?e.binop:null,this.updateContext=null}},qt=new Map;function q(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.keyword=t;let s=w(t,e);return qt.set(t,s),s}function te(t,e){return w(t,{beforeExpr:O,binop:e})}var He=-1,ce=[],Ut=[],it=[],_t=[],zt=[],Kt=[];function w(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++He,Ut.push(t),it.push((s=e.binop)!=null?s:-1),_t.push((r=e.beforeExpr)!=null?r:!1),zt.push((i=e.startsExpr)!=null?i:!1),Kt.push((a=e.prefix)!=null?a:!1),ce.push(new or(t,e)),He}function U(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++He,qt.set(t,He),Ut.push(t),it.push((s=e.binop)!=null?s:-1),_t.push((r=e.beforeExpr)!=null?r:!1),zt.push((i=e.startsExpr)!=null?i:!1),Kt.push((a=e.prefix)!=null?a:!1),ce.push(new or("name",e)),He}var bo={bracketL:w("[",{beforeExpr:O,startsExpr:C}),bracketHashL:w("#[",{beforeExpr:O,startsExpr:C}),bracketBarL:w("[|",{beforeExpr:O,startsExpr:C}),bracketR:w("]"),bracketBarR:w("|]"),braceL:w("{",{beforeExpr:O,startsExpr:C}),braceBarL:w("{|",{beforeExpr:O,startsExpr:C}),braceHashL:w("#{",{beforeExpr:O,startsExpr:C}),braceR:w("}"),braceBarR:w("|}"),parenL:w("(",{beforeExpr:O,startsExpr:C}),parenR:w(")"),comma:w(",",{beforeExpr:O}),semi:w(";",{beforeExpr:O}),colon:w(":",{beforeExpr:O}),doubleColon:w("::",{beforeExpr:O}),dot:w("."),question:w("?",{beforeExpr:O}),questionDot:w("?."),arrow:w("=>",{beforeExpr:O}),template:w("template"),ellipsis:w("...",{beforeExpr:O}),backQuote:w("`",{startsExpr:C}),dollarBraceL:w("${",{beforeExpr:O,startsExpr:C}),templateTail:w("...`",{startsExpr:C}),templateNonTail:w("...${",{beforeExpr:O,startsExpr:C}),at:w("@"),hash:w("#",{startsExpr:C}),interpreterDirective:w("#!..."),eq:w("=",{beforeExpr:O,isAssign:Z}),assign:w("_=",{beforeExpr:O,isAssign:Z}),slashAssign:w("_=",{beforeExpr:O,isAssign:Z}),xorAssign:w("_=",{beforeExpr:O,isAssign:Z}),moduloAssign:w("_=",{beforeExpr:O,isAssign:Z}),incDec:w("++/--",{prefix:he,postfix:Co,startsExpr:C}),bang:w("!",{beforeExpr:O,prefix:he,startsExpr:C}),tilde:w("~",{beforeExpr:O,prefix:he,startsExpr:C}),doubleCaret:w("^^",{startsExpr:C}),doubleAt:w("@@",{startsExpr:C}),pipeline:te("|>",0),nullishCoalescing:te("??",1),logicalOR:te("||",1),logicalAND:te("&&",2),bitwiseOR:te("|",3),bitwiseXOR:te("^",4),bitwiseAND:te("&",5),equality:te("==/!=/===/!==",6),lt:te("/<=/>=",7),gt:te("/<=/>=",7),relational:te("/<=/>=",7),bitShift:te("<>/>>>",8),bitShiftL:te("<>/>>>",8),bitShiftR:te("<>/>>>",8),plusMin:w("+/-",{beforeExpr:O,binop:9,prefix:he,startsExpr:C}),modulo:w("%",{binop:10,startsExpr:C}),star:w("*",{binop:10}),slash:te("/",10),exponent:w("**",{beforeExpr:O,binop:11,rightAssociative:!0}),_in:q("in",{beforeExpr:O,binop:7}),_instanceof:q("instanceof",{beforeExpr:O,binop:7}),_break:q("break"),_case:q("case",{beforeExpr:O}),_catch:q("catch"),_continue:q("continue"),_debugger:q("debugger"),_default:q("default",{beforeExpr:O}),_else:q("else",{beforeExpr:O}),_finally:q("finally"),_function:q("function",{startsExpr:C}),_if:q("if"),_return:q("return",{beforeExpr:O}),_switch:q("switch"),_throw:q("throw",{beforeExpr:O,prefix:he,startsExpr:C}),_try:q("try"),_var:q("var"),_const:q("const"),_with:q("with"),_new:q("new",{beforeExpr:O,startsExpr:C}),_this:q("this",{startsExpr:C}),_super:q("super",{startsExpr:C}),_class:q("class",{startsExpr:C}),_extends:q("extends",{beforeExpr:O}),_export:q("export"),_import:q("import",{startsExpr:C}),_null:q("null",{startsExpr:C}),_true:q("true",{startsExpr:C}),_false:q("false",{startsExpr:C}),_typeof:q("typeof",{beforeExpr:O,prefix:he,startsExpr:C}),_void:q("void",{beforeExpr:O,prefix:he,startsExpr:C}),_delete:q("delete",{beforeExpr:O,prefix:he,startsExpr:C}),_do:q("do",{isLoop:Ve,beforeExpr:O}),_for:q("for",{isLoop:Ve}),_while:q("while",{isLoop:Ve}),_as:U("as",{startsExpr:C}),_assert:U("assert",{startsExpr:C}),_async:U("async",{startsExpr:C}),_await:U("await",{startsExpr:C}),_from:U("from",{startsExpr:C}),_get:U("get",{startsExpr:C}),_let:U("let",{startsExpr:C}),_meta:U("meta",{startsExpr:C}),_of:U("of",{startsExpr:C}),_sent:U("sent",{startsExpr:C}),_set:U("set",{startsExpr:C}),_static:U("static",{startsExpr:C}),_yield:U("yield",{startsExpr:C}),_asserts:U("asserts",{startsExpr:C}),_checks:U("checks",{startsExpr:C}),_exports:U("exports",{startsExpr:C}),_global:U("global",{startsExpr:C}),_implements:U("implements",{startsExpr:C}),_intrinsic:U("intrinsic",{startsExpr:C}),_infer:U("infer",{startsExpr:C}),_is:U("is",{startsExpr:C}),_mixins:U("mixins",{startsExpr:C}),_proto:U("proto",{startsExpr:C}),_require:U("require",{startsExpr:C}),_keyof:U("keyof",{startsExpr:C}),_readonly:U("readonly",{startsExpr:C}),_unique:U("unique",{startsExpr:C}),_abstract:U("abstract",{startsExpr:C}),_declare:U("declare",{startsExpr:C}),_enum:U("enum",{startsExpr:C}),_module:U("module",{startsExpr:C}),_namespace:U("namespace",{startsExpr:C}),_interface:U("interface",{startsExpr:C}),_type:U("type",{startsExpr:C}),_opaque:U("opaque",{startsExpr:C}),name:w("name",{startsExpr:C}),string:w("string",{startsExpr:C}),num:w("num",{startsExpr:C}),bigint:w("bigint",{startsExpr:C}),decimal:w("decimal",{startsExpr:C}),regexp:w("regexp",{startsExpr:C}),privateName:w("#name",{startsExpr:C}),eof:w("eof"),jsxName:w("jsxName"),jsxText:w("jsxText",{beforeExpr:!0}),jsxTagStart:w("jsxTagStart",{startsExpr:!0}),jsxTagEnd:w("jsxTagEnd"),placeholder:w("%%",{startsExpr:!0})};function K(t){return t>=93&&t<=128}function vo(t){return t<=92}function pe(t){return t>=58&&t<=128}function hr(t){return t>=58&&t<=132}function So(t){return _t[t]}function Vt(t){return zt[t]}function wo(t){return t>=29&&t<=33}function lr(t){return t>=125&&t<=127}function No(t){return t>=90&&t<=92}function Ht(t){return t>=58&&t<=92}function Io(t){return t>=39&&t<=59}function ko(t){return t===34}function Do(t){return Kt[t]}function Fo(t){return t>=117&&t<=119}function Lo(t){return t>=120&&t<=126}function Pe(t){return Ut[t]}function at(t){return it[t]}function Oo(t){return it[t]!==-1}function Bo(t){return t===57}function nt(t){return t>=24&&t<=25}function fe(t){return ce[t]}ce[8].updateContext=t=>{t.pop()},ce[5].updateContext=ce[7].updateContext=ce[23].updateContext=t=>{t.push(z.brace)},ce[22].updateContext=t=>{t[t.length-1]===z.template?t.pop():t.push(z.template)},ce[138].updateContext=t=>{t.push(z.j_expr,z.j_oTag)};var Wt="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",ur="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F",Mo=new RegExp("["+Wt+"]"),Ro=new RegExp("["+Wt+ur+"]");Wt=ur=null;var cr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],jo=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function Gt(t,e){let s=65536;for(let r=0,i=e.length;rt)return!1;if(s+=e[r+1],s>=t)return!0}return!1}function de(t){return t<65?t===36:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&Mo.test(String.fromCharCode(t)):Gt(t,cr)}function Be(t){return t<48?t===36:t<58?!0:t<65?!1:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&Ro.test(String.fromCharCode(t)):Gt(t,cr)||Gt(t,jo)}var Xt={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},qo=new Set(Xt.keyword),Uo=new Set(Xt.strict),_o=new Set(Xt.strictBind);function pr(t,e){return e&&t==="await"||t==="enum"}function fr(t,e){return pr(t,e)||Uo.has(t)}function dr(t){return _o.has(t)}function mr(t,e){return fr(t,e)||dr(t)}function zo(t){return qo.has(t)}function Ko(t,e,s){return t===64&&e===64&&de(s)}var Vo=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function Ho(t){return Vo.has(t)}var Me=0,We=1,me=2,Jt=4,yr=8,ot=16,xr=32,Se=64,Yt=128,ht=256,lt=We|me|ht,ye=1,Re=2,gr=4,Te=8,ut=16,Ar=64,ct=128,$t=256,Qt=512,Zt=1024,es=2048,Pr=ye|Re|Te|ct,xe=ye|0|Te|0,pt=ye|0|gr|0,Tr=ye|0|ut|0,Wo=0|Re|0|ct,Go=0|Re|0|0,Er=ye|Re|Te|$t,Cr=0|Zt,we=0|Ar,Xo=ye|0|0|Ar,Jo=Er|Qt,Yo=0|Zt,$o=es,ft=4,ts=2,ss=1,rs=ts|ss,Qo=ts|ft,Zo=ss|ft,eh=ts,th=ss,is=0,sh=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(t){if(typeof t=="string")return this.plugins.has(t);{let[e,s]=t;if(!this.hasPlugin(e))return!1;let r=this.plugins.get(e);for(let i of Object.keys(s))if((r==null?void 0:r[i])!==s[i])return!1;return!0}}getPluginOption(t,e){var s;return(s=this.plugins.get(t))==null?void 0:s[e]}};function br(t,e){t.trailingComments===void 0?t.trailingComments=e:t.trailingComments.unshift(...e)}function rh(t,e){t.leadingComments===void 0?t.leadingComments=e:t.leadingComments.unshift(...e)}function Ge(t,e){t.innerComments===void 0?t.innerComments=e:t.innerComments.unshift(...e)}function Xe(t,e,s){let r=null,i=e.length;for(;r===null&&i>0;)r=e[--i];r===null||r.start>s.start?Ge(t,s.comments):br(r,s.comments)}var ih=class extends sh{addComment(t){this.filename&&(t.loc.filename=this.filename),this.state.comments.push(t)}processComment(t){let{commentStack:e}=this.state,s=e.length;if(s===0)return;let r=s-1,i=e[r];i.start===t.end&&(i.leadingNode=t,r--);let{start:a}=t;for(;r>=0;r--){let n=e[r],o=n.end;if(o>a)n.containingNode=t,this.finalizeComment(n),e.splice(r,1);else{o===a&&(n.trailingNode=t);break}}}finalizeComment(t){let{comments:e}=t;if(t.leadingNode!==null||t.trailingNode!==null)t.leadingNode!==null&&br(t.leadingNode,e),t.trailingNode!==null&&rh(t.trailingNode,e);else{let{containingNode:s,start:r}=t;if(this.input.charCodeAt(r-1)===44)switch(s.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":Xe(s,s.properties,t);break;case"CallExpression":case"OptionalCallExpression":Xe(s,s.arguments,t);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":Xe(s,s.params,t);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":Xe(s,s.elements,t);break;case"ExportNamedDeclaration":case"ImportDeclaration":Xe(s,s.specifiers,t);break;default:Ge(s,e)}else Ge(s,e)}}finalizeRemainingComments(){let{commentStack:t}=this.state;for(let e=t.length-1;e>=0;e--)this.finalizeComment(t[e]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(t){let{commentStack:e}=this.state,{length:s}=e;if(s===0)return;let r=e[s-1];r.leadingNode===t&&(r.leadingNode=null)}takeSurroundingComments(t,e,s){let{commentStack:r}=this.state,i=r.length;if(i===0)return;let a=i-1;for(;a>=0;a--){let n=r[a],o=n.end;if(n.start===s)n.leadingNode=t;else if(o===e)n.trailingNode=t;else if(o=48&&e<=57},uh=new Set([103,109,115,105,121,117,100,118]),wr={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},mt={bin:t=>t===48||t===49,oct:t=>t>=48&&t<=55,dec:t=>t>=48&&t<=57,hex:t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102},Ee=class{constructor(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new d(t.startLoc,t.endLoc)}},ch=class extends ih{constructor(t,e){super(),this.isLookahead=void 0,this.tokens=[],this.state=new Sr,this.state.init(t),this.input=e,this.length=e.length,this.isLookahead=!1}pushToken(t){this.tokens.length=this.state.tokensLength,this.tokens.push(t),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new Ee(this.state)),this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(t){return this.match(t)?(this.next(),!0):!1}match(t){return this.state.type===t}createLookaheadState(t){return{pos:t.pos,value:null,type:t.type,start:t.start,end:t.end,context:[this.curContext()],inType:t.inType,startLoc:t.startLoc,lastTokEndLoc:t.lastTokEndLoc,curLine:t.curLine,lineStart:t.lineStart,curPosition:t.curPosition}}lookahead(){let t=this.state;this.state=this.createLookaheadState(t),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;let e=this.state;return this.state=t,e}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(t){return ns.lastIndex=t,ns.test(this.input)?ns.lastIndex:t}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}codePointAtPos(t){let e=this.input.charCodeAt(t);if((e&64512)===55296&&++t{let[s,r]=e;return this.raise(s,{at:r})}),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(135);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(){let t;this.isLookahead||(t=this.state.curPosition());let e=this.state.pos,s=this.input.indexOf("*/",e+2);if(s===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()});for(this.state.pos=s+2,dt.lastIndex=e+2;dt.test(this.input)&&dt.lastIndex<=s;)++this.state.curLine,this.state.lineStart=dt.lastIndex;if(this.isLookahead)return;let r={type:"CommentBlock",value:this.input.slice(e+2,s),start:e,end:s+2,loc:new d(t,this.state.curPosition())};return this.options.tokens&&this.pushToken(r),r}skipLineComment(t){let e=this.state.pos,s;this.isLookahead||(s=this.state.curPosition());let r=this.input.charCodeAt(this.state.pos+=t);if(this.state.post)){let i=this.skipLineComment(3);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else if(s===60&&!this.inModule){let r=this.state.pos;if(this.input.charCodeAt(r+1)===33&&this.input.charCodeAt(r+2)===45&&this.input.charCodeAt(r+3)===45){let i=this.skipLineComment(4);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else break e}}if(e.length>0){let s=this.state.pos,r={start:t,end:s,comments:e,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(r)}}finishToken(t,e){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();let s=this.state.type;this.state.type=t,this.state.value=e,this.isLookahead||this.updateContext(s)}replaceToken(t){this.state.type=t,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;let t=this.state.pos+1,e=this.codePointAtPos(t);if(e>=48&&e<=57)throw this.raise(u.UnexpectedDigitAfterHash,{at:this.state.curPosition()});if(e===123||e===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")!=="hash")throw this.raise(e===123?u.RecordExpressionHashIncorrectStartSyntaxType:u.TupleExpressionHashIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,e===123?this.finishToken(7):this.finishToken(1)}else de(e)?(++this.state.pos,this.finishToken(134,this.readWord1(e))):e===92?(++this.state.pos,this.finishToken(134,this.readWord1())):this.finishOp(27,1)}readToken_dot(){let t=this.input.charCodeAt(this.state.pos+1);if(t>=48&&t<=57){this.readNumber(!0);return}t===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let t=this.input.charCodeAt(this.state.pos+1);if(t!==33)return!1;let e=this.state.pos;for(this.state.pos+=1;!Ne(t)&&++this.state.pos=48&&e<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(t){switch(t){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(u.TupleExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(u.RecordExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{let e=this.input.charCodeAt(this.state.pos+1);if(e===120||e===88){this.readRadixNumber(16);return}if(e===111||e===79){this.readRadixNumber(8);return}if(e===98||e===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(t);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(t);return;case 124:case 38:this.readToken_pipe_amp(t);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(t);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(t);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(de(t)){this.readWord(t);return}}throw this.raise(u.InvalidOrUnexpectedToken,{at:this.state.curPosition(),unexpected:String.fromCodePoint(t)})}finishOp(t,e){let s=this.input.slice(this.state.pos,this.state.pos+e);this.state.pos+=e,this.finishToken(t,s)}readRegexp(){let t=this.state.startLoc,e=this.state.start+1,s,r,{pos:i}=this.state;for(;;++i){if(i>=this.length)throw this.raise(u.UnterminatedRegExp,{at:m(t,1)});let c=this.input.charCodeAt(i);if(Ne(c))throw this.raise(u.UnterminatedRegExp,{at:m(t,1)});if(s)s=!1;else{if(c===91)r=!0;else if(c===93&&r)r=!1;else if(c===47&&!r)break;s=c===92}}let a=this.input.slice(e,i);++i;let n="",o=()=>m(t,i+2-e);for(;i3&&arguments[3]!==void 0?arguments[3]:!0,i=this.state.pos,a=t===16?wr.hex:wr.decBinOct,n=t===16?mt.hex:t===10?mt.dec:t===8?mt.oct:mt.bin,o=!1,c=0;for(let f=0,y=e==null?1/0:e;f=97?v=P-97+10:P>=65?v=P-65+10:lh(P)?v=P-48:v=1/0,v>=t)if(this.options.errorRecovery&&v<=9)v=0,this.raise(u.InvalidDigit,{at:this.state.curPosition(),radix:t});else if(s)v=0,o=!0;else break;++this.state.pos,c=c*t+v}return this.state.pos===i||e!=null&&this.state.pos-i!==e||o?null:c}readRadixNumber(t){let e=this.state.curPosition(),s=!1;this.state.pos+=2;let r=this.readInt(t);r==null&&this.raise(u.InvalidDigit,{at:m(e,2),radix:t});let i=this.input.charCodeAt(this.state.pos);if(i===110)++this.state.pos,s=!0;else if(i===109)throw this.raise(u.InvalidDecimal,{at:e});if(de(this.codePointAtPos(this.state.pos)))throw this.raise(u.NumberIdentifier,{at:this.state.curPosition()});if(s){let a=this.input.slice(e.index,this.state.pos).replace(/[_n]/g,"");this.finishToken(131,a);return}this.finishToken(130,r)}readNumber(t){let e=this.state.pos,s=this.state.curPosition(),r=!1,i=!1,a=!1,n=!1,o=!1;!t&&this.readInt(10)===null&&this.raise(u.InvalidNumber,{at:this.state.curPosition()});let c=this.state.pos-e>=2&&this.input.charCodeAt(e)===48;if(c){let v=this.input.slice(e,this.state.pos);if(this.recordStrictModeErrors(u.StrictOctalLiteral,{at:s}),!this.state.strict){let N=v.indexOf("_");N>0&&this.raise(u.ZeroDigitNumericSeparator,{at:m(s,N)})}o=c&&!/[89]/.test(v)}let f=this.input.charCodeAt(this.state.pos);if(f===46&&!o&&(++this.state.pos,this.readInt(10),r=!0,f=this.input.charCodeAt(this.state.pos)),(f===69||f===101)&&!o&&(f=this.input.charCodeAt(++this.state.pos),(f===43||f===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(u.InvalidOrMissingExponent,{at:s}),r=!0,n=!0,f=this.input.charCodeAt(this.state.pos)),f===110&&((r||c)&&this.raise(u.InvalidBigIntLiteral,{at:s}),++this.state.pos,i=!0),f===109&&(this.expectPlugin("decimal",this.state.curPosition()),(n||c)&&this.raise(u.InvalidDecimal,{at:s}),++this.state.pos,a=!0),de(this.codePointAtPos(this.state.pos)))throw this.raise(u.NumberIdentifier,{at:this.state.curPosition()});let y=this.input.slice(e,this.state.pos).replace(/[_mn]/g,"");if(i){this.finishToken(131,y);return}if(a){this.finishToken(132,y);return}let P=o?parseInt(y,8):parseFloat(y);this.finishToken(130,P)}readCodePoint(t){let e=this.input.charCodeAt(this.state.pos),s;if(e===123){if(++this.state.pos,s=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,!0,t),++this.state.pos,s!==null&&s>1114111)if(t)this.raise(u.InvalidCodePoint,{at:this.state.curPosition()});else return null}else s=this.readHexChar(4,!1,t);return s}readString(t){let e="",s=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedString,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);if(r===t)break;if(r===92)e+=this.input.slice(s,this.state.pos),e+=this.readEscapedChar(!1),s=this.state.pos;else if(r===8232||r===8233)++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;else{if(Ne(r))throw this.raise(u.UnterminatedString,{at:this.state.startLoc});++this.state.pos}}e+=this.input.slice(s,this.state.pos++),this.finishToken(129,e)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){let t="",e=this.state.pos,s=!1;for(++this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedTemplate,{at:m(this.state.startLoc,1)});let r=this.input.charCodeAt(this.state.pos);if(r===96){++this.state.pos,t+=this.input.slice(e,this.state.pos),this.finishToken(24,s?null:t);return}if(r===36&&this.input.charCodeAt(this.state.pos+1)===123){this.state.pos+=2,t+=this.input.slice(e,this.state.pos),this.finishToken(25,s?null:t);return}if(r===92){t+=this.input.slice(e,this.state.pos);let i=this.readEscapedChar(!0);i===null?s=!0:t+=i,e=this.state.pos}else if(Ne(r)){switch(t+=this.input.slice(e,this.state.pos),++this.state.pos,r){case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:t+=` +`;break;default:t+=String.fromCharCode(r);break}++this.state.curLine,this.state.lineStart=this.state.pos,e=this.state.pos}else++this.state.pos}}recordStrictModeErrors(t,e){let{at:s}=e,r=s.index;this.state.strict&&!this.state.strictErrors.has(r)?this.raise(t,{at:s}):this.state.strictErrors.set(r,[t,s])}readEscapedChar(t){let e=!t,s=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,s){case 110:return` +`;case 114:return"\r";case 120:{let r=this.readHexChar(2,!1,e);return r===null?null:String.fromCharCode(r)}case 117:{let r=this.readCodePoint(e);return r===null?null:String.fromCodePoint(r)}case 116:return" ";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:this.state.lineStart=this.state.pos,++this.state.curLine;case 8232:case 8233:return"";case 56:case 57:if(t)return null;this.recordStrictModeErrors(u.StrictNumericEscape,{at:m(this.state.curPosition(),-1)});default:if(s>=48&&s<=55){let r=m(this.state.curPosition(),-1),a=this.input.slice(this.state.pos-1,this.state.pos+2).match(/^[0-7]+/)[0],n=parseInt(a,8);n>255&&(a=a.slice(0,-1),n=parseInt(a,8)),this.state.pos+=a.length-1;let o=this.input.charCodeAt(this.state.pos);if(a!=="0"||o===56||o===57){if(t)return null;this.recordStrictModeErrors(u.StrictNumericEscape,{at:r})}return String.fromCharCode(n)}return String.fromCharCode(s)}}readHexChar(t,e,s){let r=this.state.curPosition(),i=this.readInt(16,t,e,!1);return i===null&&(s?this.raise(u.InvalidEscapeSequence,{at:r}):this.state.pos=r.index-1),i}readWord1(t){this.state.containsEsc=!1;let e="",s=this.state.pos,r=this.state.pos;for(t!==void 0&&(this.state.pos+=t<=65535?1:2);this.state.pos=0;o--){let c=n[o];if(c.loc.index===a)return n[o]=t({loc:i,details:r});if(c.loc.indexthis.hasPlugin(e)))throw this.raise(u.MissingOneOfPlugins,{at:this.state.startLoc,missingPlugin:t})}},os=class{constructor(t){this.var=new Set,this.lexical=new Set,this.functions=new Set,this.flags=t}},hs=class{constructor(t,e){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=t,this.inModule=e}get inFunction(){return(this.currentVarScopeFlags()&me)>0}get allowSuper(){return(this.currentThisScopeFlags()&ot)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&xr)>0}get inClass(){return(this.currentThisScopeFlags()&Se)>0}get inClassAndNotInNonArrowFunction(){let t=this.currentThisScopeFlags();return(t&Se)>0&&(t&me)===0}get inStaticBlock(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&Yt)return!0;if(e&(lt|Se))return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&me)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(t){return new os(t)}enter(t){this.scopeStack.push(this.createScope(t))}exit(){this.scopeStack.pop()}treatFunctionsAsVarInScope(t){return!!(t.flags&(me|Yt)||!this.parser.inModule&&t.flags&We)}declareName(t,e,s){let r=this.currentScope();if(e&Te||e&ut)this.checkRedeclarationInScope(r,t,e,s),e&ut?r.functions.add(t):r.lexical.add(t),e&Te&&this.maybeExportDefined(r,t);else if(e&gr)for(let i=this.scopeStack.length-1;i>=0&&(r=this.scopeStack[i],this.checkRedeclarationInScope(r,t,e,s),r.var.add(t),this.maybeExportDefined(r,t),!(r.flags<));--i);this.parser.inModule&&r.flags&We&&this.undefinedExports.delete(t)}maybeExportDefined(t,e){this.parser.inModule&&t.flags&We&&this.undefinedExports.delete(e)}checkRedeclarationInScope(t,e,s,r){this.isRedeclaredInScope(t,e,s)&&this.parser.raise(u.VarRedeclaration,{at:r,identifierName:e})}isRedeclaredInScope(t,e,s){return s&ye?s&Te?t.lexical.has(e)||t.functions.has(e)||t.var.has(e):s&ut?t.lexical.has(e)||!this.treatFunctionsAsVarInScope(t)&&t.var.has(e):t.lexical.has(e)&&!(t.flags&yr&&t.lexical.values().next().value===e)||!this.treatFunctionsAsVarInScope(t)&&t.functions.has(e):!1}checkLocalExport(t){let{name:e}=t,s=this.scopeStack[0];!s.lexical.has(e)&&!s.var.has(e)&&!s.functions.has(e)&&this.undefinedExports.set(e,t.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e<)return e}}currentThisScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&(lt|Se)&&!(e&Jt))return e}}},ph=class extends os{constructor(){super(...arguments),this.declareFunctions=new Set}},fh=class extends hs{createScope(t){return new ph(t)}declareName(t,e,s){let r=this.currentScope();if(e&es){this.checkRedeclarationInScope(r,t,e,s),this.maybeExportDefined(r,t),r.declareFunctions.add(t);return}super.declareName(...arguments)}isRedeclaredInScope(t,e,s){return super.isRedeclaredInScope(...arguments)?!0:s&es?!t.declareFunctions.has(e)&&(t.lexical.has(e)||t.functions.has(e)):!1}checkLocalExport(t){this.scopeStack[0].declareFunctions.has(t.name)||super.checkLocalExport(t)}},dh=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},mh=class{constructor(t){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=t}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new dh)}exit(){let t=this.stack.pop(),e=this.current();for(let[s,r]of Array.from(t.undefinedPrivateNames))e?e.undefinedPrivateNames.has(s)||e.undefinedPrivateNames.set(s,r):this.parser.raise(u.InvalidPrivateFieldResolution,{at:r,identifierName:s})}declarePrivateName(t,e,s){let{privateNames:r,loneAccessors:i,undefinedPrivateNames:a}=this.current(),n=r.has(t);if(e&rs){let o=n&&i.get(t);if(o){let c=o&ft,f=e&ft,y=o&rs,P=e&rs;n=y===P||c!==f,n||i.delete(t)}else n||i.set(t,e)}n&&this.parser.raise(u.PrivateNameRedeclaration,{at:s,identifierName:t}),r.add(t),a.delete(t)}usePrivateName(t,e){let s;for(s of this.stack)if(s.privateNames.has(t))return;s?s.undefinedPrivateNames.set(t,e):this.parser.raise(u.InvalidPrivateFieldResolution,{at:e,identifierName:t})}},yh=0,Nr=1,ls=2,Ir=3,yt=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:yh;this.type=void 0,this.type=t}canBeArrowParameterDeclaration(){return this.type===ls||this.type===Nr}isCertainlyParameterDeclaration(){return this.type===Ir}},kr=class extends yt{constructor(t){super(t),this.declarationErrors=new Map}recordDeclarationError(t,e){let{at:s}=e,r=s.index;this.declarationErrors.set(r,[t,s])}clearDeclarationError(t){this.declarationErrors.delete(t)}iterateErrors(t){this.declarationErrors.forEach(t)}},xh=class{constructor(t){this.parser=void 0,this.stack=[new yt],this.parser=t}enter(t){this.stack.push(t)}exit(){this.stack.pop()}recordParameterInitializerError(t,e){let{at:s}=e,r={at:s.loc.start},{stack:i}=this,a=i.length-1,n=i[a];for(;!n.isCertainlyParameterDeclaration();){if(n.canBeArrowParameterDeclaration())n.recordDeclarationError(t,r);else return;n=i[--a]}this.parser.raise(t,r)}recordArrowParemeterBindingError(t,e){let{at:s}=e,{stack:r}=this,i=r[r.length-1],a={at:s.loc.start};if(i.isCertainlyParameterDeclaration())this.parser.raise(t,a);else if(i.canBeArrowParameterDeclaration())i.recordDeclarationError(t,a);else return}recordAsyncArrowParametersError(t){let{at:e}=t,{stack:s}=this,r=s.length-1,i=s[r];for(;i.canBeArrowParameterDeclaration();)i.type===ls&&i.recordDeclarationError(u.AwaitBindingIdentifier,{at:e}),i=s[--r]}validateAsPattern(){let{stack:t}=this,e=t[t.length-1];!e.canBeArrowParameterDeclaration()||e.iterateErrors(s=>{let[r,i]=s;this.parser.raise(r,{at:i});let a=t.length-2,n=t[a];for(;n.canBeArrowParameterDeclaration();)n.clearDeclarationError(i.index),n=t[--a]})}};function gh(){return new yt(Ir)}function Ah(){return new kr(Nr)}function Ph(){return new kr(ls)}function Dr(){return new yt}var je=0,Fr=1,xt=2,Lr=4,qe=8,Th=class{constructor(){this.stacks=[]}enter(t){this.stacks.push(t)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&xt)>0}get hasYield(){return(this.currentFlags()&Fr)>0}get hasReturn(){return(this.currentFlags()&Lr)>0}get hasIn(){return(this.currentFlags()&qe)>0}};function gt(t,e){return(t?xt:0)|(e?Fr:0)}var Eh=class extends ch{addExtra(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;if(!t)return;let i=t.extra=t.extra||{};r?i[e]=s:Object.defineProperty(i,e,{enumerable:r,value:s})}isContextual(t){return this.state.type===t&&!this.state.containsEsc}isUnparsedContextual(t,e){let s=t+e.length;if(this.input.slice(t,s)===e){let r=this.input.charCodeAt(s);return!(Be(r)||(r&64512)===55296)}return!1}isLookaheadContextual(t){let e=this.nextTokenStart();return this.isUnparsedContextual(e,t)}eatContextual(t){return this.isContextual(t)?(this.next(),!0):!1}expectContextual(t,e){if(!this.eatContextual(t))throw e!=null?this.raise(e,{at:this.state.startLoc}):this.unexpected(null,t)}canInsertSemicolon(){return this.match(135)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return as.test(this.input.slice(this.state.lastTokEndLoc.index,this.state.start))}hasFollowingLineBreak(){return vr.lastIndex=this.state.end,vr.test(this.input)}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(){((arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)?this.isLineTerminator():this.eat(13))||this.raise(u.MissingSemicolon,{at:this.state.lastTokEndLoc})}expect(t,e){this.eat(t)||this.unexpected(e,t)}tryParse(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.clone(),s={node:null};try{let r=t(function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;throw s.node=i,s});if(this.state.errors.length>e.errors.length){let i=this.state;return this.state=e,this.state.tokensLength=i.tokensLength,{node:r,error:i.errors[e.errors.length],thrown:!1,aborted:!1,failState:i}}return{node:r,error:null,thrown:!1,aborted:!1,failState:null}}catch(r){let i=this.state;if(this.state=e,r instanceof SyntaxError)return{node:null,error:r,thrown:!0,aborted:!1,failState:i};if(r===s)return{node:s.node,error:null,thrown:!1,aborted:!0,failState:i};throw r}}checkExpressionErrors(t,e){if(!t)return!1;let{shorthandAssignLoc:s,doubleProtoLoc:r,privateKeyLoc:i,optionalParametersLoc:a}=t,n=!!s||!!r||!!a||!!i;if(!e)return n;s!=null&&this.raise(u.InvalidCoverInitializedName,{at:s}),r!=null&&this.raise(u.DuplicateProto,{at:r}),i!=null&&this.raise(u.UnexpectedPrivateField,{at:i}),a!=null&&this.unexpected(a)}isLiteralPropertyName(){return hr(this.state.type)}isPrivateName(t){return t.type==="PrivateName"}getPrivateNameSV(t){return t.id.name}hasPropertyAsPrivateName(t){return(t.type==="MemberExpression"||t.type==="OptionalMemberExpression")&&this.isPrivateName(t.property)}isOptionalChain(t){return t.type==="OptionalMemberExpression"||t.type==="OptionalCallExpression"}isObjectProperty(t){return t.type==="ObjectProperty"}isObjectMethod(t){return t.type==="ObjectMethod"}initializeScopes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.sourceType==="module",e=this.state.labels;this.state.labels=[];let s=this.exportedIdentifiers;this.exportedIdentifiers=new Set;let r=this.inModule;this.inModule=t;let i=this.scope,a=this.getScopeHandler();this.scope=new a(this,t);let n=this.prodParam;this.prodParam=new Th;let o=this.classScope;this.classScope=new mh(this);let c=this.expressionScope;return this.expressionScope=new xh(this),()=>{this.state.labels=e,this.exportedIdentifiers=s,this.inModule=r,this.scope=i,this.prodParam=n,this.classScope=o,this.expressionScope=c}}enterInitialScopes(){let t=je;this.inModule&&(t|=xt),this.scope.enter(We),this.prodParam.enter(t)}checkDestructuringPrivate(t){let{privateKeyLoc:e}=t;e!==null&&this.expectPlugin("destructuringPrivate",e)}},At=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},Pt=class{constructor(t,e,s){this.type="",this.start=e,this.end=0,this.loc=new d(s),t!=null&&t.options.ranges&&(this.range=[e,0]),t!=null&&t.filename&&(this.loc.filename=t.filename)}},us=Pt.prototype;us.__clone=function(){let t=new Pt,e=Object.keys(this);for(let s=0,r=e.length;s1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;t.end=e.index,t.loc.end=e,this.options.ranges&&(t.range[1]=e.index)}resetStartLocationFromNode(t,e){this.resetStartLocation(t,e.start,e.loc.start)}},Sh=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),I=j(zn||(zn=rt(["flow"])))(t=>({AmbiguousConditionalArrow:t("Ambiguous expression: wrap the arrow functions in parentheses to disambiguate."),AmbiguousDeclareModuleKind:t("Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module."),AssignReservedType:t(e=>{let{reservedType:s}=e;return"Cannot overwrite reserved type ".concat(s,".")}),DeclareClassElement:t("The `declare` modifier can only appear on class fields."),DeclareClassFieldInitializer:t("Initializers are not allowed in fields with the `declare` modifier."),DuplicateDeclareModuleExports:t("Duplicate `declare module.exports` statement."),EnumBooleanMemberNotInitialized:t(e=>{let{memberName:s,enumName:r}=e;return"Boolean enum members need to be initialized. Use either `".concat(s," = true,` or `").concat(s," = false,` in enum `").concat(r,"`.")}),EnumDuplicateMemberName:t(e=>{let{memberName:s,enumName:r}=e;return"Enum member names need to be unique, but the name `".concat(s,"` has already been used before in enum `").concat(r,"`.")}),EnumInconsistentMemberValues:t(e=>{let{enumName:s}=e;return"Enum `".concat(s,"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.")}),EnumInvalidExplicitType:t(e=>{let{invalidEnumType:s,enumName:r}=e;return"Enum type `".concat(s,"` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `").concat(r,"`.")}),EnumInvalidExplicitTypeUnknownSupplied:t(e=>{let{enumName:s}=e;return"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `".concat(s,"`.")}),EnumInvalidMemberInitializerPrimaryType:t(e=>{let{enumName:s,memberName:r,explicitType:i}=e;return"Enum `".concat(s,"` has type `").concat(i,"`, so the initializer of `").concat(r,"` needs to be a ").concat(i," literal.")}),EnumInvalidMemberInitializerSymbolType:t(e=>{let{enumName:s,memberName:r}=e;return"Symbol enum members cannot be initialized. Use `".concat(r,",` in enum `").concat(s,"`.")}),EnumInvalidMemberInitializerUnknownType:t(e=>{let{enumName:s,memberName:r}=e;return"The enum member initializer for `".concat(r,"` needs to be a literal (either a boolean, number, or string) in enum `").concat(s,"`.")}),EnumInvalidMemberName:t(e=>{let{enumName:s,memberName:r,suggestion:i}=e;return"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `".concat(r,"`, consider using `").concat(i,"`, in enum `").concat(s,"`.")}),EnumNumberMemberNotInitialized:t(e=>{let{enumName:s,memberName:r}=e;return"Number enum members need to be initialized, e.g. `".concat(r," = 1` in enum `").concat(s,"`.")}),EnumStringMemberInconsistentlyInitailized:t(e=>{let{enumName:s}=e;return"String enum members need to consistently either all use initializers, or use no initializers, in enum `".concat(s,"`.")}),GetterMayNotHaveThisParam:t("A getter cannot have a `this` parameter."),ImportTypeShorthandOnlyInPureImport:t("The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements."),InexactInsideExact:t("Explicit inexact syntax cannot appear inside an explicit exact object type."),InexactInsideNonObject:t("Explicit inexact syntax cannot appear in class or interface definitions."),InexactVariance:t("Explicit inexact syntax cannot have variance."),InvalidNonTypeImportInDeclareModule:t("Imports within a `declare module` body must always be `import type` or `import typeof`."),MissingTypeParamDefault:t("Type parameter declaration needs a default, since a preceding type parameter declaration has a default."),NestedDeclareModule:t("`declare module` cannot be used inside another `declare module`."),NestedFlowComment:t("Cannot have a flow comment inside another flow comment."),PatternIsOptional:t("A binding pattern parameter cannot be optional in an implementation signature.",{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:t("A setter cannot have a `this` parameter."),SpreadVariance:t("Spread properties cannot have variance."),ThisParamAnnotationRequired:t("A type annotation is required for the `this` parameter."),ThisParamBannedInConstructor:t("Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions."),ThisParamMayNotBeOptional:t("The `this` parameter cannot be optional."),ThisParamMustBeFirst:t("The `this` parameter must be the first function parameter."),ThisParamNoDefault:t("The `this` parameter may not have a default value."),TypeBeforeInitializer:t("Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`."),TypeCastInPattern:t("The type cast expression is expected to be wrapped with parenthesis."),UnexpectedExplicitInexactInObject:t("Explicit inexact syntax must appear at the end of an inexact object."),UnexpectedReservedType:t(e=>{let{reservedType:s}=e;return"Unexpected reserved type ".concat(s,".")}),UnexpectedReservedUnderscore:t("`_` is only allowed as a type argument to call or new."),UnexpectedSpaceBetweenModuloChecks:t("Spaces between `%` and `checks` are not allowed here."),UnexpectedSpreadType:t("Spread operator cannot appear in class or interface definitions."),UnexpectedSubtractionOperand:t('Unexpected token, expected "number" or "bigint".'),UnexpectedTokenAfterTypeParameter:t("Expected an arrow function after this type parameter declaration."),UnexpectedTypeParameterBeforeAsyncArrowFunction:t("Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`."),UnsupportedDeclareExportKind:t(e=>{let{unsupportedExportKind:s,suggestion:r}=e;return"`declare export ".concat(s,"` is not supported. Use `").concat(r,"` instead.")}),UnsupportedStatementInDeclareModule:t("Only declares and type imports are allowed inside declare module."),UnterminatedFlowComment:t("Unterminated flow-comment.")}));function wh(t){return t.type==="DeclareExportAllDeclaration"||t.type==="DeclareExportDeclaration"&&(!t.declaration||t.declaration.type!=="TypeAlias"&&t.declaration.type!=="InterfaceDeclaration")}function cs(t){return t.importKind==="type"||t.importKind==="typeof"}function Or(t){return pe(t)&&t!==97}var Nh={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function Ih(t,e){let s=[],r=[];for(let i=0;iclass extends t{constructor(){super(...arguments),this.flowPragma=void 0}getScopeHandler(){return fh}shouldParseTypes(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"}shouldParseEnums(){return!!this.getPluginOption("flow","enums")}finishToken(e,s){return e!==129&&e!==13&&e!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(e,s)}addComment(e){if(this.flowPragma===void 0){let s=kh.exec(e.value);if(s)if(s[1]==="flow")this.flowPragma="flow";else if(s[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}return super.addComment(e)}flowParseTypeInitialiser(e){let s=this.state.inType;this.state.inType=!0,this.expect(e||14);let r=this.flowParseType();return this.state.inType=s,r}flowParsePredicate(){let e=this.startNode(),s=this.state.startLoc;return this.next(),this.expectContextual(107),this.state.lastTokStart>s.index+1&&this.raise(I.UnexpectedSpaceBetweenModuloChecks,{at:s}),this.eat(10)?(e.value=this.parseExpression(),this.expect(11),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){let e=this.state.inType;this.state.inType=!0,this.expect(14);let s=null,r=null;return this.match(54)?(this.state.inType=e,r=this.flowParsePredicate()):(s=this.flowParseType(),this.state.inType=e,this.match(54)&&(r=this.flowParsePredicate())),[s,r]}flowParseDeclareClass(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")}flowParseDeclareFunction(e){this.next();let s=e.id=this.parseIdentifier(),r=this.startNode(),i=this.startNode();this.match(47)?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(10);let a=this.flowParseFunctionTypeParams();return r.params=a.params,r.rest=a.rest,r.this=a._this,this.expect(11),[r.returnType,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),i.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),s.typeAnnotation=this.finishNode(i,"TypeAnnotation"),this.resetEndLocation(s),this.semicolon(),this.scope.declareName(e.id.name,$o,e.id.loc.start),this.finishNode(e,"DeclareFunction")}flowParseDeclare(e,s){if(this.match(80))return this.flowParseDeclareClass(e);if(this.match(68))return this.flowParseDeclareFunction(e);if(this.match(74))return this.flowParseDeclareVariable(e);if(this.eatContextual(123))return this.match(16)?this.flowParseDeclareModuleExports(e):(s&&this.raise(I.NestedDeclareModule,{at:this.state.lastTokStartLoc}),this.flowParseDeclareModule(e));if(this.isContextual(126))return this.flowParseDeclareTypeAlias(e);if(this.isContextual(127))return this.flowParseDeclareOpaqueType(e);if(this.isContextual(125))return this.flowParseDeclareInterface(e);if(this.match(82))return this.flowParseDeclareExportDeclaration(e,s);throw this.unexpected()}flowParseDeclareVariable(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(e.id.name,pt,e.id.loc.start),this.semicolon(),this.finishNode(e,"DeclareVariable")}flowParseDeclareModule(e){this.scope.enter(Me),this.match(129)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();let s=e.body=this.startNode(),r=s.body=[];for(this.expect(5);!this.match(8);){let n=this.startNode();this.match(83)?(this.next(),!this.isContextual(126)&&!this.match(87)&&this.raise(I.InvalidNonTypeImportInDeclareModule,{at:this.state.lastTokStartLoc}),this.parseImport(n)):(this.expectContextual(121,I.UnsupportedStatementInDeclareModule),n=this.flowParseDeclare(n,!0)),r.push(n)}this.scope.exit(),this.expect(8),this.finishNode(s,"BlockStatement");let i=null,a=!1;return r.forEach(n=>{wh(n)?(i==="CommonJS"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i="ES"):n.type==="DeclareModuleExports"&&(a&&this.raise(I.DuplicateDeclareModuleExports,{at:n}),i==="ES"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i="CommonJS",a=!0)}),e.kind=i||"CommonJS",this.finishNode(e,"DeclareModule")}flowParseDeclareExportDeclaration(e,s){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?e.declaration=this.flowParseDeclare(this.startNode()):(e.declaration=this.flowParseType(),this.semicolon()),e.default=!0,this.finishNode(e,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(126)||this.isContextual(125))&&!s){let r=this.state.value;throw this.raise(I.UnsupportedDeclareExportKind,{at:this.state.startLoc,unsupportedExportKind:r,suggestion:Nh[r]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(127))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(125)||this.isContextual(126)||this.isContextual(127))return e=this.parseExport(e),e.type==="ExportNamedDeclaration"&&(e.type="ExportDeclaration",e.default=!1,delete e.exportKind),e.type="Declare"+e.type,e;throw this.unexpected()}flowParseDeclareModuleExports(e){return this.next(),this.expectContextual(108),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")}flowParseDeclareTypeAlias(e){return this.next(),this.flowParseTypeAlias(e),e.type="DeclareTypeAlias",e}flowParseDeclareOpaqueType(e){return this.next(),this.flowParseOpaqueType(e,!0),e.type="DeclareOpaqueType",e}flowParseDeclareInterface(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")}flowParseInterfaceish(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.flowParseRestrictedIdentifier(!s,!0),this.scope.declareName(e.id.name,s?Tr:xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.implements=[],e.mixins=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(!s&&this.eat(12));if(this.isContextual(114)){this.next();do e.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12))}if(this.isContextual(110)){this.next();do e.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}e.body=this.flowParseObjectType({allowStatic:s,allowExact:!1,allowSpread:!1,allowProto:s,allowInexact:!1})}flowParseInterfaceExtends(){let e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")}flowParseInterface(e){return this.flowParseInterfaceish(e),this.finishNode(e,"InterfaceDeclaration")}checkNotUnderscore(e){e==="_"&&this.raise(I.UnexpectedReservedUnderscore,{at:this.state.startLoc})}checkReservedType(e,s,r){!Sh.has(e)||this.raise(r?I.AssignReservedType:I.UnexpectedReservedType,{at:s,reservedType:e})}flowParseRestrictedIdentifier(e,s){return this.checkReservedType(this.state.value,this.state.startLoc,s),this.parseIdentifier(e)}flowParseTypeAlias(e){return e.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(e.id.name,xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(e,"TypeAlias")}flowParseOpaqueType(e,s){return this.expectContextual(126),e.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(e.id.name,xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(14)&&(e.supertype=this.flowParseTypeInitialiser(14)),e.impltype=null,s||(e.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(e,"OpaqueType")}flowParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,s=this.state.startLoc,r=this.startNode(),i=this.flowParseVariance(),a=this.flowParseTypeAnnotatableIdentifier();return r.name=a.name,r.variance=i,r.bound=a.typeAnnotation,this.match(29)?(this.eat(29),r.default=this.flowParseType()):e&&this.raise(I.MissingTypeParamDefault,{at:s}),this.finishNode(r,"TypeParameter")}flowParseTypeParameterDeclaration(){let e=this.state.inType,s=this.startNode();s.params=[],this.state.inType=!0,this.match(47)||this.match(138)?this.next():this.unexpected();let r=!1;do{let i=this.flowParseTypeParameter(r);s.params.push(i),i.default&&(r=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=e,this.finishNode(s,"TypeParameterDeclaration")}flowParseTypeParameterInstantiation(){let e=this.startNode(),s=this.state.inType;e.params=[],this.state.inType=!0,this.expect(47);let r=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)e.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=r,this.expect(48),this.state.inType=s,this.finishNode(e,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){let e=this.startNode(),s=this.state.inType;for(e.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)e.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=s,this.finishNode(e,"TypeParameterInstantiation")}flowParseInterfaceType(){let e=this.startNode();if(this.expectContextual(125),e.extends=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return e.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(e,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(130)||this.match(129)?this.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(e,s,r){return e.static=s,this.lookahead().type===14?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(3),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.finishNode(e,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(e,s){return e.static=s,e.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(e.method=!0,e.optional=!1,e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start))):(e.method=!1,this.eat(17)&&(e.optional=!0),e.value=this.flowParseTypeInitialiser()),this.finishNode(e,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(e){for(e.params=[],e.rest=null,e.typeParameters=null,e.this=null,this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(e.this=this.flowParseFunctionTypeParam(!0),e.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(e.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(e,s){let r=this.startNode();return e.static=s,e.value=this.flowParseObjectTypeMethodish(r),this.finishNode(e,"ObjectTypeCallProperty")}flowParseObjectType(e){let{allowStatic:s,allowExact:r,allowSpread:i,allowProto:a,allowInexact:n}=e,o=this.state.inType;this.state.inType=!0;let c=this.startNode();c.callProperties=[],c.properties=[],c.indexers=[],c.internalSlots=[];let f,y,P=!1;for(r&&this.match(6)?(this.expect(6),f=9,y=!0):(this.expect(5),f=8,y=!1),c.exact=y;!this.match(f);){let N=!1,B=null,_=null,Q=this.startNode();if(a&&this.isContextual(115)){let ne=this.lookahead();ne.type!==14&&ne.type!==17&&(this.next(),B=this.state.startLoc,s=!1)}if(s&&this.isContextual(104)){let ne=this.lookahead();ne.type!==14&&ne.type!==17&&(this.next(),N=!0)}let re=this.flowParseVariance();if(this.eat(0))B!=null&&this.unexpected(B),this.eat(0)?(re&&this.unexpected(re.loc.start),c.internalSlots.push(this.flowParseObjectTypeInternalSlot(Q,N))):c.indexers.push(this.flowParseObjectTypeIndexer(Q,N,re));else if(this.match(10)||this.match(47))B!=null&&this.unexpected(B),re&&this.unexpected(re.loc.start),c.callProperties.push(this.flowParseObjectTypeCallProperty(Q,N));else{let ne="init";if(this.isContextual(98)||this.isContextual(103)){let le=this.lookahead();hr(le.type)&&(ne=this.state.value,this.next())}let $e=this.flowParseObjectTypeProperty(Q,N,B,re,ne,i,n!=null?n:!y);$e===null?(P=!0,_=this.state.lastTokStartLoc):c.properties.push($e)}this.flowObjectTypeSemicolon(),_&&!this.match(8)&&!this.match(9)&&this.raise(I.UnexpectedExplicitInexactInObject,{at:_})}this.expect(f),i&&(c.inexact=P);let v=this.finishNode(c,"ObjectTypeAnnotation");return this.state.inType=o,v}flowParseObjectTypeProperty(e,s,r,i,a,n,o){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(n?o||this.raise(I.InexactInsideExact,{at:this.state.lastTokStartLoc}):this.raise(I.InexactInsideNonObject,{at:this.state.lastTokStartLoc}),i&&this.raise(I.InexactVariance,{at:i}),null):(n||this.raise(I.UnexpectedSpreadType,{at:this.state.lastTokStartLoc}),r!=null&&this.unexpected(r),i&&this.raise(I.SpreadVariance,{at:i}),e.argument=this.flowParseType(),this.finishNode(e,"ObjectTypeSpreadProperty"));{e.key=this.flowParseObjectPropertyKey(),e.static=s,e.proto=r!=null,e.kind=a;let c=!1;return this.match(47)||this.match(10)?(e.method=!0,r!=null&&this.unexpected(r),i&&this.unexpected(i.loc.start),e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start)),(a==="get"||a==="set")&&this.flowCheckGetterSetterParams(e),!n&&e.key.name==="constructor"&&e.value.this&&this.raise(I.ThisParamBannedInConstructor,{at:e.value.this})):(a!=="init"&&this.unexpected(),e.method=!1,this.eat(17)&&(c=!0),e.value=this.flowParseTypeInitialiser(),e.variance=i),e.optional=c,this.finishNode(e,"ObjectTypeProperty")}}flowCheckGetterSetterParams(e){let s=e.kind==="get"?0:1,r=e.value.params.length+(e.value.rest?1:0);e.value.this&&this.raise(e.kind==="get"?I.GetterMayNotHaveThisParam:I.SetterMayNotHaveThisParam,{at:e.value.this}),r!==s&&this.raise(e.kind==="get"?u.BadGetterArity:u.BadSetterArity,{at:e}),e.kind==="set"&&e.value.rest&&this.raise(u.BadSetterRestParameter,{at:e})}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(e,s,r){e=e||this.state.start,s=s||this.state.startLoc;let i=r||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){let a=this.startNodeAt(e,s);a.qualification=i,a.id=this.flowParseRestrictedIdentifier(!0),i=this.finishNode(a,"QualifiedTypeIdentifier")}return i}flowParseGenericType(e,s,r){let i=this.startNodeAt(e,s);return i.typeParameters=null,i.id=this.flowParseQualifiedTypeIdentifier(e,s,r),this.match(47)&&(i.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(i,"GenericTypeAnnotation")}flowParseTypeofType(){let e=this.startNode();return this.expect(87),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")}flowParseTupleType(){let e=this.startNode();for(e.types=[],this.expect(0);this.state.pos0&&arguments[0]!==void 0?arguments[0]:[],s=null,r=null;for(this.match(78)&&(r=this.flowParseFunctionTypeParam(!0),r.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(s=this.flowParseFunctionTypeParam(!1)),{params:e,rest:s,_this:r}}flowIdentToTypeAnnotation(e,s,r,i){switch(i.name){case"any":return this.finishNode(r,"AnyTypeAnnotation");case"bool":case"boolean":return this.finishNode(r,"BooleanTypeAnnotation");case"mixed":return this.finishNode(r,"MixedTypeAnnotation");case"empty":return this.finishNode(r,"EmptyTypeAnnotation");case"number":return this.finishNode(r,"NumberTypeAnnotation");case"string":return this.finishNode(r,"StringTypeAnnotation");case"symbol":return this.finishNode(r,"SymbolTypeAnnotation");default:return this.checkNotUnderscore(i.name),this.flowParseGenericType(e,s,i)}}flowParsePrimaryType(){let e=this.state.start,s=this.state.startLoc,r=this.startNode(),i,a,n=!1,o=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,a=this.flowParseTupleType(),this.state.noAnonFunctionType=o,a;case 47:return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");case 10:if(this.next(),!this.match(11)&&!this.match(21))if(K(this.state.type)||this.match(78)){let c=this.lookahead().type;n=c!==17&&c!==14}else n=!0;if(n){if(this.state.noAnonFunctionType=!1,a=this.flowParseType(),this.state.noAnonFunctionType=o,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),a;this.eat(12)}return a?i=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]):i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case 129:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case 85:case 86:return r.value=this.match(85),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case 53:if(this.state.value==="-"){if(this.next(),this.match(130))return this.parseLiteralAtNode(-this.state.value,"NumberLiteralTypeAnnotation",r);if(this.match(131))return this.parseLiteralAtNode(-this.state.value,"BigIntLiteralTypeAnnotation",r);throw this.raise(I.UnexpectedSubtractionOperand,{at:this.state.startLoc})}throw this.unexpected();case 130:return this.parseLiteral(this.state.value,"NumberLiteralTypeAnnotation");case 131:return this.parseLiteral(this.state.value,"BigIntLiteralTypeAnnotation");case 88:return this.next(),this.finishNode(r,"VoidTypeAnnotation");case 84:return this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case 78:return this.next(),this.finishNode(r,"ThisTypeAnnotation");case 55:return this.next(),this.finishNode(r,"ExistsTypeAnnotation");case 87:return this.flowParseTypeofType();default:if(Ht(this.state.type)){let c=Pe(this.state.type);return this.next(),super.createIdentifier(r,c)}else if(K(this.state.type))return this.isContextual(125)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(e,s,r,this.parseIdentifier())}throw this.unexpected()}flowParsePostfixType(){let e=this.state.start,s=this.state.startLoc,r=this.flowParsePrimaryType(),i=!1;for(;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){let a=this.startNodeAt(e,s),n=this.eat(18);i=i||n,this.expect(0),!n&&this.match(3)?(a.elementType=r,this.next(),r=this.finishNode(a,"ArrayTypeAnnotation")):(a.objectType=r,a.indexType=this.flowParseType(),this.expect(3),i?(a.optional=n,r=this.finishNode(a,"OptionalIndexedAccessType")):r=this.finishNode(a,"IndexedAccessType"))}return r}flowParsePrefixType(){let e=this.startNode();return this.eat(17)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()}flowParseAnonFunctionWithoutParens(){let e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){let s=this.startNodeAt(e.start,e.loc.start);return s.params=[this.reinterpretTypeAsFunctionTypeParam(e)],s.rest=null,s.this=null,s.returnType=this.flowParseType(),s.typeParameters=null,this.finishNode(s,"FunctionTypeAnnotation")}return e}flowParseIntersectionType(){let e=this.startNode();this.eat(45);let s=this.flowParseAnonFunctionWithoutParens();for(e.types=[s];this.eat(45);)e.types.push(this.flowParseAnonFunctionWithoutParens());return e.types.length===1?s:this.finishNode(e,"IntersectionTypeAnnotation")}flowParseUnionType(){let e=this.startNode();this.eat(43);let s=this.flowParseIntersectionType();for(e.types=[s];this.eat(43);)e.types.push(this.flowParseIntersectionType());return e.types.length===1?s:this.finishNode(e,"UnionTypeAnnotation")}flowParseType(){let e=this.state.inType;this.state.inType=!0;let s=this.flowParseUnionType();return this.state.inType=e,s}flowParseTypeOrImplicitInstantiation(){if(this.state.type===128&&this.state.value==="_"){let e=this.state.start,s=this.state.startLoc,r=this.parseIdentifier();return this.flowParseGenericType(e,s,r)}else return this.flowParseType()}flowParseTypeAnnotation(){let e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")}flowParseTypeAnnotatableIdentifier(e){let s=e?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(s.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(s)),s}typeCastToParameter(e){return e.expression.typeAnnotation=e.typeAnnotation,this.resetEndLocation(e.expression,e.typeAnnotation.loc.end),e.expression}flowParseVariance(){let e=null;return this.match(53)&&(e=this.startNode(),this.state.value==="+"?e.kind="plus":e.kind="minus",this.next(),this.finishNode(e,"Variance")),e}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return s?this.forwardNoArrowParamsConversionAt(e,()=>super.parseFunctionBody(e,!0,r)):super.parseFunctionBody(e,!1,r)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(this.match(14)){let i=this.startNode();[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),e.returnType=i.typeAnnotation?this.finishNode(i,"TypeAnnotation"):null}super.parseFunctionBodyAndFinish(e,s,r)}parseStatement(e,s){if(this.state.strict&&this.isContextual(125)){let i=this.lookahead();if(pe(i.type)){let a=this.startNode();return this.next(),this.flowParseInterface(a)}}else if(this.shouldParseEnums()&&this.isContextual(122)){let i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}let r=super.parseStatement(e,s);return this.flowPragma===void 0&&!this.isValidDirective(r)&&(this.flowPragma=null),r}parseExpressionStatement(e,s){if(s.type==="Identifier"){if(s.name==="declare"){if(this.match(80)||K(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(e)}else if(K(this.state.type)){if(s.name==="interface")return this.flowParseInterface(e);if(s.name==="type")return this.flowParseTypeAlias(e);if(s.name==="opaque")return this.flowParseOpaqueType(e,!1)}}return super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){let{type:e}=this.state;return lr(e)||this.shouldParseEnums()&&e===122?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){let{type:e}=this.state;return lr(e)||this.shouldParseEnums()&&e===122?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual(122)){let e=this.startNode();return this.next(),this.flowParseEnumDeclaration(e)}return super.parseExportDefaultExpression()}parseConditional(e,s,r,i){if(!this.match(17))return e;if(this.state.maybeInArrowParameters){let v=this.lookaheadCharCode();if(v===44||v===61||v===58||v===41)return this.setOptionalParametersError(i),e}this.expect(17);let a=this.state.clone(),n=this.state.noArrowAt,o=this.startNodeAt(s,r),{consequent:c,failed:f}=this.tryParseConditionalConsequent(),[y,P]=this.getArrowLikeExpressions(c);if(f||P.length>0){let v=[...n];if(P.length>0){this.state=a,this.state.noArrowAt=v;for(let N=0;N1&&this.raise(I.AmbiguousConditionalArrow,{at:a.startLoc}),f&&y.length===1&&(this.state=a,v.push(y[0].start),this.state.noArrowAt=v,{consequent:c,failed:f}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(c,!0),this.state.noArrowAt=n,this.expect(14),o.test=e,o.consequent=c,o.alternate=this.forwardNoArrowParamsConversionAt(o,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(o,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);let e=this.parseMaybeAssignAllowIn(),s=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:e,failed:s}}getArrowLikeExpressions(e,s){let r=[e],i=[];for(;r.length!==0;){let a=r.pop();a.type==="ArrowFunctionExpression"?(a.typeParameters||!a.returnType?this.finishArrowValidation(a):i.push(a),r.push(a.body)):a.type==="ConditionalExpression"&&(r.push(a.consequent),r.push(a.alternate))}return s?(i.forEach(a=>this.finishArrowValidation(a)),[i,[]]):Ih(i,a=>a.params.every(n=>this.isAssignable(n,!0)))}finishArrowValidation(e){var s;this.toAssignableList(e.params,(s=e.extra)==null?void 0:s.trailingCommaLoc,!1),this.scope.enter(me|Jt),super.checkParams(e,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(e,s){let r;return this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?(this.state.noArrowParamsConversionAt.push(this.state.start),r=s(),this.state.noArrowParamsConversionAt.pop()):r=s(),r}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return e}assertModuleNodeAllowed(e){e.type==="ImportDeclaration"&&(e.importKind==="type"||e.importKind==="typeof")||e.type==="ExportNamedDeclaration"&&e.exportKind==="type"||e.type==="ExportAllDeclaration"&&e.exportKind==="type"||super.assertModuleNodeAllowed(e)}parseExport(e){let s=super.parseExport(e);return(s.type==="ExportNamedDeclaration"||s.type==="ExportAllDeclaration")&&(s.exportKind=s.exportKind||"value"),s}parseExportDeclaration(e){if(this.isContextual(126)){e.exportKind="type";let s=this.startNode();return this.next(),this.match(5)?(e.specifiers=this.parseExportSpecifiers(!0),this.parseExportFrom(e),null):this.flowParseTypeAlias(s)}else if(this.isContextual(127)){e.exportKind="type";let s=this.startNode();return this.next(),this.flowParseOpaqueType(s,!1)}else if(this.isContextual(125)){e.exportKind="type";let s=this.startNode();return this.next(),this.flowParseInterface(s)}else if(this.shouldParseEnums()&&this.isContextual(122)){e.exportKind="value";let s=this.startNode();return this.next(),this.flowParseEnumDeclaration(s)}else return super.parseExportDeclaration(e)}eatExportStar(e){return super.eatExportStar(...arguments)?!0:this.isContextual(126)&&this.lookahead().type===55?(e.exportKind="type",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(e){let{startLoc:s}=this.state,r=super.maybeParseExportNamespaceSpecifier(e);return r&&e.exportKind==="type"&&this.unexpected(s),r}parseClassId(e,s,r){super.parseClassId(e,s,r),this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(e,s,r){let{startLoc:i}=this.state;if(this.isContextual(121)){if(this.parseClassMemberFromModifier(e,s))return;s.declare=!0}super.parseClassMember(e,s,r),s.declare&&(s.type!=="ClassProperty"&&s.type!=="ClassPrivateProperty"&&s.type!=="PropertyDefinition"?this.raise(I.DeclareClassElement,{at:i}):s.value&&this.raise(I.DeclareClassFieldInitializer,{at:s.value}))}isIterator(e){return e==="iterator"||e==="asyncIterator"}readIterator(){let e=super.readWord1(),s="@@"+e;(!this.isIterator(e)||!this.state.inType)&&this.raise(u.InvalidIdentifier,{at:this.state.curPosition(),identifierName:s}),this.finishToken(128,s)}getTokenFromCode(e){let s=this.input.charCodeAt(this.state.pos+1);return e===123&&s===124?this.finishOp(6,2):this.state.inType&&(e===62||e===60)?this.finishOp(e===62?48:47,1):this.state.inType&&e===63?s===46?this.finishOp(18,2):this.finishOp(17,1):Ko(e,s,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(e)}isAssignable(e,s){return e.type==="TypeCastExpression"?this.isAssignable(e.expression,s):super.isAssignable(e,s)}toAssignable(e){!(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)&&e.type==="AssignmentExpression"&&e.left.type==="TypeCastExpression"&&(e.left=this.typeCastToParameter(e.left)),super.toAssignable(...arguments)}toAssignableList(e,s,r){for(let i=0;i1||!s)&&this.raise(I.TypeCastInPattern,{at:a.typeAnnotation})}return e}parseArrayLike(e,s,r,i){let a=super.parseArrayLike(e,s,r,i);return s&&!this.state.maybeInArrowParameters&&this.toReferencedList(a.elements),a}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}else if(s.type==="MethodDefinition"&&a&&s.value.params){let o=s.value.params;o.length>0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}}pushClassPrivateMethod(e,s,r,i){s.variance&&this.unexpected(s.variance.loc.start),delete s.variance,this.match(47)&&(s.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(e,s,r,i)}parseClassSuper(e){if(super.parseClassSuper(e),e.superClass&&this.match(47)&&(e.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(110)){this.next();let s=e.implements=[];do{let r=this.startNode();r.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?r.typeParameters=this.flowParseTypeParameterInstantiation():r.typeParameters=null,s.push(this.finishNode(r,"ClassImplements"))}while(this.eat(12))}}checkGetterSetterParams(e){super.checkGetterSetterParams(e);let s=this.getObjectOrClassMethodParams(e);if(s.length>0){let r=s[0];this.isThisParam(r)&&e.kind==="get"?this.raise(I.GetterMayNotHaveThisParam,{at:r}):this.isThisParam(r)&&this.raise(I.SetterMayNotHaveThisParam,{at:r})}}parsePropertyNamePrefixOperator(e){e.variance=this.flowParseVariance()}parseObjPropValue(e,s,r,i,a,n,o,c){e.variance&&this.unexpected(e.variance.loc.start),delete e.variance;let f;this.match(47)&&!o&&(f=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected()),super.parseObjPropValue(e,s,r,i,a,n,o,c),f&&((e.value||e).typeParameters=f)}parseAssignableListItemTypes(e){return this.eat(17)&&(e.type!=="Identifier"&&this.raise(I.PatternIsOptional,{at:e}),this.isThisParam(e)&&this.raise(I.ThisParamMayNotBeOptional,{at:e}),e.optional=!0),this.match(14)?e.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(e)&&this.raise(I.ThisParamAnnotationRequired,{at:e}),this.match(29)&&this.isThisParam(e)&&this.raise(I.ThisParamNoDefault,{at:e}),this.resetEndLocation(e),e}parseMaybeDefault(e,s,r){let i=super.parseMaybeDefault(e,s,r);return i.type==="AssignmentPattern"&&i.typeAnnotation&&i.right.startsuper.parseMaybeAssign(e,s),i),!a.error)return a.node;let{context:c}=this.state,f=c[c.length-1];(f===z.j_oTag||f===z.j_expr)&&c.pop()}if((r=a)!=null&&r.error||this.match(47)){var n,o;i=i||this.state.clone();let c,f=this.tryParse(P=>{var v;c=this.flowParseTypeParameterDeclaration();let N=this.forwardNoArrowParamsConversionAt(c,()=>{let _=super.parseMaybeAssign(e,s);return this.resetStartLocationFromNode(_,c),_});(v=N.extra)!=null&&v.parenthesized&&P();let B=this.maybeUnwrapTypeCastExpression(N);return B.type!=="ArrowFunctionExpression"&&P(),B.typeParameters=c,this.resetStartLocationFromNode(B,c),N},i),y=null;if(f.node&&this.maybeUnwrapTypeCastExpression(f.node).type==="ArrowFunctionExpression"){if(!f.error&&!f.aborted)return f.node.async&&this.raise(I.UnexpectedTypeParameterBeforeAsyncArrowFunction,{at:c}),f.node;y=f.node}if((n=a)!=null&&n.node)return this.state=a.failState,a.node;if(y)return this.state=f.failState,y;throw(o=a)!=null&&o.thrown?a.error:f.thrown?f.error:this.raise(I.UnexpectedTokenAfterTypeParameter,{at:c})}return super.parseMaybeAssign(e,s)}parseArrow(e){if(this.match(14)){let s=this.tryParse(()=>{let r=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;let i=this.startNode();return[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=r,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),i});if(s.thrown)return null;s.error&&(this.state=s.failState),e.returnType=s.node.typeAnnotation?this.finishNode(s.node,"TypeAnnotation"):null}return super.parseArrow(e)}shouldParseArrow(e){return this.match(14)||super.shouldParseArrow(e)}setArrowFunctionParameters(e,s){this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?e.params=s:super.setArrowFunctionParameters(e,s)}checkParams(e,s,r){if(!(r&&this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1)){for(let i=0;i0&&this.raise(I.ThisParamMustBeFirst,{at:e.params[i]});return super.checkParams(...arguments)}}parseParenAndDistinguishExpression(e){return super.parseParenAndDistinguishExpression(e&&this.state.noArrowAt.indexOf(this.state.start)===-1)}parseSubscripts(e,s,r,i){if(e.type==="Identifier"&&e.name==="async"&&this.state.noArrowAt.indexOf(s)!==-1){this.next();let a=this.startNodeAt(s,r);a.callee=e,a.arguments=this.parseCallExpressionArguments(11,!1),e=this.finishNode(a,"CallExpression")}else if(e.type==="Identifier"&&e.name==="async"&&this.match(47)){let a=this.state.clone(),n=this.tryParse(c=>this.parseAsyncArrowWithTypeParameters(s,r)||c(),a);if(!n.error&&!n.aborted)return n.node;let o=this.tryParse(()=>super.parseSubscripts(e,s,r,i),a);if(o.node&&!o.error)return o.node;if(n.node)return this.state=n.failState,n.node;if(o.node)return this.state=o.failState,o.node;throw n.error||o.error}return super.parseSubscripts(e,s,r,i)}parseSubscript(e,s,r,i,a){if(this.match(18)&&this.isLookaheadToken_lt()){if(a.optionalChainMember=!0,i)return a.stop=!0,e;this.next();let n=this.startNodeAt(s,r);return n.callee=e,n.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),n.optional=!0,this.finishCallExpression(n,!0)}else if(!i&&this.shouldParseTypes()&&this.match(47)){let n=this.startNodeAt(s,r);n.callee=e;let o=this.tryParse(()=>(n.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),a.optionalChainMember&&(n.optional=!1),this.finishCallExpression(n,a.optionalChainMember)));if(o.node)return o.error&&(this.state=o.failState),o.node}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){super.parseNewCallee(e);let s=null;this.shouldParseTypes()&&this.match(47)&&(s=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),e.typeArguments=s}parseAsyncArrowWithTypeParameters(e,s){let r=this.startNodeAt(e,s);if(this.parseFunctionParams(r),!!this.parseArrow(r))return this.parseArrowExpression(r,void 0,!0)}readToken_mult_modulo(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===42&&s===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(e)}readToken_pipe_amp(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===124&&s===125){this.finishOp(9,2);return}super.readToken_pipe_amp(e)}parseTopLevel(e,s){let r=super.parseTopLevel(e,s);return this.state.hasFlowComment&&this.raise(I.UnterminatedFlowComment,{at:this.state.curPosition()}),r}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(I.NestedFlowComment,{at:this.state.startLoc});this.hasFlowCommentCompletion(),this.state.pos+=this.skipFlowComment(),this.state.hasFlowComment=!0;return}if(this.state.hasFlowComment){let e=this.input.indexOf("*-/",this.state.pos+2);if(e===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()});this.state.pos=e+2+3;return}return super.skipBlockComment()}skipFlowComment(){let{pos:e}=this.state,s=2;for(;[32,9].includes(this.input.charCodeAt(e+s));)s++;let r=this.input.charCodeAt(s+e),i=this.input.charCodeAt(s+e+1);return r===58&&i===58?s+2:this.input.slice(s+e,s+e+12)==="flow-include"?s+12:r===58&&i!==58?s:!1}hasFlowCommentCompletion(){if(this.input.indexOf("*/",this.state.pos)===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()})}flowEnumErrorBooleanMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumBooleanMemberNotInitialized,{at:e,memberName:i,enumName:r})}flowEnumErrorInvalidMemberInitializer(e,s){return this.raise(s.explicitType?s.explicitType==="symbol"?I.EnumInvalidMemberInitializerSymbolType:I.EnumInvalidMemberInitializerPrimaryType:I.EnumInvalidMemberInitializerUnknownType,Object.assign({at:e},s))}flowEnumErrorNumberMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumNumberMemberNotInitialized,{at:e,enumName:r,memberName:i})}flowEnumErrorStringMemberInconsistentlyInitailized(e,s){let{enumName:r}=s;this.raise(I.EnumStringMemberInconsistentlyInitailized,{at:e,enumName:r})}flowEnumMemberInit(){let e=this.state.startLoc,s=()=>this.match(12)||this.match(8);switch(this.state.type){case 130:{let r=this.parseNumericLiteral(this.state.value);return s()?{type:"number",loc:r.loc.start,value:r}:{type:"invalid",loc:e}}case 129:{let r=this.parseStringLiteral(this.state.value);return s()?{type:"string",loc:r.loc.start,value:r}:{type:"invalid",loc:e}}case 85:case 86:{let r=this.parseBooleanLiteral(this.match(85));return s()?{type:"boolean",loc:r.loc.start,value:r}:{type:"invalid",loc:e}}default:return{type:"invalid",loc:e}}}flowEnumMemberRaw(){let e=this.state.startLoc,s=this.parseIdentifier(!0),r=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:e};return{id:s,init:r}}flowEnumCheckExplicitTypeMismatch(e,s,r){let{explicitType:i}=s;i!==null&&i!==r&&this.flowEnumErrorInvalidMemberInitializer(e,s)}flowEnumMembers(e){let{enumName:s,explicitType:r}=e,i=new Set,a={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},n=!1;for(;!this.match(8);){if(this.eat(21)){n=!0;break}let o=this.startNode(),{id:c,init:f}=this.flowEnumMemberRaw(),y=c.name;if(y==="")continue;/^[a-z]/.test(y)&&this.raise(I.EnumInvalidMemberName,{at:c,memberName:y,suggestion:y[0].toUpperCase()+y.slice(1),enumName:s}),i.has(y)&&this.raise(I.EnumDuplicateMemberName,{at:c,memberName:y,enumName:s}),i.add(y);let P={enumName:s,explicitType:r,memberName:y};switch(o.id=c,f.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,"boolean"),o.init=f.value,a.booleanMembers.push(this.finishNode(o,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,"number"),o.init=f.value,a.numberMembers.push(this.finishNode(o,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,"string"),o.init=f.value,a.stringMembers.push(this.finishNode(o,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(f.loc,P);case"none":switch(r){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(f.loc,P);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(f.loc,P);break;default:a.defaultedMembers.push(this.finishNode(o,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}return{members:a,hasUnknownMembers:n}}flowEnumStringMembers(e,s,r){let{enumName:i}=r;if(e.length===0)return s;if(s.length===0)return e;if(s.length>e.length){for(let a of e)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return s}else{for(let a of s)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return e}}flowEnumParseExplicitType(e){let{enumName:s}=e;if(!this.eatContextual(101))return null;if(!K(this.state.type))throw this.raise(I.EnumInvalidExplicitTypeUnknownSupplied,{at:this.state.startLoc,enumName:s});let{value:r}=this.state;return this.next(),r!=="boolean"&&r!=="number"&&r!=="string"&&r!=="symbol"&&this.raise(I.EnumInvalidExplicitType,{at:this.state.startLoc,enumName:s,invalidEnumType:r}),r}flowEnumBody(e,s){let r=s.name,i=s.loc.start,a=this.flowEnumParseExplicitType({enumName:r});this.expect(5);let{members:n,hasUnknownMembers:o}=this.flowEnumMembers({enumName:r,explicitType:a});switch(e.hasUnknownMembers=o,a){case"boolean":return e.explicitType=!0,e.members=n.booleanMembers,this.expect(8),this.finishNode(e,"EnumBooleanBody");case"number":return e.explicitType=!0,e.members=n.numberMembers,this.expect(8),this.finishNode(e,"EnumNumberBody");case"string":return e.explicitType=!0,e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,"EnumStringBody");case"symbol":return e.members=n.defaultedMembers,this.expect(8),this.finishNode(e,"EnumSymbolBody");default:{let c=()=>(e.members=[],this.expect(8),this.finishNode(e,"EnumStringBody"));e.explicitType=!1;let f=n.booleanMembers.length,y=n.numberMembers.length,P=n.stringMembers.length,v=n.defaultedMembers.length;if(!f&&!y&&!P&&!v)return c();if(!f&&!y)return e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,"EnumStringBody");if(!y&&!P&&f>=v){for(let N of n.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.booleanMembers,this.expect(8),this.finishNode(e,"EnumBooleanBody")}else if(!f&&!P&&y>=v){for(let N of n.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.numberMembers,this.expect(8),this.finishNode(e,"EnumNumberBody")}else return this.raise(I.EnumInconsistentMemberValues,{at:i,enumName:r}),c()}}}flowParseEnumDeclaration(e){let s=this.parseIdentifier();return e.id=s,e.body=this.flowEnumBody(this.startNode(),s),this.finishNode(e,"EnumDeclaration")}isLookaheadToken_lt(){let e=this.nextTokenStart();if(this.input.charCodeAt(e)===60){let s=this.input.charCodeAt(e+1);return s!==60&&s!==61}return!1}maybeUnwrapTypeCastExpression(e){return e.type==="TypeCastExpression"?e.expression:e}},Fh={__proto__:null,quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",lang:"\u2329",rang:"\u232A",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"},Ie=j(Kn||(Kn=rt(["jsx"])))(t=>({AttributeIsEmpty:t("JSX attributes must only be assigned a non-empty expression."),MissingClosingTagElement:t(e=>{let{openingTagName:s}=e;return"Expected corresponding JSX closing tag for <".concat(s,">.")}),MissingClosingTagFragment:t("Expected corresponding JSX closing tag for <>."),UnexpectedSequenceExpression:t("Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?"),UnexpectedToken:t(e=>{let{unexpected:s,HTMLEntity:r}=e;return"Unexpected token `".concat(s,"`. Did you mean `").concat(r,"` or `{'").concat(s,"'}`?")}),UnsupportedJsxValue:t("JSX value should be either an expression or a quoted JSX text."),UnterminatedJsxContent:t("Unterminated JSX contents."),UnwrappedAdjacentJSXElements:t("Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?")}));function Ce(t){return t?t.type==="JSXOpeningFragment"||t.type==="JSXClosingFragment":!1}function Ue(t){if(t.type==="JSXIdentifier")return t.name;if(t.type==="JSXNamespacedName")return t.namespace.name+":"+t.name.name;if(t.type==="JSXMemberExpression")return Ue(t.object)+"."+Ue(t.property);throw new Error("Node had unexpected type: "+t.type)}var Lh=t=>class extends t{jsxReadToken(){let e="",s=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(Ie.UnterminatedJsxContent,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?r===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(138)):super.getTokenFromCode(r):(e+=this.input.slice(s,this.state.pos),this.finishToken(137,e));case 38:e+=this.input.slice(s,this.state.pos),e+=this.jsxReadEntity(),s=this.state.pos;break;case 62:case 125:default:Ne(r)?(e+=this.input.slice(s,this.state.pos),e+=this.jsxReadNewLine(!0),s=this.state.pos):++this.state.pos}}}jsxReadNewLine(e){let s=this.input.charCodeAt(this.state.pos),r;return++this.state.pos,s===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,r=e?` +`:`\r +`):r=String.fromCharCode(s),++this.state.curLine,this.state.lineStart=this.state.pos,r}jsxReadString(e){let s="",r=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedString,{at:this.state.startLoc});let i=this.input.charCodeAt(this.state.pos);if(i===e)break;i===38?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadEntity(),r=this.state.pos):Ne(i)?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return s+=this.input.slice(r,this.state.pos++),this.finishToken(129,s)}jsxReadEntity(){let e=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let s=10;this.codePointAtPos(this.state.pos)===120&&(s=16,++this.state.pos);let r=this.readInt(s,void 0,!1,"bail");if(r!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(r)}else{let s=0,r=!1;for(;s++<10&&this.state.posObject.hasOwnProperty.call(t,e)&&t[e];function Rh(t){if(t==null)throw new Error("Unexpected ".concat(t," value."));return t}function Br(t){if(!t)throw new Error("Assert fail")}function jh(t){return Vt(t)||Oo(t)}var S=j(Vn||(Vn=rt(["typescript"])))(t=>({AbstractMethodHasImplementation:t(e=>{let{methodName:s}=e;return"Method '".concat(s,"' cannot have an implementation because it is marked abstract.")}),AbstractPropertyHasInitializer:t(e=>{let{propertyName:s}=e;return"Property '".concat(s,"' cannot have an initializer because it is marked abstract.")}),AccesorCannotDeclareThisParameter:t("'get' and 'set' accessors cannot declare 'this' parameters."),AccesorCannotHaveTypeParameters:t("An accessor cannot have type parameters."),CannotFindName:t(e=>{let{name:s}=e;return"Cannot find name '".concat(s,"'.")}),ClassMethodHasDeclare:t("Class methods cannot have the 'declare' modifier."),ClassMethodHasReadonly:t("Class methods cannot have the 'readonly' modifier."),ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:t("A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),ConstructorHasTypeParameters:t("Type parameters cannot appear on a constructor declaration."),DeclareAccessor:t(e=>{let{kind:s}=e;return"'declare' is not allowed in ".concat(s,"ters.")}),DeclareClassFieldHasInitializer:t("Initializers are not allowed in ambient contexts."),DeclareFunctionHasImplementation:t("An implementation cannot be declared in ambient contexts."),DuplicateAccessibilityModifier:t(e=>{let{modifier:s}=e;return"Accessibility modifier already seen."}),DuplicateModifier:t(e=>{let{modifier:s}=e;return"Duplicate modifier: '".concat(s,"'.")}),EmptyHeritageClauseType:t(e=>{let{token:s}=e;return"'".concat(s,"' list cannot be empty.")}),EmptyTypeArguments:t("Type argument list cannot be empty."),EmptyTypeParameters:t("Type parameter list cannot be empty."),ExpectedAmbientAfterExportDeclare:t("'export declare' must be followed by an ambient declaration."),ImportAliasHasImportType:t("An import alias can not use 'import type'."),IncompatibleModifiers:t(e=>{let{modifiers:s}=e;return"'".concat(s[0],"' modifier cannot be used with '").concat(s[1],"' modifier.")}),IndexSignatureHasAbstract:t("Index signatures cannot have the 'abstract' modifier."),IndexSignatureHasAccessibility:t(e=>{let{modifier:s}=e;return"Index signatures cannot have an accessibility modifier ('".concat(s,"').")}),IndexSignatureHasDeclare:t("Index signatures cannot have the 'declare' modifier."),IndexSignatureHasOverride:t("'override' modifier cannot appear on an index signature."),IndexSignatureHasStatic:t("Index signatures cannot have the 'static' modifier."),InitializerNotAllowedInAmbientContext:t("Initializers are not allowed in ambient contexts."),InvalidModifierOnTypeMember:t(e=>{let{modifier:s}=e;return"'".concat(s,"' modifier cannot appear on a type member.")}),InvalidModifierOnTypeParameter:t(e=>{let{modifier:s}=e;return"'".concat(s,"' modifier cannot appear on a type parameter.")}),InvalidModifierOnTypeParameterPositions:t(e=>{let{modifier:s}=e;return"'".concat(s,"' modifier can only appear on a type parameter of a class, interface or type alias.")}),InvalidModifiersOrder:t(e=>{let{orderedModifiers:s}=e;return"'".concat(s[0],"' modifier must precede '").concat(s[1],"' modifier.")}),InvalidTupleMemberLabel:t("Tuple members must be labeled with a simple identifier."),MissingInterfaceName:t("'interface' declarations must be followed by an identifier."),MixedLabeledAndUnlabeledElements:t("Tuple members must all have names or all not have names."),NonAbstractClassHasAbstractMethod:t("Abstract methods can only appear within an abstract class."),NonClassMethodPropertyHasAbstractModifer:t("'abstract' modifier can only appear on a class, method, or property declaration."),OptionalTypeBeforeRequired:t("A required element cannot follow an optional element."),OverrideNotInSubClass:t("This member cannot have an 'override' modifier because its containing class does not extend another class."),PatternIsOptional:t("A binding pattern parameter cannot be optional in an implementation signature."),PrivateElementHasAbstract:t("Private elements cannot have the 'abstract' modifier."),PrivateElementHasAccessibility:t(e=>{let{modifier:s}=e;return"Private elements cannot have an accessibility modifier ('".concat(s,"').")}),ReadonlyForMethodSignature:t("'readonly' modifier can only appear on a property declaration or index signature."),ReservedArrowTypeParam:t("This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`."),ReservedTypeAssertion:t("This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),SetAccesorCannotHaveOptionalParameter:t("A 'set' accessor cannot have an optional parameter."),SetAccesorCannotHaveRestParameter:t("A 'set' accessor cannot have rest parameter."),SetAccesorCannotHaveReturnType:t("A 'set' accessor cannot have a return type annotation."),SingleTypeParameterWithoutTrailingComma:t(e=>{let{typeParameterName:s}=e;return"Single type parameter ".concat(s," should have a trailing comma. Example usage: <").concat(s,",>.")}),StaticBlockCannotHaveModifier:t("Static class blocks cannot have any modifier."),TypeAnnotationAfterAssign:t("Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`."),TypeImportCannotSpecifyDefaultAndNamed:t("A type-only import can specify a default import or named bindings, but not both."),TypeModifierIsUsedInTypeExports:t("The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),TypeModifierIsUsedInTypeImports:t("The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),UnexpectedParameterModifier:t("A parameter property is only allowed in a constructor implementation."),UnexpectedReadonly:t("'readonly' type modifier is only permitted on array and tuple literal types."),UnexpectedTypeAnnotation:t("Did not expect a type annotation here."),UnexpectedTypeCastInParameter:t("Unexpected type cast in parameter position."),UnsupportedImportTypeArgument:t("Argument in a type import must be a string literal."),UnsupportedParameterPropertyKind:t("A parameter property may not be declared using a binding pattern."),UnsupportedSignatureParameterKind:t(e=>{let{type:s}=e;return"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ".concat(s,".")})}));function qh(t){switch(t){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function Mr(t){return t==="private"||t==="public"||t==="protected"}function Uh(t){return t==="in"||t==="out"}var _h=t=>class extends t{getScopeHandler(){return Bh}tsIsIdentifier(){return K(this.state.type)}tsTokenCanFollowModifier(){return(this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(134)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()}tsNextTokenCanFollowModifier(){return this.next(),this.tsTokenCanFollowModifier()}tsParseModifier(e,s){if(!K(this.state.type)&&this.state.type!==58)return;let r=this.state.value;if(e.indexOf(r)!==-1){if(s&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return r}}tsParseModifiers(e){let{modified:s,allowedModifiers:r,disallowedModifiers:i,stopOnStartOfClassStaticBlock:a,errorTemplate:n=S.InvalidModifierOnTypeMember}=e,o=(f,y,P,v)=>{y===P&&s[v]&&this.raise(S.InvalidModifiersOrder,{at:f,orderedModifiers:[P,v]})},c=(f,y,P,v)=>{(s[P]&&y===v||s[v]&&y===P)&&this.raise(S.IncompatibleModifiers,{at:f,modifiers:[P,v]})};for(;;){let{startLoc:f}=this.state,y=this.tsParseModifier(r.concat(i!=null?i:[]),a);if(!y)break;Mr(y)?s.accessibility?this.raise(S.DuplicateAccessibilityModifier,{at:f,modifier:y}):(o(f,y,y,"override"),o(f,y,y,"static"),o(f,y,y,"readonly"),s.accessibility=y):Uh(y)?(s[y]&&this.raise(S.DuplicateModifier,{at:f,modifier:y}),s[y]=!0,o(f,y,"in","out")):(Object.hasOwnProperty.call(s,y)?this.raise(S.DuplicateModifier,{at:f,modifier:y}):(o(f,y,"static","readonly"),o(f,y,"static","override"),o(f,y,"override","readonly"),o(f,y,"abstract","override"),c(f,y,"declare","override"),c(f,y,"static","abstract")),s[y]=!0),i!=null&&i.includes(y)&&this.raise(n,{at:f,modifier:y})}}tsIsListTerminator(e){switch(e){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}throw new Error("Unreachable")}tsParseList(e,s){let r=[];for(;!this.tsIsListTerminator(e);)r.push(s());return r}tsParseDelimitedList(e,s,r){return Rh(this.tsParseDelimitedListWorker(e,s,!0,r))}tsParseDelimitedListWorker(e,s,r,i){let a=[],n=-1;for(;!this.tsIsListTerminator(e);){n=-1;let o=s();if(o==null)return;if(a.push(o),this.eat(12)){n=this.state.lastTokStart;continue}if(this.tsIsListTerminator(e))break;r&&this.expect(12);return}return i&&(i.value=n),a}tsParseBracketedList(e,s,r,i,a){i||(r?this.expect(0):this.expect(47));let n=this.tsParseDelimitedList(e,s,a);return r?this.expect(3):this.expect(48),n}tsParseImportType(){let e=this.startNode();return this.expect(83),this.expect(10),this.match(129)||this.raise(S.UnsupportedImportTypeArgument,{at:this.state.startLoc}),e.argument=this.parseExprAtom(),this.expect(11),this.eat(16)&&(e.qualifier=this.tsParseEntityName()),this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSImportType")}tsParseEntityName(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=this.parseIdentifier(e);for(;this.eat(16);){let r=this.startNodeAtNode(s);r.left=s,r.right=this.parseIdentifier(e),s=this.finishNode(r,"TSQualifiedName")}return s}tsParseTypeReference(){let e=this.startNode();return e.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSTypeReference")}tsParseThisTypePredicate(e){this.next();let s=this.startNodeAtNode(e);return s.parameterName=e,s.typeAnnotation=this.tsParseTypeAnnotation(!1),s.asserts=!1,this.finishNode(s,"TSTypePredicate")}tsParseThisTypeNode(){let e=this.startNode();return this.next(),this.finishNode(e,"TSThisType")}tsParseTypeQuery(){let e=this.startNode();return this.expect(87),this.match(83)?e.exprName=this.tsParseImportType():e.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSTypeQuery")}tsParseInOutModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:["in","out"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:S.InvalidModifierOnTypeParameter})}tsParseNoneModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:[],disallowedModifiers:["in","out"],errorTemplate:S.InvalidModifierOnTypeParameterPositions})}tsParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.tsParseNoneModifiers.bind(this),s=this.startNode();return e(s),s.name=this.tsParseTypeParameterName(),s.constraint=this.tsEatThenParseType(81),s.default=this.tsEatThenParseType(29),this.finishNode(s,"TSTypeParameter")}tsTryParseTypeParameters(e){if(this.match(47))return this.tsParseTypeParameters(e)}tsParseTypeParameters(e){let s=this.startNode();this.match(47)||this.match(138)?this.next():this.unexpected();let r={value:-1};return s.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,e),!1,!0,r),s.params.length===0&&this.raise(S.EmptyTypeParameters,{at:s}),r.value!==-1&&this.addExtra(s,"trailingComma",r.value),this.finishNode(s,"TSTypeParameterDeclaration")}tsTryNextParseConstantContext(){if(this.lookahead().type!==75)return null;this.next();let e=this.tsParseTypeReference();return e.typeParameters&&this.raise(S.CannotFindName,{at:e.typeName,name:"const"}),e}tsFillSignature(e,s){let r=e===19,i="parameters",a="typeAnnotation";s.typeParameters=this.tsTryParseTypeParameters(),this.expect(10),s[i]=this.tsParseBindingListForSignature(),r?s[a]=this.tsParseTypeOrTypePredicateAnnotation(e):this.match(e)&&(s[a]=this.tsParseTypeOrTypePredicateAnnotation(e))}tsParseBindingListForSignature(){return this.parseBindingList(11,41).map(e=>(e.type!=="Identifier"&&e.type!=="RestElement"&&e.type!=="ObjectPattern"&&e.type!=="ArrayPattern"&&this.raise(S.UnsupportedSignatureParameterKind,{at:e,type:e.type}),e))}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(e,s){return this.tsFillSignature(14,s),this.tsParseTypeMemberSemicolon(),this.finishNode(s,e)}tsIsUnambiguouslyIndexSignature(){return this.next(),K(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(e){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);let s=this.parseIdentifier();s.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(s),this.expect(3),e.parameters=[s];let r=this.tsTryParseTypeAnnotation();return r&&(e.typeAnnotation=r),this.tsParseTypeMemberSemicolon(),this.finishNode(e,"TSIndexSignature")}tsParsePropertyOrMethodSignature(e,s){this.eat(17)&&(e.optional=!0);let r=e;if(this.match(10)||this.match(47)){s&&this.raise(S.ReadonlyForMethodSignature,{at:e});let i=r;i.kind&&this.match(47)&&this.raise(S.AccesorCannotHaveTypeParameters,{at:this.state.curPosition()}),this.tsFillSignature(14,i),this.tsParseTypeMemberSemicolon();let a="parameters",n="typeAnnotation";if(i.kind==="get")i[a].length>0&&(this.raise(u.BadGetterArity,{at:this.state.curPosition()}),this.isThisParam(i[a][0])&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}));else if(i.kind==="set"){if(i[a].length!==1)this.raise(u.BadSetterArity,{at:this.state.curPosition()});else{let o=i[a][0];this.isThisParam(o)&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}),o.type==="Identifier"&&o.optional&&this.raise(S.SetAccesorCannotHaveOptionalParameter,{at:this.state.curPosition()}),o.type==="RestElement"&&this.raise(S.SetAccesorCannotHaveRestParameter,{at:this.state.curPosition()})}i[n]&&this.raise(S.SetAccesorCannotHaveReturnType,{at:i[n]})}else i.kind="method";return this.finishNode(i,"TSMethodSignature")}else{let i=r;s&&(i.readonly=!0);let a=this.tsTryParseTypeAnnotation();return a&&(i.typeAnnotation=a),this.tsParseTypeMemberSemicolon(),this.finishNode(i,"TSPropertySignature")}}tsParseTypeMember(){let e=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",e);if(this.match(77)){let r=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",e):(e.key=this.createIdentifier(r,"new"),this.tsParsePropertyOrMethodSignature(e,!1))}this.tsParseModifiers({modified:e,allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]});let s=this.tsTryParseIndexSignature(e);return s||(this.parsePropertyName(e),!e.computed&&e.key.type==="Identifier"&&(e.key.name==="get"||e.key.name==="set")&&this.tsTokenCanFollowModifier()&&(e.kind=e.key.name,this.parsePropertyName(e)),this.tsParsePropertyOrMethodSignature(e,!!e.readonly))}tsParseTypeLiteral(){let e=this.startNode();return e.members=this.tsParseObjectTypeMembers(),this.finishNode(e,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(5);let e=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),e}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(118):(this.isContextual(118)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedTypeParameter(){let e=this.startNode();return e.name=this.tsParseTypeParameterName(),e.constraint=this.tsExpectThenParseType(58),this.finishNode(e,"TSTypeParameter")}tsParseMappedType(){let e=this.startNode();return this.expect(5),this.match(53)?(e.readonly=this.state.value,this.next(),this.expectContextual(118)):this.eatContextual(118)&&(e.readonly=!0),this.expect(0),e.typeParameter=this.tsParseMappedTypeParameter(),e.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(e.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(e.optional=!0),e.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(e,"TSMappedType")}tsParseTupleType(){let e=this.startNode();e.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let s=!1,r=null;return e.elementTypes.forEach(i=>{var a;let{type:n}=i;s&&n!=="TSRestType"&&n!=="TSOptionalType"&&!(n==="TSNamedTupleMember"&&i.optional)&&this.raise(S.OptionalTypeBeforeRequired,{at:i}),s=s||n==="TSNamedTupleMember"&&i.optional||n==="TSOptionalType",n==="TSRestType"&&(i=i.typeAnnotation,n=i.type);let o=n==="TSNamedTupleMember";r=(a=r)!=null?a:o,r!==o&&this.raise(S.MixedLabeledAndUnlabeledElements,{at:i})}),this.finishNode(e,"TSTupleType")}tsParseTupleElementType(){let{start:e,startLoc:s}=this.state,r=this.eat(21),i=this.tsParseType(),a=this.eat(17);if(this.eat(14)){let o=this.startNodeAtNode(i);o.optional=a,i.type==="TSTypeReference"&&!i.typeParameters&&i.typeName.type==="Identifier"?o.label=i.typeName:(this.raise(S.InvalidTupleMemberLabel,{at:i}),o.label=i),o.elementType=this.tsParseType(),i=this.finishNode(o,"TSNamedTupleMember")}else if(a){let o=this.startNodeAtNode(i);o.typeAnnotation=i,i=this.finishNode(o,"TSOptionalType")}if(r){let o=this.startNodeAt(e,s);o.typeAnnotation=i,i=this.finishNode(o,"TSRestType")}return i}tsParseParenthesizedType(){let e=this.startNode();return this.expect(10),e.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(e,"TSParenthesizedType")}tsParseFunctionOrConstructorType(e,s){let r=this.startNode();return e==="TSConstructorType"&&(r.abstract=!!s,s&&this.next(),this.next()),this.tsFillSignature(19,r),this.finishNode(r,e)}tsParseLiteralTypeNode(){let e=this.startNode();return e.literal=(()=>{switch(this.state.type){case 130:case 131:case 129:case 85:case 86:return this.parseExprAtom();default:throw this.unexpected()}})(),this.finishNode(e,"TSLiteralType")}tsParseTemplateLiteralType(){let e=this.startNode();return e.literal=this.parseTemplate(!1),this.finishNode(e,"TSLiteralType")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){let e=this.tsParseThisTypeNode();return this.isContextual(113)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(e):e}tsParseNonArrayType(){switch(this.state.type){case 129:case 130:case 131:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){let e=this.startNode(),s=this.lookahead();if(s.type!==130&&s.type!==131)throw this.unexpected();return e.literal=this.parseMaybeUnary(),this.finishNode(e,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{let{type:e}=this.state;if(K(e)||e===88||e===84){let s=e===88?"TSVoidKeyword":e===84?"TSNullKeyword":qh(this.state.value);if(s!==void 0&&this.lookaheadCharCode()!==46){let r=this.startNode();return this.next(),this.finishNode(r,s)}return this.tsParseTypeReference()}}}throw this.unexpected()}tsParseArrayTypeOrHigher(){let e=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){let s=this.startNodeAtNode(e);s.elementType=e,this.expect(3),e=this.finishNode(s,"TSArrayType")}else{let s=this.startNodeAtNode(e);s.objectType=e,s.indexType=this.tsParseType(),this.expect(3),e=this.finishNode(s,"TSIndexedAccessType")}return e}tsParseTypeOperator(){let e=this.startNode(),s=this.state.value;return this.next(),e.operator=s,e.typeAnnotation=this.tsParseTypeOperatorOrHigher(),s==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(e),this.finishNode(e,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(e){switch(e.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(S.UnexpectedReadonly,{at:e})}}tsParseInferType(){let e=this.startNode();this.expectContextual(112);let s=this.startNode();return s.name=this.tsParseTypeParameterName(),s.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),e.typeParameter=this.finishNode(s,"TSTypeParameter"),this.finishNode(e,"TSInferType")}tsParseConstraintForInferType(){if(this.eat(81)){let e=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return e}}tsParseTypeOperatorOrHigher(){return Fo(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(112)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(e,s,r){let i=this.startNode(),a=this.eat(r),n=[];do n.push(s());while(this.eat(r));return n.length===1&&!a?n[0]:(i.types=n,this.finishNode(i,e))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(K(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){let{errors:e}=this.state,s=e.length;try{return this.parseObjectLike(8,!0),e.length===s}catch{return!1}}if(this.match(0)){this.next();let{errors:e}=this.state,s=e.length;try{return this.parseBindingList(3,93,!0),e.length===s}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(e){return this.tsInType(()=>{let s=this.startNode();this.expect(e);let r=this.startNode(),i=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(i&&this.match(78)){let o=this.tsParseThisTypeOrThisTypePredicate();return o.type==="TSThisType"?(r.parameterName=o,r.asserts=!0,r.typeAnnotation=null,o=this.finishNode(r,"TSTypePredicate")):(this.resetStartLocationFromNode(o,r),o.asserts=!0),s.typeAnnotation=o,this.finishNode(s,"TSTypeAnnotation")}let a=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!a)return i?(r.parameterName=this.parseIdentifier(),r.asserts=i,r.typeAnnotation=null,s.typeAnnotation=this.finishNode(r,"TSTypePredicate"),this.finishNode(s,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,s);let n=this.tsParseTypeAnnotation(!1);return r.parameterName=a,r.typeAnnotation=n,r.asserts=i,s.typeAnnotation=this.finishNode(r,"TSTypePredicate"),this.finishNode(s,"TSTypeAnnotation")})}tsTryParseTypeOrTypePredicateAnnotation(){return this.match(14)?this.tsParseTypeOrTypePredicateAnnotation(14):void 0}tsTryParseTypeAnnotation(){return this.match(14)?this.tsParseTypeAnnotation():void 0}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){let e=this.parseIdentifier();if(this.isContextual(113)&&!this.hasPrecedingLineBreak())return this.next(),e}tsParseTypePredicateAsserts(){if(this.state.type!==106)return!1;let e=this.state.containsEsc;return this.next(),!K(this.state.type)&&!this.match(78)?!1:(e&&this.raise(u.InvalidEscapedReservedWord,{at:this.state.lastTokStartLoc,reservedWord:"asserts"}),!0)}tsParseTypeAnnotation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.startNode();return this.tsInType(()=>{e&&this.expect(14),s.typeAnnotation=this.tsParseType()}),this.finishNode(s,"TSTypeAnnotation")}tsParseType(){Br(this.state.inType);let e=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return e;let s=this.startNodeAtNode(e);return s.checkType=e,s.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),s.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),s.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(s,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual(120)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(S.ReservedTypeAssertion,{at:this.state.startLoc});let e=this.startNode(),s=this.tsTryNextParseConstantContext();return e.typeAnnotation=s||this.tsNextThenParseType(),this.expect(48),e.expression=this.parseMaybeUnary(),this.finishNode(e,"TSTypeAssertion")}tsParseHeritageClause(e){let s=this.state.startLoc,r=this.tsParseDelimitedList("HeritageClauseElement",()=>{let i=this.startNode();return i.expression=this.tsParseEntityName(),this.match(47)&&(i.typeParameters=this.tsParseTypeArguments()),this.finishNode(i,"TSExpressionWithTypeArguments")});return r.length||this.raise(S.EmptyHeritageClauseType,{at:s,token:e}),r}tsParseInterfaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.hasFollowingLineBreak())return null;this.expectContextual(125),s.declare&&(e.declare=!0),K(this.state.type)?(e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Wo)):(e.id=null,this.raise(S.MissingInterfaceName,{at:this.state.startLoc})),e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.eat(81)&&(e.extends=this.tsParseHeritageClause("extends"));let r=this.startNode();return r.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),e.body=this.finishNode(r,"TSInterfaceBody"),this.finishNode(e,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(e){return e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Go),e.typeAnnotation=this.tsInType(()=>{if(e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.expect(29),this.isContextual(111)&&this.lookahead().type!==16){let s=this.startNode();return this.next(),this.finishNode(s,"TSIntrinsicKeyword")}return this.tsParseType()}),this.semicolon(),this.finishNode(e,"TSTypeAliasDeclaration")}tsInNoContext(e){let s=this.state.context;this.state.context=[s[0]];try{return e()}finally{this.state.context=s}}tsInType(e){let s=this.state.inType;this.state.inType=!0;try{return e()}finally{this.state.inType=s}}tsInDisallowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsInAllowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsEatThenParseType(e){return this.match(e)?this.tsNextThenParseType():void 0}tsExpectThenParseType(e){return this.tsDoThenParseType(()=>this.expect(e))}tsNextThenParseType(){return this.tsDoThenParseType(()=>this.next())}tsDoThenParseType(e){return this.tsInType(()=>(e(),this.tsParseType()))}tsParseEnumMember(){let e=this.startNode();return e.id=this.match(129)?this.parseExprAtom():this.parseIdentifier(!0),this.eat(29)&&(e.initializer=this.parseMaybeAssignAllowIn()),this.finishNode(e,"TSEnumMember")}tsParseEnumDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return s.const&&(e.const=!0),s.declare&&(e.declare=!0),this.expectContextual(122),e.id=this.parseIdentifier(),this.checkIdentifier(e.id,e.const?Jo:Er),this.expect(5),e.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(e,"TSEnumDeclaration")}tsParseModuleBlock(){let e=this.startNode();return this.scope.enter(Me),this.expect(5),this.parseBlockOrModuleBlockBody(e.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(e,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.parseIdentifier(),s||this.checkIdentifier(e.id,Yo),this.eat(16)){let r=this.startNode();this.tsParseModuleOrNamespaceDeclaration(r,!0),e.body=r}else this.scope.enter(ht),this.prodParam.enter(je),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(e,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(e){return this.isContextual(109)?(e.global=!0,e.id=this.parseIdentifier()):this.match(129)?e.id=this.parseExprAtom():this.unexpected(),this.match(5)?(this.scope.enter(ht),this.prodParam.enter(je),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(e,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(e,s){e.isExport=s||!1,e.id=this.parseIdentifier(),this.checkIdentifier(e.id,xe),this.expect(29);let r=this.tsParseModuleReference();return e.importKind==="type"&&r.type!=="TSExternalModuleReference"&&this.raise(S.ImportAliasHasImportType,{at:r}),e.moduleReference=r,this.semicolon(),this.finishNode(e,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual(116)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){let e=this.startNode();if(this.expectContextual(116),this.expect(10),!this.match(129))throw this.unexpected();return e.expression=this.parseExprAtom(),this.expect(11),this.finishNode(e,"TSExternalModuleReference")}tsLookAhead(e){let s=this.state.clone(),r=e();return this.state=s,r}tsTryParseAndCatch(e){let s=this.tryParse(r=>e()||r());if(!(s.aborted||!s.node))return s.error&&(this.state=s.failState),s.node}tsTryParse(e){let s=this.state.clone(),r=e();if(r!==void 0&&r!==!1)return r;this.state=s}tsTryParseDeclare(e){if(this.isLineTerminator())return;let s=this.state.type,r;return this.isContextual(99)&&(s=74,r="let"),this.tsInAmbientContext(()=>{if(s===68)return e.declare=!0,this.parseFunctionStatement(e,!1,!0);if(s===80)return e.declare=!0,this.parseClass(e,!0,!1);if(s===122)return this.tsParseEnumDeclaration(e,{declare:!0});if(s===109)return this.tsParseAmbientExternalModuleDeclaration(e);if(s===75||s===74)return!this.match(75)||!this.isLookaheadContextual("enum")?(e.declare=!0,this.parseVarStatement(e,r||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(e,{const:!0,declare:!0}));if(s===125){let i=this.tsParseInterfaceDeclaration(e,{declare:!0});if(i)return i}if(K(s))return this.tsParseDeclaration(e,this.state.value,!0)})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0)}tsParseExpressionStatement(e,s){switch(s.name){case"declare":{let r=this.tsTryParseDeclare(e);if(r)return r.declare=!0,r;break}case"global":if(this.match(5)){this.scope.enter(ht),this.prodParam.enter(je);let r=e;return r.global=!0,r.id=s,r.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(r,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(e,s.name,!1)}}tsParseDeclaration(e,s,r){switch(s){case"abstract":if(this.tsCheckLineTerminator(r)&&(this.match(80)||K(this.state.type)))return this.tsParseAbstractDeclaration(e);break;case"module":if(this.tsCheckLineTerminator(r)){if(this.match(129))return this.tsParseAmbientExternalModuleDeclaration(e);if(K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e)}break;case"namespace":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e);break;case"type":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseTypeAliasDeclaration(e);break}}tsCheckLineTerminator(e){return e?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(e,s){if(!this.match(47))return;let r=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;let i=this.tsTryParseAndCatch(()=>{let a=this.startNodeAt(e,s);return a.typeParameters=this.tsParseTypeParameters(),super.parseFunctionParams(a),a.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),a});if(this.state.maybeInArrowParameters=r,!!i)return this.parseArrowExpression(i,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){let e=this.startNode();return e.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))),e.params.length===0&&this.raise(S.EmptyTypeArguments,{at:e}),this.expect(48),this.finishNode(e,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){return Lo(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(e,s){let r=this.state.start,i=this.state.startLoc,a,n=!1,o=!1;if(e!==void 0){let y={};this.tsParseModifiers({modified:y,allowedModifiers:["public","private","protected","override","readonly"]}),a=y.accessibility,o=y.override,n=y.readonly,e===!1&&(a||n||o)&&this.raise(S.UnexpectedParameterModifier,{at:i})}let c=this.parseMaybeDefault();this.parseAssignableListItemTypes(c);let f=this.parseMaybeDefault(c.start,c.loc.start,c);if(a||n||o){let y=this.startNodeAt(r,i);return s.length&&(y.decorators=s),a&&(y.accessibility=a),n&&(y.readonly=n),o&&(y.override=o),f.type!=="Identifier"&&f.type!=="AssignmentPattern"&&this.raise(S.UnsupportedParameterPropertyKind,{at:y}),y.parameter=f,this.finishNode(y,"TSParameterProperty")}return s.length&&(c.decorators=s),f}isSimpleParameter(e){return e.type==="TSParameterProperty"&&super.isSimpleParameter(e.parameter)||super.isSimpleParameter(e)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.match(14)&&(e.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));let i=s==="FunctionDeclaration"?"TSDeclareFunction":s==="ClassMethod"||s==="ClassPrivateMethod"?"TSDeclareMethod":void 0;if(i&&!this.match(5)&&this.isLineTerminator()){this.finishNode(e,i);return}if(i==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(S.DeclareFunctionHasImplementation,{at:e}),e.declare)){super.parseFunctionBodyAndFinish(e,i,r);return}super.parseFunctionBodyAndFinish(e,s,r)}registerFunctionStatementId(e){!e.body&&e.id?this.checkIdentifier(e.id,Cr):super.registerFunctionStatementId(...arguments)}tsCheckForInvalidTypeCasts(e){e.forEach(s=>{(s==null?void 0:s.type)==="TSTypeCastExpression"&&this.raise(S.UnexpectedTypeAnnotation,{at:s.typeAnnotation})})}toReferencedList(e,s){return this.tsCheckForInvalidTypeCasts(e),e}parseArrayLike(){let e=super.parseArrayLike(...arguments);return e.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(e.elements),e}parseSubscript(e,s,r,i,a){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();let o=this.startNodeAt(s,r);return o.expression=e,this.finishNode(o,"TSNonNullExpression")}let n=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(i)return a.stop=!0,e;a.optionalChainMember=n=!0,this.next()}if(this.match(47)||this.match(51)){let o,c=this.tsTryParseAndCatch(()=>{if(!i&&this.atPossibleAsyncArrow(e)){let P=this.tsTryParseGenericAsyncArrowFunction(s,r);if(P)return P}let f=this.tsParseTypeArgumentsInExpression();if(!f)throw this.unexpected();if(n&&!this.match(10))throw o=this.state.curPosition(),this.unexpected();if(nt(this.state.type)){let P=this.parseTaggedTemplateExpression(e,s,r,a);return P.typeParameters=f,P}if(!i&&this.eat(10)){let P=this.startNodeAt(s,r);return P.callee=e,P.arguments=this.parseCallExpressionArguments(11,!1),this.tsCheckForInvalidTypeCasts(P.arguments),P.typeParameters=f,a.optionalChainMember&&(P.optional=n),this.finishCallExpression(P,a.optionalChainMember)}if(jh(this.state.type)&&this.state.type!==10)throw this.unexpected();let y=this.startNodeAt(s,r);return y.expression=e,y.typeParameters=f,this.finishNode(y,"TSInstantiationExpression")});if(o&&this.unexpected(o,10),c)return c}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){var s;super.parseNewCallee(e);let{callee:r}=e;r.type==="TSInstantiationExpression"&&!((s=r.extra)!=null&&s.parenthesized)&&(e.typeParameters=r.typeParameters,e.callee=r.expression)}parseExprOp(e,s,r,i){if(at(58)>i&&!this.hasPrecedingLineBreak()&&this.isContextual(93)){let a=this.startNodeAt(s,r);a.expression=e;let n=this.tsTryNextParseConstantContext();return n?a.typeAnnotation=n:a.typeAnnotation=this.tsNextThenParseType(),this.finishNode(a,"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(a,s,r,i)}return super.parseExprOp(e,s,r,i)}checkReservedWord(e,s,r,i){this.state.isAmbientContext||super.checkReservedWord(e,s,r,i)}checkDuplicateExports(){}parseImport(e){if(e.importKind="value",K(this.state.type)||this.match(55)||this.match(5)){let r=this.lookahead();if(this.isContextual(126)&&r.type!==12&&r.type!==97&&r.type!==29&&(e.importKind="type",this.next(),r=this.lookahead()),K(this.state.type)&&r.type===29)return this.tsParseImportEqualsDeclaration(e)}let s=super.parseImport(e);return s.importKind==="type"&&s.specifiers.length>1&&s.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(S.TypeImportCannotSpecifyDefaultAndNamed,{at:s}),s}parseExport(e){if(this.match(83))return this.next(),this.isContextual(126)&&this.lookaheadCharCode()!==61?(e.importKind="type",this.next()):e.importKind="value",this.tsParseImportEqualsDeclaration(e,!0);if(this.eat(29)){let s=e;return s.expression=this.parseExpression(),this.semicolon(),this.finishNode(s,"TSExportAssignment")}else if(this.eatContextual(93)){let s=e;return this.expectContextual(124),s.id=this.parseIdentifier(),this.semicolon(),this.finishNode(s,"TSNamespaceExportDeclaration")}else return this.isContextual(126)&&this.lookahead().type===5?(this.next(),e.exportKind="type"):e.exportKind="value",super.parseExport(e)}isAbstractClass(){return this.isContextual(120)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){let e=this.startNode();return this.next(),e.abstract=!0,this.parseClass(e,!0,!0),e}if(this.match(125)){let e=this.tsParseInterfaceDeclaration(this.startNode());if(e)return e}return super.parseExportDefaultExpression()}parseVarStatement(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,{isAmbientContext:i}=this.state,a=super.parseVarStatement(e,s,r||i);if(!i)return a;for(let{id:n,init:o}of a.declarations)!o||(s!=="const"||!!n.typeAnnotation?this.raise(S.InitializerNotAllowedInAmbientContext,{at:o}):o.type!=="StringLiteral"&&o.type!=="BooleanLiteral"&&o.type!=="NumericLiteral"&&o.type!=="BigIntLiteral"&&(o.type!=="TemplateLiteral"||o.expressions.length>0)&&!zh(o)&&this.raise(S.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,{at:o}));return a}parseStatementContent(e,s){if(this.match(75)&&this.isLookaheadContextual("enum")){let r=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(r,{const:!0})}if(this.isContextual(122))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(125)){let r=this.tsParseInterfaceDeclaration(this.startNode());if(r)return r}return super.parseStatementContent(e,s)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(e,s){return s.some(r=>Mr(r)?e.accessibility===r:!!e[r])}tsIsStartOfStaticBlocks(){return this.isContextual(104)&&this.lookaheadCharCode()===123}parseClassMember(e,s,r){let i=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({modified:s,allowedModifiers:i,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:S.InvalidModifierOnTypeParameterPositions});let a=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(s,i)&&this.raise(S.StaticBlockCannotHaveModifier,{at:this.state.curPosition()}),this.parseClassStaticBlock(e,s)):this.parseClassMemberWithIsStatic(e,s,r,!!s.static)};s.declare?this.tsInAmbientContext(a):a()}parseClassMemberWithIsStatic(e,s,r,i){let a=this.tsTryParseIndexSignature(s);if(a){e.body.push(a),s.abstract&&this.raise(S.IndexSignatureHasAbstract,{at:s}),s.accessibility&&this.raise(S.IndexSignatureHasAccessibility,{at:s,modifier:s.accessibility}),s.declare&&this.raise(S.IndexSignatureHasDeclare,{at:s}),s.override&&this.raise(S.IndexSignatureHasOverride,{at:s});return}!this.state.inAbstractClass&&s.abstract&&this.raise(S.NonAbstractClassHasAbstractMethod,{at:s}),s.override&&(r.hadSuperClass||this.raise(S.OverrideNotInSubClass,{at:s})),super.parseClassMemberWithIsStatic(e,s,r,i)}parsePostMemberNameModifiers(e){this.eat(17)&&(e.optional=!0),e.readonly&&this.match(10)&&this.raise(S.ClassMethodHasReadonly,{at:e}),e.declare&&this.match(10)&&this.raise(S.ClassMethodHasDeclare,{at:e})}parseExpressionStatement(e,s){return(s.type==="Identifier"?this.tsParseExpressionStatement(e,s):void 0)||super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(e,s,r,i){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(e,s,r,i);let a=this.tryParse(()=>super.parseConditional(e,s,r));return a.node?(a.error&&(this.state=a.failState),a.node):(a.error&&super.setOptionalParametersError(i,a.error),e)}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(i,"TSTypeCastExpression")}return e}parseExportDeclaration(e){if(!this.state.isAmbientContext&&this.isContextual(121))return this.tsInAmbientContext(()=>this.parseExportDeclaration(e));let s=this.state.start,r=this.state.startLoc,i=this.eatContextual(121);if(i&&(this.isContextual(121)||!this.shouldParseExportDeclaration()))throw this.raise(S.ExpectedAmbientAfterExportDeclare,{at:this.state.startLoc});let n=K(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(e);return n?((n.type==="TSInterfaceDeclaration"||n.type==="TSTypeAliasDeclaration"||i)&&(e.exportKind="type"),i&&(this.resetStartLocation(n,s,r),n.declare=!0),n):null}parseClassId(e,s,r){if((!s||r)&&this.isContextual(110))return;super.parseClassId(e,s,r,e.declare?Cr:Pr);let i=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this));i&&(e.typeParameters=i)}parseClassPropertyAnnotation(e){!e.optional&&this.eat(35)&&(e.definite=!0);let s=this.tsTryParseTypeAnnotation();s&&(e.typeAnnotation=s)}parseClassProperty(e){if(this.parseClassPropertyAnnotation(e),this.state.isAmbientContext&&this.match(29)&&this.raise(S.DeclareClassFieldHasInitializer,{at:this.state.startLoc}),e.abstract&&this.match(29)){let{key:s}=e;this.raise(S.AbstractPropertyHasInitializer,{at:this.state.startLoc,propertyName:s.type==="Identifier"&&!e.computed?s.name:"[".concat(this.input.slice(s.start,s.end),"]")})}return super.parseClassProperty(e)}parseClassPrivateProperty(e){return e.abstract&&this.raise(S.PrivateElementHasAbstract,{at:e}),e.accessibility&&this.raise(S.PrivateElementHasAccessibility,{at:e,modifier:e.accessibility}),this.parseClassPropertyAnnotation(e),super.parseClassPrivateProperty(e)}pushClassMethod(e,s,r,i,a,n){let o=this.tsTryParseTypeParameters();o&&a&&this.raise(S.ConstructorHasTypeParameters,{at:o});let{declare:c=!1,kind:f}=s;c&&(f==="get"||f==="set")&&this.raise(S.DeclareAccessor,{at:s,kind:f}),o&&(s.typeParameters=o),super.pushClassMethod(e,s,r,i,a,n)}pushClassPrivateMethod(e,s,r,i){let a=this.tsTryParseTypeParameters();a&&(s.typeParameters=a),super.pushClassPrivateMethod(e,s,r,i)}declareClassPrivateMethodInScope(e,s){e.type!=="TSDeclareMethod"&&(e.type==="MethodDefinition"&&!e.value.body||super.declareClassPrivateMethodInScope(e,s))}parseClassSuper(e){super.parseClassSuper(e),e.superClass&&(this.match(47)||this.match(51))&&(e.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(110)&&(e.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(e){let s=this.tsTryParseTypeParameters();s&&(e.typeParameters=s);for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;asuper.parseMaybeAssign(...s),P),!v.error)return v.node;let{context:Q}=this.state,re=Q[Q.length-1];(re===z.j_oTag||re===z.j_expr)&&Q.pop()}if(!((i=v)!=null&&i.error)&&!this.match(47))return super.parseMaybeAssign(...s);let B;P=P||this.state.clone();let _=this.tryParse(Q=>{var re,ne,$e;B=this.tsParseTypeParameters();let le=super.parseMaybeAssign(...s);return(le.type!=="ArrowFunctionExpression"||(re=le.extra)!=null&&re.parenthesized)&&Q(),((ne=B)==null?void 0:ne.params.length)!==0&&this.resetStartLocationFromNode(le,B),le.typeParameters=B,this.hasPlugin("jsx")&&le.typeParameters.params.length===1&&!(($e=le.typeParameters.extra)!=null&&$e.trailingComma)&&le.typeParameters.params[0].constraint,le},P);if(!_.error&&!_.aborted)return B&&this.reportReservedArrowTypeParam(B),_.node;if(!v&&(Br(!this.hasPlugin("jsx")),N=this.tryParse(()=>super.parseMaybeAssign(...s),P),!N.error))return N.node;if((a=v)!=null&&a.node)return this.state=v.failState,v.node;if(_.node)return this.state=_.failState,B&&this.reportReservedArrowTypeParam(B),_.node;if((n=N)!=null&&n.node)return this.state=N.failState,N.node;throw(o=v)!=null&&o.thrown?v.error:_.thrown?_.error:(c=N)!=null&&c.thrown?N.error:((f=v)==null?void 0:f.error)||_.error||((y=N)==null?void 0:y.error)}reportReservedArrowTypeParam(e){var s;e.params.length===1&&!((s=e.extra)!=null&&s.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(S.ReservedArrowTypeParam,{at:e})}parseMaybeUnary(e){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(e)}parseArrow(e){if(this.match(14)){let s=this.tryParse(r=>{let i=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&r(),i});if(s.aborted)return;s.thrown||(s.error&&(this.state=s.failState),e.returnType=s.node)}return super.parseArrow(e)}parseAssignableListItemTypes(e){this.eat(17)&&(e.type!=="Identifier"&&!this.state.isAmbientContext&&!this.state.inType&&this.raise(S.PatternIsOptional,{at:e}),e.optional=!0);let s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s),this.resetEndLocation(e),e}isAssignable(e,s){switch(e.type){case"TSTypeCastExpression":return this.isAssignable(e.expression,s);case"TSParameterProperty":return!0;default:return super.isAssignable(e,s)}}toAssignable(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;switch(e.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(e,s);break;case"TSAsExpression":case"TSNonNullExpression":case"TSTypeAssertion":s?this.expressionScope.recordArrowParemeterBindingError(S.UnexpectedTypeCastInParameter,{at:e}):this.raise(S.UnexpectedTypeCastInParameter,{at:e}),this.toAssignable(e.expression,s);break;case"AssignmentExpression":!s&&e.left.type==="TSTypeCastExpression"&&(e.left=this.typeCastToParameter(e.left));default:super.toAssignable(e,s)}}toAssignableParenthesizedExpression(e,s){switch(e.expression.type){case"TSAsExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(e.expression,s);break;default:super.toAssignable(e,s)}}checkToRestConversion(e,s){switch(e.type){case"TSAsExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(e.expression,!1);break;default:super.checkToRestConversion(e,s)}}isValidLVal(e,s,r){return Mh({TSTypeCastExpression:!0,TSParameterProperty:"parameter",TSNonNullExpression:"expression",TSAsExpression:(r!==we||!s)&&["expression",!0],TSTypeAssertion:(r!==we||!s)&&["expression",!0]},e)||super.isValidLVal(e,s,r)}parseBindingAtom(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseMaybeDecoratorArguments(e){if(this.match(47)||this.match(51)){let s=this.tsParseTypeArgumentsInExpression();if(this.match(10)){let r=super.parseMaybeDecoratorArguments(e);return r.typeParameters=s,r}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(e)}checkCommaAfterRest(e){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===e?(this.next(),!1):super.checkCommaAfterRest(e)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(){let e=super.parseMaybeDefault(...arguments);return e.type==="AssignmentPattern"&&e.typeAnnotation&&e.right.startthis.isAssignable(s,!0)):super.shouldParseArrow(e)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(e){if(this.match(47)||this.match(51)){let s=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());s&&(e.typeParameters=s)}return super.jsxParseOpeningElementAfterName(e)}getGetterSetterExpectedParamCount(e){let s=super.getGetterSetterExpectedParamCount(e),i=this.getObjectOrClassMethodParams(e)[0];return i&&this.isThisParam(i)?s+1:s}parseCatchClauseParam(){let e=super.parseCatchClauseParam(),s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s,this.resetEndLocation(e)),e}tsInAmbientContext(e){let s=this.state.isAmbientContext;this.state.isAmbientContext=!0;try{return e()}finally{this.state.isAmbientContext=s}}parseClass(e){let s=this.state.inAbstractClass;this.state.inAbstractClass=!!e.abstract;try{for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a0)?!1:Rr(t.object)}function Rr(t){return t.type==="Identifier"?!0:t.type!=="MemberExpression"||t.computed?!1:Rr(t.object)}var jr=j(Hn||(Hn=rt(["placeholders"])))(t=>({ClassNameIsRequired:t("A class name is required."),UnexpectedSpace:t("Unexpected space in placeholder.")})),Kh=t=>class extends t{parsePlaceholder(e){if(this.match(140)){let s=this.startNode();return this.next(),this.assertNoSpace(),s.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(140),this.finishPlaceholder(s,e)}}finishPlaceholder(e,s){let r=!!(e.expectedNode&&e.type==="Placeholder");return e.expectedNode=s,r?e:this.finishNode(e,"Placeholder")}getTokenFromCode(e){return e===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(140,2):super.getTokenFromCode(...arguments)}parseExprAtom(){return this.parsePlaceholder("Expression")||super.parseExprAtom(...arguments)}parseIdentifier(){return this.parsePlaceholder("Identifier")||super.parseIdentifier(...arguments)}checkReservedWord(e){e!==void 0&&super.checkReservedWord(...arguments)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom(...arguments)}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0?!0:super.maybeParseExportDefaultSpecifier(...arguments)}checkExport(e){let{specifiers:s}=e;s!=null&&s.length&&(e.specifiers=s.filter(r=>r.exported.type==="Placeholder")),super.checkExport(e),e.specifiers=s}parseImport(e){let s=this.parsePlaceholder("Identifier");if(!s)return super.parseImport(...arguments);if(e.specifiers=[],!this.isContextual(97)&&!this.match(12))return e.source=this.finishPlaceholder(s,"StringLiteral"),this.semicolon(),this.finishNode(e,"ImportDeclaration");let r=this.startNodeAtNode(s);return r.local=s,this.finishNode(r,"ImportDefaultSpecifier"),e.specifiers.push(r),this.eat(12)&&(this.maybeParseStarImportSpecifier(e)||this.parseNamedImportSpecifiers(e)),this.expectContextual(97),e.source=this.parseImportSource(),this.semicolon(),this.finishNode(e,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource(...arguments)}assertNoSpace(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(jr.UnexpectedSpace,{at:this.state.lastTokEndLoc})}},Vh=t=>class extends t{parseV8Intrinsic(){if(this.match(54)){let e=this.state.startLoc,s=this.startNode();if(this.next(),K(this.state.type)){let r=this.parseIdentifierName(this.state.start),i=this.createIdentifier(s,r);if(i.type="V8IntrinsicIdentifier",this.match(10))return i}this.unexpected(e)}}parseExprAtom(){return this.parseV8Intrinsic()||super.parseExprAtom(...arguments)}};function ee(t,e){let[s,r]=typeof e=="string"?[e,{}]:e,i=Object.keys(r),a=i.length===0;return t.some(n=>{if(typeof n=="string")return a&&n===s;{let[o,c]=n;if(o!==s)return!1;for(let f of i)if(c[f]!==r[f])return!1;return!0}})}function Je(t,e,s){let r=t.find(i=>Array.isArray(i)?i[0]===e:i===e);return r&&Array.isArray(r)?r[1][s]:null}var qr=["minimal","fsharp","hack","smart"],Ur=["^^","@@","^","%","#"],_r=["hash","bar"];function Hh(t){if(ee(t,"decorators")){if(ee(t,"decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");let e=Je(t,"decorators","decoratorsBeforeExport");if(e==null)throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option, whose value must be a boolean. If you are migrating from Babylon/Babel 6 or want to use the old decorators proposal, you should use the 'decorators-legacy' plugin instead of 'decorators'.");if(typeof e!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean.")}if(ee(t,"flow")&&ee(t,"typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(ee(t,"placeholders")&&ee(t,"v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(ee(t,"pipelineOperator")){let e=Je(t,"pipelineOperator","proposal");if(!qr.includes(e)){let r=qr.map(i=>'"'.concat(i,'"')).join(", ");throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '.concat(r,"."))}let s=ee(t,["recordAndTuple",{syntaxType:"hash"}]);if(e==="hack"){if(ee(t,"placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(ee(t,"v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");let r=Je(t,"pipelineOperator","topicToken");if(!Ur.includes(r)){let i=Ur.map(a=>'"'.concat(a,'"')).join(", ");throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '.concat(i,"."))}if(r==="#"&&s)throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.')}else if(e==="smart"&&s)throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.')}if(ee(t,"moduleAttributes")){if(ee(t,"importAssertions"))throw new Error("Cannot combine importAssertions and moduleAttributes plugins.");if(Je(t,"moduleAttributes","version")!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(ee(t,"recordAndTuple")&&!_r.includes(Je(t,"recordAndTuple","syntaxType")))throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: "+_r.map(e=>"'".concat(e,"'")).join(", "));if(ee(t,"asyncDoExpressions")&&!ee(t,"doExpressions")){let e=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw e.missingPlugins="doExpressions",e}}var zr={estree:Oe,jsx:Lh,flow:Dh,typescript:_h,v8intrinsic:Vh,placeholders:Kh},Wh=Object.keys(zr),Kr={sourceType:"script",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0};function Gh(t){let e={};for(let s of Object.keys(Kr))e[s]=t&&t[s]!=null?t[s]:Kr[s];return e}var Xh=(t,e)=>Object.hasOwnProperty.call(t,e)&&t[e],Vr=t=>t.type==="ParenthesizedExpression"?Vr(t.expression):t,Jh=class extends vh{toAssignable(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;var s,r;let i;switch((t.type==="ParenthesizedExpression"||(s=t.extra)!=null&&s.parenthesized)&&(i=Vr(t),e?i.type==="Identifier"?this.expressionScope.recordArrowParemeterBindingError(u.InvalidParenthesizedAssignment,{at:t}):i.type!=="MemberExpression"&&this.raise(u.InvalidParenthesizedAssignment,{at:t}):this.raise(u.InvalidParenthesizedAssignment,{at:t})),t.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern";for(let n=0,o=t.properties.length,c=o-1;nr.type!=="ObjectMethod"&&(i===s||r.type!=="SpreadElement")&&this.isAssignable(r))}case"ObjectProperty":return this.isAssignable(t.value);case"SpreadElement":return this.isAssignable(t.argument);case"ArrayExpression":return t.elements.every(s=>s===null||this.isAssignable(s));case"AssignmentExpression":return t.operator==="=";case"ParenthesizedExpression":return this.isAssignable(t.expression);case"MemberExpression":case"OptionalMemberExpression":return!e;default:return!1}}toReferencedList(t,e){return t}toReferencedListDeep(t,e){this.toReferencedList(t,e);for(let s of t)(s==null?void 0:s.type)==="ArrayExpression"&&this.toReferencedListDeep(s.elements)}parseSpread(t,e){let s=this.startNode();return this.next(),s.argument=this.parseMaybeAssignAllowIn(t,void 0,e),this.finishNode(s,"SpreadElement")}parseRestBinding(){let t=this.startNode();return this.next(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")}parseBindingAtom(){switch(this.state.type){case 0:{let t=this.startNode();return this.next(),t.elements=this.parseBindingList(3,93,!0),this.finishNode(t,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);)if(a?a=!1:this.expect(12),s&&this.match(12))i.push(null);else{if(this.eat(t))break;if(this.match(21)){if(i.push(this.parseAssignableListItemTypes(this.parseRestBinding())),!this.checkCommaAfterRest(e)){this.expect(t);break}}else{let n=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(u.UnsupportedParameterDecorator,{at:this.state.startLoc});this.match(26);)n.push(this.parseDecorator());i.push(this.parseAssignableListItem(r,n))}}return i}parseBindingRestProperty(t){return this.next(),t.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(t,"RestElement")}parseBindingProperty(){let t=this.startNode(),{type:e,start:s,startLoc:r}=this.state;return e===21?this.parseBindingRestProperty(t):(e===134?(this.expectPlugin("destructuringPrivate",r),this.classScope.usePrivateName(this.state.value,r),t.key=this.parsePrivateName()):this.parsePropertyName(t),t.method=!1,this.parseObjPropValue(t,s,r,!1,!1,!0,!1),t)}parseAssignableListItem(t,e){let s=this.parseMaybeDefault();this.parseAssignableListItemTypes(s);let r=this.parseMaybeDefault(s.start,s.loc.start,s);return e.length&&(s.decorators=e),r}parseAssignableListItemTypes(t){return t}parseMaybeDefault(t,e,s){var r,i,a;if(e=(r=e)!=null?r:this.state.startLoc,t=(i=t)!=null?i:this.state.start,s=(a=s)!=null?a:this.parseBindingAtom(),!this.eat(29))return s;let n=this.startNodeAt(t,e);return n.left=s,n.right=this.parseMaybeAssignAllowIn(),this.finishNode(n,"AssignmentPattern")}isValidLVal(t,e,s){return Xh({AssignmentPattern:"left",RestElement:"argument",ObjectProperty:"value",ParenthesizedExpression:"expression",ArrayPattern:"elements",ObjectPattern:"properties"},t)}checkLVal(t,e){let{in:s,binding:r=we,checkClashes:i=!1,strictModeChanged:a=!1,allowingSloppyLetBinding:n=!(r&Te),hasParenthesizedAncestor:o=!1}=e;var c;let f=t.type;if(this.isObjectMethod(t))return;if(f==="MemberExpression"){r!==we&&this.raise(u.InvalidPropertyBindingPattern,{at:t});return}if(t.type==="Identifier"){this.checkIdentifier(t,r,a,n);let{name:B}=t;i&&(i.has(B)?this.raise(u.ParamDupe,{at:t}):i.add(B));return}let y=this.isValidLVal(t.type,!(o||(c=t.extra)!=null&&c.parenthesized)&&s.type==="AssignmentExpression",r);if(y===!0)return;if(y===!1){let B=r===we?u.InvalidLhs:u.InvalidLhsBinding;this.raise(B,{at:t,ancestor:s.type==="UpdateExpression"?{type:"UpdateExpression",prefix:s.prefix}:{type:s.type}});return}let[P,v]=Array.isArray(y)?y:[y,f==="ParenthesizedExpression"],N=t.type==="ArrayPattern"||t.type==="ObjectPattern"||t.type==="ParenthesizedExpression"?t:s;for(let B of[].concat(t[P]))B&&this.checkLVal(B,{in:N,binding:r,checkClashes:i,allowingSloppyLetBinding:n,strictModeChanged:a,hasParenthesizedAncestor:v})}checkIdentifier(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!(e&Te);this.state.strict&&(s?mr(t.name,this.inModule):dr(t.name))&&(e===we?this.raise(u.StrictEvalArguments,{at:t,referenceName:t.name}):this.raise(u.StrictEvalArgumentsBinding,{at:t,bindingName:t.name})),!r&&t.name==="let"&&this.raise(u.LetInLexicalBinding,{at:t}),e&we||this.declareNameFromIdentifier(t,e)}declareNameFromIdentifier(t,e){this.scope.declareName(t.name,e,t.loc.start)}checkToRestConversion(t,e){switch(t.type){case"ParenthesizedExpression":this.checkToRestConversion(t.expression,e);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(e)break;default:this.raise(u.InvalidRestAssignmentPattern,{at:t})}}checkCommaAfterRest(t){return this.match(12)?(this.raise(this.lookaheadCharCode()===t?u.RestTrailingComma:u.ElementAfterRest,{at:this.state.startLoc}),!0):!1}},Yh=class extends Jh{checkProto(t,e,s,r){if(t.type==="SpreadElement"||this.isObjectMethod(t)||t.computed||t.shorthand)return;let i=t.key;if((i.type==="Identifier"?i.name:i.value)==="__proto__"){if(e){this.raise(u.RecordNoProto,{at:i});return}s.used&&(r?r.doubleProtoLoc===null&&(r.doubleProtoLoc=i.loc.start):this.raise(u.DuplicateProto,{at:i})),s.used=!0}}shouldExitDescending(t,e){return t.type==="ArrowFunctionExpression"&&t.start===e}getExpression(){this.enterInitialScopes(),this.nextToken();let t=this.parseExpression();return this.match(135)||this.unexpected(),this.finalizeRemainingComments(),t.comments=this.state.comments,t.errors=this.state.errors,this.options.tokens&&(t.tokens=this.tokens),t}parseExpression(t,e){return t?this.disallowInAnd(()=>this.parseExpressionBase(e)):this.allowInAnd(()=>this.parseExpressionBase(e))}parseExpressionBase(t){let e=this.state.start,s=this.state.startLoc,r=this.parseMaybeAssign(t);if(this.match(12)){let i=this.startNodeAt(e,s);for(i.expressions=[r];this.eat(12);)i.expressions.push(this.parseMaybeAssign(t));return this.toReferencedList(i.expressions),this.finishNode(i,"SequenceExpression")}return r}parseMaybeAssignDisallowIn(t,e){return this.disallowInAnd(()=>this.parseMaybeAssign(t,e))}parseMaybeAssignAllowIn(t,e){return this.allowInAnd(()=>this.parseMaybeAssign(t,e))}setOptionalParametersError(t,e){var s;t.optionalParametersLoc=(s=e==null?void 0:e.loc)!=null?s:this.state.startLoc}parseMaybeAssign(t,e){let s=this.state.start,r=this.state.startLoc;if(this.isContextual(105)&&this.prodParam.hasYield){let o=this.parseYield();return e&&(o=e.call(this,o,s,r)),o}let i;t?i=!1:(t=new At,i=!0);let{type:a}=this.state;(a===10||K(a))&&(this.state.potentialArrowAt=this.state.start);let n=this.parseMaybeConditional(t);if(e&&(n=e.call(this,n,s,r)),wo(this.state.type)){let o=this.startNodeAt(s,r),c=this.state.value;return o.operator=c,this.match(29)?(this.toAssignable(n,!0),o.left=n,t.doubleProtoLoc!=null&&t.doubleProtoLoc.index>=s&&(t.doubleProtoLoc=null),t.shorthandAssignLoc!=null&&t.shorthandAssignLoc.index>=s&&(t.shorthandAssignLoc=null),t.privateKeyLoc!=null&&t.privateKeyLoc.index>=s&&(this.checkDestructuringPrivate(t),t.privateKeyLoc=null)):o.left=n,this.next(),o.right=this.parseMaybeAssign(),this.checkLVal(n,{in:this.finishNode(o,"AssignmentExpression")}),o}else i&&this.checkExpressionErrors(t,!0);return n}parseMaybeConditional(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprOps(t);return this.shouldExitDescending(i,r)?i:this.parseConditional(i,e,s,t)}parseConditional(t,e,s,r){if(this.eat(17)){let i=this.startNodeAt(e,s);return i.test=t,i.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),i.alternate=this.parseMaybeAssign(),this.finishNode(i,"ConditionalExpression")}return t}parseMaybeUnaryOrPrivate(t){return this.match(134)?this.parsePrivateName():this.parseMaybeUnary(t)}parseExprOps(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseMaybeUnaryOrPrivate(t);return this.shouldExitDescending(i,r)?i:this.parseExprOp(i,e,s,-1)}parseExprOp(t,e,s,r){if(this.isPrivateName(t)){let a=this.getPrivateNameSV(t);(r>=at(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(u.PrivateInExpectedIn,{at:t,identifierName:a}),this.classScope.usePrivateName(a,t.loc.start)}let i=this.state.type;if(Io(i)&&(this.prodParam.hasIn||!this.match(58))){let a=at(i);if(a>r){if(i===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return t;this.checkPipelineAtInfixOperator(t,s)}let n=this.startNodeAt(e,s);n.left=t,n.operator=this.state.value;let o=i===41||i===42,c=i===40;if(c&&(a=at(42)),this.next(),i===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(u.UnexpectedAwaitAfterPipelineBody,{at:this.state.startLoc});n.right=this.parseExprOpRightExpr(i,a),this.finishNode(n,o||c?"LogicalExpression":"BinaryExpression");let f=this.state.type;if(c&&(f===41||f===42)||o&&f===40)throw this.raise(u.MixingCoalesceWithLogical,{at:this.state.startLoc});return this.parseExprOp(n,e,s,r)}}return t}parseExprOpRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;switch(t){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case"smart":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(105))throw this.raise(u.PipeBodyIsTighter,{at:this.state.startLoc});return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t,e),s,r)});case"fsharp":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(e))}default:return this.parseExprOpBaseRightExpr(t,e)}}parseExprOpBaseRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),s,r,Bo(t)?e-1:e)}parseHackPipeBody(){var t;let{startLoc:e}=this.state,s=this.parseMaybeAssign();return R.has(s.type)&&!((t=s.extra)!=null&&t.parenthesized)&&this.raise(u.PipeUnparenthesizedBody,{at:e,type:s.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(u.PipeTopicUnused,{at:e}),s}checkExponentialAfterUnary(t){this.match(57)&&this.raise(u.UnexpectedTokenUnaryExponentiation,{at:t.argument})}parseMaybeUnary(t,e){let s=this.state.start,r=this.state.startLoc,i=this.isContextual(96);if(i&&this.isAwaitAllowed()){this.next();let c=this.parseAwait(s,r);return e||this.checkExponentialAfterUnary(c),c}let a=this.match(34),n=this.startNode();if(Do(this.state.type)){n.operator=this.state.value,n.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");let c=this.match(89);if(this.next(),n.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),this.state.strict&&c){let f=n.argument;f.type==="Identifier"?this.raise(u.StrictDelete,{at:n}):this.hasPropertyAsPrivateName(f)&&this.raise(u.DeletePrivateField,{at:n})}if(!a)return e||this.checkExponentialAfterUnary(n),this.finishNode(n,"UnaryExpression")}let o=this.parseUpdate(n,a,t);if(i){let{type:c}=this.state;if((this.hasPlugin("v8intrinsic")?Vt(c):Vt(c)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(u.AwaitNotInAsyncContext,{at:r}),this.parseAwait(s,r)}return o}parseUpdate(t,e,s){if(e)return this.checkLVal(t.argument,{in:this.finishNode(t,"UpdateExpression")}),t;let r=this.state.start,i=this.state.startLoc,a=this.parseExprSubscripts(s);if(this.checkExpressionErrors(s,!1))return a;for(;ko(this.state.type)&&!this.canInsertSemicolon();){let n=this.startNodeAt(r,i);n.operator=this.state.value,n.prefix=!1,n.argument=a,this.next(),this.checkLVal(a,{in:a=this.finishNode(n,"UpdateExpression")})}return a}parseExprSubscripts(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprAtom(t);return this.shouldExitDescending(i,r)?i:this.parseSubscripts(i,e,s)}parseSubscripts(t,e,s,r){let i={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(t),stop:!1};do t=this.parseSubscript(t,e,s,r,i),i.maybeAsyncArrow=!1;while(!i.stop);return t}parseSubscript(t,e,s,r,i){let{type:a}=this.state;if(!r&&a===15)return this.parseBind(t,e,s,r,i);if(nt(a))return this.parseTaggedTemplateExpression(t,e,s,i);let n=!1;if(a===18){if(r&&this.lookaheadCharCode()===40)return i.stop=!0,t;i.optionalChainMember=n=!0,this.next()}if(!r&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(t,e,s,i,n);{let o=this.eat(0);return o||n||this.eat(16)?this.parseMember(t,e,s,i,o,n):(i.stop=!0,t)}}parseMember(t,e,s,r,i,a){let n=this.startNodeAt(e,s);return n.object=t,n.computed=i,i?(n.property=this.parseExpression(),this.expect(3)):this.match(134)?(t.type==="Super"&&this.raise(u.SuperPrivateField,{at:s}),this.classScope.usePrivateName(this.state.value,this.state.startLoc),n.property=this.parsePrivateName()):n.property=this.parseIdentifier(!0),r.optionalChainMember?(n.optional=a,this.finishNode(n,"OptionalMemberExpression")):this.finishNode(n,"MemberExpression")}parseBind(t,e,s,r,i){let a=this.startNodeAt(e,s);return a.object=t,this.next(),a.callee=this.parseNoCallExpr(),i.stop=!0,this.parseSubscripts(this.finishNode(a,"BindExpression"),e,s,r)}parseCoverCallAndAsyncArrowHead(t,e,s,r,i){let a=this.state.maybeInArrowParameters,n=null;this.state.maybeInArrowParameters=!0,this.next();let o=this.startNodeAt(e,s);o.callee=t;let{maybeAsyncArrow:c,optionalChainMember:f}=r;return c&&(this.expressionScope.enter(Ph()),n=new At),f&&(o.optional=i),i?o.arguments=this.parseCallExpressionArguments(11):o.arguments=this.parseCallExpressionArguments(11,t.type==="Import",t.type!=="Super",o,n),this.finishCallExpression(o,f),c&&this.shouldParseAsyncArrow()&&!i?(r.stop=!0,this.checkDestructuringPrivate(n),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),o=this.parseAsyncArrowFromCallExpression(this.startNodeAt(e,s),o)):(c&&(this.checkExpressionErrors(n,!0),this.expressionScope.exit()),this.toReferencedArguments(o)),this.state.maybeInArrowParameters=a,o}toReferencedArguments(t,e){this.toReferencedListDeep(t.arguments,e)}parseTaggedTemplateExpression(t,e,s,r){let i=this.startNodeAt(e,s);return i.tag=t,i.quasi=this.parseTemplate(!0),r.optionalChainMember&&this.raise(u.OptionalChainingNoTemplate,{at:s}),this.finishNode(i,"TaggedTemplateExpression")}atPossibleAsyncArrow(t){return t.type==="Identifier"&&t.name==="async"&&this.state.lastTokEndLoc.index===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&t.start===this.state.potentialArrowAt}finishCallExpression(t,e){if(t.callee.type==="Import")if(t.arguments.length===2&&(this.hasPlugin("moduleAttributes")||this.expectPlugin("importAssertions")),t.arguments.length===0||t.arguments.length>2)this.raise(u.ImportCallArity,{at:t,maxArgumentCount:this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")?2:1});else for(let s of t.arguments)s.type==="SpreadElement"&&this.raise(u.ImportCallSpreadArgument,{at:s});return this.finishNode(t,e?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(t,e,s,r,i){let a=[],n=!0,o=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){e&&!this.hasPlugin("importAssertions")&&!this.hasPlugin("moduleAttributes")&&this.raise(u.ImportCallArgumentTrailingComma,{at:this.state.lastTokStartLoc}),r&&this.addTrailingCommaExtraToNode(r),this.next();break}a.push(this.parseExprListItem(!1,i,s))}return this.state.inFSharpPipelineDirectBody=o,a}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(t,e){var s;return this.resetPreviousNodeTrailingComments(e),this.expect(19),this.parseArrowExpression(t,e.arguments,!0,(s=e.extra)==null?void 0:s.trailingCommaLoc),e.innerComments&&Ge(t,e.innerComments),e.callee.trailingComments&&Ge(t,e.callee.trailingComments),t}parseNoCallExpr(){let t=this.state.start,e=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),t,e,!0)}parseExprAtom(t){let e,{type:s}=this.state;switch(s){case 79:return this.parseSuper();case 83:return e=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(e):(this.match(10)||this.raise(u.UnsupportedImport,{at:this.state.lastTokStartLoc}),this.finishNode(e,"Import"));case 78:return e=this.startNode(),this.next(),this.finishNode(e,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 130:return this.parseNumericLiteral(this.state.value);case 131:return this.parseBigIntLiteral(this.state.value);case 132:return this.parseDecimalLiteral(this.state.value);case 129:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{let r=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(r)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,t);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,t);case 68:return this.parseFunctionOrFunctionSent();case 26:this.parseDecorators();case 80:return e=this.startNode(),this.takeDecorators(e),this.parseClass(e,!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{e=this.startNode(),this.next(),e.object=null;let r=e.callee=this.parseNoCallExpr();if(r.type==="MemberExpression")return this.finishNode(e,"BindExpression");throw this.raise(u.UnsupportedBind,{at:r})}case 134:return this.raise(u.PrivateInExpectedIn,{at:this.state.startLoc,identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{let r=this.getPluginOption("pipelineOperator","proposal");if(r)return this.parseTopicReference(r);throw this.unexpected()}case 47:{let r=this.input.codePointAt(this.nextTokenStart());if(de(r)||r===62){this.expectOnePlugin(["jsx","flow","typescript"]);break}else throw this.unexpected()}default:if(K(s)){if(this.isContextual(123)&&this.lookaheadCharCode()===123&&!this.hasFollowingLineBreak())return this.parseModuleExpression();let r=this.state.potentialArrowAt===this.state.start,i=this.state.containsEsc,a=this.parseIdentifier();if(!i&&a.name==="async"&&!this.canInsertSemicolon()){let{type:n}=this.state;if(n===68)return this.resetPreviousNodeTrailingComments(a),this.next(),this.parseFunction(this.startNodeAtNode(a),void 0,!0);if(K(n))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(a)):a;if(n===90)return this.resetPreviousNodeTrailingComments(a),this.parseDo(this.startNodeAtNode(a),!0)}return r&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(a),[a],!1)):a}else throw this.unexpected()}}parseTopicReferenceThenEqualsSign(t,e){let s=this.getPluginOption("pipelineOperator","proposal");if(s)return this.state.type=t,this.state.value=e,this.state.pos--,this.state.end--,this.state.endLoc=m(this.state.endLoc,-1),this.parseTopicReference(s);throw this.unexpected()}parseTopicReference(t){let e=this.startNode(),s=this.state.startLoc,r=this.state.type;return this.next(),this.finishTopicReference(e,s,t,r)}finishTopicReference(t,e,s,r){if(this.testTopicReferenceConfiguration(s,e,r)){let i=s==="smart"?"PipelinePrimaryTopicReference":"TopicReference";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(s==="smart"?u.PrimaryTopicNotAllowed:u.PipeTopicUnbound,{at:e}),this.registerTopicReference(),this.finishNode(t,i)}else throw this.raise(u.PipeTopicUnconfiguredToken,{at:e,token:Pe(r)})}testTopicReferenceConfiguration(t,e,s){switch(t){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:Pe(s)}]);case"smart":return s===27;default:throw this.raise(u.PipeTopicRequiresHackPipes,{at:e})}}parseAsyncArrowUnaryFunction(t){this.prodParam.enter(gt(!0,this.prodParam.hasYield));let e=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(u.LineTerminatorBeforeArrow,{at:this.state.curPosition()}),this.expect(19),this.parseArrowExpression(t,e,!0),t}parseDo(t,e){this.expectPlugin("doExpressions"),e&&this.expectPlugin("asyncDoExpressions"),t.async=e,this.next();let s=this.state.labels;return this.state.labels=[],e?(this.prodParam.enter(xt),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=s,this.finishNode(t,"DoExpression")}parseSuper(){let t=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(u.SuperNotAllowed,{at:t}):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(u.UnexpectedSuper,{at:t}),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(u.UnsupportedSuper,{at:t}),this.finishNode(t,"Super")}parsePrivateName(){let t=this.startNode(),e=this.startNodeAt(this.state.start+1,new p(this.state.curLine,this.state.start+1-this.state.lineStart,this.state.start+1)),s=this.state.value;return this.next(),t.id=this.createIdentifier(e,s),this.finishNode(t,"PrivateName")}parseFunctionOrFunctionSent(){let t=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),"function");return this.next(),this.match(102)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(t,e,"sent")}return this.parseFunction(t)}parseMetaProperty(t,e,s){t.meta=e;let r=this.state.containsEsc;return t.property=this.parseIdentifier(!0),(t.property.name!==s||r)&&this.raise(u.UnsupportedMetaProperty,{at:t.property,target:e.name,onlyValidPropertyName:s}),this.finishNode(t,"MetaProperty")}parseImportMetaProperty(t){let e=this.createIdentifier(this.startNodeAtNode(t),"import");return this.next(),this.isContextual(100)&&(this.inModule||this.raise(u.ImportMetaOutsideModule,{at:e}),this.sawUnambiguousESM=!0),this.parseMetaProperty(t,e,"meta")}parseLiteralAtNode(t,e,s){return this.addExtra(s,"rawValue",t),this.addExtra(s,"raw",this.input.slice(s.start,this.state.end)),s.value=t,this.next(),this.finishNode(s,e)}parseLiteral(t,e){let s=this.startNode();return this.parseLiteralAtNode(t,e,s)}parseStringLiteral(t){return this.parseLiteral(t,"StringLiteral")}parseNumericLiteral(t){return this.parseLiteral(t,"NumericLiteral")}parseBigIntLiteral(t){return this.parseLiteral(t,"BigIntLiteral")}parseDecimalLiteral(t){return this.parseLiteral(t,"DecimalLiteral")}parseRegExpLiteral(t){let e=this.parseLiteral(t.value,"RegExpLiteral");return e.pattern=t.pattern,e.flags=t.flags,e}parseBooleanLiteral(t){let e=this.startNode();return e.value=t,this.next(),this.finishNode(e,"BooleanLiteral")}parseNullLiteral(){let t=this.startNode();return this.next(),this.finishNode(t,"NullLiteral")}parseParenAndDistinguishExpression(t){let e=this.state.start,s=this.state.startLoc,r;this.next(),this.expressionScope.enter(Ah());let i=this.state.maybeInArrowParameters,a=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;let n=this.state.start,o=this.state.startLoc,c=[],f=new At,y=!0,P,v;for(;!this.match(11);){if(y)y=!1;else if(this.expect(12,f.optionalParametersLoc===null?null:f.optionalParametersLoc),this.match(11)){v=this.state.startLoc;break}if(this.match(21)){let _=this.state.start,Q=this.state.startLoc;if(P=this.state.startLoc,c.push(this.parseParenItem(this.parseRestBinding(),_,Q)),!this.checkCommaAfterRest(41))break}else c.push(this.parseMaybeAssignAllowIn(f,this.parseParenItem))}let N=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=i,this.state.inFSharpPipelineDirectBody=a;let B=this.startNodeAt(e,s);return t&&this.shouldParseArrow(c)&&(B=this.parseArrow(B))?(this.checkDestructuringPrivate(f),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(B,c,!1),B):(this.expressionScope.exit(),c.length||this.unexpected(this.state.lastTokStartLoc),v&&this.unexpected(v),P&&this.unexpected(P),this.checkExpressionErrors(f,!0),this.toReferencedListDeep(c,!0),c.length>1?(r=this.startNodeAt(n,o),r.expressions=c,this.finishNode(r,"SequenceExpression"),this.resetEndLocation(r,N)):r=c[0],this.wrapParenthesis(e,s,r))}wrapParenthesis(t,e,s){if(!this.options.createParenthesizedExpressions)return this.addExtra(s,"parenthesized",!0),this.addExtra(s,"parenStart",t),this.takeSurroundingComments(s,t,this.state.lastTokEndLoc.index),s;let r=this.startNodeAt(t,e);return r.expression=s,this.finishNode(r,"ParenthesizedExpression"),r}shouldParseArrow(t){return!this.canInsertSemicolon()}parseArrow(t){if(this.eat(19))return t}parseParenItem(t,e,s){return t}parseNewOrNewTarget(){let t=this.startNode();if(this.next(),this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),"new");this.next();let s=this.parseMetaProperty(t,e,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&this.raise(u.UnexpectedNewTarget,{at:s}),s}return this.parseNew(t)}parseNew(t){if(this.parseNewCallee(t),this.eat(10)){let e=this.parseExprList(11);this.toReferencedList(e),t.arguments=e}else t.arguments=[];return this.finishNode(t,"NewExpression")}parseNewCallee(t){t.callee=this.parseNoCallExpr(),t.callee.type==="Import"?this.raise(u.ImportCallNotNewExpression,{at:t.callee}):this.isOptionalChain(t.callee)?this.raise(u.OptionalChainingNoNew,{at:this.state.lastTokEndLoc}):this.eat(18)&&this.raise(u.OptionalChainingNoNew,{at:this.state.startLoc})}parseTemplateElement(t){let{start:e,startLoc:s,end:r,value:i}=this.state,a=e+1,n=this.startNodeAt(a,m(s,1));i===null&&(t||this.raise(u.InvalidEscapeSequenceTemplate,{at:m(s,2)}));let o=this.match(24),c=o?-1:-2,f=r+c;return n.value={raw:this.input.slice(a,f).replace(/\r\n?/g,` +`),cooked:i===null?null:i.slice(1,c)},n.tail=o,this.next(),this.finishNode(n,"TemplateElement"),this.resetEndLocation(n,m(this.state.lastTokEndLoc,c)),n}parseTemplate(t){let e=this.startNode();e.expressions=[];let s=this.parseTemplateElement(t);for(e.quasis=[s];!s.tail;)e.expressions.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),e.quasis.push(s=this.parseTemplateElement(t));return this.finishNode(e,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(t,e,s,r){s&&this.expectPlugin("recordAndTuple");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=Object.create(null),n=!0,o=this.startNode();for(o.properties=[],this.next();!this.match(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){this.addTrailingCommaExtraToNode(o);break}let f;e?f=this.parseBindingProperty():(f=this.parsePropertyDefinition(r),this.checkProto(f,s,a,r)),s&&!this.isObjectProperty(f)&&f.type!=="SpreadElement"&&this.raise(u.InvalidRecordProperty,{at:f}),f.shorthand&&this.addExtra(f,"shorthand",!0),o.properties.push(f)}this.next(),this.state.inFSharpPipelineDirectBody=i;let c="ObjectExpression";return e?c="ObjectPattern":s&&(c="RecordExpression"),this.finishNode(o,c)}addTrailingCommaExtraToNode(t){this.addExtra(t,"trailingComma",this.state.lastTokStart),this.addExtra(t,"trailingCommaLoc",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(t){return!t.computed&&t.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(t){let e=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(u.UnsupportedPropertyDecorator,{at:this.state.startLoc});this.match(26);)e.push(this.parseDecorator());let s=this.startNode(),r=!1,i=!1,a,n;if(this.match(21))return e.length&&this.unexpected(),this.parseSpread();e.length&&(s.decorators=e,e=[]),s.method=!1,t&&(a=this.state.start,n=this.state.startLoc);let o=this.eat(55);this.parsePropertyNamePrefixOperator(s);let c=this.state.containsEsc,f=this.parsePropertyName(s,t);if(!o&&!c&&this.maybeAsyncOrAccessorProp(s)){let y=f.name;y==="async"&&!this.hasPrecedingLineBreak()&&(r=!0,this.resetPreviousNodeTrailingComments(f),o=this.eat(55),this.parsePropertyName(s)),(y==="get"||y==="set")&&(i=!0,this.resetPreviousNodeTrailingComments(f),s.kind=y,this.match(55)&&(o=!0,this.raise(u.AccessorIsGenerator,{at:this.state.curPosition(),kind:y}),this.next()),this.parsePropertyName(s))}return this.parseObjPropValue(s,a,n,o,r,!1,i,t),s}getGetterSetterExpectedParamCount(t){return t.kind==="get"?0:1}getObjectOrClassMethodParams(t){return t.params}checkGetterSetterParams(t){var e;let s=this.getGetterSetterExpectedParamCount(t),r=this.getObjectOrClassMethodParams(t);r.length!==s&&this.raise(t.kind==="get"?u.BadGetterArity:u.BadSetterArity,{at:t}),t.kind==="set"&&((e=r[r.length-1])==null?void 0:e.type)==="RestElement"&&this.raise(u.BadSetterRestParameter,{at:t})}parseObjectMethod(t,e,s,r,i){if(i)return this.parseMethod(t,e,!1,!1,!1,"ObjectMethod"),this.checkGetterSetterParams(t),t;if(s||e||this.match(10))return r&&this.unexpected(),t.kind="method",t.method=!0,this.parseMethod(t,e,s,!1,!1,"ObjectMethod")}parseObjectProperty(t,e,s,r,i){if(t.shorthand=!1,this.eat(14))return t.value=r?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssignAllowIn(i),this.finishNode(t,"ObjectProperty");if(!t.computed&&t.key.type==="Identifier"){if(this.checkReservedWord(t.key.name,t.key.loc.start,!0,!1),r)t.value=this.parseMaybeDefault(e,s,ge(t.key));else if(this.match(29)){let a=this.state.startLoc;i!=null?i.shorthandAssignLoc===null&&(i.shorthandAssignLoc=a):this.raise(u.InvalidCoverInitializedName,{at:a}),t.value=this.parseMaybeDefault(e,s,ge(t.key))}else t.value=ge(t.key);return t.shorthand=!0,this.finishNode(t,"ObjectProperty")}}parseObjPropValue(t,e,s,r,i,a,n,o){let c=this.parseObjectMethod(t,r,i,a,n)||this.parseObjectProperty(t,e,s,a,o);return c||this.unexpected(),c}parsePropertyName(t,e){if(this.eat(0))t.computed=!0,t.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{let{type:s,value:r}=this.state,i;if(pe(s))i=this.parseIdentifier(!0);else switch(s){case 130:i=this.parseNumericLiteral(r);break;case 129:i=this.parseStringLiteral(r);break;case 131:i=this.parseBigIntLiteral(r);break;case 132:i=this.parseDecimalLiteral(r);break;case 134:{let a=this.state.startLoc;e!=null?e.privateKeyLoc===null&&(e.privateKeyLoc=a):this.raise(u.UnexpectedPrivateField,{at:a}),i=this.parsePrivateName();break}default:throw this.unexpected()}t.key=i,s!==134&&(t.computed=!1)}return t.key}initFunction(t,e){t.id=null,t.generator=!1,t.async=!!e}parseMethod(t,e,s,r,i,a){let n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1;this.initFunction(t,s),t.generator=!!e;let o=r;return this.scope.enter(me|ot|(n?Se:0)|(i?xr:0)),this.prodParam.enter(gt(s,t.generator)),this.parseFunctionParams(t,o),this.parseFunctionBodyAndFinish(t,a,!0),this.prodParam.exit(),this.scope.exit(),t}parseArrayLike(t,e,s,r){s&&this.expectPlugin("recordAndTuple");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=this.startNode();return this.next(),a.elements=this.parseExprList(t,!s,r,a),this.state.inFSharpPipelineDirectBody=i,this.finishNode(a,s?"TupleExpression":"ArrayExpression")}parseArrowExpression(t,e,s,r){this.scope.enter(me|Jt);let i=gt(s,!1);!this.match(5)&&this.prodParam.hasIn&&(i|=qe),this.prodParam.enter(i),this.initFunction(t,s);let a=this.state.maybeInArrowParameters;return e&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(t,e,r)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=a,this.finishNode(t,"ArrowFunctionExpression")}setArrowFunctionParameters(t,e,s){this.toAssignableList(e,s,!1),t.params=e}parseFunctionBodyAndFinish(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parseFunctionBody(t,!1,s),this.finishNode(t,e)}parseFunctionBody(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&&!this.match(5);if(this.expressionScope.enter(Dr()),r)t.body=this.parseMaybeAssign(),this.checkParams(t,!1,e,!1);else{let i=this.state.strict,a=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|Lr),t.body=this.parseBlock(!0,!1,n=>{let o=!this.isSimpleParamList(t.params);n&&o&&this.raise(u.IllegalLanguageModeDirective,{at:(t.kind==="method"||t.kind==="constructor")&&!!t.key?t.key.loc.end:t});let c=!i&&this.state.strict;this.checkParams(t,!this.state.strict&&!e&&!s&&!o,e,c),this.state.strict&&t.id&&this.checkIdentifier(t.id,Xo,c)}),this.prodParam.exit(),this.state.labels=a}this.expressionScope.exit()}isSimpleParameter(t){return t.type==="Identifier"}isSimpleParamList(t){for(let e=0,s=t.length;e3&&arguments[3]!==void 0?arguments[3]:!0,i=!e&&new Set,a={type:"FormalParameters"};for(let n of t.params)this.checkLVal(n,{in:a,binding:pt,checkClashes:i,strictModeChanged:r})}parseExprList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);){if(a)a=!1;else if(this.expect(12),this.match(t)){r&&this.addTrailingCommaExtraToNode(r),this.next();break}i.push(this.parseExprListItem(e,s))}return i}parseExprListItem(t,e,s){let r;if(this.match(12))t||this.raise(u.UnexpectedToken,{at:this.state.curPosition(),unexpected:","}),r=null;else if(this.match(21)){let i=this.state.start,a=this.state.startLoc;r=this.parseParenItem(this.parseSpread(e),i,a)}else if(this.match(17)){this.expectPlugin("partialApplication"),s||this.raise(u.UnexpectedArgumentPlaceholder,{at:this.state.startLoc});let i=this.startNode();this.next(),r=this.finishNode(i,"ArgumentPlaceholder")}else r=this.parseMaybeAssignAllowIn(e,this.parseParenItem);return r}parseIdentifier(t){let e=this.startNode(),s=this.parseIdentifierName(e.start,t);return this.createIdentifier(e,s)}createIdentifier(t,e){return t.name=e,t.loc.identifierName=e,this.finishNode(t,"Identifier")}parseIdentifierName(t,e){let s,{startLoc:r,type:i}=this.state;if(pe(i))s=this.state.value;else throw this.unexpected();let a=vo(i);return e?a&&this.replaceToken(128):this.checkReservedWord(s,r,a,!1),this.next(),s}checkReservedWord(t,e,s,r){if(t.length>10||!Ho(t))return;if(t==="yield"){if(this.prodParam.hasYield){this.raise(u.YieldBindingIdentifier,{at:e});return}}else if(t==="await"){if(this.prodParam.hasAwait){this.raise(u.AwaitBindingIdentifier,{at:e});return}if(this.scope.inStaticBlock){this.raise(u.AwaitBindingIdentifierInStaticBlock,{at:e});return}this.expressionScope.recordAsyncArrowParametersError({at:e})}else if(t==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(u.ArgumentsInClass,{at:e});return}if(s&&zo(t)){this.raise(u.UnexpectedKeyword,{at:e,keyword:t});return}(this.state.strict?r?mr:fr:pr)(t,this.inModule)&&this.raise(u.UnexpectedReservedWord,{at:e,reservedWord:t})}isAwaitAllowed(){return!!(this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction)}parseAwait(t,e){let s=this.startNodeAt(t,e);return this.expressionScope.recordParameterInitializerError(u.AwaitExpressionFormalParameter,{at:s}),this.eat(55)&&this.raise(u.ObsoleteAwaitStar,{at:s}),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(s.argument=this.parseMaybeUnary(null,!0)),this.finishNode(s,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:t}=this.state;return t===53||t===10||t===0||nt(t)||t===133||t===56||this.hasPlugin("v8intrinsic")&&t===54}parseYield(){let t=this.startNode();this.expressionScope.recordParameterInitializerError(u.YieldInParameter,{at:t}),this.next();let e=!1,s=null;if(!this.hasPrecedingLineBreak())switch(e=this.eat(55),this.state.type){case 13:case 135:case 8:case 11:case 3:case 9:case 14:case 12:if(!e)break;default:s=this.parseMaybeAssign()}return t.delegate=e,t.argument=s,this.finishNode(t,"YieldExpression")}checkPipelineAtInfixOperator(t,e){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&t.type==="SequenceExpression"&&this.raise(u.PipelineHeadSequenceExpression,{at:e})}parseSmartPipelineBodyInStyle(t,e,s){let r=this.startNodeAt(e,s);return this.isSimpleReference(t)?(r.callee=t,this.finishNode(r,"PipelineBareFunction")):(this.checkSmartPipeTopicBodyEarlyErrors(s),r.expression=t,this.finishNode(r,"PipelineTopicExpression"))}isSimpleReference(t){switch(t.type){case"MemberExpression":return!t.computed&&this.isSimpleReference(t.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(t){if(this.match(19))throw this.raise(u.PipelineBodyNoArrow,{at:this.state.startLoc});this.topicReferenceWasUsedInCurrentContext()||this.raise(u.PipelineTopicUnused,{at:t})}withTopicBindingContext(t){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}withSmartMixTopicForbiddingContext(t){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}else return t()}withSoloAwaitPermittingContext(t){let e=this.state.soloAwait;this.state.soloAwait=!0;try{return t()}finally{this.state.soloAwait=e}}allowInAnd(t){let e=this.prodParam.currentFlags();if(qe&~e){this.prodParam.enter(e|qe);try{return t()}finally{this.prodParam.exit()}}return t()}disallowInAnd(t){let e=this.prodParam.currentFlags();if(qe&e){this.prodParam.enter(e&~qe);try{return t()}finally{this.prodParam.exit()}}return t()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(t){let e=this.state.start,s=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let i=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),e,s,t);return this.state.inFSharpPipelineDirectBody=r,i}parseModuleExpression(){this.expectPlugin("moduleBlocks");let t=this.startNode();this.next(),this.eat(5);let e=this.initializeScopes(!0);this.enterInitialScopes();let s=this.startNode();try{t.body=this.parseProgram(s,8,"module")}finally{e()}return this.eat(8),this.finishNode(t,"ModuleExpression")}parsePropertyNamePrefixOperator(t){}},ps={kind:"loop"},$h={kind:"switch"},Qh=0,fs=1,Hr=2,Wr=4,Zh=/[\uD800-\uDFFF]/u,ds=/in(?:stanceof)?/y;function el(t,e){for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:135,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.options.sourceType;if(t.sourceType=s,t.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(t,!0,!0,e),this.inModule&&!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(let[r,i]of Array.from(this.scope.undefinedExports))this.raise(u.ModuleExportUndefined,{at:i,localName:r});return this.finishNode(t,"Program")}stmtToDirective(t){let e=t;e.type="Directive",e.value=e.expression,delete e.expression;let s=e.value,r=s.value,i=this.input.slice(s.start,s.end),a=s.value=i.slice(1,-1);return this.addExtra(s,"raw",i),this.addExtra(s,"rawValue",a),this.addExtra(s,"expressionValue",r),s.type="DirectiveLiteral",e}parseInterpreterDirective(){if(!this.match(28))return null;let t=this.startNode();return t.value=this.state.value,this.next(),this.finishNode(t,"InterpreterDirective")}isLet(t){return this.isContextual(99)?this.isLetKeyword(t):!1}isLetKeyword(t){let e=this.nextTokenStart(),s=this.codePointAtPos(e);if(s===92||s===91)return!0;if(t)return!1;if(s===123)return!0;if(de(s)){if(ds.lastIndex=e,ds.test(this.input)){let r=this.codePointAtPos(ds.lastIndex);if(!Be(r)&&r!==92)return!1}return!0}return!1}parseStatement(t,e){return this.match(26)&&this.parseDecorators(!0),this.parseStatementContent(t,e)}parseStatementContent(t,e){let s=this.state.type,r=this.startNode(),i;switch(this.isLet(t)&&(s=74,i="let"),s){case 60:return this.parseBreakContinueStatement(r,!0);case 63:return this.parseBreakContinueStatement(r,!1);case 64:return this.parseDebuggerStatement(r);case 90:return this.parseDoStatement(r);case 91:return this.parseForStatement(r);case 68:if(this.lookaheadCharCode()===46)break;return t&&(this.state.strict?this.raise(u.StrictFunction,{at:this.state.startLoc}):t!=="if"&&t!=="label"&&this.raise(u.SloppyFunction,{at:this.state.startLoc})),this.parseFunctionStatement(r,!1,!t);case 80:return t&&this.unexpected(),this.parseClass(r,!0);case 69:return this.parseIfStatement(r);case 70:return this.parseReturnStatement(r);case 71:return this.parseSwitchStatement(r);case 72:return this.parseThrowStatement(r);case 73:return this.parseTryStatement(r);case 75:case 74:return i=i||this.state.value,t&&i!=="var"&&this.raise(u.UnexpectedLexicalDeclaration,{at:this.state.startLoc}),this.parseVarStatement(r,i);case 92:return this.parseWhileStatement(r);case 76:return this.parseWithStatement(r);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(r);case 83:{let o=this.lookaheadCharCode();if(o===40||o===46)break}case 82:{!this.options.allowImportExportEverywhere&&!e&&this.raise(u.UnexpectedImportExport,{at:this.state.startLoc}),this.next();let o;return s===83?(o=this.parseImport(r),o.type==="ImportDeclaration"&&(!o.importKind||o.importKind==="value")&&(this.sawUnambiguousESM=!0)):(o=this.parseExport(r),(o.type==="ExportNamedDeclaration"&&(!o.exportKind||o.exportKind==="value")||o.type==="ExportAllDeclaration"&&(!o.exportKind||o.exportKind==="value")||o.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(r),o}default:if(this.isAsyncFunction())return t&&this.raise(u.AsyncFunctionInSingleStatementContext,{at:this.state.startLoc}),this.next(),this.parseFunctionStatement(r,!0,!t)}let a=this.state.value,n=this.parseExpression();return K(s)&&n.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(r,a,n,t):this.parseExpressionStatement(r,n)}assertModuleNodeAllowed(t){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(u.ImportOutsideModule,{at:t})}takeDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];e.length&&(t.decorators=e,this.resetStartLocationFromNode(t,e[0]),this.state.decoratorStack[this.state.decoratorStack.length-1]=[])}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];for(;this.match(26);){let s=this.parseDecorator();e.push(s)}if(this.match(82))t||this.unexpected(),this.hasPlugin("decorators")&&!this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(u.DecoratorExportClass,{at:this.state.startLoc});else if(!this.canHaveLeadingDecorator())throw this.raise(u.UnexpectedLeadingDecorator,{at:this.state.startLoc})}parseDecorator(){this.expectOnePlugin(["decorators-legacy","decorators"]);let t=this.startNode();if(this.next(),this.hasPlugin("decorators")){this.state.decoratorStack.push([]);let e=this.state.start,s=this.state.startLoc,r;if(this.match(10)){let i=this.state.start,a=this.state.startLoc;this.next(),r=this.parseExpression(),this.expect(11),r=this.wrapParenthesis(i,a,r)}else for(r=this.parseIdentifier(!1);this.eat(16);){let i=this.startNodeAt(e,s);i.object=r,i.property=this.parseIdentifier(!0),i.computed=!1,r=this.finishNode(i,"MemberExpression")}t.expression=this.parseMaybeDecoratorArguments(r),this.state.decoratorStack.pop()}else t.expression=this.parseExprSubscripts();return this.finishNode(t,"Decorator")}parseMaybeDecoratorArguments(t){if(this.eat(10)){let e=this.startNodeAtNode(t);return e.callee=t,e.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(e.arguments),this.finishNode(e,"CallExpression")}return t}parseBreakContinueStatement(t,e){return this.next(),this.isLineTerminator()?t.label=null:(t.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(t,e),this.finishNode(t,e?"BreakStatement":"ContinueStatement")}verifyBreakContinue(t,e){let s;for(s=0;sthis.parseStatement("do")),this.state.labels.pop(),this.expect(92),t.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(t,"DoWhileStatement")}parseForStatement(t){this.next(),this.state.labels.push(ps);let e=null;if(this.isAwaitAllowed()&&this.eatContextual(96)&&(e=this.state.lastTokStartLoc),this.scope.enter(Me),this.expect(10),this.match(13))return e!==null&&this.unexpected(e),this.parseFor(t,null);let s=this.isContextual(99),r=s&&this.isLetKeyword();if(this.match(74)||this.match(75)||r){let c=this.startNode(),f=r?"let":this.state.value;return this.next(),this.parseVar(c,!0,f),this.finishNode(c,"VariableDeclaration"),(this.match(58)||this.isContextual(101))&&c.declarations.length===1?this.parseForIn(t,c,e):(e!==null&&this.unexpected(e),this.parseFor(t,c))}let i=this.isContextual(95),a=new At,n=this.parseExpression(!0,a),o=this.isContextual(101);if(o&&(s&&this.raise(u.ForOfLet,{at:n}),e===null&&i&&n.type==="Identifier"&&this.raise(u.ForOfAsync,{at:n})),o||this.match(58)){this.checkDestructuringPrivate(a),this.toAssignable(n,!0);let c=o?"ForOfStatement":"ForInStatement";return this.checkLVal(n,{in:{type:c}}),this.parseForIn(t,n,e)}else this.checkExpressionErrors(a,!0);return e!==null&&this.unexpected(e),this.parseFor(t,n)}parseFunctionStatement(t,e,s){return this.next(),this.parseFunction(t,fs|(s?0:Hr),e)}parseIfStatement(t){return this.next(),t.test=this.parseHeaderExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(66)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")}parseReturnStatement(t){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(u.IllegalReturn,{at:this.state.startLoc}),this.next(),this.isLineTerminator()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")}parseSwitchStatement(t){this.next(),t.discriminant=this.parseHeaderExpression();let e=t.cases=[];this.expect(5),this.state.labels.push($h),this.scope.enter(Me);let s;for(let r;!this.match(8);)if(this.match(61)||this.match(65)){let i=this.match(61);s&&this.finishNode(s,"SwitchCase"),e.push(s=this.startNode()),s.consequent=[],this.next(),i?s.test=this.parseExpression():(r&&this.raise(u.MultipleDefaultsInSwitch,{at:this.state.lastTokStartLoc}),r=!0,s.test=null),this.expect(14)}else s?s.consequent.push(this.parseStatement(null)):this.unexpected();return this.scope.exit(),s&&this.finishNode(s,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(t,"SwitchStatement")}parseThrowStatement(t){return this.next(),this.hasPrecedingLineBreak()&&this.raise(u.NewlineAfterThrow,{at:this.state.lastTokEndLoc}),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")}parseCatchClauseParam(){let t=this.parseBindingAtom(),e=t.type==="Identifier";return this.scope.enter(e?yr:0),this.checkLVal(t,{in:{type:"CatchClause"},binding:xe,allowingSloppyLetBinding:!0}),t}parseTryStatement(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.match(62)){let e=this.startNode();this.next(),this.match(10)?(this.expect(10),e.param=this.parseCatchClauseParam(),this.expect(11)):(e.param=null,this.scope.enter(Me)),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(67)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(u.NoCatchOrFinally,{at:t}),this.finishNode(t,"TryStatement")}parseVarStatement(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this.next(),this.parseVar(t,!1,e,s),this.semicolon(),this.finishNode(t,"VariableDeclaration")}parseWhileStatement(t){return this.next(),t.test=this.parseHeaderExpression(),this.state.labels.push(ps),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("while")),this.state.labels.pop(),this.finishNode(t,"WhileStatement")}parseWithStatement(t){return this.state.strict&&this.raise(u.StrictWith,{at:this.state.startLoc}),this.next(),t.object=this.parseHeaderExpression(),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("with")),this.finishNode(t,"WithStatement")}parseEmptyStatement(t){return this.next(),this.finishNode(t,"EmptyStatement")}parseLabeledStatement(t,e,s,r){for(let a of this.state.labels)a.name===e&&this.raise(u.LabelRedeclaration,{at:s,labelName:e});let i=No(this.state.type)?"loop":this.match(71)?"switch":null;for(let a=this.state.labels.length-1;a>=0;a--){let n=this.state.labels[a];if(n.statementStart===t.start)n.statementStart=this.state.start,n.kind=i;else break}return this.state.labels.push({name:e,kind:i,statementStart:this.state.start}),t.body=this.parseStatement(r?r.indexOf("label")===-1?r+"label":r:"label"),this.state.labels.pop(),t.label=s,this.finishNode(t,"LabeledStatement")}parseExpressionStatement(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")}parseBlock(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=arguments.length>2?arguments[2]:void 0,r=this.startNode();return t&&this.state.strictErrors.clear(),this.expect(5),e&&this.scope.enter(Me),this.parseBlockBody(r,t,!1,8,s),e&&this.scope.exit(),this.finishNode(r,"BlockStatement")}isValidDirective(t){return t.type==="ExpressionStatement"&&t.expression.type==="StringLiteral"&&!t.expression.extra.parenthesized}parseBlockBody(t,e,s,r,i){let a=t.body=[],n=t.directives=[];this.parseBlockOrModuleBlockBody(a,e?n:void 0,s,r,i)}parseBlockOrModuleBlockBody(t,e,s,r,i){let a=this.state.strict,n=!1,o=!1;for(;!this.match(r);){let c=this.parseStatement(null,s);if(e&&!o){if(this.isValidDirective(c)){let f=this.stmtToDirective(c);e.push(f),!n&&f.value.value==="use strict"&&(n=!0,this.setStrict(!0));continue}o=!0,this.state.strictErrors.clear()}t.push(c)}i&&i.call(this,n),a||this.setStrict(!1),this.next()}parseFor(t,e){return t.init=e,this.semicolon(!1),t.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),t.update=this.match(11)?null:this.parseExpression(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("for")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,"ForStatement")}parseForIn(t,e,s){let r=this.match(58);return this.next(),r?s!==null&&this.unexpected(s):t.await=s!==null,e.type==="VariableDeclaration"&&e.declarations[0].init!=null&&(!r||this.state.strict||e.kind!=="var"||e.declarations[0].id.type!=="Identifier")&&this.raise(u.ForInOfLoopInitializer,{at:e,type:r?"ForInStatement":"ForOfStatement"}),e.type==="AssignmentPattern"&&this.raise(u.InvalidLhs,{at:e,ancestor:{type:"ForStatement"}}),t.left=e,t.right=r?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement("for")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,r?"ForInStatement":"ForOfStatement")}parseVar(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=t.declarations=[];for(t.kind=s;;){let a=this.startNode();if(this.parseVarId(a,s),a.init=this.eat(29)?e?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,a.init===null&&!r&&(a.id.type!=="Identifier"&&!(e&&(this.match(58)||this.isContextual(101)))?this.raise(u.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:"destructuring"}):s==="const"&&!(this.match(58)||this.isContextual(101))&&this.raise(u.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:"const"})),i.push(this.finishNode(a,"VariableDeclarator")),!this.eat(12))break}return t}parseVarId(t,e){t.id=this.parseBindingAtom(),this.checkLVal(t.id,{in:{type:"VariableDeclarator"},binding:e==="var"?pt:xe})}parseFunction(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Qh,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&fs,i=e&Hr,a=!!r&&!(e&Wr);this.initFunction(t,s),this.match(55)&&i&&this.raise(u.GeneratorInSingleStatementContext,{at:this.state.startLoc}),t.generator=this.eat(55),r&&(t.id=this.parseFunctionId(a));let n=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(me),this.prodParam.enter(gt(s,t.generator)),r||(t.id=this.parseFunctionId()),this.parseFunctionParams(t,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(t,r?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),r&&!i&&this.registerFunctionStatementId(t),this.state.maybeInArrowParameters=n,t}parseFunctionId(t){return t||K(this.state.type)?this.parseIdentifier():null}parseFunctionParams(t,e){this.expect(10),this.expressionScope.enter(gh()),t.params=this.parseBindingList(11,41,!1,e),this.expressionScope.exit()}registerFunctionStatementId(t){!t.id||this.scope.declareName(t.id.name,this.state.strict||t.generator||t.async?this.scope.treatFunctionsAsVar?pt:xe:Tr,t.id.loc.start)}parseClass(t,e,s){this.next(),this.takeDecorators(t);let r=this.state.strict;return this.state.strict=!0,this.parseClassId(t,e,s),this.parseClassSuper(t),t.body=this.parseClassBody(!!t.superClass,r),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}isNonstaticConstructor(t){return!t.computed&&!t.static&&(t.key.name==="constructor"||t.key.value==="constructor")}parseClassBody(t,e){this.classScope.enter();let s={hadConstructor:!1,hadSuperClass:t},r=[],i=this.startNode();if(i.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(r.length>0)throw this.raise(u.DecoratorSemicolon,{at:this.state.lastTokEndLoc});continue}if(this.match(26)){r.push(this.parseDecorator());continue}let a=this.startNode();r.length&&(a.decorators=r,this.resetStartLocationFromNode(a,r[0]),r=[]),this.parseClassMember(i,a,s),a.kind==="constructor"&&a.decorators&&a.decorators.length>0&&this.raise(u.DecoratorConstructor,{at:a})}}),this.state.strict=e,this.next(),r.length)throw this.raise(u.TrailingDecorator,{at:this.state.startLoc});return this.classScope.exit(),this.finishNode(i,"ClassBody")}parseClassMemberFromModifier(t,e){let s=this.parseIdentifier(!0);if(this.isClassMethod()){let r=e;return r.kind="method",r.computed=!1,r.key=s,r.static=!1,this.pushClassMethod(t,r,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let r=e;return r.computed=!1,r.key=s,r.static=!1,t.body.push(this.parseClassProperty(r)),!0}return this.resetPreviousNodeTrailingComments(s),!1}parseClassMember(t,e,s){let r=this.isContextual(104);if(r){if(this.parseClassMemberFromModifier(t,e))return;if(this.eat(5)){this.parseClassStaticBlock(t,e);return}}this.parseClassMemberWithIsStatic(t,e,s,r)}parseClassMemberWithIsStatic(t,e,s,r){let i=e,a=e,n=e,o=e,c=e,f=i,y=i;if(e.static=r,this.parsePropertyNamePrefixOperator(e),this.eat(55)){f.kind="method";let _=this.match(134);if(this.parseClassElementName(f),_){this.pushClassPrivateMethod(t,a,!0,!1);return}this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsGenerator,{at:i.key}),this.pushClassMethod(t,i,!0,!1,!1,!1);return}let P=K(this.state.type)&&!this.state.containsEsc,v=this.match(134),N=this.parseClassElementName(e),B=this.state.startLoc;if(this.parsePostMemberNameModifiers(y),this.isClassMethod()){if(f.kind="method",v){this.pushClassPrivateMethod(t,a,!1,!1);return}let _=this.isNonstaticConstructor(i),Q=!1;_&&(i.kind="constructor",s.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(u.DuplicateConstructor,{at:N}),_&&this.hasPlugin("typescript")&&e.override&&this.raise(u.OverrideOnConstructor,{at:N}),s.hadConstructor=!0,Q=s.hadSuperClass),this.pushClassMethod(t,i,!1,!1,_,Q)}else if(this.isClassProperty())v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n);else if(P&&N.name==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(N);let _=this.eat(55);y.optional&&this.unexpected(B),f.kind="method";let Q=this.match(134);this.parseClassElementName(f),this.parsePostMemberNameModifiers(y),Q?this.pushClassPrivateMethod(t,a,_,!0):(this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsAsync,{at:i.key}),this.pushClassMethod(t,i,_,!0,!1,!1))}else if(P&&(N.name==="get"||N.name==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(N),f.kind=N.name;let _=this.match(134);this.parseClassElementName(i),_?this.pushClassPrivateMethod(t,a,!1,!1):(this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsAccessor,{at:i.key}),this.pushClassMethod(t,i,!1,!1,!1,!1)),this.checkGetterSetterParams(i)}else if(P&&N.name==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(N);let _=this.match(134);this.parseClassElementName(n),this.pushClassAccessorProperty(t,c,_)}else this.isLineTerminator()?v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n):this.unexpected()}parseClassElementName(t){let{type:e,value:s}=this.state;if((e===128||e===129)&&t.static&&s==="prototype"&&this.raise(u.StaticPrototype,{at:this.state.startLoc}),e===134){s==="constructor"&&this.raise(u.ConstructorClassPrivateField,{at:this.state.startLoc});let r=this.parsePrivateName();return t.key=r,r}return this.parsePropertyName(t)}parseClassStaticBlock(t,e){var s;this.scope.enter(Se|Yt|ot);let r=this.state.labels;this.state.labels=[],this.prodParam.enter(je);let i=e.body=[];this.parseBlockOrModuleBlockBody(i,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=r,t.body.push(this.finishNode(e,"StaticBlock")),(s=e.decorators)!=null&&s.length&&this.raise(u.DecoratorStaticBlock,{at:e})}pushClassProperty(t,e){!e.computed&&(e.key.name==="constructor"||e.key.value==="constructor")&&this.raise(u.ConstructorClassField,{at:e.key}),t.body.push(this.parseClassProperty(e))}pushClassPrivateProperty(t,e){let s=this.parseClassPrivateProperty(e);t.body.push(s),this.classScope.declarePrivateName(this.getPrivateNameSV(s.key),is,s.key.loc.start)}pushClassAccessorProperty(t,e,s){if(!s&&!e.computed){let i=e.key;(i.name==="constructor"||i.value==="constructor")&&this.raise(u.ConstructorClassField,{at:i})}let r=this.parseClassAccessorProperty(e);t.body.push(r),s&&this.classScope.declarePrivateName(this.getPrivateNameSV(r.key),is,r.key.loc.start)}pushClassMethod(t,e,s,r,i,a){t.body.push(this.parseMethod(e,s,r,i,a,"ClassMethod",!0))}pushClassPrivateMethod(t,e,s,r){let i=this.parseMethod(e,s,r,!1,!1,"ClassPrivateMethod",!0);t.body.push(i);let a=i.kind==="get"?i.static?Qo:eh:i.kind==="set"?i.static?Zo:th:is;this.declareClassPrivateMethodInScope(i,a)}declareClassPrivateMethodInScope(t,e){this.classScope.declarePrivateName(this.getPrivateNameSV(t.key),e,t.key.loc.start)}parsePostMemberNameModifiers(t){}parseClassPrivateProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassPrivateProperty")}parseClassProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassProperty")}parseClassAccessorProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,"ClassAccessorProperty")}parseInitializer(t){this.scope.enter(Se|ot),this.expressionScope.enter(Dr()),this.prodParam.enter(je),t.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Pr;if(K(this.state.type))t.id=this.parseIdentifier(),e&&this.declareNameFromIdentifier(t.id,r);else if(s||!e)t.id=null;else throw this.raise(u.MissingClassName,{at:this.state.startLoc})}parseClassSuper(t){t.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(t){let e=this.maybeParseExportDefaultSpecifier(t),s=!e||this.eat(12),r=s&&this.eatExportStar(t),i=r&&this.maybeParseExportNamespaceSpecifier(t),a=s&&(!i||this.eat(12)),n=e||r;if(r&&!i)return e&&this.unexpected(),this.parseExportFrom(t,!0),this.finishNode(t,"ExportAllDeclaration");let o=this.maybeParseExportNamedSpecifiers(t);if(e&&s&&!r&&!o||i&&a&&!o)throw this.unexpected(null,5);let c;if(n||o?(c=!1,this.parseExportFrom(t,n)):c=this.maybeParseExportDeclaration(t),n||o||c)return this.checkExport(t,!0,!1,!!t.source),this.finishNode(t,"ExportNamedDeclaration");if(this.eat(65))return t.declaration=this.parseExportDefaultExpression(),this.checkExport(t,!0,!0),this.finishNode(t,"ExportDefaultDeclaration");throw this.unexpected(null,5)}eatExportStar(t){return this.eat(55)}maybeParseExportDefaultSpecifier(t){if(this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom");let e=this.startNode();return e.exported=this.parseIdentifier(!0),t.specifiers=[this.finishNode(e,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(t){if(this.isContextual(93)){t.specifiers||(t.specifiers=[]);let e=this.startNodeAt(this.state.lastTokStart,this.state.lastTokStartLoc);return this.next(),e.exported=this.parseModuleExportName(),t.specifiers.push(this.finishNode(e,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(t){if(this.match(5)){t.specifiers||(t.specifiers=[]);let e=t.exportKind==="type";return t.specifiers.push(...this.parseExportSpecifiers(e)),t.source=null,t.declaration=null,this.hasPlugin("importAssertions")&&(t.assertions=[]),!0}return!1}maybeParseExportDeclaration(t){return this.shouldParseExportDeclaration()?(t.specifiers=[],t.source=null,this.hasPlugin("importAssertions")&&(t.assertions=[]),t.declaration=this.parseExportDeclaration(t),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let t=this.nextTokenStart();return!as.test(this.input.slice(this.state.pos,t))&&this.isUnparsedContextual(t,"function")}parseExportDefaultExpression(){let t=this.startNode(),e=this.isAsyncFunction();if(this.match(68)||e)return this.next(),e&&this.next(),this.parseFunction(t,fs|Wr,e);if(this.match(80))return this.parseClass(t,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(u.DecoratorBeforeExport,{at:this.state.startLoc}),this.parseDecorators(!1),this.parseClass(t,!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(u.UnsupportedDefaultExport,{at:this.state.startLoc});let s=this.parseMaybeAssignAllowIn();return this.semicolon(),s}parseExportDeclaration(t){return this.parseStatement(null)}isExportDefaultSpecifier(){let{type:t}=this.state;if(K(t)){if(t===95&&!this.state.containsEsc||t===99)return!1;if((t===126||t===125)&&!this.state.containsEsc){let{type:r}=this.lookahead();if(K(r)&&r!==97||r===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;let e=this.nextTokenStart(),s=this.isUnparsedContextual(e,"from");if(this.input.charCodeAt(e)===44||K(this.state.type)&&s)return!0;if(this.match(65)&&s){let r=this.input.charCodeAt(this.nextTokenStartSince(e+4));return r===34||r===39}return!1}parseExportFrom(t,e){if(this.eatContextual(97)){t.source=this.parseImportSource(),this.checkExport(t);let s=this.maybeParseImportAssertions();s&&(t.assertions=s)}else e&&this.unexpected();this.semicolon()}shouldParseExportDeclaration(){let{type:t}=this.state;if(t===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))){if(this.getPluginOption("decorators","decoratorsBeforeExport"))throw this.raise(u.DecoratorBeforeExport,{at:this.state.startLoc});return!0}return t===74||t===75||t===68||t===80||this.isLet()||this.isAsyncFunction()}checkExport(t,e,s,r){if(e){if(s){if(this.checkDuplicateExports(t,"default"),this.hasPlugin("exportDefaultFrom")){var i;let n=t.declaration;n.type==="Identifier"&&n.name==="from"&&n.end-n.start===4&&!((i=n.extra)!=null&&i.parenthesized)&&this.raise(u.ExportDefaultFromAsIdentifier,{at:n})}}else if(t.specifiers&&t.specifiers.length)for(let n of t.specifiers){let{exported:o}=n,c=o.type==="Identifier"?o.name:o.value;if(this.checkDuplicateExports(n,c),!r&&n.local){let{local:f}=n;f.type!=="Identifier"?this.raise(u.ExportBindingIsString,{at:n,localName:f.value,exportName:c}):(this.checkReservedWord(f.name,f.loc.start,!0,!1),this.scope.checkLocalExport(f))}}else if(t.declaration){if(t.declaration.type==="FunctionDeclaration"||t.declaration.type==="ClassDeclaration"){let n=t.declaration.id;if(!n)throw new Error("Assertion failure");this.checkDuplicateExports(t,n.name)}else if(t.declaration.type==="VariableDeclaration")for(let n of t.declaration.declarations)this.checkDeclaration(n.id)}}if(this.state.decoratorStack[this.state.decoratorStack.length-1].length)throw this.raise(u.UnsupportedDecoratorExport,{at:t})}checkDeclaration(t){if(t.type==="Identifier")this.checkDuplicateExports(t,t.name);else if(t.type==="ObjectPattern")for(let e of t.properties)this.checkDeclaration(e);else if(t.type==="ArrayPattern")for(let e of t.elements)e&&this.checkDeclaration(e);else t.type==="ObjectProperty"?this.checkDeclaration(t.value):t.type==="RestElement"?this.checkDeclaration(t.argument):t.type==="AssignmentPattern"&&this.checkDeclaration(t.left)}checkDuplicateExports(t,e){this.exportedIdentifiers.has(e)&&(e==="default"?this.raise(u.DuplicateDefaultExport,{at:t}):this.raise(u.DuplicateExport,{at:t,exportName:e})),this.exportedIdentifiers.add(e)}parseExportSpecifiers(t){let e=[],s=!0;for(this.expect(5);!this.eat(8);){if(s)s=!1;else if(this.expect(12),this.eat(8))break;let r=this.isContextual(126),i=this.match(129),a=this.startNode();a.local=this.parseModuleExportName(),e.push(this.parseExportSpecifier(a,i,t,r))}return e}parseExportSpecifier(t,e,s,r){return this.eatContextual(93)?t.exported=this.parseModuleExportName():e?t.exported=bh(t.local):t.exported||(t.exported=ge(t.local)),this.finishNode(t,"ExportSpecifier")}parseModuleExportName(){if(this.match(129)){let t=this.parseStringLiteral(this.state.value),e=t.value.match(Zh);return e&&this.raise(u.ModuleExportNameHasLoneSurrogate,{at:t,surrogateCharCode:e[0].charCodeAt(0)}),t}return this.parseIdentifier(!0)}parseImport(t){if(t.specifiers=[],!this.match(129)){let r=!this.maybeParseDefaultImportSpecifier(t)||this.eat(12),i=r&&this.maybeParseStarImportSpecifier(t);r&&!i&&this.parseNamedImportSpecifiers(t),this.expectContextual(97)}t.source=this.parseImportSource();let e=this.maybeParseImportAssertions();if(e)t.assertions=e;else{let s=this.maybeParseModuleAttributes();s&&(t.attributes=s)}return this.semicolon(),this.finishNode(t,"ImportDeclaration")}parseImportSource(){return this.match(129)||this.unexpected(),this.parseExprAtom()}shouldParseDefaultImport(t){return K(this.state.type)}parseImportSpecifierLocal(t,e,s){e.local=this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(e,s))}finishImportSpecifier(t,e){return this.checkLVal(t.local,{in:t,binding:xe}),this.finishNode(t,e)}parseAssertEntries(){let t=[],e=new Set;do{if(this.match(8))break;let s=this.startNode(),r=this.state.value;if(e.has(r)&&this.raise(u.ModuleAttributesWithDuplicateKeys,{at:this.state.startLoc,key:r}),e.add(r),this.match(129)?s.key=this.parseStringLiteral(r):s.key=this.parseIdentifier(!0),this.expect(14),!this.match(129))throw this.raise(u.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,"ImportAttribute"),t.push(s)}while(this.eat(12));return t}maybeParseModuleAttributes(){if(this.match(76)&&!this.hasPrecedingLineBreak())this.expectPlugin("moduleAttributes"),this.next();else return this.hasPlugin("moduleAttributes")?[]:null;let t=[],e=new Set;do{let s=this.startNode();if(s.key=this.parseIdentifier(!0),s.key.name!=="type"&&this.raise(u.ModuleAttributeDifferentFromType,{at:s.key}),e.has(s.key.name)&&this.raise(u.ModuleAttributesWithDuplicateKeys,{at:s.key,key:s.key.name}),e.add(s.key.name),this.expect(14),!this.match(129))throw this.raise(u.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,"ImportAttribute"),t.push(s)}while(this.eat(12));return t}maybeParseImportAssertions(){if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.expectPlugin("importAssertions"),this.next();else return this.hasPlugin("importAssertions")?[]:null;this.eat(5);let t=this.parseAssertEntries();return this.eat(8),t}maybeParseDefaultImportSpecifier(t){return this.shouldParseDefaultImport(t)?(this.parseImportSpecifierLocal(t,this.startNode(),"ImportDefaultSpecifier"),!0):!1}maybeParseStarImportSpecifier(t){if(this.match(55)){let e=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(t,e,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(t){let e=!0;for(this.expect(5);!this.eat(8);){if(e)e=!1;else{if(this.eat(14))throw this.raise(u.DestructureNamedImport,{at:this.state.startLoc});if(this.expect(12),this.eat(8))break}let s=this.startNode(),r=this.match(129),i=this.isContextual(126);s.imported=this.parseModuleExportName();let a=this.parseImportSpecifier(s,r,t.importKind==="type"||t.importKind==="typeof",i);t.specifiers.push(a)}}parseImportSpecifier(t,e,s,r){if(this.eatContextual(93))t.local=this.parseIdentifier();else{let{imported:i}=t;if(e)throw this.raise(u.ImportBindingIsString,{at:t,importName:i.value});this.checkReservedWord(i.name,t.loc.start,!0,!0),t.local||(t.local=ge(i))}return this.finishImportSpecifier(t,"ImportSpecifier")}isThisParam(t){return t.type==="Identifier"&&t.name==="this"}},Gr=class extends tl{constructor(t,e){t=Gh(t),super(t,e),this.options=t,this.initializeScopes(),this.plugins=sl(this.options.plugins),this.filename=t.sourceFilename}getScopeHandler(){return hs}parse(){this.enterInitialScopes();let t=this.startNode(),e=this.startNode();return this.nextToken(),t.errors=null,this.parseTopLevel(t,e),t.errors=this.state.errors,t}};function sl(t){let e=new Map;for(let s of t){let[r,i]=Array.isArray(s)?s:[s,{}];e.has(r)||e.set(r,i||{})}return e}function rl(t,e){var s;if(((s=e)==null?void 0:s.sourceType)==="unambiguous"){e=Object.assign({},e);try{e.sourceType="module";let r=Ye(e,t),i=r.parse();if(r.sawUnambiguousESM)return i;if(r.ambiguousScriptDifferentAst)try{return e.sourceType="script",Ye(e,t).parse()}catch{}else i.program.sourceType="script";return i}catch(r){try{return e.sourceType="script",Ye(e,t).parse()}catch{}throw r}}else return Ye(e,t).parse()}function il(t,e){let s=Ye(e,t);return s.options.strictMode&&(s.state.strict=!0),s.getExpression()}function al(t){let e={};for(let s of Object.keys(t))e[s]=fe(t[s]);return e}var nl=al(bo);function Ye(t,e){let s=Gr;return t!=null&&t.plugins&&(Hh(t.plugins),s=ol(t.plugins)),new s(t,e)}var Xr={};function ol(t){let e=Wh.filter(i=>ee(t,i)),s=e.join("/"),r=Xr[s];if(!r){r=Gr;for(let i of e)r=zr[i](r);Xr[s]=r}return r}h.parse=rl,h.parseExpression=il,h.tokTypes=nl}}),Pf=H({"src/language-js/parse/json.js"(h,l){"use strict";V();var p=fo(),d=nr(),m=yo(),A=xo();function g(){let E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{allowComments:L=!0}=E;return function(F){let{parseExpression:W}=Po(),Y;try{Y=W(F,{tokens:!0,ranges:!0})}catch(M){throw A(M)}if(!L&&p(Y.comments))throw x(Y.comments[0],"Comment");return T(Y),Y}}function x(E,L){let[R,F]=[E.loc.start,E.loc.end].map(W=>{let{line:Y,column:M}=W;return{line:Y,column:M+1}});return d("".concat(L," is not allowed in JSON."),{start:R,end:F})}function T(E){switch(E.type){case"ArrayExpression":for(let L of E.elements)L!==null&&T(L);return;case"ObjectExpression":for(let L of E.properties)T(L);return;case"ObjectProperty":if(E.computed)throw x(E.key,"Computed key");if(E.shorthand)throw x(E.key,"Shorthand property");E.key.type!=="Identifier"&&T(E.key),T(E.value);return;case"UnaryExpression":{let{operator:L,argument:R}=E;if(L!=="+"&&L!=="-")throw x(E,"Operator '".concat(E.operator,"'"));if(R.type==="NumericLiteral"||R.type==="Identifier"&&(R.name==="Infinity"||R.name==="NaN"))return;throw x(R,"Operator '".concat(L,"' before '").concat(R.type,"'"))}case"Identifier":if(E.name!=="Infinity"&&E.name!=="NaN"&&E.name!=="undefined")throw x(E,"Identifier '".concat(E.name,"'"));return;case"TemplateLiteral":if(p(E.expressions))throw x(E.expressions[0],"'TemplateLiteral' with expression");for(let L of E.quasis)T(L);return;case"NullLiteral":case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"TemplateElement":return;default:throw x(E,"'".concat(E.type,"'"))}}var k=g(),D={json:m({parse:k,hasPragma(){return!0}}),json5:m(k),"json-stringify":m({parse:g({allowComments:!1}),astFormat:"estree-json"})};l.exports=D}});V();var Tf=ef(),Ef=Qn(),Cf=af(),ze=yo(),bf=xo(),vf=Af(),Sf=Pf(),wf={sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,plugins:["doExpressions","exportDefaultFrom","functionBind","functionSent","throwExpressions","partialApplication",["decorators",{decoratorsBeforeExport:!1}],"importAssertions","decimal","moduleBlocks","asyncDoExpressions","regexpUnicodeSets","destructuringPrivate","decoratorAutoAccessors"],tokens:!0,ranges:!0},Nf=["recordAndTuple",{syntaxType:"hash"}],Wn="v8intrinsic",Gn=[["pipelineOperator",{proposal:"hack",topicToken:"%"}],["pipelineOperator",{proposal:"minimal"}],["pipelineOperator",{proposal:"fsharp"}]],ue=function(h){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wf;return Object.assign(Object.assign({},l),{},{plugins:[...l.plugins,...h]})},If=/@(?:no)?flow\b/;function kf(h,l){if(l.filepath&&l.filepath.endsWith(".js.flow"))return!0;let p=Ef(h);p&&(h=h.slice(p.length));let d=Cf(h,0);return d!==!1&&(h=h.slice(0,d)),If.test(h)}function Df(h,l,p){let m=Po()[h](l,p),A=m.errors.find(g=>!Rf.has(g.reasonCode));if(A)throw A;return m}function Ke(h){for(var l=arguments.length,p=new Array(l>1?l-1:0),d=1;d2&&arguments[2]!==void 0?arguments[2]:{};if((g.parser==="babel"||g.parser==="__babel_estree")&&kf(m,g))return g.parser="babel-flow",To(m,A,g);let x=p;g.__babelSourceType==="script"&&(x=x.map(E=>Object.assign(Object.assign({},E),{},{sourceType:"script"}))),/#[[{]/.test(m)&&(x=x.map(E=>ue([Nf],E)));let T=/%[A-Z]/.test(m);m.includes("|>")?x=(T?[...Gn,Wn]:Gn).flatMap(L=>x.map(R=>ue([L],R))):T&&(x=x.map(E=>ue([Wn],E)));let{result:k,error:D}=Tf(...x.map(E=>()=>Df(h,m,E)));if(!k)throw bf(D);return g.originalText=m,vf(k,g)}}var Ff=Ke("parse",ue(["jsx","flow"])),To=Ke("parse",ue(["jsx",["flow",{all:!0,enums:!0}]])),Lf=Ke("parse",ue(["jsx","typescript"]),ue(["typescript"])),Of=Ke("parse",ue(["jsx","flow","estree"])),Bf=Ke("parseExpression",ue(["jsx"])),Mf=Ke("parseExpression",ue(["typescript"])),Rf=new Set(["StrictNumericEscape","StrictWith","StrictOctalLiteral","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","EmptyTypeArguments","EmptyTypeParameters","ConstructorHasTypeParameters","UnsupportedParameterPropertyKind","UnexpectedParameterModifier","MixedLabeledAndUnlabeledElements","InvalidTupleMemberLabel","NonClassMethodPropertyHasAbstractModifer","ReadonlyForMethodSignature","ClassMethodHasDeclare","ClassMethodHasReadonly","InvalidModifierOnTypeMember","DuplicateAccessibilityModifier","IndexSignatureHasDeclare","DecoratorExportClass","ParamDupe","InvalidDecimal","RestTrailingComma","UnsupportedParameterDecorator","UnterminatedJsxContent","UnexpectedReservedWord","ModuleAttributesWithDuplicateKeys","LineTerminatorBeforeArrow","InvalidEscapeSequenceTemplate","NonAbstractClassHasAbstractMethod","UnsupportedPropertyDecorator","OptionalTypeBeforeRequired","PatternIsOptional","OptionalBindingPattern","DeclareClassFieldHasInitializer","TypeImportCannotSpecifyDefaultAndNamed","DeclareFunctionHasImplementation","ConstructorClassField","VarRedeclaration","InvalidPrivateFieldResolution","DuplicateExport"]),Xn=ze(Ff),Jn=ze(Lf),Yn=ze(Bf),jf=ze(Mf);Eo.exports={parsers:Object.assign(Object.assign({babel:Xn,"babel-flow":ze(To),"babel-ts":Jn},Sf),{},{__js_expression:Yn,__vue_expression:Yn,__vue_ts_expression:jf,__vue_event_binding:Xn,__vue_ts_event_binding:Jn,__babel_estree:ze(Of)})}});return qf();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-espree.js b/node_modules/prettier/parser-espree.js new file mode 100644 index 0000000..d78f439 --- /dev/null +++ b/node_modules/prettier/parser-espree.js @@ -0,0 +1,26 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.espree=e()}})(function(){"use strict";var S=(n,o)=>()=>(o||n((o={exports:{}}).exports,o),o.exports);var $=S((Dh,qr)=>{var Ze=function(n){return n&&n.Math==Math&&n};qr.exports=Ze(typeof globalThis=="object"&&globalThis)||Ze(typeof window=="object"&&window)||Ze(typeof self=="object"&&self)||Ze(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var ye=S((Oh,Mr)=>{Mr.exports=function(n){try{return!!n()}catch{return!0}}});var _e=S((Lh,Ur)=>{var tn=ye();Ur.exports=!tn(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Ct=S((Vh,zr)=>{var rn=ye();zr.exports=!rn(function(){var n=function(){}.bind();return typeof n!="function"||n.hasOwnProperty("prototype")})});var et=S((Rh,Wr)=>{var sn=Ct(),$e=Function.prototype.call;Wr.exports=sn?$e.bind($e):function(){return $e.apply($e,arguments)}});var Hr=S(Xr=>{"use strict";var Gr={}.propertyIsEnumerable,Kr=Object.getOwnPropertyDescriptor,an=Kr&&!Gr.call({1:2},1);Xr.f=an?function(o){var u=Kr(this,o);return!!u&&u.enumerable}:Gr});var Et=S((qh,Jr)=>{Jr.exports=function(n,o){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:o}}});var ce=S((Mh,Zr)=>{var Yr=Ct(),Qr=Function.prototype,nn=Qr.bind,bt=Qr.call,on=Yr&&nn.bind(bt,bt);Zr.exports=Yr?function(n){return n&&on(n)}:function(n){return n&&function(){return bt.apply(n,arguments)}}});var ti=S((Uh,ei)=>{var $r=ce(),un=$r({}.toString),hn=$r("".slice);ei.exports=function(n){return hn(un(n),8,-1)}});var ii=S((zh,ri)=>{var ln=$(),cn=ce(),pn=ye(),fn=ti(),_t=ln.Object,dn=cn("".split);ri.exports=pn(function(){return!_t("z").propertyIsEnumerable(0)})?function(n){return fn(n)=="String"?dn(n,""):_t(n)}:_t});var St=S((Wh,si)=>{var mn=$(),vn=mn.TypeError;si.exports=function(n){if(n==null)throw vn("Can't call method on "+n);return n}});var tt=S((Gh,ai)=>{var gn=ii(),xn=St();ai.exports=function(n){return gn(xn(n))}});var pe=S((Kh,ni)=>{ni.exports=function(n){return typeof n=="function"}});var Ie=S((Xh,oi)=>{var yn=pe();oi.exports=function(n){return typeof n=="object"?n!==null:yn(n)}});var rt=S((Hh,ui)=>{var wt=$(),An=pe(),Cn=function(n){return An(n)?n:void 0};ui.exports=function(n,o){return arguments.length<2?Cn(wt[n]):wt[n]&&wt[n][o]}});var li=S((Jh,hi)=>{var En=ce();hi.exports=En({}.isPrototypeOf)});var pi=S((Yh,ci)=>{var bn=rt();ci.exports=bn("navigator","userAgent")||""});var yi=S((Qh,xi)=>{var gi=$(),kt=pi(),fi=gi.process,di=gi.Deno,mi=fi&&fi.versions||di&&di.version,vi=mi&&mi.v8,he,it;vi&&(he=vi.split("."),it=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!it&&kt&&(he=kt.match(/Edge\/(\d+)/),(!he||he[1]>=74)&&(he=kt.match(/Chrome\/(\d+)/),he&&(it=+he[1])));xi.exports=it});var Ft=S((Zh,Ci)=>{var Ai=yi(),_n=ye();Ci.exports=!!Object.getOwnPropertySymbols&&!_n(function(){var n=Symbol();return!String(n)||!(Object(n)instanceof Symbol)||!Symbol.sham&&Ai&&Ai<41})});var Bt=S(($h,Ei)=>{var Sn=Ft();Ei.exports=Sn&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Tt=S((el,bi)=>{var wn=$(),kn=rt(),Fn=pe(),Bn=li(),Tn=Bt(),In=wn.Object;bi.exports=Tn?function(n){return typeof n=="symbol"}:function(n){var o=kn("Symbol");return Fn(o)&&Bn(o.prototype,In(n))}});var Si=S((tl,_i)=>{var Pn=$(),Nn=Pn.String;_i.exports=function(n){try{return Nn(n)}catch{return"Object"}}});var ki=S((rl,wi)=>{var Dn=$(),On=pe(),Ln=Si(),Vn=Dn.TypeError;wi.exports=function(n){if(On(n))return n;throw Vn(Ln(n)+" is not a function")}});var Bi=S((il,Fi)=>{var Rn=ki();Fi.exports=function(n,o){var u=n[o];return u==null?void 0:Rn(u)}});var Ii=S((sl,Ti)=>{var jn=$(),It=et(),Pt=pe(),Nt=Ie(),qn=jn.TypeError;Ti.exports=function(n,o){var u,l;if(o==="string"&&Pt(u=n.toString)&&!Nt(l=It(u,n))||Pt(u=n.valueOf)&&!Nt(l=It(u,n))||o!=="string"&&Pt(u=n.toString)&&!Nt(l=It(u,n)))return l;throw qn("Can't convert object to primitive value")}});var Ni=S((al,Pi)=>{Pi.exports=!1});var st=S((nl,Oi)=>{var Di=$(),Mn=Object.defineProperty;Oi.exports=function(n,o){try{Mn(Di,n,{value:o,configurable:!0,writable:!0})}catch{Di[n]=o}return o}});var at=S((ol,Vi)=>{var Un=$(),zn=st(),Li="__core-js_shared__",Wn=Un[Li]||zn(Li,{});Vi.exports=Wn});var Dt=S((ul,ji)=>{var Gn=Ni(),Ri=at();(ji.exports=function(n,o){return Ri[n]||(Ri[n]=o!==void 0?o:{})})("versions",[]).push({version:"3.22.2",mode:Gn?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var Mi=S((hl,qi)=>{var Kn=$(),Xn=St(),Hn=Kn.Object;qi.exports=function(n){return Hn(Xn(n))}});var Ae=S((ll,Ui)=>{var Jn=ce(),Yn=Mi(),Qn=Jn({}.hasOwnProperty);Ui.exports=Object.hasOwn||function(o,u){return Qn(Yn(o),u)}});var Ot=S((cl,zi)=>{var Zn=ce(),$n=0,eo=Math.random(),to=Zn(1 .toString);zi.exports=function(n){return"Symbol("+(n===void 0?"":n)+")_"+to(++$n+eo,36)}});var Ji=S((pl,Hi)=>{var ro=$(),io=Dt(),Wi=Ae(),so=Ot(),Gi=Ft(),Xi=Bt(),Pe=io("wks"),Se=ro.Symbol,Ki=Se&&Se.for,ao=Xi?Se:Se&&Se.withoutSetter||so;Hi.exports=function(n){if(!Wi(Pe,n)||!(Gi||typeof Pe[n]=="string")){var o="Symbol."+n;Gi&&Wi(Se,n)?Pe[n]=Se[n]:Xi&&Ki?Pe[n]=Ki(o):Pe[n]=ao(o)}return Pe[n]}});var $i=S((fl,Zi)=>{var no=$(),oo=et(),Yi=Ie(),Qi=Tt(),uo=Bi(),ho=Ii(),lo=Ji(),co=no.TypeError,po=lo("toPrimitive");Zi.exports=function(n,o){if(!Yi(n)||Qi(n))return n;var u=uo(n,po),l;if(u){if(o===void 0&&(o="default"),l=oo(u,n,o),!Yi(l)||Qi(l))return l;throw co("Can't convert object to primitive value")}return o===void 0&&(o="number"),ho(n,o)}});var Lt=S((dl,es)=>{var fo=$i(),mo=Tt();es.exports=function(n){var o=fo(n,"string");return mo(o)?o:o+""}});var is=S((ml,rs)=>{var vo=$(),ts=Ie(),Vt=vo.document,go=ts(Vt)&&ts(Vt.createElement);rs.exports=function(n){return go?Vt.createElement(n):{}}});var Rt=S((vl,ss)=>{var xo=_e(),yo=ye(),Ao=is();ss.exports=!xo&&!yo(function(){return Object.defineProperty(Ao("div"),"a",{get:function(){return 7}}).a!=7})});var jt=S(ns=>{var Co=_e(),Eo=et(),bo=Hr(),_o=Et(),So=tt(),wo=Lt(),ko=Ae(),Fo=Rt(),as=Object.getOwnPropertyDescriptor;ns.f=Co?as:function(o,u){if(o=So(o),u=wo(u),Fo)try{return as(o,u)}catch{}if(ko(o,u))return _o(!Eo(bo.f,o,u),o[u])}});var us=S((xl,os)=>{var Bo=_e(),To=ye();os.exports=Bo&&To(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var qt=S((yl,ls)=>{var hs=$(),Io=Ie(),Po=hs.String,No=hs.TypeError;ls.exports=function(n){if(Io(n))return n;throw No(Po(n)+" is not an object")}});var Gt=S(ps=>{var Do=$(),Oo=_e(),Lo=Rt(),Vo=us(),nt=qt(),cs=Lt(),Ro=Do.TypeError,Mt=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,Ut="enumerable",zt="configurable",Wt="writable";ps.f=Oo?Vo?function(o,u,l){if(nt(o),u=cs(u),nt(l),typeof o=="function"&&u==="prototype"&&"value"in l&&Wt in l&&!l[Wt]){var m=jo(o,u);m&&m[Wt]&&(o[u]=l.value,l={configurable:zt in l?l[zt]:m[zt],enumerable:Ut in l?l[Ut]:m[Ut],writable:!1})}return Mt(o,u,l)}:Mt:function(o,u,l){if(nt(o),u=cs(u),nt(l),Lo)try{return Mt(o,u,l)}catch{}if("get"in l||"set"in l)throw Ro("Accessors not supported");return"value"in l&&(o[u]=l.value),o}});var ot=S((Cl,fs)=>{var qo=_e(),Mo=Gt(),Uo=Et();fs.exports=qo?function(n,o,u){return Mo.f(n,o,Uo(1,u))}:function(n,o,u){return n[o]=u,n}});var Xt=S((El,ds)=>{var zo=ce(),Wo=pe(),Kt=at(),Go=zo(Function.toString);Wo(Kt.inspectSource)||(Kt.inspectSource=function(n){return Go(n)});ds.exports=Kt.inspectSource});var gs=S((bl,vs)=>{var Ko=$(),Xo=pe(),Ho=Xt(),ms=Ko.WeakMap;vs.exports=Xo(ms)&&/native code/.test(Ho(ms))});var As=S((_l,ys)=>{var Jo=Dt(),Yo=Ot(),xs=Jo("keys");ys.exports=function(n){return xs[n]||(xs[n]=Yo(n))}});var Ht=S((Sl,Cs)=>{Cs.exports={}});var ks=S((wl,ws)=>{var Qo=gs(),Ss=$(),Jt=ce(),Zo=Ie(),$o=ot(),Yt=Ae(),Qt=at(),eu=As(),tu=Ht(),Es="Object already initialized",$t=Ss.TypeError,ru=Ss.WeakMap,ut,qe,ht,iu=function(n){return ht(n)?qe(n):ut(n,{})},su=function(n){return function(o){var u;if(!Zo(o)||(u=qe(o)).type!==n)throw $t("Incompatible receiver, "+n+" required");return u}};Qo||Qt.state?(Ce=Qt.state||(Qt.state=new ru),bs=Jt(Ce.get),Zt=Jt(Ce.has),_s=Jt(Ce.set),ut=function(n,o){if(Zt(Ce,n))throw new $t(Es);return o.facade=n,_s(Ce,n,o),o},qe=function(n){return bs(Ce,n)||{}},ht=function(n){return Zt(Ce,n)}):(we=eu("state"),tu[we]=!0,ut=function(n,o){if(Yt(n,we))throw new $t(Es);return o.facade=n,$o(n,we,o),o},qe=function(n){return Yt(n,we)?n[we]:{}},ht=function(n){return Yt(n,we)});var Ce,bs,Zt,_s,we;ws.exports={set:ut,get:qe,has:ht,enforce:iu,getterFor:su}});var Ts=S((kl,Bs)=>{var er=_e(),au=Ae(),Fs=Function.prototype,nu=er&&Object.getOwnPropertyDescriptor,tr=au(Fs,"name"),ou=tr&&function(){}.name==="something",uu=tr&&(!er||er&&nu(Fs,"name").configurable);Bs.exports={EXISTS:tr,PROPER:ou,CONFIGURABLE:uu}});var Os=S((Fl,Ds)=>{var hu=$(),Is=pe(),lu=Ae(),Ps=ot(),cu=st(),pu=Xt(),Ns=ks(),fu=Ts().CONFIGURABLE,du=Ns.get,mu=Ns.enforce,vu=String(String).split("String");(Ds.exports=function(n,o,u,l){var m=l?!!l.unsafe:!1,E=l?!!l.enumerable:!1,y=l?!!l.noTargetGet:!1,A=l&&l.name!==void 0?l.name:o,b;if(Is(u)&&(String(A).slice(0,7)==="Symbol("&&(A="["+String(A).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!lu(u,"name")||fu&&u.name!==A)&&Ps(u,"name",A),b=mu(u),b.source||(b.source=vu.join(typeof A=="string"?A:""))),n===hu){E?n[o]=u:cu(o,u);return}else m?!y&&n[o]&&(E=!0):delete n[o];E?n[o]=u:Ps(n,o,u)})(Function.prototype,"toString",function(){return Is(this)&&du(this).source||pu(this)})});var rr=S((Bl,Ls)=>{var gu=Math.ceil,xu=Math.floor;Ls.exports=function(n){var o=+n;return o!==o||o===0?0:(o>0?xu:gu)(o)}});var Rs=S((Tl,Vs)=>{var yu=rr(),Au=Math.max,Cu=Math.min;Vs.exports=function(n,o){var u=yu(n);return u<0?Au(u+o,0):Cu(u,o)}});var qs=S((Il,js)=>{var Eu=rr(),bu=Math.min;js.exports=function(n){return n>0?bu(Eu(n),9007199254740991):0}});var Us=S((Pl,Ms)=>{var _u=qs();Ms.exports=function(n){return _u(n.length)}});var Gs=S((Nl,Ws)=>{var Su=tt(),wu=Rs(),ku=Us(),zs=function(n){return function(o,u,l){var m=Su(o),E=ku(m),y=wu(l,E),A;if(n&&u!=u){for(;E>y;)if(A=m[y++],A!=A)return!0}else for(;E>y;y++)if((n||y in m)&&m[y]===u)return n||y||0;return!n&&-1}};Ws.exports={includes:zs(!0),indexOf:zs(!1)}});var Hs=S((Dl,Xs)=>{var Fu=ce(),ir=Ae(),Bu=tt(),Tu=Gs().indexOf,Iu=Ht(),Ks=Fu([].push);Xs.exports=function(n,o){var u=Bu(n),l=0,m=[],E;for(E in u)!ir(Iu,E)&&ir(u,E)&&Ks(m,E);for(;o.length>l;)ir(u,E=o[l++])&&(~Tu(m,E)||Ks(m,E));return m}});var Ys=S((Ol,Js)=>{Js.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Zs=S(Qs=>{var Pu=Hs(),Nu=Ys(),Du=Nu.concat("length","prototype");Qs.f=Object.getOwnPropertyNames||function(o){return Pu(o,Du)}});var ea=S($s=>{$s.f=Object.getOwnPropertySymbols});var ra=S((Rl,ta)=>{var Ou=rt(),Lu=ce(),Vu=Zs(),Ru=ea(),ju=qt(),qu=Lu([].concat);ta.exports=Ou("Reflect","ownKeys")||function(o){var u=Vu.f(ju(o)),l=Ru.f;return l?qu(u,l(o)):u}});var aa=S((jl,sa)=>{var ia=Ae(),Mu=ra(),Uu=jt(),zu=Gt();sa.exports=function(n,o,u){for(var l=Mu(o),m=zu.f,E=Uu.f,y=0;y{var Wu=ye(),Gu=pe(),Ku=/#|\.prototype\./,Me=function(n,o){var u=Hu[Xu(n)];return u==Yu?!0:u==Ju?!1:Gu(o)?Wu(o):!!o},Xu=Me.normalize=function(n){return String(n).replace(Ku,".").toLowerCase()},Hu=Me.data={},Ju=Me.NATIVE="N",Yu=Me.POLYFILL="P";na.exports=Me});var ha=S((Ml,ua)=>{var sr=$(),Qu=jt().f,Zu=ot(),$u=Os(),eh=st(),th=aa(),rh=oa();ua.exports=function(n,o){var u=n.target,l=n.global,m=n.stat,E,y,A,b,g,V;if(l?y=sr:m?y=sr[u]||eh(u,{}):y=(sr[u]||{}).prototype,y)for(A in o){if(g=o[A],n.noTargetGet?(V=Qu(y,A),b=V&&V.value):b=y[A],E=rh(l?A:u+(m?".":"#")+A,n.forced),!E&&b!==void 0){if(typeof g==typeof b)continue;th(g,b)}(n.sham||b&&b.sham)&&Zu(g,"sham",!0),$u(y,A,g,n)}}});var la=S(()=>{var ih=ha(),sh=$();ih({global:!0},{globalThis:sh})});var ca=S(()=>{la()});var Ph=S((Xl,Na)=>{ca();var ur=Object.defineProperty,ah=Object.getOwnPropertyDescriptor,hr=Object.getOwnPropertyNames,nh=Object.prototype.hasOwnProperty,pa=(n,o)=>function(){return n&&(o=(0,n[hr(n)[0]])(n=0)),o},Y=(n,o)=>function(){return o||(0,n[hr(n)[0]])((o={exports:{}}).exports,o),o.exports},oh=(n,o)=>{for(var u in o)ur(n,u,{get:o[u],enumerable:!0})},uh=(n,o,u,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of hr(o))!nh.call(n,m)&&m!==u&&ur(n,m,{get:()=>o[m],enumerable:!(l=ah(o,m))||l.enumerable});return n},hh=n=>uh(ur({},"__esModule",{value:!0}),n),J=pa({""(){}}),lr=Y({"src/common/parser-create-error.js"(n,o){"use strict";J();function u(l,m){let E=new SyntaxError(l+" ("+m.start.line+":"+m.start.column+")");return E.loc=m,E}o.exports=u}}),fa=Y({"src/utils/try-combinations.js"(n,o){"use strict";J();function u(){let l;for(var m=arguments.length,E=new Array(m),y=0;yor,arch:()=>lh,cpus:()=>Ca,default:()=>wa,endianness:()=>ma,freemem:()=>ya,getNetworkInterfaces:()=>Sa,hostname:()=>va,loadavg:()=>ga,networkInterfaces:()=>_a,platform:()=>ch,release:()=>ba,tmpDir:()=>ar,tmpdir:()=>nr,totalmem:()=>Aa,type:()=>Ea,uptime:()=>xa});function ma(){if(typeof lt>"u"){var n=new ArrayBuffer(2),o=new Uint8Array(n),u=new Uint16Array(n);if(o[0]=1,o[1]=2,u[0]===258)lt="BE";else if(u[0]===513)lt="LE";else throw new Error("unable to figure out endianess")}return lt}function va(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function ga(){return[]}function xa(){return 0}function ya(){return Number.MAX_VALUE}function Aa(){return Number.MAX_VALUE}function Ca(){return[]}function Ea(){return"Browser"}function ba(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function _a(){}function Sa(){}function lh(){return"javascript"}function ch(){return"browser"}function ar(){return"/tmp"}var lt,nr,or,wa,ph=pa({"node-modules-polyfills:os"(){J(),nr=ar,or=` +`,wa={EOL:or,tmpdir:nr,tmpDir:ar,networkInterfaces:_a,getNetworkInterfaces:Sa,release:ba,type:Ea,cpus:Ca,totalmem:Aa,freemem:ya,uptime:xa,loadavg:ga,hostname:va,endianness:ma}}}),fh=Y({"node-modules-polyfills-commonjs:os"(n,o){J();var u=(ph(),hh(da));if(u&&u.default){o.exports=u.default;for(let l in u)o.exports[l]=u[l]}else u&&(o.exports=u)}}),dh=Y({"node_modules/detect-newline/index.js"(n,o){"use strict";J();var u=l=>{if(typeof l!="string")throw new TypeError("Expected a string");let m=l.match(/(?:\r?\n)/g)||[];if(m.length===0)return;let E=m.filter(A=>A===`\r +`).length,y=m.length-E;return E>y?`\r +`:` +`};o.exports=u,o.exports.graceful=l=>typeof l=="string"&&u(l)||` +`}}),mh=Y({"node_modules/jest-docblock/build/index.js"(n){"use strict";J(),Object.defineProperty(n,"__esModule",{value:!0}),n.extract=T,n.parse=q,n.parseWithComments=B,n.print=I,n.strip=v;function o(){let C=fh();return o=function(){return C},C}function u(){let C=l(dh());return u=function(){return C},C}function l(C){return C&&C.__esModule?C:{default:C}}var m=/\*\/$/,E=/^\/\*\*/,y=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,A=/(^|\s+)\/\/([^\r\n]*)/g,b=/^(\r?\n)+/,g=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,V=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,R=/(\r?\n|^) *\* ?/g,N=[];function T(C){let H=C.match(y);return H?H[0].trimLeft():""}function v(C){let H=C.match(y);return H&&H[0]?C.substring(H[0].length):C}function q(C){return B(C).pragmas}function B(C){let H=(0,u().default)(C)||o().EOL;C=C.replace(E,"").replace(m,"").replace(R,"$1");let L="";for(;L!==C;)L=C,C=C.replace(g,"".concat(H,"$1 $2").concat(H));C=C.replace(b,"").trimRight();let i=Object.create(null),_=C.replace(V,"").replace(b,"").trimRight(),P;for(;P=V.exec(C);){let M=P[2].replace(A,"");typeof i[P[1]]=="string"||Array.isArray(i[P[1]])?i[P[1]]=N.concat(i[P[1]],M):i[P[1]]=M}return{comments:_,pragmas:i}}function I(C){let{comments:H="",pragmas:L={}}=C,i=(0,u().default)(H)||o().EOL,_="/**",P=" *",M=" */",ee=Object.keys(L),ae=ee.map(ie=>k(ie,L[ie])).reduce((ie,Ne)=>ie.concat(Ne),[]).map(ie=>P+" "+ie+i).join("");if(!H){if(ee.length===0)return"";if(ee.length===1&&!Array.isArray(L[ee[0]])){let ie=L[ee[0]];return"".concat(_," ").concat(k(ee[0],ie)[0]).concat(M)}}let te=H.split(i).map(ie=>"".concat(P," ").concat(ie)).join(i)+i;return _+i+(H?te:"")+(H&&ee.length?P+i:"")+ae+M}function k(C,H){return N.concat(H).map(L=>"@".concat(C," ").concat(L).trim())}}}),vh=Y({"src/common/end-of-line.js"(n,o){"use strict";J();function u(y){let A=y.indexOf("\r");return A>=0?y.charAt(A+1)===` +`?"crlf":"cr":"lf"}function l(y){switch(y){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function m(y,A){let b;switch(A){case` +`:b=/\n/g;break;case"\r":b=/\r/g;break;case`\r +`:b=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(A),"."))}let g=y.match(b);return g?g.length:0}function E(y){return y.replace(/\r\n?/g,` +`)}o.exports={guessEndOfLine:u,convertEndOfLineToChars:l,countEndOfLineChars:m,normalizeEndOfLine:E}}}),gh=Y({"src/language-js/utils/get-shebang.js"(n,o){"use strict";J();function u(l){if(!l.startsWith("#!"))return"";let m=l.indexOf(` +`);return m===-1?l:l.slice(0,m)}o.exports=u}}),xh=Y({"src/language-js/pragma.js"(n,o){"use strict";J();var{parseWithComments:u,strip:l,extract:m,print:E}=mh(),{normalizeEndOfLine:y}=vh(),A=gh();function b(R){let N=A(R);N&&(R=R.slice(N.length+1));let T=m(R),{pragmas:v,comments:q}=u(T);return{shebang:N,text:R,pragmas:v,comments:q}}function g(R){let N=Object.keys(b(R).pragmas);return N.includes("prettier")||N.includes("format")}function V(R){let{shebang:N,text:T,pragmas:v,comments:q}=b(R),B=l(T),I=E({pragmas:Object.assign({format:""},v),comments:q.trimStart()});return(N?"".concat(N,` +`):"")+y(I)+(B.startsWith(` +`)?` +`:` + +`)+B}o.exports={hasPragma:g,insertPragma:V}}}),yh=Y({"src/utils/is-non-empty-array.js"(n,o){"use strict";J();function u(l){return Array.isArray(l)&&l.length>0}o.exports=u}}),ka=Y({"src/language-js/loc.js"(n,o){"use strict";J();var u=yh();function l(b,g){let{ignoreDecorators:V}=g||{};if(!V){let R=b.declaration&&b.declaration.decorators||b.decorators;if(u(R))return l(R[0])}return b.range?b.range[0]:b.start}function m(b){return b.range?b.range[1]:b.end}function E(b,g){let V=l(b);return Number.isInteger(V)&&V===l(g)}function y(b,g){let V=m(b);return Number.isInteger(V)&&V===m(g)}function A(b,g){return E(b,g)&&y(b,g)}o.exports={locStart:l,locEnd:m,hasSameLocStart:E,hasSameLoc:A}}}),Fa=Y({"src/language-js/parse/utils/create-parser.js"(n,o){"use strict";J();var{hasPragma:u}=xh(),{locStart:l,locEnd:m}=ka();function E(y){return y=typeof y=="function"?{parse:y}:y,Object.assign({astFormat:"estree",hasPragma:u,locStart:l,locEnd:m},y)}o.exports=E}}),Ah=Y({"src/language-js/utils/is-ts-keyword-type.js"(n,o){"use strict";J();function u(l){let{type:m}=l;return m.startsWith("TS")&&m.endsWith("Keyword")}o.exports=u}}),Ch=Y({"src/language-js/utils/is-block-comment.js"(n,o){"use strict";J();var u=new Set(["Block","CommentBlock","MultiLine"]),l=m=>u.has(m==null?void 0:m.type);o.exports=l}}),Eh=Y({"src/language-js/utils/is-type-cast-comment.js"(n,o){"use strict";J();var u=Ch();function l(m){return u(m)&&m.value[0]==="*"&&/@type\b/.test(m.value)}o.exports=l}}),bh=Y({"src/utils/get-last.js"(n,o){"use strict";J();var u=l=>l[l.length-1];o.exports=u}}),Ba=Y({"src/language-js/parse/postprocess/visit-node.js"(n,o){"use strict";J();function u(l,m){if(Array.isArray(l)){for(let E=0;E{let T=g.get(N);return!T||!R.includes(T)}))&&l(b,"Leading decorators must be attached to a class declaration")}function E(A,b){A.kind!==167||A.modifiers&&!A.modifiers.some(R=>R.kind===126)||A.initializer&&b.value===null&&l(b,"Abstract property cannot have an initializer")}function y(A,b){let{esTreeNodeToTSNodeMap:g,tsNodeToESTreeNodeMap:V}=b.tsParseResult;u(A,R=>{let N=g.get(R);if(!N)return;let T=V.get(N);T===R&&(m(N,T,V),E(N,T))})}o.exports={throwErrorForInvalidNodes:y}}}),Ia=Y({"src/language-js/parse/postprocess/index.js"(n,o){"use strict";J();var{locStart:u,locEnd:l}=ka(),m=Ah(),E=Eh(),y=bh(),A=Ba(),{throwErrorForInvalidNodes:b}=_h(),g=Ta();function V(v,q){if(q.parser==="typescript"&&/@|abstract/.test(q.originalText)&&b(v,q),q.parser!=="typescript"&&q.parser!=="flow"&&q.parser!=="acorn"&&q.parser!=="espree"&&q.parser!=="meriyah"){let I=new Set;v=A(v,k=>{k.leadingComments&&k.leadingComments.some(E)&&I.add(u(k))}),v=A(v,k=>{if(k.type==="ParenthesizedExpression"){let{expression:C}=k;if(C.type==="TypeCastExpression")return C.range=k.range,C;let H=u(k);if(!I.has(H))return C.extra=Object.assign(Object.assign({},C.extra),{},{parenthesized:!0}),C}})}return v=A(v,I=>{switch(I.type){case"ChainExpression":return R(I.expression);case"LogicalExpression":{if(N(I))return T(I);break}case"VariableDeclaration":{let k=y(I.declarations);k&&k.init&&B(I,k);break}case"TSParenthesizedType":return m(I.typeAnnotation)||I.typeAnnotation.type==="TSThisType"||(I.typeAnnotation.range=[u(I),l(I)]),I.typeAnnotation;case"TSTypeParameter":if(typeof I.name=="string"){let k=u(I);I.name={type:"Identifier",name:I.name,range:[k,k+I.name.length]}}break;case"ObjectExpression":if(q.parser==="typescript"){let k=I.properties.find(C=>C.type==="Property"&&C.value.type==="TSEmptyBodyFunctionExpression");k&&g(k.value,"Unexpected token.")}break;case"SequenceExpression":{let k=y(I.expressions);I.range=[u(I),Math.min(l(k),l(I))];break}case"TopicReference":q.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:k}=I;if(q.parser==="meriyah"&&k&&k.type==="Identifier"){let C=q.originalText.slice(u(k),l(k));(C.startsWith('"')||C.startsWith("'"))&&(I.exported=Object.assign(Object.assign({},I.exported),{},{type:"Literal",value:I.exported.name,raw:C}))}break}}}),v;function B(I,k){q.originalText[l(k)]!==";"&&(I.range=[u(I),l(k)])}}function R(v){switch(v.type){case"CallExpression":v.type="OptionalCallExpression",v.callee=R(v.callee);break;case"MemberExpression":v.type="OptionalMemberExpression",v.object=R(v.object);break;case"TSNonNullExpression":v.expression=R(v.expression);break}return v}function N(v){return v.type==="LogicalExpression"&&v.right.type==="LogicalExpression"&&v.operator===v.right.operator}function T(v){return N(v)?T({type:"LogicalExpression",operator:v.operator,left:T({type:"LogicalExpression",operator:v.operator,left:v.left,right:v.right.left,range:[u(v.left),l(v.right.left)]}),right:v.right.right,range:[u(v),l(v)]}):v}o.exports=V}}),ct=Y({"node_modules/acorn/dist/acorn.js"(n,o){J(),function(u,l){typeof n=="object"&&typeof o<"u"?l(n):typeof define=="function"&&define.amd?define(["exports"],l):(u=typeof globalThis<"u"?globalThis:u||self,l(u.acorn={}))}(n,function(u){"use strict";var l={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},m="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",E={5:m,"5module":m+" export import",6:m+" const class extends export import super"},y=/^in(stanceof)?$/,A="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",b="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F",g=new RegExp("["+A+"]"),V=new RegExp("["+A+b+"]");A=b=null;var R=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],N=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function T(e,t){for(var r=65536,s=0;se)return!1;if(r+=t[s+1],r>=e)return!0}}function v(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&g.test(String.fromCharCode(e)):t===!1?!1:T(e,R)}function q(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&V.test(String.fromCharCode(e)):t===!1?!1:T(e,R)||T(e,N)}var B=function(t,r){r===void 0&&(r={}),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null};function I(e,t){return new B(e,{beforeExpr:!0,binop:t})}var k={beforeExpr:!0},C={startsExpr:!0},H={};function L(e,t){return t===void 0&&(t={}),t.keyword=e,H[e]=new B(e,t)}var i={num:new B("num",C),regexp:new B("regexp",C),string:new B("string",C),name:new B("name",C),privateId:new B("privateId",C),eof:new B("eof"),bracketL:new B("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new B("]"),braceL:new B("{",{beforeExpr:!0,startsExpr:!0}),braceR:new B("}"),parenL:new B("(",{beforeExpr:!0,startsExpr:!0}),parenR:new B(")"),comma:new B(",",k),semi:new B(";",k),colon:new B(":",k),dot:new B("."),question:new B("?",k),questionDot:new B("?."),arrow:new B("=>",k),template:new B("template"),invalidTemplate:new B("invalidTemplate"),ellipsis:new B("...",k),backQuote:new B("`",C),dollarBraceL:new B("${",{beforeExpr:!0,startsExpr:!0}),eq:new B("=",{beforeExpr:!0,isAssign:!0}),assign:new B("_=",{beforeExpr:!0,isAssign:!0}),incDec:new B("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new B("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:I("||",1),logicalAND:I("&&",2),bitwiseOR:I("|",3),bitwiseXOR:I("^",4),bitwiseAND:I("&",5),equality:I("==/!=/===/!==",6),relational:I("/<=/>=",7),bitShift:I("<>/>>>",8),plusMin:new B("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:I("%",10),star:I("*",10),slash:I("/",10),starstar:new B("**",{beforeExpr:!0}),coalesce:I("??",1),_break:L("break"),_case:L("case",k),_catch:L("catch"),_continue:L("continue"),_debugger:L("debugger"),_default:L("default",k),_do:L("do",{isLoop:!0,beforeExpr:!0}),_else:L("else",k),_finally:L("finally"),_for:L("for",{isLoop:!0}),_function:L("function",C),_if:L("if"),_return:L("return",k),_switch:L("switch"),_throw:L("throw",k),_try:L("try"),_var:L("var"),_const:L("const"),_while:L("while",{isLoop:!0}),_with:L("with"),_new:L("new",{beforeExpr:!0,startsExpr:!0}),_this:L("this",C),_super:L("super",C),_class:L("class",C),_extends:L("extends",k),_export:L("export"),_import:L("import",C),_null:L("null",C),_true:L("true",C),_false:L("false",C),_in:L("in",{beforeExpr:!0,binop:7}),_instanceof:L("instanceof",{beforeExpr:!0,binop:7}),_typeof:L("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:L("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:L("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},_=/\r\n?|\n|\u2028|\u2029/,P=new RegExp(_.source,"g");function M(e){return e===10||e===13||e===8232||e===8233}function ee(e,t,r){r===void 0&&(r=e.length);for(var s=t;s=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),w(t.onToken)){var s=t.onToken;t.onToken=function(a){return s.push(a)}}return w(t.onComment)&&(t.onComment=ft(t,t.onComment)),t}function ft(e,t){return function(r,s,a,h,c,d){var x={type:r?"Block":"Line",value:s,start:a,end:h};e.locations&&(x.loc=new X(this,c,d)),e.ranges&&(x.range=[a,h]),t.push(x)}}var Ee=1,ge=2,De=4,Ue=8,cr=16,pr=32,dt=64,fr=128,Oe=256,mt=Ee|ge|Oe;function vt(e,t){return ge|(e?De:0)|(t?Ue:0)}var ze=0,gt=1,fe=2,dr=3,mr=4,vr=5,Z=function(t,r,s){this.options=t=pt(t),this.sourceFile=t.sourceFile,this.keywords=f(E[t.ecmaVersion>=6?6:t.sourceType==="module"?"5module":5]);var a="";t.allowReserved!==!0&&(a=l[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType==="module"&&(a+=" await")),this.reservedWords=f(a);var h=(a?a+" ":"")+l.strict;this.reservedWordsStrict=f(h),this.reservedWordsStrictBind=f(h+" "+l.strictBind),this.input=String(r),this.containsEsc=!1,s?(this.pos=s,this.lineStart=this.input.lastIndexOf(` +`,s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(_).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=i.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType==="module",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&t.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(Ee),this.regexpState=null,this.privateNameStack=[]},le={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};Z.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},le.inFunction.get=function(){return(this.currentVarScope().flags&ge)>0},le.inGenerator.get=function(){return(this.currentVarScope().flags&Ue)>0&&!this.currentVarScope().inClassFieldInit},le.inAsync.get=function(){return(this.currentVarScope().flags&De)>0&&!this.currentVarScope().inClassFieldInit},le.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e];if(t.inClassFieldInit||t.flags&Oe)return!1;if(t.flags&ge)return(t.flags&De)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},le.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&dt)>0||r||this.options.allowSuperOutsideMethod},le.allowDirectSuper.get=function(){return(this.currentThisScope().flags&fr)>0},le.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},le.allowNewDotTarget.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&(ge|Oe))>0||r},le.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&Oe)>0},Z.extend=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];for(var s=this,a=0;a=,?^&]/.test(a)||a==="!"&&this.input.charAt(s+1)==="=")}e+=t[0].length,te.lastIndex=e,e+=te.exec(this.input)[0].length,this.input[e]===";"&&e++}},se.eat=function(e){return this.type===e?(this.next(),!0):!1},se.isContextual=function(e){return this.type===i.name&&this.value===e&&!this.containsEsc},se.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1},se.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},se.canInsertSemicolon=function(){return this.type===i.eof||this.type===i.braceR||_.test(this.input.slice(this.lastTokEnd,this.start))},se.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},se.semicolon=function(){!this.eat(i.semi)&&!this.insertSemicolon()&&this.unexpected()},se.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},se.expect=function(e){this.eat(e)||this.unexpected()},se.unexpected=function(e){this.raise(e!=null?e:this.start,"Unexpected token")};function We(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}se.checkPatternErrors=function(e,t){if(!!e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,"Parenthesized pattern")}},se.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,s=e.doubleProto;if(!t)return r>=0||s>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),s>=0&&this.raiseRecoverable(s,"Redefinition of __proto__ property")},se.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&s<56320)return!0;if(e)return!1;if(s===123)return!0;if(v(s,!0)){for(var a=r+1;q(s=this.input.charCodeAt(a),!0);)++a;if(s===92||s>55295&&s<56320)return!0;var h=this.input.slice(r,a);if(!y.test(h))return!0}return!1},j.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;te.lastIndex=this.pos;var e=te.exec(this.input),t=this.pos+e[0].length,r;return!_.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)==="function"&&(t+8===this.input.length||!(q(r=this.input.charCodeAt(t+8))||r>55295&&r<56320))},j.parseStatement=function(e,t,r){var s=this.type,a=this.startNode(),h;switch(this.isLet(e)&&(s=i._var,h="let"),s){case i._break:case i._continue:return this.parseBreakContinueStatement(a,s.keyword);case i._debugger:return this.parseDebuggerStatement(a);case i._do:return this.parseDoStatement(a);case i._for:return this.parseForStatement(a);case i._function:return e&&(this.strict||e!=="if"&&e!=="label")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1,!e);case i._class:return e&&this.unexpected(),this.parseClass(a,!0);case i._if:return this.parseIfStatement(a);case i._return:return this.parseReturnStatement(a);case i._switch:return this.parseSwitchStatement(a);case i._throw:return this.parseThrowStatement(a);case i._try:return this.parseTryStatement(a);case i._const:case i._var:return h=h||this.value,e&&h!=="var"&&this.unexpected(),this.parseVarStatement(a,h);case i._while:return this.parseWhileStatement(a);case i._with:return this.parseWithStatement(a);case i.braceL:return this.parseBlock(!0,a);case i.semi:return this.parseEmptyStatement(a);case i._export:case i._import:if(this.options.ecmaVersion>10&&s===i._import){te.lastIndex=this.pos;var c=te.exec(this.input),d=this.pos+c[0].length,x=this.input.charCodeAt(d);if(x===40||x===46)return this.parseExpressionStatement(a,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),s===i._import?this.parseImport(a):this.parseExport(a,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(a,!0,!e);var U=this.value,W=this.parseExpression();return s===i.name&&W.type==="Identifier"&&this.eat(i.colon)?this.parseLabeledStatement(a,U,W,e):this.parseExpressionStatement(a,W)}},j.parseBreakContinueStatement=function(e,t){var r=t==="break";this.next(),this.eat(i.semi)||this.insertSemicolon()?e.label=null:this.type!==i.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var s=0;s=6?this.eat(i.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},j.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(xt),this.enterScope(0),this.expect(i.parenL),this.type===i.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===i._var||this.type===i._const||r){var s=this.startNode(),a=r?"let":this.value;return this.next(),this.parseVar(s,!0,a),this.finishNode(s,"VariableDeclaration"),(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&s.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,s)):(t>-1&&this.unexpected(t),this.parseFor(e,s))}var h=this.isContextual("let"),c=!1,d=new We,x=this.parseExpression(t>-1?"await":!0,d);return this.type===i._in||(c=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),h&&c&&this.raise(x.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(x,!1,d),this.checkLValPattern(x),this.parseForIn(e,x)):(this.checkExpressionErrors(d,!0),t>-1&&this.unexpected(t),this.parseFor(e,x))},j.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,Le|(r?0:yt),!1,t)},j.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(i._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},j.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,"'return' outside of function"),this.next(),this.eat(i.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},j.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(i.braceL),this.labels.push(Oa),this.enterScope(0);for(var t,r=!1;this.type!==i.braceR;)if(this.type===i._case||this.type===i._default){var s=this.type===i._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),s?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),r=!0,t.test=null),this.expect(i.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},j.parseThrowStatement=function(e){return this.next(),_.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var La=[];j.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===i._catch){var t=this.startNode();if(this.next(),this.eat(i.parenL)){t.param=this.parseBindingAtom();var r=t.param.type==="Identifier";this.enterScope(r?pr:0),this.checkLValPattern(t.param,r?mr:fe),this.expect(i.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(i._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},j.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},j.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(xt),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},j.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},j.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},j.parseLabeledStatement=function(e,t,r,s){for(var a=0,h=this.labels;a=0;x--){var U=this.labels[x];if(U.statementStart===e.start)U.statementStart=this.start,U.kind=d;else break}return this.labels.push({name:t,kind:d,statementStart:this.start}),e.body=this.parseStatement(s?s.indexOf("label")===-1?s+"label":s:"label"),this.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},j.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},j.parseBlock=function(e,t,r){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(i.braceL),e&&this.enterScope(0);this.type!==i.braceR;){var s=this.parseStatement(null);t.body.push(s)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},j.parseFor=function(e,t){return e.init=t,this.expect(i.semi),e.test=this.type===i.semi?null:this.parseExpression(),this.expect(i.semi),e.update=this.type===i.parenR?null:this.parseExpression(),this.expect(i.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},j.parseForIn=function(e,t){var r=this.type===i._in;return this.next(),t.type==="VariableDeclaration"&&t.declarations[0].init!=null&&(!r||this.options.ecmaVersion<8||this.strict||t.kind!=="var"||t.declarations[0].id.type!=="Identifier")&&this.raise(t.start,(r?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(i.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")},j.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r;;){var s=this.startNode();if(this.parseVarId(s,r),this.eat(i.eq)?s.init=this.parseMaybeAssign(t):r==="const"&&!(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():s.id.type!=="Identifier"&&!(t&&(this.type===i._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):s.init=null,e.declarations.push(this.finishNode(s,"VariableDeclarator")),!this.eat(i.comma))break}return e},j.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,t==="var"?gt:fe,!1)};var Le=1,yt=2,gr=4;j.parseFunction=function(e,t,r,s,a){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(this.type===i.star&&t&yt&&this.unexpected(),e.generator=this.eat(i.star)),this.options.ecmaVersion>=8&&(e.async=!!s),t&Le&&(e.id=t&gr&&this.type!==i.name?null:this.parseIdent(),e.id&&!(t&yt)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?gt:fe:dr));var h=this.yieldPos,c=this.awaitPos,d=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(e.async,e.generator)),t&Le||(e.id=this.type===i.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1,a),this.yieldPos=h,this.awaitPos=c,this.awaitIdentPos=d,this.finishNode(e,t&Le?"FunctionDeclaration":"FunctionExpression")},j.parseFunctionParams=function(e){this.expect(i.parenL),e.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},j.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var s=this.enterClassBody(),a=this.startNode(),h=!1;for(a.body=[],this.expect(i.braceL);this.type!==i.braceR;){var c=this.parseClassElement(e.superClass!==null);c&&(a.body.push(c),c.type==="MethodDefinition"&&c.kind==="constructor"?(h&&this.raise(c.start,"Duplicate constructor in the same class"),h=!0):c.key&&c.key.type==="PrivateIdentifier"&&Va(s,c)&&this.raiseRecoverable(c.key.start,"Identifier '#"+c.key.name+"' has already been declared"))}return this.strict=r,this.next(),e.body=this.finishNode(a,"ClassBody"),this.exitClassBody(),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},j.parseClassElement=function(e){if(this.eat(i.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),s="",a=!1,h=!1,c="method",d=!1;if(this.eatContextual("static")){if(t>=13&&this.eat(i.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===i.star?d=!0:s="static"}if(r.static=d,!s&&t>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===i.star)&&!this.canInsertSemicolon()?h=!0:s="async"),!s&&(t>=9||!h)&&this.eat(i.star)&&(a=!0),!s&&!h&&!a){var x=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?c=x:s=x)}if(s?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=s,this.finishNode(r.key,"Identifier")):this.parseClassElementName(r),t<13||this.type===i.parenL||c!=="method"||a||h){var U=!r.static&&Ge(r,"constructor"),W=U&&e;U&&c!=="method"&&this.raise(r.key.start,"Constructor can't have get/set modifier"),r.kind=U?"constructor":c,this.parseClassMethod(r,a,h,W)}else this.parseClassField(r);return r},j.isClassElementNameStart=function(){return this.type===i.name||this.type===i.privateId||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword},j.parseClassElementName=function(e){this.type===i.privateId?(this.value==="constructor"&&this.raise(this.start,"Classes can't have an element named '#constructor'"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},j.parseClassMethod=function(e,t,r,s){var a=e.key;e.kind==="constructor"?(t&&this.raise(a.start,"Constructor can't be a generator"),r&&this.raise(a.start,"Constructor can't be an async method")):e.static&&Ge(e,"prototype")&&this.raise(a.start,"Classes may not have a static property named prototype");var h=e.value=this.parseMethod(t,r,s);return e.kind==="get"&&h.params.length!==0&&this.raiseRecoverable(h.start,"getter should have no params"),e.kind==="set"&&h.params.length!==1&&this.raiseRecoverable(h.start,"setter should have exactly one param"),e.kind==="set"&&h.params[0].type==="RestElement"&&this.raiseRecoverable(h.params[0].start,"Setter cannot use rest params"),this.finishNode(e,"MethodDefinition")},j.parseClassField=function(e){if(Ge(e,"constructor")?this.raise(e.key.start,"Classes can't have a field named 'constructor'"):e.static&&Ge(e,"prototype")&&this.raise(e.key.start,"Classes can't have a static field named 'prototype'"),this.eat(i.eq)){var t=this.currentThisScope(),r=t.inClassFieldInit;t.inClassFieldInit=!0,e.value=this.parseMaybeAssign(),t.inClassFieldInit=r}else e.value=null;return this.semicolon(),this.finishNode(e,"PropertyDefinition")},j.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(Oe|dt);this.type!==i.braceR;){var r=this.parseStatement(null);e.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,"StaticBlock")},j.parseClassId=function(e,t){this.type===i.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,fe,!1)):(t===!0&&this.unexpected(),e.id=null)},j.parseClassSuper=function(e){e.superClass=this.eat(i._extends)?this.parseExprSubscripts(!1):null},j.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},j.exitClassBody=function(){for(var e=this.privateNameStack.pop(),t=e.declared,r=e.used,s=this.privateNameStack.length,a=s===0?null:this.privateNameStack[s-1],h=0;h=11&&(this.eatContextual("as")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(i._default)){this.checkExport(t,"default",this.lastTokStart);var r;if(this.type===i._function||(r=this.isAsyncFunction())){var s=this.startNode();this.next(),r&&this.next(),e.declaration=this.parseFunction(s,Le|gr,!1,r)}else if(this.type===i._class){var a=this.startNode();e.declaration=this.parseClass(a,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),e.declaration.type==="VariableDeclaration"?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var h=0,c=e.specifiers;h=13&&this.type===i.string){var e=this.parseLiteral(this.value);return F.test(e.value)&&this.raise(e.start,"An export name cannot include a lone surrogate."),e}return this.parseIdent(!0)},j.adaptDirectivePrologue=function(e){for(var t=0;t=6&&e)switch(e.type){case"Identifier":this.inAsync&&e.name==="await"&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",r&&this.checkPatternErrors(r,!0);for(var s=0,a=e.properties;s=8&&!c&&d.name==="async"&&!this.canInsertSemicolon()&&this.eat(i._function))return this.overrideContext(Q.f_expr),this.parseFunction(this.startNodeAt(a,h),0,!1,!0,t);if(s&&!this.canInsertSemicolon()){if(this.eat(i.arrow))return this.parseArrowExpression(this.startNodeAt(a,h),[d],!1,t);if(this.options.ecmaVersion>=8&&d.name==="async"&&this.type===i.name&&!c&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return d=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(i.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,h),[d],!0,t)}return d;case i.regexp:var x=this.value;return r=this.parseLiteral(x.value),r.regex={pattern:x.pattern,flags:x.flags},r;case i.num:case i.string:return this.parseLiteral(this.value);case i._null:case i._true:case i._false:return r=this.startNode(),r.value=this.type===i._null?null:this.type===i._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,"Literal");case i.parenL:var U=this.start,W=this.parseParenAndDistinguishExpression(s,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(W)&&(e.parenthesizedAssign=U),e.parenthesizedBind<0&&(e.parenthesizedBind=U)),W;case i.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(i.bracketR,!0,!0,e),this.finishNode(r,"ArrayExpression");case i.braceL:return this.overrideContext(Q.b_expr),this.parseObj(!1,e);case i._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case i._class:return this.parseClass(this.startNode(),!1);case i._new:return this.parseNew();case i.backQuote:return this.parseTemplate();case i._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},z.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case i.parenL:return this.parseDynamicImport(e);case i.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},z.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(i.parenR)){var t=this.start;this.eat(i.comma)&&this.eat(i.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},z.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="meta"&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),this.options.sourceType!=="module"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},z.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},z.parseParenExpression=function(){this.expect(i.parenL);var e=this.parseExpression();return this.expect(i.parenR),e},z.parseParenAndDistinguishExpression=function(e,t){var r=this.start,s=this.startLoc,a,h=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var c=this.start,d=this.startLoc,x=[],U=!0,W=!1,re=new We,be=this.yieldPos,je=this.awaitPos,Fe;for(this.yieldPos=0,this.awaitPos=0;this.type!==i.parenR;)if(U?U=!1:this.expect(i.comma),h&&this.afterTrailingComma(i.parenR,!0)){W=!0;break}else if(this.type===i.ellipsis){Fe=this.start,x.push(this.parseParenItem(this.parseRestBinding())),this.type===i.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}else x.push(this.parseMaybeAssign(!1,re,this.parseParenItem));var Qe=this.lastTokEnd,Be=this.lastTokEndLoc;if(this.expect(i.parenR),e&&!this.canInsertSemicolon()&&this.eat(i.arrow))return this.checkPatternErrors(re,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=be,this.awaitPos=je,this.parseParenArrowList(r,s,x,t);(!x.length||W)&&this.unexpected(this.lastTokStart),Fe&&this.unexpected(Fe),this.checkExpressionErrors(re,!0),this.yieldPos=be||this.yieldPos,this.awaitPos=je||this.awaitPos,x.length>1?(a=this.startNodeAt(c,d),a.expressions=x,this.finishNodeAt(a,"SequenceExpression",Qe,Be)):a=x[0]}else a=this.parseParenExpression();if(this.options.preserveParens){var Te=this.startNodeAt(r,s);return Te.expression=a,this.finishNode(Te,"ParenthesizedExpression")}else return a},z.parseParenItem=function(e){return e},z.parseParenArrowList=function(e,t,r,s){return this.parseArrowExpression(this.startNodeAt(e,t),r,!1,s)};var Ra=[];z.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(i.dot)){e.meta=t;var r=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="target"&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),r&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(e.start,"'new.target' can only be used in functions and class static block"),this.finishNode(e,"MetaProperty")}var s=this.start,a=this.startLoc,h=this.type===i._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),s,a,!0,!1),h&&e.callee.type==="ImportExpression"&&this.raise(s,"Cannot use new with import()"),this.eat(i.parenL)?e.arguments=this.parseExprList(i.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Ra,this.finishNode(e,"NewExpression")},z.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===i.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),r.value={raw:this.value,cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,` +`),cooked:this.value},this.next(),r.tail=this.type===i.backQuote,this.finishNode(r,"TemplateElement")},z.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var s=this.parseTemplateElement({isTagged:t});for(r.quasis=[s];!s.tail;)this.type===i.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(i.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(i.braceR),r.quasis.push(s=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,"TemplateLiteral")},z.isAsyncProp=function(e){return!e.computed&&e.key.type==="Identifier"&&e.key.name==="async"&&(this.type===i.name||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===i.star)&&!_.test(this.input.slice(this.lastTokEnd,this.start))},z.parseObj=function(e,t){var r=this.startNode(),s=!0,a={};for(r.properties=[],this.next();!this.eat(i.braceR);){if(s)s=!1;else if(this.expect(i.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(i.braceR))break;var h=this.parseProperty(e,t);e||this.checkPropClash(h,a,t),r.properties.push(h)}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},z.parseProperty=function(e,t){var r=this.startNode(),s,a,h,c;if(this.options.ecmaVersion>=9&&this.eat(i.ellipsis))return e?(r.argument=this.parseIdent(!1),this.type===i.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(r,"RestElement")):(this.type===i.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),r.argument=this.parseMaybeAssign(!1,t),this.type===i.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(r,"SpreadElement"));this.options.ecmaVersion>=6&&(r.method=!1,r.shorthand=!1,(e||t)&&(h=this.start,c=this.startLoc),e||(s=this.eat(i.star)));var d=this.containsEsc;return this.parsePropertyName(r),!e&&!d&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(r)?(a=!0,s=this.options.ecmaVersion>=9&&this.eat(i.star),this.parsePropertyName(r,t)):a=!1,this.parsePropertyValue(r,e,s,a,h,c,t,d),this.finishNode(r,"Property")},z.parsePropertyValue=function(e,t,r,s,a,h,c,d){if((r||s)&&this.type===i.colon&&this.unexpected(),this.eat(i.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,c),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===i.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(r,s);else if(!t&&!d&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type==="Identifier"&&(e.key.name==="get"||e.key.name==="set")&&this.type!==i.comma&&this.type!==i.braceR&&this.type!==i.eq){(r||s)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var x=e.kind==="get"?0:1;if(e.value.params.length!==x){var U=e.value.start;e.kind==="get"?this.raiseRecoverable(U,"getter should have no params"):this.raiseRecoverable(U,"setter should have exactly one param")}else e.kind==="set"&&e.value.params[0].type==="RestElement"&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}else this.options.ecmaVersion>=6&&!e.computed&&e.key.type==="Identifier"?((r||s)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=a),e.kind="init",t?e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key)):this.type===i.eq&&c?(c.shorthandAssign<0&&(c.shorthandAssign=this.start),e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected()},z.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(i.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(i.bracketR),e.key;e.computed=!1}return e.key=this.type===i.num||this.type===i.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")},z.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},z.parseMethod=function(e,t,r){var s=this.startNode(),a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=e),this.options.ecmaVersion>=8&&(s.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(t,s.generator)|dt|(r?fr:0)),this.expect(i.parenL),s.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1,!0,!1),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(s,"FunctionExpression")},z.parseArrowExpression=function(e,t,r,s){var a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.enterScope(vt(r,!1)|cr),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,s),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(e,"ArrowFunctionExpression")},z.parseFunctionBody=function(e,t,r,s){var a=t&&this.type!==i.braceL,h=this.strict,c=!1;if(a)e.body=this.parseMaybeAssign(s),e.expression=!0,this.checkParams(e,!1);else{var d=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!h||d)&&(c=this.strictDirective(this.end),c&&d&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var x=this.labels;this.labels=[],c&&(this.strict=!0),this.checkParams(e,!h&&!c&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,vr),e.body=this.parseBlock(!1,void 0,c&&!h),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=x}this.exitScope()},z.isSimpleParamList=function(e){for(var t=0,r=e;t-1||a.functions.indexOf(e)>-1||a.var.indexOf(e)>-1,a.lexical.push(e),this.inModule&&a.flags&Ee&&delete this.undefinedExports[e]}else if(t===mr){var h=this.currentScope();h.lexical.push(e)}else if(t===dr){var c=this.currentScope();this.treatFunctionsAsVar?s=c.lexical.indexOf(e)>-1:s=c.lexical.indexOf(e)>-1||c.var.indexOf(e)>-1,c.functions.push(e)}else for(var d=this.scopeStack.length-1;d>=0;--d){var x=this.scopeStack[d];if(x.lexical.indexOf(e)>-1&&!(x.flags&pr&&x.lexical[0]===e)||!this.treatFunctionsAsVarInScope(x)&&x.functions.indexOf(e)>-1){s=!0;break}if(x.var.push(e),this.inModule&&x.flags&Ee&&delete this.undefinedExports[e],x.flags&mt)break}s&&this.raiseRecoverable(r,"Identifier '"+e+"' has already been declared")},xe.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},xe.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},xe.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt)return t}},xe.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt&&!(t.flags&cr))return t}};var Ve=function(t,r,s){this.type="",this.start=r,this.end=0,t.options.locations&&(this.loc=new X(t,s)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[r,0])},Re=Z.prototype;Re.startNode=function(){return new Ve(this,this.start,this.startLoc)},Re.startNodeAt=function(e,t){return new Ve(this,e,t)};function yr(e,t,r,s){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=s),this.options.ranges&&(e.range[1]=r),e}Re.finishNode=function(e,t){return yr.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},Re.finishNodeAt=function(e,t,r,s){return yr.call(this,e,t,r,s)},Re.copyNode=function(e){var t=new Ve(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var Ar="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Cr=Ar+" Extended_Pictographic",Er=Cr,br=Er+" EBase EComp EMod EPres ExtPict",qa=br,Ma={9:Ar,10:Cr,11:Er,12:br,13:qa},_r="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Sr="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",wr=Sr+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",kr=wr+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",Fr=kr+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",Ua=Fr+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",za={9:Sr,10:wr,11:kr,12:Fr,13:Ua},Br={};function Wa(e){var t=Br[e]={binary:f(Ma[e]+" "+_r),nonBinary:{General_Category:f(_r),Script:f(za[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var At=0,Tr=[9,10,11,12,13];At=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":""),this.unicodeProperties=Br[t.options.ecmaVersion>=13?13:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};de.prototype.reset=function(t,r,s){var a=s.indexOf("u")!==-1;this.start=t|0,this.source=r+"",this.flags=s,this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchN=a&&this.parser.options.ecmaVersion>=9},de.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},de.prototype.at=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return-1;var h=s.charCodeAt(t);if(!(r||this.switchU)||h<=55295||h>=57344||t+1>=a)return h;var c=s.charCodeAt(t+1);return c>=56320&&c<=57343?(h<<10)+c-56613888:h},de.prototype.nextIndex=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return a;var h=s.charCodeAt(t),c;return!(r||this.switchU)||h<=55295||h>=57344||t+1>=a||(c=s.charCodeAt(t+1))<56320||c>57343?t+1:t+2},de.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)},de.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},de.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)},de.prototype.eat=function(t,r){return r===void 0&&(r=!1),this.current(r)===t?(this.advance(r),!0):!1};function Xe(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}O.validateRegExpFlags=function(e){for(var t=e.validFlags,r=e.flags,s=0;s-1&&this.raise(e.start,"Duplicate regular expression flag")}},O.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},O.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,r=e.backReferenceNames;t=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1},O.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1},O.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},O.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var s=0,a=-1;if(this.regexp_eatDecimalDigits(e)&&(s=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(a=e.lastIntValue),e.eat(125)))return a!==-1&&a=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},O.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},O.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},O.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ir(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ir(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}O.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;(r=e.current())!==-1&&!Ir(r);)e.advance();return e.pos!==t},O.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1},O.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e)){e.groupNames.indexOf(e.lastStringValue)!==-1&&e.raise("Duplicate capture group name"),e.groupNames.push(e.lastStringValue);return}e.raise("Invalid group")}},O.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},O.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=Xe(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Xe(e.lastIntValue);return!0}return!1},O.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Ka(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Ka(e){return v(e,!0)||e===36||e===95}O.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Xa(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Xa(e){return q(e,!0)||e===36||e===95||e===8204||e===8205}O.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},O.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1},O.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},O.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},O.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},O.regexp_eatZero=function(e){return e.current()===48&&!He(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1},O.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1},O.regexp_eatControlLetter=function(e){var t=e.current();return Pr(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Pr(e){return e>=65&&e<=90||e>=97&&e<=122}O.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var r=e.pos,s=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(s&&a>=55296&&a<=56319){var h=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var c=e.lastIntValue;if(c>=56320&&c<=57343)return e.lastIntValue=(a-55296)*1024+(c-56320)+65536,!0}e.pos=h,e.lastIntValue=a}return!0}if(s&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Ha(e.lastIntValue))return!0;s&&e.raise("Invalid unicode escape"),e.pos=r}return!1};function Ha(e){return e>=0&&e<=1114111}O.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1},O.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1},O.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Ja(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(t===80||t===112)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1};function Ja(e){return e===100||e===68||e===115||e===83||e===119||e===87}O.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var s=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,s),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var a=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,a),!0}return!1},O.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){D(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(r)||e.raise("Invalid property value")},O.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},O.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Nr(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==""};function Nr(e){return Pr(e)||e===95}O.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Ya(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==""};function Ya(e){return Nr(e)||He(e)}O.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},O.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},O.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;e.switchU&&(t===-1||r===-1)&&e.raise("Invalid character class"),t!==-1&&r!==-1&&t>r&&e.raise("Range out of order in character class")}}},O.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(r===99||Lr(r))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var s=e.current();return s!==93?(e.lastIntValue=s,e.advance(),!0):!1},O.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},O.regexp_eatClassControlLetter=function(e){var t=e.current();return He(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1},O.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},O.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;He(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t};function He(e){return e>=48&&e<=57}O.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Dr(r=e.current());)e.lastIntValue=16*e.lastIntValue+Or(r),e.advance();return e.pos!==t};function Dr(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Or(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}O.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+r*8+e.lastIntValue:e.lastIntValue=t*8+r}else e.lastIntValue=t;return!0}return!1},O.regexp_eatOctalDigit=function(e){var t=e.current();return Lr(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Lr(e){return e>=48&&e<=55}O.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var s=0;s=this.input.length)return this.finishToken(i.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())},G.readToken=function(e){return v(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)},G.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888},G.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(r===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations)for(var s=void 0,a=t;(s=ee(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=s;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,e,this.curPosition())},G.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),s=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&ae.test(String.fromCharCode(e)))++this.pos;else break e}}},G.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)},G.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(i.ellipsis)):(++this.pos,this.finishToken(i.dot))},G.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(i.assign,2):this.finishOp(i.slash,1)},G.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,s=e===42?i.star:i.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++r,s=i.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(i.assign,r+1):this.finishOp(s,r)},G.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(i.assign,3)}return this.finishOp(e===124?i.logicalOR:i.logicalAND,2)}return t===61?this.finishOp(i.assign,2):this.finishOp(e===124?i.bitwiseOR:i.bitwiseAND,1)},G.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(i.assign,2):this.finishOp(i.bitwiseXOR,1)},G.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||_.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(i.incDec,2):t===61?this.finishOp(i.assign,2):this.finishOp(i.plusMin,1)},G.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+r)===61?this.finishOp(i.assign,r+1):this.finishOp(i.bitShift,r)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(r=2),this.finishOp(i.relational,r))},G.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(i.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(i.arrow)):this.finishOp(e===61?i.eq:i.prefix,1)},G.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(i.questionDot,2)}if(t===63){if(e>=12){var s=this.input.charCodeAt(this.pos+2);if(s===61)return this.finishOp(i.assign,3)}return this.finishOp(i.coalesce,2)}}return this.finishOp(i.question,1)},G.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),v(t,!0)||t===92))return this.finishToken(i.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+Ye(t)+"'")},G.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(i.parenL);case 41:return++this.pos,this.finishToken(i.parenR);case 59:return++this.pos,this.finishToken(i.semi);case 44:return++this.pos,this.finishToken(i.comma);case 91:return++this.pos,this.finishToken(i.bracketL);case 93:return++this.pos,this.finishToken(i.bracketR);case 123:return++this.pos,this.finishToken(i.braceL);case 125:return++this.pos,this.finishToken(i.braceR);case 58:return++this.pos,this.finishToken(i.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(i.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(i.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+Ye(e)+"'")},G.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)},G.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,"Unterminated regular expression");var s=this.input.charAt(this.pos);if(_.test(s)&&this.raise(r,"Unterminated regular expression"),e)e=!1;else{if(s==="[")t=!0;else if(s==="]"&&t)t=!1;else if(s==="/"&&!t)break;e=s==="\\"}++this.pos}var a=this.input.slice(r,this.pos);++this.pos;var h=this.pos,c=this.readWord1();this.containsEsc&&this.unexpected(h);var d=this.regexpState||(this.regexpState=new de(this));d.reset(r,a,c),this.validateRegExpFlags(d),this.validateRegExpPattern(d);var x=null;try{x=new RegExp(a,c)}catch{}return this.finishToken(i.regexp,{pattern:a,flags:c,value:x})},G.readInt=function(e,t,r){for(var s=this.options.ecmaVersion>=12&&t===void 0,a=r&&this.input.charCodeAt(this.pos)===48,h=this.pos,c=0,d=0,x=0,U=t==null?1/0:t;x=97?re=W-97+10:W>=65?re=W-65+10:W>=48&&W<=57?re=W-48:re=1/0,re>=e)break;d=W,c=c*e+re}return s&&d===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===h||t!=null&&this.pos-h!==t?null:c};function Qa(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,""))}function Vr(e){return typeof BigInt!="function"?null:BigInt(e.replace(/_/g,""))}G.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return r==null&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(r=Vr(this.input.slice(t,this.pos)),++this.pos):v(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(i.num,r)},G.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,"Invalid number");var r=this.pos-t>=2&&this.input.charCodeAt(t)===48;r&&this.strict&&this.raise(t,"Invalid number");var s=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&s===110){var a=Vr(this.input.slice(t,this.pos));return++this.pos,v(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(i.num,a)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),s===46&&!r&&(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),(s===69||s===101)&&!r&&(s=this.input.charCodeAt(++this.pos),(s===43||s===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,"Invalid number")),v(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var h=Qa(this.input.slice(t,this.pos),r);return this.finishToken(i.num,h)},G.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var r=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(r,"Code point out of bounds")}else t=this.readHexChar(4);return t};function Ye(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}G.readString=function(e){for(var t="",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var s=this.input.charCodeAt(this.pos);if(s===e)break;s===92?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):s===8232||s===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(M(s)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(i.string,t)};var Rr={};G.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Rr)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},G.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Rr;this.raise(e,t)},G.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var r=this.input.charCodeAt(this.pos);if(r===96||r===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===i.template||this.type===i.invalidTemplate)?r===36?(this.pos+=2,this.finishToken(i.dollarBraceL)):(++this.pos,this.finishToken(i.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(i.template,e));if(r===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(M(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=` +`;break;default:e+=String.fromCharCode(r);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},G.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(s,8);return a>255&&(s=s.slice(0,-1),a=parseInt(s,8)),this.pos+=s.length-1,t=this.input.charCodeAt(this.pos),(s!=="0"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-s.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return M(t)?"":String.fromCharCode(t)}},G.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return r===null&&this.invalidStringToken(t,"Bad character escape sequence"),r},G.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,r=this.pos,s=this.options.ecmaVersion>=6;this.pos",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",lang:"\u2329",rang:"\u232A",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"}}}),Pa=Y({"node_modules/acorn-jsx/index.js"(n,o){"use strict";J();var u=Sh(),l=/^[\da-fA-F]+$/,m=/^\d+$/,E=new WeakMap;function y(g){g=g.Parser.acorn||g;let V=E.get(g);if(!V){let R=g.tokTypes,N=g.TokContext,T=g.TokenType,v=new N("...",!0,!0),I={tc_oTag:v,tc_cTag:q,tc_expr:B},k={jsxName:new T("jsxName"),jsxText:new T("jsxText",{beforeExpr:!0}),jsxTagStart:new T("jsxTagStart",{startsExpr:!0}),jsxTagEnd:new T("jsxTagEnd")};k.jsxTagStart.updateContext=function(){this.context.push(B),this.context.push(v),this.exprAllowed=!1},k.jsxTagEnd.updateContext=function(C){let H=this.context.pop();H===v&&C===R.slash||H===q?(this.context.pop(),this.exprAllowed=this.curContext()===B):this.exprAllowed=!0},V={tokContexts:I,tokTypes:k},E.set(g,V)}return V}function A(g){if(!g)return g;if(g.type==="JSXIdentifier")return g.name;if(g.type==="JSXNamespacedName")return g.namespace.name+":"+g.name.name;if(g.type==="JSXMemberExpression")return A(g.object)+"."+A(g.property)}o.exports=function(g){return g=g||{},function(V){return b({allowNamespaces:g.allowNamespaces!==!1,allowNamespacedObjects:!!g.allowNamespacedObjects},V)}},Object.defineProperty(o.exports,"tokTypes",{get:function(){return y(ct()).tokTypes},configurable:!0,enumerable:!0});function b(g,V){let R=V.acorn||ct(),N=y(R),T=R.tokTypes,v=N.tokTypes,q=R.tokContexts,B=N.tokContexts.tc_oTag,I=N.tokContexts.tc_cTag,k=N.tokContexts.tc_expr,C=R.isNewLine,H=R.isIdentifierStart,L=R.isIdentifierChar;return class extends V{static get acornJsx(){return N}jsx_readToken(){let i="",_=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated JSX contents");let P=this.input.charCodeAt(this.pos);switch(P){case 60:case 123:return this.pos===this.start?P===60&&this.exprAllowed?(++this.pos,this.finishToken(v.jsxTagStart)):this.getTokenFromCode(P):(i+=this.input.slice(_,this.pos),this.finishToken(v.jsxText,i));case 38:i+=this.input.slice(_,this.pos),i+=this.jsx_readEntity(),_=this.pos;break;case 62:case 125:this.raise(this.pos,"Unexpected token `"+this.input[this.pos]+"`. Did you mean `"+(P===62?">":"}")+'` or `{"'+this.input[this.pos]+'"}`?');default:C(P)?(i+=this.input.slice(_,this.pos),i+=this.jsx_readNewLine(!0),_=this.pos):++this.pos}}}jsx_readNewLine(i){let _=this.input.charCodeAt(this.pos),P;return++this.pos,_===13&&this.input.charCodeAt(this.pos)===10?(++this.pos,P=i?` +`:`\r +`):P=String.fromCharCode(_),this.options.locations&&(++this.curLine,this.lineStart=this.pos),P}jsx_readString(i){let _="",P=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");let M=this.input.charCodeAt(this.pos);if(M===i)break;M===38?(_+=this.input.slice(P,this.pos),_+=this.jsx_readEntity(),P=this.pos):C(M)?(_+=this.input.slice(P,this.pos),_+=this.jsx_readNewLine(!1),P=this.pos):++this.pos}return _+=this.input.slice(P,this.pos++),this.finishToken(T.string,_)}jsx_readEntity(){let i="",_=0,P,M=this.input[this.pos];M!=="&"&&this.raise(this.pos,"Entity must start with an ampersand");let ee=++this.pos;for(;this.pos")}let te=ee.name?"Element":"Fragment";return P["opening"+te]=ee,P["closing"+te]=ae,P.children=M,this.type===T.relational&&this.value==="<"&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(P,"JSX"+te)}jsx_parseText(){let i=this.parseLiteral(this.value);return i.type="JSXText",i}jsx_parseElement(){let i=this.start,_=this.startLoc;return this.next(),this.jsx_parseElementAt(i,_)}parseExprAtom(i){return this.type===v.jsxText?this.jsx_parseText():this.type===v.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(i)}readToken(i){let _=this.curContext();if(_===k)return this.jsx_readToken();if(_===B||_===I){if(H(i))return this.jsx_readWord();if(i==62)return++this.pos,this.finishToken(v.jsxTagEnd);if((i===34||i===39)&&_==B)return this.jsx_readString(i)}return i===60&&this.exprAllowed&&this.input.charCodeAt(this.pos+1)!==33?(++this.pos,this.finishToken(v.jsxTagStart)):super.readToken(i)}updateContext(i){if(this.type==T.braceL){var _=this.curContext();_==B?this.context.push(q.b_expr):_==k?this.context.push(q.b_tmpl):super.updateContext(i),this.exprAllowed=!0}else if(this.type===T.slash&&i===v.jsxTagStart)this.context.length-=2,this.context.push(I),this.exprAllowed=!1;else return super.updateContext(i)}}}}}),wh=Y({"src/language-js/parse/acorn.js"(n,o){"use strict";J();var u=lr(),l=fa(),m=Fa(),E=Ia(),y={ecmaVersion:"latest",sourceType:"module",allowReserved:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,allowAwaitOutsideFunction:!0,allowSuperOutsideMethod:!0,allowHashBang:!0,locations:!0,ranges:!0};function A(N){let{message:T,loc:v}=N;if(!v)return N;let{line:q,column:B}=v;return u(T.replace(/ \(\d+:\d+\)$/,""),{start:{line:q,column:B+1}})}var b,g=()=>{if(!b){let{Parser:N}=ct(),T=Pa();b=N.extend(T())}return b};function V(N,T){let v=g(),q=[],B=[],I=v.parse(N,Object.assign(Object.assign({},y),{},{sourceType:T,onComment:q,onToken:B}));return I.comments=q,I.tokens=B,I}function R(N,T){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:q,error:B}=l(()=>V(N,"module"),()=>V(N,"script"));if(!q)throw A(B);return v.originalText=N,E(q,v)}o.exports=m(R)}}),kh=Y({"src/language-js/parse/utils/replace-hashbang.js"(n,o){"use strict";J();function u(l){return l.charAt(0)==="#"&&l.charAt(1)==="!"?"//"+l.slice(2):l}o.exports=u}}),Fh=Y({"node_modules/espree/dist/espree.cjs"(n){"use strict";J(),Object.defineProperty(n,"__esModule",{value:!0});var o=ct(),u=Pa(),l;function m(p){return p&&typeof p=="object"&&"default"in p?p:{default:p}}function E(p){if(p&&p.__esModule)return p;var D=Object.create(null);return p&&Object.keys(p).forEach(function(w){if(w!=="default"){var f=Object.getOwnPropertyDescriptor(p,w);Object.defineProperty(D,w,f.get?f:{enumerable:!0,get:function(){return p[w]}})}}),D.default=p,Object.freeze(D)}var y=E(o),A=m(u),b=E(l),g={Boolean:"Boolean",EOF:"",Identifier:"Identifier",PrivateIdentifier:"PrivateIdentifier",Keyword:"Keyword",Null:"Null",Numeric:"Numeric",Punctuator:"Punctuator",String:"String",RegularExpression:"RegularExpression",Template:"Template",JSXIdentifier:"JSXIdentifier",JSXText:"JSXText"};function V(p,D){let w=p[0],f=p[p.length-1],F={type:g.Template,value:D.slice(w.start,f.end)};return w.loc&&(F.loc={start:w.loc.start,end:f.loc.end}),w.range&&(F.start=w.range[0],F.end=f.range[1],F.range=[F.start,F.end]),F}function R(p,D){this._acornTokTypes=p,this._tokens=[],this._curlyBrace=null,this._code=D}R.prototype={constructor:R,translate(p,D){let w=p.type,f=this._acornTokTypes;if(w===f.name)p.type=g.Identifier,p.value==="static"&&(p.type=g.Keyword),D.ecmaVersion>5&&(p.value==="yield"||p.value==="let")&&(p.type=g.Keyword);else if(w===f.privateId)p.type=g.PrivateIdentifier;else if(w===f.semi||w===f.comma||w===f.parenL||w===f.parenR||w===f.braceL||w===f.braceR||w===f.dot||w===f.bracketL||w===f.colon||w===f.question||w===f.bracketR||w===f.ellipsis||w===f.arrow||w===f.jsxTagStart||w===f.incDec||w===f.starstar||w===f.jsxTagEnd||w===f.prefix||w===f.questionDot||w.binop&&!w.keyword||w.isAssign)p.type=g.Punctuator,p.value=this._code.slice(p.start,p.end);else if(w===f.jsxName)p.type=g.JSXIdentifier;else if(w.label==="jsxText"||w===f.jsxAttrValueToken)p.type=g.JSXText;else if(w.keyword)w.keyword==="true"||w.keyword==="false"?p.type=g.Boolean:w.keyword==="null"?p.type=g.Null:p.type=g.Keyword;else if(w===f.num)p.type=g.Numeric,p.value=this._code.slice(p.start,p.end);else if(w===f.string)D.jsxAttrValueToken?(D.jsxAttrValueToken=!1,p.type=g.JSXText):p.type=g.String,p.value=this._code.slice(p.start,p.end);else if(w===f.regexp){p.type=g.RegularExpression;let F=p.value;p.regex={flags:F.flags,pattern:F.pattern},p.value="/".concat(F.pattern,"/").concat(F.flags)}return p},onToken(p,D){let w=this,f=this._acornTokTypes,F=D.tokens,K=this._tokens;function X(){F.push(V(w._tokens,w._code)),w._tokens=[]}if(p.type===f.eof){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D));return}if(p.type===f.backQuote){this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),K.push(p),K.length>1&&X();return}if(p.type===f.dollarBraceL){K.push(p),X();return}if(p.type===f.braceR){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=p;return}if(p.type===f.template||p.type===f.invalidTemplate){this._curlyBrace&&(K.push(this._curlyBrace),this._curlyBrace=null),K.push(p);return}this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),F.push(this.translate(p,D))}};var N=[3,5,6,7,8,9,10,11,12,13];function T(){return N[N.length-1]}function v(){return[...N]}function q(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:5,D=p==="latest"?T():p;if(typeof D!="number")throw new Error('ecmaVersion must be a number or "latest". Received value of type '.concat(typeof p," instead."));if(D>=2015&&(D-=2009),!N.includes(D))throw new Error("Invalid ecmaVersion.");return D}function B(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"script";if(p==="script"||p==="module")return p;if(p==="commonjs")return"script";throw new Error("Invalid sourceType.")}function I(p){let D=q(p.ecmaVersion),w=B(p.sourceType),f=p.range===!0,F=p.loc===!0;if(D!==3&&p.allowReserved)throw new Error("`allowReserved` is only supported when ecmaVersion is 3");if(typeof p.allowReserved<"u"&&typeof p.allowReserved!="boolean")throw new Error("`allowReserved`, when present, must be `true` or `false`");let K=D===3?p.allowReserved||"never":!1,X=p.ecmaFeatures||{},oe=p.sourceType==="commonjs"||Boolean(X.globalReturn);if(w==="module"&&D<6)throw new Error("sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options.");return Object.assign({},p,{ecmaVersion:D,sourceType:w,ranges:f,locations:F,allowReserved:K,allowReturnOutsideFunction:oe})}var k=Symbol("espree's internal state"),C=Symbol("espree's esprimaFinishNode");function H(p,D,w,f,F,K){let X={type:p?"Block":"Line",value:D};return typeof w=="number"&&(X.start=w,X.end=f,X.range=[w,f]),typeof F=="object"&&(X.loc={start:F,end:K}),X}var L=()=>p=>{let D=Object.assign({},p.acorn.tokTypes);return p.acornJsx&&Object.assign(D,p.acornJsx.tokTypes),class extends p{constructor(f,F){(typeof f!="object"||f===null)&&(f={}),typeof F!="string"&&!(F instanceof String)&&(F=String(F));let K=f.sourceType,X=I(f),oe=X.ecmaFeatures||{},me=X.tokens===!0?new R(D,F):null;super({ecmaVersion:X.ecmaVersion,sourceType:X.sourceType,ranges:X.ranges,locations:X.locations,allowReserved:X.allowReserved,allowReturnOutsideFunction:X.allowReturnOutsideFunction,onToken:ve=>{me&&me.onToken(ve,this[k]),ve.type!==D.eof&&(this[k].lastToken=ve)},onComment:(ve,pt,ft,Ee,ge,De)=>{if(this[k].comments){let Ue=H(ve,pt,ft,Ee,ge,De);this[k].comments.push(Ue)}}},F),this[k]={originalSourceType:K||X.sourceType,tokens:me?[]:null,comments:X.comment===!0?[]:null,impliedStrict:oe.impliedStrict===!0&&this.options.ecmaVersion>=5,ecmaVersion:this.options.ecmaVersion,jsxAttrValueToken:!1,lastToken:null,templateElements:[]}}tokenize(){do this.next();while(this.type!==D.eof);this.next();let f=this[k],F=f.tokens;return f.comments&&(F.comments=f.comments),F}finishNode(){let f=super.finishNode(...arguments);return this[C](f)}finishNodeAt(){let f=super.finishNodeAt(...arguments);return this[C](f)}parse(){let f=this[k],F=super.parse();if(F.sourceType=f.originalSourceType,f.comments&&(F.comments=f.comments),f.tokens&&(F.tokens=f.tokens),F.body.length){let[K]=F.body;F.range&&(F.range[0]=K.range[0]),F.loc&&(F.loc.start=K.loc.start),F.start=K.start}return f.lastToken&&(F.range&&(F.range[1]=f.lastToken.range[1]),F.loc&&(F.loc.end=f.lastToken.loc.end),F.end=f.lastToken.end),this[k].templateElements.forEach(K=>{let oe=K.tail?1:2;K.start+=-1,K.end+=oe,K.range&&(K.range[0]+=-1,K.range[1]+=oe),K.loc&&(K.loc.start.column+=-1,K.loc.end.column+=oe)}),F}parseTopLevel(f){return this[k].impliedStrict&&(this.strict=!0),super.parseTopLevel(f)}raise(f,F){let K=p.acorn.getLineInfo(this.input,f),X=new SyntaxError(F);throw X.index=f,X.lineNumber=K.line,X.column=K.column+1,X}raiseRecoverable(f,F){this.raise(f,F)}unexpected(f){let F="Unexpected token";if(f!=null){if(this.pos=f,this.options.locations)for(;this.posthis.start&&(F+=" ".concat(this.input.slice(this.start,this.end))),this.raise(this.start,F)}jsx_readString(f){let F=super.jsx_readString(f);return this.type===D.string&&(this[k].jsxAttrValueToken=!0),F}[C](f){return f.type==="TemplateElement"&&this[k].templateElements.push(f),f.type.includes("Function")&&!f.generator&&(f.generator=!1),f}}},i="9.3.1",_={_regular:null,_jsx:null,get regular(){return this._regular===null&&(this._regular=y.Parser.extend(L())),this._regular},get jsx(){return this._jsx===null&&(this._jsx=y.Parser.extend(A.default(),L())),this._jsx},get(p){return Boolean(p&&p.ecmaFeatures&&p.ecmaFeatures.jsx)?this.jsx:this.regular}};function P(p,D){let w=_.get(D);return(!D||D.tokens!==!0)&&(D=Object.assign({},D,{tokens:!0})),new w(D,p).tokenize()}function M(p,D){let w=_.get(D);return new w(D,p).parse()}var ee=i,ae=function(){return b.KEYS}(),te=void 0,ie=T(),Ne=v();n.Syntax=te,n.VisitorKeys=ae,n.latestEcmaVersion=ie,n.parse=M,n.supportedEcmaVersions=Ne,n.tokenize=P,n.version=ee}}),Bh=Y({"src/language-js/parse/espree.js"(n,o){"use strict";J();var u=lr(),l=fa(),m=Fa(),E=kh(),y=Ia(),A={ecmaVersion:"latest",range:!0,loc:!0,comment:!0,tokens:!0,sourceType:"module",ecmaFeatures:{jsx:!0,globalReturn:!0,impliedStrict:!1}};function b(V){let{message:R,lineNumber:N,column:T}=V;return typeof N!="number"?V:u(R,{start:{line:N,column:T}})}function g(V,R){let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:T}=Fh(),v=E(V),{result:q,error:B}=l(()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:"module"})),()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:"script"})));if(!q)throw b(B);return N.originalText=V,y(q,N)}o.exports=m(g)}});J();var Th=wh(),Ih=Bh();Na.exports={parsers:{acorn:Th,espree:Ih}}});return Ph();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-flow.js b/node_modules/prettier/parser-flow.js new file mode 100644 index 0000000..f8a91b1 --- /dev/null +++ b/node_modules/prettier/parser-flow.js @@ -0,0 +1,35 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.flow=e()}})(function(){"use strict";var Be=(H0,z0)=>()=>(z0||H0((z0={exports:{}}).exports,z0),z0.exports);var ru=Be((_oe,rn0)=>{var h_=function(H0){return H0&&H0.Math==Math&&H0};rn0.exports=h_(typeof globalThis=="object"&&globalThis)||h_(typeof window=="object"&&window)||h_(typeof self=="object"&&self)||h_(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Qs=Be((yoe,en0)=>{en0.exports=function(H0){try{return!!H0()}catch{return!0}}});var fv=Be((hoe,nn0)=>{var N7e=Qs();nn0.exports=!N7e(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var jR=Be((doe,tn0)=>{var C7e=Qs();tn0.exports=!C7e(function(){var H0=function(){}.bind();return typeof H0!="function"||H0.hasOwnProperty("prototype")})});var k_=Be((koe,un0)=>{var P7e=jR(),d_=Function.prototype.call;un0.exports=P7e?d_.bind(d_):function(){return d_.apply(d_,arguments)}});var on0=Be(xn0=>{"use strict";var in0={}.propertyIsEnumerable,fn0=Object.getOwnPropertyDescriptor,D7e=fn0&&!in0.call({1:2},1);xn0.f=D7e?function(z0){var xr=fn0(this,z0);return!!xr&&xr.enumerable}:in0});var GR=Be((Eoe,an0)=>{an0.exports=function(H0,z0){return{enumerable:!(H0&1),configurable:!(H0&2),writable:!(H0&4),value:z0}}});var zc=Be((Soe,vn0)=>{var cn0=jR(),sn0=Function.prototype,L7e=sn0.bind,MR=sn0.call,R7e=cn0&&L7e.bind(MR,MR);vn0.exports=cn0?function(H0){return H0&&R7e(H0)}:function(H0){return H0&&function(){return MR.apply(H0,arguments)}}});var pn0=Be((goe,bn0)=>{var ln0=zc(),j7e=ln0({}.toString),G7e=ln0("".slice);bn0.exports=function(H0){return G7e(j7e(H0),8,-1)}});var _n0=Be((Foe,mn0)=>{var M7e=ru(),B7e=zc(),q7e=Qs(),U7e=pn0(),BR=M7e.Object,H7e=B7e("".split);mn0.exports=q7e(function(){return!BR("z").propertyIsEnumerable(0)})?function(H0){return U7e(H0)=="String"?H7e(H0,""):BR(H0)}:BR});var qR=Be((Toe,yn0)=>{var X7e=ru(),Y7e=X7e.TypeError;yn0.exports=function(H0){if(H0==null)throw Y7e("Can't call method on "+H0);return H0}});var w_=Be((Ooe,hn0)=>{var V7e=_n0(),z7e=qR();hn0.exports=function(H0){return V7e(z7e(H0))}});var Kc=Be((Ioe,dn0)=>{dn0.exports=function(H0){return typeof H0=="function"}});var S2=Be((Aoe,kn0)=>{var K7e=Kc();kn0.exports=function(H0){return typeof H0=="object"?H0!==null:K7e(H0)}});var E_=Be((Noe,wn0)=>{var UR=ru(),W7e=Kc(),J7e=function(H0){return W7e(H0)?H0:void 0};wn0.exports=function(H0,z0){return arguments.length<2?J7e(UR[H0]):UR[H0]&&UR[H0][z0]}});var Sn0=Be((Coe,En0)=>{var $7e=zc();En0.exports=$7e({}.isPrototypeOf)});var Fn0=Be((Poe,gn0)=>{var Z7e=E_();gn0.exports=Z7e("navigator","userAgent")||""});var Pn0=Be((Doe,Cn0)=>{var Nn0=ru(),HR=Fn0(),Tn0=Nn0.process,On0=Nn0.Deno,In0=Tn0&&Tn0.versions||On0&&On0.version,An0=In0&&In0.v8,$i,S_;An0&&($i=An0.split("."),S_=$i[0]>0&&$i[0]<4?1:+($i[0]+$i[1]));!S_&&HR&&($i=HR.match(/Edge\/(\d+)/),(!$i||$i[1]>=74)&&($i=HR.match(/Chrome\/(\d+)/),$i&&(S_=+$i[1])));Cn0.exports=S_});var XR=Be((Loe,Ln0)=>{var Dn0=Pn0(),Q7e=Qs();Ln0.exports=!!Object.getOwnPropertySymbols&&!Q7e(function(){var H0=Symbol();return!String(H0)||!(Object(H0)instanceof Symbol)||!Symbol.sham&&Dn0&&Dn0<41})});var YR=Be((Roe,Rn0)=>{var rie=XR();Rn0.exports=rie&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var VR=Be((joe,jn0)=>{var eie=ru(),nie=E_(),tie=Kc(),uie=Sn0(),iie=YR(),fie=eie.Object;jn0.exports=iie?function(H0){return typeof H0=="symbol"}:function(H0){var z0=nie("Symbol");return tie(z0)&&uie(z0.prototype,fie(H0))}});var Mn0=Be((Goe,Gn0)=>{var xie=ru(),oie=xie.String;Gn0.exports=function(H0){try{return oie(H0)}catch{return"Object"}}});var qn0=Be((Moe,Bn0)=>{var aie=ru(),cie=Kc(),sie=Mn0(),vie=aie.TypeError;Bn0.exports=function(H0){if(cie(H0))return H0;throw vie(sie(H0)+" is not a function")}});var Hn0=Be((Boe,Un0)=>{var lie=qn0();Un0.exports=function(H0,z0){var xr=H0[z0];return xr==null?void 0:lie(xr)}});var Yn0=Be((qoe,Xn0)=>{var bie=ru(),zR=k_(),KR=Kc(),WR=S2(),pie=bie.TypeError;Xn0.exports=function(H0,z0){var xr,gr;if(z0==="string"&&KR(xr=H0.toString)&&!WR(gr=zR(xr,H0))||KR(xr=H0.valueOf)&&!WR(gr=zR(xr,H0))||z0!=="string"&&KR(xr=H0.toString)&&!WR(gr=zR(xr,H0)))return gr;throw pie("Can't convert object to primitive value")}});var zn0=Be((Uoe,Vn0)=>{Vn0.exports=!1});var g_=Be((Hoe,Wn0)=>{var Kn0=ru(),mie=Object.defineProperty;Wn0.exports=function(H0,z0){try{mie(Kn0,H0,{value:z0,configurable:!0,writable:!0})}catch{Kn0[H0]=z0}return z0}});var F_=Be((Xoe,$n0)=>{var _ie=ru(),yie=g_(),Jn0="__core-js_shared__",hie=_ie[Jn0]||yie(Jn0,{});$n0.exports=hie});var JR=Be((Yoe,Qn0)=>{var die=zn0(),Zn0=F_();(Qn0.exports=function(H0,z0){return Zn0[H0]||(Zn0[H0]=z0!==void 0?z0:{})})("versions",[]).push({version:"3.22.2",mode:die?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var et0=Be((Voe,rt0)=>{var kie=ru(),wie=qR(),Eie=kie.Object;rt0.exports=function(H0){return Eie(wie(H0))}});var r1=Be((zoe,nt0)=>{var Sie=zc(),gie=et0(),Fie=Sie({}.hasOwnProperty);nt0.exports=Object.hasOwn||function(z0,xr){return Fie(gie(z0),xr)}});var $R=Be((Koe,tt0)=>{var Tie=zc(),Oie=0,Iie=Math.random(),Aie=Tie(1 .toString);tt0.exports=function(H0){return"Symbol("+(H0===void 0?"":H0)+")_"+Aie(++Oie+Iie,36)}});var at0=Be((Woe,ot0)=>{var Nie=ru(),Cie=JR(),ut0=r1(),Pie=$R(),it0=XR(),xt0=YR(),g2=Cie("wks"),xv=Nie.Symbol,ft0=xv&&xv.for,Die=xt0?xv:xv&&xv.withoutSetter||Pie;ot0.exports=function(H0){if(!ut0(g2,H0)||!(it0||typeof g2[H0]=="string")){var z0="Symbol."+H0;it0&&ut0(xv,H0)?g2[H0]=xv[H0]:xt0&&ft0?g2[H0]=ft0(z0):g2[H0]=Die(z0)}return g2[H0]}});var lt0=Be((Joe,vt0)=>{var Lie=ru(),Rie=k_(),ct0=S2(),st0=VR(),jie=Hn0(),Gie=Yn0(),Mie=at0(),Bie=Lie.TypeError,qie=Mie("toPrimitive");vt0.exports=function(H0,z0){if(!ct0(H0)||st0(H0))return H0;var xr=jie(H0,qie),gr;if(xr){if(z0===void 0&&(z0="default"),gr=Rie(xr,H0,z0),!ct0(gr)||st0(gr))return gr;throw Bie("Can't convert object to primitive value")}return z0===void 0&&(z0="number"),Gie(H0,z0)}});var ZR=Be(($oe,bt0)=>{var Uie=lt0(),Hie=VR();bt0.exports=function(H0){var z0=Uie(H0,"string");return Hie(z0)?z0:z0+""}});var _t0=Be((Zoe,mt0)=>{var Xie=ru(),pt0=S2(),QR=Xie.document,Yie=pt0(QR)&&pt0(QR.createElement);mt0.exports=function(H0){return Yie?QR.createElement(H0):{}}});var rj=Be((Qoe,yt0)=>{var Vie=fv(),zie=Qs(),Kie=_t0();yt0.exports=!Vie&&!zie(function(){return Object.defineProperty(Kie("div"),"a",{get:function(){return 7}}).a!=7})});var ej=Be(dt0=>{var Wie=fv(),Jie=k_(),$ie=on0(),Zie=GR(),Qie=w_(),rfe=ZR(),efe=r1(),nfe=rj(),ht0=Object.getOwnPropertyDescriptor;dt0.f=Wie?ht0:function(z0,xr){if(z0=Qie(z0),xr=rfe(xr),nfe)try{return ht0(z0,xr)}catch{}if(efe(z0,xr))return Zie(!Jie($ie.f,z0,xr),z0[xr])}});var wt0=Be((eae,kt0)=>{var tfe=fv(),ufe=Qs();kt0.exports=tfe&&ufe(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var nj=Be((nae,St0)=>{var Et0=ru(),ife=S2(),ffe=Et0.String,xfe=Et0.TypeError;St0.exports=function(H0){if(ife(H0))return H0;throw xfe(ffe(H0)+" is not an object")}});var xj=Be(Ft0=>{var ofe=ru(),afe=fv(),cfe=rj(),sfe=wt0(),T_=nj(),gt0=ZR(),vfe=ofe.TypeError,tj=Object.defineProperty,lfe=Object.getOwnPropertyDescriptor,uj="enumerable",ij="configurable",fj="writable";Ft0.f=afe?sfe?function(z0,xr,gr){if(T_(z0),xr=gt0(xr),T_(gr),typeof z0=="function"&&xr==="prototype"&&"value"in gr&&fj in gr&&!gr[fj]){var de=lfe(z0,xr);de&&de[fj]&&(z0[xr]=gr.value,gr={configurable:ij in gr?gr[ij]:de[ij],enumerable:uj in gr?gr[uj]:de[uj],writable:!1})}return tj(z0,xr,gr)}:tj:function(z0,xr,gr){if(T_(z0),xr=gt0(xr),T_(gr),cfe)try{return tj(z0,xr,gr)}catch{}if("get"in gr||"set"in gr)throw vfe("Accessors not supported");return"value"in gr&&(z0[xr]=gr.value),z0}});var O_=Be((uae,Tt0)=>{var bfe=fv(),pfe=xj(),mfe=GR();Tt0.exports=bfe?function(H0,z0,xr){return pfe.f(H0,z0,mfe(1,xr))}:function(H0,z0,xr){return H0[z0]=xr,H0}});var aj=Be((iae,Ot0)=>{var _fe=zc(),yfe=Kc(),oj=F_(),hfe=_fe(Function.toString);yfe(oj.inspectSource)||(oj.inspectSource=function(H0){return hfe(H0)});Ot0.exports=oj.inspectSource});var Nt0=Be((fae,At0)=>{var dfe=ru(),kfe=Kc(),wfe=aj(),It0=dfe.WeakMap;At0.exports=kfe(It0)&&/native code/.test(wfe(It0))});var Dt0=Be((xae,Pt0)=>{var Efe=JR(),Sfe=$R(),Ct0=Efe("keys");Pt0.exports=function(H0){return Ct0[H0]||(Ct0[H0]=Sfe(H0))}});var cj=Be((oae,Lt0)=>{Lt0.exports={}});var qt0=Be((aae,Bt0)=>{var gfe=Nt0(),Mt0=ru(),sj=zc(),Ffe=S2(),Tfe=O_(),vj=r1(),lj=F_(),Ofe=Dt0(),Ife=cj(),Rt0="Object already initialized",pj=Mt0.TypeError,Afe=Mt0.WeakMap,I_,a4,A_,Nfe=function(H0){return A_(H0)?a4(H0):I_(H0,{})},Cfe=function(H0){return function(z0){var xr;if(!Ffe(z0)||(xr=a4(z0)).type!==H0)throw pj("Incompatible receiver, "+H0+" required");return xr}};gfe||lj.state?(e1=lj.state||(lj.state=new Afe),jt0=sj(e1.get),bj=sj(e1.has),Gt0=sj(e1.set),I_=function(H0,z0){if(bj(e1,H0))throw new pj(Rt0);return z0.facade=H0,Gt0(e1,H0,z0),z0},a4=function(H0){return jt0(e1,H0)||{}},A_=function(H0){return bj(e1,H0)}):(ov=Ofe("state"),Ife[ov]=!0,I_=function(H0,z0){if(vj(H0,ov))throw new pj(Rt0);return z0.facade=H0,Tfe(H0,ov,z0),z0},a4=function(H0){return vj(H0,ov)?H0[ov]:{}},A_=function(H0){return vj(H0,ov)});var e1,jt0,bj,Gt0,ov;Bt0.exports={set:I_,get:a4,has:A_,enforce:Nfe,getterFor:Cfe}});var Xt0=Be((cae,Ht0)=>{var mj=fv(),Pfe=r1(),Ut0=Function.prototype,Dfe=mj&&Object.getOwnPropertyDescriptor,_j=Pfe(Ut0,"name"),Lfe=_j&&function(){}.name==="something",Rfe=_j&&(!mj||mj&&Dfe(Ut0,"name").configurable);Ht0.exports={EXISTS:_j,PROPER:Lfe,CONFIGURABLE:Rfe}});var Wt0=Be((sae,Kt0)=>{var jfe=ru(),Yt0=Kc(),Gfe=r1(),Vt0=O_(),Mfe=g_(),Bfe=aj(),zt0=qt0(),qfe=Xt0().CONFIGURABLE,Ufe=zt0.get,Hfe=zt0.enforce,Xfe=String(String).split("String");(Kt0.exports=function(H0,z0,xr,gr){var de=gr?!!gr.unsafe:!1,Ve=gr?!!gr.enumerable:!1,De=gr?!!gr.noTargetGet:!1,Ke=gr&&gr.name!==void 0?gr.name:z0,tn;if(Yt0(xr)&&(String(Ke).slice(0,7)==="Symbol("&&(Ke="["+String(Ke).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Gfe(xr,"name")||qfe&&xr.name!==Ke)&&Vt0(xr,"name",Ke),tn=Hfe(xr),tn.source||(tn.source=Xfe.join(typeof Ke=="string"?Ke:""))),H0===jfe){Ve?H0[z0]=xr:Mfe(z0,xr);return}else de?!De&&H0[z0]&&(Ve=!0):delete H0[z0];Ve?H0[z0]=xr:Vt0(H0,z0,xr)})(Function.prototype,"toString",function(){return Yt0(this)&&Ufe(this).source||Bfe(this)})});var yj=Be((vae,Jt0)=>{var Yfe=Math.ceil,Vfe=Math.floor;Jt0.exports=function(H0){var z0=+H0;return z0!==z0||z0===0?0:(z0>0?Vfe:Yfe)(z0)}});var Zt0=Be((lae,$t0)=>{var zfe=yj(),Kfe=Math.max,Wfe=Math.min;$t0.exports=function(H0,z0){var xr=zfe(H0);return xr<0?Kfe(xr+z0,0):Wfe(xr,z0)}});var ru0=Be((bae,Qt0)=>{var Jfe=yj(),$fe=Math.min;Qt0.exports=function(H0){return H0>0?$fe(Jfe(H0),9007199254740991):0}});var nu0=Be((pae,eu0)=>{var Zfe=ru0();eu0.exports=function(H0){return Zfe(H0.length)}});var iu0=Be((mae,uu0)=>{var Qfe=w_(),rxe=Zt0(),exe=nu0(),tu0=function(H0){return function(z0,xr,gr){var de=Qfe(z0),Ve=exe(de),De=rxe(gr,Ve),Ke;if(H0&&xr!=xr){for(;Ve>De;)if(Ke=de[De++],Ke!=Ke)return!0}else for(;Ve>De;De++)if((H0||De in de)&&de[De]===xr)return H0||De||0;return!H0&&-1}};uu0.exports={includes:tu0(!0),indexOf:tu0(!1)}});var ou0=Be((_ae,xu0)=>{var nxe=zc(),hj=r1(),txe=w_(),uxe=iu0().indexOf,ixe=cj(),fu0=nxe([].push);xu0.exports=function(H0,z0){var xr=txe(H0),gr=0,de=[],Ve;for(Ve in xr)!hj(ixe,Ve)&&hj(xr,Ve)&&fu0(de,Ve);for(;z0.length>gr;)hj(xr,Ve=z0[gr++])&&(~uxe(de,Ve)||fu0(de,Ve));return de}});var cu0=Be((yae,au0)=>{au0.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var vu0=Be(su0=>{var fxe=ou0(),xxe=cu0(),oxe=xxe.concat("length","prototype");su0.f=Object.getOwnPropertyNames||function(z0){return fxe(z0,oxe)}});var bu0=Be(lu0=>{lu0.f=Object.getOwnPropertySymbols});var mu0=Be((kae,pu0)=>{var axe=E_(),cxe=zc(),sxe=vu0(),vxe=bu0(),lxe=nj(),bxe=cxe([].concat);pu0.exports=axe("Reflect","ownKeys")||function(z0){var xr=sxe.f(lxe(z0)),gr=vxe.f;return gr?bxe(xr,gr(z0)):xr}});var hu0=Be((wae,yu0)=>{var _u0=r1(),pxe=mu0(),mxe=ej(),_xe=xj();yu0.exports=function(H0,z0,xr){for(var gr=pxe(z0),de=_xe.f,Ve=mxe.f,De=0;De{var yxe=Qs(),hxe=Kc(),dxe=/#|\.prototype\./,c4=function(H0,z0){var xr=wxe[kxe(H0)];return xr==Sxe?!0:xr==Exe?!1:hxe(z0)?yxe(z0):!!z0},kxe=c4.normalize=function(H0){return String(H0).replace(dxe,".").toLowerCase()},wxe=c4.data={},Exe=c4.NATIVE="N",Sxe=c4.POLYFILL="P";du0.exports=c4});var Eu0=Be((Sae,wu0)=>{var dj=ru(),gxe=ej().f,Fxe=O_(),Txe=Wt0(),Oxe=g_(),Ixe=hu0(),Axe=ku0();wu0.exports=function(H0,z0){var xr=H0.target,gr=H0.global,de=H0.stat,Ve,De,Ke,tn,Qn,rt;if(gr?De=dj:de?De=dj[xr]||Oxe(xr,{}):De=(dj[xr]||{}).prototype,De)for(Ke in z0){if(Qn=z0[Ke],H0.noTargetGet?(rt=gxe(De,Ke),tn=rt&&rt.value):tn=De[Ke],Ve=Axe(gr?Ke:xr+(de?".":"#")+Ke,H0.forced),!Ve&&tn!==void 0){if(typeof Qn==typeof tn)continue;Ixe(Qn,tn)}(H0.sham||tn&&tn.sham)&&Fxe(Qn,"sham",!0),Txe(De,Ke,Qn,H0)}}});var Su0=Be(()=>{var Nxe=Eu0(),Cxe=ru();Nxe({global:!0},{globalThis:Cxe})});var gu0=Be(()=>{Su0()});var soe=Be((Iae,zu0)=>{gu0();var Zq=Object.defineProperty,Pxe=Object.getOwnPropertyDescriptor,Qq=Object.getOwnPropertyNames,Dxe=Object.prototype.hasOwnProperty,C_=(H0,z0)=>function(){return H0&&(z0=(0,H0[Qq(H0)[0]])(H0=0)),z0},eu=(H0,z0)=>function(){return z0||(0,H0[Qq(H0)[0]])((z0={exports:{}}).exports,z0),z0.exports},rU=(H0,z0)=>{for(var xr in z0)Zq(H0,xr,{get:z0[xr],enumerable:!0})},Lxe=(H0,z0,xr,gr)=>{if(z0&&typeof z0=="object"||typeof z0=="function")for(let de of Qq(z0))!Dxe.call(H0,de)&&de!==xr&&Zq(H0,de,{get:()=>z0[de],enumerable:!(gr=Pxe(z0,de))||gr.enumerable});return H0},eU=H0=>Lxe(Zq({},"__esModule",{value:!0}),H0),Pt=C_({""(){}}),Fu0=eu({"src/common/parser-create-error.js"(H0,z0){"use strict";Pt();function xr(gr,de){let Ve=new SyntaxError(gr+" ("+de.start.line+":"+de.start.column+")");return Ve.loc=de,Ve}z0.exports=xr}}),Tu0={};rU(Tu0,{EOL:()=>Sj,arch:()=>Rxe,cpus:()=>Du0,default:()=>Mu0,endianness:()=>Ou0,freemem:()=>Cu0,getNetworkInterfaces:()=>Gu0,hostname:()=>Iu0,loadavg:()=>Au0,networkInterfaces:()=>ju0,platform:()=>jxe,release:()=>Ru0,tmpDir:()=>wj,tmpdir:()=>Ej,totalmem:()=>Pu0,type:()=>Lu0,uptime:()=>Nu0});function Ou0(){if(typeof N_>"u"){var H0=new ArrayBuffer(2),z0=new Uint8Array(H0),xr=new Uint16Array(H0);if(z0[0]=1,z0[1]=2,xr[0]===258)N_="BE";else if(xr[0]===513)N_="LE";else throw new Error("unable to figure out endianess")}return N_}function Iu0(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function Au0(){return[]}function Nu0(){return 0}function Cu0(){return Number.MAX_VALUE}function Pu0(){return Number.MAX_VALUE}function Du0(){return[]}function Lu0(){return"Browser"}function Ru0(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function ju0(){}function Gu0(){}function Rxe(){return"javascript"}function jxe(){return"browser"}function wj(){return"/tmp"}var N_,Ej,Sj,Mu0,Gxe=C_({"node-modules-polyfills:os"(){Pt(),Ej=wj,Sj=` +`,Mu0={EOL:Sj,tmpdir:Ej,tmpDir:wj,networkInterfaces:ju0,getNetworkInterfaces:Gu0,release:Ru0,type:Lu0,cpus:Du0,totalmem:Pu0,freemem:Cu0,uptime:Nu0,loadavg:Au0,hostname:Iu0,endianness:Ou0}}}),Mxe=eu({"node-modules-polyfills-commonjs:os"(H0,z0){Pt();var xr=(Gxe(),eU(Tu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),Bxe=eu({"node_modules/detect-newline/index.js"(H0,z0){"use strict";Pt();var xr=gr=>{if(typeof gr!="string")throw new TypeError("Expected a string");let de=gr.match(/(?:\r?\n)/g)||[];if(de.length===0)return;let Ve=de.filter(Ke=>Ke===`\r +`).length,De=de.length-Ve;return Ve>De?`\r +`:` +`};z0.exports=xr,z0.exports.graceful=gr=>typeof gr=="string"&&xr(gr)||` +`}}),qxe=eu({"node_modules/jest-docblock/build/index.js"(H0){"use strict";Pt(),Object.defineProperty(H0,"__esModule",{value:!0}),H0.extract=au,H0.parse=Kt,H0.parseWithComments=Zi,H0.print=Ln,H0.strip=En;function z0(){let fn=Mxe();return z0=function(){return fn},fn}function xr(){let fn=gr(Bxe());return xr=function(){return fn},fn}function gr(fn){return fn&&fn.__esModule?fn:{default:fn}}var de=/\*\/$/,Ve=/^\/\*\*/,De=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Ke=/(^|\s+)\/\/([^\r\n]*)/g,tn=/^(\r?\n)+/,Qn=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,rt=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,tt=/(\r?\n|^) *\* ?/g,Ot=[];function au(fn){let Ht=fn.match(De);return Ht?Ht[0].trimLeft():""}function En(fn){let Ht=fn.match(De);return Ht&&Ht[0]?fn.substring(Ht[0].length):fn}function Kt(fn){return Zi(fn).pragmas}function Zi(fn){let Ht=(0,xr().default)(fn)||z0().EOL;fn=fn.replace(Ve,"").replace(de,"").replace(tt,"$1");let S7="";for(;S7!==fn;)S7=fn,fn=fn.replace(Qn,"".concat(Ht,"$1 $2").concat(Ht));fn=fn.replace(tn,"").trimRight();let Dt=Object.create(null),ks=fn.replace(rt,"").replace(tn,"").trimRight(),In;for(;In=rt.exec(fn);){let Wc=In[2].replace(Ke,"");typeof Dt[In[1]]=="string"||Array.isArray(Dt[In[1]])?Dt[In[1]]=Ot.concat(Dt[In[1]],Wc):Dt[In[1]]=Wc}return{comments:ks,pragmas:Dt}}function Ln(fn){let{comments:Ht="",pragmas:S7={}}=fn,Dt=(0,xr().default)(Ht)||z0().EOL,ks="/**",In=" *",Wc=" */",Ai=Object.keys(S7),li=Ai.map(g7=>Tn(g7,S7[g7])).reduce((g7,av)=>g7.concat(av),[]).map(g7=>In+" "+g7+Dt).join("");if(!Ht){if(Ai.length===0)return"";if(Ai.length===1&&!Array.isArray(S7[Ai[0]])){let g7=S7[Ai[0]];return"".concat(ks," ").concat(Tn(Ai[0],g7)[0]).concat(Wc)}}let jt=Ht.split(Dt).map(g7=>"".concat(In," ").concat(g7)).join(Dt)+Dt;return ks+Dt+(Ht?jt:"")+(Ht&&Ai.length?In+Dt:"")+li+Wc}function Tn(fn,Ht){return Ot.concat(Ht).map(S7=>"@".concat(fn," ").concat(S7).trim())}}}),Uxe=eu({"src/common/end-of-line.js"(H0,z0){"use strict";Pt();function xr(De){let Ke=De.indexOf("\r");return Ke>=0?De.charAt(Ke+1)===` +`?"crlf":"cr":"lf"}function gr(De){switch(De){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function de(De,Ke){let tn;switch(Ke){case` +`:tn=/\n/g;break;case"\r":tn=/\r/g;break;case`\r +`:tn=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(Ke),"."))}let Qn=De.match(tn);return Qn?Qn.length:0}function Ve(De){return De.replace(/\r\n?/g,` +`)}z0.exports={guessEndOfLine:xr,convertEndOfLineToChars:gr,countEndOfLineChars:de,normalizeEndOfLine:Ve}}}),Hxe=eu({"src/language-js/utils/get-shebang.js"(H0,z0){"use strict";Pt();function xr(gr){if(!gr.startsWith("#!"))return"";let de=gr.indexOf(` +`);return de===-1?gr:gr.slice(0,de)}z0.exports=xr}}),Xxe=eu({"src/language-js/pragma.js"(H0,z0){"use strict";Pt();var{parseWithComments:xr,strip:gr,extract:de,print:Ve}=qxe(),{normalizeEndOfLine:De}=Uxe(),Ke=Hxe();function tn(tt){let Ot=Ke(tt);Ot&&(tt=tt.slice(Ot.length+1));let au=de(tt),{pragmas:En,comments:Kt}=xr(au);return{shebang:Ot,text:tt,pragmas:En,comments:Kt}}function Qn(tt){let Ot=Object.keys(tn(tt).pragmas);return Ot.includes("prettier")||Ot.includes("format")}function rt(tt){let{shebang:Ot,text:au,pragmas:En,comments:Kt}=tn(tt),Zi=gr(au),Ln=Ve({pragmas:Object.assign({format:""},En),comments:Kt.trimStart()});return(Ot?"".concat(Ot,` +`):"")+De(Ln)+(Zi.startsWith(` +`)?` +`:` + +`)+Zi}z0.exports={hasPragma:Qn,insertPragma:rt}}}),Yxe=eu({"src/utils/is-non-empty-array.js"(H0,z0){"use strict";Pt();function xr(gr){return Array.isArray(gr)&&gr.length>0}z0.exports=xr}}),Bu0=eu({"src/language-js/loc.js"(H0,z0){"use strict";Pt();var xr=Yxe();function gr(tn,Qn){let{ignoreDecorators:rt}=Qn||{};if(!rt){let tt=tn.declaration&&tn.declaration.decorators||tn.decorators;if(xr(tt))return gr(tt[0])}return tn.range?tn.range[0]:tn.start}function de(tn){return tn.range?tn.range[1]:tn.end}function Ve(tn,Qn){let rt=gr(tn);return Number.isInteger(rt)&&rt===gr(Qn)}function De(tn,Qn){let rt=de(tn);return Number.isInteger(rt)&&rt===de(Qn)}function Ke(tn,Qn){return Ve(tn,Qn)&&De(tn,Qn)}z0.exports={locStart:gr,locEnd:de,hasSameLocStart:Ve,hasSameLoc:Ke}}}),Vxe=eu({"src/language-js/parse/utils/create-parser.js"(H0,z0){"use strict";Pt();var{hasPragma:xr}=Xxe(),{locStart:gr,locEnd:de}=Bu0();function Ve(De){return De=typeof De=="function"?{parse:De}:De,Object.assign({astFormat:"estree",hasPragma:xr,locStart:gr,locEnd:de},De)}z0.exports=Ve}}),zxe=eu({"src/language-js/parse/utils/replace-hashbang.js"(H0,z0){"use strict";Pt();function xr(gr){return gr.charAt(0)==="#"&&gr.charAt(1)==="!"?"//"+gr.slice(2):gr}z0.exports=xr}}),Kxe=eu({"src/language-js/utils/is-ts-keyword-type.js"(H0,z0){"use strict";Pt();function xr(gr){let{type:de}=gr;return de.startsWith("TS")&&de.endsWith("Keyword")}z0.exports=xr}}),Wxe=eu({"src/language-js/utils/is-block-comment.js"(H0,z0){"use strict";Pt();var xr=new Set(["Block","CommentBlock","MultiLine"]),gr=de=>xr.has(de==null?void 0:de.type);z0.exports=gr}}),Jxe=eu({"src/language-js/utils/is-type-cast-comment.js"(H0,z0){"use strict";Pt();var xr=Wxe();function gr(de){return xr(de)&&de.value[0]==="*"&&/@type\b/.test(de.value)}z0.exports=gr}}),$xe=eu({"src/utils/get-last.js"(H0,z0){"use strict";Pt();var xr=gr=>gr[gr.length-1];z0.exports=xr}}),qu0=eu({"src/language-js/parse/postprocess/visit-node.js"(H0,z0){"use strict";Pt();function xr(gr,de){if(Array.isArray(gr)){for(let Ve=0;Ve{let au=Qn.get(Ot);return!au||!tt.includes(au)}))&&gr(tn,"Leading decorators must be attached to a class declaration")}function Ve(Ke,tn){Ke.kind!==167||Ke.modifiers&&!Ke.modifiers.some(tt=>tt.kind===126)||Ke.initializer&&tn.value===null&&gr(tn,"Abstract property cannot have an initializer")}function De(Ke,tn){let{esTreeNodeToTSNodeMap:Qn,tsNodeToESTreeNodeMap:rt}=tn.tsParseResult;xr(Ke,tt=>{let Ot=Qn.get(tt);if(!Ot)return;let au=rt.get(Ot);au===tt&&(de(Ot,au,rt),Ve(Ot,au))})}z0.exports={throwErrorForInvalidNodes:De}}}),Qxe=eu({"src/language-js/parse/postprocess/index.js"(H0,z0){"use strict";Pt();var{locStart:xr,locEnd:gr}=Bu0(),de=Kxe(),Ve=Jxe(),De=$xe(),Ke=qu0(),{throwErrorForInvalidNodes:tn}=Zxe(),Qn=Uu0();function rt(En,Kt){if(Kt.parser==="typescript"&&/@|abstract/.test(Kt.originalText)&&tn(En,Kt),Kt.parser!=="typescript"&&Kt.parser!=="flow"&&Kt.parser!=="acorn"&&Kt.parser!=="espree"&&Kt.parser!=="meriyah"){let Ln=new Set;En=Ke(En,Tn=>{Tn.leadingComments&&Tn.leadingComments.some(Ve)&&Ln.add(xr(Tn))}),En=Ke(En,Tn=>{if(Tn.type==="ParenthesizedExpression"){let{expression:fn}=Tn;if(fn.type==="TypeCastExpression")return fn.range=Tn.range,fn;let Ht=xr(Tn);if(!Ln.has(Ht))return fn.extra=Object.assign(Object.assign({},fn.extra),{},{parenthesized:!0}),fn}})}return En=Ke(En,Ln=>{switch(Ln.type){case"ChainExpression":return tt(Ln.expression);case"LogicalExpression":{if(Ot(Ln))return au(Ln);break}case"VariableDeclaration":{let Tn=De(Ln.declarations);Tn&&Tn.init&&Zi(Ln,Tn);break}case"TSParenthesizedType":return de(Ln.typeAnnotation)||Ln.typeAnnotation.type==="TSThisType"||(Ln.typeAnnotation.range=[xr(Ln),gr(Ln)]),Ln.typeAnnotation;case"TSTypeParameter":if(typeof Ln.name=="string"){let Tn=xr(Ln);Ln.name={type:"Identifier",name:Ln.name,range:[Tn,Tn+Ln.name.length]}}break;case"ObjectExpression":if(Kt.parser==="typescript"){let Tn=Ln.properties.find(fn=>fn.type==="Property"&&fn.value.type==="TSEmptyBodyFunctionExpression");Tn&&Qn(Tn.value,"Unexpected token.")}break;case"SequenceExpression":{let Tn=De(Ln.expressions);Ln.range=[xr(Ln),Math.min(gr(Tn),gr(Ln))];break}case"TopicReference":Kt.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:Tn}=Ln;if(Kt.parser==="meriyah"&&Tn&&Tn.type==="Identifier"){let fn=Kt.originalText.slice(xr(Tn),gr(Tn));(fn.startsWith('"')||fn.startsWith("'"))&&(Ln.exported=Object.assign(Object.assign({},Ln.exported),{},{type:"Literal",value:Ln.exported.name,raw:fn}))}break}}}),En;function Zi(Ln,Tn){Kt.originalText[gr(Tn)]!==";"&&(Ln.range=[xr(Ln),gr(Tn)])}}function tt(En){switch(En.type){case"CallExpression":En.type="OptionalCallExpression",En.callee=tt(En.callee);break;case"MemberExpression":En.type="OptionalMemberExpression",En.object=tt(En.object);break;case"TSNonNullExpression":En.expression=tt(En.expression);break}return En}function Ot(En){return En.type==="LogicalExpression"&&En.right.type==="LogicalExpression"&&En.operator===En.right.operator}function au(En){return Ot(En)?au({type:"LogicalExpression",operator:En.operator,left:au({type:"LogicalExpression",operator:En.operator,left:En.left,right:En.right.left,range:[xr(En.left),gr(En.right.left)]}),right:En.right.right,range:[xr(En),gr(En)]}):En}z0.exports=rt}}),Hu0={};rU(Hu0,{default:()=>Xu0});var Xu0,roe=C_({"node-modules-polyfills:fs"(){Pt(),Xu0={}}}),kj=eu({"node-modules-polyfills-commonjs:fs"(H0,z0){Pt();var xr=(roe(),eU(Hu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),Yu0={};rU(Yu0,{ALPN_ENABLED:()=>Pq,COPYFILE_EXCL:()=>CB,COPYFILE_FICLONE:()=>DB,COPYFILE_FICLONE_FORCE:()=>RB,DH_CHECK_P_NOT_PRIME:()=>Aq,DH_CHECK_P_NOT_SAFE_PRIME:()=>Iq,DH_NOT_SUITABLE_GENERATOR:()=>Cq,DH_UNABLE_TO_CHECK_GENERATOR:()=>Nq,E2BIG:()=>Ij,EACCES:()=>Aj,EADDRINUSE:()=>Nj,EADDRNOTAVAIL:()=>Cj,EAFNOSUPPORT:()=>Pj,EAGAIN:()=>Dj,EALREADY:()=>Lj,EBADF:()=>Rj,EBADMSG:()=>jj,EBUSY:()=>Gj,ECANCELED:()=>Mj,ECHILD:()=>Bj,ECONNABORTED:()=>qj,ECONNREFUSED:()=>Uj,ECONNRESET:()=>Hj,EDEADLK:()=>Xj,EDESTADDRREQ:()=>Yj,EDOM:()=>Vj,EDQUOT:()=>zj,EEXIST:()=>Kj,EFAULT:()=>Wj,EFBIG:()=>Jj,EHOSTUNREACH:()=>$j,EIDRM:()=>Zj,EILSEQ:()=>Qj,EINPROGRESS:()=>rG,EINTR:()=>eG,EINVAL:()=>nG,EIO:()=>tG,EISCONN:()=>uG,EISDIR:()=>iG,ELOOP:()=>fG,EMFILE:()=>xG,EMLINK:()=>oG,EMSGSIZE:()=>aG,EMULTIHOP:()=>cG,ENAMETOOLONG:()=>sG,ENETDOWN:()=>vG,ENETRESET:()=>lG,ENETUNREACH:()=>bG,ENFILE:()=>pG,ENGINE_METHOD_ALL:()=>Tq,ENGINE_METHOD_CIPHERS:()=>Eq,ENGINE_METHOD_DH:()=>dq,ENGINE_METHOD_DIGESTS:()=>Sq,ENGINE_METHOD_DSA:()=>hq,ENGINE_METHOD_EC:()=>wq,ENGINE_METHOD_NONE:()=>Oq,ENGINE_METHOD_PKEY_ASN1_METHS:()=>Fq,ENGINE_METHOD_PKEY_METHS:()=>gq,ENGINE_METHOD_RAND:()=>kq,ENGINE_METHOD_RSA:()=>yq,ENOBUFS:()=>mG,ENODATA:()=>_G,ENODEV:()=>yG,ENOENT:()=>hG,ENOEXEC:()=>dG,ENOLCK:()=>kG,ENOLINK:()=>wG,ENOMEM:()=>EG,ENOMSG:()=>SG,ENOPROTOOPT:()=>gG,ENOSPC:()=>FG,ENOSR:()=>TG,ENOSTR:()=>OG,ENOSYS:()=>IG,ENOTCONN:()=>AG,ENOTDIR:()=>NG,ENOTEMPTY:()=>CG,ENOTSOCK:()=>PG,ENOTSUP:()=>DG,ENOTTY:()=>LG,ENXIO:()=>RG,EOPNOTSUPP:()=>jG,EOVERFLOW:()=>GG,EPERM:()=>MG,EPIPE:()=>BG,EPROTO:()=>qG,EPROTONOSUPPORT:()=>UG,EPROTOTYPE:()=>HG,ERANGE:()=>XG,EROFS:()=>YG,ESPIPE:()=>VG,ESRCH:()=>zG,ESTALE:()=>KG,ETIME:()=>WG,ETIMEDOUT:()=>JG,ETXTBSY:()=>$G,EWOULDBLOCK:()=>ZG,EXDEV:()=>QG,F_OK:()=>TB,OPENSSL_VERSION_NUMBER:()=>jB,O_APPEND:()=>oB,O_CREAT:()=>uB,O_DIRECTORY:()=>aB,O_DSYNC:()=>vB,O_EXCL:()=>iB,O_NOCTTY:()=>fB,O_NOFOLLOW:()=>cB,O_NONBLOCK:()=>bB,O_RDONLY:()=>MM,O_RDWR:()=>qM,O_SYMLINK:()=>lB,O_SYNC:()=>sB,O_TRUNC:()=>xB,O_WRONLY:()=>BM,POINT_CONVERSION_COMPRESSED:()=>Kq,POINT_CONVERSION_HYBRID:()=>Jq,POINT_CONVERSION_UNCOMPRESSED:()=>Wq,PRIORITY_ABOVE_NORMAL:()=>tM,PRIORITY_BELOW_NORMAL:()=>eM,PRIORITY_HIGH:()=>uM,PRIORITY_HIGHEST:()=>iM,PRIORITY_LOW:()=>rM,PRIORITY_NORMAL:()=>nM,RSA_NO_PADDING:()=>Rq,RSA_PKCS1_OAEP_PADDING:()=>jq,RSA_PKCS1_PADDING:()=>Dq,RSA_PKCS1_PSS_PADDING:()=>Mq,RSA_PSS_SALTLEN_AUTO:()=>Uq,RSA_PSS_SALTLEN_DIGEST:()=>Bq,RSA_PSS_SALTLEN_MAX_SIGN:()=>qq,RSA_SSLV23_PADDING:()=>Lq,RSA_X931_PADDING:()=>Gq,RTLD_GLOBAL:()=>Tj,RTLD_LAZY:()=>gj,RTLD_LOCAL:()=>Oj,RTLD_NOW:()=>Fj,R_OK:()=>OB,SIGABRT:()=>sM,SIGALRM:()=>dM,SIGBUS:()=>lM,SIGCHLD:()=>wM,SIGCONT:()=>EM,SIGFPE:()=>bM,SIGHUP:()=>fM,SIGILL:()=>aM,SIGINFO:()=>LM,SIGINT:()=>xM,SIGIO:()=>DM,SIGIOT:()=>vM,SIGKILL:()=>pM,SIGPIPE:()=>hM,SIGPROF:()=>CM,SIGQUIT:()=>oM,SIGSEGV:()=>_M,SIGSTOP:()=>SM,SIGSYS:()=>RM,SIGTERM:()=>kM,SIGTRAP:()=>cM,SIGTSTP:()=>gM,SIGTTIN:()=>FM,SIGTTOU:()=>TM,SIGURG:()=>OM,SIGUSR1:()=>mM,SIGUSR2:()=>yM,SIGVTALRM:()=>NM,SIGWINCH:()=>PM,SIGXCPU:()=>IM,SIGXFSZ:()=>AM,SSL_OP_ALL:()=>GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:()=>MB,SSL_OP_CIPHER_SERVER_PREFERENCE:()=>BB,SSL_OP_CISCO_ANYCONNECT:()=>qB,SSL_OP_COOKIE_EXCHANGE:()=>UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:()=>HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:()=>XB,SSL_OP_EPHEMERAL_RSA:()=>YB,SSL_OP_LEGACY_SERVER_CONNECT:()=>VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:()=>zB,SSL_OP_MICROSOFT_SESS_ID_BUG:()=>KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:()=>WB,SSL_OP_NETSCAPE_CA_DN_BUG:()=>JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:()=>$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:()=>ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:()=>QB,SSL_OP_NO_COMPRESSION:()=>rq,SSL_OP_NO_QUERY_MTU:()=>eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:()=>nq,SSL_OP_NO_SSLv2:()=>tq,SSL_OP_NO_SSLv3:()=>uq,SSL_OP_NO_TICKET:()=>iq,SSL_OP_NO_TLSv1:()=>fq,SSL_OP_NO_TLSv1_1:()=>xq,SSL_OP_NO_TLSv1_2:()=>oq,SSL_OP_PKCS1_CHECK_1:()=>aq,SSL_OP_PKCS1_CHECK_2:()=>cq,SSL_OP_SINGLE_DH_USE:()=>sq,SSL_OP_SINGLE_ECDH_USE:()=>vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:()=>lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:()=>bq,SSL_OP_TLS_BLOCK_PADDING_BUG:()=>pq,SSL_OP_TLS_D5_BUG:()=>mq,SSL_OP_TLS_ROLLBACK_BUG:()=>_q,S_IFBLK:()=>rB,S_IFCHR:()=>QM,S_IFDIR:()=>ZM,S_IFIFO:()=>eB,S_IFLNK:()=>nB,S_IFMT:()=>JM,S_IFREG:()=>$M,S_IFSOCK:()=>tB,S_IRGRP:()=>dB,S_IROTH:()=>SB,S_IRUSR:()=>mB,S_IRWXG:()=>hB,S_IRWXO:()=>EB,S_IRWXU:()=>pB,S_IWGRP:()=>kB,S_IWOTH:()=>gB,S_IWUSR:()=>_B,S_IXGRP:()=>wB,S_IXOTH:()=>FB,S_IXUSR:()=>yB,TLS1_1_VERSION:()=>Yq,TLS1_2_VERSION:()=>Vq,TLS1_3_VERSION:()=>zq,TLS1_VERSION:()=>Xq,UV_DIRENT_BLOCK:()=>WM,UV_DIRENT_CHAR:()=>KM,UV_DIRENT_DIR:()=>XM,UV_DIRENT_FIFO:()=>VM,UV_DIRENT_FILE:()=>HM,UV_DIRENT_LINK:()=>YM,UV_DIRENT_SOCKET:()=>zM,UV_DIRENT_UNKNOWN:()=>UM,UV_FS_COPYFILE_EXCL:()=>NB,UV_FS_COPYFILE_FICLONE:()=>PB,UV_FS_COPYFILE_FICLONE_FORCE:()=>LB,UV_FS_SYMLINK_DIR:()=>jM,UV_FS_SYMLINK_JUNCTION:()=>GM,W_OK:()=>IB,X_OK:()=>AB,default:()=>Vu0,defaultCipherList:()=>$q,defaultCoreCipherList:()=>Hq});var gj,Fj,Tj,Oj,Ij,Aj,Nj,Cj,Pj,Dj,Lj,Rj,jj,Gj,Mj,Bj,qj,Uj,Hj,Xj,Yj,Vj,zj,Kj,Wj,Jj,$j,Zj,Qj,rG,eG,nG,tG,uG,iG,fG,xG,oG,aG,cG,sG,vG,lG,bG,pG,mG,_G,yG,hG,dG,kG,wG,EG,SG,gG,FG,TG,OG,IG,AG,NG,CG,PG,DG,LG,RG,jG,GG,MG,BG,qG,UG,HG,XG,YG,VG,zG,KG,WG,JG,$G,ZG,QG,rM,eM,nM,tM,uM,iM,fM,xM,oM,aM,cM,sM,vM,lM,bM,pM,mM,_M,yM,hM,dM,kM,wM,EM,SM,gM,FM,TM,OM,IM,AM,NM,CM,PM,DM,LM,RM,jM,GM,MM,BM,qM,UM,HM,XM,YM,VM,zM,KM,WM,JM,$M,ZM,QM,rB,eB,nB,tB,uB,iB,fB,xB,oB,aB,cB,sB,vB,lB,bB,pB,mB,_B,yB,hB,dB,kB,wB,EB,SB,gB,FB,TB,OB,IB,AB,NB,CB,PB,DB,LB,RB,jB,GB,MB,BB,qB,UB,HB,XB,YB,VB,zB,KB,WB,JB,$B,ZB,QB,rq,eq,nq,tq,uq,iq,fq,xq,oq,aq,cq,sq,vq,lq,bq,pq,mq,_q,yq,hq,dq,kq,wq,Eq,Sq,gq,Fq,Tq,Oq,Iq,Aq,Nq,Cq,Pq,Dq,Lq,Rq,jq,Gq,Mq,Bq,qq,Uq,Hq,Xq,Yq,Vq,zq,Kq,Wq,Jq,$q,Vu0,eoe=C_({"node-modules-polyfills:constants"(){Pt(),gj=1,Fj=2,Tj=8,Oj=4,Ij=7,Aj=13,Nj=48,Cj=49,Pj=47,Dj=35,Lj=37,Rj=9,jj=94,Gj=16,Mj=89,Bj=10,qj=53,Uj=61,Hj=54,Xj=11,Yj=39,Vj=33,zj=69,Kj=17,Wj=14,Jj=27,$j=65,Zj=90,Qj=92,rG=36,eG=4,nG=22,tG=5,uG=56,iG=21,fG=62,xG=24,oG=31,aG=40,cG=95,sG=63,vG=50,lG=52,bG=51,pG=23,mG=55,_G=96,yG=19,hG=2,dG=8,kG=77,wG=97,EG=12,SG=91,gG=42,FG=28,TG=98,OG=99,IG=78,AG=57,NG=20,CG=66,PG=38,DG=45,LG=25,RG=6,jG=102,GG=84,MG=1,BG=32,qG=100,UG=43,HG=41,XG=34,YG=30,VG=29,zG=3,KG=70,WG=101,JG=60,$G=26,ZG=35,QG=18,rM=19,eM=10,nM=0,tM=-7,uM=-14,iM=-20,fM=1,xM=2,oM=3,aM=4,cM=5,sM=6,vM=6,lM=10,bM=8,pM=9,mM=30,_M=11,yM=31,hM=13,dM=14,kM=15,wM=20,EM=19,SM=17,gM=18,FM=21,TM=22,OM=16,IM=24,AM=25,NM=26,CM=27,PM=28,DM=23,LM=29,RM=12,jM=1,GM=2,MM=0,BM=1,qM=2,UM=0,HM=1,XM=2,YM=3,VM=4,zM=5,KM=6,WM=7,JM=61440,$M=32768,ZM=16384,QM=8192,rB=24576,eB=4096,nB=40960,tB=49152,uB=512,iB=2048,fB=131072,xB=1024,oB=8,aB=1048576,cB=256,sB=128,vB=4194304,lB=2097152,bB=4,pB=448,mB=256,_B=128,yB=64,hB=56,dB=32,kB=16,wB=8,EB=7,SB=4,gB=2,FB=1,TB=0,OB=4,IB=2,AB=1,NB=1,CB=1,PB=2,DB=2,LB=4,RB=4,jB=269488175,GB=2147485780,MB=262144,BB=4194304,qB=32768,UB=8192,HB=2147483648,XB=2048,YB=0,VB=4,zB=0,KB=0,WB=0,JB=0,$B=0,ZB=0,QB=0,rq=131072,eq=4096,nq=65536,tq=0,uq=33554432,iq=16384,fq=67108864,xq=268435456,oq=134217728,aq=0,cq=0,sq=0,vq=0,lq=0,bq=0,pq=0,mq=0,_q=8388608,yq=1,hq=2,dq=4,kq=8,wq=2048,Eq=64,Sq=128,gq=512,Fq=1024,Tq=65535,Oq=0,Iq=2,Aq=1,Nq=4,Cq=8,Pq=1,Dq=1,Lq=2,Rq=3,jq=4,Gq=5,Mq=6,Bq=-1,qq=-2,Uq=-2,Hq="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA",Xq=769,Yq=770,Vq=771,zq=772,Kq=2,Wq=4,Jq=6,$q="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA",Vu0={RTLD_LAZY:gj,RTLD_NOW:Fj,RTLD_GLOBAL:Tj,RTLD_LOCAL:Oj,E2BIG:Ij,EACCES:Aj,EADDRINUSE:Nj,EADDRNOTAVAIL:Cj,EAFNOSUPPORT:Pj,EAGAIN:Dj,EALREADY:Lj,EBADF:Rj,EBADMSG:jj,EBUSY:Gj,ECANCELED:Mj,ECHILD:Bj,ECONNABORTED:qj,ECONNREFUSED:Uj,ECONNRESET:Hj,EDEADLK:Xj,EDESTADDRREQ:Yj,EDOM:Vj,EDQUOT:zj,EEXIST:Kj,EFAULT:Wj,EFBIG:Jj,EHOSTUNREACH:$j,EIDRM:Zj,EILSEQ:Qj,EINPROGRESS:rG,EINTR:eG,EINVAL:nG,EIO:tG,EISCONN:uG,EISDIR:iG,ELOOP:fG,EMFILE:xG,EMLINK:oG,EMSGSIZE:aG,EMULTIHOP:cG,ENAMETOOLONG:sG,ENETDOWN:vG,ENETRESET:lG,ENETUNREACH:bG,ENFILE:pG,ENOBUFS:mG,ENODATA:_G,ENODEV:yG,ENOENT:hG,ENOEXEC:dG,ENOLCK:kG,ENOLINK:wG,ENOMEM:EG,ENOMSG:SG,ENOPROTOOPT:gG,ENOSPC:FG,ENOSR:TG,ENOSTR:OG,ENOSYS:IG,ENOTCONN:AG,ENOTDIR:NG,ENOTEMPTY:CG,ENOTSOCK:PG,ENOTSUP:DG,ENOTTY:LG,ENXIO:RG,EOPNOTSUPP:jG,EOVERFLOW:GG,EPERM:MG,EPIPE:BG,EPROTO:qG,EPROTONOSUPPORT:UG,EPROTOTYPE:HG,ERANGE:XG,EROFS:YG,ESPIPE:VG,ESRCH:zG,ESTALE:KG,ETIME:WG,ETIMEDOUT:JG,ETXTBSY:$G,EWOULDBLOCK:ZG,EXDEV:QG,PRIORITY_LOW:rM,PRIORITY_BELOW_NORMAL:eM,PRIORITY_NORMAL:nM,PRIORITY_ABOVE_NORMAL:tM,PRIORITY_HIGH:uM,PRIORITY_HIGHEST:iM,SIGHUP:fM,SIGINT:xM,SIGQUIT:oM,SIGILL:aM,SIGTRAP:cM,SIGABRT:sM,SIGIOT:vM,SIGBUS:lM,SIGFPE:bM,SIGKILL:pM,SIGUSR1:mM,SIGSEGV:_M,SIGUSR2:yM,SIGPIPE:hM,SIGALRM:dM,SIGTERM:kM,SIGCHLD:wM,SIGCONT:EM,SIGSTOP:SM,SIGTSTP:gM,SIGTTIN:FM,SIGTTOU:TM,SIGURG:OM,SIGXCPU:IM,SIGXFSZ:AM,SIGVTALRM:NM,SIGPROF:CM,SIGWINCH:PM,SIGIO:DM,SIGINFO:LM,SIGSYS:RM,UV_FS_SYMLINK_DIR:jM,UV_FS_SYMLINK_JUNCTION:GM,O_RDONLY:MM,O_WRONLY:BM,O_RDWR:qM,UV_DIRENT_UNKNOWN:UM,UV_DIRENT_FILE:HM,UV_DIRENT_DIR:XM,UV_DIRENT_LINK:YM,UV_DIRENT_FIFO:VM,UV_DIRENT_SOCKET:zM,UV_DIRENT_CHAR:KM,UV_DIRENT_BLOCK:WM,S_IFMT:JM,S_IFREG:$M,S_IFDIR:ZM,S_IFCHR:QM,S_IFBLK:rB,S_IFIFO:eB,S_IFLNK:nB,S_IFSOCK:tB,O_CREAT:uB,O_EXCL:iB,O_NOCTTY:fB,O_TRUNC:xB,O_APPEND:oB,O_DIRECTORY:aB,O_NOFOLLOW:cB,O_SYNC:sB,O_DSYNC:vB,O_SYMLINK:lB,O_NONBLOCK:bB,S_IRWXU:pB,S_IRUSR:mB,S_IWUSR:_B,S_IXUSR:yB,S_IRWXG:hB,S_IRGRP:dB,S_IWGRP:kB,S_IXGRP:wB,S_IRWXO:EB,S_IROTH:SB,S_IWOTH:gB,S_IXOTH:FB,F_OK:TB,R_OK:OB,W_OK:IB,X_OK:AB,UV_FS_COPYFILE_EXCL:NB,COPYFILE_EXCL:CB,UV_FS_COPYFILE_FICLONE:PB,COPYFILE_FICLONE:DB,UV_FS_COPYFILE_FICLONE_FORCE:LB,COPYFILE_FICLONE_FORCE:RB,OPENSSL_VERSION_NUMBER:jB,SSL_OP_ALL:GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:MB,SSL_OP_CIPHER_SERVER_PREFERENCE:BB,SSL_OP_CISCO_ANYCONNECT:qB,SSL_OP_COOKIE_EXCHANGE:UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:XB,SSL_OP_EPHEMERAL_RSA:YB,SSL_OP_LEGACY_SERVER_CONNECT:VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:zB,SSL_OP_MICROSOFT_SESS_ID_BUG:KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:WB,SSL_OP_NETSCAPE_CA_DN_BUG:JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:QB,SSL_OP_NO_COMPRESSION:rq,SSL_OP_NO_QUERY_MTU:eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:nq,SSL_OP_NO_SSLv2:tq,SSL_OP_NO_SSLv3:uq,SSL_OP_NO_TICKET:iq,SSL_OP_NO_TLSv1:fq,SSL_OP_NO_TLSv1_1:xq,SSL_OP_NO_TLSv1_2:oq,SSL_OP_PKCS1_CHECK_1:aq,SSL_OP_PKCS1_CHECK_2:cq,SSL_OP_SINGLE_DH_USE:sq,SSL_OP_SINGLE_ECDH_USE:vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:bq,SSL_OP_TLS_BLOCK_PADDING_BUG:pq,SSL_OP_TLS_D5_BUG:mq,SSL_OP_TLS_ROLLBACK_BUG:_q,ENGINE_METHOD_RSA:yq,ENGINE_METHOD_DSA:hq,ENGINE_METHOD_DH:dq,ENGINE_METHOD_RAND:kq,ENGINE_METHOD_EC:wq,ENGINE_METHOD_CIPHERS:Eq,ENGINE_METHOD_DIGESTS:Sq,ENGINE_METHOD_PKEY_METHS:gq,ENGINE_METHOD_PKEY_ASN1_METHS:Fq,ENGINE_METHOD_ALL:Tq,ENGINE_METHOD_NONE:Oq,DH_CHECK_P_NOT_SAFE_PRIME:Iq,DH_CHECK_P_NOT_PRIME:Aq,DH_UNABLE_TO_CHECK_GENERATOR:Nq,DH_NOT_SUITABLE_GENERATOR:Cq,ALPN_ENABLED:Pq,RSA_PKCS1_PADDING:Dq,RSA_SSLV23_PADDING:Lq,RSA_NO_PADDING:Rq,RSA_PKCS1_OAEP_PADDING:jq,RSA_X931_PADDING:Gq,RSA_PKCS1_PSS_PADDING:Mq,RSA_PSS_SALTLEN_DIGEST:Bq,RSA_PSS_SALTLEN_MAX_SIGN:qq,RSA_PSS_SALTLEN_AUTO:Uq,defaultCoreCipherList:Hq,TLS1_VERSION:Xq,TLS1_1_VERSION:Yq,TLS1_2_VERSION:Vq,TLS1_3_VERSION:zq,POINT_CONVERSION_COMPRESSED:Kq,POINT_CONVERSION_UNCOMPRESSED:Wq,POINT_CONVERSION_HYBRID:Jq,defaultCipherList:$q}}}),noe=eu({"node-modules-polyfills-commonjs:constants"(H0,z0){Pt();var xr=(eoe(),eU(Yu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),toe=eu({"node_modules/flow-parser/flow_parser.js"(H0){Pt(),function(z0){"use strict";var xr="member_property_expression",gr=8483,de=12538,Ve="children",De="predicate_expression",Ke="??",tn="Identifier",Qn=64311,rt=192,tt=11710,Ot=122654,au=110947,En=67591,Kt="!",Zi="directive",Ln=163,Tn="block",fn=126553,Ht=12735,S7=68096,Dt="params",ks=93071,In=122,Wc=72767,Ai=181,li="for_statement",jt=128,g7="start",av=43867,nU="_method",P_=70414,cv=">",Qi="catch_body",D_=120121,tU="the end of an expression statement (`;`)",L_=124907,uU=1027,s4=126558,rf="jsx_fragment",R_=42527,j_="decorators",G_=82943,M_=71039,B_=110882,q_=67514,iU=8472,fU="update",U_=12783,H_=12438,X_=12352,Y_=8511,V_=42961,F2="method",v4=120713,ef=8191,nf="function_param",z_=67871,F7="throw",K_=11507,tf="class_extends",W_=43470,uf="object_key_literal",J_=71903,$_=65437,ff="jsx_child",Z_=43311,l4=119995,Q_=67637,b4=68116,ry=66204,ey=65470,xU="<<=",ny="e",ty=67391,p4=11631,m4=69956,sv="tparams",uy=66735,iy=64217,fy=43697,oU="Invalid binary/octal ",xy=-43,oy=43255,_4="do",ay=43301,xf="binding_pattern",cy=120487,of="jsx_attribute_value_literal",y4="package",af="interface_declaration",sy=72750,vy=119892,aU="tail",cU=-53,cf=111,sU=180,ly=119807,by=71959,vU=8206,py=65613,Jc="type",my=55215,_y=-42,sf="export_default_declaration_decl",h4=72970,lU="filtered_out",yy=70416,bU=229,vf="function_this_param",pU="module",d4="try",hy=70143,dy=125183,ky=70412,d0="@])",lf="binary",mU="infinity",k4="private",wy=65500,w4="has_unknown_members",bf="pattern_array_rest_element",_U="Property",ws="implements",Ey=12548,yU=211,pf="if_alternate_statement",Sy=124903,gy=43395,vv="src/parser/type_parser.ml",Fy=66915,E4=126552,Ty=120712,S4=126555,Oy=120596,c7="raw",T7=112,mf="class_declaration",_f="statement",Iy=126624,Ay=71235,yf="meta_property",Ny=44002,Cy=8467,hf="class_property_value",Py=8318,df="optional_call",Dy=43761,$c="kind",kf="class_identifier",Ly=69955,Ry=66378,jy=120512,Gy=68220,Xt=110,My=123583,T2="declare",wf="typeof_member_identifier",Ef="catch_clause",By=11742,qy=70831,g4=8468,Sf="for_in_assignment_pattern",hU=-32,gf="object_",Uy=43262,Hy="mixins",Ff="type_param",dU="visit_trailing_comment",Xy=71839,O2="boolean",Tf="call",kU="expected *",Yy=43010,Vy=241,Nu="expression",I2="column",zy=43595,Ky=43258,Wy=191456,Of="member_type_identifier",A2=117,Jy=43754,F4=126544,wU="Assert_failure",$y=66517,Zy=42964,If="enum_number_member",EU="a string",Qy=65855,rh=119993,eh="opaque",SU=870530776,nh=67711,th=66994,Af="enum_symbol_body",gU=185,FU=219,T4="filter",uh=43615,O4=126560,ih=19903,n1="get",fh=64316,TU=`Fatal error: exception %s +`,I4="exported",OU=">=",Ju="return",A4="members",N4=256,xh=66962,oh=64279,ah=67829,IU="Enum `",AU="&&=",Nf="object_property",ch=67589,Cf="pattern_object_property",Pf="template_literal_element",sh=69551,Ni=127343600,C4=70452,Df="class_element",vh="ENOENT",lh=71131,NU=200,bh=120137,ph=94098,P4=72349,CU=1328,Lf="function_identifier",mh=126543,Rf="jsx_attribute_name",_h=43487,dr="@[<2>{ ",PU="ENOTEMPTY",yh=65908,hh=72191,D4=120513,dh=92909,DU="bound",kh=162,LU=172,L4=120070,jf="enum_number_body",Gf="update_expression",Mf="spread_element",Bf="for_in_left_declaration",R4=64319,N2="%d",wh=12703,j4=11687,RU="@,))@]",Eh=42239,qf="type_cast",Sh=42508,Uf="class_implements_interface",gh=67640,Fh=605857695,jU="Cygwin",GU="buffer.ml",Th=124908,MU="handler",Oh=66207,Ih=66963,G4=11558,BU="-=",Pn=113,Ah=113775,qU="collect_comments",M4=126540,lv="set",Hf="assignment_pattern",Cu="right",Xf="object_key_identifier",B4=120133,Nh="Invalid number ",Ch=42963,q4=12539,Ph=68023,Dh=43798,ti=100,Yf="pattern_literal",Vf="generic_type",UU="*",Lh=42783,Rh=42890,jh=230,U4="else",Gh=70851,Mh=69289,HU="the start of a statement",H4="properties",Bh=43696,qh=110959,zf="declare_function",X4=120597,Kf="object_indexer_property_type",Uh=70492,Hh=2048,C2="arguments",Xr="comments",Xh=43042,Zc=107,Yh=110575,XU=161,Vh=67431,Y4="line",P2="declaration",nu="static",Wf="pattern_identifier",zh=69958,YU="the",Kh="Unix.Unix_error",Wh=43814,Qc="annot",Jh=65786,$h=66303,Zh=64967,Qh=64255,rd=8584,V4=120655,VU="Stack_overflow",ed=43700,Jf="syntax_opt",zU="/static/",$f="comprehension",nd=253,KU="Not_found",WU="+=",JU=235,td=68680,ud=66954,id=64324,fd=72966,$U=174,ZU=-1053382366,xd="rest",Zf="pattern_array_element",Qf="jsx_attribute_value_expression",z4=65595,rx="pattern_array_e",QU=243,od=43711,ad="rmdir",K4="symbol",cd=69926,W4="*dummy method*",sd=43741,O7="typeParameters",D2="const",rH=1026,eH=149,vd=12341,ld=72847,bd=66993,nH=202,Ci="false",Yt=106,pd=120076,md=186,Pi=128,_d=125124,yd="Fatal error: exception ",J4=67593,hd=69297,dd=44031,tH=234,kd=92927,wd=68095,$u=8231,ex="object_key_computed",nx="labeled_statement",tx="function_param_pattern",$4=126590,Ed=65481,Sd=43442,uH="collect_comments_opt",ux="variable_declarator",bv="_",gd="compare: functional value",Fd=67967,pv="computed",ix="object_property_type",mt="id",Td=126562,t1=114,iH="comment_bounds",Od=70853,Id=69247,fx="class_private_field",Ad=42237,Nd=72329,fH="Invalid_argument",Cd=113770,Z4=94031,Pd=120092,xx="declare_class",Dd=67839,Ld=72250,xH="%ni",Rd=92879,oH="prototype",Es="`.",ox=8287,Q4=65344,jd="&",I7="debugger",ax="type_identifier_reference",aH="Internal Error: Found private field in object props",cx="sequence",sx="call_type_args",cH=238,Gd=12348,sH="++",Md=68863,Bd=72001,qd=70084,Ud="label",mv=-45,vx="jsx_opening_attribute",Hd=43583,r8="%F",Xd=43784,Yd=113791,lx="call_arguments",e8=126503,Vd=43743,Zu="0",zd=119967,n8=126538,bx="new_",_v=449540197,Kd=64109,Wd=68466,Jd=177983,wt=248,px="program",Xe="@,]@]",$d=68031,mx="function_type",_x="type_",t8=8484,Zd=67382,Qd=42537,rk=226,ek=66559,nk=42993,tk=64274,u8=71236,uk=120069,ik=72105,fk=126570,xk="object",ok=42959,A7="break",yx="for_of_statement",ak=43695,i8=126551,ck=66955,f8=126520,sk=66499,L2=1024,vk=67455,lk=43018,vH=198,x8=126522,hx="function_declaration",bk=73064,dx="await",pk=92728,mk=70418,_k=68119,kx="function_rest_param",yk=42653,o8=11703,bi="left",a8=70449,hk=184,wx="declare_type_alias",Ex=16777215,c8=70302,lH="/=",bH="|=",dk=55242,kk=126583,wk=124927,Ek=124895,Sk=72959,gk=65497,pH="Invalid legacy octal ",rs="typeof",Fk="explicit_type",Sx="statement_list",Tk=65495,gx="class_method",s8=8526,v8=244,Ok=67861,l8=119994,b8="enum",mH=2147483647,Ik=69762,_H=208,R2="in",Ak=11702,p8=67638,yH=", characters ",Nk=70753,yv="super",Ck=92783,Pk=8304,m8=126504,Fx="import_specifier",Dk=68324,Lk=101589,Rk=67646,Tx="expression_or_spread",jk=74879,Gk=43792,_8=43260,Mk=93052,hH="{",Bk=65574,qk=125258,hv=224,Ox="jsx_element_name_member_expression",j2="instanceof",Uk=69599,Hk=43560,Ix="function_expression",y8=223,Xk=72242,Yk=11498,Vk=126467,zk=73112,dH=140,h8=70107,Kk=13311,Ax="jsx_children",d8=126548,Wk=63743,k8=43471,Nx="jsx_expression",Jk=69864,$k=71998,Zk=72e3,w8=126591,E8=12592,Cx="type_params",Qk=126578,S8=126537,kr="{ ",rw=123627,Px="jsx_spread_attribute",Ce="@,",ew=70161,nw=187,g8=126500,Dx="label_identifier",tw=42606,Lx="number_literal_type",F8=42999,uw=64310,kH=-594953737,iw=122623,T8="hasUnknownMembers",Rx="array",wH="^=",jx="enum_string_member",fw=65536,xw=65615,es="void",ow=65135,Z0=")",EH=138,aw=70002,G2="let",cw=70271,sw="nan",W="@[%s =@ ",vw=194559,lw=110579,Gx="binding_type_identifier",bw=42735,SH=57343,Qu="/",Mx="for_in_statement_lhs",pw=43503,mw=8516,_w=66938,yw="ENOTDIR",gH="TypeParameterInstantiation",hw=69749,dw=65381,kw=83526,dv="number",ww=12447,FH=154,O8=70286,Ew=72160,Sw=43493,TH=206,Bx="enum_member_identifier",I8=70280,M2="function",A8=70162,gw=255,Fw=67702,Tw=66771,Ow=70312,OH="|",Iw=93759,IH="End_of_file",Aw=43709,u1="new",AH="Failure",B2="local",Nw=101631,N8=8489,C8="with",qx="enum_declaration",Cw=218,Pw=70457,P8=8488,Ux="member",D8=64325,Dw=247,Lw=70448,Rw=69967,L8=126535,jw=71934,Hx="import_named_specifier",Gw=65312,Mw=126619,Xx="type_annotation",NH=56320,Bw=131071,qw=120770,Uw=67002,Yx="with_",Vx="statement_fork_point",CH="finalizer",Hw=12320,PH="elements",zx="literal",Xw=68607,Yw=8507,R8="each",DH="Sys_error",Vw=123535,zw=130,Kx="bigint_literal_type",Kw=64829,j8=11727,Ww=120538,Wx="member_private_name",Jx="type_alias",LH="Printexc.handle_uncaught_exception",G8=126556,$x="tagged_template",Zx="pattern_object_property_literal_key",Jw=43881,M8=72192,$w=67826,Zw=124910,Qw=66511,ns="int_of_string",rE=43249,nr="None",RH="FunctionTypeParam",ui="name",eE=70285,s7=103,nE=120744,Qx=12288,ro="intersection_type",tE=11679,B8=11559,jH="callee",uE=71295,iE=70018,fE=11567,xE=42954,GH="*-/",r7="predicate",eo="expression_statement",MH="regexp",oE=65479,BH=132,aE=11389,qu="optional",qH=-602162310,z="@]",cE=120003,sE=72249,UH="Unexpected ",vE=73008,q8="finally",no="toplevel_statement_list",HH="end",lE=178207,XH="&=",bE=70301,YH="%Li",pE=72161,mE=69746,_E=70460,yE=12799,U8=65535,hE="loc",dE=69375,kE=43518,VH=205,wE=65487,to="while_",EE=183983,uo="typeof_expression",SE=-673950933,gE=42559,zH="||",FE=124926,TE=55291,io="jsx_element_name_identifier",fo=8239,H8="mixed",KH=136,OE=-253313196,IE=11734,X8=67827,AE=68287,NE=119976,WH="**",J=" =",Y8=888960333,CE=124902,xo="tuple_type",JH=227,PE=70726,DE=73111,V8=126602,LE=126529,oo="object_property_value_type",N0="%a",$H=", ",ZH="<=",RE=69423,QH=199,z8=11695,jE=12294,K8=11711,GE=67583,rX=710,W8=126584,ME=68295,BE=72703,qE="prefix",eX=-80,J8=69415,UE=11492,q2="class",$8=65575,N7="continue",HE=65663,nX=2047,Z8=68120,XE=71086,YE=19967,Di=782176664,VE=120779,Q8=8486,pi=" ",tX="||=",uX="Undefined_recursive_module",zE=66863,iX="RestElement",r3=126634,KE=66377,WE=74751,ao="jsx_element_name_namespaced",JE=43334,$E=66815,C7="typeAnnotation",ZE=120126,co="array_element",e3=64285,fX=189,xX="**=",Yr="()",QE=8543,so="declare_module",vo="export_batch_specifier",oX="%i",aX=">>>=",rS=68029,cX="importKind",P7="extends",eS=64296,n3=43259,nS=71679,tS=64913,uS=119969,iS=94175,fS=72440,t3=65141,lo="function_",xS=43071,oS=42888,aS=69807,cu="variance",ts=123,bo="import_default_specifier",sX=">>>",cS=43764,mi="pattern",sS=71947,vS=70655,kv="consequent",vX=4096,lS=183,bS=68447,pS=65473,us=255,mS=73648,po="call_type_arg",mo=8238,_S=68899,yS=93026,Ye="@[<2>[",hS=110588,_o="comment",lX=191,yo="switch_case",bX=175,dS=71942,ho="do_while",wv="constructor",kS=43587,wS=43586,Eu="yield",ES=67462,pX="fd ",SS=-61,gS="target",u3=72272,U2="var",mX="impltype",i3=70108,H2="0o",FS=119972,TS=92991,f3=70441,x3=8450,OS=120074,IS=66717,ko="interface_type",o3=43880,An="%B",AS=111355,Ev=5760,NS=11630,a3=126499,CS="of",_X=">>",yX="Popping lex mode from empty stack",c3=120629,is=108,PS=43002,hX="%=",s3=126539,DS=126502,wo="template_literal",LS="src/parser/statement_parser.ml",RS=": Not a directory",dX="b",jS=67461,GS=11519,kX="src/parser/flow_lexer.ml",wX="Out_of_memory",MS=120570,Eo=12287,BS=126534,qS="index out of bounds",US=73029,v3="_bigarr02",l3=126571,EX="))",So="for_statement_init",SX="supertype",go="class_property",b3="}",i1="this",Fo="declare_module_exports",gX="@",To="union_type",Li=65535,Oo="variance_opt",HS=94032,FX=222,XS=42124,Io="this_expression",Ao="jsx_element",TX="typeArguments",YS=65019,VS=125251,zS=64111,KS=8471,No="typeof_qualified_identifier",WS=70497,OX="EnumDefaultedMember",Co=8202,JS=66927,D7="switch",$S=69634,Po="unary_expression",ZS=71215,IX=126,QS=67679,rg=65597,AX=207,eg=120686,p3=72163,ng=67001,tg=42962,ug=64262,X2=124,Do=65279,ig=126495,NX=169,fg=71944,CX=-10,m3="alternate",xg=92975,og=65489,Y2=252,ag=67807,cg=43187,sg=68850,_3="export",vg=66383,PX="===",Lo=".",Ro="type_args",DX=147,lg=92159,LX=240,jo="jsx_element_name",bg=72283,pg=171,f1=116,mg=110587,y3=70279,_g=75075,yg=65338,Go="function_params",hg=126627,RX=213,h3=73065,dg=71352,d3=119970,kg=70005,wg=12295,k3=120771,Eg=71494,Sg=11557,gg=42191,jX="flags",Fg=68437,Tg=70730,Mo="optional_indexed_access",Bo="pattern_object_p",Og=42785,qo="nullable_type",Bn="value",Ig=12343,Ag=68415,Ng=11694,GX=221,Cg=11726,Uo="syntax",Pg=119964,MX="&&",Dg=68497,Lg=73097,fs="null",w3=126523,Rg=120084,jg=126601,Gg=8454,Mg="expressions",Bg=72144,V2='"',Zr="(@[",BX=1022,qX=231,qg=170,E3=12448,Ug=68786,S3="<",UX=931,HX="(",XX=196,YX=2048,g3="an identifier",F3=69959,Hg=68799,VX="leadingComments",Xg=72969,Yg=182,Vg=100351,Ho="enum_defaulted_member",zg=69839,Kg=94026,Wg=209,zX=">>=",Jg=131,T3=12336,v7="empty",KX=331416730,WX=204,$g=70479,Zg=69487,Qg=101640,rF=43123,JX="([^/]+)",O3=8319,$X=165,Xo="object_type_property_setter",ZX=909,eF=15,nF=12591,br=125,tF=92735,QX="cases",uF=183969,x1="bigint",rY="Division_by_zero",iF=67071,fF=12329,I3=120004,xF=69414,A3="if",oF=126519,aF="immediately within another function.",cF=55238,sF=126498,eY="qualification",vF=66256,wr="@ }@]",z2=118,N3=11565,C3=120122,Yo="pattern_object_rest_property",lF=74862,P3="'",bF=-26065557,pF=124911,Sv=119,L7=104,Vo="assignment",mF=8457,K2="from",_F=64321,yF=113817,hF=65629,dF=42655,Ri=102,kF=43137,wF=11502,a0=";@ ",R7=101,zo="pattern_array_element_pattern",Wn="body",Ko="jsx_member_expression",EF=65547,Wo="jsx_attribute_value",Jo="jsx_namespaced_name",D3=72967,SF=126550,gv=254,gF=43807,FF=43738,L3=126589,R3=8455,j3=126628,TF=11670,nY="*=",G3=120134,$o="conditional",tY=" : flags Open_text and Open_binary are not compatible",M3=119965,OF=69890,IF=72817,AF=164,NF=43822,B3=69744,uY="\\\\",CF=43638,PF=93047,DF="AssignmentPattern",q3=64322,LF=123190,iY=188,Zo="object_spread_property_type",RF=70783,jF=113663,fY=160,U3=42622,H3=43823,ji="init",Fv=109,GF=66503,X3="proto",MF=74649,Qo="optional_member",BF=40981,qF=120654,v="@ ",ra="enum_boolean_body",ea="export_named_specifier",na="declare_interface",UF=70451,ta="pattern_object_property_computed_key",Y3=-97,V3=120539,z3=64317,HF=12543,ua="export_named_declaration_specifier",XF=43359,K3=126530,W3=72713,YF=113800,xY=195,VF=72367,zF=72103,KF=70278,ia="if_consequent_statement",W2=-85,J3=126496,fa="try_catch",xa="computed_key",oa="class_",WF=173823,aa="pattern_object_property_identifier_key",oY="f",ca="arrow_function",$3=8485,JF=126546,sa="enum_boolean_member",$F=94177,J2="delete",ZF=232,aY="blocks",va="pattern_array_rest_element_pattern",QF=78894,Z3=66512,rT=94111,Tv="string",Ss="test",eT=69572,nT=66463,tT=66335,uT=72348,iT=73061,o1=":",la="enum_body",fT=110590,ba="function_this_param_type",xT=215,oT=77823,cY="minus",sY=201,aT=119980,pa="private_name",ma="object_key",_a="function_param_type",vY="<<",cT=11718,a1="as",lY="delegate",Gi="true",sT=67413,Q3=70854,vT=73439,lT=43776,bT=71723,pT=11505,mT=214,_T=120628,yT=43513,ya="jsx_attribute_name_namespaced",r6=120127,e6="Map.bal",n6="any",bY="@[",pY="camlinternalMod.ml",t6=126559,Uu="import",u6=70404,ha="jsx_spread_child",hT=233,dT=67897,kT=119974,Hu=8233,wT=68405,i6=239,mY="attributes",_Y=173,da="object_internal_slot_property_type",ET=71351,ST=242,gT=67643,f6="shorthand",ka="for_in_statement",FT=126463,TT=71338,OT=69445,IT=65370,AT=73055,NT=167,CT=64911,wa="pattern_object_property_pattern",yY=212,hY=197,x6=126579,PT=64286,DT="explicitType",LT=67669,RT=43866,dY="Sys_blocked_io",o6="catch",jT=123197,GT=64466,MT=65140,BT=73030,qT=69404,a6="protected",kY=8204,UT=67504,HT=193,$2=246,XT=43713,c6=120571,Ea="array_type",wY="%u",Sa="export_default_declaration",ga="class_expression",EY="quasi",Vt="%S",YT=8525,s6=126515,VT=120485,v6=43519,l6=120745,b6=94178,zT=126588,zn=127,KT=66855,SY="@{",gY="visit_leading_comment",WT=67742,FY=" : flags Open_rdonly and Open_wronly are not compatible",JT=120144,p6="returnType",c1=-744106340,s1=240,Fa="-",m6=8469,gs="async",_6=126521,$T=72095,y6=216,TY=" : file already exists",ZT=178205,QT=8449,h6=94179,rO=42774,d6="case",eO=66965,nO=66431,OY=190,Ta="declare_export_declaration",Z2="targs",Oa="type_identifier",tO=64284,uO=43013,k6=43815,Ia="function_body_any",iO=66966,w6=120687,fO=66939,xO=66978,IY=168,E6="public",oO=68115,aO=43712,S6=65598,g6=126547,cO=110591,Aa="indexed_access",AY=12520,e7="interface",NY=`(Program not linked with -g, cannot print stack backtrace) +`,v1=-46,Na="string_literal_type",Ca="import_namespace_specifier",sO=120132,F6=11735,vO=67505,T6=119893,O6="bool",Q2=1e3,_i="default",lO=236,C="",bO="exportKind",CY="trailingComments",I6="^",pO=71983,mO=8348,_O=66977,yO=65594,Pa="logical",Da="jsx_member_expression_identifier",A6=210,PY="cooked",La="for_of_left_declaration",Ov=63,hO=72202,l7="argument",dO=12442,kO=43645,N6=120085,wO=42539,C6=126468,DY=166,LY="Match_failure",EO=68191,Su="src/parser/flow_ast.ml",P6=11647,Ra="declare_variable",xs="+",SO=71127,D6=120145,ja="declare_export_declaration_decl",L6=64318,RY=179,Ga="class_implements",jY="!=",GY="inexact",MY="%li",BY=237,rl="a",R6=73062,gO=178,Ma=65278,Ba="function_rest_param_type",FO=77711,TO=70066,OO=43714,qY=-696510241,j6=70480,IO=69748,AO=113788,NO=94207,UY=`\r +`,qa="class_body",CO=126651,PO=68735,DO=43273,G6=119996,M6=67644,HY=224,Ua="catch_clause_pattern",Ha="boolean_literal_type",B6=126554,q6=126557,LO=113807,U6=126536,XY="%",Iv="property",RO=71956,YY="#",jO=123213,el="meta",Xa="for_of_assignment_pattern",Ya="if_statement",GO=66421,MO=8505,BO=225,nl=250,qO=100343,H6="Literal",UO=42887,Av=115,VY=";",HO=1255,XO="=",YO=126566,VO=93823,Va="opaque_type",zY="!==",za="jsx_attribute",Ka="type_annotation_hint",Mi=32768,zO=73727,KY="range",WY=245,KO="jsError",X6=70006,WO=43492,Y6="@]}",tr="(Some ",JO=8477,JY=129,$O=71487,V6=126564,$Y=` +`,ZO=126514,QO=70080,Wa="generic_identifier_type",rI=66811,Ja="typeof_identifier",ZY="~",eI=65007,$a="pattern_object_rest_property_pattern",nI=194,QY=1039100673,tI=66461,uI=70319,z6=11719,iI=72271,Wt=-48,Za="enum_string_body",fI=70461,Qa="export_named_declaration",xI=110930,oI=92862,rV="??=",aI=70440,K6="while",su="camlinternalFormat.ml",cI=43782,eV=203,sI=173791,vI=11263,lI=1114111,bI=42969,W6=70750,rc="jsx_identifier",pI=70105,mI=43014,_I=11564,ec="typeof_type",nV="EEXIST",yI=64847,hI=71167,dI=42511,kI=72712,wI=92995,EI=43704,tl=121,nc="object_call_property_type",SI=64433,ul="operator",J6=68296,tc="class_decorator",uc=120,ic="for_of_statement_lhs",gI=11623,FI=67004,TI=71999,OI=70708,II=512,AI=110927,NI=71423,tV=32752,CI=93951,PI=12292,fc="object_type",$6="types",DI=110580,uV=177,LI=126633,RI=12686,xc=8286,iV=144,jI=73647,fV=228,Z6=70855,l1="0x",GI=70366,MI=` +`,oc="variable_declaration",BI=65276,Q6=119981,qI=71945,UI=43887,j7=105,HI=8335,XI=123565,YI=69505,VI=70187,ac="jsx_attribute_name_identifier",cc="source",sc="pattern_object_property_key",rp=65548,zI=66175,KI=92766,vc="pattern_assignment_pattern",lc="object_type_property_getter",ep=8305,G7="generator",np="for",xV="PropertyDefinition",oV="--",vu=-36,WI="mkdir",JI=68223,bc="generic_qualified_identifier_type",$I=11686,pc="jsx_closing_element",ZI=43790,tp=": No such file or directory",QI=69687,rA=66348,up=72162,eA=43388,nA=72768,tA=68351,h="<2>",ip=64297,uA=125259,iA=220,zr=",@ ",aV="win32",fp=70281,mc="member_property_identifier",fA=68149,xA=68111,oA=71450,aA=43009,_c="member_property",cA=73458,yi="identifier",sA=67423,vA=66775,lA=110951,cV="Internal Error: Found object private prop",yc="super_expression",hc="jsx_opening_element",bA=177976,dc="variable_declarator_pattern",kc="pattern_expression",wc="jsx_member_expression_object",pA=68252,mA=77808,Nv=-835925911,Ec="import_declaration",_A=55203,sV="Pervasives.do_at_exit",vV="utf8",ii="key",yA=43702,Sc="spread_property",xp=126563,hA=863850040,dA=70106,op=67592,gc="function_expression_or_method",kA=71958,Fc="for_init_declaration",wA=71955,ap=123214,EA=68479,lV="==",SA=43019,gA=123180,cp=217,Cv="specifiers",Tc="function_body",FA=69622,sp=8487,TA=43641,bV="Unexpected token `",pV="v",OA=123135,IA=69295,vp=120093,AA=8521,lp=43642,mV=176;function Ku0(t,n,e,i,x){if(i<=n)for(var c=1;c<=x;c++)e[i+c]=t[n+c];else for(var c=x;c>=1;c--)e[i+c]=t[n+c];return 0}function Wu0(t){for(var n=[0];t!==0;){for(var e=t[1],i=1;i=e.l||e.t==2&&x>=e.c.length))e.c=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else if(e.t==2&&i==e.c.length)e.c+=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else{e.t!=4&&bp(e);var c=t.c,s=e.c;if(t.t==4)if(i<=n)for(var p=0;p=0;p--)s[i+p]=c[n+p];else{for(var y=Math.min(x,c.length-n),p=0;p>=1,t==0)return e;n+=n,i++,i==9&&n.slice(0,1)}}function Dv(t){t.t==2?t.c+=Pv(t.l-t.c.length,"\0"):t.c=NA(t.c,0,t.c.length),t.t=0}function _V(t){if(t.length<24){for(var n=0;nzn)return!1;return!0}else return!/[^\x00-\x7f]/.test(t)}function CA(t){for(var n=C,e=C,i,x,c,s,p=0,y=t.length;pII?(e.substr(0,1),n+=e,e=C,n+=t.slice(p,T)):e+=t.slice(p,T),T==y)break;p=T}s=1,++p=55295&&s<57344)&&(s=2)):(s=3,++p1114111)&&(s=3)))))),s<4?(p-=s,e+="\uFFFD"):s>Li?e+=String.fromCharCode(55232+(s>>10),NH+(s&1023)):e+=String.fromCharCode(s),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function Oc(t,n,e){this.t=t,this.c=n,this.l=e}Oc.prototype.toString=function(){switch(this.t){case 9:return this.c;default:Dv(this);case 0:if(_V(this.c))return this.t=9,this.c;this.t=8;case 8:return this.c}},Oc.prototype.toUtf16=function(){var t=this.toString();return this.t==9?t:CA(t)},Oc.prototype.slice=function(){var t=this.t==4?this.c.slice():this.c;return new Oc(this.t,t,this.l)};function yV(t){return new Oc(0,t,t.length)}function r(t){return yV(t)}function PA(t,n){$u0(t,r(n))}var zt=[0];function lu(t){PA(zt.Invalid_argument,t)}function hV(){lu(qS)}function Jn(t,n,e){if(e&=us,t.t!=4){if(n==t.c.length)return t.c+=String.fromCharCode(e),n+1==t.l&&(t.t=0),0;bp(t)}return t.c[n]=e,0}function b1(t,n,e){return n>>>0>=t.l&&hV(),Jn(t,n,e)}function Xu(t,n){switch(t.t&6){default:if(n>=t.c.length)return 0;case 0:return t.c.charCodeAt(n);case 4:return t.c[n]}}function os(t,n){if(t.fun)return os(t.fun,n);if(typeof t!="function")return t;var e=t.length|0;if(e===0)return t.apply(null,n);var i=n.length|0,x=e-i|0;return x==0?t.apply(null,n):x<0?os(t.apply(null,n.slice(0,e)),n.slice(e)):function(){for(var c=arguments.length==0?1:arguments.length,s=new Array(n.length+c),p=0;p>>0>=t.length-1&&il(),t}function Zu0(t){return isFinite(t)?Math.abs(t)>=22250738585072014e-324?0:t!=0?1:2:isNaN(t)?4:3}function Ic(t){return(t.t&6)!=0&&Dv(t),t.c}var Qu0=Math.log2&&Math.log2(11235582092889474e291)==1020;function r70(t){if(Qu0)return Math.floor(Math.log2(t));var n=0;if(t==0)return-1/0;if(t>=1)for(;t>=2;)t/=2,n++;else for(;t<1;)t*=2,n--;return n}function DA(t){var n=new z0.Float32Array(1);n[0]=t;var e=new z0.Int32Array(n.buffer);return e[0]|0}var dV=Math.pow(2,-24);function kV(t){throw t}function wV(){kV(zt.Division_by_zero)}function sn(t,n,e){this.lo=t&Ex,this.mi=n&Ex,this.hi=e&Li}sn.prototype.caml_custom="_j",sn.prototype.copy=function(){return new sn(this.lo,this.mi,this.hi)},sn.prototype.ucompare=function(t){return this.hi>t.hi?1:this.hit.mi?1:this.mit.lo?1:this.loe?1:nt.mi?1:this.mit.lo?1:this.lo>24),e=-this.hi+(n>>24);return new sn(t,n,e)},sn.prototype.add=function(t){var n=this.lo+t.lo,e=this.mi+t.mi+(n>>24),i=this.hi+t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.sub=function(t){var n=this.lo-t.lo,e=this.mi-t.mi+(n>>24),i=this.hi-t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.mul=function(t){var n=this.lo*t.lo,e=(n*dV|0)+this.mi*t.lo+this.lo*t.mi,i=(e*dV|0)+this.hi*t.lo+this.mi*t.mi+this.lo*t.hi;return new sn(n,e,i)},sn.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0},sn.prototype.isNeg=function(){return this.hi<<16<0},sn.prototype.and=function(t){return new sn(this.lo&t.lo,this.mi&t.mi,this.hi&t.hi)},sn.prototype.or=function(t){return new sn(this.lo|t.lo,this.mi|t.mi,this.hi|t.hi)},sn.prototype.xor=function(t){return new sn(this.lo^t.lo,this.mi^t.mi,this.hi^t.hi)},sn.prototype.shift_left=function(t){return t=t&63,t==0?this:t<24?new sn(this.lo<>24-t,this.hi<>24-t):t<48?new sn(0,this.lo<>48-t):new sn(0,0,this.lo<>t|this.mi<<24-t,this.mi>>t|this.hi<<24-t,this.hi>>t):t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi>>t-24,0):new sn(this.hi>>t-48,0,0)},sn.prototype.shift_right=function(t){if(t=t&63,t==0)return this;var n=this.hi<<16>>16;if(t<24)return new sn(this.lo>>t|this.mi<<24-t,this.mi>>t|n<<24-t,this.hi<<16>>t>>>16);var e=this.hi<<16>>31;return t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi<<16>>t-24>>16,e&Li):new sn(this.hi<<16>>t-32,e,e)},sn.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&Ex,this.lo=this.lo<<1&Ex},sn.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&Ex,this.mi=(this.mi>>>1|this.hi<<23)&Ex,this.hi=this.hi>>>1},sn.prototype.udivmod=function(t){for(var n=0,e=this.copy(),i=t.copy(),x=new sn(0,0,0);e.ucompare(i)>0;)n++,i.lsl1();for(;n>=0;)n--,x.lsl1(),e.ucompare(i)>=0&&(x.lo++,e=e.sub(i)),i.lsr1();return{quotient:x,modulus:e}},sn.prototype.div=function(t){var n=this;t.isZero()&&wV();var e=n.hi^t.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).quotient;return e&Mi&&(i=i.neg()),i},sn.prototype.mod=function(t){var n=this;t.isZero()&&wV();var e=n.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).modulus;return e&Mi&&(i=i.neg()),i},sn.prototype.toInt=function(){return this.lo|this.mi<<24},sn.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo},sn.prototype.toArray=function(){return[this.hi>>8,this.hi&us,this.mi>>16,this.mi>>8&us,this.mi&us,this.lo>>16,this.lo>>8&us,this.lo&us]},sn.prototype.lo32=function(){return this.lo|(this.mi&us)<<24},sn.prototype.hi32=function(){return this.mi>>>8&Li|this.hi<<16};function pp(t,n,e){return new sn(t,n,e)}function mp(t){if(!isFinite(t))return isNaN(t)?pp(1,0,tV):t>0?pp(0,0,tV):pp(0,0,65520);var n=t==0&&1/t==-1/0?Mi:t>=0?0:Mi;n&&(t=-t);var e=r70(t)+1023;e<=0?(e=0,t/=Math.pow(2,-rH)):(t/=Math.pow(2,e-uU),t<16&&(t*=2,e-=1),e==0&&(t/=2));var i=Math.pow(2,24),x=t|0;t=(t-x)*i;var c=t|0;t=(t-c)*i;var s=t|0;return x=x&eF|n|e<<4,pp(s,c,x)}function fl(t){return t.toArray()}function EV(t,n,e){if(t.write(32,n.dims.length),t.write(32,n.kind|n.layout<<8),n.caml_custom==v3)for(var i=0;i>4;if(x==nX)return(n|e|i&eF)==0?i&Mi?-1/0:1/0:NaN;var c=Math.pow(2,-24),s=(n*c+e)*c+(i&eF);return x>0?(s+=16,s*=Math.pow(2,x-uU)):s*=Math.pow(2,-rH),i&Mi&&(s=-s),s}function jA(t){for(var n=t.length,e=1,i=0;i>>24&us|(n&Li)<<8,n>>>16&Li)}function GA(t){return t.hi32()}function MA(t){return t.lo32()}var t70=v3;function Os(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Os.prototype.caml_custom=t70,Os.prototype.offset=function(t){var n=0;if(typeof t=="number"&&(t=[t]),t instanceof Array||lu("bigarray.js: invalid offset"),this.dims.length!=t.length&&lu("Bigarray.get/set: bad number of dimensions"),this.layout==0)for(var e=0;e=this.dims[e])&&il(),n=n*this.dims[e]+t[e];else for(var e=this.dims.length-1;e>=0;e--)(t[e]<1||t[e]>this.dims[e])&&il(),n=n*this.dims[e]+(t[e]-1);return n},Os.prototype.get=function(t){switch(this.kind){case 7:var n=this.data[t*2+0],e=this.data[t*2+1];return n70(n,e);case 10:case 11:var i=this.data[t*2+0],x=this.data[t*2+1];return[gv,i,x];default:return this.data[t]}},Os.prototype.set=function(t,n){switch(this.kind){case 7:this.data[t*2+0]=MA(n),this.data[t*2+1]=GA(n);break;case 10:case 11:this.data[t*2+0]=n[1],this.data[t*2+1]=n[2];break;default:this.data[t]=n;break}return 0},Os.prototype.fill=function(t){switch(this.kind){case 7:var n=MA(t),e=GA(t);if(n==e)this.data.fill(n);else for(var i=0;is)return 1;if(c!=s){if(!n)return NaN;if(c==c)return 1;if(s==s)return-1}}break;case 7:for(var x=0;xt.data[x+1])return 1;if(this.data[x]>>>0>>0)return-1;if(this.data[x]>>>0>t.data[x]>>>0)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(var x=0;xt.data[x])return 1}break}return 0};function Lv(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Lv.prototype=new Os,Lv.prototype.offset=function(t){return typeof t!="number"&&(t instanceof Array&&t.length==1?t=t[0]:lu("Ml_Bigarray_c_1_1.offset")),(t<0||t>=this.dims[0])&&il(),t},Lv.prototype.get=function(t){return this.data[t]},Lv.prototype.set=function(t,n){return this.data[t]=n,0},Lv.prototype.fill=function(t){return this.data.fill(t),0};function gV(t,n,e,i){var x=SV(t);return jA(e)*x!=i.length&&lu("length doesn't match dims"),n==0&&e.length==1&&x==1?new Lv(t,n,e,i):new Os(t,n,e,i)}function n7(t){PA(zt.Failure,t)}function FV(t,n,e){var i=t.read32s();(i<0||i>16)&&n7("input_value: wrong number of bigarray dimensions");var x=t.read32s(),c=x&us,s=x>>8&1,p=[];if(e==v3)for(var y=0;y>>32-15,n=OV(n,461845907),t^=n,t=t<<13|t>>>32-13,(t+(t<<2)|0)+-430675100|0}function u70(t,n){return t=as(t,MA(n)),t=as(t,GA(n)),t}function IV(t,n){return u70(t,mp(n))}function AV(t){var n=jA(t.dims),e=0;switch(t.kind){case 2:case 3:case 12:n>N4&&(n=N4);var i=0,x=0;for(x=0;x+4<=t.data.length;x+=4)i=t.data[x+0]|t.data[x+1]<<8|t.data[x+2]<<16|t.data[x+3]<<24,e=as(e,i);switch(i=0,n&3){case 3:i=t.data[x+2]<<16;case 2:i|=t.data[x+1]<<8;case 1:i|=t.data[x+0],e=as(e,i)}break;case 4:case 5:n>jt&&(n=jt);var i=0,x=0;for(x=0;x+2<=t.data.length;x+=2)i=t.data[x+0]|t.data[x+1]<<16,e=as(e,i);(n&1)!=0&&(e=as(e,t.data[x]));break;case 6:n>64&&(n=64);for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32),n*=2;for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32);for(var x=0;x0?x(n,t,i):x(t,n,i);if(i&&c!=c)return e;if(+c!=+c)return+c;if((c|0)!=0)return c|0}return e}function _p(t){return t instanceof Oc}function qA(t){return _p(t)}function PV(t){if(typeof t=="number")return Q2;if(_p(t))return Y2;if(qA(t))return 1252;if(t instanceof Array&&t[0]===t[0]>>>0&&t[0]<=gw){var n=t[0]|0;return n==gv?0:n}else{if(t instanceof String)return AY;if(typeof t=="string")return AY;if(t instanceof Number)return Q2;if(t&&t.caml_custom)return HO;if(t&&t.compare)return 1256;if(typeof t=="function")return 1247;if(typeof t=="symbol")return 1251}return 1001}function Ac(t,n){return tn.c?1:0}function Ee(t,n){return DV(t,n)}function yp(t,n,e){for(var i=[];;){if(!(e&&t===n)){var x=PV(t);if(x==nl){t=t[1];continue}var c=PV(n);if(c==nl){n=n[1];continue}if(x!==c)return x==Q2?c==HO?CV(t,n,-1,e):-1:c==Q2?x==HO?CV(n,t,1,e):1:xn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1001:if(tn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1251:if(t!==n)return e?1:NaN;break;case 1252:var t=Ic(t),n=Ic(n);if(t!==n){if(tn)return 1}break;case 12520:var t=t.toString(),n=n.toString();if(t!==n){if(tn)return 1}break;case 246:case 254:default:if(t.length!=n.length)return t.length1&&i.push(t,n,1);break}}if(i.length==0)return 0;var y=i.pop();n=i.pop(),t=i.pop(),y+10)if(n==0&&(e>=t.l||t.t==2&&e>=t.c.length))i==0?(t.c=C,t.t=2):(t.c=Pv(e,String.fromCharCode(i)),t.t=e==t.l?0:2);else for(t.t!=4&&bp(t),e+=n;n0&&n===n||(t=t.replace(/_/g,C),n=+t,t.length>0&&n===n||/^[+-]?nan$/i.test(t)))return n;var e=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)p([+-]?[0-9]+)/i.exec(t);if(e){var i=e[3].replace(/0+$/,C),x=parseInt(e[1]+e[2]+i,16),c=(e[4]|0)-4*i.length;return n=x*Math.pow(2,c),n}if(/^\+?inf(inity)?$/i.test(t))return 1/0;if(/^-inf(inity)?$/i.test(t))return-1/0;n7("float_of_string")}function UA(t){t=Ic(t);var n=t.length;n>31&&lu("format_int: format too long");for(var e={justify:xs,signstyle:Fa,filler:pi,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:oY},i=0;i=0&&x<=9;)e.width=e.width*10+x,i++;i--;break;case".":for(e.prec=0,i++;x=t.charCodeAt(i)-48,x>=0&&x<=9;)e.prec=e.prec*10+x,i++;i--;case"d":case"i":e.signedconv=!0;case"u":e.base=10;break;case"x":e.base=16;break;case"X":e.base=16,e.uppercase=!0;break;case"o":e.base=8;break;case"e":case"f":case"g":e.signedconv=!0,e.conv=x;break;case"E":case"F":case"G":e.signedconv=!0,e.uppercase=!0,e.conv=x.toLowerCase();break}}return e}function HA(t,n){t.uppercase&&(n=n.toUpperCase());var e=n.length;t.signedconv&&(t.sign<0||t.signstyle!=Fa)&&e++,t.alternate&&(t.base==8&&(e+=1),t.base==16&&(e+=2));var i=C;if(t.justify==xs&&t.filler==pi)for(var x=e;x20?(w-=20,E/=Math.pow(10,w),E+=new Array(w+1).join(Zu),d>0&&(E=E+Lo+new Array(d+1).join(Zu)),E):E.toFixed(d)}var i,x=UA(t),c=x.prec<0?6:x.prec;if((n<0||n==0&&1/n==-1/0)&&(x.sign=-1,n=-n),isNaN(n))i=sw,x.filler=pi;else if(!isFinite(n))i="inf",x.filler=pi;else switch(x.conv){case"e":var i=n.toExponential(c),s=i.length;i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break;case"f":i=e(n,c);break;case"g":c=c||1,i=n.toExponential(c-1);var p=i.indexOf(ny),y=+i.slice(p+1);if(y<-4||n>=1e21||n.toFixed(0).length>c){for(var s=p-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)+i.slice(p),s=i.length,i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break}else{var T=c;if(y<0)T-=y+1,i=n.toFixed(T);else for(;i=n.toFixed(T),i.length>c+1;)T--;if(T){for(var s=i.length-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)}}break}return HA(x,i)}function hp(t,n){if(Ic(t)==N2)return r(C+n);var e=UA(t);n<0&&(e.signedconv?(e.sign=-1,n=-n):n>>>=0);var i=n.toString(e.base);if(e.prec>=0){e.filler=pi;var x=e.prec-i.length;x>0&&(i=Pv(x,Zu)+i)}return HA(e,i)}var jV=0;function M7(){return jV++}function l70(){return 0}function GV(){return[0]}var dp=[];function Qe(t,n,e){var i=t[1],x=dp[e];if(x===void 0)for(var c=dp.length;c>1|1,nII?(e.substr(0,1),n+=e,e=C,n+=t.slice(c,p)):e+=t.slice(c,p),p==s)break;c=p}i>6),e+=String.fromCharCode(Pi|i&Ov)):i<55296||i>=SH?e+=String.fromCharCode(HY|i>>12,Pi|i>>6&Ov,Pi|i&Ov):i>=56319||c+1==s||(x=t.charCodeAt(c+1))SH?e+="\xEF\xBF\xBD":(c++,i=(i<<10)+x-56613888,e+=String.fromCharCode(LX|i>>18,Pi|i>>12&Ov,Pi|i>>6&Ov,Pi|i&Ov)),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function p70(t){var n=9;return _V(t)||(n=8,t=b70(t)),new Oc(n,t,t.length)}function B7(t){return p70(t)}function m70(t,n,e){if(!isFinite(t))return isNaN(t)?B7(sw):B7(t>0?mU:"-infinity");var i=t==0&&1/t==-1/0?1:t>=0?0:1;i&&(t=-t);var x=0;if(t!=0)if(t<1)for(;t<1&&x>-BX;)t*=2,x--;else for(;t>=2;)t/=2,x++;var c=x<0?C:xs,s=C;if(i)s=Fa;else switch(e){case 43:s=xs;break;case 32:s=pi;break;default:break}if(n>=0&&n<13){var p=Math.pow(2,n*4);t=Math.round(t*p)/p}var y=t.toString(16);if(n>=0){var T=y.indexOf(Lo);if(T<0)y+=Lo+Pv(n,Zu);else{var E=T+1+n;y.length>24&Ex,t>>31&Li)}function y70(t){return t.toInt()}function h70(t){return+t.isNeg()}function MV(t){return t.neg()}function d70(t,n){var e=UA(t);e.signedconv&&h70(n)&&(e.sign=-1,n=MV(n));var i=C,x=kp(e.base),c="0123456789abcdef";do{var s=n.udivmod(x);n=s.quotient,i=c.charAt(y70(s.modulus))+i}while(!_70(n));if(e.prec>=0){e.filler=pi;var p=e.prec-i.length;p>0&&(i=Pv(p,Zu)+i)}return HA(e,i)}function b7(t){return t.l}function un(t){return b7(t)}function Vr(t,n){return Xu(t,n)}function k70(t,n){return t.add(n)}function w70(t,n){return t.mul(n)}function YA(t,n){return t.ucompare(n)<0}function BV(t){var n=0,e=un(t),i=10,x=1;if(e>0)switch(Vr(t,n)){case 45:n++,x=-1;break;case 43:n++,x=1;break}if(n+1=48&&t<=57?t-48:t>=65&&t<=90?t-55:t>=97&&t<=In?t-87:-1}function Rv(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=kp(x),s=new sn(Ex,268435455,Li).udivmod(c).quotient,p=Vr(t,e),y=wp(p);(y<0||y>=x)&&n7(ns);for(var T=kp(y);;)if(e++,p=Vr(t,e),p!=95){if(y=wp(p),y<0||y>=x)break;YA(s,T)&&n7(ns),y=kp(y),T=k70(w70(c,T),y),YA(T,y)&&n7(ns)}return e!=un(t)&&n7(ns),x==10&&YA(new sn(0,0,Mi),T)&&n7(ns),i<0&&(T=MV(T)),T}function jv(t){return t.toFloat()}function Bi(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=un(t),s=-1>>>0,p=e=x)&&n7(ns);var T=y;for(e++;e=x)break;T=x*T+y,T>s&&n7(ns)}return e!=c&&n7(ns),T=i*T,x==10&&(T|0)!=T&&n7(ns),T|0}function E70(t){return t.slice(1)}function S70(t){return!!t}function bn(t){return t.toUtf16()}function g70(t){for(var n={},e=1;e1&&i.pop();break;case".":break;default:i.push(e[x]);break}return i.unshift(n[0]),i.orig=t,i}var A70=["E2BIG","EACCES","EAGAIN","EBADF","EBUSY","ECHILD","EDEADLK","EDOM",nV,"EFAULT","EFBIG","EINTR","EINVAL","EIO","EISDIR","EMFILE","EMLINK","ENAMETOOLONG","ENFILE","ENODEV",vh,"ENOEXEC","ENOLCK","ENOMEM","ENOSPC","ENOSYS",yw,PU,"ENOTTY","ENXIO","EPERM","EPIPE","ERANGE","EROFS","ESPIPE","ESRCH","EXDEV","EWOULDBLOCK","EINPROGRESS","EALREADY","ENOTSOCK","EDESTADDRREQ","EMSGSIZE","EPROTOTYPE","ENOPROTOOPT","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EOPNOTSUPP","EPFNOSUPPORT","EAFNOSUPPORT","EADDRINUSE","EADDRNOTAVAIL","ENETDOWN","ENETUNREACH","ENETRESET","ECONNABORTED","ECONNRESET","ENOBUFS","EISCONN","ENOTCONN","ESHUTDOWN","ETOOMANYREFS","ETIMEDOUT","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ELOOP","EOVERFLOW"];function m1(t,n,e,i){var x=A70.indexOf(t);x<0&&(i==null&&(i=-9999),x=[0,i]);var c=[x,B7(n||C),B7(e||C)];return c}var HV={};function _1(t){return HV[t]}function y1(t,n){throw[0,t].concat(n)}function N70(t){return new Oc(4,t,t.length)}function C70(t){t=Ic(t),at(t+tp)}function P70(t,n){return n>>>0>=t.l&&hV(),Xu(t,n)}function XV(){}function gu(t){this.data=t}gu.prototype=new XV,gu.prototype.truncate=function(t){var n=this.data;this.data=Lt(t|0),Fs(n,0,this.data,0,t)},gu.prototype.length=function(){return b7(this.data)},gu.prototype.write=function(t,n,e,i){var x=this.length();if(t+i>=x){var c=Lt(t+i),s=this.data;this.data=c,Fs(s,0,this.data,0,x)}return Ts(n,e,this.data,t,i),0},gu.prototype.read=function(t,n,e,i){var x=this.length();return Fs(this.data,t,n,e,i),0},gu.prototype.read_one=function(t){return P70(this.data,t)},gu.prototype.close=function(){},gu.prototype.constructor=gu;function t7(t,n){this.content={},this.root=t,this.lookupFun=n}t7.prototype.nm=function(t){return this.root+t},t7.prototype.create_dir_if_needed=function(t){for(var n=t.split(Qu),e=C,i=0;izt.fd_last_idx)&&(zt.fd_last_idx=t),t}function loe(t,n,e){for(var i={};n;){switch(n[1]){case 0:i.rdonly=1;break;case 1:i.wronly=1;break;case 2:i.append=1;break;case 3:i.create=1;break;case 4:i.truncate=1;break;case 5:i.excl=1;break;case 6:i.binary=1;break;case 7:i.text=1;break;case 8:i.nonblock=1;break}n=n[2]}i.rdonly&&i.wronly&&at(Ic(t)+FY),i.text&&i.binary&&at(Ic(t)+tY);var x=R70(t),c=x.device.open(x.rest,i),s=zt.fd_last_idx?zt.fd_last_idx:0;return Sp(s+1,VV,c,i)}Sp(0,VV,new gu(Lt(0))),Sp(1,G70,new gu(Lt(0))),Sp(2,j70,new gu(Lt(0)));function M70(t){var n=zt.fds[t];n.flags.wronly&&at(pX+t+" is writeonly");var e=null;if(t==0&&qV()){var i=kj();e=function(){return B7(i.readFileSync(0,vV))}}var x={file:n.file,offset:n.offset,fd:t,opened:!0,out:!1,refill:e};return Nc[x.fd]=x,x.fd}function zV(t){var n=zt.fds[t];n.flags.rdonly&&at(pX+t+" is readonly");var e={file:n.file,offset:n.offset,fd:t,opened:!0,out:!0,buffer:C};return Nc[e.fd]=e,e.fd}function B70(){for(var t=0,n=0;n>>0?t[0]:_p(t)||qA(t)?Y2:t instanceof Function||typeof t=="function"?Dw:t&&t.caml_custom?gw:Q2}function hi(t,n,e){e&&z0.toplevelReloc&&(t=z0.toplevelReloc(e)),zt[t+1]=n,e&&(zt[e]=n)}function WA(t,n){return HV[Ic(t)]=n,0}function H70(t){return t[2]=jV++,t}function X70(t,n){return t===n?1:(t.t&6&&Dv(t),n.t&6&&Dv(n),t.c==n.c?1:0)}function qn(t,n){return X70(t,n)}function Y70(){lu(qS)}function It(t,n){return n>>>0>=un(t)&&Y70(),Vr(t,n)}function n0(t,n){return 1-qn(t,n)}function V70(){return[0,r("js_of_ocaml")]}function z70(){return 2147483647/4|0}function K70(t){return 0}var W70=z0.process&&z0.process.platform&&z0.process.platform==aV?jU:"Unix";function J70(){return[0,r(W70),32,0]}function $70(){kV(zt.Not_found)}function WV(t){var n=z0,e=bn(t);if(n.process&&n.process.env&&n.process.env[e]!=null)return B7(n.process.env[e]);if(z0.jsoo_static_env&&z0.jsoo_static_env[e])return B7(z0.jsoo_static_env[e]);$70()}function JA(t){for(var n=1;t&&t.joo_tramp;)t=t.joo_tramp.apply(null,t.joo_args),n++;return t}function Tu(t,n){return{joo_tramp:t,joo_args:n}}function N(t,n){if(typeof n=="function")return t.fun=n,0;if(n.fun)return t.fun=n.fun,0;for(var e=n.length;e--;)t[e]=n[e];return 0}function poe(t){return t}function Et(t){return t instanceof Array?t:z0.RangeError&&t instanceof z0.RangeError&&t.message&&t.message.match(/maximum call stack/i)||z0.InternalError&&t instanceof z0.InternalError&&t.message&&t.message.match(/too much recursion/i)?zt.Stack_overflow:t instanceof z0.Error&&_1(KO)?[0,_1(KO),t]:[0,zt.Failure,B7(String(t))]}function Z70(t){switch(t[2]){case-8:case-11:case-12:return 1;default:return 0}}function Q70(t){var n=C;if(t[0]==0){if(n+=t[1][1],t.length==3&&t[2][0]==0&&Z70(t[1]))var i=t[2],e=1;else var e=2,i=t;n+=HX;for(var x=e;xe&&(n+=$H);var c=i[x];typeof c=="number"?n+=c.toString():c instanceof Oc||typeof c=="string"?n+=V2+c.toString()+V2:n+=bv}n+=Z0}else t[0]==wt&&(n+=t[1]);return n}function JV(t){if(t instanceof Array&&(t[0]==0||t[0]==wt)){var n=_1(LH);if(n)n(t,!1);else{var e=Q70(t),i=_1(sV);i&&i(0),z0.console.error(yd+e+$Y)}}else throw t}function ri0(){var t=z0;t.process&&t.process.on?t.process.on("uncaughtException",function(n,e){JV(n),t.process.exit(2)}):t.addEventListener&&t.addEventListener("error",function(n){n.error&&JV(n.error)})}ri0();function u(t,n){return t.length==1?t(n):os(t,[n])}function o(t,n,e){return t.length==2?t(n,e):os(t,[n,e])}function ur(t,n,e,i){return t.length==3?t(n,e,i):os(t,[n,e,i])}function R(t,n,e,i,x){return t.length==4?t(n,e,i,x):os(t,[n,e,i,x])}function p7(t,n,e,i,x,c){return t.length==5?t(n,e,i,x,c):os(t,[n,e,i,x,c])}function ei0(t,n,e,i,x,c,s,p){return t.length==7?t(n,e,i,x,c,s,p):os(t,[n,e,i,x,c,s,p])}var $A=[wt,r(wX),-1],$V=[wt,r(DH),-2],q7=[wt,r(AH),-3],ZA=[wt,r(fH),-4],Jt=[wt,r(KU),-7],ZV=[wt,r(LY),-8],QV=[wt,r(VU),-9],Sn=[wt,r(wU),-11],sl=[wt,r(uX),-12],rz=[0,s7],ni0=[4,0,0,0,[12,45,[4,0,0,0,0]]],QA=[0,[11,r('File "'),[2,0,[11,r('", line '),[4,0,0,0,[11,r(yH),[4,0,0,0,[12,45,[4,0,0,0,[11,r(": "),[2,0,0]]]]]]]]]],r('File "%s", line %d, characters %d-%d: %s')],ez=[0,0,[0,0,0],[0,0,0]],rN=r(""),eN=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),Bv=[0,0,0,0,1,0],nz=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(De),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],tz=[0,r("first_leading"),r("last_trailing")],uz=[0,0];hi(11,sl,uX),hi(10,Sn,wU),hi(9,[wt,r(dY),CX],dY),hi(8,QV,VU),hi(7,ZV,LY),hi(6,Jt,KU),hi(5,[wt,r(rY),-6],rY),hi(4,[wt,r(IH),-5],IH),hi(3,ZA,fH),hi(2,q7,AH),hi(1,$V,DH),hi(0,$A,wX);var ti0=r("output_substring"),ui0=r("%.12g"),ii0=r(Lo),fi0=r(Gi),xi0=r(Ci),oi0=r(uY),ai0=r("\\'"),ci0=r("\\b"),si0=r("\\t"),vi0=r("\\n"),li0=r("\\r"),bi0=r("List.iter2"),pi0=r("tl"),mi0=r("hd"),_i0=r("String.blit / Bytes.blit_string"),yi0=r("Bytes.blit"),hi0=r("String.sub / Bytes.sub"),di0=r("Array.blit"),ki0=r("Array.sub"),wi0=r("Map.remove_min_elt"),Ei0=[0,0,0,0],Si0=[0,r("map.ml"),400,10],gi0=[0,0,0],Fi0=r(e6),Ti0=r(e6),Oi0=r(e6),Ii0=r(e6),Ai0=r("Stdlib.Queue.Empty"),Ni0=r("CamlinternalLazy.Undefined"),Ci0=r("Buffer.add_substring/add_subbytes"),Pi0=r("Buffer.add: cannot grow buffer"),Di0=[0,r(GU),93,2],Li0=[0,r(GU),94,2],Ri0=r("Buffer.sub"),ji0=r("%c"),Gi0=r("%s"),Mi0=r(oX),Bi0=r(MY),qi0=r(xH),Ui0=r(YH),Hi0=r("%f"),Xi0=r(An),Yi0=r("%{"),Vi0=r("%}"),zi0=r("%("),Ki0=r("%)"),Wi0=r(N0),Ji0=r("%t"),$i0=r("%?"),Zi0=r("%r"),Qi0=r("%_r"),rf0=[0,r(su),850,23],ef0=[0,r(su),814,21],nf0=[0,r(su),815,21],tf0=[0,r(su),818,21],uf0=[0,r(su),819,21],if0=[0,r(su),822,19],ff0=[0,r(su),823,19],xf0=[0,r(su),826,22],of0=[0,r(su),827,22],af0=[0,r(su),831,30],cf0=[0,r(su),832,30],sf0=[0,r(su),836,26],vf0=[0,r(su),837,26],lf0=[0,r(su),846,28],bf0=[0,r(su),847,28],pf0=[0,r(su),851,23],mf0=r(wY),_f0=[0,r(su),1558,4],yf0=r("Printf: bad conversion %["),hf0=[0,r(su),1626,39],df0=[0,r(su),1649,31],kf0=[0,r(su),1650,31],wf0=r("Printf: bad conversion %_"),Ef0=r(SY),Sf0=r(bY),gf0=r(SY),Ff0=r(bY),Tf0=[0,[11,r("invalid box description "),[3,0,0]],r("invalid box description %S")],Of0=r(C),If0=[0,0,4],Af0=r(C),Nf0=r(dX),Cf0=r("h"),Pf0=r("hov"),Df0=r("hv"),Lf0=r(pV),Rf0=r(sw),jf0=r("neg_infinity"),Gf0=r(mU),Mf0=r(Lo),Bf0=r("%+nd"),qf0=r("% nd"),Uf0=r("%+ni"),Hf0=r("% ni"),Xf0=r("%nx"),Yf0=r("%#nx"),Vf0=r("%nX"),zf0=r("%#nX"),Kf0=r("%no"),Wf0=r("%#no"),Jf0=r("%nd"),$f0=r(xH),Zf0=r("%nu"),Qf0=r("%+ld"),rx0=r("% ld"),ex0=r("%+li"),nx0=r("% li"),tx0=r("%lx"),ux0=r("%#lx"),ix0=r("%lX"),fx0=r("%#lX"),xx0=r("%lo"),ox0=r("%#lo"),ax0=r("%ld"),cx0=r(MY),sx0=r("%lu"),vx0=r("%+Ld"),lx0=r("% Ld"),bx0=r("%+Li"),px0=r("% Li"),mx0=r("%Lx"),_x0=r("%#Lx"),yx0=r("%LX"),hx0=r("%#LX"),dx0=r("%Lo"),kx0=r("%#Lo"),wx0=r("%Ld"),Ex0=r(YH),Sx0=r("%Lu"),gx0=r("%+d"),Fx0=r("% d"),Tx0=r("%+i"),Ox0=r("% i"),Ix0=r("%x"),Ax0=r("%#x"),Nx0=r("%X"),Cx0=r("%#X"),Px0=r("%o"),Dx0=r("%#o"),Lx0=r(N2),Rx0=r(oX),jx0=r(wY),Gx0=r(z),Mx0=r("@}"),Bx0=r("@?"),qx0=r(`@ +`),Ux0=r("@."),Hx0=r("@@"),Xx0=r("@%"),Yx0=r(gX),Vx0=r("CamlinternalFormat.Type_mismatch"),zx0=r(C),Kx0=[0,[11,r($H),[2,0,[2,0,0]]],r(", %s%s")],Wx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],Jx0=[0,[11,r("Fatal error in uncaught exception handler: exception "),[2,0,[12,10,0]]],r(`Fatal error in uncaught exception handler: exception %s +`)],$x0=r("Fatal error: out of memory in uncaught exception handler"),Zx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],Qx0=[0,[2,0,[12,10,0]],r(`%s +`)],ro0=[0,[11,r(NY),0],r(NY)],eo0=r("Raised at"),no0=r("Re-raised at"),to0=r("Raised by primitive operation at"),uo0=r("Called from"),io0=r(" (inlined)"),fo0=r(C),xo0=[0,[2,0,[12,32,[2,0,[11,r(' in file "'),[2,0,[12,34,[2,0,[11,r(", line "),[4,0,0,0,[11,r(yH),ni0]]]]]]]]]],r('%s %s in file "%s"%s, line %d, characters %d-%d')],oo0=[0,[2,0,[11,r(" unknown location"),0]],r("%s unknown location")],ao0=r("Out of memory"),co0=r("Stack overflow"),so0=r("Pattern matching failed"),vo0=r("Assertion failed"),lo0=r("Undefined recursive module"),bo0=[0,[12,40,[2,0,[2,0,[12,41,0]]]],r("(%s%s)")],po0=r(C),mo0=r(C),_o0=[0,[12,40,[2,0,[12,41,0]]],r("(%s)")],yo0=[0,[4,0,0,0,0],r(N2)],ho0=[0,[3,0,0],r(Vt)],do0=r(bv),ko0=[0,r(C),r(`(Cannot print locations: + bytecode executable program file not found)`),r(`(Cannot print locations: + bytecode executable program file appears to be corrupt)`),r(`(Cannot print locations: + bytecode executable program file has wrong magic number)`),r(`(Cannot print locations: + bytecode executable program file cannot be opened; + -- too many open files. Try running with OCAMLRUNPARAM=b=2)`)],wo0=[3,0,3],Eo0=r(Lo),So0=r(cv),go0=r("Flow_ast.Function.BodyBlock@ ")],Ca0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Pa0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Da0=[0,[17,0,[12,41,0]],r(d0)],La0=[0,[17,0,[12,41,0]],r(d0)],Ra0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Function.BodyExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Function.BodyExpression@ ")],ja0=[0,[17,0,[12,41,0]],r(d0)],Ga0=[0,[15,0],r(N0)],Ma0=r(Yr),Ba0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qa0=r("Flow_ast.Function.id"),Ua0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ha0=r(tr),Xa0=r(Z0),Ya0=r(nr),Va0=[0,[17,0,0],r(z)],za0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ka0=r(Dt),Wa0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ja0=[0,[17,0,0],r(z)],$a0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Za0=r(Wn),Qa0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rc0=[0,[17,0,0],r(z)],ec0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nc0=r(gs),tc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uc0=[0,[9,0,0],r(An)],ic0=[0,[17,0,0],r(z)],fc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xc0=r(G7),oc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ac0=[0,[9,0,0],r(An)],cc0=[0,[17,0,0],r(z)],sc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vc0=r(r7),lc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bc0=r(tr),pc0=r(Z0),mc0=r(nr),_c0=[0,[17,0,0],r(z)],yc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hc0=r(Ju),dc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kc0=[0,[17,0,0],r(z)],wc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ec0=r(sv),Sc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gc0=r(tr),Fc0=r(Z0),Tc0=r(nr),Oc0=[0,[17,0,0],r(z)],Ic0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ac0=r(Xr),Nc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cc0=r(tr),Pc0=r(Z0),Dc0=r(nr),Lc0=[0,[17,0,0],r(z)],Rc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jc0=r("sig_loc"),Gc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Mc0=[0,[17,0,0],r(z)],Bc0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qc0=[0,[15,0],r(N0)],Uc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Xc0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Yc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zc0=r("Flow_ast.Function.Params.this_"),Kc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wc0=r(tr),Jc0=r(Z0),$c0=r(nr),Zc0=[0,[17,0,0],r(z)],Qc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rs0=r(Dt),es0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ns0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ts0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],us0=[0,[17,0,0],r(z)],is0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fs0=r(xd),xs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],os0=r(tr),as0=r(Z0),cs0=r(nr),ss0=[0,[17,0,0],r(z)],vs0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ls0=r(Xr),bs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ps0=r(tr),ms0=r(Z0),_s0=r(nr),ys0=[0,[17,0,0],r(z)],hs0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ds0=[0,[15,0],r(N0)],ks0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ws0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Es0=[0,[17,0,[12,41,0]],r(d0)],Ss0=[0,[15,0],r(N0)],gs0=r(Yr),Fs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ts0=r("Flow_ast.Function.ThisParam.annot"),Os0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Is0=[0,[17,0,0],r(z)],As0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ns0=r(Xr),Cs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ps0=r(tr),Ds0=r(Z0),Ls0=r(nr),Rs0=[0,[17,0,0],r(z)],js0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Gs0=[0,[15,0],r(N0)],Ms0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Bs0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],qs0=[0,[17,0,[12,41,0]],r(d0)],Us0=[0,[15,0],r(N0)],Hs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xs0=r("Flow_ast.Function.Param.argument"),Ys0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vs0=[0,[17,0,0],r(z)],zs0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ks0=r(_i),Ws0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Js0=r(tr),$s0=r(Z0),Zs0=r(nr),Qs0=[0,[17,0,0],r(z)],r10=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],e10=[0,[15,0],r(N0)],n10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],t10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],u10=[0,[17,0,[12,41,0]],r(d0)],i10=[0,[15,0],r(N0)],f10=r(Yr),x10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],o10=r("Flow_ast.Function.RestParam.argument"),a10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],c10=[0,[17,0,0],r(z)],s10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],v10=r(Xr),l10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b10=r(tr),p10=r(Z0),m10=r(nr),_10=[0,[17,0,0],r(z)],y10=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],h10=[0,[15,0],r(N0)],d10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],k10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],w10=[0,[17,0,[12,41,0]],r(d0)],E10=[0,[15,0],r(N0)],S10=r(Yr),g10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],T10=r("Flow_ast.Class.id"),O10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],I10=r(tr),A10=r(Z0),N10=r(nr),C10=[0,[17,0,0],r(z)],P10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],D10=r(Wn),L10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R10=[0,[17,0,0],r(z)],j10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G10=r(sv),M10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B10=r(tr),q10=r(Z0),U10=r(nr),H10=[0,[17,0,0],r(z)],X10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Y10=r(P7),V10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],z10=r(tr),K10=r(Z0),W10=r(nr),J10=[0,[17,0,0],r(z)],$10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Z10=r(ws),Q10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rv0=r(tr),ev0=r(Z0),nv0=r(nr),tv0=[0,[17,0,0],r(z)],uv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iv0=r("class_decorators"),fv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ov0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],av0=[0,[17,0,0],r(z)],cv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sv0=r(Xr),vv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lv0=r(tr),bv0=r(Z0),pv0=r(nr),mv0=[0,[17,0,0],r(z)],_v0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yv0=[0,[15,0],r(N0)],hv0=r(Yr),dv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],kv0=r("Flow_ast.Class.Decorator.expression"),wv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ev0=[0,[17,0,0],r(z)],Sv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gv0=r(Xr),Fv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tv0=r(tr),Ov0=r(Z0),Iv0=r(nr),Av0=[0,[17,0,0],r(z)],Nv0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Cv0=[0,[15,0],r(N0)],Pv0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dv0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Lv0=[0,[17,0,[12,41,0]],r(d0)],Rv0=[0,[15,0],r(N0)],jv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Body.Method"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Body.Method@ ")],Gv0=[0,[17,0,[12,41,0]],r(d0)],Mv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Body.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Body.Property@ ")],Bv0=[0,[17,0,[12,41,0]],r(d0)],qv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Body.PrivateField"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Body.PrivateField@ ")],Uv0=[0,[17,0,[12,41,0]],r(d0)],Hv0=[0,[15,0],r(N0)],Xv0=r(Yr),Yv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zv0=r("Flow_ast.Class.Body.body"),Kv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Jv0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$v0=[0,[17,0,0],r(z)],Zv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qv0=r(Xr),r20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e20=r(tr),n20=r(Z0),t20=r(nr),u20=[0,[17,0,0],r(z)],i20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],f20=[0,[15,0],r(N0)],x20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],o20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],a20=[0,[17,0,[12,41,0]],r(d0)],c20=[0,[15,0],r(N0)],s20=r(Yr),v20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],l20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],b20=r("Flow_ast.Class.Implements.interfaces"),p20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],_20=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],y20=[0,[17,0,0],r(z)],h20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],d20=r(Xr),k20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w20=r(tr),E20=r(Z0),S20=r(nr),g20=[0,[17,0,0],r(z)],F20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],T20=[0,[15,0],r(N0)],O20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],I20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],A20=[0,[17,0,[12,41,0]],r(d0)],N20=[0,[15,0],r(N0)],C20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P20=r("Flow_ast.Class.Implements.Interface.id"),D20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L20=[0,[17,0,0],r(z)],R20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j20=r(Z2),G20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],M20=r(tr),B20=r(Z0),q20=r(nr),U20=[0,[17,0,0],r(z)],H20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],X20=[0,[15,0],r(N0)],Y20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],V20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],z20=[0,[17,0,[12,41,0]],r(d0)],K20=[0,[15,0],r(N0)],W20=r(Yr),J20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$20=r("Flow_ast.Class.Extends.expr"),Z20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q20=[0,[17,0,0],r(z)],rl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],el0=r(Z2),nl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tl0=r(tr),ul0=r(Z0),il0=r(nr),fl0=[0,[17,0,0],r(z)],xl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ol0=r(Xr),al0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cl0=r(tr),sl0=r(Z0),vl0=r(nr),ll0=[0,[17,0,0],r(z)],bl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pl0=[0,[15,0],r(N0)],ml0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_l0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yl0=[0,[17,0,[12,41,0]],r(d0)],hl0=[0,[15,0],r(N0)],dl0=r(Yr),kl0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wl0=r("Flow_ast.Class.PrivateField.key"),El0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sl0=[0,[17,0,0],r(z)],gl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fl0=r(Bn),Tl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ol0=[0,[17,0,0],r(z)],Il0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Al0=r(Qc),Nl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cl0=[0,[17,0,0],r(z)],Pl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dl0=r(nu),Ll0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rl0=[0,[9,0,0],r(An)],jl0=[0,[17,0,0],r(z)],Gl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ml0=r(cu),Bl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ql0=r(tr),Ul0=r(Z0),Hl0=r(nr),Xl0=[0,[17,0,0],r(z)],Yl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vl0=r(Xr),zl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Kl0=r(tr),Wl0=r(Z0),Jl0=r(nr),$l0=[0,[17,0,0],r(z)],Zl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ql0=[0,[15,0],r(N0)],rb0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eb0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nb0=[0,[17,0,[12,41,0]],r(d0)],tb0=[0,[15,0],r(N0)],ub0=r("Flow_ast.Class.Property.Uninitialized"),ib0=r("Flow_ast.Class.Property.Declared"),fb0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Class.Property.Initialized"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Class.Property.Initialized@ ")],xb0=[0,[17,0,[12,41,0]],r(d0)],ob0=[0,[15,0],r(N0)],ab0=r(Yr),cb0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sb0=r("Flow_ast.Class.Property.key"),vb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lb0=[0,[17,0,0],r(z)],bb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pb0=r(Bn),mb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_b0=[0,[17,0,0],r(z)],yb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hb0=r(Qc),db0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kb0=[0,[17,0,0],r(z)],wb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eb0=r(nu),Sb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gb0=[0,[9,0,0],r(An)],Fb0=[0,[17,0,0],r(z)],Tb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ob0=r(cu),Ib0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ab0=r(tr),Nb0=r(Z0),Cb0=r(nr),Pb0=[0,[17,0,0],r(z)],Db0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Lb0=r(Xr),Rb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jb0=r(tr),Gb0=r(Z0),Mb0=r(nr),Bb0=[0,[17,0,0],r(z)],qb0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ub0=[0,[15,0],r(N0)],Hb0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xb0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yb0=[0,[17,0,[12,41,0]],r(d0)],Vb0=[0,[15,0],r(N0)],zb0=r(Yr),Kb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wb0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Jb0=r("Flow_ast.Class.Method.kind"),$b0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zb0=[0,[17,0,0],r(z)],Qb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r40=r(ii),e40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n40=[0,[17,0,0],r(z)],t40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u40=r(Bn),i40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],x40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],o40=[0,[17,0,[12,41,0]],r(d0)],a40=[0,[17,0,0],r(z)],c40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],s40=r(nu),v40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l40=[0,[9,0,0],r(An)],b40=[0,[17,0,0],r(z)],p40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],m40=r(j_),_40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],y40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],h40=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],d40=[0,[17,0,0],r(z)],k40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],w40=r(Xr),E40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S40=r(tr),g40=r(Z0),F40=r(nr),T40=[0,[17,0,0],r(z)],O40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],I40=[0,[15,0],r(N0)],A40=r("Flow_ast.Class.Method.Constructor"),N40=r("Flow_ast.Class.Method.Method"),C40=r("Flow_ast.Class.Method.Get"),P40=r("Flow_ast.Class.Method.Set"),D40=[0,[15,0],r(N0)],L40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j40=[0,[17,0,[12,41,0]],r(d0)],G40=[0,[15,0],r(N0)],M40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],B40=r("Flow_ast.Comment.kind"),q40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U40=[0,[17,0,0],r(z)],H40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X40=r("text"),Y40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V40=[0,[3,0,0],r(Vt)],z40=[0,[17,0,0],r(z)],K40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],W40=r("on_newline"),J40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$40=[0,[9,0,0],r(An)],Z40=[0,[17,0,0],r(z)],Q40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],r80=[0,[15,0],r(N0)],e80=r("Flow_ast.Comment.Line"),n80=r("Flow_ast.Comment.Block"),t80=[0,[15,0],r(N0)],u80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],i80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],f80=[0,[17,0,[12,41,0]],r(d0)],x80=[0,[15,0],r(N0)],o80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object@ ")],a80=[0,[17,0,[12,41,0]],r(d0)],c80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array@ ")],s80=[0,[17,0,[12,41,0]],r(d0)],v80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Identifier@ ")],l80=[0,[17,0,[12,41,0]],r(d0)],b80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Expression@ ")],p80=[0,[17,0,[12,41,0]],r(d0)],m80=[0,[15,0],r(N0)],_80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],y80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],h80=[0,[17,0,[12,41,0]],r(d0)],d80=[0,[15,0],r(N0)],k80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w80=r("Flow_ast.Pattern.Identifier.name"),E80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S80=[0,[17,0,0],r(z)],g80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F80=r(Qc),T80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O80=[0,[17,0,0],r(z)],I80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],A80=r(qu),N80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],C80=[0,[9,0,0],r(An)],P80=[0,[17,0,0],r(z)],D80=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],L80=[0,[15,0],r(N0)],R80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],G80=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],M80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],B80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q80=r("Flow_ast.Pattern.Array.elements"),U80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],X80=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Y80=[0,[17,0,0],r(z)],V80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],z80=r(Qc),K80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],W80=[0,[17,0,0],r(z)],J80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$80=r(Xr),Z80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q80=r(tr),r30=r(Z0),e30=r(nr),n30=[0,[17,0,0],r(z)],t30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],u30=[0,[15,0],r(N0)],i30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array.Element"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array.Element@ ")],f30=[0,[17,0,[12,41,0]],r(d0)],x30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array.RestElement"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array.RestElement@ ")],o30=[0,[17,0,[12,41,0]],r(d0)],a30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Array.Hole"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Array.Hole@ ")],c30=[0,[17,0,[12,41,0]],r(d0)],s30=[0,[15,0],r(N0)],v30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],l30=r("Flow_ast.Pattern.Array.Element.argument"),b30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],p30=[0,[17,0,0],r(z)],m30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_30=r(_i),y30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],h30=r(tr),d30=r(Z0),k30=r(nr),w30=[0,[17,0,0],r(z)],E30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],S30=[0,[15,0],r(N0)],g30=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],F30=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],T30=[0,[17,0,[12,41,0]],r(d0)],O30=[0,[15,0],r(N0)],I30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],A30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],N30=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],C30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],P30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D30=r("Flow_ast.Pattern.Object.properties"),L30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],j30=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],G30=[0,[17,0,0],r(z)],M30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],B30=r(Qc),q30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U30=[0,[17,0,0],r(z)],H30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X30=r(Xr),Y30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V30=r(tr),z30=r(Z0),K30=r(nr),W30=[0,[17,0,0],r(z)],J30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$30=[0,[15,0],r(N0)],Z30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property@ ")],Q30=[0,[17,0,[12,41,0]],r(d0)],r60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.RestElement"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.RestElement@ ")],e60=[0,[17,0,[12,41,0]],r(d0)],n60=[0,[15,0],r(N0)],t60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],u60=r("Flow_ast.Pattern.Object.Property.key"),i60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f60=[0,[17,0,0],r(z)],x60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],o60=r(mi),a60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],c60=[0,[17,0,0],r(z)],s60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],v60=r(_i),l60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b60=r(tr),p60=r(Z0),m60=r(nr),_60=[0,[17,0,0],r(z)],y60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],h60=r(f6),d60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],k60=[0,[9,0,0],r(An)],w60=[0,[17,0,0],r(z)],E60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],S60=[0,[15,0],r(N0)],g60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],F60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],T60=[0,[17,0,[12,41,0]],r(d0)],O60=[0,[15,0],r(N0)],I60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property.Literal@ ")],A60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],N60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],C60=[0,[17,0,[12,41,0]],r(d0)],P60=[0,[17,0,[12,41,0]],r(d0)],D60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property.Identifier@ ")],L60=[0,[17,0,[12,41,0]],r(d0)],R60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Pattern.Object.Property.Computed"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Pattern.Object.Property.Computed@ ")],j60=[0,[17,0,[12,41,0]],r(d0)],G60=[0,[15,0],r(N0)],M60=r(Yr),B60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q60=r("Flow_ast.Pattern.RestElement.argument"),U60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H60=[0,[17,0,0],r(z)],X60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Y60=r(Xr),V60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],z60=r(tr),K60=r(Z0),W60=r(nr),J60=[0,[17,0,0],r(z)],$60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z60=[0,[15,0],r(N0)],Q60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],rp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ep0=[0,[17,0,[12,41,0]],r(d0)],np0=[0,[15,0],r(N0)],tp0=r(Yr),up0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ip0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],fp0=r("Flow_ast.JSX.frag_opening_element"),xp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],op0=[0,[17,0,0],r(z)],ap0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cp0=r("frag_closing_element"),sp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vp0=[0,[17,0,0],r(z)],lp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bp0=r("frag_children"),pp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_p0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],hp0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],dp0=[0,[17,0,[12,41,0]],r(d0)],kp0=[0,[17,0,0],r(z)],wp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ep0=r("frag_comments"),Sp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gp0=r(tr),Fp0=r(Z0),Tp0=r(nr),Op0=[0,[17,0,0],r(z)],Ip0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ap0=[0,[15,0],r(N0)],Np0=r(Yr),Cp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Dp0=r("Flow_ast.JSX.opening_element"),Lp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rp0=[0,[17,0,0],r(z)],jp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gp0=r("closing_element"),Mp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bp0=r(tr),qp0=r(Z0),Up0=r(nr),Hp0=[0,[17,0,0],r(z)],Xp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yp0=r(Ve),Vp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Kp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Wp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Jp0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$p0=[0,[17,0,[12,41,0]],r(d0)],Zp0=[0,[17,0,0],r(z)],Qp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r50=r(Xr),e50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n50=r(tr),t50=r(Z0),u50=r(nr),i50=[0,[17,0,0],r(z)],f50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],x50=[0,[15,0],r(N0)],o50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Element"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Element@ ")],a50=[0,[17,0,[12,41,0]],r(d0)],c50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Fragment"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Fragment@ ")],s50=[0,[17,0,[12,41,0]],r(d0)],v50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.ExpressionContainer"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.ExpressionContainer@ ")],l50=[0,[17,0,[12,41,0]],r(d0)],b50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.SpreadChild"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.SpreadChild@ ")],p50=[0,[17,0,[12,41,0]],r(d0)],m50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Text"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Text@ ")],_50=[0,[17,0,[12,41,0]],r(d0)],y50=[0,[15,0],r(N0)],h50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],d50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],k50=[0,[17,0,[12,41,0]],r(d0)],w50=[0,[15,0],r(N0)],E50=r(Yr),S50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],g50=r("Flow_ast.JSX.SpreadChild.expression"),F50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],T50=[0,[17,0,0],r(z)],O50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],I50=r(Xr),A50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N50=r(tr),C50=r(Z0),P50=r(nr),D50=[0,[17,0,0],r(z)],L50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],R50=[0,[15,0],r(N0)],j50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],G50=r("Flow_ast.JSX.Closing.name"),M50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B50=[0,[17,0,0],r(z)],q50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],U50=[0,[15,0],r(N0)],H50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],X50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Y50=[0,[17,0,[12,41,0]],r(d0)],V50=[0,[15,0],r(N0)],z50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],W50=r("Flow_ast.JSX.Opening.name"),J50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$50=[0,[17,0,0],r(z)],Z50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q50=r("self_closing"),rm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],em0=[0,[9,0,0],r(An)],nm0=[0,[17,0,0],r(z)],tm0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],um0=r(mY),im0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],xm0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],om0=[0,[17,0,0],r(z)],am0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cm0=[0,[15,0],r(N0)],sm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Opening.Attribute"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Opening.Attribute@ ")],vm0=[0,[17,0,[12,41,0]],r(d0)],lm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Opening.SpreadAttribute"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Opening.SpreadAttribute@ ")],bm0=[0,[17,0,[12,41,0]],r(d0)],pm0=[0,[15,0],r(N0)],mm0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_m0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ym0=[0,[17,0,[12,41,0]],r(d0)],hm0=[0,[15,0],r(N0)],dm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Identifier@ ")],km0=[0,[17,0,[12,41,0]],r(d0)],wm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.NamespacedName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.NamespacedName@ ")],Em0=[0,[17,0,[12,41,0]],r(d0)],Sm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.MemberExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.MemberExpression@ ")],gm0=[0,[17,0,[12,41,0]],r(d0)],Fm0=[0,[15,0],r(N0)],Tm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Om0=r("Flow_ast.JSX.MemberExpression._object"),Im0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Am0=[0,[17,0,0],r(z)],Nm0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Cm0=r(Iv),Pm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dm0=[0,[17,0,0],r(z)],Lm0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Rm0=[0,[15,0],r(N0)],jm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.MemberExpression.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.MemberExpression.Identifier@ ")],Gm0=[0,[17,0,[12,41,0]],r(d0)],Mm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.MemberExpression.MemberExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.MemberExpression.MemberExpression@ ")],Bm0=[0,[17,0,[12,41,0]],r(d0)],qm0=[0,[15,0],r(N0)],Um0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Hm0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Xm0=[0,[17,0,[12,41,0]],r(d0)],Ym0=[0,[15,0],r(N0)],Vm0=r(Yr),zm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Km0=r("Flow_ast.JSX.SpreadAttribute.argument"),Wm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jm0=[0,[17,0,0],r(z)],$m0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zm0=r(Xr),Qm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],r90=r(tr),e90=r(Z0),n90=r(nr),t90=[0,[17,0,0],r(z)],u90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],i90=[0,[15,0],r(N0)],f90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],x90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],o90=[0,[17,0,[12,41,0]],r(d0)],a90=[0,[15,0],r(N0)],c90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],s90=r("Flow_ast.JSX.Attribute.name"),v90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l90=[0,[17,0,0],r(z)],b90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],p90=r(Bn),m90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_90=r(tr),y90=r(Z0),h90=r(nr),d90=[0,[17,0,0],r(z)],k90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],w90=[0,[15,0],r(N0)],E90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.Literal ("),[17,[0,r(Ce),0,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.Literal (@,")],S90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],g90=[0,[17,[0,r(Ce),0,0],[11,r(EX),[17,0,0]]],r(RU)],F90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.ExpressionContainer ("),[17,[0,r(Ce),0,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.ExpressionContainer (@,")],T90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O90=[0,[17,[0,r(Ce),0,0],[11,r(EX),[17,0,0]]],r(RU)],I90=[0,[15,0],r(N0)],A90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.Identifier@ ")],N90=[0,[17,0,[12,41,0]],r(d0)],C90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.Attribute.NamespacedName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.Attribute.NamespacedName@ ")],P90=[0,[17,0,[12,41,0]],r(d0)],D90=[0,[15,0],r(N0)],L90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j90=[0,[17,0,[12,41,0]],r(d0)],G90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M90=r("Flow_ast.JSX.Text.value"),B90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q90=[0,[3,0,0],r(Vt)],U90=[0,[17,0,0],r(z)],H90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X90=r(c7),Y90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V90=[0,[3,0,0],r(Vt)],z90=[0,[17,0,0],r(z)],K90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],W90=[0,[15,0],r(N0)],J90=[0,[15,0],r(N0)],$90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.JSX.ExpressionContainer.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.JSX.ExpressionContainer.Expression@ ")],Z90=[0,[17,0,[12,41,0]],r(d0)],Q90=r("Flow_ast.JSX.ExpressionContainer.EmptyExpression"),r_0=[0,[15,0],r(N0)],e_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],n_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],t_0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],u_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],i_0=r("Flow_ast.JSX.ExpressionContainer.expression"),f_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],x_0=[0,[17,0,0],r(z)],o_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],a_0=r(Xr),c_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],s_0=r(tr),v_0=r(Z0),l_0=r(nr),b_0=[0,[17,0,0],r(z)],p_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],m_0=[0,[15,0],r(N0)],__0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],y_0=r("Flow_ast.JSX.NamespacedName.namespace"),h_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d_0=[0,[17,0,0],r(z)],k_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],w_0=r(ui),E_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S_0=[0,[17,0,0],r(z)],g_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],F_0=[0,[15,0],r(N0)],T_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],O_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],I_0=[0,[17,0,[12,41,0]],r(d0)],A_0=[0,[15,0],r(N0)],N_0=r(Yr),C_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P_0=r("Flow_ast.JSX.Identifier.name"),D_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L_0=[0,[3,0,0],r(Vt)],R_0=[0,[17,0,0],r(z)],j_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G_0=r(Xr),M_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B_0=r(tr),q_0=r(Z0),U_0=r(nr),H_0=[0,[17,0,0],r(z)],X_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Y_0=[0,[15,0],r(N0)],V_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],z_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],K_0=[0,[17,0,[12,41,0]],r(d0)],W_0=[0,[15,0],r(N0)],J_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array@ ")],$_0=[0,[17,0,[12,41,0]],r(d0)],Z_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.ArrowFunction"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.ArrowFunction@ ")],Q_0=[0,[17,0,[12,41,0]],r(d0)],ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Assignment"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Assignment@ ")],ey0=[0,[17,0,[12,41,0]],r(d0)],ny0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Binary"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Binary@ ")],ty0=[0,[17,0,[12,41,0]],r(d0)],uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Call"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Call@ ")],iy0=[0,[17,0,[12,41,0]],r(d0)],fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Class"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Class@ ")],xy0=[0,[17,0,[12,41,0]],r(d0)],oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Comprehension"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Comprehension@ ")],ay0=[0,[17,0,[12,41,0]],r(d0)],cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Conditional"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Conditional@ ")],sy0=[0,[17,0,[12,41,0]],r(d0)],vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Function"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Function@ ")],ly0=[0,[17,0,[12,41,0]],r(d0)],by0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Generator"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Generator@ ")],py0=[0,[17,0,[12,41,0]],r(d0)],my0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Identifier@ ")],_y0=[0,[17,0,[12,41,0]],r(d0)],yy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Import"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Import@ ")],hy0=[0,[17,0,[12,41,0]],r(d0)],dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.JSXElement"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.JSXElement@ ")],ky0=[0,[17,0,[12,41,0]],r(d0)],wy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.JSXFragment"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.JSXFragment@ ")],Ey0=[0,[17,0,[12,41,0]],r(d0)],Sy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Literal@ ")],gy0=[0,[17,0,[12,41,0]],r(d0)],Fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Logical"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Logical@ ")],Ty0=[0,[17,0,[12,41,0]],r(d0)],Oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member@ ")],Iy0=[0,[17,0,[12,41,0]],r(d0)],Ay0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.MetaProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.MetaProperty@ ")],Ny0=[0,[17,0,[12,41,0]],r(d0)],Cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.New"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.New@ ")],Py0=[0,[17,0,[12,41,0]],r(d0)],Dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object@ ")],Ly0=[0,[17,0,[12,41,0]],r(d0)],Ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.OptionalCall"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.OptionalCall@ ")],jy0=[0,[17,0,[12,41,0]],r(d0)],Gy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.OptionalMember"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.OptionalMember@ ")],My0=[0,[17,0,[12,41,0]],r(d0)],By0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Sequence"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Sequence@ ")],qy0=[0,[17,0,[12,41,0]],r(d0)],Uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Super"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Super@ ")],Hy0=[0,[17,0,[12,41,0]],r(d0)],Xy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.TaggedTemplate"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.TaggedTemplate@ ")],Yy0=[0,[17,0,[12,41,0]],r(d0)],Vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.TemplateLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.TemplateLiteral@ ")],zy0=[0,[17,0,[12,41,0]],r(d0)],Ky0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.This"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.This@ ")],Wy0=[0,[17,0,[12,41,0]],r(d0)],Jy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.TypeCast"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.TypeCast@ ")],$y0=[0,[17,0,[12,41,0]],r(d0)],Zy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Unary"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Unary@ ")],Qy0=[0,[17,0,[12,41,0]],r(d0)],rh0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Update"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Update@ ")],eh0=[0,[17,0,[12,41,0]],r(d0)],nh0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Yield"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Yield@ ")],th0=[0,[17,0,[12,41,0]],r(d0)],uh0=[0,[15,0],r(N0)],ih0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],fh0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],xh0=[0,[17,0,[12,41,0]],r(d0)],oh0=[0,[15,0],r(N0)],ah0=r(Yr),ch0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sh0=r("Flow_ast.Expression.Import.argument"),vh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lh0=[0,[17,0,0],r(z)],bh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ph0=r(Xr),mh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_h0=r(tr),yh0=r(Z0),hh0=r(nr),dh0=[0,[17,0,0],r(z)],kh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wh0=[0,[15,0],r(N0)],Eh0=r(Yr),Sh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],gh0=r("Flow_ast.Expression.Super.comments"),Fh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Th0=r(tr),Oh0=r(Z0),Ih0=r(nr),Ah0=[0,[17,0,0],r(z)],Nh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ch0=[0,[15,0],r(N0)],Ph0=r(Yr),Dh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lh0=r("Flow_ast.Expression.This.comments"),Rh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jh0=r(tr),Gh0=r(Z0),Mh0=r(nr),Bh0=[0,[17,0,0],r(z)],qh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Uh0=[0,[15,0],r(N0)],Hh0=r(Yr),Xh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Yh0=r("Flow_ast.Expression.MetaProperty.meta"),Vh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zh0=[0,[17,0,0],r(z)],Kh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wh0=r(Iv),Jh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$h0=[0,[17,0,0],r(z)],Zh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qh0=r(Xr),rd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ed0=r(tr),nd0=r(Z0),td0=r(nr),ud0=[0,[17,0,0],r(z)],id0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],fd0=[0,[15,0],r(N0)],xd0=r(Yr),od0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ad0=r("Flow_ast.Expression.TypeCast.expression"),cd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sd0=[0,[17,0,0],r(z)],vd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ld0=r(Qc),bd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pd0=[0,[17,0,0],r(z)],md0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_d0=r(Xr),yd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hd0=r(tr),dd0=r(Z0),kd0=r(nr),wd0=[0,[17,0,0],r(z)],Ed0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Sd0=[0,[15,0],r(N0)],gd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Td0=r("Flow_ast.Expression.Generator.blocks"),Od0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Id0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Ad0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Nd0=[0,[17,0,0],r(z)],Cd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pd0=r(T4),Dd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ld0=r(tr),Rd0=r(Z0),jd0=r(nr),Gd0=[0,[17,0,0],r(z)],Md0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Bd0=[0,[15,0],r(N0)],qd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ud0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Hd0=r("Flow_ast.Expression.Comprehension.blocks"),Xd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Vd0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],zd0=[0,[17,0,0],r(z)],Kd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wd0=r(T4),Jd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$d0=r(tr),Zd0=r(Z0),Qd0=r(nr),rk0=[0,[17,0,0],r(z)],ek0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],nk0=[0,[15,0],r(N0)],tk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],uk0=r("Flow_ast.Expression.Comprehension.Block.left"),ik0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fk0=[0,[17,0,0],r(z)],xk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ok0=r(Cu),ak0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ck0=[0,[17,0,0],r(z)],sk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vk0=r(R8),lk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bk0=[0,[9,0,0],r(An)],pk0=[0,[17,0,0],r(z)],mk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_k0=[0,[15,0],r(N0)],yk0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],hk0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],dk0=[0,[17,0,[12,41,0]],r(d0)],kk0=[0,[15,0],r(N0)],wk0=r(Yr),Ek0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Sk0=r("Flow_ast.Expression.Yield.argument"),gk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fk0=r(tr),Tk0=r(Z0),Ok0=r(nr),Ik0=[0,[17,0,0],r(z)],Ak0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Nk0=r(Xr),Ck0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pk0=r(tr),Dk0=r(Z0),Lk0=r(nr),Rk0=[0,[17,0,0],r(z)],jk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gk0=r(lY),Mk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bk0=[0,[9,0,0],r(An)],qk0=[0,[17,0,0],r(z)],Uk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hk0=r("result_out"),Xk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yk0=[0,[17,0,0],r(z)],Vk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zk0=[0,[15,0],r(N0)],Kk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Wk0=r("Flow_ast.Expression.OptionalMember.member"),Jk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$k0=[0,[17,0,0],r(z)],Zk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qk0=r(lU),rw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ew0=[0,[17,0,0],r(z)],nw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tw0=r(qu),uw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iw0=[0,[9,0,0],r(An)],fw0=[0,[17,0,0],r(z)],xw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ow0=[0,[15,0],r(N0)],aw0=r(Yr),cw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sw0=r("Flow_ast.Expression.Member._object"),vw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lw0=[0,[17,0,0],r(z)],bw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pw0=r(Iv),mw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_w0=[0,[17,0,0],r(z)],yw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hw0=r(Xr),dw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kw0=r(tr),ww0=r(Z0),Ew0=r(nr),Sw0=[0,[17,0,0],r(z)],gw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Fw0=[0,[15,0],r(N0)],Tw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member.PropertyIdentifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member.PropertyIdentifier@ ")],Ow0=[0,[17,0,[12,41,0]],r(d0)],Iw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member.PropertyPrivateName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member.PropertyPrivateName@ ")],Aw0=[0,[17,0,[12,41,0]],r(d0)],Nw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Member.PropertyExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Member.PropertyExpression@ ")],Cw0=[0,[17,0,[12,41,0]],r(d0)],Pw0=[0,[15,0],r(N0)],Dw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lw0=r("Flow_ast.Expression.OptionalCall.call"),Rw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jw0=[0,[17,0,0],r(z)],Gw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Mw0=r(lU),Bw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qw0=[0,[17,0,0],r(z)],Uw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hw0=r(qu),Xw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yw0=[0,[9,0,0],r(An)],Vw0=[0,[17,0,0],r(z)],zw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Kw0=[0,[15,0],r(N0)],Ww0=r(Yr),Jw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$w0=r("Flow_ast.Expression.Call.callee"),Zw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qw0=[0,[17,0,0],r(z)],rE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eE0=r(Z2),nE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tE0=r(tr),uE0=r(Z0),iE0=r(nr),fE0=[0,[17,0,0],r(z)],xE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oE0=r(C2),aE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cE0=[0,[17,0,0],r(z)],sE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vE0=r(Xr),lE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bE0=r(tr),pE0=r(Z0),mE0=r(nr),_E0=[0,[17,0,0],r(z)],yE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],hE0=[0,[15,0],r(N0)],dE0=r(Yr),kE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wE0=r("Flow_ast.Expression.New.callee"),EE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],SE0=[0,[17,0,0],r(z)],gE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FE0=r(Z2),TE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OE0=r(tr),IE0=r(Z0),AE0=r(nr),NE0=[0,[17,0,0],r(z)],CE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PE0=r(C2),DE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LE0=r(tr),RE0=r(Z0),jE0=r(nr),GE0=[0,[17,0,0],r(z)],ME0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BE0=r(Xr),qE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UE0=r(tr),HE0=r(Z0),XE0=r(nr),YE0=[0,[17,0,0],r(z)],VE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zE0=[0,[15,0],r(N0)],KE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],JE0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$E0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],QE0=r("Flow_ast.Expression.ArgList.arguments"),rS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],nS0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],tS0=[0,[17,0,0],r(z)],uS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iS0=r(Xr),fS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xS0=r(tr),oS0=r(Z0),aS0=r(nr),cS0=[0,[17,0,0],r(z)],sS0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vS0=[0,[15,0],r(N0)],lS0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],bS0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],pS0=[0,[17,0,[12,41,0]],r(d0)],mS0=[0,[15,0],r(N0)],_S0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Expression@ ")],yS0=[0,[17,0,[12,41,0]],r(d0)],hS0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Spread"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Spread@ ")],dS0=[0,[17,0,[12,41,0]],r(d0)],kS0=[0,[15,0],r(N0)],wS0=r(Yr),ES0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],SS0=r("Flow_ast.Expression.Conditional.test"),gS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FS0=[0,[17,0,0],r(z)],TS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OS0=r(kv),IS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AS0=[0,[17,0,0],r(z)],NS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CS0=r(m3),PS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DS0=[0,[17,0,0],r(z)],LS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RS0=r(Xr),jS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GS0=r(tr),MS0=r(Z0),BS0=r(nr),qS0=[0,[17,0,0],r(z)],US0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],HS0=[0,[15,0],r(N0)],XS0=r(Yr),YS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VS0=r("Flow_ast.Expression.Logical.operator"),zS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KS0=[0,[17,0,0],r(z)],WS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JS0=r(bi),$S0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZS0=[0,[17,0,0],r(z)],QS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rg0=r(Cu),eg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ng0=[0,[17,0,0],r(z)],tg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ug0=r(Xr),ig0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fg0=r(tr),xg0=r(Z0),og0=r(nr),ag0=[0,[17,0,0],r(z)],cg0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],sg0=[0,[15,0],r(N0)],vg0=r("Flow_ast.Expression.Logical.Or"),lg0=r("Flow_ast.Expression.Logical.And"),bg0=r("Flow_ast.Expression.Logical.NullishCoalesce"),pg0=[0,[15,0],r(N0)],mg0=r(Yr),_g0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yg0=r("Flow_ast.Expression.Update.operator"),hg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dg0=[0,[17,0,0],r(z)],kg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wg0=r(l7),Eg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sg0=[0,[17,0,0],r(z)],gg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fg0=r(qE),Tg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Og0=[0,[9,0,0],r(An)],Ig0=[0,[17,0,0],r(z)],Ag0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ng0=r(Xr),Cg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pg0=r(tr),Dg0=r(Z0),Lg0=r(nr),Rg0=[0,[17,0,0],r(z)],jg0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Gg0=[0,[15,0],r(N0)],Mg0=r("Flow_ast.Expression.Update.Decrement"),Bg0=r("Flow_ast.Expression.Update.Increment"),qg0=[0,[15,0],r(N0)],Ug0=r(Yr),Hg0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xg0=r("Flow_ast.Expression.Assignment.operator"),Yg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vg0=r(tr),zg0=r(Z0),Kg0=r(nr),Wg0=[0,[17,0,0],r(z)],Jg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$g0=r(bi),Zg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qg0=[0,[17,0,0],r(z)],rF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eF0=r(Cu),nF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tF0=[0,[17,0,0],r(z)],uF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iF0=r(Xr),fF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xF0=r(tr),oF0=r(Z0),aF0=r(nr),cF0=[0,[17,0,0],r(z)],sF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vF0=[0,[15,0],r(N0)],lF0=r("Flow_ast.Expression.Assignment.PlusAssign"),bF0=r("Flow_ast.Expression.Assignment.MinusAssign"),pF0=r("Flow_ast.Expression.Assignment.MultAssign"),mF0=r("Flow_ast.Expression.Assignment.ExpAssign"),_F0=r("Flow_ast.Expression.Assignment.DivAssign"),yF0=r("Flow_ast.Expression.Assignment.ModAssign"),hF0=r("Flow_ast.Expression.Assignment.LShiftAssign"),dF0=r("Flow_ast.Expression.Assignment.RShiftAssign"),kF0=r("Flow_ast.Expression.Assignment.RShift3Assign"),wF0=r("Flow_ast.Expression.Assignment.BitOrAssign"),EF0=r("Flow_ast.Expression.Assignment.BitXorAssign"),SF0=r("Flow_ast.Expression.Assignment.BitAndAssign"),gF0=r("Flow_ast.Expression.Assignment.NullishAssign"),FF0=r("Flow_ast.Expression.Assignment.AndAssign"),TF0=r("Flow_ast.Expression.Assignment.OrAssign"),OF0=[0,[15,0],r(N0)],IF0=r(Yr),AF0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],NF0=r("Flow_ast.Expression.Binary.operator"),CF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PF0=[0,[17,0,0],r(z)],DF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LF0=r(bi),RF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jF0=[0,[17,0,0],r(z)],GF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MF0=r(Cu),BF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qF0=[0,[17,0,0],r(z)],UF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],HF0=r(Xr),XF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YF0=r(tr),VF0=r(Z0),zF0=r(nr),KF0=[0,[17,0,0],r(z)],WF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],JF0=[0,[15,0],r(N0)],$F0=r("Flow_ast.Expression.Binary.Equal"),ZF0=r("Flow_ast.Expression.Binary.NotEqual"),QF0=r("Flow_ast.Expression.Binary.StrictEqual"),rT0=r("Flow_ast.Expression.Binary.StrictNotEqual"),eT0=r("Flow_ast.Expression.Binary.LessThan"),nT0=r("Flow_ast.Expression.Binary.LessThanEqual"),tT0=r("Flow_ast.Expression.Binary.GreaterThan"),uT0=r("Flow_ast.Expression.Binary.GreaterThanEqual"),iT0=r("Flow_ast.Expression.Binary.LShift"),fT0=r("Flow_ast.Expression.Binary.RShift"),xT0=r("Flow_ast.Expression.Binary.RShift3"),oT0=r("Flow_ast.Expression.Binary.Plus"),aT0=r("Flow_ast.Expression.Binary.Minus"),cT0=r("Flow_ast.Expression.Binary.Mult"),sT0=r("Flow_ast.Expression.Binary.Exp"),vT0=r("Flow_ast.Expression.Binary.Div"),lT0=r("Flow_ast.Expression.Binary.Mod"),bT0=r("Flow_ast.Expression.Binary.BitOr"),pT0=r("Flow_ast.Expression.Binary.Xor"),mT0=r("Flow_ast.Expression.Binary.BitAnd"),_T0=r("Flow_ast.Expression.Binary.In"),yT0=r("Flow_ast.Expression.Binary.Instanceof"),hT0=[0,[15,0],r(N0)],dT0=r(Yr),kT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wT0=r("Flow_ast.Expression.Unary.operator"),ET0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ST0=[0,[17,0,0],r(z)],gT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FT0=r(l7),TT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OT0=[0,[17,0,0],r(z)],IT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],AT0=r(Xr),NT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],CT0=r(tr),PT0=r(Z0),DT0=r(nr),LT0=[0,[17,0,0],r(z)],RT0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jT0=[0,[15,0],r(N0)],GT0=r("Flow_ast.Expression.Unary.Minus"),MT0=r("Flow_ast.Expression.Unary.Plus"),BT0=r("Flow_ast.Expression.Unary.Not"),qT0=r("Flow_ast.Expression.Unary.BitNot"),UT0=r("Flow_ast.Expression.Unary.Typeof"),HT0=r("Flow_ast.Expression.Unary.Void"),XT0=r("Flow_ast.Expression.Unary.Delete"),YT0=r("Flow_ast.Expression.Unary.Await"),VT0=[0,[15,0],r(N0)],zT0=r(Yr),KT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JT0=r("Flow_ast.Expression.Sequence.expressions"),$T0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QT0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rO0=[0,[17,0,0],r(z)],eO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nO0=r(Xr),tO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uO0=r(tr),iO0=r(Z0),fO0=r(nr),xO0=[0,[17,0,0],r(z)],oO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aO0=[0,[15,0],r(N0)],cO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],vO0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],lO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],pO0=r("Flow_ast.Expression.Object.properties"),mO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_O0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],yO0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],hO0=[0,[17,0,0],r(z)],dO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kO0=r(Xr),wO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EO0=r(tr),SO0=r(Z0),gO0=r(nr),FO0=[0,[17,0,0],r(z)],TO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OO0=[0,[15,0],r(N0)],IO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property@ ")],AO0=[0,[17,0,[12,41,0]],r(d0)],NO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.SpreadProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.SpreadProperty@ ")],CO0=[0,[17,0,[12,41,0]],r(d0)],PO0=[0,[15,0],r(N0)],DO0=r(Yr),LO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],RO0=r("Flow_ast.Expression.Object.SpreadProperty.argument"),jO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GO0=[0,[17,0,0],r(z)],MO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BO0=r(Xr),qO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UO0=r(tr),HO0=r(Z0),XO0=r(nr),YO0=[0,[17,0,0],r(z)],VO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zO0=[0,[15,0],r(N0)],KO0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],WO0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],JO0=[0,[17,0,[12,41,0]],r(d0)],$O0=[0,[15,0],r(N0)],ZO0=r(Yr),QO0=r(Yr),rI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Init {"),[17,[0,r(Ce),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Init {@,")],eI0=r(ii),nI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tI0=[0,[17,0,0],r(z)],uI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iI0=r(Bn),fI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xI0=[0,[17,0,0],r(z)],oI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aI0=r(f6),cI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sI0=[0,[9,0,0],r(An)],vI0=[0,[17,0,0],r(z)],lI0=[0,[17,0,[12,br,0]],r(Y6)],bI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Method {"),[17,[0,r(Ce),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Method {@,")],pI0=r(ii),mI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_I0=[0,[17,0,0],r(z)],yI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hI0=r(Bn),dI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],EI0=[0,[17,0,[12,41,0]],r(d0)],SI0=[0,[17,0,0],r(z)],gI0=[0,[17,0,[12,br,0]],r(Y6)],FI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Get {"),[17,[0,r(Ce),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Get {@,")],TI0=r(ii),OI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],II0=[0,[17,0,0],r(z)],AI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NI0=r(Bn),CI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],DI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],LI0=[0,[17,0,[12,41,0]],r(d0)],RI0=[0,[17,0,0],r(z)],jI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GI0=r(Xr),MI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BI0=r(tr),qI0=r(Z0),UI0=r(nr),HI0=[0,[17,0,0],r(z)],XI0=[0,[17,0,[12,br,0]],r(Y6)],YI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Set {"),[17,[0,r(Ce),0,0],0]]],r("@[<2>Flow_ast.Expression.Object.Property.Set {@,")],VI0=r(ii),zI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KI0=[0,[17,0,0],r(z)],WI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JI0=r(Bn),$I0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],QI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rA0=[0,[17,0,[12,41,0]],r(d0)],eA0=[0,[17,0,0],r(z)],nA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tA0=r(Xr),uA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iA0=r(tr),fA0=r(Z0),xA0=r(nr),oA0=[0,[17,0,0],r(z)],aA0=[0,[17,0,[12,br,0]],r(Y6)],cA0=[0,[15,0],r(N0)],sA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],vA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],lA0=[0,[17,0,[12,41,0]],r(d0)],bA0=[0,[15,0],r(N0)],pA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.Literal@ ")],mA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_A0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yA0=[0,[17,0,[12,41,0]],r(d0)],hA0=[0,[17,0,[12,41,0]],r(d0)],dA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.Identifier@ ")],kA0=[0,[17,0,[12,41,0]],r(d0)],wA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.PrivateName"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.PrivateName@ ")],EA0=[0,[17,0,[12,41,0]],r(d0)],SA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Object.Property.Computed"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Object.Property.Computed@ ")],gA0=[0,[17,0,[12,41,0]],r(d0)],FA0=[0,[15,0],r(N0)],TA0=r(Yr),OA0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IA0=r("Flow_ast.Expression.TaggedTemplate.tag"),AA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NA0=[0,[17,0,0],r(z)],CA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PA0=r(EY),DA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],RA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jA0=[0,[17,0,[12,41,0]],r(d0)],GA0=[0,[17,0,0],r(z)],MA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BA0=r(Xr),qA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UA0=r(tr),HA0=r(Z0),XA0=r(nr),YA0=[0,[17,0,0],r(z)],VA0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zA0=[0,[15,0],r(N0)],KA0=r(Yr),WA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$A0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ZA0=r("Flow_ast.Expression.TemplateLiteral.quasis"),QA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],eN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],nN0=[0,[17,0,0],r(z)],tN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uN0=r(Mg),iN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],xN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],oN0=[0,[17,0,0],r(z)],aN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cN0=r(Xr),sN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vN0=r(tr),lN0=r(Z0),bN0=r(nr),pN0=[0,[17,0,0],r(z)],mN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_N0=[0,[15,0],r(N0)],yN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hN0=r("Flow_ast.Expression.TemplateLiteral.Element.value"),dN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kN0=[0,[17,0,0],r(z)],wN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EN0=r(aU),SN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gN0=[0,[9,0,0],r(An)],FN0=[0,[17,0,0],r(z)],TN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ON0=[0,[15,0],r(N0)],IN0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AN0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NN0=[0,[17,0,[12,41,0]],r(d0)],CN0=[0,[15,0],r(N0)],PN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DN0=r("Flow_ast.Expression.TemplateLiteral.Element.raw"),LN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RN0=[0,[3,0,0],r(Vt)],jN0=[0,[17,0,0],r(z)],GN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MN0=r(PY),BN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qN0=[0,[3,0,0],r(Vt)],UN0=[0,[17,0,0],r(z)],HN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],XN0=[0,[15,0],r(N0)],YN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],zN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],KN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JN0=r("Flow_ast.Expression.Array.elements"),$N0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rC0=[0,[17,0,0],r(z)],eC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nC0=r(Xr),tC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uC0=r(tr),iC0=r(Z0),fC0=r(nr),xC0=[0,[17,0,0],r(z)],oC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aC0=[0,[15,0],r(N0)],cC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array.Expression@ ")],sC0=[0,[17,0,[12,41,0]],r(d0)],vC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array.Spread"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array.Spread@ ")],lC0=[0,[17,0,[12,41,0]],r(d0)],bC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.Array.Hole"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.Array.Hole@ ")],pC0=[0,[17,0,[12,41,0]],r(d0)],mC0=[0,[15,0],r(N0)],_C0=r(Yr),yC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hC0=r("Flow_ast.Expression.SpreadElement.argument"),dC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kC0=[0,[17,0,0],r(z)],wC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EC0=r(Xr),SC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gC0=r(tr),FC0=r(Z0),TC0=r(nr),OC0=[0,[17,0,0],r(z)],IC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AC0=[0,[15,0],r(N0)],NC0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],CC0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],PC0=[0,[17,0,[12,41,0]],r(d0)],DC0=[0,[15,0],r(N0)],LC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jC0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],BC0=r("Flow_ast.Expression.CallTypeArgs.arguments"),qC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],HC0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],XC0=[0,[17,0,0],r(z)],YC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VC0=r(Xr),zC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KC0=r(tr),WC0=r(Z0),JC0=r(nr),$C0=[0,[17,0,0],r(z)],ZC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],QC0=[0,[15,0],r(N0)],rP0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eP0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nP0=[0,[17,0,[12,41,0]],r(d0)],tP0=[0,[15,0],r(N0)],uP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.CallTypeArg.Explicit"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.CallTypeArg.Explicit@ ")],iP0=[0,[17,0,[12,41,0]],r(d0)],fP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Expression.CallTypeArg.Implicit"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Expression.CallTypeArg.Implicit@ ")],xP0=[0,[17,0,[12,41,0]],r(d0)],oP0=[0,[15,0],r(N0)],aP0=r(Yr),cP0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sP0=r("Flow_ast.Expression.CallTypeArg.Implicit.comments"),vP0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lP0=r(tr),bP0=r(Z0),pP0=r(nr),mP0=[0,[17,0,0],r(z)],_P0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yP0=[0,[15,0],r(N0)],hP0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],dP0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],kP0=[0,[17,0,[12,41,0]],r(d0)],wP0=[0,[15,0],r(N0)],EP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Block"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Block@ ")],SP0=[0,[17,0,[12,41,0]],r(d0)],gP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Break"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Break@ ")],FP0=[0,[17,0,[12,41,0]],r(d0)],TP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ClassDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ClassDeclaration@ ")],OP0=[0,[17,0,[12,41,0]],r(d0)],IP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Continue"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Continue@ ")],AP0=[0,[17,0,[12,41,0]],r(d0)],NP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Debugger"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Debugger@ ")],CP0=[0,[17,0,[12,41,0]],r(d0)],PP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareClass"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareClass@ ")],DP0=[0,[17,0,[12,41,0]],r(d0)],LP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration@ ")],RP0=[0,[17,0,[12,41,0]],r(d0)],jP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareFunction"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareFunction@ ")],GP0=[0,[17,0,[12,41,0]],r(d0)],MP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareInterface"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareInterface@ ")],BP0=[0,[17,0,[12,41,0]],r(d0)],qP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModule"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModule@ ")],UP0=[0,[17,0,[12,41,0]],r(d0)],HP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModuleExports"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModuleExports@ ")],XP0=[0,[17,0,[12,41,0]],r(d0)],YP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareTypeAlias"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareTypeAlias@ ")],VP0=[0,[17,0,[12,41,0]],r(d0)],zP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareOpaqueType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareOpaqueType@ ")],KP0=[0,[17,0,[12,41,0]],r(d0)],WP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareVariable"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareVariable@ ")],JP0=[0,[17,0,[12,41,0]],r(d0)],$P0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DoWhile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DoWhile@ ")],ZP0=[0,[17,0,[12,41,0]],r(d0)],QP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Empty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Empty@ ")],rD0=[0,[17,0,[12,41,0]],r(d0)],eD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration@ ")],nD0=[0,[17,0,[12,41,0]],r(d0)],tD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportDefaultDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration@ ")],uD0=[0,[17,0,[12,41,0]],r(d0)],iD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportNamedDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportNamedDeclaration@ ")],fD0=[0,[17,0,[12,41,0]],r(d0)],xD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Expression@ ")],oD0=[0,[17,0,[12,41,0]],r(d0)],aD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.For"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.For@ ")],cD0=[0,[17,0,[12,41,0]],r(d0)],sD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForIn"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForIn@ ")],vD0=[0,[17,0,[12,41,0]],r(d0)],lD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForOf"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForOf@ ")],bD0=[0,[17,0,[12,41,0]],r(d0)],pD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.FunctionDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.FunctionDeclaration@ ")],mD0=[0,[17,0,[12,41,0]],r(d0)],_D0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.If"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.If@ ")],yD0=[0,[17,0,[12,41,0]],r(d0)],hD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ImportDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ImportDeclaration@ ")],dD0=[0,[17,0,[12,41,0]],r(d0)],kD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.InterfaceDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.InterfaceDeclaration@ ")],wD0=[0,[17,0,[12,41,0]],r(d0)],ED0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Labeled"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Labeled@ ")],SD0=[0,[17,0,[12,41,0]],r(d0)],gD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Return"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Return@ ")],FD0=[0,[17,0,[12,41,0]],r(d0)],TD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Switch"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Switch@ ")],OD0=[0,[17,0,[12,41,0]],r(d0)],ID0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Throw"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Throw@ ")],AD0=[0,[17,0,[12,41,0]],r(d0)],ND0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.Try"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.Try@ ")],CD0=[0,[17,0,[12,41,0]],r(d0)],PD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.TypeAlias"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.TypeAlias@ ")],DD0=[0,[17,0,[12,41,0]],r(d0)],LD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.OpaqueType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.OpaqueType@ ")],RD0=[0,[17,0,[12,41,0]],r(d0)],jD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.VariableDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.VariableDeclaration@ ")],GD0=[0,[17,0,[12,41,0]],r(d0)],MD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.While"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.While@ ")],BD0=[0,[17,0,[12,41,0]],r(d0)],qD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.With"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.With@ ")],UD0=[0,[17,0,[12,41,0]],r(d0)],HD0=[0,[15,0],r(N0)],XD0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],YD0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],VD0=[0,[17,0,[12,41,0]],r(d0)],zD0=[0,[15,0],r(N0)],KD0=r("Flow_ast.Statement.ExportValue"),WD0=r("Flow_ast.Statement.ExportType"),JD0=[0,[15,0],r(N0)],$D0=r(Yr),ZD0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],QD0=r("Flow_ast.Statement.Empty.comments"),rL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eL0=r(tr),nL0=r(Z0),tL0=r(nr),uL0=[0,[17,0,0],r(z)],iL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],fL0=[0,[15,0],r(N0)],xL0=r(Yr),oL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aL0=r("Flow_ast.Statement.Expression.expression"),cL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sL0=[0,[17,0,0],r(z)],vL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lL0=r(Zi),bL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pL0=r(tr),mL0=[0,[3,0,0],r(Vt)],_L0=r(Z0),yL0=r(nr),hL0=[0,[17,0,0],r(z)],dL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kL0=r(Xr),wL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EL0=r(tr),SL0=r(Z0),gL0=r(nr),FL0=[0,[17,0,0],r(z)],TL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OL0=[0,[15,0],r(N0)],IL0=r(Yr),AL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],NL0=r("Flow_ast.Statement.ImportDeclaration.import_kind"),CL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PL0=[0,[17,0,0],r(z)],DL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LL0=r(cc),RL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jL0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],GL0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ML0=[0,[17,0,[12,41,0]],r(d0)],BL0=[0,[17,0,0],r(z)],qL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],UL0=r(_i),HL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XL0=r(tr),YL0=r(Z0),VL0=r(nr),zL0=[0,[17,0,0],r(z)],KL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WL0=r(Cv),JL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$L0=r(tr),ZL0=r(Z0),QL0=r(nr),rR0=[0,[17,0,0],r(z)],eR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nR0=r(Xr),tR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uR0=r(tr),iR0=r(Z0),fR0=r(nr),xR0=[0,[17,0,0],r(z)],oR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aR0=[0,[15,0],r(N0)],cR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sR0=r("Flow_ast.Statement.ImportDeclaration.kind"),vR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lR0=r(tr),bR0=r(Z0),pR0=r(nr),mR0=[0,[17,0,0],r(z)],_R0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yR0=r(B2),hR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dR0=r(tr),kR0=r(Z0),wR0=r(nr),ER0=[0,[17,0,0],r(z)],SR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gR0=r("remote"),FR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TR0=[0,[17,0,0],r(z)],OR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],IR0=[0,[15,0],r(N0)],AR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers@ ")],CR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],PR0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],DR0=[0,[17,0,[12,41,0]],r(d0)],LR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier@ ")],RR0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jR0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],GR0=[0,[17,0,[12,41,0]],r(d0)],MR0=[0,[17,0,[12,41,0]],r(d0)],BR0=[0,[15,0],r(N0)],qR0=r("Flow_ast.Statement.ImportDeclaration.ImportType"),UR0=r("Flow_ast.Statement.ImportDeclaration.ImportTypeof"),HR0=r("Flow_ast.Statement.ImportDeclaration.ImportValue"),XR0=[0,[15,0],r(N0)],YR0=r(Yr),VR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zR0=r("Flow_ast.Statement.DeclareExportDeclaration.default"),KR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],WR0=r(tr),JR0=r(Z0),$R0=r(nr),ZR0=[0,[17,0,0],r(z)],QR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rj0=r(P2),ej0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nj0=r(tr),tj0=r(Z0),uj0=r(nr),ij0=[0,[17,0,0],r(z)],fj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xj0=r(Cv),oj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aj0=r(tr),cj0=r(Z0),sj0=r(nr),vj0=[0,[17,0,0],r(z)],lj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bj0=r(cc),pj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mj0=r(tr),_j0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],yj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],hj0=[0,[17,0,[12,41,0]],r(d0)],dj0=r(Z0),kj0=r(nr),wj0=[0,[17,0,0],r(z)],Ej0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sj0=r(Xr),gj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fj0=r(tr),Tj0=r(Z0),Oj0=r(nr),Ij0=[0,[17,0,0],r(z)],Aj0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Nj0=[0,[15,0],r(N0)],Cj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Variable"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Variable@ ")],Pj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Lj0=[0,[17,0,[12,41,0]],r(d0)],Rj0=[0,[17,0,[12,41,0]],r(d0)],jj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Function"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Function@ ")],Gj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Mj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Bj0=[0,[17,0,[12,41,0]],r(d0)],qj0=[0,[17,0,[12,41,0]],r(d0)],Uj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Class"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Class@ ")],Hj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yj0=[0,[17,0,[12,41,0]],r(d0)],Vj0=[0,[17,0,[12,41,0]],r(d0)],zj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.DefaultType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.DefaultType@ ")],Kj0=[0,[17,0,[12,41,0]],r(d0)],Wj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.NamedType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedType@ ")],Jj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$j0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Zj0=[0,[17,0,[12,41,0]],r(d0)],Qj0=[0,[17,0,[12,41,0]],r(d0)],rG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType@ ")],eG0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],nG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],tG0=[0,[17,0,[12,41,0]],r(d0)],uG0=[0,[17,0,[12,41,0]],r(d0)],iG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareExportDeclaration.Interface"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Interface@ ")],fG0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],xG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],oG0=[0,[17,0,[12,41,0]],r(d0)],aG0=[0,[17,0,[12,41,0]],r(d0)],cG0=[0,[15,0],r(N0)],sG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportDefaultDeclaration.Declaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Declaration@ ")],vG0=[0,[17,0,[12,41,0]],r(d0)],lG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportDefaultDeclaration.Expression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Expression@ ")],bG0=[0,[17,0,[12,41,0]],r(d0)],pG0=[0,[15,0],r(N0)],mG0=r(Yr),_G0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yG0=r("Flow_ast.Statement.ExportDefaultDeclaration.default"),hG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dG0=[0,[17,0,0],r(z)],kG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wG0=r(P2),EG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],SG0=[0,[17,0,0],r(z)],gG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FG0=r(Xr),TG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OG0=r(tr),IG0=r(Z0),AG0=r(nr),NG0=[0,[17,0,0],r(z)],CG0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],PG0=[0,[15,0],r(N0)],DG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers@ ")],RG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jG0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GG0=[0,[17,0,[12,41,0]],r(d0)],MG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier@ ")],BG0=[0,[17,0,[12,41,0]],r(d0)],qG0=[0,[15,0],r(N0)],UG0=r(Yr),HG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],XG0=r("Flow_ast.Statement.ExportNamedDeclaration.declaration"),YG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VG0=r(tr),zG0=r(Z0),KG0=r(nr),WG0=[0,[17,0,0],r(z)],JG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$G0=r(Cv),ZG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QG0=r(tr),rM0=r(Z0),eM0=r(nr),nM0=[0,[17,0,0],r(z)],tM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uM0=r(cc),iM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fM0=r(tr),xM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aM0=[0,[17,0,[12,41,0]],r(d0)],cM0=r(Z0),sM0=r(nr),vM0=[0,[17,0,0],r(z)],lM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bM0=r("export_kind"),pM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mM0=[0,[17,0,0],r(z)],_M0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yM0=r(Xr),hM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dM0=r(tr),kM0=r(Z0),wM0=r(nr),EM0=[0,[17,0,0],r(z)],SM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],gM0=[0,[15,0],r(N0)],FM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],TM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],OM0=r(tr),IM0=r(Z0),AM0=r(nr),NM0=[0,[17,0,[12,41,0]],r(d0)],CM0=[0,[15,0],r(N0)],PM0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DM0=r("Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifier.local"),LM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RM0=[0,[17,0,0],r(z)],jM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GM0=r(I4),MM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BM0=r(tr),qM0=r(Z0),UM0=r(nr),HM0=[0,[17,0,0],r(z)],XM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],YM0=[0,[15,0],r(N0)],VM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],zM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],KM0=[0,[17,0,[12,41,0]],r(d0)],WM0=[0,[15,0],r(N0)],JM0=r(Yr),$M0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ZM0=r("Flow_ast.Statement.DeclareModuleExports.annot"),QM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rB0=[0,[17,0,0],r(z)],eB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nB0=r(Xr),tB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uB0=r(tr),iB0=r(Z0),fB0=r(nr),xB0=[0,[17,0,0],r(z)],oB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aB0=[0,[15,0],r(N0)],cB0=r(Yr),sB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vB0=r("Flow_ast.Statement.DeclareModule.id"),lB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bB0=[0,[17,0,0],r(z)],pB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mB0=r(Wn),_B0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],hB0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],dB0=[0,[17,0,[12,41,0]],r(d0)],kB0=[0,[17,0,0],r(z)],wB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EB0=r($c),SB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gB0=[0,[17,0,0],r(z)],FB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],TB0=r(Xr),OB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IB0=r(tr),AB0=r(Z0),NB0=r(nr),CB0=[0,[17,0,0],r(z)],PB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],DB0=[0,[15,0],r(N0)],LB0=r("Flow_ast.Statement.DeclareModule.ES"),RB0=r("Flow_ast.Statement.DeclareModule.CommonJS"),jB0=[0,[15,0],r(N0)],GB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModule.Identifier"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModule.Identifier@ ")],MB0=[0,[17,0,[12,41,0]],r(d0)],BB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.DeclareModule.Literal"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.DeclareModule.Literal@ ")],qB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],UB0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],HB0=[0,[17,0,[12,41,0]],r(d0)],XB0=[0,[17,0,[12,41,0]],r(d0)],YB0=[0,[15,0],r(N0)],VB0=r(Yr),zB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KB0=r("Flow_ast.Statement.DeclareFunction.id"),WB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JB0=[0,[17,0,0],r(z)],$B0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZB0=r(Qc),QB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rq0=[0,[17,0,0],r(z)],eq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nq0=r(r7),tq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uq0=r(tr),iq0=r(Z0),fq0=r(nr),xq0=[0,[17,0,0],r(z)],oq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aq0=r(Xr),cq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sq0=r(tr),vq0=r(Z0),lq0=r(nr),bq0=[0,[17,0,0],r(z)],pq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],mq0=[0,[15,0],r(N0)],_q0=r(Yr),yq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hq0=r("Flow_ast.Statement.DeclareVariable.id"),dq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kq0=[0,[17,0,0],r(z)],wq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eq0=r(Qc),Sq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gq0=[0,[17,0,0],r(z)],Fq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tq0=r(Xr),Oq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Iq0=r(tr),Aq0=r(Z0),Nq0=r(nr),Cq0=[0,[17,0,0],r(z)],Pq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Dq0=[0,[15,0],r(N0)],Lq0=r(Yr),Rq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jq0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Gq0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Mq0=[0,[17,0,[12,41,0]],r(d0)],Bq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qq0=r("Flow_ast.Statement.DeclareClass.id"),Uq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hq0=[0,[17,0,0],r(z)],Xq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yq0=r(sv),Vq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zq0=r(tr),Kq0=r(Z0),Wq0=r(nr),Jq0=[0,[17,0,0],r(z)],$q0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zq0=r(Wn),Qq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nU0=[0,[17,0,[12,41,0]],r(d0)],tU0=[0,[17,0,0],r(z)],uU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iU0=r(P7),fU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xU0=r(tr),oU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],aU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],cU0=[0,[17,0,[12,41,0]],r(d0)],sU0=r(Z0),vU0=r(nr),lU0=[0,[17,0,0],r(z)],bU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pU0=r(Hy),mU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_U0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],yU0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],hU0=[0,[17,0,0],r(z)],dU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kU0=r(ws),wU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EU0=r(tr),SU0=r(Z0),gU0=r(nr),FU0=[0,[17,0,0],r(z)],TU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OU0=r(Xr),IU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AU0=r(tr),NU0=r(Z0),CU0=r(nr),PU0=[0,[17,0,0],r(z)],DU0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],LU0=[0,[15,0],r(N0)],RU0=r(Yr),jU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],MU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],BU0=[0,[17,0,[12,41,0]],r(d0)],qU0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],UU0=r("Flow_ast.Statement.Interface.id"),HU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XU0=[0,[17,0,0],r(z)],YU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VU0=r(sv),zU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KU0=r(tr),WU0=r(Z0),JU0=r(nr),$U0=[0,[17,0,0],r(z)],ZU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QU0=r(P7),rH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],nH0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],tH0=[0,[17,0,0],r(z)],uH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iH0=r(Wn),fH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aH0=[0,[17,0,[12,41,0]],r(d0)],cH0=[0,[17,0,0],r(z)],sH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vH0=r(Xr),lH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bH0=r(tr),pH0=r(Z0),mH0=r(nr),_H0=[0,[17,0,0],r(z)],yH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],hH0=[0,[15,0],r(N0)],dH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.BooleanBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.BooleanBody@ ")],kH0=[0,[17,0,[12,41,0]],r(d0)],wH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.NumberBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.NumberBody@ ")],EH0=[0,[17,0,[12,41,0]],r(d0)],SH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.StringBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody@ ")],gH0=[0,[17,0,[12,41,0]],r(d0)],FH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.SymbolBody"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.SymbolBody@ ")],TH0=[0,[17,0,[12,41,0]],r(d0)],OH0=[0,[15,0],r(N0)],IH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NH0=[0,[17,0,[12,41,0]],r(d0)],CH0=[0,[15,0],r(N0)],PH0=r(Yr),DH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],LH0=r("Flow_ast.Statement.EnumDeclaration.id"),RH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jH0=[0,[17,0,0],r(z)],GH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MH0=r(Wn),BH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qH0=[0,[17,0,0],r(z)],UH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],HH0=r(Xr),XH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YH0=r(tr),VH0=r(Z0),zH0=r(nr),KH0=[0,[17,0,0],r(z)],WH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],JH0=[0,[15,0],r(N0)],$H0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QH0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],nX0=r("Flow_ast.Statement.EnumDeclaration.SymbolBody.members"),tX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],iX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],fX0=[0,[17,0,0],r(z)],xX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oX0=r(w4),aX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cX0=[0,[9,0,0],r(An)],sX0=[0,[17,0,0],r(z)],vX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lX0=r(Xr),bX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pX0=r(tr),mX0=r(Z0),_X0=r(nr),yX0=[0,[17,0,0],r(z)],hX0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dX0=[0,[15,0],r(N0)],kX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted@ ")],SX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],gX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],FX0=[0,[17,0,[12,41,0]],r(d0)],TX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.EnumDeclaration.StringBody.Initialized"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Initialized@ ")],OX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],IX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],AX0=[0,[17,0,[12,41,0]],r(d0)],NX0=[0,[15,0],r(N0)],CX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],DX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],LX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],RX0=r("Flow_ast.Statement.EnumDeclaration.StringBody.members"),jX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GX0=[0,[17,0,0],r(z)],MX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BX0=r(Fk),qX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UX0=[0,[9,0,0],r(An)],HX0=[0,[17,0,0],r(z)],XX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],YX0=r(w4),VX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zX0=[0,[9,0,0],r(An)],KX0=[0,[17,0,0],r(z)],WX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JX0=r(Xr),$X0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZX0=r(tr),QX0=r(Z0),rY0=r(nr),eY0=[0,[17,0,0],r(z)],nY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],tY0=[0,[15,0],r(N0)],uY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],xY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aY0=r("Flow_ast.Statement.EnumDeclaration.NumberBody.members"),cY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],vY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],lY0=[0,[17,0,0],r(z)],bY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pY0=r(Fk),mY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_Y0=[0,[9,0,0],r(An)],yY0=[0,[17,0,0],r(z)],hY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dY0=r(w4),kY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wY0=[0,[9,0,0],r(An)],EY0=[0,[17,0,0],r(z)],SY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gY0=r(Xr),FY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TY0=r(tr),OY0=r(Z0),IY0=r(nr),AY0=[0,[17,0,0],r(z)],NY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],CY0=[0,[15,0],r(N0)],PY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],LY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],RY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],GY0=r("Flow_ast.Statement.EnumDeclaration.BooleanBody.members"),MY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],qY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],UY0=[0,[17,0,0],r(z)],HY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XY0=r(Fk),YY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VY0=[0,[9,0,0],r(An)],zY0=[0,[17,0,0],r(z)],KY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WY0=r(w4),JY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$Y0=[0,[9,0,0],r(An)],ZY0=[0,[17,0,0],r(z)],QY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rV0=r(Xr),eV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nV0=r(tr),tV0=r(Z0),uV0=r(nr),iV0=[0,[17,0,0],r(z)],fV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],xV0=[0,[15,0],r(N0)],oV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aV0=r("Flow_ast.Statement.EnumDeclaration.InitializedMember.id"),cV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sV0=[0,[17,0,0],r(z)],vV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lV0=r(ji),bV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_V0=[0,[17,0,[12,41,0]],r(d0)],yV0=[0,[17,0,0],r(z)],hV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dV0=[0,[15,0],r(N0)],kV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],EV0=[0,[17,0,[12,41,0]],r(d0)],SV0=[0,[15,0],r(N0)],gV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],FV0=r("Flow_ast.Statement.EnumDeclaration.DefaultedMember.id"),TV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OV0=[0,[17,0,0],r(z)],IV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AV0=[0,[15,0],r(N0)],NV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],CV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],PV0=[0,[17,0,[12,41,0]],r(d0)],DV0=[0,[15,0],r(N0)],LV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForOf.LeftDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForOf.LeftDeclaration@ ")],RV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],GV0=[0,[17,0,[12,41,0]],r(d0)],MV0=[0,[17,0,[12,41,0]],r(d0)],BV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForOf.LeftPattern"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForOf.LeftPattern@ ")],qV0=[0,[17,0,[12,41,0]],r(d0)],UV0=[0,[15,0],r(N0)],HV0=r(Yr),XV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],YV0=r("Flow_ast.Statement.ForOf.left"),VV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zV0=[0,[17,0,0],r(z)],KV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WV0=r(Cu),JV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$V0=[0,[17,0,0],r(z)],ZV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QV0=r(Wn),rz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ez0=[0,[17,0,0],r(z)],nz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tz0=r(dx),uz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iz0=[0,[9,0,0],r(An)],fz0=[0,[17,0,0],r(z)],xz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oz0=r(Xr),az0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cz0=r(tr),sz0=r(Z0),vz0=r(nr),lz0=[0,[17,0,0],r(z)],bz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pz0=[0,[15,0],r(N0)],mz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForIn.LeftDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForIn.LeftDeclaration@ ")],_z0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],yz0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],hz0=[0,[17,0,[12,41,0]],r(d0)],dz0=[0,[17,0,[12,41,0]],r(d0)],kz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.ForIn.LeftPattern"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.ForIn.LeftPattern@ ")],wz0=[0,[17,0,[12,41,0]],r(d0)],Ez0=[0,[15,0],r(N0)],Sz0=r(Yr),gz0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Fz0=r("Flow_ast.Statement.ForIn.left"),Tz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Oz0=[0,[17,0,0],r(z)],Iz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Az0=r(Cu),Nz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cz0=[0,[17,0,0],r(z)],Pz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dz0=r(Wn),Lz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rz0=[0,[17,0,0],r(z)],jz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gz0=r(R8),Mz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bz0=[0,[9,0,0],r(An)],qz0=[0,[17,0,0],r(z)],Uz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hz0=r(Xr),Xz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yz0=r(tr),Vz0=r(Z0),zz0=r(nr),Kz0=[0,[17,0,0],r(z)],Wz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Jz0=[0,[15,0],r(N0)],$z0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.For.InitDeclaration"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.For.InitDeclaration@ ")],Zz0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Qz0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rK0=[0,[17,0,[12,41,0]],r(d0)],eK0=[0,[17,0,[12,41,0]],r(d0)],nK0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Statement.For.InitExpression"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Statement.For.InitExpression@ ")],tK0=[0,[17,0,[12,41,0]],r(d0)],uK0=[0,[15,0],r(N0)],iK0=r(Yr),fK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],xK0=r("Flow_ast.Statement.For.init"),oK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aK0=r(tr),cK0=r(Z0),sK0=r(nr),vK0=[0,[17,0,0],r(z)],lK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bK0=r(Ss),pK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mK0=r(tr),_K0=r(Z0),yK0=r(nr),hK0=[0,[17,0,0],r(z)],dK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kK0=r(fU),wK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EK0=r(tr),SK0=r(Z0),gK0=r(nr),FK0=[0,[17,0,0],r(z)],TK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OK0=r(Wn),IK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AK0=[0,[17,0,0],r(z)],NK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CK0=r(Xr),PK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DK0=r(tr),LK0=r(Z0),RK0=r(nr),jK0=[0,[17,0,0],r(z)],GK0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],MK0=[0,[15,0],r(N0)],BK0=r(Yr),qK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],UK0=r("Flow_ast.Statement.DoWhile.body"),HK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XK0=[0,[17,0,0],r(z)],YK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VK0=r(Ss),zK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KK0=[0,[17,0,0],r(z)],WK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JK0=r(Xr),$K0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZK0=r(tr),QK0=r(Z0),rW0=r(nr),eW0=[0,[17,0,0],r(z)],nW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],tW0=[0,[15,0],r(N0)],uW0=r(Yr),iW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],fW0=r("Flow_ast.Statement.While.test"),xW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oW0=[0,[17,0,0],r(z)],aW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cW0=r(Wn),sW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vW0=[0,[17,0,0],r(z)],lW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bW0=r(Xr),pW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mW0=r(tr),_W0=r(Z0),yW0=r(nr),hW0=[0,[17,0,0],r(z)],dW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],kW0=[0,[15,0],r(N0)],wW0=r("Flow_ast.Statement.VariableDeclaration.Var"),EW0=r("Flow_ast.Statement.VariableDeclaration.Let"),SW0=r("Flow_ast.Statement.VariableDeclaration.Const"),gW0=[0,[15,0],r(N0)],FW0=r(Yr),TW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IW0=r("Flow_ast.Statement.VariableDeclaration.declarations"),AW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],CW0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],PW0=[0,[17,0,0],r(z)],DW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LW0=r($c),RW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jW0=[0,[17,0,0],r(z)],GW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MW0=r(Xr),BW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qW0=r(tr),UW0=r(Z0),HW0=r(nr),XW0=[0,[17,0,0],r(z)],YW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],VW0=[0,[15,0],r(N0)],zW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KW0=r("Flow_ast.Statement.VariableDeclaration.Declarator.id"),WW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JW0=[0,[17,0,0],r(z)],$W0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZW0=r(ji),QW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rJ0=r(tr),eJ0=r(Z0),nJ0=r(nr),tJ0=[0,[17,0,0],r(z)],uJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],iJ0=[0,[15,0],r(N0)],fJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],xJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],oJ0=[0,[17,0,[12,41,0]],r(d0)],aJ0=[0,[15,0],r(N0)],cJ0=r(Yr),sJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vJ0=r("Flow_ast.Statement.Try.block"),lJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],pJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],mJ0=[0,[17,0,[12,41,0]],r(d0)],_J0=[0,[17,0,0],r(z)],yJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hJ0=r(MU),dJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kJ0=r(tr),wJ0=r(Z0),EJ0=r(nr),SJ0=[0,[17,0,0],r(z)],gJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FJ0=r(CH),TJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OJ0=r(tr),IJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NJ0=[0,[17,0,[12,41,0]],r(d0)],CJ0=r(Z0),PJ0=r(nr),DJ0=[0,[17,0,0],r(z)],LJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RJ0=r(Xr),jJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GJ0=r(tr),MJ0=r(Z0),BJ0=r(nr),qJ0=[0,[17,0,0],r(z)],UJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],HJ0=[0,[15,0],r(N0)],XJ0=r(Yr),YJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VJ0=r("Flow_ast.Statement.Try.CatchClause.param"),zJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KJ0=r(tr),WJ0=r(Z0),JJ0=r(nr),$J0=[0,[17,0,0],r(z)],ZJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QJ0=r(Wn),r$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e$0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],n$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],t$0=[0,[17,0,[12,41,0]],r(d0)],u$0=[0,[17,0,0],r(z)],i$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],f$0=r(Xr),x$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o$0=r(tr),a$0=r(Z0),c$0=r(nr),s$0=[0,[17,0,0],r(z)],v$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],l$0=[0,[15,0],r(N0)],b$0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],p$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],m$0=[0,[17,0,[12,41,0]],r(d0)],_$0=[0,[15,0],r(N0)],y$0=r(Yr),h$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],d$0=r("Flow_ast.Statement.Throw.argument"),k$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w$0=[0,[17,0,0],r(z)],E$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],S$0=r(Xr),g$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F$0=r(tr),T$0=r(Z0),O$0=r(nr),I$0=[0,[17,0,0],r(z)],A$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],N$0=[0,[15,0],r(N0)],C$0=r(Yr),P$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D$0=r("Flow_ast.Statement.Return.argument"),L$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R$0=r(tr),j$0=r(Z0),G$0=r(nr),M$0=[0,[17,0,0],r(z)],B$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],q$0=r(Xr),U$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H$0=r(tr),X$0=r(Z0),Y$0=r(nr),V$0=[0,[17,0,0],r(z)],z$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K$0=r("return_out"),W$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],J$0=[0,[17,0,0],r(z)],$$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z$0=[0,[15,0],r(N0)],Q$0=r(Yr),rZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],nZ0=r("Flow_ast.Statement.Switch.discriminant"),tZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uZ0=[0,[17,0,0],r(z)],iZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fZ0=r(QX),xZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],aZ0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],cZ0=[0,[17,0,0],r(z)],sZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vZ0=r(Xr),lZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bZ0=r(tr),pZ0=r(Z0),mZ0=r(nr),_Z0=[0,[17,0,0],r(z)],yZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hZ0=r("exhaustive_out"),dZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kZ0=[0,[17,0,0],r(z)],wZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],EZ0=[0,[15,0],r(N0)],SZ0=r(Yr),gZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],TZ0=r("Flow_ast.Statement.Switch.Case.test"),OZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IZ0=r(tr),AZ0=r(Z0),NZ0=r(nr),CZ0=[0,[17,0,0],r(z)],PZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DZ0=r(kv),LZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jZ0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GZ0=[0,[17,0,0],r(z)],MZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BZ0=r(Xr),qZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UZ0=r(tr),HZ0=r(Z0),XZ0=r(nr),YZ0=[0,[17,0,0],r(z)],VZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zZ0=[0,[15,0],r(N0)],KZ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],WZ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],JZ0=[0,[17,0,[12,41,0]],r(d0)],$Z0=[0,[15,0],r(N0)],ZZ0=r(Yr),QZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rQ0=r("Flow_ast.Statement.OpaqueType.id"),eQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nQ0=[0,[17,0,0],r(z)],tQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uQ0=r(sv),iQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fQ0=r(tr),xQ0=r(Z0),oQ0=r(nr),aQ0=[0,[17,0,0],r(z)],cQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sQ0=r(mX),vQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lQ0=r(tr),bQ0=r(Z0),pQ0=r(nr),mQ0=[0,[17,0,0],r(z)],_Q0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yQ0=r(SX),hQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dQ0=r(tr),kQ0=r(Z0),wQ0=r(nr),EQ0=[0,[17,0,0],r(z)],SQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gQ0=r(Xr),FQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TQ0=r(tr),OQ0=r(Z0),IQ0=r(nr),AQ0=[0,[17,0,0],r(z)],NQ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],CQ0=[0,[15,0],r(N0)],PQ0=r(Yr),DQ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],LQ0=r("Flow_ast.Statement.TypeAlias.id"),RQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jQ0=[0,[17,0,0],r(z)],GQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MQ0=r(sv),BQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qQ0=r(tr),UQ0=r(Z0),HQ0=r(nr),XQ0=[0,[17,0,0],r(z)],YQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VQ0=r(Cu),zQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KQ0=[0,[17,0,0],r(z)],WQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JQ0=r(Xr),$Q0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZQ0=r(tr),QQ0=r(Z0),r0r=r(nr),e0r=[0,[17,0,0],r(z)],n0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],t0r=[0,[15,0],r(N0)],u0r=r(Yr),i0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],f0r=r("Flow_ast.Statement.With._object"),x0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o0r=[0,[17,0,0],r(z)],a0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],c0r=r(Wn),s0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],v0r=[0,[17,0,0],r(z)],l0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],b0r=r(Xr),p0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m0r=r(tr),_0r=r(Z0),y0r=r(nr),h0r=[0,[17,0,0],r(z)],d0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],k0r=[0,[15,0],r(N0)],w0r=r(Yr),E0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],S0r=r("Flow_ast.Statement.Debugger.comments"),g0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F0r=r(tr),T0r=r(Z0),O0r=r(nr),I0r=[0,[17,0,0],r(z)],A0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],N0r=[0,[15,0],r(N0)],C0r=r(Yr),P0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D0r=r("Flow_ast.Statement.Continue.label"),L0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R0r=r(tr),j0r=r(Z0),G0r=r(nr),M0r=[0,[17,0,0],r(z)],B0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],q0r=r(Xr),U0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H0r=r(tr),X0r=r(Z0),Y0r=r(nr),V0r=[0,[17,0,0],r(z)],z0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],K0r=[0,[15,0],r(N0)],W0r=r(Yr),J0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$0r=r("Flow_ast.Statement.Break.label"),Z0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q0r=r(tr),rrr=r(Z0),err=r(nr),nrr=[0,[17,0,0],r(z)],trr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],urr=r(Xr),irr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],frr=r(tr),xrr=r(Z0),orr=r(nr),arr=[0,[17,0,0],r(z)],crr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],srr=[0,[15,0],r(N0)],vrr=r(Yr),lrr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],brr=r("Flow_ast.Statement.Labeled.label"),prr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mrr=[0,[17,0,0],r(z)],_rr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yrr=r(Wn),hrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],drr=[0,[17,0,0],r(z)],krr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wrr=r(Xr),Err=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Srr=r(tr),grr=r(Z0),Frr=r(nr),Trr=[0,[17,0,0],r(z)],Orr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Irr=[0,[15,0],r(N0)],Arr=r(Yr),Nrr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Crr=r("Flow_ast.Statement.If.test"),Prr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Drr=[0,[17,0,0],r(z)],Lrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rrr=r(kv),jrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Grr=[0,[17,0,0],r(z)],Mrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Brr=r(m3),qrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Urr=r(tr),Hrr=r(Z0),Xrr=r(nr),Yrr=[0,[17,0,0],r(z)],Vrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zrr=r(Xr),Krr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wrr=r(tr),Jrr=r(Z0),$rr=r(nr),Zrr=[0,[17,0,0],r(z)],Qrr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],rer=[0,[15,0],r(N0)],eer=r(Yr),ner=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ter=r("Flow_ast.Statement.If.Alternate.body"),uer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ier=[0,[17,0,0],r(z)],fer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xer=r(Xr),oer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aer=r(tr),cer=r(Z0),ser=r(nr),ver=[0,[17,0,0],r(z)],ler=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ber=[0,[15,0],r(N0)],per=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mer=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_er=[0,[17,0,[12,41,0]],r(d0)],yer=[0,[15,0],r(N0)],her=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],der=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ker=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],wer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ser=r("Flow_ast.Statement.Block.body"),ger=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Ter=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Oer=[0,[17,0,0],r(z)],Ier=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Aer=r(Xr),Ner=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cer=r(tr),Per=r(Z0),Der=r(nr),Ler=[0,[17,0,0],r(z)],Rer=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jer=[0,[15,0],r(N0)],Ger=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Predicate.Declared"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Predicate.Declared@ ")],Mer=[0,[17,0,[12,41,0]],r(d0)],Ber=r("Flow_ast.Type.Predicate.Inferred"),qer=[0,[15,0],r(N0)],Uer=r(Yr),Her=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xer=r("Flow_ast.Type.Predicate.kind"),Yer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ver=[0,[17,0,0],r(z)],zer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ker=r(Xr),Wer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jer=r(tr),$er=r(Z0),Zer=r(nr),Qer=[0,[17,0,0],r(z)],rnr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],enr=[0,[15,0],r(N0)],nnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],tnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],unr=[0,[17,0,[12,41,0]],r(d0)],inr=[0,[15,0],r(N0)],fnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],onr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],anr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],snr=r("Flow_ast.Type.TypeArgs.arguments"),vnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],bnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],pnr=[0,[17,0,0],r(z)],mnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_nr=r(Xr),ynr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hnr=r(tr),dnr=r(Z0),knr=r(nr),wnr=[0,[17,0,0],r(z)],Enr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Snr=[0,[15,0],r(N0)],gnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Fnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Tnr=[0,[17,0,[12,41,0]],r(d0)],Onr=[0,[15,0],r(N0)],Inr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Anr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Nnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Cnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Dnr=r("Flow_ast.Type.TypeParams.params"),Lnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Gnr=[0,[17,0,0],r(z)],Mnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bnr=r(Xr),qnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Unr=r(tr),Hnr=r(Z0),Xnr=r(nr),Ynr=[0,[17,0,0],r(z)],Vnr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],znr=[0,[15,0],r(N0)],Knr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Wnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Jnr=[0,[17,0,[12,41,0]],r(d0)],$nr=[0,[15,0],r(N0)],Znr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Qnr=r("Flow_ast.Type.TypeParam.name"),rtr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],etr=[0,[17,0,0],r(z)],ntr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ttr=r(DU),utr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],itr=[0,[17,0,0],r(z)],ftr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xtr=r(cu),otr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],atr=r(tr),ctr=r(Z0),str=r(nr),vtr=[0,[17,0,0],r(z)],ltr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],btr=r(_i),ptr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mtr=r(tr),_tr=r(Z0),ytr=r(nr),htr=[0,[17,0,0],r(z)],dtr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ktr=[0,[15,0],r(N0)],wtr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Etr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Str=[0,[17,0,[12,41,0]],r(d0)],gtr=[0,[15,0],r(N0)],Ftr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Missing"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Missing@ ")],Ttr=[0,[17,0,[12,41,0]],r(d0)],Otr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Available"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Available@ ")],Itr=[0,[17,0,[12,41,0]],r(d0)],Atr=[0,[15,0],r(N0)],Ntr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ctr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Ptr=[0,[17,0,[12,41,0]],r(d0)],Dtr=[0,[15,0],r(N0)],Ltr=r(Yr),Rtr=r(Yr),jtr=r(Yr),Gtr=r(Yr),Mtr=r(Yr),Btr=r(Yr),qtr=r(Yr),Utr=r(Yr),Htr=r(Yr),Xtr=r(Yr),Ytr=r(Yr),Vtr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Any"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Any@ ")],ztr=r(tr),Ktr=r(Z0),Wtr=r(nr),Jtr=[0,[17,0,[12,41,0]],r(d0)],$tr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Mixed"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Mixed@ ")],Ztr=r(tr),Qtr=r(Z0),rur=r(nr),eur=[0,[17,0,[12,41,0]],r(d0)],nur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Empty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Empty@ ")],tur=r(tr),uur=r(Z0),iur=r(nr),fur=[0,[17,0,[12,41,0]],r(d0)],xur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Void"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Void@ ")],our=r(tr),aur=r(Z0),cur=r(nr),sur=[0,[17,0,[12,41,0]],r(d0)],vur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Null"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Null@ ")],lur=r(tr),bur=r(Z0),pur=r(nr),mur=[0,[17,0,[12,41,0]],r(d0)],_ur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Number"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Number@ ")],yur=r(tr),hur=r(Z0),dur=r(nr),kur=[0,[17,0,[12,41,0]],r(d0)],wur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.BigInt"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.BigInt@ ")],Eur=r(tr),Sur=r(Z0),gur=r(nr),Fur=[0,[17,0,[12,41,0]],r(d0)],Tur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.String"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.String@ ")],Our=r(tr),Iur=r(Z0),Aur=r(nr),Nur=[0,[17,0,[12,41,0]],r(d0)],Cur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Boolean"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Boolean@ ")],Pur=r(tr),Dur=r(Z0),Lur=r(nr),Rur=[0,[17,0,[12,41,0]],r(d0)],jur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Symbol"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Symbol@ ")],Gur=r(tr),Mur=r(Z0),Bur=r(nr),qur=[0,[17,0,[12,41,0]],r(d0)],Uur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Exists"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Exists@ ")],Hur=r(tr),Xur=r(Z0),Yur=r(nr),Vur=[0,[17,0,[12,41,0]],r(d0)],zur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Nullable"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Nullable@ ")],Kur=[0,[17,0,[12,41,0]],r(d0)],Wur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Function"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Function@ ")],Jur=[0,[17,0,[12,41,0]],r(d0)],$ur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object@ ")],Zur=[0,[17,0,[12,41,0]],r(d0)],Qur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Interface"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Interface@ ")],r7r=[0,[17,0,[12,41,0]],r(d0)],e7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Array"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Array@ ")],n7r=[0,[17,0,[12,41,0]],r(d0)],t7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Generic"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Generic@ ")],u7r=[0,[17,0,[12,41,0]],r(d0)],i7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.IndexedAccess"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.IndexedAccess@ ")],f7r=[0,[17,0,[12,41,0]],r(d0)],x7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.OptionalIndexedAccess"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.OptionalIndexedAccess@ ")],o7r=[0,[17,0,[12,41,0]],r(d0)],a7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Union"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Union@ ")],c7r=[0,[17,0,[12,41,0]],r(d0)],s7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Intersection"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Intersection@ ")],v7r=[0,[17,0,[12,41,0]],r(d0)],l7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Typeof"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Typeof@ ")],b7r=[0,[17,0,[12,41,0]],r(d0)],p7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Tuple"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Tuple@ ")],m7r=[0,[17,0,[12,41,0]],r(d0)],_7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.StringLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.StringLiteral@ ")],y7r=[0,[17,0,[12,41,0]],r(d0)],h7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.NumberLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.NumberLiteral@ ")],d7r=[0,[17,0,[12,41,0]],r(d0)],k7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.BigIntLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.BigIntLiteral@ ")],w7r=[0,[17,0,[12,41,0]],r(d0)],E7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.BooleanLiteral"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.BooleanLiteral@ ")],S7r=[0,[17,0,[12,41,0]],r(d0)],g7r=[0,[15,0],r(N0)],F7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],T7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O7r=[0,[17,0,[12,41,0]],r(d0)],I7r=[0,[15,0],r(N0)],A7r=r(Yr),N7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],C7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P7r=r("Flow_ast.Type.Intersection.types"),D7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],G7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],M7r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],B7r=[0,[17,0,[12,41,0]],r(d0)],q7r=[0,[17,0,0],r(z)],U7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],H7r=r(Xr),X7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Y7r=r(tr),V7r=r(Z0),z7r=r(nr),K7r=[0,[17,0,0],r(z)],W7r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],J7r=[0,[15,0],r(N0)],$7r=r(Yr),Z7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rir=r("Flow_ast.Type.Union.types"),eir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nir=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],tir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],uir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],iir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fir=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],xir=[0,[17,0,[12,41,0]],r(d0)],oir=[0,[17,0,0],r(z)],air=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cir=r(Xr),sir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vir=r(tr),lir=r(Z0),bir=r(nr),pir=[0,[17,0,0],r(z)],mir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_ir=[0,[15,0],r(N0)],yir=r(Yr),hir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dir=r("Flow_ast.Type.Array.argument"),kir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wir=[0,[17,0,0],r(z)],Eir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sir=r(Xr),gir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fir=r(tr),Tir=r(Z0),Oir=r(nr),Iir=[0,[17,0,0],r(z)],Air=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Nir=[0,[15,0],r(N0)],Cir=r(Yr),Pir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lir=r("Flow_ast.Type.Tuple.types"),Rir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Gir=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Mir=[0,[17,0,0],r(z)],Bir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qir=r(Xr),Uir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hir=r(tr),Xir=r(Z0),Yir=r(nr),Vir=[0,[17,0,0],r(z)],zir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Kir=[0,[15,0],r(N0)],Wir=r(Yr),Jir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$ir=r("Flow_ast.Type.Typeof.argument"),Zir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qir=[0,[17,0,0],r(z)],rfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],efr=r(Xr),nfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tfr=r(tr),ufr=r(Z0),ifr=r(nr),ffr=[0,[17,0,0],r(z)],xfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ofr=[0,[15,0],r(N0)],afr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],cfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],sfr=[0,[17,0,[12,41,0]],r(d0)],vfr=[0,[15,0],r(N0)],lfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],bfr=r("Flow_ast.Type.Typeof.Target.qualification"),pfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mfr=[0,[17,0,0],r(z)],_fr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yfr=r(mt),hfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dfr=[0,[17,0,0],r(z)],kfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wfr=[0,[15,0],r(N0)],Efr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Typeof.Target.Unqualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Typeof.Target.Unqualified@ ")],Sfr=[0,[17,0,[12,41,0]],r(d0)],gfr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Typeof.Target.Qualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Typeof.Target.Qualified@ ")],Ffr=[0,[17,0,[12,41,0]],r(d0)],Tfr=[0,[15,0],r(N0)],Ofr=r(Yr),Ifr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Afr=r("Flow_ast.Type.Nullable.argument"),Nfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cfr=[0,[17,0,0],r(z)],Pfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dfr=r(Xr),Lfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rfr=r(tr),jfr=r(Z0),Gfr=r(nr),Mfr=[0,[17,0,0],r(z)],Bfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qfr=[0,[15,0],r(N0)],Ufr=r(Yr),Hfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Yfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Vfr=[0,[17,0,[12,41,0]],r(d0)],zfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Kfr=r("Flow_ast.Type.Interface.body"),Wfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$fr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Zfr=[0,[17,0,[12,41,0]],r(d0)],Qfr=[0,[17,0,0],r(z)],rxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],exr=r(P7),nxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],txr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],uxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],ixr=[0,[17,0,0],r(z)],fxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xxr=r(Xr),oxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],axr=r(tr),cxr=r(Z0),sxr=r(nr),vxr=[0,[17,0,0],r(z)],lxr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],bxr=[0,[15,0],r(N0)],pxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property@ ")],mxr=[0,[17,0,[12,41,0]],r(d0)],_xr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.SpreadProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.SpreadProperty@ ")],yxr=[0,[17,0,[12,41,0]],r(d0)],hxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Indexer"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Indexer@ ")],dxr=[0,[17,0,[12,41,0]],r(d0)],kxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.CallProperty"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.CallProperty@ ")],wxr=[0,[17,0,[12,41,0]],r(d0)],Exr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.InternalSlot"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.InternalSlot@ ")],Sxr=[0,[17,0,[12,41,0]],r(d0)],gxr=[0,[15,0],r(N0)],Fxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Txr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Oxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Ixr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Axr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Nxr=r("Flow_ast.Type.Object.exact"),Cxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pxr=[0,[9,0,0],r(An)],Dxr=[0,[17,0,0],r(z)],Lxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rxr=r(GY),jxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gxr=[0,[9,0,0],r(An)],Mxr=[0,[17,0,0],r(z)],Bxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qxr=r(H4),Uxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hxr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Xxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Yxr=[0,[17,0,0],r(z)],Vxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zxr=r(Xr),Kxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wxr=r(tr),Jxr=r(Z0),$xr=r(nr),Zxr=[0,[17,0,0],r(z)],Qxr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ror=[0,[15,0],r(N0)],eor=r(Yr),nor=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],tor=r("Flow_ast.Type.Object.InternalSlot.id"),uor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ior=[0,[17,0,0],r(z)],xor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oor=r(Bn),aor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cor=[0,[17,0,0],r(z)],sor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vor=r(qu),lor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bor=[0,[9,0,0],r(An)],por=[0,[17,0,0],r(z)],mor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_or=r(nu),yor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hor=[0,[9,0,0],r(An)],dor=[0,[17,0,0],r(z)],kor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wor=r(nU),Eor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sor=[0,[9,0,0],r(An)],gor=[0,[17,0,0],r(z)],For=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tor=r(Xr),Oor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ior=r(tr),Aor=r(Z0),Nor=r(nr),Cor=[0,[17,0,0],r(z)],Por=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Dor=[0,[15,0],r(N0)],Lor=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ror=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jor=[0,[17,0,[12,41,0]],r(d0)],Gor=[0,[15,0],r(N0)],Mor=r(Yr),Bor=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qor=r("Flow_ast.Type.Object.CallProperty.value"),Uor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hor=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xor=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yor=[0,[17,0,[12,41,0]],r(d0)],Vor=[0,[17,0,0],r(z)],zor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Kor=r(nu),Wor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jor=[0,[9,0,0],r(An)],$or=[0,[17,0,0],r(z)],Zor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qor=r(Xr),rar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ear=r(tr),nar=r(Z0),tar=r(nr),uar=[0,[17,0,0],r(z)],iar=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],far=[0,[15,0],r(N0)],xar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oar=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aar=[0,[17,0,[12,41,0]],r(d0)],car=[0,[15,0],r(N0)],sar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],lar=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],bar=[0,[17,0,[12,41,0]],r(d0)],par=[0,[15,0],r(N0)],mar=r(Yr),_ar=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yar=r("Flow_ast.Type.Object.Indexer.id"),har=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dar=r(tr),kar=r(Z0),war=r(nr),Ear=[0,[17,0,0],r(z)],Sar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gar=r(ii),Far=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tar=[0,[17,0,0],r(z)],Oar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Iar=r(Bn),Aar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nar=[0,[17,0,0],r(z)],Car=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Par=r(nu),Dar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Lar=[0,[9,0,0],r(An)],Rar=[0,[17,0,0],r(z)],jar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gar=r(cu),Mar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bar=r(tr),qar=r(Z0),Uar=r(nr),Har=[0,[17,0,0],r(z)],Xar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yar=r(Xr),Var=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zar=r(tr),Kar=r(Z0),War=r(nr),Jar=[0,[17,0,0],r(z)],$ar=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Zar=[0,[15,0],r(N0)],Qar=r(Yr),rcr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ecr=r("Flow_ast.Type.Object.SpreadProperty.argument"),ncr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tcr=[0,[17,0,0],r(z)],ucr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],icr=r(Xr),fcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xcr=r(tr),ocr=r(Z0),acr=r(nr),ccr=[0,[17,0,0],r(z)],scr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vcr=[0,[15,0],r(N0)],lcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],bcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],pcr=[0,[17,0,[12,41,0]],r(d0)],mcr=[0,[15,0],r(N0)],_cr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property.Init"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property.Init@ ")],ycr=[0,[17,0,[12,41,0]],r(d0)],hcr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property.Get"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property.Get@ ")],dcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],kcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],wcr=[0,[17,0,[12,41,0]],r(d0)],Ecr=[0,[17,0,[12,41,0]],r(d0)],Scr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Object.Property.Set"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Object.Property.Set@ ")],gcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Fcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Tcr=[0,[17,0,[12,41,0]],r(d0)],Ocr=[0,[17,0,[12,41,0]],r(d0)],Icr=[0,[15,0],r(N0)],Acr=r(Yr),Ncr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ccr=r("Flow_ast.Type.Object.Property.key"),Pcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dcr=[0,[17,0,0],r(z)],Lcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rcr=r(Bn),jcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gcr=[0,[17,0,0],r(z)],Mcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bcr=r(qu),qcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ucr=[0,[9,0,0],r(An)],Hcr=[0,[17,0,0],r(z)],Xcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ycr=r(nu),Vcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zcr=[0,[9,0,0],r(An)],Kcr=[0,[17,0,0],r(z)],Wcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jcr=r(X3),$cr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zcr=[0,[9,0,0],r(An)],Qcr=[0,[17,0,0],r(z)],rsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],esr=r(nU),nsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tsr=[0,[9,0,0],r(An)],usr=[0,[17,0,0],r(z)],isr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fsr=r(cu),xsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],osr=r(tr),asr=r(Z0),csr=r(nr),ssr=[0,[17,0,0],r(z)],vsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lsr=r(Xr),bsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],psr=r(tr),msr=r(Z0),_sr=r(nr),ysr=[0,[17,0,0],r(z)],hsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dsr=[0,[15,0],r(N0)],ksr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wsr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Esr=[0,[17,0,[12,41,0]],r(d0)],Ssr=[0,[15,0],r(N0)],gsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Fsr=r("Flow_ast.Type.OptionalIndexedAccess.indexed_access"),Tsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Osr=[0,[17,0,0],r(z)],Isr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Asr=r(qu),Nsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Csr=[0,[9,0,0],r(An)],Psr=[0,[17,0,0],r(z)],Dsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Lsr=[0,[15,0],r(N0)],Rsr=r(Yr),jsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Gsr=r("Flow_ast.Type.IndexedAccess._object"),Msr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bsr=[0,[17,0,0],r(z)],qsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Usr=r("index"),Hsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Xsr=[0,[17,0,0],r(z)],Ysr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vsr=r(Xr),zsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ksr=r(tr),Wsr=r(Z0),Jsr=r(nr),$sr=[0,[17,0,0],r(z)],Zsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Qsr=[0,[15,0],r(N0)],r1r=r(Yr),e1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],n1r=r("Flow_ast.Type.Generic.id"),t1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],u1r=[0,[17,0,0],r(z)],i1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],f1r=r(Z2),x1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o1r=r(tr),a1r=r(Z0),c1r=r(nr),s1r=[0,[17,0,0],r(z)],v1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],l1r=r(Xr),b1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],p1r=r(tr),m1r=r(Z0),_1r=r(nr),y1r=[0,[17,0,0],r(z)],h1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],d1r=[0,[15,0],r(N0)],k1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w1r=r("Flow_ast.Type.Generic.Identifier.qualification"),E1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S1r=[0,[17,0,0],r(z)],g1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F1r=r(mt),T1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O1r=[0,[17,0,0],r(z)],I1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],A1r=[0,[15,0],r(N0)],N1r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],C1r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],P1r=[0,[17,0,[12,41,0]],r(d0)],D1r=[0,[15,0],r(N0)],L1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Generic.Identifier.Unqualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Generic.Identifier.Unqualified@ ")],R1r=[0,[17,0,[12,41,0]],r(d0)],j1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Type.Generic.Identifier.Qualified"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Type.Generic.Identifier.Qualified@ ")],G1r=[0,[17,0,[12,41,0]],r(d0)],M1r=[0,[15,0],r(N0)],B1r=r(Yr),q1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],U1r=r("Flow_ast.Type.Function.tparams"),H1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X1r=r(tr),Y1r=r(Z0),V1r=r(nr),z1r=[0,[17,0,0],r(z)],K1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],W1r=r(Dt),J1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$1r=[0,[17,0,0],r(z)],Z1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q1r=r(Ju),rvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],evr=[0,[17,0,0],r(z)],nvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tvr=r(Xr),uvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ivr=r(tr),fvr=r(Z0),xvr=r(nr),ovr=[0,[17,0,0],r(z)],avr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cvr=[0,[15,0],r(N0)],svr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],lvr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],bvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],mvr=r("Flow_ast.Type.Function.Params.this_"),_vr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yvr=r(tr),hvr=r(Z0),dvr=r(nr),kvr=[0,[17,0,0],r(z)],wvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Evr=r(Dt),Svr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Fvr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Tvr=[0,[17,0,0],r(z)],Ovr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ivr=r(xd),Avr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nvr=r(tr),Cvr=r(Z0),Pvr=r(nr),Dvr=[0,[17,0,0],r(z)],Lvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rvr=r(Xr),jvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gvr=r(tr),Mvr=r(Z0),Bvr=r(nr),qvr=[0,[17,0,0],r(z)],Uvr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Hvr=[0,[15,0],r(N0)],Xvr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Yvr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Vvr=[0,[17,0,[12,41,0]],r(d0)],zvr=[0,[15,0],r(N0)],Kvr=r(Yr),Wvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Jvr=r("Flow_ast.Type.Function.ThisParam.annot"),$vr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zvr=[0,[17,0,0],r(z)],Qvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r2r=r(Xr),e2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n2r=r(tr),t2r=r(Z0),u2r=r(nr),i2r=[0,[17,0,0],r(z)],f2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],x2r=[0,[15,0],r(N0)],o2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],a2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],c2r=[0,[17,0,[12,41,0]],r(d0)],s2r=[0,[15,0],r(N0)],v2r=r(Yr),l2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],b2r=r("Flow_ast.Type.Function.RestParam.argument"),p2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m2r=[0,[17,0,0],r(z)],_2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],y2r=r(Xr),h2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d2r=r(tr),k2r=r(Z0),w2r=r(nr),E2r=[0,[17,0,0],r(z)],S2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],g2r=[0,[15,0],r(N0)],F2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],T2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O2r=[0,[17,0,[12,41,0]],r(d0)],I2r=[0,[15,0],r(N0)],A2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],N2r=r("Flow_ast.Type.Function.Param.name"),C2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P2r=r(tr),D2r=r(Z0),L2r=r(nr),R2r=[0,[17,0,0],r(z)],j2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G2r=r(Qc),M2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B2r=[0,[17,0,0],r(z)],q2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U2r=r(qu),H2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X2r=[0,[9,0,0],r(An)],Y2r=[0,[17,0,0],r(z)],V2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],z2r=[0,[15,0],r(N0)],K2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],W2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],J2r=[0,[17,0,[12,41,0]],r(d0)],$2r=[0,[15,0],r(N0)],Z2r=r(Yr),Q2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rlr=r("Flow_ast.ComputedKey.expression"),elr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nlr=[0,[17,0,0],r(z)],tlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ulr=r(Xr),ilr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],flr=r(tr),xlr=r(Z0),olr=r(nr),alr=[0,[17,0,0],r(z)],clr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],slr=[0,[15,0],r(N0)],vlr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],llr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],blr=[0,[17,0,[12,41,0]],r(d0)],plr=[0,[15,0],r(N0)],mlr=r(Yr),_lr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ylr=r("Flow_ast.Variance.kind"),hlr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dlr=[0,[17,0,0],r(z)],klr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wlr=r(Xr),Elr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Slr=r(tr),glr=r(Z0),Flr=r(nr),Tlr=[0,[17,0,0],r(z)],Olr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ilr=[0,[15,0],r(N0)],Alr=r("Flow_ast.Variance.Minus"),Nlr=r("Flow_ast.Variance.Plus"),Clr=[0,[15,0],r(N0)],Plr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dlr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Llr=[0,[17,0,[12,41,0]],r(d0)],Rlr=[0,[15,0],r(N0)],jlr=r(Yr),Glr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Mlr=r("Flow_ast.BooleanLiteral.value"),Blr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qlr=[0,[9,0,0],r(An)],Ulr=[0,[17,0,0],r(z)],Hlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xlr=r(Xr),Ylr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vlr=r(tr),zlr=r(Z0),Klr=r(nr),Wlr=[0,[17,0,0],r(z)],Jlr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$lr=[0,[15,0],r(N0)],Zlr=r(Yr),Qlr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rbr=r("Flow_ast.BigIntLiteral.approx_value"),ebr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nbr=[0,[8,[0,0,5],0,0,0],r(r8)],tbr=[0,[17,0,0],r(z)],ubr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ibr=r(x1),fbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xbr=[0,[3,0,0],r(Vt)],obr=[0,[17,0,0],r(z)],abr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cbr=r(Xr),sbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vbr=r(tr),lbr=r(Z0),bbr=r(nr),pbr=[0,[17,0,0],r(z)],mbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_br=[0,[15,0],r(N0)],ybr=r(Yr),hbr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dbr=r("Flow_ast.NumberLiteral.value"),kbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wbr=[0,[8,[0,0,5],0,0,0],r(r8)],Ebr=[0,[17,0,0],r(z)],Sbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gbr=r(c7),Fbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tbr=[0,[3,0,0],r(Vt)],Obr=[0,[17,0,0],r(z)],Ibr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Abr=r(Xr),Nbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cbr=r(tr),Pbr=r(Z0),Dbr=r(nr),Lbr=[0,[17,0,0],r(z)],Rbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jbr=[0,[15,0],r(N0)],Gbr=r(Yr),Mbr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Bbr=r("Flow_ast.StringLiteral.value"),qbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ubr=[0,[3,0,0],r(Vt)],Hbr=[0,[17,0,0],r(z)],Xbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ybr=r(c7),Vbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zbr=[0,[3,0,0],r(Vt)],Kbr=[0,[17,0,0],r(z)],Wbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jbr=r(Xr),$br=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zbr=r(tr),Qbr=r(Z0),r4r=r(nr),e4r=[0,[17,0,0],r(z)],n4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],t4r=[0,[15,0],r(N0)],u4r=r("Flow_ast.Literal.Null"),i4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.String"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.String@ ")],f4r=[0,[3,0,0],r(Vt)],x4r=[0,[17,0,[12,41,0]],r(d0)],o4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.Boolean"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.Boolean@ ")],a4r=[0,[9,0,0],r(An)],c4r=[0,[17,0,[12,41,0]],r(d0)],s4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.Number"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.Number@ ")],v4r=[0,[8,[0,0,5],0,0,0],r(r8)],l4r=[0,[17,0,[12,41,0]],r(d0)],b4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.BigInt"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.BigInt@ ")],p4r=[0,[8,[0,0,5],0,0,0],r(r8)],m4r=[0,[17,0,[12,41,0]],r(d0)],_4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("Flow_ast.Literal.RegExp"),[17,[0,r(v),1,0],0]]]],r("(@[<2>Flow_ast.Literal.RegExp@ ")],y4r=[0,[17,0,[12,41,0]],r(d0)],h4r=[0,[15,0],r(N0)],d4r=r(Yr),k4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w4r=r("Flow_ast.Literal.value"),E4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S4r=[0,[17,0,0],r(z)],g4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F4r=r(c7),T4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O4r=[0,[3,0,0],r(Vt)],I4r=[0,[17,0,0],r(z)],A4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],N4r=r(Xr),C4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P4r=r(tr),D4r=r(Z0),L4r=r(nr),R4r=[0,[17,0,0],r(z)],j4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],G4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M4r=r("Flow_ast.Literal.RegExp.pattern"),B4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q4r=[0,[3,0,0],r(Vt)],U4r=[0,[17,0,0],r(z)],H4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X4r=r(jX),Y4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V4r=[0,[3,0,0],r(Vt)],z4r=[0,[17,0,0],r(z)],K4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],W4r=[0,[15,0],r(N0)],J4r=[0,[15,0],r(N0)],$4r=r(Yr),Z4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Q4r=r("Flow_ast.PrivateName.name"),r8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e8r=[0,[3,0,0],r(Vt)],n8r=[0,[17,0,0],r(z)],t8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u8r=r(Xr),i8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f8r=r(tr),x8r=r(Z0),o8r=r(nr),a8r=[0,[17,0,0],r(z)],c8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],s8r=[0,[15,0],r(N0)],v8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],l8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],b8r=[0,[17,0,[12,41,0]],r(d0)],p8r=[0,[15,0],r(N0)],m8r=r(Yr),_8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],y8r=r("Flow_ast.Identifier.name"),h8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d8r=[0,[3,0,0],r(Vt)],k8r=[0,[17,0,0],r(z)],w8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],E8r=r(Xr),S8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],g8r=r(tr),F8r=r(Z0),T8r=r(nr),O8r=[0,[17,0,0],r(z)],I8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],A8r=[0,[15,0],r(N0)],N8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],C8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],P8r=[0,[17,0,[12,41,0]],r(d0)],D8r=[0,[15,0],r(N0)],L8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],R8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],G8r=r("Flow_ast.Syntax.leading"),M8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],q8r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],U8r=[0,[17,0,0],r(z)],H8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X8r=r("trailing"),Y8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],z8r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],K8r=[0,[17,0,0],r(z)],W8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],J8r=r("internal"),$8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Z8r=[0,[17,0,0],r(z)],Q8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],r3r=[0,[0,0,0]],e3r=[0,r(Su),21,2],n3r=[0,[0,0,0,0,0]],t3r=[0,r(Su),32,2],u3r=[0,[0,0,0,0,0]],i3r=[0,r(Su),43,2],f3r=[0,[0,[0,[0,0,0]],0,0,0,0]],x3r=[0,r(Su),70,2],o3r=[0,[0,0,0]],a3r=[0,r(Su),80,2],c3r=[0,[0,0,0]],s3r=[0,r(Su),90,2],v3r=[0,[0,0,0]],l3r=[0,r(Su),R7,2],b3r=[0,[0,0,0]],p3r=[0,r(Su),Xt,2],m3r=[0,[0,0,0,0,0,0,0]],_3r=[0,r(Su),br,2],y3r=[0,[0,0,0,0,0]],h3r=[0,r(Su),KH,2],d3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],k3r=[0,r(Su),485,2],w3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],E3r=[0,r(Su),BX,2],S3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],g3r=[0,r(Su),1460,2],F3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],T3r=[0,r(Su),1604,2],O3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],I3r=[0,r(Su),1689,2],A3r=[0,[0,0,0,0,0,0,0]],N3r=[0,r(Su),1705,2],C3r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],P3r=[0,r(Su),1828,2],D3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],L3r=[0,r(Su),1895,2],R3r=[0,[0,0,0,0,0]],j3r=[0,r(Su),1907,2],G3r=[0,[0,0,0]],M3r=[0,[0,0,0,0,0]],B3r=[0,[0,0,0,0,0]],q3r=[0,[0,[0,[0,0,0]],0,0,0,0]],U3r=[0,[0,0,0]],H3r=[0,[0,0,0]],X3r=[0,[0,0,0]],Y3r=[0,[0,0,0]],V3r=[0,[0,0,0,0,0,0,0]],z3r=[0,[0,0,0,0,0]],K3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],W3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],J3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],$3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],Z3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],Q3r=[0,[0,0,0,0,0,0,0]],r6r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],e6r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],n6r=[0,[0,0,0,0,0]],t6r=[0,1],u6r=[0,0],i6r=[0,2],f6r=[0,0],x6r=[0,1],o6r=[0,1],a6r=[0,1],c6r=[0,1],s6r=[0,1],v6r=[0,0,0],l6r=[0,0,0],b6r=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],p6r=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],m6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.LibFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.LibFile@ ")],_6r=[0,[3,0,0],r(Vt)],y6r=[0,[17,0,[12,41,0]],r(d0)],h6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.SourceFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.SourceFile@ ")],d6r=[0,[3,0,0],r(Vt)],k6r=[0,[17,0,[12,41,0]],r(d0)],w6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.JsonFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.JsonFile@ ")],E6r=[0,[3,0,0],r(Vt)],S6r=[0,[17,0,[12,41,0]],r(d0)],g6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r("File_key.ResourceFile"),[17,[0,r(v),1,0],0]]]],r("(@[<2>File_key.ResourceFile@ ")],F6r=[0,[3,0,0],r(Vt)],T6r=[0,[17,0,[12,41,0]],r(d0)],O6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],I6r=r("Loc.line"),A6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N6r=[0,[4,0,0,0,0],r(N2)],C6r=[0,[17,0,0],r(z)],P6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],D6r=r(I2),L6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R6r=[0,[4,0,0,0,0],r(N2)],j6r=[0,[17,0,0],r(z)],G6r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],M6r=[0,[15,0],r(N0)],B6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q6r=r("Loc.source"),U6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H6r=r(tr),X6r=r(Z0),Y6r=r(nr),V6r=[0,[17,0,0],r(z)],z6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K6r=r(g7),W6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],J6r=[0,[17,0,0],r(z)],$6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Z6r=r("_end"),Q6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rpr=[0,[17,0,0],r(z)],epr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],npr=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(De),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],tpr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],upr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],ipr=r(lV),fpr=r(jY),xpr=r(PX),opr=r(zY),apr=r(S3),cpr=r(ZH),spr=r(cv),vpr=r(OU),lpr=r(vY),bpr=r(_X),ppr=r(sX),mpr=r(xs),_pr=r(Fa),ypr=r(UU),hpr=r(WH),dpr=r(Qu),kpr=r(XY),wpr=r(OH),Epr=r(I6),Spr=r(jd),gpr=r(R2),Fpr=r(j2),Tpr=r(WU),Opr=r(BU),Ipr=r(nY),Apr=r(xX),Npr=r(lH),Cpr=r(hX),Ppr=r(xU),Dpr=r(zX),Lpr=r(aX),Rpr=r(bH),jpr=r(wH),Gpr=r(XH),Mpr=r(rV),Bpr=r(AU),qpr=r(tX),Upr=r("Set.remove_min_elt"),Hpr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xpr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,ts,0]],r("@[<2>{")],Ypr=[0,[12,32,0],r(pi)],Vpr=[0,[12,32,0],r(pi)],zpr=[0,[17,[0,r(Ce),0,0],[12,br,[17,0,0]]],r("@,}@]")],Kpr=[0,r("src/hack_forked/utils/collections/flow_set.ml"),363,14],Wpr=[0,[0,36,37],[0,48,58],[0,65,91],[0,95,96],[0,97,ts],[0,qg,pg],[0,Ai,Yg],[0,lS,hk],[0,md,nw],[0,rt,xT],[0,y6,Dw],[0,wt,706],[0,rX,722],[0,736,741],[0,748,749],[0,750,751],[0,768,885],[0,886,888],[0,890,894],[0,895,896],[0,902,907],[0,908,ZX],[0,910,930],[0,UX,1014],[0,1015,1154],[0,1155,1160],[0,1162,CU],[0,1329,1367],[0,1369,1370],[0,1376,1417],[0,1425,1470],[0,1471,1472],[0,1473,1475],[0,1476,1478],[0,1479,1480],[0,1488,1515],[0,1519,1523],[0,1552,1563],[0,1568,1642],[0,1646,1748],[0,1749,1757],[0,1759,1769],[0,1770,1789],[0,1791,1792],[0,1808,1867],[0,1869,1970],[0,1984,2038],[0,2042,2043],[0,2045,2046],[0,Hh,2094],[0,2112,2140],[0,2144,2155],[0,2208,2229],[0,2230,2238],[0,2259,2274],[0,2275,2404],[0,2406,2416],[0,2417,2436],[0,2437,2445],[0,2447,2449],[0,2451,2473],[0,2474,2481],[0,2482,2483],[0,2486,2490],[0,2492,2501],[0,2503,2505],[0,2507,2511],[0,2519,2520],[0,2524,2526],[0,2527,2532],[0,2534,2546],[0,2556,2557],[0,2558,2559],[0,2561,2564],[0,2565,2571],[0,2575,2577],[0,2579,2601],[0,2602,2609],[0,2610,2612],[0,2613,2615],[0,2616,2618],[0,2620,2621],[0,2622,2627],[0,2631,2633],[0,2635,2638],[0,2641,2642],[0,2649,2653],[0,2654,2655],[0,2662,2678],[0,2689,2692],[0,2693,2702],[0,2703,2706],[0,2707,2729],[0,2730,2737],[0,2738,2740],[0,2741,2746],[0,2748,2758],[0,2759,2762],[0,2763,2766],[0,2768,2769],[0,2784,2788],[0,2790,2800],[0,2809,2816],[0,2817,2820],[0,2821,2829],[0,2831,2833],[0,2835,2857],[0,2858,2865],[0,2866,2868],[0,2869,2874],[0,2876,2885],[0,2887,2889],[0,2891,2894],[0,2902,2904],[0,2908,2910],[0,2911,2916],[0,2918,2928],[0,2929,2930],[0,2946,2948],[0,2949,2955],[0,2958,2961],[0,2962,2966],[0,2969,2971],[0,2972,2973],[0,2974,2976],[0,2979,2981],[0,2984,2987],[0,2990,3002],[0,3006,3011],[0,3014,3017],[0,3018,3022],[0,3024,3025],[0,3031,3032],[0,3046,3056],[0,3072,3085],[0,3086,3089],[0,3090,3113],[0,3114,3130],[0,3133,3141],[0,3142,3145],[0,3146,3150],[0,3157,3159],[0,3160,3163],[0,3168,3172],[0,3174,3184],[0,3200,3204],[0,3205,3213],[0,3214,3217],[0,3218,3241],[0,3242,3252],[0,3253,3258],[0,3260,3269],[0,3270,3273],[0,3274,3278],[0,3285,3287],[0,3294,3295],[0,3296,3300],[0,3302,3312],[0,3313,3315],[0,3328,3332],[0,3333,3341],[0,3342,3345],[0,3346,3397],[0,3398,3401],[0,3402,3407],[0,3412,3416],[0,3423,3428],[0,3430,3440],[0,3450,3456],[0,3458,3460],[0,3461,3479],[0,3482,3506],[0,3507,3516],[0,3517,3518],[0,3520,3527],[0,3530,3531],[0,3535,3541],[0,3542,3543],[0,3544,3552],[0,3558,3568],[0,3570,3572],[0,3585,3643],[0,3648,3663],[0,3664,3674],[0,3713,3715],[0,3716,3717],[0,3718,3723],[0,3724,3748],[0,3749,3750],[0,3751,3774],[0,3776,3781],[0,3782,3783],[0,3784,3790],[0,3792,3802],[0,3804,3808],[0,3840,3841],[0,3864,3866],[0,3872,3882],[0,3893,3894],[0,3895,3896],[0,3897,3898],[0,3902,3912],[0,3913,3949],[0,3953,3973],[0,3974,3992],[0,3993,4029],[0,4038,4039],[0,vX,4170],[0,4176,4254],[0,4256,4294],[0,4295,4296],[0,4301,4302],[0,4304,4347],[0,4348,4681],[0,4682,4686],[0,4688,4695],[0,4696,4697],[0,4698,4702],[0,4704,4745],[0,4746,4750],[0,4752,4785],[0,4786,4790],[0,4792,4799],[0,4800,4801],[0,4802,4806],[0,4808,4823],[0,4824,4881],[0,4882,4886],[0,4888,4955],[0,4957,4960],[0,4969,4978],[0,4992,5008],[0,5024,5110],[0,5112,5118],[0,5121,5741],[0,5743,Ev],[0,5761,5787],[0,5792,5867],[0,5870,5881],[0,5888,5901],[0,5902,5909],[0,5920,5941],[0,5952,5972],[0,5984,5997],[0,5998,6001],[0,6002,6004],[0,6016,6100],[0,6103,6104],[0,6108,6110],[0,6112,6122],[0,6155,6158],[0,6160,6170],[0,6176,6265],[0,6272,6315],[0,6320,6390],[0,6400,6431],[0,6432,6444],[0,6448,6460],[0,6470,6510],[0,6512,6517],[0,6528,6572],[0,6576,6602],[0,6608,6619],[0,6656,6684],[0,6688,6751],[0,6752,6781],[0,6783,6794],[0,6800,6810],[0,6823,6824],[0,6832,6846],[0,6912,6988],[0,6992,7002],[0,7019,7028],[0,7040,7156],[0,7168,7224],[0,7232,7242],[0,7245,7294],[0,7296,7305],[0,7312,7355],[0,7357,7360],[0,7376,7379],[0,7380,7419],[0,7424,7674],[0,7675,7958],[0,7960,7966],[0,7968,8006],[0,8008,8014],[0,8016,8024],[0,8025,8026],[0,8027,8028],[0,8029,8030],[0,8031,8062],[0,8064,8117],[0,8118,8125],[0,8126,8127],[0,8130,8133],[0,8134,8141],[0,8144,8148],[0,8150,8156],[0,8160,8173],[0,8178,8181],[0,8182,8189],[0,kY,vU],[0,8255,8257],[0,8276,8277],[0,ep,8306],[0,O3,8320],[0,8336,8349],[0,8400,8413],[0,8417,8418],[0,8421,8433],[0,x3,8451],[0,R3,8456],[0,8458,g4],[0,m6,8470],[0,iU,8478],[0,t8,$3],[0,Q8,sp],[0,P8,N8],[0,8490,8506],[0,8508,8512],[0,8517,8522],[0,s8,8527],[0,8544,8585],[0,11264,11311],[0,11312,11359],[0,11360,11493],[0,11499,11508],[0,11520,G4],[0,B8,11560],[0,N3,11566],[0,11568,11624],[0,p4,11632],[0,P6,11671],[0,11680,j4],[0,11688,z8],[0,11696,o8],[0,11704,K8],[0,11712,z6],[0,11720,j8],[0,11728,F6],[0,11736,11743],[0,11744,11776],[0,12293,12296],[0,12321,T3],[0,12337,12342],[0,12344,12349],[0,12353,12439],[0,12441,E3],[0,12449,q4],[0,12540,12544],[0,12549,E8],[0,12593,12687],[0,12704,12731],[0,12784,12800],[0,13312,19894],[0,19968,40944],[0,40960,42125],[0,42192,42238],[0,42240,42509],[0,42512,42540],[0,42560,42608],[0,42612,U3],[0,42623,42738],[0,42775,42784],[0,42786,42889],[0,42891,42944],[0,42946,42951],[0,F8,43048],[0,43072,43124],[0,43136,43206],[0,43216,43226],[0,43232,43256],[0,n3,_8],[0,43261,43310],[0,43312,43348],[0,43360,43389],[0,43392,43457],[0,k8,43482],[0,43488,v6],[0,43520,43575],[0,43584,43598],[0,43600,43610],[0,43616,43639],[0,lp,43715],[0,43739,43742],[0,43744,43760],[0,43762,43767],[0,43777,43783],[0,43785,43791],[0,43793,43799],[0,43808,k6],[0,43816,H3],[0,43824,av],[0,43868,o3],[0,43888,44011],[0,44012,44014],[0,44016,44026],[0,44032,55204],[0,55216,55239],[0,55243,55292],[0,63744,64110],[0,64112,64218],[0,64256,64263],[0,64275,64280],[0,e3,ip],[0,64298,Qn],[0,64312,z3],[0,L6,R4],[0,64320,q3],[0,64323,D8],[0,64326,64434],[0,64467,64830],[0,64848,64912],[0,64914,64968],[0,65008,65020],[0,65024,65040],[0,65056,65072],[0,65075,65077],[0,65101,65104],[0,65136,t3],[0,65142,65277],[0,65296,65306],[0,65313,65339],[0,65343,Q4],[0,65345,65371],[0,65382,65471],[0,65474,65480],[0,65482,65488],[0,65490,65496],[0,65498,65501],[0,fw,rp],[0,65549,$8],[0,65576,z4],[0,65596,S6],[0,65599,65614],[0,65616,65630],[0,65664,65787],[0,65856,65909],[0,66045,66046],[0,66176,66205],[0,66208,66257],[0,66272,66273],[0,66304,66336],[0,66349,66379],[0,66384,66427],[0,66432,66462],[0,66464,66500],[0,66504,Z3],[0,66513,66518],[0,66560,66718],[0,66720,66730],[0,66736,66772],[0,66776,66812],[0,66816,66856],[0,66864,66916],[0,67072,67383],[0,67392,67414],[0,67424,67432],[0,67584,67590],[0,op,J4],[0,67594,p8],[0,67639,67641],[0,M6,67645],[0,67647,67670],[0,67680,67703],[0,67712,67743],[0,67808,X8],[0,67828,67830],[0,67840,67862],[0,67872,67898],[0,67968,68024],[0,68030,68032],[0,S7,68100],[0,68101,68103],[0,68108,b4],[0,68117,Z8],[0,68121,68150],[0,68152,68155],[0,68159,68160],[0,68192,68221],[0,68224,68253],[0,68288,J6],[0,68297,68327],[0,68352,68406],[0,68416,68438],[0,68448,68467],[0,68480,68498],[0,68608,68681],[0,68736,68787],[0,68800,68851],[0,68864,68904],[0,68912,68922],[0,69376,69405],[0,J8,69416],[0,69424,69457],[0,69600,69623],[0,69632,69703],[0,69734,B3],[0,69759,69819],[0,69840,69865],[0,69872,69882],[0,69888,69941],[0,69942,69952],[0,m4,F3],[0,69968,70004],[0,X6,70007],[0,70016,70085],[0,70089,70093],[0,70096,h8],[0,i3,70109],[0,70144,A8],[0,70163,70200],[0,70206,70207],[0,70272,y3],[0,I8,fp],[0,70282,O8],[0,70287,c8],[0,70303,70313],[0,70320,70379],[0,70384,70394],[0,70400,u6],[0,70405,70413],[0,70415,70417],[0,70419,f3],[0,70442,a8],[0,70450,C4],[0,70453,70458],[0,70459,70469],[0,70471,70473],[0,70475,70478],[0,j6,70481],[0,70487,70488],[0,70493,70500],[0,70502,70509],[0,70512,70517],[0,70656,70731],[0,70736,70746],[0,W6,70752],[0,70784,Q3],[0,Z6,70856],[0,70864,70874],[0,71040,71094],[0,71096,71105],[0,71128,71134],[0,71168,71233],[0,u8,71237],[0,71248,71258],[0,71296,71353],[0,71360,71370],[0,71424,71451],[0,71453,71468],[0,71472,71482],[0,71680,71739],[0,71840,71914],[0,71935,71936],[0,72096,72104],[0,72106,72152],[0,72154,up],[0,p3,72165],[0,M8,72255],[0,72263,72264],[0,u3,72346],[0,P4,72350],[0,72384,72441],[0,72704,W3],[0,72714,72759],[0,72760,72769],[0,72784,72794],[0,72818,72848],[0,72850,72872],[0,72873,72887],[0,72960,D3],[0,72968,h4],[0,72971,73015],[0,73018,73019],[0,73020,73022],[0,73023,73032],[0,73040,73050],[0,73056,R6],[0,73063,h3],[0,73066,73103],[0,73104,73106],[0,73107,73113],[0,73120,73130],[0,73440,73463],[0,73728,74650],[0,74752,74863],[0,74880,75076],[0,77824,78895],[0,82944,83527],[0,92160,92729],[0,92736,92767],[0,92768,92778],[0,92880,92910],[0,92912,92917],[0,92928,92983],[0,92992,92996],[0,93008,93018],[0,93027,93048],[0,93053,93072],[0,93760,93824],[0,93952,94027],[0,Z4,94088],[0,94095,94112],[0,94176,b6],[0,h6,94180],[0,94208,100344],[0,100352,101107],[0,110592,110879],[0,110928,110931],[0,110948,110952],[0,110960,111356],[0,113664,113771],[0,113776,113789],[0,113792,113801],[0,113808,113818],[0,113821,113823],[0,119141,119146],[0,119149,119155],[0,119163,119171],[0,119173,119180],[0,119210,119214],[0,119362,119365],[0,119808,T6],[0,119894,M3],[0,119966,119968],[0,d3,119971],[0,119973,119975],[0,119977,Q6],[0,119982,l8],[0,l4,G6],[0,119997,I3],[0,120005,L4],[0,120071,120075],[0,120077,N6],[0,120086,vp],[0,120094,C3],[0,120123,r6],[0,120128,B4],[0,G3,120135],[0,120138,D6],[0,120146,120486],[0,120488,D4],[0,120514,V3],[0,120540,c6],[0,120572,X4],[0,120598,c3],[0,120630,V4],[0,120656,w6],[0,120688,v4],[0,120714,l6],[0,120746,k3],[0,120772,120780],[0,120782,120832],[0,121344,121399],[0,121403,121453],[0,121461,121462],[0,121476,121477],[0,121499,121504],[0,121505,121520],[0,122880,122887],[0,122888,122905],[0,122907,122914],[0,122915,122917],[0,122918,122923],[0,123136,123181],[0,123184,123198],[0,123200,123210],[0,ap,123215],[0,123584,123642],[0,124928,125125],[0,125136,125143],[0,125184,125260],[0,125264,125274],[0,126464,C6],[0,126469,J3],[0,126497,a3],[0,g8,126501],[0,e8,m8],[0,126505,s6],[0,126516,f8],[0,_6,x8],[0,w3,126524],[0,K3,126531],[0,L8,U6],[0,S8,n8],[0,s3,M4],[0,126541,F4],[0,126545,g6],[0,d8,126549],[0,i8,E4],[0,fn,B6],[0,S4,G8],[0,q6,s4],[0,t6,O4],[0,126561,xp],[0,V6,126565],[0,126567,l3],[0,126572,x6],[0,126580,W8],[0,126585,L3],[0,$4,w8],[0,126592,V8],[0,126603,126620],[0,126625,j3],[0,126629,r3],[0,126635,126652],[0,131072,173783],[0,173824,177973],[0,177984,178206],[0,178208,183970],[0,183984,191457],[0,194560,195102],[0,917760,918e3]],Jpr=r(O2),$pr=r(dv),Zpr=r(Tv),Qpr=r(K4),r5r=r("Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead."),e5r=r("Enum members are separated with `,`. Replace `;` with `,`."),n5r=r("Unexpected reserved word"),t5r=r("Unexpected reserved type"),u5r=r("Unexpected `super` outside of a class method"),i5r=r("`super()` is only valid in a class constructor"),f5r=r("Unexpected end of input"),x5r=r("Unexpected variance sigil"),o5r=r("Unexpected static modifier"),a5r=r("Unexpected proto modifier"),c5r=r("Type aliases are not allowed in untyped mode"),s5r=r("Opaque type aliases are not allowed in untyped mode"),v5r=r("Type annotations are not allowed in untyped mode"),l5r=r("Type declarations are not allowed in untyped mode"),b5r=r("Type imports are not allowed in untyped mode"),p5r=r("Type exports are not allowed in untyped mode"),m5r=r("Interfaces are not allowed in untyped mode"),_5r=r("Spreading a type is only allowed inside an object type"),y5r=r("Explicit inexact syntax must come at the end of an object type"),h5r=r("Explicit inexact syntax cannot appear inside an explicit exact object type"),d5r=r("Explicit inexact syntax can only appear inside an object type"),k5r=r("Illegal newline after throw"),w5r=r("A bigint literal must be an integer"),E5r=r("A bigint literal cannot use exponential notation"),S5r=r("Invalid regular expression"),g5r=r("Invalid regular expression: missing /"),F5r=r("Invalid left-hand side in assignment"),T5r=r("Invalid left-hand side in exponentiation expression"),O5r=r("Invalid left-hand side in for-in"),I5r=r("Invalid left-hand side in for-of"),A5r=r("Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`."),N5r=r("found an expression instead"),C5r=r("Expected an object pattern, array pattern, or an identifier but "),P5r=r("More than one default clause in switch statement"),D5r=r("Missing catch or finally after try"),L5r=r("Illegal continue statement"),R5r=r("Illegal break statement"),j5r=r("Illegal return statement"),G5r=r("Illegal Unicode escape"),M5r=r("Strict mode code may not include a with statement"),B5r=r("Catch variable may not be eval or arguments in strict mode"),q5r=r("Variable name may not be eval or arguments in strict mode"),U5r=r("Parameter name eval or arguments is not allowed in strict mode"),H5r=r("Strict mode function may not have duplicate parameter names"),X5r=r('Illegal "use strict" directive in function with non-simple parameter list'),Y5r=r("Function name may not be eval or arguments in strict mode"),V5r=r("Octal literals are not allowed in strict mode."),z5r=r("Number literals with leading zeros are not allowed in strict mode."),K5r=r("Delete of an unqualified identifier in strict mode."),W5r=r("Duplicate data property in object literal not allowed in strict mode"),J5r=r("Object literal may not have data and accessor property with the same name"),$5r=r("Object literal may not have multiple get/set accessors with the same name"),Z5r=r("`typeof` can only be used to get the type of variables."),Q5r=r("Assignment to eval or arguments is not allowed in strict mode"),rmr=r("Postfix increment/decrement may not have eval or arguments operand in strict mode"),emr=r("Prefix increment/decrement may not have eval or arguments operand in strict mode"),nmr=r("Use of future reserved word in strict mode"),tmr=r("JSX attributes must only be assigned a non-empty expression"),umr=r("JSX value should be either an expression or a quoted JSX text"),imr=r("Const must be initialized"),fmr=r("Destructuring assignment must be initialized"),xmr=r("Illegal newline before arrow"),omr=r(aF),amr=r("Async functions can only be declared at top level or "),cmr=r(aF),smr=r("Generators can only be declared at top level or "),vmr=r("elements must be wrapped in an enclosing parent tag"),lmr=r("Unexpected token <. Remember, adjacent JSX "),bmr=r("Rest parameter must be final parameter of an argument list"),pmr=r("Rest element must be final element of an array pattern"),mmr=r("Rest property must be final property of an object pattern"),_mr=r("async is an implementation detail and isn't necessary for your declare function statement. It is sufficient for your declare function to just have a Promise return type."),ymr=r("`declare` modifier can only appear on class fields."),hmr=r("Unexpected token `=`. Initializers are not allowed in a `declare`."),dmr=r("Unexpected token `=`. Initializers are not allowed in a `declare opaque type`."),kmr=r("`declare export let` is not supported. Use `declare export var` instead."),wmr=r("`declare export const` is not supported. Use `declare export var` instead."),Emr=r("`declare export type` is not supported. Use `export type` instead."),Smr=r("`declare export interface` is not supported. Use `export interface` instead."),gmr=r("`export * as` is an early-stage proposal and is not enabled by default. To enable support in the parser, use the `esproposal_export_star_as` option"),Fmr=r("Found a decorator in an unsupported position."),Tmr=r("Type parameter declaration needs a default, since a preceding type parameter declaration has a default."),Omr=r("Duplicate `declare module.exports` statement!"),Imr=r("Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module xor they are a CommonJS module."),Amr=r("Getter should have zero parameters"),Nmr=r("Setter should have exactly one parameter"),Cmr=r("`import type` or `import typeof`!"),Pmr=r("Imports within a `declare module` body must always be "),Dmr=r("The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements"),Lmr=r("Missing comma between import specifiers"),Rmr=r("Missing comma between export specifiers"),jmr=r("Malformed unicode"),Gmr=r("Classes may only have one constructor"),Mmr=r("Private fields may not be deleted."),Bmr=r("Private fields can only be referenced from within a class."),qmr=r("You may not access a private field through the `super` keyword."),Umr=r("Yield expression not allowed in formal parameter"),Hmr=r("`await` is an invalid identifier in async functions"),Xmr=r("`yield` is an invalid identifier in generators"),Ymr=r("either a `let` binding pattern, or a member expression."),Vmr=r("`let [` is ambiguous in this position because it is "),zmr=r("Literals cannot be used as shorthand properties."),Kmr=r("Computed properties must have a value."),Wmr=r("Object pattern can't contain methods"),Jmr=r("A trailing comma is not permitted after the rest element"),$mr=r("An optional chain may not be used in a `new` expression."),Zmr=r("Template literals may not be used in an optional chain."),Qmr=r("Unexpected whitespace between `#` and identifier"),r9r=r("A type annotation is required for the `this` parameter."),e9r=r("The `this` parameter must be the first function parameter."),n9r=r("The `this` parameter cannot be optional."),t9r=r("A getter cannot have a `this` parameter."),u9r=r("A setter cannot have a `this` parameter."),i9r=r("Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared."),f9r=r("Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions."),x9r=[0,[11,r("Boolean enum members need to be initialized. Use either `"),[2,0,[11,r(" = true,` or `"),[2,0,[11,r(" = false,` in enum `"),[2,0,[11,r(Es),0]]]]]]],r("Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`.")],o9r=[0,[11,r("Enum member names need to be unique, but the name `"),[2,0,[11,r("` has already been used before in enum `"),[2,0,[11,r(Es),0]]]]],r("Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`.")],a9r=[0,[11,r(IU),[2,0,[11,r("` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),0]]],r("Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.")],c9r=[0,[11,r("Use one of `boolean`, `number`, `string`, or `symbol` in enum `"),[2,0,[11,r(Es),0]]],r("Use one of `boolean`, `number`, `string`, or `symbol` in enum `%s`.")],s9r=[0,[11,r("Enum type `"),[2,0,[11,r("` is not valid. "),[2,0,0]]]],r("Enum type `%s` is not valid. %s")],v9r=[0,[11,r("Supplied enum type is not valid. "),[2,0,0]],r("Supplied enum type is not valid. %s")],l9r=[0,[11,r("Enum member names and initializers are separated with `=`. Replace `"),[2,0,[11,r(":` with `"),[2,0,[11,r(" =`."),0]]]]],r("Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`.")],b9r=[0,[11,r("Symbol enum members cannot be initialized. Use `"),[2,0,[11,r(",` in enum `"),[2,0,[11,r(Es),0]]]]],r("Symbol enum members cannot be initialized. Use `%s,` in enum `%s`.")],p9r=[0,[11,r(IU),[2,0,[11,r("` has type `"),[2,0,[11,r("`, so the initializer of `"),[2,0,[11,r("` needs to be a "),[2,0,[11,r(" literal."),0]]]]]]]]],r("Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal.")],m9r=[0,[11,r("The enum member initializer for `"),[2,0,[11,r("` needs to be a literal (either a boolean, number, or string) in enum `"),[2,0,[11,r(Es),0]]]]],r("The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`.")],_9r=[0,[11,r("Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `"),[2,0,[11,r("`, consider using `"),[2,0,[11,r("`, in enum `"),[2,0,[11,r(Es),0]]]]]]],r("Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`.")],y9r=r("The `...` must come at the end of the enum body. Remove the trailing comma."),h9r=r("The `...` must come after all enum members. Move it to the end of the enum body."),d9r=[0,[11,r("Number enum members need to be initialized, e.g. `"),[2,0,[11,r(" = 1,` in enum `"),[2,0,[11,r(Es),0]]]]],r("Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`.")],k9r=[0,[11,r("String enum members need to consistently either all use initializers, or use no initializers, in enum "),[2,0,[12,46,0]]],r("String enum members need to consistently either all use initializers, or use no initializers, in enum %s.")],w9r=[0,[11,r(UH),[2,0,0]],r("Unexpected %s")],E9r=[0,[11,r(UH),[2,0,[11,r(", expected "),[2,0,0]]]],r("Unexpected %s, expected %s")],S9r=[0,[11,r(bV),[2,0,[11,r("`. Did you mean `"),[2,0,[11,r("`?"),0]]]]],r("Unexpected token `%s`. Did you mean `%s`?")],g9r=r(P3),F9r=r("Invalid flags supplied to RegExp constructor '"),T9r=r("Remove the period."),O9r=r("Indexed access uses bracket notation."),I9r=[0,[11,r("Invalid indexed access. "),[2,0,[11,r(" Use the format `T[K]`."),0]]],r("Invalid indexed access. %s Use the format `T[K]`.")],A9r=r(P3),N9r=r("Undefined label '"),C9r=r("' has already been declared"),P9r=r(" '"),D9r=r("Expected corresponding JSX closing tag for "),L9r=r(aF),R9r=r("In strict mode code, functions can only be declared at top level or "),j9r=r("inside a block, or as the body of an if statement."),G9r=r("In non-strict mode code, functions can only be declared at top level, "),M9r=[0,[11,r("Duplicate export for `"),[2,0,[12,96,0]]],r("Duplicate export for `%s`")],B9r=r("` is declared more than once."),q9r=r("Private fields may only be declared once. `#"),U9r=r("static "),H9r=r(C),X9r=r(YY),Y9r=r("methods"),V9r=r("fields"),z9r=r(Es),K9r=r(" named `"),W9r=r("Classes may not have "),J9r=r("` has not been declared."),$9r=r("Private fields must be declared before they can be referenced. `#"),Z9r=[0,[11,r(bV),[2,0,[11,r("`. Parentheses are required to combine `??` with `&&` or `||` expressions."),0]]],r("Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions.")],Q9r=r("Parse_error.Error"),r_r=[0,r("src/third-party/sedlex/flow_sedlexing.ml"),s1,4],e_r=r("Flow_sedlexing.MalFormed"),n_r=[0,1,0],t_r=[0,0,[0,1,0],[0,1,0]],u_r=r(YU),i_r=r("end of input"),f_r=r(rl),x_r=r("template literal part"),o_r=r(rl),a_r=r(MH),c_r=r(YU),s_r=r(rl),v_r=r(dv),l_r=r(rl),b_r=r(x1),p_r=r(rl),m_r=r(Tv),__r=r("an"),y_r=r(yi),h_r=r(pi),d_r=[0,[11,r("token `"),[2,0,[12,96,0]]],r("token `%s`")],k_r=r(hH),w_r=r(b3),E_r=r("{|"),S_r=r("|}"),g_r=r(HX),F_r=r(Z0),T_r=r("["),O_r=r("]"),I_r=r(VY),A_r=r(","),N_r=r(Lo),C_r=r("=>"),P_r=r("..."),D_r=r(gX),L_r=r(YY),R_r=r(M2),j_r=r(A3),G_r=r(R2),M_r=r(j2),B_r=r(Ju),q_r=r(D7),U_r=r(i1),H_r=r(F7),X_r=r(d4),Y_r=r(U2),V_r=r(K6),z_r=r(C8),K_r=r(D2),W_r=r(G2),J_r=r(fs),$_r=r(Ci),Z_r=r(Gi),Q_r=r(A7),ryr=r(d6),eyr=r(o6),nyr=r(N7),tyr=r(_i),uyr=r(_4),iyr=r(q8),fyr=r(np),xyr=r(q2),oyr=r(P7),ayr=r(nu),cyr=r(U4),syr=r(u1),vyr=r(J2),lyr=r(rs),byr=r(es),pyr=r(b8),myr=r(_3),_yr=r(Uu),yyr=r(yv),hyr=r(ws),dyr=r(e7),kyr=r(y4),wyr=r(k4),Eyr=r(a6),Syr=r(E6),gyr=r(Eu),Fyr=r(I7),Tyr=r(T2),Oyr=r(Jc),Iyr=r(eh),Ayr=r(CS),Nyr=r(gs),Cyr=r(dx),Pyr=r("%checks"),Dyr=r(aX),Lyr=r(zX),Ryr=r(xU),jyr=r(wH),Gyr=r(bH),Myr=r(XH),Byr=r(hX),qyr=r(lH),Uyr=r(nY),Hyr=r(xX),Xyr=r(BU),Yyr=r(WU),Vyr=r(rV),zyr=r(AU),Kyr=r(tX),Wyr=r(XO),Jyr=r("?."),$yr=r(Ke),Zyr=r("?"),Qyr=r(o1),rhr=r(zH),ehr=r(MX),nhr=r(OH),thr=r(I6),uhr=r(jd),ihr=r(lV),fhr=r(jY),xhr=r(PX),ohr=r(zY),ahr=r(ZH),chr=r(OU),shr=r(S3),vhr=r(cv),lhr=r(vY),bhr=r(_X),phr=r(sX),mhr=r(xs),_hr=r(Fa),yhr=r(Qu),hhr=r(UU),dhr=r(WH),khr=r(XY),whr=r(Kt),Ehr=r(ZY),Shr=r(sH),ghr=r(oV),Fhr=r(C),Thr=r(n6),Ohr=r(H8),Ihr=r(v7),Ahr=r(dv),Nhr=r(x1),Chr=r(Tv),Phr=r(es),Dhr=r(K4),Lhr=r(Qu),Rhr=r(Qu),jhr=r(O2),Ghr=r(O6),Mhr=r("T_LCURLY"),Bhr=r("T_RCURLY"),qhr=r("T_LCURLYBAR"),Uhr=r("T_RCURLYBAR"),Hhr=r("T_LPAREN"),Xhr=r("T_RPAREN"),Yhr=r("T_LBRACKET"),Vhr=r("T_RBRACKET"),zhr=r("T_SEMICOLON"),Khr=r("T_COMMA"),Whr=r("T_PERIOD"),Jhr=r("T_ARROW"),$hr=r("T_ELLIPSIS"),Zhr=r("T_AT"),Qhr=r("T_POUND"),rdr=r("T_FUNCTION"),edr=r("T_IF"),ndr=r("T_IN"),tdr=r("T_INSTANCEOF"),udr=r("T_RETURN"),idr=r("T_SWITCH"),fdr=r("T_THIS"),xdr=r("T_THROW"),odr=r("T_TRY"),adr=r("T_VAR"),cdr=r("T_WHILE"),sdr=r("T_WITH"),vdr=r("T_CONST"),ldr=r("T_LET"),bdr=r("T_NULL"),pdr=r("T_FALSE"),mdr=r("T_TRUE"),_dr=r("T_BREAK"),ydr=r("T_CASE"),hdr=r("T_CATCH"),ddr=r("T_CONTINUE"),kdr=r("T_DEFAULT"),wdr=r("T_DO"),Edr=r("T_FINALLY"),Sdr=r("T_FOR"),gdr=r("T_CLASS"),Fdr=r("T_EXTENDS"),Tdr=r("T_STATIC"),Odr=r("T_ELSE"),Idr=r("T_NEW"),Adr=r("T_DELETE"),Ndr=r("T_TYPEOF"),Cdr=r("T_VOID"),Pdr=r("T_ENUM"),Ddr=r("T_EXPORT"),Ldr=r("T_IMPORT"),Rdr=r("T_SUPER"),jdr=r("T_IMPLEMENTS"),Gdr=r("T_INTERFACE"),Mdr=r("T_PACKAGE"),Bdr=r("T_PRIVATE"),qdr=r("T_PROTECTED"),Udr=r("T_PUBLIC"),Hdr=r("T_YIELD"),Xdr=r("T_DEBUGGER"),Ydr=r("T_DECLARE"),Vdr=r("T_TYPE"),zdr=r("T_OPAQUE"),Kdr=r("T_OF"),Wdr=r("T_ASYNC"),Jdr=r("T_AWAIT"),$dr=r("T_CHECKS"),Zdr=r("T_RSHIFT3_ASSIGN"),Qdr=r("T_RSHIFT_ASSIGN"),rkr=r("T_LSHIFT_ASSIGN"),ekr=r("T_BIT_XOR_ASSIGN"),nkr=r("T_BIT_OR_ASSIGN"),tkr=r("T_BIT_AND_ASSIGN"),ukr=r("T_MOD_ASSIGN"),ikr=r("T_DIV_ASSIGN"),fkr=r("T_MULT_ASSIGN"),xkr=r("T_EXP_ASSIGN"),okr=r("T_MINUS_ASSIGN"),akr=r("T_PLUS_ASSIGN"),ckr=r("T_NULLISH_ASSIGN"),skr=r("T_AND_ASSIGN"),vkr=r("T_OR_ASSIGN"),lkr=r("T_ASSIGN"),bkr=r("T_PLING_PERIOD"),pkr=r("T_PLING_PLING"),mkr=r("T_PLING"),_kr=r("T_COLON"),ykr=r("T_OR"),hkr=r("T_AND"),dkr=r("T_BIT_OR"),kkr=r("T_BIT_XOR"),wkr=r("T_BIT_AND"),Ekr=r("T_EQUAL"),Skr=r("T_NOT_EQUAL"),gkr=r("T_STRICT_EQUAL"),Fkr=r("T_STRICT_NOT_EQUAL"),Tkr=r("T_LESS_THAN_EQUAL"),Okr=r("T_GREATER_THAN_EQUAL"),Ikr=r("T_LESS_THAN"),Akr=r("T_GREATER_THAN"),Nkr=r("T_LSHIFT"),Ckr=r("T_RSHIFT"),Pkr=r("T_RSHIFT3"),Dkr=r("T_PLUS"),Lkr=r("T_MINUS"),Rkr=r("T_DIV"),jkr=r("T_MULT"),Gkr=r("T_EXP"),Mkr=r("T_MOD"),Bkr=r("T_NOT"),qkr=r("T_BIT_NOT"),Ukr=r("T_INCR"),Hkr=r("T_DECR"),Xkr=r("T_EOF"),Ykr=r("T_ANY_TYPE"),Vkr=r("T_MIXED_TYPE"),zkr=r("T_EMPTY_TYPE"),Kkr=r("T_NUMBER_TYPE"),Wkr=r("T_BIGINT_TYPE"),Jkr=r("T_STRING_TYPE"),$kr=r("T_VOID_TYPE"),Zkr=r("T_SYMBOL_TYPE"),Qkr=r("T_NUMBER"),rwr=r("T_BIGINT"),ewr=r("T_STRING"),nwr=r("T_TEMPLATE_PART"),twr=r("T_IDENTIFIER"),uwr=r("T_REGEXP"),iwr=r("T_ERROR"),fwr=r("T_JSX_IDENTIFIER"),xwr=r("T_JSX_TEXT"),owr=r("T_BOOLEAN_TYPE"),awr=r("T_NUMBER_SINGLETON_TYPE"),cwr=r("T_BIGINT_SINGLETON_TYPE"),swr=[0,r(kX),HT,9],vwr=[0,r(kX),A6,9],lwr=r(GH),bwr=r("*/"),pwr=r(GH),mwr=r("unreachable line_comment"),_wr=r("unreachable string_quote"),ywr=r("\\"),hwr=r("unreachable template_part"),dwr=r("${"),kwr=r(UY),wwr=r(UY),Ewr=r(MI),Swr=r("unreachable regexp_class"),gwr=r(uY),Fwr=r("unreachable regexp_body"),Twr=r(C),Owr=r(C),Iwr=r(C),Awr=r(C),Nwr=r("unreachable jsxtext"),Cwr=r(P3),Pwr=r(V2),Dwr=r(S3),Lwr=r(cv),Rwr=r(hH),jwr=r(b3),Gwr=r("{'}'}"),Mwr=r(b3),Bwr=r("{'>'}"),qwr=r(cv),Uwr=r(l1),Hwr=r("iexcl"),Xwr=r("aelig"),Ywr=r("Nu"),Vwr=r("Eacute"),zwr=r("Atilde"),Kwr=r("'int'"),Wwr=r("AElig"),Jwr=r("Aacute"),$wr=r("Acirc"),Zwr=r("Agrave"),Qwr=r("Alpha"),rEr=r("Aring"),eEr=[0,hY],nEr=[0,913],tEr=[0,rt],uEr=[0,nI],iEr=[0,HT],fEr=[0,vH],xEr=[0,8747],oEr=r("Auml"),aEr=r("Beta"),cEr=r("Ccedil"),sEr=r("Chi"),vEr=r("Dagger"),lEr=r("Delta"),bEr=r("ETH"),pEr=[0,_H],mEr=[0,916],_Er=[0,8225],yEr=[0,935],hEr=[0,QH],dEr=[0,914],kEr=[0,XX],wEr=[0,xY],EEr=r("Icirc"),SEr=r("Ecirc"),gEr=r("Egrave"),FEr=r("Epsilon"),TEr=r("Eta"),OEr=r("Euml"),IEr=r("Gamma"),AEr=r("Iacute"),NEr=[0,VH],CEr=[0,915],PEr=[0,eV],DEr=[0,919],LEr=[0,917],REr=[0,NU],jEr=[0,nH],GEr=r("Igrave"),MEr=r("Iota"),BEr=r("Iuml"),qEr=r("Kappa"),UEr=r("Lambda"),HEr=r("Mu"),XEr=r("Ntilde"),YEr=[0,Wg],VEr=[0,924],zEr=[0,923],KEr=[0,922],WEr=[0,AX],JEr=[0,921],$Er=[0,WX],ZEr=[0,TH],QEr=[0,sY],rSr=r("Sigma"),eSr=r("Otilde"),nSr=r("OElig"),tSr=r("Oacute"),uSr=r("Ocirc"),iSr=r("Ograve"),fSr=r("Omega"),xSr=r("Omicron"),oSr=r("Oslash"),aSr=[0,y6],cSr=[0,927],sSr=[0,937],vSr=[0,A6],lSr=[0,yY],bSr=[0,yU],pSr=[0,338],mSr=r("Ouml"),_Sr=r("Phi"),ySr=r("Pi"),hSr=r("Prime"),dSr=r("Psi"),kSr=r("Rho"),wSr=r("Scaron"),ESr=[0,352],SSr=[0,929],gSr=[0,936],FSr=[0,8243],TSr=[0,928],OSr=[0,934],ISr=[0,mT],ASr=[0,RX],NSr=r("Uuml"),CSr=r("THORN"),PSr=r("Tau"),DSr=r("Theta"),LSr=r("Uacute"),RSr=r("Ucirc"),jSr=r("Ugrave"),GSr=r("Upsilon"),MSr=[0,933],BSr=[0,cp],qSr=[0,FU],USr=[0,Cw],HSr=[0,920],XSr=[0,932],YSr=[0,FX],VSr=r("Xi"),zSr=r("Yacute"),KSr=r("Yuml"),WSr=r("Zeta"),JSr=r("aacute"),$Sr=r("acirc"),ZSr=r("acute"),QSr=[0,sU],rgr=[0,rk],egr=[0,BO],ngr=[0,918],tgr=[0,376],ugr=[0,GX],igr=[0,926],fgr=[0,iA],xgr=[0,UX],ogr=[0,925],agr=r("delta"),cgr=r("cap"),sgr=r("aring"),vgr=r("agrave"),lgr=r("alefsym"),bgr=r("alpha"),pgr=r("amp"),mgr=r("and"),_gr=r("ang"),ygr=r("apos"),hgr=[0,39],dgr=[0,8736],kgr=[0,8743],wgr=[0,38],Egr=[0,945],Sgr=[0,8501],ggr=[0,hv],Fgr=r("asymp"),Tgr=r("atilde"),Ogr=r("auml"),Igr=r("bdquo"),Agr=r("beta"),Ngr=r("brvbar"),Cgr=r("bull"),Pgr=[0,8226],Dgr=[0,DY],Lgr=[0,946],Rgr=[0,8222],jgr=[0,fV],Ggr=[0,JH],Mgr=[0,8776],Bgr=[0,bU],qgr=r("copy"),Ugr=r("ccedil"),Hgr=r("cedil"),Xgr=r("cent"),Ygr=r("chi"),Vgr=r("circ"),zgr=r("clubs"),Kgr=r("cong"),Wgr=[0,8773],Jgr=[0,9827],$gr=[0,rX],Zgr=[0,967],Qgr=[0,kh],rFr=[0,hk],eFr=[0,qX],nFr=r("crarr"),tFr=r("cup"),uFr=r("curren"),iFr=r("dArr"),fFr=r("dagger"),xFr=r("darr"),oFr=r("deg"),aFr=[0,mV],cFr=[0,8595],sFr=[0,8224],vFr=[0,8659],lFr=[0,AF],bFr=[0,8746],pFr=[0,8629],mFr=[0,NX],_Fr=[0,8745],yFr=r("fnof"),hFr=r("ensp"),dFr=r("diams"),kFr=r("divide"),wFr=r("eacute"),EFr=r("ecirc"),SFr=r("egrave"),gFr=r(v7),FFr=r("emsp"),TFr=[0,8195],OFr=[0,8709],IFr=[0,ZF],AFr=[0,tH],NFr=[0,hT],CFr=[0,Dw],PFr=[0,9830],DFr=r("epsilon"),LFr=r("equiv"),RFr=r("eta"),jFr=r("eth"),GFr=r("euml"),MFr=r("euro"),BFr=r("exist"),qFr=[0,8707],UFr=[0,8364],HFr=[0,JU],XFr=[0,s1],YFr=[0,951],VFr=[0,8801],zFr=[0,949],KFr=[0,8194],WFr=r("gt"),JFr=r("forall"),$Fr=r("frac12"),ZFr=r("frac14"),QFr=r("frac34"),rTr=r("frasl"),eTr=r("gamma"),nTr=r("ge"),tTr=[0,8805],uTr=[0,947],iTr=[0,8260],fTr=[0,OY],xTr=[0,iY],oTr=[0,fX],aTr=[0,8704],cTr=r("hArr"),sTr=r("harr"),vTr=r("hearts"),lTr=r("hellip"),bTr=r("iacute"),pTr=r("icirc"),mTr=[0,cH],_Tr=[0,BY],yTr=[0,8230],hTr=[0,9829],dTr=[0,8596],kTr=[0,8660],wTr=[0,62],ETr=[0,402],STr=[0,948],gTr=[0,jh],FTr=r("prime"),TTr=r("ndash"),OTr=r("le"),ITr=r("kappa"),ATr=r("igrave"),NTr=r("image"),CTr=r("infin"),PTr=r("iota"),DTr=r("iquest"),LTr=r("isin"),RTr=r("iuml"),jTr=[0,i6],GTr=[0,8712],MTr=[0,lX],BTr=[0,953],qTr=[0,8734],UTr=[0,8465],HTr=[0,lO],XTr=r("lArr"),YTr=r("lambda"),VTr=r("lang"),zTr=r("laquo"),KTr=r("larr"),WTr=r("lceil"),JTr=r("ldquo"),$Tr=[0,8220],ZTr=[0,8968],QTr=[0,8592],rOr=[0,pg],eOr=[0,10216],nOr=[0,955],tOr=[0,8656],uOr=[0,954],iOr=r("macr"),fOr=r("lfloor"),xOr=r("lowast"),oOr=r("loz"),aOr=r("lrm"),cOr=r("lsaquo"),sOr=r("lsquo"),vOr=r("lt"),lOr=[0,60],bOr=[0,8216],pOr=[0,8249],mOr=[0,vU],_Or=[0,9674],yOr=[0,8727],hOr=[0,8970],dOr=r("mdash"),kOr=r("micro"),wOr=r("middot"),EOr=r(cY),SOr=r("mu"),gOr=r("nabla"),FOr=r("nbsp"),TOr=[0,fY],OOr=[0,8711],IOr=[0,956],AOr=[0,8722],NOr=[0,lS],COr=[0,Ai],POr=[0,8212],DOr=[0,bX],LOr=[0,8804],ROr=r("or"),jOr=r("oacute"),GOr=r("ne"),MOr=r("ni"),BOr=r("not"),qOr=r("notin"),UOr=r("nsub"),HOr=r("ntilde"),XOr=r("nu"),YOr=[0,957],VOr=[0,Vy],zOr=[0,8836],KOr=[0,8713],WOr=[0,LU],JOr=[0,8715],$Or=[0,8800],ZOr=r("ocirc"),QOr=r("oelig"),rIr=r("ograve"),eIr=r("oline"),nIr=r("omega"),tIr=r("omicron"),uIr=r("oplus"),iIr=[0,8853],fIr=[0,959],xIr=[0,969],oIr=[0,8254],aIr=[0,ST],cIr=[0,339],sIr=[0,v8],vIr=[0,QU],lIr=r("part"),bIr=r("ordf"),pIr=r("ordm"),mIr=r("oslash"),_Ir=r("otilde"),yIr=r("otimes"),hIr=r("ouml"),dIr=r("para"),kIr=[0,Yg],wIr=[0,$2],EIr=[0,8855],SIr=[0,WY],gIr=[0,wt],FIr=[0,md],TIr=[0,qg],OIr=r("permil"),IIr=r("perp"),AIr=r("phi"),NIr=r("pi"),CIr=r("piv"),PIr=r("plusmn"),DIr=r("pound"),LIr=[0,Ln],RIr=[0,uV],jIr=[0,982],GIr=[0,960],MIr=[0,966],BIr=[0,8869],qIr=[0,8240],UIr=[0,8706],HIr=[0,8744],XIr=[0,8211],YIr=r("sup1"),VIr=r("rlm"),zIr=r("raquo"),KIr=r("prod"),WIr=r("prop"),JIr=r("psi"),$Ir=r("quot"),ZIr=r("rArr"),QIr=r("radic"),rAr=r("rang"),eAr=[0,10217],nAr=[0,8730],tAr=[0,8658],uAr=[0,34],iAr=[0,968],fAr=[0,8733],xAr=[0,8719],oAr=r("rarr"),aAr=r("rceil"),cAr=r("rdquo"),sAr=r("real"),vAr=r("reg"),lAr=r("rfloor"),bAr=r("rho"),pAr=[0,961],mAr=[0,8971],_Ar=[0,$U],yAr=[0,8476],hAr=[0,8221],dAr=[0,8969],kAr=[0,8594],wAr=[0,nw],EAr=r("sigma"),SAr=r("rsaquo"),gAr=r("rsquo"),FAr=r("sbquo"),TAr=r("scaron"),OAr=r("sdot"),IAr=r("sect"),AAr=r("shy"),NAr=[0,_Y],CAr=[0,NT],PAr=[0,8901],DAr=[0,353],LAr=[0,8218],RAr=[0,8217],jAr=[0,8250],GAr=r("sigmaf"),MAr=r("sim"),BAr=r("spades"),qAr=r("sub"),UAr=r("sube"),HAr=r("sum"),XAr=r("sup"),YAr=[0,8835],VAr=[0,8721],zAr=[0,8838],KAr=[0,8834],WAr=[0,9824],JAr=[0,8764],$Ar=[0,962],ZAr=[0,963],QAr=[0,8207],rNr=r("uarr"),eNr=r("thetasym"),nNr=r("sup2"),tNr=r("sup3"),uNr=r("supe"),iNr=r("szlig"),fNr=r("tau"),xNr=r("there4"),oNr=r("theta"),aNr=[0,952],cNr=[0,8756],sNr=[0,964],vNr=[0,y8],lNr=[0,8839],bNr=[0,RY],pNr=[0,gO],mNr=r("thinsp"),_Nr=r("thorn"),yNr=r("tilde"),hNr=r("times"),dNr=r("trade"),kNr=r("uArr"),wNr=r("uacute"),ENr=[0,nl],SNr=[0,8657],gNr=[0,8482],FNr=[0,xT],TNr=[0,732],ONr=[0,gv],INr=[0,8201],ANr=[0,977],NNr=r("xi"),CNr=r("ucirc"),PNr=r("ugrave"),DNr=r("uml"),LNr=r("upsih"),RNr=r("upsilon"),jNr=r("uuml"),GNr=r("weierp"),MNr=[0,iU],BNr=[0,Y2],qNr=[0,965],UNr=[0,978],HNr=[0,IY],XNr=[0,249],YNr=[0,251],VNr=r("yacute"),zNr=r("yen"),KNr=r("yuml"),WNr=r("zeta"),JNr=r("zwj"),$Nr=r("zwnj"),ZNr=[0,kY],QNr=[0,8205],rCr=[0,950],eCr=[0,gw],nCr=[0,$X],tCr=[0,nd],uCr=[0,958],iCr=[0,8593],fCr=[0,gU],xCr=[0,8242],oCr=[0,XU],aCr=r(VY),cCr=r(jd),sCr=r("unreachable jsx_child"),vCr=r("unreachable type_token wholenumber"),lCr=r("unreachable type_token wholebigint"),bCr=r("unreachable type_token floatbigint"),pCr=r("unreachable type_token scinumber"),mCr=r("unreachable type_token scibigint"),_Cr=r("unreachable type_token hexnumber"),yCr=r("unreachable type_token hexbigint"),hCr=r("unreachable type_token legacyoctnumber"),dCr=r("unreachable type_token octnumber"),kCr=r("unreachable type_token octbigint"),wCr=r("unreachable type_token binnumber"),ECr=r("unreachable type_token bigbigint"),SCr=r("unreachable type_token"),gCr=r(o1),FCr=r(o1),TCr=r(kU),OCr=r(H8),ICr=r(n6),ACr=r(x1),NCr=r(O6),CCr=r(O2),PCr=r(v7),DCr=r(P7),LCr=r(Ci),RCr=r(e7),jCr=[9,1],GCr=[9,0],MCr=r(fs),BCr=r(dv),qCr=r(nu),UCr=r(Tv),HCr=r(K4),XCr=r(Gi),YCr=r(rs),VCr=r(es),zCr=r("unreachable template_tail"),KCr=r(b3),WCr=[0,r(C),r(C),r(C)],JCr=r("unreachable jsx_tag"),$Cr=r(P3),ZCr=r("unreachable regexp"),QCr=r("unreachable token wholenumber"),rPr=r("unreachable token wholebigint"),ePr=r("unreachable token floatbigint"),nPr=r("unreachable token scinumber"),tPr=r("unreachable token scibigint"),uPr=r("unreachable token hexnumber"),iPr=r("unreachable token hexbigint"),fPr=r("unreachable token legacyoctnumber"),xPr=r("unreachable token legacynonoctnumber"),oPr=r("unreachable token octnumber"),aPr=r("unreachable token octbigint"),cPr=r("unreachable token bignumber"),sPr=r("unreachable token bigint"),vPr=r("unreachable token"),lPr=r(o1),bPr=r(o1),pPr=r(kU),mPr=[6,r("#!")],_Pr=r("expected ?"),yPr=r(j2),hPr=r(_4),dPr=r(D2),kPr=r(gs),wPr=r(dx),EPr=r(A7),SPr=r(d6),gPr=r(o6),FPr=r(q2),TPr=r(N7),OPr=r(I7),IPr=r(T2),APr=r(_i),NPr=r(J2),CPr=r(np),PPr=r(U4),DPr=r(b8),LPr=r(_3),RPr=r(P7),jPr=r(Ci),GPr=r(q8),MPr=r(M2),BPr=r(A3),qPr=r(ws),UPr=r(Uu),HPr=r(R2),XPr=r(yv),YPr=r(y4),VPr=r(e7),zPr=r(G2),KPr=r(u1),WPr=r(fs),JPr=r(CS),$Pr=r(eh),ZPr=r(k4),QPr=r(a6),rDr=r(E6),eDr=r(Ju),nDr=r(nu),tDr=r(rs),uDr=r(D7),iDr=r(i1),fDr=r(F7),xDr=r(Gi),oDr=r(d4),aDr=r(Jc),cDr=r(U2),sDr=r(es),vDr=r(K6),lDr=r(C8),bDr=r(Eu),pDr=r("unreachable string_escape"),mDr=r(Zu),_Dr=r(H2),yDr=r(H2),hDr=r(Zu),dDr=r(dX),kDr=r(oY),wDr=r("n"),EDr=r("r"),SDr=r("t"),gDr=r(pV),FDr=r(H2),TDr=r(l1),ODr=r(l1),IDr=r("unreachable id_char"),ADr=r(l1),NDr=r(l1),CDr=r("Invalid (lexer) bigint "),PDr=r("Invalid (lexer) bigint binary/octal "),DDr=r(H2),LDr=r(pH),RDr=r(oU),jDr=r(Nh),GDr=[10,r("token ILLEGAL")],MDr=r("\0"),BDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),qDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),UDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),HDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),XDr=r("\0\0"),YDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),VDr=r(""),zDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),KDr=r("\0"),WDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),JDr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),$Dr=r("\0\0\0\0"),ZDr=r("\0\0\0"),QDr=r("\x07\x07"),rLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),eLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),nLr=r(`\x07\b  +\v\f\r`),tLr=r(""),uLr=r("\0\0\0"),iLr=r("\0"),fLr=r("\0\0\0\0\0\0"),xLr=r(""),oLr=r(""),aLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),cLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),sLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),vLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),lLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),bLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),pLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),mLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),_Lr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),yLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),hLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),dLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\b\0\0\0\0\0\0 \x07\b"),kLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),wLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),ELr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),SLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),gLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),FLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),TLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),OLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),ILr=r(`\x07\b +\v\x07\f\r\x1B  ! "#$%                                                                                                                                                                                                                                                         `),ALr=r(""),NLr=r(""),CLr=r("\0\0\0\0"),PLr=r(`\x07\b  +\v\f\r\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x1B\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07`),DLr=r(`\x07\b  +\v\f\r\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07`),LLr=r("\0\0"),RLr=r(""),jLr=r(""),GLr=r("\x07"),MLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),BLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),qLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),ULr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),HLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),XLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),YLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),VLr=r("\0\0\0\0\0\0\0"),zLr=r("\x07"),KLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),WLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),JLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),$Lr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),ZLr=r("\0"),QLr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),rRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),eRr=r("\0\0"),nRr=r("\0"),tRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),uRr=r(""),iRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),fRr=r(""),xRr=r(""),oRr=r(""),aRr=r("\0"),cRr=r("\0\0\0"),sRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),vRr=r(""),lRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),bRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),pRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),mRr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),_Rr=r("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),yRr=[0,[11,r("the identifier `"),[2,0,[12,96,0]]],r("the identifier `%s`")],hRr=[0,1],dRr=[0,1],kRr=r("@flow"),wRr=r(yX),ERr=r(yX),SRr=[0,[11,r("an identifier. When exporting a "),[2,0,[11,r(" as a named export, you must specify a "),[2,0,[11,r(" name. Did you mean `export default "),[2,0,[11,r(" ...`?"),0]]]]]]],r("an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?")],gRr=r(g3),FRr=r("Peeking current location when not available"),TRr=r(e7),ORr=r(bv),IRr=r(n6),ARr=r(x1),NRr=r(O6),CRr=r(O2),PRr=r(v7),DRr=r(P7),LRr=r(Ci),RRr=r(H8),jRr=r(fs),GRr=r(dv),MRr=r(nu),BRr=r(Tv),qRr=r(Gi),URr=r(rs),HRr=r(es),XRr=r(Ci),YRr=r(fs),VRr=r(Gi),zRr=r(Ci),KRr=r(fs),WRr=r(Gi),JRr=r(C2),$Rr=r("eval"),ZRr=r(ws),QRr=r(e7),rjr=r(y4),ejr=r(k4),njr=r(a6),tjr=r(E6),ujr=r(nu),ijr=r(Eu),fjr=r(b8),xjr=r(A3),ojr=r(_i),ajr=r(dx),cjr=r(A7),sjr=r(d6),vjr=r(o6),ljr=r(q2),bjr=r(D2),pjr=r(N7),mjr=r(I7),_jr=r(J2),yjr=r(_4),hjr=r(U4),djr=r(_3),kjr=r(P7),wjr=r(q8),Ejr=r(np),Sjr=r(M2),gjr=r(F7),Fjr=r(Uu),Tjr=r(R2),Ojr=r(j2),Ijr=r(u1),Ajr=r(Ju),Njr=r(yv),Cjr=r(D7),Pjr=r(i1),Djr=r(d4),Ljr=r(rs),Rjr=r(U2),jjr=r(es),Gjr=r(K6),Mjr=r(C8),Bjr=r(Eu),qjr=[0,r("src/parser/parser_env.ml"),343,9],Ujr=r("Internal Error: Tried to add_declared_private with outside of class scope."),Hjr=r("Internal Error: `exit_class` called before a matching `enter_class`"),Xjr=r(C),Yjr=[0,0,0],Vjr=[0,0,0],zjr=r("Parser_env.Try.Rollback"),Kjr=r(C),Wjr=r(C),Jjr=[0,r(Eu),r(Yx),r(to),r(dU),r(gY),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(iH),r(_o),r(uH),r(qU),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],$jr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],Zjr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],Qjr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(gY),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(uH),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(qU),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(iH),r(Rx),r(ux),r(Ef),r(qf),r(dU),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],rGr=r(Y4),eGr=r(I2),nGr=[0,[11,r("Failure while looking up "),[2,0,[11,r(". Index: "),[4,0,0,0,[11,r(". Length: "),[4,0,0,0,[12,46,0]]]]]]],r("Failure while looking up %s. Index: %d. Length: %d.")],tGr=[0,0,0,0],uGr=r("Offset_utils.Offset_lookup_failed"),iGr=r(KY),fGr=r(hE),xGr=r(CY),oGr=r(VX),aGr=r(VX),cGr=r(CY),sGr=r(Jc),vGr=r(Xr),lGr=r(Wn),bGr=r("Program"),pGr=r(Ud),mGr=r("BreakStatement"),_Gr=r(Ud),yGr=r("ContinueStatement"),hGr=r("DebuggerStatement"),dGr=r(cc),kGr=r("DeclareExportAllDeclaration"),wGr=r(cc),EGr=r(Cv),SGr=r(P2),gGr=r(_i),FGr=r("DeclareExportDeclaration"),TGr=r($c),OGr=r(Wn),IGr=r(mt),AGr=r("DeclareModule"),NGr=r(C7),CGr=r("DeclareModuleExports"),PGr=r(Ss),DGr=r(Wn),LGr=r("DoWhileStatement"),RGr=r("EmptyStatement"),jGr=r(bO),GGr=r(P2),MGr=r("ExportDefaultDeclaration"),BGr=r(bO),qGr=r(I4),UGr=r(cc),HGr=r("ExportAllDeclaration"),XGr=r(bO),YGr=r(cc),VGr=r(Cv),zGr=r(P2),KGr=r("ExportNamedDeclaration"),WGr=r(Zi),JGr=r(Nu),$Gr=r("ExpressionStatement"),ZGr=r(Wn),QGr=r(fU),rMr=r(Ss),eMr=r(ji),nMr=r("ForStatement"),tMr=r(R8),uMr=r(Wn),iMr=r(Cu),fMr=r(bi),xMr=r("ForInStatement"),oMr=r(dx),aMr=r(Wn),cMr=r(Cu),sMr=r(bi),vMr=r("ForOfStatement"),lMr=r(m3),bMr=r(kv),pMr=r(Ss),mMr=r("IfStatement"),_Mr=r(Jc),yMr=r(rs),hMr=r(Bn),dMr=r(cX),kMr=r(cc),wMr=r(Cv),EMr=r("ImportDeclaration"),SMr=r(Wn),gMr=r(Ud),FMr=r("LabeledStatement"),TMr=r(l7),OMr=r("ReturnStatement"),IMr=r(QX),AMr=r("discriminant"),NMr=r("SwitchStatement"),CMr=r(l7),PMr=r("ThrowStatement"),DMr=r(CH),LMr=r(MU),RMr=r(Tn),jMr=r("TryStatement"),GMr=r(Wn),MMr=r(Ss),BMr=r("WhileStatement"),qMr=r(Wn),UMr=r(xk),HMr=r("WithStatement"),XMr=r(PH),YMr=r("ArrayExpression"),VMr=r(O7),zMr=r(p6),KMr=r(Nu),WMr=r(r7),JMr=r(G7),$Mr=r(gs),ZMr=r(Wn),QMr=r(Dt),rBr=r(mt),eBr=r("ArrowFunctionExpression"),nBr=r(XO),tBr=r(Cu),uBr=r(bi),iBr=r(ul),fBr=r("AssignmentExpression"),xBr=r(Cu),oBr=r(bi),aBr=r(ul),cBr=r("BinaryExpression"),sBr=r("CallExpression"),vBr=r(T4),lBr=r(aY),bBr=r("ComprehensionExpression"),pBr=r(m3),mBr=r(kv),_Br=r(Ss),yBr=r("ConditionalExpression"),hBr=r(T4),dBr=r(aY),kBr=r("GeneratorExpression"),wBr=r(cc),EBr=r("ImportExpression"),SBr=r(zH),gBr=r(MX),FBr=r(Ke),TBr=r(Cu),OBr=r(bi),IBr=r(ul),ABr=r("LogicalExpression"),NBr=r("MemberExpression"),CBr=r(Iv),PBr=r(el),DBr=r("MetaProperty"),LBr=r(C2),RBr=r(TX),jBr=r(jH),GBr=r("NewExpression"),MBr=r(H4),BBr=r("ObjectExpression"),qBr=r(qu),UBr=r("OptionalCallExpression"),HBr=r(qu),XBr=r("OptionalMemberExpression"),YBr=r(Mg),VBr=r("SequenceExpression"),zBr=r("Super"),KBr=r("ThisExpression"),WBr=r(C7),JBr=r(Nu),$Br=r("TypeCastExpression"),ZBr=r(l7),QBr=r("AwaitExpression"),rqr=r(Fa),eqr=r(xs),nqr=r(Kt),tqr=r(ZY),uqr=r(rs),iqr=r(es),fqr=r(J2),xqr=r("matched above"),oqr=r(l7),aqr=r(qE),cqr=r(ul),sqr=r("UnaryExpression"),vqr=r(oV),lqr=r(sH),bqr=r(qE),pqr=r(l7),mqr=r(ul),_qr=r("UpdateExpression"),yqr=r(lY),hqr=r(l7),dqr=r("YieldExpression"),kqr=r("Unexpected FunctionDeclaration with BodyExpression"),wqr=r(O7),Eqr=r(p6),Sqr=r(Nu),gqr=r(r7),Fqr=r(G7),Tqr=r(gs),Oqr=r(Wn),Iqr=r(Dt),Aqr=r(mt),Nqr=r("FunctionDeclaration"),Cqr=r("Unexpected FunctionExpression with BodyExpression"),Pqr=r(O7),Dqr=r(p6),Lqr=r(Nu),Rqr=r(r7),jqr=r(G7),Gqr=r(gs),Mqr=r(Wn),Bqr=r(Dt),qqr=r(mt),Uqr=r("FunctionExpression"),Hqr=r(qu),Xqr=r(C7),Yqr=r(ui),Vqr=r(tn),zqr=r(qu),Kqr=r(C7),Wqr=r(ui),Jqr=r("PrivateIdentifier"),$qr=r(qu),Zqr=r(C7),Qqr=r(ui),rUr=r(tn),eUr=r(kv),nUr=r(Ss),tUr=r("SwitchCase"),uUr=r(Wn),iUr=r("param"),fUr=r("CatchClause"),xUr=r(Wn),oUr=r("BlockStatement"),aUr=r(mt),cUr=r("DeclareVariable"),sUr=r(r7),vUr=r(mt),lUr=r("DeclareFunction"),bUr=r(Hy),pUr=r(ws),mUr=r(P7),_Ur=r(Wn),yUr=r(O7),hUr=r(mt),dUr=r("DeclareClass"),kUr=r(P7),wUr=r(Wn),EUr=r(O7),SUr=r(mt),gUr=r("DeclareInterface"),FUr=r(Bn),TUr=r(Jc),OUr=r(I4),IUr=r("ExportNamespaceSpecifier"),AUr=r(Cu),NUr=r(O7),CUr=r(mt),PUr=r("DeclareTypeAlias"),DUr=r(Cu),LUr=r(O7),RUr=r(mt),jUr=r("TypeAlias"),GUr=r("DeclareOpaqueType"),MUr=r("OpaqueType"),BUr=r(SX),qUr=r(mX),UUr=r(O7),HUr=r(mt),XUr=r("ClassDeclaration"),YUr=r("ClassExpression"),VUr=r(j_),zUr=r(ws),KUr=r("superTypeParameters"),WUr=r("superClass"),JUr=r(O7),$Ur=r(Wn),ZUr=r(mt),QUr=r(Nu),rHr=r("Decorator"),eHr=r(O7),nHr=r(mt),tHr=r("ClassImplements"),uHr=r(Wn),iHr=r("ClassBody"),fHr=r(wv),xHr=r(F2),oHr=r(n1),aHr=r(lv),cHr=r(j_),sHr=r(pv),vHr=r(nu),lHr=r($c),bHr=r(Bn),pHr=r(ii),mHr=r("MethodDefinition"),_Hr=r(T2),yHr=r(cu),hHr=r(nu),dHr=r(pv),kHr=r(C7),wHr=r(Bn),EHr=r(ii),SHr=r(xV),gHr=r("Internal Error: Private name found in class prop"),FHr=r(T2),THr=r(cu),OHr=r(nu),IHr=r(pv),AHr=r(C7),NHr=r(Bn),CHr=r(ii),PHr=r(xV),DHr=r(mt),LHr=r(OX),RHr=r(ji),jHr=r(mt),GHr=r("EnumStringMember"),MHr=r(mt),BHr=r(OX),qHr=r(ji),UHr=r(mt),HHr=r("EnumNumberMember"),XHr=r(ji),YHr=r(mt),VHr=r("EnumBooleanMember"),zHr=r(T8),KHr=r(DT),WHr=r(A4),JHr=r("EnumBooleanBody"),$Hr=r(T8),ZHr=r(DT),QHr=r(A4),rXr=r("EnumNumberBody"),eXr=r(T8),nXr=r(DT),tXr=r(A4),uXr=r("EnumStringBody"),iXr=r(T8),fXr=r(A4),xXr=r("EnumSymbolBody"),oXr=r(Wn),aXr=r(mt),cXr=r("EnumDeclaration"),sXr=r(P7),vXr=r(Wn),lXr=r(O7),bXr=r(mt),pXr=r("InterfaceDeclaration"),mXr=r(O7),_Xr=r(mt),yXr=r("InterfaceExtends"),hXr=r(C7),dXr=r(H4),kXr=r("ObjectPattern"),wXr=r(C7),EXr=r(PH),SXr=r("ArrayPattern"),gXr=r(Cu),FXr=r(bi),TXr=r(DF),OXr=r(C7),IXr=r(ui),AXr=r(tn),NXr=r(l7),CXr=r(iX),PXr=r(l7),DXr=r(iX),LXr=r(Cu),RXr=r(bi),jXr=r(DF),GXr=r(ji),MXr=r(ji),BXr=r(n1),qXr=r(lv),UXr=r(aH),HXr=r(pv),XXr=r(f6),YXr=r(F2),VXr=r($c),zXr=r(Bn),KXr=r(ii),WXr=r(_U),JXr=r(l7),$Xr=r("SpreadProperty"),ZXr=r(Cu),QXr=r(bi),rYr=r(DF),eYr=r(pv),nYr=r(f6),tYr=r(F2),uYr=r($c),iYr=r(Bn),fYr=r(ii),xYr=r(_U),oYr=r(l7),aYr=r("SpreadElement"),cYr=r(R8),sYr=r(Cu),vYr=r(bi),lYr=r("ComprehensionBlock"),bYr=r("We should not create Literal nodes for bigints"),pYr=r(jX),mYr=r(mi),_Yr=r("regex"),yYr=r(c7),hYr=r(Bn),dYr=r(c7),kYr=r(Bn),wYr=r(H6),EYr=r(c7),SYr=r(Bn),gYr=r(H6),FYr=r(x1),TYr=r(Bn),OYr=r("BigIntLiteral"),IYr=r(c7),AYr=r(Bn),NYr=r(H6),CYr=r(Gi),PYr=r(Ci),DYr=r(c7),LYr=r(Bn),RYr=r(H6),jYr=r(Mg),GYr=r("quasis"),MYr=r("TemplateLiteral"),BYr=r(PY),qYr=r(c7),UYr=r(aU),HYr=r(Bn),XYr=r("TemplateElement"),YYr=r(EY),VYr=r("tag"),zYr=r("TaggedTemplateExpression"),KYr=r(U2),WYr=r(G2),JYr=r(D2),$Yr=r($c),ZYr=r("declarations"),QYr=r("VariableDeclaration"),rVr=r(ji),eVr=r(mt),nVr=r("VariableDeclarator"),tVr=r($c),uVr=r("Variance"),iVr=r("AnyTypeAnnotation"),fVr=r("MixedTypeAnnotation"),xVr=r("EmptyTypeAnnotation"),oVr=r("VoidTypeAnnotation"),aVr=r("NullLiteralTypeAnnotation"),cVr=r("SymbolTypeAnnotation"),sVr=r("NumberTypeAnnotation"),vVr=r("BigIntTypeAnnotation"),lVr=r("StringTypeAnnotation"),bVr=r("BooleanTypeAnnotation"),pVr=r(C7),mVr=r("NullableTypeAnnotation"),_Vr=r(O7),yVr=r(xd),hVr=r(p6),dVr=r(i1),kVr=r(Dt),wVr=r("FunctionTypeAnnotation"),EVr=r(qu),SVr=r(C7),gVr=r(ui),FVr=r(RH),TVr=r(qu),OVr=r(C7),IVr=r(ui),AVr=r(RH),NVr=[0,0,0,0,0],CVr=r("internalSlots"),PVr=r("callProperties"),DVr=r("indexers"),LVr=r(H4),RVr=r("exact"),jVr=r(GY),GVr=r("ObjectTypeAnnotation"),MVr=r(aH),BVr=r("There should not be computed object type property keys"),qVr=r(ji),UVr=r(n1),HVr=r(lv),XVr=r($c),YVr=r(cu),VVr=r(X3),zVr=r(nu),KVr=r(qu),WVr=r(F2),JVr=r(Bn),$Vr=r(ii),ZVr=r("ObjectTypeProperty"),QVr=r(l7),rzr=r("ObjectTypeSpreadProperty"),ezr=r(cu),nzr=r(nu),tzr=r(Bn),uzr=r(ii),izr=r(mt),fzr=r("ObjectTypeIndexer"),xzr=r(nu),ozr=r(Bn),azr=r("ObjectTypeCallProperty"),czr=r(Bn),szr=r(F2),vzr=r(nu),lzr=r(qu),bzr=r(mt),pzr=r("ObjectTypeInternalSlot"),mzr=r(Wn),_zr=r(P7),yzr=r("InterfaceTypeAnnotation"),hzr=r("elementType"),dzr=r("ArrayTypeAnnotation"),kzr=r(mt),wzr=r(eY),Ezr=r("QualifiedTypeIdentifier"),Szr=r(O7),gzr=r(mt),Fzr=r("GenericTypeAnnotation"),Tzr=r("indexType"),Ozr=r("objectType"),Izr=r("IndexedAccessType"),Azr=r(qu),Nzr=r("OptionalIndexedAccessType"),Czr=r($6),Pzr=r("UnionTypeAnnotation"),Dzr=r($6),Lzr=r("IntersectionTypeAnnotation"),Rzr=r(l7),jzr=r("TypeofTypeAnnotation"),Gzr=r(mt),Mzr=r(eY),Bzr=r("QualifiedTypeofIdentifier"),qzr=r($6),Uzr=r("TupleTypeAnnotation"),Hzr=r(c7),Xzr=r(Bn),Yzr=r("StringLiteralTypeAnnotation"),Vzr=r(c7),zzr=r(Bn),Kzr=r("NumberLiteralTypeAnnotation"),Wzr=r(c7),Jzr=r(Bn),$zr=r("BigIntLiteralTypeAnnotation"),Zzr=r(Gi),Qzr=r(Ci),rKr=r(c7),eKr=r(Bn),nKr=r("BooleanLiteralTypeAnnotation"),tKr=r("ExistsTypeAnnotation"),uKr=r(C7),iKr=r("TypeAnnotation"),fKr=r(Dt),xKr=r("TypeParameterDeclaration"),oKr=r(_i),aKr=r(cu),cKr=r(DU),sKr=r(ui),vKr=r("TypeParameter"),lKr=r(Dt),bKr=r(gH),pKr=r(Dt),mKr=r(gH),_Kr=r(bv),yKr=r(Ve),hKr=r("closingElement"),dKr=r("openingElement"),kKr=r("JSXElement"),wKr=r("closingFragment"),EKr=r(Ve),SKr=r("openingFragment"),gKr=r("JSXFragment"),FKr=r("selfClosing"),TKr=r(mY),OKr=r(ui),IKr=r("JSXOpeningElement"),AKr=r("JSXOpeningFragment"),NKr=r(ui),CKr=r("JSXClosingElement"),PKr=r("JSXClosingFragment"),DKr=r(Bn),LKr=r(ui),RKr=r("JSXAttribute"),jKr=r(l7),GKr=r("JSXSpreadAttribute"),MKr=r("JSXEmptyExpression"),BKr=r(Nu),qKr=r("JSXExpressionContainer"),UKr=r(Nu),HKr=r("JSXSpreadChild"),XKr=r(c7),YKr=r(Bn),VKr=r("JSXText"),zKr=r(Iv),KKr=r(xk),WKr=r("JSXMemberExpression"),JKr=r(ui),$Kr=r("namespace"),ZKr=r("JSXNamespacedName"),QKr=r(ui),rWr=r("JSXIdentifier"),eWr=r(I4),nWr=r(B2),tWr=r("ExportSpecifier"),uWr=r(B2),iWr=r("ImportDefaultSpecifier"),fWr=r(B2),xWr=r("ImportNamespaceSpecifier"),oWr=r(cX),aWr=r(B2),cWr=r("imported"),sWr=r("ImportSpecifier"),vWr=r("Line"),lWr=r("Block"),bWr=r(Bn),pWr=r(Bn),mWr=r("DeclaredPredicate"),_Wr=r("InferredPredicate"),yWr=r(C2),hWr=r(TX),dWr=r(jH),kWr=r(pv),wWr=r(Iv),EWr=r(xk),SWr=r("message"),gWr=r(hE),FWr=r(HH),TWr=r(g7),OWr=r(cc),IWr=r(I2),AWr=r(Y4),NWr=[0,[3,0,0],r(Vt)],CWr=r(M2),PWr=r(A3),DWr=r(R2),LWr=r(j2),RWr=r(Ju),jWr=r(D7),GWr=r(i1),MWr=r(F7),BWr=r(d4),qWr=r(U2),UWr=r(K6),HWr=r(C8),XWr=r(D2),YWr=r(G2),VWr=r(fs),zWr=r(Ci),KWr=r(Gi),WWr=r(A7),JWr=r(d6),$Wr=r(o6),ZWr=r(N7),QWr=r(_i),rJr=r(_4),eJr=r(q8),nJr=r(np),tJr=r(q2),uJr=r(P7),iJr=r(nu),fJr=r(U4),xJr=r(u1),oJr=r(J2),aJr=r(rs),cJr=r(es),sJr=r(b8),vJr=r(_3),lJr=r(Uu),bJr=r(yv),pJr=r(ws),mJr=r(e7),_Jr=r(y4),yJr=r(k4),hJr=r(a6),dJr=r(E6),kJr=r(Eu),wJr=r(I7),EJr=r(T2),SJr=r(Jc),gJr=r(eh),FJr=r(CS),TJr=r(gs),OJr=r(dx),IJr=r(n6),AJr=r(H8),NJr=r(v7),CJr=r(dv),PJr=r(x1),DJr=r(Tv),LJr=r(es),RJr=r(K4),jJr=r(O2),GJr=r(O6),MJr=[0,r(g3)],BJr=r(C),qJr=[7,0],UJr=r(C),HJr=[0,1],XJr=[0,2],YJr=[0,3],VJr=[0,0],zJr=[0,0],KJr=[0,0,0,0,0],WJr=[0,r(vv),906,6],JJr=[0,r(vv),ZX,6],$Jr=[0,0],ZJr=[0,r(vv),1012,8],QJr=r(X3),r$r=[0,r(vv),1029,8],e$r=r("Can not have both `static` and `proto`"),n$r=r(nu),t$r=r(X3),u$r=r(n1),i$r=r(lv),f$r=r(n1),x$r=r(wv),o$r=r(oH),a$r=[0,0,0,0],c$r=[0,[0,0,0,0,0]],s$r=r(i1),v$r=[0,r("a type")],l$r=[0,0],b$r=[0,0],p$r=[14,1],m$r=[14,0],_$r=[0,r(vv),EH,15],y$r=[0,r(vv),L7,15],h$r=[0,44],d$r=[0,44],k$r=r(M2),w$r=[0,r(C),0],E$r=[0,0,0],S$r=[0,0,0],g$r=[0,0,0],F$r=[0,41],T$r=r(Qu),O$r=r(Qu),I$r=[0,r("a regular expression")],A$r=r(C),N$r=r(C),C$r=r(C),P$r=[0,r("src/parser/expression_parser.ml"),CU,17],D$r=[0,r("a template literal part")],L$r=[0,[0,r(C),r(C)],1],R$r=r(fs),j$r=r(fs),G$r=r(Gi),M$r=r(Ci),B$r=r("Invalid bigint "),q$r=r("Invalid bigint binary/octal "),U$r=r(H2),H$r=r(pH),X$r=r(Nh),Y$r=r(Nh),V$r=r(oU),z$r=[0,44],K$r=[0,1],W$r=[0,1],J$r=[0,1],$$r=[0,1],Z$r=[0,0],Q$r=r(bv),rZr=r(bv),eZr=r(u1),nZr=r(gS),tZr=[0,r("the identifier `target`")],uZr=[0,0],iZr=r(Uu),fZr=r(el),xZr=r(el),oZr=r(yv),aZr=[0,0],cZr=[0,r("either a call or access of `super`")],sZr=r(yv),vZr=[0,0],lZr=[0,1],bZr=[0,0],pZr=[0,1],mZr=[0,0],_Zr=[0,1],yZr=[0,0],hZr=[0,2],dZr=[0,3],kZr=[0,7],wZr=[0,6],EZr=[0,4],SZr=[0,5],gZr=[0,[0,17,[0,2]]],FZr=[0,[0,18,[0,3]]],TZr=[0,[0,19,[0,4]]],OZr=[0,[0,0,[0,5]]],IZr=[0,[0,1,[0,5]]],AZr=[0,[0,2,[0,5]]],NZr=[0,[0,3,[0,5]]],CZr=[0,[0,5,[0,6]]],PZr=[0,[0,7,[0,6]]],DZr=[0,[0,4,[0,6]]],LZr=[0,[0,6,[0,6]]],RZr=[0,[0,8,[0,7]]],jZr=[0,[0,9,[0,7]]],GZr=[0,[0,10,[0,7]]],MZr=[0,[0,11,[0,8]]],BZr=[0,[0,12,[0,8]]],qZr=[0,[0,15,[0,9]]],UZr=[0,[0,13,[0,9]]],HZr=[0,[0,14,[1,10]]],XZr=[0,[0,16,[0,9]]],YZr=[0,[0,21,[0,6]]],VZr=[0,[0,20,[0,6]]],zZr=[23,r(Ke)],KZr=[0,[0,8]],WZr=[0,[0,7]],JZr=[0,[0,6]],$Zr=[0,[0,10]],ZZr=[0,[0,9]],QZr=[0,[0,11]],rQr=[0,[0,5]],eQr=[0,[0,4]],nQr=[0,[0,2]],tQr=[0,[0,3]],uQr=[0,[0,1]],iQr=[0,[0,0]],fQr=[0,[0,12]],xQr=[0,[0,13]],oQr=[0,[0,14]],aQr=[0,0],cQr=r(Uu),sQr=r(u1),vQr=r(gS),lQr=r(el),bQr=r(gs),pQr=r(Uu),mQr=r(u1),_Qr=r(gS),yQr=r(el),hQr=r(o1),dQr=r(Lo),kQr=[17,r("JSX fragment")],wQr=[0,Ni],EQr=[1,Ni],SQr=r(C),gQr=[0,r(C)],FQr=[0,r(g3)],TQr=r(C),OQr=[0,0,0,0],IQr=[0,r("src/hack_forked/utils/collections/flow_map.ml"),717,36],AQr=[0,0,0],NQr=r(q2),CQr=[0,r(C),0],PQr=r("unexpected PrivateName in Property, expected a PrivateField"),DQr=r(wv),LQr=r(oH),RQr=[0,0,0],jQr=r(wv),GQr=r(wv),MQr=r(n1),BQr=r(lv),qQr=[0,1],UQr=[0,1],HQr=[0,1],XQr=r(wv),YQr=r(n1),VQr=r(lv),zQr=r(XO),KQr=r(Eu),WQr=r(dx),JQr=r("Internal Error: private name found in object props"),$Qr=r(cV),ZQr=[0,r(g3)],QQr=r(Eu),r0e=r(dx),e0e=r(Eu),n0e=r(dx),t0e=r(cV),u0e=[10,r(yi)],i0e=[0,1],f0e=r(a1),x0e=r(K2),o0e=[0,r(LS),1763,21],a0e=r(K2),c0e=r(a1),s0e=[0,r("a declaration, statement or export specifiers")],v0e=[0,40],l0e=r(a1),b0e=r(K2),p0e=[0,r(C),r(C),0],m0e=[0,r(EU)],_0e=r(pU),y0e=r("exports"),h0e=[0,1],d0e=[0,1],k0e=[0,0],w0e=r(pU),E0e=[0,40],S0e=r(Hy),g0e=[0,0],F0e=[0,1],T0e=[0,83],O0e=[0,0],I0e=[0,1],A0e=r(a1),N0e=r(a1),C0e=r(K2),P0e=r(a1),D0e=[0,r("the keyword `as`")],L0e=r(a1),R0e=r(K2),j0e=[0,r(EU)],G0e=[0,r("the keyword `from`")],M0e=[0,r(C),r(C),0],B0e=[0,r(tU)],q0e=r("Label"),U0e=[0,r(tU)],H0e=[0,0,0],X0e=[0,29],Y0e=[0,r(LS),431,22],V0e=[0,28],z0e=[0,r(LS),450,22],K0e=[0,0],W0e=r("the token `;`"),J0e=[0,0],$0e=[0,0],Z0e=r(dx),Q0e=r(G2),rre=r(Eu),ere=[0,r(HU)],nre=[15,[0,0]],tre=[0,r(HU)],ure=r("use strict"),ire=[0,0,0,0],fre=r(MI),xre=r("Nooo: "),ore=r(_i),are=r("Parser error: No such thing as an expression pattern!"),cre=r(C),sre=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],vre=[0,r("src/parser/parser_flow.ml"),NT,28],lre=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],bre=r(Bn),pre=r(KY),mre=r(I2),_re=r(Y4),yre=r(HH),hre=r(I2),dre=r(Y4),kre=r(g7),wre=r(hE),Ere=r("normal"),Sre=r(Jc),gre=r("jsxTag"),Fre=r("jsxChild"),Tre=r("template"),Ore=r(MH),Ire=r("context"),Are=r(Jc),Nre=r("use_strict"),Cre=r($6),Pre=r("esproposal_export_star_as"),Dre=r("esproposal_decorators"),Lre=r("enums"),Rre=r("Internal error: ");function Gt(t){if(typeof t=="number")return 0;switch(t[0]){case 0:return[0,Gt(t[1])];case 1:return[1,Gt(t[1])];case 2:return[2,Gt(t[1])];case 3:return[3,Gt(t[1])];case 4:return[4,Gt(t[1])];case 5:return[5,Gt(t[1])];case 6:return[6,Gt(t[1])];case 7:return[7,Gt(t[1])];case 8:var n=t[1];return[8,n,Gt(t[2])];case 9:var e=t[1];return[9,e,e,Gt(t[3])];case 10:return[10,Gt(t[1])];case 11:return[11,Gt(t[1])];case 12:return[12,Gt(t[1])];case 13:return[13,Gt(t[1])];default:return[14,Gt(t[1])]}}function u7(t,n){if(typeof t=="number")return n;switch(t[0]){case 0:return[0,u7(t[1],n)];case 1:return[1,u7(t[1],n)];case 2:return[2,u7(t[1],n)];case 3:return[3,u7(t[1],n)];case 4:return[4,u7(t[1],n)];case 5:return[5,u7(t[1],n)];case 6:return[6,u7(t[1],n)];case 7:return[7,u7(t[1],n)];case 8:var e=t[1];return[8,e,u7(t[2],n)];case 9:var i=t[2],x=t[1];return[9,x,i,u7(t[3],n)];case 10:return[10,u7(t[1],n)];case 11:return[11,u7(t[1],n)];case 12:return[12,u7(t[1],n)];case 13:return[13,u7(t[1],n)];default:return[14,u7(t[1],n)]}}function At(t,n){if(typeof t=="number")return n;switch(t[0]){case 0:return[0,At(t[1],n)];case 1:return[1,At(t[1],n)];case 2:var e=t[1];return[2,e,At(t[2],n)];case 3:var i=t[1];return[3,i,At(t[2],n)];case 4:var x=t[3],c=t[2],s=t[1];return[4,s,c,x,At(t[4],n)];case 5:var p=t[3],y=t[2],T=t[1];return[5,T,y,p,At(t[4],n)];case 6:var E=t[3],d=t[2],w=t[1];return[6,w,d,E,At(t[4],n)];case 7:var G=t[3],A=t[2],S=t[1];return[7,S,A,G,At(t[4],n)];case 8:var M=t[3],K=t[2],V=t[1];return[8,V,K,M,At(t[4],n)];case 9:var f0=t[1];return[9,f0,At(t[2],n)];case 10:return[10,At(t[1],n)];case 11:var m0=t[1];return[11,m0,At(t[2],n)];case 12:var k0=t[1];return[12,k0,At(t[2],n)];case 13:var g0=t[2],e0=t[1];return[13,e0,g0,At(t[3],n)];case 14:var x0=t[2],l=t[1];return[14,l,x0,At(t[3],n)];case 15:return[15,At(t[1],n)];case 16:return[16,At(t[1],n)];case 17:var c0=t[1];return[17,c0,At(t[2],n)];case 18:var t0=t[1];return[18,t0,At(t[2],n)];case 19:return[19,At(t[1],n)];case 20:var o0=t[2],w0=t[1];return[20,w0,o0,At(t[3],n)];case 21:var _0=t[1];return[21,_0,At(t[2],n)];case 22:return[22,At(t[1],n)];case 23:var E0=t[1];return[23,E0,At(t[2],n)];default:var U0=t[2],b=t[1];return[24,b,U0,At(t[3],n)]}}function nN(t,n,e){return t[1]===n?(t[1]=e,1):0}function ke(t){throw[0,q7,t]}function Pu(t){throw[0,ZA,t]}M7(0);function gp(t){return 0<=t?t:-t|0}var jre=mH;function Te(t,n){var e=un(t),i=un(n),x=Lt(e+i|0);return Ts(t,0,x,0,e),Ts(n,0,x,e,i),x}function Gre(t){return t?fi0:xi0}function on(t,n){if(t){var e=t[1];return[0,e,on(t[2],n)]}return n}M70(0);var Mre=zV(1),Pc=zV(2);function Bre(t){function n(e){for(var i=e;;){if(i){var x=i[2],c=i[1];try{p1(c)}catch(y){if(y=Et(y),y[1]!==$V)throw y;var s=y}var i=x;continue}return 0}}return n(B70(0))}function vl(t,n){return zA(t,n,0,un(n))}function iz(t){return vl(Pc,t),KV(Pc,10),p1(Pc)}var tN=[0,Bre];function fz(t){for(;;){var n=tN[1],e=[0,1],i=1-nN(tN,n,function(x,c){return function(s){return nN(x,1,0)&&u(t,0),u(c,0)}}(e,n));if(!i)return i}}function uN(t){return u(tN[1],0)}WA(r(sV),uN),K70(0)&&fz(function(t){return l70(t)});function xz(t){return 25<(t+Y3|0)>>>0?t:t+hU|0}var oz=J70(0)[1],ll=(4*z70(0)|0)-1|0;M7(0);var qre=V70(0);function Dc(t){for(var n=0,e=t;;){if(e){var n=n+1|0,e=e[2];continue}return n}}function bl(t){return t?t[1]:ke(mi0)}function az(t){return t?t[2]:ke(pi0)}function Lc(t,n){for(var e=t,i=n;;){if(e){var x=[0,e[1],i],e=e[2],i=x;continue}return i}}function ye(t){return Lc(t,0)}function pl(t){if(t){var n=t[1];return on(n,pl(t[2]))}return 0}function d1(t,n){if(n){var e=n[2],i=u(t,n[1]);return[0,i,d1(t,e)]}return 0}function Fp(t,n){for(var e=0,i=n;;){if(i){var x=i[2],e=[0,u(t,i[1]),e],i=x;continue}return e}}function Du(t,n){for(var e=n;;){if(e){var i=e[2];u(t,e[1]);var e=i;continue}return 0}}function le(t,n,e){for(var i=n,x=e;;){if(x){var c=x[2],i=o(t,i,x[1]),x=c;continue}return i}}function iN(t,n,e){if(n){var i=n[1];return o(t,i,iN(t,n[2],e))}return e}function cz(t,n,e){for(var i=n,x=e;;){if(i){if(x){var c=x[2],s=i[2];o(t,i[1],x[1]);var i=s,x=c;continue}}else if(!x)return 0;return Pu(bi0)}}function fN(t,n){for(var e=n;;){if(e){var i=e[2],x=LV(e[1],t)===0?1:0;if(x)return x;var e=i;continue}return 0}}function Ure(t,n){for(var e=n;;){if(e){var i=e[1],x=e[2],c=i[2];if(LV(i[1],t)===0)return c;var e=x;continue}throw Jt}}function ml(t){var n=0;return function(e){for(var i=n,x=e;;){if(x){var c=x[2],s=x[1];if(u(t,s)){var i=[0,s,i],x=c;continue}var x=c;continue}return ye(i)}}}function k1(t,n){var e=Lt(t);return v70(e,0,t,n),e}function sz(t){var n=b7(t),e=Lt(n);return Fs(t,0,e,0,n),e}function vz(t,n,e){if(0<=n&&0<=e&&!((b7(t)-e|0)>>0||(c=1):65<=x&&(c=1);else{var s=0;if(x!==32)if(43<=x)switch(x+xy|0){case 5:if(i<(e+2|0)&&1>>0?33<(x+SS|0)>>>0&&(c=1):x===2&&(c=1),!c){var n=n+1|0;continue}var s=t,p=[0,0],y=b7(s)-1|0,T=0;if(!(y<0))for(var E=T;;){var d=Xu(s,E),w=0;if(32<=d){var G=d-34|0,A=0;if(58>>0?93<=G&&(A=1):56<(G-1|0)>>>0&&(w=1,A=1),!A){var S=1;w=2}}else 11<=d?d===13&&(w=1):8<=d&&(w=1);switch(w){case 0:var S=4;break;case 1:var S=2;break}p[1]=p[1]+S|0;var M=E+1|0;if(y!==E){var E=M;continue}break}if(p[1]===b7(s))var K=sz(s);else{var V=Lt(p[1]);p[1]=0;var f0=b7(s)-1|0,m0=0;if(!(f0<0))for(var k0=m0;;){var g0=Xu(s,k0),e0=0;if(35<=g0)g0===92?e0=2:zn<=g0?e0=1:e0=3;else if(32<=g0)34<=g0?e0=2:e0=3;else if(14<=g0)e0=1;else switch(g0){case 8:Jn(V,p[1],92),p[1]++,Jn(V,p[1],98);break;case 9:Jn(V,p[1],92),p[1]++,Jn(V,p[1],f1);break;case 10:Jn(V,p[1],92),p[1]++,Jn(V,p[1],Xt);break;case 13:Jn(V,p[1],92),p[1]++,Jn(V,p[1],t1);break;default:e0=1}switch(e0){case 1:Jn(V,p[1],92),p[1]++,Jn(V,p[1],48+(g0/ti|0)|0),p[1]++,Jn(V,p[1],48+((g0/10|0)%10|0)|0),p[1]++,Jn(V,p[1],48+(g0%10|0)|0);break;case 2:Jn(V,p[1],92),p[1]++,Jn(V,p[1],g0);break;case 3:Jn(V,p[1],g0);break}p[1]++;var x0=k0+1|0;if(f0!==k0){var k0=x0;continue}break}var K=V}var i=K}var l=un(i),c0=k1(l+2|0,34);return Ts(i,0,c0,1,l),c0}}function wz(t,n){var e=gp(n),i=rz?rz[1]:70;switch(t[2]){case 0:var x=Ri;break;case 1:var x=R7;break;case 2:var x=69;break;case 3:var x=s7;break;case 4:var x=71;break;case 5:var x=i;break;case 6:var x=L7;break;case 7:var x=72;break;default:var x=70}var c=yz(16);switch(Xv(c,37),t[1]){case 0:break;case 1:Xv(c,43);break;default:Xv(c,32)}return 8<=t[2]&&Xv(c,35),Xv(c,46),Lu(c,r(C+e)),Xv(c,x),dz(c)}function Ap(t,n){if(13<=t){var e=[0,0],i=un(n)-1|0,x=0;if(!(i<0))for(var c=x;;){9<(Vr(n,c)+Wt|0)>>>0||e[1]++;var s=c+1|0;if(i!==c){var c=s;continue}break}var p=e[1],y=Lt(un(n)+((p-1|0)/3|0)|0),T=[0,0],E=function(K){return b1(y,T[1],K),T[1]++,0},d=[0,((p-1|0)%3|0)+1|0],w=un(n)-1|0,G=0;if(!(w<0))for(var A=G;;){var S=Vr(n,A);9<(S+Wt|0)>>>0||(d[1]===0&&(E(95),d[1]=3),d[1]+=-1),E(S);var M=A+1|0;if(w!==A){var A=M;continue}break}return y}return n}function Kre(t,n){switch(t){case 1:var e=gx0;break;case 2:var e=Fx0;break;case 4:var e=Tx0;break;case 5:var e=Ox0;break;case 6:var e=Ix0;break;case 7:var e=Ax0;break;case 8:var e=Nx0;break;case 9:var e=Cx0;break;case 10:var e=Px0;break;case 11:var e=Dx0;break;case 0:case 13:var e=Lx0;break;case 3:case 14:var e=Rx0;break;default:var e=jx0}return Ap(t,hp(e,n))}function Wre(t,n){switch(t){case 1:var e=Qf0;break;case 2:var e=rx0;break;case 4:var e=ex0;break;case 5:var e=nx0;break;case 6:var e=tx0;break;case 7:var e=ux0;break;case 8:var e=ix0;break;case 9:var e=fx0;break;case 10:var e=xx0;break;case 11:var e=ox0;break;case 0:case 13:var e=ax0;break;case 3:case 14:var e=cx0;break;default:var e=sx0}return Ap(t,hp(e,n))}function Jre(t,n){switch(t){case 1:var e=Bf0;break;case 2:var e=qf0;break;case 4:var e=Uf0;break;case 5:var e=Hf0;break;case 6:var e=Xf0;break;case 7:var e=Yf0;break;case 8:var e=Vf0;break;case 9:var e=zf0;break;case 10:var e=Kf0;break;case 11:var e=Wf0;break;case 0:case 13:var e=Jf0;break;case 3:case 14:var e=$f0;break;default:var e=Zf0}return Ap(t,hp(e,n))}function $re(t,n){switch(t){case 1:var e=vx0;break;case 2:var e=lx0;break;case 4:var e=bx0;break;case 5:var e=px0;break;case 6:var e=mx0;break;case 7:var e=_x0;break;case 8:var e=yx0;break;case 9:var e=hx0;break;case 10:var e=dx0;break;case 11:var e=kx0;break;case 0:case 13:var e=wx0;break;case 3:case 14:var e=Ex0;break;default:var e=Sx0}return Ap(t,d70(e,n))}function ss(t,n,e){function i(m0){switch(t[1]){case 0:var k0=45;break;case 1:var k0=43;break;default:var k0=32}return m70(e,n,k0)}function x(m0){var k0=Zu0(e);return k0===3?e<0?jf0:Gf0:4<=k0?Rf0:m0}switch(t[2]){case 5:for(var c=XA(wz(t,n),e),s=0,p=un(c);;){if(s===p)var y=0;else{var T=It(c,s)+v1|0,E=0;if(23>>0?T===55&&(E=1):21<(T-1|0)>>>0&&(E=1),!E){var s=s+1|0;continue}var y=1}var d=y?c:Te(c,Mf0);return x(d)}case 6:return i(0);case 7:var w=i(0),G=b7(w);if(G===0)var A=w;else{var S=Lt(G),M=G-1|0,K=0;if(!(M<0))for(var V=K;;){Jn(S,V,xz(Xu(w,V)));var f0=V+1|0;if(M!==V){var V=f0;continue}break}var A=S}return A;case 8:return x(i(0));default:return XA(wz(t,n),e)}}function kl(t,n,e,i){for(var x=n,c=e,s=i;;){if(typeof s=="number")return u(x,c);switch(s[0]){case 0:var p=s[1];return function(ar){return Xn(x,[5,c,ar],p)};case 1:var y=s[1];return function(ar){var _r=0;if(40<=ar)if(ar===92)var Ir=oi0;else zn<=ar?_r=1:_r=2;else if(32<=ar)if(39<=ar)var Ir=ai0;else _r=2;else if(14<=ar)_r=1;else switch(ar){case 8:var Ir=ci0;break;case 9:var Ir=si0;break;case 10:var Ir=vi0;break;case 13:var Ir=li0;break;default:_r=1}switch(_r){case 1:var fe=Lt(4);Jn(fe,0,92),Jn(fe,1,48+(ar/ti|0)|0),Jn(fe,2,48+((ar/10|0)%10|0)|0),Jn(fe,3,48+(ar%10|0)|0);var Ir=fe;break;case 2:var v0=Lt(1);Jn(v0,0,ar);var Ir=v0;break}var P=un(Ir),L=k1(P+2|0,39);return Ts(Ir,0,L,1,P),Xn(x,[4,c,L],y)};case 2:var T=s[2],E=s[1];return mN(x,c,T,E,function(ar){return ar});case 3:return mN(x,c,s[2],s[1],zre);case 4:return Np(x,c,s[4],s[2],s[3],Kre,s[1]);case 5:return Np(x,c,s[4],s[2],s[3],Wre,s[1]);case 6:return Np(x,c,s[4],s[2],s[3],Jre,s[1]);case 7:return Np(x,c,s[4],s[2],s[3],$re,s[1]);case 8:var d=s[4],w=s[3],G=s[2],A=s[1];if(typeof G=="number"){if(typeof w=="number")return w?function(ar,_r){return Xn(x,[4,c,ss(A,ar,_r)],d)}:function(ar){return Xn(x,[4,c,ss(A,vN(A),ar)],d)};var S=w[1];return function(ar){return Xn(x,[4,c,ss(A,S,ar)],d)}}else{if(G[0]===0){var M=G[2],K=G[1];if(typeof w=="number")return w?function(ar,_r){return Xn(x,[4,c,H7(K,M,ss(A,ar,_r))],d)}:function(ar){return Xn(x,[4,c,H7(K,M,ss(A,vN(A),ar))],d)};var V=w[1];return function(ar){return Xn(x,[4,c,H7(K,M,ss(A,V,ar))],d)}}var f0=G[1];if(typeof w=="number")return w?function(ar,_r,Ir){return Xn(x,[4,c,H7(f0,ar,ss(A,_r,Ir))],d)}:function(ar,_r){return Xn(x,[4,c,H7(f0,ar,ss(A,vN(A),_r))],d)};var m0=w[1];return function(ar,_r){return Xn(x,[4,c,H7(f0,ar,ss(A,m0,_r))],d)}}case 9:return mN(x,c,s[2],s[1],Gre);case 10:var c=[7,c],s=s[1];continue;case 11:var c=[2,c,s[1]],s=s[2];continue;case 12:var c=[3,c,s[1]],s=s[2];continue;case 13:var k0=s[3],g0=s[2],e0=yz(16);lN(e0,g0);var x0=dz(e0);return function(ar){return Xn(x,[4,c,x0],k0)};case 14:var l=s[3],c0=s[2];return function(ar){var _r=ar[1],Ir=_t(_r,Gt(uu(c0)));if(typeof Ir[2]=="number")return Xn(x,c,At(Ir[1],l));throw Ou};case 15:var t0=s[1];return function(ar,_r){return Xn(x,[6,c,function(Ir){return o(ar,Ir,_r)}],t0)};case 16:var o0=s[1];return function(ar){return Xn(x,[6,c,ar],o0)};case 17:var c=[0,c,s[1]],s=s[2];continue;case 18:var w0=s[1];if(w0[0]===0){var _0=s[2],E0=w0[1][1],U0=0,x=function(fe,v0,P){return function(L){return Xn(v0,[1,fe,[0,L]],P)}}(c,x,_0),c=U0,s=E0;continue}var b=s[2],R0=w0[1][1],X=0,x=function(ar,_r,Ir){return function(fe){return Xn(_r,[1,ar,[1,fe]],Ir)}}(c,x,b),c=X,s=R0;continue;case 19:throw[0,Sn,_f0];case 20:var s0=s[3],hr=[8,c,yf0];return function(ar){return Xn(x,hr,s0)};case 21:var Ar=s[2];return function(ar){return Xn(x,[4,c,hp(mf0,ar)],Ar)};case 22:var or=s[1];return function(ar){return Xn(x,[5,c,ar],or)};case 23:var W0=s[2],Lr=s[1];if(typeof Lr=="number")switch(Lr){case 0:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 1:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 2:throw[0,Sn,hf0];default:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0])}else switch(Lr[0]){case 0:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 1:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 2:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 3:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 4:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 5:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 6:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 7:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 8:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 9:var Tr=Lr[2];return t<50?bN(t+1|0,x,c,Tr,W0):Tu(bN,[0,x,c,Tr,W0]);case 10:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);default:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0])}default:var Hr=s[3],Or=s[1],fr=u(s[2],0);return t<50?pN(t+1|0,x,c,Hr,Or,fr):Tu(pN,[0,x,c,Hr,Or,fr])}}}function bN(t,n,e,i,x){if(typeof i=="number")return t<50?ct(t+1|0,n,e,x):Tu(ct,[0,n,e,x]);switch(i[0]){case 0:var c=i[1];return function(m0){return fi(n,e,c,x)};case 1:var s=i[1];return function(m0){return fi(n,e,s,x)};case 2:var p=i[1];return function(m0){return fi(n,e,p,x)};case 3:var y=i[1];return function(m0){return fi(n,e,y,x)};case 4:var T=i[1];return function(m0){return fi(n,e,T,x)};case 5:var E=i[1];return function(m0){return fi(n,e,E,x)};case 6:var d=i[1];return function(m0){return fi(n,e,d,x)};case 7:var w=i[1];return function(m0){return fi(n,e,w,x)};case 8:var G=i[2];return function(m0){return fi(n,e,G,x)};case 9:var A=i[3],S=i[2],M=bu(uu(i[1]),S);return function(m0){return fi(n,e,u7(M,A),x)};case 10:var K=i[1];return function(m0,k0){return fi(n,e,K,x)};case 11:var V=i[1];return function(m0){return fi(n,e,V,x)};case 12:var f0=i[1];return function(m0){return fi(n,e,f0,x)};case 13:throw[0,Sn,df0];default:throw[0,Sn,kf0]}}function ct(t,n,e,i){var x=[8,e,wf0];return t<50?kl(t+1|0,n,x,i):Tu(kl,[0,n,x,i])}function pN(t,n,e,i,x,c){if(x){var s=x[1];return function(y){return Zre(n,e,i,s,u(c,y))}}var p=[4,e,c];return t<50?kl(t+1|0,n,p,i):Tu(kl,[0,n,p,i])}function Xn(t,n,e){return JA(kl(0,t,n,e))}function fi(t,n,e,i){return JA(bN(0,t,n,e,i))}function Zre(t,n,e,i,x){return JA(pN(0,t,n,e,i,x))}function mN(t,n,e,i,x){if(typeof i=="number")return function(y){return Xn(t,[4,n,u(x,y)],e)};if(i[0]===0){var c=i[2],s=i[1];return function(y){return Xn(t,[4,n,H7(s,c,u(x,y))],e)}}var p=i[1];return function(y,T){return Xn(t,[4,n,H7(p,y,u(x,T))],e)}}function Np(t,n,e,i,x,c,s){if(typeof i=="number"){if(typeof x=="number")return x?function(G,A){return Xn(t,[4,n,Yv(G,o(c,s,A))],e)}:function(G){return Xn(t,[4,n,o(c,s,G)],e)};var p=x[1];return function(G){return Xn(t,[4,n,Yv(p,o(c,s,G))],e)}}else{if(i[0]===0){var y=i[2],T=i[1];if(typeof x=="number")return x?function(G,A){return Xn(t,[4,n,H7(T,y,Yv(G,o(c,s,A)))],e)}:function(G){return Xn(t,[4,n,H7(T,y,o(c,s,G))],e)};var E=x[1];return function(G){return Xn(t,[4,n,H7(T,y,Yv(E,o(c,s,G)))],e)}}var d=i[1];if(typeof x=="number")return x?function(G,A,S){return Xn(t,[4,n,H7(d,G,Yv(A,o(c,s,S)))],e)}:function(G,A){return Xn(t,[4,n,H7(d,G,o(c,s,A))],e)};var w=x[1];return function(G,A){return Xn(t,[4,n,H7(d,G,Yv(w,o(c,s,A)))],e)}}}function vs(t,n){for(var e=n;;){if(typeof e=="number")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return vs(t,i),vl(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];vs(t,s),vl(t,Ef0);var e=p;continue}var y=c[1];vs(t,s),vl(t,Sf0);var e=y;continue;case 6:var T=e[2];return vs(t,e[1]),u(T,t);case 7:return vs(t,e[1]),p1(t);case 8:var E=e[2];return vs(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return vs(t,e[1]),vl(t,d);default:var w=e[2];return vs(t,e[1]),KV(t,w)}}}function ls(t,n){for(var e=n;;){if(typeof e=="number")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return ls(t,i),hn(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];ls(t,s),hn(t,gf0);var e=p;continue}var y=c[1];ls(t,s),hn(t,Ff0);var e=y;continue;case 6:var T=e[2];return ls(t,e[1]),hn(t,u(T,0));case 7:var e=e[1];continue;case 8:var E=e[2];return ls(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return ls(t,e[1]),hn(t,d);default:var w=e[2];return ls(t,e[1]),qi(t,w)}}}function Qre(t){if(qn(t,Of0))return If0;var n=un(t);function e(S){var M=Tf0[1],K=$n(N4);return u(Xn(function(V){return ls(K,V),ke(Mt(K))},0,M),t)}function i(S){for(var M=S;;){if(M===n)return M;var K=It(t,M);if(K!==9&&K!==32)return M;var M=M+1|0}}function x(S,M){for(var K=M;;){if(K===n||25<(It(t,K)+Y3|0)>>>0)return K;var K=K+1|0}}function c(S,M){for(var K=M;;){if(K===n)return K;var V=It(t,K),f0=0;if(48<=V?58<=V||(f0=1):V===45&&(f0=1),f0){var K=K+1|0;continue}return K}}var s=i(0),p=x(s,s),y=m7(t,s,p-s|0),T=i(p),E=c(T,T);if(T===E)var d=0;else try{var w=Bi(m7(t,T,E-T|0)),d=w}catch(S){if(S=Et(S),S[1]!==q7)throw S;var d=e(0)}i(E)!==n&&e(0);var G=0;if(n0(y,Af0)&&n0(y,Nf0))var A=n0(y,Cf0)?n0(y,Pf0)?n0(y,Df0)?n0(y,Lf0)?e(0):1:2:3:0;else G=1;if(G)var A=4;return[0,d,A]}function _N(t,n){var e=n[1],i=0;return Xn(function(x){return vs(t,x),0},i,e)}function yN(t){return _N(Pc,t)}function et(t){var n=t[1];return Xn(function(e){var i=$n(64);return ls(i,e),Mt(i)},0,n)}var hN=[0,0];function dN(t,n){var e=t[1+n];if(1-(typeof e=="number"?1:0)){if(h1(e)===Y2)return u(et(ho0),e);if(h1(e)===nd)for(var i=XA(ui0,e),x=0,c=un(i);;){if(c<=x)return Te(i,ii0);var s=It(i,x),p=0;if(48<=s?58<=s||(p=1):s===45&&(p=1),p){var x=x+1|0;continue}return i}return do0}return u(et(yo0),e)}function Ez(t,n){if(t.length-1<=n)return zx0;var e=Ez(t,n+1|0),i=dN(t,n);return o(et(Kx0),i,e)}function Cp(t){function n(k0){for(var g0=k0;;){if(g0){var e0=g0[2],x0=g0[1];try{var l=0,c0=u(x0,t);l=1}catch{}if(l&&c0)return[0,c0[1]];var g0=e0;continue}return 0}}var e=n(hN[1]);if(e)return e[1];if(t===$A)return ao0;if(t===QV)return co0;if(t[1]===ZV){var i=t[2],x=i[3],c=i[2],s=i[1];return p7(et(QA),s,c,x,x+5|0,so0)}if(t[1]===Sn){var p=t[2],y=p[3],T=p[2],E=p[1];return p7(et(QA),E,T,y,y+6|0,vo0)}if(t[1]===sl){var d=t[2],w=d[3],G=d[2],A=d[1];return p7(et(QA),A,G,w,w+6|0,lo0)}if(h1(t)===0){var S=t.length-1,M=t[1][1];if(2>>0)var K=Ez(t,2),V=dN(t,1),f0=o(et(bo0),V,K);else switch(S){case 0:var f0=po0;break;case 1:var f0=mo0;break;default:var m0=dN(t,1),f0=u(et(_o0),m0)}return Te(M,f0)}return t[1]}function kN(t,n){var e=s70(n),i=e.length-1-1|0,x=0;if(!(i<0))for(var c=x;;){var s=tu(e,c)[1+c],p=function(f0){return function(m0){return m0?f0===0?eo0:no0:f0===0?to0:uo0}}(c);if(s[0]===0)var y=s[5],T=s[4],E=s[3],d=s[6]?io0:fo0,w=s[2],G=s[7],A=p(s[1]),M=[0,ei0(et(xo0),A,G,w,d,E,T,y)];else if(s[1])var M=0;else var S=p(0),M=[0,u(et(oo0),S)];if(M){var K=M[1];u(_N(t,Qx0),K)}var V=c+1|0;if(i!==c){var c=V;continue}break}return 0}function Sz(t){for(;;){var n=hN[1],e=1-nN(hN,n,[0,t,n]);if(!e)return e}}var ree=ko0.slice();function eee(t,n){var e=Cp(t);u(yN(Zx0),e),kN(Pc,n);var i=T70(0);if(i<0){var x=gp(i);iz(tu(ree,x)[1+x])}return p1(Pc)}var nee=[0];WA(r(LH),function(t,n){try{try{var e=n?nee:GV(0);try{uN(0)}catch{}try{var i=eee(t,e),x=i}catch(y){y=Et(y);var c=Cp(t);u(yN(Wx0),c),kN(Pc,e);var s=Cp(y);u(yN(Jx0),s),kN(Pc,GV(0));var x=p1(Pc)}var p=x}catch(y){if(y=Et(y),y!==$A)throw y;var p=iz($x0)}return p}catch{return 0}});var wN=[wt,Uo0,M7(0)],Pp=0,gz=-1;function wl(t,n){return t[13]=t[13]+n[3]|0,aN(n,t[28])}var Fz=1000000010;function EN(t,n){return ur(t[17],n,0,un(n))}function Dp(t){return u(t[19],0)}function Tz(t,n,e){return t[9]=t[9]-n|0,EN(t,e),t[11]=0,0}function Lp(t,n){var e=n0(n,qo0);return e&&Tz(t,un(n),n)}function Vv(t,n,e){var i=n[3],x=n[2];Lp(t,n[1]),Dp(t),t[11]=1;var c=(t[6]-e|0)+x|0,s=t[8],p=s<=c?s:c;return t[10]=p,t[9]=t[6]-t[10]|0,u(t[21],t[10]),Lp(t,i)}function Oz(t,n){return Vv(t,Bo0,n)}function El(t,n){var e=n[2],i=n[3];return Lp(t,n[1]),t[9]=t[9]-e|0,u(t[20],e),Lp(t,i)}function Iz(t){for(;;){var n=t[28][2],e=n?[0,n[1]]:0;if(e){var i=e[1],x=i[1],c=i[2],s=0<=x?1:0,p=i[3],y=t[13]-t[12]|0,T=s||(t[9]<=y?1:0);if(T){var E=t[28],d=E[2];if(d){if(d[2]){var w=d[2];E[1]=E[1]-1|0,E[2]=w}else oN(E);var G=0<=x?x:Fz;if(typeof c=="number")switch(c){case 0:var A=Hv(t[3]);if(A){var S=A[1][1],M=function(L,Q){if(Q){var i0=Q[1],l0=Q[2];return F70(L,i0)?[0,L,Q]:[0,i0,M(L,l0)]}return[0,L,0]};S[1]=M(t[6]-t[9]|0,S[1])}break;case 1:Uv(t[2]);break;case 2:Uv(t[3]);break;case 3:var K=Hv(t[2]);K?Oz(t,K[1][2]):Dp(t);break;case 4:if(t[10]!==(t[6]-t[9]|0)){var V=t[28],f0=V[2];if(f0){var m0=f0[1];if(f0[2]){var k0=f0[2];V[1]=V[1]-1|0,V[2]=k0;var g0=[0,m0]}else{oN(V);var g0=[0,m0]}}else var g0=0;if(g0){var e0=g0[1],x0=e0[1];t[12]=t[12]-e0[3]|0,t[9]=t[9]+x0|0}}break;default:var l=Uv(t[5]);l&&EN(t,u(t[25],l[1]))}else switch(c[0]){case 0:Tz(t,G,c[1]);break;case 1:var c0=c[2],t0=c[1],o0=c0[1],w0=c0[2],_0=Hv(t[2]);if(_0){var E0=_0[1],U0=E0[2];switch(E0[1]){case 0:El(t,t0);break;case 1:Vv(t,c0,U0);break;case 2:Vv(t,c0,U0);break;case 3:t[9]<(G+un(o0)|0)?Vv(t,c0,U0):El(t,t0);break;case 4:t[11]||!(t[9]<(G+un(o0)|0)||((t[6]-U0|0)+w0|0)>>0)&&Oz(t,_r)}else Dp(t)}var fe=t[9]-Wr|0,v0=Rr===1?1:t[9]>>18|0),e(jt|(n>>>12|0)&63),e(jt|(n>>>6|0)&63),e(jt|n&63)):Hh<=n?(e(hv|n>>>12|0),e(jt|(n>>>6|0)&63),e(jt|n&63)):jt<=n?(e(rt|n>>>6|0),e(jt|n&63)):e(n)}var GN=z0,i7=null,Jz=void 0;function Mp(t){return t!==Jz?1:0}var hee=GN.Array,MN=[wt,ra0,M7(0)],dee=GN.Error;see(ea0,[0,MN,{}]);function $z(t){throw t}Sz(function(t){return t[1]===MN?[0,B7(t[2].toString())]:0}),Sz(function(t){return t instanceof hee?0:[0,B7(t.toString())]});var Dr=pu(e3r,r3r),Rn=pu(t3r,n3r),Bp=pu(i3r,u3r),Tl=pu(x3r,f3r),g1=pu(a3r,o3r),BN=pu(s3r,c3r),Zz=pu(l3r,v3r),qN=pu(p3r,b3r),zv=pu(_3r,m3r),qp=pu(h3r,y3r),$e=pu(k3r,d3r),Yu=pu(E3r,w3r),qe=pu(g3r,S3r),UN=pu(T3r,F3r),di=pu(I3r,O3r),iu=pu(N3r,A3r),F1=pu(P3r,C3r),As=pu(L3r,D3r),HN=function t(n,e,i,x){return t.fun(n,e,i,x)},Qz=function t(n,e,i){return t.fun(n,e,i)},kee=pu(j3r,R3r);N(HN,function(t,n,e,i){u(f(e),j8r),o(f(e),M8r,G8r);var x=i[1];u(f(e),B8r);var c=0;le(function(y,T){y&&u(f(e),R8r);function E(d){return u(t,d)}return ur(iu[1],E,e,T),1},c,x),u(f(e),q8r),u(f(e),U8r),u(f(e),H8r),o(f(e),Y8r,X8r);var s=i[2];u(f(e),V8r);var p=0;return le(function(y,T){y&&u(f(e),L8r);function E(d){return u(t,d)}return ur(iu[1],E,e,T),1},p,s),u(f(e),z8r),u(f(e),K8r),u(f(e),W8r),o(f(e),$8r,J8r),o(n,e,i[3]),u(f(e),Z8r),u(f(e),Q8r)}),N(Qz,function(t,n,e){var i=o(HN,t,n);return o(C0(D8r),i,e)}),mu(G3r,Dr,[0,HN,Qz]);var XN=function t(n,e,i,x){return t.fun(n,e,i,x)},rK=function t(n,e,i){return t.fun(n,e,i)},Up=function t(n,e,i){return t.fun(n,e,i)},eK=function t(n,e){return t.fun(n,e)};N(XN,function(t,n,e,i){u(f(e),N8r),o(n,e,i[1]),u(f(e),C8r);var x=i[2];return ur(Up,function(c){return u(t,c)},e,x),u(f(e),P8r)}),N(rK,function(t,n,e){var i=o(XN,t,n);return o(C0(A8r),i,e)}),N(Up,function(t,n,e){u(f(n),_8r),o(f(n),h8r,y8r);var i=e[1];o(f(n),d8r,i),u(f(n),k8r),u(f(n),w8r),o(f(n),S8r,E8r);var x=e[2];if(x){g(n,g8r);var c=x[1],s=function(y,T){return g(y,m8r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,F8r)}else g(n,T8r);return u(f(n),O8r),u(f(n),I8r)}),N(eK,function(t,n){var e=u(Up,t);return o(C0(p8r),e,n)}),mu(M3r,Rn,[0,XN,rK,Up,eK]);var YN=function t(n,e,i){return t.fun(n,e,i)},nK=function t(n,e){return t.fun(n,e)},Hp=function t(n,e,i){return t.fun(n,e,i)},tK=function t(n,e){return t.fun(n,e)};N(YN,function(t,n,e){u(f(n),v8r),o(t,n,e[1]),u(f(n),l8r);var i=e[2];return ur(Hp,function(x){return u(t,x)},n,i),u(f(n),b8r)}),N(nK,function(t,n){var e=u(YN,t);return o(C0(s8r),e,n)}),N(Hp,function(t,n,e){u(f(n),Z4r),o(f(n),r8r,Q4r);var i=e[1];o(f(n),e8r,i),u(f(n),n8r),u(f(n),t8r),o(f(n),i8r,u8r);var x=e[2];if(x){g(n,f8r);var c=x[1],s=function(y,T){return g(y,$4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,x8r)}else g(n,o8r);return u(f(n),a8r),u(f(n),c8r)}),N(tK,function(t,n){var e=u(Hp,t);return o(C0(J4r),e,n)}),mu(B3r,Bp,[0,YN,nK,Hp,tK]);function uK(t,n){u(f(t),G4r),o(f(t),B4r,M4r);var e=n[1];o(f(t),q4r,e),u(f(t),U4r),u(f(t),H4r),o(f(t),Y4r,X4r);var i=n[2];return o(f(t),V4r,i),u(f(t),z4r),u(f(t),K4r)}var iK=[0,uK,function(t){return o(C0(W4r),uK,t)}],VN=function t(n,e,i){return t.fun(n,e,i)},fK=function t(n,e){return t.fun(n,e)},Xp=function t(n,e){return t.fun(n,e)},xK=function t(n){return t.fun(n)};N(VN,function(t,n,e){u(f(n),k4r),o(f(n),E4r,w4r),o(Xp,n,e[1]),u(f(n),S4r),u(f(n),g4r),o(f(n),T4r,F4r);var i=e[2];o(f(n),O4r,i),u(f(n),I4r),u(f(n),A4r),o(f(n),C4r,N4r);var x=e[3];if(x){g(n,P4r);var c=x[1],s=function(y,T){return g(y,d4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,D4r)}else g(n,L4r);return u(f(n),R4r),u(f(n),j4r)}),N(fK,function(t,n){var e=u(VN,t);return o(C0(h4r),e,n)}),N(Xp,function(t,n){if(typeof n=="number")return g(t,u4r);switch(n[0]){case 0:u(f(t),i4r);var e=n[1];return o(f(t),f4r,e),u(f(t),x4r);case 1:u(f(t),o4r);var i=n[1];return o(f(t),a4r,i),u(f(t),c4r);case 2:u(f(t),s4r);var x=n[1];return o(f(t),v4r,x),u(f(t),l4r);case 3:u(f(t),b4r);var c=n[1];return o(f(t),p4r,c),u(f(t),m4r);default:return u(f(t),_4r),o(iK[1],t,n[1]),u(f(t),y4r)}}),N(xK,function(t){return o(C0(t4r),Xp,t)}),mu(q3r,Tl,[0,iK,VN,fK,Xp,xK]);var zN=function t(n,e,i){return t.fun(n,e,i)},oK=function t(n,e){return t.fun(n,e)};N(zN,function(t,n,e){u(f(n),Mbr),o(f(n),qbr,Bbr);var i=e[1];o(f(n),Ubr,i),u(f(n),Hbr),u(f(n),Xbr),o(f(n),Vbr,Ybr);var x=e[2];o(f(n),zbr,x),u(f(n),Kbr),u(f(n),Wbr),o(f(n),$br,Jbr);var c=e[3];if(c){g(n,Zbr);var s=c[1],p=function(T,E){return g(T,Gbr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,Qbr)}else g(n,r4r);return u(f(n),e4r),u(f(n),n4r)}),N(oK,function(t,n){var e=u(zN,t);return o(C0(jbr),e,n)}),mu(U3r,g1,[0,zN,oK]);var KN=function t(n,e,i){return t.fun(n,e,i)},aK=function t(n,e){return t.fun(n,e)};N(KN,function(t,n,e){u(f(n),hbr),o(f(n),kbr,dbr);var i=e[1];o(f(n),wbr,i),u(f(n),Ebr),u(f(n),Sbr),o(f(n),Fbr,gbr);var x=e[2];o(f(n),Tbr,x),u(f(n),Obr),u(f(n),Ibr),o(f(n),Nbr,Abr);var c=e[3];if(c){g(n,Cbr);var s=c[1],p=function(T,E){return g(T,ybr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,Pbr)}else g(n,Dbr);return u(f(n),Lbr),u(f(n),Rbr)}),N(aK,function(t,n){var e=u(KN,t);return o(C0(_br),e,n)}),mu(H3r,BN,[0,KN,aK]);var WN=function t(n,e,i){return t.fun(n,e,i)},cK=function t(n,e){return t.fun(n,e)};N(WN,function(t,n,e){u(f(n),Qlr),o(f(n),ebr,rbr);var i=e[1];o(f(n),nbr,i),u(f(n),tbr),u(f(n),ubr),o(f(n),fbr,ibr);var x=e[2];o(f(n),xbr,x),u(f(n),obr),u(f(n),abr),o(f(n),sbr,cbr);var c=e[3];if(c){g(n,vbr);var s=c[1],p=function(T,E){return g(T,Zlr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,lbr)}else g(n,bbr);return u(f(n),pbr),u(f(n),mbr)}),N(cK,function(t,n){var e=u(WN,t);return o(C0($lr),e,n)}),mu(X3r,Zz,[0,WN,cK]);var JN=function t(n,e,i){return t.fun(n,e,i)},sK=function t(n,e){return t.fun(n,e)};N(JN,function(t,n,e){u(f(n),Glr),o(f(n),Blr,Mlr);var i=e[1];o(f(n),qlr,i),u(f(n),Ulr),u(f(n),Hlr),o(f(n),Ylr,Xlr);var x=e[2];if(x){g(n,Vlr);var c=x[1],s=function(y,T){return g(y,jlr)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,zlr)}else g(n,Klr);return u(f(n),Wlr),u(f(n),Jlr)}),N(sK,function(t,n){var e=u(JN,t);return o(C0(Rlr),e,n)}),mu(Y3r,qN,[0,JN,sK]);var $N=function t(n,e,i){return t.fun(n,e,i)},vK=function t(n,e){return t.fun(n,e)},Yp=function t(n,e){return t.fun(n,e)},lK=function t(n){return t.fun(n)},Vp=function t(n,e,i){return t.fun(n,e,i)},bK=function t(n,e){return t.fun(n,e)};N($N,function(t,n,e){u(f(n),Plr),o(t,n,e[1]),u(f(n),Dlr);var i=e[2];return ur(Vp,function(x){return u(t,x)},n,i),u(f(n),Llr)}),N(vK,function(t,n){var e=u($N,t);return o(C0(Clr),e,n)}),N(Yp,function(t,n){return n?g(t,Alr):g(t,Nlr)}),N(lK,function(t){return o(C0(Ilr),Yp,t)}),N(Vp,function(t,n,e){u(f(n),_lr),o(f(n),hlr,ylr),o(Yp,n,e[1]),u(f(n),dlr),u(f(n),klr),o(f(n),Elr,wlr);var i=e[2];if(i){g(n,Slr);var x=i[1],c=function(p,y){return g(p,mlr)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,glr)}else g(n,Flr);return u(f(n),Tlr),u(f(n),Olr)}),N(bK,function(t,n){var e=u(Vp,t);return o(C0(plr),e,n)}),mu(V3r,zv,[0,$N,vK,Yp,lK,Vp,bK]);var ZN=function t(n,e,i,x){return t.fun(n,e,i,x)},pK=function t(n,e,i){return t.fun(n,e,i)},QN=function t(n,e,i,x){return t.fun(n,e,i,x)},mK=function t(n,e,i){return t.fun(n,e,i)};N(ZN,function(t,n,e,i){u(f(e),vlr),o(t,e,i[1]),u(f(e),llr);var x=i[2];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(qp[3],s,c,e,x),u(f(e),blr)}),N(pK,function(t,n,e){var i=o(ZN,t,n);return o(C0(slr),i,e)}),N(QN,function(t,n,e,i){u(f(e),Q2r),o(f(e),elr,rlr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),nlr),u(f(e),tlr),o(f(e),ilr,ulr);var p=i[2];if(p){g(e,flr);var y=p[1],T=function(d,w){return g(d,Z2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,xlr)}else g(e,olr);return u(f(e),alr),u(f(e),clr)}),N(mK,function(t,n,e){var i=o(QN,t,n);return o(C0($2r),i,e)}),mu(z3r,qp,[0,ZN,pK,QN,mK]);var rC=function t(n,e,i,x){return t.fun(n,e,i,x)},_K=function t(n,e,i){return t.fun(n,e,i)},zp=function t(n,e,i,x){return t.fun(n,e,i,x)},yK=function t(n,e,i){return t.fun(n,e,i)};N(rC,function(t,n,e,i){u(f(e),K2r),o(t,e,i[1]),u(f(e),W2r);var x=i[2];function c(s){return u(n,s)}return R(zp,function(s){return u(t,s)},c,e,x),u(f(e),J2r)}),N(_K,function(t,n,e){var i=o(rC,t,n);return o(C0(z2r),i,e)}),N(zp,function(t,n,e,i){u(f(e),A2r),o(f(e),C2r,N2r);var x=i[1];if(x){g(e,P2r);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(Rn[1],p,s,e,c),g(e,D2r)}else g(e,L2r);u(f(e),R2r),u(f(e),j2r),o(f(e),M2r,G2r);var y=i[2];function T(w){return u(n,w)}function E(w){return u(t,w)}R($e[13],E,T,e,y),u(f(e),B2r),u(f(e),q2r),o(f(e),H2r,U2r);var d=i[3];return o(f(e),X2r,d),u(f(e),Y2r),u(f(e),V2r)}),N(yK,function(t,n,e){var i=o(zp,t,n);return o(C0(I2r),i,e)});var eC=[0,rC,_K,zp,yK],nC=function t(n,e,i,x){return t.fun(n,e,i,x)},hK=function t(n,e,i){return t.fun(n,e,i)},Kp=function t(n,e,i,x){return t.fun(n,e,i,x)},dK=function t(n,e,i){return t.fun(n,e,i)};N(nC,function(t,n,e,i){u(f(e),F2r),o(t,e,i[1]),u(f(e),T2r);var x=i[2];function c(s){return u(n,s)}return R(Kp,function(s){return u(t,s)},c,e,x),u(f(e),O2r)}),N(hK,function(t,n,e){var i=o(nC,t,n);return o(C0(g2r),i,e)}),N(Kp,function(t,n,e,i){u(f(e),l2r),o(f(e),p2r,b2r);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(eC[1],s,c,e,x),u(f(e),m2r),u(f(e),_2r),o(f(e),h2r,y2r);var p=i[2];if(p){g(e,d2r);var y=p[1],T=function(d,w){return g(d,v2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,k2r)}else g(e,w2r);return u(f(e),E2r),u(f(e),S2r)}),N(dK,function(t,n,e){var i=o(Kp,t,n);return o(C0(s2r),i,e)});var kK=[0,nC,hK,Kp,dK],tC=function t(n,e,i,x){return t.fun(n,e,i,x)},wK=function t(n,e,i){return t.fun(n,e,i)},Wp=function t(n,e,i,x){return t.fun(n,e,i,x)},EK=function t(n,e,i){return t.fun(n,e,i)};N(tC,function(t,n,e,i){u(f(e),o2r),o(t,e,i[1]),u(f(e),a2r);var x=i[2];function c(s){return u(n,s)}return R(Wp,function(s){return u(t,s)},c,e,x),u(f(e),c2r)}),N(wK,function(t,n,e){var i=o(tC,t,n);return o(C0(x2r),i,e)}),N(Wp,function(t,n,e,i){u(f(e),Wvr),o(f(e),$vr,Jvr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Zvr),u(f(e),Qvr),o(f(e),e2r,r2r);var p=i[2];if(p){g(e,n2r);var y=p[1],T=function(d,w){return g(d,Kvr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,t2r)}else g(e,u2r);return u(f(e),i2r),u(f(e),f2r)}),N(EK,function(t,n,e){var i=o(Wp,t,n);return o(C0(zvr),i,e)});var SK=[0,tC,wK,Wp,EK],uC=function t(n,e,i,x){return t.fun(n,e,i,x)},gK=function t(n,e,i){return t.fun(n,e,i)},Jp=function t(n,e,i,x){return t.fun(n,e,i,x)},FK=function t(n,e,i){return t.fun(n,e,i)};N(uC,function(t,n,e,i){u(f(e),Xvr),o(t,e,i[1]),u(f(e),Yvr);var x=i[2];function c(s){return u(n,s)}return R(Jp,function(s){return u(t,s)},c,e,x),u(f(e),Vvr)}),N(gK,function(t,n,e){var i=o(uC,t,n);return o(C0(Hvr),i,e)}),N(Jp,function(t,n,e,i){u(f(e),pvr),o(f(e),_vr,mvr);var x=i[1];if(x){g(e,yvr);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(SK[1],p,s,e,c),g(e,hvr)}else g(e,dvr);u(f(e),kvr),u(f(e),wvr),o(f(e),Svr,Evr);var y=i[2];u(f(e),gvr);var T=0;le(function(V,f0){V&&u(f(e),bvr);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(eC[1],k0,m0,e,f0),1},T,y),u(f(e),Fvr),u(f(e),Tvr),u(f(e),Ovr),o(f(e),Avr,Ivr);var E=i[3];if(E){g(e,Nvr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(kK[1],G,w,e,d),g(e,Cvr)}else g(e,Pvr);u(f(e),Dvr),u(f(e),Lvr),o(f(e),jvr,Rvr);var A=i[4];if(A){g(e,Gvr);var S=A[1],M=function(V,f0){u(f(V),vvr);var m0=0;return le(function(k0,g0){k0&&u(f(V),svr);function e0(x0){return u(t,x0)}return ur(iu[1],e0,V,g0),1},m0,f0),u(f(V),lvr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,Mvr)}else g(e,Bvr);return u(f(e),qvr),u(f(e),Uvr)}),N(FK,function(t,n,e){var i=o(Jp,t,n);return o(C0(cvr),i,e)});var TK=[0,uC,gK,Jp,FK],iC=function t(n,e,i,x){return t.fun(n,e,i,x)},OK=function t(n,e,i){return t.fun(n,e,i)};N(iC,function(t,n,e,i){u(f(e),q1r),o(f(e),H1r,U1r);var x=i[1];if(x){g(e,X1r);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R($e[22][1],p,s,e,c),g(e,Y1r)}else g(e,V1r);u(f(e),z1r),u(f(e),K1r),o(f(e),J1r,W1r);var y=i[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(TK[1],E,T,e,y),u(f(e),$1r),u(f(e),Z1r),o(f(e),rvr,Q1r);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),evr),u(f(e),nvr),o(f(e),uvr,tvr);var A=i[4];if(A){g(e,ivr);var S=A[1],M=function(V,f0){return g(V,B1r)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,fvr)}else g(e,xvr);return u(f(e),ovr),u(f(e),avr)}),N(OK,function(t,n,e){var i=o(iC,t,n);return o(C0(M1r),i,e)});var Ol=[0,eC,kK,SK,TK,iC,OK],$p=function t(n,e,i,x){return t.fun(n,e,i,x)},IK=function t(n,e,i){return t.fun(n,e,i)},Zp=function t(n,e,i,x){return t.fun(n,e,i,x)},AK=function t(n,e,i){return t.fun(n,e,i)},Qp=function t(n,e,i,x){return t.fun(n,e,i,x)},NK=function t(n,e,i){return t.fun(n,e,i)};N($p,function(t,n,e,i){if(i[0]===0){u(f(e),L1r);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),R1r)}u(f(e),j1r);var p=i[1];function y(T){return u(n,T)}return R(Zp,function(T){return u(t,T)},y,e,p),u(f(e),G1r)}),N(IK,function(t,n,e){var i=o($p,t,n);return o(C0(D1r),i,e)}),N(Zp,function(t,n,e,i){u(f(e),N1r),o(t,e,i[1]),u(f(e),C1r);var x=i[2];function c(s){return u(n,s)}return R(Qp,function(s){return u(t,s)},c,e,x),u(f(e),P1r)}),N(AK,function(t,n,e){var i=o(Zp,t,n);return o(C0(A1r),i,e)}),N(Qp,function(t,n,e,i){u(f(e),k1r),o(f(e),E1r,w1r);var x=i[1];function c(T){return u(n,T)}R($p,function(T){return u(t,T)},c,e,x),u(f(e),S1r),u(f(e),g1r),o(f(e),T1r,F1r);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),O1r),u(f(e),I1r)}),N(NK,function(t,n,e){var i=o(Qp,t,n);return o(C0(d1r),i,e)});var CK=[0,$p,IK,Zp,AK,Qp,NK],fC=function t(n,e,i,x){return t.fun(n,e,i,x)},PK=function t(n,e,i){return t.fun(n,e,i)};N(fC,function(t,n,e,i){u(f(e),e1r),o(f(e),t1r,n1r);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(CK[1],s,c,e,x),u(f(e),u1r),u(f(e),i1r),o(f(e),x1r,f1r);var p=i[2];if(p){g(e,o1r);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,a1r)}else g(e,c1r);u(f(e),s1r),u(f(e),v1r),o(f(e),b1r,l1r);var d=i[3];if(d){g(e,p1r);var w=d[1],G=function(S,M){return g(S,r1r)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,m1r)}else g(e,_1r);return u(f(e),y1r),u(f(e),h1r)}),N(PK,function(t,n,e){var i=o(fC,t,n);return o(C0(Qsr),i,e)});var xC=[0,CK,fC,PK],oC=function t(n,e,i,x){return t.fun(n,e,i,x)},DK=function t(n,e,i){return t.fun(n,e,i)};N(oC,function(t,n,e,i){u(f(e),jsr),o(f(e),Msr,Gsr);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R($e[13],s,c,e,x),u(f(e),Bsr),u(f(e),qsr),o(f(e),Hsr,Usr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[13],T,y,e,p),u(f(e),Xsr),u(f(e),Ysr),o(f(e),zsr,Vsr);var E=i[3];if(E){g(e,Ksr);var d=E[1],w=function(A,S){return g(A,Rsr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Wsr)}else g(e,Jsr);return u(f(e),$sr),u(f(e),Zsr)}),N(DK,function(t,n,e){var i=o(oC,t,n);return o(C0(Lsr),i,e)});var aC=[0,oC,DK],cC=function t(n,e,i,x){return t.fun(n,e,i,x)},LK=function t(n,e,i){return t.fun(n,e,i)};N(cC,function(t,n,e,i){u(f(e),gsr),o(f(e),Tsr,Fsr);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(aC[1],s,c,e,x),u(f(e),Osr),u(f(e),Isr),o(f(e),Nsr,Asr);var p=i[2];return o(f(e),Csr,p),u(f(e),Psr),u(f(e),Dsr)}),N(LK,function(t,n,e){var i=o(cC,t,n);return o(C0(Ssr),i,e)});var RK=[0,cC,LK],sC=function t(n,e,i,x){return t.fun(n,e,i,x)},jK=function t(n,e,i){return t.fun(n,e,i)},r5=function t(n,e,i,x){return t.fun(n,e,i,x)},GK=function t(n,e,i){return t.fun(n,e,i)},e5=function t(n,e,i,x){return t.fun(n,e,i,x)},MK=function t(n,e,i){return t.fun(n,e,i)};N(sC,function(t,n,e,i){u(f(e),ksr),o(t,e,i[1]),u(f(e),wsr);var x=i[2];function c(s){return u(n,s)}return R(r5,function(s){return u(t,s)},c,e,x),u(f(e),Esr)}),N(jK,function(t,n,e){var i=o(sC,t,n);return o(C0(dsr),i,e)}),N(r5,function(t,n,e,i){u(f(e),Ncr),o(f(e),Pcr,Ccr);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(qe[7][1][1],s,c,e,x),u(f(e),Dcr),u(f(e),Lcr),o(f(e),jcr,Rcr);var p=i[2];function y(m0){return u(n,m0)}R(e5,function(m0){return u(t,m0)},y,e,p),u(f(e),Gcr),u(f(e),Mcr),o(f(e),qcr,Bcr);var T=i[3];o(f(e),Ucr,T),u(f(e),Hcr),u(f(e),Xcr),o(f(e),Vcr,Ycr);var E=i[4];o(f(e),zcr,E),u(f(e),Kcr),u(f(e),Wcr),o(f(e),$cr,Jcr);var d=i[5];o(f(e),Zcr,d),u(f(e),Qcr),u(f(e),rsr),o(f(e),nsr,esr);var w=i[6];o(f(e),tsr,w),u(f(e),usr),u(f(e),isr),o(f(e),xsr,fsr);var G=i[7];if(G){g(e,osr);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,asr)}else g(e,csr);u(f(e),ssr),u(f(e),vsr),o(f(e),bsr,lsr);var M=i[8];if(M){g(e,psr);var K=M[1],V=function(m0,k0){return g(m0,Acr)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,msr)}else g(e,_sr);return u(f(e),ysr),u(f(e),hsr)}),N(GK,function(t,n,e){var i=o(r5,t,n);return o(C0(Icr),i,e)}),N(e5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),_cr);var x=i[1],c=function(S){return u(n,S)},s=function(S){return u(t,S)};return R($e[13],s,c,e,x),u(f(e),ycr);case 1:var p=i[1];u(f(e),hcr),u(f(e),dcr),o(t,e,p[1]),u(f(e),kcr);var y=p[2],T=function(S){return u(n,S)},E=function(S){return u(t,S)};return R(Ol[5],E,T,e,y),u(f(e),wcr),u(f(e),Ecr);default:var d=i[1];u(f(e),Scr),u(f(e),gcr),o(t,e,d[1]),u(f(e),Fcr);var w=d[2],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(Ol[5],A,G,e,w),u(f(e),Tcr),u(f(e),Ocr)}}),N(MK,function(t,n,e){var i=o(e5,t,n);return o(C0(mcr),i,e)});var BK=[0,sC,jK,r5,GK,e5,MK],vC=function t(n,e,i,x){return t.fun(n,e,i,x)},qK=function t(n,e,i){return t.fun(n,e,i)},n5=function t(n,e,i,x){return t.fun(n,e,i,x)},UK=function t(n,e,i){return t.fun(n,e,i)};N(vC,function(t,n,e,i){u(f(e),lcr),o(t,e,i[1]),u(f(e),bcr);var x=i[2];function c(s){return u(n,s)}return R(n5,function(s){return u(t,s)},c,e,x),u(f(e),pcr)}),N(qK,function(t,n,e){var i=o(vC,t,n);return o(C0(vcr),i,e)}),N(n5,function(t,n,e,i){u(f(e),rcr),o(f(e),ncr,ecr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),tcr),u(f(e),ucr),o(f(e),fcr,icr);var p=i[2];if(p){g(e,xcr);var y=p[1],T=function(d,w){return g(d,Qar)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,ocr)}else g(e,acr);return u(f(e),ccr),u(f(e),scr)}),N(UK,function(t,n,e){var i=o(n5,t,n);return o(C0(Zar),i,e)});var HK=[0,vC,qK,n5,UK],t5=function t(n,e,i,x){return t.fun(n,e,i,x)},XK=function t(n,e,i){return t.fun(n,e,i)},lC=function t(n,e,i,x){return t.fun(n,e,i,x)},YK=function t(n,e,i){return t.fun(n,e,i)};N(t5,function(t,n,e,i){u(f(e),_ar),o(f(e),har,yar);var x=i[1];if(x){g(e,dar);var c=x[1],s=function(g0){return u(t,g0)},p=function(g0){return u(t,g0)};R(Rn[1],p,s,e,c),g(e,kar)}else g(e,war);u(f(e),Ear),u(f(e),Sar),o(f(e),Far,gar);var y=i[2];function T(g0){return u(n,g0)}function E(g0){return u(t,g0)}R($e[13],E,T,e,y),u(f(e),Tar),u(f(e),Oar),o(f(e),Aar,Iar);var d=i[3];function w(g0){return u(n,g0)}function G(g0){return u(t,g0)}R($e[13],G,w,e,d),u(f(e),Nar),u(f(e),Car),o(f(e),Dar,Par);var A=i[4];o(f(e),Lar,A),u(f(e),Rar),u(f(e),jar),o(f(e),Mar,Gar);var S=i[5];if(S){g(e,Bar);var M=S[1],K=function(g0){return u(t,g0)};ur(zv[1],K,e,M),g(e,qar)}else g(e,Uar);u(f(e),Har),u(f(e),Xar),o(f(e),Var,Yar);var V=i[6];if(V){g(e,zar);var f0=V[1],m0=function(g0,e0){return g(g0,mar)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,Kar)}else g(e,War);return u(f(e),Jar),u(f(e),$ar)}),N(XK,function(t,n,e){var i=o(t5,t,n);return o(C0(par),i,e)}),N(lC,function(t,n,e,i){u(f(e),sar),o(t,e,i[1]),u(f(e),lar);var x=i[2];function c(s){return u(n,s)}return R(t5,function(s){return u(t,s)},c,e,x),u(f(e),bar)}),N(YK,function(t,n,e){var i=o(lC,t,n);return o(C0(car),i,e)});var VK=[0,t5,XK,lC,YK],bC=function t(n,e,i,x){return t.fun(n,e,i,x)},zK=function t(n,e,i){return t.fun(n,e,i)},u5=function t(n,e,i,x){return t.fun(n,e,i,x)},KK=function t(n,e,i){return t.fun(n,e,i)};N(bC,function(t,n,e,i){u(f(e),xar),o(t,e,i[1]),u(f(e),oar);var x=i[2];function c(s){return u(n,s)}return R(u5,function(s){return u(t,s)},c,e,x),u(f(e),aar)}),N(zK,function(t,n,e){var i=o(bC,t,n);return o(C0(far),i,e)}),N(u5,function(t,n,e,i){u(f(e),Bor),o(f(e),Uor,qor);var x=i[1];u(f(e),Hor),o(t,e,x[1]),u(f(e),Xor);var c=x[2];function s(G){return u(n,G)}function p(G){return u(t,G)}R(Ol[5],p,s,e,c),u(f(e),Yor),u(f(e),Vor),u(f(e),zor),o(f(e),Wor,Kor);var y=i[2];o(f(e),Jor,y),u(f(e),$or),u(f(e),Zor),o(f(e),rar,Qor);var T=i[3];if(T){g(e,ear);var E=T[1],d=function(G,A){return g(G,Mor)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,nar)}else g(e,tar);return u(f(e),uar),u(f(e),iar)}),N(KK,function(t,n,e){var i=o(u5,t,n);return o(C0(Gor),i,e)});var WK=[0,bC,zK,u5,KK],pC=function t(n,e,i,x){return t.fun(n,e,i,x)},JK=function t(n,e,i){return t.fun(n,e,i)},i5=function t(n,e,i,x){return t.fun(n,e,i,x)},$K=function t(n,e,i){return t.fun(n,e,i)};N(pC,function(t,n,e,i){u(f(e),Lor),o(t,e,i[1]),u(f(e),Ror);var x=i[2];function c(s){return u(n,s)}return R(i5,function(s){return u(t,s)},c,e,x),u(f(e),jor)}),N(JK,function(t,n,e){var i=o(pC,t,n);return o(C0(Dor),i,e)}),N(i5,function(t,n,e,i){u(f(e),nor),o(f(e),uor,tor);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),ior),u(f(e),xor),o(f(e),aor,oor);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[13],T,y,e,p),u(f(e),cor),u(f(e),sor),o(f(e),lor,vor);var E=i[3];o(f(e),bor,E),u(f(e),por),u(f(e),mor),o(f(e),yor,_or);var d=i[4];o(f(e),hor,d),u(f(e),dor),u(f(e),kor),o(f(e),Eor,wor);var w=i[5];o(f(e),Sor,w),u(f(e),gor),u(f(e),For),o(f(e),Oor,Tor);var G=i[6];if(G){g(e,Ior);var A=G[1],S=function(K,V){return g(K,eor)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Aor)}else g(e,Nor);return u(f(e),Cor),u(f(e),Por)}),N($K,function(t,n,e){var i=o(i5,t,n);return o(C0(ror),i,e)});var ZK=[0,pC,JK,i5,$K],mC=function t(n,e,i,x){return t.fun(n,e,i,x)},QK=function t(n,e,i){return t.fun(n,e,i)},f5=function t(n,e,i,x){return t.fun(n,e,i,x)},rW=function t(n,e,i){return t.fun(n,e,i)};N(mC,function(t,n,e,i){u(f(e),Axr),o(f(e),Cxr,Nxr);var x=i[1];o(f(e),Pxr,x),u(f(e),Dxr),u(f(e),Lxr),o(f(e),jxr,Rxr);var c=i[2];o(f(e),Gxr,c),u(f(e),Mxr),u(f(e),Bxr),o(f(e),Uxr,qxr);var s=i[3];u(f(e),Hxr);var p=0;le(function(w,G){w&&u(f(e),Ixr);function A(S){return u(n,S)}return R(f5,function(S){return u(t,S)},A,e,G),1},p,s),u(f(e),Xxr),u(f(e),Yxr),u(f(e),Vxr),o(f(e),Kxr,zxr);var y=i[4];if(y){g(e,Wxr);var T=y[1],E=function(w,G){u(f(w),Txr);var A=0;return le(function(S,M){S&&u(f(w),Fxr);function K(V){return u(t,V)}return ur(iu[1],K,w,M),1},A,G),u(f(w),Oxr)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Jxr)}else g(e,$xr);return u(f(e),Zxr),u(f(e),Qxr)}),N(QK,function(t,n,e){var i=o(mC,t,n);return o(C0(gxr),i,e)}),N(f5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),pxr);var x=i[1],c=function(f0){return u(n,f0)},s=function(f0){return u(t,f0)};return R(BK[1],s,c,e,x),u(f(e),mxr);case 1:u(f(e),_xr);var p=i[1],y=function(f0){return u(n,f0)},T=function(f0){return u(t,f0)};return R(HK[1],T,y,e,p),u(f(e),yxr);case 2:u(f(e),hxr);var E=i[1],d=function(f0){return u(n,f0)},w=function(f0){return u(t,f0)};return R(VK[3],w,d,e,E),u(f(e),dxr);case 3:u(f(e),kxr);var G=i[1],A=function(f0){return u(n,f0)},S=function(f0){return u(t,f0)};return R(WK[1],S,A,e,G),u(f(e),wxr);default:u(f(e),Exr);var M=i[1],K=function(f0){return u(n,f0)},V=function(f0){return u(t,f0)};return R(ZK[1],V,K,e,M),u(f(e),Sxr)}}),N(rW,function(t,n,e){var i=o(f5,t,n);return o(C0(bxr),i,e)});var _C=[0,BK,HK,VK,WK,ZK,mC,QK,f5,rW],yC=function t(n,e,i,x){return t.fun(n,e,i,x)},eW=function t(n,e,i){return t.fun(n,e,i)};N(yC,function(t,n,e,i){u(f(e),zfr),o(f(e),Wfr,Kfr);var x=i[1];u(f(e),Jfr),o(t,e,x[1]),u(f(e),$fr);var c=x[2];function s(A){return u(n,A)}function p(A){return u(t,A)}R(_C[6],p,s,e,c),u(f(e),Zfr),u(f(e),Qfr),u(f(e),rxr),o(f(e),nxr,exr);var y=i[2];u(f(e),txr);var T=0;le(function(A,S){A&&u(f(e),Hfr),u(f(e),Xfr),o(t,e,S[1]),u(f(e),Yfr);var M=S[2];function K(f0){return u(n,f0)}function V(f0){return u(t,f0)}return R(xC[2],V,K,e,M),u(f(e),Vfr),1},T,y),u(f(e),uxr),u(f(e),ixr),u(f(e),fxr),o(f(e),oxr,xxr);var E=i[3];if(E){g(e,axr);var d=E[1],w=function(A,S){return g(A,Ufr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,cxr)}else g(e,sxr);return u(f(e),vxr),u(f(e),lxr)}),N(eW,function(t,n,e){var i=o(yC,t,n);return o(C0(qfr),i,e)});var nW=[0,yC,eW],hC=function t(n,e,i,x){return t.fun(n,e,i,x)},tW=function t(n,e,i){return t.fun(n,e,i)};N(hC,function(t,n,e,i){u(f(e),Ifr),o(f(e),Nfr,Afr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),Cfr),u(f(e),Pfr),o(f(e),Lfr,Dfr);var p=i[2];if(p){g(e,Rfr);var y=p[1],T=function(d,w){return g(d,Ofr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,jfr)}else g(e,Gfr);return u(f(e),Mfr),u(f(e),Bfr)}),N(tW,function(t,n,e){var i=o(hC,t,n);return o(C0(Tfr),i,e)});var uW=[0,hC,tW],x5=function t(n,e,i,x){return t.fun(n,e,i,x)},iW=function t(n,e,i){return t.fun(n,e,i)},o5=function t(n,e,i,x){return t.fun(n,e,i,x)},fW=function t(n,e,i){return t.fun(n,e,i)},a5=function t(n,e,i,x){return t.fun(n,e,i,x)},xW=function t(n,e,i){return t.fun(n,e,i)};N(x5,function(t,n,e,i){if(i[0]===0){u(f(e),Efr);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),Sfr)}u(f(e),gfr);var p=i[1];function y(T){return u(n,T)}return R(a5,function(T){return u(t,T)},y,e,p),u(f(e),Ffr)}),N(iW,function(t,n,e){var i=o(x5,t,n);return o(C0(wfr),i,e)}),N(o5,function(t,n,e,i){u(f(e),lfr),o(f(e),pfr,bfr);var x=i[1];function c(T){return u(n,T)}R(x5,function(T){return u(t,T)},c,e,x),u(f(e),mfr),u(f(e),_fr),o(f(e),hfr,yfr);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),dfr),u(f(e),kfr)}),N(fW,function(t,n,e){var i=o(o5,t,n);return o(C0(vfr),i,e)}),N(a5,function(t,n,e,i){u(f(e),afr),o(n,e,i[1]),u(f(e),cfr);var x=i[2];function c(s){return u(n,s)}return R(o5,function(s){return u(t,s)},c,e,x),u(f(e),sfr)}),N(xW,function(t,n,e){var i=o(a5,t,n);return o(C0(ofr),i,e)});var oW=[0,x5,iW,o5,fW,a5,xW],dC=function t(n,e,i,x){return t.fun(n,e,i,x)},aW=function t(n,e,i){return t.fun(n,e,i)};N(dC,function(t,n,e,i){u(f(e),Jir),o(f(e),Zir,$ir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(oW[1],s,c,e,x),u(f(e),Qir),u(f(e),rfr),o(f(e),nfr,efr);var p=i[2];if(p){g(e,tfr);var y=p[1],T=function(d,w){return g(d,Wir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,ufr)}else g(e,ifr);return u(f(e),ffr),u(f(e),xfr)}),N(aW,function(t,n,e){var i=o(dC,t,n);return o(C0(Kir),i,e)});var cW=[0,oW,dC,aW],kC=function t(n,e,i,x){return t.fun(n,e,i,x)},sW=function t(n,e,i){return t.fun(n,e,i)};N(kC,function(t,n,e,i){u(f(e),Dir),o(f(e),Rir,Lir);var x=i[1];u(f(e),jir);var c=0;le(function(E,d){E&&u(f(e),Pir);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),Gir),u(f(e),Mir),u(f(e),Bir),o(f(e),Uir,qir);var s=i[2];if(s){g(e,Hir);var p=s[1],y=function(E,d){return g(E,Cir)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Xir)}else g(e,Yir);return u(f(e),Vir),u(f(e),zir)}),N(sW,function(t,n,e){var i=o(kC,t,n);return o(C0(Nir),i,e)});var vW=[0,kC,sW],wC=function t(n,e,i,x){return t.fun(n,e,i,x)},lW=function t(n,e,i){return t.fun(n,e,i)};N(wC,function(t,n,e,i){u(f(e),hir),o(f(e),kir,dir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),wir),u(f(e),Eir),o(f(e),gir,Sir);var p=i[2];if(p){g(e,Fir);var y=p[1],T=function(d,w){return g(d,yir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Tir)}else g(e,Oir);return u(f(e),Iir),u(f(e),Air)}),N(lW,function(t,n,e){var i=o(wC,t,n);return o(C0(_ir),i,e)});var bW=[0,wC,lW],EC=function t(n,e,i,x){return t.fun(n,e,i,x)},pW=function t(n,e,i){return t.fun(n,e,i)};N(EC,function(t,n,e,i){u(f(e),Q7r),o(f(e),eir,rir);var x=i[1];u(f(e),nir);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),tir);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),uir),u(f(e),iir);var d=x[3],w=0;le(function(K,V){K&&u(f(e),Z7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),fir),u(f(e),xir),u(f(e),oir),u(f(e),air),o(f(e),sir,cir);var G=i[2];if(G){g(e,vir);var A=G[1],S=function(K,V){return g(K,$7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,lir)}else g(e,bir);return u(f(e),pir),u(f(e),mir)}),N(pW,function(t,n,e){var i=o(EC,t,n);return o(C0(J7r),i,e)});var mW=[0,EC,pW],SC=function t(n,e,i,x){return t.fun(n,e,i,x)},_W=function t(n,e,i){return t.fun(n,e,i)};N(SC,function(t,n,e,i){u(f(e),C7r),o(f(e),D7r,P7r);var x=i[1];u(f(e),L7r);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),R7r);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),j7r),u(f(e),G7r);var d=x[3],w=0;le(function(K,V){K&&u(f(e),N7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),M7r),u(f(e),B7r),u(f(e),q7r),u(f(e),U7r),o(f(e),X7r,H7r);var G=i[2];if(G){g(e,Y7r);var A=G[1],S=function(K,V){return g(K,A7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,V7r)}else g(e,z7r);return u(f(e),K7r),u(f(e),W7r)}),N(_W,function(t,n,e){var i=o(SC,t,n);return o(C0(I7r),i,e)});var yW=[0,SC,_W],c5=function t(n,e,i,x){return t.fun(n,e,i,x)},hW=function t(n,e,i){return t.fun(n,e,i)},s5=function t(n,e,i,x){return t.fun(n,e,i,x)},dW=function t(n,e,i){return t.fun(n,e,i)},gC=function t(n,e,i,x){return t.fun(n,e,i,x)},kW=function t(n,e,i){return t.fun(n,e,i)},FC=function t(n,e,i,x){return t.fun(n,e,i,x)},wW=function t(n,e,i){return t.fun(n,e,i)};N(c5,function(t,n,e,i){u(f(e),F7r),o(n,e,i[1]),u(f(e),T7r);var x=i[2];function c(s){return u(n,s)}return R(s5,function(s){return u(t,s)},c,e,x),u(f(e),O7r)}),N(hW,function(t,n,e){var i=o(c5,t,n);return o(C0(g7r),i,e)}),N(s5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];if(u(f(e),Vtr),x){g(e,ztr);var c=x[1],s=function(U,Y){return g(U,Ytr)},p=function(U){return u(t,U)};R(Dr[1],p,s,e,c),g(e,Ktr)}else g(e,Wtr);return u(f(e),Jtr);case 1:var y=i[1];if(u(f(e),$tr),y){g(e,Ztr);var T=y[1],E=function(U,Y){return g(U,Xtr)},d=function(U){return u(t,U)};R(Dr[1],d,E,e,T),g(e,Qtr)}else g(e,rur);return u(f(e),eur);case 2:var w=i[1];if(u(f(e),nur),w){g(e,tur);var G=w[1],A=function(U,Y){return g(U,Htr)},S=function(U){return u(t,U)};R(Dr[1],S,A,e,G),g(e,uur)}else g(e,iur);return u(f(e),fur);case 3:var M=i[1];if(u(f(e),xur),M){g(e,our);var K=M[1],V=function(U,Y){return g(U,Utr)},f0=function(U){return u(t,U)};R(Dr[1],f0,V,e,K),g(e,aur)}else g(e,cur);return u(f(e),sur);case 4:var m0=i[1];if(u(f(e),vur),m0){g(e,lur);var k0=m0[1],g0=function(U,Y){return g(U,qtr)},e0=function(U){return u(t,U)};R(Dr[1],e0,g0,e,k0),g(e,bur)}else g(e,pur);return u(f(e),mur);case 5:var x0=i[1];if(u(f(e),_ur),x0){g(e,yur);var l=x0[1],c0=function(U,Y){return g(U,Btr)},t0=function(U){return u(t,U)};R(Dr[1],t0,c0,e,l),g(e,hur)}else g(e,dur);return u(f(e),kur);case 6:var o0=i[1];if(u(f(e),wur),o0){g(e,Eur);var w0=o0[1],_0=function(U,Y){return g(U,Mtr)},E0=function(U){return u(t,U)};R(Dr[1],E0,_0,e,w0),g(e,Sur)}else g(e,gur);return u(f(e),Fur);case 7:var U0=i[1];if(u(f(e),Tur),U0){g(e,Our);var b=U0[1],R0=function(U,Y){return g(U,Gtr)},X=function(U){return u(t,U)};R(Dr[1],X,R0,e,b),g(e,Iur)}else g(e,Aur);return u(f(e),Nur);case 8:var s0=i[1];if(u(f(e),Cur),s0){g(e,Pur);var hr=s0[1],Ar=function(U,Y){return g(U,jtr)},or=function(U){return u(t,U)};R(Dr[1],or,Ar,e,hr),g(e,Dur)}else g(e,Lur);return u(f(e),Rur);case 9:var W0=i[1];if(u(f(e),jur),W0){g(e,Gur);var Lr=W0[1],Tr=function(U,Y){return g(U,Rtr)},Hr=function(U){return u(t,U)};R(Dr[1],Hr,Tr,e,Lr),g(e,Mur)}else g(e,Bur);return u(f(e),qur);case 10:var Or=i[1];if(u(f(e),Uur),Or){g(e,Hur);var fr=Or[1],Rr=function(U,Y){return g(U,Ltr)},Wr=function(U){return u(t,U)};R(Dr[1],Wr,Rr,e,fr),g(e,Xur)}else g(e,Yur);return u(f(e),Vur);case 11:u(f(e),zur);var Jr=i[1],ar=function(U){return u(n,U)},_r=function(U){return u(t,U)};return R(uW[1],_r,ar,e,Jr),u(f(e),Kur);case 12:u(f(e),Wur);var Ir=i[1],fe=function(U){return u(n,U)},v0=function(U){return u(t,U)};return R(Ol[5],v0,fe,e,Ir),u(f(e),Jur);case 13:u(f(e),$ur);var P=i[1],L=function(U){return u(n,U)},Q=function(U){return u(t,U)};return R(_C[6],Q,L,e,P),u(f(e),Zur);case 14:u(f(e),Qur);var i0=i[1],l0=function(U){return u(n,U)},S0=function(U){return u(t,U)};return R(nW[1],S0,l0,e,i0),u(f(e),r7r);case 15:u(f(e),e7r);var T0=i[1],rr=function(U){return u(n,U)},L0=function(U){return u(t,U)};return R(bW[1],L0,rr,e,T0),u(f(e),n7r);case 16:u(f(e),t7r);var B=i[1],Z=function(U){return u(n,U)},p0=function(U){return u(t,U)};return R(xC[2],p0,Z,e,B),u(f(e),u7r);case 17:u(f(e),i7r);var b0=i[1],O0=function(U){return u(n,U)},M0=function(U){return u(t,U)};return R(aC[1],M0,O0,e,b0),u(f(e),f7r);case 18:u(f(e),x7r);var er=i[1],yr=function(U){return u(n,U)},vr=function(U){return u(t,U)};return R(RK[1],vr,yr,e,er),u(f(e),o7r);case 19:u(f(e),a7r);var $0=i[1],Er=function(U){return u(n,U)},Mr=function(U){return u(t,U)};return R(mW[1],Mr,Er,e,$0),u(f(e),c7r);case 20:u(f(e),s7r);var Br=i[1],qr=function(U){return u(n,U)},jr=function(U){return u(t,U)};return R(yW[1],jr,qr,e,Br),u(f(e),v7r);case 21:u(f(e),l7r);var $r=i[1],ne=function(U){return u(n,U)},Qr=function(U){return u(t,U)};return R(cW[2],Qr,ne,e,$r),u(f(e),b7r);case 22:u(f(e),p7r);var be=i[1],ae=function(U){return u(n,U)},pe=function(U){return u(t,U)};return R(vW[1],pe,ae,e,be),u(f(e),m7r);case 23:u(f(e),_7r);var oe=i[1],ce=function(U){return u(t,U)};return ur(g1[1],ce,e,oe),u(f(e),y7r);case 24:u(f(e),h7r);var ge=i[1],q0=function(U){return u(t,U)};return ur(BN[1],q0,e,ge),u(f(e),d7r);case 25:u(f(e),k7r);var Fr=i[1],_=function(U){return u(t,U)};return ur(Zz[1],_,e,Fr),u(f(e),w7r);default:u(f(e),E7r);var k=i[1],I=function(U){return u(t,U)};return ur(qN[1],I,e,k),u(f(e),S7r)}}),N(dW,function(t,n,e){var i=o(s5,t,n);return o(C0(Dtr),i,e)}),N(gC,function(t,n,e,i){u(f(e),Ntr),o(t,e,i[1]),u(f(e),Ctr);var x=i[2];function c(s){return u(n,s)}return R(c5,function(s){return u(t,s)},c,e,x),u(f(e),Ptr)}),N(kW,function(t,n,e){var i=o(gC,t,n);return o(C0(Atr),i,e)}),N(FC,function(t,n,e,i){if(i[0]===0)return u(f(e),Ftr),o(n,e,i[1]),u(f(e),Ttr);u(f(e),Otr);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R($e[17],s,c,e,x),u(f(e),Itr)}),N(wW,function(t,n,e){var i=o(FC,t,n);return o(C0(gtr),i,e)});var TC=function t(n,e,i,x){return t.fun(n,e,i,x)},EW=function t(n,e,i){return t.fun(n,e,i)},v5=function t(n,e,i,x){return t.fun(n,e,i,x)},SW=function t(n,e,i){return t.fun(n,e,i)};N(TC,function(t,n,e,i){u(f(e),wtr),o(t,e,i[1]),u(f(e),Etr);var x=i[2];function c(s){return u(n,s)}return R(v5,function(s){return u(t,s)},c,e,x),u(f(e),Str)}),N(EW,function(t,n,e){var i=o(TC,t,n);return o(C0(ktr),i,e)}),N(v5,function(t,n,e,i){u(f(e),Znr),o(f(e),rtr,Qnr);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),etr),u(f(e),ntr),o(f(e),utr,ttr);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[19],T,y,e,p),u(f(e),itr),u(f(e),ftr),o(f(e),otr,xtr);var E=i[3];if(E){g(e,atr);var d=E[1],w=function(K){return u(t,K)};ur(zv[1],w,e,d),g(e,ctr)}else g(e,str);u(f(e),vtr),u(f(e),ltr),o(f(e),ptr,btr);var G=i[4];if(G){g(e,mtr);var A=G[1],S=function(K){return u(n,K)},M=function(K){return u(t,K)};R($e[13],M,S,e,A),g(e,_tr)}else g(e,ytr);return u(f(e),htr),u(f(e),dtr)}),N(SW,function(t,n,e){var i=o(v5,t,n);return o(C0($nr),i,e)});var gW=[0,TC,EW,v5,SW],OC=function t(n,e,i,x){return t.fun(n,e,i,x)},FW=function t(n,e,i){return t.fun(n,e,i)},l5=function t(n,e,i,x){return t.fun(n,e,i,x)},TW=function t(n,e,i){return t.fun(n,e,i)};N(OC,function(t,n,e,i){u(f(e),Knr),o(t,e,i[1]),u(f(e),Wnr);var x=i[2];function c(s){return u(n,s)}return R(l5,function(s){return u(t,s)},c,e,x),u(f(e),Jnr)}),N(FW,function(t,n,e){var i=o(OC,t,n);return o(C0(znr),i,e)}),N(l5,function(t,n,e,i){u(f(e),Pnr),o(f(e),Lnr,Dnr);var x=i[1];u(f(e),Rnr);var c=0;le(function(E,d){E&&u(f(e),Cnr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(gW[1],G,w,e,d),1},c,x),u(f(e),jnr),u(f(e),Gnr),u(f(e),Mnr),o(f(e),qnr,Bnr);var s=i[2];if(s){g(e,Unr);var p=s[1],y=function(E,d){u(f(E),Anr);var w=0;return le(function(G,A){G&&u(f(E),Inr);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),Nnr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Hnr)}else g(e,Xnr);return u(f(e),Ynr),u(f(e),Vnr)}),N(TW,function(t,n,e){var i=o(l5,t,n);return o(C0(Onr),i,e)});var IC=function t(n,e,i,x){return t.fun(n,e,i,x)},OW=function t(n,e,i){return t.fun(n,e,i)},b5=function t(n,e,i,x){return t.fun(n,e,i,x)},IW=function t(n,e,i){return t.fun(n,e,i)},wee=[0,OC,FW,l5,TW];N(IC,function(t,n,e,i){u(f(e),gnr),o(t,e,i[1]),u(f(e),Fnr);var x=i[2];function c(s){return u(n,s)}return R(b5,function(s){return u(t,s)},c,e,x),u(f(e),Tnr)}),N(OW,function(t,n,e){var i=o(IC,t,n);return o(C0(Snr),i,e)}),N(b5,function(t,n,e,i){u(f(e),cnr),o(f(e),vnr,snr);var x=i[1];u(f(e),lnr);var c=0;le(function(E,d){E&&u(f(e),anr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),bnr),u(f(e),pnr),u(f(e),mnr),o(f(e),ynr,_nr);var s=i[2];if(s){g(e,hnr);var p=s[1],y=function(E,d){u(f(E),xnr);var w=0;return le(function(G,A){G&&u(f(E),fnr);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),onr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,dnr)}else g(e,knr);return u(f(e),wnr),u(f(e),Enr)}),N(IW,function(t,n,e){var i=o(b5,t,n);return o(C0(inr),i,e)});var AC=function t(n,e,i,x){return t.fun(n,e,i,x)},AW=function t(n,e,i){return t.fun(n,e,i)},p5=function t(n,e,i,x){return t.fun(n,e,i,x)},NW=function t(n,e,i){return t.fun(n,e,i)},m5=function t(n,e,i,x){return t.fun(n,e,i,x)},CW=function t(n,e,i){return t.fun(n,e,i)},Eee=[0,IC,OW,b5,IW];N(AC,function(t,n,e,i){u(f(e),nnr),o(t,e,i[1]),u(f(e),tnr);var x=i[2];function c(s){return u(n,s)}return R(p5,function(s){return u(t,s)},c,e,x),u(f(e),unr)}),N(AW,function(t,n,e){var i=o(AC,t,n);return o(C0(enr),i,e)}),N(p5,function(t,n,e,i){u(f(e),Her),o(f(e),Yer,Xer);var x=i[1];function c(E){return u(n,E)}R(m5,function(E){return u(t,E)},c,e,x),u(f(e),Ver),u(f(e),zer),o(f(e),Wer,Ker);var s=i[2];if(s){g(e,Jer);var p=s[1],y=function(E,d){return g(E,Uer)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,$er)}else g(e,Zer);return u(f(e),Qer),u(f(e),rnr)}),N(NW,function(t,n,e){var i=o(p5,t,n);return o(C0(qer),i,e)}),N(m5,function(t,n,e,i){if(i){u(f(e),Ger);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(qe[31],s,c,e,x),u(f(e),Mer)}return g(e,Ber)}),N(CW,function(t,n,e){var i=o(m5,t,n);return o(C0(jer),i,e)}),mu(K3r,$e,[0,Ol,xC,aC,RK,_C,nW,uW,cW,vW,bW,mW,yW,c5,hW,s5,dW,gC,kW,FC,wW,gW,wee,Eee,[0,AC,AW,p5,NW,m5,CW]]);var NC=function t(n,e,i,x){return t.fun(n,e,i,x)},PW=function t(n,e,i){return t.fun(n,e,i)};N(NC,function(t,n,e,i){u(f(e),Eer),o(f(e),ger,Ser);var x=i[1];u(f(e),Fer);var c=0;le(function(E,d){E&&u(f(e),wer);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(Yu[35],G,w,e,d),1},c,x),u(f(e),Ter),u(f(e),Oer),u(f(e),Ier),o(f(e),Ner,Aer);var s=i[2];if(s){g(e,Cer);var p=s[1],y=function(E,d){u(f(E),der);var w=0;return le(function(G,A){G&&u(f(E),her);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),ker)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Per)}else g(e,Der);return u(f(e),Ler),u(f(e),Rer)}),N(PW,function(t,n,e){var i=o(NC,t,n);return o(C0(yer),i,e)});var Kv=[0,NC,PW],CC=function t(n,e,i,x){return t.fun(n,e,i,x)},DW=function t(n,e,i){return t.fun(n,e,i)},_5=function t(n,e,i,x){return t.fun(n,e,i,x)},LW=function t(n,e,i){return t.fun(n,e,i)};N(CC,function(t,n,e,i){u(f(e),per),o(t,e,i[1]),u(f(e),mer);var x=i[2];function c(s){return u(n,s)}return R(_5,function(s){return u(t,s)},c,e,x),u(f(e),_er)}),N(DW,function(t,n,e){var i=o(CC,t,n);return o(C0(ber),i,e)}),N(_5,function(t,n,e,i){u(f(e),ner),o(f(e),uer,ter);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Yu[35],s,c,e,x),u(f(e),ier),u(f(e),fer),o(f(e),oer,xer);var p=i[2];if(p){g(e,aer);var y=p[1],T=function(d,w){return g(d,eer)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,cer)}else g(e,ser);return u(f(e),ver),u(f(e),ler)}),N(LW,function(t,n,e){var i=o(_5,t,n);return o(C0(rer),i,e)});var RW=[0,CC,DW,_5,LW],PC=function t(n,e,i,x){return t.fun(n,e,i,x)},jW=function t(n,e,i){return t.fun(n,e,i)};N(PC,function(t,n,e,i){u(f(e),Nrr),o(f(e),Prr,Crr);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[31],s,c,e,x),u(f(e),Drr),u(f(e),Lrr),o(f(e),jrr,Rrr);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R(Yu[35],T,y,e,p),u(f(e),Grr),u(f(e),Mrr),o(f(e),qrr,Brr);var E=i[3];if(E){g(e,Urr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(RW[1],G,w,e,d),g(e,Hrr)}else g(e,Xrr);u(f(e),Yrr),u(f(e),Vrr),o(f(e),Krr,zrr);var A=i[4];if(A){g(e,Wrr);var S=A[1],M=function(V,f0){return g(V,Arr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,Jrr)}else g(e,$rr);return u(f(e),Zrr),u(f(e),Qrr)}),N(jW,function(t,n,e){var i=o(PC,t,n);return o(C0(Irr),i,e)});var GW=[0,RW,PC,jW],DC=function t(n,e,i,x){return t.fun(n,e,i,x)},MW=function t(n,e,i){return t.fun(n,e,i)};N(DC,function(t,n,e,i){u(f(e),lrr),o(f(e),prr,brr);var x=i[1];function c(A){return u(t,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),mrr),u(f(e),_rr),o(f(e),hrr,yrr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),drr),u(f(e),krr),o(f(e),Err,wrr);var E=i[3];if(E){g(e,Srr);var d=E[1],w=function(A,S){return g(A,vrr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,grr)}else g(e,Frr);return u(f(e),Trr),u(f(e),Orr)}),N(MW,function(t,n,e){var i=o(DC,t,n);return o(C0(srr),i,e)});var BW=[0,DC,MW],LC=function t(n,e,i){return t.fun(n,e,i)},qW=function t(n,e){return t.fun(n,e)};N(LC,function(t,n,e){u(f(n),J0r),o(f(n),Z0r,$0r);var i=e[1];if(i){g(n,Q0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,rrr)}else g(n,err);u(f(n),nrr),u(f(n),trr),o(f(n),irr,urr);var p=e[2];if(p){g(n,frr);var y=p[1],T=function(d,w){return g(d,W0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,xrr)}else g(n,orr);return u(f(n),arr),u(f(n),crr)}),N(qW,function(t,n){var e=u(LC,t);return o(C0(K0r),e,n)});var UW=[0,LC,qW],RC=function t(n,e,i){return t.fun(n,e,i)},HW=function t(n,e){return t.fun(n,e)};N(RC,function(t,n,e){u(f(n),P0r),o(f(n),L0r,D0r);var i=e[1];if(i){g(n,R0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,j0r)}else g(n,G0r);u(f(n),M0r),u(f(n),B0r),o(f(n),U0r,q0r);var p=e[2];if(p){g(n,H0r);var y=p[1],T=function(d,w){return g(d,C0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,X0r)}else g(n,Y0r);return u(f(n),V0r),u(f(n),z0r)}),N(HW,function(t,n){var e=u(RC,t);return o(C0(N0r),e,n)});var XW=[0,RC,HW],jC=function t(n,e,i){return t.fun(n,e,i)},YW=function t(n,e){return t.fun(n,e)};N(jC,function(t,n,e){u(f(n),E0r),o(f(n),g0r,S0r);var i=e[1];if(i){g(n,F0r);var x=i[1],c=function(p,y){return g(p,w0r)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,T0r)}else g(n,O0r);return u(f(n),I0r),u(f(n),A0r)}),N(YW,function(t,n){var e=u(jC,t);return o(C0(k0r),e,n)});var VW=[0,jC,YW],GC=function t(n,e,i,x){return t.fun(n,e,i,x)},zW=function t(n,e,i){return t.fun(n,e,i)};N(GC,function(t,n,e,i){u(f(e),i0r),o(f(e),x0r,f0r);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),o0r),u(f(e),a0r),o(f(e),s0r,c0r);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),v0r),u(f(e),l0r),o(f(e),p0r,b0r);var E=i[3];if(E){g(e,m0r);var d=E[1],w=function(A,S){return g(A,u0r)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,_0r)}else g(e,y0r);return u(f(e),h0r),u(f(e),d0r)}),N(zW,function(t,n,e){var i=o(GC,t,n);return o(C0(t0r),i,e)});var KW=[0,GC,zW],MC=function t(n,e,i,x){return t.fun(n,e,i,x)},WW=function t(n,e,i){return t.fun(n,e,i)};N(MC,function(t,n,e,i){u(f(e),DQ0),o(f(e),RQ0,LQ0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),jQ0),u(f(e),GQ0),o(f(e),BQ0,MQ0);var p=i[2];if(p){g(e,qQ0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R($e[22][1],E,T,e,y),g(e,UQ0)}else g(e,HQ0);u(f(e),XQ0),u(f(e),YQ0),o(f(e),zQ0,VQ0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),KQ0),u(f(e),WQ0),o(f(e),$Q0,JQ0);var A=i[4];if(A){g(e,ZQ0);var S=A[1],M=function(V,f0){return g(V,PQ0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,QQ0)}else g(e,r0r);return u(f(e),e0r),u(f(e),n0r)}),N(WW,function(t,n,e){var i=o(MC,t,n);return o(C0(CQ0),i,e)});var y5=[0,MC,WW],BC=function t(n,e,i,x){return t.fun(n,e,i,x)},JW=function t(n,e,i){return t.fun(n,e,i)};N(BC,function(t,n,e,i){u(f(e),QZ0),o(f(e),eQ0,rQ0);var x=i[1];function c(e0){return u(n,e0)}function s(e0){return u(t,e0)}R(Rn[1],s,c,e,x),u(f(e),nQ0),u(f(e),tQ0),o(f(e),iQ0,uQ0);var p=i[2];if(p){g(e,fQ0);var y=p[1],T=function(e0){return u(n,e0)},E=function(e0){return u(t,e0)};R($e[22][1],E,T,e,y),g(e,xQ0)}else g(e,oQ0);u(f(e),aQ0),u(f(e),cQ0),o(f(e),vQ0,sQ0);var d=i[3];if(d){g(e,lQ0);var w=d[1],G=function(e0){return u(n,e0)},A=function(e0){return u(t,e0)};R($e[13],A,G,e,w),g(e,bQ0)}else g(e,pQ0);u(f(e),mQ0),u(f(e),_Q0),o(f(e),hQ0,yQ0);var S=i[4];if(S){g(e,dQ0);var M=S[1],K=function(e0){return u(n,e0)},V=function(e0){return u(t,e0)};R($e[13],V,K,e,M),g(e,kQ0)}else g(e,wQ0);u(f(e),EQ0),u(f(e),SQ0),o(f(e),FQ0,gQ0);var f0=i[5];if(f0){g(e,TQ0);var m0=f0[1],k0=function(e0,x0){return g(e0,ZZ0)},g0=function(e0){return u(t,e0)};R(Dr[1],g0,k0,e,m0),g(e,OQ0)}else g(e,IQ0);return u(f(e),AQ0),u(f(e),NQ0)}),N(JW,function(t,n,e){var i=o(BC,t,n);return o(C0($Z0),i,e)});var h5=[0,BC,JW],qC=function t(n,e,i,x){return t.fun(n,e,i,x)},$W=function t(n,e,i){return t.fun(n,e,i)},d5=function t(n,e,i,x){return t.fun(n,e,i,x)},ZW=function t(n,e,i){return t.fun(n,e,i)};N(qC,function(t,n,e,i){u(f(e),KZ0),o(t,e,i[1]),u(f(e),WZ0);var x=i[2];function c(s){return u(n,s)}return R(d5,function(s){return u(t,s)},c,e,x),u(f(e),JZ0)}),N($W,function(t,n,e){var i=o(qC,t,n);return o(C0(zZ0),i,e)}),N(d5,function(t,n,e,i){u(f(e),FZ0),o(f(e),OZ0,TZ0);var x=i[1];if(x){g(e,IZ0);var c=x[1],s=function(A){return u(n,A)},p=function(A){return u(t,A)};R(qe[31],p,s,e,c),g(e,AZ0)}else g(e,NZ0);u(f(e),CZ0),u(f(e),PZ0),o(f(e),LZ0,DZ0);var y=i[2];u(f(e),RZ0);var T=0;le(function(A,S){A&&u(f(e),gZ0);function M(V){return u(n,V)}function K(V){return u(t,V)}return R(Yu[35],K,M,e,S),1},T,y),u(f(e),jZ0),u(f(e),GZ0),u(f(e),MZ0),o(f(e),qZ0,BZ0);var E=i[3];if(E){g(e,UZ0);var d=E[1],w=function(A,S){return g(A,SZ0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,HZ0)}else g(e,XZ0);return u(f(e),YZ0),u(f(e),VZ0)}),N(ZW,function(t,n,e){var i=o(d5,t,n);return o(C0(EZ0),i,e)});var QW=[0,qC,$W,d5,ZW],UC=function t(n,e,i,x){return t.fun(n,e,i,x)},rJ=function t(n,e,i){return t.fun(n,e,i)};N(UC,function(t,n,e,i){u(f(e),eZ0),o(f(e),tZ0,nZ0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),uZ0),u(f(e),iZ0),o(f(e),xZ0,fZ0);var p=i[2];u(f(e),oZ0);var y=0;le(function(G,A){G&&u(f(e),rZ0);function S(K){return u(n,K)}function M(K){return u(t,K)}return R(QW[1],M,S,e,A),1},y,p),u(f(e),aZ0),u(f(e),cZ0),u(f(e),sZ0),o(f(e),lZ0,vZ0);var T=i[3];if(T){g(e,bZ0);var E=T[1],d=function(G,A){return g(G,Q$0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,pZ0)}else g(e,mZ0);return u(f(e),_Z0),u(f(e),yZ0),o(f(e),dZ0,hZ0),o(n,e,i[4]),u(f(e),kZ0),u(f(e),wZ0)}),N(rJ,function(t,n,e){var i=o(UC,t,n);return o(C0(Z$0),i,e)});var eJ=[0,QW,UC,rJ],HC=function t(n,e,i,x){return t.fun(n,e,i,x)},nJ=function t(n,e,i){return t.fun(n,e,i)};N(HC,function(t,n,e,i){u(f(e),P$0),o(f(e),L$0,D$0);var x=i[1];if(x){g(e,R$0);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(qe[31],p,s,e,c),g(e,j$0)}else g(e,G$0);u(f(e),M$0),u(f(e),B$0),o(f(e),U$0,q$0);var y=i[2];if(y){g(e,H$0);var T=y[1],E=function(w,G){return g(w,C$0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,X$0)}else g(e,Y$0);return u(f(e),V$0),u(f(e),z$0),o(f(e),W$0,K$0),o(n,e,i[3]),u(f(e),J$0),u(f(e),$$0)}),N(nJ,function(t,n,e){var i=o(HC,t,n);return o(C0(N$0),i,e)});var tJ=[0,HC,nJ],XC=function t(n,e,i,x){return t.fun(n,e,i,x)},uJ=function t(n,e,i){return t.fun(n,e,i)};N(XC,function(t,n,e,i){u(f(e),h$0),o(f(e),k$0,d$0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),w$0),u(f(e),E$0),o(f(e),g$0,S$0);var p=i[2];if(p){g(e,F$0);var y=p[1],T=function(d,w){return g(d,y$0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,T$0)}else g(e,O$0);return u(f(e),I$0),u(f(e),A$0)}),N(uJ,function(t,n,e){var i=o(XC,t,n);return o(C0(_$0),i,e)});var iJ=[0,XC,uJ],YC=function t(n,e,i,x){return t.fun(n,e,i,x)},fJ=function t(n,e,i){return t.fun(n,e,i)},k5=function t(n,e,i,x){return t.fun(n,e,i,x)},xJ=function t(n,e,i){return t.fun(n,e,i)};N(YC,function(t,n,e,i){u(f(e),b$0),o(t,e,i[1]),u(f(e),p$0);var x=i[2];function c(s){return u(n,s)}return R(k5,function(s){return u(t,s)},c,e,x),u(f(e),m$0)}),N(fJ,function(t,n,e){var i=o(YC,t,n);return o(C0(l$0),i,e)}),N(k5,function(t,n,e,i){u(f(e),YJ0),o(f(e),zJ0,VJ0);var x=i[1];if(x){g(e,KJ0);var c=x[1],s=function(M){return u(n,M)},p=function(M){return u(t,M)};R(di[5],p,s,e,c),g(e,WJ0)}else g(e,JJ0);u(f(e),$J0),u(f(e),ZJ0),o(f(e),r$0,QJ0);var y=i[2];u(f(e),e$0),o(t,e,y[1]),u(f(e),n$0);var T=y[2];function E(M){return u(n,M)}function d(M){return u(t,M)}R(Kv[1],d,E,e,T),u(f(e),t$0),u(f(e),u$0),u(f(e),i$0),o(f(e),x$0,f$0);var w=i[3];if(w){g(e,o$0);var G=w[1],A=function(M,K){return g(M,XJ0)},S=function(M){return u(t,M)};R(Dr[1],S,A,e,G),g(e,a$0)}else g(e,c$0);return u(f(e),s$0),u(f(e),v$0)}),N(xJ,function(t,n,e){var i=o(k5,t,n);return o(C0(HJ0),i,e)});var oJ=[0,YC,fJ,k5,xJ],VC=function t(n,e,i,x){return t.fun(n,e,i,x)},aJ=function t(n,e,i){return t.fun(n,e,i)};N(VC,function(t,n,e,i){u(f(e),sJ0),o(f(e),lJ0,vJ0);var x=i[1];u(f(e),bJ0),o(t,e,x[1]),u(f(e),pJ0);var c=x[2];function s(k0){return u(n,k0)}function p(k0){return u(t,k0)}R(Kv[1],p,s,e,c),u(f(e),mJ0),u(f(e),_J0),u(f(e),yJ0),o(f(e),dJ0,hJ0);var y=i[2];if(y){g(e,kJ0);var T=y[1],E=function(k0){return u(n,k0)},d=function(k0){return u(t,k0)};R(oJ[1],d,E,e,T),g(e,wJ0)}else g(e,EJ0);u(f(e),SJ0),u(f(e),gJ0),o(f(e),TJ0,FJ0);var w=i[3];if(w){var G=w[1];g(e,OJ0),u(f(e),IJ0),o(t,e,G[1]),u(f(e),AJ0);var A=G[2],S=function(k0){return u(n,k0)},M=function(k0){return u(t,k0)};R(Kv[1],M,S,e,A),u(f(e),NJ0),g(e,CJ0)}else g(e,PJ0);u(f(e),DJ0),u(f(e),LJ0),o(f(e),jJ0,RJ0);var K=i[4];if(K){g(e,GJ0);var V=K[1],f0=function(k0,g0){return g(k0,cJ0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,MJ0)}else g(e,BJ0);return u(f(e),qJ0),u(f(e),UJ0)}),N(aJ,function(t,n,e){var i=o(VC,t,n);return o(C0(aJ0),i,e)});var cJ=[0,oJ,VC,aJ],zC=function t(n,e,i,x){return t.fun(n,e,i,x)},sJ=function t(n,e,i){return t.fun(n,e,i)},w5=function t(n,e,i,x){return t.fun(n,e,i,x)},vJ=function t(n,e,i){return t.fun(n,e,i)};N(zC,function(t,n,e,i){u(f(e),fJ0),o(t,e,i[1]),u(f(e),xJ0);var x=i[2];function c(s){return u(n,s)}return R(w5,function(s){return u(t,s)},c,e,x),u(f(e),oJ0)}),N(sJ,function(t,n,e){var i=o(zC,t,n);return o(C0(iJ0),i,e)}),N(w5,function(t,n,e,i){u(f(e),zW0),o(f(e),WW0,KW0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),JW0),u(f(e),$W0),o(f(e),QW0,ZW0);var p=i[2];if(p){g(e,rJ0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,eJ0)}else g(e,nJ0);return u(f(e),tJ0),u(f(e),uJ0)}),N(vJ,function(t,n,e){var i=o(w5,t,n);return o(C0(VW0),i,e)});var lJ=[0,zC,sJ,w5,vJ],KC=function t(n,e,i,x){return t.fun(n,e,i,x)},bJ=function t(n,e,i){return t.fun(n,e,i)},E5=function t(n,e){return t.fun(n,e)},pJ=function t(n){return t.fun(n)};N(KC,function(t,n,e,i){u(f(e),OW0),o(f(e),AW0,IW0);var x=i[1];u(f(e),NW0);var c=0;le(function(E,d){E&&u(f(e),TW0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(lJ[1],G,w,e,d),1},c,x),u(f(e),CW0),u(f(e),PW0),u(f(e),DW0),o(f(e),RW0,LW0),o(E5,e,i[2]),u(f(e),jW0),u(f(e),GW0),o(f(e),BW0,MW0);var s=i[3];if(s){g(e,qW0);var p=s[1],y=function(E,d){return g(E,FW0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,UW0)}else g(e,HW0);return u(f(e),XW0),u(f(e),YW0)}),N(bJ,function(t,n,e){var i=o(KC,t,n);return o(C0(gW0),i,e)}),N(E5,function(t,n){switch(n){case 0:return g(t,wW0);case 1:return g(t,EW0);default:return g(t,SW0)}}),N(pJ,function(t){return o(C0(kW0),E5,t)});var Il=[0,lJ,KC,bJ,E5,pJ],WC=function t(n,e,i,x){return t.fun(n,e,i,x)},mJ=function t(n,e,i){return t.fun(n,e,i)};N(WC,function(t,n,e,i){u(f(e),iW0),o(f(e),xW0,fW0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),oW0),u(f(e),aW0),o(f(e),sW0,cW0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),vW0),u(f(e),lW0),o(f(e),pW0,bW0);var E=i[3];if(E){g(e,mW0);var d=E[1],w=function(A,S){return g(A,uW0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,_W0)}else g(e,yW0);return u(f(e),hW0),u(f(e),dW0)}),N(mJ,function(t,n,e){var i=o(WC,t,n);return o(C0(tW0),i,e)});var _J=[0,WC,mJ],JC=function t(n,e,i,x){return t.fun(n,e,i,x)},yJ=function t(n,e,i){return t.fun(n,e,i)};N(JC,function(t,n,e,i){u(f(e),qK0),o(f(e),HK0,UK0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Yu[35],s,c,e,x),u(f(e),XK0),u(f(e),YK0),o(f(e),zK0,VK0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),KK0),u(f(e),WK0),o(f(e),$K0,JK0);var E=i[3];if(E){g(e,ZK0);var d=E[1],w=function(A,S){return g(A,BK0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,QK0)}else g(e,rW0);return u(f(e),eW0),u(f(e),nW0)}),N(yJ,function(t,n,e){var i=o(JC,t,n);return o(C0(MK0),i,e)});var hJ=[0,JC,yJ],$C=function t(n,e,i,x){return t.fun(n,e,i,x)},dJ=function t(n,e,i){return t.fun(n,e,i)},S5=function t(n,e,i,x){return t.fun(n,e,i,x)},kJ=function t(n,e,i){return t.fun(n,e,i)};N($C,function(t,n,e,i){u(f(e),fK0),o(f(e),oK0,xK0);var x=i[1];if(x){g(e,aK0);var c=x[1],s=function(g0){return u(n,g0)};R(S5,function(g0){return u(t,g0)},s,e,c),g(e,cK0)}else g(e,sK0);u(f(e),vK0),u(f(e),lK0),o(f(e),pK0,bK0);var p=i[2];if(p){g(e,mK0);var y=p[1],T=function(g0){return u(n,g0)},E=function(g0){return u(t,g0)};R(qe[31],E,T,e,y),g(e,_K0)}else g(e,yK0);u(f(e),hK0),u(f(e),dK0),o(f(e),wK0,kK0);var d=i[3];if(d){g(e,EK0);var w=d[1],G=function(g0){return u(n,g0)},A=function(g0){return u(t,g0)};R(qe[31],A,G,e,w),g(e,SK0)}else g(e,gK0);u(f(e),FK0),u(f(e),TK0),o(f(e),IK0,OK0);var S=i[4];function M(g0){return u(n,g0)}function K(g0){return u(t,g0)}R(Yu[35],K,M,e,S),u(f(e),AK0),u(f(e),NK0),o(f(e),PK0,CK0);var V=i[5];if(V){g(e,DK0);var f0=V[1],m0=function(g0,e0){return g(g0,iK0)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,LK0)}else g(e,RK0);return u(f(e),jK0),u(f(e),GK0)}),N(dJ,function(t,n,e){var i=o($C,t,n);return o(C0(uK0),i,e)}),N(S5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),$z0),u(f(e),Zz0),o(t,e,x[1]),u(f(e),Qz0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),rK0),u(f(e),eK0)}u(f(e),nK0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(qe[31],E,T,e,y),u(f(e),tK0)}),N(kJ,function(t,n,e){var i=o(S5,t,n);return o(C0(Jz0),i,e)});var wJ=[0,$C,dJ,S5,kJ],ZC=function t(n,e,i,x){return t.fun(n,e,i,x)},EJ=function t(n,e,i){return t.fun(n,e,i)},g5=function t(n,e,i,x){return t.fun(n,e,i,x)},SJ=function t(n,e,i){return t.fun(n,e,i)};N(ZC,function(t,n,e,i){u(f(e),gz0),o(f(e),Tz0,Fz0);var x=i[1];function c(K){return u(n,K)}R(g5,function(K){return u(t,K)},c,e,x),u(f(e),Oz0),u(f(e),Iz0),o(f(e),Nz0,Az0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(qe[31],y,p,e,s),u(f(e),Cz0),u(f(e),Pz0),o(f(e),Lz0,Dz0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),Rz0),u(f(e),jz0),o(f(e),Mz0,Gz0);var w=i[4];o(f(e),Bz0,w),u(f(e),qz0),u(f(e),Uz0),o(f(e),Xz0,Hz0);var G=i[5];if(G){g(e,Yz0);var A=G[1],S=function(K,V){return g(K,Sz0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Vz0)}else g(e,zz0);return u(f(e),Kz0),u(f(e),Wz0)}),N(EJ,function(t,n,e){var i=o(ZC,t,n);return o(C0(Ez0),i,e)}),N(g5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),mz0),u(f(e),_z0),o(t,e,x[1]),u(f(e),yz0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),hz0),u(f(e),dz0)}u(f(e),kz0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),wz0)}),N(SJ,function(t,n,e){var i=o(g5,t,n);return o(C0(pz0),i,e)});var gJ=[0,ZC,EJ,g5,SJ],QC=function t(n,e,i,x){return t.fun(n,e,i,x)},FJ=function t(n,e,i){return t.fun(n,e,i)},F5=function t(n,e,i,x){return t.fun(n,e,i,x)},TJ=function t(n,e,i){return t.fun(n,e,i)};N(QC,function(t,n,e,i){u(f(e),XV0),o(f(e),VV0,YV0);var x=i[1];function c(K){return u(n,K)}R(F5,function(K){return u(t,K)},c,e,x),u(f(e),zV0),u(f(e),KV0),o(f(e),JV0,WV0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(qe[31],y,p,e,s),u(f(e),$V0),u(f(e),ZV0),o(f(e),rz0,QV0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),ez0),u(f(e),nz0),o(f(e),uz0,tz0);var w=i[4];o(f(e),iz0,w),u(f(e),fz0),u(f(e),xz0),o(f(e),az0,oz0);var G=i[5];if(G){g(e,cz0);var A=G[1],S=function(K,V){return g(K,HV0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,sz0)}else g(e,vz0);return u(f(e),lz0),u(f(e),bz0)}),N(FJ,function(t,n,e){var i=o(QC,t,n);return o(C0(UV0),i,e)}),N(F5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),LV0),u(f(e),RV0),o(t,e,x[1]),u(f(e),jV0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),GV0),u(f(e),MV0)}u(f(e),BV0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),qV0)}),N(TJ,function(t,n,e){var i=o(F5,t,n);return o(C0(DV0),i,e)});var OJ=[0,QC,FJ,F5,TJ],rP=function t(n,e,i){return t.fun(n,e,i)},IJ=function t(n,e){return t.fun(n,e)},T5=function t(n,e,i){return t.fun(n,e,i)},AJ=function t(n,e){return t.fun(n,e)};N(rP,function(t,n,e){u(f(n),NV0),o(t,n,e[1]),u(f(n),CV0);var i=e[2];return ur(T5,function(x){return u(t,x)},n,i),u(f(n),PV0)}),N(IJ,function(t,n){var e=u(rP,t);return o(C0(AV0),e,n)}),N(T5,function(t,n,e){u(f(n),gV0),o(f(n),TV0,FV0);var i=e[1];function x(s){return u(t,s)}function c(s){return u(t,s)}return R(Rn[1],c,x,n,i),u(f(n),OV0),u(f(n),IV0)}),N(AJ,function(t,n){var e=u(T5,t);return o(C0(SV0),e,n)});var eP=[0,rP,IJ,T5,AJ],nP=function t(n,e,i,x){return t.fun(n,e,i,x)},NJ=function t(n,e,i){return t.fun(n,e,i)},O5=function t(n,e,i,x){return t.fun(n,e,i,x)},CJ=function t(n,e,i){return t.fun(n,e,i)};N(nP,function(t,n,e,i){u(f(e),kV0),o(n,e,i[1]),u(f(e),wV0);var x=i[2];function c(s){return u(n,s)}return R(O5,function(s){return u(t,s)},c,e,x),u(f(e),EV0)}),N(NJ,function(t,n,e){var i=o(nP,t,n);return o(C0(dV0),i,e)}),N(O5,function(t,n,e,i){u(f(e),oV0),o(f(e),cV0,aV0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(n,y)}R(Rn[1],s,c,e,x),u(f(e),sV0),u(f(e),vV0),o(f(e),bV0,lV0);var p=i[2];return u(f(e),pV0),o(n,e,p[1]),u(f(e),mV0),o(t,e,p[2]),u(f(e),_V0),u(f(e),yV0),u(f(e),hV0)}),N(CJ,function(t,n,e){var i=o(O5,t,n);return o(C0(xV0),i,e)});var I5=[0,nP,NJ,O5,CJ],tP=function t(n,e,i){return t.fun(n,e,i)},PJ=function t(n,e){return t.fun(n,e)};N(tP,function(t,n,e){u(f(n),jY0),o(f(n),MY0,GY0);var i=e[1];u(f(n),BY0);var x=0;le(function(d,w){d&&u(f(n),RY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(qN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),qY0),u(f(n),UY0),u(f(n),HY0),o(f(n),YY0,XY0);var c=e[2];o(f(n),VY0,c),u(f(n),zY0),u(f(n),KY0),o(f(n),JY0,WY0);var s=e[3];o(f(n),$Y0,s),u(f(n),ZY0),u(f(n),QY0),o(f(n),eV0,rV0);var p=e[4];if(p){g(n,nV0);var y=p[1],T=function(d,w){u(f(d),DY0);var G=0;return le(function(A,S){A&&u(f(d),PY0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),LY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,tV0)}else g(n,uV0);return u(f(n),iV0),u(f(n),fV0)}),N(PJ,function(t,n){var e=u(tP,t);return o(C0(CY0),e,n)});var DJ=[0,tP,PJ],uP=function t(n,e,i){return t.fun(n,e,i)},LJ=function t(n,e){return t.fun(n,e)};N(uP,function(t,n,e){u(f(n),oY0),o(f(n),cY0,aY0);var i=e[1];u(f(n),sY0);var x=0;le(function(d,w){d&&u(f(n),xY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(BN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),vY0),u(f(n),lY0),u(f(n),bY0),o(f(n),mY0,pY0);var c=e[2];o(f(n),_Y0,c),u(f(n),yY0),u(f(n),hY0),o(f(n),kY0,dY0);var s=e[3];o(f(n),wY0,s),u(f(n),EY0),u(f(n),SY0),o(f(n),FY0,gY0);var p=e[4];if(p){g(n,TY0);var y=p[1],T=function(d,w){u(f(d),iY0);var G=0;return le(function(A,S){A&&u(f(d),uY0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),fY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,OY0)}else g(n,IY0);return u(f(n),AY0),u(f(n),NY0)}),N(LJ,function(t,n){var e=u(uP,t);return o(C0(tY0),e,n)});var RJ=[0,uP,LJ],iP=function t(n,e,i){return t.fun(n,e,i)},jJ=function t(n,e){return t.fun(n,e)},A5=function t(n,e,i,x){return t.fun(n,e,i,x)},GJ=function t(n,e,i){return t.fun(n,e,i)};N(iP,function(t,n,e){u(f(n),LX0),o(f(n),jX0,RX0);var i=e[1];function x(d){return u(t,d)}R(A5,function(d){function w(G){return u(t,G)}return o(g1[1],w,d)},x,n,i),u(f(n),GX0),u(f(n),MX0),o(f(n),qX0,BX0);var c=e[2];o(f(n),UX0,c),u(f(n),HX0),u(f(n),XX0),o(f(n),VX0,YX0);var s=e[3];o(f(n),zX0,s),u(f(n),KX0),u(f(n),WX0),o(f(n),$X0,JX0);var p=e[4];if(p){g(n,ZX0);var y=p[1],T=function(d,w){u(f(d),PX0);var G=0;return le(function(A,S){A&&u(f(d),CX0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),DX0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,QX0)}else g(n,rY0);return u(f(n),eY0),u(f(n),nY0)}),N(jJ,function(t,n){var e=u(iP,t);return o(C0(NX0),e,n)}),N(A5,function(t,n,e,i){if(i[0]===0){u(f(e),EX0),u(f(e),SX0);var x=i[1],c=0;return le(function(y,T){y&&u(f(e),wX0);function E(d){return u(n,d)}return ur(eP[1],E,e,T),1},c,x),u(f(e),gX0),u(f(e),FX0)}u(f(e),TX0),u(f(e),OX0);var s=i[1],p=0;return le(function(y,T){y&&u(f(e),kX0);function E(w){return u(n,w)}function d(w){return u(t,w)}return R(I5[1],d,E,e,T),1},p,s),u(f(e),IX0),u(f(e),AX0)}),N(GJ,function(t,n,e){var i=o(A5,t,n);return o(C0(dX0),i,e)});var MJ=[0,iP,jJ,A5,GJ],fP=function t(n,e,i){return t.fun(n,e,i)},BJ=function t(n,e){return t.fun(n,e)};N(fP,function(t,n,e){u(f(n),eX0),o(f(n),tX0,nX0);var i=e[1];u(f(n),uX0);var x=0;le(function(E,d){E&&u(f(n),rX0);function w(G){return u(t,G)}return ur(eP[1],w,n,d),1},x,i),u(f(n),iX0),u(f(n),fX0),u(f(n),xX0),o(f(n),aX0,oX0);var c=e[2];o(f(n),cX0,c),u(f(n),sX0),u(f(n),vX0),o(f(n),bX0,lX0);var s=e[3];if(s){g(n,pX0);var p=s[1],y=function(E,d){u(f(E),ZH0);var w=0;return le(function(G,A){G&&u(f(E),$H0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),QH0)},T=function(E){return u(t,E)};R(Dr[1],T,y,n,p),g(n,mX0)}else g(n,_X0);return u(f(n),yX0),u(f(n),hX0)}),N(BJ,function(t,n){var e=u(fP,t);return o(C0(JH0),e,n)});var qJ=[0,fP,BJ],xP=function t(n,e,i,x){return t.fun(n,e,i,x)},UJ=function t(n,e,i){return t.fun(n,e,i)},N5=function t(n,e,i){return t.fun(n,e,i)},HJ=function t(n,e){return t.fun(n,e)},C5=function t(n,e,i){return t.fun(n,e,i)},XJ=function t(n,e){return t.fun(n,e)};N(xP,function(t,n,e,i){u(f(e),DH0),o(f(e),RH0,LH0);var x=i[1];function c(w){return u(n,w)}function s(w){return u(t,w)}R(Rn[1],s,c,e,x),u(f(e),jH0),u(f(e),GH0),o(f(e),BH0,MH0);var p=i[2];ur(N5,function(w){return u(t,w)},e,p),u(f(e),qH0),u(f(e),UH0),o(f(e),XH0,HH0);var y=i[3];if(y){g(e,YH0);var T=y[1],E=function(w,G){return g(w,PH0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,VH0)}else g(e,zH0);return u(f(e),KH0),u(f(e),WH0)}),N(UJ,function(t,n,e){var i=o(xP,t,n);return o(C0(CH0),i,e)}),N(N5,function(t,n,e){u(f(n),IH0),o(t,n,e[1]),u(f(n),AH0);var i=e[2];return ur(C5,function(x){return u(t,x)},n,i),u(f(n),NH0)}),N(HJ,function(t,n){var e=u(N5,t);return o(C0(OH0),e,n)}),N(C5,function(t,n,e){switch(e[0]){case 0:u(f(n),dH0);var i=e[1],x=function(d){return u(t,d)};return ur(DJ[1],x,n,i),u(f(n),kH0);case 1:u(f(n),wH0);var c=e[1],s=function(d){return u(t,d)};return ur(RJ[1],s,n,c),u(f(n),EH0);case 2:u(f(n),SH0);var p=e[1],y=function(d){return u(t,d)};return ur(MJ[1],y,n,p),u(f(n),gH0);default:u(f(n),FH0);var T=e[1],E=function(d){return u(t,d)};return ur(qJ[1],E,n,T),u(f(n),TH0)}}),N(XJ,function(t,n){var e=u(C5,t);return o(C0(hH0),e,n)});var YJ=[0,eP,I5,DJ,RJ,MJ,qJ,xP,UJ,N5,HJ,C5,XJ],oP=function t(n,e,i,x){return t.fun(n,e,i,x)},VJ=function t(n,e,i){return t.fun(n,e,i)};N(oP,function(t,n,e,i){u(f(e),qU0),o(f(e),HU0,UU0);var x=i[1];function c(k0){return u(n,k0)}function s(k0){return u(t,k0)}R(Rn[1],s,c,e,x),u(f(e),XU0),u(f(e),YU0),o(f(e),zU0,VU0);var p=i[2];if(p){g(e,KU0);var y=p[1],T=function(k0){return u(n,k0)},E=function(k0){return u(t,k0)};R($e[22][1],E,T,e,y),g(e,WU0)}else g(e,JU0);u(f(e),$U0),u(f(e),ZU0),o(f(e),rH0,QU0);var d=i[3];u(f(e),eH0);var w=0;le(function(k0,g0){k0&&u(f(e),jU0),u(f(e),GU0),o(t,e,g0[1]),u(f(e),MU0);var e0=g0[2];function x0(c0){return u(n,c0)}function l(c0){return u(t,c0)}return R($e[2][2],l,x0,e,e0),u(f(e),BU0),1},w,d),u(f(e),nH0),u(f(e),tH0),u(f(e),uH0),o(f(e),fH0,iH0);var G=i[4];u(f(e),xH0),o(t,e,G[1]),u(f(e),oH0);var A=G[2];function S(k0){return u(n,k0)}function M(k0){return u(t,k0)}R($e[5][6],M,S,e,A),u(f(e),aH0),u(f(e),cH0),u(f(e),sH0),o(f(e),lH0,vH0);var K=i[5];if(K){g(e,bH0);var V=K[1],f0=function(k0,g0){return g(k0,RU0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,pH0)}else g(e,mH0);return u(f(e),_H0),u(f(e),yH0)}),N(VJ,function(t,n,e){var i=o(oP,t,n);return o(C0(LU0),i,e)});var P5=[0,oP,VJ],aP=function t(n,e,i,x){return t.fun(n,e,i,x)},zJ=function t(n,e,i){return t.fun(n,e,i)};N(aP,function(t,n,e,i){u(f(e),Bq0),o(f(e),Uq0,qq0);var x=i[1];function c(_0){return u(n,_0)}function s(_0){return u(t,_0)}R(Rn[1],s,c,e,x),u(f(e),Hq0),u(f(e),Xq0),o(f(e),Vq0,Yq0);var p=i[2];if(p){g(e,zq0);var y=p[1],T=function(_0){return u(n,_0)},E=function(_0){return u(t,_0)};R($e[22][1],E,T,e,y),g(e,Kq0)}else g(e,Wq0);u(f(e),Jq0),u(f(e),$q0),o(f(e),Qq0,Zq0);var d=i[3];u(f(e),rU0),o(t,e,d[1]),u(f(e),eU0);var w=d[2];function G(_0){return u(n,_0)}function A(_0){return u(t,_0)}R($e[5][6],A,G,e,w),u(f(e),nU0),u(f(e),tU0),u(f(e),uU0),o(f(e),fU0,iU0);var S=i[4];if(S){var M=S[1];g(e,xU0),u(f(e),oU0),o(t,e,M[1]),u(f(e),aU0);var K=M[2],V=function(_0){return u(n,_0)},f0=function(_0){return u(t,_0)};R($e[2][2],f0,V,e,K),u(f(e),cU0),g(e,sU0)}else g(e,vU0);u(f(e),lU0),u(f(e),bU0),o(f(e),mU0,pU0);var m0=i[5];u(f(e),_U0);var k0=0;le(function(_0,E0){_0&&u(f(e),Rq0),u(f(e),jq0),o(t,e,E0[1]),u(f(e),Gq0);var U0=E0[2];function b(X){return u(n,X)}function R0(X){return u(t,X)}return R($e[2][2],R0,b,e,U0),u(f(e),Mq0),1},k0,m0),u(f(e),yU0),u(f(e),hU0),u(f(e),dU0),o(f(e),wU0,kU0);var g0=i[6];if(g0){g(e,EU0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R(F1[5][2],l,x0,e,e0),g(e,SU0)}else g(e,gU0);u(f(e),FU0),u(f(e),TU0),o(f(e),IU0,OU0);var c0=i[7];if(c0){g(e,AU0);var t0=c0[1],o0=function(_0,E0){return g(_0,Lq0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,NU0)}else g(e,CU0);return u(f(e),PU0),u(f(e),DU0)}),N(zJ,function(t,n,e){var i=o(aP,t,n);return o(C0(Dq0),i,e)});var cP=[0,aP,zJ],sP=function t(n,e,i,x){return t.fun(n,e,i,x)},KJ=function t(n,e,i){return t.fun(n,e,i)};N(sP,function(t,n,e,i){u(f(e),yq0),o(f(e),dq0,hq0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),kq0),u(f(e),wq0),o(f(e),Sq0,Eq0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),gq0),u(f(e),Fq0),o(f(e),Oq0,Tq0);var E=i[3];if(E){g(e,Iq0);var d=E[1],w=function(A,S){return g(A,_q0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Aq0)}else g(e,Nq0);return u(f(e),Cq0),u(f(e),Pq0)}),N(KJ,function(t,n,e){var i=o(sP,t,n);return o(C0(mq0),i,e)});var vP=[0,sP,KJ],lP=function t(n,e,i,x){return t.fun(n,e,i,x)},WJ=function t(n,e,i){return t.fun(n,e,i)};N(lP,function(t,n,e,i){u(f(e),zB0),o(f(e),WB0,KB0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),JB0),u(f(e),$B0),o(f(e),QB0,ZB0);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R($e[17],T,y,e,p),u(f(e),rq0),u(f(e),eq0),o(f(e),tq0,nq0);var E=i[3];if(E){g(e,uq0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R($e[24][1],G,w,e,d),g(e,iq0)}else g(e,fq0);u(f(e),xq0),u(f(e),oq0),o(f(e),cq0,aq0);var A=i[4];if(A){g(e,sq0);var S=A[1],M=function(V,f0){return g(V,VB0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,vq0)}else g(e,lq0);return u(f(e),bq0),u(f(e),pq0)}),N(WJ,function(t,n,e){var i=o(lP,t,n);return o(C0(YB0),i,e)});var bP=[0,lP,WJ],D5=function t(n,e,i,x){return t.fun(n,e,i,x)},JJ=function t(n,e,i){return t.fun(n,e,i)},L5=function t(n,e){return t.fun(n,e)},$J=function t(n){return t.fun(n)},pP=function t(n,e,i,x){return t.fun(n,e,i,x)},ZJ=function t(n,e,i){return t.fun(n,e,i)};N(D5,function(t,n,e,i){if(i[0]===0){u(f(e),GB0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Rn[1],s,c,e,x),u(f(e),MB0)}var p=i[1];u(f(e),BB0),u(f(e),qB0),o(n,e,p[1]),u(f(e),UB0);var y=p[2];function T(E){return u(t,E)}return ur(g1[1],T,e,y),u(f(e),HB0),u(f(e),XB0)}),N(JJ,function(t,n,e){var i=o(D5,t,n);return o(C0(jB0),i,e)}),N(L5,function(t,n){return n?g(t,LB0):g(t,RB0)}),N($J,function(t){return o(C0(DB0),L5,t)}),N(pP,function(t,n,e,i){u(f(e),sB0),o(f(e),lB0,vB0);var x=i[1];function c(A){return u(n,A)}R(D5,function(A){return u(t,A)},c,e,x),u(f(e),bB0),u(f(e),pB0),o(f(e),_B0,mB0);var s=i[2];u(f(e),yB0),o(t,e,s[1]),u(f(e),hB0);var p=s[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Kv[1],T,y,e,p),u(f(e),dB0),u(f(e),kB0),u(f(e),wB0),o(f(e),SB0,EB0),o(L5,e,i[3]),u(f(e),gB0),u(f(e),FB0),o(f(e),OB0,TB0);var E=i[4];if(E){g(e,IB0);var d=E[1],w=function(A,S){return g(A,cB0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,AB0)}else g(e,NB0);return u(f(e),CB0),u(f(e),PB0)}),N(ZJ,function(t,n,e){var i=o(pP,t,n);return o(C0(aB0),i,e)});var QJ=[0,D5,JJ,L5,$J,pP,ZJ],mP=function t(n,e,i,x){return t.fun(n,e,i,x)},r$=function t(n,e,i){return t.fun(n,e,i)};N(mP,function(t,n,e,i){u(f(e),$M0),o(f(e),QM0,ZM0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),rB0),u(f(e),eB0),o(f(e),tB0,nB0);var p=i[2];if(p){g(e,uB0);var y=p[1],T=function(d,w){return g(d,JM0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,iB0)}else g(e,fB0);return u(f(e),xB0),u(f(e),oB0)}),N(r$,function(t,n,e){var i=o(mP,t,n);return o(C0(WM0),i,e)});var e$=[0,mP,r$],_P=function t(n,e,i){return t.fun(n,e,i)},n$=function t(n,e){return t.fun(n,e)},R5=function t(n,e,i){return t.fun(n,e,i)},t$=function t(n,e){return t.fun(n,e)};N(_P,function(t,n,e){u(f(n),VM0),o(t,n,e[1]),u(f(n),zM0);var i=e[2];return ur(R5,function(x){return u(t,x)},n,i),u(f(n),KM0)}),N(n$,function(t,n){var e=u(_P,t);return o(C0(YM0),e,n)}),N(R5,function(t,n,e){u(f(n),PM0),o(f(n),LM0,DM0);var i=e[1];function x(E){return u(t,E)}function c(E){return u(t,E)}R(Rn[1],c,x,n,i),u(f(n),RM0),u(f(n),jM0),o(f(n),MM0,GM0);var s=e[2];if(s){g(n,BM0);var p=s[1],y=function(E){return u(t,E)},T=function(E){return u(t,E)};R(Rn[1],T,y,n,p),g(n,qM0)}else g(n,UM0);return u(f(n),HM0),u(f(n),XM0)}),N(t$,function(t,n){var e=u(R5,t);return o(C0(CM0),e,n)});var u$=[0,_P,n$,R5,t$],yP=function t(n,e,i){return t.fun(n,e,i)},i$=function t(n,e){return t.fun(n,e)};N(yP,function(t,n,e){var i=e[2];if(u(f(n),FM0),o(t,n,e[1]),u(f(n),TM0),i){g(n,OM0);var x=i[1],c=function(p){return u(t,p)},s=function(p){return u(t,p)};R(Rn[1],s,c,n,x),g(n,IM0)}else g(n,AM0);return u(f(n),NM0)}),N(i$,function(t,n){var e=u(yP,t);return o(C0(gM0),e,n)});var f$=[0,yP,i$],hP=function t(n,e,i,x){return t.fun(n,e,i,x)},x$=function t(n,e,i){return t.fun(n,e,i)},j5=function t(n,e,i){return t.fun(n,e,i)},o$=function t(n,e){return t.fun(n,e)};N(hP,function(t,n,e,i){u(f(e),HG0),o(f(e),YG0,XG0);var x=i[1];if(x){g(e,VG0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(Yu[35],p,s,e,c),g(e,zG0)}else g(e,KG0);u(f(e),WG0),u(f(e),JG0),o(f(e),ZG0,$G0);var y=i[2];if(y){g(e,QG0);var T=y[1];ur(j5,function(V){return u(t,V)},e,T),g(e,rM0)}else g(e,eM0);u(f(e),nM0),u(f(e),tM0),o(f(e),iM0,uM0);var E=i[3];if(E){var d=E[1];g(e,fM0),u(f(e),xM0),o(t,e,d[1]),u(f(e),oM0);var w=d[2],G=function(V){return u(t,V)};ur(g1[1],G,e,w),u(f(e),aM0),g(e,cM0)}else g(e,sM0);u(f(e),vM0),u(f(e),lM0),o(f(e),pM0,bM0),o(Yu[33],e,i[4]),u(f(e),mM0),u(f(e),_M0),o(f(e),hM0,yM0);var A=i[5];if(A){g(e,dM0);var S=A[1],M=function(V,f0){return g(V,UG0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,kM0)}else g(e,wM0);return u(f(e),EM0),u(f(e),SM0)}),N(x$,function(t,n,e){var i=o(hP,t,n);return o(C0(qG0),i,e)}),N(j5,function(t,n,e){if(e[0]===0){u(f(n),LG0),u(f(n),RG0);var i=e[1],x=0;return le(function(p,y){p&&u(f(n),DG0);function T(E){return u(t,E)}return ur(u$[1],T,n,y),1},x,i),u(f(n),jG0),u(f(n),GG0)}u(f(n),MG0);var c=e[1];function s(p){return u(t,p)}return ur(f$[1],s,n,c),u(f(n),BG0)}),N(o$,function(t,n){var e=u(j5,t);return o(C0(PG0),e,n)});var dP=[0,u$,f$,hP,x$,j5,o$],kP=function t(n,e,i,x){return t.fun(n,e,i,x)},a$=function t(n,e,i){return t.fun(n,e,i)},G5=function t(n,e,i,x){return t.fun(n,e,i,x)},c$=function t(n,e,i){return t.fun(n,e,i)};N(kP,function(t,n,e,i){u(f(e),_G0),o(f(e),hG0,yG0),o(t,e,i[1]),u(f(e),dG0),u(f(e),kG0),o(f(e),EG0,wG0);var x=i[2];function c(E){return u(n,E)}R(G5,function(E){return u(t,E)},c,e,x),u(f(e),SG0),u(f(e),gG0),o(f(e),TG0,FG0);var s=i[3];if(s){g(e,OG0);var p=s[1],y=function(E,d){return g(E,mG0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,IG0)}else g(e,AG0);return u(f(e),NG0),u(f(e),CG0)}),N(a$,function(t,n,e){var i=o(kP,t,n);return o(C0(pG0),i,e)}),N(G5,function(t,n,e,i){if(i[0]===0){u(f(e),sG0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Yu[35],s,c,e,x),u(f(e),vG0)}u(f(e),lG0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(qe[31],T,y,e,p),u(f(e),bG0)}),N(c$,function(t,n,e){var i=o(G5,t,n);return o(C0(cG0),i,e)});var s$=[0,kP,a$,G5,c$],M5=function t(n,e,i,x){return t.fun(n,e,i,x)},v$=function t(n,e,i){return t.fun(n,e,i)},wP=function t(n,e,i,x){return t.fun(n,e,i,x)},l$=function t(n,e,i){return t.fun(n,e,i)};N(M5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),Cj0),u(f(e),Pj0),o(t,e,x[1]),u(f(e),Dj0);var c=x[2],s=function(E0){return u(n,E0)},p=function(E0){return u(t,E0)};return R(vP[1],p,s,e,c),u(f(e),Lj0),u(f(e),Rj0);case 1:var y=i[1];u(f(e),jj0),u(f(e),Gj0),o(t,e,y[1]),u(f(e),Mj0);var T=y[2],E=function(E0){return u(n,E0)},d=function(E0){return u(t,E0)};return R(bP[1],d,E,e,T),u(f(e),Bj0),u(f(e),qj0);case 2:var w=i[1];u(f(e),Uj0),u(f(e),Hj0),o(t,e,w[1]),u(f(e),Xj0);var G=w[2],A=function(E0){return u(n,E0)},S=function(E0){return u(t,E0)};return R(cP[1],S,A,e,G),u(f(e),Yj0),u(f(e),Vj0);case 3:u(f(e),zj0);var M=i[1],K=function(E0){return u(n,E0)},V=function(E0){return u(t,E0)};return R($e[13],V,K,e,M),u(f(e),Kj0);case 4:var f0=i[1];u(f(e),Wj0),u(f(e),Jj0),o(t,e,f0[1]),u(f(e),$j0);var m0=f0[2],k0=function(E0){return u(n,E0)},g0=function(E0){return u(t,E0)};return R(y5[1],g0,k0,e,m0),u(f(e),Zj0),u(f(e),Qj0);case 5:var e0=i[1];u(f(e),rG0),u(f(e),eG0),o(t,e,e0[1]),u(f(e),nG0);var x0=e0[2],l=function(E0){return u(n,E0)},c0=function(E0){return u(t,E0)};return R(h5[1],c0,l,e,x0),u(f(e),tG0),u(f(e),uG0);default:var t0=i[1];u(f(e),iG0),u(f(e),fG0),o(t,e,t0[1]),u(f(e),xG0);var o0=t0[2],w0=function(E0){return u(n,E0)},_0=function(E0){return u(t,E0)};return R(P5[1],_0,w0,e,o0),u(f(e),oG0),u(f(e),aG0)}}),N(v$,function(t,n,e){var i=o(M5,t,n);return o(C0(Nj0),i,e)}),N(wP,function(t,n,e,i){u(f(e),VR0),o(f(e),KR0,zR0);var x=i[1];x?(g(e,WR0),o(t,e,x[1]),g(e,JR0)):g(e,$R0),u(f(e),ZR0),u(f(e),QR0),o(f(e),ej0,rj0);var c=i[2];if(c){g(e,nj0);var s=c[1],p=function(f0){return u(n,f0)};R(M5,function(f0){return u(t,f0)},p,e,s),g(e,tj0)}else g(e,uj0);u(f(e),ij0),u(f(e),fj0),o(f(e),oj0,xj0);var y=i[3];if(y){g(e,aj0);var T=y[1],E=function(f0){return u(t,f0)};ur(dP[5],E,e,T),g(e,cj0)}else g(e,sj0);u(f(e),vj0),u(f(e),lj0),o(f(e),pj0,bj0);var d=i[4];if(d){var w=d[1];g(e,mj0),u(f(e),_j0),o(t,e,w[1]),u(f(e),yj0);var G=w[2],A=function(f0){return u(t,f0)};ur(g1[1],A,e,G),u(f(e),hj0),g(e,dj0)}else g(e,kj0);u(f(e),wj0),u(f(e),Ej0),o(f(e),gj0,Sj0);var S=i[5];if(S){g(e,Fj0);var M=S[1],K=function(f0,m0){return g(f0,YR0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,Tj0)}else g(e,Oj0);return u(f(e),Ij0),u(f(e),Aj0)}),N(l$,function(t,n,e){var i=o(wP,t,n);return o(C0(XR0),i,e)});var b$=[0,M5,v$,wP,l$],Al=function t(n,e){return t.fun(n,e)},p$=function t(n){return t.fun(n)},B5=function t(n,e,i,x){return t.fun(n,e,i,x)},m$=function t(n,e,i){return t.fun(n,e,i)},q5=function t(n,e,i,x){return t.fun(n,e,i,x)},_$=function t(n,e,i){return t.fun(n,e,i)},EP=function t(n,e,i,x){return t.fun(n,e,i,x)},y$=function t(n,e,i){return t.fun(n,e,i)};N(Al,function(t,n){switch(n){case 0:return g(t,qR0);case 1:return g(t,UR0);default:return g(t,HR0)}}),N(p$,function(t){return o(C0(BR0),Al,t)}),N(B5,function(t,n,e,i){if(i[0]===0){u(f(e),NR0),u(f(e),CR0);var x=i[1],c=0;return le(function(E,d){E&&u(f(e),AR0);function w(G){return u(n,G)}return R(q5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),PR0),u(f(e),DR0)}var s=i[1];u(f(e),LR0),u(f(e),RR0),o(t,e,s[1]),u(f(e),jR0);var p=s[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Rn[1],T,y,e,p),u(f(e),GR0),u(f(e),MR0)}),N(m$,function(t,n,e){var i=o(B5,t,n);return o(C0(IR0),i,e)}),N(q5,function(t,n,e,i){u(f(e),cR0),o(f(e),vR0,sR0);var x=i[1];x?(g(e,lR0),o(Al,e,x[1]),g(e,bR0)):g(e,pR0),u(f(e),mR0),u(f(e),_R0),o(f(e),hR0,yR0);var c=i[2];if(c){g(e,dR0);var s=c[1],p=function(w){return u(n,w)},y=function(w){return u(t,w)};R(Rn[1],y,p,e,s),g(e,kR0)}else g(e,wR0);u(f(e),ER0),u(f(e),SR0),o(f(e),FR0,gR0);var T=i[3];function E(w){return u(n,w)}function d(w){return u(t,w)}return R(Rn[1],d,E,e,T),u(f(e),TR0),u(f(e),OR0)}),N(_$,function(t,n,e){var i=o(q5,t,n);return o(C0(aR0),i,e)}),N(EP,function(t,n,e,i){u(f(e),AL0),o(f(e),CL0,NL0),o(Al,e,i[1]),u(f(e),PL0),u(f(e),DL0),o(f(e),RL0,LL0);var x=i[2];u(f(e),jL0),o(t,e,x[1]),u(f(e),GL0);var c=x[2];function s(V){return u(t,V)}ur(g1[1],s,e,c),u(f(e),ML0),u(f(e),BL0),u(f(e),qL0),o(f(e),HL0,UL0);var p=i[3];if(p){g(e,XL0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(Rn[1],E,T,e,y),g(e,YL0)}else g(e,VL0);u(f(e),zL0),u(f(e),KL0),o(f(e),JL0,WL0);var d=i[4];if(d){g(e,$L0);var w=d[1],G=function(V){return u(n,V)};R(B5,function(V){return u(t,V)},G,e,w),g(e,ZL0)}else g(e,QL0);u(f(e),rR0),u(f(e),eR0),o(f(e),tR0,nR0);var A=i[5];if(A){g(e,uR0);var S=A[1],M=function(V,f0){return g(V,IL0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,iR0)}else g(e,fR0);return u(f(e),xR0),u(f(e),oR0)}),N(y$,function(t,n,e){var i=o(EP,t,n);return o(C0(OL0),i,e)});var h$=[0,Al,p$,B5,m$,q5,_$,EP,y$],SP=function t(n,e,i,x){return t.fun(n,e,i,x)},d$=function t(n,e,i){return t.fun(n,e,i)};N(SP,function(t,n,e,i){u(f(e),oL0),o(f(e),cL0,aL0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),sL0),u(f(e),vL0),o(f(e),bL0,lL0);var p=i[2];if(p){g(e,pL0);var y=p[1];o(f(e),mL0,y),g(e,_L0)}else g(e,yL0);u(f(e),hL0),u(f(e),dL0),o(f(e),wL0,kL0);var T=i[3];if(T){g(e,EL0);var E=T[1],d=function(G,A){return g(G,xL0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,SL0)}else g(e,gL0);return u(f(e),FL0),u(f(e),TL0)}),N(d$,function(t,n,e){var i=o(SP,t,n);return o(C0(fL0),i,e)});var k$=[0,SP,d$],gP=function t(n,e,i){return t.fun(n,e,i)},w$=function t(n,e){return t.fun(n,e)};N(gP,function(t,n,e){u(f(n),ZD0),o(f(n),rL0,QD0);var i=e[1];if(i){g(n,eL0);var x=i[1],c=function(p,y){return g(p,$D0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,nL0)}else g(n,tL0);return u(f(n),uL0),u(f(n),iL0)}),N(w$,function(t,n){var e=u(gP,t);return o(C0(JD0),e,n)});var E$=[0,gP,w$],FP=function t(n,e){return t.fun(n,e)},S$=function t(n){return t.fun(n)},TP=function t(n,e,i,x){return t.fun(n,e,i,x)},g$=function t(n,e,i){return t.fun(n,e,i)},U5=function t(n,e,i,x){return t.fun(n,e,i,x)},F$=function t(n,e,i){return t.fun(n,e,i)};N(FP,function(t,n){return n?g(t,KD0):g(t,WD0)}),N(S$,function(t){return o(C0(zD0),FP,t)}),N(TP,function(t,n,e,i){u(f(e),XD0),o(t,e,i[1]),u(f(e),YD0);var x=i[2];function c(s){return u(n,s)}return R(U5,function(s){return u(t,s)},c,e,x),u(f(e),VD0)}),N(g$,function(t,n,e){var i=o(TP,t,n);return o(C0(HD0),i,e)}),N(U5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),EP0);var x=i[1],c=function(h0){return u(n,h0)},s=function(h0){return u(t,h0)};return R(Kv[1],s,c,e,x),u(f(e),SP0);case 1:u(f(e),gP0);var p=i[1],y=function(h0){return u(t,h0)};return ur(UW[1],y,e,p),u(f(e),FP0);case 2:u(f(e),TP0);var T=i[1],E=function(h0){return u(n,h0)},d=function(h0){return u(t,h0)};return R(F1[8],d,E,e,T),u(f(e),OP0);case 3:u(f(e),IP0);var w=i[1],G=function(h0){return u(t,h0)};return ur(XW[1],G,e,w),u(f(e),AP0);case 4:u(f(e),NP0);var A=i[1],S=function(h0){return u(t,h0)};return ur(VW[1],S,e,A),u(f(e),CP0);case 5:u(f(e),PP0);var M=i[1],K=function(h0){return u(n,h0)},V=function(h0){return u(t,h0)};return R(cP[1],V,K,e,M),u(f(e),DP0);case 6:u(f(e),LP0);var f0=i[1],m0=function(h0){return u(n,h0)},k0=function(h0){return u(t,h0)};return R(b$[3],k0,m0,e,f0),u(f(e),RP0);case 7:u(f(e),jP0);var g0=i[1],e0=function(h0){return u(n,h0)},x0=function(h0){return u(t,h0)};return R(bP[1],x0,e0,e,g0),u(f(e),GP0);case 8:u(f(e),MP0);var l=i[1],c0=function(h0){return u(n,h0)},t0=function(h0){return u(t,h0)};return R(P5[1],t0,c0,e,l),u(f(e),BP0);case 9:u(f(e),qP0);var o0=i[1],w0=function(h0){return u(n,h0)},_0=function(h0){return u(t,h0)};return R(QJ[5],_0,w0,e,o0),u(f(e),UP0);case 10:u(f(e),HP0);var E0=i[1],U0=function(h0){return u(n,h0)},b=function(h0){return u(t,h0)};return R(e$[1],b,U0,e,E0),u(f(e),XP0);case 11:u(f(e),YP0);var R0=i[1],X=function(h0){return u(n,h0)},s0=function(h0){return u(t,h0)};return R(y5[1],s0,X,e,R0),u(f(e),VP0);case 12:u(f(e),zP0);var hr=i[1],Ar=function(h0){return u(n,h0)},or=function(h0){return u(t,h0)};return R(h5[1],or,Ar,e,hr),u(f(e),KP0);case 13:u(f(e),WP0);var W0=i[1],Lr=function(h0){return u(n,h0)},Tr=function(h0){return u(t,h0)};return R(vP[1],Tr,Lr,e,W0),u(f(e),JP0);case 14:u(f(e),$P0);var Hr=i[1],Or=function(h0){return u(n,h0)},fr=function(h0){return u(t,h0)};return R(hJ[1],fr,Or,e,Hr),u(f(e),ZP0);case 15:u(f(e),QP0);var Rr=i[1],Wr=function(h0){return u(t,h0)};return ur(E$[1],Wr,e,Rr),u(f(e),rD0);case 16:u(f(e),eD0);var Jr=i[1],ar=function(h0){return u(n,h0)},_r=function(h0){return u(t,h0)};return R(YJ[7],_r,ar,e,Jr),u(f(e),nD0);case 17:u(f(e),tD0);var Ir=i[1],fe=function(h0){return u(n,h0)},v0=function(h0){return u(t,h0)};return R(s$[1],v0,fe,e,Ir),u(f(e),uD0);case 18:u(f(e),iD0);var P=i[1],L=function(h0){return u(n,h0)},Q=function(h0){return u(t,h0)};return R(dP[3],Q,L,e,P),u(f(e),fD0);case 19:u(f(e),xD0);var i0=i[1],l0=function(h0){return u(n,h0)},S0=function(h0){return u(t,h0)};return R(k$[1],S0,l0,e,i0),u(f(e),oD0);case 20:u(f(e),aD0);var T0=i[1],rr=function(h0){return u(n,h0)},L0=function(h0){return u(t,h0)};return R(wJ[1],L0,rr,e,T0),u(f(e),cD0);case 21:u(f(e),sD0);var B=i[1],Z=function(h0){return u(n,h0)},p0=function(h0){return u(t,h0)};return R(gJ[1],p0,Z,e,B),u(f(e),vD0);case 22:u(f(e),lD0);var b0=i[1],O0=function(h0){return u(n,h0)},M0=function(h0){return u(t,h0)};return R(OJ[1],M0,O0,e,b0),u(f(e),bD0);case 23:u(f(e),pD0);var er=i[1],yr=function(h0){return u(n,h0)},vr=function(h0){return u(t,h0)};return R(As[5],vr,yr,e,er),u(f(e),mD0);case 24:u(f(e),_D0);var $0=i[1],Er=function(h0){return u(n,h0)},Mr=function(h0){return u(t,h0)};return R(GW[2],Mr,Er,e,$0),u(f(e),yD0);case 25:u(f(e),hD0);var Br=i[1],qr=function(h0){return u(n,h0)},jr=function(h0){return u(t,h0)};return R(h$[7],jr,qr,e,Br),u(f(e),dD0);case 26:u(f(e),kD0);var $r=i[1],ne=function(h0){return u(n,h0)},Qr=function(h0){return u(t,h0)};return R(P5[1],Qr,ne,e,$r),u(f(e),wD0);case 27:u(f(e),ED0);var be=i[1],ae=function(h0){return u(n,h0)},pe=function(h0){return u(t,h0)};return R(BW[1],pe,ae,e,be),u(f(e),SD0);case 28:u(f(e),gD0);var oe=i[1],ce=function(h0){return u(n,h0)},ge=function(h0){return u(t,h0)};return R(tJ[1],ge,ce,e,oe),u(f(e),FD0);case 29:u(f(e),TD0);var q0=i[1],Fr=function(h0){return u(n,h0)},_=function(h0){return u(t,h0)};return R(eJ[2],_,Fr,e,q0),u(f(e),OD0);case 30:u(f(e),ID0);var k=i[1],I=function(h0){return u(n,h0)},U=function(h0){return u(t,h0)};return R(iJ[1],U,I,e,k),u(f(e),AD0);case 31:u(f(e),ND0);var Y=i[1],y0=function(h0){return u(n,h0)},P0=function(h0){return u(t,h0)};return R(cJ[2],P0,y0,e,Y),u(f(e),CD0);case 32:u(f(e),PD0);var I0=i[1],D=function(h0){return u(n,h0)},u0=function(h0){return u(t,h0)};return R(y5[1],u0,D,e,I0),u(f(e),DD0);case 33:u(f(e),LD0);var X0=i[1],J0=function(h0){return u(n,h0)},ir=function(h0){return u(t,h0)};return R(h5[1],ir,J0,e,X0),u(f(e),RD0);case 34:u(f(e),jD0);var Q0=i[1],F0=function(h0){return u(n,h0)},Sr=function(h0){return u(t,h0)};return R(Il[2],Sr,F0,e,Q0),u(f(e),GD0);case 35:u(f(e),MD0);var mr=i[1],Cr=function(h0){return u(n,h0)},sr=function(h0){return u(t,h0)};return R(_J[1],sr,Cr,e,mr),u(f(e),BD0);default:u(f(e),qD0);var Pr=i[1],K0=function(h0){return u(n,h0)},Ur=function(h0){return u(t,h0)};return R(KW[1],Ur,K0,e,Pr),u(f(e),UD0)}}),N(F$,function(t,n,e){var i=o(U5,t,n);return o(C0(wP0),i,e)}),mu(W3r,Yu,[0,Kv,GW,BW,UW,XW,VW,KW,y5,h5,eJ,tJ,iJ,cJ,Il,_J,hJ,wJ,gJ,OJ,YJ,P5,cP,vP,bP,QJ,e$,dP,s$,b$,h$,k$,E$,FP,S$,TP,g$,U5,F$]);var OP=function t(n,e,i,x){return t.fun(n,e,i,x)},T$=function t(n,e,i){return t.fun(n,e,i)},H5=function t(n,e,i){return t.fun(n,e,i)},O$=function t(n,e){return t.fun(n,e)};N(OP,function(t,n,e,i){u(f(e),hP0),o(n,e,i[1]),u(f(e),dP0);var x=i[2];return ur(H5,function(c){return u(t,c)},e,x),u(f(e),kP0)}),N(T$,function(t,n,e){var i=o(OP,t,n);return o(C0(yP0),i,e)}),N(H5,function(t,n,e){u(f(n),cP0),o(f(n),vP0,sP0);var i=e[1];if(i){g(n,lP0);var x=i[1],c=function(p,y){return g(p,aP0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,bP0)}else g(n,pP0);return u(f(n),mP0),u(f(n),_P0)}),N(O$,function(t,n){var e=u(H5,t);return o(C0(oP0),e,n)});var I$=[0,OP,T$,H5,O$],IP=function t(n,e,i,x){return t.fun(n,e,i,x)},A$=function t(n,e,i){return t.fun(n,e,i)};N(IP,function(t,n,e,i){if(i[0]===0){u(f(e),uP0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R($e[13],s,c,e,x),u(f(e),iP0)}u(f(e),fP0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(I$[1],T,y,e,p),u(f(e),xP0)}),N(A$,function(t,n,e){var i=o(IP,t,n);return o(C0(tP0),i,e)});var N$=[0,I$,IP,A$],AP=function t(n,e,i,x){return t.fun(n,e,i,x)},C$=function t(n,e,i){return t.fun(n,e,i)},X5=function t(n,e,i,x){return t.fun(n,e,i,x)},P$=function t(n,e,i){return t.fun(n,e,i)};N(AP,function(t,n,e,i){u(f(e),rP0),o(t,e,i[1]),u(f(e),eP0);var x=i[2];function c(s){return u(n,s)}return R(X5,function(s){return u(t,s)},c,e,x),u(f(e),nP0)}),N(C$,function(t,n,e){var i=o(AP,t,n);return o(C0(QC0),i,e)}),N(X5,function(t,n,e,i){u(f(e),MC0),o(f(e),qC0,BC0);var x=i[1];u(f(e),UC0);var c=0;le(function(E,d){E&&u(f(e),GC0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(N$[2],G,w,e,d),1},c,x),u(f(e),HC0),u(f(e),XC0),u(f(e),YC0),o(f(e),zC0,VC0);var s=i[2];if(s){g(e,KC0);var p=s[1],y=function(E,d){u(f(E),RC0);var w=0;return le(function(G,A){G&&u(f(E),LC0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),jC0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,WC0)}else g(e,JC0);return u(f(e),$C0),u(f(e),ZC0)}),N(P$,function(t,n,e){var i=o(X5,t,n);return o(C0(DC0),i,e)});var NP=function t(n,e,i,x){return t.fun(n,e,i,x)},D$=function t(n,e,i){return t.fun(n,e,i)},Y5=function t(n,e,i,x){return t.fun(n,e,i,x)},L$=function t(n,e,i){return t.fun(n,e,i)},See=[0,AP,C$,X5,P$];N(NP,function(t,n,e,i){u(f(e),NC0),o(t,e,i[1]),u(f(e),CC0);var x=i[2];function c(s){return u(n,s)}return R(Y5,function(s){return u(t,s)},c,e,x),u(f(e),PC0)}),N(D$,function(t,n,e){var i=o(NP,t,n);return o(C0(AC0),i,e)}),N(Y5,function(t,n,e,i){u(f(e),yC0),o(f(e),dC0,hC0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),kC0),u(f(e),wC0),o(f(e),SC0,EC0);var p=i[2];if(p){g(e,gC0);var y=p[1],T=function(d,w){return g(d,_C0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,FC0)}else g(e,TC0);return u(f(e),OC0),u(f(e),IC0)}),N(L$,function(t,n,e){var i=o(Y5,t,n);return o(C0(mC0),i,e)});var CP=[0,NP,D$,Y5,L$],V5=function t(n,e,i,x){return t.fun(n,e,i,x)},R$=function t(n,e,i){return t.fun(n,e,i)};N(V5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),cC0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(qe[31],s,c,e,x),u(f(e),sC0);case 1:u(f(e),vC0);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(CP[1],T,y,e,p),u(f(e),lC0);default:return u(f(e),bC0),o(t,e,i[1]),u(f(e),pC0)}}),N(R$,function(t,n,e){var i=o(V5,t,n);return o(C0(aC0),i,e)});var PP=function t(n,e,i,x){return t.fun(n,e,i,x)},j$=function t(n,e,i){return t.fun(n,e,i)};N(PP,function(t,n,e,i){u(f(e),WN0),o(f(e),$N0,JN0);var x=i[1];u(f(e),ZN0);var c=0;le(function(E,d){E&&u(f(e),KN0);function w(G){return u(n,G)}return R(V5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),QN0),u(f(e),rC0),u(f(e),eC0),o(f(e),tC0,nC0);var s=i[2];if(s){g(e,uC0);var p=s[1],y=function(E,d){u(f(E),VN0);var w=0;return le(function(G,A){G&&u(f(E),YN0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),zN0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,iC0)}else g(e,fC0);return u(f(e),xC0),u(f(e),oC0)}),N(j$,function(t,n,e){var i=o(PP,t,n);return o(C0(XN0),i,e)});var G$=[0,V5,R$,PP,j$],z5=function t(n,e){return t.fun(n,e)},M$=function t(n){return t.fun(n)},DP=function t(n,e,i){return t.fun(n,e,i)},B$=function t(n,e){return t.fun(n,e)},K5=function t(n,e){return t.fun(n,e)},q$=function t(n){return t.fun(n)};N(z5,function(t,n){u(f(t),PN0),o(f(t),LN0,DN0);var e=n[1];o(f(t),RN0,e),u(f(t),jN0),u(f(t),GN0),o(f(t),BN0,MN0);var i=n[2];return o(f(t),qN0,i),u(f(t),UN0),u(f(t),HN0)}),N(M$,function(t){return o(C0(CN0),z5,t)}),N(DP,function(t,n,e){return u(f(n),IN0),o(t,n,e[1]),u(f(n),AN0),o(K5,n,e[2]),u(f(n),NN0)}),N(B$,function(t,n){var e=u(DP,t);return o(C0(ON0),e,n)}),N(K5,function(t,n){u(f(t),yN0),o(f(t),dN0,hN0),o(z5,t,n[1]),u(f(t),kN0),u(f(t),wN0),o(f(t),SN0,EN0);var e=n[2];return o(f(t),gN0,e),u(f(t),FN0),u(f(t),TN0)}),N(q$,function(t){return o(C0(_N0),K5,t)});var U$=[0,z5,M$,DP,B$,K5,q$],LP=function t(n,e,i,x){return t.fun(n,e,i,x)},H$=function t(n,e,i){return t.fun(n,e,i)};N(LP,function(t,n,e,i){u(f(e),$A0),o(f(e),QA0,ZA0);var x=i[1];u(f(e),rN0);var c=0;le(function(w,G){w&&u(f(e),JA0);function A(S){return u(t,S)}return ur(U$[3],A,e,G),1},c,x),u(f(e),eN0),u(f(e),nN0),u(f(e),tN0),o(f(e),iN0,uN0);var s=i[2];u(f(e),fN0);var p=0;le(function(w,G){w&&u(f(e),WA0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(qe[31],S,A,e,G),1},p,s),u(f(e),xN0),u(f(e),oN0),u(f(e),aN0),o(f(e),sN0,cN0);var y=i[3];if(y){g(e,vN0);var T=y[1],E=function(w,G){return g(w,KA0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,lN0)}else g(e,bN0);return u(f(e),pN0),u(f(e),mN0)}),N(H$,function(t,n,e){var i=o(LP,t,n);return o(C0(zA0),i,e)});var RP=[0,U$,LP,H$],jP=function t(n,e,i,x){return t.fun(n,e,i,x)},X$=function t(n,e,i){return t.fun(n,e,i)};N(jP,function(t,n,e,i){u(f(e),OA0),o(f(e),AA0,IA0);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(qe[31],s,c,e,x),u(f(e),NA0),u(f(e),CA0),o(f(e),DA0,PA0);var p=i[2];u(f(e),LA0),o(t,e,p[1]),u(f(e),RA0);var y=p[2];function T(S){return u(n,S)}function E(S){return u(t,S)}R(RP[2],E,T,e,y),u(f(e),jA0),u(f(e),GA0),u(f(e),MA0),o(f(e),qA0,BA0);var d=i[3];if(d){g(e,UA0);var w=d[1],G=function(S,M){return g(S,TA0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,HA0)}else g(e,XA0);return u(f(e),YA0),u(f(e),VA0)}),N(X$,function(t,n,e){var i=o(jP,t,n);return o(C0(FA0),i,e)});var Y$=[0,jP,X$],T1=function t(n,e,i,x){return t.fun(n,e,i,x)},V$=function t(n,e,i){return t.fun(n,e,i)},GP=function t(n,e,i,x){return t.fun(n,e,i,x)},z$=function t(n,e,i){return t.fun(n,e,i)},W5=function t(n,e,i,x){return t.fun(n,e,i,x)},K$=function t(n,e,i){return t.fun(n,e,i)};N(T1,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),pA0),u(f(e),mA0),o(n,e,x[1]),u(f(e),_A0);var c=x[2],s=function(S){return u(t,S)};return ur(Tl[2],s,e,c),u(f(e),yA0),u(f(e),hA0);case 1:u(f(e),dA0);var p=i[1],y=function(S){return u(n,S)},T=function(S){return u(t,S)};return R(Rn[1],T,y,e,p),u(f(e),kA0);case 2:u(f(e),wA0);var E=i[1],d=function(S){return u(t,S)};return ur(Bp[1],d,e,E),u(f(e),EA0);default:u(f(e),SA0);var w=i[1],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(qp[1],A,G,e,w),u(f(e),gA0)}}),N(V$,function(t,n,e){var i=o(T1,t,n);return o(C0(bA0),i,e)}),N(GP,function(t,n,e,i){u(f(e),sA0),o(t,e,i[1]),u(f(e),vA0);var x=i[2];function c(s){return u(n,s)}return R(W5,function(s){return u(t,s)},c,e,x),u(f(e),lA0)}),N(z$,function(t,n,e){var i=o(GP,t,n);return o(C0(cA0),i,e)}),N(W5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),rI0),o(f(e),nI0,eI0);var x=i[1],c=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},c,e,x),u(f(e),tI0),u(f(e),uI0),o(f(e),fI0,iI0);var s=i[2],p=function(s0){return u(n,s0)},y=function(s0){return u(t,s0)};R(qe[31],y,p,e,s),u(f(e),xI0),u(f(e),oI0),o(f(e),cI0,aI0);var T=i[3];return o(f(e),sI0,T),u(f(e),vI0),u(f(e),lI0);case 1:var E=i[2];u(f(e),bI0),o(f(e),mI0,pI0);var d=i[1],w=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w,e,d),u(f(e),_I0),u(f(e),yI0),o(f(e),dI0,hI0),u(f(e),kI0),o(t,e,E[1]),u(f(e),wI0);var G=E[2],A=function(s0){return u(n,s0)},S=function(s0){return u(t,s0)};return R(As[5],S,A,e,G),u(f(e),EI0),u(f(e),SI0),u(f(e),gI0);case 2:var M=i[3],K=i[2];u(f(e),FI0),o(f(e),OI0,TI0);var V=i[1],f0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},f0,e,V),u(f(e),II0),u(f(e),AI0),o(f(e),CI0,NI0),u(f(e),PI0),o(t,e,K[1]),u(f(e),DI0);var m0=K[2],k0=function(s0){return u(n,s0)},g0=function(s0){return u(t,s0)};if(R(As[5],g0,k0,e,m0),u(f(e),LI0),u(f(e),RI0),u(f(e),jI0),o(f(e),MI0,GI0),M){g(e,BI0);var e0=M[1],x0=function(s0,hr){return g(s0,QO0)},l=function(s0){return u(t,s0)};R(Dr[1],l,x0,e,e0),g(e,qI0)}else g(e,UI0);return u(f(e),HI0),u(f(e),XI0);default:var c0=i[3],t0=i[2];u(f(e),YI0),o(f(e),zI0,VI0);var o0=i[1],w0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w0,e,o0),u(f(e),KI0),u(f(e),WI0),o(f(e),$I0,JI0),u(f(e),ZI0),o(t,e,t0[1]),u(f(e),QI0);var _0=t0[2],E0=function(s0){return u(n,s0)},U0=function(s0){return u(t,s0)};if(R(As[5],U0,E0,e,_0),u(f(e),rA0),u(f(e),eA0),u(f(e),nA0),o(f(e),uA0,tA0),c0){g(e,iA0);var b=c0[1],R0=function(s0,hr){return g(s0,ZO0)},X=function(s0){return u(t,s0)};R(Dr[1],X,R0,e,b),g(e,fA0)}else g(e,xA0);return u(f(e),oA0),u(f(e),aA0)}}),N(K$,function(t,n,e){var i=o(W5,t,n);return o(C0($O0),i,e)});var W$=[0,T1,V$,GP,z$,W5,K$],MP=function t(n,e,i,x){return t.fun(n,e,i,x)},J$=function t(n,e,i){return t.fun(n,e,i)},J5=function t(n,e,i,x){return t.fun(n,e,i,x)},$$=function t(n,e,i){return t.fun(n,e,i)};N(MP,function(t,n,e,i){u(f(e),KO0),o(t,e,i[1]),u(f(e),WO0);var x=i[2];function c(s){return u(n,s)}return R(J5,function(s){return u(t,s)},c,e,x),u(f(e),JO0)}),N(J$,function(t,n,e){var i=o(MP,t,n);return o(C0(zO0),i,e)}),N(J5,function(t,n,e,i){u(f(e),LO0),o(f(e),jO0,RO0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),GO0),u(f(e),MO0),o(f(e),qO0,BO0);var p=i[2];if(p){g(e,UO0);var y=p[1],T=function(d,w){return g(d,DO0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,HO0)}else g(e,XO0);return u(f(e),YO0),u(f(e),VO0)}),N($$,function(t,n,e){var i=o(J5,t,n);return o(C0(PO0),i,e)});var Z$=[0,MP,J$,J5,$$],$5=function t(n,e,i,x){return t.fun(n,e,i,x)},Q$=function t(n,e,i){return t.fun(n,e,i)},BP=function t(n,e,i,x){return t.fun(n,e,i,x)},rZ=function t(n,e,i){return t.fun(n,e,i)};N($5,function(t,n,e,i){if(i[0]===0){u(f(e),IO0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(W$[3],s,c,e,x),u(f(e),AO0)}u(f(e),NO0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Z$[1],T,y,e,p),u(f(e),CO0)}),N(Q$,function(t,n,e){var i=o($5,t,n);return o(C0(OO0),i,e)}),N(BP,function(t,n,e,i){u(f(e),bO0),o(f(e),mO0,pO0);var x=i[1];u(f(e),_O0);var c=0;le(function(E,d){E&&u(f(e),lO0);function w(G){return u(n,G)}return R($5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),yO0),u(f(e),hO0),u(f(e),dO0),o(f(e),wO0,kO0);var s=i[2];if(s){g(e,EO0);var p=s[1],y=function(E,d){u(f(E),sO0);var w=0;return le(function(G,A){G&&u(f(E),cO0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),vO0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,SO0)}else g(e,gO0);return u(f(e),FO0),u(f(e),TO0)}),N(rZ,function(t,n,e){var i=o(BP,t,n);return o(C0(aO0),i,e)});var eZ=[0,W$,Z$,$5,Q$,BP,rZ],qP=function t(n,e,i,x){return t.fun(n,e,i,x)},nZ=function t(n,e,i){return t.fun(n,e,i)};N(qP,function(t,n,e,i){u(f(e),WT0),o(f(e),$T0,JT0);var x=i[1];u(f(e),ZT0);var c=0;le(function(E,d){E&&u(f(e),KT0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(qe[31],G,w,e,d),1},c,x),u(f(e),QT0),u(f(e),rO0),u(f(e),eO0),o(f(e),tO0,nO0);var s=i[2];if(s){g(e,uO0);var p=s[1],y=function(E,d){return g(E,zT0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,iO0)}else g(e,fO0);return u(f(e),xO0),u(f(e),oO0)}),N(nZ,function(t,n,e){var i=o(qP,t,n);return o(C0(VT0),i,e)});var tZ=[0,qP,nZ],Z5=function t(n,e){return t.fun(n,e)},uZ=function t(n){return t.fun(n)},UP=function t(n,e,i,x){return t.fun(n,e,i,x)},iZ=function t(n,e,i){return t.fun(n,e,i)};N(Z5,function(t,n){switch(n){case 0:return g(t,GT0);case 1:return g(t,MT0);case 2:return g(t,BT0);case 3:return g(t,qT0);case 4:return g(t,UT0);case 5:return g(t,HT0);case 6:return g(t,XT0);default:return g(t,YT0)}}),N(uZ,function(t){return o(C0(jT0),Z5,t)}),N(UP,function(t,n,e,i){u(f(e),kT0),o(f(e),ET0,wT0),o(Z5,e,i[1]),u(f(e),ST0),u(f(e),gT0),o(f(e),TT0,FT0);var x=i[2];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),OT0),u(f(e),IT0),o(f(e),NT0,AT0);var p=i[3];if(p){g(e,CT0);var y=p[1],T=function(d,w){return g(d,dT0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,PT0)}else g(e,DT0);return u(f(e),LT0),u(f(e),RT0)}),N(iZ,function(t,n,e){var i=o(UP,t,n);return o(C0(hT0),i,e)});var fZ=[0,Z5,uZ,UP,iZ],Q5=function t(n,e){return t.fun(n,e)},xZ=function t(n){return t.fun(n)},HP=function t(n,e,i,x){return t.fun(n,e,i,x)},oZ=function t(n,e,i){return t.fun(n,e,i)};N(Q5,function(t,n){switch(n){case 0:return g(t,$F0);case 1:return g(t,ZF0);case 2:return g(t,QF0);case 3:return g(t,rT0);case 4:return g(t,eT0);case 5:return g(t,nT0);case 6:return g(t,tT0);case 7:return g(t,uT0);case 8:return g(t,iT0);case 9:return g(t,fT0);case 10:return g(t,xT0);case 11:return g(t,oT0);case 12:return g(t,aT0);case 13:return g(t,cT0);case 14:return g(t,sT0);case 15:return g(t,vT0);case 16:return g(t,lT0);case 17:return g(t,bT0);case 18:return g(t,pT0);case 19:return g(t,mT0);case 20:return g(t,_T0);default:return g(t,yT0)}}),N(xZ,function(t){return o(C0(JF0),Q5,t)}),N(HP,function(t,n,e,i){u(f(e),AF0),o(f(e),CF0,NF0),o(Q5,e,i[1]),u(f(e),PF0),u(f(e),DF0),o(f(e),RF0,LF0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),jF0),u(f(e),GF0),o(f(e),BF0,MF0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),qF0),u(f(e),UF0),o(f(e),XF0,HF0);var E=i[4];if(E){g(e,YF0);var d=E[1],w=function(A,S){return g(A,IF0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,VF0)}else g(e,zF0);return u(f(e),KF0),u(f(e),WF0)}),N(oZ,function(t,n,e){var i=o(HP,t,n);return o(C0(OF0),i,e)});var aZ=[0,Q5,xZ,HP,oZ],rm=function t(n,e){return t.fun(n,e)},cZ=function t(n){return t.fun(n)},XP=function t(n,e,i,x){return t.fun(n,e,i,x)},sZ=function t(n,e,i){return t.fun(n,e,i)};N(rm,function(t,n){switch(n){case 0:return g(t,lF0);case 1:return g(t,bF0);case 2:return g(t,pF0);case 3:return g(t,mF0);case 4:return g(t,_F0);case 5:return g(t,yF0);case 6:return g(t,hF0);case 7:return g(t,dF0);case 8:return g(t,kF0);case 9:return g(t,wF0);case 10:return g(t,EF0);case 11:return g(t,SF0);case 12:return g(t,gF0);case 13:return g(t,FF0);default:return g(t,TF0)}}),N(cZ,function(t){return o(C0(vF0),rm,t)}),N(XP,function(t,n,e,i){u(f(e),Hg0),o(f(e),Yg0,Xg0);var x=i[1];x?(g(e,Vg0),o(rm,e,x[1]),g(e,zg0)):g(e,Kg0),u(f(e),Wg0),u(f(e),Jg0),o(f(e),Zg0,$g0);var c=i[2];function s(S){return u(n,S)}function p(S){return u(t,S)}R(di[5],p,s,e,c),u(f(e),Qg0),u(f(e),rF0),o(f(e),nF0,eF0);var y=i[3];function T(S){return u(n,S)}function E(S){return u(t,S)}R(qe[31],E,T,e,y),u(f(e),tF0),u(f(e),uF0),o(f(e),fF0,iF0);var d=i[4];if(d){g(e,xF0);var w=d[1],G=function(S,M){return g(S,Ug0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,oF0)}else g(e,aF0);return u(f(e),cF0),u(f(e),sF0)}),N(sZ,function(t,n,e){var i=o(XP,t,n);return o(C0(qg0),i,e)});var vZ=[0,rm,cZ,XP,sZ],em=function t(n,e){return t.fun(n,e)},lZ=function t(n){return t.fun(n)},YP=function t(n,e,i,x){return t.fun(n,e,i,x)},bZ=function t(n,e,i){return t.fun(n,e,i)};N(em,function(t,n){return n?g(t,Mg0):g(t,Bg0)}),N(lZ,function(t){return o(C0(Gg0),em,t)}),N(YP,function(t,n,e,i){u(f(e),_g0),o(f(e),hg0,yg0),o(em,e,i[1]),u(f(e),dg0),u(f(e),kg0),o(f(e),Eg0,wg0);var x=i[2];function c(w){return u(n,w)}function s(w){return u(t,w)}R(qe[31],s,c,e,x),u(f(e),Sg0),u(f(e),gg0),o(f(e),Tg0,Fg0);var p=i[3];o(f(e),Og0,p),u(f(e),Ig0),u(f(e),Ag0),o(f(e),Cg0,Ng0);var y=i[4];if(y){g(e,Pg0);var T=y[1],E=function(w,G){return g(w,mg0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Dg0)}else g(e,Lg0);return u(f(e),Rg0),u(f(e),jg0)}),N(bZ,function(t,n,e){var i=o(YP,t,n);return o(C0(pg0),i,e)});var pZ=[0,em,lZ,YP,bZ],nm=function t(n,e){return t.fun(n,e)},mZ=function t(n){return t.fun(n)},VP=function t(n,e,i,x){return t.fun(n,e,i,x)},_Z=function t(n,e,i){return t.fun(n,e,i)};N(nm,function(t,n){switch(n){case 0:return g(t,vg0);case 1:return g(t,lg0);default:return g(t,bg0)}}),N(mZ,function(t){return o(C0(sg0),nm,t)}),N(VP,function(t,n,e,i){u(f(e),YS0),o(f(e),zS0,VS0),o(nm,e,i[1]),u(f(e),KS0),u(f(e),WS0),o(f(e),$S0,JS0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),ZS0),u(f(e),QS0),o(f(e),eg0,rg0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),ng0),u(f(e),tg0),o(f(e),ig0,ug0);var E=i[4];if(E){g(e,fg0);var d=E[1],w=function(A,S){return g(A,XS0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,xg0)}else g(e,og0);return u(f(e),ag0),u(f(e),cg0)}),N(_Z,function(t,n,e){var i=o(VP,t,n);return o(C0(HS0),i,e)});var yZ=[0,nm,mZ,VP,_Z],zP=function t(n,e,i,x){return t.fun(n,e,i,x)},hZ=function t(n,e,i){return t.fun(n,e,i)};N(zP,function(t,n,e,i){u(f(e),ES0),o(f(e),gS0,SS0);var x=i[1];function c(K){return u(n,K)}function s(K){return u(t,K)}R(qe[31],s,c,e,x),u(f(e),FS0),u(f(e),TS0),o(f(e),IS0,OS0);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R(qe[31],T,y,e,p),u(f(e),AS0),u(f(e),NS0),o(f(e),PS0,CS0);var E=i[3];function d(K){return u(n,K)}function w(K){return u(t,K)}R(qe[31],w,d,e,E),u(f(e),DS0),u(f(e),LS0),o(f(e),jS0,RS0);var G=i[4];if(G){g(e,GS0);var A=G[1],S=function(K,V){return g(K,wS0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,MS0)}else g(e,BS0);return u(f(e),qS0),u(f(e),US0)}),N(hZ,function(t,n,e){var i=o(zP,t,n);return o(C0(kS0),i,e)});var dZ=[0,zP,hZ],tm=function t(n,e,i,x){return t.fun(n,e,i,x)},kZ=function t(n,e,i){return t.fun(n,e,i)};N(tm,function(t,n,e,i){if(i[0]===0){u(f(e),_S0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(qe[31],s,c,e,x),u(f(e),yS0)}u(f(e),hS0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(CP[1],T,y,e,p),u(f(e),dS0)}),N(kZ,function(t,n,e){var i=o(tm,t,n);return o(C0(mS0),i,e)});var KP=function t(n,e,i,x){return t.fun(n,e,i,x)},wZ=function t(n,e,i){return t.fun(n,e,i)},um=function t(n,e,i,x){return t.fun(n,e,i,x)},EZ=function t(n,e,i){return t.fun(n,e,i)};N(KP,function(t,n,e,i){u(f(e),lS0),o(t,e,i[1]),u(f(e),bS0);var x=i[2];function c(s){return u(n,s)}return R(um,function(s){return u(t,s)},c,e,x),u(f(e),pS0)}),N(wZ,function(t,n,e){var i=o(KP,t,n);return o(C0(vS0),i,e)}),N(um,function(t,n,e,i){u(f(e),ZE0),o(f(e),rS0,QE0);var x=i[1];u(f(e),eS0);var c=0;le(function(E,d){E&&u(f(e),$E0);function w(G){return u(n,G)}return R(tm,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),nS0),u(f(e),tS0),u(f(e),uS0),o(f(e),fS0,iS0);var s=i[2];if(s){g(e,xS0);var p=s[1],y=function(E,d){u(f(E),WE0);var w=0;return le(function(G,A){G&&u(f(E),KE0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),JE0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,oS0)}else g(e,aS0);return u(f(e),cS0),u(f(e),sS0)}),N(EZ,function(t,n,e){var i=o(um,t,n);return o(C0(zE0),i,e)});var WP=[0,KP,wZ,um,EZ],JP=function t(n,e,i,x){return t.fun(n,e,i,x)},SZ=function t(n,e,i){return t.fun(n,e,i)};N(JP,function(t,n,e,i){u(f(e),kE0),o(f(e),EE0,wE0);var x=i[1];function c(f0){return u(n,f0)}function s(f0){return u(t,f0)}R(qe[31],s,c,e,x),u(f(e),SE0),u(f(e),gE0),o(f(e),TE0,FE0);var p=i[2];if(p){g(e,OE0);var y=p[1],T=function(f0){return u(n,f0)},E=function(f0){return u(t,f0)};R(qe[2][1],E,T,e,y),g(e,IE0)}else g(e,AE0);u(f(e),NE0),u(f(e),CE0),o(f(e),DE0,PE0);var d=i[3];if(d){g(e,LE0);var w=d[1],G=function(f0){return u(n,f0)},A=function(f0){return u(t,f0)};R(WP[1],A,G,e,w),g(e,RE0)}else g(e,jE0);u(f(e),GE0),u(f(e),ME0),o(f(e),qE0,BE0);var S=i[4];if(S){g(e,UE0);var M=S[1],K=function(f0,m0){return g(f0,dE0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,HE0)}else g(e,XE0);return u(f(e),YE0),u(f(e),VE0)}),N(SZ,function(t,n,e){var i=o(JP,t,n);return o(C0(hE0),i,e)});var gZ=[0,JP,SZ],$P=function t(n,e,i,x){return t.fun(n,e,i,x)},FZ=function t(n,e,i){return t.fun(n,e,i)};N($P,function(t,n,e,i){u(f(e),Jw0),o(f(e),Zw0,$w0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[31],s,c,e,x),u(f(e),Qw0),u(f(e),rE0),o(f(e),nE0,eE0);var p=i[2];if(p){g(e,tE0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(qe[2][1],E,T,e,y),g(e,uE0)}else g(e,iE0);u(f(e),fE0),u(f(e),xE0),o(f(e),aE0,oE0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R(WP[1],G,w,e,d),u(f(e),cE0),u(f(e),sE0),o(f(e),lE0,vE0);var A=i[4];if(A){g(e,bE0);var S=A[1],M=function(V,f0){return g(V,Ww0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,pE0)}else g(e,mE0);return u(f(e),_E0),u(f(e),yE0)}),N(FZ,function(t,n,e){var i=o($P,t,n);return o(C0(Kw0),i,e)});var ZP=[0,$P,FZ],QP=function t(n,e,i,x){return t.fun(n,e,i,x)},TZ=function t(n,e,i){return t.fun(n,e,i)};N(QP,function(t,n,e,i){u(f(e),Dw0),o(f(e),Rw0,Lw0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(ZP[1],s,c,e,x),u(f(e),jw0),u(f(e),Gw0),o(f(e),Bw0,Mw0),o(n,e,i[2]),u(f(e),qw0),u(f(e),Uw0),o(f(e),Xw0,Hw0);var p=i[3];return o(f(e),Yw0,p),u(f(e),Vw0),u(f(e),zw0)}),N(TZ,function(t,n,e){var i=o(QP,t,n);return o(C0(Pw0),i,e)});var OZ=[0,QP,TZ],im=function t(n,e,i,x){return t.fun(n,e,i,x)},IZ=function t(n,e,i){return t.fun(n,e,i)},rD=function t(n,e,i,x){return t.fun(n,e,i,x)},AZ=function t(n,e,i){return t.fun(n,e,i)};N(im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),Tw0);var x=i[1],c=function(w){return u(n,w)},s=function(w){return u(t,w)};return R(Rn[1],s,c,e,x),u(f(e),Ow0);case 1:u(f(e),Iw0);var p=i[1],y=function(w){return u(t,w)};return ur(Bp[1],y,e,p),u(f(e),Aw0);default:u(f(e),Nw0);var T=i[1],E=function(w){return u(n,w)},d=function(w){return u(t,w)};return R(qe[31],d,E,e,T),u(f(e),Cw0)}}),N(IZ,function(t,n,e){var i=o(im,t,n);return o(C0(Fw0),i,e)}),N(rD,function(t,n,e,i){u(f(e),cw0),o(f(e),vw0,sw0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),lw0),u(f(e),bw0),o(f(e),mw0,pw0);var p=i[2];function y(G){return u(n,G)}R(im,function(G){return u(t,G)},y,e,p),u(f(e),_w0),u(f(e),yw0),o(f(e),dw0,hw0);var T=i[3];if(T){g(e,kw0);var E=T[1],d=function(G,A){return g(G,aw0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,ww0)}else g(e,Ew0);return u(f(e),Sw0),u(f(e),gw0)}),N(AZ,function(t,n,e){var i=o(rD,t,n);return o(C0(ow0),i,e)});var eD=[0,im,IZ,rD,AZ],nD=function t(n,e,i,x){return t.fun(n,e,i,x)},NZ=function t(n,e,i){return t.fun(n,e,i)};N(nD,function(t,n,e,i){u(f(e),Kk0),o(f(e),Jk0,Wk0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(eD[3],s,c,e,x),u(f(e),$k0),u(f(e),Zk0),o(f(e),rw0,Qk0),o(n,e,i[2]),u(f(e),ew0),u(f(e),nw0),o(f(e),uw0,tw0);var p=i[3];return o(f(e),iw0,p),u(f(e),fw0),u(f(e),xw0)}),N(NZ,function(t,n,e){var i=o(nD,t,n);return o(C0(zk0),i,e)});var CZ=[0,nD,NZ],tD=function t(n,e,i,x){return t.fun(n,e,i,x)},PZ=function t(n,e,i){return t.fun(n,e,i)};N(tD,function(t,n,e,i){u(f(e),Ek0),o(f(e),gk0,Sk0);var x=i[1];if(x){g(e,Fk0);var c=x[1],s=function(G){return u(n,G)},p=function(G){return u(t,G)};R(qe[31],p,s,e,c),g(e,Tk0)}else g(e,Ok0);u(f(e),Ik0),u(f(e),Ak0),o(f(e),Ck0,Nk0);var y=i[2];if(y){g(e,Pk0);var T=y[1],E=function(G,A){return g(G,wk0)},d=function(G){return u(t,G)};R(Dr[1],d,E,e,T),g(e,Dk0)}else g(e,Lk0);u(f(e),Rk0),u(f(e),jk0),o(f(e),Mk0,Gk0);var w=i[3];return o(f(e),Bk0,w),u(f(e),qk0),u(f(e),Uk0),o(f(e),Xk0,Hk0),o(n,e,i[4]),u(f(e),Yk0),u(f(e),Vk0)}),N(PZ,function(t,n,e){var i=o(tD,t,n);return o(C0(kk0),i,e)});var DZ=[0,tD,PZ],uD=function t(n,e,i,x){return t.fun(n,e,i,x)},LZ=function t(n,e,i){return t.fun(n,e,i)},fm=function t(n,e,i,x){return t.fun(n,e,i,x)},RZ=function t(n,e,i){return t.fun(n,e,i)};N(uD,function(t,n,e,i){u(f(e),yk0),o(t,e,i[1]),u(f(e),hk0);var x=i[2];function c(s){return u(n,s)}return R(fm,function(s){return u(t,s)},c,e,x),u(f(e),dk0)}),N(LZ,function(t,n,e){var i=o(uD,t,n);return o(C0(_k0),i,e)}),N(fm,function(t,n,e,i){u(f(e),tk0),o(f(e),ik0,uk0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),fk0),u(f(e),xk0),o(f(e),ak0,ok0);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R(qe[31],T,y,e,p),u(f(e),ck0),u(f(e),sk0),o(f(e),lk0,vk0);var E=i[3];return o(f(e),bk0,E),u(f(e),pk0),u(f(e),mk0)}),N(RZ,function(t,n,e){var i=o(fm,t,n);return o(C0(nk0),i,e)});var jZ=[0,uD,LZ,fm,RZ],iD=function t(n,e,i,x){return t.fun(n,e,i,x)},GZ=function t(n,e,i){return t.fun(n,e,i)};N(iD,function(t,n,e,i){u(f(e),Ud0),o(f(e),Xd0,Hd0);var x=i[1];u(f(e),Yd0);var c=0;le(function(E,d){E&&u(f(e),qd0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(jZ[1],G,w,e,d),1},c,x),u(f(e),Vd0),u(f(e),zd0),u(f(e),Kd0),o(f(e),Jd0,Wd0);var s=i[2];if(s){g(e,$d0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(qe[31],T,y,e,p),g(e,Zd0)}else g(e,Qd0);return u(f(e),rk0),u(f(e),ek0)}),N(GZ,function(t,n,e){var i=o(iD,t,n);return o(C0(Bd0),i,e)});var fD=[0,jZ,iD,GZ],xD=function t(n,e,i,x){return t.fun(n,e,i,x)},MZ=function t(n,e,i){return t.fun(n,e,i)};N(xD,function(t,n,e,i){u(f(e),Fd0),o(f(e),Od0,Td0);var x=i[1];u(f(e),Id0);var c=0;le(function(E,d){E&&u(f(e),gd0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(fD[1][1],G,w,e,d),1},c,x),u(f(e),Ad0),u(f(e),Nd0),u(f(e),Cd0),o(f(e),Dd0,Pd0);var s=i[2];if(s){g(e,Ld0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(qe[31],T,y,e,p),g(e,Rd0)}else g(e,jd0);return u(f(e),Gd0),u(f(e),Md0)}),N(MZ,function(t,n,e){var i=o(xD,t,n);return o(C0(Sd0),i,e)});var BZ=[0,xD,MZ],oD=function t(n,e,i,x){return t.fun(n,e,i,x)},qZ=function t(n,e,i){return t.fun(n,e,i)};N(oD,function(t,n,e,i){u(f(e),od0),o(f(e),cd0,ad0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),sd0),u(f(e),vd0),o(f(e),bd0,ld0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),pd0),u(f(e),md0),o(f(e),yd0,_d0);var E=i[3];if(E){g(e,hd0);var d=E[1],w=function(A,S){return g(A,xd0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,dd0)}else g(e,kd0);return u(f(e),wd0),u(f(e),Ed0)}),N(qZ,function(t,n,e){var i=o(oD,t,n);return o(C0(fd0),i,e)});var UZ=[0,oD,qZ],aD=function t(n,e,i){return t.fun(n,e,i)},HZ=function t(n,e){return t.fun(n,e)};N(aD,function(t,n,e){u(f(n),Xh0),o(f(n),Vh0,Yh0);var i=e[1];function x(G){return u(t,G)}function c(G){return u(t,G)}R(Rn[1],c,x,n,i),u(f(n),zh0),u(f(n),Kh0),o(f(n),Jh0,Wh0);var s=e[2];function p(G){return u(t,G)}function y(G){return u(t,G)}R(Rn[1],y,p,n,s),u(f(n),$h0),u(f(n),Zh0),o(f(n),rd0,Qh0);var T=e[3];if(T){g(n,ed0);var E=T[1],d=function(G,A){return g(G,Hh0)},w=function(G){return u(t,G)};R(Dr[1],w,d,n,E),g(n,nd0)}else g(n,td0);return u(f(n),ud0),u(f(n),id0)}),N(HZ,function(t,n){var e=u(aD,t);return o(C0(Uh0),e,n)});var XZ=[0,aD,HZ],cD=function t(n,e,i){return t.fun(n,e,i)},YZ=function t(n,e){return t.fun(n,e)};N(cD,function(t,n,e){u(f(n),Dh0),o(f(n),Rh0,Lh0);var i=e[1];if(i){g(n,jh0);var x=i[1],c=function(p,y){return g(p,Ph0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Gh0)}else g(n,Mh0);return u(f(n),Bh0),u(f(n),qh0)}),N(YZ,function(t,n){var e=u(cD,t);return o(C0(Ch0),e,n)});var VZ=[0,cD,YZ],sD=function t(n,e,i){return t.fun(n,e,i)},zZ=function t(n,e){return t.fun(n,e)};N(sD,function(t,n,e){u(f(n),Sh0),o(f(n),Fh0,gh0);var i=e[1];if(i){g(n,Th0);var x=i[1],c=function(p,y){return g(p,Eh0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Oh0)}else g(n,Ih0);return u(f(n),Ah0),u(f(n),Nh0)}),N(zZ,function(t,n){var e=u(sD,t);return o(C0(wh0),e,n)});var KZ=[0,sD,zZ],vD=function t(n,e,i,x){return t.fun(n,e,i,x)},WZ=function t(n,e,i){return t.fun(n,e,i)};N(vD,function(t,n,e,i){u(f(e),ch0),o(f(e),vh0,sh0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),lh0),u(f(e),bh0),o(f(e),mh0,ph0);var p=i[2];if(p){g(e,_h0);var y=p[1],T=function(d,w){return g(d,ah0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,yh0)}else g(e,hh0);return u(f(e),dh0),u(f(e),kh0)}),N(WZ,function(t,n,e){var i=o(vD,t,n);return o(C0(oh0),i,e)});var JZ=[0,vD,WZ],lD=function t(n,e,i,x){return t.fun(n,e,i,x)},$Z=function t(n,e,i){return t.fun(n,e,i)},xm=function t(n,e,i,x){return t.fun(n,e,i,x)},ZZ=function t(n,e,i){return t.fun(n,e,i)};N(lD,function(t,n,e,i){u(f(e),ih0),o(n,e,i[1]),u(f(e),fh0);var x=i[2];function c(s){return u(n,s)}return R(xm,function(s){return u(t,s)},c,e,x),u(f(e),xh0)}),N($Z,function(t,n,e){var i=o(lD,t,n);return o(C0(uh0),i,e)}),N(xm,function(t,n,e,i){switch(i[0]){case 0:u(f(e),J_0);var x=i[1],c=function(Y){return u(n,Y)},s=function(Y){return u(t,Y)};return R(G$[3],s,c,e,x),u(f(e),$_0);case 1:u(f(e),Z_0);var p=i[1],y=function(Y){return u(n,Y)},T=function(Y){return u(t,Y)};return R(As[5],T,y,e,p),u(f(e),Q_0);case 2:u(f(e),ry0);var E=i[1],d=function(Y){return u(n,Y)},w=function(Y){return u(t,Y)};return R(vZ[3],w,d,e,E),u(f(e),ey0);case 3:u(f(e),ny0);var G=i[1],A=function(Y){return u(n,Y)},S=function(Y){return u(t,Y)};return R(aZ[3],S,A,e,G),u(f(e),ty0);case 4:u(f(e),uy0);var M=i[1],K=function(Y){return u(n,Y)},V=function(Y){return u(t,Y)};return R(ZP[1],V,K,e,M),u(f(e),iy0);case 5:u(f(e),fy0);var f0=i[1],m0=function(Y){return u(n,Y)},k0=function(Y){return u(t,Y)};return R(F1[8],k0,m0,e,f0),u(f(e),xy0);case 6:u(f(e),oy0);var g0=i[1],e0=function(Y){return u(n,Y)},x0=function(Y){return u(t,Y)};return R(fD[2],x0,e0,e,g0),u(f(e),ay0);case 7:u(f(e),cy0);var l=i[1],c0=function(Y){return u(n,Y)},t0=function(Y){return u(t,Y)};return R(dZ[1],t0,c0,e,l),u(f(e),sy0);case 8:u(f(e),vy0);var o0=i[1],w0=function(Y){return u(n,Y)},_0=function(Y){return u(t,Y)};return R(As[5],_0,w0,e,o0),u(f(e),ly0);case 9:u(f(e),by0);var E0=i[1],U0=function(Y){return u(n,Y)},b=function(Y){return u(t,Y)};return R(BZ[1],b,U0,e,E0),u(f(e),py0);case 10:u(f(e),my0);var R0=i[1],X=function(Y){return u(n,Y)},s0=function(Y){return u(t,Y)};return R(Rn[1],s0,X,e,R0),u(f(e),_y0);case 11:u(f(e),yy0);var hr=i[1],Ar=function(Y){return u(n,Y)},or=function(Y){return u(t,Y)};return R(JZ[1],or,Ar,e,hr),u(f(e),hy0);case 12:u(f(e),dy0);var W0=i[1],Lr=function(Y){return u(n,Y)},Tr=function(Y){return u(t,Y)};return R(UN[17],Tr,Lr,e,W0),u(f(e),ky0);case 13:u(f(e),wy0);var Hr=i[1],Or=function(Y){return u(n,Y)},fr=function(Y){return u(t,Y)};return R(UN[19],fr,Or,e,Hr),u(f(e),Ey0);case 14:u(f(e),Sy0);var Rr=i[1],Wr=function(Y){return u(t,Y)};return ur(Tl[2],Wr,e,Rr),u(f(e),gy0);case 15:u(f(e),Fy0);var Jr=i[1],ar=function(Y){return u(n,Y)},_r=function(Y){return u(t,Y)};return R(yZ[3],_r,ar,e,Jr),u(f(e),Ty0);case 16:u(f(e),Oy0);var Ir=i[1],fe=function(Y){return u(n,Y)},v0=function(Y){return u(t,Y)};return R(eD[3],v0,fe,e,Ir),u(f(e),Iy0);case 17:u(f(e),Ay0);var P=i[1],L=function(Y){return u(t,Y)};return ur(XZ[1],L,e,P),u(f(e),Ny0);case 18:u(f(e),Cy0);var Q=i[1],i0=function(Y){return u(n,Y)},l0=function(Y){return u(t,Y)};return R(gZ[1],l0,i0,e,Q),u(f(e),Py0);case 19:u(f(e),Dy0);var S0=i[1],T0=function(Y){return u(n,Y)},rr=function(Y){return u(t,Y)};return R(eZ[5],rr,T0,e,S0),u(f(e),Ly0);case 20:u(f(e),Ry0);var L0=i[1],B=function(Y){return u(n,Y)},Z=function(Y){return u(t,Y)};return R(OZ[1],Z,B,e,L0),u(f(e),jy0);case 21:u(f(e),Gy0);var p0=i[1],b0=function(Y){return u(n,Y)},O0=function(Y){return u(t,Y)};return R(CZ[1],O0,b0,e,p0),u(f(e),My0);case 22:u(f(e),By0);var M0=i[1],er=function(Y){return u(n,Y)},yr=function(Y){return u(t,Y)};return R(tZ[1],yr,er,e,M0),u(f(e),qy0);case 23:u(f(e),Uy0);var vr=i[1],$0=function(Y){return u(t,Y)};return ur(KZ[1],$0,e,vr),u(f(e),Hy0);case 24:u(f(e),Xy0);var Er=i[1],Mr=function(Y){return u(n,Y)},Br=function(Y){return u(t,Y)};return R(Y$[1],Br,Mr,e,Er),u(f(e),Yy0);case 25:u(f(e),Vy0);var qr=i[1],jr=function(Y){return u(n,Y)},$r=function(Y){return u(t,Y)};return R(RP[2],$r,jr,e,qr),u(f(e),zy0);case 26:u(f(e),Ky0);var ne=i[1],Qr=function(Y){return u(t,Y)};return ur(VZ[1],Qr,e,ne),u(f(e),Wy0);case 27:u(f(e),Jy0);var be=i[1],ae=function(Y){return u(n,Y)},pe=function(Y){return u(t,Y)};return R(UZ[1],pe,ae,e,be),u(f(e),$y0);case 28:u(f(e),Zy0);var oe=i[1],ce=function(Y){return u(n,Y)},ge=function(Y){return u(t,Y)};return R(fZ[3],ge,ce,e,oe),u(f(e),Qy0);case 29:u(f(e),rh0);var q0=i[1],Fr=function(Y){return u(n,Y)},_=function(Y){return u(t,Y)};return R(pZ[3],_,Fr,e,q0),u(f(e),eh0);default:u(f(e),nh0);var k=i[1],I=function(Y){return u(n,Y)},U=function(Y){return u(t,Y)};return R(DZ[1],U,I,e,k),u(f(e),th0)}}),N(ZZ,function(t,n,e){var i=o(xm,t,n);return o(C0(W_0),i,e)}),mu(J3r,qe,[0,N$,See,CP,G$,RP,Y$,eZ,tZ,fZ,aZ,vZ,pZ,yZ,dZ,tm,kZ,WP,gZ,ZP,OZ,eD,CZ,DZ,fD,BZ,UZ,XZ,VZ,KZ,JZ,lD,$Z,xm,ZZ]);var bD=function t(n,e,i,x){return t.fun(n,e,i,x)},QZ=function t(n,e,i){return t.fun(n,e,i)},om=function t(n,e,i){return t.fun(n,e,i)},rQ=function t(n,e){return t.fun(n,e)};N(bD,function(t,n,e,i){u(f(e),V_0),o(n,e,i[1]),u(f(e),z_0);var x=i[2];return ur(om,function(c){return u(t,c)},e,x),u(f(e),K_0)}),N(QZ,function(t,n,e){var i=o(bD,t,n);return o(C0(Y_0),i,e)}),N(om,function(t,n,e){u(f(n),C_0),o(f(n),D_0,P_0);var i=e[1];o(f(n),L_0,i),u(f(n),R_0),u(f(n),j_0),o(f(n),M_0,G_0);var x=e[2];if(x){g(n,B_0);var c=x[1],s=function(y,T){return g(y,N_0)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,q_0)}else g(n,U_0);return u(f(n),H_0),u(f(n),X_0)}),N(rQ,function(t,n){var e=u(om,t);return o(C0(A_0),e,n)});var O1=[0,bD,QZ,om,rQ],pD=function t(n,e,i,x){return t.fun(n,e,i,x)},eQ=function t(n,e,i){return t.fun(n,e,i)},am=function t(n,e,i,x){return t.fun(n,e,i,x)},nQ=function t(n,e,i){return t.fun(n,e,i)};N(pD,function(t,n,e,i){u(f(e),T_0),o(t,e,i[1]),u(f(e),O_0);var x=i[2];function c(s){return u(n,s)}return R(am,function(s){return u(t,s)},c,e,x),u(f(e),I_0)}),N(eQ,function(t,n,e){var i=o(pD,t,n);return o(C0(F_0),i,e)}),N(am,function(t,n,e,i){u(f(e),__0),o(f(e),h_0,y_0);var x=i[1];function c(E){return u(n,E)}function s(E){return u(t,E)}R(O1[1],s,c,e,x),u(f(e),d_0),u(f(e),k_0),o(f(e),E_0,w_0);var p=i[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(O1[1],T,y,e,p),u(f(e),S_0),u(f(e),g_0)}),N(nQ,function(t,n,e){var i=o(am,t,n);return o(C0(m_0),i,e)});var mD=[0,pD,eQ,am,nQ],_D=function t(n,e,i,x){return t.fun(n,e,i,x)},tQ=function t(n,e,i){return t.fun(n,e,i)},cm=function t(n,e,i,x){return t.fun(n,e,i,x)},uQ=function t(n,e,i){return t.fun(n,e,i)};N(_D,function(t,n,e,i){u(f(e),u_0),o(f(e),f_0,i_0);var x=i[1];function c(E){return u(n,E)}R(cm,function(E){return u(t,E)},c,e,x),u(f(e),x_0),u(f(e),o_0),o(f(e),c_0,a_0);var s=i[2];if(s){g(e,s_0);var p=s[1],y=function(E,d){u(f(E),n_0);var w=0;return le(function(G,A){G&&u(f(E),e_0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),t_0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,v_0)}else g(e,l_0);return u(f(e),b_0),u(f(e),p_0)}),N(tQ,function(t,n,e){var i=o(_D,t,n);return o(C0(r_0),i,e)}),N(cm,function(t,n,e,i){if(i){u(f(e),$90);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(qe[31],s,c,e,x),u(f(e),Z90)}return g(e,Q90)}),N(uQ,function(t,n,e){var i=o(cm,t,n);return o(C0(J90),i,e)});var yD=[0,_D,tQ,cm,uQ];function iQ(t,n){u(f(t),G90),o(f(t),B90,M90);var e=n[1];o(f(t),q90,e),u(f(t),U90),u(f(t),H90),o(f(t),Y90,X90);var i=n[2];return o(f(t),V90,i),u(f(t),z90),u(f(t),K90)}var fQ=[0,iQ,function(t){return o(C0(W90),iQ,t)}],hD=function t(n,e,i,x){return t.fun(n,e,i,x)},xQ=function t(n,e,i){return t.fun(n,e,i)},sm=function t(n,e,i,x){return t.fun(n,e,i,x)},oQ=function t(n,e,i){return t.fun(n,e,i)},vm=function t(n,e,i,x){return t.fun(n,e,i,x)},aQ=function t(n,e,i){return t.fun(n,e,i)},lm=function t(n,e,i,x){return t.fun(n,e,i,x)},cQ=function t(n,e,i){return t.fun(n,e,i)};N(hD,function(t,n,e,i){u(f(e),L90),o(t,e,i[1]),u(f(e),R90);var x=i[2];function c(s){return u(n,s)}return R(lm,function(s){return u(t,s)},c,e,x),u(f(e),j90)}),N(xQ,function(t,n,e){var i=o(hD,t,n);return o(C0(D90),i,e)}),N(sm,function(t,n,e,i){if(i[0]===0){u(f(e),A90);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(O1[1],s,c,e,x),u(f(e),N90)}u(f(e),C90);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(mD[1],T,y,e,p),u(f(e),P90)}),N(oQ,function(t,n,e){var i=o(sm,t,n);return o(C0(I90),i,e)}),N(vm,function(t,n,e,i){if(i[0]===0){u(f(e),E90),o(n,e,i[1]),u(f(e),S90);var x=i[2],c=function(T){return u(t,T)};return ur(Tl[2],c,e,x),u(f(e),g90)}u(f(e),F90),o(n,e,i[1]),u(f(e),T90);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(yD[1],y,p,e,s),u(f(e),O90)}),N(aQ,function(t,n,e){var i=o(vm,t,n);return o(C0(w90),i,e)}),N(lm,function(t,n,e,i){u(f(e),c90),o(f(e),v90,s90);var x=i[1];function c(T){return u(n,T)}R(sm,function(T){return u(t,T)},c,e,x),u(f(e),l90),u(f(e),b90),o(f(e),m90,p90);var s=i[2];if(s){g(e,_90);var p=s[1],y=function(T){return u(n,T)};R(vm,function(T){return u(t,T)},y,e,p),g(e,y90)}else g(e,h90);return u(f(e),d90),u(f(e),k90)}),N(cQ,function(t,n,e){var i=o(lm,t,n);return o(C0(a90),i,e)});var sQ=[0,hD,xQ,sm,oQ,vm,aQ,lm,cQ],dD=function t(n,e,i,x){return t.fun(n,e,i,x)},vQ=function t(n,e,i){return t.fun(n,e,i)},bm=function t(n,e,i,x){return t.fun(n,e,i,x)},lQ=function t(n,e,i){return t.fun(n,e,i)};N(dD,function(t,n,e,i){u(f(e),f90),o(t,e,i[1]),u(f(e),x90);var x=i[2];function c(s){return u(n,s)}return R(bm,function(s){return u(t,s)},c,e,x),u(f(e),o90)}),N(vQ,function(t,n,e){var i=o(dD,t,n);return o(C0(i90),i,e)}),N(bm,function(t,n,e,i){u(f(e),zm0),o(f(e),Wm0,Km0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),Jm0),u(f(e),$m0),o(f(e),Qm0,Zm0);var p=i[2];if(p){g(e,r90);var y=p[1],T=function(d,w){return g(d,Vm0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,e90)}else g(e,n90);return u(f(e),t90),u(f(e),u90)}),N(lQ,function(t,n,e){var i=o(bm,t,n);return o(C0(Ym0),i,e)});var bQ=[0,dD,vQ,bm,lQ],pm=function t(n,e,i,x){return t.fun(n,e,i,x)},pQ=function t(n,e,i){return t.fun(n,e,i)},mm=function t(n,e,i,x){return t.fun(n,e,i,x)},mQ=function t(n,e,i){return t.fun(n,e,i)},_m=function t(n,e,i,x){return t.fun(n,e,i,x)},_Q=function t(n,e,i){return t.fun(n,e,i)};N(pm,function(t,n,e,i){u(f(e),Um0),o(t,e,i[1]),u(f(e),Hm0);var x=i[2];function c(s){return u(n,s)}return R(_m,function(s){return u(t,s)},c,e,x),u(f(e),Xm0)}),N(pQ,function(t,n,e){var i=o(pm,t,n);return o(C0(qm0),i,e)}),N(mm,function(t,n,e,i){if(i[0]===0){u(f(e),jm0);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(O1[1],s,c,e,x),u(f(e),Gm0)}u(f(e),Mm0);var p=i[1];function y(T){return u(n,T)}return R(pm,function(T){return u(t,T)},y,e,p),u(f(e),Bm0)}),N(mQ,function(t,n,e){var i=o(mm,t,n);return o(C0(Rm0),i,e)}),N(_m,function(t,n,e,i){u(f(e),Tm0),o(f(e),Im0,Om0);var x=i[1];function c(T){return u(n,T)}R(mm,function(T){return u(t,T)},c,e,x),u(f(e),Am0),u(f(e),Nm0),o(f(e),Pm0,Cm0);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(O1[1],y,p,e,s),u(f(e),Dm0),u(f(e),Lm0)}),N(_Q,function(t,n,e){var i=o(_m,t,n);return o(C0(Fm0),i,e)});var yQ=[0,pm,pQ,mm,mQ,_m,_Q],Nl=function t(n,e,i,x){return t.fun(n,e,i,x)},hQ=function t(n,e,i){return t.fun(n,e,i)};N(Nl,function(t,n,e,i){switch(i[0]){case 0:u(f(e),dm0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(O1[1],s,c,e,x),u(f(e),km0);case 1:u(f(e),wm0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(mD[1],T,y,e,p),u(f(e),Em0);default:u(f(e),Sm0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(yQ[1],w,d,e,E),u(f(e),gm0)}}),N(hQ,function(t,n,e){var i=o(Nl,t,n);return o(C0(hm0),i,e)});var kD=function t(n,e,i,x){return t.fun(n,e,i,x)},dQ=function t(n,e,i){return t.fun(n,e,i)},ym=function t(n,e,i,x){return t.fun(n,e,i,x)},kQ=function t(n,e,i){return t.fun(n,e,i)},hm=function t(n,e,i,x){return t.fun(n,e,i,x)},wQ=function t(n,e,i){return t.fun(n,e,i)};N(kD,function(t,n,e,i){u(f(e),mm0),o(t,e,i[1]),u(f(e),_m0);var x=i[2];function c(s){return u(n,s)}return R(hm,function(s){return u(t,s)},c,e,x),u(f(e),ym0)}),N(dQ,function(t,n,e){var i=o(kD,t,n);return o(C0(pm0),i,e)}),N(ym,function(t,n,e,i){if(i[0]===0){u(f(e),sm0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(sQ[1],s,c,e,x),u(f(e),vm0)}u(f(e),lm0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(bQ[1],T,y,e,p),u(f(e),bm0)}),N(kQ,function(t,n,e){var i=o(ym,t,n);return o(C0(cm0),i,e)}),N(hm,function(t,n,e,i){u(f(e),K50),o(f(e),J50,W50);var x=i[1];function c(T){return u(n,T)}R(Nl,function(T){return u(t,T)},c,e,x),u(f(e),$50),u(f(e),Z50),o(f(e),rm0,Q50);var s=i[2];o(f(e),em0,s),u(f(e),nm0),u(f(e),tm0),o(f(e),im0,um0);var p=i[3];u(f(e),fm0);var y=0;return le(function(T,E){T&&u(f(e),z50);function d(w){return u(n,w)}return R(ym,function(w){return u(t,w)},d,e,E),1},y,p),u(f(e),xm0),u(f(e),om0),u(f(e),am0)}),N(wQ,function(t,n,e){var i=o(hm,t,n);return o(C0(V50),i,e)});var EQ=[0,kD,dQ,ym,kQ,hm,wQ],wD=function t(n,e,i,x){return t.fun(n,e,i,x)},SQ=function t(n,e,i){return t.fun(n,e,i)},dm=function t(n,e,i,x){return t.fun(n,e,i,x)},gQ=function t(n,e,i){return t.fun(n,e,i)};N(wD,function(t,n,e,i){u(f(e),H50),o(t,e,i[1]),u(f(e),X50);var x=i[2];function c(s){return u(n,s)}return R(dm,function(s){return u(t,s)},c,e,x),u(f(e),Y50)}),N(SQ,function(t,n,e){var i=o(wD,t,n);return o(C0(U50),i,e)}),N(dm,function(t,n,e,i){u(f(e),j50),o(f(e),M50,G50);var x=i[1];function c(s){return u(n,s)}return R(Nl,function(s){return u(t,s)},c,e,x),u(f(e),B50),u(f(e),q50)}),N(gQ,function(t,n,e){var i=o(dm,t,n);return o(C0(R50),i,e)});var FQ=[0,wD,SQ,dm,gQ],ED=function t(n,e,i,x){return t.fun(n,e,i,x)},TQ=function t(n,e,i){return t.fun(n,e,i)};N(ED,function(t,n,e,i){u(f(e),S50),o(f(e),F50,g50);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),T50),u(f(e),O50),o(f(e),A50,I50);var p=i[2];if(p){g(e,N50);var y=p[1],T=function(d,w){return g(d,E50)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,C50)}else g(e,P50);return u(f(e),D50),u(f(e),L50)}),N(TQ,function(t,n,e){var i=o(ED,t,n);return o(C0(w50),i,e)});var OQ=[0,ED,TQ],Cl=function t(n,e,i,x){return t.fun(n,e,i,x)},IQ=function t(n,e,i){return t.fun(n,e,i)},km=function t(n,e,i,x){return t.fun(n,e,i,x)},AQ=function t(n,e,i){return t.fun(n,e,i)},wm=function t(n,e,i,x){return t.fun(n,e,i,x)},NQ=function t(n,e,i){return t.fun(n,e,i)},Em=function t(n,e,i,x){return t.fun(n,e,i,x)},CQ=function t(n,e,i){return t.fun(n,e,i)};N(Cl,function(t,n,e,i){u(f(e),h50),o(t,e,i[1]),u(f(e),d50);var x=i[2];function c(s){return u(n,s)}return R(km,function(s){return u(t,s)},c,e,x),u(f(e),k50)}),N(IQ,function(t,n,e){var i=o(Cl,t,n);return o(C0(y50),i,e)}),N(km,function(t,n,e,i){switch(i[0]){case 0:u(f(e),o50);var x=i[1],c=function(A){return u(n,A)};return R(wm,function(A){return u(t,A)},c,e,x),u(f(e),a50);case 1:u(f(e),c50);var s=i[1],p=function(A){return u(n,A)};return R(Em,function(A){return u(t,A)},p,e,s),u(f(e),s50);case 2:u(f(e),v50);var y=i[1],T=function(A){return u(n,A)},E=function(A){return u(t,A)};return R(yD[1],E,T,e,y),u(f(e),l50);case 3:u(f(e),b50);var d=i[1],w=function(A){return u(n,A)},G=function(A){return u(t,A)};return R(OQ[1],G,w,e,d),u(f(e),p50);default:return u(f(e),m50),o(fQ[1],e,i[1]),u(f(e),_50)}}),N(AQ,function(t,n,e){var i=o(km,t,n);return o(C0(x50),i,e)}),N(wm,function(t,n,e,i){u(f(e),Pp0),o(f(e),Lp0,Dp0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(EQ[1],s,c,e,x),u(f(e),Rp0),u(f(e),jp0),o(f(e),Mp0,Gp0);var p=i[2];if(p){g(e,Bp0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(FQ[1],E,T,e,y),g(e,qp0)}else g(e,Up0);u(f(e),Hp0),u(f(e),Xp0),o(f(e),Vp0,Yp0);var d=i[3];u(f(e),zp0),o(t,e,d[1]),u(f(e),Kp0),u(f(e),Wp0);var w=d[2],G=0;le(function(V,f0){V&&u(f(e),Cp0);function m0(k0){return u(n,k0)}return R(Cl,function(k0){return u(t,k0)},m0,e,f0),1},G,w),u(f(e),Jp0),u(f(e),$p0),u(f(e),Zp0),u(f(e),Qp0),o(f(e),e50,r50);var A=i[4];if(A){g(e,n50);var S=A[1],M=function(V,f0){return g(V,Np0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,t50)}else g(e,u50);return u(f(e),i50),u(f(e),f50)}),N(NQ,function(t,n,e){var i=o(wm,t,n);return o(C0(Ap0),i,e)}),N(Em,function(t,n,e,i){u(f(e),ip0),o(f(e),xp0,fp0),o(t,e,i[1]),u(f(e),op0),u(f(e),ap0),o(f(e),sp0,cp0),o(t,e,i[2]),u(f(e),vp0),u(f(e),lp0),o(f(e),pp0,bp0);var x=i[3];u(f(e),mp0),o(t,e,x[1]),u(f(e),_p0),u(f(e),yp0);var c=x[2],s=0;le(function(d,w){d&&u(f(e),up0);function G(A){return u(n,A)}return R(Cl,function(A){return u(t,A)},G,e,w),1},s,c),u(f(e),hp0),u(f(e),dp0),u(f(e),kp0),u(f(e),wp0),o(f(e),Sp0,Ep0);var p=i[4];if(p){g(e,gp0);var y=p[1],T=function(d,w){return g(d,tp0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Fp0)}else g(e,Tp0);return u(f(e),Op0),u(f(e),Ip0)}),N(CQ,function(t,n,e){var i=o(Em,t,n);return o(C0(np0),i,e)}),mu($3r,UN,[0,O1,mD,yD,fQ,sQ,bQ,yQ,Nl,hQ,EQ,FQ,OQ,Cl,IQ,km,AQ,wm,NQ,Em,CQ]);var SD=function t(n,e,i,x){return t.fun(n,e,i,x)},PQ=function t(n,e,i){return t.fun(n,e,i)},Sm=function t(n,e,i,x){return t.fun(n,e,i,x)},DQ=function t(n,e,i){return t.fun(n,e,i)};N(SD,function(t,n,e,i){u(f(e),Q60),o(t,e,i[1]),u(f(e),rp0);var x=i[2];function c(s){return u(n,s)}return R(Sm,function(s){return u(t,s)},c,e,x),u(f(e),ep0)}),N(PQ,function(t,n,e){var i=o(SD,t,n);return o(C0(Z60),i,e)}),N(Sm,function(t,n,e,i){u(f(e),B60),o(f(e),U60,q60);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),H60),u(f(e),X60),o(f(e),V60,Y60);var p=i[2];if(p){g(e,z60);var y=p[1],T=function(d,w){return g(d,M60)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,K60)}else g(e,W60);return u(f(e),J60),u(f(e),$60)}),N(DQ,function(t,n,e){var i=o(Sm,t,n);return o(C0(G60),i,e)});var gD=[0,SD,PQ,Sm,DQ],gm=function t(n,e,i,x){return t.fun(n,e,i,x)},LQ=function t(n,e,i){return t.fun(n,e,i)},FD=function t(n,e,i,x){return t.fun(n,e,i,x)},RQ=function t(n,e,i){return t.fun(n,e,i)},Fm=function t(n,e,i,x){return t.fun(n,e,i,x)},jQ=function t(n,e,i){return t.fun(n,e,i)};N(gm,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),I60),u(f(e),A60),o(t,e,x[1]),u(f(e),N60);var c=x[2],s=function(G){return u(t,G)};return ur(Tl[2],s,e,c),u(f(e),C60),u(f(e),P60);case 1:u(f(e),D60);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(Rn[1],T,y,e,p),u(f(e),L60);default:u(f(e),R60);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(qp[1],w,d,e,E),u(f(e),j60)}}),N(LQ,function(t,n,e){var i=o(gm,t,n);return o(C0(O60),i,e)}),N(FD,function(t,n,e,i){u(f(e),g60),o(t,e,i[1]),u(f(e),F60);var x=i[2];function c(s){return u(n,s)}return R(Fm,function(s){return u(t,s)},c,e,x),u(f(e),T60)}),N(RQ,function(t,n,e){var i=o(FD,t,n);return o(C0(S60),i,e)}),N(Fm,function(t,n,e,i){u(f(e),t60),o(f(e),i60,u60);var x=i[1];function c(A){return u(n,A)}R(gm,function(A){return u(t,A)},c,e,x),u(f(e),f60),u(f(e),x60),o(f(e),a60,o60);var s=i[2];function p(A){return u(n,A)}function y(A){return u(t,A)}R(di[5],y,p,e,s),u(f(e),c60),u(f(e),s60),o(f(e),l60,v60);var T=i[3];if(T){g(e,b60);var E=T[1],d=function(A){return u(n,A)},w=function(A){return u(t,A)};R(qe[31],w,d,e,E),g(e,p60)}else g(e,m60);u(f(e),_60),u(f(e),y60),o(f(e),d60,h60);var G=i[4];return o(f(e),k60,G),u(f(e),w60),u(f(e),E60)}),N(jQ,function(t,n,e){var i=o(Fm,t,n);return o(C0(n60),i,e)});var GQ=[0,gm,LQ,FD,RQ,Fm,jQ],Tm=function t(n,e,i,x){return t.fun(n,e,i,x)},MQ=function t(n,e,i){return t.fun(n,e,i)},TD=function t(n,e,i,x){return t.fun(n,e,i,x)},BQ=function t(n,e,i){return t.fun(n,e,i)};N(Tm,function(t,n,e,i){if(i[0]===0){u(f(e),Z30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(GQ[3],s,c,e,x),u(f(e),Q30)}u(f(e),r60);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(gD[1],T,y,e,p),u(f(e),e60)}),N(MQ,function(t,n,e){var i=o(Tm,t,n);return o(C0($30),i,e)}),N(TD,function(t,n,e,i){u(f(e),P30),o(f(e),L30,D30);var x=i[1];u(f(e),R30);var c=0;le(function(G,A){G&&u(f(e),C30);function S(M){return u(n,M)}return R(Tm,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),j30),u(f(e),G30),u(f(e),M30),o(f(e),q30,B30);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),U30),u(f(e),H30),o(f(e),Y30,X30);var T=i[3];if(T){g(e,V30);var E=T[1],d=function(G,A){u(f(G),A30);var S=0;return le(function(M,K){M&&u(f(G),I30);function V(f0){return u(t,f0)}return ur(iu[1],V,G,K),1},S,A),u(f(G),N30)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,z30)}else g(e,K30);return u(f(e),W30),u(f(e),J30)}),N(BQ,function(t,n,e){var i=o(TD,t,n);return o(C0(O30),i,e)});var qQ=[0,GQ,Tm,MQ,TD,BQ],OD=function t(n,e,i,x){return t.fun(n,e,i,x)},UQ=function t(n,e,i){return t.fun(n,e,i)},Om=function t(n,e,i,x){return t.fun(n,e,i,x)},HQ=function t(n,e,i){return t.fun(n,e,i)};N(OD,function(t,n,e,i){u(f(e),g30),o(t,e,i[1]),u(f(e),F30);var x=i[2];function c(s){return u(n,s)}return R(Om,function(s){return u(t,s)},c,e,x),u(f(e),T30)}),N(UQ,function(t,n,e){var i=o(OD,t,n);return o(C0(S30),i,e)}),N(Om,function(t,n,e,i){u(f(e),v30),o(f(e),b30,l30);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),p30),u(f(e),m30),o(f(e),y30,_30);var p=i[2];if(p){g(e,h30);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,d30)}else g(e,k30);return u(f(e),w30),u(f(e),E30)}),N(HQ,function(t,n,e){var i=o(Om,t,n);return o(C0(s30),i,e)});var XQ=[0,OD,UQ,Om,HQ],Im=function t(n,e,i,x){return t.fun(n,e,i,x)},YQ=function t(n,e,i){return t.fun(n,e,i)},ID=function t(n,e,i,x){return t.fun(n,e,i,x)},VQ=function t(n,e,i){return t.fun(n,e,i)};N(Im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),i30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(XQ[1],s,c,e,x),u(f(e),f30);case 1:u(f(e),x30);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(gD[1],T,y,e,p),u(f(e),o30);default:return u(f(e),a30),o(t,e,i[1]),u(f(e),c30)}}),N(YQ,function(t,n,e){var i=o(Im,t,n);return o(C0(u30),i,e)}),N(ID,function(t,n,e,i){u(f(e),B80),o(f(e),U80,q80);var x=i[1];u(f(e),H80);var c=0;le(function(G,A){G&&u(f(e),M80);function S(M){return u(n,M)}return R(Im,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),X80),u(f(e),Y80),u(f(e),V80),o(f(e),K80,z80);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),W80),u(f(e),J80),o(f(e),Z80,$80);var T=i[3];if(T){g(e,Q80);var E=T[1],d=function(G,A){u(f(G),j80);var S=0;return le(function(M,K){M&&u(f(G),R80);function V(f0){return u(t,f0)}return ur(iu[1],V,G,K),1},S,A),u(f(G),G80)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,r30)}else g(e,e30);return u(f(e),n30),u(f(e),t30)}),N(VQ,function(t,n,e){var i=o(ID,t,n);return o(C0(L80),i,e)});var zQ=[0,XQ,Im,YQ,ID,VQ],AD=function t(n,e,i,x){return t.fun(n,e,i,x)},KQ=function t(n,e,i){return t.fun(n,e,i)};N(AD,function(t,n,e,i){u(f(e),k80),o(f(e),E80,w80);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),S80),u(f(e),g80),o(f(e),T80,F80);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R($e[19],T,y,e,p),u(f(e),O80),u(f(e),I80),o(f(e),N80,A80);var E=i[3];return o(f(e),C80,E),u(f(e),P80),u(f(e),D80)}),N(KQ,function(t,n,e){var i=o(AD,t,n);return o(C0(d80),i,e)});var WQ=[0,AD,KQ],ND=function t(n,e,i,x){return t.fun(n,e,i,x)},JQ=function t(n,e,i){return t.fun(n,e,i)},Am=function t(n,e,i,x){return t.fun(n,e,i,x)},$Q=function t(n,e,i){return t.fun(n,e,i)};N(ND,function(t,n,e,i){u(f(e),_80),o(n,e,i[1]),u(f(e),y80);var x=i[2];function c(s){return u(n,s)}return R(Am,function(s){return u(t,s)},c,e,x),u(f(e),h80)}),N(JQ,function(t,n,e){var i=o(ND,t,n);return o(C0(m80),i,e)}),N(Am,function(t,n,e,i){switch(i[0]){case 0:u(f(e),o80);var x=i[1],c=function(M){return u(n,M)},s=function(M){return u(t,M)};return R(qQ[4],s,c,e,x),u(f(e),a80);case 1:u(f(e),c80);var p=i[1],y=function(M){return u(n,M)},T=function(M){return u(t,M)};return R(zQ[4],T,y,e,p),u(f(e),s80);case 2:u(f(e),v80);var E=i[1],d=function(M){return u(n,M)},w=function(M){return u(t,M)};return R(WQ[1],w,d,e,E),u(f(e),l80);default:u(f(e),b80);var G=i[1],A=function(M){return u(n,M)},S=function(M){return u(t,M)};return R(qe[31],S,A,e,G),u(f(e),p80)}}),N($Q,function(t,n,e){var i=o(Am,t,n);return o(C0(x80),i,e)}),mu(Z3r,di,[0,gD,qQ,zQ,WQ,ND,JQ,Am,$Q]);var CD=function t(n,e,i){return t.fun(n,e,i)},ZQ=function t(n,e){return t.fun(n,e)},Nm=function t(n,e){return t.fun(n,e)},QQ=function t(n){return t.fun(n)},Cm=function t(n,e){return t.fun(n,e)},r00=function t(n){return t.fun(n)};N(CD,function(t,n,e){return u(f(n),u80),o(t,n,e[1]),u(f(n),i80),o(Cm,n,e[2]),u(f(n),f80)}),N(ZQ,function(t,n){var e=u(CD,t);return o(C0(t80),e,n)}),N(Nm,function(t,n){return n?g(t,e80):g(t,n80)}),N(QQ,function(t){return o(C0(r80),Nm,t)}),N(Cm,function(t,n){u(f(t),M40),o(f(t),q40,B40),o(Nm,t,n[1]),u(f(t),U40),u(f(t),H40),o(f(t),Y40,X40);var e=n[2];o(f(t),V40,e),u(f(t),z40),u(f(t),K40),o(f(t),J40,W40);var i=n[3];return o(f(t),$40,i),u(f(t),Z40),u(f(t),Q40)}),N(r00,function(t){return o(C0(G40),Cm,t)}),mu(Q3r,iu,[0,CD,ZQ,Nm,QQ,Cm,r00]);var PD=function t(n,e,i,x){return t.fun(n,e,i,x)},e00=function t(n,e,i){return t.fun(n,e,i)},Pm=function t(n,e){return t.fun(n,e)},n00=function t(n){return t.fun(n)},Dm=function t(n,e,i,x){return t.fun(n,e,i,x)},t00=function t(n,e,i){return t.fun(n,e,i)};N(PD,function(t,n,e,i){u(f(e),L40),o(n,e,i[1]),u(f(e),R40);var x=i[2];function c(s){return u(n,s)}return R(Dm,function(s){return u(t,s)},c,e,x),u(f(e),j40)}),N(e00,function(t,n,e){var i=o(PD,t,n);return o(C0(D40),i,e)}),N(Pm,function(t,n){switch(n){case 0:return g(t,A40);case 1:return g(t,N40);case 2:return g(t,C40);default:return g(t,P40)}}),N(n00,function(t){return o(C0(I40),Pm,t)}),N(Dm,function(t,n,e,i){u(f(e),Wb0),o(f(e),$b0,Jb0),o(Pm,e,i[1]),u(f(e),Zb0),u(f(e),Qb0),o(f(e),e40,r40);var x=i[2];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[7][1][1],s,c,e,x),u(f(e),n40),u(f(e),t40),o(f(e),i40,u40);var p=i[3];u(f(e),f40),o(t,e,p[1]),u(f(e),x40);var y=p[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(As[5],E,T,e,y),u(f(e),o40),u(f(e),a40),u(f(e),c40),o(f(e),v40,s40);var d=i[4];o(f(e),l40,d),u(f(e),b40),u(f(e),p40),o(f(e),_40,m40);var w=i[5];u(f(e),y40);var G=0;le(function(V,f0){V&&u(f(e),Kb0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(F1[7][1],k0,m0,e,f0),1},G,w),u(f(e),h40),u(f(e),d40),u(f(e),k40),o(f(e),E40,w40);var A=i[6];if(A){g(e,S40);var S=A[1],M=function(V,f0){return g(V,zb0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,g40)}else g(e,F40);return u(f(e),T40),u(f(e),O40)}),N(t00,function(t,n,e){var i=o(Dm,t,n);return o(C0(Vb0),i,e)});var u00=[0,PD,e00,Pm,n00,Dm,t00],DD=function t(n,e,i,x){return t.fun(n,e,i,x)},i00=function t(n,e,i){return t.fun(n,e,i)},Lm=function t(n,e,i,x){return t.fun(n,e,i,x)},f00=function t(n,e,i){return t.fun(n,e,i)},Rm=function t(n,e,i,x){return t.fun(n,e,i,x)},x00=function t(n,e,i){return t.fun(n,e,i)};N(DD,function(t,n,e,i){u(f(e),Hb0),o(n,e,i[1]),u(f(e),Xb0);var x=i[2];function c(s){return u(n,s)}return R(Lm,function(s){return u(t,s)},c,e,x),u(f(e),Yb0)}),N(i00,function(t,n,e){var i=o(DD,t,n);return o(C0(Ub0),i,e)}),N(Lm,function(t,n,e,i){u(f(e),cb0),o(f(e),vb0,sb0);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(qe[7][1][1],s,c,e,x),u(f(e),lb0),u(f(e),bb0),o(f(e),mb0,pb0);var p=i[2];function y(m0){return u(n,m0)}R(Rm,function(m0){return u(t,m0)},y,e,p),u(f(e),_b0),u(f(e),yb0),o(f(e),db0,hb0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),kb0),u(f(e),wb0),o(f(e),Sb0,Eb0);var w=i[4];o(f(e),gb0,w),u(f(e),Fb0),u(f(e),Tb0),o(f(e),Ib0,Ob0);var G=i[5];if(G){g(e,Ab0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Nb0)}else g(e,Cb0);u(f(e),Pb0),u(f(e),Db0),o(f(e),Rb0,Lb0);var M=i[6];if(M){g(e,jb0);var K=M[1],V=function(m0,k0){return g(m0,ab0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,Gb0)}else g(e,Mb0);return u(f(e),Bb0),u(f(e),qb0)}),N(f00,function(t,n,e){var i=o(Lm,t,n);return o(C0(ob0),i,e)}),N(Rm,function(t,n,e,i){if(typeof i=="number")return i?g(e,ub0):g(e,ib0);u(f(e),fb0);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(qe[31],s,c,e,x),u(f(e),xb0)}),N(x00,function(t,n,e){var i=o(Rm,t,n);return o(C0(tb0),i,e)});var o00=[0,DD,i00,Lm,f00,Rm,x00],LD=function t(n,e,i,x){return t.fun(n,e,i,x)},a00=function t(n,e,i){return t.fun(n,e,i)},jm=function t(n,e,i,x){return t.fun(n,e,i,x)},c00=function t(n,e,i){return t.fun(n,e,i)};N(LD,function(t,n,e,i){u(f(e),rb0),o(n,e,i[1]),u(f(e),eb0);var x=i[2];function c(s){return u(n,s)}return R(jm,function(s){return u(t,s)},c,e,x),u(f(e),nb0)}),N(a00,function(t,n,e){var i=o(LD,t,n);return o(C0(Ql0),i,e)}),N(jm,function(t,n,e,i){u(f(e),kl0),o(f(e),El0,wl0);var x=i[1];function c(m0){return u(t,m0)}ur(Bp[1],c,e,x),u(f(e),Sl0),u(f(e),gl0),o(f(e),Tl0,Fl0);var s=i[2];function p(m0){return u(n,m0)}function y(m0){return u(t,m0)}R(F1[2][5],y,p,e,s),u(f(e),Ol0),u(f(e),Il0),o(f(e),Nl0,Al0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),Cl0),u(f(e),Pl0),o(f(e),Ll0,Dl0);var w=i[4];o(f(e),Rl0,w),u(f(e),jl0),u(f(e),Gl0),o(f(e),Bl0,Ml0);var G=i[5];if(G){g(e,ql0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Ul0)}else g(e,Hl0);u(f(e),Xl0),u(f(e),Yl0),o(f(e),zl0,Vl0);var M=i[6];if(M){g(e,Kl0);var K=M[1],V=function(m0,k0){return g(m0,dl0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,Wl0)}else g(e,Jl0);return u(f(e),$l0),u(f(e),Zl0)}),N(c00,function(t,n,e){var i=o(jm,t,n);return o(C0(hl0),i,e)});var s00=[0,LD,a00,jm,c00],RD=function t(n,e,i,x){return t.fun(n,e,i,x)},v00=function t(n,e,i){return t.fun(n,e,i)},Gm=function t(n,e,i,x){return t.fun(n,e,i,x)},l00=function t(n,e,i){return t.fun(n,e,i)};N(RD,function(t,n,e,i){u(f(e),ml0),o(t,e,i[1]),u(f(e),_l0);var x=i[2];function c(s){return u(n,s)}return R(Gm,function(s){return u(t,s)},c,e,x),u(f(e),yl0)}),N(v00,function(t,n,e){var i=o(RD,t,n);return o(C0(pl0),i,e)}),N(Gm,function(t,n,e,i){u(f(e),J20),o(f(e),Z20,$20);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(qe[31],s,c,e,x),u(f(e),Q20),u(f(e),rl0),o(f(e),nl0,el0);var p=i[2];if(p){g(e,tl0);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,ul0)}else g(e,il0);u(f(e),fl0),u(f(e),xl0),o(f(e),al0,ol0);var d=i[3];if(d){g(e,cl0);var w=d[1],G=function(S,M){return g(S,W20)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,sl0)}else g(e,vl0);return u(f(e),ll0),u(f(e),bl0)}),N(l00,function(t,n,e){var i=o(Gm,t,n);return o(C0(K20),i,e)});var b00=[0,RD,v00,Gm,l00],jD=function t(n,e,i,x){return t.fun(n,e,i,x)},p00=function t(n,e,i){return t.fun(n,e,i)},Mm=function t(n,e,i,x){return t.fun(n,e,i,x)},m00=function t(n,e,i){return t.fun(n,e,i)};N(jD,function(t,n,e,i){u(f(e),Y20),o(t,e,i[1]),u(f(e),V20);var x=i[2];function c(s){return u(n,s)}return R(Mm,function(s){return u(t,s)},c,e,x),u(f(e),z20)}),N(p00,function(t,n,e){var i=o(jD,t,n);return o(C0(X20),i,e)}),N(Mm,function(t,n,e,i){u(f(e),C20),o(f(e),D20,P20);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),L20),u(f(e),R20),o(f(e),G20,j20);var p=i[2];if(p){g(e,M20);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R($e[23][1],E,T,e,y),g(e,B20)}else g(e,q20);return u(f(e),U20),u(f(e),H20)}),N(m00,function(t,n,e){var i=o(Mm,t,n);return o(C0(N20),i,e)});var _00=[0,jD,p00,Mm,m00],GD=function t(n,e,i,x){return t.fun(n,e,i,x)},y00=function t(n,e,i){return t.fun(n,e,i)},Bm=function t(n,e,i,x){return t.fun(n,e,i,x)},h00=function t(n,e,i){return t.fun(n,e,i)};N(GD,function(t,n,e,i){u(f(e),O20),o(t,e,i[1]),u(f(e),I20);var x=i[2];function c(s){return u(n,s)}return R(Bm,function(s){return u(t,s)},c,e,x),u(f(e),A20)}),N(y00,function(t,n,e){var i=o(GD,t,n);return o(C0(T20),i,e)}),N(Bm,function(t,n,e,i){u(f(e),l20),o(f(e),p20,b20);var x=i[1];u(f(e),m20);var c=0;le(function(E,d){E&&u(f(e),v20);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(_00[1],G,w,e,d),1},c,x),u(f(e),_20),u(f(e),y20),u(f(e),h20),o(f(e),k20,d20);var s=i[2];if(s){g(e,w20);var p=s[1],y=function(E,d){return g(E,s20)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,E20)}else g(e,S20);return u(f(e),g20),u(f(e),F20)}),N(h00,function(t,n,e){var i=o(Bm,t,n);return o(C0(c20),i,e)});var d00=[0,_00,GD,y00,Bm,h00],MD=function t(n,e,i,x){return t.fun(n,e,i,x)},k00=function t(n,e,i){return t.fun(n,e,i)},qm=function t(n,e,i,x){return t.fun(n,e,i,x)},w00=function t(n,e,i){return t.fun(n,e,i)},Um=function t(n,e,i,x){return t.fun(n,e,i,x)},E00=function t(n,e,i){return t.fun(n,e,i)};N(MD,function(t,n,e,i){u(f(e),x20),o(t,e,i[1]),u(f(e),o20);var x=i[2];function c(s){return u(n,s)}return R(qm,function(s){return u(t,s)},c,e,x),u(f(e),a20)}),N(k00,function(t,n,e){var i=o(MD,t,n);return o(C0(f20),i,e)}),N(qm,function(t,n,e,i){u(f(e),Vv0),o(f(e),Kv0,zv0);var x=i[1];u(f(e),Wv0);var c=0;le(function(E,d){E&&u(f(e),Yv0);function w(G){return u(n,G)}return R(Um,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),Jv0),u(f(e),$v0),u(f(e),Zv0),o(f(e),r20,Qv0);var s=i[2];if(s){g(e,e20);var p=s[1],y=function(E,d){return g(E,Xv0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,n20)}else g(e,t20);return u(f(e),u20),u(f(e),i20)}),N(w00,function(t,n,e){var i=o(qm,t,n);return o(C0(Hv0),i,e)}),N(Um,function(t,n,e,i){switch(i[0]){case 0:u(f(e),jv0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(u00[1],s,c,e,x),u(f(e),Gv0);case 1:u(f(e),Mv0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(o00[1],T,y,e,p),u(f(e),Bv0);default:u(f(e),qv0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(s00[1],w,d,e,E),u(f(e),Uv0)}}),N(E00,function(t,n,e){var i=o(Um,t,n);return o(C0(Rv0),i,e)});var BD=function t(n,e,i,x){return t.fun(n,e,i,x)},S00=function t(n,e,i){return t.fun(n,e,i)},Hm=function t(n,e,i,x){return t.fun(n,e,i,x)},g00=function t(n,e,i){return t.fun(n,e,i)},gee=[0,MD,k00,qm,w00,Um,E00];N(BD,function(t,n,e,i){u(f(e),Pv0),o(t,e,i[1]),u(f(e),Dv0);var x=i[2];function c(s){return u(n,s)}return R(Hm,function(s){return u(t,s)},c,e,x),u(f(e),Lv0)}),N(S00,function(t,n,e){var i=o(BD,t,n);return o(C0(Cv0),i,e)}),N(Hm,function(t,n,e,i){u(f(e),dv0),o(f(e),wv0,kv0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),Ev0),u(f(e),Sv0),o(f(e),Fv0,gv0);var p=i[2];if(p){g(e,Tv0);var y=p[1],T=function(d,w){return g(d,hv0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Ov0)}else g(e,Iv0);return u(f(e),Av0),u(f(e),Nv0)}),N(g00,function(t,n,e){var i=o(Hm,t,n);return o(C0(yv0),i,e)});var F00=[0,BD,S00,Hm,g00],qD=function t(n,e,i,x){return t.fun(n,e,i,x)},T00=function t(n,e,i){return t.fun(n,e,i)};N(qD,function(t,n,e,i){u(f(e),F10),o(f(e),O10,T10);var x=i[1];if(x){g(e,I10);var c=x[1],s=function(w0){return u(n,w0)},p=function(w0){return u(t,w0)};R(Rn[1],p,s,e,c),g(e,A10)}else g(e,N10);u(f(e),C10),u(f(e),P10),o(f(e),L10,D10);var y=i[2];function T(w0){return u(n,w0)}function E(w0){return u(t,w0)}R(F1[6][1],E,T,e,y),u(f(e),R10),u(f(e),j10),o(f(e),M10,G10);var d=i[3];if(d){g(e,B10);var w=d[1],G=function(w0){return u(n,w0)},A=function(w0){return u(t,w0)};R($e[22][1],A,G,e,w),g(e,q10)}else g(e,U10);u(f(e),H10),u(f(e),X10),o(f(e),V10,Y10);var S=i[4];if(S){g(e,z10);var M=S[1],K=function(w0){return u(n,w0)},V=function(w0){return u(t,w0)};R(b00[1],V,K,e,M),g(e,K10)}else g(e,W10);u(f(e),J10),u(f(e),$10),o(f(e),Q10,Z10);var f0=i[5];if(f0){g(e,rv0);var m0=f0[1],k0=function(w0){return u(n,w0)},g0=function(w0){return u(t,w0)};R(d00[2],g0,k0,e,m0),g(e,ev0)}else g(e,nv0);u(f(e),tv0),u(f(e),uv0),o(f(e),fv0,iv0);var e0=i[6];u(f(e),xv0);var x0=0;le(function(w0,_0){w0&&u(f(e),g10);function E0(b){return u(n,b)}function U0(b){return u(t,b)}return R(F00[1],U0,E0,e,_0),1},x0,e0),u(f(e),ov0),u(f(e),av0),u(f(e),cv0),o(f(e),vv0,sv0);var l=i[7];if(l){g(e,lv0);var c0=l[1],t0=function(w0,_0){return g(w0,S10)},o0=function(w0){return u(t,w0)};R(Dr[1],o0,t0,e,c0),g(e,bv0)}else g(e,pv0);return u(f(e),mv0),u(f(e),_v0)}),N(T00,function(t,n,e){var i=o(qD,t,n);return o(C0(E10),i,e)}),mu(r6r,F1,[0,u00,o00,s00,b00,d00,gee,F00,qD,T00]);var UD=function t(n,e,i,x){return t.fun(n,e,i,x)},O00=function t(n,e,i){return t.fun(n,e,i)},Xm=function t(n,e,i,x){return t.fun(n,e,i,x)},I00=function t(n,e,i){return t.fun(n,e,i)};N(UD,function(t,n,e,i){u(f(e),d10),o(t,e,i[1]),u(f(e),k10);var x=i[2];function c(s){return u(n,s)}return R(Xm,function(s){return u(t,s)},c,e,x),u(f(e),w10)}),N(O00,function(t,n,e){var i=o(UD,t,n);return o(C0(h10),i,e)}),N(Xm,function(t,n,e,i){u(f(e),x10),o(f(e),a10,o10);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),c10),u(f(e),s10),o(f(e),l10,v10);var p=i[2];if(p){g(e,b10);var y=p[1],T=function(d,w){return g(d,f10)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,p10)}else g(e,m10);return u(f(e),_10),u(f(e),y10)}),N(I00,function(t,n,e){var i=o(Xm,t,n);return o(C0(i10),i,e)});var A00=[0,UD,O00,Xm,I00],HD=function t(n,e,i,x){return t.fun(n,e,i,x)},N00=function t(n,e,i){return t.fun(n,e,i)},Ym=function t(n,e,i,x){return t.fun(n,e,i,x)},C00=function t(n,e,i){return t.fun(n,e,i)};N(HD,function(t,n,e,i){u(f(e),n10),o(t,e,i[1]),u(f(e),t10);var x=i[2];function c(s){return u(n,s)}return R(Ym,function(s){return u(t,s)},c,e,x),u(f(e),u10)}),N(N00,function(t,n,e){var i=o(HD,t,n);return o(C0(e10),i,e)}),N(Ym,function(t,n,e,i){u(f(e),Hs0),o(f(e),Ys0,Xs0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),Vs0),u(f(e),zs0),o(f(e),Ws0,Ks0);var p=i[2];if(p){g(e,Js0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,$s0)}else g(e,Zs0);return u(f(e),Qs0),u(f(e),r10)}),N(C00,function(t,n,e){var i=o(Ym,t,n);return o(C0(Us0),i,e)});var P00=[0,HD,N00,Ym,C00],XD=function t(n,e,i,x){return t.fun(n,e,i,x)},D00=function t(n,e,i){return t.fun(n,e,i)},Vm=function t(n,e,i,x){return t.fun(n,e,i,x)},L00=function t(n,e,i){return t.fun(n,e,i)};N(XD,function(t,n,e,i){u(f(e),Ms0),o(t,e,i[1]),u(f(e),Bs0);var x=i[2];function c(s){return u(n,s)}return R(Vm,function(s){return u(t,s)},c,e,x),u(f(e),qs0)}),N(D00,function(t,n,e){var i=o(XD,t,n);return o(C0(Gs0),i,e)}),N(Vm,function(t,n,e,i){u(f(e),Fs0),o(f(e),Os0,Ts0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Is0),u(f(e),As0),o(f(e),Cs0,Ns0);var p=i[2];if(p){g(e,Ps0);var y=p[1],T=function(d,w){return g(d,gs0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Ds0)}else g(e,Ls0);return u(f(e),Rs0),u(f(e),js0)}),N(L00,function(t,n,e){var i=o(Vm,t,n);return o(C0(Ss0),i,e)});var R00=[0,XD,D00,Vm,L00],YD=function t(n,e,i,x){return t.fun(n,e,i,x)},j00=function t(n,e,i){return t.fun(n,e,i)},zm=function t(n,e,i,x){return t.fun(n,e,i,x)},G00=function t(n,e,i){return t.fun(n,e,i)};N(YD,function(t,n,e,i){u(f(e),ks0),o(t,e,i[1]),u(f(e),ws0);var x=i[2];function c(s){return u(n,s)}return R(zm,function(s){return u(t,s)},c,e,x),u(f(e),Es0)}),N(j00,function(t,n,e){var i=o(YD,t,n);return o(C0(ds0),i,e)}),N(zm,function(t,n,e,i){u(f(e),Vc0),o(f(e),Kc0,zc0);var x=i[1];if(x){g(e,Wc0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(R00[1],p,s,e,c),g(e,Jc0)}else g(e,$c0);u(f(e),Zc0),u(f(e),Qc0),o(f(e),es0,rs0);var y=i[2];u(f(e),ns0);var T=0;le(function(V,f0){V&&u(f(e),Yc0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(P00[1],k0,m0,e,f0),1},T,y),u(f(e),ts0),u(f(e),us0),u(f(e),is0),o(f(e),xs0,fs0);var E=i[3];if(E){g(e,os0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(A00[1],G,w,e,d),g(e,as0)}else g(e,cs0);u(f(e),ss0),u(f(e),vs0),o(f(e),bs0,ls0);var A=i[4];if(A){g(e,ps0);var S=A[1],M=function(V,f0){u(f(V),Hc0);var m0=0;return le(function(k0,g0){k0&&u(f(V),Uc0);function e0(x0){return u(t,x0)}return ur(iu[1],e0,V,g0),1},m0,f0),u(f(V),Xc0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,ms0)}else g(e,_s0);return u(f(e),ys0),u(f(e),hs0)}),N(G00,function(t,n,e){var i=o(zm,t,n);return o(C0(qc0),i,e)});var M00=[0,YD,j00,zm,G00],VD=function t(n,e,i,x){return t.fun(n,e,i,x)},B00=function t(n,e,i){return t.fun(n,e,i)},Km=function t(n,e,i,x){return t.fun(n,e,i,x)},q00=function t(n,e,i){return t.fun(n,e,i)};N(VD,function(t,n,e,i){u(f(e),Ba0),o(f(e),Ua0,qa0);var x=i[1];if(x){g(e,Ha0);var c=x[1],s=function(_0){return u(n,_0)},p=function(_0){return u(t,_0)};R(Rn[1],p,s,e,c),g(e,Xa0)}else g(e,Ya0);u(f(e),Va0),u(f(e),za0),o(f(e),Wa0,Ka0);var y=i[2];function T(_0){return u(n,_0)}function E(_0){return u(t,_0)}R(M00[1],E,T,e,y),u(f(e),Ja0),u(f(e),$a0),o(f(e),Qa0,Za0);var d=i[3];function w(_0){return u(n,_0)}R(Km,function(_0){return u(t,_0)},w,e,d),u(f(e),rc0),u(f(e),ec0),o(f(e),tc0,nc0);var G=i[4];o(f(e),uc0,G),u(f(e),ic0),u(f(e),fc0),o(f(e),oc0,xc0);var A=i[5];o(f(e),ac0,A),u(f(e),cc0),u(f(e),sc0),o(f(e),lc0,vc0);var S=i[6];if(S){g(e,bc0);var M=S[1],K=function(_0){return u(n,_0)},V=function(_0){return u(t,_0)};R($e[24][1],V,K,e,M),g(e,pc0)}else g(e,mc0);u(f(e),_c0),u(f(e),yc0),o(f(e),dc0,hc0);var f0=i[7];function m0(_0){return u(n,_0)}function k0(_0){return u(t,_0)}R($e[19],k0,m0,e,f0),u(f(e),kc0),u(f(e),wc0),o(f(e),Sc0,Ec0);var g0=i[8];if(g0){g(e,gc0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R($e[22][1],l,x0,e,e0),g(e,Fc0)}else g(e,Tc0);u(f(e),Oc0),u(f(e),Ic0),o(f(e),Nc0,Ac0);var c0=i[9];if(c0){g(e,Cc0);var t0=c0[1],o0=function(_0,E0){return g(_0,Ma0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,Pc0)}else g(e,Dc0);return u(f(e),Lc0),u(f(e),Rc0),o(f(e),Gc0,jc0),o(t,e,i[10]),u(f(e),Mc0),u(f(e),Bc0)}),N(B00,function(t,n,e){var i=o(VD,t,n);return o(C0(Ga0),i,e)}),N(Km,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),Na0),u(f(e),Ca0),o(t,e,x[1]),u(f(e),Pa0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Yu[1][1],p,s,e,c),u(f(e),Da0),u(f(e),La0)}u(f(e),Ra0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(qe[31],E,T,e,y),u(f(e),ja0)}),N(q00,function(t,n,e){var i=o(Km,t,n);return o(C0(Aa0),i,e)}),mu(e6r,As,[0,A00,P00,R00,M00,VD,B00,Km,q00]);var zD=function t(n,e,i,x){return t.fun(n,e,i,x)},U00=function t(n,e,i){return t.fun(n,e,i)},Wm=function t(n,e,i,x){return t.fun(n,e,i,x)},H00=function t(n,e,i){return t.fun(n,e,i)};N(zD,function(t,n,e,i){u(f(e),Ta0),o(t,e,i[1]),u(f(e),Oa0);var x=i[2];function c(s){return u(n,s)}return R(Wm,function(s){return u(t,s)},c,e,x),u(f(e),Ia0)}),N(U00,function(t,n,e){var i=o(zD,t,n);return o(C0(Fa0),i,e)}),N(Wm,function(t,n,e,i){u(f(e),fa0),o(f(e),oa0,xa0);var x=i[1];u(f(e),aa0);var c=0;le(function(w,G){w&&u(f(e),ia0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(Yu[35],S,A,e,G),1},c,x),u(f(e),ca0),u(f(e),sa0),u(f(e),va0),o(f(e),ba0,la0);var s=i[2];if(s){g(e,pa0);var p=s[1],y=function(w,G){return g(w,ua0)},T=function(w){return u(t,w)};R(Dr[1],T,y,e,p),g(e,ma0)}else g(e,_a0);u(f(e),ya0),u(f(e),ha0),o(f(e),ka0,da0);var E=i[3];u(f(e),wa0);var d=0;return le(function(w,G){w&&u(f(e),ta0);function A(S){return u(t,S)}return ur(iu[1],A,e,G),1},d,E),u(f(e),Ea0),u(f(e),Sa0),u(f(e),ga0)}),N(H00,function(t,n,e){var i=o(Wm,t,n);return o(C0(na0),i,e)}),mu(n6r,kee,[0,zD,U00,Wm,H00]);function ze(t,n){if(n){var e=n[1],i=u(t,e);return e===i?n:[0,i]}return n}function te(t,n,e,i,x){var c=o(t,n,e);return e===c?i:u(x,c)}function ee(t,n,e,i){var x=u(t,n);return n===x?e:u(i,x)}function _u(t,n){var e=n[1];function i(x){return[0,e,x]}return te(t,e,n[2],n,i)}function Un(t,n){var e=le(function(i,x){var c=u(t,x),s=i[2],p=s||(c!==x?1:0);return[0,[0,c,i[1]],p]},l6r,n);return e[2]?ye(e[1]):n}var KD=Rp(p6r,function(t){var n=NN(t,b6r),e=n[1],i=n[2],x=n[3],c=n[4],s=n[5],p=n[6],y=n[7],T=n[8],E=n[9],d=n[10],w=n[11],G=n[12],A=n[13],S=n[14],M=n[15],K=n[16],V=n[17],f0=n[18],m0=n[19],k0=n[20],g0=n[21],e0=n[22],x0=n[23],l=n[24],c0=n[25],t0=n[26],o0=n[27],w0=n[28],_0=n[29],E0=n[30],U0=n[31],b=n[32],R0=n[33],X=n[34],s0=n[35],hr=n[36],Ar=n[37],or=n[38],W0=n[39],Lr=n[40],Tr=n[41],Hr=n[42],Or=n[43],fr=n[44],Rr=n[45],Wr=n[46],Jr=n[47],ar=n[49],_r=n[50],Ir=n[51],fe=n[52],v0=n[53],P=n[54],L=n[55],Q=n[56],i0=n[57],l0=n[58],S0=n[59],T0=n[60],rr=n[61],L0=n[62],B=n[63],Z=n[65],p0=n[66],b0=n[67],O0=n[68],M0=n[69],er=n[70],yr=n[71],vr=n[72],$0=n[73],Er=n[74],Mr=n[75],Br=n[76],qr=n[77],jr=n[78],$r=n[79],ne=n[80],Qr=n[81],be=n[82],ae=n[83],pe=n[84],oe=n[85],ce=n[86],ge=n[87],q0=n[88],Fr=n[89],_=n[90],k=n[91],I=n[92],U=n[93],Y=n[94],y0=n[95],P0=n[96],I0=n[97],D=n[98],u0=n[99],X0=n[ti],J0=n[R7],ir=n[Ri],Q0=n[s7],F0=n[L7],Sr=n[j7],mr=n[Yt],Cr=n[Zc],sr=n[is],Pr=n[Fv],K0=n[Xt],Ur=n[cf],h0=n[T7],Kr=n[Pn],re=n[t1],xe=n[Av],Re=n[f1],ve=n[A2],Ie=n[z2],Ge=n[Sv],Me=n[uc],an=n[tl],We=n[In],Ae=n[ts],cn=n[X2],rn=n[br],kn=n[IX],vn=n[zn],Ne=n[jt],Je=n[JY],en=n[zw],_n=n[Jg],Cn=n[BH],Hn=n[133],Fn=n[134],vt=n[135],Nt=n[KH],gt=n[137],Zt=n[EH],qt=n[139],Ft=n[dH],Ct=n[141],du=n[142],Wu=n[143],lt=n[iV],ou=n[145],Bu=n[146],K7=n[DX],Yi=n[148],a7=n[eH],Hc=n[150],W7=n[151],Ut=n[152],bt=n[153],B0=n[FH],D0=n[155],Le=n[156],He=n[157],he=n[158],me=n[159],Zn=n[fY],wn=n[XU],ft=n[kh],xt=n[Ln],jn=n[AF],ut=n[$X],dt=n[DY],xn=n[NT],ln=n[IY],it=n[NX],Tt=n[qg],Ti=n[pg],hs=n[LU],Au=n[_Y],Hs=n[$U],Vi=n[bX],Xs=n[mV],Ys=n[uV],nn=n[gO],si=n[RY],Vs=n[sU],c2=n[Ai],M9=n[Yg],B9=n[lS],q9=n[hk],zs=n[gU],s2=n[md],U9=n[nw],H9=n[iY],X9=n[fX],H1=n[OY],vi=n[lX],ab=n[rt],cb=n[HT],sb=n[nI],Y9=n[xY],V9=n[XX],z9=n[hY],vb=n[vH],K9=n[QH],W9=n[NU],J9=n[sY],$9=n[nH],lb=n[eV],Z9=n[WX],X1=n[VH],v2=n[TH],bb=n[AX],pb=n[_H],mb=n[Wg],On=n[A6],Gn=n[yU],Y1=n[yY],_b=n[RX],yb=n[mT],Q9=n[xT],Xc=n[y6],r_=n[cp],l2=n[Cw],hb=n[FU],Yc=n[iA],e_=n[GX],Ks=n[FX],db=n[y8],V1=n[hv],n_=n[BO],ds=n[rk],t_=n[JH],z1=n[fV],u_=n[bU],b2=n[jh],i_=n[qX],Ws=n[ZF],kb=n[hT],Js=n[tH],f_=n[JU],zi=n[lO],Vc=n[BY],$s=n[cH],x_=n[i6],p2=n[s1],m2=n[Vy],_2=n[ST],o_=n[QU],Zs=n[v8],a_=n[WY],y2=n[$2],qL=n[48],K1=n[64];function UL(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return O===r0&&H===$?m:[0,$,r0,m[3],m[4]]}function W1(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+Vc],a,r0),V0=ze(u(a[1][1+V],a),$),Nr=o(a[1][1+t0],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&H===Nr&&$===V0&&O===Gr?m:[0,j0,V0,Nr,Gr]}function HL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function J1(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_r],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function XL(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+p],a,F,$),j0=ze(u(a[1][1+nn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Oi(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Un(o(a[1][1+y],a,H),$),j0=o(a[1][1+s0],a,O);return $===r0&&O===j0?m:[0,r0,H,j0]}function YL(a,F,m){var O=m[4],H=m[2],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,m[3],r0]}function VL(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,r0]}function h2(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+l],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function zL(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=_u(u(a[1][1+zi],a),r0);if($)var V0=$[1],Nr=V0[1],Gr=function(Qt){return[0,[0,Nr,Qt]]},Fe=V0[2],_e=te(u(a[1][1+z1],a),Nr,Fe,$,Gr);else var _e=$;if(H)var Dn=H[1],yn=Dn[1],ot=function(Qt){return[0,[0,yn,Qt]]},pt=Dn[2],kt=te(u(a[1][1+zi],a),yn,pt,H,ot);else var kt=H;var Kn=o(a[1][1+s0],a,O);return r0===j0&&$===_e&&H===kt&&O===Kn?m:[0,j0,_e,kt,Kn]}function $1(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function KL(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Z1(a,F){return F}function WL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Un(u(a[1][1+b],a),$),j0=Un(u(a[1][1+nn],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function wb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=_u(u(a[1][1+R0],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function JL(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+nn],a),$),j0=o(a[1][1+Tr],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,V0]]}function Eb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=Un(u(a[1][1+Ar],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0,m[4]]}function $L(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function ZL(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function d2(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function QL(a,F){return[0,o(a[1][1+Or],a,F),0]}function rR(a,F){var m=u(a[1][1+Hr],a),O=le(function(H,$){var r0=H[1],j0=u(m,$);if(j0){if(j0[2])return[0,Lc(j0,r0),1];var V0=j0[1],Nr=H[2],Gr=Nr||($!==V0?1:0);return[0,[0,V0,r0],Gr]}return[0,r0,1]},v6r,F);return O[2]?ye(O[1]):F}function c_(a,F){return o(a[1][1+Tr],a,F)}function eR(a,F,m){var O=m[2],H=m[1],$=Un(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function k2(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0,m[3]]}function nR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function w2(a,F){return o(a[1][1+nn],a,F)}function tR(a,F){var m=F[2],O=m[2],H=m[1];if(H)var $=function(Nr){return[0,Nr]},r0=H[1],j0=ee(u(a[1][1+nn],a),r0,H,$);else var j0=H;var V0=o(a[1][1+s0],a,O);return H===j0&&O===V0?F:[0,F[1],[0,j0,V0]]}function Q1(a,F){return o(a[1][1+nn],a,F)}function uR(a,F,m){return ur(a[1][1+er],a,F,m)}function Sb(a,F,m){return ur(a[1][1+er],a,F,m)}function iR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+Z],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function gb(a,F,m){return ur(a[1][1+er],a,F,m)}function fR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+b0],a,F,$),j0=ze(u(a[1][1+nn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Fb(a,F,m){switch(m[0]){case 0:var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+O0],a,F),H,m,O);case 1:var $=function(j0){return[1,j0]},r0=m[1];return ee(o(a[1][1+p0],a,F),r0,m,$);default:return m}}function xR(a,F,m){return ur(a[1][1+er],a,F,m)}function Mn(a,F,m){return ur(a[1][1+er],a,F,m)}function s_(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+fe],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function oR(a,F,m){return o(a[1][1+On],a,m)}function aR(a,F,m){return ur(a[1][1+L0],a,F,m)}function rv(a,F,m){var O=m[1];function H(r0){return[0,O,r0]}var $=m[2];return te(o(a[1][1+rr],a,F),O,$,m,H)}function Tb(a,F,m){switch(m[0]){case 0:var O=function(Nr){return[0,Nr]},H=m[1];return ee(o(a[1][1+L],a,F),H,m,O);case 1:var $=function(Nr){return[1,Nr]},r0=m[1];return ee(o(a[1][1+i0],a,F),r0,m,$);default:var j0=function(Nr){return[2,Nr]},V0=m[1];return ee(o(a[1][1+l0],a,F),V0,m,j0)}}function v_(a,F,m){var O=m[2],H=O[4],$=O[3],r0=O[2],j0=O[1],V0=ur(a[1][1+Q],a,F,j0),Nr=ur(a[1][1+P],a,F,r0),Gr=ze(u(a[1][1+nn],a),$);if(H){var Fe=0;if(V0[0]===1){var _e=Nr[2];if(_e[0]===2)var yn=qn(V0[1][2][1],_e[1][1][2][1]);else Fe=1}else Fe=1;if(Fe)var Dn=j0===V0?1:0,yn=Dn&&(r0===Nr?1:0)}else var yn=H;return V0===j0&&Nr===r0&&Gr===$&&H===yn?m:[0,m[1],[0,V0,Nr,Gr,yn]]}function Ob(a,F,m){if(m[0]===0){var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+S0],a,F),H,m,O)}function $(j0){return[1,j0]}var r0=m[1];return ee(o(a[1][1+v0],a,F),r0,m,$)}function cR(a,F,m,O){return ur(a[1][1+J0],a,m,O)}function l_(a,F,m){return o(a[1][1+lt],a,m)}function sR(a,F,m){var O=m[2];switch(O[0]){case 0:var H=O[1],$=H[3],r0=H[2],j0=H[1],V0=Un(o(a[1][1+T0],a,F),j0),Nr=o(a[1][1+x0],a,r0),Gr=o(a[1][1+s0],a,$),Fe=0;if(V0===j0&&Nr===r0&&Gr===$){var _e=O;Fe=1}if(!Fe)var _e=[0,[0,V0,Nr,Gr]];var Ji=_e;break;case 1:var Dn=O[1],yn=Dn[3],ot=Dn[2],pt=Dn[1],kt=Un(o(a[1][1+M0],a,F),pt),Kn=o(a[1][1+x0],a,ot),Qt=o(a[1][1+s0],a,yn),J7=0;if(yn===Qt&&kt===pt&&Kn===ot){var $7=O;J7=1}if(!J7)var $7=[1,[0,kt,Kn,Qt]];var Ji=$7;break;case 2:var E7=O[1],Z7=E7[2],Q7=E7[1],ri=ur(a[1][1+L0],a,F,Q7),ei=o(a[1][1+x0],a,Z7),ni=0;if(Q7===ri&&Z7===ei){var Wi=O;ni=1}if(!ni)var Wi=[2,[0,ri,ei,E7[3]]];var Ji=Wi;break;default:var tv=function(iv){return[3,iv]},uv=O[1],Ji=ee(u(a[1][1+B],a),uv,O,tv)}return O===Ji?m:[0,m[1],Ji]}function b_(a,F){return ur(a[1][1+er],a,0,F)}function Ib(a,F,m){var O=F&&F[1];return ur(a[1][1+er],a,[0,O],m)}function p_(a,F){return o(a[1][1+m2],a,F)}function vR(a,F){return o(a[1][1+m2],a,F)}function m_(a,F){return ur(a[1][1+$s],a,s6r,F)}function Ab(a,F,m){return ur(a[1][1+$s],a,[0,F],m)}function lR(a,F){return ur(a[1][1+$s],a,c6r,F)}function bR(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=ze(u(a[1][1+t0],a),$),Fe=ze(u(a[1][1+t0],a),H),_e=o(a[1][1+s0],a,O);return j0===V0&&$===Gr&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,V0,Nr,Gr,Fe,_e]}function pR(a,F){return o(a[1][1+On],a,F)}function Nb(a,F){return o(a[1][1+lt],a,F)}function mR(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+J0],a),m,H,F,O)}function _R(a,F){switch(F[0]){case 0:var m=function(Gr){return[0,Gr]},O=F[1];return ee(u(a[1][1+be],a),O,F,m);case 1:var H=function(Gr){return[1,Gr]},$=F[1];return ee(u(a[1][1+ae],a),$,F,H);case 2:var r0=function(Gr){return[2,Gr]},j0=F[1];return ee(u(a[1][1+ar],a),j0,F,r0);default:var V0=function(Gr){return[3,Gr]},Nr=F[1];return ee(u(a[1][1+pe],a),Nr,F,V0)}}function __(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),V0=o(a[1][1+nn],a,$);if(H){var Nr=0;if(j0[0]===1){var Gr=V0[2];if(Gr[0]===10)var _e=qn(j0[1][2][1],Gr[1][2][1]);else Nr=1}else Nr=1;if(Nr)var Fe=r0===j0?1:0,_e=Fe&&($===V0?1:0)}else var _e=H;return r0===j0&&$===V0&&H===_e?F:[0,O,[0,j0,V0,_e]];case 1:var Dn=m[2],yn=m[1],ot=o(a[1][1+oe],a,yn),pt=_u(u(a[1][1+me],a),Dn);return yn===ot&&Dn===pt?F:[0,O,[1,ot,pt]];case 2:var kt=m[3],Kn=m[2],Qt=m[1],J7=o(a[1][1+oe],a,Qt),$7=_u(u(a[1][1+me],a),Kn),E7=o(a[1][1+s0],a,kt);return Qt===J7&&Kn===$7&&kt===E7?F:[0,O,[2,J7,$7,E7]];default:var Z7=m[3],Q7=m[2],ri=m[1],ei=o(a[1][1+oe],a,ri),ni=_u(u(a[1][1+me],a),Q7),Wi=o(a[1][1+s0],a,Z7);return ri===ei&&Q7===ni&&Z7===Wi?F:[0,O,[3,ei,ni,Wi]]}}function yR(a,F,m){var O=m[2],H=m[1],$=Un(function(j0){if(j0[0]===0){var V0=j0[1],Nr=o(a[1][1+Qr],a,V0);return V0===Nr?j0:[0,Nr]}var Gr=j0[1],Fe=o(a[1][1+fr],a,Gr);return Gr===Fe?j0:[1,Fe]},H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Cb(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+nn],a,r0),V0=ze(u(a[1][1+b2],a),$),Nr=ze(u(a[1][1+Ws],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function hR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+lt],a,$),j0=o(a[1][1+lt],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function dR(a,F){return o(a[1][1+nn],a,F)}function y_(a,F){return o(a[1][1+ar],a,F)}function kR(a,F){return o(a[1][1+lt],a,F)}function E2(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+y0],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+D],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+P0],a),j0,F,r0)}}function wR(a,F,m){var O=m[1],H=ur(a[1][1+u0],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function ER(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+I0],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function SR(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function Pb(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function gR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Q0],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function FR(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Db(a,F){return o(a[1][1+ve],a,F)}function TR(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+K0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Ur],a),$,F,H)}function OR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Pr],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function ku(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+h0],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function wu(a,F){return o(a[1][1+Ur],a,F)}function Ii(a,F){return o(a[1][1+sr],a,F)}function w7(a,F){return o(a[1][1+h0],a,F)}function Ki(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+ve],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+xe],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+Re],a),j0,F,r0)}}function ev(a,F){var m=F[2],O=F[1],H=o(a[1][1+nn],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function Lb(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+s0],a,O);if(H){var r0=H[1],j0=o(a[1][1+nn],a,r0);return r0===j0&&O===$?m:[0,[0,j0],$]}return O===$?m:[0,0,$]}function nv(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return te(u(a[1][1+Ge],a),O,$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return te(u(a[1][1+Kr],a),O,j0,F,r0);case 2:var V0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return te(u(a[1][1+re],a),O,Nr,F,V0);case 3:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+F0],a),Fe,F,Gr);default:return F}}function Rb(a,F){var m=F[2],O=Un(u(a[1][1+We],a),m);return m===O?F:[0,F[1],O]}function jb(a,F,m){return ur(a[1][1+J0],a,F,m)}function IR(a,F,m){return ur(a[1][1+re],a,F,m)}function Sne(a,F){if(F[0]===0){var m=F[1],O=function(V0){return[0,m,V0]},H=F[2];return te(u(a[1][1+Ae],a),m,H,F,O)}var $=F[1];function r0(V0){return[1,$,V0]}var j0=F[2];return te(u(a[1][1+cn],a),$,j0,F,r0)}function gne(a,F){return o(a[1][1+sr],a,F)}function Fne(a,F){return o(a[1][1+h0],a,F)}function Tne(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+vn],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+kn],a),$,F,H)}function One(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Ne],a,H),r0=ze(u(a[1][1+rn],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Ine(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Ane(a,F){if(F[0]===0){var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+Je],a),O,F,m)}var H=F[1],$=H[1];function r0(V0){return[1,[0,$,V0]]}var j0=H[2];return te(u(a[1][1+Sr],a),$,j0,F,r0)}function Nne(a,F){var m=F[2][1],O=o(a[1][1+Ie],a,m);return m===O?F:[0,F[1],[0,O]]}function Cne(a,F){var m=F[2],O=m[3],H=m[1],$=o(a[1][1+Ie],a,H),r0=Un(u(a[1][1+Cr],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,m[2],r0]]}function Pne(a,F,m){var O=m[4],H=m[3],$=o(a[1][1+an],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],m[2],$,r0]}function Dne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+mr],a,r0),V0=ze(u(a[1][1+Me],a),$),Nr=o(a[1][1+an],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function Lne(a,F,m,O){var H=2<=F?o(a[1][1+L0],a,a6r):u(a[1][1+Vc],a);return u(H,O)}function Rne(a,F,m){var O=2<=F?o(a[1][1+L0],a,o6r):u(a[1][1+Vc],a);return u(O,m)}function jne(a,F,m){var O=m[3],H=m[2],$=m[1],r0=0;if(F){var j0=0;if($)switch($[1]){case 2:break;case 0:r0=1,j0=2;break;default:j0=1}var V0=0;switch(j0){case 2:V0=1;break;case 0:if(2<=F){var Nr=0,Gr=0;V0=1}break}if(!V0)var Nr=1,Gr=0}else r0=1;if(r0)var Nr=1,Gr=1;var Fe=o(Gr?a[1][1+m0]:a[1][1+lt],a,O);if(H)var _e=Nr?u(a[1][1+Vc],a):o(a[1][1+L0],a,x6r),Dn=function(ot){return[0,ot]},yn=ee(_e,H[1],H,Dn);else var yn=H;return H===yn&&O===Fe?m:[0,$,yn,Fe]}function Gne(a,F,m){if(m[0]===0){var O=m[1],H=Un(o(a[1][1+gt],a,F),O);return O===H?m:[0,H]}var $=m[1],r0=$[1];function j0(Nr){return[1,[0,r0,Nr]]}var V0=$[2];return te(o(a[1][1+Nt],a,F),r0,V0,m,j0)}function Mne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[1],j0=ze(o(a[1][1+vt],a,r0),H),V0=ze(o(a[1][1+Zt],a,r0),$),Nr=o(a[1][1+s0],a,O);return H===j0&&$===V0&&O===Nr?m:[0,r0,m[2],V0,j0,Nr]}function Bne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),V0=ur(a[1][1+du],a,H!==0?1:0,$),Nr=u(a[1][1+Wu],a),Gr=ze(function(_e){return _u(Nr,_e)},H),Fe=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Gr&&O===Fe?m:[0,j0,V0,Gr,Fe]}function qne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Or],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Une(a,F,m){return o(a[1][1+Or],a,m)}function Hne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Xne(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Yne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Vne(a,F,m){return ur(a[1][1+Hn],a,F,m)}function zne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=u(a[1][1+ou],a),Fe=Un(function(yn){return _u(Gr,yn)},$),_e=_u(u(a[1][1+qr],a),H),Dn=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Fe===$&&_e===H&&Dn===O?m:[0,V0,Nr,Fe,_e,Dn]}function Kne(a,F){return o(a[1][1+k0],a,F)}function Wne(a,F){return o(a[1][1+k0],a,F)}function Jne(a,F){return o(a[1][1+lt],a,F)}function $ne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Zne(a,F,m){return m}function Qne(a,F){return ur(a[1][1+L0],a,f6r,F)}function rte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+zi],a),m,H,F,O)}function ete(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+xt],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function nte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=ze(u(a[1][1+nn],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function tte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function ute(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=Un(u(a[1][1+He],a),$),V0=ze(u(a[1][1+bt],a),H),Nr=ze(u(a[1][1+W7],a),r0),Gr=o(a[1][1+s0],a,O);return $===j0&&H===V0&&O===Gr&&r0===Nr?F:[0,F[1],[0,Nr,j0,V0,Gr]]}function ite(a,F,m){var O=m[9],H=m[8],$=m[7],r0=m[6],j0=m[3],V0=m[2],Nr=m[1],Gr=ze(u(a[1][1+he],a),Nr),Fe=o(a[1][1+B0],a,V0),_e=o(a[1][1+x0],a,$),Dn=o(a[1][1+ft],a,j0),yn=ze(u(a[1][1+Ir],a),r0),ot=ze(u(a[1][1+V],a),H),pt=o(a[1][1+s0],a,O);return Nr===Gr&&V0===Fe&&j0===Dn&&r0===yn&&$===_e&&H===ot&&O===pt?m:[0,Gr,Fe,Dn,m[4],m[5],yn,_e,ot,pt,m[10]]}function fte(a,F,m){return ur(a[1][1+jn],a,F,m)}function xte(a,F,m){return ur(a[1][1+me],a,F,m)}function ote(a,F,m){return ur(a[1][1+jn],a,F,m)}function ate(a,F){if(F[0]===0)return F;var m=F[1],O=o(a[1][1+l],a,m);return O===m?F:[1,O]}function cte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return ee(u(a[1][1+t0],a),H,F,O)}function ste(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Ze){return[0,O,[0,Ze]]},$=m[1];return ee(u(a[1][1+s0],a),$,F,H);case 1:var r0=function(Ze){return[0,O,[1,Ze]]},j0=m[1];return ee(u(a[1][1+s0],a),j0,F,r0);case 2:var V0=function(Ze){return[0,O,[2,Ze]]},Nr=m[1];return ee(u(a[1][1+s0],a),Nr,F,V0);case 3:var Gr=function(Ze){return[0,O,[3,Ze]]},Fe=m[1];return ee(u(a[1][1+s0],a),Fe,F,Gr);case 4:var _e=function(Ze){return[0,O,[4,Ze]]},Dn=m[1];return ee(u(a[1][1+s0],a),Dn,F,_e);case 5:var yn=function(Ze){return[0,O,[5,Ze]]},ot=m[1];return ee(u(a[1][1+s0],a),ot,F,yn);case 6:var pt=function(Ze){return[0,O,[6,Ze]]},kt=m[1];return ee(u(a[1][1+s0],a),kt,F,pt);case 7:var Kn=function(Ze){return[0,O,[7,Ze]]},Qt=m[1];return ee(u(a[1][1+s0],a),Qt,F,Kn);case 8:var J7=function(Ze){return[0,O,[8,Ze]]},$7=m[1];return ee(u(a[1][1+s0],a),$7,F,J7);case 9:var E7=function(Ze){return[0,O,[9,Ze]]},Z7=m[1];return ee(u(a[1][1+s0],a),Z7,F,E7);case 10:var Q7=function(Ze){return[0,O,[10,Ze]]},ri=m[1];return ee(u(a[1][1+s0],a),ri,F,Q7);case 11:var ei=function(Ze){return[0,O,[11,Ze]]},ni=m[1];return ee(u(a[1][1+k],a),ni,F,ei);case 12:var Wi=function(Ze){return[0,O,[12,Ze]]},tv=m[1];return te(u(a[1][1+a7],a),O,tv,F,Wi);case 13:var uv=function(Ze){return[0,O,[13,Ze]]},Ji=m[1];return te(u(a[1][1+qr],a),O,Ji,F,uv);case 14:var iv=function(Ze){return[0,O,[14,Ze]]},Gb=m[1];return te(u(a[1][1+_n],a),O,Gb,F,iv);case 15:var Mb=function(Ze){return[0,O,[15,Ze]]},Bb=m[1];return ee(u(a[1][1+Zs],a),Bb,F,Mb);case 16:var qb=function(Ze){return[0,O,[16,Ze]]},Ub=m[1];return te(u(a[1][1+ou],a),O,Ub,F,qb);case 17:var Hb=function(Ze){return[0,O,[17,Ze]]},Xb=m[1];return te(u(a[1][1+Fn],a),O,Xb,F,Hb);case 18:var Yb=function(Ze){return[0,O,[18,Ze]]},Vb=m[1];return te(u(a[1][1+vr],a),O,Vb,F,Yb);case 19:var zb=function(Ze){return[0,O,[19,Ze]]},Kb=m[1];return te(u(a[1][1+d],a),O,Kb,F,zb);case 20:var Wb=function(Ze){return[0,O,[20,Ze]]},Jb=m[1];return te(u(a[1][1+en],a),O,Jb,F,Wb);case 21:var $b=function(Ze){return[0,O,[21,Ze]]},Zb=m[1];return ee(u(a[1][1+G],a),Zb,F,$b);case 22:var Qb=function(Ze){return[0,O,[22,Ze]]},r4=m[1];return ee(u(a[1][1+o0],a),r4,F,Qb);case 23:var e4=function(Ze){return[0,O,[23,Ze]]},n4=m[1];return te(u(a[1][1+Lr],a),O,n4,F,e4);case 24:var t4=function(Ze){return[0,O,[24,Ze]]},u4=m[1];return te(u(a[1][1+_],a),O,u4,F,t4);case 25:var i4=function(Ze){return[0,O,[25,Ze]]},f4=m[1];return te(u(a[1][1+p2],a),O,f4,F,i4);default:var x4=function(Ze){return[0,O,[26,Ze]]},o4=m[1];return te(u(a[1][1+f_],a),O,o4,F,x4)}}function vte(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],V0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Un(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,V0,Nr,Gr],Fe]}function lte(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],V0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Un(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,V0,Nr,Gr],Fe]}function bte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function pte(a,F){var m=F[2],O=F[1],H=Un(u(a[1][1+t0],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function mte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K],a,H),r0=o(a[1][1+S],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function _te(a,F){return o(a[1][1+lt],a,F)}function yte(a,F){return o(a[1][1+lt],a,F)}function hte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+M],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+A],a),$,F,H)}function dte(a,F){var m=F[2],O=F[1],H=o(a[1][1+K],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function kte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function wte(a,F,m){var O=m[2],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],H]}function Ete(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Ste(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function gte(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Fte(a,F,m){var O=m[1],H=ur(a[1][1+Fn],a,F,O);return H===O?m:[0,H,m[2]]}function Tte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+t0],a,$),j0=o(a[1][1+t0],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Ote(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+K7],a,$),j0=ze(u(a[1][1+e0],a),H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Ite(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+x0],a,$),V0=o(a[1][1+c],a,H),Nr=ze(u(a[1][1+t0],a),O),Gr=o(a[1][1+Vc],a,r0);return Gr===r0&&j0===$&&V0===H&&Nr===O?F:[0,F[1],[0,Gr,j0,V0,Nr]]}function Ate(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+f0],a),H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Nte(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+t0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Cte(a,F){return ze(u(a[1][1+s],a),F)}function Pte(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Dte(a,F){return o(a[1][1+lt],a,F)}function Lte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K7],a,H),r0=o(a[1][1+Y],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Rte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+m0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Bu],a),$,F,H)}function jte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=u(a[1][1+ou],a),j0=Un(function(Gr){return _u(r0,Gr)},H),V0=_u(u(a[1][1+qr],a),$),Nr=o(a[1][1+s0],a,O);return j0===H&&V0===$&&O===Nr?m:[0,V0,j0,Nr]}function Gte(a,F,m){var O=m[4],H=m[3],$=Un(function(j0){switch(j0[0]){case 0:var V0=function(Kn){return[0,Kn]},Nr=j0[1];return ee(u(a[1][1+ne],a),Nr,j0,V0);case 1:var Gr=function(Kn){return[1,Kn]},Fe=j0[1];return ee(u(a[1][1+jr],a),Fe,j0,Gr);case 2:var _e=function(Kn){return[2,Kn]},Dn=j0[1];return ee(u(a[1][1+ge],a),Dn,j0,_e);case 3:var yn=function(Kn){return[3,Kn]},ot=j0[1];return ee(u(a[1][1+q0],a),ot,j0,yn);default:var pt=function(Kn){return[4,Kn]},kt=j0[1];return ee(u(a[1][1+ce],a),kt,j0,pt)}},H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],m[2],$,r0]}function Mte(a,F){var m=F[2],O=m[3],H=m[1],$=H[2],r0=H[1],j0=ur(a[1][1+a7],a,r0,$),V0=o(a[1][1+s0],a,O);return $===j0&&O===V0?F:[0,F[1],[0,[0,r0,j0],m[2],V0]]}function Bte(a,F){var m=F[2],O=m[6],H=m[2],$=m[1],r0=o(a[1][1+lt],a,$),j0=o(a[1][1+t0],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,m[3],m[4],m[5],V0]]}function qte(a,F){var m=F[2],O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+t0],a,r0),V0=o(a[1][1+t0],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,m[1],j0,V0,m[4],Nr,Gr]]}function Ute(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?F:[0,F[1],[0,$,r0]]}function Hte(a,F){var m=F[2],O=m[8],H=m[7],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),V0=o(a[1][1+$r],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,j0,V0,m[3],m[4],m[5],m[6],Nr,Gr]]}function Xte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Yte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Vte(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+t0],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+Br],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+Mr],a),j0,F,r0)}}function zte(a,F){return o(a[1][1+lt],a,F)}function Kte(a,F,m){var O=m[4],H=m[3],$=m[2],r0=$[2],j0=r0[4],V0=r0[3],Nr=r0[2],Gr=r0[1],Fe=m[1],_e=ze(u(a[1][1+Hc],a),Gr),Dn=Un(u(a[1][1+D0],a),Nr),yn=ze(u(a[1][1+Ut],a),V0),ot=o(a[1][1+t0],a,H),pt=ze(u(a[1][1+V],a),Fe),kt=o(a[1][1+s0],a,O),Kn=o(a[1][1+s0],a,j0);return Dn===Nr&&yn===V0&&ot===H&&pt===Fe&&kt===O&&Kn===j0&&_e===Gr?m:[0,pt,[0,$[1],[0,_e,Dn,yn,Kn]],ot,kt]}function Wte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Jte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+D0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function $te(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,O),r0=ze(u(a[1][1+lt],a),H);return $===O&&r0===H?F:[0,F[1],[0,r0,$,m[3]]]}function Zte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function Qte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Ti],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function rue(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=ze(u(a[1][1+ut],a),j0),Nr=ze(u(a[1][1+_r],a),r0),Gr=ze(u(a[1][1+nn],a),$),Fe=o(a[1][1+Or],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,V0,Nr,Gr,Fe,_e]}function eue(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function nue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+it],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Tt],a),$,F,H)}function tue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+xn],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,m[4],Gr]}function uue(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function iue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Hs],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Vi],a),$,F,H)}function fue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+hs],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,m[4],Gr]}function xue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+nn],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Rr],a),$,F,H)}function oue(a,F,m){var O=m[3],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,m[2],r0]}function aue(a,F){if(F[0]===0){var m=F[1],O=Un(u(a[1][1+Vs],a),m);return m===O?F:[0,O]}var H=F[1],$=o(a[1][1+q9],a,H);return H===$?F:[1,$]}function cue(a,F){var m=F[2],O=ze(u(a[1][1+lt],a),m);return m===O?F:[0,F[1],O]}function sue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+lt],a,H),r0=ze(u(a[1][1+lt],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function vue(a,F,m){var O=m[5],H=m[2],$=m[1],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Or],a),$),V0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===V0?m:[0,j0,r0,m[3],m[4],V0]}function lue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Or],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function bue(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+M9],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?m:[0,m[1],$,r0]}function pue(a,F){return o(a[1][1+lt],a,F)}function mue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function _ue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function yue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function hue(a,F){var m=F[2][1],O=o(a[1][1+H1],a,m);return m===O?F:[0,F[1],[0,O]]}function due(a,F){var m=F[3],O=F[1],H=Un(u(a[1][1+vi],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],$]}function kue(a,F){var m=F[4],O=F[1];if(O[0]===0)var H=function(_e){return[0,_e]},$=O[1],r0=u(a[1][1+vi],a),Gr=ee(function(_e){return Un(r0,_e)},$,O,H);else var j0=function(_e){return[1,_e]},V0=O[1],Nr=u(a[1][1+s2],a),Gr=ee(function(_e){return Un(Nr,_e)},V0,O,j0);var Fe=o(a[1][1+s0],a,m);return O===Gr&&m===Fe?F:[0,Gr,F[2],F[3],Fe]}function wue(a,F){var m=F[4],O=F[1],H=Un(u(a[1][1+H9],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function Eue(a,F){var m=F[4],O=F[1],H=Un(u(a[1][1+cb],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function Sue(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return ee(u(a[1][1+sb],a),$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return ee(u(a[1][1+X9],a),j0,F,r0);case 2:var V0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return ee(u(a[1][1+U9],a),Nr,F,V0);default:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+zs],a),Fe,F,Gr)}}function gue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,i6r,$),j0=o(a[1][1+Y9],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Fue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Tue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Or],a,$),j0=o(a[1][1+_r],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Oue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,u6r,$),j0=o(a[1][1+l],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Iue(a,F,m){return ur(a[1][1+c0],a,F,m)}function Aue(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Nue(a,F,m){var O=m[4],H=m[2],$=_u(u(a[1][1+zi],a),H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],$,m[3],r0]}function Cue(a,F,m){return ur(a[1][1+Hn],a,F,m)}function Pue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+he],a,r0),V0=o(a[1][1+l],a,$),Nr=ze(u(a[1][1+Ir],a),H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?m:[0,j0,V0,Nr,Gr]}function Due(a,F){switch(F[0]){case 0:var m=F[1],O=m[2],H=m[1],$=ur(a[1][1+vb],a,H,O);return $===O?F:[0,[0,H,$]];case 1:var r0=F[1],j0=r0[2],V0=r0[1],Nr=ur(a[1][1+lb],a,V0,j0);return Nr===j0?F:[1,[0,V0,Nr]];case 2:var Gr=F[1],Fe=Gr[2],_e=Gr[1],Dn=ur(a[1][1+v2],a,_e,Fe);return Dn===Fe?F:[2,[0,_e,Dn]];case 3:var yn=F[1],ot=o(a[1][1+t0],a,yn);return ot===yn?F:[3,ot];case 4:var pt=F[1],kt=pt[2],Kn=pt[1],Qt=ur(a[1][1+c0],a,Kn,kt);return Qt===kt?F:[4,[0,Kn,Qt]];case 5:var J7=F[1],$7=J7[2],E7=J7[1],Z7=ur(a[1][1+Er],a,E7,$7);return Z7===$7?F:[5,[0,E7,Z7]];default:var Q7=F[1],ri=Q7[2],ei=Q7[1],ni=ur(a[1][1+Hn],a,ei,ri);return ni===ri?F:[6,[0,ei,ni]]}}function Lue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Z9],a),$),V0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===V0?m:[0,m[1],j0,r0,m[4],V0]}function Rue(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],V0=m[2],Nr=m[1],Gr=o(a[1][1+hb],a,Nr),Fe=ze(u(a[1][1+V],a),V0),_e=_u(u(a[1][1+qr],a),j0),Dn=u(a[1][1+ou],a),yn=ze(function(Qt){return _u(Dn,Qt)},r0),ot=u(a[1][1+ou],a),pt=Un(function(Qt){return _u(ot,Qt)},$),kt=ze(u(a[1][1+l2],a),H),Kn=o(a[1][1+s0],a,O);return Gr===Nr&&Fe===V0&&_e===j0&&yn===r0&&pt===$&&kt===H&&Kn===O?m:[0,Gr,Fe,_e,yn,pt,kt,Kn]}function jue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Gue(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Mue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+nn],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function Bue(a,F,m){return m}function que(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+ar],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,V0,Nr,Gr,m[4],Fe,_e]}function Uue(a,F){if(typeof F=="number")return F;var m=F[1],O=o(a[1][1+nn],a,m);return m===O?F:[0,O]}function Hue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+oe],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,V0,Nr,Gr,m[4],Fe,_e]}function Xue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+oe],a,r0),V0=_u(u(a[1][1+me],a),$),Nr=Un(u(a[1][1+db],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,m[1],j0,V0,m[4],Nr,Gr]}function Yue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+m0],a,H),r0=ze(u(a[1][1+e0],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Vue(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+r_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function zue(a,F){switch(F[0]){case 0:var m=F[1],O=m[1],H=function(yn){return[0,[0,O,yn]]},$=m[2];return te(u(a[1][1+Xc],a),O,$,F,H);case 1:var r0=F[1],j0=r0[1],V0=function(yn){return[1,[0,j0,yn]]},Nr=r0[2];return te(u(a[1][1+yb],a),j0,Nr,F,V0);default:var Gr=F[1],Fe=Gr[1],_e=function(yn){return[2,[0,Fe,yn]]},Dn=Gr[2];return te(u(a[1][1+Q9],a),Fe,Dn,F,_e)}}function Kue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Wue(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+Ks],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Jue(a,F){return ur(a[1][1+L0],a,t6r,F)}function $ue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=ze(u(a[1][1+e0],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Zue(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],V0=m[2],Nr=m[1],Gr=ze(u(a[1][1+hb],a),Nr),Fe=o(a[1][1+n_],a,V0),_e=ze(u(a[1][1+V],a),j0),Dn=u(a[1][1+Yc],a),yn=ze(function(Kn){return _u(Dn,Kn)},r0),ot=ze(u(a[1][1+l2],a),$),pt=Un(u(a[1][1+db],a),H),kt=o(a[1][1+s0],a,O);return Nr===Gr&&V0===Fe&&r0===yn&&$===ot&&H===pt&&O===kt&&j0===_e?m:[0,Gr,Fe,_e,yn,ot,pt,kt]}function Que(a,F,m){return ur(a[1][1+ds],a,F,m)}function r7e(a,F,m){return ur(a[1][1+ds],a,F,m)}function e7e(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+t_],a),$),j0=o(a[1][1+u_],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function n7e(a,F){return _u(u(a[1][1+zi],a),F)}function t7e(a,F){if(F[0]===0){var m=F[1],O=o(a[1][1+t0],a,m);return O===m?F:[0,O]}var H=F[1],$=H[2][1],r0=o(a[1][1+s0],a,$);return $===r0?F:[1,[0,H[1],[0,r0]]]}function u7e(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+i_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function i7e(a,F,m){var O=m[1],H=ur(a[1][1+kb],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function f7e(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+Ys],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function x7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+nn],a,r0),V0=ze(u(a[1][1+b2],a),$),Nr=o(a[1][1+Ws],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function o7e(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function a7e(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Tr],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function c7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function s7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+m2],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function v7e(a,F,m){return ur(a[1][1+jn],a,F,m)}function l7e(a,F){switch(F[0]){case 0:var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+nn],a),O,F,m);case 1:var H=function(r0){return[1,r0]},$=F[1];return ee(u(a[1][1+Rr],a),$,F,H);default:return F}}function b7e(a,F,m){var O=m[2],H=m[1],$=Un(u(a[1][1+a_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function p7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Ue){return[0,O,[0,Ue]]},$=m[1];return te(u(a[1][1+y2],a),O,$,F,H);case 1:var r0=function(Ue){return[0,O,[1,Ue]]},j0=m[1];return te(u(a[1][1+o_],a),O,j0,F,r0);case 2:var V0=function(Ue){return[0,O,[2,Ue]]},Nr=m[1];return te(u(a[1][1+_2],a),O,Nr,F,V0);case 3:var Gr=function(Ue){return[0,O,[3,Ue]]},Fe=m[1];return te(u(a[1][1+x_],a),O,Fe,F,Gr);case 4:var _e=function(Ue){return[0,O,[4,Ue]]},Dn=m[1];return te(u(a[1][1+kb],a),O,Dn,F,_e);case 5:var yn=function(Ue){return[0,O,[5,Ue]]},ot=m[1];return te(u(a[1][1+e_],a),O,ot,F,yn);case 6:var pt=function(Ue){return[0,O,[6,Ue]]},kt=m[1];return te(u(a[1][1+Gn],a),O,kt,F,pt);case 7:var Kn=function(Ue){return[0,O,[7,Ue]]},Qt=m[1];return te(u(a[1][1+mb],a),O,Qt,F,Kn);case 8:var J7=function(Ue){return[0,O,[8,Ue]]},$7=m[1];return te(u(a[1][1+Zn],a),O,$7,F,J7);case 9:var E7=function(Ue){return[0,O,[9,Ue]]},Z7=m[1];return te(u(a[1][1+Yi],a),O,Z7,F,E7);case 10:var Q7=function(Ue){return[0,O,[10,Ue]]},ri=m[1];return ee(u(a[1][1+lt],a),ri,F,Q7);case 11:var ei=function(Ue){return[0,O,[11,Ue]]},ni=m[1];return ee(o(a[1][1+Ft],a,O),ni,F,ei);case 12:var Wi=function(Ue){return[0,O,[12,Ue]]},tv=m[1];return te(u(a[1][1+Ge],a),O,tv,F,Wi);case 13:var uv=function(Ue){return[0,O,[13,Ue]]},Ji=m[1];return te(u(a[1][1+Kr],a),O,Ji,F,uv);case 14:var iv=function(Ue){return[0,O,[14,Ue]]},Gb=m[1];return te(u(a[1][1+J0],a),O,Gb,F,iv);case 15:var Mb=function(Ue){return[0,O,[15,Ue]]},Bb=m[1];return te(u(a[1][1+X0],a),O,Bb,F,Mb);case 16:var qb=function(Ue){return[0,O,[16,Ue]]},Ub=m[1];return te(u(a[1][1+u0],a),O,Ub,F,qb);case 17:var Hb=function(Ue){return[0,O,[17,Ue]]},Xb=m[1];return te(u(a[1][1+U],a),O,Xb,F,Hb);case 18:var Yb=function(Ue){return[0,O,[18,Ue]]},Vb=m[1];return te(u(a[1][1+I],a),O,Vb,F,Yb);case 19:var zb=function(Ue){return[0,O,[19,Ue]]},Kb=m[1];return te(u(a[1][1+Fr],a),O,Kb,F,zb);case 20:var Wb=function(Ue){return[0,O,[20,Ue]]},Jb=m[1];return ee(o(a[1][1+$0],a,O),Jb,F,Wb);case 21:var $b=function(Ue){return[0,O,[21,Ue]]},Zb=m[1];return te(u(a[1][1+yr],a),O,Zb,F,$b);case 22:var Qb=function(Ue){return[0,O,[22,Ue]]},r4=m[1];return te(u(a[1][1+Wr],a),O,r4,F,Qb);case 23:var e4=function(Ue){return[0,O,[23,Ue]]},n4=m[1];return te(u(a[1][1+W0],a),O,n4,F,e4);case 24:var t4=function(Ue){return[0,O,[24,Ue]]},u4=m[1];return te(u(a[1][1+X],a),O,u4,F,t4);case 25:var i4=function(Ue){return[0,O,[25,Ue]]},f4=m[1];return te(u(a[1][1+R0],a),O,f4,F,i4);case 26:var x4=function(Ue){return[0,O,[26,Ue]]},o4=m[1];return te(u(a[1][1+U0],a),O,o4,F,x4);case 27:var Ze=function(Ue){return[0,O,[27,Ue]]},AR=m[1];return te(u(a[1][1+g0],a),O,AR,F,Ze);case 28:var NR=function(Ue){return[0,O,[28,Ue]]},CR=m[1];return te(u(a[1][1+w],a),O,CR,F,NR);case 29:var PR=function(Ue){return[0,O,[29,Ue]]},DR=m[1];return te(u(a[1][1+E],a),O,DR,F,PR);default:var LR=function(Ue){return[0,O,[30,Ue]]},RR=m[1];return te(u(a[1][1+e],a),O,RR,F,LR)}}function m7e(a,F){var m=F[2],O=F[1],H=Un(u(a[1][1+Y1],a),O),$=Un(u(a[1][1+Y1],a),m);return O===H&&m===$?F:[0,H,$,F[3]]}var _7e=8;function y7e(a,F){return F}function h7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Oe){return[0,O,[0,Oe]]},$=m[1];return te(u(a[1][1+zi],a),O,$,F,H);case 1:var r0=function(Oe){return[0,O,[1,Oe]]},j0=m[1];return te(u(a[1][1+Js],a),O,j0,F,r0);case 2:var V0=function(Oe){return[0,O,[2,Oe]]},Nr=m[1];return te(u(a[1][1+V1],a),O,Nr,F,V0);case 3:var Gr=function(Oe){return[0,O,[3,Oe]]},Fe=m[1];return te(u(a[1][1+pb],a),O,Fe,F,Gr);case 4:var _e=function(Oe){return[0,O,[4,Oe]]},Dn=m[1];return te(u(a[1][1+bb],a),O,Dn,F,_e);case 5:var yn=function(Oe){return[0,O,[5,Oe]]},ot=m[1];return te(u(a[1][1+v2],a),O,ot,F,yn);case 6:var pt=function(Oe){return[0,O,[6,Oe]]},kt=m[1];return te(u(a[1][1+X1],a),O,kt,F,pt);case 7:var Kn=function(Oe){return[0,O,[7,Oe]]},Qt=m[1];return te(u(a[1][1+lb],a),O,Qt,F,Kn);case 8:var J7=function(Oe){return[0,O,[8,Oe]]},$7=m[1];return te(u(a[1][1+$9],a),O,$7,F,J7);case 9:var E7=function(Oe){return[0,O,[9,Oe]]},Z7=m[1];return te(u(a[1][1+J9],a),O,Z7,F,E7);case 10:var Q7=function(Oe){return[0,O,[10,Oe]]},ri=m[1];return te(u(a[1][1+W9],a),O,ri,F,Q7);case 11:var ei=function(Oe){return[0,O,[11,Oe]]},ni=m[1];return te(u(a[1][1+K9],a),O,ni,F,ei);case 12:var Wi=function(Oe){return[0,O,[33,Oe]]},tv=m[1];return te(u(a[1][1+Er],a),O,tv,F,Wi);case 13:var uv=function(Oe){return[0,O,[13,Oe]]},Ji=m[1];return te(u(a[1][1+vb],a),O,Ji,F,uv);case 14:var iv=function(Oe){return[0,O,[14,Oe]]},Gb=m[1];return te(u(a[1][1+z9],a),O,Gb,F,iv);case 15:var Mb=function(Oe){return[0,O,[15,Oe]]},Bb=m[1];return te(u(a[1][1+V9],a),O,Bb,F,Mb);case 16:var qb=function(Oe){return[0,O,[16,Oe]]},Ub=m[1];return te(u(a[1][1+ab],a),O,Ub,F,qb);case 17:var Hb=function(Oe){return[0,O,[17,Oe]]},Xb=m[1];return te(u(a[1][1+B9],a),O,Xb,F,Hb);case 18:var Yb=function(Oe){return[0,O,[18,Oe]]},Vb=m[1];return te(u(a[1][1+c2],a),O,Vb,F,Yb);case 19:var zb=function(Oe){return[0,O,[19,Oe]]},Kb=m[1];return te(u(a[1][1+Xs],a),O,Kb,F,zb);case 20:var Wb=function(Oe){return[0,O,[20,Oe]]},Jb=m[1];return te(u(a[1][1+dt],a),O,Jb,F,Wb);case 21:var $b=function(Oe){return[0,O,[21,Oe]]},Zb=m[1];return te(u(a[1][1+Au],a),O,Zb,F,$b);case 22:var Qb=function(Oe){return[0,O,[22,Oe]]},r4=m[1];return te(u(a[1][1+ln],a),O,r4,F,Qb);case 23:var e4=function(Oe){return[0,O,[23,Oe]]},n4=m[1];return te(u(a[1][1+wn],a),O,n4,F,e4);case 24:var t4=function(Oe){return[0,O,[24,Oe]]},u4=m[1];return te(u(a[1][1+Ct],a),O,u4,F,t4);case 25:var i4=function(Oe){return[0,O,[25,Oe]]},f4=m[1];return te(u(a[1][1+qt],a),O,f4,F,i4);case 26:var x4=function(Oe){return[0,O,[26,Oe]]},o4=m[1];return te(u(a[1][1+Cn],a),O,o4,F,x4);case 27:var Ze=function(Oe){return[0,O,[27,Oe]]},AR=m[1];return te(u(a[1][1+ir],a),O,AR,F,Ze);case 28:var NR=function(Oe){return[0,O,[28,Oe]]},CR=m[1];return te(u(a[1][1+Jr],a),O,CR,F,NR);case 29:var PR=function(Oe){return[0,O,[29,Oe]]},DR=m[1];return te(u(a[1][1+or],a),O,DR,F,PR);case 30:var LR=function(Oe){return[0,O,[30,Oe]]},RR=m[1];return te(u(a[1][1+E0],a),O,RR,F,LR);case 31:var Ue=function(Oe){return[0,O,[31,Oe]]},d7e=m[1];return te(u(a[1][1+w0],a),O,d7e,F,Ue);case 32:var k7e=function(Oe){return[0,O,[32,Oe]]},w7e=m[1];return te(u(a[1][1+c0],a),O,w7e,F,k7e);case 33:var E7e=function(Oe){return[0,O,[33,Oe]]},S7e=m[1];return te(u(a[1][1+Er],a),O,S7e,F,E7e);case 34:var g7e=function(Oe){return[0,O,[34,Oe]]},F7e=m[1];return te(u(a[1][1+T],a),O,F7e,F,g7e);case 35:var T7e=function(Oe){return[0,O,[35,Oe]]},O7e=m[1];return te(u(a[1][1+x],a),O,O7e,F,T7e);default:var I7e=function(Oe){return[0,O,[36,Oe]]},A7e=m[1];return te(u(a[1][1+i],a),O,A7e,F,I7e)}}return jN(t,[0,qL,function(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_0],a,$),j0=o(a[1][1+s0],a,H),V0=Un(u(a[1][1+Y1],a),O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,V0]]},Or,h7e,Y1,y7e,s0,_7e,ze,hr,hr,m7e,nn,p7e,y2,b7e,a_,l7e,o_,v7e,_2,s7e,x_,c7e,zi,a7e,Js,o7e,kb,x7e,Ws,f7e,$0,i7e,b2,u7e,i_,t7e,u_,n7e,z1,e7e,V1,r7e,e_,Que,ds,Zue,Yc,$ue,hb,Jue,n_,Wue,db,Kue,Ks,zue,l2,Vue,r_,Yue,Xc,Xue,yb,Hue,_b,Uue,Q9,que,Gn,Bue,mb,Mue,pb,Gue,bb,jue,v2,Rue,X1,Lue,Z9,Due,lb,Pue,$9,Cue,J9,Nue,W9,Aue,K9,Iue,vb,Oue,z9,Tue,V9,Fue,ab,gue,Y9,Sue,sb,Eue,X9,wue,U9,kue,zs,due,vi,hue,cb,yue,H9,_ue,s2,mue,H1,pue,B9,bue,M9,lue,c2,vue,Vs,sue,q9,cue,si,aue,Xs,oue,Ys,xue,Au,fue,hs,iue,Hs,uue,ln,tue,xn,nue,it,eue,dt,rue,ut,Qte,Ti,Zte,D0,$te,Ut,Jte,Hc,Wte,a7,Kte,Q0,zte,$r,Vte,Br,Yte,Mr,Xte,ne,Hte,jr,Ute,ge,qte,ce,Bte,q0,Mte,qr,Gte,_n,jte,K7,Rte,Bu,Lte,Y,Dte,s,Pte,c,Cte,e0,Nte,V,Ate,f0,Ite,ou,Ote,Fn,Tte,vr,Fte,Lr,gte,_,Ste,p2,Ete,f_,wte,k,kte,G,dte,K,hte,M,yte,S,_te,A,mte,o0,pte,Zs,bte,d,lte,en,vte,t0,ste,l,cte,x0,ate,wn,ote,Zn,xte,me,fte,jn,ite,B0,ute,W7,tte,He,nte,ft,ete,xt,rte,he,Qne,Yi,Zne,lt,$ne,k0,Jne,m0,Wne,Vc,Kne,Hn,zne,Cn,Vne,ar,Yne,On,Xne,Ft,Hne,du,Une,Wu,qne,Ct,Bne,qt,Mne,vt,Gne,gt,jne,Zt,Rne,Nt,Lne,Ge,Dne,Kr,Pne,mr,Cne,Me,Nne,Cr,Ane,Sr,Ine,Je,One,Ne,Tne,vn,Fne,kn,gne,rn,Sne,cn,IR,Ae,jb,an,Rb,We,nv,re,Lb,F0,ev,Ie,Ki,ve,w7,xe,Ii,Re,wu,sr,ku,Ur,OR,Pr,TR,K0,Db,h0,FR,ir,gR,J0,Pb,X0,SR,u0,ER,yr,wR,I0,E2,y0,kR,D,y_,P0,dR,U,hR,I,Cb,Fr,yR,Qr,__,oe,_R,be,mR,ae,Nb,pe,pR,Er,bR,Le,lR,p,Ab,t_,m_,Vi,vR,Tt,p_,$s,Ib,m2,b_,er,sR,L0,l_,rr,cR,T0,Ob,S0,v_,Q,Tb,L,rv,i0,aR,l0,oR,v0,s_,P,Mn,fe,xR,M0,Fb,O0,fR,b0,gb,p0,iR,Z,Sb,K1,uR,B,Q1,Ir,tR,_r,w2,bt,nR,Jr,k2,Wr,eR,_0,c_,Tr,rR,Hr,QL,Rr,d2,fr,ZL,W0,$L,or,Eb,Ar,JL,X,wb,R0,WL,b,Z1,U0,KL,E0,$1,w0,zL,g0,h2,w,VL,E,YL,T,Oi,y,XL,x,J1,i,HL,c0,W1,e,UL]),function(a,F){return jp(F,t)}});function X00(t){switch(t[0]){case 0:return 1;case 3:return 3;default:return 2}}function Y00(t,n){u(f(t),O6r),o(f(t),A6r,I6r);var e=n[1];o(f(t),N6r,e),u(f(t),C6r),u(f(t),P6r),o(f(t),L6r,D6r);var i=n[2];return o(f(t),R6r,i),u(f(t),j6r),u(f(t),G6r)}var V00=function t(n,e){return t.fun(n,e)},Fee=function t(n){return t.fun(n)};N(V00,function(t,n){u(f(t),B6r),o(f(t),U6r,q6r);var e=n[1];if(e){g(t,H6r);var i=e[1];switch(i[0]){case 0:u(f(t),m6r);var x=i[1];o(f(t),_6r,x),u(f(t),y6r);break;case 1:u(f(t),h6r);var c=i[1];o(f(t),d6r,c),u(f(t),k6r);break;case 2:u(f(t),w6r);var s=i[1];o(f(t),E6r,s),u(f(t),S6r);break;default:u(f(t),g6r);var p=i[1];o(f(t),F6r,p),u(f(t),T6r)}g(t,X6r)}else g(t,Y6r);return u(f(t),V6r),u(f(t),z6r),o(f(t),W6r,K6r),Y00(t,n[2]),u(f(t),J6r),u(f(t),$6r),o(f(t),Q6r,Z6r),Y00(t,n[3]),u(f(t),rpr),u(f(t),epr)}),N(Fee,function(t){return o(C0(M6r),V00,t)});function yt(t,n){return[0,t[1],t[2],n[3]]}function ps(t,n){var e=t[1]-n[1]|0;return e===0?t[2]-n[2]|0:e}function z00(t,n){var e=n[1],i=t[1];if(i)if(e)var x=e[1],c=i[1],s=X00(x),p=X00(c)-s|0,T=p===0?Ee(c[1],x[1]):p;else var T=-1;else var y=e&&1,T=y;if(T===0){var E=ps(t[2],n[2]);return E===0?ps(t[3],n[3]):E}return T}function Wv(t,n){return z00(t,n)===0?1:0}var WD=function t(n,e,i){return t.fun(n,e,i)},Tee=Rp(upr,function(t){var n=NN(t,tpr)[35],e=LN(t,0,0,npr,KD,1)[1];return zz(t,n,function(i,x){return 0}),function(i,x){var c=jp(x,t);return u(e,c),RN(x,c,t)}});N(WD,function(t,n,e){var i=e[2];switch(i[0]){case 0:var x=i[1][1];return le(function(s,p){var y=p[0]===0?p[1][2][2]:p[1][2][1];return ur(WD,t,s,y)},n,x);case 1:var c=i[1][1];return le(function(s,p){return p[0]===2?s:ur(WD,t,s,p[1][2][1])},n,c);case 2:return o(t,n,i[1][1]);default:return n}});function Rc(t,n){return[0,n[1],[0,n[2],t]]}function K00(t,n,e){var i=t&&t[1],x=n&&n[1];return[0,i,x,e]}function lr(t,n,e){var i=t&&t[1],x=n&&n[1];return!i&&!x?x:[0,K00([0,i],[0,x],0)]}function yu(t,n,e,i){var x=t&&t[1],c=n&&n[1];return!x&&!c&&!e?e:[0,K00([0,x],[0,c],e)]}function y7(t,n){if(t){if(n){var e=n[1],i=t[1],x=[0,on(i[2],e[2])];return lr([0,on(e[1],i[1])],x,0)}var c=t}else var c=n;return c}function JD(t,n){if(n){if(t){var e=n[1],i=t[1],x=i[3],c=[0,on(i[2],e[2])];return yu([0,on(e[1],i[1])],c,x,0)}var s=n[1];return yu([0,s[1]],[0,s[2]],0,0)}return t}function Jv(t,n){for(var e=t,i=n;;){if(typeof e=="number")return i;if(e[0]===0)return[0,e[1],0,i];var x=[0,e[2],e[4],i],e=e[3],i=x}}function W00(t,n){if(t)var e=Jv(t[2],t[3]),i=function(c){return W00(e,c)},x=[0,t[1],i];else var x=t;return x}function Oee(t){var n=Jv(t,0);return function(e){return W00(n,e)}}function ms(t){return typeof t=="number"?0:t[0]===0?1:t[1]}function Iee(t){return[0,t]}function Y7(t,n,e){var i=0;if(typeof t=="number"){if(typeof e=="number")return[0,n];e[0]===1&&(i=1)}else if(t[0]===0)typeof e!="number"&&e[0]===1&&(i=1);else{var x=t[1];if(typeof e!="number"&&e[0]===1){var c=e[1],s=c<=x?x+1|0:c+1|0;return[1,s,n,t,e]}var p=x;i=2}switch(i){case 1:var p=e[1];break;case 0:return[1,2,n,t,e]}return[1,p+1|0,n,t,e]}function Ns(t,n,e){var i=ms(t),x=ms(e),c=x<=i?i+1|0:x+1|0;return[1,c,n,t,e]}function $D(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=$D(t,i),c=u(t,0),s=$D(t,(n-i|0)-1|0);return[1,ms(x)+1|0,c,x,s]}var p=[0,u(t,0)]}else var p=e;return p}function ki(t,n,e){var i=ms(t),x=ms(e);if((x+2|0)>1,b0=R0(p0,W0),O0=b0[1],M0=R0(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0<=jr){var yr=Er,vr=[0,Mr,vr];continue}var er=Br,vr=[0,qr,vr];continue}var $r=Lc(er,vr)}else var $r=Lc(yr,vr);return[0,$r,$0]}},R0=function(or,W0){if(or===2){if(W0){var Lr=W0[2];if(Lr){var Tr=Lr[1],Hr=W0[1],Or=Lr[2],fr=o(U0,Hr,Tr),Rr=fr===0?[0,Hr,0]:0<=fr?[0,Tr,[0,Hr,0]]:[0,Hr,[0,Tr,0]];return[0,Rr,Or]}}}else if(or===3&&W0){var Wr=W0[2];if(Wr){var Jr=Wr[2];if(Jr){var ar=Jr[1],_r=Wr[1],Ir=W0[1],fe=Jr[2],v0=o(U0,Ir,_r);if(v0===0)var P=o(U0,_r,ar),L=P===0?[0,_r,0]:0<=P?[0,ar,[0,_r,0]]:[0,_r,[0,ar,0]],Q=L;else if(0<=v0){var i0=o(U0,Ir,ar);if(i0===0)var T0=[0,_r,[0,Ir,0]];else if(0<=i0)var l0=o(U0,_r,ar),S0=l0===0?[0,_r,[0,Ir,0]]:0<=l0?[0,ar,[0,_r,[0,Ir,0]]]:[0,_r,[0,ar,[0,Ir,0]]],T0=S0;else var T0=[0,_r,[0,Ir,[0,ar,0]]];var Q=T0}else{var rr=o(U0,_r,ar);if(rr===0)var Z=[0,Ir,[0,_r,0]];else if(0<=rr)var L0=o(U0,Ir,ar),B=L0===0?[0,Ir,[0,_r,0]]:0<=L0?[0,ar,[0,Ir,[0,_r,0]]]:[0,Ir,[0,ar,[0,_r,0]]],Z=B;else var Z=[0,Ir,[0,_r,[0,ar,0]]];var Q=Z}return[0,Q,fe]}}}for(var p0=or>>1,b0=b(p0,W0),O0=b0[1],M0=b(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0>>0))switch(or){case 0:return[0,0,W0];case 1:if(W0)return[0,[0,W0[1]],W0[2]];break;case 2:if(W0){var Lr=W0[2];if(Lr)return[0,[1,2,Lr[1],[0,W0[1]],0],Lr[2]]}break;default:if(W0){var Tr=W0[2];if(Tr){var Hr=Tr[2];if(Hr)return[0,[1,2,Tr[1],[0,W0[1]],[0,Hr[1]]],Hr[2]]}}}var Or=or/2|0,fr=hr(Or,W0),Rr=fr[2];if(Rr){var Wr=hr((or-Or|0)-1|0,Rr[2]),Jr=Wr[2];return[0,Ns(fr[1],Rr[1],Wr[1]),Jr]}throw[0,Sn,Kpr]};return hr(Dc(s0),s0)[1]}var Ar=n(E0,n(w0,n(t0,[0,l])));return n(_0[1],Ar)}return n(E0,n(w0,n(t0,[0,l])))}return n(w0,n(t0,[0,l]))}return n(t0,[0,l])}return[0,l]}return st}return[0,st,rL,i,n,Iee,x,c,s,y,T,E,d,w,G,k0,A,S,M,K,V,QD,er0,Pl,Z00,Q00,Aee,Pl,Z00,f0,m0,Oee,g0,function(e0,x0,l){u(f(x0),Xpr);var c0=er0(l);c0&&u(f(x0),Ypr);var t0=0;return le(function(o0,w0){return o0&&u(f(x0),Hpr),o(e0,x0,w0),1},t0,c0),c0&&u(f(x0),Vpr),u(f(x0),zpr)},$D]}var nr0=Wpr.slice();function nL(t){for(var n=0,e=nr0.length-1-1|0;;){if(e>>18|0),Jn(i,x+1|0,jt|(p>>>12|0)&63),Jn(i,x+2|0,jt|(p>>>6|0)&63),Jn(i,x+3|0,jt|p&63);var y=x+4|0}else{Jn(i,x,hv|p>>>12|0),Jn(i,x+1|0,jt|(p>>>6|0)&63),Jn(i,x+2|0,jt|p&63);var y=x+3|0}else{Jn(i,x,rt|p>>>6|0),Jn(i,x+1|0,jt|p&63);var y=x+2|0}else{Jn(i,x,p);var y=x+1|0}var x=y,c=c-1|0,s=s+1|0;continue}throw I1}return x}}function pr0(t){for(var n=un(t),e=Gv(n,0),i=0,x=0;;){if(x>>6|0)!==2?1:0;if(E)var w=E;else var d=(y>>>6|0)!==2?1:0,w=d||((T>>>6|0)!==2?1:0);if(w)throw I1;e[1+i]=(c&7)<<18|(p&63)<<12|(y&63)<<6|T&63;var G=x+4|0}else if(hv<=c){var A=Vr(t,x+1|0),S=Vr(t,x+2|0),M=(c&15)<<12|(A&63)<<6|S&63,K=(A>>>6|0)!==2?1:0,V=K||((S>>>6|0)!==2?1:0);if(V)var m0=V;else var f0=55296<=M?1:0,m0=f0&&(M<=57088?1:0);if(m0)throw I1;e[1+i]=M;var G=x+3|0}else{var k0=Vr(t,x+1|0);if((k0>>>6|0)!==2)throw I1;e[1+i]=(c&31)<<6|k0&63;var G=x+2|0}else if(jt<=c)s=1;else{e[1+i]=c;var G=x+1|0}if(s)throw I1;var i=i+1|0,x=G;continue}return[0,e,i,lr0,vr0,sr0,cr0,ar0,or0,xr0,fr0,ir0,ur0]}}function jl(t,n,e){var i=t[6]+n|0,x=Lt(e*4|0),c=t[1];if((i+e|0)<=c.length-1)return qv(x,0,Rl(c,i,e,x));throw[0,Sn,r_r]}function Se(t){var n=t[6],e=t[3]-n|0,i=Lt(e*4|0);return qv(i,0,Rl(t[1],n,e,i))}function Gl(t,n){var e=t[6],i=t[3]-e|0,x=Lt(i*4|0);return sN(n,x,0,Rl(t[1],e,i,x))}function uL(t){var n=t.length-1,e=Lt(n*4|0);return qv(e,0,Rl(t,0,n,e))}function mr0(t,n){return t[3]=t[3]-n|0,0}var _r0=0;function Cee(t,n,e){return[0,t,n,n_r,0,e,_r0,t_r]}function yr0(t){var n=t[2];return[0,t[1],[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12]],t[3],t[4],t[5],t[6],t[7]]}function hr0(t){return t[3][1]}function $m(t,n){return t!==n[4]?[0,n[1],n[2],n[3],t,n[5],n[6],n[7]]:n}var iL=function t(n,e){return t.fun(n,e)},dr0=function t(n,e){return t.fun(n,e)},fL=function t(n,e){return t.fun(n,e)},xL=function t(n,e){return t.fun(n,e)},kr0=function t(n,e){return t.fun(n,e)};N(iL,function(t,n){if(typeof t=="number"){var e=t;if(61<=e)if(92<=e)switch(e){case 92:if(typeof n=="number"&&n===92)return 1;break;case 93:if(typeof n=="number"&&n===93)return 1;break;case 94:if(typeof n=="number"&&n===94)return 1;break;case 95:if(typeof n=="number"&&n===95)return 1;break;case 96:if(typeof n=="number"&&n===96)return 1;break;case 97:if(typeof n=="number"&&n===97)return 1;break;case 98:if(typeof n=="number"&&n===98)return 1;break;case 99:if(typeof n=="number"&&n===99)return 1;break;case 100:if(typeof n=="number"&&ti===n)return 1;break;case 101:if(typeof n=="number"&&R7===n)return 1;break;case 102:if(typeof n=="number"&&Ri===n)return 1;break;case 103:if(typeof n=="number"&&s7===n)return 1;break;case 104:if(typeof n=="number"&&L7===n)return 1;break;case 105:if(typeof n=="number"&&j7===n)return 1;break;case 106:if(typeof n=="number"&&Yt===n)return 1;break;case 107:if(typeof n=="number"&&Zc===n)return 1;break;case 108:if(typeof n=="number"&&is===n)return 1;break;case 109:if(typeof n=="number"&&Fv===n)return 1;break;case 110:if(typeof n=="number"&&Xt===n)return 1;break;case 111:if(typeof n=="number"&&cf===n)return 1;break;case 112:if(typeof n=="number"&&T7===n)return 1;break;case 113:if(typeof n=="number"&&Pn===n)return 1;break;case 114:if(typeof n=="number"&&t1===n)return 1;break;case 115:if(typeof n=="number"&&Av===n)return 1;break;case 116:if(typeof n=="number"&&f1===n)return 1;break;case 117:if(typeof n=="number"&&A2===n)return 1;break;case 118:if(typeof n=="number"&&z2===n)return 1;break;case 119:if(typeof n=="number"&&Sv===n)return 1;break;case 120:if(typeof n=="number"&&uc===n)return 1;break;default:if(typeof n=="number"&&tl<=n)return 1}else switch(e){case 61:if(typeof n=="number"&&n===61)return 1;break;case 62:if(typeof n=="number"&&n===62)return 1;break;case 63:if(typeof n=="number"&&n===63)return 1;break;case 64:if(typeof n=="number"&&n===64)return 1;break;case 65:if(typeof n=="number"&&n===65)return 1;break;case 66:if(typeof n=="number"&&n===66)return 1;break;case 67:if(typeof n=="number"&&n===67)return 1;break;case 68:if(typeof n=="number"&&n===68)return 1;break;case 69:if(typeof n=="number"&&n===69)return 1;break;case 70:if(typeof n=="number"&&n===70)return 1;break;case 71:if(typeof n=="number"&&n===71)return 1;break;case 72:if(typeof n=="number"&&n===72)return 1;break;case 73:if(typeof n=="number"&&n===73)return 1;break;case 74:if(typeof n=="number"&&n===74)return 1;break;case 75:if(typeof n=="number"&&n===75)return 1;break;case 76:if(typeof n=="number"&&n===76)return 1;break;case 77:if(typeof n=="number"&&n===77)return 1;break;case 78:if(typeof n=="number"&&n===78)return 1;break;case 79:if(typeof n=="number"&&n===79)return 1;break;case 80:if(typeof n=="number"&&n===80)return 1;break;case 81:if(typeof n=="number"&&n===81)return 1;break;case 82:if(typeof n=="number"&&n===82)return 1;break;case 83:if(typeof n=="number"&&n===83)return 1;break;case 84:if(typeof n=="number"&&n===84)return 1;break;case 85:if(typeof n=="number"&&n===85)return 1;break;case 86:if(typeof n=="number"&&n===86)return 1;break;case 87:if(typeof n=="number"&&n===87)return 1;break;case 88:if(typeof n=="number"&&n===88)return 1;break;case 89:if(typeof n=="number"&&n===89)return 1;break;case 90:if(typeof n=="number"&&n===90)return 1;break;default:if(typeof n=="number"&&n===91)return 1}else if(31<=e)switch(e){case 31:if(typeof n=="number"&&n===31)return 1;break;case 32:if(typeof n=="number"&&n===32)return 1;break;case 33:if(typeof n=="number"&&n===33)return 1;break;case 34:if(typeof n=="number"&&n===34)return 1;break;case 35:if(typeof n=="number"&&n===35)return 1;break;case 36:if(typeof n=="number"&&n===36)return 1;break;case 37:if(typeof n=="number"&&n===37)return 1;break;case 38:if(typeof n=="number"&&n===38)return 1;break;case 39:if(typeof n=="number"&&n===39)return 1;break;case 40:if(typeof n=="number"&&n===40)return 1;break;case 41:if(typeof n=="number"&&n===41)return 1;break;case 42:if(typeof n=="number"&&n===42)return 1;break;case 43:if(typeof n=="number"&&n===43)return 1;break;case 44:if(typeof n=="number"&&n===44)return 1;break;case 45:if(typeof n=="number"&&n===45)return 1;break;case 46:if(typeof n=="number"&&n===46)return 1;break;case 47:if(typeof n=="number"&&n===47)return 1;break;case 48:if(typeof n=="number"&&n===48)return 1;break;case 49:if(typeof n=="number"&&n===49)return 1;break;case 50:if(typeof n=="number"&&n===50)return 1;break;case 51:if(typeof n=="number"&&n===51)return 1;break;case 52:if(typeof n=="number"&&n===52)return 1;break;case 53:if(typeof n=="number"&&n===53)return 1;break;case 54:if(typeof n=="number"&&n===54)return 1;break;case 55:if(typeof n=="number"&&n===55)return 1;break;case 56:if(typeof n=="number"&&n===56)return 1;break;case 57:if(typeof n=="number"&&n===57)return 1;break;case 58:if(typeof n=="number"&&n===58)return 1;break;case 59:if(typeof n=="number"&&n===59)return 1;break;default:if(typeof n=="number"&&n===60)return 1}else switch(e){case 0:if(typeof n=="number"&&!n)return 1;break;case 1:if(typeof n=="number"&&n===1)return 1;break;case 2:if(typeof n=="number"&&n===2)return 1;break;case 3:if(typeof n=="number"&&n===3)return 1;break;case 4:if(typeof n=="number"&&n===4)return 1;break;case 5:if(typeof n=="number"&&n===5)return 1;break;case 6:if(typeof n=="number"&&n===6)return 1;break;case 7:if(typeof n=="number"&&n===7)return 1;break;case 8:if(typeof n=="number"&&n===8)return 1;break;case 9:if(typeof n=="number"&&n===9)return 1;break;case 10:if(typeof n=="number"&&n===10)return 1;break;case 11:if(typeof n=="number"&&n===11)return 1;break;case 12:if(typeof n=="number"&&n===12)return 1;break;case 13:if(typeof n=="number"&&n===13)return 1;break;case 14:if(typeof n=="number"&&n===14)return 1;break;case 15:if(typeof n=="number"&&n===15)return 1;break;case 16:if(typeof n=="number"&&n===16)return 1;break;case 17:if(typeof n=="number"&&n===17)return 1;break;case 18:if(typeof n=="number"&&n===18)return 1;break;case 19:if(typeof n=="number"&&n===19)return 1;break;case 20:if(typeof n=="number"&&n===20)return 1;break;case 21:if(typeof n=="number"&&n===21)return 1;break;case 22:if(typeof n=="number"&&n===22)return 1;break;case 23:if(typeof n=="number"&&n===23)return 1;break;case 24:if(typeof n=="number"&&n===24)return 1;break;case 25:if(typeof n=="number"&&n===25)return 1;break;case 26:if(typeof n=="number"&&n===26)return 1;break;case 27:if(typeof n=="number"&&n===27)return 1;break;case 28:if(typeof n=="number"&&n===28)return 1;break;case 29:if(typeof n=="number"&&n===29)return 1;break;default:if(typeof n=="number"&&n===30)return 1}}else switch(t[0]){case 0:if(typeof n!="number"&&n[0]===0){var i=n[1],x=u(u(fL,t[1]),i),c=x&&qn(t[2],n[2]);return c}break;case 1:if(typeof n!="number"&&n[0]===1){var s=n[1],p=u(u(xL,t[1]),s),y=p&&qn(t[2],n[2]);return y}break;case 2:if(typeof n!="number"&&n[0]===2){var T=n[1],E=t[1],d=Wv(E[1],T[1]),w=d&&qn(E[2],T[2]),G=w&&qn(E[3],T[3]),A=G&&(E[4]===T[4]?1:0);return A}break;case 3:if(typeof n!="number"&&n[0]===3){var S=n[1],M=t[1],K=Wv(M[1],S[1]);if(K)var V=S[2],f0=u(u(kr0,M[2]),V);else var f0=K;var m0=f0&&(M[3]===S[3]?1:0);return m0}break;case 4:if(typeof n!="number"&&n[0]===4){var k0=Wv(t[1],n[1]),g0=k0&&qn(t[2],n[2]),e0=g0&&qn(t[3],n[3]);return e0}break;case 5:if(typeof n!="number"&&n[0]===5){var x0=Wv(t[1],n[1]),l=x0&&qn(t[2],n[2]),c0=l&&qn(t[3],n[3]);return c0}break;case 6:if(typeof n!="number"&&n[0]===6)return qn(t[1],n[1]);break;case 7:if(typeof n!="number"&&n[0]===7){var t0=qn(t[1],n[1]);return t0&&Wv(t[2],n[2])}break;case 8:if(typeof n!="number"&&n[0]===8){var o0=Wv(t[1],n[1]),w0=o0&&qn(t[2],n[2]),_0=w0&&qn(t[3],n[3]);return _0}break;case 9:if(typeof n!="number"&&n[0]===9){var E0=n[1];return u(u(dr0,t[1]),E0)}break;case 10:if(typeof n!="number"&&n[0]===10){var U0=n[1],b=u(u(fL,t[1]),U0),R0=b&&(t[2]==n[2]?1:0),X=R0&&qn(t[3],n[3]);return X}break;default:if(typeof n!="number"&&n[0]===11){var s0=n[1],hr=u(u(xL,t[1]),s0),Ar=hr&&(t[2]==n[2]?1:0),or=Ar&&qn(t[3],n[3]);return or}}return 0}),N(dr0,function(t,n){if(t){if(n)return 1}else if(!n)return 1;return 0}),N(fL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;case 2:if(n===2)return 1;break;case 3:if(n===3)return 1;break;default:if(4<=n)return 1}return 0}),N(xL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;default:if(2<=n)return 1}return 0}),N(kr0,function(t,n){var e=qn(t[1],n[1]),i=e&&qn(t[2],n[2]),x=i&&qn(t[3],n[3]);return x});function wr0(t){if(typeof t=="number"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return Ekr;case 93:return Skr;case 94:return gkr;case 95:return Fkr;case 96:return Tkr;case 97:return Okr;case 98:return Ikr;case 99:return Akr;case 100:return Nkr;case 101:return Ckr;case 102:return Pkr;case 103:return Dkr;case 104:return Lkr;case 105:return Rkr;case 106:return jkr;case 107:return Gkr;case 108:return Mkr;case 109:return Bkr;case 110:return qkr;case 111:return Ukr;case 112:return Hkr;case 113:return Xkr;case 114:return Ykr;case 115:return Vkr;case 116:return zkr;case 117:return Kkr;case 118:return Wkr;case 119:return Jkr;case 120:return $kr;default:return Zkr}switch(n){case 61:return Vdr;case 62:return zdr;case 63:return Kdr;case 64:return Wdr;case 65:return Jdr;case 66:return $dr;case 67:return Zdr;case 68:return Qdr;case 69:return rkr;case 70:return ekr;case 71:return nkr;case 72:return tkr;case 73:return ukr;case 74:return ikr;case 75:return fkr;case 76:return xkr;case 77:return okr;case 78:return akr;case 79:return ckr;case 80:return skr;case 81:return vkr;case 82:return lkr;case 83:return bkr;case 84:return pkr;case 85:return mkr;case 86:return _kr;case 87:return ykr;case 88:return hkr;case 89:return dkr;case 90:return kkr;default:return wkr}}if(31<=n)switch(n){case 31:return mdr;case 32:return _dr;case 33:return ydr;case 34:return hdr;case 35:return ddr;case 36:return kdr;case 37:return wdr;case 38:return Edr;case 39:return Sdr;case 40:return gdr;case 41:return Fdr;case 42:return Tdr;case 43:return Odr;case 44:return Idr;case 45:return Adr;case 46:return Ndr;case 47:return Cdr;case 48:return Pdr;case 49:return Ddr;case 50:return Ldr;case 51:return Rdr;case 52:return jdr;case 53:return Gdr;case 54:return Mdr;case 55:return Bdr;case 56:return qdr;case 57:return Udr;case 58:return Hdr;case 59:return Xdr;default:return Ydr}switch(n){case 0:return Mhr;case 1:return Bhr;case 2:return qhr;case 3:return Uhr;case 4:return Hhr;case 5:return Xhr;case 6:return Yhr;case 7:return Vhr;case 8:return zhr;case 9:return Khr;case 10:return Whr;case 11:return Jhr;case 12:return $hr;case 13:return Zhr;case 14:return Qhr;case 15:return rdr;case 16:return edr;case 17:return ndr;case 18:return tdr;case 19:return udr;case 20:return idr;case 21:return fdr;case 22:return xdr;case 23:return odr;case 24:return adr;case 25:return cdr;case 26:return sdr;case 27:return vdr;case 28:return ldr;case 29:return bdr;default:return pdr}}else switch(t[0]){case 0:return Qkr;case 1:return rwr;case 2:return ewr;case 3:return nwr;case 4:return twr;case 5:return uwr;case 6:return iwr;case 7:return fwr;case 8:return xwr;case 9:return owr;case 10:return awr;default:return cwr}}function oL(t){if(typeof t=="number"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return ihr;case 93:return fhr;case 94:return xhr;case 95:return ohr;case 96:return ahr;case 97:return chr;case 98:return shr;case 99:return vhr;case 100:return lhr;case 101:return bhr;case 102:return phr;case 103:return mhr;case 104:return _hr;case 105:return yhr;case 106:return hhr;case 107:return dhr;case 108:return khr;case 109:return whr;case 110:return Ehr;case 111:return Shr;case 112:return ghr;case 113:return Fhr;case 114:return Thr;case 115:return Ohr;case 116:return Ihr;case 117:return Ahr;case 118:return Nhr;case 119:return Chr;case 120:return Phr;default:return Dhr}switch(n){case 61:return Oyr;case 62:return Iyr;case 63:return Ayr;case 64:return Nyr;case 65:return Cyr;case 66:return Pyr;case 67:return Dyr;case 68:return Lyr;case 69:return Ryr;case 70:return jyr;case 71:return Gyr;case 72:return Myr;case 73:return Byr;case 74:return qyr;case 75:return Uyr;case 76:return Hyr;case 77:return Xyr;case 78:return Yyr;case 79:return Vyr;case 80:return zyr;case 81:return Kyr;case 82:return Wyr;case 83:return Jyr;case 84:return $yr;case 85:return Zyr;case 86:return Qyr;case 87:return rhr;case 88:return ehr;case 89:return nhr;case 90:return thr;default:return uhr}}if(31<=n)switch(n){case 31:return Z_r;case 32:return Q_r;case 33:return ryr;case 34:return eyr;case 35:return nyr;case 36:return tyr;case 37:return uyr;case 38:return iyr;case 39:return fyr;case 40:return xyr;case 41:return oyr;case 42:return ayr;case 43:return cyr;case 44:return syr;case 45:return vyr;case 46:return lyr;case 47:return byr;case 48:return pyr;case 49:return myr;case 50:return _yr;case 51:return yyr;case 52:return hyr;case 53:return dyr;case 54:return kyr;case 55:return wyr;case 56:return Eyr;case 57:return Syr;case 58:return gyr;case 59:return Fyr;default:return Tyr}switch(n){case 0:return k_r;case 1:return w_r;case 2:return E_r;case 3:return S_r;case 4:return g_r;case 5:return F_r;case 6:return T_r;case 7:return O_r;case 8:return I_r;case 9:return A_r;case 10:return N_r;case 11:return C_r;case 12:return P_r;case 13:return D_r;case 14:return L_r;case 15:return R_r;case 16:return j_r;case 17:return G_r;case 18:return M_r;case 19:return B_r;case 20:return q_r;case 21:return U_r;case 22:return H_r;case 23:return X_r;case 24:return Y_r;case 25:return V_r;case 26:return z_r;case 27:return K_r;case 28:return W_r;case 29:return J_r;default:return $_r}}else switch(t[0]){case 2:return t[1][3];case 3:return t[1][2][3];case 5:var e=Te(Lhr,t[3]);return Te(Rhr,Te(t[2],e));case 9:return t[1]?jhr:Ghr;case 0:case 1:return t[2];case 6:case 7:return t[1];default:return t[3]}}function Ml(t){return u(et(d_r),t)}function aL(t,n){var e=t&&t[1],i=0;if(typeof n=="number")if(Pn===n)var x=u_r,c=i_r;else i=1;else switch(n[0]){case 3:var x=f_r,c=x_r;break;case 5:var x=o_r,c=a_r;break;case 6:case 9:i=1;break;case 0:case 10:var x=s_r,c=v_r;break;case 1:case 11:var x=l_r,c=b_r;break;case 2:case 8:var x=p_r,c=m_r;break;default:var x=__r,c=y_r}if(i)var x=c_r,c=Ml(oL(n));return e?Te(x,Te(h_r,c)):c}function cL(t){return 45>>0)var i=q(t);else switch(e){case 0:var i=1;break;case 1:var i=2;break;case 2:var i=0;break;default:if(G0(t,2),Ls(j(t))===0){var x=L1(j(t));if(x===0)if(Nn(j(t))===0&&Nn(j(t))===0)var c=Nn(j(t))!==0?1:0,i=c&&q(t);else var i=q(t);else if(x===1&&Nn(j(t))===0)for(;;){var s=A1(j(t));if(s!==0){var p=s!==1?1:0,i=p&&q(t);break}}else var i=q(t)}else var i=q(t)}if(2>>0)throw[0,Sn,swr];switch(i){case 0:continue;case 1:return 1;default:if(nL(br0(t)))continue;return mr0(t,1),0}}}function S9(t,n){var e=n-t[3][2]|0;return[0,hr0(t),e]}function Hl(t,n,e){var i=S9(t,e),x=S9(t,n);return[0,t[1],x,i]}function ju(t,n){return S9(t,n[6])}function h7(t,n){return S9(t,n[3])}function nt(t,n){return Hl(t,n[6],n[3])}function Xr0(t,n){var e=0;if(typeof n=="number")e=1;else switch(n[0]){case 2:var i=n[1][1];break;case 3:return n[1][1];case 4:var i=n[1];break;case 7:var i=n[2];break;case 5:case 8:return n[1];default:e=1}return e?nt(t,t[2]):i}function Gu(t,n,e){return[0,t[1],t[2],t[3],t[4],t[5],[0,[0,n,e],t[6]],t[7]]}function Yr0(t,n,e){return Gu(t,n,[10,Ml(e)])}function bL(t,n,e,i){return Gu(t,n,[12,e,i])}function Ei(t,n){return Gu(t,n,GDr)}function d7(t,n){var e=n[3],i=[0,hr0(t)+1|0,e];return[0,t[1],t[2],i,t[4],t[5],t[6],t[7]]}function Vr0(t){var n=un(t);return n!==0&&Xt===It(t,n-1|0)?m7(t,0,n-1|0):t}function Si(t,n,e,i,x){var c=[0,t[1],n,e],s=Mt(i),p=x?0:1;return[0,c,[0,p,s,t[7][3][1]>>0)var y=q(i);else switch(p){case 0:var y=2;break;case 1:for(;;){G0(i,3);var T=j(i);if(-1>>0)return ke(IDr);switch(y){case 0:var S=Kr0(c,e,i,2,0),M=S[1],K=Bi(Te(ADr,S[2])),V=0<=K?1:0,f0=V&&(K<=55295?1:0);if(f0)var k0=f0;else var m0=57344<=K?1:0,k0=m0&&(K<=lI?1:0);var g0=k0?zr0(c,M,K):Gu(c,M,37);S1(x,K);var c=g0;continue;case 1:var e0=Kr0(c,e,i,3,1),x0=Bi(Te(NDr,e0[2])),l=zr0(c,e0[1],x0);S1(x,x0);var c=l;continue;case 2:return[0,c,Mt(x)];default:Gl(i,x);continue}}}function Rt(t,n,e){var i=Ei(t,nt(t,n));return $v(n),o(e,i,n)}function R1(t,n,e){for(var i=t;;){gn(e);var x=j(e);if(-1>>0)var p=q(e);else switch(s){case 0:for(;;){G0(e,3);var y=j(e);if(-1>>0){var A=Ei(i,nt(i,e));return[0,A,h7(A,e)]}switch(p){case 0:var S=d7(i,e);Gl(e,n);var i=S;continue;case 1:var M=i[4]?bL(i,nt(i,e),bwr,lwr):i;return[0,M,h7(M,e)];case 2:if(i[4])return[0,i,h7(i,e)];hn(n,pwr);continue;default:Gl(e,n);continue}}}function e2(t,n,e){for(;;){gn(e);var i=j(e),x=13>>0)var c=q(e);else switch(x){case 0:var c=0;break;case 1:for(;;){G0(e,2);var s=j(e);if(-1>>0)return ke(mwr);switch(c){case 0:return[0,t,h7(t,e)];case 1:var T=h7(t,e),E=d7(t,e),d=Jm(e);return[0,E,[0,T[1],T[2]-d|0]];default:Gl(e,n);continue}}}function Jr0(t,n){function e(k0){return G0(k0,3),zu(j(k0))===0?2:q(k0)}gn(n);var i=j(n),x=uc>>0)var c=q(n);else switch(x){case 1:var c=16;break;case 2:var c=15;break;case 3:G0(n,15);var c=xi(j(n))===0?15:q(n);break;case 4:G0(n,4);var c=zu(j(n))===0?e(n):q(n);break;case 5:G0(n,11);var c=zu(j(n))===0?e(n):q(n);break;case 7:var c=5;break;case 8:var c=6;break;case 9:var c=7;break;case 10:var c=8;break;case 11:var c=9;break;case 12:G0(n,14);var s=L1(j(n));if(s===0)var c=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?12:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var c=p===1?13:q(n);break}}else var c=q(n);break;case 13:var c=10;break;case 14:G0(n,14);var c=Nn(j(n))===0&&Nn(j(n))===0?1:q(n);break;default:var c=0}if(16>>0)return ke(pDr);switch(c){case 1:var y=Se(n);return[0,t,y,[0,Bi(Te(mDr,y))],0];case 2:var T=Se(n),E=Bi(Te(_Dr,T));return N4<=E?[0,t,T,[0,E>>>3|0,48+(E&7)|0],1]:[0,t,T,[0,E],1];case 3:var d=Se(n);return[0,t,d,[0,Bi(Te(yDr,d))],1];case 4:return[0,t,hDr,[0,0],0];case 5:return[0,t,dDr,[0,8],0];case 6:return[0,t,kDr,[0,12],0];case 7:return[0,t,wDr,[0,10],0];case 8:return[0,t,EDr,[0,13],0];case 9:return[0,t,SDr,[0,9],0];case 10:return[0,t,gDr,[0,11],0];case 11:var w=Se(n);return[0,t,w,[0,Bi(Te(FDr,w))],1];case 12:var G=Se(n);return[0,t,G,[0,Bi(Te(TDr,m7(G,1,un(G)-1|0)))],0];case 13:var A=Se(n),S=Bi(Te(ODr,m7(A,2,un(A)-3|0))),M=lI>>0)var E=q(c);else switch(T){case 0:var E=3;break;case 1:for(;;){G0(c,4);var d=j(c);if(-1>>0)return ke(_wr);switch(E){case 0:var A=Se(c);if(hn(i,A),qn(n,A))return[0,s,h7(s,c),p];hn(e,A);continue;case 1:hn(i,ywr);var S=Jr0(s,c),M=S[4],K=M||p;hn(i,S[2]);var V=S[3];pz(function(w0){return S1(e,w0)},V);var s=S[1],p=K;continue;case 2:var f0=Se(c);hn(i,f0);var m0=d7(Ei(s,nt(s,c)),c);return hn(e,f0),[0,m0,h7(m0,c),p];case 3:var k0=Se(c);hn(i,k0);var g0=Ei(s,nt(s,c));return hn(e,k0),[0,g0,h7(g0,c),p];default:var e0=c[6],x0=c[3]-e0|0,l=Lt(x0*4|0),c0=Rl(c[1],e0,x0,l);sN(i,l,0,c0),sN(e,l,0,c0);continue}}}function Zr0(t,n,e,i,x){for(var c=t;;){gn(x);var s=j(x),p=96>>0)var y=q(x);else switch(p){case 0:var y=0;break;case 1:for(;;){G0(x,6);var T=j(x);if(-1>>0)return ke(hwr);switch(y){case 0:return[0,Ei(c,nt(c,x)),1];case 1:return qi(i,96),[0,c,1];case 2:return hn(i,dwr),[0,c,0];case 3:qi(e,92),qi(i,92);var A=Jr0(c,x),S=A[2];hn(e,S),hn(i,S);var M=A[3];pz(function(m0){return S1(n,m0)},M);var c=A[1];continue;case 4:hn(e,kwr),hn(i,wwr),hn(n,Ewr);var c=d7(c,x);continue;case 5:var K=Se(x);hn(e,K),hn(i,K),qi(n,10);var c=d7(c,x);continue;default:var V=Se(x);hn(e,V),hn(i,V),hn(n,V);continue}}}function Pee(t,n){function e(B0){for(;;)if(G0(B0,33),dn(j(B0))!==0)return q(B0)}function i(B0){for(;;)if(G0(B0,27),dn(j(B0))!==0)return q(B0)}function x(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),dn(j(B0))!==0)return q(B0)}return D0===1?i(B0):q(B0)}function c(B0){for(;;)if(G0(B0,27),dn(j(B0))!==0)return q(B0)}function s(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),dn(j(B0))!==0)return q(B0)}return D0===1?c(B0):q(B0)}function p(B0){r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,28);var D0=Mc(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return c(B0);case 1:continue;case 2:continue r;default:return s(B0)}}return q(B0)}}function y(B0){G0(B0,33);var D0=Gr0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:var Le=C1(j(B0));if(Le===0)for(;;){G0(B0,28);var He=Qv(j(B0));if(2>>0)return q(B0);switch(He){case 0:return c(B0);case 1:continue;default:return s(B0)}}if(Le===1)for(;;){G0(B0,28);var he=Mc(j(B0));if(3>>0)return q(B0);switch(he){case 0:return c(B0);case 1:continue;case 2:return p(B0);default:return s(B0)}}return q(B0);case 2:for(;;){G0(B0,28);var me=Qv(j(B0));if(2>>0)return q(B0);switch(me){case 0:return i(B0);case 1:continue;default:return x(B0)}}default:for(;;){G0(B0,28);var Zn=Mc(j(B0));if(3>>0)return q(B0);switch(Zn){case 0:return i(B0);case 1:continue;case 2:return p(B0);default:return x(B0)}}}}function T(B0){G0(B0,31);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,29),dn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function E(B0){return G0(B0,3),Ur0(j(B0))===0?3:q(B0)}function d(B0){return m9(j(B0))===0&&v9(j(B0))===0&&Br0(j(B0))===0&&Ar0(j(B0))===0&&Nr0(j(B0))===0&&vL(j(B0))===0&&Bl(j(B0))===0&&m9(j(B0))===0&&Ls(j(B0))===0&&Cr0(j(B0))===0&&Ul(j(B0))===0?3:q(B0)}function w(B0){G0(B0,34);var D0=Or0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Ps(j(B0));if(4>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var He=Ps(j(B0));if(4>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}case 2:return y(B0);default:return T(B0)}}function G(B0){for(;;)if(G0(B0,19),dn(j(B0))!==0)return q(B0)}function A(B0){G0(B0,34);var D0=Qv(j(B0));if(2>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Mc(j(B0));if(3>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var He=Mc(j(B0));if(3>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}default:return T(B0)}}function S(B0){for(;;)if(G0(B0,17),dn(j(B0))!==0)return q(B0)}function M(B0){for(;;)if(G0(B0,17),dn(j(B0))!==0)return q(B0)}function K(B0){for(;;)if(G0(B0,11),dn(j(B0))!==0)return q(B0)}function V(B0){for(;;)if(G0(B0,11),dn(j(B0))!==0)return q(B0)}function f0(B0){for(;;)if(G0(B0,15),dn(j(B0))!==0)return q(B0)}function m0(B0){for(;;)if(G0(B0,15),dn(j(B0))!==0)return q(B0)}function k0(B0){for(;;)if(G0(B0,23),dn(j(B0))!==0)return q(B0)}function g0(B0){for(;;)if(G0(B0,23),dn(j(B0))!==0)return q(B0)}function e0(B0){G0(B0,32);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,30),dn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function x0(B0){r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var D0=Rr0(j(B0));if(4>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:return A(B0);case 2:continue;case 3:continue r;default:return e0(B0)}}return q(B0)}}gn(n);var l=j(n),c0=ef>>0)var t0=q(n);else switch(c0){case 0:var t0=98;break;case 1:var t0=99;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var t0=q(n);break}}else var t0=q(n);break;case 3:var t0=0;break;case 4:G0(n,0);var o0=xi(j(n))!==0?1:0,t0=o0&&q(n);break;case 5:G0(n,88);var t0=Ui(j(n))===0?(G0(n,58),Ui(j(n))===0?54:q(n)):q(n);break;case 6:var t0=7;break;case 7:G0(n,95);var w0=j(n),_0=32>>0)var t0=q(n);else switch(b){case 0:G0(n,83);var t0=Ui(j(n))===0?70:q(n);break;case 1:var t0=4;break;default:var t0=69}break;case 14:G0(n,80);var R0=j(n),X=42>>0)var t0=q(n);else switch(or){case 0:var t0=e(n);break;case 1:continue;case 2:var t0=y(n);break;case 3:r:for(;;){if(pn(j(n))===0)for(;;){G0(n,34);var W0=Ps(j(n));if(4>>0)var Lr=q(n);else switch(W0){case 0:var Lr=e(n);break;case 1:continue;case 2:var Lr=y(n);break;case 3:continue r;default:var Lr=T(n)}break}else var Lr=q(n);var t0=Lr;break}break;default:var t0=T(n)}break}else var t0=q(n);break;case 18:G0(n,93);var Tr=Ir0(j(n));if(2>>0)var t0=q(n);else switch(Tr){case 0:G0(n,2);var Hr=i9(j(n));if(2
>>0)var t0=q(n);else switch(Hr){case 0:for(;;){var Or=i9(j(n));if(2>>0)var t0=q(n);else switch(Or){case 0:continue;case 1:var t0=E(n);break;default:var t0=d(n)}break}break;case 1:var t0=E(n);break;default:var t0=d(n)}break;case 1:var t0=5;break;default:var t0=92}break;case 19:G0(n,34);var fr=lL(j(n));if(8>>0)var t0=q(n);else switch(fr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,20);var Rr=Mr0(j(n));if(4>>0)var t0=q(n);else switch(Rr){case 0:var t0=G(n);break;case 1:var t0=A(n);break;case 2:continue;case 3:for(;;){G0(n,18);var Wr=u9(j(n));if(3>>0)var t0=q(n);else switch(Wr){case 0:var t0=S(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Jr=Bt(j(n));if(Jr===0){for(;;)if(G0(n,17),dn(j(n))!==0){var t0=q(n);break}}else var t0=Jr===1?S(n):q(n)}break}break;default:G0(n,19);var ar=Bt(j(n));if(ar===0){for(;;)if(G0(n,19),dn(j(n))!==0){var t0=q(n);break}}else var t0=ar===1?G(n):q(n)}break}break;case 3:for(;;){G0(n,18);var _r=u9(j(n));if(3<_r>>>0)var t0=q(n);else switch(_r){case 0:var t0=M(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Ir=Bt(j(n));if(Ir===0){for(;;)if(G0(n,17),dn(j(n))!==0){var t0=q(n);break}}else var t0=Ir===1?M(n):q(n)}break}break;case 4:G0(n,33);var fe=Pr0(j(n));if(fe===0)var t0=e(n);else if(fe===1)for(;;){G0(n,12);var v0=k9(j(n));if(3>>0)var t0=q(n);else switch(v0){case 0:var t0=K(n);break;case 1:continue;case 2:r:for(;;){if(Gc(j(n))===0)for(;;){G0(n,12);var P=k9(j(n));if(3

>>0)var Q=q(n);else switch(P){case 0:var Q=V(n);break;case 1:continue;case 2:continue r;default:G0(n,10);var L=Bt(j(n));if(L===0){for(;;)if(G0(n,9),dn(j(n))!==0){var Q=q(n);break}}else var Q=L===1?V(n):q(n)}break}else var Q=q(n);var t0=Q;break}break;default:G0(n,10);var i0=Bt(j(n));if(i0===0){for(;;)if(G0(n,9),dn(j(n))!==0){var t0=q(n);break}}else var t0=i0===1?K(n):q(n)}break}else var t0=q(n);break;case 5:var t0=y(n);break;case 6:G0(n,33);var l0=Dr0(j(n));if(l0===0)var t0=e(n);else if(l0===1)for(;;){G0(n,16);var S0=h9(j(n));if(3>>0)var t0=q(n);else switch(S0){case 0:var t0=f0(n);break;case 1:continue;case 2:r:for(;;){if(zu(j(n))===0)for(;;){G0(n,16);var T0=h9(j(n));if(3>>0)var L0=q(n);else switch(T0){case 0:var L0=m0(n);break;case 1:continue;case 2:continue r;default:G0(n,14);var rr=Bt(j(n));if(rr===0){for(;;)if(G0(n,13),dn(j(n))!==0){var L0=q(n);break}}else var L0=rr===1?m0(n):q(n)}break}else var L0=q(n);var t0=L0;break}break;default:G0(n,14);var B=Bt(j(n));if(B===0){for(;;)if(G0(n,13),dn(j(n))!==0){var t0=q(n);break}}else var t0=B===1?f0(n):q(n)}break}else var t0=q(n);break;case 7:G0(n,33);var Z=Er0(j(n));if(Z===0)var t0=e(n);else if(Z===1)for(;;){G0(n,24);var p0=w9(j(n));if(3>>0)var t0=q(n);else switch(p0){case 0:var t0=k0(n);break;case 1:continue;case 2:r:for(;;){if(Nn(j(n))===0)for(;;){G0(n,24);var b0=w9(j(n));if(3>>0)var M0=q(n);else switch(b0){case 0:var M0=g0(n);break;case 1:continue;case 2:continue r;default:G0(n,22);var O0=Bt(j(n));if(O0===0){for(;;)if(G0(n,21),dn(j(n))!==0){var M0=q(n);break}}else var M0=O0===1?g0(n):q(n)}break}else var M0=q(n);var t0=M0;break}break;default:G0(n,22);var er=Bt(j(n));if(er===0){for(;;)if(G0(n,21),dn(j(n))!==0){var t0=q(n);break}}else var t0=er===1?k0(n):q(n)}break}else var t0=q(n);break;default:var t0=e0(n)}break;case 20:G0(n,34);var yr=o9(j(n));if(5>>0)var t0=q(n);else switch(yr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,34);var vr=o9(j(n));if(5>>0)var t0=q(n);else switch(vr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:continue;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break}break;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break;case 21:var t0=46;break;case 22:var t0=44;break;case 23:G0(n,78);var $0=j(n),Er=59<$0?61<$0?-1:Vr(rN,$0-60|0)-1|0:-1,t0=Er===0?(G0(n,62),Ui(j(n))===0?61:q(n)):Er===1?55:q(n);break;case 24:G0(n,90);var Mr=sL(j(n)),t0=Mr===0?(G0(n,57),Ui(j(n))===0?53:q(n)):Mr===1?91:q(n);break;case 25:G0(n,79);var Br=sL(j(n));if(Br===0)var t0=56;else if(Br===1){G0(n,66);var qr=sL(j(n)),t0=qr===0?63:qr===1?(G0(n,65),Ui(j(n))===0?64:q(n)):q(n)}else var t0=q(n);break;case 26:G0(n,50);var jr=j(n),$r=45>>0)return ke(vPr);var I=t0;if(50<=I)switch(I){case 50:return[0,t,85];case 51:return[0,t,88];case 52:return[0,t,87];case 53:return[0,t,94];case 54:return[0,t,95];case 55:return[0,t,96];case 56:return[0,t,97];case 57:return[0,t,92];case 58:return[0,t,93];case 59:return[0,t,cf];case 60:return[0,t,T7];case 61:return[0,t,69];case 62:return[0,t,ti];case 63:return[0,t,68];case 64:return[0,t,67];case 65:return[0,t,Ri];case 66:return[0,t,R7];case 67:return[0,t,78];case 68:return[0,t,77];case 69:return[0,t,75];case 70:return[0,t,76];case 71:return[0,t,73];case 72:return[0,t,72];case 73:return[0,t,71];case 74:return[0,t,70];case 75:return[0,t,79];case 76:return[0,t,80];case 77:return[0,t,81];case 78:return[0,t,98];case 79:return[0,t,99];case 80:return[0,t,s7];case 81:return[0,t,L7];case 82:return[0,t,Yt];case 83:return[0,t,Zc];case 84:return[0,t,is];case 85:return[0,t,89];case 86:return[0,t,91];case 87:return[0,t,90];case 88:return[0,t,Fv];case 89:return[0,t,Xt];case 90:return[0,t,82];case 91:return[0,t,11];case 92:return[0,t,74];case 93:return[0,t,j7];case 94:return[0,t,13];case 95:return[0,t,14];case 96:return[2,Ei(t,nt(t,n))];case 97:var U=n[6];Hr0(n);var Y=Hl(t,U,n[3]);tL(n,U);var y0=Ll(n),P0=Wr0(t,y0),I0=P0[2],D=Ee(I0,yPr);if(0<=D){if(!(0>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Gc(j(D0))===0)for(;;){var He=n9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,0,Se(D0)]]:ke(sPr)});case 10:return[0,t,[1,0,Se(n)]];case 11:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&c9(j(D0))===0&&Gc(j(D0))===0)for(;;){G0(D0,0);var Le=e9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Gc(j(D0))===0)for(;;){G0(D0,0);var He=e9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,0,Se(D0)]]:ke(cPr)});case 12:return[0,t,[0,0,Se(n)]];case 13:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){var Le=a9(j(D0));if(2>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(zu(j(D0))===0)for(;;){var He=a9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,1,Se(D0)]]:ke(aPr)});case 14:return[0,t,[1,1,Se(n)]];case 15:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){G0(D0,0);var Le=x9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(zu(j(D0))===0)for(;;){G0(D0,0);var He=x9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,3,Se(D0)]]:ke(oPr)});case 16:return[0,t,[0,3,Se(n)]];case 17:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0)for(;;){var Le=j(D0),He=47>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Nn(j(D0))===0)for(;;){var He=t9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,2,Se(D0)]]:ke(iPr)});case 23:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&Zm(j(D0))===0&&Nn(j(D0))===0)for(;;){G0(D0,0);var Le=_9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Nn(j(D0))===0)for(;;){G0(D0,0);var He=_9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,4,Se(D0)]]:ke(uPr)});case 25:return Rt(t,n,function(B0,D0){function Le(ln){for(;;){var it=wi(j(ln));if(2>>0)return q(ln);switch(it){case 0:continue;case 1:r:for(;;){if(pn(j(ln))===0)for(;;){var Tt=wi(j(ln));if(2>>0)return q(ln);switch(Tt){case 0:continue;case 1:continue r;default:return 0}}return q(ln)}default:return 0}}}function He(ln){for(;;){var it=r2(j(ln));if(it!==0){var Tt=it!==1?1:0;return Tt&&q(ln)}}}function he(ln){var it=E9(j(ln));if(2>>0)return q(ln);switch(it){case 0:var Tt=C1(j(ln));return Tt===0?He(ln):Tt===1?Le(ln):q(ln);case 1:return He(ln);default:return Le(ln)}}function me(ln){var it=p9(j(ln));if(it===0)for(;;){var Tt=f7(j(ln));if(2>>0)return q(ln);switch(Tt){case 0:continue;case 1:return he(ln);default:r:for(;;){if(pn(j(ln))===0)for(;;){var Ti=f7(j(ln));if(2>>0)return q(ln);switch(Ti){case 0:continue;case 1:return he(ln);default:continue r}}return q(ln)}}}return it===1?he(ln):q(ln)}gn(D0);var Zn=Qm(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:if(pn(j(D0))===0)for(;;){var ft=f7(j(D0));if(2>>0)var wn=q(D0);else switch(ft){case 0:continue;case 1:var wn=he(D0);break;default:r:for(;;){if(pn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var jn=q(D0);else switch(xt){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var wn=jn;break}}break}else var wn=q(D0);break;case 1:var ut=r9(j(D0)),wn=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var dt=l9(j(D0));if(2

>>0)var wn=q(D0);else switch(dt){case 0:var wn=me(D0);break;case 1:continue;default:var wn=he(D0)}break}}if(wn===0){var xn=Gu(B0,nt(B0,D0),23);return[0,xn,[1,2,Se(D0)]]}return ke(tPr)});case 26:var Bu=Gu(t,nt(t,n),23);return[0,Bu,[1,2,Se(n)]];case 27:return Rt(t,n,function(B0,D0){function Le(xn){for(;;){G0(xn,0);var ln=Ds(j(xn));if(ln!==0){if(ln===1)r:for(;;){if(pn(j(xn))===0)for(;;){G0(xn,0);var it=Ds(j(xn));if(it!==0){if(it===1)continue r;return q(xn)}}return q(xn)}return q(xn)}}}function He(xn){for(;;)if(G0(xn,0),pn(j(xn))!==0)return q(xn)}function he(xn){var ln=E9(j(xn));if(2>>0)return q(xn);switch(ln){case 0:var it=C1(j(xn));return it===0?He(xn):it===1?Le(xn):q(xn);case 1:return He(xn);default:return Le(xn)}}function me(xn){var ln=p9(j(xn));if(ln===0)for(;;){var it=f7(j(xn));if(2>>0)return q(xn);switch(it){case 0:continue;case 1:return he(xn);default:r:for(;;){if(pn(j(xn))===0)for(;;){var Tt=f7(j(xn));if(2>>0)return q(xn);switch(Tt){case 0:continue;case 1:return he(xn);default:continue r}}return q(xn)}}}return ln===1?he(xn):q(xn)}gn(D0);var Zn=Qm(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:if(pn(j(D0))===0)for(;;){var ft=f7(j(D0));if(2>>0)var wn=q(D0);else switch(ft){case 0:continue;case 1:var wn=he(D0);break;default:r:for(;;){if(pn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var jn=q(D0);else switch(xt){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var wn=jn;break}}break}else var wn=q(D0);break;case 1:var ut=r9(j(D0)),wn=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var dt=l9(j(D0));if(2
>>0)var wn=q(D0);else switch(dt){case 0:var wn=me(D0);break;case 1:continue;default:var wn=he(D0)}break}}return wn===0?[0,B0,[0,4,Se(D0)]]:ke(nPr)});case 29:return Rt(t,n,function(B0,D0){function Le(ut){for(;;){var dt=wi(j(ut));if(2
>>0)return q(ut);switch(dt){case 0:continue;case 1:r:for(;;){if(pn(j(ut))===0)for(;;){var xn=wi(j(ut));if(2>>0)return q(ut);switch(xn){case 0:continue;case 1:continue r;default:return 0}}return q(ut)}default:return 0}}}function He(ut){var dt=r2(j(ut));if(dt===0)return Le(ut);var xn=dt!==1?1:0;return xn&&q(ut)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=pn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){var Zn=D1(j(D0));if(Zn===0)var me=He(D0);else{if(Zn===1)continue;var me=q(D0)}break}break;default:for(;;){var wn=Bc(j(D0));if(2>>0)var me=q(D0);else switch(wn){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(pn(j(D0))===0)for(;;){var ft=Bc(j(D0));if(2>>0)var xt=q(D0);else switch(ft){case 0:var xt=He(D0);break;case 1:continue;default:continue r}break}else var xt=q(D0);var me=xt;break}}break}}if(me===0){var jn=Gu(B0,nt(B0,D0),22);return[0,jn,[1,2,Se(D0)]]}return ke(ePr)});case 30:return Rt(t,n,function(B0,D0){gn(D0);var Le=C1(j(D0));if(Le===0)for(;;){var He=r2(j(D0));if(He!==0){var he=He!==1?1:0,ft=he&&q(D0);break}}else if(Le===1)for(;;){var me=wi(j(D0));if(2>>0)var ft=q(D0);else switch(me){case 0:continue;case 1:r:for(;;){if(pn(j(D0))===0)for(;;){var Zn=wi(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:continue;case 1:continue r;default:var wn=0}break}else var wn=q(D0);var ft=wn;break}break;default:var ft=0}break}else var ft=q(D0);return ft===0?[0,B0,[1,2,Se(D0)]]:ke(rPr)});case 31:var K7=Gu(t,nt(t,n),22);return[0,K7,[1,2,Se(n)]];case 33:return Rt(t,n,function(B0,D0){function Le(jn){for(;;){G0(jn,0);var ut=Ds(j(jn));if(ut!==0){if(ut===1)r:for(;;){if(pn(j(jn))===0)for(;;){G0(jn,0);var dt=Ds(j(jn));if(dt!==0){if(dt===1)continue r;return q(jn)}}return q(jn)}return q(jn)}}}function He(jn){return G0(jn,0),pn(j(jn))===0?Le(jn):q(jn)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=pn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){G0(D0,0);var Zn=D1(j(D0));if(Zn===0)var me=He(D0);else{if(Zn===1)continue;var me=q(D0)}break}break;default:for(;;){G0(D0,0);var wn=Bc(j(D0));if(2>>0)var me=q(D0);else switch(wn){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(pn(j(D0))===0)for(;;){G0(D0,0);var ft=Bc(j(D0));if(2>>0)var xt=q(D0);else switch(ft){case 0:var xt=He(D0);break;case 1:continue;default:continue r}break}else var xt=q(D0);var me=xt;break}}break}}return me===0?[0,B0,[0,4,Se(D0)]]:ke(QCr)});case 35:var Yi=nt(t,n),a7=Se(n);return[0,t,[4,Yi,a7,a7]];case 36:return[0,t,0];case 37:return[0,t,1];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,6];case 41:return[0,t,7];case 42:return[0,t,12];case 43:return[0,t,10];case 44:return[0,t,8];case 45:return[0,t,9];case 46:return[0,t,86];case 47:$v(n),gn(n);var Hc=j(n),W7=62>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=6;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;default:G0(n,5);var c=d9(j(n)),x=c===0?4:c===1?3:q(n)}if(6>>0)return ke(ZCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var s=ju(t,n),p=$n(zn),y=e2(t,p,n),T=y[1];return[1,T,Si(T,s,y[2],p,0)];case 4:var E=ju(t,n),d=$n(zn),w=R1(t,d,n),G=w[1];return[1,G,Si(G,E,w[2],d,1)];case 5:var A=ju(t,n),S=$n(zn),M=t;r:for(;;){gn(n);var K=j(n),V=92>>0)var f0=q(n);else switch(V){case 0:var f0=0;break;case 1:for(;;){G0(n,7);var m0=j(n);if(-1>>0)var f0=q(n);else switch(l){case 0:var f0=2;break;case 1:var f0=1;break;default:G0(n,1);var f0=xi(j(n))===0?1:q(n)}}if(7>>0)var c0=ke(Fwr);else switch(f0){case 0:var c0=[0,Gu(M,nt(M,n),25),Twr];break;case 1:var c0=[0,d7(Gu(M,nt(M,n),25),n),Owr];break;case 3:var t0=Se(n),c0=[0,M,m7(t0,1,un(t0)-1|0)];break;case 4:var c0=[0,M,Iwr];break;case 5:for(qi(S,91);;){gn(n);var o0=j(n),w0=93>>0)var _0=q(n);else switch(w0){case 0:var _0=0;break;case 1:for(;;){G0(n,4);var E0=j(n);if(-1>>0)var s0=ke(Swr);else switch(_0){case 0:var s0=M;break;case 1:hn(S,gwr);continue;case 2:qi(S,92),qi(S,93);continue;case 3:qi(S,93);var s0=M;break;default:hn(S,Se(n));continue}var M=s0;continue r}case 6:var c0=[0,d7(Gu(M,nt(M,n),25),n),Awr];break;default:hn(S,Se(n));continue}var hr=c0[1],Ar=h7(hr,n),or=[0,hr[1],A,Ar],W0=c0[2];return[0,hr,[5,or,Mt(S),W0]]}default:var Lr=Ei(t,nt(t,n));return[0,Lr,[6,Se(n)]]}}function pL(t,n,e,i,x){for(var c=t;;){var s=function(Cn){for(;;)if(G0(Cn,6),Fr0(j(Cn))!==0)return q(Cn)};gn(x);var p=j(x),y=br>>0)var T=q(x);else switch(y){case 0:var T=1;break;case 1:var T=s(x);break;case 2:var T=2;break;case 3:G0(x,2);var T=xi(j(x))===0?2:q(x);break;case 4:var T=0;break;case 5:G0(x,6);var E=j(x),d=34>>0)return ke(Nwr);switch(T){case 0:var c0=Se(x),t0=0;switch(n){case 0:n0(c0,Cwr)||(t0=1);break;case 1:n0(c0,Pwr)||(t0=1);break;default:var o0=0;if(n0(c0,Dwr)){if(!n0(c0,Lwr))return bL(c,nt(c,x),qwr,Bwr);if(n0(c0,Rwr)){if(!n0(c0,jwr))return bL(c,nt(c,x),Mwr,Gwr);o0=1}}if(!o0)return $v(x),c}if(t0)return c;hn(i,c0),hn(e,c0);continue;case 1:return Ei(c,nt(c,x));case 2:var w0=Se(x);hn(i,w0),hn(e,w0);var c=d7(c,x);continue;case 3:var _0=Se(x),E0=m7(_0,3,un(_0)-4|0);hn(i,_0),S1(e,Bi(Te(Uwr,E0)));continue;case 4:var U0=Se(x),b=m7(U0,2,un(U0)-3|0);hn(i,U0),S1(e,Bi(b));continue;case 5:var R0=Se(x),X=m7(R0,1,un(R0)-2|0);hn(i,R0);var s0=Ee(X,Hwr),hr=0;if(0<=s0)if(0>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=14;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;case 5:var x=12;break;case 6:var x=13;break;case 7:var x=10;break;case 8:G0(n,6);var c=d9(j(n)),x=c===0?4:c===1?3:q(n);break;case 9:var x=9;break;case 10:var x=5;break;case 11:var x=11;break;case 12:var x=7;break;case 13:if(G0(n,14),Ls(j(n))===0){var s=L1(j(n));if(s===0)var x=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?13:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var x=p===1?13:q(n);break}}else var x=q(n)}else var x=q(n);break;default:var x=8}if(14>>0)return ke(JCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var y=ju(t,n),T=$n(zn),E=e2(t,T,n),d=E[1];return[1,d,Si(d,y,E[2],T,0)];case 4:var w=ju(t,n),G=$n(zn),A=R1(t,G,n),S=A[1];return[1,S,Si(S,w,A[2],G,1)];case 5:return[0,t,98];case 6:return[0,t,j7];case 7:return[0,t,99];case 8:return[0,t,0];case 9:return[0,t,86];case 10:return[0,t,10];case 11:return[0,t,82];case 12:var M=Se(n),K=ju(t,n),V=$n(zn),f0=$n(zn);hn(f0,M);var m0=qn(M,$Cr)?0:1,k0=pL(t,m0,V,f0,n),g0=h7(k0,n);hn(f0,M);var e0=Mt(V),x0=Mt(f0);return[0,k0,[8,[0,k0[1],K,g0],e0,x0]];case 13:for(var l=n[6];;){gn(n);var c0=j(n),t0=In>>0)var o0=q(n);else switch(t0){case 0:var o0=1;break;case 1:var o0=2;break;case 2:var o0=0;break;default:if(G0(n,2),Ls(j(n))===0){var w0=L1(j(n));if(w0===0)if(Nn(j(n))===0&&Nn(j(n))===0)var _0=Nn(j(n))!==0?1:0,o0=_0&&q(n);else var o0=q(n);else if(w0===1&&Nn(j(n))===0)for(;;){var E0=A1(j(n));if(E0!==0){var U0=E0!==1?1:0,o0=U0&&q(n);break}}else var o0=q(n)}else var o0=q(n)}if(2>>0)throw[0,Sn,vwr];switch(o0){case 0:continue;case 1:break;default:if(nL(br0(n)))continue;mr0(n,1)}var b=n[3];tL(n,l);var R0=Ll(n),X=Hl(t,l,b);return[0,t,[7,uL(R0),X]]}default:return[0,t,[6,Se(n)]]}}function Ree(t,n){gn(n);var e=j(n);if(-1>>0)var E=q(n);else switch(T){case 0:var E=5;break;case 1:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var E=q(n);break}}else var E=q(n);break;case 2:var E=0;break;case 3:G0(n,0);var d=xi(j(n))!==0?1:0,E=d&&q(n);break;case 4:G0(n,5);var w=d9(j(n)),E=w===0?3:w===1?2:q(n);break;default:var E=4}if(5>>0)return ke(zCr);switch(E){case 0:return[2,d7(t,n)];case 1:return[2,t];case 2:var G=ju(t,n),A=$n(zn),S=e2(t,A,n),M=S[1];return[1,M,Si(M,G,S[2],A,0)];case 3:var K=ju(t,n),V=$n(zn),f0=R1(t,V,n),m0=f0[1];return[1,m0,Si(m0,K,f0[2],V,1)];case 4:var k0=ju(t,n),g0=$n(zn),e0=$n(zn),x0=$n(zn);hn(x0,KCr);var l=Zr0(t,g0,e0,x0,n),c0=l[1],t0=h7(c0,n),o0=[0,c0[1],k0,t0],w0=l[2],_0=Mt(x0),E0=Mt(e0);return[0,c0,[3,[0,o0,[0,Mt(g0),E0,_0],w0]]];default:var U0=Ei(t,nt(t,n));return[0,U0,[3,[0,nt(U0,n),WCr,1]]]}}function jee(t,n){function e(D){for(;;)if(G0(D,29),dn(j(D))!==0)return q(D)}function i(D){G0(D,27);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,25),dn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function x(D){for(;;)if(G0(D,23),dn(j(D))!==0)return q(D)}function c(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),dn(j(D))!==0)return q(D)}return u0===1?x(D):q(D)}function s(D){for(;;)if(G0(D,23),dn(j(D))!==0)return q(D)}function p(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),dn(j(D))!==0)return q(D)}return u0===1?s(D):q(D)}function y(D){r:for(;;){if(pn(j(D))===0)for(;;){G0(D,24);var u0=Mc(j(D));if(3>>0)return q(D);switch(u0){case 0:return s(D);case 1:continue;case 2:continue r;default:return p(D)}}return q(D)}}function T(D){G0(D,29);var u0=Gr0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:var X0=C1(j(D));if(X0===0)for(;;){G0(D,24);var J0=Qv(j(D));if(2>>0)return q(D);switch(J0){case 0:return s(D);case 1:continue;default:return p(D)}}if(X0===1)for(;;){G0(D,24);var ir=Mc(j(D));if(3>>0)return q(D);switch(ir){case 0:return s(D);case 1:continue;case 2:return y(D);default:return p(D)}}return q(D);case 2:for(;;){G0(D,24);var Q0=Qv(j(D));if(2>>0)return q(D);switch(Q0){case 0:return x(D);case 1:continue;default:return c(D)}}default:for(;;){G0(D,24);var F0=Mc(j(D));if(3>>0)return q(D);switch(F0){case 0:return x(D);case 1:continue;case 2:return y(D);default:return c(D)}}}}function E(D){for(;;){G0(D,30);var u0=Ps(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var X0=Ps(j(D));if(4>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}}function d(D){return pn(j(D))===0?E(D):q(D)}function w(D){for(;;)if(G0(D,19),dn(j(D))!==0)return q(D)}function G(D){for(;;)if(G0(D,19),dn(j(D))!==0)return q(D)}function A(D){G0(D,29);var u0=Er0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,20);var X0=w9(j(D));if(3>>0)return q(D);switch(X0){case 0:return G(D);case 1:continue;case 2:r:for(;;){if(Nn(j(D))===0)for(;;){G0(D,20);var J0=w9(j(D));if(3>>0)return q(D);switch(J0){case 0:return w(D);case 1:continue;case 2:continue r;default:G0(D,18);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,17),dn(j(D))!==0)return q(D)}return ir===1?w(D):q(D)}}return q(D)}default:G0(D,18);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,17),dn(j(D))!==0)return q(D)}return Q0===1?G(D):q(D)}}return q(D)}function S(D){for(;;)if(G0(D,13),dn(j(D))!==0)return q(D)}function M(D){for(;;)if(G0(D,13),dn(j(D))!==0)return q(D)}function K(D){G0(D,29);var u0=Dr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,14);var X0=h9(j(D));if(3>>0)return q(D);switch(X0){case 0:return M(D);case 1:continue;case 2:r:for(;;){if(zu(j(D))===0)for(;;){G0(D,14);var J0=h9(j(D));if(3>>0)return q(D);switch(J0){case 0:return S(D);case 1:continue;case 2:continue r;default:G0(D,12);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,11),dn(j(D))!==0)return q(D)}return ir===1?S(D):q(D)}}return q(D)}default:G0(D,12);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,11),dn(j(D))!==0)return q(D)}return Q0===1?M(D):q(D)}}return q(D)}function V(D){for(;;)if(G0(D,9),dn(j(D))!==0)return q(D)}function f0(D){for(;;)if(G0(D,9),dn(j(D))!==0)return q(D)}function m0(D){G0(D,29);var u0=Pr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,10);var X0=k9(j(D));if(3>>0)return q(D);switch(X0){case 0:return f0(D);case 1:continue;case 2:r:for(;;){if(Gc(j(D))===0)for(;;){G0(D,10);var J0=k9(j(D));if(3>>0)return q(D);switch(J0){case 0:return V(D);case 1:continue;case 2:continue r;default:G0(D,8);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,7),dn(j(D))!==0)return q(D)}return ir===1?V(D):q(D)}}return q(D)}default:G0(D,8);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,7),dn(j(D))!==0)return q(D)}return Q0===1?f0(D):q(D)}}return q(D)}function k0(D){G0(D,28);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,26),dn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function g0(D){G0(D,30);var u0=Qv(j(D));if(2>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var X0=Mc(j(D));if(3>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var J0=Mc(j(D));if(3>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:continue r;default:return i(D)}}return q(D)}default:return i(D)}}default:return i(D)}}function e0(D){for(;;){G0(D,30);var u0=u9(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;default:return k0(D)}}}function x0(D){for(;;)if(G0(D,15),dn(j(D))!==0)return q(D)}function l(D){G0(D,15);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,15),dn(j(D))!==0)return q(D)}return u0===1?x0(D):q(D)}function c0(D){for(;;){G0(D,16);var u0=Mr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return x0(D);case 1:return g0(D);case 2:continue;case 3:for(;;){G0(D,15);var X0=u9(j(D));if(3>>0)return q(D);switch(X0){case 0:return x0(D);case 1:return g0(D);case 2:continue;default:return l(D)}}default:return l(D)}}}function t0(D){G0(D,30);var u0=Or0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var X0=Ps(j(D));if(4>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var J0=Ps(j(D));if(4>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}case 2:return T(D);default:return i(D)}}function o0(D){G0(D,30);var u0=lL(j(D));if(8>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:return c0(D);case 3:return e0(D);case 4:return m0(D);case 5:return T(D);case 6:return K(D);case 7:return A(D);default:return k0(D)}}function w0(D){r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var u0=Rr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;case 3:continue r;default:return k0(D)}}return q(D)}}function _0(D){for(;;){G0(D,30);var u0=o9(j(D));if(5>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:continue;case 3:return T(D);case 4:return w0(D);default:return k0(D)}}}function E0(D){return G0(D,3),Ur0(j(D))===0?3:q(D)}function U0(D){return m9(j(D))===0&&v9(j(D))===0&&Br0(j(D))===0&&Ar0(j(D))===0&&Nr0(j(D))===0&&vL(j(D))===0&&Bl(j(D))===0&&m9(j(D))===0&&Ls(j(D))===0&&Cr0(j(D))===0&&Ul(j(D))===0?3:q(D)}gn(n);var b=j(n),R0=ef>>0)var X=q(n);else switch(R0){case 0:var X=62;break;case 1:var X=63;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var X=q(n);break}}else var X=q(n);break;case 3:var X=0;break;case 4:G0(n,0);var s0=xi(j(n))!==0?1:0,X=s0&&q(n);break;case 5:var X=6;break;case 6:var X=61;break;case 7:if(G0(n,63),Bl(j(n))===0){var hr=j(n),Ar=s7>>0)var X=q(n);else switch(Lr){case 0:for(;;){var Tr=ql(j(n));if(3>>0)var X=q(n);else switch(Tr){case 0:continue;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break}break;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break;case 15:G0(n,41);var Hr=D1(j(n)),X=Hr===0?cL(j(n))===0?40:q(n):Hr===1?E(n):q(n);break;case 16:G0(n,63);var Or=d9(j(n));if(Or===0){G0(n,2);var fr=i9(j(n));if(2>>0)var X=q(n);else switch(fr){case 0:for(;;){var Rr=i9(j(n));if(2>>0)var X=q(n);else switch(Rr){case 0:continue;case 1:var X=E0(n);break;default:var X=U0(n)}break}break;case 1:var X=E0(n);break;default:var X=U0(n)}}else var X=Or===1?5:q(n);break;case 17:G0(n,30);var Wr=lL(j(n));if(8>>0)var X=q(n);else switch(Wr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=c0(n);break;case 3:var X=e0(n);break;case 4:var X=m0(n);break;case 5:var X=T(n);break;case 6:var X=K(n);break;case 7:var X=A(n);break;default:var X=k0(n)}break;case 18:G0(n,30);var Jr=o9(j(n));if(5>>0)var X=q(n);else switch(Jr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=_0(n);break;case 3:var X=T(n);break;case 4:var X=w0(n);break;default:var X=k0(n)}break;case 19:var X=44;break;case 20:var X=42;break;case 21:var X=49;break;case 22:G0(n,51);var ar=j(n),_r=61>>0)return ke(SCr);var i0=X;if(32<=i0)switch(i0){case 34:return[0,t,0];case 35:return[0,t,1];case 36:return[0,t,2];case 37:return[0,t,3];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,12];case 41:return[0,t,10];case 42:return[0,t,8];case 43:return[0,t,9];case 45:return[0,t,83];case 49:return[0,t,98];case 50:return[0,t,99];case 53:return[0,t,Yt];case 55:return[0,t,89];case 56:return[0,t,91];case 57:return[0,t,11];case 59:return[0,t,s7];case 60:return[0,t,L7];case 61:var l0=n[6];Hr0(n);var S0=Hl(t,l0,n[3]);tL(n,l0);var T0=Ll(n),rr=Wr0(t,T0),L0=rr[2],B=rr[1],Z=Ee(L0,OCr);if(0<=Z){if(!(0>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Gc(j(F0))===0)for(;;){var mr=n9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(0,Se(u0))]:ke(ECr)});case 8:return[0,t,Hi(0,Se(n))];case 9:return Rt(t,n,function(D,u0){function X0(F0){if(c9(j(F0))===0){if(Gc(j(F0))===0)for(;;){G0(F0,0);var Sr=e9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Gc(j(F0))===0)for(;;){G0(F0,0);var mr=e9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(0,Se(u0))]:ke(wCr)});case 10:return[0,t,qc(0,Se(n))];case 11:return Rt(t,n,function(D,u0){function X0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){var Sr=a9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(zu(j(F0))===0)for(;;){var mr=a9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(1,Se(u0))]:ke(kCr)});case 12:return[0,t,Hi(1,Se(n))];case 13:return Rt(t,n,function(D,u0){function X0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){G0(F0,0);var Sr=x9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(zu(j(F0))===0)for(;;){G0(F0,0);var mr=x9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(3,Se(u0))]:ke(dCr)});case 14:return[0,t,qc(3,Se(n))];case 15:return Rt(t,n,function(D,u0){function X0(F0){if(zu(j(F0))===0){for(;;)if(G0(F0,0),zu(j(F0))!==0)return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(1,Se(u0))]:ke(hCr)});case 16:return[0,t,qc(1,Se(n))];case 17:return Rt(t,n,function(D,u0){function X0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){var Sr=t9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Nn(j(F0))===0)for(;;){var mr=t9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(2,Se(u0))]:ke(yCr)});case 19:return Rt(t,n,function(D,u0){function X0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){G0(F0,0);var Sr=_9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Nn(j(F0))===0)for(;;){G0(F0,0);var mr=_9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(4,Se(u0))]:ke(_Cr)});case 21:return Rt(t,n,function(D,u0){function X0(h0){for(;;){var Kr=wi(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:r:for(;;){if(pn(j(h0))===0)for(;;){var re=wi(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:continue r;default:return 0}}return q(h0)}default:return 0}}}function J0(h0){for(;;){var Kr=r2(j(h0));if(Kr!==0){var re=Kr!==1?1:0;return re&&q(h0)}}}function ir(h0){var Kr=E9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:var re=C1(j(h0));return re===0?J0(h0):re===1?X0(h0):q(h0);case 1:return J0(h0);default:return X0(h0)}}function Q0(h0){if(pn(j(h0))===0)for(;;){var Kr=f7(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(pn(j(h0))===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return q(h0)}function F0(h0){var Kr=p9(j(h0));if(Kr===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(pn(j(h0))===0)for(;;){var xe=f7(j(h0));if(2>>0)return q(h0);switch(xe){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return Kr===1?ir(h0):q(h0)}function Sr(h0){var Kr=r9(j(h0));return Kr===0?F0(h0):Kr===1?ir(h0):q(h0)}function mr(h0){for(;;){var Kr=l9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:return F0(h0);case 1:continue;default:return ir(h0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}if(sr===0){var K0=Se(u0),Ur=Gu(D,nt(D,u0),23);return[0,Ur,Hi(2,K0)]}return ke(mCr)});case 22:var Y=Se(n),y0=Gu(t,nt(t,n),23);return[0,y0,Hi(2,Y)];case 23:return Rt(t,n,function(D,u0){function X0(K0){for(;;){G0(K0,0);var Ur=Ds(j(K0));if(Ur!==0){if(Ur===1)r:for(;;){if(pn(j(K0))===0)for(;;){G0(K0,0);var h0=Ds(j(K0));if(h0!==0){if(h0===1)continue r;return q(K0)}}return q(K0)}return q(K0)}}}function J0(K0){for(;;)if(G0(K0,0),pn(j(K0))!==0)return q(K0)}function ir(K0){var Ur=E9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:var h0=C1(j(K0));return h0===0?J0(K0):h0===1?X0(K0):q(K0);case 1:return J0(K0);default:return X0(K0)}}function Q0(K0){if(pn(j(K0))===0)for(;;){var Ur=f7(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return q(K0)}function F0(K0){var Ur=p9(j(K0));if(Ur===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(pn(j(K0))===0)for(;;){var Kr=f7(j(K0));if(2>>0)return q(K0);switch(Kr){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return Ur===1?ir(K0):q(K0)}function Sr(K0){var Ur=r9(j(K0));return Ur===0?F0(K0):Ur===1?ir(K0):q(K0)}function mr(K0){for(;;){var Ur=l9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return F0(K0);case 1:continue;default:return ir(K0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}return sr===0?[0,D,qc(4,Se(u0))]:ke(pCr)});case 25:return Rt(t,n,function(D,u0){function X0(K0){for(;;){var Ur=wi(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=wi(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:continue r;default:return 0}}return q(K0)}default:return 0}}}function J0(K0){return pn(j(K0))===0?X0(K0):q(K0)}function ir(K0){var Ur=r2(j(K0));if(Ur===0)return X0(K0);var h0=Ur!==1?1:0;return h0&&q(K0)}function Q0(K0){for(;;){var Ur=D1(j(K0));if(Ur===0)return ir(K0);if(Ur!==1)return q(K0)}}function F0(K0){for(;;){var Ur=Bc(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return ir(K0);case 1:continue;default:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=Bc(j(K0));if(2>>0)return q(K0);switch(h0){case 0:return ir(K0);case 1:continue;default:continue r}}return q(K0)}}}}gn(u0);var Sr=f9(j(u0));if(3>>0)var mr=q(u0);else switch(Sr){case 0:for(;;){var Cr=ql(j(u0));if(3>>0)var mr=q(u0);else switch(Cr){case 0:continue;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}break}break;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}if(mr===0){var sr=Se(u0),Pr=Gu(D,nt(D,u0),22);return[0,Pr,Hi(2,sr)]}return ke(bCr)});case 26:return Rt(t,n,function(D,u0){function X0(mr){for(;;){var Cr=r2(j(mr));if(Cr!==0){var sr=Cr!==1?1:0;return sr&&q(mr)}}}function J0(mr){for(;;){var Cr=wi(j(mr));if(2>>0)return q(mr);switch(Cr){case 0:continue;case 1:r:for(;;){if(pn(j(mr))===0)for(;;){var sr=wi(j(mr));if(2>>0)return q(mr);switch(sr){case 0:continue;case 1:continue r;default:return 0}}return q(mr)}default:return 0}}}gn(u0);var ir=j(u0),Q0=44>>0)var F0=q(u0);else switch(Q0){case 0:for(;;){var Sr=jr0(j(u0));if(2>>0)var F0=q(u0);else switch(Sr){case 0:continue;case 1:var F0=X0(u0);break;default:var F0=J0(u0)}break}break;case 1:var F0=X0(u0);break;default:var F0=J0(u0)}return F0===0?[0,D,Hi(2,Se(u0))]:ke(lCr)});case 27:var P0=Se(n),I0=Gu(t,nt(t,n),22);return[0,I0,Hi(2,P0)];case 29:return Rt(t,n,function(D,u0){function X0(re){for(;;){G0(re,0);var xe=Ds(j(re));if(xe!==0){if(xe===1)r:for(;;){if(pn(j(re))===0)for(;;){G0(re,0);var Re=Ds(j(re));if(Re!==0){if(Re===1)continue r;return q(re)}}return q(re)}return q(re)}}}function J0(re){return G0(re,0),pn(j(re))===0?X0(re):q(re)}gn(u0);var ir=f9(j(u0));if(3>>0)var Q0=q(u0);else switch(ir){case 0:for(;;){var F0=jr0(j(u0));if(2>>0)var Q0=q(u0);else switch(F0){case 0:continue;case 1:for(;;){G0(u0,0);var Sr=D1(j(u0)),mr=Sr!==0?1:0;if(mr){if(Sr===1)continue;var Q0=q(u0)}else var Q0=mr;break}break;default:for(;;){G0(u0,0);var Cr=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Cr){case 0:var Q0=0;break;case 1:continue;default:r:for(;;){if(pn(j(u0))===0)for(;;){G0(u0,0);var sr=Bc(j(u0));if(2>>0)var Pr=q(u0);else switch(sr){case 0:var Pr=0;break;case 1:continue;default:continue r}break}else var Pr=q(u0);var Q0=Pr;break}}break}}break}break;case 1:var Q0=pn(j(u0))===0?X0(u0):q(u0);break;case 2:for(;;){G0(u0,0);var K0=D1(j(u0));if(K0===0)var Q0=J0(u0);else{if(K0===1)continue;var Q0=q(u0)}break}break;default:for(;;){G0(u0,0);var Ur=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Ur){case 0:var Q0=J0(u0);break;case 1:continue;default:r:for(;;){if(pn(j(u0))===0)for(;;){G0(u0,0);var h0=Bc(j(u0));if(2>>0)var Kr=q(u0);else switch(h0){case 0:var Kr=J0(u0);break;case 1:continue;default:continue r}break}else var Kr=q(u0);var Q0=Kr;break}}break}}return Q0===0?[0,D,qc(4,Se(u0))]:ke(vCr)});case 31:return[0,t,66];case 18:case 28:return[0,t,Hi(2,Se(n))];default:return[0,t,qc(4,Se(n))]}}function Xl(t){return function(n){for(var e=0,i=n;;){var x=o(t,i,i[2]);switch(x[0]){case 0:var c=x[2],s=x[1],p=Xr0(s,c),y=e===0?0:ye(e),T=s[6];if(T===0)return[0,[0,s[1],s[2],s[3],s[4],s[5],s[6],p],[0,c,p,0,y]];var E=[0,c,p,ye(T),y];return[0,[0,s[1],s[2],s[3],s[4],s[5],_r0,p],E];case 1:var d=x[2],w=x[1],e=[0,d,e],i=[0,w[1],w[2],w[3],w[4],w[5],w[6],d[1]];continue;default:var i=x[1];continue}}}}var Gee=Xl(Dee),Mee=Xl(Lee),Bee=Xl(Ree),qee=Xl(jee),Uee=Xl(Pee),Mu=eL([0,bz]);function Yl(t,n){return[0,0,0,n,yr0(t)]}function g9(t){var n=t[4];switch(t[3]){case 0:var c0=u(Uee,n);break;case 1:var c0=u(qee,n);break;case 2:var c0=u(Mee,n);break;case 3:var e=h7(n,n[2]),i=$n(zn),x=$n(zn),c=n[2];gn(c);var s=j(c),p=ts>>0)var y=q(c);else switch(p){case 0:var y=1;break;case 1:var y=4;break;case 2:var y=0;break;case 3:G0(c,0);var T=xi(j(c))!==0?1:0,y=T&&q(c);break;case 4:var y=2;break;default:var y=3}if(4>>0)var E=ke(sCr);else switch(y){case 0:var d=Se(c);hn(x,d),hn(i,d);var w=pL(d7(n,c),2,i,x,c),G=h7(w,c),A=Mt(i),S=Mt(x),E=[0,w,[8,[0,w[1],e,G],A,S]];break;case 1:var E=[0,n,Pn];break;case 2:var E=[0,n,98];break;case 3:var E=[0,n,0];break;default:$v(c);var M=pL(n,2,i,x,c),K=h7(M,c),V=Mt(i),f0=Mt(x),E=[0,M,[8,[0,M[1],e,K],V,f0]]}var m0=E[2],k0=E[1],g0=Xr0(k0,m0),e0=k0[6];if(e0===0)var l=[0,k0,[0,m0,g0,0,0]];else var x0=[0,m0,g0,ye(e0),0],l=[0,[0,k0[1],k0[2],k0[3],k0[4],k0[5],0,k0[7]],x0];var c0=l;break;case 4:var c0=u(Bee,n);break;default:var c0=u(Gee,n)}var t0=c0[1],o0=yr0(t0),w0=[0,o0,c0[2]];return t[4]=t0,t[1]?t[2]=[0,w0]:t[1]=[0,w0],w0}function Qr0(t){var n=t[1];return n?n[1][2]:g9(t)[2]}function Hee(t,n,e,i){var x=t&&t[1],c=n&&n[1];try{var s=0,p=pr0(i),y=s,T=p}catch(A){if(A=Et(A),A!==I1)throw A;var E=[0,[0,[0,e,ez[2],ez[3]],86],0],y=E,T=pr0(Xjr)}var d=c?c[1]:Bv,w=Cee(e,T,d[4]),G=[0,Yl(w,0)];return[0,[0,y],[0,0],Mu[1],[0,0],d[5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,[0,Vjr],[0,w],G,[0,x],d,e,[0,0],[0,Yjr]]}function n2(t){return bl(t[23][1])}function fu(t){return t[27][4]}function ue(t,n){var e=n[2];t[1][1]=[0,[0,n[1],e],t[1][1]];var i=t[22];return i&&o(i[1],t,e)}function Vl(t,n){return t[30][1]=n,0}function Rs(t,n){if(t===0)return Qr0(n[25][1]);if(t===1){var e=n[25][1];e[1]||g9(e);var i=e[2];return i?i[1][2]:g9(e)[2]}throw[0,Sn,qjr]}function _s(t,n){return t===n[5]?n:[0,n[1],n[2],n[3],n[4],t,n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function mL(t,n){return t===n[17]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],t,n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function re0(t,n){return t===n[18]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],t,n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ee0(t,n){return t===n[19]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],t,n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function t2(t,n){return t===n[21]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],t,n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function F9(t,n){return t===n[14]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],t,n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function zl(t,n){return t===n[8]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],t,n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function Kl(t,n){return t===n[12]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],t,n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function u2(t,n){return t===n[15]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],t,n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ne0(t,n){return t===n[6]?n:[0,n[1],n[2],n[3],n[4],n[5],t,n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function te0(t,n){return t===n[7]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],t,n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function _L(t,n){return t===n[13]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],t,n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function T9(t,n){return[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],[0,t],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function yL(t){function n(e){return ue(t,e)}return function(e){return Du(n,e)}}function i2(t){var n=t[4][1],e=n&&[0,n[1][2]];return e}function ue0(t){var n=t[4][1],e=n&&[0,n[1][1]];return e}function ie0(t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],0,t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function fe0(t,n,e,i){return[0,t[1],t[2],Mu[1],t[4],t[5],0,0,0,0,0,1,t[12],t[13],t[14],t[15],t[16],e,n,t[19],i,t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function xe0(t){var n=Ee(t,xjr),e=0;if(0<=n){if(0>>0){if(!(T7<(i+1|0)>>>0))return 1}else{var x=i!==6?1:0;if(!x)return x}}return Jl(t,n)}function x2(t){return se0(0,t)}function I9(t,n){var e=Yn(t,n);if(dL(e)||hL(e)||oe0(e))return 1;var i=0;if(typeof e=="number")switch(e){case 14:case 28:case 60:case 61:case 62:case 63:case 64:case 65:i=1;break}else e[0]===4&&(i=1);return i?1:0}function ve0(t,n){var e=n2(n);if(e===1){var i=Yn(t,n);return typeof i!="number"&&i[0]===4?1:0}if(e)return 0;var x=Yn(t,n);if(typeof x=="number")switch(x){case 42:case 46:case 47:return 0;case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:break;default:return 0}else switch(x[0]){case 4:if(ae0(x[3]))return 0;break;case 9:case 10:case 11:break;default:return 0}return 1}function G1(t){return I9(0,t)}function Gs(t){var n=A0(t)===15?1:0;if(n)var e=n;else{var i=A0(t)===64?1:0;if(i){var x=Yn(1,t)===15?1:0;if(x)var c=Wl(1,t)[2][1],e=Pe(t)[3][1]===c?1:0;else var e=x}else var e=i}return e}function $l(t){var n=A0(t);if(typeof n=="number"){var e=0;if((n===13||n===40)&&(e=1),e)return 1}return 0}function je(t,n){return ue(t,[0,Pe(t),n])}function le0(t,n){if(hL(n))return 2;if(dL(n))return 55;var e=aL(0,n);return t?[11,e,t[1]]:[10,e]}function St(t,n){var e=wL(n);return u(yL(n),e),je(n,le0(t,A0(n)))}function A9(t){function n(e){return ue(t,[0,e[1],76])}return function(e){return Du(n,e)}}function be0(t,n){var e=t[6]?ur(et(SRr),n,n,n):gRr;return St([0,e],t)}function gi(t,n){var e=t[5];return e&&je(t,n)}function V7(t,n){var e=t[5];return e&&ue(t,[0,n[1],n[2]])}function M1(t,n){return ue(t,[0,n,[18,t[5]]])}function ie(t){var n=t[26][1];if(n){var e=n2(t),i=A0(t),x=[0,Pe(t),i,e];u(n[1],x)}var c=t[25][1],s=c[1],p=s?s[1][1]:g9(c)[1];t[24][1]=p;var y=wL(t);u(yL(t),y);var T=t[2][1],E=Lc(Rs(0,t)[4],T);t[2][1]=E;var d=[0,Rs(0,t)];t[4][1]=d;var w=t[25][1];return w[2]?(w[1]=w[2],w[2]=0,0):(Qr0(w),w[1]=0,0)}function xu(t,n){var e=o(iL,A0(t),n);return e&&ie(t),e}function Ku(t,n){t[23][1]=[0,n,t[23][1]];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function k7(t){var n=t[23][1],e=n?n[2]:ke(ERr);t[23][1]=e;var i=n2(t),x=Yl(t[24][1],i);return t[25][1]=x,0}function we(t){var n=Pe(t);if(A0(t)===9&&Jl(1,t)){var e=pr(t),i=Rs(1,t)[4],x=on(e,u(ml(function(s){return s[1][2][1]<=n[3][1]?1:0}),i));return Vl(t,[0,n[3][1]+1|0,0]),x}var c=pr(t);return Vl(t,n[3]),c}function Ms(t){var n=t[4][1];if(n){var e=n[1][2],i=pr(t),x=u(ml(function(p){return p[1][2][1]<=e[3][1]?1:0}),i);Vl(t,[0,e[3][1]+1|0,0]);var c=x}else var c=n;return c}function B1(t,n){return St([0,aL(hRr,n)],t)}function Y0(t,n){return 1-o(iL,A0(t),n)&&B1(t,n),ie(t)}function pe0(t,n){var e=xu(t,n);return 1-e&&B1(t,n),e}function Zl(t,n){var e=A0(t),i=0;return typeof e!="number"&&e[0]===4&&qn(e[3],n)&&(i=1),i||St([0,u(et(yRr),n)],t),ie(t)}var Bs=[wt,zjr,M7(0)];function Xee(t){var n=t[26][1];if(n){var e=mz(0),i=[0,function(s){return aN(s,e)}];t[26][1]=i;var x=[0,[0,n[1],e]]}else var x=n;return[0,t[1][1],t[2][1],t[4][1],t[23][1],t[24][1],t[30][1],x]}function me0(t,n,e){if(e){var i=e[1],x=i[1];if(n[26][1]=[0,x],t)for(var c=i[2][2];;){if(c){var s=c[2];u(x,c[1]);var c=s;continue}return 0}var p=t}else var p=e;return p}function Yee(t,n){me0(0,t,n[7]),t[1][1]=n[1],t[2][1]=n[2],t[4][1]=n[3],t[23][1]=n[4],t[24][1]=n[5],t[30][1]=n[6];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function Vee(t,n,e){return me0(1,t,n[7]),[0,e]}function EL(t,n){var e=Xee(t);try{var i=Vee(t,e,u(n,t));return i}catch(x){if(x=Et(x),x===Bs)return Yee(t,e);throw x}}function _e0(t,n,e){var i=EL(t,e);return i?i[1]:n}function Ql(t,n){var e=ye(n);if(e){var i=e[1],x=u(t,i);return i===x?n:ye([0,x,e[2]])}return n}var ye0=Rp(Zjr,function(t){var n=PN(t,Wjr),e=NN(t,$jr),i=e[22],x=e[26],c=e[35],s=e[77],p=e[iV],y=e[gO],T=e[cp],E=e[BO],d=e[jh],w=e[ZF],G=e[6],A=e[7],S=e[10],M=e[17],K=e[21],V=e[27],f0=e[33],m0=e[36],k0=e[46],g0=e[51],e0=e[89],x0=e[92],l=e[97],c0=e[99],t0=e[ti],o0=e[Pn],w0=e[Sv],_0=e[zw],E0=e[Jg],U0=e[dH],b=e[DX],R0=e[eH],X=e[FH],s0=e[kh],hr=e[AF],Ar=e[Wg],or=e[A6],W0=e[Cw],Lr=e[iA],Tr=e[rk],Hr=e[hT],Or=e[lO],fr=e[i6],Rr=e[ST],Wr=e[v8],Jr=e[$2],ar=LN(t,0,0,nz,KD,1)[1];function _r(q0,Fr,_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(I){var y0=function(D){return[0,Y,[0,U,[0,D]]]},P0=I[1];return ee(u(q0[1][1+y],q0),P0,_,y0)}function I0(D){return[0,Y,[0,D,I]]}return ee(o(q0[1][1+G],q0,Fr),U,_,I0)}function Ir(q0,Fr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function fe(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function v0(q0,Fr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function P(q0,Fr){function _(I){return[0,Fr[1],I]}var k=Fr[2];return ee(u(q0[1][1+c],q0),k,Fr,_)}function L(q0,Fr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function Q(q0,Fr,_){var k=_[2],I=_[1],U=Ql(u(q0[1][1+y],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,Y]}function i0(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function l0(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function S0(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function T0(q0,Fr,_){var k=_[3],I=_[2],U=o(q0[1][1+l],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,Y]}function rr(q0,Fr,_){var k=_[4],I=_[3],U=_[2],Y=_[1],y0=o(q0[1][1+c],q0,k);if(I){var P0=ze(u(q0[1][1+w],q0),I);return I===P0&&k===y0?_:[0,_[1],_[2],P0,y0]}if(U){var I0=ze(u(q0[1][1+d],q0),U);return U===I0&&k===y0?_:[0,_[1],I0,_[3],y0]}var D=o(q0[1][1+y],q0,Y);return Y===D&&k===y0?_:[0,D,_[2],_[3],y0]}function L0(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function B(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function Z(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function p0(q0,Fr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function b0(q0,Fr,_){var k=_[3],I=_[1],U=_u(u(q0[1][1+s],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,_[2],Y]}function O0(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function M0(q0,Fr){if(Fr[0]===0){var _=function(P0){return[0,P0]},k=Fr[1];return ee(u(q0[1][1+p],q0),k,Fr,_)}var I=Fr[1],U=I[2],Y=U[2],y0=o(q0[1][1+p],q0,Y);return Y===y0?Fr:[1,[0,I[1],[0,U[1],y0]]]}function er(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+x],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function yr(q0,Fr){var _=Fr[2],k=Fr[1];function I(Y){return[0,k,[0,_[1],_[2],_[3],Y]]}var U=_[4];return ee(u(q0[1][1+c],q0),U,[0,k,_],I)}function vr(q0,Fr,_){var k=_[9],I=_[3],U=o(q0[1][1+s0],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,_[4],_[5],_[6],_[7],_[8],Y,_[10]]}function $0(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function Er(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function Mr(q0,Fr){var _=Fr[2],k=_[2],I=_[1],U=Fr[1];if(k===0){var Y=function(I0){return[0,U,[0,I0,k]]};return ee(u(q0[1][1+p],q0),I,Fr,Y)}function y0(I0){return[0,U,[0,I,I0]]}var P0=u(q0[1][1+i],q0);return ee(function(I0){return ze(P0,I0)},k,Fr,y0)}function Br(q0,Fr){var _=Fr[2],k=_[2],I=Fr[1];function U(P0){return[0,I,[0,P0,k]]}var Y=_[1],y0=u(q0[1][1+T],q0);return ee(function(P0){return Ql(y0,P0)},Y,Fr,U)}function qr(q0,Fr,_){var k=_[2];if(k===0){var I=function(P0){return[0,P0,_[2],_[3]]},U=_[1];return ee(u(q0[1][1+y],q0),U,_,I)}function Y(P0){return[0,_[1],P0,_[3]]}var y0=u(q0[1][1+i],q0);return ee(function(P0){return ze(y0,P0)},k,_,Y)}function jr(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function $r(q0,Fr,_){var k=_[7],I=_[2],U=o(q0[1][1+E],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,_[3],_[4],_[5],_[6],Y]}function ne(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function Qr(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function be(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+w],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ae(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function pe(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function oe(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ce(q0,Fr){function _(I){return[0,Fr[1],I]}var k=Fr[2];return ee(u(q0[1][1+c],q0),k,Fr,_)}function ge(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}return jN(t,[0,m0,function(q0,Fr){var _=Fr[2],k=u(ml(function(U){return ps(U[1][2],q0[1+n])<0?1:0}),_),I=Dc(k);return Dc(_)===I?Fr:[0,Fr[1],k,Fr[3]]},Jr,ge,Wr,ce,Rr,oe,fr,pe,Or,ae,Hr,be,w,Qr,d,ne,Tr,$r,E,jr,Lr,qr,W0,Br,T,Mr,or,Er,Ar,$0,hr,vr,X,yr,R0,er,b,M0,U0,O0,E0,b0,_0,p0,w0,Z,o0,B,t0,L0,x0,rr,c0,T0,e0,S0,s,l0,g0,i0,k0,Q,f0,L,V,P,K,v0,M,fe,S,Ir,A,_r]),function(q0,Fr,_){var k=jp(Fr,t);return k[1+n]=_,u(ar,k),RN(Fr,k,t)}});function N9(t){var n=i2(t);if(n)var e=n[1],i=ce0(t)?(Vl(t,e[3]),[0,o(ye0[1],0,e[3])]):0,x=i;else var x=n;return[0,0,function(c,s){return x?o(s,x[1],c):c}]}function rb(t){var n=i2(t);if(n){var e=n[1];if(ce0(t)){Vl(t,e[3]);var i=Ms(t),x=[0,o(ye0[1],0,[0,e[3][1]+1|0,0])],c=i}else var x=0,c=Ms(t)}else var x=0,c=0;return[0,c,function(s,p){return x?o(p,x[1],s):s}]}function $t(t){return x7(t)?rb(t):N9(t)}function ys(t,n){var e=$t(t);function i(x,c){return o(Qe(x,Nv,27),x,c)}return o(e[2],n,i)}function oi(t,n){if(n)var e=$t(t),i=function(c,s){return o(Qe(c,bF,30),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function o2(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-983660142,32),x,c)}return o(e[2],n,i)}function eb(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-455772979,33),x,c)}return o(e[2],n,i)}function he0(t,n){if(n)var e=$t(t),i=function(c,s){return o(Qe(c,kH,34),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function Xi(t,n){var e=$t(t);function i(x,c){return o(Qe(x,qY,35),x,c)}return o(e[2],n,i)}function de0(t,n){var e=$t(t);function i(x,c){var s=u(Qe(x,ZU,37),x);return Ql(function(p){return _u(s,p)},c)}return o(e[2],n,i)}function ke0(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-21476009,38),x,c)}return o(e[2],n,i)}Rp(Qjr,function(t){var n=PN(t,Kjr),e=DN(Jjr),i=e.length-1,x=tz.length-1,c=Gv(i+x|0,0),s=i-1|0,p=0;if(!(s<0))for(var y=p;;){var T=Fl(t,tu(e,y)[1+y]);tu(c,y)[1+y]=T;var E=y+1|0;if(s!==y){var y=E;continue}break}var d=x-1|0,w=0;if(!(d<0))for(var G=w;;){var A=G+i|0,S=PN(t,tu(tz,G)[1+G]);tu(c,A)[1+A]=S;var M=G+1|0;if(d!==G){var G=M;continue}break}var K=c[4],V=c[5],f0=c[y6],m0=c[cp],k0=c[nd],g0=c[gv],e0=c[38],x0=c[mT],l=c[Vy],c0=LN(t,0,0,nz,KD,1)[1];function t0(b,R0,X){return o(b[1][1+f0],b,X[2]),X}function o0(b,R0){return o(b[1][1+m0],b,R0),R0}function w0(b,R0){var X=R0[1],s0=b[1+g0];if(s0){var hr=ps(s0[1][1][2],X[2])<0?1:0,Ar=hr&&(b[1+g0]=[0,R0],0);return Ar}var or=0<=ps(X[2],b[1+n][3])?1:0,W0=or&&(b[1+g0]=[0,R0],0);return W0}function _0(b,R0){var X=R0[1],s0=b[1+k0];if(s0){var hr=ps(X[2],s0[1][1][2])<0?1:0,Ar=hr&&(b[1+k0]=[0,R0],0);return Ar}var or=ps(X[2],b[1+n][2])<0?1:0,W0=or&&(b[1+k0]=[0,R0],0);return W0}function E0(b,R0){return R0&&o(b[1][1+m0],b,R0[1])}function U0(b,R0){var X=R0[1];Du(u(b[1][1+V],b),X);var s0=R0[2];return Du(u(b[1][1+K],b),s0)}return jN(t,[0,x0,function(b){return[0,b[1+k0],b[1+g0]]},m0,U0,f0,E0,V,_0,K,w0,e0,o0,l,t0]),function(b,R0,X){var s0=jp(R0,t);return s0[1+n]=X,u(c0,s0),s0[1+k0]=0,s0[1+g0]=0,RN(R0,s0,t)}});function we0(t){return t===3?2:(4<=t,1)}function SL(t,n,e){if(e){var i=e[1],x=0;if(i===8232||Hu===i)x=1;else if(i===10)var s=6;else if(i===13)var s=5;else if(fw<=i)var s=3;else if(Hh<=i)var s=2;else var c=jt<=i?1:0,s=c&&1;if(x)var s=7;var p=s}else var p=4;return[0,p,t]}var zee=[wt,uGr,M7(0)];function Ee0(t,n,e,i){try{var x=tu(t,n)[1+n];return x}catch(c){throw c=Et(c),c[1]===ZA?[0,zee,e,ur(et(nGr),i,n,t.length-1)]:c}}function C9(t,n){if(n[1]===0&&n[2]===0)return 0;var e=Ee0(t,n[1]-1|0,n,rGr);return Ee0(e,n[2],n,eGr)}var Kee=Ee;function Wee(t,n){return o(f(t),NWr,n)}u(eL([0,Kee])[33],Wee);function Se0(t){var n=A0(t),e=0;if(typeof n=="number")switch(n){case 15:var i=CWr;break;case 16:var i=PWr;break;case 17:var i=DWr;break;case 18:var i=LWr;break;case 19:var i=RWr;break;case 20:var i=jWr;break;case 21:var i=GWr;break;case 22:var i=MWr;break;case 23:var i=BWr;break;case 24:var i=qWr;break;case 25:var i=UWr;break;case 26:var i=HWr;break;case 27:var i=XWr;break;case 28:var i=YWr;break;case 29:var i=VWr;break;case 30:var i=zWr;break;case 31:var i=KWr;break;case 32:var i=WWr;break;case 33:var i=JWr;break;case 34:var i=$Wr;break;case 35:var i=ZWr;break;case 36:var i=QWr;break;case 37:var i=rJr;break;case 38:var i=eJr;break;case 39:var i=nJr;break;case 40:var i=tJr;break;case 41:var i=uJr;break;case 42:var i=iJr;break;case 43:var i=fJr;break;case 44:var i=xJr;break;case 45:var i=oJr;break;case 46:var i=aJr;break;case 47:var i=cJr;break;case 48:var i=sJr;break;case 49:var i=vJr;break;case 50:var i=lJr;break;case 51:var i=bJr;break;case 52:var i=pJr;break;case 53:var i=mJr;break;case 54:var i=_Jr;break;case 55:var i=yJr;break;case 56:var i=hJr;break;case 57:var i=dJr;break;case 58:var i=kJr;break;case 59:var i=wJr;break;case 60:var i=EJr;break;case 61:var i=SJr;break;case 62:var i=gJr;break;case 63:var i=FJr;break;case 64:var i=TJr;break;case 65:var i=OJr;break;case 114:var i=IJr;break;case 115:var i=AJr;break;case 116:var i=NJr;break;case 117:var i=CJr;break;case 118:var i=PJr;break;case 119:var i=DJr;break;case 120:var i=LJr;break;case 121:var i=RJr;break;default:e=1}else switch(n[0]){case 4:var i=n[2];break;case 9:var i=n[1]?jJr:GJr;break;default:e=1}if(e){St(MJr,t);var i=BJr}return ie(t),i}function z7(t){var n=Pe(t),e=pr(t),i=Se0(t);return[0,n,[0,i,lr([0,e],[0,we(t)],0)]]}function ge0(t){var n=Pe(t),e=pr(t);Y0(t,14);var i=Pe(t),x=Se0(t),c=lr([0,e],[0,we(t)],0),s=yt(n,i),p=i[2],y=n[3],T=y[1]===p[1]?1:0,E=T&&(y[2]===p[2]?1:0);return 1-E&&ue(t,[0,s,R7]),[0,s,[0,x,c]]}function q1(t){var n=t[2],e=n[3]===0?1:0;if(e)for(var i=n[2];;){if(i){var x=i[1][2],c=0,s=i[2];if(x[1][2][0]===2&&!x[2]){var p=1;c=1}if(!c)var p=0;if(p){var i=s;continue}return p}return 1}return e}function nb(t){for(var n=t;;){var e=n[2];if(e[0]===27){var i=e[1][2];if(i[2][0]===23)return 1;var n=i;continue}return 0}}function cr(t,n,e){var i=t?t[1]:Pe(e),x=u(n,e),c=i2(e),s=c?yt(i,c[1]):i;return[0,s,x]}function gL(t,n,e){var i=cr(t,n,e),x=i[2];return[0,[0,i[1],x[1]],x[2]]}function Jee(t){function n(B){var Z=Pe(B),p0=A0(B);if(typeof p0=="number"){if(s7===p0){var b0=pr(B);return ie(B),[0,[0,Z,[0,0,lr([0,b0],0,0)]]]}if(L7===p0){var O0=pr(B);return ie(B),[0,[0,Z,[0,1,lr([0,O0],0,0)]]]}}return 0}var e=function B(Z){return B.fun(Z)},i=function B(Z){return B.fun(Z)},x=function B(Z){return B.fun(Z)},c=function B(Z,p0,b0){return B.fun(Z,p0,b0)},s=function B(Z){return B.fun(Z)},p=function B(Z,p0,b0){return B.fun(Z,p0,b0)},y=function B(Z){return B.fun(Z)},T=function B(Z,p0){return B.fun(Z,p0)},E=function B(Z){return B.fun(Z)},d=function B(Z){return B.fun(Z)},w=function B(Z,p0,b0){return B.fun(Z,p0,b0)},G=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},A=function B(Z){return B.fun(Z)},S=function B(Z,p0){return B.fun(Z,p0)},M=function B(Z){return B.fun(Z)},K=function B(Z){return B.fun(Z)},V=function B(Z){return B.fun(Z)},f0=function B(Z){return B.fun(Z)},m0=function B(Z){return B.fun(Z)},k0=function B(Z){return B.fun(Z)},g0=function B(Z,p0){return B.fun(Z,p0)},e0=function B(Z){return B.fun(Z)},x0=function B(Z){return B.fun(Z)},l=function B(Z){return B.fun(Z)},c0=function B(Z){return B.fun(Z)},t0=function B(Z){return B.fun(Z)},o0=function B(Z){return B.fun(Z)},w0=function B(Z){return B.fun(Z)},_0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},E0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},U0=function B(Z){return B.fun(Z)},b=function B(Z){return B.fun(Z)},R0=function B(Z){return B.fun(Z)},X=function B(Z){return B.fun(Z)},s0=function B(Z){return B.fun(Z)},hr=function B(Z){return B.fun(Z)},Ar=function B(Z,p0){return B.fun(Z,p0)},or=function B(Z,p0){return B.fun(Z,p0)},W0=function B(Z){return B.fun(Z)},Lr=function B(Z,p0,b0){return B.fun(Z,p0,b0)};N(e,function(B){return u(x,B)}),N(i,function(B){return 1-fu(B)&&je(B,12),cr(0,function(Z){return Y0(Z,86),u(e,Z)},B)}),N(x,function(B){var Z=A0(B)===89?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(c,B,[0,b0],u(s,B))}),N(c,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===89){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr=="number"&&vr===89){Y0(er,89);var yr=[0,u(s,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[19,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,y$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(s,function(B){var Z=A0(B)===91?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(p,B,[0,b0],u(y,B))}),N(p,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===91){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr=="number"&&vr===91){Y0(er,91);var yr=[0,u(y,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[20,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,_$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(y,function(B){return o(T,B,u(E,B))}),N(T,function(B,Z){var p0=A0(B);if(typeof p0=="number"&&p0===11&&!B[15]){var b0=o(g0,B,Z);return R(_0,B,b0[1],0,[0,b0[1],[0,0,[0,b0,0],0,0]])}return Z}),N(E,function(B){var Z=A0(B);return typeof Z=="number"&&Z===85?cr(0,function(p0){var b0=pr(p0);Y0(p0,85);var O0=lr([0,b0],0,0);return[11,[0,u(E,p0),O0]]},B):u(d,B)}),N(d,function(B){return ur(w,0,B,u(V,B))}),N(w,function(B,Z,p0){var b0=B&&B[1];if(x7(Z))return p0;var O0=A0(Z);if(typeof O0=="number"){if(O0===6)return ie(Z),R(G,b0,0,Z,p0);if(O0===10){var M0=Yn(1,Z);return typeof M0=="number"&&M0===6?(je(Z,p$r),Y0(Z,10),Y0(Z,6),R(G,b0,0,Z,p0)):(je(Z,m$r),p0)}if(O0===83)return ie(Z),A0(Z)!==6&&je(Z,30),Y0(Z,6),R(G,1,1,Z,p0)}return p0}),N(G,function(B,Z,p0,b0){function O0(M0){if(!Z&&xu(M0,7))return[15,[0,b0,lr(0,[0,we(M0)],0)]];var er=u(e,M0);Y0(M0,7);var yr=[0,b0,er,lr(0,[0,we(M0)],0)];return B?[18,[0,yr,Z]]:[17,yr]}return ur(w,[0,B],p0,cr([0,b0[1]],O0,p0))}),N(A,function(B){return o(S,B,o(t[13],0,B))}),N(S,function(B,Z){for(var p0=[0,Z[1],[0,Z]];;){var b0=p0[2];if(A0(B)===10&&I9(1,B)){var O0=function(vr){return function($0){return Y0($0,10),[0,vr,z7($0)]}}(b0),M0=cr([0,p0[1]],O0,B),er=M0[1],p0=[0,er,[1,[0,er,M0[2]]]];continue}return b0}}),N(M,function(B){var Z=A0(B);if(typeof Z=="number"){if(Z===4){ie(B);var p0=u(M,B);return Y0(B,5),p0}}else if(Z[0]===4)return[0,u(A,B)];return je(B,51),0}),N(K,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,46);var b0=u(M,Z);if(b0){var O0=lr([0,p0],0,0);return[21,[0,b0[1],O0]]}return b$r},B)}),N(V,function(B){var Z=Pe(B),p0=A0(B),b0=0;if(typeof p0=="number")switch(p0){case 4:return u(o0,B);case 6:return u(k0,B);case 46:return u(K,B);case 53:return cr(0,function(ge){var q0=pr(ge);Y0(ge,53);var Fr=u(U0,ge),_=lr([0,q0],0,0);return[14,[0,Fr[2],Fr[1],_]]},B);case 98:return u(w0,B);case 106:var O0=pr(B);return Y0(B,Yt),[0,Z,[10,lr([0,O0],[0,we(B)],0)]];case 42:b0=1;break;case 0:case 2:var M0=R(E0,0,1,1,B);return[0,M0[1],[13,M0[2]]];case 30:case 31:var er=pr(B);return Y0(B,p0),[0,Z,[26,[0,p0===31?1:0,lr([0,er],[0,we(B)],0)]]]}else switch(p0[0]){case 2:var yr=p0[1],vr=yr[4],$0=yr[3],Er=yr[2],Mr=yr[1];vr&&gi(B,45);var Br=pr(B);return Y0(B,[2,[0,Mr,Er,$0,vr]]),[0,Mr,[23,[0,Er,$0,lr([0,Br],[0,we(B)],0)]]];case 10:var qr=p0[3],jr=p0[2],$r=p0[1],ne=pr(B);Y0(B,[10,$r,jr,qr]);var Qr=we(B);return $r===1&&gi(B,45),[0,Z,[24,[0,jr,qr,lr([0,ne],[0,Qr],0)]]];case 11:var be=p0[3],ae=p0[2],pe=pr(B);return Y0(B,[11,p0[1],ae,be]),[0,Z,[25,[0,ae,be,lr([0,pe],[0,we(B)],0)]]];case 4:b0=1;break}if(b0){var oe=u(hr,B);return[0,oe[1],[16,oe[2]]]}var ce=u(m0,B);return ce?[0,Z,ce[1]]:(St(v$r,B),[0,Z,l$r])}),N(f0,function(B){var Z=0;if(typeof B=="number")switch(B){case 29:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:Z=1;break}else B[0]===9&&(Z=1);return Z?1:0}),N(m0,function(B){var Z=pr(B),p0=A0(B);if(typeof p0=="number")switch(p0){case 29:return ie(B),[0,[4,lr([0,Z],[0,we(B)],0)]];case 114:return ie(B),[0,[0,lr([0,Z],[0,we(B)],0)]];case 115:return ie(B),[0,[1,lr([0,Z],[0,we(B)],0)]];case 116:return ie(B),[0,[2,lr([0,Z],[0,we(B)],0)]];case 117:return ie(B),[0,[5,lr([0,Z],[0,we(B)],0)]];case 118:return ie(B),[0,[6,lr([0,Z],[0,we(B)],0)]];case 119:return ie(B),[0,[7,lr([0,Z],[0,we(B)],0)]];case 120:return ie(B),[0,[3,lr([0,Z],[0,we(B)],0)]];case 121:return ie(B),[0,[9,lr([0,Z],[0,we(B)],0)]]}else if(p0[0]===9)return ie(B),[0,[8,lr([0,Z],[0,we(B)],0)]];return 0}),N(k0,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,6);for(var b0=u2(0,Z),O0=0;;){var M0=A0(b0);if(typeof M0=="number"){var er=0;if((M0===7||Pn===M0)&&(er=1),er){var yr=ye(O0);return Y0(Z,7),[22,[0,yr,lr([0,p0],[0,we(Z)],0)]]}}var vr=[0,u(e,b0),O0];A0(b0)!==7&&Y0(b0,9);var O0=vr}},B)}),N(g0,function(B,Z){return[0,Z[1],[0,0,Z,0]]}),N(e0,function(B){return cr(0,function(Z){Ku(Z,0);var p0=o(t[13],0,Z);k7(Z),1-fu(Z)&&je(Z,12);var b0=xu(Z,85);return Y0(Z,86),[0,[0,p0],u(e,Z),b0]},B)});function Tr(B){var Z=Yn(1,B);return typeof Z=="number"&&!(1<(Z+W2|0)>>>0)?u(e0,B):o(g0,B,u(e,B))}N(x0,function(B){var Z=0;return function(p0){for(var b0=Z,O0=p0;;){var M0=A0(B);if(typeof M0=="number")switch(M0){case 5:case 12:case 113:var er=M0===12?1:0,yr=er&&[0,cr(0,function(jr){var $r=pr(jr);Y0(jr,12);var ne=lr([0,$r],0,0);return[0,Tr(jr),ne]},B)];return[0,b0,ye(O0),yr,0]}else if(M0[0]===4&&!n0(M0[3],s$r)){var vr=0;if((Yn(1,B)===86||Yn(1,B)===85)&&(vr=1),vr){var $0=b0!==0?1:0,Er=$0||(O0!==0?1:0);Er&&je(B,s7);var Mr=cr(0,function($r){var ne=pr($r);ie($r),A0($r)===85&&je($r,L7);var Qr=lr([0,ne],0,0);return[0,u(i,$r),Qr]},B);A0(B)!==5&&Y0(B,9);var b0=[0,Mr];continue}}var Br=[0,Tr(B),O0];A0(B)!==5&&Y0(B,9);var O0=Br}}}),N(l,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,4);var b0=o(x0,Z,0),O0=pr(Z);Y0(Z,5);var M0=yu([0,p0],[0,we(Z)],O0,0);return[0,b0[1],b0[2],b0[3],M0]},B)}),N(c0,function(B){var Z=pr(B);Y0(B,4);var p0=u2(0,B),b0=A0(p0),O0=0;if(typeof b0=="number")switch(b0){case 5:var M0=c$r;break;case 42:O0=2;break;case 12:case 113:var M0=[0,o(x0,p0,0)];break;default:O0=1}else b0[0]===4?O0=2:O0=1;switch(O0){case 1:if(u(f0,b0)){var er=Yn(1,p0),yr=0;if(typeof er=="number"&&!(1<(er+W2|0)>>>0)){var vr=[0,o(x0,p0,0)];yr=1}if(!yr)var vr=[1,u(e,p0)];var M0=vr}else var M0=[1,u(e,p0)];break;case 2:var M0=u(t0,p0);break}if(M0[0]===0)var $0=M0;else{var Er=M0[1];if(B[15])var Mr=M0;else{var Br=A0(B),qr=0;if(typeof Br=="number")if(Br===5)var jr=Yn(1,B)===11?[0,o(x0,B,[0,o(g0,B,Er),0])]:[1,Er];else if(Br===9){Y0(B,9);var jr=[0,o(x0,B,[0,o(g0,B,Er),0])]}else qr=1;else qr=1;if(qr)var jr=M0;var Mr=jr}var $0=Mr}var $r=pr(B);Y0(B,5);var ne=we(B);if($0[0]===0){var Qr=$0[1],be=yu([0,Z],[0,ne],$r,0);return[0,[0,Qr[1],Qr[2],Qr[3],be]]}return[1,ur(Lr,$0[1],Z,ne)]}),N(t0,function(B){var Z=Yn(1,B);return typeof Z=="number"&&!(1<(Z+W2|0)>>>0)?[0,o(x0,B,0)]:[1,ur(c,B,0,ur(p,B,0,o(T,B,ur(w,0,B,o(or,B,u(b,B))))))]}),N(o0,function(B){var Z=Pe(B),p0=cr(0,c0,B),b0=p0[2];return b0[0]===0?R(_0,B,Z,0,[0,p0[1],b0[1]]):b0[1]}),N(w0,function(B){var Z=Pe(B),p0=oi(B,u(X,B));return R(_0,B,Z,p0,u(l,B))}),N(_0,function(B,Z,p0,b0){return cr([0,Z],function(O0){return Y0(O0,11),[12,[0,p0,b0,u(e,O0),0]]},B)});function Hr(B,Z,p0){return cr([0,Z],function(b0){var O0=u(l,b0);return Y0(b0,86),[0,p0,O0,u(e,b0),0]},B)}function Or(B,Z){var p0=A0(Z);if(typeof p0=="number"&&!(10<=p0))switch(p0){case 1:if(!B)return 0;break;case 3:if(B)return 0;break;case 8:case 9:return ie(Z)}return B1(Z,9)}function fr(B,Z){return Z&&ue(B,[0,Z[1][1],7])}function Rr(B,Z){return Z&&ue(B,[0,Z[1],9])}N(E0,function(B,Z,p0,b0){var O0=Z&&(A0(b0)===2?1:0),M0=Z&&1-O0;return cr(0,function(er){var yr=pr(er),vr=O0&&2;Y0(er,vr);var $0=u2(0,er),Er=a$r;r:for(;;){var Mr=Er[3],Br=Er[2],qr=Er[1];if(B&&p0)throw[0,Sn,WJr];if(M0&&!p0)throw[0,Sn,JJr];var jr=Pe($0),$r=A0($0);if(typeof $r=="number"){var ne=0;if(13<=$r){if(Pn===$r){var Qr=[0,ye(qr),Br,Mr];ne=1}}else if($r)switch($r-1|0){case 0:if(!O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 2:if(O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 11:if(!p0){ie($0);var be=A0($0);if(typeof be=="number"&&!(10<=be))switch(be){case 1:case 3:case 8:case 9:ue($0,[0,jr,20]),Or(O0,$0);continue}var ae=wL($0);u(yL($0),ae),ue($0,[0,jr,17]),ie($0),Or(O0,$0);continue}var pe=pr($0);ie($0);var oe=A0($0),ce=0;if(typeof oe=="number"&&!(10<=oe))switch(oe){case 1:case 3:case 8:case 9:Or(O0,$0);var ge=A0($0),q0=0;if(typeof ge=="number"){var Fr=ge-1|0;if(!(2>>0))switch(Fr){case 0:if(M0){var Qr=[0,ye(qr),1,pe];ne=1,ce=1,q0=1}break;case 1:break;default:ue($0,[0,jr,19]);var Qr=[0,ye(qr),Br,Mr];ne=1,ce=1,q0=1}}if(!q0){ue($0,[0,jr,18]);continue}break}if(!ce){var _=[1,cr([0,jr],function(W7){return function(Ut){var bt=lr([0,W7],0,0);return[0,u(e,Ut),bt]}}(pe),$0)];Or(O0,$0);var Er=[0,[0,_,qr],Br,Mr];continue}break}if(ne){var k=pr(er),I=on(Qr[3],k),U=O0?3:1;Y0(er,U);var Y=yu([0,yr],[0,we(er)],I,0);return[0,O0,Qr[2],Qr[1],Y]}}for(var y0=B,P0=B,I0=0,D=0,u0=0,X0=0;;){var J0=A0($0),ir=0;if(typeof J0=="number")switch(J0){case 6:Rr($0,u0);var Q0=Yn(1,$0),F0=0;if(typeof Q0=="number"&&Q0===6){fr($0,I0);var Cr=[4,cr([0,jr],function(Ut,bt,B0){return function(D0){var Le=on(bt,pr(D0));Y0(D0,6),Y0(D0,6);var He=z7(D0);Y0(D0,7),Y0(D0,7);var he=A0(D0),me=0;if(typeof he=="number"){var Zn=0;if(he!==4&&he!==98&&(Zn=1),!Zn){var wn=Hr(D0,Ut,oi(D0,u(X,D0))),ft=0,xt=[0,wn[1],[12,wn[2]]],jn=1,ut=0;me=1}}if(!me){var dt=xu(D0,85),xn=we(D0);Y0(D0,86);var ft=xn,xt=u(e,D0),jn=0,ut=dt}return[0,He,xt,ut,B0!==0?1:0,jn,lr([0,Le],[0,ft],0)]}}(jr,X0,D),$0)];F0=1}if(!F0)var Cr=[2,cr([0,jr],function(W7,Ut,bt){return function(B0){var D0=on(W7,pr(B0));Y0(B0,6);var Le=Yn(1,B0)===86?1:0;if(Le){var He=z7(B0);Y0(B0,86);var he=[0,He]}else var he=Le;var me=u(e,B0);Y0(B0,7);var Zn=we(B0);Y0(B0,86);var wn=u(e,B0);return[0,he,me,wn,Ut!==0?1:0,bt,lr([0,D0],[0,Zn],0)]}}(X0,D,I0),$0)];break;case 42:if(y0){if(I0===0){var Sr=[0,Pe($0)],mr=on(X0,pr($0));ie($0);var y0=0,P0=0,D=Sr,X0=mr;continue}throw[0,Sn,ZJr]}ir=1;break;case 103:case 104:if(I0===0){var y0=0,P0=0,I0=n($0);continue}ir=1;break;case 4:case 98:Rr($0,u0),fr($0,I0);var Cr=[3,cr([0,jr],function(W7,Ut){return function(bt){var B0=Pe(bt),D0=Hr(bt,B0,oi(bt,u(X,bt)));return[0,D0,Ut!==0?1:0,lr([0,W7],0,0)]}}(X0,D),$0)];break;default:ir=1}else if(J0[0]===4&&!n0(J0[3],QJr)){if(P0){if(I0===0){var sr=[0,Pe($0)],Pr=on(X0,pr($0));ie($0);var y0=0,P0=0,u0=sr,X0=Pr;continue}throw[0,Sn,r$r]}ir=1}else ir=1;if(ir){var K0=0;if(D){var Ur=D[1];if(u0){var Cr=ke(e$r);K0=1}else if(typeof J0=="number"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Ur,[1,Rc(lr([0,X0],0,0),[0,Ur,n$r])]],Kr=0,re=u0,xe=0;K0=2}}else if(u0){var Re=u0[1];if(typeof J0=="number"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Re,[1,Rc(lr([0,X0],0,0),[0,Re,t$r])]],Kr=0,re=0,xe=D;K0=2}}var ve=0;switch(K0){case 0:var Ie=function(Ut){Ku(Ut,0);var bt=o(t[20],0,Ut);return k7(Ut),bt},Ge=pr($0),Me=Ie($0),an=Me[1],We=Me[2],Ae=0;if(We[0]===1){var cn=We[1][2][1],rn=0;if(n0(cn,u$r)&&n0(cn,i$r)&&(rn=1),!rn){var kn=A0($0),vn=0;if(typeof kn=="number"){var Ne=kn-5|0;if(92>>0){if(!(94<(Ne+1|0)>>>0)){Rr($0,u0),fr($0,I0);var Je=We;Ae=1,vn=1}}else if(!(1<(Ne+eX|0)>>>0)){var h0=[0,an,We],Kr=X0,re=u0,xe=D;ve=1,Ae=2,vn=1}}if(!vn){Xi($0,We);var en=Ie($0),_n=qn(cn,f$r),Cn=on(X0,Ge);Rr($0,u0),fr($0,I0);var Cr=[0,cr([0,jr],function(bt,B0,D0,Le,He){return function(he){var me=D0[1],Zn=Xi(he,D0[2]),wn=Hr(he,bt,0),ft=wn[2][2];if(Le){var xt=ft[2],jn=0;if(xt[1])ue(he,[0,me,j7]),jn=1;else{var ut=0;!xt[2]&&!xt[3]&&(jn=1,ut=1),ut||ue(he,[0,me,80])}}else{var dt=ft[2],xn=0;if(dt[1])ue(he,[0,me,Yt]),xn=1;else{var ln=dt[2],it=0;if(dt[3])ue(he,[0,me,81]);else{var Tt=0;ln&&!ln[2]&&(Tt=1),Tt||(ue(he,[0,me,81]),it=1)}it||(xn=1)}}var Ti=lr([0,He],0,0),hs=0,Au=0,Hs=0,Vi=B0!==0?1:0,Xs=0,Ys=Le?[1,wn]:[2,wn];return[0,Zn,Ys,Xs,Vi,Hs,Au,hs,Ti]}}(jr,D,en,_n,Cn),$0)];Ae=2}}}var Hn=0;switch(Ae){case 2:Hn=1;break;case 0:var Fn=Me[2],vt=A0($0),Nt=0;if(typeof vt=="number"){var gt=0;if(vt!==4&&vt!==98&&(gt=1),!gt){Rr($0,u0),fr($0,I0);var Je=Fn;Nt=1}}if(!Nt){var Zt=D!==0?1:0,qt=0;if(Fn[0]===1){var Ft=Fn[1],Ct=Ft[2][1],du=0;if(B){var Wu=0;!qn(x$r,Ct)&&(!Zt||!qn(o$r,Ct))&&(Wu=1),Wu||(ue($0,[0,Ft[1],[21,Ct,Zt,0,0]]),qt=1,du=1)}}var h0=[0,an,Fn],Kr=X0,re=u0,xe=D;ve=1,Hn=1}break}if(!Hn)var lt=Xi($0,Je),ou=Hr($0,jr,oi($0,u(X,$0))),Bu=[0,ou[1],[12,ou[2]]],K7=[0,lt,[0,Bu],0,D!==0?1:0,0,1,0,lr([0,X0],0,0)],Cr=[0,[0,Bu[1],K7]];break;case 2:ve=1;break}if(ve){var Yi=h0[2],a7=h0[1];1-fu($0)&&je($0,12);var Cr=[0,cr([0,jr],function(Ut,bt,B0,D0,Le,He){return function(he){var me=xu(he,85),Zn=pe0(he,86)?u(e,he):[0,He,$Jr];return[0,Le,[0,Zn],me,bt!==0?1:0,B0!==0?1:0,0,Ut,lr([0,D0],0,0)]}}(I0,xe,re,Kr,Yi,a7),$0)]}}Or(O0,$0);var Er=[0,[0,Cr,qr],Br,Mr];continue r}}},b0)}),N(U0,function(B){var Z=A0(B)===41?1:0;if(Z){Y0(B,41);for(var p0=0;;){var b0=[0,u(hr,B),p0],O0=A0(B);if(typeof O0=="number"&&O0===9){Y0(B,9);var p0=b0;continue}var M0=de0(B,ye(b0));break}}else var M0=Z;return[0,M0,R(E0,0,0,0,B)]}),N(b,function(B){var Z=z7(B),p0=Z[2],b0=p0[1],O0=Z[1];return ae0(b0)&&ue(B,[0,O0,3]),[0,O0,[0,b0,p0[2]]]}),N(R0,function(B){return cr(0,function(Z){var p0=u(b,Z),b0=A0(Z)===86?[1,u(i,Z)]:[0,j1(Z)];return[0,p0,b0]},B)}),N(X,function(B){var Z=A0(B)===98?1:0;if(Z){1-fu(B)&&je(B,12);var p0=[0,cr(0,function(O0){var M0=pr(O0);Y0(O0,98);for(var er=0,yr=0;;){var vr=cr(0,function(ne){return function(Qr){var be=n(Qr),ae=u(R0,Qr),pe=ae[2],oe=A0(Qr),ce=0;if(typeof oe=="number"&&oe===82){ie(Qr);var ge=1,q0=[0,u(e,Qr)];ce=1}if(!ce){ne&&ue(Qr,[0,ae[1],77]);var ge=ne,q0=0}return[0,be,pe[1],pe[2],q0,ge]}}(er),O0),$0=vr[2],Er=[0,[0,vr[1],[0,$0[2],$0[3],$0[1],$0[4]]],yr],Mr=A0(O0),Br=0;if(typeof Mr=="number"){var qr=0;if(Mr!==99&&Pn!==Mr&&(qr=1),!qr){var jr=ye(Er);Br=1}}if(!Br){if(Y0(O0,9),A0(O0)!==99){var er=$0[5],yr=Er;continue}var jr=ye(Er)}var $r=pr(O0);return Y0(O0,99),[0,jr,yu([0,M0],[0,we(O0)],$r,0)]}},B)]}else var p0=Z;return p0}),N(s0,function(B){var Z=A0(B)===98?1:0,p0=Z&&[0,cr(0,function(b0){var O0=pr(b0);Y0(b0,98);for(var M0=u2(0,b0),er=0;;){var yr=A0(M0);if(typeof yr=="number"){var vr=0;if((yr===99||Pn===yr)&&(vr=1),vr){var $0=ye(er),Er=pr(M0);return Y0(M0,99),[0,$0,yu([0,O0],[0,we(M0)],Er,0)]}}var Mr=[0,u(e,M0),er];A0(M0)!==99&&Y0(M0,9);var er=Mr}},B)];return p0}),N(hr,function(B){return o(Ar,B,u(b,B))}),N(Ar,function(B,Z){function p0(b0){for(var O0=[0,Z[1],[0,Z]];;){var M0=O0[2],er=O0[1];if(A0(b0)===10&&ve0(1,b0)){var yr=cr([0,er],function(qr){return function(jr){return Y0(jr,10),[0,qr,u(b,jr)]}}(M0),b0),vr=yr[1],O0=[0,vr,[1,[0,vr,yr[2]]]];continue}if(A0(b0)===98)var $0=$t(b0),Er=function(Br,qr){return o(Qe(Br,-860373976,77),Br,qr)},Mr=o($0[2],M0,Er);else var Mr=M0;return[0,Mr,u(s0,b0),0]}}return cr([0,Z[1]],p0,B)}),N(or,function(B,Z){var p0=o(Ar,B,Z);return[0,p0[1],[16,p0[2]]]}),N(W0,function(B){var Z=A0(B);return typeof Z=="number"&&Z===86?[1,u(i,B)]:[0,j1(B)]}),N(Lr,function(B,Z,p0){var b0=B[2];function O0(Sr){return y7(Sr,lr([0,Z],[0,p0],0))}switch(b0[0]){case 0:var F0=[0,O0(b0[1])];break;case 1:var F0=[1,O0(b0[1])];break;case 2:var F0=[2,O0(b0[1])];break;case 3:var F0=[3,O0(b0[1])];break;case 4:var F0=[4,O0(b0[1])];break;case 5:var F0=[5,O0(b0[1])];break;case 6:var F0=[6,O0(b0[1])];break;case 7:var F0=[7,O0(b0[1])];break;case 8:var F0=[8,O0(b0[1])];break;case 9:var F0=[9,O0(b0[1])];break;case 10:var F0=[10,O0(b0[1])];break;case 11:var M0=b0[1],er=O0(M0[2]),F0=[11,[0,M0[1],er]];break;case 12:var yr=b0[1],vr=O0(yr[4]),F0=[12,[0,yr[1],yr[2],yr[3],vr]];break;case 13:var $0=b0[1],Er=lr([0,Z],[0,p0],0),Mr=JD($0[4],Er),F0=[13,[0,$0[1],$0[2],$0[3],Mr]];break;case 14:var Br=b0[1],qr=O0(Br[3]),F0=[14,[0,Br[1],Br[2],qr]];break;case 15:var jr=b0[1],$r=O0(jr[2]),F0=[15,[0,jr[1],$r]];break;case 16:var ne=b0[1],Qr=O0(ne[3]),F0=[16,[0,ne[1],ne[2],Qr]];break;case 17:var be=b0[1],ae=O0(be[3]),F0=[17,[0,be[1],be[2],ae]];break;case 18:var pe=b0[1],oe=pe[1],ce=pe[2],ge=O0(oe[3]),F0=[18,[0,[0,oe[1],oe[2],ge],ce]];break;case 19:var q0=b0[1],Fr=O0(q0[2]),F0=[19,[0,q0[1],Fr]];break;case 20:var _=b0[1],k=O0(_[2]),F0=[20,[0,_[1],k]];break;case 21:var I=b0[1],U=O0(I[2]),F0=[21,[0,I[1],U]];break;case 22:var Y=b0[1],y0=O0(Y[2]),F0=[22,[0,Y[1],y0]];break;case 23:var P0=b0[1],I0=O0(P0[3]),F0=[23,[0,P0[1],P0[2],I0]];break;case 24:var D=b0[1],u0=O0(D[3]),F0=[24,[0,D[1],D[2],u0]];break;case 25:var X0=b0[1],J0=O0(X0[3]),F0=[25,[0,X0[1],X0[2],J0]];break;default:var ir=b0[1],Q0=O0(ir[2]),F0=[26,[0,ir[1],Q0]]}return[0,B[1],F0]});function Wr(B){var Z=pr(B);if(Y0(B,66),A0(B)===4){var p0=on(Z,pr(B));Y0(B,4),Ku(B,0);var b0=u(t[9],B);return k7(B),Y0(B,5),[0,[0,b0],lr([0,p0],[0,we(B)],0)]}return[0,0,lr([0,Z],[0,we(B)],0)]}var Jr=0;function ar(B){var Z=u2(0,B),p0=A0(Z);return typeof p0=="number"&&p0===66?[0,cr(Jr,Wr,Z)]:0}function _r(B){var Z=A0(B),p0=Yn(1,B);if(typeof Z=="number"&&Z===86){if(typeof p0=="number"&&p0===66){Y0(B,86);var b0=ar(B);return[0,[0,j1(B)],b0]}var O0=u(W0,B),M0=A0(B)===66?o2(B,O0):O0;return[0,M0,ar(B)]}return[0,[0,j1(B)],0]}function Ir(B,Z){var p0=_s(1,Z);Ku(p0,1);var b0=u(B,p0);return k7(p0),b0}function fe(B){return Ir(e,B)}function v0(B){return Ir(b,B)}function P(B){return Ir(X,B)}function L(B){return Ir(s0,B)}function Q(B,Z){return Ir(ur(E0,B,0,0),Z)}function i0(B){return Ir(U0,B)}function l0(B){return Ir(l,B)}function S0(B){return Ir(i,B)}function T0(B){return Ir(W0,B)}function rr(B){return Ir(ar,B)}function L0(B){return Ir(_r,B)}return[0,fe,v0,P,L,function(B){return Ir(hr,B)},Q,i0,l0,S0,T0,rr,L0]}function $ee(t){function n(c,s){if(s[0]===0)return s[1];var p=s[2][1];return Du(function(y){return ue(c,y)},p),s[1]}function e(c,s,p){var y=c?c[1]:26;if(p[0]===0)var T=p[1];else{var E=p[2][2];Du(function(A){return ue(s,A)},E);var T=p[1]}1-u(t[23],T)&&ue(s,[0,T[1],y]);var d=T[2],w=0;return d[0]===10&&js(d[1][2][1])&&(V7(s,[0,T[1],52]),w=1),o(t[19],s,T)}function i(c,s){return[0,[0,c,s[1]],[0,c,s[2]]]}function x(c,s){var p=Lc(c[2],s[2]);return[0,Lc(c[1],s[1]),p]}return[0,n,e,g$r,i,x,function(c){var s=ye(c[2]);return[0,ye(c[1]),s]}]}function Zee(t){function n(S){var M=A0(S);if(typeof M=="number"){var K=M-99|0,V=0;if(6>>0?K===14&&(V=1):4<(K-1|0)>>>0&&(V=1),V)return we(S)}var f0=x7(S);return f0&&Ms(S)}function e(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){Y0(f0,0),Y0(f0,12);var m0=u(t[10],f0);return Y0(f0,1),m0},S);k7(S);var V=lr([0,M],[0,n(S)],0);return[0,K[1],[0,K[2],V]]}function i(S){return A0(S)===1?0:[0,u(t[7],S)]}function x(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){Y0(f0,0);var m0=i(f0);return Y0(f0,1),m0},S);k7(S);var V=yu([0,M],[0,n(S)],0,0);return[0,K[1],[0,K[2],V]]}function c(S){Ku(S,0);var M=cr(0,function(K){Y0(K,0);var V=A0(K),f0=0;if(typeof V=="number"&&V===12){var m0=pr(K);Y0(K,12);var k0=u(t[10],K),x0=[3,[0,k0,lr([0,m0],0,0)]];f0=1}if(!f0)var g0=i(K),e0=g0?0:pr(K),x0=[2,[0,g0,yu(0,0,e0,0)]];return Y0(K,1),x0},S);return k7(S),[0,M[1],M[2]]}function s(S){var M=Pe(S),K=A0(S),V=0;if(typeof K!="number"&&K[0]===7){var f0=K[1];V=1}if(!V){St(FQr,S);var f0=TQr}var m0=pr(S);ie(S);var k0=A0(S),g0=0;if(typeof k0=="number"){var e0=k0+CX|0,x0=0;if(72>>0?e0!==76&&(x0=1):70<(e0-1|0)>>>0||(x0=1),!x0){var l=we(S);g0=1}}if(!g0)var l=n(S);return[0,M,[0,f0,lr([0,m0],[0,l],0)]]}function p(S){var M=Yn(1,S);if(typeof M=="number"){if(M===10)for(var K=cr(0,function(m0){var k0=[0,s(m0)];return Y0(m0,10),[0,k0,s(m0)]},S);;){var V=A0(S);if(typeof V=="number"&&V===10){var f0=function(k0){return function(g0){return Y0(g0,10),[0,[1,k0],s(g0)]}}(K),K=cr([0,K[1]],f0,S);continue}return[2,K]}if(M===86)return[1,cr(0,function(m0){var k0=s(m0);return Y0(m0,86),[0,k0,s(m0)]},S)]}return[0,s(S)]}function y(S){return cr(0,function(M){var K=Yn(1,M),V=0;if(typeof K=="number"&&K===86){var f0=[1,cr(0,function(b){var R0=s(b);return Y0(b,86),[0,R0,s(b)]},M)];V=1}if(!V)var f0=[0,s(M)];var m0=A0(M),k0=0;if(typeof m0=="number"&&m0===82){Y0(M,82);var g0=pr(M),e0=A0(M),x0=0;if(typeof e0=="number")if(e0===0){var l=x(M),c0=l[2],t0=l[1];c0[1]||ue(M,[0,t0,56]);var o0=[0,[1,t0,c0]]}else x0=1;else if(e0[0]===8){Y0(M,e0);var w0=[0,e0[2]],_0=lr([0,g0],[0,n(M)],0),o0=[0,[0,e0[1],[0,w0,e0[3],_0]]]}else x0=1;if(x0){je(M,57);var o0=[0,[0,Pe(M),[0,gQr,SQr,0]]]}var E0=o0;k0=1}if(!k0)var E0=0;return[0,f0,E0]},S)}function T(S){return cr(0,function(M){Y0(M,98);var K=A0(M);if(typeof K=="number"){if(K===99)return ie(M),wQr}else if(K[0]===7)for(var V=0,f0=p(M);;){var m0=A0(M);if(typeof m0=="number"){if(m0===0){var V=[0,[1,e(M)],V];continue}}else if(m0[0]===7){var V=[0,[0,y(M)],V];continue}var k0=ye(V),g0=[0,c1,[0,f0,xu(M,j7),k0]];return xu(M,99)?[0,g0]:(B1(M,99),[1,g0])}return B1(M,99),EQr},S)}function E(S){return cr(0,function(M){Y0(M,98),Y0(M,j7);var K=A0(M);if(typeof K=="number"){if(K===99)return ie(M),Ni}else if(K[0]===7){var V=p(M);return pe0(M,99),[0,c1,[0,V]]}return B1(M,99),Ni},S)}var d=function S(M){return S.fun(M)},w=function S(M){return S.fun(M)},G=function S(M){return S.fun(M)};N(d,function(S){var M=A0(S);if(typeof M=="number"){if(M===0)return c(S)}else if(M[0]===8)return Y0(S,M),[0,M[1],[4,[0,M[2],M[3]]]];var K=u(G,S),V=K[2],f0=K[1];return Ni<=V[1]?[0,f0,[1,V[2]]]:[0,f0,[0,V[2]]]});function A(S){switch(S[0]){case 0:return S[1][2][1];case 1:var M=S[1][2],K=Te(hQr,M[2][2][1]);return Te(M[1][2][1],K);default:var V=S[1][2],f0=V[1],m0=f0[0]===0?f0[1][2][1]:A([2,f0[1]]);return Te(m0,Te(dQr,V[2][2][1]))}}return N(w,function(S){var M=pr(S),K=T(S);k7(S);var V=K[2];if(V[0]===0)var f0=V[1],m0=typeof f0=="number"?0:f0[2][2],k0=m0;else var k0=1;if(k0)var g0=SU,e0=g0,x0=cr(0,function(qr){return 0},S);else{Ku(S,3);for(var l=Pe(S),c0=0;;){var t0=i2(S),o0=A0(S),w0=0;if(typeof o0=="number"){var _0=0;if(o0===98){Ku(S,2);var E0=A0(S),U0=Yn(1,S),b=0;if(typeof E0=="number"&&E0===98&&typeof U0=="number"){var R0=0;if(j7!==U0&&Pn!==U0&&(R0=1),!R0){var X=E(S),s0=X[2],hr=X[1],Ar=typeof s0=="number"?[0,Ni,hr]:[0,c1,[0,hr,s0[2]]],or=S[23][1],W0=0;if(or){var Lr=or[2];if(Lr){var Tr=Lr[2];W0=1}}if(!W0)var Tr=ke(wRr);S[23][1]=Tr;var Hr=n2(S),Or=Yl(S[24][1],Hr);S[25][1]=Or;var fr=[0,ye(c0),t0,Ar];b=1}}if(!b){var Rr=u(w,S),Wr=Rr[2],Jr=Rr[1],ar=Ni<=Wr[1]?[0,Jr,[1,Wr[2]]]:[0,Jr,[0,Wr[2]]],c0=[0,ar,c0];continue}}else if(Pn===o0){St(0,S);var fr=[0,ye(c0),t0,SU]}else w0=1,_0=1;if(!_0)var _r=t0?t0[1]:l,Ir=yt(l,_r),e0=fr[3],x0=[0,Ir,fr[1]]}else w0=1;if(w0){var c0=[0,u(d,S),c0];continue}break}}var fe=we(S),v0=0;if(typeof e0!="number"){var P=e0[1],L=0;if(c1===P){var Q=e0[2],i0=K[2];if(i0[0]===0){var l0=i0[1];if(typeof l0=="number")je(S,kQr);else{var S0=A(l0[2][1]);n0(A(Q[2][1]),S0)&&je(S,[17,S0])}}var T0=Q[1]}else if(Ni===P){var rr=K[2];if(rr[0]===0){var L0=rr[1];typeof L0!="number"&&je(S,[17,A(L0[2][1])])}var T0=e0[2]}else L=1;if(!L){var B=T0;v0=1}}if(!v0)var B=K[1];var Z=K[2][1],p0=K[1];if(typeof Z=="number"){var b0=0,O0=lr([0,M],[0,fe],0);if(typeof e0!="number"){var M0=e0[1],er=0;if(c1===M0)var yr=e0[2][1];else if(Ni===M0)var yr=e0[2];else er=1;if(!er){var vr=yr;b0=1}}if(!b0)var vr=B;var $0=[0,Ni,[0,p0,vr,x0,O0]]}else{var Er=0,Mr=lr([0,M],[0,fe],0);if(typeof e0!="number"&&c1===e0[1]){var Br=[0,e0[2]];Er=1}if(!Er)var Br=0;var $0=[0,c1,[0,[0,p0,Z[2]],Br,x0,Mr]]}return[0,yt(K[1],B),$0]}),N(G,function(S){return Ku(S,2),u(w,S)}),[0,n,e,i,x,c,s,p,y,T,E,d,w,G]}function Fi(t){return typeof t=="number"?0:t[0]===0?1:t[1]}function Qee(t,n){return[0,t,n]}function tb(t,n,e){return[1,2,n,e,t,0]}function ub(t,n,e){return[1,2,t,n,0,e]}function Uc(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return s===1?[0,n,e]:[1,s,n,e,t,i]}function FL(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=FL(t,i),c=u(t,0),s=FL(t,(n-i|0)-1|0),p=c[2],y=c[1];return[1,Fi(x)+1|0,y,p,x,s]}var T=u(t,0),E=[0,T[1],T[2]]}else var E=e;return E}function P9(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return[1,s,n,e,t,i]}function Iu(t,n,e,i){var x=Fi(t),c=Fi(i);if((c+2|0)>>0){if(!(T7<(Or+1|0)>>>0)){var fr=Tr[3],Rr=Tr[4],Wr=ye(Tr[1][4]),Jr=ye(Tr[1][3]),ar=ye(Tr[1][2]),_r=ye(Tr[1][1]),Ir=on(Rr,pr(R0));Y0(R0,1);var fe=A0(R0),v0=0;if(typeof fe=="number"){var P=0;if(fe!==1&&Pn!==fe&&(v0=1,P=1),!P)var Q=we(R0)}else v0=1;if(v0)var L=x7(R0),Q=L&&Ms(R0);var i0=yu([0,Lr],[0,Q],Ir,0);if(or)switch(or[1]){case 0:return[0,[0,_r,1,fr,i0]];case 1:return[1,[0,ar,1,fr,i0]];case 2:var l0=1;break;default:return[3,[0,Wr,fr,i0]]}else{var S0=Dc(_r),T0=Dc(ar),rr=Dc(Jr),L0=Dc(Wr),B=0;if(S0===0&&T0===0){var Z=0;if(rr===0&&L0===0&&(B=1,Z=1),!Z){var l0=0;B=2}}var p0=0;switch(B){case 0:if(T0===0&&rr===0&&L0<=S0)return Du(function(K0){return ue(R0,[0,K0[1],[0,E0,K0[2][1][2][1]]])},Wr),[0,[0,_r,0,fr,i0]];if(S0===0&&rr===0&&L0<=T0)return Du(function(K0){return ue(R0,[0,K0[1],[8,E0,K0[2][1][2][1]]])},Wr),[1,[0,ar,0,fr,i0]];ue(R0,[0,U0,[2,E0]]);break;case 1:break;default:p0=1}if(!p0)return[2,[0,zJr,0,fr,i0]]}var b0=Dc(Jr),O0=Dc(Wr);if(b0!==0){var M0=0;if(O0!==0&&(b0>>0)T7<(Er+1|0)>>>0&&(Mr=1);else if(Er===7){Y0(R0,9);var Br=A0(R0),qr=0;if(typeof Br=="number"){var jr=0;if(Br!==1&&Pn!==Br&&(jr=1),!jr){var $r=1;qr=1}}if(!qr)var $r=0;ue(R0,[0,er,[7,$r]])}else Mr=1;Mr||($0=1)}$0||ue(R0,[0,er,qJr]);var Tr=[0,Tr[1],Tr[2],1,yr];continue}}var ne=Tr[2],Qr=Tr[1],be=cr(x,i,R0),ae=be[2],pe=ae[1],oe=pe[2][1];if(qn(oe,UJr))var ce=Tr;else{var ge=pe[1],q0=ae[2],Fr=be[1],_=It(oe,0),k=97<=_?1:0,I=k&&(_<=In?1:0);I&&ue(R0,[0,ge,[6,E0,oe]]),o(Mu[3],oe,ne)&&ue(R0,[0,ge,[1,E0,oe]]);var U=Tr[4],Y=Tr[3],y0=o(Mu[4],oe,ne),P0=[0,Tr[1],y0,Y,U],I0=function(Ur){return function(h0,Kr){return or&&or[1]!==h0?ue(R0,[0,Kr,[5,E0,or,Ur]]):0}}(oe);if(typeof q0=="number"){var D=0;if(or){var u0=or[1],X0=0;if(u0===1?ue(R0,[0,Fr,[8,E0,oe]]):u0?(D=1,X0=1):ue(R0,[0,Fr,[0,E0,oe]]),!X0)var J0=P0}else D=1;if(D)var J0=[0,[0,Qr[1],Qr[2],Qr[3],[0,[0,Fr,[0,pe]],Qr[4]]],y0,Y,U]}else switch(q0[0]){case 0:ue(R0,[0,q0[1],[5,E0,or,oe]]);var J0=P0;break;case 1:var ir=q0[1];I0(0,ir);var J0=[0,[0,[0,[0,Fr,[0,pe,[0,ir,q0[2]]]],Qr[1]],Qr[2],Qr[3],Qr[4]],y0,Y,U];break;case 2:var Q0=q0[1];I0(1,Q0);var J0=[0,[0,Qr[1],[0,[0,Fr,[0,pe,[0,Q0,q0[2]]]],Qr[2]],Qr[3],Qr[4]],y0,Y,U];break;default:var F0=q0[1];I0(2,F0);var J0=[0,[0,Qr[1],Qr[2],[0,[0,Fr,[0,pe,[0,F0,q0[2]]]],Qr[3]],Qr[4]],y0,Y,U]}var ce=J0}var Sr=A0(R0),mr=0;if(typeof Sr=="number"){var Cr=Sr-2|0,sr=0;Xt>>0?T7<(Cr+1|0)>>>0&&(sr=1):Cr===6?(je(R0,1),Y0(R0,8)):sr=1,sr||(mr=1)}mr||Y0(R0,9);var Tr=ce}},o0);return[16,[0,_0,b,lr([0,w0],0,0)]]}var s=0;function p(o0){return cr(s,c,o0)}function y(o0,w0){var _0=w0[2][1],E0=w0[1],U0=o0[1];js(_0)&&V7(U0,[0,E0,41]);var b=O9(_0),R0=b||f2(_0);return R0&&V7(U0,[0,E0,55]),[0,U0,o0[2]]}function T(o0,w0){var _0=w0[2];switch(_0[0]){case 0:return le(E,o0,_0[1][1]);case 1:return le(d,o0,_0[1][1]);case 2:var E0=_0[1][1],U0=E0[2][1],b=o0[2],R0=o0[1];o(Mu[3],U0,b)&&ue(R0,[0,E0[1],42]);var X=y([0,R0,b],E0),s0=o(Mu[4],U0,X[2]);return[0,X[1],s0];default:return ue(o0[1],[0,w0[1],31]),o0}}function E(o0,w0){if(w0[0]===0){var _0=w0[1][2],E0=_0[1],U0=E0[0]===1?y(o0,E0[1]):o0;return T(U0,_0[2])}return T(o0,w0[1][2][1])}function d(o0,w0){return w0[0]===2?o0:T(o0,w0[1][2][1])}function w(o0,w0,_0,E0){var U0=o0[5],b=q1(E0),R0=E0[2],X=R0[3],s0=_s(U0?0:w0,o0),hr=w0||U0||1-b;if(hr){if(_0){var Ar=_0[1],or=Ar[2][1],W0=Ar[1];js(or)&&V7(s0,[0,W0,44]);var Lr=O9(or),Tr=Lr||f2(or);Tr&&V7(s0,[0,W0,55])}var Hr=R0[2],Or=[0,s0,Mu[1]],fr=le(function(ar,_r){return T(ar,_r[2][1])},Or,Hr),Rr=X&&(T(fr,X[1][2][1]),0),Wr=Rr}else var Wr=hr;return Wr}var G=function o0(w0,_0){return o0.fun(w0,_0)};function A(o0){A0(o0)===21&&je(o0,s7);var w0=o(se[18],o0,41),_0=A0(o0)===82?1:0,E0=_0&&(Y0(o0,82),[0,u(se[10],o0)]);return[0,w0,E0]}var S=0;N(G,function(o0,w0){var _0=A0(o0);if(typeof _0=="number"){var E0=_0-5|0,U0=0;if(7>>0?is===E0&&(U0=1):5<(E0-1|0)>>>0&&(U0=1),U0){var b=_0===12?1:0;if(b)var R0=pr(o0),X=cr(0,function(or){return Y0(or,12),o(se[18],or,41)},o0),s0=lr([0,R0],0,0),hr=[0,[0,X[1],[0,X[2],s0]]];else var hr=b;return A0(o0)!==5&&je(o0,64),[0,ye(w0),hr]}}var Ar=cr(S,A,o0);return A0(o0)!==5&&Y0(o0,9),o(G,o0,[0,Ar,w0])});function M(o0,w0){function _0(U0){var b=mL(w0,re0(o0,U0)),R0=1,X=b[10]===1?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],R0,b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30]],s0=pr(X);Y0(X,4);var hr=fu(X),Ar=hr&&(A0(X)===21?1:0);if(Ar){var or=pr(X),W0=cr(0,function(ar){return Y0(ar,21),A0(ar)===86?[0,u(t[9],ar)]:(je(ar,Ri),0)},X),Lr=W0[2];if(Lr){A0(X)===9&&ie(X);var Tr=lr([0,or],0,0),Hr=[0,[0,W0[1],[0,Lr[1],Tr]]]}else var Hr=Lr;var Or=Hr}else var Or=Ar;var fr=o(G,X,0),Rr=pr(X);Y0(X,5);var Wr=yu([0,s0],[0,we(X)],Rr,0);return[0,Or,fr[1],fr[2],Wr]}var E0=0;return function(U0){return cr(E0,_0,U0)}}function K(o0,w0,_0,E0,U0){var b=fe0(o0,w0,_0,U0),R0=o(se[16],E0,b);return[0,[0,R0[1]],R0[2]]}function V(o0,w0,_0){var E0=Pe(o0),U0=A0(o0),b=0;if(typeof U0=="number")if(s7===U0){var R0=pr(o0);ie(o0);var s0=[0,[0,E0,[0,0,lr([0,R0],0,0)]]]}else if(L7===U0){var X=pr(o0);ie(o0);var s0=[0,[0,E0,[0,1,lr([0,X],0,0)]]]}else b=1;else b=1;if(b)var s0=0;if(s0){var hr=0;if(!w0&&!_0&&(hr=1),!hr)return ue(o0,[0,s0[1][1],7]),0}return s0}function f0(o0){if(Yt===A0(o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return S$r}function m0(o0){if(A0(o0)===64&&!Jl(1,o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return E$r}function k0(o0){var w0=m0(o0),_0=w0[1],E0=w0[2],U0=cr(0,function(W0){var Lr=pr(W0);Y0(W0,15);var Tr=f0(W0),Hr=Tr[1],Or=pl([0,E0,[0,Lr,[0,Tr[2],0]]]),fr=W0[7],Rr=A0(W0),Wr=0;if(fr&&typeof Rr=="number"){if(Rr===4){var Ir=0,fe=0;Wr=1}else if(Rr===98){var Jr=oi(W0,u(t[3],W0)),ar=A0(W0)===4?0:[0,ys(W0,o(se[13],h$r,W0))],Ir=ar,fe=Jr;Wr=1}}if(!Wr)var _r=G1(W0)?ys(W0,o(se[13],d$r,W0)):(be0(W0,k$r),[0,Pe(W0),w$r]),Ir=[0,_r],fe=oi(W0,u(t[3],W0));var v0=u(M(_0,Hr),W0),P=A0(W0)===86?v0:eb(W0,v0),L=u(t[12],W0),Q=L[2],i0=L[1];if(Q)var l0=he0(W0,Q),S0=i0;else var l0=Q,S0=o2(W0,i0);return[0,Hr,fe,Ir,P,S0,l0,Or]},o0),b=U0[2],R0=b[4],X=b[3],s0=b[1],hr=K(o0,_0,s0,0,q1(R0));w(o0,hr[2],X,R0);var Ar=U0[1],or=lr([0,b[7]],0,0);return[23,[0,X,R0,hr[1],_0,s0,b[6],b[5],b[2],or,Ar]]}var g0=0;function e0(o0){return cr(g0,k0,o0)}function x0(o0,w0){var _0=pr(w0);Y0(w0,o0);for(var E0=0,U0=0;;){var b=cr(0,function(or){var W0=o(se[18],or,40);if(xu(or,82))var Lr=0,Tr=[0,u(se[10],or)];else if(W0[2][0]===2)var Lr=0,Tr=0;else var Lr=[0,[0,W0[1],59]],Tr=0;return[0,[0,W0,Tr],Lr]},w0),R0=b[2],X=R0[2],s0=[0,[0,b[1],R0[1]],E0],hr=X?[0,X[1],U0]:U0;if(xu(w0,9)){var E0=s0,U0=hr;continue}var Ar=ye(hr);return[0,ye(s0),_0,Ar]}}var l=24;function c0(o0){return x0(l,o0)}function t0(o0){var w0=x0(27,F9(1,o0)),_0=w0[1],E0=w0[3],U0=ye(le(function(b,R0){return R0[2][2]?b:[0,[0,R0[1],58],b]},E0,_0));return[0,_0,w0[2],U0]}return[0,m0,f0,V,M,K,w,function(o0){return x0(28,F9(1,o0))},t0,c0,e0,p]}(mn),R9=$ee(se),ci=function(t){function n(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,pQr)){if(!n0(i0,mQr)){var l0=n0(Q[2][2][1],_Qr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],yQr);if(!S0)return S0}break;case 0:case 10:case 16:case 19:break;default:return 0}return 1}var e=t[1],i=function P(L){return P.fun(L)},x=function P(L){return P.fun(L)},c=function P(L){return P.fun(L)},s=function P(L){return P.fun(L)},p=function P(L){return P.fun(L)},y=function P(L){return P.fun(L)},T=function P(L){return P.fun(L)},E=function P(L){return P.fun(L)},d=function P(L){return P.fun(L)},w=function P(L){return P.fun(L)},G=function P(L){return P.fun(L)},A=function P(L){return P.fun(L)},S=function P(L){return P.fun(L)},M=function P(L){return P.fun(L)},K=function P(L){return P.fun(L)},V=function P(L){return P.fun(L)},f0=function P(L){return P.fun(L)},m0=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},k0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},g0=function P(L){return P.fun(L)},e0=function P(L){return P.fun(L)},x0=function P(L){return P.fun(L)},l=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},c0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},t0=function P(L){return P.fun(L)},o0=function P(L,Q,i0){return P.fun(L,Q,i0)},w0=function P(L){return P.fun(L)},_0=function P(L,Q,i0){return P.fun(L,Q,i0)},E0=function P(L){return P.fun(L)},U0=function P(L){return P.fun(L)},b=function P(L,Q){return P.fun(L,Q)},R0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},X=function P(L){return P.fun(L)},s0=function P(L,Q,i0){return P.fun(L,Q,i0)},hr=function P(L){return P.fun(L)},Ar=function P(L){return P.fun(L)},or=function P(L){return P.fun(L)},W0=function P(L,Q,i0){return P.fun(L,Q,i0)},Lr=t[2];function Tr(P){var L=Pe(P),Q=u(y,P),i0=u(p,P);if(i0){var l0=i0[1];return[0,cr([0,L],function(S0){var T0=ur(Lr,0,S0,Q);return[2,[0,l0,T0,u(x,S0),0]]},P)]}return Q}function Hr(P,L){if(typeof L=="number"){var Q=L!==55?1:0;if(!Q)return Q}throw Bs}function Or(P){var L=T9(Hr,P),Q=Tr(L),i0=A0(L);if(typeof i0=="number"){if(i0===11)throw Bs;if(i0===86){var l0=ue0(L),S0=0;if(l0){var T0=l0[1];if(typeof T0=="number"&&T0===5){var rr=1;S0=1}}if(!S0)var rr=0;if(rr)throw Bs}}if(G1(L)){if(Q[0]===0){var L0=Q[1][2];if(L0[0]===10&&!n0(L0[1][2][1],bQr)&&!x7(L))throw Bs}return Q}return Q}N(i,function(P){var L=A0(P),Q=0,i0=G1(P);if(typeof L=="number"){var l0=0;if(22<=L)if(L===58){if(P[17])return[0,u(c,P)];l0=1}else L!==98&&(l0=1);else L!==4&&!(21<=L)&&(l0=1);l0||(Q=1)}if(!Q&&!i0)return Tr(P);var S0=0;if(L===64&&fu(P)&&Yn(1,P)===98){var T0=Or,rr=or;S0=1}if(!S0)var T0=or,rr=Or;var L0=EL(P,rr);if(L0)return L0[1];var B=EL(P,T0);return B?B[1]:Tr(P)}),N(x,function(P){return o(e,P,u(i,P))}),N(c,function(P){return cr(0,function(L){L[10]&&je(L,91);var Q=pr(L),i0=Pe(L);Y0(L,58);var l0=Pe(L);if(x2(L))var S0=0,T0=0;else{var rr=xu(L,Yt),L0=A0(L),B=0;if(typeof L0=="number"){var Z=0;if(L0!==86)if(10<=L0)Z=1;else switch(L0){case 0:case 2:case 3:case 4:case 6:Z=1;break}if(!Z){var p0=0;B=1}}if(!B)var p0=1;var b0=rr||p0,O0=b0&&[0,u(x,L)],S0=rr,T0=O0}var M0=T0?0:we(L),er=yt(i0,l0);return[30,[0,T0,lr([0,Q],[0,M0],0),S0,er]]},P)}),N(s,function(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,cQr)){if(!n0(i0,sQr)){var l0=n0(Q[2][2][1],vQr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],lQr);if(!S0)return S0}break;case 10:case 16:break;default:return 0}return 1}),N(p,function(P){var L=A0(P),Q=0;if(typeof L=="number"){var i0=L-67|0;if(!(15>>0)){switch(i0){case 0:var l0=KZr;break;case 1:var l0=WZr;break;case 2:var l0=JZr;break;case 3:var l0=$Zr;break;case 4:var l0=ZZr;break;case 5:var l0=QZr;break;case 6:var l0=rQr;break;case 7:var l0=eQr;break;case 8:var l0=nQr;break;case 9:var l0=tQr;break;case 10:var l0=uQr;break;case 11:var l0=iQr;break;case 12:var l0=fQr;break;case 13:var l0=xQr;break;case 14:var l0=oQr;break;default:var l0=aQr}var S0=l0;Q=1}}if(!Q)var S0=0;return S0!==0&&ie(P),S0}),N(y,function(P){var L=Pe(P),Q=u(E,P);if(A0(P)===85){ie(P);var i0=u(x,Kl(0,P));Y0(P,86);var l0=cr(0,x,P),S0=yt(L,l0[1]),T0=l0[2];return[0,[0,S0,[7,[0,o(e,P,Q),i0,T0,0]]]]}return Q}),N(T,function(P){return o(e,P,u(y,P))});function fr(P,L,Q,i0,l0){var S0=o(e,P,L);return[0,[0,l0,[15,[0,i0,S0,o(e,P,Q),0]]]]}function Rr(P,L,Q,i0){for(var l0=P,S0=Q,T0=i0;;){var rr=A0(L);if(typeof rr=="number"&&rr===84){1-l0&&je(L,zZr),Y0(L,84);var L0=cr(0,d,L),B=L0[2],Z=L0[1],p0=A0(L),b0=0;if(typeof p0=="number"&&!(1<(p0-87|0)>>>0)){je(L,[23,oL(p0)]);var O0=Jr(L,B,Z),M0=Wr(L,O0[2],O0[1]),er=M0[2],yr=M0[1];b0=1}if(!b0)var er=B,yr=Z;var vr=yt(T0,yr),l0=1,S0=fr(L,S0,er,2,vr),T0=vr;continue}return[0,T0,S0]}}function Wr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0=="number"&&S0===87){ie(P);var T0=cr(0,d,P),rr=Jr(P,T0[2],T0[1]),L0=yt(l0,rr[1]),B=Rr(0,P,fr(P,i0,rr[2],0,L0),L0),i0=B[2],l0=B[1];continue}return[0,l0,i0]}}function Jr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0=="number"&&S0===88){ie(P);var T0=cr(0,d,P),rr=yt(l0,T0[1]),L0=Rr(0,P,fr(P,i0,T0[2],1,rr),rr),i0=L0[2],l0=L0[1];continue}return[0,l0,i0]}}N(E,function(P){var L=cr(0,d,P),Q=L[2],i0=L[1],l0=A0(P),S0=0;if(typeof l0=="number"&&l0===84){var rr=Rr(1,P,Q,i0);S0=1}if(!S0)var T0=Jr(P,Q,i0),rr=Wr(P,T0[2],T0[1]);return rr[2]});function ar(P,L,Q,i0){return[0,i0,[3,[0,Q,P,L,0]]]}N(d,function(P){var L=0;r:for(;;){var Q=cr(0,function(k){var I=u(w,k)!==0?1:0;return[0,I,u(G,Kl(0,k))]},P),i0=Q[2],l0=i0[2],S0=Q[1];if(A0(P)===98){var T0=0;l0[0]===0&&l0[1][2][0]===12?je(P,63):T0=1}var rr=A0(P),L0=0;if(typeof rr=="number"){var B=rr-17|0,Z=0;if(1>>0)if(72<=B)switch(B-72|0){case 0:var p0=gZr;break;case 1:var p0=FZr;break;case 2:var p0=TZr;break;case 3:var p0=OZr;break;case 4:var p0=IZr;break;case 5:var p0=AZr;break;case 6:var p0=NZr;break;case 7:var p0=CZr;break;case 8:var p0=PZr;break;case 9:var p0=DZr;break;case 10:var p0=LZr;break;case 11:var p0=RZr;break;case 12:var p0=jZr;break;case 13:var p0=GZr;break;case 14:var p0=MZr;break;case 15:var p0=BZr;break;case 16:var p0=qZr;break;case 17:var p0=UZr;break;case 18:var p0=HZr;break;case 19:var p0=XZr;break;default:Z=1}else Z=1;else var p0=B?YZr:P[12]?0:VZr;if(!Z){var b0=p0;L0=1}}if(!L0)var b0=0;if(b0!==0&&ie(P),!L&&!b0)return l0;if(b0){var O0=b0[1],M0=O0[1],er=i0[1],yr=er&&(M0===14?1:0);yr&&ue(P,[0,S0,27]);for(var vr=o(e,P,l0),$0=vr,Er=[0,M0,O0[2]],Mr=S0,Br=L;;){var qr=Er[2],jr=Er[1];if(Br){var $r=Br[1],ne=$r[2],Qr=ne[2],be=Qr[0]===0?Qr[1]:Qr[1]-1|0;if(qr[1]<=be){var ae=yt($r[3],Mr),pe=ar($r[1],$0,ne[1],ae),$0=pe,Er=[0,jr,qr],Mr=ae,Br=Br[2];continue}}var L=[0,[0,$0,[0,jr,qr],Mr],Br];continue r}}for(var oe=o(e,P,l0),ce=S0,ge=L;;){if(ge){var q0=ge[1],Fr=yt(q0[3],ce),_=ge[2],oe=ar(q0[1],oe,q0[2][1],Fr),ce=Fr,ge=_;continue}return[0,oe]}}}),N(w,function(P){var L=A0(P);if(typeof L=="number"){if(48<=L){if(s7<=L){if(!(cf<=L))switch(L-103|0){case 0:return _Zr;case 1:return yZr;case 6:return hZr;case 7:return dZr}}else if(L===65&&P[18])return kZr}else if(45<=L)switch(L+mv|0){case 0:return wZr;case 1:return EZr;default:return SZr}}return 0}),N(G,function(P){var L=Pe(P),Q=pr(P),i0=u(w,P);if(i0){var l0=i0[1];ie(P);var S0=cr(0,A,P),T0=S0[2],rr=yt(L,S0[1]),L0=0;if(l0===6){var B=T0[2],Z=0;switch(B[0]){case 10:V7(P,[0,rr,47]);break;case 16:B[1][2][0]===1&&ue(P,[0,rr,88]);break;default:Z=1}Z||(L0=1)}return[0,[0,rr,[28,[0,l0,T0,lr([0,Q],0,0)]]]]}var p0=A0(P),b0=0;if(typeof p0=="number")if(cf===p0)var O0=mZr;else if(T7===p0)var O0=pZr;else b0=1;else b0=1;if(b0)var O0=0;if(O0){ie(P);var M0=cr(0,A,P),er=M0[2];1-u(s,er)&&ue(P,[0,er[1],26]);var yr=er[2],vr=0;yr[0]===10&&js(yr[1][2][1])&&(gi(P,54),vr=1);var $0=yt(L,M0[1]),Er=lr([0,Q],0,0);return[0,[0,$0,[29,[0,O0[1],er,1,Er]]]]}return u(S,P)}),N(A,function(P){return o(e,P,u(G,P))}),N(S,function(P){var L=u(M,P);if(x7(P))return L;var Q=A0(P),i0=0;if(typeof Q=="number")if(cf===Q)var l0=bZr;else if(T7===Q)var l0=lZr;else i0=1;else i0=1;if(i0)var l0=0;if(l0){var S0=o(e,P,L);1-u(s,S0)&&ue(P,[0,S0[1],26]);var T0=S0[2],rr=0;T0[0]===10&&js(T0[1][2][1])&&(gi(P,53),rr=1);var L0=Pe(P);ie(P);var B=we(P),Z=yt(S0[1],L0),p0=lr(0,[0,B],0);return[0,[0,Z,[29,[0,l0[1],S0,0,p0]]]]}return L}),N(M,function(P){var L=Pe(P),Q=1-P[16],i0=0,l0=P[16]===0?P:[0,P[1],P[2],P[3],P[4],P[5],P[6],P[7],P[8],P[9],P[10],P[11],P[12],P[13],P[14],P[15],i0,P[17],P[18],P[19],P[20],P[21],P[22],P[23],P[24],P[25],P[26],P[27],P[28],P[29],P[30]],S0=A0(l0),T0=0;if(typeof S0=="number"){var rr=S0-44|0;if(!(7>>0)){var L0=0;switch(rr){case 0:if(Q)var B=[0,u(g0,l0)];else L0=1;break;case 6:var B=[0,u(f0,l0)];break;case 7:var B=[0,u(V,l0)];break;default:L0=1}if(!L0){var Z=B;T0=1}}}if(!T0)var Z=Gs(l0)?[0,u(t0,l0)]:u(E0,l0);return p7(m0,0,0,l0,L,Z)}),N(K,function(P){return o(e,P,u(M,P))}),N(V,function(P){switch(P[21]){case 0:var L=0,Q=0;break;case 1:var L=0,Q=1;break;default:var L=1,Q=1}var i0=Pe(P),l0=pr(P);Y0(P,51);var S0=[0,i0,[23,[0,lr([0,l0],[0,we(P)],0)]]],T0=A0(P);if(typeof T0=="number"&&!(11<=T0))switch(T0){case 4:var rr=L?S0:(ue(P,[0,i0,5]),[0,i0,[10,Rc(0,[0,i0,oZr])]]);return R(k0,aZr,P,i0,rr);case 6:case 10:var L0=Q?S0:(ue(P,[0,i0,4]),[0,i0,[10,Rc(0,[0,i0,sZr])]]);return R(k0,vZr,P,i0,L0)}return Q?St(cZr,P):ue(P,[0,i0,4]),S0}),N(f0,function(P){return cr(0,function(L){var Q=pr(L),i0=Pe(L);if(Y0(L,50),xu(L,10)){var l0=Rc(0,[0,i0,iZr]),S0=Pe(L);Zl(L,fZr);var T0=Rc(0,[0,S0,xZr]);return[17,[0,l0,T0,lr([0,Q],[0,we(L)],0)]]}var rr=pr(L);Y0(L,4);var L0=ur(s0,[0,rr],0,u(x,Kl(0,L)));return Y0(L,5),[11,[0,L0,lr([0,Q],[0,we(L)],0)]]},P)}),N(m0,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=p7(l,[0,S0],[0,T0],Q,i0,l0),L0=ue0(Q),B=0;if(L0){var Z=L0[1];if(typeof Z=="number"&&Z===83){var p0=1;B=1}}if(!B)var p0=0;function b0(vr){var $0=$t(vr);function Er(Br,qr){return o(Qe(Br,Di,78),Br,qr)}var Mr=o(e,vr,rr);return o($0[2],Mr,Er)}function O0(vr,$0,Er){var Mr=u(x0,$0),Br=Mr[1],qr=yt(i0,Br),jr=[0,Er,vr,[0,Br,Mr[2]],0],$r=0;if(!p0&&!T0){var ne=[4,jr];$r=1}if(!$r)var ne=[20,[0,jr,qr,p0]];var Qr=T0||p0;return p7(m0,[0,S0],[0,Qr],$0,i0,[0,[0,qr,ne]])}if(Q[13])return rr;var M0=A0(Q);if(typeof M0=="number"){var er=M0-98|0;if(2>>0){if(er===-94)return O0(0,Q,b0(Q))}else if(er!==1&&fu(Q)){var yr=T9(function(vr,$0){throw Bs},Q);return _e0(yr,rr,function(vr){var $0=b0(vr);return O0(u(e0,vr),vr,$0)})}}return rr}),N(k0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(m0,[0,l0],0,L,Q,[0,i0]))}),N(g0,function(P){return cr(0,function(L){var Q=Pe(L),i0=pr(L);if(Y0(L,44),L[11]&&A0(L)===10){var l0=we(L);ie(L);var S0=Rc(lr([0,i0],[0,l0],0),[0,Q,eZr]),T0=A0(L);return typeof T0!="number"&&T0[0]===4&&!n0(T0[3],nZr)?[17,[0,S0,o(se[13],0,L),0]]:(St(tZr,L),ie(L),[10,S0])}var rr=Pe(L),L0=A0(L),B=0;if(typeof L0=="number")if(L0===44)var Z=u(g0,L);else if(L0===51)var Z=u(V,_L(1,L));else B=1;else B=1;if(B)var Z=Gs(L)?u(t0,L):u(U0,L);var p0=R(c0,uZr,_L(1,L),rr,Z),b0=A0(L),O0=0;if(typeof b0!="number"&&b0[0]===3){var M0=R(R0,L,rr,p0,b0[1]);O0=1}if(!O0)var M0=p0;var er=0;if(A0(L)!==4){var yr=0;if(fu(L)&&A0(L)===98&&(yr=1),!yr){var Er=M0;er=1}}if(!er)var vr=$t(L),$0=function(ne,Qr){return o(Qe(ne,Di,79),ne,Qr)},Er=o(vr[2],M0,$0);var Mr=fu(L),Br=Mr&&_e0(T9(function(ne,Qr){throw Bs},L),0,e0),qr=A0(L),jr=0;if(typeof qr=="number"&&qr===4){var $r=[0,u(x0,L)];jr=1}if(!jr)var $r=0;return[18,[0,Er,Br,$r,lr([0,i0],0,0)]]},P)});function _r(P){var L=pr(P);Y0(P,98);for(var Q=0;;){var i0=A0(P);if(typeof i0=="number"){var l0=0;if((i0===99||Pn===i0)&&(l0=1),l0){var S0=ye(Q),T0=pr(P);Y0(P,99);var rr=A0(P)===4?$t(P)[1]:we(P);return[0,S0,yu([0,L],[0,rr],T0,0)]}}var L0=A0(P),B=0;if(typeof L0!="number"&&L0[0]===4&&!n0(L0[2],Q$r)){var Z=Pe(P),p0=pr(P);Zl(P,rZr);var b0=[1,[0,Z,[0,lr([0,p0],[0,we(P)],0)]]];B=1}if(!B)var b0=[0,u(mn[1],P)];var O0=[0,b0,Q];A0(P)!==99&&Y0(P,9);var Q=O0}}N(e0,function(P){Ku(P,1);var L=A0(P)===98?1:0,Q=L&&[0,cr(0,_r,P)];return k7(P),Q});function Ir(P){var L=pr(P);Y0(P,12);var Q=u(x,P);return[0,Q,lr([0,L],0,0)]}N(x0,function(P){return cr(0,function(L){var Q=pr(L);Y0(L,4);for(var i0=0;;){var l0=A0(L);if(typeof l0=="number"){var S0=0;if((l0===5||Pn===l0)&&(S0=1),S0){var T0=ye(i0),rr=pr(L);return Y0(L,5),[0,T0,yu([0,Q],[0,we(L)],rr,0)]}}var L0=A0(L),B=0;if(typeof L0=="number"&&L0===12){var Z=[1,cr(0,Ir,L)];B=1}if(!B)var Z=[0,u(x,L)];var p0=[0,Z,i0];A0(L)!==5&&Y0(L,9);var i0=p0}},P)}),N(l,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=A0(Q),L0=0;if(typeof rr=="number")switch(rr){case 6:ie(Q);var B=0,Z=[0,T0],p0=[0,S0];L0=2;break;case 10:ie(Q);var b0=0,O0=[0,T0],M0=[0,S0];L0=1;break;case 83:1-S0&&je(Q,99),Y0(Q,83);var er=0,yr=A0(Q);if(typeof yr=="number")switch(yr){case 4:return l0;case 6:ie(Q);var B=K$r,Z=W$r,p0=[0,S0];L0=2,er=1;break;case 98:if(fu(Q))return l0;break}else if(yr[0]===3)return je(Q,ti),l0;if(!er){var b0=J$r,O0=$$r,M0=[0,S0];L0=1}break}else if(rr[0]===3){T0&&je(Q,ti);var vr=rr[1];return p7(m0,Z$r,0,Q,i0,[0,R(R0,Q,i0,o(e,Q,l0),vr)])}switch(L0){case 0:return l0;case 1:var $0=M0?S0:1,Er=O0&&O0[1],Mr=b0&&b0[1],Br=A0(Q),qr=0;if(typeof Br=="number"&&Br===14){var jr=ge0(Q),$r=jr[1],ne=Q[29][1],Qr=jr[2][1];if(ne){var be=ne[1];Q[29][1]=[0,[0,be[1],[0,[0,Qr,$r],be[2]]],ne[2]]}else ue(Q,[0,$r,89]);var pe=[1,jr],oe=$r;qr=1}if(!qr)var ae=z7(Q),pe=[0,ae],oe=ae[1];var ce=yt(i0,oe),ge=0;l0[0]===0&&l0[1][2][0]===23&&pe[0]===1&&(ue(Q,[0,ce,90]),ge=1);var q0=[0,o(e,Q,l0),pe,0],Fr=Er?[21,[0,q0,ce,Mr]]:[16,q0];return p7(m0,[0,$0],[0,Er],Q,i0,[0,[0,ce,Fr]]);default:var _=p0?S0:1,k=Z&&Z[1],I=B&&B[1],U=_L(0,Q),Y=u(se[7],U),y0=Pe(Q);Y0(Q,7);var P0=we(Q),I0=yt(i0,y0),D=lr(0,[0,P0],0),u0=[0,o(e,Q,l0),[2,Y],D],X0=k?[21,[0,u0,I0,I]]:[16,u0];return p7(m0,[0,_],[0,k],Q,i0,[0,[0,I0,X0]])}}),N(c0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(l,[0,l0],0,L,Q,[0,i0]))}),N(t0,function(P){return cr(0,function(L){var Q=u(Vn[1],L),i0=Q[1],l0=Q[2],S0=cr(0,function(M0){var er=pr(M0);Y0(M0,15);var yr=u(Vn[2],M0),vr=yr[1],$0=pl([0,l0,[0,er,[0,yr[2],0]]]);if(A0(M0)===4)var Er=0,Mr=0;else{var Br=A0(M0),qr=0;if(typeof Br=="number"){var jr=Br!==98?1:0;if(!jr){var ne=jr;qr=1}}if(!qr)var $r=mL(vr,re0(i0,M0)),ne=[0,ys($r,o(se[13],z$r,$r))];var Er=oi(M0,u(mn[3],M0)),Mr=ne}var Qr=t2(0,M0),be=ur(Vn[4],i0,vr,Qr),ae=A0(Qr)===86?be:eb(Qr,be),pe=u(mn[12],Qr),oe=pe[2],ce=pe[1];if(oe)var ge=he0(Qr,oe),q0=ce;else var ge=oe,q0=o2(Qr,ce);return[0,Mr,ae,vr,ge,q0,Er,$0]},L),T0=S0[2],rr=T0[3],L0=T0[2],B=T0[1],Z=q1(L0),p0=p7(Vn[5],L,i0,rr,1,Z);R(Vn[6],L,p0[2],B,L0);var b0=S0[1],O0=lr([0,T0[7]],0,0);return[8,[0,B,L0,p0[1],i0,rr,T0[4],T0[5],T0[6],O0,b0]]},P)}),N(o0,function(P,L,Q){switch(L){case 1:gi(P,45);try{var i0=jv(Rv(Te(U$r,Q))),l0=i0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(H$r,Q))}break;case 2:gi(P,46);try{var S0=ol(Q),l0=S0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(X$r,Q))}break;case 4:try{var T0=ol(Q),l0=T0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(Y$r,Q))}break;default:try{var rr=jv(Rv(Q)),l0=rr}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(V$r,Q))}}return Y0(P,[0,L,Q]),l0}),N(w0,function(P){var L=un(P);return L!==0&&Xt===It(P,L-1|0)?m7(P,0,L-1|0):P}),N(_0,function(P,L,Q){if(2<=L){var i0=u(w0,Q);try{var l0=ol(i0),S0=l0}catch(Z){if(Z=Et(Z),Z[1]!==q7)throw Z;var S0=ke(Te(B$r,i0))}var T0=S0}else{var rr=u(w0,Q);try{var L0=jv(Rv(rr)),B=L0}catch(p0){if(p0=Et(p0),p0[1]!==q7)throw p0;var B=ke(Te(q$r,rr))}var T0=B}return Y0(P,[1,L,Q]),T0}),N(E0,function(P){var L=Pe(P),Q=pr(P),i0=A0(P);if(typeof i0=="number")switch(i0){case 0:var l0=u(se[12],P);return[1,[0,l0[1],[19,l0[2]]],l0[3]];case 4:return[0,u(X,P)];case 6:var S0=cr(0,hr,P),T0=S0[2];return[1,[0,S0[1],[0,T0[1]]],T0[2]];case 21:return ie(P),[0,[0,L,[26,[0,lr([0,Q],[0,we(P)],0)]]]];case 29:return ie(P),[0,[0,L,[14,[0,0,R$r,lr([0,Q],[0,we(P)],0)]]]];case 40:return[0,u(se[22],P)];case 98:var rr=u(se[17],P),L0=rr[2],B=rr[1],Z=Ni<=L0[1]?[13,L0[2]]:[12,L0[2]];return[0,[0,B,Z]];case 30:case 31:ie(P);var p0=i0===31?1:0,b0=p0?G$r:M$r;return[0,[0,L,[14,[0,[1,p0],b0,lr([0,Q],[0,we(P)],0)]]]];case 74:case 105:return[0,u(Ar,P)]}else switch(i0[0]){case 0:var O0=i0[2],M0=[2,ur(o0,P,i0[1],O0)];return[0,[0,L,[14,[0,M0,O0,lr([0,Q],[0,we(P)],0)]]]];case 1:var er=i0[2],yr=[3,ur(_0,P,i0[1],er)];return[0,[0,L,[14,[0,yr,er,lr([0,Q],[0,we(P)],0)]]]];case 2:var vr=i0[1];vr[4]&&gi(P,45),ie(P);var $0=[0,vr[2]],Er=lr([0,Q],[0,we(P)],0);return[0,[0,vr[1],[14,[0,$0,vr[3],Er]]]];case 3:var Mr=o(b,P,i0[1]);return[0,[0,Mr[1],[25,Mr[2]]]]}if(G1(P)){var Br=o(se[13],0,P);return[0,[0,Br[1],[10,Br]]]}St(0,P);var qr=0;return typeof i0!="number"&&i0[0]===6&&(ie(P),qr=1),[0,[0,L,[14,[0,0,j$r,lr([0,Q],[0,0],0)]]]]}),N(U0,function(P){return o(e,P,u(E0,P))}),N(b,function(P,L){var Q=L[3],i0=L[2],l0=L[1],S0=pr(P);Y0(P,[3,L]);var T0=[0,l0,[0,[0,i0[2],i0[1]],Q]];if(Q)var rr=0,L0=[0,T0,0],B=l0;else for(var Z=[0,T0,0],p0=0;;){var b0=u(se[7],P),O0=[0,b0,p0],M0=A0(P),er=0;if(typeof M0=="number"&&M0===1){Ku(P,4);var yr=A0(P),vr=0;if(typeof yr!="number"&&yr[0]===3){var $0=yr[1],Er=$0[3],Mr=$0[2],Br=$0[1];ie(P);var qr=[0,[0,Mr[2],Mr[1]],Er];k7(P);var jr=[0,[0,Br,qr],Z];if(!Er){var Z=jr,p0=O0;continue}var $r=ye(O0),ne=[0,Br,ye(jr),$r];er=1,vr=1}if(!vr)throw[0,Sn,P$r]}if(!er){St(D$r,P);var Qr=[0,b0[1],L$r],be=ye(O0),ae=ye([0,Qr,Z]),ne=[0,b0[1],ae,be]}var rr=ne[3],L0=ne[2],B=ne[1];break}var pe=we(P),oe=yt(l0,B);return[0,oe,[0,L0,rr,lr([0,S0],[0,pe],0)]]}),N(R0,function(P,L,Q,i0){var l0=$t(P);function S0(L0,B){return o(Qe(L0,Di,28),L0,B)}var T0=o(l0[2],Q,S0),rr=o(b,P,i0);return[0,yt(L,rr[1]),[24,[0,T0,rr,0]]]}),N(X,function(P){var L=pr(P),Q=cr(0,function(T0){Y0(T0,4);var rr=Pe(T0),L0=u(x,T0),B=A0(T0),Z=0;if(typeof B=="number")if(B===9)var p0=[0,ur(W0,T0,rr,[0,L0,0])];else if(B===86)var p0=[1,[0,L0,u(mn[9],T0),0]];else Z=1;else Z=1;if(Z)var p0=[0,L0];return Y0(T0,5),p0},P),i0=Q[2],l0=we(P),S0=i0[0]===0?i0[1]:[0,Q[1],[27,i0[1]]];return ur(s0,[0,L],[0,l0],S0)}),N(s0,function(P,L,Q){var i0=Q[2],l0=P&&P[1],S0=L&&L[1];function T0(Je){return y7(Je,lr([0,l0],[0,S0],0))}function rr(Je){return JD(Je,lr([0,l0],[0,S0],0))}switch(i0[0]){case 0:var L0=i0[1],B=rr(L0[2]),Ne=[0,[0,L0[1],B]];break;case 1:var Z=i0[1],p0=Z[10],b0=T0(Z[9]),Ne=[1,[0,Z[1],Z[2],Z[3],Z[4],Z[5],Z[6],Z[7],Z[8],b0,p0]];break;case 2:var O0=i0[1],M0=T0(O0[4]),Ne=[2,[0,O0[1],O0[2],O0[3],M0]];break;case 3:var er=i0[1],yr=T0(er[4]),Ne=[3,[0,er[1],er[2],er[3],yr]];break;case 4:var vr=i0[1],$0=T0(vr[4]),Ne=[4,[0,vr[1],vr[2],vr[3],$0]];break;case 5:var Er=i0[1],Mr=T0(Er[7]),Ne=[5,[0,Er[1],Er[2],Er[3],Er[4],Er[5],Er[6],Mr]];break;case 7:var Br=i0[1],qr=T0(Br[4]),Ne=[7,[0,Br[1],Br[2],Br[3],qr]];break;case 8:var jr=i0[1],$r=jr[10],ne=T0(jr[9]),Ne=[8,[0,jr[1],jr[2],jr[3],jr[4],jr[5],jr[6],jr[7],jr[8],ne,$r]];break;case 10:var Qr=i0[1],be=Qr[2],ae=T0(be[2]),Ne=[10,[0,Qr[1],[0,be[1],ae]]];break;case 11:var pe=i0[1],oe=T0(pe[2]),Ne=[11,[0,pe[1],oe]];break;case 12:var ce=i0[1],ge=T0(ce[4]),Ne=[12,[0,ce[1],ce[2],ce[3],ge]];break;case 13:var q0=i0[1],Fr=T0(q0[4]),Ne=[13,[0,q0[1],q0[2],q0[3],Fr]];break;case 14:var _=i0[1],k=T0(_[3]),Ne=[14,[0,_[1],_[2],k]];break;case 15:var I=i0[1],U=T0(I[4]),Ne=[15,[0,I[1],I[2],I[3],U]];break;case 16:var Y=i0[1],y0=T0(Y[3]),Ne=[16,[0,Y[1],Y[2],y0]];break;case 17:var P0=i0[1],I0=T0(P0[3]),Ne=[17,[0,P0[1],P0[2],I0]];break;case 18:var D=i0[1],u0=T0(D[4]),Ne=[18,[0,D[1],D[2],D[3],u0]];break;case 19:var X0=i0[1],J0=rr(X0[2]),Ne=[19,[0,X0[1],J0]];break;case 20:var ir=i0[1],Q0=ir[1],F0=ir[3],Sr=ir[2],mr=T0(Q0[4]),Ne=[20,[0,[0,Q0[1],Q0[2],Q0[3],mr],Sr,F0]];break;case 21:var Cr=i0[1],sr=Cr[1],Pr=Cr[3],K0=Cr[2],Ur=T0(sr[3]),Ne=[21,[0,[0,sr[1],sr[2],Ur],K0,Pr]];break;case 22:var h0=i0[1],Kr=T0(h0[2]),Ne=[22,[0,h0[1],Kr]];break;case 23:var Ne=[23,[0,T0(i0[1][1])]];break;case 24:var re=i0[1],xe=T0(re[3]),Ne=[24,[0,re[1],re[2],xe]];break;case 25:var Re=i0[1],ve=T0(Re[3]),Ne=[25,[0,Re[1],Re[2],ve]];break;case 26:var Ne=[26,[0,T0(i0[1][1])]];break;case 27:var Ie=i0[1],Ge=T0(Ie[3]),Ne=[27,[0,Ie[1],Ie[2],Ge]];break;case 28:var Me=i0[1],an=T0(Me[3]),Ne=[28,[0,Me[1],Me[2],an]];break;case 29:var We=i0[1],Ae=T0(We[4]),Ne=[29,[0,We[1],We[2],We[3],Ae]];break;case 30:var cn=i0[1],rn=cn[4],kn=cn[3],vn=T0(cn[2]),Ne=[30,[0,cn[1],vn,kn,rn]];break;default:var Ne=i0}return[0,Q[1],Ne]}),N(hr,function(P){var L=pr(P);Y0(P,6);for(var Q=[0,0,t[3]];;){var i0=Q[2],l0=Q[1],S0=A0(P);if(typeof S0=="number"){var T0=0;if(13<=S0)Pn===S0&&(T0=1);else if(7<=S0)switch(S0-7|0){case 2:var rr=Pe(P);ie(P);var Q=[0,[0,[2,rr],l0],i0];continue;case 5:var L0=pr(P),B=cr(0,function(Qr){ie(Qr);var be=u(i,Qr);return be[0]===0?[0,be[1],t[3]]:[0,be[1],be[2]]},P),Z=B[2],p0=Z[2],b0=B[1],O0=lr([0,L0],0,0),M0=[1,[0,b0,[0,Z[1],O0]]],er=A0(P)===7?1:0,yr=0;if(!er&&Yn(1,P)===7){var vr=[0,p0[1],[0,[0,b0,65],p0[2]]];yr=1}if(!yr)var vr=p0;1-er&&Y0(P,9);var Q=[0,[0,M0,l0],o(t[5],vr,i0)];continue;case 0:T0=1;break}if(T0){var $0=u(t[6],i0),Er=ye(l0),Mr=pr(P);return Y0(P,7),[0,[0,Er,yu([0,L],[0,we(P)],Mr,0)],$0]}}var Br=u(i,P);if(Br[0]===0)var qr=t[3],jr=Br[1];else var qr=Br[2],jr=Br[1];A0(P)!==7&&Y0(P,9);var Q=[0,[0,[0,jr],l0],o(t[5],qr,i0)]}}),N(Ar,function(P){Ku(P,5);var L=Pe(P),Q=pr(P),i0=A0(P),l0=0;if(typeof i0!="number"&&i0[0]===5){var S0=i0[3],T0=i0[2];ie(P);var rr=we(P),L0=rr,B=S0,Z=T0,p0=Te(O$r,Te(T0,Te(T$r,S0)));l0=1}if(!l0){St(I$r,P);var L0=0,B=A$r,Z=N$r,p0=C$r}k7(P);var b0=$n(un(B)),O0=un(B)-1|0,M0=0;if(!(O0<0))for(var er=M0;;){var yr=Vr(B,er),vr=yr-100|0,$0=0;if(!(21>>0))switch(vr){case 0:case 3:case 5:case 9:case 15:case 17:case 21:qi(b0,yr),$0=1;break}var Er=er+1|0;if(O0!==er){var er=Er;continue}break}var Mr=Mt(b0);return n0(Mr,B)&&je(P,[13,B]),[0,L,[14,[0,[4,[0,Z,Mr]],p0,lr([0,Q],[0,L0],0)]]]});function fe(P,L){if(typeof L=="number"){var Q=0;if(61<=L){var i0=L-64|0;27>>0?i0===43&&(Q=1):25<(i0-1|0)>>>0&&(Q=1)}else{var l0=L+_y|0;17>>0?-1<=l0&&(Q=1):l0===13&&(Q=1)}if(Q)return 0}throw Bs}function v0(P){var L=A0(P);if(typeof L=="number"&&!L){var Q=o(se[16],1,P);return[0,[0,Q[1]],Q[2]]}return[0,[1,u(se[10],P)],0]}return N(or,function(P){var L=T9(fe,P),Q=Pe(L);if(Yn(1,L)===11)var l0=0,S0=0;else var i0=u(Vn[1],L),l0=i0[2],S0=i0[1];var T0=cr(0,function(ne){var Qr=oi(ne,u(mn[3],ne));if(G1(ne)&&Qr===0){var be=o(se[13],F$r,ne),ae=be[1],pe=[0,ae,[0,[0,ae,[2,[0,be,[0,j1(ne)],0]]],0]];return[0,Qr,[0,ae,[0,0,[0,pe,0],0,0]],[0,[0,ae[1],ae[3],ae[3]]],0]}var oe=ur(Vn[4],ne[18],ne[17],ne),ce=u2(1,ne),ge=u(mn[12],ce);return[0,Qr,oe,ge[1],ge[2]]},L),rr=T0[2],L0=rr[2],B=L0[2],Z=0;if(!B[1]){var p0=0;if(!B[3]&&B[2]&&(p0=1),!p0){var b0=ie0(L);Z=1}}if(!Z)var b0=L;var O0=L0[2],M0=O0[1],er=M0?(ue(b0,[0,M0[1][1],Zc]),[0,L0[1],[0,0,O0[2],O0[3],O0[4]]]):L0,yr=q1(er),vr=x7(b0),$0=vr&&(A0(b0)===11?1:0);$0&&je(b0,60),Y0(b0,11);var Er=fe0(ie0(b0),S0,0,yr),Mr=cr(0,v0,Er),Br=Mr[2];R(Vn[6],Er,Br[2],0,er);var qr=yt(Q,Mr[1]),jr=T0[1],$r=lr([0,l0],0,0);return[0,[0,qr,[1,[0,0,er,Br[1],S0,0,rr[4],rr[3],rr[1],$r,jr]]]]}),N(W0,function(P,L,Q){return cr([0,L],function(i0){for(var l0=Q;;){var S0=A0(i0);if(typeof S0=="number"&&S0===9){ie(i0);var l0=[0,u(x,i0),l0];continue}return[22,[0,ye(l0),0]]}},P)}),[0,x,i,T,n,K,o0,W0]}(R9),Us=function(t){function n(e0){var x0=pr(e0);ie(e0);var l=lr([0,x0],0,0),c0=u(ci[5],e0),t0=x7(e0)?rb(e0):N9(e0);function o0(w0,_0){return o(Qe(w0,Di,80),w0,_0)}return[0,o(t0[2],c0,o0),l]}function e(e0){var x0=e0[27][2];if(x0)for(var l=0;;){var c0=A0(e0);if(typeof c0=="number"&&c0===13){var l=[0,cr(0,n,e0),l];continue}return ye(l)}return x0}function i(e0,x0){var l=e0&&e0[1],c0=pr(x0),t0=A0(x0);if(typeof t0=="number")switch(t0){case 6:var o0=cr(0,function(Jr){var ar=pr(Jr);Y0(Jr,6);var _r=Kl(0,Jr),Ir=u(se[10],_r);return Y0(Jr,7),[0,Ir,lr([0,ar],[0,we(Jr)],0)]},x0),w0=o0[1];return[0,w0,[3,[0,w0,o0[2]]]];case 14:if(l){var _0=ge0(x0),E0=x0[29][1],U0=_0[2][1];if(E0){var b=E0[1],R0=E0[2],X=b[2],s0=[0,[0,o(Mu[4],U0,b[1]),X],R0];x0[29][1]=s0}else ke(Ujr);return[0,_0[1],[2,_0]]}var hr=cr(0,function(Jr){return ie(Jr),[1,z7(Jr)]},x0),Ar=hr[1];return ue(x0,[0,Ar,89]),[0,Ar,hr[2]]}else switch(t0[0]){case 0:var or=t0[2],W0=Pe(x0),Lr=[2,ur(ci[6],x0,t0[1],or)];return[0,W0,[0,[0,W0,[0,Lr,or,lr([0,c0],[0,we(x0)],0)]]]];case 2:var Tr=t0[1],Hr=Tr[4],Or=Tr[3],fr=Tr[2],Rr=Tr[1];return Hr&&gi(x0,45),Y0(x0,[2,[0,Rr,fr,Or,Hr]]),[0,Rr,[0,[0,Rr,[0,[0,fr],Or,lr([0,c0],[0,we(x0)],0)]]]]}var Wr=z7(x0);return[0,Wr[1],[1,Wr]]}function x(e0,x0,l){var c0=u(Vn[2],e0),t0=c0[1],o0=c0[2],w0=i([0,x0],e0),_0=w0[1],E0=0,U0=Xi(e0,w0[2]);return[0,U0,cr(0,function(b){var R0=t2(1,b),X=cr(0,function(Tr){var Hr=ur(Vn[4],0,0,Tr),Or=0,fr=A0(Tr)===86?Hr:eb(Tr,Hr);if(l){var Rr=fr[2],Wr=0;if(Rr[1])ue(Tr,[0,_0,j7]),Wr=1;else{var Jr=0;!Rr[2]&&!Rr[3]&&(Wr=1,Jr=1),Jr||ue(Tr,[0,_0,80])}}else{var ar=fr[2];if(ar[1])ue(Tr,[0,_0,Yt]);else{var _r=ar[2],Ir=0;(!_r||_r[2]||ar[3])&&(Ir=1),Ir&&(ar[3]?ue(Tr,[0,_0,81]):ue(Tr,[0,_0,81]))}}return[0,Or,fr,o2(Tr,u(mn[10],Tr))]},R0),s0=X[2],hr=s0[2],Ar=q1(hr),or=p7(Vn[5],R0,E0,t0,0,Ar);R(Vn[6],R0,or[2],0,hr);var W0=X[1],Lr=lr([0,o0],0,0);return[0,0,hr,or[1],E0,t0,0,s0[3],s0[1],Lr,W0]},e0)]}function c(e0){var x0=u(ci[2],e0);return x0[0]===0?[0,x0[1],t[3]]:[0,x0[1],x0[2]]}function s(e0,x0){switch(x0[0]){case 0:var l=x0[1],c0=l[1];return ue(e0,[0,c0,95]),[0,c0,[14,l[2]]];case 1:var t0=x0[1],o0=t0[2][1],w0=t0[1],_0=0;return kL(o0)&&n0(o0,KQr)&&n0(o0,WQr)&&(ue(e0,[0,w0,2]),_0=1),!_0&&f2(o0)&&V7(e0,[0,w0,55]),[0,w0,[10,t0]];case 2:return ke(JQr);default:var E0=x0[1][2][1];return ue(e0,[0,E0[1],96]),E0}}function p(e0,x0,l){function c0(o0){var w0=t2(1,o0),_0=cr(0,function(hr){var Ar=oi(hr,u(mn[3],hr));if(e0)if(x0)var or=1,W0=1;else var or=hr[18],W0=0;else if(x0)var or=0,W0=1;else var or=0,W0=0;var Lr=ur(Vn[4],or,W0,hr),Tr=A0(hr)===86?Lr:eb(hr,Lr);return[0,Ar,Tr,o2(hr,u(mn[10],hr))]},w0),E0=_0[2],U0=E0[2],b=q1(U0),R0=p7(Vn[5],w0,e0,x0,0,b);R(Vn[6],w0,R0[2],0,U0);var X=_0[1],s0=lr([0,l],0,0);return[0,0,U0,R0[1],e0,x0,0,E0[3],E0[1],s0,X]}var t0=0;return function(o0){return cr(t0,c0,o0)}}function y(e0){return Y0(e0,86),c(e0)}function T(e0,x0,l,c0,t0,o0){var w0=cr([0,x0],function(E0){if(!c0&&!t0){var U0=A0(E0);if(typeof U0=="number"){var b=0;if(86<=U0){if(U0===98)b=1;else if(!(87<=U0)){var R0=y(E0);return[0,[0,l,R0[1],0],R0[2]]}}else{if(U0===82){if(l[0]===1)var X=l[1],s0=Pe(E0),hr=function(Rr){var Wr=pr(Rr);Y0(Rr,82);var Jr=we(Rr),ar=o(se[19],Rr,[0,X[1],[10,X]]),_r=u(se[10],Rr);return[2,[0,0,ar,_r,lr([0,Wr],[0,Jr],0)]]},Ar=cr([0,X[1]],hr,E0),or=[0,Ar,[0,[0,[0,s0,[10,Ml(zQr)]],0],0]];else var or=y(E0);return[0,[0,l,or[1],1],or[2]]}if(!(10<=U0))switch(U0){case 4:b=1;break;case 1:case 9:var W0=[0,l,s(E0,l),1];return[0,W0,t[3]]}}if(b){var Lr=Xi(E0,l),Tr=[1,Lr,u(p(c0,t0,o0),E0)];return[0,Tr,t[3]]}}var Hr=[0,l,s(E0,l),1];return[0,Hr,t[3]]}var Or=Xi(E0,l),fr=[1,Or,u(p(c0,t0,o0),E0)];return[0,fr,t[3]]},e0),_0=w0[2];return[0,[0,[0,w0[1],_0[1]]],_0[2]]}function E(e0){var x0=cr(0,function(c0){var t0=pr(c0);Y0(c0,0);for(var o0=0,w0=[0,0,t[3]];;){var _0=w0[2],E0=w0[1],U0=A0(c0);if(typeof U0=="number"){var b=0;if((U0===1||Pn===U0)&&(b=1),b){var R0=o0?[0,_0[1],[0,[0,o0[1],98],_0[2]]]:_0,X=u(t[6],R0),s0=ye(E0),hr=pr(c0);return Y0(c0,1),[0,[0,s0,yu([0,t0],[0,we(c0)],hr,0)],X]}}if(A0(c0)===12)var Ar=pr(c0),or=cr(0,function(y0){return Y0(y0,12),c(y0)},c0),W0=or[2],Lr=W0[2],Tr=lr([0,Ar],0,0),Hr=[0,[1,[0,or[1],[0,W0[1],Tr]]],Lr];else{var Or=Pe(c0),fr=Yn(1,c0),Rr=0;if(typeof fr=="number"){var Wr=0;if(86<=fr)fr!==98&&87<=fr&&(Wr=1);else if(fr!==82)if(10<=fr)Wr=1;else switch(fr){case 1:case 4:case 9:break;default:Wr=1}if(!Wr){var ar=0,_r=0;Rr=1}}if(!Rr)var Jr=u(Vn[1],c0),ar=Jr[2],_r=Jr[1];var Ir=u(Vn[2],c0),fe=Ir[1],v0=on(ar,Ir[2]),P=A0(c0),L=0;if(!_r&&!fe&&typeof P!="number"&&P[0]===4){var Q=P[3],i0=0;if(n0(Q,YQr))if(n0(Q,VQr))i0=1;else{var l0=pr(c0),S0=i(0,c0)[2],T0=A0(c0),rr=0;if(typeof T0=="number"){var L0=0;if(86<=T0)T0!==98&&87<=T0&&(L0=1);else if(T0!==82)if(10<=T0)L0=1;else switch(T0){case 1:case 4:case 9:break;default:L0=1}if(!L0){var B=T(c0,Or,S0,0,0,0);rr=1}}if(!rr){Xi(c0,S0);var Z=t[3],p0=cr([0,Or],function(I0){return x(I0,0,0)},c0),b0=p0[2],O0=lr([0,l0],0,0),B=[0,[0,[0,p0[1],[3,b0[1],b0[2],O0]]],Z]}var M0=B}else{var er=pr(c0),yr=i(0,c0)[2],vr=A0(c0),$0=0;if(typeof vr=="number"){var Er=0;if(86<=vr)vr!==98&&87<=vr&&(Er=1);else if(vr!==82)if(10<=vr)Er=1;else switch(vr){case 1:case 4:case 9:break;default:Er=1}if(!Er){var Mr=T(c0,Or,yr,0,0,0);$0=1}}if(!$0){Xi(c0,yr);var Br=t[3],qr=cr([0,Or],function(D){return x(D,0,1)},c0),jr=qr[2],$r=lr([0,er],0,0),Mr=[0,[0,[0,qr[1],[2,jr[1],jr[2],$r]]],Br]}var M0=Mr}if(!i0){var ne=M0;L=1}}if(!L)var ne=T(c0,Or,i(0,c0)[2],_r,fe,v0);var Hr=ne}var Qr=Hr[1],be=0;if(Qr[0]===1&&A0(c0)===9){var ae=[0,Pe(c0)];be=1}if(!be)var ae=0;var pe=o(t[5],Hr[2],_0),oe=A0(c0),ce=0;if(typeof oe=="number"){var ge=oe-2|0,q0=0;if(Xt>>0?T7<(ge+1|0)>>>0&&(q0=1):ge===7?ie(c0):q0=1,!q0){var Fr=pe;ce=1}}if(!ce){var _=aL(dRr,9),k=le0([0,_],A0(c0)),I=[0,Pe(c0),k];xu(c0,8);var Fr=o(t[4],I,pe)}var o0=ae,w0=[0,[0,Qr,E0],Fr]}},e0),l=x0[2];return[0,x0[1],l[1],l[2]]}function d(e0,x0,l,c0){var t0=l[2][1],o0=l[1];if(qn(t0,XQr))return ue(e0,[0,o0,[21,t0,0,QY===c0?1:0,1]]),x0;var w0=o(L9[32],t0,x0);if(w0){var _0=w0[1],E0=0;return SE===c0?Fh===_0&&(E0=1):Fh===c0&&SE===_0&&(E0=1),E0||ue(e0,[0,o0,[20,t0]]),ur(L9[4],t0,KX,x0)}return ur(L9[4],t0,c0,x0)}function w(e0,x0){return cr(0,function(l){var c0=x0&&pr(l);Y0(l,52);for(var t0=0;;){var o0=[0,cr(0,function(E0){var U0=u(mn[2],E0);if(A0(E0)===98)var b=$t(E0),R0=function(s0,hr){return o(Qe(s0,Nv,81),s0,hr)},X=o(b[2],U0,R0);else var X=U0;return[0,X,u(mn[4],E0)]},l),t0],w0=A0(l);if(typeof w0=="number"&&w0===9){Y0(l,9);var t0=o0;continue}var _0=ye(o0);return[0,_0,lr([0,c0],0,0)]}},e0)}function G(e0,x0){return x0&&ue(e0,[0,x0[1][1],7])}function A(e0,x0){return x0&&ue(e0,[0,x0[1],68])}function S(e0,x0,l,c0,t0,o0,w0,_0,E0,U0){for(;;){var b=A0(e0),R0=0;if(typeof b=="number"){var X=b-1|0,s0=0;if(7>>0){var hr=X-81|0;if(4
>>0)s0=1;else switch(hr){case 3:St(0,e0),ie(e0);continue;case 0:case 4:break;default:s0=1}}else 5<(X-1|0)>>>0||(s0=1);!s0&&!t0&&!o0&&(R0=1)}if(!R0){var Ar=A0(e0),or=0;if(typeof Ar=="number"){var W0=0;if(Ar!==4&&Ar!==98&&(or=1,W0=1),!W0)var Tr=0}else or=1;if(or)var Lr=x2(e0),Tr=Lr&&1;if(!Tr){A(e0,_0),G(e0,E0);var Hr=0;if(!w0){var Or=0;switch(c0[0]){case 0:var fr=c0[1][2][1],Rr=0;typeof fr!="number"&&fr[0]===0&&(n0(fr[1],jQr)&&(Or=1),Rr=1),Rr||(Or=1);break;case 1:n0(c0[1][2][1],GQr)&&(Or=1);break;default:Or=1}if(!Or){var Wr=t2(2,e0),Jr=0;Hr=1}}if(!Hr)var Wr=t2(1,e0),Jr=1;var ar=Xi(Wr,c0),_r=cr(0,function(S0){var T0=cr(0,function(p0){var b0=oi(p0,u(mn[3],p0));if(t0)if(o0)var O0=1,M0=1;else var O0=p0[18],M0=0;else if(o0)var O0=0,M0=1;else var O0=0,M0=0;var er=ur(Vn[4],O0,M0,p0),yr=A0(p0)===86?er:eb(p0,er),vr=yr[2],$0=vr[1],Er=0;if($0&&Jr===0){ue(p0,[0,$0[1][1],is]);var Mr=[0,yr[1],[0,0,vr[2],vr[3],vr[4]]];Er=1}if(!Er)var Mr=yr;return[0,b0,Mr,o2(p0,u(mn[10],p0))]},S0),rr=T0[2],L0=rr[2],B=q1(L0),Z=p7(Vn[5],S0,t0,o0,0,B);return R(Vn[6],S0,Z[2],0,L0),[0,0,L0,Z[1],t0,o0,0,rr[3],rr[1],0,T0[1]]},Wr),Ir=[0,Jr,ar,_r,w0,l,lr([0,U0],0,0)];return[0,[0,yt(x0,_r[1]),Ir]]}}var fe=cr([0,x0],function(S0){var T0=u(mn[10],S0),rr=A0(S0);if(_0){var L0=0;if(typeof rr=="number"&&rr===82){je(S0,69),ie(S0);var B=0}else L0=1;if(L0)var B=0}else{var Z=0;if(typeof rr=="number"&&rr===82){ie(S0);var p0=t2(1,S0),B=[0,u(se[7],p0)]}else Z=1;if(Z)var B=1}var b0=A0(S0),O0=0;if(typeof b0=="number"&&!(9<=b0))switch(b0){case 8:ie(S0);var M0=A0(S0),er=0;if(typeof M0=="number"){var yr=0;if(M0!==1&&Pn!==M0&&(er=1,yr=1),!yr)var $0=we(S0)}else er=1;if(er)var vr=x7(S0),$0=vr&&Ms(S0);var Er=[0,c0,T0,B,$0];O0=1;break;case 4:case 6:St(0,S0);var Er=[0,c0,T0,B,0];O0=1;break}if(!O0){var Mr=A0(S0),Br=0;if(typeof Mr=="number"){var qr=0;if(Mr!==1&&Pn!==Mr&&(Br=1,qr=1),!qr)var jr=[0,0,function(q0,Fr){return q0}]}else Br=1;if(Br)var jr=x7(S0)?rb(S0):N9(S0);if(typeof B=="number")if(T0[0]===0)var $r=function(_,k){return o(Qe(_,qY,83),_,k)},be=B,ae=T0,pe=o(jr[2],c0,$r);else var ne=function(_,k){return o(Qe(_,OE,84),_,k)},be=B,ae=[1,o(jr[2],T0[1],ne)],pe=c0;else var Qr=function(ge,q0){return o(Qe(ge,Di,85),ge,q0)},be=[0,o(jr[2],B[1],Qr)],ae=T0,pe=c0;var Er=[0,pe,ae,be,0]}var oe=lr([0,U0],[0,Er[4]],0);return[0,Er[1],Er[2],Er[3],oe]},e0),v0=fe[2],P=v0[4],L=v0[3],Q=v0[2],i0=v0[1],l0=fe[1];return i0[0]===2?[2,[0,l0,[0,i0[1],L,Q,w0,E0,P]]]:[1,[0,l0,[0,i0,L,Q,w0,E0,P]]]}}function M(e0,x0){var l=Yn(e0,x0);if(typeof l=="number"){var c0=0;if(86<=l)(l===98||!(87<=l))&&(c0=1);else if(l===82)c0=1;else if(!(9<=l))switch(l){case 1:case 4:case 8:c0=1;break}if(c0)return 1}return 0}var K=0;function V(e0){return M(K,e0)}function f0(e0,x0,l,c0){var t0=e0&&e0[1],o0=_s(1,x0),w0=on(t0,e(o0)),_0=pr(o0);Y0(o0,40);var E0=F9(1,o0),U0=A0(E0),b=0;if(l&&typeof U0=="number"){var R0=0;if(52<=U0?U0!==98&&53<=U0&&(R0=1):U0!==41&&U0&&(R0=1),!R0){var Ar=0;b=1}}if(!b)if(G1(o0))var X=o(se[13],0,E0),s0=$t(o0),hr=function(v0,P){return o(Qe(v0,Nv,88),v0,P)},Ar=[0,o(s0[2],X,hr)];else{be0(o0,NQr);var Ar=[0,[0,Pe(o0),CQr]]}var or=u(mn[3],o0);if(or)var W0=$t(o0),Lr=function(v0,P){return o(Qe(v0,bF,86),v0,P)},Tr=[0,o(W0[2],or[1],Lr)];else var Tr=or;var Hr=pr(o0),Or=xu(o0,41);if(Or)var fr=cr(0,function(v0){var P=mL(0,v0),L=u(ci[5],P);if(A0(v0)===98)var Q=$t(v0),i0=function(T0,rr){return o(Qe(T0,Di,82),T0,rr)},l0=o(Q[2],L,i0);else var l0=L;var S0=u(mn[4],v0);return[0,l0,S0,lr([0,Hr],0,0)]},o0),Rr=fr[1],Wr=$t(o0),Jr=function(v0,P){return ur(Qe(v0,-663447790,87),v0,Rr,P)},ar=[0,[0,Rr,o(Wr[2],fr[2],Jr)]];else var ar=Or;var _r=A0(o0)===52?1:0;if(_r){1-fu(o0)&&je(o0,16);var Ir=[0,ke0(o0,w(o0,1))]}else var Ir=_r;var fe=cr(0,function(v0){var P=pr(v0);if(xu(v0,0)){v0[29][1]=[0,[0,Mu[1],0],v0[29][1]];for(var L=0,Q=L9[1],i0=0;;){var l0=A0(v0);if(typeof l0=="number"){var S0=l0-2|0;if(Xt>>0){if(!(T7<(S0+1|0)>>>0)){var T0=ye(i0),rr=function(ou,Bu){return u(ml(function(K7){return 1-o(Mu[3],K7[1],ou)}),Bu)},L0=v0[29][1];if(L0){var B=L0[1],Z=B[1];if(L0[2]){var p0=L0[2],b0=rr(Z,B[2]),O0=bl(p0),M0=az(p0),er=on(O0[2],b0);v0[29][1]=[0,[0,O0[1],er],M0]}else{var yr=rr(Z,B[2]);Du(function(ou){return ue(v0,[0,ou[2],[22,ou[1]]])},yr),v0[29][1]=0}}else ke(Hjr);Y0(v0,1);var vr=A0(v0),$0=0;if(!c0){var Er=0;if(typeof vr=="number"&&(vr===1||Pn===vr)&&(Er=1),!Er){var Mr=x7(v0);if(Mr){var Br=Ms(v0);$0=1}else{var Br=Mr;$0=1}}}if(!$0)var Br=we(v0);return[0,T0,lr([0,P],[0,Br],0)]}}else if(S0===6){Y0(v0,8);continue}}var qr=Pe(v0),jr=e(v0),$r=A0(v0),ne=0;if(typeof $r=="number"&&$r===60&&!M(1,v0)){var Qr=[0,Pe(v0)],be=pr(v0);ie(v0);var ae=be,pe=Qr;ne=1}if(!ne)var ae=0,pe=0;var oe=Yn(1,v0)!==4?1:0;if(oe)var ce=Yn(1,v0)!==98?1:0,ge=ce&&(A0(v0)===42?1:0);else var ge=oe;if(ge){var q0=pr(v0);ie(v0);var Fr=q0}else var Fr=ge;var _=A0(v0)===64?1:0;if(_)var k=1-M(1,v0),I=k&&1-Jl(1,v0);else var I=_;if(I){var U=pr(v0);ie(v0);var Y=U}else var Y=I;var y0=u(Vn[2],v0),P0=y0[1],I0=ur(Vn[3],v0,I,P0),D=0;if(!P0&&I0){var u0=u(Vn[2],v0),X0=u0[2],J0=u0[1];D=1}if(!D)var X0=y0[2],J0=P0;var ir=pl([0,ae,[0,Fr,[0,Y,[0,X0,0]]]]),Q0=A0(v0),F0=0;if(!I&&!J0&&typeof Q0!="number"&&Q0[0]===4){var Sr=Q0[3];if(n0(Sr,MQr)){if(!n0(Sr,BQr)){var mr=pr(v0),Cr=i(qQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Cr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Cr);var sr=on(ir,mr),Pr=cr([0,qr],function(Bu){return x(Bu,1,0)},v0),K0=Pr[2],Ur=lr([0,sr],0,0),Ie=[0,[0,Pr[1],[0,3,K0[1],K0[2],ge,jr,Ur]]];F0=1}}}else{var h0=pr(v0),Kr=i(UQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Kr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Kr);var re=on(ir,h0),xe=cr([0,qr],function(Bu){return x(Bu,1,1)},v0),Re=xe[2],ve=lr([0,re],0,0),Ie=[0,[0,xe[1],[0,2,Re[1],Re[2],ge,jr,ve]]];F0=1}}}if(!F0)var Ie=S(v0,qr,jr,i(HQr,v0)[2],I,J0,ge,pe,I0,ir);switch(Ie[0]){case 0:var Ge=Ie[1],Me=Ge[2];switch(Me[1]){case 0:if(Me[4])var Ft=Q,Ct=L;else{L&&ue(v0,[0,Ge[1],87]);var Ft=Q,Ct=1}break;case 1:var an=Me[2],We=an[0]===2?d(v0,Q,an[1],QY):Q,Ft=We,Ct=L;break;case 2:var Ae=Me[2],cn=Ae[0]===2?d(v0,Q,Ae[1],SE):Q,Ft=cn,Ct=L;break;default:var rn=Me[2],kn=rn[0]===2?d(v0,Q,rn[1],Fh):Q,Ft=kn,Ct=L}break;case 1:var vn=Ie[1][2],Ne=vn[4],Je=vn[1],en=0;switch(Je[0]){case 0:var _n=Je[1],Cn=_n[2][1],Hn=0;if(typeof Cn!="number"&&Cn[0]===0){var vt=Cn[1],Nt=_n[1];en=1,Hn=1}Hn||(en=2);break;case 1:var Fn=Je[1],vt=Fn[2][1],Nt=Fn[1];en=1;break;case 2:ke(PQr);break;default:en=2}switch(en){case 1:var gt=qn(vt,DQr);if(gt)var qt=gt;else var Zt=qn(vt,LQr),qt=Zt&&Ne;qt&&ue(v0,[0,Nt,[21,vt,Ne,0,0]]);break;case 2:break}var Ft=Q,Ct=L;break;default:var Ft=d(v0,Q,Ie[1][2][1],KX),Ct=L}var L=Ct,Q=Ft,i0=[0,Ie,i0]}}return B1(v0,0),RQr},o0);return[0,Ar,fe,Tr,ar,Ir,w0,lr([0,_0],0,0)]}function m0(e0,x0){return cr(0,function(l){return[2,f0([0,x0],l,l[7],0)]},e0)}function k0(e0){return[5,f0(0,e0,1,1)]}var g0=0;return[0,i,E,m0,function(e0){return cr(g0,k0,e0)},w,e]}(R9),ht=function(t){function n(_){var k=u(Vn[10],_);if(_[5])M1(_,k[1]);else{var I=k[2],U=0;if(I[0]===23){var Y=I[1],y0=k[1],P0=0;Y[4]?ue(_,[0,y0,61]):Y[5]?ue(_,[0,y0,62]):(U=1,P0=1)}else U=1}return k}function e(_,k,I){var U=I[2][1],Y=I[1];if(n0(U,Z0e)){if(n0(U,Q0e))return n0(U,rre)?f2(U)?V7(k,[0,Y,55]):kL(U)?ue(k,[0,Y,[10,Ml(U)]]):_&&js(U)?V7(k,[0,Y,_[1]]):0:k[17]?ue(k,[0,Y,2]):V7(k,[0,Y,55]);if(k[5])return V7(k,[0,Y,55]);var y0=k[14];return y0&&ue(k,[0,Y,[10,Ml(U)]])}var P0=k[18];return P0&&ue(k,[0,Y,2])}function i(_,k){var I=k[4],U=k[3],Y=k[2],y0=k[1];I&&gi(_,45);var P0=pr(_);return Y0(_,[2,[0,y0,Y,U,I]]),[0,y0,[0,Y,U,lr([0,P0],[0,we(_)],0)]]}function x(_,k,I){var U=_?_[1]:W0e,Y=k?k[1]:1,y0=A0(I);if(typeof y0=="number"){var P0=y0-2|0;if(Xt>>0){if(!(T7<(P0+1|0)>>>0)){var I0=function(X0,J0){return X0};return[1,[0,we(I),I0]]}}else if(P0===6){ie(I);var D=A0(I);if(typeof D=="number"){var u0=0;if((D===1||Pn===D)&&(u0=1),u0)return[0,we(I)]}return x7(I)?[0,Ms(I)]:J0e}}return x7(I)?[1,rb(I)]:(Y&&St([0,U],I),$0e)}function c(_){var k=A0(_);if(typeof k=="number"){var I=0;if((k===1||Pn===k)&&(I=1),I){var U=function(Y,y0){return Y};return[0,we(_),U]}}return x7(_)?rb(_):N9(_)}function s(_,k,I){var U=x(0,0,k);if(U[0]===0)return[0,U[1],I];var Y=ye(I);if(Y)var y0=function(D,u0){return ur(Qe(D,634872468,89),D,_,u0)},P0=o(U[1][2],Y[1],y0),I0=ye([0,P0,Y[2]]);else var I0=Y;return[0,0,I0]}var p=function _(k){return _.fun(k)},y=function _(k){return _.fun(k)},T=function _(k){return _.fun(k)},E=function _(k){return _.fun(k)},d=function _(k){return _.fun(k)},w=function _(k,I){return _.fun(k,I)},G=function _(k){return _.fun(k)},A=function _(k){return _.fun(k)},S=function _(k,I,U){return _.fun(k,I,U)},M=function _(k){return _.fun(k)},K=function _(k){return _.fun(k)},V=function _(k,I){return _.fun(k,I)},f0=function _(k){return _.fun(k)},m0=function _(k){return _.fun(k)},k0=function _(k,I){return _.fun(k,I)},g0=function _(k){return _.fun(k)},e0=function _(k,I){return _.fun(k,I)},x0=function _(k){return _.fun(k)},l=function _(k,I){return _.fun(k,I)},c0=function _(k){return _.fun(k)},t0=function _(k,I){return _.fun(k,I)},o0=function _(k,I){return _.fun(k,I)},w0=function _(k,I){return _.fun(k,I)},_0=function _(k){return _.fun(k)},E0=function _(k){return _.fun(k)},U0=function _(k,I,U){return _.fun(k,I,U)},b=function _(k,I){return _.fun(k,I)},R0=function _(k,I){return _.fun(k,I)},X=function _(k){return _.fun(k)};function s0(_){var k=pr(_);Y0(_,59);var I=A0(_)===8?1:0,U=I&&we(_),Y=x(0,0,_),y0=Y[0]===0?Y[1]:Y[1][1];return[4,[0,lr([0,k],[0,on(U,y0)],0)]]}var hr=0;function Ar(_){return cr(hr,s0,_)}function or(_){var k=pr(_);Y0(_,37);var I=zl(1,_),U=u(se[2],I),Y=1-_[5],y0=Y&&nb(U);y0&&M1(_,U[1]);var P0=we(_);Y0(_,25);var I0=we(_);Y0(_,4);var D=u(se[7],_);Y0(_,5);var u0=A0(_)===8?1:0,X0=u0&&we(_),J0=x(0,K0e,_),ir=J0[0]===0?on(X0,J0[1]):J0[1][1];return[14,[0,U,D,lr([0,k],[0,on(P0,on(I0,ir))],0)]]}var W0=0;function Lr(_){return cr(W0,or,_)}function Tr(_,k,I){var U=I[2][1];if(U&&!U[1][2][2]){var Y=U[2];if(!Y)return Y}return ue(_,[0,I[1],k])}function Hr(_,k){var I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1])}function Or(_){var k=pr(_);Y0(_,39);var I=_[18],U=I&&xu(_,65),Y=on(k,pr(_));Y0(_,4);var y0=lr([0,Y],0,0),P0=Kl(1,_),I0=A0(P0),D=0;if(typeof I0=="number")if(24<=I0)if(29<=I0)D=1;else switch(I0-24|0){case 0:var u0=cr(0,Vn[9],P0),X0=u0[2],J0=lr([0,X0[2]],0,0),Pr=X0[3],K0=[0,[1,[0,u0[1],[0,X0[1],0,J0]]]];break;case 3:var ir=cr(0,Vn[8],P0),Q0=ir[2],F0=lr([0,Q0[2]],0,0),Pr=Q0[3],K0=[0,[1,[0,ir[1],[0,Q0[1],2,F0]]]];break;case 4:var Sr=cr(0,Vn[7],P0),mr=Sr[2],Cr=lr([0,mr[2]],0,0),Pr=mr[3],K0=[0,[1,[0,Sr[1],[0,mr[1],1,Cr]]]];break;default:D=1}else if(I0===8)var Pr=0,K0=0;else D=1;else D=1;if(D)var sr=F9(1,P0),Pr=0,K0=[0,[0,u(se[8],sr)]];var Ur=A0(_);if(typeof Ur=="number"){if(Ur===17){if(K0){var h0=K0[1];if(h0[0]===0)var Kr=[1,ur(t[2],V0e,_,h0[1])];else{var re=h0[1];Tr(_,28,re);var Kr=[0,re]}U?Y0(_,63):Y0(_,17);var xe=u(se[7],_);Y0(_,5);var Re=zl(1,_),ve=u(se[2],Re);return Hr(_,ve),[21,[0,Kr,xe,ve,0,y0]]}throw[0,Sn,z0e]}if(Ur===63){if(K0){var Ie=K0[1];if(Ie[0]===0)var Ge=[1,ur(t[2],X0e,_,Ie[1])];else{var Me=Ie[1];Tr(_,29,Me);var Ge=[0,Me]}Y0(_,63);var an=u(se[10],_);Y0(_,5);var We=zl(1,_),Ae=u(se[2],We);return Hr(_,Ae),[22,[0,Ge,an,Ae,U,y0]]}throw[0,Sn,Y0e]}}if(Du(function(gt){return ue(_,gt)},Pr),U?Y0(_,63):Y0(_,8),K0)var cn=K0[1],rn=cn[0]===0?[0,[1,o(t[1],_,cn[1])]]:[0,[0,cn[1]]],kn=rn;else var kn=K0;var vn=A0(_),Ne=0;if(typeof vn=="number"){var Je=vn!==8?1:0;if(!Je){var en=Je;Ne=1}}if(!Ne)var en=[0,u(se[7],_)];Y0(_,8);var _n=A0(_),Cn=0;if(typeof _n=="number"){var Hn=_n!==5?1:0;if(!Hn){var Fn=Hn;Cn=1}}if(!Cn)var Fn=[0,u(se[7],_)];Y0(_,5);var vt=zl(1,_),Nt=u(se[2],vt);return Hr(_,Nt),[20,[0,kn,en,Fn,Nt,y0]]}var fr=0;function Rr(_){return cr(fr,Or,_)}function Wr(_){var k=Gs(_)?n(_):u(se[2],_),I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1]),k}function Jr(_){var k=pr(_);Y0(_,43);var I=Wr(_);return[0,I,lr([0,k],0,0)]}function ar(_){var k=pr(_);Y0(_,16);var I=on(k,pr(_));Y0(_,4);var U=u(se[7],_);Y0(_,5);var Y=Wr(_),y0=A0(_)===43?1:0,P0=y0&&[0,cr(0,Jr,_)];return[24,[0,U,Y,P0,lr([0,I],0,0)]]}var _r=0;function Ir(_){return cr(_r,ar,_)}function fe(_){1-_[11]&&je(_,36);var k=pr(_),I=Pe(_);Y0(_,19);var U=A0(_)===8?1:0,Y=U&&we(_),y0=0;if(A0(_)!==8&&!x2(_)){var P0=[0,u(se[7],_)];y0=1}if(!y0)var P0=0;var I0=yt(I,Pe(_)),D=x(0,0,_),u0=0;if(D[0]===0)var X0=D[1];else{var J0=D[1];if(P0){var ir=function(sr,Pr){return o(Qe(sr,Di,90),sr,Pr)},Q0=[0,o(J0[2],P0[1],ir)],F0=Y;u0=1}else var X0=J0[1]}if(!u0)var Q0=P0,F0=on(Y,X0);return[28,[0,Q0,lr([0,k],[0,F0],0),I0]]}var v0=0;function P(_){return cr(v0,fe,_)}function L(_){var k=pr(_);Y0(_,20),Y0(_,4);var I=u(se[7],_);Y0(_,5),Y0(_,0);for(var U=H0e;;){var Y=U[2],y0=A0(_);if(typeof y0=="number"){var P0=0;if((y0===1||Pn===y0)&&(P0=1),P0){var I0=ye(Y);Y0(_,1);var D=c(_),u0=I[1];return[29,[0,I,I0,lr([0,k],[0,D[1]],0),u0]]}}var X0=U[1],J0=gL(0,function(Q0){return function(F0){var Sr=pr(F0),mr=A0(F0),Cr=0;if(typeof mr=="number"&&mr===36){Q0&&je(F0,32),Y0(F0,36);var sr=we(F0),Pr=0;Cr=1}if(!Cr){Y0(F0,33);var sr=0,Pr=[0,u(se[7],F0)]}var K0=Q0||(Pr===0?1:0);Y0(F0,86);var Ur=on(sr,c(F0)[1]);function h0(Re){if(typeof Re=="number"){var ve=Re-1|0,Ie=0;if(32>>0?ve===35&&(Ie=1):30<(ve-1|0)>>>0&&(Ie=1),Ie)return 1}return 0}var Kr=1,re=F0[9]===1?F0:[0,F0[1],F0[2],F0[3],F0[4],F0[5],F0[6],F0[7],F0[8],Kr,F0[10],F0[11],F0[12],F0[13],F0[14],F0[15],F0[16],F0[17],F0[18],F0[19],F0[20],F0[21],F0[22],F0[23],F0[24],F0[25],F0[26],F0[27],F0[28],F0[29],F0[30]],xe=o(se[4],h0,re);return[0,[0,Pr,xe,lr([0,Sr],[0,Ur],0)],K0]}}(X0),_),U=[0,J0[2],[0,J0[1],Y]]}}var Q=0;function i0(_){return cr(Q,L,_)}function l0(_){var k=pr(_),I=Pe(_);Y0(_,22),x7(_)&&ue(_,[0,I,21]);var U=u(se[7],_),Y=x(0,0,_);if(Y[0]===0)var P0=U,I0=Y[1];else var y0=function(D,u0){return o(Qe(D,Di,91),D,u0)},P0=o(Y[1][2],U,y0),I0=0;return[30,[0,P0,lr([0,k],[0,I0],0)]]}var S0=0;function T0(_){return cr(S0,l0,_)}function rr(_){var k=pr(_);Y0(_,23);var I=u(se[15],_);if(A0(_)===34)var U=$t(_),Y=function(sr,Pr){var K0=Pr[1];return[0,K0,ur(Qe(sr,Y8,29),sr,K0,Pr[2])]},y0=o(U[2],I,Y);else var y0=I;var P0=A0(_),I0=0;if(typeof P0=="number"&&P0===34){var D=[0,cr(0,function(Pr){var K0=pr(Pr);Y0(Pr,34);var Ur=we(Pr),h0=A0(Pr)===4?1:0;if(h0){Y0(Pr,4);var Kr=[0,o(se[18],Pr,39)];Y0(Pr,5);var re=Kr}else var re=h0;var xe=u(se[15],Pr);if(A0(Pr)===38)var Ie=xe;else var Re=c(Pr),ve=function(Ge,Me){var an=Me[1];return[0,an,ur(Qe(Ge,Y8,92),Ge,an,Me[2])]},Ie=o(Re[2],xe,ve);return[0,re,Ie,lr([0,K0],[0,Ur],0)]},_)];I0=1}if(!I0)var D=0;var u0=A0(_),X0=0;if(typeof u0=="number"&&u0===38){Y0(_,38);var J0=u(se[15],_),ir=J0[1],Q0=c(_),F0=function(Pr,K0){return ur(Qe(Pr,Y8,93),Pr,ir,K0)},Sr=[0,[0,ir,o(Q0[2],J0[2],F0)]];X0=1}if(!X0)var Sr=0;var mr=D===0?1:0,Cr=mr&&(Sr===0?1:0);return Cr&&ue(_,[0,y0[1],33]),[31,[0,y0,D,Sr,lr([0,k],0,0)]]}var L0=0;function B(_){return cr(L0,rr,_)}function Z(_){var k=u(Vn[9],_),I=s(0,_,k[1]),U=0,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var p0=0;function b0(_){return cr(p0,Z,_)}function O0(_){var k=u(Vn[8],_),I=s(2,_,k[1]),U=2,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var M0=0;function er(_){return cr(M0,O0,_)}function yr(_){var k=u(Vn[7],_),I=s(1,_,k[1]),U=1,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var vr=0;function $0(_){return cr(vr,yr,_)}function Er(_){var k=pr(_);Y0(_,25);var I=on(k,pr(_));Y0(_,4);var U=u(se[7],_);Y0(_,5);var Y=zl(1,_),y0=u(se[2],Y),P0=1-_[5],I0=P0&&nb(y0);return I0&&M1(_,y0[1]),[35,[0,U,y0,lr([0,I],0,0)]]}var Mr=0;function Br(_){return cr(Mr,Er,_)}function qr(_){var k=pr(_),I=u(se[7],_),U=A0(_),Y=I[2];if(Y[0]===10&&typeof U=="number"&&U===86){var y0=Y[1],P0=y0[2][1];Y0(_,86),o(Mu[3],P0,_[3])&&ue(_,[0,I[1],[16,q0e,P0]]);var I0=_[30],D=_[29],u0=_[28],X0=_[27],J0=_[26],ir=_[25],Q0=_[24],F0=_[23],Sr=_[22],mr=_[21],Cr=_[20],sr=_[19],Pr=_[18],K0=_[17],Ur=_[16],h0=_[15],Kr=_[14],re=_[13],xe=_[12],Re=_[11],ve=_[10],Ie=_[9],Ge=_[8],Me=_[7],an=_[6],We=_[5],Ae=_[4],cn=o(Mu[4],P0,_[3]),rn=[0,_[1],_[2],cn,Ae,We,an,Me,Ge,Ie,ve,Re,xe,re,Kr,h0,Ur,K0,Pr,sr,Cr,mr,Sr,F0,Q0,ir,J0,X0,u0,D,I0],kn=Gs(rn)?n(rn):u(se[2],rn);return[27,[0,y0,kn,lr([0,k],0,0)]]}var vn=x(U0e,0,_);if(vn[0]===0)var Je=I,en=vn[1];else var Ne=function(_n,Cn){return o(Qe(_n,Di,94),_n,Cn)},Je=o(vn[1][2],I,Ne),en=0;return[19,[0,Je,0,lr(0,[0,en],0)]]}var jr=0;function $r(_){return cr(jr,qr,_)}function ne(_){var k=u(se[7],_),I=x(B0e,0,_);if(I[0]===0)var Y=k,y0=I[1];else var U=function(sr,Pr){return o(Qe(sr,Di,95),sr,Pr)},Y=o(I[1][2],k,U),y0=0;var P0=_[19];if(P0){var I0=Y[2],D=0;if(I0[0]===14){var u0=I0[1],X0=0,J0=u0[1];if(typeof J0!="number"&&J0[0]===0){var ir=u0[2],Q0=1>>0))switch(K0){case 21:var Ur=on(I0,pr(P0)),h0=cr(0,function(Ct){return Y0(Ct,36)},P0),Kr=te0(1,P0),re=A0(Kr),xe=0;if(typeof re=="number")if(re===15)var Re=0,ve=Re,Ie=[0,[1,cr(0,function(Ct){return o(e0,0,Ct)},Kr)]];else if(re===40)var ve=0,Ie=[0,[2,cr(0,u(k0,0),Kr)]];else xe=1;else xe=1;if(xe){var Ge=u(mn[1],Kr),Me=x(0,0,Kr);if(Me[0]===0)var Ae=Me[1],cn=Ge;else var an=0,We=function(Wu,lt){return o(Qe(Wu,_v,Pn),Wu,lt)},Ae=an,cn=o(Me[1][2],Ge,We);var ve=Ae,Ie=[0,[3,cn]]}var rn=lr([0,Ur],[0,ve],0);return[6,[0,[0,h0[1]],Ie,0,0,rn]];case 0:case 9:case 12:case 13:case 25:var kn=A0(P0);if(typeof kn=="number"){var vn=0;if(25<=kn)if(29<=kn){if(kn===40){var Ne=[0,[2,cr(0,u(k0,0),P0)]];vn=1}}else 27<=kn&&(vn=2);else if(kn===15){var Ne=[0,[1,cr(0,function(du){return o(e0,0,du)},P0)]];vn=1}else 24<=kn&&(vn=2);var Je=0;switch(vn){case 0:break;case 2:var en=0;typeof kn=="number"?kn===27?je(P0,72):kn===28?je(P0,71):en=1:en=1;var Ne=[0,[0,cr(0,function(du){return o(l,du,0)},P0)]];Je=1;break;default:Je=1}if(Je)return[6,[0,0,Ne,0,0,lr([0,I0],0,0)]]}throw[0,Sn,o0e]}}var _n=A0(P0),Cn=0;typeof _n=="number"?_n===53?je(P0,74):_n===61?je(P0,73):Cn=1:Cn=1,Y0(P0,0);var Hn=ur(U0,0,P0,0);Y0(P0,1);var Fn=A0(P0),vt=0;if(typeof Fn!="number"&&Fn[0]===4&&!n0(Fn[3],x0e)){var Nt=u(E0,P0),gt=Nt[2],Zt=[0,Nt[1]];vt=1}if(!vt){o(b,P0,Hn);var qt=x(0,0,P0),Ft=qt[0]===0?qt[1]:qt[1][1],gt=Ft,Zt=0}return[6,[0,0,0,[0,[0,Hn]],Zt,lr([0,I0],[0,gt],0)]]}var U=0;return function(Y){return cr(U,I,Y)}}),[0,Rr,Ir,$0,B,Br,E,d,y,T,Ar,w0,X,M,Lr,p,R0,be,Fr,m0,$r,K,P,i0,T0,A,b0,er]}(R9),Ge0=function(t){var n=function y(T,E){return y.fun(T,E)},e=function y(T,E){return y.fun(T,E)},i=function y(T,E){return y.fun(T,E)};N(n,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];if(S[0]===0){var M=S[1],K=M[2];switch(K[0]){case 0:var V=K[2],f0=K[1];switch(f0[0]){case 0:var m0=[0,f0[1]];break;case 1:var m0=[1,f0[1]];break;case 2:var m0=ke(t0e);break;default:var m0=[2,f0[1]]}var k0=V[2],g0=0;if(k0[0]===2){var e0=k0[1];if(!e0[1]){var x0=[0,e0[3]],l=e0[2];g0=1}}if(!g0)var x0=0,l=o(i,y,V);var c0=[0,[0,[0,M[1],[0,m0,l,x0,K[3]]]],G];break;case 1:ue(y,[0,K[2][1],97]);var c0=G;break;default:ue(y,[0,K[2][1],u0e]);var c0=G}var G=c0,A=A[2];continue}var t0=S[1],o0=t0[1];if(A[2]){ue(y,[0,o0,66]);var A=A[2];continue}var w0=t0[2],_0=w0[2],G=[0,[1,[0,o0,[0,o(i,y,w0[1]),_0]]],G],A=0;continue}var E0=[0,[0,ye(G),w,d]];return[0,T[1],E0]}});function x(y,T){return u(se[23],T)?[0,o(i,y,T)]:(ue(y,[0,T[1],26]),0)}N(e,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];switch(S[0]){case 0:var M=S[1],K=M[2];if(K[0]===2){var V=K[1];if(!V[1]){var G=[0,[0,[0,M[1],[0,V[2],[0,V[3]]]]],G],A=A[2];continue}}var f0=x(y,M);if(f0)var m0=f0[1],k0=[0,[0,[0,m0[1],[0,m0,0]]],G];else var k0=G;var G=k0,A=A[2];continue;case 1:var g0=S[1],e0=g0[1];if(A[2]){ue(y,[0,e0,65]);var A=A[2];continue}var x0=g0[2],l=x(y,x0[1]),c0=l?[0,[1,[0,e0,[0,l[1],x0[2]]]],G]:G,G=c0,A=0;continue;default:var G=[0,[2,S[1]],G],A=A[2];continue}}var t0=[1,[0,ye(G),w,d]];return[0,T[1],t0]}}),N(i,function(y,T){var E=T[2],d=T[1];switch(E[0]){case 0:return o(e,y,[0,d,E[1]]);case 10:var w=E[1],G=w[2][1],A=w[1],S=0;if(y[5]&&js(G)?ue(y,[0,A,52]):S=1,S&&1-y[5]){var M=0;if(y[17]&&qn(G,e0e)?ue(y,[0,A,93]):M=1,M){var K=y[18],V=K&&qn(G,n0e);V&&ue(y,[0,A,92])}}return[0,d,[2,[0,w,a2(y),0]]];case 19:return o(n,y,[0,d,E[1]]);default:return[0,d,[3,[0,d,E]]]}});function c(y){function T(w){var G=A0(w);return typeof G=="number"&&G===82?(Y0(w,82),[0,u(se[10],w)]):0}function E(w){var G=pr(w);Y0(w,0);for(var A=0,S=0,M=0;;){var K=A0(w);if(typeof K=="number"){var V=0;if((K===1||Pn===K)&&(V=1),V){S&&ue(w,[0,S[1],98]);var f0=ye(M),m0=pr(w);Y0(w,1);var k0=we(w),g0=A0(w)===86?[1,u(t[9],w)]:a2(w);return[0,[0,f0,g0,yu([0,G],[0,k0],m0,0)]]}}if(A0(w)===12)var e0=pr(w),x0=cr(0,function(Jr){return Y0(Jr,12),p(Jr,y)},w),l=lr([0,e0],0,0),c0=[0,[1,[0,x0[1],[0,x0[2],l]]]];else{var t0=Pe(w),o0=o(se[20],0,w),w0=A0(w),_0=0;if(typeof w0=="number"&&w0===86){Y0(w,86);var E0=cr([0,t0],function(ar){var _r=p(ar,y);return[0,_r,T(ar)]},w),U0=E0[2],b=o0[2];switch(b[0]){case 0:var R0=[0,b[1]];break;case 1:var R0=[1,b[1]];break;case 2:var R0=ke($Qr);break;default:var R0=[2,b[1]]}var c0=[0,[0,[0,E0[1],[0,R0,U0[1],U0[2],0]]]]}else _0=1;if(_0){var X=o0[2];if(X[0]===1){var s0=X[1],hr=s0[2][1],Ar=s0[1],or=0;kL(hr)&&n0(hr,QQr)&&n0(hr,r0e)&&(ue(w,[0,Ar,2]),or=1),!or&&f2(hr)&&V7(w,[0,Ar,55]);var W0=cr([0,t0],function(ar,_r){return function(Ir){var fe=[0,_r,[2,[0,ar,a2(Ir),0]]];return[0,fe,T(Ir)]}}(s0,Ar),w),Lr=W0[2],c0=[0,[0,[0,W0[1],[0,[1,s0],Lr[1],Lr[2],1]]]]}else{St(ZQr,w);var c0=0}}}if(c0){var Tr=c0[1],Hr=A?(ue(w,[0,Tr[1][1],66]),0):S;if(Tr[0]===0)var Rr=Hr,Wr=A;else var Or=A0(w)===9?1:0,fr=Or&&[0,Pe(w)],Rr=fr,Wr=1;A0(w)!==1&&Y0(w,9);var A=Wr,S=Rr,M=[0,Tr,M];continue}}}var d=0;return function(w){return cr(d,E,w)}}function s(y){function T(d){var w=pr(d);Y0(d,6);for(var G=0;;){var A=A0(d);if(typeof A=="number"){var S=0;if(13<=A)Pn===A&&(S=1);else if(7<=A)switch(A-7|0){case 2:var M=Pe(d);Y0(d,9);var G=[0,[2,M],G];continue;case 5:var K=pr(d),V=cr(0,function(_0){return Y0(_0,12),p(_0,y)},d),f0=V[1],m0=lr([0,K],0,0),k0=[1,[0,f0,[0,V[2],m0]]];A0(d)!==7&&(ue(d,[0,f0,65]),A0(d)===9&&ie(d));var G=[0,k0,G];continue;case 0:S=1;break}if(S){var g0=ye(G),e0=pr(d);Y0(d,7);var x0=A0(d)===86?[1,u(t[9],d)]:a2(d);return[1,[0,g0,x0,yu([0,w],[0,we(d)],e0,0)]]}}var l=cr(0,function(w0){var _0=p(w0,y),E0=A0(w0),U0=0;if(typeof E0=="number"&&E0===82){Y0(w0,82);var b=[0,u(se[10],w0)];U0=1}if(!U0)var b=0;return[0,_0,b]},d),c0=l[2],t0=[0,[0,l[1],[0,c0[1],c0[2]]]];A0(d)!==7&&Y0(d,9);var G=[0,t0,G]}}var E=0;return function(d){return cr(E,T,d)}}function p(y,T){var E=A0(y);if(typeof E=="number"){if(E===6)return u(s(T),y);if(!E)return u(c(T),y)}var d=ur(se[14],y,0,T);return[0,d[1],[2,d[2]]]}return[0,n,e,i,c,s,p]}(mn),une=Zee(se),ine=mn[9];function Me0(t,n){var e=A0(n),i=0;if(typeof e=="number"?e===28?n[5]?je(n,55):n[14]&&St(0,n):e===58?n[17]?je(n,2):n[5]&&je(n,55):e===65?n[18]&&je(n,2):i=1:i=1,i)if(dL(e))gi(n,55);else{var x=0;if(typeof e=="number")switch(e){case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 46:case 47:case 49:case 50:case 51:case 58:case 59:case 65:var c=1;x=1;break}else if(e[0]===4&&xe0(e[3])){var c=1;x=1}if(!x)var c=0;var s=0;if(c)var p=c;else{var y=hL(e);if(y)var p=y;else{var T=0;if(typeof e=="number")switch(e){case 29:case 30:case 31:break;default:T=1}else if(e[0]===4){var E=e[3];n0(E,XRr)&&n0(E,YRr)&&n0(E,VRr)&&(T=1)}else T=1;if(T){var d=0;s=1}else var p=1}}if(!s)var d=p;if(d)St(0,n);else{var w=0;t&&oe0(e)?gi(n,t[1]):w=1}}return z7(n)}var Be0=function t(n){return t.fun(n)},jL=function t(n,e,i){return t.fun(n,e,i)},GL=function t(n){return t.fun(n)},qe0=function t(n,e){return t.fun(n,e)},ML=function t(n,e){return t.fun(n,e)},BL=function t(n,e){return t.fun(n,e)},j9=function t(n,e){return t.fun(n,e)},xb=function t(n,e){return t.fun(n,e)},G9=function t(n){return t.fun(n)},Ue0=function t(n){return t.fun(n)},He0=function t(n){return t.fun(n)},Xe0=function t(n,e,i){return t.fun(n,e,i)},Ye0=function t(n){return t.fun(n)},Ve0=function t(n){return t.fun(n)},ze0=Us[3],fne=ci[3],xne=ci[1],one=ci[5],ane=Us[2],cne=Us[1],sne=Us[4],vne=ci[4],lne=ci[6],bne=une[13],pne=Ge0[6],mne=Ge0[3];N(Be0,function(t){var n=pr(t),e=ye(n),i=5;r:for(;;){if(e)for(var x=e[2],c=e[1],s=c[2],p=c[1],y=s[2],T=0,E=un(y);;){if(E<(T+5|0))var d=0;else{var w=qn(m7(y,T,i),kRr);if(!w){var T=T+1|0;continue}var d=w}if(!d){var e=x;continue r}t[30][1]=p[3];var G=ye([0,[0,p,s],x]);break}else var G=e;if(G===0){var A=0;if(n){var S=n[1],M=S[2];if(!M[1]){var K=M[2],V=0;if(1<=un(K)&&It(K,0)===42){t[30][1]=S[1][3];var f0=[0,S,0];A=1,V=1}}}if(!A)var f0=0}else var f0=G;var m0=o(qe0,t,function(c0){return 0}),k0=Pe(t);Y0(t,Pn);var g0=Mu[1];if(le(function(c0,t0){var o0=t0[2];switch(o0[0]){case 17:return fb(t,c0,Rc(0,[0,o0[1][1],ore]));case 18:var w0=o0[1],_0=w0[1];if(_0){if(!w0[2]){var E0=_0[1],U0=E0[2],b=0;switch(U0[0]){case 34:var R0=U0[1][1],X=0,s0=le(function(Tr,Hr){return le(RL,Tr,[0,Hr[2][1],0])},X,R0);return le(function(Tr,Hr){return fb(t,Tr,Hr)},c0,s0);case 2:case 23:var hr=U0[1][1];if(hr)var Ar=hr[1];else b=1;break;case 16:case 26:case 32:case 33:var Ar=U0[1][1];break;default:b=1}return b?c0:fb(t,c0,Rc(0,[0,E0[1],Ar[2][1]]))}}else{var or=w0[2];if(or){var W0=or[1];if(W0[0]===0){var Lr=W0[1];return le(function(Tr,Hr){var Or=Hr[2],fr=Or[2];return fr?fb(t,Tr,fr[1]):fb(t,Tr,Or[1])},c0,Lr)}return c0}}return c0;default:return c0}},g0,m0),m0)var e0=bl(ye(m0))[1],x0=yt(bl(m0)[1],e0);else var x0=k0;var l=ye(t[2][1]);return[0,x0,[0,m0,lr([0,f0],0,0),l]]}}),N(jL,function(t,n,e){for(var i=ee0(1,t),x=ire;;){var c=x[3],s=x[2],p=x[1],y=A0(i),T=0;if(typeof y=="number"&&Pn===y)var E=[0,i,p,s,c];else T=1;if(T)if(u(n,y))var E=[0,i,p,s,c];else{var d=0;if(typeof y=="number"||y[0]!==2)d=1;else{var w=u(e,i),G=[0,w,s],A=w[2];if(A[0]===19){var S=A[1][2];if(S){var M=qn(S[1],ure),K=M&&1-i[20];K&&ue(i,[0,w[1],43]);var V=M?_s(1,i):i,f0=[0,y,p],m0=c||M,i=V,x=[0,f0,G,m0];continue}}var E=[0,i,p,G,c]}if(d)var E=[0,i,p,s,c]}var k0=ee0(0,i),g0=ye(p);return Du(function(e0){if(typeof e0!="number"&&e0[0]===2){var x0=e0[1],l=x0[4];return l&&V7(k0,[0,x0[1],45])}return ke(Te(xre,Te(wr0(e0),fre)))},g0),[0,k0,E[3],c]}}),N(GL,function(t){var n=u(Us[6],t),e=A0(t);if(typeof e=="number"){var i=e-49|0;if(!(11>>0))switch(i){case 0:return o(ht[16],n,t);case 1:u(A9(t),n);var x=Yn(1,t);if(typeof x=="number"){var c=0;if((x===4||x===10)&&(c=1),c)return u(ht[17],t)}return u(ht[18],t);case 11:if(Yn(1,t)===49)return u(A9(t),n),o(ht[12],0,t);break}}return o(xb,[0,n],t)}),N(qe0,function(t,n){var e=ur(jL,t,n,GL),i=o(ML,n,e[1]),x=e[2];return le(function(c,s){return[0,s,c]},i,x)}),N(ML,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i=="number"&&Pn===i||u(t,i))return ye(e);var e=[0,u(GL,n),e]}}),N(BL,function(t,n){var e=ur(jL,n,t,function(s){return o(xb,0,s)}),i=o(j9,t,e[1]),x=e[2],c=le(function(s,p){return[0,p,s]},i,x);return[0,c,e[3]]}),N(j9,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i=="number"&&Pn===i||u(t,i))return ye(e);var e=[0,o(xb,0,n),e]}}),N(xb,function(t,n){var e=t&&t[1];1-$l(n)&&u(A9(n),e);var i=A0(n);if(typeof i=="number"){if(i===27)return u(ht[27],n);if(i===28)return u(ht[3],n)}if(Gs(n))return u(Vn[10],n);if($l(n))return o(ze0,n,e);if(typeof i=="number"){var x=i+Wt|0;if(!(14>>0))switch(x){case 0:if(n[27][1])return u(Vn[11],n);break;case 5:return u(ht[19],n);case 12:return o(ht[11],0,n);case 13:return u(ht[25],n);case 14:return u(ht[21],n)}}return u(G9,n)}),N(G9,function(t){var n=A0(t);if(typeof n=="number")switch(n){case 0:return u(ht[7],t);case 8:return u(ht[15],t);case 19:return u(ht[22],t);case 20:return u(ht[23],t);case 22:return u(ht[24],t);case 23:return u(ht[4],t);case 24:return u(ht[26],t);case 25:return u(ht[5],t);case 26:return u(ht[6],t);case 32:return u(ht[8],t);case 35:return u(ht[9],t);case 37:return u(ht[14],t);case 39:return u(ht[1],t);case 59:return u(ht[10],t);case 113:return St(ere,t),[0,Pe(t),nre];case 16:case 43:return u(ht[2],t);case 1:case 5:case 7:case 9:case 10:case 11:case 12:case 17:case 18:case 33:case 34:case 36:case 38:case 41:case 42:case 49:case 83:case 86:return St(tre,t),ie(t),u(G9,t)}if(Gs(t)){var e=u(Vn[10],t);return M1(t,e[1]),e}if(typeof n=="number"&&n===28&&Yn(1,t)===6){var i=Wl(1,t);return ue(t,[0,yt(Pe(t),i),94]),u(ht[17],t)}return G1(t)?u(ht[20],t):($l(t)&&(St(0,t),ie(t)),u(ht[17],t))}),N(Ue0,function(t){var n=Pe(t),e=u(ci[1],t),i=A0(t);return typeof i=="number"&&i===9?ur(ci[7],t,n,[0,e,0]):e}),N(He0,function(t){var n=Pe(t),e=u(ci[2],t),i=A0(t);if(typeof i=="number"&&i===9){var x=[0,o(R9[1],t,e),0];return[0,ur(ci[7],t,n,x)]}return e}),N(Xe0,function(t,n,e){var i=n&&n[1];return cr(0,function(x){var c=1-i,s=Me0([0,e],x),p=c&&(A0(x)===85?1:0);return p&&(1-fu(x)&&je(x,12),Y0(x,85)),[0,s,u(mn[10],x),p]},t)}),N(Ye0,function(t){var n=Pe(t),e=pr(t);Y0(t,0);var i=o(j9,function(y){return y===1?1:0},t),x=i===0?1:0,c=Pe(t),s=x&&pr(t);Y0(t,1);var p=[0,i,yu([0,e],[0,we(t)],s,0)];return[0,yt(n,c),p]}),N(Ve0,function(t){function n(i){var x=pr(i);Y0(i,0);var c=o(BL,function(S){return S===1?1:0},i),s=c[1],p=s===0?1:0,y=p&&pr(i);Y0(i,1);var T=A0(i),E=0;if(!t){var d=0;if(typeof T=="number"&&(T===1||Pn===T)&&(d=1),!d){var w=x7(i);if(w){var G=Ms(i);E=1}else{var G=w;E=1}}}if(!E)var G=we(i);var A=yu([0,x],[0,G],y,0);return[0,[0,s,A],c[2]]}var e=0;return function(i){return gL(e,n,i)}}),mu(lre,se,[0,Be0,G9,xb,j9,BL,ML,Ue0,He0,fne,xne,one,ane,Me0,Xe0,Ye0,Ve0,bne,pne,mne,cne,ze0,sne,vne,lne,ine]);var Ke0=[0,0],We0=bn;function _ne(t){function n(e,i){var x=i[2],c=i[1],s=oL(x),p=[0,[0,bre,u(t[1],s)],0],y=C9(e,c[3]),T=[0,u(t[5],y),0],E=C9(e,c[2]),d=[0,u(t[5],E),T],w=[0,[0,pre,u(t[4],d)],p],G=[0,[0,mre,u(t[5],c[3][2])],0],A=[0,[0,_re,u(t[5],c[3][1])],G],S=[0,[0,yre,u(t[3],A)],0],M=[0,[0,hre,u(t[5],c[2][2])],0],K=[0,[0,dre,u(t[5],c[2][1])],M],V=[0,[0,kre,u(t[3],K)],S],f0=[0,[0,wre,u(t[3],V)],w];switch(i[3]){case 0:var m0=Ere;break;case 1:var m0=Sre;break;case 2:var m0=gre;break;case 3:var m0=Fre;break;case 4:var m0=Tre;break;default:var m0=Ore}var k0=[0,[0,Ire,u(t[1],m0)],f0],g0=wr0(x),e0=[0,[0,Are,u(t[1],g0)],k0];return u(t[3],e0)}return[0,n,function(e,i){var x=ye(Fp(function(c){return n(e,c)},i));return u(t[4],x)}]}var yne=S70;function U1(t){return g70(_l(t))}function hu(t){return E70(_l(t))}function hne(t){return t}function dne(t){return t}function Je0(t,n,e){try{var i=new RegExp(bn(n),bn(e));return i}catch{return i7}}var kne=_ne([0,We0,yne,U1,hu,hne,dne,i7,Je0]),wne=[0,1],$e0=function(t){function n(E,d){return hu(ye(Fp(E,d)))}function e(E,d){return d?u(E,d[1]):i7}function i(E,d){return d[0]===0?i7:u(E,d[1])}function x(E){return U1([0,[0,AWr,E[1]],[0,[0,IWr,E[2]],0]])}function c(E){var d=E[1],w=d?bn(d[1][1]):i7,G=[0,[0,FWr,x(E[3])],0];return U1([0,[0,OWr,w],[0,[0,TWr,x(E[2])],G]])}function s(E){return n(function(d){var w=d[2],G=0;if(typeof w=="number"){var A=w;if(55<=A)switch(A){case 55:var S=nmr;break;case 56:var S=tmr;break;case 57:var S=umr;break;case 58:var S=imr;break;case 59:var S=fmr;break;case 60:var S=xmr;break;case 61:var S=Te(amr,omr);break;case 62:var S=Te(smr,cmr);break;case 63:var S=Te(lmr,vmr);break;case 64:var S=bmr;break;case 65:var S=pmr;break;case 66:var S=mmr;break;case 67:var S=_mr;break;case 68:var S=ymr;break;case 69:var S=hmr;break;case 70:var S=dmr;break;case 71:var S=kmr;break;case 72:var S=wmr;break;case 73:var S=Emr;break;case 74:var S=Smr;break;case 75:var S=gmr;break;case 76:var S=Fmr;break;case 77:var S=Tmr;break;case 78:var S=Omr;break;case 79:var S=Imr;break;case 80:var S=Amr;break;case 81:var S=Nmr;break;case 82:var S=Te(Pmr,Cmr);break;case 83:var S=Dmr;break;case 84:var S=Lmr;break;case 85:var S=Rmr;break;case 86:var S=jmr;break;case 87:var S=Gmr;break;case 88:var S=Mmr;break;case 89:var S=Bmr;break;case 90:var S=qmr;break;case 91:var S=Umr;break;case 92:var S=Hmr;break;case 93:var S=Xmr;break;case 94:var S=Te(Vmr,Ymr);break;case 95:var S=zmr;break;case 96:var S=Kmr;break;case 97:var S=Wmr;break;case 98:var S=Jmr;break;case 99:var S=$mr;break;case 100:var S=Zmr;break;case 101:var S=Qmr;break;case 102:var S=r9r;break;case 103:var S=e9r;break;case 104:var S=n9r;break;case 105:var S=t9r;break;case 106:var S=u9r;break;case 107:var S=i9r;break;default:var S=f9r}else switch(A){case 0:var S=r5r;break;case 1:var S=e5r;break;case 2:var S=n5r;break;case 3:var S=t5r;break;case 4:var S=u5r;break;case 5:var S=i5r;break;case 6:var S=f5r;break;case 7:var S=x5r;break;case 8:var S=o5r;break;case 9:var S=a5r;break;case 10:var S=c5r;break;case 11:var S=s5r;break;case 12:var S=v5r;break;case 13:var S=l5r;break;case 14:var S=b5r;break;case 15:var S=p5r;break;case 16:var S=m5r;break;case 17:var S=_5r;break;case 18:var S=y5r;break;case 19:var S=h5r;break;case 20:var S=d5r;break;case 21:var S=k5r;break;case 22:var S=w5r;break;case 23:var S=E5r;break;case 24:var S=S5r;break;case 25:var S=g5r;break;case 26:var S=F5r;break;case 27:var S=T5r;break;case 28:var S=O5r;break;case 29:var S=I5r;break;case 30:var S=A5r;break;case 31:var S=Te(C5r,N5r);break;case 32:var S=P5r;break;case 33:var S=D5r;break;case 34:var S=L5r;break;case 35:var S=R5r;break;case 36:var S=j5r;break;case 37:var S=G5r;break;case 38:var S=M5r;break;case 39:var S=B5r;break;case 40:var S=q5r;break;case 41:var S=U5r;break;case 42:var S=H5r;break;case 43:var S=X5r;break;case 44:var S=Y5r;break;case 45:var S=V5r;break;case 46:var S=z5r;break;case 47:var S=K5r;break;case 48:var S=W5r;break;case 49:var S=J5r;break;case 50:var S=$5r;break;case 51:var S=Z5r;break;case 52:var S=Q5r;break;case 53:var S=rmr;break;default:var S=emr}}else switch(w[0]){case 0:var M=w[2],K=w[1],S=ur(et(x9r),M,M,K);break;case 1:var V=w[1],f0=w[2],S=o(et(o9r),f0,V);break;case 2:var m0=w[1],S=u(et(a9r),m0);break;case 3:var k0=w[2],g0=w[1],e0=u(et(c9r),g0);if(k0)var x0=k0[1],S=o(et(s9r),x0,e0);else var S=u(et(v9r),e0);break;case 4:var l=w[1],S=o(et(l9r),l,l);break;case 5:var c0=w[3],t0=w[2],o0=w[1];if(t0){var w0=t0[1];if(3<=w0)var S=o(et(b9r),c0,o0);else{switch(w0){case 0:var _0=Jpr;break;case 1:var _0=$pr;break;case 2:var _0=Zpr;break;default:var _0=Qpr}var S=R(et(p9r),o0,_0,c0,_0)}}else var S=o(et(m9r),c0,o0);break;case 6:var E0=w[2],U0=E0;if(b7(U0)===0)var b=U0;else{var R0=sz(U0);Jn(R0,0,xz(Xu(U0,0)));var b=R0}var X=b,s0=w[1],S=ur(et(_9r),E0,X,s0);break;case 7:var S=w[1]?y9r:h9r;break;case 8:var hr=w[1],Ar=w[2],S=o(et(d9r),Ar,hr);break;case 9:var or=w[1],S=u(et(k9r),or);break;case 10:var W0=w[1],S=u(et(w9r),W0);break;case 11:var Lr=w[2],Tr=w[1],S=o(et(E9r),Tr,Lr);break;case 12:var Hr=w[2],Or=w[1],S=o(et(S9r),Or,Hr);break;case 13:var S=Te(F9r,Te(w[1],g9r));break;case 14:var fr=w[1]?T9r:O9r,S=u(et(I9r),fr);break;case 15:var S=Te(N9r,Te(w[1],A9r));break;case 16:var Rr=Te(P9r,Te(w[2],C9r)),S=Te(w[1],Rr);break;case 17:var S=Te(D9r,w[1]);break;case 18:var S=w[1]?Te(R9r,L9r):Te(G9r,j9r);break;case 19:var Wr=w[1],S=u(et(M9r),Wr);break;case 20:var S=Te(q9r,Te(w[1],B9r));break;case 21:var Jr=w[1],ar=w[2]?U9r:H9r,_r=w[4]?Te(X9r,Jr):Jr,Ir=w[3]?Y9r:V9r,S=Te(W9r,Te(ar,Te(Ir,Te(K9r,Te(_r,z9r)))));break;case 22:var S=Te($9r,Te(w[1],J9r));break;default:var fe=w[1],S=u(et(Z9r),fe)}var v0=[0,[0,SWr,bn(S)],G];return U1([0,[0,gWr,c(d[1])],v0])},E)}function p(E){if(E){var d=E[1],w=[0,on(d[3],d[2])];return lr([0,d[1]],w,0)}return E}function y(E){function d(_){return n(q0,_)}function w(_,k,I,U){var Y=t[1];if(Y){if(E)var y0=E[1],P0=[0,C9(y0,k[3]),0],I0=[0,[0,iGr,hu([0,C9(y0,k[2]),P0])],0];else var I0=E;var D=on(I0,[0,[0,fGr,c(k)],0])}else var D=Y;if(I){var u0=I[1],X0=u0[1];if(X0){var J0=u0[2];if(J0)var ir=[0,[0,xGr,d(J0)],0],Q0=[0,[0,oGr,d(X0)],ir];else var Q0=[0,[0,aGr,d(X0)],0];var mr=Q0}else var F0=u0[2],Sr=F0&&[0,[0,cGr,d(F0)],0],mr=Sr;var Cr=mr}else var Cr=I;return U1(Lc(on(D,on(Cr,[0,[0,sGr,bn(_)],0])),U))}function G(_){return n(Q,_)}function A(_){var k=_[2],I=G(k[1]),U=[0,[0,lGr,I],[0,[0,vGr,d(k[3])],0]];return w(bGr,_[1],k[2],U)}function S(_){var k=_[2];return w(Vqr,_[1],k[2],[0,[0,Yqr,bn(k[1])],[0,[0,Xqr,i7],[0,[0,Hqr,!1],0]]])}function M(_){if(_[0]===0)return S(_[1]);var k=_[1],I=k[2],U=M(I[1]),Y=[0,[0,Mzr,U],[0,[0,Gzr,S(I[2])],0]];return w(Bzr,k[1],0,Y)}function K(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,wzr,U],[0,[0,kzr,S(k[2])],0]];return w(Ezr,_[1],0,Y)}function V(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,gzr,U],[0,[0,Szr,e($r,k[2])],0]];return w(Fzr,_[1],k[3],Y)}function f0(_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(typeof U=="number")var y0=i7;else switch(U[0]){case 0:var y0=bn(U[1]);break;case 1:var y0=!!U[1];break;case 2:var y0=U[1];break;case 3:var y0=ke(bYr);break;default:var P0=U[1],y0=Je0(Y,P0[1],P0[2])}var I0=0;if(typeof U!="number"&&U[0]===4){var D=U[1],u0=[0,[0,_Yr,U1([0,[0,mYr,bn(D[1])],[0,[0,pYr,bn(D[2])],0]])],0],X0=[0,[0,hYr,y0],[0,[0,yYr,bn(I)],u0]];I0=1}if(!I0)var X0=[0,[0,kYr,y0],[0,[0,dYr,bn(I)],0]];return w(wYr,Y,k[3],X0)}function m0(_){var k=[0,[0,Tzr,g0(_[2])],0];return[0,[0,Ozr,g0(_[1])],k]}function k0(_,k){var I=k[2],U=[0,[0,EVr,!!I[3]],0],Y=[0,[0,SVr,g0(I[2])],U],y0=[0,[0,gVr,e(S,I[1])],Y];return w(FVr,k[1],_,y0)}function g0(_){var k=_[2],I=_[1];switch(k[0]){case 0:return w(iVr,I,k[1],0);case 1:return w(fVr,I,k[1],0);case 2:return w(xVr,I,k[1],0);case 3:return w(oVr,I,k[1],0);case 4:return w(aVr,I,k[1],0);case 5:return w(sVr,I,k[1],0);case 6:return w(vVr,I,k[1],0);case 7:return w(lVr,I,k[1],0);case 8:return w(bVr,I,k[1],0);case 9:return w(cVr,I,k[1],0);case 10:return w(tKr,I,k[1],0);case 11:var U=k[1],Y=[0,[0,pVr,g0(U[1])],0];return w(mVr,I,U[2],Y);case 12:return e0([0,I,k[1]]);case 13:return x0(1,[0,I,k[1]]);case 14:var y0=k[1],P0=[0,[0,mzr,x0(0,y0[1])],0],I0=[0,[0,_zr,n(fe,y0[2])],P0];return w(yzr,I,y0[3],I0);case 15:var D=k[1],u0=[0,[0,hzr,g0(D[1])],0];return w(dzr,I,D[2],u0);case 16:return V([0,I,k[1]]);case 17:var X0=k[1],J0=m0(X0);return w(Izr,I,X0[3],J0);case 18:var ir=k[1],Q0=ir[1],F0=[0,[0,Azr,!!ir[2]],0],Sr=on(m0(Q0),F0);return w(Nzr,I,Q0[3],Sr);case 19:var mr=k[1],Cr=mr[1],sr=[0,[0,Czr,n(g0,[0,Cr[1],[0,Cr[2],Cr[3]]])],0];return w(Pzr,I,mr[2],sr);case 20:var Pr=k[1],K0=Pr[1],Ur=[0,[0,Dzr,n(g0,[0,K0[1],[0,K0[2],K0[3]]])],0];return w(Lzr,I,Pr[2],Ur);case 21:var h0=k[1],Kr=[0,[0,Rzr,M(h0[1])],0];return w(jzr,I,h0[2],Kr);case 22:var re=k[1],xe=[0,[0,qzr,n(g0,re[1])],0];return w(Uzr,I,re[2],xe);case 23:var Re=k[1];return w(Yzr,I,Re[3],[0,[0,Xzr,bn(Re[1])],[0,[0,Hzr,bn(Re[2])],0]]);case 24:var ve=k[1];return w(Kzr,I,ve[3],[0,[0,zzr,ve[1]],[0,[0,Vzr,bn(ve[2])],0]]);case 25:var Ie=k[1];return w($zr,I,Ie[3],[0,[0,Jzr,i7],[0,[0,Wzr,bn(Ie[2])],0]]);default:var Ge=k[1],Me=Ge[1],an=0,We=Me?Zzr:Qzr;return w(nKr,I,Ge[2],[0,[0,eKr,!!Me],[0,[0,rKr,bn(We)],an]])}}function e0(_){var k=_[2],I=k[2][2],U=k[4],Y=y7(p(I[4]),U),y0=[0,[0,_Vr,e(qr,k[1])],0],P0=[0,[0,yVr,e(Mr,I[3])],y0],I0=[0,[0,hVr,g0(k[3])],P0],D=[0,[0,dVr,e(Br,I[1])],I0],u0=I[2],X0=[0,[0,kVr,n(function(J0){return k0(0,J0)},u0)],D];return w(wVr,_[1],Y,X0)}function x0(_,k){var I=k[2],U=I[3],Y=le(function(ir,Q0){var F0=ir[4],Sr=ir[3],mr=ir[2],Cr=ir[1];switch(Q0[0]){case 0:var sr=Q0[1],Pr=sr[2],K0=Pr[2],Ur=Pr[1];switch(Ur[0]){case 0:var h0=f0(Ur[1]);break;case 1:var h0=S(Ur[1]);break;case 2:var h0=ke(MVr);break;default:var h0=ke(BVr)}switch(K0[0]){case 0:var xe=qVr,Re=g0(K0[1]);break;case 1:var Kr=K0[1],xe=UVr,Re=e0([0,Kr[1],Kr[2]]);break;default:var re=K0[1],xe=HVr,Re=e0([0,re[1],re[2]])}var ve=[0,[0,XVr,bn(xe)],0],Ie=[0,[0,YVr,e(Er,Pr[7])],ve];return[0,[0,w(ZVr,sr[1],Pr[8],[0,[0,$Vr,h0],[0,[0,JVr,Re],[0,[0,WVr,!!Pr[6]],[0,[0,KVr,!!Pr[3]],[0,[0,zVr,!!Pr[4]],[0,[0,VVr,!!Pr[5]],Ie]]]]]]),Cr],mr,Sr,F0];case 1:var Ge=Q0[1],Me=Ge[2],an=[0,[0,QVr,g0(Me[1])],0];return[0,[0,w(rzr,Ge[1],Me[2],an),Cr],mr,Sr,F0];case 2:var We=Q0[1],Ae=We[2],cn=[0,[0,ezr,e(Er,Ae[5])],0],rn=[0,[0,nzr,!!Ae[4]],cn],kn=[0,[0,tzr,g0(Ae[3])],rn],vn=[0,[0,uzr,g0(Ae[2])],kn],Ne=[0,[0,izr,e(S,Ae[1])],vn];return[0,Cr,[0,w(fzr,We[1],Ae[6],Ne),mr],Sr,F0];case 3:var Je=Q0[1],en=Je[2],_n=[0,[0,xzr,!!en[2]],0],Cn=[0,[0,ozr,e0(en[1])],_n];return[0,Cr,mr,[0,w(azr,Je[1],en[3],Cn),Sr],F0];default:var Hn=Q0[1],Fn=Hn[2],vt=[0,[0,czr,g0(Fn[2])],0],Nt=[0,[0,lzr,!!Fn[3]],[0,[0,vzr,!!Fn[4]],[0,[0,szr,!!Fn[5]],vt]]],gt=[0,[0,bzr,S(Fn[1])],Nt];return[0,Cr,mr,Sr,[0,w(pzr,Hn[1],Fn[6],gt),F0]]}},NVr,U),y0=[0,[0,CVr,hu(ye(Y[4]))],0],P0=[0,[0,PVr,hu(ye(Y[3]))],y0],I0=[0,[0,DVr,hu(ye(Y[2]))],P0],D=[0,[0,LVr,hu(ye(Y[1]))],I0],u0=[0,[0,RVr,!!I[1]],D],X0=_?[0,[0,jVr,!!I[2]],u0]:u0,J0=p(I[4]);return w(GVr,k[1],J0,X0)}function l(_){var k=[0,[0,uKr,g0(_[2])],0];return w(iKr,_[1],0,k)}function c0(_){var k=_[2];switch(k[2]){case 0:var I=KYr;break;case 1:var I=WYr;break;default:var I=JYr}var U=[0,[0,$Yr,bn(I)],0],Y=[0,[0,ZYr,n($0,k[1])],U];return w(QYr,_[1],k[3],Y)}function t0(_){var k=_[2];return w(NYr,_[1],k[3],[0,[0,AYr,bn(k[1])],[0,[0,IYr,bn(k[2])],0]])}function o0(_){var k=_[2],I=[0,[0,IXr,i1],[0,[0,OXr,l(k[1])],0]];return w(AXr,_[1],k[2],I)}function w0(_,k){var I=k[1][2],U=[0,[0,$qr,!!k[3]],0],Y=[0,[0,Zqr,i(l,k[2])],U];return w(rUr,_,I[2],[0,[0,Qqr,bn(I[1])],Y])}function _0(_){var k=_[2];return w(Jqr,_[1],k[2],[0,[0,Wqr,bn(k[1])],[0,[0,Kqr,i7],[0,[0,zqr,!1],0]]])}function E0(_){return n(M0,_[2][1])}function U0(_){var k=_[2],I=[0,[0,wKr,w(PKr,k[2],0,0)],0],U=[0,[0,EKr,n(oe,k[3][2])],I],Y=[0,[0,SKr,w(AKr,k[1],0,0)],U];return w(gKr,_[1],k[4],Y)}function b(_){var k=_[2];return w(rWr,_[1],k[2],[0,[0,QKr,bn(k[1])],0])}function R0(_){var k=_[2],I=[0,[0,JKr,b(k[2])],0],U=[0,[0,$Kr,b(k[1])],I];return w(ZKr,_[1],0,U)}function X(_){var k=_[2],I=k[1],U=I[0]===0?b(I[1]):X(I[1]),Y=[0,[0,KKr,U],[0,[0,zKr,b(k[2])],0]];return w(WKr,_[1],0,Y)}function s0(_){switch(_[0]){case 0:return b(_[1]);case 1:return R0(_[1]);default:return X(_[1])}}function hr(_){var k=_[2],I=[0,[0,yKr,n(oe,k[3][2])],0],U=[0,[0,hKr,e(ae,k[2])],I],Y=k[1],y0=Y[2],P0=[0,[0,FKr,!!y0[2]],0],I0=[0,[0,TKr,n(be,y0[3])],P0],D=[0,[0,OKr,s0(y0[1])],I0],u0=[0,[0,dKr,w(IKr,Y[1],0,D)],U];return w(kKr,_[1],k[4],u0)}function Ar(_){var k=_[2],I=[0,[0,jYr,n(fr,k[2])],0],U=[0,[0,GYr,n(vr,k[1])],I];return w(MYr,_[1],k[3],U)}function or(_,k){var I=k[2],U=I[7],Y=I[5],y0=I[4];if(y0)var P0=y0[1][2],I0=y7(P0[3],U),D=I0,u0=P0[2],X0=[0,P0[1]];else var D=U,u0=0,X0=0;if(Y)var J0=Y[1][2],ir=y7(J0[2],D),Q0=ir,F0=n(T0,J0[1]);else var Q0=D,F0=hu(0);var Sr=[0,[0,zUr,F0],[0,[0,VUr,n(S0,I[6])],0]],mr=[0,[0,KUr,e($r,u0)],Sr],Cr=[0,[0,WUr,e(fr,X0)],mr],sr=[0,[0,JUr,e(qr,I[3])],Cr],Pr=I[2],K0=Pr[2],Ur=[0,[0,uHr,n(rr,K0[1])],0],h0=[0,[0,$Ur,w(iHr,Pr[1],K0[2],Ur)],sr],Kr=[0,[0,ZUr,e(S,I[1])],h0];return w(_,k[1],Q0,Kr)}function W0(_){var k=_[2],I=[0,[0,xUr,G(k[1])],0],U=p(k[2]);return w(oUr,_[1],U,I)}function Lr(_){var k=_[2];switch(k[0]){case 0:var I=0,U=S(k[1]);break;case 1:var I=0,U=_0(k[1]);break;default:var I=1,U=fr(k[1])}return[0,[0,EWr,fr(_[1])],[0,[0,wWr,U],[0,[0,kWr,!!I],0]]]}function Tr(_){var k=[0,[0,yWr,E0(_[3])],0],I=[0,[0,hWr,e(ne,_[2])],k];return[0,[0,dWr,fr(_[1])],I]}function Hr(_){var k=_[2],I=k[3],U=k[2],Y=k[1];if(I){var y0=I[1],P0=y0[2],I0=[0,[0,NXr,Or(P0[1])],0],D=w(CXr,y0[1],P0[2],I0),u0=ye([0,D,Fp(L0,U)]),X0=Y?[0,o0(Y[1]),u0]:u0;return hu(X0)}var J0=d1(L0,U),ir=Y?[0,o0(Y[1]),J0]:J0;return hu(ir)}function Or(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,hXr,i(l,U[2])],0],y0=[0,[0,dXr,n(b0,U[1])],Y];return w(kXr,I,p(U[3]),y0);case 1:var P0=k[1],I0=[0,[0,wXr,i(l,P0[2])],0],D=[0,[0,EXr,n(Z,P0[1])],I0];return w(SXr,I,p(P0[3]),D);case 2:return w0(I,k[1]);default:return fr(k[1])}}function fr(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,XMr,n(er,U[1])],0];return w(YMr,I,p(U[2]),Y);case 1:var y0=k[1],P0=y0[7],I0=y0[3],D=y0[2];if(I0[0]===0)var u0=0,X0=W0(I0[1]);else var u0=1,X0=fr(I0[1]);var J0=P0[0]===0?0:[0,P0[1]],ir=y0[9],Q0=y7(p(D[2][4]),ir),F0=[0,[0,VMr,e(qr,y0[8])],0],Sr=[0,[0,KMr,!!u0],[0,[0,zMr,e(l,J0)],F0]],mr=[0,[0,JMr,!1],[0,[0,WMr,e(Fr,y0[6])],Sr]],Cr=[0,[0,ZMr,X0],[0,[0,$Mr,!!y0[4]],mr]];return w(eBr,I,Q0,[0,[0,rBr,i7],[0,[0,QMr,Hr(D)],Cr]]);case 2:var sr=k[1],Pr=sr[1];if(Pr){switch(Pr[1]){case 0:var K0=Tpr;break;case 1:var K0=Opr;break;case 2:var K0=Ipr;break;case 3:var K0=Apr;break;case 4:var K0=Npr;break;case 5:var K0=Cpr;break;case 6:var K0=Ppr;break;case 7:var K0=Dpr;break;case 8:var K0=Lpr;break;case 9:var K0=Rpr;break;case 10:var K0=jpr;break;case 11:var K0=Gpr;break;case 12:var K0=Mpr;break;case 13:var K0=Bpr;break;default:var K0=qpr}var Ur=K0}else var Ur=nBr;var h0=[0,[0,tBr,fr(sr[3])],0],Kr=[0,[0,uBr,Or(sr[2])],h0];return w(fBr,I,sr[4],[0,[0,iBr,bn(Ur)],Kr]);case 3:var re=k[1],xe=[0,[0,xBr,fr(re[3])],0],Re=[0,[0,oBr,fr(re[2])],xe];switch(re[1]){case 0:var ve=ipr;break;case 1:var ve=fpr;break;case 2:var ve=xpr;break;case 3:var ve=opr;break;case 4:var ve=apr;break;case 5:var ve=cpr;break;case 6:var ve=spr;break;case 7:var ve=vpr;break;case 8:var ve=lpr;break;case 9:var ve=bpr;break;case 10:var ve=ppr;break;case 11:var ve=mpr;break;case 12:var ve=_pr;break;case 13:var ve=ypr;break;case 14:var ve=hpr;break;case 15:var ve=dpr;break;case 16:var ve=kpr;break;case 17:var ve=wpr;break;case 18:var ve=Epr;break;case 19:var ve=Spr;break;case 20:var ve=gpr;break;default:var ve=Fpr}return w(cBr,I,re[4],[0,[0,aBr,bn(ve)],Re]);case 4:var Ie=k[1],Ge=Ie[4],Me=y7(p(Ie[3][2][2]),Ge);return w(sBr,I,Me,Tr(Ie));case 5:return or(YUr,[0,I,k[1]]);case 6:var an=k[1],We=[0,[0,vBr,e(fr,an[2])],0];return w(bBr,I,0,[0,[0,lBr,n(yr,an[1])],We]);case 7:var Ae=k[1],cn=[0,[0,pBr,fr(Ae[3])],0],rn=[0,[0,mBr,fr(Ae[2])],cn],kn=[0,[0,_Br,fr(Ae[1])],rn];return w(yBr,I,Ae[4],kn);case 8:return Rr([0,I,k[1]]);case 9:var vn=k[1],Ne=[0,[0,hBr,e(fr,vn[2])],0];return w(kBr,I,0,[0,[0,dBr,n(yr,vn[1])],Ne]);case 10:return S(k[1]);case 11:var Je=k[1],en=[0,[0,wBr,fr(Je[1])],0];return w(EBr,I,Je[2],en);case 12:return hr([0,I,k[1]]);case 13:return U0([0,I,k[1]]);case 14:var _n=k[1],Cn=_n[1];return typeof Cn!="number"&&Cn[0]===3?w(OYr,I,_n[3],[0,[0,TYr,i7],[0,[0,FYr,bn(_n[2])],0]]):f0([0,I,_n]);case 15:var Hn=k[1];switch(Hn[1]){case 0:var Fn=SBr;break;case 1:var Fn=gBr;break;default:var Fn=FBr}var vt=[0,[0,TBr,fr(Hn[3])],0],Nt=[0,[0,OBr,fr(Hn[2])],vt];return w(ABr,I,Hn[4],[0,[0,IBr,bn(Fn)],Nt]);case 16:var gt=k[1],Zt=Lr(gt);return w(NBr,I,gt[3],Zt);case 17:var qt=k[1],Ft=[0,[0,CBr,S(qt[2])],0],Ct=[0,[0,PBr,S(qt[1])],Ft];return w(DBr,I,qt[3],Ct);case 18:var du=k[1],Wu=du[4],lt=du[3];if(lt)var ou=lt[1],Bu=y7(p(ou[2][2]),Wu),K7=Bu,Yi=E0(ou);else var K7=Wu,Yi=hu(0);var a7=[0,[0,RBr,e(ne,du[2])],[0,[0,LBr,Yi],0]];return w(GBr,I,K7,[0,[0,jBr,fr(du[1])],a7]);case 19:var Hc=k[1],W7=[0,[0,MBr,n(p0,Hc[1])],0];return w(BBr,I,p(Hc[2]),W7);case 20:var Ut=k[1],bt=Ut[1],B0=bt[4],D0=y7(p(bt[3][2][2]),B0),Le=[0,[0,qBr,!!Ut[3]],0];return w(UBr,I,D0,on(Tr(bt),Le));case 21:var He=k[1],he=He[1],me=[0,[0,HBr,!!He[3]],0],Zn=on(Lr(he),me);return w(XBr,I,he[3],Zn);case 22:var wn=k[1],ft=[0,[0,YBr,n(fr,wn[1])],0];return w(VBr,I,wn[2],ft);case 23:return w(zBr,I,k[1][1],0);case 24:var xt=k[1],jn=[0,[0,YYr,Ar(xt[2])],0],ut=[0,[0,VYr,fr(xt[1])],jn];return w(zYr,I,xt[3],ut);case 25:return Ar([0,I,k[1]]);case 26:return w(KBr,I,k[1][1],0);case 27:var dt=k[1],xn=[0,[0,WBr,l(dt[2])],0],ln=[0,[0,JBr,fr(dt[1])],xn];return w($Br,I,dt[3],ln);case 28:var it=k[1],Tt=it[3],Ti=it[2],hs=it[1];if(7<=hs)return w(QBr,I,Tt,[0,[0,ZBr,fr(Ti)],0]);switch(hs){case 0:var Au=rqr;break;case 1:var Au=eqr;break;case 2:var Au=nqr;break;case 3:var Au=tqr;break;case 4:var Au=uqr;break;case 5:var Au=iqr;break;case 6:var Au=fqr;break;default:var Au=ke(xqr)}var Hs=[0,[0,aqr,!0],[0,[0,oqr,fr(Ti)],0]];return w(sqr,I,Tt,[0,[0,cqr,bn(Au)],Hs]);case 29:var Vi=k[1],Xs=Vi[1]?vqr:lqr,Ys=[0,[0,bqr,!!Vi[3]],0],nn=[0,[0,pqr,fr(Vi[2])],Ys];return w(_qr,I,Vi[4],[0,[0,mqr,bn(Xs)],nn]);default:var si=k[1],Vs=[0,[0,yqr,!!si[3]],0],c2=[0,[0,hqr,e(fr,si[1])],Vs];return w(dqr,I,si[2],c2)}}function Rr(_){var k=_[2],I=k[7],U=k[3],Y=k[2],y0=U[0]===0?U[1]:ke(Cqr),P0=I[0]===0?0:[0,I[1]],I0=k[9],D=y7(p(Y[2][4]),I0),u0=[0,[0,Pqr,e(qr,k[8])],0],X0=[0,[0,Lqr,!1],[0,[0,Dqr,e(l,P0)],u0]],J0=[0,[0,Rqr,e(Fr,k[6])],X0],ir=[0,[0,Gqr,!!k[4]],[0,[0,jqr,!!k[5]],J0]],Q0=[0,[0,Mqr,W0(y0)],ir],F0=[0,[0,Bqr,Hr(Y)],Q0],Sr=[0,[0,qqr,e(S,k[1])],F0];return w(Uqr,_[1],D,Sr)}function Wr(_){var k=_[2],I=[0,[0,sXr,n(fe,k[3])],0],U=[0,[0,vXr,x0(0,k[4])],I],Y=[0,[0,lXr,e(qr,k[2])],U],y0=[0,[0,bXr,S(k[1])],Y];return w(pXr,_[1],k[5],y0)}function Jr(_,k){var I=k[2],U=_?GUr:MUr,Y=[0,[0,BUr,e(g0,I[4])],0],y0=[0,[0,qUr,e(g0,I[3])],Y],P0=[0,[0,UUr,e(qr,I[2])],y0],I0=[0,[0,HUr,S(I[1])],P0];return w(U,k[1],I[5],I0)}function ar(_){var k=_[2],I=[0,[0,DUr,g0(k[3])],0],U=[0,[0,LUr,e(qr,k[2])],I],Y=[0,[0,RUr,S(k[1])],U];return w(jUr,_[1],k[4],Y)}function _r(_){if(_){var k=_[1];if(k[0]===0)return n(ge,k[1]);var I=k[1],U=I[2];if(U){var Y=[0,[0,OUr,S(U[1])],0];return hu([0,w(IUr,I[1],0,Y),0])}return hu(0)}return hu(0)}function Ir(_){return _?FUr:TUr}function fe(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,_Xr,U],[0,[0,mXr,e($r,k[2])],0]];return w(yXr,_[1],k[3],Y)}function v0(_){var k=_[2],I=k[6],U=k[4],Y=hu(U?[0,fe(U[1]),0]:0),y0=I?n(T0,I[1][2][1]):hu(0),P0=[0,[0,mUr,Y],[0,[0,pUr,y0],[0,[0,bUr,n(fe,k[5])],0]]],I0=[0,[0,_Ur,x0(0,k[3])],P0],D=[0,[0,yUr,e(qr,k[2])],I0],u0=[0,[0,hUr,S(k[1])],D];return w(dUr,_[1],k[7],u0)}function P(_){var k=_[2],I=k[2],U=k[1],Y=yt(U[1],I[1]),y0=[0,[0,sUr,e(Fr,k[3])],0],P0=[0,[0,vUr,w0(Y,[0,U,[1,I],0])],y0];return w(lUr,_[1],k[4],P0)}function L(_){var k=_[2],I=k[2],U=k[1],Y=[0,[0,aUr,w0(yt(U[1],I[1]),[0,U,[1,I],0])],0];return w(cUr,_[1],k[3],Y)}function Q(_){var k=_[2],I=_[1];switch(k[0]){case 0:return W0([0,I,k[1]]);case 1:var U=k[1],Y=[0,[0,pGr,e(S,U[1])],0];return w(mGr,I,U[2],Y);case 2:return or(XUr,[0,I,k[1]]);case 3:var y0=k[1],P0=[0,[0,_Gr,e(S,y0[1])],0];return w(yGr,I,y0[2],P0);case 4:return w(hGr,I,k[1][1],0);case 5:return v0([0,I,k[1]]);case 6:var I0=k[1],D=I0[5],u0=I0[4],X0=I0[3],J0=I0[2];if(X0){var ir=X0[1];if(ir[0]!==0&&!ir[1][2])return w(kGr,I,D,[0,[0,dGr,e(t0,u0)],0])}if(J0){var Q0=J0[1];switch(Q0[0]){case 0:var F0=L(Q0[1]);break;case 1:var F0=P(Q0[1]);break;case 2:var F0=v0(Q0[1]);break;case 3:var F0=g0(Q0[1]);break;case 4:var F0=ar(Q0[1]);break;case 5:var F0=Jr(1,Q0[1]);break;default:var F0=Wr(Q0[1])}var Sr=F0}else var Sr=i7;var mr=[0,[0,wGr,e(t0,u0)],0],Cr=[0,[0,SGr,Sr],[0,[0,EGr,_r(X0)],mr]],sr=I0[1],Pr=sr&&1;return w(FGr,I,D,[0,[0,gGr,!!Pr],Cr]);case 7:return P([0,I,k[1]]);case 8:var K0=k[1],Ur=[0,[0,kUr,n(fe,K0[3])],0],h0=[0,[0,wUr,x0(0,K0[4])],Ur],Kr=[0,[0,EUr,e(qr,K0[2])],h0],re=[0,[0,SUr,S(K0[1])],Kr];return w(gUr,I,K0[5],re);case 9:var xe=k[1],Re=xe[1],ve=Re[0]===0?S(Re[1]):t0(Re[1]),Ie=0,Ge=xe[3]?"ES":"CommonJS",Me=[0,[0,IGr,ve],[0,[0,OGr,W0(xe[2])],[0,[0,TGr,Ge],Ie]]];return w(AGr,I,xe[4],Me);case 10:var an=k[1],We=[0,[0,NGr,l(an[1])],0];return w(CGr,I,an[2],We);case 11:var Ae=k[1],cn=[0,[0,AUr,g0(Ae[3])],0],rn=[0,[0,NUr,e(qr,Ae[2])],cn],kn=[0,[0,CUr,S(Ae[1])],rn];return w(PUr,I,Ae[4],kn);case 12:return Jr(1,[0,I,k[1]]);case 13:return L([0,I,k[1]]);case 14:var vn=k[1],Ne=[0,[0,PGr,fr(vn[2])],0],Je=[0,[0,DGr,Q(vn[1])],Ne];return w(LGr,I,vn[3],Je);case 15:return w(RGr,I,k[1][1],0);case 16:var en=k[1],_n=en[2],Cn=_n[2],Hn=_n[1];switch(Cn[0]){case 0:var Fn=Cn[1],vt=[0,[0,KHr,!!Fn[2]],[0,[0,zHr,!!Fn[3]],0]],Nt=Fn[1],gt=[0,[0,WHr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=w7[1],ev=0,Lb=Ki?CYr:PYr,nv=[0,[0,XHr,w(RYr,Ii[1],w7[2],[0,[0,LYr,!!Ki],[0,[0,DYr,bn(Lb)],0]])],ev],Rb=[0,[0,YHr,S(wu[1])],nv];return w(VHr,ku[1],0,Rb)},Nt)],vt],bt=w(JHr,Hn,p(Fn[4]),gt);break;case 1:var Zt=Cn[1],qt=[0,[0,ZHr,!!Zt[2]],[0,[0,$Hr,!!Zt[3]],0]],Ft=Zt[1],Ct=[0,[0,QHr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=[0,[0,qHr,w(gYr,Ii[1],w7[3],[0,[0,SYr,w7[1]],[0,[0,EYr,bn(w7[2])],0]])],0],ev=[0,[0,UHr,S(wu[1])],Ki];return w(HHr,ku[1],0,ev)},Ft)],qt],bt=w(rXr,Hn,p(Zt[4]),Ct);break;case 2:var du=Cn[1],Wu=du[1];if(Wu[0]===0)var lt=Wu[1],Bu=d1(function(ku){var wu=[0,[0,MHr,S(ku[2][1])],0];return w(BHr,ku[1],0,wu)},lt);else var ou=Wu[1],Bu=d1(function(ku){var wu=ku[2],Ii=[0,[0,RHr,t0(wu[2])],0],w7=[0,[0,jHr,S(wu[1])],Ii];return w(GHr,ku[1],0,w7)},ou);var K7=[0,[0,nXr,!!du[2]],[0,[0,eXr,!!du[3]],0]],Yi=[0,[0,tXr,hu(Bu)],K7],bt=w(uXr,Hn,p(du[4]),Yi);break;default:var a7=Cn[1],Hc=[0,[0,iXr,!!a7[2]],0],W7=a7[1],Ut=[0,[0,fXr,n(function(ku){var wu=[0,[0,DHr,S(ku[2][1])],0];return w(LHr,ku[1],0,wu)},W7)],Hc],bt=w(xXr,Hn,p(a7[3]),Ut)}var B0=[0,[0,aXr,S(en[1])],[0,[0,oXr,bt],0]];return w(cXr,I,en[3],B0);case 17:var D0=k[1],Le=D0[2],He=Le[0]===0?Q(Le[1]):fr(Le[1]),he=[0,[0,GGr,He],[0,[0,jGr,bn(Ir(1))],0]];return w(MGr,I,D0[3],he);case 18:var me=k[1],Zn=me[5],wn=me[4],ft=me[3],xt=me[2];if(xt){var jn=xt[1];if(jn[0]!==0){var ut=[0,[0,BGr,bn(Ir(wn))],0],dt=[0,[0,qGr,e(S,jn[1][2])],ut];return w(HGr,I,Zn,[0,[0,UGr,e(t0,ft)],dt])}}var xn=[0,[0,XGr,bn(Ir(wn))],0],ln=[0,[0,YGr,e(t0,ft)],xn],it=[0,[0,VGr,_r(xt)],ln];return w(KGr,I,Zn,[0,[0,zGr,e(Q,me[1])],it]);case 19:var Tt=k[1],Ti=[0,[0,WGr,e(We0,Tt[2])],0],hs=[0,[0,JGr,fr(Tt[1])],Ti];return w($Gr,I,Tt[3],hs);case 20:var Au=k[1],Hs=function(ku){return ku[0]===0?c0(ku[1]):fr(ku[1])},Vi=[0,[0,ZGr,Q(Au[4])],0],Xs=[0,[0,QGr,e(fr,Au[3])],Vi],Ys=[0,[0,rMr,e(fr,Au[2])],Xs],nn=[0,[0,eMr,e(Hs,Au[1])],Ys];return w(nMr,I,Au[5],nn);case 21:var si=k[1],Vs=si[1],c2=Vs[0]===0?c0(Vs[1]):Or(Vs[1]),M9=[0,[0,tMr,!!si[4]],0],B9=[0,[0,uMr,Q(si[3])],M9],q9=[0,[0,fMr,c2],[0,[0,iMr,fr(si[2])],B9]];return w(xMr,I,si[5],q9);case 22:var zs=k[1],s2=zs[1],U9=s2[0]===0?c0(s2[1]):Or(s2[1]),H9=[0,[0,oMr,!!zs[4]],0],X9=[0,[0,aMr,Q(zs[3])],H9],H1=[0,[0,sMr,U9],[0,[0,cMr,fr(zs[2])],X9]];return w(vMr,I,zs[5],H1);case 23:var vi=k[1],ab=vi[7],cb=vi[3],sb=vi[2],Y9=cb[0]===0?cb[1]:ke(kqr),V9=ab[0]===0?0:[0,ab[1]],z9=vi[9],vb=y7(p(sb[2][4]),z9),K9=[0,[0,wqr,e(qr,vi[8])],0],W9=[0,[0,Sqr,!1],[0,[0,Eqr,e(l,V9)],K9]],J9=[0,[0,gqr,e(Fr,vi[6])],W9],$9=[0,[0,Tqr,!!vi[4]],[0,[0,Fqr,!!vi[5]],J9]],lb=[0,[0,Oqr,W0(Y9)],$9],Z9=[0,[0,Iqr,Hr(sb)],lb];return w(Nqr,I,vb,[0,[0,Aqr,e(S,vi[1])],Z9]);case 24:var X1=k[1],v2=X1[3];if(v2){var bb=v2[1][2],pb=bb[2],mb=bb[1],On=mb[2],Gn=function(wu){return y7(wu,pb)};switch(On[0]){case 0:var Y1=On[1],_b=JD(Y1[2],pb),Mn=[0,[0,Y1[1],_b]];break;case 1:var yb=On[1],Q9=Gn(yb[2]),Mn=[1,[0,yb[1],Q9]];break;case 2:var Xc=On[1],r_=Gn(Xc[7]),Mn=[2,[0,Xc[1],Xc[2],Xc[3],Xc[4],Xc[5],Xc[6],r_]];break;case 3:var l2=On[1],hb=Gn(l2[2]),Mn=[3,[0,l2[1],hb]];break;case 4:var Mn=[4,[0,Gn(On[1][1])]];break;case 5:var Yc=On[1],e_=Gn(Yc[7]),Mn=[5,[0,Yc[1],Yc[2],Yc[3],Yc[4],Yc[5],Yc[6],e_]];break;case 6:var Ks=On[1],db=Gn(Ks[5]),Mn=[6,[0,Ks[1],Ks[2],Ks[3],Ks[4],db]];break;case 7:var V1=On[1],n_=Gn(V1[4]),Mn=[7,[0,V1[1],V1[2],V1[3],n_]];break;case 8:var ds=On[1],t_=Gn(ds[5]),Mn=[8,[0,ds[1],ds[2],ds[3],ds[4],t_]];break;case 9:var z1=On[1],u_=Gn(z1[4]),Mn=[9,[0,z1[1],z1[2],z1[3],u_]];break;case 10:var b2=On[1],i_=Gn(b2[2]),Mn=[10,[0,b2[1],i_]];break;case 11:var Ws=On[1],kb=Gn(Ws[4]),Mn=[11,[0,Ws[1],Ws[2],Ws[3],kb]];break;case 12:var Js=On[1],f_=Gn(Js[5]),Mn=[12,[0,Js[1],Js[2],Js[3],Js[4],f_]];break;case 13:var zi=On[1],Vc=Gn(zi[3]),Mn=[13,[0,zi[1],zi[2],Vc]];break;case 14:var $s=On[1],x_=Gn($s[3]),Mn=[14,[0,$s[1],$s[2],x_]];break;case 15:var Mn=[15,[0,Gn(On[1][1])]];break;case 16:var p2=On[1],m2=Gn(p2[3]),Mn=[16,[0,p2[1],p2[2],m2]];break;case 17:var _2=On[1],o_=Gn(_2[3]),Mn=[17,[0,_2[1],_2[2],o_]];break;case 18:var Zs=On[1],a_=Gn(Zs[5]),Mn=[18,[0,Zs[1],Zs[2],Zs[3],Zs[4],a_]];break;case 19:var y2=On[1],qL=Gn(y2[3]),Mn=[19,[0,y2[1],y2[2],qL]];break;case 20:var K1=On[1],UL=Gn(K1[5]),Mn=[20,[0,K1[1],K1[2],K1[3],K1[4],UL]];break;case 21:var W1=On[1],HL=Gn(W1[5]),Mn=[21,[0,W1[1],W1[2],W1[3],W1[4],HL]];break;case 22:var J1=On[1],XL=Gn(J1[5]),Mn=[22,[0,J1[1],J1[2],J1[3],J1[4],XL]];break;case 23:var Oi=On[1],YL=Oi[10],VL=Gn(Oi[9]),Mn=[23,[0,Oi[1],Oi[2],Oi[3],Oi[4],Oi[5],Oi[6],Oi[7],Oi[8],VL,YL]];break;case 24:var h2=On[1],zL=Gn(h2[4]),Mn=[24,[0,h2[1],h2[2],h2[3],zL]];break;case 25:var $1=On[1],KL=Gn($1[5]),Mn=[25,[0,$1[1],$1[2],$1[3],$1[4],KL]];break;case 26:var Z1=On[1],WL=Gn(Z1[5]),Mn=[26,[0,Z1[1],Z1[2],Z1[3],Z1[4],WL]];break;case 27:var wb=On[1],JL=Gn(wb[3]),Mn=[27,[0,wb[1],wb[2],JL]];break;case 28:var Eb=On[1],$L=Eb[3],ZL=Gn(Eb[2]),Mn=[28,[0,Eb[1],ZL,$L]];break;case 29:var d2=On[1],QL=d2[4],rR=Gn(d2[3]),Mn=[29,[0,d2[1],d2[2],rR,QL]];break;case 30:var c_=On[1],eR=Gn(c_[2]),Mn=[30,[0,c_[1],eR]];break;case 31:var k2=On[1],nR=Gn(k2[4]),Mn=[31,[0,k2[1],k2[2],k2[3],nR]];break;case 32:var w2=On[1],tR=Gn(w2[4]),Mn=[32,[0,w2[1],w2[2],w2[3],tR]];break;case 33:var Q1=On[1],uR=Gn(Q1[5]),Mn=[33,[0,Q1[1],Q1[2],Q1[3],Q1[4],uR]];break;case 34:var Sb=On[1],iR=Gn(Sb[3]),Mn=[34,[0,Sb[1],Sb[2],iR]];break;case 35:var gb=On[1],fR=Gn(gb[3]),Mn=[35,[0,gb[1],gb[2],fR]];break;default:var Fb=On[1],xR=Gn(Fb[3]),Mn=[36,[0,Fb[1],Fb[2],xR]]}var s_=Q([0,mb[1],Mn])}else var s_=i7;var oR=[0,[0,bMr,Q(X1[2])],[0,[0,lMr,s_],0]],aR=[0,[0,pMr,fr(X1[1])],oR];return w(mMr,I,X1[4],aR);case 25:var rv=k[1],Tb=rv[4],v_=rv[3];if(Tb){var Ob=Tb[1];if(Ob[0]===0)var cR=Ob[1],b_=d1(function(wu){var Ii=wu[1],w7=wu[3],Ki=wu[2],ev=Ki?yt(w7[1],Ki[1][1]):w7[1],Lb=Ki?Ki[1]:w7,nv=0,Rb=0;if(Ii)switch(Ii[1]){case 0:var jb=Jc;break;case 1:var jb=rs;break;default:nv=1}else nv=1;if(nv)var jb=i7;var IR=[0,[0,aWr,S(Lb)],[0,[0,oWr,jb],Rb]];return w(sWr,ev,0,[0,[0,cWr,S(w7)],IR])},cR);else var l_=Ob[1],sR=[0,[0,fWr,S(l_[2])],0],b_=[0,w(xWr,l_[1],0,sR),0];var Ib=b_}else var Ib=Tb;if(v_)var p_=v_[1],vR=[0,[0,uWr,S(p_)],0],m_=[0,w(iWr,p_[1],0,vR),Ib];else var m_=Ib;switch(rv[1]){case 0:var Ab=_Mr;break;case 1:var Ab=yMr;break;default:var Ab=hMr}var lR=[0,[0,dMr,bn(Ab)],0],bR=[0,[0,kMr,t0(rv[2])],lR],pR=[0,[0,wMr,hu(m_)],bR];return w(EMr,I,rv[5],pR);case 26:return Wr([0,I,k[1]]);case 27:var Nb=k[1],mR=[0,[0,SMr,Q(Nb[2])],0],_R=[0,[0,gMr,S(Nb[1])],mR];return w(FMr,I,Nb[3],_R);case 28:var __=k[1],yR=[0,[0,TMr,e(fr,__[1])],0];return w(OMr,I,__[2],yR);case 29:var Cb=k[1],hR=[0,[0,IMr,n(i0,Cb[2])],0],dR=[0,[0,AMr,fr(Cb[1])],hR];return w(NMr,I,Cb[3],dR);case 30:var y_=k[1],kR=[0,[0,CMr,fr(y_[1])],0];return w(PMr,I,y_[2],kR);case 31:var E2=k[1],wR=[0,[0,DMr,e(W0,E2[3])],0],ER=[0,[0,LMr,e(l0,E2[2])],wR],SR=[0,[0,RMr,W0(E2[1])],ER];return w(jMr,I,E2[4],SR);case 32:return ar([0,I,k[1]]);case 33:return Jr(0,[0,I,k[1]]);case 34:return c0([0,I,k[1]]);case 35:var Pb=k[1],gR=[0,[0,GMr,Q(Pb[2])],0],FR=[0,[0,MMr,fr(Pb[1])],gR];return w(BMr,I,Pb[3],FR);default:var Db=k[1],TR=[0,[0,qMr,Q(Db[2])],0],OR=[0,[0,UMr,fr(Db[1])],TR];return w(HMr,I,Db[3],OR)}}function i0(_){var k=_[2],I=[0,[0,eUr,n(Q,k[2])],0],U=[0,[0,nUr,e(fr,k[1])],I];return w(tUr,_[1],k[3],U)}function l0(_){var k=_[2],I=[0,[0,uUr,W0(k[2])],0],U=[0,[0,iUr,e(Or,k[1])],I];return w(fUr,_[1],k[3],U)}function S0(_){var k=_[2],I=[0,[0,QUr,fr(k[1])],0];return w(rHr,_[1],k[2],I)}function T0(_){var k=_[2],I=[0,[0,eHr,e($r,k[2])],0],U=[0,[0,nHr,S(k[1])],I];return w(tHr,_[1],0,U)}function rr(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[6],Y=I[2];switch(Y[0]){case 0:var I0=U,D=0,u0=f0(Y[1]);break;case 1:var I0=U,D=0,u0=S(Y[1]);break;case 2:var I0=U,D=0,u0=_0(Y[1]);break;default:var y0=Y[1][2],P0=y7(y0[2],U),I0=P0,D=1,u0=fr(y0[1])}switch(I[1]){case 0:var X0=fHr;break;case 1:var X0=xHr;break;case 2:var X0=oHr;break;default:var X0=aHr}var J0=[0,[0,sHr,!!D],[0,[0,cHr,n(S0,I[5])],0]],ir=[0,[0,lHr,bn(X0)],[0,[0,vHr,!!I[4]],J0]],Q0=[0,[0,pHr,u0],[0,[0,bHr,Rr(I[3])],ir]];return w(mHr,k[1],I0,Q0);case 1:var F0=_[1],Sr=F0[2],mr=Sr[6],Cr=Sr[2],sr=Sr[1];switch(sr[0]){case 0:var h0=mr,Kr=0,re=f0(sr[1]);break;case 1:var h0=mr,Kr=0,re=S(sr[1]);break;case 2:var Pr=ke(gHr),h0=Pr[3],Kr=Pr[2],re=Pr[1];break;default:var K0=sr[1][2],Ur=y7(K0[2],mr),h0=Ur,Kr=1,re=fr(K0[1])}if(typeof Cr=="number")if(Cr)var xe=0,Re=0;else var xe=1,Re=0;else var xe=0,Re=[0,Cr[1]];var ve=xe&&[0,[0,FHr,!!xe],0],Ie=[0,[0,THr,e(Er,Sr[5])],0],Ge=[0,[0,IHr,!!Kr],[0,[0,OHr,!!Sr[4]],Ie]],Me=[0,[0,AHr,i(l,Sr[3])],Ge],an=on([0,[0,CHr,re],[0,[0,NHr,e(fr,Re)],Me]],ve);return w(PHr,F0[1],h0,an);default:var We=_[1],Ae=We[2],cn=Ae[2];if(typeof cn=="number")if(cn)var rn=0,kn=0;else var rn=1,kn=0;else var rn=0,kn=[0,cn[1]];var vn=rn&&[0,[0,_Hr,!!rn],0],Ne=[0,[0,yHr,e(Er,Ae[5])],0],Je=[0,[0,dHr,!1],[0,[0,hHr,!!Ae[4]],Ne]],en=[0,[0,kHr,i(l,Ae[3])],Je],_n=[0,[0,wHr,e(fr,kn)],en],Cn=on([0,[0,EHr,_0(Ae[1])],_n],vn);return w(SHr,We[1],Ae[6],Cn)}}function L0(_){var k=_[2],I=k[2],U=k[1];if(I){var Y=[0,[0,gXr,fr(I[1])],0],y0=[0,[0,FXr,Or(U)],Y];return w(TXr,_[1],0,y0)}return Or(U)}function B(_,k){var I=[0,[0,PXr,Or(k[1])],0];return w(DXr,_,k[2],I)}function Z(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[2],Y=I[1];if(U){var y0=[0,[0,LXr,fr(U[1])],0],P0=[0,[0,RXr,Or(Y)],y0];return w(jXr,k[1],0,P0)}return Or(Y);case 1:var I0=_[1];return B(I0[1],I0[2]);default:return i7}}function p0(_){if(_[0]===0){var k=_[1],I=k[2];switch(I[0]){case 0:var U=fr(I[2]),X0=0,J0=I[3],ir=0,Q0=GXr,F0=U,Sr=I[1];break;case 1:var Y=I[2],y0=Rr([0,Y[1],Y[2]]),X0=0,J0=0,ir=1,Q0=MXr,F0=y0,Sr=I[1];break;case 2:var P0=I[2],I0=Rr([0,P0[1],P0[2]]),X0=I[3],J0=0,ir=0,Q0=BXr,F0=I0,Sr=I[1];break;default:var D=I[2],u0=Rr([0,D[1],D[2]]),X0=I[3],J0=0,ir=0,Q0=qXr,F0=u0,Sr=I[1]}switch(Sr[0]){case 0:var Pr=X0,K0=0,Ur=f0(Sr[1]);break;case 1:var Pr=X0,K0=0,Ur=S(Sr[1]);break;case 2:var mr=ke(UXr),Pr=mr[3],K0=mr[2],Ur=mr[1];break;default:var Cr=Sr[1][2],sr=y7(Cr[2],X0),Pr=sr,K0=1,Ur=fr(Cr[1])}return w(WXr,k[1],Pr,[0,[0,KXr,Ur],[0,[0,zXr,F0],[0,[0,VXr,bn(Q0)],[0,[0,YXr,!!ir],[0,[0,XXr,!!J0],[0,[0,HXr,!!K0],0]]]]]])}var h0=_[1],Kr=h0[2],re=[0,[0,JXr,fr(Kr[1])],0];return w($Xr,h0[1],Kr[2],re)}function b0(_){if(_[0]===0){var k=_[1],I=k[2],U=I[3],Y=I[2],y0=I[1];switch(y0[0]){case 0:var D=0,u0=0,X0=f0(y0[1]);break;case 1:var D=0,u0=0,X0=S(y0[1]);break;default:var P0=y0[1][2],I0=fr(P0[1]),D=P0[2],u0=1,X0=I0}if(U)var J0=U[1],ir=yt(Y[1],J0[1]),Q0=[0,[0,ZXr,fr(J0)],0],F0=w(rYr,ir,0,[0,[0,QXr,Or(Y)],Q0]);else var F0=Or(Y);return w(xYr,k[1],D,[0,[0,fYr,X0],[0,[0,iYr,F0],[0,[0,uYr,ji],[0,[0,tYr,!1],[0,[0,nYr,!!I[4]],[0,[0,eYr,!!u0],0]]]]]])}var Sr=_[1];return B(Sr[1],Sr[2])}function O0(_){var k=_[2],I=[0,[0,oYr,fr(k[1])],0];return w(aYr,_[1],k[2],I)}function M0(_){return _[0]===0?fr(_[1]):O0(_[1])}function er(_){switch(_[0]){case 0:return fr(_[1]);case 1:return O0(_[1]);default:return i7}}function yr(_){var k=_[2],I=[0,[0,cYr,!!k[3]],0],U=[0,[0,sYr,fr(k[2])],I],Y=[0,[0,vYr,Or(k[1])],U];return w(lYr,_[1],0,Y)}function vr(_){var k=_[2],I=k[1],U=U1([0,[0,qYr,bn(I[1])],[0,[0,BYr,bn(I[2])],0]]);return w(XYr,_[1],0,[0,[0,HYr,U],[0,[0,UYr,!!k[2]],0]])}function $0(_){var k=_[2],I=[0,[0,rVr,e(fr,k[2])],0],U=[0,[0,eVr,Or(k[1])],I];return w(nVr,_[1],0,U)}function Er(_){var k=_[2],I=k[1]?cY:"plus";return w(uVr,_[1],k[2],[0,[0,tVr,I],0])}function Mr(_){var k=_[2];return k0(k[2],k[1])}function Br(_){var k=_[2],I=[0,[0,OVr,g0(k[1][2])],[0,[0,TVr,!1],0]],U=[0,[0,IVr,e(S,0)],I];return w(AVr,_[1],k[2],U)}function qr(_){var k=_[2],I=[0,[0,fKr,n(jr,k[1])],0],U=p(k[2]);return w(xKr,_[1],U,I)}function jr(_){var k=_[2],I=k[1][2],U=[0,[0,oKr,e(g0,k[4])],0],Y=[0,[0,aKr,e(Er,k[3])],U],y0=[0,[0,cKr,i(l,k[2])],Y];return w(vKr,_[1],I[2],[0,[0,sKr,bn(I[1])],y0])}function $r(_){var k=_[2],I=[0,[0,lKr,n(g0,k[1])],0],U=p(k[2]);return w(bKr,_[1],U,I)}function ne(_){var k=_[2],I=[0,[0,pKr,n(Qr,k[1])],0],U=p(k[2]);return w(mKr,_[1],U,I)}function Qr(_){if(_[0]===0)return g0(_[1]);var k=_[1],I=k[1],U=k[2][1];return V([0,I,[0,[0,Rc(0,[0,I,_Kr])],0,U]])}function be(_){if(_[0]===0){var k=_[1],I=k[2],U=I[1],Y=U[0]===0?b(U[1]):R0(U[1]),y0=[0,[0,LKr,Y],[0,[0,DKr,e(ce,I[2])],0]];return w(RKr,k[1],0,y0)}var P0=_[1],I0=P0[2],D=[0,[0,jKr,fr(I0[1])],0];return w(GKr,P0[1],I0[2],D)}function ae(_){var k=[0,[0,NKr,s0(_[2][1])],0];return w(CKr,_[1],0,k)}function pe(_){var k=_[2],I=k[1],U=_[1],Y=I?fr(I[1]):w(MKr,[0,U[1],[0,U[2][1],U[2][2]+1|0],[0,U[3][1],U[3][2]-1|0]],0,0);return w(qKr,U,p(k[2]),[0,[0,BKr,Y],0])}function oe(_){var k=_[2],I=_[1];switch(k[0]){case 0:return hr([0,I,k[1]]);case 1:return U0([0,I,k[1]]);case 2:return pe([0,I,k[1]]);case 3:var U=k[1],Y=[0,[0,UKr,fr(U[1])],0];return w(HKr,I,U[2],Y);default:var y0=k[1];return w(VKr,I,0,[0,[0,YKr,bn(y0[1])],[0,[0,XKr,bn(y0[2])],0]])}}function ce(_){return _[0]===0?f0([0,_[1],_[2]]):pe([0,_[1],_[2]])}function ge(_){var k=_[2],I=k[2],U=k[1],Y=S(I?I[1]:U),y0=[0,[0,nWr,S(U)],[0,[0,eWr,Y],0]];return w(tWr,_[1],0,y0)}function q0(_){var k=_[2];if(k[1])var I=k[2],U=vWr;else var I=k[2],U=lWr;return w(U,_[1],0,[0,[0,bWr,bn(I)],0])}function Fr(_){var k=_[2],I=k[1];if(I)var U=[0,[0,pWr,fr(I[1])],0],Y=mWr;else var U=0,Y=_Wr;return w(Y,_[1],k[2],U)}return[0,A,fr]}function T(E){return y(E)[1]}return[0,T,function(E){return y(E)[2]},s]}(wne);function ob(t,n,e){var i=n[e];return Mp(i)?i|0:t}function Ene(t,n){var e=RV(n,Jz)?{}:n,i=B7(t),x=ob(Bv[5],e,Nre),c=ob(Bv[4],e,Cre),s=ob(Bv[3],e,Pre),p=ob(Bv[2],e,Dre),y=[0,[0,ob(Bv[1],e,Lre),p,s,c,x]],T=e.tokens,E=Mp(T),d=E&&T|0,w=e.comments,G=Mp(w)?w|0:1,A=e.all_comments,S=Mp(A)?A|0:1,M=[0,0],K=d&&[0,function(b0){return M[1]=[0,b0,M[1]],0}],V=[0,y],f0=[0,K],m0=uz?uz[1]:1,k0=f0&&f0[1],g0=V&&V[1],e0=[0,g0],x0=[0,k0],l=0,c0=x0&&x0[1],t0=e0&&e0[1],o0=Hee([0,c0],[0,t0],l,i),w0=u(se[1],o0),_0=ye(o0[1][1]),E0=[0,LL[1],0],U0=ye(le(function(b0,O0){var M0=b0[2],er=b0[1];return o(LL[3],O0,er)?[0,er,M0]:[0,o(LL[4],O0,er),[0,O0,M0]]},E0,_0)[2]);if(U0&&m0)throw[0,Nee,U0[1],U0[2]];Ke0[1]=0;for(var b=un(i)-0|0,R0=i,X=0,s0=0;;){if(s0===b)var hr=X;else{var Ar=Xu(R0,s0),or=0;if(0<=Ar&&!(zn>>0)throw[0,Sn,Qo0];switch(Or){case 0:var Rr=Xu(R0,s0);break;case 1:var Rr=(Xu(R0,s0)&31)<<6|Xu(R0,s0+1|0)&63;break;case 2:var Rr=(Xu(R0,s0)&15)<<12|(Xu(R0,s0+1|0)&63)<<6|Xu(R0,s0+2|0)&63;break;default:var Rr=(Xu(R0,s0)&7)<<18|(Xu(R0,s0+1|0)&63)<<12|(Xu(R0,s0+2|0)&63)<<6|Xu(R0,s0+3|0)&63}var X=SL(X,s0,[0,Rr]),s0=fr;continue}var hr=SL(X,s0,0)}for(var Wr=tGr,Jr=ye([0,6,hr]);;){var ar=Wr[3],_r=Wr[2],Ir=Wr[1];if(Jr){var fe=Jr[1];if(fe===5){var v0=Jr[2];if(v0&&v0[1]===6){var P=_l(ye([0,Ir,_r])),Wr=[0,Ir+2|0,0,[0,P,ar]],Jr=v0[2];continue}}else if(!(6<=fe)){var L=Jr[2],Wr=[0,Ir+we0(fe)|0,[0,Ir,_r],ar],Jr=L;continue}var Q=_l(ye([0,Ir,_r])),i0=Jr[2],Wr=[0,Ir+we0(fe)|0,0,[0,Q,ar]],Jr=i0;continue}var l0=_l(ye(ar));if(G)var T0=w0;else var S0=u(Tee[1],0),T0=o(Qe(S0,-201766268,25),S0,w0);if(S)var L0=T0;else var rr=T0[2],L0=[0,T0[1],[0,rr[1],rr[2],0]];var B=o($e0[1],[0,l0],L0),Z=on(U0,Ke0[1]);if(B.errors=u($e0[3],Z),d){var p0=M[1];B.tokens=hu(Fp(u(kne[1],l0),p0))}return B}}}if(typeof H0<"u")var Ze0=H0;else{var Qe0={};GN.flow=Qe0;var Ze0=Qe0}Ze0.parse=function(t,n){try{var e=Ene(t,n);return e}catch(i){return i=Et(i),i[1]===MN?u($z,i[2]):u($z,new dee(bn(Te(Rre,Cp(i)))))}},uN(0)}(globalThis)}});Pt();var uoe=Fu0(),ioe=Vxe(),foe=zxe(),xoe=Qxe(),ooe={comments:!1,enums:!0,esproposal_decorators:!0,esproposal_export_star_as:!0,tokens:!0};function aoe(H0){let{message:z0,loc:{start:xr,end:gr}}=H0;return uoe(z0,{start:{line:xr.line,column:xr.column+1},end:{line:gr.line,column:gr.column+1}})}function coe(H0,z0){let xr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:gr}=toe(),de=gr(foe(H0),ooe),[Ve]=de.errors;if(Ve)throw aoe(Ve);return xr.originalText=H0,xoe(de,xr)}zu0.exports={parsers:{flow:ioe(coe)}}});return soe();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-glimmer.js b/node_modules/prettier/parser-glimmer.js new file mode 100644 index 0000000..0eb1378 --- /dev/null +++ b/node_modules/prettier/parser-glimmer.js @@ -0,0 +1,27 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.glimmer=e()}})(function(){"use strict";var it=(t,f)=>()=>(f||t((f={exports:{}}).exports,f),f.exports);var Zt=it((nr,$e)=>{var xe=Object.getOwnPropertyNames,at=(t,f)=>function(){return t&&(f=(0,t[xe(t)[0]])(t=0)),f},I=(t,f)=>function(){return f||(0,t[xe(t)[0]])((f={exports:{}}).exports,f),f.exports},F=at({""(){}}),st=I({"node_modules/lines-and-columns/build/index.cjs"(t){"use strict";F(),t.__esModule=!0,t.LinesAndColumns=void 0;var f=` +`,h="\r",d=function(){function c(o){this.length=o.length;for(var e=[0],r=0;rthis.length)return null;for(var e=0,r=this.offsets;r[e+1]<=o;)e++;var s=o-r[e];return{line:e,column:s}},c.prototype.indexForLocation=function(o){var e=o.line,r=o.column;return e<0||e>=this.offsets.length||r<0||r>this.lengthOfLine(e)?null:this.offsets[e]+r},c.prototype.lengthOfLine=function(o){var e=this.offsets[o],r=o===this.offsets.length-1?this.length:this.offsets[o+1];return r-e},c}();t.LinesAndColumns=d}}),ut=I({"src/common/parser-create-error.js"(t,f){"use strict";F();function h(d,c){let o=new SyntaxError(d+" ("+c.start.line+":"+c.start.column+")");return o.loc=c,o}f.exports=h}}),ot=I({"src/language-handlebars/loc.js"(t,f){"use strict";F();function h(c){return c.loc.start.offset}function d(c){return c.loc.end.offset}f.exports={locStart:h,locEnd:d}}}),fe=I({"node_modules/@glimmer/env/dist/commonjs/es5/index.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0});var f=t.DEBUG=!1,h=t.CI=!1}}),lt=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/array-utils.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.emptyArray=h,t.isEmptyArray=o,t.EMPTY_NUMBER_ARRAY=t.EMPTY_STRING_ARRAY=t.EMPTY_ARRAY=void 0;var f=Object.freeze([]);t.EMPTY_ARRAY=f;function h(){return f}var d=h();t.EMPTY_STRING_ARRAY=d;var c=h();t.EMPTY_NUMBER_ARRAY=c;function o(e){return e===f}}}),Pe=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/assert.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.debugAssert=h,t.prodAssert=d,t.deprecate=c,t.default=void 0;var f=X();function h(e,r){if(!e)throw new Error(r||"assertion failure")}function d(){}function c(e){f.LOCAL_LOGGER.warn("DEPRECATION: ".concat(e))}var o=h;t.default=o}}),ct=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/collections.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.dict=f,t.isDict=h,t.isObject=d,t.StackImpl=void 0;function f(){return Object.create(null)}function h(o){return o!=null}function d(o){return typeof o=="function"||typeof o=="object"&&o!==null}var c=class{constructor(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this.current=null,this.stack=o}get size(){return this.stack.length}push(o){this.current=o,this.stack.push(o)}pop(){let o=this.stack.pop(),e=this.stack.length;return this.current=e===0?null:this.stack[e-1],o===void 0?null:o}nth(o){let e=this.stack.length;return e0&&arguments[0]!==void 0?arguments[0]:"unreachable";return new Error(i)}function p(i){throw new Error("Exhausted ".concat(i))}var n=function(){for(var i=arguments.length,l=new Array(i),b=0;b1?c-1:0),e=1;e=0}function d(l){return l>3}function c(){for(var l=arguments.length,b=new Array(l),P=0;P=-536870912}function e(l){return l&-536870913}function r(l){return l|536870912}function s(l){return~l}function p(l){return~l}function n(l){return l}function a(l){return l}function u(l){return l|=0,l<0?e(l):s(l)}function i(l){return l|=0,l>-536870913?p(l):r(l)}[1,2,3].forEach(l=>l),[1,-1].forEach(l=>i(u(l)))}}),gt=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/template.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.unwrapHandle=f,t.unwrapTemplate=h,t.extractHandle=d,t.isOkHandle=c,t.isErrHandle=o;function f(e){if(typeof e=="number")return e;{let r=e.errors[0];throw new Error("Compile Error: ".concat(r.problem," @ ").concat(r.span.start,"..").concat(r.span.end))}}function h(e){if(e.result==="error")throw new Error("Compile Error: ".concat(e.problem," @ ").concat(e.span.start,"..").concat(e.span.end));return e}function d(e){return typeof e=="number"?e:e.handle}function c(e){return typeof e=="number"}function o(e){return typeof e=="number"}}}),bt=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/weak-set.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var f=typeof WeakSet=="function"?WeakSet:class{constructor(){this._map=new WeakMap}add(d){return this._map.set(d,!0),this}delete(d){return this._map.delete(d)}has(d){return this._map.has(d)}};t.default=f}}),vt=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/simple-cast.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.castToSimple=h,t.castToBrowser=d,t.checkNode=r;var f=me();function h(p){return o(p)||e(p),p}function d(p,n){if(p==null)return null;if(typeof document===void 0)throw new Error("Attempted to cast to a browser node in a non-browser context");if(o(p))return p;if(p.ownerDocument!==document)throw new Error("Attempted to cast to a browser node with a node that was not created from this document");return r(p,n)}function c(p,n){return new Error("cannot cast a ".concat(p," into ").concat(n))}function o(p){return p.nodeType===9}function e(p){return p.nodeType===1}function r(p,n){let a=!1;if(p!==null)if(typeof n=="string")a=s(p,n);else if(Array.isArray(n))a=n.some(u=>s(p,u));else throw(0,f.unreachable)();if(a)return p;throw c("SimpleElement(".concat(p,")"),n)}function s(p,n){switch(n){case"NODE":return!0;case"HTML":return p instanceof HTMLElement;case"SVG":return p instanceof SVGElement;case"ELEMENT":return p instanceof Element;default:if(n.toUpperCase()===n)throw new Error("BUG: this code is missing handling for a generic node type");return p instanceof Element&&p.tagName.toLowerCase()===n}}}}),yt=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/present.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.isPresent=f,t.ifPresent=h,t.toPresentOption=d,t.assertPresent=c,t.mapPresent=o;function f(e){return e.length>0}function h(e,r,s){return f(e)?r(e):s()}function d(e){return f(e)?e:null}function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unexpected empty list";if(!f(e))throw new Error(r)}function o(e,r){if(e===null)return null;let s=[];for(let p of e)s.push(r(p));return s}}}),At=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/untouchable-this.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=d;var f=fe(),h=me();function d(c){let o=null;if(f.DEBUG&&h.HAS_NATIVE_PROXY){let e=r=>{throw new Error("You accessed `this.".concat(String(r),"` from a function passed to the ").concat(c,", but the function itself was not bound to a valid `this` context. Consider updating to use a bound function (for instance, use an arrow function, `() => {}`)."))};o=new Proxy({},{get(r,s){e(s)},set(r,s){return e(s),!1},has(r,s){return e(s),!1}})}return o}}}),Et=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-to-string.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var f=fe(),h;if(f.DEBUG){let c=r=>{let s=r.name;if(s===void 0){let p=Function.prototype.toString.call(r).match(/function (\w+)\s*\(/);s=p&&p[1]||""}return s.replace(/^bound /,"")},o=r=>{let s,p;return r.constructor&&typeof r.constructor=="function"&&(p=c(r.constructor)),"toString"in r&&r.toString!==Object.prototype.toString&&r.toString!==Function.prototype.toString&&(s=r.toString()),s&&s.match(/<.*:ember\d+>/)&&p&&p[0]!=="_"&&p.length>2&&p!=="Class"?s.replace(/<.*:/,"<".concat(p,":")):s||p},e=r=>String(r);h=r=>typeof r=="function"?c(r)||"(unknown function)":typeof r=="object"&&r!==null?o(r)||"(unknown object)":e(r)}var d=h;t.default=d}}),_t=I({"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-steps.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.logStep=t.verifySteps=t.endTestSteps=t.beginTestSteps=void 0;var f=d(Pe()),h=me();function d(s){return s&&s.__esModule?s:{default:s}}var c;t.beginTestSteps=c;var o;t.endTestSteps=o;var e;t.verifySteps=e;var r;t.logStep=r}}),X=I({"node_modules/@glimmer/util/dist/commonjs/es2017/index.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0});var f={LOCAL_LOGGER:!0,LOGGER:!0,assertNever:!0,assert:!0,deprecate:!0,dict:!0,isDict:!0,isObject:!0,Stack:!0,isSerializationFirstNode:!0,SERIALIZATION_FIRST_NODE_STRING:!0,assign:!0,fillNulls:!0,values:!0,_WeakSet:!0,castToSimple:!0,castToBrowser:!0,checkNode:!0,intern:!0,buildUntouchableThis:!0,debugToString:!0,beginTestSteps:!0,endTestSteps:!0,logStep:!0,verifySteps:!0};t.assertNever=x,Object.defineProperty(t,"assert",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"deprecate",{enumerable:!0,get:function(){return d.deprecate}}),Object.defineProperty(t,"dict",{enumerable:!0,get:function(){return c.dict}}),Object.defineProperty(t,"isDict",{enumerable:!0,get:function(){return c.isDict}}),Object.defineProperty(t,"isObject",{enumerable:!0,get:function(){return c.isObject}}),Object.defineProperty(t,"Stack",{enumerable:!0,get:function(){return c.StackImpl}}),Object.defineProperty(t,"isSerializationFirstNode",{enumerable:!0,get:function(){return e.isSerializationFirstNode}}),Object.defineProperty(t,"SERIALIZATION_FIRST_NODE_STRING",{enumerable:!0,get:function(){return e.SERIALIZATION_FIRST_NODE_STRING}}),Object.defineProperty(t,"assign",{enumerable:!0,get:function(){return r.assign}}),Object.defineProperty(t,"fillNulls",{enumerable:!0,get:function(){return r.fillNulls}}),Object.defineProperty(t,"values",{enumerable:!0,get:function(){return r.values}}),Object.defineProperty(t,"_WeakSet",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"castToSimple",{enumerable:!0,get:function(){return i.castToSimple}}),Object.defineProperty(t,"castToBrowser",{enumerable:!0,get:function(){return i.castToBrowser}}),Object.defineProperty(t,"checkNode",{enumerable:!0,get:function(){return i.checkNode}}),Object.defineProperty(t,"intern",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(t,"buildUntouchableThis",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,"debugToString",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(t,"beginTestSteps",{enumerable:!0,get:function(){return v.beginTestSteps}}),Object.defineProperty(t,"endTestSteps",{enumerable:!0,get:function(){return v.endTestSteps}}),Object.defineProperty(t,"logStep",{enumerable:!0,get:function(){return v.logStep}}),Object.defineProperty(t,"verifySteps",{enumerable:!0,get:function(){return v.verifySteps}}),t.LOGGER=t.LOCAL_LOGGER=void 0;var h=lt();Object.keys(h).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return h[w]}})});var d=g(Pe()),c=ct(),o=ht();Object.keys(o).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return o[w]}})});var e=dt(),r=pt(),s=me();Object.keys(s).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return s[w]}})});var p=ft();Object.keys(p).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return p[w]}})});var n=mt();Object.keys(n).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return n[w]}})});var a=gt();Object.keys(a).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return a[w]}})});var u=_(bt()),i=vt(),l=yt();Object.keys(l).forEach(function(w){w==="default"||w==="__esModule"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return l[w]}})});var b=_(je()),P=_(At()),E=_(Et()),v=_t();function _(w){return w&&w.__esModule?w:{default:w}}function y(){if(typeof WeakMap!="function")return null;var w=new WeakMap;return y=function(){return w},w}function g(w){if(w&&w.__esModule)return w;if(w===null||typeof w!="object"&&typeof w!="function")return{default:w};var H=y();if(H&&H.has(w))return H.get(w);var m={},C=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var S in w)if(Object.prototype.hasOwnProperty.call(w,S)){var R=C?Object.getOwnPropertyDescriptor(w,S):null;R&&(R.get||R.set)?Object.defineProperty(m,S,R):m[S]=w[S]}return m.default=w,H&&H.set(w,m),m}var L=console;t.LOCAL_LOGGER=L;var j=console;t.LOGGER=j;function x(w){let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unexpected unreachable branch";throw j.log("unreachable",w),j.log("".concat(H," :: ").concat(JSON.stringify(w)," (").concat(w,")")),new Error("code reached unreachable")}}}),ge=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/location.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.isLocatedWithPositionsArray=s,t.isLocatedWithPositions=p,t.BROKEN_LOCATION=t.NON_EXISTENT_LOCATION=t.TEMPORARY_LOCATION=t.SYNTHETIC=t.SYNTHETIC_LOCATION=t.UNKNOWN_POSITION=void 0;var f=X(),h=Object.freeze({line:1,column:0});t.UNKNOWN_POSITION=h;var d=Object.freeze({source:"(synthetic)",start:h,end:h});t.SYNTHETIC_LOCATION=d;var c=d;t.SYNTHETIC=c;var o=Object.freeze({source:"(temporary)",start:h,end:h});t.TEMPORARY_LOCATION=o;var e=Object.freeze({source:"(nonexistent)",start:h,end:h});t.NON_EXISTENT_LOCATION=e;var r=Object.freeze({source:"(broken)",start:h,end:h});t.BROKEN_LOCATION=r;function s(n){return(0,f.isPresent)(n)&&n.every(p)}function p(n){return n.loc!==void 0}}}),le=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/slice.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.SourceSlice=void 0;var f=ue(),h=class{constructor(d){this.loc=d.loc,this.chars=d.chars}static synthetic(d){let c=f.SourceSpan.synthetic(d);return new h({loc:c,chars:d})}static load(d,c){return new h({loc:f.SourceSpan.load(d,c[1]),chars:c[0]})}getString(){return this.chars}serialize(){return[this.chars,this.loc.serialize()]}};t.SourceSlice=h}}),Me=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/match.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.match=e,t.IsInvisible=t.MatchAny=void 0;var f=X(),h="MATCH_ANY";t.MatchAny=h;var d="IS_INVISIBLE";t.IsInvisible=d;var c=class{constructor(p){this._whens=p}first(p){for(let n of this._whens){let a=n.match(p);if((0,f.isPresent)(a))return a[0]}return null}},o=class{constructor(){this._map=new Map}get(p,n){let a=this._map.get(p);return a||(a=n(),this._map.set(p,a),a)}add(p,n){this._map.set(p,n)}match(p){let n=s(p),a=[],u=this._map.get(n),i=this._map.get(h);return u&&a.push(u),i&&a.push(i),a}};function e(p){return p(new r).check()}var r=class{constructor(){this._whens=new o}check(){return(p,n)=>this.matchFor(p.kind,n.kind)(p,n)}matchFor(p,n){let a=this._whens.match(p);return new c(a).first(n)}when(p,n,a){return this._whens.get(p,()=>new o).add(n,a),this}};function s(p){switch(p){case"Broken":case"InternalsSynthetic":case"NonExistent":return d;default:return p}}}}),He=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/offset.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.InvisiblePosition=t.HbsPosition=t.CharPosition=t.SourceOffset=t.BROKEN=void 0;var f=ge(),h=Me(),d=Ve(),c="BROKEN";t.BROKEN=c;var o=class{constructor(n){this.data=n}static forHbsPos(n,a){return new r(n,a,null).wrap()}static broken(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f.UNKNOWN_POSITION;return new s("Broken",n).wrap()}get offset(){let n=this.data.toCharPos();return n===null?null:n.offset}eql(n){return p(this.data,n.data)}until(n){return(0,d.span)(this.data,n.data)}move(n){let a=this.data.toCharPos();if(a===null)return o.broken();{let u=a.offset+n;return a.source.check(u)?new e(a.source,u).wrap():o.broken()}}collapsed(){return(0,d.span)(this.data,this.data)}toJSON(){return this.data.toJSON()}};t.SourceOffset=o;var e=class{constructor(n,a){this.source=n,this.charPos=a,this.kind="CharPosition",this._locPos=null}toCharPos(){return this}toJSON(){let n=this.toHbsPos();return n===null?f.UNKNOWN_POSITION:n.toJSON()}wrap(){return new o(this)}get offset(){return this.charPos}toHbsPos(){let n=this._locPos;if(n===null){let a=this.source.hbsPosFor(this.charPos);a===null?this._locPos=n=c:this._locPos=n=new r(this.source,a,this.charPos)}return n===c?null:n}};t.CharPosition=e;var r=class{constructor(n,a){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=n,this.hbsPos=a,this.kind="HbsPosition",this._charPos=u===null?null:new e(n,u)}toCharPos(){let n=this._charPos;if(n===null){let a=this.source.charPosFor(this.hbsPos);a===null?this._charPos=n=c:this._charPos=n=new e(this.source,a)}return n===c?null:n}toJSON(){return this.hbsPos}wrap(){return new o(this)}toHbsPos(){return this}};t.HbsPosition=r;var s=class{constructor(n,a){this.kind=n,this.pos=a}toCharPos(){return null}toJSON(){return this.pos}wrap(){return new o(this)}get offset(){return null}};t.InvisiblePosition=s;var p=(0,h.match)(n=>n.when("HbsPosition","HbsPosition",(a,u)=>{let{hbsPos:i}=a,{hbsPos:l}=u;return i.column===l.column&&i.line===l.line}).when("CharPosition","CharPosition",(a,u)=>{let{charPos:i}=a,{charPos:l}=u;return i===l}).when("CharPosition","HbsPosition",(a,u)=>{let{offset:i}=a;var l;return i===((l=u.toCharPos())===null||l===void 0?void 0:l.offset)}).when("HbsPosition","CharPosition",(a,u)=>{let{offset:i}=u;var l;return((l=a.toCharPos())===null||l===void 0?void 0:l.offset)===i}).when(h.MatchAny,h.MatchAny,()=>!1))}}),Ve=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/span.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.span=t.HbsSpan=t.SourceSpan=void 0;var f=fe(),h=X(),d=ge(),c=le(),o=Me(),e=He(),r=class{constructor(u){this.data=u,this.isInvisible=u.kind!=="CharPosition"&&u.kind!=="HbsPosition"}static get NON_EXISTENT(){return new n("NonExistent",d.NON_EXISTENT_LOCATION).wrap()}static load(u,i){if(typeof i=="number")return r.forCharPositions(u,i,i);if(typeof i=="string")return r.synthetic(i);if(Array.isArray(i))return r.forCharPositions(u,i[0],i[1]);if(i==="NonExistent")return r.NON_EXISTENT;if(i==="Broken")return r.broken(d.BROKEN_LOCATION);(0,h.assertNever)(i)}static forHbsLoc(u,i){let l=new e.HbsPosition(u,i.start),b=new e.HbsPosition(u,i.end);return new p(u,{start:l,end:b},i).wrap()}static forCharPositions(u,i,l){let b=new e.CharPosition(u,i),P=new e.CharPosition(u,l);return new s(u,{start:b,end:P}).wrap()}static synthetic(u){return new n("InternalsSynthetic",d.NON_EXISTENT_LOCATION,u).wrap()}static broken(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d.BROKEN_LOCATION;return new n("Broken",u).wrap()}getStart(){return this.data.getStart().wrap()}getEnd(){return this.data.getEnd().wrap()}get loc(){let u=this.data.toHbsSpan();return u===null?d.BROKEN_LOCATION:u.toHbsLoc()}get module(){return this.data.getModule()}get startPosition(){return this.loc.start}get endPosition(){return this.loc.end}toJSON(){return this.loc}withStart(u){return a(u.data,this.data.getEnd())}withEnd(u){return a(this.data.getStart(),u.data)}asString(){return this.data.asString()}toSlice(u){let i=this.data.asString();return f.DEBUG&&u!==void 0&&i!==u&&console.warn("unexpectedly found ".concat(JSON.stringify(i)," when slicing source, but expected ").concat(JSON.stringify(u))),new c.SourceSlice({loc:this,chars:u||i})}get start(){return this.loc.start}set start(u){this.data.locDidUpdate({start:u})}get end(){return this.loc.end}set end(u){this.data.locDidUpdate({end:u})}get source(){return this.module}collapse(u){switch(u){case"start":return this.getStart().collapsed();case"end":return this.getEnd().collapsed()}}extend(u){return a(this.data.getStart(),u.data.getEnd())}serialize(){return this.data.serialize()}slice(u){let{skipStart:i=0,skipEnd:l=0}=u;return a(this.getStart().move(i).data,this.getEnd().move(-l).data)}sliceStartChars(u){let{skipStart:i=0,chars:l}=u;return a(this.getStart().move(i).data,this.getStart().move(i+l).data)}sliceEndChars(u){let{skipEnd:i=0,chars:l}=u;return a(this.getEnd().move(i-l).data,this.getStart().move(-i).data)}};t.SourceSpan=r;var s=class{constructor(u,i){this.source=u,this.charPositions=i,this.kind="CharPosition",this._locPosSpan=null}wrap(){return new r(this)}asString(){return this.source.slice(this.charPositions.start.charPos,this.charPositions.end.charPos)}getModule(){return this.source.module}getStart(){return this.charPositions.start}getEnd(){return this.charPositions.end}locDidUpdate(){}toHbsSpan(){let u=this._locPosSpan;if(u===null){let i=this.charPositions.start.toHbsPos(),l=this.charPositions.end.toHbsPos();i===null||l===null?u=this._locPosSpan=e.BROKEN:u=this._locPosSpan=new p(this.source,{start:i,end:l})}return u===e.BROKEN?null:u}serialize(){let{start:{charPos:u},end:{charPos:i}}=this.charPositions;return u===i?u:[u,i]}toCharPosSpan(){return this}},p=class{constructor(u,i){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=u,this.hbsPositions=i,this.kind="HbsPosition",this._charPosSpan=null,this._providedHbsLoc=l}serialize(){let u=this.toCharPosSpan();return u===null?"Broken":u.wrap().serialize()}wrap(){return new r(this)}updateProvided(u,i){this._providedHbsLoc&&(this._providedHbsLoc[i]=u),this._charPosSpan=null,this._providedHbsLoc={start:u,end:u}}locDidUpdate(u){let{start:i,end:l}=u;i!==void 0&&(this.updateProvided(i,"start"),this.hbsPositions.start=new e.HbsPosition(this.source,i,null)),l!==void 0&&(this.updateProvided(l,"end"),this.hbsPositions.end=new e.HbsPosition(this.source,l,null))}asString(){let u=this.toCharPosSpan();return u===null?"":u.asString()}getModule(){return this.source.module}getStart(){return this.hbsPositions.start}getEnd(){return this.hbsPositions.end}toHbsLoc(){return{start:this.hbsPositions.start.hbsPos,end:this.hbsPositions.end.hbsPos}}toHbsSpan(){return this}toCharPosSpan(){let u=this._charPosSpan;if(u===null){let i=this.hbsPositions.start.toCharPos(),l=this.hbsPositions.end.toCharPos();if(i&&l)u=this._charPosSpan=new s(this.source,{start:i,end:l});else return u=this._charPosSpan=e.BROKEN,null}return u===e.BROKEN?null:u}};t.HbsSpan=p;var n=class{constructor(u,i){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.kind=u,this.loc=i,this.string=l}serialize(){switch(this.kind){case"Broken":case"NonExistent":return this.kind;case"InternalsSynthetic":return this.string||""}}wrap(){return new r(this)}asString(){return this.string||""}locDidUpdate(u){let{start:i,end:l}=u;i!==void 0&&(this.loc.start=i),l!==void 0&&(this.loc.end=l)}getModule(){return"an unknown module"}getStart(){return new e.InvisiblePosition(this.kind,this.loc.start)}getEnd(){return new e.InvisiblePosition(this.kind,this.loc.end)}toCharPosSpan(){return this}toHbsSpan(){return null}toHbsLoc(){return d.BROKEN_LOCATION}},a=(0,o.match)(u=>u.when("HbsPosition","HbsPosition",(i,l)=>new p(i.source,{start:i,end:l}).wrap()).when("CharPosition","CharPosition",(i,l)=>new s(i.source,{start:i,end:l}).wrap()).when("CharPosition","HbsPosition",(i,l)=>{let b=l.toCharPos();return b===null?new n("Broken",d.BROKEN_LOCATION).wrap():a(i,b)}).when("HbsPosition","CharPosition",(i,l)=>{let b=i.toCharPos();return b===null?new n("Broken",d.BROKEN_LOCATION).wrap():a(b,l)}).when(o.IsInvisible,o.MatchAny,i=>new n(i.kind,d.BROKEN_LOCATION).wrap()).when(o.MatchAny,o.IsInvisible,(i,l)=>new n(l.kind,d.BROKEN_LOCATION).wrap()));t.span=a}}),ue=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"SourceSpan",{enumerable:!0,get:function(){return f.SourceSpan}}),Object.defineProperty(t,"SourceOffset",{enumerable:!0,get:function(){return h.SourceOffset}});var f=Ve(),h=He()}}),De=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/source.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.Source=void 0;var f=fe(),h=X(),d=ue(),c=class{constructor(o){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"an unknown module";this.source=o,this.module=e}check(o){return o>=0&&o<=this.source.length}slice(o,e){return this.source.slice(o,e)}offsetFor(o,e){return d.SourceOffset.forHbsPos(this,{line:o,column:e})}spanFor(o){let{start:e,end:r}=o;return d.SourceSpan.forHbsLoc(this,{start:{line:e.line,column:e.column},end:{line:r.line,column:r.column}})}hbsPosFor(o){let e=0,r=0;if(o>this.source.length)return null;for(;;){let s=this.source.indexOf(` +`,r);if(o<=s||s===-1)return{line:e+1,column:o-r};e+=1,r=s+1}}charPosFor(o){let{line:e,column:r}=o,p=this.source.length,n=0,a=0;for(;;){if(a>=p)return p;let u=this.source.indexOf(` +`,a);if(u===-1&&(u=this.source.length),n===e-1){if(a+r>u)return u;if(f.DEBUG){let i=this.hbsPosFor(a+r)}return a+r}else{if(u===-1)return 0;n+=1,a=u+1}}}};t.Source=c}}),we=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/legacy-interop.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.PathExpressionImplV1=void 0;var f=h(ke());function h(c){return c&&c.__esModule?c:{default:c}}var d=class{constructor(c,o,e,r){this.original=c,this.loc=r,this.type="PathExpression",this.this=!1,this.data=!1,this._head=void 0;let s=e.slice();o.type==="ThisHead"?this.this=!0:o.type==="AtHead"?(this.data=!0,s.unshift(o.name.slice(1))):s.unshift(o.name),this.parts=s}get head(){if(this._head)return this._head;let c;this.this?c="this":this.data?c="@".concat(this.parts[0]):c=this.parts[0];let o=this.loc.collapse("start").sliceStartChars({chars:c.length}).loc;return this._head=f.default.head(c,o)}get tail(){return this.this?this.parts:this.parts.slice(1)}};t.PathExpressionImplV1=d}}),ke=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/public-builders.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var f=X(),h=ge(),d=De(),c=ue(),o=we(),e;function r(){return e||(e=new d.Source("","(synthetic)")),e}function s(T,N,k,B,O,q){return typeof T=="string"&&(T=m(T)),{type:"MustacheStatement",path:T,params:N||[],hash:k||S([]),escaped:!B,trusting:!!B,loc:U(O||null),strip:q||{open:!1,close:!1}}}function p(T,N,k,B,O,q,z,A,Q){let D,$;return B.type==="Template"?D=(0,f.assign)({},B,{type:"Block"}):D=B,O!=null&&O.type==="Template"?$=(0,f.assign)({},O,{type:"Block"}):$=O,{type:"BlockStatement",path:m(T),params:N||[],hash:k||S([]),program:D||null,inverse:$||null,loc:U(q||null),openStrip:z||{open:!1,close:!1},inverseStrip:A||{open:!1,close:!1},closeStrip:Q||{open:!1,close:!1}}}function n(T,N,k,B){return{type:"ElementModifierStatement",path:m(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function a(T,N,k,B,O){return{type:"PartialStatement",name:T,params:N||[],hash:k||S([]),indent:B||"",strip:{open:!1,close:!1},loc:U(O||null)}}function u(T,N){return{type:"CommentStatement",value:T,loc:U(N||null)}}function i(T,N){return{type:"MustacheCommentStatement",value:T,loc:U(N||null)}}function l(T,N){if(!(0,f.isPresent)(T))throw new Error("b.concat requires at least one part");return{type:"ConcatStatement",parts:T||[],loc:U(N||null)}}function b(T){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{attrs:k,blockParams:B,modifiers:O,comments:q,children:z,loc:A}=N,Q,D=!1;return typeof T=="object"?(D=T.selfClosing,Q=T.name):T.slice(-1)==="/"?(Q=T.slice(0,-1),D=!0):Q=T,{type:"ElementNode",tag:Q,selfClosing:D,attributes:k||[],blockParams:B||[],modifiers:O||[],comments:q||[],children:z||[],loc:U(A||null)}}function P(T,N,k){return{type:"AttrNode",name:T,value:N,loc:U(k||null)}}function E(T,N){return{type:"TextNode",chars:T||"",loc:U(N||null)}}function v(T,N,k,B){return{type:"SubExpression",path:m(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function _(T){switch(T.type){case"AtHead":return{original:T.name,parts:[T.name]};case"ThisHead":return{original:"this",parts:[]};case"VarHead":return{original:T.name,parts:[T.name]}}}function y(T,N){let[k,...B]=T.split("."),O;return k==="this"?O={type:"ThisHead",loc:U(N||null)}:k[0]==="@"?O={type:"AtHead",name:k,loc:U(N||null)}:O={type:"VarHead",name:k,loc:U(N||null)},{head:O,tail:B}}function g(T){return{type:"ThisHead",loc:U(T||null)}}function L(T,N){return{type:"AtHead",name:T,loc:U(N||null)}}function j(T,N){return{type:"VarHead",name:T,loc:U(N||null)}}function x(T,N){return T[0]==="@"?L(T,N):T==="this"?g(N):j(T,N)}function w(T,N){return{type:"NamedBlockName",name:T,loc:U(N||null)}}function H(T,N,k){let{original:B,parts:O}=_(T),q=[...O,...N],z=[...B,...q].join(".");return new o.PathExpressionImplV1(z,T,N,U(k||null))}function m(T,N){if(typeof T!="string"){if("type"in T)return T;{let{head:O,tail:q}=y(T.head,c.SourceSpan.broken()),{original:z}=_(O);return new o.PathExpressionImplV1([z,...q].join("."),O,q,U(N||null))}}let{head:k,tail:B}=y(T,c.SourceSpan.broken());return new o.PathExpressionImplV1(T,k,B,U(N||null))}function C(T,N,k){return{type:T,value:N,original:N,loc:U(k||null)}}function S(T,N){return{type:"Hash",pairs:T||[],loc:U(N||null)}}function R(T,N,k){return{type:"HashPair",key:T,value:N,loc:U(k||null)}}function M(T,N,k){return{type:"Template",body:T||[],blockParams:N||[],loc:U(k||null)}}function V(T,N){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,B=arguments.length>3?arguments[3]:void 0;return{type:"Block",body:T||[],blockParams:N||[],chained:k,loc:U(B||null)}}function G(T,N,k){return{type:"Template",body:T||[],blockParams:N||[],loc:U(k||null)}}function K(T,N){return{line:T,column:N}}function U(){for(var T=arguments.length,N=new Array(T),k=0;k1&&arguments[1]!==void 0?arguments[1]:!1;this.ambiguity=e,this.isAngleBracket=r}static namespaced(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return new d({namespaces:[e],fallback:!1},r)}static fallback(){return new d({namespaces:[],fallback:!0})}static append(e){let{invoke:r}=e;return new d({namespaces:["Component","Helper"],fallback:!r})}static trustingAppend(e){let{invoke:r}=e;return new d({namespaces:["Helper"],fallback:!r})}static attr(){return new d({namespaces:["Helper"],fallback:!0})}resolution(){if(this.ambiguity.namespaces.length===0)return 31;if(this.ambiguity.namespaces.length===1){if(this.ambiguity.fallback)return 36;switch(this.ambiguity.namespaces[0]){case"Helper":return 37;case"Modifier":return 38;case"Component":return 39}}else return this.ambiguity.fallback?34:35}serialize(){return this.ambiguity.namespaces.length===0?"Loose":this.ambiguity.namespaces.length===1?this.ambiguity.fallback?["ambiguous","Attr"]:["ns",this.ambiguity.namespaces[0]]:this.ambiguity.fallback?["ambiguous","Append"]:["ambiguous","Invoke"]}};t.LooseModeResolution=d;var c=d.fallback();t.ARGUMENT_RESOLUTION=c;function o(e){if(typeof e=="string")switch(e){case"Loose":return d.fallback();case"Strict":return h}switch(e[0]){case"ambiguous":switch(e[1]){case"Append":return d.append({invoke:!1});case"Attr":return d.attr();case"Invoke":return d.append({invoke:!0})}case"ns":return d.namespaced(e[1])}}}}),ne=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/node.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.node=h;var f=X();function h(d){if(d!==void 0){let c=d;return{fields(){return class{constructor(o){this.type=c,(0,f.assign)(this,o)}}}}}else return{fields(){return class{constructor(c){(0,f.assign)(this,c)}}}}}}}),be=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/args.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.NamedArgument=t.NamedArguments=t.PositionalArguments=t.Args=void 0;var f=ne(),h=class extends(0,f.node)().fields(){static empty(e){return new h({loc:e,positional:d.empty(e),named:c.empty(e)})}static named(e){return new h({loc:e.loc,positional:d.empty(e.loc.collapse("end")),named:e})}nth(e){return this.positional.nth(e)}get(e){return this.named.get(e)}isEmpty(){return this.positional.isEmpty()&&this.named.isEmpty()}};t.Args=h;var d=class extends(0,f.node)().fields(){static empty(e){return new d({loc:e,exprs:[]})}get size(){return this.exprs.length}nth(e){return this.exprs[e]||null}isEmpty(){return this.exprs.length===0}};t.PositionalArguments=d;var c=class extends(0,f.node)().fields(){static empty(e){return new c({loc:e,entries:[]})}get size(){return this.entries.length}get(e){let r=this.entries.filter(s=>s.name.chars===e)[0];return r?r.value:null}isEmpty(){return this.entries.length===0}};t.NamedArguments=c;var o=class{constructor(e){this.loc=e.name.loc.extend(e.value.loc),this.name=e.name,this.value=e.value}};t.NamedArgument=o}}),Dt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/attr-block.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.ElementModifier=t.ComponentArg=t.SplatAttr=t.HtmlAttr=void 0;var f=be(),h=ne(),d=class extends(0,h.node)("HtmlAttr").fields(){};t.HtmlAttr=d;var c=class extends(0,h.node)("SplatAttr").fields(){};t.SplatAttr=c;var o=class extends(0,h.node)().fields(){toNamedArgument(){return new f.NamedArgument({name:this.name,value:this.value})}};t.ComponentArg=o;var e=class extends(0,h.node)("ElementModifier").fields(){};t.ElementModifier=e}}),wt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/base.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0})}}),ce=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span-list.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.loc=d,t.hasSpan=c,t.maybeLoc=o,t.SpanList=void 0;var f=ue(),h=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this._span=e}static range(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:f.SourceSpan.NON_EXISTENT;return new h(e.map(d)).getRangeOffset(r)}add(e){this._span.push(e)}getRangeOffset(e){if(this._span.length===0)return e;{let r=this._span[0],s=this._span[this._span.length-1];return r.extend(s)}}};t.SpanList=h;function d(e){if(Array.isArray(e)){let r=e[0],s=e[e.length-1];return d(r).extend(d(s))}else return e instanceof f.SourceSpan?e:e.loc}function c(e){return!(Array.isArray(e)&&e.length===0)}function o(e,r){return c(e)?d(e):r}}}),kt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/content.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleElement=t.InvokeComponent=t.InvokeBlock=t.AppendContent=t.HtmlComment=t.HtmlText=t.GlimmerComment=void 0;var f=ce(),h=be(),d=ne(),c=class extends(0,d.node)("GlimmerComment").fields(){};t.GlimmerComment=c;var o=class extends(0,d.node)("HtmlText").fields(){};t.HtmlText=o;var e=class extends(0,d.node)("HtmlComment").fields(){};t.HtmlComment=e;var r=class extends(0,d.node)("AppendContent").fields(){get callee(){return this.value.type==="Call"?this.value.callee:this.value}get args(){return this.value.type==="Call"?this.value.args:h.Args.empty(this.value.loc.collapse("end"))}};t.AppendContent=r;var s=class extends(0,d.node)("InvokeBlock").fields(){};t.InvokeBlock=s;var p=class extends(0,d.node)("InvokeComponent").fields(){get args(){let a=this.componentArgs.map(u=>u.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(a,this.callee.loc.collapse("end")),entries:a}))}};t.InvokeComponent=p;var n=class extends(0,d.node)("SimpleElement").fields(){get args(){let a=this.componentArgs.map(u=>u.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(a,this.tag.loc.collapse("end")),entries:a}))}};t.SimpleElement=n}}),Tt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/expr.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.isLiteral=c,t.InterpolateExpression=t.DeprecatedCallExpression=t.CallExpression=t.PathExpression=t.LiteralExpression=void 0;var f=le(),h=ne(),d=class extends(0,h.node)("Literal").fields(){toSlice(){return new f.SourceSlice({loc:this.loc,chars:this.value})}};t.LiteralExpression=d;function c(p,n){return p.type==="Literal"?n===void 0?!0:n==="null"?p.value===null:typeof p.value===n:!1}var o=class extends(0,h.node)("Path").fields(){};t.PathExpression=o;var e=class extends(0,h.node)("Call").fields(){};t.CallExpression=e;var r=class extends(0,h.node)("DeprecatedCall").fields(){};t.DeprecatedCallExpression=r;var s=class extends(0,h.node)("Interpolate").fields(){};t.InterpolateExpression=s}}),Bt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/refs.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.FreeVarReference=t.LocalVarReference=t.ArgReference=t.ThisReference=void 0;var f=ne(),h=class extends(0,f.node)("This").fields(){};t.ThisReference=h;var d=class extends(0,f.node)("Arg").fields(){};t.ArgReference=d;var c=class extends(0,f.node)("Local").fields(){};t.LocalVarReference=c;var o=class extends(0,f.node)("Free").fields(){};t.FreeVarReference=o}}),Ot=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/internal-node.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.NamedBlock=t.NamedBlocks=t.Block=t.Template=void 0;var f=ce(),h=be(),d=ne(),c=class extends(0,d.node)().fields(){};t.Template=c;var o=class extends(0,d.node)().fields(){};t.Block=o;var e=class extends(0,d.node)().fields(){get(s){return this.blocks.filter(p=>p.name.chars===s)[0]||null}};t.NamedBlocks=e;var r=class extends(0,d.node)().fields(){get args(){let s=this.componentArgs.map(p=>p.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(s,this.name.loc.collapse("end")),entries:s}))}};t.NamedBlock=r}}),ve=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/api.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0});var f=Pt();Object.keys(f).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return f[n]}})});var h=ne();Object.keys(h).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return h[n]}})});var d=be();Object.keys(d).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return d[n]}})});var c=Dt();Object.keys(c).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return c[n]}})});var o=wt();Object.keys(o).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return o[n]}})});var e=kt();Object.keys(e).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})});var r=Tt();Object.keys(r).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[n]}})});var s=Bt();Object.keys(s).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return s[n]}})});var p=Ot();Object.keys(p).forEach(function(n){n==="default"||n==="__esModule"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return p[n]}})})}}),Ue=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/generation/util.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.escapeAttrValue=r,t.escapeText=s,t.sortByLoc=p;var f=/[\xA0"&]/,h=new RegExp(f.source,"g"),d=/[\xA0&<>]/,c=new RegExp(d.source,"g");function o(n){switch(n.charCodeAt(0)){case 160:return" ";case 34:return""";case 38:return"&";default:return n}}function e(n){switch(n.charCodeAt(0)){case 160:return" ";case 38:return"&";case 60:return"<";case 62:return">";default:return n}}function r(n){return f.test(n)?n.replace(h,o):n}function s(n){return d.test(n)?n.replace(c,e):n}function p(n,a){return n.loc.isInvisible||a.loc.isInvisible?0:n.loc.startPosition.line{h[e]=!0});var c=/\S/,o=class{constructor(e){this.buffer="",this.options=e}handledByOverride(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.options.override!==void 0){let s=this.options.override(e,this.options);if(typeof s=="string")return r&&s!==""&&c.test(s[0])&&(s=" ".concat(s)),this.buffer+=s,!0}return!1}Node(e){switch(e.type){case"MustacheStatement":case"BlockStatement":case"PartialStatement":case"MustacheCommentStatement":case"CommentStatement":case"TextNode":case"ElementNode":case"AttrNode":case"Block":case"Template":return this.TopLevelStatement(e);case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":case"PathExpression":case"SubExpression":return this.Expression(e);case"Program":return this.Block(e);case"ConcatStatement":return this.ConcatStatement(e);case"Hash":return this.Hash(e);case"HashPair":return this.HashPair(e);case"ElementModifierStatement":return this.ElementModifierStatement(e)}}Expression(e){switch(e.type){case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":return this.Literal(e);case"PathExpression":return this.PathExpression(e);case"SubExpression":return this.SubExpression(e)}}Literal(e){switch(e.type){case"StringLiteral":return this.StringLiteral(e);case"BooleanLiteral":return this.BooleanLiteral(e);case"NumberLiteral":return this.NumberLiteral(e);case"UndefinedLiteral":return this.UndefinedLiteral(e);case"NullLiteral":return this.NullLiteral(e)}}TopLevelStatement(e){switch(e.type){case"MustacheStatement":return this.MustacheStatement(e);case"BlockStatement":return this.BlockStatement(e);case"PartialStatement":return this.PartialStatement(e);case"MustacheCommentStatement":return this.MustacheCommentStatement(e);case"CommentStatement":return this.CommentStatement(e);case"TextNode":return this.TextNode(e);case"ElementNode":return this.ElementNode(e);case"Block":case"Template":return this.Block(e);case"AttrNode":return this.AttrNode(e)}}Block(e){if(e.chained){let r=e.body[0];r.chained=!0}this.handledByOverride(e)||this.TopLevelStatements(e.body)}TopLevelStatements(e){e.forEach(r=>this.TopLevelStatement(r))}ElementNode(e){this.handledByOverride(e)||(this.OpenElementNode(e),this.TopLevelStatements(e.children),this.CloseElementNode(e))}OpenElementNode(e){this.buffer+="<".concat(e.tag);let r=[...e.attributes,...e.modifiers,...e.comments].sort(f.sortByLoc);for(let s of r)switch(this.buffer+=" ",s.type){case"AttrNode":this.AttrNode(s);break;case"ElementModifierStatement":this.ElementModifierStatement(s);break;case"MustacheCommentStatement":this.MustacheCommentStatement(s);break}e.blockParams.length&&this.BlockParams(e.blockParams),e.selfClosing&&(this.buffer+=" /"),this.buffer+=">"}CloseElementNode(e){e.selfClosing||h[e.tag.toLowerCase()]||(this.buffer+=""))}AttrNode(e){if(this.handledByOverride(e))return;let{name:r,value:s}=e;this.buffer+=r,(s.type!=="TextNode"||s.chars.length>0)&&(this.buffer+="=",this.AttrNodeValue(s))}AttrNodeValue(e){e.type==="TextNode"?(this.buffer+='"',this.TextNode(e,!0),this.buffer+='"'):this.Node(e)}TextNode(e,r){this.handledByOverride(e)||(this.options.entityEncoding==="raw"?this.buffer+=e.chars:r?this.buffer+=(0,f.escapeAttrValue)(e.chars):this.buffer+=(0,f.escapeText)(e.chars))}MustacheStatement(e){this.handledByOverride(e)||(this.buffer+=e.escaped?"{{":"{{{",e.strip.open&&(this.buffer+="~"),this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.strip.close&&(this.buffer+="~"),this.buffer+=e.escaped?"}}":"}}}")}BlockStatement(e){this.handledByOverride(e)||(e.chained?(this.buffer+=e.inverseStrip.open?"{{~":"{{",this.buffer+="else "):this.buffer+=e.openStrip.open?"{{~#":"{{#",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.program.blockParams.length&&this.BlockParams(e.program.blockParams),e.chained?this.buffer+=e.inverseStrip.close?"~}}":"}}":this.buffer+=e.openStrip.close?"~}}":"}}",this.Block(e.program),e.inverse&&(e.inverse.chained||(this.buffer+=e.inverseStrip.open?"{{~":"{{",this.buffer+="else",this.buffer+=e.inverseStrip.close?"~}}":"}}"),this.Block(e.inverse)),e.chained||(this.buffer+=e.closeStrip.open?"{{~/":"{{/",this.Expression(e.path),this.buffer+=e.closeStrip.close?"~}}":"}}"))}BlockParams(e){this.buffer+=" as |".concat(e.join(" "),"|")}PartialStatement(e){this.handledByOverride(e)||(this.buffer+="{{>",this.Expression(e.name),this.Params(e.params),this.Hash(e.hash),this.buffer+="}}")}ConcatStatement(e){this.handledByOverride(e)||(this.buffer+='"',e.parts.forEach(r=>{r.type==="TextNode"?this.TextNode(r,!0):this.Node(r)}),this.buffer+='"')}MustacheCommentStatement(e){this.handledByOverride(e)||(this.buffer+="{{!--".concat(e.value,"--}}"))}ElementModifierStatement(e){this.handledByOverride(e)||(this.buffer+="{{",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+="}}")}CommentStatement(e){this.handledByOverride(e)||(this.buffer+=""))}PathExpression(e){this.handledByOverride(e)||(this.buffer+=e.original)}SubExpression(e){this.handledByOverride(e)||(this.buffer+="(",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+=")")}Params(e){e.length&&e.forEach(r=>{this.buffer+=" ",this.Expression(r)})}Hash(e){this.handledByOverride(e,!0)||e.pairs.forEach(r=>{this.buffer+=" ",this.HashPair(r)})}HashPair(e){this.handledByOverride(e)||(this.buffer+=e.key,this.buffer+="=",this.Node(e.value))}StringLiteral(e){this.handledByOverride(e)||(this.buffer+=JSON.stringify(e.value))}BooleanLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}NumberLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}UndefinedLiteral(e){this.handledByOverride(e)||(this.buffer+="undefined")}NullLiteral(e){this.handledByOverride(e)||(this.buffer+="null")}print(e){let{options:r}=this;if(r.override){let s=r.override(e,r);if(s!==void 0)return s}return this.buffer="",this.Node(e),this.buffer}};t.default=o}}),Be=I({"node_modules/@handlebars/parser/dist/cjs/exception.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0});var f=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function h(d,c){var o=c&&c.loc,e,r,s,p;o&&(e=o.start.line,r=o.end.line,s=o.start.column,p=o.end.column,d+=" - "+e+":"+s);for(var n=Error.prototype.constructor.call(this,d),a=0;a"u"&&(Y.yylloc={});var Ee=Y.yylloc;A.push(Ee);var rt=Y.options&&Y.options.ranges;typeof ie.yy.parseError=="function"?this.parseError=ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $t(te){O.length=O.length-2*te,z.length=z.length-te,A.length=A.length-te}e:var nt=function(){var te;return te=Y.lex()||Re,typeof te!="number"&&(te=B.symbols_[te]||te),te};for(var J,_e,ae,ee,er,Se,se={},de,re,qe,pe;;){if(ae=O[O.length-1],this.defaultActions[ae]?ee=this.defaultActions[ae]:((J===null||typeof J>"u")&&(J=nt()),ee=Q[ae]&&Q[ae][J]),typeof ee>"u"||!ee.length||!ee[0]){var Ce="";pe=[];for(de in Q[ae])this.terminals_[de]&&de>et&&pe.push("'"+this.terminals_[de]+"'");Y.showPosition?Ce="Parse error on line "+($+1)+`: +`+Y.showPosition()+` +Expecting `+pe.join(", ")+", got '"+(this.terminals_[J]||J)+"'":Ce="Parse error on line "+($+1)+": Unexpected "+(J==Re?"end of input":"'"+(this.terminals_[J]||J)+"'"),this.parseError(Ce,{text:Y.match,token:this.terminals_[J]||J,line:Y.yylineno,loc:Ee,expected:pe})}if(ee[0]instanceof Array&&ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ae+", token: "+J);switch(ee[0]){case 1:O.push(J),z.push(Y.yytext),A.push(Y.yylloc),O.push(ee[1]),J=null,_e?(J=_e,_e=null):(oe=Y.yyleng,D=Y.yytext,$=Y.yylineno,Ee=Y.yylloc,Ie>0&&Ie--);break;case 2:if(re=this.productions_[ee[1]][1],se.$=z[z.length-re],se._$={first_line:A[A.length-(re||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(re||1)].first_column,last_column:A[A.length-1].last_column},rt&&(se._$.range=[A[A.length-(re||1)].range[0],A[A.length-1].range[1]]),Se=this.performAction.apply(se,[D,oe,$,ie.yy,ee[1],z,A].concat(tt)),typeof Se<"u")return Se;re&&(O=O.slice(0,-1*re*2),z=z.slice(0,-1*re),A=A.slice(0,-1*re)),O.push(this.productions_[ee[1]][0]),z.push(se.$),A.push(se._$),qe=Q[O[O.length-2]][O[O.length-1]],O.push(qe);break;case 3:return!0}}return!0}},W=function(){var N={EOF:1,parseError:function(B,O){if(this.yy.parser)this.yy.parser.parseError(B,O);else throw new Error(B)},setInput:function(k,B){return this.yy=B||this.yy||{},this._input=k,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var k=this._input[0];this.yytext+=k,this.yyleng++,this.offset++,this.match+=k,this.matched+=k;var B=k.match(/(?:\r\n?|\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),k},unput:function(k){var B=k.length,O=k.split(/(?:\r\n?|\n)/g);this._input=k+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;var q=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),O.length-1&&(this.yylineno-=O.length-1);var z=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:O?(O.length===q.length?this.yylloc.first_column:0)+q[q.length-O.length].length-O[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[z[0],z[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(k){this.unput(this.match.slice(k))},pastInput:function(){var k=this.matched.substr(0,this.matched.length-this.match.length);return(k.length>20?"...":"")+k.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var k=this.match;return k.length<20&&(k+=this._input.substr(0,20-k.length)),(k.substr(0,20)+(k.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var k=this.pastInput(),B=new Array(k.length+1).join("-");return k+this.upcomingInput()+` +`+B+"^"},test_match:function(k,B){var O,q,z;if(this.options.backtrack_lexer&&(z={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(z.yylloc.range=this.yylloc.range.slice(0))),q=k[0].match(/(?:\r\n?|\n).*/g),q&&(this.yylineno+=q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:q?q[q.length-1].length-q[q.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+k[0].length},this.yytext+=k[0],this.match+=k[0],this.matches=k,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(k[0].length),this.matched+=k[0],O=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),O)return O;if(this._backtrack){for(var A in z)this[A]=z[A];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var k,B,O,q;this._more||(this.yytext="",this.match="");for(var z=this._currentRules(),A=0;AB[0].length)){if(B=O,q=A,this.options.backtrack_lexer){if(k=this.test_match(O,z[A]),k!==!1)return k;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(k=this.test_match(B,z[q]),k!==!1?k:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var B=this.next();return B||this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:"INITIAL"},pushState:function(B){this.begin(B)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(B,O,q,z){function A(D,$){return O.yytext=O.yytext.substring(D,O.yyleng-$+D)}var Q=z;switch(q){case 0:if(O.yytext.slice(-2)==="\\\\"?(A(0,1),this.begin("mu")):O.yytext.slice(-1)==="\\"?(A(0,1),this.begin("emu")):this.begin("mu"),O.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin("raw"),15;break;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(A(5,9),18);case 5:return 15;case 6:return this.popState(),14;break;case 7:return 64;case 8:return 67;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;break;case 11:return 56;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 52;case 20:return 48;case 21:this.unput(O.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 72;case 25:return 71;case 26:return 71;case 27:return 86;case 28:break;case 29:return this.popState(),55;break;case 30:return this.popState(),33;break;case 31:return O.yytext=A(1,2).replace(/\\"/g,'"'),79;break;case 32:return O.yytext=A(1,2).replace(/\\'/g,"'"),79;break;case 33:return 84;case 34:return 81;case 35:return 81;case 36:return 82;case 37:return 83;case 38:return 80;case 39:return 74;case 40:return 76;case 41:return 71;case 42:return O.yytext=O.yytext.replace(/\\([\\\]])/g,"$1"),71;break;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return N}();Z.lexer=W;function T(){this.yy={}}return T.prototype=Z,Z.Parser=T,new T}();t.default=f}}),Nt=I({"node_modules/@handlebars/parser/dist/cjs/printer.js"(t){"use strict";F();var f=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrintVisitor=t.print=void 0;var h=f(Oe());function d(o){return new c().accept(o)}t.print=d;function c(){this.padding=0}t.PrintVisitor=c,c.prototype=new h.default,c.prototype.pad=function(o){for(var e="",r=0,s=this.padding;r "+e+" }}")},c.prototype.PartialBlockStatement=function(o){var e="PARTIAL BLOCK:"+o.name.original;return o.params[0]&&(e+=" "+this.accept(o.params[0])),o.hash&&(e+=" "+this.accept(o.hash)),e+=" "+this.pad("PROGRAM:"),this.padding++,e+=this.accept(o.program),this.padding--,this.pad("{{> "+e+" }}")},c.prototype.ContentStatement=function(o){return this.pad("CONTENT[ '"+o.value+"' ]")},c.prototype.CommentStatement=function(o){return this.pad("{{! '"+o.value+"' }}")},c.prototype.SubExpression=function(o){for(var e=o.params,r=[],s,p=0,n=e.length;p0)throw new h.default("Invalid path: "+E,{loc:P});L===".."&&_++}else v.push(L)}return{type:"PathExpression",data:l,depth:_,parts:v,original:E,loc:P}}t.preparePath=s;function p(l,b,P,E,v,_){var y=E.charAt(3)||E.charAt(2),g=y!=="{"&&y!=="&",L=/\*/.test(E);return{type:L?"Decorator":"MustacheStatement",path:l,params:b,hash:P,escaped:g,strip:v,loc:this.locInfo(_)}}t.prepareMustache=p;function n(l,b,P,E){d(l,P),E=this.locInfo(E);var v={type:"Program",body:b,strip:{},loc:E};return{type:"BlockStatement",path:l.path,params:l.params,hash:l.hash,program:v,openStrip:{},inverseStrip:{},closeStrip:{},loc:E}}t.prepareRawBlock=n;function a(l,b,P,E,v,_){E&&E.path&&d(l,E);var y=/\*/.test(l.open);b.blockParams=l.blockParams;var g,L;if(P){if(y)throw new h.default("Unexpected inverse block on decorator",P);P.chain&&(P.program.body[0].closeStrip=E.strip),L=P.strip,g=P.program}return v&&(v=g,g=b,b=v),{type:y?"DecoratorBlock":"BlockStatement",path:l.path,params:l.params,hash:l.hash,program:b,inverse:g,openStrip:l.strip,inverseStrip:L,closeStrip:E&&E.strip,loc:this.locInfo(_)}}t.prepareBlock=a;function u(l,b){if(!b&&l.length){var P=l[0].loc,E=l[l.length-1].loc;P&&E&&(b={source:P.source,start:{line:P.start.line,column:P.start.column},end:{line:E.end.line,column:E.end.column}})}return{type:"Program",body:l,strip:{},loc:b}}t.prepareProgram=u;function i(l,b,P,E){return d(l,P),{type:"PartialBlockStatement",name:l.path,params:l.params,hash:l.hash,program:b,openStrip:l.strip,closeStrip:P&&P.strip,loc:this.locInfo(E)}}t.preparePartialBlock=i}}),Ft=I({"node_modules/@handlebars/parser/dist/cjs/parse.js"(t){"use strict";F();var f=t&&t.__createBinding||(Object.create?function(u,i,l,b){b===void 0&&(b=l),Object.defineProperty(u,b,{enumerable:!0,get:function(){return i[l]}})}:function(u,i,l,b){b===void 0&&(b=l),u[b]=i[l]}),h=t&&t.__setModuleDefault||(Object.create?function(u,i){Object.defineProperty(u,"default",{enumerable:!0,value:i})}:function(u,i){u.default=i}),d=t&&t.__importStar||function(u){if(u&&u.__esModule)return u;var i={};if(u!=null)for(var l in u)l!=="default"&&Object.prototype.hasOwnProperty.call(u,l)&&f(i,u,l);return h(i,u),i},c=t&&t.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.parse=t.parseWithoutProcessing=void 0;var o=c(Ge()),e=c(ze()),r=d(Lt()),s={};for(p in r)Object.prototype.hasOwnProperty.call(r,p)&&(s[p]=r[p]);var p;function n(u,i){if(u.type==="Program")return u;o.default.yy=s,o.default.yy.locInfo=function(b){return new r.SourceLocation(i&&i.srcName,b)};var l=o.default.parse(u);return l}t.parseWithoutProcessing=n;function a(u,i){var l=n(u,i),b=new e.default(i);return b.accept(l)}t.parse=a}}),It=I({"node_modules/@handlebars/parser/dist/cjs/index.js"(t){"use strict";F();var f=t&&t.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,"__esModule",{value:!0}),t.parseWithoutProcessing=t.parse=t.PrintVisitor=t.print=t.Exception=t.parser=t.WhitespaceControl=t.Visitor=void 0;var h=Oe();Object.defineProperty(t,"Visitor",{enumerable:!0,get:function(){return f(h).default}});var d=ze();Object.defineProperty(t,"WhitespaceControl",{enumerable:!0,get:function(){return f(d).default}});var c=Ge();Object.defineProperty(t,"parser",{enumerable:!0,get:function(){return f(c).default}});var o=Be();Object.defineProperty(t,"Exception",{enumerable:!0,get:function(){return f(o).default}});var e=Nt();Object.defineProperty(t,"print",{enumerable:!0,get:function(){return e.print}}),Object.defineProperty(t,"PrintVisitor",{enumerable:!0,get:function(){return e.PrintVisitor}});var r=Ft();Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return r.parse}}),Object.defineProperty(t,"parseWithoutProcessing",{enumerable:!0,get:function(){return r.parseWithoutProcessing}})}}),Ke=I({"node_modules/simple-html-tokenizer/dist/simple-html-tokenizer.js"(t,f){F(),function(h,d){typeof t=="object"&&typeof f<"u"?d(t):typeof define=="function"&&define.amd?define(["exports"],d):d(h.HTML5Tokenizer={})}(t,function(h){"use strict";var d={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"},c=/^#[xX]([A-Fa-f0-9]+)$/,o=/^#([0-9]+)$/,e=/^([A-Za-z0-9]+)$/,r=function(){function E(v){this.named=v}return E.prototype.parse=function(v){if(!!v){var _=v.match(c);if(_)return String.fromCharCode(parseInt(_[1],16));if(_=v.match(o),_)return String.fromCharCode(parseInt(_[1],10));if(_=v.match(e),_)return this.named[_[1]]}},E}(),s=/[\t\n\f ]/,p=/[A-Za-z]/,n=/\r\n?/g;function a(E){return s.test(E)}function u(E){return p.test(E)}function i(E){return E.replace(n,` +`)}var l=function(){function E(v,_,y){y===void 0&&(y="precompile"),this.delegate=v,this.entityParser=_,this.mode=y,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var g=this.peek();if(g==="<"&&!this.isIgnoredEndTag())this.transitionTo("tagOpen"),this.markTagStart(),this.consume();else{if(this.mode==="precompile"&&g===` +`){var L=this.tagNameBuffer.toLowerCase();(L==="pre"||L==="textarea")&&this.consume()}this.transitionTo("data"),this.delegate.beginData()}},data:function(){var g=this.peek(),L=this.tagNameBuffer;g==="<"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume()):g==="&"&&L!=="script"&&L!=="style"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(g))},tagOpen:function(){var g=this.consume();g==="!"?this.transitionTo("markupDeclarationOpen"):g==="/"?this.transitionTo("endTagOpen"):(g==="@"||g===":"||u(g))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(g))},markupDeclarationOpen:function(){var g=this.consume();if(g==="-"&&this.peek()==="-")this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment();else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();L==="DOCTYPE"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var g=this.consume();a(g)&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var g=this.consume();a(g)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase()))},doctypeName:function(){var g=this.consume();a(g)?this.transitionTo("afterDoctypeName"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase())},afterDoctypeName:function(){var g=this.consume();if(!a(g))if(g===">")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),j=L.toUpperCase()==="PUBLIC",x=L.toUpperCase()==="SYSTEM";(j||x)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),j?this.transitionTo("afterDoctypePublicKeyword"):x&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var g=this.peek();a(g)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):g==='"'?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):g==="'"?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):g===">"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var g=this.consume();g==='"'?this.transitionTo("afterDoctypePublicIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},doctypePublicIdentifierSingleQuoted:function(){var g=this.consume();g==="'"?this.transitionTo("afterDoctypePublicIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},afterDoctypePublicIdentifier:function(){var g=this.consume();a(g)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):g==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):g==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var g=this.consume();a(g)||(g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):g==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):g==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var g=this.consume();g==='"'?this.transitionTo("afterDoctypeSystemIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},doctypeSystemIdentifierSingleQuoted:function(){var g=this.consume();g==="'"?this.transitionTo("afterDoctypeSystemIdentifier"):g===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},afterDoctypeSystemIdentifier:function(){var g=this.consume();a(g)||g===">"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var g=this.consume();g==="-"?this.transitionTo("commentStartDash"):g===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(g),this.transitionTo("comment"))},commentStartDash:function(){var g=this.consume();g==="-"?this.transitionTo("commentEnd"):g===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var g=this.consume();g==="-"?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(g)},commentEndDash:function(){var g=this.consume();g==="-"?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+g),this.transitionTo("comment"))},commentEnd:function(){var g=this.consume();g===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+g),this.transitionTo("comment"))},tagName:function(){var g=this.consume();a(g)?this.transitionTo("beforeAttributeName"):g==="/"?this.transitionTo("selfClosingStartTag"):g===">"?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(g)},endTagName:function(){var g=this.consume();a(g)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):g==="/"?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):g===">"?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(g)},beforeAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g==="/"?(this.transitionTo("selfClosingStartTag"),this.consume()):g===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):g==="="?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var g=this.peek();a(g)?(this.transitionTo("afterAttributeName"),this.consume()):g==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):g==="="?(this.transitionTo("beforeAttributeValue"),this.consume()):g===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):g==='"'||g==="'"||g==="<"?(this.delegate.reportSyntaxError(g+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(g)):(this.consume(),this.delegate.appendToAttributeName(g))},afterAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):g==="="?(this.consume(),this.transitionTo("beforeAttributeValue")):g===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g))},beforeAttributeValue:function(){var g=this.peek();a(g)?this.consume():g==='"'?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):g==="'"?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):g===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(g))},attributeValueDoubleQuoted:function(){var g=this.consume();g==='"'?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):g==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(g)},attributeValueSingleQuoted:function(){var g=this.consume();g==="'"?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):g==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(g)},attributeValueUnquoted:function(){var g=this.peek();a(g)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):g==="/"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):g==="&"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):g===">"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(g))},afterAttributeValueQuoted:function(){var g=this.peek();a(g)?(this.consume(),this.transitionTo("beforeAttributeName")):g==="/"?(this.consume(),this.transitionTo("selfClosingStartTag")):g===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){var g=this.peek();g===">"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var g=this.consume();(g==="@"||g===":"||u(g))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(g))}},this.reset()}return E.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},E.prototype.transitionTo=function(v){this.state=v},E.prototype.tokenize=function(v){this.reset(),this.tokenizePart(v),this.tokenizeEOF()},E.prototype.tokenizePart=function(v){for(this.input+=i(v);this.index"||v==="style"&&this.input.substring(this.index,this.index+8)!==""||v==="script"&&this.input.substring(this.index,this.index+9)!=="<\/script>"},E}(),b=function(){function E(v,_){_===void 0&&(_={}),this.options=_,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new l(this,v,_.mode),this._currentAttribute=void 0}return E.prototype.tokenize=function(v){return this.tokens=[],this.tokenizer.tokenize(v),this.tokens},E.prototype.tokenizePart=function(v){return this.tokens=[],this.tokenizer.tokenizePart(v),this.tokens},E.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},E.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},E.prototype.current=function(){var v=this.token;if(v===null)throw new Error("token was unexpectedly null");if(arguments.length===0)return v;for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:{entityEncoding:"transformed"};return c?new f.default(o).print(c):""}}}),he=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/syntax-error.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.generateSyntaxError=f;function f(h,d){let{module:c,loc:o}=d,{line:e,column:r}=o.start,s=d.asString(),p=s?` + +| +| `.concat(s.split(` +`).join(` +| `),` +| + +`):"",n=new Error("".concat(h,": ").concat(p,"(error occurred in '").concat(c,"' @ line ").concat(e," : column ").concat(r,")"));return n.name="SyntaxError",n.location=d,n.code=s,n}}}),Rt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/visitor-keys.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var f=X(),h={Program:(0,f.tuple)("body"),Template:(0,f.tuple)("body"),Block:(0,f.tuple)("body"),MustacheStatement:(0,f.tuple)("path","params","hash"),BlockStatement:(0,f.tuple)("path","params","hash","program","inverse"),ElementModifierStatement:(0,f.tuple)("path","params","hash"),PartialStatement:(0,f.tuple)("name","params","hash"),CommentStatement:(0,f.tuple)(),MustacheCommentStatement:(0,f.tuple)(),ElementNode:(0,f.tuple)("attributes","modifiers","children","comments"),AttrNode:(0,f.tuple)("value"),TextNode:(0,f.tuple)(),ConcatStatement:(0,f.tuple)("parts"),SubExpression:(0,f.tuple)("path","params","hash"),PathExpression:(0,f.tuple)(),PathHead:(0,f.tuple)(),StringLiteral:(0,f.tuple)(),BooleanLiteral:(0,f.tuple)(),NumberLiteral:(0,f.tuple)(),NullLiteral:(0,f.tuple)(),UndefinedLiteral:(0,f.tuple)(),Hash:(0,f.tuple)("pairs"),HashPair:(0,f.tuple)("value"),NamedBlock:(0,f.tuple)("attributes","modifiers","children","comments"),SimpleElement:(0,f.tuple)("attributes","modifiers","children","comments"),Component:(0,f.tuple)("head","attributes","modifiers","children","comments")},d=h;t.default=d}}),Ye=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/errors.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.cannotRemoveNode=d,t.cannotReplaceNode=c,t.cannotReplaceOrRemoveInKeyHandlerYet=o,t.default=void 0;var f=function(){e.prototype=Object.create(Error.prototype),e.prototype.constructor=e;function e(r,s,p,n){let a=Error.call(this,r);this.key=n,this.message=r,this.node=s,this.parent=p,this.stack=a.stack}return e}(),h=f;t.default=h;function d(e,r,s){return new f("Cannot remove a node unless it is part of an array",e,r,s)}function c(e,r,s){return new f("Cannot replace a node with multiple nodes unless it is part of an array",e,r,s)}function o(e,r){return new f("Replacing and removing in key handlers is not yet supported.",e,null,r)}}}),Qe=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/path.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var f=class{constructor(d){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.node=d,this.parent=c,this.parentKey=o}get parentNode(){return this.parent?this.parent.node:null}parents(){return{[Symbol.iterator]:()=>new h(this)}}};t.default=f;var h=class{constructor(d){this.path=d}next(){return this.path.parent?(this.path=this.path.parent,{done:!1,value:this.path}):{done:!0,value:null}}}}}),Ne=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/traverse.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.default=E;var f=X(),h=o(Rt()),d=Ye(),c=o(Qe());function o(v){return v&&v.__esModule?v:{default:v}}function e(v){return typeof v=="function"?v:v.enter}function r(v){if(typeof v!="function")return v.exit}function s(v,_){let y=typeof v!="function"?v.keys:void 0;if(y===void 0)return;let g=y[_];return g!==void 0?g:y.All}function p(v,_){if((_==="Template"||_==="Block")&&v.Program)return v.Program;let y=v[_];return y!==void 0?y:v.All}function n(v,_){let{node:y,parent:g,parentKey:L}=_,j=p(v,y.type),x,w;j!==void 0&&(x=e(j),w=r(j));let H;if(x!==void 0&&(H=x(y,_)),H!=null)if(JSON.stringify(y)===JSON.stringify(H))H=void 0;else{if(Array.isArray(H))return l(v,H,g,L),H;{let m=new c.default(H,g,L);return n(v,m)||H}}if(H===void 0){let m=h.default[y.type];for(let C=0;C@\[-\^`\{-~]/;function d(a){let u=c(a);u&&(a.blockParams=u)}function c(a){let u=a.attributes.length,i=[];for(let b=0;b0&&i[i.length-1].charAt(0)==="|")throw(0,f.generateSyntaxError)("Block parameters must be preceded by the `as` keyword, detected block parameters without `as`",a.loc);if(l!==-1&&u>l&&i[l+1].charAt(0)==="|"){let b=i.slice(l).join(" ");if(b.charAt(b.length-1)!=="|"||b.match(/\|/g).length!==2)throw(0,f.generateSyntaxError)("Invalid block parameters syntax, '"+b+"'",a.loc);let P=[];for(let E=l+1;E1&&arguments[1]!==void 0?arguments[1]:new h.EntityParser(h.HTML5NamedCharRefs),e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"precompile";this.elementStack=[],this.currentAttribute=null,this.currentNode=null,this.source=c,this.lines=c.source.split(/(?:\r\n?|\n)/g),this.tokenizer=new h.EventedTokenizer(this,o,e)}offset(){let{line:c,column:o}=this.tokenizer;return this.source.offsetFor(c,o)}pos(c){let{line:o,column:e}=c;return this.source.offsetFor(o,e)}finish(c){return(0,f.assign)({},c,{loc:c.loc.until(this.offset())})}get currentAttr(){return this.currentAttribute}get currentTag(){return this.currentNode}get currentStartTag(){return this.currentNode}get currentEndTag(){return this.currentNode}get currentComment(){return this.currentNode}get currentData(){return this.currentNode}acceptTemplate(c){return this[c.type](c)}acceptNode(c){return this[c.type](c)}currentElement(){return this.elementStack[this.elementStack.length-1]}sourceForNode(c,o){let e=c.loc.start.line-1,r=e-1,s=c.loc.start.column,p=[],n,a,u;for(o?(a=o.loc.end.line-1,u=o.loc.end.column):(a=c.loc.end.line-1,u=c.loc.end.column);ri.acceptNode(_)):[],E=P.length>0?P[P.length-1].loc:b.loc,v=l.hash?i.Hash(l.hash):{type:"Hash",pairs:[],loc:i.source.spanFor(E).collapse("end")};return{path:b,params:P,hash:v}}function u(i,l){let{path:b,params:P,hash:E,loc:v}=l;if((0,c.isHBSLiteral)(b)){let y="{{".concat((0,c.printLiteral)(b),"}}"),g="<".concat(i.name," ... ").concat(y," ...");throw(0,d.generateSyntaxError)("In ".concat(g,", ").concat(y," is not a valid modifier"),l.loc)}let _=e.default.elementModifier({path:b,params:P,hash:E,loc:v});i.modifiers.push(_)}}}),Fe=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/parser/tokenizer-event-handlers.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.preprocess=_,t.TokenizerEventHandlers=void 0;var f=X(),h=It(),d=Ke(),c=b(We()),o=Te(),e=De(),r=ue(),s=he(),p=b(Ne()),n=b(Je()),a=ye(),u=b(Le()),i=b(ke()),l=xt();function b(y){return y&&y.__esModule?y:{default:y}}var P=class extends l.HandlebarsNodeVisitors{constructor(){super(...arguments),this.tagOpenLine=0,this.tagOpenColumn=0}reset(){this.currentNode=null}beginComment(){this.currentNode=u.default.comment("",this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn))}appendToCommentData(y){this.currentComment.value+=y}finishComment(){(0,a.appendChild)(this.currentElement(),this.finish(this.currentComment))}beginData(){this.currentNode=u.default.text({chars:"",loc:this.offset().collapsed()})}appendToData(y){this.currentData.chars+=y}finishData(){this.currentData.loc=this.currentData.loc.withEnd(this.offset()),(0,a.appendChild)(this.currentElement(),this.currentData)}tagOpen(){this.tagOpenLine=this.tokenizer.line,this.tagOpenColumn=this.tokenizer.column}beginStartTag(){this.currentNode={type:"StartTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}beginEndTag(){this.currentNode={type:"EndTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}finishTag(){let y=this.finish(this.currentTag);if(y.type==="StartTag"){if(this.finishStartTag(),y.name===":")throw(0,s.generateSyntaxError)("Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter",this.source.spanFor({start:this.currentTag.loc.toJSON(),end:this.offset().toJSON()}));(o.voidMap[y.name]||y.selfClosing)&&this.finishEndTag(!0)}else y.type==="EndTag"&&this.finishEndTag(!1)}finishStartTag(){let{name:y,attributes:g,modifiers:L,comments:j,selfClosing:x,loc:w}=this.finish(this.currentStartTag),H=u.default.element({tag:y,selfClosing:x,attrs:g,modifiers:L,comments:j,children:[],blockParams:[],loc:w});this.elementStack.push(H)}finishEndTag(y){let g=this.finish(this.currentTag),L=this.elementStack.pop(),j=this.currentElement();this.validateEndTag(g,L,y),L.loc=L.loc.withEnd(this.offset()),(0,a.parseElementBlockParams)(L),(0,a.appendChild)(j,L)}markTagAsSelfClosing(){this.currentTag.selfClosing=!0}appendToTagName(y){this.currentTag.name+=y}beginAttribute(){let y=this.offset();this.currentAttribute={name:"",parts:[],currentPart:null,isQuoted:!1,isDynamic:!1,start:y,valueSpan:y.collapsed()}}appendToAttributeName(y){this.currentAttr.name+=y}beginAttributeValue(y){this.currentAttr.isQuoted=y,this.startTextPart(),this.currentAttr.valueSpan=this.offset().collapsed()}appendToAttributeValue(y){let g=this.currentAttr.parts,L=g[g.length-1],j=this.currentAttr.currentPart;if(j)j.chars+=y,j.loc=j.loc.withEnd(this.offset());else{let x=this.offset();y===` +`?x=L?L.loc.getEnd():this.currentAttr.valueSpan.getStart():x=x.move(-1),this.currentAttr.currentPart=u.default.text({chars:y,loc:x.collapsed()})}}finishAttributeValue(){this.finalizeTextPart();let y=this.currentTag,g=this.offset();if(y.type==="EndTag")throw(0,s.generateSyntaxError)("Invalid end tag: closing tag must not have attributes",this.source.spanFor({start:y.loc.toJSON(),end:g.toJSON()}));let{name:L,parts:j,start:x,isQuoted:w,isDynamic:H,valueSpan:m}=this.currentAttr,C=this.assembleAttributeValue(j,w,H,x.until(g));C.loc=m.withEnd(g);let S=u.default.attr({name:L,value:C,loc:x.until(g)});this.currentStartTag.attributes.push(S)}reportSyntaxError(y){throw(0,s.generateSyntaxError)(y,this.offset().collapsed())}assembleConcatenatedValue(y){for(let j=0;j elements do not need end tags. You should remove it"):g.tag===void 0?j="Closing tag without an open tag"):g.tag!==y.name&&(j="Closing tag did not match last open tag <").concat(g.tag,"> (on line ").concat(g.loc.startPosition.line,")")),j)throw(0,s.generateSyntaxError)(j,y.loc)}assembleAttributeValue(y,g,L,j){if(L){if(g)return this.assembleConcatenatedValue(y);if(y.length===1||y.length===2&&y[1].type==="TextNode"&&y[1].chars==="/")return y[0];throw(0,s.generateSyntaxError)("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'",j)}else return y.length>0?y[0]:u.default.text({chars:"",loc:j})}};t.TokenizerEventHandlers=P;var E={parse:_,builders:i.default,print:c.default,traverse:p.default,Walker:n.default},v=class extends d.EntityParser{constructor(){super({})}parse(){}};function _(y){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var L,j,x;let w=g.mode||"precompile",H,m;typeof y=="string"?(H=new e.Source(y,(L=g.meta)===null||L===void 0?void 0:L.moduleName),w==="codemod"?m=(0,h.parseWithoutProcessing)(y,g.parseOptions):m=(0,h.parse)(y,g.parseOptions)):y instanceof e.Source?(H=y,w==="codemod"?m=(0,h.parseWithoutProcessing)(y.source,g.parseOptions):m=(0,h.parse)(y.source,g.parseOptions)):(H=new e.Source("",(j=g.meta)===null||j===void 0?void 0:j.moduleName),m=y);let C;w==="codemod"&&(C=new v);let S=r.SourceSpan.forCharPositions(H,0,H.source.length);m.loc={source:"(program)",start:S.startPosition,end:S.endPosition};let R=new P(H,C,w).acceptTemplate(m);if(g.strictMode&&(R.blockParams=(x=g.locals)!==null&&x!==void 0?x:[]),g&&g.plugins&&g.plugins.ast)for(let M=0,V=g.plugins.ast.length;Mthis.allocate(s));return new o(this,e,r)}};t.SymbolTable=d;var c=class extends d{constructor(e,r){super(),this.templateLocals=e,this.customizeComponentName=r,this.symbols=[],this.upvars=[],this.size=1,this.named=(0,f.dict)(),this.blocks=(0,f.dict)(),this.usedTemplateLocals=[],this._hasEval=!1}getUsedTemplateLocals(){return this.usedTemplateLocals}setHasEval(){this._hasEval=!0}get hasEval(){return this._hasEval}has(e){return this.templateLocals.indexOf(e)!==-1}get(e){let r=this.usedTemplateLocals.indexOf(e);return r!==-1?[r,!0]:(r=this.usedTemplateLocals.length,this.usedTemplateLocals.push(e),[r,!0])}getLocalsMap(){return(0,f.dict)()}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}allocateFree(e,r){r.resolution()===39&&r.isAngleBracket&&(0,h.isUpperCase)(e)&&(e=this.customizeComponentName(e));let s=this.upvars.indexOf(e);return s!==-1||(s=this.upvars.length,this.upvars.push(e)),s}allocateNamed(e){let r=this.named[e];return r||(r=this.named[e]=this.allocate(e)),r}allocateBlock(e){e==="inverse"&&(e="else");let r=this.blocks[e];return r||(r=this.blocks[e]=this.allocate("&".concat(e))),r}allocate(e){return this.symbols.push(e),this.size++}};t.ProgramSymbolTable=c;var o=class extends d{constructor(e,r,s){super(),this.parent=e,this.symbols=r,this.slots=s}get locals(){return this.symbols}has(e){return this.symbols.indexOf(e)!==-1||this.parent.has(e)}get(e){let r=this.symbols.indexOf(e);return r===-1?this.parent.get(e):[this.slots[r],!1]}getLocalsMap(){let e=this.parent.getLocalsMap();return this.symbols.forEach(r=>e[r]=this.get(r)[0]),e}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}setHasEval(){this.parent.setHasEval()}allocateFree(e,r){return this.parent.allocateFree(e,r)}allocateNamed(e){return this.parent.allocateNamed(e)}allocateBlock(e){return this.parent.allocateBlock(e)}allocate(e){return this.parent.allocate(e)}};t.BlockSymbolTable=o}}),jt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/builders.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.BuildElement=t.Builder=void 0;var f=X(),h=le(),d=ce(),c=e(ve());function o(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return o=function(){return n},n}function e(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var a=o();if(a&&a.has(n))return a.get(n);var u={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if(Object.prototype.hasOwnProperty.call(n,l)){var b=i?Object.getOwnPropertyDescriptor(n,l):null;b&&(b.get||b.set)?Object.defineProperty(u,l,b):u[l]=n[l]}return u.default=n,a&&a.set(n,u),u}var r=function(n,a){var u={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&a.indexOf(i)<0&&(u[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var l=0,i=Object.getOwnPropertySymbols(n);l0||i.hash.pairs.length>0}}}),Ht=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/normalize.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.normalize=P,t.BlockContext=void 0;var f=X(),h=b(Te()),d=Fe(),c=le(),o=ce(),e=Xe(),r=he(),s=ye(),p=b(Le()),n=l(ve()),a=jt(),u=Mt();function i(){if(typeof WeakMap!="function")return null;var m=new WeakMap;return i=function(){return m},m}function l(m){if(m&&m.__esModule)return m;if(m===null||typeof m!="object"&&typeof m!="function")return{default:m};var C=i();if(C&&C.has(m))return C.get(m);var S={},R=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var M in m)if(Object.prototype.hasOwnProperty.call(m,M)){var V=R?Object.getOwnPropertyDescriptor(m,M):null;V&&(V.get||V.set)?Object.defineProperty(S,M,V):S[M]=m[M]}return S.default=m,C&&C.set(m,S),S}function b(m){return m&&m.__esModule?m:{default:m}}function P(m){let C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var S;let R=(0,d.preprocess)(m,C),M=(0,f.assign)({strictMode:!1,locals:[]},C),V=e.SymbolTable.top(M.locals,(S=C.customizeComponentName)!==null&&S!==void 0?S:W=>W),G=new E(m,M,V),K=new _(G),U=new L(G.loc(R.loc),R.body.map(W=>K.normalize(W)),G).assertTemplate(V),Z=V.getUsedTemplateLocals();return[U,Z]}var E=class{constructor(m,C,S){this.source=m,this.options=C,this.table=S,this.builder=new a.Builder}get strict(){return this.options.strictMode||!1}loc(m){return this.source.spanFor(m)}resolutionFor(m,C){if(this.strict)return{resolution:n.STRICT_RESOLUTION};if(this.isFreeVar(m)){let S=C(m);return S===null?{resolution:"error",path:w(m),head:H(m)}:{resolution:S}}else return{resolution:n.STRICT_RESOLUTION}}isFreeVar(m){return m.type==="PathExpression"?m.head.type!=="VarHead"?!1:!this.table.has(m.head.name):m.path.type==="PathExpression"?this.isFreeVar(m.path):!1}hasBinding(m){return this.table.has(m)}child(m){return new E(this.source,this.options,this.table.child(m))}customizeComponentName(m){return this.options.customizeComponentName?this.options.customizeComponentName(m):m}};t.BlockContext=E;var v=class{constructor(m){this.block=m}normalize(m,C){switch(m.type){case"NullLiteral":case"BooleanLiteral":case"NumberLiteral":case"StringLiteral":case"UndefinedLiteral":return this.block.builder.literal(m.value,this.block.loc(m.loc));case"PathExpression":return this.path(m,C);case"SubExpression":{let S=this.block.resolutionFor(m,u.SexpSyntaxContext);if(S.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`".concat(S.path,"`) but ").concat(S.head," was not in scope"),m.loc);return this.block.builder.sexp(this.callParts(m,S.resolution),this.block.loc(m.loc))}}}path(m,C){let S=this.block.loc(m.head.loc),R=[],M=S;for(let V of m.tail)M=M.sliceStartChars({chars:V.length,skipStart:1}),R.push(new c.SourceSlice({loc:M,chars:V}));return this.block.builder.path(this.ref(m.head,C),R,this.block.loc(m.loc))}callParts(m,C){let{path:S,params:R,hash:M}=m,V=this.normalize(S,C),G=R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K=o.SpanList.range(G,V.loc.collapse("end")),U=this.block.loc(M.loc),Z=o.SpanList.range([K,U]),W=this.block.builder.positional(R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K),T=this.block.builder.named(M.pairs.map(N=>this.namedArgument(N)),this.block.loc(M.loc));return{callee:V,args:this.block.builder.args(W,T,Z)}}namedArgument(m){let S=this.block.loc(m.loc).sliceStartChars({chars:m.key.length});return this.block.builder.namedArgument(new c.SourceSlice({chars:m.key,loc:S}),this.normalize(m.value,n.ARGUMENT_RESOLUTION))}ref(m,C){let{block:S}=this,{builder:R,table:M}=S,V=S.loc(m.loc);switch(m.type){case"ThisHead":return R.self(V);case"AtHead":{let G=M.allocateNamed(m.name);return R.at(m.name,G,V)}case"VarHead":if(S.hasBinding(m.name)){let[G,K]=M.get(m.name);return S.builder.localVar(m.name,G,K,V)}else{let G=S.strict?n.STRICT_RESOLUTION:C,K=S.table.allocateFree(m.name,G);return S.builder.freeVar({name:m.name,context:G,symbol:K,loc:V})}}}},_=class{constructor(m){this.block=m}normalize(m){switch(m.type){case"PartialStatement":throw new Error("Handlebars partial syntax ({{> ...}}) is not allowed in Glimmer");case"BlockStatement":return this.BlockStatement(m);case"ElementNode":return new y(this.block).ElementNode(m);case"MustacheStatement":return this.MustacheStatement(m);case"MustacheCommentStatement":return this.MustacheCommentStatement(m);case"CommentStatement":{let C=this.block.loc(m.loc);return new n.HtmlComment({loc:C,text:C.slice({skipStart:4,skipEnd:3}).toSlice(m.value)})}case"TextNode":return new n.HtmlText({loc:this.block.loc(m.loc),chars:m.chars})}}MustacheCommentStatement(m){let C=this.block.loc(m.loc),S;return C.asString().slice(0,5)==="{{!--"?S=C.slice({skipStart:5,skipEnd:4}):S=C.slice({skipStart:3,skipEnd:2}),new n.GlimmerComment({loc:C,text:S.toSlice(m.value)})}MustacheStatement(m){let{escaped:C}=m,S=this.block.loc(m.loc),R=this.expr.callParts({path:m.path,params:m.params,hash:m.hash},(0,u.AppendSyntaxContext)(m)),M=R.args.isEmpty()?R.callee:this.block.builder.sexp(R,S);return this.block.builder.append({table:this.block.table,trusting:!C,value:M},S)}BlockStatement(m){let{program:C,inverse:S}=m,R=this.block.loc(m.loc),M=this.block.resolutionFor(m,u.BlockSyntaxContext);if(M.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`{{#".concat(M.path,"}}`) but ").concat(M.head," was not in scope"),R);let V=this.expr.callParts(m,M.resolution);return this.block.builder.blockStatement((0,f.assign)({symbols:this.block.table,program:this.Block(C),inverse:S?this.Block(S):null},V),R)}Block(m){let{body:C,loc:S,blockParams:R}=m,M=this.block.child(R),V=new _(M);return new j(this.block.loc(S),C.map(G=>V.normalize(G)),this.block).assertBlock(M.table)}get expr(){return new v(this.block)}},y=class{constructor(m){this.ctx=m}ElementNode(m){let{tag:C,selfClosing:S,comments:R}=m,M=this.ctx.loc(m.loc),[V,...G]=C.split("."),K=this.classifyTag(V,G,m.loc),U=m.attributes.filter(A=>A.name[0]!=="@").map(A=>this.attr(A)),Z=m.attributes.filter(A=>A.name[0]==="@").map(A=>this.arg(A)),W=m.modifiers.map(A=>this.modifier(A)),T=this.ctx.child(m.blockParams),N=new _(T),k=m.children.map(A=>N.normalize(A)),B=this.ctx.builder.element({selfClosing:S,attrs:U,componentArgs:Z,modifiers:W,comments:R.map(A=>new _(this.ctx).MustacheCommentStatement(A))}),O=new x(B,M,k,this.ctx),z=this.ctx.loc(m.loc).sliceStartChars({chars:C.length,skipStart:1});if(K==="ElementHead")return C[0]===":"?O.assertNamedBlock(z.slice({skipStart:1}).toSlice(C.slice(1)),T.table):O.assertElement(z.toSlice(C),m.blockParams.length>0);if(m.selfClosing)return B.selfClosingComponent(K,M);{let A=O.assertComponent(C,T.table,m.blockParams.length>0);return B.componentWithNamedBlocks(K,A,M)}}modifier(m){let C=this.ctx.resolutionFor(m,u.ModifierSyntaxContext);if(C.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`{{#".concat(C.path,"}}`) as a modifier, but ").concat(C.head," was not in scope. Try adding `this` to the beginning of the path"),m.loc);let S=this.expr.callParts(m,C.resolution);return this.ctx.builder.modifier(S,this.ctx.loc(m.loc))}mustacheAttr(m){let C=this.ctx.builder.sexp(this.expr.callParts(m,(0,u.AttrValueSyntaxContext)(m)),this.ctx.loc(m.loc));return C.args.isEmpty()?C.callee:C}attrPart(m){switch(m.type){case"MustacheStatement":return{expr:this.mustacheAttr(m),trusting:!m.escaped};case"TextNode":return{expr:this.ctx.builder.literal(m.chars,this.ctx.loc(m.loc)),trusting:!0}}}attrValue(m){switch(m.type){case"ConcatStatement":{let C=m.parts.map(S=>this.attrPart(S).expr);return{expr:this.ctx.builder.interpolate(C,this.ctx.loc(m.loc)),trusting:!1}}default:return this.attrPart(m)}}attr(m){if(m.name==="...attributes")return this.ctx.builder.splatAttr(this.ctx.table.allocateBlock("attrs"),this.ctx.loc(m.loc));let C=this.ctx.loc(m.loc),S=C.sliceStartChars({chars:m.name.length}).toSlice(m.name),R=this.attrValue(m.value);return this.ctx.builder.attr({name:S,value:R.expr,trusting:R.trusting},C)}maybeDeprecatedCall(m,C){if(this.ctx.strict||C.type!=="MustacheStatement")return null;let{path:S}=C;if(S.type!=="PathExpression"||S.head.type!=="VarHead")return null;let{name:R}=S.head;if(R==="has-block"||R==="has-block-params"||this.ctx.hasBinding(R)||S.tail.length!==0||C.params.length!==0||C.hash.pairs.length!==0)return null;let M=n.LooseModeResolution.attr(),V=this.ctx.builder.freeVar({name:R,context:M,symbol:this.ctx.table.allocateFree(R,M),loc:S.loc});return{expr:this.ctx.builder.deprecatedCall(m,V,C.loc),trusting:!1}}arg(m){let C=this.ctx.loc(m.loc),S=C.sliceStartChars({chars:m.name.length}).toSlice(m.name),R=this.maybeDeprecatedCall(S,m.value)||this.attrValue(m.value);return this.ctx.builder.arg({name:S,value:R.expr,trusting:R.trusting},C)}classifyTag(m,C,S){let R=(0,s.isUpperCase)(m),M=m[0]==="@"||m==="this"||this.ctx.hasBinding(m);if(this.ctx.strict&&!M){if(R)throw(0,r.generateSyntaxError)("Attempted to invoke a component that was not in scope in a strict mode template, `<".concat(m,">`. If you wanted to create an element with that name, convert it to lowercase - `<").concat(m.toLowerCase(),">`"),S);return"ElementHead"}let V=M||R,G=S.sliceStartChars({skipStart:1,chars:m.length}),K=C.reduce((W,T)=>W+1+T.length,0),U=G.getEnd().move(K),Z=G.withEnd(U);if(V){let W=p.default.path({head:p.default.head(m,G),tail:C,loc:Z}),T=this.ctx.resolutionFor(W,u.ComponentSyntaxContext);if(T.resolution==="error")throw(0,r.generateSyntaxError)("You attempted to invoke a path (`<".concat(T.path,">`) but ").concat(T.head," was not in scope"),S);return new v(this.ctx).normalize(W,T.resolution)}if(C.length>0)throw(0,r.generateSyntaxError)("You used ".concat(m,".").concat(C.join(".")," as a tag name, but ").concat(m," is not in scope"),S);return"ElementHead"}get expr(){return new v(this.ctx)}},g=class{constructor(m,C,S){this.loc=m,this.children=C,this.block=S,this.namedBlocks=C.filter(R=>R instanceof n.NamedBlock),this.hasSemanticContent=Boolean(C.filter(R=>{if(R instanceof n.NamedBlock)return!1;switch(R.type){case"GlimmerComment":case"HtmlComment":return!1;case"HtmlText":return!/^\s*$/.exec(R.chars);default:return!0}}).length),this.nonBlockChildren=C.filter(R=>!(R instanceof n.NamedBlock))}},L=class extends g{assertTemplate(m){if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)("Unexpected named block at the top-level of a template",this.loc);return this.block.builder.template(m,this.nonBlockChildren,this.block.loc(this.loc))}},j=class extends g{assertBlock(m){if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)("Unexpected named block nested in a normal block",this.loc);return this.block.builder.block(m,this.nonBlockChildren,this.loc)}},x=class extends g{constructor(m,C,S,R){super(C,S,R),this.el=m}assertNamedBlock(m,C){if(this.el.base.selfClosing)throw(0,r.generateSyntaxError)("<:".concat(m.chars,"/> is not a valid named block: named blocks cannot be self-closing"),this.loc);if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)("Unexpected named block inside <:".concat(m.chars,"> named block: named blocks cannot contain nested named blocks"),this.loc);if(!(0,s.isLowerCase)(m.chars))throw(0,r.generateSyntaxError)("<:".concat(m.chars,"> is not a valid named block, and named blocks must begin with a lowercase letter"),this.loc);if(this.el.base.attrs.length>0||this.el.base.componentArgs.length>0||this.el.base.modifiers.length>0)throw(0,r.generateSyntaxError)("named block <:".concat(m.chars,"> cannot have attributes, arguments, or modifiers"),this.loc);let S=o.SpanList.range(this.nonBlockChildren,this.loc);return this.block.builder.namedBlock(m,this.block.builder.block(C,this.nonBlockChildren,S),this.loc)}assertElement(m,C){if(C)throw(0,r.generateSyntaxError)("Unexpected block params in <".concat(m,">: simple elements cannot have block params"),this.loc);if((0,f.isPresent)(this.namedBlocks)){let S=this.namedBlocks.map(R=>R.name);if(S.length===1)throw(0,r.generateSyntaxError)("Unexpected named block <:foo> inside <".concat(m.chars,"> HTML element"),this.loc);{let R=S.map(M=>"<:".concat(M.chars,">")).join(", ");throw(0,r.generateSyntaxError)("Unexpected named blocks inside <".concat(m.chars,"> HTML element (").concat(R,")"),this.loc)}}return this.el.simple(m,this.nonBlockChildren,this.loc)}assertComponent(m,C,S){if((0,f.isPresent)(this.namedBlocks)&&this.hasSemanticContent)throw(0,r.generateSyntaxError)("Unexpected content inside <".concat(m,"> component invocation: when using named blocks, the tag cannot contain other content"),this.loc);if((0,f.isPresent)(this.namedBlocks)){if(S)throw(0,r.generateSyntaxError)("Unexpected block params list on <".concat(m,"> component invocation: when passing named blocks, the invocation tag cannot take block params"),this.loc);let R=new Set;for(let M of this.namedBlocks){let V=M.name.chars;if(R.has(V))throw(0,r.generateSyntaxError)("Component had two named blocks with the same name, `<:".concat(V,">`. Only one block with a given name may be passed"),this.loc);if(V==="inverse"&&R.has("else")||V==="else"&&R.has("inverse"))throw(0,r.generateSyntaxError)("Component has both <:else> and <:inverse> block. <:inverse> is an alias for <:else>",this.loc);R.add(V)}return this.namedBlocks}else return[this.block.builder.namedBlock(c.SourceSlice.synthetic("default"),this.block.builder.block(C,this.nonBlockChildren,this.loc),this.loc)]}};function w(m){return m.type!=="PathExpression"&&m.path.type==="PathExpression"?w(m.path):new h.default({entityEncoding:"raw"}).print(m)}function H(m){if(m.type==="PathExpression")switch(m.head.type){case"AtHead":case"VarHead":return m.head.name;case"ThisHead":return"this"}else return m.path.type==="PathExpression"?H(m.path):new h.default({entityEncoding:"raw"}).print(m)}}}),Ze=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/keywords.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.isKeyword=f,t.KEYWORDS_TYPES=void 0;function f(d){return d in h}var h={component:["Call","Append","Block"],debugger:["Append"],"each-in":["Block"],each:["Block"],"has-block-params":["Call","Append"],"has-block":["Call","Append"],helper:["Call","Append"],if:["Call","Append","Block"],"in-element":["Block"],let:["Block"],"link-to":["Append","Block"],log:["Call","Append"],modifier:["Call"],mount:["Append"],mut:["Call","Append"],outlet:["Append"],"query-params":["Call"],readonly:["Call","Append"],unbound:["Call","Append"],unless:["Call","Append","Block"],with:["Block"],yield:["Append"]};t.KEYWORDS_TYPES=h}}),Vt=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/get-template-locals.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),t.getTemplateLocals=r;var f=Ze(),h=Fe(),d=c(Ne());function c(s){return s&&s.__esModule?s:{default:s}}function o(s,p,n){if(s.type==="PathExpression"){if(s.head.type==="AtHead"||s.head.type==="ThisHead")return;let a=s.head.name;if(p.indexOf(a)===-1)return a}else if(s.type==="ElementNode"){let{tag:a}=s,u=a.charAt(0);return u===":"||u==="@"||!n.includeHtmlElements&&a.indexOf(".")===-1&&a.toLowerCase()===a||a.substr(0,5)==="this."||p.indexOf(a)!==-1?void 0:a}}function e(s,p,n,a){let u=o(p,n,a);(Array.isArray(u)?u:[u]).forEach(i=>{i!==void 0&&i[0]!=="@"&&s.add(i.split(".")[0])})}function r(s){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{includeHtmlElements:!1,includeKeywords:!1},n=(0,h.preprocess)(s),a=new Set,u=[];(0,d.default)(n,{Block:{enter(l){let{blockParams:b}=l;b.forEach(P=>{u.push(P)})},exit(l){let{blockParams:b}=l;b.forEach(()=>{u.pop()})}},ElementNode:{enter(l){l.blockParams.forEach(b=>{u.push(b)}),e(a,l,u,p)},exit(l){let{blockParams:b}=l;b.forEach(()=>{u.pop()})}},PathExpression(l){e(a,l,u,p)}});let i=[];return a.forEach(l=>i.push(l)),p!=null&&p.includeKeywords||(i=i.filter(l=>!(0,f.isKeyword)(l))),i}}}),Ut=I({"node_modules/@glimmer/syntax/dist/commonjs/es2017/index.js"(t){"use strict";F(),Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Source",{enumerable:!0,get:function(){return f.Source}}),Object.defineProperty(t,"builders",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,"normalize",{enumerable:!0,get:function(){return o.normalize}}),Object.defineProperty(t,"SymbolTable",{enumerable:!0,get:function(){return e.SymbolTable}}),Object.defineProperty(t,"BlockSymbolTable",{enumerable:!0,get:function(){return e.BlockSymbolTable}}),Object.defineProperty(t,"ProgramSymbolTable",{enumerable:!0,get:function(){return e.ProgramSymbolTable}}),Object.defineProperty(t,"generateSyntaxError",{enumerable:!0,get:function(){return r.generateSyntaxError}}),Object.defineProperty(t,"preprocess",{enumerable:!0,get:function(){return s.preprocess}}),Object.defineProperty(t,"print",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,"sortByLoc",{enumerable:!0,get:function(){return n.sortByLoc}}),Object.defineProperty(t,"Walker",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"Path",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"traverse",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"cannotRemoveNode",{enumerable:!0,get:function(){return i.cannotRemoveNode}}),Object.defineProperty(t,"cannotReplaceNode",{enumerable:!0,get:function(){return i.cannotReplaceNode}}),Object.defineProperty(t,"WalkerPath",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"isKeyword",{enumerable:!0,get:function(){return b.isKeyword}}),Object.defineProperty(t,"KEYWORDS_TYPES",{enumerable:!0,get:function(){return b.KEYWORDS_TYPES}}),Object.defineProperty(t,"getTemplateLocals",{enumerable:!0,get:function(){return P.getTemplateLocals}}),Object.defineProperty(t,"SourceSlice",{enumerable:!0,get:function(){return E.SourceSlice}}),Object.defineProperty(t,"SourceSpan",{enumerable:!0,get:function(){return v.SourceSpan}}),Object.defineProperty(t,"SpanList",{enumerable:!0,get:function(){return _.SpanList}}),Object.defineProperty(t,"maybeLoc",{enumerable:!0,get:function(){return _.maybeLoc}}),Object.defineProperty(t,"loc",{enumerable:!0,get:function(){return _.loc}}),Object.defineProperty(t,"hasSpan",{enumerable:!0,get:function(){return _.hasSpan}}),Object.defineProperty(t,"node",{enumerable:!0,get:function(){return y.node}}),t.ASTv2=t.AST=t.ASTv1=void 0;var f=De(),h=j(ke()),d=L(Ct());t.ASTv1=d,t.AST=d;var c=L(ve());t.ASTv2=c;var o=Ht(),e=Xe(),r=he(),s=Fe(),p=j(We()),n=Ue(),a=j(Je()),u=j(Ne()),i=Ye(),l=j(Qe()),b=Ze(),P=Vt(),E=le(),v=ue(),_=ce(),y=ne();function g(){if(typeof WeakMap!="function")return null;var x=new WeakMap;return g=function(){return x},x}function L(x){if(x&&x.__esModule)return x;if(x===null||typeof x!="object"&&typeof x!="function")return{default:x};var w=g();if(w&&w.has(x))return w.get(x);var H={},m=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var C in x)if(Object.prototype.hasOwnProperty.call(x,C)){var S=m?Object.getOwnPropertyDescriptor(x,C):null;S&&(S.get||S.set)?Object.defineProperty(H,C,S):H[C]=x[C]}return H.default=x,w&&w.set(x,H),H}function j(x){return x&&x.__esModule?x:{default:x}}}});F();var{LinesAndColumns:zt}=st(),Gt=ut(),{locStart:Kt,locEnd:Wt}=ot();function Yt(){return{name:"addBackslash",visitor:{All(t){var f;let h=(f=t.children)!==null&&f!==void 0?f:t.body;if(h)for(let d=0;d{let{line:c,column:o}=d;return f.indexForLocation({line:c-1,column:o})};return()=>({name:"addOffset",visitor:{All(d){let{start:c,end:o}=d.loc;c.offset=h(c),o.offset=h(o)}}})}function Jt(t){let{preprocess:f}=Ut(),h;try{h=f(t,{mode:"codemod",plugins:{ast:[Yt,Qt(t)]}})}catch(d){let c=Xt(d);throw c?Gt(d.message,c):d}return h}function Xt(t){let{location:f,hash:h}=t;if(f){let{start:d,end:c}=f;return typeof c.line!="number"?{start:d}:f}if(h){let{loc:{last_line:d,last_column:c}}=h;return{start:{line:d,column:c+1}}}}$e.exports={parsers:{glimmer:{parse:Jt,astFormat:"glimmer",locStart:Kt,locEnd:Wt}}}});return Zt();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-graphql.js b/node_modules/prettier/parser-graphql.js new file mode 100644 index 0000000..c64f682 --- /dev/null +++ b/node_modules/prettier/parser-graphql.js @@ -0,0 +1,15 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.graphql=e()}})(function(){"use strict";var oe=(a,d)=>()=>(d||a((d={exports:{}}).exports,d),d.exports);var be=oe((Ce,ae)=>{var H=Object.getOwnPropertyNames,se=(a,d)=>function(){return a&&(d=(0,a[H(a)[0]])(a=0)),d},L=(a,d)=>function(){return d||(0,a[H(a)[0]])((d={exports:{}}).exports,d),d.exports},K=se({""(){}}),ce=L({"src/common/parser-create-error.js"(a,d){"use strict";K();function i(c,r){let _=new SyntaxError(c+" ("+r.start.line+":"+r.start.column+")");return _.loc=r,_}d.exports=i}}),ue=L({"src/utils/try-combinations.js"(a,d){"use strict";K();function i(){let c;for(var r=arguments.length,_=new Array(r),E=0;E120){for(var t=Math.floor(s/80),u=s%80,y=[],f=0;f"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function e(f){return Function.toString.call(f).indexOf("[native code]")!==-1}function n(f,m){return n=Object.setPrototypeOf||function(h,l){return h.__proto__=l,h},n(f,m)}function t(f){return t=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)},t(f)}var u=function(f){N(o,f);var m=g(o);function o(h,l,T,S,x,b,M){var U,V,q,G,C;k(this,o),C=m.call(this,h);var R=Array.isArray(l)?l.length!==0?l:void 0:l?[l]:void 0,Y=T;if(!Y&&R){var J;Y=(J=R[0].loc)===null||J===void 0?void 0:J.source}var F=S;!F&&R&&(F=R.reduce(function(w,P){return P.loc&&w.push(P.loc.start),w},[])),F&&F.length===0&&(F=void 0);var B;S&&T?B=S.map(function(w){return(0,r.getLocation)(T,w)}):R&&(B=R.reduce(function(w,P){return P.loc&&w.push((0,r.getLocation)(P.loc.source,P.loc.start)),w},[]));var j=M;if(j==null&&b!=null){var Q=b.extensions;(0,i.default)(Q)&&(j=Q)}return Object.defineProperties(v(C),{name:{value:"GraphQLError"},message:{value:h,enumerable:!0,writable:!0},locations:{value:(U=B)!==null&&U!==void 0?U:void 0,enumerable:B!=null},path:{value:x!=null?x:void 0,enumerable:x!=null},nodes:{value:R!=null?R:void 0},source:{value:(V=Y)!==null&&V!==void 0?V:void 0},positions:{value:(q=F)!==null&&q!==void 0?q:void 0},originalError:{value:b},extensions:{value:(G=j)!==null&&G!==void 0?G:void 0,enumerable:j!=null}}),b!=null&&b.stack?(Object.defineProperty(v(C),"stack",{value:b.stack,writable:!0,configurable:!0}),D(C)):(Error.captureStackTrace?Error.captureStackTrace(v(C),o):Object.defineProperty(v(C),"stack",{value:Error().stack,writable:!0,configurable:!0}),C)}return A(o,[{key:"toString",value:function(){return y(this)}},{key:c.SYMBOL_TO_STRING_TAG,get:function(){return"Object"}}]),o}(I(Error));a.GraphQLError=u;function y(f){var m=f.message;if(f.nodes)for(var o=0,h=f.nodes;o",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"});a.TokenKind=d}}),re=L({"node_modules/graphql/jsutils/inspect.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.default=E;var d=i(ee());function i(v){return v&&v.__esModule?v:{default:v}}function c(v){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?c=function(s){return typeof s}:c=function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},c(v)}var r=10,_=2;function E(v){return k(v,[])}function k(v,I){switch(c(v)){case"string":return JSON.stringify(v);case"function":return v.name?"[function ".concat(v.name,"]"):"[function]";case"object":return v===null?"null":O(v,I);default:return String(v)}}function O(v,I){if(I.indexOf(v)!==-1)return"[Circular]";var s=[].concat(I,[v]),p=g(v);if(p!==void 0){var e=p.call(v);if(e!==v)return typeof e=="string"?e:k(e,s)}else if(Array.isArray(v))return N(v,s);return A(v,s)}function A(v,I){var s=Object.keys(v);if(s.length===0)return"{}";if(I.length>_)return"["+D(v)+"]";var p=s.map(function(e){var n=k(v[e],I);return e+": "+n});return"{ "+p.join(", ")+" }"}function N(v,I){if(v.length===0)return"[]";if(I.length>_)return"[Array]";for(var s=Math.min(r,v.length),p=v.length-s,e=[],n=0;n1&&e.push("... ".concat(p," more items")),"["+e.join(", ")+"]"}function g(v){var I=v[String(d.default)];if(typeof I=="function")return I;if(typeof v.inspect=="function")return v.inspect}function D(v){var I=Object.prototype.toString.call(v).replace(/^\[object /,"").replace(/]$/,"");if(I==="Object"&&typeof v.constructor=="function"){var s=v.constructor.name;if(typeof s=="string"&&s!=="")return s}return I}}}),_e=L({"node_modules/graphql/jsutils/devAssert.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.default=d;function d(i,c){var r=Boolean(i);if(!r)throw new Error(c)}}}),Ee=L({"node_modules/graphql/jsutils/instanceOf.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var d=i(re());function i(r){return r&&r.__esModule?r:{default:r}}var c=function(_,E){return _ instanceof E};a.default=c}}),me=L({"node_modules/graphql/language/source.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.isSource=A,a.Source=void 0;var d=z(),i=_(re()),c=_(_e()),r=_(Ee());function _(N){return N&&N.__esModule?N:{default:N}}function E(N,g){for(var D=0;D1&&arguments[1]!==void 0?arguments[1]:"GraphQL request",v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{line:1,column:1};typeof g=="string"||(0,c.default)(0,"Body must be a string. Received: ".concat((0,i.default)(g),".")),this.body=g,this.name=D,this.locationOffset=v,this.locationOffset.line>0||(0,c.default)(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||(0,c.default)(0,"column in locationOffset is 1-indexed and must be positive.")}return k(N,[{key:d.SYMBOL_TO_STRING_TAG,get:function(){return"Source"}}]),N}();a.Source=O;function A(N){return(0,r.default)(N,O)}}}),ye=L({"node_modules/graphql/language/directiveLocation.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.DirectiveLocation=void 0;var d=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"});a.DirectiveLocation=d}}),ke=L({"node_modules/graphql/language/blockString.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.dedentBlockStringValue=d,a.getBlockStringIndentation=c,a.printBlockString=r;function d(_){var E=_.split(/\r\n|[\n\r]/g),k=c(_);if(k!==0)for(var O=1;OA&&i(E[N-1]);)--N;return E.slice(A,N).join(` +`)}function i(_){for(var E=0;E<_.length;++E)if(_[E]!==" "&&_[E]!==" ")return!1;return!0}function c(_){for(var E,k=!0,O=!0,A=0,N=null,g=0;g<_.length;++g)switch(_.charCodeAt(g)){case 13:_.charCodeAt(g+1)===10&&++g;case 10:k=!1,O=!0,A=0;break;case 9:case 32:++A;break;default:O&&!k&&(N===null||A1&&arguments[1]!==void 0?arguments[1]:"",k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,O=_.indexOf(` +`)===-1,A=_[0]===" "||_[0]===" ",N=_[_.length-1]==='"',g=_[_.length-1]==="\\",D=!O||N||g||k,v="";return D&&!(O&&A)&&(v+=` +`+E),v+=E?_.replace(/\n/g,` +`+E):_,D&&(v+=` +`),'"""'+v.replace(/"""/g,'\\"""')+'"""'}}}),Ne=L({"node_modules/graphql/language/lexer.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.isPunctuatorTokenKind=E,a.Lexer=void 0;var d=Z(),i=te(),c=ne(),r=ke(),_=function(){function t(y){var f=new i.Token(c.TokenKind.SOF,0,0,0,0,null);this.source=y,this.lastToken=f,this.token=f,this.line=1,this.lineStart=0}var u=t.prototype;return u.advance=function(){this.lastToken=this.token;var f=this.token=this.lookahead();return f},u.lookahead=function(){var f=this.token;if(f.kind!==c.TokenKind.EOF)do{var m;f=(m=f.next)!==null&&m!==void 0?m:f.next=O(this,f)}while(f.kind===c.TokenKind.COMMENT);return f},t}();a.Lexer=_;function E(t){return t===c.TokenKind.BANG||t===c.TokenKind.DOLLAR||t===c.TokenKind.AMP||t===c.TokenKind.PAREN_L||t===c.TokenKind.PAREN_R||t===c.TokenKind.SPREAD||t===c.TokenKind.COLON||t===c.TokenKind.EQUALS||t===c.TokenKind.AT||t===c.TokenKind.BRACKET_L||t===c.TokenKind.BRACKET_R||t===c.TokenKind.BRACE_L||t===c.TokenKind.PIPE||t===c.TokenKind.BRACE_R}function k(t){return isNaN(t)?c.TokenKind.EOF:t<127?JSON.stringify(String.fromCharCode(t)):'"\\u'.concat(("00"+t.toString(16).toUpperCase()).slice(-4),'"')}function O(t,u){for(var y=t.source,f=y.body,m=f.length,o=u.end;o31||h===9));return new i.Token(c.TokenKind.COMMENT,u,l,y,f,m,o.slice(u+1,l))}function g(t,u,y,f,m,o){var h=t.body,l=y,T=u,S=!1;if(l===45&&(l=h.charCodeAt(++T)),l===48){if(l=h.charCodeAt(++T),l>=48&&l<=57)throw(0,d.syntaxError)(t,T,"Invalid number, unexpected digit after 0: ".concat(k(l),"."))}else T=D(t,T,l),l=h.charCodeAt(T);if(l===46&&(S=!0,l=h.charCodeAt(++T),T=D(t,T,l),l=h.charCodeAt(T)),(l===69||l===101)&&(S=!0,l=h.charCodeAt(++T),(l===43||l===45)&&(l=h.charCodeAt(++T)),T=D(t,T,l),l=h.charCodeAt(T)),l===46||n(l))throw(0,d.syntaxError)(t,T,"Invalid number, expected digit but got: ".concat(k(l),"."));return new i.Token(S?c.TokenKind.FLOAT:c.TokenKind.INT,u,T,f,m,o,h.slice(u,T))}function D(t,u,y){var f=t.body,m=u,o=y;if(o>=48&&o<=57){do o=f.charCodeAt(++m);while(o>=48&&o<=57);return m}throw(0,d.syntaxError)(t,m,"Invalid number, expected digit but got: ".concat(k(o),"."))}function v(t,u,y,f,m){for(var o=t.body,h=u+1,l=h,T=0,S="";h=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:-1}function e(t,u,y,f,m){for(var o=t.body,h=o.length,l=u+1,T=0;l!==h&&!isNaN(T=o.charCodeAt(l))&&(T===95||T>=48&&T<=57||T>=65&&T<=90||T>=97&&T<=122);)++l;return new i.Token(c.TokenKind.NAME,u,l,y,f,m,o.slice(u,l))}function n(t){return t===95||t>=65&&t<=90||t>=97&&t<=122}}}),Oe=L({"node_modules/graphql/language/parser.js"(a){"use strict";K(),Object.defineProperty(a,"__esModule",{value:!0}),a.parse=O,a.parseValue=A,a.parseType=N,a.Parser=void 0;var d=Z(),i=he(),c=te(),r=ne(),_=me(),E=ye(),k=Ne();function O(I,s){var p=new g(I,s);return p.parseDocument()}function A(I,s){var p=new g(I,s);p.expectToken(r.TokenKind.SOF);var e=p.parseValueLiteral(!1);return p.expectToken(r.TokenKind.EOF),e}function N(I,s){var p=new g(I,s);p.expectToken(r.TokenKind.SOF);var e=p.parseTypeReference();return p.expectToken(r.TokenKind.EOF),e}var g=function(){function I(p,e){var n=(0,_.isSource)(p)?p:new _.Source(p);this._lexer=new k.Lexer(n),this._options=e}var s=I.prototype;return s.parseName=function(){var e=this.expectToken(r.TokenKind.NAME);return{kind:i.Kind.NAME,value:e.value,loc:this.loc(e)}},s.parseDocument=function(){var e=this._lexer.token;return{kind:i.Kind.DOCUMENT,definitions:this.many(r.TokenKind.SOF,this.parseDefinition,r.TokenKind.EOF),loc:this.loc(e)}},s.parseDefinition=function(){if(this.peek(r.TokenKind.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(r.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},s.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(r.TokenKind.BRACE_L))return{kind:i.Kind.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var n=this.parseOperationType(),t;return this.peek(r.TokenKind.NAME)&&(t=this.parseName()),{kind:i.Kind.OPERATION_DEFINITION,operation:n,name:t,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},s.parseOperationType=function(){var e=this.expectToken(r.TokenKind.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},s.parseVariableDefinitions=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseVariableDefinition,r.TokenKind.PAREN_R)},s.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:i.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(r.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(r.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},s.parseVariable=function(){var e=this._lexer.token;return this.expectToken(r.TokenKind.DOLLAR),{kind:i.Kind.VARIABLE,name:this.parseName(),loc:this.loc(e)}},s.parseSelectionSet=function(){var e=this._lexer.token;return{kind:i.Kind.SELECTION_SET,selections:this.many(r.TokenKind.BRACE_L,this.parseSelection,r.TokenKind.BRACE_R),loc:this.loc(e)}},s.parseSelection=function(){return this.peek(r.TokenKind.SPREAD)?this.parseFragment():this.parseField()},s.parseField=function(){var e=this._lexer.token,n=this.parseName(),t,u;return this.expectOptionalToken(r.TokenKind.COLON)?(t=n,u=this.parseName()):u=n,{kind:i.Kind.FIELD,alias:t,name:u,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(r.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(e)}},s.parseArguments=function(e){var n=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(r.TokenKind.PAREN_L,n,r.TokenKind.PAREN_R)},s.parseArgument=function(){var e=this._lexer.token,n=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:i.Kind.ARGUMENT,name:n,value:this.parseValueLiteral(!1),loc:this.loc(e)}},s.parseConstArgument=function(){var e=this._lexer.token;return{kind:i.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(r.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},s.parseFragment=function(){var e=this._lexer.token;this.expectToken(r.TokenKind.SPREAD);var n=this.expectOptionalKeyword("on");return!n&&this.peek(r.TokenKind.NAME)?{kind:i.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:i.Kind.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},s.parseFragmentDefinition=function(){var e,n=this._lexer.token;return this.expectKeyword("fragment"),((e=this._options)===null||e===void 0?void 0:e.experimentalFragmentVariables)===!0?{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}:{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},s.parseFragmentName=function(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()},s.parseValueLiteral=function(e){var n=this._lexer.token;switch(n.kind){case r.TokenKind.BRACKET_L:return this.parseList(e);case r.TokenKind.BRACE_L:return this.parseObject(e);case r.TokenKind.INT:return this._lexer.advance(),{kind:i.Kind.INT,value:n.value,loc:this.loc(n)};case r.TokenKind.FLOAT:return this._lexer.advance(),{kind:i.Kind.FLOAT,value:n.value,loc:this.loc(n)};case r.TokenKind.STRING:case r.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case r.TokenKind.NAME:switch(this._lexer.advance(),n.value){case"true":return{kind:i.Kind.BOOLEAN,value:!0,loc:this.loc(n)};case"false":return{kind:i.Kind.BOOLEAN,value:!1,loc:this.loc(n)};case"null":return{kind:i.Kind.NULL,loc:this.loc(n)};default:return{kind:i.Kind.ENUM,value:n.value,loc:this.loc(n)}}case r.TokenKind.DOLLAR:if(!e)return this.parseVariable();break}throw this.unexpected()},s.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:i.Kind.STRING,value:e.value,block:e.kind===r.TokenKind.BLOCK_STRING,loc:this.loc(e)}},s.parseList=function(e){var n=this,t=this._lexer.token,u=function(){return n.parseValueLiteral(e)};return{kind:i.Kind.LIST,values:this.any(r.TokenKind.BRACKET_L,u,r.TokenKind.BRACKET_R),loc:this.loc(t)}},s.parseObject=function(e){var n=this,t=this._lexer.token,u=function(){return n.parseObjectField(e)};return{kind:i.Kind.OBJECT,fields:this.any(r.TokenKind.BRACE_L,u,r.TokenKind.BRACE_R),loc:this.loc(t)}},s.parseObjectField=function(e){var n=this._lexer.token,t=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:i.Kind.OBJECT_FIELD,name:t,value:this.parseValueLiteral(e),loc:this.loc(n)}},s.parseDirectives=function(e){for(var n=[];this.peek(r.TokenKind.AT);)n.push(this.parseDirective(e));return n},s.parseDirective=function(e){var n=this._lexer.token;return this.expectToken(r.TokenKind.AT),{kind:i.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(n)}},s.parseTypeReference=function(){var e=this._lexer.token,n;return this.expectOptionalToken(r.TokenKind.BRACKET_L)?(n=this.parseTypeReference(),this.expectToken(r.TokenKind.BRACKET_R),n={kind:i.Kind.LIST_TYPE,type:n,loc:this.loc(e)}):n=this.parseNamedType(),this.expectOptionalToken(r.TokenKind.BANG)?{kind:i.Kind.NON_NULL_TYPE,type:n,loc:this.loc(e)}:n},s.parseNamedType=function(){var e=this._lexer.token;return{kind:i.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},s.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===r.TokenKind.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},s.peekDescription=function(){return this.peek(r.TokenKind.STRING)||this.peek(r.TokenKind.BLOCK_STRING)},s.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},s.parseSchemaDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("schema");var t=this.parseDirectives(!0),u=this.many(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);return{kind:i.Kind.SCHEMA_DEFINITION,description:n,directives:t,operationTypes:u,loc:this.loc(e)}},s.parseOperationTypeDefinition=function(){var e=this._lexer.token,n=this.parseOperationType();this.expectToken(r.TokenKind.COLON);var t=this.parseNamedType();return{kind:i.Kind.OPERATION_TYPE_DEFINITION,operation:n,type:t,loc:this.loc(e)}},s.parseScalarTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("scalar");var t=this.parseName(),u=this.parseDirectives(!0);return{kind:i.Kind.SCALAR_TYPE_DEFINITION,description:n,name:t,directives:u,loc:this.loc(e)}},s.parseObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("type");var t=this.parseName(),u=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:i.Kind.OBJECT_TYPE_DEFINITION,description:n,name:t,interfaces:u,directives:y,fields:f,loc:this.loc(e)}},s.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if(((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var n=[];this.expectOptionalToken(r.TokenKind.AMP);do n.push(this.parseNamedType());while(this.expectOptionalToken(r.TokenKind.AMP)||this.peek(r.TokenKind.NAME));return n}return this.delimitedMany(r.TokenKind.AMP,this.parseNamedType)},s.parseFieldsDefinition=function(){var e;return((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(r.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===r.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(r.TokenKind.BRACE_L,this.parseFieldDefinition,r.TokenKind.BRACE_R)},s.parseFieldDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),u=this.parseArgumentDefs();this.expectToken(r.TokenKind.COLON);var y=this.parseTypeReference(),f=this.parseDirectives(!0);return{kind:i.Kind.FIELD_DEFINITION,description:n,name:t,arguments:u,type:y,directives:f,loc:this.loc(e)}},s.parseArgumentDefs=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseInputValueDef,r.TokenKind.PAREN_R)},s.parseInputValueDef=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName();this.expectToken(r.TokenKind.COLON);var u=this.parseTypeReference(),y;this.expectOptionalToken(r.TokenKind.EQUALS)&&(y=this.parseValueLiteral(!0));var f=this.parseDirectives(!0);return{kind:i.Kind.INPUT_VALUE_DEFINITION,description:n,name:t,type:u,defaultValue:y,directives:f,loc:this.loc(e)}},s.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("interface");var t=this.parseName(),u=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:i.Kind.INTERFACE_TYPE_DEFINITION,description:n,name:t,interfaces:u,directives:y,fields:f,loc:this.loc(e)}},s.parseUnionTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("union");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseUnionMemberTypes();return{kind:i.Kind.UNION_TYPE_DEFINITION,description:n,name:t,directives:u,types:y,loc:this.loc(e)}},s.parseUnionMemberTypes=function(){return this.expectOptionalToken(r.TokenKind.EQUALS)?this.delimitedMany(r.TokenKind.PIPE,this.parseNamedType):[]},s.parseEnumTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("enum");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseEnumValuesDefinition();return{kind:i.Kind.ENUM_TYPE_DEFINITION,description:n,name:t,directives:u,values:y,loc:this.loc(e)}},s.parseEnumValuesDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseEnumValueDefinition,r.TokenKind.BRACE_R)},s.parseEnumValueDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),u=this.parseDirectives(!0);return{kind:i.Kind.ENUM_VALUE_DEFINITION,description:n,name:t,directives:u,loc:this.loc(e)}},s.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("input");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseInputFieldsDefinition();return{kind:i.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:t,directives:u,fields:y,loc:this.loc(e)}},s.parseInputFieldsDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseInputValueDef,r.TokenKind.BRACE_R)},s.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===r.TokenKind.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},s.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var n=this.parseDirectives(!0),t=this.optionalMany(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);if(n.length===0&&t.length===0)throw this.unexpected();return{kind:i.Kind.SCHEMA_EXTENSION,directives:n,operationTypes:t,loc:this.loc(e)}},s.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var n=this.parseName(),t=this.parseDirectives(!0);if(t.length===0)throw this.unexpected();return{kind:i.Kind.SCALAR_TYPE_EXTENSION,name:n,directives:t,loc:this.loc(e)}},s.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var n=this.parseName(),t=this.parseImplementsInterfaces(),u=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&u.length===0&&y.length===0)throw this.unexpected();return{kind:i.Kind.OBJECT_TYPE_EXTENSION,name:n,interfaces:t,directives:u,fields:y,loc:this.loc(e)}},s.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var n=this.parseName(),t=this.parseImplementsInterfaces(),u=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&u.length===0&&y.length===0)throw this.unexpected();return{kind:i.Kind.INTERFACE_TYPE_EXTENSION,name:n,interfaces:t,directives:u,fields:y,loc:this.loc(e)}},s.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseUnionMemberTypes();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.UNION_TYPE_EXTENSION,name:n,directives:t,types:u,loc:this.loc(e)}},s.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseEnumValuesDefinition();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.ENUM_TYPE_EXTENSION,name:n,directives:t,values:u,loc:this.loc(e)}},s.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseInputFieldsDefinition();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:t,fields:u,loc:this.loc(e)}},s.parseDirectiveDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("directive"),this.expectToken(r.TokenKind.AT);var t=this.parseName(),u=this.parseArgumentDefs(),y=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var f=this.parseDirectiveLocations();return{kind:i.Kind.DIRECTIVE_DEFINITION,description:n,name:t,arguments:u,repeatable:y,locations:f,loc:this.loc(e)}},s.parseDirectiveLocations=function(){return this.delimitedMany(r.TokenKind.PIPE,this.parseDirectiveLocation)},s.parseDirectiveLocation=function(){var e=this._lexer.token,n=this.parseName();if(E.DirectiveLocation[n.value]!==void 0)return n;throw this.unexpected(e)},s.loc=function(e){var n;if(((n=this._options)===null||n===void 0?void 0:n.noLocation)!==!0)return new c.Location(e,this._lexer.lastToken,this._lexer.source)},s.peek=function(e){return this._lexer.token.kind===e},s.expectToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n;throw(0,d.syntaxError)(this._lexer.source,n.start,"Expected ".concat(v(e),", found ").concat(D(n),"."))},s.expectOptionalToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n},s.expectKeyword=function(e){var n=this._lexer.token;if(n.kind===r.TokenKind.NAME&&n.value===e)this._lexer.advance();else throw(0,d.syntaxError)(this._lexer.source,n.start,'Expected "'.concat(e,'", found ').concat(D(n),"."))},s.expectOptionalKeyword=function(e){var n=this._lexer.token;return n.kind===r.TokenKind.NAME&&n.value===e?(this._lexer.advance(),!0):!1},s.unexpected=function(e){var n=e!=null?e:this._lexer.token;return(0,d.syntaxError)(this._lexer.source,n.start,"Unexpected ".concat(D(n),"."))},s.any=function(e,n,t){this.expectToken(e);for(var u=[];!this.expectOptionalToken(t);)u.push(n.call(this));return u},s.optionalMany=function(e,n,t){if(this.expectOptionalToken(e)){var u=[];do u.push(n.call(this));while(!this.expectOptionalToken(t));return u}return[]},s.many=function(e,n,t){this.expectToken(e);var u=[];do u.push(n.call(this));while(!this.expectOptionalToken(t));return u},s.delimitedMany=function(e,n){this.expectOptionalToken(e);var t=[];do t.push(n.call(this));while(this.expectOptionalToken(e));return t},I}();a.Parser=g;function D(I){var s=I.value;return v(I.kind)+(s!=null?' "'.concat(s,'"'):"")}function v(I){return(0,k.isPunctuatorTokenKind)(I)?'"'.concat(I,'"'):I}}});K();var Ie=ce(),ge=ue(),{hasPragma:Se}=le(),{locStart:Ae,locEnd:De}=pe();function Ke(a){let d=[],{startToken:i}=a.loc,{next:c}=i;for(;c.kind!=="";)c.kind==="Comment"&&(Object.assign(c,{column:c.column-1}),d.push(c)),c=c.next;return d}function ie(a){if(a&&typeof a=="object"){delete a.startToken,delete a.endToken,delete a.prev,delete a.next;for(let d in a)ie(a[d])}return a}var X={allowLegacySDLImplementsInterfaces:!1,experimentalFragmentVariables:!0};function Le(a){let{GraphQLError:d}=W();if(a instanceof d){let{message:i,locations:[c]}=a;return Ie(i,{start:c})}return a}function xe(a){let{parse:d}=Oe(),{result:i,error:c}=ge(()=>d(a,Object.assign({},X)),()=>d(a,Object.assign(Object.assign({},X),{},{allowLegacySDLImplementsInterfaces:!0})));if(!i)throw Le(c);return i.comments=Ke(i),ie(i),i}ae.exports={parsers:{graphql:{parse:xe,astFormat:"graphql",hasPragma:Se,locStart:Ae,locEnd:De}}}});return be();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-html.js b/node_modules/prettier/parser-html.js new file mode 100644 index 0000000..7017429 --- /dev/null +++ b/node_modules/prettier/parser-html.js @@ -0,0 +1,36 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.html=e()}})(function(){"use strict";var y=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var G=y((cl,zr)=>{var we=function(e){return e&&e.Math==Math&&e};zr.exports=we(typeof globalThis=="object"&&globalThis)||we(typeof window=="object"&&window)||we(typeof self=="object"&&self)||we(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var se=y((Dl,Wr)=>{Wr.exports=function(e){try{return!!e()}catch{return!0}}});var oe=y((ll,Yr)=>{var bs=se();Yr.exports=!bs(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Ne=y((hl,Qr)=>{var ws=se();Qr.exports=!ws(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var ce=y((pl,Kr)=>{var Ns=Ne(),Oe=Function.prototype.call;Kr.exports=Ns?Oe.bind(Oe):function(){return Oe.apply(Oe,arguments)}});var rt=y(et=>{"use strict";var Jr={}.propertyIsEnumerable,Zr=Object.getOwnPropertyDescriptor,Os=Zr&&!Jr.call({1:2},1);et.f=Os?function(r){var t=Zr(this,r);return!!t&&t.enumerable}:Jr});var qe=y((dl,tt)=>{tt.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var Q=y((El,st)=>{var ut=Ne(),nt=Function.prototype,qs=nt.bind,er=nt.call,Is=ut&&qs.bind(er,er);st.exports=ut?function(e){return e&&Is(e)}:function(e){return e&&function(){return er.apply(e,arguments)}}});var Ie=y((Cl,it)=>{var at=Q(),Rs=at({}.toString),xs=at("".slice);it.exports=function(e){return xs(Rs(e),8,-1)}});var ct=y((ml,ot)=>{var Ps=G(),ks=Q(),Ls=se(),Ms=Ie(),rr=Ps.Object,js=ks("".split);ot.exports=Ls(function(){return!rr("z").propertyIsEnumerable(0)})?function(e){return Ms(e)=="String"?js(e,""):rr(e)}:rr});var tr=y((gl,Dt)=>{var $s=G(),Us=$s.TypeError;Dt.exports=function(e){if(e==null)throw Us("Can't call method on "+e);return e}});var Re=y((Fl,lt)=>{var Gs=ct(),Vs=tr();lt.exports=function(e){return Gs(Vs(e))}});var K=y((Al,ht)=>{ht.exports=function(e){return typeof e=="function"}});var De=y((vl,pt)=>{var Xs=K();pt.exports=function(e){return typeof e=="object"?e!==null:Xs(e)}});var ge=y((_l,ft)=>{var ur=G(),Hs=K(),zs=function(e){return Hs(e)?e:void 0};ft.exports=function(e,r){return arguments.length<2?zs(ur[e]):ur[e]&&ur[e][r]}});var nr=y((Sl,dt)=>{var Ws=Q();dt.exports=Ws({}.isPrototypeOf)});var Ct=y((yl,Et)=>{var Ys=ge();Et.exports=Ys("navigator","userAgent")||""});var St=y((Tl,_t)=>{var vt=G(),sr=Ct(),mt=vt.process,gt=vt.Deno,Ft=mt&&mt.versions||gt&>.version,At=Ft&&Ft.v8,te,xe;At&&(te=At.split("."),xe=te[0]>0&&te[0]<4?1:+(te[0]+te[1]));!xe&&sr&&(te=sr.match(/Edge\/(\d+)/),(!te||te[1]>=74)&&(te=sr.match(/Chrome\/(\d+)/),te&&(xe=+te[1])));_t.exports=xe});var ar=y((Bl,Tt)=>{var yt=St(),Qs=se();Tt.exports=!!Object.getOwnPropertySymbols&&!Qs(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&yt&&yt<41})});var ir=y((bl,Bt)=>{var Ks=ar();Bt.exports=Ks&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var or=y((wl,bt)=>{var Js=G(),Zs=ge(),ea=K(),ra=nr(),ta=ir(),ua=Js.Object;bt.exports=ta?function(e){return typeof e=="symbol"}:function(e){var r=Zs("Symbol");return ea(r)&&ra(r.prototype,ua(e))}});var Pe=y((Nl,wt)=>{var na=G(),sa=na.String;wt.exports=function(e){try{return sa(e)}catch{return"Object"}}});var Fe=y((Ol,Nt)=>{var aa=G(),ia=K(),oa=Pe(),ca=aa.TypeError;Nt.exports=function(e){if(ia(e))return e;throw ca(oa(e)+" is not a function")}});var ke=y((ql,Ot)=>{var Da=Fe();Ot.exports=function(e,r){var t=e[r];return t==null?void 0:Da(t)}});var It=y((Il,qt)=>{var la=G(),cr=ce(),Dr=K(),lr=De(),ha=la.TypeError;qt.exports=function(e,r){var t,s;if(r==="string"&&Dr(t=e.toString)&&!lr(s=cr(t,e))||Dr(t=e.valueOf)&&!lr(s=cr(t,e))||r!=="string"&&Dr(t=e.toString)&&!lr(s=cr(t,e)))return s;throw ha("Can't convert object to primitive value")}});var xt=y((Rl,Rt)=>{Rt.exports=!1});var Le=y((xl,kt)=>{var Pt=G(),pa=Object.defineProperty;kt.exports=function(e,r){try{pa(Pt,e,{value:r,configurable:!0,writable:!0})}catch{Pt[e]=r}return r}});var Me=y((Pl,Mt)=>{var fa=G(),da=Le(),Lt="__core-js_shared__",Ea=fa[Lt]||da(Lt,{});Mt.exports=Ea});var hr=y((kl,$t)=>{var Ca=xt(),jt=Me();($t.exports=function(e,r){return jt[e]||(jt[e]=r!==void 0?r:{})})("versions",[]).push({version:"3.22.2",mode:Ca?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var pr=y((Ll,Ut)=>{var ma=G(),ga=tr(),Fa=ma.Object;Ut.exports=function(e){return Fa(ga(e))}});var ae=y((Ml,Gt)=>{var Aa=Q(),va=pr(),_a=Aa({}.hasOwnProperty);Gt.exports=Object.hasOwn||function(r,t){return _a(va(r),t)}});var fr=y((jl,Vt)=>{var Sa=Q(),ya=0,Ta=Math.random(),Ba=Sa(1 .toString);Vt.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+Ba(++ya+Ta,36)}});var he=y(($l,Yt)=>{var ba=G(),wa=hr(),Xt=ae(),Na=fr(),Ht=ar(),Wt=ir(),fe=wa("wks"),le=ba.Symbol,zt=le&&le.for,Oa=Wt?le:le&&le.withoutSetter||Na;Yt.exports=function(e){if(!Xt(fe,e)||!(Ht||typeof fe[e]=="string")){var r="Symbol."+e;Ht&&Xt(le,e)?fe[e]=le[e]:Wt&&zt?fe[e]=zt(r):fe[e]=Oa(r)}return fe[e]}});var Zt=y((Ul,Jt)=>{var qa=G(),Ia=ce(),Qt=De(),Kt=or(),Ra=ke(),xa=It(),Pa=he(),ka=qa.TypeError,La=Pa("toPrimitive");Jt.exports=function(e,r){if(!Qt(e)||Kt(e))return e;var t=Ra(e,La),s;if(t){if(r===void 0&&(r="default"),s=Ia(t,e,r),!Qt(s)||Kt(s))return s;throw ka("Can't convert object to primitive value")}return r===void 0&&(r="number"),xa(e,r)}});var je=y((Gl,eu)=>{var Ma=Zt(),ja=or();eu.exports=function(e){var r=Ma(e,"string");return ja(r)?r:r+""}});var uu=y((Vl,tu)=>{var $a=G(),ru=De(),dr=$a.document,Ua=ru(dr)&&ru(dr.createElement);tu.exports=function(e){return Ua?dr.createElement(e):{}}});var Er=y((Xl,nu)=>{var Ga=oe(),Va=se(),Xa=uu();nu.exports=!Ga&&!Va(function(){return Object.defineProperty(Xa("div"),"a",{get:function(){return 7}}).a!=7})});var Cr=y(au=>{var Ha=oe(),za=ce(),Wa=rt(),Ya=qe(),Qa=Re(),Ka=je(),Ja=ae(),Za=Er(),su=Object.getOwnPropertyDescriptor;au.f=Ha?su:function(r,t){if(r=Qa(r),t=Ka(t),Za)try{return su(r,t)}catch{}if(Ja(r,t))return Ya(!za(Wa.f,r,t),r[t])}});var ou=y((zl,iu)=>{var ei=oe(),ri=se();iu.exports=ei&&ri(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var de=y((Wl,Du)=>{var cu=G(),ti=De(),ui=cu.String,ni=cu.TypeError;Du.exports=function(e){if(ti(e))return e;throw ni(ui(e)+" is not an object")}});var Ue=y(hu=>{var si=G(),ai=oe(),ii=Er(),oi=ou(),$e=de(),lu=je(),ci=si.TypeError,mr=Object.defineProperty,Di=Object.getOwnPropertyDescriptor,gr="enumerable",Fr="configurable",Ar="writable";hu.f=ai?oi?function(r,t,s){if($e(r),t=lu(t),$e(s),typeof r=="function"&&t==="prototype"&&"value"in s&&Ar in s&&!s[Ar]){var c=Di(r,t);c&&c[Ar]&&(r[t]=s.value,s={configurable:Fr in s?s[Fr]:c[Fr],enumerable:gr in s?s[gr]:c[gr],writable:!1})}return mr(r,t,s)}:mr:function(r,t,s){if($e(r),t=lu(t),$e(s),ii)try{return mr(r,t,s)}catch{}if("get"in s||"set"in s)throw ci("Accessors not supported");return"value"in s&&(r[t]=s.value),r}});var Ge=y((Ql,pu)=>{var li=oe(),hi=Ue(),pi=qe();pu.exports=li?function(e,r,t){return hi.f(e,r,pi(1,t))}:function(e,r,t){return e[r]=t,e}});var Ve=y((Kl,fu)=>{var fi=Q(),di=K(),vr=Me(),Ei=fi(Function.toString);di(vr.inspectSource)||(vr.inspectSource=function(e){return Ei(e)});fu.exports=vr.inspectSource});var Cu=y((Jl,Eu)=>{var Ci=G(),mi=K(),gi=Ve(),du=Ci.WeakMap;Eu.exports=mi(du)&&/native code/.test(gi(du))});var Fu=y((Zl,gu)=>{var Fi=hr(),Ai=fr(),mu=Fi("keys");gu.exports=function(e){return mu[e]||(mu[e]=Ai(e))}});var _r=y((e2,Au)=>{Au.exports={}});var Bu=y((r2,Tu)=>{var vi=Cu(),yu=G(),Sr=Q(),_i=De(),Si=Ge(),yr=ae(),Tr=Me(),yi=Fu(),Ti=_r(),vu="Object already initialized",br=yu.TypeError,Bi=yu.WeakMap,Xe,Ae,He,bi=function(e){return He(e)?Ae(e):Xe(e,{})},wi=function(e){return function(r){var t;if(!_i(r)||(t=Ae(r)).type!==e)throw br("Incompatible receiver, "+e+" required");return t}};vi||Tr.state?(ie=Tr.state||(Tr.state=new Bi),_u=Sr(ie.get),Br=Sr(ie.has),Su=Sr(ie.set),Xe=function(e,r){if(Br(ie,e))throw new br(vu);return r.facade=e,Su(ie,e,r),r},Ae=function(e){return _u(ie,e)||{}},He=function(e){return Br(ie,e)}):(pe=yi("state"),Ti[pe]=!0,Xe=function(e,r){if(yr(e,pe))throw new br(vu);return r.facade=e,Si(e,pe,r),r},Ae=function(e){return yr(e,pe)?e[pe]:{}},He=function(e){return yr(e,pe)});var ie,_u,Br,Su,pe;Tu.exports={set:Xe,get:Ae,has:He,enforce:bi,getterFor:wi}});var Nu=y((t2,wu)=>{var wr=oe(),Ni=ae(),bu=Function.prototype,Oi=wr&&Object.getOwnPropertyDescriptor,Nr=Ni(bu,"name"),qi=Nr&&function(){}.name==="something",Ii=Nr&&(!wr||wr&&Oi(bu,"name").configurable);wu.exports={EXISTS:Nr,PROPER:qi,CONFIGURABLE:Ii}});var xu=y((u2,Ru)=>{var Ri=G(),Ou=K(),xi=ae(),qu=Ge(),Pi=Le(),ki=Ve(),Iu=Bu(),Li=Nu().CONFIGURABLE,Mi=Iu.get,ji=Iu.enforce,$i=String(String).split("String");(Ru.exports=function(e,r,t,s){var c=s?!!s.unsafe:!1,n=s?!!s.enumerable:!1,a=s?!!s.noTargetGet:!1,p=s&&s.name!==void 0?s.name:r,D;if(Ou(t)&&(String(p).slice(0,7)==="Symbol("&&(p="["+String(p).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!xi(t,"name")||Li&&t.name!==p)&&qu(t,"name",p),D=ji(t),D.source||(D.source=$i.join(typeof p=="string"?p:""))),e===Ri){n?e[r]=t:Pi(r,t);return}else c?!a&&e[r]&&(n=!0):delete e[r];n?e[r]=t:qu(e,r,t)})(Function.prototype,"toString",function(){return Ou(this)&&Mi(this).source||ki(this)})});var Or=y((n2,Pu)=>{var Ui=Math.ceil,Gi=Math.floor;Pu.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?Gi:Ui)(r)}});var Lu=y((s2,ku)=>{var Vi=Or(),Xi=Math.max,Hi=Math.min;ku.exports=function(e,r){var t=Vi(e);return t<0?Xi(t+r,0):Hi(t,r)}});var ju=y((a2,Mu)=>{var zi=Or(),Wi=Math.min;Mu.exports=function(e){return e>0?Wi(zi(e),9007199254740991):0}});var ve=y((i2,$u)=>{var Yi=ju();$u.exports=function(e){return Yi(e.length)}});var Vu=y((o2,Gu)=>{var Qi=Re(),Ki=Lu(),Ji=ve(),Uu=function(e){return function(r,t,s){var c=Qi(r),n=Ji(c),a=Ki(s,n),p;if(e&&t!=t){for(;n>a;)if(p=c[a++],p!=p)return!0}else for(;n>a;a++)if((e||a in c)&&c[a]===t)return e||a||0;return!e&&-1}};Gu.exports={includes:Uu(!0),indexOf:Uu(!1)}});var zu=y((c2,Hu)=>{var Zi=Q(),qr=ae(),eo=Re(),ro=Vu().indexOf,to=_r(),Xu=Zi([].push);Hu.exports=function(e,r){var t=eo(e),s=0,c=[],n;for(n in t)!qr(to,n)&&qr(t,n)&&Xu(c,n);for(;r.length>s;)qr(t,n=r[s++])&&(~ro(c,n)||Xu(c,n));return c}});var Yu=y((D2,Wu)=>{Wu.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Ku=y(Qu=>{var uo=zu(),no=Yu(),so=no.concat("length","prototype");Qu.f=Object.getOwnPropertyNames||function(r){return uo(r,so)}});var Zu=y(Ju=>{Ju.f=Object.getOwnPropertySymbols});var rn=y((p2,en)=>{var ao=ge(),io=Q(),oo=Ku(),co=Zu(),Do=de(),lo=io([].concat);en.exports=ao("Reflect","ownKeys")||function(r){var t=oo.f(Do(r)),s=co.f;return s?lo(t,s(r)):t}});var nn=y((f2,un)=>{var tn=ae(),ho=rn(),po=Cr(),fo=Ue();un.exports=function(e,r,t){for(var s=ho(r),c=fo.f,n=po.f,a=0;a{var Eo=se(),Co=K(),mo=/#|\.prototype\./,_e=function(e,r){var t=Fo[go(e)];return t==vo?!0:t==Ao?!1:Co(r)?Eo(r):!!r},go=_e.normalize=function(e){return String(e).replace(mo,".").toLowerCase()},Fo=_e.data={},Ao=_e.NATIVE="N",vo=_e.POLYFILL="P";sn.exports=_e});var ze=y((E2,on)=>{var Ir=G(),_o=Cr().f,So=Ge(),yo=xu(),To=Le(),Bo=nn(),bo=an();on.exports=function(e,r){var t=e.target,s=e.global,c=e.stat,n,a,p,D,g,i;if(s?a=Ir:c?a=Ir[t]||To(t,{}):a=(Ir[t]||{}).prototype,a)for(p in r){if(g=r[p],e.noTargetGet?(i=_o(a,p),D=i&&i.value):D=a[p],n=bo(s?p:t+(c?".":"#")+p,e.forced),!n&&D!==void 0){if(typeof g==typeof D)continue;Bo(g,D)}(e.sham||D&&D.sham)&&So(g,"sham",!0),yo(a,p,g,e)}}});var cn=y(()=>{var wo=ze(),No=G();wo({global:!0},{globalThis:No})});var Dn=y(()=>{cn()});var Rr=y((A2,ln)=>{var Oo=Ie();ln.exports=Array.isArray||function(r){return Oo(r)=="Array"}});var xr=y((v2,pn)=>{var hn=Q(),qo=Fe(),Io=Ne(),Ro=hn(hn.bind);pn.exports=function(e,r){return qo(e),r===void 0?e:Io?Ro(e,r):function(){return e.apply(r,arguments)}}});var En=y((_2,dn)=>{"use strict";var xo=G(),Po=Rr(),ko=ve(),Lo=xr(),Mo=xo.TypeError,fn=function(e,r,t,s,c,n,a,p){for(var D=c,g=0,i=a?Lo(a,p):!1,l,h;g0&&Po(l))h=ko(l),D=fn(e,r,l,h,D,n-1)-1;else{if(D>=9007199254740991)throw Mo("Exceed the acceptable array length");e[D]=l}D++}g++}return D};dn.exports=fn});var gn=y((S2,mn)=>{var jo=he(),$o=jo("toStringTag"),Cn={};Cn[$o]="z";mn.exports=String(Cn)==="[object z]"});var Pr=y((y2,Fn)=>{var Uo=G(),Go=gn(),Vo=K(),We=Ie(),Xo=he(),Ho=Xo("toStringTag"),zo=Uo.Object,Wo=We(function(){return arguments}())=="Arguments",Yo=function(e,r){try{return e[r]}catch{}};Fn.exports=Go?We:function(e){var r,t,s;return e===void 0?"Undefined":e===null?"Null":typeof(t=Yo(r=zo(e),Ho))=="string"?t:Wo?We(r):(s=We(r))=="Object"&&Vo(r.callee)?"Arguments":s}});var Tn=y((T2,yn)=>{var Qo=Q(),Ko=se(),An=K(),Jo=Pr(),Zo=ge(),ec=Ve(),vn=function(){},rc=[],_n=Zo("Reflect","construct"),kr=/^\s*(?:class|function)\b/,tc=Qo(kr.exec),uc=!kr.exec(vn),Se=function(r){if(!An(r))return!1;try{return _n(vn,rc,r),!0}catch{return!1}},Sn=function(r){if(!An(r))return!1;switch(Jo(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return uc||!!tc(kr,ec(r))}catch{return!0}};Sn.sham=!0;yn.exports=!_n||Ko(function(){var e;return Se(Se.call)||!Se(Object)||!Se(function(){e=!0})||e})?Sn:Se});var Nn=y((B2,wn)=>{var nc=G(),Bn=Rr(),sc=Tn(),ac=De(),ic=he(),oc=ic("species"),bn=nc.Array;wn.exports=function(e){var r;return Bn(e)&&(r=e.constructor,sc(r)&&(r===bn||Bn(r.prototype))?r=void 0:ac(r)&&(r=r[oc],r===null&&(r=void 0))),r===void 0?bn:r}});var qn=y((b2,On)=>{var cc=Nn();On.exports=function(e,r){return new(cc(e))(r===0?0:r)}});var In=y(()=>{"use strict";var Dc=ze(),lc=En(),hc=Fe(),pc=pr(),fc=ve(),dc=qn();Dc({target:"Array",proto:!0},{flatMap:function(r){var t=pc(this),s=fc(t),c;return hc(r),c=dc(t,0),c.length=lc(c,t,t,s,0,1,r,arguments.length>1?arguments[1]:void 0),c}})});var Lr=y((O2,Rn)=>{Rn.exports={}});var Pn=y((q2,xn)=>{var Ec=he(),Cc=Lr(),mc=Ec("iterator"),gc=Array.prototype;xn.exports=function(e){return e!==void 0&&(Cc.Array===e||gc[mc]===e)}});var Mr=y((I2,Ln)=>{var Fc=Pr(),kn=ke(),Ac=Lr(),vc=he(),_c=vc("iterator");Ln.exports=function(e){if(e!=null)return kn(e,_c)||kn(e,"@@iterator")||Ac[Fc(e)]}});var jn=y((R2,Mn)=>{var Sc=G(),yc=ce(),Tc=Fe(),Bc=de(),bc=Pe(),wc=Mr(),Nc=Sc.TypeError;Mn.exports=function(e,r){var t=arguments.length<2?wc(e):r;if(Tc(t))return Bc(yc(t,e));throw Nc(bc(e)+" is not iterable")}});var Gn=y((x2,Un)=>{var Oc=ce(),$n=de(),qc=ke();Un.exports=function(e,r,t){var s,c;$n(e);try{if(s=qc(e,"return"),!s){if(r==="throw")throw t;return t}s=Oc(s,e)}catch(n){c=!0,s=n}if(r==="throw")throw t;if(c)throw s;return $n(s),t}});var Wn=y((P2,zn)=>{var Ic=G(),Rc=xr(),xc=ce(),Pc=de(),kc=Pe(),Lc=Pn(),Mc=ve(),Vn=nr(),jc=jn(),$c=Mr(),Xn=Gn(),Uc=Ic.TypeError,Ye=function(e,r){this.stopped=e,this.result=r},Hn=Ye.prototype;zn.exports=function(e,r,t){var s=t&&t.that,c=!!(t&&t.AS_ENTRIES),n=!!(t&&t.IS_ITERATOR),a=!!(t&&t.INTERRUPTED),p=Rc(r,s),D,g,i,l,h,C,d,m=function(B){return D&&Xn(D,"normal",B),new Ye(!0,B)},T=function(B){return c?(Pc(B),a?p(B[0],B[1],m):p(B[0],B[1])):a?p(B,m):p(B)};if(n)D=e;else{if(g=$c(e),!g)throw Uc(kc(e)+" is not iterable");if(Lc(g)){for(i=0,l=Mc(e);l>i;i++)if(h=T(e[i]),h&&Vn(Hn,h))return h;return new Ye(!1)}D=jc(e,g)}for(C=D.next;!(d=xc(C,D)).done;){try{h=T(d.value)}catch(B){Xn(D,"throw",B)}if(typeof h=="object"&&h&&Vn(Hn,h))return h}return new Ye(!1)}});var Qn=y((k2,Yn)=>{"use strict";var Gc=je(),Vc=Ue(),Xc=qe();Yn.exports=function(e,r,t){var s=Gc(r);s in e?Vc.f(e,s,Xc(0,t)):e[s]=t}});var Kn=y(()=>{var Hc=ze(),zc=Wn(),Wc=Qn();Hc({target:"Object",stat:!0},{fromEntries:function(r){var t={};return zc(r,function(s,c){Wc(t,s,c)},{AS_ENTRIES:!0}),t}})});var il=y((j2,Bs)=>{var Yc=["cliName","cliCategory","cliDescription"],Jn,Zn,es,rs,ts,us;function Qc(e,r){if(e==null)return{};var t=Kc(e,r),s,c;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(c=0;c=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}function Kc(e,r){if(e==null)return{};var t={},s=Object.keys(e),c,n;for(n=0;n=0)&&(t[c]=e[c]);return t}function Ee(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}Dn();In();Kn();var Jc=Object.create,Je=Object.defineProperty,Zc=Object.getOwnPropertyDescriptor,$r=Object.getOwnPropertyNames,eD=Object.getPrototypeOf,rD=Object.prototype.hasOwnProperty,Ce=(e,r)=>function(){return e&&(r=(0,e[$r(e)[0]])(e=0)),r},I=(e,r)=>function(){return r||(0,e[$r(e)[0]])((r={exports:{}}).exports,r),r.exports},cs=(e,r)=>{for(var t in r)Je(e,t,{get:r[t],enumerable:!0})},Ds=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of $r(r))!rD.call(e,c)&&c!==t&&Je(e,c,{get:()=>r[c],enumerable:!(s=Zc(r,c))||s.enumerable});return e},tD=(e,r,t)=>(t=e!=null?Jc(eD(e)):{},Ds(r||!e||!e.__esModule?Je(t,"default",{value:e,enumerable:!0}):t,e)),ls=e=>Ds(Je({},"__esModule",{value:!0}),e),ns,ss,ye,q=Ce({""(){ns={},ss=[],ye={env:ns,argv:ss}}}),hs=I({"node_modules/angular-html-parser/lib/compiler/src/chars.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0}),e.$EOF=0,e.$BSPACE=8,e.$TAB=9,e.$LF=10,e.$VTAB=11,e.$FF=12,e.$CR=13,e.$SPACE=32,e.$BANG=33,e.$DQ=34,e.$HASH=35,e.$$=36,e.$PERCENT=37,e.$AMPERSAND=38,e.$SQ=39,e.$LPAREN=40,e.$RPAREN=41,e.$STAR=42,e.$PLUS=43,e.$COMMA=44,e.$MINUS=45,e.$PERIOD=46,e.$SLASH=47,e.$COLON=58,e.$SEMICOLON=59,e.$LT=60,e.$EQ=61,e.$GT=62,e.$QUESTION=63,e.$0=48,e.$7=55,e.$9=57,e.$A=65,e.$E=69,e.$F=70,e.$X=88,e.$Z=90,e.$LBRACKET=91,e.$BACKSLASH=92,e.$RBRACKET=93,e.$CARET=94,e.$_=95,e.$a=97,e.$b=98,e.$e=101,e.$f=102,e.$n=110,e.$r=114,e.$t=116,e.$u=117,e.$v=118,e.$x=120,e.$z=122,e.$LBRACE=123,e.$BAR=124,e.$RBRACE=125,e.$NBSP=160,e.$PIPE=124,e.$TILDA=126,e.$AT=64,e.$BT=96;function r(p){return p>=e.$TAB&&p<=e.$SPACE||p==e.$NBSP}e.isWhitespace=r;function t(p){return e.$0<=p&&p<=e.$9}e.isDigit=t;function s(p){return p>=e.$a&&p<=e.$z||p>=e.$A&&p<=e.$Z}e.isAsciiLetter=s;function c(p){return p>=e.$a&&p<=e.$f||p>=e.$A&&p<=e.$F||t(p)}e.isAsciiHexDigit=c;function n(p){return p===e.$LF||p===e.$CR}e.isNewLine=n;function a(p){return e.$0<=p&&p<=e.$7}e.isOctalDigit=a}}),uD=I({"node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=class{constructor(s,c,n){this.filePath=s,this.name=c,this.members=n}assertNoMembers(){if(this.members.length)throw new Error("Illegal state: symbol without members expected, but got ".concat(JSON.stringify(this),"."))}};e.StaticSymbol=r;var t=class{constructor(){this.cache=new Map}get(s,c,n){n=n||[];let a=n.length?".".concat(n.join(".")):"",p='"'.concat(s,'".').concat(c).concat(a),D=this.cache.get(p);return D||(D=new r(s,c,n),this.cache.set(p,D)),D}};e.StaticSymbolCache=t}}),nD=I({"node_modules/angular-html-parser/lib/compiler/src/util.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=/-+([a-z0-9])/g;function t(o){return o.replace(r,function(){for(var E=arguments.length,f=new Array(E),F=0;Fa(f,this,E))}visitStringMap(o,E){let f={};return Object.keys(o).forEach(F=>{f[F]=a(o[F],this,E)}),f}visitPrimitive(o,E){return o}visitOther(o,E){return o}};e.ValueTransformer=g,e.SyncAsync={assertSync:o=>{if(_(o))throw new Error("Illegal state: value cannot be a promise");return o},then:(o,E)=>_(o)?o.then(E):E(o),all:o=>o.some(_)?Promise.all(o):o};function i(o){throw new Error("Internal Error: ".concat(o))}e.error=i;function l(o,E){let f=Error(o);return f[h]=!0,E&&(f[C]=E),f}e.syntaxError=l;var h="ngSyntaxError",C="ngParseErrors";function d(o){return o[h]}e.isSyntaxError=d;function m(o){return o[C]||[]}e.getParseErrors=m;function T(o){return o.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}e.escapeRegExp=T;var B=Object.getPrototypeOf({});function A(o){return typeof o=="object"&&o!==null&&Object.getPrototypeOf(o)===B}function N(o){let E="";for(let f=0;f=55296&&F<=56319&&o.length>f+1){let P=o.charCodeAt(f+1);P>=56320&&P<=57343&&(f++,F=(F-55296<<10)+P-56320+65536)}F<=127?E+=String.fromCharCode(F):F<=2047?E+=String.fromCharCode(F>>6&31|192,F&63|128):F<=65535?E+=String.fromCharCode(F>>12|224,F>>6&63|128,F&63|128):F<=2097151&&(E+=String.fromCharCode(F>>18&7|240,F>>12&63|128,F>>6&63|128,F&63|128))}return E}e.utf8Encode=N;function R(o){if(typeof o=="string")return o;if(o instanceof Array)return"["+o.map(R).join(", ")+"]";if(o==null)return""+o;if(o.overriddenName)return"".concat(o.overriddenName);if(o.name)return"".concat(o.name);if(!o.toString)return"object";let E=o.toString();if(E==null)return""+E;let f=E.indexOf(` +`);return f===-1?E:E.substring(0,f)}e.stringify=R;function $(o){return typeof o=="function"&&o.hasOwnProperty("__forward_ref__")?o():o}e.resolveForwardRef=$;function _(o){return!!o&&typeof o.then=="function"}e.isPromise=_;var O=class{constructor(o){this.full=o;let E=o.split(".");this.major=E[0],this.minor=E[1],this.patch=E.slice(2).join(".")}};e.Version=O;var x=typeof window<"u"&&window,k=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,M=typeof globalThis<"u"&&globalThis,u=M||x||k;e.global=u}}),sD=I({"node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=uD(),t=nD(),s=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/;function c(f){return f.replace(/\W/g,"_")}e.sanitizeIdentifier=c;var n=0;function a(f){if(!f||!f.reference)return null;let F=f.reference;if(F instanceof r.StaticSymbol)return F.name;if(F.__anonymousType)return F.__anonymousType;let P=t.stringify(F);return P.indexOf("(")>=0?(P="anonymous_".concat(n++),F.__anonymousType=P):P=c(P),P}e.identifierName=a;function p(f){let F=f.reference;return F instanceof r.StaticSymbol?F.filePath:"./".concat(t.stringify(F))}e.identifierModuleUrl=p;function D(f,F){return"View_".concat(a({reference:f}),"_").concat(F)}e.viewClassName=D;function g(f){return"RenderType_".concat(a({reference:f}))}e.rendererTypeName=g;function i(f){return"HostView_".concat(a({reference:f}))}e.hostViewClassName=i;function l(f){return"".concat(a({reference:f}),"NgFactory")}e.componentFactoryName=l;var h;(function(f){f[f.Pipe=0]="Pipe",f[f.Directive=1]="Directive",f[f.NgModule=2]="NgModule",f[f.Injectable=3]="Injectable"})(h=e.CompileSummaryKind||(e.CompileSummaryKind={}));function C(f){return f.value!=null?c(f.value):a(f.identifier)}e.tokenName=C;function d(f){return f.identifier!=null?f.identifier.reference:f.value}e.tokenReference=d;var m=class{constructor(){let{moduleUrl:f,styles:F,styleUrls:P}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.moduleUrl=f||null,this.styles=_(F),this.styleUrls=_(P)}};e.CompileStylesheetMetadata=m;var T=class{constructor(f){let{encapsulation:F,template:P,templateUrl:j,htmlAst:W,styles:X,styleUrls:H,externalStylesheets:z,animations:J,ngContentSelectors:Z,interpolation:ee,isInline:v,preserveWhitespaces:S}=f;if(this.encapsulation=F,this.template=P,this.templateUrl=j,this.htmlAst=W,this.styles=_(X),this.styleUrls=_(H),this.externalStylesheets=_(z),this.animations=J?x(J):[],this.ngContentSelectors=Z||[],ee&&ee.length!=2)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=ee,this.isInline=v,this.preserveWhitespaces=S}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};e.CompileTemplateMetadata=T;var B=class{static create(f){let{isHost:F,type:P,isComponent:j,selector:W,exportAs:X,changeDetection:H,inputs:z,outputs:J,host:Z,providers:ee,viewProviders:v,queries:S,guards:b,viewQueries:w,entryComponents:L,template:U,componentViewType:V,rendererType:Y,componentFactory:ue}=f,Be={},be={},Vr={};Z!=null&&Object.keys(Z).forEach(re=>{let ne=Z[re],me=re.match(s);me===null?Vr[re]=ne:me[1]!=null?be[me[1]]=ne:me[2]!=null&&(Be[me[2]]=ne)});let Xr={};z!=null&&z.forEach(re=>{let ne=t.splitAtColon(re,[re,re]);Xr[ne[0]]=ne[1]});let Hr={};return J!=null&&J.forEach(re=>{let ne=t.splitAtColon(re,[re,re]);Hr[ne[0]]=ne[1]}),new B({isHost:F,type:P,isComponent:!!j,selector:W,exportAs:X,changeDetection:H,inputs:Xr,outputs:Hr,hostListeners:Be,hostProperties:be,hostAttributes:Vr,providers:ee,viewProviders:v,queries:S,guards:b,viewQueries:w,entryComponents:L,template:U,componentViewType:V,rendererType:Y,componentFactory:ue})}constructor(f){let{isHost:F,type:P,isComponent:j,selector:W,exportAs:X,changeDetection:H,inputs:z,outputs:J,hostListeners:Z,hostProperties:ee,hostAttributes:v,providers:S,viewProviders:b,queries:w,guards:L,viewQueries:U,entryComponents:V,template:Y,componentViewType:ue,rendererType:Be,componentFactory:be}=f;this.isHost=!!F,this.type=P,this.isComponent=j,this.selector=W,this.exportAs=X,this.changeDetection=H,this.inputs=z,this.outputs=J,this.hostListeners=Z,this.hostProperties=ee,this.hostAttributes=v,this.providers=_(S),this.viewProviders=_(b),this.queries=_(w),this.guards=L,this.viewQueries=_(U),this.entryComponents=_(V),this.template=Y,this.componentViewType=ue,this.rendererType=Be,this.componentFactory=be}toSummary(){return{summaryKind:h.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}};e.CompileDirectiveMetadata=B;var A=class{constructor(f){let{type:F,name:P,pure:j}=f;this.type=F,this.name=P,this.pure=!!j}toSummary(){return{summaryKind:h.Pipe,type:this.type,name:this.name,pure:this.pure}}};e.CompilePipeMetadata=A;var N=class{};e.CompileShallowModuleMetadata=N;var R=class{constructor(f){let{type:F,providers:P,declaredDirectives:j,exportedDirectives:W,declaredPipes:X,exportedPipes:H,entryComponents:z,bootstrapComponents:J,importedModules:Z,exportedModules:ee,schemas:v,transitiveModule:S,id:b}=f;this.type=F||null,this.declaredDirectives=_(j),this.exportedDirectives=_(W),this.declaredPipes=_(X),this.exportedPipes=_(H),this.providers=_(P),this.entryComponents=_(z),this.bootstrapComponents=_(J),this.importedModules=_(Z),this.exportedModules=_(ee),this.schemas=_(v),this.id=b||null,this.transitiveModule=S||null}toSummary(){let f=this.transitiveModule;return{summaryKind:h.NgModule,type:this.type,entryComponents:f.entryComponents,providers:f.providers,modules:f.modules,exportedDirectives:f.exportedDirectives,exportedPipes:f.exportedPipes}}};e.CompileNgModuleMetadata=R;var $=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(f,F){this.providers.push({provider:f,module:F})}addDirective(f){this.directivesSet.has(f.reference)||(this.directivesSet.add(f.reference),this.directives.push(f))}addExportedDirective(f){this.exportedDirectivesSet.has(f.reference)||(this.exportedDirectivesSet.add(f.reference),this.exportedDirectives.push(f))}addPipe(f){this.pipesSet.has(f.reference)||(this.pipesSet.add(f.reference),this.pipes.push(f))}addExportedPipe(f){this.exportedPipesSet.has(f.reference)||(this.exportedPipesSet.add(f.reference),this.exportedPipes.push(f))}addModule(f){this.modulesSet.has(f.reference)||(this.modulesSet.add(f.reference),this.modules.push(f))}addEntryComponent(f){this.entryComponentsSet.has(f.componentType)||(this.entryComponentsSet.add(f.componentType),this.entryComponents.push(f))}};e.TransitiveCompileNgModuleMetadata=$;function _(f){return f||[]}var O=class{constructor(f,F){let{useClass:P,useValue:j,useExisting:W,useFactory:X,deps:H,multi:z}=F;this.token=f,this.useClass=P||null,this.useValue=j,this.useExisting=W,this.useFactory=X||null,this.dependencies=H||null,this.multi=!!z}};e.ProviderMeta=O;function x(f){return f.reduce((F,P)=>{let j=Array.isArray(P)?x(P):P;return F.concat(j)},[])}e.flatten=x;function k(f){return f.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}function M(f,F,P){let j;return P.isInline?F.type.reference instanceof r.StaticSymbol?j="".concat(F.type.reference.filePath,".").concat(F.type.reference.name,".html"):j="".concat(a(f),"/").concat(a(F.type),".html"):j=P.templateUrl,F.type.reference instanceof r.StaticSymbol?j:k(j)}e.templateSourceUrl=M;function u(f,F){let P=f.moduleUrl.split(/\/\\/g),j=P[P.length-1];return k("css/".concat(F).concat(j,".ngstyle.js"))}e.sharedStylesheetJitUrl=u;function o(f){return k("".concat(a(f.type),"/module.ngfactory.js"))}e.ngModuleJitUrl=o;function E(f,F){return k("".concat(a(f),"/").concat(a(F.type),".ngfactory.js"))}e.templateJitUrl=E}}),Te=I({"node_modules/angular-html-parser/lib/compiler/src/parse_util.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=hs(),t=sD(),s=class{constructor(i,l,h,C){this.file=i,this.offset=l,this.line=h,this.col=C}toString(){return this.offset!=null?"".concat(this.file.url,"@").concat(this.line,":").concat(this.col):this.file.url}moveBy(i){let l=this.file.content,h=l.length,C=this.offset,d=this.line,m=this.col;for(;C>0&&i<0;)if(C--,i++,l.charCodeAt(C)==r.$LF){d--;let B=l.substr(0,C-1).lastIndexOf(String.fromCharCode(r.$LF));m=B>0?C-B:C}else m--;for(;C0;){let T=l.charCodeAt(C);C++,i--,T==r.$LF?(d++,m=0):m++}return new s(this.file,C,d,m)}getContext(i,l){let h=this.file.content,C=this.offset;if(C!=null){C>h.length-1&&(C=h.length-1);let d=C,m=0,T=0;for(;m0&&(C--,m++,!(h[C]==` +`&&++T==l)););for(m=0,T=0;m2&&arguments[2]!==void 0?arguments[2]:null;this.start=i,this.end=l,this.details=h}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}};e.ParseSourceSpan=n,e.EMPTY_PARSE_LOCATION=new s(new c("",""),0,0,0),e.EMPTY_SOURCE_SPAN=new n(e.EMPTY_PARSE_LOCATION,e.EMPTY_PARSE_LOCATION);var a;(function(i){i[i.WARNING=0]="WARNING",i[i.ERROR=1]="ERROR"})(a=e.ParseErrorLevel||(e.ParseErrorLevel={}));var p=class{constructor(i,l){let h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:a.ERROR;this.span=i,this.msg=l,this.level=h}contextualMessage(){let i=this.span.start.getContext(100,3);return i?"".concat(this.msg,' ("').concat(i.before,"[").concat(a[this.level]," ->]").concat(i.after,'")'):this.msg}toString(){let i=this.span.details?", ".concat(this.span.details):"";return"".concat(this.contextualMessage(),": ").concat(this.span.start).concat(i)}};e.ParseError=p;function D(i,l){let h=t.identifierModuleUrl(l),C=h!=null?"in ".concat(i," ").concat(t.identifierName(l)," in ").concat(h):"in ".concat(i," ").concat(t.identifierName(l)),d=new c("",C);return new n(new s(d,-1,-1,-1),new s(d,-1,-1,-1))}e.typeSourceSpan=D;function g(i,l,h){let C="in ".concat(i," ").concat(l," in ").concat(h),d=new c("",C);return new n(new s(d,-1,-1,-1),new s(d,-1,-1,-1))}e.r3JitTypeSourceSpan=g}}),aD=I({"src/utils/front-matter/parse.js"(e,r){"use strict";q();var t=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function s(c){let n=c.match(t);if(!n)return{content:c};let{startDelimiter:a,language:p,value:D="",endDelimiter:g}=n.groups,i=p.trim()||"yaml";if(a==="+++"&&(i="toml"),i!=="yaml"&&a!==g)return{content:c};let[l]=n;return{frontMatter:{type:"front-matter",lang:i,value:D,startDelimiter:a,endDelimiter:g,raw:l.replace(/\n$/,"")},content:l.replace(/[^\n]/g," ")+c.slice(l.length)}}r.exports=s}}),ps=I({"src/utils/get-last.js"(e,r){"use strict";q();var t=s=>s[s.length-1];r.exports=t}}),iD=I({"src/common/parser-create-error.js"(e,r){"use strict";q();function t(s,c){let n=new SyntaxError(s+" ("+c.start.line+":"+c.start.column+")");return n.loc=c,n}r.exports=t}}),fs={};cs(fs,{default:()=>oD});function oD(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var cD=Ce({"node_modules/escape-string-regexp/index.js"(){q()}}),ds=I({"node_modules/semver/internal/debug.js"(e,r){q();var t=typeof ye=="object"&&ye.env&&ye.env.NODE_DEBUG&&/\bsemver\b/i.test(ye.env.NODE_DEBUG)?function(){for(var s=arguments.length,c=new Array(s),n=0;n{};r.exports=t}}),Es=I({"node_modules/semver/internal/constants.js"(e,r){q();var t="2.0.0",s=256,c=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:s,MAX_SAFE_INTEGER:c,MAX_SAFE_COMPONENT_LENGTH:n}}}),DD=I({"node_modules/semver/internal/re.js"(e,r){q();var{MAX_SAFE_COMPONENT_LENGTH:t}=Es(),s=ds();e=r.exports={};var c=e.re=[],n=e.src=[],a=e.t={},p=0,D=(g,i,l)=>{let h=p++;s(g,h,i),a[g]=h,n[h]=i,c[h]=new RegExp(i,l?"g":void 0)};D("NUMERICIDENTIFIER","0|[1-9]\\d*"),D("NUMERICIDENTIFIERLOOSE","[0-9]+"),D("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),D("MAINVERSION","(".concat(n[a.NUMERICIDENTIFIER],")\\.(").concat(n[a.NUMERICIDENTIFIER],")\\.(").concat(n[a.NUMERICIDENTIFIER],")")),D("MAINVERSIONLOOSE","(".concat(n[a.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[a.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[a.NUMERICIDENTIFIERLOOSE],")")),D("PRERELEASEIDENTIFIER","(?:".concat(n[a.NUMERICIDENTIFIER],"|").concat(n[a.NONNUMERICIDENTIFIER],")")),D("PRERELEASEIDENTIFIERLOOSE","(?:".concat(n[a.NUMERICIDENTIFIERLOOSE],"|").concat(n[a.NONNUMERICIDENTIFIER],")")),D("PRERELEASE","(?:-(".concat(n[a.PRERELEASEIDENTIFIER],"(?:\\.").concat(n[a.PRERELEASEIDENTIFIER],")*))")),D("PRERELEASELOOSE","(?:-?(".concat(n[a.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(n[a.PRERELEASEIDENTIFIERLOOSE],")*))")),D("BUILDIDENTIFIER","[0-9A-Za-z-]+"),D("BUILD","(?:\\+(".concat(n[a.BUILDIDENTIFIER],"(?:\\.").concat(n[a.BUILDIDENTIFIER],")*))")),D("FULLPLAIN","v?".concat(n[a.MAINVERSION]).concat(n[a.PRERELEASE],"?").concat(n[a.BUILD],"?")),D("FULL","^".concat(n[a.FULLPLAIN],"$")),D("LOOSEPLAIN","[v=\\s]*".concat(n[a.MAINVERSIONLOOSE]).concat(n[a.PRERELEASELOOSE],"?").concat(n[a.BUILD],"?")),D("LOOSE","^".concat(n[a.LOOSEPLAIN],"$")),D("GTLT","((?:<|>)?=?)"),D("XRANGEIDENTIFIERLOOSE","".concat(n[a.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),D("XRANGEIDENTIFIER","".concat(n[a.NUMERICIDENTIFIER],"|x|X|\\*")),D("XRANGEPLAIN","[v=\\s]*(".concat(n[a.XRANGEIDENTIFIER],")(?:\\.(").concat(n[a.XRANGEIDENTIFIER],")(?:\\.(").concat(n[a.XRANGEIDENTIFIER],")(?:").concat(n[a.PRERELEASE],")?").concat(n[a.BUILD],"?)?)?")),D("XRANGEPLAINLOOSE","[v=\\s]*(".concat(n[a.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[a.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[a.XRANGEIDENTIFIERLOOSE],")(?:").concat(n[a.PRERELEASELOOSE],")?").concat(n[a.BUILD],"?)?)?")),D("XRANGE","^".concat(n[a.GTLT],"\\s*").concat(n[a.XRANGEPLAIN],"$")),D("XRANGELOOSE","^".concat(n[a.GTLT],"\\s*").concat(n[a.XRANGEPLAINLOOSE],"$")),D("COERCE","(^|[^\\d])(\\d{1,".concat(t,"})(?:\\.(\\d{1,").concat(t,"}))?(?:\\.(\\d{1,").concat(t,"}))?(?:$|[^\\d])")),D("COERCERTL",n[a.COERCE],!0),D("LONETILDE","(?:~>?)"),D("TILDETRIM","(\\s*)".concat(n[a.LONETILDE],"\\s+"),!0),e.tildeTrimReplace="$1~",D("TILDE","^".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAIN],"$")),D("TILDELOOSE","^".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAINLOOSE],"$")),D("LONECARET","(?:\\^)"),D("CARETTRIM","(\\s*)".concat(n[a.LONECARET],"\\s+"),!0),e.caretTrimReplace="$1^",D("CARET","^".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAIN],"$")),D("CARETLOOSE","^".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAINLOOSE],"$")),D("COMPARATORLOOSE","^".concat(n[a.GTLT],"\\s*(").concat(n[a.LOOSEPLAIN],")$|^$")),D("COMPARATOR","^".concat(n[a.GTLT],"\\s*(").concat(n[a.FULLPLAIN],")$|^$")),D("COMPARATORTRIM","(\\s*)".concat(n[a.GTLT],"\\s*(").concat(n[a.LOOSEPLAIN],"|").concat(n[a.XRANGEPLAIN],")"),!0),e.comparatorTrimReplace="$1$2$3",D("HYPHENRANGE","^\\s*(".concat(n[a.XRANGEPLAIN],")\\s+-\\s+(").concat(n[a.XRANGEPLAIN],")\\s*$")),D("HYPHENRANGELOOSE","^\\s*(".concat(n[a.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(n[a.XRANGEPLAINLOOSE],")\\s*$")),D("STAR","(<|>)?=?\\s*\\*"),D("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),D("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),lD=I({"node_modules/semver/internal/parse-options.js"(e,r){q();var t=["includePrerelease","loose","rtl"],s=c=>c?typeof c!="object"?{loose:!0}:t.filter(n=>c[n]).reduce((n,a)=>(n[a]=!0,n),{}):{};r.exports=s}}),hD=I({"node_modules/semver/internal/identifiers.js"(e,r){q();var t=/^[0-9]+$/,s=(n,a)=>{let p=t.test(n),D=t.test(a);return p&&D&&(n=+n,a=+a),n===a?0:p&&!D?-1:D&&!p?1:ns(a,n);r.exports={compareIdentifiers:s,rcompareIdentifiers:c}}}),pD=I({"node_modules/semver/classes/semver.js"(e,r){q();var t=ds(),{MAX_LENGTH:s,MAX_SAFE_INTEGER:c}=Es(),{re:n,t:a}=DD(),p=lD(),{compareIdentifiers:D}=hD(),g=class{constructor(i,l){if(l=p(l),i instanceof g){if(i.loose===!!l.loose&&i.includePrerelease===!!l.includePrerelease)return i;i=i.version}else if(typeof i!="string")throw new TypeError("Invalid Version: ".concat(i));if(i.length>s)throw new TypeError("version is longer than ".concat(s," characters"));t("SemVer",i,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let h=i.trim().match(l.loose?n[a.LOOSE]:n[a.FULL]);if(!h)throw new TypeError("Invalid Version: ".concat(i));if(this.raw=i,this.major=+h[1],this.minor=+h[2],this.patch=+h[3],this.major>c||this.major<0)throw new TypeError("Invalid major version");if(this.minor>c||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>c||this.patch<0)throw new TypeError("Invalid patch version");h[4]?this.prerelease=h[4].split(".").map(C=>{if(/^[0-9]+$/.test(C)){let d=+C;if(d>=0&&d=0;)typeof this.prerelease[h]=="number"&&(this.prerelease[h]++,h=-2);h===-1&&this.prerelease.push(0)}l&&(D(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error("invalid increment argument: ".concat(i))}return this.format(),this.raw=this.version,this}};r.exports=g}}),Ur=I({"node_modules/semver/functions/compare.js"(e,r){q();var t=pD(),s=(c,n,a)=>new t(c,a).compare(new t(n,a));r.exports=s}}),fD=I({"node_modules/semver/functions/lt.js"(e,r){q();var t=Ur(),s=(c,n,a)=>t(c,n,a)<0;r.exports=s}}),dD=I({"node_modules/semver/functions/gte.js"(e,r){q();var t=Ur(),s=(c,n,a)=>t(c,n,a)>=0;r.exports=s}}),ED=I({"src/utils/arrayify.js"(e,r){"use strict";q(),r.exports=(t,s)=>Object.entries(t).map(c=>{let[n,a]=c;return Object.assign({[s]:n},a)})}}),CD=I({"package.json"(e,r){r.exports={version:"2.7.1"}}}),mD=I({"node_modules/outdent/lib/index.js"(e,r){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0}),e.outdent=void 0;function t(){for(var A=[],N=0;Ntypeof l=="string"||typeof l=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"acorn",since:"2.6.0",description:"JavaScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:D,description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin",cliCategory:s},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:D,description:t(es||(es=Ee([` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `]))),exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin-search-dir",cliCategory:s},printWidth:{since:"0.0.0",category:D,type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:g,type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(rs||(rs=Ee([` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:c},rangeStart:{since:"1.4.0",category:g,type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(ts||(ts=Ee([` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:c},requirePragma:{since:"1.7.0",category:g,type:"boolean",default:!1,description:t(us||(us=Ee([` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `]))),cliCategory:a},tabWidth:{type:"int",category:D,default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:D,type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:D,type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};r.exports={CATEGORY_CONFIG:s,CATEGORY_EDITOR:c,CATEGORY_FORMAT:n,CATEGORY_OTHER:a,CATEGORY_OUTPUT:p,CATEGORY_GLOBAL:D,CATEGORY_SPECIAL:g,options:i}}}),FD=I({"src/main/support.js"(e,r){"use strict";q();var t={compare:Ur(),lt:fD(),gte:dD()},s=ED(),c=CD().version,n=gD().options;function a(){let{plugins:D=[],showUnreleased:g=!1,showDeprecated:i=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},h=c.split("-",1)[0],C=D.flatMap(A=>A.languages||[]).filter(m),d=s(Object.assign({},...D.map(A=>{let{options:N}=A;return N}),n),"name").filter(A=>m(A)&&T(A)).sort((A,N)=>A.name===N.name?0:A.name{A=Object.assign({},A),Array.isArray(A.default)&&(A.default=A.default.length===1?A.default[0].value:A.default.filter(m).sort((R,$)=>t.compare($.since,R.since))[0].value),Array.isArray(A.choices)&&(A.choices=A.choices.filter(R=>m(R)&&T(R)),A.name==="parser"&&p(A,C,D));let N=Object.fromEntries(D.filter(R=>R.defaultOptions&&R.defaultOptions[A.name]!==void 0).map(R=>[R.name,R.defaultOptions[A.name]]));return Object.assign(Object.assign({},A),{},{pluginDefaults:N})});return{languages:C,options:d};function m(A){return g||!("since"in A)||A.since&&t.gte(h,A.since)}function T(A){return i||!("deprecated"in A)||A.deprecated&&t.lt(h,A.deprecated)}function B(A){if(l)return A;let{cliName:N,cliCategory:R,cliDescription:$}=A;return Qc(A,Yc)}}function p(D,g,i){let l=new Set(D.choices.map(h=>h.value));for(let h of g)if(h.parsers){for(let C of h.parsers)if(!l.has(C)){l.add(C);let d=i.find(T=>T.parsers&&T.parsers[C]),m=h.name;d&&d.name&&(m+=" (plugin: ".concat(d.name,")")),D.choices.push({value:C,description:m})}}}r.exports={getSupportInfo:a}}}),AD=I({"src/utils/is-non-empty-array.js"(e,r){"use strict";q();function t(s){return Array.isArray(s)&&s.length>0}r.exports=t}});function vD(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var _D=Ce({"node_modules/strip-ansi/node_modules/ansi-regex/index.js"(){q()}});function SD(e){if(typeof e!="string")throw new TypeError("Expected a `string`, got `".concat(typeof e,"`"));return e.replace(vD(),"")}var yD=Ce({"node_modules/strip-ansi/index.js"(){q(),_D()}});function TD(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var BD=Ce({"node_modules/is-fullwidth-code-point/index.js"(){q()}}),bD=I({"node_modules/emoji-regex/index.js"(e,r){"use strict";q(),r.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}}),Cs={};cs(Cs,{default:()=>wD});function wD(e){if(typeof e!="string"||e.length===0||(e=SD(e),e.length===0))return 0;e=e.replace((0,ms.default)()," ");let r=0;for(let t=0;t=127&&s<=159||s>=768&&s<=879||(s>65535&&t++,r+=TD(s)?2:1)}return r}var ms,ND=Ce({"node_modules/string-width/index.js"(){q(),yD(),BD(),ms=tD(bD())}}),OD=I({"src/utils/get-string-width.js"(e,r){"use strict";q();var t=(ND(),ls(Cs)).default,s=/[^\x20-\x7F]/;function c(n){return n?s.test(n)?t(n):n.length:0}r.exports=c}}),Gr=I({"src/utils/text/skip.js"(e,r){"use strict";q();function t(p){return(D,g,i)=>{let l=i&&i.backwards;if(g===!1)return!1;let{length:h}=D,C=g;for(;C>=0&&Cv[v.length-2];function T(v){return(S,b,w)=>{let L=w&&w.backwards;if(b===!1)return!1;let{length:U}=S,V=b;for(;V>=0&&V2&&arguments[2]!==void 0?arguments[2]:{},w=D(v,b.backwards?S-1:S,b),L=C(v,w,b);return w!==L}function A(v,S,b){for(let w=S;w2&&arguments[2]!==void 0?arguments[2]:{};return D(v,b.backwards?S-1:S,b)!==S}function k(v,S){let b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,w=0;for(let L=b;Lue?U:L}return V}function o(v,S){let b=v.slice(1,-1),w=S.parser==="json"||S.parser==="json5"&&S.quoteProps==="preserve"&&!S.singleQuote?'"':S.__isInHtmlAttribute?"'":u(b,S.singleQuote?"'":'"').quote;return E(b,w,!(S.parser==="css"||S.parser==="less"||S.parser==="scss"||S.__embeddedInHtml))}function E(v,S,b){let w=S==='"'?"'":'"',L=/\\(.)|(["'])/gs,U=v.replace(L,(V,Y,ue)=>Y===w?Y:ue===S?"\\"+ue:ue||(b&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(Y)?Y:"\\"+Y));return S+U+S}function f(v){return v.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e|$)/,"")}function F(v,S){let b=v.match(new RegExp("(".concat(t(S),")+"),"g"));return b===null?0:b.reduce((w,L)=>Math.max(w,L.length/S.length),0)}function P(v,S){let b=v.match(new RegExp("(".concat(t(S),")+"),"g"));if(b===null)return 0;let w=new Map,L=0;for(let U of b){let V=U.length/S.length;w.set(V,!0),V>L&&(L=V)}for(let U=1;U{let{name:U}=L;return U.toLowerCase()===v})||b.find(L=>{let{aliases:U}=L;return Array.isArray(U)&&U.includes(v)})||b.find(L=>{let{extensions:U}=L;return Array.isArray(U)&&U.includes(".".concat(v))});return w&&w.parsers[0]}function J(v){return v&&v.type==="front-matter"}function Z(v){let S=new WeakMap;return function(b){return S.has(b)||S.set(b,Symbol(v)),S.get(b)}}function ee(v){let S=v.type||v.kind||"(unknown type)",b=String(v.name||v.id&&(typeof v.id=="object"?v.id.name:v.id)||v.key&&(typeof v.key=="object"?v.key.name:v.key)||v.value&&(typeof v.value=="object"?"":String(v.value))||v.operator||"");return b.length>20&&(b=b.slice(0,19)+"\u2026"),S+(b?" "+b:"")}r.exports={inferParserByLanguage:z,getStringWidth:a,getMaxContinuousCount:F,getMinNotPresentContinuousCount:P,getPenultimate:m,getLast:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:d,getNextNonSpaceNonCommentCharacterIndex:_,getNextNonSpaceNonCommentCharacter:O,skip:T,skipWhitespace:p,skipSpaces:D,skipToLineEnd:g,skipEverythingButNewLine:i,skipInlineComment:l,skipTrailingComment:h,skipNewline:C,isNextLineEmptyAfterIndex:R,isNextLineEmpty:$,isPreviousLineEmpty:N,hasNewline:B,hasNewlineInRange:A,hasSpaces:x,getAlignmentSize:k,getIndentSize:M,getPreferredQuote:u,printString:o,printNumber:f,makeString:E,addLeadingComment:W,addDanglingComment:X,addTrailingComment:H,isFrontMatterNode:J,isNonEmptyArray:n,createGroupIdMapper:Z}}}),RD=I({"vendors/html-tag-names.json"(e,r){r.exports={htmlTagNames:["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","content","data","datalist","dd","del","details","dfn","dialog","dir","div","dl","dt","element","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","image","img","input","ins","isindex","kbd","keygen","label","legend","li","link","listing","main","map","mark","marquee","math","menu","menuitem","meta","meter","multicol","nav","nextid","nobr","noembed","noframes","noscript","object","ol","optgroup","option","output","p","param","picture","plaintext","pre","progress","q","rb","rbc","rp","rt","rtc","ruby","s","samp","script","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr","xmp"]}}}),vs=I({"src/language-html/utils/array-to-map.js"(e,r){"use strict";q();function t(s){let c=Object.create(null);for(let n of s)c[n]=!0;return c}r.exports=t}}),xD=I({"src/language-html/utils/html-tag-names.js"(e,r){"use strict";q();var{htmlTagNames:t}=RD(),s=vs(),c=s(t);r.exports=c}}),PD=I({"vendors/html-element-attributes.json"(e,r){r.exports={htmlElementAttributes:{"*":["accesskey","autocapitalize","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","slot","spellcheck","style","tabindex","title","translate"],a:["charset","coords","download","href","hreflang","name","ping","referrerpolicy","rel","rev","shape","target","type"],applet:["align","alt","archive","code","codebase","height","hspace","name","object","vspace","width"],area:["alt","coords","download","href","hreflang","nohref","ping","referrerpolicy","rel","shape","target","type"],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],base:["href","target"],basefont:["color","face","size"],blockquote:["cite"],body:["alink","background","bgcolor","link","text","vlink"],br:["clear"],button:["disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],data:["value"],del:["cite","datetime"],details:["open"],dialog:["open"],dir:["compact"],div:["align"],dl:["compact"],embed:["height","src","type","width"],fieldset:["disabled","form","name"],font:["color","face","size"],form:["accept","accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],frame:["frameborder","longdesc","marginheight","marginwidth","name","noresize","scrolling","src"],frameset:["cols","rows"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],head:["profile"],hr:["align","noshade","size","width"],html:["manifest","version"],iframe:["align","allow","allowfullscreen","allowpaymentrequest","allowusermedia","frameborder","height","loading","longdesc","marginheight","marginwidth","name","referrerpolicy","sandbox","scrolling","src","srcdoc","width"],img:["align","alt","border","crossorigin","decoding","height","hspace","ismap","loading","longdesc","name","referrerpolicy","sizes","src","srcset","usemap","vspace","width"],input:["accept","align","alt","autocomplete","checked","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","ismap","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","size","src","step","type","usemap","value","width"],ins:["cite","datetime"],isindex:["prompt"],label:["for","form"],legend:["align"],li:["type","value"],link:["as","charset","color","crossorigin","disabled","href","hreflang","imagesizes","imagesrcset","integrity","media","referrerpolicy","rel","rev","sizes","target","type"],map:["name"],menu:["compact"],meta:["charset","content","http-equiv","media","name","scheme"],meter:["high","low","max","min","optimum","value"],object:["align","archive","border","classid","codebase","codetype","data","declare","form","height","hspace","name","standby","type","typemustmatch","usemap","vspace","width"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],p:["align"],param:["name","type","value","valuetype"],pre:["width"],progress:["max","value"],q:["cite"],script:["async","charset","crossorigin","defer","integrity","language","nomodule","referrerpolicy","src","type"],select:["autocomplete","disabled","form","multiple","name","required","size"],slot:["name"],source:["height","media","sizes","src","srcset","type","width"],style:["media","type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["autocomplete","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],time:["datetime"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","src","srclang"],ul:["compact","type"],video:["autoplay","controls","crossorigin","height","loop","muted","playsinline","poster","preload","src","width"]}}}}),kD=I({"src/language-html/utils/map-object.js"(e,r){"use strict";q();function t(s,c){let n=Object.create(null);for(let[a,p]of Object.entries(s))n[a]=c(p,a);return n}r.exports=t}}),LD=I({"src/language-html/utils/html-elements-attributes.js"(e,r){"use strict";q();var{htmlElementAttributes:t}=PD(),s=kD(),c=vs(),n=s(t,c);r.exports=n}}),MD=I({"src/language-html/utils/is-unknown-namespace.js"(e,r){"use strict";q();function t(s){return s.type==="element"&&!s.hasExplicitNamespace&&!["html","svg"].includes(s.namespace)}r.exports=t}}),jD=I({"src/language-html/pragma.js"(e,r){"use strict";q();function t(c){return/^\s*/.test(c)}function s(c){return` + +`+c.replace(/^\s*\n/,"")}r.exports={hasPragma:t,insertPragma:s}}}),$D=I({"src/language-html/ast.js"(e,r){"use strict";q();var t={attrs:!0,children:!0},s=new Set(["parent"]),c=class{constructor(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};for(let p of new Set([...s,...Object.keys(a)]))this.setProperty(p,a[p])}setProperty(a,p){if(this[a]!==p){if(a in t&&(p=p.map(D=>this.createChild(D))),!s.has(a)){this[a]=p;return}Object.defineProperty(this,a,{value:p,enumerable:!1,configurable:!0})}}map(a){let p;for(let D in t){let g=this[D];if(g){let i=n(g,l=>l.map(a));p!==g&&(p||(p=new c({parent:this.parent})),p.setProperty(D,i))}}if(p)for(let D in this)D in t||(p[D]=this[D]);return a(p||this)}walk(a){for(let p in t){let D=this[p];if(D)for(let g=0;g[a.fullName,a.value]))}};function n(a,p){let D=a.map(p);return D.some((g,i)=>g!==a[i])?D:a}r.exports={Node:c}}}),UD=I({"src/language-html/conditional-comment.js"(e,r){"use strict";q();var{ParseSourceSpan:t}=Te(),s=[{regex:/^(\[if([^\]]*)]>)(.*?){try{return[!0,g(C,m).children]}catch{let N={type:"text",value:C,sourceSpan:new t(m,T)};return[!1,[N]]}})();return{type:"ieConditionalComment",complete:B,children:A,condition:h.trim().replace(/\s+/g," "),sourceSpan:D.sourceSpan,startSourceSpan:new t(D.sourceSpan.start,m),endSourceSpan:new t(T,D.sourceSpan.end)}}function a(D,g,i){let[,l]=i;return{type:"ieConditionalStartComment",condition:l.trim().replace(/\s+/g," "),sourceSpan:D.sourceSpan}}function p(D){return{type:"ieConditionalEndComment",sourceSpan:D.sourceSpan}}r.exports={parseIeConditionalComment:c}}}),GD=I({"src/language-html/loc.js"(e,r){"use strict";q();function t(c){return c.sourceSpan.start.offset}function s(c){return c.sourceSpan.end.offset}r.exports={locStart:t,locEnd:s}}}),Ze=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/tags.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r;(function(D){D[D.RAW_TEXT=0]="RAW_TEXT",D[D.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",D[D.PARSABLE_DATA=2]="PARSABLE_DATA"})(r=e.TagContentType||(e.TagContentType={}));function t(D){if(D[0]!=":")return[null,D];let g=D.indexOf(":",1);if(g==-1)throw new Error('Unsupported format "'.concat(D,'" expecting ":namespace:name"'));return[D.slice(1,g),D.slice(g+1)]}e.splitNsName=t;function s(D){return t(D)[1]==="ng-container"}e.isNgContainer=s;function c(D){return t(D)[1]==="ng-content"}e.isNgContent=c;function n(D){return t(D)[1]==="ng-template"}e.isNgTemplate=n;function a(D){return D===null?null:t(D)[0]}e.getNsPrefix=a;function p(D,g){return D?":".concat(D,":").concat(g):g}e.mergeNsAndName=p,e.NAMED_ENTITIES={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",GT:">",Gt:"\u226B",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",LT:"<",Lt:"\u226A",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"},e.NGSP_UNICODE="\uE500",e.NAMED_ENTITIES.ngsp=e.NGSP_UNICODE}}),_s=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_tags.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=Ze(),t=class{constructor(){let{closedByChildren:a,implicitNamespacePrefix:p,contentType:D=r.TagContentType.PARSABLE_DATA,closedByParent:g=!1,isVoid:i=!1,ignoreFirstLf:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,a&&a.length>0&&a.forEach(h=>this.closedByChildren[h]=!0),this.isVoid=i,this.closedByParent=g||i,this.implicitNamespacePrefix=p||null,this.contentType=D,this.ignoreFirstLf=l}isClosedByChild(a){return this.isVoid||a.toLowerCase()in this.closedByChildren}};e.HtmlTagDefinition=t;var s,c;function n(a){return c||(s=new t,c={base:new t({isVoid:!0}),meta:new t({isVoid:!0}),area:new t({isVoid:!0}),embed:new t({isVoid:!0}),link:new t({isVoid:!0}),img:new t({isVoid:!0}),input:new t({isVoid:!0}),param:new t({isVoid:!0}),hr:new t({isVoid:!0}),br:new t({isVoid:!0}),source:new t({isVoid:!0}),track:new t({isVoid:!0}),wbr:new t({isVoid:!0}),p:new t({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new t({closedByChildren:["tbody","tfoot"]}),tbody:new t({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new t({closedByChildren:["tbody"],closedByParent:!0}),tr:new t({closedByChildren:["tr"],closedByParent:!0}),td:new t({closedByChildren:["td","th"],closedByParent:!0}),th:new t({closedByChildren:["td","th"],closedByParent:!0}),col:new t({isVoid:!0}),svg:new t({implicitNamespacePrefix:"svg"}),math:new t({implicitNamespacePrefix:"math"}),li:new t({closedByChildren:["li"],closedByParent:!0}),dt:new t({closedByChildren:["dt","dd"]}),dd:new t({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new t({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new t({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new t({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new t({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new t({closedByChildren:["optgroup"],closedByParent:!0}),option:new t({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new t({ignoreFirstLf:!0}),listing:new t({ignoreFirstLf:!0}),style:new t({contentType:r.TagContentType.RAW_TEXT}),script:new t({contentType:r.TagContentType.RAW_TEXT}),title:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT}),textarea:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),c[a]||s}e.getHtmlTagDefinition=n}}),VD=I({"node_modules/angular-html-parser/lib/compiler/src/ast_path.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=class{constructor(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1;this.path=t,this.position=s}get empty(){return!this.path||!this.path.length}get head(){return this.path[0]}get tail(){return this.path[this.path.length-1]}parentOf(t){return t&&this.path[this.path.indexOf(t)-1]}childOf(t){return this.path[this.path.indexOf(t)+1]}first(t){for(let s=this.path.length-1;s>=0;s--){let c=this.path[s];if(c instanceof t)return c}}push(t){this.path.push(t)}pop(){return this.path.pop()}};e.AstPath=r}}),Ss=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/ast.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=VD(),t=class{constructor(d,m,T){this.value=d,this.sourceSpan=m,this.i18n=T,this.type="text"}visit(d,m){return d.visitText(this,m)}};e.Text=t;var s=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type="cdata"}visit(d,m){return d.visitCdata(this,m)}};e.CDATA=s;var c=class{constructor(d,m,T,B,A,N){this.switchValue=d,this.type=m,this.cases=T,this.sourceSpan=B,this.switchValueSourceSpan=A,this.i18n=N}visit(d,m){return d.visitExpansion(this,m)}};e.Expansion=c;var n=class{constructor(d,m,T,B,A){this.value=d,this.expression=m,this.sourceSpan=T,this.valueSourceSpan=B,this.expSourceSpan=A}visit(d,m){return d.visitExpansionCase(this,m)}};e.ExpansionCase=n;var a=class{constructor(d,m,T){let B=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null;this.name=d,this.value=m,this.sourceSpan=T,this.valueSpan=B,this.nameSpan=A,this.i18n=N,this.type="attribute"}visit(d,m){return d.visitAttribute(this,m)}};e.Attribute=a;var p=class{constructor(d,m,T,B){let A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,R=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,$=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null;this.name=d,this.attrs=m,this.children=T,this.sourceSpan=B,this.startSourceSpan=A,this.endSourceSpan=N,this.nameSpan=R,this.i18n=$,this.type="element"}visit(d,m){return d.visitElement(this,m)}};e.Element=p;var D=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type="comment"}visit(d,m){return d.visitComment(this,m)}};e.Comment=D;var g=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type="docType"}visit(d,m){return d.visitDocType(this,m)}};e.DocType=g;function i(d,m){let T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,B=[],A=d.visit?N=>d.visit(N,T)||N.visit(d,T):N=>N.visit(d,T);return m.forEach(N=>{let R=A(N);R&&B.push(R)}),B}e.visitAll=i;var l=class{constructor(){}visitElement(d,m){this.visitChildren(m,T=>{T(d.attrs),T(d.children)})}visitAttribute(d,m){}visitText(d,m){}visitCdata(d,m){}visitComment(d,m){}visitDocType(d,m){}visitExpansion(d,m){return this.visitChildren(m,T=>{T(d.cases)})}visitExpansionCase(d,m){}visitChildren(d,m){let T=[],B=this;function A(N){N&&T.push(i(B,N,d))}return m(A),Array.prototype.concat.apply([],T)}};e.RecursiveVisitor=l;function h(d){let m=d.sourceSpan.start.offset,T=d.sourceSpan.end.offset;return d instanceof p&&(d.endSourceSpan?T=d.endSourceSpan.end.offset:d.children&&d.children.length&&(T=h(d.children[d.children.length-1]).end)),{start:m,end:T}}function C(d,m){let T=[],B=new class extends l{visit(A,N){let R=h(A);if(R.start<=m&&m]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function s(c,n){if(n!=null&&!(Array.isArray(n)&&n.length==2))throw new Error("Expected '".concat(c,"' to be an array, [start, end]."));if(n!=null){let a=n[0],p=n[1];t.forEach(D=>{if(D.test(a)||D.test(p))throw new Error("['".concat(a,"', '").concat(p,"'] contains unusable interpolation symbol."))})}}e.assertInterpolationSymbols=s}}),HD=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/interpolation_config.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=XD(),t=class{constructor(s,c){this.start=s,this.end=c}static fromArray(s){return s?(r.assertInterpolationSymbols("interpolation",s),new t(s[0],s[1])):e.DEFAULT_INTERPOLATION_CONFIG}};e.InterpolationConfig=t,e.DEFAULT_INTERPOLATION_CONFIG=new t("{{","}}")}}),zD=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/lexer.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=hs(),t=Te(),s=HD(),c=Ze(),n;(function(u){u[u.TAG_OPEN_START=0]="TAG_OPEN_START",u[u.TAG_OPEN_END=1]="TAG_OPEN_END",u[u.TAG_OPEN_END_VOID=2]="TAG_OPEN_END_VOID",u[u.TAG_CLOSE=3]="TAG_CLOSE",u[u.TEXT=4]="TEXT",u[u.ESCAPABLE_RAW_TEXT=5]="ESCAPABLE_RAW_TEXT",u[u.RAW_TEXT=6]="RAW_TEXT",u[u.COMMENT_START=7]="COMMENT_START",u[u.COMMENT_END=8]="COMMENT_END",u[u.CDATA_START=9]="CDATA_START",u[u.CDATA_END=10]="CDATA_END",u[u.ATTR_NAME=11]="ATTR_NAME",u[u.ATTR_QUOTE=12]="ATTR_QUOTE",u[u.ATTR_VALUE=13]="ATTR_VALUE",u[u.DOC_TYPE_START=14]="DOC_TYPE_START",u[u.DOC_TYPE_END=15]="DOC_TYPE_END",u[u.EXPANSION_FORM_START=16]="EXPANSION_FORM_START",u[u.EXPANSION_CASE_VALUE=17]="EXPANSION_CASE_VALUE",u[u.EXPANSION_CASE_EXP_START=18]="EXPANSION_CASE_EXP_START",u[u.EXPANSION_CASE_EXP_END=19]="EXPANSION_CASE_EXP_END",u[u.EXPANSION_FORM_END=20]="EXPANSION_FORM_END",u[u.EOF=21]="EOF"})(n=e.TokenType||(e.TokenType={}));var a=class{constructor(u,o,E){this.type=u,this.parts=o,this.sourceSpan=E}};e.Token=a;var p=class extends t.ParseError{constructor(u,o,E){super(E,u),this.tokenType=o}};e.TokenError=p;var D=class{constructor(u,o){this.tokens=u,this.errors=o}};e.TokenizeResult=D;function g(u,o,E){let f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return new d(new t.ParseSourceFile(u,o),E,f).tokenize()}e.tokenize=g;var i=/\r\n?/g;function l(u){let o=u===r.$EOF?"EOF":String.fromCharCode(u);return'Unexpected character "'.concat(o,'"')}function h(u){return'Unknown entity "'.concat(u,'" - use the "&#;" or "&#x;" syntax')}var C=class{constructor(u){this.error=u}},d=class{constructor(u,o,E){this._getTagContentType=o,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this._tokenizeIcu=E.tokenizeExpansionForms||!1,this._interpolationConfig=E.interpolationConfig||s.DEFAULT_INTERPOLATION_CONFIG,this._leadingTriviaCodePoints=E.leadingTriviaChars&&E.leadingTriviaChars.map(F=>F.codePointAt(0)||0),this._canSelfClose=E.canSelfClose||!1,this._allowHtmComponentClosingTags=E.allowHtmComponentClosingTags||!1;let f=E.range||{endPos:u.content.length,startPos:0,startLine:0,startCol:0};this._cursor=E.escapedString?new k(u,f):new x(u,f);try{this._cursor.init()}catch(F){this.handleError(F)}}_processCarriageReturns(u){return u.replace(i,` +`)}tokenize(){for(;this._cursor.peek()!==r.$EOF;){let u=this._cursor.clone();try{if(this._attemptCharCode(r.$LT))if(this._attemptCharCode(r.$BANG))this._attemptStr("[CDATA[")?this._consumeCdata(u):this._attemptStr("--")?this._consumeComment(u):this._attemptStrCaseInsensitive("doctype")?this._consumeDocType(u):this._consumeBogusComment(u);else if(this._attemptCharCode(r.$SLASH))this._consumeTagClose(u);else{let o=this._cursor.clone();this._attemptCharCode(r.$QUESTION)?(this._cursor=o,this._consumeBogusComment(u)):this._consumeTagOpen(u)}else this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(o){this.handleError(o)}}return this._beginToken(n.EOF),this._endToken([]),new D(O(this.tokens),this.errors)}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(R(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===r.$RBRACE){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();this._currentTokenStart=o,this._currentTokenType=u}_endToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();if(this._currentTokenStart===null)throw new p("Programming error - attempted to end a token when there was no start to the token",this._currentTokenType,this._cursor.getSpan(o));if(this._currentTokenType===null)throw new p("Programming error - attempted to end a token which has no token type",null,this._cursor.getSpan(this._currentTokenStart));let E=new a(this._currentTokenType,u,this._cursor.getSpan(this._currentTokenStart,this._leadingTriviaCodePoints));return this.tokens.push(E),this._currentTokenStart=null,this._currentTokenType=null,E}_createError(u,o){this._isInExpansionForm()&&(u+=` (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.)`);let E=new p(u,this._currentTokenType,o);return this._currentTokenStart=null,this._currentTokenType=null,new C(E)}handleError(u){if(u instanceof M&&(u=this._createError(u.msg,this._cursor.getSpan(u.cursor))),u instanceof C)this.errors.push(u.error);else throw u}_attemptCharCode(u){return this._cursor.peek()===u?(this._cursor.advance(),!0):!1}_attemptCharCodeCaseInsensitive(u){return $(this._cursor.peek(),u)?(this._cursor.advance(),!0):!1}_requireCharCode(u){let o=this._cursor.clone();if(!this._attemptCharCode(u))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(o))}_attemptStr(u){let o=u.length;if(this._cursor.charsLeft()this._attemptStr("-->")),this._beginToken(n.COMMENT_END),this._requireStr("-->"),this._endToken([])}_consumeBogusComment(u){this._beginToken(n.COMMENT_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.COMMENT_END),this._cursor.advance(),this._endToken([])}_consumeCdata(u){this._beginToken(n.CDATA_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr("]]>")),this._beginToken(n.CDATA_END),this._requireStr("]]>"),this._endToken([])}_consumeDocType(u){this._beginToken(n.DOC_TYPE_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.DOC_TYPE_END),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){let u=this._cursor.clone(),o="";for(;this._cursor.peek()!==r.$COLON&&!B(this._cursor.peek());)this._cursor.advance();let E;this._cursor.peek()===r.$COLON?(o=this._cursor.getChars(u),this._cursor.advance(),E=this._cursor.clone()):E=u,this._requireCharCodeUntilFn(T,o===""?0:1);let f=this._cursor.getChars(E);return[o,f]}_consumeTagOpen(u){let o,E,f,F=this.tokens.length,P=this._cursor.clone(),j=[];try{if(!r.isAsciiLetter(this._cursor.peek()))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(u));for(f=this._consumeTagOpenStart(u),E=f.parts[0],o=f.parts[1],this._attemptCharCodeUntilFn(m);this._cursor.peek()!==r.$SLASH&&this._cursor.peek()!==r.$GT;){let[X,H]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$EQ)){this._attemptCharCodeUntilFn(m);let z=this._consumeAttributeValue();j.push({prefix:X,name:H,value:z})}else j.push({prefix:X,name:H});this._attemptCharCodeUntilFn(m)}this._consumeTagOpenEnd()}catch(X){if(X instanceof C){this._cursor=P,f&&(this.tokens.length=F),this._beginToken(n.TEXT,u),this._endToken(["<"]);return}throw X}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===n.TAG_OPEN_END_VOID)return;let W=this._getTagContentType(o,E,this._fullNameStack.length>0,j);this._handleFullNameStackForTagOpen(E,o),W===c.TagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(E,o,!1):W===c.TagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(E,o,!0)}_consumeRawTextWithTagClose(u,o,E){let f=this._consumeRawText(E,()=>!this._attemptCharCode(r.$LT)||!this._attemptCharCode(r.$SLASH)||(this._attemptCharCodeUntilFn(m),!this._attemptStrCaseInsensitive(u?"".concat(u,":").concat(o):o))?!1:(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$GT)));this._beginToken(n.TAG_CLOSE),this._requireCharCodeUntilFn(F=>F===r.$GT,3),this._cursor.advance(),this._endToken([u,o]),this._handleFullNameStackForTagClose(u,o)}_consumeTagOpenStart(u){this._beginToken(n.TAG_OPEN_START,u);let o=this._consumePrefixAndName();return this._endToken(o)}_consumeAttributeName(){let u=this._cursor.peek();if(u===r.$SQ||u===r.$DQ)throw this._createError(l(u),this._cursor.getSpan());this._beginToken(n.ATTR_NAME);let o=this._consumePrefixAndName();return this._endToken(o),o}_consumeAttributeValue(){let u;if(this._cursor.peek()===r.$SQ||this._cursor.peek()===r.$DQ){this._beginToken(n.ATTR_QUOTE);let o=this._cursor.peek();this._cursor.advance(),this._endToken([String.fromCodePoint(o)]),this._beginToken(n.ATTR_VALUE);let E=[];for(;this._cursor.peek()!==o;)E.push(this._readChar(!0));u=this._processCarriageReturns(E.join("")),this._endToken([u]),this._beginToken(n.ATTR_QUOTE),this._cursor.advance(),this._endToken([String.fromCodePoint(o)])}else{this._beginToken(n.ATTR_VALUE);let o=this._cursor.clone();this._requireCharCodeUntilFn(T,1),u=this._processCarriageReturns(this._cursor.getChars(o)),this._endToken([u])}return u}_consumeTagOpenEnd(){let u=this._attemptCharCode(r.$SLASH)?n.TAG_OPEN_END_VOID:n.TAG_OPEN_END;this._beginToken(u),this._requireCharCode(r.$GT),this._endToken([])}_consumeTagClose(u){if(this._beginToken(n.TAG_CLOSE,u),this._attemptCharCodeUntilFn(m),this._allowHtmComponentClosingTags&&this._attemptCharCode(r.$SLASH))this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([]);else{let[o,E]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([o,E]),this._handleFullNameStackForTagClose(o,E)}}_consumeExpansionFormStart(){this._beginToken(n.EXPANSION_FORM_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._expansionCaseStack.push(n.EXPANSION_FORM_START),this._beginToken(n.RAW_TEXT);let u=this._readUntil(r.$COMMA);this._endToken([u]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m),this._beginToken(n.RAW_TEXT);let o=this._readUntil(r.$COMMA);this._endToken([o]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m)}_consumeExpansionCaseStart(){this._beginToken(n.EXPANSION_CASE_VALUE);let u=this._readUntil(r.$LBRACE).trim();this._endToken([u]),this._attemptCharCodeUntilFn(m),this._beginToken(n.EXPANSION_CASE_EXP_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.push(n.EXPANSION_CASE_EXP_START)}_consumeExpansionCaseEnd(){this._beginToken(n.EXPANSION_CASE_EXP_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(n.EXPANSION_FORM_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._expansionCaseStack.pop()}_consumeText(){let u=this._cursor.clone();this._beginToken(n.TEXT,u);let o=[];do this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(o.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(o.push(this._interpolationConfig.end),this._inInterpolation=!1):o.push(this._readChar(!0));while(!this._isTextEnd());this._endToken([this._processCarriageReturns(o.join(""))])}_isTextEnd(){return!!(this._cursor.peek()===r.$LT||this._cursor.peek()===r.$EOF||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===r.$RBRACE&&this._isInExpansionCase()))}_readUntil(u){let o=this._cursor.clone();return this._attemptUntilChar(u),this._cursor.getChars(o)}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_CASE_EXP_START}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_FORM_START}isExpansionFormStart(){if(this._cursor.peek()!==r.$LBRACE)return!1;if(this._interpolationConfig){let u=this._cursor.clone(),o=this._attemptStr(this._interpolationConfig.start);return this._cursor=u,!o}return!0}_handleFullNameStackForTagOpen(u,o){let E=c.mergeNsAndName(u,o);(this._fullNameStack.length===0||this._fullNameStack[this._fullNameStack.length-1]===E)&&this._fullNameStack.push(E)}_handleFullNameStackForTagClose(u,o){let E=c.mergeNsAndName(u,o);this._fullNameStack.length!==0&&this._fullNameStack[this._fullNameStack.length-1]===E&&this._fullNameStack.pop()}};function m(u){return!r.isWhitespace(u)||u===r.$EOF}function T(u){return r.isWhitespace(u)||u===r.$GT||u===r.$SLASH||u===r.$SQ||u===r.$DQ||u===r.$EQ}function B(u){return(ur.$9)}function A(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiHexDigit(u)}function N(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiLetter(u)}function R(u){return u===r.$EQ||r.isAsciiLetter(u)||r.isDigit(u)}function $(u,o){return _(u)==_(o)}function _(u){return u>=r.$a&&u<=r.$z?u-r.$a+r.$A:u}function O(u){let o=[],E;for(let f=0;f0&&o.indexOf(u.peek())!==-1;)u.advance();return new t.ParseSourceSpan(new t.ParseLocation(u.file,u.state.offset,u.state.line,u.state.column),new t.ParseLocation(this.file,this.state.offset,this.state.line,this.state.column))}getChars(u){return this.input.substring(u.state.offset,this.state.offset)}charAt(u){return this.input.charCodeAt(u)}advanceState(u){if(u.offset>=this.end)throw this.state=u,new M('Unexpected character "EOF"',this);let o=this.charAt(u.offset);o===r.$LF?(u.line++,u.column=0):r.isNewLine(o)||u.column++,u.offset++,this.updatePeek(u)}updatePeek(u){u.peek=u.offset>=this.end?r.$EOF:this.charAt(u.offset)}},k=class extends x{constructor(u,o){u instanceof k?(super(u),this.internalState=Object.assign({},u.internalState)):(super(u,o),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new k(this)}getChars(u){let o=u.clone(),E="";for(;o.internalState.offsetthis.internalState.peek;if(u()===r.$BACKSLASH)if(this.internalState=Object.assign({},this.state),this.advanceState(this.internalState),u()===r.$n)this.state.peek=r.$LF;else if(u()===r.$r)this.state.peek=r.$CR;else if(u()===r.$v)this.state.peek=r.$VTAB;else if(u()===r.$t)this.state.peek=r.$TAB;else if(u()===r.$b)this.state.peek=r.$BSPACE;else if(u()===r.$f)this.state.peek=r.$FF;else if(u()===r.$u)if(this.advanceState(this.internalState),u()===r.$LBRACE){this.advanceState(this.internalState);let o=this.clone(),E=0;for(;u()!==r.$RBRACE;)this.advanceState(this.internalState),E++;this.state.peek=this.decodeHexDigits(o,E)}else{let o=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,4)}else if(u()===r.$x){this.advanceState(this.internalState);let o=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,2)}else if(r.isOctalDigit(u())){let o="",E=0,f=this.clone();for(;r.isOctalDigit(u())&&E<3;)f=this.clone(),o+=String.fromCodePoint(u()),this.advanceState(this.internalState),E++;this.state.peek=parseInt(o,8),this.internalState=f.internalState}else r.isNewLine(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(u,o){let E=this.input.substr(u.internalState.offset,o),f=parseInt(E,16);if(isNaN(f))throw u.state=u.internalState,new M("Invalid hexadecimal escape sequence",u);return f}},M=class{constructor(u,o){this.msg=u,this.cursor=o}};e.CursorError=M}}),as=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/parser.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=Te(),t=Ss(),s=zD(),c=Ze(),n=class extends r.ParseError{constructor(i,l,h){super(l,h),this.elementName=i}static create(i,l,h){return new n(i,l,h)}};e.TreeError=n;var a=class{constructor(i,l){this.rootNodes=i,this.errors=l}};e.ParseTreeResult=a;var p=class{constructor(i){this.getTagDefinition=i}parse(i,l,h){let C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,d=arguments.length>4?arguments[4]:void 0,m=x=>function(k){for(var M=arguments.length,u=new Array(M>1?M-1:0),o=1;oT(x).contentType,A=C?d:m(d),N=d?(x,k,M,u)=>{let o=A(x,k,M,u);return o!==void 0?o:B(x)}:B,R=s.tokenize(i,l,N,h),$=h&&h.canSelfClose||!1,_=h&&h.allowHtmComponentClosingTags||!1,O=new D(R.tokens,T,$,_,C).build();return new a(O.rootNodes,R.errors.concat(O.errors))}};e.Parser=p;var D=class{constructor(i,l,h,C,d){this.tokens=i,this.getTagDefinition=l,this.canSelfClose=h,this.allowHtmComponentClosingTags=C,this.isTagNameCaseSensitive=d,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}build(){for(;this._peek.type!==s.TokenType.EOF;)this._peek.type===s.TokenType.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===s.TokenType.TAG_CLOSE?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===s.TokenType.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===s.TokenType.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===s.TokenType.TEXT||this._peek.type===s.TokenType.RAW_TEXT||this._peek.type===s.TokenType.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===s.TokenType.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._peek.type===s.TokenType.DOC_TYPE_START?this._consumeDocType(this._advance()):this._advance();return new a(this._rootNodes,this._errors)}_advance(){let i=this._peek;return this._index0)return this._errors=this._errors.concat(d.errors),null;let m=new r.ParseSourceSpan(i.sourceSpan.start,C.sourceSpan.end),T=new r.ParseSourceSpan(l.sourceSpan.start,C.sourceSpan.end);return new t.ExpansionCase(i.parts[0],d.rootNodes,m,i.sourceSpan,T)}_collectExpansionExpTokens(i){let l=[],h=[s.TokenType.EXPANSION_CASE_EXP_START];for(;;){if((this._peek.type===s.TokenType.EXPANSION_FORM_START||this._peek.type===s.TokenType.EXPANSION_CASE_EXP_START)&&h.push(this._peek.type),this._peek.type===s.TokenType.EXPANSION_CASE_EXP_END)if(g(h,s.TokenType.EXPANSION_CASE_EXP_START)){if(h.pop(),h.length==0)return l}else return this._errors.push(n.create(null,i.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(this._peek.type===s.TokenType.EXPANSION_FORM_END)if(g(h,s.TokenType.EXPANSION_FORM_START))h.pop();else return this._errors.push(n.create(null,i.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(this._peek.type===s.TokenType.EOF)return this._errors.push(n.create(null,i.sourceSpan,"Invalid ICU message. Missing '}'.")),null;l.push(this._advance())}}_getText(i){let l=i.parts[0];if(l.length>0&&l[0]==` +`){let h=this._getParentElement();h!=null&&h.children.length==0&&this.getTagDefinition(h.name).ignoreFirstLf&&(l=l.substring(1))}return l}_consumeText(i){let l=this._getText(i);l.length>0&&this._addToParent(new t.Text(l,i.sourceSpan))}_closeVoidElement(){let i=this._getParentElement();i&&this.getTagDefinition(i.name).isVoid&&this._elementStack.pop()}_consumeStartTag(i){let l=i.parts[0],h=i.parts[1],C=[];for(;this._peek.type===s.TokenType.ATTR_NAME;)C.push(this._consumeAttr(this._advance()));let d=this._getElementFullName(l,h,this._getParentElement()),m=!1;if(this._peek.type===s.TokenType.TAG_OPEN_END_VOID){this._advance(),m=!0;let R=this.getTagDefinition(d);this.canSelfClose||R.canSelfClose||c.getNsPrefix(d)!==null||R.isVoid||this._errors.push(n.create(d,i.sourceSpan,'Only void and foreign elements can be self closed "'.concat(i.parts[1],'"')))}else this._peek.type===s.TokenType.TAG_OPEN_END&&(this._advance(),m=!1);let T=this._peek.sourceSpan.start,B=new r.ParseSourceSpan(i.sourceSpan.start,T),A=new r.ParseSourceSpan(i.sourceSpan.start.moveBy(1),i.sourceSpan.end),N=new t.Element(d,C,[],B,B,void 0,A);this._pushElement(N),m&&(this._popElement(d),N.endSourceSpan=B)}_pushElement(i){let l=this._getParentElement();l&&this.getTagDefinition(l.name).isClosedByChild(i.name)&&this._elementStack.pop(),this._addToParent(i),this._elementStack.push(i)}_consumeEndTag(i){let l=this.allowHtmComponentClosingTags&&i.parts.length===0?null:this._getElementFullName(i.parts[0],i.parts[1],this._getParentElement());if(this._getParentElement()&&(this._getParentElement().endSourceSpan=i.sourceSpan),l&&this.getTagDefinition(l).isVoid)this._errors.push(n.create(l,i.sourceSpan,'Void elements do not have end tags "'.concat(i.parts[1],'"')));else if(!this._popElement(l)){let h='Unexpected closing tag "'.concat(l,'". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags');this._errors.push(n.create(l,i.sourceSpan,h))}}_popElement(i){for(let l=this._elementStack.length-1;l>=0;l--){let h=this._elementStack[l];if(!i||(c.getNsPrefix(h.name)?h.name==i:h.name.toLowerCase()==i.toLowerCase()))return this._elementStack.splice(l,this._elementStack.length-l),!0;if(!this.getTagDefinition(h.name).closedByParent)return!1}return!1}_consumeAttr(i){let l=c.mergeNsAndName(i.parts[0],i.parts[1]),h=i.sourceSpan.end,C="",d,m;if(this._peek.type===s.TokenType.ATTR_QUOTE&&(m=this._advance().sourceSpan.start),this._peek.type===s.TokenType.ATTR_VALUE){let T=this._advance();C=T.parts[0],h=T.sourceSpan.end,d=T.sourceSpan}return this._peek.type===s.TokenType.ATTR_QUOTE&&(h=this._advance().sourceSpan.end,d=new r.ParseSourceSpan(m,h)),new t.Attribute(l,C,new r.ParseSourceSpan(i.sourceSpan.start,h),d,i.sourceSpan)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_getParentElementSkippingContainers(){let i=null;for(let l=this._elementStack.length-1;l>=0;l--){if(!c.isNgContainer(this._elementStack[l].name))return{parent:this._elementStack[l],container:i};i=this._elementStack[l]}return{parent:null,container:i}}_addToParent(i){let l=this._getParentElement();l!=null?l.children.push(i):this._rootNodes.push(i)}_insertBeforeContainer(i,l,h){if(!l)this._addToParent(h),this._elementStack.push(h);else{if(i){let C=i.children.indexOf(l);i.children[C]=h}else this._rootNodes.push(h);h.children.push(l),this._elementStack.splice(this._elementStack.indexOf(l),0,h)}}_getElementFullName(i,l,h){return i===""&&(i=this.getTagDefinition(l).implicitNamespacePrefix||"",i===""&&h!=null&&(i=c.getNsPrefix(h.name))),c.mergeNsAndName(i,l)}};function g(i,l){return i.length>0&&i[i.length-1]===l}}}),WD=I({"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_parser.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=_s(),t=as(),s=as();e.ParseTreeResult=s.ParseTreeResult,e.TreeError=s.TreeError;var c=class extends t.Parser{constructor(){super(r.getHtmlTagDefinition)}parse(n,a,p){let D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,g=arguments.length>4?arguments[4]:void 0;return super.parse(n,a,p,D,g)}};e.HtmlParser=c}}),ys=I({"node_modules/angular-html-parser/lib/angular-html-parser/src/index.js"(e){"use strict";q(),Object.defineProperty(e,"__esModule",{value:!0});var r=WD(),t=Ze();e.TagContentType=t.TagContentType;var s=null,c=()=>(s||(s=new r.HtmlParser),s);function n(a){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{canSelfClose:D=!1,allowHtmComponentClosingTags:g=!1,isTagNameCaseSensitive:i=!1,getTagContentType:l}=p;return c().parse(a,"angular-html-parser",{tokenizeExpansionForms:!1,interpolationConfig:void 0,canSelfClose:D,allowHtmComponentClosingTags:g},i,l)}e.parse=n}});q();var{ParseSourceSpan:Qe,ParseLocation:is,ParseSourceFile:YD}=Te(),QD=aD(),KD=ps(),JD=iD(),{inferParserByLanguage:ZD}=ID(),el=xD(),jr=LD(),os=MD(),{hasPragma:rl}=jD(),{Node:tl}=$D(),{parseIeConditionalComment:ul}=UD(),{locStart:nl,locEnd:sl}=GD();function al(e,r,t){let{recognizeSelfClosing:s,normalizeTagName:c,normalizeAttributeName:n,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p,getTagContentType:D}=r,g=ys(),{RecursiveVisitor:i,visitAll:l}=Ss(),{ParseSourceSpan:h}=Te(),{getHtmlTagDefinition:C}=_s(),{rootNodes:d,errors:m}=g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p,getTagContentType:D});if(t.parser==="vue")if(d.some(O=>O.type==="docType"&&O.value==="html"||O.type==="element"&&O.name.toLowerCase()==="html")){s=!0,c=!0,n=!0,a=!0,p=!1;let O=g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p});d=O.rootNodes,m=O.errors}else{let O=x=>{if(!x||x.type!=="element"||x.name!=="template")return!1;let k=x.attrs.find(u=>u.name==="lang"),M=k&&k.value;return!M||ZD(M,t)==="html"};if(d.some(O)){let x,k=()=>g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p}),M=()=>x||(x=k()),u=o=>M().rootNodes.find(E=>{let{startSourceSpan:f}=E;return f&&f.start.offset===o.startSourceSpan.start.offset});for(let o=0;o0){let{msg:_,span:{start:O,end:x}}=m[0];throw JD(_,{start:{line:O.line+1,column:O.col+1},end:{line:x.line+1,column:x.col+1}})}let T=_=>{let O=_.name.startsWith(":")?_.name.slice(1).split(":")[0]:null,x=_.nameSpan.toString(),k=O!==null&&x.startsWith("".concat(O,":")),M=k?x.slice(O.length+1):x;_.name=M,_.namespace=O,_.hasExplicitNamespace=k},B=_=>{switch(_.type){case"element":T(_);for(let O of _.attrs)T(O),O.valueSpan?(O.value=O.valueSpan.toString(),/["']/.test(O.value[0])&&(O.value=O.value.slice(1,-1))):O.value=null;break;case"comment":_.value=_.sourceSpan.toString().slice(4,-3);break;case"text":_.value=_.sourceSpan.toString();break}},A=(_,O)=>{let x=_.toLowerCase();return O(x)?x:_},N=_=>{if(_.type==="element"&&(c&&(!_.namespace||_.namespace===_.tagDefinition.implicitNamespacePrefix||os(_))&&(_.name=A(_.name,O=>O in el)),n)){let O=jr[_.name]||Object.create(null);for(let x of _.attrs)x.namespace||(x.name=A(x.name,k=>_.name in jr&&(k in jr["*"]||k in O)))}},R=_=>{_.sourceSpan&&_.endSourceSpan&&(_.sourceSpan=new h(_.sourceSpan.start,_.endSourceSpan.end))},$=_=>{if(_.type==="element"){let O=C(p?_.name:_.name.toLowerCase());!_.namespace||_.namespace===O.implicitNamespacePrefix||os(_)?_.tagDefinition=O:_.tagDefinition=C("")}};return l(new class extends i{visit(_){B(_),$(_),N(_),R(_)}},d),d}function Ts(e,r,t){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,{frontMatter:c,content:n}=s?QD(e):{frontMatter:null,content:e},a=new YD(e,r.filepath),p=new is(a,0,0,0),D=p.moveBy(e.length),g={type:"root",sourceSpan:new Qe(p,D),children:al(n,t,r)};if(c){let h=new is(a,0,0,0),C=h.moveBy(c.raw.length);c.sourceSpan=new Qe(h,C),g.children.unshift(c)}let i=new tl(g),l=(h,C)=>{let{offset:d}=C,m=e.slice(0,d).replace(/[^\n\r]/g," "),B=Ts(m+h,r,t,!1);B.sourceSpan=new Qe(C,KD(B.children).sourceSpan.end);let A=B.children[0];return A.length===d?B.children.shift():(A.sourceSpan=new Qe(A.sourceSpan.start.moveBy(d),A.sourceSpan.end),A.value=A.value.slice(d)),B};return i.walk(h=>{if(h.type==="comment"){let C=ul(h,l);C&&h.parent.replaceChild(h,C)}}),i}function Ke(){let{name:e,recognizeSelfClosing:r=!1,normalizeTagName:t=!1,normalizeAttributeName:s=!1,allowHtmComponentClosingTags:c=!1,isTagNameCaseSensitive:n=!1,getTagContentType:a}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{parse:(p,D,g)=>Ts(p,Object.assign({parser:e},g),{recognizeSelfClosing:r,normalizeTagName:t,normalizeAttributeName:s,allowHtmComponentClosingTags:c,isTagNameCaseSensitive:n,getTagContentType:a}),hasPragma:rl,astFormat:"html",locStart:nl,locEnd:sl}}Bs.exports={parsers:{html:Ke({name:"html",recognizeSelfClosing:!0,normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0}),angular:Ke({name:"angular"}),vue:Ke({name:"vue",recognizeSelfClosing:!0,isTagNameCaseSensitive:!0,getTagContentType:(e,r,t,s)=>{if(e.toLowerCase()!=="html"&&!t&&(e!=="template"||s.some(c=>{let{name:n,value:a}=c;return n==="lang"&&a!=="html"&&a!==""&&a!==void 0})))return ys().TagContentType.RAW_TEXT}}),lwc:Ke({name:"lwc"})}}});return il();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-markdown.js b/node_modules/prettier/parser-markdown.js new file mode 100644 index 0000000..1b209e8 --- /dev/null +++ b/node_modules/prettier/parser-markdown.js @@ -0,0 +1,76 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.markdown=e()}})(function(){"use strict";var H=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var ue=H((uf,Au)=>{var ur=function(e){return e&&e.Math==Math&&e};Au.exports=ur(typeof globalThis=="object"&&globalThis)||ur(typeof window=="object"&&window)||ur(typeof self=="object"&&self)||ur(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Ae=H((tf,xu)=>{xu.exports=function(e){try{return!!e()}catch{return!0}}});var _e=H((nf,bu)=>{var ca=Ae();bu.exports=!ca(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var tr=H((af,yu)=>{var la=Ae();yu.exports=!la(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var Oe=H((of,Bu)=>{var Da=tr(),nr=Function.prototype.call;Bu.exports=Da?nr.bind(nr):function(){return nr.apply(nr,arguments)}});var _u=H(qu=>{"use strict";var wu={}.propertyIsEnumerable,ku=Object.getOwnPropertyDescriptor,fa=ku&&!wu.call({1:2},1);qu.f=fa?function(r){var u=ku(this,r);return!!u&&u.enumerable}:wu});var ir=H((cf,Ou)=>{Ou.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var ve=H((lf,Tu)=>{var Iu=tr(),Su=Function.prototype,pa=Su.bind,Br=Su.call,da=Iu&&pa.bind(Br,Br);Tu.exports=Iu?function(e){return e&&da(e)}:function(e){return e&&function(){return Br.apply(e,arguments)}}});var ar=H((Df,Lu)=>{var Nu=ve(),ha=Nu({}.toString),va=Nu("".slice);Lu.exports=function(e){return va(ha(e),8,-1)}});var ju=H((ff,Ru)=>{var ma=ue(),Ea=ve(),Ca=Ae(),ga=ar(),wr=ma.Object,Fa=Ea("".split);Ru.exports=Ca(function(){return!wr("z").propertyIsEnumerable(0)})?function(e){return ga(e)=="String"?Fa(e,""):wr(e)}:wr});var kr=H((pf,Pu)=>{var Aa=ue(),xa=Aa.TypeError;Pu.exports=function(e){if(e==null)throw xa("Can't call method on "+e);return e}});var or=H((df,Mu)=>{var ba=ju(),ya=kr();Mu.exports=function(e){return ba(ya(e))}});var me=H((hf,zu)=>{zu.exports=function(e){return typeof e=="function"}});var Ie=H((vf,Gu)=>{var Ba=me();Gu.exports=function(e){return typeof e=="object"?e!==null:Ba(e)}});var He=H((mf,Uu)=>{var qr=ue(),wa=me(),ka=function(e){return wa(e)?e:void 0};Uu.exports=function(e,r){return arguments.length<2?ka(qr[e]):qr[e]&&qr[e][r]}});var _r=H((Ef,Vu)=>{var qa=ve();Vu.exports=qa({}.isPrototypeOf)});var Hu=H((Cf,$u)=>{var _a=He();$u.exports=_a("navigator","userAgent")||""});var Qu=H((gf,Zu)=>{var Ju=ue(),Or=Hu(),Xu=Ju.process,Wu=Ju.Deno,Ku=Xu&&Xu.versions||Wu&&Wu.version,Yu=Ku&&Ku.v8,Ee,sr;Yu&&(Ee=Yu.split("."),sr=Ee[0]>0&&Ee[0]<4?1:+(Ee[0]+Ee[1]));!sr&&Or&&(Ee=Or.match(/Edge\/(\d+)/),(!Ee||Ee[1]>=74)&&(Ee=Or.match(/Chrome\/(\d+)/),Ee&&(sr=+Ee[1])));Zu.exports=sr});var Ir=H((Ff,rt)=>{var et=Qu(),Oa=Ae();rt.exports=!!Object.getOwnPropertySymbols&&!Oa(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&et&&et<41})});var Sr=H((Af,ut)=>{var Ia=Ir();ut.exports=Ia&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Tr=H((xf,tt)=>{var Sa=ue(),Ta=He(),Na=me(),La=_r(),Ra=Sr(),ja=Sa.Object;tt.exports=Ra?function(e){return typeof e=="symbol"}:function(e){var r=Ta("Symbol");return Na(r)&&La(r.prototype,ja(e))}});var cr=H((bf,nt)=>{var Pa=ue(),Ma=Pa.String;nt.exports=function(e){try{return Ma(e)}catch{return"Object"}}});var Xe=H((yf,it)=>{var za=ue(),Ga=me(),Ua=cr(),Va=za.TypeError;it.exports=function(e){if(Ga(e))return e;throw Va(Ua(e)+" is not a function")}});var lr=H((Bf,at)=>{var $a=Xe();at.exports=function(e,r){var u=e[r];return u==null?void 0:$a(u)}});var st=H((wf,ot)=>{var Ha=ue(),Nr=Oe(),Lr=me(),Rr=Ie(),Xa=Ha.TypeError;ot.exports=function(e,r){var u,t;if(r==="string"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e))||Lr(u=e.valueOf)&&!Rr(t=Nr(u,e))||r!=="string"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e)))return t;throw Xa("Can't convert object to primitive value")}});var lt=H((kf,ct)=>{ct.exports=!1});var Dr=H((qf,ft)=>{var Dt=ue(),Wa=Object.defineProperty;ft.exports=function(e,r){try{Wa(Dt,e,{value:r,configurable:!0,writable:!0})}catch{Dt[e]=r}return r}});var fr=H((_f,dt)=>{var Ka=ue(),Ya=Dr(),pt="__core-js_shared__",Ja=Ka[pt]||Ya(pt,{});dt.exports=Ja});var jr=H((Of,vt)=>{var Za=lt(),ht=fr();(vt.exports=function(e,r){return ht[e]||(ht[e]=r!==void 0?r:{})})("versions",[]).push({version:"3.22.2",mode:Za?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var Pr=H((If,mt)=>{var Qa=ue(),eo=kr(),ro=Qa.Object;mt.exports=function(e){return ro(eo(e))}});var Be=H((Sf,Et)=>{var uo=ve(),to=Pr(),no=uo({}.hasOwnProperty);Et.exports=Object.hasOwn||function(r,u){return no(to(r),u)}});var Mr=H((Tf,Ct)=>{var io=ve(),ao=0,oo=Math.random(),so=io(1 .toString);Ct.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+so(++ao+oo,36)}});var Te=H((Nf,bt)=>{var co=ue(),lo=jr(),gt=Be(),Do=Mr(),Ft=Ir(),xt=Sr(),Le=lo("wks"),Se=co.Symbol,At=Se&&Se.for,fo=xt?Se:Se&&Se.withoutSetter||Do;bt.exports=function(e){if(!gt(Le,e)||!(Ft||typeof Le[e]=="string")){var r="Symbol."+e;Ft&>(Se,e)?Le[e]=Se[e]:xt&&At?Le[e]=At(r):Le[e]=fo(r)}return Le[e]}});var kt=H((Lf,wt)=>{var po=ue(),ho=Oe(),yt=Ie(),Bt=Tr(),vo=lr(),mo=st(),Eo=Te(),Co=po.TypeError,go=Eo("toPrimitive");wt.exports=function(e,r){if(!yt(e)||Bt(e))return e;var u=vo(e,go),t;if(u){if(r===void 0&&(r="default"),t=ho(u,e,r),!yt(t)||Bt(t))return t;throw Co("Can't convert object to primitive value")}return r===void 0&&(r="number"),mo(e,r)}});var pr=H((Rf,qt)=>{var Fo=kt(),Ao=Tr();qt.exports=function(e){var r=Fo(e,"string");return Ao(r)?r:r+""}});var It=H((jf,Ot)=>{var xo=ue(),_t=Ie(),zr=xo.document,bo=_t(zr)&&_t(zr.createElement);Ot.exports=function(e){return bo?zr.createElement(e):{}}});var Gr=H((Pf,St)=>{var yo=_e(),Bo=Ae(),wo=It();St.exports=!yo&&!Bo(function(){return Object.defineProperty(wo("div"),"a",{get:function(){return 7}}).a!=7})});var Ur=H(Nt=>{var ko=_e(),qo=Oe(),_o=_u(),Oo=ir(),Io=or(),So=pr(),To=Be(),No=Gr(),Tt=Object.getOwnPropertyDescriptor;Nt.f=ko?Tt:function(r,u){if(r=Io(r),u=So(u),No)try{return Tt(r,u)}catch{}if(To(r,u))return Oo(!qo(_o.f,r,u),r[u])}});var Rt=H((zf,Lt)=>{var Lo=_e(),Ro=Ae();Lt.exports=Lo&&Ro(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Re=H((Gf,Pt)=>{var jt=ue(),jo=Ie(),Po=jt.String,Mo=jt.TypeError;Pt.exports=function(e){if(jo(e))return e;throw Mo(Po(e)+" is not an object")}});var hr=H(zt=>{var zo=ue(),Go=_e(),Uo=Gr(),Vo=Rt(),dr=Re(),Mt=pr(),$o=zo.TypeError,Vr=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$r="enumerable",Hr="configurable",Xr="writable";zt.f=Go?Vo?function(r,u,t){if(dr(r),u=Mt(u),dr(t),typeof r=="function"&&u==="prototype"&&"value"in t&&Xr in t&&!t[Xr]){var o=Ho(r,u);o&&o[Xr]&&(r[u]=t.value,t={configurable:Hr in t?t[Hr]:o[Hr],enumerable:$r in t?t[$r]:o[$r],writable:!1})}return Vr(r,u,t)}:Vr:function(r,u,t){if(dr(r),u=Mt(u),dr(t),Uo)try{return Vr(r,u,t)}catch{}if("get"in t||"set"in t)throw $o("Accessors not supported");return"value"in t&&(r[u]=t.value),r}});var vr=H((Vf,Gt)=>{var Xo=_e(),Wo=hr(),Ko=ir();Gt.exports=Xo?function(e,r,u){return Wo.f(e,r,Ko(1,u))}:function(e,r,u){return e[r]=u,e}});var mr=H(($f,Ut)=>{var Yo=ve(),Jo=me(),Wr=fr(),Zo=Yo(Function.toString);Jo(Wr.inspectSource)||(Wr.inspectSource=function(e){return Zo(e)});Ut.exports=Wr.inspectSource});var Ht=H((Hf,$t)=>{var Qo=ue(),es=me(),rs=mr(),Vt=Qo.WeakMap;$t.exports=es(Vt)&&/native code/.test(rs(Vt))});var Kt=H((Xf,Wt)=>{var us=jr(),ts=Mr(),Xt=us("keys");Wt.exports=function(e){return Xt[e]||(Xt[e]=ts(e))}});var Kr=H((Wf,Yt)=>{Yt.exports={}});var un=H((Kf,rn)=>{var ns=Ht(),en=ue(),Yr=ve(),is=Ie(),as=vr(),Jr=Be(),Zr=fr(),os=Kt(),ss=Kr(),Jt="Object already initialized",eu=en.TypeError,cs=en.WeakMap,Er,We,Cr,ls=function(e){return Cr(e)?We(e):Er(e,{})},Ds=function(e){return function(r){var u;if(!is(r)||(u=We(r)).type!==e)throw eu("Incompatible receiver, "+e+" required");return u}};ns||Zr.state?(we=Zr.state||(Zr.state=new cs),Zt=Yr(we.get),Qr=Yr(we.has),Qt=Yr(we.set),Er=function(e,r){if(Qr(we,e))throw new eu(Jt);return r.facade=e,Qt(we,e,r),r},We=function(e){return Zt(we,e)||{}},Cr=function(e){return Qr(we,e)}):(Ne=os("state"),ss[Ne]=!0,Er=function(e,r){if(Jr(e,Ne))throw new eu(Jt);return r.facade=e,as(e,Ne,r),r},We=function(e){return Jr(e,Ne)?e[Ne]:{}},Cr=function(e){return Jr(e,Ne)});var we,Zt,Qr,Qt,Ne;rn.exports={set:Er,get:We,has:Cr,enforce:ls,getterFor:Ds}});var an=H((Yf,nn)=>{var ru=_e(),fs=Be(),tn=Function.prototype,ps=ru&&Object.getOwnPropertyDescriptor,uu=fs(tn,"name"),ds=uu&&function(){}.name==="something",hs=uu&&(!ru||ru&&ps(tn,"name").configurable);nn.exports={EXISTS:uu,PROPER:ds,CONFIGURABLE:hs}});var Dn=H((Jf,ln)=>{var vs=ue(),on=me(),ms=Be(),sn=vr(),Es=Dr(),Cs=mr(),cn=un(),gs=an().CONFIGURABLE,Fs=cn.get,As=cn.enforce,xs=String(String).split("String");(ln.exports=function(e,r,u,t){var o=t?!!t.unsafe:!1,n=t?!!t.enumerable:!1,s=t?!!t.noTargetGet:!1,c=t&&t.name!==void 0?t.name:r,i;if(on(u)&&(String(c).slice(0,7)==="Symbol("&&(c="["+String(c).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!ms(u,"name")||gs&&u.name!==c)&&sn(u,"name",c),i=As(u),i.source||(i.source=xs.join(typeof c=="string"?c:""))),e===vs){n?e[r]=u:Es(r,u);return}else o?!s&&e[r]&&(n=!0):delete e[r];n?e[r]=u:sn(e,r,u)})(Function.prototype,"toString",function(){return on(this)&&Fs(this).source||Cs(this)})});var tu=H((Zf,fn)=>{var bs=Math.ceil,ys=Math.floor;fn.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?ys:bs)(r)}});var dn=H((Qf,pn)=>{var Bs=tu(),ws=Math.max,ks=Math.min;pn.exports=function(e,r){var u=Bs(e);return u<0?ws(u+r,0):ks(u,r)}});var vn=H((ep,hn)=>{var qs=tu(),_s=Math.min;hn.exports=function(e){return e>0?_s(qs(e),9007199254740991):0}});var Ke=H((rp,mn)=>{var Os=vn();mn.exports=function(e){return Os(e.length)}});var gn=H((up,Cn)=>{var Is=or(),Ss=dn(),Ts=Ke(),En=function(e){return function(r,u,t){var o=Is(r),n=Ts(o),s=Ss(t,n),c;if(e&&u!=u){for(;n>s;)if(c=o[s++],c!=c)return!0}else for(;n>s;s++)if((e||s in o)&&o[s]===u)return e||s||0;return!e&&-1}};Cn.exports={includes:En(!0),indexOf:En(!1)}});var xn=H((tp,An)=>{var Ns=ve(),nu=Be(),Ls=or(),Rs=gn().indexOf,js=Kr(),Fn=Ns([].push);An.exports=function(e,r){var u=Ls(e),t=0,o=[],n;for(n in u)!nu(js,n)&&nu(u,n)&&Fn(o,n);for(;r.length>t;)nu(u,n=r[t++])&&(~Rs(o,n)||Fn(o,n));return o}});var yn=H((np,bn)=>{bn.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var wn=H(Bn=>{var Ps=xn(),Ms=yn(),zs=Ms.concat("length","prototype");Bn.f=Object.getOwnPropertyNames||function(r){return Ps(r,zs)}});var qn=H(kn=>{kn.f=Object.getOwnPropertySymbols});var On=H((op,_n)=>{var Gs=He(),Us=ve(),Vs=wn(),$s=qn(),Hs=Re(),Xs=Us([].concat);_n.exports=Gs("Reflect","ownKeys")||function(r){var u=Vs.f(Hs(r)),t=$s.f;return t?Xs(u,t(r)):u}});var Tn=H((sp,Sn)=>{var In=Be(),Ws=On(),Ks=Ur(),Ys=hr();Sn.exports=function(e,r,u){for(var t=Ws(r),o=Ys.f,n=Ks.f,s=0;s{var Js=Ae(),Zs=me(),Qs=/#|\.prototype\./,Ye=function(e,r){var u=rc[ec(e)];return u==tc?!0:u==uc?!1:Zs(r)?Js(r):!!r},ec=Ye.normalize=function(e){return String(e).replace(Qs,".").toLowerCase()},rc=Ye.data={},uc=Ye.NATIVE="N",tc=Ye.POLYFILL="P";Nn.exports=Ye});var au=H((lp,Rn)=>{var iu=ue(),nc=Ur().f,ic=vr(),ac=Dn(),oc=Dr(),sc=Tn(),cc=Ln();Rn.exports=function(e,r){var u=e.target,t=e.global,o=e.stat,n,s,c,i,D,a;if(t?s=iu:o?s=iu[u]||oc(u,{}):s=(iu[u]||{}).prototype,s)for(c in r){if(D=r[c],e.noTargetGet?(a=nc(s,c),i=a&&a.value):i=s[c],n=cc(t?c:u+(o?".":"#")+c,e.forced),!n&&i!==void 0){if(typeof D==typeof i)continue;sc(D,i)}(e.sham||i&&i.sham)&&ic(D,"sham",!0),ac(s,c,D,e)}}});var ou=H((Dp,jn)=>{var lc=ar();jn.exports=Array.isArray||function(r){return lc(r)=="Array"}});var su=H((fp,Mn)=>{var Pn=ve(),Dc=Xe(),fc=tr(),pc=Pn(Pn.bind);Mn.exports=function(e,r){return Dc(e),r===void 0?e:fc?pc(e,r):function(){return e.apply(r,arguments)}}});var Un=H((pp,Gn)=>{"use strict";var dc=ue(),hc=ou(),vc=Ke(),mc=su(),Ec=dc.TypeError,zn=function(e,r,u,t,o,n,s,c){for(var i=o,D=0,a=s?mc(s,c):!1,l,p;D0&&hc(l))p=vc(l),i=zn(e,r,l,p,i,n-1)-1;else{if(i>=9007199254740991)throw Ec("Exceed the acceptable array length");e[i]=l}i++}D++}return i};Gn.exports=zn});var Hn=H((dp,$n)=>{var Cc=Te(),gc=Cc("toStringTag"),Vn={};Vn[gc]="z";$n.exports=String(Vn)==="[object z]"});var cu=H((hp,Xn)=>{var Fc=ue(),Ac=Hn(),xc=me(),gr=ar(),bc=Te(),yc=bc("toStringTag"),Bc=Fc.Object,wc=gr(function(){return arguments}())=="Arguments",kc=function(e,r){try{return e[r]}catch{}};Xn.exports=Ac?gr:function(e){var r,u,t;return e===void 0?"Undefined":e===null?"Null":typeof(u=kc(r=Bc(e),yc))=="string"?u:wc?gr(r):(t=gr(r))=="Object"&&xc(r.callee)?"Arguments":t}});var Qn=H((vp,Zn)=>{var qc=ve(),_c=Ae(),Wn=me(),Oc=cu(),Ic=He(),Sc=mr(),Kn=function(){},Tc=[],Yn=Ic("Reflect","construct"),lu=/^\s*(?:class|function)\b/,Nc=qc(lu.exec),Lc=!lu.exec(Kn),Je=function(r){if(!Wn(r))return!1;try{return Yn(Kn,Tc,r),!0}catch{return!1}},Jn=function(r){if(!Wn(r))return!1;switch(Oc(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Lc||!!Nc(lu,Sc(r))}catch{return!0}};Jn.sham=!0;Zn.exports=!Yn||_c(function(){var e;return Je(Je.call)||!Je(Object)||!Je(function(){e=!0})||e})?Jn:Je});var ti=H((mp,ui)=>{var Rc=ue(),ei=ou(),jc=Qn(),Pc=Ie(),Mc=Te(),zc=Mc("species"),ri=Rc.Array;ui.exports=function(e){var r;return ei(e)&&(r=e.constructor,jc(r)&&(r===ri||ei(r.prototype))?r=void 0:Pc(r)&&(r=r[zc],r===null&&(r=void 0))),r===void 0?ri:r}});var ii=H((Ep,ni)=>{var Gc=ti();ni.exports=function(e,r){return new(Gc(e))(r===0?0:r)}});var ai=H(()=>{"use strict";var Uc=au(),Vc=Un(),$c=Xe(),Hc=Pr(),Xc=Ke(),Wc=ii();Uc({target:"Array",proto:!0},{flatMap:function(r){var u=Hc(this),t=Xc(u),o;return $c(r),o=Wc(u,0),o.length=Vc(o,u,u,t,0,1,r,arguments.length>1?arguments[1]:void 0),o}})});var Du=H((Fp,oi)=>{oi.exports={}});var ci=H((Ap,si)=>{var Kc=Te(),Yc=Du(),Jc=Kc("iterator"),Zc=Array.prototype;si.exports=function(e){return e!==void 0&&(Yc.Array===e||Zc[Jc]===e)}});var fu=H((xp,Di)=>{var Qc=cu(),li=lr(),el=Du(),rl=Te(),ul=rl("iterator");Di.exports=function(e){if(e!=null)return li(e,ul)||li(e,"@@iterator")||el[Qc(e)]}});var pi=H((bp,fi)=>{var tl=ue(),nl=Oe(),il=Xe(),al=Re(),ol=cr(),sl=fu(),cl=tl.TypeError;fi.exports=function(e,r){var u=arguments.length<2?sl(e):r;if(il(u))return al(nl(u,e));throw cl(ol(e)+" is not iterable")}});var vi=H((yp,hi)=>{var ll=Oe(),di=Re(),Dl=lr();hi.exports=function(e,r,u){var t,o;di(e);try{if(t=Dl(e,"return"),!t){if(r==="throw")throw u;return u}t=ll(t,e)}catch(n){o=!0,t=n}if(r==="throw")throw u;if(o)throw t;return di(t),u}});var Fi=H((Bp,gi)=>{var fl=ue(),pl=su(),dl=Oe(),hl=Re(),vl=cr(),ml=ci(),El=Ke(),mi=_r(),Cl=pi(),gl=fu(),Ei=vi(),Fl=fl.TypeError,Fr=function(e,r){this.stopped=e,this.result=r},Ci=Fr.prototype;gi.exports=function(e,r,u){var t=u&&u.that,o=!!(u&&u.AS_ENTRIES),n=!!(u&&u.IS_ITERATOR),s=!!(u&&u.INTERRUPTED),c=pl(r,t),i,D,a,l,p,d,g,F=function(x){return i&&Ei(i,"normal",x),new Fr(!0,x)},E=function(x){return o?(hl(x),s?c(x[0],x[1],F):c(x[0],x[1])):s?c(x,F):c(x)};if(n)i=e;else{if(D=gl(e),!D)throw Fl(vl(e)+" is not iterable");if(ml(D)){for(a=0,l=El(e);l>a;a++)if(p=E(e[a]),p&&mi(Ci,p))return p;return new Fr(!1)}i=Cl(e,D)}for(d=i.next;!(g=dl(d,i)).done;){try{p=E(g.value)}catch(x){Ei(i,"throw",x)}if(typeof p=="object"&&p&&mi(Ci,p))return p}return new Fr(!1)}});var xi=H((wp,Ai)=>{"use strict";var Al=pr(),xl=hr(),bl=ir();Ai.exports=function(e,r,u){var t=Al(r);t in e?xl.f(e,t,bl(0,u)):e[t]=u}});var bi=H(()=>{var yl=au(),Bl=Fi(),wl=xi();yl({target:"Object",stat:!0},{fromEntries:function(r){var u={};return Bl(r,function(t,o){wl(u,t,o)},{AS_ENTRIES:!0}),u}})});var ef=H((_p,oa)=>{var kl=["cliName","cliCategory","cliDescription"],yi,Bi,wi,ki,qi,_i;function ql(e,r){if(e==null)return{};var u=_l(e,r),t,o;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(e,t)||(u[t]=e[t]))}return u}function _l(e,r){if(e==null)return{};var u={},t=Object.keys(e),o,n;for(n=0;n=0)&&(u[o]=e[o]);return u}ai();bi();function je(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}var Ol=Object.create,Ar=Object.defineProperty,Il=Object.getOwnPropertyDescriptor,pu=Object.getOwnPropertyNames,Sl=Object.getPrototypeOf,Tl=Object.prototype.hasOwnProperty,Pe=(e,r)=>function(){return e&&(r=(0,e[pu(e)[0]])(e=0)),r},S=(e,r)=>function(){return r||(0,e[pu(e)[0]])((r={exports:{}}).exports,r),r.exports},Li=(e,r)=>{for(var u in r)Ar(e,u,{get:r[u],enumerable:!0})},Ri=(e,r,u,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of pu(r))!Tl.call(e,o)&&o!==u&&Ar(e,o,{get:()=>r[o],enumerable:!(t=Il(r,o))||t.enumerable});return e},Nl=(e,r,u)=>(u=e!=null?Ol(Sl(e)):{},Ri(r||!e||!e.__esModule?Ar(u,"default",{value:e,enumerable:!0}):u,e)),ji=e=>Ri(Ar({},"__esModule",{value:!0}),e),Oi,Ii,Ze,I=Pe({""(){Oi={},Ii=[],Ze={env:Oi,argv:Ii}}}),Me=S({"node_modules/xtend/immutable.js"(e,r){I(),r.exports=t;var u=Object.prototype.hasOwnProperty;function t(){for(var o={},n=0;n-1&&DD)return{line:a+1,column:D-(n[a-1]||0)+1,offset:D}}return{}}function i(D){var a=D&&D.line,l=D&&D.column,p;return!isNaN(a)&&!isNaN(l)&&a-1 in n&&(p=(n[a-2]||0)+l-1||0),p>-1&&p",Iacute:"\xCD",Icirc:"\xCE",Igrave:"\xCC",Iuml:"\xCF",LT:"<",Ntilde:"\xD1",Oacute:"\xD3",Ocirc:"\xD4",Ograve:"\xD2",Oslash:"\xD8",Otilde:"\xD5",Ouml:"\xD6",QUOT:'"',REG:"\xAE",THORN:"\xDE",Uacute:"\xDA",Ucirc:"\xDB",Ugrave:"\xD9",Uuml:"\xDC",Yacute:"\xDD",aacute:"\xE1",acirc:"\xE2",acute:"\xB4",aelig:"\xE6",agrave:"\xE0",amp:"&",aring:"\xE5",atilde:"\xE3",auml:"\xE4",brvbar:"\xA6",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",eacute:"\xE9",ecirc:"\xEA",egrave:"\xE8",eth:"\xF0",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",iacute:"\xED",icirc:"\xEE",iexcl:"\xA1",igrave:"\xEC",iquest:"\xBF",iuml:"\xEF",laquo:"\xAB",lt:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",ntilde:"\xF1",oacute:"\xF3",ocirc:"\xF4",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",oslash:"\xF8",otilde:"\xF5",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',raquo:"\xBB",reg:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",thorn:"\xFE",times:"\xD7",uacute:"\xFA",ucirc:"\xFB",ugrave:"\xF9",uml:"\xA8",uuml:"\xFC",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}}}),Gl=S({"node_modules/character-reference-invalid/index.json"(e,r){r.exports={0:"\uFFFD",128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"}}}),ze=S({"node_modules/is-decimal/index.js"(e,r){"use strict";I(),r.exports=u;function u(t){var o=typeof t=="string"?t.charCodeAt(0):t;return o>=48&&o<=57}}}),Ul=S({"node_modules/is-hexadecimal/index.js"(e,r){"use strict";I(),r.exports=u;function u(t){var o=typeof t=="string"?t.charCodeAt(0):t;return o>=97&&o<=102||o>=65&&o<=70||o>=48&&o<=57}}}),Qe=S({"node_modules/is-alphabetical/index.js"(e,r){"use strict";I(),r.exports=u;function u(t){var o=typeof t=="string"?t.charCodeAt(0):t;return o>=97&&o<=122||o>=65&&o<=90}}}),Vl=S({"node_modules/is-alphanumerical/index.js"(e,r){"use strict";I();var u=Qe(),t=ze();r.exports=o;function o(n){return u(n)||t(n)}}}),$l=S({"node_modules/character-entities/index.json"(e,r){r.exports={AEli:"\xC6",AElig:"\xC6",AM:"&",AMP:"&",Aacut:"\xC1",Aacute:"\xC1",Abreve:"\u0102",Acir:"\xC2",Acirc:"\xC2",Acy:"\u0410",Afr:"\u{1D504}",Agrav:"\xC0",Agrave:"\xC0",Alpha:"\u0391",Amacr:"\u0100",And:"\u2A53",Aogon:"\u0104",Aopf:"\u{1D538}",ApplyFunction:"\u2061",Arin:"\xC5",Aring:"\xC5",Ascr:"\u{1D49C}",Assign:"\u2254",Atild:"\xC3",Atilde:"\xC3",Aum:"\xC4",Auml:"\xC4",Backslash:"\u2216",Barv:"\u2AE7",Barwed:"\u2306",Bcy:"\u0411",Because:"\u2235",Bernoullis:"\u212C",Beta:"\u0392",Bfr:"\u{1D505}",Bopf:"\u{1D539}",Breve:"\u02D8",Bscr:"\u212C",Bumpeq:"\u224E",CHcy:"\u0427",COP:"\xA9",COPY:"\xA9",Cacute:"\u0106",Cap:"\u22D2",CapitalDifferentialD:"\u2145",Cayleys:"\u212D",Ccaron:"\u010C",Ccedi:"\xC7",Ccedil:"\xC7",Ccirc:"\u0108",Cconint:"\u2230",Cdot:"\u010A",Cedilla:"\xB8",CenterDot:"\xB7",Cfr:"\u212D",Chi:"\u03A7",CircleDot:"\u2299",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",Colon:"\u2237",Colone:"\u2A74",Congruent:"\u2261",Conint:"\u222F",ContourIntegral:"\u222E",Copf:"\u2102",Coproduct:"\u2210",CounterClockwiseContourIntegral:"\u2233",Cross:"\u2A2F",Cscr:"\u{1D49E}",Cup:"\u22D3",CupCap:"\u224D",DD:"\u2145",DDotrahd:"\u2911",DJcy:"\u0402",DScy:"\u0405",DZcy:"\u040F",Dagger:"\u2021",Darr:"\u21A1",Dashv:"\u2AE4",Dcaron:"\u010E",Dcy:"\u0414",Del:"\u2207",Delta:"\u0394",Dfr:"\u{1D507}",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",Diamond:"\u22C4",DifferentialD:"\u2146",Dopf:"\u{1D53B}",Dot:"\xA8",DotDot:"\u20DC",DotEqual:"\u2250",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",Downarrow:"\u21D3",Dscr:"\u{1D49F}",Dstrok:"\u0110",ENG:"\u014A",ET:"\xD0",ETH:"\xD0",Eacut:"\xC9",Eacute:"\xC9",Ecaron:"\u011A",Ecir:"\xCA",Ecirc:"\xCA",Ecy:"\u042D",Edot:"\u0116",Efr:"\u{1D508}",Egrav:"\xC8",Egrave:"\xC8",Element:"\u2208",Emacr:"\u0112",EmptySmallSquare:"\u25FB",EmptyVerySmallSquare:"\u25AB",Eogon:"\u0118",Eopf:"\u{1D53C}",Epsilon:"\u0395",Equal:"\u2A75",EqualTilde:"\u2242",Equilibrium:"\u21CC",Escr:"\u2130",Esim:"\u2A73",Eta:"\u0397",Eum:"\xCB",Euml:"\xCB",Exists:"\u2203",ExponentialE:"\u2147",Fcy:"\u0424",Ffr:"\u{1D509}",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",Fopf:"\u{1D53D}",ForAll:"\u2200",Fouriertrf:"\u2131",Fscr:"\u2131",GJcy:"\u0403",G:">",GT:">",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacut:"\xCD",Iacute:"\xCD",Icir:"\xCE",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrav:"\xCC",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Ium:"\xCF",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",L:"<",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntild:"\xD1",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacut:"\xD3",Oacute:"\xD3",Ocir:"\xD4",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograv:"\xD2",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslas:"\xD8",Oslash:"\xD8",Otild:"\xD5",Otilde:"\xD5",Otimes:"\u2A37",Oum:"\xD6",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUO:'"',QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",RE:"\xAE",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THOR:"\xDE",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacut:"\xDA",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucir:"\xDB",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrav:"\xD9",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uum:"\xDC",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacut:"\xDD",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacut:"\xE1",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acir:"\xE2",acirc:"\xE2",acut:"\xB4",acute:"\xB4",acy:"\u0430",aeli:"\xE6",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrav:"\xE0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",am:"&",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",arin:"\xE5",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atild:"\xE3",atilde:"\xE3",aum:"\xE4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvba:"\xA6",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedi:"\xE7",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedi:"\xB8",cedil:"\xB8",cemptyv:"\u29B2",cen:"\xA2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",cop:"\xA9",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curre:"\xA4",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",de:"\xB0",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divid:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacut:"\xE9",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\xEA",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrav:"\xE8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",et:"\xF0",eth:"\xF0",eum:"\xEB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac1:"\xBC",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac3:"\xBE",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",g:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacut:"\xED",iacute:"\xED",ic:"\u2063",icir:"\xEE",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexc:"\xA1",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrav:"\xEC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iques:"\xBF",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",ium:"\xEF",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laqu:"\xAB",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",l:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",mac:"\xAF",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micr:"\xB5",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middo:"\xB7",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbs:"\xA0",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",no:"\xAC",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntild:"\xF1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacut:"\xF3",oacute:"\xF3",oast:"\u229B",ocir:"\xF4",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograv:"\xF2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\xBA",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslas:"\xF8",oslash:"\xF8",osol:"\u2298",otild:"\xF5",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",oum:"\xF6",ouml:"\xF6",ovbar:"\u233D",par:"\xB6",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusm:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",poun:"\xA3",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quo:'"',quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raqu:"\xBB",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",re:"\xAE",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sec:"\xA7",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",sh:"\xAD",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szli:"\xDF",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thor:"\xFE",thorn:"\xFE",tilde:"\u02DC",time:"\xD7",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacut:"\xFA",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucir:"\xFB",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrav:"\xF9",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",um:"\xA8",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uum:"\xFC",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacut:"\xFD",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",ye:"\xA5",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yum:"\xFF",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}}}),Hl=S({"node_modules/parse-entities/decode-entity.js"(e,r){"use strict";I();var u=$l();r.exports=o;var t={}.hasOwnProperty;function o(n){return t.call(u,n)?u[n]:!1}}}),xr=S({"node_modules/parse-entities/index.js"(e,r){"use strict";I();var u=zl(),t=Gl(),o=ze(),n=Ul(),s=Vl(),c=Hl();r.exports=J;var i={}.hasOwnProperty,D=String.fromCharCode,a=Function.prototype,l={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},p=9,d=10,g=12,F=32,E=38,x=59,f=60,b=61,v=35,h=88,m=120,C=65533,B="named",q="hexadecimal",L="decimal",w={};w[q]=16,w[L]=10;var O={};O[B]=s,O[L]=o,O[q]=n;var T=1,P=2,A=3,j=4,$=5,U=6,X=7,R={};R[T]="Named character references must be terminated by a semicolon",R[P]="Numeric character references must be terminated by a semicolon",R[A]="Named character references cannot be empty",R[j]="Numeric character references cannot be empty",R[$]="Named character references must be known",R[U]="Numeric character references cannot be disallowed",R[X]="Numeric character references cannot be outside the permissible Unicode range";function J(k,y){var _={},N,V;y||(y={});for(V in l)N=y[V],_[V]=N==null?l[V]:N;return(_.position.indent||_.position.start)&&(_.indent=_.position.indent||[],_.position=_.position.start),z(k,_)}function z(k,y){var _=y.additional,N=y.nonTerminated,V=y.text,W=y.reference,K=y.warning,ee=y.textContext,Y=y.referenceContext,te=y.warningContext,De=y.position,le=y.indent||[],ne=k.length,Z=0,Q=-1,fe=De.column||1,be=De.line||1,pe="",he=[],oe,de,ie,re,ye,se,ae,Ce,er,br,ke,Ue,qe,Fe,Eu,Ve,rr,ge,ce;for(typeof _=="string"&&(_=_.charCodeAt(0)),Ve=$e(),Ce=K?sa:a,Z--,ne++;++Z65535&&(se-=65536,br+=D(se>>>10|55296),se=56320|se&1023),se=br+D(se))):Fe!==B&&Ce(j,ge)),se?(Cu(),Ve=$e(),Z=ce-1,fe+=ce-qe+1,he.push(se),rr=$e(),rr.offset++,W&&W.call(Y,se,{start:Ve,end:rr},k.slice(qe-1,ce)),Ve=rr):(re=k.slice(qe-1,ce),pe+=re,fe+=re.length,Z=ce-1)}else ye===10&&(be++,Q++,fe=0),ye===ye?(pe+=D(ye),fe++):Cu();return he.join("");function $e(){return{line:be,column:fe,offset:Z+(De.offset||0)}}function sa(gu,Fu){var yr=$e();yr.column+=Fu,yr.offset+=Fu,K.call(te,R[gu],yr,gu)}function Cu(){pe&&(he.push(pe),V&&V.call(ee,pe,{start:Ve,end:$e()}),pe="")}}function M(k){return k>=55296&&k<=57343||k>1114111}function G(k){return k>=1&&k<=8||k===11||k>=13&&k<=31||k>=127&&k<=159||k>=64976&&k<=65007||(k&65535)===65535||(k&65535)===65534}}}),Xl=S({"node_modules/remark-parse/lib/decode.js"(e,r){"use strict";I();var u=Me(),t=xr();r.exports=o;function o(n){return c.raw=i,c;function s(a){for(var l=n.offset,p=a.line,d=[];++p&&p in l;)d.push((l[p]||0)+1);return{start:a,indent:d}}function c(a,l,p){t(a,{position:s(l),warning:D,text:p,reference:p,textContext:n,referenceContext:n})}function i(a,l,p){return t(a,u(p,{position:s(l),warning:D}))}function D(a,l,p){p!==3&&n.file.message(a,l)}}}}),Wl=S({"node_modules/remark-parse/lib/tokenizer.js"(e,r){"use strict";I(),r.exports=u;function u(s){return c;function c(i,D){var a=this,l=a.offset,p=[],d=a[s+"Methods"],g=a[s+"Tokenizers"],F=D.line,E=D.column,x,f,b,v,h,m;if(!i)return p;for(P.now=q,P.file=a.file,C("");i;){for(x=-1,f=d.length,h=!1;++x"],t=u.concat(["~","|"]),o=t.concat([` +`,'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);n.default=u,n.gfm=t,n.commonmark=o;function n(s){var c=s||{};return c.commonmark?o:c.gfm?t:u}}}),Yl=S({"node_modules/remark-parse/lib/block-elements.js"(e,r){"use strict";I(),r.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","pre","section","source","title","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]}}),Pi=S({"node_modules/remark-parse/lib/defaults.js"(e,r){"use strict";I(),r.exports={position:!0,gfm:!0,commonmark:!1,pedantic:!1,blocks:Yl()}}}),Jl=S({"node_modules/remark-parse/lib/set-options.js"(e,r){"use strict";I();var u=Me(),t=Kl(),o=Pi();r.exports=n;function n(s){var c=this,i=c.options,D,a;if(s==null)s={};else if(typeof s=="object")s=u(s);else throw new Error("Invalid value `"+s+"` for setting `options`");for(D in o){if(a=s[D],a==null&&(a=i[D]),D!=="blocks"&&typeof a!="boolean"||D==="blocks"&&typeof a!="object")throw new Error("Invalid value `"+a+"` for setting `options."+D+"`");s[D]=a}return c.options=s,c.escape=t(s),c}}}),Zl=S({"node_modules/unist-util-is/convert.js"(e,r){"use strict";I(),r.exports=u;function u(c){if(c==null)return s;if(typeof c=="string")return n(c);if(typeof c=="object")return"length"in c?o(c):t(c);if(typeof c=="function")return c;throw new Error("Expected function, string, or object as test")}function t(c){return i;function i(D){var a;for(a in c)if(D[a]!==c[a])return!1;return!0}}function o(c){for(var i=[],D=-1;++D":""))+")"),h;function h(){var m=f.concat(E),C=[],B,q;if((!a||g(E,x,f[f.length-1]||null))&&(C=i(l(E,f)),C[0]===s))return C;if(E.children&&C[0]!==n)for(q=(p?E.children.length:-1)+d;q>-1&&q"u")t=n,u="";else if(u.length>=c)return u.substr(0,c);for(;c>u.length&&s>1;)s&1&&(u+=n),s>>=1,n+=n;return u+=n,u=u.substr(0,c),u}}}),Mi=S({"node_modules/trim-trailing-lines/index.js"(e,r){"use strict";I(),r.exports=u;function u(t){return String(t).replace(/\n+$/,"")}}}),iD=S({"node_modules/remark-parse/lib/tokenize/code-indented.js"(e,r){"use strict";I();var u=du(),t=Mi();r.exports=D;var o=` +`,n=" ",s=" ",c=4,i=u(s,c);function D(a,l,p){for(var d=-1,g=l.length,F="",E="",x="",f="",b,v,h;++d=i)){for(B="";Es)&&!(!v||!p&&D.charAt(g+1)===n)){for(d=D.length+1,b="";++g=i&&(!E||E===t)?(F+=b,p?!0:a(F)({type:"thematicBreak"})):void 0}}}),zi=S({"node_modules/remark-parse/lib/util/get-indentation.js"(e,r){"use strict";I(),r.exports=s;var u=" ",t=" ",o=1,n=4;function s(c){for(var i=0,D=0,a=c.charAt(i),l={},p,d=0;a===u||a===t;){for(p=a===u?n:o,D+=p,p>1&&(D=Math.floor(D/p)*p);d0&&E.indent=Q.indent&&(ie=!0),y=T.charAt(R),K=null,!ie){if(y===i||y===a||y===l)K=y,R++,M++;else{for(G="";R=Q.indent||M>f),W=!1,R=V;if(Y=T.slice(V,N),ee=V===R?Y:T.slice(R,N),(K===i||K===D||K===l)&&U.thematicBreak.call(A,O,Y,!0))break;if(te=De,De=!W&&!u(ee).length,ie&&Q)Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[];else if(W)Z.length!==0&&(pe=!0,Q.value.push(""),Q.trail=Z.concat()),Q={value:[Y],indent:M,trail:[]},le.push(Q),ne=ne.concat(Z,Y),Z=[];else if(De){if(te&&!j)break;Z.push(Y)}else{if(te||c(X,U,A,[O,Y,!0]))break;Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[]}R=N+1}for(he=O(ne.join(g)).reset({type:"list",ordered:k,start:z,spread:pe,children:[]}),fe=A.enterList(),be=A.enterBlock(),R=-1,J=le.length;++R=c){x--;break}f+=h}for(b="",v="";++x`\\u0000-\\u0020]+",t="'[^']*'",o='"[^"]*"',n="(?:"+u+"|"+t+"|"+o+")",s="(?:\\s+"+r+"(?:\\s*=\\s*"+n+")?)",c="<[A-Za-z][A-Za-z0-9\\-]*"+s+"*\\s*\\/?>",i="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",D="|",a="<[?].*?[?]>",l="]*>",p="";e.openCloseTag=new RegExp("^(?:"+c+"|"+i+")"),e.tag=new RegExp("^(?:"+c+"|"+i+"|"+D+"|"+a+"|"+l+"|"+p+")")}}),pD=S({"node_modules/remark-parse/lib/tokenize/html-block.js"(e,r){"use strict";I();var u=Gi().openCloseTag;r.exports=b;var t=" ",o=" ",n=` +`,s="<",c=/^<(script|pre|style)(?=(\s|>|$))/i,i=/<\/(script|pre|style)>/i,D=/^/,l=/^<\?/,p=/\?>/,d=/^/,F=/^/,x=/^$/,f=new RegExp(u.source+"\\s*$");function b(v,h,m){for(var C=this,B=C.options.blocks.join("|"),q=new RegExp("^|$))","i"),L=h.length,w=0,O,T,P,A,j,$,U,X=[[c,i,!0],[D,a,!0],[l,p,!0],[d,g,!0],[F,E,!0],[q,x,!0],[f,x,!1]];wM){if(X1&&(O?(C+=w.slice(0,-1),w=w.charAt(w.length-1)):(C+=w,w="")),$=E.now(),E(C)({type:"tableCell",children:b.tokenizeInline(A,$)},B)),E(w+O),w="",A=""):(w&&(A+=w,w=""),A+=O,O===i&&v!==q-2&&(A+=R.charAt(v+1),v++)),j=!1,v++}U||E(o+h)}return z}}}}}),mD=S({"node_modules/remark-parse/lib/tokenize/paragraph.js"(e,r){"use strict";I();var u=Ge(),t=Mi(),o=hu();r.exports=D;var n=" ",s=` +`,c=" ",i=4;function D(a,l,p){for(var d=this,g=d.options,F=g.commonmark,E=d.blockTokenizers,x=d.interruptParagraph,f=l.indexOf(s),b=l.length,v,h,m,C,B;f=i&&m!==s){f=l.indexOf(s,f+1);continue}}if(h=l.slice(f+1),o(x,E,d,[a,h,!0]))break;if(v=f,f=l.indexOf(s,f+1),f!==-1&&u(l.slice(v,f))===""){f=v;break}}return h=l.slice(0,f),p?!0:(B=a.now(),h=t(h),a(h)({type:"paragraph",children:d.tokenizeInline(h,B)}))}}}),ED=S({"node_modules/remark-parse/lib/locate/escape.js"(e,r){"use strict";I(),r.exports=u;function u(t,o){return t.indexOf("\\",o)}}}),CD=S({"node_modules/remark-parse/lib/tokenize/escape.js"(e,r){"use strict";I();var u=ED();r.exports=n,n.locator=u;var t=` +`,o="\\";function n(s,c,i){var D=this,a,l;if(c.charAt(0)===o&&(a=c.charAt(1),D.escape.indexOf(a)!==-1))return i?!0:(a===t?l={type:"break"}:l={type:"text",value:a},s(o+a)(l))}}}),Vi=S({"node_modules/remark-parse/lib/locate/tag.js"(e,r){"use strict";I(),r.exports=u;function u(t,o){return t.indexOf("<",o)}}}),gD=S({"node_modules/remark-parse/lib/tokenize/auto-link.js"(e,r){"use strict";I();var u=xe(),t=xr(),o=Vi();r.exports=l,l.locator=o,l.notInLink=!0;var n="<",s=">",c="@",i="/",D="mailto:",a=D.length;function l(p,d,g){var F=this,E="",x=d.length,f=0,b="",v=!1,h="",m,C,B,q,L;if(d.charAt(0)===n){for(f++,E=n;fk;)R=J+z.lastIndexOf(m),z=q.slice(J,R),y--;if(q.charCodeAt(R-1)===E&&(R--,n(q.charCodeAt(R-1)))){for(G=R-2;n(q.charCodeAt(G));)G--;q.charCodeAt(G)===D&&(R=G)}return _=q.slice(0,R),V=t(_,{nonTerminated:!1}),j&&(V="http://"+V),W=w.enterLink(),w.inlineTokenizers={text:T.text},N=w.tokenizeInline(_,B.now()),w.inlineTokenizers=T,W(),B(_)({type:"link",title:null,url:V,children:N})}}}}}),bD=S({"node_modules/remark-parse/lib/locate/email.js"(e,r){"use strict";I();var u=ze(),t=Qe(),o=43,n=45,s=46,c=95;r.exports=i;function i(a,l){var p=this,d,g;if(!this.options.gfm||(d=a.indexOf("@",l),d===-1))return-1;if(g=d,g===l||!D(a.charCodeAt(g-1)))return i.call(p,a,d+1);for(;g>l&&D(a.charCodeAt(g-1));)g--;return g}function D(a){return u(a)||t(a)||a===o||a===n||a===s||a===c}}}),yD=S({"node_modules/remark-parse/lib/tokenize/email.js"(e,r){"use strict";I();var u=xr(),t=ze(),o=Qe(),n=bD();r.exports=l,l.locator=n,l.notInLink=!0;var s=43,c=45,i=46,D=64,a=95;function l(p,d,g){var F=this,E=F.options.gfm,x=F.inlineTokenizers,f=0,b=d.length,v=-1,h,m,C,B;if(!!E){for(h=d.charCodeAt(f);t(h)||o(h)||h===s||h===c||h===i||h===a;)h=d.charCodeAt(++f);if(f!==0&&h===D){for(f++;f/i;function l(p,d,g){var F=this,E=d.length,x,f;if(!(d.charAt(0)!==n||E<3)&&(x=d.charAt(1),!(!u(x)&&x!==s&&x!==c&&x!==i)&&(f=d.match(o),!!f)))return g?!0:(f=f[0],!F.inLink&&D.test(f)?F.inLink=!0:F.inLink&&a.test(f)&&(F.inLink=!1),p(f)({type:"html",value:f}))}}}),$i=S({"node_modules/remark-parse/lib/locate/link.js"(e,r){"use strict";I(),r.exports=u;function u(t,o){var n=t.indexOf("[",o),s=t.indexOf("![",o);return s===-1||n=T&&(T=0):T=O}else if(C===d)m++,j+=f.charAt(m);else if((!T||L)&&C===p)M++;else if((!T||L)&&C===g)if(M)M--;else{if(f.charAt(m+1)!==i)return;j+=i,w=!0,m++;break}G+=j,j="",m++}if(!!w){for(X=G,h+=G+j,m++;m2&&(F===o||F===t)&&(E===o||E===t)){for(l++,a--;lo&&t.charAt(n-1)===" ";)n--;return n}}}),PD=S({"node_modules/remark-parse/lib/tokenize/break.js"(e,r){"use strict";I();var u=jD();r.exports=s,s.locator=u;var t=" ",o=` +`,n=2;function s(c,i,D){for(var a=i.length,l=-1,p="",d;++l"u"||u.call(l,g)},i=function(l,p){o&&p.name==="__proto__"?o(l,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):l[p.name]=p.newValue},D=function(l,p){if(p==="__proto__")if(u.call(l,p)){if(n)return n(l,p).value}else return;return l[p]};r.exports=function a(){var l,p,d,g,F,E,x=arguments[0],f=1,b=arguments.length,v=!1;for(typeof x=="boolean"&&(v=x,x=arguments[1]||{},f=2),(x==null||typeof x!="object"&&typeof x!="function")&&(x={});f{if(Object.prototype.toString.call(u)!=="[object Object]")return!1;let t=Object.getPrototypeOf(u);return t===null||t===Object.prototype}}}),HD=S({"node_modules/trough/wrap.js"(e,r){"use strict";I();var u=[].slice;r.exports=t;function t(o,n){var s;return c;function c(){var a=u.call(arguments,0),l=o.length>a.length,p;l&&a.push(i);try{p=o.apply(null,a)}catch(d){if(l&&s)throw d;return i(d)}l||(p&&typeof p.then=="function"?p.then(D,i):p instanceof Error?i(p):D(p))}function i(){s||(s=!0,n.apply(null,arguments))}function D(a){i(null,a)}}}}),XD=S({"node_modules/trough/index.js"(e,r){"use strict";I();var u=HD();r.exports=o,o.wrap=u;var t=[].slice;function o(){var n=[],s={};return s.run=c,s.use=i,s;function c(){var D=-1,a=t.call(arguments,0,-1),l=arguments[arguments.length-1];if(typeof l!="function")throw new Error("Expected function as last argument, not "+l);p.apply(null,[null].concat(a));function p(d){var g=n[++D],F=t.call(arguments,0),E=F.slice(1),x=a.length,f=-1;if(d){l(d);return}for(;++fi.length){for(;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else l<0&&(g=!0,l=p+1);return l<0?"":i.slice(a,l)}if(D===i)return"";for(d=-1,F=D.length-1;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else d<0&&(g=!0,d=p+1),F>-1&&(i.charCodeAt(p)===D.charCodeAt(F--)?F<0&&(l=p):(F=-1,l=d));return a===l?l=d:l<0&&(l=i.length),i.slice(a,l)}function u(i){var D,a,l;if(c(i),!i.length)return".";for(D=-1,l=i.length;--l;)if(i.charCodeAt(l)===47){if(a){D=l;break}}else a||(a=!0);return D<0?i.charCodeAt(0)===47?"/":".":D===1&&i.charCodeAt(0)===47?"//":i.slice(0,D)}function t(i){var D=-1,a=0,l=-1,p=0,d,g,F;for(c(i),F=i.length;F--;){if(g=i.charCodeAt(F),g===47){if(d){a=F+1;break}continue}l<0&&(d=!0,l=F+1),g===46?D<0?D=F:p!==1&&(p=1):D>-1&&(p=-1)}return D<0||l<0||p===0||p===1&&D===l-1&&D===a+1?"":i.slice(D,l)}function o(){for(var i=-1,D;++i2){if(E=a.lastIndexOf("/"),E!==a.length-1){E<0?(a="",l=0):(a=a.slice(0,E),l=a.length-1-a.lastIndexOf("/")),p=g,d=0;continue}}else if(a.length){a="",l=0,p=g,d=0;continue}}D&&(a=a.length?a+"/..":"..",l=2)}else a.length?a+="/"+i.slice(p+1,g):a=i.slice(p+1,g),l=g-p-1;p=g,d=0}else F===46&&d>-1?d++:d=-1}return a}function c(i){if(typeof i!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(i))}}}),JD=S({"node_modules/vfile/lib/minproc.browser.js"(e){"use strict";I(),e.cwd=r;function r(){return"/"}}}),ZD=S({"node_modules/vfile/lib/core.js"(e,r){"use strict";I();var u=YD(),t=JD(),o=Hi();r.exports=c;var n={}.hasOwnProperty,s=["history","path","basename","stem","extname","dirname"];c.prototype.toString=f,Object.defineProperty(c.prototype,"path",{get:i,set:D}),Object.defineProperty(c.prototype,"dirname",{get:a,set:l}),Object.defineProperty(c.prototype,"basename",{get:p,set:d}),Object.defineProperty(c.prototype,"extname",{get:g,set:F}),Object.defineProperty(c.prototype,"stem",{get:E,set:x});function c(m){var C,B;if(!m)m={};else if(typeof m=="string"||o(m))m={contents:m};else if("message"in m&&"messages"in m)return m;if(!(this instanceof c))return new c(m);for(this.data={},this.messages=[],this.history=[],this.cwd=t.cwd(),B=-1;++B-1)throw new Error("`extname` cannot contain multiple dots")}this.path=u.join(this.dirname,this.stem+(m||""))}function E(){return typeof this.path=="string"?u.basename(this.path,this.extname):void 0}function x(m){v(m,"stem"),b(m,"stem"),this.path=u.join(this.dirname||"",m+(this.extname||""))}function f(m){return(this.contents||"").toString(m)}function b(m,C){if(m&&m.indexOf(u.sep)>-1)throw new Error("`"+C+"` cannot be a path: did not expect `"+u.sep+"`")}function v(m,C){if(!m)throw new Error("`"+C+"` cannot be empty")}function h(m,C){if(!m)throw new Error("Setting `"+C+"` requires `path` to be set too")}}}),QD=S({"node_modules/vfile/lib/index.js"(e,r){"use strict";I();var u=KD(),t=ZD();r.exports=t,t.prototype.message=o,t.prototype.info=s,t.prototype.fail=n;function o(c,i,D){var a=new u(c,i,D);return this.path&&(a.name=this.path+":"+a.name,a.file=this.path),a.fatal=!1,this.messages.push(a),a}function n(){var c=this.message.apply(this,arguments);throw c.fatal=!0,c}function s(){var c=this.message.apply(this,arguments);return c.fatal=null,c}}}),e2=S({"node_modules/vfile/index.js"(e,r){"use strict";I(),r.exports=QD()}}),r2=S({"node_modules/unified/index.js"(e,r){"use strict";I();var u=UD(),t=Hi(),o=VD(),n=$D(),s=XD(),c=e2();r.exports=g().freeze();var i=[].slice,D={}.hasOwnProperty,a=s().use(l).use(p).use(d);function l(m,C){C.tree=m.parse(C.file)}function p(m,C,B){m.run(C.tree,C.file,q);function q(L,w,O){L?B(L):(C.tree=w,C.file=O,B())}}function d(m,C){var B=m.stringify(C.tree,C.file);B==null||(typeof B=="string"||t(B)?C.file.contents=B:C.file.result=B)}function g(){var m=[],C=s(),B={},q=-1,L;return w.data=T,w.freeze=O,w.attachers=m,w.use=P,w.parse=j,w.stringify=X,w.run=$,w.runSync=U,w.process=R,w.processSync=J,w;function w(){for(var z=g(),M=-1;++Mc)&&(!B||T===n)){A=L-1,L++,B&&L++,j=L;break}}else O===i&&(L++,T=h.charCodeAt(L+1));L++}if(j!==void 0)return m?!0:($=h.slice(P,A+1),v(h.slice(0,j))({type:"inlineMath",value:$,data:{hName:"span",hProperties:{className:D.concat(B&&F.inlineMathDouble?[a]:[])},hChildren:[{type:"text",value:$}]}}))}}}}function d(g){let F=g.prototype;F.visitors.inlineMath=E;function E(x){let f="$";return(x.data&&x.data.hProperties&&x.data.hProperties.className||[]).includes(a)&&(f="$$"),f+x.value+f}}}}),t2=S({"node_modules/remark-math/block.js"(e,r){I();var u=Xi();r.exports=a;var t=10,o=32,n=36,s=` +`,c="$",i=2,D=["math","math-display"];function a(){let d=this.Parser,g=this.Compiler;u.isRemarkParser(d)&&l(d),u.isRemarkCompiler(g)&&p(g)}function l(d){let g=d.prototype,F=g.blockMethods,E=g.interruptParagraph,x=g.interruptList,f=g.interruptBlockquote;g.blockTokenizers.math=b,F.splice(F.indexOf("fencedCode")+1,0,"math"),E.splice(E.indexOf("fencedCode")+1,0,["math"]),x.splice(x.indexOf("fencedCode")+1,0,["math"]),f.splice(f.indexOf("fencedCode")+1,0,["math"]);function b(v,h,m){var C=h.length,B=0;let q,L,w,O,T,P,A,j,$,U,X;for(;BU&&h.charCodeAt(O-1)===o;)O--;for(;O>U&&h.charCodeAt(O-1)===n;)$++,O--;for(P<=$&&h.indexOf(c,U)===O&&(j=!0,X=O);U<=X&&U-BU&&h.charCodeAt(X-1)===o;)X--;if((!j||U!==X)&&L.push(h.slice(U,X)),j)break;B=w+1,w=h.indexOf(s,B+1),w=w===-1?C:w}return L=L.join(` +`),v(h.slice(0,w))({type:"math",value:L,data:{hName:"div",hProperties:{className:D.concat()},hChildren:[{type:"text",value:L}]}})}}}}function p(d){let g=d.prototype;g.visitors.math=F;function F(E){return`$$ +`+E.value+` +$$`}}}}),n2=S({"node_modules/remark-math/index.js"(e,r){I();var u=u2(),t=t2();r.exports=o;function o(n){var s=n||{};t.call(this,s),u.call(this,s)}}}),i2=S({"node_modules/remark-footnotes/index.js"(e,r){"use strict";I(),r.exports=g;var u=9,t=10,o=32,n=33,s=58,c=91,i=92,D=93,a=94,l=96,p=4,d=1024;function g(h){var m=this.Parser,C=this.Compiler;F(m)&&x(m,h),E(C)&&f(C)}function F(h){return Boolean(h&&h.prototype&&h.prototype.blockTokenizers)}function E(h){return Boolean(h&&h.prototype&&h.prototype.visitors)}function x(h,m){for(var C=m||{},B=h.prototype,q=B.blockTokenizers,L=B.inlineTokenizers,w=B.blockMethods,O=B.inlineMethods,T=q.definition,P=L.reference,A=[],j=-1,$=w.length,U;++j<$;)U=w[j],!(U==="newline"||U==="indentedCode"||U==="paragraph"||U==="footnoteDefinition")&&A.push([U]);A.push(["footnoteDefinition"]),C.inlineNotes&&(b(O,"reference","inlineNote"),L.inlineNote=J),b(w,"definition","footnoteDefinition"),b(O,"reference","footnoteCall"),q.definition=M,q.footnoteDefinition=X,L.footnoteCall=R,L.reference=z,B.interruptFootnoteDefinition=A,z.locator=P.locator,R.locator=G,J.locator=k;function X(y,_,N){for(var V=this,W=V.interruptFootnoteDefinition,K=V.offset,ee=_.length+1,Y=0,te=[],De,le,ne,Z,Q,fe,be,pe,he,oe,de,ie,re;Yp&&(oe=void 0,de=Y);else{if(oe0&&(re=ie[ee-1],re.contentStart===re.contentEnd);)ee--;for(fe=y(_.slice(0,re.contentEnd));++Y-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function t(o){let n=o.match(u);if(!n)return{content:o};let{startDelimiter:s,language:c,value:i="",endDelimiter:D}=n.groups,a=c.trim()||"yaml";if(s==="+++"&&(a="toml"),a!=="yaml"&&s!==D)return{content:o};let[l]=n;return{frontMatter:{type:"front-matter",lang:a,value:i,startDelimiter:s,endDelimiter:D,raw:l.replace(/\n$/,"")},content:l.replace(/[^\n]/g," ")+o.slice(l.length)}}r.exports=t}}),a2=S({"src/language-markdown/pragma.js"(e,r){"use strict";I();var u=Wi(),t=["format","prettier"];function o(n){let s="@(".concat(t.join("|"),")"),c=new RegExp([""),"{\\s*\\/\\*\\s*".concat(s,"\\s*\\*\\/\\s*}"),``)].join("|"),"m"),i=n.match(c);return(i==null?void 0:i.index)===0}r.exports={startWithPragma:o,hasPragma:n=>o(u(n).content.trimStart()),insertPragma:n=>{let s=u(n),c="");return s.frontMatter?"".concat(s.frontMatter.raw,` + +`).concat(c,` + +`).concat(s.content):"".concat(c,` + +`).concat(s.content)}}}}),Ki=S({"src/language-markdown/loc.js"(e,r){"use strict";I();function u(o){return o.position.start.offset}function t(o){return o.position.end.offset}r.exports={locStart:u,locEnd:t}}}),Yi=S({"src/language-markdown/mdx.js"(e,r){"use strict";I();var u=/^import\s/,t=/^export\s/,o="[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)*|",n=/|/,s=/^{\s*\/\*(.*)\*\/\s*}/,c=` + +`,i=d=>u.test(d),D=d=>t.test(d),a=(d,g)=>{let F=g.indexOf(c),E=g.slice(0,F);if(D(E)||i(E))return d(E)({type:D(E)?"export":"import",value:E})},l=(d,g)=>{let F=s.exec(g);if(F)return d(F[0])({type:"esComment",value:F[1].trim()})};a.locator=d=>D(d)||i(d)?-1:1,l.locator=(d,g)=>d.indexOf("{",g);function p(){let{Parser:d}=this,{blockTokenizers:g,blockMethods:F,inlineTokenizers:E,inlineMethods:x}=d.prototype;g.esSyntax=a,E.esComment=l,F.splice(F.indexOf("paragraph"),0,"esSyntax"),x.splice(x.indexOf("text"),0,"esComment")}r.exports={esSyntax:p,BLOCKS_REGEX:o,COMMENT_REGEX:n}}}),Ji={};Li(Ji,{default:()=>o2});function o2(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var s2=Pe({"node_modules/escape-string-regexp/index.js"(){I()}}),c2=S({"src/utils/get-last.js"(e,r){"use strict";I();var u=t=>t[t.length-1];r.exports=u}}),Zi=S({"node_modules/semver/internal/debug.js"(e,r){I();var u=typeof Ze=="object"&&Ze.env&&Ze.env.NODE_DEBUG&&/\bsemver\b/i.test(Ze.env.NODE_DEBUG)?function(){for(var t=arguments.length,o=new Array(t),n=0;n{};r.exports=u}}),Qi=S({"node_modules/semver/internal/constants.js"(e,r){I();var u="2.0.0",t=256,o=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:u,MAX_LENGTH:t,MAX_SAFE_INTEGER:o,MAX_SAFE_COMPONENT_LENGTH:n}}}),l2=S({"node_modules/semver/internal/re.js"(e,r){I();var{MAX_SAFE_COMPONENT_LENGTH:u}=Qi(),t=Zi();e=r.exports={};var o=e.re=[],n=e.src=[],s=e.t={},c=0,i=(D,a,l)=>{let p=c++;t(D,p,a),s[D]=p,n[p]=a,o[p]=new RegExp(a,l?"g":void 0)};i("NUMERICIDENTIFIER","0|[1-9]\\d*"),i("NUMERICIDENTIFIERLOOSE","[0-9]+"),i("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),i("MAINVERSION","(".concat(n[s.NUMERICIDENTIFIER],")\\.(").concat(n[s.NUMERICIDENTIFIER],")\\.(").concat(n[s.NUMERICIDENTIFIER],")")),i("MAINVERSIONLOOSE","(".concat(n[s.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[s.NUMERICIDENTIFIERLOOSE],")\\.(").concat(n[s.NUMERICIDENTIFIERLOOSE],")")),i("PRERELEASEIDENTIFIER","(?:".concat(n[s.NUMERICIDENTIFIER],"|").concat(n[s.NONNUMERICIDENTIFIER],")")),i("PRERELEASEIDENTIFIERLOOSE","(?:".concat(n[s.NUMERICIDENTIFIERLOOSE],"|").concat(n[s.NONNUMERICIDENTIFIER],")")),i("PRERELEASE","(?:-(".concat(n[s.PRERELEASEIDENTIFIER],"(?:\\.").concat(n[s.PRERELEASEIDENTIFIER],")*))")),i("PRERELEASELOOSE","(?:-?(".concat(n[s.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(n[s.PRERELEASEIDENTIFIERLOOSE],")*))")),i("BUILDIDENTIFIER","[0-9A-Za-z-]+"),i("BUILD","(?:\\+(".concat(n[s.BUILDIDENTIFIER],"(?:\\.").concat(n[s.BUILDIDENTIFIER],")*))")),i("FULLPLAIN","v?".concat(n[s.MAINVERSION]).concat(n[s.PRERELEASE],"?").concat(n[s.BUILD],"?")),i("FULL","^".concat(n[s.FULLPLAIN],"$")),i("LOOSEPLAIN","[v=\\s]*".concat(n[s.MAINVERSIONLOOSE]).concat(n[s.PRERELEASELOOSE],"?").concat(n[s.BUILD],"?")),i("LOOSE","^".concat(n[s.LOOSEPLAIN],"$")),i("GTLT","((?:<|>)?=?)"),i("XRANGEIDENTIFIERLOOSE","".concat(n[s.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),i("XRANGEIDENTIFIER","".concat(n[s.NUMERICIDENTIFIER],"|x|X|\\*")),i("XRANGEPLAIN","[v=\\s]*(".concat(n[s.XRANGEIDENTIFIER],")(?:\\.(").concat(n[s.XRANGEIDENTIFIER],")(?:\\.(").concat(n[s.XRANGEIDENTIFIER],")(?:").concat(n[s.PRERELEASE],")?").concat(n[s.BUILD],"?)?)?")),i("XRANGEPLAINLOOSE","[v=\\s]*(".concat(n[s.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[s.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(n[s.XRANGEIDENTIFIERLOOSE],")(?:").concat(n[s.PRERELEASELOOSE],")?").concat(n[s.BUILD],"?)?)?")),i("XRANGE","^".concat(n[s.GTLT],"\\s*").concat(n[s.XRANGEPLAIN],"$")),i("XRANGELOOSE","^".concat(n[s.GTLT],"\\s*").concat(n[s.XRANGEPLAINLOOSE],"$")),i("COERCE","(^|[^\\d])(\\d{1,".concat(u,"})(?:\\.(\\d{1,").concat(u,"}))?(?:\\.(\\d{1,").concat(u,"}))?(?:$|[^\\d])")),i("COERCERTL",n[s.COERCE],!0),i("LONETILDE","(?:~>?)"),i("TILDETRIM","(\\s*)".concat(n[s.LONETILDE],"\\s+"),!0),e.tildeTrimReplace="$1~",i("TILDE","^".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAIN],"$")),i("TILDELOOSE","^".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAINLOOSE],"$")),i("LONECARET","(?:\\^)"),i("CARETTRIM","(\\s*)".concat(n[s.LONECARET],"\\s+"),!0),e.caretTrimReplace="$1^",i("CARET","^".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAIN],"$")),i("CARETLOOSE","^".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAINLOOSE],"$")),i("COMPARATORLOOSE","^".concat(n[s.GTLT],"\\s*(").concat(n[s.LOOSEPLAIN],")$|^$")),i("COMPARATOR","^".concat(n[s.GTLT],"\\s*(").concat(n[s.FULLPLAIN],")$|^$")),i("COMPARATORTRIM","(\\s*)".concat(n[s.GTLT],"\\s*(").concat(n[s.LOOSEPLAIN],"|").concat(n[s.XRANGEPLAIN],")"),!0),e.comparatorTrimReplace="$1$2$3",i("HYPHENRANGE","^\\s*(".concat(n[s.XRANGEPLAIN],")\\s+-\\s+(").concat(n[s.XRANGEPLAIN],")\\s*$")),i("HYPHENRANGELOOSE","^\\s*(".concat(n[s.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(n[s.XRANGEPLAINLOOSE],")\\s*$")),i("STAR","(<|>)?=?\\s*\\*"),i("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),i("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),D2=S({"node_modules/semver/internal/parse-options.js"(e,r){I();var u=["includePrerelease","loose","rtl"],t=o=>o?typeof o!="object"?{loose:!0}:u.filter(n=>o[n]).reduce((n,s)=>(n[s]=!0,n),{}):{};r.exports=t}}),f2=S({"node_modules/semver/internal/identifiers.js"(e,r){I();var u=/^[0-9]+$/,t=(n,s)=>{let c=u.test(n),i=u.test(s);return c&&i&&(n=+n,s=+s),n===s?0:c&&!i?-1:i&&!c?1:nt(s,n);r.exports={compareIdentifiers:t,rcompareIdentifiers:o}}}),p2=S({"node_modules/semver/classes/semver.js"(e,r){I();var u=Zi(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:o}=Qi(),{re:n,t:s}=l2(),c=D2(),{compareIdentifiers:i}=f2(),D=class{constructor(a,l){if(l=c(l),a instanceof D){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if(typeof a!="string")throw new TypeError("Invalid Version: ".concat(a));if(a.length>t)throw new TypeError("version is longer than ".concat(t," characters"));u("SemVer",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let p=a.trim().match(l.loose?n[s.LOOSE]:n[s.FULL]);if(!p)throw new TypeError("Invalid Version: ".concat(a));if(this.raw=a,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");p[4]?this.prerelease=p[4].split(".").map(d=>{if(/^[0-9]+$/.test(d)){let g=+d;if(g>=0&&g=0;)typeof this.prerelease[p]=="number"&&(this.prerelease[p]++,p=-2);p===-1&&this.prerelease.push(0)}l&&(i(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error("invalid increment argument: ".concat(a))}return this.format(),this.raw=this.version,this}};r.exports=D}}),vu=S({"node_modules/semver/functions/compare.js"(e,r){I();var u=p2(),t=(o,n,s)=>new u(o,s).compare(new u(n,s));r.exports=t}}),d2=S({"node_modules/semver/functions/lt.js"(e,r){I();var u=vu(),t=(o,n,s)=>u(o,n,s)<0;r.exports=t}}),h2=S({"node_modules/semver/functions/gte.js"(e,r){I();var u=vu(),t=(o,n,s)=>u(o,n,s)>=0;r.exports=t}}),v2=S({"src/utils/arrayify.js"(e,r){"use strict";I(),r.exports=(u,t)=>Object.entries(u).map(o=>{let[n,s]=o;return Object.assign({[t]:n},s)})}}),m2=S({"package.json"(e,r){r.exports={version:"2.7.1"}}}),E2=S({"node_modules/outdent/lib/index.js"(e,r){"use strict";I(),Object.defineProperty(e,"__esModule",{value:!0}),e.outdent=void 0;function u(){for(var f=[],b=0;btypeof l=="string"||typeof l=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"acorn",since:"2.6.0",description:"JavaScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:i,description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin",cliCategory:t},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:i,description:u(wi||(wi=je([` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `]))),exception:l=>typeof l=="string"||typeof l=="object",cliName:"plugin-search-dir",cliCategory:t},printWidth:{since:"0.0.0",category:i,type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:D,type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(ki||(ki=je([` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:o},rangeStart:{since:"1.4.0",category:D,type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(qi||(qi=je([` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:o},requirePragma:{since:"1.7.0",category:D,type:"boolean",default:!1,description:u(_i||(_i=je([` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `]))),cliCategory:s},tabWidth:{type:"int",category:i,default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:i,type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:i,type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};r.exports={CATEGORY_CONFIG:t,CATEGORY_EDITOR:o,CATEGORY_FORMAT:n,CATEGORY_OTHER:s,CATEGORY_OUTPUT:c,CATEGORY_GLOBAL:i,CATEGORY_SPECIAL:D,options:a}}}),g2=S({"src/main/support.js"(e,r){"use strict";I();var u={compare:vu(),lt:d2(),gte:h2()},t=v2(),o=m2().version,n=C2().options;function s(){let{plugins:i=[],showUnreleased:D=!1,showDeprecated:a=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},p=o.split("-",1)[0],d=i.flatMap(f=>f.languages||[]).filter(F),g=t(Object.assign({},...i.map(f=>{let{options:b}=f;return b}),n),"name").filter(f=>F(f)&&E(f)).sort((f,b)=>f.name===b.name?0:f.name{f=Object.assign({},f),Array.isArray(f.default)&&(f.default=f.default.length===1?f.default[0].value:f.default.filter(F).sort((v,h)=>u.compare(h.since,v.since))[0].value),Array.isArray(f.choices)&&(f.choices=f.choices.filter(v=>F(v)&&E(v)),f.name==="parser"&&c(f,d,i));let b=Object.fromEntries(i.filter(v=>v.defaultOptions&&v.defaultOptions[f.name]!==void 0).map(v=>[v.name,v.defaultOptions[f.name]]));return Object.assign(Object.assign({},f),{},{pluginDefaults:b})});return{languages:d,options:g};function F(f){return D||!("since"in f)||f.since&&u.gte(p,f.since)}function E(f){return a||!("deprecated"in f)||f.deprecated&&u.lt(p,f.deprecated)}function x(f){if(l)return f;let{cliName:b,cliCategory:v,cliDescription:h}=f;return ql(f,kl)}}function c(i,D,a){let l=new Set(i.choices.map(p=>p.value));for(let p of D)if(p.parsers){for(let d of p.parsers)if(!l.has(d)){l.add(d);let g=a.find(E=>E.parsers&&E.parsers[d]),F=p.name;g&&g.name&&(F+=" (plugin: ".concat(g.name,")")),i.choices.push({value:d,description:F})}}}r.exports={getSupportInfo:s}}}),F2=S({"src/utils/is-non-empty-array.js"(e,r){"use strict";I();function u(t){return Array.isArray(t)&&t.length>0}r.exports=u}});function A2(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var x2=Pe({"node_modules/strip-ansi/node_modules/ansi-regex/index.js"(){I()}});function b2(e){if(typeof e!="string")throw new TypeError("Expected a `string`, got `".concat(typeof e,"`"));return e.replace(A2(),"")}var y2=Pe({"node_modules/strip-ansi/index.js"(){I(),x2()}});function B2(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var w2=Pe({"node_modules/is-fullwidth-code-point/index.js"(){I()}}),k2=S({"node_modules/emoji-regex/index.js"(e,r){"use strict";I(),r.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}}),ea={};Li(ea,{default:()=>q2});function q2(e){if(typeof e!="string"||e.length===0||(e=b2(e),e.length===0))return 0;e=e.replace((0,ra.default)()," ");let r=0;for(let u=0;u=127&&t<=159||t>=768&&t<=879||(t>65535&&u++,r+=B2(t)?2:1)}return r}var ra,_2=Pe({"node_modules/string-width/index.js"(){I(),y2(),w2(),ra=Nl(k2())}}),O2=S({"src/utils/get-string-width.js"(e,r){"use strict";I();var u=(_2(),ji(ea)).default,t=/[^\x20-\x7F]/;function o(n){return n?t.test(n)?u(n):n.length:0}r.exports=o}}),mu=S({"src/utils/text/skip.js"(e,r){"use strict";I();function u(c){return(i,D,a)=>{let l=a&&a.backwards;if(D===!1)return!1;let{length:p}=i,d=D;for(;d>=0&&dk[k.length-2];function E(k){return(y,_,N)=>{let V=N&&N.backwards;if(_===!1)return!1;let{length:W}=y,K=_;for(;K>=0&&K2&&arguments[2]!==void 0?arguments[2]:{},N=i(k,_.backwards?y-1:y,_),V=d(k,N,_);return N!==V}function f(k,y,_){for(let N=y;N<_;++N)if(k.charAt(N)===` +`)return!0;return!1}function b(k,y,_){let N=_(y)-1;N=i(k,N,{backwards:!0}),N=d(k,N,{backwards:!0}),N=i(k,N,{backwards:!0});let V=d(k,N,{backwards:!0});return N!==V}function v(k,y){let _=null,N=y;for(;N!==_;)_=N,N=D(k,N),N=l(k,N),N=i(k,N);return N=p(k,N),N=d(k,N),N!==!1&&x(k,N)}function h(k,y,_){return v(k,_(y))}function m(k,y,_){return g(k,_(y))}function C(k,y,_){return k.charAt(m(k,y,_))}function B(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return i(k,_.backwards?y-1:y,_)!==y}function q(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,N=0;for(let V=_;VY?W:V}return K}function O(k,y){let _=k.slice(1,-1),N=y.parser==="json"||y.parser==="json5"&&y.quoteProps==="preserve"&&!y.singleQuote?'"':y.__isInHtmlAttribute?"'":w(_,y.singleQuote?"'":'"').quote;return T(_,N,!(y.parser==="css"||y.parser==="less"||y.parser==="scss"||y.__embeddedInHtml))}function T(k,y,_){let N=y==='"'?"'":'"',V=/\\(.)|(["'])/gs,W=k.replace(V,(K,ee,Y)=>ee===N?ee:Y===y?"\\"+Y:Y||(_&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(ee)?ee:"\\"+ee));return y+W+y}function P(k){return k.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e|$)/,"")}function A(k,y){let _=k.match(new RegExp("(".concat(u(y),")+"),"g"));return _===null?0:_.reduce((N,V)=>Math.max(N,V.length/y.length),0)}function j(k,y){let _=k.match(new RegExp("(".concat(u(y),")+"),"g"));if(_===null)return 0;let N=new Map,V=0;for(let W of _){let K=W.length/y.length;N.set(K,!0),K>V&&(V=K)}for(let W=1;W{let{name:W}=V;return W.toLowerCase()===k})||_.find(V=>{let{aliases:W}=V;return Array.isArray(W)&&W.includes(k)})||_.find(V=>{let{extensions:W}=V;return Array.isArray(W)&&W.includes(".".concat(k))});return N&&N.parsers[0]}function z(k){return k&&k.type==="front-matter"}function M(k){let y=new WeakMap;return function(_){return y.has(_)||y.set(_,Symbol(k)),y.get(_)}}function G(k){let y=k.type||k.kind||"(unknown type)",_=String(k.name||k.id&&(typeof k.id=="object"?k.id.name:k.id)||k.key&&(typeof k.key=="object"?k.key.name:k.key)||k.value&&(typeof k.value=="object"?"":String(k.value))||k.operator||"");return _.length>20&&(_=_.slice(0,19)+"\u2026"),y+(_?" "+_:"")}r.exports={inferParserByLanguage:J,getStringWidth:s,getMaxContinuousCount:A,getMinNotPresentContinuousCount:j,getPenultimate:F,getLast:t,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:g,getNextNonSpaceNonCommentCharacterIndex:m,getNextNonSpaceNonCommentCharacter:C,skip:E,skipWhitespace:c,skipSpaces:i,skipToLineEnd:D,skipEverythingButNewLine:a,skipInlineComment:l,skipTrailingComment:p,skipNewline:d,isNextLineEmptyAfterIndex:v,isNextLineEmpty:h,isPreviousLineEmpty:b,hasNewline:x,hasNewlineInRange:f,hasSpaces:B,getAlignmentSize:q,getIndentSize:L,getPreferredQuote:w,printString:O,printNumber:P,makeString:T,addLeadingComment:U,addDanglingComment:X,addTrailingComment:R,isFrontMatterNode:z,isNonEmptyArray:n,createGroupIdMapper:M}}}),T2=S({"src/language-markdown/constants.evaluate.js"(e,r){r.exports={cjkPattern:"(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?",kPattern:"[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]",punctuationPattern:"[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]"}}}),N2=S({"src/language-markdown/utils.js"(e,r){"use strict";I();var{getLast:u}=S2(),{locStart:t,locEnd:o}=Ki(),{cjkPattern:n,kPattern:s,punctuationPattern:c}=T2(),i=["liquidNode","inlineCode","emphasis","esComment","strong","delete","wikiLink","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break","inlineMath"],D=[...i,"tableCell","paragraph","heading"],a=new RegExp(s),l=new RegExp(c);function p(f,b){let v="non-cjk",h="cj-letter",m="k-letter",C="cjk-punctuation",B=[],q=(b.proseWrap==="preserve"?f:f.replace(new RegExp("(".concat(n,`) +(`).concat(n,")"),"g"),"$1$2")).split(/([\t\n ]+)/);for(let[w,O]of q.entries()){if(w%2===1){B.push({type:"whitespace",value:/\n/.test(O)?` +`:" "});continue}if((w===0||w===q.length-1)&&O==="")continue;let T=O.split(new RegExp("(".concat(n,")")));for(let[P,A]of T.entries())if(!((P===0||P===T.length-1)&&A==="")){if(P%2===0){A!==""&&L({type:"word",value:A,kind:v,hasLeadingPunctuation:l.test(A[0]),hasTrailingPunctuation:l.test(u(A))});continue}L(l.test(A)?{type:"word",value:A,kind:C,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:"word",value:A,kind:a.test(A)?m:h,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return B;function L(w){let O=u(B);O&&O.type==="word"&&(O.kind===v&&w.kind===h&&!O.hasTrailingPunctuation||O.kind===h&&w.kind===v&&!w.hasLeadingPunctuation?B.push({type:"whitespace",value:" "}):!T(v,C)&&![O.value,w.value].some(P=>/\u3000/.test(P))&&B.push({type:"whitespace",value:""})),B.push(w);function T(P,A){return O.kind===P&&w.kind===A||O.kind===A&&w.kind===P}}}function d(f,b){let[,v,h,m]=b.slice(f.position.start.offset,f.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/);return{numberText:v,marker:h,leadingSpaces:m}}function g(f,b){if(!f.ordered||f.children.length<2)return!1;let v=Number(d(f.children[0],b.originalText).numberText),h=Number(d(f.children[1],b.originalText).numberText);if(v===0&&f.children.length>2){let m=Number(d(f.children[2],b.originalText).numberText);return h===1&&m===1}return h===1}function F(f,b){let{value:v}=f;return f.position.end.offset===b.length&&v.endsWith(` +`)&&b.endsWith(` +`)?v.slice(0,-1):v}function E(f,b){return function v(h,m,C){let B=Object.assign({},b(h,m,C));return B.children&&(B.children=B.children.map((q,L)=>v(q,L,[B,...C]))),B}(f,null,[])}function x(f){if((f==null?void 0:f.type)!=="link"||f.children.length!==1)return!1;let[b]=f.children;return t(f)===t(b)&&o(f)===o(b)}r.exports={mapAst:E,splitText:p,punctuationPattern:c,getFencedCodeBlockValue:F,getOrderedListItemInfo:d,hasGitDiffFriendlyOrderedList:g,INLINE_NODE_TYPES:i,INLINE_NODE_WRAPPER_TYPES:D,isAutolink:x}}}),L2=S({"src/language-markdown/unified-plugins/html-to-jsx.js"(e,r){"use strict";I();var u=Yi(),{mapAst:t,INLINE_NODE_WRAPPER_TYPES:o}=N2();function n(){return s=>t(s,(c,i,D)=>{let[a]=D;return c.type!=="html"||u.COMMENT_REGEX.test(c.value)||o.includes(a.type)?c:Object.assign(Object.assign({},c),{},{type:"jsx"})})}r.exports=n}}),R2=S({"src/language-markdown/unified-plugins/front-matter.js"(e,r){"use strict";I();var u=Wi();function t(){let o=this.Parser.prototype;o.blockMethods=["frontMatter",...o.blockMethods],o.blockTokenizers.frontMatter=n;function n(s,c){let i=u(c);if(i.frontMatter)return s(i.frontMatter.raw)(i.frontMatter)}n.onlyAtStart=!0}r.exports=t}}),j2=S({"src/language-markdown/unified-plugins/liquid.js"(e,r){"use strict";I();function u(){let t=this.Parser.prototype,o=t.inlineMethods;o.splice(o.indexOf("text"),0,"liquid"),t.inlineTokenizers.liquid=n;function n(s,c){let i=c.match(/^({%.*?%}|{{.*?}})/s);if(i)return s(i[0])({type:"liquidNode",value:i[0]})}n.locator=function(s,c){return s.indexOf("{",c)}}r.exports=u}}),P2=S({"src/language-markdown/unified-plugins/wiki-link.js"(e,r){"use strict";I();function u(){let t="wikiLink",o=/^\[\[(?.+?)]]/s,n=this.Parser.prototype,s=n.inlineMethods;s.splice(s.indexOf("link"),0,t),n.inlineTokenizers.wikiLink=c;function c(i,D){let a=o.exec(D);if(a){let l=a.groups.linkContents.trim();return i(a[0])({type:t,value:l})}}c.locator=function(i,D){return i.indexOf("[",D)}}r.exports=u}}),M2=S({"src/language-markdown/unified-plugins/loose-items.js"(e,r){"use strict";I();function u(){let t=this.Parser.prototype,o=t.blockTokenizers.list;function n(s,c,i){return c.type==="listItem"&&(c.loose=c.spread||s.charAt(s.length-1)===` +`,c.loose&&(i.loose=!0)),c}t.blockTokenizers.list=function(c,i,D){function a(l){let p=c(l);function d(g,F){return p(n(l,g,F),F)}return d.reset=function(g,F){return p.reset(n(l,g,F),F)},d}return a.now=c.now,o.call(this,a,i,D)}}r.exports=u}});I();var z2=GD(),G2=r2(),U2=n2(),V2=i2(),$2=a2(),{locStart:H2,locEnd:X2}=Ki(),Si=Yi(),W2=L2(),K2=R2(),Y2=j2(),J2=P2(),Z2=M2();function ia(e){let{isMDX:r}=e;return u=>{let t=G2().use(z2,Object.assign({commonmark:!0},r&&{blocks:[Si.BLOCKS_REGEX]})).use(V2).use(K2).use(U2).use(r?Si.esSyntax:Ti).use(Y2).use(r?W2:Ti).use(J2).use(Z2);return t.runSync(t.parse(u))}}function Ti(e){return e}var aa={astFormat:"mdast",hasPragma:$2.hasPragma,locStart:H2,locEnd:X2},Ni=Object.assign(Object.assign({},aa),{},{parse:ia({isMDX:!1})}),Q2=Object.assign(Object.assign({},aa),{},{parse:ia({isMDX:!0})});oa.exports={parsers:{remark:Ni,markdown:Ni,mdx:Q2}}});return ef();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-meriyah.js b/node_modules/prettier/parser-meriyah.js new file mode 100644 index 0000000..782d9a7 --- /dev/null +++ b/node_modules/prettier/parser-meriyah.js @@ -0,0 +1,19 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.meriyah=e()}})(function(){"use strict";var F=(d,m)=>()=>(m||d((m={exports:{}}).exports,m),m.exports);var i2=F((E3,Ce)=>{var A1=function(d){return d&&d.Math==Math&&d};Ce.exports=A1(typeof globalThis=="object"&&globalThis)||A1(typeof window=="object"&&window)||A1(typeof self=="object"&&self)||A1(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var L2=F((D3,we)=>{we.exports=function(d){try{return!!d()}catch{return!0}}});var J2=F((C3,qe)=>{var Ut=L2();qe.exports=!Ut(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var x1=F((w3,Be)=>{var Jt=L2();Be.exports=!Jt(function(){var d=function(){}.bind();return typeof d!="function"||d.hasOwnProperty("prototype")})});var P1=F((q3,Se)=>{var Xt=x1(),y1=Function.prototype.call;Se.exports=Xt?y1.bind(y1):function(){return y1.apply(y1,arguments)}});var Oe=F(Le=>{"use strict";var Fe={}.propertyIsEnumerable,Te=Object.getOwnPropertyDescriptor,zt=Te&&!Fe.call({1:2},1);Le.f=zt?function(m){var k=Te(this,m);return!!k&&k.enumerable}:Fe});var p1=F((S3,Ie)=>{Ie.exports=function(d,m){return{enumerable:!(d&1),configurable:!(d&2),writable:!(d&4),value:m}}});var D2=F((F3,Ve)=>{var Re=x1(),Ne=Function.prototype,Ht=Ne.bind,uu=Ne.call,Kt=Re&&Ht.bind(uu,uu);Ve.exports=Re?function(d){return d&&Kt(d)}:function(d){return d&&function(){return uu.apply(d,arguments)}}});var Me=F((T3,_e)=>{var je=D2(),Wt=je({}.toString),Yt=je("".slice);_e.exports=function(d){return Yt(Wt(d),8,-1)}});var Je=F((L3,Ue)=>{var $t=i2(),Zt=D2(),Qt=L2(),Gt=Me(),eu=$t.Object,xt=Zt("".split);Ue.exports=Qt(function(){return!eu("z").propertyIsEnumerable(0)})?function(d){return Gt(d)=="String"?xt(d,""):eu(d)}:eu});var iu=F((O3,Xe)=>{var pt=i2(),uo=pt.TypeError;Xe.exports=function(d){if(d==null)throw uo("Can't call method on "+d);return d}});var E1=F((I3,ze)=>{var eo=Je(),io=iu();ze.exports=function(d){return eo(io(d))}});var C2=F((R3,He)=>{He.exports=function(d){return typeof d=="function"}});var Z2=F((N3,Ke)=>{var no=C2();Ke.exports=function(d){return typeof d=="object"?d!==null:no(d)}});var D1=F((V3,We)=>{var nu=i2(),to=C2(),oo=function(d){return to(d)?d:void 0};We.exports=function(d,m){return arguments.length<2?oo(nu[d]):nu[d]&&nu[d][m]}});var $e=F((j3,Ye)=>{var lo=D2();Ye.exports=lo({}.isPrototypeOf)});var Qe=F((_3,Ze)=>{var fo=D1();Ze.exports=fo("navigator","userAgent")||""});var ni=F((M3,ii)=>{var ei=i2(),tu=Qe(),Ge=ei.process,xe=ei.Deno,pe=Ge&&Ge.versions||xe&&xe.version,ui=pe&&pe.v8,P2,C1;ui&&(P2=ui.split("."),C1=P2[0]>0&&P2[0]<4?1:+(P2[0]+P2[1]));!C1&&tu&&(P2=tu.match(/Edge\/(\d+)/),(!P2||P2[1]>=74)&&(P2=tu.match(/Chrome\/(\d+)/),P2&&(C1=+P2[1])));ii.exports=C1});var ou=F((U3,oi)=>{var ti=ni(),co=L2();oi.exports=!!Object.getOwnPropertySymbols&&!co(function(){var d=Symbol();return!String(d)||!(Object(d)instanceof Symbol)||!Symbol.sham&&ti&&ti<41})});var lu=F((J3,li)=>{var so=ou();li.exports=so&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var fu=F((X3,fi)=>{var ao=i2(),go=D1(),ho=C2(),mo=$e(),bo=lu(),ko=ao.Object;fi.exports=bo?function(d){return typeof d=="symbol"}:function(d){var m=go("Symbol");return ho(m)&&mo(m.prototype,ko(d))}});var si=F((z3,ci)=>{var ro=i2(),vo=ro.String;ci.exports=function(d){try{return vo(d)}catch{return"Object"}}});var di=F((H3,ai)=>{var Ao=i2(),yo=C2(),Po=si(),Eo=Ao.TypeError;ai.exports=function(d){if(yo(d))return d;throw Eo(Po(d)+" is not a function")}});var hi=F((K3,gi)=>{var Do=di();gi.exports=function(d,m){var k=d[m];return k==null?void 0:Do(k)}});var bi=F((W3,mi)=>{var Co=i2(),cu=P1(),su=C2(),au=Z2(),wo=Co.TypeError;mi.exports=function(d,m){var k,f;if(m==="string"&&su(k=d.toString)&&!au(f=cu(k,d))||su(k=d.valueOf)&&!au(f=cu(k,d))||m!=="string"&&su(k=d.toString)&&!au(f=cu(k,d)))return f;throw wo("Can't convert object to primitive value")}});var ri=F((Y3,ki)=>{ki.exports=!1});var w1=F(($3,Ai)=>{var vi=i2(),qo=Object.defineProperty;Ai.exports=function(d,m){try{qo(vi,d,{value:m,configurable:!0,writable:!0})}catch{vi[d]=m}return m}});var q1=F((Z3,Pi)=>{var Bo=i2(),So=w1(),yi="__core-js_shared__",Fo=Bo[yi]||So(yi,{});Pi.exports=Fo});var du=F((Q3,Di)=>{var To=ri(),Ei=q1();(Di.exports=function(d,m){return Ei[d]||(Ei[d]=m!==void 0?m:{})})("versions",[]).push({version:"3.22.2",mode:To?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var wi=F((G3,Ci)=>{var Lo=i2(),Oo=iu(),Io=Lo.Object;Ci.exports=function(d){return Io(Oo(d))}});var O2=F((x3,qi)=>{var Ro=D2(),No=wi(),Vo=Ro({}.hasOwnProperty);qi.exports=Object.hasOwn||function(m,k){return Vo(No(m),k)}});var gu=F((p3,Bi)=>{var jo=D2(),_o=0,Mo=Math.random(),Uo=jo(1 .toString);Bi.exports=function(d){return"Symbol("+(d===void 0?"":d)+")_"+Uo(++_o+Mo,36)}});var Ii=F((u6,Oi)=>{var Jo=i2(),Xo=du(),Si=O2(),zo=gu(),Fi=ou(),Li=lu(),Q2=Xo("wks"),X2=Jo.Symbol,Ti=X2&&X2.for,Ho=Li?X2:X2&&X2.withoutSetter||zo;Oi.exports=function(d){if(!Si(Q2,d)||!(Fi||typeof Q2[d]=="string")){var m="Symbol."+d;Fi&&Si(X2,d)?Q2[d]=X2[d]:Li&&Ti?Q2[d]=Ti(m):Q2[d]=Ho(m)}return Q2[d]}});var ji=F((e6,Vi)=>{var Ko=i2(),Wo=P1(),Ri=Z2(),Ni=fu(),Yo=hi(),$o=bi(),Zo=Ii(),Qo=Ko.TypeError,Go=Zo("toPrimitive");Vi.exports=function(d,m){if(!Ri(d)||Ni(d))return d;var k=Yo(d,Go),f;if(k){if(m===void 0&&(m="default"),f=Wo(k,d,m),!Ri(f)||Ni(f))return f;throw Qo("Can't convert object to primitive value")}return m===void 0&&(m="number"),$o(d,m)}});var hu=F((i6,_i)=>{var xo=ji(),po=fu();_i.exports=function(d){var m=xo(d,"string");return po(m)?m:m+""}});var Ji=F((n6,Ui)=>{var ul=i2(),Mi=Z2(),mu=ul.document,el=Mi(mu)&&Mi(mu.createElement);Ui.exports=function(d){return el?mu.createElement(d):{}}});var bu=F((t6,Xi)=>{var il=J2(),nl=L2(),tl=Ji();Xi.exports=!il&&!nl(function(){return Object.defineProperty(tl("div"),"a",{get:function(){return 7}}).a!=7})});var ku=F(Hi=>{var ol=J2(),ll=P1(),fl=Oe(),cl=p1(),sl=E1(),al=hu(),dl=O2(),gl=bu(),zi=Object.getOwnPropertyDescriptor;Hi.f=ol?zi:function(m,k){if(m=sl(m),k=al(k),gl)try{return zi(m,k)}catch{}if(dl(m,k))return cl(!ll(fl.f,m,k),m[k])}});var Wi=F((l6,Ki)=>{var hl=J2(),ml=L2();Ki.exports=hl&&ml(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var ru=F((f6,$i)=>{var Yi=i2(),bl=Z2(),kl=Yi.String,rl=Yi.TypeError;$i.exports=function(d){if(bl(d))return d;throw rl(kl(d)+" is not an object")}});var Eu=F(Qi=>{var vl=i2(),Al=J2(),yl=bu(),Pl=Wi(),B1=ru(),Zi=hu(),El=vl.TypeError,vu=Object.defineProperty,Dl=Object.getOwnPropertyDescriptor,Au="enumerable",yu="configurable",Pu="writable";Qi.f=Al?Pl?function(m,k,f){if(B1(m),k=Zi(k),B1(f),typeof m=="function"&&k==="prototype"&&"value"in f&&Pu in f&&!f[Pu]){var P=Dl(m,k);P&&P[Pu]&&(m[k]=f.value,f={configurable:yu in f?f[yu]:P[yu],enumerable:Au in f?f[Au]:P[Au],writable:!1})}return vu(m,k,f)}:vu:function(m,k,f){if(B1(m),k=Zi(k),B1(f),yl)try{return vu(m,k,f)}catch{}if("get"in f||"set"in f)throw El("Accessors not supported");return"value"in f&&(m[k]=f.value),m}});var S1=F((s6,Gi)=>{var Cl=J2(),wl=Eu(),ql=p1();Gi.exports=Cl?function(d,m,k){return wl.f(d,m,ql(1,k))}:function(d,m,k){return d[m]=k,d}});var Cu=F((a6,xi)=>{var Bl=D2(),Sl=C2(),Du=q1(),Fl=Bl(Function.toString);Sl(Du.inspectSource)||(Du.inspectSource=function(d){return Fl(d)});xi.exports=Du.inspectSource});var en=F((d6,un)=>{var Tl=i2(),Ll=C2(),Ol=Cu(),pi=Tl.WeakMap;un.exports=Ll(pi)&&/native code/.test(Ol(pi))});var on=F((g6,tn)=>{var Il=du(),Rl=gu(),nn=Il("keys");tn.exports=function(d){return nn[d]||(nn[d]=Rl(d))}});var wu=F((h6,ln)=>{ln.exports={}});var gn=F((m6,dn)=>{var Nl=en(),an=i2(),qu=D2(),Vl=Z2(),jl=S1(),Bu=O2(),Su=q1(),_l=on(),Ml=wu(),fn="Object already initialized",Tu=an.TypeError,Ul=an.WeakMap,F1,e1,T1,Jl=function(d){return T1(d)?e1(d):F1(d,{})},Xl=function(d){return function(m){var k;if(!Vl(m)||(k=e1(m)).type!==d)throw Tu("Incompatible receiver, "+d+" required");return k}};Nl||Su.state?(I2=Su.state||(Su.state=new Ul),cn=qu(I2.get),Fu=qu(I2.has),sn=qu(I2.set),F1=function(d,m){if(Fu(I2,d))throw new Tu(fn);return m.facade=d,sn(I2,d,m),m},e1=function(d){return cn(I2,d)||{}},T1=function(d){return Fu(I2,d)}):(z2=_l("state"),Ml[z2]=!0,F1=function(d,m){if(Bu(d,z2))throw new Tu(fn);return m.facade=d,jl(d,z2,m),m},e1=function(d){return Bu(d,z2)?d[z2]:{}},T1=function(d){return Bu(d,z2)});var I2,cn,Fu,sn,z2;dn.exports={set:F1,get:e1,has:T1,enforce:Jl,getterFor:Xl}});var bn=F((b6,mn)=>{var Lu=J2(),zl=O2(),hn=Function.prototype,Hl=Lu&&Object.getOwnPropertyDescriptor,Ou=zl(hn,"name"),Kl=Ou&&function(){}.name==="something",Wl=Ou&&(!Lu||Lu&&Hl(hn,"name").configurable);mn.exports={EXISTS:Ou,PROPER:Kl,CONFIGURABLE:Wl}});var yn=F((k6,An)=>{var Yl=i2(),kn=C2(),$l=O2(),rn=S1(),Zl=w1(),Ql=Cu(),vn=gn(),Gl=bn().CONFIGURABLE,xl=vn.get,pl=vn.enforce,u4=String(String).split("String");(An.exports=function(d,m,k,f){var P=f?!!f.unsafe:!1,S=f?!!f.enumerable:!1,q=f?!!f.noTargetGet:!1,T=f&&f.name!==void 0?f.name:m,r;if(kn(k)&&(String(T).slice(0,7)==="Symbol("&&(T="["+String(T).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!$l(k,"name")||Gl&&k.name!==T)&&rn(k,"name",T),r=pl(k),r.source||(r.source=u4.join(typeof T=="string"?T:""))),d===Yl){S?d[m]=k:Zl(m,k);return}else P?!q&&d[m]&&(S=!0):delete d[m];S?d[m]=k:rn(d,m,k)})(Function.prototype,"toString",function(){return kn(this)&&xl(this).source||Ql(this)})});var Iu=F((r6,Pn)=>{var e4=Math.ceil,i4=Math.floor;Pn.exports=function(d){var m=+d;return m!==m||m===0?0:(m>0?i4:e4)(m)}});var Dn=F((v6,En)=>{var n4=Iu(),t4=Math.max,o4=Math.min;En.exports=function(d,m){var k=n4(d);return k<0?t4(k+m,0):o4(k,m)}});var wn=F((A6,Cn)=>{var l4=Iu(),f4=Math.min;Cn.exports=function(d){return d>0?f4(l4(d),9007199254740991):0}});var Bn=F((y6,qn)=>{var c4=wn();qn.exports=function(d){return c4(d.length)}});var Tn=F((P6,Fn)=>{var s4=E1(),a4=Dn(),d4=Bn(),Sn=function(d){return function(m,k,f){var P=s4(m),S=d4(P),q=a4(f,S),T;if(d&&k!=k){for(;S>q;)if(T=P[q++],T!=T)return!0}else for(;S>q;q++)if((d||q in P)&&P[q]===k)return d||q||0;return!d&&-1}};Fn.exports={includes:Sn(!0),indexOf:Sn(!1)}});var In=F((E6,On)=>{var g4=D2(),Ru=O2(),h4=E1(),m4=Tn().indexOf,b4=wu(),Ln=g4([].push);On.exports=function(d,m){var k=h4(d),f=0,P=[],S;for(S in k)!Ru(b4,S)&&Ru(k,S)&&Ln(P,S);for(;m.length>f;)Ru(k,S=m[f++])&&(~m4(P,S)||Ln(P,S));return P}});var Nn=F((D6,Rn)=>{Rn.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var jn=F(Vn=>{var k4=In(),r4=Nn(),v4=r4.concat("length","prototype");Vn.f=Object.getOwnPropertyNames||function(m){return k4(m,v4)}});var Mn=F(_n=>{_n.f=Object.getOwnPropertySymbols});var Jn=F((q6,Un)=>{var A4=D1(),y4=D2(),P4=jn(),E4=Mn(),D4=ru(),C4=y4([].concat);Un.exports=A4("Reflect","ownKeys")||function(m){var k=P4.f(D4(m)),f=E4.f;return f?C4(k,f(m)):k}});var Hn=F((B6,zn)=>{var Xn=O2(),w4=Jn(),q4=ku(),B4=Eu();zn.exports=function(d,m,k){for(var f=w4(m),P=B4.f,S=q4.f,q=0;q{var S4=L2(),F4=C2(),T4=/#|\.prototype\./,i1=function(d,m){var k=O4[L4(d)];return k==R4?!0:k==I4?!1:F4(m)?S4(m):!!m},L4=i1.normalize=function(d){return String(d).replace(T4,".").toLowerCase()},O4=i1.data={},I4=i1.NATIVE="N",R4=i1.POLYFILL="P";Kn.exports=i1});var $n=F((F6,Yn)=>{var Nu=i2(),N4=ku().f,V4=S1(),j4=yn(),_4=w1(),M4=Hn(),U4=Wn();Yn.exports=function(d,m){var k=d.target,f=d.global,P=d.stat,S,q,T,r,K,Y;if(f?q=Nu:P?q=Nu[k]||_4(k,{}):q=(Nu[k]||{}).prototype,q)for(T in m){if(K=m[T],d.noTargetGet?(Y=N4(q,T),r=Y&&Y.value):r=q[T],S=U4(f?T:k+(P?".":"#")+T,d.forced),!S&&r!==void 0){if(typeof K==typeof r)continue;M4(K,r)}(d.sham||r&&r.sham)&&V4(K,"sham",!0),j4(q,T,K,d)}}});var Zn=F(()=>{var J4=$n(),X4=i2();J4({global:!0},{globalThis:X4})});var Qn=F(()=>{Zn()});var y3=F((R6,k0)=>{Qn();var Mu=Object.defineProperty,z4=Object.getOwnPropertyDescriptor,Uu=Object.getOwnPropertyNames,H4=Object.prototype.hasOwnProperty,xn=(d,m)=>function(){return d&&(m=(0,d[Uu(d)[0]])(d=0)),m},l2=(d,m)=>function(){return m||(0,d[Uu(d)[0]])((m={exports:{}}).exports,m),m.exports},K4=(d,m)=>{for(var k in m)Mu(d,k,{get:m[k],enumerable:!0})},W4=(d,m,k,f)=>{if(m&&typeof m=="object"||typeof m=="function")for(let P of Uu(m))!H4.call(d,P)&&P!==k&&Mu(d,P,{get:()=>m[P],enumerable:!(f=z4(m,P))||f.enumerable});return d},Y4=d=>W4(Mu({},"__esModule",{value:!0}),d),n2=xn({""(){}}),pn=l2({"src/common/parser-create-error.js"(d,m){"use strict";n2();function k(f,P){let S=new SyntaxError(f+" ("+P.start.line+":"+P.start.column+")");return S.loc=P,S}m.exports=k}}),$4=l2({"src/utils/try-combinations.js"(d,m){"use strict";n2();function k(){let f;for(var P=arguments.length,S=new Array(P),q=0;q_u,arch:()=>Z4,cpus:()=>f0,default:()=>g0,endianness:()=>e0,freemem:()=>o0,getNetworkInterfaces:()=>d0,hostname:()=>i0,loadavg:()=>n0,networkInterfaces:()=>a0,platform:()=>Q4,release:()=>s0,tmpDir:()=>Vu,tmpdir:()=>ju,totalmem:()=>l0,type:()=>c0,uptime:()=>t0});function e0(){if(typeof L1>"u"){var d=new ArrayBuffer(2),m=new Uint8Array(d),k=new Uint16Array(d);if(m[0]=1,m[1]=2,k[0]===258)L1="BE";else if(k[0]===513)L1="LE";else throw new Error("unable to figure out endianess")}return L1}function i0(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function n0(){return[]}function t0(){return 0}function o0(){return Number.MAX_VALUE}function l0(){return Number.MAX_VALUE}function f0(){return[]}function c0(){return"Browser"}function s0(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function a0(){}function d0(){}function Z4(){return"javascript"}function Q4(){return"browser"}function Vu(){return"/tmp"}var L1,ju,_u,g0,G4=xn({"node-modules-polyfills:os"(){n2(),ju=Vu,_u=` +`,g0={EOL:_u,tmpdir:ju,tmpDir:Vu,networkInterfaces:a0,getNetworkInterfaces:d0,release:s0,type:c0,cpus:f0,totalmem:l0,freemem:o0,uptime:t0,loadavg:n0,hostname:i0,endianness:e0}}}),x4=l2({"node-modules-polyfills-commonjs:os"(d,m){n2();var k=(G4(),Y4(u0));if(k&&k.default){m.exports=k.default;for(let f in k)m.exports[f]=k[f]}else k&&(m.exports=k)}}),p4=l2({"node_modules/detect-newline/index.js"(d,m){"use strict";n2();var k=f=>{if(typeof f!="string")throw new TypeError("Expected a string");let P=f.match(/(?:\r?\n)/g)||[];if(P.length===0)return;let S=P.filter(T=>T===`\r +`).length,q=P.length-S;return S>q?`\r +`:` +`};m.exports=k,m.exports.graceful=f=>typeof f=="string"&&k(f)||` +`}}),u3=l2({"node_modules/jest-docblock/build/index.js"(d){"use strict";n2(),Object.defineProperty(d,"__esModule",{value:!0}),d.extract=Z,d.parse=t2,d.parseWithComments=V,d.print=J,d.strip=L;function m(){let I=x4();return m=function(){return I},I}function k(){let I=f(p4());return k=function(){return I},I}function f(I){return I&&I.__esModule?I:{default:I}}var P=/\*\/$/,S=/^\/\*\*/,q=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,T=/(^|\s+)\/\/([^\r\n]*)/g,r=/^(\r?\n)+/,K=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,Y=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,X=/(\r?\n|^) *\* ?/g,p=[];function Z(I){let u2=I.match(q);return u2?u2[0].trimLeft():""}function L(I){let u2=I.match(q);return u2&&u2[0]?I.substring(u2[0].length):I}function t2(I){return V(I).pragmas}function V(I){let u2=(0,k().default)(I)||m().EOL;I=I.replace(S,"").replace(P,"").replace(X,"$1");let m2="";for(;m2!==I;)m2=I,I=I.replace(K,"".concat(u2,"$1 $2").concat(u2));I=I.replace(r,"").trimRight();let c2=Object.create(null),R2=I.replace(Y,"").replace(r,"").trimRight(),s2;for(;s2=Y.exec(I);){let N2=s2[2].replace(T,"");typeof c2[s2[1]]=="string"||Array.isArray(c2[s2[1]])?c2[s2[1]]=p.concat(c2[s2[1]],N2):c2[s2[1]]=N2}return{comments:R2,pragmas:c2}}function J(I){let{comments:u2="",pragmas:m2={}}=I,c2=(0,k().default)(u2)||m().EOL,R2="/**",s2=" *",N2=" */",w2=Object.keys(m2),O1=w2.map(g2=>H(g2,m2[g2])).reduce((g2,n1)=>g2.concat(n1),[]).map(g2=>s2+" "+g2+c2).join("");if(!u2){if(w2.length===0)return"";if(w2.length===1&&!Array.isArray(m2[w2[0]])){let g2=m2[w2[0]];return"".concat(R2," ").concat(H(w2[0],g2)[0]).concat(N2)}}let I1=u2.split(c2).map(g2=>"".concat(s2," ").concat(g2)).join(c2)+c2;return R2+c2+(u2?I1:"")+(u2&&w2.length?s2+c2:"")+O1+N2}function H(I,u2){return p.concat(u2).map(m2=>"@".concat(I," ").concat(m2).trim())}}}),e3=l2({"src/common/end-of-line.js"(d,m){"use strict";n2();function k(q){let T=q.indexOf("\r");return T>=0?q.charAt(T+1)===` +`?"crlf":"cr":"lf"}function f(q){switch(q){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function P(q,T){let r;switch(T){case` +`:r=/\n/g;break;case"\r":r=/\r/g;break;case`\r +`:r=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(T),"."))}let K=q.match(r);return K?K.length:0}function S(q){return q.replace(/\r\n?/g,` +`)}m.exports={guessEndOfLine:k,convertEndOfLineToChars:f,countEndOfLineChars:P,normalizeEndOfLine:S}}}),i3=l2({"src/language-js/utils/get-shebang.js"(d,m){"use strict";n2();function k(f){if(!f.startsWith("#!"))return"";let P=f.indexOf(` +`);return P===-1?f:f.slice(0,P)}m.exports=k}}),n3=l2({"src/language-js/pragma.js"(d,m){"use strict";n2();var{parseWithComments:k,strip:f,extract:P,print:S}=u3(),{normalizeEndOfLine:q}=e3(),T=i3();function r(X){let p=T(X);p&&(X=X.slice(p.length+1));let Z=P(X),{pragmas:L,comments:t2}=k(Z);return{shebang:p,text:X,pragmas:L,comments:t2}}function K(X){let p=Object.keys(r(X).pragmas);return p.includes("prettier")||p.includes("format")}function Y(X){let{shebang:p,text:Z,pragmas:L,comments:t2}=r(X),V=f(Z),J=S({pragmas:Object.assign({format:""},L),comments:t2.trimStart()});return(p?"".concat(p,` +`):"")+q(J)+(V.startsWith(` +`)?` +`:` + +`)+V}m.exports={hasPragma:K,insertPragma:Y}}}),t3=l2({"src/utils/is-non-empty-array.js"(d,m){"use strict";n2();function k(f){return Array.isArray(f)&&f.length>0}m.exports=k}}),h0=l2({"src/language-js/loc.js"(d,m){"use strict";n2();var k=t3();function f(r,K){let{ignoreDecorators:Y}=K||{};if(!Y){let X=r.declaration&&r.declaration.decorators||r.decorators;if(k(X))return f(X[0])}return r.range?r.range[0]:r.start}function P(r){return r.range?r.range[1]:r.end}function S(r,K){let Y=f(r);return Number.isInteger(Y)&&Y===f(K)}function q(r,K){let Y=P(r);return Number.isInteger(Y)&&Y===P(K)}function T(r,K){return S(r,K)&&q(r,K)}m.exports={locStart:f,locEnd:P,hasSameLocStart:S,hasSameLoc:T}}}),o3=l2({"src/language-js/parse/utils/create-parser.js"(d,m){"use strict";n2();var{hasPragma:k}=n3(),{locStart:f,locEnd:P}=h0();function S(q){return q=typeof q=="function"?{parse:q}:q,Object.assign({astFormat:"estree",hasPragma:k,locStart:f,locEnd:P},q)}m.exports=S}}),l3=l2({"src/language-js/utils/is-ts-keyword-type.js"(d,m){"use strict";n2();function k(f){let{type:P}=f;return P.startsWith("TS")&&P.endsWith("Keyword")}m.exports=k}}),f3=l2({"src/language-js/utils/is-block-comment.js"(d,m){"use strict";n2();var k=new Set(["Block","CommentBlock","MultiLine"]),f=P=>k.has(P==null?void 0:P.type);m.exports=f}}),c3=l2({"src/language-js/utils/is-type-cast-comment.js"(d,m){"use strict";n2();var k=f3();function f(P){return k(P)&&P.value[0]==="*"&&/@type\b/.test(P.value)}m.exports=f}}),s3=l2({"src/utils/get-last.js"(d,m){"use strict";n2();var k=f=>f[f.length-1];m.exports=k}}),m0=l2({"src/language-js/parse/postprocess/visit-node.js"(d,m){"use strict";n2();function k(f,P){if(Array.isArray(f)){for(let S=0;S{let Z=K.get(p);return!Z||!X.includes(Z)}))&&f(r,"Leading decorators must be attached to a class declaration")}function S(T,r){T.kind!==167||T.modifiers&&!T.modifiers.some(X=>X.kind===126)||T.initializer&&r.value===null&&f(r,"Abstract property cannot have an initializer")}function q(T,r){let{esTreeNodeToTSNodeMap:K,tsNodeToESTreeNodeMap:Y}=r.tsParseResult;k(T,X=>{let p=K.get(X);if(!p)return;let Z=Y.get(p);Z===X&&(P(p,Z,Y),S(p,Z))})}m.exports={throwErrorForInvalidNodes:q}}}),d3=l2({"src/language-js/parse/postprocess/index.js"(d,m){"use strict";n2();var{locStart:k,locEnd:f}=h0(),P=l3(),S=c3(),q=s3(),T=m0(),{throwErrorForInvalidNodes:r}=a3(),K=b0();function Y(L,t2){if(t2.parser==="typescript"&&/@|abstract/.test(t2.originalText)&&r(L,t2),t2.parser!=="typescript"&&t2.parser!=="flow"&&t2.parser!=="acorn"&&t2.parser!=="espree"&&t2.parser!=="meriyah"){let J=new Set;L=T(L,H=>{H.leadingComments&&H.leadingComments.some(S)&&J.add(k(H))}),L=T(L,H=>{if(H.type==="ParenthesizedExpression"){let{expression:I}=H;if(I.type==="TypeCastExpression")return I.range=H.range,I;let u2=k(H);if(!J.has(u2))return I.extra=Object.assign(Object.assign({},I.extra),{},{parenthesized:!0}),I}})}return L=T(L,J=>{switch(J.type){case"ChainExpression":return X(J.expression);case"LogicalExpression":{if(p(J))return Z(J);break}case"VariableDeclaration":{let H=q(J.declarations);H&&H.init&&V(J,H);break}case"TSParenthesizedType":return P(J.typeAnnotation)||J.typeAnnotation.type==="TSThisType"||(J.typeAnnotation.range=[k(J),f(J)]),J.typeAnnotation;case"TSTypeParameter":if(typeof J.name=="string"){let H=k(J);J.name={type:"Identifier",name:J.name,range:[H,H+J.name.length]}}break;case"ObjectExpression":if(t2.parser==="typescript"){let H=J.properties.find(I=>I.type==="Property"&&I.value.type==="TSEmptyBodyFunctionExpression");H&&K(H.value,"Unexpected token.")}break;case"SequenceExpression":{let H=q(J.expressions);J.range=[k(J),Math.min(f(H),f(J))];break}case"TopicReference":t2.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:H}=J;if(t2.parser==="meriyah"&&H&&H.type==="Identifier"){let I=t2.originalText.slice(k(H),f(H));(I.startsWith('"')||I.startsWith("'"))&&(J.exported=Object.assign(Object.assign({},J.exported),{},{type:"Literal",value:J.exported.name,raw:I}))}break}}}),L;function V(J,H){t2.originalText[f(H)]!==";"&&(J.range=[k(J),f(H)])}}function X(L){switch(L.type){case"CallExpression":L.type="OptionalCallExpression",L.callee=X(L.callee);break;case"MemberExpression":L.type="OptionalMemberExpression",L.object=X(L.object);break;case"TSNonNullExpression":L.expression=X(L.expression);break}return L}function p(L){return L.type==="LogicalExpression"&&L.right.type==="LogicalExpression"&&L.operator===L.right.operator}function Z(L){return p(L)?Z({type:"LogicalExpression",operator:L.operator,left:Z({type:"LogicalExpression",operator:L.operator,left:L.left,right:L.right.left,range:[k(L.left),f(L.right.left)]}),right:L.right.right,range:[k(L),f(L)]}):L}m.exports=Y}}),g3=l2({"node_modules/meriyah/dist/meriyah.cjs"(d){"use strict";n2(),Object.defineProperty(d,"__esModule",{value:!0});var m={[0]:"Unexpected token",[28]:"Unexpected token: '%0'",[1]:"Octal escape sequences are not allowed in strict mode",[2]:"Octal escape sequences are not allowed in template strings",[3]:"Unexpected token `#`",[4]:"Illegal Unicode escape sequence",[5]:"Invalid code point %0",[6]:"Invalid hexadecimal escape sequence",[8]:"Octal literals are not allowed in strict mode",[7]:"Decimal integer literals with a leading zero are forbidden in strict mode",[9]:"Expected number in radix %0",[145]:"Invalid left-hand side assignment to a destructible right-hand side",[10]:"Non-number found after exponent indicator",[11]:"Invalid BigIntLiteral",[12]:"No identifiers allowed directly after numeric literal",[13]:"Escapes \\8 or \\9 are not syntactically valid escapes",[14]:"Unterminated string literal",[15]:"Unterminated template literal",[16]:"Multiline comment was not closed properly",[17]:"The identifier contained dynamic unicode escape that was not closed",[18]:"Illegal character '%0'",[19]:"Missing hexadecimal digits",[20]:"Invalid implicit octal",[21]:"Invalid line break in string literal",[22]:"Only unicode escapes are legal in identifier names",[23]:"Expected '%0'",[24]:"Invalid left-hand side in assignment",[25]:"Invalid left-hand side in async arrow",[26]:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',[27]:"Member access on super must be in a method",[29]:"Await expression not allowed in formal parameter",[30]:"Yield expression not allowed in formal parameter",[92]:"Unexpected token: 'escaped keyword'",[31]:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",[119]:"Async functions can only be declared at the top level or inside a block",[32]:"Unterminated regular expression",[33]:"Unexpected regular expression flag",[34]:"Duplicate regular expression flag '%0'",[35]:"%0 functions must have exactly %1 argument%2",[36]:"Setter function argument must not be a rest parameter",[37]:"%0 declaration must have a name in this context",[38]:"Function name may not contain any reserved words or be eval or arguments in strict mode",[39]:"The rest operator is missing an argument",[40]:"A getter cannot be a generator",[41]:"A computed property name must be followed by a colon or paren",[130]:"Object literal keys that are strings or numbers must be a method or have a colon",[43]:"Found `* async x(){}` but this should be `async * x(){}`",[42]:"Getters and setters can not be generators",[44]:"'%0' can not be generator method",[45]:"No line break is allowed after '=>'",[46]:"The left-hand side of the arrow can only be destructed through assignment",[47]:"The binding declaration is not destructible",[48]:"Async arrow can not be followed by new expression",[49]:"Classes may not have a static property named 'prototype'",[50]:"Class constructor may not be a %0",[51]:"Duplicate constructor method in class",[52]:"Invalid increment/decrement operand",[53]:"Invalid use of `new` keyword on an increment/decrement expression",[54]:"`=>` is an invalid assignment target",[55]:"Rest element may not have a trailing comma",[56]:"Missing initializer in %0 declaration",[57]:"'for-%0' loop head declarations can not have an initializer",[58]:"Invalid left-hand side in for-%0 loop: Must have a single binding",[59]:"Invalid shorthand property initializer",[60]:"Property name __proto__ appears more than once in object literal",[61]:"Let is disallowed as a lexically bound name",[62]:"Invalid use of '%0' inside new expression",[63]:"Illegal 'use strict' directive in function with non-simple parameter list",[64]:'Identifier "let" disallowed as left-hand side expression in strict mode',[65]:"Illegal continue statement",[66]:"Illegal break statement",[67]:"Cannot have `let[...]` as a var name in strict mode",[68]:"Invalid destructuring assignment target",[69]:"Rest parameter may not have a default initializer",[70]:"The rest argument must the be last parameter",[71]:"Invalid rest argument",[73]:"In strict mode code, functions can only be declared at top level or inside a block",[74]:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",[75]:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",[76]:"Class declaration can't appear in single-statement context",[77]:"Invalid left-hand side in for-%0",[78]:"Invalid assignment in for-%0",[79]:"for await (... of ...) is only valid in async functions and async generators",[80]:"The first token after the template expression should be a continuation of the template",[82]:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",[81]:"`let \n [` is a restricted production at the start of a statement",[83]:"Catch clause requires exactly one parameter, not more (and no trailing comma)",[84]:"Catch clause parameter does not support default values",[85]:"Missing catch or finally after try",[86]:"More than one default clause in switch statement",[87]:"Illegal newline after throw",[88]:"Strict mode code may not include a with statement",[89]:"Illegal return statement",[90]:"The left hand side of the for-header binding declaration is not destructible",[91]:"new.target only allowed within functions",[93]:"'#' not followed by identifier",[99]:"Invalid keyword",[98]:"Can not use 'let' as a class name",[97]:"'A lexical declaration can't define a 'let' binding",[96]:"Can not use `let` as variable name in strict mode",[94]:"'%0' may not be used as an identifier in this context",[95]:"Await is only valid in async functions",[100]:"The %0 keyword can only be used with the module goal",[101]:"Unicode codepoint must not be greater than 0x10FFFF",[102]:"%0 source must be string",[103]:"Only a identifier can be used to indicate alias",[104]:"Only '*' or '{...}' can be imported after default",[105]:"Trailing decorator may be followed by method",[106]:"Decorators can't be used with a constructor",[108]:"HTML comments are only allowed with web compatibility (Annex B)",[109]:"The identifier 'let' must not be in expression position in strict mode",[110]:"Cannot assign to `eval` and `arguments` in strict mode",[111]:"The left-hand side of a for-of loop may not start with 'let'",[112]:"Block body arrows can not be immediately invoked without a group",[113]:"Block body arrows can not be immediately accessed without a group",[114]:"Unexpected strict mode reserved word",[115]:"Unexpected eval or arguments in strict mode",[116]:"Decorators must not be followed by a semicolon",[117]:"Calling delete on expression not allowed in strict mode",[118]:"Pattern can not have a tail",[120]:"Can not have a `yield` expression on the left side of a ternary",[121]:"An arrow function can not have a postfix update operator",[122]:"Invalid object literal key character after generator star",[123]:"Private fields can not be deleted",[125]:"Classes may not have a field called constructor",[124]:"Classes may not have a private element named constructor",[126]:"A class field initializer may not contain arguments",[127]:"Generators can only be declared at the top level or inside a block",[128]:"Async methods are a restricted production and cannot have a newline following it",[129]:"Unexpected character after object literal property name",[131]:"Invalid key token",[132]:"Label '%0' has already been declared",[133]:"continue statement must be nested within an iteration statement",[134]:"Undefined label '%0'",[135]:"Trailing comma is disallowed inside import(...) arguments",[136]:"import() requires exactly one argument",[137]:"Cannot use new with import(...)",[138]:"... is not allowed in import()",[139]:"Expected '=>'",[140]:"Duplicate binding '%0'",[141]:"Cannot export a duplicate name '%0'",[144]:"Duplicate %0 for-binding",[142]:"Exported binding '%0' needs to refer to a top-level declared variable",[143]:"Unexpected private field",[147]:"Numeric separators are not allowed at the end of numeric literals",[146]:"Only one underscore is allowed as numeric separator",[148]:"JSX value should be either an expression or a quoted JSX text",[149]:"Expected corresponding JSX closing tag for %0",[150]:"Adjacent JSX elements must be wrapped in an enclosing tag",[151]:"JSX attributes must only be assigned a non-empty 'expression'",[152]:"'%0' has already been declared",[153]:"'%0' shadowed a catch clause binding",[154]:"Dot property must be an identifier",[155]:"Encountered invalid input after spread/rest argument",[156]:"Catch without try",[157]:"Finally without try",[158]:"Expected corresponding closing tag for JSX fragment",[159]:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",[160]:"Invalid tagged template on optional chain",[161]:"Invalid optional chain from super property",[162]:"Invalid optional chain from new expression",[163]:'Cannot use "import.meta" outside a module',[164]:"Leading decorators must be attached to a class declaration"},k=class extends SyntaxError{constructor(u,e,i,n){for(var t=arguments.length,o=new Array(t>4?t-4:0),l=4;lo[h]);super("".concat(c)),this.index=u,this.line=e,this.column=i,this.description=c,this.loc={line:e,column:i}}};function f(u,e){for(var i=arguments.length,n=new Array(i>2?i-2:0),t=2;t4?t-4:0),l=4;l{let i=new Uint32Array(104448),n=0,t=0;for(;n<3540;){let o=u[n++];if(o<0)t-=o;else{let l=u[n++];o&2&&(l=e[l]),o&1?i.fill(l,t,t+=u[n++]):i[t++]=l}}return i})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function r(u){return u.column++,u.currentChar=u.source.charCodeAt(++u.index)}function K(u,e){if((e&64512)!==55296)return 0;let i=u.source.charCodeAt(u.index+1);return(i&64512)!==56320?0:(e=u.currentChar=65536+((e&1023)<<10)+(i&1023),(T[(e>>>5)+0]>>>e&31&1)===0&&f(u,18,Z(e)),u.index++,u.column++,1)}function Y(u,e){u.currentChar=u.source.charCodeAt(++u.index),u.flags|=1,(e&4)===0&&(u.column=0,u.line++)}function X(u){u.flags|=1,u.currentChar=u.source.charCodeAt(++u.index),u.column=0,u.line++}function p(u){return u===160||u===65279||u===133||u===5760||u>=8192&&u<=8203||u===8239||u===8287||u===12288||u===8201||u===65519}function Z(u){return u<=65535?String.fromCharCode(u):String.fromCharCode(u>>>10)+String.fromCharCode(u&1023)}function L(u){return u<65?u-48:u-65+10&15}function t2(u){switch(u){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return(u&143360)===143360?"Identifier":(u&4096)===4096?"Keyword":"Punctuator"}}var V=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],J=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],H=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function I(u){return u<=127?J[u]:T[(u>>>5)+34816]>>>u&31&1}function u2(u){return u<=127?H[u]:T[(u>>>5)+0]>>>u&31&1||u===8204||u===8205}var m2=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function c2(u){let e=u.source;u.currentChar===35&&e.charCodeAt(u.index+1)===33&&(r(u),r(u),s2(u,e,0,4,u.tokenPos,u.linePos,u.colPos))}function R2(u,e,i,n,t,o,l,c){return n&2048&&f(u,0),s2(u,e,i,t,o,l,c)}function s2(u,e,i,n,t,o,l){let{index:c}=u;for(u.tokenPos=u.index,u.linePos=u.line,u.colPos=u.column;u.index=u.source.length)return f(u,32)}let t=u.index-1,o=0,l=u.currentChar,{index:c}=u;for(;u2(l);){switch(l){case 103:o&2&&f(u,34,"g"),o|=2;break;case 105:o&1&&f(u,34,"i"),o|=1;break;case 109:o&4&&f(u,34,"m"),o|=4;break;case 117:o&16&&f(u,34,"g"),o|=16;break;case 121:o&8&&f(u,34,"y"),o|=8;break;case 115:o&32&&f(u,34,"s"),o|=32;break;default:f(u,33)}l=r(u)}let s=u.source.slice(c,u.index),h=u.source.slice(i,t);return u.tokenRegExp={pattern:h,flags:s},e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),u.tokenValue=O1(u,h,s),65540}function O1(u,e,i){try{return new RegExp(e,i)}catch{f(u,32)}}function I1(u,e,i){let{index:n}=u,t="",o=r(u),l=u.index;for(;(V[o]&8)===0;){if(o===i)return t+=u.source.slice(l,u.index),r(u),e&512&&(u.tokenRaw=u.source.slice(n,u.index)),u.tokenValue=t,134283267;if((o&8)===8&&o===92){if(t+=u.source.slice(l,u.index),o=r(u),o<127||o===8232||o===8233){let c=g2(u,e,o);c>=0?t+=Z(c):n1(u,c,0)}else t+=Z(o);l=u.index+1}u.index>=u.end&&f(u,14),o=r(u)}f(u,14)}function g2(u,e,i){switch(i){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(u.index1114111)return-5;return u.currentChar<1||u.currentChar!==125?-4:t}else{if((V[n]&64)===0)return-4;let t=u.source.charCodeAt(u.index+1);if((V[t]&64)===0)return-4;let o=u.source.charCodeAt(u.index+2);if((V[o]&64)===0)return-4;let l=u.source.charCodeAt(u.index+3);return(V[l]&64)===0?-4:(u.index+=3,u.column+=3,u.currentChar=u.source.charCodeAt(u.index),L(n)<<12|L(t)<<8|L(o)<<4|L(l))}}case 56:case 57:if((e&256)===0)return-3;default:return i}}function n1(u,e,i){switch(e){case-1:return;case-2:f(u,i?2:1);case-3:f(u,13);case-4:f(u,6);case-5:f(u,101)}}function Ju(u,e){let{index:i}=u,n=67174409,t="",o=r(u);for(;o!==96;){if(o===36&&u.source.charCodeAt(u.index+1)===123){r(u),n=67174408;break}else if((o&8)===8&&o===92)if(o=r(u),o>126)t+=Z(o);else{let l=g2(u,e|1024,o);if(l>=0)t+=Z(l);else if(l!==-1&&e&65536){t=void 0,o=r0(u,o),o<0&&(n=67174408);break}else n1(u,l,1)}else u.index=u.end&&f(u,15),o=r(u)}return r(u),u.tokenValue=t,u.tokenRaw=u.source.slice(i+1,u.index-(n===67174409?1:2)),n}function r0(u,e){for(;e!==96;){switch(e){case 36:{let i=u.index+1;if(i=u.end&&f(u,15),e=r(u)}return e}function v0(u,e){return u.index>=u.end&&f(u,0),u.index--,u.column--,Ju(u,e)}function Xu(u,e,i){let n=u.currentChar,t=0,o=9,l=i&64?0:1,c=0,s=0;if(i&64)t="."+t1(u,n),n=u.currentChar,n===110&&f(u,11);else{if(n===48)if(n=r(u),(n|32)===120){for(i=136,n=r(u);V[n]&4160;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*16+L(n),c++,n=r(u)}(c<1||!s)&&f(u,c<1?19:147)}else if((n|32)===111){for(i=132,n=r(u);V[n]&4128;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*8+(n-48),c++,n=r(u)}(c<1||!s)&&f(u,c<1?0:147)}else if((n|32)===98){for(i=130,n=r(u);V[n]&4224;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*2+(n-48),c++,n=r(u)}(c<1||!s)&&f(u,c<1?0:147)}else if(V[n]&32)for(e&1024&&f(u,1),i=1;V[n]&16;){if(V[n]&512){i=32,l=0;break}t=t*8+(n-48),n=r(u)}else V[n]&512?(e&1024&&f(u,1),u.flags|=64,i=32):n===95&&f(u,0);if(i&48){if(l){for(;o>=0&&V[n]&4112;){if(n===95){n=r(u),(n===95||i&32)&&q(u.index,u.line,u.index+1,146),s=1;continue}s=0,t=10*t+(n-48),n=r(u),--o}if(s&&q(u.index,u.line,u.index+1,147),o>=0&&!I(n)&&n!==46)return u.tokenValue=t,e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283266}t+=t1(u,n),n=u.currentChar,n===46&&(r(u)===95&&f(u,0),i=64,t+="."+t1(u,u.currentChar),n=u.currentChar)}}let h=u.index,b=0;if(n===110&&i&128)b=1,n=r(u);else if((n|32)===101){n=r(u),V[n]&256&&(n=r(u));let{index:g}=u;(V[n]&16)<1&&f(u,10),t+=u.source.substring(h,g)+t1(u,n),n=u.currentChar}return(u.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],zu=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function Hu(u,e,i){for(;H[r(u)];);return u.tokenValue=u.source.slice(u.tokenPos,u.index),u.currentChar!==92&&u.currentChar<126?zu[u.tokenValue]||208897:R1(u,e,0,i)}function A0(u,e){let i=Ku(u);return u2(i)||f(u,4),u.tokenValue=Z(i),R1(u,e,1,V[i]&4)}function R1(u,e,i,n){let t=u.index;for(;u.index=2&&o<=11){let l=zu[u.tokenValue];return l===void 0?208897:i?e&1024?l===209008&&(e&4196352)===0?l:l===36972||(l&36864)===36864?122:121:e&1073741824&&(e&8192)===0&&(l&20480)===20480?l:l===241773?e&1073741824?143483:e&2097152?121:l:l===209007&&e&1073741824?143483:(l&36864)===36864||l===209008&&(e&4194304)===0?l:121:l}return 208897}function y0(u){return I(r(u))||f(u,93),131}function Ku(u){return u.source.charCodeAt(u.index+1)!==117&&f(u,4),u.currentChar=u.source.charCodeAt(u.index+=2),P0(u)}function P0(u){let e=0,i=u.currentChar;if(i===123){let l=u.index-2;for(;V[r(u)]&64;)e=e<<4|L(u.currentChar),e>1114111&&q(l,u.line,u.index+1,101);return u.currentChar!==125&&q(l,u.line,u.index-1,6),r(u),e}(V[i]&64)===0&&f(u,6);let n=u.source.charCodeAt(u.index+1);(V[n]&64)===0&&f(u,6);let t=u.source.charCodeAt(u.index+2);(V[t]&64)===0&&f(u,6);let o=u.source.charCodeAt(u.index+3);return(V[o]&64)===0&&f(u,6),e=L(i)<<12|L(n)<<8|L(t)<<4|L(o),u.currentChar=u.source.charCodeAt(u.index+=4),e}var Wu=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function E(u,e){if(u.flags=(u.flags|1)^1,u.startPos=u.index,u.startColumn=u.column,u.startLine=u.line,u.token=Yu(u,e,0),u.onToken&&u.token!==1048576){let i={start:{line:u.linePos,column:u.colPos},end:{line:u.line,column:u.column}};u.onToken(t2(u.token),u.tokenPos,u.index,i)}}function Yu(u,e,i){let n=u.index===0,t=u.source,o=u.index,l=u.line,c=u.column;for(;u.index=u.end)return 8457014;let a=u.currentChar;return a===61?(r(u),4194340):a!==42?8457014:r(u)!==61?8457273:(r(u),4194337)}case 8455497:return r(u)!==61?8455497:(r(u),4194343);case 25233970:{r(u);let a=u.currentChar;return a===43?(r(u),33619995):a===61?(r(u),4194338):25233970}case 25233971:{r(u);let a=u.currentChar;if(a===45){if(r(u),(i&1||n)&&u.currentChar===62){(e&256)===0&&f(u,108),r(u),i=R2(u,t,i,e,3,o,l,c),o=u.tokenPos,l=u.linePos,c=u.colPos;continue}return 33619996}return a===61?(r(u),4194339):25233971}case 8457016:{if(r(u),u.index=48&&g<=57)return Xu(u,e,80);if(g===46){let a=u.index+1;if(a=48&&a<=57)))return r(u),67108991}return 22}}}else{if((s^8232)<=1){i=i&-5|1,X(u);continue}if((s&64512)===55296||(T[(s>>>5)+34816]>>>s&31&1)!==0)return(s&64512)===56320&&(s=(s&1023)<<10|s&1023|65536,(T[(s>>>5)+0]>>>s&31&1)===0&&f(u,18,Z(s)),u.index++,u.currentChar=s),u.column++,u.tokenValue="",R1(u,e,0,0);if(p(s)){r(u);continue}f(u,18,Z(s))}}return 1048576}var E0={AElig:"\xC6",AMP:"&",Aacute:"\xC1",Abreve:"\u0102",Acirc:"\xC2",Acy:"\u0410",Afr:"\u{1D504}",Agrave:"\xC0",Alpha:"\u0391",Amacr:"\u0100",And:"\u2A53",Aogon:"\u0104",Aopf:"\u{1D538}",ApplyFunction:"\u2061",Aring:"\xC5",Ascr:"\u{1D49C}",Assign:"\u2254",Atilde:"\xC3",Auml:"\xC4",Backslash:"\u2216",Barv:"\u2AE7",Barwed:"\u2306",Bcy:"\u0411",Because:"\u2235",Bernoullis:"\u212C",Beta:"\u0392",Bfr:"\u{1D505}",Bopf:"\u{1D539}",Breve:"\u02D8",Bscr:"\u212C",Bumpeq:"\u224E",CHcy:"\u0427",COPY:"\xA9",Cacute:"\u0106",Cap:"\u22D2",CapitalDifferentialD:"\u2145",Cayleys:"\u212D",Ccaron:"\u010C",Ccedil:"\xC7",Ccirc:"\u0108",Cconint:"\u2230",Cdot:"\u010A",Cedilla:"\xB8",CenterDot:"\xB7",Cfr:"\u212D",Chi:"\u03A7",CircleDot:"\u2299",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",Colon:"\u2237",Colone:"\u2A74",Congruent:"\u2261",Conint:"\u222F",ContourIntegral:"\u222E",Copf:"\u2102",Coproduct:"\u2210",CounterClockwiseContourIntegral:"\u2233",Cross:"\u2A2F",Cscr:"\u{1D49E}",Cup:"\u22D3",CupCap:"\u224D",DD:"\u2145",DDotrahd:"\u2911",DJcy:"\u0402",DScy:"\u0405",DZcy:"\u040F",Dagger:"\u2021",Darr:"\u21A1",Dashv:"\u2AE4",Dcaron:"\u010E",Dcy:"\u0414",Del:"\u2207",Delta:"\u0394",Dfr:"\u{1D507}",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",Diamond:"\u22C4",DifferentialD:"\u2146",Dopf:"\u{1D53B}",Dot:"\xA8",DotDot:"\u20DC",DotEqual:"\u2250",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",Downarrow:"\u21D3",Dscr:"\u{1D49F}",Dstrok:"\u0110",ENG:"\u014A",ETH:"\xD0",Eacute:"\xC9",Ecaron:"\u011A",Ecirc:"\xCA",Ecy:"\u042D",Edot:"\u0116",Efr:"\u{1D508}",Egrave:"\xC8",Element:"\u2208",Emacr:"\u0112",EmptySmallSquare:"\u25FB",EmptyVerySmallSquare:"\u25AB",Eogon:"\u0118",Eopf:"\u{1D53C}",Epsilon:"\u0395",Equal:"\u2A75",EqualTilde:"\u2242",Equilibrium:"\u21CC",Escr:"\u2130",Esim:"\u2A73",Eta:"\u0397",Euml:"\xCB",Exists:"\u2203",ExponentialE:"\u2147",Fcy:"\u0424",Ffr:"\u{1D509}",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",Fopf:"\u{1D53D}",ForAll:"\u2200",Fouriertrf:"\u2131",Fscr:"\u2131",GJcy:"\u0403",GT:">",Gamma:"\u0393",Gammad:"\u03DC",Gbreve:"\u011E",Gcedil:"\u0122",Gcirc:"\u011C",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\u{1D50A}",Gg:"\u22D9",Gopf:"\u{1D53E}",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",Gt:"\u226B",HARDcy:"\u042A",Hacek:"\u02C7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210C",HilbertSpace:"\u210B",Hopf:"\u210D",HorizontalLine:"\u2500",Hscr:"\u210B",Hstrok:"\u0126",HumpDownHump:"\u224E",HumpEqual:"\u224F",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xCD",Icirc:"\xCE",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xCC",Im:"\u2111",Imacr:"\u012A",ImaginaryI:"\u2148",Implies:"\u21D2",Int:"\u222C",Integral:"\u222B",Intersection:"\u22C2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012E",Iopf:"\u{1D540}",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xCF",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\u{1D50D}",Jopf:"\u{1D541}",Jscr:"\u{1D4A5}",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",Kfr:"\u{1D50E}",Kopf:"\u{1D542}",Kscr:"\u{1D4A6}",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039B",Lang:"\u27EA",Laplacetrf:"\u2112",Larr:"\u219E",Lcaron:"\u013D",Lcedil:"\u013B",Lcy:"\u041B",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",LeftRightArrow:"\u2194",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",Leftarrow:"\u21D0",Leftrightarrow:"\u21D4",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2AA1",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",Lfr:"\u{1D50F}",Ll:"\u22D8",Lleftarrow:"\u21DA",Lmidot:"\u013F",LongLeftArrow:"\u27F5",LongLeftRightArrow:"\u27F7",LongRightArrow:"\u27F6",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",Longrightarrow:"\u27F9",Lopf:"\u{1D543}",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21B0",Lstrok:"\u0141",Lt:"\u226A",Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",MinusPlus:"\u2213",Mopf:"\u{1D544}",Mscr:"\u2133",Mu:"\u039C",NJcy:"\u040A",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041D",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,Nfr:"\u{1D511}",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\u{1D4A9}",Ntilde:"\xD1",Nu:"\u039D",OElig:"\u0152",Oacute:"\xD3",Ocirc:"\xD4",Ocy:"\u041E",Odblac:"\u0150",Ofr:"\u{1D512}",Ograve:"\xD2",Omacr:"\u014C",Omega:"\u03A9",Omicron:"\u039F",Oopf:"\u{1D546}",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",Or:"\u2A54",Oscr:"\u{1D4AA}",Oslash:"\xD8",Otilde:"\xD5",Otimes:"\u2A37",Ouml:"\xD6",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",PartialD:"\u2202",Pcy:"\u041F",Pfr:"\u{1D513}",Phi:"\u03A6",Pi:"\u03A0",PlusMinus:"\xB1",Poincareplane:"\u210C",Popf:"\u2119",Pr:"\u2ABB",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",Prime:"\u2033",Product:"\u220F",Proportion:"\u2237",Proportional:"\u221D",Pscr:"\u{1D4AB}",Psi:"\u03A8",QUOT:'"',Qfr:"\u{1D514}",Qopf:"\u211A",Qscr:"\u{1D4AC}",RBarr:"\u2910",REG:"\xAE",Racute:"\u0154",Rang:"\u27EB",Rarr:"\u21A0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211C",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",Rfr:"\u211C",Rho:"\u03A1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",Rightarrow:"\u21D2",Ropf:"\u211D",RoundImplies:"\u2970",Rrightarrow:"\u21DB",Rscr:"\u211B",Rsh:"\u21B1",RuleDelayed:"\u29F4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042C",Sacute:"\u015A",Sc:"\u2ABC",Scaron:"\u0160",Scedil:"\u015E",Scirc:"\u015C",Scy:"\u0421",Sfr:"\u{1D516}",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03A3",SmallCircle:"\u2218",Sopf:"\u{1D54A}",Sqrt:"\u221A",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\u{1D4AE}",Star:"\u22C6",Sub:"\u22D0",Subset:"\u22D0",SubsetEqual:"\u2286",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",SuchThat:"\u220B",Sum:"\u2211",Sup:"\u22D1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22D1",THORN:"\xDE",TRADE:"\u2122",TSHcy:"\u040B",TScy:"\u0426",Tab:" ",Tau:"\u03A4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\u{1D517}",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\u{1D54B}",TripleDot:"\u20DB",Tscr:"\u{1D4AF}",Tstrok:"\u0166",Uacute:"\xDA",Uarr:"\u219F",Uarrocir:"\u2949",Ubrcy:"\u040E",Ubreve:"\u016C",Ucirc:"\xDB",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\u{1D518}",Ugrave:"\xD9",Umacr:"\u016A",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",Uopf:"\u{1D54C}",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",UpEquilibrium:"\u296E",UpTee:"\u22A5",UpTeeArrow:"\u21A5",Uparrow:"\u21D1",Updownarrow:"\u21D5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",Upsilon:"\u03A5",Uring:"\u016E",Uscr:"\u{1D4B0}",Utilde:"\u0168",Uuml:"\xDC",VDash:"\u22AB",Vbar:"\u2AEB",Vcy:"\u0412",Vdash:"\u22A9",Vdashl:"\u2AE6",Vee:"\u22C1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",Vopf:"\u{1D54D}",Vscr:"\u{1D4B1}",Vvdash:"\u22AA",Wcirc:"\u0174",Wedge:"\u22C0",Wfr:"\u{1D51A}",Wopf:"\u{1D54E}",Wscr:"\u{1D4B2}",Xfr:"\u{1D51B}",Xi:"\u039E",Xopf:"\u{1D54F}",Xscr:"\u{1D4B3}",YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacute:"\xDD",Ycirc:"\u0176",Ycy:"\u042B",Yfr:"\u{1D51C}",Yopf:"\u{1D550}",Yscr:"\u{1D4B4}",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\u{1D4B5}",aacute:"\xE1",abreve:"\u0103",ac:"\u223E",acE:"\u223E\u0333",acd:"\u223F",acirc:"\xE2",acute:"\xB4",acy:"\u0430",aelig:"\xE6",af:"\u2061",afr:"\u{1D51E}",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03B1",amacr:"\u0101",amalg:"\u2A3F",amp:"&",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",aogon:"\u0105",aopf:"\u{1D552}",ap:"\u2248",apE:"\u2A70",apacir:"\u2A6F",ape:"\u224A",apid:"\u224B",apos:"'",approx:"\u2248",approxeq:"\u224A",aring:"\xE5",ascr:"\u{1D4B6}",ast:"*",asymp:"\u2248",asympeq:"\u224D",atilde:"\xE3",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",bNot:"\u2AED",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",barvee:"\u22BD",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",beta:"\u03B2",beth:"\u2136",between:"\u226C",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bnot:"\u2310",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255D",boxUR:"\u255A",boxUl:"\u255C",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256C",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256B",boxVl:"\u2562",boxVr:"\u255F",boxbox:"\u29C9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250C",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252C",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxuL:"\u255B",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256A",boxvL:"\u2561",boxvR:"\u255E",boxvh:"\u253C",boxvl:"\u2524",boxvr:"\u251C",bprime:"\u2035",breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",bumpeq:"\u224F",cacute:"\u0107",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",ccaps:"\u2A4D",ccaron:"\u010D",ccedil:"\xE7",ccirc:"\u0109",ccups:"\u2A4C",ccupssm:"\u2A50",cdot:"\u010B",cedil:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",cfr:"\u{1D520}",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03C7",cir:"\u25CB",cirE:"\u29C3",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledR:"\xAE",circledS:"\u24C8",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",conint:"\u222E",copf:"\u{1D554}",coprod:"\u2210",copy:"\xA9",copysr:"\u2117",crarr:"\u21B5",cross:"\u2717",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cup:"\u222A",cupbrcap:"\u2A48",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dArr:"\u21D3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",dcaron:"\u010F",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",ddotseq:"\u2A77",deg:"\xB0",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",dfr:"\u{1D521}",dharl:"\u21C3",dharr:"\u21C2",diam:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",dopf:"\u{1D555}",dot:"\u02D9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",dscr:"\u{1D4B9}",dscy:"\u0455",dsol:"\u29F6",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",dzcy:"\u045F",dzigrarr:"\u27FF",eDDot:"\u2A77",eDot:"\u2251",eacute:"\xE9",easter:"\u2A6E",ecaron:"\u011B",ecir:"\u2256",ecirc:"\xEA",ecolon:"\u2255",ecy:"\u044D",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\u{1D522}",eg:"\u2A9A",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014B",ensp:"\u2002",eogon:"\u0119",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equals:"=",equest:"\u225F",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erDot:"\u2253",erarr:"\u2971",escr:"\u212F",esdot:"\u2250",esim:"\u2242",eta:"\u03B7",eth:"\xF0",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",ffr:"\u{1D523}",filig:"\uFB01",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",fopf:"\u{1D557}",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",gE:"\u2267",gEl:"\u2A8C",gacute:"\u01F5",gamma:"\u03B3",gammad:"\u03DD",gap:"\u2A86",gbreve:"\u011F",gcirc:"\u011D",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",gfr:"\u{1D524}",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2A92",gla:"\u2AA5",glj:"\u2AA4",gnE:"\u2269",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gopf:"\u{1D558}",grave:"`",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",hArr:"\u21D4",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",hbar:"\u210F",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",horbar:"\u2015",hscr:"\u{1D4BD}",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xED",ic:"\u2063",icirc:"\xEE",icy:"\u0438",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012B",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",int:"\u222B",intcal:"\u22BA",integers:"\u2124",intercal:"\u22BA",intlarhk:"\u2A17",intprod:"\u2A3C",iocy:"\u0451",iogon:"\u012F",iopf:"\u{1D55A}",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",isin:"\u2208",isinE:"\u22F9",isindot:"\u22F5",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xEF",jcirc:"\u0135",jcy:"\u0439",jfr:"\u{1D527}",jmath:"\u0237",jopf:"\u{1D55B}",jscr:"\u{1D4BF}",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03BA",kappav:"\u03F0",kcedil:"\u0137",kcy:"\u043A",kfr:"\u{1D528}",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C",kopf:"\u{1D55C}",kscr:"\u{1D4C0}",lAarr:"\u21DA",lArr:"\u21D0",lAtail:"\u291B",lBarr:"\u290E",lE:"\u2266",lEg:"\u2A8B",lHar:"\u2962",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",lambda:"\u03BB",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",laquo:"\xAB",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",lcaron:"\u013E",lcedil:"\u013C",lceil:"\u2308",lcub:"{",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297C",lfloor:"\u230A",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",llhard:"\u296B",lltri:"\u25FA",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnE:"\u2268",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",lstrok:"\u0142",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltrPar:"\u2996",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",mDDot:"\u223A",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",mstpos:"\u223E",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nGg:"\u22D9\u0338",nGt:"\u226B\u20D2",nGtv:"\u226B\u0338",nLeftarrow:"\u21CD",nLeftrightarrow:"\u21CE",nLl:"\u22D8\u0338",nLt:"\u226A\u20D2",nLtv:"\u226A\u0338",nRightarrow:"\u21CF",nVDash:"\u22AF",nVdash:"\u22AE",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",neArr:"\u21D7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",ngsim:"\u2275",ngt:"\u226F",ngtr:"\u226F",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",nlArr:"\u21CD",nlE:"\u2266\u0338",nlarr:"\u219A",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219A",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nlsim:"\u2274",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nmid:"\u2224",nopf:"\u{1D55F}",not:"\xAC",notin:"\u2209",notinE:"\u22F9\u0338",notindot:"\u22F5\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22AD",nvHarr:"\u2904",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwArr:"\u21D6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24C8",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",ocirc:"\xF4",ocy:"\u043E",odash:"\u229D",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",ofcir:"\u29BF",ofr:"\u{1D52C}",ogon:"\u02DB",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",omega:"\u03C9",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",opar:"\u29B7",operp:"\u29B9",oplus:"\u2295",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oscr:"\u2134",oslash:"\xF8",osol:"\u2298",otilde:"\xF5",otimes:"\u2297",otimesas:"\u2A36",ouml:"\xF6",ovbar:"\u233D",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",pfr:"\u{1D52D}",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",pointint:"\u2A15",popf:"\u{1D561}",pound:"\xA3",pr:"\u227A",prE:"\u2AB3",prap:"\u2AB7",prcue:"\u227C",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",primes:"\u2119",prnE:"\u2AB5",prnap:"\u2AB9",prnsim:"\u22E8",prod:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",pscr:"\u{1D4C5}",psi:"\u03C8",puncsp:"\u2008",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",qprime:"\u2057",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',rAarr:"\u21DB",rArr:"\u21D2",rAtail:"\u291C",rBarr:"\u290F",rHar:"\u2964",race:"\u223D\u0331",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",reg:"\xAE",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",rho:"\u03C1",rhov:"\u03F1",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",rightthreetimes:"\u22CC",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",rsaquo:"\u203A",rscr:"\u{1D4C7}",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",ruluhar:"\u2968",rx:"\u211E",sacute:"\u015B",sbquo:"\u201A",sc:"\u227B",scE:"\u2AB4",scap:"\u2AB8",scaron:"\u0161",sccue:"\u227D",sce:"\u2AB0",scedil:"\u015F",scirc:"\u015D",scnE:"\u2AB6",scnap:"\u2ABA",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",seArr:"\u21D8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xAD",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",square:"\u25A1",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",subE:"\u2AC5",subdot:"\u2ABD",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",supE:"\u2AC6",supdot:"\u2ABE",supdsub:"\u2AD8",supe:"\u2287",supedot:"\u2AC4",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swArr:"\u21D9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",target:"\u2316",tau:"\u03C4",tbrk:"\u23B4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",thorn:"\xFE",tilde:"\u02DC",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",tscr:"\u{1D4C9}",tscy:"\u0446",tshcy:"\u045B",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",uArr:"\u21D1",uHar:"\u2963",uacute:"\xFA",uarr:"\u2191",ubrcy:"\u045E",ubreve:"\u016D",ucirc:"\xFB",ucy:"\u0443",udarr:"\u21C5",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",ufr:"\u{1D532}",ugrave:"\xF9",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",umacr:"\u016B",uml:"\xA8",uogon:"\u0173",uopf:"\u{1D566}",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upsi:"\u03C5",upsih:"\u03D2",upsilon:"\u03C5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",uring:"\u016F",urtri:"\u25F9",uscr:"\u{1D4CA}",utdot:"\u22F0",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",uuml:"\xFC",uwangle:"\u29A7",vArr:"\u21D5",vBar:"\u2AE8",vBarv:"\u2AE9",vDash:"\u22A8",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vcy:"\u0432",vdash:"\u22A2",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",vert:"|",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",vzigzag:"\u299A",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\u{1D534}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",yacute:"\xFD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",yen:"\xA5",yfr:"\u{1D536}",yicy:"\u0457",yopf:"\u{1D56A}",yscr:"\u{1D4CE}",yucy:"\u044E",yuml:"\xFF",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zeta:"\u03B6",zfr:"\u{1D537}",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"},$u={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function D0(u){return u.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,e=>{if(e.charAt(1)==="#"){let i=e.charAt(2),n=i==="X"||i==="x"?parseInt(e.slice(3),16):parseInt(e.slice(2),10);return C0(n)}return E0[e.slice(1,-1)]||e})}function C0(u){return u>=55296&&u<=57343||u>1114111?"\uFFFD":(u in $u&&(u=$u[u]),String.fromCodePoint(u))}function w0(u,e){return u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.token=V[u.currentChar]&8192?q0(u,e):Yu(u,e,0),u.token}function q0(u,e){let i=u.currentChar,n=r(u),t=u.index;for(;n!==i;)u.index>=u.end&&f(u,14),n=r(u);return n!==i&&f(u,14),u.tokenValue=u.source.slice(t,u.index),r(u),e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283267}function V2(u,e){if(u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.index>=u.end)return u.token=1048576;switch(Wu[u.source.charCodeAt(u.index)]){case 8456258:{r(u),u.currentChar===47?(r(u),u.token=25):u.token=8456258;break}case 2162700:{r(u),u.token=2162700;break}default:{let n=0;for(;u.index2?o-2:0),c=2;c1&&t&32&&u.token&262144&&f(u,58,G[u.token&255]),l}function ne(u,e,i,n,t){let{token:o,tokenPos:l,linePos:c,colPos:s}=u,h=null,b=Ae(u,e,i,n,t,l,c,s);return u.token===1077936157?(E(u,e|32768),h=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),(t&32||(o&2097152)<1)&&(u.token===274549||u.token===8738868&&(o&2097152||(n&4)<1||e&1024))&&S(l,u.line,u.index-3,57,u.token===274549?"of":"in")):(n&16||(o&2097152)>0)&&(u.token&262144)!==262144&&f(u,56,n&16?"const":"destructuring"),v(u,e,l,c,s,{type:"VariableDeclarator",id:b,init:h})}function G0(u,e,i,n,t,o,l){E(u,e);let c=(e&4194304)>0&&U(u,e,209008);w(u,e|32768,67174411),i&&(i=o2(i,1));let s=null,h=null,b=0,g=null,a=u.token===86090||u.token===241739||u.token===86092,A,{token:C,tokenPos:D,linePos:B,colPos:O}=u;if(a?C===241739?(g=z(u,e,0),u.token&2240512?(u.token===8738868?e&1024&&f(u,64):g=v(u,e,D,B,O,{type:"VariableDeclaration",kind:"let",declarations:K2(u,e|134217728,i,8,32)}),u.assignable=1):e&1024?f(u,64):(a=!1,u.assignable=1,g=W(u,e,g,0,0,D,B,O),u.token===274549&&f(u,111))):(E(u,e),g=v(u,e,D,B,O,C===86090?{type:"VariableDeclaration",kind:"var",declarations:K2(u,e|134217728,i,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:K2(u,e|134217728,i,16,32)}),u.assignable=1):C===1074790417?c&&f(u,79):(C&2097152)===2097152?(g=C===2162700?r2(u,e,void 0,1,0,0,2,32,D,B,O):k2(u,e,void 0,1,0,0,2,32,D,B,O),b=u.destructible,e&256&&b&64&&f(u,60),u.assignable=b&16?2:1,g=W(u,e|134217728,g,0,0,u.tokenPos,u.linePos,u.colPos)):g=b2(u,e|134217728,1,0,1,D,B,O),(u.token&262144)===262144){if(u.token===274549){u.assignable&2&&f(u,77,c?"await":"of"),v2(u,g),E(u,e|32768),A=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let R=p2(u,e,i,n);return v(u,e,t,o,l,{type:"ForOfStatement",left:g,right:A,body:R,await:c})}u.assignable&2&&f(u,77,"in"),v2(u,g),E(u,e|32768),c&&f(u,79),A=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let e2=p2(u,e,i,n);return v(u,e,t,o,l,{type:"ForInStatement",body:e2,left:g,right:A})}c&&f(u,79),a||(b&8&&u.token!==1077936157&&f(u,77,"loop"),g=x(u,e|134217728,0,0,D,B,O,g)),u.token===18&&(g=S2(u,e,0,u.tokenPos,u.linePos,u.colPos,g)),w(u,e|32768,1074790417),u.token!==1074790417&&(s=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,1074790417),u.token!==16&&(h=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,16);let j=p2(u,e,i,n);return v(u,e,t,o,l,{type:"ForStatement",init:g,test:s,update:h,body:j})}function te(u,e,i){return _1(e,u.token)||f(u,114),(u.token&537079808)===537079808&&f(u,115),i&&B2(u,e,i,u.tokenValue,8,0),z(u,e,0)}function x0(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;E(u,e);let l=null,{tokenPos:c,linePos:s,colPos:h}=u,b=[];if(u.token===134283267)l=a2(u,e);else{if(u.token&143360){let g=te(u,e,i);if(b=[v(u,e,c,s,h,{type:"ImportDefaultSpecifier",local:g})],U(u,e,18))switch(u.token){case 8457014:b.push(oe(u,e,i));break;case 2162700:le(u,e,i,b);break;default:f(u,104)}}else switch(u.token){case 8457014:b=[oe(u,e,i)];break;case 2162700:le(u,e,i,b);break;case 67174411:return ce(u,e,n,t,o);case 67108877:return fe(u,e,n,t,o);default:f(u,28,G[u.token&255])}l=p0(u,e)}return d2(u,e|32768),v(u,e,n,t,o,{type:"ImportDeclaration",specifiers:b,source:l})}function oe(u,e,i){let{tokenPos:n,linePos:t,colPos:o}=u;return E(u,e),w(u,e,77934),(u.token&134217728)===134217728&&S(n,u.line,u.index,28,G[u.token&255]),v(u,e,n,t,o,{type:"ImportNamespaceSpecifier",local:te(u,e,i)})}function p0(u,e){return U(u,e,12404),u.token!==134283267&&f(u,102,"Import"),a2(u,e)}function le(u,e,i,n){for(E(u,e);u.token&143360;){let{token:t,tokenValue:o,tokenPos:l,linePos:c,colPos:s}=u,h=z(u,e,0),b;U(u,e,77934)?((u.token&134217728)===134217728||u.token===18?f(u,103):o1(u,e,16,u.token,0),o=u.tokenValue,b=z(u,e,0)):(o1(u,e,16,t,0),b=h),i&&B2(u,e,i,o,8,0),n.push(v(u,e,l,c,s,{type:"ImportSpecifier",local:b,imported:h})),u.token!==1074790415&&w(u,e,18)}return w(u,e,1074790415),n}function fe(u,e,i,n,t){let o=ae(u,e,v(u,e,i,n,t,{type:"Identifier",name:"import"}),i,n,t);return o=W(u,e,o,0,0,i,n,t),o=x(u,e,0,0,i,n,t,o),H2(u,e,o,i,n,t)}function ce(u,e,i,n,t){let o=de(u,e,0,i,n,t);return o=W(u,e,o,0,0,i,n,t),H2(u,e,o,i,n,t)}function ut(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;E(u,e|32768);let l=[],c=null,s=null,h;if(U(u,e|32768,20563)){switch(u.token){case 86106:{c=T2(u,e,i,4,1,1,0,u.tokenPos,u.linePos,u.colPos);break}case 133:case 86096:c=Z1(u,e,i,1,u.tokenPos,u.linePos,u.colPos);break;case 209007:let{tokenPos:b,linePos:g,colPos:a}=u;c=z(u,e,0);let{flags:A}=u;(A&1)<1&&(u.token===86106?c=T2(u,e,i,4,1,1,1,b,g,a):u.token===67174411?(c=$1(u,e,c,1,1,0,A,b,g,a),c=W(u,e,c,0,0,b,g,a),c=x(u,e,0,0,b,g,a,c)):u.token&143360&&(i&&(i=f1(u,e,u.tokenValue)),c=z(u,e,0),c=u1(u,e,i,[c],1,b,g,a)));break;default:c=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),d2(u,e|32768)}return i&&_2(u,"default"),v(u,e,n,t,o,{type:"ExportDefaultDeclaration",declaration:c})}switch(u.token){case 8457014:{E(u,e);let A=null;return U(u,e,77934)&&(i&&_2(u,u.tokenValue),A=z(u,e,0)),w(u,e,12404),u.token!==134283267&&f(u,102,"Export"),s=a2(u,e),d2(u,e|32768),v(u,e,n,t,o,{type:"ExportAllDeclaration",source:s,exported:A})}case 2162700:{E(u,e);let A=[],C=[];for(;u.token&143360;){let{tokenPos:D,tokenValue:B,linePos:O,colPos:j}=u,e2=z(u,e,0),R;u.token===77934?(E(u,e),(u.token&134217728)===134217728&&f(u,103),i&&(A.push(u.tokenValue),C.push(B)),R=z(u,e,0)):(i&&(A.push(u.tokenValue),C.push(u.tokenValue)),R=e2),l.push(v(u,e,D,O,j,{type:"ExportSpecifier",local:e2,exported:R})),u.token!==1074790415&&w(u,e,18)}if(w(u,e,1074790415),U(u,e,12404))u.token!==134283267&&f(u,102,"Export"),s=a2(u,e);else if(i){let D=0,B=A.length;for(;D0)&8738868,b,g;for(u.assignable=2;u.token&8454144&&(b=u.token,g=b&3840,(b&524288&&c&268435456||c&524288&&b&268435456)&&f(u,159),!(g+((b===8457273)<<8)-((h===b)<<12)<=l));)E(u,e|32768),s=v(u,e,n,t,o,{type:b&524288||b&268435456?"LogicalExpression":"BinaryExpression",left:s,right:F2(u,e,i,u.tokenPos,u.linePos,u.colPos,g,b,b2(u,e,0,i,1,u.tokenPos,u.linePos,u.colPos)),operator:G[b&255]});return u.token===1077936157&&f(u,24),s}function et(u,e,i,n,t,o,l){i||f(u,0);let c=u.token;E(u,e|32768);let s=b2(u,e,0,l,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),e&1024&&c===16863278&&(s.type==="Identifier"?f(u,117):B0(s)&&f(u,123)),u.assignable=2,v(u,e,n,t,o,{type:"UnaryExpression",operator:G[c&255],argument:s,prefix:!0})}function it(u,e,i,n,t,o,l,c,s,h){let{token:b}=u,g=z(u,e,o),{flags:a}=u;if((a&1)<1){if(u.token===86106)return he(u,e,1,i,c,s,h);if((u.token&143360)===143360)return n||f(u,0),ke(u,e,t,c,s,h)}return!l&&u.token===67174411?$1(u,e,g,t,1,0,a,c,s,h):u.token===10?(M1(u,e,b,1),l&&f(u,48),g1(u,e,u.tokenValue,g,l,t,0,c,s,h)):g}function nt(u,e,i,n,t,o,l){if(i&&(u.destructible|=256),e&2097152){E(u,e|32768),e&8388608&&f(u,30),n||f(u,24),u.token===22&&f(u,120);let c=null,s=!1;return(u.flags&1)<1&&(s=U(u,e|32768,8457014),(u.token&77824||s)&&(c=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos))),u.assignable=2,v(u,e,t,o,l,{type:"YieldExpression",argument:c,delegate:s})}return e&1024&&f(u,94,"yield"),Y1(u,e,t,o,l)}function tt(u,e,i,n,t,o,l){if(n&&(u.destructible|=128),e&4194304||e&2048&&e&8192){i&&f(u,0),e&8388608&&S(u.index,u.line,u.index,29),E(u,e|32768);let c=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),u.assignable=2,v(u,e,t,o,l,{type:"AwaitExpression",argument:c})}return e&2048&&f(u,95),Y1(u,e,t,o,l)}function a1(u,e,i,n,t,o){let{tokenPos:l,linePos:c,colPos:s}=u;w(u,e|32768,2162700);let h=[],b=e;if(u.token!==1074790415){for(;u.token===134283267;){let{index:g,tokenPos:a,tokenValue:A,token:C}=u,D=a2(u,e);Zu(u,g,a,A)&&(e|=1024,u.flags&128&&S(u.index,u.line,u.tokenPos,63),u.flags&64&&S(u.index,u.line,u.tokenPos,8)),h.push(X1(u,e,D,C,a,u.linePos,u.colPos))}e&1024&&(t&&((t&537079808)===537079808&&f(u,115),(t&36864)===36864&&f(u,38)),u.flags&512&&f(u,115),u.flags&256&&f(u,114)),e&64&&i&&o!==void 0&&(b&1024)<1&&(e&8192)<1&&P(o)}for(u.flags=(u.flags|512|256|64)^832,u.destructible=(u.destructible|256)^256;u.token!==1074790415;)h.push(G2(u,e,i,4,{}));return w(u,n&24?e|32768:e,1074790415),u.flags&=-193,u.token===1077936157&&f(u,24),v(u,e,l,c,s,{type:"BlockStatement",body:h})}function ot(u,e,i,n,t){switch(E(u,e),u.token){case 67108991:f(u,161);case 67174411:{(e&524288)<1&&f(u,26),e&16384&&f(u,27),u.assignable=2;break}case 69271571:case 67108877:{(e&262144)<1&&f(u,27),e&16384&&f(u,27),u.assignable=1;break}default:f(u,28,"super")}return v(u,e,i,n,t,{type:"Super"})}function b2(u,e,i,n,t,o,l,c){let s=h2(u,e,2,0,i,0,n,t,o,l,c);return W(u,e,s,n,0,o,l,c)}function lt(u,e,i,n,t,o){u.assignable&2&&f(u,52);let{token:l}=u;return E(u,e),u.assignable=2,v(u,e,n,t,o,{type:"UpdateExpression",argument:i,operator:G[l&255],prefix:!1})}function W(u,e,i,n,t,o,l,c){if((u.token&33619968)===33619968&&(u.flags&1)<1)i=lt(u,e,i,o,l,c);else if((u.token&67108864)===67108864){switch(e=(e|134217728)^134217728,u.token){case 67108877:{E(u,(e|1073741824|8192)^8192),u.assignable=1;let s=se(u,e);i=v(u,e,o,l,c,{type:"MemberExpression",object:i,computed:!1,property:s});break}case 69271571:{let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048),E(u,e|32768);let{tokenPos:h,linePos:b,colPos:g}=u,a=f2(u,e,n,1,h,b,g);w(u,e,20),u.assignable=1,i=v(u,e,o,l,c,{type:"MemberExpression",object:i,computed:!0,property:a}),s&&(u.flags|=2048);break}case 67174411:{if((u.flags&1024)===1024)return u.flags=(u.flags|1024)^1024,i;let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048);let h=W1(u,e,n);u.assignable=2,i=v(u,e,o,l,c,{type:"CallExpression",callee:i,arguments:h}),s&&(u.flags|=2048);break}case 67108991:{E(u,(e|1073741824|8192)^8192),u.flags|=2048,u.assignable=2,i=ft(u,e,i,o,l,c);break}default:(u.flags&2048)===2048&&f(u,160),u.assignable=2,i=v(u,e,o,l,c,{type:"TaggedTemplateExpression",tag:i,quasi:u.token===67174408?K1(u,e|65536):H1(u,e,u.tokenPos,u.linePos,u.colPos)})}i=W(u,e,i,0,1,o,l,c)}return t===0&&(u.flags&2048)===2048&&(u.flags=(u.flags|2048)^2048,i=v(u,e,o,l,c,{type:"ChainExpression",expression:i})),i}function ft(u,e,i,n,t,o){let l=!1,c;if((u.token===69271571||u.token===67174411)&&(u.flags&2048)===2048&&(l=!0,u.flags=(u.flags|2048)^2048),u.token===69271571){E(u,e|32768);let{tokenPos:s,linePos:h,colPos:b}=u,g=f2(u,e,0,1,s,h,b);w(u,e,20),u.assignable=2,c=v(u,e,n,t,o,{type:"MemberExpression",object:i,computed:!0,optional:!0,property:g})}else if(u.token===67174411){let s=W1(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:"CallExpression",callee:i,arguments:s,optional:!0})}else{(u.token&143360)<1&&f(u,154);let s=z(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:"MemberExpression",object:i,computed:!1,optional:!0,property:s})}return l&&(u.flags|=2048),c}function se(u,e){return(u.token&143360)<1&&u.token!==131&&f(u,154),e&1&&u.token===131?k1(u,e,u.tokenPos,u.linePos,u.colPos):z(u,e,0)}function ct(u,e,i,n,t,o,l){i&&f(u,53),n||f(u,0);let{token:c}=u;E(u,e|32768);let s=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.assignable&2&&f(u,52),u.assignable=2,v(u,e,t,o,l,{type:"UpdateExpression",argument:s,operator:G[c&255],prefix:!0})}function h2(u,e,i,n,t,o,l,c,s,h,b){if((u.token&143360)===143360){switch(u.token){case 209008:return tt(u,e,n,l,s,h,b);case 241773:return nt(u,e,l,t,s,h,b);case 209007:return it(u,e,l,c,t,o,n,s,h,b)}let{token:g,tokenValue:a}=u,A=z(u,e|65536,o);return u.token===10?(c||f(u,0),M1(u,e,g,1),g1(u,e,a,A,n,t,0,s,h,b)):(e&16384&&g===537079928&&f(u,126),g===241739&&(e&1024&&f(u,109),i&24&&f(u,97)),u.assignable=e&1024&&(g&537079808)===537079808?2:1,A)}if((u.token&134217728)===134217728)return a2(u,e);switch(u.token){case 33619995:case 33619996:return ct(u,e,n,c,s,h,b);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return et(u,e,c,s,h,b,l);case 86106:return he(u,e,0,l,s,h,b);case 2162700:return mt(u,e,t?0:1,l,s,h,b);case 69271571:return ht(u,e,t?0:1,l,s,h,b);case 67174411:return kt(u,e,t,1,0,s,h,b);case 86021:case 86022:case 86023:return dt(u,e,s,h,b);case 86113:return gt(u,e);case 65540:return At(u,e,s,h,b);case 133:case 86096:return yt(u,e,l,s,h,b);case 86111:return ot(u,e,s,h,b);case 67174409:return H1(u,e,s,h,b);case 67174408:return K1(u,e);case 86109:return rt(u,e,l,s,h,b);case 134283389:return ge(u,e,s,h,b);case 131:return k1(u,e,s,h,b);case 86108:return st(u,e,n,l,s,h,b);case 8456258:if(e&16)return G1(u,e,1,s,h,b);default:if(_1(e,u.token))return Y1(u,e,s,h,b);f(u,28,G[u.token&255])}}function st(u,e,i,n,t,o,l){let c=z(u,e,0);return u.token===67108877?ae(u,e,c,t,o,l):(i&&f(u,137),c=de(u,e,n,t,o,l),u.assignable=2,W(u,e,c,n,0,t,o,l))}function ae(u,e,i,n,t,o){return(e&2048)===0&&f(u,163),E(u,e),u.token!==143495&&u.tokenValue!=="meta"&&f(u,28,G[u.token&255]),u.assignable=2,v(u,e,n,t,o,{type:"MetaProperty",meta:i,property:z(u,e,0)})}function de(u,e,i,n,t,o){w(u,e|32768,67174411),u.token===14&&f(u,138);let l=Q(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,16),v(u,e,n,t,o,{type:"ImportExpression",source:l})}function ge(u,e,i,n,t){let{tokenRaw:o,tokenValue:l}=u;return E(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:"Literal",value:l,bigint:o.slice(0,-1),raw:o}:{type:"Literal",value:l,bigint:o.slice(0,-1)})}function H1(u,e,i,n,t){u.assignable=2;let{tokenValue:o,tokenRaw:l,tokenPos:c,linePos:s,colPos:h}=u;w(u,e,67174409);let b=[d1(u,e,o,l,c,s,h,!0)];return v(u,e,i,n,t,{type:"TemplateLiteral",expressions:[],quasis:b})}function K1(u,e){e=(e|134217728)^134217728;let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;w(u,e|32768,67174408);let c=[d1(u,e,i,n,t,o,l,!1)],s=[f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)];for(u.token!==1074790415&&f(u,80);(u.token=v0(u,e))!==67174409;){let{tokenValue:h,tokenRaw:b,tokenPos:g,linePos:a,colPos:A}=u;w(u,e|32768,67174408),c.push(d1(u,e,h,b,g,a,A,!1)),s.push(f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),u.token!==1074790415&&f(u,80)}{let{tokenValue:h,tokenRaw:b,tokenPos:g,linePos:a,colPos:A}=u;w(u,e,67174409),c.push(d1(u,e,h,b,g,a,A,!0))}return v(u,e,t,o,l,{type:"TemplateLiteral",expressions:s,quasis:c})}function d1(u,e,i,n,t,o,l,c){let s=v(u,e,t,o,l,{type:"TemplateElement",value:{cooked:i,raw:n},tail:c}),h=c?1:2;return e&2&&(s.start+=1,s.range[0]+=1,s.end-=h,s.range[1]-=h),e&4&&(s.loc.start.column+=1,s.loc.end.column-=h),s}function at(u,e,i,n,t){e=(e|134217728)^134217728,w(u,e|32768,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return u.assignable=1,v(u,e,i,n,t,{type:"SpreadElement",argument:o})}function W1(u,e,i){E(u,e|32768);let n=[];if(u.token===16)return E(u,e),n;for(;u.token!==16&&(u.token===14?n.push(at(u,e,u.tokenPos,u.linePos,u.colPos)):n.push(Q(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos)),!(u.token!==18||(E(u,e|32768),u.token===16))););return w(u,e,16),n}function z(u,e,i){let{tokenValue:n,tokenPos:t,linePos:o,colPos:l}=u;return E(u,e),v(u,e,t,o,l,e&268435456?{type:"Identifier",name:n,pattern:i===1}:{type:"Identifier",name:n})}function a2(u,e){let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;return u.token===134283389?ge(u,e,t,o,l):(E(u,e),u.assignable=2,v(u,e,t,o,l,e&512?{type:"Literal",value:i,raw:n}:{type:"Literal",value:i}))}function dt(u,e,i,n,t){let o=G[u.token&255],l=u.token===86023?null:o==="true";return E(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:"Literal",value:l,raw:o}:{type:"Literal",value:l})}function gt(u,e){let{tokenPos:i,linePos:n,colPos:t}=u;return E(u,e),u.assignable=2,v(u,e,i,n,t,{type:"ThisExpression"})}function T2(u,e,i,n,t,o,l,c,s,h){E(u,e|32768);let b=t?V1(u,e,8457014):0,g=null,a,A=i?j2():void 0;if(u.token===67174411)(o&1)<1&&f(u,37,"Function");else{let B=n&4&&((e&8192)<1||(e&2048)<1)?4:64;Qu(u,e|(e&3072)<<11,u.token),i&&(B&4?pu(u,e,i,u.tokenValue,B):B2(u,e,i,u.tokenValue,B,n),A=o2(A,256),o&&o&2&&_2(u,u.tokenValue)),a=u.token,u.token&143360?g=z(u,e,0):f(u,28,G[u.token&255])}e=(e|32243712)^32243712|67108864|l*2+b<<21|(b?0:1073741824),i&&(A=o2(A,512));let C=be(u,e|8388608,A,0,1),D=a1(u,(e|8192|4096|131072)^143360,i?o2(A,128):A,8,a,i?A.scopeError:void 0);return v(u,e,c,s,h,{type:"FunctionDeclaration",id:g,params:C,body:D,async:l===1,generator:b===1})}function he(u,e,i,n,t,o,l){E(u,e|32768);let c=V1(u,e,8457014),s=i*2+c<<21,h=null,b,g=e&64?j2():void 0;(u.token&176128)>0&&(Qu(u,(e|32243712)^32243712|s,u.token),g&&(g=o2(g,256)),b=u.token,h=z(u,e,0)),e=(e|32243712)^32243712|67108864|s|(c?0:1073741824),g&&(g=o2(g,512));let a=be(u,e|8388608,g,n,1),A=a1(u,e&-134377473,g&&o2(g,128),0,b,void 0);return u.assignable=2,v(u,e,t,o,l,{type:"FunctionExpression",id:h,params:a,body:A,async:i===1,generator:c===1})}function ht(u,e,i,n,t,o,l){let c=k2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function k2(u,e,i,n,t,o,l,c,s,h,b){E(u,e|32768);let g=[],a=0;for(e=(e|134217728)^134217728;u.token!==20;)if(U(u,e|32768,18))g.push(null);else{let C,{token:D,tokenPos:B,linePos:O,colPos:j,tokenValue:e2}=u;if(D&143360)if(C=h2(u,e,l,0,1,0,t,1,B,O,j),u.token===1077936157){u.assignable&2&&f(u,24),E(u,e|32768),i&&q2(u,e,i,e2,l,c);let R=Q(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);C=v(u,e,B,O,j,o?{type:"AssignmentPattern",left:C,right:R}:{type:"AssignmentExpression",operator:"=",left:C,right:R}),a|=u.destructible&256?256:0|u.destructible&128?128:0}else u.token===18||u.token===20?(u.assignable&2?a|=16:i&&q2(u,e,i,e2,l,c),a|=u.destructible&256?256:0|u.destructible&128?128:0):(a|=l&1?32:(l&2)<1?16:0,C=W(u,e,C,t,0,B,O,j),u.token!==18&&u.token!==20?(u.token!==1077936157&&(a|=16),C=x(u,e,t,o,B,O,j,C)):u.token!==1077936157&&(a|=u.assignable&2?16:32));else D&2097152?(C=u.token===2162700?r2(u,e,i,0,t,o,l,c,B,O,j):k2(u,e,i,0,t,o,l,c,B,O,j),a|=u.destructible,u.assignable=u.destructible&16?2:1,u.token===18||u.token===20?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(C=W(u,e,C,t,0,B,O,j),a=u.assignable&2?16:0,u.token!==18&&u.token!==20?C=x(u,e,t,o,B,O,j,C):u.token!==1077936157&&(a|=u.assignable&2?16:32))):D===14?(C=W2(u,e,i,20,l,c,0,t,o,B,O,j),a|=u.destructible,u.token!==18&&u.token!==20&&f(u,28,G[u.token&255])):(C=b2(u,e,1,0,1,B,O,j),u.token!==18&&u.token!==20?(C=x(u,e,t,o,B,O,j,C),(l&3)<1&&D===67174411&&(a|=16)):u.assignable&2?a|=16:D===67174411&&(a|=u.assignable&1&&l&3?32:16));if(g.push(C),U(u,e|32768,18)){if(u.token===20)break}else break}w(u,e,20);let A=v(u,e,s,h,b,{type:o?"ArrayPattern":"ArrayExpression",elements:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,b,A):(u.destructible=a,A)}function me(u,e,i,n,t,o,l,c,s){u.token!==1077936157&&f(u,24),E(u,e|32768),i&16&&f(u,24),t||v2(u,s);let{tokenPos:h,linePos:b,colPos:g}=u,a=Q(u,e,1,1,n,h,b,g);return u.destructible=(i|64|8)^72|(u.destructible&128?128:0)|(u.destructible&256?256:0),v(u,e,o,l,c,t?{type:"AssignmentPattern",left:s,right:a}:{type:"AssignmentExpression",left:s,operator:"=",right:a})}function W2(u,e,i,n,t,o,l,c,s,h,b,g){E(u,e|32768);let a=null,A=0,{token:C,tokenValue:D,tokenPos:B,linePos:O,colPos:j}=u;if(C&143360)u.assignable=1,a=h2(u,e,t,0,1,0,c,1,B,O,j),C=u.token,a=W(u,e,a,c,0,B,O,j),u.token!==18&&u.token!==n&&(u.assignable&2&&u.token===1077936157&&f(u,68),A|=16,a=x(u,e,c,s,B,O,j,a)),u.assignable&2?A|=16:C===n||C===18?i&&q2(u,e,i,D,t,o):A|=32,A|=u.destructible&128?128:0;else if(C===n)f(u,39);else if(C&2097152)a=u.token===2162700?r2(u,e,i,1,c,s,t,o,B,O,j):k2(u,e,i,1,c,s,t,o,B,O,j),C=u.token,C!==1077936157&&C!==n&&C!==18?(u.destructible&8&&f(u,68),a=W(u,e,a,c,0,B,O,j),A|=u.assignable&2?16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(A|=16),a=x(u,e,c,s,B,O,j,a)):((u.token&8454144)===8454144&&(a=F2(u,e,1,B,O,j,4,C,a)),U(u,e|32768,22)&&(a=M2(u,e,a,B,O,j)),A|=u.assignable&2?16:32)):A|=n===1074790415&&C!==1077936157?16:u.destructible;else{A|=32,a=b2(u,e,1,c,1,u.tokenPos,u.linePos,u.colPos);let{token:e2,tokenPos:R,linePos:$,colPos:y}=u;return e2===1077936157&&e2!==n&&e2!==18?(u.assignable&2&&f(u,24),a=x(u,e,c,s,R,$,y,a),A|=16):(e2===18?A|=16:e2!==n&&(a=x(u,e,c,s,R,$,y,a)),A|=u.assignable&1?32:16),u.destructible=A,u.token!==n&&u.token!==18&&f(u,155),v(u,e,h,b,g,{type:s?"RestElement":"SpreadElement",argument:a})}if(u.token!==n)if(t&1&&(A|=l?16:32),U(u,e|32768,1077936157)){A&16&&f(u,24),v2(u,a);let e2=Q(u,e,1,1,c,u.tokenPos,u.linePos,u.colPos);a=v(u,e,B,O,j,s?{type:"AssignmentPattern",left:a,right:e2}:{type:"AssignmentExpression",left:a,operator:"=",right:e2}),A=16}else A|=16;return u.destructible=A,v(u,e,h,b,g,{type:s?"RestElement":"SpreadElement",argument:a})}function A2(u,e,i,n,t,o,l){let c=(i&64)<1?31981568:14680064;e=(e|c)^c|(i&88)<<18|100925440;let s=e&64?o2(j2(),512):void 0,h=bt(u,e|8388608,s,i,1,n);s&&(s=o2(s,128));let b=a1(u,e&-134230017,s,0,void 0,void 0);return v(u,e,t,o,l,{type:"FunctionExpression",params:h,body:b,async:(i&16)>0,generator:(i&8)>0,id:null})}function mt(u,e,i,n,t,o,l){let c=r2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function r2(u,e,i,n,t,o,l,c,s,h,b){E(u,e);let g=[],a=0,A=0;for(e=(e|134217728)^134217728;u.token!==1074790415;){let{token:D,tokenValue:B,linePos:O,colPos:j,tokenPos:e2}=u;if(D===14)g.push(W2(u,e,i,1074790415,l,c,0,t,o,e2,O,j));else{let R=0,$=null,y,y2=u.token;if(u.token&143360||u.token===121)if($=z(u,e,0),u.token===18||u.token===1074790415||u.token===1077936157)if(R|=4,e&1024&&(D&537079808)===537079808?a|=16:o1(u,e,l,D,0),i&&q2(u,e,i,B,l,c),U(u,e|32768,1077936157)){a|=8;let N=Q(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);a|=u.destructible&256?256:0|u.destructible&128?128:0,y=v(u,e,e2,O,j,{type:"AssignmentPattern",left:e&-2147483648?Object.assign({},$):$,right:N})}else a|=(D===209008?128:0)|(D===121?16:0),y=e&-2147483648?Object.assign({},$):$;else if(U(u,e|32768,21)){let{tokenPos:N,linePos:M,colPos:_}=u;if(B==="__proto__"&&A++,u.token&143360){let U2=u.token,$2=u.tokenValue;a|=y2===121?16:0,y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;y=W(u,e,y,t,0,N,M,_),u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?(a|=u.destructible&128?128:0,u.assignable&2?a|=16:i&&(U2&143360)===143360&&q2(u,e,i,$2,l,c)):a|=u.assignable&1?32:16:(u.token&4194304)===4194304?(u.assignable&2?a|=16:E2!==1077936157?a|=32:i&&q2(u,e,i,$2,l,c),y=x(u,e,t,o,N,M,_,y)):(a|=16,(u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,E2,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?y=s1(u,e,t,o,N,M,_,y):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,t,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,u.token!==18&&D!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===69271571?(a|=16,D===209007&&(R|=16),R|=(D===12402?256:D===12403?512:1)|2,$=Y2(u,e,t),a|=u.assignable,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token&143360?(a|=16,D===121&&f(u,92),D===209007&&(u.flags&1&&f(u,128),R|=16),$=z(u,e,0),R|=D===12402?256:D===12403?512:1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===67174411?(a|=16,R|=1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===8457014?(a|=16,D===12402||D===12403?f(u,40):D===143483&&f(u,92),E(u,e),R|=9|(D===209007?16:0),u.token&143360?$=z(u,e,0):(u.token&134217728)===134217728?$=a2(u,e):u.token===69271571?(R|=2,$=Y2(u,e,t),a|=u.assignable):f(u,28,G[u.token&255]),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):(u.token&134217728)===134217728?(D===209007&&(R|=16),R|=D===12402?256:D===12403?512:1,a|=16,$=a2(u,e),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,129);else if((u.token&134217728)===134217728)if($=a2(u,e),u.token===21){w(u,e|32768,21);let{tokenPos:N,linePos:M,colPos:_}=u;if(B==="__proto__"&&A++,u.token&143360){y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:U2,tokenValue:$2}=u;y=W(u,e,y,t,0,N,M,_),u.token===18||u.token===1074790415?U2===1077936157||U2===1074790415||U2===18?u.assignable&2?a|=16:i&&q2(u,e,i,$2,l,c):a|=u.assignable&1?32:16:u.token===1077936157?(u.assignable&2&&(a|=16),y=x(u,e,t,o,N,M,_,y)):(a|=16,y=x(u,e,t,o,N,M,_,y))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(u.destructible&8)!==8&&(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?y=s1(u,e,t,o,N,M,_,y):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===67174411?(R|=1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos),a=u.assignable|16):f(u,130);else if(u.token===69271571)if($=Y2(u,e,t),a|=u.destructible&256?256:0,R|=2,u.token===21){E(u,e|32768);let{tokenPos:N,linePos:M,colPos:_,tokenValue:U2,token:$2}=u;if(u.token&143360){y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;y=W(u,e,y,t,0,N,M,_),(u.token&4194304)===4194304?(a|=u.assignable&2?16:E2===1077936157?0:32,y=s1(u,e,t,o,N,M,_,y)):u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?u.assignable&2?a|=16:i&&($2&143360)===143360&&q2(u,e,i,U2,l,c):a|=u.assignable&1?32:16:(a|=16,y=x(u,e,t,o,N,M,_,y))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):a&8?f(u,59):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?a|16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(a|=16),y=s1(u,e,t,o,N,M,_,y)):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===67174411?(R|=1,y=A2(u,e,R,t,u.tokenPos,O,j),a=16):f(u,41);else if(D===8457014)if(w(u,e|32768,8457014),R|=8,u.token&143360){let{token:N,line:M,index:_}=u;$=z(u,e,0),R|=1,u.token===67174411?(a|=16,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):S(_,M,_,N===209007?43:N===12402||u.token===12403?42:44,G[N&255])}else(u.token&134217728)===134217728?(a|=16,$=a2(u,e),R|=1,y=A2(u,e,R,t,e2,O,j)):u.token===69271571?(a|=16,R|=3,$=Y2(u,e,t),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,122);else f(u,28,G[D&255]);a|=u.destructible&128?128:0,u.destructible=a,g.push(v(u,e,e2,O,j,{type:"Property",key:$,value:y,kind:R&768?R&512?"set":"get":"init",computed:(R&2)>0,method:(R&1)>0,shorthand:(R&4)>0}))}if(a|=u.destructible,u.token!==18)break;E(u,e)}w(u,e,1074790415),A>1&&(a|=64);let C=v(u,e,s,h,b,{type:o?"ObjectPattern":"ObjectExpression",properties:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,b,C):(u.destructible=a,C)}function bt(u,e,i,n,t,o){w(u,e,67174411);let l=[];if(u.flags=(u.flags|128)^128,u.token===16)return n&512&&f(u,35,"Setter","one",""),E(u,e),l;n&256&&f(u,35,"Getter","no","s"),n&512&&u.token===14&&f(u,36),e=(e|134217728)^134217728;let c=0,s=0;for(;u.token!==18;){let h=null,{tokenPos:b,linePos:g,colPos:a}=u;if(u.token&143360?((e&1024)<1&&((u.token&36864)===36864&&(u.flags|=256),(u.token&537079808)===537079808&&(u.flags|=512)),h=Q1(u,e,i,n|1,0,b,g,a)):(u.token===2162700?h=r2(u,e,i,1,o,1,t,0,b,g,a):u.token===69271571?h=k2(u,e,i,1,o,1,t,0,b,g,a):u.token===14&&(h=W2(u,e,i,16,t,0,0,o,1,b,g,a)),s=1,u.destructible&48&&f(u,47)),u.token===1077936157){E(u,e|32768),s=1;let A=Q(u,e,1,1,0,u.tokenPos,u.linePos,u.colPos);h=v(u,e,b,g,a,{type:"AssignmentPattern",left:h,right:A})}if(c++,l.push(h),!U(u,e,18)||u.token===16)break}return n&512&&c!==1&&f(u,35,"Setter","one",""),i&&i.scopeError!==void 0&&P(i.scopeError),s&&(u.flags|=128),w(u,e,16),l}function Y2(u,e,i){E(u,e|32768);let n=Q(u,(e|134217728)^134217728,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,20),n}function kt(u,e,i,n,t,o,l,c){u.flags=(u.flags|128)^128;let{tokenPos:s,linePos:h,colPos:b}=u;E(u,e|32768|1073741824);let g=e&64?o2(j2(),1024):void 0;if(e=(e|134217728)^134217728,U(u,e,16))return h1(u,e,g,[],i,0,o,l,c);let a=0;u.destructible&=-385;let A,C=[],D=0,B=0,{tokenPos:O,linePos:j,colPos:e2}=u;for(u.assignable=1;u.token!==16;){let{token:R,tokenPos:$,linePos:y,colPos:y2}=u;if(R&143360)g&&B2(u,e,g,u.tokenValue,1,0),A=h2(u,e,n,0,1,0,1,1,$,y,y2),u.token===16||u.token===18?u.assignable&2?(a|=16,B=1):((R&537079808)===537079808||(R&36864)===36864)&&(B=1):(u.token===1077936157?B=1:a|=16,A=W(u,e,A,1,0,$,y,y2),u.token!==16&&u.token!==18&&(A=x(u,e,1,0,$,y,y2,A)));else if((R&2097152)===2097152)A=R===2162700?r2(u,e|1073741824,g,0,1,0,n,t,$,y,y2):k2(u,e|1073741824,g,0,1,0,n,t,$,y,y2),a|=u.destructible,B=1,u.assignable=2,u.token!==16&&u.token!==18&&(a&8&&f(u,118),A=W(u,e,A,0,0,$,y,y2),a|=16,u.token!==16&&u.token!==18&&(A=x(u,e,0,0,$,y,y2,A)));else if(R===14){A=W2(u,e,g,16,n,t,0,1,0,$,y,y2),u.destructible&16&&f(u,71),B=1,D&&(u.token===16||u.token===18)&&C.push(A),a|=8;break}else{if(a|=16,A=Q(u,e,1,0,1,$,y,y2),D&&(u.token===16||u.token===18)&&C.push(A),u.token===18&&(D||(D=1,C=[A])),D){for(;U(u,e|32768,18);)C.push(Q(u,e,1,0,1,u.tokenPos,u.linePos,u.colPos));u.assignable=2,A=v(u,e,O,j,e2,{type:"SequenceExpression",expressions:C})}return w(u,e,16),u.destructible=a,A}if(D&&(u.token===16||u.token===18)&&C.push(A),!U(u,e|32768,18))break;if(D||(D=1,C=[A]),u.token===16){a|=8;break}}return D&&(u.assignable=2,A=v(u,e,O,j,e2,{type:"SequenceExpression",expressions:C})),w(u,e,16),a&16&&a&8&&f(u,145),a|=u.destructible&256?256:0|u.destructible&128?128:0,u.token===10?(a&48&&f(u,46),e&4196352&&a&128&&f(u,29),e&2098176&&a&256&&f(u,30),B&&(u.flags|=128),h1(u,e,g,D?C:[A],i,0,o,l,c)):(a&8&&f(u,139),u.destructible=(u.destructible|256)^256|a,e&128?v(u,e,s,h,b,{type:"ParenthesizedExpression",expression:A}):A)}function Y1(u,e,i,n,t){let{tokenValue:o}=u,l=z(u,e,0);if(u.assignable=1,u.token===10){let c;return e&64&&(c=f1(u,e,o)),u.flags=(u.flags|128)^128,u1(u,e,c,[l],0,i,n,t)}return l}function g1(u,e,i,n,t,o,l,c,s,h){o||f(u,54),t&&f(u,48),u.flags&=-129;let b=e&64?f1(u,e,i):void 0;return u1(u,e,b,[n],l,c,s,h)}function h1(u,e,i,n,t,o,l,c,s){t||f(u,54);for(let h=0;h0&&u.tokenValue==="constructor"&&f(u,106),u.token===1074790415&&f(u,105),U(u,e,1074790417)){a>0&&f(u,116);continue}b.push(ve(u,e,n,i,t,g,0,l,u.tokenPos,u.linePos,u.colPos))}return w(u,o&8?e|32768:e,1074790415),v(u,e,c,s,h,{type:"ClassBody",body:b})}function ve(u,e,i,n,t,o,l,c,s,h,b){let g=l?32:0,a=null,{token:A,tokenPos:C,linePos:D,colPos:B}=u;if(A&176128)switch(a=z(u,e,0),A){case 36972:if(!l&&u.token!==67174411)return ve(u,e,i,n,t,o,1,c,s,h,b);break;case 209007:if(u.token!==67174411&&(u.flags&1)<1){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=16|(V1(u,e,8457014)?8:0)}break;case 12402:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=256}break;case 12403:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=512}break}else A===69271571?(g|=2,a=Y2(u,n,c)):(A&134217728)===134217728?a=a2(u,e):A===8457014?(g|=8,E(u,e)):e&1&&u.token===131?(g|=4096,a=k1(u,e|16384,C,D,B)):e&1&&(u.token&1073741824)===1073741824?g|=128:A===122?(a=z(u,e,0),u.token!==67174411&&f(u,28,G[u.token&255])):f(u,28,G[u.token&255]);if(g&792&&(u.token&143360?a=z(u,e,0):(u.token&134217728)===134217728?a=a2(u,e):u.token===69271571?(g|=2,a=Y2(u,e,0)):u.token===122?a=z(u,e,0):e&1&&u.token===131?(g|=4096,a=k1(u,e,C,D,B)):f(u,131)),(g&2)<1&&(u.tokenValue==="constructor"?((u.token&1073741824)===1073741824?f(u,125):(g&32)<1&&u.token===67174411&&(g&920?f(u,50,"accessor"):(e&524288)<1&&(u.flags&32?f(u,51):u.flags|=32)),g|=64):(g&4096)<1&&g&824&&u.tokenValue==="prototype"&&f(u,49)),e&1&&u.token!==67174411)return r1(u,e,a,g,o,C,D,B);let O=A2(u,e,g,c,u.tokenPos,u.linePos,u.colPos);return v(u,e,s,h,b,e&1?{type:"MethodDefinition",kind:(g&32)<1&&g&64?"constructor":g&256?"get":g&512?"set":"method",static:(g&32)>0,computed:(g&2)>0,key:a,decorators:o,value:O}:{type:"MethodDefinition",kind:(g&32)<1&&g&64?"constructor":g&256?"get":g&512?"set":"method",static:(g&32)>0,computed:(g&2)>0,key:a,value:O})}function k1(u,e,i,n,t){E(u,e);let{tokenValue:o}=u;return o==="constructor"&&f(u,124),E(u,e),v(u,e,i,n,t,{type:"PrivateIdentifier",name:o})}function r1(u,e,i,n,t,o,l,c){let s=null;if(n&8&&f(u,0),u.token===1077936157){E(u,e|32768);let{tokenPos:h,linePos:b,colPos:g}=u;u.token===537079928&&f(u,115),s=h2(u,e|16384,2,0,1,0,0,1,h,b,g),(u.token&1073741824)!==1073741824&&(s=W(u,e|16384,s,0,0,h,b,g),s=x(u,e|16384,0,0,h,b,g,s),u.token===18&&(s=S2(u,e,0,o,l,c,s)))}return v(u,e,o,l,c,{type:"PropertyDefinition",key:i,value:s,static:(n&32)>0,computed:(n&2)>0,decorators:t})}function Ae(u,e,i,n,t,o,l,c){if(u.token&143360)return Q1(u,e,i,n,t,o,l,c);(u.token&2097152)!==2097152&&f(u,28,G[u.token&255]);let s=u.token===69271571?k2(u,e,i,1,0,1,n,t,o,l,c):r2(u,e,i,1,0,1,n,t,o,l,c);return u.destructible&16&&f(u,47),u.destructible&32&&f(u,47),s}function Q1(u,e,i,n,t,o,l,c){let{tokenValue:s,token:h}=u;return e&1024&&((h&537079808)===537079808?f(u,115):(h&36864)===36864&&f(u,114)),(h&20480)===20480&&f(u,99),e&2099200&&h===241773&&f(u,30),h===241739&&n&24&&f(u,97),e&4196352&&h===209008&&f(u,95),E(u,e),i&&q2(u,e,i,s,n,t),v(u,e,o,l,c,{type:"Identifier",name:s})}function G1(u,e,i,n,t,o){if(E(u,e),u.token===8456259)return v(u,e,n,t,o,{type:"JSXFragment",openingFragment:Et(u,e,n,t,o),children:ye(u,e),closingFragment:Ct(u,e,i,u.tokenPos,u.linePos,u.colPos)});let l=null,c=[],s=Bt(u,e,i,n,t,o);if(!s.selfClosing){c=ye(u,e),l=Dt(u,e,i,u.tokenPos,u.linePos,u.colPos);let h=l1(l.name);l1(s.name)!==h&&f(u,149,h)}return v(u,e,n,t,o,{type:"JSXElement",children:c,openingElement:s,closingElement:l})}function Et(u,e,i,n,t){return V2(u,e),v(u,e,i,n,t,{type:"JSXOpeningFragment"})}function Dt(u,e,i,n,t,o){w(u,e,25);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos);return i?w(u,e,8456259):u.token=V2(u,e),v(u,e,n,t,o,{type:"JSXClosingElement",name:l})}function Ct(u,e,i,n,t,o){return w(u,e,25),w(u,e,8456259),v(u,e,n,t,o,{type:"JSXClosingFragment"})}function ye(u,e){let i=[];for(;u.token!==25;)u.index=u.tokenPos=u.startPos,u.column=u.colPos=u.startColumn,u.line=u.linePos=u.startLine,V2(u,e),i.push(wt(u,e,u.tokenPos,u.linePos,u.colPos));return i}function wt(u,e,i,n,t){if(u.token===138)return qt(u,e,i,n,t);if(u.token===2162700)return De(u,e,0,0,i,n,t);if(u.token===8456258)return G1(u,e,0,i,n,t);f(u,0)}function qt(u,e,i,n,t){V2(u,e);let o={type:"JSXText",value:u.tokenValue};return e&512&&(o.raw=u.tokenRaw),v(u,e,i,n,t,o)}function Bt(u,e,i,n,t,o){(u.token&143360)!==143360&&(u.token&4096)!==4096&&f(u,0);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos),c=Ft(u,e),s=u.token===8457016;return u.token===8456259?V2(u,e):(w(u,e,8457016),i?w(u,e,8456259):V2(u,e)),v(u,e,n,t,o,{type:"JSXOpeningElement",name:l,attributes:c,selfClosing:s})}function Pe(u,e,i,n,t){N1(u);let o=v1(u,e,i,n,t);if(u.token===21)return Ee(u,e,o,i,n,t);for(;U(u,e,67108877);)N1(u),o=St(u,e,o,i,n,t);return o}function St(u,e,i,n,t,o){let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:"JSXMemberExpression",object:i,property:l})}function Ft(u,e){let i=[];for(;u.token!==8457016&&u.token!==8456259&&u.token!==1048576;)i.push(Lt(u,e,u.tokenPos,u.linePos,u.colPos));return i}function Tt(u,e,i,n,t){E(u,e),w(u,e,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:"JSXSpreadAttribute",argument:o})}function Lt(u,e,i,n,t){if(u.token===2162700)return Tt(u,e,i,n,t);N1(u);let o=null,l=v1(u,e,i,n,t);if(u.token===21&&(l=Ee(u,e,l,i,n,t)),u.token===1077936157){let c=w0(u,e),{tokenPos:s,linePos:h,colPos:b}=u;switch(c){case 134283267:o=a2(u,e);break;case 8456258:o=G1(u,e,1,s,h,b);break;case 2162700:o=De(u,e,1,1,s,h,b);break;default:f(u,148)}}return v(u,e,i,n,t,{type:"JSXAttribute",value:o,name:l})}function Ee(u,e,i,n,t,o){w(u,e,21);let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:"JSXNamespacedName",namespace:i,name:l})}function De(u,e,i,n,t,o,l){E(u,e|32768);let{tokenPos:c,linePos:s,colPos:h}=u;if(u.token===14)return Ot(u,e,c,s,h);let b=null;return u.token===1074790415?(n&&f(u,151),b=It(u,e,u.startPos,u.startLine,u.startColumn)):b=Q(u,e,1,0,0,c,s,h),i?w(u,e,1074790415):V2(u,e),v(u,e,t,o,l,{type:"JSXExpressionContainer",expression:b})}function Ot(u,e,i,n,t){w(u,e,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:"JSXSpreadChild",expression:o})}function It(u,e,i,n,t){return u.startPos=u.tokenPos,u.startLine=u.linePos,u.startColumn=u.colPos,v(u,e,i,n,t,{type:"JSXEmptyExpression"})}function v1(u,e,i,n,t){let{tokenValue:o}=u;return E(u,e),v(u,e,i,n,t,{type:"JSXIdentifier",name:o})}var Rt=Object.freeze({__proto__:null}),Nt="4.2.1",Vt=Nt;function jt(u,e){return U1(u,e,0)}function _t(u,e){return U1(u,e,3072)}function Mt(u,e){return U1(u,e,0)}d.ESTree=Rt,d.parse=Mt,d.parseModule=_t,d.parseScript=jt,d.version=Vt}});n2();var h3=pn(),m3=$4(),b3=o3(),k3=d3(),r3={module:!0,next:!0,ranges:!0,webcompat:!0,loc:!0,raw:!0,directives:!0,globalReturn:!0,impliedStrict:!1,preserveParens:!1,lexical:!1,identifierPattern:!1,jsx:!0,specDeviation:!0,uniqueKeyInPattern:!1};function Gn(d,m){let{parse:k}=g3(),f=[],P=[],S=k(d,Object.assign(Object.assign({},r3),{},{module:m,onComment:f,onToken:P}));return S.comments=f,S.tokens=P,S}function v3(d){let{message:m,line:k,column:f}=d,P=(m.match(/^\[(?\d+):(?\d+)]: (?.*)$/)||{}).groups;return P&&(m=P.message,typeof k!="number"&&(k=Number(P.line),f=Number(P.column))),typeof k!="number"?d:h3(m,{start:{line:k,column:f}})}function A3(d,m){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:f,error:P}=m3(()=>Gn(d,!0),()=>Gn(d,!1));if(!f)throw v3(P);return k.originalText=d,k3(f,k)}k0.exports={parsers:{meriyah:b3(A3)}}});return y3();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-postcss.js b/node_modules/prettier/parser-postcss.js new file mode 100644 index 0000000..dec27a8 --- /dev/null +++ b/node_modules/prettier/parser-postcss.js @@ -0,0 +1,76 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.postcss=e()}})(function(){"use strict";var V=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var ee=V((pp,Ut)=>{var er=function(e){return e&&e.Math==Math&&e};Ut.exports=er(typeof globalThis=="object"&&globalThis)||er(typeof window=="object"&&window)||er(typeof self=="object"&&self)||er(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var ke=V((hp,Wt)=>{Wt.exports=function(e){try{return!!e()}catch{return!0}}});var Te=V((dp,$t)=>{var fa=ke();$t.exports=!fa(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Sr=V((vp,Vt)=>{var pa=ke();Vt.exports=!pa(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var tr=V((mp,Gt)=>{var ha=Sr(),rr=Function.prototype.call;Gt.exports=ha?rr.bind(rr):function(){return rr.apply(rr,arguments)}});var Qt=V(Kt=>{"use strict";var Ht={}.propertyIsEnumerable,Jt=Object.getOwnPropertyDescriptor,da=Jt&&!Ht.call({1:2},1);Kt.f=da?function(n){var i=Jt(this,n);return!!i&&i.enumerable}:Ht});var Or=V((yp,Yt)=>{Yt.exports=function(e,n){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:n}}});var de=V((wp,en)=>{var Xt=Sr(),Zt=Function.prototype,va=Zt.bind,Tr=Zt.call,ma=Xt&&va.bind(Tr,Tr);en.exports=Xt?function(e){return e&&ma(e)}:function(e){return e&&function(){return Tr.apply(e,arguments)}}});var nn=V((_p,tn)=>{var rn=de(),ga=rn({}.toString),ya=rn("".slice);tn.exports=function(e){return ya(ga(e),8,-1)}});var on=V((bp,sn)=>{var wa=ee(),_a=de(),ba=ke(),xa=nn(),Er=wa.Object,ka=_a("".split);sn.exports=ba(function(){return!Er("z").propertyIsEnumerable(0)})?function(e){return xa(e)=="String"?ka(e,""):Er(e)}:Er});var qr=V((xp,an)=>{var Sa=ee(),Oa=Sa.TypeError;an.exports=function(e){if(e==null)throw Oa("Can't call method on "+e);return e}});var nr=V((kp,un)=>{var Ta=on(),Ea=qr();un.exports=function(e){return Ta(Ea(e))}});var ve=V((Sp,cn)=>{cn.exports=function(e){return typeof e=="function"}});var Me=V((Op,ln)=>{var qa=ve();ln.exports=function(e){return typeof e=="object"?e!==null:qa(e)}});var ir=V((Tp,fn)=>{var Ar=ee(),Aa=ve(),Pa=function(e){return Aa(e)?e:void 0};fn.exports=function(e,n){return arguments.length<2?Pa(Ar[e]):Ar[e]&&Ar[e][n]}});var hn=V((Ep,pn)=>{var Ra=de();pn.exports=Ra({}.isPrototypeOf)});var vn=V((qp,dn)=>{var Ia=ir();dn.exports=Ia("navigator","userAgent")||""});var xn=V((Ap,bn)=>{var _n=ee(),Pr=vn(),mn=_n.process,gn=_n.Deno,yn=mn&&mn.versions||gn&&gn.version,wn=yn&&yn.v8,he,sr;wn&&(he=wn.split("."),sr=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!sr&&Pr&&(he=Pr.match(/Edge\/(\d+)/),(!he||he[1]>=74)&&(he=Pr.match(/Chrome\/(\d+)/),he&&(sr=+he[1])));bn.exports=sr});var Rr=V((Pp,Sn)=>{var kn=xn(),Ca=ke();Sn.exports=!!Object.getOwnPropertySymbols&&!Ca(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&kn&&kn<41})});var Ir=V((Rp,On)=>{var Na=Rr();On.exports=Na&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Cr=V((Ip,Tn)=>{var ja=ee(),Ma=ir(),Da=ve(),La=hn(),za=Ir(),Ba=ja.Object;Tn.exports=za?function(e){return typeof e=="symbol"}:function(e){var n=Ma("Symbol");return Da(n)&&La(n.prototype,Ba(e))}});var qn=V((Cp,En)=>{var Fa=ee(),Ua=Fa.String;En.exports=function(e){try{return Ua(e)}catch{return"Object"}}});var Pn=V((Np,An)=>{var Wa=ee(),$a=ve(),Va=qn(),Ga=Wa.TypeError;An.exports=function(e){if($a(e))return e;throw Ga(Va(e)+" is not a function")}});var In=V((jp,Rn)=>{var Ha=Pn();Rn.exports=function(e,n){var i=e[n];return i==null?void 0:Ha(i)}});var Nn=V((Mp,Cn)=>{var Ja=ee(),Nr=tr(),jr=ve(),Mr=Me(),Ka=Ja.TypeError;Cn.exports=function(e,n){var i,a;if(n==="string"&&jr(i=e.toString)&&!Mr(a=Nr(i,e))||jr(i=e.valueOf)&&!Mr(a=Nr(i,e))||n!=="string"&&jr(i=e.toString)&&!Mr(a=Nr(i,e)))return a;throw Ka("Can't convert object to primitive value")}});var Mn=V((Dp,jn)=>{jn.exports=!1});var or=V((Lp,Ln)=>{var Dn=ee(),Qa=Object.defineProperty;Ln.exports=function(e,n){try{Qa(Dn,e,{value:n,configurable:!0,writable:!0})}catch{Dn[e]=n}return n}});var ar=V((zp,Bn)=>{var Ya=ee(),Xa=or(),zn="__core-js_shared__",Za=Ya[zn]||Xa(zn,{});Bn.exports=Za});var Dr=V((Bp,Un)=>{var eu=Mn(),Fn=ar();(Un.exports=function(e,n){return Fn[e]||(Fn[e]=n!==void 0?n:{})})("versions",[]).push({version:"3.22.2",mode:eu?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var $n=V((Fp,Wn)=>{var ru=ee(),tu=qr(),nu=ru.Object;Wn.exports=function(e){return nu(tu(e))}});var Se=V((Up,Vn)=>{var iu=de(),su=$n(),ou=iu({}.hasOwnProperty);Vn.exports=Object.hasOwn||function(n,i){return ou(su(n),i)}});var Lr=V((Wp,Gn)=>{var au=de(),uu=0,cu=Math.random(),lu=au(1 .toString);Gn.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+lu(++uu+cu,36)}});var Xn=V(($p,Yn)=>{var fu=ee(),pu=Dr(),Hn=Se(),hu=Lr(),Jn=Rr(),Qn=Ir(),De=pu("wks"),Ee=fu.Symbol,Kn=Ee&&Ee.for,du=Qn?Ee:Ee&&Ee.withoutSetter||hu;Yn.exports=function(e){if(!Hn(De,e)||!(Jn||typeof De[e]=="string")){var n="Symbol."+e;Jn&&Hn(Ee,e)?De[e]=Ee[e]:Qn&&Kn?De[e]=Kn(n):De[e]=du(n)}return De[e]}});var ti=V((Vp,ri)=>{var vu=ee(),mu=tr(),Zn=Me(),ei=Cr(),gu=In(),yu=Nn(),wu=Xn(),_u=vu.TypeError,bu=wu("toPrimitive");ri.exports=function(e,n){if(!Zn(e)||ei(e))return e;var i=gu(e,bu),a;if(i){if(n===void 0&&(n="default"),a=mu(i,e,n),!Zn(a)||ei(a))return a;throw _u("Can't convert object to primitive value")}return n===void 0&&(n="number"),yu(e,n)}});var zr=V((Gp,ni)=>{var xu=ti(),ku=Cr();ni.exports=function(e){var n=xu(e,"string");return ku(n)?n:n+""}});var oi=V((Hp,si)=>{var Su=ee(),ii=Me(),Br=Su.document,Ou=ii(Br)&&ii(Br.createElement);si.exports=function(e){return Ou?Br.createElement(e):{}}});var Fr=V((Jp,ai)=>{var Tu=Te(),Eu=ke(),qu=oi();ai.exports=!Tu&&!Eu(function(){return Object.defineProperty(qu("div"),"a",{get:function(){return 7}}).a!=7})});var Ur=V(ci=>{var Au=Te(),Pu=tr(),Ru=Qt(),Iu=Or(),Cu=nr(),Nu=zr(),ju=Se(),Mu=Fr(),ui=Object.getOwnPropertyDescriptor;ci.f=Au?ui:function(n,i){if(n=Cu(n),i=Nu(i),Mu)try{return ui(n,i)}catch{}if(ju(n,i))return Iu(!Pu(Ru.f,n,i),n[i])}});var fi=V((Qp,li)=>{var Du=Te(),Lu=ke();li.exports=Du&&Lu(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Wr=V((Yp,hi)=>{var pi=ee(),zu=Me(),Bu=pi.String,Fu=pi.TypeError;hi.exports=function(e){if(zu(e))return e;throw Fu(Bu(e)+" is not an object")}});var Jr=V(vi=>{var Uu=ee(),Wu=Te(),$u=Fr(),Vu=fi(),ur=Wr(),di=zr(),Gu=Uu.TypeError,$r=Object.defineProperty,Hu=Object.getOwnPropertyDescriptor,Vr="enumerable",Gr="configurable",Hr="writable";vi.f=Wu?Vu?function(n,i,a){if(ur(n),i=di(i),ur(a),typeof n=="function"&&i==="prototype"&&"value"in a&&Hr in a&&!a[Hr]){var o=Hu(n,i);o&&o[Hr]&&(n[i]=a.value,a={configurable:Gr in a?a[Gr]:o[Gr],enumerable:Vr in a?a[Vr]:o[Vr],writable:!1})}return $r(n,i,a)}:$r:function(n,i,a){if(ur(n),i=di(i),ur(a),$u)try{return $r(n,i,a)}catch{}if("get"in a||"set"in a)throw Gu("Accessors not supported");return"value"in a&&(n[i]=a.value),n}});var cr=V((Zp,mi)=>{var Ju=Te(),Ku=Jr(),Qu=Or();mi.exports=Ju?function(e,n,i){return Ku.f(e,n,Qu(1,i))}:function(e,n,i){return e[n]=i,e}});var Qr=V((eh,gi)=>{var Yu=de(),Xu=ve(),Kr=ar(),Zu=Yu(Function.toString);Xu(Kr.inspectSource)||(Kr.inspectSource=function(e){return Zu(e)});gi.exports=Kr.inspectSource});var _i=V((rh,wi)=>{var ec=ee(),rc=ve(),tc=Qr(),yi=ec.WeakMap;wi.exports=rc(yi)&&/native code/.test(tc(yi))});var ki=V((th,xi)=>{var nc=Dr(),ic=Lr(),bi=nc("keys");xi.exports=function(e){return bi[e]||(bi[e]=ic(e))}});var Yr=V((nh,Si)=>{Si.exports={}});var Pi=V((ih,Ai)=>{var sc=_i(),qi=ee(),Xr=de(),oc=Me(),ac=cr(),Zr=Se(),et=ar(),uc=ki(),cc=Yr(),Oi="Object already initialized",tt=qi.TypeError,lc=qi.WeakMap,lr,Fe,fr,fc=function(e){return fr(e)?Fe(e):lr(e,{})},pc=function(e){return function(n){var i;if(!oc(n)||(i=Fe(n)).type!==e)throw tt("Incompatible receiver, "+e+" required");return i}};sc||et.state?(Oe=et.state||(et.state=new lc),Ti=Xr(Oe.get),rt=Xr(Oe.has),Ei=Xr(Oe.set),lr=function(e,n){if(rt(Oe,e))throw new tt(Oi);return n.facade=e,Ei(Oe,e,n),n},Fe=function(e){return Ti(Oe,e)||{}},fr=function(e){return rt(Oe,e)}):(qe=uc("state"),cc[qe]=!0,lr=function(e,n){if(Zr(e,qe))throw new tt(Oi);return n.facade=e,ac(e,qe,n),n},Fe=function(e){return Zr(e,qe)?e[qe]:{}},fr=function(e){return Zr(e,qe)});var Oe,Ti,rt,Ei,qe;Ai.exports={set:lr,get:Fe,has:fr,enforce:fc,getterFor:pc}});var Ci=V((sh,Ii)=>{var nt=Te(),hc=Se(),Ri=Function.prototype,dc=nt&&Object.getOwnPropertyDescriptor,it=hc(Ri,"name"),vc=it&&function(){}.name==="something",mc=it&&(!nt||nt&&dc(Ri,"name").configurable);Ii.exports={EXISTS:it,PROPER:vc,CONFIGURABLE:mc}});var Li=V((oh,Di)=>{var gc=ee(),Ni=ve(),yc=Se(),ji=cr(),wc=or(),_c=Qr(),Mi=Pi(),bc=Ci().CONFIGURABLE,xc=Mi.get,kc=Mi.enforce,Sc=String(String).split("String");(Di.exports=function(e,n,i,a){var o=a?!!a.unsafe:!1,f=a?!!a.enumerable:!1,p=a?!!a.noTargetGet:!1,h=a&&a.name!==void 0?a.name:n,g;if(Ni(i)&&(String(h).slice(0,7)==="Symbol("&&(h="["+String(h).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!yc(i,"name")||bc&&i.name!==h)&&ji(i,"name",h),g=kc(i),g.source||(g.source=Sc.join(typeof h=="string"?h:""))),e===gc){f?e[n]=i:wc(n,i);return}else o?!p&&e[n]&&(f=!0):delete e[n];f?e[n]=i:ji(e,n,i)})(Function.prototype,"toString",function(){return Ni(this)&&xc(this).source||_c(this)})});var st=V((ah,zi)=>{var Oc=Math.ceil,Tc=Math.floor;zi.exports=function(e){var n=+e;return n!==n||n===0?0:(n>0?Tc:Oc)(n)}});var Fi=V((uh,Bi)=>{var Ec=st(),qc=Math.max,Ac=Math.min;Bi.exports=function(e,n){var i=Ec(e);return i<0?qc(i+n,0):Ac(i,n)}});var Wi=V((ch,Ui)=>{var Pc=st(),Rc=Math.min;Ui.exports=function(e){return e>0?Rc(Pc(e),9007199254740991):0}});var Vi=V((lh,$i)=>{var Ic=Wi();$i.exports=function(e){return Ic(e.length)}});var Ji=V((fh,Hi)=>{var Cc=nr(),Nc=Fi(),jc=Vi(),Gi=function(e){return function(n,i,a){var o=Cc(n),f=jc(o),p=Nc(a,f),h;if(e&&i!=i){for(;f>p;)if(h=o[p++],h!=h)return!0}else for(;f>p;p++)if((e||p in o)&&o[p]===i)return e||p||0;return!e&&-1}};Hi.exports={includes:Gi(!0),indexOf:Gi(!1)}});var Yi=V((ph,Qi)=>{var Mc=de(),ot=Se(),Dc=nr(),Lc=Ji().indexOf,zc=Yr(),Ki=Mc([].push);Qi.exports=function(e,n){var i=Dc(e),a=0,o=[],f;for(f in i)!ot(zc,f)&&ot(i,f)&&Ki(o,f);for(;n.length>a;)ot(i,f=n[a++])&&(~Lc(o,f)||Ki(o,f));return o}});var Zi=V((hh,Xi)=>{Xi.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var rs=V(es=>{var Bc=Yi(),Fc=Zi(),Uc=Fc.concat("length","prototype");es.f=Object.getOwnPropertyNames||function(n){return Bc(n,Uc)}});var ns=V(ts=>{ts.f=Object.getOwnPropertySymbols});var ss=V((mh,is)=>{var Wc=ir(),$c=de(),Vc=rs(),Gc=ns(),Hc=Wr(),Jc=$c([].concat);is.exports=Wc("Reflect","ownKeys")||function(n){var i=Vc.f(Hc(n)),a=Gc.f;return a?Jc(i,a(n)):i}});var us=V((gh,as)=>{var os=Se(),Kc=ss(),Qc=Ur(),Yc=Jr();as.exports=function(e,n,i){for(var a=Kc(n),o=Yc.f,f=Qc.f,p=0;p{var Xc=ke(),Zc=ve(),el=/#|\.prototype\./,Ue=function(e,n){var i=tl[rl(e)];return i==il?!0:i==nl?!1:Zc(n)?Xc(n):!!n},rl=Ue.normalize=function(e){return String(e).replace(el,".").toLowerCase()},tl=Ue.data={},nl=Ue.NATIVE="N",il=Ue.POLYFILL="P";cs.exports=Ue});var ps=V((wh,fs)=>{var at=ee(),sl=Ur().f,ol=cr(),al=Li(),ul=or(),cl=us(),ll=ls();fs.exports=function(e,n){var i=e.target,a=e.global,o=e.stat,f,p,h,g,c,t;if(a?p=at:o?p=at[i]||ul(i,{}):p=(at[i]||{}).prototype,p)for(h in n){if(c=n[h],e.noTargetGet?(t=sl(p,h),g=t&&t.value):g=p[h],f=ll(a?h:i+(o?".":"#")+h,e.forced),!f&&g!==void 0){if(typeof c==typeof g)continue;cl(c,g)}(e.sham||g&&g.sham)&&ol(c,"sham",!0),al(p,h,c,e)}}});var hs=V(()=>{var fl=ps(),pl=ee();fl({global:!0},{globalThis:pl})});var ds=V(()=>{hs()});var lp=V((Ph,la)=>{ds();var kt=Object.defineProperty,hl=Object.getOwnPropertyDescriptor,St=Object.getOwnPropertyNames,dl=Object.prototype.hasOwnProperty,Le=(e,n)=>function(){return e&&(n=(0,e[St(e)[0]])(e=0)),n},R=(e,n)=>function(){return n||(0,e[St(e)[0]])((n={exports:{}}).exports,n),n.exports},Ot=(e,n)=>{for(var i in n)kt(e,i,{get:n[i],enumerable:!0})},vl=(e,n,i,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of St(n))!dl.call(e,o)&&o!==i&&kt(e,o,{get:()=>n[o],enumerable:!(a=hl(n,o))||a.enumerable});return e},Tt=e=>vl(kt({},"__esModule",{value:!0}),e),A=Le({""(){}}),ml=R({"src/common/parser-create-error.js"(e,n){"use strict";A();function i(a,o){let f=new SyntaxError(a+" ("+o.start.line+":"+o.start.column+")");return f.loc=o,f}n.exports=i}}),Cs=R({"src/utils/get-last.js"(e,n){"use strict";A();var i=a=>a[a.length-1];n.exports=i}}),Ns=R({"src/utils/front-matter/parse.js"(e,n){"use strict";A();var i=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function a(o){let f=o.match(i);if(!f)return{content:o};let{startDelimiter:p,language:h,value:g="",endDelimiter:c}=f.groups,t=h.trim()||"yaml";if(p==="+++"&&(t="toml"),t!=="yaml"&&p!==c)return{content:o};let[r]=f;return{frontMatter:{type:"front-matter",lang:t,value:g,startDelimiter:p,endDelimiter:c,raw:r.replace(/\n$/,"")},content:r.replace(/[^\n]/g," ")+o.slice(r.length)}}n.exports=a}}),js={};Ot(js,{EOL:()=>gt,arch:()=>gl,cpus:()=>Us,default:()=>Hs,endianness:()=>Ms,freemem:()=>Bs,getNetworkInterfaces:()=>Gs,hostname:()=>Ds,loadavg:()=>Ls,networkInterfaces:()=>Vs,platform:()=>yl,release:()=>$s,tmpDir:()=>vt,tmpdir:()=>mt,totalmem:()=>Fs,type:()=>Ws,uptime:()=>zs});function Ms(){if(typeof pr>"u"){var e=new ArrayBuffer(2),n=new Uint8Array(e),i=new Uint16Array(e);if(n[0]=1,n[1]=2,i[0]===258)pr="BE";else if(i[0]===513)pr="LE";else throw new Error("unable to figure out endianess")}return pr}function Ds(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function Ls(){return[]}function zs(){return 0}function Bs(){return Number.MAX_VALUE}function Fs(){return Number.MAX_VALUE}function Us(){return[]}function Ws(){return"Browser"}function $s(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function Vs(){}function Gs(){}function gl(){return"javascript"}function yl(){return"browser"}function vt(){return"/tmp"}var pr,mt,gt,Hs,wl=Le({"node-modules-polyfills:os"(){A(),mt=vt,gt=` +`,Hs={EOL:gt,tmpdir:mt,tmpDir:vt,networkInterfaces:Vs,getNetworkInterfaces:Gs,release:$s,type:Ws,cpus:Us,totalmem:Fs,freemem:Bs,uptime:zs,loadavg:Ls,hostname:Ds,endianness:Ms}}}),_l=R({"node-modules-polyfills-commonjs:os"(e,n){A();var i=(wl(),Tt(js));if(i&&i.default){n.exports=i.default;for(let a in i)n.exports[a]=i[a]}else i&&(n.exports=i)}}),bl=R({"node_modules/detect-newline/index.js"(e,n){"use strict";A();var i=a=>{if(typeof a!="string")throw new TypeError("Expected a string");let o=a.match(/(?:\r?\n)/g)||[];if(o.length===0)return;let f=o.filter(h=>h===`\r +`).length,p=o.length-f;return f>p?`\r +`:` +`};n.exports=i,n.exports.graceful=a=>typeof a=="string"&&i(a)||` +`}}),xl=R({"node_modules/jest-docblock/build/index.js"(e){"use strict";A(),Object.defineProperty(e,"__esModule",{value:!0}),e.extract=s,e.parse=m,e.parseWithComments=v,e.print=y,e.strip=l;function n(){let d=_l();return n=function(){return d},d}function i(){let d=a(bl());return i=function(){return d},d}function a(d){return d&&d.__esModule?d:{default:d}}var o=/\*\/$/,f=/^\/\*\*/,p=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,h=/(^|\s+)\/\/([^\r\n]*)/g,g=/^(\r?\n)+/,c=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,t=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,r=/(\r?\n|^) *\* ?/g,u=[];function s(d){let _=d.match(p);return _?_[0].trimLeft():""}function l(d){let _=d.match(p);return _&&_[0]?d.substring(_[0].length):d}function m(d){return v(d).pragmas}function v(d){let _=(0,i().default)(d)||n().EOL;d=d.replace(f,"").replace(o,"").replace(r,"$1");let S="";for(;S!==d;)S=d,d=d.replace(c,"".concat(_,"$1 $2").concat(_));d=d.replace(g,"").trimRight();let x=Object.create(null),N=d.replace(t,"").replace(g,"").trimRight(),P;for(;P=t.exec(d);){let W=P[2].replace(h,"");typeof x[P[1]]=="string"||Array.isArray(x[P[1]])?x[P[1]]=u.concat(x[P[1]],W):x[P[1]]=W}return{comments:N,pragmas:x}}function y(d){let{comments:_="",pragmas:S={}}=d,x=(0,i().default)(_)||n().EOL,N="/**",P=" *",W=" */",U=Object.keys(S),H=U.map($=>w($,S[$])).reduce(($,B)=>$.concat(B),[]).map($=>P+" "+$+x).join("");if(!_){if(U.length===0)return"";if(U.length===1&&!Array.isArray(S[U[0]])){let $=S[U[0]];return"".concat(N," ").concat(w(U[0],$)[0]).concat(W)}}let D=_.split(x).map($=>"".concat(P," ").concat($)).join(x)+x;return N+x+(_?D:"")+(_&&U.length?P+x:"")+H+W}function w(d,_){return u.concat(_).map(S=>"@".concat(d," ").concat(S).trim())}}}),kl=R({"src/common/end-of-line.js"(e,n){"use strict";A();function i(p){let h=p.indexOf("\r");return h>=0?p.charAt(h+1)===` +`?"crlf":"cr":"lf"}function a(p){switch(p){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function o(p,h){let g;switch(h){case` +`:g=/\n/g;break;case"\r":g=/\r/g;break;case`\r +`:g=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(h),"."))}let c=p.match(g);return c?c.length:0}function f(p){return p.replace(/\r\n?/g,` +`)}n.exports={guessEndOfLine:i,convertEndOfLineToChars:a,countEndOfLineChars:o,normalizeEndOfLine:f}}}),Sl=R({"src/language-js/utils/get-shebang.js"(e,n){"use strict";A();function i(a){if(!a.startsWith("#!"))return"";let o=a.indexOf(` +`);return o===-1?a:a.slice(0,o)}n.exports=i}}),Ol=R({"src/language-js/pragma.js"(e,n){"use strict";A();var{parseWithComments:i,strip:a,extract:o,print:f}=xl(),{normalizeEndOfLine:p}=kl(),h=Sl();function g(r){let u=h(r);u&&(r=r.slice(u.length+1));let s=o(r),{pragmas:l,comments:m}=i(s);return{shebang:u,text:r,pragmas:l,comments:m}}function c(r){let u=Object.keys(g(r).pragmas);return u.includes("prettier")||u.includes("format")}function t(r){let{shebang:u,text:s,pragmas:l,comments:m}=g(r),v=a(s),y=f({pragmas:Object.assign({format:""},l),comments:m.trimStart()});return(u?"".concat(u,` +`):"")+p(y)+(v.startsWith(` +`)?` +`:` + +`)+v}n.exports={hasPragma:c,insertPragma:t}}}),Tl=R({"src/language-css/pragma.js"(e,n){"use strict";A();var i=Ol(),a=Ns();function o(p){return i.hasPragma(a(p).content)}function f(p){let{frontMatter:h,content:g}=a(p);return(h?h.raw+` + +`:"")+i.insertPragma(g)}n.exports={hasPragma:o,insertPragma:f}}}),El=R({"src/utils/text/skip.js"(e,n){"use strict";A();function i(h){return(g,c,t)=>{let r=t&&t.backwards;if(c===!1)return!1;let{length:u}=g,s=c;for(;s>=0&&s0}n.exports=i}}),Pl=R({"src/language-css/utils/has-scss-interpolation.js"(e,n){"use strict";A();var i=Al();function a(o){if(i(o)){for(let f=o.length-1;f>0;f--)if(o[f].type==="word"&&o[f].value==="{"&&o[f-1].type==="word"&&o[f-1].value.endsWith("#"))return!0}return!1}n.exports=a}}),Rl=R({"src/language-css/utils/has-string-or-function.js"(e,n){"use strict";A();function i(a){return a.some(o=>o.type==="string"||o.type==="func")}n.exports=i}}),Il=R({"src/language-css/utils/is-less-parser.js"(e,n){"use strict";A();function i(a){return a.parser==="css"||a.parser==="less"}n.exports=i}}),Cl=R({"src/language-css/utils/is-scss.js"(e,n){"use strict";A();function i(a,o){return a==="less"||a==="scss"?a==="scss":/(?:\w\s*:\s*[^:}]+|#){|@import[^\n]+(?:url|,)/.test(o)}n.exports=i}}),Nl=R({"src/language-css/utils/is-scss-nested-property-node.js"(e,n){"use strict";A();function i(a){return a.selector?a.selector.replace(/\/\*.*?\*\//,"").replace(/\/\/.*\n/,"").trim().endsWith(":"):!1}n.exports=i}}),jl=R({"src/language-css/utils/is-scss-variable.js"(e,n){"use strict";A();function i(a){return Boolean((a==null?void 0:a.type)==="word"&&a.value.startsWith("$"))}n.exports=i}}),Ml=R({"src/language-css/utils/stringify-node.js"(e,n){"use strict";A();function i(a){var o,f,p;if(a.groups){var h,g,c;let y=((h=a.open)===null||h===void 0?void 0:h.value)||"",w=a.groups.map(_=>i(_)).join(((g=a.groups[0])===null||g===void 0?void 0:g.type)==="comma_group"?",":""),d=((c=a.close)===null||c===void 0?void 0:c.value)||"";return y+w+d}let t=((o=a.raws)===null||o===void 0?void 0:o.before)||"",r=((f=a.raws)===null||f===void 0?void 0:f.quote)||"",u=a.type==="atword"?"@":"",s=a.value||"",l=a.unit||"",m=a.group?i(a.group):"",v=((p=a.raws)===null||p===void 0?void 0:p.after)||"";return t+r+u+s+r+l+m+v}n.exports=i}}),Dl=R({"src/language-css/utils/is-module-rule-name.js"(e,n){"use strict";A();var i=new Set(["import","use","forward"]);function a(o){return i.has(o)}n.exports=a}}),we=R({"node_modules/postcss-values-parser/lib/node.js"(e,n){"use strict";A();var i=function(a,o){let f=new a.constructor;for(let p in a){if(!a.hasOwnProperty(p))continue;let h=a[p],g=typeof h;p==="parent"&&g==="object"?o&&(f[p]=o):p==="source"?f[p]=h:h instanceof Array?f[p]=h.map(c=>i(c,f)):p!=="before"&&p!=="after"&&p!=="between"&&p!=="semicolon"&&(g==="object"&&h!==null&&(h=i(h)),f[p]=h)}return f};n.exports=class{constructor(o){o=o||{},this.raws={before:"",after:""};for(let f in o)this[f]=o[f]}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(){return[this.raws.before,String(this.value),this.raws.after].join("")}clone(o){o=o||{};let f=i(this);for(let p in o)f[p]=o[p];return f}cloneBefore(o){o=o||{};let f=this.clone(o);return this.parent.insertBefore(this,f),f}cloneAfter(o){o=o||{};let f=this.clone(o);return this.parent.insertAfter(this,f),f}replaceWith(){let o=Array.prototype.slice.call(arguments);if(this.parent){for(let f of o)this.parent.insertBefore(this,f);this.remove()}return this}moveTo(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.append(this),this}moveBefore(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertBefore(o,this),this}moveAfter(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertAfter(o,this),this}next(){let o=this.parent.index(this);return this.parent.nodes[o+1]}prev(){let o=this.parent.index(this);return this.parent.nodes[o-1]}toJSON(){let o={};for(let f in this){if(!this.hasOwnProperty(f)||f==="parent")continue;let p=this[f];p instanceof Array?o[f]=p.map(h=>typeof h=="object"&&h.toJSON?h.toJSON():h):typeof p=="object"&&p.toJSON?o[f]=p.toJSON():o[f]=p}return o}root(){let o=this;for(;o.parent;)o=o.parent;return o}cleanRaws(o){delete this.raws.before,delete this.raws.after,o||delete this.raws.between}positionInside(o){let f=this.toString(),p=this.source.start.column,h=this.source.start.line;for(let g=0;g{let h=o(f,p);return h!==!1&&f.walk&&(h=f.walk(o)),h})}walkType(o,f){if(!o||!f)throw new Error("Parameters {type} and {callback} are required.");let p=typeof o=="function";return this.walk((h,g)=>{if(p&&h instanceof o||!p&&h.type===o)return f.call(this,h,g)})}append(o){return o.parent=this,this.nodes.push(o),this}prepend(o){return o.parent=this,this.nodes.unshift(o),this}cleanRaws(o){if(super.cleanRaws(o),this.nodes)for(let f of this.nodes)f.cleanRaws(o)}insertAfter(o,f){let p=this.index(o),h;this.nodes.splice(p+1,0,f);for(let g in this.indexes)h=this.indexes[g],p<=h&&(this.indexes[g]=h+this.nodes.length);return this}insertBefore(o,f){let p=this.index(o),h;this.nodes.splice(p,0,f);for(let g in this.indexes)h=this.indexes[g],p<=h&&(this.indexes[g]=h+this.nodes.length);return this}removeChild(o){o=this.index(o),this.nodes[o].parent=void 0,this.nodes.splice(o,1);let f;for(let p in this.indexes)f=this.indexes[p],f>=o&&(this.indexes[p]=f-1);return this}removeAll(){for(let o of this.nodes)o.parent=void 0;return this.nodes=[],this}every(o){return this.nodes.every(o)}some(o){return this.nodes.some(o)}index(o){return typeof o=="number"?o:this.nodes.indexOf(o)}get first(){if(!!this.nodes)return this.nodes[0]}get last(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}toString(){let o=this.nodes.map(String).join("");return this.value&&(o=this.value+o),this.raws.before&&(o=this.raws.before+o),this.raws.after&&(o+=this.raws.after),o}};a.registerWalker=o=>{let f="walk"+o.name;f.lastIndexOf("s")!==f.length-1&&(f+="s"),!a.prototype[f]&&(a.prototype[f]=function(p){return this.walkType(o,p)})},n.exports=a}}),Ll=R({"node_modules/postcss-values-parser/lib/root.js"(e,n){"use strict";A();var i=ue();n.exports=class extends i{constructor(o){super(o),this.type="root"}}}}),Ks=R({"node_modules/postcss-values-parser/lib/value.js"(e,n){"use strict";A();var i=ue();n.exports=class extends i{constructor(o){super(o),this.type="value",this.unbalanced=0}}}}),Qs=R({"node_modules/postcss-values-parser/lib/atword.js"(e,n){"use strict";A();var i=ue(),a=class extends i{constructor(o){super(o),this.type="atword"}toString(){let o=this.quoted?this.raws.quote:"";return[this.raws.before,"@",String.prototype.toString.call(this.value),this.raws.after].join("")}};i.registerWalker(a),n.exports=a}}),Ys=R({"node_modules/postcss-values-parser/lib/colon.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="colon"}};i.registerWalker(o),n.exports=o}}),Xs=R({"node_modules/postcss-values-parser/lib/comma.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="comma"}};i.registerWalker(o),n.exports=o}}),Zs=R({"node_modules/postcss-values-parser/lib/comment.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="comment",this.inline=Object(f).inline||!1}toString(){return[this.raws.before,this.inline?"//":"/*",String(this.value),this.inline?"":"*/",this.raws.after].join("")}};i.registerWalker(o),n.exports=o}}),eo=R({"node_modules/postcss-values-parser/lib/function.js"(e,n){"use strict";A();var i=ue(),a=class extends i{constructor(o){super(o),this.type="func",this.unbalanced=-1}};i.registerWalker(a),n.exports=a}}),ro=R({"node_modules/postcss-values-parser/lib/number.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="number",this.unit=Object(f).unit||""}toString(){return[this.raws.before,String(this.value),this.unit,this.raws.after].join("")}};i.registerWalker(o),n.exports=o}}),to=R({"node_modules/postcss-values-parser/lib/operator.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="operator"}};i.registerWalker(o),n.exports=o}}),no=R({"node_modules/postcss-values-parser/lib/paren.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="paren",this.parenType=""}};i.registerWalker(o),n.exports=o}}),io=R({"node_modules/postcss-values-parser/lib/string.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="string"}toString(){let f=this.quoted?this.raws.quote:"";return[this.raws.before,f,this.value+"",f,this.raws.after].join("")}};i.registerWalker(o),n.exports=o}}),so=R({"node_modules/postcss-values-parser/lib/word.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="word"}};i.registerWalker(o),n.exports=o}}),oo=R({"node_modules/postcss-values-parser/lib/unicode-range.js"(e,n){"use strict";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type="unicode-range"}};i.registerWalker(o),n.exports=o}});function ao(){throw new Error("setTimeout has not been defined")}function uo(){throw new Error("clearTimeout has not been defined")}function co(e){if(be===setTimeout)return setTimeout(e,0);if((be===ao||!be)&&setTimeout)return be=setTimeout,setTimeout(e,0);try{return be(e,0)}catch{try{return be.call(null,e,0)}catch{return be.call(this,e,0)}}}function zl(e){if(xe===clearTimeout)return clearTimeout(e);if((xe===uo||!xe)&&clearTimeout)return xe=clearTimeout,clearTimeout(e);try{return xe(e)}catch{try{return xe.call(null,e)}catch{return xe.call(this,e)}}}function Bl(){!Ne||!Ce||(Ne=!1,Ce.length?me=Ce.concat(me):$e=-1,me.length&&lo())}function lo(){if(!Ne){var e=co(Bl);Ne=!0;for(var n=me.length;n;){for(Ce=me,me=[];++$e1)for(var i=1;iIt,debuglog:()=>mo,default:()=>Oo,deprecate:()=>qt,format:()=>gr,inherits:()=>Et,inspect:()=>ye,isArray:()=>At,isBoolean:()=>yr,isBuffer:()=>_o,isDate:()=>vr,isError:()=>He,isFunction:()=>Je,isNull:()=>Ke,isNullOrUndefined:()=>go,isNumber:()=>Pt,isObject:()=>je,isPrimitive:()=>wo,isRegExp:()=>Ge,isString:()=>Qe,isSymbol:()=>yo,isUndefined:()=>ge,log:()=>bo});function gr(e){if(!Qe(e)){for(var n=[],i=0;i=o)return h;switch(h){case"%s":return String(a[i++]);case"%d":return Number(a[i++]);case"%j":try{return JSON.stringify(a[i++])}catch{return"[Circular]"}default:return h}}),p=a[i];i=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),yr(n)?i.showHidden=n:n&&It(i,n),ge(i.showHidden)&&(i.showHidden=!1),ge(i.depth)&&(i.depth=2),ge(i.colors)&&(i.colors=!1),ge(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=Ql),dr(i,e,i.depth)}function Ql(e,n){var i=ye.styles[n];return i?"\x1B["+ye.colors[i][0]+"m"+e+"\x1B["+ye.colors[i][1]+"m":e}function Yl(e,n){return e}function Xl(e){var n={};return e.forEach(function(i,a){n[i]=!0}),n}function dr(e,n,i){if(e.customInspect&&n&&Je(n.inspect)&&n.inspect!==ye&&!(n.constructor&&n.constructor.prototype===n)){var a=n.inspect(i,e);return Qe(a)||(a=dr(e,a,i)),a}var o=Zl(e,n);if(o)return o;var f=Object.keys(n),p=Xl(f);if(e.showHidden&&(f=Object.getOwnPropertyNames(n)),He(n)&&(f.indexOf("message")>=0||f.indexOf("description")>=0))return ct(n);if(f.length===0){if(Je(n)){var h=n.name?": "+n.name:"";return e.stylize("[Function"+h+"]","special")}if(Ge(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(vr(n))return e.stylize(Date.prototype.toString.call(n),"date");if(He(n))return ct(n)}var g="",c=!1,t=["{","}"];if(At(n)&&(c=!0,t=["[","]"]),Je(n)){var r=n.name?": "+n.name:"";g=" [Function"+r+"]"}if(Ge(n)&&(g=" "+RegExp.prototype.toString.call(n)),vr(n)&&(g=" "+Date.prototype.toUTCString.call(n)),He(n)&&(g=" "+ct(n)),f.length===0&&(!c||n.length==0))return t[0]+g+t[1];if(i<0)return Ge(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var u;return c?u=ef(e,n,i,p,f):u=f.map(function(s){return yt(e,n,i,p,s,c)}),e.seen.pop(),rf(u,g,t)}function Zl(e,n){if(ge(n))return e.stylize("undefined","undefined");if(Qe(n)){var i="'"+JSON.stringify(n).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(i,"string")}if(Pt(n))return e.stylize(""+n,"number");if(yr(n))return e.stylize(""+n,"boolean");if(Ke(n))return e.stylize("null","null")}function ct(e){return"["+Error.prototype.toString.call(e)+"]"}function ef(e,n,i,a,o){for(var f=[],p=0,h=n.length;p-1&&(f?h=h.split(` +`).map(function(c){return" "+c}).join(` +`).substr(2):h=` +`+h.split(` +`).map(function(c){return" "+c}).join(` +`))):h=e.stylize("[Circular]","special")),ge(p)){if(f&&o.match(/^\d+$/))return h;p=JSON.stringify(""+o),p.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(p=p.substr(1,p.length-2),p=e.stylize(p,"name")):(p=p.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),p=e.stylize(p,"string"))}return p+": "+h}function rf(e,n,i){var a=0,o=e.reduce(function(f,p){return a++,p.indexOf(` +`)>=0&&a++,f+p.replace(/\u001b\[\d\d?m/g,"").length+1},0);return o>60?i[0]+(n===""?"":n+` + `)+" "+e.join(`, + `)+" "+i[1]:i[0]+n+" "+e.join(", ")+" "+i[1]}function At(e){return Array.isArray(e)}function yr(e){return typeof e=="boolean"}function Ke(e){return e===null}function go(e){return e==null}function Pt(e){return typeof e=="number"}function Qe(e){return typeof e=="string"}function yo(e){return typeof e=="symbol"}function ge(e){return e===void 0}function Ge(e){return je(e)&&Rt(e)==="[object RegExp]"}function je(e){return typeof e=="object"&&e!==null}function vr(e){return je(e)&&Rt(e)==="[object Date]"}function He(e){return je(e)&&(Rt(e)==="[object Error]"||e instanceof Error)}function Je(e){return typeof e=="function"}function wo(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e>"u"}function _o(e){return Buffer.isBuffer(e)}function Rt(e){return Object.prototype.toString.call(e)}function lt(e){return e<10?"0"+e.toString(10):e.toString(10)}function tf(){var e=new Date,n=[lt(e.getHours()),lt(e.getMinutes()),lt(e.getSeconds())].join(":");return[e.getDate(),So[e.getMonth()],n].join(" ")}function bo(){console.log("%s - %s",tf(),gr.apply(null,arguments))}function It(e,n){if(!n||!je(n))return e;for(var i=Object.keys(n),a=i.length;a--;)e[i[a]]=n[i[a]];return e}function xo(e,n){return Object.prototype.hasOwnProperty.call(e,n)}var ko,We,ft,So,Oo,nf=Le({"node-modules-polyfills:util"(){A(),Jl(),Kl(),ko=/%[sdj%]/g,We={},ye.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},ye.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},So=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Oo={inherits:Et,_extend:It,log:bo,isBuffer:_o,isPrimitive:wo,isFunction:Je,isError:He,isDate:vr,isObject:je,isRegExp:Ge,isUndefined:ge,isSymbol:yo,isString:Qe,isNumber:Pt,isNullOrUndefined:go,isNull:Ke,isBoolean:yr,isArray:At,inspect:ye,deprecate:qt,format:gr,debuglog:mo}}}),sf=R({"node-modules-polyfills-commonjs:util"(e,n){A();var i=(nf(),Tt(vo));if(i&&i.default){n.exports=i.default;for(let a in i)n.exports[a]=i[a]}else i&&(n.exports=i)}}),of=R({"node_modules/postcss-values-parser/lib/errors/TokenizeError.js"(e,n){"use strict";A();var i=class extends Error{constructor(a){super(a),this.name=this.constructor.name,this.message=a||"An error ocurred while tokzenizing.",typeof Error.captureStackTrace=="function"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(a).stack}};n.exports=i}}),af=R({"node_modules/postcss-values-parser/lib/tokenize.js"(e,n){"use strict";A();var i="{".charCodeAt(0),a="}".charCodeAt(0),o="(".charCodeAt(0),f=")".charCodeAt(0),p="'".charCodeAt(0),h='"'.charCodeAt(0),g="\\".charCodeAt(0),c="/".charCodeAt(0),t=".".charCodeAt(0),r=",".charCodeAt(0),u=":".charCodeAt(0),s="*".charCodeAt(0),l="-".charCodeAt(0),m="+".charCodeAt(0),v="#".charCodeAt(0),y=` +`.charCodeAt(0),w=" ".charCodeAt(0),d="\f".charCodeAt(0),_=" ".charCodeAt(0),S="\r".charCodeAt(0),x="@".charCodeAt(0),N="e".charCodeAt(0),P="E".charCodeAt(0),W="0".charCodeAt(0),U="9".charCodeAt(0),H="u".charCodeAt(0),D="U".charCodeAt(0),$=/[ \n\t\r\{\(\)'"\\;,/]/g,B=/[ \n\t\r\(\)\{\}\*:;@!&'"\+\|~>,\[\]\\]|\/(?=\*)/g,O=/[ \n\t\r\(\)\{\}\*:;@!&'"\-\+\|~>,\[\]\\]|\//g,j=/^[a-z0-9]/i,C=/^[a-f0-9?\-]/i,I=sf(),X=of();n.exports=function(Q,K){K=K||{};let J=[],M=Q.valueOf(),Y=M.length,G=-1,E=1,k=0,b=0,L=null,q,T,F,z,re,ne,ce,fe,te,ie,ae,se;function le(Ze){let _e=I.format("Unclosed %s at line: %d, column: %d, token: %d",Ze,E,k-G,k);throw new X(_e)}function pe(){let Ze=I.format("Syntax error at line: %d, column: %d, token: %d",E,k-G,k);throw new X(Ze)}for(;k0&&J[J.length-1][0]==="word"&&J[J.length-1][1]==="url",J.push(["(","(",E,k-G,E,T-G,k]);break;case f:b--,L=L&&b>0,J.push([")",")",E,k-G,E,T-G,k]);break;case p:case h:F=q===p?"'":'"',T=k;do for(ie=!1,T=M.indexOf(F,T+1),T===-1&&le("quote",F),ae=T;M.charCodeAt(ae-1)===g;)ae-=1,ie=!ie;while(ie);J.push(["string",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case x:$.lastIndex=k+1,$.test(M),$.lastIndex===0?T=M.length-1:T=$.lastIndex-2,J.push(["atword",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case g:T=k,q=M.charCodeAt(T+1),ce&&q!==c&&q!==w&&q!==y&&q!==_&&q!==S&&q!==d&&(T+=1),J.push(["word",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case m:case l:case s:T=k+1,se=M.slice(k+1,T+1);let Ze=M.slice(k-1,k);if(q===l&&se.charCodeAt(0)===l){T++,J.push(["word",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;break}J.push(["operator",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;break;default:if(q===c&&(M.charCodeAt(k+1)===s||K.loose&&!L&&M.charCodeAt(k+1)===c)){if(M.charCodeAt(k+1)===s)T=M.indexOf("*/",k+2)+1,T===0&&le("comment","*/");else{let Be=M.indexOf(` +`,k+2);T=Be!==-1?Be-1:Y}ne=M.slice(k,T+1),z=ne.split(` +`),re=z.length-1,re>0?(fe=E+re,te=T-z[re].length):(fe=E,te=G),J.push(["comment",ne,E,k-G,fe,T-te,k]),G=te,E=fe,k=T}else if(q===v&&!j.test(M.slice(k+1,k+2)))T=k+1,J.push(["#",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;else if((q===H||q===D)&&M.charCodeAt(k+1)===m){T=k+2;do T+=1,q=M.charCodeAt(T);while(T=W&&q<=U&&(_e=O),_e.lastIndex=k+1,_e.test(M),_e.lastIndex===0?T=M.length-1:T=_e.lastIndex-2,_e===O||q===t){let Be=M.charCodeAt(T),Bt=M.charCodeAt(T+1),Ft=M.charCodeAt(T+2);(Be===N||Be===P)&&(Bt===l||Bt===m)&&Ft>=W&&Ft<=U&&(O.lastIndex=T+2,O.test(M),O.lastIndex===0?T=M.length-1:T=O.lastIndex-2)}J.push(["word",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T}break}k++}return J}}}),To=R({"node_modules/flatten/index.js"(e,n){A(),n.exports=function(a,o){if(o=typeof o=="number"?o:1/0,!o)return Array.isArray(a)?a.map(function(p){return p}):a;return f(a,1);function f(p,h){return p.reduce(function(g,c){return Array.isArray(c)&&hx-N)}n.exports=class{constructor(x,N){let P={loose:!1};this.cache=[],this.input=x,this.options=Object.assign({},P,N),this.position=0,this.unbalanced=0,this.root=new i;let W=new a;this.root.append(W),this.current=W,this.tokens=m(x,this.options)}parse(){return this.loop()}colon(){let x=this.currToken;this.newNode(new f({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}comma(){let x=this.currToken;this.newNode(new p({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}comment(){let x=!1,N=this.currToken[1].replace(/\/\*|\*\//g,""),P;this.options.loose&&N.startsWith("//")&&(N=N.substring(2),x=!0),P=new h({value:N,inline:x,source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]}),this.newNode(P),this.position++}error(x,N){throw new d(x+" at line: ".concat(N[2],", column ").concat(N[3]))}loop(){for(;this.position0&&(this.current.type==="func"&&this.current.value==="calc"?this.prevToken[0]!=="space"&&this.prevToken[0]!=="("?this.error("Syntax Error",this.currToken):this.nextToken[0]!=="space"&&this.nextToken[0]!=="word"?this.error("Syntax Error",this.currToken):this.nextToken[0]==="word"&&this.current.last.type!=="operator"&&this.current.last.value!=="("&&this.error("Syntax Error",this.currToken):(this.nextToken[0]==="space"||this.nextToken[0]==="operator"||this.prevToken[0]==="operator")&&this.error("Syntax Error",this.currToken)),this.options.loose){if((!this.current.nodes.length||this.current.last&&this.current.last.type==="operator")&&this.nextToken[0]==="word")return this.word()}else if(this.nextToken[0]==="word")return this.word()}return N=new t({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),this.position++,this.newNode(N)}parseTokens(){switch(this.currToken[0]){case"space":this.space();break;case"colon":this.colon();break;case"comma":this.comma();break;case"comment":this.comment();break;case"(":this.parenOpen();break;case")":this.parenClose();break;case"atword":case"word":this.word();break;case"operator":this.operator();break;case"string":this.string();break;case"unicoderange":this.unicodeRange();break;default:this.word();break}}parenOpen(){let x=1,N=this.position+1,P=this.currToken,W;for(;N=this.tokens.length-1&&!this.current.unbalanced)&&(this.current.unbalanced--,this.current.unbalanced<0&&this.error("Expected opening parenthesis",x),!this.current.unbalanced&&this.cache.length&&(this.current=this.cache.pop()))}space(){let x=this.currToken;this.position===this.tokens.length-1||this.nextToken[0]===","||this.nextToken[0]===")"?(this.current.last.raws.after+=x[1],this.position++):(this.spaces=x[1],this.position++)}unicodeRange(){let x=this.currToken;this.newNode(new l({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}splitWord(){let x=this.nextToken,N=this.currToken[1],P=/^[\+\-]?((\d+(\.\d*)?)|(\.\d+))([eE][\+\-]?\d+)?/,W=/^(?!\#([a-z0-9]+))[\#\{\}]/gi,U,H;if(!W.test(N))for(;x&&x[0]==="word";)this.position++,N+=this.currToken[1],x=this.nextToken;U=y(N,"@"),H=_(w(v([[0],U]))),H.forEach((D,$)=>{let B=H[$+1]||N.length,O=N.slice(D,B),j;if(~U.indexOf(D))j=new o({value:O.slice(1),source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$]});else if(P.test(this.currToken[1])){let C=O.replace(P,"");j=new c({value:O.replace(C,""),source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$],unit:C})}else j=new(x&&x[0]==="("?g:s)({value:O,source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$]}),j.type==="word"?(j.isHex=/^#(.+)/.test(O),j.isColor=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(O)):this.cache.push(this.current);this.newNode(j)}),this.position++}string(){let x=this.currToken,N=this.currToken[1],P=/^(\"|\')/,W=P.test(N),U="",H;W&&(U=N.match(P)[0],N=N.slice(1,N.length-1)),H=new u({value:N,source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6],quoted:W}),H.raws.quote=U,this.newNode(H),this.position++}word(){return this.splitWord()}newNode(x){return this.spaces&&(x.raws.before+=this.spaces,this.spaces=""),this.current.append(x)}get currToken(){return this.tokens[this.position]}get nextToken(){return this.tokens[this.position+1]}get prevToken(){return this.tokens[this.position-1]}}}}),lf=R({"node_modules/postcss-values-parser/lib/index.js"(e,n){"use strict";A();var i=cf(),a=Qs(),o=Ys(),f=Xs(),p=Zs(),h=eo(),g=ro(),c=to(),t=no(),r=io(),u=oo(),s=Ks(),l=so(),m=function(v,y){return new i(v,y)};m.atword=function(v){return new a(v)},m.colon=function(v){return new o(Object.assign({value:":"},v))},m.comma=function(v){return new f(Object.assign({value:","},v))},m.comment=function(v){return new p(v)},m.func=function(v){return new h(v)},m.number=function(v){return new g(v)},m.operator=function(v){return new c(v)},m.paren=function(v){return new t(Object.assign({value:"("},v))},m.string=function(v){return new r(Object.assign({quote:"'"},v))},m.value=function(v){return new s(v)},m.word=function(v){return new l(v)},m.unicodeRange=function(v){return new u(v)},n.exports=m}}),ze=R({"node_modules/postcss-selector-parser/dist/selectors/node.js"(e,n){"use strict";A(),e.__esModule=!0;var i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p};function a(p,h){if(!(p instanceof h))throw new TypeError("Cannot call a class as a function")}var o=function p(h,g){if((typeof h>"u"?"undefined":i(h))!=="object")return h;var c=new h.constructor;for(var t in h)if(!!h.hasOwnProperty(t)){var r=h[t],u=typeof r>"u"?"undefined":i(r);t==="parent"&&u==="object"?g&&(c[t]=g):r instanceof Array?c[t]=r.map(function(s){return p(s,c)}):c[t]=p(r,c)}return c},f=function(){function p(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};a(this,p);for(var g in h)this[g]=h[g];var c=h.spaces;c=c===void 0?{}:c;var t=c.before,r=t===void 0?"":t,u=c.after,s=u===void 0?"":u;this.spaces={before:r,after:s}}return p.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},p.prototype.replaceWith=function(){if(this.parent){for(var g in arguments)this.parent.insertBefore(this,arguments[g]);this.remove()}return this},p.prototype.next=function(){return this.parent.at(this.parent.index(this)+1)},p.prototype.prev=function(){return this.parent.at(this.parent.index(this)-1)},p.prototype.clone=function(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o(this);for(var t in g)c[t]=g[t];return c},p.prototype.toString=function(){return[this.spaces.before,String(this.value),this.spaces.after].join("")},p}();e.default=f,n.exports=e.default}}),oe=R({"node_modules/postcss-selector-parser/dist/selectors/types.js"(e){"use strict";A(),e.__esModule=!0;var n=e.TAG="tag",i=e.STRING="string",a=e.SELECTOR="selector",o=e.ROOT="root",f=e.PSEUDO="pseudo",p=e.NESTING="nesting",h=e.ID="id",g=e.COMMENT="comment",c=e.COMBINATOR="combinator",t=e.CLASS="class",r=e.ATTRIBUTE="attribute",u=e.UNIVERSAL="universal"}}),Ct=R({"node_modules/postcss-selector-parser/dist/selectors/container.js"(e,n){"use strict";A(),e.__esModule=!0;var i=function(){function s(l,m){for(var v=0;v=v&&(this.indexes[w]=y-1);return this},l.prototype.removeAll=function(){for(var w=this.nodes,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;_.parent=void 0}return this.nodes=[],this},l.prototype.empty=function(){return this.removeAll()},l.prototype.insertAfter=function(v,y){var w=this.index(v);this.nodes.splice(w+1,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},l.prototype.insertBefore=function(v,y){var w=this.index(v);this.nodes.splice(w,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},l.prototype.each=function(v){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var y=this.lastEach;if(this.indexes[y]=0,!!this.length){for(var w=void 0,d=void 0;this.indexes[y],\[\]\\]|\/(?=\*)/g;function H(D){for(var $=[],B=D.css.valueOf(),O=void 0,j=void 0,C=void 0,I=void 0,X=void 0,Z=void 0,Q=void 0,K=void 0,J=void 0,M=void 0,Y=void 0,G=B.length,E=-1,k=1,b=0,L=function(T,F){if(D.safe)B+=F,j=B.length-1;else throw D.error("Unclosed "+T,k,b-E,b)};b0?(K=k+X,J=j-I[X].length):(K=k,J=E),$.push(["comment",Z,k,b-E,K,j-J,b]),E=J,k=K,b=j):(U.lastIndex=b+1,U.test(B),U.lastIndex===0?j=B.length-1:j=U.lastIndex-2,$.push(["word",B.slice(b,j+1),k,b-E,k,j-E,b]),b=j);break}b++}return $}n.exports=e.default}}),hf=R({"node_modules/postcss-selector-parser/dist/parser.js"(e,n){"use strict";A(),e.__esModule=!0;var i=function(){function E(k,b){for(var L=0;L1?(F[0]===""&&(F[0]=!0),z.attribute=this.parseValue(F[2]),z.namespace=this.parseNamespace(F[0])):z.attribute=this.parseValue(T[0]),L=new U.default(z),T[2]){var re=T[2].split(/(\s+i\s*?)$/),ne=re[0].trim();L.value=this.lossy?ne:re[0],re[1]&&(L.insensitive=!0,this.lossy||(L.raws.insensitive=re[1])),L.quoted=ne[0]==="'"||ne[0]==='"',L.raws.unquoted=L.quoted?ne.slice(1,-1):ne}this.newNode(L),this.position++},E.prototype.combinator=function(){if(this.currToken[1]==="|")return this.namespace();for(var b=new B.default({value:"",source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]});this.position1&&b.nextToken&&b.nextToken[0]==="("&&b.error("Misplaced parenthesis.")})}else this.error('Unexpected "'+this.currToken[0]+'" found.')},E.prototype.space=function(){var b=this.currToken;this.position===0||this.prevToken[0]===","||this.prevToken[0]==="("?(this.spaces=this.parseSpace(b[1]),this.position++):this.position===this.tokens.length-1||this.nextToken[0]===","||this.nextToken[0]===")"?(this.current.last.spaces.after=this.parseSpace(b[1]),this.position++):this.combinator()},E.prototype.string=function(){var b=this.currToken;this.newNode(new x.default({value:this.currToken[1],source:{start:{line:b[2],column:b[3]},end:{line:b[4],column:b[5]}},sourceIndex:b[6]})),this.position++},E.prototype.universal=function(b){var L=this.nextToken;if(L&&L[1]==="|")return this.position++,this.namespace();this.newNode(new D.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),b),this.position++},E.prototype.splitWord=function(b,L){for(var q=this,T=this.nextToken,F=this.currToken[1];T&&T[0]==="word";){this.position++;var z=this.currToken[1];if(F+=z,z.lastIndexOf("\\")===z.length-1){var re=this.nextToken;re&&re[0]==="space"&&(F+=this.parseSpace(re[1]," "),this.position++)}T=this.nextToken}var ne=(0,p.default)(F,"."),ce=(0,p.default)(F,"#"),fe=(0,p.default)(F,"#{");fe.length&&(ce=ce.filter(function(ie){return!~fe.indexOf(ie)}));var te=(0,I.default)((0,g.default)((0,o.default)([[0],ne,ce])));te.forEach(function(ie,ae){var se=te[ae+1]||F.length,le=F.slice(ie,se);if(ae===0&&L)return L.call(q,le,te.length);var pe=void 0;~ne.indexOf(ie)?pe=new l.default({value:le.slice(1),source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}):~ce.indexOf(ie)?pe=new w.default({value:le.slice(1),source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}):pe=new _.default({value:le,source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}),q.newNode(pe,b)}),this.position++},E.prototype.word=function(b){var L=this.nextToken;return L&&L[1]==="|"?(this.position++,this.namespace()):this.splitWord(b)},E.prototype.loop=function(){for(;this.position1&&arguments[1]!==void 0?arguments[1]:{},u=new o.default({css:t,error:function(l){throw new Error(l)},options:r});return this.res=u,this.func(u),this},i(g,[{key:"result",get:function(){return String(this.res)}}]),g}();e.default=h,n.exports=e.default}}),vf=R({"node_modules/postcss-selector-parser/dist/index.js"(e,n){"use strict";A(),e.__esModule=!0;var i=df(),a=O(i),o=Do(),f=O(o),p=Ro(),h=O(p),g=zo(),c=O(g),t=Io(),r=O(t),u=Co(),s=O(u),l=Bo(),m=O(l),v=Mo(),y=O(v),w=Ao(),d=O(w),_=Po(),S=O(_),x=jo(),N=O(x),P=No(),W=O(P),U=Lo(),H=O(U),D=oe(),$=B(D);function B(C){if(C&&C.__esModule)return C;var I={};if(C!=null)for(var X in C)Object.prototype.hasOwnProperty.call(C,X)&&(I[X]=C[X]);return I.default=C,I}function O(C){return C&&C.__esModule?C:{default:C}}var j=function(I){return new a.default(I)};j.attribute=function(C){return new f.default(C)},j.className=function(C){return new h.default(C)},j.combinator=function(C){return new c.default(C)},j.comment=function(C){return new r.default(C)},j.id=function(C){return new s.default(C)},j.nesting=function(C){return new m.default(C)},j.pseudo=function(C){return new y.default(C)},j.root=function(C){return new d.default(C)},j.selector=function(C){return new S.default(C)},j.string=function(C){return new N.default(C)},j.tag=function(C){return new W.default(C)},j.universal=function(C){return new H.default(C)},Object.keys($).forEach(function(C){C!=="__esModule"&&(j[C]=$[C])}),e.default=j,n.exports=e.default}}),Fo=R({"node_modules/postcss-media-query-parser/dist/nodes/Node.js"(e){"use strict";A(),Object.defineProperty(e,"__esModule",{value:!0});function n(i){this.after=i.after,this.before=i.before,this.type=i.type,this.value=i.value,this.sourceIndex=i.sourceIndex}e.default=n}}),Uo=R({"node_modules/postcss-media-query-parser/dist/nodes/Container.js"(e){"use strict";A(),Object.defineProperty(e,"__esModule",{value:!0});var n=Fo(),i=a(n);function a(f){return f&&f.__esModule?f:{default:f}}function o(f){var p=this;this.constructor(f),this.nodes=f.nodes,this.after===void 0&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:""),this.before===void 0&&(this.before=this.nodes.length>0?this.nodes[0].before:""),this.sourceIndex===void 0&&(this.sourceIndex=this.before.length),this.nodes.forEach(function(h){h.parent=p})}o.prototype=Object.create(i.default.prototype),o.constructor=i.default,o.prototype.walk=function(p,h){for(var g=typeof p=="string"||p instanceof RegExp,c=g?h:p,t=typeof p=="string"?new RegExp(p):p,r=0;r0&&(r[w-1].after=l.before),l.type===void 0){if(w>0){if(r[w-1].type==="media-feature-expression"){l.type="keyword";continue}if(r[w-1].value==="not"||r[w-1].value==="only"){l.type="media-type";continue}if(r[w-1].value==="and"){l.type="media-feature-expression";continue}r[w-1].type==="media-type"&&(r[w+1]?l.type=r[w+1].type==="media-feature-expression"?"keyword":"media-feature-expression":l.type="media-feature-expression")}if(w===0){if(!r[w+1]){l.type="media-type";continue}if(r[w+1]&&(r[w+1].type==="media-feature-expression"||r[w+1].type==="keyword")){l.type="media-type";continue}if(r[w+2]){if(r[w+2].type==="media-feature-expression"){l.type="media-type",r[w+1].type="keyword";continue}if(r[w+2].type==="keyword"){l.type="keyword",r[w+1].type="media-type";continue}}if(r[w+3]&&r[w+3].type==="media-feature-expression"){l.type="keyword",r[w+1].type="media-type",r[w+2].type="keyword";continue}}}return r}function g(c){var t=[],r=0,u=0,s=/^(\s*)url\s*\(/.exec(c);if(s!==null){for(var l=s[0].length,m=1;m>0;){var v=c[l];v==="("&&m++,v===")"&&m--,l++}t.unshift(new i.default({type:"url",value:c.substring(0,l).trim(),sourceIndex:s[1].length,before:s[1],after:/^(\s*)/.exec(c.substring(l))[1]})),r=l}for(var y=r;yJo,default:()=>Qo,delimiter:()=>_t,dirname:()=>Ho,extname:()=>Ko,isAbsolute:()=>jt,join:()=>Vo,normalize:()=>Nt,relative:()=>Go,resolve:()=>mr,sep:()=>wt});function $o(e,n){for(var i=0,a=e.length-1;a>=0;a--){var o=e[a];o==="."?e.splice(a,1):o===".."?(e.splice(a,1),i++):i&&(e.splice(a,1),i--)}if(n)for(;i--;i)e.unshift("..");return e}function mr(){for(var e="",n=!1,i=arguments.length-1;i>=-1&&!n;i--){var a=i>=0?arguments[i]:"/";if(typeof a!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!a)continue;e=a+"/"+e,n=a.charAt(0)==="/"}return e=$o(Mt(e.split("/"),function(o){return!!o}),!n).join("/"),(n?"/":"")+e||"."}function Nt(e){var n=jt(e),i=Yo(e,-1)==="/";return e=$o(Mt(e.split("/"),function(a){return!!a}),!n).join("/"),!e&&!n&&(e="."),e&&i&&(e+="/"),(n?"/":"")+e}function jt(e){return e.charAt(0)==="/"}function Vo(){var e=Array.prototype.slice.call(arguments,0);return Nt(Mt(e,function(n,i){if(typeof n!="string")throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))}function Go(e,n){e=mr(e).substr(1),n=mr(n).substr(1);function i(c){for(var t=0;t=0&&c[r]==="";r--);return t>r?[]:c.slice(t,r-t+1)}for(var a=i(e.split("/")),o=i(n.split("/")),f=Math.min(a.length,o.length),p=f,h=0;h"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function t(m){return Function.toString.call(m).indexOf("[native code]")!==-1}function r(m,v){return r=Object.setPrototypeOf||function(w,d){return w.__proto__=d,w},r(m,v)}function u(m){return u=Object.setPrototypeOf?Object.getPrototypeOf:function(y){return y.__proto__||Object.getPrototypeOf(y)},u(m)}var s=function(m){p(v,m);function v(w,d,_,S,x,N){var P;return P=m.call(this,w)||this,P.name="CssSyntaxError",P.reason=w,x&&(P.file=x),S&&(P.source=S),N&&(P.plugin=N),typeof d<"u"&&typeof _<"u"&&(P.line=d,P.column=_),P.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(f(P),v),P}var y=v.prototype;return y.setMessage=function(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason},y.showSourceCode=function(d){var _=this;if(!this.source)return"";var S=this.source;a.default&&(typeof d>"u"&&(d=i.default.isColorSupported),d&&(S=(0,a.default)(S)));var x=S.split(/\r?\n/),N=Math.max(this.line-3,0),P=Math.min(this.line+2,x.length),W=String(P).length;function U(D){return d&&i.default.red?i.default.red(i.default.bold(D)):D}function H(D){return d&&i.default.gray?i.default.gray(D):D}return x.slice(N,P).map(function(D,$){var B=N+1+$,O=" "+(" "+B).slice(-W)+" | ";if(B===_.line){var j=H(O.replace(/\d/g," "))+D.slice(0,_.column-1).replace(/[^\t]/g," ");return U(">")+H(O)+D+` + `+j+U("^")}return" "+H(O)+D}).join(` +`)},y.toString=function(){var d=this.showSourceCode();return d&&(d=` + +`+d+` +`),this.name+": "+this.message+d},v}(h(Error)),l=s;e.default=l,n.exports=e.default}}),xf=R({"node_modules/postcss/lib/previous-map.js"(e,n){A(),n.exports=class{}}}),_r=R({"node_modules/postcss/lib/input.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i=f(wf()),a=f(Xo()),o=f(xf());function f(r){return r&&r.__esModule?r:{default:r}}function p(r,u){for(var s=0;s"u"||typeof s=="object"&&!s.toString)throw new Error("PostCSS received "+s+" instead of CSS string");this.css=s.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,l.from&&(/^\w+:\/\//.test(l.from)||i.default.isAbsolute(l.from)?this.file=l.from:this.file=i.default.resolve(l.from));var m=new o.default(this.css,l);if(m.text){this.map=m;var v=m.consumer().file;!this.file&&v&&(this.file=this.mapResolve(v))}this.file||(g+=1,this.id=""),this.map&&(this.map.file=this.from)}var u=r.prototype;return u.error=function(l,m,v,y){y===void 0&&(y={});var w,d=this.origin(m,v);return d?w=new a.default(l,d.line,d.column,d.source,d.file,y.plugin):w=new a.default(l,m,v,this.css,this.file,y.plugin),w.input={line:m,column:v,source:this.css},this.file&&(w.input.file=this.file),w},u.origin=function(l,m){if(!this.map)return!1;var v=this.map.consumer(),y=v.originalPositionFor({line:l,column:m});if(!y.source)return!1;var w={file:this.mapResolve(y.source),line:y.line,column:y.column},d=v.sourceContentFor(y.source);return d&&(w.source=d),w},u.mapResolve=function(l){return/^\w+:\/\//.test(l)?l:i.default.resolve(this.map.consumer().sourceRoot||".",l)},h(r,[{key:"from",get:function(){return this.file||this.id}}]),r}(),t=c;e.default=t,n.exports=e.default}}),br=R({"node_modules/postcss/lib/stringifier.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i={colon:": ",indent:" ",beforeDecl:` +`,beforeRule:` +`,beforeOpen:" ",beforeClose:` +`,beforeComment:` +`,after:` +`,emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};function a(p){return p[0].toUpperCase()+p.slice(1)}var o=function(){function p(g){this.builder=g}var h=p.prototype;return h.stringify=function(c,t){this[c.type](c,t)},h.root=function(c){this.body(c),c.raws.after&&this.builder(c.raws.after)},h.comment=function(c){var t=this.raw(c,"left","commentLeft"),r=this.raw(c,"right","commentRight");this.builder("/*"+t+c.text+r+"*/",c)},h.decl=function(c,t){var r=this.raw(c,"between","colon"),u=c.prop+r+this.rawValue(c,"value");c.important&&(u+=c.raws.important||" !important"),t&&(u+=";"),this.builder(u,c)},h.rule=function(c){this.block(c,this.rawValue(c,"selector")),c.raws.ownSemicolon&&this.builder(c.raws.ownSemicolon,c,"end")},h.atrule=function(c,t){var r="@"+c.name,u=c.params?this.rawValue(c,"params"):"";if(typeof c.raws.afterName<"u"?r+=c.raws.afterName:u&&(r+=" "),c.nodes)this.block(c,r+u);else{var s=(c.raws.between||"")+(t?";":"");this.builder(r+u+s,c)}},h.body=function(c){for(var t=c.nodes.length-1;t>0&&c.nodes[t].type==="comment";)t-=1;for(var r=this.raw(c,"semicolon"),u=0;u"u"&&(u=i[r]),l.rawCache[r]=u,u},h.rawSemicolon=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length&&r.last.type==="decl"&&(t=r.raws.semicolon,typeof t<"u"))return!1}),t},h.rawEmptyBody=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length===0&&(t=r.raws.after,typeof t<"u"))return!1}),t},h.rawIndent=function(c){if(c.raws.indent)return c.raws.indent;var t;return c.walk(function(r){var u=r.parent;if(u&&u!==c&&u.parent&&u.parent===c&&typeof r.raws.before<"u"){var s=r.raws.before.split(` +`);return t=s[s.length-1],t=t.replace(/[^\s]/g,""),!1}}),t},h.rawBeforeComment=function(c,t){var r;return c.walkComments(function(u){if(typeof u.raws.before<"u")return r=u.raws.before,r.indexOf(` +`)!==-1&&(r=r.replace(/[^\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/[^\s]/g,"")),r},h.rawBeforeDecl=function(c,t){var r;return c.walkDecls(function(u){if(typeof u.raws.before<"u")return r=u.raws.before,r.indexOf(` +`)!==-1&&(r=r.replace(/[^\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/[^\s]/g,"")),r},h.rawBeforeRule=function(c){var t;return c.walk(function(r){if(r.nodes&&(r.parent!==c||c.first!==r)&&typeof r.raws.before<"u")return t=r.raws.before,t.indexOf(` +`)!==-1&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/[^\s]/g,"")),t},h.rawBeforeClose=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<"u")return t=r.raws.after,t.indexOf(` +`)!==-1&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/[^\s]/g,"")),t},h.rawBeforeOpen=function(c){var t;return c.walk(function(r){if(r.type!=="decl"&&(t=r.raws.between,typeof t<"u"))return!1}),t},h.rawColon=function(c){var t;return c.walkDecls(function(r){if(typeof r.raws.between<"u")return t=r.raws.between.replace(/[^\s:]/g,""),!1}),t},h.beforeAfter=function(c,t){var r;c.type==="decl"?r=this.raw(c,null,"beforeDecl"):c.type==="comment"?r=this.raw(c,null,"beforeComment"):t==="before"?r=this.raw(c,null,"beforeRule"):r=this.raw(c,null,"beforeClose");for(var u=c.parent,s=0;u&&u.type!=="root";)s+=1,u=u.parent;if(r.indexOf(` +`)!==-1){var l=this.raw(c,null,"indent");if(l.length)for(var m=0;m=k}function ce(te){if(F.length)return F.pop();if(!(q>=k)){var ie=te?te.ignoreUnclosed:!1;switch(B=D.charCodeAt(q),(B===p||B===g||B===t&&D.charCodeAt(q+1)!==p)&&(b=q,L+=1),B){case p:case h:case c:case t:case g:O=q;do O+=1,B=D.charCodeAt(O),B===p&&(b=O,L+=1);while(B===h||B===p||B===c||B===t||B===g);E=["space",D.slice(q,O)],q=O-1;break;case r:case u:case m:case v:case d:case y:case l:var ae=String.fromCharCode(B);E=[ae,ae,L,q-b];break;case s:if(Y=T.length?T.pop()[1]:"",G=D.charCodeAt(q+1),Y==="url"&&G!==i&&G!==a&&G!==h&&G!==p&&G!==c&&G!==g&&G!==t){O=q;do{if(J=!1,O=D.indexOf(")",O+1),O===-1)if($||ie){O=q;break}else re("bracket");for(M=O;D.charCodeAt(M-1)===o;)M-=1,J=!J}while(J);E=["brackets",D.slice(q,O+1),L,q-b,L,O-b],q=O}else O=D.indexOf(")",q+1),X=D.slice(q,O+1),O===-1||N.test(X)?E=["(","(",L,q-b]:(E=["brackets",X,L,q-b,L,O-b],q=O);break;case i:case a:j=B===i?"'":'"',O=q;do{if(J=!1,O=D.indexOf(j,O+1),O===-1)if($||ie){O=q+1;break}else re("string");for(M=O;D.charCodeAt(M-1)===o;)M-=1,J=!J}while(J);X=D.slice(q,O+1),C=X.split(` +`),I=C.length-1,I>0?(Q=L+I,K=O-C[I].length):(Q=L,K=b),E=["string",D.slice(q,O+1),L,q-b,Q,O-K],b=K,L=Q,q=O;break;case _:S.lastIndex=q+1,S.test(D),S.lastIndex===0?O=D.length-1:O=S.lastIndex-2,E=["at-word",D.slice(q,O+1),L,q-b,L,O-b],q=O;break;case o:for(O=q,Z=!0;D.charCodeAt(O+1)===o;)O+=1,Z=!Z;if(B=D.charCodeAt(O+1),Z&&B!==f&&B!==h&&B!==p&&B!==c&&B!==t&&B!==g&&(O+=1,P.test(D.charAt(O)))){for(;P.test(D.charAt(O+1));)O+=1;D.charCodeAt(O+1)===h&&(O+=1)}E=["word",D.slice(q,O+1),L,q-b,L,O-b],q=O;break;default:B===f&&D.charCodeAt(q+1)===w?(O=D.indexOf("*/",q+2)+1,O===0&&($||ie?O=D.length:re("comment")),X=D.slice(q,O+1),C=X.split(` +`),I=C.length-1,I>0?(Q=L+I,K=O-C[I].length):(Q=L,K=b),E=["comment",X,L,q-b,Q,O-K],b=K,L=Q,q=O):(x.lastIndex=q+1,x.test(D),x.lastIndex===0?O=D.length-1:O=x.lastIndex-2,E=["word",D.slice(q,O+1),L,q-b,L,O-b],T.push(E),q=O);break}return q++,E}}function fe(te){F.push(te)}return{back:fe,nextToken:ce,endOfFile:ne,position:z}}n.exports=e.default}}),ra=R({"node_modules/postcss/lib/parse.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i=o(zt()),a=o(_r());function o(h){return h&&h.__esModule?h:{default:h}}function f(h,g){var c=new a.default(h,g),t=new i.default(c);try{t.parse()}catch(r){throw r}return t.root}var p=f;e.default=p,n.exports=e.default}}),kf=R({"node_modules/postcss/lib/list.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i={split:function(f,p,h){for(var g=[],c="",t=!1,r=0,u=!1,s=!1,l=0;l0&&(r-=1):r===0&&p.indexOf(m)!==-1&&(t=!0),t?(c!==""&&g.push(c.trim()),c="",t=!1):c+=m}return(h||c!=="")&&g.push(c.trim()),g},space:function(f){var p=[" ",` +`," "];return i.split(f,p)},comma:function(f){return i.split(f,[","],!0)}},a=i;e.default=a,n.exports=e.default}}),ta=R({"node_modules/postcss/lib/rule.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i=o(kr()),a=o(kf());function o(t){return t&&t.__esModule?t:{default:t}}function f(t,r){for(var u=0;u"u"||m[Symbol.iterator]==null){if(Array.isArray(m)||(y=h(m))||v&&m&&typeof m.length=="number"){y&&(m=y);var w=0;return function(){return w>=m.length?{done:!0}:{done:!1,value:m[w++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return y=m[Symbol.iterator](),y.next.bind(y)}function h(m,v){if(!!m){if(typeof m=="string")return g(m,v);var y=Object.prototype.toString.call(m).slice(8,-1);if(y==="Object"&&m.constructor&&(y=m.constructor.name),y==="Map"||y==="Set")return Array.from(m);if(y==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return g(m,v)}}function g(m,v){(v==null||v>m.length)&&(v=m.length);for(var y=0,w=new Array(v);y=d&&(this.indexes[S]=_-1);return this},y.removeAll=function(){for(var d=p(this.nodes),_;!(_=d()).done;){var S=_.value;S.parent=void 0}return this.nodes=[],this},y.replaceValues=function(d,_,S){return S||(S=_,_={}),this.walkDecls(function(x){_.props&&_.props.indexOf(x.prop)===-1||_.fast&&x.value.indexOf(_.fast)===-1||(x.value=x.value.replace(d,S))}),this},y.every=function(d){return this.nodes.every(d)},y.some=function(d){return this.nodes.some(d)},y.index=function(d){return typeof d=="number"?d:this.nodes.indexOf(d)},y.normalize=function(d,_){var S=this;if(typeof d=="string"){var x=ra();d=u(x(d).nodes)}else if(Array.isArray(d)){d=d.slice(0);for(var N=p(d),P;!(P=N()).done;){var W=P.value;W.parent&&W.parent.removeChild(W,"ignore")}}else if(d.type==="root"){d=d.nodes.slice(0);for(var U=p(d),H;!(H=U()).done;){var D=H.value;D.parent&&D.parent.removeChild(D,"ignore")}}else if(d.type)d=[d];else if(d.prop){if(typeof d.value>"u")throw new Error("Value field is missed in node creation");typeof d.value!="string"&&(d.value=String(d.value)),d=[new i.default(d)]}else if(d.selector){var $=ta();d=[new $(d)]}else if(d.name){var B=na();d=[new B(d)]}else if(d.text)d=[new a.default(d)];else throw new Error("Unknown node type in node creation");var O=d.map(function(j){return j.parent&&j.parent.removeChild(j),typeof j.raws.before>"u"&&_&&typeof _.raws.before<"u"&&(j.raws.before=_.raws.before.replace(/[^\s]/g,"")),j.parent=S,j});return O},t(v,[{key:"first",get:function(){if(!!this.nodes)return this.nodes[0]}},{key:"last",get:function(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}}]),v}(o.default),l=s;e.default=l,n.exports=e.default}}),na=R({"node_modules/postcss/lib/at-rule.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i=a(kr());function a(h){return h&&h.__esModule?h:{default:h}}function o(h,g){h.prototype=Object.create(g.prototype),h.prototype.constructor=h,h.__proto__=g}var f=function(h){o(g,h);function g(t){var r;return r=h.call(this,t)||this,r.type="atrule",r}var c=g.prototype;return c.append=function(){var r;this.nodes||(this.nodes=[]);for(var u=arguments.length,s=new Array(u),l=0;l"u"||v[Symbol.iterator]==null){if(Array.isArray(v)||(w=c(v))||y&&v&&typeof v.length=="number"){w&&(v=w);var d=0;return function(){return d>=v.length?{done:!0}:{done:!1,value:v[d++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return w=v[Symbol.iterator](),w.next.bind(w)}function c(v,y){if(!!v){if(typeof v=="string")return t(v,y);var w=Object.prototype.toString.call(v).slice(8,-1);if(w==="Object"&&v.constructor&&(w=v.constructor.name),w==="Map"||w==="Set")return Array.from(v);if(w==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w))return t(v,y)}}function t(v,y){(y==null||y>v.length)&&(y=v.length);for(var w=0,d=new Array(y);w"u"&&(_.map={}),_.map.inline||(_.map.inline=!1),_.map.prev=d.map);else{var x=p.default;_.syntax&&(x=_.syntax.parse),_.parser&&(x=_.parser),x.parse&&(x=x.parse);try{S=x(d,_)}catch(N){this.error=N}}this.result=new f.default(w,S,_)}var y=v.prototype;return y.warnings=function(){return this.sync().warnings()},y.toString=function(){return this.css},y.then=function(d,_){return this.async().then(d,_)},y.catch=function(d){return this.async().catch(d)},y.finally=function(d){return this.async().then(d,d)},y.handleError=function(d,_){try{if(this.error=d,d.name==="CssSyntaxError"&&!d.plugin)d.plugin=_.postcssPlugin,d.setMessage();else if(_.postcssVersion&&!1)var S,x,N,P,W}catch(U){console&&console.error&&console.error(U)}},y.asyncTick=function(d,_){var S=this;if(this.plugin>=this.processor.plugins.length)return this.processed=!0,d();try{var x=this.processor.plugins[this.plugin],N=this.run(x);this.plugin+=1,s(N)?N.then(function(){S.asyncTick(d,_)}).catch(function(P){S.handleError(P,x),S.processed=!0,_(P)}):this.asyncTick(d,_)}catch(P){this.processed=!0,_(P)}},y.async=function(){var d=this;return this.processed?new Promise(function(_,S){d.error?S(d.error):_(d.stringify())}):this.processing?this.processing:(this.processing=new Promise(function(_,S){if(d.error)return S(d.error);d.plugin=0,d.asyncTick(_,S)}).then(function(){return d.processed=!0,d.stringify()}),this.processing)},y.sync=function(){if(this.processed)return this.result;if(this.processed=!0,this.processing)throw new Error("Use process(css).then(cb) to work with async plugins");if(this.error)throw this.error;for(var d=g(this.result.processor.plugins),_;!(_=d()).done;){var S=_.value,x=this.run(S);if(s(x))throw new Error("Use process(css).then(cb) to work with async plugins")}return this.result},y.run=function(d){this.result.lastPlugin=d;try{return d(this.result.root,this.result)}catch(_){throw this.handleError(_,d),_}},y.stringify=function(){if(this.stringified)return this.result;this.stringified=!0,this.sync();var d=this.result.opts,_=a.default;d.syntax&&(_=d.syntax.stringify),d.stringifier&&(_=d.stringifier),_.stringify&&(_=_.stringify);var S=new i.default(_,this.result.root,this.result.opts),x=S.generate();return this.result.css=x[0],this.result.map=x[1],this.result},u(v,[{key:"processor",get:function(){return this.result.processor}},{key:"opts",get:function(){return this.result.opts}},{key:"css",get:function(){return this.stringify().css}},{key:"content",get:function(){return this.stringify().content}},{key:"map",get:function(){return this.stringify().map}},{key:"root",get:function(){return this.sync().root}},{key:"messages",get:function(){return this.sync().messages}}]),v}(),m=l;e.default=m,n.exports=e.default}}),qf=R({"node_modules/postcss/lib/processor.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i=a(ia());function a(c){return c&&c.__esModule?c:{default:c}}function o(c,t){var r;if(typeof Symbol>"u"||c[Symbol.iterator]==null){if(Array.isArray(c)||(r=f(c))||t&&c&&typeof c.length=="number"){r&&(c=r);var u=0;return function(){return u>=c.length?{done:!0}:{done:!1,value:c[u++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return r=c[Symbol.iterator](),r.next.bind(r)}function f(c,t){if(!!c){if(typeof c=="string")return p(c,t);var r=Object.prototype.toString.call(c).slice(8,-1);if(r==="Object"&&c.constructor&&(r=c.constructor.name),r==="Map"||r==="Set")return Array.from(c);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(c,t)}}function p(c,t){(t==null||t>c.length)&&(t=c.length);for(var r=0,u=new Array(t);r"u"||t[Symbol.iterator]==null){if(Array.isArray(t)||(u=f(t))||r&&t&&typeof t.length=="number"){u&&(t=u);var s=0;return function(){return s>=t.length?{done:!0}:{done:!1,value:t[s++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return u=t[Symbol.iterator](),u.next.bind(u)}function f(t,r){if(!!t){if(typeof t=="string")return p(t,r);var u=Object.prototype.toString.call(t).slice(8,-1);if(u==="Object"&&t.constructor&&(u=t.constructor.name),u==="Map"||u==="Set")return Array.from(t);if(u==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u))return p(t,r)}}function p(t,r){(r==null||r>t.length)&&(r=t.length);for(var u=0,s=new Array(r);u1&&(this.nodes[1].raws.before=this.nodes[v].raws.before),t.prototype.removeChild.call(this,l)},u.normalize=function(l,m,v){var y=t.prototype.normalize.call(this,l);if(m){if(v==="prepend")this.nodes.length>1?m.raws.before=this.nodes[1].raws.before:delete m.raws.before;else if(this.first!==m)for(var w=o(y),d;!(d=w()).done;){var _=d.value;_.raws.before=m.raws.before}}return y},u.toResult=function(l){l===void 0&&(l={});var m=ia(),v=qf(),y=new m(new v,this,l);return y.stringify()},r}(i.default),c=g;e.default=c,n.exports=e.default}}),zt=R({"node_modules/postcss/lib/parser.js"(e,n){"use strict";A(),e.__esModule=!0,e.default=void 0;var i=g(ea()),a=g(Lt()),o=g(xr()),f=g(na()),p=g(Af()),h=g(ta());function g(t){return t&&t.__esModule?t:{default:t}}var c=function(){function t(u){this.input=u,this.root=new p.default,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:u,start:{line:1,column:1}}}var r=t.prototype;return r.createTokenizer=function(){this.tokenizer=(0,a.default)(this.input)},r.parse=function(){for(var s;!this.tokenizer.endOfFile();)switch(s=this.tokenizer.nextToken(),s[0]){case"space":this.spaces+=s[1];break;case";":this.freeSemicolon(s);break;case"}":this.end(s);break;case"comment":this.comment(s);break;case"at-word":this.atrule(s);break;case"{":this.emptyRule(s);break;default:this.other(s);break}this.endFile()},r.comment=function(s){var l=new o.default;this.init(l,s[2],s[3]),l.source.end={line:s[4],column:s[5]};var m=s[1].slice(2,-2);if(/^\s*$/.test(m))l.text="",l.raws.left=m,l.raws.right="";else{var v=m.match(/^(\s*)([^]*[^\s])(\s*)$/);l.text=v[2],l.raws.left=v[1],l.raws.right=v[3]}},r.emptyRule=function(s){var l=new h.default;this.init(l,s[2],s[3]),l.selector="",l.raws.between="",this.current=l},r.other=function(s){for(var l=!1,m=null,v=!1,y=null,w=[],d=[],_=s;_;){if(m=_[0],d.push(_),m==="("||m==="[")y||(y=_),w.push(m==="("?")":"]");else if(w.length===0)if(m===";")if(v){this.decl(d);return}else break;else if(m==="{"){this.rule(d);return}else if(m==="}"){this.tokenizer.back(d.pop()),l=!0;break}else m===":"&&(v=!0);else m===w[w.length-1]&&(w.pop(),w.length===0&&(y=null));_=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(l=!0),w.length>0&&this.unclosedBracket(y),l&&v){for(;d.length&&(_=d[d.length-1][0],!(_!=="space"&&_!=="comment"));)this.tokenizer.back(d.pop());this.decl(d)}else this.unknownWord(d)},r.rule=function(s){s.pop();var l=new h.default;this.init(l,s[0][2],s[0][3]),l.raws.between=this.spacesAndCommentsFromEnd(s),this.raw(l,"selector",s),this.current=l},r.decl=function(s){var l=new i.default;this.init(l);var m=s[s.length-1];for(m[0]===";"&&(this.semicolon=!0,s.pop()),m[4]?l.source.end={line:m[4],column:m[5]}:l.source.end={line:m[2],column:m[3]};s[0][0]!=="word";)s.length===1&&this.unknownWord(s),l.raws.before+=s.shift()[1];for(l.source.start={line:s[0][2],column:s[0][3]},l.prop="";s.length;){var v=s[0][0];if(v===":"||v==="space"||v==="comment")break;l.prop+=s.shift()[1]}l.raws.between="";for(var y;s.length;)if(y=s.shift(),y[0]===":"){l.raws.between+=y[1];break}else y[0]==="word"&&/\w/.test(y[1])&&this.unknownWord([y]),l.raws.between+=y[1];(l.prop[0]==="_"||l.prop[0]==="*")&&(l.raws.before+=l.prop[0],l.prop=l.prop.slice(1)),l.raws.between+=this.spacesAndCommentsFromStart(s),this.precheckMissedSemicolon(s);for(var w=s.length-1;w>0;w--){if(y=s[w],y[1].toLowerCase()==="!important"){l.important=!0;var d=this.stringFrom(s,w);d=this.spacesFromEnd(s)+d,d!==" !important"&&(l.raws.important=d);break}else if(y[1].toLowerCase()==="important"){for(var _=s.slice(0),S="",x=w;x>0;x--){var N=_[x][0];if(S.trim().indexOf("!")===0&&N!=="space")break;S=_.pop()[1]+S}S.trim().indexOf("!")===0&&(l.important=!0,l.raws.important=S,s=_)}if(y[0]!=="space"&&y[0]!=="comment")break}this.raw(l,"value",s),l.value.indexOf(":")!==-1&&this.checkMissedSemicolon(s)},r.atrule=function(s){var l=new f.default;l.name=s[1].slice(1),l.name===""&&this.unnamedAtrule(l,s),this.init(l,s[2],s[3]);for(var m,v,y=!1,w=!1,d=[];!this.tokenizer.endOfFile();){if(s=this.tokenizer.nextToken(),s[0]===";"){l.source.end={line:s[2],column:s[3]},this.semicolon=!0;break}else if(s[0]==="{"){w=!0;break}else if(s[0]==="}"){if(d.length>0){for(v=d.length-1,m=d[v];m&&m[0]==="space";)m=d[--v];m&&(l.source.end={line:m[4],column:m[5]})}this.end(s);break}else d.push(s);if(this.tokenizer.endOfFile()){y=!0;break}}l.raws.between=this.spacesAndCommentsFromEnd(d),d.length?(l.raws.afterName=this.spacesAndCommentsFromStart(d),this.raw(l,"params",d),y&&(s=d[d.length-1],l.source.end={line:s[4],column:s[5]},this.spaces=l.raws.between,l.raws.between="")):(l.raws.afterName="",l.params=""),w&&(l.nodes=[],this.current=l)},r.end=function(s){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end={line:s[2],column:s[3]},this.current=this.current.parent):this.unexpectedClose(s)},r.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces},r.freeSemicolon=function(s){if(this.spaces+=s[1],this.current.nodes){var l=this.current.nodes[this.current.nodes.length-1];l&&l.type==="rule"&&!l.raws.ownSemicolon&&(l.raws.ownSemicolon=this.spaces,this.spaces="")}},r.init=function(s,l,m){this.current.push(s),s.source={start:{line:l,column:m},input:this.input},s.raws.before=this.spaces,this.spaces="",s.type!=="comment"&&(this.semicolon=!1)},r.raw=function(s,l,m){for(var v,y,w=m.length,d="",_=!0,S,x,N=/^([.|#])?([\w])+/i,P=0;P=0&&(v=s[y],!(v[0]!=="space"&&(m+=1,m===2)));y--);throw this.input.error("Missed semicolon",v[2],v[3])}},t}();e.default=c,n.exports=e.default}}),Pf=R({"node_modules/postcss-less/lib/nodes/inline-comment.js"(e,n){A();var i=Lt(),a=_r();n.exports={isInlineComment(o){if(o[0]==="word"&&o[1].slice(0,2)==="//"){let f=o,p=[],h;for(;o;){if(/\r?\n/.test(o[1])){if(/['"].*\r?\n/.test(o[1])){p.push(o[1].substring(0,o[1].indexOf(` +`)));let c=o[1].substring(o[1].indexOf(` +`));c+=this.input.css.valueOf().substring(this.tokenizer.position()),this.input=new a(c),this.tokenizer=i(this.input)}else this.tokenizer.back(o);break}p.push(o[1]),h=o,o=this.tokenizer.nextToken({ignoreUnclosed:!0})}let g=["comment",p.join(""),f[2],f[3],h[2],h[3]];return this.inlineComment(g),!0}else if(o[1]==="/"){let f=this.tokenizer.nextToken({ignoreUnclosed:!0});if(f[0]==="comment"&&/^\/\*/.test(f[1]))return f[0]="word",f[1]=f[1].slice(1),o[1]="//",this.tokenizer.back(f),n.exports.isInlineComment.bind(this)(o)}return!1}}}}),Rf=R({"node_modules/postcss-less/lib/nodes/interpolation.js"(e,n){A(),n.exports={interpolation(i){let a=i,o=[i],f=["word","{","}"];if(i=this.tokenizer.nextToken(),a[1].length>1||i[0]!=="{")return this.tokenizer.back(i),!1;for(;i&&f.includes(i[0]);)o.push(i),i=this.tokenizer.nextToken();let p=o.map(r=>r[1]);[a]=o;let h=o.pop(),g=[a[2],a[3]],c=[h[4]||h[2],h[5]||h[3]],t=["word",p.join("")].concat(g,c);return this.tokenizer.back(i),this.tokenizer.back(t),!0}}}}),If=R({"node_modules/postcss-less/lib/nodes/mixin.js"(e,n){A();var i=/^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/,a=/\.[0-9]/,o=f=>{let[,p]=f,[h]=p;return(h==="."||h==="#")&&i.test(p)===!1&&a.test(p)===!1};n.exports={isMixinToken:o}}}),Cf=R({"node_modules/postcss-less/lib/nodes/import.js"(e,n){A();var i=Lt(),a=/^url\((.+)\)/;n.exports=o=>{let{name:f,params:p=""}=o;if(f==="import"&&p.length){o.import=!0;let h=i({css:p});for(o.filename=p.replace(a,"$1");!h.endOfFile();){let[g,c]=h.nextToken();if(g==="word"&&c==="url")return;if(g==="brackets"){o.options=c,o.filename=p.replace(c,"").trim();break}}}}}}),Nf=R({"node_modules/postcss-less/lib/nodes/variable.js"(e,n){A();var i=/:$/,a=/^:(\s+)?/;n.exports=o=>{let{name:f,params:p=""}=o;if(o.name.slice(-1)===":"){if(i.test(f)){let[h]=f.match(i);o.name=f.replace(h,""),o.raws.afterName=h+(o.raws.afterName||""),o.variable=!0,o.value=o.params}if(a.test(p)){let[h]=p.match(a);o.value=p.replace(h,""),o.raws.afterName=(o.raws.afterName||"")+h,o.variable=!0}}}}}),jf=R({"node_modules/postcss-less/lib/LessParser.js"(e,n){A();var i=xr(),a=zt(),{isInlineComment:o}=Pf(),{interpolation:f}=Rf(),{isMixinToken:p}=If(),h=Cf(),g=Nf(),c=/(!\s*important)$/i;n.exports=class extends a{constructor(){super(...arguments),this.lastNode=null}atrule(r){f.bind(this)(r)||(super.atrule(r),h(this.lastNode),g(this.lastNode))}decl(){super.decl(...arguments),/extend\(.+\)/i.test(this.lastNode.value)&&(this.lastNode.extend=!0)}each(r){r[0][1]=" ".concat(r[0][1]);let u=r.findIndex(y=>y[0]==="("),s=r.reverse().find(y=>y[0]===")"),l=r.reverse().indexOf(s),v=r.splice(u,l).map(y=>y[1]).join("");for(let y of r.reverse())this.tokenizer.back(y);this.atrule(this.tokenizer.nextToken()),this.lastNode.function=!0,this.lastNode.params=v}init(r,u,s){super.init(r,u,s),this.lastNode=r}inlineComment(r){let u=new i,s=r[1].slice(2);if(this.init(u,r[2],r[3]),u.source.end={line:r[4],column:r[5]},u.inline=!0,u.raws.begin="//",/^\s*$/.test(s))u.text="",u.raws.left=s,u.raws.right="";else{let l=s.match(/^(\s*)([^]*[^\s])(\s*)$/);[,u.raws.left,u.text,u.raws.right]=l}}mixin(r){let[u]=r,s=u[1].slice(0,1),l=r.findIndex(d=>d[0]==="brackets"),m=r.findIndex(d=>d[0]==="("),v="";if((l<0||l>3)&&m>0){let d=r.reduce(($,B,O)=>B[0]===")"?O:$),S=r.slice(m,d+m).map($=>$[1]).join(""),[x]=r.slice(m),N=[x[2],x[3]],[P]=r.slice(d,d+1),W=[P[2],P[3]],U=["brackets",S].concat(N,W),H=r.slice(0,m),D=r.slice(d+1);r=H,r.push(U),r=r.concat(D)}let y=[];for(let d of r)if((d[1]==="!"||y.length)&&y.push(d),d[1]==="important")break;if(y.length){let[d]=y,_=r.indexOf(d),S=y[y.length-1],x=[d[2],d[3]],N=[S[4],S[5]],P=y.map(U=>U[1]).join(""),W=["word",P].concat(x,N);r.splice(_,y.length,W)}let w=r.findIndex(d=>c.test(d[1]));w>0&&([,v]=r[w],r.splice(w,1));for(let d of r.reverse())this.tokenizer.back(d);this.atrule(this.tokenizer.nextToken()),this.lastNode.mixin=!0,this.lastNode.raws.identifier=s,v&&(this.lastNode.important=!0,this.lastNode.raws.important=v)}other(r){o.bind(this)(r)||super.other(r)}rule(r){let u=r[r.length-1],s=r[r.length-2];if(s[0]==="at-word"&&u[0]==="{"&&(this.tokenizer.back(u),f.bind(this)(s))){let m=this.tokenizer.nextToken();r=r.slice(0,r.length-2).concat([m]);for(let v of r.reverse())this.tokenizer.back(v);return}super.rule(r),/:extend\(.+\)/i.test(this.lastNode.selector)&&(this.lastNode.extend=!0)}unknownWord(r){let[u]=r;if(r[0][1]==="each"&&r[1][0]==="("){this.each(r);return}if(p(u)){this.mixin(r);return}super.unknownWord(r)}}}}),Mf=R({"node_modules/postcss-less/lib/LessStringifier.js"(e,n){A();var i=br();n.exports=class extends i{atrule(o,f){if(!o.mixin&&!o.variable&&!o.function){super.atrule(o,f);return}let p=o.function?"":o.raws.identifier||"@",h="".concat(p).concat(o.name),g=o.params?this.rawValue(o,"params"):"",c=o.raws.important||"";if(o.variable&&(g=o.value),typeof o.raws.afterName<"u"?h+=o.raws.afterName:g&&(h+=" "),o.nodes)this.block(o,h+g+c);else{let t=(o.raws.between||"")+c+(f?";":"");this.builder(h+g+t,o)}}comment(o){if(o.inline){let f=this.raw(o,"left","commentLeft"),p=this.raw(o,"right","commentRight");this.builder("//".concat(f).concat(o.text).concat(p),o)}else super.comment(o)}}}}),Df=R({"node_modules/postcss-less/lib/index.js"(e,n){A();var i=_r(),a=jf(),o=Mf();n.exports={parse(f,p){let h=new i(f,p),g=new a(h);return g.parse(),g.root},stringify(f,p){new o(p).stringify(f)},nodeToString(f){let p="";return n.exports.stringify(f,h=>{p+=h}),p}}}}),Lf=R({"node_modules/postcss-scss/lib/scss-stringifier.js"(e,n){"use strict";A();function i(f,p){f.prototype=Object.create(p.prototype),f.prototype.constructor=f,f.__proto__=p}var a=br(),o=function(f){i(p,f);function p(){return f.apply(this,arguments)||this}var h=p.prototype;return h.comment=function(c){var t=this.raw(c,"left","commentLeft"),r=this.raw(c,"right","commentRight");if(c.raws.inline){var u=c.raws.text||c.text;this.builder("//"+t+u+r,c)}else this.builder("/*"+t+c.text+r+"*/",c)},h.decl=function(c,t){if(!c.isNested)f.prototype.decl.call(this,c,t);else{var r=this.raw(c,"between","colon"),u=c.prop+r+this.rawValue(c,"value");c.important&&(u+=c.raws.important||" !important"),this.builder(u+"{",c,"start");var s;c.nodes&&c.nodes.length?(this.body(c),s=this.raw(c,"after")):s=this.raw(c,"after","emptyBody"),s&&this.builder(s),this.builder("}",c,"end")}},h.rawValue=function(c,t){var r=c[t],u=c.raws[t];return u&&u.value===r?u.scss?u.scss:u.raw:r},p}(a);n.exports=o}}),zf=R({"node_modules/postcss-scss/lib/scss-stringify.js"(e,n){"use strict";A();var i=Lf();n.exports=function(o,f){var p=new i(f);p.stringify(o)}}}),Bf=R({"node_modules/postcss-scss/lib/nested-declaration.js"(e,n){"use strict";A();function i(f,p){f.prototype=Object.create(p.prototype),f.prototype.constructor=f,f.__proto__=p}var a=kr(),o=function(f){i(p,f);function p(h){var g;return g=f.call(this,h)||this,g.type="decl",g.isNested=!0,g.nodes||(g.nodes=[]),g}return p}(a);n.exports=o}}),Ff=R({"node_modules/postcss-scss/lib/scss-tokenize.js"(e,n){"use strict";A();var i="'".charCodeAt(0),a='"'.charCodeAt(0),o="\\".charCodeAt(0),f="/".charCodeAt(0),p=` +`.charCodeAt(0),h=" ".charCodeAt(0),g="\f".charCodeAt(0),c=" ".charCodeAt(0),t="\r".charCodeAt(0),r="[".charCodeAt(0),u="]".charCodeAt(0),s="(".charCodeAt(0),l=")".charCodeAt(0),m="{".charCodeAt(0),v="}".charCodeAt(0),y=";".charCodeAt(0),w="*".charCodeAt(0),d=":".charCodeAt(0),_="@".charCodeAt(0),S=",".charCodeAt(0),x="#".charCodeAt(0),N=/[ \n\t\r\f{}()'"\\;/[\]#]/g,P=/[ \n\t\r\f(){}:;@!'"\\\][#]|\/(?=\*)/g,W=/.[\\/("'\n]/,U=/[a-f0-9]/i,H=/[\r\f\n]/g;n.exports=function($,B){B===void 0&&(B={});var O=$.css.valueOf(),j=B.ignoreErrors,C,I,X,Z,Q,K,J,M,Y,G,E,k,b,L,q=O.length,T=-1,F=1,z=0,re=[],ne=[];function ce(se){throw $.error("Unclosed "+se,F,z-T)}function fe(){return ne.length===0&&z>=q}function te(){for(var se=1,le=!1,pe=!1;se>0;)I+=1,O.length<=I&&ce("interpolation"),C=O.charCodeAt(I),k=O.charCodeAt(I+1),le?!pe&&C===le?(le=!1,pe=!1):C===o?pe=!G:pe&&(pe=!1):C===i||C===a?le=C:C===v?se-=1:C===x&&k===m&&(se+=1)}function ie(){if(ne.length)return ne.pop();if(!(z>=q)){switch(C=O.charCodeAt(z),(C===p||C===g||C===t&&O.charCodeAt(z+1)!==p)&&(T=z,F+=1),C){case p:case h:case c:case t:case g:I=z;do I+=1,C=O.charCodeAt(I),C===p&&(T=I,F+=1);while(C===h||C===p||C===c||C===t||C===g);b=["space",O.slice(z,I)],z=I-1;break;case r:b=["[","[",F,z-T];break;case u:b=["]","]",F,z-T];break;case m:b=["{","{",F,z-T];break;case v:b=["}","}",F,z-T];break;case S:b=["word",",",F,z-T,F,z-T+1];break;case d:b=[":",":",F,z-T];break;case y:b=[";",";",F,z-T];break;case s:if(E=re.length?re.pop()[1]:"",k=O.charCodeAt(z+1),E==="url"&&k!==i&&k!==a){for(L=1,G=!1,I=z+1;I<=O.length-1;){if(k=O.charCodeAt(I),k===o)G=!G;else if(k===s)L+=1;else if(k===l&&(L-=1,L===0))break;I+=1}K=O.slice(z,I+1),Z=K.split(` +`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=["brackets",K,F,z-T,M,I-Y],T=Y,F=M,z=I}else I=O.indexOf(")",z+1),K=O.slice(z,I+1),I===-1||W.test(K)?b=["(","(",F,z-T]:(b=["brackets",K,F,z-T,F,I-T],z=I);break;case l:b=[")",")",F,z-T];break;case i:case a:for(X=C,I=z,G=!1;I0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=["string",O.slice(z,I+1),F,z-T,M,I-Y],T=Y,F=M,z=I;break;case _:N.lastIndex=z+1,N.test(O),N.lastIndex===0?I=O.length-1:I=N.lastIndex-2,b=["at-word",O.slice(z,I+1),F,z-T,F,I-T],z=I;break;case o:for(I=z,J=!0;O.charCodeAt(I+1)===o;)I+=1,J=!J;if(C=O.charCodeAt(I+1),J&&C!==f&&C!==h&&C!==p&&C!==c&&C!==t&&C!==g&&(I+=1,U.test(O.charAt(I)))){for(;U.test(O.charAt(I+1));)I+=1;O.charCodeAt(I+1)===h&&(I+=1)}b=["word",O.slice(z,I+1),F,z-T,F,I-T],z=I;break;default:k=O.charCodeAt(z+1),C===x&&k===m?(I=z,te(),K=O.slice(z,I+1),Z=K.split(` +`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=["word",K,F,z-T,M,I-Y],T=Y,F=M,z=I):C===f&&k===w?(I=O.indexOf("*/",z+2)+1,I===0&&(j?I=O.length:ce("comment")),K=O.slice(z,I+1),Z=K.split(` +`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=["comment",K,F,z-T,M,I-Y],T=Y,F=M,z=I):C===f&&k===f?(H.lastIndex=z+1,H.test(O),H.lastIndex===0?I=O.length-1:I=H.lastIndex-2,K=O.slice(z,I+1),b=["comment",K,F,z-T,F,I-T,"inline"],z=I):(P.lastIndex=z+1,P.test(O),P.lastIndex===0?I=O.length-1:I=P.lastIndex-2,b=["word",O.slice(z,I+1),F,z-T,F,I-T],re.push(b),z=I);break}return z++,b}}function ae(se){ne.push(se)}return{back:ae,nextToken:ie,endOfFile:fe}}}}),Uf=R({"node_modules/postcss-scss/lib/scss-parser.js"(e,n){"use strict";A();function i(g,c){g.prototype=Object.create(c.prototype),g.prototype.constructor=g,g.__proto__=c}var a=xr(),o=zt(),f=Bf(),p=Ff(),h=function(g){i(c,g);function c(){return g.apply(this,arguments)||this}var t=c.prototype;return t.createTokenizer=function(){this.tokenizer=p(this.input)},t.rule=function(u){for(var s=!1,l=0,m="",w=u,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;if(s)_[0]!=="comment"&&_[0]!=="{"&&(m+=_[1]);else{if(_[0]==="space"&&_[1].indexOf(` +`)!==-1)break;_[0]==="("?l+=1:_[0]===")"?l-=1:l===0&&_[0]===":"&&(s=!0)}}if(!s||m.trim()===""||/^[a-zA-Z-:#]/.test(m))g.prototype.rule.call(this,u);else{u.pop();var S=new f;this.init(S);var x=u[u.length-1];for(x[4]?S.source.end={line:x[4],column:x[5]}:S.source.end={line:x[2],column:x[3]};u[0][0]!=="word";)S.raws.before+=u.shift()[1];for(S.source.start={line:u[0][2],column:u[0][3]},S.prop="";u.length;){var N=u[0][0];if(N===":"||N==="space"||N==="comment")break;S.prop+=u.shift()[1]}S.raws.between="";for(var P;u.length;)if(P=u.shift(),P[0]===":"){S.raws.between+=P[1];break}else S.raws.between+=P[1];(S.prop[0]==="_"||S.prop[0]==="*")&&(S.raws.before+=S.prop[0],S.prop=S.prop.slice(1)),S.raws.between+=this.spacesAndCommentsFromStart(u),this.precheckMissedSemicolon(u);for(var W=u.length-1;W>0;W--){if(P=u[W],P[1]==="!important"){S.important=!0;var U=this.stringFrom(u,W);U=this.spacesFromEnd(u)+U,U!==" !important"&&(S.raws.important=U);break}else if(P[1]==="important"){for(var H=u.slice(0),D="",$=W;$>0;$--){var B=H[$][0];if(D.trim().indexOf("!")===0&&B!=="space")break;D=H.pop()[1]+D}D.trim().indexOf("!")===0&&(S.important=!0,S.raws.important=D,u=H)}if(P[0]!=="space"&&P[0]!=="comment")break}this.raw(S,"value",u),S.value.indexOf(":")!==-1&&this.checkMissedSemicolon(u),this.current=S}},t.comment=function(u){if(u[6]==="inline"){var s=new a;this.init(s,u[2],u[3]),s.raws.inline=!0,s.source.end={line:u[4],column:u[5]};var l=u[1].slice(2);if(/^\s*$/.test(l))s.text="",s.raws.left=l,s.raws.right="";else{var m=l.match(/^(\s*)([^]*[^\s])(\s*)$/),v=m[2].replace(/(\*\/|\/\*)/g,"*//*");s.text=v,s.raws.left=m[1],s.raws.right=m[3],s.raws.text=m[2]}}else g.prototype.comment.call(this,u)},t.raw=function(u,s,l){if(g.prototype.raw.call(this,u,s,l),u.raws[s]){var m=u.raws[s].raw;u.raws[s].raw=l.reduce(function(v,y){if(y[0]==="comment"&&y[6]==="inline"){var w=y[1].slice(2).replace(/(\*\/|\/\*)/g,"*//*");return v+"/*"+w+"*/"}else return v+y[1]},""),m!==u.raws[s].raw&&(u.raws[s].scss=m)}},c}(o);n.exports=h}}),Wf=R({"node_modules/postcss-scss/lib/scss-parse.js"(e,n){"use strict";A();var i=_r(),a=Uf();n.exports=function(f,p){var h=new i(f,p),g=new a(h);return g.parse(),g.root}}}),$f=R({"node_modules/postcss-scss/lib/scss-syntax.js"(e,n){"use strict";A();var i=zf(),a=Wf();n.exports={parse:a,stringify:i}}});A();var Vf=ml(),pt=Cs(),Gf=Ns(),{hasPragma:Hf}=Tl(),{locStart:Jf,locEnd:Kf}=Js(),{calculateLoc:Qf,replaceQuotesInInlineComments:Yf}=Js(),Xf=Pl(),Zf=Rl(),ht=Il(),sa=Cl(),ep=Nl(),rp=jl(),tp=Ml(),np=Dl(),ip=e=>{for(;e.parent;)e=e.parent;return e};function sp(e,n){let{nodes:i}=e,a={open:null,close:null,groups:[],type:"paren_group"},o=[a],f=a,p={groups:[],type:"comma_group"},h=[p];for(let g=0;g0&&a.groups.push(p),a.close=c,h.length===1)throw new Error("Unbalanced parenthesis");h.pop(),p=pt(h),p.groups.push(a),o.pop(),a=pt(o)}else c.type==="comma"?(a.groups.push(p),p={groups:[],type:"comma_group"},h[h.length-1]=p):p.groups.push(c)}return p.groups.length>0&&a.groups.push(p),f}function hr(e){return e.type==="paren_group"&&!e.open&&!e.close&&e.groups.length===1||e.type==="comma_group"&&e.groups.length===1?hr(e.groups[0]):e.type==="paren_group"||e.type==="comma_group"?Object.assign(Object.assign({},e),{},{groups:e.groups.map(hr)}):e}function Xe(e,n,i){if(e&&typeof e=="object"){delete e.parent;for(let a in e)Xe(e[a],n,i),a==="type"&&typeof e[a]=="string"&&!e[a].startsWith(n)&&(!i||!i.test(e[a]))&&(e[a]=n+e[a])}return e}function oa(e){if(e&&typeof e=="object"){delete e.parent;for(let n in e)oa(e[n]);!Array.isArray(e)&&e.value&&!e.type&&(e.type="unknown")}return e}function aa(e,n){if(e&&typeof e=="object"){for(let i in e)i!=="parent"&&(aa(e[i],n),i==="nodes"&&(e.group=hr(sp(e,n)),delete e[i]));delete e.parent}return e}function Pe(e,n){let i=lf(),a=null;try{a=i(e,{loose:!0}).parse()}catch{return{type:"value-unknown",value:e}}a.text=e;let o=aa(a,n);return Xe(o,"value-",/^selector-/)}function Ie(e){if(/\/\/|\/\*/.test(e))return{type:"selector-unknown",value:e.trim()};let n=vf(),i=null;try{n(a=>{i=a}).process(e)}catch{return{type:"selector-unknown",value:e}}return Xe(i,"selector-")}function op(e){let n=gf().default,i=null;try{i=n(e)}catch{return{type:"selector-unknown",value:e}}return Xe(oa(i),"media-")}var ap=/(\s*)(!default).*$/,up=/(\s*)(!global).*$/;function ua(e,n){if(e&&typeof e=="object"){delete e.parent;for(let f in e)ua(e[f],n);if(!e.type)return e;e.raws||(e.raws={});let i="";typeof e.selector=="string"&&(i=e.raws.selector?e.raws.selector.scss?e.raws.selector.scss:e.raws.selector.raw:e.selector,e.raws.between&&e.raws.between.trim().length>0&&(i+=e.raws.between),e.raws.selector=i);let a="";typeof e.value=="string"&&(a=e.raws.value?e.raws.value.scss?e.raws.value.scss:e.raws.value.raw:e.value,a=a.trim(),e.raws.value=a);let o="";if(typeof e.params=="string"&&(o=e.raws.params?e.raws.params.scss?e.raws.params.scss:e.raws.params.raw:e.params,e.raws.afterName&&e.raws.afterName.trim().length>0&&(o=e.raws.afterName+o),e.raws.between&&e.raws.between.trim().length>0&&(o=o+e.raws.between),o=o.trim(),e.raws.params=o),i.trim().length>0)return i.startsWith("@")&&i.endsWith(":")?e:e.mixin?(e.selector=Pe(i,n),e):(ep(e)&&(e.isSCSSNesterProperty=!0),e.selector=Ie(i),e);if(a.length>0){let f=a.match(ap);f&&(a=a.slice(0,f.index),e.scssDefault=!0,f[0].trim()!=="!default"&&(e.raws.scssDefault=f[0]));let p=a.match(up);if(p&&(a=a.slice(0,p.index),e.scssGlobal=!0,p[0].trim()!=="!global"&&(e.raws.scssGlobal=p[0])),a.startsWith("progid:"))return{type:"value-unknown",value:a};e.value=Pe(a,n)}if(ht(n)&&e.type==="css-decl"&&a.startsWith("extend(")&&(e.extend||(e.extend=e.raws.between===":"),e.extend&&!e.selector&&(delete e.value,e.selector=Ie(a.slice(7,-1)))),e.type==="css-atrule"){if(ht(n)){if(e.mixin){let f=e.raws.identifier+e.name+e.raws.afterName+e.raws.params;return e.selector=Ie(f),delete e.params,e}if(e.function)return e}if(n.parser==="css"&&e.name==="custom-selector"){let f=e.params.match(/:--\S+\s+/)[0].trim();return e.customSelector=f,e.selector=Ie(e.params.slice(f.length).trim()),delete e.params,e}if(ht(n)){if(e.name.includes(":")&&!e.params){e.variable=!0;let f=e.name.split(":");e.name=f[0],e.value=Pe(f.slice(1).join(":"),n)}if(!["page","nest","keyframes"].includes(e.name)&&e.params&&e.params[0]===":"&&(e.variable=!0,e.value=Pe(e.params.slice(1),n),e.raws.afterName+=":"),e.variable)return delete e.params,e}}if(e.type==="css-atrule"&&o.length>0){let{name:f}=e,p=e.name.toLowerCase();return f==="warn"||f==="error"?(e.params={type:"media-unknown",value:o},e):f==="extend"||f==="nest"?(e.selector=Ie(o),delete e.params,e):f==="at-root"?(/^\(\s*(?:without|with)\s*:.+\)$/s.test(o)?e.params=Pe(o,n):(e.selector=Ie(o),delete e.params),e):np(p)?(e.import=!0,delete e.filename,e.params=Pe(o,n),e):["namespace","supports","if","else","for","each","while","debug","mixin","include","function","return","define-mixin","add-mixin"].includes(f)?(o=o.replace(/(\$\S+?)(\s+)?\.{3}/,"$1...$2"),o=o.replace(/^(?!if)(\S+)(\s+)\(/,"$1($2"),e.value=Pe(o,n),delete e.params,e):["media","custom-media"].includes(p)?o.includes("#{")?{type:"media-unknown",value:o}:(e.params=op(o),e):(e.params=o,e)}}return e}function ca(e,n,i){let a=Gf(n),{frontMatter:o}=a;n=a.content;let f;try{f=e(n)}catch(p){let{name:h,reason:g,line:c,column:t}=p;throw typeof c!="number"?p:Vf("".concat(h,": ").concat(g),{start:{line:c,column:t}})}return f=ua(Xe(f,"css-"),i),Qf(f,n),o&&(o.source={startOffset:0,endOffset:o.raw.length},f.nodes.unshift(o)),f}function cp(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=sa(i.parser,e)?[xt,bt]:[bt,xt],f;for(let p of o)try{return p(e,n,i)}catch(h){f=f||h}if(f)throw f}function bt(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=Df();return ca(o=>a.parse(Yf(o)),e,i)}function xt(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:a}=$f();return ca(a,e,i)}var dt={astFormat:"postcss",hasPragma:Hf,locStart:Jf,locEnd:Kf};la.exports={parsers:{css:Object.assign(Object.assign({},dt),{},{parse:cp}),less:Object.assign(Object.assign({},dt),{},{parse:bt}),scss:Object.assign(Object.assign({},dt),{},{parse:xt})}}});return lp();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-typescript.js b/node_modules/prettier/parser-typescript.js new file mode 100644 index 0000000..5640e2c --- /dev/null +++ b/node_modules/prettier/parser-typescript.js @@ -0,0 +1,280 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.typescript=e()}})(function(){"use strict";var Bn=(M,re)=>()=>(re||M((re={exports:{}}).exports,re),re.exports);var qc=Bn((Sz,CA)=>{var $0=function(M){return M&&M.Math==Math&&M};CA.exports=$0(typeof globalThis=="object"&&globalThis)||$0(typeof window=="object"&&window)||$0(typeof self=="object"&&self)||$0(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var cg=Bn((Tz,kA)=>{kA.exports=function(M){try{return!!M()}catch{return!0}}});var Am=Bn((xz,AA)=>{var OL=cg();AA.exports=!OL(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Z0=Bn((Ez,NA)=>{var FL=cg();NA.exports=!FL(function(){var M=function(){}.bind();return typeof M!="function"||M.hasOwnProperty("prototype")})});var r1=Bn((Cz,PA)=>{var ML=Z0(),e1=Function.prototype.call;PA.exports=ML?e1.bind(e1):function(){return e1.apply(e1,arguments)}});var FA=Bn(OA=>{"use strict";var IA={}.propertyIsEnumerable,wA=Object.getOwnPropertyDescriptor,LL=wA&&!IA.call({1:2},1);OA.f=LL?function(re){var Ve=wA(this,re);return!!Ve&&Ve.enumerable}:IA});var XS=Bn((Az,MA)=>{MA.exports=function(M,re){return{enumerable:!(M&1),configurable:!(M&2),writable:!(M&4),value:re}}});var dp=Bn((Nz,BA)=>{var LA=Z0(),RA=Function.prototype,RL=RA.bind,QS=RA.call,BL=LA&&RL.bind(QS,QS);BA.exports=LA?function(M){return M&&BL(M)}:function(M){return M&&function(){return QS.apply(M,arguments)}}});var i1=Bn((Pz,jA)=>{var JA=dp(),JL=JA({}.toString),jL=JA("".slice);jA.exports=function(M){return jL(JL(M),8,-1)}});var zA=Bn((Iz,UA)=>{var UL=qc(),zL=dp(),WL=cg(),qL=i1(),YS=UL.Object,VL=zL("".split);UA.exports=WL(function(){return!YS("z").propertyIsEnumerable(0)})?function(M){return qL(M)=="String"?VL(M,""):YS(M)}:YS});var $S=Bn((wz,WA)=>{var KL=qc(),GL=KL.TypeError;WA.exports=function(M){if(M==null)throw GL("Can't call method on "+M);return M}});var t1=Bn((Oz,qA)=>{var HL=zA(),XL=$S();qA.exports=function(M){return HL(XL(M))}});var gp=Bn((Fz,VA)=>{VA.exports=function(M){return typeof M=="function"}});var Nm=Bn((Mz,KA)=>{var QL=gp();KA.exports=function(M){return typeof M=="object"?M!==null:QL(M)}});var qy=Bn((Lz,GA)=>{var ZS=qc(),YL=gp(),$L=function(M){return YL(M)?M:void 0};GA.exports=function(M,re){return arguments.length<2?$L(ZS[M]):ZS[M]&&ZS[M][re]}});var XA=Bn((Rz,HA)=>{var ZL=dp();HA.exports=ZL({}.isPrototypeOf)});var YA=Bn((Bz,QA)=>{var eR=qy();QA.exports=eR("navigator","userAgent")||""});var aN=Bn((Jz,tN)=>{var iN=qc(),eT=YA(),$A=iN.process,ZA=iN.Deno,eN=$A&&$A.versions||ZA&&ZA.version,rN=eN&&eN.v8,ad,a1;rN&&(ad=rN.split("."),a1=ad[0]>0&&ad[0]<4?1:+(ad[0]+ad[1]));!a1&&eT&&(ad=eT.match(/Edge\/(\d+)/),(!ad||ad[1]>=74)&&(ad=eT.match(/Chrome\/(\d+)/),ad&&(a1=+ad[1])));tN.exports=a1});var rT=Bn((jz,oN)=>{var nN=aN(),rR=cg();oN.exports=!!Object.getOwnPropertySymbols&&!rR(function(){var M=Symbol();return!String(M)||!(Object(M)instanceof Symbol)||!Symbol.sham&&nN&&nN<41})});var iT=Bn((Uz,sN)=>{var iR=rT();sN.exports=iR&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var tT=Bn((zz,cN)=>{var tR=qc(),aR=qy(),nR=gp(),oR=XA(),sR=iT(),cR=tR.Object;cN.exports=sR?function(M){return typeof M=="symbol"}:function(M){var re=aR("Symbol");return nR(re)&&oR(re.prototype,cR(M))}});var lN=Bn((Wz,uN)=>{var uR=qc(),lR=uR.String;uN.exports=function(M){try{return lR(M)}catch{return"Object"}}});var n1=Bn((qz,fN)=>{var fR=qc(),_R=gp(),pR=lN(),dR=fR.TypeError;fN.exports=function(M){if(_R(M))return M;throw dR(pR(M)+" is not a function")}});var pN=Bn((Vz,_N)=>{var gR=n1();_N.exports=function(M,re){var Ve=M[re];return Ve==null?void 0:gR(Ve)}});var gN=Bn((Kz,dN)=>{var mR=qc(),aT=r1(),nT=gp(),oT=Nm(),vR=mR.TypeError;dN.exports=function(M,re){var Ve,Ke;if(re==="string"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M))||nT(Ve=M.valueOf)&&!oT(Ke=aT(Ve,M))||re!=="string"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M)))return Ke;throw vR("Can't convert object to primitive value")}});var vN=Bn((Gz,mN)=>{mN.exports=!1});var o1=Bn((Hz,hN)=>{var yN=qc(),yR=Object.defineProperty;hN.exports=function(M,re){try{yR(yN,M,{value:re,configurable:!0,writable:!0})}catch{yN[M]=re}return re}});var s1=Bn((Xz,bN)=>{var hR=qc(),DR=o1(),DN="__core-js_shared__",bR=hR[DN]||DR(DN,{});bN.exports=bR});var sT=Bn((Qz,TN)=>{var SR=vN(),SN=s1();(TN.exports=function(M,re){return SN[M]||(SN[M]=re!==void 0?re:{})})("versions",[]).push({version:"3.22.2",mode:SR?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var cT=Bn((Yz,xN)=>{var TR=qc(),xR=$S(),ER=TR.Object;xN.exports=function(M){return ER(xR(M))}});var Wg=Bn(($z,EN)=>{var CR=dp(),kR=cT(),AR=CR({}.hasOwnProperty);EN.exports=Object.hasOwn||function(re,Ve){return AR(kR(re),Ve)}});var uT=Bn((Zz,CN)=>{var NR=dp(),PR=0,IR=Math.random(),wR=NR(1 .toString);CN.exports=function(M){return"Symbol("+(M===void 0?"":M)+")_"+wR(++PR+IR,36)}});var Vy=Bn((eW,IN)=>{var OR=qc(),FR=sT(),kN=Wg(),MR=uT(),AN=rT(),PN=iT(),Iv=FR("wks"),Pm=OR.Symbol,NN=Pm&&Pm.for,LR=PN?Pm:Pm&&Pm.withoutSetter||MR;IN.exports=function(M){if(!kN(Iv,M)||!(AN||typeof Iv[M]=="string")){var re="Symbol."+M;AN&&kN(Pm,M)?Iv[M]=Pm[M]:PN&&NN?Iv[M]=NN(re):Iv[M]=LR(re)}return Iv[M]}});var MN=Bn((rW,FN)=>{var RR=qc(),BR=r1(),wN=Nm(),ON=tT(),JR=pN(),jR=gN(),UR=Vy(),zR=RR.TypeError,WR=UR("toPrimitive");FN.exports=function(M,re){if(!wN(M)||ON(M))return M;var Ve=JR(M,WR),Ke;if(Ve){if(re===void 0&&(re="default"),Ke=BR(Ve,M,re),!wN(Ke)||ON(Ke))return Ke;throw zR("Can't convert object to primitive value")}return re===void 0&&(re="number"),jR(M,re)}});var lT=Bn((iW,LN)=>{var qR=MN(),VR=tT();LN.exports=function(M){var re=qR(M,"string");return VR(re)?re:re+""}});var JN=Bn((tW,BN)=>{var KR=qc(),RN=Nm(),fT=KR.document,GR=RN(fT)&&RN(fT.createElement);BN.exports=function(M){return GR?fT.createElement(M):{}}});var _T=Bn((aW,jN)=>{var HR=Am(),XR=cg(),QR=JN();jN.exports=!HR&&!XR(function(){return Object.defineProperty(QR("div"),"a",{get:function(){return 7}}).a!=7})});var pT=Bn(zN=>{var YR=Am(),$R=r1(),ZR=FA(),eB=XS(),rB=t1(),iB=lT(),tB=Wg(),aB=_T(),UN=Object.getOwnPropertyDescriptor;zN.f=YR?UN:function(re,Ve){if(re=rB(re),Ve=iB(Ve),aB)try{return UN(re,Ve)}catch{}if(tB(re,Ve))return eB(!$R(ZR.f,re,Ve),re[Ve])}});var qN=Bn((oW,WN)=>{var nB=Am(),oB=cg();WN.exports=nB&&oB(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var dT=Bn((sW,KN)=>{var VN=qc(),sB=Nm(),cB=VN.String,uB=VN.TypeError;KN.exports=function(M){if(sB(M))return M;throw uB(cB(M)+" is not an object")}});var hT=Bn(HN=>{var lB=qc(),fB=Am(),_B=_T(),pB=qN(),c1=dT(),GN=lT(),dB=lB.TypeError,gT=Object.defineProperty,gB=Object.getOwnPropertyDescriptor,mT="enumerable",vT="configurable",yT="writable";HN.f=fB?pB?function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),typeof re=="function"&&Ve==="prototype"&&"value"in Ke&&yT in Ke&&!Ke[yT]){var oi=gB(re,Ve);oi&&oi[yT]&&(re[Ve]=Ke.value,Ke={configurable:vT in Ke?Ke[vT]:oi[vT],enumerable:mT in Ke?Ke[mT]:oi[mT],writable:!1})}return gT(re,Ve,Ke)}:gT:function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),_B)try{return gT(re,Ve,Ke)}catch{}if("get"in Ke||"set"in Ke)throw dB("Accessors not supported");return"value"in Ke&&(re[Ve]=Ke.value),re}});var u1=Bn((uW,XN)=>{var mB=Am(),vB=hT(),yB=XS();XN.exports=mB?function(M,re,Ve){return vB.f(M,re,yB(1,Ve))}:function(M,re,Ve){return M[re]=Ve,M}});var l1=Bn((lW,QN)=>{var hB=dp(),DB=gp(),DT=s1(),bB=hB(Function.toString);DB(DT.inspectSource)||(DT.inspectSource=function(M){return bB(M)});QN.exports=DT.inspectSource});var ZN=Bn((fW,$N)=>{var SB=qc(),TB=gp(),xB=l1(),YN=SB.WeakMap;$N.exports=TB(YN)&&/native code/.test(xB(YN))});var iP=Bn((_W,rP)=>{var EB=sT(),CB=uT(),eP=EB("keys");rP.exports=function(M){return eP[M]||(eP[M]=CB(M))}});var bT=Bn((pW,tP)=>{tP.exports={}});var uP=Bn((dW,cP)=>{var kB=ZN(),sP=qc(),ST=dp(),AB=Nm(),NB=u1(),TT=Wg(),xT=s1(),PB=iP(),IB=bT(),aP="Object already initialized",CT=sP.TypeError,wB=sP.WeakMap,f1,Ky,_1,OB=function(M){return _1(M)?Ky(M):f1(M,{})},FB=function(M){return function(re){var Ve;if(!AB(re)||(Ve=Ky(re)).type!==M)throw CT("Incompatible receiver, "+M+" required");return Ve}};kB||xT.state?(qg=xT.state||(xT.state=new wB),nP=ST(qg.get),ET=ST(qg.has),oP=ST(qg.set),f1=function(M,re){if(ET(qg,M))throw new CT(aP);return re.facade=M,oP(qg,M,re),re},Ky=function(M){return nP(qg,M)||{}},_1=function(M){return ET(qg,M)}):(Im=PB("state"),IB[Im]=!0,f1=function(M,re){if(TT(M,Im))throw new CT(aP);return re.facade=M,NB(M,Im,re),re},Ky=function(M){return TT(M,Im)?M[Im]:{}},_1=function(M){return TT(M,Im)});var qg,nP,ET,oP,Im;cP.exports={set:f1,get:Ky,has:_1,enforce:OB,getterFor:FB}});var _P=Bn((gW,fP)=>{var kT=Am(),MB=Wg(),lP=Function.prototype,LB=kT&&Object.getOwnPropertyDescriptor,AT=MB(lP,"name"),RB=AT&&function(){}.name==="something",BB=AT&&(!kT||kT&&LB(lP,"name").configurable);fP.exports={EXISTS:AT,PROPER:RB,CONFIGURABLE:BB}});var vP=Bn((mW,mP)=>{var JB=qc(),pP=gp(),jB=Wg(),dP=u1(),UB=o1(),zB=l1(),gP=uP(),WB=_P().CONFIGURABLE,qB=gP.get,VB=gP.enforce,KB=String(String).split("String");(mP.exports=function(M,re,Ve,Ke){var oi=Ke?!!Ke.unsafe:!1,kr=Ke?!!Ke.enumerable:!1,pr=Ke?!!Ke.noTargetGet:!1,Lr=Ke&&Ke.name!==void 0?Ke.name:re,ar;if(pP(Ve)&&(String(Lr).slice(0,7)==="Symbol("&&(Lr="["+String(Lr).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!jB(Ve,"name")||WB&&Ve.name!==Lr)&&dP(Ve,"name",Lr),ar=VB(Ve),ar.source||(ar.source=KB.join(typeof Lr=="string"?Lr:""))),M===JB){kr?M[re]=Ve:UB(re,Ve);return}else oi?!pr&&M[re]&&(kr=!0):delete M[re];kr?M[re]=Ve:dP(M,re,Ve)})(Function.prototype,"toString",function(){return pP(this)&&qB(this).source||zB(this)})});var NT=Bn((vW,yP)=>{var GB=Math.ceil,HB=Math.floor;yP.exports=function(M){var re=+M;return re!==re||re===0?0:(re>0?HB:GB)(re)}});var DP=Bn((yW,hP)=>{var XB=NT(),QB=Math.max,YB=Math.min;hP.exports=function(M,re){var Ve=XB(M);return Ve<0?QB(Ve+re,0):YB(Ve,re)}});var SP=Bn((hW,bP)=>{var $B=NT(),ZB=Math.min;bP.exports=function(M){return M>0?ZB($B(M),9007199254740991):0}});var p1=Bn((DW,TP)=>{var eJ=SP();TP.exports=function(M){return eJ(M.length)}});var CP=Bn((bW,EP)=>{var rJ=t1(),iJ=DP(),tJ=p1(),xP=function(M){return function(re,Ve,Ke){var oi=rJ(re),kr=tJ(oi),pr=iJ(Ke,kr),Lr;if(M&&Ve!=Ve){for(;kr>pr;)if(Lr=oi[pr++],Lr!=Lr)return!0}else for(;kr>pr;pr++)if((M||pr in oi)&&oi[pr]===Ve)return M||pr||0;return!M&&-1}};EP.exports={includes:xP(!0),indexOf:xP(!1)}});var NP=Bn((SW,AP)=>{var aJ=dp(),PT=Wg(),nJ=t1(),oJ=CP().indexOf,sJ=bT(),kP=aJ([].push);AP.exports=function(M,re){var Ve=nJ(M),Ke=0,oi=[],kr;for(kr in Ve)!PT(sJ,kr)&&PT(Ve,kr)&&kP(oi,kr);for(;re.length>Ke;)PT(Ve,kr=re[Ke++])&&(~oJ(oi,kr)||kP(oi,kr));return oi}});var IP=Bn((TW,PP)=>{PP.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var OP=Bn(wP=>{var cJ=NP(),uJ=IP(),lJ=uJ.concat("length","prototype");wP.f=Object.getOwnPropertyNames||function(re){return cJ(re,lJ)}});var MP=Bn(FP=>{FP.f=Object.getOwnPropertySymbols});var RP=Bn((CW,LP)=>{var fJ=qy(),_J=dp(),pJ=OP(),dJ=MP(),gJ=dT(),mJ=_J([].concat);LP.exports=fJ("Reflect","ownKeys")||function(re){var Ve=pJ.f(gJ(re)),Ke=dJ.f;return Ke?mJ(Ve,Ke(re)):Ve}});var jP=Bn((kW,JP)=>{var BP=Wg(),vJ=RP(),yJ=pT(),hJ=hT();JP.exports=function(M,re,Ve){for(var Ke=vJ(re),oi=hJ.f,kr=yJ.f,pr=0;pr{var DJ=cg(),bJ=gp(),SJ=/#|\.prototype\./,Gy=function(M,re){var Ve=xJ[TJ(M)];return Ve==CJ?!0:Ve==EJ?!1:bJ(re)?DJ(re):!!re},TJ=Gy.normalize=function(M){return String(M).replace(SJ,".").toLowerCase()},xJ=Gy.data={},EJ=Gy.NATIVE="N",CJ=Gy.POLYFILL="P";UP.exports=Gy});var wT=Bn((NW,WP)=>{var IT=qc(),kJ=pT().f,AJ=u1(),NJ=vP(),PJ=o1(),IJ=jP(),wJ=zP();WP.exports=function(M,re){var Ve=M.target,Ke=M.global,oi=M.stat,kr,pr,Lr,ar,ke,e;if(Ke?pr=IT:oi?pr=IT[Ve]||PJ(Ve,{}):pr=(IT[Ve]||{}).prototype,pr)for(Lr in re){if(ke=re[Lr],M.noTargetGet?(e=kJ(pr,Lr),ar=e&&e.value):ar=pr[Lr],kr=wJ(Ke?Lr:Ve+(oi?".":"#")+Lr,M.forced),!kr&&ar!==void 0){if(typeof ke==typeof ar)continue;IJ(ke,ar)}(M.sham||ar&&ar.sham)&&AJ(ke,"sham",!0),NJ(pr,Lr,ke,M)}}});var qP=Bn(()=>{var OJ=wT(),FJ=qc();OJ({global:!0},{globalThis:FJ})});var VP=Bn(()=>{qP()});var OT=Bn((FW,KP)=>{var MJ=i1();KP.exports=Array.isArray||function(re){return MJ(re)=="Array"}});var XP=Bn((MW,HP)=>{var GP=dp(),LJ=n1(),RJ=Z0(),BJ=GP(GP.bind);HP.exports=function(M,re){return LJ(M),re===void 0?M:RJ?BJ(M,re):function(){return M.apply(re,arguments)}}});var $P=Bn((LW,YP)=>{"use strict";var JJ=qc(),jJ=OT(),UJ=p1(),zJ=XP(),WJ=JJ.TypeError,QP=function(M,re,Ve,Ke,oi,kr,pr,Lr){for(var ar=oi,ke=0,e=pr?zJ(pr,Lr):!1,a,C;ke0&&jJ(a))C=UJ(a),ar=QP(M,re,a,C,ar,kr-1)-1;else{if(ar>=9007199254740991)throw WJ("Exceed the acceptable array length");M[ar]=a}ar++}ke++}return ar};YP.exports=QP});var r4=Bn((RW,e4)=>{var qJ=Vy(),VJ=qJ("toStringTag"),ZP={};ZP[VJ]="z";e4.exports=String(ZP)==="[object z]"});var t4=Bn((BW,i4)=>{var KJ=qc(),GJ=r4(),HJ=gp(),d1=i1(),XJ=Vy(),QJ=XJ("toStringTag"),YJ=KJ.Object,$J=d1(function(){return arguments}())=="Arguments",ZJ=function(M,re){try{return M[re]}catch{}};i4.exports=GJ?d1:function(M){var re,Ve,Ke;return M===void 0?"Undefined":M===null?"Null":typeof(Ve=ZJ(re=YJ(M),QJ))=="string"?Ve:$J?d1(re):(Ke=d1(re))=="Object"&&HJ(re.callee)?"Arguments":Ke}});var u4=Bn((JW,c4)=>{var ej=dp(),rj=cg(),a4=gp(),ij=t4(),tj=qy(),aj=l1(),n4=function(){},nj=[],o4=tj("Reflect","construct"),FT=/^\s*(?:class|function)\b/,oj=ej(FT.exec),sj=!FT.exec(n4),Hy=function(re){if(!a4(re))return!1;try{return o4(n4,nj,re),!0}catch{return!1}},s4=function(re){if(!a4(re))return!1;switch(ij(re)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return sj||!!oj(FT,aj(re))}catch{return!0}};s4.sham=!0;c4.exports=!o4||rj(function(){var M;return Hy(Hy.call)||!Hy(Object)||!Hy(function(){M=!0})||M})?s4:Hy});var p4=Bn((jW,_4)=>{var cj=qc(),l4=OT(),uj=u4(),lj=Nm(),fj=Vy(),_j=fj("species"),f4=cj.Array;_4.exports=function(M){var re;return l4(M)&&(re=M.constructor,uj(re)&&(re===f4||l4(re.prototype))?re=void 0:lj(re)&&(re=re[_j],re===null&&(re=void 0))),re===void 0?f4:re}});var g4=Bn((UW,d4)=>{var pj=p4();d4.exports=function(M,re){return new(pj(M))(re===0?0:re)}});var m4=Bn(()=>{"use strict";var dj=wT(),gj=$P(),mj=n1(),vj=cT(),yj=p1(),hj=g4();dj({target:"Array",proto:!0},{flatMap:function(re){var Ve=vj(this),Ke=yj(Ve),oi;return mj(re),oi=hj(Ve,0),oi.length=gj(oi,Ve,Ve,Ke,0,1,re,arguments.length>1?arguments[1]:void 0),oi}})});var Dz=Bn((qW,f3)=>{VP();m4();var zT=Object.defineProperty,Dj=Object.getOwnPropertyDescriptor,WT=Object.getOwnPropertyNames,bj=Object.prototype.hasOwnProperty,Qy=(M,re)=>function(){return M&&(re=(0,M[WT(M)[0]])(M=0)),re},Oa=(M,re)=>function(){return re||(0,M[WT(M)[0]])((re={exports:{}}).exports,re),re.exports},h1=(M,re)=>{for(var Ve in re)zT(M,Ve,{get:re[Ve],enumerable:!0})},Sj=(M,re,Ve,Ke)=>{if(re&&typeof re=="object"||typeof re=="function")for(let oi of WT(re))!bj.call(M,oi)&&oi!==Ve&&zT(M,oi,{get:()=>re[oi],enumerable:!(Ke=Dj(re,oi))||Ke.enumerable});return M},mp=M=>Sj(zT({},"__esModule",{value:!0}),M),v4,y4,Eu,Ea=Qy({""(){v4={},y4=[],Eu={env:v4,argv:y4}}}),S4=Oa({"src/common/parser-create-error.js"(M,re){"use strict";Ea();function Ve(Ke,oi){let kr=new SyntaxError(Ke+" ("+oi.start.line+":"+oi.start.column+")");return kr.loc=oi,kr}re.exports=Ve}}),Tj=Oa({"src/utils/try-combinations.js"(M,re){"use strict";Ea();function Ve(){let Ke;for(var oi=arguments.length,kr=new Array(oi),pr=0;prRT,arch:()=>xj,cpus:()=>P4,default:()=>M4,endianness:()=>x4,freemem:()=>A4,getNetworkInterfaces:()=>F4,hostname:()=>E4,loadavg:()=>C4,networkInterfaces:()=>O4,platform:()=>Ej,release:()=>w4,tmpDir:()=>MT,tmpdir:()=>LT,totalmem:()=>N4,type:()=>I4,uptime:()=>k4});function x4(){if(typeof g1>"u"){var M=new ArrayBuffer(2),re=new Uint8Array(M),Ve=new Uint16Array(M);if(re[0]=1,re[1]=2,Ve[0]===258)g1="BE";else if(Ve[0]===513)g1="LE";else throw new Error("unable to figure out endianess")}return g1}function E4(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function C4(){return[]}function k4(){return 0}function A4(){return Number.MAX_VALUE}function N4(){return Number.MAX_VALUE}function P4(){return[]}function I4(){return"Browser"}function w4(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function O4(){}function F4(){}function xj(){return"javascript"}function Ej(){return"browser"}function MT(){return"/tmp"}var g1,LT,RT,M4,Cj=Qy({"node-modules-polyfills:os"(){Ea(),LT=MT,RT=` +`,M4={EOL:RT,tmpdir:LT,tmpDir:MT,networkInterfaces:O4,getNetworkInterfaces:F4,release:w4,type:I4,cpus:P4,totalmem:N4,freemem:A4,uptime:k4,loadavg:C4,hostname:E4,endianness:x4}}}),kj=Oa({"node-modules-polyfills-commonjs:os"(M,re){Ea();var Ve=(Cj(),mp(T4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),Aj=Oa({"node_modules/detect-newline/index.js"(M,re){"use strict";Ea();var Ve=Ke=>{if(typeof Ke!="string")throw new TypeError("Expected a string");let oi=Ke.match(/(?:\r?\n)/g)||[];if(oi.length===0)return;let kr=oi.filter(Lr=>Lr===`\r +`).length,pr=oi.length-kr;return kr>pr?`\r +`:` +`};re.exports=Ve,re.exports.graceful=Ke=>typeof Ke=="string"&&Ve(Ke)||` +`}}),Nj=Oa({"node_modules/jest-docblock/build/index.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.extract=w,M.parse=E,M.parseWithComments=Q,M.print=le,M.strip=B;function re(){let p=kj();return re=function(){return p},p}function Ve(){let p=Ke(Aj());return Ve=function(){return p},p}function Ke(p){return p&&p.__esModule?p:{default:p}}var oi=/\*\/$/,kr=/^\/\*\*/,pr=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Lr=/(^|\s+)\/\/([^\r\n]*)/g,ar=/^(\r?\n)+/,ke=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,e=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,a=/(\r?\n|^) *\* ?/g,C=[];function w(p){let m=p.match(pr);return m?m[0].trimLeft():""}function B(p){let m=p.match(pr);return m&&m[0]?p.substring(m[0].length):p}function E(p){return Q(p).pragmas}function Q(p){let m=(0,Ve().default)(p)||re().EOL;p=p.replace(kr,"").replace(oi,"").replace(a,"$1");let G="";for(;G!==p;)G=p,p=p.replace(ke,"".concat(m,"$1 $2").concat(m));p=p.replace(ar,"").trimRight();let oe=Object.create(null),f=p.replace(e,"").replace(ar,"").trimRight(),T;for(;T=e.exec(p);){let K=T[2].replace(Lr,"");typeof oe[T[1]]=="string"||Array.isArray(oe[T[1]])?oe[T[1]]=C.concat(oe[T[1]],K):oe[T[1]]=K}return{comments:f,pragmas:oe}}function le(p){let{comments:m="",pragmas:G={}}=p,oe=(0,Ve().default)(m)||re().EOL,f="/**",T=" *",K=" */",b=Object.keys(G),se=b.map(ie=>N(ie,G[ie])).reduce((ie,R)=>ie.concat(R),[]).map(ie=>T+" "+ie+oe).join("");if(!m){if(b.length===0)return"";if(b.length===1&&!Array.isArray(G[b[0]])){let ie=G[b[0]];return"".concat(f," ").concat(N(b[0],ie)[0]).concat(K)}}let J=m.split(oe).map(ie=>"".concat(T," ").concat(ie)).join(oe)+oe;return f+oe+(m?J:"")+(m&&b.length?T+oe:"")+se+K}function N(p,m){return C.concat(m).map(G=>"@".concat(p," ").concat(G).trim())}}}),Pj=Oa({"src/common/end-of-line.js"(M,re){"use strict";Ea();function Ve(pr){let Lr=pr.indexOf("\r");return Lr>=0?pr.charAt(Lr+1)===` +`?"crlf":"cr":"lf"}function Ke(pr){switch(pr){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function oi(pr,Lr){let ar;switch(Lr){case` +`:ar=/\n/g;break;case"\r":ar=/\r/g;break;case`\r +`:ar=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(Lr),"."))}let ke=pr.match(ar);return ke?ke.length:0}function kr(pr){return pr.replace(/\r\n?/g,` +`)}re.exports={guessEndOfLine:Ve,convertEndOfLineToChars:Ke,countEndOfLineChars:oi,normalizeEndOfLine:kr}}}),Ij=Oa({"src/language-js/utils/get-shebang.js"(M,re){"use strict";Ea();function Ve(Ke){if(!Ke.startsWith("#!"))return"";let oi=Ke.indexOf(` +`);return oi===-1?Ke:Ke.slice(0,oi)}re.exports=Ve}}),wj=Oa({"src/language-js/pragma.js"(M,re){"use strict";Ea();var{parseWithComments:Ve,strip:Ke,extract:oi,print:kr}=Nj(),{normalizeEndOfLine:pr}=Pj(),Lr=Ij();function ar(a){let C=Lr(a);C&&(a=a.slice(C.length+1));let w=oi(a),{pragmas:B,comments:E}=Ve(w);return{shebang:C,text:a,pragmas:B,comments:E}}function ke(a){let C=Object.keys(ar(a).pragmas);return C.includes("prettier")||C.includes("format")}function e(a){let{shebang:C,text:w,pragmas:B,comments:E}=ar(a),Q=Ke(w),le=kr({pragmas:Object.assign({format:""},B),comments:E.trimStart()});return(C?"".concat(C,` +`):"")+pr(le)+(Q.startsWith(` +`)?` +`:` + +`)+Q}re.exports={hasPragma:ke,insertPragma:e}}}),Oj=Oa({"src/utils/is-non-empty-array.js"(M,re){"use strict";Ea();function Ve(Ke){return Array.isArray(Ke)&&Ke.length>0}re.exports=Ve}}),L4=Oa({"src/language-js/loc.js"(M,re){"use strict";Ea();var Ve=Oj();function Ke(ar,ke){let{ignoreDecorators:e}=ke||{};if(!e){let a=ar.declaration&&ar.declaration.decorators||ar.decorators;if(Ve(a))return Ke(a[0])}return ar.range?ar.range[0]:ar.start}function oi(ar){return ar.range?ar.range[1]:ar.end}function kr(ar,ke){let e=Ke(ar);return Number.isInteger(e)&&e===Ke(ke)}function pr(ar,ke){let e=oi(ar);return Number.isInteger(e)&&e===oi(ke)}function Lr(ar,ke){return kr(ar,ke)&&pr(ar,ke)}re.exports={locStart:Ke,locEnd:oi,hasSameLocStart:kr,hasSameLoc:Lr}}}),Fj=Oa({"src/language-js/parse/utils/create-parser.js"(M,re){"use strict";Ea();var{hasPragma:Ve}=wj(),{locStart:Ke,locEnd:oi}=L4();function kr(pr){return pr=typeof pr=="function"?{parse:pr}:pr,Object.assign({astFormat:"estree",hasPragma:Ve,locStart:Ke,locEnd:oi},pr)}re.exports=kr}}),Mj=Oa({"src/language-js/parse/utils/replace-hashbang.js"(M,re){"use strict";Ea();function Ve(Ke){return Ke.charAt(0)==="#"&&Ke.charAt(1)==="!"?"//"+Ke.slice(2):Ke}re.exports=Ve}}),Lj=Oa({"src/language-js/utils/is-ts-keyword-type.js"(M,re){"use strict";Ea();function Ve(Ke){let{type:oi}=Ke;return oi.startsWith("TS")&&oi.endsWith("Keyword")}re.exports=Ve}}),Rj=Oa({"src/language-js/utils/is-block-comment.js"(M,re){"use strict";Ea();var Ve=new Set(["Block","CommentBlock","MultiLine"]),Ke=oi=>Ve.has(oi==null?void 0:oi.type);re.exports=Ke}}),Bj=Oa({"src/language-js/utils/is-type-cast-comment.js"(M,re){"use strict";Ea();var Ve=Rj();function Ke(oi){return Ve(oi)&&oi.value[0]==="*"&&/@type\b/.test(oi.value)}re.exports=Ke}}),Jj=Oa({"src/utils/get-last.js"(M,re){"use strict";Ea();var Ve=Ke=>Ke[Ke.length-1];re.exports=Ve}}),R4=Oa({"src/language-js/parse/postprocess/visit-node.js"(M,re){"use strict";Ea();function Ve(Ke,oi){if(Array.isArray(Ke)){for(let kr=0;kr{let w=ke.get(C);return!w||!a.includes(w)}))&&Ke(ar,"Leading decorators must be attached to a class declaration")}function kr(Lr,ar){Lr.kind!==167||Lr.modifiers&&!Lr.modifiers.some(a=>a.kind===126)||Lr.initializer&&ar.value===null&&Ke(ar,"Abstract property cannot have an initializer")}function pr(Lr,ar){let{esTreeNodeToTSNodeMap:ke,tsNodeToESTreeNodeMap:e}=ar.tsParseResult;Ve(Lr,a=>{let C=ke.get(a);if(!C)return;let w=e.get(C);w===a&&(oi(C,w,e),kr(C,w))})}re.exports={throwErrorForInvalidNodes:pr}}}),Uj=Oa({"src/language-js/parse/postprocess/index.js"(M,re){"use strict";Ea();var{locStart:Ve,locEnd:Ke}=L4(),oi=Lj(),kr=Bj(),pr=Jj(),Lr=R4(),{throwErrorForInvalidNodes:ar}=jj(),ke=B4();function e(B,E){if(E.parser==="typescript"&&/@|abstract/.test(E.originalText)&&ar(B,E),E.parser!=="typescript"&&E.parser!=="flow"&&E.parser!=="acorn"&&E.parser!=="espree"&&E.parser!=="meriyah"){let le=new Set;B=Lr(B,N=>{N.leadingComments&&N.leadingComments.some(kr)&&le.add(Ve(N))}),B=Lr(B,N=>{if(N.type==="ParenthesizedExpression"){let{expression:p}=N;if(p.type==="TypeCastExpression")return p.range=N.range,p;let m=Ve(N);if(!le.has(m))return p.extra=Object.assign(Object.assign({},p.extra),{},{parenthesized:!0}),p}})}return B=Lr(B,le=>{switch(le.type){case"ChainExpression":return a(le.expression);case"LogicalExpression":{if(C(le))return w(le);break}case"VariableDeclaration":{let N=pr(le.declarations);N&&N.init&&Q(le,N);break}case"TSParenthesizedType":return oi(le.typeAnnotation)||le.typeAnnotation.type==="TSThisType"||(le.typeAnnotation.range=[Ve(le),Ke(le)]),le.typeAnnotation;case"TSTypeParameter":if(typeof le.name=="string"){let N=Ve(le);le.name={type:"Identifier",name:le.name,range:[N,N+le.name.length]}}break;case"ObjectExpression":if(E.parser==="typescript"){let N=le.properties.find(p=>p.type==="Property"&&p.value.type==="TSEmptyBodyFunctionExpression");N&&ke(N.value,"Unexpected token.")}break;case"SequenceExpression":{let N=pr(le.expressions);le.range=[Ve(le),Math.min(Ke(N),Ke(le))];break}case"TopicReference":E.__isUsingHackPipeline=!0;break;case"ExportAllDeclaration":{let{exported:N}=le;if(E.parser==="meriyah"&&N&&N.type==="Identifier"){let p=E.originalText.slice(Ve(N),Ke(N));(p.startsWith('"')||p.startsWith("'"))&&(le.exported=Object.assign(Object.assign({},le.exported),{},{type:"Literal",value:le.exported.name,raw:p}))}break}}}),B;function Q(le,N){E.originalText[Ke(N)]!==";"&&(le.range=[Ve(le),Ke(N)])}}function a(B){switch(B.type){case"CallExpression":B.type="OptionalCallExpression",B.callee=a(B.callee);break;case"MemberExpression":B.type="OptionalMemberExpression",B.object=a(B.object);break;case"TSNonNullExpression":B.expression=a(B.expression);break}return B}function C(B){return B.type==="LogicalExpression"&&B.right.type==="LogicalExpression"&&B.operator===B.right.operator}function w(B){return C(B)?w({type:"LogicalExpression",operator:B.operator,left:w({type:"LogicalExpression",operator:B.operator,left:B.left,right:B.right.left,range:[Ve(B.left),Ke(B.right.left)]}),right:B.right.right,range:[Ve(B),Ke(B)]}):B}re.exports=e}}),zj=Oa({"node_modules/ms/index.js"(M,re){Ea();var Ve=1e3,Ke=Ve*60,oi=Ke*60,kr=oi*24,pr=kr*7,Lr=kr*365.25;re.exports=function(C,w){w=w||{};var B=typeof C;if(B==="string"&&C.length>0)return ar(C);if(B==="number"&&isFinite(C))return w.long?e(C):ke(C);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(C))};function ar(C){if(C=String(C),!(C.length>100)){var w=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(C);if(!!w){var B=parseFloat(w[1]),E=(w[2]||"ms").toLowerCase();switch(E){case"years":case"year":case"yrs":case"yr":case"y":return B*Lr;case"weeks":case"week":case"w":return B*pr;case"days":case"day":case"d":return B*kr;case"hours":case"hour":case"hrs":case"hr":case"h":return B*oi;case"minutes":case"minute":case"mins":case"min":case"m":return B*Ke;case"seconds":case"second":case"secs":case"sec":case"s":return B*Ve;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return B;default:return}}}}function ke(C){var w=Math.abs(C);return w>=kr?Math.round(C/kr)+"d":w>=oi?Math.round(C/oi)+"h":w>=Ke?Math.round(C/Ke)+"m":w>=Ve?Math.round(C/Ve)+"s":C+"ms"}function e(C){var w=Math.abs(C);return w>=kr?a(C,w,kr,"day"):w>=oi?a(C,w,oi,"hour"):w>=Ke?a(C,w,Ke,"minute"):w>=Ve?a(C,w,Ve,"second"):C+" ms"}function a(C,w,B,E){var Q=w>=B*1.5;return Math.round(C/B)+" "+E+(Q?"s":"")}}}),Wj=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/debug/src/common.js"(M,re){Ea();function Ve(Ke){kr.debug=kr,kr.default=kr,kr.coerce=a,kr.disable=ar,kr.enable=Lr,kr.enabled=ke,kr.humanize=zj(),kr.destroy=C,Object.keys(Ke).forEach(w=>{kr[w]=Ke[w]}),kr.names=[],kr.skips=[],kr.formatters={};function oi(w){let B=0;for(let E=0;E{if(se==="%%")return"%";K++;let ie=kr.formatters[J];if(typeof ie=="function"){let R=m[K];se=ie.call(oe,R),m.splice(K,1),K--}return se}),kr.formatArgs.call(oe,m),(oe.log||kr.log).apply(oe,m)}return N.namespace=w,N.useColors=kr.useColors(),N.color=kr.selectColor(w),N.extend=pr,N.destroy=kr.destroy,Object.defineProperty(N,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(Q!==kr.namespaces&&(Q=kr.namespaces,le=kr.enabled(w)),le),set:p=>{E=p}}),typeof kr.init=="function"&&kr.init(N),N}function pr(w,B){let E=kr(this.namespace+(typeof B>"u"?":":B)+w);return E.log=this.log,E}function Lr(w){kr.save(w),kr.namespaces=w,kr.names=[],kr.skips=[];let B,E=(typeof w=="string"?w:"").split(/[\s,]+/),Q=E.length;for(B=0;B"-"+B)].join(",");return kr.enable(""),w}function ke(w){if(w[w.length-1]==="*")return!0;let B,E;for(B=0,E=kr.skips.length;B{let ar=!1;return()=>{ar||(ar=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),M.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Ve(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Ke(ar){if(ar[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+ar[0]+(this.useColors?"%c ":" ")+"+"+re.exports.humanize(this.diff),!this.useColors)return;let ke="color: "+this.color;ar.splice(1,0,ke,"color: inherit");let e=0,a=0;ar[0].replace(/%[a-zA-Z%]/g,C=>{C!=="%%"&&(e++,C==="%c"&&(a=e))}),ar.splice(a,0,ke)}M.log=console.debug||console.log||(()=>{});function oi(ar){try{ar?M.storage.setItem("debug",ar):M.storage.removeItem("debug")}catch{}}function kr(){let ar;try{ar=M.storage.getItem("debug")}catch{}return!ar&&typeof Eu<"u"&&"env"in Eu&&(ar=Eu.env.DEBUG),ar}function pr(){try{return localStorage}catch{}}re.exports=Wj()(M);var{formatters:Lr}=re.exports;Lr.j=function(ar){try{return JSON.stringify(ar)}catch(ke){return"[UnexpectedJSONParseError]: "+ke.message}}}}),qj=Oa({"node_modules/is-extglob/index.js"(M,re){Ea(),re.exports=function(Ke){if(typeof Ke!="string"||Ke==="")return!1;for(var oi;oi=/(\\).|([@?!+*]\(.*\))/g.exec(Ke);){if(oi[2])return!0;Ke=Ke.slice(oi.index+oi[0].length)}return!1}}}),Vj=Oa({"node_modules/is-glob/index.js"(M,re){Ea();var Ve=qj(),Ke={"{":"}","(":")","[":"]"},oi=function(pr){if(pr[0]==="!")return!0;for(var Lr=0,ar=-2,ke=-2,e=-2,a=-2,C=-2;LrLr&&(C===-1||C>ke||(C=pr.indexOf("\\",Lr),C===-1||C>ke)))||e!==-1&&pr[Lr]==="{"&&pr[Lr+1]!=="}"&&(e=pr.indexOf("}",Lr),e>Lr&&(C=pr.indexOf("\\",Lr),C===-1||C>e))||a!==-1&&pr[Lr]==="("&&pr[Lr+1]==="?"&&/[:!=]/.test(pr[Lr+2])&&pr[Lr+3]!==")"&&(a=pr.indexOf(")",Lr),a>Lr&&(C=pr.indexOf("\\",Lr),C===-1||C>a))||ar!==-1&&pr[Lr]==="("&&pr[Lr+1]!=="|"&&(arar&&(C=pr.indexOf("\\",ar),C===-1||C>a))))return!0;if(pr[Lr]==="\\"){var w=pr[Lr+1];Lr+=2;var B=Ke[w];if(B){var E=pr.indexOf(B,Lr);E!==-1&&(Lr=E+1)}if(pr[Lr]==="!")return!0}else Lr++}return!1},kr=function(pr){if(pr[0]==="!")return!0;for(var Lr=0;Lr{};re.exports=Ve}}),wv=Oa({"node_modules/semver/internal/re.js"(M,re){Ea();var{MAX_SAFE_COMPONENT_LENGTH:Ve}=D1(),Ke=b1();M=re.exports={};var oi=M.re=[],kr=M.src=[],pr=M.t={},Lr=0,ar=(ke,e,a)=>{let C=Lr++;Ke(ke,C,e),pr[ke]=C,kr[C]=e,oi[C]=new RegExp(e,a?"g":void 0)};ar("NUMERICIDENTIFIER","0|[1-9]\\d*"),ar("NUMERICIDENTIFIERLOOSE","[0-9]+"),ar("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),ar("MAINVERSION","(".concat(kr[pr.NUMERICIDENTIFIER],")\\.(").concat(kr[pr.NUMERICIDENTIFIER],")\\.(").concat(kr[pr.NUMERICIDENTIFIER],")")),ar("MAINVERSIONLOOSE","(".concat(kr[pr.NUMERICIDENTIFIERLOOSE],")\\.(").concat(kr[pr.NUMERICIDENTIFIERLOOSE],")\\.(").concat(kr[pr.NUMERICIDENTIFIERLOOSE],")")),ar("PRERELEASEIDENTIFIER","(?:".concat(kr[pr.NUMERICIDENTIFIER],"|").concat(kr[pr.NONNUMERICIDENTIFIER],")")),ar("PRERELEASEIDENTIFIERLOOSE","(?:".concat(kr[pr.NUMERICIDENTIFIERLOOSE],"|").concat(kr[pr.NONNUMERICIDENTIFIER],")")),ar("PRERELEASE","(?:-(".concat(kr[pr.PRERELEASEIDENTIFIER],"(?:\\.").concat(kr[pr.PRERELEASEIDENTIFIER],")*))")),ar("PRERELEASELOOSE","(?:-?(".concat(kr[pr.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(kr[pr.PRERELEASEIDENTIFIERLOOSE],")*))")),ar("BUILDIDENTIFIER","[0-9A-Za-z-]+"),ar("BUILD","(?:\\+(".concat(kr[pr.BUILDIDENTIFIER],"(?:\\.").concat(kr[pr.BUILDIDENTIFIER],")*))")),ar("FULLPLAIN","v?".concat(kr[pr.MAINVERSION]).concat(kr[pr.PRERELEASE],"?").concat(kr[pr.BUILD],"?")),ar("FULL","^".concat(kr[pr.FULLPLAIN],"$")),ar("LOOSEPLAIN","[v=\\s]*".concat(kr[pr.MAINVERSIONLOOSE]).concat(kr[pr.PRERELEASELOOSE],"?").concat(kr[pr.BUILD],"?")),ar("LOOSE","^".concat(kr[pr.LOOSEPLAIN],"$")),ar("GTLT","((?:<|>)?=?)"),ar("XRANGEIDENTIFIERLOOSE","".concat(kr[pr.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),ar("XRANGEIDENTIFIER","".concat(kr[pr.NUMERICIDENTIFIER],"|x|X|\\*")),ar("XRANGEPLAIN","[v=\\s]*(".concat(kr[pr.XRANGEIDENTIFIER],")(?:\\.(").concat(kr[pr.XRANGEIDENTIFIER],")(?:\\.(").concat(kr[pr.XRANGEIDENTIFIER],")(?:").concat(kr[pr.PRERELEASE],")?").concat(kr[pr.BUILD],"?)?)?")),ar("XRANGEPLAINLOOSE","[v=\\s]*(".concat(kr[pr.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(kr[pr.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(kr[pr.XRANGEIDENTIFIERLOOSE],")(?:").concat(kr[pr.PRERELEASELOOSE],")?").concat(kr[pr.BUILD],"?)?)?")),ar("XRANGE","^".concat(kr[pr.GTLT],"\\s*").concat(kr[pr.XRANGEPLAIN],"$")),ar("XRANGELOOSE","^".concat(kr[pr.GTLT],"\\s*").concat(kr[pr.XRANGEPLAINLOOSE],"$")),ar("COERCE","(^|[^\\d])(\\d{1,".concat(Ve,"})(?:\\.(\\d{1,").concat(Ve,"}))?(?:\\.(\\d{1,").concat(Ve,"}))?(?:$|[^\\d])")),ar("COERCERTL",kr[pr.COERCE],!0),ar("LONETILDE","(?:~>?)"),ar("TILDETRIM","(\\s*)".concat(kr[pr.LONETILDE],"\\s+"),!0),M.tildeTrimReplace="$1~",ar("TILDE","^".concat(kr[pr.LONETILDE]).concat(kr[pr.XRANGEPLAIN],"$")),ar("TILDELOOSE","^".concat(kr[pr.LONETILDE]).concat(kr[pr.XRANGEPLAINLOOSE],"$")),ar("LONECARET","(?:\\^)"),ar("CARETTRIM","(\\s*)".concat(kr[pr.LONECARET],"\\s+"),!0),M.caretTrimReplace="$1^",ar("CARET","^".concat(kr[pr.LONECARET]).concat(kr[pr.XRANGEPLAIN],"$")),ar("CARETLOOSE","^".concat(kr[pr.LONECARET]).concat(kr[pr.XRANGEPLAINLOOSE],"$")),ar("COMPARATORLOOSE","^".concat(kr[pr.GTLT],"\\s*(").concat(kr[pr.LOOSEPLAIN],")$|^$")),ar("COMPARATOR","^".concat(kr[pr.GTLT],"\\s*(").concat(kr[pr.FULLPLAIN],")$|^$")),ar("COMPARATORTRIM","(\\s*)".concat(kr[pr.GTLT],"\\s*(").concat(kr[pr.LOOSEPLAIN],"|").concat(kr[pr.XRANGEPLAIN],")"),!0),M.comparatorTrimReplace="$1$2$3",ar("HYPHENRANGE","^\\s*(".concat(kr[pr.XRANGEPLAIN],")\\s+-\\s+(").concat(kr[pr.XRANGEPLAIN],")\\s*$")),ar("HYPHENRANGELOOSE","^\\s*(".concat(kr[pr.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(kr[pr.XRANGEPLAINLOOSE],")\\s*$")),ar("STAR","(<|>)?=?\\s*\\*"),ar("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),ar("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),S1=Oa({"node_modules/semver/internal/parse-options.js"(M,re){Ea();var Ve=["includePrerelease","loose","rtl"],Ke=oi=>oi?typeof oi!="object"?{loose:!0}:Ve.filter(kr=>oi[kr]).reduce((kr,pr)=>(kr[pr]=!0,kr),{}):{};re.exports=Ke}}),BT=Oa({"node_modules/semver/internal/identifiers.js"(M,re){Ea();var Ve=/^[0-9]+$/,Ke=(kr,pr)=>{let Lr=Ve.test(kr),ar=Ve.test(pr);return Lr&&ar&&(kr=+kr,pr=+pr),kr===pr?0:Lr&&!ar?-1:ar&&!Lr?1:krKe(pr,kr);re.exports={compareIdentifiers:Ke,rcompareIdentifiers:oi}}}),Lf=Oa({"node_modules/semver/classes/semver.js"(M,re){Ea();var Ve=b1(),{MAX_LENGTH:Ke,MAX_SAFE_INTEGER:oi}=D1(),{re:kr,t:pr}=wv(),Lr=S1(),{compareIdentifiers:ar}=BT(),ke=class{constructor(e,a){if(a=Lr(a),e instanceof ke){if(e.loose===!!a.loose&&e.includePrerelease===!!a.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError("Invalid Version: ".concat(e));if(e.length>Ke)throw new TypeError("version is longer than ".concat(Ke," characters"));Ve("SemVer",e,a),this.options=a,this.loose=!!a.loose,this.includePrerelease=!!a.includePrerelease;let C=e.trim().match(a.loose?kr[pr.LOOSE]:kr[pr.FULL]);if(!C)throw new TypeError("Invalid Version: ".concat(e));if(this.raw=e,this.major=+C[1],this.minor=+C[2],this.patch=+C[3],this.major>oi||this.major<0)throw new TypeError("Invalid major version");if(this.minor>oi||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>oi||this.patch<0)throw new TypeError("Invalid patch version");C[4]?this.prerelease=C[4].split(".").map(w=>{if(/^[0-9]+$/.test(w)){let B=+w;if(B>=0&&B=0;)typeof this.prerelease[C]=="number"&&(this.prerelease[C]++,C=-2);C===-1&&this.prerelease.push(0)}a&&(ar(this.prerelease[0],a)===0?isNaN(this.prerelease[1])&&(this.prerelease=[a,0]):this.prerelease=[a,0]);break;default:throw new Error("invalid increment argument: ".concat(e))}return this.format(),this.raw=this.version,this}};re.exports=ke}}),Ov=Oa({"node_modules/semver/functions/parse.js"(M,re){Ea();var{MAX_LENGTH:Ve}=D1(),{re:Ke,t:oi}=wv(),kr=Lf(),pr=S1(),Lr=(ar,ke)=>{if(ke=pr(ke),ar instanceof kr)return ar;if(typeof ar!="string"||ar.length>Ve||!(ke.loose?Ke[oi.LOOSE]:Ke[oi.FULL]).test(ar))return null;try{return new kr(ar,ke)}catch{return null}};re.exports=Lr}}),Kj=Oa({"node_modules/semver/functions/valid.js"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi,kr);return pr?pr.version:null};re.exports=Ke}}),Gj=Oa({"node_modules/semver/functions/clean.js"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi.trim().replace(/^[=v]+/,""),kr);return pr?pr.version:null};re.exports=Ke}}),Hj=Oa({"node_modules/semver/functions/inc.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr,Lr)=>{typeof pr=="string"&&(Lr=pr,pr=void 0);try{return new Ve(oi instanceof Ve?oi.version:oi,pr).inc(kr,Lr).version}catch{return null}};re.exports=Ke}}),nd=Oa({"node_modules/semver/functions/compare.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr)=>new Ve(oi,pr).compare(new Ve(kr,pr));re.exports=Ke}}),qT=Oa({"node_modules/semver/functions/eq.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)===0;re.exports=Ke}}),Xj=Oa({"node_modules/semver/functions/diff.js"(M,re){Ea();var Ve=Ov(),Ke=qT(),oi=(kr,pr)=>{if(Ke(kr,pr))return null;{let Lr=Ve(kr),ar=Ve(pr),ke=Lr.prerelease.length||ar.prerelease.length,e=ke?"pre":"",a=ke?"prerelease":"";for(let C in Lr)if((C==="major"||C==="minor"||C==="patch")&&Lr[C]!==ar[C])return e+C;return a}};re.exports=oi}}),Qj=Oa({"node_modules/semver/functions/major.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).major;re.exports=Ke}}),Yj=Oa({"node_modules/semver/functions/minor.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).minor;re.exports=Ke}}),$j=Oa({"node_modules/semver/functions/patch.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).patch;re.exports=Ke}}),Zj=Oa({"node_modules/semver/functions/prerelease.js"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi,kr);return pr&&pr.prerelease.length?pr.prerelease:null};re.exports=Ke}}),eU=Oa({"node_modules/semver/functions/rcompare.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(kr,oi,pr);re.exports=Ke}}),rU=Oa({"node_modules/semver/functions/compare-loose.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr)=>Ve(oi,kr,!0);re.exports=Ke}}),VT=Oa({"node_modules/semver/functions/compare-build.js"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr)=>{let Lr=new Ve(oi,pr),ar=new Ve(kr,pr);return Lr.compare(ar)||Lr.compareBuild(ar)};re.exports=Ke}}),iU=Oa({"node_modules/semver/functions/sort.js"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((pr,Lr)=>Ve(pr,Lr,kr));re.exports=Ke}}),tU=Oa({"node_modules/semver/functions/rsort.js"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((pr,Lr)=>Ve(Lr,pr,kr));re.exports=Ke}}),T1=Oa({"node_modules/semver/functions/gt.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)>0;re.exports=Ke}}),KT=Oa({"node_modules/semver/functions/lt.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)<0;re.exports=Ke}}),J4=Oa({"node_modules/semver/functions/neq.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)!==0;re.exports=Ke}}),GT=Oa({"node_modules/semver/functions/gte.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)>=0;re.exports=Ke}}),HT=Oa({"node_modules/semver/functions/lte.js"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)<=0;re.exports=Ke}}),j4=Oa({"node_modules/semver/functions/cmp.js"(M,re){Ea();var Ve=qT(),Ke=J4(),oi=T1(),kr=GT(),pr=KT(),Lr=HT(),ar=(ke,e,a,C)=>{switch(e){case"===":return typeof ke=="object"&&(ke=ke.version),typeof a=="object"&&(a=a.version),ke===a;case"!==":return typeof ke=="object"&&(ke=ke.version),typeof a=="object"&&(a=a.version),ke!==a;case"":case"=":case"==":return Ve(ke,a,C);case"!=":return Ke(ke,a,C);case">":return oi(ke,a,C);case">=":return kr(ke,a,C);case"<":return pr(ke,a,C);case"<=":return Lr(ke,a,C);default:throw new TypeError("Invalid operator: ".concat(e))}};re.exports=ar}}),aU=Oa({"node_modules/semver/functions/coerce.js"(M,re){Ea();var Ve=Lf(),Ke=Ov(),{re:oi,t:kr}=wv(),pr=(Lr,ar)=>{if(Lr instanceof Ve)return Lr;if(typeof Lr=="number"&&(Lr=String(Lr)),typeof Lr!="string")return null;ar=ar||{};let ke=null;if(!ar.rtl)ke=Lr.match(oi[kr.COERCE]);else{let e;for(;(e=oi[kr.COERCERTL].exec(Lr))&&(!ke||ke.index+ke[0].length!==Lr.length);)(!ke||e.index+e[0].length!==ke.index+ke[0].length)&&(ke=e),oi[kr.COERCERTL].lastIndex=e.index+e[1].length+e[2].length;oi[kr.COERCERTL].lastIndex=-1}return ke===null?null:Ke("".concat(ke[2],".").concat(ke[3]||"0",".").concat(ke[4]||"0"),ar)};re.exports=pr}}),nU=Oa({"node_modules/yallist/iterator.js"(M,re){"use strict";Ea(),re.exports=function(Ve){Ve.prototype[Symbol.iterator]=function*(){for(let Ke=this.head;Ke;Ke=Ke.next)yield Ke.value}}}}),oU=Oa({"node_modules/yallist/yallist.js"(M,re){"use strict";Ea(),re.exports=Ve,Ve.Node=pr,Ve.create=Ve;function Ve(Lr){var ar=this;if(ar instanceof Ve||(ar=new Ve),ar.tail=null,ar.head=null,ar.length=0,Lr&&typeof Lr.forEach=="function")Lr.forEach(function(a){ar.push(a)});else if(arguments.length>0)for(var ke=0,e=arguments.length;ke1)ke=ar;else if(this.head)e=this.head.next,ke=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;e!==null;a++)ke=Lr(ke,e.value,a),e=e.next;return ke},Ve.prototype.reduceReverse=function(Lr,ar){var ke,e=this.tail;if(arguments.length>1)ke=ar;else if(this.tail)e=this.tail.prev,ke=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;e!==null;a--)ke=Lr(ke,e.value,a),e=e.prev;return ke},Ve.prototype.toArray=function(){for(var Lr=new Array(this.length),ar=0,ke=this.head;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.next;return Lr},Ve.prototype.toArrayReverse=function(){for(var Lr=new Array(this.length),ar=0,ke=this.tail;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.prev;return Lr},Ve.prototype.slice=function(Lr,ar){ar=ar||this.length,ar<0&&(ar+=this.length),Lr=Lr||0,Lr<0&&(Lr+=this.length);var ke=new Ve;if(arthis.length&&(ar=this.length);for(var e=0,a=this.head;a!==null&&ethis.length&&(ar=this.length);for(var e=this.length,a=this.tail;a!==null&&e>ar;e--)a=a.prev;for(;a!==null&&e>Lr;e--,a=a.prev)ke.push(a.value);return ke},Ve.prototype.splice=function(Lr,ar){Lr>this.length&&(Lr=this.length-1),Lr<0&&(Lr=this.length+Lr);for(var ke=0,e=this.head;e!==null&&ke1,B=class{constructor(G){if(typeof G=="number"&&(G={max:G}),G||(G={}),G.max&&(typeof G.max!="number"||G.max<0))throw new TypeError("max must be a non-negative number");let oe=this[Ke]=G.max||1/0,f=G.length||w;if(this[kr]=typeof f!="function"?w:f,this[pr]=G.stale||!1,G.maxAge&&typeof G.maxAge!="number")throw new TypeError("maxAge must be a number");this[Lr]=G.maxAge||0,this[ar]=G.dispose,this[ke]=G.noDisposeOnSet||!1,this[C]=G.updateAgeOnGet||!1,this.reset()}set max(G){if(typeof G!="number"||G<0)throw new TypeError("max must be a non-negative number");this[Ke]=G||1/0,le(this)}get max(){return this[Ke]}set allowStale(G){this[pr]=!!G}get allowStale(){return this[pr]}set maxAge(G){if(typeof G!="number")throw new TypeError("maxAge must be a non-negative number");this[Lr]=G,le(this)}get maxAge(){return this[Lr]}set lengthCalculator(G){typeof G!="function"&&(G=w),G!==this[kr]&&(this[kr]=G,this[oi]=0,this[e].forEach(oe=>{oe.length=this[kr](oe.value,oe.key),this[oi]+=oe.length})),le(this)}get lengthCalculator(){return this[kr]}get length(){return this[oi]}get itemCount(){return this[e].length}rforEach(G,oe){oe=oe||this;for(let f=this[e].tail;f!==null;){let T=f.prev;m(this,G,f,oe),f=T}}forEach(G,oe){oe=oe||this;for(let f=this[e].head;f!==null;){let T=f.next;m(this,G,f,oe),f=T}}keys(){return this[e].toArray().map(G=>G.key)}values(){return this[e].toArray().map(G=>G.value)}reset(){this[ar]&&this[e]&&this[e].length&&this[e].forEach(G=>this[ar](G.key,G.value)),this[a]=new Map,this[e]=new Ve,this[oi]=0}dump(){return this[e].map(G=>Q(this,G)?!1:{k:G.key,v:G.value,e:G.now+(G.maxAge||0)}).toArray().filter(G=>G)}dumpLru(){return this[e]}set(G,oe,f){if(f=f||this[Lr],f&&typeof f!="number")throw new TypeError("maxAge must be a number");let T=f?Date.now():0,K=this[kr](oe,G);if(this[a].has(G)){if(K>this[Ke])return N(this,this[a].get(G)),!1;let J=this[a].get(G).value;return this[ar]&&(this[ke]||this[ar](G,J.value)),J.now=T,J.maxAge=f,J.value=oe,this[oi]+=K-J.length,J.length=K,this.get(G),le(this),!0}let b=new p(G,oe,K,T,f);return b.length>this[Ke]?(this[ar]&&this[ar](G,oe),!1):(this[oi]+=b.length,this[e].unshift(b),this[a].set(G,this[e].head),le(this),!0)}has(G){if(!this[a].has(G))return!1;let oe=this[a].get(G).value;return!Q(this,oe)}get(G){return E(this,G,!0)}peek(G){return E(this,G,!1)}pop(){let G=this[e].tail;return G?(N(this,G),G.value):null}del(G){N(this,this[a].get(G))}load(G){this.reset();let oe=Date.now();for(let f=G.length-1;f>=0;f--){let T=G[f],K=T.e||0;if(K===0)this.set(T.k,T.v);else{let b=K-oe;b>0&&this.set(T.k,T.v,b)}}}prune(){this[a].forEach((G,oe)=>E(this,oe,!1))}},E=(G,oe,f)=>{let T=G[a].get(oe);if(T){let K=T.value;if(Q(G,K)){if(N(G,T),!G[pr])return}else f&&(G[C]&&(T.value.now=Date.now()),G[e].unshiftNode(T));return K.value}},Q=(G,oe)=>{if(!oe||!oe.maxAge&&!G[Lr])return!1;let f=Date.now()-oe.now;return oe.maxAge?f>oe.maxAge:G[Lr]&&f>G[Lr]},le=G=>{if(G[oi]>G[Ke])for(let oe=G[e].tail;G[oi]>G[Ke]&&oe!==null;){let f=oe.prev;N(G,oe),oe=f}},N=(G,oe)=>{if(oe){let f=oe.value;G[ar]&&G[ar](f.key,f.value),G[oi]-=f.length,G[a].delete(f.key),G[e].removeNode(oe)}},p=class{constructor(G,oe,f,T,K){this.key=G,this.value=oe,this.length=f,this.now=T,this.maxAge=K||0}},m=(G,oe,f,T)=>{let K=f.value;Q(G,K)&&(N(G,f),G[pr]||(K=void 0)),K&&oe.call(T,K.value,K.key,G)};re.exports=B}}),od=Oa({"node_modules/semver/classes/range.js"(M,re){Ea();var Ve=class{constructor(ie,R){if(R=kr(R),ie instanceof Ve)return ie.loose===!!R.loose&&ie.includePrerelease===!!R.includePrerelease?ie:new Ve(ie.raw,R);if(ie instanceof pr)return this.raw=ie.value,this.set=[[ie]],this.format(),this;if(this.options=R,this.loose=!!R.loose,this.includePrerelease=!!R.includePrerelease,this.raw=ie,this.set=ie.split("||").map(q=>this.parseRange(q.trim())).filter(q=>q.length),!this.set.length)throw new TypeError("Invalid SemVer Range: ".concat(ie));if(this.set.length>1){let q=this.set[0];if(this.set=this.set.filter(O=>!B(O[0])),this.set.length===0)this.set=[q];else if(this.set.length>1){for(let O of this.set)if(O.length===1&&E(O[0])){this.set=[O];break}}}this.format()}format(){return this.range=this.set.map(ie=>ie.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(ie){ie=ie.trim();let R=Object.keys(this.options).join(","),q="parseRange:".concat(R,":").concat(ie),O=oi.get(q);if(O)return O;let ve=this.options.loose,ee=ve?ke[e.HYPHENRANGELOOSE]:ke[e.HYPHENRANGE];ie=ie.replace(ee,se(this.options.includePrerelease)),Lr("hyphen replace",ie),ie=ie.replace(ke[e.COMPARATORTRIM],a),Lr("comparator trim",ie),ie=ie.replace(ke[e.TILDETRIM],C),ie=ie.replace(ke[e.CARETTRIM],w),ie=ie.split(/\s+/).join(" ");let he=ie.split(" ").map($=>le($,this.options)).join(" ").split(/\s+/).map($=>b($,this.options));ve&&(he=he.filter($=>(Lr("loose invalid filter",$,this.options),!!$.match(ke[e.COMPARATORLOOSE])))),Lr("range list",he);let F=new Map,x=he.map($=>new pr($,this.options));for(let $ of x){if(B($))return[$];F.set($.value,$)}F.size>1&&F.has("")&&F.delete("");let X=[...F.values()];return oi.set(q,X),X}intersects(ie,R){if(!(ie instanceof Ve))throw new TypeError("a Range is required");return this.set.some(q=>Q(q,R)&&ie.set.some(O=>Q(O,R)&&q.every(ve=>O.every(ee=>ve.intersects(ee,R)))))}test(ie){if(!ie)return!1;if(typeof ie=="string")try{ie=new ar(ie,this.options)}catch{return!1}for(let R=0;Rie.value==="<0.0.0-0",E=ie=>ie.value==="",Q=(ie,R)=>{let q=!0,O=ie.slice(),ve=O.pop();for(;q&&O.length;)q=O.every(ee=>ve.intersects(ee,R)),ve=O.pop();return q},le=(ie,R)=>(Lr("comp",ie,R),ie=G(ie,R),Lr("caret",ie),ie=p(ie,R),Lr("tildes",ie),ie=f(ie,R),Lr("xrange",ie),ie=K(ie,R),Lr("stars",ie),ie),N=ie=>!ie||ie.toLowerCase()==="x"||ie==="*",p=(ie,R)=>ie.trim().split(/\s+/).map(q=>m(q,R)).join(" "),m=(ie,R)=>{let q=R.loose?ke[e.TILDELOOSE]:ke[e.TILDE];return ie.replace(q,(O,ve,ee,he,F)=>{Lr("tilde",ie,O,ve,ee,he,F);let x;return N(ve)?x="":N(ee)?x=">=".concat(ve,".0.0 <").concat(+ve+1,".0.0-0"):N(he)?x=">=".concat(ve,".").concat(ee,".0 <").concat(ve,".").concat(+ee+1,".0-0"):F?(Lr("replaceTilde pr",F),x=">=".concat(ve,".").concat(ee,".").concat(he,"-").concat(F," <").concat(ve,".").concat(+ee+1,".0-0")):x=">=".concat(ve,".").concat(ee,".").concat(he," <").concat(ve,".").concat(+ee+1,".0-0"),Lr("tilde return",x),x})},G=(ie,R)=>ie.trim().split(/\s+/).map(q=>oe(q,R)).join(" "),oe=(ie,R)=>{Lr("caret",ie,R);let q=R.loose?ke[e.CARETLOOSE]:ke[e.CARET],O=R.includePrerelease?"-0":"";return ie.replace(q,(ve,ee,he,F,x)=>{Lr("caret",ie,ve,ee,he,F,x);let X;return N(ee)?X="":N(he)?X=">=".concat(ee,".0.0").concat(O," <").concat(+ee+1,".0.0-0"):N(F)?ee==="0"?X=">=".concat(ee,".").concat(he,".0").concat(O," <").concat(ee,".").concat(+he+1,".0-0"):X=">=".concat(ee,".").concat(he,".0").concat(O," <").concat(+ee+1,".0.0-0"):x?(Lr("replaceCaret pr",x),ee==="0"?he==="0"?X=">=".concat(ee,".").concat(he,".").concat(F,"-").concat(x," <").concat(ee,".").concat(he,".").concat(+F+1,"-0"):X=">=".concat(ee,".").concat(he,".").concat(F,"-").concat(x," <").concat(ee,".").concat(+he+1,".0-0"):X=">=".concat(ee,".").concat(he,".").concat(F,"-").concat(x," <").concat(+ee+1,".0.0-0")):(Lr("no pr"),ee==="0"?he==="0"?X=">=".concat(ee,".").concat(he,".").concat(F).concat(O," <").concat(ee,".").concat(he,".").concat(+F+1,"-0"):X=">=".concat(ee,".").concat(he,".").concat(F).concat(O," <").concat(ee,".").concat(+he+1,".0-0"):X=">=".concat(ee,".").concat(he,".").concat(F," <").concat(+ee+1,".0.0-0")),Lr("caret return",X),X})},f=(ie,R)=>(Lr("replaceXRanges",ie,R),ie.split(/\s+/).map(q=>T(q,R)).join(" ")),T=(ie,R)=>{ie=ie.trim();let q=R.loose?ke[e.XRANGELOOSE]:ke[e.XRANGE];return ie.replace(q,(O,ve,ee,he,F,x)=>{Lr("xRange",ie,O,ve,ee,he,F,x);let X=N(ee),$=X||N(he),A=$||N(F),y=A;return ve==="="&&y&&(ve=""),x=R.includePrerelease?"-0":"",X?ve===">"||ve==="<"?O="<0.0.0-0":O="*":ve&&y?($&&(he=0),F=0,ve===">"?(ve=">=",$?(ee=+ee+1,he=0,F=0):(he=+he+1,F=0)):ve==="<="&&(ve="<",$?ee=+ee+1:he=+he+1),ve==="<"&&(x="-0"),O="".concat(ve+ee,".").concat(he,".").concat(F).concat(x)):$?O=">=".concat(ee,".0.0").concat(x," <").concat(+ee+1,".0.0-0"):A&&(O=">=".concat(ee,".").concat(he,".0").concat(x," <").concat(ee,".").concat(+he+1,".0-0")),Lr("xRange return",O),O})},K=(ie,R)=>(Lr("replaceStars",ie,R),ie.trim().replace(ke[e.STAR],"")),b=(ie,R)=>(Lr("replaceGTE0",ie,R),ie.trim().replace(ke[R.includePrerelease?e.GTE0PRE:e.GTE0],"")),se=ie=>(R,q,O,ve,ee,he,F,x,X,$,A,y,V)=>(N(O)?q="":N(ve)?q=">=".concat(O,".0.0").concat(ie?"-0":""):N(ee)?q=">=".concat(O,".").concat(ve,".0").concat(ie?"-0":""):he?q=">=".concat(q):q=">=".concat(q).concat(ie?"-0":""),N(X)?x="":N($)?x="<".concat(+X+1,".0.0-0"):N(A)?x="<".concat(X,".").concat(+$+1,".0-0"):y?x="<=".concat(X,".").concat($,".").concat(A,"-").concat(y):ie?x="<".concat(X,".").concat($,".").concat(+A+1,"-0"):x="<=".concat(x),"".concat(q," ").concat(x).trim()),J=(ie,R,q)=>{for(let O=0;O0){let ve=ie[O].semver;if(ve.major===R.major&&ve.minor===R.minor&&ve.patch===R.patch)return!0}return!1}return!0}}}),x1=Oa({"node_modules/semver/classes/comparator.js"(M,re){Ea();var Ve=Symbol("SemVer ANY"),Ke=class{static get ANY(){return Ve}constructor(a,C){if(C=oi(C),a instanceof Ke){if(a.loose===!!C.loose)return a;a=a.value}ar("comparator",a,C),this.options=C,this.loose=!!C.loose,this.parse(a),this.semver===Ve?this.value="":this.value=this.operator+this.semver.version,ar("comp",this)}parse(a){let C=this.options.loose?kr[pr.COMPARATORLOOSE]:kr[pr.COMPARATOR],w=a.match(C);if(!w)throw new TypeError("Invalid comparator: ".concat(a));this.operator=w[1]!==void 0?w[1]:"",this.operator==="="&&(this.operator=""),w[2]?this.semver=new ke(w[2],this.options.loose):this.semver=Ve}toString(){return this.value}test(a){if(ar("Comparator.test",a,this.options.loose),this.semver===Ve||a===Ve)return!0;if(typeof a=="string")try{a=new ke(a,this.options)}catch{return!1}return Lr(a,this.operator,this.semver,this.options)}intersects(a,C){if(!(a instanceof Ke))throw new TypeError("a Comparator is required");if((!C||typeof C!="object")&&(C={loose:!!C,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new e(a.value,C).test(this.value);if(a.operator==="")return a.value===""?!0:new e(this.value,C).test(a.semver);let w=(this.operator===">="||this.operator===">")&&(a.operator===">="||a.operator===">"),B=(this.operator==="<="||this.operator==="<")&&(a.operator==="<="||a.operator==="<"),E=this.semver.version===a.semver.version,Q=(this.operator===">="||this.operator==="<=")&&(a.operator===">="||a.operator==="<="),le=Lr(this.semver,"<",a.semver,C)&&(this.operator===">="||this.operator===">")&&(a.operator==="<="||a.operator==="<"),N=Lr(this.semver,">",a.semver,C)&&(this.operator==="<="||this.operator==="<")&&(a.operator===">="||a.operator===">");return w||B||E&&Q||le||N}};re.exports=Ke;var oi=S1(),{re:kr,t:pr}=wv(),Lr=j4(),ar=b1(),ke=Lf(),e=od()}}),E1=Oa({"node_modules/semver/functions/satisfies.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr,pr)=>{try{kr=new Ve(kr,pr)}catch{return!1}return kr.test(oi)};re.exports=Ke}}),cU=Oa({"node_modules/semver/ranges/to-comparators.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>new Ve(oi,kr).set.map(pr=>pr.map(Lr=>Lr.value).join(" ").trim().split(" "));re.exports=Ke}}),uU=Oa({"node_modules/semver/ranges/max-satisfying.js"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,pr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(pr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===-1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),lU=Oa({"node_modules/semver/ranges/min-satisfying.js"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,pr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(pr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),fU=Oa({"node_modules/semver/ranges/min-version.js"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=T1(),kr=(pr,Lr)=>{pr=new Ke(pr,Lr);let ar=new Ve("0.0.0");if(pr.test(ar)||(ar=new Ve("0.0.0-0"),pr.test(ar)))return ar;ar=null;for(let ke=0;ke{let w=new Ve(C.semver.version);switch(C.operator){case">":w.prerelease.length===0?w.patch++:w.prerelease.push(0),w.raw=w.format();case"":case">=":(!a||oi(w,a))&&(a=w);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: ".concat(C.operator))}}),a&&(!ar||oi(ar,a))&&(ar=a)}return ar&&pr.test(ar)?ar:null};re.exports=kr}}),_U=Oa({"node_modules/semver/ranges/valid.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>{try{return new Ve(oi,kr).range||"*"}catch{return null}};re.exports=Ke}}),XT=Oa({"node_modules/semver/ranges/outside.js"(M,re){Ea();var Ve=Lf(),Ke=x1(),{ANY:oi}=Ke,kr=od(),pr=E1(),Lr=T1(),ar=KT(),ke=HT(),e=GT(),a=(C,w,B,E)=>{C=new Ve(C,E),w=new kr(w,E);let Q,le,N,p,m;switch(B){case">":Q=Lr,le=ke,N=ar,p=">",m=">=";break;case"<":Q=ar,le=e,N=Lr,p="<",m="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pr(C,w,E))return!1;for(let G=0;G{K.semver===oi&&(K=new Ke(">=0.0.0")),f=f||K,T=T||K,Q(K.semver,f.semver,E)?f=K:N(K.semver,T.semver,E)&&(T=K)}),f.operator===p||f.operator===m||(!T.operator||T.operator===p)&&le(C,T.semver))return!1;if(T.operator===m&&N(C,T.semver))return!1}return!0};re.exports=a}}),pU=Oa({"node_modules/semver/ranges/gtr.js"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,pr)=>Ve(oi,kr,">",pr);re.exports=Ke}}),dU=Oa({"node_modules/semver/ranges/ltr.js"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,pr)=>Ve(oi,kr,"<",pr);re.exports=Ke}}),gU=Oa({"node_modules/semver/ranges/intersects.js"(M,re){Ea();var Ve=od(),Ke=(oi,kr,pr)=>(oi=new Ve(oi,pr),kr=new Ve(kr,pr),oi.intersects(kr));re.exports=Ke}}),mU=Oa({"node_modules/semver/ranges/simplify.js"(M,re){Ea();var Ve=E1(),Ke=nd();re.exports=(oi,kr,pr)=>{let Lr=[],ar=null,ke=null,e=oi.sort((B,E)=>Ke(B,E,pr));for(let B of e)Ve(B,kr,pr)?(ke=B,ar||(ar=B)):(ke&&Lr.push([ar,ke]),ke=null,ar=null);ar&&Lr.push([ar,null]);let a=[];for(let[B,E]of Lr)B===E?a.push(B):!E&&B===e[0]?a.push("*"):E?B===e[0]?a.push("<=".concat(E)):a.push("".concat(B," - ").concat(E)):a.push(">=".concat(B));let C=a.join(" || "),w=typeof kr.raw=="string"?kr.raw:String(kr);return C.length2&&arguments[2]!==void 0?arguments[2]:{};if(a===C)return!0;a=new Ve(a,w),C=new Ve(C,w);let B=!1;e:for(let E of a.set){for(let Q of C.set){let le=ar(E,Q,w);if(B=B||le!==null,le)continue e}if(B)return!1}return!0},ar=(a,C,w)=>{if(a===C)return!0;if(a.length===1&&a[0].semver===oi){if(C.length===1&&C[0].semver===oi)return!0;w.includePrerelease?a=[new Ke(">=0.0.0-0")]:a=[new Ke(">=0.0.0")]}if(C.length===1&&C[0].semver===oi){if(w.includePrerelease)return!0;C=[new Ke(">=0.0.0")]}let B=new Set,E,Q;for(let T of a)T.operator===">"||T.operator===">="?E=ke(E,T,w):T.operator==="<"||T.operator==="<="?Q=e(Q,T,w):B.add(T.semver);if(B.size>1)return null;let le;if(E&&Q){if(le=pr(E.semver,Q.semver,w),le>0)return null;if(le===0&&(E.operator!==">="||Q.operator!=="<="))return null}for(let T of B){if(E&&!kr(T,String(E),w)||Q&&!kr(T,String(Q),w))return null;for(let K of C)if(!kr(T,String(K),w))return!1;return!0}let N,p,m,G,oe=Q&&!w.includePrerelease&&Q.semver.prerelease.length?Q.semver:!1,f=E&&!w.includePrerelease&&E.semver.prerelease.length?E.semver:!1;oe&&oe.prerelease.length===1&&Q.operator==="<"&&oe.prerelease[0]===0&&(oe=!1);for(let T of C){if(G=G||T.operator===">"||T.operator===">=",m=m||T.operator==="<"||T.operator==="<=",E){if(f&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===f.major&&T.semver.minor===f.minor&&T.semver.patch===f.patch&&(f=!1),T.operator===">"||T.operator===">="){if(N=ke(E,T,w),N===T&&N!==E)return!1}else if(E.operator===">="&&!kr(E.semver,String(T),w))return!1}if(Q){if(oe&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===oe.major&&T.semver.minor===oe.minor&&T.semver.patch===oe.patch&&(oe=!1),T.operator==="<"||T.operator==="<="){if(p=e(Q,T,w),p===T&&p!==Q)return!1}else if(Q.operator==="<="&&!kr(Q.semver,String(T),w))return!1}if(!T.operator&&(Q||E)&&le!==0)return!1}return!(E&&m&&!Q&&le!==0||Q&&G&&!E&&le!==0||f||oe)},ke=(a,C,w)=>{if(!a)return C;let B=pr(a.semver,C.semver,w);return B>0?a:B<0||C.operator===">"&&a.operator===">="?C:a},e=(a,C,w)=>{if(!a)return C;let B=pr(a.semver,C.semver,w);return B<0?a:B>0||C.operator==="<"&&a.operator==="<="?C:a};re.exports=Lr}}),QT=Oa({"node_modules/semver/index.js"(M,re){Ea();var Ve=wv();re.exports={re:Ve.re,src:Ve.src,tokens:Ve.t,SEMVER_SPEC_VERSION:D1().SEMVER_SPEC_VERSION,SemVer:Lf(),compareIdentifiers:BT().compareIdentifiers,rcompareIdentifiers:BT().rcompareIdentifiers,parse:Ov(),valid:Kj(),clean:Gj(),inc:Hj(),diff:Xj(),major:Qj(),minor:Yj(),patch:$j(),prerelease:Zj(),compare:nd(),rcompare:eU(),compareLoose:rU(),compareBuild:VT(),sort:iU(),rsort:tU(),gt:T1(),lt:KT(),eq:qT(),neq:J4(),gte:GT(),lte:HT(),cmp:j4(),coerce:aU(),Comparator:x1(),Range:od(),satisfies:E1(),toComparators:cU(),maxSatisfying:uU(),minSatisfying:lU(),minVersion:fU(),validRange:_U(),outside:XT(),gtr:pU(),ltr:dU(),intersects:gU(),simplifyRange:mU(),subset:vU()}}}),U4={};h1(U4,{basename:()=>K4,default:()=>H4,delimiter:()=>jT,dirname:()=>V4,extname:()=>G4,isAbsolute:()=>$T,join:()=>W4,normalize:()=>YT,relative:()=>q4,resolve:()=>y1,sep:()=>JT});function z4(M,re){for(var Ve=0,Ke=M.length-1;Ke>=0;Ke--){var oi=M[Ke];oi==="."?M.splice(Ke,1):oi===".."?(M.splice(Ke,1),Ve++):Ve&&(M.splice(Ke,1),Ve--)}if(re)for(;Ve--;Ve)M.unshift("..");return M}function y1(){for(var M="",re=!1,Ve=arguments.length-1;Ve>=-1&&!re;Ve--){var Ke=Ve>=0?arguments[Ve]:"/";if(typeof Ke!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!Ke)continue;M=Ke+"/"+M,re=Ke.charAt(0)==="/"}return M=z4(ZT(M.split("/"),function(oi){return!!oi}),!re).join("/"),(re?"/":"")+M||"."}function YT(M){var re=$T(M),Ve=X4(M,-1)==="/";return M=z4(ZT(M.split("/"),function(Ke){return!!Ke}),!re).join("/"),!M&&!re&&(M="."),M&&Ve&&(M+="/"),(re?"/":"")+M}function $T(M){return M.charAt(0)==="/"}function W4(){var M=Array.prototype.slice.call(arguments,0);return YT(ZT(M,function(re,Ve){if(typeof re!="string")throw new TypeError("Arguments to path.join must be strings");return re}).join("/"))}function q4(M,re){M=y1(M).substr(1),re=y1(re).substr(1);function Ve(ke){for(var e=0;e=0&&ke[a]==="";a--);return e>a?[]:ke.slice(e,a-e+1)}for(var Ke=Ve(M.split("/")),oi=Ve(re.split("/")),kr=Math.min(Ke.length,oi.length),pr=kr,Lr=0;LrY4});var Y4,hU=Qy({"node-modules-polyfills:fs"(){Ea(),Y4={}}}),ex=Oa({"node-modules-polyfills-commonjs:fs"(M,re){Ea();var Ve=(hU(),mp(Q4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),_u=Oa({"node_modules/typescript/lib/typescript.js"(M,re){"use strict";Ea();var Ve=M&&M.__spreadArray||function(e,a,C){if(C||arguments.length===2)for(var w=0,B=a.length,E;w0&&E[E.length-1])&&(p[0]===6||p[0]===2)){C=0;continue}if(p[0]===3&&(!E||p[1]>E[0]&&p[1]=0;qe--){var br=Ce(S[qe],qe);if(br)return br}}e.forEachRight=B;function E(S,Ce){if(S!==void 0)for(var qe=0;qe=0;qe--){var br=S[qe];if(Ce(br,qe))return br}}e.findLast=T;function K(S,Ce,qe){for(var br=qe||0;br=0;br--)if(Ce(S[br],br))return br;return-1}e.findLastIndex=b;function se(S,Ce){for(var qe=0;qe0;return!1}e.some=D;function fe(S,Ce,qe){for(var br,Zr=0;Zr0&&e.Debug.assertGreaterThanOrEqual(qe(Ce[Si],Ce[Si-1]),0);r:for(var Pi=Zr;ZrPi&&e.Debug.assertGreaterThanOrEqual(qe(S[Zr],S[Zr-1]),0),qe(Ce[Si],S[Zr])){case-1:br.push(Ce[Si]);continue e;case 0:continue e;case 1:continue r}}return br}e.relativeComplement=Ie;function _e(S,Ce){for(var qe=0,br=0,Zr=S;br>1),Ct=qe(S[Qi],Qi);switch(br(Ct,Ce)){case-1:Si=Qi+1;break;case 0:return Qi;case 1:Pi=Qi-1;break}}return~Si}e.binarySearchKey=mi;function pe(S,Ce,qe,br,Zr){if(S&&S.length>0){var Si=S.length;if(Si>0){var Pi=br===void 0||br<0?0:br,Qi=Zr===void 0||Pi+Zr>Si-1?Si-1:Pi+Zr,Ct=void 0;for(arguments.length<=2?(Ct=S[Pi],Pi++):Ct=qe;Pi<=Qi;)Ct=Ce(Ct,S[Pi],Pi),Pi++;return Ct}}return qe}e.reduceLeft=pe;var or=Object.prototype.hasOwnProperty;function qr(S,Ce){return or.call(S,Ce)}e.hasProperty=qr;function si(S,Ce){return or.call(S,Ce)?S[Ce]:void 0}e.getProperty=si;function Di(S){var Ce=[];for(var qe in S)or.call(S,qe)&&Ce.push(qe);return Ce}e.getOwnKeys=Di;function wi(S){var Ce=[];do for(var qe=Object.getOwnPropertyNames(S),br=0,Zr=qe;brCe?1:0)}e.compareStringsCaseInsensitive=Bt;function wt(S,Ce){return Ii(S,Ce)}e.compareStringsCaseSensitive=wt;function na(S){return S?Bt:wt}e.getStringComparer=na;var Ai=function(){var S,Ce,qe=Qi();return Ct;function br(sa,en,Wa){if(sa===en)return 0;if(sa===void 0)return-1;if(en===void 0)return 1;var qn=Wa(sa,en);return qn<0?-1:qn>0?1:0}function Zr(sa){var en=new Intl.Collator(sa,{usage:"sort",sensitivity:"variant"}).compare;return function(Wa,qn){return br(Wa,qn,en)}}function Si(sa){if(sa!==void 0)return Pi();return function(Wa,qn){return br(Wa,qn,en)};function en(Wa,qn){return Wa.localeCompare(qn)}}function Pi(){return function(Wa,qn){return br(Wa,qn,sa)};function sa(Wa,qn){return en(Wa.toUpperCase(),qn.toUpperCase())||en(Wa,qn)}function en(Wa,qn){return Waqn?1:0}}function Qi(){return typeof Intl=="object"&&typeof Intl.Collator=="function"?Zr:typeof String.prototype.localeCompare=="function"&&typeof String.prototype.toLocaleUpperCase=="function"&&"a".localeCompare("B")<0?Si:Pi}function Ct(sa){return sa===void 0?S||(S=qe(sa)):sa==="en-US"?Ce||(Ce=qe(sa)):qe(sa)}}(),Oi,ji;function Vi(){return ji}e.getUILocale=Vi;function at(S){ji!==S&&(ji=S,Oi=void 0)}e.setUILocale=at;function At(S,Ce){var qe=Oi||(Oi=Ai(ji));return qe(S,Ce)}e.compareStringsCaseSensitiveUI=At;function ba(S,Ce,qe,br){return S===Ce?0:S===void 0?-1:Ce===void 0?1:br(S[qe],Ce[qe])}e.compareProperties=ba;function $a(S,Ce){return Ki(S?1:0,Ce?1:0)}e.compareBooleans=$a;function Qa(S,Ce,qe){for(var br=Math.min(2,Math.floor(S.length*.34)),Zr=Math.floor(S.length*.4)+1,Si,Pi=0,Qi=Ce;Piqe?Pi-qe:1),sa=Math.floor(Ce.length>qe+Pi?qe+Pi:Ce.length);Zr[0]=Pi;for(var en=Pi,Wa=1;Waqe)return;var So=br;br=Zr,Zr=So}var Go=br[Ce.length];return Go>qe?void 0:Go}function Dn(S,Ce){var qe=S.length-Ce.length;return qe>=0&&S.indexOf(Ce,qe)===qe}e.endsWith=Dn;function ka(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):S}e.removeSuffix=ka;function Ba(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):void 0}e.tryRemoveSuffix=Ba;function pn(S,Ce){return S.indexOf(Ce)!==-1}e.stringContains=pn;function Cn(S){for(var Ce=S.length,qe=Ce-1;qe>0;qe--){var br=S.charCodeAt(qe);if(br>=48&&br<=57)do--qe,br=S.charCodeAt(qe);while(qe>0&&br>=48&&br<=57);else if(qe>4&&(br===110||br===78)){if(--qe,br=S.charCodeAt(qe),br!==105&&br!==73||(--qe,br=S.charCodeAt(qe),br!==109&&br!==77))break;--qe,br=S.charCodeAt(qe)}else break;if(br!==45&&br!==46)break;Ce=qe}return Ce===S.length?S:S.slice(0,Ce)}e.removeMinAndVersionNumbers=Cn;function Bi(S,Ce){for(var qe=0;qeZr&&(Zr=Ct.prefix.length,br=Qi)}return br}e.findBestPatternMatch=bo;function Ro(S,Ce){return S.lastIndexOf(Ce,0)===0}e.startsWith=Ro;function En(S,Ce){return Ro(S,Ce)?S.substr(Ce.length):S}e.removePrefix=En;function Wn(S,Ce,qe){return qe===void 0&&(qe=vi),Ro(qe(S),qe(Ce))?S.substring(Ce.length):void 0}e.tryRemovePrefix=Wn;function to(S,Ce){var qe=S.prefix,br=S.suffix;return Ce.length>=qe.length+br.length&&Ro(Ce,qe)&&Dn(Ce,br)}function Co(S,Ce){return function(qe){return S(qe)&&Ce(qe)}}e.and=Co;function Ko(){for(var S=[],Ce=0;Ce=0&&e.isWhiteSpaceLike(S.charCodeAt(Ce));)Ce--;return S.slice(0,Ce+1)}})(ke||(ke={}));var ke;(function(e){var a;(function(w){w[w.Off=0]="Off",w[w.Error=1]="Error",w[w.Warning=2]="Warning",w[w.Info=3]="Info",w[w.Verbose=4]="Verbose"})(a=e.LogLevel||(e.LogLevel={}));var C;(function(w){var B,E=0;w.currentLogLevel=a.Warning,w.isDebugging=!1;function Q(){return B!=null?B:B=new e.Version(e.version)}w.getTypeScriptVersion=Q;function le(Ye){return w.currentLogLevel<=Ye}w.shouldLog=le;function N(Ye,Br){w.loggingHost&&le(Ye)&&w.loggingHost.log(Ye,Br)}function p(Ye){N(a.Info,Ye)}w.log=p,function(Ye){function Br(lr){N(a.Error,lr)}Ye.error=Br;function Er(lr){N(a.Warning,lr)}Ye.warn=Er;function Ne(lr){N(a.Info,lr)}Ye.log=Ne;function n(lr){N(a.Verbose,lr)}Ye.trace=n}(p=w.log||(w.log={}));var m={};function G(){return E}w.getAssertionLevel=G;function oe(Ye){var Br=E;if(E=Ye,Ye>Br)for(var Er=0,Ne=e.getOwnKeys(m);Er=lr.level&&(w[n]=lr,m[n]=void 0)}}w.setAssertionLevel=oe;function f(Ye){return E>=Ye}w.shouldAssert=f;function T(Ye,Br){return f(Ye)?!0:(m[Br]={level:Ye,assertion:w[Br]},w[Br]=e.noop,!1)}function K(Ye,Br){debugger;var Er=new Error(Ye?"Debug Failure. ".concat(Ye):"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Er,Br||K),Er}w.fail=K;function b(Ye,Br,Er){return K("".concat(Br||"Unexpected node.",`\r +Node `).concat(j(Ye.kind)," was unexpected."),Er||b)}w.failBadSyntaxKind=b;function se(Ye,Br,Er,Ne){Ye||(Br=Br?"False expression: ".concat(Br):"False expression.",Er&&(Br+=`\r +Verbose Debug Information: `+(typeof Er=="string"?Er:Er())),K(Br,Ne||se))}w.assert=se;function J(Ye,Br,Er,Ne,n){if(Ye!==Br){var lr=Er?Ne?"".concat(Er," ").concat(Ne):Er:"";K("Expected ".concat(Ye," === ").concat(Br,". ").concat(lr),n||J)}}w.assertEqual=J;function ie(Ye,Br,Er,Ne){Ye>=Br&&K("Expected ".concat(Ye," < ").concat(Br,". ").concat(Er||""),Ne||ie)}w.assertLessThan=ie;function R(Ye,Br,Er){Ye>Br&&K("Expected ".concat(Ye," <= ").concat(Br),Er||R)}w.assertLessThanOrEqual=R;function q(Ye,Br,Er){Ye= ").concat(Br),Er||q)}w.assertGreaterThanOrEqual=q;function O(Ye,Br,Er){Ye==null&&K(Br,Er||O)}w.assertIsDefined=O;function ve(Ye,Br,Er){return O(Ye,Br,Er||ve),Ye}w.checkDefined=ve;function ee(Ye,Br,Er){for(var Ne=0,n=Ye;Ne0&&Ne[0][0]===0?Ne[0][1]:"0";if(Er){for(var n="",lr=Ye,be=0,Ge=Ne;beYe)break;yr!==0&&yr&Ye&&(n="".concat(n).concat(n?"|":"").concat(Ir),lr&=~yr)}if(lr===0)return n}else for(var wr=0,Ur=Ne;wr=0;return ur?ye(Ye,lr,Ge,Br.message):yr?Ae(Ye,lr,Ge,Br.message):e.noop}function ir(Ye,Br){return function(){return Ye(),Br.apply(this,arguments)}}function Cr(Ye,Br){var Er=er(P(Ye),Br);return ir(Er,Ye)}w.deprecate=Cr})(C=e.Debug||(e.Debug={}))})(ke||(ke={}));var ke;(function(e){var a=/^(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i,C=/^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)(?:\.(?:0|[1-9]\d*|[a-z-][a-z0-9-]*))*$/i,w=/^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/i,B=/^(0|[1-9]\d*)$/,E=function(){function F(x,X,$,A,y){if(X===void 0&&(X=0),$===void 0&&($=0),A===void 0&&(A=""),y===void 0&&(y=""),typeof x=="string"){var V=e.Debug.checkDefined(Q(x),"Invalid version");x=V.major,X=V.minor,$=V.patch,A=V.prerelease,y=V.build}e.Debug.assert(x>=0,"Invalid argument: major"),e.Debug.assert(X>=0,"Invalid argument: minor"),e.Debug.assert($>=0,"Invalid argument: patch"),e.Debug.assert(!A||C.test(A),"Invalid argument: prerelease"),e.Debug.assert(!y||w.test(y),"Invalid argument: build"),this.major=x,this.minor=X,this.patch=$,this.prerelease=A?A.split("."):e.emptyArray,this.build=y?y.split("."):e.emptyArray}return F.tryParse=function(x){var X=Q(x);if(!!X){var $=X.major,A=X.minor,y=X.patch,V=X.prerelease,L=X.build;return new F($,A,y,V,L)}},F.prototype.compareTo=function(x){return this===x?0:x===void 0?1:e.compareValues(this.major,x.major)||e.compareValues(this.minor,x.minor)||e.compareValues(this.patch,x.patch)||le(this.prerelease,x.prerelease)},F.prototype.increment=function(x){switch(x){case"major":return new F(this.major+1,0,0);case"minor":return new F(this.major,this.minor+1,0);case"patch":return new F(this.major,this.minor,this.patch+1);default:return e.Debug.assertNever(x)}},F.prototype.toString=function(){var x="".concat(this.major,".").concat(this.minor,".").concat(this.patch);return e.some(this.prerelease)&&(x+="-".concat(this.prerelease.join("."))),e.some(this.build)&&(x+="+".concat(this.build.join("."))),x},F.zero=new F(0,0,0),F}();e.Version=E;function Q(F){var x=a.exec(F);if(!!x){var X=x[1],$=x[2],A=$===void 0?"0":$,y=x[3],V=y===void 0?"0":y,L=x[4],P=L===void 0?"":L,k=x[5],Y=k===void 0?"":k;if(!(P&&!C.test(P))&&!(Y&&!w.test(Y)))return{major:parseInt(X,10),minor:parseInt(A,10),patch:parseInt(V,10),prerelease:P,build:Y}}}function le(F,x){if(F===x)return 0;if(F.length===0)return x.length===0?0:1;if(x.length===0)return-1;for(var X=Math.min(F.length,x.length),$=0;$|>=|=)?\s*([a-z0-9-+.*]+)$/i;function T(F){for(var x=[],X=0,$=e.trimString(F).split(p);X<$.length;X++){var A=$[X];if(!!A){var y=[];A=e.trimString(A);var V=oe.exec(A);if(V){if(!b(V[1],V[2],y))return}else for(var L=0,P=A.split(m);L=",$.version)),J(A.major)||X.push(J(A.minor)?ie("<",A.version.increment("major")):J(A.patch)?ie("<",A.version.increment("minor")):ie("<=",A.version)),!0):!1}function se(F,x,X){var $=K(x);if(!$)return!1;var A=$.version,y=$.major,V=$.minor,L=$.patch;if(J(y))(F==="<"||F===">")&&X.push(ie("<",E.zero));else switch(F){case"~":X.push(ie(">=",A)),X.push(ie("<",A.increment(J(V)?"major":"minor")));break;case"^":X.push(ie(">=",A)),X.push(ie("<",A.increment(A.major>0||J(V)?"major":A.minor>0||J(L)?"minor":"patch")));break;case"<":case">=":X.push(ie(F,A));break;case"<=":case">":X.push(J(V)?ie(F==="<="?"<":">=",A.increment("major")):J(L)?ie(F==="<="?"<":">=",A.increment("minor")):ie(F,A));break;case"=":case void 0:J(V)||J(L)?(X.push(ie(">=",A)),X.push(ie("<",A.increment(J(V)?"major":"minor")))):X.push(ie("=",A));break;default:return!1}return!0}function J(F){return F==="*"||F==="x"||F==="X"}function ie(F,x){return{operator:F,operand:x}}function R(F,x){if(x.length===0)return!0;for(var X=0,$=x;X<$.length;X++){var A=$[X];if(q(F,A))return!0}return!1}function q(F,x){for(var X=0,$=x;X<$.length;X++){var A=$[X];if(!O(F,A.operator,A.operand))return!1}return!0}function O(F,x,X){var $=F.compareTo(X);switch(x){case"<":return $<0;case"<=":return $<=0;case">":return $>0;case">=":return $>=0;case"=":return $===0;default:return e.Debug.assertNever(x)}}function ve(F){return e.map(F,ee).join(" || ")||"*"}function ee(F){return e.map(F,he).join(" ")}function he(F){return"".concat(F.operator).concat(F.operand)}})(ke||(ke={}));var ke;(function(e){function a(le,N){return typeof le=="object"&&typeof le.timeOrigin=="number"&&typeof le.mark=="function"&&typeof le.measure=="function"&&typeof le.now=="function"&&typeof N=="function"}function C(){if(typeof performance=="object"&&typeof PerformanceObserver=="function"&&a(performance,PerformanceObserver))return{shouldWriteNativeEvents:!0,performance,PerformanceObserver}}function w(){}var B=C()||void 0,E=B==null?void 0:B.performance;function Q(){return B}e.tryGetNativePerformanceHooks=Q,e.timestamp=E?function(){return E.now()}:Date.now?Date.now:function(){return+new Date}})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B;function E(R,q,O,ve){return R?Q(q,O,ve):C.nullTimer}C.createTimerIf=E;function Q(R,q,O){var ve=0;return{enter:ee,exit:he};function ee(){++ve===1&&oe(q)}function he(){--ve===0?(oe(O),f(R,q,O)):ve<0&&e.Debug.fail("enter/exit count does not match.")}}C.createTimer=Q,C.nullTimer={enter:e.noop,exit:e.noop};var le=!1,N=e.timestamp(),p=new e.Map,m=new e.Map,G=new e.Map;function oe(R){var q;if(le){var O=(q=m.get(R))!==null&&q!==void 0?q:0;m.set(R,O+1),p.set(R,e.timestamp()),B==null||B.mark(R)}}C.mark=oe;function f(R,q,O){var ve,ee;if(le){var he=(ve=O!==void 0?p.get(O):void 0)!==null&&ve!==void 0?ve:e.timestamp(),F=(ee=q!==void 0?p.get(q):void 0)!==null&&ee!==void 0?ee:N,x=G.get(R)||0;G.set(R,x+(he-F)),B==null||B.measure(R,q,O)}}C.measure=f;function T(R){return m.get(R)||0}C.getCount=T;function K(R){return G.get(R)||0}C.getDuration=K;function b(R){G.forEach(function(q,O){return R(O,q)})}C.forEachMeasure=b;function se(){return le}C.isEnabled=se;function J(R){var q;return R===void 0&&(R=e.sys),le||(le=!0,w||(w=e.tryGetNativePerformanceHooks()),w&&(N=w.performance.timeOrigin,(w.shouldWriteNativeEvents||((q=R==null?void 0:R.cpuProfilingEnabled)===null||q===void 0?void 0:q.call(R))||(R==null?void 0:R.debugMode))&&(B=w.performance))),!0}C.enable=J;function ie(){le&&(p.clear(),m.clear(),G.clear(),B=void 0,le=!1)}C.disable=ie})(a=e.performance||(e.performance={}))})(ke||(ke={}));var ke;(function(e){var a,C={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},w;try{var B=(a=Eu.env.TS_ETW_MODULE_PATH)!==null&&a!==void 0?a:"./node_modules/@microsoft/typescript-etw";w=void 0}catch{w=void 0}e.perfLogger=w&&w.logEvent?w:C})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B=0,E=0,Q,le=[],N,p=[];function m(he,F,x){if(e.Debug.assert(!e.tracing,"Tracing already started"),w===void 0)try{w=ex()}catch(V){throw new Error(`tracing requires having fs +(original error: `.concat(V.message||V,")"))}Q=he,le.length=0,N===void 0&&(N=e.combinePaths(F,"legend.json")),w.existsSync(F)||w.mkdirSync(F,{recursive:!0});var X=Q==="build"?".".concat(Eu.pid,"-").concat(++B):Q==="server"?".".concat(Eu.pid):"",$=e.combinePaths(F,"trace".concat(X,".json")),A=e.combinePaths(F,"types".concat(X,".json"));p.push({configFilePath:x,tracePath:$,typesPath:A}),E=w.openSync($,"w"),e.tracing=C;var y={cat:"__metadata",ph:"M",ts:1e3*e.timestamp(),pid:1,tid:1};w.writeSync(E,`[ +`+[Ke({name:"process_name",args:{name:"tsc"}},y),Ke({name:"thread_name",args:{name:"Main"}},y),Ke(Ke({name:"TracingStartedInBrowser"},y),{cat:"disabled-by-default-devtools.timeline"})].map(function(V){return JSON.stringify(V)}).join(`, +`))}C.startTracing=m;function G(){e.Debug.assert(e.tracing,"Tracing is not in progress"),e.Debug.assert(!!le.length==(Q!=="server")),w.writeSync(E,` +] +`),w.closeSync(E),e.tracing=void 0,le.length?ve(le):p[p.length-1].typesPath=void 0}C.stopTracing=G;function oe(he){Q!=="server"&&le.push(he)}C.recordType=oe;var f;(function(he){he.Parse="parse",he.Program="program",he.Bind="bind",he.Check="check",he.CheckTypes="checkTypes",he.Emit="emit",he.Session="session"})(f=C.Phase||(C.Phase={}));function T(he,F,x){q("I",he,F,x,'"s":"g"')}C.instant=T;var K=[];function b(he,F,x,X){X===void 0&&(X=!1),X&&q("B",he,F,x),K.push({phase:he,name:F,args:x,time:1e3*e.timestamp(),separateBeginAndEnd:X})}C.push=b;function se(){e.Debug.assert(K.length>0),R(K.length-1,1e3*e.timestamp()),K.length--}C.pop=se;function J(){for(var he=1e3*e.timestamp(),F=K.length-1;F>=0;F--)R(F,he);K.length=0}C.popAll=J;var ie=1e3*10;function R(he,F){var x=K[he],X=x.phase,$=x.name,A=x.args,y=x.time,V=x.separateBeginAndEnd;V?q("E",X,$,A,void 0,F):ie-y%ie<=F-y&&q("X",X,$,A,'"dur":'.concat(F-y),y)}function q(he,F,x,X,$,A){A===void 0&&(A=1e3*e.timestamp()),!(Q==="server"&&F==="checkTypes")&&(e.performance.mark("beginTracing"),w.writeSync(E,`, +{"pid":1,"tid":1,"ph":"`.concat(he,'","cat":"').concat(F,'","ts":').concat(A,',"name":"').concat(x,'"')),$&&w.writeSync(E,",".concat($)),X&&w.writeSync(E,',"args":'.concat(JSON.stringify(X))),w.writeSync(E,"}"),e.performance.mark("endTracing"),e.performance.measure("Tracing","beginTracing","endTracing"))}function O(he){var F=e.getSourceFileOfNode(he);return F?{path:F.path,start:x(e.getLineAndCharacterOfPosition(F,he.pos)),end:x(e.getLineAndCharacterOfPosition(F,he.end))}:void 0;function x(X){return{line:X.line+1,character:X.character+1}}}function ve(he){var F,x,X,$,A,y,V,L,P,k,Y,U,j,H,I,l,d,D,fe,g,ne,ue;e.performance.mark("beginDumpTypes");var We=p[p.length-1].typesPath,Fe=w.openSync(We,"w"),Z=new e.Map;w.writeSync(Fe,"[");for(var Be=he.length,ge=0;ge"u")){var A=Eu.version;if(!!A){var y=A.indexOf(".");if(y!==-1)return parseInt(A.substring(1,y))}}}e.getNodeMajorVersion=X,e.sys=void 0;function $(A){e.sys=void 0}e.setSys=$,e.sys&&e.sys.getEnvironmentVariable&&(p(e.sys),e.Debug.setAssertionLevel(/^development$/i.test(e.sys.getEnvironmentVariable("NODE_ENV"))?1:0)),e.sys&&e.sys.debugMode&&(e.Debug.isDebugging=!0)})(ke||(ke={}));var ke;(function(e){e.directorySeparator="/",e.altDirectorySeparator="\\";var a="://",C=/\\/g;function w(ze){return ze===47||ze===92}e.isAnyDirectorySeparator=w;function B(ze){return b(ze)<0}e.isUrl=B;function E(ze){return b(ze)>0}e.isRootedDiskPath=E;function Q(ze){var Ee=b(ze);return Ee>0&&Ee===ze.length}e.isDiskPathRoot=Q;function le(ze){return b(ze)!==0}e.pathIsAbsolute=le;function N(ze){return/^\.\.?($|[\\/])/.test(ze)}e.pathIsRelative=N;function p(ze){return!le(ze)&&!N(ze)}e.pathIsBareSpecifier=p;function m(ze){return e.stringContains(ie(ze),".")}e.hasExtension=m;function G(ze,Ee){return ze.length>Ee.length&&e.endsWith(ze,Ee)}e.fileExtensionIs=G;function oe(ze,Ee){for(var He=0,rr=Ee;He0&&w(ze.charCodeAt(ze.length-1))}e.hasTrailingDirectorySeparator=f;function T(ze){return ze>=97&&ze<=122||ze>=65&&ze<=90}function K(ze,Ee){var He=ze.charCodeAt(Ee);if(He===58)return Ee+1;if(He===37&&ze.charCodeAt(Ee+1)===51){var rr=ze.charCodeAt(Ee+2);if(rr===97||rr===65)return Ee+3}return-1}function b(ze){if(!ze)return 0;var Ee=ze.charCodeAt(0);if(Ee===47||Ee===92){if(ze.charCodeAt(1)!==Ee)return 1;var He=ze.indexOf(Ee===47?e.directorySeparator:e.altDirectorySeparator,2);return He<0?ze.length:He+1}if(T(Ee)&&ze.charCodeAt(1)===58){var rr=ze.charCodeAt(2);if(rr===47||rr===92)return 3;if(ze.length===2)return 2}var Ie=ze.indexOf(a);if(Ie!==-1){var _e=Ie+a.length,we=ze.indexOf(e.directorySeparator,_e);if(we!==-1){var de=ze.slice(0,Ie),ye=ze.slice(_e,we);if(de==="file"&&(ye===""||ye==="localhost")&&T(ze.charCodeAt(we+1))){var Ae=K(ze,we+2);if(Ae!==-1){if(ze.charCodeAt(Ae)===47)return~(Ae+1);if(Ae===ze.length)return~Ae}}return~(we+1)}return~ze.length}return 0}function se(ze){var Ee=b(ze);return Ee<0?~Ee:Ee}e.getRootLength=se;function J(ze){ze=F(ze);var Ee=se(ze);return Ee===ze.length?ze:(ze=Y(ze),ze.slice(0,Math.max(Ee,ze.lastIndexOf(e.directorySeparator))))}e.getDirectoryPath=J;function ie(ze,Ee,He){ze=F(ze);var rr=se(ze);if(rr===ze.length)return"";ze=Y(ze);var Ie=ze.slice(Math.max(se(ze),ze.lastIndexOf(e.directorySeparator)+1)),_e=Ee!==void 0&&He!==void 0?O(Ie,Ee,He):void 0;return _e?Ie.slice(0,Ie.length-_e.length):Ie}e.getBaseFileName=ie;function R(ze,Ee,He){if(e.startsWith(Ee,".")||(Ee="."+Ee),ze.length>=Ee.length&&ze.charCodeAt(ze.length-Ee.length)===46){var rr=ze.slice(ze.length-Ee.length);if(He(rr,Ee))return rr}}function q(ze,Ee,He){if(typeof Ee=="string")return R(ze,Ee,He)||"";for(var rr=0,Ie=Ee;rr=0?rr.substring(Ie):""}e.getAnyExtensionFromPath=O;function ve(ze,Ee){var He=ze.substring(0,Ee),rr=ze.substring(Ee).split(e.directorySeparator);return rr.length&&!e.lastOrUndefined(rr)&&rr.pop(),Ve([He],rr,!0)}function ee(ze,Ee){return Ee===void 0&&(Ee=""),ze=X(Ee,ze),ve(ze,se(ze))}e.getPathComponents=ee;function he(ze){if(ze.length===0)return"";var Ee=ze[0]&&U(ze[0]);return Ee+ze.slice(1).join(e.directorySeparator)}e.getPathFromPathComponents=he;function F(ze){var Ee=ze.indexOf("\\");return Ee===-1?ze:(C.lastIndex=Ee,ze.replace(C,e.directorySeparator))}e.normalizeSlashes=F;function x(ze){if(!e.some(ze))return[];for(var Ee=[ze[0]],He=1;He1){if(Ee[Ee.length-1]!==".."){Ee.pop();continue}}else if(Ee[0])continue}Ee.push(rr)}}return Ee}e.reducePathComponents=x;function X(ze){for(var Ee=[],He=1;He0==se(Ee)>0,"Paths must either both be absolute or both be relative");var rr=typeof He=="function"?He:e.identity,Ie=typeof He=="boolean"?He:!1,_e=ue(ze,Ee,Ie?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,rr);return he(_e)}e.getRelativePathFromDirectory=We;function Fe(ze,Ee,He){return E(ze)?Be(Ee,ze,Ee,He,!1):ze}e.convertToRelativePath=Fe;function Z(ze,Ee,He){return j(We(J(ze),Ee,He))}e.getRelativePathFromFile=Z;function Be(ze,Ee,He,rr,Ie){var _e=ue($(He,ze),$(He,Ee),e.equateStringsCaseSensitive,rr),we=_e[0];if(Ie&&E(we)){var de=we.charAt(0)===e.directorySeparator?"file://":"file:///";_e[0]=de+we}return he(_e)}e.getRelativePathToDirectoryOrUrl=Be;function ge(ze,Ee){for(;;){var He=Ee(ze);if(He!==void 0)return He;var rr=J(ze);if(rr===ze)return;ze=rr}}e.forEachAncestorDirectory=ge;function Re(ze){return e.endsWith(ze,"/node_modules")}e.isNodeModulesDirectory=Re})(ke||(ke={}));var ke;(function(e){function a(C,w,B,E,Q,le,N){return{code:C,category:w,key:B,message:E,reportsUnnecessary:Q,elidedInCompatabilityPyramid:le,reportsDeprecated:N}}e.Diagnostics={Unterminated_string_literal:a(1002,e.DiagnosticCategory.Error,"Unterminated_string_literal_1002","Unterminated string literal."),Identifier_expected:a(1003,e.DiagnosticCategory.Error,"Identifier_expected_1003","Identifier expected."),_0_expected:a(1005,e.DiagnosticCategory.Error,"_0_expected_1005","'{0}' expected."),A_file_cannot_have_a_reference_to_itself:a(1006,e.DiagnosticCategory.Error,"A_file_cannot_have_a_reference_to_itself_1006","A file cannot have a reference to itself."),The_parser_expected_to_find_a_1_to_match_the_0_token_here:a(1007,e.DiagnosticCategory.Error,"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007","The parser expected to find a '{1}' to match the '{0}' token here."),Trailing_comma_not_allowed:a(1009,e.DiagnosticCategory.Error,"Trailing_comma_not_allowed_1009","Trailing comma not allowed."),Asterisk_Slash_expected:a(1010,e.DiagnosticCategory.Error,"Asterisk_Slash_expected_1010","'*/' expected."),An_element_access_expression_should_take_an_argument:a(1011,e.DiagnosticCategory.Error,"An_element_access_expression_should_take_an_argument_1011","An element access expression should take an argument."),Unexpected_token:a(1012,e.DiagnosticCategory.Error,"Unexpected_token_1012","Unexpected token."),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:a(1013,e.DiagnosticCategory.Error,"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013","A rest parameter or binding pattern may not have a trailing comma."),A_rest_parameter_must_be_last_in_a_parameter_list:a(1014,e.DiagnosticCategory.Error,"A_rest_parameter_must_be_last_in_a_parameter_list_1014","A rest parameter must be last in a parameter list."),Parameter_cannot_have_question_mark_and_initializer:a(1015,e.DiagnosticCategory.Error,"Parameter_cannot_have_question_mark_and_initializer_1015","Parameter cannot have question mark and initializer."),A_required_parameter_cannot_follow_an_optional_parameter:a(1016,e.DiagnosticCategory.Error,"A_required_parameter_cannot_follow_an_optional_parameter_1016","A required parameter cannot follow an optional parameter."),An_index_signature_cannot_have_a_rest_parameter:a(1017,e.DiagnosticCategory.Error,"An_index_signature_cannot_have_a_rest_parameter_1017","An index signature cannot have a rest parameter."),An_index_signature_parameter_cannot_have_an_accessibility_modifier:a(1018,e.DiagnosticCategory.Error,"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018","An index signature parameter cannot have an accessibility modifier."),An_index_signature_parameter_cannot_have_a_question_mark:a(1019,e.DiagnosticCategory.Error,"An_index_signature_parameter_cannot_have_a_question_mark_1019","An index signature parameter cannot have a question mark."),An_index_signature_parameter_cannot_have_an_initializer:a(1020,e.DiagnosticCategory.Error,"An_index_signature_parameter_cannot_have_an_initializer_1020","An index signature parameter cannot have an initializer."),An_index_signature_must_have_a_type_annotation:a(1021,e.DiagnosticCategory.Error,"An_index_signature_must_have_a_type_annotation_1021","An index signature must have a type annotation."),An_index_signature_parameter_must_have_a_type_annotation:a(1022,e.DiagnosticCategory.Error,"An_index_signature_parameter_must_have_a_type_annotation_1022","An index signature parameter must have a type annotation."),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:a(1024,e.DiagnosticCategory.Error,"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024","'readonly' modifier can only appear on a property declaration or index signature."),An_index_signature_cannot_have_a_trailing_comma:a(1025,e.DiagnosticCategory.Error,"An_index_signature_cannot_have_a_trailing_comma_1025","An index signature cannot have a trailing comma."),Accessibility_modifier_already_seen:a(1028,e.DiagnosticCategory.Error,"Accessibility_modifier_already_seen_1028","Accessibility modifier already seen."),_0_modifier_must_precede_1_modifier:a(1029,e.DiagnosticCategory.Error,"_0_modifier_must_precede_1_modifier_1029","'{0}' modifier must precede '{1}' modifier."),_0_modifier_already_seen:a(1030,e.DiagnosticCategory.Error,"_0_modifier_already_seen_1030","'{0}' modifier already seen."),_0_modifier_cannot_appear_on_class_elements_of_this_kind:a(1031,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031","'{0}' modifier cannot appear on class elements of this kind."),super_must_be_followed_by_an_argument_list_or_member_access:a(1034,e.DiagnosticCategory.Error,"super_must_be_followed_by_an_argument_list_or_member_access_1034","'super' must be followed by an argument list or member access."),Only_ambient_modules_can_use_quoted_names:a(1035,e.DiagnosticCategory.Error,"Only_ambient_modules_can_use_quoted_names_1035","Only ambient modules can use quoted names."),Statements_are_not_allowed_in_ambient_contexts:a(1036,e.DiagnosticCategory.Error,"Statements_are_not_allowed_in_ambient_contexts_1036","Statements are not allowed in ambient contexts."),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:a(1038,e.DiagnosticCategory.Error,"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038","A 'declare' modifier cannot be used in an already ambient context."),Initializers_are_not_allowed_in_ambient_contexts:a(1039,e.DiagnosticCategory.Error,"Initializers_are_not_allowed_in_ambient_contexts_1039","Initializers are not allowed in ambient contexts."),_0_modifier_cannot_be_used_in_an_ambient_context:a(1040,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_in_an_ambient_context_1040","'{0}' modifier cannot be used in an ambient context."),_0_modifier_cannot_be_used_here:a(1042,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_here_1042","'{0}' modifier cannot be used here."),_0_modifier_cannot_appear_on_a_module_or_namespace_element:a(1044,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044","'{0}' modifier cannot appear on a module or namespace element."),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:a(1046,e.DiagnosticCategory.Error,"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046","Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),A_rest_parameter_cannot_be_optional:a(1047,e.DiagnosticCategory.Error,"A_rest_parameter_cannot_be_optional_1047","A rest parameter cannot be optional."),A_rest_parameter_cannot_have_an_initializer:a(1048,e.DiagnosticCategory.Error,"A_rest_parameter_cannot_have_an_initializer_1048","A rest parameter cannot have an initializer."),A_set_accessor_must_have_exactly_one_parameter:a(1049,e.DiagnosticCategory.Error,"A_set_accessor_must_have_exactly_one_parameter_1049","A 'set' accessor must have exactly one parameter."),A_set_accessor_cannot_have_an_optional_parameter:a(1051,e.DiagnosticCategory.Error,"A_set_accessor_cannot_have_an_optional_parameter_1051","A 'set' accessor cannot have an optional parameter."),A_set_accessor_parameter_cannot_have_an_initializer:a(1052,e.DiagnosticCategory.Error,"A_set_accessor_parameter_cannot_have_an_initializer_1052","A 'set' accessor parameter cannot have an initializer."),A_set_accessor_cannot_have_rest_parameter:a(1053,e.DiagnosticCategory.Error,"A_set_accessor_cannot_have_rest_parameter_1053","A 'set' accessor cannot have rest parameter."),A_get_accessor_cannot_have_parameters:a(1054,e.DiagnosticCategory.Error,"A_get_accessor_cannot_have_parameters_1054","A 'get' accessor cannot have parameters."),Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:a(1055,e.DiagnosticCategory.Error,"Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055","Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value."),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:a(1056,e.DiagnosticCategory.Error,"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056","Accessors are only available when targeting ECMAScript 5 and higher."),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1058,e.DiagnosticCategory.Error,"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058","The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),A_promise_must_have_a_then_method:a(1059,e.DiagnosticCategory.Error,"A_promise_must_have_a_then_method_1059","A promise must have a 'then' method."),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:a(1060,e.DiagnosticCategory.Error,"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060","The first parameter of the 'then' method of a promise must be a callback."),Enum_member_must_have_initializer:a(1061,e.DiagnosticCategory.Error,"Enum_member_must_have_initializer_1061","Enum member must have initializer."),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:a(1062,e.DiagnosticCategory.Error,"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062","Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),An_export_assignment_cannot_be_used_in_a_namespace:a(1063,e.DiagnosticCategory.Error,"An_export_assignment_cannot_be_used_in_a_namespace_1063","An export assignment cannot be used in a namespace."),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:a(1064,e.DiagnosticCategory.Error,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064","The return type of an async function or method must be the global Promise 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:a(1117,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117","An object literal cannot have multiple properties with the same name."),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_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_at_the_top_level_of_a_namespace_or_module:a(1232,e.DiagnosticCategory.Error,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232","An import declaration can only be used at the top level of a namespace or module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:a(1233,e.DiagnosticCategory.Error,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233","An export declaration can only be used at the top level of a namespace or 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_at_the_top_level_of_a_namespace_or_module:a(1235,e.DiagnosticCategory.Error,"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235","A namespace declaration is only allowed at the top level of 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."),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."),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided:a(1269,e.DiagnosticCategory.Error,"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided_1269","Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided."),Decorator_function_return_type_0_is_not_assignable_to_type_1:a(1270,e.DiagnosticCategory.Error,"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270","Decorator function return type '{0}' is not assignable to type '{1}'."),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:a(1271,e.DiagnosticCategory.Error,"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271","Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:a(1272,e.DiagnosticCategory.Error,"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272","A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),_0_modifier_cannot_appear_on_a_type_parameter:a(1273,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_type_parameter_1273","'{0}' modifier cannot appear on a type parameter"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:a(1274,e.DiagnosticCategory.Error,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274","'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),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."),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:a(1309,e.DiagnosticCategory.Error,"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309","The current file is a CommonJS module and cannot use 'await' at the top level."),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_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:a(1323,e.DiagnosticCategory.Error,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext:a(1324,e.DiagnosticCategory.Error,"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nod_1324","Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', or 'nodenext'."),Argument_of_dynamic_import_cannot_be_spread_element:a(1325,e.DiagnosticCategory.Error,"Argument_of_dynamic_import_cannot_be_spread_element_1325","Argument of dynamic import cannot be spread element."),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:a(1326,e.DiagnosticCategory.Error,"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326","This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and 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_es2022_esnext_system_node16_or_nodenext:a(1343,e.DiagnosticCategory.Error,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."),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."),_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_es2022_esnext_system_node16_or_nodenext_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_es2022_esnext_system_n_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', 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'."),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."),_0_is_not_allowed_as_a_parameter_name:a(1390,e.DiagnosticCategory.Error,"_0_is_not_allowed_as_a_parameter_name_1390","'{0}' is not allowed as a parameter name."),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_es2022_esnext_system_node16_or_nodenext_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_es2022_esnext_system_nod_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', 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.`),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1444,e.DiagnosticCategory.Error,"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444","'{0}' is a type and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1446,e.DiagnosticCategory.Error,"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveVa_1446","'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isolatedModules_is_enabled:a(1448,e.DiagnosticCategory.Error,"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isol_1448","'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when 'isolatedModules' is enabled."),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:a(1449,e.DiagnosticCategory.Message,"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449","Preserve unused imported values in the JavaScript output that would otherwise be removed."),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments:a(1450,e.DiagnosticCategory.Message,"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments_1450","Dynamic imports can only accept a module specifier and an optional assertion as arguments"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:a(1451,e.DiagnosticCategory.Error,"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451","Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext:a(1452,e.DiagnosticCategory.Error,"Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext_1452","Resolution modes are only supported when `moduleResolution` is `node16` or `nodenext`."),resolution_mode_should_be_either_require_or_import:a(1453,e.DiagnosticCategory.Error,"resolution_mode_should_be_either_require_or_import_1453","`resolution-mode` should be either `require` or `import`."),resolution_mode_can_only_be_set_for_type_only_imports:a(1454,e.DiagnosticCategory.Error,"resolution_mode_can_only_be_set_for_type_only_imports_1454","`resolution-mode` can only be set for type-only imports."),resolution_mode_is_the_only_valid_key_for_type_import_assertions:a(1455,e.DiagnosticCategory.Error,"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455","`resolution-mode` is the only valid key for type import assertions."),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:a(1456,e.DiagnosticCategory.Error,"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456","Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:a(1470,e.DiagnosticCategory.Error,"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470","The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead:a(1471,e.DiagnosticCategory.Error,"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471","Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead."),catch_or_finally_expected:a(1472,e.DiagnosticCategory.Error,"catch_or_finally_expected_1472","'catch' or 'finally' expected."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1473,e.DiagnosticCategory.Error,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473","An import declaration can only be used at the top level of a module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1474,e.DiagnosticCategory.Error,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474","An export declaration can only be used at the top level of a module."),Control_what_method_is_used_to_detect_module_format_JS_files:a(1475,e.DiagnosticCategory.Message,"Control_what_method_is_used_to_detect_module_format_JS_files_1475","Control what method is used to detect module-format JS files."),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:a(1476,e.DiagnosticCategory.Message,"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476",'"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),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),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:a(2206,e.DiagnosticCategory.Error,"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206","The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:a(2207,e.DiagnosticCategory.Error,"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207","The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2209,e.DiagnosticCategory.Error,"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209","The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2210,e.DiagnosticCategory.Error,"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210","The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),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."),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:a(2311,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311","Cannot find name '{0}'. Did you mean to write this in an async function?"),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}'."),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_a_private_identifier_or_of_type_any_string_number_or_symbol:a(2360,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_in_expression_must_be_a_private_identifier_or_of_type_any_string_number_or__2360","The left-hand side of an 'in' expression must be a private identifier or 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}'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2375,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_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_to_refer_to_super_or_this_when_a_derived_2376","A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived 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."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2379,e.DiagnosticCategory.Error,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379","Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),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"),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."),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:a(2401,e.DiagnosticCategory.Error,"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401","A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),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'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:a(2412,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),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."),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_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'."),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'."),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."),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."),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."),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}'?"),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'."),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."),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_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."),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."),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:a(2635,e.DiagnosticCategory.Error,"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635","Type '{0}' has no signatures for which the type argument list is applicable."),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:a(2636,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636","Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:a(2637,e.DiagnosticCategory.Error,"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637","Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),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}'."),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."),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."),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."),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:a(2810,e.DiagnosticCategory.Error,"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810","Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),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}'."),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:a(2820,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820","Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext:a(2821,e.DiagnosticCategory.Error,"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext_2821","Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'."),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:a(2822,e.DiagnosticCategory.Error,"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822","Import assertions cannot be used with type-only imports or exports."),Cannot_find_namespace_0_Did_you_mean_1:a(2833,e.DiagnosticCategory.Error,"Cannot_find_namespace_0_Did_you_mean_1_2833","Cannot find namespace '{0}'. Did you mean '{1}'?"),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:a(2834,e.DiagnosticCategory.Error,"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834","Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:a(2835,e.DiagnosticCategory.Error,"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835","Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls:a(2836,e.DiagnosticCategory.Error,"Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls_2836","Import assertions are not allowed on statements that transpile to commonjs 'require' calls."),Import_assertion_values_must_be_string_literal_expressions:a(2837,e.DiagnosticCategory.Error,"Import_assertion_values_must_be_string_literal_expressions_2837","Import assertion values must be string literal expressions."),All_declarations_of_0_must_have_identical_constraints:a(2838,e.DiagnosticCategory.Error,"All_declarations_of_0_must_have_identical_constraints_2838","All declarations of '{0}' must have identical constraints."),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."),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4119,e.DiagnosticCategory.Error,"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119","This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4120,e.DiagnosticCategory.Error,"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120","This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:a(4121,e.DiagnosticCategory.Error,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121","This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:a(4122,e.DiagnosticCategory.Error,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122","This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:a(4123,e.DiagnosticCategory.Error,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123","This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4124,e.DiagnosticCategory.Error,"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124","Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4125,e.DiagnosticCategory.Error,"Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_wi_4125","Resolution mode assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),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'."),Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later:a(5095,e.DiagnosticCategory.Error,"Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later_5095","Option 'preserveValueImports' can only be used when 'module' is set to 'es2015' or later."),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_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"),Errors_Files:a(6041,e.DiagnosticCategory.Message,"Errors_Files_6041","Errors Files"),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}'."),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."),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."),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}'. ========"),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."),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."),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"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:a(6258,e.DiagnosticCategory.Error,"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258","'{0}' should be set inside the 'compilerOptions' object of the config json file"),Found_1_error_in_1:a(6259,e.DiagnosticCategory.Message,"Found_1_error_in_1_6259","Found 1 error in {1}"),Found_0_errors_in_the_same_file_starting_at_Colon_1:a(6260,e.DiagnosticCategory.Message,"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260","Found {0} errors in the same file, starting at: {1}"),Found_0_errors_in_1_files:a(6261,e.DiagnosticCategory.Message,"Found_0_errors_in_1_files_6261","Found {0} errors in {1} files."),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:a(6270,e.DiagnosticCategory.Message,"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270","Directory '{0}' has no containing package.json scope. Imports will not resolve."),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6271,e.DiagnosticCategory.Message,"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271","Import specifier '{0}' does not exist in package.json scope at path '{1}'."),Invalid_import_specifier_0_has_no_possible_resolutions:a(6272,e.DiagnosticCategory.Message,"Invalid_import_specifier_0_has_no_possible_resolutions_6272","Invalid import specifier '{0}' has no possible resolutions."),package_json_scope_0_has_no_imports_defined:a(6273,e.DiagnosticCategory.Message,"package_json_scope_0_has_no_imports_defined_6273","package.json scope '{0}' has no imports defined."),package_json_scope_0_explicitly_maps_specifier_1_to_null:a(6274,e.DiagnosticCategory.Message,"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274","package.json scope '{0}' explicitly maps specifier '{1}' to null."),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:a(6275,e.DiagnosticCategory.Message,"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275","package.json scope '{0}' has invalid type for target of specifier '{1}'"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6276,e.DiagnosticCategory.Message,"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276","Export specifier '{0}' does not exist in package.json scope at path '{1}'."),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}'..."),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}'"),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."),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."),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_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_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_local_variables_aren_t_read:a(6675,e.DiagnosticCategory.Message,"Enable_error_reporting_when_local_variables_aren_t_read_6675","Enable error reporting when 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_path_to_tsbuildinfo_incremental_compilation_file:a(6707,e.DiagnosticCategory.Message,"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707","Specify the path to .tsbuildinfo incremental compilation file."),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."),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."),Default_catch_clause_variables_as_unknown_instead_of_any:a(6803,e.DiagnosticCategory.Message,"Default_catch_clause_variables_as_unknown_instead_of_any_6803","Default 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."),true_for_ES2022_and_above_including_ESNext:a(6930,e.DiagnosticCategory.Message,"true_for_ES2022_and_above_including_ESNext_6930","`true` for ES2022 and above, including ESNext."),List_of_file_name_suffixes_to_search_when_resolving_a_module:a(6931,e.DiagnosticCategory.Error,"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931","List of file name suffixes to search when resolving a module."),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."),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:a(7058,e.DiagnosticCategory.Error,"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058","If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:a(7059,e.DiagnosticCategory.Error,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059","This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:a(7060,e.DiagnosticCategory.Error,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060","This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),A_mapped_type_may_not_declare_properties_or_methods:a(7061,e.DiagnosticCategory.Error,"A_mapped_type_may_not_declare_properties_or_methods_7061","A mapped type may not declare properties or methods."),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."),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}'."),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}"),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_ES_module:a(80001,e.DiagnosticCategory.Suggestion,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001","File is a CommonJS module; it may be converted to an ES 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_1:a(90013,e.DiagnosticCategory.Message,"Import_0_from_1_90013",`Import '{0}' from "{1}"`),Change_0_to_1:a(90014,e.DiagnosticCategory.Message,"Change_0_to_1_90014","Change '{0}' to '{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'"),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}'."),Includes_imports_of_types_referenced_by_0:a(90054,e.DiagnosticCategory.Message,"Includes_imports_of_types_referenced_by_0_90054","Includes imports of types referenced by '{0}'"),Remove_type_from_import_declaration_from_0:a(90055,e.DiagnosticCategory.Message,"Remove_type_from_import_declaration_from_0_90055",`Remove 'type' from import declaration from "{0}"`),Remove_type_from_import_of_0_from_1:a(90056,e.DiagnosticCategory.Message,"Remove_type_from_import_of_0_from_1_90056",`Remove 'type' from import of '{0}' from "{1}"`),Add_import_from_0:a(90057,e.DiagnosticCategory.Message,"Add_import_from_0_90057",'Add import from "{0}"'),Update_import_from_0:a(90058,e.DiagnosticCategory.Message,"Update_import_from_0_90058",'Update import from "{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_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"),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_ES_module:a(95017,e.DiagnosticCategory.Message,"Convert_to_ES_module_95017","Convert to ES 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"),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_to_read_more_about_this_file:a(95110,e.DiagnosticCategory.Message,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig 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"),Add_undefined_to_optional_property_type:a(95169,e.DiagnosticCategory.Message,"Add_undefined_to_optional_property_type_95169","Add 'undefined' to optional property type"),Convert_named_imports_to_default_import:a(95170,e.DiagnosticCategory.Message,"Convert_named_imports_to_default_import_95170","Convert named imports to default import"),Delete_unused_param_tag_0:a(95171,e.DiagnosticCategory.Message,"Delete_unused_param_tag_0_95171","Delete unused '@param' tag '{0}'"),Delete_all_unused_param_tags:a(95172,e.DiagnosticCategory.Message,"Delete_all_unused_param_tags_95172","Delete all unused '@param' tags"),Rename_param_tag_name_0_to_1:a(95173,e.DiagnosticCategory.Message,"Rename_param_tag_name_0_to_1_95173","Rename '@param' tag name '{0}' to '{1}'"),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.")}})(ke||(ke={}));var ke;(function(e){var a;function C(ye){return ye>=79}e.tokenIsIdentifierOrKeyword=C;function w(ye){return ye===31||C(ye)}e.tokenIsIdentifierOrKeywordOrGreaterThan=w,e.textToKeywordObj=(a={abstract:126,any:130,as:127,asserts:128,assert:129,bigint:158,boolean:133,break:81,case:82,catch:83,class:84,continue:86,const:85},a.constructor=134,a.debugger=87,a.declare=135,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=156,a.function=98,a.get=136,a.if=99,a.implements=117,a.import=100,a.in=101,a.infer=137,a.instanceof=102,a.interface=118,a.intrinsic=138,a.is=139,a.keyof=140,a.let=119,a.module=141,a.namespace=142,a.never=143,a.new=103,a.null=104,a.number=147,a.object=148,a.package=120,a.private=121,a.protected=122,a.public=123,a.override=159,a.out=144,a.readonly=145,a.require=146,a.global=157,a.return=105,a.set=149,a.static=124,a.string=150,a.super=106,a.switch=107,a.symbol=151,a.this=108,a.throw=109,a.true=110,a.try=111,a.type=152,a.typeof=112,a.undefined=153,a.unique=154,a.unknown=155,a.var=113,a.void=114,a.while=115,a.with=116,a.yield=125,a.async=131,a.await=132,a.of=160,a);var B=new e.Map(e.getEntries(e.textToKeywordObj)),E=new e.Map(e.getEntries(Ke(Ke({},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}))),Q=[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],le=[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],N=[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],p=[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],m=[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],G=[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],oe=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,f=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/;function T(ye,Ae){if(ye=2?T(ye,m):Ae===1?T(ye,N):T(ye,Q)}e.isUnicodeIdentifierStart=K;function b(ye,Ae){return Ae>=2?T(ye,G):Ae===1?T(ye,p):T(ye,le)}function se(ye){var Ae=[];return ye.forEach(function(er,ir){Ae[er]=ir}),Ae}var J=se(E);function ie(ye){return J[ye]}e.tokenToString=ie;function R(ye){return E.get(ye)}e.stringToToken=R;function q(ye){for(var Ae=new Array,er=0,ir=0;er127&&y(Cr)&&(Ae.push(ir),ir=er);break}}return Ae.push(ir),Ae}e.computeLineStarts=q;function O(ye,Ae,er,ir){return ye.getPositionOfLineAndCharacter?ye.getPositionOfLineAndCharacter(Ae,er,ir):ve(ee(ye),Ae,er,ye.text,ir)}e.getPositionOfLineAndCharacter=O;function ve(ye,Ae,er,ir,Cr){(Ae<0||Ae>=ye.length)&&(Cr?Ae=Ae<0?0:Ae>=ye.length?ye.length-1:Ae:e.Debug.fail("Bad line number. Line: ".concat(Ae,", lineStarts.length: ").concat(ye.length," , line map is correct? ").concat(ir!==void 0?e.arraysEqual(ye,q(ir)):"unknown")));var Ye=ye[Ae]+er;return Cr?Ye>ye[Ae+1]?ye[Ae+1]:typeof ir=="string"&&Ye>ir.length?ir.length:Ye:(Ae=8192&&ye<=8203||ye===8239||ye===8287||ye===12288||ye===65279}e.isWhiteSpaceSingleLine=A;function y(ye){return ye===10||ye===13||ye===8232||ye===8233}e.isLineBreak=y;function V(ye){return ye>=48&&ye<=57}function L(ye){return V(ye)||ye>=65&&ye<=70||ye>=97&&ye<=102}function P(ye){return ye<=1114111}function k(ye){return ye>=48&&ye<=55}e.isOctalDigit=k;function Y(ye,Ae){var er=ye.charCodeAt(Ae);switch(er){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 Ae===0;default:return er>127}}e.couldStartTrivia=Y;function U(ye,Ae,er,ir,Cr){if(e.positionIsSynthesized(Ae))return Ae;for(var Ye=!1;;){var Br=ye.charCodeAt(Ae);switch(Br){case 13:ye.charCodeAt(Ae+1)===10&&Ae++;case 10:if(Ae++,er)return Ae;Ye=!!Cr;continue;case 9:case 11:case 12:case 32:Ae++;continue;case 47:if(ir)break;if(ye.charCodeAt(Ae+1)===47){for(Ae+=2;Ae127&&$(Br)){Ae++;continue}break}return Ae}}e.skipTrivia=U;var j=7;function H(ye,Ae){if(e.Debug.assert(Ae>=0),Ae===0||y(ye.charCodeAt(Ae-1))){var er=ye.charCodeAt(Ae);if(Ae+j=0&&er127&&$(Ir)){be&&y(Ir)&&(lr=!0),er++;continue}break e}}return be&&(ur=Cr(Er,Ne,n,lr,Ye,ur)),ur}function g(ye,Ae,er,ir){return fe(!1,ye,Ae,!1,er,ir)}e.forEachLeadingCommentRange=g;function ne(ye,Ae,er,ir){return fe(!1,ye,Ae,!0,er,ir)}e.forEachTrailingCommentRange=ne;function ue(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!1,er,ir,Cr)}e.reduceEachLeadingCommentRange=ue;function We(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!0,er,ir,Cr)}e.reduceEachTrailingCommentRange=We;function Fe(ye,Ae,er,ir,Cr,Ye){return Ye||(Ye=[]),Ye.push({kind:er,pos:ye,end:Ae,hasTrailingNewLine:ir}),Ye}function Z(ye,Ae){return ue(ye,Ae,Fe,void 0,void 0)}e.getLeadingCommentRanges=Z;function Be(ye,Ae){return We(ye,Ae,Fe,void 0,void 0)}e.getTrailingCommentRanges=Be;function ge(ye){var Ae=l.exec(ye);if(Ae)return Ae[0]}e.getShebang=ge;function Re(ye,Ae){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye===36||ye===95||ye>127&&K(ye,Ae)}e.isIdentifierStart=Re;function ze(ye,Ae,er){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye>=48&&ye<=57||ye===36||ye===95||(er===1?ye===45||ye===58:!1)||ye>127&&b(ye,Ae)}e.isIdentifierPart=ze;function Ee(ye,Ae,er){var ir=rr(ye,0);if(!Re(ir,Ae))return!1;for(var Cr=Ie(ir);Cr116},isReservedWord:function(){return Ge>=81&&Ge<=116},isUnterminated:function(){return(yr&4)!==0},getCommentDirectives:function(){return Ir},getNumericLiteralFlags:function(){return yr&1008},getTokenFlags:function(){return yr},reScanGreaterToken:Wr,reScanAsteriskEqualsToken:Je,reScanSlashToken:xe,reScanTemplateToken:Ar,reScanTemplateHeadOrNoSubstitutionTemplate:Oe,scanJsxIdentifier:De,scanJsxAttributeValue:gr,reScanJsxAttributeValue:Vr,reScanJsxToken:nr,reScanLessThanToken:Mr,reScanHashToken:Pe,reScanQuestionToken:Ue,reScanInvalidIdentifier:Sr,scanJsxToken:fr,scanJsDocToken:Tr,scan:Ze,getText:ct,clearCommentDirectives:Li,setText:nt,setScriptTarget:xt,setLanguageVariant:ut,setOnError:Mt,setTextPos:Dt,setInJSDocType:Rt,tryScan:Wi,lookAhead:Yi,scanRange:Ui};return e.Debug.isDebugging&&Object.defineProperty(Ur,"__debugShowCurrentPositionInText",{get:function(){var Ii=Ur.getText();return Ii.slice(0,Ur.getStartPos())+"\u2551"+Ii.slice(Ur.getStartPos())}}),Ur;function ii(Ii,Ki,Fi){if(Ki===void 0&&(Ki=Ne),Cr){var ui=Ne;Ne=Ki,Cr(Ii,Fi||0),Ne=ui}}function mi(){for(var Ii=Ne,Ki=!1,Fi=!1,ui="";;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Ki?(Ki=!1,Fi=!0,ui+=Er.substring(Ii,Ne)):ii(Fi?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++,Ii=Ne;continue}if(V(Bt)){Ki=!0,Fi=!1,Ne++;continue}break}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),ui+Er.substring(Ii,Ne)}function pe(){var Ii=Ne,Ki=mi(),Fi,ui;Er.charCodeAt(Ne)===46&&(Ne++,Fi=mi());var Bt=Ne;if(Er.charCodeAt(Ne)===69||Er.charCodeAt(Ne)===101){Ne++,yr|=16,(Er.charCodeAt(Ne)===43||Er.charCodeAt(Ne)===45)&&Ne++;var wt=Ne,na=mi();na?(ui=Er.substring(Bt,wt)+na,Bt=Ne):ii(e.Diagnostics.Digit_expected)}var Ai;if(yr&512?(Ai=Ki,Fi&&(Ai+="."+Fi),ui&&(Ai+=ui)):Ai=Er.substring(Ii,Bt),Fi!==void 0||yr&16)return or(Ii,Fi===void 0&&!!(yr&16)),{type:8,value:""+ +Ai};ur=Ai;var Oi=ti();return or(Ii),{type:Oi,value:ur}}function or(Ii,Ki){if(!!Re(rr(Er,Ne),ye)){var Fi=Ne,ui=ae().length;ui===1&&Er[Fi]==="n"?ii(Ki?e.Diagnostics.A_bigint_literal_cannot_use_exponential_notation:e.Diagnostics.A_bigint_literal_must_be_an_integer,Ii,Fi-Ii+1):(ii(e.Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal,Fi,ui),Ne=Fi)}}function qr(){for(var Ii=Ne;k(Er.charCodeAt(Ne));)Ne++;return+Er.substring(Ii,Ne)}function si(Ii,Ki){var Fi=wi(Ii,!1,Ki);return Fi?parseInt(Fi,16):-1}function Di(Ii,Ki){return wi(Ii,!0,Ki)}function wi(Ii,Ki,Fi){for(var ui=[],Bt=!1,wt=!1;ui.length=65&&na<=70)na+=97-65;else if(!(na>=48&&na<=57||na>=97&&na<=102))break;ui.push(na),Ne++,wt=!1}return ui.length=n){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}var Bt=Er.charCodeAt(Ne);if(Bt===Ki){Fi+=Er.substring(ui,Ne),Ne++;break}if(Bt===92&&!Ii){Fi+=Er.substring(ui,Ne),Fi+=Gi(),ui=Ne;continue}if(y(Bt)&&!Ii){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}Ne++}return Fi}function et(Ii){var Ki=Er.charCodeAt(Ne)===96;Ne++;for(var Fi=Ne,ui="",Bt;;){if(Ne>=n){ui+=Er.substring(Fi,Ne),yr|=4,ii(e.Diagnostics.Unterminated_template_literal),Bt=Ki?14:17;break}var wt=Er.charCodeAt(Ne);if(wt===96){ui+=Er.substring(Fi,Ne),Ne++,Bt=Ki?14:17;break}if(wt===36&&Ne+1=n)return ii(e.Diagnostics.Unexpected_end_of_text),"";var Fi=Er.charCodeAt(Ne);switch(Ne++,Fi){case 48:return Ii&&Ne=0?String.fromCharCode(Ki):(ii(e.Diagnostics.Hexadecimal_digit_expected),"")}function Zt(){var Ii=Di(1,!1),Ki=Ii?parseInt(Ii,16):-1,Fi=!1;return Ki<0?(ii(e.Diagnostics.Hexadecimal_digit_expected),Fi=!0):Ki>1114111&&(ii(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),Fi=!0),Ne>=n?(ii(e.Diagnostics.Unexpected_end_of_text),Fi=!0):Er.charCodeAt(Ne)===125?Ne++:(ii(e.Diagnostics.Unterminated_Unicode_escape_sequence),Fi=!0),Fi?"":de(Ki)}function _r(){if(Ne+5=2&&rr(Er,Ne+1)===117&&rr(Er,Ne+2)===123){var Ii=Ne;Ne+=3;var Ki=Di(1,!1),Fi=Ki?parseInt(Ki,16):-1;return Ne=Ii,Fi}return-1}function ae(){for(var Ii="",Ki=Ne;Ne=0&&ze(Fi,ye)){Ne+=3,yr|=8,Ii+=Zt(),Ki=Ne;continue}if(Fi=_r(),!(Fi>=0&&ze(Fi,ye)))break;yr|=1024,Ii+=Er.substring(Ki,Ne),Ii+=de(Fi),Ne+=6,Ki=Ne}else break}return Ii+=Er.substring(Ki,Ne),Ii}function Xe(){var Ii=ur.length;if(Ii>=2&&Ii<=12){var Ki=ur.charCodeAt(0);if(Ki>=97&&Ki<=122){var Fi=B.get(ur);if(Fi!==void 0)return Ge=Fi}}return Ge=79}function Jr(Ii){for(var Ki="",Fi=!1,ui=!1;;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Fi?(Fi=!1,ui=!0):ii(ui?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++;continue}if(Fi=!0,!V(Bt)||Bt-48>=Ii)break;Ki+=Er[Ne],Ne++,ui=!1}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),Ki}function ti(){if(Er.charCodeAt(Ne)===110)return ur+="n",yr&384&&(ur=e.parsePseudoBigInt(ur)+"n"),Ne++,9;var Ii=yr&128?parseInt(ur.slice(2),2):yr&256?parseInt(ur.slice(2),8):+ur;return ur=""+Ii,8}function Ze(){var Ii;lr=Ne,yr=0;for(var Ki=!1;;){if(be=Ne,Ne>=n)return Ge=1;var Fi=rr(Er,Ne);if(Fi===35&&Ne===0&&d(Er,Ne)){if(Ne=D(Er,Ne),Ae)continue;return Ge=6}switch(Fi){case 10:case 13:if(yr|=1,Ae){Ne++;continue}else return Fi===13&&Ne+1=0&&Re(na,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Ai=_r();return Ai>=0&&Re(Ai,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Ai)+ae(),Ge=Xe()):(ii(e.Diagnostics.Invalid_character),Ne++,Ge=0);case 35:return Ne!==0&&Er[Ne+1]==="!"?(ii(e.Diagnostics.can_only_be_used_at_the_start_of_a_file),Ne++,Ge=0):(Re(rr(Er,Ne+1),ye)?(Ne++,zr(rr(Er,Ne),ye)):(ur=String.fromCharCode(rr(Er,Ne)),ii(e.Diagnostics.Invalid_character,Ne++,Ie(Fi))),Ge=80);default:var Oi=zr(Fi,ye);if(Oi)return Ge=Oi;if(A(Fi)){Ne+=Ie(Fi);continue}else if(y(Fi)){yr|=1,Ne+=Ie(Fi);continue}var ji=Ie(Fi);return ii(e.Diagnostics.Invalid_character,Ne,ji),Ne+=ji,Ge=0}}}function Sr(){e.Debug.assert(Ge===0,"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."),Ne=be=lr,yr=0;var Ii=rr(Er,Ne),Ki=zr(Ii,99);return Ki?Ge=Ki:(Ne+=Ie(Ii),Ge)}function zr(Ii,Ki){var Fi=Ii;if(Re(Fi,Ki)){for(Ne+=Ie(Fi);Ne=n)return Ge=1;var Ki=Er.charCodeAt(Ne);if(Ki===60)return Er.charCodeAt(Ne+1)===47?(Ne+=2,Ge=30):(Ne++,Ge=29);if(Ki===123)return Ne++,Ge=18;for(var Fi=0;Ne0)break;$(Ki)||(Fi=Ne)}Ne++}return ur=Er.substring(lr,Ne),Fi===-1?12:11}function De(){if(C(Ge)){for(var Ii=!1;Ne=n)return Ge=1;var Ii=rr(Er,Ne);switch(Ne+=Ie(Ii),Ii){case 9:case 11:case 12:case 32:for(;Ne=0&&Re(Ki,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Fi=_r();return Fi>=0&&Re(Fi,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Fi)+ae(),Ge=Xe()):(Ne++,Ge=0)}if(Re(Ii,ye)){for(var ui=Ii;Ne=0),Ne=Ii,lr=Ii,be=Ii,Ge=0,ur=void 0,yr=0}function Rt(Ii){wr+=Ii?1:-1}}e.createScanner=He;var rr=String.prototype.codePointAt?function(ye,Ae){return ye.codePointAt(Ae)}:function(Ae,er){var ir=Ae.length;if(!(er<0||er>=ir)){var Cr=Ae.charCodeAt(er);if(Cr>=55296&&Cr<=56319&&ir>er+1){var Ye=Ae.charCodeAt(er+1);if(Ye>=56320&&Ye<=57343)return(Cr-55296)*1024+Ye-56320+65536}return Cr}};function Ie(ye){return ye>=65536?2:1}function _e(ye){if(e.Debug.assert(0<=ye&&ye<=1114111),ye<=65535)return String.fromCharCode(ye);var Ae=Math.floor((ye-65536)/1024)+55296,er=(ye-65536)%1024+56320;return String.fromCharCode(Ae,er)}var we=String.fromCodePoint?function(ye){return String.fromCodePoint(ye)}:_e;function de(ye){return we(ye)}e.utf16EncodeAsString=de})(ke||(ke={}));var ke;(function(e){function a(je){return e.pathIsRelative(je)||e.isRootedDiskPath(je)}e.isExternalModuleNameRelative=a;function C(je){return e.sortAndDeduplicate(je,e.compareDiagnostics)}e.sortAndDeduplicateDiagnostics=C;function w(je){switch(e.getEmitScriptTarget(je)){case 99:return"lib.esnext.full.d.ts";case 9:return"lib.es2022.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=w;function B(je){return je.start+je.length}e.textSpanEnd=B;function E(je){return je.length===0}e.textSpanIsEmpty=E;function Q(je,Hr){return Hr>=je.start&&Hr=je.pos&&Hr<=je.end}e.textRangeContainsPositionInclusive=le;function N(je,Hr){return Hr.start>=je.start&&B(Hr)<=B(je)}e.textSpanContainsTextSpan=N;function p(je,Hr){return m(je,Hr)!==void 0}e.textSpanOverlapsWith=p;function m(je,Hr){var pt=K(je,Hr);return pt&&pt.length===0?void 0:pt}e.textSpanOverlap=m;function G(je,Hr){return f(je.start,je.length,Hr.start,Hr.length)}e.textSpanIntersectsWithTextSpan=G;function oe(je,Hr,pt){return f(je.start,je.length,Hr,pt)}e.textSpanIntersectsWith=oe;function f(je,Hr,pt,Pt){var ga=je+Hr,ua=pt+Pt;return pt<=ga&&ua>=je}e.decodedTextSpanIntersectsWith=f;function T(je,Hr){return Hr<=B(je)&&Hr>=je.start}e.textSpanIntersectsWithPosition=T;function K(je,Hr){var pt=Math.max(je.start,Hr.start),Pt=Math.min(B(je),B(Hr));return pt<=Pt?se(pt,Pt):void 0}e.textSpanIntersection=K;function b(je,Hr){if(je<0)throw new Error("start < 0");if(Hr<0)throw new Error("length < 0");return{start:je,length:Hr}}e.createTextSpan=b;function se(je,Hr){return b(je,Hr-je)}e.createTextSpanFromBounds=se;function J(je){return b(je.span.start,je.newLength)}e.textChangeRangeNewSpan=J;function ie(je){return E(je.span)&&je.newLength===0}e.textChangeRangeIsUnchanged=ie;function R(je,Hr){if(Hr<0)throw new Error("newLength < 0");return{span:je,newLength:Hr}}e.createTextChangeRange=R,e.unchangedTextChangeRange=R(b(0,0),0);function q(je){if(je.length===0)return e.unchangedTextChangeRange;if(je.length===1)return je[0];for(var Hr=je[0],pt=Hr.span.start,Pt=B(Hr.span),ga=pt+Hr.newLength,ua=1;ua=2&&je.charCodeAt(0)===95&&je.charCodeAt(1)===95?"_"+je:je}e.escapeLeadingUnderscores=Y;function U(je){var Hr=je;return Hr.length>=3&&Hr.charCodeAt(0)===95&&Hr.charCodeAt(1)===95&&Hr.charCodeAt(2)===95?Hr.substr(1):Hr}e.unescapeLeadingUnderscores=U;function j(je){return U(je.escapedText)}e.idText=j;function H(je){return je.valueDeclaration&&Ui(je.valueDeclaration)?j(je.valueDeclaration.name):U(je.escapedName)}e.symbolName=H;function I(je){var Hr=je.parent.parent;if(!!Hr){if(Si(Hr))return l(Hr);switch(Hr.kind){case 237:if(Hr.declarationList&&Hr.declarationList.declarations[0])return l(Hr.declarationList.declarations[0]);break;case 238:var pt=Hr.expression;switch(pt.kind===221&&pt.operatorToken.kind===63&&(pt=pt.left),pt.kind){case 206:return pt.name;case 207:var Pt=pt.argumentExpression;if(e.isIdentifier(Pt))return Pt}break;case 212:return l(Hr.expression);case 250:{if(Si(Hr.statement)||En(Hr.statement))return l(Hr.statement);break}}}}function l(je){var Hr=ne(je);return Hr&&e.isIdentifier(Hr)?Hr:void 0}function d(je,Hr){return!!(fe(je)&&e.isIdentifier(je.name)&&j(je.name)===j(Hr)||e.isVariableStatement(je)&&e.some(je.declarationList.declarations,function(pt){return d(pt,Hr)}))}e.nodeHasName=d;function D(je){return je.name||I(je)}e.getNameOfJSDocTypedef=D;function fe(je){return!!je.name}e.isNamedDeclaration=fe;function g(je){switch(je.kind){case 79:return je;case 347:case 340:{var Hr=je.name;if(Hr.kind===161)return Hr.right;break}case 208:case 221:{var pt=je;switch(e.getAssignmentDeclarationKind(pt)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(pt.left);case 7:case 8:case 9:return pt.arguments[1];default:return}}case 345:return D(je);case 339:return I(je);case 271:{var Pt=je.expression;return e.isIdentifier(Pt)?Pt:void 0}case 207:var ga=je;if(e.isBindableStaticElementAccessExpression(ga))return ga.argumentExpression}return je.name}e.getNonAssignedNameOfDeclaration=g;function ne(je){if(je!==void 0)return g(je)||(e.isFunctionExpression(je)||e.isArrowFunction(je)||e.isClassExpression(je)?ue(je):void 0)}e.getNameOfDeclaration=ne;function ue(je){if(je.parent){if(e.isPropertyAssignment(je.parent)||e.isBindingElement(je.parent))return je.parent.name;if(e.isBinaryExpression(je.parent)&&je===je.parent.right){if(e.isIdentifier(je.parent.left))return je.parent.left;if(e.isAccessExpression(je.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(je.parent.left)}else if(e.isVariableDeclaration(je.parent)&&e.isIdentifier(je.parent.name))return je.parent.name}else return}e.getAssignedName=ue;function We(je,Hr){if(je.name)if(e.isIdentifier(je.name)){var pt=je.name.escapedText;return yr(je.parent,Hr).filter(function(ua){return e.isJSDocParameterTag(ua)&&e.isIdentifier(ua.name)&&ua.name.escapedText===pt})}else{var Pt=je.parent.parameters.indexOf(je);e.Debug.assert(Pt>-1,"Parameters should always be in their parents' parameter list");var ga=yr(je.parent,Hr).filter(e.isJSDocParameterTag);if(Pt=161}e.isNodeKind=vr;function mr(je){return je>=0&&je<=160}e.isTokenKind=mr;function Ar(je){return mr(je.kind)}e.isToken=Ar;function Oe(je){return je.hasOwnProperty("pos")&&je.hasOwnProperty("end")}e.isNodeArray=Oe;function nr(je){return 8<=je&&je<=14}e.isLiteralKind=nr;function Mr(je){return nr(je.kind)}e.isLiteralExpression=Mr;function Pe(je){return 14<=je&&je<=17}e.isTemplateLiteralKind=Pe;function Ue(je){return Pe(je.kind)}e.isTemplateLiteralToken=Ue;function fr(je){var Hr=je.kind;return Hr===16||Hr===17}e.isTemplateMiddleOrTemplateTail=fr;function De(je){return e.isImportSpecifier(je)||e.isExportSpecifier(je)}e.isImportOrExportSpecifier=De;function gr(je){switch(je.kind){case 270:case 275:return je.isTypeOnly||je.parent.parent.isTypeOnly;case 268:return je.parent.isTypeOnly;case 267:case 265:return je.isTypeOnly;default:return!1}}e.isTypeOnlyImportOrExportDeclaration=gr;function Vr(je){return e.isStringLiteral(je)||e.isIdentifier(je)}e.isAssertionKey=Vr;function Tr(je){return je.kind===10||Pe(je.kind)}e.isStringTextContainingNode=Tr;function vi(je){return e.isIdentifier(je)&&(je.autoGenerateFlags&7)>0}e.isGeneratedIdentifier=vi;function Ui(je){return(e.isPropertyDeclaration(je)||Oi(je))&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierClassElementDeclaration=Ui;function Yi(je){return e.isPropertyAccessExpression(je)&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierPropertyAccessExpression=Yi;function Wi(je){switch(je){case 126:case 131:case 85:case 135:case 88:case 93:case 101:case 123:case 121:case 122:case 145:case 124:case 144:case 159:return!0}return!1}e.isModifierKind=Wi;function ct(je){return!!(e.modifierToFlag(je)&16476)}e.isParameterPropertyModifier=ct;function Li(je){return ct(je)||je===124||je===159}e.isClassMemberModifier=Li;function nt(je){return Wi(je.kind)}e.isModifier=nt;function Mt(je){var Hr=je.kind;return Hr===161||Hr===79}e.isEntityName=Mt;function xt(je){var Hr=je.kind;return Hr===79||Hr===80||Hr===10||Hr===8||Hr===162}e.isPropertyName=xt;function ut(je){var Hr=je.kind;return Hr===79||Hr===201||Hr===202}e.isBindingName=ut;function Dt(je){return!!je&&ui(je.kind)}e.isFunctionLike=Dt;function Rt(je){return!!je&&(ui(je.kind)||e.isClassStaticBlockDeclaration(je))}e.isFunctionLikeOrClassStaticBlockDeclaration=Rt;function Ii(je){return je&&Fi(je.kind)}e.isFunctionLikeDeclaration=Ii;function Ki(je){return je.kind===110||je.kind===95}e.isBooleanLiteral=Ki;function Fi(je){switch(je){case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return!1}}function ui(je){switch(je){case 168:case 174:case 323:case 175:case 176:case 179:case 317:case 180:return!0;default:return Fi(je)}}e.isFunctionLikeKind=ui;function Bt(je){return e.isSourceFile(je)||e.isModuleBlock(je)||e.isBlock(je)&&Dt(je.parent)}e.isFunctionOrModuleBlock=Bt;function wt(je){var Hr=je.kind;return Hr===171||Hr===167||Hr===169||Hr===172||Hr===173||Hr===176||Hr===170||Hr===234}e.isClassElement=wt;function na(je){return je&&(je.kind===257||je.kind===226)}e.isClassLike=na;function Ai(je){return je&&(je.kind===172||je.kind===173)}e.isAccessor=Ai;function Oi(je){switch(je.kind){case 169:case 172:case 173:return!0;default:return!1}}e.isMethodOrAccessor=Oi;function ji(je){var Hr=je.kind;return Hr===175||Hr===174||Hr===166||Hr===168||Hr===176||Hr===172||Hr===173}e.isTypeElement=ji;function Vi(je){return ji(je)||wt(je)}e.isClassOrTypeElement=Vi;function at(je){var Hr=je.kind;return Hr===296||Hr===297||Hr===298||Hr===169||Hr===172||Hr===173}e.isObjectLiteralElementLike=at;function At(je){return e.isTypeNodeKind(je.kind)}e.isTypeNode=At;function ba(je){switch(je.kind){case 179:case 180:return!0}return!1}e.isFunctionOrConstructorTypeNode=ba;function $a(je){if(je){var Hr=je.kind;return Hr===202||Hr===201}return!1}e.isBindingPattern=$a;function Qa(je){var Hr=je.kind;return Hr===204||Hr===205}e.isAssignmentPattern=Qa;function ai(je){var Hr=je.kind;return Hr===203||Hr===227}e.isArrayBindingElement=ai;function Dn(je){switch(je.kind){case 254:case 164:case 203:return!0}return!1}e.isDeclarationBindingElement=Dn;function ka(je){return Ba(je)||Cn(je)}e.isBindingOrAssignmentPattern=ka;function Ba(je){switch(je.kind){case 201:case 205:return!0}return!1}e.isObjectBindingOrAssignmentPattern=Ba;function pn(je){switch(je.kind){case 203:case 296:case 297:case 298:return!0}return!1}e.isObjectBindingOrAssignmentElement=pn;function Cn(je){switch(je.kind){case 202:case 204:return!0}return!1}e.isArrayBindingOrAssignmentPattern=Cn;function Bi(je){var Hr=je.kind;return Hr===206||Hr===161||Hr===200}e.isPropertyAccessOrQualifiedNameOrImportTypeNode=Bi;function kn(je){var Hr=je.kind;return Hr===206||Hr===161}e.isPropertyAccessOrQualifiedName=kn;function xn(je){switch(je.kind){case 280:case 279:case 208:case 209:case 210:case 165:return!0;default:return!1}}e.isCallLikeExpression=xn;function Kn(je){return je.kind===208||je.kind===209}e.isCallOrNewExpression=Kn;function Pn(je){var Hr=je.kind;return Hr===223||Hr===14}e.isTemplateLiteral=Pn;function eo(je){return Rn(Jr(je).kind)}e.isLeftHandSideExpression=eo;function Rn(je){switch(je){case 206:case 207:case 209:case 208:case 278:case 279:case 282:case 210:case 204:case 212:case 205:case 226:case 213:case 79:case 80:case 13:case 8:case 9:case 10:case 14:case 223:case 95:case 104:case 108:case 110:case 106:case 230:case 228:case 231:case 100:return!0;default:return!1}}function Da(je){return bo(Jr(je).kind)}e.isUnaryExpression=Da;function bo(je){switch(je){case 219:case 220:case 215:case 216:case 217:case 218:case 211:return!0;default:return Rn(je)}}function Ro(je){switch(je.kind){case 220:return!0;case 219:return je.operator===45||je.operator===46;default:return!1}}e.isUnaryExpressionWithWrite=Ro;function En(je){return Wn(Jr(je).kind)}e.isExpression=En;function Wn(je){switch(je){case 222:case 224:case 214:case 221:case 225:case 229:case 227:case 351:case 350:return!0;default:return bo(je)}}function to(je){var Hr=je.kind;return Hr===211||Hr===229}e.isAssertionExpression=to;function Co(je){return e.isNotEmittedStatement(je)||e.isPartiallyEmittedExpression(je)}e.isNotEmittedOrPartiallyEmittedNode=Co;function Ko(je,Hr){switch(je.kind){case 242:case 243:case 244:case 240:case 241:return!0;case 250:return Hr&&Ko(je.statement,Hr)}return!1}e.isIterationStatement=Ko;function Oo(je){return e.isExportAssignment(je)||e.isExportDeclaration(je)}e.isScopeMarker=Oo;function no(je){return e.some(je,Oo)}e.hasScopeMarker=no;function $o(je){return!e.isAnyImportOrReExport(je)&&!e.isExportAssignment(je)&&!e.hasSyntacticModifier(je,1)&&!e.isAmbientModule(je)}e.needsScopeMarker=$o;function Pr(je){return e.isAnyImportOrReExport(je)||e.isExportAssignment(je)||e.hasSyntacticModifier(je,1)}e.isExternalModuleIndicator=Pr;function xi(je){return je.kind===243||je.kind===244}e.isForInOrOfStatement=xi;function St(je){return e.isBlock(je)||En(je)}e.isConciseBody=St;function pa(je){return e.isBlock(je)}e.isFunctionBody=pa;function dn(je){return e.isVariableDeclarationList(je)||En(je)}e.isForInitializer=dn;function Jn(je){var Hr=je.kind;return Hr===262||Hr===261||Hr===79}e.isModuleBody=Jn;function Qe(je){var Hr=je.kind;return Hr===262||Hr===261}e.isNamespaceBody=Qe;function Gr(je){var Hr=je.kind;return Hr===79||Hr===261}e.isJSDocNamespaceBody=Gr;function S(je){var Hr=je.kind;return Hr===269||Hr===268}e.isNamedImportBindings=S;function Ce(je){return je.kind===261||je.kind===260}e.isModuleOrEnumDeclaration=Ce;function qe(je){return je===214||je===203||je===257||je===226||je===170||je===171||je===260||je===299||je===275||je===256||je===213||je===172||je===267||je===265||je===270||je===258||je===285||je===169||je===168||je===261||je===264||je===268||je===274||je===164||je===296||je===167||je===166||je===173||je===297||je===259||je===163||je===254||je===345||je===338||je===347}function br(je){return je===256||je===276||je===257||je===258||je===259||je===260||je===261||je===266||je===265||je===272||je===271||je===264}function Zr(je){return je===246||je===245||je===253||je===240||je===238||je===236||je===243||je===244||je===242||je===239||je===250||je===247||je===249||je===251||je===252||je===237||je===241||je===248||je===349||je===353||je===352}function Si(je){return je.kind===163?je.parent&&je.parent.kind!==344||e.isInJSFile(je):qe(je.kind)}e.isDeclaration=Si;function Pi(je){return br(je.kind)}e.isDeclarationStatement=Pi;function Qi(je){return Zr(je.kind)}e.isStatementButNotDeclaration=Qi;function Ct(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||sa(je)}e.isStatement=Ct;function sa(je){return je.kind!==235||je.parent!==void 0&&(je.parent.kind===252||je.parent.kind===292)?!1:!e.isFunctionBlock(je)}function en(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||Hr===235}e.isStatementOrBlock=en;function Wa(je){var Hr=je.kind;return Hr===277||Hr===161||Hr===79}e.isModuleReference=Wa;function qn(je){var Hr=je.kind;return Hr===108||Hr===79||Hr===206}e.isJsxTagNameExpression=qn;function mo(je){var Hr=je.kind;return Hr===278||Hr===288||Hr===279||Hr===11||Hr===282}e.isJsxChild=mo;function So(je){var Hr=je.kind;return Hr===285||Hr===287}e.isJsxAttributeLike=So;function Go(je){var Hr=je.kind;return Hr===10||Hr===288}e.isStringLiteralOrJsxExpression=Go;function ys(je){var Hr=je.kind;return Hr===280||Hr===279}e.isJsxOpeningLikeElement=ys;function Pc(je){var Hr=je.kind;return Hr===289||Hr===290}e.isCaseOrDefaultClause=Pc;function Vc(je){return je.kind>=309&&je.kind<=347}e.isJSDocNode=Vc;function Kc(je){return je.kind===320||je.kind===319||je.kind===321||qi(je)||Xs(je)||e.isJSDocTypeLiteral(je)||e.isJSDocSignature(je)}e.isJSDocCommentContainingNode=Kc;function Xs(je){return je.kind>=327&&je.kind<=347}e.isJSDocTag=Xs;function pc(je){return je.kind===173}e.isSetAccessor=pc;function hs(je){return je.kind===172}e.isGetAccessor=hs;function tc(je){var Hr=je.jsDoc;return!!Hr&&Hr.length>0}e.hasJSDocNodes=tc;function ps(je){return!!je.type}e.hasType=ps;function Qs(je){return!!je.initializer}e.hasInitializer=Qs;function js(je){switch(je.kind){case 254:case 164:case 203:case 166:case 167:case 296:case 299:return!0;default:return!1}}e.hasOnlyExpressionInitializer=js;function ds(je){return je.kind===285||je.kind===287||at(je)}e.isObjectLiteralElement=ds;function Ji(je){return je.kind===178||je.kind===228}e.isTypeReferenceType=Ji;var ce=1073741823;function Rr(je){for(var Hr=ce,pt=0,Pt=je;pt=0),e.getLineStarts(te)[c]}e.getStartPositionOfLine=L;function P(c){var te=$(c),xr=e.getLineAndCharacterOfPosition(te,c.pos);return"".concat(te.fileName,"(").concat(xr.line+1,",").concat(xr.character+1,")")}e.nodePosToString=P;function k(c,te){e.Debug.assert(c>=0);var xr=e.getLineStarts(te),ei=c,bi=te.text;if(ei+1===xr.length)return bi.length-1;var Ft=xr[ei],ot=xr[ei+1]-1;for(e.Debug.assert(e.isLineBreak(bi.charCodeAt(ot)));Ft<=ot&&e.isLineBreak(bi.charCodeAt(ot));)ot--;return ot}e.getEndLinePosition=k;function Y(c,te,xr){return!(xr&&xr(te))&&!c.identifiers.has(te)}e.isFileLevelUniqueName=Y;function U(c){return c===void 0?!0:c.pos===c.end&&c.pos>=0&&c.kind!==1}e.nodeIsMissing=U;function j(c){return!U(c)}e.nodeIsPresent=j;function H(c,te,xr){if(te===void 0||te.length===0)return c;for(var ei=0;ei0?Fe(c._children[0],te,xr):e.skipTrivia((te||$(c)).text,c.pos,!1,!1,Wa(c))}e.getTokenPosOfNode=Fe;function Z(c,te){return U(c)||!c.decorators?Fe(c,te):e.skipTrivia((te||$(c)).text,c.decorators.end)}e.getNonDecoratorTokenPosOfNode=Z;function Be(c,te,xr){return xr===void 0&&(xr=!1),ze(c.text,te,xr)}e.getSourceTextOfNodeFromSourceFile=Be;function ge(c){return!!e.findAncestor(c,e.isJSDocTypeExpression)}function Re(c){return!!(e.isExportDeclaration(c)&&c.exportClause&&e.isNamespaceExport(c.exportClause)&&c.exportClause.name.escapedText==="default")}e.isExportNamespaceAsDefaultDeclaration=Re;function ze(c,te,xr){if(xr===void 0&&(xr=!1),U(te))return"";var ei=c.substring(xr?te.pos:e.skipTrivia(c,te.pos),te.end);return ge(te)&&(ei=ei.split(/\r\n|\n|\r/).map(function(bi){return e.trimStringStart(bi.replace(/^\s*\*/,""))}).join(` +`)),ei}e.getTextOfNodeFromSourceText=ze;function Ee(c,te){return te===void 0&&(te=!1),Be($(c),c,te)}e.getTextOfNode=Ee;function He(c){return c.pos}function rr(c,te){return e.binarySearch(c,te,He,e.compareValues)}e.indexOfNode=rr;function Ie(c){var te=c.emitNode;return te&&te.flags||0}e.getEmitFlags=Ie;function _e(){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,NumberFormat:["formatToParts"]},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"]},es2022:{Array:["at"],String:["at"],Int8Array:["at"],Uint8Array:["at"],Uint8ClampedArray:["at"],Int16Array:["at"],Uint16Array:["at"],Int32Array:["at"],Uint32Array:["at"],Float32Array:["at"],Float64Array:["at"],BigInt64Array:["at"],BigUint64Array:["at"],ObjectConstructor:["hasOwn"],Error:["cause"]}}}e.getScriptTargetFeatures=_e;var we;(function(c){c[c.None=0]="None",c[c.NeverAsciiEscape=1]="NeverAsciiEscape",c[c.JsxAttributeEscape=2]="JsxAttributeEscape",c[c.TerminateUnterminatedLiterals=4]="TerminateUnterminatedLiterals",c[c.AllowNumericSeparator=8]="AllowNumericSeparator"})(we=e.GetLiteralTextFlags||(e.GetLiteralTextFlags={}));function de(c,te,xr){var ei;if(te&&ye(c,xr))return Be(te,c);switch(c.kind){case 10:{var bi=xr&2?wc:xr&1||Ie(c)&16777216?ks:Zl;return c.singleQuote?"'"+bi(c.text,39)+"'":'"'+bi(c.text,34)+'"'}case 14:case 15:case 16:case 17:{var bi=xr&1||Ie(c)&16777216?ks:Zl,Ft=(ei=c.rawText)!==null&&ei!==void 0?ei:gd(bi(c.text,96));switch(c.kind){case 14:return"`"+Ft+"`";case 15:return"`"+Ft+"${";case 16:return"}"+Ft+"${";case 17:return"}"+Ft+"`"}break}case 8:case 9:return c.text;case 13:return xr&4&&c.isUnterminated?c.text+(c.text.charCodeAt(c.text.length-1)===92?" /":"/"):c.text}return e.Debug.fail("Literal kind '".concat(c.kind,"' not accounted for."))}e.getLiteralText=de;function ye(c,te){return F_(c)||!c.parent||te&4&&c.isUnterminated?!1:e.isNumericLiteral(c)&&c.numericLiteralFlags&512?!!(te&8):!e.isBigIntLiteral(c)}function Ae(c){return e.isString(c)?'"'+Zl(c)+'"':""+c}e.getTextOfConstantValue=Ae;function er(c){return e.getBaseFileName(c).replace(/^(\d)/,"_$1").replace(/\W/g,"_")}e.makeIdentifierFromModuleName=er;function ir(c){return(e.getCombinedNodeFlags(c)&3)!==0||Cr(c)}e.isBlockOrCatchScoped=ir;function Cr(c){var te=jf(c);return te.kind===254&&te.parent.kind===292}e.isCatchClauseVariableDeclarationOrBindingElement=Cr;function Ye(c){return e.isModuleDeclaration(c)&&(c.name.kind===10||Ge(c))}e.isAmbientModule=Ye;function Br(c){return e.isModuleDeclaration(c)&&c.name.kind===10}e.isModuleWithStringLiteralName=Br;function Er(c){return e.isModuleDeclaration(c)&&e.isStringLiteral(c.name)}e.isNonGlobalAmbientModule=Er;function Ne(c){return e.isModuleDeclaration(c)||e.isIdentifier(c)}e.isEffectiveModuleDeclaration=Ne;function n(c){return lr(c.valueDeclaration)}e.isShorthandAmbientModuleSymbol=n;function lr(c){return!!c&&c.kind===261&&!c.body}function be(c){return c.kind===305||c.kind===261||e.isFunctionLikeOrClassStaticBlockDeclaration(c)}e.isBlockScopedContainerTopLevel=be;function Ge(c){return!!(c.flags&1024)}e.isGlobalScopeAugmentation=Ge;function ur(c){return Ye(c)&&yr(c)}e.isExternalModuleAugmentation=ur;function yr(c){switch(c.parent.kind){case 305:return e.isExternalModule(c.parent);case 262:return Ye(c.parent.parent)&&e.isSourceFile(c.parent.parent.parent)&&!e.isExternalModule(c.parent.parent.parent)}return!1}e.isModuleAugmentationExternal=yr;function Ir(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(function(xr){return!ur(xr)&&!(e.isModuleDeclaration(xr)&&Ge(xr))})}e.getNonAugmentationDeclaration=Ir;function wr(c){return c===e.ModuleKind.CommonJS||c===e.ModuleKind.Node16||c===e.ModuleKind.NodeNext}function Ur(c,te){return e.isExternalModule(c)||te.isolatedModules||wr(Ja(te))&&!!c.commonJsModuleIndicator}e.isEffectiveExternalModule=Ur;function ii(c,te){switch(c.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return c.isDeclarationFile?!1:Sd(te,"alwaysStrict")||e.startsWithUseStrict(c.statements)?!0:e.isExternalModule(c)||te.isolatedModules?Ja(te)>=e.ModuleKind.ES2015?!0:!te.noImplicitUseStrict:!1}e.isEffectiveStrictModeSourceFile=ii;function mi(c,te){switch(c.kind){case 305:case 263:case 292:case 261:case 242:case 243:case 244:case 171:case 169:case 172:case 173:case 256:case 213:case 214:case 167:case 170:return!0;case 235:return!e.isFunctionLikeOrClassStaticBlockDeclaration(te)}return!1}e.isBlockScope=mi;function pe(c){switch(c.kind){case 338:case 345:case 323:return!0;default:return e.assertType(c),or(c)}}e.isDeclarationWithTypeParameters=pe;function or(c){switch(c.kind){case 174:case 175:case 168:case 176:case 179:case 180:case 317:case 257:case 226:case 258:case 259:case 344:case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return e.assertType(c),!1}}e.isDeclarationWithTypeParameterChildren=or;function qr(c){switch(c.kind){case 266:case 265:return!0;default:return!1}}e.isAnyImportSyntax=qr;function si(c){return qr(c)||Go(c)}e.isAnyImportOrBareOrAccessedRequire=si;function Di(c){switch(c.kind){case 266:case 265:case 237:case 257:case 256:case 261:case 259:case 258:case 260:return!0;default:return!1}}e.isLateVisibilityPaintedStatement=Di;function wi(c){return Xi(c)||e.isModuleDeclaration(c)||e.isImportTypeNode(c)||Vr(c)}e.hasPossibleExternalModuleReference=wi;function Xi(c){return qr(c)||e.isExportDeclaration(c)}e.isAnyImportOrReExport=Xi;function et(c){return e.findAncestor(c.parent,function(te){return mi(te,te.parent)})}e.getEnclosingBlockScopeContainer=et;function Gi(c,te){for(var xr=et(c);xr;)te(xr),xr=et(xr)}e.forEachEnclosingBlockScopeContainer=Gi;function Wt(c){return!c||b(c)===0?"(Missing)":Ee(c)}e.declarationNameToString=Wt;function Zt(c){return c.declaration?Wt(c.declaration.parameters[0].name):void 0}e.getNameFromIndexInfo=Zt;function _r(c){return c.kind===162&&!ns(c.expression)}e.isComputedNonLiteralName=_r;function pi(c){switch(c.kind){case 79:case 80:return c.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(c.text);case 162:return ns(c.expression)?e.escapeLeadingUnderscores(c.expression.text):void 0;default:return e.Debug.assertNever(c)}}e.tryGetTextOfPropertyName=pi;function ae(c){return e.Debug.checkDefined(pi(c))}e.getTextOfPropertyName=ae;function Xe(c){switch(c.kind){case 108:return"this";case 80:case 79:return b(c)===0?e.idText(c):Ee(c);case 161:return Xe(c.left)+"."+Xe(c.right);case 206:return e.isIdentifier(c.name)||e.isPrivateIdentifier(c.name)?Xe(c.expression)+"."+Xe(c.name):e.Debug.assertNever(c.name);case 311:return Xe(c.left)+Xe(c.right);default:return e.Debug.assertNever(c)}}e.entityNameToString=Xe;function Jr(c,te,xr,ei,bi,Ft){var ot=$(c);return Ze(ot,c,te,xr,ei,bi,Ft)}e.createDiagnosticForNode=Jr;function ti(c,te,xr,ei,bi,Ft,ot){var xa=e.skipTrivia(c.text,te.pos);return Hg(c,xa,te.end-xa,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeArray=ti;function Ze(c,te,xr,ei,bi,Ft,ot){var xa=Oe(c,te);return Hg(c,xa.start,xa.length,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeInSourceFile=Ze;function Sr(c,te,xr){var ei=$(c),bi=Oe(ei,c);return Wr(ei,bi.start,bi.length,te,xr)}e.createDiagnosticForNodeFromMessageChain=Sr;function zr(c,te,xr){e.Debug.assertGreaterThanOrEqual(te,0),e.Debug.assertGreaterThanOrEqual(xr,0),c&&(e.Debug.assertLessThanOrEqual(te,c.text.length),e.Debug.assertLessThanOrEqual(te+xr,c.text.length))}function Wr(c,te,xr,ei,bi){return zr(c,te,xr),{file:c,start:te,length:xr,code:ei.code,category:ei.category,messageText:ei.next?ei:ei.messageText,relatedInformation:bi}}e.createFileDiagnosticFromMessageChain=Wr;function Je(c,te,xr){return{file:c,start:0,length:0,code:te.code,category:te.category,messageText:te.next?te:te.messageText,relatedInformation:xr}}e.createDiagnosticForFileFromMessageChain=Je;function xe(c){return typeof c.messageText=="string"?{code:c.code,category:c.category,messageText:c.messageText,next:c.next}:c.messageText}e.createDiagnosticMessageChainFromDiagnostic=xe;function vr(c,te,xr){return{file:c,start:te.pos,length:te.end-te.pos,code:xr.code,category:xr.category,messageText:xr.message}}e.createDiagnosticForRange=vr;function mr(c,te){var xr=e.createScanner(c.languageVersion,!0,c.languageVariant,c.text,void 0,te);xr.scan();var ei=xr.getTokenPos();return e.createTextSpanFromBounds(ei,xr.getTextPos())}e.getSpanOfTokenAtPosition=mr;function Ar(c,te){var xr=e.skipTrivia(c.text,te.pos);if(te.body&&te.body.kind===235){var ei=e.getLineAndCharacterOfPosition(c,te.body.pos).line,bi=e.getLineAndCharacterOfPosition(c,te.body.end).line;if(ei0?te.statements[0].pos:te.end;return e.createTextSpanFromBounds(bi,Ft)}if(xr===void 0)return mr(c,te.pos);e.Debug.assert(!e.isJSDoc(xr));var ot=U(xr),xa=ot||e.isJsxText(te)?xr.pos:e.skipTrivia(c.text,xr.pos);return ot?(e.Debug.assert(xa===xr.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(xa===xr.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")):(e.Debug.assert(xa>=xr.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(xa<=xr.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")),e.createTextSpanFromBounds(xa,xr.end)}e.getErrorSpanForNode=Oe;function nr(c){return(c.externalModuleIndicator||c.commonJsModuleIndicator)!==void 0}e.isExternalOrCommonJsModule=nr;function Mr(c){return c.scriptKind===6}e.isJsonSourceFile=Mr;function Pe(c){return!!(e.getCombinedModifierFlags(c)&2048)}e.isEnumConst=Pe;function Ue(c){return!!(e.getCombinedModifierFlags(c)&64&&!e.isParameterPropertyDeclaration(c,c.parent))}e.isDeclarationReadonly=Ue;function fr(c){return!!(e.getCombinedNodeFlags(c)&2)}e.isVarConst=fr;function De(c){return!!(e.getCombinedNodeFlags(c)&1)}e.isLet=De;function gr(c){return c.kind===208&&c.expression.kind===106}e.isSuperCall=gr;function Vr(c){return c.kind===208&&c.expression.kind===100}e.isImportCall=Vr;function Tr(c){return e.isMetaProperty(c)&&c.keywordToken===100&&c.name.escapedText==="meta"}e.isImportMeta=Tr;function vi(c){return e.isImportTypeNode(c)&&e.isLiteralTypeNode(c.argument)&&e.isStringLiteral(c.argument.literal)}e.isLiteralImportTypeNode=vi;function Ui(c){return c.kind===238&&c.expression.kind===10}e.isPrologueDirective=Ui;function Yi(c){return!!(Ie(c)&1048576)}e.isCustomPrologue=Yi;function Wi(c){return Yi(c)&&e.isFunctionDeclaration(c)}e.isHoistedFunction=Wi;function ct(c){return e.isIdentifier(c.name)&&!c.initializer}function Li(c){return Yi(c)&&e.isVariableStatement(c)&&e.every(c.declarationList.declarations,ct)}e.isHoistedVariableStatement=Li;function nt(c,te){return c.kind!==11?e.getLeadingCommentRanges(te.text,c.pos):void 0}e.getLeadingCommentRangesOfNode=nt;function Mt(c,te){var xr=c.kind===164||c.kind===163||c.kind===213||c.kind===214||c.kind===212||c.kind===254||c.kind===275?e.concatenate(e.getTrailingCommentRanges(te,c.pos),e.getLeadingCommentRanges(te,c.pos)):e.getLeadingCommentRanges(te,c.pos);return e.filter(xr,function(ei){return te.charCodeAt(ei.pos+1)===42&&te.charCodeAt(ei.pos+2)===42&&te.charCodeAt(ei.pos+3)!==47})}e.getJSDocCommentRanges=Mt,e.fullTripleSlashReferencePathRegEx=/^(\/\/\/\s*/;var xt=/^(\/\/\/\s*/;e.fullTripleSlashAMDReferencePathRegEx=/^(\/\/\/\s*/;var ut=/^(\/\/\/\s*/;function Dt(c){if(177<=c.kind&&c.kind<=200)return!0;switch(c.kind){case 130:case 155:case 147:case 158:case 150:case 133:case 151:case 148:case 153:case 143:return!0;case 114:return c.parent.kind!==217;case 228:return e.isHeritageClause(c.parent)&&!Fc(c);case 163:return c.parent.kind===195||c.parent.kind===190;case 79:(c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c)&&(c=c.parent),e.Debug.assert(c.kind===79||c.kind===161||c.kind===206,"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.");case 161:case 206:case 108:{var te=c.parent;if(te.kind===181)return!1;if(te.kind===200)return!te.isTypeOf;if(177<=te.kind&&te.kind<=200)return!0;switch(te.kind){case 228:return e.isHeritageClause(te.parent)&&!Fc(te);case 163:return c===te.constraint;case 344:return c===te.constraint;case 167:case 166:case 164:case 254:return c===te.type;case 256:case 213:case 214:case 171:case 169:case 168:case 172:case 173:return c===te.type;case 174:case 175:case 176:return c===te.type;case 211:return c===te.type;case 208:case 209:return e.contains(te.typeArguments,c);case 210:return!1}}}return!1}e.isPartOfTypeNode=Dt;function Rt(c,te){for(;c;){if(c.kind===te)return!0;c=c.parent}return!1}e.isChildOfNodeWithKind=Rt;function Ii(c,te){return xr(c);function xr(ei){switch(ei.kind){case 247:return te(ei);case 263:case 235:case 239:case 240:case 241:case 242:case 243:case 244:case 248:case 249:case 289:case 290:case 250:case 252:case 292:return e.forEachChild(ei,xr)}}}e.forEachReturnStatement=Ii;function Ki(c,te){return xr(c);function xr(ei){switch(ei.kind){case 224:te(ei);var bi=ei.expression;bi&&xr(bi);return;case 260:case 258:case 261:case 259:return;default:if(e.isFunctionLike(ei)){if(ei.name&&ei.name.kind===162){xr(ei.name.expression);return}}else Dt(ei)||e.forEachChild(ei,xr)}}}e.forEachYieldExpression=Ki;function Fi(c){return c&&c.kind===183?c.elementType:c&&c.kind===178?e.singleOrUndefined(c.typeArguments):void 0}e.getRestParameterElementType=Fi;function ui(c){switch(c.kind){case 258:case 257:case 226:case 182:return c.members;case 205:return c.properties}}e.getMembersOfDeclaration=ui;function Bt(c){if(c)switch(c.kind){case 203:case 299:case 164:case 296:case 167:case 166:case 297:case 254:return!0}return!1}e.isVariableLike=Bt;function wt(c){return Bt(c)||e.isAccessor(c)}e.isVariableLikeOrAccessor=wt;function na(c){return c.parent.kind===255&&c.parent.parent.kind===237}e.isVariableDeclarationInVariableStatement=na;function Ai(c){return Ct(c)?e.isObjectLiteralExpression(c.parent)&&e.isBinaryExpression(c.parent.parent)&&Hr(c.parent.parent)===2||Oi(c.parent):!1}e.isCommonJsExportedExpression=Ai;function Oi(c){return Ct(c)?e.isBinaryExpression(c)&&Hr(c)===1:!1}e.isCommonJsExportPropertyAssignment=Oi;function ji(c){return(e.isVariableDeclaration(c)?fr(c)&&e.isIdentifier(c.name)&&na(c):e.isPropertyDeclaration(c)?wp(c)&&mc(c):e.isPropertySignature(c)&&wp(c))||Oi(c)}e.isValidESSymbolDeclaration=ji;function Vi(c){switch(c.kind){case 169:case 168:case 171:case 172:case 173:case 256:case 213:return!0}return!1}e.introducesArgumentsExoticObject=Vi;function at(c,te){for(;;){if(te&&te(c),c.statement.kind!==250)return c.statement;c=c.statement}}e.unwrapInnermostStatementOfLabel=at;function At(c){return c&&c.kind===235&&e.isFunctionLike(c.parent)}e.isFunctionBlock=At;function ba(c){return c&&c.kind===169&&c.parent.kind===205}e.isObjectLiteralMethod=ba;function $a(c){return(c.kind===169||c.kind===172||c.kind===173)&&(c.parent.kind===205||c.parent.kind===226)}e.isObjectLiteralOrClassExpressionMethodOrAccessor=$a;function Qa(c){return c&&c.kind===1}e.isIdentifierTypePredicate=Qa;function ai(c){return c&&c.kind===0}e.isThisTypePredicate=ai;function Dn(c,te,xr){return c.properties.filter(function(ei){if(ei.kind===296){var bi=pi(ei.name);return te===bi||!!xr&&xr===bi}return!1})}e.getPropertyAssignment=Dn;function ka(c,te,xr){return e.firstDefined(Dn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getPropertyArrayElementValue=ka;function Ba(c){if(c&&c.statements.length){var te=c.statements[0].expression;return e.tryCast(te,e.isObjectLiteralExpression)}}e.getTsConfigObjectLiteralExpression=Ba;function pn(c,te,xr){return e.firstDefined(Cn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getTsConfigPropArrayElementValue=pn;function Cn(c,te){var xr=Ba(c);return xr?Dn(xr,te):e.emptyArray}e.getTsConfigPropArray=Cn;function Bi(c){return e.findAncestor(c.parent,e.isFunctionLike)}e.getContainingFunction=Bi;function kn(c){return e.findAncestor(c.parent,e.isFunctionLikeDeclaration)}e.getContainingFunctionDeclaration=kn;function xn(c){return e.findAncestor(c.parent,e.isClassLike)}e.getContainingClass=xn;function Kn(c){return e.findAncestor(c.parent,function(te){return e.isClassLike(te)||e.isFunctionLike(te)?"quit":e.isClassStaticBlockDeclaration(te)})}e.getContainingClassStaticBlock=Kn;function Pn(c){return e.findAncestor(c.parent,e.isFunctionLikeOrClassStaticBlockDeclaration)}e.getContainingFunctionOrClassStaticBlock=Pn;function eo(c,te){for(e.Debug.assert(c.kind!==305);;){if(c=c.parent,!c)return e.Debug.fail();switch(c.kind){case 162:if(e.isClassLike(c.parent.parent))return c;c=c.parent;break;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break;case 214:if(!te)continue;case 256:case 213:case 261:case 170:case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 174:case 175:case 176:case 260:case 305:return c}}}e.getThisContainer=eo;function Rn(c){switch(c.kind){case 214:case 256:case 213:case 167:return!0;case 235:switch(c.parent.kind){case 171:case 169:case 172:case 173:return!0;default:return!1}default:return!1}}e.isThisContainerOrFunctionBlock=Rn;function Da(c){e.isIdentifier(c)&&(e.isClassDeclaration(c.parent)||e.isFunctionDeclaration(c.parent))&&c.parent.name===c&&(c=c.parent);var te=eo(c,!0);return e.isSourceFile(te)}e.isInTopLevelContext=Da;function bo(c){var te=eo(c,!1);if(te)switch(te.kind){case 171:case 256:case 213:return te}}e.getNewTargetContainer=bo;function Ro(c,te){for(;;){if(c=c.parent,!c)return c;switch(c.kind){case 162:c=c.parent;break;case 256:case 213:case 214:if(!te)continue;case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 170:return c;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break}}}e.getSuperContainer=Ro;function En(c){if(c.kind===213||c.kind===214){for(var te=c,xr=c.parent;xr.kind===212;)te=xr,xr=xr.parent;if(xr.kind===208&&xr.expression===te)return xr}}e.getImmediatelyInvokedFunctionExpression=En;function Wn(c){return c.kind===106||to(c)}e.isSuperOrSuperProperty=Wn;function to(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===106}e.isSuperProperty=to;function Co(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===108}e.isThisProperty=Co;function Ko(c){var te;return!!c&&e.isVariableDeclaration(c)&&((te=c.initializer)===null||te===void 0?void 0:te.kind)===108}e.isThisInitializedDeclaration=Ko;function Oo(c){return!!c&&(e.isShorthandPropertyAssignment(c)||e.isPropertyAssignment(c))&&e.isBinaryExpression(c.parent.parent)&&c.parent.parent.operatorToken.kind===63&&c.parent.parent.right.kind===108}e.isThisInitializedObjectBindingExpression=Oo;function no(c){switch(c.kind){case 178:return c.typeName;case 228:return Hu(c.expression)?c.expression:void 0;case 79:case 161:return c}}e.getEntityNameFromTypeNode=no;function $o(c){switch(c.kind){case 210:return c.tag;case 280:case 279:return c.tagName;default:return c.expression}}e.getInvokedExpression=$o;function Pr(c,te,xr){if(e.isNamedDeclaration(c)&&e.isPrivateIdentifier(c.name))return!1;switch(c.kind){case 257:return!0;case 167:return te.kind===257;case 172:case 173:case 169:return c.body!==void 0&&te.kind===257;case 164:return te.body!==void 0&&(te.kind===171||te.kind===169||te.kind===173)&&xr.kind===257}return!1}e.nodeCanBeDecorated=Pr;function xi(c,te,xr){return c.decorators!==void 0&&Pr(c,te,xr)}e.nodeIsDecorated=xi;function St(c,te,xr){return xi(c,te,xr)||pa(c,te)}e.nodeOrChildIsDecorated=St;function pa(c,te){switch(c.kind){case 257:return e.some(c.members,function(xr){return St(xr,c,te)});case 169:case 173:case 171:return e.some(c.parameters,function(xr){return xi(xr,c,te)});default:return!1}}e.childIsDecorated=pa;function dn(c){if(xi(c))return!0;var te=Nu(c);return!!te&&pa(te,c)}e.classOrConstructorParameterIsDecorated=dn;function Jn(c){var te=c.parent;return te.kind===280||te.kind===279||te.kind===281?te.tagName===c:!1}e.isJSXTagName=Jn;function Qe(c){switch(c.kind){case 106:case 104:case 110:case 95:case 13:case 204:case 205:case 206:case 207:case 208:case 209:case 210:case 229:case 211:case 230:case 212:case 213:case 226:case 214:case 217:case 215:case 216:case 219:case 220:case 221:case 222:case 225:case 223:case 227:case 278:case 279:case 282:case 224:case 218:case 231:return!0;case 161:for(;c.parent.kind===161;)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c);case 311:for(;e.isJSDocMemberName(c.parent);)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c);case 80:return e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===101;case 79:if(c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c))return!0;case 8:case 9:case 10:case 14:case 108:return Gr(c);default:return!1}}e.isExpressionNode=Qe;function Gr(c){var te=c.parent;switch(te.kind){case 254:case 164:case 167:case 166:case 299:case 296:case 203:return te.initializer===c;case 238:case 239:case 240:case 241:case 247:case 248:case 249:case 289:case 251:return te.expression===c;case 242:var xr=te;return xr.initializer===c&&xr.initializer.kind!==255||xr.condition===c||xr.incrementor===c;case 243:case 244:var ei=te;return ei.initializer===c&&ei.initializer.kind!==255||ei.expression===c;case 211:case 229:return c===te.expression;case 233:return c===te.expression;case 162:return c===te.expression;case 165:case 288:case 287:case 298:return!0;case 228:return te.expression===c&&!Dt(te);case 297:return te.objectAssignmentInitializer===c;default:return Qe(te)}}e.isInExpressionContext=Gr;function S(c){for(;c.kind===161||c.kind===79;)c=c.parent;return c.kind===181}e.isPartOfTypeQuery=S;function Ce(c){return e.isNamespaceExport(c)&&!!c.parent.moduleSpecifier}e.isNamespaceReexportDeclaration=Ce;function qe(c){return c.kind===265&&c.moduleReference.kind===277}e.isExternalModuleImportEqualsDeclaration=qe;function br(c){return e.Debug.assert(qe(c)),c.moduleReference.expression}e.getExternalModuleImportEqualsDeclarationExpression=br;function Zr(c){return Go(c)&&Xa(c.initializer).arguments[0]}e.getExternalModuleRequireArgument=Zr;function Si(c){return c.kind===265&&c.moduleReference.kind!==277}e.isInternalModuleImportEqualsDeclaration=Si;function Pi(c){return Ct(c)}e.isSourceFileJS=Pi;function Qi(c){return!Ct(c)}e.isSourceFileNotJS=Qi;function Ct(c){return!!c&&!!(c.flags&262144)}e.isInJSFile=Ct;function sa(c){return!!c&&!!(c.flags&67108864)}e.isInJsonFile=sa;function en(c){return!Mr(c)}e.isSourceFileNotJson=en;function Wa(c){return!!c&&!!(c.flags&8388608)}e.isInJSDoc=Wa;function qn(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)&&c.typeName.escapedText==="Object"&&c.typeArguments&&c.typeArguments.length===2&&(c.typeArguments[0].kind===150||c.typeArguments[0].kind===147)}e.isJSDocIndexSignature=qn;function mo(c,te){if(c.kind!==208)return!1;var xr=c,ei=xr.expression,bi=xr.arguments;if(ei.kind!==79||ei.escapedText!=="require"||bi.length!==1)return!1;var Ft=bi[0];return!te||e.isStringLiteralLike(Ft)}e.isRequireCall=mo;function So(c){return ys(c,!1)}e.isVariableDeclarationInitializedToRequire=So;function Go(c){return ys(c,!0)}e.isVariableDeclarationInitializedToBareOrAccessedRequire=Go;function ys(c,te){return c.kind===203&&(c=c.parent.parent),e.isVariableDeclaration(c)&&!!c.initializer&&mo(te?Xa(c.initializer):c.initializer,!0)}function Pc(c){return e.isVariableStatement(c)&&c.declarationList.declarations.length>0&&e.every(c.declarationList.declarations,function(te){return So(te)})}e.isRequireVariableStatement=Pc;function Vc(c){return c===39||c===34}e.isSingleOrDoubleQuote=Vc;function Kc(c,te){return Be(te,c).charCodeAt(0)===34}e.isStringDoubleQuoted=Kc;function Xs(c){return e.isBinaryExpression(c)||cr(c)||e.isIdentifier(c)||e.isCallExpression(c)}e.isAssignmentDeclaration=Xs;function pc(c){return Ct(c)&&c.initializer&&e.isBinaryExpression(c.initializer)&&(c.initializer.operatorToken.kind===56||c.initializer.operatorToken.kind===60)&&c.name&&Hu(c.name)&&ce(c.name,c.initializer.left)?c.initializer.right:c.initializer}e.getEffectiveInitializer=pc;function hs(c){var te=pc(c);return te&&Qs(te,nf(c.name))}e.getDeclaredExpandoInitializer=hs;function tc(c,te){return e.forEach(c.properties,function(xr){return e.isPropertyAssignment(xr)&&e.isIdentifier(xr.name)&&xr.name.escapedText==="value"&&xr.initializer&&Qs(xr.initializer,te)})}function ps(c){if(c&&c.parent&&e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63){var te=nf(c.parent.left);return Qs(c.parent.right,te)||js(c.parent.left,c.parent.right,te)}if(c&&e.isCallExpression(c)&&pt(c)){var xr=tc(c.arguments[2],c.arguments[1].text==="prototype");if(xr)return xr}}e.getAssignedExpandoInitializer=ps;function Qs(c,te){if(e.isCallExpression(c)){var xr=po(c.expression);return xr.kind===213||xr.kind===214?c:void 0}if(c.kind===213||c.kind===226||c.kind===214||e.isObjectLiteralExpression(c)&&(c.properties.length===0||te))return c}e.getExpandoInitializer=Qs;function js(c,te,xr){var ei=e.isBinaryExpression(te)&&(te.operatorToken.kind===56||te.operatorToken.kind===60)&&Qs(te.right,xr);if(ei&&ce(c,te.left))return ei}function ds(c){var te=e.isVariableDeclaration(c.parent)?c.parent.name:e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63?c.parent.left:void 0;return te&&Qs(c.right,nf(te))&&Hu(te)&&ce(te,c.left)}e.isDefaultedExpandoInitializer=ds;function Ji(c){if(e.isBinaryExpression(c.parent)){var te=(c.parent.operatorToken.kind===56||c.parent.operatorToken.kind===60)&&e.isBinaryExpression(c.parent.parent)?c.parent.parent:c.parent;if(te.operatorToken.kind===63&&e.isIdentifier(te.left))return te.left}else if(e.isVariableDeclaration(c.parent))return c.parent.name}e.getNameOfExpando=Ji;function ce(c,te){return Jf(c)&&Jf(te)?w_(c)===w_(te):e.isMemberName(c)&&Pt(te)&&(te.expression.kind===108||e.isIdentifier(te.expression)&&(te.expression.escapedText==="window"||te.expression.escapedText==="self"||te.expression.escapedText==="global"))?ce(c,fo(te)):Pt(c)&&Pt(te)?Ao(c)===Ao(te)&&ce(c.expression,te.expression):!1}e.isSameEntityName=ce;function Rr(c){for(;dl(c,!0);)c=c.right;return c}e.getRightMostAssignedExpression=Rr;function yi(c){return e.isIdentifier(c)&&c.escapedText==="exports"}e.isExportsIdentifier=yi;function qi(c){return e.isIdentifier(c)&&c.escapedText==="module"}e.isModuleIdentifier=qi;function je(c){return(e.isPropertyAccessExpression(c)||ga(c))&&qi(c.expression)&&Ao(c)==="exports"}e.isModuleExportsAccessExpression=je;function Hr(c){var te=xs(c);return te===5||Ct(c)?te:0}e.getAssignmentDeclarationKind=Hr;function pt(c){return e.length(c.arguments)===3&&e.isPropertyAccessExpression(c.expression)&&e.isIdentifier(c.expression.expression)&&e.idText(c.expression.expression)==="Object"&&e.idText(c.expression.name)==="defineProperty"&&ns(c.arguments[1])&&jr(c.arguments[0],!0)}e.isBindableObjectDefinePropertyCall=pt;function Pt(c){return e.isPropertyAccessExpression(c)||ga(c)}e.isLiteralLikeAccess=Pt;function ga(c){return e.isElementAccessExpression(c)&&ns(c.argumentExpression)}e.isLiteralLikeElementAccess=ga;function ua(c,te){return e.isPropertyAccessExpression(c)&&(!te&&c.expression.kind===108||e.isIdentifier(c.name)&&jr(c.expression,!0))||Xn(c,te)}e.isBindableStaticAccessExpression=ua;function Xn(c,te){return ga(c)&&(!te&&c.expression.kind===108||Hu(c.expression)||ua(c.expression,!0))}e.isBindableStaticElementAccessExpression=Xn;function jr(c,te){return Hu(c)||ua(c,te)}e.isBindableStaticNameExpression=jr;function fo(c){return e.isPropertyAccessExpression(c)?c.name:c.argumentExpression}e.getNameOrArgument=fo;function xs(c){if(e.isCallExpression(c)){if(!pt(c))return 0;var te=c.arguments[0];return yi(te)||je(te)?8:ua(te)&&Ao(te)==="prototype"?9:7}return c.operatorToken.kind!==63||!cr(c.left)||Fo(Rr(c))?0:jr(c.left.expression,!0)&&Ao(c.left)==="prototype"&&e.isObjectLiteralExpression(Bs(c))?6:Ms(c.left)}function Fo(c){return e.isVoidExpression(c)&&e.isNumericLiteral(c.expression)&&c.expression.text==="0"}function ko(c){if(e.isPropertyAccessExpression(c))return c.name;var te=po(c.argumentExpression);return e.isNumericLiteral(te)||e.isStringLiteralLike(te)?te:c}e.getElementOrPropertyAccessArgumentExpressionOrName=ko;function Ao(c){var te=ko(c);if(te){if(e.isIdentifier(te))return te.escapedText;if(e.isStringLiteralLike(te)||e.isNumericLiteral(te))return e.escapeLeadingUnderscores(te.text)}}e.getElementOrPropertyAccessName=Ao;function Ms(c){if(c.expression.kind===108)return 4;if(je(c))return 2;if(jr(c.expression,!0)){if(nf(c.expression))return 3;for(var te=c;!e.isIdentifier(te.expression);)te=te.expression;var xr=te.expression;if((xr.escapedText==="exports"||xr.escapedText==="module"&&Ao(te)==="exports")&&ua(c))return 1;if(jr(c,!0)||e.isElementAccessExpression(c)&&es(c))return 5}return 0}e.getAssignmentDeclarationPropertyAccessKind=Ms;function Bs(c){for(;e.isBinaryExpression(c.right);)c=c.right;return c.right}e.getInitializerOfBinaryExpression=Bs;function xc(c){return e.isBinaryExpression(c)&&Hr(c)===3}e.isPrototypePropertyAssignment=xc;function su(c){return Ct(c)&&c.parent&&c.parent.kind===238&&(!e.isElementAccessExpression(c)||ga(c))&&!!e.getJSDocTypeTag(c.parent)}e.isSpecialPropertyDeclaration=su;function tl(c,te){var xr=c.valueDeclaration;(!xr||!(te.flags&16777216&&!(xr.flags&16777216))&&Xs(xr)&&!Xs(te)||xr.kind!==te.kind&&Ne(xr))&&(c.valueDeclaration=te)}e.setValueDeclaration=tl;function Zc(c){if(!c||!c.valueDeclaration)return!1;var te=c.valueDeclaration;return te.kind===256||e.isVariableDeclaration(te)&&te.initializer&&e.isFunctionLike(te.initializer)}e.isFunctionSymbol=Zc;function Rf(c){var te,xr;switch(c.kind){case 254:return(te=e.findAncestor(c.initializer,function(ei){return mo(ei,!0)}))===null||te===void 0?void 0:te.arguments[0];case 266:return e.tryCast(c.moduleSpecifier,e.isStringLiteralLike);case 265:return e.tryCast((xr=e.tryCast(c.moduleReference,e.isExternalModuleReference))===null||xr===void 0?void 0:xr.expression,e.isStringLiteralLike);default:e.Debug.assertNever(c)}}e.tryGetModuleSpecifierFromDeclaration=Rf;function al(c){return Jo(c)||e.Debug.failBadSyntaxKind(c.parent)}e.importFromModuleSpecifier=al;function Jo(c){switch(c.parent.kind){case 266:case 272:return c.parent;case 277:return c.parent.parent;case 208:return Vr(c.parent)||mo(c.parent,!1)?c.parent:void 0;case 196:return e.Debug.assert(e.isStringLiteral(c)),e.tryCast(c.parent.parent,e.isImportTypeNode);default:return}}e.tryGetImportFromModuleSpecifier=Jo;function eu(c){switch(c.kind){case 266:case 272:return c.moduleSpecifier;case 265:return c.moduleReference.kind===277?c.moduleReference.expression:void 0;case 200:return vi(c)?c.argument.literal:void 0;case 208:return c.arguments[0];case 261:return c.name.kind===10?c.name:void 0;default:return e.Debug.assertNever(c)}}e.getExternalModuleName=eu;function Ws(c){switch(c.kind){case 266:return c.importClause&&e.tryCast(c.importClause.namedBindings,e.isNamespaceImport);case 265:return c;case 272:return c.exportClause&&e.tryCast(c.exportClause,e.isNamespaceExport);default:return e.Debug.assertNever(c)}}e.getNamespaceDeclarationNode=Ws;function pu(c){return c.kind===266&&!!c.importClause&&!!c.importClause.name}e.isDefaultImport=pu;function Uu(c,te){if(c.name){var xr=te(c);if(xr)return xr}if(c.namedBindings){var xr=e.isNamespaceImport(c.namedBindings)?te(c.namedBindings):e.forEach(c.namedBindings.elements,te);if(xr)return xr}}e.forEachImportClauseDeclaration=Uu;function Ql(c){if(c)switch(c.kind){case 164:case 169:case 168:case 297:case 296:case 167:case 166:return c.questionToken!==void 0}return!1}e.hasQuestionToken=Ql;function xl(c){var te=e.isJSDocFunctionType(c)?e.firstOrUndefined(c.parameters):void 0,xr=e.tryCast(te&&te.name,e.isIdentifier);return!!xr&&xr.escapedText==="new"}e.isJSDocConstructSignature=xl;function Ya(c){return c.kind===345||c.kind===338||c.kind===339}e.isJSDocTypeAlias=Ya;function du(c){return Ya(c)||e.isTypeAliasDeclaration(c)}e.isTypeAlias=du;function vc(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&c.expression.operatorToken.kind===63?Rr(c.expression):void 0}function Kr(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&Hr(c.expression)!==0&&e.isBinaryExpression(c.expression.right)&&(c.expression.right.operatorToken.kind===56||c.expression.right.operatorToken.kind===60)?c.expression.right.right:void 0}function _i(c){switch(c.kind){case 237:var te=Ei(c);return te&&te.initializer;case 167:return c.initializer;case 296:return c.initializer}}e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=_i;function Ei(c){return e.isVariableStatement(c)?e.firstOrUndefined(c.declarationList.declarations):void 0}e.getSingleVariableOfVariableStatement=Ei;function tt(c){return e.isModuleDeclaration(c)&&c.body&&c.body.kind===261?c.body:void 0}function kt(c,te){var xr;Bt(c)&&e.hasInitializer(c)&&e.hasJSDocNodes(c.initializer)&&(xr=e.addRange(xr,bt(c,e.last(c.initializer.jsDoc))));for(var ei=c;ei&&ei.parent;){if(e.hasJSDocNodes(ei)&&(xr=e.addRange(xr,bt(c,e.last(ei.jsDoc)))),ei.kind===164){xr=e.addRange(xr,(te?e.getJSDocParameterTagsNoCache:e.getJSDocParameterTags)(ei));break}if(ei.kind===163){xr=e.addRange(xr,(te?e.getJSDocTypeParameterTagsNoCache:e.getJSDocTypeParameterTags)(ei));break}ei=Xt(ei)}return xr||e.emptyArray}e.getJSDocCommentsAndTags=kt;function bt(c,te){if(e.isJSDoc(te)){var xr=e.filter(te.tags,function(ei){return ia(c,ei)});return te.tags===xr?[te]:xr}return ia(c,te)?[te]:void 0}function ia(c,te){return!e.isJSDocTypeTag(te)||!te.parent||!e.isJSDoc(te.parent)||!e.isParenthesizedExpression(te.parent.parent)||te.parent.parent===c}function Xt(c){var te=c.parent;if(te.kind===296||te.kind===271||te.kind===167||te.kind===238&&c.kind===206||te.kind===247||tt(te)||e.isBinaryExpression(c)&&c.operatorToken.kind===63)return te;if(te.parent&&(Ei(te.parent)===c||e.isBinaryExpression(te)&&te.operatorToken.kind===63))return te.parent;if(te.parent&&te.parent.parent&&(Ei(te.parent.parent)||_i(te.parent.parent)===c||Kr(te.parent.parent)))return te.parent.parent}e.getNextJSDocCommentLocation=Xt;function Za(c){if(c.symbol)return c.symbol;if(!!e.isIdentifier(c.name)){var te=c.name.escapedText,xr=_a(c);if(!!xr){var ei=e.find(xr.parameters,function(bi){return bi.name.kind===79&&bi.name.escapedText===te});return ei&&ei.symbol}}}e.getParameterSymbolFromJSDoc=Za;function bn(c){if(e.isJSDoc(c.parent)&&c.parent.tags){var te=e.find(c.parent.tags,Ya);if(te)return te}return _a(c)}e.getEffectiveContainerForJSDocTemplateTag=bn;function _a(c){var te=qa(c);if(te)return e.isPropertySignature(te)&&te.type&&e.isFunctionLike(te.type)?te.type:e.isFunctionLike(te)?te:void 0}e.getHostSignatureFromJSDoc=_a;function qa(c){var te=rn(c);if(te)return Kr(te)||vc(te)||_i(te)||Ei(te)||tt(te)||te}e.getEffectiveJSDocHost=qa;function rn(c){var te=jn(c);if(!!te){var xr=te.parent;if(xr&&xr.jsDoc&&te===e.lastOrUndefined(xr.jsDoc))return xr}}e.getJSDocHost=rn;function jn(c){return e.findAncestor(c.parent,e.isJSDoc)}e.getJSDocRoot=jn;function Mo(c){var te=c.name.escapedText,xr=c.parent.parent.parent.typeParameters;return xr&&e.find(xr,function(ei){return ei.name.escapedText===te})}e.getTypeParameterFromJsDoc=Mo;function ho(c){var te=e.lastOrUndefined(c.parameters);return!!te&&gs(te)}e.hasRestParameter=ho;function gs(c){var te=e.isJSDocParameterTag(c)?c.typeExpression&&c.typeExpression.type:c.type;return c.dotDotDotToken!==void 0||!!te&&te.kind===318}e.isRestParameter=gs;function Se(c){return!!c.typeArguments}e.hasTypeArguments=Se;var hr;(function(c){c[c.None=0]="None",c[c.Definite=1]="Definite",c[c.Compound=2]="Compound"})(hr=e.AssignmentKind||(e.AssignmentKind={}));function Or(c){for(var te=c.parent;;){switch(te.kind){case 221:var xr=te.operatorToken.kind;return Cf(xr)&&te.left===c?xr===63||Gu(xr)?1:2:0;case 219:case 220:var ei=te.operator;return ei===45||ei===46?2:0;case 243:case 244:return te.initializer===c?1:0;case 212:case 204:case 225:case 230:c=te;break;case 298:c=te.parent;break;case 297:if(te.name!==c)return 0;c=te.parent;break;case 296:if(te.name===c)return 0;c=te.parent;break;default:return 0}te=c.parent}}e.getAssignmentTargetKind=Or;function ki(c){return Or(c)!==0}e.isAssignmentTarget=ki;function dt(c){switch(c.kind){case 235:case 237:case 248:case 239:case 249:case 263:case 289:case 290:case 250:case 242:case 243:case 244:case 240:case 241:case 252:case 292:return!0}return!1}e.isNodeWithPossibleHoistedDeclaration=dt;function la(c){return e.isFunctionExpression(c)||e.isArrowFunction(c)||e.isMethodOrAccessor(c)||e.isFunctionDeclaration(c)||e.isConstructorDeclaration(c)}e.isValueSignatureDeclaration=la;function wa(c,te){for(;c&&c.kind===te;)c=c.parent;return c}function On(c){return wa(c,191)}e.walkUpParenthesizedTypes=On;function No(c){return wa(c,212)}e.walkUpParenthesizedExpressions=No;function jo(c){for(var te;c&&c.kind===191;)te=c,c=c.parent;return[te,c]}e.walkUpParenthesizedTypesAndGetParentAndChild=jo;function po(c,te){var xr=te?17:1;return e.skipOuterExpressions(c,xr)}e.skipParentheses=po;function Gn(c){return c.kind!==206&&c.kind!==207?!1:(c=No(c.parent),c&&c.kind===215)}e.isDeleteTarget=Gn;function $n(c,te){for(;c;){if(c===te)return!0;c=c.parent}return!1}e.isNodeDescendantOf=$n;function Ho(c){return!e.isSourceFile(c)&&!e.isBindingPattern(c)&&e.isDeclaration(c.parent)&&c.parent.name===c}e.isDeclarationName=Ho;function Zo(c){var te=c.parent;switch(c.kind){case 10:case 14:case 8:if(e.isComputedPropertyName(te))return te.parent;case 79:if(e.isDeclaration(te))return te.name===c?te:void 0;if(e.isQualifiedName(te)){var xr=te.parent;return e.isJSDocParameterTag(xr)&&xr.name===te?xr:void 0}else{var ei=te.parent;return e.isBinaryExpression(ei)&&Hr(ei)!==0&&(ei.left.symbol||ei.symbol)&&e.getNameOfDeclaration(ei)===c?ei:void 0}case 80:return e.isDeclaration(te)&&te.name===c?te:void 0;default:return}}e.getDeclarationFromName=Zo;function Es(c){return ns(c)&&c.parent.kind===162&&e.isDeclaration(c.parent.parent)}e.isLiteralComputedPropertyDeclarationName=Es;function yc(c){var te=c.parent;switch(te.kind){case 167:case 166:case 169:case 168:case 172:case 173:case 299:case 296:case 206:return te.name===c;case 161:return te.right===c;case 203:case 270:return te.propertyName===c;case 275:case 285:case 279:case 280:case 281:return!0}return!1}e.isIdentifierName=yc;function Xr(c){return c.kind===265||c.kind===264||c.kind===267&&!!c.name||c.kind===268||c.kind===274||c.kind===270||c.kind===275||c.kind===271&&zu(c)?!0:Ct(c)&&(e.isBinaryExpression(c)&&Hr(c)===2&&zu(c)||e.isPropertyAccessExpression(c)&&e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===63&&Ic(c.parent.right))}e.isAliasSymbolDeclaration=Xr;function Ls(c){switch(c.parent.kind){case 267:case 270:case 268:case 275:case 271:case 265:case 274:return c.parent;case 161:do c=c.parent;while(c.parent.kind===161);return Ls(c)}}e.getAliasDeclarationFromName=Ls;function Ic(c){return Hu(c)||e.isClassExpression(c)}e.isAliasableExpression=Ic;function zu(c){var te=vf(c);return Ic(te)}e.exportAssignmentIsAlias=zu;function vf(c){return e.isExportAssignment(c)?c.expression:c.right}e.getExportAssignmentExpression=vf;function P_(c){return c.kind===297?c.name:c.kind===296?c.initializer:c.parent.right}e.getPropertyAssignmentAliasLikeExpression=P_;function El(c){var te=vp(c);if(te&&Ct(c)){var xr=e.getJSDocAugmentsTag(c);if(xr)return xr.class}return te}e.getEffectiveBaseTypeNode=El;function vp(c){var te=Yl(c.heritageClauses,94);return te&&te.types.length>0?te.types[0]:void 0}e.getClassExtendsHeritageElement=vp;function oo(c){if(Ct(c))return e.getJSDocImplementsTags(c).map(function(xr){return xr.class});var te=Yl(c.heritageClauses,117);return te==null?void 0:te.types}e.getEffectiveImplementsTypeNodes=oo;function I_(c){return e.isInterfaceDeclaration(c)?yp(c)||e.emptyArray:e.isClassLike(c)&&e.concatenate(e.singleElementArray(El(c)),oo(c))||e.emptyArray}e.getAllSuperTypeNodes=I_;function yp(c){var te=Yl(c.heritageClauses,94);return te?te.types:void 0}e.getInterfaceBaseTypeNodes=yp;function Yl(c,te){if(c)for(var xr=0,ei=c;xr=0)return an[To]}}function Ft(mn){var an;mn.file?(an=xr.get(mn.file.fileName),an||(an=[],xr.set(mn.file.fileName,an),e.insertSorted(te,mn.file.fileName,e.compareStringsCaseSensitive))):(ei&&(ei=!1,c=c.slice()),an=c),e.insertSorted(an,mn,Qg)}function ot(){return ei=!0,c}function xa(mn){if(mn)return xr.get(mn)||[];var an=e.flatMapToMutable(te,function(To){return xr.get(To)});return c.length&&an.unshift.apply(an,c),an}}e.createDiagnosticCollection=kp;var mu=/\$\{/g;function gd(c){return c.replace(mu,"\\${")}function hf(c){return c&&!!(e.isNoSubstitutionTemplateLiteral(c)?c.templateFlags:c.head.templateFlags||e.some(c.templateSpans,function(te){return!!te.literal.templateFlags}))}e.hasInvalidEscape=hf;var $l=/[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,Uf=/[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,L_=/\r\n|[\\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/g,l_=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 f_(c){var te=c.toString(16).toUpperCase(),xr=("0000"+te).slice(-4);return"\\u"+xr}function md(c,te,xr){if(c.charCodeAt(0)===0){var ei=xr.charCodeAt(te+c.length);return ei>=48&&ei<=57?"\\x00":"\\0"}return l_.get(c)||f_(c.charCodeAt(0))}function ks(c,te){var xr=te===96?L_:te===39?Uf:$l;return c.replace(xr,md)}e.escapeString=ks;var Wu=/[^\u0000-\u007F]/g;function Zl(c,te){return c=ks(c,te),Wu.test(c)?c.replace(Wu,function(xr){return f_(xr.charCodeAt(0))}):c}e.escapeNonAsciiString=Zl;var R_=/[\"\u0000-\u001f\u2028\u2029\u0085]/g,kl=/[\'\u0000-\u001f\u2028\u2029\u0085]/g,__=new e.Map(e.getEntries({'"':""","'":"'"}));function zd(c){var te=c.toString(16).toUpperCase();return"&#x"+te+";"}function Al(c){return c.charCodeAt(0)===0?"�":__.get(c)||zd(c.charCodeAt(0))}function wc(c,te){var xr=te===39?kl:R_;return c.replace(xr,Al)}e.escapeJsxAttributeString=wc;function qu(c){var te=c.length;return te>=2&&c.charCodeAt(0)===c.charCodeAt(te-1)&&Vu(c.charCodeAt(0))?c.substring(1,te-1):c}e.stripQuotes=qu;function Vu(c){return c===39||c===34||c===96}function ef(c){var te=c.charCodeAt(0);return te>=97&&te<=122||e.stringContains(c,"-")||e.stringContains(c,":")}e.isIntrinsicJsxName=ef;var sl=[""," "];function p_(c){for(var te=sl[1],xr=sl.length;xr<=c;xr++)sl.push(sl[xr-1]+te);return sl[c]}e.getIndentString=p_;function Df(){return sl[1].length}e.getIndentSize=Df;function Ec(){return e.stringContains(e.version,"-dev")||e.stringContains(e.version,"-insiders")}e.isNightly=Ec;function Zn(c){var te,xr,ei,bi,Ft,ot=!1;function xa(Xo){var jl=e.computeLineStarts(Xo);jl.length>1?(bi=bi+jl.length-1,Ft=te.length-Xo.length+e.last(jl),ei=Ft-te.length===0):ei=!1}function mn(Xo){Xo&&Xo.length&&(ei&&(Xo=p_(xr)+Xo,ei=!1),te+=Xo,xa(Xo))}function an(Xo){Xo&&(ot=!1),mn(Xo)}function To(Xo){Xo&&(ot=!0),mn(Xo)}function Hn(){te="",xr=0,ei=!0,bi=0,Ft=0,ot=!1}function ss(Xo){Xo!==void 0&&(te+=Xo,xa(Xo),ot=!1)}function cs(Xo){Xo&&Xo.length&&an(Xo)}function ws(Xo){(!ei||Xo)&&(te+=c,bi++,Ft=te.length,ei=!0,ot=!1)}function nu(){return ei?te.length:te.length+c.length}return Hn(),{write:an,rawWrite:ss,writeLiteral:cs,writeLine:ws,increaseIndent:function(){xr++},decreaseIndent:function(){xr--},getIndent:function(){return xr},getTextPos:function(){return te.length},getLine:function(){return bi},getColumn:function(){return ei?xr*Df():te.length-Ft},getText:function(){return te},isAtStartOfLine:function(){return ei},hasTrailingComment:function(){return ot},hasTrailingWhitespace:function(){return!!te.length&&e.isWhiteSpaceLike(te.charCodeAt(te.length-1))},clear:Hn,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:function(){return!1},writeKeyword:an,writeOperator:an,writeParameter:an,writeProperty:an,writePunctuation:an,writeSpace:an,writeStringLiteral:an,writeSymbol:function(Xo,jl){return an(Xo)},writeTrailingSemicolon:an,writeComment:To,getTextPosWithWriteLine:nu}}e.createTextWriter=Zn;function os(c){var te=!1;function xr(){te&&(c.writeTrailingSemicolon(";"),te=!1)}return Ke(Ke({},c),{writeTrailingSemicolon:function(){te=!0},writeLiteral:function(ei){xr(),c.writeLiteral(ei)},writeStringLiteral:function(ei){xr(),c.writeStringLiteral(ei)},writeSymbol:function(ei,bi){xr(),c.writeSymbol(ei,bi)},writePunctuation:function(ei){xr(),c.writePunctuation(ei)},writeKeyword:function(ei){xr(),c.writeKeyword(ei)},writeOperator:function(ei){xr(),c.writeOperator(ei)},writeParameter:function(ei){xr(),c.writeParameter(ei)},writeSpace:function(ei){xr(),c.writeSpace(ei)},writeProperty:function(ei){xr(),c.writeProperty(ei)},writeComment:function(ei){xr(),c.writeComment(ei)},writeLine:function(){xr(),c.writeLine()},increaseIndent:function(){xr(),c.increaseIndent()},decreaseIndent:function(){xr(),c.decreaseIndent()}})}e.getTrailingSemicolonDeferringWriter=os;function Ps(c){return c.useCaseSensitiveFileNames?c.useCaseSensitiveFileNames():!1}e.hostUsesCaseSensitiveFileNames=Ps;function d_(c){return e.createGetCanonicalFileName(Ps(c))}e.hostGetCanonicalFileName=d_;function Gc(c,te,xr){return te.moduleName||Gt(c,te.fileName,xr&&xr.fileName)}e.getResolvedExternalModuleName=Gc;function B_(c,te){return c.getCanonicalFileName(e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()))}function vu(c,te,xr){var ei=te.getExternalModuleFileFromDeclaration(xr);if(!(!ei||ei.isDeclarationFile)){var bi=eu(xr);if(!(bi&&e.isStringLiteralLike(bi)&&!e.pathIsRelative(bi.text)&&B_(c,ei.path).indexOf(B_(c,e.ensureTrailingDirectorySeparator(c.getCommonSourceDirectory())))===-1))return Gc(c,ei)}}e.getExternalModuleNameFromDeclaration=vu;function Gt(c,te,xr){var ei=function(mn){return c.getCanonicalFileName(mn)},bi=e.toPath(xr?e.getDirectoryPath(xr):c.getCommonSourceDirectory(),c.getCurrentDirectory(),ei),Ft=e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()),ot=e.getRelativePathToDirectoryOrUrl(bi,Ft,bi,ei,!1),xa=Gd(ot);return xr?e.ensurePathIsNonModuleName(xa):xa}e.getExternalModuleNameFromPath=Gt;function As(c,te,xr){var ei=te.getCompilerOptions(),bi;return ei.outDir?bi=Gd(Dc(c,te,ei.outDir)):bi=Gd(c),bi+xr}e.getOwnEmitOutputFilePath=As;function vn(c,te){return Nl(c,te.getCompilerOptions(),te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(xr){return te.getCanonicalFileName(xr)})}e.getDeclarationEmitOutputFilePath=vn;function Nl(c,te,xr,ei,bi){var Ft=te.declarationDir||te.outDir,ot=Ft?Cc(c,Ft,xr,ei,bi):c,xa=cl(ot);return Gd(ot)+xa}e.getDeclarationEmitOutputFilePathWorker=Nl;function cl(c){return e.fileExtensionIsOneOf(c,[".mjs",".mts"])?".d.mts":e.fileExtensionIsOneOf(c,[".cjs",".cts"])?".d.cts":e.fileExtensionIsOneOf(c,[".json"])?".json.d.ts":".d.ts"}e.getDeclarationEmitExtensionForPath=cl;function rf(c){return e.fileExtensionIsOneOf(c,[".d.mts",".mjs",".mts"])?[".mts",".mjs"]:e.fileExtensionIsOneOf(c,[".d.cts",".cjs",".cts"])?[".cts",".cjs"]:e.fileExtensionIsOneOf(c,[".json.d.ts"])?[".json"]:[".tsx",".ts",".jsx",".js"]}e.getPossibleOriginalInputExtensionForExtension=rf;function Ut(c){return c.outFile||c.out}e.outFile=Ut;function Ds(c,te){var xr,ei;if(!!c.paths)return(xr=c.baseUrl)!==null&&xr!==void 0?xr:e.Debug.checkDefined(c.pathsBasePath||((ei=te.getCurrentDirectory)===null||ei===void 0?void 0:ei.call(te)),"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.")}e.getPathsBasePath=Ds;function bf(c,te,xr){var ei=c.getCompilerOptions();if(Ut(ei)){var bi=Ja(ei),Ft=ei.emitDeclarationOnly||bi===e.ModuleKind.AMD||bi===e.ModuleKind.System;return e.filter(c.getSourceFiles(),function(xa){return(Ft||!e.isExternalModule(xa))&&bs(xa,c,xr)})}else{var ot=te===void 0?c.getSourceFiles():[te];return e.filter(ot,function(xa){return bs(xa,c,xr)})}}e.getSourceFilesToEmit=bf;function bs(c,te,xr){var ei=te.getCompilerOptions();return!(ei.noEmitForJsFiles&&Pi(c))&&!c.isDeclarationFile&&!te.isSourceFileFromExternalLibrary(c)&&(xr||!(Mr(c)&&te.getResolvedProjectReferenceToRedirect(c.fileName))&&!te.isSourceOfProjectReferenceRedirect(c.fileName))}e.sourceFileMayBeEmitted=bs;function Dc(c,te,xr){return Cc(c,xr,te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(ei){return te.getCanonicalFileName(ei)})}e.getSourceFilePathInNewDir=Dc;function Cc(c,te,xr,ei,bi){var Ft=e.getNormalizedAbsolutePath(c,xr),ot=bi(Ft).indexOf(bi(ei))===0;return Ft=ot?Ft.substring(ei.length):Ft,e.combinePaths(te,Ft)}e.getSourceFilePathInNewDirWorker=Cc;function ac(c,te,xr,ei,bi,Ft,ot){c.writeFile(xr,ei,bi,function(xa){te.add(qd(e.Diagnostics.Could_not_write_file_0_Colon_1,xr,xa))},Ft,ot)}e.writeFile=ac;function Pl(c,te,xr){if(c.length>e.getRootLength(c)&&!xr(c)){var ei=e.getDirectoryPath(c);Pl(ei,te,xr),te(c)}}function Il(c,te,xr,ei,bi,Ft){try{ei(c,te,xr)}catch{Pl(e.getDirectoryPath(e.normalizePath(c)),bi,Ft),ei(c,te,xr)}}e.writeFileEnsuringDirectories=Il;function zf(c,te){var xr=e.getLineStarts(c);return e.computeLineOfPosition(xr,te)}e.getLineOfLocalPosition=zf;function ul(c,te){return e.computeLineOfPosition(c,te)}e.getLineOfLocalPositionFromLineMap=ul;function Nu(c){return e.find(c.members,function(te){return e.isConstructorDeclaration(te)&&j(te.body)})}e.getFirstConstructorWithBody=Nu;function Us(c){if(c&&c.parameters.length>0){var te=c.parameters.length===2&&Sf(c.parameters[0]);return c.parameters[te?1:0]}}e.getSetAccessorValueParameter=Us;function Ap(c){var te=Us(c);return te&&te.type}e.getSetAccessorTypeAnnotationNode=Ap;function Wf(c){if(c.parameters.length&&!e.isJSDocSignature(c)){var te=c.parameters[0];if(Sf(te))return te}}e.getThisParameter=Wf;function Sf(c){return ll(c.name)}e.parameterIsThisKeyword=Sf;function ll(c){return!!c&&c.kind===79&&j_(c)}e.isThisIdentifier=ll;function J_(c){if(!ll(c))return!1;for(;e.isQualifiedName(c.parent)&&c.parent.left===c;)c=c.parent;return c.parent.kind===181}e.isThisInTypeQuery=J_;function j_(c){return c.originalKeywordKind===108}e.identifierIsThisKeyword=j_;function U_(c,te){var xr,ei,bi,Ft;return hc(te)?(xr=te,te.kind===172?bi=te:te.kind===173?Ft=te:e.Debug.fail("Accessor has wrong kind")):e.forEach(c,function(ot){if(e.isAccessor(ot)&&Tf(ot)===Tf(te)){var xa=u_(ot.name),mn=u_(te.name);xa===mn&&(xr?ei||(ei=ot):xr=ot,ot.kind===172&&!bi&&(bi=ot),ot.kind===173&&!Ft&&(Ft=ot))}}),{firstAccessor:xr,secondAccessor:ei,getAccessor:bi,setAccessor:Ft}}e.getAllAccessorDeclarations=U_;function iu(c){if(!(!Ct(c)&&e.isFunctionDeclaration(c))){var te=c.type;return te||!Ct(c)?te:e.isJSDocPropertyLikeTag(c)?c.typeExpression&&c.typeExpression.type:e.getJSDocType(c)}}e.getEffectiveTypeAnnotationNode=iu;function vd(c){return c.type}e.getTypeAnnotationNode=vd;function qf(c){return e.isJSDocSignature(c)?c.type&&c.type.typeExpression&&c.type.typeExpression.type:c.type||(Ct(c)?e.getJSDocReturnType(c):void 0)}e.getEffectiveReturnTypeNode=qf;function dc(c){return e.flatMap(e.getJSDocTags(c),function(te){return Pu(te)?te.typeParameters:void 0})}e.getJSDocTypeParameterDeclarations=dc;function Pu(c){return e.isJSDocTemplateTag(c)&&!(c.parent.kind===320&&c.parent.tags.some(Ya))}function wl(c){var te=Us(c);return te&&iu(te)}e.getEffectiveSetAccessorTypeAnnotationNode=wl;function Iu(c,te,xr,ei){so(c,te,xr.pos,ei)}e.emitNewLineBeforeLeadingComments=Iu;function so(c,te,xr,ei){ei&&ei.length&&xr!==ei[0].pos&&ul(c,xr)!==ul(c,ei[0].pos)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentsOfPosition=so;function Et(c,te,xr,ei){xr!==ei&&ul(c,xr)!==ul(c,ei)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentOfPosition=Et;function Ys(c,te,xr,ei,bi,Ft,ot,xa){if(ei&&ei.length>0){bi&&xr.writeSpace(" ");for(var mn=!1,an=0,To=ei;an=ws+2)break}an.push(cs),To=cs}if(an.length){var ws=ul(te,e.last(an).end),Xo=ul(te,e.skipTrivia(c,bi.pos));Xo>=ws+2&&(Iu(te,xr,bi,xa),Ys(c,te,xr,an,!1,!0,Ft,ei),mn={nodePos:bi.pos,detachedCommentEndPos:e.last(an).end})}}return mn;function jl(Y_){return ue(c,Y_.pos)}}e.emitDetachedComments=Ku;function Np(c,te,xr,ei,bi,Ft){if(c.charCodeAt(ei+1)===42)for(var ot=e.computeLineAndCharacterOfPosition(te,ei),xa=te.length,mn=void 0,an=ei,To=ot.line;an0){var ws=cs%Df(),nu=p_((cs-ws)/Df());for(xr.rawWrite(nu);ws;)xr.rawWrite(" "),ws--}else xr.rawWrite("")}Pp(c,bi,xr,Ft,an,Hn),an=Hn}else xr.writeComment(c.substring(ei,bi))}e.writeCommentRange=Np;function Pp(c,te,xr,ei,bi,Ft){var ot=Math.min(te,Ft-1),xa=e.trimString(c.substring(bi,ot));xa?(xr.writeComment(xa),ot!==te&&xr.writeLine()):xr.rawWrite(ei)}function nc(c,te,xr){for(var ei=0;te=0&&c.kind<=160?0:(c.modifierFlagsCache&536870912||(c.modifierFlagsCache=Ef(c)|536870912),te&&!(c.modifierFlagsCache&4096)&&(xr||Ct(c))&&c.parent&&(c.modifierFlagsCache|=rs(c)|4096),c.modifierFlagsCache&-536875009)}function xf(c){return tf(c,!0)}e.getEffectiveModifierFlags=xf;function z_(c){return tf(c,!0,!0)}e.getEffectiveModifierFlagsAlwaysIncludeJSDoc=z_;function Oc(c){return tf(c,!1)}e.getSyntacticModifierFlags=Oc;function rs(c){var te=0;return!!c.parent&&!e.isParameter(c)&&(Ct(c)&&(e.getJSDocPublicTagNoCache(c)&&(te|=4),e.getJSDocPrivateTagNoCache(c)&&(te|=8),e.getJSDocProtectedTagNoCache(c)&&(te|=16),e.getJSDocReadonlyTagNoCache(c)&&(te|=64),e.getJSDocOverrideTagNoCache(c)&&(te|=16384)),e.getJSDocDeprecatedTagNoCache(c)&&(te|=8192)),te}function Op(c){return Ef(c)|rs(c)}e.getEffectiveModifierFlagsNoCache=Op;function Ef(c){var te=Fl(c.modifiers);return(c.flags&4||c.kind===79&&c.isInJSDocNamespace)&&(te|=1),te}e.getSyntacticModifierFlagsNoCache=Ef;function Fl(c){var te=0;if(c)for(var xr=0,ei=c;xr=63&&c<=78}e.isAssignmentOperator=Cf;function W_(c){var te=g_(c);return te&&!te.isImplements?te.class:void 0}e.tryGetClassExtendingExpressionWithTypeArguments=W_;function g_(c){return e.isExpressionWithTypeArguments(c)&&e.isHeritageClause(c.parent)&&e.isClassLike(c.parent.parent)?{class:c.parent.parent,isImplements:c.parent.token===117}:void 0}e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=g_;function dl(c,te){return e.isBinaryExpression(c)&&(te?c.operatorToken.kind===63:Cf(c.operatorToken.kind))&&e.isLeftHandSideExpression(c.left)}e.isAssignmentExpression=dl;function gl(c){return dl(c.parent)&&c.parent.left===c}e.isLeftHandSideOfAssignment=gl;function Vf(c){if(dl(c,!0)){var te=c.left.kind;return te===205||te===204}return!1}e.isDestructuringAssignment=Vf;function Fc(c){return W_(c)!==void 0}e.isExpressionWithTypeArgumentsInClassExtendsClause=Fc;function Hu(c){return c.kind===79||Ml(c)}e.isEntityNameExpression=Hu;function af(c){switch(c.kind){case 79:return c;case 161:do c=c.left;while(c.kind!==79);return c;case 206:do c=c.expression;while(c.kind!==79);return c}}e.getFirstIdentifier=af;function tn(c){return c.kind===79||c.kind===108||c.kind===106||c.kind===231||c.kind===206&&tn(c.expression)||c.kind===212&&tn(c.expression)}e.isDottedName=tn;function Ml(c){return e.isPropertyAccessExpression(c)&&e.isIdentifier(c.name)&&Hu(c.expression)}e.isPropertyAccessEntityNameExpression=Ml;function Ot(c){if(e.isPropertyAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0)return te+"."+Xe(c.name)}else if(e.isElementAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0&&e.isPropertyName(c.argumentExpression))return te+"."+u_(c.argumentExpression)}else if(e.isIdentifier(c))return e.unescapeLeadingUnderscores(c.escapedText)}e.tryGetPropertyAccessOrIdentifierToString=Ot;function nf(c){return ua(c)&&Ao(c)==="prototype"}e.isPrototypeAccess=nf;function q_(c){return c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c}e.isRightSideOfQualifiedNameOrPropertyAccess=q_;function Kf(c){return e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isElementAccessExpression(c.parent)&&c.parent.argumentExpression===c}e.isRightSideOfAccessExpression=Kf;function Rp(c){return e.isQualifiedName(c.parent)&&c.parent.right===c||e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isJSDocMemberName(c.parent)&&c.parent.right===c}e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName=Rp;function yd(c){return c.kind===205&&c.properties.length===0}e.isEmptyObjectLiteral=yd;function m_(c){return c.kind===204&&c.elements.length===0}e.isEmptyArrayLiteral=m_;function Ll(c){if(!(!hd(c)||!c.declarations))for(var te=0,xr=c.declarations;te0&&gc(c.declarations[0],512)}function v_(c){return e.find(oh,function(te){return e.fileExtensionIs(c,te)})}e.tryExtractTSExtension=v_;function Bp(c){for(var te=[],xr=c.length,ei=0;ei>6|192),te.push(bi&63|128)):bi<65536?(te.push(bi>>12|224),te.push(bi>>6&63|128),te.push(bi&63|128)):bi<131072?(te.push(bi>>18|240),te.push(bi>>12&63|128),te.push(bi>>6&63|128),te.push(bi&63|128)):e.Debug.assert(!1,"Unexpected code point")}return te}var Xu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Xc(c){for(var te="",xr=Bp(c),ei=0,bi=xr.length,Ft,ot,xa,mn;ei>2,ot=(xr[ei]&3)<<4|xr[ei+1]>>4,xa=(xr[ei+1]&15)<<2|xr[ei+2]>>6,mn=xr[ei+2]&63,ei+1>=bi?xa=mn=64:ei+2>=bi&&(mn=64),te+=Xu.charAt(Ft)+Xu.charAt(ot)+Xu.charAt(xa)+Xu.charAt(mn),ei+=3;return te}e.convertToBase64=Xc;function Gf(c){for(var te="",xr=0,ei=c.length;xr>4&3,To=(ot&15)<<4|xa>>2&15,Hn=(xa&3)<<6|mn&63;To===0&&xa!==0?ei.push(an):Hn===0&&mn!==0?ei.push(an,To):ei.push(an,To,Hn),bi+=4}return Gf(ei)}e.base64decode=wu;function V_(c,te){try{var xr=te.readFile(c);if(!xr)return{};var ei=e.parseConfigFileTextToJson(c,xr);return ei.error?{}:ei.config}catch{return{}}}e.readJson=V_;function yu(c,te){return!te.directoryExists||te.directoryExists(c)}e.directoryProbablyExists=yu;var v=`\r +`,sr=` +`;function fi(c,te){switch(c.newLine){case 0:return v;case 1:return sr}return te?te():e.sys?e.sys.newLine:v}e.getNewLineCharacter=fi;function zi(c,te){return te===void 0&&(te=c),e.Debug.assert(te>=c||te===-1),{pos:c,end:te}}e.createRange=zi;function Sa(c,te){return zi(c.pos,te)}e.moveRangeEnd=Sa;function da(c,te){return zi(te,c.end)}e.moveRangePos=da;function Ha(c){return c.decorators&&c.decorators.length>0?da(c,c.decorators.end):c}e.moveRangePastDecorators=Ha;function ta(c){return c.modifiers&&c.modifiers.length>0?da(c,c.modifiers.end):Ha(c)}e.moveRangePastModifiers=ta;function nn(c){return c.pos===c.end}e.isCollapsedRange=nn;function Wo(c,te){return zi(c,c+e.tokenToString(te).length)}e.createTokenRange=Wo;function Lo(c,te){return is(c,c,te)}e.rangeIsOnSingleLine=Lo;function oc(c,te,xr){return cf(uf(c,xr,!1),uf(te,xr,!1),xr)}e.rangeStartPositionsAreOnSameLine=oc;function uu(c,te,xr){return cf(c.end,te.end,xr)}e.rangeEndPositionsAreOnSameLine=uu;function is(c,te,xr){return cf(uf(c,xr,!1),te.end,xr)}e.rangeStartIsOnSameLineAsRangeEnd=is;function au(c,te,xr){return cf(c.end,uf(te,xr,!1),xr)}e.rangeEndIsOnSameLineAsRangeStart=au;function Ou(c,te,xr,ei){var bi=uf(te,xr,ei);return e.getLinesBetweenPositions(xr,c.end,bi)}e.getLinesBetweenRangeEndAndRangeStart=Ou;function sf(c,te,xr){return e.getLinesBetweenPositions(xr,c.end,te.end)}e.getLinesBetweenRangeEndPositions=sf;function lu(c,te){return!cf(c.pos,c.end,te)}e.isNodeArrayMultiLine=lu;function cf(c,te,xr){return e.getLinesBetweenPositions(xr,c,te)===0}e.positionsAreOnSameLine=cf;function uf(c,te,xr){return Jl(c.pos)?-1:e.skipTrivia(te.text,c.pos,!1,xr)}e.getStartPositionOfRange=uf;function K_(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei),Ft=Hf(bi,te,xr);return e.getLinesBetweenPositions(xr,Ft!=null?Ft:te,bi)}e.getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter=K_;function Jp(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei);return e.getLinesBetweenPositions(xr,c,Math.min(te,bi))}e.getLinesBetweenPositionAndNextNonWhitespaceCharacter=Jp;function Hf(c,te,xr){for(te===void 0&&(te=0);c-- >te;)if(!e.isWhiteSpaceLike(xr.text.charCodeAt(c)))return c}function kc(c){var te=e.getParseTreeNode(c);if(te)switch(te.parent.kind){case 260:case 261:return te===te.parent.name}return!1}e.isDeclarationNameOfEnumOrNamespace=kc;function G_(c){return e.filter(c.declarations,Le)}e.getInitializedVariables=G_;function Le(c){return c.initializer!==void 0}function Nr(c){return c.watch&&c.hasOwnProperty("watch")}e.isWatchSet=Nr;function ri(c){c.close()}e.closeFileWatcher=ri;function di(c){return c.flags&33554432?c.checkFlags:0}e.getCheckFlags=di;function Mi(c,te){if(te===void 0&&(te=!1),c.valueDeclaration){var xr=te&&c.declarations&&e.find(c.declarations,function(xa){return xa.kind===173})||c.valueDeclaration,ei=e.getCombinedModifierFlags(xr);return c.parent&&c.parent.flags&32?ei:ei&-29}if(di(c)&6){var bi=c.checkFlags,Ft=bi&1024?8:bi&256?4:16,ot=bi&2048?32:0;return Ft|ot}return c.flags&4194304?36:0}e.getDeclarationModifierFlagsFromSymbol=Mi;function st(c,te){return c.flags&2097152?te.getAliasedSymbol(c):c}e.skipAlias=st;function ra(c){return c.exportSymbol?c.exportSymbol.flags|c.flags:c.flags}e.getCombinedLocalAndExportSymbolFlags=ra;function Ta(c){return In(c)===1}e.isWriteOnlyAccess=Ta;function ha(c){return In(c)!==0}e.isWriteAccess=ha;var Na;(function(c){c[c.Read=0]="Read",c[c.Write=1]="Write",c[c.ReadWrite=2]="ReadWrite"})(Na||(Na={}));function In(c){var te=c.parent;if(!te)return 0;switch(te.kind){case 212:return In(te);case 220:case 219:var xr=te.operator;return xr===45||xr===46?xa():0;case 221:var ei=te,bi=ei.left,Ft=ei.operatorToken;return bi===c&&Cf(Ft.kind)?Ft.kind===63?1:xa():0;case 206:return te.name!==c?0:In(te);case 296:{var ot=In(te.parent);return c===te.name?qo(ot):ot}case 297:return c===te.objectAssignmentInitializer?0:In(te.parent);case 204:return In(te);default:return 0}function xa(){return te.parent&&No(te.parent).kind===238?1:2}}function qo(c){switch(c){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(c)}}function co(c,te){if(!c||!te||Object.keys(c).length!==Object.keys(te).length)return!1;for(var xr in c)if(typeof c[xr]=="object"){if(!co(c[xr],te[xr]))return!1}else if(typeof c[xr]!="function"&&c[xr]!==te[xr])return!1;return!0}e.compareDataObjects=co;function ts(c,te){c.forEach(te),c.clear()}e.clearMap=ts;function vs(c,te,xr){var ei=xr.onDeleteValue,bi=xr.onExistingValue;c.forEach(function(Ft,ot){var xa=te.get(ot);xa===void 0?(c.delete(ot),ei(Ft,ot)):bi&&bi(Ft,xa,ot)})}e.mutateMapSkippingNewValues=vs;function Ac(c,te,xr){vs(c,te,xr);var ei=xr.createNewValue;te.forEach(function(bi,Ft){c.has(Ft)||c.set(Ft,ei(Ft,bi))})}e.mutateMap=Ac;function Is(c){if(c.flags&32){var te=Qu(c);return!!te&&gc(te,128)}return!1}e.isAbstractConstructorSymbol=Is;function Qu(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(e.isClassLike)}e.getClassLikeDeclarationOfSymbol=Qu;function sc(c){return c.flags&3899393?c.objectFlags:0}e.getObjectFlags=sc;function bc(c,te){return te.getSignaturesOfType(c,0).length!==0||te.getSignaturesOfType(c,1).length!==0}e.typeHasCallOrConstructSignatures=bc;function Mc(c,te){return!!e.forEachAncestorDirectory(c,function(xr){return te(xr)?!0:void 0})}e.forSomeAncestorDirectory=Mc;function Yu(c){return!!c&&!!c.declarations&&!!c.declarations[0]&&e.isNamespaceExportDeclaration(c.declarations[0])}e.isUMDExportSymbol=Yu;function Rl(c){var te=c.moduleSpecifier;return e.isStringLiteral(te)?te.text:Ee(te)}e.showModuleSpecifier=Rl;function Lc(c){var te;return e.forEachChild(c,function(xr){j(xr)&&(te=xr)},function(xr){for(var ei=xr.length-1;ei>=0;ei--)if(j(xr[ei])){te=xr[ei];break}}),te}e.getLastChild=Lc;function _(c,te,xr){return xr===void 0&&(xr=!0),c.has(te)?!1:(c.set(te,xr),!0)}e.addToSeen=_;function W(c){return e.isClassLike(c)||e.isInterfaceDeclaration(c)||e.isTypeLiteralNode(c)}e.isObjectTypeDeclaration=W;function Te(c){return c>=177&&c<=200||c===130||c===155||c===147||c===158||c===148||c===133||c===150||c===151||c===114||c===153||c===143||c===228||c===312||c===313||c===314||c===315||c===316||c===317||c===318}e.isTypeNodeKind=Te;function cr(c){return c.kind===206||c.kind===207}e.isAccessExpression=cr;function ni(c){return c.kind===206?c.name:(e.Debug.assert(c.kind===207),c.argumentExpression)}e.getNameOfAccessExpression=ni;function rt(c){switch(c.kind){case"text":case"internal":return!0;default:return!1}}e.isBundleFileTextLike=rt;function yt(c){return c.kind===269||c.kind===273}e.isNamedImportsOrExports=yt;function Xa(c){for(;cr(c);)c=c.expression;return c}e.getLeftmostAccessExpression=Xa;function vo(c,te){if(cr(c.parent)&&Kf(c))return xr(c.parent);function xr(ei){if(ei.kind===206){var bi=te(ei.name);if(bi!==void 0)return bi}else if(ei.kind===207)if(e.isIdentifier(ei.argumentExpression)||e.isStringLiteralLike(ei.argumentExpression)){var bi=te(ei.argumentExpression);if(bi!==void 0)return bi}else return;if(cr(ei.expression))return xr(ei.expression);if(e.isIdentifier(ei.expression))return te(ei.expression)}}e.forEachNameInAccessChainWalkingLeft=vo;function Vs(c,te){for(;;){switch(c.kind){case 220:c=c.operand;continue;case 221:c=c.left;continue;case 222:c=c.condition;continue;case 210:c=c.tag;continue;case 208:if(te)return c;case 229:case 207:case 206:case 230:case 350:c=c.expression;continue}return c}}e.getLeftmostExpression=Vs;function H_(c,te){this.flags=c,this.escapedName=te,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function y_(c,te){this.flags=te,(e.Debug.isDebugging||e.tracing)&&(this.checker=c)}function Dd(c,te){this.flags=te,e.Debug.isDebugging&&(this.checker=c)}function jp(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function lg(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0}function Om(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.flowNode=void 0}function Fm(c,te,xr){this.fileName=c,this.text=te,this.skipTrivia=xr||function(ei){return ei}}e.objectAllocator={getNodeConstructor:function(){return jp},getTokenConstructor:function(){return lg},getIdentifierConstructor:function(){return Om},getPrivateIdentifierConstructor:function(){return jp},getSourceFileConstructor:function(){return jp},getSymbolConstructor:function(){return H_},getTypeConstructor:function(){return y_},getSignatureConstructor:function(){return Dd},getSourceMapSourceConstructor:function(){return Fm}};function Vg(c){Object.assign(e.objectAllocator,c)}e.setObjectAllocator=Vg;function Jt(c,te,xr){return xr===void 0&&(xr=0),c.replace(/{(\d+)}/g,function(ei,bi){return""+e.Debug.checkDefined(te[+bi+xr])})}e.formatStringFromArgs=Jt;var ml;function Xf(c){ml=c}e.setLocalizedDiagnosticMessages=Xf;function bd(c){!ml&&c&&(ml=c())}e.maybeSetLocalizedDiagnosticMessages=bd;function lf(c){return ml&&ml[c.key]||c.message}e.getLocaleSpecificMessage=lf;function Kg(c,te,xr,ei){zr(void 0,te,xr);var bi=lf(ei);return arguments.length>4&&(bi=Jt(bi,arguments,4)),{file:void 0,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,fileName:c}}e.createDetachedDiagnostic=Kg;function kf(c){return c.file===void 0&&c.start!==void 0&&c.length!==void 0&&typeof c.fileName=="string"}function Gg(c,te){var xr=te.fileName||"",ei=te.text.length;e.Debug.assertEqual(c.fileName,xr),e.Debug.assertLessThanOrEqual(c.start,ei),e.Debug.assertLessThanOrEqual(c.start+c.length,ei);var bi={file:te,start:c.start,length:c.length,messageText:c.messageText,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary};if(c.relatedInformation){bi.relatedInformation=[];for(var Ft=0,ot=c.relatedInformation;Ft4&&(bi=Jt(bi,arguments,4)),{file:c,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,reportsDeprecated:ei.reportsDeprecated}}e.createFileDiagnostic=Hg;function Wd(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),xr}e.formatMessage=Wd;function qd(c){var te=lf(c);return arguments.length>1&&(te=Jt(te,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:te,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary,reportsDeprecated:c.reportsDeprecated}}e.createCompilerDiagnostic=qd;function fg(c,te){return{file:void 0,start:void 0,length:void 0,code:c.code,category:c.category,messageText:c.next?c:c.messageText,relatedInformation:te}}e.createCompilerDiagnosticFromMessageChain=fg;function Mm(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),{messageText:xr,category:te.category,code:te.code,next:c===void 0||Array.isArray(c)?c:[c]}}e.chainDiagnosticMessages=Mm;function Xg(c,te){for(var xr=c;xr.next;)xr=xr.next[0];xr.next=[te]}e.concatenateDiagnosticMessageChains=Xg;function Bl(c){return c.file?c.file.path:void 0}function Qg(c,te){return _g(c,te)||Qc(c,te)||0}e.compareDiagnostics=Qg;function _g(c,te){return e.compareStringsCaseSensitive(Bl(c),Bl(te))||e.compareValues(c.start,te.start)||e.compareValues(c.length,te.length)||e.compareValues(c.code,te.code)||Lm(c.messageText,te.messageText)||0}e.compareDiagnosticsSkipRelatedInformation=_g;function Qc(c,te){return!c.relatedInformation&&!te.relatedInformation?0:c.relatedInformation&&te.relatedInformation?e.compareValues(c.relatedInformation.length,te.relatedInformation.length)||e.forEach(c.relatedInformation,function(xr,ei){var bi=te.relatedInformation[ei];return Qg(xr,bi)})||0:c.relatedInformation?-1:1}function Lm(c,te){if(typeof c=="string"&&typeof te=="string")return e.compareStringsCaseSensitive(c,te);if(typeof c=="string")return-1;if(typeof te=="string")return 1;var xr=e.compareStringsCaseSensitive(c.messageText,te.messageText);if(xr)return xr;if(!c.next&&!te.next)return 0;if(!c.next)return-1;if(!te.next)return 1;for(var ei=Math.min(c.next.length,te.next.length),bi=0;bite.next.length?1:0}function Up(c){return c===4||c===2||c===1||c===6?1:0}e.getLanguageVariant=Up;function Rm(c){if(!!(c.transformFlags&2))return e.isJsxOpeningLikeElement(c)||e.isJsxFragment(c)?c:e.forEachChild(c,Rm)}function ff(c){return c.isDeclarationFile?void 0:Rm(c)}function It(c){return c.impliedNodeFormat===e.ModuleKind.ESNext&&!c.isDeclarationFile?!0:void 0}function Ma(c){switch(ro(c)){case e.ModuleDetectionKind.Force:return function(Ft){Ft.externalModuleIndicator=!Ft.isDeclarationFile||e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Legacy:return function(Ft){Ft.externalModuleIndicator=e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Auto:var te=[e.isFileProbablyExternalModule];(c.jsx===4||c.jsx===5)&&te.push(ff);var xr=Ja(c);(xr===e.ModuleKind.Node16||xr===e.ModuleKind.NodeNext)&&te.push(It);var ei=e.or.apply(void 0,te),bi=function(Ft){return void(Ft.externalModuleIndicator=ei(Ft))};return bi}}e.getSetExternalModuleIndicator=Ma;function aa(c){return c.target||c.module===e.ModuleKind.Node16&&9||c.module===e.ModuleKind.NodeNext&&99||0}e.getEmitScriptTarget=aa;function Ja(c){return typeof c.module=="number"?c.module:aa(c)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}e.getEmitModuleKind=Ja;function _n(c){var te=c.moduleResolution;if(te===void 0)switch(Ja(c)){case e.ModuleKind.CommonJS:te=e.ModuleResolutionKind.NodeJs;break;case e.ModuleKind.Node16:te=e.ModuleResolutionKind.Node16;break;case e.ModuleKind.NodeNext:te=e.ModuleResolutionKind.NodeNext;break;default:te=e.ModuleResolutionKind.Classic;break}return te}e.getEmitModuleResolutionKind=_n;function ro(c){return c.moduleDetection||e.ModuleDetectionKind.Auto}e.getEmitModuleDetectionKind=ro;function as(c){switch(Ja(c)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0;default:return!1}}e.hasJsonModuleEmitEnabled=as;function cc(c){return c.allowUnreachableCode===!1}e.unreachableCodeIsError=cc;function Sc(c){return c.allowUnusedLabels===!1}e.unusedLabelIsError=Sc;function hu(c){return!!(go(c)&&c.declarationMap)}e.getAreDeclarationMapsEnabled=hu;function Js(c){if(c.esModuleInterop!==void 0)return c.esModuleInterop;switch(Ja(c)){case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0}}e.getESModuleInterop=Js;function Qf(c){var te=Ja(c);return c.allowSyntheticDefaultImports!==void 0?c.allowSyntheticDefaultImports:Js(c)||te===e.ModuleKind.System}e.getAllowSyntheticDefaultImports=Qf;function go(c){return!!(c.declaration||c.composite)}e.getEmitDeclarations=go;function Vd(c){return!!(c.preserveConstEnums||c.isolatedModules)}e.shouldPreserveConstEnums=Vd;function X_(c){return!!(c.incremental||c.composite)}e.isIncrementalCompilation=X_;function Sd(c,te){return c[te]===void 0?!!c.strict:!!c[te]}e.getStrictOptionValue=Sd;function Yg(c){return c.allowJs===void 0?!!c.checkJs:c.allowJs}e.getAllowJSCompilerOption=Yg;function N1(c){return c.useDefineForClassFields===void 0?aa(c)>=9:c.useDefineForClassFields}e.getUseDefineForClassFields=N1;function P1(c,te){return m(te,c,e.semanticDiagnosticsOptionDeclarations)}e.compilerOptionsAffectSemanticDiagnostics=P1;function Yy(c,te){return m(te,c,e.affectsEmitOptionDeclarations)}e.compilerOptionsAffectEmit=Yy;function Bm(c,te){return te.strictFlag?Sd(c,te.name):c[te.name]}e.getCompilerOptionValue=Bm;function $y(c){var te=c.jsx;return te===2||te===4||te===5}e.getJSXTransformEnabled=$y;function Lv(c,te){var xr=te==null?void 0:te.pragmas.get("jsximportsource"),ei=e.isArray(xr)?xr[xr.length-1]:xr;return c.jsx===4||c.jsx===5||c.jsxImportSource||ei?(ei==null?void 0:ei.arguments.factory)||c.jsxImportSource||"react":void 0}e.getJSXImplicitImportBase=Lv;function _f(c,te){return c?"".concat(c,"/").concat(te.jsx===5?"jsx-dev-runtime":"jsx-runtime"):void 0}e.getJSXRuntimeImport=_f;function Rv(c){for(var te=!1,xr=0;xr=2&&Ft.length>=2&&!Td(bi[bi.length-2],ei)&&!Td(Ft[Ft.length-2],ei)&&ei(bi[bi.length-1])===ei(Ft[Ft.length-1]);)bi.pop(),Ft.pop(),ot=!0;return ot?[e.getPathFromPathComponents(bi),e.getPathFromPathComponents(Ft)]:void 0}function Td(c,te){return c!==void 0&&(te(c)==="node_modules"||e.startsWith(c,"@"))}function I1(c){return e.isAnyDirectorySeparator(c.charCodeAt(0))?c.slice(1):void 0}function pf(c,te,xr){var ei=e.tryRemovePrefix(c,te,xr);return ei===void 0?void 0:I1(ei)}e.tryRemoveDirectoryPrefix=pf;var Bv=/[^\w\s\/]/g;function Zy(c){return c.replace(Bv,Jv)}e.regExpEscape=Zy;function Jv(c){return"\\"+c}var Nf=[42,63];e.commonPackageFolders=["node_modules","bower_components","jspm_packages"];var dg="(?!(".concat(e.commonPackageFolders.join("|"),")(/|$))"),Rc={singleAsteriskRegexFragment:"([^./]|(\\.(?!min\\.js$))?)*",doubleAsteriskRegexFragment:"(/".concat(dg,"[^/.][^/]*)*?"),replaceWildcardCharacter:function(c){return Jm(c,Rc.singleAsteriskRegexFragment)}},jv={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:"(/".concat(dg,"[^/.][^/]*)*?"),replaceWildcardCharacter:function(c){return Jm(c,jv.singleAsteriskRegexFragment)}},eh={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:"(/.+?)?",replaceWildcardCharacter:function(c){return Jm(c,eh.singleAsteriskRegexFragment)}},rh={files:Rc,directories:jv,exclude:eh};function Fu(c,te,xr){var ei=xd(c,te,xr);if(!(!ei||!ei.length)){var bi=ei.map(function(ot){return"(".concat(ot,")")}).join("|"),Ft=xr==="exclude"?"($|/)":"$";return"^(".concat(bi,")").concat(Ft)}}e.getRegularExpressionForWildcard=Fu;function xd(c,te,xr){if(!(c===void 0||c.length===0))return e.flatMap(c,function(ei){return ei&&ih(ei,te,xr,rh[xr])})}e.getRegularExpressionsForWildcards=xd;function Uv(c){return!/[.*?]/.test(c)}e.isImplicitGlob=Uv;function w1(c,te,xr){var ei=c&&ih(c,te,xr,rh[xr]);return ei&&"^(".concat(ei,")").concat(xr==="exclude"?"($|/)":"$")}e.getPatternFromSpec=w1;function ih(c,te,xr,ei){var bi=ei.singleAsteriskRegexFragment,Ft=ei.doubleAsteriskRegexFragment,ot=ei.replaceWildcardCharacter,xa="",mn=!1,an=e.getNormalizedPathComponents(c,te),To=e.last(an);if(!(xr!=="exclude"&&To==="**")){an[0]=e.removeTrailingDirectorySeparator(an[0]),Uv(To)&&an.push("**","*");for(var Hn=0,ss=0,cs=an;ss0;)xa+=")?",Hn--;return xa}}function Jm(c,te){return c==="*"?te:c==="?"?"[^/]":"\\"+c}function th(c,te,xr,ei,bi){c=e.normalizePath(c),bi=e.normalizePath(bi);var Ft=e.combinePaths(bi,c);return{includeFilePatterns:e.map(xd(xr,Ft,"files"),function(ot){return"^".concat(ot,"$")}),includeFilePattern:Fu(xr,Ft,"files"),includeDirectoryPattern:Fu(xr,Ft,"directories"),excludePattern:Fu(te,Ft,"exclude"),basePaths:zv(c,xr,ei)}}e.getFileMatcherPatterns=th;function gg(c,te){return new RegExp(c,te?"":"i")}e.getRegexFromPattern=gg;function O1(c,te,xr,ei,bi,Ft,ot,xa,mn){c=e.normalizePath(c),Ft=e.normalizePath(Ft);for(var an=th(c,xr,ei,bi,Ft),To=an.includeFilePatterns&&an.includeFilePatterns.map(function(b_){return gg(b_,bi)}),Hn=an.includeDirectoryPattern&&gg(an.includeDirectoryPattern,bi),ss=an.excludePattern&&gg(an.excludePattern,bi),cs=To?To.map(function(){return[]}):[[]],ws=new e.Map,nu=e.createGetCanonicalFileName(bi),Xo=0,jl=an.basePaths;Xo=0)}e.positionIsSynthesized=Jl;function vl(c){return c===".ts"||c===".tsx"||c===".d.ts"||c===".cts"||c===".mts"||c===".d.mts"||c===".d.cts"}e.extensionIsTS=vl;function _h(c){return vl(c)||c===".json"}e.resolutionExtensionIsTSOrJson=_h;function mg(c){var te=Lu(c);return te!==void 0?te:e.Debug.fail("File ".concat(c," has unknown extension."))}e.extensionFromPath=mg;function Ed(c){return Lu(c)!==void 0}e.isAnySupportedFileExtension=Ed;function Lu(c){return e.find(Kd,function(te){return e.fileExtensionIs(c,te)})}e.tryGetExtensionFromPath=Lu;function ph(c,te){return c.checkJsDirective?c.checkJsDirective.enabled:te.checkJs}e.isCheckJsEnabledForFile=ph,e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray};function qv(c,te){for(var xr=[],ei=0,bi=c;eiei&&(ei=Ft)}return{min:xr,max:ei}}e.minAndMax=Ru;function Pf(c){return{pos:Fe(c),end:c.end}}e.rangeOfNode=Pf;function h_(c,te){var xr=te.pos-1,ei=e.skipTrivia(c.text,te.end)+1;return{pos:xr,end:ei}}e.rangeOfTypeParameters=h_;function em(c,te,xr){return te.skipLibCheck&&c.isDeclarationFile||te.skipDefaultLibCheck&&c.hasNoDefaultLib||xr.isSourceOfProjectReferenceRedirect(c.fileName)}e.skipTypeChecking=em;function uo(c,te){return c===te||typeof c=="object"&&c!==null&&typeof te=="object"&&te!==null&&e.equalOwnProperties(c,te,uo)}e.isJsonEqual=uo;function U1(c){var te;switch(c.charCodeAt(1)){case 98:case 66:te=1;break;case 111:case 79:te=3;break;case 120:case 88:te=4;break;default:for(var xr=c.length-1,ei=0;c.charCodeAt(ei)===48;)ei++;return c.slice(ei,xr)||"0"}for(var bi=2,Ft=c.length-1,ot=(Ft-bi)*te,xa=new Uint16Array((ot>>>4)+(ot&15?1:0)),mn=Ft-1,an=0;mn>=bi;mn--,an+=te){var To=an>>>4,Hn=c.charCodeAt(mn),ss=Hn<=57?Hn-48:10+Hn-(Hn<=70?65:97),cs=ss<<(an&15);xa[To]|=cs;var ws=cs>>>16;ws&&(xa[To+1]|=ws)}for(var nu="",Xo=xa.length-1,jl=!0;jl;){var Y_=0;jl=!1;for(var To=Xo;To>=0;To--){var Cd=Y_<<16|xa[To],b_=Cd/10|0;xa[To]=b_,Y_=Cd-b_*10,b_&&!jl&&(Xo=To,jl=!0)}nu=Y_+nu}return nu}e.parsePseudoBigInt=U1;function z1(c){var te=c.negative,xr=c.base10Value;return(te&&xr!=="0"?"-":"")+xr}e.pseudoBigIntToString=z1;function W1(c){return!!(c.flags&16777216)||S(c)||q1(c)||Tc(c)||!(Qe(c)||Q_(c))}e.isValidTypeOnlyAliasUseSite=W1;function Q_(c){return e.isIdentifier(c)&&e.isShorthandPropertyAssignment(c.parent)&&c.parent.name===c}function Tc(c){for(;c.kind===79||c.kind===206;)c=c.parent;if(c.kind!==162)return!1;if(gc(c.parent,128))return!0;var te=c.parent.parent.kind;return te===258||te===182}function q1(c){if(c.kind!==79)return!1;var te=e.findAncestor(c.parent,function(xr){switch(xr.kind){case 291:return!0;case 206:case 228:return!1;default:return"quit"}});return(te==null?void 0:te.token)===117||(te==null?void 0:te.parent.kind)===258}function Vv(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)}e.isIdentifierTypeReference=Vv;function V1(c,te){if(te===void 0&&(te=e.equateValues),c.length<2)return!0;for(var xr=c[0],ei=1,bi=c.length;ei=0?e.factory.createNumericLiteral(+c):e.factory.createStringLiteral(c,!!xr)}e.createPropertyNameNodeForIdentifierOrLiteral=$v;function Zv(c){return!!(c.flags&262144&&c.isThisType)}e.isThisTypeParameter=Zv;function bu(c){var te=0,xr=0,ei=0,bi=0,Ft;(function(an){an[an.BeforeNodeModules=0]="BeforeNodeModules",an[an.NodeModules=1]="NodeModules",an[an.Scope=2]="Scope",an[an.PackageContent=3]="PackageContent"})(Ft||(Ft={}));for(var ot=0,xa=0,mn=0;xa>=0;)switch(ot=xa,xa=c.indexOf("/",ot+1),mn){case 0:c.indexOf(e.nodeModulesPathPart,ot)===ot&&(te=ot,xr=xa,mn=1);break;case 1:case 2:mn===1&&c.charAt(ot+1)==="@"?mn=2:(ei=xa,mn=3);break;case 3:c.indexOf(e.nodeModulesPathPart,ot)===ot?mn=1:mn=3;break}return bi=ot,mn>1?{topLevelNodeModulesIndex:te,topLevelPackageNameIndex:xr,packageRootIndex:ei,fileNameIndex:bi}:void 0}e.getNodeModulePathParts=bu;function $1(c){var te;return c.kind===340?(te=c.typeExpression)===null||te===void 0?void 0:te.type:c.type}e.getParameterTypeNode=$1})(ke||(ke={}));var ke;(function(e){function a(){var C,w,B,E,Q;return{createBaseSourceFileNode:le,createBaseIdentifierNode:N,createBasePrivateIdentifierNode:p,createBaseTokenNode:m,createBaseNode:G};function le(oe){return new(Q||(Q=e.objectAllocator.getSourceFileConstructor()))(oe,-1,-1)}function N(oe){return new(B||(B=e.objectAllocator.getIdentifierConstructor()))(oe,-1,-1)}function p(oe){return new(E||(E=e.objectAllocator.getPrivateIdentifierConstructor()))(oe,-1,-1)}function m(oe){return new(w||(w=e.objectAllocator.getTokenConstructor()))(oe,-1,-1)}function G(oe){return new(C||(C=e.objectAllocator.getNodeConstructor()))(oe,-1,-1)}}e.createBaseNodeFactory=a})(ke||(ke={}));var ke;(function(e){function a(C){var w,B;return{getParenthesizeLeftSideOfBinaryForOperator:E,getParenthesizeRightSideOfBinaryForOperator:Q,parenthesizeLeftSideOfBinary:G,parenthesizeRightSideOfBinary:oe,parenthesizeExpressionOfComputedPropertyName:f,parenthesizeConditionOfConditionalExpression:T,parenthesizeBranchOfConditionalExpression:K,parenthesizeExpressionOfExportDefault:b,parenthesizeExpressionOfNew:se,parenthesizeLeftSideOfAccess:J,parenthesizeOperandOfPostfixUnary:ie,parenthesizeOperandOfPrefixUnary:R,parenthesizeExpressionsOfCommaDelimitedList:q,parenthesizeExpressionForDisallowedComma:O,parenthesizeExpressionOfExpressionStatement:ve,parenthesizeConciseBodyOfArrowFunction:ee,parenthesizeCheckTypeOfConditionalType:he,parenthesizeExtendsTypeOfConditionalType:F,parenthesizeConstituentTypesOfUnionType:X,parenthesizeConstituentTypeOfUnionType:x,parenthesizeConstituentTypesOfIntersectionType:A,parenthesizeConstituentTypeOfIntersectionType:$,parenthesizeOperandOfTypeOperator:y,parenthesizeOperandOfReadonlyTypeOperator:V,parenthesizeNonArrayTypeOfPostfixType:L,parenthesizeElementTypesOfTupleType:P,parenthesizeElementTypeOfTupleType:k,parenthesizeTypeOfOptionalType:U,parenthesizeTypeArguments:I,parenthesizeLeadingTypeArgument:j};function E(l){w||(w=new e.Map);var d=w.get(l);return d||(d=function(D){return G(l,D)},w.set(l,d)),d}function Q(l){B||(B=new e.Map);var d=B.get(l);return d||(d=function(D){return oe(l,void 0,D)},B.set(l,d)),d}function le(l,d,D,fe){var g=e.getOperatorPrecedence(221,l),ne=e.getOperatorAssociativity(221,l),ue=e.skipPartiallyEmittedExpressions(d);if(!D&&d.kind===214&&g>3)return!0;var We=e.getExpressionPrecedence(ue);switch(e.compareValues(We,g)){case-1:return!(!D&&ne===1&&d.kind===224);case 1:return!1;case 0:if(D)return ne===1;if(e.isBinaryExpression(ue)&&ue.operatorToken.kind===l){if(N(l))return!1;if(l===39){var Fe=fe?p(fe):0;if(e.isLiteralKind(Fe)&&Fe===p(ue))return!1}}var Z=e.getExpressionAssociativity(ue);return Z===0}}function N(l){return l===41||l===51||l===50||l===52}function p(l){if(l=e.skipPartiallyEmittedExpressions(l),e.isLiteralKind(l.kind))return l.kind;if(l.kind===221&&l.operatorToken.kind===39){if(l.cachedLiteralKind!==void 0)return l.cachedLiteralKind;var d=p(l.left),D=e.isLiteralKind(d)&&d===p(l.right)?d:0;return l.cachedLiteralKind=D,D}return 0}function m(l,d,D,fe){var g=e.skipPartiallyEmittedExpressions(d);return g.kind===212?d:le(l,d,D,fe)?C.createParenthesizedExpression(d):d}function G(l,d){return m(l,d,!0)}function oe(l,d,D){return m(l,D,!1,d)}function f(l){return e.isCommaSequence(l)?C.createParenthesizedExpression(l):l}function T(l){var d=e.getOperatorPrecedence(222,57),D=e.skipPartiallyEmittedExpressions(l),fe=e.getExpressionPrecedence(D);return e.compareValues(fe,d)!==1?C.createParenthesizedExpression(l):l}function K(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isCommaSequence(d)?C.createParenthesizedExpression(l):l}function b(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.isCommaSequence(d);if(!D)switch(e.getLeftmostExpression(d,!1).kind){case 226:case 213:D=!0}return D?C.createParenthesizedExpression(l):l}function se(l){var d=e.getLeftmostExpression(l,!0);switch(d.kind){case 208:return C.createParenthesizedExpression(l);case 209:return d.arguments?l:C.createParenthesizedExpression(l)}return J(l)}function J(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isLeftHandSideExpression(d)&&(d.kind!==209||d.arguments)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ie(l){return e.isLeftHandSideExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function R(l){return e.isUnaryExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function q(l){var d=e.sameMap(l,O);return e.setTextRange(C.createNodeArray(d,l.hasTrailingComma),l)}function O(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.getExpressionPrecedence(d),fe=e.getOperatorPrecedence(221,27);return D>fe?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ve(l){var d=e.skipPartiallyEmittedExpressions(l);if(e.isCallExpression(d)){var D=d.expression,fe=e.skipPartiallyEmittedExpressions(D).kind;if(fe===213||fe===214){var g=C.updateCallExpression(d,e.setTextRange(C.createParenthesizedExpression(D),D),d.typeArguments,d.arguments);return C.restoreOuterExpressions(l,g,8)}}var ne=e.getLeftmostExpression(d,!1).kind;return ne===205||ne===213?e.setTextRange(C.createParenthesizedExpression(l),l):l}function ee(l){return!e.isBlock(l)&&(e.isCommaSequence(l)||e.getLeftmostExpression(l,!1).kind===205)?e.setTextRange(C.createParenthesizedExpression(l),l):l}function he(l){switch(l.kind){case 179:case 180:case 189:return C.createParenthesizedType(l)}return l}function F(l){switch(l.kind){case 189:return C.createParenthesizedType(l)}return l}function x(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return he(l)}function X(l){return C.createNodeArray(e.sameMap(l,x))}function $(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return x(l)}function A(l){return C.createNodeArray(e.sameMap(l,$))}function y(l){switch(l.kind){case 188:return C.createParenthesizedType(l)}return $(l)}function V(l){switch(l.kind){case 193:return C.createParenthesizedType(l)}return y(l)}function L(l){switch(l.kind){case 190:case 193:case 181:return C.createParenthesizedType(l)}return y(l)}function P(l){return C.createNodeArray(e.sameMap(l,k))}function k(l){return Y(l)?C.createParenthesizedType(l):l}function Y(l){return e.isJSDocNullableType(l)?l.postfix:e.isNamedTupleMember(l)||e.isFunctionTypeNode(l)||e.isConstructorTypeNode(l)||e.isTypeOperatorNode(l)?Y(l.type):e.isConditionalTypeNode(l)?Y(l.falseType):e.isUnionTypeNode(l)||e.isIntersectionTypeNode(l)?Y(e.last(l.types)):e.isInferTypeNode(l)?!!l.typeParameter.constraint&&Y(l.typeParameter.constraint):!1}function U(l){return Y(l)?C.createParenthesizedType(l):L(l)}function j(l){return e.isFunctionOrConstructorTypeNode(l)&&l.typeParameters?C.createParenthesizedType(l):l}function H(l,d){return d===0?j(l):l}function I(l){if(e.some(l))return C.createNodeArray(e.sameMap(l,H))}}e.createParenthesizerRules=a,e.nullParenthesizerRules={getParenthesizeLeftSideOfBinaryForOperator:function(C){return e.identity},getParenthesizeRightSideOfBinaryForOperator:function(C){return e.identity},parenthesizeLeftSideOfBinary:function(C,w){return w},parenthesizeRightSideOfBinary:function(C,w,B){return B},parenthesizeExpressionOfComputedPropertyName:e.identity,parenthesizeConditionOfConditionalExpression:e.identity,parenthesizeBranchOfConditionalExpression:e.identity,parenthesizeExpressionOfExportDefault:e.identity,parenthesizeExpressionOfNew:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeLeftSideOfAccess:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPostfixUnary:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPrefixUnary:function(C){return e.cast(C,e.isUnaryExpression)},parenthesizeExpressionsOfCommaDelimitedList:function(C){return e.cast(C,e.isNodeArray)},parenthesizeExpressionForDisallowedComma:e.identity,parenthesizeExpressionOfExpressionStatement:e.identity,parenthesizeConciseBodyOfArrowFunction:e.identity,parenthesizeCheckTypeOfConditionalType:e.identity,parenthesizeExtendsTypeOfConditionalType:e.identity,parenthesizeConstituentTypesOfUnionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfUnionType:e.identity,parenthesizeConstituentTypesOfIntersectionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfIntersectionType:e.identity,parenthesizeOperandOfTypeOperator:e.identity,parenthesizeOperandOfReadonlyTypeOperator:e.identity,parenthesizeNonArrayTypeOfPostfixType:e.identity,parenthesizeElementTypesOfTupleType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeElementTypeOfTupleType:e.identity,parenthesizeTypeOfOptionalType:e.identity,parenthesizeTypeArguments:function(C){return C&&e.cast(C,e.isNodeArray)},parenthesizeLeadingTypeArgument:e.identity}})(ke||(ke={}));var ke;(function(e){function a(C){return{convertToFunctionBlock:w,convertToFunctionExpression:B,convertToArrayAssignmentElement:E,convertToObjectAssignmentElement:Q,convertToAssignmentPattern:le,convertToObjectAssignmentPattern:N,convertToArrayAssignmentPattern:p,convertToAssignmentElementTarget:m};function w(G,oe){if(e.isBlock(G))return G;var f=C.createReturnStatement(G);e.setTextRange(f,G);var T=C.createBlock([f],oe);return e.setTextRange(T,G),T}function B(G){if(!G.body)return e.Debug.fail("Cannot convert a FunctionDeclaration without a body");var oe=C.createFunctionExpression(G.modifiers,G.asteriskToken,G.name,G.typeParameters,G.parameters,G.type,G.body);return e.setOriginalNode(oe,G),e.setTextRange(oe,G),e.getStartsOnNewLine(G)&&e.setStartsOnNewLine(oe,!0),oe}function E(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadElement(G.name),G),G);var oe=m(G.name);return G.initializer?e.setOriginalNode(e.setTextRange(C.createAssignment(oe,G.initializer),G),G):oe}return e.cast(G,e.isExpression)}function Q(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadAssignment(G.name),G),G);if(G.propertyName){var oe=m(G.name);return e.setOriginalNode(e.setTextRange(C.createPropertyAssignment(G.propertyName,G.initializer?C.createAssignment(oe,G.initializer):oe),G),G)}return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createShorthandPropertyAssignment(G.name,G.initializer),G),G)}return e.cast(G,e.isObjectLiteralElementLike)}function le(G){switch(G.kind){case 202:case 204:return p(G);case 201:case 205:return N(G)}}function N(G){return e.isObjectBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createObjectLiteralExpression(e.map(G.elements,Q)),G),G):e.cast(G,e.isObjectLiteralExpression)}function p(G){return e.isArrayBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createArrayLiteralExpression(e.map(G.elements,E)),G),G):e.cast(G,e.isArrayLiteralExpression)}function m(G){return e.isBindingPattern(G)?le(G):e.cast(G,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}})(ke||(ke={}));var ke;(function(e){var a=0,C;(function(X){X[X.None=0]="None",X[X.NoParenthesizerRules=1]="NoParenthesizerRules",X[X.NoNodeConverters=2]="NoNodeConverters",X[X.NoIndentationOnFreshPropertyAccess=4]="NoIndentationOnFreshPropertyAccess",X[X.NoOriginalNode=8]="NoOriginalNode"})(C=e.NodeFactoryFlags||(e.NodeFactoryFlags={}));function w(X,$){var A=X&8?B:E,y=e.memoize(function(){return X&1?e.nullParenthesizerRules:e.createParenthesizerRules(g)}),V=e.memoize(function(){return X&2?e.nullNodeConverters:e.createNodeConverters(g)}),L=e.memoizeOne(function(_){return function(W,Te){return jr(W,_,Te)}}),P=e.memoizeOne(function(_){return function(W){return Pt(_,W)}}),k=e.memoizeOne(function(_){return function(W){return ua(W,_)}}),Y=e.memoizeOne(function(_){return function(){return Zl(_)}}),U=e.memoizeOne(function(_){return function(W){return kl(_,W)}}),j=e.memoizeOne(function(_){return function(W,Te){return zd(_,W,Te)}}),H=e.memoizeOne(function(_){return function(W,Te){return R_(_,W,Te)}}),I=e.memoizeOne(function(_){return function(W,Te){return __(_,W,Te)}}),l=e.memoizeOne(function(_){return function(W,Te){return Wf(_,W,Te)}}),d=e.memoizeOne(function(_){return function(W,Te,cr){return Sf(_,W,Te,cr)}}),D=e.memoizeOne(function(_){return function(W,Te,cr){return ll(_,W,Te,cr)}}),fe=e.memoizeOne(function(_){return function(W,Te,cr,ni){return J_(_,W,Te,cr,ni)}}),g={get parenthesizer(){return y()},get converters(){return V()},baseFactory:$,flags:X,createNodeArray:ne,createNumericLiteral:we,createBigIntLiteral:de,createStringLiteral:Ae,createStringLiteralFromNode:er,createRegularExpressionLiteral:ir,createLiteralLikeNode:Cr,createIdentifier:Er,updateIdentifier:Ne,createTempVariable:n,createLoopVariable:lr,createUniqueName:be,getGeneratedNameForNode:Ge,createPrivateIdentifier:ur,createToken:Ir,createSuper:wr,createThis:Ur,createNull:ii,createTrue:mi,createFalse:pe,createModifier:or,createModifiersFromModifierFlags:qr,createQualifiedName:si,updateQualifiedName:Di,createComputedPropertyName:wi,updateComputedPropertyName:Xi,createTypeParameterDeclaration:et,updateTypeParameterDeclaration:Gi,createParameterDeclaration:Wt,updateParameterDeclaration:Zt,createDecorator:_r,updateDecorator:pi,createPropertySignature:ae,updatePropertySignature:Xe,createPropertyDeclaration:Jr,updatePropertyDeclaration:ti,createMethodSignature:Ze,updateMethodSignature:Sr,createMethodDeclaration:zr,updateMethodDeclaration:Wr,createConstructorDeclaration:vr,updateConstructorDeclaration:mr,createGetAccessorDeclaration:Ar,updateGetAccessorDeclaration:Oe,createSetAccessorDeclaration:nr,updateSetAccessorDeclaration:Mr,createCallSignature:Pe,updateCallSignature:Ue,createConstructSignature:fr,updateConstructSignature:De,createIndexSignature:gr,updateIndexSignature:Vr,createClassStaticBlockDeclaration:Je,updateClassStaticBlockDeclaration:xe,createTemplateLiteralTypeSpan:Tr,updateTemplateLiteralTypeSpan:vi,createKeywordTypeNode:Ui,createTypePredicateNode:Yi,updateTypePredicateNode:Wi,createTypeReferenceNode:ct,updateTypeReferenceNode:Li,createFunctionTypeNode:nt,updateFunctionTypeNode:Mt,createConstructorTypeNode:xt,updateConstructorTypeNode:Rt,createTypeQueryNode:Fi,updateTypeQueryNode:ui,createTypeLiteralNode:Bt,updateTypeLiteralNode:wt,createArrayTypeNode:na,updateArrayTypeNode:Ai,createTupleTypeNode:Oi,updateTupleTypeNode:ji,createNamedTupleMember:Vi,updateNamedTupleMember:at,createOptionalTypeNode:At,updateOptionalTypeNode:ba,createRestTypeNode:$a,updateRestTypeNode:Qa,createUnionTypeNode:ka,updateUnionTypeNode:Ba,createIntersectionTypeNode:pn,updateIntersectionTypeNode:Cn,createConditionalTypeNode:Bi,updateConditionalTypeNode:kn,createInferTypeNode:xn,updateInferTypeNode:Kn,createImportTypeNode:Rn,updateImportTypeNode:Da,createParenthesizedType:bo,updateParenthesizedType:Ro,createThisTypeNode:En,createTypeOperatorNode:Wn,updateTypeOperatorNode:to,createIndexedAccessTypeNode:Co,updateIndexedAccessTypeNode:Ko,createMappedTypeNode:Oo,updateMappedTypeNode:no,createLiteralTypeNode:$o,updateLiteralTypeNode:Pr,createTemplateLiteralType:Pn,updateTemplateLiteralType:eo,createObjectBindingPattern:xi,updateObjectBindingPattern:St,createArrayBindingPattern:pa,updateArrayBindingPattern:dn,createBindingElement:Jn,updateBindingElement:Qe,createArrayLiteralExpression:S,updateArrayLiteralExpression:Ce,createObjectLiteralExpression:qe,updateObjectLiteralExpression:br,createPropertyAccessExpression:X&4?function(_,W){return e.setEmitFlags(Zr(_,W),131072)}:Zr,updatePropertyAccessExpression:Si,createPropertyAccessChain:X&4?function(_,W,Te){return e.setEmitFlags(Pi(_,W,Te),131072)}:Pi,updatePropertyAccessChain:Qi,createElementAccessExpression:Ct,updateElementAccessExpression:sa,createElementAccessChain:en,updateElementAccessChain:Wa,createCallExpression:qn,updateCallExpression:mo,createCallChain:So,updateCallChain:Go,createNewExpression:ys,updateNewExpression:Pc,createTaggedTemplateExpression:Vc,updateTaggedTemplateExpression:Kc,createTypeAssertion:Xs,updateTypeAssertion:pc,createParenthesizedExpression:hs,updateParenthesizedExpression:tc,createFunctionExpression:ps,updateFunctionExpression:Qs,createArrowFunction:js,updateArrowFunction:ds,createDeleteExpression:Ji,updateDeleteExpression:ce,createTypeOfExpression:Rr,updateTypeOfExpression:yi,createVoidExpression:qi,updateVoidExpression:je,createAwaitExpression:Hr,updateAwaitExpression:pt,createPrefixUnaryExpression:Pt,updatePrefixUnaryExpression:ga,createPostfixUnaryExpression:ua,updatePostfixUnaryExpression:Xn,createBinaryExpression:jr,updateBinaryExpression:xs,createConditionalExpression:Fo,updateConditionalExpression:ko,createTemplateExpression:Ao,updateTemplateExpression:Ms,createTemplateHead:su,createTemplateMiddle:tl,createTemplateTail:Zc,createNoSubstitutionTemplateLiteral:Rf,createTemplateLiteralLikeNode:xc,createYieldExpression:al,updateYieldExpression:Jo,createSpreadElement:eu,updateSpreadElement:Ws,createClassExpression:pu,updateClassExpression:Uu,createOmittedExpression:Ql,createExpressionWithTypeArguments:xl,updateExpressionWithTypeArguments:Ya,createAsExpression:du,updateAsExpression:vc,createNonNullExpression:Kr,updateNonNullExpression:_i,createNonNullChain:Ei,updateNonNullChain:tt,createMetaProperty:kt,updateMetaProperty:bt,createTemplateSpan:ia,updateTemplateSpan:Xt,createSemicolonClassElement:Za,createBlock:bn,updateBlock:_a,createVariableStatement:qa,updateVariableStatement:rn,createEmptyStatement:jn,createExpressionStatement:Mo,updateExpressionStatement:ho,createIfStatement:gs,updateIfStatement:Se,createDoStatement:hr,updateDoStatement:Or,createWhileStatement:ki,updateWhileStatement:dt,createForStatement:la,updateForStatement:wa,createForInStatement:On,updateForInStatement:No,createForOfStatement:jo,updateForOfStatement:po,createContinueStatement:Gn,updateContinueStatement:$n,createBreakStatement:Ho,updateBreakStatement:Zo,createReturnStatement:Es,updateReturnStatement:yc,createWithStatement:Xr,updateWithStatement:Ls,createSwitchStatement:Ic,updateSwitchStatement:zu,createLabeledStatement:vf,updateLabeledStatement:P_,createThrowStatement:El,updateThrowStatement:vp,createTryStatement:oo,updateTryStatement:I_,createDebuggerStatement:yp,createVariableDeclaration:Yl,updateVariableDeclaration:Bf,createVariableDeclarationList:Cl,updateVariableDeclarationList:c_,createFunctionDeclaration:hp,updateFunctionDeclaration:gu,createClassDeclaration:Dp,updateClassDeclaration:sd,createInterfaceDeclaration:Aa,updateInterfaceDeclaration:va,createTypeAliasDeclaration:Cu,updateTypeAliasDeclaration:qs,createEnumDeclaration:cd,updateEnumDeclaration:ns,createModuleDeclaration:nl,updateModuleDeclaration:hc,createModuleBlock:es,updateModuleBlock:u_,createCaseBlock:Jf,updateCaseBlock:w_,createNamespaceExportDeclaration:ud,updateNamespaceExportDeclaration:ku,createImportEqualsDeclaration:ld,updateImportEqualsDeclaration:fd,createImportDeclaration:bp,updateImportDeclaration:Sp,createImportClause:Tp,updateImportClause:_d,createAssertClause:jf,updateAssertClause:O_,createAssertEntry:F_,updateAssertEntry:pd,createImportTypeAssertionContainer:xp,updateImportTypeAssertionContainer:M_,createNamespaceImport:Ep,updateNamespaceImport:ol,createNamespaceExport:Au,updateNamespaceExport:ru,createNamedImports:yf,updateNamedImports:Cp,createImportSpecifier:dd,updateImportSpecifier:kp,createExportAssignment:mu,updateExportAssignment:gd,createExportDeclaration:hf,updateExportDeclaration:$l,createNamedExports:Uf,updateNamedExports:L_,createExportSpecifier:l_,updateExportSpecifier:f_,createMissingDeclaration:md,createExternalModuleReference:ks,updateExternalModuleReference:Wu,get createJSDocAllType(){return Y(312)},get createJSDocUnknownType(){return Y(313)},get createJSDocNonNullableType(){return H(315)},get updateJSDocNonNullableType(){return I(315)},get createJSDocNullableType(){return H(314)},get updateJSDocNullableType(){return I(314)},get createJSDocOptionalType(){return U(316)},get updateJSDocOptionalType(){return j(316)},get createJSDocVariadicType(){return U(318)},get updateJSDocVariadicType(){return j(318)},get createJSDocNamepathType(){return U(319)},get updateJSDocNamepathType(){return j(319)},createJSDocFunctionType:Al,updateJSDocFunctionType:wc,createJSDocTypeLiteral:qu,updateJSDocTypeLiteral:Vu,createJSDocTypeExpression:ef,updateJSDocTypeExpression:sl,createJSDocSignature:p_,updateJSDocSignature:Df,createJSDocTemplateTag:os,updateJSDocTemplateTag:Ps,createJSDocTypedefTag:d_,updateJSDocTypedefTag:Gc,createJSDocParameterTag:B_,updateJSDocParameterTag:vu,createJSDocPropertyTag:Gt,updateJSDocPropertyTag:As,createJSDocCallbackTag:vn,updateJSDocCallbackTag:Nl,createJSDocAugmentsTag:cl,updateJSDocAugmentsTag:rf,createJSDocImplementsTag:Ut,updateJSDocImplementsTag:Ap,createJSDocSeeTag:Ds,updateJSDocSeeTag:bf,createJSDocNameReference:bs,updateJSDocNameReference:Dc,createJSDocMemberName:Cc,updateJSDocMemberName:ac,createJSDocLink:Pl,updateJSDocLink:Il,createJSDocLinkCode:zf,updateJSDocLinkCode:ul,createJSDocLinkPlain:Nu,updateJSDocLinkPlain:Us,get createJSDocTypeTag(){return D(343)},get updateJSDocTypeTag(){return fe(343)},get createJSDocReturnTag(){return D(341)},get updateJSDocReturnTag(){return fe(341)},get createJSDocThisTag(){return D(342)},get updateJSDocThisTag(){return fe(342)},get createJSDocEnumTag(){return D(339)},get updateJSDocEnumTag(){return fe(339)},get createJSDocAuthorTag(){return l(330)},get updateJSDocAuthorTag(){return d(330)},get createJSDocClassTag(){return l(332)},get updateJSDocClassTag(){return d(332)},get createJSDocPublicTag(){return l(333)},get updateJSDocPublicTag(){return d(333)},get createJSDocPrivateTag(){return l(334)},get updateJSDocPrivateTag(){return d(334)},get createJSDocProtectedTag(){return l(335)},get updateJSDocProtectedTag(){return d(335)},get createJSDocReadonlyTag(){return l(336)},get updateJSDocReadonlyTag(){return d(336)},get createJSDocOverrideTag(){return l(337)},get updateJSDocOverrideTag(){return d(337)},get createJSDocDeprecatedTag(){return l(331)},get updateJSDocDeprecatedTag(){return d(331)},createJSDocUnknownTag:j_,updateJSDocUnknownTag:U_,createJSDocText:iu,updateJSDocText:vd,createJSDocComment:qf,updateJSDocComment:dc,createJsxElement:Pu,updateJsxElement:wl,createJsxSelfClosingElement:Iu,updateJsxSelfClosingElement:so,createJsxOpeningElement:Et,updateJsxOpeningElement:Ys,createJsxClosingElement:Ku,updateJsxClosingElement:Np,createJsxFragment:Pp,createJsxText:fl,updateJsxText:_l,createJsxOpeningFragment:cu,createJsxJsxClosingFragment:gc,updateJsxFragment:nc,createJsxAttribute:Tf,updateJsxAttribute:mc,createJsxAttributes:Ip,updateJsxAttributes:ms,createJsxSpreadAttribute:tu,updateJsxSpreadAttribute:wp,createJsxExpression:Hc,updateJsxExpression:Ol,createCaseClause:tf,updateCaseClause:xf,createDefaultClause:z_,updateDefaultClause:Oc,createHeritageClause:rs,updateHeritageClause:Op,createCatchClause:Ef,updateCatchClause:Fl,createPropertyAssignment:pl,updatePropertyAssignment:Mp,createShorthandPropertyAssignment:Gu,updateShorthandPropertyAssignment:Cf,createSpreadAssignment:W_,updateSpreadAssignment:g_,createEnumMember:dl,updateEnumMember:gl,createSourceFile:Vf,updateSourceFile:Hu,createBundle:af,updateBundle:tn,createUnparsedSource:Ml,createUnparsedPrologue:nf,createUnparsedPrepend:q_,createUnparsedTextLike:Kf,createUnparsedSyntheticReference:Rp,createInputFiles:yd,createSyntheticExpression:m_,createSyntaxList:Ll,createNotEmittedStatement:hd,createPartiallyEmittedExpression:v_,updatePartiallyEmittedExpression:Bp,createCommaListExpression:Xc,updateCommaListExpression:Gf,createEndOfDeclarationMarker:of,createMergeDeclarationMarker:wu,createSyntheticReferenceExpression:V_,updateSyntheticReferenceExpression:yu,cloneNode:v,get createComma(){return L(27)},get createAssignment(){return L(63)},get createLogicalOr(){return L(56)},get createLogicalAnd(){return L(55)},get createBitwiseOr(){return L(51)},get createBitwiseXor(){return L(52)},get createBitwiseAnd(){return L(50)},get createStrictEquality(){return L(36)},get createStrictInequality(){return L(37)},get createEquality(){return L(34)},get createInequality(){return L(35)},get createLessThan(){return L(29)},get createLessThanEquals(){return L(32)},get createGreaterThan(){return L(31)},get createGreaterThanEquals(){return L(33)},get createLeftShift(){return L(47)},get createRightShift(){return L(48)},get createUnsignedRightShift(){return L(49)},get createAdd(){return L(39)},get createSubtract(){return L(40)},get createMultiply(){return L(41)},get createDivide(){return L(43)},get createModulo(){return L(44)},get createExponent(){return L(42)},get createPrefixPlus(){return P(39)},get createPrefixMinus(){return P(40)},get createPrefixIncrement(){return P(45)},get createPrefixDecrement(){return P(46)},get createBitwiseNot(){return P(54)},get createLogicalNot(){return P(53)},get createPostfixIncrement(){return k(45)},get createPostfixDecrement(){return k(46)},createImmediatelyInvokedFunctionExpression:sr,createImmediatelyInvokedArrowFunction:fi,createVoidZero:zi,createExportDefault:Sa,createExternalModuleExport:da,createTypeCheck:Ha,createMethodCall:ta,createGlobalMethodCall:oc,createFunctionBindCall:nn,createFunctionCallCall:Wo,createFunctionApplyCall:Lo,createArraySliceCall:uu,createArrayConcatCall:is,createObjectDefinePropertyCall:au,createReflectGetCall:Ou,createReflectSetCall:sf,createPropertyDescriptor:cf,createCallBinding:G_,createAssignmentTargetWrapper:Le,inlineExpressions:Nr,getInternalName:di,getLocalName:Mi,getExportName:st,getDeclarationName:ra,getNamespaceMemberName:Ta,getExternalModuleOrNamespaceExportName:ha,restoreOuterExpressions:Jp,restoreEnclosingLabel:Hf,createUseStrictPrologue:qo,copyPrologue:Na,copyStandardPrologue:co,copyCustomPrologue:ts,ensureUseStrict:vs,liftToBlock:Ac,mergeLexicalEnvironment:Qu,updateModifiers:sc};return g;function ne(_,W){if(_===void 0||_===e.emptyArray)_=[];else if(e.isNodeArray(_)){if(W===void 0||_.hasTrailingComma===W)return _.transformFlags===void 0&&T(_),e.Debug.attachNodeArrayDebugInfo(_),_;var Te=_.slice();return Te.pos=_.pos,Te.end=_.end,Te.hasTrailingComma=W,Te.transformFlags=_.transformFlags,e.Debug.attachNodeArrayDebugInfo(Te),Te}var cr=_.length,ni=cr>=1&&cr<=4?_.slice():_;return e.setTextRangePosEnd(ni,-1,-1),ni.hasTrailingComma=!!W,T(ni),e.Debug.attachNodeArrayDebugInfo(ni),ni}function ue(_){return $.createBaseNode(_)}function We(_,W,Te){var cr=ue(_);return cr.decorators=bc(W),cr.modifiers=bc(Te),cr.transformFlags|=f(cr.decorators)|f(cr.modifiers),cr.symbol=void 0,cr.localSymbol=void 0,cr.locals=void 0,cr.nextContainer=void 0,cr}function Fe(_,W,Te,cr){var ni=We(_,W,Te);if(cr=Mc(cr),ni.name=cr,cr)switch(ni.kind){case 169:case 172:case 173:case 167:case 296:if(e.isIdentifier(cr)){ni.transformFlags|=m(cr);break}default:ni.transformFlags|=oe(cr);break}return ni}function Z(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.typeParameters=bc(ni),rt.transformFlags|=f(rt.typeParameters),ni&&(rt.transformFlags|=1),rt}function Be(_,W,Te,cr,ni,rt,yt){var Xa=Z(_,W,Te,cr,ni);return Xa.parameters=ne(rt),Xa.type=yt,Xa.transformFlags|=f(Xa.parameters)|oe(Xa.type),yt&&(Xa.transformFlags|=1),Xa}function ge(_,W){return W.typeArguments&&(_.typeArguments=W.typeArguments),A(_,W)}function Re(_,W,Te,cr,ni,rt,yt,Xa){var vo=Be(_,W,Te,cr,ni,rt,yt);return vo.body=Xa,vo.transformFlags|=oe(vo.body)&-16777217,Xa||(vo.transformFlags|=1),vo}function ze(_,W){return W.exclamationToken&&(_.exclamationToken=W.exclamationToken),W.typeArguments&&(_.typeArguments=W.typeArguments),ge(_,W)}function Ee(_,W,Te,cr,ni,rt){var yt=Z(_,W,Te,cr,ni);return yt.heritageClauses=bc(rt),yt.transformFlags|=f(yt.heritageClauses),yt}function He(_,W,Te,cr,ni,rt,yt){var Xa=Ee(_,W,Te,cr,ni,rt);return Xa.members=ne(yt),Xa.transformFlags|=f(Xa.members),Xa}function rr(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.initializer=ni,rt.transformFlags|=oe(rt.initializer),rt}function Ie(_,W,Te,cr,ni,rt){var yt=rr(_,W,Te,cr,rt);return yt.type=ni,yt.transformFlags|=oe(ni),ni&&(yt.transformFlags|=1),yt}function _e(_,W){var Te=yr(_);return Te.text=W,Te}function we(_,W){W===void 0&&(W=0);var Te=_e(8,typeof _=="number"?_+"":_);return Te.numericLiteralFlags=W,W&384&&(Te.transformFlags|=1024),Te}function de(_){var W=_e(9,typeof _=="string"?_:e.pseudoBigIntToString(_)+"n");return W.transformFlags|=4,W}function ye(_,W){var Te=_e(10,_);return Te.singleQuote=W,Te}function Ae(_,W,Te){var cr=ye(_,W);return cr.hasExtendedUnicodeEscape=Te,Te&&(cr.transformFlags|=1024),cr}function er(_){var W=ye(e.getTextOfIdentifierOrLiteral(_),void 0);return W.textSourceNode=_,W}function ir(_){var W=_e(13,_);return W}function Cr(_,W){switch(_){case 8:return we(W,0);case 9:return de(W);case 10:return Ae(W,void 0);case 11:return fl(W,!1);case 12:return fl(W,!0);case 13:return ir(W);case 14:return xc(_,W,void 0,0)}}function Ye(_,W){W===void 0&&_&&(W=e.stringToToken(_)),W===79&&(W=void 0);var Te=$.createBaseIdentifierNode(79);return Te.originalKeywordKind=W,Te.escapedText=e.escapeLeadingUnderscores(_),Te}function Br(_,W){var Te=Ye(_,void 0);return Te.autoGenerateFlags=W,Te.autoGenerateId=a,a++,Te}function Er(_,W,Te){var cr=Ye(_,Te);return W&&(cr.typeArguments=ne(W)),cr.originalKeywordKind===132&&(cr.transformFlags|=16777216),cr}function Ne(_,W){return _.typeArguments!==W?A(Er(e.idText(_),W),_):_}function n(_,W){var Te=1;W&&(Te|=8);var cr=Br("",Te);return _&&_(cr),cr}function lr(_){var W=2;return _&&(W|=8),Br("",W)}function be(_,W){return W===void 0&&(W=0),e.Debug.assert(!(W&7),"Argument out of range: flags"),e.Debug.assert((W&48)!==32,"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),Br(_,3|W)}function Ge(_,W){W===void 0&&(W=0),e.Debug.assert(!(W&7),"Argument out of range: flags");var Te=Br(_&&e.isIdentifier(_)?e.idText(_):"",4|W);return Te.original=_,Te}function ur(_){e.startsWith(_,"#")||e.Debug.fail("First character of private identifier must be #: "+_);var W=$.createBasePrivateIdentifierNode(80);return W.escapedText=e.escapeLeadingUnderscores(_),W.transformFlags|=8388608,W}function yr(_){return $.createBaseTokenNode(_)}function Ir(_){e.Debug.assert(_>=0&&_<=160,"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=yr(_),Te=0;switch(_){case 131:Te=384;break;case 123:case 121:case 122:case 145:case 126:case 135:case 85:case 130:case 147:case 158:case 143:case 148:case 101:case 144:case 159:case 150:case 133:case 151:case 114:case 155:case 153:Te=1;break;case 106:Te=33555456;break;case 124:Te=1024;break;case 108:Te=8192;break}return Te&&(W.transformFlags|=Te),W}function wr(){return Ir(106)}function Ur(){return Ir(108)}function ii(){return Ir(104)}function mi(){return Ir(110)}function pe(){return Ir(95)}function or(_){return Ir(_)}function qr(_){var W=[];return _&1&&W.push(or(93)),_&2&&W.push(or(135)),_&512&&W.push(or(88)),_&2048&&W.push(or(85)),_&4&&W.push(or(123)),_&8&&W.push(or(121)),_&16&&W.push(or(122)),_&128&&W.push(or(126)),_&32&&W.push(or(124)),_&16384&&W.push(or(159)),_&64&&W.push(or(145)),_&256&&W.push(or(131)),_&32768&&W.push(or(101)),_&65536&&W.push(or(144)),W.length?W:void 0}function si(_,W){var Te=ue(161);return Te.left=_,Te.right=Mc(W),Te.transformFlags|=oe(Te.left)|m(Te.right),Te}function Di(_,W,Te){return _.left!==W||_.right!==Te?A(si(W,Te),_):_}function wi(_){var W=ue(162);return W.expression=y().parenthesizeExpressionOfComputedPropertyName(_),W.transformFlags|=oe(W.expression)|1024|65536,W}function Xi(_,W){return _.expression!==W?A(wi(W),_):_}function et(_,W,Te,cr){var ni,rt,yt;_===void 0||e.isArray(_)?(rt=_,ni=W,yt=Te):(rt=void 0,ni=_,yt=W);var Xa=Fe(163,void 0,rt,ni);return Xa.constraint=yt,Xa.default=cr,Xa.transformFlags=1,Xa}function Gi(_,W,Te,cr,ni){var rt,yt,Xa;return W===void 0||e.isArray(W)?(yt=W,rt=Te,Xa=cr):(yt=void 0,rt=W,Xa=Te),_.modifiers!==yt||_.name!==rt||_.constraint!==Xa||_.default!==ni?A(et(yt,rt,Xa,ni),_):_}function Wt(_,W,Te,cr,ni,rt,yt){var Xa=Ie(164,_,W,cr,rt,yt&&y().parenthesizeExpressionForDisallowedComma(yt));return Xa.dotDotDotToken=Te,Xa.questionToken=ni,e.isThisIdentifier(Xa.name)?Xa.transformFlags=1:(Xa.transformFlags|=oe(Xa.dotDotDotToken)|oe(Xa.questionToken),ni&&(Xa.transformFlags|=1),e.modifiersToFlags(Xa.modifiers)&16476&&(Xa.transformFlags|=4096),(yt||Te)&&(Xa.transformFlags|=1024)),Xa}function Zt(_,W,Te,cr,ni,rt,yt,Xa){return _.decorators!==W||_.modifiers!==Te||_.dotDotDotToken!==cr||_.name!==ni||_.questionToken!==rt||_.type!==yt||_.initializer!==Xa?A(Wt(W,Te,cr,ni,rt,yt,Xa),_):_}function _r(_){var W=ue(165);return W.expression=y().parenthesizeLeftSideOfAccess(_),W.transformFlags|=oe(W.expression)|1|4096,W}function pi(_,W){return _.expression!==W?A(_r(W),_):_}function ae(_,W,Te,cr){var ni=Fe(166,void 0,_,W);return ni.type=cr,ni.questionToken=Te,ni.transformFlags=1,ni}function Xe(_,W,Te,cr,ni){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.type!==ni?A(ae(W,Te,cr,ni),_):_}function Jr(_,W,Te,cr,ni,rt){var yt=Ie(167,_,W,Te,ni,rt);return yt.questionToken=cr&&e.isQuestionToken(cr)?cr:void 0,yt.exclamationToken=cr&&e.isExclamationToken(cr)?cr:void 0,yt.transformFlags|=oe(yt.questionToken)|oe(yt.exclamationToken)|8388608,(e.isComputedPropertyName(yt.name)||e.hasStaticModifier(yt)&&yt.initializer)&&(yt.transformFlags|=4096),(cr||e.modifiersToFlags(yt.modifiers)&2)&&(yt.transformFlags|=1),yt}function ti(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.questionToken!==(ni!==void 0&&e.isQuestionToken(ni)?ni:void 0)||_.exclamationToken!==(ni!==void 0&&e.isExclamationToken(ni)?ni:void 0)||_.type!==rt||_.initializer!==yt?A(Jr(W,Te,cr,ni,rt,yt),_):_}function Ze(_,W,Te,cr,ni,rt){var yt=Be(168,void 0,_,W,cr,ni,rt);return yt.questionToken=Te,yt.transformFlags=1,yt}function Sr(_,W,Te,cr,ni,rt,yt){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.typeParameters!==ni||_.parameters!==rt||_.type!==yt?ge(Ze(W,Te,cr,ni,rt,yt),_):_}function zr(_,W,Te,cr,ni,rt,yt,Xa,vo){var Vs=Re(169,_,W,cr,rt,yt,Xa,vo);return Vs.asteriskToken=Te,Vs.questionToken=ni,Vs.transformFlags|=oe(Vs.asteriskToken)|oe(Vs.questionToken)|1024,ni&&(Vs.transformFlags|=1),e.modifiersToFlags(Vs.modifiers)&256?Te?Vs.transformFlags|=128:Vs.transformFlags|=256:Te&&(Vs.transformFlags|=2048),Vs}function Wr(_,W,Te,cr,ni,rt,yt,Xa,vo,Vs){return _.decorators!==W||_.modifiers!==Te||_.asteriskToken!==cr||_.name!==ni||_.questionToken!==rt||_.typeParameters!==yt||_.parameters!==Xa||_.type!==vo||_.body!==Vs?ze(zr(W,Te,cr,ni,rt,yt,Xa,vo,Vs),_):_}function Je(_,W,Te){var cr=Z(170,_,W,void 0,void 0);return cr.body=Te,cr.transformFlags=oe(Te)|8388608,cr}function xe(_,W,Te,cr){return _.decorators!==W||_.modifier!==Te||_.body!==cr?A(Je(W,Te,cr),_):_}function vr(_,W,Te,cr){var ni=Re(171,_,W,void 0,void 0,Te,void 0,cr);return ni.transformFlags|=1024,ni}function mr(_,W,Te,cr,ni){return _.decorators!==W||_.modifiers!==Te||_.parameters!==cr||_.body!==ni?ze(vr(W,Te,cr,ni),_):_}function Ar(_,W,Te,cr,ni,rt){return Re(172,_,W,Te,void 0,cr,ni,rt)}function Oe(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.type!==rt||_.body!==yt?ze(Ar(W,Te,cr,ni,rt,yt),_):_}function nr(_,W,Te,cr,ni){return Re(173,_,W,Te,void 0,cr,void 0,ni)}function Mr(_,W,Te,cr,ni,rt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.body!==rt?ze(nr(W,Te,cr,ni,rt),_):_}function Pe(_,W,Te){var cr=Be(174,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Ue(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(Pe(W,Te,cr),_):_}function fr(_,W,Te){var cr=Be(175,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function De(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(fr(W,Te,cr),_):_}function gr(_,W,Te,cr){var ni=Be(176,_,W,void 0,void 0,Te,cr);return ni.transformFlags=1,ni}function Vr(_,W,Te,cr,ni){return _.parameters!==cr||_.type!==ni||_.decorators!==W||_.modifiers!==Te?ge(gr(W,Te,cr,ni),_):_}function Tr(_,W){var Te=ue(199);return Te.type=_,Te.literal=W,Te.transformFlags=1,Te}function vi(_,W,Te){return _.type!==W||_.literal!==Te?A(Tr(W,Te),_):_}function Ui(_){return Ir(_)}function Yi(_,W,Te){var cr=ue(177);return cr.assertsModifier=_,cr.parameterName=Mc(W),cr.type=Te,cr.transformFlags=1,cr}function Wi(_,W,Te,cr){return _.assertsModifier!==W||_.parameterName!==Te||_.type!==cr?A(Yi(W,Te,cr),_):_}function ct(_,W){var Te=ue(178);return Te.typeName=Mc(_),Te.typeArguments=W&&y().parenthesizeTypeArguments(ne(W)),Te.transformFlags=1,Te}function Li(_,W,Te){return _.typeName!==W||_.typeArguments!==Te?A(ct(W,Te),_):_}function nt(_,W,Te){var cr=Be(179,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Mt(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(nt(W,Te,cr),_):_}function xt(){for(var _=[],W=0;W0;default:return!0}}function G_(_,W,Te,cr){cr===void 0&&(cr=!1);var ni=e.skipOuterExpressions(_,15),rt,yt;return e.isSuperProperty(ni)?(rt=Ur(),yt=ni):e.isSuperKeyword(ni)?(rt=Ur(),yt=Te!==void 0&&Te<2?e.setTextRange(Er("_super"),ni):ni):e.getEmitFlags(ni)&4096?(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(ni)):e.isPropertyAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Zr(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.name),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):e.isElementAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Ct(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.argumentExpression),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(_)),{target:yt,thisArg:rt}}function Le(_,W){return Zr(hs(qe([nr(void 0,void 0,"value",[Wt(void 0,void 0,void 0,_,void 0,void 0,void 0)],bn([Mo(W)]))])),"value")}function Nr(_){return _.length>10?Xc(_):e.reduceLeft(_,g.createComma)}function ri(_,W,Te,cr){cr===void 0&&(cr=0);var ni=e.getNameOfDeclaration(_);if(ni&&e.isIdentifier(ni)&&!e.isGeneratedIdentifier(ni)){var rt=e.setParent(e.setTextRange(v(ni),ni),ni.parent);return cr|=e.getEmitFlags(ni),Te||(cr|=48),W||(cr|=1536),cr&&e.setEmitFlags(rt,cr),rt}return Ge(_)}function di(_,W,Te){return ri(_,W,Te,49152)}function Mi(_,W,Te){return ri(_,W,Te,16384)}function st(_,W,Te){return ri(_,W,Te,8192)}function ra(_,W,Te){return ri(_,W,Te)}function Ta(_,W,Te,cr){var ni=Zr(_,e.nodeIsSynthesized(W)?W:v(W));e.setTextRange(ni,W);var rt=0;return cr||(rt|=48),Te||(rt|=1536),rt&&e.setEmitFlags(ni,rt),ni}function ha(_,W,Te,cr){return _&&e.hasSyntacticModifier(W,1)?Ta(_,ri(W),Te,cr):st(W,Te,cr)}function Na(_,W,Te,cr){var ni=co(_,W,0,Te);return ts(_,W,ni,cr)}function In(_){return e.isStringLiteral(_.expression)&&_.expression.text==="use strict"}function qo(){return e.startOnNewLine(Mo(Ae("use strict")))}function co(_,W,Te,cr){Te===void 0&&(Te=0),e.Debug.assert(W.length===0,"Prologue directives should be at the first statement in the target statements array");for(var ni=!1,rt=_.length;TeXa&&Vs.splice.apply(Vs,Ve([ni,0],W.slice(Xa,vo),!1)),Xa>yt&&Vs.splice.apply(Vs,Ve([cr,0],W.slice(yt,Xa),!1)),yt>rt&&Vs.splice.apply(Vs,Ve([Te,0],W.slice(rt,yt),!1)),rt>0)if(Te===0)Vs.splice.apply(Vs,Ve([0,0],W.slice(0,rt),!1));else{for(var H_=new e.Map,y_=0;y_=0;y_--){var jp=W[y_];H_.has(jp.expression.text)||Vs.unshift(jp)}}return e.isNodeArray(_)?e.setTextRange(ne(Vs,_.hasTrailingComma),_):_}function sc(_,W){var Te,cr;return typeof W=="number"?cr=qr(W):cr=W,e.isParameter(_)?Zt(_,_.decorators,cr,_.dotDotDotToken,_.name,_.questionToken,_.type,_.initializer):e.isPropertySignature(_)?Xe(_,cr,_.name,_.questionToken,_.type):e.isPropertyDeclaration(_)?ti(_,_.decorators,cr,_.name,(Te=_.questionToken)!==null&&Te!==void 0?Te:_.exclamationToken,_.type,_.initializer):e.isMethodSignature(_)?Sr(_,cr,_.name,_.questionToken,_.typeParameters,_.parameters,_.type):e.isMethodDeclaration(_)?Wr(_,_.decorators,cr,_.asteriskToken,_.name,_.questionToken,_.typeParameters,_.parameters,_.type,_.body):e.isConstructorDeclaration(_)?mr(_,_.decorators,cr,_.parameters,_.body):e.isGetAccessorDeclaration(_)?Oe(_,_.decorators,cr,_.name,_.parameters,_.type,_.body):e.isSetAccessorDeclaration(_)?Mr(_,_.decorators,cr,_.name,_.parameters,_.body):e.isIndexSignatureDeclaration(_)?Vr(_,_.decorators,cr,_.parameters,_.type):e.isFunctionExpression(_)?Qs(_,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isArrowFunction(_)?ds(_,cr,_.typeParameters,_.parameters,_.type,_.equalsGreaterThanToken,_.body):e.isClassExpression(_)?Uu(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isVariableStatement(_)?rn(_,cr,_.declarationList):e.isFunctionDeclaration(_)?gu(_,_.decorators,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isClassDeclaration(_)?sd(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isInterfaceDeclaration(_)?va(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isTypeAliasDeclaration(_)?qs(_,_.decorators,cr,_.name,_.typeParameters,_.type):e.isEnumDeclaration(_)?ns(_,_.decorators,cr,_.name,_.members):e.isModuleDeclaration(_)?hc(_,_.decorators,cr,_.name,_.body):e.isImportEqualsDeclaration(_)?fd(_,_.decorators,cr,_.isTypeOnly,_.name,_.moduleReference):e.isImportDeclaration(_)?Sp(_,_.decorators,cr,_.importClause,_.moduleSpecifier,_.assertClause):e.isExportAssignment(_)?gd(_,_.decorators,cr,_.expression):e.isExportDeclaration(_)?$l(_,_.decorators,cr,_.isTypeOnly,_.exportClause,_.moduleSpecifier,_.assertClause):e.Debug.assertNever(_)}function bc(_){return _?ne(_):void 0}function Mc(_){return typeof _=="string"?Er(_):_}function Yu(_){return typeof _=="string"?Ae(_):typeof _=="number"?we(_):typeof _=="boolean"?_?mi():pe():_}function Rl(_){return typeof _=="number"?Ir(_):_}function Lc(_){return _&&e.isNotEmittedStatement(_)?e.setTextRange(he(jn(),_),_):_}}e.createNodeFactory=w;function B(X,$){return X!==$&&e.setTextRange(X,$),X}function E(X,$){return X!==$&&(he(X,$),e.setTextRange(X,$)),X}function Q(X){switch(X){case 343:return"type";case 341:return"returns";case 342:return"this";case 339:return"enum";case 330:return"author";case 332:return"class";case 333:return"public";case 334:return"private";case 335:return"protected";case 336:return"readonly";case 337:return"override";case 344:return"template";case 345:return"typedef";case 340:return"param";case 347:return"prop";case 338:return"callback";case 328:return"augments";case 329:return"implements";default:return e.Debug.fail("Unsupported kind: ".concat(e.Debug.formatSyntaxKind(X)))}}var le,N={};function p(X,$){switch(le||(le=e.createScanner(99,!1,0)),X){case 14:le.setText("`"+$+"`");break;case 15:le.setText("`"+$+"${");break;case 16:le.setText("}"+$+"${");break;case 17:le.setText("}"+$+"`");break}var A=le.scan();if(A===19&&(A=le.reScanTemplateToken(!1)),le.isUnterminated())return le.setText(void 0),N;var y;switch(A){case 14:case 15:case 16:case 17:y=le.getTokenValue();break}return y===void 0||le.scan()!==1?(le.setText(void 0),N):(le.setText(void 0),y)}function m(X){return oe(X)&-16777217}function G(X,$){return $|X.transformFlags&33562624}function oe(X){if(!X)return 0;var $=X.transformFlags&~K(X.kind);return e.isNamedDeclaration(X)&&e.isPropertyName(X.name)?G(X.name,$):$}function f(X){return X?X.transformFlags:0}function T(X){for(var $=0,A=0,y=X;A=177&&X<=200)return-2;switch(X){case 208:case 209:case 204:return 536887296;case 261:return 589443072;case 164:return 536870912;case 214:return 557748224;case 213:case 256:return 591310848;case 255:return 537165824;case 257:case 226:return 536940544;case 171:return 591306752;case 167:return 570433536;case 169:case 172:case 173:return 574529536;case 130:case 147:case 158:case 143:case 150:case 148:case 133:case 151:case 114:case 163:case 166:case 168:case 174:case 175:case 176:case 258:case 259:return-2;case 205:return 536973312;case 292:return 536903680;case 201:case 202:return 536887296;case 211:case 229:case 350:case 212:case 106:return 536870912;case 206:case 207:return 536870912;default:return 536870912}}e.getTransformFlagsSubtreeExclusions=K;var b=e.createBaseNodeFactory();function se(X){return X.flags|=8,X}var J={createBaseSourceFileNode:function(X){return se(b.createBaseSourceFileNode(X))},createBaseIdentifierNode:function(X){return se(b.createBaseIdentifierNode(X))},createBasePrivateIdentifierNode:function(X){return se(b.createBasePrivateIdentifierNode(X))},createBaseTokenNode:function(X){return se(b.createBaseTokenNode(X))},createBaseNode:function(X){return se(b.createBaseNode(X))}};e.factory=w(4,J);function ie(X,$,A){var y,V,L,P,k,Y,U,j,H,I;e.isString(X)?(L="",P=X,k=X.length,Y=$,U=A):(e.Debug.assert($==="js"||$==="dts"),L=($==="js"?X.javascriptPath:X.declarationPath)||"",Y=$==="js"?X.javascriptMapPath:X.declarationMapPath,j=function(){return $==="js"?X.javascriptText:X.declarationText},H=function(){return $==="js"?X.javascriptMapText:X.declarationMapText},k=function(){return j().length},X.buildInfo&&X.buildInfo.bundle&&(e.Debug.assert(A===void 0||typeof A=="boolean"),y=A,V=$==="js"?X.buildInfo.bundle.js:X.buildInfo.bundle.dts,I=X.oldFileOfCurrentEmit));var l=I?q(e.Debug.checkDefined(V)):R(V,y,k);return l.fileName=L,l.sourceMapPath=Y,l.oldFileOfCurrentEmit=I,j&&H?(Object.defineProperty(l,"text",{get:j}),Object.defineProperty(l,"sourceMapText",{get:H})):(e.Debug.assert(!I),l.text=P!=null?P:"",l.sourceMapText=U),l}e.createUnparsedSourceFile=ie;function R(X,$,A){for(var y,V,L,P,k,Y,U,j,H=0,I=X?X.sections:e.emptyArray;H0&&(U[I-H]=l)}H>0&&(U.length-=H)}}e.moveEmitHelpers=x;function X(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.snippetElement}e.getSnippetElement=X;function $(L,P){var k=a(L);return k.snippetElement=P,L}e.setSnippetElement=$;function A(L){return a(L).flags|=134217728,L}e.ignoreSourceNewlines=A;function y(L,P){var k=a(L);return k.typeNode=P,L}e.setTypeNode=y;function V(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.typeNode}e.getTypeNode=V})(ke||(ke={}));var ke;(function(e){function a(le){var N=le.factory,p=e.memoize(function(){return e.setEmitFlags(N.createTrue(),268435456)}),m=e.memoize(function(){return e.setEmitFlags(N.createFalse(),268435456)});return{getUnscopedHelperName:G,createDecorateHelper:oe,createMetadataHelper:f,createParamHelper:T,createAssignHelper:K,createAwaitHelper:b,createAsyncGeneratorHelper:se,createAsyncDelegatorHelper:J,createAsyncValuesHelper:ie,createRestHelper:R,createAwaiterHelper:q,createExtendsHelper:O,createTemplateObjectHelper:ve,createSpreadArrayHelper:ee,createValuesHelper:he,createReadHelper:F,createGeneratorHelper:x,createCreateBindingHelper:X,createImportStarHelper:$,createImportStarCallbackHelper:A,createImportDefaultHelper:y,createExportStarHelper:V,createClassPrivateFieldGetHelper:L,createClassPrivateFieldSetHelper:P,createClassPrivateFieldInHelper:k};function G(Y){return e.setEmitFlags(N.createIdentifier(Y),4098)}function oe(Y,U,j,H){le.requestEmitHelper(e.decorateHelper);var I=[];return I.push(N.createArrayLiteralExpression(Y,!0)),I.push(U),j&&(I.push(j),H&&I.push(H)),N.createCallExpression(G("__decorate"),void 0,I)}function f(Y,U){return le.requestEmitHelper(e.metadataHelper),N.createCallExpression(G("__metadata"),void 0,[N.createStringLiteral(Y),U])}function T(Y,U,j){return le.requestEmitHelper(e.paramHelper),e.setTextRange(N.createCallExpression(G("__param"),void 0,[N.createNumericLiteral(U+""),Y]),j)}function K(Y){return e.getEmitScriptTarget(le.getCompilerOptions())>=2?N.createCallExpression(N.createPropertyAccessExpression(N.createIdentifier("Object"),"assign"),void 0,Y):(le.requestEmitHelper(e.assignHelper),N.createCallExpression(G("__assign"),void 0,Y))}function b(Y){return le.requestEmitHelper(e.awaitHelper),N.createCallExpression(G("__await"),void 0,[Y])}function se(Y,U){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncGeneratorHelper),(Y.emitNode||(Y.emitNode={})).flags|=786432,N.createCallExpression(G("__asyncGenerator"),void 0,[U?N.createThis():N.createVoidZero(),N.createIdentifier("arguments"),Y])}function J(Y){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncDelegator),N.createCallExpression(G("__asyncDelegator"),void 0,[Y])}function ie(Y){return le.requestEmitHelper(e.asyncValues),N.createCallExpression(G("__asyncValues"),void 0,[Y])}function R(Y,U,j,H){le.requestEmitHelper(e.restHelper);for(var I=[],l=0,d=0;d= 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; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (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; + };`},e.classPrivateFieldInHelper={name:"typescript:classPrivateFieldIn",importName:"__classPrivateFieldIn",scoped:!1,text:` + var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); + };`};var B;function E(){return B||(B=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.classPrivateFieldInHelper,e.createBindingHelper,e.setModuleDefaultHelper],function(le){return le.name}))}e.getAllUnscopedEmitHelpers=E,e.asyncSuperHelper={name:"typescript:async-super",scoped:!0,text:w(oi([` + const `," = name => super[name];"],[` + const `," = name => super[name];"]),"_superIndex")},e.advancedAsyncSuperHelper={name:"typescript:advanced-async-super",scoped:!0,text:w(oi([` + 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 Q(le,N){return e.isCallExpression(le)&&e.isIdentifier(le.expression)&&(e.getEmitFlags(le.expression)&4096)!==0&&le.expression.escapedText===N}e.isCallToHelper=Q})(ke||(ke={}));var ke;(function(e){function a(jr){return jr.kind===8}e.isNumericLiteral=a;function C(jr){return jr.kind===9}e.isBigIntLiteral=C;function w(jr){return jr.kind===10}e.isStringLiteral=w;function B(jr){return jr.kind===11}e.isJsxText=B;function E(jr){return jr.kind===13}e.isRegularExpressionLiteral=E;function Q(jr){return jr.kind===14}e.isNoSubstitutionTemplateLiteral=Q;function le(jr){return jr.kind===15}e.isTemplateHead=le;function N(jr){return jr.kind===16}e.isTemplateMiddle=N;function p(jr){return jr.kind===17}e.isTemplateTail=p;function m(jr){return jr.kind===25}e.isDotDotDotToken=m;function G(jr){return jr.kind===27}e.isCommaToken=G;function oe(jr){return jr.kind===39}e.isPlusToken=oe;function f(jr){return jr.kind===40}e.isMinusToken=f;function T(jr){return jr.kind===41}e.isAsteriskToken=T;function K(jr){return jr.kind===53}e.isExclamationToken=K;function b(jr){return jr.kind===57}e.isQuestionToken=b;function se(jr){return jr.kind===58}e.isColonToken=se;function J(jr){return jr.kind===28}e.isQuestionDotToken=J;function ie(jr){return jr.kind===38}e.isEqualsGreaterThanToken=ie;function R(jr){return jr.kind===79}e.isIdentifier=R;function q(jr){return jr.kind===80}e.isPrivateIdentifier=q;function O(jr){return jr.kind===93}e.isExportModifier=O;function ve(jr){return jr.kind===131}e.isAsyncModifier=ve;function ee(jr){return jr.kind===128}e.isAssertsKeyword=ee;function he(jr){return jr.kind===132}e.isAwaitKeyword=he;function F(jr){return jr.kind===145}e.isReadonlyKeyword=F;function x(jr){return jr.kind===124}e.isStaticModifier=x;function X(jr){return jr.kind===126}e.isAbstractModifier=X;function $(jr){return jr.kind===106}e.isSuperKeyword=$;function A(jr){return jr.kind===100}e.isImportKeyword=A;function y(jr){return jr.kind===161}e.isQualifiedName=y;function V(jr){return jr.kind===162}e.isComputedPropertyName=V;function L(jr){return jr.kind===163}e.isTypeParameterDeclaration=L;function P(jr){return jr.kind===164}e.isParameter=P;function k(jr){return jr.kind===165}e.isDecorator=k;function Y(jr){return jr.kind===166}e.isPropertySignature=Y;function U(jr){return jr.kind===167}e.isPropertyDeclaration=U;function j(jr){return jr.kind===168}e.isMethodSignature=j;function H(jr){return jr.kind===169}e.isMethodDeclaration=H;function I(jr){return jr.kind===170}e.isClassStaticBlockDeclaration=I;function l(jr){return jr.kind===171}e.isConstructorDeclaration=l;function d(jr){return jr.kind===172}e.isGetAccessorDeclaration=d;function D(jr){return jr.kind===173}e.isSetAccessorDeclaration=D;function fe(jr){return jr.kind===174}e.isCallSignatureDeclaration=fe;function g(jr){return jr.kind===175}e.isConstructSignatureDeclaration=g;function ne(jr){return jr.kind===176}e.isIndexSignatureDeclaration=ne;function ue(jr){return jr.kind===177}e.isTypePredicateNode=ue;function We(jr){return jr.kind===178}e.isTypeReferenceNode=We;function Fe(jr){return jr.kind===179}e.isFunctionTypeNode=Fe;function Z(jr){return jr.kind===180}e.isConstructorTypeNode=Z;function Be(jr){return jr.kind===181}e.isTypeQueryNode=Be;function ge(jr){return jr.kind===182}e.isTypeLiteralNode=ge;function Re(jr){return jr.kind===183}e.isArrayTypeNode=Re;function ze(jr){return jr.kind===184}e.isTupleTypeNode=ze;function Ee(jr){return jr.kind===197}e.isNamedTupleMember=Ee;function He(jr){return jr.kind===185}e.isOptionalTypeNode=He;function rr(jr){return jr.kind===186}e.isRestTypeNode=rr;function Ie(jr){return jr.kind===187}e.isUnionTypeNode=Ie;function _e(jr){return jr.kind===188}e.isIntersectionTypeNode=_e;function we(jr){return jr.kind===189}e.isConditionalTypeNode=we;function de(jr){return jr.kind===190}e.isInferTypeNode=de;function ye(jr){return jr.kind===191}e.isParenthesizedTypeNode=ye;function Ae(jr){return jr.kind===192}e.isThisTypeNode=Ae;function er(jr){return jr.kind===193}e.isTypeOperatorNode=er;function ir(jr){return jr.kind===194}e.isIndexedAccessTypeNode=ir;function Cr(jr){return jr.kind===195}e.isMappedTypeNode=Cr;function Ye(jr){return jr.kind===196}e.isLiteralTypeNode=Ye;function Br(jr){return jr.kind===200}e.isImportTypeNode=Br;function Er(jr){return jr.kind===199}e.isTemplateLiteralTypeSpan=Er;function Ne(jr){return jr.kind===198}e.isTemplateLiteralTypeNode=Ne;function n(jr){return jr.kind===201}e.isObjectBindingPattern=n;function lr(jr){return jr.kind===202}e.isArrayBindingPattern=lr;function be(jr){return jr.kind===203}e.isBindingElement=be;function Ge(jr){return jr.kind===204}e.isArrayLiteralExpression=Ge;function ur(jr){return jr.kind===205}e.isObjectLiteralExpression=ur;function yr(jr){return jr.kind===206}e.isPropertyAccessExpression=yr;function Ir(jr){return jr.kind===207}e.isElementAccessExpression=Ir;function wr(jr){return jr.kind===208}e.isCallExpression=wr;function Ur(jr){return jr.kind===209}e.isNewExpression=Ur;function ii(jr){return jr.kind===210}e.isTaggedTemplateExpression=ii;function mi(jr){return jr.kind===211}e.isTypeAssertionExpression=mi;function pe(jr){return jr.kind===212}e.isParenthesizedExpression=pe;function or(jr){return jr.kind===213}e.isFunctionExpression=or;function qr(jr){return jr.kind===214}e.isArrowFunction=qr;function si(jr){return jr.kind===215}e.isDeleteExpression=si;function Di(jr){return jr.kind===216}e.isTypeOfExpression=Di;function wi(jr){return jr.kind===217}e.isVoidExpression=wi;function Xi(jr){return jr.kind===218}e.isAwaitExpression=Xi;function et(jr){return jr.kind===219}e.isPrefixUnaryExpression=et;function Gi(jr){return jr.kind===220}e.isPostfixUnaryExpression=Gi;function Wt(jr){return jr.kind===221}e.isBinaryExpression=Wt;function Zt(jr){return jr.kind===222}e.isConditionalExpression=Zt;function _r(jr){return jr.kind===223}e.isTemplateExpression=_r;function pi(jr){return jr.kind===224}e.isYieldExpression=pi;function ae(jr){return jr.kind===225}e.isSpreadElement=ae;function Xe(jr){return jr.kind===226}e.isClassExpression=Xe;function Jr(jr){return jr.kind===227}e.isOmittedExpression=Jr;function ti(jr){return jr.kind===228}e.isExpressionWithTypeArguments=ti;function Ze(jr){return jr.kind===229}e.isAsExpression=Ze;function Sr(jr){return jr.kind===230}e.isNonNullExpression=Sr;function zr(jr){return jr.kind===231}e.isMetaProperty=zr;function Wr(jr){return jr.kind===232}e.isSyntheticExpression=Wr;function Je(jr){return jr.kind===350}e.isPartiallyEmittedExpression=Je;function xe(jr){return jr.kind===351}e.isCommaListExpression=xe;function vr(jr){return jr.kind===233}e.isTemplateSpan=vr;function mr(jr){return jr.kind===234}e.isSemicolonClassElement=mr;function Ar(jr){return jr.kind===235}e.isBlock=Ar;function Oe(jr){return jr.kind===237}e.isVariableStatement=Oe;function nr(jr){return jr.kind===236}e.isEmptyStatement=nr;function Mr(jr){return jr.kind===238}e.isExpressionStatement=Mr;function Pe(jr){return jr.kind===239}e.isIfStatement=Pe;function Ue(jr){return jr.kind===240}e.isDoStatement=Ue;function fr(jr){return jr.kind===241}e.isWhileStatement=fr;function De(jr){return jr.kind===242}e.isForStatement=De;function gr(jr){return jr.kind===243}e.isForInStatement=gr;function Vr(jr){return jr.kind===244}e.isForOfStatement=Vr;function Tr(jr){return jr.kind===245}e.isContinueStatement=Tr;function vi(jr){return jr.kind===246}e.isBreakStatement=vi;function Ui(jr){return jr.kind===247}e.isReturnStatement=Ui;function Yi(jr){return jr.kind===248}e.isWithStatement=Yi;function Wi(jr){return jr.kind===249}e.isSwitchStatement=Wi;function ct(jr){return jr.kind===250}e.isLabeledStatement=ct;function Li(jr){return jr.kind===251}e.isThrowStatement=Li;function nt(jr){return jr.kind===252}e.isTryStatement=nt;function Mt(jr){return jr.kind===253}e.isDebuggerStatement=Mt;function xt(jr){return jr.kind===254}e.isVariableDeclaration=xt;function ut(jr){return jr.kind===255}e.isVariableDeclarationList=ut;function Dt(jr){return jr.kind===256}e.isFunctionDeclaration=Dt;function Rt(jr){return jr.kind===257}e.isClassDeclaration=Rt;function Ii(jr){return jr.kind===258}e.isInterfaceDeclaration=Ii;function Ki(jr){return jr.kind===259}e.isTypeAliasDeclaration=Ki;function Fi(jr){return jr.kind===260}e.isEnumDeclaration=Fi;function ui(jr){return jr.kind===261}e.isModuleDeclaration=ui;function Bt(jr){return jr.kind===262}e.isModuleBlock=Bt;function wt(jr){return jr.kind===263}e.isCaseBlock=wt;function na(jr){return jr.kind===264}e.isNamespaceExportDeclaration=na;function Ai(jr){return jr.kind===265}e.isImportEqualsDeclaration=Ai;function Oi(jr){return jr.kind===266}e.isImportDeclaration=Oi;function ji(jr){return jr.kind===267}e.isImportClause=ji;function Vi(jr){return jr.kind===293}e.isAssertClause=Vi;function at(jr){return jr.kind===294}e.isAssertEntry=at;function At(jr){return jr.kind===268}e.isNamespaceImport=At;function ba(jr){return jr.kind===274}e.isNamespaceExport=ba;function $a(jr){return jr.kind===269}e.isNamedImports=$a;function Qa(jr){return jr.kind===270}e.isImportSpecifier=Qa;function ai(jr){return jr.kind===271}e.isExportAssignment=ai;function Dn(jr){return jr.kind===272}e.isExportDeclaration=Dn;function ka(jr){return jr.kind===273}e.isNamedExports=ka;function Ba(jr){return jr.kind===275}e.isExportSpecifier=Ba;function pn(jr){return jr.kind===276}e.isMissingDeclaration=pn;function Cn(jr){return jr.kind===349}e.isNotEmittedStatement=Cn;function Bi(jr){return jr.kind===354}e.isSyntheticReference=Bi;function kn(jr){return jr.kind===352}e.isMergeDeclarationMarker=kn;function xn(jr){return jr.kind===353}e.isEndOfDeclarationMarker=xn;function Kn(jr){return jr.kind===277}e.isExternalModuleReference=Kn;function Pn(jr){return jr.kind===278}e.isJsxElement=Pn;function eo(jr){return jr.kind===279}e.isJsxSelfClosingElement=eo;function Rn(jr){return jr.kind===280}e.isJsxOpeningElement=Rn;function Da(jr){return jr.kind===281}e.isJsxClosingElement=Da;function bo(jr){return jr.kind===282}e.isJsxFragment=bo;function Ro(jr){return jr.kind===283}e.isJsxOpeningFragment=Ro;function En(jr){return jr.kind===284}e.isJsxClosingFragment=En;function Wn(jr){return jr.kind===285}e.isJsxAttribute=Wn;function to(jr){return jr.kind===286}e.isJsxAttributes=to;function Co(jr){return jr.kind===287}e.isJsxSpreadAttribute=Co;function Ko(jr){return jr.kind===288}e.isJsxExpression=Ko;function Oo(jr){return jr.kind===289}e.isCaseClause=Oo;function no(jr){return jr.kind===290}e.isDefaultClause=no;function $o(jr){return jr.kind===291}e.isHeritageClause=$o;function Pr(jr){return jr.kind===292}e.isCatchClause=Pr;function xi(jr){return jr.kind===296}e.isPropertyAssignment=xi;function St(jr){return jr.kind===297}e.isShorthandPropertyAssignment=St;function pa(jr){return jr.kind===298}e.isSpreadAssignment=pa;function dn(jr){return jr.kind===299}e.isEnumMember=dn;function Jn(jr){return jr.kind===301}e.isUnparsedPrepend=Jn;function Qe(jr){return jr.kind===305}e.isSourceFile=Qe;function Gr(jr){return jr.kind===306}e.isBundle=Gr;function S(jr){return jr.kind===307}e.isUnparsedSource=S;function Ce(jr){return jr.kind===309}e.isJSDocTypeExpression=Ce;function qe(jr){return jr.kind===310}e.isJSDocNameReference=qe;function br(jr){return jr.kind===311}e.isJSDocMemberName=br;function Zr(jr){return jr.kind===324}e.isJSDocLink=Zr;function Si(jr){return jr.kind===325}e.isJSDocLinkCode=Si;function Pi(jr){return jr.kind===326}e.isJSDocLinkPlain=Pi;function Qi(jr){return jr.kind===312}e.isJSDocAllType=Qi;function Ct(jr){return jr.kind===313}e.isJSDocUnknownType=Ct;function sa(jr){return jr.kind===314}e.isJSDocNullableType=sa;function en(jr){return jr.kind===315}e.isJSDocNonNullableType=en;function Wa(jr){return jr.kind===316}e.isJSDocOptionalType=Wa;function qn(jr){return jr.kind===317}e.isJSDocFunctionType=qn;function mo(jr){return jr.kind===318}e.isJSDocVariadicType=mo;function So(jr){return jr.kind===319}e.isJSDocNamepathType=So;function Go(jr){return jr.kind===320}e.isJSDoc=Go;function ys(jr){return jr.kind===322}e.isJSDocTypeLiteral=ys;function Pc(jr){return jr.kind===323}e.isJSDocSignature=Pc;function Vc(jr){return jr.kind===328}e.isJSDocAugmentsTag=Vc;function Kc(jr){return jr.kind===330}e.isJSDocAuthorTag=Kc;function Xs(jr){return jr.kind===332}e.isJSDocClassTag=Xs;function pc(jr){return jr.kind===338}e.isJSDocCallbackTag=pc;function hs(jr){return jr.kind===333}e.isJSDocPublicTag=hs;function tc(jr){return jr.kind===334}e.isJSDocPrivateTag=tc;function ps(jr){return jr.kind===335}e.isJSDocProtectedTag=ps;function Qs(jr){return jr.kind===336}e.isJSDocReadonlyTag=Qs;function js(jr){return jr.kind===337}e.isJSDocOverrideTag=js;function ds(jr){return jr.kind===331}e.isJSDocDeprecatedTag=ds;function Ji(jr){return jr.kind===346}e.isJSDocSeeTag=Ji;function ce(jr){return jr.kind===339}e.isJSDocEnumTag=ce;function Rr(jr){return jr.kind===340}e.isJSDocParameterTag=Rr;function yi(jr){return jr.kind===341}e.isJSDocReturnTag=yi;function qi(jr){return jr.kind===342}e.isJSDocThisTag=qi;function je(jr){return jr.kind===343}e.isJSDocTypeTag=je;function Hr(jr){return jr.kind===344}e.isJSDocTemplateTag=Hr;function pt(jr){return jr.kind===345}e.isJSDocTypedefTag=pt;function Pt(jr){return jr.kind===327}e.isJSDocUnknownTag=Pt;function ga(jr){return jr.kind===347}e.isJSDocPropertyTag=ga;function ua(jr){return jr.kind===329}e.isJSDocImplementsTag=ua;function Xn(jr){return jr.kind===348}e.isSyntaxList=Xn})(ke||(ke={}));var ke;(function(e){function a(lr){return lr.createExportDeclaration(void 0,void 0,!1,lr.createNamedExports([]),void 0)}e.createEmptyExports=a;function C(lr,be,Ge,ur){if(e.isComputedPropertyName(Ge))return e.setTextRange(lr.createElementAccessExpression(be,Ge.expression),ur);var yr=e.setTextRange(e.isMemberName(Ge)?lr.createPropertyAccessExpression(be,Ge):lr.createElementAccessExpression(be,Ge),Ge);return e.getOrCreateEmitNode(yr).flags|=64,yr}e.createMemberAccessForPropertyName=C;function w(lr,be){var Ge=e.parseNodeFactory.createIdentifier(lr||"React");return e.setParent(Ge,e.getParseTreeNode(be)),Ge}function B(lr,be,Ge){if(e.isQualifiedName(be)){var ur=B(lr,be.left,Ge),yr=lr.createIdentifier(e.idText(be.right));return yr.escapedText=be.right.escapedText,lr.createPropertyAccessExpression(ur,yr)}else return w(e.idText(be),Ge)}function E(lr,be,Ge,ur){return be?B(lr,be,ur):lr.createPropertyAccessExpression(w(Ge,ur),"createElement")}e.createJsxFactoryExpression=E;function Q(lr,be,Ge,ur){return be?B(lr,be,ur):lr.createPropertyAccessExpression(w(Ge,ur),"Fragment")}function le(lr,be,Ge,ur,yr,Ir){var wr=[Ge];if(ur&&wr.push(ur),yr&&yr.length>0)if(ur||wr.push(lr.createNull()),yr.length>1)for(var Ur=0,ii=yr;Ur0)if(yr.length>1)for(var mi=0,pe=yr;mi=e.ModuleKind.ES2015&&ii<=e.ModuleKind.ESNext||Ge.impliedNodeFormat===e.ModuleKind.ESNext){var mi=e.getEmitHelpers(Ge);if(mi){for(var pe=[],or=0,qr=mi;or0?Di[or-1]:void 0;return e.Debug.assertEqual(qr[or],be),Di[or]=pe.onEnter(si[or],et,Xi),qr[or]=Ur(pe,be),or}lr.enter=be;function Ge(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ge),e.Debug.assertIsDefined(pe.onLeft),qr[or]=Ur(pe,Ge);var et=pe.onLeft(si[or].left,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.left=Ge;function ur(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],ur),e.Debug.assertIsDefined(pe.onOperator),qr[or]=Ur(pe,ur),pe.onOperator(si[or].operatorToken,Di[or],si[or]),or}lr.operator=ur;function yr(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],yr),e.Debug.assertIsDefined(pe.onRight),qr[or]=Ur(pe,yr);var et=pe.onRight(si[or].right,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.right=yr;function Ir(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ir),qr[or]=Ur(pe,Ir);var et=pe.onExit(si[or],Di[or]);if(or>0){if(or--,pe.foldState){var Gi=qr[or]===Ir?"right":"left";Di[or]=pe.foldState(Di[or],et,Gi)}}else wi.value=et;return or}lr.exit=Ir;function wr(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],wr),or}lr.done=wr;function Ur(pe,or){switch(or){case be:if(pe.onLeft)return Ge;case Ge:if(pe.onOperator)return ur;case ur:if(pe.onRight)return yr;case yr:return Ir;case Ir:return wr;case wr:return wr;default:e.Debug.fail("Invalid state")}}lr.nextState=Ur;function ii(pe,or,qr,si,Di){return pe++,or[pe]=be,qr[pe]=Di,si[pe]=void 0,pe}function mi(pe,or,qr){if(e.Debug.shouldAssert(2))for(;pe>=0;)e.Debug.assert(or[pe]!==qr,"Circular traversal detected."),pe--}})(Er||(Er={}));var Ne=function(){function lr(be,Ge,ur,yr,Ir,wr){this.onEnter=be,this.onLeft=Ge,this.onOperator=ur,this.onRight=yr,this.onExit=Ir,this.foldState=wr}return lr}();function n(lr,be,Ge,ur,yr,Ir){var wr=new Ne(lr,be,Ge,ur,yr,Ir);return Ur;function Ur(ii,mi){for(var pe={value:void 0},or=[Er.enter],qr=[ii],si=[void 0],Di=0;or[Di]!==Er.done;)Di=or[Di](wr,Di,or,qr,si,pe,mi);return e.Debug.assertEqual(Di,0),pe.value}}e.createBinaryExpressionTrampoline=n})(ke||(ke={}));var ke;(function(e){function a(C,w){return w?e.setTextRangePosEnd(C,w.pos,w.end):C}e.setTextRange=a})(ke||(ke={}));var ke;(function(e){var a;(function(d){d[d.None=0]="None",d[d.Yield=1]="Yield",d[d.Await=2]="Await",d[d.Type=4]="Type",d[d.IgnoreMissingOpenBrace=16]="IgnoreMissingOpenBrace",d[d.JSDoc=32]="JSDoc"})(a||(a={}));var C;(function(d){d[d.TryParse=0]="TryParse",d[d.Lookahead=1]="Lookahead",d[d.Reparse=2]="Reparse"})(C||(C={}));var w,B,E,Q,le;e.parseBaseNodeFactory={createBaseSourceFileNode:function(d){return new(le||(le=e.objectAllocator.getSourceFileConstructor()))(d,-1,-1)},createBaseIdentifierNode:function(d){return new(E||(E=e.objectAllocator.getIdentifierConstructor()))(d,-1,-1)},createBasePrivateIdentifierNode:function(d){return new(Q||(Q=e.objectAllocator.getPrivateIdentifierConstructor()))(d,-1,-1)},createBaseTokenNode:function(d){return new(B||(B=e.objectAllocator.getTokenConstructor()))(d,-1,-1)},createBaseNode:function(d){return new(w||(w=e.objectAllocator.getNodeConstructor()))(d,-1,-1)}},e.parseNodeFactory=e.createNodeFactory(1,e.parseBaseNodeFactory);function N(d,D){return D&&d(D)}function p(d,D,fe){if(fe){if(D)return D(fe);for(var g=0,ne=fe;g=0;--Z)g.push(ue[Z]),ne.push(We)}else{var Fe=D(ue,We);if(Fe){if(Fe==="skip")continue;return Fe}if(ue.kind>=161)for(var Be=0,ge=ie(ue);Be=vs.pos}),Qu=Is>=0?e.findIndex(Mi,function(sc){return sc.start>=Ac.pos},Is):-1;Is>=0&&e.addRange(_e,Mi,Is,Qu>=0?Qu:void 0),Dt(function(){var sc=Er;for(Er|=32768,D.setTextPos(Ac.pos),Tr();De()!==1;){var bc=D.getStartPos(),Mc=Ct(0,nc);if(di.push(Mc),bc===D.getStartPos()&&Tr(),st>=0){var Yu=Le.statements[st];if(Mc.end===Yu.pos)break;Mc.end>Yu.pos&&(st=co(Le.statements,st+1))}}Er=sc},2),ra=st>=0?qo(Le.statements,st):-1};ra!==-1;)Ta();if(st>=0){var ha=Le.statements[st];e.addRange(di,Le.statements,st);var Na=e.findIndex(Mi,function(vs){return vs.start>=ha.pos});Na>=0&&e.addRange(_e,Mi,Na)}return de=Nr,ge.updateSourceFile(Le,e.setTextRange(ge.createNodeArray(di),Le.statements));function In(vs){return!(vs.flags&32768)&&!!(vs.transformFlags&16777216)}function qo(vs,Ac){for(var Is=Ac;Is116}function Fi(){return De()===79?!0:De()===125&&Wr()||De()===132&&mr()?!1:De()>116}function ui(Le,Nr,ri){return ri===void 0&&(ri=!0),De()===Le?(ri&&Tr(),!0):(Nr?Ar(Nr):Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}var Bt=Object.keys(e.textToKeywordObj).filter(function(Le){return Le.length>2});function wt(Le){var Nr;if(e.isTaggedTemplateExpression(Le)){nr(e.skipTrivia(Ee,Le.template.pos),Le.template.end,e.Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings);return}var ri=e.isIdentifier(Le)?e.idText(Le):void 0;if(!ri||!e.isIdentifierText(ri,He)){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}var di=e.skipTrivia(Ee,Le.pos);switch(ri){case"const":case"let":case"var":nr(di,Le.end,e.Diagnostics.Variable_declaration_not_allowed_at_this_location);return;case"declare":return;case"interface":na(e.Diagnostics.Interface_name_cannot_be_0,e.Diagnostics.Interface_must_be_given_a_name,18);return;case"is":nr(di,D.getTextPos(),e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case"module":case"namespace":na(e.Diagnostics.Namespace_name_cannot_be_0,e.Diagnostics.Namespace_must_be_given_a_name,18);return;case"type":na(e.Diagnostics.Type_alias_name_cannot_be_0,e.Diagnostics.Type_alias_must_be_given_a_name,63);return}var Mi=(Nr=e.getSpellingSuggestion(ri,Bt,function(st){return st}))!==null&&Nr!==void 0?Nr:Ai(ri);if(Mi){nr(di,Le.end,e.Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0,Mi);return}De()!==0&&nr(di,Le.end,e.Diagnostics.Unexpected_keyword_or_identifier)}function na(Le,Nr,ri){De()===ri?Ar(Nr):Ar(Le,D.getTokenValue())}function Ai(Le){for(var Nr=0,ri=Bt;Nrdi.length+2&&e.startsWith(Le,di))return"".concat(di," ").concat(Le.slice(di.length))}}function Oi(Le,Nr,ri){if(De()===59&&!D.hasPrecedingLineBreak()){Ar(e.Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(De()===20){Ar(e.Diagnostics.Cannot_start_a_function_call_in_a_type_annotation),Tr();return}if(Nr&&!ka()){ri?Ar(e.Diagnostics._0_expected,e.tokenToString(26)):Ar(e.Diagnostics.Expected_for_property_initializer);return}if(!Ba()){if(ri){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}wt(Le)}}function ji(Le){return De()===Le?(vi(),!0):(Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}function Vi(Le,Nr,ri,di){if(De()===Nr){Tr();return}var Mi=Ar(e.Diagnostics._0_expected,e.tokenToString(Nr));!ri||Mi&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,di,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,e.tokenToString(Le),e.tokenToString(Nr)))}function at(Le){return De()===Le?(Tr(),!0):!1}function At(Le){if(De()===Le)return ai()}function ba(Le){if(De()===Le)return Dn()}function $a(Le,Nr,ri){return At(Le)||kn(Le,!1,Nr||e.Diagnostics._0_expected,ri||e.tokenToString(Le))}function Qa(Le){return ba(Le)||kn(Le,!1,e.Diagnostics._0_expected,e.tokenToString(Le))}function ai(){var Le=Ue(),Nr=De();return Tr(),Bi(ge.createToken(Nr),Le)}function Dn(){var Le=Ue(),Nr=De();return vi(),Bi(ge.createToken(Nr),Le)}function ka(){return De()===26?!0:De()===19||De()===1||D.hasPrecedingLineBreak()}function Ba(){return ka()?(De()===26&&Tr(),!0):!1}function pn(){return Ba()||ui(26)}function Cn(Le,Nr,ri,di){var Mi=ge.createNodeArray(Le,di);return e.setTextRangePosEnd(Mi,Nr,ri!=null?ri:D.getStartPos()),Mi}function Bi(Le,Nr,ri){return e.setTextRangePosEnd(Le,Nr,ri!=null?ri:D.getStartPos()),Er&&(Le.flags|=Er),n&&(n=!1,Le.flags|=131072),Le}function kn(Le,Nr,ri,di){Nr?Oe(D.getStartPos(),0,ri,di):ri&&Ar(ri,di);var Mi=Ue(),st=Le===79?ge.createIdentifier("",void 0,void 0):e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,"","",void 0):Le===8?ge.createNumericLiteral("",void 0):Le===10?ge.createStringLiteral("",void 0):Le===276?ge.createMissingDeclaration():ge.createToken(Le);return Bi(st,Mi)}function xn(Le){var Nr=er.get(Le);return Nr===void 0&&er.set(Le,Nr=Le),Nr}function Kn(Le,Nr,ri){if(Le){Cr++;var di=Ue(),Mi=De(),st=xn(D.getTokenValue());return gr(),Bi(ge.createIdentifier(st,void 0,Mi),di)}if(De()===80)return Ar(ri||e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),Kn(!0);if(De()===0&&D.tryScan(function(){return D.reScanInvalidIdentifier()===79}))return Kn(!0);Cr++;var ra=De()===1,Ta=D.isReservedWord(),ha=D.getTokenText(),Na=Ta?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return kn(79,ra,Nr||Na,ha)}function Pn(Le){return Kn(Ki(),void 0,Le)}function eo(Le,Nr){return Kn(Fi(),Le,Nr)}function Rn(Le){return Kn(e.tokenIsIdentifierOrKeyword(De()),Le)}function Da(){return e.tokenIsIdentifierOrKeyword(De())||De()===10||De()===8}function bo(){return e.tokenIsIdentifierOrKeyword(De())||De()===10}function Ro(Le){if(De()===10||De()===8){var Nr=ga();return Nr.text=xn(Nr.text),Nr}return Le&&De()===22?Wn():De()===80?Co():Rn()}function En(){return Ro(!0)}function Wn(){var Le=Ue();ui(22);var Nr=Wt(ns);return ui(23),Bi(ge.createComputedPropertyName(Nr),Le)}function to(Le){var Nr=ir.get(Le);return Nr===void 0&&ir.set(Le,Nr=Le),Nr}function Co(){var Le=Ue(),Nr=ge.createPrivateIdentifier(to(D.getTokenText()));return Tr(),Bi(Nr,Le)}function Ko(Le){return De()===Le&&Ii(no)}function Oo(){return Tr(),D.hasPrecedingLineBreak()?!1:St()}function no(){switch(De()){case 85:return Tr()===92;case 93:return Tr(),De()===88?Rt(pa):De()===152?Rt(Pr):$o();case 88:return pa();case 124:case 136:case 149:return Tr(),St();default:return Oo()}}function $o(){return De()!==41&&De()!==127&&De()!==18&&St()}function Pr(){return Tr(),$o()}function xi(){return e.isModifierKind(De())&&Ii(no)}function St(){return De()===22||De()===18||De()===41||De()===25||Da()}function pa(){return Tr(),De()===84||De()===98||De()===118||De()===126&&Rt(wl)||De()===131&&Rt(Iu)}function dn(Le,Nr){var ri=sa(Le);if(ri)return!0;switch(Le){case 0:case 1:case 3:return!(De()===26&&Nr)&&Ku();case 2:return De()===82||De()===88;case 4:return Rt(bn);case 5:return Rt(Lp)||De()===26&&!Nr;case 6:return De()===22||Da();case 12:switch(De()){case 22:case 41:case 25:case 24:return!0;default:return Da()}case 18:return Da();case 9:return De()===22||De()===25||Da();case 24:return bo();case 7:return De()===18?Rt(Jn):Nr?Fi()&&!Ce():Cu()&&!Ce();case 8:return Hc();case 10:return De()===27||De()===25||Hc();case 19:return De()===101||Fi();case 15:switch(De()){case 27:case 24:return!0}case 11:return De()===25||qs();case 16:return pu(!1);case 17:return pu(!0);case 20:case 21:return De()===27||Xr();case 22:return Ll();case 23:return e.tokenIsIdentifierOrKeyword(De());case 13:return e.tokenIsIdentifierOrKeyword(De())||De()===18;case 14:return!0}return e.Debug.fail("Non-exhaustive case in 'isListElement'.")}function Jn(){if(e.Debug.assert(De()===18),Tr()===19){var Le=Tr();return Le===27||Le===18||Le===94||Le===117}return!0}function Qe(){return Tr(),Fi()}function Gr(){return Tr(),e.tokenIsIdentifierOrKeyword(De())}function S(){return Tr(),e.tokenIsIdentifierOrKeywordOrGreaterThan(De())}function Ce(){return De()===117||De()===94?Rt(qe):!1}function qe(){return Tr(),qs()}function br(){return Tr(),Xr()}function Zr(Le){if(De()===1)return!0;switch(Le){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return De()===19;case 3:return De()===19||De()===82||De()===88;case 7:return De()===18||De()===94||De()===117;case 8:return Si();case 19:return De()===31||De()===20||De()===18||De()===94||De()===117;case 11:return De()===21||De()===26;case 15:case 21:case 10:return De()===23;case 17:case 16:case 18:return De()===21||De()===23;case 20:return De()!==27;case 22:return De()===18||De()===19;case 13:return De()===31||De()===43;case 14:return De()===29&&Rt(fi);default:return!1}}function Si(){return!!(ka()||F_(De())||De()===38)}function Pi(){for(var Le=0;Le<25;Le++)if(Ye&1<=0)}function tc(Le){return Le===6?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function ps(){var Le=Cn([],Ue());return Le.isMissingList=!0,Le}function Qs(Le){return!!Le.isMissingList}function js(Le,Nr,ri,di){if(ui(ri)){var Mi=hs(Le,Nr);return ui(di),Mi}return ps()}function ds(Le,Nr){for(var ri=Ue(),di=Le?Rn(Nr):eo(Nr),Mi=Ue();at(24);){if(De()===29){di.jsdocDotPos=Mi;break}Mi=Ue(),di=Bi(ge.createQualifiedName(di,ce(Le,!1)),ri)}return di}function Ji(Le,Nr){return Bi(ge.createQualifiedName(Le,Nr),Le.pos)}function ce(Le,Nr){if(D.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(De())){var ri=Rt(Pu);if(ri)return kn(79,!0,e.Diagnostics.Identifier_expected)}if(De()===80){var di=Co();return Nr?di:kn(79,!0,e.Diagnostics.Identifier_expected)}return Le?Rn():eo()}function Rr(Le){var Nr=Ue(),ri=[],di;do di=Pt(Le),ri.push(di);while(di.literal.kind===16);return Cn(ri,Nr)}function yi(Le){var Nr=Ue();return Bi(ge.createTemplateExpression(ua(Le),Rr(Le)),Nr)}function qi(){var Le=Ue();return Bi(ge.createTemplateLiteralType(ua(!1),je()),Le)}function je(){var Le=Ue(),Nr=[],ri;do ri=Hr(),Nr.push(ri);while(ri.literal.kind===16);return Cn(Nr,Le)}function Hr(){var Le=Ue();return Bi(ge.createTemplateLiteralTypeSpan(Aa(),pt(!1)),Le)}function pt(Le){return De()===19?(Wi(Le),Xn()):$a(17,e.Diagnostics._0_expected,e.tokenToString(19))}function Pt(Le){var Nr=Ue();return Bi(ge.createTemplateSpan(Wt(ns),pt(Le)),Nr)}function ga(){return fo(De())}function ua(Le){Le&&ct();var Nr=fo(De());return e.Debug.assert(Nr.kind===15,"Template head has wrong token kind"),Nr}function Xn(){var Le=fo(De());return e.Debug.assert(Le.kind===16||Le.kind===17,"Template fragment has wrong token kind"),Le}function jr(Le){var Nr=Le===14||Le===17,ri=D.getTokenText();return ri.substring(1,ri.length-(D.isUnterminated()?0:Nr?1:2))}function fo(Le){var Nr=Ue(),ri=e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,D.getTokenValue(),jr(Le),D.getTokenFlags()&2048):Le===8?ge.createNumericLiteral(D.getTokenValue(),D.getNumericLiteralFlags()):Le===10?ge.createStringLiteral(D.getTokenValue(),void 0,D.hasExtendedUnicodeEscape()):e.isLiteralKind(Le)?ge.createLiteralLikeNode(Le,D.getTokenValue()):e.Debug.fail();return D.hasExtendedUnicodeEscape()&&(ri.hasExtendedUnicodeEscape=!0),D.isUnterminated()&&(ri.isUnterminated=!0),Tr(),Bi(ri,Nr)}function xs(){return ds(!0,e.Diagnostics.Type_expected)}function Fo(){if(!D.hasPrecedingLineBreak()&&Li()===29)return js(20,Aa,29,31)}function ko(){var Le=Ue();return Bi(ge.createTypeReferenceNode(xs(),Fo()),Le)}function Ao(Le){switch(Le.kind){case 178:return e.nodeIsMissing(Le.typeName);case 179:case 180:{var Nr=Le,ri=Nr.parameters,di=Nr.type;return Qs(ri)||Ao(di)}case 191:return Ao(Le.type);default:return!1}}function Ms(Le){return Tr(),Bi(ge.createTypePredicateNode(void 0,Le,Aa()),Le.pos)}function Bs(){var Le=Ue();return Tr(),Bi(ge.createThisTypeNode(),Le)}function xc(){var Le=Ue();return Tr(),Bi(ge.createJSDocAllType(),Le)}function su(){var Le=Ue();return Tr(),Bi(ge.createJSDocNonNullableType(yc(),!1),Le)}function tl(){var Le=Ue();return Tr(),De()===27||De()===19||De()===21||De()===31||De()===63||De()===51?Bi(ge.createJSDocUnknownType(),Le):Bi(ge.createJSDocNullableType(Aa(),!1),Le)}function Zc(){var Le=Ue(),Nr=fr();if(Rt(v)){Tr();var ri=Ei(36),di=vc(58,!1);return wr(Bi(ge.createJSDocFunctionType(ri,di),Le),Nr)}return Bi(ge.createTypeReferenceNode(Rn(),void 0),Le)}function Rf(){var Le=Ue(),Nr;return(De()===108||De()===103)&&(Nr=Rn(),ui(58)),Bi(ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,al(),void 0),Le)}function al(){D.setInJSDocType(!0);var Le=Ue();if(at(141)){var Nr=ge.createJSDocNamepathType(void 0);e:for(;;)switch(De()){case 19:case 1:case 27:case 5:break e;default:vi()}return D.setInJSDocType(!1),Bi(Nr,Le)}var ri=at(25),di=gu();return D.setInJSDocType(!1),ri&&(di=Bi(ge.createJSDocVariadicType(di),Le)),De()===63?(Tr(),Bi(ge.createJSDocOptionalType(di),Le)):di}function Jo(){var Le=Ue();ui(112);var Nr=ds(!0),ri=D.hasPrecedingLineBreak()?void 0:m_();return Bi(ge.createTypeQueryNode(Nr,ri),Le)}function eu(){var Le=Ue(),Nr=Fc(),ri=eo(),di,Mi;at(94)&&(Xr()||!qs()?di=Aa():Mi=kp());var st=at(63)?Aa():void 0,ra=ge.createTypeParameterDeclaration(Nr,ri,di,st);return ra.expression=Mi,Bi(ra,Le)}function Ws(){if(De()===29)return js(19,eu,29,31)}function pu(Le){return De()===25||Hc()||e.isModifierKind(De())||De()===59||Xr(!Le)}function Uu(Le){var Nr=Ol(e.Diagnostics.Private_identifiers_cannot_be_used_as_parameters);return e.getFullWidth(Nr)===0&&!e.some(Le)&&e.isModifierKind(De())&&Tr(),Nr}function Ql(){return Ki()||De()===22||De()===18}function xl(Le){return du(Le)}function Ya(Le){return du(Le,!1)}function du(Le,Nr){Nr===void 0&&(Nr=!0);var ri=Ue(),di=fr(),Mi=Le?Jr(gl):gl();if(De()===108){var st=ge.createParameterDeclaration(Mi,void 0,void 0,Kn(!0),void 0,va(),void 0);return Mi&&Mr(Mi[0],e.Diagnostics.Decorators_may_not_be_applied_to_this_parameters),wr(Bi(st,ri),di)}var ra=Ne;Ne=!1;var Ta=Fc(),ha=At(25);if(!(!Nr&&!Ql())){var Na=wr(Bi(ge.createParameterDeclaration(Mi,Ta,ha,Uu(Ta),At(57),va(),nl()),ri),di);return Ne=ra,Na}}function vc(Le,Nr){if(Kr(Le,Nr))return _r(gu)}function Kr(Le,Nr){return Le===38?(ui(Le),!0):at(58)?!0:Nr&&De()===38?(Ar(e.Diagnostics._0_expected,e.tokenToString(58)),Tr(),!0):!1}function _i(Le,Nr){var ri=Wr(),di=mr();Di(!!(Le&1)),Xi(!!(Le&2));var Mi=Le&32?hs(17,Rf):hs(16,function(){return Nr?xl(di):Ya(di)});return Di(ri),Xi(di),Mi}function Ei(Le){if(!ui(20))return ps();var Nr=_i(Le,!0);return ui(21),Nr}function tt(){at(27)||pn()}function kt(Le){var Nr=Ue(),ri=fr();Le===175&&ui(103);var di=Ws(),Mi=Ei(4),st=vc(58,!0);tt();var ra=Le===174?ge.createCallSignature(di,Mi,st):ge.createConstructSignature(di,Mi,st);return wr(Bi(ra,Nr),ri)}function bt(){return De()===22&&Rt(ia)}function ia(){if(Tr(),De()===25||De()===23)return!0;if(e.isModifierKind(De())){if(Tr(),Fi())return!0}else if(Fi())Tr();else return!1;return De()===58||De()===27?!0:De()!==57?!1:(Tr(),De()===58||De()===27||De()===23)}function Xt(Le,Nr,ri,di){var Mi=js(16,function(){return xl(!1)},22,23),st=va();tt();var ra=ge.createIndexSignature(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}function Za(Le,Nr,ri){var di=En(),Mi=At(57),st;if(De()===20||De()===29){var ra=Ws(),Ta=Ei(4),ha=vc(58,!0);st=ge.createMethodSignature(ri,di,Mi,ra,Ta,ha)}else{var ha=va();st=ge.createPropertySignature(ri,di,Mi,ha),De()===63&&(st.initializer=nl())}return tt(),wr(Bi(st,Le),Nr)}function bn(){if(De()===20||De()===29||De()===136||De()===149)return!0;for(var Le=!1;e.isModifierKind(De());)Le=!0,Tr();return De()===22?!0:(Da()&&(Le=!0,Tr()),Le?De()===20||De()===29||De()===57||De()===58||De()===27||ka():!1)}function _a(){if(De()===20||De()===29)return kt(174);if(De()===103&&Rt(qa))return kt(175);var Le=Ue(),Nr=fr(),ri=Fc();return Ko(136)?Gu(Le,Nr,void 0,ri,172):Ko(149)?Gu(Le,Nr,void 0,ri,173):bt()?Xt(Le,Nr,void 0,ri):Za(Le,Nr,ri)}function qa(){return Tr(),De()===20||De()===29}function rn(){return Tr()===24}function jn(){switch(Tr()){case 20:case 29:case 24:return!0}return!1}function Mo(){var Le=Ue();return Bi(ge.createTypeLiteralNode(ho()),Le)}function ho(){var Le;return ui(18)?(Le=Qi(4,_a),ui(19)):Le=ps(),Le}function gs(){return Tr(),De()===39||De()===40?Tr()===145:(De()===145&&Tr(),De()===22&&Qe()&&Tr()===101)}function Se(){var Le=Ue(),Nr=Rn();ui(101);var ri=Aa();return Bi(ge.createTypeParameterDeclaration(void 0,Nr,ri,void 0),Le)}function hr(){var Le=Ue();ui(18);var Nr;(De()===145||De()===39||De()===40)&&(Nr=ai(),Nr.kind!==145&&ui(145)),ui(22);var ri=Se(),di=at(127)?Aa():void 0;ui(23);var Mi;(De()===57||De()===39||De()===40)&&(Mi=ai(),Mi.kind!==57&&ui(57));var st=va();pn();var ra=Qi(4,_a);return ui(19),Bi(ge.createMappedTypeNode(Nr,ri,di,Mi,st,ra),Le)}function Or(){var Le=Ue();if(at(25))return Bi(ge.createRestTypeNode(Aa()),Le);var Nr=Aa();if(e.isJSDocNullableType(Nr)&&Nr.pos===Nr.type.pos){var ri=ge.createOptionalTypeNode(Nr.type);return e.setTextRange(ri,Nr),ri.flags=Nr.flags,ri}return Nr}function ki(){return Tr()===58||De()===57&&Tr()===58}function dt(){return De()===25?e.tokenIsIdentifierOrKeyword(Tr())&&ki():e.tokenIsIdentifierOrKeyword(De())&&ki()}function la(){if(Rt(dt)){var Le=Ue(),Nr=fr(),ri=At(25),di=Rn(),Mi=At(57);ui(58);var st=Or(),ra=ge.createNamedTupleMember(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}return Or()}function wa(){var Le=Ue();return Bi(ge.createTupleTypeNode(js(21,la,22,23)),Le)}function On(){var Le=Ue();ui(20);var Nr=Aa();return ui(21),Bi(ge.createParenthesizedType(Nr),Le)}function No(){var Le;if(De()===126){var Nr=Ue();Tr();var ri=Bi(ge.createToken(126),Nr);Le=Cn([ri],Nr)}return Le}function jo(){var Le=Ue(),Nr=fr(),ri=No(),di=at(103),Mi=Ws(),st=Ei(4),ra=vc(38,!1),Ta=di?ge.createConstructorTypeNode(ri,Mi,st,ra):ge.createFunctionTypeNode(Mi,st,ra);return di||(Ta.modifiers=ri),wr(Bi(Ta,Le),Nr)}function po(){var Le=ai();return De()===24?void 0:Le}function Gn(Le){var Nr=Ue();Le&&Tr();var ri=De()===110||De()===95||De()===104?ai():fo(De());return Le&&(ri=Bi(ge.createPrefixUnaryExpression(40,ri),Nr)),Bi(ge.createLiteralTypeNode(ri),Nr)}function $n(){return Tr(),De()===100}function Ho(){var Le=Ue(),Nr=D.getTokenPos();ui(18);var ri=D.hasPrecedingLineBreak();ui(129),ui(58);var di=Ha(!0);if(!ui(19)){var Mi=e.lastOrUndefined(_e);Mi&&Mi.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,Nr,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}return Bi(ge.createImportTypeAssertionContainer(di,ri),Le)}function Zo(){ze|=2097152;var Le=Ue(),Nr=at(112);ui(100),ui(20);var ri=Aa(),di;at(27)&&(di=Ho()),ui(21);var Mi=at(24)?xs():void 0,st=Fo();return Bi(ge.createImportTypeNode(ri,di,Mi,st,Nr),Le)}function Es(){return Tr(),De()===8||De()===9}function yc(){switch(De()){case 130:case 155:case 150:case 147:case 158:case 151:case 133:case 153:case 143:case 148:return Ii(po)||ko();case 66:D.reScanAsteriskEqualsToken();case 41:return xc();case 60:D.reScanQuestionToken();case 57:return tl();case 98:return Zc();case 53:return su();case 14:case 10:case 8:case 9:case 110:case 95:case 104:return Gn();case 40:return Rt(Es)?Gn(!0):ko();case 114:return ai();case 108:{var Le=Bs();return De()===139&&!D.hasPrecedingLineBreak()?Ms(Le):Le}case 112:return Rt($n)?Zo():Jo();case 18:return Rt(gs)?hr():Mo();case 22:return wa();case 20:return On();case 100:return Zo();case 128:return Rt(Pu)?sd():ko();case 15:return qi();default:return ko()}}function Xr(Le){switch(De()){case 130:case 155:case 150:case 147:case 158:case 133:case 145:case 151:case 154:case 114:case 153:case 104:case 108:case 112:case 143:case 18:case 22:case 29:case 51:case 50:case 103:case 10:case 8:case 9:case 110:case 95:case 148:case 41:case 57:case 53:case 25:case 137:case 100:case 128:case 14:case 15:return!0;case 98:return!Le;case 40:return!Le&&Rt(Es);case 20:return!Le&&Rt(Ls);default:return Fi()}}function Ls(){return Tr(),De()===21||pu(!1)||Xr()}function Ic(){for(var Le=Ue(),Nr=yc();!D.hasPrecedingLineBreak();)switch(De()){case 53:Tr(),Nr=Bi(ge.createJSDocNonNullableType(Nr,!0),Le);break;case 57:if(Rt(br))return Nr;Tr(),Nr=Bi(ge.createJSDocNullableType(Nr,!0),Le);break;case 22:if(ui(22),Xr()){var ri=Aa();ui(23),Nr=Bi(ge.createIndexedAccessTypeNode(Nr,ri),Le)}else ui(23),Nr=Bi(ge.createArrayTypeNode(Nr),Le);break;default:return Nr}return Nr}function zu(Le){var Nr=Ue();return ui(Le),Bi(ge.createTypeOperatorNode(Le,vp()),Nr)}function vf(){if(at(94)){var Le=pi(Aa);if(xe()||De()!==57)return Le}}function P_(){var Le=Ue(),Nr=eo(),ri=Ii(vf),di=ge.createTypeParameterDeclaration(void 0,Nr,ri);return Bi(di,Le)}function El(){var Le=Ue();return ui(137),Bi(ge.createInferTypeNode(P_()),Le)}function vp(){var Le=De();switch(Le){case 140:case 154:case 145:return zu(Le);case 137:return El()}return _r(Ic)}function oo(Le){if(Cl()){var Nr=jo(),ri=void 0;return e.isFunctionTypeNode(Nr)?ri=Le?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:ri=Le?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,Mr(Nr,ri),Nr}}function I_(Le,Nr,ri){var di=Ue(),Mi=Le===51,st=at(Le),ra=st&&oo(Mi)||Nr();if(De()===Le||st){for(var Ta=[ra];at(Le);)Ta.push(oo(Mi)||Nr());ra=Bi(ri(Cn(Ta,di)),di)}return ra}function yp(){return I_(50,vp,ge.createIntersectionTypeNode)}function Yl(){return I_(51,yp,ge.createUnionTypeNode)}function Bf(){return Tr(),De()===103}function Cl(){return De()===29||De()===20&&Rt(hp)?!0:De()===103||De()===126&&Rt(Bf)}function c_(){if(e.isModifierKind(De())&&Fc(),Fi()||De()===108)return Tr(),!0;if(De()===22||De()===18){var Le=_e.length;return Ol(),Le===_e.length}return!1}function hp(){return Tr(),!!(De()===21||De()===25||c_()&&(De()===58||De()===27||De()===57||De()===63||De()===21&&(Tr(),De()===38)))}function gu(){var Le=Ue(),Nr=Fi()&&Ii(Dp),ri=Aa();return Nr?Bi(ge.createTypePredicateNode(void 0,Nr,ri),Le):ri}function Dp(){var Le=eo();if(De()===139&&!D.hasPrecedingLineBreak())return Tr(),Le}function sd(){var Le=Ue(),Nr=$a(128),ri=De()===108?Bs():eo(),di=at(139)?Aa():void 0;return Bi(ge.createTypePredicateNode(Nr,ri,di),Le)}function Aa(){if(Er&40960)return et(40960,Aa);if(Cl())return jo();var Le=Ue(),Nr=Yl();if(!xe()&&!D.hasPrecedingLineBreak()&&at(94)){var ri=pi(Aa);ui(57);var di=_r(Aa);ui(58);var Mi=_r(Aa);return Bi(ge.createConditionalTypeNode(Nr,ri,di,Mi),Le)}return Nr}function va(){return at(58)?Aa():void 0}function Cu(){switch(De()){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 Rt(jn);default:return Fi()}}function qs(){if(Cu())return!0;switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 45:case 46:case 29:case 132:case 125:case 80:return!0;default:return xp()?!0:Fi()}}function cd(){return De()!==18&&De()!==98&&De()!==84&&De()!==59&&qs()}function ns(){var Le=vr();Le&&wi(!1);for(var Nr=Ue(),ri=hc(),di;di=At(27);)ri=M_(ri,di,hc(),Nr);return Le&&wi(!0),ri}function nl(){return at(63)?hc():void 0}function hc(){if(es())return Jf();var Le=ud()||bp();if(Le)return Le;var Nr=Ue(),ri=O_(0);return ri.kind===79&&De()===38?w_(Nr,ri,void 0):e.isLeftHandSideExpression(ri)&&e.isAssignmentOperator(Ui())?M_(ri,ai(),hc(),Nr):jf(ri,Nr)}function es(){return De()===125?Wr()?!0:Rt(so):!1}function u_(){return Tr(),!D.hasPrecedingLineBreak()&&Fi()}function Jf(){var Le=Ue();return Tr(),!D.hasPrecedingLineBreak()&&(De()===41||qs())?Bi(ge.createYieldExpression(At(41),hc()),Le):Bi(ge.createYieldExpression(void 0,void 0),Le)}function w_(Le,Nr,ri){e.Debug.assert(De()===38,"parseSimpleArrowFunctionExpression should only have been called if we had a =>");var di=ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,void 0,void 0);Bi(di,Nr.pos);var Mi=Cn([di],di.pos,di.end),st=$a(38),ra=_d(!!ri),Ta=ge.createArrowFunction(ri,void 0,Mi,void 0,st,ra);return ii(Bi(Ta,Le))}function ud(){var Le=ku();if(Le!==0)return Le===1?Tp(!0):Ii(fd)}function ku(){return De()===20||De()===29||De()===131?Rt(ld):De()===38?1:0}function ld(){if(De()===131&&(Tr(),D.hasPrecedingLineBreak()||De()!==20&&De()!==29))return 0;var Le=De(),Nr=Tr();if(Le===20){if(Nr===21){var ri=Tr();switch(ri){case 38:case 58:case 18:return 1;default:return 0}}if(Nr===22||Nr===18)return 2;if(Nr===25)return 1;if(e.isModifierKind(Nr)&&Nr!==131&&Rt(Qe))return Rt(function(){return Tr()===127})?0:1;if(!Fi()&&Nr!==108)return 0;switch(Tr()){case 58:return 1;case 57:return Tr(),De()===58||De()===27||De()===63||De()===21?1:0;case 27:case 63:case 21:return 2}return 0}else{if(e.Debug.assert(Le===29),!Fi())return 0;if(Ie===1){var di=Rt(function(){var Mi=Tr();if(Mi===94){var st=Tr();switch(st){case 63:case 31:return!1;default:return!0}}else if(Mi===27||Mi===63)return!0;return!1});return di?1:0}return 2}}function fd(){var Le=D.getTokenPos();if(!(Br!=null&&Br.has(Le))){var Nr=Tp(!1);return Nr||(Br||(Br=new e.Set)).add(Le),Nr}}function bp(){if(De()===131&&Rt(Sp)===1){var Le=Ue(),Nr=Hu(),ri=O_(0);return w_(Le,ri,Nr)}}function Sp(){if(De()===131){if(Tr(),D.hasPrecedingLineBreak()||De()===38)return 0;var Le=O_(0);if(!D.hasPrecedingLineBreak()&&Le.kind===79&&De()===38)return 1}return 0}function Tp(Le){var Nr=Ue(),ri=fr(),di=Hu(),Mi=e.some(di,e.isAsyncModifier)?2:0,st=Ws(),ra;if(ui(20)){if(Le)ra=_i(Mi,Le);else{var Ta=_i(Mi,Le);if(!Ta)return;ra=Ta}if(!ui(21)&&!Le)return}else{if(!Le)return;ra=ps()}var ha=vc(58,!1);if(!(ha&&!Le&&Ao(ha))){for(var Na=ha;(Na==null?void 0:Na.kind)===191;)Na=Na.type;var In=Na&&e.isJSDocFunctionType(Na);if(!(!Le&&De()!==38&&(In||De()!==18))){var qo=De(),co=$a(38),ts=qo===38||qo===18?_d(e.some(di,e.isAsyncModifier)):eo(),vs=ge.createArrowFunction(di,st,ra,ha,co,ts);return wr(Bi(vs,Nr),ri)}}}function _d(Le){if(De()===18)return Cc(Le?2:0);if(De()!==26&&De()!==98&&De()!==84&&Ku()&&!cd())return Cc(16|(Le?2:0));var Nr=Ne;Ne=!1;var ri=Le?Jr(hc):ti(hc);return Ne=Nr,ri}function jf(Le,Nr){var ri=At(57);if(!ri)return Le;var di;return Bi(ge.createConditionalExpression(Le,ri,et(fe,hc),di=$a(58),e.nodeIsPresent(di)?hc():kn(79,!1,e.Diagnostics._0_expected,e.tokenToString(58))),Nr)}function O_(Le){var Nr=Ue(),ri=kp();return pd(Le,ri,Nr)}function F_(Le){return Le===101||Le===160}function pd(Le,Nr,ri){for(;;){Ui();var di=e.getBinaryOperatorPrecedence(De()),Mi=De()===42?di>=Le:di>Le;if(!Mi||De()===101&&Je())break;if(De()===127){if(D.hasPrecedingLineBreak())break;Tr(),Nr=Ep(Nr,Aa())}else Nr=M_(Nr,ai(),O_(di),ri)}return Nr}function xp(){return Je()&&De()===101?!1:e.getBinaryOperatorPrecedence(De())>0}function M_(Le,Nr,ri,di){return Bi(ge.createBinaryExpression(Le,Nr,ri),di)}function Ep(Le,Nr){return Bi(ge.createAsExpression(Le,Nr),Le.pos)}function ol(){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr(mu)),Le)}function Au(){var Le=Ue();return Bi(ge.createDeleteExpression(Vr(mu)),Le)}function ru(){var Le=Ue();return Bi(ge.createTypeOfExpression(Vr(mu)),Le)}function yf(){var Le=Ue();return Bi(ge.createVoidExpression(Vr(mu)),Le)}function Cp(){return De()===132?mr()?!0:Rt(so):!1}function dd(){var Le=Ue();return Bi(ge.createAwaitExpression(Vr(mu)),Le)}function kp(){if(gd()){var Le=Ue(),Nr=hf();return De()===42?pd(e.getBinaryOperatorPrecedence(De()),Nr,Le):Nr}var ri=De(),di=mu();if(De()===42){var Le=e.skipTrivia(Ee,di.pos),Mi=di.end;di.kind===211?nr(Le,Mi,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):nr(Le,Mi,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(ri))}return di}function mu(){switch(De()){case 39:case 40:case 54:case 53:return ol();case 89:return Au();case 112:return ru();case 114:return yf();case 29:return qu();case 132:if(Cp())return dd();default:return hf()}}function gd(){switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 132:return!1;case 29:if(Ie!==1)return!1;default:return!0}}function hf(){if(De()===45||De()===46){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr($l)),Le)}else if(Ie===1&&De()===29&&Rt(S))return l_(!0);var Nr=$l();if(e.Debug.assert(e.isLeftHandSideExpression(Nr)),(De()===45||De()===46)&&!D.hasPrecedingLineBreak()){var ri=De();return Tr(),Bi(ge.createPostfixUnaryExpression(Nr,ri),Nr.pos)}return Nr}function $l(){var Le=Ue(),Nr;return De()===100?Rt(qa)?(ze|=2097152,Nr=ai()):Rt(rn)?(Tr(),Tr(),Nr=Bi(ge.createMetaProperty(100,Rn()),Le),ze|=4194304):Nr=Uf():Nr=De()===106?L_():Uf(),Ps(Le,Nr)}function Uf(){var Le=Ue(),Nr=vu();return Ec(Le,Nr,!0)}function L_(){var Le=Ue(),Nr=ai();if(De()===29){var ri=Ue(),di=Ii(Gc);di!==void 0&&nr(ri,Ue(),e.Diagnostics.super_may_not_use_type_arguments)}return De()===20||De()===24||De()===22?Nr:($a(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!0)),Le))}function l_(Le,Nr,ri){var di=Ue(),Mi=Zl(Le),st;if(Mi.kind===280){var ra=ks(Mi),Ta=void 0,ha=ra[ra.length-1];if((ha==null?void 0:ha.kind)===278&&!l(ha.openingElement.tagName,ha.closingElement.tagName)&&l(Mi.tagName,ha.closingElement.tagName)){var Na=ha.children.end,In=Bi(ge.createJsxElement(ha.openingElement,ha.children,Bi(ge.createJsxClosingElement(Bi(ge.createIdentifier(""),Na,Na)),Na,Na)),ha.openingElement.pos,Na);ra=Cn(Ve(Ve([],ra.slice(0,ra.length-1),!0),[In],!1),ra.pos,Na),Ta=ha.closingElement}else Ta=Al(Mi,Le),l(Mi.tagName,Ta.tagName)||(ri&&e.isJsxOpeningElement(ri)&&l(Ta.tagName,ri.tagName)?Mr(Mi.tagName,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)):Mr(Ta.tagName,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)));st=Bi(ge.createJsxElement(Mi,ra,Ta),di)}else Mi.kind===283?st=Bi(ge.createJsxFragment(Mi,ks(Mi),wc(Le)),di):(e.Debug.assert(Mi.kind===279),st=Mi);if(Le&&De()===29){var qo=typeof Nr>"u"?st.pos:Nr,co=Ii(function(){return l_(!0,qo)});if(co){var ts=kn(27,!1);return e.setTextRangePosWidth(ts,co.pos,0),nr(e.skipTrivia(Ee,qo),co.end,e.Diagnostics.JSX_expressions_must_have_one_parent_element),Bi(ge.createBinaryExpression(st,ts,co),di)}}return st}function f_(){var Le=Ue(),Nr=ge.createJsxText(D.getTokenValue(),ye===12);return ye=D.scanJsxToken(),Bi(Nr,Le)}function md(Le,Nr){switch(Nr){case 1:if(e.isJsxOpeningFragment(Le))Mr(Le,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);else{var ri=Le.tagName,di=e.skipTrivia(Ee,ri.pos);nr(di,ri.end,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Le.tagName))}return;case 30:case 7:return;case 11:case 12:return f_();case 18:return kl(!1);case 29:return l_(!1,void 0,Le);default:return e.Debug.assertNever(Nr)}}function ks(Le){var Nr=[],ri=Ue(),di=Ye;for(Ye|=1<<14;;){var Mi=md(Le,ye=D.reScanJsxToken());if(!Mi||(Nr.push(Mi),e.isJsxOpeningElement(Le)&&(Mi==null?void 0:Mi.kind)===278&&!l(Mi.openingElement.tagName,Mi.closingElement.tagName)&&l(Le.tagName,Mi.closingElement.tagName)))break}return Ye=di,Cn(Nr,ri)}function Wu(){var Le=Ue();return Bi(ge.createJsxAttributes(Qi(13,__)),Le)}function Zl(Le){var Nr=Ue();if(ui(29),De()===31)return xt(),Bi(ge.createJsxOpeningFragment(),Nr);var ri=R_(),di=(Er&262144)===0?m_():void 0,Mi=Wu(),st;return De()===31?(xt(),st=ge.createJsxOpeningElement(ri,di,Mi)):(ui(43),ui(31,void 0,!1)&&(Le?Tr():xt()),st=ge.createJsxSelfClosingElement(ri,di,Mi)),Bi(st,Nr)}function R_(){var Le=Ue();Mt();for(var Nr=De()===108?ai():Rn();at(24);)Nr=Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!1)),Le);return Nr}function kl(Le){var Nr=Ue();if(!!ui(18)){var ri,di;return De()!==19&&(ri=At(25),di=ns()),Le?ui(19):ui(19,void 0,!1)&&xt(),Bi(ge.createJsxExpression(ri,di),Nr)}}function __(){if(De()===18)return zd();Mt();var Le=Ue();return Bi(ge.createJsxAttribute(Rn(),De()!==63?void 0:ut()===10?ga():kl(!0)),Le)}function zd(){var Le=Ue();ui(18),ui(25);var Nr=ns();return ui(19),Bi(ge.createJsxSpreadAttribute(Nr),Le)}function Al(Le,Nr){var ri=Ue();ui(30);var di=R_();return ui(31,void 0,!1)&&(Nr||!l(Le.tagName,di)?Tr():xt()),Bi(ge.createJsxClosingElement(di),ri)}function wc(Le){var Nr=Ue();return ui(30),e.tokenIsIdentifierOrKeyword(De())&&Mr(R_(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment),ui(31,void 0,!1)&&(Le?Tr():xt()),Bi(ge.createJsxJsxClosingFragment(),Nr)}function qu(){var Le=Ue();ui(29);var Nr=Aa();ui(31);var ri=mu();return Bi(ge.createTypeAssertion(Nr,ri),Le)}function Vu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())||De()===22||Zn()}function ef(){return De()===28&&Rt(Vu)}function sl(Le){if(Le.flags&32)return!0;if(e.isNonNullExpression(Le)){for(var Nr=Le.expression;e.isNonNullExpression(Nr)&&!(Nr.flags&32);)Nr=Nr.expression;if(Nr.flags&32){for(;e.isNonNullExpression(Le);)Le.flags|=32,Le=Le.expression;return!0}}return!1}function p_(Le,Nr,ri){var di=ce(!0,!0),Mi=ri||sl(Nr),st=Mi?ge.createPropertyAccessChain(Nr,ri,di):ge.createPropertyAccessExpression(Nr,di);return Mi&&e.isPrivateIdentifier(st.name)&&Mr(st.name,e.Diagnostics.An_optional_chain_cannot_contain_private_identifiers),Bi(st,Le)}function Df(Le,Nr,ri){var di;if(De()===23)di=kn(79,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var Mi=Wt(ns);e.isStringOrNumericLiteralLike(Mi)&&(Mi.text=xn(Mi.text)),di=Mi}ui(23);var st=ri||sl(Nr)?ge.createElementAccessChain(Nr,ri,di):ge.createElementAccessExpression(Nr,di);return Bi(st,Le)}function Ec(Le,Nr,ri){for(;;){var di=void 0,Mi=!1;if(ri&&ef()?(di=$a(28),Mi=e.tokenIsIdentifierOrKeyword(De())):Mi=at(24),Mi){Nr=p_(Le,Nr,di);continue}if((di||!vr())&&at(22)){Nr=Df(Le,Nr,di);continue}if(Zn()){Nr=!di&&Nr.kind===228?os(Le,Nr.expression,di,Nr.typeArguments):os(Le,Nr,di,void 0);continue}if(!di){if(De()===53&&!D.hasPrecedingLineBreak()){Tr(),Nr=Bi(ge.createNonNullExpression(Nr),Le);continue}var st=Ii(Gc);if(st){Nr=Bi(ge.createExpressionWithTypeArguments(Nr,st),Le);continue}}return Nr}}function Zn(){return De()===14||De()===15}function os(Le,Nr,ri,di){var Mi=ge.createTaggedTemplateExpression(Nr,di,De()===14?(ct(),ga()):yi(!0));return(ri||Nr.flags&32)&&(Mi.flags|=32),Mi.questionDotToken=ri,Bi(Mi,Le)}function Ps(Le,Nr){for(;;){Nr=Ec(Le,Nr,!0);var ri=void 0,di=At(28);if(di&&(ri=Ii(Gc),Zn())){Nr=os(Le,Nr,di,ri);continue}if(ri||De()===20){!di&&Nr.kind===228&&(ri=Nr.typeArguments,Nr=Nr.expression);var Mi=d_(),st=di||sl(Nr)?ge.createCallChain(Nr,di,ri,Mi):ge.createCallExpression(Nr,ri,Mi);Nr=Bi(st,Le);continue}if(di){var ra=kn(79,!1,e.Diagnostics.Identifier_expected);Nr=Bi(ge.createPropertyAccessChain(Nr,di,ra),Le)}break}return Nr}function d_(){ui(20);var Le=hs(11,Nl);return ui(21),Le}function Gc(){if((Er&262144)===0&&Li()===29){Tr();var Le=hs(20,Aa);if(!!ui(31))return Le&&B_()?Le:void 0}}function B_(){switch(De()){case 20:case 14:case 15:return!0}return!qs()}function vu(){switch(De()){case 8:case 9:case 10:case 14:return ga();case 108:case 106:case 104:case 110:case 95:return ai();case 20:return Gt();case 22:return cl();case 18:return Ut();case 131:if(!Rt(Iu))break;return Ds();case 84:return tn();case 98:return Ds();case 103:return bs();case 43:case 68:if(Yi()===13)return ga();break;case 15:return yi(!1);case 80:return Co()}return eo(e.Diagnostics.Expression_expected)}function Gt(){var Le=Ue(),Nr=fr();ui(20);var ri=Wt(ns);return ui(21),wr(Bi(ge.createParenthesizedExpression(ri),Le),Nr)}function As(){var Le=Ue();ui(25);var Nr=hc();return Bi(ge.createSpreadElement(Nr),Le)}function vn(){return De()===25?As():De()===27?Bi(ge.createOmittedExpression(),Ue()):hc()}function Nl(){return et(fe,vn)}function cl(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(22),di=D.hasPrecedingLineBreak(),Mi=hs(15,vn);return Vi(22,23,ri,Nr),Bi(ge.createArrayLiteralExpression(Mi,di),Le)}function rf(){var Le=Ue(),Nr=fr();if(At(25)){var ri=hc();return wr(Bi(ge.createSpreadAssignment(ri),Le),Nr)}var di=gl(),Mi=Fc();if(Ko(136))return Gu(Le,Nr,di,Mi,172);if(Ko(149))return Gu(Le,Nr,di,Mi,173);var st=At(41),ra=Fi(),Ta=En(),ha=At(57),Na=At(53);if(st||De()===20||De()===29)return pl(Le,Nr,di,Mi,st,Ta,ha,Na);var In,qo=ra&&De()!==58;if(qo){var co=At(63),ts=co?Wt(hc):void 0;In=ge.createShorthandPropertyAssignment(Ta,ts),In.equalsToken=co}else{ui(58);var vs=Wt(hc);In=ge.createPropertyAssignment(Ta,vs)}return In.decorators=di,In.modifiers=Mi,In.questionToken=ha,In.exclamationToken=Na,wr(Bi(In,Le),Nr)}function Ut(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(18),di=D.hasPrecedingLineBreak(),Mi=hs(12,rf,!0);return Vi(18,19,ri,Nr),Bi(ge.createObjectLiteralExpression(Mi,di),Le)}function Ds(){var Le=vr();wi(!1);var Nr=Ue(),ri=fr(),di=Fc();ui(98);var Mi=At(41),st=Mi?1:0,ra=e.some(di,e.isAsyncModifier)?2:0,Ta=st&&ra?Ze(bf):st?ae(bf):ra?Jr(bf):bf(),ha=Ws(),Na=Ei(st|ra),In=vc(58,!1),qo=Cc(st|ra);wi(Le);var co=ge.createFunctionExpression(di,Mi,Ta,ha,Na,In,qo);return wr(Bi(co,Nr),ri)}function bf(){return Ki()?Pn():void 0}function bs(){var Le=Ue();if(ui(103),at(24)){var Nr=Rn();return Bi(ge.createMetaProperty(103,Nr),Le)}var ri=Ue(),di=Ec(ri,vu(),!1),Mi;di.kind===228&&(Mi=di.typeArguments,di=di.expression);var st=De()===20?d_():void 0;return Bi(ge.createNewExpression(di,Mi,st),Le)}function Dc(Le,Nr){var ri=Ue(),di=fr(),Mi=D.getTokenPos(),st=ui(18,Nr);if(st||Le){var ra=D.hasPrecedingLineBreak(),Ta=Qi(1,nc);Vi(18,19,st,Mi);var ha=wr(Bi(ge.createBlock(Ta,ra),ri),di);return De()===63&&(Ar(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),Tr()),ha}else{var Ta=ps();return wr(Bi(ge.createBlock(Ta,void 0),ri),di)}}function Cc(Le,Nr){var ri=Wr();Di(!!(Le&1));var di=mr();Xi(!!(Le&2));var Mi=Ne;Ne=!1;var st=vr();st&&wi(!1);var ra=Dc(!!(Le&16),Nr);return st&&wi(!0),Ne=Mi,Di(ri),Xi(di),ra}function ac(){var Le=Ue(),Nr=fr();return ui(26),wr(Bi(ge.createEmptyStatement(),Le),Nr)}function Pl(){var Le=Ue(),Nr=fr();ui(99);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc(),ra=at(91)?nc():void 0;return wr(Bi(ge.createIfStatement(Mi,st,ra),Le),Nr)}function Il(){var Le=Ue(),Nr=fr();ui(90);var ri=nc();ui(115);var di=D.getTokenPos(),Mi=ui(20),st=Wt(ns);return Vi(20,21,Mi,di),at(26),wr(Bi(ge.createDoStatement(ri,st),Le),Nr)}function zf(){var Le=Ue(),Nr=fr();ui(115);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc();return wr(Bi(ge.createWhileStatement(Mi,st),Le),Nr)}function ul(){var Le=Ue(),Nr=fr();ui(97);var ri=At(132);ui(20);var di;De()!==26&&(De()===113||De()===119||De()===85?di=z_(!0):di=Zt(ns));var Mi;if(ri?ui(160):at(160)){var st=Wt(hc);ui(21),Mi=ge.createForOfStatement(ri,di,st,nc())}else if(at(101)){var st=Wt(ns);ui(21),Mi=ge.createForInStatement(di,st,nc())}else{ui(26);var ra=De()!==26&&De()!==21?Wt(ns):void 0;ui(26);var Ta=De()!==21?Wt(ns):void 0;ui(21),Mi=ge.createForStatement(di,ra,Ta,nc())}return wr(Bi(Mi,Le),Nr)}function Nu(Le){var Nr=Ue(),ri=fr();ui(Le===246?81:86);var di=ka()?void 0:eo();pn();var Mi=Le===246?ge.createBreakStatement(di):ge.createContinueStatement(di);return wr(Bi(Mi,Nr),ri)}function Us(){var Le=Ue(),Nr=fr();ui(105);var ri=ka()?void 0:Wt(ns);return pn(),wr(Bi(ge.createReturnStatement(ri),Le),Nr)}function Ap(){var Le=Ue(),Nr=fr();ui(116);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=Gi(33554432,nc);return wr(Bi(ge.createWithStatement(Mi,st),Le),Nr)}function Wf(){var Le=Ue(),Nr=fr();ui(82);var ri=Wt(ns);ui(58);var di=Qi(3,nc);return wr(Bi(ge.createCaseClause(ri,di),Le),Nr)}function Sf(){var Le=Ue();ui(88),ui(58);var Nr=Qi(3,nc);return Bi(ge.createDefaultClause(Nr),Le)}function ll(){return De()===82?Wf():Sf()}function J_(){var Le=Ue();ui(18);var Nr=Qi(2,ll);return ui(19),Bi(ge.createCaseBlock(Nr),Le)}function j_(){var Le=Ue(),Nr=fr();ui(107),ui(20);var ri=Wt(ns);ui(21);var di=J_();return wr(Bi(ge.createSwitchStatement(ri,di),Le),Nr)}function U_(){var Le=Ue(),Nr=fr();ui(109);var ri=D.hasPrecedingLineBreak()?void 0:Wt(ns);return ri===void 0&&(Cr++,ri=Bi(ge.createIdentifier(""),Ue())),Ba()||wt(ri),wr(Bi(ge.createThrowStatement(ri),Le),Nr)}function iu(){var Le=Ue(),Nr=fr();ui(111);var ri=Dc(!1),di=De()===83?vd():void 0,Mi;return(!di||De()===96)&&(ui(96,e.Diagnostics.catch_or_finally_expected),Mi=Dc(!1)),wr(Bi(ge.createTryStatement(ri,di,Mi),Le),Nr)}function vd(){var Le=Ue();ui(83);var Nr;at(20)?(Nr=xf(),ui(21)):Nr=void 0;var ri=Dc(!1);return Bi(ge.createCatchClause(Nr,ri),Le)}function qf(){var Le=Ue(),Nr=fr();return ui(87),pn(),wr(Bi(ge.createDebuggerStatement(),Le),Nr)}function dc(){var Le=Ue(),Nr=fr(),ri,di=De()===20,Mi=Wt(ns);return e.isIdentifier(Mi)&&at(58)?ri=ge.createLabeledStatement(Mi,nc()):(Ba()||wt(Mi),ri=ge.createExpressionStatement(Mi),di&&(Nr=!1)),wr(Bi(ri,Le),Nr)}function Pu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())&&!D.hasPrecedingLineBreak()}function wl(){return Tr(),De()===84&&!D.hasPrecedingLineBreak()}function Iu(){return Tr(),De()===98&&!D.hasPrecedingLineBreak()}function so(){return Tr(),(e.tokenIsIdentifierOrKeyword(De())||De()===8||De()===9||De()===10)&&!D.hasPrecedingLineBreak()}function Et(){for(;;)switch(De()){case 113:case 119:case 85:case 98:case 84:case 92:return!0;case 118:case 152:return u_();case 141:case 142:return Tf();case 126:case 131:case 135:case 121:case 122:case 123:case 145:if(Tr(),D.hasPrecedingLineBreak())return!1;continue;case 157:return Tr(),De()===18||De()===79||De()===93;case 100:return Tr(),De()===10||De()===41||De()===18||e.tokenIsIdentifierOrKeyword(De());case 93:var Le=Tr();if(Le===152&&(Le=Rt(Tr)),Le===63||Le===41||Le===18||Le===88||Le===127)return!0;continue;case 124:Tr();continue;default:return!1}}function Ys(){return Rt(Et)}function Ku(){switch(De()){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 Ys()||Rt(jn);case 85:case 93:return Ys();case 131:case 135:case 118:case 141:case 142:case 152:case 157:return!0;case 123:case 121:case 122:case 124:case 145:return Ys()||!Rt(Pu);default:return qs()}}function Np(){return Tr(),Ki()||De()===18||De()===22}function Pp(){return Rt(Np)}function nc(){switch(De()){case 26:return ac();case 18:return Dc(!1);case 113:return rs(Ue(),fr(),void 0,void 0);case 119:if(Pp())return rs(Ue(),fr(),void 0,void 0);break;case 98:return Op(Ue(),fr(),void 0,void 0);case 84:return Ml(Ue(),fr(),void 0,void 0);case 99:return Pl();case 90:return Il();case 115:return zf();case 97:return ul();case 86:return Nu(245);case 81:return Nu(246);case 105:return Us();case 116:return Ap();case 107:return j_();case 109:return U_();case 111:case 83:case 96:return iu();case 87:return qf();case 59:return _l();case 131:case 118:case 152:case 141:case 142:case 135:case 85:case 92:case 93:case 100:case 121:case 122:case 123:case 126:case 124:case 145:case 157:if(Ys())return _l();break}return dc()}function fl(Le){return Le.kind===135}function _l(){var Le=e.some(Rt(function(){return gl(),Fc()}),fl);if(Le){var Nr=cu();if(Nr)return Nr}var ri=Ue(),di=fr(),Mi=gl(),st=Fc();if(Le){for(var ra=0,Ta=st;ra=0),e.Debug.assert(Na<=co),e.Debug.assert(co<=qo.length),!m(qo,Na))return;var ts,vs,Ac,Is,Qu,sc=[],bc=[];return D.scanRange(Na+3,In-5,function(){var It=1,Ma,aa=Na-(qo.lastIndexOf(` +`,Na)+1)+4;function Ja(Js){Ma||(Ma=aa),sc.push(Js),aa+=Js.length}for(vi();Up(5););Up(4)&&(It=0,aa=0);e:for(;;){switch(De()){case 59:It===0||It===1?(Yu(sc),Qu||(Qu=Ue()),Vs(W(aa)),It=0,Ma=void 0):Ja(D.getTokenText());break;case 4:sc.push(D.getTokenText()),It=0,aa=0;break;case 41:var _n=D.getTokenText();It===1||It===2?(It=2,Ja(_n)):(It=1,aa+=_n.length);break;case 5:var ro=D.getTokenText();It===2?sc.push(ro):Ma!==void 0&&aa+ro.length>Ma&&sc.push(ro.slice(Ma-aa)),aa+=ro.length;break;case 1:break e;case 18:It=2;var as=D.getStartPos(),cc=D.getTextPos()-1,Sc=rt(cc);if(Sc){Is||Mc(sc),bc.push(Bi(ge.createJSDocText(sc.join("")),Is!=null?Is:Na,as)),bc.push(Sc),sc=[],Is=D.getTextPos();break}default:It=2,Ja(D.getTokenText());break}vi()}Yu(sc),bc.length&&sc.length&&bc.push(Bi(ge.createJSDocText(sc.join("")),Is!=null?Is:Na,Qu)),bc.length&&ts&&e.Debug.assertIsDefined(Qu,"having parsed tags implies that the end of the comment span should be set");var hu=ts&&Cn(ts,vs,Ac);return Bi(ge.createJSDocComment(bc.length?Cn(bc,Na,Qu):sc.length?sc.join(""):void 0,hu),Na,co)});function Mc(It){for(;It.length&&(It[0]===` +`||It[0]==="\r");)It.shift()}function Yu(It){for(;It.length&&It[It.length-1].trim()==="";)It.pop()}function Rl(){for(;;){if(vi(),De()===1)return!0;if(!(De()===5||De()===4))return!1}}function Lc(){if(!((De()===5||De()===4)&&Rt(Rl)))for(;De()===5||De()===4;)vi()}function _(){if((De()===5||De()===4)&&Rt(Rl))return"";for(var It=D.hasPrecedingLineBreak(),Ma=!1,aa="";It&&De()===41||De()===5||De()===4;)aa+=D.getTokenText(),De()===4?(It=!0,Ma=!0,aa=""):De()===41&&(It=!1),vi();return Ma?aa:""}function W(It){e.Debug.assert(De()===59);var Ma=D.getTokenPos();vi();var aa=ff(void 0),Ja=_(),_n;switch(aa.escapedText){case"author":_n=Jt(Ma,aa,It,Ja);break;case"implements":_n=Xf(Ma,aa,It,Ja);break;case"augments":case"extends":_n=bd(Ma,aa,It,Ja);break;case"class":case"constructor":_n=kf(Ma,ge.createJSDocClassTag,aa,It,Ja);break;case"public":_n=kf(Ma,ge.createJSDocPublicTag,aa,It,Ja);break;case"private":_n=kf(Ma,ge.createJSDocPrivateTag,aa,It,Ja);break;case"protected":_n=kf(Ma,ge.createJSDocProtectedTag,aa,It,Ja);break;case"readonly":_n=kf(Ma,ge.createJSDocReadonlyTag,aa,It,Ja);break;case"override":_n=kf(Ma,ge.createJSDocOverrideTag,aa,It,Ja);break;case"deprecated":Ur=!0,_n=kf(Ma,ge.createJSDocDeprecatedTag,aa,It,Ja);break;case"this":_n=Gg(Ma,aa,It,Ja);break;case"enum":_n=Af(Ma,aa,It,Ja);break;case"arg":case"argument":case"param":return jp(Ma,aa,2,It);case"return":case"returns":_n=Om(Ma,aa,It,Ja);break;case"template":_n=Lm(Ma,aa,It,Ja);break;case"type":_n=Fm(Ma,aa,It,Ja);break;case"typedef":_n=Hg(Ma,aa,It,Ja);break;case"callback":_n=fg(Ma,aa,It,Ja);break;case"see":_n=Vg(Ma,aa,It,Ja);break;default:_n=vo(Ma,aa,It,Ja);break}return _n}function Te(It,Ma,aa,Ja){return Ja||(aa+=Ma-It),cr(aa,Ja.slice(aa))}function cr(It,Ma){var aa=Ue(),Ja=[],_n=[],ro,as=0,cc=!0,Sc;function hu(Sd){Sc||(Sc=It),Ja.push(Sd),It+=Sd.length}Ma!==void 0&&(Ma!==""&&hu(Ma),as=1);var Js=De();e:for(;;){switch(Js){case 4:as=0,Ja.push(D.getTokenText()),It=0;break;case 59:if(as===3||as===2&&(!cc||Rt(ni))){Ja.push(D.getTokenText());break}D.setTextPos(D.getTextPos()-1);case 1:break e;case 5:if(as===2||as===3)hu(D.getTokenText());else{var Qf=D.getTokenText();Sc!==void 0&&It+Qf.length>Sc&&Ja.push(Qf.slice(Sc-It)),It+=Qf.length}break;case 18:as=2;var go=D.getStartPos(),Vd=D.getTextPos()-1,X_=rt(Vd);X_?(_n.push(Bi(ge.createJSDocText(Ja.join("")),ro!=null?ro:aa,go)),_n.push(X_),Ja=[],ro=D.getTextPos()):hu(D.getTokenText());break;case 61:as===3?as=2:as=3,hu(D.getTokenText());break;case 41:if(as===0){as=1,It+=1;break}default:as!==3&&(as=2),hu(D.getTokenText());break}cc=De()===5,Js=vi()}if(Mc(Ja),Yu(Ja),_n.length)return Ja.length&&_n.push(Bi(ge.createJSDocText(Ja.join("")),ro!=null?ro:aa)),Cn(_n,aa,D.getTextPos());if(Ja.length)return Ja.join("")}function ni(){var It=vi();return It===5||It===4}function rt(It){var Ma=Ii(yt);if(!!Ma){vi(),Lc();var aa=Ue(),Ja=e.tokenIsIdentifierOrKeyword(De())?ds(!0):void 0;if(Ja)for(;De()===80;)nt(),vi(),Ja=Bi(ge.createJSDocMemberName(Ja,eo()),aa);for(var _n=[];De()!==19&&De()!==4&&De()!==1;)_n.push(D.getTokenText()),vi();var ro=Ma==="link"?ge.createJSDocLink:Ma==="linkcode"?ge.createJSDocLinkCode:ge.createJSDocLinkPlain;return Bi(ro(Ja,_n.join("")),It,D.getTextPos())}}function yt(){if(_(),De()===18&&vi()===59&&e.tokenIsIdentifierOrKeyword(vi())){var It=D.getTokenValue();if(Xa(It))return It}}function Xa(It){return It==="link"||It==="linkcode"||It==="linkplain"}function vo(It,Ma,aa,Ja){return Bi(ge.createJSDocUnknownTag(Ma,Te(It,Ue(),aa,Ja)),It)}function Vs(It){!It||(ts?ts.push(It):(ts=[It],vs=It.pos),Ac=It.end)}function H_(){return _(),De()===18?ri():void 0}function y_(){var It=Up(22);It&&Lc();var Ma=Up(61),aa=Rm();return Ma&&Qa(61),It&&(Lc(),At(63)&&ns(),ui(23)),{name:aa,isBracketed:It}}function Dd(It){switch(It.kind){case 148:return!0;case 183:return Dd(It.elementType);default:return e.isTypeReferenceNode(It)&&e.isIdentifier(It.typeName)&&It.typeName.escapedText==="Object"&&!It.typeArguments}}function jp(It,Ma,aa,Ja){var _n=H_(),ro=!_n;_();var as=y_(),cc=as.name,Sc=as.isBracketed,hu=_();ro&&!Rt(yt)&&(_n=H_());var Js=Te(It,Ue(),Ja,hu),Qf=aa!==4&&lg(_n,cc,aa,Ja);Qf&&(_n=Qf,ro=!0);var go=aa===1?ge.createJSDocPropertyTag(Ma,cc,Sc,_n,ro,Js):ge.createJSDocParameterTag(Ma,cc,Sc,_n,ro,Js);return Bi(go,It)}function lg(It,Ma,aa,Ja){if(It&&Dd(It.type)){for(var _n=Ue(),ro=void 0,as=void 0;ro=Ii(function(){return Bl(aa,Ja,Ma)});)(ro.kind===340||ro.kind===347)&&(as=e.append(as,ro));if(as){var cc=Bi(ge.createJSDocTypeLiteral(as,It.type.kind===183),_n);return Bi(ge.createJSDocTypeExpression(cc),_n)}}}function Om(It,Ma,aa,Ja){e.some(ts,e.isJSDocReturnTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=H_();return Bi(ge.createJSDocReturnTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Fm(It,Ma,aa,Ja){e.some(ts,e.isJSDocTypeTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=ri(!0),ro=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocTypeTag(Ma,_n,ro),It)}function Vg(It,Ma,aa,Ja){var _n=De()===22||Rt(function(){return vi()===59&&e.tokenIsIdentifierOrKeyword(vi())&&Xa(D.getTokenValue())}),ro=_n?void 0:di(),as=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocSeeTag(Ma,ro,as),It)}function Jt(It,Ma,aa,Ja){var _n=Ue(),ro=ml(),as=D.getStartPos(),cc=Te(It,as,aa,Ja);cc||(as=D.getStartPos());var Sc=typeof cc!="string"?Cn(e.concatenate([Bi(ro,_n,as)],cc),_n):ro.text+cc;return Bi(ge.createJSDocAuthorTag(Ma,Sc),It)}function ml(){for(var It=[],Ma=!1,aa=D.getToken();aa!==1&&aa!==4;){if(aa===29)Ma=!0;else{if(aa===59&&!Ma)break;if(aa===31&&Ma){It.push(D.getTokenText()),D.setTextPos(D.getTokenPos()+1);break}}It.push(D.getTokenText()),aa=vi()}return ge.createJSDocText(It.join(""))}function Xf(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocImplementsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function bd(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocAugmentsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function lf(){var It=at(18),Ma=Ue(),aa=Kg(),Ja=m_(),_n=ge.createExpressionWithTypeArguments(aa,Ja),ro=Bi(_n,Ma);return It&&ui(19),ro}function Kg(){for(var It=Ue(),Ma=ff();at(24);){var aa=ff();Ma=Bi(ge.createPropertyAccessExpression(Ma,aa),It)}return Ma}function kf(It,Ma,aa,Ja,_n){return Bi(Ma(aa,Te(It,Ue(),Ja,_n)),It)}function Gg(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocThisTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Af(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocEnumTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Hg(It,Ma,aa,Ja){var _n,ro=H_();_();var as=Wd();Lc();var cc=cr(aa),Sc;if(!ro||Dd(ro.type)){for(var hu=void 0,Js=void 0,Qf=void 0,go=!1;hu=Ii(function(){return Xg(aa)});)if(go=!0,hu.kind===343)if(Js){var Vd=Ar(e.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);Vd&&e.addRelatedInfo(Vd,e.createDetachedDiagnostic(Re,0,0,e.Diagnostics.The_tag_was_first_specified_here));break}else Js=hu;else Qf=e.append(Qf,hu);if(go){var X_=ro&&ro.type.kind===183,Sd=ge.createJSDocTypeLiteral(Qf,X_);ro=Js&&Js.typeExpression&&!Dd(Js.typeExpression.type)?Js.typeExpression:Bi(Sd,It),Sc=ro.end}}Sc=Sc||cc!==void 0?Ue():((_n=as!=null?as:ro)!==null&&_n!==void 0?_n:Ma).end,cc||(cc=Te(It,Sc,aa,Ja));var Yg=ge.createJSDocTypedefTag(Ma,ro,as,cc);return Bi(Yg,It,Sc)}function Wd(It){var Ma=D.getTokenPos();if(!!e.tokenIsIdentifierOrKeyword(De())){var aa=ff();if(at(24)){var Ja=Wd(!0),_n=ge.createModuleDeclaration(void 0,void 0,aa,Ja,It?4:void 0);return Bi(_n,Ma)}return It&&(aa.isInJSDocNamespace=!0),aa}}function qd(It){for(var Ma=Ue(),aa,Ja;aa=Ii(function(){return Bl(4,It)});)Ja=e.append(Ja,aa);return Cn(Ja||[],Ma)}function fg(It,Ma,aa,Ja){var _n=Wd();Lc();var ro=cr(aa),as=qd(aa),cc=Ii(function(){if(Up(59)){var Js=W(aa);if(Js&&Js.kind===341)return Js}}),Sc=Bi(ge.createJSDocSignature(void 0,as,cc),It);ro||(ro=Te(It,Ue(),aa,Ja));var hu=ro!==void 0?Ue():Sc.end;return Bi(ge.createJSDocCallbackTag(Ma,Sc,_n,ro),It,hu)}function Mm(It,Ma){for(;!e.isIdentifier(It)||!e.isIdentifier(Ma);)if(!e.isIdentifier(It)&&!e.isIdentifier(Ma)&&It.right.escapedText===Ma.right.escapedText)It=It.left,Ma=Ma.left;else return!1;return It.escapedText===Ma.escapedText}function Xg(It){return Bl(1,It)}function Bl(It,Ma,aa){for(var Ja=!0,_n=!1;;)switch(vi()){case 59:if(Ja){var ro=Qg(It,Ma);return ro&&(ro.kind===340||ro.kind===347)&&It!==4&&aa&&(e.isIdentifier(ro.name)||!Mm(aa,ro.name.left))?!1:ro}_n=!1;break;case 4:Ja=!0,_n=!1;break;case 41:_n&&(Ja=!1),_n=!0;break;case 79:Ja=!1;break;case 1:return!1}}function Qg(It,Ma){e.Debug.assert(De()===59);var aa=D.getStartPos();vi();var Ja=ff();Lc();var _n;switch(Ja.escapedText){case"type":return It===1&&Fm(aa,Ja);case"prop":case"property":_n=1;break;case"arg":case"argument":case"param":_n=6;break;default:return!1}return It&_n?jp(aa,Ja,It,Ma):!1}function _g(){var It=Ue(),Ma=Up(22);Ma&&Lc();var aa=ff(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),Ja;if(Ma&&(Lc(),ui(63),Ja=Gi(8388608,al),ui(23)),!e.nodeIsMissing(aa))return Bi(ge.createTypeParameterDeclaration(void 0,aa,void 0,Ja),It)}function Qc(){var It=Ue(),Ma=[];do{Lc();var aa=_g();aa!==void 0&&Ma.push(aa),_()}while(Up(27));return Cn(Ma,It)}function Lm(It,Ma,aa,Ja){var _n=De()===18?ri():void 0,ro=Qc();return Bi(ge.createJSDocTemplateTag(Ma,_n,ro,Te(It,Ue(),aa,Ja)),It)}function Up(It){return De()===It?(vi(),!0):!1}function Rm(){var It=ff();for(at(22)&&ui(23);at(24);){var Ma=ff();at(22)&&ui(23),It=Ji(It,Ma)}return It}function ff(It){if(!e.tokenIsIdentifierOrKeyword(De()))return kn(79,!It,It||e.Diagnostics.Identifier_expected);Cr++;var Ma=D.getTokenPos(),aa=D.getTextPos(),Ja=De(),_n=xn(D.getTokenValue()),ro=Bi(ge.createIdentifier(_n,void 0,Ja),Ma,aa);return vi(),ro}}})(G_=d.JSDocParser||(d.JSDocParser={}))})(X||(X={}));var $;(function(d){function D(Ee,He,rr,Ie){if(Ie=Ie||e.Debug.shouldAssert(2),ge(Ee,He,rr,Ie),e.textChangeRangeIsUnchanged(rr))return Ee;if(Ee.statements.length===0)return X.parseSourceFile(Ee.fileName,He,Ee.languageVersion,void 0,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);var _e=Ee;e.Debug.assert(!_e.hasBeenIncrementallyParsed),_e.hasBeenIncrementallyParsed=!0,X.fixupParentReferences(_e);var we=Ee.text,de=Re(Ee),ye=Z(Ee,rr);ge(Ee,He,ye,Ie),e.Debug.assert(ye.span.start<=rr.span.start),e.Debug.assert(e.textSpanEnd(ye.span)===e.textSpanEnd(rr.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(ye))===e.textSpanEnd(e.textChangeRangeNewSpan(rr)));var Ae=e.textChangeRangeNewSpan(ye).length-ye.span.length;Fe(_e,ye.span.start,e.textSpanEnd(ye.span),e.textSpanEnd(e.textChangeRangeNewSpan(ye)),Ae,we,He,Ie);var er=X.parseSourceFile(Ee.fileName,He,Ee.languageVersion,de,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);return er.commentDirectives=fe(Ee.commentDirectives,er.commentDirectives,ye.span.start,e.textSpanEnd(ye.span),Ae,we,He,Ie),er.impliedNodeFormat=Ee.impliedNodeFormat,er}d.updateSourceFile=D;function fe(Ee,He,rr,Ie,_e,we,de,ye){if(!Ee)return He;for(var Ae,er=!1,ir=0,Cr=Ee;irIe){n();var Ne={range:{pos:Br.pos+_e,end:Br.end+_e},type:Er};Ae=e.append(Ae,Ne),ye&&e.Debug.assert(we.substring(Br.pos,Br.end)===de.substring(Ne.range.pos,Ne.range.end))}}return n(),Ae;function n(){er||(er=!0,Ae?He&&Ae.push.apply(Ae,He):Ae=He)}}function g(Ee,He,rr,Ie,_e,we){He?ye(Ee):de(Ee);return;function de(Ae){var er="";if(we&&ne(Ae)&&(er=Ie.substring(Ae.pos,Ae.end)),Ae._children&&(Ae._children=void 0),e.setTextRangePosEnd(Ae,Ae.pos+rr,Ae.end+rr),we&&ne(Ae)&&e.Debug.assert(er===_e.substring(Ae.pos,Ae.end)),se(Ae,de,ye),e.hasJSDocNodes(Ae))for(var ir=0,Cr=Ae.jsDoc;ir=He,"Adjusting an element that was entirely before the change range"),e.Debug.assert(Ee.pos<=rr,"Adjusting an element that was entirely after the change range"),e.Debug.assert(Ee.pos<=Ee.end);var we=Math.min(Ee.pos,Ie),de=Ee.end>=rr?Ee.end+_e:Math.min(Ee.end,Ie);e.Debug.assert(we<=de),Ee.parent&&(e.Debug.assertGreaterThanOrEqual(we,Ee.parent.pos),e.Debug.assertLessThanOrEqual(de,Ee.parent.end)),e.setTextRangePosEnd(Ee,we,de)}function We(Ee,He){if(He){var rr=Ee.pos,Ie=function(ye){e.Debug.assert(ye.pos>=rr),rr=ye.end};if(e.hasJSDocNodes(Ee))for(var _e=0,we=Ee.jsDoc;_err){g(ir,!1,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){if(ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e),se(ir,Ae,er),e.hasJSDocNodes(ir))for(var Ye=0,Br=ir.jsDoc;Yerr){g(ir,!0,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e);for(var Ye=0,Br=ir;Ye0&&_e<=rr;_e++){var we=Be(Ee,Ie);e.Debug.assert(we.pos<=Ie);var de=we.pos;Ie=Math.max(0,de-1)}var ye=e.createTextSpanFromBounds(Ie,e.textSpanEnd(He.span)),Ae=He.newLength+(He.span.start-Ie);return e.createTextChangeRange(ye,Ae)}function Be(Ee,He){var rr=Ee,Ie;if(se(Ee,de),Ie){var _e=we(Ie);_e.pos>rr.pos&&(rr=_e)}return rr;function we(ye){for(;;){var Ae=e.getLastChild(ye);if(Ae)ye=Ae;else return ye}}function de(ye){if(!e.nodeIsMissing(ye))if(ye.pos<=He){if(ye.pos>=rr.pos&&(rr=ye),HeHe),!0}}function ge(Ee,He,rr,Ie){var _e=Ee.text;if(rr&&(e.Debug.assert(_e.length-rr.span.length+rr.newLength===He.length),Ie||e.Debug.shouldAssert(3))){var we=_e.substr(0,rr.span.start),de=He.substr(0,rr.span.start);e.Debug.assert(we===de);var ye=_e.substring(e.textSpanEnd(rr.span),_e.length),Ae=He.substring(e.textSpanEnd(e.textChangeRangeNewSpan(rr)),He.length);e.Debug.assert(ye===Ae)}}function Re(Ee){var He=Ee.statements,rr=0;e.Debug.assert(rr=er.pos&&de=er.pos&&ded.checkJsDirective.pos)&&(d.checkJsDirective={enabled:g==="ts-check",end:ge.range.end,pos:ge.range.pos})});break}case"jsx":case"jsxfrag":case"jsximportsource":case"jsxruntime":return;default:e.Debug.fail("Unhandled pragma kind")}})}e.processPragmasIntoFields=L;var P=new e.Map;function k(d){if(P.has(d))return P.get(d);var D=new RegExp("(\\s".concat(d,`\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`),"im");return P.set(d,D),D}var Y=/^\/\/\/\s*<(\S+)\s.*?\/>/im,U=/^\/\/\/?\s*@(\S+)\s*(.*)\s*$/im;function j(d,D,fe){var g=D.kind===2&&Y.exec(fe);if(g){var ne=g[1].toLowerCase(),ue=e.commentPragmas[ne];if(!ue||!(ue.kind&1))return;if(ue.args){for(var We={},Fe=0,Z=ue.args;Fe=Wi.length)break;var nt=Li;if(Wi.charCodeAt(nt)===34){for(Li++;Li32;)Li++;ct.push(Wi.substring(nt,Li))}}vi(ct)}}e.parseCommandLineWorker=K;function b(Pe,Ue,fr,De,gr,Vr){if(De.isTSConfigOnly){var Tr=Pe[Ue];Tr==="null"?(gr[De.name]=void 0,Ue++):De.type==="boolean"?Tr==="false"?(gr[De.name]=Zt(De,!1,Vr),Ue++):(Tr==="true"&&Ue++,Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line,De.name))):(Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line,De.name)),Tr&&!e.startsWith(Tr,"-")&&Ue++)}else if(!Pe[Ue]&&De.type!=="boolean"&&Vr.push(e.createCompilerDiagnostic(fr.optionTypeMismatchDiagnostic,De.name,ue(De))),Pe[Ue]!=="null")switch(De.type){case"number":gr[De.name]=Zt(De,parseInt(Pe[Ue]),Vr),Ue++;break;case"boolean":var Tr=Pe[Ue];gr[De.name]=Zt(De,Tr!=="false",Vr),(Tr==="false"||Tr==="true")&&Ue++;break;case"string":gr[De.name]=Zt(De,Pe[Ue]||"",Vr),Ue++;break;case"list":var vi=oe(De,Pe[Ue],Vr);gr[De.name]=vi||[],vi&&Ue++;break;default:gr[De.name]=G(De,Pe[Ue],Vr),Ue++;break}else gr[De.name]=void 0,Ue++;return Ue}e.compilerOptionsDidYouMeanDiagnostics={alternateMode:le,getOptionsNameMap:Q,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 se(Pe,Ue){return K(e.compilerOptionsDidYouMeanDiagnostics,Pe,Ue)}e.parseCommandLine=se;function J(Pe,Ue){return ie(Q,Pe,Ue)}e.getOptionFromName=J;function ie(Pe,Ue,fr){fr===void 0&&(fr=!1),Ue=Ue.toLowerCase();var De=Pe(),gr=De.optionsNameMap,Vr=De.shortOptionNames;if(fr){var Tr=Vr.get(Ue);Tr!==void 0&&(Ue=Tr)}return gr.get(Ue)}var R;function q(){return R||(R=B(e.buildOpts))}var O={diagnostic:e.Diagnostics.Compiler_option_0_may_not_be_used_with_build,getOptionsNameMap:Q},ve={alternateMode:O,getOptionsNameMap:q,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 ee(Pe){var Ue=K(ve,Pe),fr=Ue.options,De=Ue.watchOptions,gr=Ue.fileNames,Vr=Ue.errors,Tr=fr;return gr.length===0&&gr.push("."),Tr.clean&&Tr.force&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","force")),Tr.clean&&Tr.verbose&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","verbose")),Tr.clean&&Tr.watch&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","watch")),Tr.watch&&Tr.dry&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"watch","dry")),{buildOptions:Tr,watchOptions:De,projects:gr,errors:Vr}}e.parseBuildCommand=ee;function he(Pe){for(var Ue=[],fr=1;fr=0)return Tr.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,Ve(Ve([],Vr,!0),[Yi],!1).join(" -> "))),{raw:Pe||g(Ue,Tr)};var Wi=Pe?yr(Pe,fr,De,gr,Tr):Ir(Ue,fr,De,gr,Tr);if(!((Ui=Wi.options)===null||Ui===void 0)&&Ui.paths&&(Wi.options.pathsBasePath=De),Wi.extendedConfigPath){Vr=Vr.concat([Yi]);var ct=Ur(Ue,Wi.extendedConfigPath,fr,Vr,Tr,vi);if(ct&&Ge(ct)){var Li=ct.raw,nt=Wi.raw,Mt,xt=function(ut){!nt[ut]&&Li[ut]&&(nt[ut]=e.map(Li[ut],function(Dt){return e.isRootedDiskPath(Dt)?Dt:e.combinePaths(Mt||(Mt=e.convertToRelativePath(e.getDirectoryPath(Wi.extendedConfigPath),De,e.createGetCanonicalFileName(fr.useCaseSensitiveFileNames))),Dt)}))};xt("include"),xt("exclude"),xt("files"),nt.compileOnSave===void 0&&(nt.compileOnSave=Li.compileOnSave),Wi.options=e.assign({},ct.options,Wi.options),Wi.watchOptions=Wi.watchOptions&&ct.watchOptions?e.assign({},ct.watchOptions,Wi.watchOptions):Wi.watchOptions||ct.watchOptions}}return Wi}function yr(Pe,Ue,fr,De,gr){e.hasProperty(Pe,"excludes")&&gr.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var Vr=qr(Pe.compilerOptions,fr,gr,De),Tr=Di(Pe.typeAcquisition||Pe.typingOptions,fr,gr,De),vi=wi(Pe.watchOptions,fr,gr);Pe.compileOnSave=ii(Pe,fr,gr);var Ui;if(Pe.extends)if(!e.isString(Pe.extends))gr.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,"extends","string"));else{var Yi=De?Ye(De,fr):fr;Ui=wr(Pe.extends,Ue,Yi,gr,e.createCompilerDiagnostic)}return{raw:Pe,options:Vr,watchOptions:vi,typeAcquisition:Tr,extendedConfigPath:Ui}}function Ir(Pe,Ue,fr,De,gr){var Vr=or(De),Tr,vi,Ui,Yi,Wi,ct={onSetValidOptionKeyValueInParent:function(nt,Mt,xt){var ut;switch(nt){case"compilerOptions":ut=Vr;break;case"watchOptions":ut=Ui||(Ui={});break;case"typeAcquisition":ut=Tr||(Tr=si(De));break;case"typingOptions":ut=vi||(vi=si(De));break;default:e.Debug.fail("Unknown option")}ut[Mt.name]=Gi(Mt,fr,xt)},onSetValidOptionKeyValueInRoot:function(nt,Mt,xt,ut){switch(nt){case"extends":var Dt=De?Ye(De,fr):fr;Yi=wr(xt,Ue,Dt,gr,function(Rt,Ii){return e.createDiagnosticForNodeInSourceFile(Pe,ut,Rt,Ii)});return}},onSetUnknownOptionKeyValueInRoot:function(nt,Mt,xt,ut){nt==="excludes"&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Mt,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude)),e.find(w,function(Dt){return Dt.name===nt})&&(Wi=e.append(Wi,Mt))}},Li=fe(Pe,gr,!0,ct);return Tr||(vi?Tr=vi.enableAutoDiscovery!==void 0?{enable:vi.enableAutoDiscovery,include:vi.include,exclude:vi.exclude}:vi:Tr=si(De)),Wi&&Li&&Li.compilerOptions===void 0&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Wi[0],e.Diagnostics._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file,e.getTextOfPropertyName(Wi[0]))),{raw:Li,options:Vr,watchOptions:Ui,typeAcquisition:Tr,extendedConfigPath:Yi}}function wr(Pe,Ue,fr,De,gr){if(Pe=e.normalizeSlashes(Pe),e.isRootedDiskPath(Pe)||e.startsWith(Pe,"./")||e.startsWith(Pe,"../")){var Vr=e.getNormalizedAbsolutePath(Pe,fr);if(!Ue.fileExists(Vr)&&!e.endsWith(Vr,".json")&&(Vr="".concat(Vr,".json"),!Ue.fileExists(Vr))){De.push(gr(e.Diagnostics.File_0_not_found,Pe));return}return Vr}var Tr=e.nodeModuleNameResolver(Pe,e.combinePaths(fr,"tsconfig.json"),{moduleResolution:e.ModuleResolutionKind.NodeJs},Ue,void 0,void 0,!0);if(Tr.resolvedModule)return Tr.resolvedModule.resolvedFileName;De.push(gr(e.Diagnostics.File_0_not_found,Pe))}function Ur(Pe,Ue,fr,De,gr,Vr){var Tr,vi=fr.useCaseSensitiveFileNames?Ue:e.toFileNameLowerCase(Ue),Ui,Yi,Wi;if(Vr&&(Ui=Vr.get(vi))?(Yi=Ui.extendedResult,Wi=Ui.extendedConfig):(Yi=$(Ue,function(ct){return fr.readFile(ct)}),Yi.parseDiagnostics.length||(Wi=ur(void 0,Yi,fr,e.getDirectoryPath(Ue),e.getBaseFileName(Ue),De,gr,Vr)),Vr&&Vr.set(vi,{extendedResult:Yi,extendedConfig:Wi})),Pe&&(Pe.extendedSourceFiles=[Yi.fileName],Yi.extendedSourceFiles&&(Tr=Pe.extendedSourceFiles).push.apply(Tr,Yi.extendedSourceFiles)),Yi.parseDiagnostics.length){gr.push.apply(gr,Yi.parseDiagnostics);return}return Wi}function ii(Pe,Ue,fr){if(!e.hasProperty(Pe,e.compileOnSaveCommandLineOption.name))return!1;var De=et(e.compileOnSaveCommandLineOption,Pe.compileOnSave,Ue,fr);return typeof De=="boolean"&&De}function mi(Pe,Ue,fr){var De=[],gr=qr(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertCompilerOptionsFromJson=mi;function pe(Pe,Ue,fr){var De=[],gr=Di(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertTypeAcquisitionFromJson=pe;function or(Pe){var Ue=Pe&&e.getBaseFileName(Pe)==="jsconfig.json"?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{};return Ue}function qr(Pe,Ue,fr,De){var gr=or(De);return Xi(U(),Pe,Ue,gr,e.compilerOptionsDidYouMeanDiagnostics,fr),De&&(gr.configFilePath=e.normalizeSlashes(De)),gr}function si(Pe){return{enable:!!Pe&&e.getBaseFileName(Pe)==="jsconfig.json",include:[],exclude:[]}}function Di(Pe,Ue,fr,De){var gr=si(De),Vr=N(Pe);return Xi(l(),Vr,Ue,gr,V,fr),gr}function wi(Pe,Ue,fr){return Xi(H(),Pe,Ue,void 0,k,fr)}function Xi(Pe,Ue,fr,De,gr,Vr){if(!!Ue){for(var Tr in Ue){var vi=Pe.get(Tr);vi?(De||(De={}))[vi.name]=et(vi,Ue[Tr],fr,Vr):Vr.push(T(Tr,gr,e.createCompilerDiagnostic))}return De}}function et(Pe,Ue,fr,De){if(We(Pe,Ue)){var gr=Pe.type;if(gr==="list"&&e.isArray(Ue))return pi(Pe,Ue,fr,De);if(!e.isString(gr))return _r(Pe,Ue,De);var Vr=Zt(Pe,Ue,De);return Cr(Vr)?Vr:Wt(Pe,fr,Vr)}else De.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,Pe.name,ue(Pe)))}e.convertJsonOption=et;function Gi(Pe,Ue,fr){if(!Cr(fr)){if(Pe.type==="list"){var De=Pe;return De.element.isFilePath||!e.isString(De.element.type)?e.filter(e.map(fr,function(gr){return Gi(De.element,Ue,gr)}),function(gr){return De.listPreserveFalsyValues?!0:!!gr}):fr}else if(!e.isString(Pe.type))return Pe.type.get(e.isString(fr)?fr.toLowerCase():fr);return Wt(Pe,Ue,fr)}}function Wt(Pe,Ue,fr){return Pe.isFilePath&&(fr=e.getNormalizedAbsolutePath(fr,Ue),fr===""&&(fr=".")),fr}function Zt(Pe,Ue,fr){var De;if(!Cr(Ue)){var gr=(De=Pe.extraValidation)===null||De===void 0?void 0:De.call(Pe,Ue);if(!gr)return Ue;fr.push(e.createCompilerDiagnostic.apply(void 0,gr))}}function _r(Pe,Ue,fr){if(!Cr(Ue)){var De=Ue.toLowerCase(),gr=Pe.type.get(De);if(gr!==void 0)return Zt(Pe,gr,fr);fr.push(p(Pe))}}function pi(Pe,Ue,fr,De){return e.filter(e.map(Ue,function(gr){return et(Pe.element,gr,fr,De)}),function(gr){return Pe.listPreserveFalsyValues?!0:!!gr})}var ae=/(^|\/)\*\*\/?$/,Xe=/^[^*?]*(?=\/[^/]*[*?])/;function Jr(Pe,Ue,fr,De,gr){gr===void 0&&(gr=e.emptyArray),Ue=e.normalizePath(Ue);var Vr=e.createGetCanonicalFileName(De.useCaseSensitiveFileNames),Tr=new e.Map,vi=new e.Map,Ui=new e.Map,Yi=Pe.validatedFilesSpec,Wi=Pe.validatedIncludeSpecs,ct=Pe.validatedExcludeSpecs,Li=e.getSupportedExtensions(fr,gr),nt=e.getSupportedExtensionsWithJsonIfResolveJsonModule(fr,Li);if(Yi)for(var Mt=0,xt=Yi;Mt0)for(var Ii=function(wt){if(e.fileExtensionIs(wt,".json")){if(!Rt){var na=Wi.filter(function(at){return e.endsWith(at,".json")}),Ai=e.map(e.getRegularExpressionsForWildcards(na,Ue,"files"),function(at){return"^".concat(at,"$")});Rt=Ai?Ai.map(function(at){return e.getRegexFromPattern(at,De.useCaseSensitiveFileNames)}):e.emptyArray}var Oi=e.findIndex(Rt,function(at){return at.test(wt)});if(Oi!==-1){var ji=Vr(wt);!Tr.has(ji)&&!Ui.has(ji)&&Ui.set(ji,wt)}return"continue"}if(mr(wt,Tr,vi,Li,Vr))return"continue";Ar(wt,vi,Li,Vr);var Vi=Vr(wt);!Tr.has(Vi)&&!vi.has(Vi)&&vi.set(Vi,wt)},Ki=0,Fi=De.readDirectory(Ue,e.flatten(nt),ct,Wi,void 0);KiUe}function Sr(Pe,Ue,fr,De){return zr(Pe,e.filter(Ue,function(gr){return!Ze(gr)}),fr,De)}e.matchesExclude=Sr;function zr(Pe,Ue,fr,De,gr){var Vr=e.getRegularExpressionForWildcard(Ue,e.combinePaths(e.normalizePath(De),gr),"exclude"),Tr=Vr&&e.getRegexFromPattern(Vr,fr);return Tr?Tr.test(Pe)?!0:!e.hasExtension(Pe)&&Tr.test(e.ensureTrailingDirectorySeparator(Pe)):!1}function Wr(Pe,Ue,fr,De,gr){return Pe.filter(function(Tr){if(!e.isString(Tr))return!1;var vi=Je(Tr,fr);return vi!==void 0&&Ue.push(Vr.apply(void 0,vi)),vi===void 0});function Vr(Tr,vi){var Ui=e.getTsConfigPropArrayElementValue(De,gr,vi);return Ui?e.createDiagnosticForNodeInSourceFile(De,Ui,Tr,vi):e.createCompilerDiagnostic(Tr,vi)}}function Je(Pe,Ue){if(Ue&&ae.test(Pe))return[e.Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe];if(Ze(Pe))return[e.Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe]}function xe(Pe,Ue,fr){var De=Pe.validatedIncludeSpecs,gr=Pe.validatedExcludeSpecs,Vr=e.getRegularExpressionForWildcard(gr,Ue,"exclude"),Tr=Vr&&new RegExp(Vr,fr?"":"i"),vi={};if(De!==void 0){for(var Ui=[],Yi=0,Wi=De;Yi=0;Vr--){var Tr=gr[Vr];if(e.fileExtensionIs(Pe,Tr))return;var vi=De(e.changeExtension(Pe,Tr));Ue.delete(vi)}}function Oe(Pe){var Ue={};for(var fr in Pe)if(Pe.hasOwnProperty(fr)){var De=J(fr);De!==void 0&&(Ue[fr]=nr(Pe[fr],De))}return Ue}e.convertCompilerOptionsForTelemetry=Oe;function nr(Pe,Ue){switch(Ue.type){case"object":return"";case"string":return"";case"number":return typeof Pe=="number"?Pe:"";case"boolean":return typeof Pe=="boolean"?Pe:"";case"list":var fr=Ue.element;return e.isArray(Pe)?Pe.map(function(De){return nr(De,fr)}):"";default:return e.forEachEntry(Ue.type,function(De,gr){if(De===Pe)return gr})}}function Mr(Pe){switch(Pe.type){case"number":return 1;case"boolean":return!0;case"string":var Ue=Pe.defaultValueDescription;return Pe.isFilePath?"./".concat(Ue&&typeof Ue=="string"?Ue:""):"";case"list":return[];case"object":return{};default:var fr=Pe.type.keys().next();return fr.done?e.Debug.fail("Expected 'option.type' to have entries."):fr.value}}})(ke||(ke={}));var ke;(function(e){function a(Ze){Ze.trace(e.formatMessage.apply(void 0,arguments))}e.trace=a;function C(Ze,Sr){return!!Ze.traceResolution&&Sr.trace!==void 0}e.isTraceEnabled=C;function w(Ze,Sr){var zr;if(Sr&&Ze){var Wr=Ze.packageJsonContent;typeof Wr.name=="string"&&typeof Wr.version=="string"&&(zr={name:Wr.name,subModuleName:Sr.path.slice(Ze.packageDirectory.length+e.directorySeparator.length),version:Wr.version})}return Sr&&{path:Sr.path,extension:Sr.ext,packageId:zr}}function B(Ze){return w(void 0,Ze)}function E(Ze){if(Ze)return e.Debug.assert(Ze.packageId===void 0),{path:Ze.path,ext:Ze.extension}}var Q;(function(Ze){Ze[Ze.TypeScript=0]="TypeScript",Ze[Ze.JavaScript=1]="JavaScript",Ze[Ze.Json=2]="Json",Ze[Ze.TSConfig=3]="TSConfig",Ze[Ze.DtsOnly=4]="DtsOnly",Ze[Ze.TsOnly=5]="TsOnly"})(Q||(Q={}));function le(Ze){if(!!Ze)return e.Debug.assert(e.extensionIsTS(Ze.extension)),{fileName:Ze.path,packageId:Ze.packageId}}function N(Ze,Sr,zr,Wr,Je){var xe;return Je?((xe=Je.failedLookupLocations).push.apply(xe,zr),Je):{resolvedModule:Ze&&{resolvedFileName:Ze.path,originalPath:Ze.originalPath===!0?void 0:Ze.originalPath,extension:Ze.extension,isExternalLibraryImport:Sr,packageId:Ze.packageId},failedLookupLocations:zr,resolutionDiagnostics:Wr}}function p(Ze,Sr,zr,Wr){if(!e.hasProperty(Ze,Sr)){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_does_not_have_a_0_field,Sr);return}var Je=Ze[Sr];if(typeof Je!==zr||Je===null){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,Sr,zr,Je===null?"null":typeof Je);return}return Je}function m(Ze,Sr,zr,Wr){var Je=p(Ze,Sr,"string",Wr);if(Je!==void 0){if(!Je){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_had_a_falsy_0_field,Sr);return}var xe=e.normalizePath(e.combinePaths(zr,Je));return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_0_field_1_that_references_2,Sr,Je,xe),xe}}function G(Ze,Sr,zr){return m(Ze,"typings",Sr,zr)||m(Ze,"types",Sr,zr)}function oe(Ze,Sr,zr){return m(Ze,"tsconfig",Sr,zr)}function f(Ze,Sr,zr){return m(Ze,"main",Sr,zr)}function T(Ze,Sr){var zr=p(Ze,"typesVersions","object",Sr);if(zr!==void 0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings),zr}function K(Ze,Sr){var zr=T(Ze,Sr);if(zr!==void 0){if(Sr.traceEnabled)for(var Wr in zr)e.hasProperty(zr,Wr)&&!e.VersionRange.tryParse(Wr)&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range,Wr);var Je=se(zr);if(!Je){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0,e.versionMajorMinor);return}var xe=Je.version,vr=Je.paths;if(typeof vr!="object"){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,"typesVersions['".concat(xe,"']"),"object",typeof vr);return}return Je}}var b;function se(Ze){b||(b=new e.Version(e.version));for(var Sr in Ze)if(!!e.hasProperty(Ze,Sr)){var zr=e.VersionRange.tryParse(Sr);if(zr!==void 0&&zr.test(b))return{version:Sr,paths:Ze[Sr]}}}e.getPackageJsonTypesVersionsPaths=se;function J(Ze,Sr){if(Ze.typeRoots)return Ze.typeRoots;var zr;if(Ze.configFilePath?zr=e.getDirectoryPath(Ze.configFilePath):Sr.getCurrentDirectory&&(zr=Sr.getCurrentDirectory()),zr!==void 0)return ie(zr,Sr)}e.getEffectiveTypeRoots=J;function ie(Ze,Sr){if(!Sr.directoryExists)return[e.combinePaths(Ze,R)];var zr;return e.forEachAncestorDirectory(e.normalizePath(Ze),function(Wr){var Je=e.combinePaths(Wr,R);Sr.directoryExists(Je)&&(zr||(zr=[])).push(Je)}),zr}var R=e.combinePaths("node_modules","@types");function q(Ze,Sr,zr){var Wr=typeof zr.useCaseSensitiveFileNames=="function"?zr.useCaseSensitiveFileNames():zr.useCaseSensitiveFileNames;return e.comparePaths(Ze,Sr,!Wr)===0}function O(Ze,Sr,zr,Wr,Je,xe,vr){e.Debug.assert(typeof Ze=="string","Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.");var mr=C(zr,Wr);Je&&(zr=Je.commandLine.options);var Ar=Sr?e.getDirectoryPath(Sr):void 0,Oe=Ar?xe&&xe.getOrCreateCacheForDirectory(Ar,Je):void 0,nr=Oe&&Oe.get(Ze,vr);if(nr)return mr&&(a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1,Ze,Sr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName),a(Wr,e.Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1,Ze,Ar),ct(nr)),nr;var Mr=J(zr,Wr);mr&&(Sr===void 0?Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set,Ze):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1,Ze,Mr):Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set,Ze,Sr):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2,Ze,Sr,Mr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName));var Pe=[],Ue=ve(zr);vr===e.ModuleKind.ESNext&&(e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.NodeNext)&&(Ue|=d.EsmMode);var fr=Ue&d.Exports?Ue&d.EsmMode?["node","import","types"]:["node","require","types"]:[],De=[],gr={compilerOptions:zr,host:Wr,traceEnabled:mr,failedLookupLocations:Pe,packageJsonInfoCache:xe,features:Ue,conditions:fr,requestContainingDirectory:Ar,reportDiagnostic:function(Mt){return void De.push(Mt)}},Vr=Li(),Tr=!0;Vr||(Vr=nt(),Tr=!1);var vi;if(Vr){var Ui=Vr.fileName,Yi=Vr.packageId,Wi=zr.preserveSymlinks?Ui:ze(Ui,Wr,mr);vi={primary:Tr,resolvedFileName:Wi,originalPath:q(Ui,Wi,Wr)?void 0:Ui,packageId:Yi,isExternalLibraryImport:He(Ui)}}return nr={resolvedTypeReferenceDirective:vi,failedLookupLocations:Pe,resolutionDiagnostics:De},Oe==null||Oe.set(Ze,vr,nr),mr&&ct(nr),nr;function ct(Mt){var xt;!((xt=Mt.resolvedTypeReferenceDirective)===null||xt===void 0)&&xt.resolvedFileName?Mt.resolvedTypeReferenceDirective.packageId?a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,e.packageIdToString(Mt.resolvedTypeReferenceDirective.packageId),Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_not_resolved,Ze)}function Li(){if(Mr&&Mr.length)return mr&&a(Wr,e.Diagnostics.Resolving_with_primary_search_path_0,Mr.join(", ")),e.firstDefined(Mr,function(Mt){var xt=e.combinePaths(Mt,Ze),ut=e.getDirectoryPath(xt),Dt=e.directoryProbablyExists(ut,Wr);return!Dt&&mr&&a(Wr,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,ut),le(Cr(Q.DtsOnly,xt,!Dt,gr))});mr&&a(Wr,e.Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths)}function nt(){var Mt=Sr&&e.getDirectoryPath(Sr);if(Mt!==void 0){mr&&a(Wr,e.Diagnostics.Looking_up_in_node_modules_folder_initial_location_0,Mt);var xt;if(e.isExternalModuleNameRelative(Ze)){var Dt=Re(Mt,Ze).path;xt=Ee(Q.DtsOnly,Dt,!1,gr,!0)}else{var ut=or(Q.DtsOnly,Ze,Mt,gr,void 0,void 0);xt=ut&&ut.value}return le(xt)}else mr&&a(Wr,e.Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder)}}e.resolveTypeReferenceDirective=O;function ve(Ze){return e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.Node16?d.Node16Default:e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.NodeNext?d.NodeNextDefault:d.None}function ee(Ze,Sr,zr,Wr,Je){var xe={compilerOptions:zr,host:Wr,traceEnabled:C(zr,Wr),failedLookupLocations:[],packageJsonInfoCache:Je==null?void 0:Je.getPackageJsonInfoCache(),conditions:e.emptyArray,features:d.None,requestContainingDirectory:Sr,reportDiagnostic:e.noop};return e.forEachAncestorDirectory(Sr,function(vr){if(e.getBaseFileName(vr)!=="node_modules"){var mr=e.combinePaths(vr,"node_modules"),Ar=e.combinePaths(mr,Ze);return Ne(Ar,!1,xe)}})}e.resolvePackageNameToPackageJson=ee;function he(Ze,Sr){if(Ze.types)return Ze.types;var zr=[];if(Sr.directoryExists&&Sr.getDirectories){var Wr=J(Ze,Sr);if(Wr)for(var Je=0,xe=Wr;Je0);var Wr={sourceFile:Ze.configFile,commandLine:{options:Ze}};Sr.setOwnMap(Sr.getOrCreateMapOfCacheRedirects(Wr)),zr==null||zr.setOwnMap(zr.getOrCreateMapOfCacheRedirects(Wr))}Sr.setOwnOptions(Ze),zr==null||zr.setOwnOptions(Ze)}}function A(Ze,Sr,zr){return{getOrCreateCacheForDirectory:xe,clear:Wr,update:Je};function Wr(){zr.clear()}function Je(vr){$(vr,zr)}function xe(vr,mr){var Ar=e.toPath(vr,Ze,Sr);return X(zr,mr,Ar,function(){return y()})}}function y(){var Ze=new e.Map,Sr=new e.Map,zr={get:function(Je,xe){return Ze.get(Wr(Je,xe))},set:function(Je,xe,vr){return Ze.set(Wr(Je,xe),vr),zr},delete:function(Je,xe){return Ze.delete(Wr(Je,xe)),zr},has:function(Je,xe){return Ze.has(Wr(Je,xe))},forEach:function(Je){return Ze.forEach(function(xe,vr){var mr=Sr.get(vr),Ar=mr[0],Oe=mr[1];return Je(xe,Ar,Oe)})},size:function(){return Ze.size}};return zr;function Wr(Je,xe){var vr=xe===void 0?Je:"".concat(xe,"|").concat(Je);return Sr.set(vr,[Je,xe]),vr}}e.createModeAwareCache=y;function V(Ze,Sr,zr){e.Debug.assert(Sr.length===zr.length);for(var Wr=y(),Je=0;Je=0||Ue.indexOf(".")>=0||Ue.indexOf("node_modules")>=0)return!1;var fr=e.combinePaths(Ze.packageDirectory,nr),De=e.getNormalizedAbsolutePath(fr,(Pe=(Mr=zr.host).getCurrentDirectory)===null||Pe===void 0?void 0:Pe.call(Mr)),gr=ye(Wr,De,!1,zr);if(gr)return Je=e.appendIfUnique(Je,gr,function(Yi,Wi){return Yi.path===Wi.path}),!0}else if(Array.isArray(nr))for(var Vr=0,Tr=nr;Vr0;){var vr=Ne(e.getPathFromPathComponents(xe),!1,Je);if(vr)return vr;xe.pop()}}e.getPackageScopeForPath=Er;function Ne(Ze,Sr,zr){var Wr,Je,xe,vr=zr.host,mr=zr.traceEnabled,Ar=e.combinePaths(Ze,"package.json");if(Sr){zr.failedLookupLocations.push(Ar);return}var Oe=(Wr=zr.packageJsonInfoCache)===null||Wr===void 0?void 0:Wr.getPackageJsonInfo(Ar);if(Oe!==void 0){if(typeof Oe!="boolean")return mr&&a(vr,e.Diagnostics.File_0_exists_according_to_earlier_cached_lookups,Ar),Oe;Oe&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist_according_to_earlier_cached_lookups,Ar),zr.failedLookupLocations.push(Ar);return}var nr=e.directoryProbablyExists(Ze,vr);if(nr&&vr.fileExists(Ar)){var Mr=e.readJson(Ar,vr);mr&&a(vr,e.Diagnostics.Found_package_json_at_0,Ar);var Pe=K(Mr,zr),Ue={packageDirectory:Ze,packageJsonContent:Mr,versionPaths:Pe,resolvedEntrypoints:void 0};return(Je=zr.packageJsonInfoCache)===null||Je===void 0||Je.setPackageJsonInfo(Ar,Ue),Ue}else nr&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist,Ar),(xe=zr.packageJsonInfoCache)===null||xe===void 0||xe.setPackageJsonInfo(Ar,nr),zr.failedLookupLocations.push(Ar)}e.getPackageJsonInfo=Ne;function n(Ze,Sr,zr,Wr,Je,xe){var vr;if(Je)switch(Ze){case Q.JavaScript:case Q.Json:case Q.TsOnly:vr=f(Je,Sr,Wr);break;case Q.TypeScript:vr=G(Je,Sr,Wr)||f(Je,Sr,Wr);break;case Q.DtsOnly:vr=G(Je,Sr,Wr);break;case Q.TSConfig:vr=oe(Je,Sr,Wr);break;default:return e.Debug.assertNever(Ze)}var mr=function(fr,De,gr,Vr){var Tr=er(De,gr,Vr);if(Tr){var vi=lr(fr,Tr);if(vi)return B(vi);Vr.traceEnabled&&a(Vr.host,e.Diagnostics.File_0_has_an_unsupported_extension_so_skipping_it,Tr)}var Ui=fr===Q.DtsOnly?Q.TypeScript:fr,Yi=Vr.features;(Je==null?void 0:Je.type)!=="module"&&(Vr.features&=~d.EsmMode);var Wi=Ee(Ui,De,gr,Vr,!1);return Vr.features=Yi,Wi},Ar=vr?!e.directoryProbablyExists(e.getDirectoryPath(vr),Wr.host):void 0,Oe=zr||!e.directoryProbablyExists(Sr,Wr.host),nr=e.combinePaths(Sr,Ze===Q.TSConfig?"tsconfig":"index");if(xe&&(!vr||e.containsPath(Sr,vr))){var Mr=e.getRelativePathFromDirectory(Sr,vr||nr,!1);Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,xe.version,e.version,Mr);var Pe=Xi(Ze,Mr,Sr,xe.paths,void 0,mr,Ar||Oe,Wr);if(Pe)return E(Pe.value)}var Ue=vr&&E(mr(Ze,vr,Ar,Wr));if(Ue)return Ue;if(!(Wr.features&d.EsmMode))return we(Ze,nr,Oe,Wr)}function lr(Ze,Sr){var zr=e.tryGetExtensionFromPath(Sr);return zr!==void 0&&be(Ze,zr)?{path:Sr,ext:zr}:void 0}function be(Ze,Sr){switch(Ze){case Q.JavaScript:return Sr===".js"||Sr===".jsx"||Sr===".mjs"||Sr===".cjs";case Q.TSConfig:case Q.Json:return Sr===".json";case Q.TypeScript:return Sr===".ts"||Sr===".tsx"||Sr===".mts"||Sr===".cts"||Sr===".d.ts"||Sr===".d.mts"||Sr===".d.cts";case Q.TsOnly:return Sr===".ts"||Sr===".tsx"||Sr===".mts"||Sr===".cts";case Q.DtsOnly:return Sr===".d.ts"||Sr===".d.mts"||Sr===".d.cts"}}function Ge(Ze){var Sr=Ze.indexOf(e.directorySeparator);return Ze[0]==="@"&&(Sr=Ze.indexOf(e.directorySeparator,Sr+1)),Sr===-1?{packageName:Ze,rest:""}:{packageName:Ze.slice(0,Sr),rest:Ze.slice(Sr+1)}}e.parsePackageName=Ge;function ur(Ze){return e.every(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,".")})}e.allKeysStartWithDot=ur;function yr(Ze){return!e.some(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,".")})}function Ir(Ze,Sr,zr,Wr,Je,xe){var vr,mr,Ar=typeof Wr.host.useCaseSensitiveFileNames=="function"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,"dummy"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!(!nr||!nr.packageJsonContent.exports)&&typeof nr.packageJsonContent.name=="string"){var Mr=e.getPathComponents(Sr),Pe=e.getPathComponents(nr.packageJsonContent.name);if(!!e.every(Pe,function(fr,De){return Mr[De]===fr})){var Ue=Mr.slice(Pe.length);return wr(nr,Ze,e.length(Ue)?".".concat(e.directorySeparator).concat(Ue.join(e.directorySeparator)):".",Wr,Je,xe)}}}function wr(Ze,Sr,zr,Wr,Je,xe){if(!!Ze.packageJsonContent.exports){if(zr==="."){var vr=void 0;if(typeof Ze.packageJsonContent.exports=="string"||Array.isArray(Ze.packageJsonContent.exports)||typeof Ze.packageJsonContent.exports=="object"&&yr(Ze.packageJsonContent.exports)?vr=Ze.packageJsonContent.exports:e.hasProperty(Ze.packageJsonContent.exports,".")&&(vr=Ze.packageJsonContent.exports["."]),vr){var mr=mi(Sr,Wr,Je,xe,zr,Ze,!1);return mr(vr,"",!1)}}else if(ur(Ze.packageJsonContent.exports)){if(typeof Ze.packageJsonContent.exports!="object")return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0);var Ar=ii(Sr,Wr,Je,xe,zr,Ze.packageJsonContent.exports,Ze,!1);if(Ar)return Ar}return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0)}}function Ur(Ze,Sr,zr,Wr,Je,xe){var vr,mr;if(Sr==="#"||e.startsWith(Sr,"#/"))return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions,Sr),ti(void 0);var Ar=typeof Wr.host.useCaseSensitiveFileNames=="function"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,"dummy"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!nr)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve,Oe),ti(void 0);if(!nr.packageJsonContent.imports)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_scope_0_has_no_imports_defined,nr.packageDirectory),ti(void 0);var Mr=ii(Ze,Wr,Je,xe,Sr,nr.packageJsonContent.imports,nr,!0);return Mr||(Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1,Sr,nr.packageDirectory),ti(void 0))}function ii(Ze,Sr,zr,Wr,Je,xe,vr,mr){var Ar=mi(Ze,Sr,zr,Wr,Je,vr,mr);if(!e.endsWith(Je,e.directorySeparator)&&Je.indexOf("*")===-1&&e.hasProperty(xe,Je)){var Oe=xe[Je];return Ar(Oe,"",!1)}for(var nr=e.sort(e.filter(e.getOwnKeys(xe),function(Vr){return Vr.indexOf("*")!==-1||e.endsWith(Vr,"/")}),function(Vr,Tr){return Vr.length-Tr.length}),Mr=0,Pe=nr;Mr0&&!e.endsWith(Ar,"/"))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);if(!e.startsWith(Ar,"./")){if(vr&&!e.startsWith(Ar,"../")&&!e.startsWith(Ar,"/")&&!e.isRootedDiskPath(Ar)){var Mr=nr?Ar.replace(/\*/g,Oe):Ar+Oe,Pe=ge(Sr.features,Mr,xe.packageDirectory+"/",Sr.compilerOptions,Sr.host,zr,[Ze],Wr);return ti(Pe.resolvedModule?{path:Pe.resolvedModule.resolvedFileName,extension:Pe.resolvedModule.extension,packageId:Pe.resolvedModule.packageId,originalPath:Pe.resolvedModule.originalPath}:void 0)}return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0)}var Ue=e.pathIsRelative(Ar)?e.getPathComponents(Ar).slice(1):e.getPathComponents(Ar),fr=Ue.slice(1);if(fr.indexOf("..")>=0||fr.indexOf(".")>=0||fr.indexOf("node_modules")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var De=e.combinePaths(xe.packageDirectory,Ar),gr=e.getPathComponents(Oe);if(gr.indexOf("..")>=0||gr.indexOf(".")>=0||gr.indexOf("node_modules")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var Vr=Mt(nr?De.replace(/\*/g,Oe):De+Oe),Tr=Dt(Vr,Oe,e.combinePaths(xe.packageDirectory,"package.json"),vr);return Tr||ti(w(xe,ye(Ze,Vr,!1,Sr)))}else if(typeof Ar=="object"&&Ar!==null)if(Array.isArray(Ar)){if(!e.length(Ar))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);for(var ct=0,Li=Ar;ct=0||pe(Sr.conditions,Yi)){var Wi=Ar[Yi],Pe=mr(Wi,Oe,nr);if(Pe)return Pe}}return}else if(Ar===null)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null,xe.packageDirectory,Je),ti(void 0);return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);function Mt(Rt){var Ii,Ki;return Rt===void 0?Rt:e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut})(e.getNormalizedAbsolutePath(Rt,(Ki=(Ii=Sr.host).getCurrentDirectory)===null||Ki===void 0?void 0:Ki.call(Ii)))}function xt(Rt,Ii){return e.ensureTrailingDirectorySeparator(e.combinePaths(Rt,Ii))}function ut(){return Sr.host.useCaseSensitiveFileNames?typeof Sr.host.useCaseSensitiveFileNames=="boolean"?Sr.host.useCaseSensitiveFileNames:Sr.host.useCaseSensitiveFileNames():!0}function Dt(Rt,Ii,Ki,Fi){var ui,Bt,wt,na;if((Ze===Q.TypeScript||Ze===Q.JavaScript||Ze===Q.Json)&&(Sr.compilerOptions.declarationDir||Sr.compilerOptions.outDir)&&Rt.indexOf("/node_modules/")===-1&&(Sr.compilerOptions.configFile?e.startsWith(Mt(Sr.compilerOptions.configFile.fileName),xe.packageDirectory):!0)){var Ai=e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut}),Oi=[];if(Sr.compilerOptions.rootDir||Sr.compilerOptions.composite&&Sr.compilerOptions.configFilePath){var ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[]},((Bt=(ui=Sr.host).getCurrentDirectory)===null||Bt===void 0?void 0:Bt.call(ui))||"",Ai));Oi.push(ji)}else if(Sr.requestContainingDirectory){var Vi=Mt(e.combinePaths(Sr.requestContainingDirectory,"index.ts")),ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[Vi,Mt(Ki)]},((na=(wt=Sr.host).getCurrentDirectory)===null||na===void 0?void 0:na.call(wt))||"",Ai));Oi.push(ji);for(var at=e.ensureTrailingDirectorySeparator(ji);at&&at.length>1;){var At=e.getPathComponents(at);At.pop();var ba=e.getPathFromPathComponents(At);Oi.unshift(ba),at=e.ensureTrailingDirectorySeparator(ba)}}Oi.length>1&&Sr.reportDiagnostic(e.createCompilerDiagnostic(Fi?e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate,Ii===""?".":Ii,Ki));for(var $a=0,Qa=Oi;$aie&&(ie=ve),ie===1)return ie}return ie}break;case 262:{var ee=0;return e.forEachChild(b,function(he){var F=w(he,se);switch(F){case 0:return;case 2:ee=2;return;case 1:return ee=1,!0;default:e.Debug.assertNever(F)}}),ee}case 261:return C(b,se);case 79:if(b.isInJSDocNamespace)return 0}return 1}function E(b,se){for(var J=b.propertyName||b.name,ie=b.parent;ie;){if(e.isBlock(ie)||e.isModuleBlock(ie)||e.isSourceFile(ie)){for(var R=ie.statements,q=void 0,O=0,ve=R;Oq)&&(q=he),q===1)return q}}if(q!==void 0)return q}ie=ie.parent}return 1}var Q;(function(b){b[b.None=0]="None",b[b.IsContainer=1]="IsContainer",b[b.IsBlockScopedContainer=2]="IsBlockScopedContainer",b[b.IsControlFlowContainer=4]="IsControlFlowContainer",b[b.IsFunctionLike=8]="IsFunctionLike",b[b.IsFunctionExpression=16]="IsFunctionExpression",b[b.HasLocals=32]="HasLocals",b[b.IsInterface=64]="IsInterface",b[b.IsObjectLiteralOrClassExpressionMethodOrAccessor=128]="IsObjectLiteralOrClassExpressionMethodOrAccessor"})(Q||(Q={}));function le(b){return e.Debug.attachFlowNodeDebugInfo(b),b}var N=m();function p(b,se){e.performance.mark("beforeBind"),e.perfLogger.logStartBindFile(""+b.fileName),N(b,se),e.perfLogger.logStopBindFile(),e.performance.mark("afterBind"),e.performance.measure("Bind","beforeBind","afterBind")}e.bindSourceFile=p;function m(){var b,se,J,ie,R,q,O,ve,ee,he,F,x,X,$,A,y,V,L,P,k,Y,U,j=!1,H=0,I,l,d={flags:1},D={flags:1},fe=Ar();function g(ce,Rr,yi,qi,je){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(ce)||b,ce,Rr,yi,qi,je)}function ne(ce,Rr){b=ce,se=Rr,J=e.getEmitScriptTarget(se),U=ue(b,Rr),l=new e.Set,H=0,I=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(d),e.Debug.attachFlowNodeDebugInfo(D),b.locals||(e.tracing===null||e.tracing===void 0||e.tracing.push("bind","bindSourceFile",{path:b.path},!0),Da(b),e.tracing===null||e.tracing===void 0||e.tracing.pop(),b.symbolCount=H,b.classifiableNames=l,Ai()),b=void 0,se=void 0,J=void 0,ie=void 0,R=void 0,q=void 0,O=void 0,ve=void 0,ee=void 0,he=!1,F=void 0,x=void 0,X=void 0,$=void 0,A=void 0,y=void 0,V=void 0,P=void 0,k=!1,j=!1,Y=0}return ne;function ue(ce,Rr){return e.getStrictOptionValue(Rr,"alwaysStrict")&&!ce.isDeclarationFile?!0:!!ce.externalModuleIndicator}function We(ce,Rr){return H++,new I(ce,Rr)}function Fe(ce,Rr,yi){ce.flags|=yi,Rr.symbol=ce,ce.declarations=e.appendIfUnique(ce.declarations,Rr),yi&1955&&!ce.exports&&(ce.exports=e.createSymbolTable()),yi&6240&&!ce.members&&(ce.members=e.createSymbolTable()),ce.constEnumOnlyModule&&ce.flags&304&&(ce.constEnumOnlyModule=!1),yi&111551&&e.setValueDeclaration(ce,Rr)}function Z(ce){if(ce.kind===271)return ce.isExportEquals?"export=":"default";var Rr=e.getNameOfDeclaration(ce);if(Rr){if(e.isAmbientModule(ce)){var yi=e.getTextOfIdentifierOrLiteral(Rr);return e.isGlobalScopeAugmentation(ce)?"__global":'"'.concat(yi,'"')}if(Rr.kind===162){var qi=Rr.expression;if(e.isStringOrNumericLiteralLike(qi))return e.escapeLeadingUnderscores(qi.text);if(e.isSignedNumericLiteral(qi))return e.tokenToString(qi.operator)+qi.operand.text;e.Debug.fail("Only computed properties with literal names have declaration names")}if(e.isPrivateIdentifier(Rr)){var je=e.getContainingClass(ce);if(!je)return;var Hr=je.symbol;return e.getSymbolNameForPrivateIdentifier(Hr,Rr.escapedText)}return e.isPropertyNameLiteral(Rr)?e.getEscapedTextOfIdentifierOrLiteral(Rr):void 0}switch(ce.kind){case 171:return"__constructor";case 179:case 174:case 323:return"__call";case 180:case 175:return"__new";case 176:return"__index";case 272:return"__export";case 305:return"export=";case 221:if(e.getAssignmentDeclarationKind(ce)===2)return"export=";e.Debug.fail("Unknown binary declaration kind");break;case 317:return e.isJSDocConstructSignature(ce)?"__new":"__call";case 164:e.Debug.assert(ce.parent.kind===317,"Impossible parameter parent kind",function(){return"parent is: ".concat(e.SyntaxKind?e.SyntaxKind[ce.parent.kind]:ce.parent.kind,", expected JSDocFunctionType")});var pt=ce.parent,Pt=pt.parameters.indexOf(ce);return"arg"+Pt}}function Be(ce){return e.isNamedDeclaration(ce)?e.declarationNameToString(ce.name):e.unescapeLeadingUnderscores(e.Debug.checkDefined(Z(ce)))}function ge(ce,Rr,yi,qi,je,Hr,pt){e.Debug.assert(pt||!e.hasDynamicName(yi));var Pt=e.hasSyntacticModifier(yi,512)||e.isExportSpecifier(yi)&&yi.name.escapedText==="default",ga=pt?"__computed":Pt&&Rr?"default":Z(yi),ua;if(ga===void 0)ua=We(0,"__missing");else if(ua=ce.get(ga),qi&2885600&&l.add(ga),!ua)ce.set(ga,ua=We(0,ga)),Hr&&(ua.isReplaceableByMethod=!0);else{if(Hr&&!ua.isReplaceableByMethod)return ua;if(ua.flags&je){if(ua.isReplaceableByMethod)ce.set(ga,ua=We(0,ga));else if(!(qi&3&&ua.flags&67108864)){e.isNamedDeclaration(yi)&&e.setParent(yi.name,yi);var Xn=ua.flags&2?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,jr=!0;(ua.flags&384||qi&384)&&(Xn=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,jr=!1);var fo=!1;e.length(ua.declarations)&&(Pt||ua.declarations&&ua.declarations.length&&yi.kind===271&&!yi.isExportEquals)&&(Xn=e.Diagnostics.A_module_cannot_have_multiple_default_exports,jr=!1,fo=!0);var xs=[];e.isTypeAliasDeclaration(yi)&&e.nodeIsMissing(yi.type)&&e.hasSyntacticModifier(yi,1)&&ua.flags&2887656&&xs.push(g(yi,e.Diagnostics.Did_you_mean_0,"export type { ".concat(e.unescapeLeadingUnderscores(yi.name.escapedText)," }")));var Fo=e.getNameOfDeclaration(yi)||yi;e.forEach(ua.declarations,function(Ao,Ms){var Bs=e.getNameOfDeclaration(Ao)||Ao,xc=g(Bs,Xn,jr?Be(Ao):void 0);b.bindDiagnostics.push(fo?e.addRelatedInfo(xc,g(Fo,Ms===0?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):xc),fo&&xs.push(g(Bs,e.Diagnostics.The_first_export_default_is_here))});var ko=g(Fo,Xn,jr?Be(yi):void 0);b.bindDiagnostics.push(e.addRelatedInfo.apply(void 0,Ve([ko],xs,!1))),ua=We(0,ga)}}}return Fe(ua,yi,qi),ua.parent?e.Debug.assert(ua.parent===Rr,"Existing symbol parent should match new one"):ua.parent=Rr,ua}function Re(ce,Rr,yi){var qi=!!(e.getCombinedModifierFlags(ce)&1)||ze(ce);if(Rr&2097152)return ce.kind===275||ce.kind===265&&qi?ge(R.symbol.exports,R.symbol,ce,Rr,yi):ge(R.locals,void 0,ce,Rr,yi);if(e.isJSDocTypeAlias(ce)&&e.Debug.assert(e.isInJSFile(ce)),!e.isAmbientModule(ce)&&(qi||R.flags&64)){if(!R.locals||e.hasSyntacticModifier(ce,512)&&!Z(ce))return ge(R.symbol.exports,R.symbol,ce,Rr,yi);var je=Rr&111551?1048576:0,Hr=ge(R.locals,void 0,ce,je,yi);return Hr.exportSymbol=ge(R.symbol.exports,R.symbol,ce,Rr,yi),ce.localSymbol=Hr,Hr}else return ge(R.locals,void 0,ce,Rr,yi)}function ze(ce){if(ce.parent&&e.isModuleDeclaration(ce)&&(ce=ce.parent),!e.isJSDocTypeAlias(ce))return!1;if(!e.isJSDocEnumTag(ce)&&!!ce.fullName)return!0;var Rr=e.getNameOfDeclaration(ce);return Rr?!!(e.isPropertyAccessEntityNameExpression(Rr.parent)&&Wa(Rr.parent)||e.isDeclaration(Rr.parent)&&e.getCombinedModifierFlags(Rr.parent)&1):!1}function Ee(ce,Rr){var yi=R,qi=q,je=O;if(Rr&1?(ce.kind!==214&&(q=R),R=O=ce,Rr&32&&(R.locals=e.createSymbolTable()),Li(R)):Rr&2&&(O=ce,O.locals=void 0),Rr&4){var Hr=F,pt=x,Pt=X,ga=$,ua=V,Xn=P,jr=k,fo=Rr&16&&!e.hasSyntacticModifier(ce,256)&&!ce.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(ce)||ce.kind===170;fo||(F=le({flags:2}),Rr&144&&(F.node=ce)),$=fo||ce.kind===171||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213)?Ye():void 0,V=void 0,x=void 0,X=void 0,P=void 0,k=!1,_e(ce),ce.flags&=-2817,!(F.flags&1)&&Rr&8&&e.nodeIsPresent(ce.body)&&(ce.flags|=256,k&&(ce.flags|=512),ce.endFlowNode=F),ce.kind===305&&(ce.flags|=Y,ce.endFlowNode=F),$&&(n($,F),F=yr($),(ce.kind===171||ce.kind===170||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213))&&(ce.returnFlowNode=F)),fo||(F=Hr),x=pt,X=Pt,$=ga,V=ua,P=Xn,k=jr}else Rr&64?(he=!1,_e(ce),ce.flags=he?ce.flags|128:ce.flags&-129):_e(ce);R=yi,q=qi,O=je}function He(ce){rr(ce,function(Rr){return Rr.kind===256?Da(Rr):void 0}),rr(ce,function(Rr){return Rr.kind!==256?Da(Rr):void 0})}function rr(ce,Rr){Rr===void 0&&(Rr=Da),ce!==void 0&&e.forEach(ce,Rr)}function Ie(ce){e.forEachChild(ce,Da,rr)}function _e(ce){var Rr=j;if(j=!1,Ji(ce)){Ie(ce),bo(ce),j=Rr;return}switch(ce.kind>=237&&ce.kind<=253&&!se.allowUnreachableCode&&(ce.flowNode=F),ce.kind){case 241:si(ce);break;case 240:Di(ce);break;case 242:wi(ce);break;case 243:case 244:Xi(ce);break;case 239:et(ce);break;case 247:case 251:Gi(ce);break;case 246:case 245:_r(ce);break;case 252:pi(ce);break;case 249:ae(ce);break;case 263:Xe(ce);break;case 289:Jr(ce);break;case 238:ti(ce);break;case 250:Sr(ce);break;case 219:xe(ce);break;case 220:vr(ce);break;case 221:if(e.isDestructuringAssignment(ce)){j=Rr,mr(ce);return}fe(ce);break;case 215:Oe(ce);break;case 222:nr(ce);break;case 254:Pe(ce);break;case 206:case 207:Yi(ce);break;case 208:Wi(ce);break;case 230:Ui(ce);break;case 345:case 338:case 339:fr(ce);break;case 305:{He(ce.statements),Da(ce.endOfFileToken);break}case 235:case 262:He(ce.statements);break;case 203:Ue(ce);break;case 205:case 204:case 296:case 225:j=Rr;default:Ie(ce);break}bo(ce),j=Rr}function we(ce){switch(ce.kind){case 79:case 80:case 108:case 206:case 207:return ye(ce);case 208:return Ae(ce);case 212:case 230:return we(ce.expression);case 221:return ir(ce);case 219:return ce.operator===53&&we(ce.operand);case 216:return we(ce.expression)}return!1}function de(ce){return e.isDottedName(ce)||(e.isPropertyAccessExpression(ce)||e.isNonNullExpression(ce)||e.isParenthesizedExpression(ce))&&de(ce.expression)||e.isBinaryExpression(ce)&&ce.operatorToken.kind===27&&de(ce.right)||e.isElementAccessExpression(ce)&&(e.isStringOrNumericLiteralLike(ce.argumentExpression)||e.isEntityNameExpression(ce.argumentExpression))&&de(ce.expression)||e.isAssignmentExpression(ce)&&de(ce.left)}function ye(ce){return de(ce)||e.isOptionalChain(ce)&&ye(ce.expression)}function Ae(ce){if(ce.arguments)for(var Rr=0,yi=ce.arguments;Rr=117&&ce.originalKeywordKind<=125?b.bindDiagnostics.push(g(ce,ji(ce),e.declarationNameToString(ce))):ce.originalKeywordKind===132?e.isExternalModule(b)&&e.isInTopLevelContext(ce)?b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module,e.declarationNameToString(ce))):ce.flags&32768&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))):ce.originalKeywordKind===125&&ce.flags&8192&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))))}function ji(ce){return e.getContainingClass(ce)?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:b.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 Vi(ce){ce.escapedText==="#constructor"&&(b.parseDiagnostics.length||b.bindDiagnostics.push(g(ce,e.Diagnostics.constructor_is_a_reserved_word,e.declarationNameToString(ce))))}function at(ce){U&&e.isLeftHandSideExpression(ce.left)&&e.isAssignmentOperator(ce.operatorToken.kind)&&Qa(ce,ce.left)}function At(ce){U&&ce.variableDeclaration&&Qa(ce,ce.variableDeclaration.name)}function ba(ce){if(U&&ce.expression.kind===79){var Rr=e.getErrorSpanForNode(b,ce.expression);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,e.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}function $a(ce){return e.isIdentifier(ce)&&(ce.escapedText==="eval"||ce.escapedText==="arguments")}function Qa(ce,Rr){if(Rr&&Rr.kind===79){var yi=Rr;if($a(yi)){var qi=e.getErrorSpanForNode(b,Rr);b.bindDiagnostics.push(e.createFileDiagnostic(b,qi.start,qi.length,ai(ce),e.idText(yi)))}}}function ai(ce){return e.getContainingClass(ce)?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:b.externalModuleIndicator?e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode:e.Diagnostics.Invalid_use_of_0_in_strict_mode}function Dn(ce){U&&Qa(ce,ce.name)}function ka(ce){return e.getContainingClass(ce)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:b.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 Ba(ce){if(J<2&&O.kind!==305&&O.kind!==261&&!e.isFunctionLikeOrClassStaticBlockDeclaration(O)){var Rr=e.getErrorSpanForNode(b,ce);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,ka(ce)))}}function pn(ce){J<1&&U&&ce.numericLiteralFlags&32&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode))}function Cn(ce){U&&Qa(ce,ce.operand)}function Bi(ce){U&&(ce.operator===45||ce.operator===46)&&Qa(ce,ce.operand)}function kn(ce){U&&Kn(ce,e.Diagnostics.with_statements_are_not_allowed_in_strict_mode)}function xn(ce){U&&e.getEmitScriptTarget(se)>=2&&(e.isDeclarationStatement(ce.statement)||e.isVariableStatement(ce.statement))&&Kn(ce.label,e.Diagnostics.A_label_is_not_allowed_here)}function Kn(ce,Rr,yi,qi,je){var Hr=e.getSpanOfTokenAtPosition(b,ce.pos);b.bindDiagnostics.push(e.createFileDiagnostic(b,Hr.start,Hr.length,Rr,yi,qi,je))}function Pn(ce,Rr,yi){eo(ce,Rr,Rr,yi)}function eo(ce,Rr,yi,qi){Rn(ce,{pos:e.getTokenPosOfNode(Rr,b),end:yi.end},qi)}function Rn(ce,Rr,yi){var qi=e.createFileDiagnostic(b,Rr.pos,Rr.end-Rr.pos,yi);ce?b.bindDiagnostics.push(qi):b.bindSuggestionDiagnostics=e.append(b.bindSuggestionDiagnostics,Ke(Ke({},qi),{category:e.DiagnosticCategory.Suggestion}))}function Da(ce){if(!!ce){e.setParent(ce,ie),e.tracing&&(ce.tracingPath=b.path);var Rr=U;if(Wn(ce),ce.kind>160){var yi=ie;ie=ce;var qi=ct(ce);qi===0?_e(ce):Ee(ce,qi),ie=yi}else{var yi=ie;ce.kind===1&&(ie=ce),bo(ce),ie=yi}U=Rr}}function bo(ce){if(e.hasJSDocNodes(ce))if(e.isInJSFile(ce))for(var Rr=0,yi=ce.jsDoc;Rr>",0,Oe),En=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),Wn=Fu(void 0,void 0,void 0,e.emptyArray,Pe,void 0,0,0),to=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),Co=Fu(void 0,void 0,void 0,e.emptyArray,Bt,void 0,0,0),Ko=zl(nt,Li,!0),Oo=new e.Map,no={get yieldType(){return e.Debug.fail("Not supported")},get returnType(){return e.Debug.fail("Not supported")},get nextType(){return e.Debug.fail("Not supported")}},$o=a_(Oe,Oe,Oe),Pr=a_(Oe,Oe,gr),xi=a_(ui,Oe,Tr),St={iterableCacheKey:"iterationTypesOfAsyncIterable",iteratorCacheKey:"iterationTypesOfAsyncIterator",iteratorSymbolName:"asyncIterator",getGlobalIteratorType:k3,getGlobalIterableType:C3,getGlobalIterableIteratorType:A3,getGlobalGeneratorType:N3,resolveIterationType:ag,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},pa={iterableCacheKey:"iterationTypesOfIterable",iteratorCacheKey:"iterationTypesOfIterator",iteratorSymbolName:"iterator",getGlobalIteratorType:P3,getGlobalIterableType:Ax,getGlobalIterableIteratorType:I3,getGlobalGeneratorType:w3,resolveIterationType:function(r,i){return r},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},dn,Jn=new e.Map,Qe=!1,Gr,S,Ce,qe,br,Zr,Si,Pi,Qi,Ct,sa,en,Wa,qn,mo,So,Go,ys,Pc,Vc,Kc,Xs,pc,hs,tc,ps,Qs,js,ds,Ji,ce,Rr,yi,qi,je,Hr,pt,Pt,ga,ua,Xn,jr,fo,xs,Fo=new e.Map,ko=0,Ao=0,Ms=0,Bs=!1,xc=0,su,tl,Zc,Rf=Bu(""),al=If(0),Jo=ED({negative:!1,base10Value:"0"}),eu=[],Ws=[],pu=[],Uu=0,Ql=10,xl=[],Ya=[],du=[],vc=[],Kr=[],_i=[],Ei=[],tt=[],kt=[],bt=[],ia=[],Xt=[],Za=[],bn=[],_a=[],qa=[],rn=e.createDiagnosticCollection(),jn=e.createDiagnosticCollection(),Mo=new e.Map(e.getEntries({string:Li,number:nt,bigint:Mt,boolean:Ii,symbol:Ki,undefined:Tr})),ho=wp(),gs,Se,hr,Or=new e.Map,ki=new e.Map,dt=new e.Map,la=new e.Map,wa=new e.Map,On=new e.Map,No=e.createSymbolTable();No.set(mi.escapedName,mi);var jo=[[".mts",".mjs"],[".ts",".js"],[".cts",".cjs"],[".mjs",".mjs"],[".js",".js"],[".cjs",".cjs"],[".tsx",ye.jsx===1?".jsx":".js"],[".jsx",".jsx"],[".json",".json"]];return L9(),Di;function po(r){if(r){var i=e.getSourceFileOfNode(r);if(i)if(e.isJsxOpeningFragment(r)){if(i.localJsxFragmentNamespace)return i.localJsxFragmentNamespace;var t=i.pragmas.get("jsxfrag");if(t){var o=e.isArray(t)?t[0]:t;if(i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),e.visitNode(i.localJsxFragmentFactory,$n),i.localJsxFragmentFactory)return i.localJsxFragmentNamespace=e.getFirstIdentifier(i.localJsxFragmentFactory).escapedText}var s=jS(r);if(s)return i.localJsxFragmentFactory=s,i.localJsxFragmentNamespace=e.getFirstIdentifier(s).escapedText}else{var u=Gn(i);if(u)return i.localJsxNamespace=u}}return gs||(gs="React",ye.jsxFactory?(Se=e.parseIsolatedEntityName(ye.jsxFactory,Ae),e.visitNode(Se,$n),Se&&(gs=e.getFirstIdentifier(Se).escapedText)):ye.reactNamespace&&(gs=e.escapeLeadingUnderscores(ye.reactNamespace))),Se||(Se=e.factory.createQualifiedName(e.factory.createIdentifier(e.unescapeLeadingUnderscores(gs)),"createElement")),gs}function Gn(r){if(r.localJsxNamespace)return r.localJsxNamespace;var i=r.pragmas.get("jsx");if(i){var t=e.isArray(i)?i[0]:i;if(r.localJsxFactory=e.parseIsolatedEntityName(t.arguments.factory,Ae),e.visitNode(r.localJsxFactory,$n),r.localJsxFactory)return r.localJsxNamespace=e.getFirstIdentifier(r.localJsxFactory).escapedText}}function $n(r){return e.setTextRangePosEnd(r,-1,-1),e.visitEachChild(r,$n,e.nullTransformationContext)}function Ho(r,i){return X6(r,i),wr}function Zo(r,i,t,o,s,u){var h=r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u),z=rn.lookup(h);return z||(rn.add(h),h)}function Es(r,i,t,o,s,u,h){var z=Xr(i,t,o,s,u,h);return z.skippedOn=r,z}function yc(r,i,t,o,s,u){return r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u)}function Xr(r,i,t,o,s,u){var h=yc(r,i,t,o,s,u);return rn.add(h),h}function Ls(r,i){r?rn.add(i):jn.add(Ke(Ke({},i),{category:e.DiagnosticCategory.Suggestion}))}function Ic(r,i,t,o,s,u,h){if(i.pos<0||i.end<0){if(!r)return;var z=e.getSourceFileOfNode(i);Ls(r,"message"in t?e.createFileDiagnostic(z,0,0,t,o,s,u,h):e.createDiagnosticForFileFromMessageChain(z,t));return}Ls(r,"message"in t?e.createDiagnosticForNode(i,t,o,s,u,h):e.createDiagnosticForNodeFromMessageChain(i,t))}function zu(r,i,t,o,s,u,h){var z=Xr(r,t,o,s,u,h);if(i){var me=e.createDiagnosticForNode(r,e.Diagnostics.Did_you_forget_to_use_await);e.addRelatedInfo(z,me)}return z}function vf(r,i){var t=Array.isArray(r)?e.forEach(r,e.getJSDocDeprecatedTag):e.getJSDocDeprecatedTag(r);return t&&e.addRelatedInfo(i,e.createDiagnosticForNode(t,e.Diagnostics.The_declaration_was_marked_as_deprecated_here)),jn.add(i),i}function P_(r){return!!(p0(r)&268435456)}function El(r,i,t){var o=e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,t);return vf(i,o)}function vp(r,i,t,o){var s=t?e.createDiagnosticForNode(r,e.Diagnostics.The_signature_0_of_1_is_deprecated,o,t):e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,o);return vf(i,s)}function oo(r,i,t){ge++;var o=new We(r|33554432,i);return o.checkFlags=t||0,o}function I_(r){var i=0;return r&2&&(i|=111551),r&1&&(i|=111550),r&4&&(i|=0),r&8&&(i|=900095),r&16&&(i|=110991),r&32&&(i|=899503),r&64&&(i|=788872),r&256&&(i|=899327),r&128&&(i|=899967),r&512&&(i|=110735),r&8192&&(i|=103359),r&32768&&(i|=46015),r&65536&&(i|=78783),r&262144&&(i|=526824),r&524288&&(i|=788968),r&2097152&&(i|=2097152),i}function yp(r,i){i.mergeId||(i.mergeId=E,E++),xl[i.mergeId]=r}function Yl(r){var i=oo(r.flags,r.escapedName);return i.declarations=r.declarations?r.declarations.slice():[],i.parent=r.parent,r.valueDeclaration&&(i.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(i.constEnumOnlyModule=!0),r.members&&(i.members=new e.Map(r.members)),r.exports&&(i.exports=new e.Map(r.exports)),yp(i,r),i}function Bf(r,i,t){if(t===void 0&&(t=!1),!(r.flags&I_(i.flags))||(i.flags|r.flags)&67108864){if(i===r)return r;if(!(r.flags&33554432)){var o=os(r);if(o===xe)return i;r=Yl(o)}i.flags&512&&r.flags&512&&r.constEnumOnlyModule&&!i.constEnumOnlyModule&&(r.constEnumOnlyModule=!1),r.flags|=i.flags,i.valueDeclaration&&e.setValueDeclaration(r,i.valueDeclaration),e.addRange(r.declarations,i.declarations),i.members&&(r.members||(r.members=e.createSymbolTable()),gu(r.members,i.members,t)),i.exports&&(r.exports||(r.exports=e.createSymbolTable()),gu(r.exports,i.exports,t)),t||yp(r,i)}else if(r.flags&1024)r!==pe&&Xr(i.declarations&&e.getNameOfDeclaration(i.declarations[0]),e.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,tn(r));else{var s=!!(r.flags&384||i.flags&384),u=!!(r.flags&2||i.flags&2),h=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,z=i.declarations&&e.getSourceFileOfNode(i.declarations[0]),me=r.declarations&&e.getSourceFileOfNode(r.declarations[0]),Me=e.isPlainJsFile(z,ye.checkJs),$e=e.isPlainJsFile(me,ye.checkJs),tr=tn(i);if(z&&me&&dn&&!s&&z!==me){var dr=e.comparePaths(z.path,me.path)===-1?z:me,Dr=dr===z?me:z,Qr=e.getOrUpdate(dn,"".concat(dr.path,"|").concat(Dr.path),function(){return{firstFile:dr,secondFile:Dr,conflictingSymbols:new e.Map}}),li=e.getOrUpdate(Qr.conflictingSymbols,tr,function(){return{isBlockScoped:u,firstFileLocations:[],secondFileLocations:[]}});Me||Ti(li.firstFileLocations,i),$e||Ti(li.secondFileLocations,r)}else Me||Cl(i,h,tr,r),$e||Cl(r,h,tr,i)}return r;function Ti(Ci,$i){if($i.declarations)for(var Zi=0,qt=$i.declarations;Zi=5||e.some(u.relatedInformation,function(Qr){return e.compareDiagnostics(Qr,Dr)===0||e.compareDiagnostics(Qr,dr)===0}))return"continue";e.addRelatedInfo(u,e.length(u.relatedInformation)?Dr:dr)},z=0,me=o||e.emptyArray;z1);return}if(e.isGlobalScopeAugmentation(s))gu(ii,s.symbol.exports);else{var u=r.parent.parent.flags&16777216?void 0:e.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found,h=Pl(r,r,u,!0);if(!h)return;if(h=Us(h),h.flags&1920)if(e.some(S,function(Qr){return h===Qr.symbol})){var z=Bf(s.symbol,h,!0);Ce||(Ce=new e.Map),Ce.set(r.text,z)}else{if(((t=h.exports)===null||t===void 0?void 0:t.get("__export"))&&((o=s.symbol.exports)===null||o===void 0?void 0:o.size))for(var me=Jv(h,"resolvedExports"),Me=0,$e=e.arrayFrom(s.symbol.exports.entries());Me<$e.length;Me++){var tr=$e[Me],dr=tr[0],Dr=tr[1];me.has(dr)&&!h.exports.has(dr)&&Bf(me.get(dr),Dr)}Bf(h,s.symbol)}else Xr(r,e.Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity,r.text)}}function sd(r,i,t){i.forEach(function(s,u){var h=r.get(u);h?e.forEach(h.declarations,o(e.unescapeLeadingUnderscores(u),t)):r.set(u,s)});function o(s,u){return function(h){return rn.add(e.createDiagnosticForNode(h,u,s))}}}function Aa(r){if(r.flags&33554432)return r;var i=y(r);return Ya[i]||(Ya[i]=new X)}function va(r){var i=A(r);return du[i]||(du[i]=new $)}function Cu(r){return r.kind===305&&!e.isExternalOrCommonJsModule(r)}function qs(r,i,t){if(t){var o=so(r.get(i));if(o){if(e.Debug.assert((e.getCheckFlags(o)&1)===0,"Should never get an instantiated symbol here."),o.flags&t)return o;if(o.flags&2097152){var s=Ps(o);if(s===xe||s.flags&t)return o}}}}function cd(r,i){var t=r.parent,o=r.parent.parent,s=qs(t.locals,i,111551),u=qs(Nf(o.symbol),i,111551);return s&&u?[s,u]:e.Debug.fail("There should exist two symbols, one as property declaration and one as parameter declaration")}function ns(r,i){var t=e.getSourceFileOfNode(r),o=e.getSourceFileOfNode(i),s=e.getEnclosingBlockScopeContainer(r);if(t!==o){if(er&&(t.externalModuleIndicator||o.externalModuleIndicator)||!e.outFile(ye)||_m(i)||r.flags&16777216||Me(i,r))return!0;var u=l.getSourceFiles();return u.indexOf(t)<=u.indexOf(o)}if(r.pos<=i.pos&&!(e.isPropertyDeclaration(r)&&e.isThisProperty(i.parent)&&!r.initializer&&!r.exclamationToken)){if(r.kind===203){var h=e.getAncestor(i,203);return h?e.findAncestor(h,e.isBindingElement)!==e.findAncestor(r,e.isBindingElement)||r.postr.end)return!1;var Qr=e.findAncestor(dr,function(li){if(li===tr)return"quit";switch(li.kind){case 214:return!0;case 167:return Dr&&(e.isPropertyDeclaration(tr)&&li.parent===tr.parent||e.isParameterPropertyDeclaration(tr,tr.parent)&&li.parent===tr.parent.parent)?"quit":!0;case 235:switch(li.parent.kind){case 172:case 169:case 173:return!0;default:return!1}default:return!1}});return Qr===void 0}}function nl(r,i,t){var o=e.getEmitScriptTarget(ye),s=i;if(e.isParameter(t)&&s.body&&r.valueDeclaration&&r.valueDeclaration.pos>=s.body.pos&&r.valueDeclaration.end<=s.body.end&&o>=2){var u=va(s);return u.declarationRequiresScopeChange===void 0&&(u.declarationRequiresScopeChange=e.forEach(s.parameters,h)||!1),!u.declarationRequiresScopeChange}return!1;function h(me){return z(me.name)||!!me.initializer&&z(me.initializer)}function z(me){switch(me.kind){case 214:case 213:case 256:case 171:return!1;case 169:case 172:case 173:case 296:return z(me.name);case 167:return e.hasStaticModifier(me)?o<99||!ir:z(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,z)||!1}}}function hc(r){return e.isAssertionExpression(r)&&e.isConstTypeReference(r.type)||e.isJSDocTypeTag(r)&&e.isConstTypeReference(r.typeExpression)}function es(r,i,t,o,s,u,h,z){return h===void 0&&(h=!1),z===void 0&&(z=!0),u_(r,i,t,o,s,u,h,z,qs)}function u_(r,i,t,o,s,u,h,z,me){var Me,$e,tr,dr=r,Dr,Qr,li,Ti,Ci,$i=!1,Zi=r,qt,Nt=!1;e:for(;r;){if(i==="const"&&hc(r))return;if(r.locals&&!Cu(r)&&(Dr=me(r.locals,i,t))){var Ra=!0;if(e.isFunctionLike(r)&&Qr&&Qr!==r.body?(t&Dr.flags&788968&&Qr.kind!==320&&(Ra=Dr.flags&262144?Qr===r.type||Qr.kind===164||Qr.kind===340||Qr.kind===341||Qr.kind===163:!1),t&Dr.flags&3&&(nl(Dr,r,Qr)?Ra=!1:Dr.flags&1&&(Ra=Qr.kind===164||Qr===r.type&&!!e.findAncestor(Dr.valueDeclaration,e.isParameter)))):r.kind===189&&(Ra=Qr===r.trueType),Ra)break e;Dr=void 0}switch($i=$i||w_(r,Qr),r.kind){case 305:if(!e.isExternalOrCommonJsModule(r))break;Nt=!0;case 261:var ca=((Me=Et(r))===null||Me===void 0?void 0:Me.exports)||we;if(r.kind===305||e.isModuleDeclaration(r)&&r.flags&16777216&&!e.isGlobalScopeAugmentation(r)){if(Dr=ca.get("default")){var Sn=e.getLocalSymbolForExportDefault(Dr);if(Sn&&Dr.flags&t&&Sn.escapedName===i)break e;Dr=void 0}var ja=ca.get(i);if(ja&&ja.flags===2097152&&(e.getDeclarationOfKind(ja,275)||e.getDeclarationOfKind(ja,274)))break}if(i!=="default"&&(Dr=me(ca,i,t&2623475)))if(e.isSourceFile(r)&&r.commonJsModuleIndicator&&!(!(($e=Dr.declarations)===null||$e===void 0)&&$e.some(e.isJSDocTypeAlias)))Dr=void 0;else break e;break;case 260:if(Dr=me(((tr=Et(r))===null||tr===void 0?void 0:tr.exports)||we,i,t&8))break e;break;case 167:if(!e.isStatic(r)){var Fn=Tf(r.parent);Fn&&Fn.locals&&me(Fn.locals,i,t&111551)&&(Ti=r)}break;case 257:case 226:case 258:if(Dr=me(Et(r).members||we,i,t&788968)){if(!ld(Dr,r)){Dr=void 0;break}if(Qr&&e.isStatic(Qr)){Xr(Zi,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);return}break e}if(r.kind===226&&t&32){var wn=r.name;if(wn&&i===wn.escapedText){Dr=r.symbol;break e}}break;case 228:if(Qr===r.expression&&r.parent.token===94){var Tn=r.parent.parent;if(e.isClassLike(Tn)&&(Dr=me(Et(Tn).members,i,t&788968))){o&&Xr(Zi,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters);return}}break;case 162:if(qt=r.parent.parent,(e.isClassLike(qt)||qt.kind===258)&&(Dr=me(Et(qt).members,i,t&788968))){Xr(Zi,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);return}break;case 214:if(e.getEmitScriptTarget(ye)>=2)break;case 169:case 171:case 172:case 173:case 256:if(t&3&&i==="arguments"){Dr=or;break e}break;case 213:if(t&3&&i==="arguments"){Dr=or;break e}if(t&16){var Eo=r.name;if(Eo&&i===Eo.escapedText){Dr=r.symbol;break e}}break;case 165:r.parent&&r.parent.kind===164&&(r=r.parent),r.parent&&(e.isClassElement(r.parent)||r.parent.kind===257)&&(r=r.parent);break;case 345:case 338:case 339:var lt=e.getJSDocRoot(r);lt&&(r=lt.parent);break;case 164:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&(Ci||(Ci=r));break;case 203:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&e.isParameterDeclaration(r)&&!Ci&&(Ci=r);break;case 190:if(t&262144){var it=r.typeParameter.name;if(it&&i===it.escapedText){Dr=r.typeParameter.symbol;break e}}break}ud(r)&&(li=r),Qr=r,r=e.isJSDocTemplateTag(r)?e.getEffectiveContainerForJSDocTemplateTag(r)||r.parent:(e.isJSDocParameterTag(r)||e.isJSDocReturnTag(r))&&e.getHostSignatureFromJSDoc(r)||r.parent}if(u&&Dr&&(!li||Dr!==li.symbol)&&(Dr.isReferenced|=t),!Dr){if(Qr&&(e.Debug.assert(Qr.kind===305),Qr.commonJsModuleIndicator&&i==="exports"&&t&Qr.symbol.flags))return Qr.symbol;h||(Dr=me(ii,i,t))}if(!Dr&&dr&&e.isInJSFile(dr)&&dr.parent&&e.isRequireCall(dr.parent,!1))return qr;if(!Dr){o&&fe(function(){if(!Zi||!fd(Zi,i,s)&&!bp(Zi)&&!Tp(Zi,i,t)&&!O_(Zi,i)&&!F_(Zi,i,t)&&!M_(Zi,i,t)&&!_d(Zi,i,t)){var Ia=void 0;if(z&&UuCi.pos&&cn.parent.locals&&me(cn.parent.locals,Ka.escapedName,t)===Ka&&Xr(Zi,e.Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString(Ci.name),e.declarationNameToString(Zi))}if(Dr&&Zi&&t&111551&&Dr.flags&2097152&&!(Dr.flags&111551)&&!e.isValidTypeOnlyAliasUseSite(Zi)){var Un=vu(Dr);if(Un){var oa=Un.kind===275?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,Mn=e.unescapeLeadingUnderscores(i);Jf(Xr(Zi,oa,Mn),Un,Mn)}}}),Dr}function Jf(r,i,t){return i?e.addRelatedInfo(r,e.createDiagnosticForNode(i,i.kind===275?e.Diagnostics._0_was_exported_here:e.Diagnostics._0_was_imported_here,t)):r}function w_(r,i){return r.kind!==214&&r.kind!==213?e.isTypeQueryNode(r)||(e.isFunctionLikeDeclaration(r)||r.kind===167&&!e.isStatic(r))&&(!i||i!==r.name):i&&i===r.name?!1:r.asteriskToken||e.hasSyntacticModifier(r,256)?!0:!e.getImmediatelyInvokedFunctionExpression(r)}function ud(r){switch(r.kind){case 256:case 257:case 258:case 260:case 259:case 261:return!0;default:return!1}}function ku(r){return e.isString(r)?e.unescapeLeadingUnderscores(r):e.declarationNameToString(r)}function ld(r,i){if(r.declarations)for(var t=0,o=r.declarations;t=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop",Me=o.exports.get("export="),$e=Me.valueDeclaration,tr=Xr(r.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,tn(o),me);$e&&e.addRelatedInfo(tr,e.createDiagnosticForNode($e,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,me))}else f_(o,r);else if(z||h){var dr=Us(o,i)||os(o,i);return Gc(r,o,dr,!1),dr}return Gc(r,s,void 0,!1),s}}function f_(r,i){var t,o,s;if(!((t=r.exports)===null||t===void 0)&&t.has(i.symbol.escapedName))Xr(i.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,tn(r),tn(i.symbol));else{var u=Xr(i.name,e.Diagnostics.Module_0_has_no_default_export,tn(r)),h=(o=r.exports)===null||o===void 0?void 0:o.get("__export");if(h){var z=(s=h.declarations)===null||s===void 0?void 0:s.find(function(me){var Me,$e;return!!(e.isExportDeclaration(me)&&me.moduleSpecifier&&(($e=(Me=ac(me,me.moduleSpecifier))===null||Me===void 0?void 0:Me.exports)===null||$e===void 0?void 0:$e.has("default")))});z&&e.addRelatedInfo(u,e.createDiagnosticForNode(z,e.Diagnostics.export_Asterisk_does_not_re_export_a_default))}}}function md(r,i){var t=r.parent.parent.moduleSpecifier,o=ac(r,t),s=Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function ks(r,i){var t=r.parent.moduleSpecifier,o=t&&ac(r,t),s=t&&Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function Wu(r,i){if(r===xe&&i===xe)return xe;if(r.flags&790504)return r;var t=oo(r.flags|i.flags,r.escapedName);return t.declarations=e.deduplicate(e.concatenate(r.declarations,i.declarations),e.equateValues),t.parent=r.parent||i.parent,r.valueDeclaration&&(t.valueDeclaration=r.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),r.exports&&(t.exports=new e.Map(r.exports)),t}function Zl(r,i,t,o){if(r.flags&1536){var s=dc(r).get(i.escapedText),u=os(s,o);return Gc(t,s,u,!1),u}}function R_(r,i){if(r.flags&3){var t=r.valueDeclaration.type;if(t)return os(bi(Va(t),i))}}function kl(r,i,t){var o,s;t===void 0&&(t=!1);var u=e.getExternalModuleRequireArgument(r)||r.moduleSpecifier,h=ac(r,u),z=!e.isPropertyAccessExpression(i)&&i.propertyName||i.name;if(!!e.isIdentifier(z)){var me=z.escapedText==="default"&&!!(ye.allowSyntheticDefaultImports||e.getESModuleInterop(ye)),Me=Wf(h,u,!1,me);if(Me&&z.escapedText){if(e.isShorthandAmbientModuleSymbol(h))return h;var $e=void 0;h&&h.exports&&h.exports.get("export=")?$e=bi(Jt(Me),z.escapedText,!0):$e=R_(Me,z.escapedText),$e=os($e,t);var tr=Zl(Me,z,i,t);if(tr===void 0&&z.escapedText==="default"){var dr=(o=h.declarations)===null||o===void 0?void 0:o.find(e.isSourceFile);(Uf(u)||L_(dr,h,t,u))&&(tr=Us(h,t)||os(h,t))}var Dr=tr&&$e&&tr!==$e?Wu($e,tr):tr||$e;if(!Dr){var Qr=cl(h,r),li=e.declarationNameToString(z),Ti=v0(z,Me);if(Ti!==void 0){var Ci=tn(Ti),$i=Xr(z,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,Qr,li,Ci);Ti.valueDeclaration&&e.addRelatedInfo($i,e.createDiagnosticForNode(Ti.valueDeclaration,e.Diagnostics._0_is_declared_here,Ci))}else!((s=h.exports)===null||s===void 0)&&s.has("default")?Xr(z,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,Qr,li):__(r,z,li,h,Qr)}return Dr}}}function __(r,i,t,o,s){var u,h,z=(h=(u=o.valueDeclaration)===null||u===void 0?void 0:u.locals)===null||h===void 0?void 0:h.get(i.escapedText),me=o.exports;if(z){var Me=me==null?void 0:me.get("export=");if(Me)_l(Me,z)?zd(r,i,t,s):Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t);else{var $e=me?e.find(Y_(me),function(dr){return!!_l(dr,z)}):void 0,tr=$e?Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2,s,t,tn($e)):Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported,s,t);z.declarations&&e.addRelatedInfo.apply(void 0,Ve([tr],e.map(z.declarations,function(dr,Dr){return e.createDiagnosticForNode(dr,Dr===0?e.Diagnostics._0_is_declared_here:e.Diagnostics.and_here,t)}),!1))}}else Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t)}function zd(r,i,t,o){if(er>=e.ModuleKind.ES2015){var s=e.getESModuleInterop(ye)?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;Xr(i,s,t)}else if(e.isInJSFile(r)){var s=e.getESModuleInterop(ye)?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;Xr(i,s,t)}else{var s=e.getESModuleInterop(ye)?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;Xr(i,s,t,t,o)}}function Al(r,i){var t=e.isBindingElement(r)?e.getRootDeclaration(r):r.parent.parent.parent,o=wc(t),s=kl(t,o||r,i),u=r.propertyName||r.name;return o&&s&&e.isIdentifier(u)?os(bi(Jt(s),u.escapedText),i):(Gc(r,void 0,s,!1),s)}function wc(r){if(e.isVariableDeclaration(r)&&r.initializer&&e.isPropertyAccessExpression(r.initializer))return r.initializer}function qu(r,i){var t=Us(r.parent.symbol,i);return Gc(r,void 0,t,!1),t}function Vu(r,i,t){var o=r.parent.parent.moduleSpecifier?kl(r.parent.parent,r,t):Ds(r.propertyName||r.name,i,!1,t);return Gc(r,void 0,o,!1),o}function ef(r,i){var t=e.isExportAssignment(r)?r.expression:r.right,o=sl(t,i);return Gc(r,void 0,o,!1),o}function sl(r,i){if(e.isClassExpression(r))return Os(r).symbol;if(!(!e.isEntityName(r)&&!e.isEntityNameExpression(r))){var t=Ds(r,901119,!0,i);return t||(Os(r),va(r).resolvedSymbol)}}function p_(r,i){var t=r.initializer;return sl(t,i)}function Df(r,i){if(!!(e.isBinaryExpression(r.parent)&&r.parent.left===r&&r.parent.operatorToken.kind===63))return sl(r.parent.right,i)}function Ec(r,i){switch(i===void 0&&(i=!1),r.kind){case 265:case 254:return dd(r,i);case 267:return l_(r,i);case 268:return md(r,i);case 274:return ks(r,i);case 270:case 203:return Al(r,i);case 275:return Vu(r,901119,i);case 271:case 221:return ef(r,i);case 264:return qu(r,i);case 297:return Ds(r.name,901119,!0,i);case 296:return p_(r,i);case 207:case 206:return Df(r,i);default:return e.Debug.fail()}}function Zn(r,i){return i===void 0&&(i=901119),r?(r.flags&(2097152|i))===2097152||!!(r.flags&2097152&&r.flags&67108864):!1}function os(r,i){return!i&&Zn(r)?Ps(r):r}function Ps(r){e.Debug.assert((r.flags&2097152)!==0,"Should only get Alias here.");var i=Aa(r);if(i.aliasTarget)i.aliasTarget===vr&&(i.aliasTarget=xe);else{i.aliasTarget=vr;var t=ru(r);if(!t)return e.Debug.fail();var o=Ec(t);i.aliasTarget===vr?i.aliasTarget=o||xe:Xr(t,e.Diagnostics.Circular_definition_of_import_alias_0,tn(r))}return i.aliasTarget}function d_(r){var i=Aa(r);if(i.aliasTarget!==vr)return Ps(r)}function Gc(r,i,t,o){if(!r||e.isPropertyAccessExpression(r))return!1;var s=Et(r);if(e.isTypeOnlyImportOrExportDeclaration(r)){var u=Aa(s);return u.typeOnlyDeclaration=r,!0}var h=Aa(s);return B_(h,i,o)||B_(h,t,o)}function B_(r,i,t){var o,s,u;if(i&&(r.typeOnlyDeclaration===void 0||t&&r.typeOnlyDeclaration===!1)){var h=(s=(o=i.exports)===null||o===void 0?void 0:o.get("export="))!==null&&s!==void 0?s:i,z=h.declarations&&e.find(h.declarations,e.isTypeOnlyImportOrExportDeclaration);r.typeOnlyDeclaration=(u=z!=null?z:Aa(h).typeOnlyDeclaration)!==null&&u!==void 0?u:!1}return!!r.typeOnlyDeclaration}function vu(r){if(!!(r.flags&2097152)){var i=Aa(r);return i.typeOnlyDeclaration||void 0}}function Gt(r){var i=Et(r),t=Ps(i);if(t){var o=t===xe||t.flags&111551&&!Av(t)&&!vu(i);o&&As(i)}}function As(r){var i=Aa(r);if(!i.referenced){i.referenced=!0;var t=ru(r);if(!t)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(t)){var o=os(r);(o===xe||o.flags&111551)&&Os(t.moduleReference)}}}function vn(r){var i=Aa(r);i.constEnumReferenced||(i.constEnumReferenced=!0)}function Nl(r,i){return r.kind===79&&e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),r.kind===79||r.parent.kind===161?Ds(r,1920,!1,i):(e.Debug.assert(r.parent.kind===265),Ds(r,901119,!1,i))}function cl(r,i){return r.parent?cl(r.parent,i)+"."+tn(r):tn(r,i,void 0,20)}function rf(r){for(;e.isQualifiedName(r.parent);)r=r.parent;return r}function Ut(r){var i=e.getFirstIdentifier(r),t=es(i,i.escapedText,111551,void 0,i,!0);if(!!t){for(;e.isQualifiedName(i.parent);){var o=Jt(t);if(t=bi(o,i.parent.right.escapedText),!t)return;i=i.parent}return t}}function Ds(r,i,t,o,s){if(!e.nodeIsMissing(r)){var u=1920|(e.isInJSFile(r)?i&111551:0),h;if(r.kind===79){var z=i===u||e.nodeIsSynthesized(r)?e.Diagnostics.Cannot_find_namespace_0:HE(e.getFirstIdentifier(r)),me=e.isInJSFile(r)&&!e.nodeIsSynthesized(r)?bf(r,i):void 0;if(h=so(es(s||r,r.escapedText,i,t||me?void 0:z,r,!0,!1)),!h)return so(me)}else if(r.kind===161||r.kind===206){var Me=r.kind===161?r.left:r.expression,$e=r.kind===161?r.right:r.name,tr=Ds(Me,u,t,!1,s);if(!tr||e.nodeIsMissing($e))return;if(tr===xe)return tr;if(tr.valueDeclaration&&e.isInJSFile(tr.valueDeclaration)&&e.isVariableDeclaration(tr.valueDeclaration)&&tr.valueDeclaration.initializer&&xk(tr.valueDeclaration.initializer)){var dr=tr.valueDeclaration.initializer.arguments[0],Dr=ac(dr,dr);if(Dr){var Qr=Us(Dr);Qr&&(tr=Qr)}}if(h=so(qs(dc(tr),$e.escapedText,i)),!h){if(!t){var li=cl(tr),Ti=e.declarationNameToString($e),Ci=v0($e,tr);if(Ci){Xr($e,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,li,Ti,tn(Ci));return}var $i=e.isQualifiedName(r)&&rf(r),Zi=qe&&i&788968&&$i&&!e.isTypeOfExpression($i.parent)&&Ut($i);if(Zi){Xr($i,e.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,e.entityNameToString($i));return}if(i&1920&&e.isQualifiedName(r.parent)){var qt=so(qs(dc(tr),$e.escapedText,788968));if(qt){Xr(r.parent.right,e.Diagnostics.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,tn(qt),e.unescapeLeadingUnderscores(r.parent.right.escapedText));return}}Xr($e,e.Diagnostics.Namespace_0_has_no_exported_member_1,li,Ti)}return}}else throw e.Debug.assertNever(r,"Unknown entity name kind.");return e.Debug.assert((e.getCheckFlags(h)&1)===0,"Should never get an instantiated symbol here."),!e.nodeIsSynthesized(r)&&e.isEntityName(r)&&(h.flags&2097152||r.parent.kind===271)&&Gc(e.getAliasDeclarationFromName(r),h,void 0,!0),h.flags&i||o?h:Ps(h)}}function bf(r,i){if(Dh(r.parent)){var t=bs(r.parent);if(t)return es(t,r.escapedText,i,void 0,r,!0)}}function bs(r){var i=e.findAncestor(r,function(u){return e.isJSDocNode(u)||u.flags&8388608?e.isJSDocTypeAlias(u):"quit"});if(!i){var t=e.getJSDocHost(r);if(t&&e.isExpressionStatement(t)&&e.isPrototypePropertyAssignment(t.expression)){var o=Et(t.expression.left);if(o)return Dc(o)}if(t&&e.isFunctionExpression(t)&&e.isPrototypePropertyAssignment(t.parent)&&e.isExpressionStatement(t.parent.parent)){var o=Et(t.parent.left);if(o)return Dc(o)}if(t&&(e.isObjectLiteralMethod(t)||e.isPropertyAssignment(t))&&e.isBinaryExpression(t.parent.parent)&&e.getAssignmentDeclarationKind(t.parent.parent)===6){var o=Et(t.parent.parent.left);if(o)return Dc(o)}var s=e.getEffectiveJSDocHost(r);if(s&&e.isFunctionLike(s)){var o=Et(s);return o&&o.valueDeclaration}}}function Dc(r){var i=r.parent.valueDeclaration;if(!!i){var t=e.isAssignmentDeclaration(i)?e.getAssignedExpandoInitializer(i):e.hasOnlyExpressionInitializer(i)?e.getDeclaredExpandoInitializer(i):void 0;return t||i}}function Cc(r){var i=r.valueDeclaration;if(!(!i||!e.isInJSFile(i)||r.flags&524288||e.getExpandoInitializer(i,!1))){var t=e.isVariableDeclaration(i)?e.getDeclaredExpandoInitializer(i):e.getAssignedExpandoInitializer(i);if(t){var o=Et(t);if(o)return iS(o,r)}}}function ac(r,i,t){var o=e.getEmitModuleResolutionKind(ye)===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 Pl(r,i,t?void 0:s)}function Pl(r,i,t,o){return o===void 0&&(o=!1),e.isStringLiteralLike(i)?Il(r,i.text,t,i,o):void 0}function Il(r,i,t,o,s){var u,h,z,me,Me,$e,tr,dr;if(s===void 0&&(s=!1),e.startsWith(i,"@types/")){var Dr=e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,Qr=e.removePrefix(i,"@types/");Xr(o,Dr,Qr,i)}var li=b_(i,!0);if(li)return li;var Ti=e.getSourceFileOfNode(r),Ci=e.isStringLiteralLike(r)?r:((u=e.findAncestor(r,e.isImportCall))===null||u===void 0?void 0:u.arguments[0])||((h=e.findAncestor(r,e.isImportDeclaration))===null||h===void 0?void 0:h.moduleSpecifier)||((z=e.findAncestor(r,e.isExternalModuleImportEqualsDeclaration))===null||z===void 0?void 0:z.moduleReference.expression)||((me=e.findAncestor(r,e.isExportDeclaration))===null||me===void 0?void 0:me.moduleSpecifier)||((Me=e.isModuleDeclaration(r)?r:r.parent&&e.isModuleDeclaration(r.parent)&&r.parent.name===r?r.parent:void 0)===null||Me===void 0?void 0:Me.name)||(($e=e.isLiteralImportTypeNode(r)?r:void 0)===null||$e===void 0?void 0:$e.argument.literal),$i=Ci&&e.isStringLiteralLike(Ci)?e.getModeForUsageLocation(Ti,Ci):Ti.impliedNodeFormat,Zi=e.getResolvedModule(Ti,i,$i),qt=Zi&&e.getResolutionDiagnostic(ye,Zi),Nt=Zi&&(!qt||qt===e.Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set)&&l.getSourceFile(Zi.resolvedFileName);if(Nt){if(qt&&Xr(o,qt,i,Zi.resolvedFileName),Nt.symbol){if(Zi.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&zf(!1,o,Zi,i),e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Ra=Ti.impliedNodeFormat===e.ModuleKind.CommonJS&&!e.findAncestor(r,e.isImportCall)||!!e.findAncestor(r,e.isImportEqualsDeclaration),ca=e.findAncestor(r,function(cn){return e.isImportTypeNode(cn)||e.isExportDeclaration(cn)||e.isImportDeclaration(cn)}),Sn=ca&&e.isImportTypeNode(ca)?(tr=ca.assertions)===null||tr===void 0?void 0:tr.assertClause:ca==null?void 0:ca.assertClause;Ra&&Nt.impliedNodeFormat===e.ModuleKind.ESNext&&!e.getResolutionModeOverrideForClause(Sn)&&Xr(o,e.Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead,i)}return so(Nt.symbol)}t&&Xr(o,e.Diagnostics.File_0_is_not_a_module,Nt.fileName);return}if(S){var ja=e.findBestPatternMatch(S,function(cn){return cn.pattern},i);if(ja){var Fn=Ce&&Ce.get(i);return so(Fn||ja.symbol)}}if(Zi&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&qt===void 0||qt===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type){if(s){var Dr=e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;Xr(o,Dr,i,Zi.resolvedFileName)}else zf(n&&!!t,o,Zi,i);return}if(t){if(Zi){var wn=l.getProjectReferenceRedirect(Zi.resolvedFileName);if(wn){Xr(o,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,wn,Zi.resolvedFileName);return}}if(qt)Xr(o,qt,i,Zi.resolvedFileName);else{var Tn=e.tryExtractTSExtension(i),Eo=e.pathIsRelative(i)&&!e.hasExtension(i),lt=e.getEmitModuleResolutionKind(ye),it=lt===e.ModuleResolutionKind.Node16||lt===e.ModuleResolutionKind.NodeNext;if(Tn){var Dr=e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,Yt=e.removeExtension(i,Tn),Ia=Yt;er>=e.ModuleKind.ES2015&&(Ia+=Tn===".mts"?".mjs":Tn===".cts"?".cjs":".js"),Xr(o,Dr,Tn,Ia)}else if(!ye.resolveJsonModule&&e.fileExtensionIs(i,".json")&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&e.hasJsonModuleEmitEnabled(ye))Xr(o,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,i);else if($i===e.ModuleKind.ESNext&&it&&Eo){var Qt=e.getNormalizedAbsolutePath(i,e.getDirectoryPath(Ti.path)),Ka=(dr=jo.find(function(cn){var Un=cn[0],oa=cn[1];return l.fileExists(Qt+Un)}))===null||dr===void 0?void 0:dr[1];Ka?Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0,i+Ka):Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path)}else Xr(o,t,i)}}}function zf(r,i,t,o){var s=t.packageId,u=t.resolvedFileName,h=!e.isExternalModuleNameRelative(o)&&s?ul(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)):Nu(s.name)?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1,s.name,o):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;Ic(r,i,e.chainDiagnosticMessages(h,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,o,u))}function ul(r){return d().has(e.getTypesPackageName(r))}function Nu(r){return!!d().get(r)}function Us(r,i){if(r!=null&&r.exports){var t=os(r.exports.get("export="),i),o=Ap(so(t),so(r));return so(o)||r}}function Ap(r,i){if(!r||r===xe||r===i||i.exports.size===1||r.flags&2097152)return r;var t=Aa(r);if(t.cjsExportMerged)return t.cjsExportMerged;var o=r.flags&33554432?r:Yl(r);return o.flags=o.flags|512,o.exports===void 0&&(o.exports=e.createSymbolTable()),i.exports.forEach(function(s,u){u!=="export="&&o.exports.set(u,o.exports.has(u)?Bf(o.exports.get(u),s):s)}),Aa(o).cjsExportMerged=o,t.cjsExportMerged=o}function Wf(r,i,t,o){var s,u=Us(r,t);if(!t&&u){if(!o&&!(u.flags&1539)&&!e.getDeclarationOfKind(u,305)){var h=er>=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop";return Xr(i,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,h),u}var z=i.parent;if(e.isImportDeclaration(z)&&e.getNamespaceDeclarationNode(z)||e.isImportCall(z)){var me=e.isImportCall(z)?z.arguments[0]:z.moduleSpecifier,Me=Jt(u),$e=Sk(Me,u,r,me);if($e)return Sf(u,$e,z);var tr=(s=r==null?void 0:r.declarations)===null||s===void 0?void 0:s.find(e.isSourceFile),dr=tr&&$l(hf(me),tr.impliedNodeFormat);if(e.getESModuleInterop(ye)||dr){var Dr=Ft(Me,0);if((!Dr||!Dr.length)&&(Dr=Ft(Me,1)),Dr&&Dr.length||bi(Me,"default",!0)||dr){var Qr=Tk(Me,u,r,me);return Sf(u,Qr,z)}}}}return u}function Sf(r,i,t){var o=oo(r.flags,r.escapedName);o.declarations=r.declarations?r.declarations.slice():[],o.parent=r.parent,o.target=r,o.originatingImport=t,r.valueDeclaration&&(o.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(o.constEnumOnlyModule=!0),r.members&&(o.members=new e.Map(r.members)),r.exports&&(o.exports=new e.Map(r.exports));var s=Ru(i);return o.type=rs(o,s.members,e.emptyArray,e.emptyArray,s.indexInfos),o}function ll(r){return r.exports.get("export=")!==void 0}function J_(r){return Y_(Pu(r))}function j_(r){var i=J_(r),t=Us(r);if(t!==r){var o=Jt(t);qf(o)&&e.addRange(i,uo(o))}return i}function U_(r,i){var t=Pu(r);t.forEach(function(u,h){Ol(h)||i(u,h)});var o=Us(r);if(o!==r){var s=Jt(o);qf(s)&&U1(s,function(u,h){i(u,h)})}}function iu(r,i){var t=Pu(i);if(t)return t.get(r)}function vd(r,i){var t=iu(r,i);if(t)return t;var o=Us(i);if(o!==i){var s=Jt(o);return qf(s)?bi(s,r):void 0}}function qf(r){return!(r.flags&131068||e.getObjectFlags(r)&1||Tu(r)||Yn(r))}function dc(r){return r.flags&6256?Jv(r,"resolvedExports"):r.flags&1536?Pu(r):r.exports||we}function Pu(r){var i=Aa(r);return i.resolvedExports||(i.resolvedExports=Iu(r))}function wl(r,i,t,o){!i||i.forEach(function(s,u){if(u!=="default"){var h=r.get(u);if(!h)r.set(u,s),t&&o&&t.set(u,{specifierText:e.getTextOfNode(o.moduleSpecifier)});else if(t&&o&&h&&os(h)!==os(s)){var z=t.get(u);z.exportsWithDuplicate?z.exportsWithDuplicate.push(o):z.exportsWithDuplicate=[o]}}})}function Iu(r){var i=[];return r=Us(r),t(r)||we;function t(o){if(!!(o&&o.exports&&e.pushIfUnique(i,o))){var s=new e.Map(o.exports),u=o.exports.get("__export");if(u){var h=e.createSymbolTable(),z=new e.Map;if(u.declarations)for(var me=0,Me=u.declarations;me=$e?Me.substr(0,$e-3)+"...":Me}function nf(r,i){var t=Kf(r.symbol)?Ot(r,r.symbol.valueDeclaration):Ot(r),o=Kf(i.symbol)?Ot(i,i.symbol.valueDeclaration):Ot(i);return t===o&&(t=q_(r),o=q_(i)),[t,o]}function q_(r){return Ot(r,void 0,64)}function Kf(r){return r&&!!r.valueDeclaration&&e.isExpression(r.valueDeclaration)&&!Ju(r.valueDeclaration)}function Rp(r){return r===void 0&&(r=0),r&814775659}function yd(r){return!!r.symbol&&!!(r.symbol.flags&32)&&(r===aa(r.symbol)||!!(r.flags&524288)&&!!(e.getObjectFlags(r)&16777216))}function m_(){return{typeToTypeNode:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return o(ci,ea)})},indexInfoToIndexSignatureDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Me(ci,ea,void 0)})},signatureToSignatureDeclaration:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return $e(ci,Fr,Kt)})},symbolToEntityName:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return Fn(ci,Kt,Fr,!1)})},symbolToExpression:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return wn(ci,Kt,Fr)})},symbolToTypeParameterDeclarations:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return $i(ci,ea)})},symbolToParameterDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Qr(ci,ea)})},typeParameterToDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Dr(ci,ea)})},symbolTableToDeclarationStatements:function(ci,Fr,jt,Lt,ea){return r(Fr,jt,Lt,function(Kt){return Ln(ci,Kt,ea)})}};function r(ci,Fr,jt,Lt){var ea,Kt;e.Debug.assert(ci===void 0||(ci.flags&8)===0);var $t={enclosingDeclaration:ci,flags:Fr||0,tracker:jt&&jt.trackSymbol?jt:{trackSymbol:function(){return!1},moduleResolverHost:Fr&134217728?{getCommonSourceDirectory:l.getCommonSourceDirectory?function(){return l.getCommonSourceDirectory()}:function(){return""},getCurrentDirectory:function(){return l.getCurrentDirectory()},getSymlinkCache:e.maybeBind(l,l.getSymlinkCache),getPackageJsonInfoCache:function(){var Yr;return(Yr=l.getPackageJsonInfoCache)===null||Yr===void 0?void 0:Yr.call(l)},useCaseSensitiveFileNames:e.maybeBind(l,l.useCaseSensitiveFileNames),redirectTargetsMap:l.redirectTargetsMap,getProjectReferenceRedirect:function(Yr){return l.getProjectReferenceRedirect(Yr)},isSourceOfProjectReferenceRedirect:function(Yr){return l.isSourceOfProjectReferenceRedirect(Yr)},fileExists:function(Yr){return l.fileExists(Yr)},getFileIncludeReasons:function(){return l.getFileIncludeReasons()},readFile:l.readFile?function(Yr){return l.readFile(Yr)}:void 0}:void 0},encounteredError:!1,reportedDiagnostic:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0};$t.tracker=i($t,$t.tracker);var Ua=Lt($t);return $t.truncating&&$t.flags&1&&((Kt=(ea=$t.tracker)===null||ea===void 0?void 0:ea.reportTruncationError)===null||Kt===void 0||Kt.call(ea)),$t.encounteredError?void 0:Ua}function i(ci,Fr){var jt=Fr.trackSymbol;return Ke(Ke({},Fr),{reportCyclicStructureError:Lt(Fr.reportCyclicStructureError),reportInaccessibleThisError:Lt(Fr.reportInaccessibleThisError),reportInaccessibleUniqueSymbolError:Lt(Fr.reportInaccessibleUniqueSymbolError),reportLikelyUnsafeImportRequiredError:Lt(Fr.reportLikelyUnsafeImportRequiredError),reportNonlocalAugmentation:Lt(Fr.reportNonlocalAugmentation),reportPrivateInBaseOfClassExpression:Lt(Fr.reportPrivateInBaseOfClassExpression),reportNonSerializableProperty:Lt(Fr.reportNonSerializableProperty),trackSymbol:jt&&function(){for(var ea=[],Kt=0;Kt(ci.flags&1?e.noTruncationMaximumTruncationLength:e.defaultMaximumTruncationLength)}function o(ci,Fr){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var jt=Fr.flags&8388608;if(Fr.flags&=-8388609,!ci){if(!(Fr.flags&262144)){Fr.encounteredError=!0;return}return Fr.approximateLength+=3,e.factory.createKeywordTypeNode(130)}if(Fr.flags&536870912||(ci=bu(ci)),ci.flags&1)return ci.aliasSymbol?e.factory.createTypeReferenceNode(Ra(ci.aliasSymbol),z(ci.aliasTypeArguments,Fr)):ci===Ue?e.addSyntheticLeadingComment(e.factory.createKeywordTypeNode(130),3,"unresolved"):(Fr.approximateLength+=3,e.factory.createKeywordTypeNode(ci===De?138:130));if(ci.flags&2)return e.factory.createKeywordTypeNode(155);if(ci.flags&4)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(150);if(ci.flags&8)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(147);if(ci.flags&64)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(158);if(ci.flags&16&&!ci.aliasSymbol)return Fr.approximateLength+=7,e.factory.createKeywordTypeNode(133);if(ci.flags&1024&&!(ci.flags&1048576)){var Lt=Ys(ci.symbol),ea=ca(Lt,Fr,788968);if(go(Lt)===ci)return ea;var Kt=e.symbolName(ci.symbol);return e.isIdentifierText(Kt,0)?fp(ea,e.factory.createTypeReferenceNode(Kt,void 0)):e.isImportTypeNode(ea)?(ea.isTypeOf=!0,e.factory.createIndexedAccessTypeNode(ea,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt)))):e.isTypeReferenceNode(ea)?e.factory.createIndexedAccessTypeNode(e.factory.createTypeQueryNode(ea.typeName),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt))):e.Debug.fail("Unhandled type node kind returned from `symbolToTypeNode`.")}if(ci.flags&1056)return ca(ci.symbol,Fr,788968);if(ci.flags&128)return Fr.approximateLength+=ci.value.length+2,e.factory.createLiteralTypeNode(e.setEmitFlags(e.factory.createStringLiteral(ci.value,!!(Fr.flags&268435456)),16777216));if(ci.flags&256){var $t=ci.value;return Fr.approximateLength+=(""+$t).length,e.factory.createLiteralTypeNode($t<0?e.factory.createPrefixUnaryExpression(40,e.factory.createNumericLiteral(-$t)):e.factory.createNumericLiteral($t))}if(ci.flags&2048)return Fr.approximateLength+=e.pseudoBigIntToString(ci.value).length+1,e.factory.createLiteralTypeNode(e.factory.createBigIntLiteral(ci.value));if(ci.flags&512)return Fr.approximateLength+=ci.intrinsicName.length,e.factory.createLiteralTypeNode(ci.intrinsicName==="true"?e.factory.createTrue():e.factory.createFalse());if(ci.flags&8192){if(!(Fr.flags&1048576)){if(Lp(ci.symbol,Fr.enclosingDeclaration))return Fr.approximateLength+=6,ca(ci.symbol,Fr,111551);Fr.tracker.reportInaccessibleUniqueSymbolError&&Fr.tracker.reportInaccessibleUniqueSymbolError()}return Fr.approximateLength+=13,e.factory.createTypeOperatorNode(154,e.factory.createKeywordTypeNode(151))}if(ci.flags&16384)return Fr.approximateLength+=4,e.factory.createKeywordTypeNode(114);if(ci.flags&32768)return Fr.approximateLength+=9,e.factory.createKeywordTypeNode(153);if(ci.flags&65536)return Fr.approximateLength+=4,e.factory.createLiteralTypeNode(e.factory.createNull());if(ci.flags&131072)return Fr.approximateLength+=5,e.factory.createKeywordTypeNode(143);if(ci.flags&4096)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(151);if(ci.flags&67108864)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(148);if(e.isThisTypeParameter(ci))return Fr.flags&4194304&&(!Fr.encounteredError&&!(Fr.flags&32768)&&(Fr.encounteredError=!0),Fr.tracker.reportInaccessibleThisError&&Fr.tracker.reportInaccessibleThisError()),Fr.approximateLength+=4,e.factory.createThisTypeNode();if(!jt&&ci.aliasSymbol&&(Fr.flags&16384||Gu(ci.aliasSymbol,Fr.enclosingDeclaration))){var Ua=z(ci.aliasTypeArguments,Fr);return Ol(ci.aliasSymbol.escapedName)&&!(ci.aliasSymbol.flags&32)?e.factory.createTypeReferenceNode(e.factory.createIdentifier(""),Ua):ca(ci.aliasSymbol,Fr,788968,Ua)}var Yr=e.getObjectFlags(ci);if(Yr&4)return e.Debug.assert(!!(ci.flags&524288)),ci.node?jd(ci,Tl):Tl(ci);if(ci.flags&262144||Yr&3){if(ci.flags&262144&&e.contains(Fr.inferTypeParameters,ci)){Fr.approximateLength+=e.symbolName(ci.symbol).length+6;var Ni=void 0,Hi=Tc(ci);if(Hi){var _t=sx(ci,!0);_t&&wf(Hi,_t)||(Fr.approximateLength+=9,Ni=Hi&&o(Hi,Fr))}return e.factory.createInferTypeNode(dr(ci,Fr,Ni))}if(Fr.flags&4&&ci.flags&262144&&!Gu(ci.symbol,Fr.enclosingDeclaration)){var gt=ja(ci,Fr);return Fr.approximateLength+=e.idText(gt).length,e.factory.createTypeReferenceNode(e.factory.createIdentifier(e.idText(gt)),void 0)}if(ci.symbol)return ca(ci.symbol,Fr,788968);var Vt=(ci===Rn||ci===Da)&&_e&&_e.symbol?(ci===Da?"sub-":"super-")+e.symbolName(_e.symbol):"?";return e.factory.createTypeReferenceNode(e.factory.createIdentifier(Vt),void 0)}if(ci.flags&1048576&&ci.origin&&(ci=ci.origin),ci.flags&3145728){var Fa=ci.flags&1048576?hd(ci.types):ci.types;if(e.length(Fa)===1)return o(Fa[0],Fr);var on=z(Fa,Fr,!0);if(on&&on.length>0)return ci.flags&1048576?e.factory.createUnionTypeNode(on):e.factory.createIntersectionTypeNode(on);!Fr.encounteredError&&!(Fr.flags&262144)&&(Fr.encounteredError=!0);return}if(Yr&48)return e.Debug.assert(!!(ci.flags&524288)),rl(ci);if(ci.flags&4194304){var zn=ci.type;Fr.approximateLength+=6;var Ga=o(zn,Fr);return e.factory.createTypeOperatorNode(140,Ga)}if(ci.flags&134217728){var Qn=ci.texts,wo=ci.types,Po=e.factory.createTemplateHead(Qn[0]),Uo=e.factory.createNodeArray(e.map(wo,function(za,$r){return e.factory.createTemplateLiteralTypeSpan(o(za,Fr),($r10)return s(Fr);Fr.symbolDepth.set(Ht,Ca+1)}Fr.visitedTypes.add(mt);var An=Fr.approximateLength,gn=$r(za),Vn=Fr.approximateLength-An;return!Fr.reportedDiagnostic&&!Fr.encounteredError&&(Fr.truncating&&(gn.truncating=!0),gn.addedLength=Vn,(Ri=vt==null?void 0:vt.serializedTypes)===null||Ri===void 0||Ri.set(ht,gn)),Fr.visitedTypes.delete(mt),Ht&&Fr.symbolDepth.set(Ht,Ca),gn;function zo(Bo){return!e.nodeIsSynthesized(Bo)&&e.getParseTreeNode(Bo)===Bo?Bo:e.setTextRange(e.factory.cloneNode(e.visitEachChild(Bo,zo,e.nullTransformationContext,us)),Bo)}function us(Bo,Io,Qo,ls,gi){return Bo&&Bo.length===0?e.setTextRange(e.factory.createNodeArray(void 0,Bo.hasTrailingComma),Bo):e.visitNodes(Bo,Io,Qo,ls,gi)}}function lp(za){if(Bc(za)||za.containsError)return Ts(za);var $r=Ru(za);if(!$r.properties.length&&!$r.indexInfos.length){if(!$r.callSignatures.length&&!$r.constructSignatures.length)return Fr.approximateLength+=2,e.setEmitFlags(e.factory.createTypeLiteralNode(void 0),1);if($r.callSignatures.length===1&&!$r.constructSignatures.length){var hi=$r.callSignatures[0],Ri=$e(hi,179,Fr);return Ri}if($r.constructSignatures.length===1&&!$r.callSignatures.length){var hi=$r.constructSignatures[0],Ri=$e(hi,180,Fr);return Ri}}var mt=e.filter($r.constructSignatures,function(Ca){return!!(Ca.flags&4)});if(e.some(mt)){var ft=e.map(mt,im),Ht=$r.callSignatures.length+($r.constructSignatures.length-mt.length)+$r.indexInfos.length+(Fr.flags&2048?e.countWhere($r.properties,function(Ca){return!(Ca.flags&4194304)}):e.length($r.properties));return Ht&&ft.push(Op($r)),o(Do(ft),Fr)}var vt=Fr.flags;Fr.flags|=4194304;var ht=id($r);Fr.flags=vt;var ma=e.factory.createTypeLiteralNode(ht);return Fr.approximateLength+=2,e.setEmitFlags(ma,Fr.flags&1024?0:1),ma}function Tl(za){var $r=xo(za);if(za.target===Pi||za.target===Qi){if(Fr.flags&2){var hi=o($r[0],Fr);return e.factory.createTypeReferenceNode(za.target===Pi?"Array":"ReadonlyArray",[hi])}var Ri=o($r[0],Fr),mt=e.factory.createArrayTypeNode(Ri);return za.target===Pi?mt:e.factory.createTypeOperatorNode(145,mt)}else if(za.target.objectFlags&8){if($r=e.sameMap($r,function(zt,La){return kg(zt,!!(za.target.elementFlags[La]&2))}),$r.length>0){var ft=$_(za),Ht=z($r.slice(0,ft),Fr);if(Ht){if(za.target.labeledElementDeclarations)for(var vt=0;vt0){var ls=(za.target.typeParameters||e.emptyArray).length;Qo=z($r.slice(vt,ls),Fr)}var ht=Fr.flags;Fr.flags|=16;var gi=ca(za.symbol,Fr,788968,Qo);return Fr.flags=ht,An?fp(An,gi):gi}}function fp(za,$r){if(e.isImportTypeNode(za)){var hi=za.typeArguments,Ri=za.qualifier;Ri&&(e.isIdentifier(Ri)?Ri=e.factory.updateIdentifier(Ri,hi):Ri=e.factory.updateQualifiedName(Ri,Ri.left,e.factory.updateIdentifier(Ri.right,hi))),hi=$r.typeArguments;for(var mt=zg($r),ft=0,Ht=mt;ft2)return[o(ci[0],Fr),e.factory.createTypeReferenceNode("... ".concat(ci.length-2," more ..."),void 0),o(ci[ci.length-1],Fr)]}else return[e.factory.createTypeReferenceNode("...",void 0)];for(var Lt=!(Fr.flags&64),ea=Lt?e.createUnderscoreEscapedMultiMap():void 0,Kt=[],$t=0,Ua=0,Yr=ci;Ua0)):ea=[ci],ea;function $t(Ua,Yr,Ni){var Hi=pl(Ua,Fr.enclosingDeclaration,Yr,!!(Fr.flags&128)),_t;if(!Hi||Fp(Hi[0],Fr.enclosingDeclaration,Hi.length===1?Yr:Fl(Yr))){var gt=Np(Hi?Hi[0]:Ua,Fr.enclosingDeclaration,Yr);if(e.length(gt)){_t=gt.map(function(Po){return e.some(Po.declarations,Fc)?Nt(Po,Fr):void 0});var Vt=gt.map(function(Po,Uo){return Uo});Vt.sort(wo);for(var Fa=Vt.map(function(Po){return gt[Po]}),on=0,zn=Fa;on1?Po(ea,ea.length-1,1):void 0,Ua=Lt||Zi(ea,0,Fr),Yr=e.getSourceFileOfNode(e.getOriginalNode(Fr.enclosingDeclaration)),Ni=e.getSourceFileOfModule(ea[0]),Hi=void 0,_t=void 0;if((e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext)&&(Ni==null?void 0:Ni.impliedNodeFormat)===e.ModuleKind.ESNext&&Ni.impliedNodeFormat!==(Yr==null?void 0:Yr.impliedNodeFormat)&&(Hi=Nt(ea[0],Fr,e.ModuleKind.ESNext),_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral("resolution-mode"),e.factory.createStringLiteral("import"))])))),Hi||(Hi=Nt(ea[0],Fr)),!(Fr.flags&67108864)&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&Hi.indexOf("/node_modules/")>=0){var gt=Hi;if(e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Vt=(Yr==null?void 0:Yr.impliedNodeFormat)===e.ModuleKind.ESNext?e.ModuleKind.CommonJS:e.ModuleKind.ESNext;Hi=Nt(ea[0],Fr,Vt),Hi.indexOf("/node_modules/")>=0?Hi=gt:_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral("resolution-mode"),e.factory.createStringLiteral(Vt===e.ModuleKind.ESNext?"import":"require"))])))}_t||(Fr.encounteredError=!0,Fr.tracker.reportLikelyUnsafeImportRequiredError&&Fr.tracker.reportLikelyUnsafeImportRequiredError(gt))}var Fa=e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Hi));if(Fr.tracker.trackExternalModuleSymbolOfImportTypeNode&&Fr.tracker.trackExternalModuleSymbolOfImportTypeNode(ea[0]),Fr.approximateLength+=Hi.length+10,!$t||e.isEntityName($t)){if($t){var on=e.isIdentifier($t)?$t:$t.right;on.typeArguments=void 0}return e.factory.createImportTypeNode(Fa,_t,$t,Ua,Kt)}else{var zn=qt($t),Ga=zn.objectType.typeName;return e.factory.createIndexedAccessTypeNode(e.factory.createImportTypeNode(Fa,_t,Ga,Ua,Kt),zn.indexType)}}var Qn=Po(ea,ea.length-1,0);if(e.isIndexedAccessTypeNode(Qn))return Qn;if(Kt)return e.factory.createTypeQueryNode(Qn);var on=e.isIdentifier(Qn)?Qn:Qn.right,wo=on.typeArguments;return on.typeArguments=void 0,e.factory.createTypeReferenceNode(Qn,wo);function Po(Uo,Rs,Fs){var rc=Rs===Uo.length-1?Lt:Zi(Uo,Rs,Fr),xu=Uo[Rs],Ts=Uo[Rs-1],rl;if(Rs===0)Fr.flags|=16777216,rl=of(xu,Fr),Fr.approximateLength+=(rl?rl.length:0)+1,Fr.flags^=16777216;else if(Ts&&dc(Ts)){var jd=dc(Ts);e.forEachEntry(jd,function(zg,id){if(_l(zg,xu)&&!pg(id)&&id!=="export=")return rl=e.unescapeLeadingUnderscores(id),!0})}if(rl===void 0){var lp=e.firstDefined(xu.declarations,e.getNameOfDeclaration);if(lp&&e.isComputedPropertyName(lp)&&e.isEntityName(lp.expression)){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createIndexedAccessTypeNode(e.factory.createParenthesizedType(e.factory.createTypeQueryNode(Tl)),e.factory.createTypeQueryNode(lp.expression)):Tl}rl=of(xu,Fr)}if(Fr.approximateLength+=rl.length+1,!(Fr.flags&16)&&Ts&&Nf(Ts)&&Nf(Ts).get(xu.escapedName)&&_l(Nf(Ts).get(xu.escapedName),xu)){var Tl=Po(Uo,Rs-1,Fs);return e.isIndexedAccessTypeNode(Tl)?e.factory.createIndexedAccessTypeNode(Tl,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl))):e.factory.createIndexedAccessTypeNode(e.factory.createTypeReferenceNode(Tl,rc),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl)))}var fp=e.setEmitFlags(e.factory.createIdentifier(rl,rc),16777216);if(fp.symbol=xu,Rs>Fs){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createQualifiedName(Tl,fp):e.Debug.fail("Impossible construct - an export of an indexed access cannot be reachable")}return fp}}function Sn(ci,Fr,jt){var Lt=es(Fr.enclosingDeclaration,ci,788968,void 0,ci,!1);return Lt?!(Lt.flags&262144&&Lt===jt.symbol):!1}function ja(ci,Fr){var jt,Lt;if(Fr.flags&4&&Fr.typeParameterNames){var ea=Fr.typeParameterNames.get(fu(ci));if(ea)return ea}var Kt=Fn(ci.symbol,Fr,788968,!0);if(!(Kt.kind&79))return e.factory.createIdentifier("(Missing type parameter)");if(Fr.flags&4){for(var $t=Kt.escapedText,Ua=((jt=Fr.typeParameterNamesByTextNextNameCount)===null||jt===void 0?void 0:jt.get($t))||0,Yr=$t;((Lt=Fr.typeParameterNamesByText)===null||Lt===void 0?void 0:Lt.has(Yr))||Sn(Yr,Fr,ci);)Ua++,Yr="".concat($t,"_").concat(Ua);Yr!==$t&&(Kt=e.factory.createIdentifier(Yr,Kt.typeArguments)),(Fr.typeParameterNamesByTextNextNameCount||(Fr.typeParameterNamesByTextNextNameCount=new e.Map)).set($t,Ua),(Fr.typeParameterNames||(Fr.typeParameterNames=new e.Map)).set(fu(ci),Kt),(Fr.typeParameterNamesByText||(Fr.typeParameterNamesByText=new e.Set)).add($t)}return Kt}function Fn(ci,Fr,jt,Lt){var ea=Ti(ci,Fr,jt);return Lt&&ea.length!==1&&!Fr.encounteredError&&!(Fr.flags&65536)&&(Fr.encounteredError=!0),Kt(ea,ea.length-1);function Kt($t,Ua){var Yr=Zi($t,Ua,Fr),Ni=$t[Ua];Ua===0&&(Fr.flags|=16777216);var Hi=of(Ni,Fr);Ua===0&&(Fr.flags^=16777216);var _t=e.setEmitFlags(e.factory.createIdentifier(Hi,Yr),16777216);return _t.symbol=Ni,Ua>0?e.factory.createQualifiedName(Kt($t,Ua-1),_t):_t}}function wn(ci,Fr,jt){var Lt=Ti(ci,Fr,jt);return ea(Lt,Lt.length-1);function ea(Kt,$t){var Ua=Zi(Kt,$t,Fr),Yr=Kt[$t];$t===0&&(Fr.flags|=16777216);var Ni=of(Yr,Fr);$t===0&&(Fr.flags^=16777216);var Hi=Ni.charCodeAt(0);if(e.isSingleOrDoubleQuote(Hi)&&e.some(Yr.declarations,Fc))return e.factory.createStringLiteral(Nt(Yr,Fr));var _t=Hi===35?Ni.length>1&&e.isIdentifierStart(Ni.charCodeAt(1),Ae):e.isIdentifierStart(Hi,Ae);if($t===0||_t){var gt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216);return gt.symbol=Yr,$t>0?e.factory.createPropertyAccessExpression(ea(Kt,$t-1),gt):gt}else{Hi===91&&(Ni=Ni.substring(1,Ni.length-1),Hi=Ni.charCodeAt(0));var Vt=void 0;return e.isSingleOrDoubleQuote(Hi)&&!(Yr.flags&8)?Vt=e.factory.createStringLiteral(e.stripQuotes(Ni).replace(/\\./g,function(Fa){return Fa.substring(1)}),Hi===39):""+ +Ni===Ni&&(Vt=e.factory.createNumericLiteral(+Ni)),Vt||(Vt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216),Vt.symbol=Yr),e.factory.createElementAccessExpression(ea(Kt,$t-1),Vt)}}}function Tn(ci){var Fr=e.getNameOfDeclaration(ci);return!!Fr&&e.isStringLiteral(Fr)}function Eo(ci){var Fr=e.getNameOfDeclaration(ci);return!!(Fr&&e.isStringLiteral(Fr)&&(Fr.singleQuote||!e.nodeIsSynthesized(Fr)&&e.startsWith(e.getTextOfNode(Fr,!1),"'")))}function lt(ci,Fr){var jt=!!e.length(ci.declarations)&&e.every(ci.declarations,Eo),Lt=it(ci,Fr,jt);if(Lt)return Lt;var ea=e.unescapeLeadingUnderscores(ci.escapedName),Kt=!!e.length(ci.declarations)&&e.every(ci.declarations,Tn);return e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye),jt,Kt)}function it(ci,Fr,jt){var Lt=Aa(ci).nameType;if(Lt){if(Lt.flags&384){var ea=""+Lt.value;return!e.isIdentifierText(ea,e.getEmitScriptTarget(ye))&&!e.isNumericLiteralName(ea)?e.factory.createStringLiteral(ea,!!jt):e.isNumericLiteralName(ea)&&e.startsWith(ea,"-")?e.factory.createComputedPropertyName(e.factory.createNumericLiteral(+ea)):e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye))}if(Lt.flags&8192)return e.factory.createComputedPropertyName(wn(Lt.symbol,Fr,111551))}}function Yt(ci){var Fr=Ke({},ci);return Fr.typeParameterNames&&(Fr.typeParameterNames=new e.Map(Fr.typeParameterNames)),Fr.typeParameterNamesByText&&(Fr.typeParameterNamesByText=new e.Set(Fr.typeParameterNamesByText)),Fr.typeParameterSymbolList&&(Fr.typeParameterSymbolList=new e.Set(Fr.typeParameterSymbolList)),Fr.tracker=i(Fr,Fr.tracker),Fr}function Ia(ci,Fr){return ci.declarations&&e.find(ci.declarations,function(jt){return!!e.getEffectiveTypeAnnotationNode(jt)&&(!Fr||!!e.findAncestor(jt,function(Lt){return Lt===Fr}))})}function Qt(ci,Fr){return!(e.getObjectFlags(Fr)&4)||!e.isTypeReferenceNode(ci)||e.length(ci.typeArguments)>=Ul(Fr.target.typeParameters)}function Ka(ci,Fr,jt,Lt,ea,Kt){if(!nn(Fr)&&Lt){var $t=Ia(jt,Lt);if($t&&!e.isFunctionLikeDeclaration($t)&&!e.isGetAccessorDeclaration($t)){var Ua=e.getEffectiveTypeAnnotationNode($t);if(cn(Ua,$t,Fr)&&Qt(Ua,Fr)){var Yr=Mn(ci,Ua,ea,Kt);if(Yr)return Yr}}}var Ni=ci.flags;Fr.flags&8192&&Fr.symbol===jt&&(!ci.enclosingDeclaration||e.some(jt.declarations,function(_t){return e.getSourceFileOfNode(_t)===e.getSourceFileOfNode(ci.enclosingDeclaration)}))&&(ci.flags|=1048576);var Hi=o(Fr,ci);return ci.flags=Ni,Hi}function cn(ci,Fr,jt){var Lt=Va(ci);return Lt===jt?!0:e.isParameter(Fr)&&Fr.questionToken?Ks(jt,524288)===Lt:!1}function Un(ci,Fr,jt,Lt,ea){if(!nn(Fr)&&ci.enclosingDeclaration){var Kt=jt.declaration&&e.getEffectiveReturnTypeNode(jt.declaration);if(!!e.findAncestor(Kt,function(Ni){return Ni===ci.enclosingDeclaration})&&Kt){var $t=Va(Kt),Ua=$t.flags&262144&&$t.isThisType?un($t,jt.mapper):$t;if(Ua===Fr&&Qt(Kt,Fr)){var Yr=Mn(ci,Kt,Lt,ea);if(Yr)return Yr}}}return o(Fr,ci)}function oa(ci,Fr,jt){var Lt,ea,Kt=!1,$t=e.getFirstIdentifier(ci);if(e.isInJSFile(ci)&&(e.isExportsIdentifier($t)||e.isModuleExportsAccessExpression($t.parent)||e.isQualifiedName($t.parent)&&e.isModuleIdentifier($t.parent.left)&&e.isExportsIdentifier($t.parent.right)))return Kt=!0,{introducesError:Kt,node:ci};var Ua=Ds($t,67108863,!0,!0);if(Ua&&(g_(Ua,Fr.enclosingDeclaration,67108863,!1).accessibility!==0?Kt=!0:((ea=(Lt=Fr.tracker)===null||Lt===void 0?void 0:Lt.trackSymbol)===null||ea===void 0||ea.call(Lt,Ua,Fr.enclosingDeclaration,67108863),jt==null||jt(Ua)),e.isIdentifier(ci))){var Yr=go(Ua),Ni=Ua.flags&262144&&!Gu(Yr.symbol,Fr.enclosingDeclaration)?ja(Yr,Fr):e.factory.cloneNode(ci);return Ni.symbol=Ua,{introducesError:Kt,node:e.setEmitFlags(e.setOriginalNode(Ni,ci),16777216)}}return{introducesError:Kt,node:ci}}function Mn(ci,Fr,jt,Lt){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var ea=!1,Kt=e.getSourceFileOfNode(Fr),$t=e.visitNode(Fr,Ua);if(ea)return;return $t===Fr?e.setTextRange(e.factory.cloneNode(Fr),Fr):$t;function Ua(Yr){if(e.isJSDocAllType(Yr)||Yr.kind===319)return e.factory.createKeywordTypeNode(130);if(e.isJSDocUnknownType(Yr))return e.factory.createKeywordTypeNode(155);if(e.isJSDocNullableType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createLiteralTypeNode(e.factory.createNull())]);if(e.isJSDocOptionalType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createKeywordTypeNode(153)]);if(e.isJSDocNonNullableType(Yr))return e.visitNode(Yr.type,Ua);if(e.isJSDocVariadicType(Yr))return e.factory.createArrayTypeNode(e.visitNode(Yr.type,Ua));if(e.isJSDocTypeLiteral(Yr))return e.factory.createTypeLiteralNode(e.map(Yr.jsDocPropertyTags,function(Ga){var Qn=e.isIdentifier(Ga.name)?Ga.name:Ga.name.right,wo=da(Va(Yr),Qn.escapedText),Po=wo&&Ga.typeExpression&&Va(Ga.typeExpression.type)!==wo?o(wo,ci):void 0;return e.factory.createPropertySignature(void 0,Qn,Ga.isBracketed||Ga.typeExpression&&e.isJSDocOptionalType(Ga.typeExpression.type)?e.factory.createToken(57):void 0,Po||Ga.typeExpression&&e.visitNode(Ga.typeExpression.type,Ua)||e.factory.createKeywordTypeNode(130))}));if(e.isTypeReferenceNode(Yr)&&e.isIdentifier(Yr.typeName)&&Yr.typeName.escapedText==="")return e.setOriginalNode(e.factory.createKeywordTypeNode(130),Yr);if((e.isExpressionWithTypeArguments(Yr)||e.isTypeReferenceNode(Yr))&&e.isJSDocIndexSignature(Yr))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(Yr.typeArguments[0],Ua))],e.visitNode(Yr.typeArguments[1],Ua))]);if(e.isJSDocFunctionType(Yr))if(e.isJSDocConstructSignature(Yr)){var Ni;return e.factory.createConstructorTypeNode(Yr.modifiers,e.visitNodes(Yr.typeParameters,Ua),e.mapDefined(Yr.parameters,function(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText==="new"?(Ni=Ga.type,void 0):e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Ni||Yr.type,Ua)||e.factory.createKeywordTypeNode(130))}else return e.factory.createFunctionTypeNode(e.visitNodes(Yr.typeParameters,Ua),e.map(Yr.parameters,function(Ga,Qn){return e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Yr.type,Ua)||e.factory.createKeywordTypeNode(130));if(e.isTypeReferenceNode(Yr)&&e.isInJSDoc(Yr)&&(!Qt(Yr,Va(Yr))||vx(Yr)||xe===nm(Yr,788968,!0)))return e.setOriginalNode(o(Va(Yr),ci),Yr);if(e.isLiteralImportTypeNode(Yr)){var Hi=va(Yr).resolvedSymbol;return e.isInJSDoc(Yr)&&Hi&&(!Yr.isTypeOf&&!(Hi.flags&788968)||!(e.length(Yr.typeArguments)>=Ul(Af(Hi))))?e.setOriginalNode(o(Va(Yr),ci),Yr):e.factory.updateImportTypeNode(Yr,e.factory.updateLiteralTypeNode(Yr.argument,zn(Yr,Yr.argument.literal)),Yr.qualifier,e.visitNodes(Yr.typeArguments,Ua,e.isTypeNode),Yr.isTypeOf)}if(e.isEntityName(Yr)||e.isEntityNameExpression(Yr)){var _t=oa(Yr,ci,jt),gt=_t.introducesError,Vt=_t.node;if(ea=ea||gt,Vt!==Yr)return Vt}return Kt&&e.isTupleTypeNode(Yr)&&e.getLineAndCharacterOfPosition(Kt,Yr.pos).line===e.getLineAndCharacterOfPosition(Kt,Yr.end).line&&e.setEmitFlags(Yr,1),e.visitEachChild(Yr,Ua,e.nullTransformationContext);function Fa(Ga){return Ga.dotDotDotToken||(Ga.type&&e.isJSDocVariadicType(Ga.type)?e.factory.createToken(25):void 0)}function on(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText==="this"?"this":Fa(Ga)?"args":"arg".concat(Qn)}function zn(Ga,Qn){if(Lt){if(ci.tracker&&ci.tracker.moduleResolverHost){var wo=US(Ga);if(wo){var Po=e.createGetCanonicalFileName(!!l.useCaseSensitiveFileNames),Uo={getCanonicalFileName:Po,getCurrentDirectory:function(){return ci.tracker.moduleResolverHost.getCurrentDirectory()},getCommonSourceDirectory:function(){return ci.tracker.moduleResolverHost.getCommonSourceDirectory()}},Rs=e.getResolvedExternalModuleName(Uo,wo);return e.factory.createStringLiteral(Rs)}}}else if(ci.tracker&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode){var Fs=Pl(Qn,Qn,void 0);Fs&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode(Fs)}return Qn}}}function Ln(ci,Fr,jt){var Lt=Ca(e.factory.createPropertyDeclaration,169,!0),ea=Ca(function(gi,zt,La,fa,ya){return e.factory.createPropertySignature(zt,La,fa,ya)},168,!1),Kt=Fr.enclosingDeclaration,$t=[],Ua=new e.Set,Yr=[],Ni=Fr;Fr=Ke(Ke({},Ni),{usedSymbolNames:new e.Set(Ni.usedSymbolNames),remappedSymbolNames:new e.Map,tracker:Ke(Ke({},Ni.tracker),{trackSymbol:function(gi,zt,La){var fa=g_(gi,zt,La,!1);if(fa.accessibility===0){var ya=Ci(gi,Fr,La);gi.flags&4||rc(ya[0])}else if(Ni.tracker&&Ni.tracker.trackSymbol)return Ni.tracker.trackSymbol(gi,zt,La);return!1}})}),Fr.tracker=i(Fr,Fr.tracker),e.forEachEntry(ci,function(gi,zt){var La=e.unescapeLeadingUnderscores(zt);ls(gi,La)});var Hi=!jt,_t=ci.get("export=");return _t&&ci.size>1&&_t.flags&2097152&&(ci=e.createSymbolTable(),ci.set("export=",_t)),Uo(ci),Ga($t);function gt(gi){return!!gi&&gi.kind===79}function Vt(gi){return e.isVariableStatement(gi)?e.filter(e.map(gi.declarationList.declarations,e.getNameOfDeclaration),gt):e.filter([e.getNameOfDeclaration(gi)],gt)}function Fa(gi){var zt=e.find(gi,e.isExportAssignment),La=e.findIndex(gi,e.isModuleDeclaration),fa=La!==-1?gi[La]:void 0;if(fa&&zt&&zt.isExportEquals&&e.isIdentifier(zt.expression)&&e.isIdentifier(fa.name)&&e.idText(fa.name)===e.idText(zt.expression)&&fa.body&&e.isModuleBlock(fa.body)){var ya=e.filter(gi,function(sn){return!!(e.getEffectiveModifierFlags(sn)&1)}),Nn=fa.name,fn=fa.body;if(e.length(ya)&&(fa=e.factory.updateModuleDeclaration(fa,fa.decorators,fa.modifiers,fa.name,fn=e.factory.updateModuleBlock(fn,e.factory.createNodeArray(Ve(Ve([],fa.body.statements,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.map(e.flatMap(ya,function(sn){return Vt(sn)}),function(sn){return e.factory.createExportSpecifier(!1,void 0,sn)})),void 0)],!1)))),gi=Ve(Ve(Ve([],gi.slice(0,La),!0),[fa],!1),gi.slice(La+1),!0)),!e.find(gi,function(sn){return sn!==fa&&e.nodeHasName(sn,Nn)})){$t=[];var hn=!e.some(fn.statements,function(sn){return e.hasSyntacticModifier(sn,1)||e.isExportAssignment(sn)||e.isExportDeclaration(sn)});e.forEach(fn.statements,function(sn){Ts(sn,hn?1:0)}),gi=Ve(Ve([],e.filter(gi,function(sn){return sn!==fa&&sn!==zt}),!0),$t,!0)}}return gi}function on(gi){var zt=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(zt)>1){var La=e.filter(gi,function(ln){return!e.isExportDeclaration(ln)||!!ln.moduleSpecifier||!ln.exportClause});gi=Ve(Ve([],La,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(zt,function(ln){return e.cast(ln.exportClause,e.isNamedExports).elements})),void 0)],!1)}var fa=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(fa)>1){var ya=e.group(fa,function(ln){return e.isStringLiteral(ln.moduleSpecifier)?">"+ln.moduleSpecifier.text:">"});if(ya.length!==fa.length)for(var Nn=function(ln){ln.length>1&&(gi=Ve(Ve([],e.filter(gi,function(lo){return ln.indexOf(lo)===-1}),!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(ln,function(lo){return e.cast(lo.exportClause,e.isNamedExports).elements})),ln[0].moduleSpecifier)],!1))},fn=0,hn=ya;fn=0){var La=gi[zt],fa=e.mapDefined(La.exportClause.elements,function(ya){if(!ya.propertyName){var Nn=e.indicesOf(gi),fn=e.filter(Nn,function(lo){return e.nodeHasName(gi[lo],ya.name)});if(e.length(fn)&&e.every(fn,function(lo){return Qn(gi[lo])})){for(var hn=0,sn=fn;hn0&&e.isSingleOrDoubleQuote(fa.charCodeAt(0))?e.stripQuotes(fa):fa}return zt==="default"?zt="_default":zt==="export="&&(zt="_exports"),zt=e.isIdentifierText(zt,Ae)&&!e.isStringANonContextualKeyword(zt)?zt:"_"+zt.replace(/[^a-zA-Z0-9]/g,"_"),zt}function ls(gi,zt){var La=y(gi);return Fr.remappedSymbolNames.has(La)?Fr.remappedSymbolNames.get(La):(zt=Qo(gi,zt),Fr.remappedSymbolNames.set(La,zt),zt)}}}function Ll(r,i,t,o){return t===void 0&&(t=16384),o?s(o).getText():e.usingSingleLineStringWriter(s);function s(u){var h=e.factory.createTypePredicateNode(r.kind===2||r.kind===3?e.factory.createToken(128):void 0,r.kind===1||r.kind===3?e.factory.createIdentifier(r.parameterName):e.factory.createThisTypeNode(),r.type&&Ur.typeToTypeNode(r.type,i,Rp(t)|70221824|512)),z=e.createPrinter({removeComments:!0}),me=i&&e.getSourceFileOfNode(i);return z.writeNode(4,h,me,u),u}}function hd(r){for(var i=[],t=0,o=0;o=0){for(var o=eu.length,s=t;s=0;t--){if(sr(eu[t],pu[t]))return-1;if(eu[t]===r&&pu[t]===i)return t}return-1}function sr(r,i){switch(i){case 0:return!!Aa(r).type;case 5:return!!va(r).resolvedEnumType;case 2:return!!Aa(r).declaredType;case 1:return!!r.resolvedBaseConstructorType;case 3:return!!r.resolvedReturnType;case 4:return!!r.immediateBaseConstraint;case 6:return!!r.resolvedTypeArguments;case 7:return!!r.baseTypesResolved;case 8:return!!Aa(r).writeType}return e.Debug.assertNever(i)}function fi(){return eu.pop(),pu.pop(),Ws.pop()}function zi(r){return e.findAncestor(e.getRootDeclaration(r),function(i){switch(i.kind){case 254:case 255:case 270:case 269:case 268:case 267:return!1;default:return!0}}).parent}function Sa(r){var i=go(Ys(r));return i.typeParameters?Yf(i,e.map(i.typeParameters,function(t){return Oe})):i}function da(r,i){var t=bi(r,i);return t?Jt(t):void 0}function Ha(r,i){var t;return da(r,i)||((t=Xo(r,i))===null||t===void 0?void 0:t.type)||gr}function ta(r){return r&&(r.flags&1)!==0}function nn(r){return r===Pe||!!(r.flags&1&&r.aliasSymbol)}function Wo(r,i){if(i!==0)return G_(r,!1,i);var t=Et(r);return t&&Aa(t).type||G_(r,!1,i)}function Lo(r,i,t){if(r=ec(r,function(li){return!(li.flags&98304)}),r.flags&131072)return Ba;if(r.flags&1048576)return Ss(r,function(li){return Lo(li,i,t)});for(var o=Pa(e.map(i,Z_)),s=[],u=[],h=0,z=uo(r);h=2?B3(Oe):mo;var h=e.map(o,function($e){return e.isOmittedExpression($e)?Oe:vs($e,i,t)}),z=e.findLastIndex(o,function($e){return!($e===u||e.isOmittedExpression($e)||pm($e))},o.length-1)+1,me=e.map(o,function($e,tr){return $e===u?4:tr>=z?2:1}),Me=Wl(h,me);return i&&(Me=ux(Me),Me.pattern=r,Me.objectFlags|=131072),Me}function Qu(r,i,t){return i===void 0&&(i=!1),t===void 0&&(t=!1),r.kind===201?Ac(r,i,t):Is(r,i,t)}function sc(r,i){return Mc(G_(r,!0,0),r,i)}function bc(r){var i=Et(r),t=x3(!1);return t&&i&&i===t}function Mc(r,i,t){return r?(r.flags&4096&&bc(i.parent)&&(r=CD(i)),t&&Kh(i,r),r.flags&8192&&(e.isBindingElement(i)||!i.type)&&r.symbol!==Et(i)&&(r=Ki),$c(r)):(r=e.isParameter(i)&&i.dotDotDotToken?mo:Oe,t&&(Yu(i)||Xp(i,r)),r)}function Yu(r){var i=e.getRootDeclaration(r),t=i.kind===164?i.parent:i;return I0(t)}function Rl(r){var i=e.getEffectiveTypeAnnotationNode(r);if(i)return Va(i)}function Lc(r){var i=Aa(r);if(!i.type){var t=_(r);i.type||(i.type=t)}return i.type}function _(r){if(r.flags&4194304)return Sa(r);if(r===qr)return Oe;if(r.flags&134217728&&r.valueDeclaration){var i=Et(e.getSourceFileOfNode(r.valueDeclaration)),t=oo(i.flags,"exports");t.declarations=i.declarations?i.declarations.slice():[],t.parent=r,t.target=i,i.valueDeclaration&&(t.valueDeclaration=i.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),i.exports&&(t.exports=new e.Map(i.exports));var o=e.createSymbolTable();return o.set("exports",t),rs(r,o,e.emptyArray,e.emptyArray,e.emptyArray)}e.Debug.assertIsDefined(r.valueDeclaration);var s=r.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(s)){var u=e.getEffectiveTypeAnnotationNode(s);if(u===void 0)return be?gr:Oe;var h=Bd(u);return ta(h)||h===gr?h:Pe}if(e.isSourceFile(s)&&e.isJsonSourceFile(s))return s.statements.length?$c(Hp(yn(s.statements[0].expression))):Ba;if(e.isAccessor(s))return rt(r);if(!yu(r,0))return r.flags&512&&!(r.flags&67108864)?vo(r):lg(r);var z;if(s.kind===271)z=Mc(Rl(s)||Os(s.expression),s);else if(e.isBinaryExpression(s)||e.isInJSFile(s)&&(e.isCallExpression(s)||(e.isPropertyAccessExpression(s)||e.isBindableStaticElementAccessExpression(s))&&e.isBinaryExpression(s.parent)))z=Ta(r);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(r.flags&9136)return vo(r);z=e.isBinaryExpression(s.parent)?Ta(r):Rl(s)||Oe}else if(e.isPropertyAssignment(s))z=Rl(s)||Kk(s);else if(e.isJsxAttribute(s))z=Rl(s)||OC(s);else if(e.isShorthandPropertyAssignment(s))z=Rl(s)||Dm(s.name,0);else if(e.isObjectLiteralMethod(s))z=Rl(s)||Gk(s,0);else if(e.isParameter(s)||e.isPropertyDeclaration(s)||e.isPropertySignature(s)||e.isVariableDeclaration(s)||e.isBindingElement(s)||e.isJSDocPropertyLikeTag(s))z=sc(s,!0);else if(e.isEnumDeclaration(s))z=vo(r);else if(e.isEnumMember(s))z=H_(r);else return e.Debug.fail("Unhandled declaration kind! "+e.Debug.formatSyntaxKind(s.kind)+" for "+e.Debug.formatSymbol(r));return fi()?z:r.flags&512&&!(r.flags&67108864)?vo(r):lg(r)}function W(r){if(r)if(r.kind===172){var i=e.getEffectiveReturnTypeNode(r);return i}else{var t=e.getEffectiveSetAccessorTypeAnnotationNode(r);return t}}function Te(r){var i=W(r);return i&&Va(i)}function cr(r){var i=qS(r);return i&&i.symbol}function ni(r){return T_(yl(r))}function rt(r){var i=Aa(r);if(!i.type){if(!yu(r,0))return Pe;var t=e.getDeclarationOfKind(r,172),o=e.getDeclarationOfKind(r,173),s=t&&e.isInJSFile(t)&&K_(t)||Te(t)||Te(o)||t&&t.body&&C0(t);s||(o&&!I0(o)?Ic(n,o,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,tn(r)):t&&!I0(t)&&Ic(n,t,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,tn(r)),s=Oe),fi()||(W(t)?Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):W(o)?Xr(o,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):t&&n&&Xr(t,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,tn(r)),s=Oe),i.type=s}return i.type}function yt(r){var i=Aa(r);if(!i.writeType){if(!yu(r,8))return Pe;var t=e.getDeclarationOfKind(r,173),o=Te(t);fi()||(W(t)&&Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),o=Oe),i.writeType=o||rt(r)}return i.writeType}function Xa(r){var i=Bl(aa(r));return i.flags&8650752?i:i.flags&2097152?e.find(i.types,function(t){return!!(t.flags&8650752)}):void 0}function vo(r){var i=Aa(r),t=i;if(!i.type){var o=r.valueDeclaration&&T0(r.valueDeclaration,!1);if(o){var s=iS(r,o);s&&(r=i=s)}t.type=i.type=Vs(r)}return i.type}function Vs(r){var i=r.valueDeclaration;if(r.flags&1536&&e.isShorthandAmbientModuleSymbol(r))return Oe;if(i&&(i.kind===221||e.isAccessExpression(i)&&i.parent.kind===221))return Ta(r);if(r.flags&512&&i&&e.isSourceFile(i)&&i.commonJsModuleIndicator){var t=Us(r);if(t!==r){if(!yu(r,0))return Pe;var o=so(r.exports.get("export=")),s=Ta(o,o===t?void 0:t);return fi()?s:lg(r)}}var u=tu(16,r);if(r.flags&32){var h=Xa(r);return h?Do([u,h]):u}else return Ye&&r.flags&16777216?i_(u):u}function H_(r){var i=Aa(r);return i.type||(i.type=hu(r))}function y_(r){var i=Aa(r);if(!i.type){var t=Ps(r),o=r.declarations&&Ec(ru(r),!0),s=e.firstDefined(o==null?void 0:o.declarations,function(u){return e.isExportAssignment(u)?Rl(u):void 0});i.type=(o==null?void 0:o.declarations)&&z0(o.declarations)&&r.declarations.length?di(o):z0(r.declarations)?nr:s||(t.flags&111551?Jt(t):Pe)}return i.type}function Dd(r){var i=Aa(r);return i.type||(i.type=un(Jt(i.target),i.mapper))}function jp(r){var i=Aa(r);return i.writeType||(i.writeType=un(Vg(i.target),i.mapper))}function lg(r){var i=r.valueDeclaration;return e.getEffectiveTypeAnnotationNode(i)?(Xr(r.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),Pe):(n&&(i.kind!==164||i.initializer)&&Xr(r.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,tn(r)),Oe)}function Om(r){var i=Aa(r);return i.type||(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.type=i.deferralParent.flags&1048576?Pa(i.deferralConstituents):Do(i.deferralConstituents)),i.type}function Fm(r){var i=Aa(r);return!i.writeType&&i.deferralWriteConstituents&&(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.writeType=i.deferralParent.flags&1048576?Pa(i.deferralWriteConstituents):Do(i.deferralWriteConstituents)),i.writeType}function Vg(r){var i=e.getCheckFlags(r);return r.flags&4?i&2?i&65536?Fm(r)||Om(r):r.writeType||r.type:Jt(r):r.flags&98304?i&1?jp(r):yt(r):Jt(r)}function Jt(r){var i=e.getCheckFlags(r);return i&65536?Om(r):i&1?Dd(r):i&262144?J1(r):i&8192?qw(r):r.flags&7?Lc(r):r.flags&9136?vo(r):r.flags&8?H_(r):r.flags&98304?rt(r):r.flags&2097152?y_(r):Pe}function ml(r){return kg(Jt(r),!!(r.flags&16777216))}function Xf(r,i){return r!==void 0&&i!==void 0&&(e.getObjectFlags(r)&4)!==0&&r.target===i}function bd(r){return e.getObjectFlags(r)&4?r.target:r}function lf(r,i){return t(r);function t(o){if(e.getObjectFlags(o)&7){var s=bd(o);return s===i||e.some(Qc(s),t)}else if(o.flags&2097152)return e.some(o.types,t);return!1}}function Kg(r,i){for(var t=0,o=i;t0)return!0;if(r.flags&8650752){var i=uc(r);return!!i&&Wd(i)}return!1}function fg(r){var i=e.getClassLikeDeclarationOfSymbol(r.symbol);return i&&e.getEffectiveBaseTypeNode(i)}function Mm(r,i,t){var o=e.length(i),s=e.isInJSFile(t);return e.filter(ot(r,1),function(u){return(s||o>=Ul(u.typeParameters))&&o<=e.length(u.typeParameters)})}function Xg(r,i,t){var o=Mm(r,i,t),s=e.map(i,Va);return e.sameMap(o,function(u){return e.some(u.typeParameters)?Xm(u,s,e.isInJSFile(t)):u})}function Bl(r){if(!r.resolvedBaseConstructorType){var i=e.getClassLikeDeclarationOfSymbol(r.symbol),t=i&&e.getEffectiveBaseTypeNode(i),o=fg(r);if(!o)return r.resolvedBaseConstructorType=Tr;if(!yu(r,1))return Pe;var s=yn(o.expression);if(t&&o!==t&&(e.Debug.assert(!t.typeArguments),yn(t.expression)),s.flags&2621440&&Ru(s),!fi())return Xr(r.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,tn(r.symbol)),r.resolvedBaseConstructorType=Pe;if(!(s.flags&1)&&s!==ct&&!qd(s)){var u=Xr(o.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,Ot(s));if(s.flags&262144){var h=tm(s),z=gr;if(h){var me=ot(h,1);me[0]&&(z=yo(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,tn(s.symbol),Ot(z)))}return r.resolvedBaseConstructorType=Pe}r.resolvedBaseConstructorType=s}return r.resolvedBaseConstructorType}function Qg(r){var i=e.emptyArray;if(r.symbol.declarations)for(var t=0,o=r.symbol.declarations;t=Dr&&me<=Qr){var li=Qr?mh(dr,zp(z,dr.typeParameters,Dr,h)):xd(dr);li.typeParameters=r.localTypeParameters,li.resolvedReturnType=r,li.flags=s?li.flags|4:li.flags&-5,Me.push(li)}}return Me}function gg(r,i,t,o,s){for(var u=0,h=r;u0)return;for(var o=1;o1&&(t=t===void 0?o:-1);for(var s=0,u=r[o];s1){var Me=h.thisParameter,$e=e.forEach(z,function(Zi){return Zi.thisParameter});if($e){var tr=Do(e.mapDefined(z,function(Zi){return Zi.thisParameter&&Jt(Zi.thisParameter)}));Me=eg($e,tr)}me=Uv(h,z),me.thisParameter=Me}(i||(i=[])).push(me)}}}}if(!e.length(i)&&t!==-1){for(var dr=r[t!==void 0?t:0],Dr=dr.slice(),Qr=function(Zi){if(Zi!==dr){var qt=Zi[0];if(e.Debug.assert(!!qt,"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass"),Dr=!!qt.typeParameters&&e.some(Dr,function(Nt){return!!Nt.typeParameters&&!ah(qt.typeParameters,Nt.typeParameters)})?void 0:e.map(Dr,function(Nt){return M1(Nt,qt)}),!Dr)return"break"}},li=0,Ti=r;li=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||"arg".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,"args");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function M1(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=nh(r,i,o),h=F1(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=1048576,me.compositeSignatures=e.concatenate(r.compositeKind!==2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind!==2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function oh(r){var i=Hn(r[0]);if(i){for(var t=[],o=function(z){var me=z.keyType;e.every(r,function(Me){return!!ss(Me,me)})&&t.push(zl(me,Pa(e.map(r,function(Me){return cs(Me,me)})),e.some(r,function(Me){return ss(Me,me).isReadonly})))},s=0,u=i;s0}),t=e.map(r,Wd);if(i>0&&i===e.countWhere(t,function(s){return s})){var o=t.indexOf(!0);t[o]=!1}return t}function sh(r,i,t,o){for(var s=[],u=0;u0&&(tr=e.map(tr,function(dr){var Dr=xd(dr);return Dr.resolvedReturnType=sh(yo(dr),s,u,Me),Dr})),t=ch(t,tr)}i=ch(i,ot($e,0)),o=e.reduceLeft(Hn($e),function(dr,Dr){return uh(dr,Dr,!1)},o)},me=0;me2?(Qt.checkFlags|=65536,Qt.deferralParent=r,Qt.deferralConstituents=wn,Qt.deferralWriteConstituents=Tn):(Qt.type=me?Pa(wn):Do(wn),Tn&&(Qt.writeType=me?Pa(Tn):Do(Tn))),Qt}}function $v(r,i,t){var o,s,u=((o=r.propertyCacheWithoutObjectFunctionPropertyAugment)===null||o===void 0?void 0:o.get(i))||!t?(s=r.propertyCache)===null||s===void 0?void 0:s.get(i):void 0;if(!u&&(u=Yv(r,i,t),u)){var h=t?r.propertyCacheWithoutObjectFunctionPropertyAugment||(r.propertyCacheWithoutObjectFunctionPropertyAugment=e.createSymbolTable()):r.propertyCache||(r.propertyCache=e.createSymbolTable());h.set(i,u)}return u}function Zv(r,i,t){var o=$v(r,i,t);return o&&!(e.getCheckFlags(o)&16)?o:void 0}function bu(r){return r.flags&1048576&&r.objectFlags&16777216?r.resolvedReducedType||(r.resolvedReducedType=$1(r)):r.flags&2097152?(r.objectFlags&16777216||(r.objectFlags|=16777216|(e.some(em(r),c)?33554432:0)),r.objectFlags&33554432?ui:r):r}function $1(r){var i=e.sameMap(r.types,bu);if(i===r.types)return r;var t=Pa(i);return t.flags&1048576&&(t.resolvedReducedType=t),t}function c(r){return te(r)||xr(r)}function te(r){return!(r.flags&16777216)&&(e.getCheckFlags(r)&131264)===192&&!!(Jt(r).flags&131072)}function xr(r){return!r.valueDeclaration&&!!(e.getCheckFlags(r)&1024)}function ei(r,i){if(i.flags&2097152&&e.getObjectFlags(i)&33554432){var t=e.find(em(i),te);if(t)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents,Ot(i,void 0,536870912),tn(t));var o=e.find(em(i),xr);if(o)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some,Ot(i,void 0,536870912),tn(o))}return r}function bi(r,i,t){if(r=Xd(r),r.flags&524288){var o=Ru(r),s=o.members.get(i);if(s&&gc(s))return s;if(t)return;var u=o===xn?br:o.callSignatures.length?Zr:o.constructSignatures.length?Si:void 0;if(u){var h=h_(u,i);if(h)return h}return h_(qe,i)}if(r.flags&3145728)return Zv(r,i,t)}function Ft(r,i){if(r.flags&3670016){var t=Ru(r);return i===0?t.callSignatures:t.constructSignatures}return e.emptyArray}function ot(r,i){return Ft(Xd(r),i)}function xa(r,i){return e.find(r,function(t){return t.keyType===i})}function mn(r,i){for(var t,o,s,u=0,h=r;u=0),t>=Hl(i,3)}var o=e.getImmediatelyInvokedFunctionExpression(r.parent);return o?!r.type&&!r.dotDotDotToken&&r.parent.parameters.indexOf(r)>=o.arguments.length:!1}function qm(r){return e.isPropertyDeclaration(r)&&r.questionToken}function Vm(r){if(!e.isJSDocPropertyLikeTag(r))return!1;var i=r.isBracketed,t=r.typeExpression;return i||!!t&&t.type.kind===316}function vg(r,i,t,o){return{kind:r,parameterName:i,parameterIndex:t,type:o}}function Ul(r){var i=0;if(r)for(var t=0;t=t&&u<=s){for(var h=r?r.slice():[],z=u;zz.arguments.length&&!Dr||Cd(tr);li||(s=t.length)}if((r.kind===172||r.kind===173)&&Td(r)&&(!h||!u)){var Ti=r.kind===172?173:172,Ci=e.getDeclarationOfKind(Et(r),Ti);Ci&&(u=cr(Ci))}var $i=r.kind===171?aa(so(r.parent.symbol)):void 0,Zi=$i?$i.localTypeParameters:jl(r);(e.hasRestParameter(r)||e.isInJSFile(r)&&ey(r,t))&&(o|=1),(e.isConstructorTypeNode(r)&&e.hasSyntacticModifier(r,128)||e.isConstructorDeclaration(r)&&e.hasSyntacticModifier(r.parent,128))&&(o|=4),i.resolvedSignature=Fu(r,Zi,u,t,void 0,void 0,s,o)}return i.resolvedSignature}function ey(r,i){if(e.isJSDocSignature(r)||!Gm(r))return!1;var t=e.lastOrUndefined(r.parameters),o=t?e.getJSDocParameterTags(t):e.getJSDocTags(r).filter(e.isJSDocParameterTag),s=e.firstDefined(o,function(h){return h.typeExpression&&e.isJSDocVariadicType(h.typeExpression.type)?h.typeExpression.type:void 0}),u=oo(3,"args",32768);return s?u.type=Zs(Va(s.type)):(u.checkFlags|=65536,u.deferralParent=ui,u.deferralConstituents=[mo],u.deferralWriteConstituents=[mo]),s&&i.pop(),i.push(u),!0}function rm(r){if(!!(e.isInJSFile(r)&&e.isFunctionLikeDeclaration(r))){var i=e.getJSDocTypeTag(r);return(i==null?void 0:i.typeExpression)&&ig(Va(i.typeExpression))}}function Km(r,i){var t=rm(r);if(!!t){var o=r.parameters.indexOf(i);return i.dotDotDotToken?ym(t,o):$u(t,o)}}function ry(r){var i=rm(r);return i&&yo(i)}function Gm(r){var i=va(r);return i.containsArgumentsReference===void 0&&(i.flags&8192?i.containsArgumentsReference=!0:i.containsArgumentsReference=t(r.body)),i.containsArgumentsReference;function t(o){if(!o)return!1;switch(o.kind){case 79:return o.escapedText===or.escapedName&&Nv(o)===or;case 167:case 169:case 172:case 173:return o.name.kind===162&&t(o.name);case 206:case 207:return t(o.expression);case 296:return t(o.initializer);default:return!e.nodeStartsNewLexicalEnvironment(o)&&!e.isPartOfTypeNode(o)&&!!e.forEachChild(o,t)}}}function S_(r){if(!r||!r.declarations)return e.emptyArray;for(var i=[],t=0;t0&&o.body){var s=r.declarations[t-1];if(o.parent===s.parent&&o.kind===s.kind&&o.pos===s.end)continue}i.push(yl(o))}}return i}function Hm(r){var i=ac(r,r);if(i){var t=Us(i);if(t)return Jt(t)}return Oe}function T_(r){if(r.thisParameter)return Jt(r.thisParameter)}function Yc(r){if(!r.resolvedTypePredicate){if(r.target){var i=Yc(r.target);r.resolvedTypePredicate=i?BI(i,r.mapper):Ro}else if(r.compositeSignatures)r.resolvedTypePredicate=X3(r.compositeSignatures,r.compositeKind)||Ro;else{var t=r.declaration&&e.getEffectiveReturnTypeNode(r.declaration),o=void 0;if(!t&&e.isInJSFile(r.declaration)){var s=rm(r.declaration);s&&r!==s&&(o=Yc(s))}r.resolvedTypePredicate=t&&e.isTypePredicateNode(t)?gh(t,r):o||Ro}e.Debug.assert(!!r.resolvedTypePredicate)}return r.resolvedTypePredicate===Ro?void 0:r.resolvedTypePredicate}function gh(r,i){var t=r.parameterName,o=r.type&&Va(r.type);return t.kind===192?vg(r.assertsModifier?2:0,void 0,void 0,o):vg(r.assertsModifier?3:1,t.escapedText,e.findIndex(i.parameters,function(s){return s.escapedName===t.escapedText}),o)}function iy(r,i,t){return i!==2097152?Pa(r,t):Do(r)}function yo(r){if(!r.resolvedReturnType){if(!yu(r,3))return Pe;var i=r.target?un(yo(r.target),r.mapper):r.compositeSignatures?un(iy(e.map(r.compositeSignatures,yo),r.compositeKind,2),r.mapper):yg(r.declaration)||(e.nodeIsMissing(r.declaration.body)?Oe:C0(r.declaration));if(r.flags&8?i=FE(i):r.flags&16&&(i=i_(i)),!fi()){if(r.declaration){var t=e.getEffectiveReturnTypeNode(r.declaration);if(t)Xr(t,e.Diagnostics.Return_type_annotation_circularly_references_itself);else if(n){var o=r.declaration,s=e.getNameOfDeclaration(o);s?Xr(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)):Xr(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)}}i=Oe}r.resolvedReturnType=i}return r.resolvedReturnType}function yg(r){if(r.kind===171)return aa(so(r.parent.symbol));if(e.isJSDocConstructSignature(r))return Va(r.parameters[0].type);var i=e.getEffectiveReturnTypeNode(r);if(i)return Va(i);if(r.kind===172&&Td(r)){var t=e.isInJSFile(r)&&K_(r);if(t)return t;var o=e.getDeclarationOfKind(Et(r),173),s=Te(o);if(s)return s}return ry(r)}function Z1(r){return!r.resolvedReturnType&&v(r,3)>=0}function _3(r){return ix(r)||Oe}function ix(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]),t=Yn(i)?sv(i):i;return t&&cs(t,nt)}}function Xm(r,i,t,o){var s=eD(r,zp(i,r.typeParameters,Ul(r.typeParameters),t));if(o){var u=ok(yo(s));if(u){var h=xd(u);h.typeParameters=o;var z=xd(s);return z.resolvedReturnType=im(h),z}}return s}function eD(r,i){var t=r.instantiations||(r.instantiations=new e.Map),o=Su(i),s=t.get(o);return s||t.set(o,s=mh(r,i)),s}function mh(r,i){return Tg(r,p3(r,i),!0)}function p3(r,i){return Uc(r.typeParameters,i)}function Qm(r){return r.typeParameters?r.erasedSignatureCache||(r.erasedSignatureCache=d3(r)):r}function d3(r){return Tg(r,sE(r.typeParameters),!0)}function g3(r){return r.typeParameters?r.canonicalSignatureCache||(r.canonicalSignatureCache=m3(r)):r}function m3(r){return Xm(r,e.map(r.typeParameters,function(i){return i.target&&!Tc(i.target)?i.target:i}),e.isInJSFile(r.declaration))}function v3(r){var i=r.typeParameters;if(i){if(r.baseSignatureCache)return r.baseSignatureCache;for(var t=sE(i),o=Uc(i,e.map(i,function(h){return Tc(h)||gr})),s=e.map(i,function(h){return un(h,o)||gr}),u=0;u1&&(i+=":"+u),o+=u}return i}function hg(r,i){return r?"@".concat(y(r))+(i?":".concat(Su(i)):""):""}function iD(r,i){for(var t=0,o=0,s=r;oo.length)){var me=h&&e.isExpressionWithTypeArguments(r)&&!e.isJSDocAugmentsTag(r.parent),Me=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,$e=Ot(t,void 0,2);if(Xr(r,Me,$e,u,o.length),!h)return Pe}if(r.kind===178&&wx(r,e.length(r.typeArguments)!==o.length))return tD(t,r,void 0);var tr=e.concatenate(t.outerTypeParameters,zp(bh(r),o,u,h));return Yf(t,tr)}return Wp(r,i)?t:Pe}function am(r,i,t,o){var s=go(r);if(s===De&&x.has(r.escapedName)&&i&&i.length===1)return Th(r,i[0]);var u=Aa(r),h=u.typeParameters,z=Su(i)+hg(t,o),me=u.instantiations.get(z);return me||u.instantiations.set(z,me=lE(s,Uc(h,zp(i,h,Ul(h),e.isInJSFile(r.valueDeclaration))),t,o)),me}function y3(r,i){if(e.getCheckFlags(i)&1048576){var t=bh(r),o=hg(i,t),s=Ar.get(o);return s||(s=ms(1,"error"),s.aliasSymbol=i,s.aliasTypeArguments=t,Ar.set(o,s)),s}var u=go(i),h=Aa(i).typeParameters;if(h){var z=e.length(r.typeArguments),me=Ul(h);if(zh.length)return Xr(r,me===h.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,tn(i),me,h.length),Pe;var Me=Qd(r),$e=Me&&(fx(i)||!fx(Me))?Me:void 0;return am(i,bh(r),$e,bg($e))}return Wp(r,i)?u:Pe}function fx(r){var i,t=(i=r.declarations)===null||i===void 0?void 0:i.find(e.isTypeAlias);return!!(t&&e.getContainingFunction(t))}function h3(r){switch(r.kind){case 178:return r.typeName;case 228:var i=r.expression;if(e.isEntityNameExpression(i))return i}}function _x(r){return r.parent?"".concat(_x(r.parent),".").concat(r.escapedName):r.escapedName}function yh(r){var i=r.kind===161?r.right:r.kind===206?r.name:r,t=i.escapedText;if(t){var o=r.kind===161?yh(r.left):r.kind===206?yh(r.expression):void 0,s=o?"".concat(_x(o),".").concat(t):t,u=mr.get(s);return u||(mr.set(s,u=oo(524288,t,1048576)),u.parent=o,u.declaredType=Ue),u}return xe}function nm(r,i,t){var o=h3(r);if(!o)return xe;var s=Ds(o,i,t);return s&&s!==xe?s:t?xe:yh(o)}function hh(r,i){if(i===xe)return Pe;if(i=Cc(i)||i,i.flags&96)return lx(r,i);if(i.flags&524288)return y3(r,i);var t=Vd(i);if(t)return Wp(r,i)?jc(t):Pe;if(i.flags&111551&&Dh(r)){var o=D3(r,i);return o||(nm(r,788968),Jt(i))}return Pe}function D3(r,i){var t=va(r);if(!t.resolvedJSDocType){var o=Jt(i),s=o;if(i.valueDeclaration){var u=r.kind===200&&r.qualifier;o.symbol&&o.symbol!==i&&u&&(s=hh(r,o.symbol))}t.resolvedJSDocType=s}return t.resolvedJSDocType}function px(r,i){if(i.flags&3||i===r)return r;var t="".concat(fu(r),">").concat(fu(i)),o=Ze.get(t);if(o)return o;var s=mc(33554432);return s.baseType=r,s.substitute=i,Ze.set(t,s),s}function dx(r){return r.kind===184&&r.elements.length===1}function gx(r,i,t){return dx(i)&&dx(t)?gx(r,i.elements[0],t.elements[0]):rp(Va(i))===rp(r)?Va(t):void 0}function mx(r,i){for(var t,o=!0;i&&!e.isStatement(i)&&i.kind!==320;){var s=i.parent;if(s.kind===164&&(o=!o),(o||r.flags&8650752)&&s.kind===189&&i===s.trueType){var u=gx(r,s.checkType,s.extendsType);u&&(t=e.append(t,u))}else if(r.flags&262144&&s.kind===195&&i===s.type){var h=Va(s);if(Du(h)===rp(r)){var z=Ih(h);if(z){var u=Tc(z);u&&gf(u,Pd)&&(t=e.append(t,Pa([nt,$a])))}}}i=s}return t?px(r,Do(e.append(t,r))):r}function Dh(r){return!!(r.flags&8388608)&&(r.kind===178||r.kind===200)}function Wp(r,i){return r.typeArguments?(Xr(r,e.Diagnostics.Type_0_is_not_generic,i?tn(i):r.typeName?e.declarationNameToString(r.typeName):C),!1):!0}function vx(r){if(e.isIdentifier(r.typeName)){var i=r.typeArguments;switch(r.typeName.escapedText){case"String":return Wp(r),Li;case"Number":return Wp(r),nt;case"Boolean":return Wp(r),Ii;case"Void":return Wp(r),Fi;case"Undefined":return Wp(r),Tr;case"Null":return Wp(r),Wi;case"Function":case"function":return Wp(r),br;case"array":return(!i||!i.length)&&!n?mo:void 0;case"promise":return(!i||!i.length)&&!n?Ny(Oe):void 0;case"Object":if(i&&i.length===2){if(e.isJSDocIndexSignature(r)){var t=Va(i[0]),o=Va(i[1]),s=t===Li||t===nt?[zl(t,o,!1)]:e.emptyArray;return rs(void 0,we,e.emptyArray,e.emptyArray,s)}return Oe}return Wp(r),n?void 0:Oe}}}function b3(r){var i=Va(r.type);return Ye?Uh(i,65536):i}function ty(r){var i=va(r);if(!i.resolvedType){if(e.isConstTypeReference(r)&&e.isAssertionExpression(r.parent))return i.resolvedSymbol=xe,i.resolvedType=Os(r.parent.expression);var t=void 0,o=void 0,s=788968;Dh(r)&&(o=vx(r),o||(t=nm(r,s,!0),t===xe?t=nm(r,s|111551):nm(r,s),o=hh(r,t))),o||(t=nm(r,s),o=hh(r,t)),i.resolvedSymbol=t,i.resolvedType=o}return i.resolvedType}function bh(r){return e.map(r.typeArguments,Va)}function yx(r){var i=va(r);if(!i.resolvedType){var t=kk(r);i.resolvedType=jc($c(t))}return i.resolvedType}function hx(r,i){function t(s){var u=s.declarations;if(u)for(var h=0,z=u;h=0)return ny(e.map(i,function(Ci,$i){return r.elementFlags[$i]&8?Ci:gr}))?Ss(i[u],function(Ci){return Fx(r,e.replaceElement(i,u,Ci))}):Pe}for(var h=[],z=[],me=[],Me=-1,$e=-1,tr=-1,dr=function(Ci){var $i=i[Ci],Zi=r.elementFlags[Ci];if(Zi&8)if($i.flags&58982400||Bc($i))Ti($i,8,(t=r.labeledElementDeclarations)===null||t===void 0?void 0:t[Ci]);else if(Yn($i)){var qt=xo($i);if(qt.length+h.length>=1e4)return Xr(Ie,e.isPartOfTypeNode(Ie)?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:Pe};e.forEach(qt,function(Nt,Ra){var ca;return Ti(Nt,$i.target.elementFlags[Ra],(ca=$i.target.labeledElementDeclarations)===null||ca===void 0?void 0:ca[Ra])})}else Ti(sp($i)&&cs($i,nt)||Pe,4,(o=r.labeledElementDeclarations)===null||o===void 0?void 0:o[Ci]);else Ti($i,Zi,(s=r.labeledElementDeclarations)===null||s===void 0?void 0:s[Ci])},Dr=0;Dr=0&&$eo.fixedLength?Aw(r)||Wl(e.emptyArray):Wl(xo(r).slice(i,s),o.elementFlags.slice(i,s),!1,o.labeledElementDeclarations&&o.labeledElementDeclarations.slice(i,s))}function Mx(r){return Pa(e.append(e.arrayOf(r.target.fixedLength,function(i){return Bu(""+i)}),ql(r.target.readonly?Qi:Pi)))}function Lx(r,i){var t=e.findIndex(r.elementFlags,function(o){return!(o&i)});return t>=0?t:r.elementFlags.length}function Sh(r,i){return r.elementFlags.length-e.findLastIndex(r.elementFlags,function(t){return!(t&i)})-1}function W3(r){return kc(Va(r.type),!0)}function fu(r){return r.id}function $f(r,i){return e.binarySearch(r,i,fu,e.compareValues)>=0}function lD(r,i){var t=e.binarySearch(r,i,fu,e.compareValues);return t<0?(r.splice(~t,0,i),!0):!1}function q3(r,i,t){var o=t.flags;if(o&1048576)return Rx(r,i|(H3(t)?1048576:0),t.types);if(!(o&131072))if(i|=o&205258751,o&465829888&&(i|=33554432),t===Mr&&(i|=8388608),!Ye&&o&98304)e.getObjectFlags(t)&65536||(i|=4194304);else{var s=r.length,u=s&&t.id>r[s-1].id?~s:e.binarySearch(r,t,fu,e.compareValues);u<0&&r.splice(~u,0,t)}return i}function Rx(r,i,t){for(var o=0,s=t;o0;){h--;var me=r[h];if(s||me.flags&469499904)for(var Me=me.flags&61603840?e.find(uo(me),function(Ti){return Vl(Jt(Ti))}):void 0,$e=Me&&jc(Jt(Me)),tr=0,dr=r;tr1e6){e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","removeSubtypes_DepthLimit",{typeIds:r.map(function(Ti){return Ti.id})}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);return}}if(z++,Me&&Dr.flags&61603840){var li=da(Dr,Me.escapedName);if(li&&Vl(li)&&jc(li)!==$e)continue}if(r_(me,Dr,ki)&&(!(e.getObjectFlags(bd(me))&1)||!(e.getObjectFlags(bd(Dr))&1)||xg(me,Dr))){e.orderedRemoveItemAt(r,h);break}}}}return Sr.set(t,r),r}function K3(r,i,t){for(var o=r.length;o>0;){o--;var s=r[o],u=s.flags,h=u&402653312&&i&4||u&256&&i&8||u&2048&&i&64||u&8192&&i&4096||t&&u&32768&&i&16384||Kp(s)&&$f(r,s.regularType);h&&e.orderedRemoveItemAt(r,o)}}function G3(r){var i=e.filter(r,sm);if(i.length)for(var t=r.length,o=function(){t--;var s=r[t];s.flags&128&&e.some(i,function(u){return VE(s,u)})&&e.orderedRemoveItemAt(r,t)};t>0;)o()}function H3(r){return!!(r.flags&1048576&&(r.aliasSymbol||r.origin))}function Bx(r,i){for(var t=0,o=i;t=0&&$f(u,Tr)&&e.orderedRemoveItemAt(u,z)}if((h&402664320||h&16384&&h&32768)&&K3(u,h,!!(i&2)),h&128&&h&134217728&&G3(u),i===2&&(u=V3(u,!!(h&524288)),!u))return Pe;if(u.length===0)return h&65536?h&4194304?Wi:ct:h&32768?h&4194304?Tr:vi:ui}if(!s&&h&1048576){var me=[];Bx(me,r);for(var Me=[],$e=function($i){e.some(me,function(Zi){return $f(Zi.types,$i)})||Me.push($i)},tr=0,dr=u;tr0;){t--;var o=r[t],s=o.flags&4&&i&402653312||o.flags&8&&i&256||o.flags&64&&i&2048||o.flags&4096&&i&8192;s&&e.orderedRemoveItemAt(r,t)}}function Z3(r,i){for(var t=0,o=r;t0;){i--;var o=r[i];if(!!(o.flags&134217728))for(var s=0,u=t;s=1e5?(e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","checkCrossProductUnion_DepthLimit",{typeIds:r.map(function(t){return t.id}),size:i}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1):!0}function tI(r){for(var i=zx(r),t=[],o=0;o=0;h--)if(r[h].flags&1048576){var z=r[h].types,me=z.length;s[h]=z[u%me],u=Math.floor(u/me)}var Me=Do(s);Me.flags&131072||t.push(Me)}return t}function aI(r){var i=va(r);if(!i.resolvedType){var t=Qd(r);i.resolvedType=Do(e.map(r.types,Va),t,bg(t))}return i.resolvedType}function Wx(r,i){var t=mc(4194304);return t.type=r,t.stringsOnly=i,t}function nI(r){var i=Ip(4194304);return i.type=r,i}function dD(r,i){return i?r.resolvedStringIndexType||(r.resolvedStringIndexType=Wx(r,!0)):r.resolvedIndexType||(r.resolvedIndexType=Wx(r,!1))}function oI(r,i,t){var o=Du(r),s=Mu(r),u=Jl(r.target||r);if(!u&&!t)return s;var h=[];if(mg(r)){if(qp(s))return dD(r,i);var z=$s(Ed(r));Um(z,8576,i,Me)}else Od(Kd(s),Me);qp(s)&&Od(s,Me);var me=t?ec(Pa(h),function($e){return!($e.flags&5)}):Pa(h);if(me.flags&1048576&&s.flags&1048576&&Su(me.types)===Su(s.types))return s;return me;function Me($e){var tr=u?un(u,tv(r.mapper,o,$e)):$e;h.push(tr===Li?ji:tr)}}function sI(r){var i=Du(r);return t(Jl(r)||i);function t(o){return o.flags&68157439?!0:o.flags&16777216?o.root.isDistributive&&o.checkType===i:o.flags&137363456?e.every(o.types,t):o.flags&8388608?t(o.objectType)&&t(o.indexType):o.flags&33554432?t(o.substitute):o.flags&268435456?t(o.type):!1}}function Z_(r){return e.isPrivateIdentifier(r)?ui:e.isIdentifier(r)?Bu(e.unescapeLeadingUnderscores(r.escapedText)):jc(e.isComputedPropertyName(r)?t_(r):yn(r))}function om(r,i,t){if(t||!(e.getDeclarationModifierFlagsFromSymbol(r)&24)){var o=Aa(dg(r)).nameType;if(!o){var s=e.getNameOfDeclaration(r.valueDeclaration);o=r.escapedName==="default"?Bu("default"):s&&Z_(s)||(e.isKnownSymbol(r)?void 0:Bu(e.symbolName(r)))}if(o&&o.flags&i)return o}return ui}function qx(r,i){return!!(r.flags&i||r.flags&2097152&&e.some(r.types,function(t){return qx(t,i)}))}function cI(r,i,t){var o=t&&(e.getObjectFlags(r)&7||r.aliasSymbol)?nI(r):void 0,s=e.map(uo(r),function(h){return om(h,i)}),u=e.map(Hn(r),function(h){return h!==Ko&&qx(h.keyType,i)?h.keyType===Li&&i&8?ji:h.keyType:ui});return Pa(e.concatenate(s,u),1,void 0,void 0,o)}function uI(r){return e.some(r.types,function(i){var t=KI(i);return bu(t)!==t})}function ql(r,i,t){return i===void 0&&(i=Ge),r=bu(r),r.flags&1048576?uI(r)?dD(r,i):Do(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&2097152?Pa(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&58982400||lm(r)||Bc(r)&&!sI(r)?dD(r,i):e.getObjectFlags(r)&32?oI(r,i,t):r===Mr?Mr:r.flags&2?ui:r.flags&131073?at:cI(r,(t?128:402653316)|(i?0:12584),i===Ge&&!t)}function Vx(r){if(Ge)return r;var i=M3();return i?am(i,[r,Li]):Li}function lI(r){var i=Vx(ql(r));return i.flags&131072?Li:i}function fI(r){var i=va(r);if(!i.resolvedType)switch(r.operator){case 140:i.resolvedType=ql(Va(r.type));break;case 154:i.resolvedType=r.type.kind===151?CD(e.walkUpParenthesizedTypes(r.parent)):Pe;break;case 145:i.resolvedType=Va(r.type);break;default:throw e.Debug.assertNever(r.operator)}return i.resolvedType}function _I(r){var i=va(r);return i.resolvedType||(i.resolvedType=Dg(Ve([r.head.text],e.map(r.templateSpans,function(t){return t.literal.text}),!0),e.map(r.templateSpans,function(t){return Va(t.type)}))),i.resolvedType}function Dg(r,i){var t=e.findIndex(i,function(Me){return!!(Me.flags&1179648)});if(t>=0)return ny(i)?Ss(i[t],function(Me){return Dg(r,e.replaceElement(i,t,Me))}):Pe;if(e.contains(i,Mr))return Mr;var o=[],s=[],u=r[0];if(!me(r,i))return Li;if(o.length===0)return Bu(u);if(s.push(u),e.every(s,function(Me){return Me===""})&&e.every(o,function(Me){return!!(Me.flags&4)}))return Li;var h="".concat(Su(o),"|").concat(e.map(s,function(Me){return Me.length}).join(","),"|").concat(s.join("")),z=Jr.get(h);return z||Jr.set(h,z=dI(s,o)),z;function me(Me,$e){for(var tr=e.isArray(Me),dr=0;dr<$e.length;dr++){var Dr=$e[dr],Qr=tr?Me[dr+1]:Me;if(Dr.flags&101248){if(u+=pI(Dr)||"",u+=Qr,!tr)return!0}else if(Dr.flags&134217728){if(u+=Dr.texts[0],!me(Dr.texts,Dr.types))return!1;if(u+=Qr,!tr)return!0}else if(qp(Dr)||Gx(Dr))o.push(Dr),s.push(u),u=Qr;else if(Dr.flags&2097152){var li=me(Me[dr+1],Dr.types);if(!li)return!1}else if(tr)return!1}return!0}}function pI(r){return r.flags&128?r.value:r.flags&256?""+r.value:r.flags&2048?e.pseudoBigIntToString(r.value):r.flags&98816?r.intrinsicName:void 0}function dI(r,i){var t=mc(134217728);return t.texts=r,t.types=i,t}function Th(r,i){return i.flags&1179648?Ss(i,function(t){return Th(r,t)}):qp(i)?mI(r,i):i.flags&128?Bu(gI(r,i.value)):i}function gI(r,i){switch(x.get(r.escapedName)){case 0:return i.toUpperCase();case 1:return i.toLowerCase();case 2:return i.charAt(0).toUpperCase()+i.slice(1);case 3:return i.charAt(0).toLowerCase()+i.slice(1)}return i}function mI(r,i){var t="".concat(y(r),",").concat(fu(i)),o=ti.get(t);return o||ti.set(t,o=vI(r,i)),o}function vI(r,i){var t=mc(268435456);return t.symbol=r,t.type=i,t}function yI(r,i,t,o,s){var u=mc(8388608);return u.objectType=r,u.indexType=i,u.accessFlags=t,u.aliasSymbol=o,u.aliasTypeArguments=s,u}function ev(r){if(n)return!1;if(e.getObjectFlags(r)&4096)return!0;if(r.flags&1048576)return e.every(r.types,ev);if(r.flags&2097152)return e.some(r.types,ev);if(r.flags&465829888){var i=Hv(r);return i!==r&&ev(i)}return!1}function gD(r,i){return _f(r)?pf(r):i&&e.isPropertyName(i)?e.getPropertyNameForPropertyNameNode(i):void 0}function mD(r,i){if(i.flags&8208){var t=e.findAncestor(r.parent,function(o){return!e.isAccessExpression(o)})||r.parent;return e.isCallLikeExpression(t)?e.isCallOrNewExpression(t)&&e.isIdentifier(r)&&eC(t,r):e.every(i.declarations,function(o){return!e.isFunctionLike(o)||!!(e.getCombinedNodeFlags(o)&268435456)})}return!0}function Kx(r,i,t,o,s,u){var h,z=s&&s.kind===207?s:void 0,me=s&&e.isPrivateIdentifier(s)?void 0:gD(t,s);if(me!==void 0){if(u&256)return Md(i,me)||Oe;var Me=bi(i,me);if(Me){if(u&64&&s&&Me.declarations&&P_(Me)&&mD(s,Me)){var $e=(h=z==null?void 0:z.argumentExpression)!==null&&h!==void 0?h:e.isIndexedAccessTypeNode(s)?s.indexType:s;El($e,Me.declarations,me)}if(z){if(xy(Me,z,rk(z.expression,i.symbol)),jk(z,Me,e.getAssignmentTargetKind(z))){Xr(z.argumentExpression,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(Me));return}if(u&8&&(va(s).resolvedSymbol=Me),HC(z,Me))return nr}var tr=Jt(Me);return z&&e.getAssignmentTargetKind(z)!==1?up(z,tr):tr}if(gf(i,Yn)&&e.isNumericLiteralName(me)&&+me>=0){if(s&&gf(i,function(Nt){return!Nt.target.hasRestElement})&&!(u&16)){var dr=vD(s);Yn(i)?Xr(dr,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,Ot(i),$_(i),e.unescapeLeadingUnderscores(me)):Xr(dr,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i))}return qt(ss(i,nt)),Ss(i,function(Nt){var Ra=sv(Nt)||Tr;return u&1?Pa([Ra,Tr]):Ra})}}if(!(t.flags&98304)&&Ns(t,402665900)){if(i.flags&131073)return i;var Dr=nu(i,t)||ss(i,Li);if(Dr){if(u&2&&Dr.keyType!==nt){z&&Xr(z,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Ot(t),Ot(r));return}if(s&&Dr.keyType===Li&&!Ns(t,12)){var dr=vD(s);return Xr(dr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t)),u&1?Pa([Dr.type,Tr]):Dr.type}return qt(Dr),u&1?Pa([Dr.type,Tr]):Dr.type}if(t.flags&131072)return ui;if(ev(i))return Oe;if(z&&!uS(i)){if(Qp(i)){if(n&&t.flags&384)return rn.add(e.createDiagnosticForNode(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i))),Tr;if(t.flags&12){var Qr=e.map(i.properties,function(Nt){return Jt(Nt)});return Pa(e.append(Qr,Tr))}}if(i.symbol===pe&&me!==void 0&&pe.exports.has(me)&&pe.exports.get(me).flags&418)Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i));else if(n&&!ye.suppressImplicitAnyIndexErrors&&!(u&128))if(me!==void 0&&$C(me,i)){var li=Ot(i);Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,me,li,li+"["+e.getTextOfNode(z.argumentExpression)+"]")}else if(cs(i,nt))Xr(z.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var Ti=void 0;if(me!==void 0&&(Ti=Vb(me,i)))Ti!==void 0&&Xr(z.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,me,Ot(i),Ti);else{var Ci=i7(i,z,t);if(Ci!==void 0)Xr(z,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,Ot(i),Ci);else{var $i=void 0;if(t.flags&1024)$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+Ot(t)+"]",Ot(i));else if(t.flags&8192){var Zi=cl(t.symbol,z);$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+Zi+"]",Ot(i))}else t.flags&128||t.flags&256?$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i)):t.flags&12&&($i=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,Ot(t),Ot(i)));$i=e.chainDiagnosticMessages($i,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,Ot(o),Ot(i)),rn.add(e.createDiagnosticForNodeFromMessageChain(z,$i))}}}return}}if(ev(i))return Oe;if(s){var dr=vD(s);t.flags&384?Xr(dr,e.Diagnostics.Property_0_does_not_exist_on_type_1,""+t.value,Ot(i)):t.flags&12?Xr(dr,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,Ot(i),Ot(t)):Xr(dr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t))}if(ta(t))return t;return;function qt(Nt){Nt&&Nt.isReadonly&&z&&(e.isAssignmentTarget(z)||e.isDeleteTarget(z))&&Xr(z,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Ot(i))}}function vD(r){return r.kind===207?r.argumentExpression:r.kind===194?r.indexType:r.kind===162?r.expression:r}function Gx(r){return!!(r.flags&77)}function sm(r){return!!(r.flags&134217728)&&e.every(r.types,Gx)}function rv(r){return!!iv(r)}function Ad(r){return!!(iv(r)&4194304)}function qp(r){return!!(iv(r)&8388608)}function iv(r){return r.flags&3145728?(r.objectFlags&2097152||(r.objectFlags|=2097152|e.reduceLeft(r.types,function(i,t){return i|iv(t)},0)),r.objectFlags&12582912):r.flags&33554432?(r.objectFlags&2097152||(r.objectFlags|=2097152|iv(r.substitute)|iv(r.baseType)),r.objectFlags&12582912):(r.flags&58982400||Bc(r)||lm(r)?4194304:0)|(r.flags&465829888&&!sm(r)?8388608:0)}function Zf(r,i){return r.flags&8388608?DI(r,i):r.flags&16777216?bI(r,i):r}function Hx(r,i,t){if(r.flags&3145728){var o=e.map(r.types,function(s){return Zf(Jc(s,i),t)});return r.flags&2097152||t?Do(o):Pa(o)}}function hI(r,i,t){if(i.flags&1048576){var o=e.map(i.types,function(s){return Zf(Jc(r,s),t)});return t?Do(o):Pa(o)}}function DI(r,i){var t=i?"simplifiedForWriting":"simplifiedForReading";if(r[t])return r[t]===Pn?r:r[t];r[t]=Pn;var o=Zf(r.objectType,i),s=Zf(r.indexType,i),u=hI(o,s,i);if(u)return r[t]=u;if(!(s.flags&465829888)){var h=Hx(o,s,i);if(h)return r[t]=h}if(lm(o)&&s.flags&296){var z=jh(o,s.flags&8?0:o.target.fixedLength,0,i);if(z)return r[t]=z}if(Bc(o)){var me=Jl(o);if(!me||ao(me,Du(o)))return r[t]=Ss(xh(o,r.indexType),function(Me){return Zf(Me,i)})}return r[t]=r}function bI(r,i){var t=r.checkType,o=r.extendsType,s=ip(r),u=tp(r);if(u.flags&131072&&rp(s)===rp(t)){if(t.flags&1||ao(Nd(t),Nd(o)))return Zf(s,i);if(Xx(t,o))return ui}else if(s.flags&131072&&rp(u)===rp(t)){if(!(t.flags&1)&&ao(Nd(t),Nd(o)))return ui;if(t.flags&1||Xx(t,o))return Zf(u,i)}return r}function Xx(r,i){return!!(Pa([Zg(r,i),ui]).flags&131072)}function xh(r,i){var t=Uc([Du(r)],[i]),o=np(r.mapper,t);return un(vl(r),o)}function Jc(r,i,t,o,s,u){return t===void 0&&(t=0),ep(r,i,t,o,s,u)||(o?Pe:gr)}function Qx(r,i){return gf(r,function(t){if(t.flags&384){var o=pf(t);if(e.isNumericLiteralName(o)){var s=+o;return s>=0&&s=i?gr:t})}function np(r,i){return r?Nh(3,r,i):i}function LI(r,i){return r?Nh(4,r,i):i}function $d(r,i,t){return t?Nh(4,Yd(r,i),t):Yd(r,i)}function tv(r,i,t){return r?Nh(4,r,Yd(i,t)):Yd(i,t)}function RI(r){return r.constraint===gr?r:r.restrictiveInstantiation||(r.restrictiveInstantiation=Hc(r.symbol),r.restrictiveInstantiation.constraint=gr,r.restrictiveInstantiation)}function kD(r){var i=Hc(r.symbol);return i.target=r,i}function BI(r,i){return vg(r.kind,r.parameterName,r.parameterIndex,un(r.type,i))}function Tg(r,i,t){var o;if(r.typeParameters&&!t){o=e.map(r.typeParameters,kD),i=np(Uc(r.typeParameters,o),i);for(var s=0,u=o;s=5e6)return e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","instantiateType_DepthLimit",{typeId:r.id,instantiationDepth:He,instantiationCount:Ee}),Xr(Ie,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),Pe;ze++,Ee++,He++;var s=qI(r,i,t,o);return He--,s}function qI(r,i,t,o){var s=r.flags;if(s&262144)return ap(r,i);if(s&524288){var u=r.objectFlags;if(u&52){if(u&4&&!r.node){var h=r.resolvedTypeArguments,z=e_(h,i);return z!==h?uD(r.target,z):r}return u&1024?VI(r,i):JI(r,i,t,o)}return r}if(s&3145728){var me=r.flags&1048576?r.origin:void 0,Me=me&&me.flags&3145728?me.types:r.types,$e=e_(Me,i);if($e===Me&&t===r.aliasSymbol)return r;var tr=t||r.aliasSymbol,dr=t?o:e_(r.aliasTypeArguments,i);return s&2097152||me&&me.flags&2097152?Do($e,tr,dr):Pa($e,1,tr,dr)}if(s&4194304)return ql(un(r.type,i));if(s&134217728)return Dg(r.texts,e_(r.types,i));if(s&268435456)return Th(r.symbol,un(r.type,i));if(s&8388608){var tr=t||r.aliasSymbol,dr=t?o:e_(r.aliasTypeArguments,i);return Jc(un(r.objectType,i),un(r.indexType,i),r.accessFlags,void 0,tr,dr)}if(s&16777216)return ID(r,np(r.mapper,i),t,o);if(s&33554432){var Dr=un(r.baseType,i);if(Dr.flags&8650752)return px(Dr,un(r.substitute,i));var Qr=un(r.substitute,i);return Qr.flags&3||ao(Nd(Dr),Nd(Qr))?Dr:Qr}return r}function VI(r,i){var t=un(r.mappedType,i);if(!(e.getObjectFlags(t)&32))return r;var o=un(r.constraintType,i);if(!(o.flags&4194304))return r;var s=UE(un(r.source,i),t,o);return s||r}function KI(r){return r.flags&262143?r:r.uniqueLiteralFilledInstantiation||(r.uniqueLiteralFilledInstantiation=un(r,ka))}function wh(r){return r.flags&262143?r:r.permissiveInstantiation||(r.permissiveInstantiation=un(r,ai))}function Nd(r){return r.flags&262143?r:(r.restrictiveInstantiation||(r.restrictiveInstantiation=un(r,Qa),r.restrictiveInstantiation.restrictiveInstantiation=r.restrictiveInstantiation),r.restrictiveInstantiation)}function GI(r,i){return zl(r.keyType,un(r.type,i),r.isReadonly,r.declaration)}function Ju(r){switch(e.Debug.assert(r.kind!==169||e.isObjectLiteralMethod(r)),r.kind){case 213:case 214:case 169:case 256:return fE(r);case 205:return e.some(r.properties,Ju);case 204:return e.some(r.elements,Ju);case 222:return Ju(r.whenTrue)||Ju(r.whenFalse);case 221:return(r.operatorToken.kind===56||r.operatorToken.kind===60)&&(Ju(r.left)||Ju(r.right));case 296:return Ju(r.initializer);case 212:return Ju(r.expression);case 286:return e.some(r.properties,Ju)||e.isJsxOpeningElement(r.parent)&&e.some(r.parent.parent.children,Ju);case 285:{var i=r.initializer;return!!i&&Ju(i)}case 288:{var t=r.expression;return!!t&&Ju(t)}}return!1}function fE(r){return(!e.isFunctionDeclaration(r)||e.isInJSFile(r)&&!!K_(r))&&(e.hasContextSensitiveParameters(r)||HI(r))}function HI(r){return!r.typeParameters&&!e.getEffectiveReturnTypeNode(r)&&!!r.body&&r.body.kind!==235&&Ju(r.body)}function wD(r){return(e.isInJSFile(r)&&e.isFunctionDeclaration(r)||e.isFunctionExpressionOrArrowFunction(r)||e.isObjectLiteralMethod(r))&&fE(r)}function _E(r){if(r.flags&524288){var i=Ru(r);if(i.constructSignatures.length||i.callSignatures.length){var t=tu(16,r.symbol);return t.members=i.members,t.properties=i.properties,t.callSignatures=e.emptyArray,t.constructSignatures=e.emptyArray,t.indexInfos=e.emptyArray,t}}else if(r.flags&2097152)return Do(e.map(r.types,_E));return r}function wf(r,i){return r_(r,i,wa)}function av(r,i){return r_(r,i,wa)?-1:0}function OD(r,i){return r_(r,i,dt)?-1:0}function XI(r,i){return r_(r,i,Or)?-1:0}function E_(r,i){return r_(r,i,Or)}function ao(r,i){return r_(r,i,dt)}function xg(r,i){return r.flags&1048576?e.every(r.types,function(t){return xg(t,i)}):i.flags&1048576?e.some(i.types,function(t){return xg(r,t)}):r.flags&58982400?xg(uc(r)||gr,i):i===qe?!!(r.flags&67633152):i===br?!!(r.flags&524288)&&db(r):lf(r,bd(i))||Tu(i)&&!um(i)&&xg(r,Qi)}function cm(r,i){return r_(r,i,la)}function Oh(r,i){return cm(r,i)||cm(i,r)}function zc(r,i,t,o,s,u){return hl(r,i,dt,t,o,s,u)}function op(r,i,t,o,s,u){return FD(r,i,dt,t,o,s,u,void 0)}function FD(r,i,t,o,s,u,h,z){return r_(r,i,t)?!0:!o||!cy(s,r,i,t,u,h,z)?hl(r,i,t,o,u,h,z):!1}function pE(r){return!!(r.flags&16777216||r.flags&2097152&&e.some(r.types,pE))}function cy(r,i,t,o,s,u,h){if(!r||pE(t))return!1;if(!hl(i,t,o,void 0)&&QI(r,i,t,o,s,u,h))return!0;switch(r.kind){case 288:case 212:return cy(r.expression,i,t,o,s,u,h);case 221:switch(r.operatorToken.kind){case 63:case 27:return cy(r.right,i,t,o,s,u,h)}break;case 205:return nw(r,i,t,o,u,h);case 204:return tw(r,i,t,o,u,h);case 286:return iw(r,i,t,o,u,h);case 214:return YI(r,i,t,o,u,h)}return!1}function QI(r,i,t,o,s,u,h){for(var z=ot(i,0),me=ot(i,1),Me=0,$e=[me,z];Me<$e.length;Me++){var tr=$e[Me];if(e.some(tr,function(Qr){var li=yo(Qr);return!(li.flags&131073)&&hl(li,t,o,void 0)})){var dr=h||{};zc(i,t,r,s,u,dr);var Dr=dr.errors[dr.errors.length-1];return e.addRelatedInfo(Dr,e.createDiagnosticForNode(r,tr===me?e.Diagnostics.Did_you_mean_to_use_new_with_this_expression:e.Diagnostics.Did_you_mean_to_call_this_expression)),!0}}return!1}function YI(r,i,t,o,s,u){if(e.isBlock(r.body)||e.some(r.parameters,e.hasType))return!1;var h=ig(i);if(!h)return!1;var z=ot(t,0);if(!e.length(z))return!1;var me=r.body,Me=yo(h),$e=Pa(e.map(z,yo));if(!hl(Me,$e,o,void 0)){var tr=me&&cy(me,Me,$e,o,void 0,s,u);if(tr)return tr;var dr=u||{};if(hl(Me,$e,o,me,void 0,s,dr),dr.errors)return t.symbol&&e.length(t.symbol.declarations)&&e.addRelatedInfo(dr.errors[dr.errors.length-1],e.createDiagnosticForNode(t.symbol.declarations[0],e.Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature)),(e.getFunctionFlags(r)&2)===0&&!da(Me,"then")&&hl(Ny(Me),$e,o,void 0)&&e.addRelatedInfo(dr.errors[dr.errors.length-1],e.createDiagnosticForNode(r,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async)),!0}return!1}function $I(r,i,t){var o=ep(i,t);if(o)return o;if(i.flags&1048576){var s=bE(r,i);if(s)return ep(s,t)}}function ZI(r,i){r.contextualType=i;try{return Dm(r,1,i)}finally{r.contextualType=void 0}}function nv(r,i,t,o,s,u){for(var h=!1,z=r.next();!z.done;z=r.next()){var me=z.value,Me=me.errorNode,$e=me.innerExpression,tr=me.nameType,dr=me.errorMessage,Dr=$I(i,t,tr);if(!(!Dr||Dr.flags&8388608)){var Qr=ep(i,tr);if(!!Qr){var li=gD(tr,void 0);if(!hl(Qr,Dr,o,void 0)){var Ti=$e&&cy($e,Qr,Dr,o,void 0,s,u);if(h=!0,!Ti){var Ci=u||{},$i=$e?ZI($e,Qr):Qr;if(yr&&jD($i,Dr)){var Zi=e.createDiagnosticForNode(Me,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target,Ot($i),Ot(Dr));rn.add(Zi),Ci.errors=[Zi]}else{var qt=!!(li&&(bi(t,li)||xe).flags&16777216),Nt=!!(li&&(bi(i,li)||xe).flags&16777216);Dr=kg(Dr,qt),Qr=kg(Qr,qt&&Nt);var Ra=hl($i,Dr,o,Me,dr,s,Ci);Ra&&$i!==Qr&&hl(Qr,Dr,o,Me,dr,s,Ci)}if(Ci.errors){var ca=Ci.errors[Ci.errors.length-1],Sn=_f(tr)?pf(tr):void 0,ja=Sn!==void 0?bi(t,Sn):void 0,Fn=!1;if(!ja){var wn=nu(t,tr);wn&&wn.declaration&&!e.getSourceFileOfNode(wn.declaration).hasNoDefaultLib&&(Fn=!0,e.addRelatedInfo(ca,e.createDiagnosticForNode(wn.declaration,e.Diagnostics.The_expected_type_comes_from_this_index_signature)))}if(!Fn&&(ja&&e.length(ja.declarations)||t.symbol&&e.length(t.symbol.declarations))){var Tn=ja&&e.length(ja.declarations)?ja.declarations[0]:t.symbol.declarations[0];e.getSourceFileOfNode(Tn).hasNoDefaultLib||e.addRelatedInfo(ca,e.createDiagnosticForNode(Tn,e.Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,Sn&&!(tr.flags&8192)?e.unescapeLeadingUnderscores(Sn):Ot(tr),Ot(t)))}}}}}}}return h}function ew(r){var i,t,o;return kr(this,function(s){switch(s.label){case 0:if(!e.length(r.properties))return[2];i=0,t=r.properties,s.label=1;case 1:return i1,li=ec(dr,AE),Ti=ec(dr,function(ca){return!AE(ca)});if(Qr){if(li!==ui){var Ci=Wl(f0(me,0)),$i=rw(me,Ra);h=nv($i,Ci,li,o,s,u)||h}else if(!r_(Jc(i,tr),dr,o)){h=!0;var Zi=Xr(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,$e,Ot(dr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}else if(Ti!==ui){var qt=Dr[0],Nt=dE(qt,tr,Ra);Nt&&(h=nv(function(){return kr(this,function(ca){switch(ca.label){case 0:return[4,Nt];case 1:return ca.sent(),[2]}})}(),i,t,o,s,u)||h)}else if(!r_(Jc(i,tr),dr,o)){h=!0;var Zi=Xr(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,$e,Ot(dr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}return h;function Ra(){if(!z){var ca=e.getTextOfNode(r.parent.tagName),Sn=_0(Og(r)),ja=Sn===void 0?"children":e.unescapeLeadingUnderscores(Sn),Fn=Jc(t,Bu(ja)),wn=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;z=Ke(Ke({},wn),{key:"!!ALREADY FORMATTED!!",message:e.formatMessage(void 0,wn,ca,ja,Ot(Fn))})}return z}}function gE(r,i){var t,o,s,u;return kr(this,function(h){switch(h.label){case 0:if(t=e.length(r.elements),!t)return[2];o=0,h.label=1;case 1:return ome:Hl(r)>me);if(Me)return 0;r.typeParameters&&r.typeParameters!==i.typeParameters&&(i=g3(i),r=sk(r,i,void 0,h));var $e=Wc(r),tr=yv(r),dr=yv(i);(tr||dr)&&un(tr||dr,z);var Dr=i.declaration?i.declaration.kind:0,Qr=!(t&3)&&Br&&Dr!==169&&Dr!==168&&Dr!==171,li=-1,Ti=T_(r);if(Ti&&Ti!==Fi){var Ci=T_(i);if(Ci){var $i=!Qr&&h(Ti,Ci,!1)||h(Ci,Ti,o);if(!$i)return o&&s(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;li&=$i}}for(var Zi=tr||dr?Math.min($e,me):Math.max($e,me),qt=tr||dr?Zi-1:-1,Nt=0;Nt=Hl(r)&&Nt0||RS(vt)),Vn=!!(e.getObjectFlags(vt)&2048);if(gn&&!fw(vt,ht,Vn)){if(mt){var zo=Ot($r.aliasSymbol?$r:vt),us=Ot(hi.aliasSymbol?hi:ht),Bo=ot(vt,0),Io=ot(vt,1);Bo.length>0&&oa(yo(Bo[0]),ht,1,!1)||Io.length>0&&oa(yo(Io[0]),ht,1,!1)?Yt(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,zo,us):Yt(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,zo,us)}return 0}Ln(vt,ht);var Qo=vt.flags&1048576&&vt.types.length<4&&!(ht.flags&1048576)||ht.flags&1048576&&ht.types.length<4&&!(vt.flags&469499904),ls=Qo?Lt(vt,ht,mt,Ht):_t(vt,ht,mt,Ht,Ri);if(ls&&!qt&&(ht.flags&2097152&&(An||gn)||bD(ht)&&!Pd(ht)&&vt.flags&2097152&&$s(vt).flags&3670016&&!e.some(vt.types,function(gi){return!!(e.getObjectFlags(gi)&262144)}))&&(qt=!0,ls&=_t(vt,ht,mt,4,Ri),qt=!1),ls)return ls}return mt&&Mn($r,hi,vt,ht,ft),0}function Mn($r,hi,Ri,mt,ft){var Ht=!!GD($r),vt=!!GD(hi);Ri=$r.aliasSymbol||Ht?$r:Ri,mt=hi.aliasSymbol||vt?hi:mt;var ht=Ci>0;if(ht&&Ci--,Ri.flags&524288&&mt.flags&524288){var ma=z;cn(Ri,mt,!0),z!==ma&&(ht=!!z)}if(Ri.flags&524288&&mt.flags&131068)Ka(Ri,mt);else if(Ri.symbol&&Ri.flags&524288&&qe===Ri)Yt(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(e.getObjectFlags(Ri)&2048&&mt.flags&2097152){var Ca=mt.types,An=Zp(U.IntrinsicAttributes,o),gn=Zp(U.IntrinsicClassAttributes,o);if(!nn(An)&&!nn(gn)&&(e.contains(Ca,An)||e.contains(Ca,gn)))return}else z=ei(z,hi);if(!ft&&ht){$i=[Ri,mt];return}Qt(ft,Ri,mt)}function Ln($r,hi){if(!!e.tracing&&$r.flags&3145728&&hi.flags&3145728){var Ri=$r,mt=hi;if(Ri.objectFlags&mt.objectFlags&32768)return;var ft=Ri.types.length,Ht=mt.types.length;ft*Ht>1e6&&e.tracing.instant("checkTypes","traceUnionsOrIntersectionsTooLarge_DepthLimit",{sourceId:$r.id,sourceSize:ft,targetId:hi.id,targetSize:Ht,pos:o==null?void 0:o.pos,end:o==null?void 0:o.end})}}function ci($r,hi){var Ri=function(mt,ft){var Ht;ft=$s(ft);var vt=ft.flags&3145728?Zv(ft,hi):h_(ft,hi),ht=vt&&Jt(vt)||((Ht=Xo(ft,hi))===null||Ht===void 0?void 0:Ht.type)||Tr;return e.append(mt,ht)};return Pa(e.reduceLeft($r,Ri,void 0)||e.emptyArray)}function Fr($r,hi,Ri){var mt;if(!Sy(hi)||!n&&e.getObjectFlags(hi)&4096)return!1;var ft=!!(e.getObjectFlags($r)&2048);if((t===dt||t===la)&&(dy(qe,hi)||!ft&&Of(hi)))return!1;var Ht=hi,vt;hi.flags&1048576&&(Ht=bA($r,hi,oa)||IL(hi),vt=Ht.flags&1048576?Ht.types:[Ht]);for(var ht=function(Vn){if(jt(Vn,$r.symbol)&&!hE($r,Vn)){if(!Rb(Ht,Vn.escapedName,ft)){if(Ri){var zo=ec(Ht,Sy);if(!o)return{value:e.Debug.fail()};if(e.isJsxAttributes(o)||e.isJsxOpeningLikeElement(o)||e.isJsxOpeningLikeElement(o.parent)){Vn.valueDeclaration&&e.isJsxAttribute(Vn.valueDeclaration)&&e.getSourceFileOfNode(o)===e.getSourceFileOfNode(Vn.valueDeclaration.name)&&(o=Vn.valueDeclaration.name);var us=tn(Vn),Bo=ek(us,zo),Io=Bo?tn(Bo):void 0;Io?Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,us,Ot(zo),Io):Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1,us,Ot(zo))}else{var Qo=((mt=$r.symbol)===null||mt===void 0?void 0:mt.declarations)&&e.firstOrUndefined($r.symbol.declarations),Io=void 0;if(Vn.valueDeclaration&&e.findAncestor(Vn.valueDeclaration,function(La){return La===Qo})&&e.getSourceFileOfNode(Qo)===e.getSourceFileOfNode(o)){var ls=Vn.valueDeclaration;e.Debug.assertNode(ls,e.isObjectLiteralElementLike),o=ls;var gi=ls.name;e.isIdentifier(gi)&&(Io=Vb(gi,zo))}Io!==void 0?Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,tn(Vn),Ot(zo),Io):Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,tn(Vn),Ot(zo))}}return{value:!0}}if(vt&&!oa(Jt(Vn),ci(vt,Vn.escapedName),3,Ri))return Ri&<(e.Diagnostics.Types_of_property_0_are_incompatible,tn(Vn)),{value:!0}}},ma=0,Ca=uo($r);ma=vt.types.length&&Ht.length%vt.types.length===0){var Ca=oa(ma,vt.types[ht%vt.types.length],3,!1,void 0,mt);if(Ca){ft&=Ca;continue}}var An=oa(ma,hi,1,Ri,void 0,mt);if(!An)return 0;ft&=An}return ft}function Hi($r,hi,Ri,mt,ft){if($r===void 0&&($r=e.emptyArray),hi===void 0&&(hi=e.emptyArray),Ri===void 0&&(Ri=e.emptyArray),$r.length!==hi.length&&t===wa)return 0;for(var Ht=$r.length<=hi.length?$r.length:hi.length,vt=-1,ht=0;ht25)return e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","typeRelatedToDiscriminatedType_DepthLimit",{sourceId:$r.id,targetId:hi.id,numCombinations:ft}),0}for(var ma=new Array(mt.length),Ca=new e.Set,An=0;An5?Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,Ot($r),Ot(hi),e.map(Ca.slice(0,4),function(gn){return tn(gn)}).join(", "),Ca.length-4):Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,Ot($r),Ot(hi),e.map(Ca,function(gn){return tn(gn)}).join(", ")),ft&&z&&Ci++)}function Uo($r,hi,Ri,mt,ft){if(t===wa)return Rs($r,hi,mt);var Ht=-1;if(Yn(hi)){if(Pd($r)){if(!hi.target.readonly&&(um($r)||Yn($r)&&$r.target.readonly))return 0;var vt=$_($r),ht=$_(hi),ma=Yn($r)?$r.target.combinedFlags&4:4,Ca=hi.target.combinedFlags&4,An=Yn($r)?$r.target.minLength:0,gn=hi.target.minLength;if(!ma&&vt=ht-Bo)?$r.target.elementFlags[ls]:4,zt=hi.target.elementFlags[Qo];if(zt&8&&!(gi&8))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target,Qo),0;if(gi&8&&!(zt&12))return Ri&&Yt(e.Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target,ls,Qo),0;if(zt&1&&!(gi&1))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target,Qo),0;if(!(Io&&((gi&12||zt&12)&&(Io=!1),Io&&(mt==null?void 0:mt.has(""+Qo))))){var La=Yn($r)?Qo=ht-Bo?kg(Vn[ls],!!(gi&zt&2)):jh($r,us,Bo)||ui:Vn[0],fa=zo[Qo],ya=gi&8&&zt&4?Zs(fa):kg(fa,!!(zt&2)),Nn=oa(La,ya,3,Ri,void 0,ft);if(!Nn)return Ri&&(ht>1||vt>1)&&(Qo=ht-Bo||vt-us-Bo===1?lt(e.Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,ls,Qo):lt(e.Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,us,vt-Bo-1,Qo)),0;Ht&=Nn}}return Ht}if(hi.target.combinedFlags&12)return 0}var fn=(t===Or||t===ki)&&!Qp($r)&&!Jh($r)&&!Yn($r),hn=cb($r,hi,fn,!1);if(hn)return Ri&&rc($r,hi)&&Po($r,hi,hn,fn),0;if(Qp(hi))for(var sn=0,ln=Ga(uo($r),mt);sn0&&e.every(i.properties,function(t){return!!(t.flags&16777216)})}return r.flags&2097152?e.every(r.types,SE):!1}function fw(r,i,t){for(var o=0,s=uo(r);o";continue}tr+="-"+Qr.id}return tr}}function qD(r,i,t,o,s){if(o===wa&&r.id>i.id){var u=r;r=i,i=u}var h=t?":"+t:"";return Mh(r)&&Mh(i)?gw(r,i,h,s):"".concat(r.id,",").concat(i.id).concat(h)}function fy(r,i){if(e.getCheckFlags(r)&6){for(var t=0,o=r.containingType.types;t=o)for(var s=ov(r),u=0,h=0,z=0;z=h&&(u++,u>=o))return!0;h=me.id}}return!1}function ov(r){if(r.flags&524288&&!lb(r)){if(e.getObjectFlags(r)&&4&&r.node)return r.node;if(r.symbol&&!(e.getObjectFlags(r)&16&&r.symbol.flags&32))return r.symbol;if(Yn(r))return r.target}if(r.flags&262144)return r.symbol;if(r.flags&8388608){do r=r.objectType;while(r.flags&8388608);return r}return r.flags&16777216?r.root:r}function yw(r,i){return VD(r,i,av)!==0}function VD(r,i,t){if(r===i)return-1;var o=e.getDeclarationModifierFlagsFromSymbol(r)&24,s=e.getDeclarationModifierFlagsFromSymbol(i)&24;if(o!==s)return 0;if(o){if(jg(r)!==jg(i))return 0}else if((r.flags&16777216)!==(i.flags&16777216))return 0;return Zu(r)!==Zu(i)?0:t(Jt(r),Jt(i))}function hw(r,i,t){var o=Wc(r),s=Wc(i),u=Hl(r),h=Hl(i),z=Xl(r),me=Xl(i);return!!(o===s&&u===h&&z===me||t&&u<=h)}function _y(r,i,t,o,s,u){if(r===i)return-1;if(!hw(r,i,t)||e.length(r.typeParameters)!==e.length(i.typeParameters))return 0;if(i.typeParameters){for(var h=Uc(r.typeParameters,i.typeParameters),z=0;ze.length(i.typeParameters)&&(s=Rc(s,e.last(xo(r)))),r.objectFlags|=67108864,r.cachedEquivalentBaseType=s}}}function kE(r){return Ye?r===na:r===vi}function Jh(r){var i=KD(r);return!!i&&kE(i)}function Eg(r){return Yn(r)||!!bi(r,"0")}function AE(r){return sp(r)||Eg(r)}function xw(r,i){var t=da(r,""+i);if(t)return t;if(gf(r,Yn))return Ss(r,function(o){return sv(o)||Tr})}function Ew(r){return!(r.flags&240512)}function Vl(r){return!!(r.flags&109440)}function NE(r){return r.flags&2097152?e.some(r.types,Vl):!!(r.flags&109440)}function Cw(r){return r.flags&2097152&&e.find(r.types,Vl)||r}function Cg(r){return r.flags&16?!0:r.flags&1048576?r.flags&1024?!0:e.every(r.types,Vl):Vl(r)}function Kl(r){return r.flags&1024?cc(r):r.flags&402653312?Li:r.flags&256?nt:r.flags&2048?Mt:r.flags&512?Ii:r.flags&1048576?Ss(r,Kl):r}function Hp(r){return r.flags&1024&&Kp(r)?cc(r):r.flags&128&&Kp(r)?Li:r.flags&256&&Kp(r)?nt:r.flags&2048&&Kp(r)?Mt:r.flags&512&&Kp(r)?Ii:r.flags&1048576?Ss(r,Hp):r}function PE(r){return r.flags&8192?Ki:r.flags&1048576?Ss(r,PE):r}function HD(r,i){return N0(r,i)||(r=PE(Hp(r))),r}function kw(r,i,t){if(r&&Vl(r)){var o=i?t?Tv(i):i:void 0;r=HD(r,o)}return r}function XD(r,i,t,o){if(r&&Vl(r)){var s=i?Jg(t,i,o):void 0;r=HD(r,s)}return r}function Yn(r){return!!(e.getObjectFlags(r)&4&&r.target.objectFlags&8)}function lm(r){return Yn(r)&&!!(r.target.combinedFlags&8)}function IE(r){return lm(r)&&r.target.elementFlags.length===1}function sv(r){return jh(r,r.target.fixedLength)}function Aw(r){var i=sv(r);return i&&Zs(i)}function jh(r,i,t,o){t===void 0&&(t=0),o===void 0&&(o=!1);var s=$_(r)-t;if(i-1&&(es(u,u.name.escapedText,788968,void 0,u.name.escapedText,!0)||u.name.originalKeywordKind&&e.isTypeNodeKind(u.name.originalKeywordKind))){var h="arg"+u.parent.parameters.indexOf(u),z=e.declarationNameToString(u.name)+(u.dotDotDotToken?"[]":"");Ic(n,r,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,h,z);return}s=r.dotDotDotToken?n?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:n?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 203:if(s=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!n)return;break;case 317:Xr(r,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return;case 256:case 169:case 168:case 172:case 173:case 213:case 214:if(n&&!r.name){t===3?Xr(r,e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation,o):Xr(r,e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return}s=n?t===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 195:n&&Xr(r,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type);return;default:s=n?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}Ic(n,r,s,e.declarationNameToString(e.getNameOfDeclaration(r)),o)}}function Kh(r,i,t){fe(function(){n&&e.getObjectFlags(i)&65536&&(!t||!Pb(r))&&(Vh(i)||Xp(r,i,t))})}function eb(r,i,t){var o=Wc(r),s=Wc(i),u=vv(r),h=vv(i),z=h?s-1:s,me=u?z:Math.min(o,z),Me=T_(r);if(Me){var $e=T_(i);$e&&t(Me,$e)}for(var tr=0;trr.target.minLength||!i.target.hasRestElement&&(r.target.hasRestElement||i.target.fixedLength0){for(var Ti=dr,Ci=Dr;Ci=$i(Ti).indexOf(li,Ci),!(Ci>=0);){if(Ti++,Ti===r.length)return;Ci=0}Zi(Ti,Ci),Dr+=li.length}else if(Dr<$i(dr).length)Zi(dr,Dr+1);else if(dr0)for(var $t=0,Ua=it;$t1){var i=e.filter(r,lb);if(i.length){var t=Pa(i,2);return e.concatenate(e.filter(r,function(o){return!lb(o)}),[t])}}return r}function r8(r){return r.priority&416?Do(r.contraCandidates):Tw(r.contraCandidates)}function i8(r,i){var t=e8(r.candidates),o=Zw(r.typeParameter),s=!o&&r.topLevel&&(r.isFixed||!nb(yo(i),r.typeParameter)),u=o?e.sameMap(t,jc):s?e.sameMap(t,Hp):t,h=r.priority&416?Pa(u,2):Sw(u);return $c(h)}function GE(r,i){var t=r.inferences[i];if(!t.inferredType){var o=void 0,s=r.signature;if(s){var u=t.candidates?i8(t,s):void 0;if(t.contraCandidates)o=u&&!(u.flags&131072)&&e.some(t.contraCandidates,function(Me){return E_(u,Me)})?u:r8(t);else if(u)o=u;else if(r.flags&1)o=Bt;else{var h=D_(t.typeParameter);h&&(o=un(h,LI(MI(r,i),r.nonFixingMapper)))}}else o=zE(t);t.inferredType=o||fb(!!(r.flags&2));var z=Tc(t.typeParameter);if(z){var me=un(z,r.nonFixingMapper);(!o||!r.compareTypes(o,Rc(me,o)))&&(t.inferredType=o=me)}}return t.inferredType}function fb(r){return r?Oe:gr}function _b(r){for(var i=[],t=0;t=10&&o*2>=r.length?t:void 0}function Qh(r){var i=r.types;if(!(i.length<10||e.getObjectFlags(r)&32768||e.countWhere(i,function(s){return!!(s.flags&59506688)})<10)){if(r.keyPropertyName===void 0){var t=e.forEach(i,function(s){return s.flags&59506688?e.forEach(uo(s),function(u){return Vl(Jt(u))?u.escapedName:void 0}):void 0}),o=t&&a8(i,t);r.keyPropertyName=o?t:"",r.constituentMap=o}return r.keyPropertyName.length?r.keyPropertyName:void 0}}function Yh(r,i){var t,o=(t=r.constituentMap)===null||t===void 0?void 0:t.get(fu(jc(i)));return o!==gr?o:void 0}function $E(r,i){var t=Qh(r),o=t&&da(i,t);return o&&Yh(r,o)}function n8(r,i){var t=Qh(r),o=t&&e.find(i.properties,function(u){return u.symbol&&u.kind===296&&u.symbol.escapedName===t&&hy(u.initializer)}),s=o&&Oy(o.initializer);return s&&Yh(r,s)}function ZE(r,i){return zs(r,i)||QE(r,i)}function eC(r,i){if(r.arguments)for(var t=0,o=r.arguments;t=0&&Hi.parameterIndex=Hi&&Vt<_t,on,zn;if(Vt>-1){var Ga=gt.filter(function(Uo){return Uo!==void 0}),Qn=Vt=2){var o=t.parent.parent;if(o.kind===254&&e.getCombinedNodeFlags(t)&2||o.kind===164){var s=va(o);if(!(s.flags&268435456)){s.flags|=268435456;var u=Wo(o,0);if(s.flags&=-268435457,u&&u.flags&1048576&&!(o.kind===164&&n0(r))){var h=t.parent,z=up(h,u,u,void 0,i.flowNode);return z.flags&131072?ui:uf(t,z)}}}}if(e.isParameter(t)&&!t.type&&!t.initializer&&!t.dotDotDotToken){var me=t.parent;if(me.parameters.length>=2&&wD(me)){var Me=dv(me);if(Me&&Me.parameters.length===1&&H(Me)){var $e=Xd(Jt(Me.parameters[0]));if($e.flags&1048576&&gf($e,Yn)&&!n0(r)){var z=up(me,$e,$e,void 0,i.flowNode),tr=me.parameters.indexOf(t)-(e.getThisParameter(me)?1:0);return Jc(z,If(tr))}}}}}return Jt(r)}function R8(r,i){if(e.isThisInTypeQuery(r))return yy(r);var t=Dl(r);if(t===xe)return Pe;if(t===or){if(QC(r))return Xr(r,e.Diagnostics.arguments_cannot_be_referenced_in_property_initializers),Pe;var o=e.getContainingFunction(r);return Ae<2&&(o.kind===214?Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression):e.hasSyntacticModifier(o,256)&&Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)),va(o).flags|=8192,Jt(t)}r.parent&&e.isPropertyAccessExpression(r.parent)&&r.parent.expression===r||o0(t,r);var s=cu(t),u=W6(s,r);P_(u)&&mD(r,u)&&u.declarations&&El(r,u.declarations,r.escapedText);var h=s.valueDeclaration;if(h&&s.flags&32){if(h.kind===257&&e.nodeIsDecorated(h))for(var o=e.getContainingClass(r);o!==void 0;){if(o===h&&o.name!==r){va(h).flags|=16777216,va(r).flags|=33554432;break}o=e.getContainingClass(o)}else if(h.kind===226)for(var o=e.getThisContainer(r,!1);o.kind!==305;){if(o.parent===h){(e.isPropertyDeclaration(o)&&e.isStatic(o)||e.isClassStaticBlockDeclaration(o))&&(va(h).flags|=16777216,va(r).flags|=33554432);break}o=e.getThisContainer(o,!1)}}j8(r,t);var z=L8(s,r),me=e.getAssignmentTargetKind(r);if(me){if(!(s.flags&3)&&!(e.isInJSFile(r)&&s.flags&512)){var Me=s.flags&384?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_enum:s.flags&32?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_class:s.flags&1536?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace:s.flags&16?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_function:s.flags&2097152?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_import:e.Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable;return Xr(r,Me,tn(t)),Pe}if(Zu(s))return s.flags&3?Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant,tn(t)):Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(t)),Pe}var $e=s.flags&2097152;if(s.flags&3){if(me===1)return z}else if($e)h=ru(t);else return z;if(!h)return z;z=yb(z,r,i);for(var tr=e.getRootDeclaration(h).kind===164,dr=_v(h),Dr=_v(r),Qr=Dr!==dr,li=r.parent&&r.parent.parent&&e.isSpreadAssignment(r.parent)&&mb(r.parent.parent),Ti=t.flags&134217728;Dr!==dr&&(Dr.kind===213||Dr.kind===214||e.isObjectLiteralOrClassExpressionMethodOrAccessor(Dr))&&(pv(s)&&z!==So||tr&&!n0(s));)Dr=_v(Dr);var Ci=tr||$e||Qr||li||Ti||e.isBindingElement(h)||z!==nr&&z!==So&&(!Ye||(z.flags&16387)!==0||_m(r)||r.parent.kind===275)||r.parent.kind===230||h.kind===254&&h.exclamationToken||h.flags&16777216,$i=Ci?tr?I8(z,h):z:z===nr||z===So?Tr:i_(z),Zi=up(r,z,$i,Dr);if(!_C(r)&&(z===nr||z===So)){if(Zi===nr||Zi===So)return n&&(Xr(e.getNameOfDeclaration(h),e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,tn(t),Ot(Zi)),Xr(r,e.Diagnostics.Variable_0_implicitly_has_an_1_type,tn(t),Ot(Zi))),kv(Zi)}else if(!Ci&&!(ju(z)&32768)&&ju(Zi)&32768)return Xr(r,e.Diagnostics.Variable_0_is_used_before_being_assigned,tn(t)),z;return me?Kl(Zi):Zi}function B8(r,i){return!!e.findAncestor(r,function(t){return t===i?"quit":e.isFunctionLike(t)||t.parent&&e.isPropertyDeclaration(t.parent)&&!e.hasStaticModifier(t.parent)&&t.parent.initializer===t})}function J8(r,i){return e.findAncestor(r,function(t){return t===i?"quit":t===i.initializer||t===i.condition||t===i.incrementor||t===i.statement})}function hb(r){return e.findAncestor(r,function(i){return!i||e.nodeStartsNewLexicalEnvironment(i)?"quit":e.isIterationStatement(i,!1)})}function j8(r,i){if(!(Ae>=2||(i.flags&34)===0||!i.valueDeclaration||e.isSourceFile(i.valueDeclaration)||i.valueDeclaration.parent.kind===292)){var t=e.getEnclosingBlockScopeContainer(i.valueDeclaration),o=B8(r,t),s=hb(t);if(s){if(o){var u=!0;if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);if(h&&h.parent===t){var z=J8(r.parent,t);if(z){var me=va(z);me.flags|=131072;var Me=me.capturedBlockScopeBindings||(me.capturedBlockScopeBindings=[]);e.pushIfUnique(Me,i),z===t.initializer&&(u=!1)}}}u&&(va(s).flags|=65536)}if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);h&&h.parent===t&&z8(r,t)&&(va(i.valueDeclaration).flags|=4194304)}va(i.valueDeclaration).flags|=524288}o&&(va(i.valueDeclaration).flags|=262144)}}function U8(r,i){var t=va(r);return!!t&&e.contains(t.capturedBlockScopeBindings,Et(i))}function z8(r,i){for(var t=r;t.parent.kind===212;)t=t.parent;var o=!1;if(e.isAssignmentTarget(t))o=!0;else if(t.parent.kind===219||t.parent.kind===220){var s=t.parent;o=s.operator===45||s.operator===46}return o?!!e.findAncestor(t,function(u){return u===i?"quit":u===i.statement}):!1}function Db(r,i){if(va(r).flags|=2,i.kind===167||i.kind===171){var t=i.parent;va(t).flags|=4}else va(i).flags|=4}function vC(r){return e.isSuperCall(r)?r:e.isFunctionLike(r)?void 0:e.forEachChild(r,vC)}function yC(r){var i=Et(r),t=go(i),o=Bl(t);return o===ct}function hC(r,i,t){var o=i.parent,s=e.getClassExtendsHeritageElement(o);s&&!yC(o)&&r.flowNode&&!a0(r.flowNode,!1)&&Xr(r,t)}function W8(r,i){e.isPropertyDeclaration(i)&&e.hasStaticModifier(i)&&i.initializer&&e.textRangeContainsPositionInclusive(i.initializer,r.pos)&&e.length(i.parent.decorators)&&Xr(r,e.Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class)}function yy(r){var i=_m(r),t=e.getThisContainer(r,!0),o=!1;switch(t.kind===171&&hC(r,t,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),t.kind===214&&(t=e.getThisContainer(t,!1),o=!0),W8(r,t),t.kind){case 261:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 260:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 171:DC(r,t)&&Xr(r,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 162:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);break}!i&&o&&Ae<2&&Db(r,t);var s=bb(r,!0,t);if(lr){var u=Jt(pe);if(s===u&&o)Xr(r,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!s){var h=Xr(r,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(t)){var z=bb(t);z&&z!==u&&e.addRelatedInfo(h,e.createDiagnosticForNode(t,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return s||Oe}function bb(r,i,t){i===void 0&&(i=!0),t===void 0&&(t=e.getThisContainer(r,!1));var o=e.isInJSFile(r);if(e.isFunctionLike(t)&&(!xb(r)||e.getThisParameter(t))){var s=ni(t)||o&&K8(t);if(!s){var u=V8(t);if(o&&u){var h=yn(u).symbol;h&&h.members&&h.flags&16&&(s=go(h).thisType)}else Sl(t)&&(s=go(so(t.symbol)).thisType);s||(s=SC(t))}if(s)return up(r,s)}if(e.isClassLike(t.parent)){var z=Et(t.parent),me=e.isStatic(t)?Jt(z):go(z).thisType;return up(r,me)}if(e.isSourceFile(t))if(t.commonJsModuleIndicator){var Me=Et(t);return Me&&Jt(Me)}else{if(t.externalModuleIndicator)return Tr;if(i)return Jt(pe)}}function q8(r){var i=e.getThisContainer(r,!1);if(e.isFunctionLike(i)){var t=yl(i);if(t.thisParameter)return r0(t.thisParameter)}if(e.isClassLike(i.parent)){var o=Et(i.parent);return e.isStatic(i)?Jt(o):go(o).thisType}}function V8(r){if(r.kind===213&&e.isBinaryExpression(r.parent)&&e.getAssignmentDeclarationKind(r.parent)===3)return r.parent.left.expression.expression;if(r.kind===169&&r.parent.kind===205&&e.isBinaryExpression(r.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent)===6)return r.parent.parent.left.expression;if(r.kind===213&&r.parent.kind===296&&r.parent.parent.kind===205&&e.isBinaryExpression(r.parent.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===6)return r.parent.parent.parent.left.expression;if(r.kind===213&&e.isPropertyAssignment(r.parent)&&e.isIdentifier(r.parent.name)&&(r.parent.name.escapedText==="value"||r.parent.name.escapedText==="get"||r.parent.name.escapedText==="set")&&e.isObjectLiteralExpression(r.parent.parent)&&e.isCallExpression(r.parent.parent.parent)&&r.parent.parent.parent.arguments[2]===r.parent.parent&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===9)return r.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(r)&&e.isIdentifier(r.name)&&(r.name.escapedText==="value"||r.name.escapedText==="get"||r.name.escapedText==="set")&&e.isObjectLiteralExpression(r.parent)&&e.isCallExpression(r.parent.parent)&&r.parent.parent.arguments[2]===r.parent&&e.getAssignmentDeclarationKind(r.parent.parent)===9)return r.parent.parent.arguments[0].expression}function K8(r){var i=e.getJSDocType(r);if(i&&i.kind===317){var t=i;if(t.parameters.length>0&&t.parameters[0].name&&t.parameters[0].name.escapedText==="this")return Va(t.parameters[0].type)}var o=e.getJSDocThisTag(r);if(o&&o.typeExpression)return Va(o.typeExpression)}function DC(r,i){return!!e.findAncestor(r,function(t){return e.isFunctionLikeDeclaration(t)?"quit":t.kind===164&&t.parent===i})}function Sb(r){var i=r.parent.kind===208&&r.parent.expression===r,t=e.getSuperContainer(r,!0),o=t,s=!1;if(!i)for(;o&&o.kind===214;)o=e.getSuperContainer(o,!0),s=Ae<2;var u=tr(o),h=0;if(!u){var z=e.findAncestor(r,function(dr){return dr===o?"quit":dr.kind===162});return z&&z.kind===162?Xr(r,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):i?Xr(r,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===205)?Xr(r,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions):Xr(r,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class),Pe}if(!i&&t.kind===171&&hC(r,o,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),e.isStatic(o)||i?(h=512,!i&&Ae>=2&&Ae<=8&&(e.isPropertyDeclaration(o)||e.isClassStaticBlockDeclaration(o))&&e.forEachEnclosingBlockScopeContainer(r.parent,function(dr){(!e.isSourceFile(dr)||e.isExternalOrCommonJsModule(dr))&&(va(dr).flags|=134217728)})):h=256,va(r).flags|=h,o.kind===169&&e.hasSyntacticModifier(o,256)&&(e.isSuperProperty(r.parent)&&e.isAssignmentTarget(r.parent)?va(o).flags|=4096:va(o).flags|=2048),s&&Db(r.parent,o),o.parent.kind===205)return Ae<2?(Xr(r,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),Pe):Oe;var me=o.parent;if(!e.getClassExtendsHeritageElement(me))return Xr(r,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),Pe;var Me=go(Et(me)),$e=Me&&Qc(Me)[0];if(!$e)return Pe;if(o.kind===171&&DC(r,o))return Xr(r,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),Pe;return h===512?Bl(Me):Rc($e,Me.thisType);function tr(dr){return dr?i?dr.kind===171:e.isClassLike(dr.parent)||dr.parent.kind===205?e.isStatic(dr)?dr.kind===169||dr.kind===168||dr.kind===172||dr.kind===173||dr.kind===167||dr.kind===170:dr.kind===169||dr.kind===168||dr.kind===172||dr.kind===173||dr.kind===167||dr.kind===166||dr.kind===171:!1:!1}}function G8(r){return(r.kind===169||r.kind===172||r.kind===173)&&r.parent.kind===205?r.parent:r.kind===213&&r.parent.kind===296?r.parent.parent:void 0}function bC(r){return e.getObjectFlags(r)&4&&r.target===qn?xo(r)[0]:void 0}function H8(r){return Ss(r,function(i){return i.flags&2097152?e.forEach(i.types,bC):bC(i)})}function SC(r){if(r.kind!==214){if(wD(r)){var i=dv(r);if(i){var t=i.thisParameter;if(t)return Jt(t)}}var o=e.isInJSFile(r);if(lr||o){var s=G8(r);if(s){for(var u=$p(s),h=s,z=u;z;){var me=H8(z);if(me)return un(me,ab(wg(s)));if(h.parent.kind!==296)break;h=h.parent.parent,z=$p(h)}return $c(u?C_(u):Os(s))}var Me=e.walkUpParenthesizedExpressions(r.parent);if(Me.kind===221&&Me.operatorToken.kind===63){var $e=Me.left;if(e.isAccessExpression($e)){var tr=$e.expression;if(o&&e.isIdentifier(tr)){var dr=e.getSourceFileOfNode(Me);if(dr.commonJsModuleIndicator&&Dl(tr)===dr.symbol)return}return $c(Os(tr))}}}}}function TC(r){var i=r.parent;if(!!wD(i)){var t=e.getImmediatelyInvokedFunctionExpression(i);if(t&&t.arguments){var o=Zb(t),s=i.parameters.indexOf(r);if(r.dotDotDotToken)return Yb(o,s,o.length,Oe,void 0,0);var u=va(t),h=u.resolvedSignature;u.resolvedSignature=En;var z=s=o?Jc(Jt(t.parameters[o]),If(i-o),256):$u(t,i)}function r5(r,i){if(r.parent.kind===210)return EC(r.parent,i)}function i5(r,i){var t=r.parent,o=t.left,s=t.operatorToken,u=t.right;switch(s.kind){case 63:case 76:case 75:case 77:return r===u?a5(t):void 0;case 56:case 60:var h=ou(t,i);return r===u&&(h&&h.pattern||!h&&!e.isDefaultedExpandoInitializer(t))?Gs(o):h;case 55:case 27:return r===u?ou(t,i):void 0;default:return}}function t5(r){if(r.symbol)return r.symbol;if(e.isIdentifier(r))return Dl(r);if(e.isPropertyAccessExpression(r)){var i=Gs(r.expression);return e.isPrivateIdentifier(r.name)?t(i,r.name):bi(i,r.name.escapedText)}return;function t(o,s){var u=g0(s.escapedText,s);return u&&Ub(o,u)}}function a5(r){var i,t,o=e.getAssignmentDeclarationKind(r);switch(o){case 0:case 4:var s=t5(r.left),u=s&&s.valueDeclaration;if(u&&(e.isPropertyDeclaration(u)||e.isPropertySignature(u))){var h=e.getEffectiveTypeAnnotationNode(u);return h&&un(Va(h),Aa(s).mapper)||u.initializer&&Gs(r.left)}return o===0?Gs(r.left):CC(r);case 5:if(s0(r,o))return CC(r);if(r.left.symbol){var z=r.left.symbol.valueDeclaration;if(!z)return;var me=e.cast(r.left,e.isAccessExpression),h=e.getEffectiveTypeAnnotationNode(z);if(h)return Va(h);if(e.isIdentifier(me.expression)){var Me=me.expression,$e=es(Me,Me.escapedText,111551,void 0,Me.escapedText,!0);if($e){var tr=$e.valueDeclaration&&e.getEffectiveTypeAnnotationNode($e.valueDeclaration);if(tr){var dr=e.getElementOrPropertyAccessName(me);if(dr!==void 0)return Md(Va(tr),dr)}return}}return e.isInJSFile(z)?void 0:Gs(r.left)}else return Gs(r.left);case 1:case 6:case 3:var Dr=(i=r.left.symbol)===null||i===void 0?void 0:i.valueDeclaration;case 2:Dr||(Dr=(t=r.symbol)===null||t===void 0?void 0:t.valueDeclaration);var Qr=Dr&&e.getEffectiveTypeAnnotationNode(Dr);return Qr?Va(Qr):void 0;case 7:case 8:case 9:return e.Debug.fail("Does not apply");default:return e.Debug.assertNever(o)}}function s0(r,i){if(i===void 0&&(i=e.getAssignmentDeclarationKind(r)),i===4)return!0;if(!e.isInJSFile(r)||i!==5||!e.isIdentifier(r.left.expression))return!1;var t=r.left.expression.escapedText,o=es(r.left,t,111551,void 0,void 0,!0,!0);return e.isThisInitializedDeclaration(o==null?void 0:o.valueDeclaration)}function CC(r){if(!r.symbol)return Gs(r.left);if(r.symbol.valueDeclaration){var i=e.getEffectiveTypeAnnotationNode(r.symbol.valueDeclaration);if(i){var t=Va(i);if(t)return t}}var o=e.cast(r.left,e.isAccessExpression);if(!!e.isObjectLiteralMethod(e.getThisContainer(o.expression,!1))){var s=yy(o.expression),u=e.getElementOrPropertyAccessName(o);return u!==void 0&&Md(s,u)||void 0}}function n5(r){return!!(e.getCheckFlags(r)&262144&&!r.type&&v(r,0)>=0)}function Md(r,i,t){return Ss(r,function(o){var s;if(Bc(o)&&!o.declaration.nameType){var u=Mu(o),h=uc(u)||u,z=t||Bu(e.unescapeLeadingUnderscores(i));if(ao(z,h))return xh(o,z)}else if(o.flags&3670016){var me=bi(o,i);if(me)return n5(me)?void 0:Jt(me);if(Yn(o)){var Me=sv(o);if(Me&&e.isNumericLiteralName(i)&&+i>=0)return Me}return(s=mn(To(o),t||Bu(e.unescapeLeadingUnderscores(i))))===null||s===void 0?void 0:s.type}},!0)}function kC(r,i){if(e.Debug.assert(e.isObjectLiteralMethod(r)),!(r.flags&33554432))return kb(r,i)}function kb(r,i){var t=r.parent,o=e.isPropertyAssignment(r)&&Tb(r);if(o)return o;var s=$p(t,i);if(s){if(Td(r)){var u=Et(r);return Md(s,u.escapedName,Aa(u).nameType)}if(r.name){var h=Z_(r.name);return Ss(s,function(z){var me;return(me=mn(To(z),h))===null||me===void 0?void 0:me.type},!0)}}}function Ab(r,i){return r&&(Md(r,""+i)||Ss(r,function(t){return xS(1,t,Tr,void 0,!1)},!0))}function o5(r,i){var t=r.parent;return r===t.whenTrue||r===t.whenFalse?ou(t,i):void 0}function s5(r,i){var t=$p(r.openingElement.tagName),o=_0(Og(r));if(!!(t&&!ta(t)&&o&&o!=="")){var s=e.getSemanticJsxChildren(r.children),u=s.indexOf(i),h=Md(t,o);return h&&(s.length===1?h:Ss(h,function(z){return sp(z)?Jc(z,If(u)):z},!0))}}function c5(r){var i=r.parent;return e.isJsxAttributeLike(i)?ou(r):e.isJsxElement(i)?s5(i,r):void 0}function AC(r){if(e.isJsxAttribute(r)){var i=$p(r.parent);return!i||ta(i)?void 0:Md(i,r.name.escapedText)}else return ou(r.parent)}function hy(r){switch(r.kind){case 10:case 8:case 9:case 14:case 110:case 95:case 104:case 79:case 153:return!0;case 206:case 212:return hy(r.expression);case 288:return!r.expression||hy(r.expression)}return!1}function u5(r,i){return n8(i,r)||UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===296&&hy(t.initializer)&&lv(i,t.symbol.escapedName)}),function(t){return[function(){return Oy(t.initializer)},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function l5(r,i){return UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===285&&lv(i,t.symbol.escapedName)&&(!t.initializer||hy(t.initializer))}),function(t){return[t.initializer?function(){return Oy(t.initializer)}:function(){return Dt},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function $p(r,i){var t=e.isObjectLiteralMethod(r)?kC(r,i):ou(r,i),o=c0(t,r,i);if(o&&!(i&&i&2&&o.flags&8650752)){var s=Ss(o,$s,!0);return s.flags&1048576&&e.isObjectLiteralExpression(r)?u5(r,s):s.flags&1048576&&e.isJsxAttributes(r)?l5(r,s):s}}function c0(r,i,t){if(r&&fs(r,465829888)){var o=wg(i);if(o&&e.some(o.inferences,tg)){if(t&&t&1)return u0(r,o.nonFixingMapper);if(o.returnMapper){var s=u0(r,o.returnMapper);return s.flags&1048576&&$f(s.types,ut)&&$f(s.types,Rt)?ec(s,function(u){return u!==ut&&u!==Rt}):s}}}return r}function u0(r,i){return r.flags&465829888?un(r,i):r.flags&1048576?Pa(e.map(r.types,function(t){return u0(t,i)}),0):r.flags&2097152?Do(e.map(r.types,function(t){return u0(t,i)})):r}function ou(r,i){if(r.flags&33554432)return;if(r.contextualType)return r.contextualType;var t=r.parent;switch(t.kind){case 254:case 164:case 167:case 166:case 203:return Y8(r,i);case 214:case 247:return $8(r);case 224:return e5(t);case 218:return Z8(t,i);case 208:case 209:return EC(t,r);case 211:case 229:return e.isConstTypeReference(t.type)?h(t):Va(t.type);case 221:return i5(r,i);case 296:case 297:return kb(t,i);case 298:return ou(t.parent,i);case 204:{var o=t,s=$p(o,i);return Ab(s,e.indexOfNode(o.elements,r))}case 222:return o5(r,i);case 233:return e.Debug.assert(t.parent.kind===223),r5(t.parent,r);case 212:{var u=e.isInJSFile(t)?e.getJSDocTypeTag(t):void 0;return u?e.isJSDocTypeTag(u)&&e.isConstTypeReference(u.typeExpression.type)?h(t):Va(u.typeExpression.type):ou(t,i)}case 230:return ou(t,i);case 271:return Rl(t);case 288:return c5(t);case 285:case 287:return AC(t);case 280:case 279:return f5(t,i)}return;function h(z){return ou(z)}}function wg(r){var i=e.findAncestor(r,function(t){return!!t.inferenceContext});return i&&i.inferenceContext}function f5(r,i){return e.isJsxOpeningElement(r)&&r.parent.contextualType&&i!==4?r.parent.contextualType:Cb(r,0)}function l0(r,i){return lk(i)!==0?_5(r,i):g5(r,i)}function _5(r,i){var t=nS(r,gr);t=NC(i,Og(i),t);var o=Zp(U.IntrinsicAttributes,i);return nn(o)||(t=Zg(o,t)),t}function p5(r,i){if(r.compositeSignatures){for(var t=[],o=0,s=r.compositeSignatures;o=2){var z=zp([u,t],h,2,e.isInJSFile(r));return am(o,z)}}if(e.length(s.typeParameters)>=2){var z=zp([u,t],s.typeParameters,2,e.isInJSFile(r));return Yf(s,z)}}return t}function g5(r,i){var t=Og(i),o=M5(t),s=o===void 0?nS(r,gr):o===""?yo(r):p5(r,o);if(!s)return!!o&&!!e.length(i.attributes.properties)&&Xr(i,e.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,e.unescapeLeadingUnderscores(o)),gr;if(s=NC(i,t,s),ta(s))return s;var u=s,h=Zp(U.IntrinsicClassAttributes,i);if(!nn(h)){var z=Af(h.symbol),me=yo(r);u=Zg(z?Yf(h,zp([me],z,Ul(z),e.isInJSFile(i))):h,u)}var Me=Zp(U.IntrinsicAttributes,i);return nn(Me)||(u=Zg(Me,u)),u}function m5(r){return e.getStrictOptionValue(ye,"noImplicitAny")?e.reduceLeft(r,function(i,t){return i===t||!i?i:ah(i.typeParameters,t.typeParameters)?h5(i,t):void 0}):void 0}function v5(r,i,t){if(!r||!i)return r||i;var o=Pa([Jt(r),un(Jt(i),t)]);return eg(r,o)}function y5(r,i,t){for(var o=Wc(r),s=Wc(i),u=o>=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||"arg".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,"args");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function h5(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=y5(r,i,o),h=v5(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=2097152,me.compositeSignatures=e.concatenate(r.compositeKind===2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind===2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function Nb(r,i){var t=ot(r,0),o=e.filter(t,function(s){return!D5(s,i)});return o.length===1?o[0]:m5(o)}function D5(r,i){for(var t=0;t0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1,$i=!1);var Tn=bu(yn(ja.expression));if(Dy(Tn)){var cn=TD(Tn,Me);if(o&&FC(cn,o,ja),Ra=u.length,nn(h))continue;h=Vp(h,cn,r.symbol,Qr,Me)}else Xr(ja,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),h=Pe;continue}else e.Debug.assert(ja.kind===172||ja.kind===173),xm(ja);wn&&!(wn.flags&8576)?ao(wn,Vi)&&(ao(wn,nt)?Ci=!0:ao(wn,Ki)?$i=!0:Ti=!0,t&&(li=!0)):s.set(Fn.escapedName,Fn),u.push(Fn)}if(me&&r.parent.kind!==298)for(var Un=0,oa=uo(z);Un0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1),Ss(h,function(Ln){return Ln===Ba?Mn():Ln});return Mn();function Mn(){var Ln=[];Ti&&Ln.push(Ib(r,Ra,u,Li)),Ci&&Ln.push(Ib(r,Ra,u,nt)),$i&&Ln.push(Ib(r,Ra,u,Ki));var ci=rs(r.symbol,s,e.emptyArray,e.emptyArray,Ln);return ci.objectFlags|=Qr|128|131072,Dr&&(ci.objectFlags|=4096),li&&(ci.objectFlags|=512),t&&(ci.pattern=r),ci}}function Dy(r){var i=OE(Ss(r,Hd));return!!(i.flags&126615553||i.flags&3145728&&e.every(i.types,Dy))}function k5(r){Lb(r)}function A5(r,i){return xm(r),by(r)||Oe}function N5(r){Lb(r.openingElement),dm(r.closingElement.tagName)?Fb(r.closingElement):yn(r.closingElement.tagName),f0(r)}function P5(r,i){return xm(r),by(r)||Oe}function I5(r){Lb(r.openingFragment);var i=e.getSourceFileOfNode(r);return e.getJSXTransformEnabled(ye)&&(ye.jsxFactory||i.pragmas.has("jsx"))&&!ye.jsxFragmentFactory&&!i.pragmas.has("jsxfrag")&&Xr(r,ye.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),f0(r),by(r)||Oe}function Ob(r){return e.stringContains(r,"-")}function dm(r){return r.kind===79&&e.isIntrinsicJsxName(r.escapedText)}function OC(r,i){return r.initializer?Dm(r.initializer,i):Dt}function w5(r,i){for(var t=r.attributes,o=Ye?e.createSymbolTable():void 0,s=e.createSymbolTable(),u=pn,h=!1,z,me=!1,Me=2048,$e=_0(Og(r)),tr=0,dr=t.properties;tr0&&(u=Vp(u,ca(),t.symbol,Me,!1),s=e.createSymbolTable());var li=bu(Os(Dr.expression,i));ta(li)&&(h=!0),Dy(li)?(u=Vp(u,li,t.symbol,Me,!1),o&&FC(li,o,Dr)):(Xr(Dr.expression,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),z=z?Do([z,li]):li)}}h||s.size>0&&(u=Vp(u,ca(),t.symbol,Me,!1));var Ci=r.parent.kind===278?r.parent:void 0;if(Ci&&Ci.openingElement===r&&Ci.children.length>0){var $i=f0(Ci,i);if(!h&&$e&&$e!==""){me&&Xr(t,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores($e));var Zi=$p(r.attributes),qt=Zi&&Md(Zi,$e),Nt=oo(4,$e);Nt.type=$i.length===1?$i[0]:qt&&rg(qt,Eg)?Wl($i):Zs(Pa($i)),Nt.valueDeclaration=e.factory.createPropertySignature(void 0,e.unescapeLeadingUnderscores($e),void 0,void 0),e.setParent(Nt.valueDeclaration,t),Nt.valueDeclaration.symbol=Nt;var Ra=e.createSymbolTable();Ra.set($e,Nt),u=Vp(u,rs(t.symbol,Ra,e.emptyArray,e.emptyArray,e.emptyArray),t.symbol,Me,!1)}}if(h)return Oe;if(z&&u!==pn)return Do([z,u]);return z||(u===pn?ca():u);function ca(){Me|=ur;var Sn=rs(t.symbol,s,e.emptyArray,e.emptyArray,e.emptyArray);return Sn.objectFlags|=Me|128|131072,Sn}}function f0(r,i){for(var t=[],o=0,s=r.children;o1&&t.declarations&&Xr(t.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(r))}}function F5(r){return r&&qs(r.exports,U.LibraryManagedAttributes,788968)}function M5(r){return MC(U.ElementAttributesPropertyNameContainer,r)}function _0(r){return MC(U.ElementChildrenAttributeNameContainer,r)}function LC(r,i){if(r.flags&4)return[En];if(r.flags&128){var t=RC(r,i);if(t){var o=S0(i,t);return[o]}else return Xr(i,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,"JSX."+U.IntrinsicElements),e.emptyArray}var s=$s(r),u=ot(s,1);return u.length===0&&(u=ot(s,0)),u.length===0&&s.flags&1048576&&(u=zv(e.map(s.types,function(h){return LC(h,i)}))),u}function RC(r,i){var t=Zp(U.IntrinsicElements,i);if(!nn(t)){var o=r.value,s=bi(t,e.escapeLeadingUnderscores(o));if(s)return Jt(s);var u=cs(t,Li);return u||void 0}return Oe}function L5(r,i,t){if(r===1){var o=jC(t);o&&hl(i,o,dt,t.tagName,e.Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element,h)}else if(r===0){var s=JC(t);s&&hl(i,s,dt,t.tagName,e.Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element,h)}else{var o=jC(t),s=JC(t);if(!o||!s)return;var u=Pa([o,s]);hl(i,u,dt,t.tagName,e.Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element,h)}function h(){var z=e.getTextOfNode(t.tagName);return e.chainDiagnosticMessages(void 0,e.Diagnostics._0_cannot_be_used_as_a_JSX_component,z)}}function BC(r){e.Debug.assert(dm(r.tagName));var i=va(r);if(!i.resolvedJsxElementAttributesType){var t=Fb(r);return i.jsxFlags&1?i.resolvedJsxElementAttributesType=Jt(t)||Pe:i.jsxFlags&2?i.resolvedJsxElementAttributesType=cs(Zp(U.IntrinsicElements,r),Li)||Pe:i.resolvedJsxElementAttributesType=Pe}return i.resolvedJsxElementAttributesType}function JC(r){var i=Zp(U.ElementClass,r);if(!nn(i))return i}function by(r){return Zp(U.Element,r)}function jC(r){var i=by(r);if(i)return Pa([i,Wi])}function R5(r){var i=Zp(U.IntrinsicElements,r);return i?uo(i):e.emptyArray}function B5(r){(ye.jsx||0)===0&&Xr(r,e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided),by(r)===void 0&&n&&Xr(r,e.Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist)}function Lb(r){var i=e.isJsxOpeningLikeElement(r);if(i&&rL(r),B5(r),!Mb(r)){var t=rn&&ye.jsx===2?e.Diagnostics.Cannot_find_name_0:void 0,o=po(r),s=i?r.tagName:r,u=void 0;if(e.isJsxOpeningFragment(r)&&o==="null"||(u=es(s,o,111551,t,o,!0)),u&&(u.isReferenced=67108863,u.flags&2097152&&!vu(u)&&As(u)),e.isJsxOpeningFragment(r)){var h=e.getSourceFileOfNode(r),z=Gn(h);z&&es(s,z,111551,t,z,!0)}}if(i){var me=r,Me=Mg(me);x0(Me,r),L5(lk(me),yo(Me),me)}}function Rb(r,i,t){if(r.flags&524288){if(h_(r,i)||Xo(r,i)||pg(i)&&ss(r,Li)||t&&Ob(i))return!0}else if(r.flags&3145728&&Sy(r))for(var o=0,s=r.types;o=1&&ao(t,$u(me,0))}return!1}var s=e.isAssignmentTarget(i)?"set":"get";if(!!o(s)){var u=e.tryGetPropertyAccessOrIdentifierToString(i.expression);return u===void 0?u=s:u+="."+s,u}}function t7(r,i){var t=i.types.filter(function(o){return!!(o.flags&128)});return e.getSpellingSuggestion(r.value,t,function(o){return o.value})}function Ty(r,i,t){return e.getSpellingSuggestion(r,i,o);function o(s){var u=e.symbolName(s);if(!e.startsWith(u,'"')){if(s.flags&t)return u;if(s.flags&2097152){var h=d_(s);if(h&&h.flags&t)return u}}}}function xy(r,i,t){var o=r&&r.flags&106500&&r.valueDeclaration;if(!!o){var s=e.hasEffectiveModifier(o,8),u=r.valueDeclaration&&e.isNamedDeclaration(r.valueDeclaration)&&e.isPrivateIdentifier(r.valueDeclaration.name);if(!(!s&&!u)&&!(i&&e.isWriteOnlyAccess(i)&&!(r.flags&65536))){if(t){var h=e.findAncestor(i,e.isFunctionLikeDeclaration);if(h&&h.symbol===r)return}(e.getCheckFlags(r)&1?Aa(r).target:r).isReferenced=67108863}}}function rk(r,i){return r.kind===108||!!i&&e.isEntityNameExpression(r)&&i===Dl(e.getFirstIdentifier(r))}function a7(r,i){switch(r.kind){case 206:return Gb(r,r.expression.kind===106,i,$c(yn(r.expression)));case 161:return Gb(r,!1,i,$c(yn(r.left)));case 200:return Gb(r,!1,i,Va(r))}}function ik(r,i,t){return Hb(r,r.kind===206&&r.expression.kind===106,!1,i,t)}function Gb(r,i,t,o){if(ta(o))return!0;var s=bi(o,t);return!!s&&Hb(r,i,!1,o,s)}function Hb(r,i,t,o,s){if(ta(o))return!0;if(s.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(s.valueDeclaration)){var u=e.getContainingClass(s.valueDeclaration);return!e.isOptionalChain(r)&&!!e.findAncestor(r,function(h){return h===u})}return UC(r,i,t,o,s)}function n7(r){var i=r.initializer;if(i.kind===255){var t=i.declarations[0];if(t&&!e.isBindingPattern(t.name))return Et(t)}else if(i.kind===79)return Dl(i)}function o7(r){return Hn(r).length===1&&!!ss(r,nt)}function s7(r){var i=e.skipParentheses(r);if(i.kind===79){var t=Dl(i);if(t.flags&3)for(var o=r,s=r.parent;s;){if(s.kind===243&&o===s.statement&&n7(s)===t&&o7(Gs(s.expression)))return!0;o=s,s=s.parent}}return!1}function c7(r,i){return r.flags&32?u7(r,i):tk(r,gm(r.expression),i)}function u7(r,i){var t=yn(r.expression),o=cv(t,r.expression);return zh(tk(r,bl(o,r.expression),i),r,o!==t)}function tk(r,i,t){var o=e.getAssignmentTargetKind(r)!==0||GC(r)?$c(i):i,s=r.argumentExpression,u=yn(s);if(nn(o)||o===Bt)return o;if(uS(o)&&!e.isStringLiteralLike(s))return Xr(s,e.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal),Pe;var h=s7(s)?nt:u,z=e.isAssignmentTarget(r)?4|(Ad(o)&&!e.isThisTypeParameter(o)?2:0):32,me=ep(o,h,z,r)||Pe;return o6(XC(r,va(r).resolvedSymbol,me,s,t),r)}function ak(r){return e.isCallOrNewExpression(r)||e.isTaggedTemplateExpression(r)||e.isJsxOpeningLikeElement(r)}function Fg(r){return ak(r)&&e.forEach(r.typeArguments,io),r.kind===210?yn(r.template):e.isJsxOpeningLikeElement(r)?yn(r.attributes):r.kind!==165&&e.forEach(r.arguments,function(i){yn(i)}),En}function Gl(r){return Fg(r),Wn}function l7(r,i,t){var o,s,u=0,h,z=-1,me;e.Debug.assert(!i.length);for(var Me=0,$e=r;Me<$e.length;Me++){var tr=$e[Me],dr=tr.declaration&&Et(tr.declaration),Dr=tr.declaration&&tr.declaration.parent;!s||dr===s?o&&Dr===o?h=h+1:(o=Dr,h=u):(h=u=i.length,o=Dr),s=dr,I(tr)?(z++,me=z,u++):me=h,i.splice(me,0,t?w1(tr,t):tr)}}function y0(r){return!!r&&(r.kind===225||r.kind===232&&r.isSpread)}function h0(r){return e.findIndex(r,y0)}function nk(r){return!!(r.flags&16384)}function f7(r){return!!(r.flags&49155)}function D0(r,i,t,o){o===void 0&&(o=!1);var s,u=!1,h=Wc(t),z=Hl(t);if(r.kind===210)if(s=i.length,r.template.kind===223){var me=e.last(r.template.templateSpans);u=e.nodeIsMissing(me.literal)||!!me.literal.isUnterminated}else{var Me=r.template;e.Debug.assert(Me.kind===14),u=!!Me.isUnterminated}else if(r.kind===165)s=_k(r,t);else if(e.isJsxOpeningLikeElement(r)){if(u=r.attributes.end===r.end,u)return!0;s=z===0?i.length:1,h=i.length===0?h:1,z=Math.min(z,1)}else if(r.arguments){s=o?i.length+1:i.length,u=r.arguments.end===r.end;var $e=h0(i);if($e>=0)return $e>=Hl(t)&&(Xl(t)||$eh)return!1;if(u||s>=z)return!0;for(var tr=s;tr=o&&i.length<=t}function ig(r){return gv(r,0,!1)}function ok(r){return gv(r,0,!1)||gv(r,1,!1)}function gv(r,i,t){if(r.flags&524288){var o=Ru(r);if(t||o.properties.length===0&&o.indexInfos.length===0){if(i===0&&o.callSignatures.length===1&&o.constructSignatures.length===0)return o.callSignatures[0];if(i===1&&o.constructSignatures.length===1&&o.callSignatures.length===0)return o.constructSignatures[0]}}}function sk(r,i,t,o){var s=uv(r.typeParameters,r,0,o),u=vv(i),h=t&&(u&&u.flags&262144?t.nonFixingMapper:t.mapper),z=h?Tg(i,h):i;return eb(z,r,function(me,Me){df(s.inferences,me,Me)}),t||rb(i,r,function(me,Me){df(s.inferences,me,Me,128)}),Xm(r,_b(s),e.isInJSFile(i.declaration))}function _7(r,i,t,o){var s=l0(i,r),u=Rg(r.attributes,s,o,t);return df(o.inferences,u,s),_b(o)}function ck(r){if(!r)return Fi;var i=yn(r);return e.isOptionalChainRoot(r.parent)?C_(i):e.isOptionalChain(r.parent)?YD(i):i}function Qb(r,i,t,o,s){if(e.isJsxOpeningLikeElement(r))return _7(r,i,o,s);if(r.kind!==165){var u=ou(r,e.every(i.typeParameters,function(Sn){return!!D_(Sn)})?8:0);if(u){var h=yo(i);if(Id(h)){var z=wg(r),me=ab(Jw(z,1)),Me=un(u,me),$e=ig(Me),tr=$e&&$e.typeParameters?im(eD($e,$e.typeParameters)):Me;df(s.inferences,tr,h,128);var dr=uv(i.typeParameters,i,s.flags),Dr=un(u,z&&z.returnMapper);df(dr.inferences,Dr,h),s.returnMapper=e.some(dr.inferences,tg)?ab(Uw(dr)):void 0}}}var Qr=yv(i),li=Qr?Math.min(Wc(i)-1,t.length):t.length;if(Qr&&Qr.flags&262144){var Ti=e.find(s.inferences,function(Sn){return Sn.typeParameter===Qr});Ti&&(Ti.impliedArity=e.findIndex(t,y0,li)<0?t.length-li:void 0)}var Ci=T_(i);if(Ci&&Id(Ci)){var $i=fk(r);df(s.inferences,ck($i),Ci)}for(var Zi=0;Zi=t-1){var h=r[t-1];if(y0(h))return uk(h.kind===232?h.type:Rg(h.expression,o,s,u))}for(var z=[],me=[],Me=[],$e=i;$e$i&&($i=wn)}}if(!Ci)return!0;for(var Tn=1/0,Eo=0,lt=dr;Eo0||e.isJsxOpeningElement(r)&&r.parent.children.length>0?[r.attributes]:e.emptyArray;var o=r.arguments||e.emptyArray,s=h0(o);if(s>=0){for(var u=o.slice(0,s),h=function(me){var Me=o[me],$e=Me.kind===225&&(Ao?yn(Me.expression):Os(Me.expression));$e&&Yn($e)?e.forEach(xo($e),function(tr,dr){var Dr,Qr=$e.target.elementFlags[dr],li=ed(Me,Qr&4?Zs(tr):tr,!!(Qr&12),(Dr=$e.target.labeledElementDeclarations)===null||Dr===void 0?void 0:Dr[dr]);u.push(li)}):u.push(Me)},z=s;z-1)return e.createDiagnosticForNode(t[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,h=Number.NEGATIVE_INFINITY,z=Number.NEGATIVE_INFINITY,me=Number.POSITIVE_INFINITY,Me,$e=0,tr=i;$ez&&(z=Dr),t.lengtho?me=Math.min(me,tr):h1&&($i=ea(tr,Or,Dr,Zi)),$i||($i=ea(tr,dt,Dr,Zi)),$i)return $i;if(Me)if(li)if(li.length===1||li.length>3){var qt=li[li.length-1],Nt;li.length>3&&(Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.The_last_overload_gave_the_following_error),Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.No_overload_matches_this_call));var Ra=Ey(r,dr,qt,dt,0,!0,function(){return Nt});if(Ra)for(var ca=0,Sn=Ra;ca3&&e.addRelatedInfo(ja,e.createDiagnosticForNode(qt.declaration,e.Diagnostics.The_last_overload_is_declared_here)),Lt(qt,ja),rn.add(ja)}else e.Debug.fail("No error for last overload signature")}else{for(var Fn=[],wn=0,Tn=Number.MAX_VALUE,Eo=0,lt=0,it=function(Kt){var $t=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,lt+1,tr.length,Ml(Kt))},Ua=Ey(r,dr,Kt,dt,0,!0,$t);Ua?(Ua.length<=Tn&&(Tn=Ua.length,Eo=lt),wn=Math.max(wn,Ua.length),Fn.push(Ua)):e.Debug.fail("No error for 3 or fewer overload signatures"),lt++},Yt=0,Ia=li;Yt1?Fn[Eo]:e.flatten(Fn);e.Debug.assert(Ka.length>0,"No errors reported for 3 or fewer overload signatures");var cn=e.chainDiagnosticMessages(e.map(Ka,e.createDiagnosticMessageChainFromDiagnostic),e.Diagnostics.No_overload_matches_this_call),Un=Ve([],e.flatMap(Ka,function(Kt){return Kt.relatedInformation}),!0),oa=void 0;if(e.every(Ka,function(Kt){return Kt.start===Ka[0].start&&Kt.length===Ka[0].length&&Kt.file===Ka[0].file})){var Mn=Ka[0],Ln=Mn.file,ci=Mn.start,Fr=Mn.length;oa={file:Ln,start:ci,length:Fr,code:cn.code,category:cn.category,messageText:cn,relatedInformation:Un}}else oa=e.createDiagnosticForNodeFromMessageChain(r,cn,Un);Lt(li[0],oa),rn.add(oa)}else if(Ti)rn.add(dk(r,[Ti],dr));else if(Ci)$b(Ci,r.typeArguments,!0,u);else{var jt=e.filter(i,function(Kt){return Xb(Kt,$e)});jt.length===0?rn.add(m7(r,i,$e)):z?u&&rn.add(Cy(r,u)):rn.add(dk(r,jt,dr))}return v7(r,tr,dr,!!t,o);function Lt(Kt,$t){var Ua,Yr,Ni=li,Hi=Ti,_t=Ci,gt=((Yr=(Ua=Kt.declaration)===null||Ua===void 0?void 0:Ua.symbol)===null||Yr===void 0?void 0:Yr.declarations)||e.emptyArray,Vt=gt.length>1,Fa=Vt?e.find(gt,function(Ga){return e.isFunctionLikeDeclaration(Ga)&&e.nodeIsPresent(Ga.body)}):void 0;if(Fa){var on=yl(Fa),zn=!on.typeParameters;ea([on],dt,zn)&&e.addRelatedInfo($t,e.createDiagnosticForNode(Fa,e.Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible))}li=Ni,Ti=Hi,Ci=_t}function ea(Kt,$t,Ua,Yr){if(Yr===void 0&&(Yr=!1),li=void 0,Ti=void 0,Ci=void 0,Ua){var Ni=Kt[0];if(e.some($e)||!D0(r,dr,Ni,Yr))return;if(Ey(r,dr,Ni,$t,0,!1,void 0)){li=[Ni];return}return Ni}for(var Hi=0;Hi0),xm(r),o||i.length===1||i.some(function(u){return!!u.typeParameters})?D7(r,i,t,s):y7(i)}function y7(r){var i=e.mapDefined(r,function(dr){return dr.thisParameter}),t;i.length&&(t=gk(i,i.map(mv)));for(var o=e.minAndMax(r,h7),s=o.min,u=o.max,h=[],z=function(dr){var Dr=e.mapDefined(r,function(Qr){return H(Qr)?dri.length;)o.pop();for(;o.length=i)return s;h>o&&(o=h,t=s)}return t}function x7(r,i,t){if(r.expression.kind===106){var o=Sb(r.expression);if(ta(o)){for(var s=0,u=r.arguments;s=0&&Xr(r.arguments[o],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var s=gm(r.expression);if(s===Bt)return Co;if(s=$s(s),nn(s))return Gl(r);if(ta(s))return r.typeArguments&&Xr(r,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),Fg(r);var u=ot(s,1);if(u.length){if(!k7(r,u[0]))return Gl(r);if(vk(u,function(Me){return!!(Me.flags&4)}))return Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r);var h=s.symbol&&e.getClassLikeDeclarationOfSymbol(s.symbol);return h&&e.hasSyntacticModifier(h,128)?(Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r)):mm(r,u,i,t,0)}var z=ot(s,0);if(z.length){var me=mm(r,z,i,t,0);return n||(me.declaration&&!Sl(me.declaration)&&yo(me)!==Fi&&Xr(r,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),T_(me)===Fi&&Xr(r,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),me}return rS(r.expression,s,1),Gl(r)}function vk(r,i){return e.isArray(r)?e.some(r,function(t){return vk(t,i)}):r.compositeKind===1048576?e.some(r.compositeSignatures,i):i(r)}function eS(r,i){var t=Qc(i);if(!e.length(t))return!1;var o=t[0];if(o.flags&2097152){for(var s=o.types,u=Wv(s),h=0,z=0,me=o.types;z0;if(i.flags&1048576){for(var z=i.types,me=!1,Me=0,$e=z;Me<$e.length;Me++){var tr=$e[Me],dr=ot(tr,t);if(dr.length!==0){if(me=!0,o)break}else if(o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(tr)),o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Not_all_constituents_of_type_0_are_callable:e.Diagnostics.Not_all_constituents_of_type_0_are_constructable,Ot(i))),me)break}me||(o=e.chainDiagnosticMessages(void 0,s?e.Diagnostics.No_constituent_of_type_0_is_callable:e.Diagnostics.No_constituent_of_type_0_is_constructable,Ot(i))),o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:e.Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,Ot(i)))}else o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(i));var Dr=s?e.Diagnostics.This_expression_is_not_callable:e.Diagnostics.This_expression_is_not_constructable;if(e.isCallExpression(r.parent)&&r.parent.arguments.length===0){var Qr=va(r).resolvedSymbol;Qr&&Qr.flags&32768&&(Dr=e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without)}return{messageChain:e.chainDiagnosticMessages(o,Dr),relatedMessage:h?e.Diagnostics.Did_you_forget_to_use_await:void 0}}function rS(r,i,t,o){var s=yk(r,i,t),u=s.messageChain,h=s.relatedMessage,z=e.createDiagnosticForNodeFromMessageChain(r,u);if(h&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,h)),e.isCallExpression(r.parent)){var me=pk(r.parent,!0),Me=me.start,$e=me.length;z.start=Me,z.length=$e}rn.add(z),hk(i,t,o?e.addRelatedInfo(z,o):z)}function hk(r,i,t){if(!!r.symbol){var o=Aa(r.symbol).originatingImport;if(o&&!e.isImportCall(o)){var s=ot(Jt(Aa(r.symbol).target),i);if(!s||!s.length)return;e.addRelatedInfo(t,e.createDiagnosticForNode(o,e.Diagnostics.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))}}}function A7(r,i,t){var o=yn(r.tag),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(!u.length){if(e.isArrayLiteralExpression(r.parent)){var z=e.createDiagnosticForNode(r.tag,e.Diagnostics.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);return rn.add(z),Gl(r)}return rS(r.tag,s,0),Gl(r)}return mm(r,u,i,t,0)}function N7(r){switch(r.parent.kind){case 257:case 226:return e.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;case 164:return e.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;case 167:return e.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;case 169:case 172:case 173:return e.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;default:return e.Debug.fail()}}function P7(r,i,t){var o=yn(r.expression),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(w7(r,u)){var z=e.getTextOfNode(r.expression,!1);return Xr(r,e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0,z),Gl(r)}var me=N7(r);if(!u.length){var Me=yk(r.expression,s,0),$e=e.chainDiagnosticMessages(Me.messageChain,me),tr=e.createDiagnosticForNodeFromMessageChain(r.expression,$e);return Me.relatedMessage&&e.addRelatedInfo(tr,e.createDiagnosticForNode(r.expression,Me.relatedMessage)),rn.add(tr),hk(s,0,tr),Gl(r)}return mm(r,u,i,t,0,me)}function S0(r,i){var t=Og(r),o=t&&dc(t),s=o&&qs(o,U.Element,788968),u=s&&Ur.symbolToEntityName(s,788968,r),h=e.factory.createFunctionTypeNode(void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,"props",void 0,Ur.typeToTypeNode(i,r))],u?e.factory.createTypeReferenceNode(u,void 0):e.factory.createKeywordTypeNode(130)),z=oo(1,"props");return z.type=i,Fu(h,void 0,void 0,[z],s?go(s):Pe,void 0,1,0)}function I7(r,i,t){if(dm(r.tagName)){var o=BC(r),s=S0(r,o);return op(Rg(r.attributes,l0(s,r),void 0,0),o,r.tagName,r.attributes),e.length(r.typeArguments)&&(e.forEach(r.typeArguments,io),rn.add(e.createDiagnosticForNodeArray(e.getSourceFileOfNode(r),r.typeArguments,e.Diagnostics.Expected_0_type_arguments_but_got_1,0,e.length(r.typeArguments)))),s}var u=yn(r.tagName),h=$s(u);if(nn(h))return Gl(r);var z=LC(u,r);return b0(u,h,z.length,0)?Fg(r):z.length===0?(Xr(r.tagName,e.Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures,e.getTextOfNode(r.tagName)),Gl(r)):mm(r,z,i,t,0)}function w7(r,i){return i.length&&e.every(i,function(t){return t.minArgumentCount===0&&!H(t)&&t.parameters.length<_k(r,t)})}function O7(r,i,t){switch(r.kind){case 208:return x7(r,i,t);case 209:return C7(r,i,t);case 210:return A7(r,i,t);case 165:return P7(r,i,t);case 280:case 279:return I7(r,i,t)}throw e.Debug.assertNever(r,"Branch in 'resolveSignature' should be unreachable.")}function Mg(r,i,t){var o=va(r),s=o.resolvedSignature;if(s&&s!==to&&!i)return s;o.resolvedSignature=to;var u=O7(r,i,t||0);return u!==to&&(o.resolvedSignature=ko===Ao?u:s),u}function Sl(r){var i;if(!r||!e.isInJSFile(r))return!1;var t=e.isFunctionDeclaration(r)||e.isFunctionExpression(r)?r:e.isVariableDeclaration(r)&&r.initializer&&e.isFunctionExpression(r.initializer)?r.initializer:void 0;if(t){if(e.getJSDocClassTag(r))return!0;var o=Et(t);return!!(!((i=o==null?void 0:o.members)===null||i===void 0)&&i.size)}return!1}function iS(r,i){var t,o;if(i){var s=Aa(i);if(!s.inferredClassSymbol||!s.inferredClassSymbol.has(y(r))){var u=e.isTransientSymbol(r)?r:Yl(r);return u.exports=u.exports||e.createSymbolTable(),u.members=u.members||e.createSymbolTable(),u.flags|=i.flags&32,!((t=i.exports)===null||t===void 0)&&t.size&&gu(u.exports,i.exports),!((o=i.members)===null||o===void 0)&&o.size&&gu(u.members,i.members),(s.inferredClassSymbol||(s.inferredClassSymbol=new e.Map)).set(y(u),u),u}return s.inferredClassSymbol.get(y(r))}}function F7(r){var i,t=r&&T0(r,!0),o=(i=t==null?void 0:t.exports)===null||i===void 0?void 0:i.get("prototype"),s=(o==null?void 0:o.valueDeclaration)&&M7(o.valueDeclaration);return s?Et(s):void 0}function T0(r,i){if(!!r.parent){var t,o;if(e.isVariableDeclaration(r.parent)&&r.parent.initializer===r){if(!e.isInJSFile(r)&&!(e.isVarConst(r.parent)&&e.isFunctionLikeDeclaration(r)))return;t=r.parent.name,o=r.parent}else if(e.isBinaryExpression(r.parent)){var s=r.parent,u=r.parent.operatorToken.kind;if(u===63&&(i||s.right===r))t=s.left,o=t;else if((u===56||u===60)&&(e.isVariableDeclaration(s.parent)&&s.parent.initializer===s?(t=s.parent.name,o=s.parent):e.isBinaryExpression(s.parent)&&s.parent.operatorToken.kind===63&&(i||s.parent.right===s)&&(t=s.parent.left,o=t),!t||!e.isBindableStaticNameExpression(t)||!e.isSameEntityName(t,s.left)))return}else i&&e.isFunctionDeclaration(r)&&(t=r.name,o=r);if(!(!o||!t||!i&&!e.getExpandoInitializer(r,e.isPrototypeAccess(t))))return Et(o)}}function M7(r){if(!r.parent)return!1;for(var i=r.parent;i&&i.kind===206;)i=i.parent;if(i&&e.isBinaryExpression(i)&&e.isPrototypeAccess(i.left)&&i.operatorToken.kind===63){var t=e.getInitializerOfBinaryExpression(i);return e.isObjectLiteralExpression(t)&&t}}function L7(r,i){var t;Wy(r,r.typeArguments);var o=Mg(r,void 0,i);if(o===to)return wt;if(x0(o,r),r.expression.kind===106)return Fi;if(r.kind===209){var s=o.declaration;if(s&&s.kind!==171&&s.kind!==175&&s.kind!==180&&!e.isJSDocConstructSignature(s)&&!Sl(s))return n&&Xr(r,e.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type),Oe}if(e.isInJSFile(r)&&xk(r))return Hm(r.arguments[0]);var u=yo(o);if(u.flags&12288&&Dk(r))return CD(e.walkUpParenthesizedExpressions(r.parent));if(r.kind===208&&!r.questionDotToken&&r.parent.kind===238&&u.flags&16384&&Yc(o)){if(!e.isDottedName(r.expression))Xr(r.expression,e.Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);else if(!i0(r)){var h=Xr(r.expression,e.Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);gy(r.expression,h)}}if(e.isInJSFile(r)){var z=T0(r,!1);if(!((t=z==null?void 0:z.exports)===null||t===void 0)&&t.size){var me=rs(z,z.exports,e.emptyArray,e.emptyArray,e.emptyArray);return me.objectFlags|=4096,Do([u,me])}}return u}function x0(r,i){if(r.declaration&&r.declaration.flags&268435456){var t=ky(i),o=e.tryGetPropertyAccessOrIdentifierToString(e.getInvokedExpression(i));vp(t,r.declaration,o,Ml(r))}}function ky(r){switch(r=e.skipParentheses(r),r.kind){case 208:case 165:case 209:return ky(r.expression);case 210:return ky(r.tag);case 280:case 279:return ky(r.tagName);case 207:return r.argumentExpression;case 206:return r.name;case 178:var i=r;return e.isQualifiedName(i.typeName)?i.typeName.right:i;default:return r}}function Dk(r){if(!e.isCallExpression(r))return!1;var i=r.expression;if(e.isPropertyAccessExpression(i)&&i.name.escapedText==="for"&&(i=i.expression),!e.isIdentifier(i)||i.escapedText!=="Symbol")return!1;var t=Ex(!1);return t?t===es(i,"Symbol",111551,void 0,void 0,!1):!1}function R7(r){if(CL(r),r.arguments.length===0)return Py(r,Oe);for(var i=r.arguments[0],t=Os(i),o=r.arguments.length>1?Os(r.arguments[1]):void 0,s=2;s=t-1)return i===t-1?s:Zs(Jc(s,nt));for(var u=[],h=[],z=[],me=i;me0&&(s=r.parameters.length-1+z)}}if(s===void 0){if(!t&&r.flags&32)return 0;s=r.minArgumentCount}if(o)return s;for(var me=s-1;me>=0;me--){var Me=$u(r,me);if(ec(Me,nk).flags&131072)break;s=me}r.resolvedMinArgumentCount=s}return r.resolvedMinArgumentCount}function Xl(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);return!Yn(i)||i.target.hasRestElement}return!1}function vv(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);if(!Yn(i))return i;if(i.target.hasRestElement)return Zm(i,i.target.fixedLength)}}function yv(r){var i=vv(r);return i&&!Tu(i)&&!ta(i)&&(bu(i).flags&131072)===0?i:void 0}function aS(r){return nS(r,ui)}function nS(r,i){return r.parameters.length>0?$u(r,0):i}function K7(r,i,t){for(var o=r.parameters.length-(H(r)?1:0),s=0;s0&&(u=Pa(Me,2)):me=ui;var $e=X7(r,i),tr=$e.yieldTypes,dr=$e.nextTypes;h=e.some(tr)?Pa(tr,2):void 0,z=e.some(dr)?Do(dr):void 0}else{var Dr=Bk(r,i);if(!Dr)return t&2?Py(r,ui):ui;if(Dr.length===0)return t&2?Py(r,Fi):Fi;u=Pa(Dr,2)}if(u||h||z){if(h&&Kh(r,h,3),u&&Kh(r,u,1),z&&Kh(r,z,2),u&&Vl(u)||h&&Vl(h)||z&&Vl(z)){var Qr=Pb(r),li=Qr?Qr===yl(r)?s?void 0:u:c0(yo(Qr),r):void 0;s?(h=XD(h,li,0,o),u=XD(u,li,1,o),z=XD(z,li,2,o)):u=kw(u,li,o)}h&&(h=$c(h)),u&&(u=$c(u)),z&&(z=$c(z))}return s?Fk(h||ui,u||me,z||xC(2,r)||gr,o):o?Ny(u||me):u||me}function Fk(r,i,t,o){var s=o?St:pa,u=s.getGlobalGeneratorType(!1);if(r=s.resolveIterationType(r,void 0)||gr,i=s.resolveIterationType(i,void 0)||gr,t=s.resolveIterationType(t,void 0)||gr,u===kn){var h=s.getGlobalIterableIteratorType(!1),z=h!==kn?x6(h,s):void 0,me=z?z.returnType:Oe,Me=z?z.nextType:Tr;return ao(i,me)&&ao(Me,t)?h!==kn?$m(h,[r]):(s.getGlobalIterableIteratorType(!0),Ba):(s.getGlobalGeneratorType(!0),Ba)}return $m(u,[r,i,t])}function X7(r,i){var t=[],o=[],s=(e.getFunctionFlags(r)&2)!==0;return e.forEachYieldExpression(r.body,function(u){var h=u.expression?yn(u.expression,i):vi;e.pushIfUnique(t,Mk(u,h,Oe,s));var z;if(u.asteriskToken){var me=Jy(h,s?19:17,u.expression);z=me&&me.nextType}else z=ou(u);z&&e.pushIfUnique(o,z)}),{yieldTypes:t,nextTypes:o}}function Mk(r,i,t,o){var s=r.expression||r,u=r.asteriskToken?N_(o?19:17,i,t,s):i;return o?ag(u,s,r.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 oS(r,i,t,o){var s=0;if(o){for(var u=i;u=4)break;default:o!=null||(o=e.getSpanOfTokenAtPosition(t,r.pos)),rn.add(e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}}else{var t=e.getSourceFileOfNode(r);if(!Jd(t)){var o=e.getSpanOfTokenAtPosition(t,r.pos),s=e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);if(i&&i.kind!==171&&(e.getFunctionFlags(i)&2)===0){var u=e.createDiagnosticForNode(i,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(s,u)}rn.add(s)}}xb(r)&&Xr(r,e.Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer)}function oO(r){fe(function(){return nO(r)});var i=yn(r.expression),t=xv(i,!0,r,e.Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);return t===i&&!nn(t)&&!(i.flags&3)&&Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression)),t}function sO(r){var i=yn(r.operand);if(i===Bt)return Bt;switch(r.operand.kind){case 8:switch(r.operator){case 40:return Sg(If(-r.operand.text));case 39:return Sg(If(+r.operand.text))}break;case 9:if(r.operator===40)return Sg(ED({negative:!0,base10Value:e.parsePseudoBigInt(r.operand.text)}))}switch(r.operator){case 39:case 40:case 54:return bl(i,r.operand),A0(i,12288)&&Xr(r.operand,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(r.operator)),r.operator===39?(fs(i,2112)&&Xr(r.operand,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1,e.tokenToString(r.operator),Ot(Kl(i))),nt):cS(i);case 53:Bg(r.operand);var t=cp(i)&12582912;return t===4194304?xt:t===8388608?Dt:Ii;case 45:case 46:var o=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return o&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}return Pe}function cO(r){var i=yn(r.operand);if(i===Bt)return Bt;var t=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return t&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}function cS(r){return fs(r,2112)?Ns(r,3)||fs(r,296)?At:Mt:nt}function A0(r,i){if(fs(r,i))return!0;var t=Hd(r);return!!t&&fs(t,i)}function fs(r,i){if(r.flags&i)return!0;if(r.flags&3145728)for(var t=r.types,o=0,s=t;o1&&i.charCodeAt(t-1)>=48&&i.charCodeAt(t-1)<=57;)t--;for(var o=i.slice(0,t),s=1;;s++){var u=o+s;if(!pS(r,u))return u}}function Qk(r){var i=ig(r);if(i&&!i.typeParameters)return yo(i)}function AO(r){var i=yn(r.expression),t=cv(i,r.expression),o=Qk(i);return o&&zh(o,r,t!==i)}function Gs(r){var i=Yk(r);if(i)return i;if(r.flags&134217728&&Zc){var t=Zc[A(r)];if(t)return t}var o=xc,s=yn(r);if(xc!==o){var u=Zc||(Zc=[]);u[A(r)]=s,e.setNodeFlags(r,r.flags|134217728)}return s}function Yk(r){var i=e.skipParentheses(r,!0);if(e.isJSDocTypeAssertion(i)){var t=e.getJSDocTypeAssertionType(i);if(!e.isConstTypeReference(t))return Va(t)}if(i=e.skipParentheses(r),e.isCallExpression(i)&&i.expression.kind!==106&&!e.isRequireCall(i,!0)&&!Dk(i)){var t=e.isCallChain(i)?AO(i):Qk(gm(i.expression));if(t)return t}else{if(e.isAssertionExpression(i)&&!e.isConstTypeReference(i.type))return Va(i.type);if(r.kind===8||r.kind===10||r.kind===110||r.kind===95)return yn(r)}}function Oy(r){var i=va(r);if(i.contextFreeType)return i.contextFreeType;var t=r.contextualType;r.contextualType=Oe;try{var o=i.contextFreeType=yn(r,4);return o}finally{r.contextualType=t}}function yn(r,i,t){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkExpression",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var o=Ie;Ie=r,Ee=0;var s=IO(r,i,t),u=Hk(r,s,i);return uS(u)&&NO(r,u),Ie=o,e.tracing===null||e.tracing===void 0||e.tracing.pop(),u}function NO(r,i){var t=r.parent.kind===206&&r.parent.expression===r||r.parent.kind===207&&r.parent.expression===r||(r.kind===79||r.kind===161)&&W0(r)||r.parent.kind===181&&r.parent.exprName===r||r.parent.kind===275;if(t||Xr(r,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),ye.isolatedModules){e.Debug.assert(!!(i.symbol.flags&128));var o=i.symbol.valueDeclaration;o.flags&16777216&&Xr(r,e.Diagnostics.Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided)}}function PO(r,i){if(e.hasJSDocNodes(r)&&e.isJSDocTypeAssertion(r)){var t=e.getJSDocTypeAssertionType(r);return Ck(t,t,r.expression,i)}return yn(r.expression,i)}function IO(r,i,t){var o=r.kind;if(g)switch(o){case 226:case 213:case 214:g.throwIfCancellationRequested()}switch(o){case 79:return R8(r,i);case 80:return K5(r);case 108:return yy(r);case 106:return Sb(r);case 104:return ct;case 14:case 10:return Sg(Bu(r.text));case 8:return KS(r),Sg(If(+r.text));case 9:return SL(r),Sg(ED({negative:!1,base10Value:e.parsePseudoBigInt(r.text)}));case 110:return Dt;case 95:return xt;case 223:return DO(r);case 13:return Wa;case 204:return PC(r,i,t);case 205:return C5(r,i);case 206:return VC(r,i);case 161:return KC(r,i);case 207:return c7(r,i);case 208:if(r.expression.kind===100)return R7(r);case 209:return L7(r,i);case 210:return B7(r);case 212:return PO(r,i);case 226:return uM(r);case 213:case 214:return Jk(r,i);case 216:return tO(r);case 211:case 229:return J7(r);case 230:return U7(r);case 228:return kk(r);case 231:return z7(r);case 215:return rO(r);case 217:return aO(r);case 218:return oO(r);case 219:return sO(r);case 220:return cO(r);case 221:return Ir(r,i);case 222:return hO(r,i);case 225:return b5(r,i);case 227:return vi;case 224:return yO(r);case 232:return S5(r);case 288:return J5(r,i);case 278:return P5(r,i);case 279:return A5(r,i);case 282:return I5(r);case 286:return O5(r,i);case 280:e.Debug.fail("Shouldn't ever directly check a JsxOpeningElement")}return Pe}function $k(r){sA(r),r.expression&&Hs(r.expression,e.Diagnostics.Type_expected),io(r.constraint),io(r.default);var i=Js(Et(r));uc(i),X1(i)||Xr(r.default,e.Diagnostics.Type_parameter_0_has_a_circular_default,Ot(i));var t=Tc(i),o=D_(i);t&&o&&zc(o,Rc(un(t,Yd(i,o)),o),r.default,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1),xm(r),fe(function(){return Tm(r.name,e.Diagnostics.Type_parameter_name_cannot_be_0)})}function wO(r){if(e.isInterfaceDeclaration(r.parent)||e.isClassLike(r.parent)||e.isTypeAliasDeclaration(r.parent)){var i=Js(Et(r)),t=WD(i);if(t){var o=Et(r.parent);if(e.isTypeAliasDeclaration(r.parent)&&!(e.getObjectFlags(go(o))&48))Xr(r,e.Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);else if(t===32768||t===65536){var s=ly(o,i,t===65536?Da:Rn),u=ly(o,i,t===65536?Rn:Da),h=i;_e=i,zc(s,u,r,e.Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation),_e=h}}}}function Zk(r){Ff(r),L0(r);var i=e.getContainingFunction(r);e.hasSyntacticModifier(r,16476)&&(i.kind===171&&e.nodeIsPresent(i.body)||Xr(r,e.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation),i.kind===171&&e.isIdentifier(r.name)&&r.name.escapedText==="constructor"&&Xr(r.name,e.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name)),r.questionToken&&e.isBindingPattern(r.name)&&i.body&&Xr(r,e.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),r.name&&e.isIdentifier(r.name)&&(r.name.escapedText==="this"||r.name.escapedText==="new")&&(i.parameters.indexOf(r)!==0&&Xr(r,e.Diagnostics.A_0_parameter_must_be_the_first_parameter,r.name.escapedText),(i.kind===171||i.kind===175||i.kind===180)&&Xr(r,e.Diagnostics.A_constructor_cannot_have_a_this_parameter),i.kind===214&&Xr(r,e.Diagnostics.An_arrow_function_cannot_have_a_this_parameter),(i.kind===172||i.kind===173)&&Xr(r,e.Diagnostics.get_and_set_accessors_cannot_declare_this_parameters)),r.dotDotDotToken&&!e.isBindingPattern(r.name)&&!ao(bu(Jt(r.symbol)),Go)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_of_an_array_type)}function OO(r){var i=FO(r);if(!i){Xr(r,e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return}var t=yl(i),o=Yc(t);if(!!o){io(r.type);var s=r.parameterName;if(o.kind===0||o.kind===2)Ch(s);else if(o.parameterIndex>=0){if(H(t)&&o.parameterIndex===t.parameters.length-1)Xr(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)};zc(o.type,Jt(t.parameters[o.parameterIndex]),r.type,void 0,u)}}else if(s){for(var h=!1,z=0,me=i.parameters;z0&&i.declarations[0]!==r)return}var t=tx(Et(r));if(t!=null&&t.declarations){for(var o=new e.Map,s=function(me){me.parameters.length===1&&me.parameters[0].type&&Od(Va(me.parameters[0].type),function(Me){var $e=o.get(fu(Me));$e?$e.declarations.push(me):o.set(fu(Me),{type:Me,declarations:[me]})})},u=0,h=t.declarations;u1)for(var Me=0,$e=me.declarations;Me<$e.length;Me++){var tr=$e[Me];Xr(tr,e.Diagnostics.Duplicate_index_signature_for_type_0,Ot(me.type))}})}}function i6(r){!Ff(r)&&!vL(r)&&Q0(r.name),L0(r),gS(r),e.hasSyntacticModifier(r,128)&&r.kind===167&&r.initializer&&Xr(r,e.Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract,e.declarationNameToString(r.name))}function RO(r){return e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),i6(r)}function BO(r){dA(r)||Q0(r.name),f6(r),e.hasSyntacticModifier(r,128)&&r.kind===169&&r.body&&Xr(r,e.Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,e.declarationNameToString(r.name)),e.isPrivateIdentifier(r.name)&&!e.getContainingClass(r)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),gS(r)}function gS(r){if(e.isPrivateIdentifier(r.name)&&Ae<99){for(var i=e.getEnclosingBlockScopeContainer(r);i;i=e.getEnclosingBlockScopeContainer(i))va(i).flags|=67108864;if(e.isClassExpression(r.parent)){var t=hb(r.parent);t&&(va(r.name).flags|=524288,va(t).flags|=65536)}}}function JO(r){Ff(r),e.forEachChild(r,io)}function jO(r){Dv(r),gL(r)||mL(r),io(r.body);var i=Et(r),t=e.getDeclarationOfKind(i,r.kind);if(r===t&&O0(i),e.nodeIsMissing(r.body))return;fe(s);return;function o(u){return e.isPrivateIdentifierClassElementDeclaration(u)?!0:u.kind===167&&!e.isStatic(u)&&!!u.initializer}function s(){var u=r.parent;if(e.getClassExtendsHeritageElement(u)){Db(r.parent,u);var h=yC(u),z=vC(r.body);if(z){h&&Xr(z,e.Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null);var me=(e.getEmitScriptTarget(ye)!==99||!ir)&&(e.some(r.parent.members,o)||e.some(r.parameters,function(Dr){return e.hasSyntacticModifier(Dr,16476)}));if(me)if(!UO(z,r.body))Xr(z,e.Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers);else{for(var Me=void 0,$e=0,tr=r.body.statements;$e1){var t=Aa(i);if(!t.typeParametersChecked){t.typeParametersChecked=!0;var o=Js(i),s=e.getDeclarationsOfKind(i,163);if(!F6(s,[o],function(Me){return[Me]}))for(var u=tn(i),h=0,z=s;h0}function yS(r){var i;if(r.flags&16777216){var t=oD(!1);return!!t&&r.aliasSymbol===t&&((i=r.aliasTypeArguments)===null||i===void 0?void 0:i.length)===1}return!1}function Ev(r){return r.flags&1048576?Ss(r,Ev):yS(r)?r.aliasTypeArguments[0]:r}function sF(r){if(ta(r)||yS(r))return r;if(Ad(r)){var i=uc(r);if(!i||i.flags&3||Of(i)||s6(i)){var t=oD(!0);if(t)return am(t,[Ev(r)])}}return e.Debug.assert(Tv(r)===void 0,"type provided should not be a non-generic 'promise'-like."),r}function ag(r,i,t,o){var s=k_(r,i,t,o);return s&&sF(s)}function k_(r,i,t,o){if(ta(r)||yS(r))return r;var s=r;if(s.awaitedTypeOfType)return s.awaitedTypeOfType;if(r.flags&1048576){var u=i?function(me){return k_(me,i,t,o)}:k_;return s.awaitedTypeOfType=Ss(r,u)}var h=Tv(r);if(h){if(r.id===h.id||qa.lastIndexOf(h.id)>=0){i&&Xr(i,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);return}qa.push(r.id);var z=k_(h,i,t,o);return qa.pop(),z?s.awaitedTypeOfType=z:void 0}if(s6(r)){i&&(e.Debug.assertIsDefined(t),Xr(i,t,o));return}return s.awaitedTypeOfType=r}function cF(r,i){var t=Va(i);if(Ae>=2){if(nn(t))return;var o=ay(!0);if(o!==kn&&!Xf(t,o)){Xr(i,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,Ot(k_(t)||Fi));return}}else{if(lF(i),nn(t))return;var s=e.getEntityNameFromTypeNode(i);if(s===void 0){Xr(i,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,Ot(t));return}var u=Ds(s,111551,!0),h=u?Jt(u):Pe;if(nn(h)){s.kind===79&&s.escapedText==="Promise"&&bd(t)===ay(!1)?Xr(i,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):Xr(i,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 z=E3(!0);if(z===Ba){Xr(i,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(!zc(h,z,i,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),Me=qs(r.locals,me.escapedText,111551);if(Me){Xr(Me.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(me),e.entityNameToString(s));return}}xv(t,!1,r,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}function uF(r){var i=Mg(r);x0(i,r);var t=yo(i);if(!(t.flags&1)){var o,s;switch(r.parent.kind){case 257:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var u=Et(r.parent),h=Jt(u);s=Pa([h,Fi]);break;case 167:case 164:o=e.Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any,s=Fi;break;case 169:case 172:case 173:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var z=Bd(r.parent),me=Px(z);s=Pa([me,Fi]);break;default:return e.Debug.fail()}zc(t,s,r,o)}}function lF(r){c6(r&&e.getEntityNameFromTypeNode(r),!1)}function c6(r,i){if(!!r){var t=e.getFirstIdentifier(r),o=(r.kind===79?788968:1920)|2097152,s=es(t,t.escapedText,o,void 0,void 0,!0);if(s&&s.flags&2097152){if(gc(s)&&!Av(Ps(s))&&!vu(s))As(s);else if(i&&ye.isolatedModules&&e.getEmitModuleKind(ye)>=e.ModuleKind.ES2015&&!gc(s)&&!e.some(s.declarations,e.isTypeOnlyImportOrExportDeclaration)){var u=Xr(r,e.Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled),h=e.find(s.declarations||e.emptyArray,yf);h&&e.addRelatedInfo(u,e.createDiagnosticForNode(h,e.Diagnostics._0_was_imported_here,e.idText(t)))}}}}function bm(r){var i=hS(r);i&&e.isEntityName(i)&&c6(i,!0)}function hS(r){if(r)switch(r.kind){case 188:case 187:return u6(r.types);case 189:return u6([r.trueType,r.falseType]);case 191:case 197:return hS(r.type);case 178:return r.typeName}}function u6(r){for(var i,t=0,o=r;t0),t.length>1&&Xr(t[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var o=l6(r.class.expression),s=e.getClassExtendsHeritageElement(i);if(s){var u=l6(s.expression);u&&o.escapedText!==u.escapedText&&Xr(o,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(r.tagName),e.idText(o),e.idText(u))}}function DF(r){var i=e.getJSDocHost(r);i&&e.isPrivateIdentifierClassElementDeclaration(i)&&Xr(r,e.Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier)}function l6(r){switch(r.kind){case 79:return r;case 206:return r.name;default:return}}function f6(r){var i;Fy(r),Dv(r);var t=e.getFunctionFlags(r);if(r.name&&r.name.kind===162&&t_(r.name),Td(r)){var o=Et(r),s=r.localSymbol||o,u=(i=s.declarations)===null||i===void 0?void 0:i.find(function(Me){return Me.kind===r.kind&&!(Me.flags&262144)});r===u&&O0(s),o.parent&&O0(o)}var h=r.kind===168?void 0:r.body;if(io(h),sS(r,yg(r)),fe(me),e.isInJSFile(r)){var z=e.getJSDocTypeTag(r);z&&z.typeExpression&&!Nb(Va(z.typeExpression),r)&&Xr(z.typeExpression.type,e.Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature)}function me(){e.getEffectiveReturnTypeNode(r)||(e.nodeIsMissing(h)&&!I0(r)&&Xp(r,Oe),t&1&&e.nodeIsPresent(h)&&yo(yl(r)))}}function A_(r){fe(i);function i(){var t=e.getSourceFileOfNode(r),o=Fo.get(t.path);o||(o=[],Fo.set(t.path,o)),o.push(r)}}function _6(r,i){for(var t=0,o=r;t=2||!e.hasRestParameter(r)||r.flags&16777216||e.nodeIsMissing(r.body)||e.forEach(r.parameters,function(i){i.name&&!e.isBindingPattern(i.name)&&i.name.escapedText===or.escapedName&&Es("noEmit",i,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)})}function Cv(r,i,t){if((i==null?void 0:i.escapedText)!==t||r.kind===167||r.kind===166||r.kind===169||r.kind===168||r.kind===172||r.kind===173||r.kind===296||r.flags&16777216||(e.isImportClause(r)||e.isImportEqualsDeclaration(r)||e.isImportSpecifier(r))&&e.isTypeOnlyImportOrExportDeclaration(r))return!1;var o=e.getRootDeclaration(r);return!(e.isParameter(o)&&e.nodeIsMissing(o.parent.body))}function CF(r){e.findAncestor(r,function(i){if(Ug(i)&4){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0}return!1})}function kF(r){e.findAncestor(r,function(i){if(Ug(i)&8){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0}return!1})}function AF(r,i){if(!(er>=e.ModuleKind.ES2015&&!(er>=e.ModuleKind.Node16&&e.getSourceFileOfNode(r).impliedNodeFormat===e.ModuleKind.CommonJS))&&!(!i||!Cv(r,i,"require")&&!Cv(r,i,"exports"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&Es("noEmit",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(i),e.declarationNameToString(i))}}function NF(r,i){if(!(!i||Ae>=4||!Cv(r,i,"Promise"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&t.flags&2048&&Es("noEmit",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(i),e.declarationNameToString(i))}}function PF(r,i){Ae<=8&&(Cv(r,i,"WeakMap")||Cv(r,i,"WeakSet"))&&bn.push(r)}function IF(r){var i=e.getEnclosingBlockScopeContainer(r);Ug(i)&67108864&&(e.Debug.assert(e.isNamedDeclaration(r)&&e.isIdentifier(r.name)&&typeof r.name.escapedText=="string","The target of a WeakMap/WeakSet collision check should be an identifier"),Es("noEmit",r,e.Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel,r.name.escapedText))}function wF(r,i){i&&Ae>=2&&Ae<=8&&Cv(r,i,"Reflect")&&_a.push(r)}function OF(r){var i=!1;if(e.isClassExpression(r))for(var t=0,o=r.members;t1&&e.some(Dr.declarations,function($i){return $i!==r&&e.isVariableLike($i)&&!y6($i,r)})&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}else{var Ci=kv(sc(r));!nn(Qr)&&!nn(Ci)&&!wf(Qr,Ci)&&!(Dr.flags&67108864)&&v6(Dr.valueDeclaration,Qr,r,Ci),r.initializer&&op(Os(r.initializer),Ci,r,r.initializer,void 0),Dr.valueDeclaration&&!y6(r,Dr.valueDeclaration)&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}r.kind!==167&&r.kind!==166&&(bv(r),(r.kind===254||r.kind===203)&&FF(r),Sm(r,r.name))}}function v6(r,i,t,o){var s=e.getNameOfDeclaration(t),u=t.kind===167||t.kind===166?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,h=e.declarationNameToString(s),z=Xr(s,u,h,Ot(i),Ot(o));r&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,e.Diagnostics._0_was_also_declared_here,h))}function y6(r,i){if(r.kind===164&&i.kind===254||r.kind===254&&i.kind===164)return!0;if(e.hasQuestionToken(r)!==e.hasQuestionToken(i))return!1;var t=504;return e.getSelectedEffectiveModifierFlags(r,t)===e.getSelectedEffectiveModifierFlags(i,t)}function SS(r){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkVariableDeclaration",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath}),fL(r),L0(r),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function MF(r){return cL(r),L0(r)}function LF(r){!Ff(r)&&!VS(r.declarationList)&&_L(r),e.forEach(r.declarationList.declarations,io)}function RF(r){Mf(r),yn(r.expression)}function BF(r){Mf(r),Bg(r.expression),TS(r.expression,r.thenStatement),io(r.thenStatement),r.thenStatement.kind===236&&Xr(r.thenStatement,e.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement),io(r.elseStatement)}function TS(r,i){if(!Ye)return;for(t(r,i);e.isBinaryExpression(r)&&r.operatorToken.kind===56;)r=r.left,t(r,i);function t(o,s){var u=e.isBinaryExpression(o)&&(o.operatorToken.kind===56||o.operatorToken.kind===55)?o.right:o;if(!e.isModuleExportsAccessExpression(u)){var h=Bg(u),z=e.isPropertyAccessExpression(u)&&Vk(u.expression);if(!(ju(h)||z)){var me=ot(h,0),Me=!!Sv(h);if(!(me.length===0&&!Me)){var $e=e.isIdentifier(u)?u:e.isPropertyAccessExpression(u)?u.name:e.isBinaryExpression(u)&&e.isIdentifier(u.right)?u.right:void 0,tr=$e&&el($e);if(!(!tr&&!Me)){var dr=tr&&e.isBinaryExpression(o.parent)&&jF(o.parent,tr)||tr&&s&&JF(o,s,$e,tr);dr||(Me?zu(u,!0,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined,q_(h)):Xr(u,e.Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead))}}}}}}function JF(r,i,t,o){return!!e.forEachChild(i,function s(u){if(e.isIdentifier(u)){var h=el(u);if(h&&h===o){if(e.isIdentifier(r)||e.isIdentifier(t)&&e.isBinaryExpression(t.parent))return!0;for(var z=t.parent,me=u.parent;z&&me;){if(e.isIdentifier(z)&&e.isIdentifier(me)||z.kind===108&&me.kind===108)return el(z)===el(me);if(e.isPropertyAccessExpression(z)&&e.isPropertyAccessExpression(me)){if(el(z.name)!==el(me.name))return!1;me=me.expression,z=z.expression}else if(e.isCallExpression(z)&&e.isCallExpression(me))me=me.expression,z=z.expression;else return!1}}}return e.forEachChild(u,s)})}function jF(r,i){for(;e.isBinaryExpression(r)&&r.operatorToken.kind===55;){var t=e.forEachChild(r.right,function o(s){if(e.isIdentifier(s)){var u=el(s);if(u&&u===i)return!0}return e.forEachChild(s,o)});if(t)return!0;r=r.parent}return!1}function UF(r){Mf(r),io(r.statement),Bg(r.expression)}function zF(r){Mf(r),Bg(r.expression),io(r.statement)}function h6(r,i){return r.flags&16384&&Xr(i,e.Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness),r}function Bg(r,i){return h6(yn(r,i),r)}function WF(r){Mf(r)||r.initializer&&r.initializer.kind===255&&VS(r.initializer),r.initializer&&(r.initializer.kind===255?e.forEach(r.initializer.declarations,SS):yn(r.initializer)),r.condition&&Bg(r.condition),r.incrementor&&yn(r.incrementor),io(r.statement),r.locals&&A_(r)}function qF(r){pA(r);var i=e.getContainingFunctionOrClassStaticBlock(r);if(r.awaitModifier)if(i&&e.isClassStaticBlockDeclaration(i))Tt(r.awaitModifier,e.Diagnostics.For_await_loops_cannot_be_used_inside_a_class_static_block);else{var t=e.getFunctionFlags(i);(t&6)===2&&Ae<99&&fc(r,16384)}else ye.downlevelIteration&&Ae<2&&fc(r,256);if(r.initializer.kind===255)D6(r);else{var o=r.initializer,s=By(r);if(o.kind===204||o.kind===205)Rd(o,s||Pe);else{var u=yn(o);hv(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&&op(s,u,o,r.expression)}}io(r.statement),r.locals&&A_(r)}function VF(r){pA(r);var i=jb(yn(r.expression));if(r.initializer.kind===255){var t=r.initializer.declarations[0];t&&e.isBindingPattern(t.name)&&Xr(t.name,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern),D6(r)}else{var o=r.initializer,s=yn(o);o.kind===204||o.kind===205?Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern):ao(lI(i),s)?hv(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):Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any)}(i===ui||!Ns(i,126091264))&&Xr(r.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,Ot(i)),io(r.statement),r.locals&&A_(r)}function D6(r){var i=r.initializer;if(i.declarations.length>=1){var t=i.declarations[0];SS(t)}}function By(r){var i=r.awaitModifier?15:13;return N_(i,gm(r.expression),Tr,r.expression)}function N_(r,i,t,o){return ta(i)?i:xS(r,i,t,o,!0)||Oe}function xS(r,i,t,o,s){var u=(r&2)!==0;if(i===ui){AS(o,i,u);return}var h=Ae>=2,z=!h&&ye.downlevelIteration,me=ye.noUncheckedIndexedAccess&&!!(r&128);if(h||z||u){var Me=Jy(i,r,h?o:void 0);if(s&&Me){var $e=r&8?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:r&32?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:r&64?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:r&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;$e&&zc(t,Me.nextType,o,$e)}if(Me||h)return me?fv(Me&&Me.yieldType):Me&&Me.yieldType}var tr=i,dr=!1,Dr=!1;if(r&4){if(tr.flags&1048576){var Qr=i.types,li=e.filter(Qr,function(Ra){return!(Ra.flags&402653316)});li!==Qr&&(tr=Pa(li,2))}else tr.flags&402653316&&(tr=ui);if(Dr=tr!==i,Dr&&(Ae<1&&o&&(Xr(o,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),dr=!0),tr.flags&131072))return me?fv(Li):Li}if(!sp(tr)){if(o&&!dr){var Ti=!!(r&4)&&!Dr,Ci=Nt(Ti,z),$i=Ci[0],Zi=Ci[1];zu(o,Zi&&!!Sv(tr),$i,Ot(tr))}return Dr?me?fv(Li):Li:void 0}var qt=cs(tr,nt);if(Dr&&qt)return qt.flags&402653316&&!ye.noUncheckedIndexedAccess?Li:Pa(me?[qt,Li,Tr]:[qt,Li],2);return r&128?fv(qt):qt;function Nt(Ra,ca){var Sn;if(ca)return Ra?[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 ja=b6(r,0,i,void 0);return ja?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!1]:KF((Sn=i.symbol)===null||Sn===void 0?void 0:Sn.escapedName)?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!0]:Ra?[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 KF(r){switch(r){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 b6(r,i,t,o){if(!ta(t)){var s=Jy(t,r,o);return s&&s[j(i)]}}function a_(r,i,t){if(r===void 0&&(r=ui),i===void 0&&(i=ui),t===void 0&&(t=gr),r.flags&67359327&&i.flags&180227&&t.flags&180227){var o=Su([r,i,t]),s=Oo.get(o);return s||(s={yieldType:r,returnType:i,nextType:t},Oo.set(o,s)),s}return{yieldType:r,returnType:i,nextType:t}}function S6(r){for(var i,t,o,s=0,u=r;s1)for(var dr=0,Dr=o;dr=1&&r.escapedText==="Object"&&(ero)return!1;for(var $e=0;$e=o&&z.pos<=s){var me=e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(me.expression,me),e.setParent(me,z),me.flowNode=z.returnFlowNode;var Me=up(me,i,i_(i));if(!(ju(Me)&32768))return!0}}return!1}function j6(r,i,t){var o=e.isComputedPropertyName(r)?e.factory.createElementAccessExpression(e.factory.createThis(),r.expression):e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(o.expression,o),e.setParent(o,t),o.flowNode=t.returnFlowNode;var s=up(o,i,i_(i));return!(ju(s)&32768)}function bM(r){Ff(r)||Z9(r),jy(r.typeParameters),fe(function(){Tm(r.name,e.Diagnostics.Interface_name_cannot_be_0),bv(r);var i=Et(r);O6(i);var t=e.getDeclarationOfKind(i,258);if(r===t){var o=go(i),s=Rc(o);if(yM(o,r.name)){for(var u=0,h=Qc(o);u>tr;case 49:return $e>>>tr;case 47:return $e<1){var o=e.isEnumConst(r);e.forEach(i.declarations,function(u){e.isEnumDeclaration(u)&&e.isEnumConst(u)!==o&&Xr(e.getNameOfDeclaration(u),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)})}var s=!1;e.forEach(i.declarations,function(u){if(u.kind!==260)return!1;var h=u;if(!h.members.length)return!1;var z=h.members[0];z.initializer||(s?Xr(z.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):s=!0)})}}function kM(r){e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier)}function AM(r){var i=r.declarations;if(i)for(var t=0,o=i;t1&&V(r,e.shouldPreserveConstEnums(ye))){var z=AM(h);z&&(e.getSourceFileOfNode(r)!==e.getSourceFileOfNode(z)?Xr(r.name,e.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):r.pos=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat===void 0&&!r.isTypeOnly&&!(r.flags&16777216)&&Tt(r,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 FM(r){if(!Uy(r,e.isInJSFile(r)?e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)){if(!Ff(r)&&e.hasSyntacticModifiers(r)&&Hs(r,e.Diagnostics.An_export_declaration_cannot_have_modifiers),r.moduleSpecifier&&r.exportClause&&e.isNamedExports(r.exportClause)&&e.length(r.exportClause.elements)&&Ae===0&&fc(r,4194304),MM(r),!r.moduleSpecifier||wS(r))if(r.exportClause&&!e.isNamespaceExport(r.exportClause)){e.forEach(r.exportClause.elements,UM);var i=r.parent.kind===262&&e.isAmbientModule(r.parent.parent),t=!i&&r.parent.kind===262&&!r.moduleSpecifier&&r.flags&16777216;r.parent.kind!==305&&!i&&!t&&Xr(r,e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace)}else{var o=ac(r,r.moduleSpecifier);o&&ll(o)?Xr(r.moduleSpecifier,e.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,tn(o)):r.exportClause&&j0(r.exportClause),er!==e.ModuleKind.System&&(er=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat!==e.ModuleKind.CommonJS?Tt(r,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):er===e.ModuleKind.System&&Tt(r,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}}function WM(r){return e.forEachEntry(r.exports,function(i,t){return t!=="export="})}function V6(r){var i=Et(r),t=Aa(i);if(!t.exportsChecked){var o=i.exports.get("export=");if(o&&WM(i)){var s=ru(o)||o.valueDeclaration;s&&!Xu(s)&&!e.isInJSFile(s)&&Xr(s,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}var u=Pu(i);u&&u.forEach(function(h,z){var me=h.declarations,Me=h.flags;if(z!=="__export"&&!(Me&1920)){var $e=e.countWhere(me,e.and(O,e.not(e.isInterfaceDeclaration)));if(!(Me&524288&&$e<=2)&&$e>1&&!z0(me))for(var tr=0,dr=me;tr1&&r.every(function(i){return e.isInJSFile(i)&&e.isAccessExpression(i)&&(e.isExportsIdentifier(i.expression)||e.isModuleExportsAccessExpression(i.expression))})}function io(r){if(r){var i=Ie;Ie=r,Ee=0,qM(r),Ie=i}}function qM(r){e.isInJSFile(r)&&e.forEach(r.jsDoc,function(t){var o=t.tags;return e.forEach(o,io)});var i=r.kind;if(g)switch(i){case 261:case 257:case 258:case 256:g.throwIfCancellationRequested()}switch(i>=237&&i<=253&&r.flowNode&&!my(r.flowNode)&&Ic(ye.allowUnreachableCode===!1,r,e.Diagnostics.Unreachable_code_detected),i){case 163:return $k(r);case 164:return Zk(r);case 167:return i6(r);case 166:return RO(r);case 180:case 179:case 174:case 175:case 176:return Dv(r);case 169:case 168:return BO(r);case 170:return JO(r);case 171:return jO(r);case 172:case 173:return a6(r);case 178:return vS(r);case 177:return OO(r);case 181:return qO(r);case 182:return VO(r);case 183:return KO(r);case 184:return GO(r);case 187:case 188:return HO(r);case 191:case 185:case 186:return io(r.type);case 192:return $O(r);case 193:return ZO(r);case 189:return eF(r);case 190:return rF(r);case 198:return iF(r);case 200:return tF(r);case 197:return aF(r);case 328:return hF(r);case 329:return yF(r);case 345:case 338:case 339:return _F(r);case 344:return pF(r);case 343:return dF(r);case 340:return gF(r);case 347:return mF(r);case 317:vF(r);case 315:case 314:case 312:case 313:case 322:K6(r),e.forEachChild(r,io);return;case 318:VM(r);return;case 309:return io(r.type);case 333:case 335:case 334:return DF(r);case 194:return XO(r);case 195:return QO(r);case 256:return fF(r);case 235:case 262:return M0(r);case 237:return LF(r);case 238:return RF(r);case 239:return BF(r);case 240:return UF(r);case 241:return zF(r);case 242:return WF(r);case 243:return VF(r);case 244:return qF(r);case 245:case 246:return $F(r);case 247:return ZF(r);case 248:return eM(r);case 249:return rM(r);case 250:return iM(r);case 251:return tM(r);case 252:return aM(r);case 254:return SS(r);case 203:return MF(r);case 257:return fM(r);case 258:return bM(r);case 259:return SM(r);case 260:return EM(r);case 261:return PM(r);case 266:return wM(r);case 265:return OM(r);case 272:return FM(r);case 271:return zM(r);case 236:case 253:Mf(r);return;case 276:return zO(r)}}function K6(r){e.isInJSFile(r)||Tt(r,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function VM(r){K6(r),io(r.type);var i=r.parent;if(e.isParameter(i)&&e.isJSDocFunctionType(i.parent)){e.last(i.parent.parameters)!==i&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);return}e.isJSDocTypeExpression(i)||Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var t=r.parent.parent;if(!e.isJSDocParameterTag(t)){Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);return}var o=e.getParameterSymbolFromJSDoc(t);if(!!o){var s=e.getHostSignatureFromJSDoc(t);(!s||e.last(s.parameters).symbol!==o)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list)}}function KM(r){var i=Va(r.type),t=r.parent,o=r.parent.parent;if(e.isJSDocTypeExpression(r.parent)&&e.isJSDocParameterTag(o)){var s=e.getHostSignatureFromJSDoc(o),u=e.isJSDocCallbackTag(o.parent.parent);if(s||u){var h=u?e.lastOrUndefined(o.parent.parent.typeExpression.parameters):e.lastOrUndefined(s.parameters),z=e.getParameterSymbolFromJSDoc(o);if(!h||z&&h.symbol===z&&e.isRestParameter(h))return Zs(i)}}return e.isParameter(t)&&e.isJSDocFunctionType(t.parent)?Zs(i):kc(i)}function xm(r){var i=e.getSourceFileOfNode(r),t=va(i);t.flags&1||(t.deferredNodes||(t.deferredNodes=new e.Set),t.deferredNodes.add(r))}function GM(r){var i=va(r);i.deferredNodes&&i.deferredNodes.forEach(HM)}function HM(r){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkDeferredNode",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var i=Ie;switch(Ie=r,Ee=0,r.kind){case 208:case 209:case 210:case 165:case 280:Fg(r);break;case 213:case 214:case 169:case 168:Z7(r);break;case 172:case 173:a6(r);break;case 226:lM(r);break;case 163:wO(r);break;case 279:k5(r);break;case 278:N5(r);break}Ie=i,e.tracing===null||e.tracing===void 0||e.tracing.pop()}function XM(r){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkSourceFile",{path:r.path},!0),e.performance.mark("beforeCheck"),QM(r),e.performance.mark("afterCheck"),e.performance.measure("Check","beforeCheck","afterCheck"),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function G6(r,i){if(i)return!1;switch(r){case 0:return!!ye.noUnusedLocals;case 1:return!!ye.noUnusedParameters;default:return e.Debug.assertNever(r)}}function H6(r){return Fo.get(r.path)||e.emptyArray}function QM(r){var i=va(r);if(!(i.flags&1)){if(e.skipTypeChecking(r,ye,l))return;DL(r),e.clear(Xt),e.clear(Za),e.clear(bn),e.clear(_a),e.forEach(r.statements,io),io(r.endOfFileToken),GM(r),e.isExternalOrCommonJsModule(r)&&A_(r),fe(function(){!r.isDeclarationFile&&(ye.noUnusedLocals||ye.noUnusedParameters)&&_6(H6(r),function(t,o,s){!e.containsParseError(t)&&G6(o,!!(t.flags&16777216))&&rn.add(s)})}),ye.importsNotUsedAsValues===2&&!r.isDeclarationFile&&e.isExternalModule(r)&&jM(r),e.isExternalOrCommonJsModule(r)&&V6(r),Xt.length&&(e.forEach(Xt,CF),e.clear(Xt)),Za.length&&(e.forEach(Za,kF),e.clear(Za)),bn.length&&(e.forEach(bn,IF),e.clear(bn)),_a.length&&(e.forEach(_a,OF),e.clear(_a)),i.flags|=1}}function X6(r,i){try{return g=i,YM(r)}finally{g=void 0}}function OS(){for(var r=0,i=D;r0)return e.concatenate(s,o);return o}return e.forEach(l.getSourceFiles(),FS),rn.getDiagnostics()}function $M(){return OS(),rn.getGlobalDiagnostics()}function ZM(r,i){if(r.flags&33554432)return[];var t=e.createSymbolTable(),o=!1;return s(),t.delete("this"),Y_(t);function s(){for(;r;){switch(r.locals&&!Cu(r)&&h(r.locals,i),r.kind){case 305:if(!e.isExternalModule(r))break;case 261:z(Et(r).exports,i&2623475);break;case 260:h(Et(r).exports,i&8);break;case 226:var me=r.name;me&&u(r.symbol,i);case 257:case 258:o||h(Nf(Et(r)),i&788968);break;case 213:var Me=r.name;Me&&u(r.symbol,i);break}e.introducesArgumentsExoticObject(r)&&u(or,i),o=e.isStatic(r),r=r.parent}h(ii,i)}function u(me,Me){if(e.getCombinedLocalAndExportSymbolFlags(me)&Me){var $e=me.escapedName;t.has($e)||t.set($e,me)}}function h(me,Me){Me&&me.forEach(function($e){u($e,Me)})}function z(me,Me){Me&&me.forEach(function($e){!e.getDeclarationOfKind($e,275)&&!e.getDeclarationOfKind($e,274)&&u($e,Me)})}}function e9(r){return r.kind===79&&zy(r.parent)&&e.getNameOfDeclaration(r.parent)===r}function zy(r){switch(r.kind){case 163:case 257:case 258:case 259:case 260:case 345:case 338:case 339:return!0;case 267:return r.isTypeOnly;case 270:case 275:return r.parent.parent.isTypeOnly;default:return!1}}function Q6(r){for(;r.parent.kind===161;)r=r.parent;return r.parent.kind===178}function r9(r){for(;r.parent.kind===206;)r=r.parent;return r.parent.kind===228}function Y6(r,i){for(var t;r=e.getContainingClass(r),!(!r||(t=i(r))););return t}function i9(r){return!!e.findAncestor(r,function(i){return e.isConstructorDeclaration(i)&&e.nodeIsPresent(i.body)||e.isPropertyDeclaration(i)?!0:e.isClassLike(i)||e.isFunctionLikeDeclaration(i)?"quit":!1})}function MS(r,i){return!!Y6(r,function(t){return t===i})}function t9(r){for(;r.parent.kind===161;)r=r.parent;if(r.parent.kind===265)return r.parent.moduleReference===r?r.parent:void 0;if(r.parent.kind===271)return r.parent.expression===r?r.parent:void 0}function W0(r){return t9(r)!==void 0}function a9(r){var i=e.getAssignmentDeclarationKind(r.parent.parent);switch(i){case 1:case 3:return Et(r.parent);case 4:case 2:case 5:return Et(r.parent.parent)}}function n9(r){for(var i=r.parent;e.isQualifiedName(i);)r=i,i=i.parent;if(i&&i.kind===200&&i.qualifier===r)return i}function $6(r){if(e.isDeclarationName(r))return Et(r.parent);if(e.isInJSFile(r)&&r.parent.kind===206&&r.parent===r.parent.parent.left&&!e.isPrivateIdentifier(r)&&!e.isJSDocMemberName(r)){var i=a9(r);if(i)return i}if(r.parent.kind===271&&e.isEntityNameExpression(r)){var t=Ds(r,2998271,!0);if(t&&t!==xe)return t}else if(e.isEntityName(r)&&W0(r)){var o=e.getAncestor(r,265);return e.Debug.assert(o!==void 0),Nl(r,!0)}if(e.isEntityName(r)){var s=n9(r);if(s){Va(s);var u=va(r).resolvedSymbol;return u===xe?void 0:u}}for(;e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(r);)r=r.parent;if(r9(r)){var h=0;r.parent.kind===228?(h=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(r.parent)&&(h|=111551)):h=1920,h|=2097152;var z=e.isEntityNameExpression(r)?Ds(r,h):void 0;if(z)return z}if(r.parent.kind===340)return e.getParameterSymbolFromJSDoc(r.parent);if(r.parent.kind===163&&r.parent.parent.kind===344){e.Debug.assert(!e.isInJSFile(r));var me=e.getTypeParameterFromJsDoc(r.parent);return me&&me.symbol}if(e.isExpressionNode(r)){if(e.nodeIsMissing(r))return;var Me=e.findAncestor(r,e.or(e.isJSDocLinkLike,e.isJSDocNameReference,e.isJSDocMemberName)),h=Me?901119:111551;if(r.kind===79){if(e.isJSXTagName(r)&&dm(r)){var $e=Fb(r.parent);return $e===xe?void 0:$e}var tr=Ds(r,h,!1,!0,e.getHostSignatureFromJSDoc(r));if(!tr&&Me){var dr=e.findAncestor(r,e.or(e.isClassLike,e.isInterfaceDeclaration));if(dr)return q0(r,Et(dr))}return tr}else{if(e.isPrivateIdentifier(r))return m0(r);if(r.kind===206||r.kind===161){var Dr=va(r);return Dr.resolvedSymbol?Dr.resolvedSymbol:(r.kind===206?VC(r,0):KC(r,0),!Dr.resolvedSymbol&&Me&&e.isQualifiedName(r)?q0(r):Dr.resolvedSymbol)}else if(e.isJSDocMemberName(r))return q0(r)}}else if(Q6(r)){var h=r.parent.kind===178?788968:1920,$e=Ds(r,h,!1,!0);return $e&&$e!==xe?$e:yh(r)}if(r.parent.kind===177)return Ds(r,1)}function q0(r,i){if(e.isEntityName(r)){var t=901119,o=Ds(r,t,!1,!0,e.getHostSignatureFromJSDoc(r));if(!o&&e.isIdentifier(r)&&i&&(o=so(qs(dc(i),r.escapedText,t))),o)return o}var s=e.isIdentifier(r)?i:q0(r.left),u=e.isIdentifier(r)?r.escapedText:r.right.escapedText;if(s){var h=s.flags&111551&&bi(Jt(s),"prototype"),z=h?Jt(h):go(s);return bi(z,u)}}function el(r,i){if(r.kind===305)return e.isExternalModule(r)?so(r.symbol):void 0;var t=r.parent,o=t.parent;if(!(r.flags&33554432)){if(Y(r)){var s=Et(t);return e.isImportOrExportSpecifier(r.parent)&&r.parent.propertyName===r?wb(s):s}else if(e.isLiteralComputedPropertyDeclarationName(r))return Et(t.parent);if(r.kind===79){if(W0(r))return $6(r);if(t.kind===203&&o.kind===201&&r===t.propertyName){var u=Bd(o),h=bi(u,r.escapedText);if(h)return h}else if(e.isMetaProperty(t)&&t.name===r)return t.keywordToken===103&&e.idText(r)==="target"?tS(t).symbol:t.keywordToken===100&&e.idText(r)==="meta"?Tx().members.get("meta"):void 0}switch(r.kind){case 79:case 80:case 206:case 161:if(!e.isThisInTypeQuery(r))return $6(r);case 108:var z=e.getThisContainer(r,!1);if(e.isFunctionLike(z)){var me=yl(z);if(me.thisParameter)return me.thisParameter}if(e.isInExpressionContext(r))return yn(r).symbol;case 192:return Ch(r).symbol;case 106:return yn(r).symbol;case 134:var Me=r.parent;return Me&&Me.kind===171?Me.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(r.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(r.parent.parent)===r||(r.parent.kind===266||r.parent.kind===272)&&r.parent.moduleSpecifier===r||e.isInJSFile(r)&&e.isRequireCall(r.parent,!1)||e.isImportCall(r.parent)||e.isLiteralTypeNode(r.parent)&&e.isLiteralImportTypeNode(r.parent.parent)&&r.parent.parent.argument===r.parent)return ac(r,r,i);if(e.isCallExpression(t)&&e.isBindableObjectDefinePropertyCall(t)&&t.arguments[1]===r)return Et(t);case 8:var $e=e.isElementAccessExpression(t)?t.argumentExpression===r?Gs(t.expression):void 0:e.isLiteralTypeNode(t)&&e.isIndexedAccessTypeNode(o)?Va(o.objectType):void 0;return $e&&bi($e,e.escapeLeadingUnderscores(r.text));case 88:case 98:case 38:case 84:return Et(r.parent);case 200:return e.isLiteralImportTypeNode(r)?el(r.argument.literal,i):void 0;case 93:return e.isExportAssignment(r.parent)?e.Debug.checkDefined(r.parent.symbol):void 0;case 100:case 103:return e.isMetaProperty(r.parent)?Ak(r.parent).symbol:void 0;case 231:return yn(r).symbol;default:return}}}function o9(r){if(e.isIdentifier(r)&&e.isPropertyAccessExpression(r.parent)&&r.parent.name===r){var i=Z_(r),t=Gs(r.parent.expression),o=t.flags&1048576?t.types:[t];return e.flatMap(o,function(s){return e.filter(Hn(s),function(u){return an(i,u.keyType)})})}}function s9(r){if(r&&r.kind===297)return Ds(r.name,2208703)}function c9(r){return e.isExportSpecifier(r)?r.parent.parent.moduleSpecifier?kl(r.parent.parent,r):Ds(r.propertyName||r.name,2998271):Ds(r,2998271)}function Bd(r){if(e.isSourceFile(r)&&!e.isExternalModule(r)||r.flags&33554432)return Pe;var i=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(r),t=i&&aa(Et(i.class));if(e.isPartOfTypeNode(r)){var o=Va(r);return t?Rc(o,t.thisType):o}if(e.isExpressionNode(r))return Z6(r);if(t&&!i.isImplements){var s=e.firstOrUndefined(Qc(t));return s?Rc(s,t.thisType):Pe}if(zy(r)){var u=Et(r);return go(u)}if(e9(r)){var u=el(r);return u?go(u):Pe}if(e.isDeclaration(r)){var u=Et(r);return u?Jt(u):Pe}if(Y(r)){var u=el(r);return u?Jt(u):Pe}if(e.isBindingPattern(r))return G_(r.parent,!0,0)||Pe;if(W0(r)){var u=el(r);if(u){var h=go(u);return nn(h)?Jt(u):h}}return e.isMetaProperty(r.parent)&&r.parent.keywordToken===r.kind?Ak(r.parent):Pe}function V0(r){if(e.Debug.assert(r.kind===205||r.kind===204),r.parent.kind===244){var i=By(r.parent);return Rd(r,i||Pe)}if(r.parent.kind===221){var i=Gs(r.parent.right);return Rd(r,i||Pe)}if(r.parent.kind===296){var t=e.cast(r.parent.parent,e.isObjectLiteralExpression),o=V0(t)||Pe,s=e.indexOfNode(t.properties,r.parent);return Uk(t,o,s)}var u=e.cast(r.parent,e.isArrayLiteralExpression),h=V0(u)||Pe,z=N_(65,h,Tr,r.parent)||Pe;return zk(u,h,u.elements.indexOf(r),z)}function u9(r){var i=V0(e.cast(r.parent.parent,e.isAssignmentPattern));return i&&bi(i,r.escapedText)}function Z6(r){return e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),jc(Gs(r))}function l9(r){var i=Et(r.parent);return e.isStatic(r)?Jt(i):go(i)}function f9(r){var i=r.name;switch(i.kind){case 79:return Bu(e.idText(i));case 8:case 10:return Bu(i.text);case 162:var t=t_(i);return Ns(t,12288)?t:Li;default:return e.Debug.fail("Unsupported property name.")}}function LS(r){r=$s(r);var i=e.createSymbolTable(uo(r)),t=ot(r,0).length?Zr:ot(r,1).length?Si:void 0;return t&&e.forEach(uo(t),function(o){i.has(o.escapedName)||i.set(o.escapedName,o)}),tf(i)}function RS(r){return e.typeHasCallOrConstructSignatures(r,Di)}function eA(r){var i=_9(r);return i?e.flatMap(i,eA):[r]}function _9(r){if(e.getCheckFlags(r)&6)return e.mapDefined(Aa(r).containingType.types,function(u){return bi(u,r.escapedName)});if(r.flags&33554432){var i=r,t=i.leftSpread,o=i.rightSpread,s=i.syntheticOrigin;return t?[t,o]:s?[s]:e.singleElementArray(p9(r))}}function p9(r){for(var i,t=r;t=Aa(t).target;)i=t;return i}function d9(r){if(e.isGeneratedIdentifier(r))return!1;var i=e.getParseTreeNode(r,e.isIdentifier);if(!i)return!1;var t=i.parent;if(!t)return!1;var o=(e.isPropertyAccessExpression(t)||e.isPropertyAssignment(t))&&t.name===i;return!o&&Nv(i)===or}function g9(r){var i=ac(r.parent,r);if(!i||e.isShorthandAmbientModuleSymbol(i))return!0;var t=ll(i);i=Us(i);var o=Aa(i);return o.exportsSomeValue===void 0&&(o.exportsSomeValue=t?!!(i.flags&111551):e.forEachEntry(Pu(i),s)),o.exportsSomeValue;function s(u){return u=os(u),u&&!!(u.flags&111551)}}function m9(r){return e.isModuleOrEnumDeclaration(r.parent)&&r===r.parent.name}function v9(r,i){var t,o=e.getParseTreeNode(r,e.isIdentifier);if(o){var s=Nv(o,m9(o));if(s){if(s.flags&1048576){var u=so(s.exportSymbol);if(!i&&u.flags&944&&!(u.flags&3))return;s=u}var h=Ys(s);if(h){if(h.flags&512&&((t=h.valueDeclaration)===null||t===void 0?void 0:t.kind)===305){var z=h.valueDeclaration,me=e.getSourceFileOfNode(o),Me=z!==me;return Me?void 0:z}return e.findAncestor(o.parent,function($e){return e.isModuleOrEnumDeclaration($e)&&Et($e)===h})}}}}function y9(r){if(r.generatedImportReference)return r.generatedImportReference;var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(Zn(t,111551)&&!vu(t))return ru(t)}}function h9(r){return r.valueDeclaration&&e.isBindingElement(r.valueDeclaration)&&e.walkUpBindingElementsAndPatterns(r.valueDeclaration).parent.kind===292}function rA(r){if(r.flags&418&&r.valueDeclaration&&!e.isSourceFile(r.valueDeclaration)){var i=Aa(r);if(i.isDeclarationWithCollidingName===void 0){var t=e.getEnclosingBlockScopeContainer(r.valueDeclaration);if(e.isStatementWithLocals(t)||h9(r)){var o=va(r.valueDeclaration);if(es(t.parent,r.escapedName,111551,void 0,void 0,!1))i.isDeclarationWithCollidingName=!0;else if(o.flags&262144){var s=o.flags&524288,u=e.isIterationStatement(t,!1),h=t.kind===235&&e.isIterationStatement(t.parent,!1);i.isDeclarationWithCollidingName=!e.isBlockScopedContainerTopLevel(t)&&(!s||!u&&!h)}else i.isDeclarationWithCollidingName=!1}}return i.isDeclarationWithCollidingName}return!1}function D9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t&&rA(t))return t.valueDeclaration}}}function b9(r){var i=e.getParseTreeNode(r,e.isDeclaration);if(i){var t=Et(i);if(t)return rA(t)}return!1}function iA(r){switch(r.kind){case 265:return K0(Et(r));case 267:case 268:case 270:case 275:var i=Et(r);return!!i&&K0(i)&&!vu(i);case 272:var t=r.exportClause;return!!t&&(e.isNamespaceExport(t)||e.some(t.elements,iA));case 271:return r.expression&&r.expression.kind===79?K0(Et(r)):!0}return!1}function S9(r){var i=e.getParseTreeNode(r,e.isImportEqualsDeclaration);if(i===void 0||i.parent.kind!==305||!e.isInternalModuleImportEqualsDeclaration(i))return!1;var t=K0(Et(i));return t&&i.moduleReference&&!e.nodeIsMissing(i.moduleReference)}function K0(r){if(!r)return!1;var i=cu(Ps(r));return i===xe?!0:!!(i.flags&111551)&&(e.shouldPreserveConstEnums(ye)||!Av(i))}function Av(r){return lS(r)||!!r.constEnumOnlyModule}function G0(r,i){if(yf(r)){var t=Et(r),o=t&&Aa(t);if(o!=null&&o.referenced)return!0;var s=Aa(t).aliasTarget;if(s&&e.getEffectiveModifierFlags(r)&1&&s.flags&111551&&(e.shouldPreserveConstEnums(ye)||!Av(s)))return!0}return i?!!e.forEachChild(r,function(u){return G0(u,i)}):!1}function tA(r){if(e.nodeIsPresent(r.body)){if(e.isGetAccessor(r)||e.isSetAccessor(r))return!1;var i=Et(r),t=S_(i);return t.length>1||t.length===1&&t[0].declaration!==r}return!1}function aA(r){return!!Ye&&!kd(r)&&!e.isJSDocParameterTag(r)&&!!r.initializer&&!e.hasSyntacticModifier(r,16476)}function T9(r){return Ye&&kd(r)&&!r.initializer&&e.hasSyntacticModifier(r,16476)}function x9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return!1;var t=Et(i);return!t||!(t.flags&16)?!1:!!e.forEachEntry(dc(t),function(o){return o.flags&111551&&o.valueDeclaration&&e.isPropertyAccessExpression(o.valueDeclaration)})}function E9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return e.emptyArray;var t=Et(i);return t&&uo(Jt(t))||e.emptyArray}function Ug(r){var i,t=r.id||0;return t<0||t>=du.length?0:((i=du[t])===null||i===void 0?void 0:i.flags)||0}function H0(r){return U6(r.parent),va(r).enumMemberValue}function nA(r){switch(r.kind){case 299:case 206:case 207:return!0}return!1}function BS(r){if(r.kind===299)return H0(r);var i=va(r).resolvedSymbol;if(i&&i.flags&8){var t=i.valueDeclaration;if(e.isEnumConst(t.parent))return H0(t)}}function JS(r){return!!(r.flags&524288)&&ot(r,0).length>0}function C9(r,i){var t,o,s=e.getParseTreeNode(r,e.isEntityName);if(!s||i&&(i=e.getParseTreeNode(i),!i))return e.TypeReferenceSerializationKind.Unknown;var u=!1;if(e.isQualifiedName(s)){var h=Ds(e.getFirstIdentifier(s),111551,!0,!0,i);u=!!(!((t=h==null?void 0:h.declarations)===null||t===void 0)&&t.every(e.isTypeOnlyImportOrExportDeclaration))}var z=Ds(s,111551,!0,!0,i),me=z&&z.flags&2097152?Ps(z):z;u||(u=!!(!((o=z==null?void 0:z.declarations)===null||o===void 0)&&o.every(e.isTypeOnlyImportOrExportDeclaration)));var Me=Ds(s,788968,!0,!1,i);if(me&&me===Me){var $e=nD(!1);if($e&&me===$e)return e.TypeReferenceSerializationKind.Promise;var tr=Jt(me);if(tr&&qd(tr))return u?e.TypeReferenceSerializationKind.TypeWithCallSignature:e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!Me)return u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown;var dr=go(Me);return nn(dr)?u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown:dr.flags&3?e.TypeReferenceSerializationKind.ObjectType:Ns(dr,245760)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:Ns(dr,528)?e.TypeReferenceSerializationKind.BooleanType:Ns(dr,296)?e.TypeReferenceSerializationKind.NumberLikeType:Ns(dr,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:Ns(dr,402653316)?e.TypeReferenceSerializationKind.StringLikeType:Yn(dr)?e.TypeReferenceSerializationKind.ArrayLikeType:Ns(dr,12288)?e.TypeReferenceSerializationKind.ESSymbolType:JS(dr)?e.TypeReferenceSerializationKind.TypeWithCallSignature:Tu(dr)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function k9(r,i,t,o,s){var u=e.getParseTreeNode(r,e.isVariableLikeOrAccessor);if(!u)return e.factory.createToken(130);var h=Et(u),z=h&&!(h.flags&133120)?Hp(Jt(h)):Pe;return z.flags&8192&&z.symbol===h&&(t|=1048576),s&&(z=i_(z)),Ur.typeToTypeNode(z,i,t|1024,o)}function A9(r,i,t,o){var s=e.getParseTreeNode(r,e.isFunctionLike);if(!s)return e.factory.createToken(130);var u=yl(s);return Ur.typeToTypeNode(yo(u),i,t|1024,o)}function N9(r,i,t,o){var s=e.getParseTreeNode(r,e.isExpression);if(!s)return e.factory.createToken(130);var u=$c(Z6(s));return Ur.typeToTypeNode(u,i,t|1024,o)}function P9(r){return ii.has(e.escapeLeadingUnderscores(r))}function Nv(r,i){var t=va(r).resolvedSymbol;if(t)return t;var o=r;if(i){var s=r.parent;e.isDeclaration(s)&&r===s.name&&(o=zi(s))}return es(o,r.escapedText,3257279,void 0,void 0,!0)}function I9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t)return cu(t).valueDeclaration}}}function w9(r){return e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r)?Kp(Jt(Et(r))):!1}function O9(r,i,t){var o=r.flags&1024?Ur.symbolToExpression(r.symbol,111551,i,void 0,t):r===Dt?e.factory.createTrue():r===xt&&e.factory.createFalse();if(o)return o;var s=r.value;return typeof s=="object"?e.factory.createBigIntLiteral(s):typeof s=="number"?e.factory.createNumericLiteral(s):e.factory.createStringLiteral(s)}function F9(r,i){var t=Jt(Et(r));return O9(t,r,i)}function oA(r){return r?(po(r),e.getSourceFileOfNode(r).localJsxFactory||Se):Se}function jS(r){if(r){var i=e.getSourceFileOfNode(r);if(i){if(i.localJsxFragmentFactory)return i.localJsxFragmentFactory;var t=i.pragmas.get("jsxfrag"),o=e.isArray(t)?t[0]:t;if(o)return i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),i.localJsxFragmentFactory}}if(ye.jsxFragmentFactory)return e.parseIsolatedEntityName(ye.jsxFragmentFactory,Ae)}function M9(){var r=l.getResolvedTypeReferenceDirectives(),i;return r&&(i=new e.Map,r.forEach(function(me,Me,$e){if(!(!me||!me.resolvedFileName)){var tr=l.getSourceFile(me.resolvedFileName);tr&&z(tr,Me,$e)}})),{getReferencedExportContainer:v9,getReferencedImportDeclaration:y9,getReferencedDeclarationWithCollidingName:D9,isDeclarationWithCollidingName:b9,isValueAliasDeclaration:function(me){var Me=e.getParseTreeNode(me);return Me?iA(Me):!0},hasGlobalName:P9,isReferencedAliasDeclaration:function(me,Me){var $e=e.getParseTreeNode(me);return $e?G0($e,Me):!0},getNodeCheckFlags:function(me){var Me=e.getParseTreeNode(me);return Me?Ug(Me):0},isTopLevelValueImportEqualsWithEntityName:S9,isDeclarationVisible:wu,isImplementationOfOverload:tA,isRequiredInitializedParameter:aA,isOptionalUninitializedParameterProperty:T9,isExpandoFunctionDeclaration:x9,getPropertiesOfContainerFunction:E9,createTypeOfDeclaration:k9,createReturnTypeOfSignatureDeclaration:A9,createTypeOfExpression:N9,createLiteralConstValue:F9,isSymbolAccessible:g_,isEntityNameVisible:af,getConstantValue:function(me){var Me=e.getParseTreeNode(me,nA);return Me?BS(Me):void 0},collectLinkedAliases:V_,getReferencedValueDeclaration:I9,getTypeReferenceSerializationKind:C9,isOptionalParameter:kd,moduleExportsSomeValue:g9,isArgumentsLocalBinding:d9,getExternalModuleFileFromDeclaration:function(me){var Me=e.getParseTreeNode(me,e.hasPossibleExternalModuleReference);return Me&&US(Me)},getTypeReferenceDirectivesForEntityName:s,getTypeReferenceDirectivesForSymbol:u,isLiteralConstDeclaration:w9,isLateBound:function(me){var Me=e.getParseTreeNode(me,e.isDeclaration),$e=Me&&Et(Me);return!!($e&&e.getCheckFlags($e)&4096)},getJsxFactoryEntity:oA,getJsxFragmentFactoryEntity:jS,getAllAccessorDeclarations:function(me){me=e.getParseTreeNode(me,e.isGetOrSetAccessorDeclaration);var Me=me.kind===173?172:173,$e=e.getDeclarationOfKind(Et(me),Me),tr=$e&&$e.pos3})||Xr(r,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,h,4):u&1048576?e.some(S_(z),function(me){return Wc(me)>4})||Xr(r,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,h,5):u&1024&&(e.some(S_(z),function(me){return Wc(me)>2})||Xr(r,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,h,3)):Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h)}}ne|=i}}}function R9(r){switch(r){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"__classPrivateFieldIn";case 4194304:return"__createBinding";default:return e.Debug.fail("Unrecognized helper")}}function B9(r,i){return ue||(ue=Il(r,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,i)||xe),ue}function Ff(r){return J9(r)||sA(r)}function J9(r){if(!r.decorators)return!1;if(e.nodeCanBeDecorated(r,r.parent,r.parent.parent)){if(r.kind===172||r.kind===173){var i=e.getAllAccessorDeclarations(r.parent.members,r);if(i.firstAccessor.decorators&&r===i.secondAccessor)return Hs(r,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}}else return r.kind===169&&!e.nodeIsPresent(r.body)?Hs(r,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload):Hs(r,e.Diagnostics.Decorators_are_not_valid_here);return!1}function sA(r){var i=j9(r);if(i!==void 0)return i;for(var t,o,s,u,h=0,z=0,me=r.modifiers;z1||r.modifiers[0].kind!==i}function z9(r,i){switch(r.kind){case 169:case 256:case 213:case 214:return!1}return Tt(i,e.Diagnostics._0_modifier_cannot_be_used_here,"async")}function ng(r,i){return i===void 0&&(i=e.Diagnostics.Trailing_comma_not_allowed),r&&r.hasTrailingComma?rd(r[0],r.end-1,1,i):!1}function cA(r,i){if(r&&r.length===0){var t=r.pos-1,o=e.skipTrivia(i.text,r.end)+1;return rd(i,t,o-t,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function W9(r){for(var i=!1,t=r.length,o=0;o=3){var i=r.body&&e.isBlock(r.body)&&e.findUseStrictPrologue(r.body.statements);if(i){var t=q9(r.parameters);if(e.length(t)){e.forEach(t,function(s){e.addRelatedInfo(Xr(s,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(i,e.Diagnostics.use_strict_directive_used_here))});var o=t.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,Ve([Xr(i,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],o,!1)),!0}}}return!1}function X0(r){var i=e.getSourceFileOfNode(r);return Ff(r)||cA(r.typeParameters,i)||W9(r.parameters)||G9(r,i)||e.isFunctionLikeDeclaration(r)&&V9(r)}function K9(r){var i=e.getSourceFileOfNode(r);return $9(r)||cA(r.typeParameters,i)}function G9(r,i){if(!e.isArrowFunction(r))return!1;r.typeParameters&&!(e.length(r.typeParameters)>1||r.typeParameters.hasTrailingComma||r.typeParameters[0].constraint)&&i&&e.fileExtensionIsOneOf(i.fileName,[".mts",".cts"])&&Tt(r.typeParameters[0],e.Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);var t=r.equalsGreaterThanToken,o=e.getLineAndCharacterOfPosition(i,t.pos).line,s=e.getLineAndCharacterOfPosition(i,t.end).line;return o!==s&&Tt(t,e.Diagnostics.Line_terminator_not_permitted_before_arrow)}function H9(r){var i=r.parameters[0];if(r.parameters.length!==1)return Tt(i?i.name:r,e.Diagnostics.An_index_signature_must_have_exactly_one_parameter);if(ng(r.parameters,e.Diagnostics.An_index_signature_cannot_have_a_trailing_comma),i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);if(e.hasEffectiveModifiers(i))return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);if(i.initializer)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);if(!i.type)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);var t=Va(i.type);return rg(t,function(o){return!!(o.flags&8576)})||rv(t)?Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead):gf(t,vh)?r.type?!1:Tt(r,e.Diagnostics.An_index_signature_must_have_a_type_annotation):Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type)}function X9(r){return Ff(r)||H9(r)}function Q9(r,i){if(i&&i.length===0){var t=e.getSourceFileOfNode(r),o=i.pos-1,s=e.skipTrivia(t.text,i.end)+1;return rd(t,o,s-o,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}function Wy(r,i){return ng(i)||Q9(r,i)}function Y9(r){return r.questionDotToken||r.flags&32?Tt(r.template,e.Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain):!1}function uA(r){var i=r.types;if(ng(i))return!0;if(i&&i.length===0){var t=e.tokenToString(r.token);return rd(r,i.pos,0,e.Diagnostics._0_list_cannot_be_empty,t)}return e.some(i,lA)}function lA(r){return e.isExpressionWithTypeArguments(r)&&e.isImportKeyword(r.expression)&&r.typeArguments?Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments):Wy(r,r.typeArguments)}function $9(r){var i=!1,t=!1;if(!Ff(r)&&r.heritageClauses)for(var o=0,s=r.heritageClauses;o1)return Hs(u.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);i=!0}else{if(e.Debug.assert(u.token===117),t)return Hs(u,e.Diagnostics.implements_clause_already_seen);t=!0}uA(u)}}function Z9(r){var i=!1;if(r.heritageClauses)for(var t=0,o=r.heritageClauses;t=4)break;default:rn.add(e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}else if(!Jd(i)){var t=e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules),o=e.getContainingFunction(r);if(o&&o.kind!==171){e.Debug.assert((e.getFunctionFlags(o)&2)===0,"Enclosing function should never be an async function.");var s=e.createDiagnosticForNode(o,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(t,s)}return rn.add(t),!0}return!1}if(e.isForOfStatement(r)&&!(r.flags&32768)&&e.isIdentifier(r.initializer)&&r.initializer.escapedText==="async")return Tt(r.initializer,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async),!1;if(r.initializer.kind===255){var u=r.initializer;if(!VS(u)){var h=u.declarations;if(!h.length)return!1;if(h.length>1){var t=r.kind===243?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 Hs(u.declarations[1],t)}var z=h[0];if(z.initializer){var t=r.kind===243?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 Tt(z.name,t)}if(z.type){var t=r.kind===243?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 Tt(z,t)}}}return!1}function aL(r){if(!(r.flags&16777216)&&r.parent.kind!==182&&r.parent.kind!==258){if(Ae<1)return Tt(r.name,e.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.body===void 0&&!e.hasSyntacticModifier(r,128))return rd(r,r.end-1,1,e.Diagnostics._0_expected,"{")}if(r.body){if(e.hasSyntacticModifier(r,128))return Tt(r,e.Diagnostics.An_abstract_accessor_cannot_have_an_implementation);if(r.parent.kind===182||r.parent.kind===258)return Tt(r.body,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts)}if(r.typeParameters)return Tt(r.name,e.Diagnostics.An_accessor_cannot_have_type_parameters);if(!nL(r))return Tt(r.name,r.kind===172?e.Diagnostics.A_get_accessor_cannot_have_parameters:e.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);if(r.kind===173){if(r.type)return Tt(r.name,e.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);var i=e.Debug.checkDefined(e.getSetAccessorValueParameter(r),"Return value does not match parameter count assertion.");if(i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.A_set_accessor_cannot_have_rest_parameter);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);if(i.initializer)return Tt(r.name,e.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}function nL(r){return qS(r)||r.parameters.length===(r.kind===172?0:1)}function qS(r){if(r.parameters.length===(r.kind===172?1:2))return e.getThisParameter(r)}function oL(r){if(r.operator===154){if(r.type.kind!==151)return Tt(r.type,e.Diagnostics._0_expected,e.tokenToString(151));var i=e.walkUpParenthesizedTypes(r.parent);if(e.isInJSFile(i)&&e.isJSDocTypeExpression(i)){var t=e.getJSDocHost(i);t&&(i=e.getSingleVariableOfVariableStatement(t)||t)}switch(i.kind){case 254:var o=i;if(o.name.kind!==79)return Tt(r,e.Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!e.isVariableDeclarationInVariableStatement(o))return Tt(r,e.Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(o.parent.flags&2))return Tt(i.name,e.Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 167:if(!e.isStatic(i)||!e.hasEffectiveReadonlyModifier(i))return Tt(i.name,e.Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 166:if(!e.hasSyntacticModifier(i,64))return Tt(i.name,e.Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:return Tt(r,e.Diagnostics.unique_symbol_types_are_not_allowed_here)}}else if(r.operator===145&&r.type.kind!==183&&r.type.kind!==184)return Hs(r,e.Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,e.tokenToString(151))}function Em(r,i){if(I1(r))return Tt(r,i)}function dA(r){if(X0(r))return!0;if(r.kind===169){if(r.parent.kind===205){if(r.modifiers&&!(r.modifiers.length===1&&e.first(r.modifiers).kind===131))return Hs(r,e.Diagnostics.Modifiers_cannot_appear_here);if(fA(r.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(_A(r.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(r.body===void 0)return rd(r,r.end-1,1,e.Diagnostics._0_expected,"{")}if(WS(r))return!0}if(e.isClassLike(r.parent)){if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.flags&16777216)return Em(r.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(r.kind===169&&!r.body)return Em(r.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(r.parent.kind===258)return Em(r.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(r.parent.kind===182)return Em(r.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 sL(r){for(var i=r;i;){if(e.isFunctionLikeOrClassStaticBlockDeclaration(i))return Tt(r,e.Diagnostics.Jump_target_cannot_cross_function_boundary);switch(i.kind){case 250:if(r.label&&i.label.escapedText===r.label.escapedText){var t=r.kind===245&&!e.isIterationStatement(i.statement,!0);return t?Tt(r,e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement):!1}break;case 249:if(r.kind===246&&!r.label)return!1;break;default:if(e.isIterationStatement(i,!1)&&!r.label)return!1;break}i=i.parent}if(r.label){var o=r.kind===246?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 Tt(r,o)}else{var o=r.kind===246?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 Tt(r,o)}}function cL(r){if(r.dotDotDotToken){var i=r.parent.elements;if(r!==e.last(i))return Tt(r,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);if(ng(i,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),r.propertyName)return Tt(r.name,e.Diagnostics.A_rest_element_cannot_have_a_property_name)}if(r.dotDotDotToken&&r.initializer)return rd(r,r.initializer.pos-1,1,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}function gA(r){return e.isStringOrNumericLiteralLike(r)||r.kind===219&&r.operator===40&&r.operand.kind===8}function uL(r){return r.kind===9||r.kind===219&&r.operator===40&&r.operand.kind===9}function lL(r){if((e.isPropertyAccessExpression(r)||e.isElementAccessExpression(r)&&gA(r.argumentExpression))&&e.isEntityNameExpression(r.expression))return!!(Os(r).flags&1024)}function mA(r){var i=r.initializer;if(i){var t=!(gA(i)||lL(i)||i.kind===110||i.kind===95||uL(i)),o=e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r);if(o&&!r.type){if(t)return Tt(i,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference)}else return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(!o||t)return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function fL(r){if(r.parent.parent.kind!==243&&r.parent.parent.kind!==244){if(r.flags&16777216)mA(r);else if(!r.initializer){if(e.isBindingPattern(r.name)&&!e.isBindingPattern(r.parent))return Tt(r,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(r))return Tt(r,e.Diagnostics.const_declarations_must_be_initialized)}}if(r.exclamationToken&&(r.parent.parent.kind!==237||!r.type||r.initializer||r.flags&16777216)){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.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 Tt(r.exclamationToken,i)}(er0}function Hs(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,h.start,h.length,i,t,o,s)),!0}return!1}function rd(r,i,t,o,s,u,h){var z=e.getSourceFileOfNode(r);return Jd(z)?!1:(rn.add(e.createFileDiagnostic(z,i,t,o,s,u,h)),!0)}function dL(r,i,t,o,s,u){var h=e.getSourceFileOfNode(i);return Jd(h)?!1:(Es(r,i,t,o,s,u),!0)}function Tt(r,i,t,o,s){var u=e.getSourceFileOfNode(r);return Jd(u)?!1:(rn.add(e.createDiagnosticForNode(r,i,t,o,s)),!0)}function gL(r){var i=e.isInJSFile(r)?e.getJSDocTypeParameterDeclarations(r):void 0,t=r.typeParameters||i&&e.firstOrUndefined(i);if(t){var o=t.pos===t.end?t.pos:e.skipTrivia(e.getSourceFileOfNode(r).text,t.pos);return rd(r,o,t.end-o,e.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration)}}function mL(r){var i=e.getEffectiveReturnTypeNode(r);if(i)return Tt(i,e.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration)}function vL(r){if(e.isComputedPropertyName(r.name)&&e.isBinaryExpression(r.name.expression)&&r.name.expression.operatorToken.kind===101)return Tt(r.parent.members[0],e.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);if(e.isClassLike(r.parent)){if(e.isStringLiteral(r.name)&&r.name.text==="constructor")return Tt(r.name,e.Diagnostics.Classes_may_not_have_a_field_named_constructor);if(Em(r.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(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher)}else if(r.parent.kind===258){if(Em(r.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(r.initializer)return Tt(r.initializer,e.Diagnostics.An_interface_property_cannot_have_an_initializer)}else if(e.isTypeLiteralNode(r.parent)){if(Em(r.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(r.initializer)return Tt(r.initializer,e.Diagnostics.A_type_literal_property_cannot_have_an_initializer)}if(r.flags&16777216&&mA(r),e.isPropertyDeclaration(r)&&r.exclamationToken&&(!e.isClassLike(r.parent)||!r.type||r.initializer||r.flags&16777216||e.isStatic(r)||e.hasAbstractModifier(r))){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.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 Tt(r.exclamationToken,i)}}function yL(r){return r.kind===258||r.kind===259||r.kind===266||r.kind===265||r.kind===272||r.kind===271||r.kind===264||e.hasSyntacticModifier(r,515)?!1:Hs(r,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function hL(r){for(var i=0,t=r.statements;i=1?i=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(r,196)?i=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(r,299)&&(i=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),i){var t=e.isPrefixUnaryExpression(r.parent)&&r.parent.operator===40,o=(t?"-":"")+"0o"+r.text;return Tt(t?r.parent:r,i,o)}}return bL(r),!1}function bL(r){var i=e.getTextOfNode(r).indexOf(".")!==-1,t=r.numericLiteralFlags&16;if(!(i||t)){var o=+r.text;o<=Math.pow(2,53)-1||Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}}function SL(r){var i=e.isLiteralTypeNode(r.parent)||e.isPrefixUnaryExpression(r.parent)&&e.isLiteralTypeNode(r.parent.parent);return!!(!i&&Ae<7&&Tt(r,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020))}function TL(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,e.textSpanEnd(h),0,i,t,o,s)),!0}return!1}function xL(){return Gr||(Gr=[],ii.forEach(function(r,i){a.test(i)&&Gr.push(r)})),Gr}function EL(r){var i;return r.isTypeOnly&&r.name&&r.namedBindings?Tt(r,e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both):r.isTypeOnly&&((i=r.namedBindings)===null||i===void 0?void 0:i.kind)===269?DA(r.namedBindings):!1}function DA(r){return!!e.forEach(r.elements,function(i){if(i.isTypeOnly)return Hs(i,i.kind===270?e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement)})}function CL(r){if(er===e.ModuleKind.ES2015)return Tt(r,e.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext);if(r.typeArguments)return Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);var i=r.arguments;if(er!==e.ModuleKind.ESNext&&er!==e.ModuleKind.NodeNext&&(ng(i),i.length>1)){var t=i[1];return Tt(t,e.Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext)}if(i.length===0||i.length>2)return Tt(r,e.Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments);var o=e.find(i,e.isSpreadElement);return o?Tt(o,e.Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element):!1}function kL(r,i){var t=e.getObjectFlags(r);if(t&20&&i.flags&1048576)return e.find(i.types,function(o){if(o.flags&524288){var s=t&e.getObjectFlags(o);if(s&4)return r.target===o.target;if(s&16)return!!r.aliasSymbol&&r.aliasSymbol===o.aliasSymbol}return!1})}function AL(r,i){if(e.getObjectFlags(r)&128&&rg(i,sp))return e.find(i.types,function(t){return!sp(t)})}function NL(r,i){var t=0,o=ot(r,t).length>0||(t=1,ot(r,t).length>0);if(o)return e.find(i.types,function(s){return ot(s,t).length>0})}function PL(r,i){var t;if(!(r.flags&406978556))for(var o=0,s=0,u=i.types;s=o&&(t=h,o=me)}}}return t}function IL(r){if(fs(r,67108864)){var i=ec(r,function(t){return!(t.flags&131068)});if(!(i.flags&131072))return i}return r}function bA(r,i,t,o){if(i.flags&1048576&&r.flags&2621440){var s=$E(i,r);if(s)return s;var u=uo(r);if(u){var h=YE(u,i);if(h)return UD(i,e.map(h,function(z){return[function(){return Jt(z)},z.escapedName]}),t,void 0,o)}}}}e.createTypeChecker=L;function P(l){return!e.isAccessor(l)}function k(l){return l.kind!==256&&l.kind!==169||!!l.body}function Y(l){switch(l.parent.kind){case 270:case 275:return e.isIdentifier(l);default:return e.isDeclarationName(l)}}var U;(function(l){l.JSX="JSX",l.IntrinsicElements="IntrinsicElements",l.ElementClass="ElementClass",l.ElementAttributesPropertyNameContainer="ElementAttributesProperty",l.ElementChildrenAttributeNameContainer="ElementChildrenAttribute",l.Element="Element",l.IntrinsicAttributes="IntrinsicAttributes",l.IntrinsicClassAttributes="IntrinsicClassAttributes",l.LibraryManagedAttributes="LibraryManagedAttributes"})(U||(U={}));function j(l){switch(l){case 0:return"yieldType";case 1:return"returnType";case 2:return"nextType"}}function H(l){return!!(l.flags&1)}e.signatureHasRestParameter=H;function I(l){return!!(l.flags&2)}e.signatureHasLiteralTypes=I})(ke||(ke={}));var ke;(function(e){function a(f,T,K,b){if(f===void 0||T===void 0)return f;var se=T(f);if(se===f)return f;var J;if(se!==void 0)return e.isArray(se)?J=(b||oe)(se):J=se,e.Debug.assertNode(J,K),J}e.visitNode=a;function C(f,T,K,b,se){if(f===void 0||T===void 0)return f;var J,ie=f.length;(b===void 0||b<0)&&(b=0),(se===void 0||se>ie-b)&&(se=ie-b);var R,q=-1,O=-1;(b>0||se=2&&(se=E(se,K)),K.setLexicalEnvironmentFlags(1,!1)),K.suspendLexicalEnvironment(),se}e.visitParameterList=B;function E(f,T){for(var K,b=0;b0&&ie<=160||ie===192)return f;var R=K.factory;switch(ie){case 79:return e.Debug.type(f),R.updateIdentifier(f,b(f.typeArguments,T,e.isTypeNodeOrTypeParameterDeclaration));case 161:return e.Debug.type(f),R.updateQualifiedName(f,J(f.left,T,e.isEntityName),J(f.right,T,e.isIdentifier));case 162:return e.Debug.type(f),R.updateComputedPropertyName(f,J(f.expression,T,e.isExpression));case 163:return e.Debug.type(f),R.updateTypeParameterDeclaration(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),J(f.constraint,T,e.isTypeNode),J(f.default,T,e.isTypeNode));case 164:return e.Debug.type(f),R.updateParameterDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.name,T,e.isBindingName),J(f.questionToken,se,e.isQuestionToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 165:return e.Debug.type(f),R.updateDecorator(f,J(f.expression,T,e.isExpression));case 166:return e.Debug.type(f),R.updatePropertySignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isToken),J(f.type,T,e.isTypeNode));case 167:return e.Debug.type(f),R.updatePropertyDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken||f.exclamationToken,se,e.isQuestionOrExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 168:return e.Debug.type(f),R.updateMethodSignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 169:return e.Debug.type(f),R.updateMethodDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 171:return e.Debug.type(f),R.updateConstructorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),B(f.parameters,T,K,b),p(f.body,T,K,J));case 172:return e.Debug.type(f),R.updateGetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 173:return e.Debug.type(f),R.updateSetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),B(f.parameters,T,K,b),p(f.body,T,K,J));case 170:return e.Debug.type(f),K.startLexicalEnvironment(),K.suspendLexicalEnvironment(),R.updateClassStaticBlockDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),p(f.body,T,K,J));case 174:return e.Debug.type(f),R.updateCallSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 175:return e.Debug.type(f),R.updateConstructSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 176:return e.Debug.type(f),R.updateIndexSignature(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 177:return e.Debug.type(f),R.updateTypePredicateNode(f,J(f.assertsModifier,T,e.isAssertsKeyword),J(f.parameterName,T,e.isIdentifierOrThisTypeNode),J(f.type,T,e.isTypeNode));case 178:return e.Debug.type(f),R.updateTypeReferenceNode(f,J(f.typeName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 179:return e.Debug.type(f),R.updateFunctionTypeNode(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 180:return e.Debug.type(f),R.updateConstructorTypeNode(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 181:return e.Debug.type(f),R.updateTypeQueryNode(f,J(f.exprName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 182:return e.Debug.type(f),R.updateTypeLiteralNode(f,b(f.members,T,e.isTypeElement));case 183:return e.Debug.type(f),R.updateArrayTypeNode(f,J(f.elementType,T,e.isTypeNode));case 184:return e.Debug.type(f),R.updateTupleTypeNode(f,b(f.elements,T,e.isTypeNode));case 185:return e.Debug.type(f),R.updateOptionalTypeNode(f,J(f.type,T,e.isTypeNode));case 186:return e.Debug.type(f),R.updateRestTypeNode(f,J(f.type,T,e.isTypeNode));case 187:return e.Debug.type(f),R.updateUnionTypeNode(f,b(f.types,T,e.isTypeNode));case 188:return e.Debug.type(f),R.updateIntersectionTypeNode(f,b(f.types,T,e.isTypeNode));case 189:return e.Debug.type(f),R.updateConditionalTypeNode(f,J(f.checkType,T,e.isTypeNode),J(f.extendsType,T,e.isTypeNode),J(f.trueType,T,e.isTypeNode),J(f.falseType,T,e.isTypeNode));case 190:return e.Debug.type(f),R.updateInferTypeNode(f,J(f.typeParameter,T,e.isTypeParameterDeclaration));case 200:return e.Debug.type(f),R.updateImportTypeNode(f,J(f.argument,T,e.isTypeNode),J(f.assertions,T,e.isNode),J(f.qualifier,T,e.isEntityName),C(f.typeArguments,T,e.isTypeNode),f.isTypeOf);case 295:return e.Debug.type(f),R.updateImportTypeAssertionContainer(f,J(f.assertClause,T,e.isNode),f.multiLine);case 197:return e.Debug.type(f),R.updateNamedTupleMember(f,a(f.dotDotDotToken,T,e.isDotDotDotToken),a(f.name,T,e.isIdentifier),a(f.questionToken,T,e.isQuestionToken),a(f.type,T,e.isTypeNode));case 191:return e.Debug.type(f),R.updateParenthesizedType(f,J(f.type,T,e.isTypeNode));case 193:return e.Debug.type(f),R.updateTypeOperatorNode(f,J(f.type,T,e.isTypeNode));case 194:return e.Debug.type(f),R.updateIndexedAccessTypeNode(f,J(f.objectType,T,e.isTypeNode),J(f.indexType,T,e.isTypeNode));case 195:return e.Debug.type(f),R.updateMappedTypeNode(f,J(f.readonlyToken,se,e.isReadonlyKeywordOrPlusOrMinusToken),J(f.typeParameter,T,e.isTypeParameterDeclaration),J(f.nameType,T,e.isTypeNode),J(f.questionToken,se,e.isQuestionOrPlusOrMinusToken),J(f.type,T,e.isTypeNode),b(f.members,T,e.isTypeElement));case 196:return e.Debug.type(f),R.updateLiteralTypeNode(f,J(f.literal,T,e.isExpression));case 198:return e.Debug.type(f),R.updateTemplateLiteralType(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateLiteralTypeSpan));case 199:return e.Debug.type(f),R.updateTemplateLiteralTypeSpan(f,J(f.type,T,e.isTypeNode),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 201:return e.Debug.type(f),R.updateObjectBindingPattern(f,b(f.elements,T,e.isBindingElement));case 202:return e.Debug.type(f),R.updateArrayBindingPattern(f,b(f.elements,T,e.isArrayBindingElement));case 203:return e.Debug.type(f),R.updateBindingElement(f,J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.propertyName,T,e.isPropertyName),J(f.name,T,e.isBindingName),J(f.initializer,T,e.isExpression));case 204:return e.Debug.type(f),R.updateArrayLiteralExpression(f,b(f.elements,T,e.isExpression));case 205:return e.Debug.type(f),R.updateObjectLiteralExpression(f,b(f.properties,T,e.isObjectLiteralElementLike));case 206:return f.flags&32?(e.Debug.type(f),R.updatePropertyAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.name,T,e.isMemberName))):(e.Debug.type(f),R.updatePropertyAccessExpression(f,J(f.expression,T,e.isExpression),J(f.name,T,e.isMemberName)));case 207:return f.flags&32?(e.Debug.type(f),R.updateElementAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.argumentExpression,T,e.isExpression))):(e.Debug.type(f),R.updateElementAccessExpression(f,J(f.expression,T,e.isExpression),J(f.argumentExpression,T,e.isExpression)));case 208:return f.flags&32?(e.Debug.type(f),R.updateCallChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression))):(e.Debug.type(f),R.updateCallExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression)));case 209:return e.Debug.type(f),R.updateNewExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression));case 210:return e.Debug.type(f),R.updateTaggedTemplateExpression(f,J(f.tag,T,e.isExpression),C(f.typeArguments,T,e.isTypeNode),J(f.template,T,e.isTemplateLiteral));case 211:return e.Debug.type(f),R.updateTypeAssertion(f,J(f.type,T,e.isTypeNode),J(f.expression,T,e.isExpression));case 212:return e.Debug.type(f),R.updateParenthesizedExpression(f,J(f.expression,T,e.isExpression));case 213:return e.Debug.type(f),R.updateFunctionExpression(f,b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 214:return e.Debug.type(f),R.updateArrowFunction(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),J(f.equalsGreaterThanToken,se,e.isEqualsGreaterThanToken),p(f.body,T,K,J));case 215:return e.Debug.type(f),R.updateDeleteExpression(f,J(f.expression,T,e.isExpression));case 216:return e.Debug.type(f),R.updateTypeOfExpression(f,J(f.expression,T,e.isExpression));case 217:return e.Debug.type(f),R.updateVoidExpression(f,J(f.expression,T,e.isExpression));case 218:return e.Debug.type(f),R.updateAwaitExpression(f,J(f.expression,T,e.isExpression));case 219:return e.Debug.type(f),R.updatePrefixUnaryExpression(f,J(f.operand,T,e.isExpression));case 220:return e.Debug.type(f),R.updatePostfixUnaryExpression(f,J(f.operand,T,e.isExpression));case 221:return e.Debug.type(f),R.updateBinaryExpression(f,J(f.left,T,e.isExpression),J(f.operatorToken,se,e.isBinaryOperatorToken),J(f.right,T,e.isExpression));case 222:return e.Debug.type(f),R.updateConditionalExpression(f,J(f.condition,T,e.isExpression),J(f.questionToken,se,e.isQuestionToken),J(f.whenTrue,T,e.isExpression),J(f.colonToken,se,e.isColonToken),J(f.whenFalse,T,e.isExpression));case 223:return e.Debug.type(f),R.updateTemplateExpression(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateSpan));case 224:return e.Debug.type(f),R.updateYieldExpression(f,J(f.asteriskToken,se,e.isAsteriskToken),J(f.expression,T,e.isExpression));case 225:return e.Debug.type(f),R.updateSpreadElement(f,J(f.expression,T,e.isExpression));case 226:return e.Debug.type(f),R.updateClassExpression(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 228:return e.Debug.type(f),R.updateExpressionWithTypeArguments(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode));case 229:return e.Debug.type(f),R.updateAsExpression(f,J(f.expression,T,e.isExpression),J(f.type,T,e.isTypeNode));case 230:return f.flags&32?(e.Debug.type(f),R.updateNonNullChain(f,J(f.expression,T,e.isExpression))):(e.Debug.type(f),R.updateNonNullExpression(f,J(f.expression,T,e.isExpression)));case 231:return e.Debug.type(f),R.updateMetaProperty(f,J(f.name,T,e.isIdentifier));case 233:return e.Debug.type(f),R.updateTemplateSpan(f,J(f.expression,T,e.isExpression),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 235:return e.Debug.type(f),R.updateBlock(f,b(f.statements,T,e.isStatement));case 237:return e.Debug.type(f),R.updateVariableStatement(f,b(f.modifiers,T,e.isModifier),J(f.declarationList,T,e.isVariableDeclarationList));case 238:return e.Debug.type(f),R.updateExpressionStatement(f,J(f.expression,T,e.isExpression));case 239:return e.Debug.type(f),R.updateIfStatement(f,J(f.expression,T,e.isExpression),J(f.thenStatement,T,e.isStatement,R.liftToBlock),J(f.elseStatement,T,e.isStatement,R.liftToBlock));case 240:return e.Debug.type(f),R.updateDoStatement(f,m(f.statement,T,K),J(f.expression,T,e.isExpression));case 241:return e.Debug.type(f),R.updateWhileStatement(f,J(f.expression,T,e.isExpression),m(f.statement,T,K));case 242:return e.Debug.type(f),R.updateForStatement(f,J(f.initializer,T,e.isForInitializer),J(f.condition,T,e.isExpression),J(f.incrementor,T,e.isExpression),m(f.statement,T,K));case 243:return e.Debug.type(f),R.updateForInStatement(f,J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 244:return e.Debug.type(f),R.updateForOfStatement(f,J(f.awaitModifier,se,e.isAwaitKeyword),J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 245:return e.Debug.type(f),R.updateContinueStatement(f,J(f.label,T,e.isIdentifier));case 246:return e.Debug.type(f),R.updateBreakStatement(f,J(f.label,T,e.isIdentifier));case 247:return e.Debug.type(f),R.updateReturnStatement(f,J(f.expression,T,e.isExpression));case 248:return e.Debug.type(f),R.updateWithStatement(f,J(f.expression,T,e.isExpression),J(f.statement,T,e.isStatement,R.liftToBlock));case 249:return e.Debug.type(f),R.updateSwitchStatement(f,J(f.expression,T,e.isExpression),J(f.caseBlock,T,e.isCaseBlock));case 250:return e.Debug.type(f),R.updateLabeledStatement(f,J(f.label,T,e.isIdentifier),J(f.statement,T,e.isStatement,R.liftToBlock));case 251:return e.Debug.type(f),R.updateThrowStatement(f,J(f.expression,T,e.isExpression));case 252:return e.Debug.type(f),R.updateTryStatement(f,J(f.tryBlock,T,e.isBlock),J(f.catchClause,T,e.isCatchClause),J(f.finallyBlock,T,e.isBlock));case 254:return e.Debug.type(f),R.updateVariableDeclaration(f,J(f.name,T,e.isBindingName),J(f.exclamationToken,se,e.isExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 255:return e.Debug.type(f),R.updateVariableDeclarationList(f,b(f.declarations,T,e.isVariableDeclaration));case 256:return e.Debug.type(f),R.updateFunctionDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 257:return e.Debug.type(f),R.updateClassDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 258:return e.Debug.type(f),R.updateInterfaceDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isTypeElement));case 259:return e.Debug.type(f),R.updateTypeAliasDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),J(f.type,T,e.isTypeNode));case 260:return e.Debug.type(f),R.updateEnumDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.members,T,e.isEnumMember));case 261:return e.Debug.type(f),R.updateModuleDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isModuleName),J(f.body,T,e.isModuleBody));case 262:return e.Debug.type(f),R.updateModuleBlock(f,b(f.statements,T,e.isStatement));case 263:return e.Debug.type(f),R.updateCaseBlock(f,b(f.clauses,T,e.isCaseOrDefaultClause));case 264:return e.Debug.type(f),R.updateNamespaceExportDeclaration(f,J(f.name,T,e.isIdentifier));case 265:return e.Debug.type(f),R.updateImportEqualsDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.moduleReference,T,e.isModuleReference));case 266:return e.Debug.type(f),R.updateImportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.importClause,T,e.isImportClause),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 293:return e.Debug.type(f),R.updateAssertClause(f,b(f.elements,T,e.isAssertEntry),f.multiLine);case 294:return e.Debug.type(f),R.updateAssertEntry(f,J(f.name,T,e.isAssertionKey),J(f.value,T,e.isExpressionNode));case 267:return e.Debug.type(f),R.updateImportClause(f,f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.namedBindings,T,e.isNamedImportBindings));case 268:return e.Debug.type(f),R.updateNamespaceImport(f,J(f.name,T,e.isIdentifier));case 274:return e.Debug.type(f),R.updateNamespaceExport(f,J(f.name,T,e.isIdentifier));case 269:return e.Debug.type(f),R.updateNamedImports(f,b(f.elements,T,e.isImportSpecifier));case 270:return e.Debug.type(f),R.updateImportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 271:return e.Debug.type(f),R.updateExportAssignment(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.expression,T,e.isExpression));case 272:return e.Debug.type(f),R.updateExportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.exportClause,T,e.isNamedExportBindings),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 273:return e.Debug.type(f),R.updateNamedExports(f,b(f.elements,T,e.isExportSpecifier));case 275:return e.Debug.type(f),R.updateExportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 277:return e.Debug.type(f),R.updateExternalModuleReference(f,J(f.expression,T,e.isExpression));case 278:return e.Debug.type(f),R.updateJsxElement(f,J(f.openingElement,T,e.isJsxOpeningElement),b(f.children,T,e.isJsxChild),J(f.closingElement,T,e.isJsxClosingElement));case 279:return e.Debug.type(f),R.updateJsxSelfClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 280:return e.Debug.type(f),R.updateJsxOpeningElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 281:return e.Debug.type(f),R.updateJsxClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression));case 282:return e.Debug.type(f),R.updateJsxFragment(f,J(f.openingFragment,T,e.isJsxOpeningFragment),b(f.children,T,e.isJsxChild),J(f.closingFragment,T,e.isJsxClosingFragment));case 285:return e.Debug.type(f),R.updateJsxAttribute(f,J(f.name,T,e.isIdentifier),J(f.initializer,T,e.isStringLiteralOrJsxExpression));case 286:return e.Debug.type(f),R.updateJsxAttributes(f,b(f.properties,T,e.isJsxAttributeLike));case 287:return e.Debug.type(f),R.updateJsxSpreadAttribute(f,J(f.expression,T,e.isExpression));case 288:return e.Debug.type(f),R.updateJsxExpression(f,J(f.expression,T,e.isExpression));case 289:return e.Debug.type(f),R.updateCaseClause(f,J(f.expression,T,e.isExpression),b(f.statements,T,e.isStatement));case 290:return e.Debug.type(f),R.updateDefaultClause(f,b(f.statements,T,e.isStatement));case 291:return e.Debug.type(f),R.updateHeritageClause(f,b(f.types,T,e.isExpressionWithTypeArguments));case 292:return e.Debug.type(f),R.updateCatchClause(f,J(f.variableDeclaration,T,e.isVariableDeclaration),J(f.block,T,e.isBlock));case 296:return e.Debug.type(f),R.updatePropertyAssignment(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 297:return e.Debug.type(f),R.updateShorthandPropertyAssignment(f,J(f.name,T,e.isIdentifier),J(f.objectAssignmentInitializer,T,e.isExpression));case 298:return e.Debug.type(f),R.updateSpreadAssignment(f,J(f.expression,T,e.isExpression));case 299:return e.Debug.type(f),R.updateEnumMember(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 305:return e.Debug.type(f),R.updateSourceFile(f,w(f.statements,T,K));case 350:return e.Debug.type(f),R.updatePartiallyEmittedExpression(f,J(f.expression,T,e.isExpression));case 351:return e.Debug.type(f),R.updateCommaListExpression(f,b(f.elements,T,e.isExpression));default:return f}}}e.visitEachChild=G;function oe(f){return e.Debug.assert(f.length<=1,"Too many nodes written to output."),e.singleOrUndefined(f)}})(ke||(ke={}));var ke;(function(e){function a(q,O,ve,ee,he){var F=he.extendedDiagnostics?e.performance.createTimer("Source Map","beforeSourcemap","afterSourcemap"):e.performance.nullTimer,x=F.enter,X=F.exit,$=[],A=[],y=new e.Map,V,L=[],P,k=[],Y="",U=0,j=0,H=0,I=0,l=0,d=0,D=!1,fe=0,g=0,ne=0,ue=0,We=0,Fe=0,Z=!1,Be=!1,ge=!1;return{getSources:function(){return $},addSource:Re,setSourceContent:ze,addName:Ee,addMapping:Ie,appendSourceMap:_e,toJSON:er,toString:function(){return JSON.stringify(er())}};function Re(Cr){x();var Ye=e.getRelativePathToDirectoryOrUrl(ee,Cr,q.getCurrentDirectory(),q.getCanonicalFileName,!0),Br=y.get(Ye);return Br===void 0&&(Br=A.length,A.push(Ye),$.push(Cr),y.set(Ye,Br)),X(),Br}function ze(Cr,Ye){if(x(),Ye!==null){for(V||(V=[]);V.lengthYe||ue===Ye&&We>Br)}function Ie(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,"generatedLine cannot backtrack"),e.Debug.assert(Ye>=0,"generatedCharacter cannot be negative"),e.Debug.assert(Br===void 0||Br>=0,"sourceIndex cannot be negative"),e.Debug.assert(Er===void 0||Er>=0,"sourceLine cannot be negative"),e.Debug.assert(Ne===void 0||Ne>=0,"sourceCharacter cannot be negative"),x(),(He(Cr,Ye)||rr(Br,Er,Ne))&&(ye(),fe=Cr,g=Ye,Be=!1,ge=!1,Z=!0),Br!==void 0&&Er!==void 0&&Ne!==void 0&&(ne=Br,ue=Er,We=Ne,Be=!0,n!==void 0&&(Fe=n,ge=!0)),X()}function _e(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,"generatedLine cannot backtrack"),e.Debug.assert(Ye>=0,"generatedCharacter cannot be negative"),x();for(var lr=[],be,Ge=p(Br.mappings),ur=Ge.next();!ur.done;ur=Ge.next()){var yr=ur.value;if(n&&(yr.generatedLine>n.line||yr.generatedLine===n.line&&yr.generatedCharacter>n.character))break;if(!(Ne&&(yr.generatedLine=1024&&Ae()}function ye(){if(!(!Z||!we())){if(x(),U0&&(Y+=String.fromCharCode.apply(void 0,k),k.length=0)}function er(){return ye(),Ae(),{version:3,file:O,sourceRoot:ve,sources:A,names:L,mappings:Y,sourcesContent:V}}function ir(Cr){Cr<0?Cr=(-Cr<<1)+1:Cr=Cr<<1;do{var Ye=Cr&31;Cr=Cr>>5,Cr>0&&(Ye=Ye|32),de(oe(Ye))}while(Cr>0)}}e.createSourceMapGenerator=a;var C=/^\/\/[@#] source[M]appingURL=(.+)\r?\n?$/,w=/^\s*(\/\/[@#] .*)?$/;function B(q,O){return{getLineCount:function(){return O.length},getLineText:function(ve){return q.substring(O[ve],O[ve+1])}}}e.getLineInfo=B;function E(q){for(var O=q.getLineCount()-1;O>=0;O--){var ve=q.getLineText(O),ee=C.exec(ve);if(ee)return e.trimStringEnd(ee[1]);if(!ve.match(w))break}}e.tryGetSourceMappingURL=E;function Q(q){return typeof q=="string"||q===null}function le(q){return q!==null&&typeof q=="object"&&q.version===3&&typeof q.file=="string"&&typeof q.mappings=="string"&&e.isArray(q.sources)&&e.every(q.sources,e.isString)&&(q.sourceRoot===void 0||q.sourceRoot===null||typeof q.sourceRoot=="string")&&(q.sourcesContent===void 0||q.sourcesContent===null||e.isArray(q.sourcesContent)&&e.every(q.sourcesContent,Q))&&(q.names===void 0||q.names===null||e.isArray(q.names)&&e.every(q.names,e.isString))}e.isRawSourceMap=le;function N(q){try{var O=JSON.parse(q);if(le(O))return O}catch{}}e.tryParseRawSourceMap=N;function p(q){var O=!1,ve=0,ee=0,he=0,F=0,x=0,X=0,$=0,A;return{get pos(){return ve},get error(){return A},get state(){return y(!0,!0)},next:function(){for(;!O&&ve=q.length)return L("Error in decoding base64VLQFormatDecode, past the mapping string"),-1;var l=f(q.charCodeAt(ve));if(l===-1)return L("Invalid character in VLQ"),-1;j=(l&32)!==0,I=I|(l&31)<>1:(I=I>>1,I=-I),I}}e.decodeMappings=p;function m(q,O){return q===O||q.generatedLine===O.generatedLine&&q.generatedCharacter===O.generatedCharacter&&q.sourceIndex===O.sourceIndex&&q.sourceLine===O.sourceLine&&q.sourceCharacter===O.sourceCharacter&&q.nameIndex===O.nameIndex}e.sameMapping=m;function G(q){return q.sourceIndex!==void 0&&q.sourceLine!==void 0&&q.sourceCharacter!==void 0}e.isSourceMapping=G;function oe(q){return q>=0&&q<26?65+q:q>=26&&q<52?97+q-26:q>=52&&q<62?48+q-52:q===62?43:q===63?47:e.Debug.fail("".concat(q,": not a base64 value"))}function f(q){return q>=65&&q<=90?q-65:q>=97&&q<=122?q-97+26:q>=48&&q<=57?q-48+52:q===43?62:q===47?63:-1}function T(q){return q.sourceIndex!==void 0&&q.sourcePosition!==void 0}function K(q,O){return q.generatedPosition===O.generatedPosition&&q.sourceIndex===O.sourceIndex&&q.sourcePosition===O.sourcePosition}function b(q,O){return e.Debug.assert(q.sourceIndex===O.sourceIndex),e.compareValues(q.sourcePosition,O.sourcePosition)}function se(q,O){return e.compareValues(q.generatedPosition,O.generatedPosition)}function J(q){return q.sourcePosition}function ie(q){return q.generatedPosition}function R(q,O,ve){var ee=e.getDirectoryPath(ve),he=O.sourceRoot?e.getNormalizedAbsolutePath(O.sourceRoot,ee):ee,F=e.getNormalizedAbsolutePath(O.file,ee),x=q.getSourceFileLike(F),X=O.sources.map(function(H){return e.getNormalizedAbsolutePath(H,he)}),$=new e.Map(X.map(function(H,I){return[q.getCanonicalFileName(H),I]})),A,y,V;return{getSourcePosition:j,getGeneratedPosition:U};function L(H){var I=x!==void 0?e.getPositionOfLineAndCharacter(x,H.generatedLine,H.generatedCharacter,!0):-1,l,d;if(G(H)){var D=q.getSourceFileLike(X[H.sourceIndex]);l=O.sources[H.sourceIndex],d=D!==void 0?e.getPositionOfLineAndCharacter(D,H.sourceLine,H.sourceCharacter,!0):-1}return{generatedPosition:I,source:l,sourceIndex:H.sourceIndex,sourcePosition:d,nameIndex:H.nameIndex}}function P(){if(A===void 0){var H=p(O.mappings),I=e.arrayFrom(H,L);H.error!==void 0?(q.log&&q.log("Encountered error while decoding sourcemap: ".concat(H.error)),A=e.emptyArray):A=I}return A}function k(H){if(V===void 0){for(var I=[],l=0,d=P();l0&&F!==he.elements.length||!!(he.elements.length-F)&&e.isDefaultImport(ee)}e.getImportNeedsImportStarHelper=Q;function le(ee){return!Q(ee)&&(e.isDefaultImport(ee)||!!ee.importClause&&e.isNamedImports(ee.importClause.namedBindings)&&C(ee.importClause.namedBindings))}e.getImportNeedsImportDefaultHelper=le;function N(ee,he,F,x){for(var X=[],$=e.createMultiMap(),A=[],y=new e.Map,V,L=!1,P,k=!1,Y=!1,U=!1,j=0,H=he.statements;j=64&&ee<=78}e.isCompoundAssignment=f;function T(ee){switch(ee){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=T;function K(ee){if(!!e.isExpressionStatement(ee)){var he=e.skipParentheses(ee.expression);return e.isSuperCall(he)?he:void 0}}e.getSuperCallFromStatement=K;function b(ee,he){for(var F=he;F=1&&!(V.transformFlags&49152)&&!(e.getTargetOfBindingOrAssignmentElement(V).transformFlags&49152)&&!e.isComputedPropertyName(L))$=e.append($,e.visitNode(V,q.visitor));else{$&&(q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve),$=void 0);var P=f(q,ee,L);e.isComputedPropertyName(L)&&(A=e.append(A,P.argumentExpression)),N(q,V,P,V)}}}$&&q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve)}function m(q,O,ve,ee,he){var F=e.getElementsOfBindingOrAssignmentPattern(ve),x=F.length;if(q.level<1&&q.downlevelIteration)ee=T(q,e.setTextRange(q.context.getEmitHelperFactory().createReadHelper(ee,x>0&&e.getRestIndicatorOfBindingOrAssignmentElement(F[x-1])?void 0:x),he),!1,he);else if(x!==1&&(q.level<1||x===0)||e.every(F,e.isOmittedExpression)){var X=!e.isDeclarationBindingElement(O)||x!==0;ee=T(q,ee,X,he)}for(var $,A,y=0;y=1)if(V.transformFlags&32768||q.hasTransformedPriorElement&&!G(V)){q.hasTransformedPriorElement=!0;var L=q.context.factory.createTempVariable(void 0);q.hoistTempVariables&&q.context.hoistVariableDeclaration(L),A=e.append(A,[L,V]),$=e.append($,q.createArrayBindingOrAssignmentElement(L))}else $=e.append($,V);else{if(e.isOmittedExpression(V))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(V)){if(y===x-1){var P=q.context.factory.createArraySliceCall(ee,y);N(q,V,P,V)}}else{var P=q.context.factory.createElementAccessExpression(ee,y);N(q,V,P,V)}}}if($&&q.emitBindingOrAssignment(q.createArrayBindingOrAssignmentPattern($),ee,he,ve),A)for(var k=0,Y=A;k=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(S);return Q.updateSourceFile(S,e.visitLexicalEnvironment(S.statements,Y,E,0,Ce))}function ne(S,Ce){var qe=0;e.some(Ce)&&(qe|=1);var br=e.getEffectiveBaseTypeNode(S);return br&&e.skipOuterExpressions(br.expression).kind!==104&&(qe|=64),e.classOrConstructorParameterIsDecorated(S)&&(qe|=2),e.childIsDecorated(S)&&(qe|=4),ai(S)?qe|=8:Ba(S)?qe|=32:ka(S)&&(qe|=16),K<=1&&qe&7&&(qe|=128),qe}function ue(S){return!!(S.transformFlags&4096)}function We(S){return e.some(S.decorators)||e.some(S.typeParameters)||e.some(S.heritageClauses,ue)||e.some(S.members,ue)}function Fe(S){if(!We(S)&&!(R&&e.hasSyntacticModifier(S,1)))return e.visitEachChild(S,P,E);var Ce=e.getProperties(S,!0,!0),qe=ne(S,Ce);qe&128&&E.startLexicalEnvironment();var br=S.name||(qe&5?Q.getGeneratedNameForNode(S):void 0),Zr=qe&2?Be(S,br):Z(S,br,qe),Si=[Zr];if(ir(Si,S,!1),ir(Si,S,!0),Br(Si,S),qe&128){var Pi=e.createTokenRange(e.skipTrivia(ie.text,S.members.end),19),Qi=Q.getInternalName(S),Ct=Q.createPartiallyEmittedExpression(Qi);e.setTextRangeEnd(Ct,Pi.end),e.setEmitFlags(Ct,1536);var sa=Q.createReturnStatement(Ct);e.setTextRangePos(sa,Pi.pos),e.setEmitFlags(sa,1920),Si.push(sa),e.insertStatementsAfterStandardPrologue(Si,E.endLexicalEnvironment());var en=Q.createImmediatelyInvokedArrowFunction(Si);e.setEmitFlags(en,33554432);var Wa=Q.createVariableStatement(void 0,Q.createVariableDeclarationList([Q.createVariableDeclaration(Q.getLocalName(S,!1,!1),void 0,void 0,en)]));e.setOriginalNode(Wa,S),e.setCommentRange(Wa,S),e.setSourceMapRange(Wa,e.moveRangePastDecorators(S)),e.startOnNewLine(Wa),Si=[Wa]}return qe&8?Cn(Si,S):(qe&128||qe&2)&&(qe&32?Si.push(Q.createExportDefault(Q.getLocalName(S,!1,!0))):qe&16&&Si.push(Q.createExternalModuleExport(Q.getLocalName(S,!1,!0)))),Si.length>1&&(Si.push(Q.createEndOfDeclarationMarker(S)),e.setEmitFlags(Zr,e.getEmitFlags(Zr)|4194304)),e.singleOrMany(Si)}function Z(S,Ce,qe){var br=qe&128?void 0:e.visitNodes(S.modifiers,D,e.isModifier),Zr=Q.createClassDeclaration(void 0,br,Ce,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S)),Si=e.getEmitFlags(S);return qe&1&&(Si|=32),e.setTextRange(Zr,S),e.setOriginalNode(Zr,S),e.setEmitFlags(Zr,Si),Zr}function Be(S,Ce){var qe=e.moveRangePastDecorators(S),br=eo(S),Zr=K<=2?Q.getInternalName(S,!1,!0):Q.getLocalName(S,!1,!0),Si=e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Pi=Re(S),Qi=Q.createClassExpression(void 0,void 0,Ce,void 0,Si,Pi);e.setOriginalNode(Qi,S),e.setTextRange(Qi,qe);var Ct=Q.createVariableStatement(void 0,Q.createVariableDeclarationList([Q.createVariableDeclaration(Zr,void 0,void 0,br?Q.createAssignment(br,Qi):Qi)],1));return e.setOriginalNode(Ct,S),e.setTextRange(Ct,qe),e.setCommentRange(Ct,S),Ct}function ge(S){if(!We(S))return e.visitEachChild(S,P,E);var Ce=Q.createClassExpression(void 0,void 0,S.name,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S));return e.setOriginalNode(Ce,S),e.setTextRange(Ce,S),Ce}function Re(S){var Ce=[],qe=e.getFirstConstructorWithBody(S),br=qe&&e.filter(qe.parameters,function(Qi){return e.isParameterPropertyDeclaration(Qi,qe)});if(br)for(var Zr=0,Si=br;Zr0&&e.parameterIsThisKeyword(qe[0]),Zr=br?1:0,Si=br?qe.length-1:qe.length,Pi=0;Pi0?Ce.kind===167?Q.createVoidZero():Q.createNull():void 0,Qi=le().createDecorateHelper(br,Zr,Si,Pi);return e.setTextRange(Qi,e.moveRangePastDecorators(Ce)),e.setEmitFlags(Qi,1536),Qi}}function Br(S,Ce){var qe=Er(Ce);qe&&S.push(e.setOriginalNode(Q.createExpressionStatement(qe),Ce))}function Er(S){var Ce=_e(S),qe=er(S,S,Ce);if(!!qe){var br=x&&x[e.getOriginalNodeId(S)],Zr=K<=2?Q.getInternalName(S,!1,!0):Q.getLocalName(S,!1,!0),Si=le().createDecorateHelper(qe,Zr),Pi=Q.createAssignment(Zr,br?Q.createAssignment(br,Si):Si);return e.setEmitFlags(Pi,1536),e.setSourceMapRange(Pi,e.moveRangePastDecorators(S)),Pi}}function Ne(S){return e.visitNode(S.expression,P,e.isExpression)}function n(S,Ce){var qe;if(S){qe=[];for(var br=0,Zr=S;br=0&&e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Zr,Si+1-Zr));var Pi=e.mapDefined(qe,Sr);Si>=0?e.addRange(br,Pi):br=Ve(Ve(Ve([],br.slice(0,Zr),!0),Pi,!0),br.slice(Zr),!0),e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Si+1+Zr)),br=Q.mergeLexicalEnvironment(br,m());var Qi=Q.createBlock(e.setTextRange(Q.createNodeArray(br),S.statements),!0);return e.setTextRange(Qi,S),e.setOriginalNode(Qi,S),Qi}function Sr(S){var Ce=S.name;if(!!e.isIdentifier(Ce)){var qe=e.setParent(e.setTextRange(Q.cloneNode(Ce),Ce),Ce.parent);e.setEmitFlags(qe,1584);var br=e.setParent(e.setTextRange(Q.cloneNode(Ce),Ce),Ce.parent);return e.setEmitFlags(br,1536),e.startOnNewLine(e.removeAllComments(e.setTextRange(e.setOriginalNode(Q.createExpressionStatement(Q.createAssignment(e.setTextRange(Q.createPropertyAccessExpression(Q.createThis(),qe),S.name),br)),S),e.moveRangePos(S,-1))))}}function zr(S){if(!!Xe(S)){var Ce=Q.updateMethodDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,_r(S),void 0,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function Wr(S){return!(e.nodeIsMissing(S.body)&&e.hasSyntacticModifier(S,128))}function Je(S){if(!!Wr(S)){var Ce=Q.updateGetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function xe(S){if(!!Wr(S)){var Ce=Q.updateSetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function vr(S){if(!Xe(S))return Q.createNotEmittedStatement(S);var Ce=Q.updateFunctionDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));if(ai(S)){var qe=[Ce];return Cn(qe,S),qe}return Ce}function mr(S){if(!Xe(S))return Q.createOmittedExpression();var Ce=Q.updateFunctionExpression(S,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce}function Ar(S){var Ce=Q.updateArrowFunction(S,e.visitNodes(S.modifiers,D,e.isModifier),void 0,e.visitParameterList(S.parameters,P,E),void 0,S.equalsGreaterThanToken,e.visitFunctionBody(S.body,P,E));return Ce}function Oe(S){if(!e.parameterIsThisKeyword(S)){var Ce=Q.updateParameterDeclaration(S,void 0,void 0,S.dotDotDotToken,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return Ce!==S&&(e.setCommentRange(Ce,S),e.setTextRange(Ce,e.moveRangePastModifiers(S)),e.setSourceMapRange(Ce,e.moveRangePastModifiers(S)),e.setEmitFlags(Ce.name,32)),Ce}}function nr(S){if(ai(S)){var Ce=e.getInitializedVariables(S.declarationList);return Ce.length===0?void 0:e.setTextRange(Q.createExpressionStatement(Q.inlineExpressions(e.map(Ce,Mr))),S)}else return e.visitEachChild(S,P,E)}function Mr(S){var Ce=S.name;return e.isBindingPattern(Ce)?e.flattenDestructuringAssignment(S,P,E,0,!1,kn):e.setTextRange(Q.createAssignment(xn(Ce),e.visitNode(S.initializer,P,e.isExpression)),S)}function Pe(S){var Ce=Q.updateVariableDeclaration(S,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return S.type&&e.setTypeNode(Ce.name,S.type),Ce}function Ue(S){var Ce=e.skipOuterExpressions(S.expression,-7);if(e.isAssertionExpression(Ce)){var qe=e.visitNode(S.expression,P,e.isExpression);return Q.createPartiallyEmittedExpression(qe,S)}return e.visitEachChild(S,P,E)}function fr(S){var Ce=e.visitNode(S.expression,P,e.isExpression);return Q.createPartiallyEmittedExpression(Ce,S)}function De(S){var Ce=e.visitNode(S.expression,P,e.isLeftHandSideExpression);return Q.createPartiallyEmittedExpression(Ce,S)}function gr(S){return Q.updateCallExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Vr(S){return Q.updateNewExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Tr(S){return Q.updateTaggedTemplateExpression(S,e.visitNode(S.tag,P,e.isExpression),void 0,e.visitNode(S.template,P,e.isExpression))}function vi(S){return Q.updateJsxSelfClosingElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Ui(S){return Q.updateJsxOpeningElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Yi(S){return!e.isEnumConst(S)||e.shouldPreserveConstEnums(f)}function Wi(S){if(!Yi(S))return Q.createNotEmittedStatement(S);var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?Q.getExternalModuleOrNamespaceExportName(q,S,!1,!0):Q.getLocalName(S,!1,!0),Qi=Q.createLogicalOr(Pi,Q.createAssignment(Pi,Q.createObjectLiteralExpression()));if(xt(S)){var Ct=Q.getLocalName(S,!1,!0);Qi=Q.createAssignment(Ct,Qi)}var sa=Q.createExpressionStatement(Q.createCallExpression(Q.createFunctionExpression(void 0,void 0,void 0,void 0,[Q.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,ct(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(Q.createEndOfDeclarationMarker(S)),Ce}function ct(S,Ce){var qe=q;q=Ce;var br=[];N();var Zr=e.map(S.members,Li);return e.insertStatementsAfterStandardPrologue(br,m()),e.addRange(br,Zr),q=qe,Q.createBlock(e.setTextRange(Q.createNodeArray(br),S.members),!0)}function Li(S){var Ce=Zt(S,!1),qe=nt(S),br=Q.createAssignment(Q.createElementAccessExpression(q,Ce),qe),Zr=qe.kind===10?br:Q.createAssignment(Q.createElementAccessExpression(q,br),Ce);return e.setTextRange(Q.createExpressionStatement(e.setTextRange(Zr,S)),S)}function nt(S){var Ce=oe.getConstantValue(S);return Ce!==void 0?typeof Ce=="string"?Q.createStringLiteral(Ce):Q.createNumericLiteral(Ce):(bo(),S.initializer?e.visitNode(S.initializer,P,e.isExpression):Q.createVoidZero())}function Mt(S){var Ce=e.getParseTreeNode(S,e.isModuleDeclaration);return Ce?e.isInstantiatedModule(Ce,e.shouldPreserveConstEnums(f)):!0}function xt(S){return ai(S)||Dn(S)&&b!==e.ModuleKind.ES2015&&b!==e.ModuleKind.ES2020&&b!==e.ModuleKind.ES2022&&b!==e.ModuleKind.ESNext&&b!==e.ModuleKind.System}function ut(S){ee||(ee=new e.Map);var Ce=Rt(S);ee.has(Ce)||ee.set(Ce,S)}function Dt(S){if(ee){var Ce=Rt(S);return ee.get(Ce)===S}return!0}function Rt(S){return e.Debug.assertNode(S.name,e.isIdentifier),S.name.escapedText}function Ii(S,Ce){var qe=Q.createVariableStatement(e.visitNodes(Ce.modifiers,D,e.isModifier),Q.createVariableDeclarationList([Q.createVariableDeclaration(Q.getLocalName(Ce,!1,!0))],O.kind===305?0:1));if(e.setOriginalNode(qe,Ce),ut(Ce),Dt(Ce))return Ce.kind===260?e.setSourceMapRange(qe.declarationList,Ce):e.setSourceMapRange(qe,Ce),e.setCommentRange(qe,Ce),e.addEmitFlags(qe,4195328),S.push(qe),!0;var br=Q.createMergeDeclarationMarker(qe);return e.setEmitFlags(br,4195840),S.push(br),!1}function Ki(S){if(!Mt(S))return Q.createNotEmittedStatement(S);e.Debug.assertNode(S.name,e.isIdentifier,"A TypeScript namespace should have an Identifier name."),En();var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?Q.getExternalModuleOrNamespaceExportName(q,S,!1,!0):Q.getLocalName(S,!1,!0),Qi=Q.createLogicalOr(Pi,Q.createAssignment(Pi,Q.createObjectLiteralExpression()));if(xt(S)){var Ct=Q.getLocalName(S,!1,!0);Qi=Q.createAssignment(Ct,Qi)}var sa=Q.createExpressionStatement(Q.createCallExpression(Q.createFunctionExpression(void 0,void 0,void 0,void 0,[Q.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,Fi(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(Q.createEndOfDeclarationMarker(S)),Ce}function Fi(S,Ce){var qe=q,br=R,Zr=ee;q=Ce,R=S,ee=void 0;var Si=[];N();var Pi,Qi;if(S.body)if(S.body.kind===262)V(S.body,function(Wa){return e.addRange(Si,e.visitNodes(Wa.statements,H,e.isStatement))}),Pi=S.body.statements,Qi=S.body;else{var Ct=Ki(S.body);Ct&&(e.isArray(Ct)?e.addRange(Si,Ct):Si.push(Ct));var sa=ui(S).body;Pi=e.moveRangePos(sa.statements,-1)}e.insertStatementsAfterStandardPrologue(Si,m()),q=qe,R=br,ee=Zr;var en=Q.createBlock(e.setTextRange(Q.createNodeArray(Si),Pi),!0);return e.setTextRange(en,Qi),(!S.body||S.body.kind!==262)&&e.setEmitFlags(en,e.getEmitFlags(en)|1536),en}function ui(S){if(S.body.kind===261){var Ce=ui(S.body);return Ce||S.body}}function Bt(S){if(!S.importClause)return S;if(!S.importClause.isTypeOnly){var Ce=e.visitNode(S.importClause,wt,e.isImportClause);return Ce||f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2?Q.updateImportDeclaration(S,void 0,void 0,Ce,S.moduleSpecifier,S.assertClause):void 0}}function wt(S){e.Debug.assert(!S.isTypeOnly);var Ce=Gr(S)?S.name:void 0,qe=e.visitNode(S.namedBindings,na,e.isNamedImportBindings);return Ce||qe?Q.updateImportClause(S,!1,Ce,qe):void 0}function na(S){if(S.kind===268)return Gr(S)?S:void 0;var Ce=f.preserveValueImports&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNodes(S.elements,Ai,e.isImportSpecifier);return Ce||e.some(qe)?Q.updateNamedImports(S,qe):void 0}function Ai(S){return!S.isTypeOnly&&Gr(S)?S:void 0}function Oi(S){return oe.isValueAliasDeclaration(S)?e.visitEachChild(S,P,E):void 0}function ji(S){if(!S.isTypeOnly){if(!S.exportClause||e.isNamespaceExport(S.exportClause))return S;var Ce=!!S.moduleSpecifier&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNode(S.exportClause,function(br){return At(br,Ce)},e.isNamedExportBindings);return qe?Q.updateExportDeclaration(S,void 0,void 0,S.isTypeOnly,qe,S.moduleSpecifier,S.assertClause):void 0}}function Vi(S,Ce){var qe=e.visitNodes(S.elements,ba,e.isExportSpecifier);return Ce||e.some(qe)?Q.updateNamedExports(S,qe):void 0}function at(S){return Q.updateNamespaceExport(S,e.visitNode(S.name,P,e.isIdentifier))}function At(S,Ce){return e.isNamespaceExport(S)?at(S):Vi(S,Ce)}function ba(S){return!S.isTypeOnly&&oe.isValueAliasDeclaration(S)?S:void 0}function $a(S){return Gr(S)||!e.isExternalModule(ie)&&oe.isTopLevelValueImportEqualsWithEntityName(S)}function Qa(S){if(!S.isTypeOnly){if(e.isExternalModuleImportEqualsDeclaration(S)){var Ce=Gr(S);return!Ce&&f.importsNotUsedAsValues===1?e.setOriginalNode(e.setTextRange(Q.createImportDeclaration(void 0,void 0,void 0,S.moduleReference.expression,void 0),S),S):Ce?e.visitEachChild(S,P,E):void 0}if(!!$a(S)){var qe=e.createExpressionFromEntityName(Q,S.moduleReference);return e.setEmitFlags(qe,3584),ka(S)||!ai(S)?e.setOriginalNode(e.setTextRange(Q.createVariableStatement(e.visitNodes(S.modifiers,D,e.isModifier),Q.createVariableDeclarationList([e.setOriginalNode(Q.createVariableDeclaration(S.name,void 0,void 0,qe),S)])),S),S):e.setOriginalNode(Bi(S.name,qe,S),S)}}}function ai(S){return R!==void 0&&e.hasSyntacticModifier(S,1)}function Dn(S){return R===void 0&&e.hasSyntacticModifier(S,1)}function ka(S){return Dn(S)&&!e.hasSyntacticModifier(S,512)}function Ba(S){return Dn(S)&&e.hasSyntacticModifier(S,512)}function pn(S){return Q.createExpressionStatement(S)}function Cn(S,Ce){var qe=Q.createAssignment(Q.getExternalModuleOrNamespaceExportName(q,Ce,!1,!0),Q.getLocalName(Ce));e.setSourceMapRange(qe,e.createRange(Ce.name?Ce.name.pos:Ce.pos,Ce.end));var br=Q.createExpressionStatement(qe);e.setSourceMapRange(br,e.createRange(-1,Ce.end)),S.push(br)}function Bi(S,Ce,qe){return e.setTextRange(Q.createExpressionStatement(Q.createAssignment(Q.getNamespaceMemberName(q,S,!1,!0),Ce)),qe)}function kn(S,Ce,qe){return e.setTextRange(Q.createAssignment(xn(S),Ce),qe)}function xn(S){return Q.getNamespaceMemberName(q,S,!1,!0)}function Kn(S){var Ce=Q.getGeneratedNameForNode(S);return e.setSourceMapRange(Ce,S.name),Ce}function Pn(S){return Q.getGeneratedNameForNode(S)}function eo(S){if(oe.getNodeCheckFlags(S)&16777216){Ro();var Ce=Q.createUniqueName(S.name&&!e.isGeneratedIdentifier(S.name)?e.idText(S.name):"default");return x[e.getOriginalNodeId(S)]=Ce,G(Ce),Ce}}function Rn(S){return Q.createPropertyAccessExpression(Q.getDeclarationName(S),"prototype")}function Da(S,Ce){return e.isStatic(Ce)?Q.getDeclarationName(S):Rn(S)}function bo(){(F&8)===0&&(F|=8,E.enableSubstitution(79))}function Ro(){(F&1)===0&&(F|=1,E.enableSubstitution(79),x=[])}function En(){(F&2)===0&&(F|=2,E.enableSubstitution(79),E.enableSubstitution(297),E.enableEmitNotification(261))}function Wn(S){return e.getOriginalNode(S).kind===261}function to(S){return e.getOriginalNode(S).kind===260}function Co(S,Ce,qe){var br=X,Zr=ie;e.isSourceFile(Ce)&&(ie=Ce),F&2&&Wn(Ce)&&(X|=2),F&8&&to(Ce)&&(X|=8),se(S,Ce,qe),X=br,ie=Zr}function Ko(S,Ce){return Ce=J(S,Ce),S===1?no(Ce):e.isShorthandPropertyAssignment(Ce)?Oo(Ce):Ce}function Oo(S){if(F&2){var Ce=S.name,qe=xi(Ce);if(qe){if(S.objectAssignmentInitializer){var br=Q.createAssignment(qe,S.objectAssignmentInitializer);return e.setTextRange(Q.createPropertyAssignment(Ce,br),S)}return e.setTextRange(Q.createPropertyAssignment(Ce,qe),S)}}return S}function no(S){switch(S.kind){case 79:return $o(S);case 206:return St(S);case 207:return pa(S)}return S}function $o(S){return Pr(S)||xi(S)||S}function Pr(S){if(F&1&&oe.getNodeCheckFlags(S)&33554432){var Ce=oe.getReferencedValueDeclaration(S);if(Ce){var qe=x[Ce.id];if(qe){var br=Q.cloneNode(qe);return e.setSourceMapRange(br,S),e.setCommentRange(br,S),br}}}}function xi(S){if(F&X&&!e.isGeneratedIdentifier(S)&&!e.isLocalName(S)){var Ce=oe.getReferencedExportContainer(S,!1);if(Ce&&Ce.kind!==305){var qe=X&2&&Ce.kind===261||X&8&&Ce.kind===260;if(qe)return e.setTextRange(Q.createPropertyAccessExpression(Q.getGeneratedNameForNode(Ce),S),S)}}}function St(S){return Jn(S)}function pa(S){return Jn(S)}function dn(S){return S.replace(/\*\//g,"*_/")}function Jn(S){var Ce=Qe(S);if(Ce!==void 0){e.setConstantValue(S,Ce);var qe=typeof Ce=="string"?Q.createStringLiteral(Ce):Q.createNumericLiteral(Ce);if(!f.removeComments){var br=e.getOriginalNode(S,e.isAccessExpression);e.addSyntheticTrailingComment(qe,3," ".concat(dn(e.getTextOfNode(br))," "))}return qe}return S}function Qe(S){if(!f.isolatedModules)return e.isPropertyAccessExpression(S)||e.isElementAccessExpression(S)?oe.getConstantValue(S):void 0}function Gr(S){return f.preserveValueImports?oe.isValueAliasDeclaration(S):oe.isReferencedAliasDeclaration(S)}}e.transformTypeScript=B})(ke||(ke={}));var ke;(function(e){var a;(function(p){p[p.ClassAliases=1]="ClassAliases",p[p.ClassStaticThisOrSuperReference=2]="ClassStaticThisOrSuperReference"})(a||(a={}));var C;(function(p){p.Field="f",p.Method="m",p.Accessor="a"})(C=e.PrivateIdentifierKind||(e.PrivateIdentifierKind={}));var w;(function(p){p[p.None=0]="None",p[p.ClassWasDecorated=1]="ClassWasDecorated",p[p.NeedsClassConstructorReference=2]="NeedsClassConstructorReference",p[p.NeedsClassSuperReference=4]="NeedsClassSuperReference",p[p.NeedsSubstitutionForThisInClassStaticField=8]="NeedsSubstitutionForThisInClassStaticField"})(w||(w={}));function B(p){var m=p.factory,G=p.hoistVariableDeclaration,oe=p.endLexicalEnvironment,f=p.startLexicalEnvironment,T=p.resumeLexicalEnvironment,K=p.addBlockScopedVariable,b=p.getEmitResolver(),se=p.getCompilerOptions(),J=e.getEmitScriptTarget(se),ie=e.getUseDefineForClassFields(se),R=J<9,q=J<9,O=q&&J>=2,ve=p.onSubstituteNode;p.onSubstituteNode=qr;var ee=p.onEmitNode;p.onEmitNode=or;var he,F,x,X,$=[],A=new e.Map,y,V,L;return e.chainBundle(p,P);function P(Je){var xe=p.getCompilerOptions();if(Je.isDeclarationFile||ie&&e.getEmitScriptTarget(xe)>=9)return Je;var vr=e.visitEachChild(Je,U,p);return e.addEmitHelpers(vr,p.readEmitHelpers()),vr}function k(Je,xe){if(Je.transformFlags&8388608)switch(Je.kind){case 226:case 257:return de(Je);case 167:return ue(Je);case 237:return D(Je);case 80:return I(Je);case 170:return Br(Je)}if(Je.transformFlags&8388608||Je.transformFlags&33554432&&O&&L&&y)switch(Je.kind){case 219:case 220:return ge(Je,xe);case 221:return _e(Je,xe);case 208:return He(Je);case 210:return rr(Je);case 206:return Z(Je);case 207:return Be(Je);case 238:return ze(Je);case 242:return Re(Je);case 256:case 213:case 171:case 169:case 172:case 173:{var vr=L;L=void 0;var mr=e.visitEachChild(Je,U,p);return L=vr,mr}}return e.visitEachChild(Je,U,p)}function Y(Je){return k(Je,!0)}function U(Je){return k(Je,!1)}function j(Je){switch(Je.kind){case 291:return e.visitEachChild(Je,j,p);case 228:return ir(Je)}return U(Je)}function H(Je){switch(Je.kind){case 205:case 204:return Wr(Je);default:return U(Je)}}function I(Je){return!R||e.isStatement(Je.parent)?Je:e.setOriginalNode(m.createIdentifier(""),Je)}function l(Je){if(!R)return Je;var xe=Je.left;e.Debug.assertNode(xe,e.isPrivateIdentifier),e.Debug.assert(Je.operatorToken.kind===101);var vr=ti(xe);if(vr){var mr=e.visitNode(Je.right,U,e.isExpression);return e.setOriginalNode(p.getEmitHelperFactory().createClassPrivateFieldInHelper(vr.brandCheckIdentifier,mr),Je)}return e.visitEachChild(Je,U,p)}function d(Je){switch(Je.kind){case 171:return;case 172:case 173:case 169:return g(Je);case 167:return ue(Je);case 162:return fe(Je);case 234:return Je;default:return U(Je)}}function D(Je){var xe=X;X=[];var vr=e.visitEachChild(Je,U,p),mr=e.some(X)?Ve([vr],X,!0):vr;return X=xe,mr}function fe(Je){var xe=e.visitEachChild(Je,U,p);if(e.some(x)){var vr=x;vr.push(xe.expression),x=[],xe=m.updateComputedPropertyName(xe,m.inlineExpressions(vr))}return xe}function g(Je){if(e.Debug.assert(!e.some(Je.decorators)),!R||!e.isPrivateIdentifier(Je.name))return e.visitEachChild(Je,d,p);var xe=ti(Je.name);if(e.Debug.assert(xe,"Undeclared private name for property declaration."),!xe.isValid)return Je;var vr=ne(Je);vr&&pi().push(m.createAssignment(vr,m.createFunctionExpression(e.filter(Je.modifiers,function(mr){return!e.isStaticModifier(mr)}),Je.asteriskToken,vr,void 0,e.visitParameterList(Je.parameters,d,p),void 0,e.visitFunctionBody(Je.body,d,p))))}function ne(Je){e.Debug.assert(e.isPrivateIdentifier(Je.name));var xe=ti(Je.name);if(e.Debug.assert(xe,"Undeclared private name for property declaration."),xe.kind==="m")return xe.methodName;if(xe.kind==="a"){if(e.isGetAccessor(Je))return xe.getterName;if(e.isSetAccessor(Je))return xe.setterName}}function ue(Je){if(e.Debug.assert(!e.some(Je.decorators)),e.isPrivateIdentifier(Je.name)){if(!R)return e.isStatic(Je)?e.visitEachChild(Je,U,p):m.updatePropertyDeclaration(Je,void 0,e.visitNodes(Je.modifiers,U,e.isModifier),Je.name,void 0,void 0,void 0);var xe=ti(Je.name);if(e.Debug.assert(xe,"Undeclared private name for property declaration."),!xe.isValid)return Je}var vr=et(Je.name,!!Je.initializer||ie);if(vr&&!e.isSimpleInlineableExpression(vr)&&pi().push(vr),e.isStatic(Je)&&!R&&!ie){var mr=ur(Je,m.createThis());if(mr){var Ar=m.createClassStaticBlockDeclaration(void 0,void 0,m.createBlock([mr]));return e.setOriginalNode(Ar,Je),e.setCommentRange(Ar,Je),e.setCommentRange(mr,{pos:-1,end:-1}),e.setSyntheticLeadingComments(mr,void 0),e.setSyntheticTrailingComments(mr,void 0),Ar}}}function We(Je,xe){return Fe(Je,e.visitNode(xe,U,e.isExpression))}function Fe(Je,xe){switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case"a":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.getterName);case"m":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.methodName);case"f":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,"Unknown private element type")}}function Z(Je){if(R&&e.isPrivateIdentifier(Je.name)){var xe=ti(Je.name);if(xe)return e.setTextRange(e.setOriginalNode(We(xe,Je.expression),Je),Je)}if(O&&e.isSuperProperty(Je)&&e.isIdentifier(Je.name)&&L&&y){var vr=y.classConstructor,mr=y.superClassReference,Ar=y.facts;if(Ar&1)return pe(Je);if(vr&&mr){var Oe=m.createReflectGetCall(mr,m.createStringLiteralFromNode(Je.name),vr);return e.setOriginalNode(Oe,Je.expression),e.setTextRange(Oe,Je.expression),Oe}}return e.visitEachChild(Je,U,p)}function Be(Je){if(O&&e.isSuperProperty(Je)&&L&&y){var xe=y.classConstructor,vr=y.superClassReference,mr=y.facts;if(mr&1)return pe(Je);if(xe&&vr){var Ar=m.createReflectGetCall(vr,e.visitNode(Je.argumentExpression,U,e.isExpression),xe);return e.setOriginalNode(Ar,Je.expression),e.setTextRange(Ar,Je.expression),Ar}}return e.visitEachChild(Je,U,p)}function ge(Je,xe){if(Je.operator===45||Je.operator===46){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.operand)){var vr=void 0;if(vr=ti(Je.operand.name)){var mr=e.visitNode(Je.operand.expression,U,e.isExpression),Ar=Ee(mr),Oe=Ar.readExpression,nr=Ar.initializeExpression,Mr=We(vr,Oe),Pe=e.isPrefixUnaryExpression(Je)||xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=we(vr,nr||Oe,Mr,63),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}else if(O&&e.isSuperProperty(Je.operand)&&L&&y){var Ue=y.classConstructor,fr=y.superClassReference,De=y.facts;if(De&1){var gr=pe(Je.operand);return e.isPrefixUnaryExpression(Je)?m.updatePrefixUnaryExpression(Je,gr):m.updatePostfixUnaryExpression(Je,gr)}if(Ue&&fr){var Vr=void 0,Tr=void 0;if(e.isPropertyAccessExpression(Je.operand)?e.isIdentifier(Je.operand.name)&&(Tr=Vr=m.createStringLiteralFromNode(Je.operand.name)):e.isSimpleInlineableExpression(Je.operand.argumentExpression)?Tr=Vr=Je.operand.argumentExpression:(Tr=m.createTempVariable(G),Vr=m.createAssignment(Tr,e.visitNode(Je.operand.argumentExpression,U,e.isExpression))),Vr&&Tr){var Mr=m.createReflectGetCall(fr,Tr,Ue);e.setTextRange(Mr,Je.operand);var Pe=xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=m.createReflectSetCall(fr,Vr,Mr,Ue),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}}}return e.visitEachChild(Je,U,p)}function Re(Je){return m.updateForStatement(Je,e.visitNode(Je.initializer,Y,e.isForInitializer),e.visitNode(Je.condition,U,e.isExpression),e.visitNode(Je.incrementor,Y,e.isExpression),e.visitIterationBody(Je.statement,U,p))}function ze(Je){return m.updateExpressionStatement(Je,e.visitNode(Je.expression,Y,e.isExpression))}function Ee(Je){var xe=e.nodeIsSynthesized(Je)?Je:m.cloneNode(Je);if(e.isSimpleInlineableExpression(Je))return{readExpression:xe,initializeExpression:void 0};var vr=m.createTempVariable(G),mr=m.createAssignment(vr,xe);return{readExpression:vr,initializeExpression:mr}}function He(Je){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.expression)){var xe=m.createCallBinding(Je.expression,G,J),vr=xe.thisArg,mr=xe.target;return e.isCallChain(Je)?m.updateCallChain(Je,m.createPropertyAccessChain(e.visitNode(mr,U),Je.questionDotToken,"call"),void 0,void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0)):m.updateCallExpression(Je,m.createPropertyAccessExpression(e.visitNode(mr,U),"call"),void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0))}if(O&&e.isSuperProperty(Je.expression)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionCallCall(e.visitNode(Je.expression,U,e.isExpression),y.classConstructor,e.visitNodes(Je.arguments,U,e.isExpression));return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),Ar}return e.visitEachChild(Je,U,p)}function rr(Je){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.tag)){var xe=m.createCallBinding(Je.tag,G,J),vr=xe.thisArg,mr=xe.target;return m.updateTaggedTemplateExpression(Je,m.createCallExpression(m.createPropertyAccessExpression(e.visitNode(mr,U),"bind"),void 0,[e.visitNode(vr,U,e.isExpression)]),void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}if(O&&e.isSuperProperty(Je.tag)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionBindCall(e.visitNode(Je.tag,U,e.isExpression),y.classConstructor,[]);return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),m.updateTaggedTemplateExpression(Je,Ar,void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}return e.visitEachChild(Je,U,p)}function Ie(Je){if(R){y&&A.set(e.getOriginalNodeId(Je),y),f();var xe=L;L=Je;var vr=e.visitNodes(Je.body.statements,U,e.isStatement);vr=m.mergeLexicalEnvironment(vr,oe()),L=xe;var mr=m.createImmediatelyInvokedArrowFunction(vr);return e.setOriginalNode(mr,Je),e.setTextRange(mr,Je),e.addEmitFlags(mr,2),mr}}function _e(Je,xe){if(e.isDestructuringAssignment(Je)){var vr=x;x=void 0,Je=m.updateBinaryExpression(Je,e.visitNode(Je.left,H),Je.operatorToken,e.visitNode(Je.right,U));var mr=e.some(x)?m.inlineExpressions(e.compact(Ve(Ve([],x,!0),[Je],!1))):Je;return x=vr,mr}if(e.isAssignmentExpression(Je)){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.left)){var Ar=ti(Je.left.name);if(Ar)return e.setTextRange(e.setOriginalNode(we(Ar,Je.left.expression,Je.right,Je.operatorToken.kind),Je),Je)}else if(O&&e.isSuperProperty(Je.left)&&L&&y){var Oe=y.classConstructor,nr=y.superClassReference,Mr=y.facts;if(Mr&1)return m.updateBinaryExpression(Je,pe(Je.left),Je.operatorToken,e.visitNode(Je.right,U,e.isExpression));if(Oe&&nr){var Pe=e.isElementAccessExpression(Je.left)?e.visitNode(Je.left.argumentExpression,U,e.isExpression):e.isIdentifier(Je.left.name)?m.createStringLiteralFromNode(Je.left.name):void 0;if(Pe){var Ue=e.visitNode(Je.right,U,e.isExpression);if(e.isCompoundAssignment(Je.operatorToken.kind)){var fr=Pe;e.isSimpleInlineableExpression(Pe)||(fr=m.createTempVariable(G),Pe=m.createAssignment(fr,Pe));var De=m.createReflectGetCall(nr,fr,Oe);e.setOriginalNode(De,Je.left),e.setTextRange(De,Je.left),Ue=m.createBinaryExpression(De,e.getNonAssignmentOperatorForCompoundAssignment(Je.operatorToken.kind),Ue),e.setTextRange(Ue,Je)}var gr=xe?void 0:m.createTempVariable(G);return gr&&(Ue=m.createAssignment(gr,Ue),e.setTextRange(gr,Je)),Ue=m.createReflectSetCall(nr,Pe,Ue,Oe),e.setOriginalNode(Ue,Je),e.setTextRange(Ue,Je),gr&&(Ue=m.createComma(Ue,gr),e.setTextRange(Ue,Je)),Ue}}}}return Je.operatorToken.kind===101&&e.isPrivateIdentifier(Je.left)?l(Je):e.visitEachChild(Je,U,p)}function we(Je,xe,vr,mr){if(xe=e.visitNode(xe,U,e.isExpression),vr=e.visitNode(vr,U,e.isExpression),e.isCompoundAssignment(mr)){var Ar=Ee(xe),Oe=Ar.readExpression,nr=Ar.initializeExpression;xe=nr||Oe,vr=m.createBinaryExpression(Fe(Je,Oe),e.getNonAssignmentOperatorForCompoundAssignment(mr),vr)}switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case"a":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.setterName);case"m":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,void 0);case"f":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,"Unknown private element type")}}function de(Je){if(!e.forEach(Je.members,ye))return e.visitEachChild(Je,U,p);var xe=x;if(x=void 0,Gi(),R){var vr=e.getNameOfDeclaration(Je);vr&&e.isIdentifier(vr)&&(_r().className=e.idText(vr));var mr=Ae(Je);e.some(mr)&&(_r().weakSetName=Xe("instances",mr[0].name))}var Ar=e.isClassDeclaration(Je)?Cr(Je):Ye(Je);return Wt(),x=xe,Ar}function ye(Je){return e.isPropertyDeclaration(Je)||e.isClassStaticBlockDeclaration(Je)||R&&Je.name&&e.isPrivateIdentifier(Je.name)}function Ae(Je){return e.filter(Je.members,e.isNonStaticMethodOrAccessorWithPrivateName)}function er(Je){var xe=0,vr=e.getOriginalNode(Je);e.isClassDeclaration(vr)&&e.classOrConstructorParameterIsDecorated(vr)&&(xe|=1);for(var mr=0,Ar=Je.members;mr=0?(Pe=fr+1,De=Ve(Ve(Ve([],De.slice(0,Ue),!0),e.visitNodes(xe.body.statements,U,e.isStatement,Ue,Pe-Ue),!0),De.slice(Ue),!0)):Ue>=0&&(Pe=Ue)),Mr&&De.push(m.createExpressionStatement(m.createCallExpression(m.createSuper(),void 0,[m.createSpreadElement(m.createIdentifier("arguments"))])));var gr=0;if(xe!=null&&xe.body)if(ie)De=De.filter(function(Li){return!e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)});else{for(var Vr=0,Tr=xe.body.statements;Vr0){var Ui=e.visitNodes(xe.body.statements,U,e.isStatement,Pe,gr);if(fr>=0)e.addRange(De,Ui);else{var Yi=Ue;Mr&&Yi++,De=Ve(Ve(Ve([],De.slice(0,Yi),!0),Ui,!0),De.slice(Yi),!0)}Pe+=gr}}var Wi=m.createThis();return mi(De,Oe,Wi),Ge(De,Ar,Wi),xe&&e.addRange(De,e.visitNodes(xe.body.statements,ct,e.isStatement,Pe)),De=m.mergeLexicalEnvironment(De,oe()),e.setTextRange(m.createBlock(e.setTextRange(m.createNodeArray(De),xe?xe.body.statements:Je.members),!0),xe?xe.body:void 0);function ct(Li){if(!(ie&&e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)))return U(Li)}}function Ge(Je,xe,vr){for(var mr=0,Ar=xe;mr=0;--mr){var Ar=$[mr];if(!!Ar){var vr=(xe=Ar.privateIdentifierEnvironment)===null||xe===void 0?void 0:xe.identifiers.get(Je.escapedText);if(vr)return vr}}}function Ze(Je){var xe=m.getGeneratedNameForNode(Je),vr=ti(Je.name);if(!vr)return e.visitEachChild(Je,U,p);var mr=Je.expression;return(e.isThisProperty(Je)||e.isSuperProperty(Je)||!e.isSimpleCopiableExpression(Je.expression))&&(mr=m.createTempVariable(G,!0),pi().push(m.createBinaryExpression(mr,63,e.visitNode(Je.expression,U,e.isExpression)))),m.createAssignmentTargetWrapper(xe,we(vr,mr,xe,63))}function Sr(Je){var xe=e.getTargetOfBindingOrAssignmentElement(Je);if(xe){var vr=void 0;if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}if(vr)return e.isAssignmentExpression(Je)?m.updateBinaryExpression(Je,vr,Je.operatorToken,e.visitNode(Je.right,U,e.isExpression)):e.isSpreadElement(Je)?m.updateSpreadElement(Je,vr):vr}return e.visitNode(Je,H)}function zr(Je){if(e.isObjectBindingOrAssignmentElement(Je)&&!e.isShorthandPropertyAssignment(Je)){var xe=e.getTargetOfBindingOrAssignmentElement(Je),vr=void 0;if(xe){if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}}if(e.isPropertyAssignment(Je)){var Pe=e.getInitializerOfBindingOrAssignmentElement(Je);return m.updatePropertyAssignment(Je,e.visitNode(Je.name,U,e.isPropertyName),vr?Pe?m.createAssignment(vr,e.visitNode(Pe,U)):vr:e.visitNode(Je.initializer,H,e.isExpression))}if(e.isSpreadAssignment(Je))return m.updateSpreadAssignment(Je,vr||e.visitNode(Je.expression,H,e.isExpression));e.Debug.assert(vr===void 0,"Should not have generated a wrapped target")}return e.visitNode(Je,U)}function Wr(Je){return e.isArrayLiteralExpression(Je)?m.updateArrayLiteralExpression(Je,e.visitNodes(Je.elements,Sr,e.isExpression)):m.updateObjectLiteralExpression(Je,e.visitNodes(Je.properties,zr,e.isObjectLiteralElementLike))}}e.transformClassFields=B;function E(p,m){return e.factory.createAssignment(p,e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment("value",m||e.factory.createVoidZero())]))}function Q(p,m,G){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(G,"set"),void 0,[p,m||e.factory.createVoidZero()])}function le(p,m){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(m,"add"),void 0,[p])}function N(p){return p.escapedText==="#constructor"}})(ke||(ke={}));var ke;(function(e){var a;(function(E){E[E.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"})(a||(a={}));var C;(function(E){E[E.NonTopLevel=1]="NonTopLevel",E[E.HasLexicalThis=2]="HasLexicalThis"})(C||(C={}));function w(E){var Q=E.factory,le=E.getEmitHelperFactory,N=E.resumeLexicalEnvironment,p=E.endLexicalEnvironment,m=E.hoistVariableDeclaration,G=E.getEmitResolver(),oe=E.getCompilerOptions(),f=e.getEmitScriptTarget(oe),T,K=0,b,se,J,ie=[],R=0,q=E.onEmitNode,O=E.onSubstituteNode;return E.onEmitNode=Re,E.onSubstituteNode=ze,e.chainBundle(E,ve);function ve(de){if(de.isDeclarationFile)return de;ee(1,!1),ee(2,!e.isEffectiveStrictModeSourceFile(de,oe));var ye=e.visitEachChild(de,A,E);return e.addEmitHelpers(ye,E.readEmitHelpers()),ye}function ee(de,ye){R=ye?R|de:R&~de}function he(de){return(R&de)!==0}function F(){return!he(1)}function x(){return he(2)}function X(de,ye,Ae){var er=de&~R;if(er){ee(er,!0);var ir=ye(Ae);return ee(er,!1),ir}return ye(Ae)}function $(de){return e.visitEachChild(de,A,E)}function A(de){if((de.transformFlags&256)===0)return de;switch(de.kind){case 131:return;case 218:return U(de);case 169:return X(3,j,de);case 256:return X(3,H,de);case 213:return X(3,I,de);case 214:return X(1,l,de);case 206:return se&&e.isPropertyAccessExpression(de)&&de.expression.kind===106&&se.add(de.name.escapedText),e.visitEachChild(de,A,E);case 207:return se&&de.expression.kind===106&&(J=!0),e.visitEachChild(de,A,E);case 172:case 173:case 171:case 257:case 226:return X(3,$,de);default:return e.visitEachChild(de,A,E)}}function y(de){if(e.isNodeWithPossibleHoistedDeclaration(de))switch(de.kind){case 237:return L(de);case 242:return Y(de);case 243:return P(de);case 244:return k(de);case 292:return V(de);case 235:case 249:case 263:case 289:case 290:case 252:case 240:case 241:case 239:case 248:case 250:return e.visitEachChild(de,y,E);default:return e.Debug.assertNever(de,"Unhandled node.")}return A(de)}function V(de){var ye=new e.Set;d(de.variableDeclaration,ye);var Ae;if(ye.forEach(function(Cr,Ye){b.has(Ye)&&(Ae||(Ae=new e.Set(b)),Ae.delete(Ye))}),Ae){var er=b;b=Ae;var ir=e.visitEachChild(de,y,E);return b=er,ir}else return e.visitEachChild(de,y,E)}function L(de){if(D(de.declarationList)){var ye=fe(de.declarationList,!1);return ye?Q.createExpressionStatement(ye):void 0}return e.visitEachChild(de,A,E)}function P(de){return Q.updateForInStatement(de,D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function k(de){return Q.updateForOfStatement(de,e.visitNode(de.awaitModifier,A,e.isToken),D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function Y(de){var ye=de.initializer;return Q.updateForStatement(de,D(ye)?fe(ye,!1):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.condition,A,e.isExpression),e.visitNode(de.incrementor,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function U(de){return F()?e.visitEachChild(de,A,E):e.setOriginalNode(e.setTextRange(Q.createYieldExpression(void 0,e.visitNode(de.expression,A,e.isExpression)),de),de)}function j(de){return Q.updateMethodDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function H(de){return Q.updateFunctionDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function I(de){return Q.updateFunctionExpression(de,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function l(de){return Q.updateArrowFunction(de,e.visitNodes(de.modifiers,A,e.isModifier),void 0,e.visitParameterList(de.parameters,A,E),void 0,de.equalsGreaterThanToken,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function d(de,ye){var Ae=de.name;if(e.isIdentifier(Ae))ye.add(Ae.escapedText);else for(var er=0,ir=Ae.elements;er=2&&G.getNodeCheckFlags(de)&6144;if(yr&&(ge(),se.size)){var Ir=B(Q,G,de,se);ie[e.getNodeId(Ir)]=!0,e.insertStatementsAfterStandardPrologue(Ge,[Ir])}var wr=Q.createBlock(Ge,!0);e.setTextRange(wr,de.body),yr&&J&&(G.getNodeCheckFlags(de)&4096?e.addEmitHelper(wr,e.advancedAsyncSuperHelper):G.getNodeCheckFlags(de)&2048&&e.addEmitHelper(wr,e.asyncSuperHelper)),be=wr}return b=Ye,ir||(se=n,J=lr),be}function Z(de,ye){return e.isBlock(de)?Q.updateBlock(de,e.visitNodes(de.statements,y,e.isStatement,ye)):Q.converters.convertToFunctionBlock(e.visitNode(de,y,e.isConciseBody))}function Be(de){var ye=de&&e.getEntityNameFromTypeNode(de);if(ye&&e.isEntityName(ye)){var Ae=G.getTypeReferenceSerializationKind(ye);if(Ae===e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue||Ae===e.TypeReferenceSerializationKind.Unknown)return ye}}function ge(){(T&1)===0&&(T|=1,E.enableSubstitution(208),E.enableSubstitution(206),E.enableSubstitution(207),E.enableEmitNotification(257),E.enableEmitNotification(169),E.enableEmitNotification(172),E.enableEmitNotification(173),E.enableEmitNotification(171),E.enableEmitNotification(237))}function Re(de,ye,Ae){if(T&1&&_e(ye)){var er=G.getNodeCheckFlags(ye)&6144;if(er!==K){var ir=K;K=er,q(de,ye,Ae),K=ir;return}}else if(T&&ie[e.getNodeId(ye)]){var ir=K;K=0,q(de,ye,Ae),K=ir;return}q(de,ye,Ae)}function ze(de,ye){return ye=O(de,ye),de===1&&K?Ee(ye):ye}function Ee(de){switch(de.kind){case 206:return He(de);case 207:return rr(de);case 208:return Ie(de)}return de}function He(de){return de.expression.kind===106?e.setTextRange(Q.createPropertyAccessExpression(Q.createUniqueName("_super",48),de.name),de):de}function rr(de){return de.expression.kind===106?we(de.argumentExpression,de):de}function Ie(de){var ye=de.expression;if(e.isSuperProperty(ye)){var Ae=e.isPropertyAccessExpression(ye)?He(ye):rr(ye);return Q.createCallExpression(Q.createPropertyAccessExpression(Ae,"call"),void 0,Ve([Q.createThis()],de.arguments,!0))}return de}function _e(de){var ye=de.kind;return ye===257||ye===171||ye===169||ye===172||ye===173}function we(de,ye){return K&4096?e.setTextRange(Q.createPropertyAccessExpression(Q.createCallExpression(Q.createUniqueName("_superIndex",48),void 0,[de]),"value"),ye):e.setTextRange(Q.createCallExpression(Q.createUniqueName("_superIndex",48),void 0,[de]),ye)}}e.transformES2017=w;function B(E,Q,le,N){var p=(Q.getNodeCheckFlags(le)&4096)!==0,m=[];return N.forEach(function(G,oe){var f=e.unescapeLeadingUnderscores(oe),T=[];T.push(E.createPropertyAssignment("get",E.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4)))),p&&T.push(E.createPropertyAssignment("set",E.createArrowFunction(void 0,void 0,[E.createParameterDeclaration(void 0,void 0,void 0,"v",void 0,void 0,void 0)],void 0,void 0,E.createAssignment(e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4),E.createIdentifier("v"))))),m.push(E.createPropertyAssignment(f,E.createObjectLiteralExpression(T)))}),E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.createUniqueName("_super",48),void 0,void 0,E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier("Object"),"create"),void 0,[E.createNull(),E.createObjectLiteralExpression(m,!0)]))],2))}e.createSuperAccessVariableStatement=B})(ke||(ke={}));var ke;(function(e){var a;(function(B){B[B.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"})(a||(a={}));var C;(function(B){B[B.None=0]="None",B[B.HasLexicalThis=1]="HasLexicalThis",B[B.IterationContainer=2]="IterationContainer",B[B.AncestorFactsMask=3]="AncestorFactsMask",B[B.SourceFileIncludes=1]="SourceFileIncludes",B[B.SourceFileExcludes=2]="SourceFileExcludes",B[B.StrictModeSourceFileIncludes=0]="StrictModeSourceFileIncludes",B[B.ClassOrFunctionIncludes=1]="ClassOrFunctionIncludes",B[B.ClassOrFunctionExcludes=2]="ClassOrFunctionExcludes",B[B.ArrowFunctionIncludes=0]="ArrowFunctionIncludes",B[B.ArrowFunctionExcludes=2]="ArrowFunctionExcludes",B[B.IterationStatementIncludes=2]="IterationStatementIncludes",B[B.IterationStatementExcludes=0]="IterationStatementExcludes"})(C||(C={}));function w(B){var E=B.factory,Q=B.getEmitHelperFactory,le=B.resumeLexicalEnvironment,N=B.endLexicalEnvironment,p=B.hoistVariableDeclaration,m=B.getEmitResolver(),G=B.getCompilerOptions(),oe=e.getEmitScriptTarget(G),f=B.onEmitNode;B.onEmitNode=Ge;var T=B.onSubstituteNode;B.onSubstituteNode=ur;var K=!1,b,se,J,ie=0,R=0,q,O,ve,ee,he=[];return e.chainBundle(B,A);function F(pe,or){return R!==(R&~pe|or)}function x(pe,or){var qr=R;return R=(R&~pe|or)&3,qr}function X(pe){R=pe}function $(pe){O=e.append(O,E.createVariableDeclaration(pe))}function A(pe){if(pe.isDeclarationFile)return pe;q=pe;var or=g(pe);return e.addEmitHelpers(or,B.readEmitHelpers()),q=void 0,O=void 0,or}function y(pe){return Y(pe,!1)}function V(pe){return Y(pe,!0)}function L(pe){if(pe.kind!==131)return pe}function P(pe,or,qr,si){if(F(qr,si)){var Di=x(qr,si),wi=pe(or);return X(Di),wi}return pe(or)}function k(pe){return e.visitEachChild(pe,y,B)}function Y(pe,or){if((pe.transformFlags&128)===0)return pe;switch(pe.kind){case 218:return U(pe);case 224:return j(pe);case 247:return H(pe);case 250:return I(pe);case 205:return d(pe);case 221:return ue(pe,or);case 351:return We(pe,or);case 292:return Fe(pe);case 237:return Z(pe);case 254:return Be(pe);case 240:case 241:case 243:return P(k,pe,0,2);case 244:return Ee(pe,void 0);case 242:return P(Re,pe,0,2);case 217:return ze(pe);case 171:return P(Ae,pe,2,1);case 169:return P(Cr,pe,2,1);case 172:return P(er,pe,2,1);case 173:return P(ir,pe,2,1);case 256:return P(Ye,pe,2,1);case 213:return P(Er,pe,2,1);case 214:return P(Br,pe,2,0);case 164:return de(pe);case 238:return D(pe);case 212:return fe(pe,or);case 210:return ne(pe);case 206:return ve&&e.isPropertyAccessExpression(pe)&&pe.expression.kind===106&&ve.add(pe.name.escapedText),e.visitEachChild(pe,y,B);case 207:return ve&&pe.expression.kind===106&&(ee=!0),e.visitEachChild(pe,y,B);case 257:case 226:return P(k,pe,2,1);default:return e.visitEachChild(pe,y,B)}}function U(pe){return se&2&&se&1?e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Q().createAwaitHelper(e.visitNode(pe.expression,y,e.isExpression))),pe),pe):e.visitEachChild(pe,y,B)}function j(pe){if(se&2&&se&1){if(pe.asteriskToken){var or=e.visitNode(e.Debug.checkDefined(pe.expression),y,e.isExpression);return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Q().createAwaitHelper(E.updateYieldExpression(pe,pe.asteriskToken,e.setTextRange(Q().createAsyncDelegatorHelper(e.setTextRange(Q().createAsyncValuesHelper(or),or)),or)))),pe),pe)}return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())),pe),pe)}return e.visitEachChild(pe,y,B)}function H(pe){return se&2&&se&1?E.updateReturnStatement(pe,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())):e.visitEachChild(pe,y,B)}function I(pe){if(se&2){var or=e.unwrapInnermostStatementOfLabel(pe);return or.kind===244&&or.awaitModifier?Ee(or,pe):E.restoreEnclosingLabel(e.visitNode(or,y,e.isStatement,E.liftToBlock),pe)}return e.visitEachChild(pe,y,B)}function l(pe){for(var or,qr=[],si=0,Di=pe;si1){for(var si=1;si=2&&m.getNodeCheckFlags(pe)&6144;if(Xi){be();var et=e.createSuperAccessVariableStatement(E,m,pe,ve);he[e.getNodeId(et)]=!0,e.insertStatementsAfterStandardPrologue(or,[et])}or.push(wi),e.insertStatementsAfterStandardPrologue(or,N());var Gi=E.updateBlock(pe.body,or);return Xi&&ee&&(m.getNodeCheckFlags(pe)&4096?e.addEmitHelper(Gi,e.advancedAsyncSuperHelper):m.getNodeCheckFlags(pe)&2048&&e.addEmitHelper(Gi,e.asyncSuperHelper)),ve=si,ee=Di,Gi}function n(pe){var or;le();var qr=0,si=[],Di=(or=e.visitNode(pe.body,y,e.isConciseBody))!==null&&or!==void 0?or:E.createBlock([]);e.isBlock(Di)&&(qr=E.copyPrologue(Di.statements,si,!1,y)),e.addRange(si,lr(void 0,pe));var wi=N();if(qr>0||e.some(si)||e.some(wi)){var Xi=E.converters.convertToFunctionBlock(Di,!0);return e.insertStatementsAfterStandardPrologue(si,wi),e.addRange(si,Xi.statements.slice(qr)),E.updateBlock(Xi,e.setTextRange(E.createNodeArray(si),Xi.statements))}return Di}function lr(pe,or){for(var qr=!1,si=0,Di=or.parameters;si0){var Xi=e.flattenDestructuringBinding(wi,y,B,0,E.getGeneratedNameForNode(wi));if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.getGeneratedNameForNode(wi),Zt=e.visitNode(wi.initializer,y,e.isExpression),_r=E.createAssignment(Wt,Zt),Gi=E.createExpressionStatement(_r);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.cloneNode(wi.name);e.setTextRange(Wt,wi.name),e.setEmitFlags(Wt,48);var Zt=e.visitNode(wi.initializer,y,e.isExpression);e.addEmitFlags(Zt,1584);var _r=E.createAssignment(Wt,Zt);e.setTextRange(_r,wi),e.setEmitFlags(_r,1536);var pi=E.createBlock([E.createExpressionStatement(_r)]);e.setTextRange(pi,wi),e.setEmitFlags(pi,1953);var ae=E.createTypeCheck(E.cloneNode(wi.name),"undefined"),Gi=E.createIfStatement(ae,pi);e.startOnNewLine(Gi),e.setTextRange(Gi,wi),e.setEmitFlags(Gi,1050528),pe=e.append(pe,Gi)}}else if(wi.transformFlags&32768){qr=!0;var Xi=e.flattenDestructuringBinding(wi,y,B,1,E.getGeneratedNameForNode(wi),!1,!0);if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}}return pe}function be(){(b&1)===0&&(b|=1,B.enableSubstitution(208),B.enableSubstitution(206),B.enableSubstitution(207),B.enableEmitNotification(257),B.enableEmitNotification(169),B.enableEmitNotification(172),B.enableEmitNotification(173),B.enableEmitNotification(171),B.enableEmitNotification(237))}function Ge(pe,or,qr){if(b&1&&ii(or)){var si=m.getNodeCheckFlags(or)&6144;if(si!==ie){var Di=ie;ie=si,f(pe,or,qr),ie=Di;return}}else if(b&&he[e.getNodeId(or)]){var Di=ie;ie=0,f(pe,or,qr),ie=Di;return}f(pe,or,qr)}function ur(pe,or){return or=T(pe,or),pe===1&&ie?yr(or):or}function yr(pe){switch(pe.kind){case 206:return Ir(pe);case 207:return wr(pe);case 208:return Ur(pe)}return pe}function Ir(pe){return pe.expression.kind===106?e.setTextRange(E.createPropertyAccessExpression(E.createUniqueName("_super",48),pe.name),pe):pe}function wr(pe){return pe.expression.kind===106?mi(pe.argumentExpression,pe):pe}function Ur(pe){var or=pe.expression;if(e.isSuperProperty(or)){var qr=e.isPropertyAccessExpression(or)?Ir(or):wr(or);return E.createCallExpression(E.createPropertyAccessExpression(qr,"call"),void 0,Ve([E.createThis()],pe.arguments,!0))}return pe}function ii(pe){var or=pe.kind;return or===257||or===171||or===169||or===172||or===173}function mi(pe,or){return ie&4096?e.setTextRange(E.createPropertyAccessExpression(E.createCallExpression(E.createIdentifier("_superIndex"),void 0,[pe]),"value"),or):e.setTextRange(E.createCallExpression(E.createIdentifier("_superIndex"),void 0,[pe]),or)}}e.transformES2018=w})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory;return e.chainBundle(C,B);function B(le){return le.isDeclarationFile?le:e.visitEachChild(le,E,C)}function E(le){if((le.transformFlags&64)===0)return le;switch(le.kind){case 292:return Q(le);default:return e.visitEachChild(le,E,C)}}function Q(le){return le.variableDeclaration?e.visitEachChild(le,E,C):w.updateCatchClause(le,w.createVariableDeclaration(w.createTempVariable(void 0)),e.visitNode(le.block,E,e.isBlock))}}e.transformES2019=a})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory,B=C.hoistVariableDeclaration;return e.chainBundle(C,E);function E(b){return b.isDeclarationFile?b:e.visitEachChild(b,Q,C)}function Q(b){if((b.transformFlags&32)===0)return b;switch(b.kind){case 208:{var se=m(b,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}case 206:case 207:if(e.isOptionalChain(b)){var se=oe(b,!1,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}return e.visitEachChild(b,Q,C);case 221:return b.operatorToken.kind===60?T(b):e.visitEachChild(b,Q,C);case 215:return K(b);default:return e.visitEachChild(b,Q,C)}}function le(b){e.Debug.assertNotNode(b,e.isNonNullChain);for(var se=[b];!b.questionDotToken&&!e.isTaggedTemplateExpression(b);)b=e.cast(e.skipPartiallyEmittedExpressions(b.expression),e.isOptionalChain),e.Debug.assertNotNode(b,e.isNonNullChain),se.unshift(b);return{expression:b.expression,chain:se}}function N(b,se,J){var ie=G(b.expression,se,J);return e.isSyntheticReference(ie)?w.createSyntheticReferenceExpression(w.updateParenthesizedExpression(b,ie.expression),ie.thisArg):w.updateParenthesizedExpression(b,ie)}function p(b,se,J){if(e.isOptionalChain(b))return oe(b,se,J);var ie=e.visitNode(b.expression,Q,e.isExpression);e.Debug.assertNotNode(ie,e.isSyntheticReference);var R;return se&&(e.isSimpleCopiableExpression(ie)?R=ie:(R=w.createTempVariable(B),ie=w.createAssignment(R,ie))),ie=b.kind===206?w.updatePropertyAccessExpression(b,ie,e.visitNode(b.name,Q,e.isIdentifier)):w.updateElementAccessExpression(b,ie,e.visitNode(b.argumentExpression,Q,e.isExpression)),R?w.createSyntheticReferenceExpression(ie,R):ie}function m(b,se){if(e.isOptionalChain(b))return oe(b,se,!1);if(e.isParenthesizedExpression(b.expression)&&e.isOptionalChain(e.skipParentheses(b.expression))){var J=N(b.expression,!0,!1),ie=e.visitNodes(b.arguments,Q,e.isExpression);return e.isSyntheticReference(J)?e.setTextRange(w.createFunctionCallCall(J.expression,J.thisArg,ie),b):w.updateCallExpression(b,J,void 0,ie)}return e.visitEachChild(b,Q,C)}function G(b,se,J){switch(b.kind){case 212:return N(b,se,J);case 206:case 207:return p(b,se,J);case 208:return m(b,se);default:return e.visitNode(b,Q,e.isExpression)}}function oe(b,se,J){var ie=le(b),R=ie.expression,q=ie.chain,O=G(e.skipPartiallyEmittedExpressions(R),e.isCallChain(q[0]),!1),ve=e.isSyntheticReference(O)?O.thisArg:void 0,ee=e.isSyntheticReference(O)?O.expression:O,he=w.restoreOuterExpressions(R,ee,8);e.isSimpleCopiableExpression(ee)||(ee=w.createTempVariable(B),he=w.createAssignment(ee,he));for(var F=ee,x,X=0;X1||!!(!((Be=ge[0])===null||Be===void 0)&&Be.dotDotDotToken),ze=[g,ne];if(ue&&ze.push(Y(ue.initializer)),Q.jsx===5){var Ee=e.getOriginalNode(le);if(Ee&&e.isSourceFile(Ee)){ue===void 0&&ze.push(B.createVoidZero()),ze.push(Re?B.createTrue():B.createFalse());var He=e.getLineAndCharacterOfPosition(Ee,Z.pos);ze.push(B.createObjectLiteralExpression([B.createPropertyAssignment("fileName",p()),B.createPropertyAssignment("lineNumber",B.createNumericLiteral(He.line+1)),B.createPropertyAssignment("columnNumber",B.createNumericLiteral(He.character+1))])),ze.push(B.createThis())}}var rr=e.setTextRange(B.createCallExpression(G(Re),void 0,ze),Z);return Fe&&e.startOnNewLine(rr),rr}function x(g,ne,ue,We){var Fe=d(g),Z=g.attributes.properties,Be=e.length(Z)?y(Z):B.createNull(),ge=N.importSpecifier===void 0?e.createJsxFactoryExpression(B,w.getEmitResolver().getJsxFactoryEntity(le),Q.reactNamespace,g):f("createElement"),Re=e.createExpressionForJsxElement(B,ge,Fe,Be,e.mapDefined(ne,se),We);return ue&&e.startOnNewLine(Re),Re}function X(g,ne,ue,We){var Fe;if(ne&&ne.length){var Z=ve(ne);Z&&(Fe=Z)}return F(oe(),Fe||B.createObjectLiteralExpression([]),void 0,ne,ue,We)}function $(g,ne,ue,We){var Fe=e.createExpressionForJsxFragment(B,w.getEmitResolver().getJsxFactoryEntity(le),w.getEmitResolver().getJsxFragmentFactoryEntity(le),Q.reactNamespace,e.mapDefined(ne,se),g,We);return ue&&e.startOnNewLine(Fe),Fe}function A(g){return B.createSpreadAssignment(e.visitNode(g.expression,K,e.isExpression))}function y(g,ne){var ue=e.getEmitScriptTarget(Q);return ue&&ue>=5?B.createObjectLiteralExpression(V(g,ne)):L(g,ne)}function V(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return e.map(We,function(Z){return Fe?A(Z):k(Z)})}));return ne&&ue.push(ne),ue}function L(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return Fe?e.map(We,P):B.createObjectLiteralExpression(e.map(We,k))}));return e.isJsxSpreadAttribute(g[0])&&ue.unshift(B.createObjectLiteralExpression()),ne&&ue.push(B.createObjectLiteralExpression([ne])),e.singleOrUndefined(ue)||E().createAssignHelper(ue)}function P(g){return e.visitNode(g.expression,K,e.isExpression)}function k(g){var ne=D(g),ue=Y(g.initializer);return B.createPropertyAssignment(ne,ue)}function Y(g){if(g===void 0)return B.createTrue();if(g.kind===10){var ne=g.singleQuote!==void 0?g.singleQuote:!e.isStringDoubleQuoted(g,le),ue=B.createStringLiteral(l(g.text)||g.text,ne);return e.setTextRange(ue,g)}else return g.kind===288?g.expression===void 0?B.createTrue():e.visitNode(g.expression,K,e.isExpression):e.Debug.failBadSyntaxKind(g)}function U(g){var ne=j(g.text);return ne===void 0?void 0:B.createStringLiteral(ne)}function j(g){for(var ne,ue=0,We=-1,Fe=0;Fe0?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(Gr,L,p,0,m.getGeneratedNameForNode(Gr)))),1048576)),!0):Ce?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createExpressionStatement(m.createAssignment(m.getGeneratedNameForNode(Gr),e.visitNode(Ce,L,e.isExpression))),1048576)),!0):!1}function er(Qe,Gr,S,Ce){Ce=e.visitNode(Ce,L,e.isExpression);var qe=m.createIfStatement(m.createTypeCheck(m.cloneNode(S),"undefined"),e.setEmitFlags(e.setTextRange(m.createBlock([m.createExpressionStatement(e.setEmitFlags(e.setTextRange(m.createAssignment(e.setEmitFlags(e.setParent(e.setTextRange(m.cloneNode(S),S),S.parent),48),e.setEmitFlags(Ce,48|e.getEmitFlags(Ce)|1536)),Gr),1536))]),Gr),1953));e.startOnNewLine(qe),e.setTextRange(qe,Gr),e.setEmitFlags(qe,1050528),e.insertStatementAfterCustomPrologue(Qe,qe)}function ir(Qe,Gr){return!!(Qe&&Qe.dotDotDotToken&&!Gr)}function Cr(Qe,Gr,S){var Ce=[],qe=e.lastOrUndefined(Gr.parameters);if(!ir(qe,S))return!1;var br=qe.name.kind===79?e.setParent(e.setTextRange(m.cloneNode(qe.name),qe.name),qe.name.parent):m.createTempVariable(void 0);e.setEmitFlags(br,48);var Zr=qe.name.kind===79?m.cloneNode(qe.name):br,Si=Gr.parameters.length-1,Pi=m.createLoopVariable();Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(br,void 0,void 0,m.createArrayLiteralExpression([]))])),qe),1048576));var Qi=m.createForStatement(e.setTextRange(m.createVariableDeclarationList([m.createVariableDeclaration(Pi,void 0,void 0,m.createNumericLiteral(Si))]),qe),e.setTextRange(m.createLessThan(Pi,m.createPropertyAccessExpression(m.createIdentifier("arguments"),"length")),qe),e.setTextRange(m.createPostfixIncrement(Pi),qe),m.createBlock([e.startOnNewLine(e.setTextRange(m.createExpressionStatement(m.createAssignment(m.createElementAccessExpression(Zr,Si===0?Pi:m.createSubtract(Pi,m.createNumericLiteral(Si))),m.createElementAccessExpression(m.createIdentifier("arguments"),Pi))),qe))]));return e.setEmitFlags(Qi,1048576),e.startOnNewLine(Qi),Ce.push(Qi),qe.name.kind!==79&&Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(qe,L,p,0,Zr))),qe),1048576)),e.insertStatementsAfterCustomPrologue(Qe,Ce),!0}function Ye(Qe,Gr){return O&65536&&Gr.kind!==214?(Er(Qe,Gr,m.createThis()),!0):!1}function Br(Qe,Gr){Ko();var S=m.createExpressionStatement(m.createBinaryExpression(m.createThis(),63,Gr));e.insertStatementAfterCustomPrologue(Qe,S),e.setCommentRange(S,e.getOriginalNode(Gr).parent)}function Er(Qe,Gr,S){Ko();var Ce=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName("_this",48),void 0,void 0,S)]));e.setEmitFlags(Ce,1050112),e.setSourceMapRange(Ce,Gr),e.insertStatementAfterCustomPrologue(Qe,Ce)}function Ne(Qe,Gr,S){if(O&32768){var Ce=void 0;switch(Gr.kind){case 214:return Qe;case 169:case 172:case 173:Ce=m.createVoidZero();break;case 171:Ce=m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),"constructor");break;case 256:case 213:Ce=m.createConditionalExpression(m.createLogicalAnd(e.setEmitFlags(m.createThis(),4),m.createBinaryExpression(e.setEmitFlags(m.createThis(),4),102,m.getLocalName(Gr))),void 0,m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),"constructor"),void 0,m.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(Gr)}var qe=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName("_newTarget",48),void 0,void 0,Ce)]));e.setEmitFlags(qe,1050112),S&&(Qe=Qe.slice()),e.insertStatementAfterCustomPrologue(Qe,qe)}return Qe}function n(Qe,Gr){for(var S=0,Ce=Gr.members;S0&&br.push(m.createStringLiteral(qe.literal.text)),Gr=m.createCallExpression(m.createPropertyAccessExpression(Gr,"concat"),void 0,br)}return e.setTextRange(Gr,Qe)}function En(Qe){return O&8&&!Qe?m.createPropertyAccessExpression(m.createUniqueName("_super",48),"prototype"):m.createUniqueName("_super",48)}function Wn(Qe){return Qe.keywordToken===103&&Qe.name.escapedText==="target"?(O|=32768,m.createUniqueName("_newTarget",48)):Qe}function to(Qe,Gr,S){if(F&1&&e.isFunctionLike(Gr)){var Ce=X(32670,e.getEmitFlags(Gr)&8?81:65);ie(Qe,Gr,S),$(Ce,0,0);return}ie(Qe,Gr,S)}function Co(){(F&2)===0&&(F|=2,p.enableSubstitution(79))}function Ko(){(F&1)===0&&(F|=1,p.enableSubstitution(108),p.enableEmitNotification(171),p.enableEmitNotification(169),p.enableEmitNotification(172),p.enableEmitNotification(173),p.enableEmitNotification(214),p.enableEmitNotification(213),p.enableEmitNotification(256))}function Oo(Qe,Gr){return Gr=J(Qe,Gr),Qe===1?Pr(Gr):e.isIdentifier(Gr)?no(Gr):Gr}function no(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=e.getParseTreeNode(Qe,e.isIdentifier);if(Gr&&$o(Gr))return e.setTextRange(m.getGeneratedNameForNode(Gr),Qe)}return Qe}function $o(Qe){switch(Qe.parent.kind){case 203:case 257:case 260:case 254:return Qe.parent.name===Qe&&se.isDeclarationWithCollidingName(Qe.parent)}return!1}function Pr(Qe){switch(Qe.kind){case 79:return xi(Qe);case 108:return pa(Qe)}return Qe}function xi(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=se.getReferencedDeclarationWithCollidingName(Qe);if(Gr&&!(e.isClassLike(Gr)&&St(Gr,Qe)))return e.setTextRange(m.getGeneratedNameForNode(e.getNameOfDeclaration(Gr)),Qe)}return Qe}function St(Qe,Gr){var S=e.getParseTreeNode(Gr);if(!S||S===Qe||S.end<=Qe.pos||S.pos>=Qe.end)return!1;for(var Ce=e.getEnclosingBlockScopeContainer(Qe);S;){if(S===Ce||S===Qe)return!1;if(e.isClassElement(S)&&S.parent===Qe)return!0;S=S.parent}return!1}function pa(Qe){return F&1&&O&16?e.setTextRange(m.createUniqueName("_this",48),Qe):Qe}function dn(Qe,Gr){return e.isStatic(Gr)?m.getInternalName(Qe):m.createPropertyAccessExpression(m.getInternalName(Qe),"prototype")}function Jn(Qe,Gr){if(!Qe||!Gr||e.some(Qe.parameters))return!1;var S=e.firstOrUndefined(Qe.body.statements);if(!S||!e.nodeIsSynthesized(S)||S.kind!==238)return!1;var Ce=S.expression;if(!e.nodeIsSynthesized(Ce)||Ce.kind!==208)return!1;var qe=Ce.expression;if(!e.nodeIsSynthesized(qe)||qe.kind!==106)return!1;var br=e.singleOrUndefined(Ce.arguments);if(!br||!e.nodeIsSynthesized(br)||br.kind!==225)return!1;var Zr=br.expression;return e.isIdentifier(Zr)&&Zr.escapedText==="arguments"}}e.transformES2015=N})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory,B=C.getCompilerOptions(),E,Q;(B.jsx===1||B.jsx===3)&&(E=C.onEmitNode,C.onEmitNode=p,C.enableEmitNotification(280),C.enableEmitNotification(281),C.enableEmitNotification(279),Q=[]);var le=C.onSubstituteNode;return C.onSubstituteNode=m,C.enableSubstitution(206),C.enableSubstitution(296),e.chainBundle(C,N);function N(T){return T}function p(T,K,b){switch(K.kind){case 280:case 281:case 279:var se=K.tagName;Q[e.getOriginalNodeId(se)]=!0;break}E(T,K,b)}function m(T,K){return K.id&&Q&&Q[K.id]?le(T,K):(K=le(T,K),e.isPropertyAccessExpression(K)?G(K):e.isPropertyAssignment(K)?oe(K):K)}function G(T){if(e.isPrivateIdentifier(T.name))return T;var K=f(T.name);return K?e.setTextRange(w.createElementAccessExpression(T.expression,K),T):T}function oe(T){var K=e.isIdentifier(T.name)&&f(T.name);return K?w.updatePropertyAssignment(T,K,T.initializer):T}function f(T){var K=T.originalKeywordKind||(e.nodeIsSynthesized(T)?e.stringToToken(e.idText(T)):void 0);if(K!==void 0&&K>=81&&K<=116)return e.setTextRange(w.createStringLiteralFromNode(T),T)}}e.transformES5=a})(ke||(ke={}));var ke;(function(e){var a;(function(N){N[N.Nop=0]="Nop",N[N.Statement=1]="Statement",N[N.Assign=2]="Assign",N[N.Break=3]="Break",N[N.BreakWhenTrue=4]="BreakWhenTrue",N[N.BreakWhenFalse=5]="BreakWhenFalse",N[N.Yield=6]="Yield",N[N.YieldStar=7]="YieldStar",N[N.Return=8]="Return",N[N.Throw=9]="Throw",N[N.Endfinally=10]="Endfinally"})(a||(a={}));var C;(function(N){N[N.Open=0]="Open",N[N.Close=1]="Close"})(C||(C={}));var w;(function(N){N[N.Exception=0]="Exception",N[N.With=1]="With",N[N.Switch=2]="Switch",N[N.Loop=3]="Loop",N[N.Labeled=4]="Labeled"})(w||(w={}));var B;(function(N){N[N.Try=0]="Try",N[N.Catch=1]="Catch",N[N.Finally=2]="Finally",N[N.Done=3]="Done"})(B||(B={}));var E;(function(N){N[N.Next=0]="Next",N[N.Throw=1]="Throw",N[N.Return=2]="Return",N[N.Break=3]="Break",N[N.Yield=4]="Yield",N[N.YieldStar=5]="YieldStar",N[N.Catch=6]="Catch",N[N.Endfinally=7]="Endfinally"})(E||(E={}));function Q(N){switch(N){case 2:return"return";case 3:return"break";case 4:return"yield";case 5:return"yield*";case 7:return"endfinally";default:return}}function le(N){var p=N.factory,m=N.getEmitHelperFactory,G=N.resumeLexicalEnvironment,oe=N.endLexicalEnvironment,f=N.hoistFunctionDeclaration,T=N.hoistVariableDeclaration,K=N.getCompilerOptions(),b=e.getEmitScriptTarget(K),se=N.getEmitResolver(),J=N.onSubstituteNode;N.onSubstituteNode=zr;var ie,R,q,O,ve,ee,he,F,x,X,$=1,A,y,V,L,P=0,k=0,Y,U,j,H,I,l,d,D;return e.chainBundle(N,fe);function fe(Pr){if(Pr.isDeclarationFile||(Pr.transformFlags&2048)===0)return Pr;var xi=e.visitEachChild(Pr,g,N);return e.addEmitHelpers(xi,N.readEmitHelpers()),xi}function g(Pr){var xi=Pr.transformFlags;return O?ne(Pr):q?ue(Pr):e.isFunctionLikeDeclaration(Pr)&&Pr.asteriskToken?Fe(Pr):xi&2048?e.visitEachChild(Pr,g,N):Pr}function ne(Pr){switch(Pr.kind){case 240:return Ur(Pr);case 241:return mi(Pr);case 249:return pi(Pr);case 250:return Xe(Pr);default:return ue(Pr)}}function ue(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);case 172:case 173:return ge(Pr);case 237:return ze(Pr);case 242:return or(Pr);case 243:return si(Pr);case 246:return et(Pr);case 245:return wi(Pr);case 247:return Wt(Pr);default:return Pr.transformFlags&524288?We(Pr):Pr.transformFlags&2099200?e.visitEachChild(Pr,g,N):Pr}}function We(Pr){switch(Pr.kind){case 221:return Ee(Pr);case 351:return _e(Pr);case 222:return de(Pr);case 224:return ye(Pr);case 204:return Ae(Pr);case 205:return ir(Pr);case 207:return Cr(Pr);case 208:return Ye(Pr);case 209:return Br(Pr);default:return e.visitEachChild(Pr,g,N)}}function Fe(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);default:return e.Debug.failBadSyntaxKind(Pr)}}function Z(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionDeclaration(void 0,Pr.modifiers,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}if(q){f(Pr);return}else return Pr}function Be(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionExpression(void 0,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}return Pr}function ge(Pr){var xi=q,St=O;return q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St,Pr}function Re(Pr){var xi=[],St=q,pa=O,dn=ve,Jn=ee,Qe=he,Gr=F,S=x,Ce=X,qe=$,br=A,Zr=y,Si=V,Pi=L;q=!0,O=!1,ve=void 0,ee=void 0,he=void 0,F=void 0,x=void 0,X=void 0,$=1,A=void 0,y=void 0,V=void 0,L=p.createTempVariable(void 0),G();var Qi=p.copyPrologue(Pr.statements,xi,!1,g);Er(Pr.statements,Qi);var Ct=pn();return e.insertStatementsAfterStandardPrologue(xi,oe()),xi.push(p.createReturnStatement(Ct)),q=St,O=pa,ve=dn,ee=Jn,he=Qe,F=Gr,x=S,X=Ce,$=qe,A=br,y=Zr,V=Si,L=Pi,e.setTextRange(p.createBlock(xi,Pr.multiLine),Pr)}function ze(Pr){if(Pr.transformFlags&524288){ur(Pr.declarationList);return}else{if(e.getEmitFlags(Pr)&1048576)return Pr;for(var xi=0,St=Pr.declarationList.declarations;xi0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(pa,g,e.isExpression)))}}function _e(Pr){for(var xi=[],St=0,pa=Pr.elements;St0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(dn,g,e.isExpression)))}return p.inlineExpressions(xi)}function we(Pr){var xi=mr(),St=vr();return Vi(St,e.visitNode(Pr.left,g,e.isExpression),Pr.left),Pr.operatorToken.kind===55?ba(xi,St,Pr.left):At(xi,St,Pr.left),Vi(St,e.visitNode(Pr.right,g,e.isExpression),Pr.right),Ar(xi),St}function de(Pr){if(Ze(Pr.whenTrue)||Ze(Pr.whenFalse)){var xi=mr(),St=mr(),pa=vr();return ba(xi,e.visitNode(Pr.condition,g,e.isExpression),Pr.condition),Vi(pa,e.visitNode(Pr.whenTrue,g,e.isExpression),Pr.whenTrue),at(St),Ar(xi),Vi(pa,e.visitNode(Pr.whenFalse,g,e.isExpression),Pr.whenFalse),Ar(St),pa}return e.visitEachChild(Pr,g,N)}function ye(Pr){var xi=mr(),St=e.visitNode(Pr.expression,g,e.isExpression);if(Pr.asteriskToken){var pa=(e.getEmitFlags(Pr.expression)&8388608)===0?e.setTextRange(m().createValuesHelper(St),Pr):St;$a(pa,Pr)}else Qa(St,Pr);return Ar(xi),Ai(Pr)}function Ae(Pr){return er(Pr.elements,void 0,void 0,Pr.multiLine)}function er(Pr,xi,St,pa){var dn=Sr(Pr),Jn;if(dn>0){Jn=vr();var Qe=e.visitNodes(Pr,g,e.isExpression,0,dn);Vi(Jn,p.createArrayLiteralExpression(xi?Ve([xi],Qe,!0):Qe)),xi=void 0}var Gr=e.reduceLeft(Pr,S,[],dn);return Jn?p.createArrayConcatCall(Jn,[p.createArrayLiteralExpression(Gr,pa)]):e.setTextRange(p.createArrayLiteralExpression(xi?Ve([xi],Gr,!0):Gr,pa),St);function S(Ce,qe){if(Ze(qe)&&Ce.length>0){var br=Jn!==void 0;Jn||(Jn=vr()),Vi(Jn,br?p.createArrayConcatCall(Jn,[p.createArrayLiteralExpression(Ce,pa)]):p.createArrayLiteralExpression(xi?Ve([xi],Ce,!0):Ce,pa)),xi=void 0,Ce=[]}return Ce.push(e.visitNode(qe,g,e.isExpression)),Ce}}function ir(Pr){var xi=Pr.properties,St=Pr.multiLine,pa=Sr(xi),dn=vr();Vi(dn,p.createObjectLiteralExpression(e.visitNodes(xi,g,e.isObjectLiteralElementLike,0,pa),St));var Jn=e.reduceLeft(xi,Qe,[],pa);return Jn.push(St?e.startOnNewLine(e.setParent(e.setTextRange(p.cloneNode(dn),dn),dn.parent)):dn),p.inlineExpressions(Jn);function Qe(Gr,S){Ze(S)&&Gr.length>0&&(ji(p.createExpressionStatement(p.inlineExpressions(Gr))),Gr=[]);var Ce=e.createExpressionForObjectLiteralElementLike(p,Pr,S,dn),qe=e.visitNode(Ce,g,e.isExpression);return qe&&(St&&e.startOnNewLine(qe),Gr.push(qe)),Gr}}function Cr(Pr){return Ze(Pr.argumentExpression)?p.updateElementAccessExpression(Pr,xe(e.visitNode(Pr.expression,g,e.isLeftHandSideExpression)),e.visitNode(Pr.argumentExpression,g,e.isExpression)):e.visitEachChild(Pr,g,N)}function Ye(Pr){if(!e.isImportCall(Pr)&&e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(Pr.expression,T,b,!0),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isLeftHandSideExpression)),pa,er(Pr.arguments)),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Br(Pr){if(e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(p.createPropertyAccessExpression(Pr.expression,"bind"),T),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createNewExpression(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isExpression)),pa,er(Pr.arguments,p.createVoidZero())),void 0,[]),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Er(Pr,xi){xi===void 0&&(xi=0);for(var St=Pr.length,pa=xi;pa0)break;S.push(yr(pa))}S.length&&(ji(p.createExpressionStatement(p.inlineExpressions(S))),Gr+=S.length,S=[])}}function yr(Pr){return e.setSourceMapRange(p.createAssignment(e.setSourceMapRange(p.cloneNode(Pr.name),Pr.name),e.visitNode(Pr.initializer,g,e.isExpression)),Pr)}function Ir(Pr){if(Ze(Pr))if(Ze(Pr.thenStatement)||Ze(Pr.elseStatement)){var xi=mr(),St=Pr.elseStatement?mr():void 0;ba(Pr.elseStatement?St:xi,e.visitNode(Pr.expression,g,e.isExpression),Pr.expression),Ne(Pr.thenStatement),Pr.elseStatement&&(at(xi),Ar(St),Ne(Pr.elseStatement)),Ar(xi)}else ji(e.visitNode(Pr,g,e.isStatement));else ji(e.visitNode(Pr,g,e.isStatement))}function wr(Pr){if(Ze(Pr)){var xi=mr(),St=mr();Ui(xi),Ar(St),Ne(Pr.statement),Ar(xi),At(St,e.visitNode(Pr.expression,g,e.isExpression)),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function Ur(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function ii(Pr){if(Ze(Pr)){var xi=mr(),St=Ui(xi);Ar(xi),ba(St,e.visitNode(Pr.expression,g,e.isExpression)),Ne(Pr.statement),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function mi(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function pe(Pr){if(Ze(Pr)){var xi=mr(),St=mr(),pa=Ui(St);if(Pr.initializer){var dn=Pr.initializer;e.isVariableDeclarationList(dn)?ur(dn):ji(e.setTextRange(p.createExpressionStatement(e.visitNode(dn,g,e.isExpression)),dn))}Ar(xi),Pr.condition&&ba(pa,e.visitNode(Pr.condition,g,e.isExpression)),Ne(Pr.statement),Ar(St),Pr.incrementor&&ji(e.setTextRange(p.createExpressionStatement(e.visitNode(Pr.incrementor,g,e.isExpression)),Pr.incrementor)),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function or(Pr){O&&vi();var xi=Pr.initializer;if(xi&&e.isVariableDeclarationList(xi)){for(var St=0,pa=xi.declarations;St0?p.inlineExpressions(e.map(Jn,yr)):void 0,e.visitNode(Pr.condition,g,e.isExpression),e.visitNode(Pr.incrementor,g,e.isExpression),e.visitIterationBody(Pr.statement,g,N))}else Pr=e.visitEachChild(Pr,g,N);return O&&Yi(),Pr}function qr(Pr){if(Ze(Pr)){var xi=vr(),St=vr(),pa=p.createLoopVariable(),dn=Pr.initializer;T(pa),Vi(xi,p.createArrayLiteralExpression()),ji(p.createForInStatement(St,e.visitNode(Pr.expression,g,e.isExpression),p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(xi,"push"),void 0,[St])))),Vi(pa,p.createNumericLiteral(0));var Jn=mr(),Qe=mr(),Gr=Ui(Qe);Ar(Jn),ba(Gr,p.createLessThan(pa,p.createPropertyAccessExpression(xi,"length")));var S=void 0;if(e.isVariableDeclarationList(dn)){for(var Ce=0,qe=dn.declarations;Ce0?at(xi,Pr):ji(Pr)}function wi(Pr){if(O){var xi=Fi(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Xi(Pr){var xi=Ki(Pr.label?e.idText(Pr.label):void 0);xi>0?at(xi,Pr):ji(Pr)}function et(Pr){if(O){var xi=Ki(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Gi(Pr){ai(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Wt(Pr){return na(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Zt(Pr){Ze(Pr)?(Ue(xe(e.visitNode(Pr.expression,g,e.isExpression))),Ne(Pr.statement),fr()):ji(e.visitNode(Pr,g,e.isStatement))}function _r(Pr){if(Ze(Pr.caseBlock)){for(var xi=Pr.caseBlock,St=xi.clauses.length,pa=ct(),dn=xe(e.visitNode(Pr.expression,g,e.isExpression)),Jn=[],Qe=-1,Gr=0;Gr0)break;qe.push(p.createCaseClause(e.visitNode(S.expression,g,e.isExpression),[wt(Jn[Gr],S.expression)]))}else br++}qe.length&&(ji(p.createSwitchStatement(dn,p.createCaseBlock(qe))),Ce+=qe.length,qe=[]),br>0&&(Ce+=br,br=0)}Qe>=0?at(Jn[Qe]):at(pa);for(var Gr=0;Gr=0;St--){var pa=F[St];if(Dt(pa)){if(pa.labelText===Pr)return!0}else break}return!1}function Ki(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Dt(St)&&St.labelText===Pr)return St.breakLabel;if(ut(St)&&Ii(Pr,xi-1))return St.breakLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(ut(St))return St.breakLabel}return 0}function Fi(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St)&&Ii(Pr,xi-1))return St.continueLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St))return St.continueLabel}return 0}function ui(Pr){if(Pr!==void 0&&Pr>0){X===void 0&&(X=[]);var xi=p.createNumericLiteral(-1);return X[Pr]===void 0?X[Pr]=[xi]:X[Pr].push(xi),xi}return p.createOmittedExpression()}function Bt(Pr){var xi=p.createNumericLiteral(Pr);return e.addSyntheticTrailingComment(xi,3,Q(Pr)),xi}function wt(Pr,xi){return e.Debug.assertLessThan(0,Pr,"Invalid label"),e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression([Bt(3),ui(Pr)])),xi)}function na(Pr,xi){return e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression(Pr?[Bt(2),Pr]:[Bt(2)])),xi)}function Ai(Pr){return e.setTextRange(p.createCallExpression(p.createPropertyAccessExpression(L,"sent"),void 0,[]),Pr)}function Oi(){Ba(0)}function ji(Pr){Pr?Ba(1,[Pr]):Oi()}function Vi(Pr,xi,St){Ba(2,[Pr,xi],St)}function at(Pr,xi){Ba(3,[Pr],xi)}function At(Pr,xi,St){Ba(4,[Pr,xi],St)}function ba(Pr,xi,St){Ba(5,[Pr,xi],St)}function $a(Pr,xi){Ba(7,[Pr],xi)}function Qa(Pr,xi){Ba(6,[Pr],xi)}function ai(Pr,xi){Ba(8,[Pr],xi)}function Dn(Pr,xi){Ba(9,[Pr],xi)}function ka(){Ba(10)}function Ba(Pr,xi,St){A===void 0&&(A=[],y=[],V=[]),x===void 0&&Ar(mr());var pa=A.length;A[pa]=Pr,y[pa]=xi,V[pa]=St}function pn(){P=0,k=0,Y=void 0,U=!1,j=!1,H=void 0,I=void 0,l=void 0,d=void 0,D=void 0;var Pr=Cn();return m().createGeneratorHelper(e.setEmitFlags(p.createFunctionExpression(void 0,void 0,void 0,void 0,[p.createParameterDeclaration(void 0,void 0,void 0,L)],void 0,p.createBlock(Pr,Pr.length>0)),524288))}function Cn(){if(A){for(var Pr=0;Pr=0;xi--){var St=D[xi];I=[p.createWithStatement(St.expression,p.createBlock(I))]}if(d){var pa=d.startLabel,dn=d.catchLabel,Jn=d.finallyLabel,Qe=d.endLabel;I.unshift(p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(p.createPropertyAccessExpression(L,"trys"),"push"),void 0,[p.createArrayLiteralExpression([ui(pa),ui(dn),ui(Jn),ui(Qe)])]))),d=void 0}Pr&&I.push(p.createExpressionStatement(p.createAssignment(p.createPropertyAccessExpression(L,"label"),p.createNumericLiteral(k+1))))}H.push(p.createCaseClause(p.createNumericLiteral(k),I||[])),I=void 0}function Pn(Pr){if(!!x)for(var xi=0;xi(e.isExportName(pe)?1:0);return!1}function U(pe,or){return Y(pe.left)?e.flattenDestructuringAssignment(pe,P,w,0,!or,rr):e.visitEachChild(pe,P,w)}function j(pe){return E.updateForStatement(pe,e.visitNode(pe.initializer,k,e.isForInitializer),e.visitNode(pe.condition,P,e.isExpression),e.visitNode(pe.incrementor,k,e.isExpression),e.visitIterationBody(pe.statement,P,w))}function H(pe){return E.updateExpressionStatement(pe,e.visitNode(pe.expression,k,e.isExpression))}function I(pe,or){return E.updateParenthesizedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function l(pe,or){return E.updatePartiallyEmittedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function d(pe,or){if((pe.operator===45||pe.operator===46)&&e.isIdentifier(pe.operand)&&!e.isGeneratedIdentifier(pe.operand)&&!e.isLocalName(pe.operand)&&!e.isDeclarationNameOfEnumOrNamespace(pe.operand)){var qr=mi(pe.operand);if(qr){var si=void 0,Di=e.visitNode(pe.operand,P,e.isExpression);e.isPrefixUnaryExpression(pe)?Di=E.updatePrefixUnaryExpression(pe,Di):(Di=E.updatePostfixUnaryExpression(pe,Di),or||(si=E.createTempVariable(p),Di=E.createAssignment(si,Di),e.setTextRange(Di,pe)),Di=E.createComma(Di,E.cloneNode(pe.operand)),e.setTextRange(Di,pe));for(var wi=0,Xi=qr;wi=2?Xi=E.createArrowFunction(void 0,void 0,Di,void 0,void 0,wi):(Xi=E.createFunctionExpression(void 0,void 0,void 0,void 0,Di,void 0,wi),or&&e.setEmitFlags(Xi,8));var et=E.createNewExpression(E.createIdentifier("Promise"),void 0,[Xi]);return e.getESModuleInterop(m)?E.createCallExpression(E.createPropertyAccessExpression(et,E.createIdentifier("then")),void 0,[Q().createImportStarCallbackHelper()]):et}function ne(pe,or){var qr=E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier("Promise"),"resolve"),void 0,[]),si=E.createCallExpression(E.createIdentifier("require"),void 0,pe?[pe]:[]);e.getESModuleInterop(m)&&(si=Q().createImportStarHelper(si));var Di;return f>=2?Di=E.createArrowFunction(void 0,void 0,[],void 0,void 0,si):(Di=E.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,E.createBlock([E.createReturnStatement(si)])),or&&e.setEmitFlags(Di,8)),E.createCallExpression(E.createPropertyAccessExpression(qr,"then"),void 0,[Di])}function ue(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getExportNeedsImportStarHelper(pe)?Q().createImportStarHelper(or):or}function We(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getImportNeedsImportStarHelper(pe)?Q().createImportStarHelper(or):e.getImportNeedsImportDefaultHelper(pe)?Q().createImportDefaultHelper(or):or}function Fe(pe){var or,qr=e.getNamespaceDeclarationNode(pe);if(T!==e.ModuleKind.AMD)if(pe.importClause){var si=[];qr&&!e.isDefaultImport(pe)?si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,We(pe,Z(pe)))):(si.push(E.createVariableDeclaration(E.getGeneratedNameForNode(pe),void 0,void 0,We(pe,Z(pe)))),qr&&e.isDefaultImport(pe)&&si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)))),or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList(si,f>=2?2:0)),pe),pe))}else return e.setOriginalNode(e.setTextRange(E.createExpressionStatement(Z(pe)),pe),pe);else qr&&e.isDefaultImport(pe)&&(or=e.append(or,E.createVariableStatement(void 0,E.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)),pe),pe)],f>=2?2:0))));if(we(pe)){var Di=e.getOriginalNodeId(pe);J[Di]=ye(J[Di],pe)}else or=ye(or,pe);return e.singleOrMany(or)}function Z(pe){var or=e.getExternalModuleNameLiteral(E,pe,ie,oe,G,m),qr=[];return or&&qr.push(or),E.createCallExpression(E.createIdentifier("require"),void 0,qr)}function Be(pe){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(pe),"import= for internal module references should be handled in an earlier transformer.");var or;if(T!==e.ModuleKind.AMD?e.hasSyntacticModifier(pe,1)?or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(pe.name,Z(pe))),pe),pe)):or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.cloneNode(pe.name),void 0,void 0,Z(pe))],f>=2?2:0)),pe),pe)):e.hasSyntacticModifier(pe,1)&&(or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(E.getExportName(pe),E.getLocalName(pe))),pe),pe))),we(pe)){var qr=e.getOriginalNodeId(pe);J[qr]=Ae(J[qr],pe)}else or=Ae(or,pe);return e.singleOrMany(or)}function ge(pe){if(!!pe.moduleSpecifier){var or=E.getGeneratedNameForNode(pe);if(pe.exportClause&&e.isNamedExports(pe.exportClause)){var qr=[];T!==e.ModuleKind.AMD&&qr.push(e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(or,void 0,void 0,Z(pe))])),pe),pe));for(var si=0,Di=pe.exportClause.elements;si=e.ModuleKind.ES2020?J(he):void 0;case 271:return R(he);case 272:var F=he;return q(F)}return he}function se(he){var F=e.getExternalModuleNameLiteral(w,he,e.Debug.checkDefined(oe),E,Q,le),x=[];if(F&&x.push(F),!f){var X=w.createUniqueName("_createRequire",48),$=w.createImportDeclaration(void 0,void 0,w.createImportClause(!1,void 0,w.createNamedImports([w.createImportSpecifier(!1,w.createIdentifier("createRequire"),X)])),w.createStringLiteral("module")),A=w.createUniqueName("__require",48),y=w.createVariableStatement(void 0,w.createVariableDeclarationList([w.createVariableDeclaration(A,void 0,void 0,w.createCallExpression(w.cloneNode(X),void 0,[w.createPropertyAccessExpression(w.createMetaProperty(100,w.createIdentifier("meta")),w.createIdentifier("url"))]))],N>=2?2:0));f=[$,y]}var V=f[1].declarationList.declarations[0].name;return e.Debug.assertNode(V,e.isIdentifier),w.createCallExpression(w.cloneNode(V),void 0,x)}function J(he){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(he),"import= for internal module references should be handled in an earlier transformer.");var F;return F=e.append(F,e.setOriginalNode(e.setTextRange(w.createVariableStatement(void 0,w.createVariableDeclarationList([w.createVariableDeclaration(w.cloneNode(he.name),void 0,void 0,se(he))],N>=2?2:0)),he),he)),F=ie(F,he),e.singleOrMany(F)}function ie(he,F){return e.hasSyntacticModifier(F,1)&&(he=e.append(he,w.createExportDeclaration(void 0,void 0,F.isTypeOnly,w.createNamedExports([w.createExportSpecifier(!1,void 0,e.idText(F.name))])))),he}function R(he){return he.isExportEquals?void 0:he}function q(he){if(le.module!==void 0&&le.module>e.ModuleKind.ES2015||!he.exportClause||!e.isNamespaceExport(he.exportClause)||!he.moduleSpecifier)return he;var F=he.exportClause.name,x=w.getGeneratedNameForNode(F),X=w.createImportDeclaration(void 0,void 0,w.createImportClause(!1,void 0,w.createNamespaceImport(x)),he.moduleSpecifier,he.assertClause);e.setOriginalNode(X,he.exportClause);var $=e.isExportNamespaceAsDefaultDeclaration(he)?w.createExportDefault(x):w.createExportDeclaration(void 0,void 0,!1,w.createNamedExports([w.createExportSpecifier(!1,x,F)]));return e.setOriginalNode($,he),[X,$]}function O(he,F,x){e.isSourceFile(F)?((e.isExternalModule(F)||le.isolatedModules)&&le.importHelpers&&(G=new e.Map),p(he,F,x),G=void 0):p(he,F,x)}function ve(he,F){return F=m(he,F),G&&e.isIdentifier(F)&&e.getEmitFlags(F)&4096?ee(F):F}function ee(he){var F=e.idText(he),x=G.get(F);return x||G.set(F,x=w.createUniqueName(F,48)),x}}e.transformECMAScriptModule=a})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.onSubstituteNode,B=C.onEmitNode,E=e.transformECMAScriptModule(C),Q=C.onSubstituteNode,le=C.onEmitNode;C.onSubstituteNode=w,C.onEmitNode=B;var N=e.transformModule(C),p=C.onSubstituteNode,m=C.onEmitNode;C.onSubstituteNode=oe,C.onEmitNode=f,C.enableSubstitution(305),C.enableEmitNotification(305);var G;return b;function oe(J,ie){return e.isSourceFile(ie)?(G=ie,w(J,ie)):G?G.impliedNodeFormat===e.ModuleKind.ESNext?Q(J,ie):p(J,ie):w(J,ie)}function f(J,ie,R){return e.isSourceFile(ie)&&(G=ie),G?G.impliedNodeFormat===e.ModuleKind.ESNext?le(J,ie,R):m(J,ie,R):B(J,ie,R)}function T(J){return J.impliedNodeFormat===e.ModuleKind.ESNext?E:N}function K(J){if(J.isDeclarationFile)return J;G=J;var ie=T(J)(J);return G=void 0,e.Debug.assert(e.isSourceFile(ie)),ie}function b(J){return J.kind===305?K(J):se(J)}function se(J){return C.factory.createBundle(e.map(J.sourceFiles,K),J.prepends)}}e.transformNodeModule=a})(ke||(ke={}));var ke;(function(e){function a(B){return e.isVariableDeclaration(B)||e.isPropertyDeclaration(B)||e.isPropertySignature(B)||e.isBindingElement(B)||e.isSetAccessor(B)||e.isGetAccessor(B)||e.isConstructSignatureDeclaration(B)||e.isCallSignatureDeclaration(B)||e.isMethodDeclaration(B)||e.isMethodSignature(B)||e.isFunctionDeclaration(B)||e.isParameter(B)||e.isTypeParameterDeclaration(B)||e.isExpressionWithTypeArguments(B)||e.isImportEqualsDeclaration(B)||e.isTypeAliasDeclaration(B)||e.isConstructorDeclaration(B)||e.isIndexSignatureDeclaration(B)||e.isPropertyAccessExpression(B)||e.isJSDocTypeAlias(B)}e.canProduceDiagnostics=a;function C(B){if(e.isSetAccessor(B)||e.isGetAccessor(B))return E;return e.isMethodSignature(B)||e.isMethodDeclaration(B)?le:w(B);function E(p){var m=Q(p);return m!==void 0?{diagnosticMessage:m,errorNode:B,typeName:B.name}:void 0}function Q(p){return e.isStatic(B)?p.errorModuleName?p.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:B.parent.kind===257?p.errorModuleName?p.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:p.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 le(p){var m=N(p);return m!==void 0?{diagnosticMessage:m,errorNode:B,typeName:B.name}:void 0}function N(p){return e.isStatic(B)?p.errorModuleName?p.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:B.parent.kind===257?p.errorModuleName?p.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:p.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=C;function w(B){if(e.isVariableDeclaration(B)||e.isPropertyDeclaration(B)||e.isPropertySignature(B)||e.isPropertyAccessExpression(B)||e.isBindingElement(B)||e.isConstructorDeclaration(B))return Q;return e.isSetAccessor(B)||e.isGetAccessor(B)?le:e.isConstructSignatureDeclaration(B)||e.isCallSignatureDeclaration(B)||e.isMethodDeclaration(B)||e.isMethodSignature(B)||e.isFunctionDeclaration(B)||e.isIndexSignatureDeclaration(B)?N:e.isParameter(B)?e.isParameterPropertyDeclaration(B,B.parent)&&e.hasSyntacticModifier(B.parent,8)?Q:p:e.isTypeParameterDeclaration(B)?G:e.isExpressionWithTypeArguments(B)?oe:e.isImportEqualsDeclaration(B)?f:e.isTypeAliasDeclaration(B)||e.isJSDocTypeAlias(B)?T:e.Debug.assertNever(B,"Attempted to set a declaration diagnostic context for unhandled node kind: ".concat(e.SyntaxKind[B.kind]));function E(K){if(B.kind===254||B.kind===203)return K.errorModuleName?K.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(B.kind===167||B.kind===206||B.kind===166||B.kind===164&&e.hasSyntacticModifier(B.parent,8))return e.isStatic(B)?K.errorModuleName?K.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:B.parent.kind===257||B.kind===164?K.errorModuleName?K.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:K.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 Q(K){var b=E(K);return b!==void 0?{diagnosticMessage:b,errorNode:B,typeName:B.name}:void 0}function le(K){var b;return B.kind===173?e.isStatic(B)?b=K.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:b=K.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(B)?b=K.errorModuleName?K.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:b=K.errorModuleName?K.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:b,errorNode:B.name,typeName:B.name}}function N(K){var b;switch(B.kind){case 175:b=K.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 174:b=K.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 176:b=K.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 169:case 168:e.isStatic(B)?b=K.errorModuleName?K.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:B.parent.kind===257?b=K.errorModuleName?K.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:b=K.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 256:b=K.errorModuleName?K.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: "+B.kind)}return{diagnosticMessage:b,errorNode:B.name||B}}function p(K){var b=m(K);return b!==void 0?{diagnosticMessage:b,errorNode:B,typeName:B.name}:void 0}function m(K){switch(B.parent.kind){case 171:return K.errorModuleName?K.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 175:case 180:return K.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 174:return K.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 176:return K.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 169:case 168:return e.isStatic(B.parent)?K.errorModuleName?K.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:B.parent.parent.kind===257?K.errorModuleName?K.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:K.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 256:case 179:return K.errorModuleName?K.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 173:case 172:return K.errorModuleName?K.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: ".concat(e.SyntaxKind[B.parent.kind]))}}function G(){var K;switch(B.parent.kind){case 257:K=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 258:K=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 195:K=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 180:case 175:K=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 174:K=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 169:case 168:e.isStatic(B.parent)?K=e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:B.parent.parent.kind===257?K=e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:K=e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 179:case 256:K=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 259:K=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: "+B.parent.kind)}return{diagnosticMessage:K,errorNode:B,typeName:B.name}}function oe(){var K;return e.isClassDeclaration(B.parent.parent)?K=e.isHeritageClause(B.parent)&&B.parent.token===117?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:B.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:K=e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1,{diagnosticMessage:K,errorNode:B,typeName:e.getNameOfDeclaration(B.parent.parent)}}function f(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:B,typeName:B.name}}function T(K){return{diagnosticMessage:K.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(B)?e.Debug.checkDefined(B.typeExpression):B.type,typeName:e.isJSDocTypeAlias(B)?e.getNameOfDeclaration(B):B.name}}}e.createGetSymbolAccessibilityDiagnosticForNode=w})(ke||(ke={}));var ke;(function(e){function a(f,T,K){var b=f.getCompilerOptions(),se=e.transformNodes(T,f,e.factory,b,K?[K]:e.filter(f.getSourceFiles(),e.isSourceFileNotJson),[E],!1);return se.diagnostics}e.getDeclarationDiagnostics=a;function C(f,T){var K=T.text.substring(f.pos,f.end);return e.stringContains(K,"@internal")}function w(f,T){var K=e.getParseTreeNode(f);if(K&&K.kind===164){var b=K.parent.parameters.indexOf(K),se=b>0?K.parent.parameters[b-1]:void 0,J=T.text,ie=se?e.concatenate(e.getTrailingCommentRanges(J,e.skipTrivia(J,se.end+1,!1,!0)),e.getLeadingCommentRanges(J,f.pos)):e.getTrailingCommentRanges(J,e.skipTrivia(J,f.pos,!1,!0));return ie&&ie.length&&C(e.last(ie),T)}var R=K&&e.getLeadingCommentRangesOfNode(K,T);return!!e.forEach(R,function(q){return C(q,T)})}e.isInternalDeclaration=w;var B=531469;function E(f){var T=function(){return e.Debug.fail("Diagnostic emitted without context")},K=T,b=!0,se=!1,J=!1,ie=!1,R=!1,q,O,ve,ee,he,F,x=f.factory,X=f.getEmitHost(),$={trackSymbol:fe,reportInaccessibleThisError:Fe,reportInaccessibleUniqueSymbolError:ue,reportCyclicStructureError:We,reportPrivateInBaseOfClassExpression:g,reportLikelyUnsafeImportRequiredError:Z,reportTruncationError:Be,moduleResolverHost:X,trackReferencedAmbientModule:l,trackExternalModuleSymbolOfImportTypeNode:D,reportNonlocalAugmentation:ge,reportNonSerializableProperty:Re},A,y,V,L,P,k,Y=f.getEmitResolver(),U=f.getCompilerOptions(),j=U.noResolve,H=U.stripInternal;return Ee;function I(_r){if(!!_r){O=O||new e.Set;for(var pi=0,ae=_r;pi0?f.parameters[0].type:void 0}function m(f){switch(f.kind){case 167:case 166:return!e.hasEffectiveModifier(f,8);case 164:case 254:return!0}return!1}function G(f){switch(f.kind){case 256:case 261:case 265:case 258:case 257:case 259:case 260:case 237:case 266:case 272:case 271:return!0}return!1}function oe(f){switch(f.kind){case 175:case 171:case 169:case 172:case 173:case 167:case 166:case 168:case 174:case 176:case 254:case 163:case 228:case 178:case 189:case 179:case 180:case 200:return!0}return!1}})(ke||(ke={}));var ke;(function(e){function a(T){switch(T){case e.ModuleKind.ESNext:case e.ModuleKind.ES2022:case e.ModuleKind.ES2020:case e.ModuleKind.ES2015:return e.transformECMAScriptModule;case e.ModuleKind.System:return e.transformSystemModule;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return e.transformNodeModule;default:return e.transformModule}}var C;(function(T){T[T.Uninitialized=0]="Uninitialized",T[T.Initialized=1]="Initialized",T[T.Completed=2]="Completed",T[T.Disposed=3]="Disposed"})(C||(C={}));var w;(function(T){T[T.Substitution=1]="Substitution",T[T.EmitNotifications=2]="EmitNotifications"})(w||(w={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray};function B(T,K,b){return{scriptTransformers:E(T,K,b),declarationTransformers:Q(K)}}e.getTransformers=B;function E(T,K,b){if(b)return e.emptyArray;var se=e.getEmitScriptTarget(T),J=e.getEmitModuleKind(T),ie=[];return e.addRange(ie,K&&e.map(K.before,p)),ie.push(e.transformTypeScript),ie.push(e.transformClassFields),e.getJSXTransformEnabled(T)&&ie.push(e.transformJsx),se<99&&ie.push(e.transformESNext),se<8&&ie.push(e.transformES2021),se<7&&ie.push(e.transformES2020),se<6&&ie.push(e.transformES2019),se<5&&ie.push(e.transformES2018),se<4&&ie.push(e.transformES2017),se<3&&ie.push(e.transformES2016),se<2&&(ie.push(e.transformES2015),ie.push(e.transformGenerators)),ie.push(a(J)),se<1&&ie.push(e.transformES5),e.addRange(ie,K&&e.map(K.after,p)),ie}function Q(T){var K=[];return K.push(e.transformDeclarations),e.addRange(K,T&&e.map(T.afterDeclarations,m)),K}function le(T){return function(K){return e.isBundle(K)?T.transformBundle(K):T.transformSourceFile(K)}}function N(T,K){return function(b){var se=T(b);return typeof se=="function"?K(b,se):le(se)}}function p(T){return N(T,e.chainBundle)}function m(T){return N(T,function(K,b){return b})}function G(T,K){return K}e.noEmitSubstitution=G;function oe(T,K,b){b(T,K)}e.noEmitNotification=oe;function f(T,K,b,se,J,ie,R){for(var q=new Array(355),O,ve,ee,he=0,F=[],x=[],X=[],$=[],A=0,y=!1,V=[],L=0,P,k,Y=G,U=oe,j=0,H=[],I={factory:b,getCompilerOptions:function(){return se},getEmitResolver:function(){return T},getEmitHost:function(){return K},getEmitHelperFactory:e.memoize(function(){return e.createEmitHelperFactory(I)}),startLexicalEnvironment:_e,suspendLexicalEnvironment:we,resumeLexicalEnvironment:de,endLexicalEnvironment:ye,setLexicalEnvironmentFlags:Ae,getLexicalEnvironmentFlags:er,hoistVariableDeclaration:He,hoistFunctionDeclaration:rr,addInitializationStatement:Ie,startBlockScope:ir,endBlockScope:Cr,addBlockScopedVariable:Ye,requestEmitHelper:Br,readEmitHelpers:Er,enableSubstitution:Z,enableEmitNotification:Re,isSubstitutionEnabled:Be,isEmitNotificationEnabled:ze,get onSubstituteNode(){return Y},set onSubstituteNode(n){e.Debug.assert(j<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(n!==void 0,"Value must not be 'undefined'"),Y=n},get onEmitNode(){return U},set onEmitNode(n){e.Debug.assert(j<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(n!==void 0,"Value must not be 'undefined'"),U=n},addDiagnostic:function(n){H.push(n)}},l=0,d=J;l0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed.");var lr=e.setEmitFlags(b.createVariableDeclaration(n),64);O?O.push(lr):O=[lr],he&1&&(he|=2)}function rr(n){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(n,1048576),ve?ve.push(n):ve=[n]}function Ie(n){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(n,1048576),ee?ee.push(n):ee=[n]}function _e(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!y,"Lexical environment is suspended."),F[A]=O,x[A]=ve,X[A]=ee,$[A]=he,A++,O=void 0,ve=void 0,ee=void 0,he=0}function we(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!y,"Lexical environment is already suspended."),y=!0}function de(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(y,"Lexical environment is not suspended."),y=!1}function ye(){e.Debug.assert(j>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(j<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!y,"Lexical environment is suspended.");var n;if(O||ve||ee){if(ve&&(n=Ve([],ve,!0)),O){var lr=b.createVariableStatement(void 0,b.createVariableDeclarationList(O));e.setEmitFlags(lr,1048576),n?n.push(lr):n=[lr]}ee&&(n?n=Ve(Ve([],n,!0),ee,!0):n=Ve([],ee,!0))}return A--,O=F[A],ve=x[A],ee=X[A],he=$[A],A===0&&(F=[],x=[],X=[],$=[]),n}function Ae(n,lr){he=lr?he|n:he&~n}function er(){return he}function ir(){e.Debug.assert(j>0,"Cannot start a block scope during initialization."),e.Debug.assert(j<2,"Cannot start a block scope after transformation has completed."),V[L]=P,L++,P=void 0}function Cr(){e.Debug.assert(j>0,"Cannot end a block scope during initialization."),e.Debug.assert(j<2,"Cannot end a block scope after transformation has completed.");var n=e.some(P)?[b.createVariableStatement(void 0,b.createVariableDeclarationList(P.map(function(lr){return b.createVariableDeclaration(lr)}),1))]:void 0;return L--,P=V[L],L===0&&(V=[]),n}function Ye(n){e.Debug.assert(L>0,"Cannot add a block scoped variable outside of an iteration body."),(P||(P=[])).push(n)}function Br(n){if(e.Debug.assert(j>0,"Cannot modify the transformation context during initialization."),e.Debug.assert(j<2,"Cannot modify the transformation context after transformation has completed."),e.Debug.assert(!n.scoped,"Cannot request a scoped emit helper."),n.dependencies)for(var lr=0,be=n.dependencies;lr0,"Cannot modify the transformation context during initialization."),e.Debug.assert(j<2,"Cannot modify the transformation context after transformation has completed.");var n=k;return k=void 0,n}function Ne(){if(j<3){for(var n=0,lr=J;n"),Ut(),gr(v.type),Iu(v)}function Ko(v){vn("function"),ef(v,v.parameters),Gt(":"),gr(v.type)}function Oo(v){Gt("?"),gr(v.type)}function no(v){Gt("!"),gr(v.type)}function $o(v){gr(v.type),Gt("=")}function Pr(v){wl(v),ks(v,v.modifiers),vn("new"),Ut(),Vu(v,v.typeParameters),ef(v,v.parameters),Ut(),Gt("=>"),Ut(),gr(v.type),Iu(v)}function xi(v){vn("typeof"),Ut(),gr(v.exprName),qu(v,v.typeArguments)}function St(v){Gt("{");var sr=e.getEmitFlags(v)&1?768:32897;Zn(v,v.members,sr|524288),Gt("}")}function pa(v){gr(v.elementType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt("["),Gt("]")}function dn(v){Gt("..."),gr(v.type)}function Jn(v){Ya(22,v.pos,Gt,v);var sr=e.getEmitFlags(v)&1?528:657;Zn(v,v.elements,sr|524288,Gi.parenthesizeElementTypeOfTupleType),Ya(23,v.elements.end,Gt,v)}function Qe(v){gr(v.dotDotDotToken),gr(v.name),gr(v.questionToken),Ya(58,v.name.end,Gt,v),Ut(),gr(v.type)}function Gr(v){gr(v.type,Gi.parenthesizeTypeOfOptionalType),Gt("?")}function S(v){Zn(v,v.types,516,Gi.parenthesizeConstituentTypeOfUnionType)}function Ce(v){Zn(v,v.types,520,Gi.parenthesizeConstituentTypeOfIntersectionType)}function qe(v){gr(v.checkType,Gi.parenthesizeCheckTypeOfConditionalType),Ut(),vn("extends"),Ut(),gr(v.extendsType,Gi.parenthesizeExtendsTypeOfConditionalType),Ut(),Gt("?"),Ut(),gr(v.trueType),Ut(),Gt(":"),Ut(),gr(v.falseType)}function br(v){vn("infer"),Ut(),gr(v.typeParameter)}function Zr(v){Gt("("),gr(v.type),Gt(")")}function Si(){vn("this")}function Pi(v){Il(v.operator,vn),Ut();var sr=v.operator===145?Gi.parenthesizeOperandOfReadonlyTypeOperator:Gi.parenthesizeOperandOfTypeOperator;gr(v.type,sr)}function Qi(v){gr(v.objectType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt("["),gr(v.indexType),Gt("]")}function Ct(v){var sr=e.getEmitFlags(v);Gt("{"),sr&1?Ut():(bs(),Dc()),v.readonlyToken&&(gr(v.readonlyToken),v.readonlyToken.kind!==145&&vn("readonly"),Ut()),Gt("["),Wi(3,v.typeParameter),v.nameType&&(Ut(),vn("as"),Ut(),gr(v.nameType)),Gt("]"),v.questionToken&&(gr(v.questionToken),v.questionToken.kind!==57&&Gt("?")),Gt(":"),Ut(),gr(v.type),As(),sr&1?Ut():(bs(),Cc()),Zn(v,v.members,2),Gt("}")}function sa(v){Tr(v.literal)}function en(v){gr(v.head),Zn(v,v.templateSpans,262144)}function Wa(v){if(v.isTypeOf&&(vn("typeof"),Ut()),vn("import"),Gt("("),gr(v.argument),v.assertions){Gt(","),Ut(),Gt("{"),Ut(),vn("assert"),Gt(":"),Ut();var sr=v.assertions.assertClause.elements;Zn(v.assertions.assertClause,sr,526226),Ut(),Gt("}")}Gt(")"),v.qualifier&&(Gt("."),gr(v.qualifier)),qu(v,v.typeArguments)}function qn(v){Gt("{"),Zn(v,v.elements,525136),Gt("}")}function mo(v){Gt("["),Zn(v,v.elements,524880),Gt("]")}function So(v){gr(v.dotDotDotToken),v.propertyName&&(gr(v.propertyName),Gt(":"),Ut()),gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function Go(v){var sr=v.elements,fi=v.multiLine?65536:0;os(v,sr,8914|fi,Gi.parenthesizeExpressionForDisallowedComma)}function ys(v){e.forEach(v.properties,Ys);var sr=e.getEmitFlags(v)&65536;sr&&Dc();var fi=v.multiLine?65536:0,zi=Re&&Re.languageVersion>=1&&!e.isJsonSourceFile(Re)?64:0;Zn(v,v.properties,526226|zi|fi),sr&&Cc()}function Pc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess);var sr=v.questionDotToken||e.setTextRangePosEnd(e.factory.createToken(24),v.expression.end,v.name.pos),fi=iu(v,v.expression,sr),zi=iu(v,sr,v.name);Nu(fi,!1);var Sa=sr.kind!==28&&Vc(v.expression)&&!Ae.hasTrailingComment()&&!Ae.hasTrailingWhitespace();Sa&&Gt("."),v.questionDotToken?gr(sr):Ya(sr.kind,v.expression.end,Gt,v),Nu(zi,!1),gr(v.name),Us(fi,zi)}function Vc(v){if(v=e.skipPartiallyEmittedExpressions(v),e.isNumericLiteral(v)){var sr=Pu(v,!0,!1);return!v.numericLiteralFlags&&!e.stringContains(sr,e.tokenToString(24))}else if(e.isAccessExpression(v)){var fi=e.getConstantValue(v);return typeof fi=="number"&&isFinite(fi)&&Math.floor(fi)===fi}}function Kc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),gr(v.questionDotToken),Ya(22,v.expression.end,Gt,v),Tr(v.argumentExpression),Ya(23,v.argumentExpression.end,Gt,v)}function Xs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt("("),d_("0"),Gt(","),Ut()),Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(")"),gr(v.questionDotToken),qu(v,v.typeArguments),os(v,v.arguments,2576,Gi.parenthesizeExpressionForDisallowedComma)}function pc(v){Ya(103,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionOfNew),qu(v,v.typeArguments),os(v,v.arguments,18960,Gi.parenthesizeExpressionForDisallowedComma)}function hs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt("("),d_("0"),Gt(","),Ut()),Tr(v.tag,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(")"),qu(v,v.typeArguments),Ut(),Tr(v.template)}function tc(v){Gt("<"),gr(v.type),Gt(">"),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ps(v){var sr=Ya(20,v.pos,Gt,v),fi=J_(v.expression,v);Tr(v.expression,void 0),j_(v.expression,v),Us(fi),Ya(21,v.expression?v.expression.end:sr,Gt,v)}function Qs(v){Ku(v.name),rn(v)}function js(v){wc(v,v.decorators),ks(v,v.modifiers),jn(v,ds)}function ds(v){Vu(v,v.typeParameters),p_(v,v.parameters),Wu(v.type),Ut(),gr(v.equalsGreaterThanToken)}function Ji(v){Ya(89,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ce(v){Ya(112,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function Rr(v){Ya(114,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function yi(v){Ya(132,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function qi(v){Il(v.operator,Nl),je(v)&&Ut(),Tr(v.operand,Gi.parenthesizeOperandOfPrefixUnary)}function je(v){var sr=v.operand;return sr.kind===219&&(v.operator===39&&(sr.operator===39||sr.operator===45)||v.operator===40&&(sr.operator===40||sr.operator===46))}function Hr(v){Tr(v.operand,Gi.parenthesizeOperandOfPostfixUnary),Il(v.operator,Nl)}function pt(){return e.createBinaryExpressionTrampoline(v,sr,fi,zi,Sa,void 0);function v(Ha,ta){if(ta){ta.stackIndex++,ta.preserveSourceNewlinesStack[ta.stackIndex]=de,ta.containerPosStack[ta.stackIndex]=wr,ta.containerEndStack[ta.stackIndex]=Ur,ta.declarationListContainerEndStack[ta.stackIndex]=ii;var nn=ta.shouldEmitCommentsStack[ta.stackIndex]=ct(Ha),Wo=ta.shouldEmitSourceMapsStack[ta.stackIndex]=Li(Ha);D==null||D(Ha),nn&&z_(Ha),Wo&&v_(Ha),Ui(Ha)}else ta={stackIndex:0,preserveSourceNewlinesStack:[void 0],containerPosStack:[-1],containerEndStack:[-1],declarationListContainerEndStack:[-1],shouldEmitCommentsStack:[!1],shouldEmitSourceMapsStack:[!1]};return ta}function sr(Ha,ta,nn){return da(Ha,nn,"left")}function fi(Ha,ta,nn){var Wo=Ha.kind!==27,Lo=iu(nn,nn.left,Ha),oc=iu(nn,Ha,nn.right);Nu(Lo,Wo),Vf(Ha.pos),Pl(Ha,Ha.kind===101?vn:Nl),af(Ha.end,!0),Nu(oc,!0)}function zi(Ha,ta,nn){return da(Ha,nn,"right")}function Sa(Ha,ta){var nn=iu(Ha,Ha.left,Ha.operatorToken),Wo=iu(Ha,Ha.operatorToken,Ha.right);if(Us(nn,Wo),ta.stackIndex>0){var Lo=ta.preserveSourceNewlinesStack[ta.stackIndex],oc=ta.containerPosStack[ta.stackIndex],uu=ta.containerEndStack[ta.stackIndex],is=ta.declarationListContainerEndStack[ta.stackIndex],au=ta.shouldEmitCommentsStack[ta.stackIndex],Ou=ta.shouldEmitSourceMapsStack[ta.stackIndex];Yi(Lo),Ou&&Bp(Ha),au&&Oc(Ha,oc,uu,is),fe==null||fe(Ha),ta.stackIndex--}}function da(Ha,ta,nn){var Wo=nn==="left"?Gi.getParenthesizeLeftSideOfBinaryForOperator(ta.operatorToken.kind):Gi.getParenthesizeRightSideOfBinaryForOperator(ta.operatorToken.kind),Lo=nt(0,1,Ha);if(Lo===Ii&&(e.Debug.assertIsDefined(si),Ha=Wo(e.cast(si,e.isExpression)),Lo=Mt(1,1,Ha),si=void 0),(Lo===xf||Lo===hd||Lo===ut)&&e.isBinaryExpression(Ha))return Ha;Di=Wo,Lo(1,Ha)}}function Pt(v){var sr=iu(v,v.condition,v.questionToken),fi=iu(v,v.questionToken,v.whenTrue),zi=iu(v,v.whenTrue,v.colonToken),Sa=iu(v,v.colonToken,v.whenFalse);Tr(v.condition,Gi.parenthesizeConditionOfConditionalExpression),Nu(sr,!0),gr(v.questionToken),Nu(fi,!0),Tr(v.whenTrue,Gi.parenthesizeBranchOfConditionalExpression),Us(sr,fi),Nu(zi,!0),gr(v.colonToken),Nu(Sa,!0),Tr(v.whenFalse,Gi.parenthesizeBranchOfConditionalExpression),Us(zi,Sa)}function ga(v){gr(v.head),Zn(v,v.templateSpans,262144)}function ua(v){Ya(125,v.pos,vn,v),gr(v.asteriskToken),__(v.expression&&Kr(v.expression),_i)}function Xn(v){Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma)}function jr(v){Ku(v.name),ki(v)}function fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),qu(v,v.typeArguments)}function xs(v){Tr(v.expression,void 0),v.type&&(Ut(),vn("as"),Ut(),gr(v.type))}function Fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),Nl("!")}function ko(v){ac(v.keywordToken,v.pos,Gt),Gt("."),gr(v.name)}function Ao(v){Tr(v.expression),gr(v.literal)}function Ms(v){Bs(v,!v.multiLine&&vd(v))}function Bs(v,sr){Ya(18,v.pos,Gt,v);var fi=sr||e.getEmitFlags(v)&1?768:129;Zn(v,v.statements,fi),Ya(19,v.statements.end,Gt,v,!!(fi&1))}function xc(v){ks(v,v.modifiers),gr(v.declarationList),As()}function su(v){v?Gt(";"):As()}function tl(v){Tr(v.expression,Gi.parenthesizeExpressionOfExpressionStatement),(!Re||!e.isJsonSourceFile(Re)||e.nodeIsSynthesized(v.expression))&&As()}function Zc(v){var sr=Ya(99,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.thenStatement),v.elseStatement&&(zf(v,v.thenStatement,v.elseStatement),Ya(91,v.thenStatement.end,vn,v),v.elseStatement.kind===239?(Ut(),gr(v.elseStatement)):Al(v,v.elseStatement))}function Rf(v,sr){var fi=Ya(115,sr,vn,v);Ut(),Ya(20,fi,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v)}function al(v){Ya(90,v.pos,vn,v),Al(v,v.statement),e.isBlock(v.statement)&&!de?Ut():zf(v,v.statement,v.expression),Rf(v,v.statement.end),As()}function Jo(v){Rf(v,v.pos),Al(v,v.statement)}function eu(v){var sr=Ya(97,v.pos,vn,v);Ut();var fi=Ya(20,sr,Gt,v);Uu(v.initializer),fi=Ya(26,v.initializer?v.initializer.end:fi,Gt,v),__(v.condition),fi=Ya(26,v.condition?v.condition.end:fi,Gt,v),__(v.incrementor),Ya(21,v.incrementor?v.incrementor.end:fi,Gt,v),Al(v,v.statement)}function Ws(v){var sr=Ya(97,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(101,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function pu(v){var sr=Ya(97,v.pos,vn,v);Ut(),zd(v.awaitModifier),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(160,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function Uu(v){v!==void 0&&(v.kind===255?gr(v):Tr(v))}function Ql(v){Ya(86,v.pos,vn,v),kl(v.label),As()}function xl(v){Ya(81,v.pos,vn,v),kl(v.label),As()}function Ya(v,sr,fi,zi,Sa){var da=e.getParseTreeNode(zi),Ha=da&&da.kind===zi.kind,ta=sr;if(Ha&&Re&&(sr=e.skipTrivia(Re.text,sr)),Ha&&zi.pos!==ta){var nn=Sa&&Re&&!e.positionsAreOnSameLine(ta,sr,Re);nn&&Dc(),Vf(ta),nn&&Cc()}if(sr=Il(v,fi,sr),Ha&&zi.end!==sr){var Wo=zi.kind===288;af(sr,!Wo,Wo)}return sr}function du(v){return v.kind===2||!!v.hasTrailingNewLine}function vc(v){return Re?e.some(e.getLeadingCommentRanges(Re.text,v.pos),du)||e.some(e.getSyntheticLeadingComments(v),du)?!0:e.isPartiallyEmittedExpression(v)?v.pos!==v.expression.pos&&e.some(e.getTrailingCommentRanges(Re.text,v.expression.pos),du)?!0:vc(v.expression):!1:!1}function Kr(v){if(!qr&&e.isPartiallyEmittedExpression(v)&&vc(v)){var sr=e.getParseTreeNode(v);if(sr&&e.isParenthesizedExpression(sr)){var fi=e.factory.createParenthesizedExpression(v.expression);return e.setOriginalNode(fi,v),e.setTextRange(fi,sr),fi}return e.factory.createParenthesizedExpression(v)}return v}function _i(v){return Kr(Gi.parenthesizeExpressionForDisallowedComma(v))}function Ei(v){Ya(105,v.pos,vn,v),__(v.expression&&Kr(v.expression),Kr),As()}function tt(v){var sr=Ya(116,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function kt(v){var sr=Ya(107,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Ut(),gr(v.caseBlock)}function bt(v){gr(v.label),Ya(58,v.label.end,Gt,v),Ut(),gr(v.statement)}function ia(v){Ya(109,v.pos,vn,v),__(Kr(v.expression),Kr),As()}function Xt(v){Ya(111,v.pos,vn,v),Ut(),gr(v.tryBlock),v.catchClause&&(zf(v,v.tryBlock,v.catchClause),gr(v.catchClause)),v.finallyBlock&&(zf(v,v.catchClause||v.tryBlock,v.finallyBlock),Ya(96,(v.catchClause||v.tryBlock).end,vn,v),Ut(),gr(v.finallyBlock))}function Za(v){ac(87,v.pos,vn),As()}function bn(v){var sr,fi,zi,Sa,da;gr(v.name),gr(v.exclamationToken),Wu(v.type),Zl(v.initializer,(da=(fi=(sr=v.type)===null||sr===void 0?void 0:sr.end)!==null&&fi!==void 0?fi:(Sa=(zi=v.name.emitNode)===null||zi===void 0?void 0:zi.typeNode)===null||Sa===void 0?void 0:Sa.end)!==null&&da!==void 0?da:v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function _a(v){vn(e.isLet(v)?"let":e.isVarConst(v)?"const":"var"),Ut(),Zn(v,v.declarations,528)}function qa(v){rn(v)}function rn(v){wc(v,v.decorators),ks(v,v.modifiers),vn("function"),gr(v.asteriskToken),Ut(),Vr(v.name),jn(v,Mo)}function jn(v,sr){var fi=v.body;if(fi)if(e.isBlock(fi)){var zi=e.getEmitFlags(v)&65536;zi&&Dc(),wl(v),e.forEach(v.parameters,Et),Et(v.body),sr(v),gs(fi),Iu(v),zi&&Cc()}else sr(v),Ut(),Tr(fi,Gi.parenthesizeConciseBodyOfArrowFunction);else sr(v),As()}function Mo(v){Vu(v,v.typeParameters),ef(v,v.parameters),Wu(v.type)}function ho(v){if(e.getEmitFlags(v)&1)return!0;if(v.multiLine||!e.nodeIsSynthesized(v)&&Re&&!e.rangeIsOnSingleLine(v,Re)||Ap(v,v.statements,2)||Sf(v,v.statements,2))return!1;for(var sr,fi=0,zi=v.statements;fi0)return!1;sr=Sa}return!0}function gs(v){D==null||D(v),Ut(),Gt("{"),Dc();var sr=ho(v)?Se:hr;Mp(v,v.statements,sr),Cc(),ac(19,v.statements.end,Gt,v),fe==null||fe(v)}function Se(v){hr(v,!0)}function hr(v,sr){var fi=$l(v.statements),zi=Ae.getTextPos();Fi(v),fi===0&&zi===Ae.getTextPos()&&sr?(Cc(),Zn(v,v.statements,768),Dc()):Zn(v,v.statements,1,void 0,fi)}function Or(v){ki(v)}function ki(v){e.forEach(v.members,Ys),wc(v,v.decorators),ks(v,v.modifiers),vn("class"),v.name&&(Ut(),Vr(v.name));var sr=e.getEmitFlags(v)&65536;sr&&Dc(),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,0),Ut(),Gt("{"),Zn(v,v.members,129),Gt("}"),sr&&Cc()}function dt(v){wc(v,v.decorators),ks(v,v.modifiers),vn("interface"),Ut(),gr(v.name),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,512),Ut(),Gt("{"),Zn(v,v.members,129),Gt("}")}function la(v){wc(v,v.decorators),ks(v,v.modifiers),vn("type"),Ut(),gr(v.name),Vu(v,v.typeParameters),Ut(),Gt("="),Ut(),gr(v.type),As()}function wa(v){ks(v,v.modifiers),vn("enum"),Ut(),gr(v.name),Ut(),Gt("{"),Zn(v,v.members,145),Gt("}")}function On(v){ks(v,v.modifiers),~v.flags&1024&&(vn(v.flags&16?"namespace":"module"),Ut()),gr(v.name);var sr=v.body;if(!sr)return As();for(;sr&&e.isModuleDeclaration(sr);)Gt("."),gr(sr.name),sr=sr.body;Ut(),gr(sr)}function No(v){wl(v),e.forEach(v.statements,Et),Bs(v,vd(v)),Iu(v)}function jo(v){Ya(18,v.pos,Gt,v),Zn(v,v.clauses,129),Ya(19,v.clauses.end,Gt,v,!0)}function po(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),Ut(),Ya(63,v.name.end,Gt,v),Ut(),Gn(v.moduleReference),As()}function Gn(v){v.kind===79?Tr(v):gr(v)}function $n(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.importClause&&(gr(v.importClause),Ut(),Ya(156,v.importClause.end,vn,v),Ut()),Tr(v.moduleSpecifier),v.assertClause&&kl(v.assertClause),As()}function Ho(v){v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),v.name&&v.namedBindings&&(Ya(27,v.name.end,Gt,v),Ut()),gr(v.namedBindings)}function Zo(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function Es(v){oo(v)}function yc(v){I_(v)}function Xr(v){var sr=Ya(93,v.pos,vn,v);Ut(),v.isExportEquals?Ya(63,sr,Nl,v):Ya(88,sr,vn,v),Ut(),Tr(v.expression,v.isExportEquals?Gi.getParenthesizeRightSideOfBinaryForOperator(63):Gi.parenthesizeExpressionOfExportDefault),As()}function Ls(v){var sr=Ya(93,v.pos,vn,v);if(Ut(),v.isTypeOnly&&(sr=Ya(152,sr,vn,v),Ut()),v.exportClause?gr(v.exportClause):sr=Ya(41,sr,Gt,v),v.moduleSpecifier){Ut();var fi=v.exportClause?v.exportClause.end:sr;Ya(156,fi,vn,v),Ut(),Tr(v.moduleSpecifier)}v.assertClause&&kl(v.assertClause),As()}function Ic(v){Ya(129,v.pos,vn,v),Ut();var sr=v.elements;Zn(v,sr,526226)}function zu(v){gr(v.name),Gt(":"),Ut();var sr=v.value;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}gr(sr)}function vf(v){var sr=Ya(93,v.pos,vn,v);Ut(),sr=Ya(127,sr,vn,v),Ut(),sr=Ya(142,sr,vn,v),Ut(),gr(v.name),As()}function P_(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function El(v){oo(v)}function vp(v){I_(v)}function oo(v){Gt("{"),Zn(v,v.elements,525136),Gt("}")}function I_(v){v.isTypeOnly&&(vn("type"),Ut()),v.propertyName&&(gr(v.propertyName),Ut(),Ya(127,v.propertyName.end,vn,v),Ut()),gr(v.name)}function yp(v){vn("require"),Gt("("),Tr(v.expression),Gt(")")}function Yl(v){gr(v.openingElement),Zn(v,v.children,262144),gr(v.closingElement)}function Bf(v){Gt("<"),ns(v.tagName),qu(v,v.typeArguments),Ut(),gr(v.attributes),Gt("/>")}function Cl(v){gr(v.openingFragment),Zn(v,v.children,262144),gr(v.closingFragment)}function c_(v){if(Gt("<"),e.isJsxOpeningElement(v)){var sr=J_(v.tagName,v);ns(v.tagName),qu(v,v.typeArguments),v.attributes.properties&&v.attributes.properties.length>0&&Ut(),gr(v.attributes),j_(v.attributes,v),Us(sr)}Gt(">")}function hp(v){Ae.writeLiteral(v.text)}function gu(v){Gt("")}function Dp(v){Zn(v,v.properties,262656)}function sd(v){gr(v.name),R_("=",Gt,v.initializer,vi)}function Aa(v){Gt("{..."),Tr(v.expression),Gt("}")}function va(v){var sr=!1;return e.forEachTrailingCommentRange((Re==null?void 0:Re.text)||"",v+1,function(){return sr=!0}),sr}function Cu(v){var sr=!1;return e.forEachLeadingCommentRange((Re==null?void 0:Re.text)||"",v+1,function(){return sr=!0}),sr}function qs(v){return va(v)||Cu(v)}function cd(v){var sr;if(v.expression||!qr&&!e.nodeIsSynthesized(v)&&qs(v.pos)){var fi=Re&&!e.nodeIsSynthesized(v)&&e.getLineAndCharacterOfPosition(Re,v.pos).line!==e.getLineAndCharacterOfPosition(Re,v.end).line;fi&&Ae.increaseIndent();var zi=Ya(18,v.pos,Gt,v);gr(v.dotDotDotToken),Tr(v.expression),Ya(19,((sr=v.expression)===null||sr===void 0?void 0:sr.end)||zi,Gt,v),fi&&Ae.decreaseIndent()}}function ns(v){v.kind===79?Tr(v):gr(v)}function nl(v){Ya(82,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma),es(v,v.statements,v.expression.end)}function hc(v){var sr=Ya(88,v.pos,vn,v);es(v,v.statements,sr)}function es(v,sr,fi){var zi=sr.length===1&&(!Re||e.nodeIsSynthesized(v)||e.nodeIsSynthesized(sr[0])||e.rangeStartPositionsAreOnSameLine(v,sr[0],Re)),Sa=163969;zi?(ac(58,fi,Gt,v),Ut(),Sa&=-130):Ya(58,fi,Gt,v),Zn(v,sr,Sa)}function u_(v){Ut(),Il(v.token,vn),Ut(),Zn(v,v.types,528)}function Jf(v){var sr=Ya(83,v.pos,vn,v);Ut(),v.variableDeclaration&&(Ya(20,sr,Gt,v),gr(v.variableDeclaration),Ya(21,v.variableDeclaration.end,Gt,v),Ut()),gr(v.block)}function w_(v){gr(v.name),Gt(":"),Ut();var sr=v.initializer;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}Tr(sr,Gi.parenthesizeExpressionForDisallowedComma)}function ud(v){gr(v.name),v.objectAssignmentInitializer&&(Ut(),Gt("="),Ut(),Tr(v.objectAssignmentInitializer,Gi.parenthesizeExpressionForDisallowedComma))}function ku(v){v.expression&&(Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma))}function ld(v){gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function fd(v){if(ir("/**"),v.comment){var sr=e.getTextOfJSDocComment(v.comment);if(sr)for(var fi=sr.split(/\r\n?|\n/g),zi=0,Sa=fi;zi'),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:"no-default-lib"}),bs()}if(Re&&Re.moduleName&&(rf('/// ')),bs()),Re&&Re.amdDependencies)for(var da=0,Ha=Re.amdDependencies;da')):rf('/// ')),bs()}for(var nn=0,Wo=sr;nn')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:"reference",data:Lo.fileName}),bs()}for(var oc=0,uu=fi;oc")),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:Lo.resolutionMode?Lo.resolutionMode===e.ModuleKind.ESNext?"type-import":"type-require":"type",data:Lo.fileName}),bs()}for(var au=0,Ou=zi;au')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:"lib",data:Lo.fileName}),bs()}}function mu(v){var sr=v.statements;wl(v),e.forEach(v.statements,Et),Fi(v);var fi=e.findIndex(sr,function(zi){return!e.isPrologueDirective(zi)});dd(v),Zn(v,sr,1,void 0,fi===-1?sr.length:fi),Iu(v)}function gd(v){var sr=e.getEmitFlags(v);!(sr&512)&&v.pos!==v.expression.pos&&af(v.expression.pos),Tr(v.expression),!(sr&1024)&&v.end!==v.expression.end&&Vf(v.expression.end)}function hf(v){os(v,v.elements,528,void 0)}function $l(v,sr,fi,zi){for(var Sa=!!sr,da=0;da=fi.length||Ha===0;if(nn&&zi&32768){g&&g(fi),ne&&ne(fi);return}if(zi&15360&&(Gt(X(zi)),nn&&fi&&af(fi.pos,!0)),g&&g(fi),nn)zi&1&&!(de&&(!sr||Re&&e.rangeIsOnSingleLine(sr,Re)))?bs():zi&256&&!(zi&524288)&&Ut();else{e.Debug.type(fi);var Wo=(zi&262144)===0,Lo=Wo,oc=Ap(sr,fi,zi);oc?(bs(oc),Lo=!1):zi&256&&Ut(),zi&128&&Dc();for(var uu=P(v,Sa),is=void 0,au=void 0,Ou=!1,sf=0;sf0?((zi&131)===0&&(Dc(),Ou=!0),bs(cf),Lo=!1):is&&zi&512&&Ut()}if(au=Wr(lu),Lo){var uf=e.getCommentRange(lu);af(uf.pos)}else Lo=Wo;ye=lu.pos,uu(lu,v,Sa,sf),Ou&&(Cc(),Ou=!1),is=lu}var K_=is?e.getEmitFlags(is):0,Jp=qr||!!(K_&1024),Hf=(fi==null?void 0:fi.hasTrailingComma)&&zi&64&&zi&16;Hf&&(is&&!Jp?Ya(27,is.end,Gt,is):Gt(",")),is&&(sr?sr.end:-1)!==is.end&&zi&60&&!Jp&&Vf(Hf&&(fi==null?void 0:fi.end)?fi.end:is.end),zi&128&&Cc(),Je(au);var kc=Sf(sr,fi,zi);kc?bs(kc):zi&2097408&&Ut()}ne&&ne(fi),zi&15360&&(nn&&fi&&Vf(fi.end),Gt($(zi)))}}function d_(v){Ae.writeLiteral(v)}function Gc(v){Ae.writeStringLiteral(v)}function B_(v){Ae.write(v)}function vu(v,sr){Ae.writeSymbol(v,sr)}function Gt(v){Ae.writePunctuation(v)}function As(){Ae.writeTrailingSemicolon(";")}function vn(v){Ae.writeKeyword(v)}function Nl(v){Ae.writeOperator(v)}function cl(v){Ae.writeParameter(v)}function rf(v){Ae.writeComment(v)}function Ut(){Ae.writeSpace(" ")}function Ds(v){Ae.writeProperty(v)}function bf(v){Ae.nonEscapingWrite?Ae.nonEscapingWrite(v):Ae.write(v)}function bs(v){v===void 0&&(v=1);for(var sr=0;sr0)}function Dc(){Ae.increaseIndent()}function Cc(){Ae.decreaseIndent()}function ac(v,sr,fi,zi){return lr?Il(v,fi,sr):of(zi,v,fi,sr,Il)}function Pl(v,sr){ue&&ue(v),sr(e.tokenToString(v.kind)),We&&We(v)}function Il(v,sr,fi){var zi=e.tokenToString(v);return sr(zi),fi<0?fi:fi+zi.length}function zf(v,sr,fi){if(e.getEmitFlags(v)&1)Ut();else if(de){var zi=iu(v,sr,fi);zi?bs(zi):Ut()}else bs()}function ul(v){for(var sr=v.split(/\r\n?|\n/g),fi=e.guessIndentation(sr),zi=0,Sa=sr;zi0||zi>0)&&fi!==zi&&(Sa||Cf(fi,v.kind!==349),(!Sa||fi>=0&&(sr&512)!==0)&&(wr=fi),(!da||zi>=0&&(sr&1024)!==0)&&(Ur=zi,v.kind===255&&(ii=zi))),e.forEach(e.getSyntheticLeadingComments(v),Ef),et()}function Op(v,sr,fi,zi,Sa,da,Ha){Xi();var ta=zi<0||(sr&1024)!==0||v.kind===11;e.forEach(e.getSyntheticTrailingComments(v),Fl),(fi>0||zi>0)&&fi!==zi&&(wr=Sa,Ur=da,ii=Ha,!ta&&v.kind!==349&&Fc(zi)),et()}function Ef(v){(v.hasLeadingNewline||v.kind===2)&&Ae.writeLine(),pl(v),v.hasTrailingNewLine||v.kind===2?Ae.writeLine():Ae.writeSpace(" ")}function Fl(v){Ae.isAtStartOfLine()||Ae.writeSpace(" "),pl(v),v.hasTrailingNewLine&&Ae.writeLine()}function pl(v){var sr=Fp(v),fi=v.kind===3?e.computeLineStarts(sr):void 0;e.writeCommentRange(sr,fi,Ae,0,sr.length,Z)}function Fp(v){return v.kind===3?"/*".concat(v.text,"*/"):"//".concat(v.text)}function Mp(v,sr,fi){Xi();var zi=sr.pos,Sa=sr.end,da=e.getEmitFlags(v),Ha=zi<0||(da&512)!==0,ta=qr||Sa<0||(da&1024)!==0;Ha||Rp(sr),et(),da&2048&&!qr?(qr=!0,fi(v),qr=!1):fi(v),Xi(),ta||(Cf(sr.end,!0),or&&!Ae.isAtStartOfLine()&&Ae.writeLine()),et()}function Gu(v,sr){return v=e.getOriginalNode(v),v.parent&&v.parent===e.getOriginalNode(sr).parent}function Lp(v,sr){if(sr.pos-1&&zi.indexOf(sr)===Sa+1}function Cf(v,sr){or=!1,sr?v===0&&(Re==null?void 0:Re.isDeclarationFile)?Ot(v,g_):Ot(v,gl):v===0&&Ot(v,W_)}function W_(v,sr,fi,zi,Sa){m_(v,sr)&&gl(v,sr,fi,zi,Sa)}function g_(v,sr,fi,zi,Sa){m_(v,sr)||gl(v,sr,fi,zi,Sa)}function dl(v,sr){return k.onlyPrintJsDocStyle?e.isJSDocLikeText(v,sr)||e.isPinnedComment(v,sr):!0}function gl(v,sr,fi,zi,Sa){!Re||!dl(Re.text,v)||(or||(e.emitNewLineBeforeLeadingCommentOfPosition(De(),Ae,Sa,v),or=!0),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():fi===3&&Ae.writeSpace(" "))}function Vf(v){qr||v===-1||Cf(v,!0)}function Fc(v){nf(v,Hu)}function Hu(v,sr,fi,zi){!Re||!dl(Re.text,v)||(Ae.isAtStartOfLine()||Ae.writeSpace(" "),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi&&Ae.writeLine())}function af(v,sr,fi){qr||(Xi(),nf(v,sr?Hu:fi?tn:Ml),et())}function tn(v,sr,fi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),fi===2&&Ae.writeLine())}function Ml(v,sr,fi,zi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():Ae.writeSpace(" "))}function Ot(v,sr){Re&&(wr===-1||v!==wr)&&(q_(v)?Kf(sr):e.forEachLeadingCommentRange(Re.text,v,sr,v))}function nf(v,sr){Re&&(Ur===-1||v!==Ur&&v!==ii)&&e.forEachTrailingCommentRange(Re.text,v,sr)}function q_(v){return pe!==void 0&&e.last(pe).nodePos===v}function Kf(v){if(!!Re){var sr=e.last(pe).detachedCommentEndPos;pe.length-1?pe.pop():pe=void 0,e.forEachLeadingCommentRange(Re.text,sr,v,sr)}}function Rp(v){var sr=Re&&e.emitDetachedComments(Re.text,De(),Ae,yd,v,Z,qr);sr&&(pe?pe.push(sr):pe=[sr])}function yd(v,sr,fi,zi,Sa,da){!Re||!dl(Re.text,zi)||(Xc(zi),e.writeCommentRange(v,sr,fi,zi,Sa,da),Xc(Sa))}function m_(v,sr){return!!Re&&e.isRecognizedTripleSlashComment(Re.text,v,sr)}function Ll(v){return v.parsedSourceMap===void 0&&v.sourceMapText!==void 0&&(v.parsedSourceMap=e.tryParseRawSourceMap(v.sourceMapText)||!1),v.parsedSourceMap||void 0}function hd(v,sr){var fi=Mt(3,v,sr);v_(sr),fi(v,sr),Bp(sr)}function v_(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);if(e.isUnparsedNode(v)){e.Debug.assertIsDefined(v.parent,"UnparsedNodes must have parent pointers");var zi=Ll(v.parent);zi&&be&&be.appendSourceMap(Ae.getLine(),Ae.getColumn(),zi,v.parent.sourceMapPath,v.parent.getLineAndCharacterOfPosition(v.pos),v.parent.getLineAndCharacterOfPosition(v.end))}else{var Sa=fi.source||Ge;v.kind!==349&&(sr&16)===0&&fi.pos>=0&&Gf(fi.source||Ge,Xu(Sa,fi.pos)),sr&64&&(lr=!0)}}function Bp(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);e.isUnparsedNode(v)||(sr&64&&(lr=!1),v.kind!==349&&(sr&32)===0&&fi.end>=0&&Gf(fi.source||Ge,fi.end))}function Xu(v,sr){return v.skipTrivia?v.skipTrivia(sr):e.skipTrivia(v.text,sr)}function Xc(v){if(!(lr||e.positionIsSynthesized(v)||yu(Ge))){var sr=e.getLineAndCharacterOfPosition(Ge,v),fi=sr.line,zi=sr.character;be.addMapping(Ae.getLine(),Ae.getColumn(),ur,fi,zi,void 0)}}function Gf(v,sr){if(v!==Ge){var fi=Ge,zi=ur;wu(v),Xc(sr),V_(fi,zi)}else Xc(sr)}function of(v,sr,fi,zi,Sa){if(lr||v&&e.isInJsonFile(v))return Sa(sr,fi,zi);var da=v&&v.emitNode,Ha=da&&da.flags||0,ta=da&&da.tokenSourceMapRanges&&da.tokenSourceMapRanges[sr],nn=ta&&ta.source||Ge;return zi=Xu(nn,ta?ta.pos:zi),(Ha&128)===0&&zi>=0&&Gf(nn,zi),zi=Sa(sr,fi,zi),ta&&(zi=ta.end),(Ha&256)===0&&zi>=0&&Gf(nn,zi),zi}function wu(v){if(!lr){if(Ge=v,v===yr){ur=Ir;return}yu(v)||(ur=be.addSource(v.fileName),k.inlineSources&&be.setSourceContent(ur,v.text),yr=v,Ir=ur)}}function V_(v,sr){Ge=v,ur=sr}function yu(v){return e.fileExtensionIs(v.fileName,".json")}}e.createPrinter=F;function x(){var k=[];return k[1024]=["{","}"],k[2048]=["(",")"],k[4096]=["<",">"],k[8192]=["[","]"],k}function X(k){return a[k&15360][0]}function $(k){return a[k&15360][1]}var A;(function(k){k[k.Auto=0]="Auto",k[k.CountMask=268435455]="CountMask",k[k._i=268435456]="_i"})(A||(A={}));function y(k,Y,U,j){Y(k)}function V(k,Y,U,j){Y(k,U.select(j))}function L(k,Y,U,j){Y(k,U)}function P(k,Y){return k.length===1?y:typeof Y=="object"?V:L}})(ke||(ke={}));var ke;(function(e){function a(b,se,J){if(!b.getDirectories||!b.readDirectory)return;var ie=new e.Map,R=e.createGetCanonicalFileName(J);return{useCaseSensitiveFileNames:J,fileExists:y,readFile:function(l,d){return b.readFile(l,d)},directoryExists:b.directoryExists&&V,getDirectories:P,readDirectory:k,createDirectory:b.createDirectory&&L,writeFile:b.writeFile&&A,addOrDeleteFileOrDirectory:U,addOrDeleteFile:j,clearCache:I,realpath:b.realpath&&Y};function q(l){return e.toPath(l,se,R)}function O(l){return ie.get(e.ensureTrailingDirectorySeparator(l))}function ve(l){return O(e.getDirectoryPath(l))}function ee(l){return e.getBaseFileName(e.normalizePath(l))}function he(l,d){var D;if(!b.realpath||e.ensureTrailingDirectorySeparator(q(b.realpath(l)))===d){var fe={files:e.map(b.readDirectory(l,void 0,void 0,["*.*"]),ee)||[],directories:b.getDirectories(l)||[]};return ie.set(e.ensureTrailingDirectorySeparator(d),fe),fe}if(!((D=b.directoryExists)===null||D===void 0)&&D.call(b,l))return ie.set(d,!1),!1}function F(l,d){d=e.ensureTrailingDirectorySeparator(d);var D=O(d);if(D)return D;try{return he(l,d)}catch{e.Debug.assert(!ie.has(e.ensureTrailingDirectorySeparator(d)));return}}function x(l,d){return R(l)===R(d)}function X(l,d){return e.some(l,function(D){return x(D,d)})}function $(l,d,D){if(X(l,d)){if(!D)return e.filterMutate(l,function(fe){return!x(fe,d)})}else if(D)return l.push(d)}function A(l,d,D){var fe=q(l),g=ve(fe);return g&&H(g,ee(l),!0),b.writeFile(l,d,D)}function y(l){var d=q(l),D=ve(d);return D&&X(D.files,ee(l))||b.fileExists(l)}function V(l){var d=q(l);return ie.has(e.ensureTrailingDirectorySeparator(d))||b.directoryExists(l)}function L(l){var d=q(l),D=ve(d),fe=ee(l);D&&$(D.directories,fe,!0),b.createDirectory(l)}function P(l){var d=q(l),D=F(l,d);return D?D.directories.slice():b.getDirectories(l)}function k(l,d,D,fe,g){var ne=q(l),ue=F(l,ne),We;if(ue!==void 0)return e.matchFiles(l,d,D,fe,J,se,g,Fe,Y);return b.readDirectory(l,d,D,fe,g);function Fe(Be){var ge=q(Be);if(ge===ne)return ue||Z(Be,ge);var Re=F(Be,ge);return Re!==void 0?Re||Z(Be,ge):e.emptyFileSystemEntries}function Z(Be,ge){if(We&&ge===ne)return We;var Re={files:e.map(b.readDirectory(Be,void 0,void 0,["*.*"]),ee)||e.emptyArray,directories:b.getDirectories(Be)||e.emptyArray};return ge===ne&&(We=Re),Re}}function Y(l){return b.realpath?b.realpath(l):l}function U(l,d){var D=O(d);if(D!==void 0){I();return}var fe=ve(d);if(!!fe){if(!b.directoryExists){I();return}var g=ee(l),ne={fileExists:b.fileExists(d),directoryExists:b.directoryExists(d)};return ne.directoryExists||X(fe.directories,g)?I():H(fe,g,ne.fileExists),ne}}function j(l,d,D){if(D!==e.FileWatcherEventKind.Changed){var fe=ve(d);fe&&H(fe,ee(l),D===e.FileWatcherEventKind.Created)}}function H(l,d,D){$(l.files,d,D)}function I(){ie.clear()}}e.createCachedDirectoryStructureHost=a;var C;(function(b){b[b.None=0]="None",b[b.Partial=1]="Partial",b[b.Full=2]="Full"})(C=e.ConfigFileProgramReloadLevel||(e.ConfigFileProgramReloadLevel={}));function w(b,se,J,ie,R){var q,O=e.arrayToMap(((q=se==null?void 0:se.configFile)===null||q===void 0?void 0:q.extendedSourceFiles)||e.emptyArray,R);J.forEach(function(ve,ee){O.has(ee)||(ve.projects.delete(b),ve.close())}),O.forEach(function(ve,ee){var he=J.get(ee);he?he.projects.add(b):J.set(ee,{projects:new e.Set([b]),watcher:ie(ve,ee),close:function(){var F=J.get(ee);!F||F.projects.size!==0||(F.watcher.close(),J.delete(ee))}})})}e.updateSharedExtendedConfigFileWatcher=w;function B(b,se){se.forEach(function(J){J.projects.delete(b)&&J.close()})}e.clearSharedExtendedConfigFileWatcher=B;function E(b,se,J){!b.delete(se)||b.forEach(function(ie,R){var q,O=ie.extendedResult;!((q=O.extendedSourceFiles)===null||q===void 0)&&q.some(function(ve){return J(ve)===se})&&E(b,R,J)})}e.cleanExtendedConfigCache=E;function Q(b,se,J){var ie=new e.Map(b);e.mutateMap(se,ie,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updatePackageJsonWatch=Q;function le(b,se,J){var ie=b.getMissingFilePaths(),R=e.arrayToMap(ie,e.identity,e.returnTrue);e.mutateMap(se,R,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updateMissingFilePathsWatch=le;function N(b,se,J){e.mutateMap(b,se,{createNewValue:ie,onDeleteValue:K,onExistingValue:R});function ie(q,O){return{watcher:J(q,O),flags:O}}function R(q,O,ve){q.flags!==O&&(q.watcher.close(),b.set(ve,ie(ve,O)))}}e.updateWatchingWildcardDirectories=N;function p(b){var se=b.watchedDirPath,J=b.fileOrDirectory,ie=b.fileOrDirectoryPath,R=b.configFileName,q=b.options,O=b.program,ve=b.extraFileExtensions,ee=b.currentDirectory,he=b.useCaseSensitiveFileNames,F=b.writeLog,x=b.toPath,X=e.removeIgnoredPath(ie);if(!X)return F("Project: ".concat(R," Detected ignored path: ").concat(J)),!0;if(ie=X,ie===se)return!1;if(e.hasExtension(ie)&&!e.isSupportedSourceFileName(J,q,ve))return F("Project: ".concat(R," Detected file add/remove of non supported extension: ").concat(J)),!0;if(e.isExcludedFile(J,q.configFile.configFileSpecs,e.getNormalizedAbsolutePath(e.getDirectoryPath(R),ee),he,ee))return F("Project: ".concat(R," Detected excluded file: ").concat(J)),!0;if(!O||e.outFile(q)||q.outDir)return!1;if(e.isDeclarationFileName(ie)){if(q.declarationDir)return!1}else if(!e.fileExtensionIsOneOf(ie,e.supportedJSExtensionsFlat))return!1;var $=e.removeFileExtension(ie),A=e.isArray(O)?void 0:m(O)?O.getProgramOrUndefined():O,y=!A&&!e.isArray(O)?O:void 0;if(V($+".ts")||V($+".tsx"))return F("Project: ".concat(R," Detected output file: ").concat(J)),!0;return!1;function V(L){return A?!!A.getSourceFileByPath(L):y?y.getState().fileInfos.has(L):!!e.find(O,function(P){return x(P)===L})}}e.isIgnoredFileFromWildCardWatching=p;function m(b){return!!b.getState}function G(b,se){return b?b.isEmittedFile(se):!1}e.isEmittedFileOfProgram=G;var oe;(function(b){b[b.None=0]="None",b[b.TriggerOnly=1]="TriggerOnly",b[b.Verbose=2]="Verbose"})(oe=e.WatchLogLevel||(e.WatchLogLevel={}));function f(b,se,J,ie){e.setSysLog(se===oe.Verbose?J:e.noop);var R={watchFile:function(y,V,L,P){return b.watchFile(y,V,L,P)},watchDirectory:function(y,V,L,P){return b.watchDirectory(y,V,(L&1)!==0,P)}},q=se!==oe.None?{watchFile:$("watchFile"),watchDirectory:$("watchDirectory")}:void 0,O=se===oe.Verbose?{watchFile:x,watchDirectory:X}:q||R,ve=se===oe.Verbose?F:e.returnNoopFileWatcher;return{watchFile:ee("watchFile"),watchDirectory:ee("watchDirectory")};function ee(y){return function(V,L,P,k,Y,U){var j;return e.matchesExclude(V,y==="watchFile"?k==null?void 0:k.excludeFiles:k==null?void 0:k.excludeDirectories,he(),((j=b.getCurrentDirectory)===null||j===void 0?void 0:j.call(b))||"")?ve(V,P,k,Y,U):O[y].call(void 0,V,L,P,k,Y,U)}}function he(){return typeof b.useCaseSensitiveFileNames=="boolean"?b.useCaseSensitiveFileNames:b.useCaseSensitiveFileNames()}function F(y,V,L,P,k){return J("ExcludeWatcher:: Added:: ".concat(A(y,V,L,P,k,ie))),{close:function(){return J("ExcludeWatcher:: Close:: ".concat(A(y,V,L,P,k,ie)))}}}function x(y,V,L,P,k,Y){J("FileWatcher:: Added:: ".concat(A(y,L,P,k,Y,ie)));var U=q.watchFile(y,V,L,P,k,Y);return{close:function(){J("FileWatcher:: Close:: ".concat(A(y,L,P,k,Y,ie))),U.close()}}}function X(y,V,L,P,k,Y){var U="DirectoryWatcher:: Added:: ".concat(A(y,L,P,k,Y,ie));J(U);var j=e.timestamp(),H=q.watchDirectory(y,V,L,P,k,Y),I=e.timestamp()-j;return J("Elapsed:: ".concat(I,"ms ").concat(U)),{close:function(){var l="DirectoryWatcher:: Close:: ".concat(A(y,L,P,k,Y,ie));J(l);var d=e.timestamp();H.close();var D=e.timestamp()-d;J("Elapsed:: ".concat(D,"ms ").concat(l))}}}function $(y){return function(V,L,P,k,Y,U){return R[y].call(void 0,V,function(){for(var j=[],H=0;H=4,er=(we+1+"").length;Ae&&(er=Math.max(T.length,er));for(var ir="",Cr=rr;Cr<=we;Cr++){ir+=Ee.getNewLine(),Ae&&rr+1=e.length(Ei==null?void 0:Ei.imports)+e.length(Ei==null?void 0:Ei.moduleAugmentations))return!1;var ki=e.getResolvedModule(Ei,hr,Ei&&he(Ei,Or)),dt=ki&&er.getSourceFile(ki.resolvedFileName);if(ki&&dt)return!1;var la=lr.get(hr);return la?(e.isTraceEnabled(de,pe)&&e.trace(pe,e.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified,hr,la),!0):!1}}function $a(){return!y(er.getProjectReferences(),er.getResolvedProjectReferences(),function(Kr,_i,Ei){var tt=(_i?_i.commandLine.projectReferences:Ae)[Ei],kt=fo(tt);return Kr?!kt||kt.sourceFile!==Kr.sourceFile||!e.arrayIsEqualTo(Kr.commandLine.fileNames,kt.commandLine.fileNames):kt!==void 0},function(Kr,_i){var Ei=_i?yi(_i.sourceFile.path).commandLine.projectReferences:Ae;return!e.arrayIsEqualTo(Kr,Ei,e.projectReferenceIsEqualTo)})}function Qa(){var Kr;if(!er)return 0;var _i=er.getCompilerOptions();if(e.changesAffectModuleResolution(_i,de))return 0;var Ei=er.getRootFileNames();if(!e.arrayIsEqualTo(Ei,we)||!$a())return 0;Ae&&(Ar=Ae.map(fo));var tt=[],kt=[];if(vi=2,er.getMissingFilePaths().some(function(Ls){return pe.fileExists(Ls)}))return 0;var bt=er.getSourceFiles(),ia;(function(Ls){Ls[Ls.Exists=0]="Exists",Ls[Ls.Modified=1]="Modified"})(ia||(ia={}));for(var Xt=new e.Map,Za=0,bn=bt;Za=0;){if(_i.markUsed(bt))return bt;var ia=Ei.text.slice(kt[bt],kt[bt+1]).trim();if(ia!==""&&!/^(\s*)\/\/(.*)$/.test(ia))return-1;bt--}return-1}function Qe(Kr){return no(function(){var _i=[];return Ei(Kr,Kr),e.forEachChildRecursively(Kr,Ei,tt),_i;function Ei(Xt,Za){switch(Za.kind){case 164:case 167:case 169:if(Za.questionToken===Xt)return _i.push(ia(Xt,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,"?")),"skip";case 168:case 171:case 172:case 173:case 213:case 256:case 214:case 254:if(Za.type===Xt)return _i.push(ia(Xt,e.Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files)),"skip"}switch(Xt.kind){case 267:if(Xt.isTypeOnly)return _i.push(ia(Za,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,"import type")),"skip";break;case 272:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,"export type")),"skip";break;case 270:case 275:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,e.isImportSpecifier(Xt)?"import...type":"export...type")),"skip";break;case 265:return _i.push(ia(Xt,e.Diagnostics.import_can_only_be_used_in_TypeScript_files)),"skip";case 271:if(Xt.isExportEquals)return _i.push(ia(Xt,e.Diagnostics.export_can_only_be_used_in_TypeScript_files)),"skip";break;case 291:var bn=Xt;if(bn.token===117)return _i.push(ia(Xt,e.Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files)),"skip";break;case 258:var _a=e.tokenToString(118);return e.Debug.assertIsDefined(_a),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,_a)),"skip";case 261:var qa=Xt.flags&16?e.tokenToString(142):e.tokenToString(141);return e.Debug.assertIsDefined(qa),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,qa)),"skip";case 259:return _i.push(ia(Xt,e.Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files)),"skip";case 260:var rn=e.Debug.checkDefined(e.tokenToString(92));return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,rn)),"skip";case 230:return _i.push(ia(Xt,e.Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files)),"skip";case 229:return _i.push(ia(Xt.type,e.Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)),"skip";case 211:e.Debug.fail()}}function tt(Xt,Za){switch(Za.decorators===Xt&&!de.experimentalDecorators&&_i.push(ia(Za,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)),Za.kind){case 257:case 226:case 169:case 171:case 172:case 173:case 213:case 256:case 214:if(Xt===Za.typeParameters)return _i.push(bt(Xt,e.Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)),"skip";case 237:if(Xt===Za.modifiers)return kt(Za.modifiers,Za.kind===237),"skip";break;case 167:if(Xt===Za.modifiers){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];qa.kind!==124&&_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)))}return"skip"}break;case 164:if(Xt===Za.modifiers)return _i.push(bt(Xt,e.Diagnostics.Parameter_modifiers_can_only_be_used_in_TypeScript_files)),"skip";break;case 208:case 209:case 228:case 279:case 280:case 210:if(Xt===Za.typeArguments)return _i.push(bt(Xt,e.Diagnostics.Type_arguments_can_only_be_used_in_TypeScript_files)),"skip";break}}function kt(Xt,Za){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];switch(qa.kind){case 85:if(Za)continue;case 123:case 121:case 122:case 145:case 135:case 126:case 159:case 101:case 144:_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)));break;case 124:case 93:case 88:}}}function bt(Xt,Za,bn,_a,qa){var rn=Xt.pos;return e.createFileDiagnostic(Kr,rn,Xt.end-rn,Za,bn,_a,qa)}function ia(Xt,Za,bn,_a,qa){return e.createDiagnosticForNodeInSourceFile(Kr,Xt,Za,bn,_a,qa)}})}function Gr(Kr,_i){return Ce(Kr,_i,ur,S)}function S(Kr,_i){return no(function(){var Ei=xn().getEmitResolver(Kr,_i);return e.getDeclarationDiagnostics(ai(e.noop),Ei,Kr)||e.emptyArray})}function Ce(Kr,_i,Ei,tt){var kt,bt=Kr?(kt=Ei.perFile)===null||kt===void 0?void 0:kt.get(Kr.path):Ei.allDiagnostics;if(bt)return bt;var ia=tt(Kr,_i);return Kr?(Ei.perFile||(Ei.perFile=new e.Map)).set(Kr.path,ia):Ei.allDiagnostics=ia,ia}function qe(Kr,_i){return Kr.isDeclarationFile?[]:Gr(Kr,_i)}function br(){return e.sortAndDeduplicateDiagnostics(e.concatenate(wi.getGlobalDiagnostics(),Zr()))}function Zr(){if(!de.configFile)return e.emptyArray;var Kr=wi.getDiagnostics(de.configFile.fileName);return Ji(function(_i){Kr=e.concatenate(Kr,wi.getDiagnostics(_i.sourceFile.fileName))}),Kr}function Si(){return we.length?e.sortAndDeduplicateDiagnostics(xn().getGlobalDiagnostics().slice()):e.emptyArray}function Pi(){return ye||e.emptyArray}function Qi(Kr,_i,Ei,tt){Go(e.normalizePath(Kr),_i,Ei,void 0,tt)}function Ct(Kr,_i){return Kr.fileName===_i.fileName}function sa(Kr,_i){return Kr.kind===79?_i.kind===79&&Kr.escapedText===_i.escapedText:_i.kind===10&&Kr.text===_i.text}function en(Kr,_i){var Ei=e.factory.createStringLiteral(Kr),tt=e.factory.createImportDeclaration(void 0,void 0,void 0,Ei,void 0);return e.addEmitFlags(tt,67108864),e.setParent(Ei,tt),e.setParent(tt,_i),Ei.flags&=-9,tt.flags&=-9,Ei}function Wa(Kr){if(Kr.imports)return;var _i=e.isSourceFileJS(Kr),Ei=e.isExternalModule(Kr),tt,kt,bt;if((de.isolatedModules||Ei)&&!Kr.isDeclarationFile){de.importHelpers&&(tt=[en(e.externalHelpersModuleNameText,Kr)]);var ia=e.getJSXRuntimeImport(e.getJSXImplicitImportBase(de,Kr),de);ia&&(tt||(tt=[])).push(en(ia,Kr))}for(var Xt=0,Za=Kr.statements;Xt=1&&e.isStringLiteralLike(ho.arguments[0])?(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.arguments[0])):e.isLiteralImportTypeNode(ho)&&(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.argument.literal))}}function rn(jn,Mo){for(var ho=jn,gs=function(hr){if(hr.pos<=Mo&&(Mo0),Object.defineProperties(ia,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(Xt){this.redirectInfo.redirectTarget.id=Xt}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(Xt){this.redirectInfo.redirectTarget.symbol=Xt}}}),ia}function Kc(Kr,_i,Ei,tt,kt){e.tracing===null||e.tracing===void 0||e.tracing.push("program","findSourceFile",{fileName:Kr,isDefaultLib:_i||void 0,fileIncludeKind:e.FileIncludeKind[tt.kind]});var bt=pc(Kr,_i,Ei,tt,kt);return e.tracing===null||e.tracing===void 0||e.tracing.pop(),bt}function Xs(Kr,_i,Ei,tt){var kt=U(Vi(Kr),_i==null?void 0:_i.getPackageJsonInfoCache(),Ei,tt);return{languageVersion:e.getEmitScriptTarget(tt),impliedNodeFormat:kt,setExternalModuleIndicator:e.getSetExternalModuleIndicator(tt)}}function pc(Kr,_i,Ei,tt,kt){var bt=Vi(Kr);if(Pe){var ia=ce(bt);if(!ia&&pe.realpath&&de.preserveSymlinks&&e.isDeclarationFileName(Kr)&&e.stringContains(Kr,e.nodeModulesPathPart)){var Xt=Vi(pe.realpath(Kr));Xt!==bt&&(ia=ce(Xt))}if(ia){var Za=e.isString(ia)?Kc(ia,_i,Ei,tt,kt):void 0;return Za&&tc(Za,bt,void 0),Za}}var bn=Kr;if(xe.has(bt)){var _a=xe.get(bt);if(hs(_a||void 0,tt),_a&&de.forceConsistentCasingInFileNames){var qa=_a.fileName,rn=Vi(qa)!==Vi(Kr);rn&&(Kr=ps(Kr)||Kr);var jn=e.getNormalizedAbsolutePathWithoutRoot(qa,Xi),Mo=e.getNormalizedAbsolutePathWithoutRoot(Kr,Xi);jn!==Mo&&Pc(Kr,_a,tt)}return _a&&mi.get(_a.path)&&Ur===0?(mi.set(_a.path,!1),de.noResolve||(qi(_a,_i),je(_a)),de.noLib||ga(_a),ii.set(_a.path,!1),Xn(_a)):_a&&ii.get(_a.path)&&Ur0),hr.fileName=Kr,hr.path=bt,hr.resolvedPath=Vi(Kr),hr.originalFileName=bn,hs(hr,tt),pe.useCaseSensitiveFileNames()){var la=e.toFileNameLowerCase(bt),wa=mr.get(la);wa?Pc(Kr,wa,tt):mr.set(la,hr)}qr=qr||hr.hasNoDefaultLib&&!Ei,de.noResolve||(qi(hr,_i),je(hr)),de.noLib||ga(hr),Xn(hr),_i?ir.push(hr):Cr.push(hr)}return hr}function hs(Kr,_i){Kr&&be.add(Kr.path,_i)}function tc(Kr,_i,Ei){Ei?(xe.set(Ei,Kr),xe.set(_i,Kr||!1)):xe.set(_i,Kr)}function ps(Kr){var _i=Qs(Kr);return _i&&js(_i,Kr)}function Qs(Kr){if(!(!Ar||!Ar.length||e.isDeclarationFileName(Kr)||e.fileExtensionIs(Kr,".json")))return ds(Kr)}function js(Kr,_i){var Ei=e.outFile(Kr.commandLine.options);return Ei?e.changeExtension(Ei,".d.ts"):e.getOutputDeclarationFileName(_i,Kr.commandLine,!pe.useCaseSensitiveFileNames())}function ds(Kr){nr===void 0&&(nr=new e.Map,Ji(function(Ei){Vi(de.configFilePath)!==Ei.sourceFile.path&&Ei.commandLine.fileNames.forEach(function(tt){return nr.set(Vi(tt),Ei.sourceFile.path)})}));var _i=nr.get(Vi(Kr));return _i&&yi(_i)}function Ji(Kr){return e.forEachResolvedProjectReference(Ar,Kr)}function ce(Kr){if(!!e.isDeclarationFileName(Kr))return Mr===void 0&&(Mr=new e.Map,Ji(function(_i){var Ei=e.outFile(_i.commandLine.options);if(Ei){var tt=e.changeExtension(Ei,".d.ts");Mr.set(Vi(tt),!0)}else{var kt=e.memoize(function(){return e.getCommonSourceDirectoryOfConfig(_i.commandLine,!pe.useCaseSensitiveFileNames())});e.forEach(_i.commandLine.fileNames,function(bt){if(!e.isDeclarationFileName(bt)&&!e.fileExtensionIs(bt,".json")){var ia=e.getOutputDeclarationFileName(bt,_i.commandLine,!pe.useCaseSensitiveFileNames(),kt);Mr.set(Vi(ia),bt)}})}})),Mr.get(Kr)}function Rr(Kr){return Pe&&!!ds(Kr)}function yi(Kr){if(!!Oe)return Oe.get(Kr)||void 0}function qi(Kr,_i){e.forEach(Kr.referencedFiles,function(Ei,tt){Go(C(Ei.fileName,Kr.fileName),_i,!1,void 0,{kind:e.FileIncludeKind.ReferenceFile,file:Kr.path,index:tt})})}function je(Kr){var _i=Kr.typeReferenceDirectives;if(!!_i)for(var Ei=Bt(_i,Kr),tt=0;tt<_i.length;tt++){var kt=Kr.typeReferenceDirectives[tt],bt=Ei[tt],ia=e.toFileNameLowerCase(kt.fileName);e.setResolvedTypeReferenceDirective(Kr,ia,bt);var Xt=kt.resolutionMode||Kr.impliedNodeFormat;Xt&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.Node16&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.NodeNext&&wi.add(e.createDiagnosticForRange(Kr,kt,e.Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext)),Hr(ia,Xt,bt,{kind:e.FileIncludeKind.TypeReferenceDirective,file:Kr.path,index:tt})}}function Hr(Kr,_i,Ei,tt){e.tracing===null||e.tracing===void 0||e.tracing.push("program","processTypeReferenceDirective",{directive:Kr,hasResolved:!!ba,refKind:tt.kind,refPath:V(tt)?tt.file:void 0}),pt(Kr,_i,Ei,tt),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function pt(Kr,_i,Ei,tt){var kt=yr.get(Kr,_i);if(!(kt&&kt.primary)){var bt=!0;if(Ei){if(Ei.isExternalLibraryImport&&Ur++,Ei.primary)Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);else if(kt){if(Ei.resolvedFileName!==kt.resolvedFileName){var ia=pe.readFile(Ei.resolvedFileName),Xt=Rn(kt.resolvedFileName);ia!==Xt.text&&ko(Xt,tt,e.Diagnostics.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict,[Kr,Ei.resolvedFileName,kt.resolvedFileName])}bt=!1}else Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);Ei.isExternalLibraryImport&&Ur--}else ko(void 0,tt,e.Diagnostics.Cannot_find_type_definition_file_for_0,[Kr]);bt&&yr.set(Kr,_i,Ei)}}function Pt(Kr){for(var _i=Kr.split("."),Ei=_i[1],tt=2;_i[tt]&&_i[tt]!=="d";)Ei+=(tt===2?"/":"-")+_i[tt],tt++;var kt=e.combinePaths(Xi,"__lib_node_modules_lookup_".concat(Kr,"__.ts")),bt=e.resolveModuleName("@typescript/lib-"+Ei,kt,{moduleResolution:e.ModuleResolutionKind.NodeJs},pe,_r);return bt!=null&&bt.resolvedModule?bt.resolvedModule.resolvedFileName:e.combinePaths(Di,Kr)}function ga(Kr){e.forEach(Kr.libReferenceDirectives,function(_i,Ei){var tt=e.toFileNameLowerCase(_i.fileName),kt=e.libMap.get(tt);if(kt)Qi(Pt(kt),!0,!0,{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei});else{var bt=e.removeSuffix(e.removePrefix(tt,"lib."),".d.ts"),ia=e.getSpellingSuggestion(bt,e.libs,e.identity),Xt=ia?e.Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1:e.Diagnostics.Cannot_find_lib_definition_for_0;(Ir||(Ir=[])).push({kind:0,reason:{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei},diagnostic:Xt,args:[tt,ia]})}})}function ua(Kr){return pe.getCanonicalFileName(Kr)}function Xn(Kr){var _i;if(Wa(Kr),Kr.imports.length||Kr.moduleAugmentations.length){var Ei=We(Kr),tt=ba(Ei,Kr);e.Debug.assert(tt.length===Ei.length);for(var kt=(Pe?(_i=wt(Kr))===null||_i===void 0?void 0:_i.commandLine.options:void 0)||de,bt=0;btwr,rn=_a&&!ue(kt,ia)&&!kt.noResolve&&bt1})&&Jo(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,"outDir")}if(de.useDefineForClassFields&&_a===0&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,"useDefineForClassFields"),de.checkJs&&!e.getAllowJSCompilerOption(de)&&wi.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"checkJs","allowJs")),de.emitDeclarationOnly&&(e.getEmitDeclarations(de)||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,"emitDeclarationOnly","declaration","composite"),de.noEmit&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"emitDeclarationOnly","noEmit")),de.emitDecoratorMetadata&&!de.experimentalDecorators&&Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"emitDecoratorMetadata","experimentalDecorators"),de.jsxFactory?(de.reactNamespace&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"reactNamespace","jsxFactory"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFactory",e.inverseJsxOptionMap.get(""+de.jsx)),e.parseIsolatedEntityName(de.jsxFactory,_a)||eu("jsxFactory",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFactory)):de.reactNamespace&&!e.isIdentifierText(de.reactNamespace,_a)&&eu("reactNamespace",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,de.reactNamespace),de.jsxFragmentFactory&&(de.jsxFactory||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"jsxFragmentFactory","jsxFactory"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFragmentFactory",e.inverseJsxOptionMap.get(""+de.jsx)),e.parseIsolatedEntityName(de.jsxFragmentFactory,_a)||eu("jsxFragmentFactory",e.Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFragmentFactory)),de.reactNamespace&&(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"reactNamespace",e.inverseJsxOptionMap.get(""+de.jsx)),de.jsxImportSource&&de.jsx===2&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxImportSource",e.inverseJsxOptionMap.get(""+de.jsx)),de.preserveValueImports&&e.getEmitModuleKind(de)qa?e.createDiagnosticForNodeInSourceFile(_a,rn.elements[qa],Kr.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(!de.types)return;tt=al("types",Kr.typeReference),kt=e.Diagnostics.File_is_entry_point_of_type_library_specified_here;break;case e.FileIncludeKind.LibFile:if(Kr.index!==void 0){tt=al("lib",de.lib[Kr.index]),kt=e.Diagnostics.File_is_library_specified_here;break}var jn=e.forEachEntry(e.targetOptionDeclaration.type,function(Mo,ho){return Mo===e.getEmitScriptTarget(de)?ho:void 0});tt=jn?Rf("target",jn):void 0,kt=e.Diagnostics.File_is_default_library_for_target_specified_here;break;default:e.Debug.assertNever(Kr)}return tt&&e.createDiagnosticForNodeInSourceFile(de.configFile,tt,kt)}}function Bs(){var Kr=de.suppressOutputPathCheck?void 0:e.getTsBuildInfoEmitOutputFilePath(de);y(Ae,Ar,function(_i,Ei,tt){var kt=(Ei?Ei.commandLine.projectReferences:Ae)[tt],bt=Ei&&Ei.sourceFile;if(!_i){Ws(bt,tt,e.Diagnostics.File_0_not_found,kt.path);return}var ia=_i.commandLine.options;if(!ia.composite||ia.noEmit){var Xt=Ei?Ei.commandLine.fileNames:we;Xt.length&&(ia.composite||Ws(bt,tt,e.Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true,kt.path),ia.noEmit&&Ws(bt,tt,e.Diagnostics.Referenced_project_0_may_not_disable_emit,kt.path))}if(kt.prepend){var Za=e.outFile(ia);Za?pe.fileExists(Za)||Ws(bt,tt,e.Diagnostics.Output_file_0_from_project_1_does_not_exist,Za,kt.path):Ws(bt,tt,e.Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set,kt.path)}!Ei&&Kr&&Kr===e.getTsBuildInfoEmitOutputFilePath(ia)&&(Ws(bt,tt,e.Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,Kr,kt.path),Wt.set(Vi(Kr),!0))})}function xc(Kr,_i,Ei,tt,kt,bt){for(var ia=!0,Xt=Zc(),Za=0,bn=Xt;Za_i&&(wi.add(e.createDiagnosticForNodeInSourceFile(de.configFile,Mo.elements[_i],Ei,tt,kt,bt)),ia=!1)}}ia&&wi.add(e.createCompilerDiagnostic(Ei,tt,kt,bt))}function su(Kr,_i,Ei,tt){for(var kt=!0,bt=Zc(),ia=0,Xt=bt;ia_i?wi.add(e.createDiagnosticForNodeInSourceFile(Kr||de.configFile,bt.elements[_i],Ei,tt,kt)):wi.add(e.createCompilerDiagnostic(Ei,tt,kt))}function pu(Kr,_i,Ei,tt,kt,bt,ia){var Xt=Uu(),Za=!Xt||!Ql(Xt,Kr,_i,Ei,tt,kt,bt,ia);Za&&wi.add(e.createCompilerDiagnostic(tt,kt,bt,ia))}function Uu(){if(Zt===void 0){Zt=!1;var Kr=e.getTsConfigObjectLiteralExpression(de.configFile);if(Kr)for(var _i=0,Ei=e.getPropertyAssignment(Kr,"compilerOptions");_i0)for(var P=A.getTypeChecker(),k=0,Y=y.imports;k0)for(var I=0,l=y.referencedFiles;I1&&Be(Z)}return L;function Be(Re){if(!!Re.declarations)for(var ze=0,Ee=Re.declarations;ze0;){var I=H.pop();if(!j.has(I)){var l=y.getSourceFileByPath(I);j.set(I,l),l&&J(A,y,l,L,P,k,Y)&&H.push.apply(H,ve(A,l.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(j.values(),function(d){return d}))}})(C=e.BuilderState||(e.BuilderState={}))})(ke||(ke={}));var ke;(function(e){var a;(function(j){j[j.DtsOnly=0]="DtsOnly",j[j.Full=1]="Full"})(a=e.BuilderFileEmit||(e.BuilderFileEmit={}));function C(j,H){return j===H||j!==void 0&&H!==void 0&&j.size===H.size&&!e.forEachKey(j,function(I){return!H.has(I)})}function w(j,H,I,l){var d=e.BuilderState.create(j,H,I,l);d.program=j;var D=j.getCompilerOptions();d.compilerOptions=D,e.outFile(D)||(d.semanticDiagnosticsPerFile=new e.Map),d.changedFilesSet=new e.Set;var fe=e.BuilderState.canReuseOldState(d.referencedMap,I),g=fe?I.compilerOptions:void 0,ne=fe&&I.semanticDiagnosticsPerFile&&!!d.semanticDiagnosticsPerFile&&!e.compilerOptionsAffectSemanticDiagnostics(D,g);if(fe){if(!I.currentChangedFilePath){var ue=I.currentAffectedFilesSignatures;e.Debug.assert(!I.affectedFiles&&(!ue||!ue.size),"Cannot reuse if only few affected files of currentChangedFile were iterated")}var We=I.changedFilesSet;ne&&e.Debug.assert(!We||!e.forEachKey(We,function(Re){return I.semanticDiagnosticsPerFile.has(Re)}),"Semantic diagnostics shouldnt be available for changed files"),We==null||We.forEach(function(Re){return d.changedFilesSet.add(Re)}),!e.outFile(D)&&I.affectedFilesPendingEmit&&(d.affectedFilesPendingEmit=I.affectedFilesPendingEmit.slice(),d.affectedFilesPendingEmitKind=I.affectedFilesPendingEmitKind&&new e.Map(I.affectedFilesPendingEmitKind),d.affectedFilesPendingEmitIndex=I.affectedFilesPendingEmitIndex,d.seenAffectedFiles=new e.Set)}var Fe=d.referencedMap,Z=fe?I.referencedMap:void 0,Be=ne&&!D.skipLibCheck==!g.skipLibCheck,ge=Be&&!D.skipDefaultLibCheck==!g.skipDefaultLibCheck;return d.fileInfos.forEach(function(Re,ze){var Ee,He;if(!fe||!(Ee=I.fileInfos.get(ze))||Ee.version!==Re.version||!C(He=Fe&&Fe.getValues(ze),Z&&Z.getValues(ze))||He&&e.forEachKey(He,function(_e){return!d.fileInfos.has(_e)&&I.fileInfos.has(_e)}))d.changedFilesSet.add(ze);else if(ne){var rr=j.getSourceFileByPath(ze);if(rr.isDeclarationFile&&!Be||rr.hasNoDefaultLib&&!ge)return;var Ie=I.semanticDiagnosticsPerFile.get(ze);Ie&&(d.semanticDiagnosticsPerFile.set(ze,I.hasReusableDiagnostic?B(Ie,j,H):Ie),d.semanticDiagnosticsFromOldState||(d.semanticDiagnosticsFromOldState=new e.Set),d.semanticDiagnosticsFromOldState.add(ze))}}),fe&&e.forEachEntry(I.fileInfos,function(Re,ze){return Re.affectsGlobalScope&&!d.fileInfos.has(ze)})?e.BuilderState.getAllFilesExcludingDefaultLibraryFile(d,j,void 0).forEach(function(Re){return d.changedFilesSet.add(Re.resolvedPath)}):g&&!e.outFile(D)&&e.compilerOptionsAffectEmit(D,g)&&(j.getSourceFiles().forEach(function(Re){return P(d,Re.resolvedPath,1)}),e.Debug.assert(!d.seenAffectedFiles||!d.seenAffectedFiles.size),d.seenAffectedFiles=d.seenAffectedFiles||new e.Set),fe&&e.forEachEntry(I.fileInfos,function(Re,ze){d.fileInfos.has(ze)&&d.fileInfos.get(ze).impliedFormat!==Re.impliedFormat&&d.changedFilesSet.add(ze)}),d.buildInfoEmitPending=!!d.changedFilesSet.size,d}function B(j,H,I){if(!j.length)return e.emptyArray;var l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(H.getCompilerOptions()),H.getCurrentDirectory()));return j.map(function(D){var fe=E(D,H,d);fe.reportsUnnecessary=D.reportsUnnecessary,fe.reportsDeprecated=D.reportDeprecated,fe.source=D.source,fe.skippedOn=D.skippedOn;var g=D.relatedInformation;return fe.relatedInformation=g?g.length?g.map(function(ne){return E(ne,H,d)}):[]:void 0,fe});function d(D){return e.toPath(D,l,I)}}function E(j,H,I){var l=j.file;return Ke(Ke({},j),{file:l?H.getSourceFileByPath(I(l)):void 0})}function Q(j){e.BuilderState.releaseCache(j),j.program=void 0}function le(j){var H,I=e.BuilderState.clone(j);return I.semanticDiagnosticsPerFile=j.semanticDiagnosticsPerFile&&new e.Map(j.semanticDiagnosticsPerFile),I.changedFilesSet=new e.Set(j.changedFilesSet),I.affectedFiles=j.affectedFiles,I.affectedFilesIndex=j.affectedFilesIndex,I.currentChangedFilePath=j.currentChangedFilePath,I.currentAffectedFilesSignatures=j.currentAffectedFilesSignatures&&new e.Map(j.currentAffectedFilesSignatures),I.currentAffectedFilesExportedModulesMap=(H=j.currentAffectedFilesExportedModulesMap)===null||H===void 0?void 0:H.clone(),I.seenAffectedFiles=j.seenAffectedFiles&&new e.Set(j.seenAffectedFiles),I.cleanedDiagnosticsOfLibFiles=j.cleanedDiagnosticsOfLibFiles,I.semanticDiagnosticsFromOldState=j.semanticDiagnosticsFromOldState&&new e.Set(j.semanticDiagnosticsFromOldState),I.program=j.program,I.compilerOptions=j.compilerOptions,I.affectedFilesPendingEmit=j.affectedFilesPendingEmit&&j.affectedFilesPendingEmit.slice(),I.affectedFilesPendingEmitKind=j.affectedFilesPendingEmitKind&&new e.Map(j.affectedFilesPendingEmitKind),I.affectedFilesPendingEmitIndex=j.affectedFilesPendingEmitIndex,I.seenEmittedFiles=j.seenEmittedFiles&&new e.Map(j.seenEmittedFiles),I.programEmitComplete=j.programEmitComplete,I}function N(j,H){e.Debug.assert(!H||!j.affectedFiles||j.affectedFiles[j.affectedFilesIndex-1]!==H||!j.semanticDiagnosticsPerFile.has(H.resolvedPath))}function p(j,H,I,l){for(var d;;){var D=j.affectedFiles;if(D){for(var fe=j.seenAffectedFiles,g=j.affectedFilesIndex;g0;){var g=fe.pop();if(!D.has(g)){if(D.set(g,!0),J(j,g,I,l,d))return;if(T(j,g,I,l,d),b(j,g)){var ne=e.Debug.checkDefined(j.program).getSourceFileByPath(g);fe.push.apply(fe,e.BuilderState.getReferencedByPaths(j,ne.resolvedPath))}}}}e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap);var ue=new e.Set;se(j,H.resolvedPath,function(We){if(J(j,We,I,l,d))return!0;var Fe=j.referencedMap.getKeys(We);return Fe&&e.forEachKey(Fe,function(Z){return R(j,Z,ue,I,l,d)})})}}function R(j,H,I,l,d,D){var fe;if(!!e.tryAddToSet(I,H)){if(J(j,H,l,d,D))return!0;T(j,H,l,d,D),e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap),se(j,H,function(g){return R(j,g,I,l,d,D)}),(fe=j.referencedMap.getKeys(H))===null||fe===void 0||fe.forEach(function(g){return!I.has(g)&&T(j,g,l,d,D)})}}function q(j,H,I,l,d){d?j.buildInfoEmitPending=!1:H===j.program?(j.changedFilesSet.clear(),j.programEmitComplete=!0):(j.seenAffectedFiles.add(H.resolvedPath),I!==void 0&&(j.seenEmittedFiles||(j.seenEmittedFiles=new e.Map)).set(H.resolvedPath,I),l?(j.affectedFilesPendingEmitIndex++,j.buildInfoEmitPending=!0):j.affectedFilesIndex++)}function O(j,H,I){return q(j,I),{result:H,affected:I}}function ve(j,H,I,l,d,D){return q(j,I,l,d,D),{result:H,affected:I}}function ee(j,H,I){return e.concatenate(he(j,H,I),e.Debug.checkDefined(j.program).getProgramDiagnostics(H))}function he(j,H,I){var l=H.resolvedPath;if(j.semanticDiagnosticsPerFile){var d=j.semanticDiagnosticsPerFile.get(l);if(d)return e.filterSemanticDiagnostics(d,j.compilerOptions)}var D=e.Debug.checkDefined(j.program).getBindAndCheckDiagnostics(H,I);return j.semanticDiagnosticsPerFile&&j.semanticDiagnosticsPerFile.set(l,D),e.filterSemanticDiagnostics(D,j.compilerOptions)}function F(j,H){if(e.outFile(j.compilerOptions))return;var I=e.Debug.checkDefined(j.program).getCurrentDirectory(),l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(j.compilerOptions),I)),d=[],D=new e.Map,fe,g,ne=e.arrayFrom(j.fileInfos.entries(),function(Ae){var er=Ae[0],ir=Ae[1],Cr=de(er);e.Debug.assert(d[Cr-1]===we(er));var Ye=j.currentAffectedFilesSignatures&&j.currentAffectedFilesSignatures.get(er),Br=Ye!=null?Ye:ir.signature;return ir.version===Br?ir.affectsGlobalScope||ir.impliedFormat?{version:ir.version,signature:void 0,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:ir.version:Br!==void 0?Ye===void 0?ir:{version:ir.version,signature:Ye,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:{version:ir.version,signature:!1,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}}),ue;j.referencedMap&&(ue=e.arrayFrom(j.referencedMap.keys()).sort(e.compareStringsCaseSensitive).map(function(Ae){return[de(Ae),ye(j.referencedMap.getValues(Ae))]}));var We;j.exportedModulesMap&&(We=e.mapDefined(e.arrayFrom(j.exportedModulesMap.keys()).sort(e.compareStringsCaseSensitive),function(Ae){var er;if(j.currentAffectedFilesExportedModulesMap){if(!((er=j.currentAffectedFilesExportedModulesMap.deletedKeys())===null||er===void 0)&&er.has(Ae))return;var ir=j.currentAffectedFilesExportedModulesMap.getValues(Ae);if(ir)return[de(Ae),ye(ir)]}return[de(Ae),ye(j.exportedModulesMap.getValues(Ae))]}));var Fe;if(j.semanticDiagnosticsPerFile)for(var Z=0,Be=e.arrayFrom(j.semanticDiagnosticsPerFile.keys()).sort(e.compareStringsCaseSensitive);Z1||E.charCodeAt(0)!==47;if(p&&E.search(/[a-zA-Z]:/)!==0&&N.search(/[a-zA-z]\$\//)===0){if(le=E.indexOf(e.directorySeparator,le+1),le===-1)return!1;N=E.substring(Q+N.length,le+1)}if(p&&N.search(/users\//i)!==0)return!0;for(var m=le+1,G=2;G>0;G--)if(m=E.indexOf(e.directorySeparator,m)+1,m===0)return!1;return!0}e.canWatchDirectory=C;function w(E,Q,le){var N,p,m,G=e.createMultiMap(),oe=[],f=e.createMultiMap(),T=!1,K,b,se,J=e.memoize(function(){return E.getCurrentDirectory()}),ie=E.getCachedDirectoryStructureHost(),R=new e.Map,q=e.createCacheWithRedirects(),O=e.createCacheWithRedirects(),ve=e.createModuleResolutionCache(J(),E.getCanonicalFileName,void 0,q,O),ee=new e.Map,he=e.createCacheWithRedirects(),F=e.createTypeReferenceDirectiveResolutionCache(J(),E.getCanonicalFileName,void 0,ve.getPackageJsonInfoCache(),he),x=[".ts",".tsx",".js",".jsx",".json"],X=new e.Map,$=new e.Map,A=Q&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(Q,J())),y=A&&E.toPath(A),V=y!==void 0?y.split(e.directorySeparator).length:0,L=new e.Map;return{getModuleResolutionCache:function(){return ve},startRecordingFilesWithChangedResolutions:j,finishRecordingFilesWithChangedResolutions:H,startCachingPerDirectoryResolution:d,finishCachingPerDirectoryResolution:D,resolveModuleNames:We,getResolvedModuleWithFailedLookupLocationsFromCache:Fe,resolveTypeReferenceDirectives:ue,removeResolutionsFromProjectReferenceRedirects:ye,removeResolutionsOfFile:Ae,hasChangedAutomaticTypeDirectiveNames:function(){return T},invalidateResolutionOfFile:ir,invalidateResolutionsOfFailedLookupLocations:Br,setFilesWithInvalidatedNonRelativeUnresolvedImports:Cr,createHasInvalidatedResolution:l,isFileWithInvalidatedNonRelativeUnresolvedImports:I,updateTypeRootsWatch:be,closeTypeRootsWatch:Ne,clear:U};function P(ur){return ur.resolvedModule}function k(ur){return ur.resolvedTypeReferenceDirective}function Y(ur,yr){return ur===void 0||yr.length<=ur.length?!1:e.startsWith(yr,ur)&&yr[ur.length]===e.directorySeparator}function U(){e.clearMap($,e.closeFileWatcherOf),X.clear(),G.clear(),Ne(),R.clear(),ee.clear(),f.clear(),oe.length=0,K=void 0,b=void 0,se=void 0,d(),T=!1}function j(){N=[]}function H(){var ur=N;return N=void 0,ur}function I(ur){if(!m)return!1;var yr=m.get(ur);return!!yr&&!!yr.length}function l(ur){if(Br(),ur)return p=void 0,e.returnTrue;var yr=p;return p=void 0,function(Ir){return!!yr&&yr.has(Ir)||I(Ir)}}function d(){ve.clear(),F.clear(),G.forEach(He),G.clear()}function D(){m=void 0,d(),$.forEach(function(ur,yr){ur.refCount===0&&($.delete(yr),ur.watcher.close())}),T=!1}function fe(ur,yr,Ir,wr,Ur,ii,mi){var pe,or=e.resolveModuleName(ur,yr,Ir,wr,ve,Ur,mi);if(!E.getGlobalCache)return or;var qr=E.getGlobalCache();if(qr!==void 0&&!e.isExternalModuleNameRelative(ur)&&!(or.resolvedModule&&e.extensionIsTS(or.resolvedModule.extension))){var si=e.loadModuleFromGlobalCache(e.Debug.checkDefined(E.globalCacheResolutionModuleName)(ur),E.projectName,Ir,wr,qr,ve),Di=si.resolvedModule,wi=si.failedLookupLocations;if(Di)return or.resolvedModule=Di,(pe=or.failedLookupLocations).push.apply(pe,wi),or}return or}function g(ur,yr,Ir,wr,Ur,ii,mi){return e.resolveTypeReferenceDirective(ur,yr,Ir,wr,Ur,F,mi)}function ne(ur){var yr,Ir,wr,Ur=ur.names,ii=ur.containingFile,mi=ur.redirectedReference,pe=ur.cache,or=ur.perDirectoryCacheWithRedirects,qr=ur.loader,si=ur.getResolutionWithResolvedFileName,Di=ur.shouldRetryResolution,wi=ur.reusedNames,Xi=ur.logChanges,et=ur.containingSourceFile,Gi=ur.containingSourceFileMode,Wt=E.toPath(ii),Zt=pe.get(Wt)||pe.set(Wt,e.createModeAwareCache()).get(Wt),_r=e.getDirectoryPath(Wt),pi=or.getOrCreateMapOfCacheRedirects(mi),ae=pi.get(_r);ae||(ae=e.createModeAwareCache(),pi.set(_r,ae));for(var Xe=[],Jr=E.getCompilationSettings(),ti=Xi&&I(Wt),Ze=E.getCurrentProgram(),Sr=Ze&&Ze.getResolvedProjectReferenceToRedirect(ii),zr=Sr?!mi||mi.sourceFile.path!==Sr.sourceFile.path:!!mi,Wr=e.createModeAwareCache(),Je=0,xe=0,vr=Ur;xeV+1?{dir:wr.slice(0,V+1).join(e.directorySeparator),dirPath:Ir.slice(0,V+1).join(e.directorySeparator)}:{dir:A,dirPath:y,nonRecursive:!1}}return ge(e.getDirectoryPath(e.getNormalizedAbsolutePath(ur,J())),e.getDirectoryPath(yr))}function ge(ur,yr){for(;e.pathContainsNodeModules(yr);)ur=e.getDirectoryPath(ur),yr=e.getDirectoryPath(yr);if(e.isNodeModulesDirectory(yr))return C(e.getDirectoryPath(yr))?{dir:ur,dirPath:yr}:void 0;var Ir=!0,wr,Ur;if(y!==void 0)for(;!Y(yr,y);){var ii=e.getDirectoryPath(yr);if(ii===yr)break;Ir=!1,wr=yr,Ur=ur,yr=ii,ur=e.getDirectoryPath(ur)}return C(yr)?{dir:Ur||ur,dirPath:wr||yr,nonRecursive:Ir}:void 0}function Re(ur){return e.fileExtensionIsOneOf(ur,x)}function ze(ur,yr,Ir,wr){if(yr.refCount)yr.refCount++,e.Debug.assertIsDefined(yr.files);else{yr.refCount=1,e.Debug.assert(e.length(yr.files)===0),e.isExternalModuleNameRelative(ur)?Ee(yr):G.add(ur,yr);var Ur=wr(yr);Ur&&Ur.resolvedFileName&&f.add(E.toPath(Ur.resolvedFileName),yr)}(yr.files||(yr.files=[])).push(Ir)}function Ee(ur){e.Debug.assert(!!ur.refCount);var yr=ur.failedLookupLocations;if(!!yr.length){oe.push(ur);for(var Ir=!1,wr=0,Ur=yr;wr1),X.set(qr,wi-1))),Di===y?ii=!0:_e(Di)}}ii&&_e(y)}}}function _e(ur){var yr=$.get(ur);yr.refCount--}function we(ur,yr,Ir){return E.watchDirectoryOfFailedLookupLocation(ur,function(wr){var Ur=E.toPath(wr);ie&&ie.addOrDeleteFileOrDirectory(wr,Ur),Ye(Ur,yr===Ur)},Ir?0:1)}function de(ur,yr,Ir){var wr=ur.get(yr);wr&&(wr.forEach(function(Ur){return Ie(Ur,yr,Ir)}),ur.delete(yr))}function ye(ur){if(!!e.fileExtensionIs(ur,".json")){var yr=E.getCurrentProgram();if(!!yr){var Ir=yr.getResolvedProjectReferenceByPath(ur);!Ir||Ir.commandLine.fileNames.forEach(function(wr){return Ae(E.toPath(wr))})}}}function Ae(ur){de(R,ur,P),de(ee,ur,k)}function er(ur,yr){if(!ur)return!1;for(var Ir=!1,wr=0,Ur=ur;wr1&&ze.sort(O),ne.push.apply(ne,ze));var Ee=e.getDirectoryPath(ge);if(Ee===ge)return We=ge,"break";ge=Ee,We=ge},We,Fe=e.getDirectoryPath(I);fe.size!==0;){var Z=ue(Fe);if(Fe=We,Z==="break")break}if(fe.size){var Be=e.arrayFrom(fe.values());Be.length>1&&Be.sort(O),ne.push.apply(ne,Be)}return ne}function x(I,l){var d,D=(d=I.declarations)===null||d===void 0?void 0:d.find(function(ne){return e.isNonGlobalAmbientModule(ne)&&(!e.isExternalModuleAugmentation(ne)||!e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(ne.name)))});if(D)return D.name.text;var fe=e.mapDefined(I.declarations,function(ne){var ue,We,Fe,Z;if(!e.isModuleDeclaration(ne))return;var Be=Ee(ne);if(!(((ue=Be==null?void 0:Be.parent)===null||ue===void 0?void 0:ue.parent)&&e.isModuleBlock(Be.parent)&&e.isAmbientModule(Be.parent.parent)&&e.isSourceFile(Be.parent.parent.parent)))return;var ge=(Z=(Fe=(We=Be.parent.parent.symbol.exports)===null||We===void 0?void 0:We.get("export="))===null||Fe===void 0?void 0:Fe.valueDeclaration)===null||Z===void 0?void 0:Z.expression;if(!ge)return;var Re=l.getSymbolAtLocation(ge);if(!Re)return;var ze=(Re==null?void 0:Re.flags)&2097152?l.getAliasedSymbol(Re):Re;if(ze===ne.symbol)return Be.parent.parent;function Ee(He){for(;He.flags&4;)He=He.parent;return He}}),g=fe[0];if(g)return g.name.text}function X(I,l,d){for(var D in d)for(var fe=0,g=d[D];fe=Fe.length+Z.length&&e.startsWith(l,Fe)&&e.endsWith(l,Z)||!Z&&l===e.removeTrailingDirectorySeparator(Fe)){var Be=l.substr(Fe.length,l.length-Z.length-Fe.length);return D.replace("*",Be)}}else if(ue===l||ue===I)return D}}var $;(function(I){I[I.Exact=0]="Exact",I[I.Directory=1]="Directory",I[I.Pattern=2]="Pattern"})($||($={}));function A(I,l,d,D,fe,g,ne){if(ne===void 0&&(ne=0),typeof fe=="string"){var ue=e.getNormalizedAbsolutePath(e.combinePaths(d,fe),void 0),We=e.hasTSFileExtension(l)?e.removeFileExtension(l)+U(l,I):void 0;switch(ne){case 0:if(e.comparePaths(l,ue)===0||We&&e.comparePaths(We,ue)===0)return{moduleFileToTry:D};break;case 1:if(e.containsPath(ue,l)){var Fe=e.getRelativePathFromDirectory(ue,l,!1);return{moduleFileToTry:e.getNormalizedAbsolutePath(e.combinePaths(e.combinePaths(D,fe),Fe),void 0)}}break;case 2:var Z=ue.indexOf("*"),Be=ue.slice(0,Z),ge=ue.slice(Z+1);if(e.startsWith(l,Be)&&e.endsWith(l,ge)){var Re=l.slice(Be.length,l.length-ge.length);return{moduleFileToTry:D.replace("*",Re)}}if(We&&e.startsWith(We,Be)&&e.endsWith(We,ge)){var Re=We.slice(Be.length,We.length-ge.length);return{moduleFileToTry:D.replace("*",Re)}}break}}else{if(Array.isArray(fe))return e.forEach(fe,function(_e){return A(I,l,d,D,_e,g)});if(typeof fe=="object"&&fe!==null){if(e.allKeysStartWithDot(fe))return e.forEach(e.getOwnKeys(fe),function(_e){var we=e.getNormalizedAbsolutePath(e.combinePaths(D,_e),void 0),de=e.endsWith(_e,"/")?1:e.stringContains(_e,"*")?2:0;return A(I,l,d,we,fe[_e],g,de)});for(var ze=0,Ee=e.getOwnKeys(fe);ze=0||e.isApplicableVersionedTypesKey(g,He)){var rr=fe[He],Ie=A(I,l,d,D,rr,g);if(Ie)return Ie}}}}}function y(I,l,d,D,fe,g){var ne=P(l,I,D);if(ne!==void 0){var ue=P(d,I,D),We=ue!==void 0?e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(ue,ne,D)):ne;return e.getEmitModuleResolutionKind(g)===e.ModuleResolutionKind.NodeJs?k(We,fe,g):e.removeFileExtension(We)}}function V(I,l,d,D,fe,g,ne,ue){var We=I.path,Fe=I.isRedirect,Z=l.getCanonicalFileName,Be=l.sourceDirectory;if(!D.fileExists||!D.readFile)return;var ge=e.getNodeModulePathParts(We);if(!ge)return;var Re=We,ze=!1;if(!ne)for(var Ee=E(D,g,fe,d),He=ge.packageRootIndex,rr=void 0;;){var Ie=Ye(He),_e=Ie.moduleFileToTry,we=Ie.packageRootPath,de=Ie.blockedByExports,ye=Ie.verbatimFromExports;if(e.getEmitModuleResolutionKind(fe)!==e.ModuleResolutionKind.Classic){if(de)return;if(ye)return _e}if(we){Re=we,ze=!0;break}if(rr||(rr=_e),He=We.indexOf(e.directorySeparator,He+1),He===-1){Re=k(rr,Ee.ending,fe,D);break}}if(Fe&&!ze)return;var Ae=D.getGlobalTypingsCacheLocation&&D.getGlobalTypingsCacheLocation(),er=Z(Re.substring(0,ge.topLevelNodeModulesIndex));if(!(e.startsWith(Be,er)||Ae&&e.startsWith(Z(Ae),er)))return;var ir=Re.substring(ge.topLevelPackageNameIndex+1),Cr=e.getPackageNameFromTypesPackageName(ir);return e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Classic&&Cr===ir?void 0:Cr;function Ye(Br){var Er,Ne,n=We.substring(0,Br),lr=e.combinePaths(n,"package.json"),be=We,Ge=(Ne=(Er=D.getPackageJsonInfoCache)===null||Er===void 0?void 0:Er.call(D))===null||Ne===void 0?void 0:Ne.getPackageJsonInfo(lr);if(typeof Ge=="object"||Ge===void 0&&D.fileExists(lr)){var ur=(Ge==null?void 0:Ge.packageJsonContent)||JSON.parse(D.readFile(lr));if(e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.NodeNext){var yr=["node",ue||d.impliedNodeFormat===e.ModuleKind.ESNext?"import":"require","types"],Ir=ur.exports&&typeof ur.name=="string"?A(fe,We,n,e.getPackageNameFromTypesPackageName(ur.name),ur.exports,yr):void 0;if(Ir){var wr=e.hasTSFileExtension(Ir.moduleFileToTry)?{moduleFileToTry:e.removeFileExtension(Ir.moduleFileToTry)+U(Ir.moduleFileToTry,fe)}:Ir;return Ke(Ke({},wr),{verbatimFromExports:!0})}if(ur.exports)return{moduleFileToTry:We,blockedByExports:!0}}var Ur=ur.typesVersions?e.getPackageJsonTypesVersionsPaths(ur.typesVersions):void 0;if(Ur){var ii=We.slice(n.length+1),mi=X(e.removeFileExtension(ii),k(ii,0,fe),Ur.paths);mi!==void 0&&(be=e.combinePaths(n,mi))}var pe=ur.typings||ur.types||ur.main||"index.js";if(e.isString(pe)){var or=e.toPath(pe,n,Z);if(e.removeFileExtension(or)===e.removeFileExtension(Z(be)))return{packageRootPath:n,moduleFileToTry:be}}}else{var qr=Z(be.substring(ge.packageRootIndex+1));if(qr==="index.d.ts"||qr==="index.js"||qr==="index.ts"||qr==="index.tsx")return{moduleFileToTry:be,packageRootPath:n}}return{moduleFileToTry:be}}}function L(I,l){if(!!I.fileExists)for(var d=e.flatten(e.getSupportedExtensions({allowJs:!0},[{extension:"node",isMixedContent:!1},{extension:"json",isMixedContent:!1,scriptKind:6}])),D=0,fe=d;D1?f(j,U):"";return"".concat(Y).concat(e.flattenDiagnosticMessageText(l.messageText,Y)).concat(Y).concat(Y).concat(d)}e.getErrorSummaryText=oe;function f(P,k){var Y=P.filter(function(g,ne,ue){return ne===ue.findIndex(function(We){return(We==null?void 0:We.fileName)===(g==null?void 0:g.fileName)})});if(Y.length===0)return"";var U=function(g){return Math.log(g)*Math.LOG10E+1},j=Y.map(function(g){return[g,e.countWhere(P,function(ne){return ne.fileName===g.fileName})]}),H=j.reduce(function(g,ne){return Math.max(g,ne[1]||0)},0),I=e.Diagnostics.Errors_Files.message,l=I.split(" ")[0].length,d=Math.max(l,U(H)),D=Math.max(U(H)-l,0),fe="";return fe+=" ".repeat(D)+I+` +`,j.forEach(function(g){var ne=g[0],ue=g[1],We=Math.log(ue)*Math.LOG10E+1|0,Fe=We0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:fe.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}e.emitFilesAndReportErrorsAndGetExitStatus=ve,e.noopFileWatcher={close:e.noop},e.returnNoopFileWatcher=function(){return e.noopFileWatcher};function ee(P,k){P===void 0&&(P=e.sys);var Y=k||Q(P);return{onWatchStatusChange:Y,watchFile:e.maybeBind(P,P.watchFile)||e.returnNoopFileWatcher,watchDirectory:e.maybeBind(P,P.watchDirectory)||e.returnNoopFileWatcher,setTimeout:e.maybeBind(P,P.setTimeout)||e.noop,clearTimeout:e.maybeBind(P,P.clearTimeout)||e.noop}}e.createWatchHost=ee,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 he(P,k){var Y=P.trace?k.extendedDiagnostics?e.WatchLogLevel.Verbose:k.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,U=Y!==e.WatchLogLevel.None?function(H){return P.trace(H)}:e.noop,j=e.getWatchFactory(P,Y,U);return j.writeLog=U,j}e.createWatchFactory=he;function F(P,k,Y){Y===void 0&&(Y=P);var U=P.useCaseSensitiveFileNames(),j=e.memoize(function(){return P.getNewLine()});return{getSourceFile:function(I,l,d){var D;try{e.performance.mark("beforeIORead"),D=P.readFile(I,k().charset),e.performance.mark("afterIORead"),e.performance.measure("I/O Read","beforeIORead","afterIORead")}catch(fe){d&&d(fe.message),D=""}return D!==void 0?e.createSourceFile(I,D,l):void 0},getDefaultLibLocation:e.maybeBind(P,P.getDefaultLibLocation),getDefaultLibFileName:function(I){return P.getDefaultLibFileName(I)},writeFile:H,getCurrentDirectory:e.memoize(function(){return P.getCurrentDirectory()}),useCaseSensitiveFileNames:function(){return U},getCanonicalFileName:e.createGetCanonicalFileName(U),getNewLine:function(){return e.getNewLineCharacter(k(),j)},fileExists:function(I){return P.fileExists(I)},readFile:function(I){return P.readFile(I)},trace:e.maybeBind(P,P.trace),directoryExists:e.maybeBind(Y,Y.directoryExists),getDirectories:e.maybeBind(Y,Y.getDirectories),realpath:e.maybeBind(P,P.realpath),getEnvironmentVariable:e.maybeBind(P,P.getEnvironmentVariable)||function(){return""},createHash:e.maybeBind(P,P.createHash),readDirectory:e.maybeBind(P,P.readDirectory),disableUseFileVersionAsSignature:P.disableUseFileVersionAsSignature,storeFilesChangingSignatureDuringEmit:P.storeFilesChangingSignatureDuringEmit};function H(I,l,d,D){try{e.performance.mark("beforeIOWrite"),e.writeFileEnsuringDirectories(I,l,d,function(fe,g,ne){return P.writeFile(fe,g,ne)},function(fe){return P.createDirectory(fe)},function(fe){return P.directoryExists(fe)}),e.performance.mark("afterIOWrite"),e.performance.measure("I/O Write","beforeIOWrite","afterIOWrite")}catch(fe){D&&D(fe.message)}}}e.createCompilerHostFromProgramHost=F;function x(P,k){var Y=P.getSourceFile,U=e.maybeBind(k,k.createHash)||e.generateDjb2Hash;P.getSourceFile=function(){for(var j=[],H=0;Hbe?Ge:be}function le(be){return!!be&&!!be.buildOrder}e.isCircularBuildOrder=le;function N(be){return le(be)?be.buildOrder:be}e.getBuildOrderFromAnyBuildOrder=N;function p(be,Ge){return function(ur){var yr=Ge?"[".concat(e.formatColorAndReset(e.getLocaleTimeString(be),e.ForegroundColorEscapeSequences.Grey),"] "):"".concat(e.getLocaleTimeString(be)," - ");yr+="".concat(e.flattenDiagnosticMessageText(ur.messageText,be.newLine)).concat(be.newLine+be.newLine),be.write(yr)}}e.createBuilderStatusReporter=p;function m(be,Ge,ur,yr){var Ir=e.createProgramHost(be,Ge);return Ir.getModifiedTime=be.getModifiedTime?function(wr){return be.getModifiedTime(wr)}:e.returnUndefined,Ir.setModifiedTime=be.setModifiedTime?function(wr,Ur){return be.setModifiedTime(wr,Ur)}:e.noop,Ir.deleteFile=be.deleteFile?function(wr){return be.deleteFile(wr)}:e.noop,Ir.reportDiagnostic=ur||e.createDiagnosticReporter(be),Ir.reportSolutionBuilderStatus=yr||p(be),Ir.now=e.maybeBind(be,be.now),Ir}function G(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr);return wr.reportErrorSummary=Ir,wr}e.createSolutionBuilderHost=G;function oe(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr),Ur=e.createWatchHost(be,Ir);return e.copyProperties(wr,Ur),wr}e.createSolutionBuilderWithWatchHost=oe;function f(be){var Ge={};return e.commonOptionsWithBuild.forEach(function(ur){e.hasProperty(be,ur.name)&&(Ge[ur.name]=be[ur.name])}),Ge}function T(be,Ge,ur){return ye(!1,be,Ge,ur)}e.createSolutionBuilder=T;function K(be,Ge,ur,yr){return ye(!0,be,Ge,ur,yr)}e.createSolutionBuilderWithWatch=K;function b(be,Ge,ur,yr,Ir){var wr=Ge,Ur=Ge,ii=wr.getCurrentDirectory(),mi=e.createGetCanonicalFileName(wr.useCaseSensitiveFileNames()),pe=f(yr),or=e.createCompilerHostFromProgramHost(wr,function(){return Zt.projectCompilerOptions});e.setGetSourceFileAsHashVersioned(or,wr),or.getParsedCommandLine=function(_r){return q(Zt,_r,J(Zt,_r))},or.resolveModuleNames=e.maybeBind(wr,wr.resolveModuleNames),or.resolveTypeReferenceDirectives=e.maybeBind(wr,wr.resolveTypeReferenceDirectives);var qr=or.resolveModuleNames?void 0:e.createModuleResolutionCache(ii,mi),si=or.resolveTypeReferenceDirectives?void 0:e.createTypeReferenceDirectiveResolutionCache(ii,mi,void 0,qr==null?void 0:qr.getPackageJsonInfoCache());if(!or.resolveModuleNames){var Di=function(_r,pi,ae,Xe){return e.resolveModuleName(_r,ae,Zt.projectCompilerOptions,or,qr,Xe,pi).resolvedModule};or.resolveModuleNames=function(_r,pi,ae,Xe,Jr,ti){return e.loadWithModeAwareCache(e.Debug.checkEachDefined(_r),e.Debug.checkDefined(ti),pi,Xe,Di)},or.getModuleResolutionCache=function(){return qr}}if(!or.resolveTypeReferenceDirectives){var wi=function(_r,pi,ae,Xe){return e.resolveTypeReferenceDirective(_r,pi,Zt.projectCompilerOptions,or,ae,Zt.typeReferenceDirectiveResolutionCache,Xe).resolvedTypeReferenceDirective};or.resolveTypeReferenceDirectives=function(_r,pi,ae,Xe,Jr){return e.loadWithTypeDirectiveCache(e.Debug.checkEachDefined(_r),pi,ae,Jr,wi)}}var Xi=e.createWatchFactory(Ur,yr),et=Xi.watchFile,Gi=Xi.watchDirectory,Wt=Xi.writeLog,Zt={host:wr,hostWithWatch:Ur,currentDirectory:ii,getCanonicalFileName:mi,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(wr),write:e.maybeBind(wr,wr.trace),options:yr,baseCompilerOptions:pe,rootNames:ur,baseWatchOptions:Ir,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:or,moduleResolutionCache:qr,typeReferenceDirectiveResolutionCache:si,buildOrder:void 0,readFileWithCache:function(_r){return wr.readFile(_r)},projectCompilerOptions:pe,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:be,currentInvalidatedProject:void 0,watch:be,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:et,watchDirectory:Gi,writeLog:Wt};return Zt}function se(be,Ge){return e.toPath(Ge,be.currentDirectory,be.getCanonicalFileName)}function J(be,Ge){var ur=be.resolvedConfigFilePaths,yr=ur.get(Ge);if(yr!==void 0)return yr;var Ir=se(be,Ge);return ur.set(Ge,Ir),Ir}function ie(be){return!!be.options}function R(be,Ge){var ur=be.configFileCache.get(Ge);return ur&&ie(ur)?ur:void 0}function q(be,Ge,ur){var yr=be.configFileCache,Ir=yr.get(ur);if(Ir)return ie(Ir)?Ir:void 0;var wr,Ur=be.parseConfigFileHost,ii=be.baseCompilerOptions,mi=be.baseWatchOptions,pe=be.extendedConfigCache,or=be.host,qr;return or.getParsedCommandLine?(qr=or.getParsedCommandLine(Ge),qr||(wr=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,Ge))):(Ur.onUnRecoverableConfigFileDiagnostic=function(si){return wr=si},qr=e.getParsedCommandLineOfConfigFile(Ge,ii,Ur,pe,mi),Ur.onUnRecoverableConfigFileDiagnostic=e.noop),yr.set(ur,qr||wr),qr}function O(be,Ge){return e.resolveConfigFileProjectName(e.resolvePath(be.currentDirectory,Ge))}function ve(be,Ge){for(var ur=new e.Map,yr=new e.Map,Ir=[],wr,Ur,ii=0,mi=Ge;iiSr)}}}function U(be,Ge,ur){var yr=be.options;return Ge.type!==e.UpToDateStatusType.OutOfDateWithPrepend||yr.force?!0:ur.fileNames.length===0||!!e.getConfigFileParsingDiagnostics(ur).length||!e.isIncrementalCompilation(ur.options)}function j(be,Ge,ur){if(!!be.projectPendingBuild.size&&!le(Ge)){if(be.currentInvalidatedProject)return e.arrayIsEqualTo(be.currentInvalidatedProject.buildOrder,Ge)?be.currentInvalidatedProject:void 0;for(var yr=be.options,Ir=be.projectPendingBuild,wr=0;wrwr&&(Ir=pe,wr=or)}}if(!Ge.fileNames.length&&!e.canJsonReportNoInputFiles(Ge.raw))return{type:e.UpToDateStatusType.ContainerOnly};var qr=e.getAllProjectOutputs(Ge,!Ur.useCaseSensitiveFileNames()),si="(none)",Di=C,wi="(none)",Xi=a,et,Gi=a,Wt=!1;if(!yr)for(var Zt=0,_r=qr;Zt<_r.length;Zt++){var pi=_r[Zt];if(!Ur.fileExists(pi)){et=pi;break}var ae=e.getModifiedTime(Ur,pi);if(aeXi&&(Xi=ae,wi=pi),e.isDeclarationFileName(pi)){var Xe=e.getModifiedTime(Ur,pi);Gi=Q(Gi,Xe)}}var Jr=!1,ti=!1,Ze;if(Ge.projectReferences){be.projectStatus.set(ur,{type:e.UpToDateStatusType.ComputingUpstream});for(var Sr=0,zr=Ge.projectReferences;Sr=0}C.hasArgument=B;function E(le){var N=e.sys.args.indexOf(le);return N>=0&&Nm)return 2;if(K.charCodeAt(0)===46)return 3;if(K.charCodeAt(0)===95)return 4;if(b){var se=/^@([^/]+)\/([^/]+)$/.exec(K);if(se){var J=oe(se[1],!1);if(J!==0)return{name:se[1],isScopeName:!0,result:J};var ie=oe(se[2],!1);return ie!==0?{name:se[2],isScopeName:!1,result:ie}:0}}return encodeURIComponent(K)!==K?5:0}function f(K,b){return typeof K=="object"?T(b,K.result,K.name,K.isScopeName):T(b,K,b,!1)}C.renderPackageNameValidationFailure=f;function T(K,b,se,J){var ie=J?"Scope":"Package";switch(b){case 1:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' cannot be empty");case 2:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' should be less than ").concat(m," characters");case 3:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' cannot start with '.'");case 4:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' cannot start with '_'");case 5:return"'".concat(K,"':: ").concat(ie," name '").concat(se,"' contains non URI safe characters");case 0:return e.Debug.fail();default:throw e.Debug.assertNever(b)}}})(a=e.JsTyping||(e.JsTyping={}))})(ke||(ke={}));var ke;(function(e){var a;(function(O){var ve=function(){function he(F){this.text=F}return he.prototype.getText=function(F,x){return F===0&&x===this.text.length?this.text:this.text.substring(F,x)},he.prototype.getLength=function(){return this.text.length},he.prototype.getChangeRange=function(){},he}();function ee(he){return new ve(he)}O.fromString=ee})(a=e.ScriptSnapshot||(e.ScriptSnapshot={}));var C;(function(O){O[O.Dependencies=1]="Dependencies",O[O.DevDependencies=2]="DevDependencies",O[O.PeerDependencies=4]="PeerDependencies",O[O.OptionalDependencies=8]="OptionalDependencies",O[O.All=15]="All"})(C=e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={}));var w;(function(O){O[O.Off=0]="Off",O[O.On=1]="On",O[O.Auto=2]="Auto"})(w=e.PackageJsonAutoImportPreference||(e.PackageJsonAutoImportPreference={}));var B;(function(O){O[O.Semantic=0]="Semantic",O[O.PartialSemantic=1]="PartialSemantic",O[O.Syntactic=2]="Syntactic"})(B=e.LanguageServiceMode||(e.LanguageServiceMode={})),e.emptyOptions={};var E;(function(O){O.Original="original",O.TwentyTwenty="2020"})(E=e.SemanticClassificationFormat||(e.SemanticClassificationFormat={}));var Q;(function(O){O[O.Invoked=1]="Invoked",O[O.TriggerCharacter=2]="TriggerCharacter",O[O.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions"})(Q=e.CompletionTriggerKind||(e.CompletionTriggerKind={}));var le;(function(O){O.Type="Type",O.Parameter="Parameter",O.Enum="Enum"})(le=e.InlayHintKind||(e.InlayHintKind={}));var N;(function(O){O.none="none",O.definition="definition",O.reference="reference",O.writtenReference="writtenReference"})(N=e.HighlightSpanKind||(e.HighlightSpanKind={}));var p;(function(O){O[O.None=0]="None",O[O.Block=1]="Block",O[O.Smart=2]="Smart"})(p=e.IndentStyle||(e.IndentStyle={}));var m;(function(O){O.Ignore="ignore",O.Insert="insert",O.Remove="remove"})(m=e.SemicolonPreference||(e.SemicolonPreference={}));function G(O){return{indentSize:4,tabSize:4,newLineCharacter:O||` +`,convertTabsToSpaces:!0,indentStyle:p.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:m.Ignore,trimTrailingWhitespace:!0}}e.getDefaultFormatCodeSettings=G,e.testFormatSettings=G(` +`);var oe;(function(O){O[O.aliasName=0]="aliasName",O[O.className=1]="className",O[O.enumName=2]="enumName",O[O.fieldName=3]="fieldName",O[O.interfaceName=4]="interfaceName",O[O.keyword=5]="keyword",O[O.lineBreak=6]="lineBreak",O[O.numericLiteral=7]="numericLiteral",O[O.stringLiteral=8]="stringLiteral",O[O.localName=9]="localName",O[O.methodName=10]="methodName",O[O.moduleName=11]="moduleName",O[O.operator=12]="operator",O[O.parameterName=13]="parameterName",O[O.propertyName=14]="propertyName",O[O.punctuation=15]="punctuation",O[O.space=16]="space",O[O.text=17]="text",O[O.typeParameterName=18]="typeParameterName",O[O.enumMemberName=19]="enumMemberName",O[O.functionName=20]="functionName",O[O.regularExpressionLiteral=21]="regularExpressionLiteral",O[O.link=22]="link",O[O.linkName=23]="linkName",O[O.linkText=24]="linkText"})(oe=e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={}));var f;(function(O){O[O.None=0]="None",O[O.MayIncludeAutoImports=1]="MayIncludeAutoImports",O[O.IsImportStatementCompletion=2]="IsImportStatementCompletion",O[O.IsContinuation=4]="IsContinuation",O[O.ResolvedModuleSpecifiers=8]="ResolvedModuleSpecifiers",O[O.ResolvedModuleSpecifiersBeyondLimit=16]="ResolvedModuleSpecifiersBeyondLimit",O[O.MayIncludeMethodSnippets=32]="MayIncludeMethodSnippets"})(f=e.CompletionInfoFlags||(e.CompletionInfoFlags={}));var T;(function(O){O.Comment="comment",O.Region="region",O.Code="code",O.Imports="imports"})(T=e.OutliningSpanKind||(e.OutliningSpanKind={}));var K;(function(O){O[O.JavaScript=0]="JavaScript",O[O.SourceMap=1]="SourceMap",O[O.Declaration=2]="Declaration"})(K=e.OutputFileType||(e.OutputFileType={}));var b;(function(O){O[O.None=0]="None",O[O.InMultiLineCommentTrivia=1]="InMultiLineCommentTrivia",O[O.InSingleQuoteStringLiteral=2]="InSingleQuoteStringLiteral",O[O.InDoubleQuoteStringLiteral=3]="InDoubleQuoteStringLiteral",O[O.InTemplateHeadOrNoSubstitutionTemplate=4]="InTemplateHeadOrNoSubstitutionTemplate",O[O.InTemplateMiddleOrTail=5]="InTemplateMiddleOrTail",O[O.InTemplateSubstitutionPosition=6]="InTemplateSubstitutionPosition"})(b=e.EndOfLineState||(e.EndOfLineState={}));var se;(function(O){O[O.Punctuation=0]="Punctuation",O[O.Keyword=1]="Keyword",O[O.Operator=2]="Operator",O[O.Comment=3]="Comment",O[O.Whitespace=4]="Whitespace",O[O.Identifier=5]="Identifier",O[O.NumberLiteral=6]="NumberLiteral",O[O.BigIntLiteral=7]="BigIntLiteral",O[O.StringLiteral=8]="StringLiteral",O[O.RegExpLiteral=9]="RegExpLiteral"})(se=e.TokenClass||(e.TokenClass={}));var J;(function(O){O.unknown="",O.warning="warning",O.keyword="keyword",O.scriptElement="script",O.moduleElement="module",O.classElement="class",O.localClassElement="local class",O.interfaceElement="interface",O.typeElement="type",O.enumElement="enum",O.enumMemberElement="enum member",O.variableElement="var",O.localVariableElement="local var",O.functionElement="function",O.localFunctionElement="local function",O.memberFunctionElement="method",O.memberGetAccessorElement="getter",O.memberSetAccessorElement="setter",O.memberVariableElement="property",O.constructorImplementationElement="constructor",O.callSignatureElement="call",O.indexSignatureElement="index",O.constructSignatureElement="construct",O.parameterElement="parameter",O.typeParameterElement="type parameter",O.primitiveType="primitive type",O.label="label",O.alias="alias",O.constElement="const",O.letElement="let",O.directory="directory",O.externalModuleName="external module name",O.jsxAttribute="JSX attribute",O.string="string",O.link="link",O.linkName="link name",O.linkText="link text"})(J=e.ScriptElementKind||(e.ScriptElementKind={}));var ie;(function(O){O.none="",O.publicMemberModifier="public",O.privateMemberModifier="private",O.protectedMemberModifier="protected",O.exportedModifier="export",O.ambientModifier="declare",O.staticModifier="static",O.abstractModifier="abstract",O.optionalModifier="optional",O.deprecatedModifier="deprecated",O.dtsModifier=".d.ts",O.tsModifier=".ts",O.tsxModifier=".tsx",O.jsModifier=".js",O.jsxModifier=".jsx",O.jsonModifier=".json",O.dmtsModifier=".d.mts",O.mtsModifier=".mts",O.mjsModifier=".mjs",O.dctsModifier=".d.cts",O.ctsModifier=".cts",O.cjsModifier=".cjs"})(ie=e.ScriptElementKindModifier||(e.ScriptElementKindModifier={}));var R;(function(O){O.comment="comment",O.identifier="identifier",O.keyword="keyword",O.numericLiteral="number",O.bigintLiteral="bigint",O.operator="operator",O.stringLiteral="string",O.whiteSpace="whitespace",O.text="text",O.punctuation="punctuation",O.className="class name",O.enumName="enum name",O.interfaceName="interface name",O.moduleName="module name",O.typeParameterName="type parameter name",O.typeAliasName="type alias name",O.parameterName="parameter name",O.docCommentTagName="doc comment tag name",O.jsxOpenTagName="jsx open tag name",O.jsxCloseTagName="jsx close tag name",O.jsxSelfClosingTagName="jsx self closing tag name",O.jsxAttribute="jsx attribute",O.jsxText="jsx text",O.jsxAttributeStringLiteralValue="jsx attribute string literal value"})(R=e.ClassificationTypeNames||(e.ClassificationTypeNames={}));var q;(function(O){O[O.comment=1]="comment",O[O.identifier=2]="identifier",O[O.keyword=3]="keyword",O[O.numericLiteral=4]="numericLiteral",O[O.operator=5]="operator",O[O.stringLiteral=6]="stringLiteral",O[O.regularExpressionLiteral=7]="regularExpressionLiteral",O[O.whiteSpace=8]="whiteSpace",O[O.text=9]="text",O[O.punctuation=10]="punctuation",O[O.className=11]="className",O[O.enumName=12]="enumName",O[O.interfaceName=13]="interfaceName",O[O.moduleName=14]="moduleName",O[O.typeParameterName=15]="typeParameterName",O[O.typeAliasName=16]="typeAliasName",O[O.parameterName=17]="parameterName",O[O.docCommentTagName=18]="docCommentTagName",O[O.jsxOpenTagName=19]="jsxOpenTagName",O[O.jsxCloseTagName=20]="jsxCloseTagName",O[O.jsxSelfClosingTagName=21]="jsxSelfClosingTagName",O[O.jsxAttribute=22]="jsxAttribute",O[O.jsxText=23]="jsxText",O[O.jsxAttributeStringLiteralValue=24]="jsxAttributeStringLiteralValue",O[O.bigintLiteral=25]="bigintLiteral"})(q=e.ClassificationType||(e.ClassificationType={}))})(ke||(ke={}));var ke;(function(e){e.scanner=e.createScanner(99,!0);var a;(function(Se){Se[Se.None=0]="None",Se[Se.Value=1]="Value",Se[Se.Type=2]="Type",Se[Se.Namespace=4]="Namespace",Se[Se.All=7]="All"})(a=e.SemanticMeaning||(e.SemanticMeaning={}));function C(Se){switch(Se.kind){case 254:return e.isInJSFile(Se)&&e.getJSDocEnumTag(Se)?7:1;case 164:case 203:case 167:case 166:case 296:case 297:case 169:case 168:case 171:case 172:case 173:case 256:case 213:case 214:case 292:case 285:return 1;case 163:case 258:case 259:case 182:return 2;case 345:return Se.name===void 0?3:2;case 299:case 257:return 3;case 261:return e.isAmbientModule(Se)||e.getModuleInstanceState(Se)===1?5:4;case 260:case 269:case 270:case 265:case 266:case 271:case 272:return 7;case 305:return 5}return 7}e.getMeaningFromDeclaration=C;function w(Se){Se=Br(Se);var hr=Se.parent;return Se.kind===305?1:e.isExportAssignment(hr)||e.isExportSpecifier(hr)||e.isExternalModuleReference(hr)||e.isImportSpecifier(hr)||e.isImportClause(hr)||e.isImportEqualsDeclaration(hr)&&Se===hr.name?7:E(Se)?B(Se):e.isDeclarationName(Se)?C(hr):e.isEntityName(Se)&&e.findAncestor(Se,e.or(e.isJSDocNameReference,e.isJSDocLinkLike,e.isJSDocMemberName))?7:p(Se)?2:Q(Se)?4:e.isTypeParameterDeclaration(hr)?(e.Debug.assert(e.isJSDocTemplateTag(hr.parent)),2):e.isLiteralTypeNode(hr)?3:1}e.getMeaningFromLocation=w;function B(Se){var hr=Se.kind===161?Se:e.isQualifiedName(Se.parent)&&Se.parent.right===Se?Se.parent:void 0;return hr&&hr.parent.kind===265?7:4}function E(Se){for(;Se.parent.kind===161;)Se=Se.parent;return e.isInternalModuleImportEqualsDeclaration(Se.parent)&&Se.parent.moduleReference===Se}e.isInRightSideOfInternalImportEqualsDeclaration=E;function Q(Se){return le(Se)||N(Se)}function le(Se){var hr=Se,Or=!0;if(hr.parent.kind===161){for(;hr.parent&&hr.parent.kind===161;)hr=hr.parent;Or=hr.right===Se}return hr.parent.kind===178&&!Or}function N(Se){var hr=Se,Or=!0;if(hr.parent.kind===206){for(;hr.parent&&hr.parent.kind===206;)hr=hr.parent;Or=hr.name===Se}if(!Or&&hr.parent.kind===228&&hr.parent.parent.kind===291){var ki=hr.parent.parent.parent;return ki.kind===257&&hr.parent.parent.token===117||ki.kind===258&&hr.parent.parent.token===94}return!1}function p(Se){switch(e.isRightSideOfQualifiedNameOrPropertyAccess(Se)&&(Se=Se.parent),Se.kind){case 108:return!e.isExpressionNode(Se);case 192:return!0}switch(Se.parent.kind){case 178:return!0;case 200:return!Se.parent.isTypeOf;case 228:return e.isPartOfTypeNode(Se.parent)}return!1}function m(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallExpression,b,hr,Or)}e.isCallExpressionTarget=m;function G(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isNewExpression,b,hr,Or)}e.isNewExpressionTarget=G;function oe(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallOrNewExpression,b,hr,Or)}e.isCallOrNewExpressionTarget=oe;function f(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isTaggedTemplateExpression,se,hr,Or)}e.isTaggedTemplateTag=f;function T(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isDecorator,b,hr,Or)}e.isDecoratorTarget=T;function K(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isJsxOpeningLikeElement,J,hr,Or)}e.isJsxOpeningLikeElementTagName=K;function b(Se){return Se.expression}function se(Se){return Se.tag}function J(Se){return Se.tagName}function ie(Se,hr,Or,ki,dt){var la=ki?q(Se):R(Se);return dt&&(la=e.skipOuterExpressions(la)),!!la&&!!la.parent&&hr(la.parent)&&Or(la.parent)===la}function R(Se){return $(Se)?Se.parent:Se}e.climbPastPropertyAccess=R;function q(Se){return $(Se)||A(Se)?Se.parent:Se}e.climbPastPropertyOrElementAccess=q;function O(Se,hr){for(;Se;){if(Se.kind===250&&Se.label.escapedText===hr)return Se.label;Se=Se.parent}}e.getTargetLabel=O;function ve(Se,hr){return e.isPropertyAccessExpression(Se.expression)?Se.expression.name.text===hr:!1}e.hasPropertyAccessExpressionWithName=ve;function ee(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isBreakOrContinueStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isJumpStatementTarget=ee;function he(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isLabeledStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isLabelOfLabeledStatement=he;function F(Se){return he(Se)||ee(Se)}e.isLabelName=F;function x(Se){var hr;return((hr=e.tryCast(Se.parent,e.isJSDocTag))===null||hr===void 0?void 0:hr.tagName)===Se}e.isTagName=x;function X(Se){var hr;return((hr=e.tryCast(Se.parent,e.isQualifiedName))===null||hr===void 0?void 0:hr.right)===Se}e.isRightSideOfQualifiedName=X;function $(Se){var hr;return((hr=e.tryCast(Se.parent,e.isPropertyAccessExpression))===null||hr===void 0?void 0:hr.name)===Se}e.isRightSideOfPropertyAccess=$;function A(Se){var hr;return((hr=e.tryCast(Se.parent,e.isElementAccessExpression))===null||hr===void 0?void 0:hr.argumentExpression)===Se}e.isArgumentExpressionOfElementAccess=A;function y(Se){var hr;return((hr=e.tryCast(Se.parent,e.isModuleDeclaration))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfModuleDeclaration=y;function V(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isFunctionLike))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfFunctionDeclaration=V;function L(Se){switch(Se.parent.kind){case 167:case 166:case 296:case 299:case 169:case 168:case 172:case 173:case 261:return e.getNameOfDeclaration(Se.parent)===Se;case 207:return Se.parent.argumentExpression===Se;case 162:return!0;case 196:return Se.parent.parent.kind===194;default:return!1}}e.isLiteralNameOfPropertyDeclarationOrIndexAccess=L;function P(Se){return e.isExternalModuleImportEqualsDeclaration(Se.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(Se.parent.parent)===Se}e.isExpressionOfExternalModuleImportEqualsDeclaration=P;function k(Se){for(e.isJSDocTypeAlias(Se)&&(Se=Se.parent.parent);;){if(Se=Se.parent,!Se)return;switch(Se.kind){case 305:case 169:case 168:case 256:case 213:case 172:case 173:case 257:case 258:case 260:case 261:return Se}}}e.getContainerNode=k;function Y(Se){switch(Se.kind){case 305:return e.isExternalModule(Se)?"module":"script";case 261:return"module";case 257:case 226:return"class";case 258:return"interface";case 259:case 338:case 345:return"type";case 260:return"enum";case 254:return wa(Se);case 203:return wa(e.getRootDeclaration(Se));case 214:case 256:case 213:return"function";case 172:return"getter";case 173:return"setter";case 169:case 168:return"method";case 296:var hr=Se.initializer;return e.isFunctionLike(hr)?"method":"property";case 167:case 166:case 297:case 298:return"property";case 176:return"index";case 175:return"construct";case 174:return"call";case 171:case 170:return"constructor";case 163:return"type parameter";case 299:return"enum member";case 164:return e.hasSyntacticModifier(Se,16476)?"property":"parameter";case 265:case 270:case 275:case 268:case 274:return"alias";case 221:var Or=e.getAssignmentDeclarationKind(Se),ki=Se.right;switch(Or){case 7:case 8:case 9:case 0:return"";case 1:case 2:var dt=Y(ki);return dt===""?"const":dt;case 3:return e.isFunctionExpression(ki)?"method":"property";case 4:return"property";case 5:return e.isFunctionExpression(ki)?"method":"property";case 6:return"local class";default:return e.assertType(Or),""}case 79:return e.isImportClause(Se.parent)?"alias":"";case 271:var la=Y(Se.expression);return la===""?"const":la;default:return""}function wa(On){return e.isVarConst(On)?"const":e.isLet(On)?"let":"var"}}e.getNodeKind=Y;function U(Se){switch(Se.kind){case 108:return!0;case 79:return e.identifierIsThisKeyword(Se)&&Se.parent.kind===164;default:return!1}}e.isThis=U;var j=/^\/\/\/\s*=Or.end}e.startEndContainsRange=fe;function g(Se,hr,Or){return Se.pos<=hr&&Se.end>=Or}e.rangeContainsStartEnd=g;function ne(Se,hr,Or){return We(Se.pos,Se.end,hr,Or)}e.rangeOverlapsWithStartEnd=ne;function ue(Se,hr,Or,ki){return We(Se.getStart(hr),Se.end,Or,ki)}e.nodeOverlapsWithStartEnd=ue;function We(Se,hr,Or,ki){var dt=Math.max(Se,Or),la=Math.min(hr,ki);return dthr?1:jo(po[$n])?po[$n-1]&&jo(po[$n-1])?1:0:ki&&Zo===hr&&po[$n-1]&&po[$n-1].getEnd()===hr&&jo(po[$n-1])?1:-1});return wa?{value:wa}:Gn>=0&&po[Gn]?(la=po[Gn],"continue-outer"):{value:la}};e:for(;;){var No=On();if(typeof No=="object")return No.value;switch(No){case"continue-outer":continue e}}function jo(po){var Gn=Or?po.getFullStart():po.getStart(Se,!0);if(Gn>hr)return!1;var $n=po.getEnd();if(hr<$n||hr===$n&&(po.kind===1||dt))return!0;if(ki&&$n===hr){var Ho=Ir(hr,Se,po);if(Ho&&ki(Ho))return wa=Ho,!0}return!1}}function Ge(Se,hr){for(var Or=lr(Se,hr);or(Or);){var ki=yr(Or,Or.parent,Se);if(!ki)return;Or=ki}return Or}e.findFirstNonJsxWhitespaceToken=Ge;function ur(Se,hr){var Or=lr(Se,hr);return e.isToken(Or)&&hr>Or.getStart(Se)&&hrSe.end||la.pos===Se.end;return wa&&pi(la,Or)?ki(la):void 0})}}e.findNextToken=yr;function Ir(Se,hr,Or,ki){var dt=la(Or||hr);return e.Debug.assert(!(dt&&or(dt))),dt;function la(wa){if(wr(wa)&&wa.kind!==1)return wa;var On=wa.getChildren(hr),No=e.binarySearchKey(On,Se,function(Zo,Es){return Es},function(Zo,Es){return Se=On[Zo-1].end?0:1:-1});if(No>=0&&On[No]){var jo=On[No];if(Se=Se||!pi(jo,hr)||or(jo);if(Gn){var $n=ii(On,No,hr,wa.kind);return $n&&Ur($n,hr)}else return la(jo)}}e.Debug.assert(Or!==void 0||wa.kind===305||wa.kind===1||e.isJSDocCommentContainingNode(wa));var Ho=ii(On,On.length,hr,wa.kind);return Ho&&Ur(Ho,hr)}}e.findPrecedingToken=Ir;function wr(Se){return e.isToken(Se)&&!or(Se)}function Ur(Se,hr){if(wr(Se))return Se;var Or=Se.getChildren(hr);if(Or.length===0)return Se;var ki=ii(Or,Or.length,hr,Se.kind);return ki&&Ur(ki,hr)}function ii(Se,hr,Or,ki){for(var dt=hr-1;dt>=0;dt--){var la=Se[dt];if(or(la))dt===0&&(ki===11||ki===279)&&e.Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");else if(pi(Se[dt],Or))return Se[dt]}}function mi(Se,hr,Or){if(Or===void 0&&(Or=Ir(hr,Se)),Or&&e.isStringTextContainingNode(Or)){var ki=Or.getStart(Se),dt=Or.getEnd();if(kiOr.getStart(Se)}e.isInTemplateString=qr;function si(Se,hr){var Or=lr(Se,hr);return!!(e.isJsxText(Or)||Or.kind===18&&e.isJsxExpression(Or.parent)&&e.isJsxElement(Or.parent.parent)||Or.kind===29&&e.isJsxOpeningLikeElement(Or.parent)&&e.isJsxElement(Or.parent.parent))}e.isInJSXText=si;function Di(Se,hr){function Or(ki){for(;ki;)if(ki.kind>=279&&ki.kind<=288||ki.kind===11||ki.kind===29||ki.kind===31||ki.kind===79||ki.kind===19||ki.kind===18||ki.kind===43)ki=ki.parent;else if(ki.kind===278){if(hr>ki.getStart(Se))return!0;ki=ki.parent}else return!1;return!1}return Or(lr(Se,hr))}e.isInsideJsxElement=Di;function wi(Se,hr,Or){var ki=e.tokenToString(Se.kind),dt=e.tokenToString(hr),la=Se.getFullStart(),wa=Or.text.lastIndexOf(dt,la);if(wa!==-1){if(Or.text.lastIndexOf(ki,la-1)=hr})}e.getPossibleGenericSignatures=Gi;function Wt(Se,hr){if(hr.text.lastIndexOf("<",Se?Se.pos:hr.text.length)!==-1)for(var Or=Se,ki=0,dt=0;Or;){switch(Or.kind){case 29:if(Or=Ir(Or.getFullStart(),hr),Or&&Or.kind===28&&(Or=Ir(Or.getFullStart(),hr)),!Or||!e.isIdentifier(Or))return;if(!ki)return e.isDeclarationName(Or)?void 0:{called:Or,nTypeArguments:dt};ki--;break;case 49:ki=3;break;case 48:ki=2;break;case 31:ki++;break;case 19:if(Or=wi(Or,18,hr),!Or)return;break;case 21:if(Or=wi(Or,20,hr),!Or)return;break;case 23:if(Or=wi(Or,22,hr),!Or)return;break;case 27:dt++;break;case 38:case 79:case 10:case 8:case 9:case 110:case 95:case 112:case 94:case 140:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(Or))break;return}Or=Ir(Or.getFullStart(),hr)}}e.getPossibleTypeArgumentsInfo=Wt;function Zt(Se,hr,Or){return e.formatting.getRangeOfEnclosingComment(Se,hr,void 0,Or)}e.isInComment=Zt;function _r(Se,hr){var Or=lr(Se,hr);return!!e.findAncestor(Or,e.isJSDoc)}e.hasDocComment=_r;function pi(Se,hr){return Se.kind===1?!!Se.jsDoc:Se.getWidth(hr)!==0}function ae(Se,hr){hr===void 0&&(hr=0);var Or=[],ki=e.isDeclaration(Se)?e.getCombinedNodeFlagsAlwaysIncludeJSDoc(Se)&~hr:0;return ki&8&&Or.push("private"),ki&16&&Or.push("protected"),ki&4&&Or.push("public"),(ki&32||e.isClassStaticBlockDeclaration(Se))&&Or.push("static"),ki&128&&Or.push("abstract"),ki&1&&Or.push("export"),ki&8192&&Or.push("deprecated"),Se.flags&16777216&&Or.push("declare"),Se.kind===271&&Or.push("export"),Or.length>0?Or.join(","):""}e.getNodeModifiers=ae;function Xe(Se){if(Se.kind===178||Se.kind===208)return Se.typeArguments;if(e.isFunctionLike(Se)||Se.kind===257||Se.kind===258)return Se.typeParameters}e.getTypeArgumentOrTypeParameterList=Xe;function Jr(Se){return Se===2||Se===3}e.isComment=Jr;function ti(Se){return!!(Se===10||Se===13||e.isTemplateLiteralKind(Se))}e.isStringOrRegularExpressionOrTemplateLiteral=ti;function Ze(Se){return 18<=Se&&Se<=78}e.isPunctuation=Ze;function Sr(Se,hr,Or){return e.isTemplateLiteralKind(Se.kind)&&Se.getStart(Or)=2||!!Se.noEmit}e.compilerOptionsIndicateEsModules=xt;function ut(Se,hr){return{fileExists:function(Or){return Se.fileExists(Or)},getCurrentDirectory:function(){return hr.getCurrentDirectory()},readFile:e.maybeBind(hr,hr.readFile),useCaseSensitiveFileNames:e.maybeBind(hr,hr.useCaseSensitiveFileNames),getSymlinkCache:e.maybeBind(hr,hr.getSymlinkCache)||Se.getSymlinkCache,getModuleSpecifierCache:e.maybeBind(hr,hr.getModuleSpecifierCache),getPackageJsonInfoCache:function(){var Or;return(Or=Se.getModuleResolutionCache())===null||Or===void 0?void 0:Or.getPackageJsonInfoCache()},getGlobalTypingsCacheLocation:e.maybeBind(hr,hr.getGlobalTypingsCacheLocation),redirectTargetsMap:Se.redirectTargetsMap,getProjectReferenceRedirect:function(Or){return Se.getProjectReferenceRedirect(Or)},isSourceOfProjectReferenceRedirect:function(Or){return Se.isSourceOfProjectReferenceRedirect(Or)},getNearestAncestorDirectoryWithPackageJson:e.maybeBind(hr,hr.getNearestAncestorDirectoryWithPackageJson),getFileIncludeReasons:function(){return Se.getFileIncludeReasons()}}}e.createModuleSpecifierResolutionHost=ut;function Dt(Se,hr){return Ke(Ke({},ut(Se,hr)),{getCommonSourceDirectory:function(){return Se.getCommonSourceDirectory()}})}e.getModuleSpecifierResolverHost=Dt;function Rt(Se){return Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionRespectsExports=Rt;function Ii(Se){return Se===e.ModuleResolutionKind.NodeJs||Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionUsesNodeModules=Ii;function Ki(Se,hr,Or,ki){return Se||hr&&hr.length?Fi(Se,hr,Or,ki):void 0}e.makeImportIfNecessary=Ki;function Fi(Se,hr,Or,ki,dt){return e.factory.createImportDeclaration(void 0,void 0,Se||hr?e.factory.createImportClause(!!dt,Se,hr&&hr.length?e.factory.createNamedImports(hr):void 0):void 0,typeof Or=="string"?ui(Or,ki):Or,void 0)}e.makeImport=Fi;function ui(Se,hr){return e.factory.createStringLiteral(Se,hr===0)}e.makeStringLiteral=ui;var Bt;(function(Se){Se[Se.Single=0]="Single",Se[Se.Double=1]="Double"})(Bt=e.QuotePreference||(e.QuotePreference={}));function wt(Se,hr){return e.isStringDoubleQuoted(Se,hr)?1:0}e.quotePreferenceFromString=wt;function na(Se,hr){if(hr.quotePreference&&hr.quotePreference!=="auto")return hr.quotePreference==="single"?0:1;var Or=Se.imports&&e.find(Se.imports,function(ki){return e.isStringLiteral(ki)&&!e.nodeIsSynthesized(ki.parent)});return Or?wt(Or,Se):1}e.getQuotePreference=na;function Ai(Se){switch(Se){case 0:return"'";case 1:return'"';default:return e.Debug.assertNever(Se)}}e.getQuoteFromPreference=Ai;function Oi(Se){var hr=ji(Se);return hr===void 0?void 0:e.unescapeLeadingUnderscores(hr)}e.symbolNameNoDefault=Oi;function ji(Se){return Se.escapedName!=="default"?Se.escapedName:e.firstDefined(Se.declarations,function(hr){var Or=e.getNameOfDeclaration(hr);return Or&&Or.kind===79?Or.escapedText:void 0})}e.symbolEscapedNameNoDefault=ji;function Vi(Se){return e.isStringLiteralLike(Se)&&(e.isExternalModuleReference(Se.parent)||e.isImportDeclaration(Se.parent)||e.isRequireCall(Se.parent,!1)&&Se.parent.arguments[0]===Se||e.isImportCall(Se.parent)&&Se.parent.arguments[0]===Se)}e.isModuleSpecifierLike=Vi;function at(Se){return e.isBindingElement(Se)&&e.isObjectBindingPattern(Se.parent)&&e.isIdentifier(Se.name)&&!Se.propertyName}e.isObjectBindingElementWithoutPropertyName=at;function At(Se,hr){var Or=Se.getTypeAtLocation(hr.parent);return Or&&Se.getPropertyOfType(Or,hr.name.text)}e.getPropertySymbolFromBindingElement=At;function ba(Se,hr,Or){if(!!Se)for(;Se.parent;){if(e.isSourceFile(Se.parent)||!$a(Or,Se.parent,hr))return Se;Se=Se.parent}}e.getParentNodeInSpan=ba;function $a(Se,hr,Or){return e.textSpanContainsPosition(Se,hr.getStart(Or))&&hr.getEnd()<=e.textSpanEnd(Se)}function Qa(Se,hr){return Se.modifiers&&e.find(Se.modifiers,function(Or){return Or.kind===hr})}e.findModifier=Qa;function ai(Se,hr,Or,ki){var dt=e.isArray(Or)?Or[0]:Or,la=dt.kind===237?e.isRequireVariableStatement:e.isAnyImportSyntax,wa=e.filter(hr.statements,la),On=e.isArray(Or)?e.stableSort(Or,e.OrganizeImports.compareImportsOrRequireStatements):[Or];if(!wa.length)Se.insertNodesAtTopOfFile(hr,On,ki);else if(wa&&e.OrganizeImports.importsAreSorted(wa))for(var No=0,jo=On;NoSe&&Gn&&Gn!=="..."&&(e.isWhiteSpaceLike(Gn.charCodeAt(Gn.length-1))||hr.push(Pn(" ",e.SymbolDisplayPartKind.space)),hr.push(Pn("...",e.SymbolDisplayPartKind.punctuation))),hr},writeKeyword:function(Gn){return On(Gn,e.SymbolDisplayPartKind.keyword)},writeOperator:function(Gn){return On(Gn,e.SymbolDisplayPartKind.operator)},writePunctuation:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(Gn){return On(Gn,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(Gn){return On(Gn,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(Gn){return On(Gn,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:No,writeLine:jo,write:la,writeComment:la,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 ki},increaseIndent:function(){ki++},decreaseIndent:function(){ki--},clear:po,trackSymbol:function(){return!1},reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function wa(){if(!(dt>Se)&&Or){var Gn=e.getIndentString(ki);Gn&&(dt+=Gn.length,hr.push(Pn(Gn,e.SymbolDisplayPartKind.space))),Or=!1}}function On(Gn,$n){dt>Se||(wa(),dt+=Gn.length,hr.push(Pn(Gn,$n)))}function No(Gn,$n){dt>Se||(wa(),dt+=Gn.length,hr.push(Kn(Gn,$n)))}function jo(){dt>Se||(dt+=1,hr.push(Jn()),Or=!0)}function po(){hr=[],Or=!0,ki=0,dt=0}}function Kn(Se,hr){return Pn(Se,Or(hr));function Or(ki){var dt=ki.flags;return dt&3?Bi(ki)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName:dt&4||dt&32768||dt&65536?e.SymbolDisplayPartKind.propertyName:dt&8?e.SymbolDisplayPartKind.enumMemberName:dt&16?e.SymbolDisplayPartKind.functionName:dt&32?e.SymbolDisplayPartKind.className:dt&64?e.SymbolDisplayPartKind.interfaceName:dt&384?e.SymbolDisplayPartKind.enumName:dt&1536?e.SymbolDisplayPartKind.moduleName:dt&8192?e.SymbolDisplayPartKind.methodName:dt&262144?e.SymbolDisplayPartKind.typeParameterName:dt&524288||dt&2097152?e.SymbolDisplayPartKind.aliasName:e.SymbolDisplayPartKind.text}}e.symbolPart=Kn;function Pn(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[hr]}}e.displayPart=Pn;function eo(){return Pn(" ",e.SymbolDisplayPartKind.space)}e.spacePart=eo;function Rn(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.keyword)}e.keywordPart=Rn;function Da(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.punctuation)}e.punctuationPart=Da;function bo(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.operator)}e.operatorPart=bo;function Ro(Se){return Pn(Se,e.SymbolDisplayPartKind.parameterName)}e.parameterNamePart=Ro;function En(Se){return Pn(Se,e.SymbolDisplayPartKind.propertyName)}e.propertyNamePart=En;function Wn(Se){var hr=e.stringToToken(Se);return hr===void 0?to(Se):Rn(hr)}e.textOrKeywordPart=Wn;function to(Se){return Pn(Se,e.SymbolDisplayPartKind.text)}e.textPart=to;function Co(Se){return Pn(Se,e.SymbolDisplayPartKind.aliasName)}e.typeAliasNamePart=Co;function Ko(Se){return Pn(Se,e.SymbolDisplayPartKind.typeParameterName)}e.typeParameterNamePart=Ko;function Oo(Se){return Pn(Se,e.SymbolDisplayPartKind.linkText)}e.linkTextPart=Oo;function no(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[e.SymbolDisplayPartKind.linkName],target:{fileName:e.getSourceFileOfNode(hr).fileName,textSpan:Oe(hr)}}}e.linkNamePart=no;function $o(Se){return Pn(Se,e.SymbolDisplayPartKind.link)}e.linkPart=$o;function Pr(Se,hr){var Or,ki=e.isJSDocLink(Se)?"link":e.isJSDocLinkCode(Se)?"linkcode":"linkplain",dt=[$o("{@".concat(ki," "))];if(!Se.name)Se.text&&dt.push(Oo(Se.text));else{var la=hr==null?void 0:hr.getSymbolAtLocation(Se.name),wa=St(Se.text),On=e.getTextOfNode(Se.name)+Se.text.slice(0,wa),No=xi(Se.text.slice(wa)),jo=(la==null?void 0:la.valueDeclaration)||((Or=la==null?void 0:la.declarations)===null||Or===void 0?void 0:Or[0]);jo?(dt.push(no(On,jo)),No&&dt.push(Oo(No))):dt.push(Oo(On+(wa||No.indexOf("://")===0?"":" ")+No))}return dt.push($o("}")),dt}e.buildLinkParts=Pr;function xi(Se){var hr=0;if(Se.charCodeAt(hr++)===124){for(;hr"&&hr--,Or++,!hr)return Or;return 0}var pa=`\r +`;function dn(Se,hr){var Or;return(hr==null?void 0:hr.newLineCharacter)||((Or=Se.getNewLine)===null||Or===void 0?void 0:Or.call(Se))||pa}e.getNewLineOrDefaultFromHost=dn;function Jn(){return Pn(` +`,e.SymbolDisplayPartKind.lineBreak)}e.lineBreakPart=Jn;function Qe(Se){try{return Se(kn),kn.displayParts()}finally{kn.clear()}}e.mapToDisplayParts=Qe;function Gr(Se,hr,Or,ki){return ki===void 0&&(ki=0),Qe(function(dt){Se.writeType(hr,Or,ki|1024|16384,dt)})}e.typeToDisplayParts=Gr;function S(Se,hr,Or,ki,dt){return dt===void 0&&(dt=0),Qe(function(la){Se.writeSymbol(hr,Or,ki,dt|8,la)})}e.symbolToDisplayParts=S;function Ce(Se,hr,Or,ki){return ki===void 0&&(ki=0),ki|=25632,Qe(function(dt){Se.writeSignature(hr,Or,ki,void 0,dt)})}e.signatureToDisplayParts=Ce;function qe(Se,hr){var Or=hr.getSourceFile();return Qe(function(ki){var dt=e.createPrinter({removeComments:!0,omitTrailingSemicolon:!0});dt.writeNode(4,Se,Or,ki)})}e.nodeToDisplayParts=qe;function br(Se){return!!Se.parent&&e.isImportOrExportSpecifier(Se.parent)&&Se.parent.propertyName===Se}e.isImportOrExportSpecifierName=br;function Zr(Se,hr){return e.ensureScriptKind(Se,hr.getScriptKind&&hr.getScriptKind(Se))}e.getScriptKind=Zr;function Si(Se,hr){for(var Or=Se;Qi(Or)||Pi(Or)&&Or.target;)Pi(Or)&&Or.target?Or=Or.target:Or=e.skipAlias(Or,hr);return Or}e.getSymbolTarget=Si;function Pi(Se){return(Se.flags&33554432)!==0}function Qi(Se){return(Se.flags&2097152)!==0}function Ct(Se,hr){return e.getSymbolId(e.skipAlias(Se,hr))}e.getUniqueSymbolId=Ct;function sa(Se,hr){for(;e.isWhiteSpaceLike(Se.charCodeAt(hr));)hr+=1;return hr}e.getFirstNonSpaceCharacterPosition=sa;function en(Se,hr){for(;hr>-1&&e.isWhiteSpaceSingleLine(Se.charCodeAt(hr));)hr-=1;return hr+1}e.getPrecedingNonSpaceCharacterPosition=en;function Wa(Se,hr){hr===void 0&&(hr=!0);var Or=Se&&mo(Se);return Or&&!hr&&ys(Or),Or}e.getSynthesizedDeepClone=Wa;function qn(Se,hr,Or){var ki=Or(Se);return ki?e.setOriginalNode(ki,Se):ki=mo(Se,Or),ki&&!hr&&ys(ki),ki}e.getSynthesizedDeepCloneWithReplacements=qn;function mo(Se,hr){var Or=hr?function(wa){return qn(wa,!0,hr)}:Wa,ki=hr?function(wa){return wa&&Go(wa,!0,hr)}:function(wa){return wa&&So(wa)},dt=e.visitEachChild(Se,Or,e.nullTransformationContext,ki,Or);if(dt===Se){var la=e.isStringLiteral(Se)?e.setOriginalNode(e.factory.createStringLiteralFromNode(Se),Se):e.isNumericLiteral(Se)?e.setOriginalNode(e.factory.createNumericLiteral(Se.text,Se.numericLiteralFlags),Se):e.factory.cloneNode(Se);return e.setTextRange(la,Se)}return dt.parent=void 0,dt}function So(Se,hr){return hr===void 0&&(hr=!0),Se&&e.factory.createNodeArray(Se.map(function(Or){return Wa(Or,hr)}),Se.hasTrailingComma)}e.getSynthesizedDeepClones=So;function Go(Se,hr,Or){return e.factory.createNodeArray(Se.map(function(ki){return qn(ki,hr,Or)}),Se.hasTrailingComma)}e.getSynthesizedDeepClonesWithReplacements=Go;function ys(Se){Pc(Se),Vc(Se)}e.suppressLeadingAndTrailingTrivia=ys;function Pc(Se){pc(Se,512,hs)}e.suppressLeadingTrivia=Pc;function Vc(Se){pc(Se,1024,e.getLastChild)}e.suppressTrailingTrivia=Vc;function Kc(Se,hr){var Or=Se.getSourceFile(),ki=Or.text;Xs(Se,ki)?Qs(Se,hr,Or):ds(Se,hr,Or),js(Se,hr,Or)}e.copyComments=Kc;function Xs(Se,hr){for(var Or=Se.getFullStart(),ki=Se.getStart(),dt=Or;dt=0),la}e.getRenameLocation=ps;function Qs(Se,hr,Or,ki,dt){e.forEachLeadingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyLeadingComments=Qs;function js(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.end,Ji(hr,Or,ki,dt,e.addSyntheticTrailingComment))}e.copyTrailingComments=js;function ds(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyTrailingAsLeadingComments=ds;function Ji(Se,hr,Or,ki,dt){return function(la,wa,On,No){On===3?(la+=2,wa-=2):la+=2,dt(Se,Or||On,hr.text.slice(la,wa),ki!==void 0?ki:No)}}function ce(Se,hr){if(e.startsWith(Se,hr))return 0;var Or=Se.indexOf(" "+hr);return Or===-1&&(Or=Se.indexOf("."+hr)),Or===-1&&(Or=Se.indexOf('"'+hr)),Or===-1?-1:Or+1}function Rr(Se){return e.isBinaryExpression(Se)&&Se.operatorToken.kind===27||e.isObjectLiteralExpression(Se)||e.isAsExpression(Se)&&e.isObjectLiteralExpression(Se.expression)}e.needsParentheses=Rr;function yi(Se,hr){var Or=Se.parent;switch(Or.kind){case 209:return hr.getContextualType(Or);case 221:{var ki=Or,dt=ki.left,la=ki.operatorToken,wa=ki.right;return je(la.kind)?hr.getTypeAtLocation(Se===wa?dt:wa):hr.getContextualType(Se)}case 289:return Or.expression===Se?Pt(Or,hr):void 0;default:return hr.getContextualType(Se)}}e.getContextualTypeFromParent=yi;function qi(Se,hr,Or){var ki=na(Se,hr),dt=JSON.stringify(Or);return ki===0?"'".concat(e.stripQuotes(dt).replace(/'/g,"\\'").replace(/\\"/g,'"'),"'"):dt}e.quote=qi;function je(Se){switch(Se){case 36:case 34:case 37:case 35:return!0;default:return!1}}e.isEqualityOperatorKind=je;function Hr(Se){switch(Se.kind){case 10:case 14:case 223:case 210:return!0;default:return!1}}e.isStringLiteralOrTemplate=Hr;function pt(Se){return!!Se.getStringIndexType()||!!Se.getNumberIndexType()}e.hasIndexSignature=pt;function Pt(Se,hr){return hr.getTypeAtLocation(Se.parent.parent.expression)}e.getSwitchedType=Pt,e.ANONYMOUS="anonymous function";function ga(Se,hr,Or,ki){var dt=Or.getTypeChecker(),la=!0,wa=function(){return la=!1},On=dt.typeToTypeNode(Se,hr,1,{trackSymbol:function(No,jo,po){return la=la&&dt.isSymbolAccessible(No,jo,po,!1).accessibility===0,!la},reportInaccessibleThisError:wa,reportPrivateInBaseOfClassExpression:wa,reportInaccessibleUniqueSymbolError:wa,moduleResolverHost:Dt(Or,ki)});return la?On:void 0}e.getTypeNodeIfAccessible=ga;function ua(Se){return Se===174||Se===175||Se===176||Se===166||Se===168}function Xn(Se){return Se===256||Se===171||Se===169||Se===172||Se===173}function jr(Se){return Se===261}function fo(Se){return Se===237||Se===238||Se===240||Se===245||Se===246||Se===247||Se===251||Se===253||Se===167||Se===259||Se===266||Se===265||Se===272||Se===264||Se===271}e.syntaxRequiresTrailingSemicolonOrASI=fo,e.syntaxMayBeASICandidate=e.or(ua,Xn,jr,fo);function xs(Se,hr){var Or=Se.getLastToken(hr);if(Or&&Or.kind===26)return!1;if(ua(Se.kind)){if(Or&&Or.kind===27)return!1}else if(jr(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isModuleBlock(ki))return!1}else if(Xn(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isFunctionBlock(ki))return!1}else if(!fo(Se.kind))return!1;if(Se.kind===240)return!0;var dt=e.findAncestor(Se,function(No){return!No.parent}),la=yr(Se,dt,hr);if(!la||la.kind===19)return!0;var wa=hr.getLineAndCharacterOfPosition(Se.getEnd()).line,On=hr.getLineAndCharacterOfPosition(la.getStart(hr)).line;return wa!==On}function Fo(Se,hr,Or){var ki=e.findAncestor(hr,function(dt){return dt.end!==Se?"quit":e.syntaxMayBeASICandidate(dt.kind)});return!!ki&&xs(ki,Or)}e.positionIsASICandidate=Fo;function ko(Se){var hr=0,Or=0,ki=5;return e.forEachChild(Se,function dt(la){if(fo(la.kind)){var wa=la.getLastToken(Se);(wa==null?void 0:wa.kind)===26?hr++:Or++}else if(ua(la.kind)){var wa=la.getLastToken(Se);if((wa==null?void 0:wa.kind)===26)hr++;else if(wa&&wa.kind!==27){var On=e.getLineAndCharacterOfPosition(Se,wa.getStart(Se)).line,No=e.getLineAndCharacterOfPosition(Se,e.getSpanOfTokenAtPosition(Se,wa.end).start).line;On!==No&&Or++}}return hr+Or>=ki?!0:e.forEachChild(la,dt)}),hr===0&&Or<=1?!0:hr/Or>1/ki}e.probablyUsesSemicolons=ko;function Ao(Se,hr){return tl(Se,Se.getDirectories,hr)||[]}e.tryGetDirectories=Ao;function Ms(Se,hr,Or,ki,dt){return tl(Se,Se.readDirectory,hr,Or,ki,dt)||e.emptyArray}e.tryReadDirectory=Ms;function Bs(Se,hr){return tl(Se,Se.fileExists,hr)}e.tryFileExists=Bs;function xc(Se,hr){return su(function(){return e.directoryProbablyExists(hr,Se)})||!1}e.tryDirectoryExists=xc;function su(Se){try{return Se()}catch{return}}e.tryAndIgnoreErrors=su;function tl(Se,hr){for(var Or=[],ki=2;ki"u")return!0;var yc=e.stripQuotes($n.getName());return jo(yc)?!0:la(Es)||la(yc)}function On($n,Ho){if(!ki.length)return!0;var Zo=po($n.fileName,Ho);return Zo?la(Zo):!0}function No($n){return!ki.length||jo($n)||e.pathIsRelative($n)||e.isRootedDiskPath($n)?!0:la($n)}function jo($n){return!!(e.isSourceFileJS(Se)&&e.JsTyping.nodeCoreModules.has($n)&&(dt===void 0&&(dt=pu(Se)),dt))}function po($n,Ho){if(!!e.stringContains($n,"node_modules")){var Zo=e.moduleSpecifiers.getNodeModulesPackageName(Or.getCompilationSettings(),Se,$n,Ho,hr);if(!!Zo&&!e.pathIsRelative(Zo)&&!e.isRootedDiskPath(Zo))return Gn(Zo)}}function Gn($n){var Ho=e.getPathComponents(e.getPackageNameFromTypesPackageName($n)).slice(1);return e.startsWith(Ho[0],"@")?"".concat(Ho[0],"/").concat(Ho[1]):Ho[0]}}e.createPackageJsonImportFilter=eu;function Ws(Se){try{return JSON.parse(Se)}catch{return}}function pu(Se){return e.some(Se.imports,function(hr){var Or=hr.text;return e.JsTyping.nodeCoreModules.has(Or)})}e.consumesNodeCoreModules=pu;function Uu(Se){return e.contains(e.getPathComponents(Se),"node_modules")}e.isInsideNodeModules=Uu;function Ql(Se){return Se.file!==void 0&&Se.start!==void 0&&Se.length!==void 0}e.isDiagnosticWithLocation=Ql;function xl(Se,hr){var Or=Oe(Se),ki=e.binarySearchKey(hr,Or,e.identity,e.compareTextSpans);if(ki>=0){var dt=hr[ki];return e.Debug.assertEqual(dt.file,Se.getSourceFile(),"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"),e.cast(dt,Ql)}}e.findDiagnosticForNode=xl;function Ya(Se,hr){var Or,ki=e.binarySearchKey(hr,Se.start,function(On){return On.start},e.compareValues);for(ki<0&&(ki=~ki);((Or=hr[ki-1])===null||Or===void 0?void 0:Or.start)===Se.start;)ki--;for(var dt=[],la=e.textSpanEnd(Se);;){var wa=e.tryCast(hr[ki],Ql);if(!wa||wa.start>la)break;e.textSpanContainsTextSpan(Se,wa)&&dt.push(wa),ki++}return dt}e.getDiagnosticsWithinSpan=Ya;function du(Se){var hr=Se.startPosition,Or=Se.endPosition;return e.createTextSpanFromBounds(hr,Or===void 0?hr:Or)}e.getRefactorContextSpan=du;function vc(Se,hr){var Or=lr(Se,hr.start),ki=e.findAncestor(Or,function(dt){return dt.getStart(Se)e.textSpanEnd(hr)?"quit":e.isExpression(dt)&&ka(hr,Oe(dt,Se))});return ki}e.getFixableErrorSpanExpression=vc;function Kr(Se,hr,Or){return Or===void 0&&(Or=e.identity),Se?e.isArray(Se)?Or(e.map(Se,hr)):hr(Se,0):void 0}e.mapOneOrMany=Kr;function _i(Se){return e.isArray(Se)?e.first(Se):Se}e.firstOrOnly=_i;function Ei(Se,hr){if(kt(Se)){var Or=bt(Se);if(Or)return Or;var ki=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!1),dt=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!0);return ki===dt?ki:[ki,dt]}return Se.name}e.getNamesForExportedSymbol=Ei;function tt(Se,hr,Or){return kt(Se)?bt(Se)||e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!!Or):Se.name}e.getNameForExportedSymbol=tt;function kt(Se){return!(Se.flags&33554432)&&(Se.escapedName==="export="||Se.escapedName==="default")}function bt(Se){return e.firstDefined(Se.declarations,function(hr){var Or;return e.isExportAssignment(hr)?(Or=e.tryCast(e.skipOuterExpressions(hr.expression),e.isIdentifier))===null||Or===void 0?void 0:Or.text:void 0})}function ia(Se){var hr;return e.Debug.checkDefined(Se.parent,"Symbol parent was undefined. Flags: ".concat(e.Debug.formatSymbolFlags(Se.flags),". ")+"Declarations: ".concat((hr=Se.declarations)===null||hr===void 0?void 0:hr.map(function(Or){var ki=e.Debug.formatSyntaxKind(Or.kind),dt=e.isInJSFile(Or),la=Or.expression;return(dt?"[JS]":"")+ki+(la?" (expression: ".concat(e.Debug.formatSyntaxKind(la.kind),")"):"")}).join(", "),"."))}function Xt(Se,hr,Or){var ki=hr.length;if(ki+Or>Se.length)return!1;for(var dt=0;dtd&&J.set(k,l)}else J.set(k,l)}}}var D=V===1,fe=D&&e.getLocalSymbolForExportDefault(X)||X,g=V===0||e.isExternalModuleSymbol(fe)?e.unescapeLeadingUnderscores($):e.getNamesForExportedSymbol(fe,void 0),ne=typeof g=="string"?g:g[0],ue=typeof g=="string"?void 0:g[1],We=e.stripQuotes(A.name),Fe=K++,Z=e.skipAlias(X,P),Be=X.flags&33554432?void 0:X,ge=A.flags&33554432?void 0:A;(!Be||!ge)&&se.set(Fe,[X,A]),b.add(O(ne,X,e.isExternalModuleNameRelative(We)?void 0:We,P),{id:Fe,symbolTableKey:$,symbolName:ne,capitalizedSymbolName:ue,moduleName:We,moduleFile:y,moduleFileName:y==null?void 0:y.fileName,packageName:k,exportKind:V,targetFlags:Z.flags,isFromPackageJson:L,symbol:Be,moduleSymbol:ge})},get:function(x,X){if(x===ie){var $=b.get(X);return $==null?void 0:$.map(q)}},search:function(x,X,$,A){x===ie&&b.forEach(function(y,V){var L=ve(V),P=L.symbolName,k=L.ambientModuleName,Y=X&&y[0].capitalizedSymbolName||P;if($(Y,y[0].targetFlags)){var U=y.map(q),j=U.filter(function(H,I){return F(H,y[I].packageName)});j.length&&A(j,Y,!!k,V)}})},releaseSymbols:function(){se.clear()},onFileChanged:function(x,X,$){return ee(x)&&ee(X)?!1:ie&&ie!==X.path||$&&e.consumesNodeCoreModules(x)!==e.consumesNodeCoreModules(X)||!e.arrayIsEqualTo(x.moduleAugmentations,X.moduleAugmentations)||!he(x,X)?(R.clear(),!0):(ie=X.path,!1)}};return e.Debug.isDebugging&&Object.defineProperty(R,"__cache",{get:function(){return b}}),R;function q(x){if(x.symbol&&x.moduleSymbol)return x;var X=x.id,$=x.exportKind,A=x.targetFlags,y=x.isFromPackageJson,V=x.moduleFileName,L=se.get(X)||e.emptyArray,P=L[0],k=L[1];if(P&&k)return{symbol:P,moduleSymbol:k,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y};var Y=(y?T.getPackageJsonAutoImportProvider():T.getCurrentProgram()).getTypeChecker(),U=x.moduleSymbol||k||e.Debug.checkDefined(x.moduleFile?Y.getMergedSymbol(x.moduleFile.symbol):Y.tryFindAmbientModule(x.moduleName)),j=x.symbol||P||e.Debug.checkDefined($===2?Y.resolveExternalModuleSymbol(U):Y.tryGetMemberInModuleExportsAndProperties(e.unescapeLeadingUnderscores(x.symbolTableKey),U),"Could not find symbol '".concat(x.symbolName,"' by key '").concat(x.symbolTableKey,"' in module ").concat(U.name));return se.set(X,[j,U]),{symbol:j,moduleSymbol:U,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y}}function O(x,X,$,A){var y=$||"";return"".concat(x,"|").concat(e.getSymbolId(e.skipAlias(X,A)),"|").concat(y)}function ve(x){var X=x.substring(0,x.indexOf("|")),$=x.substring(x.lastIndexOf("|")+1),A=$===""?void 0:$;return{symbolName:X,ambientModuleName:A}}function ee(x){return!x.commonJsModuleIndicator&&!x.externalModuleIndicator&&!x.moduleAugmentations&&!x.ambientModuleNames}function he(x,X){if(!e.arrayIsEqualTo(x.ambientModuleNames,X.ambientModuleNames))return!1;for(var $=-1,A=-1,y=function(Y){var U=function(j){return e.isNonGlobalAmbientModule(j)&&j.name.text===Y};if($=e.findIndex(x.statements,U,$+1),A=e.findIndex(X.statements,U,A+1),x.statements[$]!==X.statements[A])return{value:!1}},V=0,L=X.ambientModuleNames;V=ee.length){var j=w(q,x,e.lastOrUndefined($));j!==void 0&&(P=j)}}while(x!==1);function H(){switch(x){case 43:case 68:!C[X]&&q.reScanSlashToken()===13&&(x=13);break;case 29:X===79&&Y++;break;case 31:Y>0&&Y--;break;case 130:case 150:case 147:case 133:case 151:Y>0&&!F&&(x=79);break;case 15:$.push(x);break;case 18:$.length>0&&$.push(x);break;case 19:if($.length>0){var I=e.lastOrUndefined($);I===15?(x=q.reScanTemplateToken(!1),x===17?$.pop():e.Debug.assertEqual(x,16,"Should have been a template middle.")):(e.Debug.assertEqual(I,18,"Should have been an open brace"),$.pop())}break;default:if(!e.isKeyword(x))break;(X===24||e.isKeyword(X)&&e.isKeyword(x)&&!le(X,x))&&(x=79)}}return{endOfLineState:P,spans:k}}return{getClassificationsForLine:O,getEncodedLexicalClassifications:ve}}e.createClassifier=a;var C=e.arrayToNumericMap([79,10,8,9,13,108,45,46,21,23,19,110,95],function(q){return q},function(){return!0});function w(q,O,ve){switch(O){case 10:{if(!q.isUnterminated())return;for(var ee=q.getTokenText(),he=ee.length-1,F=0;ee.charCodeAt(he-F)===92;)F++;return(F&1)===0?void 0:ee.charCodeAt(0)===34?3:2}case 3:return q.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(O)){if(!q.isUnterminated())return;switch(O){case 17:return 5;case 14:return 4;default:return e.Debug.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #"+O)}}return ve===15?6:void 0}}function B(q,O,ve,ee,he){if(ee!==8){q===0&&ve>0&&(q+=ve);var F=O-q;F>0&&he.push(q-ve,F,ee)}}function E(q,O){for(var ve=[],ee=q.spans,he=0,F=0;F=0){var A=x-he;A>0&&ve.push({length:A,classification:e.TokenClass.Whitespace})}ve.push({length:X,classification:Q($)}),he=x+X}var y=O.length-he;return y>0&&ve.push({length:y,classification:e.TokenClass.Whitespace}),{entries:ve,finalLexState:q.endOfLineState}}function Q(q){switch(q){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 le(q,O){if(!e.isAccessibilityModifier(q))return!0;switch(O){case 136:case 149:case 134:case 124:return!0;default:return!1}}function N(q){switch(q){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(q)}}function p(q){switch(q){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 m(q){switch(q){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}function G(q){if(e.isKeyword(q))return 3;if(p(q)||m(q))return 5;if(q>=18&&q<=78)return 10;switch(q){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(q)?6:2}}function oe(q,O,ve,ee,he){return J(T(q,O,ve,ee,he))}e.getSemanticClassifications=oe;function f(q,O){switch(O){case 261:case 257:case 258:case 256:case 226:case 213:case 214:q.throwIfCancellationRequested()}}function T(q,O,ve,ee,he){var F=[];return ve.forEachChild(function X($){if(!(!$||!e.textSpanIntersectsWith(he,$.pos,$.getFullWidth()))){if(f(O,$.kind),e.isIdentifier($)&&!e.nodeIsMissing($)&&ee.has($.escapedText)){var A=q.getSymbolAtLocation($),y=A&&K(A,e.getMeaningFromLocation($),q);y&&x($.getStart(ve),$.getEnd(),y)}$.forEachChild(X)}}),{spans:F,endOfLineState:0};function x(X,$,A){var y=$-X;e.Debug.assert(y>0,"Classification had non-positive length of ".concat(y)),F.push(X),F.push(y),F.push(A)}}e.getEncodedSemanticClassifications=T;function K(q,O,ve){var ee=q.getFlags();if((ee&2885600)!==0)return ee&32?11:ee&384?12:ee&524288?16:ee&1536?O&4||O&1&&b(q)?14:void 0:ee&2097152?K(ve.getAliasedSymbol(q),O,ve):O&2?ee&64?13:ee&262144?15:void 0:void 0}function b(q){return e.some(q.declarations,function(O){return e.isModuleDeclaration(O)&&e.getModuleInstanceState(O)===1})}function se(q){switch(q){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 J(q){e.Debug.assert(q.spans.length%3===0);for(var O=q.spans,ve=[],ee=0;ee])*)(\/>)?)?/im,g=/(\s)(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/img,ne=O.text.substr(d,D),ue=fe.exec(ne);if(!ue||!ue[3]||!(ue[3]in e.commentPragmas))return!1;var We=d;V(We,ue[1].length),We+=ue[1].length,$(We,ue[2].length,10),We+=ue[2].length,$(We,ue[3].length,21),We+=ue[3].length;for(var Fe=ue[4],Z=We;;){var Be=g.exec(Fe);if(!Be)break;var ge=We+Be.index+Be[1].length;ge>Z&&(V(Z,ge-Z),Z=ge),$(Z,Be[2].length,22),Z+=Be[2].length,Be[3].length&&(V(Z,Be[3].length),Z+=Be[3].length),$(Z,Be[4].length,5),Z+=Be[4].length,Be[5].length&&(V(Z,Be[5].length),Z+=Be[5].length),$(Z,Be[6].length,24),Z+=Be[6].length}We+=ue[4].length,We>Z&&V(Z,We-Z),ue[5]&&($(We,ue[5].length,10),We+=ue[5].length);var Re=d+D;return We=0),g>0){var ne=D||I(d.kind,d);ne&&$(fe,g,ne)}return!0}function H(d){switch(d.parent&&d.parent.kind){case 280:if(d.parent.tagName===d)return 19;break;case 281:if(d.parent.tagName===d)return 20;break;case 279:if(d.parent.tagName===d)return 21;break;case 285:if(d.parent.name===d)return 22;break}}function I(d,D){if(e.isKeyword(d))return 3;if((d===29||d===31)&&D&&e.getTypeArgumentOrTypeParameterList(D.parent))return 10;if(e.isPunctuation(d)){if(D){var fe=D.parent;if(d===63&&(fe.kind===254||fe.kind===167||fe.kind===164||fe.kind===285)||fe.kind===221||fe.kind===219||fe.kind===220||fe.kind===222)return 5}return 10}else{if(d===8)return 4;if(d===9)return 25;if(d===10)return D&&D.parent.kind===285?24:6;if(d===13)return 6;if(e.isTemplateLiteralKind(d))return 6;if(d===11)return 23;if(d===79){if(D){switch(D.parent.kind){case 257:return D.parent.name===D?11:void 0;case 163:return D.parent.name===D?15:void 0;case 258:return D.parent.name===D?13:void 0;case 260:return D.parent.name===D?12:void 0;case 261:return D.parent.name===D?14:void 0;case 164:return D.parent.name===D?e.isThisIdentifier(D)?3:17:void 0}if(e.isConstTypeReference(D.parent))return 3}return 2}}}function l(d){if(!!d&&e.decodedTextSpanIntersectsWith(ee,he,d.pos,d.getFullWidth())){f(q,d.kind);for(var D=0,fe=d.getChildren(O);D0}))return 0;if(ee(function(he){return he.getCallSignatures().length>0})&&!ee(function(he){return he.getProperties().length>0})||se(q))return O===9?11:10}}return O}function T(R,q){return e.isBindingElement(R)&&(R=K(R)),e.isVariableDeclaration(R)?(!e.isSourceFile(R.parent.parent.parent)||e.isCatchClause(R.parent))&&R.getSourceFile()===q:e.isFunctionDeclaration(R)?!e.isSourceFile(R.parent)&&R.getSourceFile()===q:!1}function K(R){for(;;)if(e.isBindingElement(R.parent.parent))R=R.parent.parent;else return R.parent.parent}function b(R){var q=R.parent;return q&&(e.isImportClause(q)||e.isImportSpecifier(q)||e.isNamespaceImport(q))}function se(R){for(;J(R);)R=R.parent;return e.isCallExpression(R.parent)&&R.parent.expression===R}function J(R){return e.isQualifiedName(R.parent)&&R.parent.right===R||e.isPropertyAccessExpression(R.parent)&&R.parent.name===R}var ie=new e.Map([[254,7],[164,6],[167,9],[261,3],[260,1],[299,8],[257,0],[169,11],[256,10],[213,10],[168,11],[172,9],[173,9],[166,9],[258,2],[259,5],[163,4],[296,9],[297,9]])})(w=C.v2020||(C.v2020={}))})(a=e.classifier||(e.classifier={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){function E(Z,Be,ge,Re,ze,Ee,He,rr){if(e.isInReferenceComment(Z,Be)){var Ie=l(Z,Be,Re,ze);return Ie&&p(Ie)}if(e.isInString(Z,Be,ge)){if(!ge||!e.isStringLiteralLike(ge))return;var Ie=oe(Z,ge,Be,Ee.getTypeChecker(),Re,ze,rr);return Q(Ie,ge,Z,ze,Ee,He,Re,rr)}}B.getStringLiteralCompletions=E;function Q(Z,Be,ge,Re,ze,Ee,He,rr){if(Z!==void 0){var Ie=e.createTextSpanFromStringLiteralLikeContent(Be);switch(Z.kind){case 0:return p(Z.paths);case 1:{var _e=e.createSortedArray();return C.getCompletionEntriesFromSymbols(Z.symbols,_e,Be,Be,ge,ge,Re,ze,99,Ee,4,rr,He,void 0),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:Z.hasIndexSignature,optionalReplacementSpan:Ie,entries:_e}}case 2:{var _e=Z.types.map(function(de){return{name:de.value,kindModifiers:"",kind:"string",sortText:C.SortText.LocationPriority,replacementSpan:e.getReplacementSpanForContextToken(Be)}});return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:Z.isNewIdentifier,optionalReplacementSpan:Ie,entries:_e}}default:return e.Debug.assertNever(Z)}}}function le(Z,Be,ge,Re,ze,Ee,He,rr,Ie){if(!(!Re||!e.isStringLiteralLike(Re))){var _e=oe(Be,Re,ge,ze,Ee,He,Ie);return _e&&N(Z,Re,_e,Be,ze,rr)}}B.getStringLiteralCompletionDetails=le;function N(Z,Be,ge,Re,ze,Ee){switch(ge.kind){case 0:{var He=e.find(ge.paths,function(rr){return rr.name===Z});return He&&C.createCompletionDetails(Z,m(He.extension),He.kind,[e.textPart(Z)])}case 1:{var He=e.find(ge.symbols,function(Ie){return Ie.name===Z});return He&&C.createCompletionDetailsForSymbol(He,ze,Re,Be,Ee)}case 2:return e.find(ge.types,function(rr){return rr.value===Z})?C.createCompletionDetails(Z,"","type",[e.textPart(Z)]):void 0;default:return e.Debug.assertNever(ge)}}function p(Z){var Be=!1,ge=!0,Re=Z.map(function(ze){var Ee=ze.name,He=ze.kind,rr=ze.span,Ie=ze.extension;return{name:Ee,kind:He,kindModifiers:m(Ie),sortText:C.SortText.LocationPriority,replacementSpan:rr}});return{isGlobalCompletion:Be,isMemberCompletion:!1,isNewIdentifierLocation:ge,entries:Re}}function m(Z){switch(Z){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".d.mts":return".d.mts";case".mjs":return".mjs";case".mts":return".mts";case".d.cts":return".d.cts";case".cjs":return".cjs";case".cts":return".cts";case".tsbuildinfo":return e.Debug.fail("Extension ".concat(".tsbuildinfo"," is unsupported."));case void 0:return"";default:return e.Debug.assertNever(Z)}}var G;(function(Z){Z[Z.Paths=0]="Paths",Z[Z.Properties=1]="Properties",Z[Z.Types=2]="Types"})(G||(G={}));function oe(Z,Be,ge,Re,ze,Ee,He){var rr=f(Be.parent);switch(rr.kind){case 196:{var Ie=f(rr.parent);switch(Ie.kind){case 178:{var _e=Ie,we=e.findAncestor(rr,function(n){return n.parent===_e});return we?{kind:2,types:J(Re.getTypeArgumentConstraint(we)),isNewIdentifier:!1}:void 0}case 194:var de=Ie,ye=de.indexType,Ae=de.objectType;return e.rangeContainsPosition(ye,ge)?b(Re.getTypeFromTypeNode(Ae)):void 0;case 200:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};case 187:{if(!e.isTypeReferenceNode(Ie.parent))return;var er=T(Ie,rr),ir=J(Re.getTypeArgumentConstraint(Ie)).filter(function(n){return!e.contains(er,n.value)});return{kind:2,types:ir,isNewIdentifier:!1}}default:return}}case 296:return e.isObjectLiteralExpression(rr.parent)&&rr.name===Be?se(Re,rr.parent):Ne();case 207:{var Cr=rr,Ye=Cr.expression,Br=Cr.argumentExpression;return Be===e.skipParentheses(Br)?b(Re.getTypeAtLocation(Ye)):void 0}case 208:case 209:case 285:if(!Fe(Be)&&!e.isImportCall(rr)){var Er=e.SignatureHelp.getArgumentInfoForCompletions(rr.kind===285?rr.parent:Be,ge,Z);return Er?K(Er.invocation,Be,Er,Re):Ne()}case 266:case 272:case 277:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};default:return Ne()}function Ne(){return{kind:2,types:J(e.getContextualTypeFromParent(Be,Re)),isNewIdentifier:!1}}}function f(Z){switch(Z.kind){case 191:return e.walkUpParenthesizedTypes(Z);case 212:return e.walkUpParenthesizedExpressions(Z);default:return Z}}function T(Z,Be){return e.mapDefined(Z.types,function(ge){return ge!==Be&&e.isLiteralTypeNode(ge)&&e.isStringLiteral(ge.literal)?ge.literal.text:void 0})}function K(Z,Be,ge,Re){var ze=!1,Ee=new e.Map,He=[],rr=e.isJsxOpeningLikeElement(Z)?e.Debug.checkDefined(e.findAncestor(Be.parent,e.isJsxAttribute)):Be;Re.getResolvedSignatureForStringLiteralCompletions(Z,rr,He);var Ie=e.flatMap(He,function(_e){if(!(!e.signatureHasRestParameter(_e)&&ge.argumentCount>_e.parameters.length)){var we=_e.getTypeParameterAtPosition(ge.argumentIndex);if(e.isJsxOpeningLikeElement(Z)){var de=Re.getTypeOfPropertyOfType(we,rr.name.text);de&&(we=de)}return ze=ze||!!(we.flags&4),J(we,Ee)}});return{kind:2,types:Ie,isNewIdentifier:ze}}function b(Z){return Z&&{kind:1,symbols:e.filter(Z.getApparentProperties(),function(Be){return!(Be.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(Be.valueDeclaration))}),hasIndexSignature:e.hasIndexSignature(Z)}}function se(Z,Be){var ge=Z.getContextualType(Be);if(!!ge){var Re=Z.getContextualType(Be,4),ze=C.getPropertiesForObjectExpression(ge,Re,Be,Z);return{kind:1,symbols:ze,hasIndexSignature:e.hasIndexSignature(ge)}}}function J(Z,Be){return Be===void 0&&(Be=new e.Map),Z?(Z=e.skipConstraint(Z),Z.isUnion()?e.flatMap(Z.types,function(ge){return J(ge,Be)}):Z.isStringLiteral()&&!(Z.flags&1024)&&e.addToSeen(Be,Z.value)?[Z]:e.emptyArray):e.emptyArray}function ie(Z,Be,ge){return{name:Z,kind:Be,extension:ge}}function R(Z){return ie(Z,"directory",void 0)}function q(Z,Be,ge){var Re=fe(Z,Be),ze=Z.length===0?void 0:e.createTextSpan(Be,Z.length);return ge.map(function(Ee){var He=Ee.name,rr=Ee.kind,Ie=Ee.extension;return Math.max(He.indexOf(e.directorySeparator),He.indexOf(e.altDirectorySeparator))!==-1?{name:He,kind:rr,extension:Ie,span:ze}:{name:He,kind:rr,extension:Ie,span:Re}})}function O(Z,Be,ge,Re,ze,Ee){return q(Be.text,Be.getStart(Z)+1,ve(Z,Be,ge,Re,ze,Ee))}function ve(Z,Be,ge,Re,ze,Ee){var He=e.normalizeSlashes(Be.text),rr=Z.path,Ie=e.getDirectoryPath(rr);return g(He)||!ge.baseUrl&&(e.isRootedDiskPath(He)||e.isUrl(He))?he(He,Ie,ge,Re,rr,_e()):P(He,Ie,ge,Re,ze);function _e(){var we=e.isStringLiteralLike(Be)?e.getModeForUsageLocation(Z,Be):void 0;return Ee.importModuleSpecifierEnding==="js"||we===e.ModuleKind.ESNext?2:0}}function ee(Z,Be){return Be===void 0&&(Be=0),{extensions:e.flatten(X(Z)),includeExtensionsOption:Be}}function he(Z,Be,ge,Re,ze,Ee){var He=ee(ge,Ee);return ge.rootDirs?A(ge.rootDirs,Z,Be,He,ge,Re,ze):V(Z,Be,He,Re,ze)}function F(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeJs||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function x(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function X(Z){var Be=e.getSupportedExtensions(Z);return F(Z)?e.getSupportedExtensionsWithJsonIfResolveJsonModule(Z,Be):Be}function $(Z,Be,ge,Re){Z=Z.map(function(Ee){return e.normalizePath(e.isRootedDiskPath(Ee)?Ee:e.combinePaths(Be,Ee))});var ze=e.firstDefined(Z,function(Ee){return e.containsPath(Ee,ge,Be,Re)?ge.substr(Ee.length):void 0});return e.deduplicate(Ve(Ve([],Z.map(function(Ee){return e.combinePaths(Ee,ze)}),!0),[ge],!1),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}function A(Z,Be,ge,Re,ze,Ee,He){var rr=ze.project||Ee.getCurrentDirectory(),Ie=!(Ee.useCaseSensitiveFileNames&&Ee.useCaseSensitiveFileNames()),_e=$(Z,rr,ge,Ie);return e.flatMap(_e,function(we){return V(Be,we,Re,Ee,He)})}var y;(function(Z){Z[Z.Exclude=0]="Exclude",Z[Z.Include=1]="Include",Z[Z.ModuleSpecifierCompletion=2]="ModuleSpecifierCompletion"})(y||(y={}));function V(Z,Be,ge,Re,ze,Ee){var He=ge.extensions,rr=ge.includeExtensionsOption;Ee===void 0&&(Ee=[]),Z===void 0&&(Z=""),Z=e.normalizeSlashes(Z),e.hasTrailingDirectorySeparator(Z)||(Z=e.getDirectoryPath(Z)),Z===""&&(Z="."+e.directorySeparator),Z=e.ensureTrailingDirectorySeparator(Z);var Ie=e.resolvePath(Be,Z),_e=e.hasTrailingDirectorySeparator(Ie)?Ie:e.getDirectoryPath(Ie),we=!(Re.useCaseSensitiveFileNames&&Re.useCaseSensitiveFileNames());if(!e.tryDirectoryExists(Re,_e))return Ee;var de=e.tryReadDirectory(Re,_e,He,void 0,["./*"]);if(de){for(var ye=new e.Map,Ae=0,er=de;Ae=er.pos&&Be<=er.end});if(!!He){var rr=Z.text.slice(He.pos,Be),Ie=ne.exec(rr);if(!!Ie){var _e=Ie[1],we=Ie[2],de=Ie[3],ye=e.getDirectoryPath(Z.path),Ae=we==="path"?V(de,ye,ee(ge,1),Re,Z.path):we==="types"?d(Re,ge,ye,k(de),ee(ge)):e.Debug.fail();return q(de,He.pos+_e.length,Ae)}}}function d(Z,Be,ge,Re,ze,Ee){Ee===void 0&&(Ee=[]);for(var He=new e.Map,rr=e.tryAndIgnoreErrors(function(){return e.getEffectiveTypeRoots(Be,Z)})||e.emptyArray,Ie=0,_e=rr;Ie<_e.length;Ie++){var we=_e[Ie];ir(we)}for(var de=0,ye=e.findPackageJsons(ge,Z);de=2&&Z.charCodeAt(0)===46){var Be=Z.length>=3&&Z.charCodeAt(1)===46?2:1,ge=Z.charCodeAt(Be);return ge===47||ge===92}return!1}var ne=/^(\/\/\/\s*0},resolvedBeyondLimit:function(){return Wi>C.moduleSpecifierResolutionLimit}}),Mt=Li?" (".concat((ct/Li*100).toFixed(1),"% hit rate)"):"";return(fr=vr.log)===null||fr===void 0||fr.call(vr,"".concat(xe,": resolved ").concat(Wi," module specifiers, plus ").concat(Yi," ambient and ").concat(ct," from cache").concat(Mt)),(De=vr.log)===null||De===void 0||De.call(vr,"".concat(xe,": response is ").concat(Ui?"incomplete":"complete")),(gr=vr.log)===null||gr===void 0||gr.call(vr,"".concat(xe,": ").concat(e.timestamp()-Vr)),nt;function xt(ut,Dt,Rt){if(Rt){var Ii=e.codefix.getModuleSpecifierForBestExportInfo(ut,Dt,Oe,Pe,Ar,mr,vr,nr);return Ii&&Yi++,Ii||"failed"}var Ki=vi||nr.allowIncompleteCompletions&&Wi"),Pe=e.createTextSpanFromNode(mr.tagName),Ue={name:Mr,kind:"class",kindModifiers:void 0,sortText:C.SortText.LocationPriority};return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,optionalReplacementSpan:Pe,entries:[Ue]}}}function V(xe,vr,mr,Ar,Oe){e.getNameTable(xe).forEach(function(nr,Mr){if(nr!==vr){var Pe=e.unescapeLeadingUnderscores(Mr);!mr.has(Pe)&&e.isIdentifierText(Pe,Ar)&&(mr.add(Pe),e.insertSorted(Oe,{name:Pe,kind:"warning",kindModifiers:"",sortText:C.SortText.JavascriptIdentifiers,isFromUncheckedFile:!0},ie))}})}function L(xe,vr,mr){return typeof mr=="object"?e.pseudoBigIntToString(mr)+"n":e.isString(mr)?e.quote(xe,vr,mr):JSON.stringify(mr)}function P(xe,vr,mr){return{name:L(xe,vr,mr),kind:"string",kindModifiers:"",sortText:C.SortText.LocationPriority}}function k(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt){var xt,ut,Dt,Rt=e.getReplacementSpanForContextToken(mr),Ii,Ki,Fi=We(De),ui,Bt,wt,na=Pe.getTypeChecker(),Ai=De&&oe(De),Oi=De&&Q(De)||fr;if(De&&E(De))Dt=fr?"this".concat(Ai?"?.":"","[").concat(ne(nr,Wi,Ue),"]"):"this".concat(Ai?"?.":".").concat(Ue);else if((Oi||Ai)&&Vr){Dt=Oi?fr?"[".concat(ne(nr,Wi,Ue),"]"):"[".concat(Ue,"]"):Ue,(Ai||Vr.questionDotToken)&&(Dt="?.".concat(Dt));var ji=e.findChildOfKind(Vr,24,nr)||e.findChildOfKind(Vr,28,nr);if(!ji)return;var Vi=e.startsWith(Ue,Vr.name.text)?Vr.name.end:ji.end;Rt=e.createTextSpanFromBounds(ji.getStart(nr),Vi)}if(Tr&&(Dt===void 0&&(Dt=Ue),Dt="{".concat(Dt,"}"),typeof Tr!="boolean"&&(Rt=e.createTextSpanFromNode(Tr,nr))),De&&G(De)&&Vr){Dt===void 0&&(Dt=Ue);var at=e.findPrecedingToken(Vr.pos,nr),At="";at&&e.positionIsASICandidate(at.end,at.parent,nr)&&(At=";"),At+="(await ".concat(Vr.expression.getText(),")"),Dt=fr?"".concat(At).concat(Dt):"".concat(At).concat(Ai?"?.":".").concat(Dt),Rt=e.createTextSpanFromBounds(Vr.getStart(nr),Vr.end)}if(N(De)&&(ui=[e.textPart(De.moduleSpecifier)],vi&&(xt=g(Ue,vi,Ar,De,Ui,Yi,Wi),Dt=xt.insertText,Rt=xt.replacementSpan,Ki=Wi.includeCompletionsWithSnippetText?!0:void 0)),(De==null?void 0:De.kind)===64&&(Bt=!0),Wi.includeCompletionsWithClassMemberSnippets&&Wi.includeCompletionsWithInsertText&&ct===3&&Y(xe,Oe)){var ba=void 0;ut=U(Mr,Pe,Yi,Wi,Ue,xe,Oe,Ar,Li),Dt=ut.insertText,Ki=ut.isSnippet,ba=ut.importAdder,Rt=ut.replacementSpan,vr=C.SortText.ClassMemberSnippets,ba!=null&&ba.hasFixes()&&(Bt=!0,Fi=w.ClassMemberSnippet)}if(De&&T(De)&&(Dt=De.insertText,Ki=De.isSnippet,wt=De.labelDetails,Wi.useLabelDetailsInCompletionEntries||(Ue=Ue+wt.detail,wt=void 0),Fi=w.ObjectLiteralMethodSnippet,vr=C.SortText.SortBelow(vr)),nt&&!Mt&&Wi.includeCompletionsWithSnippetText&&Wi.jsxAttributeCompletionStyle&&Wi.jsxAttributeCompletionStyle!=="none"){var $a=Wi.jsxAttributeCompletionStyle==="braces",Qa=na.getTypeOfSymbolAtLocation(xe,Oe);Wi.jsxAttributeCompletionStyle==="auto"&&!(Qa.flags&528)&&!(Qa.flags&1048576&&e.find(Qa.types,function(ai){return!!(ai.flags&528)}))&&(Qa.flags&402653316||Qa.flags&1048576&&e.every(Qa.types,function(ai){return!!(ai.flags&402686084)})?(Dt="".concat(e.escapeSnippetText(Ue),"=").concat(e.quote(nr,Wi,"$1")),Ki=!0):$a=!0),$a&&(Dt="".concat(e.escapeSnippetText(Ue),"={$1}"),Ki=!0)}if(!(Dt!==void 0&&!Wi.includeCompletionsWithInsertText))return(le(De)||N(De))&&(Ii=D(De),Bt=!vi),{name:Ue,kind:e.SymbolDisplay.getSymbolKind(na,xe,Oe),kindModifiers:e.SymbolDisplay.getSymbolModifiers(na,xe),sortText:vr,source:Fi,hasAction:Bt?!0:void 0,isRecommended:ue(xe,gr,na)||void 0,insertText:Dt,replacementSpan:Rt,sourceDisplay:ui,labelDetails:wt,isSnippet:Ki,isPackageJsonImport:m(De)||void 0,isImportStatementCompletion:!!vi||void 0,data:Ii}}function Y(xe,vr){if(e.isInJSFile(vr))return!1;var mr=106500;return!!(xe.flags&mr)&&(e.isClassLike(vr)||vr.parent&&vr.parent.parent&&e.isClassElement(vr.parent)&&vr===vr.parent.name&&e.isClassLike(vr.parent.parent)||vr.parent&&e.isSyntaxList(vr)&&e.isClassLike(vr.parent))}function U(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue){var fr=e.findAncestor(Mr,e.isClassLike);if(!fr)return{insertText:Oe};var De,gr,Vr=Oe,Tr=vr.getTypeChecker(),vi=Mr.getSourceFile(),Ui=d({removeComments:!0,module:mr.module,target:mr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(mr,e.maybeBind(xe,xe.getNewLine)))}),Yi=e.codefix.createImportAdder(vi,vr,Ar,xe),Wi;if(Ar.includeCompletionsWithSnippetText){De=!0;var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=0,nt=j(Pe),Mt=nt.modifiers,xt=nt.span,ut=!!(Mt&128),Dt=[];if(e.codefix.addNewNodeForMemberSymbol(nr,fr,vi,{program:vr,host:xe},Ar,Yi,function(Ii){var Ki=0;ut&&(Ki|=128),e.isClassElement(Ii)&&Tr.getMemberOverrideModifierStatus(fr,Ii)===1&&(Ki|=16384),Dt.length||(Li=Ii.modifierFlagsCache|Ki|Mt),Ii=e.factory.updateModifiers(Ii,Li),Dt.push(Ii)},Wi,2,ut),Dt.length){var Rt=131073;gr=xt,Ue?Vr=Ui.printAndFormatSnippetList(Rt,e.factory.createNodeArray(Dt),vi,Ue):Vr=Ui.printSnippetList(Rt,e.factory.createNodeArray(Dt),vi)}return{insertText:Vr,isSnippet:De,importAdder:Yi,replacementSpan:gr}}function j(xe){if(!xe)return{modifiers:0};var vr=0,mr,Ar;return(Ar=H(xe))&&(vr|=e.modifierToFlag(Ar),mr=e.createTextSpanFromNode(xe)),e.isPropertyDeclaration(xe.parent)&&(vr|=e.modifiersToFlags(xe.parent.modifiers),mr=e.createTextSpanFromNode(xe.parent)),{modifiers:vr,span:mr}}function H(xe){if(e.isModifier(xe))return xe.kind;if(e.isIdentifier(xe)&&xe.originalKeywordKind&&e.isModifierKind(xe.originalKeywordKind))return xe.originalKeywordKind}function I(xe,vr,mr,Ar,Oe,nr,Mr,Pe){var Ue=Mr.includeCompletionsWithSnippetText||void 0,fr=vr,De=mr.getSourceFile(),gr=l(xe,mr,De,Ar,Oe,Mr);if(!!gr){var Vr=d({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(nr,e.maybeBind(Oe,Oe.getNewLine)))});Pe?fr=Vr.printAndFormatSnippetList(80,e.factory.createNodeArray([gr],!0),De,Pe):fr=Vr.printSnippetList(80,e.factory.createNodeArray([gr],!0),De);var Tr=e.createPrinter({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!0}),vi=e.factory.createMethodSignature(void 0,"",gr.questionToken,gr.typeParameters,gr.parameters,gr.type),Ui={detail:Tr.printNode(4,vi,De)};return{isSnippet:Ue,insertText:fr,labelDetails:Ui}}}function l(xe,vr,mr,Ar,Oe,nr){var Mr=xe.getDeclarations();if(!!(Mr&&Mr.length)){var Pe=Ar.getTypeChecker(),Ue=Mr[0],fr=e.getSynthesizedDeepClone(e.getNameOfDeclaration(Ue),!1),De=Pe.getWidenedType(Pe.getTypeOfSymbolAtLocation(xe,vr)),gr=e.getQuotePreference(mr,nr),Vr=gr===0?268435456:void 0;switch(Ue.kind){case 166:case 167:case 168:case 169:{var Tr=De.flags&1048576&&De.types.length<10?Pe.getUnionType(De.types,2):De;if(Tr.flags&1048576){var vi=e.filter(Tr.types,function(nt){return Pe.getSignaturesOfType(nt,0).length>0});if(vi.length===1)Tr=vi[0];else return}var Ui=Pe.getSignaturesOfType(Tr,0);if(Ui.length!==1)return;var Yi=Pe.typeToTypeNode(Tr,vr,Vr,e.codefix.getNoopSymbolTrackerWithResolver({program:Ar,host:Oe}));if(!Yi||!e.isFunctionTypeNode(Yi))return;var Wi=void 0;if(nr.includeCompletionsWithSnippetText){var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=Yi.parameters.map(function(nt){return e.factory.createParameterDeclaration(void 0,void 0,nt.dotDotDotToken,nt.name,nt.questionToken,void 0,nt.initializer)});return e.factory.createMethodDeclaration(void 0,void 0,void 0,fr,void 0,void 0,Li,void 0,Wi)}default:return}}}function d(xe){var vr,mr=e.textChanges.createWriter(e.getNewLineCharacter(xe)),Ar=e.createPrinter(xe,mr),Oe=Ke(Ke({},mr),{write:function(fr){return nr(fr,function(){return mr.write(fr)})},nonEscapingWrite:mr.write,writeLiteral:function(fr){return nr(fr,function(){return mr.writeLiteral(fr)})},writeStringLiteral:function(fr){return nr(fr,function(){return mr.writeStringLiteral(fr)})},writeSymbol:function(fr,De){return nr(fr,function(){return mr.writeSymbol(fr,De)})},writeParameter:function(fr){return nr(fr,function(){return mr.writeParameter(fr)})},writeComment:function(fr){return nr(fr,function(){return mr.writeComment(fr)})},writeProperty:function(fr){return nr(fr,function(){return mr.writeProperty(fr)})}});return{printSnippetList:Mr,printAndFormatSnippetList:Ue};function nr(fr,De){var gr=e.escapeSnippetText(fr);if(gr!==fr){var Vr=mr.getTextPos();De();var Tr=mr.getTextPos();vr=e.append(vr||(vr=[]),{newText:gr,span:{start:Vr,length:Tr-Vr}})}else De()}function Mr(fr,De,gr){var Vr=Pe(fr,De,gr);return vr?e.textChanges.applyChanges(Vr,vr):Vr}function Pe(fr,De,gr){return vr=void 0,Oe.clear(),Ar.writeList(fr,De,gr,Oe),Oe.getText()}function Ue(fr,De,gr,Vr){var Tr={text:Pe(fr,De,gr),getLineAndCharacterOfPosition:function(Wi){return e.getLineAndCharacterOfPosition(this,Wi)}},vi=e.getFormatCodeSettingsForWriting(Vr,gr),Ui=e.flatMap(De,function(Wi){var ct=e.textChanges.assignPositionsToNode(Wi);return e.formatting.formatNodeGivenIndentation(ct,Tr,gr.languageVariant,0,0,Ke(Ke({},Vr),{options:vi}))}),Yi=vr?e.stableSort(e.concatenate(Ui,vr),function(Wi,ct){return e.compareTextSpans(Wi.span,ct.span)}):Ui;return e.textChanges.applyChanges(Tr.text,Yi)}}function D(xe){var vr=xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),mr=xe.isFromPackageJson?!0:void 0;if(N(xe)){var Ar={exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,ambientModuleName:vr,fileName:xe.fileName,isPackageJsonImport:mr};return Ar}var Oe={exportName:xe.exportName,exportMapKey:xe.exportMapKey,fileName:xe.fileName,ambientModuleName:xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),isPackageJsonImport:xe.isFromPackageJson?!0:void 0};return Oe}function fe(xe,vr,mr){var Ar=xe.exportName==="default",Oe=!!xe.isPackageJsonImport;if(R(xe)){var nr={kind:32,exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return nr}var Mr={kind:4,exportName:xe.exportName,exportMapKey:xe.exportMapKey,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return Mr}function g(xe,vr,mr,Ar,Oe,nr,Mr){var Pe,Ue,fr,De=vr.getSourceFile(),gr=e.createTextSpanFromNode(e.findAncestor(vr,e.or(e.isImportDeclaration,e.isImportEqualsDeclaration))||vr,De),Vr=e.quote(De,Mr,Ar.moduleSpecifier),Tr=Ar.isDefaultExport?1:Ar.exportName==="export="?2:0,vi=Mr.includeCompletionsWithSnippetText?"$1":"",Ui=e.codefix.getImportKind(De,Tr,nr,!0),Yi=((Ue=(Pe=e.tryCast(vr,e.isImportDeclaration))===null||Pe===void 0?void 0:Pe.importClause)===null||Ue===void 0?void 0:Ue.isTypeOnly)||((fr=e.tryCast(vr,e.isImportEqualsDeclaration))===null||fr===void 0?void 0:fr.isTypeOnly),Wi=ae(vr,mr),ct=Yi?" ".concat(e.tokenToString(152)," "):" ",Li=Wi?"".concat(e.tokenToString(152)," "):"",nt=Oe?";":"";switch(Ui){case 3:return{replacementSpan:gr,insertText:"import".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi," = require(").concat(Vr,")").concat(nt)};case 1:return{replacementSpan:gr,insertText:"import".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi," from ").concat(Vr).concat(nt)};case 2:return{replacementSpan:gr,insertText:"import".concat(ct,"* as ").concat(e.escapeSnippetText(xe)," from ").concat(Vr).concat(nt)};case 0:return{replacementSpan:gr,insertText:"import".concat(ct,"{ ").concat(Li).concat(e.escapeSnippetText(xe)).concat(vi," } from ").concat(Vr).concat(nt)}}}function ne(xe,vr,mr){return/^\d+$/.test(mr)?mr:e.quote(xe,vr,mr)}function ue(xe,vr,mr){return xe===vr||!!(xe.flags&1048576)&&mr.getExportSymbolOfSymbol(xe)===vr}function We(xe){if(le(xe))return e.stripQuotes(xe.moduleSymbol.name);if(N(xe))return xe.moduleSpecifier;if((xe==null?void 0:xe.kind)===1)return w.ThisProperty;if((xe==null?void 0:xe.kind)===64)return w.TypeOnlyAlias}function Fe(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt,xt,ut){for(var Dt,Rt=e.timestamp(),Ii=ti(Oe),Ki=e.probablyUsesSemicolons(nr),Fi=Pe.getTypeChecker(),ui=new e.Map,Bt=0;Bt90)?!1:Mr?!0:Wr(ua,yi)},function(ua,Xn,jr,fo){var xs;if(!(Mr&&!e.some(ua,function(su){return Mr.source===e.stripQuotes(su.moduleSymbol.name)}))){var Fo=e.find(ua,Pt);if(!!Fo){var ko=ga.tryResolve(ua,Xn,jr)||{};if(ko!=="failed"){var Ao=Fo,Ms;ko!=="skipped"&&(xs=ko.exportInfo,Ao=xs===void 0?Fo:xs,Ms=ko.moduleSpecifier);var Bs=Ao.exportKind===1,xc=Bs&&e.getLocalSymbolForExportDefault(Ao.symbol)||Ao.symbol;Qe(xc,{kind:Ms?32:4,moduleSpecifier:Ms,symbolName:Xn,exportMapKey:fo,exportName:Ao.exportKind===2?"export=":Ao.symbol.name,fileName:Ao.moduleFileName,isDefaultExport:Bs,moduleSymbol:Ao.moduleSymbol,isFromPackageJson:Ao.isFromPackageJson})}}}}),Dn=ga.skippedAny(),Vi|=ga.resolvedAny()?8:0,Vi|=ga.resolvedBeyondLimit()?16:0});function Pt(ga){var ua=e.tryCast(ga.moduleSymbol.valueDeclaration,e.isSourceFile);if(!ua){var Xn=e.stripQuotes(ga.moduleSymbol.name);return e.JsTyping.nodeCoreModules.has(Xn)&&e.startsWith(Xn,"node:")!==e.shouldUseUriStyleNodeCoreModules(mr,xe)?!1:pt?pt.allowsImportingAmbientModule(ga.moduleSymbol,kn(ga.isFromPackageJson)):!0}return e.isImportableFile(ga.isFromPackageJson?Hr:xe,mr,ua,nr,pt,kn(ga.isFromPackageJson),qi)}}function Qe(Ji,ce){var Rr=e.getSymbolId(Ji);pn[Rr]!==C.SortText.GlobalsOrKeywords&&(Ba[ka.length]=ce,pn[Rr]=na?C.SortText.LocationPriority:C.SortText.AutoImportSuggestions,ka.push(Ji))}function Gr(Ji,ce){e.isInJSFile(Ai)||Ji.forEach(function(Rr){if(!!S(Rr)){var yi=Er(Rr,e.getEmitScriptTarget(Ar),void 0,0,!1);if(!!yi){var qi=yi.name,je=I(Rr,qi,ce,xe,Pe,Ar,nr,Ue);if(!!je){var Hr=Ke({kind:128},je);Vi|=32,Ba[ka.length]=Hr,ka.push(Rr)}}}})}function S(Ji){return!!(Ji.flags&8196)}function Ce(Ji,ce,Rr){for(var yi=Ji;yi&&!e.positionBelongsToNode(yi,ce,Rr);)yi=yi.parent;return yi}function qe(Ji){var ce=e.timestamp(),Rr=Si(Ji)||Go(Ji)||Vc(Ji)||br(Ji)||e.isBigIntLiteral(Ji);return vr("getCompletionsAtPosition: isCompletionListBlocker: "+(e.timestamp()-ce)),Rr}function br(Ji){if(Ji.kind===11)return!0;if(Ji.kind===31&&Ji.parent){if(Ai===Ji.parent&&(Ai.kind===280||Ai.kind===279))return!1;if(Ji.parent.kind===280)return Ai.parent.kind!==280;if(Ji.parent.kind===281||Ji.parent.kind===279)return!!Ji.parent.parent&&Ji.parent.parent.kind===278}return!1}function Zr(){if(ut){var Ji=ut.parent.kind,ce=wr(ut);switch(ce){case 27:return Ji===208||Ji===171||Ji===209||Ji===204||Ji===221||Ji===179||Ji===205;case 20:return Ji===208||Ji===171||Ji===209||Ji===212||Ji===191;case 22:return Ji===204||Ji===176||Ji===162;case 141:case 142:case 100:return!0;case 24:return Ji===261;case 18:return Ji===257||Ji===205;case 63:return Ji===254||Ji===221;case 15:return Ji===223;case 16:return Ji===233;case 131:return Ji===169||Ji===297;case 41:return Ji===169}if(yr(ce))return!0}return!1}function Si(Ji){return(e.isRegularExpressionLiteral(Ji)||e.isStringTextContainingNode(Ji))&&(e.rangeContainsPositionExclusive(e.createTextRangeFromSpan(e.createTextSpanFromNode(Ji)),Oe)||Oe===Ji.end&&(!!Ji.isUnterminated||e.isRegularExpressionLiteral(Ji)))}function Pi(){var Ji=Di(ut);if(!Ji)return 0;var ce=e.isIntersectionTypeNode(Ji.parent)?Ji.parent:void 0,Rr=ce||Ji,yi=wi(Rr,De);if(!yi)return 0;var qi=De.getTypeFromTypeNode(Rr),je=qr(yi,De),Hr=qr(qi,De),pt=new e.Set;return Hr.forEach(function(Pt){return pt.add(Pt.escapedName)}),ka=e.concatenate(ka,e.filter(je,function(Pt){return!pt.has(Pt.escapedName)})),Qa=0,ji=!0,1}function Qi(){var Ji=ka.length,ce=Cr(ut);if(!ce)return 0;Qa=0;var Rr,yi;if(ce.kind===205){var qi=_r(ce,De);if(qi===void 0)return ce.flags&33554432?2:(ai=!0,0);var je=De.getContextualType(ce,4),Hr=(je||qi).getStringIndexType(),pt=(je||qi).getNumberIndexType();if(ji=!!Hr||!!pt,Rr=mi(qi,je,ce,De),yi=ce.properties,Rr.length===0&&!pt)return ai=!0,0}else{e.Debug.assert(ce.kind===201),ji=!1;var Pt=e.getRootDeclaration(ce.parent);if(!e.isVariableLike(Pt))return e.Debug.fail("Root declaration is not variable-like.");var ga=e.hasInitializer(Pt)||!!e.getEffectiveTypeAnnotationNode(Pt)||Pt.parent.parent.kind===244;if(!ga&&Pt.kind===164&&(e.isExpression(Pt.parent)?ga=!!De.getContextualType(Pt.parent):(Pt.parent.kind===169||Pt.parent.kind===173)&&(ga=e.isExpression(Pt.parent.parent)&&!!De.getContextualType(Pt.parent.parent))),ga){var ua=De.getTypeAtLocation(ce);if(!ua)return 2;Rr=De.getPropertiesOfType(ua).filter(function(jr){return De.isPropertyAccessible(ce,!1,!1,ua,jr)}),yi=ce.elements}}if(Rr&&Rr.length>0){var Xn=Xs(Rr,e.Debug.checkDefined(yi));ka=e.concatenate(ka,Xn),hs(),ce.kind===205&&nr.includeCompletionsWithObjectLiteralMethodSnippets&&nr.includeCompletionsWithInsertText&&(ps(Ji),Gr(Xn,ce))}return 1}function Ct(){if(!ut)return 0;var Ji=ut.kind===18||ut.kind===27?e.tryCast(ut.parent,e.isNamedImportsOrExports):e.isTypeKeywordTokenOrIdentifier(ut)?e.tryCast(ut.parent.parent,e.isNamedImportsOrExports):void 0;if(!Ji)return 0;e.isTypeKeywordTokenOrIdentifier(ut)||(Oi=8);var ce=(Ji.kind===269?Ji.parent.parent:Ji.parent).moduleSpecifier;if(!ce)return ji=!0,Ji.kind===269?2:0;var Rr=De.getSymbolAtLocation(ce);if(!Rr)return ji=!0,2;Qa=3,ji=!1;var yi=De.getExportsAndPropertiesOfModule(Rr),qi=new e.Set(Ji.elements.filter(function(Hr){return!ds(Hr)}).map(function(Hr){return(Hr.propertyName||Hr.name).escapedText})),je=yi.filter(function(Hr){return Hr.escapedName!=="default"&&!qi.has(Hr.escapedName)});return ka=e.concatenate(ka,je),je.length||(Oi=0),1}function sa(){var Ji,ce=ut&&(ut.kind===18||ut.kind===27)?e.tryCast(ut.parent,e.isNamedExports):void 0;if(!ce)return 0;var Rr=e.findAncestor(ce,e.or(e.isSourceFile,e.isModuleDeclaration));return Qa=5,ji=!1,(Ji=Rr.locals)===null||Ji===void 0||Ji.forEach(function(yi,qi){var je,Hr;ka.push(yi),!((Hr=(je=Rr.symbol)===null||je===void 0?void 0:je.exports)===null||Hr===void 0)&&Hr.has(qi)&&(pn[e.getSymbolId(yi)]=C.SortText.OptionalMember)}),1}function en(){var Ji=si(mr,ut,Ai,Oe);if(!Ji)return 0;if(Qa=3,ji=!0,Oi=ut.kind===41?0:e.isClassLike(Ji)?2:3,!e.isClassLike(Ji))return 1;var ce=ut.kind===26?ut.parent.parent:ut.parent,Rr=e.isClassElement(ce)?e.getEffectiveModifierFlags(ce):0;if(ut.kind===79&&!ds(ut))switch(ut.getText()){case"private":Rr=Rr|8;break;case"static":Rr=Rr|32;break;case"override":Rr=Rr|16384;break}if(e.isClassStaticBlockDeclaration(ce)&&(Rr|=32),!(Rr&8)){var yi=e.isClassLike(Ji)&&Rr&16384?e.singleElementArray(e.getEffectiveBaseTypeNode(Ji)):e.getAllSuperTypeNodes(Ji),qi=e.flatMap(yi,function(je){var Hr=De.getTypeAtLocation(je);return Rr&32?(Hr==null?void 0:Hr.symbol)&&De.getPropertiesOfType(De.getTypeOfSymbolAtLocation(Hr.symbol,Ji)):Hr&&De.getPropertiesOfType(Hr)});ka=e.concatenate(ka,Qs(qi,Ji.members,Rr))}return 1}function Wa(Ji){return!!Ji.parent&&e.isParameter(Ji.parent)&&e.isConstructorDeclaration(Ji.parent.parent)&&(e.isParameterPropertyModifier(Ji.kind)||e.isDeclarationName(Ji))}function qn(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 20:case 27:return e.isConstructorDeclaration(Ji.parent)?Ji.parent:void 0;default:if(Wa(Ji))return ce.parent}}}function mo(Ji){if(Ji){var ce,Rr=e.findAncestor(Ji.parent,function(yi){return e.isClassLike(yi)?"quit":e.isFunctionLikeDeclaration(yi)&&ce===yi.body?!0:(ce=yi,!1)});return Rr&&Rr}}function So(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 31:case 30:case 43:case 79:case 206:case 286:case 285:case 287:if(ce&&(ce.kind===279||ce.kind===280)){if(Ji.kind===31){var Rr=e.findPrecedingToken(Ji.pos,mr,void 0);if(!ce.typeArguments||Rr&&Rr.kind===43)break}return ce}else if(ce.kind===285)return ce.parent.parent;break;case 10:if(ce&&(ce.kind===285||ce.kind===287))return ce.parent.parent;break;case 19:if(ce&&ce.kind===288&&ce.parent&&ce.parent.kind===285)return ce.parent.parent.parent;if(ce&&ce.kind===287)return ce.parent.parent;break}}}function Go(Ji){var ce=Ji.parent,Rr=ce.kind;switch(Ji.kind){case 27:return Rr===254||Kc(Ji)||Rr===237||Rr===260||Pc(Rr)||Rr===258||Rr===202||Rr===259||e.isClassLike(ce)&&!!ce.typeParameters&&ce.typeParameters.end>=Ji.pos;case 24:return Rr===202;case 58:return Rr===203;case 22:return Rr===202;case 20:return Rr===292||Pc(Rr);case 18:return Rr===260;case 29:return Rr===257||Rr===226||Rr===258||Rr===259||e.isFunctionLikeKind(Rr);case 124:return Rr===167&&!e.isClassLike(ce.parent);case 25:return Rr===164||!!ce.parent&&ce.parent.kind===202;case 123:case 121:case 122:return Rr===164&&!e.isConstructorDeclaration(ce.parent);case 127:return Rr===270||Rr===275||Rr===268;case 136:case 149:return!Xi(Ji);case 79:if(Rr===270&&Ji===ce.name&&Ji.text==="type")return!1;break;case 84:case 92:case 118:case 98:case 113:case 100:case 119:case 85:case 137:return!0;case 152:return Rr!==270;case 41:return e.isFunctionLike(Ji.parent)&&!e.isMethodDeclaration(Ji.parent)}if(yr(wr(Ji))&&Xi(Ji)||Wa(Ji)&&(!e.isIdentifier(Ji)||e.isParameterPropertyModifier(wr(Ji))||ds(Ji)))return!1;switch(wr(Ji)){case 126:case 84:case 85:case 135:case 92:case 98:case 118:case 119:case 121:case 122:case 123:case 124:case 113:return!0;case 131:return e.isPropertyDeclaration(Ji.parent)}var yi=e.findAncestor(Ji.parent,e.isClassLike);if(yi&&Ji===xt&&ys(Ji,Oe))return!1;var qi=e.getAncestor(Ji.parent,167);if(qi&&Ji!==xt&&e.isClassLike(xt.parent.parent)&&Oe<=xt.end){if(ys(Ji,xt.end))return!1;if(Ji.kind!==63&&(e.isInitializedProperty(qi)||e.hasType(qi)))return!0}return e.isDeclarationName(Ji)&&!e.isShorthandPropertyAssignment(Ji.parent)&&!e.isJsxAttribute(Ji.parent)&&!(e.isClassLike(Ji.parent)&&(Ji!==xt||Oe>xt.end))}function ys(Ji,ce){return Ji.kind!==63&&(Ji.kind===26||!e.positionsAreOnSameLine(Ji.end,ce,mr))}function Pc(Ji){return e.isFunctionLikeKind(Ji)&&Ji!==171}function Vc(Ji){if(Ji.kind===8){var ce=Ji.getFullText();return ce.charAt(ce.length-1)==="."}return!1}function Kc(Ji){return Ji.parent.kind===255&&!e.isPossiblyTypeArgumentPosition(Ji,mr,De)}function Xs(Ji,ce){if(ce.length===0)return Ji;for(var Rr=new e.Set,yi=new e.Set,qi=0,je=ce;qi=0&&!b(A,y[V],115);V--);return e.forEach(m($.statement),function(L){oe($,L)&&b(A,L.getFirstToken(),81,86)}),A}function J($){var A=f($);if(A)switch(A.kind){case 242:case 243:case 244:case 240:case 241:return se(A);case 249:return ie(A)}}function ie($){var A=[];return b(A,$.getFirstToken(),107),e.forEach($.caseBlock.clauses,function(y){b(A,y.getFirstToken(),82,88),e.forEach(m(y),function(V){oe($,V)&&b(A,V.getFirstToken(),81)})}),A}function R($,A){var y=[];if(b(y,$.getFirstToken(),111),$.catchClause&&b(y,$.catchClause.getFirstToken(),83),$.finallyBlock){var V=e.findChildOfKind($,96,A);b(y,V,96)}return y}function q($,A){var y=p($);if(!!y){var V=[];return e.forEach(N(y),function(L){V.push(e.findChildOfKind(L,109,A))}),e.isFunctionBlock(y)&&e.forEachReturnStatement(y,function(L){V.push(e.findChildOfKind(L,105,A))}),V}}function O($,A){var y=e.getContainingFunction($);if(!!y){var V=[];return e.forEachReturnStatement(e.cast(y.body,e.isBlock),function(L){V.push(e.findChildOfKind(L,105,A))}),e.forEach(N(y.body),function(L){V.push(e.findChildOfKind(L,109,A))}),V}}function ve($){var A=e.getContainingFunction($);if(!!A){var y=[];return A.modifiers&&A.modifiers.forEach(function(V){b(y,V,131)}),e.forEachChild(A,function(V){he(V,function(L){e.isAwaitExpression(L)&&b(y,L.getFirstToken(),132)})}),y}}function ee($){var A=e.getContainingFunction($);if(!!A){var y=[];return e.forEachChild(A,function(V){he(V,function(L){e.isYieldExpression(L)&&b(y,L.getFirstToken(),125)})}),y}}function he($,A){A($),!e.isFunctionLike($)&&!e.isClassLike($)&&!e.isInterfaceDeclaration($)&&!e.isModuleDeclaration($)&&!e.isTypeAliasDeclaration($)&&!e.isTypeNode($)&&e.forEachChild($,function(y){return he(y,A)})}function F($,A){for(var y=x($,A),V=[],L=0;L=P.end;U--)if(!e.isWhiteSpaceSingleLine(A.text.charCodeAt(U))){Y=!1;break}if(Y){V.push({fileName:A.fileName,textSpan:e.createTextSpanFromBounds(P.getStart(),k.end),kind:"reference"}),L++;continue}}V.push(B(y[L],A))}return V}function x($,A){for(var y=[];e.isIfStatement($.parent)&&$.parent.elseStatement===$;)$=$.parent;for(;;){var V=$.getChildren(A);b(y,V[0],99);for(var L=V.length-1;L>=0&&!b(y,V[L],91);L--);if(!$.elseStatement||!e.isIfStatement($.elseStatement))break;$=$.elseStatement}return y}function X($,A){return!!e.findAncestor($.parent,function(y){return e.isLabeledStatement(y)?y.label.escapedText===A:"quit"})}})(a=e.DocumentHighlights||(e.DocumentHighlights={}))})(ke||(ke={}));var ke;(function(e){function a(Q){return!!Q.sourceFile}function C(Q,le){return w(Q,le)}e.createDocumentRegistry=C;function w(Q,le,N){le===void 0&&(le="");var p=new e.Map,m=e.createGetCanonicalFileName(!!Q);function G(){var O=e.arrayFrom(p.keys()).filter(function(ve){return ve&&ve.charAt(0)==="_"}).map(function(ve){var ee=p.get(ve),he=[];return ee.forEach(function(F,x){a(F)?he.push({name:x,scriptKind:F.sourceFile.scriptKind,refCount:F.languageServiceRefCount}):F.forEach(function(X,$){return he.push({name:x,scriptKind:$,refCount:X.languageServiceRefCount})})}),he.sort(function(F,x){return x.refCount-F.refCount}),{bucket:ve,sourceFiles:he}});return JSON.stringify(O,void 0,2)}function oe(O){return typeof O.getCompilationSettings=="function"?O.getCompilationSettings():O}function f(O,ve,ee,he,F){var x=e.toPath(O,le,m),X=E(oe(ve));return T(O,x,ve,X,ee,he,F)}function T(O,ve,ee,he,F,x,X){return J(O,ve,ee,he,F,x,!0,X)}function K(O,ve,ee,he,F){var x=e.toPath(O,le,m),X=E(oe(ve));return b(O,x,ve,X,ee,he,F)}function b(O,ve,ee,he,F,x,X){return J(O,ve,oe(ee),he,F,x,!1,X)}function se(O,ve){var ee=a(O)?O:O.get(e.Debug.checkDefined(ve,"If there are more than one scriptKind's for same document the scriptKind should be provided"));return e.Debug.assert(ve===void 0||!ee||ee.sourceFile.scriptKind===ve,"Script kind should match provided ScriptKind:".concat(ve," and sourceFile.scriptKind: ").concat(ee==null?void 0:ee.sourceFile.scriptKind,", !entry: ").concat(!ee)),ee}function J(O,ve,ee,he,F,x,X,$){var A,y,V,L;$=e.ensureScriptKind(O,$);var P=oe(ee),k=ee===P?void 0:ee,Y=$===6?100:e.getEmitScriptTarget(P),U={languageVersion:Y,impliedNodeFormat:k&&e.getImpliedNodeFormatForFile(ve,(L=(V=(y=(A=k.getCompilerHost)===null||A===void 0?void 0:A.call(k))===null||y===void 0?void 0:y.getModuleResolutionCache)===null||V===void 0?void 0:V.call(y))===null||L===void 0?void 0:L.getPackageJsonInfoCache(),k,P),setExternalModuleIndicator:e.getSetExternalModuleIndicator(P)},j=p.size,H=e.getOrUpdate(p,he,function(){return new e.Map});if(e.tracing){p.size>j&&e.tracing.instant("session","createdDocumentRegistryBucket",{configFilePath:P.configFilePath,key:he});var I=!e.isDeclarationFileName(ve)&&e.forEachEntry(p,function(g,ne){return ne!==he&&g.has(ve)&&ne});I&&e.tracing.instant("session","documentRegistryBucketOverlap",{path:ve,key1:I,key2:he})}var l=H.get(ve),d=l&&se(l,$);if(!d&&N){var D=N.getDocument(he,ve);D&&(e.Debug.assert(X),d={sourceFile:D,languageServiceRefCount:0},fe())}if(d)d.sourceFile.version!==x&&(d.sourceFile=e.updateLanguageServiceSourceFile(d.sourceFile,F,x,F.getChangeRange(d.sourceFile.scriptSnapshot)),N&&N.setDocument(he,ve,d.sourceFile)),X&&d.languageServiceRefCount++;else{var D=e.createLanguageServiceSourceFile(O,F,U,x,!1,$);N&&N.setDocument(he,ve,D),d={sourceFile:D,languageServiceRefCount:1},fe()}return e.Debug.assert(d.languageServiceRefCount!==0),d.sourceFile;function fe(){if(!l)H.set(ve,d);else if(a(l)){var g=new e.Map;g.set(l.sourceFile.scriptKind,l),g.set($,d),H.set(ve,g)}else l.set($,d)}}function ie(O,ve,ee){var he=e.toPath(O,le,m),F=E(ve);return R(he,F,ee)}function R(O,ve,ee){var he=e.Debug.checkDefined(p.get(ve)),F=he.get(O),x=se(F,ee);x.languageServiceRefCount--,e.Debug.assert(x.languageServiceRefCount>=0),x.languageServiceRefCount===0&&(a(F)?he.delete(O):(F.delete(ee),F.size===1&&he.set(O,e.firstDefinedIterator(F.values(),e.identity))))}function q(O,ve){return e.arrayFrom(p.entries(),function(ee){var he=ee[0],F=ee[1],x=F.get(O),X=x&&se(x,ve);return[he,X&&X.languageServiceRefCount]})}return{acquireDocument:f,acquireDocumentWithKey:T,updateDocument:K,updateDocumentWithKey:b,releaseDocument:ie,releaseDocumentWithKey:R,getLanguageServiceRefCounts:q,reportStats:G,getKeyForCompilationSettings:E}}e.createDocumentRegistryInternal=w;function B(Q){var le;if(Q===null||typeof Q!="object")return""+Q;if(e.isArray(Q))return"[".concat((le=e.map(Q,function(m){return B(m)}))===null||le===void 0?void 0:le.join(","),"]");var N="{";for(var p in Q)e.hasOwnProperty.call(Q,p)&&(N+="".concat(p,": ").concat(B(Q[p])));return N+"}"}function E(Q){return e.sourceFileAffectingCompilerOptions.map(function(le){return B(e.getCompilerOptionValue(Q,le))}).join("|")+(Q.pathsBasePath?"|".concat(Q.pathsBasePath):void 0)}})(ke||(ke={}));var ke;(function(e){var a;(function(C){function w(ve,ee,he,F){var x=m(ve,he,F);return function(X,$,A){var y=Q(ve,ee,x,$,he,F),V=y.directImports,L=y.indirectUsers;return Ke({indirectUsers:L},le(V,X,$.exportKind,he,A))}}C.createImportTracker=w;var B;(function(ve){ve[ve.Named=0]="Named",ve[ve.Default=1]="Default",ve[ve.ExportEquals=2]="ExportEquals"})(B=C.ExportKind||(C.ExportKind={}));var E;(function(ve){ve[ve.Import=0]="Import",ve[ve.Export=1]="Export"})(E=C.ImportExport||(C.ImportExport={}));function Q(ve,ee,he,F,x,X){var $=F.exportingModuleSymbol,A=F.exportKind,y=e.nodeSeenTracker(),V=e.nodeSeenTracker(),L=[],P=!!$.globalExports,k=P?void 0:[];return U($),{directImports:L,indirectUsers:Y()};function Y(){if(P)return ve;if($.declarations)for(var D=0,fe=$.declarations;D2&&(e.Debug.assert(U===void 0),j+=1,H-=1),e.createTextSpanFromBounds(j,H)}function A(k){return k.kind===0?k.textSpan:$(k.node,k.node.getSourceFile())}C.getTextSpanOfEntry=A;function y(k){var Y=e.getDeclarationFromName(k);return!!Y&&L(Y)||k.kind===88||e.isWriteAccess(k)}function V(k,Y){var U;if(!Y)return!1;var j=e.getDeclarationFromName(k)||(k.kind===88?k.parent:e.isLiteralComputedPropertyDeclarationName(k)||k.kind===134&&e.isConstructorDeclaration(k.parent)?k.parent.parent:void 0),H=j&&e.isBinaryExpression(j)?j.left:void 0;return!!(j&&((U=Y.declarations)===null||U===void 0?void 0:U.some(function(I){return I===j||I===H})))}function L(k){if(k.flags&16777216)return!0;switch(k.kind){case 221:case 203:case 257:case 226:case 88:case 260:case 299:case 275:case 267:case 265:case 270:case 258:case 338:case 345:case 285:case 261:case 264:case 268:case 274:case 164:case 297:case 259:case 163:return!0;case 296:return!e.isArrayLiteralOrObjectLiteralDestructuringPattern(k.parent);case 256:case 213:case 171:case 169:case 172:case 173:return!!k.body;case 254:case 167:return!!k.initializer||e.isCatchClause(k.parent);case 168:case 166:case 347:case 340:return!1;default:return e.Debug.failBadSyntaxKind(k)}}var P;(function(k){function Y(Oe,nr,Mr,Pe,Ue,fr,De){var gr,Vr;if(fr===void 0&&(fr={}),De===void 0&&(De=new e.Set(Pe.map(function(Rt){return Rt.fileName}))),nr=U(nr,fr),e.isSourceFile(nr)){var Tr=e.GoToDefinition.getReferenceAtPosition(nr,Oe,Mr);if(!(Tr!=null&&Tr.file))return;var vi=Mr.getTypeChecker().getMergedSymbol(Tr.file.symbol);if(vi)return fe(Mr,vi,!1,Pe,De);var Ui=Mr.getFileIncludeReasons();return Ui?[{definition:{type:5,reference:Tr.reference,file:nr},references:H(Tr.file,Ui,Mr)||e.emptyArray}]:void 0}if(!fr.implementations){var Yi=ne(nr,Pe,Ue);if(Yi)return Yi}var Wi=Mr.getTypeChecker(),ct=Wi.getSymbolAtLocation(e.isConstructorDeclaration(nr)&&nr.parent.name||nr);if(!ct){if(!fr.implementations&&e.isStringLiteralLike(nr)){if(e.isModuleSpecifierLike(nr)){var Ui=Mr.getFileIncludeReasons(),Li=(Vr=(gr=nr.getSourceFile().resolvedModules)===null||gr===void 0?void 0:gr.get(nr.text,e.getModeForUsageLocation(nr.getSourceFile(),nr)))===null||Vr===void 0?void 0:Vr.resolvedFileName,nt=Li?Mr.getSourceFile(Li):void 0;if(nt)return[{definition:{type:4,node:nr},references:H(nt,Ui,Mr)||e.emptyArray}]}return ae(nr,Pe,Wi,Ue)}return}if(ct.escapedName==="export=")return fe(Mr,ct.parent,!1,Pe,De);var Mt=l(ct,Mr,Pe,Ue,fr,De);if(Mt&&!(ct.flags&33554432))return Mt;var xt=I(nr,ct,Wi),ut=xt&&l(xt,Mr,Pe,Ue,fr,De),Dt=ue(ct,nr,Pe,De,Wi,Ue,fr);return d(Mr,Mt,Dt,ut)}k.getReferencedSymbolsForNode=Y;function U(Oe,nr){return nr.use===1?Oe=e.getAdjustedReferenceLocation(Oe):nr.use===2&&(Oe=e.getAdjustedRenameLocation(Oe)),Oe}k.getAdjustedNode=U;function j(Oe,nr,Mr,Pe){var Ue,fr;Pe===void 0&&(Pe=new e.Set(Mr.map(function(Tr){return Tr.fileName})));var De=(Ue=nr.getSourceFile(Oe))===null||Ue===void 0?void 0:Ue.symbol;if(De)return((fr=fe(nr,De,!1,Mr,Pe)[0])===null||fr===void 0?void 0:fr.references)||e.emptyArray;var gr=nr.getFileIncludeReasons(),Vr=nr.getSourceFile(Oe);return Vr&&gr&&H(Vr,gr,nr)||e.emptyArray}k.getReferencesForFileName=j;function H(Oe,nr,Mr){for(var Pe,Ue=nr.get(Oe.path)||e.emptyArray,fr=0,De=Ue;fr=0&&!(gr>Mr.end);){var Vr=gr+De;(gr===0||!e.isIdentifierPart(Ue.charCodeAt(gr-1),99))&&(Vr===fr||!e.isIdentifierPart(Ue.charCodeAt(Vr),99))&&Pe.push(gr),gr=Ue.indexOf(nr,gr+De+1)}return Pe}function Ye(Oe,nr){var Mr=Oe.getSourceFile(),Pe=nr.text,Ue=e.mapDefined(ir(Mr,Pe,Oe),function(fr){return fr===nr||e.isJumpStatementTarget(fr)&&e.getTargetLabel(fr,Pe)===nr?E(fr):void 0});return[{definition:{type:1,node:nr},references:Ue}]}function Br(Oe,nr){switch(Oe.kind){case 80:if(e.isJSDocMemberName(Oe.parent))return!0;case 79:return Oe.text.length===nr.length;case 14:case 10:{var Mr=Oe;return(e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Mr)||e.isNameOfModuleDeclaration(Oe)||e.isExpressionOfExternalModuleImportEqualsDeclaration(Oe)||e.isCallExpression(Oe.parent)&&e.isBindableObjectDefinePropertyCall(Oe.parent)&&Oe.parent.arguments[1]===Oe)&&Mr.text.length===nr.length}case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Oe)&&Oe.text.length===nr.length;case 88:return nr.length===7;default:return!1}}function Er(Oe,nr){var Mr=e.flatMap(Oe,function(Pe){return nr.throwIfCancellationRequested(),e.mapDefined(ir(Pe,"meta",Pe),function(Ue){var fr=Ue.parent;if(e.isImportMeta(fr))return E(fr)})});return Mr.length?[{definition:{type:2,node:Mr[0].node},references:Mr}]:void 0}function Ne(Oe,nr,Mr,Pe){var Ue=e.flatMap(Oe,function(fr){return Mr.throwIfCancellationRequested(),e.mapDefined(ir(fr,e.tokenToString(nr),fr),function(De){if(De.kind===nr&&(!Pe||Pe(De)))return E(De)})});return Ue.length?[{definition:{type:2,node:Ue[0].node},references:Ue}]:void 0}function n(Oe,nr,Mr,Pe){return Pe===void 0&&(Pe=!0),Mr.cancellationToken.throwIfCancellationRequested(),lr(Oe,Oe,nr,Mr,Pe)}function lr(Oe,nr,Mr,Pe,Ue){if(!!Pe.markSearchedSymbols(nr,Mr.allSearchSymbols))for(var fr=0,De=Cr(nr,Mr.text,Oe);fr0;Ae--){var de=we[Ae];he(Ie,de)}return[we.length-1,we[0]]}function he(Ie,_e){var we=q(Ie,_e);J(p,we),N.push(p),m.push(G),G=void 0,p=we}function F(){p.children&&(y(p.children,p),I(p.children)),p=N.pop(),G=m.pop()}function x(Ie,_e,we){he(Ie,we),A(_e),F()}function X(Ie){Ie.initializer&&He(Ie.initializer)?(he(Ie),e.forEachChild(Ie.initializer,A),F()):x(Ie,Ie.initializer)}function $(Ie){return!e.hasDynamicName(Ie)||Ie.kind!==221&&e.isPropertyAccessExpression(Ie.name.expression)&&e.isIdentifier(Ie.name.expression.expression)&&e.idText(Ie.name.expression.expression)==="Symbol"}function A(Ie){var _e;if(Q.throwIfCancellationRequested(),!(!Ie||e.isToken(Ie)))switch(Ie.kind){case 171:var we=Ie;x(we,we.body);for(var de=0,ye=we.parameters;de0&&(he(Ur,or),e.forEachChild(Ur.right,A),F()):e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,or):(he(Ur,or),x(Ie,Ur.right,ii.name),F()),ve(pe);return}case 7:case 9:{var qr=Ie,or=wr===7?qr.arguments[0]:qr.arguments[0].expression,si=qr.arguments[1],Di=ee(Ie,or),pe=Di[0],wi=Di[1];he(Ie,wi),he(Ie,e.setTextRange(e.factory.createIdentifier(si.text),si)),A(Ie.arguments[2]),F(),F(),ve(pe);return}case 5:{var Ur=Ie,ii=Ur.left,Xi=ii.expression;if(e.isIdentifier(Xi)&&e.getElementOrPropertyAccessName(ii)!=="prototype"&&G&&G.has(Xi.text)){e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,Xi):e.isBindableStaticAccessExpression(ii)&&(he(Ur,Xi),x(Ur.left,Ur.right,e.getNameOrArgument(ii)),F());return}break}case 4:case 0:case 8:break;default:e.Debug.assertNever(wr)}}default:e.hasJSDocNodes(Ie)&&e.forEach(Ie.jsDoc,function(et){e.forEach(et.tags,function(Gi){e.isJSDocTypeAlias(Gi)&&R(Gi)})}),e.forEachChild(Ie,A)}}function y(Ie,_e){var we=new e.Map;e.filterMutate(Ie,function(de,ye){var Ae=de.name||e.getNameOfDeclaration(de.node),er=Ae&&b(Ae);if(!er)return!0;var ir=we.get(er);if(!ir)return we.set(er,de),!0;if(ir instanceof Array){for(var Cr=0,Ye=ir;Cr0)return rr(we)}switch(Ie.kind){case 305:var de=Ie;return e.isExternalModule(de)?'"'.concat(e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(de.fileName)))),'"'):"";case 271:return e.isExportAssignment(Ie)&&Ie.isExportEquals?"export=":"default";case 214:case 256:case 213:case 257:case 226:return e.getSyntacticModifierFlags(Ie)&512?"default":ze(Ie);case 171:return"constructor";case 175:return"new()";case 174:return"()";case 176:return"[]";default:return""}}function fe(Ie){var _e=[];function we(ye){if(de(ye)&&(_e.push(ye),ye.children))for(var Ae=0,er=ye.children;Ae0)return rr(e.declarationNameToString(Ie.name));if(e.isVariableDeclaration(_e))return rr(e.declarationNameToString(_e.name));if(e.isBinaryExpression(_e)&&_e.operatorToken.kind===63)return b(_e.left).replace(B,"");if(e.isPropertyAssignment(_e))return b(_e.name);if(e.getSyntacticModifierFlags(Ie)&512)return"default";if(e.isClassLike(Ie))return"";if(e.isCallExpression(_e)){var we=Ee(_e.expression);if(we!==void 0){if(we=rr(we),we.length>E)return"".concat(we," callback");var de=rr(e.mapDefined(_e.arguments,function(ye){return e.isStringLiteralLike(ye)?ye.getText(le):void 0}).join(", "));return"".concat(we,"(").concat(de,") callback")}}return""}function Ee(Ie){if(e.isIdentifier(Ie))return Ie.text;if(e.isPropertyAccessExpression(Ie)){var _e=Ee(Ie.expression),we=Ie.name.text;return _e===void 0?we:"".concat(_e,".").concat(we)}else return}function He(Ie){switch(Ie.kind){case 214:case 213:case 226:return!0;default:return!1}}function rr(Ie){return Ie=Ie.length>E?Ie.substring(0,E)+"...":Ie,Ie.replace(/\\?(\r?\n|\r|\u2028|\u2029)/g,"")}})(a=e.NavigationBar||(e.NavigationBar={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){function w(x,X,$,A,y,V){var L=e.textChanges.ChangeTracker.fromContext({host:$,formatContext:X,preferences:y}),P=function(D){return e.stableSort(p(Q(D,x,A,V)),function(fe,g){return O(fe,g)})},k=B(x,x.statements.filter(e.isImportDeclaration));k.forEach(function(D){return d(D,P)});var Y=x.statements.filter(e.isExportDeclaration);d(Y,G);for(var U=0,j=x.statements.filter(e.isAmbientModule);U=2))return!0}return!1}function Q(x,X,$,A){if(A)return x;for(var y=$.getTypeChecker(),V=$.getCompilerOptions(),L=y.getJsxNamespace(X),P=y.getJsxFragmentFactory(X),k=!!(X.transformFlags&2),Y=[],U=0,j=x;U0?j[0]:I[0],ge=Z.length===0?ne?void 0:e.factory.createNamedImports(e.emptyArray):I.length===0?e.factory.createNamedImports(Z):e.factory.updateNamedImports(I[0].importClause.namedBindings,Z);U&&ne&&ge?(L.push(oe(Be,ne,void 0)),L.push(oe((X=I[0])!==null&&X!==void 0?X:Be,void 0,ge))):L.push(oe(Be,ne,ge))}}return L}C.coalesceImports=p;function m(x){for(var X,$={defaultImports:[],namespaceImports:[],namedImports:[]},A={defaultImports:[],namespaceImports:[],namedImports:[]},y=0,V=x;y1&&ie.push(m(q,O,"comment"))}}function p(b,se,J,ie){e.isJsxText(b)||N(b.pos,se,J,ie)}function m(b,se,J){return T(e.createTextSpanFromBounds(b,se),J)}function G(b,se){switch(b.kind){case 235:if(e.isFunctionLike(b.parent))return oe(b.parent,b,se);switch(b.parent.kind){case 240:case 243:case 244:case 242:case 239:case 241:case 248:case 292:return x(b.parent);case 252:var J=b.parent;if(J.tryBlock===b)return x(b.parent);if(J.finallyBlock===b){var ie=e.findChildOfKind(J,96,se);if(ie)return x(ie)}default:return T(e.createTextSpanFromNode(b,se),"code")}case 262:return x(b.parent);case 257:case 226:case 258:case 260:case 263:case 182:case 201:return x(b);case 184:return x(b,!1,!e.isTupleTypeNode(b.parent),22);case 289:case 290:return X(b.statements);case 205:return F(b);case 204:return F(b,22);case 278:return O(b);case 282:return ve(b);case 279:case 280:return ee(b.attributes);case 223:case 14:return he(b);case 202:return x(b,!1,!e.isBindingElement(b.parent),22);case 214:return q(b);case 208:return R(b);case 212:return $(b)}function R(A){if(!!A.arguments.length){var y=e.findChildOfKind(A,20,se),V=e.findChildOfKind(A,21,se);if(!(!y||!V||e.positionsAreOnSameLine(y.pos,V.pos,se)))return f(y,V,A,se,!1,!0)}}function q(A){if(!(e.isBlock(A.body)||e.isParenthesizedExpression(A.body)||e.positionsAreOnSameLine(A.body.getFullStart(),A.body.getEnd(),se))){var y=e.createTextSpanFromBounds(A.body.getFullStart(),A.body.getEnd());return T(y,"code",e.createTextSpanFromNode(A))}}function O(A){var y=e.createTextSpanFromBounds(A.openingElement.getStart(se),A.closingElement.getEnd()),V=A.openingElement.tagName.getText(se),L="<"+V+">...";return T(y,"code",y,!1,L)}function ve(A){var y=e.createTextSpanFromBounds(A.openingFragment.getStart(se),A.closingFragment.getEnd()),V="<>...";return T(y,"code",y,!1,V)}function ee(A){if(A.properties.length!==0)return m(A.getStart(se),A.getEnd(),"code")}function he(A){if(!(A.kind===14&&A.text.length===0))return m(A.getStart(se),A.getEnd(),"code")}function F(A,y){return y===void 0&&(y=18),x(A,!1,!e.isArrayLiteralExpression(A.parent)&&!e.isCallExpression(A.parent),y)}function x(A,y,V,L,P){y===void 0&&(y=!1),V===void 0&&(V=!0),L===void 0&&(L=18),P===void 0&&(P=L===18?19:23);var k=e.findChildOfKind(b,L,se),Y=e.findChildOfKind(b,P,se);return k&&Y&&f(k,Y,A,se,y,V)}function X(A){return A.length?T(e.createTextSpanFromRange(A),"code"):void 0}function $(A){if(!e.positionsAreOnSameLine(A.getStart(),A.getEnd(),se)){var y=e.createTextSpanFromBounds(A.getStart(),A.getEnd());return T(y,"code",e.createTextSpanFromNode(A))}}}function oe(b,se,J){var ie=K(b,se,J),R=e.findChildOfKind(se,19,J);return ie&&R&&f(ie,R,b,J,b.kind!==214)}function f(b,se,J,ie,R,q){R===void 0&&(R=!1),q===void 0&&(q=!0);var O=e.createTextSpanFromBounds(q?b.getFullStart():b.getStart(ie),se.getEnd());return T(O,"code",e.createTextSpanFromNode(J,ie),R)}function T(b,se,J,ie,R){return J===void 0&&(J=b),ie===void 0&&(ie=!1),R===void 0&&(R="..."),{textSpan:b,kind:se,hintSpan:J,bannerText:R,autoCollapse:ie}}function K(b,se,J){if(e.isNodeArrayMultiLine(b.parameters,J)){var ie=e.findChildOfKind(b,20,J);if(ie)return ie}return e.findChildOfKind(se,18,J)}})(a=e.OutliningElementsCollector||(e.OutliningElementsCollector={}))})(ke||(ke={}));var ke;(function(e){var a;(function(y){y[y.exact=0]="exact",y[y.prefix=1]="prefix",y[y.substring=2]="substring",y[y.camelCase=3]="camelCase"})(a=e.PatternMatchKind||(e.PatternMatchKind={}));function C(y,V){return{kind:y,isCaseSensitive:V}}function w(y){var V=new e.Map,L=y.trim().split(".").map(function(P){return f(P.trim())});if(!L.some(function(P){return!P.subWordTextChunks.length}))return{getFullMatch:function(P,k){return B(P,k,L,V)},getMatchForLastSegmentOfPattern:function(P){return le(P,e.last(L),V)},patternContainsDots:L.length>1}}e.createPatternMatcher=w;function B(y,V,L,P){var k=le(V,e.last(L),P);if(!!k&&!(L.length-1>y.length)){for(var Y,U=L.length-2,j=y.length-1;U>=0;U-=1,j-=1)Y=N(Y,le(y[j],L[U],P));return Y}}function E(y,V){var L=V.get(y);return L||V.set(y,L=ve(y)),L}function Q(y,V,L){var P=b(y,V.textLowerCase);if(P===0)return C(V.text.length===y.length?a.exact:a.prefix,e.startsWith(y,V.text));if(V.isLowerCase){if(P===-1)return;for(var k=E(y,L),Y=0,U=k;Y0)return C(a.substring,!0);if(V.characterSpans.length>0){var H=E(y,L),I=oe(y,H,V,!1)?!0:oe(y,H,V,!0)?!1:void 0;if(I!==void 0)return C(a.camelCase,I)}}}function le(y,V,L){if(A(V.totalTextChunk.text,function(I){return I!==32&&I!==42})){var P=Q(y,V.totalTextChunk,L);if(P)return P}for(var k=V.subWordTextChunks,Y,U=0,j=k;U=65&&y<=90)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toUpperCase()}function K(y){if(y>=97&&y<=122)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toLowerCase()}function b(y,V){for(var L=y.length-V.length,P=function(U){if(A(V,function(j,H){return se(y.charCodeAt(H+U))===j}))return{value:U}},k=0;k<=L;k++){var Y=P(k);if(typeof Y=="object")return Y.value}return-1}function se(y){return y>=65&&y<=90?97+(y-65):y<127?y:String.fromCharCode(y).toLowerCase().charCodeAt(0)}function J(y){return y>=48&&y<=57}function ie(y){return T(y)||K(y)||J(y)||y===95||y===36}function R(y){for(var V=[],L=0,P=0,k=0;k0&&(V.push(q(y.substr(L,P))),P=0)}return P>0&&V.push(q(y.substr(L,P))),V}function q(y){var V=y.toLowerCase();return{text:y,textLowerCase:V,isLowerCase:y===V,characterSpans:O(y)}}function O(y){return ee(y,!1)}e.breakIntoCharacterSpans=O;function ve(y){return ee(y,!0)}e.breakIntoWordSpans=ve;function ee(y,V){for(var L=[],P=0,k=1;kf)break e;var ve=e.singleOrUndefined(e.getTrailingCommentRanges(T.text,q.end));if(ve&&ve.kind===2&&A(ve.pos,ve.end),B(T,f,q)){if(e.isBlock(q)||e.isTemplateSpan(q)||e.isTemplateHead(q)||e.isTemplateTail(q)||R&&e.isTemplateHead(R)||e.isVariableDeclarationList(q)&&e.isVariableStatement(se)||e.isSyntaxList(q)&&e.isVariableDeclarationList(se)||e.isVariableDeclaration(q)&&e.isSyntaxList(se)&&J.length===1||e.isJSDocTypeExpression(q)||e.isJSDocSignature(q)||e.isJSDocTypeLiteral(q)){se=q;break}if(e.isTemplateSpan(se)&&O&&e.isTemplateMiddleOrTemplateTail(O)){var ee=q.getFullStart()-2,he=O.getStart()+1;$(ee,he)}var F=e.isSyntaxList(q)&&m(R)&&G(O)&&!e.positionsAreOnSameLine(R.getStart(),O.getStart(),T),x=F?R.getEnd():q.getStart(),X=F?O.getStart():oe(T,q);e.hasJSDocNodes(q)&&((K=q.jsDoc)===null||K===void 0?void 0:K.length)&&$(e.first(q.jsDoc).getStart(),X),$(x,X),(e.isStringLiteral(q)||e.isTemplateLiteral(q))&&$(x+1,X-1),se=q;break}if(ie===J.length-1)break e}}return b;function $(y,V){if(y!==V){var L=e.createTextSpanFromBounds(y,V);(!b||!e.textSpansEqual(L,b.textSpan)&&e.textSpanIntersectsWithPosition(L,f))&&(b=Ke({textSpan:L},b&&{parent:b}))}}function A(y,V){$(y,V);for(var L=y;T.text.charCodeAt(L)===47;)L++;$(L,V)}}C.getSmartSelectionRange=w;function B(f,T,K){if(e.Debug.assert(K.pos<=T),T0&&e.last(D).kind===27&&fe++,fe}function O(l,d,D,fe){return e.Debug.assert(D>=d.getStart(),"Assumed 'position' could not occur before node."),e.isTemplateLiteralToken(d)?e.isInsideTemplateLiteral(d,D,fe)?0:l+2:l+1}function ve(l,d,D){var fe=e.isNoSubstitutionTemplateLiteral(l.template)?1:l.template.templateSpans.length+1;return d!==0&&e.Debug.assertLessThan(d,fe),{isTypeParameterList:!1,invocation:{kind:0,node:l},argumentsSpan:he(l,D),argumentIndex:d,argumentCount:fe}}function ee(l,d){var D=l.getFullStart(),fe=e.skipTrivia(d.text,l.getEnd(),!1);return e.createTextSpan(D,fe-D)}function he(l,d){var D=l.template,fe=D.getStart(),g=D.getEnd();if(D.kind===223){var ne=e.last(D.templateSpans);ne.literal.getFullWidth()===0&&(g=e.skipTrivia(d.text,g,!1))}return e.createTextSpan(fe,g-fe)}function F(l,d,D,fe,g){for(var ne=function(Fe){e.Debug.assert(e.rangeContainsRange(Fe.parent,Fe),"Not a subspan",function(){return"Child: ".concat(e.Debug.formatSyntaxKind(Fe.kind),", parent: ").concat(e.Debug.formatSyntaxKind(Fe.parent.kind))});var Z=T(Fe,d,D,fe);if(Z)return{value:Z}},ue=l;!e.isSourceFile(ue)&&(g||!e.isBlock(ue));ue=ue.parent){var We=ne(ue);if(typeof We=="object")return We.value}}function x(l,d,D){var fe=l.getChildren(D),g=fe.indexOf(d);return e.Debug.assert(g>=0&&fe.length>g+1),fe[g+1]}function X(l){return l.kind===0?e.getInvokedExpression(l.node):l.called}function $(l){return l.kind===0?l.node:l.kind===1?l.called:l.node}var A=70246400;function y(l,d,D,fe,g,ne){var ue,We=D.isTypeParameterList,Fe=D.argumentCount,Z=D.argumentsSpan,Be=D.invocation,ge=D.argumentIndex,Re=$(Be),ze=Be.kind===2?Be.symbol:g.getSymbolAtLocation(X(Be))||ne&&((ue=d.declaration)===null||ue===void 0?void 0:ue.symbol),Ee=ze?e.symbolToDisplayParts(g,ze,ne?fe:void 0,void 0):e.emptyArray,He=e.map(l,function(Br){return k(Br,Ee,We,g,Re,fe)});ge!==0&&e.Debug.assertLessThan(ge,Fe);for(var rr=0,Ie=0,_e=0;_e1))for(var de=0,ye=0,Ae=we;ye=Fe){rr=Ie+de;break}de++}Ie+=we.length}e.Debug.assert(rr!==-1);var ir={items:e.flatMapToMutable(He,e.identity),applicableSpan:Z,selectedItemIndex:rr,argumentIndex:ge,argumentCount:Fe},Cr=ir.items[rr];if(Cr.isVariadic){var Ye=e.findIndex(Cr.parameters,function(Br){return!!Br.isRest});-1j?U.substr(0,j-3)+"...":U}function k(U){var j=71286784,H={removeComments:!0},I=e.createPrinter(H);return e.usingSingleLineStringWriter(function(l){var d=b.typeToTypeNode(U,void 0,j,l);e.Debug.assertIsDefined(d,"should always get typenode"),I.writeNode(4,d,p,l)})}function Y(U){return U==="undefined"}}C.provideInlayHints=le})(a=e.InlayHints||(e.InlayHints={}))})(ke||(ke={}));var ke;(function(e){var a=/^data:(?:application\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\/=]+)$)?/;function C(Q){var le=e.createGetCanonicalFileName(Q.useCaseSensitiveFileNames()),N=Q.getCurrentDirectory(),p=new e.Map,m=new e.Map;return{tryGetSourcePosition:f,tryGetGeneratedPosition:T,toLineColumnOffset:J,clearCache:ie};function G(R){return e.toPath(R,N,le)}function oe(R,q){var O=G(R),ve=m.get(O);if(ve)return ve;var ee;if(Q.getDocumentPositionMapper)ee=Q.getDocumentPositionMapper(R,q);else if(Q.readFile){var he=se(R);ee=he&&e.getDocumentPositionMapper({getSourceFileLike:se,getCanonicalFileName:le,log:function(F){return Q.log(F)}},R,e.getLineInfo(he.text,e.getLineStarts(he)),function(F){return!Q.fileExists||Q.fileExists(F)?Q.readFile(F):void 0})}return m.set(O,ee||e.identitySourceMapConsumer),ee||e.identitySourceMapConsumer}function f(R){if(!!e.isDeclarationFileName(R.fileName)){var q=K(R.fileName);if(!!q){var O=oe(R.fileName).getSourcePosition(R);return!O||O===R?void 0:f(O)||O}}}function T(R){if(!e.isDeclarationFileName(R.fileName)){var q=K(R.fileName);if(!!q){var O=Q.getProgram();if(!O.isSourceOfProjectReferenceRedirect(q.fileName)){var ve=O.getCompilerOptions(),ee=e.outFile(ve),he=ee?e.removeFileExtension(ee)+".d.ts":e.getDeclarationEmitOutputFilePathWorker(R.fileName,O.getCompilerOptions(),N,O.getCommonSourceDirectory(),le);if(he!==void 0){var F=oe(he,R.fileName).getGeneratedPosition(R);return F===R?void 0:F}}}}}function K(R){var q=Q.getProgram();if(!!q){var O=G(R),ve=q.getSourceFileByPath(O);return ve&&ve.resolvedPath===O?ve:void 0}}function b(R){var q=G(R),O=p.get(q);if(O!==void 0)return O||void 0;if(!Q.readFile||Q.fileExists&&!Q.fileExists(q)){p.set(q,!1);return}var ve=Q.readFile(q),ee=ve?E(ve):!1;return p.set(q,ee),ee||void 0}function se(R){return Q.getSourceFileLike?Q.getSourceFileLike(R):K(R)||b(R)}function J(R,q){var O=se(R);return O.getLineAndCharacterOfPosition(q)}function ie(){p.clear(),m.clear()}}e.getSourceMapper=C;function w(Q,le,N,p){var m=e.tryGetSourceMappingURL(N);if(m){var G=a.exec(m);if(G){if(G[1]){var oe=G[1];return B(Q,e.base64decode(e.sys,oe),le)}m=void 0}}var f=[];m&&f.push(m),f.push(le+".map");for(var T=m&&e.getNormalizedAbsolutePath(m,e.getDirectoryPath(le)),K=0,b=f;Kq?!1:ie.arguments.length0?e.arrayFrom(oe.values()).join(","):""}C.getSymbolModifiers=le;function N(m,G,oe,f,T,K,b){var se;K===void 0&&(K=e.getMeaningFromLocation(T));var J=[],ie=[],R=[],q=e.getCombinedLocalAndExportSymbolFlags(G),O=K&1?E(m,G,T):"",ve=!1,ee=T.kind===108&&e.isInExpressionContext(T)||e.isThisInTypeQuery(T),he,F,x,X,$=!1;if(T.kind===108&&!ee)return{displayParts:[e.keywordPart(108)],documentation:[],symbolKind:"primitive type",tags:void 0};if(O!==""||q&32||q&2097152){if(O==="getter"||O==="setter"){var A=e.find(G.declarations,function(er){return er.name===T});if(A)switch(A.kind){case 172:O="getter";break;case 173:O="setter";break;default:e.Debug.assertNever(A)}else O="property"}var y=void 0;if(he=ee?m.getTypeAtLocation(T):m.getTypeOfSymbolAtLocation(G,T),T.parent&&T.parent.kind===206){var V=T.parent.name;(V===T||V&&V.getFullWidth()===0)&&(T=T.parent)}var L=void 0;if(e.isCallOrNewExpression(T)?L=T:(e.isCallExpressionTarget(T)||e.isNewExpressionTarget(T)||T.parent&&(e.isJsxOpeningLikeElement(T.parent)||e.isTaggedTemplateExpression(T.parent))&&e.isFunctionLike(G.valueDeclaration))&&(L=T.parent),L){y=m.getResolvedSignature(L);var P=L.kind===209||e.isCallExpression(L)&&L.expression.kind===106,k=P?he.getConstructSignatures():he.getCallSignatures();if(y&&!e.contains(k,y.target)&&!e.contains(k,y)&&(y=k.length?k[0]:void 0),y){switch(P&&q&32?(O="constructor",we(he.symbol,O)):q&2097152?(O="alias",de(O),J.push(e.spacePart()),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),_e(G)):we(G,O),O){case"JSX attribute":case"property":case"var":case"const":case"let":case"parameter":case"local var":J.push(e.punctuationPart(58)),J.push(e.spacePart()),!(e.getObjectFlags(he)&16)&&he.symbol&&(e.addRange(J,e.symbolToDisplayParts(m,he.symbol,f,void 0,5)),J.push(e.lineBreakPart())),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),ye(y,k,262144);break;default:ye(y,k)}ve=!0,$=k.length>1}}else if(e.isNameOfFunctionDeclaration(T)&&!(q&98304)||T.kind===134&&T.parent.kind===171){var Y=T.parent,U=G.declarations&&e.find(G.declarations,function(er){return er===(T.kind===134?Y.parent:Y)});if(U){var k=Y.kind===171?he.getNonNullableType().getConstructSignatures():he.getNonNullableType().getCallSignatures();m.isImplementationOfOverload(Y)?y=k[0]:y=m.getSignatureFromDeclaration(Y),Y.kind===171?(O="constructor",we(he.symbol,O)):we(Y.kind===174&&!(he.symbol.flags&2048||he.symbol.flags&4096)?he.symbol:G,O),y&&ye(y,k),ve=!0,$=k.length>1}}}if(q&32&&!ve&&!ee&&(rr(),e.getDeclarationOfKind(G,226)?de("local class"):J.push(e.keywordPart(84)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&64&&K&2&&(He(),J.push(e.keywordPart(118)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&524288&&K&2&&(He(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(G),Ae(G,oe),J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),e.addRange(J,e.typeToDisplayParts(m,e.isConstTypeReference(T.parent)?m.getTypeAtLocation(T.parent):m.getDeclaredTypeOfSymbol(G),f,8388608))),q&384&&(He(),e.some(G.declarations,function(er){return e.isEnumDeclaration(er)&&e.isEnumConst(er)})&&(J.push(e.keywordPart(85)),J.push(e.spacePart())),J.push(e.keywordPart(92)),J.push(e.spacePart()),_e(G)),q&1536&&!ee){He();var A=e.getDeclarationOfKind(G,261),j=A&&A.name&&A.name.kind===79;J.push(e.keywordPart(j?142:141)),J.push(e.spacePart()),_e(G)}if(q&262144&&K&2)if(He(),J.push(e.punctuationPart(20)),J.push(e.textPart("type parameter")),J.push(e.punctuationPart(21)),J.push(e.spacePart()),_e(G),G.parent)Ie(),_e(G.parent,f),Ae(G.parent,f);else{var H=e.getDeclarationOfKind(G,163);if(H===void 0)return e.Debug.fail();var A=H.parent;if(A)if(e.isFunctionLikeKind(A.kind)){Ie();var y=m.getSignatureFromDeclaration(A);A.kind===175?(J.push(e.keywordPart(103)),J.push(e.spacePart())):A.kind!==174&&A.name&&_e(A.symbol),e.addRange(J,e.signatureToDisplayParts(m,y,oe,32))}else A.kind===259&&(Ie(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(A.symbol),Ae(A.symbol,oe))}if(q&8){O="enum member",we(G,"enum member");var A=(se=G.declarations)===null||se===void 0?void 0:se[0];if((A==null?void 0:A.kind)===299){var I=m.getConstantValue(A);I!==void 0&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.displayPart(e.getTextOfConstantValue(I),typeof I=="number"?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}}if(G.flags&2097152){if(He(),!ve){var l=m.getAliasedSymbol(G);if(l!==G&&l.declarations&&l.declarations.length>0){var d=l.declarations[0],D=e.getNameOfDeclaration(d);if(D){var fe=e.isModuleWithStringLiteralName(d)&&e.hasSyntacticModifier(d,2),g=G.name!=="default"&&!fe,ne=N(m,l,e.getSourceFileOfNode(d),d,D,K,g?G:l);J.push.apply(J,ne.displayParts),J.push(e.lineBreakPart()),x=ne.documentation,X=ne.tags}else x=l.getContextualDocumentationComment(d,m),X=l.getJsDocTags(m)}}if(G.declarations)switch(G.declarations[0].kind){case 264:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(142));break;case 271:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(G.declarations[0].isExportEquals?63:88));break;case 275:J.push(e.keywordPart(93));break;default:J.push(e.keywordPart(100))}J.push(e.spacePart()),_e(G),e.forEach(G.declarations,function(er){if(er.kind===265){var ir=er;if(e.isExternalModuleImportEqualsDeclaration(ir))J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.keywordPart(146)),J.push(e.punctuationPart(20)),J.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(ir)),e.SymbolDisplayPartKind.stringLiteral)),J.push(e.punctuationPart(21));else{var Cr=m.getSymbolAtLocation(ir.moduleReference);Cr&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),_e(Cr,f))}return!0}})}if(!ve)if(O!==""){if(he){if(ee?(He(),J.push(e.keywordPart(108))):we(G,O),O==="property"||O==="getter"||O==="setter"||O==="JSX attribute"||q&3||O==="local var"||ee){if(J.push(e.punctuationPart(58)),J.push(e.spacePart()),he.symbol&&he.symbol.flags&262144){var ue=e.mapToDisplayParts(function(er){var ir=m.typeParameterToDeclaration(he,f,w);Ee().writeNode(4,ir,e.getSourceFileOfNode(e.getParseTreeNode(f)),er)});e.addRange(J,ue)}else e.addRange(J,e.typeToDisplayParts(m,he,f));if(G.target&&G.target.tupleLabelDeclaration){var We=G.target.tupleLabelDeclaration;e.Debug.assertNode(We.name,e.isIdentifier),J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.textPart(e.idText(We.name))),J.push(e.punctuationPart(21))}}else if(q&16||q&8192||q&16384||q&131072||q&98304||O==="method"){var k=he.getNonNullableType().getCallSignatures();k.length&&(ye(k[0],k),$=k.length>1)}}}else O=B(m,G,T);if(ie.length===0&&!$&&(ie=G.getContextualDocumentationComment(f,m)),ie.length===0&&q&4&&G.parent&&G.declarations&&e.forEach(G.parent.declarations,function(er){return er.kind===305}))for(var Fe=0,Z=G.declarations;Fe0))break}}if(ie.length===0&&e.isIdentifier(T)&&G.valueDeclaration&&e.isBindingElement(G.valueDeclaration)){var A=G.valueDeclaration,ge=A.parent;if(e.isIdentifier(A.name)&&e.isObjectBindingPattern(ge)){var Re=e.getTextOfIdentifierOrLiteral(A.name),ze=m.getTypeAtLocation(ge);ie=e.firstDefined(ze.isUnion()?ze.types:[ze],function(ir){var Cr=ir.getProperty(Re);return Cr?Cr.getDocumentationComment(m):void 0})||e.emptyArray}}return R.length===0&&!$&&(R=G.getContextualJsDocTags(f,m)),ie.length===0&&x&&(ie=x),R.length===0&&X&&(R=X),{displayParts:J,documentation:ie,symbolKind:O,tags:R.length===0?void 0:R};function Ee(){return F||(F=e.createPrinter({removeComments:!0})),F}function He(){J.length&&J.push(e.lineBreakPart()),rr()}function rr(){b&&(de("alias"),J.push(e.spacePart()))}function Ie(){J.push(e.spacePart()),J.push(e.keywordPart(101)),J.push(e.spacePart())}function _e(er,ir){b&&er===G&&(er=b);var Cr=e.symbolToDisplayParts(m,er,ir||oe,void 0,7);e.addRange(J,Cr),G.flags&16777216&&J.push(e.punctuationPart(57))}function we(er,ir){He(),ir&&(de(ir),er&&!e.some(er.declarations,function(Cr){return e.isArrowFunction(Cr)||(e.isFunctionExpression(Cr)||e.isClassExpression(Cr))&&!Cr.name})&&(J.push(e.spacePart()),_e(er)))}function de(er){switch(er){case"var":case"function":case"let":case"const":case"constructor":J.push(e.textOrKeywordPart(er));return;default:J.push(e.punctuationPart(20)),J.push(e.textOrKeywordPart(er)),J.push(e.punctuationPart(21));return}}function ye(er,ir,Cr){Cr===void 0&&(Cr=0),e.addRange(J,e.signatureToDisplayParts(m,er,f,Cr|32)),ir.length>1&&(J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.operatorPart(39)),J.push(e.displayPart((ir.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),J.push(e.spacePart()),J.push(e.textPart(ir.length===2?"overload":"overloads")),J.push(e.punctuationPart(21))),ie=er.getDocumentationComment(m),R=er.getJsDocTags(),ir.length>1&&ie.length===0&&R.length===0&&(ie=ir[0].getDocumentationComment(m),R=ir[0].getJsDocTags())}function Ae(er,ir){var Cr=e.mapToDisplayParts(function(Ye){var Br=m.symbolToTypeParameterDeclarations(er,ir,w);Ee().writeList(53776,Br,e.getSourceFileOfNode(e.getParseTreeNode(ir)),Ye)});e.addRange(J,Cr)}}C.getSymbolDisplayPartsDocumentationAndSymbolKind=N;function p(m){return m.parent?!1:e.forEach(m.declarations,function(G){if(G.kind===213)return!0;if(G.kind!==254&&G.kind!==256)return!1;for(var oe=G.parent;!e.isFunctionBlock(oe);oe=oe.parent)if(oe.kind===305||oe.kind===262)return!1;return!0})}})(a=e.SymbolDisplay||(e.SymbolDisplay={}))})(ke||(ke={}));var ke;(function(e){function a(E,Q){var le=[],N=Q.compilerOptions?B(Q.compilerOptions,le):{},p=e.getDefaultCompilerOptions();for(var m in p)e.hasProperty(p,m)&&N[m]===void 0&&(N[m]=p[m]);for(var G=0,oe=e.transpileOptionValueCompilerOptions;G>=m;return ie}function b(se,J){var ie=(se>>J&G)+1;return e.Debug.assert((ie&G)===ie,"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."),se&~(G<=V.length)return!1;var Y=V[L];if(k.end<=Y.start)return!1;if(e.startEndOverlapsWithStartEnd(k.pos,k.end,Y.start,Y.start+Y.length))return!0;L++}};function P(){return!1}}function b(A,y,V){var L=A.getStart(V);if(L===y.pos&&A.end===y.end)return L;var P=e.findPrecedingToken(y.pos,V);return!P||P.end>=y.pos?A.pos:P.end}function se(A,y,V){for(var L=-1,P;A;){var k=V.getLineAndCharacterOfPosition(A.getStart(V)).line;if(L!==-1&&k!==L)break;if(C.SmartIndenter.shouldIndentChildNode(y,A,P,V))return y.indentSize;L=k,P=A,A=A.parent}return 0}function J(A,y,V,L,P,k){var Y={pos:A.pos,end:A.end};return C.getFormattingScanner(y.text,V,Y.pos,Y.end,function(U){return q(Y,A,L,P,U,k,1,function(j){return!1},y)})}C.formatNodeGivenIndentation=J;function ie(A,y,V,L){if(!A)return[];var P={pos:e.getLineStartPositionForPosition(A.getStart(y),y),end:A.end};return R(P,y,V,L)}function R(A,y,V,L){var P=T(A,y);return C.getFormattingScanner(y.text,y.languageVariant,b(P,A,y),A.end,function(k){return q(A,P,C.SmartIndenter.getIndentationForNode(P,A,y,V.options),se(P,V.options,y),k,V,L,K(y.parseDiagnostics,A),y)})}function q(A,y,V,L,P,k,Y,U,j){var H,I=k.options,l=k.getRules,d=k.host,D=new C.FormattingContext(j,Y,I),fe,g,ne,ue,We=-1,Fe=[];if(P.advance(),P.isOnToken()){var Z=j.getLineAndCharacterOfPosition(y.getStart(j)).line,Be=Z;y.decorators&&(Be=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(y,j)).line),we(y,y,Z,Be,V,L)}if(!P.isOnToken()){var ge=C.SmartIndenter.nodeWillIndentChild(I,y,void 0,j,!1)?V+I.indentSize:V,Re=P.getCurrentLeadingTrivia();Re&&(de(Re,ge,!1,function(Ir){return Ae(Ir,j.getLineAndCharacterOfPosition(Ir.pos),y,y,void 0)}),I.trimTrailingWhitespace!==!1&&n(Re))}if(fe&&P.getStartPos()>=A.end){var ze=P.isOnEOF()?P.readEOFTokenRange():P.isOnToken()?P.readTokenInfo(y).token:void 0;if(ze){var Ee=((H=e.findPrecedingToken(ze.end,j,y))===null||H===void 0?void 0:H.parent)||g;er(ze,j.getLineAndCharacterOfPosition(ze.pos).line,Ee,fe,ne,g,Ee,void 0)}}return Fe;function He(Ir,wr,Ur,ii,mi){if(e.rangeOverlapsWithStartEnd(ii,Ir,wr)||e.rangeContainsStartEnd(ii,Ir,wr)){if(mi!==-1)return mi}else{var pe=j.getLineAndCharacterOfPosition(Ir).line,or=e.getLineStartPositionForPosition(Ir,j),qr=C.SmartIndenter.findFirstNonWhitespaceColumn(or,Ir,j,I);if(pe!==Ur||Ir===qr){var si=C.SmartIndenter.getBaseIndentation(I);return si>qr?si:qr}}return-1}function rr(Ir,wr,Ur,ii,mi,pe){var or=C.SmartIndenter.shouldIndentChildNode(I,Ir)?I.indentSize:0;return pe===wr?{indentation:wr===ue?We:mi.getIndentation(),delta:Math.min(I.indentSize,mi.getDelta(Ir)+or)}:Ur===-1?Ir.kind===20&&wr===ue?{indentation:We,delta:mi.getDelta(Ir)}:C.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(ii,Ir,wr,j)||C.SmartIndenter.childIsUnindentedBranchOfConditionalExpression(ii,Ir,wr,j)||C.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(ii,Ir,wr,j)?{indentation:mi.getIndentation(),delta:or}:{indentation:mi.getIndentation()+mi.getDelta(Ir),delta:or}:{indentation:Ur,delta:or}}function Ie(Ir){if(Ir.modifiers&&Ir.modifiers.length)return Ir.modifiers[0].kind;switch(Ir.kind){case 257:return 84;case 258:return 118;case 256:return 98;case 260:return 260;case 172:return 136;case 173:return 149;case 169:if(Ir.asteriskToken)return 41;case 167:case 164:var wr=e.getNameOfDeclaration(Ir);if(wr)return wr.kind}}function _e(Ir,wr,Ur,ii){return{getIndentationForComment:function(or,qr,si){switch(or){case 19:case 23:case 21:return Ur+pe(si)}return qr!==-1?qr:Ur},getIndentationForToken:function(or,qr,si,Di){return!Di&&mi(or,qr,si)?Ur+pe(si):Ur},getIndentation:function(){return Ur},getDelta:pe,recomputeIndentation:function(or,qr){C.SmartIndenter.shouldIndentChildNode(I,qr,Ir,j)&&(Ur+=or?I.indentSize:-I.indentSize,ii=C.SmartIndenter.shouldIndentChildNode(I,Ir)?I.indentSize:0)}};function mi(or,qr,si){switch(qr){case 18:case 19:case 21:case 91:case 115:case 59:return!1;case 43:case 31:switch(si.kind){case 280:case 281:case 279:case 228:return!1}break;case 22:case 23:if(si.kind!==195)return!1;break}return wr!==or&&!(Ir.decorators&&qr===Ie(Ir))}function pe(or){return C.SmartIndenter.nodeWillIndentChild(I,Ir,or,j,!0)?ii:0}}function we(Ir,wr,Ur,ii,mi,pe){if(!e.rangeOverlapsWithStartEnd(A,Ir.getStart(j),Ir.getEnd()))return;var or=_e(Ir,Ur,mi,pe),qr=wr;for(e.forEachChild(Ir,function(et){Di(et,-1,Ir,or,Ur,ii,!1)},function(et){wi(et,Ir,Ur,or)});P.isOnToken()&&P.getStartPos()Math.min(Ir.end,A.end))break;Xi(si,Ir,or,Ir)}function Di(et,Gi,Wt,Zt,_r,pi,ae,Xe){if(e.nodeIsMissing(et))return Gi;var Jr=et.getStart(j),ti=j.getLineAndCharacterOfPosition(Jr).line,Ze=ti;et.decorators&&(Ze=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(et,j)).line);var Sr=-1;if(ae&&e.rangeContainsRange(A,Wt)&&(Sr=He(Jr,et.end,_r,A,Gi),Sr!==-1&&(Gi=Sr)),!e.rangeOverlapsWithStartEnd(A,et.pos,et.end))return et.endA.end)return Gi;if(zr.token.end>Jr){zr.token.pos>Jr&&P.skipToStartOf(et);break}Xi(zr,Ir,Zt,Ir)}if(!P.isOnToken()||P.getStartPos()>=A.end)return Gi;if(e.isToken(et)){var zr=P.readTokenInfo(et);if(et.kind!==11)return e.Debug.assert(zr.token.end===et.end,"Token end is child end"),Xi(zr,Ir,Zt,et),Gi}var Wr=et.kind===165?ti:pi,Je=rr(et,ti,Sr,Ir,Zt,Wr);return we(et,qr,ti,Ze,Je.indentation,Je.delta),qr=Ir,Xe&&Wt.kind===204&&Gi===-1&&(Gi=Je.indentation),Gi}function wi(et,Gi,Wt,Zt){e.Debug.assert(e.isNodeArray(et));var _r=ee(Gi,et),pi=Zt,ae=Wt;if(!e.rangeOverlapsWithStartEnd(A,et.pos,et.end)){et.endet.pos)break;if(Xe.token.kind===_r){ae=j.getLineAndCharacterOfPosition(Xe.token.pos).line,Xi(Xe,Gi,Zt,Gi);var Jr=void 0;if(We!==-1)Jr=We;else{var ti=e.getLineStartPositionForPosition(Xe.token.pos,j);Jr=C.SmartIndenter.findFirstNonWhitespaceColumn(ti,Xe.token.pos,j,I)}pi=_e(Gi,Wt,Jr,I.indentSize)}else Xi(Xe,Gi,Zt,Gi)}for(var Ze=-1,Sr=0;Sr0){var ae=$(pi,I);Ge(Zt,_r.character,ae)}else be(Zt,_r.character)}}}function Er(Ir,wr,Ur){for(var ii=Ir;iipe)){var or=Ne(mi,pe);or!==-1&&(e.Debug.assert(or===mi||!e.isWhiteSpaceSingleLine(j.text.charCodeAt(or-1))),be(or,pe+1-or))}}}function Ne(Ir,wr){for(var Ur=wr;Ur>=Ir&&e.isWhiteSpaceSingleLine(j.text.charCodeAt(Ur));)Ur--;return Ur!==wr?Ur+1:-1}function n(Ir){for(var wr=fe?fe.end:A.pos,Ur=0,ii=Ir;Urj.text.length)return G(H);if(H.indentStyle===e.IndentStyle.None)return 0;var l=e.findPrecedingToken(U,j,void 0,!0),d=C.getRangeOfEnclosingComment(j,U,l||null);if(d&&d.kind===3)return le(j,U,H,d);if(!l)return G(H);var D=e.isStringOrRegularExpressionOrTemplateLiteral(l.kind);if(D&&l.getStart(j)<=U&&U=0),l<=d)return V(e.getStartPositionOfLine(d,U),j,U,H);var D=e.getStartPositionOfLine(l,U),fe=y(D,j,U,H),g=fe.column,ne=fe.character;if(g===0)return g;var ue=U.text.charCodeAt(D+ne);return ue===42?g-1:g}function N(U,j,H){for(var I=j;I>0;){var l=U.text.charCodeAt(I);if(!e.isWhiteSpaceLike(l))break;I--}var d=e.getLineStartPositionForPosition(I,U);return V(d,I,U,H)}function p(U,j,H,I,l,d){for(var D,fe=H;fe;){if(e.positionBelongsToNode(fe,j,U)&&k(d,fe,D,U,!0)){var g=J(fe,U),ne=se(H,fe,I,U),ue=ne!==0?l&&ne===2?d.indentSize:0:I!==g.line?d.indentSize:0;return oe(fe,g,void 0,ue,U,!0,d)}var We=X(fe,U,d,!0);if(We!==-1)return We;D=fe,fe=fe.parent}return G(d)}function m(U,j,H,I){var l=H.getLineAndCharacterOfPosition(U.getStart(H));return oe(U,l,j,0,H,!1,I)}B.getIndentationForNode=m;function G(U){return U.baseIndentSize||0}B.getBaseIndentation=G;function oe(U,j,H,I,l,d,D){for(var fe,g=U.parent;g;){var ne=!0;if(H){var ue=U.getStart(l);ne=ueH.end}var We=f(g,U,l),Fe=We.line===j.line||R(g,U,j.line,l);if(ne){var Z=(fe=ve(U,l))===null||fe===void 0?void 0:fe[0],Be=!!Z&&J(Z,l).line>We.line,ge=X(U,l,D,Be);if(ge!==-1||(ge=K(U,g,j,Fe,l,D),ge!==-1))return ge+I}k(D,g,U,l,d)&&!Fe&&(I+=D.indentSize);var Re=ie(g,U,j.line,l);U=g,g=U.parent,j=Re?l.getLineAndCharacterOfPosition(U.getStart(l)):We}return I+G(D)}function f(U,j,H){var I=ve(j,H),l=I?I.pos:U.getStart(H);return H.getLineAndCharacterOfPosition(l)}function T(U,j,H){var I=e.findListItemInfo(U);return I&&I.listItemIndex>0?$(I.list.getChildren(),I.listItemIndex-1,j,H):-1}function K(U,j,H,I,l,d){var D=(e.isDeclaration(U)||e.isStatementButNotDeclaration(U))&&(j.kind===305||!I);return D?A(H,l,d):-1}var b;(function(U){U[U.Unknown=0]="Unknown",U[U.OpenBrace=1]="OpenBrace",U[U.CloseBrace=2]="CloseBrace"})(b||(b={}));function se(U,j,H,I){var l=e.findNextToken(U,j,I);if(!l)return 0;if(l.kind===18)return 1;if(l.kind===19){var d=J(l,I).line;return H===d?2:0}return 0}function J(U,j){return j.getLineAndCharacterOfPosition(U.getStart(j))}function ie(U,j,H,I){if(!(e.isCallExpression(U)&&e.contains(U.arguments,j)))return!1;var l=U.expression.getEnd(),d=e.getLineAndCharacterOfPosition(I,l).line;return d===H}B.isArgumentAndStartLineOverlapsExpressionBeingCalled=ie;function R(U,j,H,I){if(U.kind===239&&U.elseStatement===j){var l=e.findChildOfKind(U,91,I);e.Debug.assert(l!==void 0);var d=J(l,I).line;return d===H}return!1}B.childStartsOnTheSameLineWithElseInIfStatement=R;function q(U,j,H,I){if(e.isConditionalExpression(U)&&(j===U.whenTrue||j===U.whenFalse)){var l=e.getLineAndCharacterOfPosition(I,U.condition.end).line;if(j===U.whenTrue)return H===l;var d=J(U.whenTrue,I).line,D=e.getLineAndCharacterOfPosition(I,U.whenTrue.end).line;return l===d&&D===H}return!1}B.childIsUnindentedBranchOfConditionalExpression=q;function O(U,j,H,I){if(e.isCallOrNewExpression(U)){if(!U.arguments)return!1;var l=e.find(U.arguments,function(g){return g.pos===j.pos});if(!l)return!1;var d=U.arguments.indexOf(l);if(d===0)return!1;var D=U.arguments[d-1],fe=e.getLineAndCharacterOfPosition(I,D.getEnd()).line;if(H===fe)return!0}return!1}B.argumentStartsOnSameLineAsPreviousArgument=O;function ve(U,j){return U.parent&&he(U.getStart(j),U.getEnd(),U.parent,j)}B.getContainingList=ve;function ee(U,j,H){return j&&he(U,U,j,H)}function he(U,j,H,I){switch(H.kind){case 178:return l(H.typeArguments);case 205:return l(H.properties);case 204:return l(H.elements);case 182:return l(H.members);case 256:case 213:case 214:case 169:case 168:case 174:case 171:case 180:case 175:return l(H.typeParameters)||l(H.parameters);case 172:return l(H.parameters);case 257:case 226:case 258:case 259:case 344:return l(H.typeParameters);case 209:case 208:return l(H.typeArguments)||l(H.arguments);case 255:return l(H.declarations);case 269:case 273:return l(H.elements);case 201:case 202:return l(H.elements)}function l(d){return d&&e.rangeContainsStartEnd(F(H,d,I),U,j)?d:void 0}}function F(U,j,H){for(var I=U.getChildren(H),l=1;l=0&&j=0;D--)if(U[D].kind!==27){var fe=H.getLineAndCharacterOfPosition(U[D].end).line;if(fe!==d.line)return A(d,H,I);d=J(U[D],H)}return-1}function A(U,j,H){var I=j.getPositionOfLineAndCharacter(U.line,0);return V(I,I+U.character,j,H)}function y(U,j,H,I){for(var l=0,d=0,D=U;D0?1:0,Ee=e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Be)+ze,H);return Ee=p(H.text,Ee),e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Ee),H)}function K(H,I,l){var d=I.end,D=l.trailingTriviaOption;if(D===N.Include){var fe=e.getTrailingCommentRanges(H.text,d);if(fe)for(var g=e.getLineOfLocalPosition(H,I.end),ne=0,ue=fe;neg)break;var Fe=e.getLineOfLocalPosition(H,We.end);if(Fe>g)return e.skipTrivia(H.text,We.end,!0,!0)}}}function b(H,I,l){var d,D=I.end,fe=l.trailingTriviaOption;if(fe===N.Exclude)return D;if(fe===N.ExcludeWhitespace){var g=e.concatenate(e.getTrailingCommentRanges(H.text,D),e.getLeadingCommentRanges(H.text,D)),ne=(d=g==null?void 0:g[g.length-1])===null||d===void 0?void 0:d.end;return ne||D}var ue=K(H,I,l);if(ue)return ue;var We=e.skipTrivia(H.text,D,!0);return We!==D&&(fe===N.Include||e.isLineBreak(H.text.charCodeAt(We-1)))?We:D}function se(H,I){return!!I&&!!H.parent&&(I.kind===27||I.kind===26&&H.parent.kind===205)}function J(H){return e.isFunctionExpression(H)||e.isFunctionDeclaration(H)}C.isThisTypeAnnotatable=J;var ie=function(){function H(I,l){this.newLineCharacter=I,this.formatContext=l,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=new e.Map,this.deletedNodes=[]}return H.fromContext=function(I){return new H(e.getNewLineOrDefaultFromHost(I.host,I.formatContext.options),I.formatContext)},H.with=function(I,l){var d=H.fromContext(I);return l(d),d.getChanges()},H.prototype.pushRaw=function(I,l){e.Debug.assertEqual(I.fileName,l.fileName);for(var d=0,D=l.textChanges;d",joiner:", "})},H.prototype.getOptionsForInsertNodeBefore=function(I,l,d){return e.isStatement(I)||e.isClassElement(I)?{suffix:d?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(I)?{suffix:", "}:e.isParameter(I)?e.isParameter(l)?{suffix:", "}:{}:e.isStringLiteral(I)&&e.isImportDeclaration(I.parent)||e.isNamedImports(I)?{suffix:", "}:e.isImportSpecifier(I)?{suffix:","+(d?this.newLineCharacter:" ")}:e.Debug.failBadSyntaxKind(I)},H.prototype.insertNodeAtConstructorStart=function(I,l,d){var D=e.firstOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve([d],l.body.statements,!0)):this.insertNodeBefore(I,D,d)},H.prototype.insertNodeAtConstructorStartAfterSuperCall=function(I,l,d){var D=e.find(l.body.statements,function(fe){return e.isExpressionStatement(fe)&&e.isSuperCall(fe.expression)});!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(I,D,d)},H.prototype.insertNodeAtConstructorEnd=function(I,l,d){var D=e.lastOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(I,D,d)},H.prototype.replaceConstructorBody=function(I,l,d){this.replaceNode(I,l.body,e.factory.createBlock(d,!0))},H.prototype.insertNodeAtEndOfScope=function(I,l,d){var D=T(I,l.getLastToken(),{});this.insertNodeAt(I,D,d,{prefix:e.isLineBreak(I.text.charCodeAt(l.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},H.prototype.insertMemberAtStart=function(I,l,d){this.insertNodeAtStartWorker(I,l,d)},H.prototype.insertNodeAtObjectStart=function(I,l,d){this.insertNodeAtStartWorker(I,l,d)},H.prototype.insertNodeAtStartWorker=function(I,l,d){var D,fe=(D=this.guessIndentationFromExistingMembers(I,l))!==null&&D!==void 0?D:this.computeIndentationForNewMember(I,l);this.insertNodeAt(I,ee(l).pos,d,this.getInsertNodeAtStartInsertOptions(I,l,fe))},H.prototype.guessIndentationFromExistingMembers=function(I,l){for(var d,D=l,fe=0,g=ee(l);fe0?{fileName:Be.fileName,textChanges:Ee}:void 0})}H.getTextChangesFromChanges=I;function l(ne,ue,We,Fe,Z){var Be=d(ne,e.getScriptKindFromFileName(ue),We,Fe,Z);return{fileName:ue,textChanges:[e.createTextChange(e.createTextSpan(0,0),Be)],isNewFile:!0}}H.newFileChanges=l;function d(ne,ue,We,Fe,Z){var Be=We.map(function(ze){return ze===4?"":g(ze,ne,Fe).text}).join(Fe),ge=e.createSourceFile("any file name",Be,99,!0,ue),Re=e.formatting.formatDocument(ge,Z);return x(Be,Re)+Fe}H.newFileChangesWorker=d;function D(ne,ue,We,Fe,Z){var Be;if(ne.kind===oe.Remove)return"";if(ne.kind===oe.Text)return ne.text;var ge=ne.options,Re=ge===void 0?{}:ge,ze=ne.range.pos,Ee=function(Ie){return fe(Ie,ue,ze,Re,We,Fe,Z)},He=ne.kind===oe.ReplaceWithMultipleNodes?ne.nodes.map(function(Ie){return e.removeSuffix(Ee(Ie),We)}).join(((Be=ne.options)===null||Be===void 0?void 0:Be.joiner)||We):Ee(ne.node),rr=Re.indentation!==void 0||e.getLineStartPositionForPosition(ze,ue)===ze?He:He.replace(/^\s+/,"");return(Re.prefix||"")+rr+(!Re.suffix||e.endsWith(rr,Re.suffix)?"":Re.suffix)}function fe(ne,ue,We,Fe,Z,Be,ge){var Re=Fe.indentation,ze=Fe.prefix,Ee=Fe.delta,He=g(ne,ue,Z),rr=He.node,Ie=He.text;ge&&ge(rr,Ie);var _e=e.getFormatCodeSettingsForWriting(Be,ue),we=Re!==void 0?Re:e.formatting.SmartIndenter.getIndentation(We,ue,_e,ze===Z||e.getLineStartPositionForPosition(We,ue)===We);Ee===void 0&&(Ee=e.formatting.SmartIndenter.shouldIndentChildNode(_e,ne)&&_e.indentSize||0);var de={text:Ie,getLineAndCharacterOfPosition:function(Ae){return e.getLineAndCharacterOfPosition(this,Ae)}},ye=e.formatting.formatNodeGivenIndentation(rr,de,ue.languageVariant,we,Ee,Ke(Ke({},Be),{options:_e}));return x(Ie,ye)}function g(ne,ue,We){var Fe=V(We),Z=e.getNewLineKind(We);return e.createPrinter({newLine:Z,neverAsciiEscape:!0,preserveSourceNewlines:!0,terminateUnterminatedLiterals:!0},Fe).writeNode(4,ne,ue,Fe),{text:Fe.getText(),node:A(ne)}}H.getNonformattedText=g})(F||(F={}));function x(H,I){for(var l=I.length-1;l>=0;l--){var d=I[l],D=d.span,fe=d.newText;H="".concat(H.substring(0,D.start)).concat(fe).concat(H.substring(e.textSpanEnd(D)))}return H}C.applyChanges=x;function X(H){return e.skipTrivia(H,0)===H.length}var $=Ke(Ke({},e.nullTransformationContext),{factory:e.createNodeFactory(e.nullTransformationContext.factory.flags|1,e.nullTransformationContext.factory.baseFactory)});function A(H){var I=e.visitEachChild(H,A,$,y,A),l=e.nodeIsSynthesized(I)?I:Object.create(I);return e.setTextRangePosEnd(l,w(H),E(H)),l}C.assignPositionsToNode=A;function y(H,I,l,d,D){var fe=e.visitNodes(H,I,l,d,D);if(!fe)return fe;var g=fe===H?e.factory.createNodeArray(fe.slice(0)):fe;return e.setTextRangePosEnd(g,w(H),E(H)),g}function V(H){var I=0,l=e.createTextWriter(H),d=function(lr){lr&&B(lr,I)},D=function(lr){lr&&Q(lr,I)},fe=function(lr){lr&&B(lr,I)},g=function(lr){lr&&Q(lr,I)},ne=function(lr){lr&&B(lr,I)},ue=function(lr){lr&&Q(lr,I)};function We(lr,be){if(be||!X(lr)){I=l.getTextPos();for(var Ge=0;e.isWhiteSpaceLike(lr.charCodeAt(lr.length-Ge-1));)Ge++;I-=Ge}}function Fe(lr){l.write(lr),We(lr,!1)}function Z(lr){l.writeComment(lr)}function Be(lr){l.writeKeyword(lr),We(lr,!1)}function ge(lr){l.writeOperator(lr),We(lr,!1)}function Re(lr){l.writePunctuation(lr),We(lr,!1)}function ze(lr){l.writeTrailingSemicolon(lr),We(lr,!1)}function Ee(lr){l.writeParameter(lr),We(lr,!1)}function He(lr){l.writeProperty(lr),We(lr,!1)}function rr(lr){l.writeSpace(lr),We(lr,!1)}function Ie(lr){l.writeStringLiteral(lr),We(lr,!1)}function _e(lr,be){l.writeSymbol(lr,be),We(lr,!1)}function we(lr){l.writeLine(lr)}function de(){l.increaseIndent()}function ye(){l.decreaseIndent()}function Ae(){return l.getText()}function er(lr){l.rawWrite(lr),We(lr,!1)}function ir(lr){l.writeLiteral(lr),We(lr,!0)}function Cr(){return l.getTextPos()}function Ye(){return l.getLine()}function Br(){return l.getColumn()}function Er(){return l.getIndent()}function Ne(){return l.isAtStartOfLine()}function n(){l.clear(),I=0}return{onBeforeEmitNode:d,onAfterEmitNode:D,onBeforeEmitNodeArray:fe,onAfterEmitNodeArray:g,onBeforeEmitToken:ne,onAfterEmitToken:ue,write:Fe,writeComment:Z,writeKeyword:Be,writeOperator:ge,writePunctuation:Re,writeTrailingSemicolon:ze,writeParameter:Ee,writeProperty:He,writeSpace:rr,writeStringLiteral:Ie,writeSymbol:_e,writeLine:we,increaseIndent:de,decreaseIndent:ye,getText:Ae,rawWrite:er,writeLiteral:ir,getTextPos:Cr,getLine:Ye,getColumn:Br,getIndent:Er,isAtStartOfLine:Ne,hasTrailingComment:function(){return l.hasTrailingComment()},hasTrailingWhitespace:function(){return l.hasTrailingWhitespace()},clear:n}}C.createWriter=V;function L(H){for(var I,l=0,d=H.statements;l=ze+2)break}if(H.statements.length){Fe===void 0&&(Fe=H.getLineAndCharacterOfPosition(H.statements[0].getStart()).line);var Ee=H.getLineAndCharacterOfPosition(ge.end).line;if(Fe1)break}var F=O<2;return function(x){var X=x.fixId,$=x.fixAllDescription,A=pr(x,["fixId","fixAllDescription"]);return F?A:Ke(Ke({},A),{fixId:X,fixAllDescription:$})}}function oe(ie){var R=J(ie),q=w.get(String(ie.errorCode));return e.flatMap(q,function(O){return e.map(O.getCodeActions(ie),G(O,R))})}C.getFixes=oe;function f(ie){return B.get(e.cast(ie.fixId,e.isString)).getAllCodeActions(ie)}C.getAllFixes=f;function T(ie,R){return{changes:ie,commands:R}}C.createCombinedCodeActions=T;function K(ie,R){return{fileName:ie,textChanges:R}}C.createFileTextChanges=K;function b(ie,R,q){var O=[],ve=e.textChanges.ChangeTracker.with(ie,function(ee){return se(ie,R,function(he){return q(ee,he,O)})});return T(ve,O.length===0?void 0:O)}C.codeFixAll=b;function se(ie,R,q){for(var O=0,ve=J(ie);Oe.textSpanEnd(m)?"quit":(e.isArrowFunction(f)||e.isMethodDeclaration(f)||e.isFunctionExpression(f)||e.isFunctionDeclaration(f))&&e.textSpansEqual(m,e.createTextSpanFromNode(f,p))});return oe}}function N(p,m){return function(G){var oe=G.start,f=G.length,T=G.relatedInformation,K=G.code;return e.isNumber(oe)&&e.isNumber(f)&&e.textSpansEqual({start:oe,length:f},p)&&K===m&&!!T&&e.some(T,function(b){return b.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code})}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="addMissingAwait",B=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,E=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],Q=Ve([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_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.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,B],E,!0);C.registerCodeFix({fixIds:[w],errorCodes:Q,getCodeActions:function(J){var ie=J.sourceFile,R=J.errorCode,q=J.span,O=J.cancellationToken,ve=J.program,ee=le(ie,R,q,O,ve);if(!!ee){var he=J.program.getTypeChecker(),F=function(x){return e.textChanges.ChangeTracker.with(J,x)};return e.compact([N(J,ee,R,he,F),p(J,ee,R,he,F)])}},getAllCodeActions:function(se){var J=se.sourceFile,ie=se.program,R=se.cancellationToken,q=se.program.getTypeChecker(),O=new e.Set;return C.codeFixAll(se,Q,function(ve,ee){var he=le(J,ee.code,ee,R,ie);if(!!he){var F=function(x){return x(ve),[]};return N(se,he,ee.code,q,F,O)||p(se,he,ee.code,q,F,O)}})}});function le(se,J,ie,R,q){var O=e.getFixableErrorSpanExpression(se,ie);return O&&m(se,J,ie,R,q)&&T(O)?O:void 0}function N(se,J,ie,R,q,O){var ve=se.sourceFile,ee=se.program,he=se.cancellationToken,F=G(J,ve,he,ee,R);if(F){var x=q(function(X){e.forEach(F.initializers,function($){var A=$.expression;return K(X,ie,ve,R,A,O)}),O&&F.needsSecondPassForFixAll&&K(X,ie,ve,R,J,O)});return C.createCodeFixActionWithoutFixAll("addMissingAwaitToInitializer",x,F.initializers.length===1?[e.Diagnostics.Add_await_to_initializer_for_0,F.initializers[0].declarationSymbol.name]:e.Diagnostics.Add_await_to_initializers)}}function p(se,J,ie,R,q,O){var ve=q(function(ee){return K(ee,ie,se.sourceFile,R,J,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Add_await,w,e.Diagnostics.Fix_all_expressions_possibly_missing_await)}function m(se,J,ie,R,q){var O=q.getTypeChecker(),ve=O.getDiagnostics(se,R);return e.some(ve,function(ee){var he=ee.start,F=ee.length,x=ee.relatedInformation,X=ee.code;return e.isNumber(he)&&e.isNumber(F)&&e.textSpansEqual({start:he,length:F},ie)&&X===J&&!!x&&e.some(x,function($){return $.code===e.Diagnostics.Did_you_forget_to_use_await.code})})}function G(se,J,ie,R,q){var O=oe(se,q);if(!!O){for(var ve=O.isCompleteFix,ee,he=function($){var A=q.getSymbolAtLocation($);if(!A)return"continue";var y=e.tryCast(A.valueDeclaration,e.isVariableDeclaration),V=y&&e.tryCast(y.name,e.isIdentifier),L=e.getAncestor(y,237);if(!y||!L||y.type||!y.initializer||L.getSourceFile()!==J||e.hasSyntacticModifier(L,1)||!V||!T(y.initializer))return ve=!1,"continue";var P=R.getSemanticDiagnostics(J,ie),k=e.FindAllReferences.Core.eachSymbolReferenceInFile(V,q,J,function(Y){return $!==Y&&!f(Y,P,J,q)});if(k)return ve=!1,"continue";(ee||(ee=[])).push({expression:y.initializer,declarationSymbol:A})},F=0,x=O.identifiers;F0)return[C.createCodeFixAction(w,f,e.Diagnostics.Add_const_to_unresolved_variable,w,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[w],getAllCodeActions:function(G){var oe=new e.Set;return C.codeFixAll(G,B,function(f,T){return E(f,T.file,T.start,G.program,oe)})}});function E(G,oe,f,T,K){var b=e.getTokenAtPosition(oe,f),se=e.findAncestor(b,function(O){return e.isForInOrOfStatement(O.parent)?O.parent.initializer===O:le(O)?!1:"quit"});if(se)return Q(G,se,oe,K);var J=b.parent;if(e.isBinaryExpression(J)&&J.operatorToken.kind===63&&e.isExpressionStatement(J.parent))return Q(G,b,oe,K);if(e.isArrayLiteralExpression(J)){var ie=T.getTypeChecker();return e.every(J.elements,function(O){return N(O,ie)})?Q(G,J,oe,K):void 0}var R=e.findAncestor(b,function(O){return e.isExpressionStatement(O.parent)?!0:p(O)?!1:"quit"});if(R){var q=T.getTypeChecker();return m(R,q)?Q(G,R,oe,K):void 0}}function Q(G,oe,f,T){(!T||e.tryAddToSet(T,oe))&&G.insertModifierBefore(f,85,oe)}function le(G){switch(G.kind){case 79:case 204:case 205:case 296:case 297:return!0;default:return!1}}function N(G,oe){var f=e.isIdentifier(G)?G:e.isAssignmentExpression(G,!0)&&e.isIdentifier(G.left)?G.left:void 0;return!!f&&!oe.getSymbolAtLocation(f)}function p(G){switch(G.kind){case 79:case 221:case 27:return!0;default:return!1}}function m(G,oe){return e.isBinaryExpression(G)?G.operatorToken.kind===27?e.every([G.left,G.right],function(f){return m(f,oe)}):G.operatorToken.kind===63&&e.isIdentifier(G.left)&&!oe.getSymbolAtLocation(G.left):!1}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="addMissingDeclareProperty",B=[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];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});if(N.length>0)return[C.createCodeFixAction(w,N,e.Diagnostics.Prefix_with_declare,w,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[w],getAllCodeActions:function(Q){var le=new e.Set;return C.codeFixAll(Q,B,function(N,p){return E(N,p.file,p.start,le)})}});function E(Q,le,N,p){var m=e.getTokenAtPosition(le,N);if(!!e.isIdentifier(m)){var G=m.parent;G.kind===167&&(!p||e.tryAddToSet(p,G))&&Q.insertModifierBefore(le,135,G)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="addMissingInvocationForDecorator",B=[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];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(w,N,e.Diagnostics.Call_decorator_expression,w,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N.start)})}});function E(Q,le,N){var p=e.getTokenAtPosition(le,N),m=e.findAncestor(p,e.isDecorator);e.Debug.assert(!!m,"Expected position to be owned by a decorator.");var G=e.factory.createCallExpression(m.expression,void 0,void 0);Q.replaceNode(le,m.expression,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="addNameToNamelessParameter",B=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(w,N,e.Diagnostics.Add_parameter_name,w,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N.start)})}});function E(Q,le,N){var p=e.getTokenAtPosition(le,N),m=p.parent;if(!e.isParameter(m))return e.Debug.fail("Tried to add a parameter name to a non-parameter: "+e.Debug.formatSyntaxKind(p.kind));var G=m.parent.parameters.indexOf(m);e.Debug.assert(!m.type,"Tried to add a parameter name to a parameter that already had one."),e.Debug.assert(G>-1,"Parameter not found in parent parameter list.");var oe=e.factory.createTypeReferenceNode(m.name,void 0),f=e.factory.createParameterDeclaration(void 0,m.modifiers,m.dotDotDotToken,"arg"+G,m.questionToken,m.dotDotDotToken?e.factory.createArrayTypeNode(oe):oe,m.initializer);Q.replaceNode(le,m,f)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="addOptionalPropertyUndefined",B=[e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.program.getTypeChecker(),G=E(p.sourceFile,p.span,m);if(!!G.length){var oe=e.textChanges.ChangeTracker.with(p,function(f){return N(f,G)});return[C.createCodeFixActionWithoutFixAll(w,oe,e.Diagnostics.Add_undefined_to_optional_property_type)]}},fixIds:[w]});function E(p,m,G){var oe,f,T=le(e.getFixableErrorSpanExpression(p,m),G);if(!T)return e.emptyArray;var K=T.source,b=T.target,se=Q(K,b,G)?G.getTypeAtLocation(b.expression):G.getTypeAtLocation(b);return!((f=(oe=se.symbol)===null||oe===void 0?void 0:oe.declarations)===null||f===void 0)&&f.some(function(J){return e.getSourceFileOfNode(J).fileName.match(/\.d\.ts$/)})?e.emptyArray:G.getExactOptionalProperties(se)}function Q(p,m,G){return e.isPropertyAccessExpression(m)&&!!G.getExactOptionalProperties(G.getTypeAtLocation(m.expression)).length&&G.getTypeAtLocation(p)===G.getUndefinedType()}function le(p,m){var G;if(p){if(e.isBinaryExpression(p.parent)&&p.parent.operatorToken.kind===63)return{source:p.parent.right,target:p.parent.left};if(e.isVariableDeclaration(p.parent)&&p.parent.initializer)return{source:p.parent.initializer,target:p.parent.name};if(e.isCallExpression(p.parent)){var oe=m.getSymbolAtLocation(p.parent.expression);if(!(oe!=null&&oe.valueDeclaration)||!e.isFunctionLikeKind(oe.valueDeclaration.kind)||!e.isExpression(p))return;var f=p.parent.arguments.indexOf(p);if(f===-1)return;var T=oe.valueDeclaration.parameters[f].name;if(e.isIdentifier(T))return{source:p,target:T}}else if(e.isPropertyAssignment(p.parent)&&e.isIdentifier(p.parent.name)||e.isShorthandPropertyAssignment(p.parent)){var K=le(p.parent.parent,m);if(!K)return;var b=m.getPropertyOfType(m.getTypeAtLocation(K.target),p.parent.name.text),se=(G=b==null?void 0:b.declarations)===null||G===void 0?void 0:G[0];return se?{source:e.isPropertyAssignment(p.parent)?p.parent.initializer:p.parent.name,target:se}:void 0}}else return}function N(p,m){for(var G=0,oe=m;G1?(p.delete(m,b),p.insertNodeAfter(m,J,se)):p.replaceNode(m,J,se)}function ie(O){var ve=[];return O.exports&&O.exports.forEach(function(F){if(F.name==="prototype"&&F.declarations){var x=F.declarations[0];if(F.declarations.length===1&&e.isPropertyAccessExpression(x)&&e.isBinaryExpression(x.parent)&&x.parent.operatorToken.kind===63&&e.isObjectLiteralExpression(x.parent.right)){var X=x.parent.right;he(X.symbol,void 0,ve)}}else he(F,[e.factory.createToken(124)],ve)}),O.members&&O.members.forEach(function(F,x){var X,$,A,y;if(x==="constructor"&&F.valueDeclaration){var V=(y=(A=($=(X=O.exports)===null||X===void 0?void 0:X.get("prototype"))===null||$===void 0?void 0:$.declarations)===null||A===void 0?void 0:A[0])===null||y===void 0?void 0:y.parent;V&&e.isBinaryExpression(V)&&e.isObjectLiteralExpression(V.right)&&e.some(V.right.properties,le)||p.delete(m,F.valueDeclaration.parent);return}he(F,void 0,ve)}),ve;function ee(F,x){return e.isAccessExpression(F)?e.isPropertyAccessExpression(F)&&le(F)?!0:e.isFunctionLike(x):e.every(F.properties,function(X){return!!(e.isMethodDeclaration(X)||e.isGetOrSetAccessorDeclaration(X)||e.isPropertyAssignment(X)&&e.isFunctionExpression(X.initializer)&&!!X.name||le(X))})}function he(F,x,X){if(!(F.flags&8192)&&!(F.flags&4096))return;var $=F.valueDeclaration,A=$.parent,y=A.right;if(!ee($,y)||e.some(X,function(H){var I=e.getNameOfDeclaration(H);return!!(I&&e.isIdentifier(I)&&e.idText(I)===e.symbolName(F))}))return;var V=A.parent&&A.parent.kind===238?A.parent:A;if(p.delete(m,V),!y){X.push(e.factory.createPropertyDeclaration([],x,F.name,void 0,void 0,void 0));return}if(e.isAccessExpression($)&&(e.isFunctionExpression(y)||e.isArrowFunction(y))){var L=e.getQuotePreference(m,f),P=N($,T,L);P&&Y(X,y,P);return}else if(e.isObjectLiteralExpression(y)){e.forEach(y.properties,function(H){(e.isMethodDeclaration(H)||e.isGetOrSetAccessorDeclaration(H))&&X.push(H),e.isPropertyAssignment(H)&&e.isFunctionExpression(H.initializer)&&Y(X,H.initializer,H.name),le(H)});return}else{if(e.isSourceFileJS(m)||!e.isPropertyAccessExpression($))return;var k=e.factory.createPropertyDeclaration(void 0,x,$.name,void 0,void 0,y);e.copyLeadingComments(A.parent,k,m),X.push(k);return}function Y(H,I,l){return e.isFunctionExpression(I)?U(H,I,l):j(H,I,l)}function U(H,I,l){var d=e.concatenate(x,Q(I,131)),D=e.factory.createMethodDeclaration(void 0,d,void 0,l,void 0,void 0,I.parameters,void 0,I.body);e.copyLeadingComments(A,D,m),H.push(D)}function j(H,I,l){var d=I.body,D;d.kind===235?D=d:D=e.factory.createBlock([e.factory.createReturnStatement(d)]);var fe=e.concatenate(x,Q(I,131)),g=e.factory.createMethodDeclaration(void 0,fe,void 0,l,void 0,void 0,I.parameters,void 0,D);e.copyLeadingComments(A,g,m),H.push(g)}}}function R(O){var ve=O.initializer;if(!(!ve||!e.isFunctionExpression(ve)||!e.isIdentifier(O.name))){var ee=ie(O.symbol);ve.body&&ee.unshift(e.factory.createConstructorDeclaration(void 0,void 0,ve.parameters,ve.body));var he=Q(O.parent.parent,93),F=e.factory.createClassDeclaration(void 0,he,O.name,void 0,void 0,ee);return F}}function q(O){var ve=ie(K);O.body&&ve.unshift(e.factory.createConstructorDeclaration(void 0,void 0,O.parameters,O.body));var ee=Q(O,93),he=e.factory.createClassDeclaration(void 0,ee,O.name,void 0,void 0,ve);return he}}function Q(p,m){return e.filter(p.modifiers,function(G){return G.kind===m})}function le(p){return p.name?!!(e.isIdentifier(p.name)&&p.name.text==="constructor"):!1}function N(p,m,G){if(e.isPropertyAccessExpression(p))return p.name;var oe=p.argumentExpression;if(e.isNumericLiteral(oe))return oe;if(e.isStringLiteralLike(oe))return e.isIdentifierText(oe.text,e.getEmitScriptTarget(m))?e.factory.createIdentifier(oe.text):e.isNoSubstitutionTemplateLiteral(oe)?e.factory.createStringLiteral(oe.text,G===0):oe}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="convertToAsyncFunction",B=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],E=!0;C.registerCodeFix({errorCodes:B,getCodeActions:function(g){E=!0;var ne=e.textChanges.ChangeTracker.with(g,function(ue){return le(ue,g.sourceFile,g.span.start,g.program.getTypeChecker())});return E?[C.createCodeFixAction(w,ne,e.Diagnostics.Convert_to_async_function,w,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[w],getAllCodeActions:function(g){return C.codeFixAll(g,B,function(ne,ue){return le(ne,ue.file,ue.start,g.program.getTypeChecker())})}});var Q;(function(g){g[g.Identifier=0]="Identifier",g[g.BindingPattern=1]="BindingPattern"})(Q||(Q={}));function le(g,ne,ue,We){var Fe=e.getTokenAtPosition(ne,ue),Z;if(e.isIdentifier(Fe)&&e.isVariableDeclaration(Fe.parent)&&Fe.parent.initializer&&e.isFunctionLikeDeclaration(Fe.parent.initializer)?Z=Fe.parent.initializer:Z=e.tryCast(e.getContainingFunction(e.getTokenAtPosition(ne,ue)),e.canBeConvertedToAsync),!!Z){var Be=new e.Map,ge=e.isInJSFile(Z),Re=p(Z,We),ze=T(Z,We,Be);if(!!e.returnsPromise(ze,We)){var Ee=ze.body&&e.isBlock(ze.body)?N(ze.body,We):e.emptyArray,He={checker:We,synthNamesMap:Be,setOfExpressionsToReturn:Re,isInJSFile:ge};if(!!Ee.length){var rr=Z.modifiers?Z.modifiers.end:Z.decorators?e.skipTrivia(ne.text,Z.decorators.end):Z.getStart(ne),Ie=Z.modifiers?{prefix:" "}:{suffix:" "};g.insertModifierAt(ne,rr,131,Ie);for(var _e=function(er){if(e.forEachChild(er,function ir(Cr){if(e.isCallExpression(Cr)){var Ye=J(Cr,Cr,He,!1);if(b())return!0;g.replaceNodeWithNodes(ne,er,Ye)}else if(!e.isFunctionLike(Cr)&&(e.forEachChild(Cr,ir),b()))return!0}),b())return{value:void 0}},we=0,de=Ee;we0)return ir;if(Ie){var er=A(Z.checker,Ie,rr);if(fe(Fe,Z))return X(er,oe(Fe,g,Z.checker));var Cr=x(ue,er,void 0);return ue&&ue.types.push(Z.checker.getAwaitedType(Ie)||Ie),Cr}else return se()}}default:return se()}return e.emptyArray}function A(g,ne,ue){var We=e.getSynthesizedDeepClone(ue);return g.getPromisedTypeOfPromise(ne)?e.factory.createAwaitExpression(We):We}function y(g,ne){var ue=ne.getSignaturesOfType(g,0);return e.lastOrUndefined(ue)}function V(g,ne,ue,We){for(var Fe=[],Z=0,Be=g;Z0)return}else e.isFunctionLike(Be)||e.forEachChild(Be,Z)}),Fe}function P(g,ne){var ue=[],We;if(e.isFunctionLikeDeclaration(g)){if(g.parameters.length>0){var Fe=g.parameters[0].name;We=Z(Fe)}}else e.isIdentifier(g)?We=Be(g):e.isPropertyAccessExpression(g)&&e.isIdentifier(g.name)&&(We=Be(g.name));if(!We||"identifier"in We&&We.identifier.text==="undefined")return;return We;function Z(ze){if(e.isIdentifier(ze))return Be(ze);var Ee=e.flatMap(ze.elements,function(He){return e.isOmittedExpression(He)?[]:[Z(He.name)]});return U(ze,Ee)}function Be(ze){var Ee=Re(ze),He=ge(Ee);if(!He)return Y(ze,ue);var rr=ne.synthNamesMap.get(e.getSymbolId(He).toString());return rr||Y(ze,ue)}function ge(ze){return ze.symbol?ze.symbol:ne.checker.getSymbolAtLocation(ze)}function Re(ze){return ze.original?ze.original:ze}}function k(g){return g?d(g)?!g.identifier.text:e.every(g.elements,k):!0}function Y(g,ne){return ne===void 0&&(ne=[]),{kind:0,identifier:g,types:ne,hasBeenDeclared:!1,hasBeenReferenced:!1}}function U(g,ne,ue){return ne===void 0&&(ne=e.emptyArray),ue===void 0&&(ue=[]),{kind:1,bindingPattern:g,elements:ne,types:ue}}function j(g){return g.hasBeenReferenced=!0,g.identifier}function H(g){return d(g)?l(g):I(g)}function I(g){for(var ne=0,ue=g.elements;ne1?[[K(k),b(k)],!0]:[[b(k)],!0]:[[K(k)],!1]}function K(L){return y(void 0,L)}function b(L){return y([e.factory.createExportSpecifier(!1,void 0,"default")],L)}function se(L,P,k){var Y=L.left,U=L.right,j=L.parent,H=Y.name.text;if((e.isFunctionExpression(U)||e.isArrowFunction(U)||e.isClassExpression(U))&&(!U.name||U.name.text===H)){k.replaceRange(P,{pos:Y.getStart(P),end:U.getStart(P)},e.factory.createToken(93),{suffix:" "}),U.name||k.insertName(P,U,H);var I=e.findChildOfKind(j,26,P);I&&k.delete(P,I)}else k.replaceNodeRangeWithNodes(P,Y.expression,e.findChildOfKind(Y,24,P),[e.factory.createToken(93),e.factory.createToken(85)],{joiner:" ",suffix:" "})}function J(L,P,k){var Y=[e.factory.createToken(93)];switch(P.kind){case 213:{var U=P.name;if(U&&U.text!==L)return j()}case 214:return F(L,Y,P,k);case 226:return x(L,Y,P,k);default:return j()}function j(){return A(Y,e.factory.createIdentifier(L),ie(P,k))}}function ie(L,P){if(!P||!e.some(e.arrayFrom(P.keys()),function(Y){return e.rangeContainsRange(L,Y)}))return L;return e.isArray(L)?e.getSynthesizedDeepClonesWithReplacements(L,!0,k):e.getSynthesizedDeepCloneWithReplacements(L,!0,k);function k(Y){if(Y.kind===206){var U=P.get(Y);return P.delete(Y),U}}}function R(L,P,k,Y,U,j){switch(L.kind){case 201:{var H=e.mapAllOrFail(L.elements,function(l){return l.dotDotDotToken||l.initializer||l.propertyName&&!e.isIdentifier(l.propertyName)||!e.isIdentifier(l.name)?void 0:$(l.propertyName&&l.propertyName.text,l.name.text)});if(H)return V([e.makeImport(void 0,H,P,j)])}case 202:{var I=O(C.moduleSpecifierToValidIdentifier(P.text,U),Y);return V([e.makeImport(e.factory.createIdentifier(I),void 0,P,j),A(void 0,e.getSynthesizedDeepClone(L),e.factory.createIdentifier(I))])}case 79:return q(L,P,k,Y,j);default:return e.Debug.assertNever(L,"Convert to ES module got invalid name kind ".concat(L.kind))}}function q(L,P,k,Y,U){for(var j=k.getSymbolAtLocation(L),H=new e.Map,I=!1,l,d=0,D=Y.original.get(L.text);d0||Cr.length>0||Ye.size>0||Br.size>0}}var le;(function(_e){_e[_e.UseNamespace=0]="UseNamespace",_e[_e.JsdocTypeImport=1]="JsdocTypeImport",_e[_e.AddToExisting=2]="AddToExisting",_e[_e.AddNew=3]="AddNew",_e[_e.PromoteTypeOnly=4]="PromoteTypeOnly"})(le||(le={}));var N;(function(_e){_e[_e.Allowed=1]="Allowed",_e[_e.Required=2]="Required",_e[_e.NotAllowed=4]="NotAllowed"})(N||(N={}));function p(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=ir.getCompilerOptions(),Ne=e.pathIsBareSpecifier(e.stripQuotes(we.name))?[f(_e,we,ir,er)]:T(de,_e,we,ye,Ae,er,ir,Br,!0),n=ve(de,ir),lr=e.isValidTypeOnlyAliasUseSite(e.getTokenAtPosition(de,Ye)),be=e.Debug.checkDefined(G(de,Ne,we,ir,{symbolName:ye,position:Ye},lr,n,er,Br));return{moduleSpecifier:be.moduleSpecifier,codeAction:oe(fe({host:er,formatContext:Cr,preferences:Br},de,ye,be,!1,e.getQuotePreference(de,Br),Er))}}C.getImportCompletionAction=p;function m(_e,we,de,ye,Ae,er){var ir=de.getCompilerOptions(),Cr=I(_e,de.getTypeChecker(),we,ir),Ye=H(_e,we,Cr,de),Br=Cr!==we.text;return Ye&&oe(fe({host:ye,formatContext:Ae,preferences:er},_e,Cr,Ye,Br,1,ir))}C.getPromoteTypeOnlyCompletionAction=m;function G(_e,we,de,ye,Ae,er,ir,Cr,Ye){e.Debug.assert(we.some(function(Er){return Er.moduleSymbol===de||Er.symbol.parent===de}),"Some exportInfo should match the specified moduleSymbol");var Br=e.createPackageJsonImportFilter(_e,Ye,Cr);return $(b(we,Ae,er,ir,ye,_e,Cr,Ye).fixes,_e,ye,Br,Cr)}function oe(_e){var we=_e.description,de=_e.changes,ye=_e.commands;return{description:we,changes:de,commands:ye}}function f(_e,we,de,ye){var Ae,er,ir=de.getCompilerOptions(),Cr=Br(de.getTypeChecker(),!1);if(Cr)return Cr;var Ye=(er=(Ae=ye.getPackageJsonAutoImportProvider)===null||Ae===void 0?void 0:Ae.call(ye))===null||er===void 0?void 0:er.getTypeChecker();return e.Debug.checkDefined(Ye&&Br(Ye,!0),"Could not find symbol in specified module for code actions");function Br(Er,Ne){var n=e.getDefaultLikeExportInfo(we,Er,ir);if(n&&e.skipAlias(n.symbol,Er)===_e)return{symbol:n.symbol,moduleSymbol:we,moduleFileName:void 0,exportKind:n.exportKind,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne};var lr=Er.tryGetMemberInModuleExportsAndProperties(_e.name,we);if(lr&&e.skipAlias(lr,Er)===_e)return{symbol:lr,moduleSymbol:we,moduleFileName:void 0,exportKind:0,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne}}}function T(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br=[],Er=ir.getCompilerOptions(),Ne=e.memoizeOne(function(lr){return e.createModuleSpecifierResolutionHost(lr?er.getPackageJsonAutoImportProvider():ir,er)});return e.forEachExternalModuleToImportFrom(ir,er,Ye,function(lr,be,Ge,ur){var yr=Ge.getTypeChecker();if(!(be&&lr!==de&&e.startsWith(_e.fileName,e.getDirectoryPath(be.fileName)))){var Ir=e.getDefaultLikeExportInfo(lr,yr,Er);Ir&&(Ir.name===ye||rr(lr,e.getEmitScriptTarget(Er),Ae)===ye)&&e.skipAlias(Ir.symbol,yr)===we&&n(Ge,be,ur)&&Br.push({symbol:Ir.symbol,moduleSymbol:lr,moduleFileName:be==null?void 0:be.fileName,exportKind:Ir.exportKind,targetFlags:e.skipAlias(Ir.symbol,yr).flags,isFromPackageJson:ur});for(var wr=0,Ur=yr.getExportsAndPropertiesOfModule(lr);wr0}:{kind:3,moduleSpecifier:qr,importKind:Y(we,yr.exportKind,Er),useRequire:Ae,addAsTypeOnly:or,exportInfo:yr,isReExport:Ir>0}})});return{computedWithoutCacheCount:Ge,fixes:ur}}function he(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=e.firstDefined(we,function(Ne){return F(Ne,er,ir,de.getTypeChecker(),de.getCompilerOptions())});return Er?{fixes:[Er]}:ee(de,ye,Ae,er,ir,_e,Cr,Ye,Br)}function F(_e,we,de,ye,Ae){var er,ir=_e.declaration,Cr=_e.importKind,Ye=_e.symbol,Br=_e.targetFlags,Er=(er=e.tryGetModuleSpecifierFromDeclaration(ir))===null||er===void 0?void 0:er.text;if(Er){var Ne=de?4:R(we,!0,Ye,Br,ye,Ae);return{kind:3,moduleSpecifier:Er,importKind:Cr,addAsTypeOnly:Ne,useRequire:de}}}function x(_e,we,de,ye){var Ae=e.getTokenAtPosition(_e.sourceFile,de),er;if(we===e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code)er=P(_e,Ae);else if(e.isIdentifier(Ae))if(we===e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code){var ir=I(_e.sourceFile,_e.program.getTypeChecker(),Ae,_e.program.getCompilerOptions()),Cr=H(_e.sourceFile,Ae,ir,_e.program);return Cr&&{fixes:[Cr],symbolName:ir,errorIdentifierText:Ae.text}}else er=j(_e,Ae,ye);else return;var Ye=e.createPackageJsonImportFilter(_e.sourceFile,_e.preferences,_e.host);return er&&Ke(Ke({},er),{fixes:X(er.fixes,_e.sourceFile,_e.program,Ye,_e.host)})}function X(_e,we,de,ye,Ae){var er=function(ir){return e.toPath(ir,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))};return e.sort(_e,function(ir,Cr){return e.compareValues(ir.kind,Cr.kind)||A(ir,Cr,we,de,ye.allowsImportingSpecifier,er)})}function $(_e,we,de,ye,Ae){if(!!e.some(_e))return _e[0].kind===0||_e[0].kind===2?_e[0]:_e.reduce(function(er,ir){return A(ir,er,we,de,ye.allowsImportingSpecifier,function(Cr){return e.toPath(Cr,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))})===-1?ir:er})}function A(_e,we,de,ye,Ae,er){return _e.kind!==0&&we.kind!==0?e.compareBooleans(Ae(we.moduleSpecifier),Ae(_e.moduleSpecifier))||L(_e.moduleSpecifier,we.moduleSpecifier,de,ye)||e.compareBooleans(y(_e,de,ye.getCompilerOptions(),er),y(we,de,ye.getCompilerOptions(),er))||e.compareNumberOfDirectorySeparators(_e.moduleSpecifier,we.moduleSpecifier):0}function y(_e,we,de,ye){var Ae;if(_e.isReExport&&((Ae=_e.exportInfo)===null||Ae===void 0?void 0:Ae.moduleFileName)&&e.getEmitModuleResolutionKind(de)===e.ModuleResolutionKind.NodeJs&&V(_e.exportInfo.moduleFileName)){var er=ye(e.getDirectoryPath(_e.exportInfo.moduleFileName));return e.startsWith(we.path,er)}return!1}function V(_e){return e.getBaseFileName(_e,[".js",".jsx",".d.ts",".ts",".tsx"],!0)==="index"}function L(_e,we,de,ye){return e.startsWith(_e,"node:")&&!e.startsWith(we,"node:")?e.shouldUseUriStyleNodeCoreModules(de,ye)?-1:1:e.startsWith(we,"node:")&&!e.startsWith(_e,"node:")?e.shouldUseUriStyleNodeCoreModules(de,ye)?1:-1:0}function P(_e,we){var de,ye=_e.sourceFile,Ae=_e.program,er=_e.host,ir=_e.preferences,Cr=Ae.getTypeChecker(),Ye=k(we,Cr);if(!!Ye){var Br=Cr.getAliasedSymbol(Ye),Er=Ye.name,Ne=[{symbol:Ye,moduleSymbol:Br,moduleFileName:void 0,exportKind:3,targetFlags:Br.flags,isFromPackageJson:!1}],n=ve(ye,Ae),lr=e.isIdentifier(we)?we.getStart(ye):void 0,be=b(Ne,lr?{position:lr,symbolName:Er}:void 0,!1,n,Ae,ye,er,ir).fixes;return{fixes:be,symbolName:Er,errorIdentifierText:(de=e.tryCast(we,e.isIdentifier))===null||de===void 0?void 0:de.text}}}function k(_e,we){var de=e.isIdentifier(_e)?we.getSymbolAtLocation(_e):void 0;if(e.isUMDExportSymbol(de))return de;var ye=_e.parent;return e.isJsxOpeningLikeElement(ye)&&ye.tagName===_e||e.isJsxOpeningFragment(ye)?e.tryCast(we.resolveName(we.getJsxNamespace(ye),e.isJsxOpeningLikeElement(ye)?_e:ye,111551,!1),e.isUMDExportSymbol):void 0}function Y(_e,we,de,ye){switch(we){case 0:return 0;case 1:return 1;case 2:return D(_e,de,!!ye);case 3:return U(_e,de,!!ye);default:return e.Debug.assertNever(we)}}C.getImportKind=Y;function U(_e,we,de){if(e.getAllowSyntheticDefaultImports(we))return 1;var ye=e.getEmitModuleKind(we);switch(ye){case e.ModuleKind.AMD:case e.ModuleKind.CommonJS:case e.ModuleKind.UMD:return e.isInJSFile(_e)&&(e.isExternalModule(_e)||de)?2:3;case e.ModuleKind.System:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.None:return 2;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return _e.impliedNodeFormat===e.ModuleKind.ESNext?2:3;default:return e.Debug.assertNever(ye,"Unexpected moduleKind ".concat(ye))}}function j(_e,we,de){var ye=_e.sourceFile,Ae=_e.program,er=_e.cancellationToken,ir=_e.host,Cr=_e.preferences,Ye=Ae.getTypeChecker(),Br=Ae.getCompilerOptions(),Er=I(ye,Ye,we,Br);if(Er!=="default"){var Ne=e.isValidTypeOnlyAliasUseSite(we),n=ve(ye,Ae),lr=d(Er,e.isJSXTagName(we),e.getMeaningFromLocation(we),er,ye,Ae,de,ir,Cr),be=e.arrayFrom(e.flatMapIterator(lr.entries(),function(Ge){var ur=Ge[0],yr=Ge[1];return b(yr,{symbolName:Er,position:we.getStart(ye)},Ne,n,Ae,ye,ir,Cr).fixes}));return{fixes:be,symbolName:Er,errorIdentifierText:we.text}}}function H(_e,we,de,ye){var Ae=ye.getTypeChecker(),er=Ae.resolveName(de,we,111551,!0);if(!!er){var ir=Ae.getTypeOnlyAliasDeclaration(er);if(!(!ir||e.getSourceFileOfNode(ir)!==_e))return{kind:4,typeOnlyAliasDeclaration:ir}}}function I(_e,we,de,ye){var Ae=de.parent;if((e.isJsxOpeningLikeElement(Ae)||e.isJsxClosingElement(Ae))&&Ae.tagName===de&&e.jsxModeNeedsExplicitImport(ye.jsx)){var er=we.getJsxNamespace(_e);if(l(er,de,we))return er}return de.text}function l(_e,we,de){if(e.isIntrinsicJsxName(we.text))return!0;var ye=de.resolveName(_e,we,111551,!0);return!ye||e.some(ye.declarations,e.isTypeOnlyImportOrExportDeclaration)&&!(ye.flags&111551)}function d(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br,Er=e.createMultiMap(),Ne=e.createPackageJsonImportFilter(Ae,Ye,Cr),n=(Br=Cr.getModuleSpecifierCache)===null||Br===void 0?void 0:Br.call(Cr),lr=e.memoizeOne(function(Ge){return e.createModuleSpecifierResolutionHost(Ge?Cr.getPackageJsonAutoImportProvider():er,Cr)});function be(Ge,ur,yr,Ir,wr,Ur){var ii=lr(Ur);if(ur&&e.isImportableFile(wr,Ae,ur,Ye,Ne,ii,n)||!ur&&Ne.allowsImportingAmbientModule(Ge,ii)){var mi=wr.getTypeChecker();Er.add(e.getUniqueSymbolId(yr,mi).toString(),{symbol:yr,moduleSymbol:Ge,moduleFileName:ur==null?void 0:ur.fileName,exportKind:Ir,targetFlags:e.skipAlias(yr,mi).flags,isFromPackageJson:Ur})}}return e.forEachExternalModuleToImportFrom(er,Cr,ir,function(Ge,ur,yr,Ir){var wr=yr.getTypeChecker();ye.throwIfCancellationRequested();var Ur=yr.getCompilerOptions(),ii=e.getDefaultLikeExportInfo(Ge,wr,Ur);ii&&(ii.name===_e||rr(Ge,e.getEmitScriptTarget(Ur),we)===_e)&&He(ii.symbolForMeaning,de)&&be(Ge,ur,ii.symbol,ii.exportKind,yr,Ir);var mi=wr.tryGetMemberInModuleExportsAndProperties(_e,Ge);mi&&He(mi,de)&&be(Ge,ur,mi,0,yr,Ir)}),Er}function D(_e,we,de){var ye=e.getAllowSyntheticDefaultImports(we),Ae=e.isInJSFile(_e);if(!Ae&&e.getEmitModuleKind(we)>=e.ModuleKind.ES2015)return ye?1:2;if(Ae)return e.isExternalModule(_e)||de?ye?1:2:3;for(var er=0,ir=_e.statements;er1&&e.OrganizeImports.importSpecifiersAreSorted(we.parent.elements)){_e.delete(ye,we);var er=e.factory.updateImportSpecifier(we,!1,we.propertyName,we.name),ir=e.OrganizeImports.getImportSpecifierInsertionIndex(we.parent.elements,er);_e.insertImportSpecifierAtIndex(ye,er,we.parent,ir)}else _e.deleteRange(ye,we.getFirstToken());return we}else return e.Debug.assert(we.parent.parent.isTypeOnly),Cr(we.parent.parent),we.parent.parent;case 267:return Cr(we),we;case 268:return Cr(we.parent),we.parent;case 265:return _e.deleteRange(ye,we.getChildAt(1)),we;default:e.Debug.failBadSyntaxKind(we)}function Cr(Ye){if(_e.delete(ye,e.getTypeKeywordOfTypeOnlyImport(Ye,ye)),Ae){var Br=e.tryCast(Ye.namedBindings,e.isNamedImports);if(Br&&Br.elements.length>1){e.OrganizeImports.importSpecifiersAreSorted(Br.elements)&&we.kind===270&&Br.elements.indexOf(we)!==0&&(_e.delete(ye,we),_e.insertImportSpecifierAtIndex(ye,we,Br,0));for(var Er=0,Ne=Br.elements;Er"),[e.Diagnostics.Convert_function_expression_0_to_arrow_function,f?f.text:e.ANONYMOUS]):(Q.replaceNode(le,oe,e.factory.createToken(85)),Q.insertText(le,f.end," = "),Q.insertText(le,T.pos," =>"),[e.Diagnostics.Convert_function_declaration_0_to_arrow_function,f.text])}}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixIncorrectNamedTupleSyntax",B=[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];C.registerCodeFix({errorCodes:B,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=E(p,m.start),oe=e.textChanges.ChangeTracker.with(N,function(f){return Q(f,p,G)});return[C.createCodeFixAction(w,oe,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels,w,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)]},fixIds:[w]});function E(le,N){var p=e.getTokenAtPosition(le,N);return e.findAncestor(p,function(m){return m.kind===197})}function Q(le,N,p){if(!!p){for(var m=p.type,G=!1,oe=!1;m.kind===185||m.kind===186||m.kind===191;)m.kind===185?G=!0:m.kind===186&&(oe=!0),m=m.type;var f=e.factory.updateNamedTupleMember(p,p.dotDotDotToken||(oe?e.factory.createToken(25):void 0),p.name,p.questionToken||(G?e.factory.createToken(57):void 0),m);f!==p&&le.replaceNode(N,p,f)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixSpelling",B=[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_namespace_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.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_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];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.errorCode,oe=E(m,p.span.start,p,G);if(!!oe){var f=oe.node,T=oe.suggestedSymbol,K=e.getEmitScriptTarget(p.host.getCompilationSettings()),b=e.textChanges.ChangeTracker.with(p,function(se){return Q(se,m,f,T,K)});return[C.createCodeFixAction("spelling",b,[e.Diagnostics.Change_spelling_to_0,e.symbolName(T)],w,e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[w],getAllCodeActions:function(p){return C.codeFixAll(p,B,function(m,G){var oe=E(G.file,G.start,p,G.code),f=e.getEmitScriptTarget(p.host.getCompilationSettings());oe&&Q(m,p.sourceFile,oe.node,oe.suggestedSymbol,f)})}});function E(p,m,G,oe){var f=e.getTokenAtPosition(p,m),T=f.parent;if(!((oe===e.Diagnostics.No_overload_matches_this_call.code||oe===e.Diagnostics.Type_0_is_not_assignable_to_type_1.code)&&!e.isJsxAttribute(T))){var K=G.program.getTypeChecker(),b;if(e.isPropertyAccessExpression(T)&&T.name===f){e.Debug.assert(e.isMemberName(f),"Expected an identifier for spelling (property access)");var se=K.getTypeAtLocation(T.expression);T.flags&32&&(se=K.getNonNullableType(se)),b=K.getSuggestedSymbolForNonexistentProperty(f,se)}else if(e.isBinaryExpression(T)&&T.operatorToken.kind===101&&T.left===f&&e.isPrivateIdentifier(f)){var J=K.getTypeAtLocation(T.right);b=K.getSuggestedSymbolForNonexistentProperty(f,J)}else if(e.isQualifiedName(T)&&T.right===f){var ie=K.getSymbolAtLocation(T.left);ie&&ie.flags&1536&&(b=K.getSuggestedSymbolForNonexistentModule(T.right,ie))}else if(e.isImportSpecifier(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,"Expected an identifier for spelling (import)");var R=e.findAncestor(f,e.isImportDeclaration),q=N(p,G,R);q&&q.symbol&&(b=K.getSuggestedSymbolForNonexistentModule(f,q.symbol))}else if(e.isJsxAttribute(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,"Expected an identifier for JSX attribute");var O=e.findAncestor(f,e.isJsxOpeningLikeElement),ve=K.getContextualTypeForArgumentAtIndex(O,0);b=K.getSuggestedSymbolForNonexistentJSXAttribute(f,ve)}else if(e.hasSyntacticModifier(T,16384)&&e.isClassElement(T)&&T.name===f){var ee=e.findAncestor(f,e.isClassLike),he=ee?e.getEffectiveBaseTypeNode(ee):void 0,F=he?K.getTypeAtLocation(he):void 0;F&&(b=K.getSuggestedSymbolForNonexistentClassMember(e.getTextOfNode(f),F))}else{var x=e.getMeaningFromLocation(f),X=e.getTextOfNode(f);e.Debug.assert(X!==void 0,"name should be defined"),b=K.getSuggestedSymbolForNonexistentSymbol(f,X,le(x))}return b===void 0?void 0:{node:f,suggestedSymbol:b}}}function Q(p,m,G,oe,f){var T=e.symbolName(oe);if(!e.isIdentifierText(T,f)&&e.isPropertyAccessExpression(G.parent)){var K=oe.valueDeclaration;K&&e.isNamedDeclaration(K)&&e.isPrivateIdentifier(K.name)?p.replaceNode(m,G,e.factory.createIdentifier(T)):p.replaceNode(m,G.parent,e.factory.createElementAccessExpression(G.parent.expression,e.factory.createStringLiteral(T)))}else p.replaceNode(m,G,e.factory.createIdentifier(T))}function le(p){var m=0;return p&4&&(m|=1920),p&2&&(m|=788968),p&1&&(m|=111551),m}function N(p,m,G){if(!(!G||!e.isStringLiteralLike(G.moduleSpecifier))){var oe=e.getResolvedModule(p,G.moduleSpecifier.text,e.getModeForUsageLocation(p,G.moduleSpecifier));if(!!oe)return m.program.getSourceFile(oe.resolvedFileName)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="returnValueCorrect",B="fixAddReturnStatement",E="fixRemoveBracesFromArrowFunctionBody",Q="fixWrapTheBlockWithParen",le=[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],N;(function(R){R[R.MissingReturnStatement=0]="MissingReturnStatement",R[R.MissingParentheses=1]="MissingParentheses"})(N||(N={})),C.registerCodeFix({errorCodes:le,fixIds:[B,E,Q],getCodeActions:function(q){var O=q.program,ve=q.sourceFile,ee=q.span.start,he=q.errorCode,F=oe(O.getTypeChecker(),ve,ee,he);if(!!F)return F.kind===N.MissingReturnStatement?e.append([se(q,F.expression,F.statement)],e.isArrowFunction(F.declaration)?J(q,F.declaration,F.expression,F.commentSource):void 0):[ie(q,F.declaration,F.expression)]},getAllCodeActions:function(R){return C.codeFixAll(R,le,function(q,O){var ve=oe(R.program.getTypeChecker(),O.file,O.start,O.code);if(!!ve)switch(R.fixId){case B:T(q,O.file,ve.expression,ve.statement);break;case E:if(!e.isArrowFunction(ve.declaration))return;K(q,O.file,ve.declaration,ve.expression,ve.commentSource,!1);break;case Q:if(!e.isArrowFunction(ve.declaration))return;b(q,O.file,ve.declaration,ve.expression);break;default:e.Debug.fail(JSON.stringify(R.fixId))}})}});function p(R,q,O){var ve=R.createSymbol(4,q.escapedText);ve.type=R.getTypeAtLocation(O);var ee=e.createSymbolTable([ve]);return R.createAnonymousType(void 0,ee,[],[],[])}function m(R,q,O,ve){if(!(!q.body||!e.isBlock(q.body)||e.length(q.body.statements)!==1)){var ee=e.first(q.body.statements);if(e.isExpressionStatement(ee)&&G(R,q,R.getTypeAtLocation(ee.expression),O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:ee.expression,statement:ee,commentSource:ee.expression};if(e.isLabeledStatement(ee)&&e.isExpressionStatement(ee.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(ee.label,ee.statement.expression)]),F=p(R,ee.label,ee.statement.expression);if(G(R,q,F,O,ve))return e.isArrowFunction(q)?{declaration:q,kind:N.MissingParentheses,expression:he,statement:ee,commentSource:ee.statement.expression}:{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:ee.statement.expression}}else if(e.isBlock(ee)&&e.length(ee.statements)===1){var x=e.first(ee.statements);if(e.isLabeledStatement(x)&&e.isExpressionStatement(x.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(x.label,x.statement.expression)]),F=p(R,x.label,x.statement.expression);if(G(R,q,F,O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:x}}}}}function G(R,q,O,ve,ee){if(ee){var he=R.getSignatureFromDeclaration(q);if(he){e.hasSyntacticModifier(q,256)&&(O=R.createPromiseType(O));var F=R.createSignature(q,he.typeParameters,he.thisParameter,he.parameters,O,void 0,he.minArgumentCount,he.flags);O=R.createAnonymousType(void 0,e.createSymbolTable(),[F],[],[])}else O=R.getAnyType()}return R.isTypeAssignableTo(O,ve)}function oe(R,q,O,ve){var ee=e.getTokenAtPosition(q,O);if(!!ee.parent){var he=e.findAncestor(ee.parent,e.isFunctionLikeDeclaration);switch(ve){case e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:return!he||!he.body||!he.type||!e.rangeContainsRange(he.type,ee)?void 0:m(R,he,R.getTypeFromTypeNode(he.type),!1);case e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:if(!he||!e.isCallExpression(he.parent)||!he.body)return;var F=he.parent.arguments.indexOf(he),x=R.getContextualTypeForArgumentAtIndex(he.parent,F);return x?m(R,he,x,!0):void 0;case e.Diagnostics.Type_0_is_not_assignable_to_type_1.code:if(!e.isDeclarationName(ee)||!e.isVariableLike(ee.parent)&&!e.isJsxAttribute(ee.parent))return;var X=f(ee.parent);return!X||!e.isFunctionLikeDeclaration(X)||!X.body?void 0:m(R,X,R.getTypeAtLocation(ee.parent),!0)}}}function f(R){switch(R.kind){case 254:case 164:case 203:case 167:case 296:return R.initializer;case 285:return R.initializer&&(e.isJsxExpression(R.initializer)?R.initializer.expression:void 0);case 297:case 166:case 299:case 347:case 340:return}}function T(R,q,O,ve){e.suppressLeadingAndTrailingTrivia(O);var ee=e.probablyUsesSemicolons(q);R.replaceNode(q,ve,e.factory.createReturnStatement(O),{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Exclude,suffix:ee?";":void 0})}function K(R,q,O,ve,ee,he){var F=he||e.needsParentheses(ve)?e.factory.createParenthesizedExpression(ve):ve;e.suppressLeadingAndTrailingTrivia(ee),e.copyComments(ee,F),R.replaceNode(q,O.body,F)}function b(R,q,O,ve){R.replaceNode(q,O.body,e.factory.createParenthesizedExpression(ve))}function se(R,q,O){var ve=e.textChanges.ChangeTracker.with(R,function(ee){return T(ee,R.sourceFile,q,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Add_a_return_statement,B,e.Diagnostics.Add_all_missing_return_statement)}function J(R,q,O,ve){var ee=e.textChanges.ChangeTracker.with(R,function(he){return K(he,R.sourceFile,q,O,ve,!1)});return C.createCodeFixAction(w,ee,e.Diagnostics.Remove_braces_from_arrow_function_body,E,e.Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues)}function ie(R,q,O){var ve=e.textChanges.ChangeTracker.with(R,function(ee){return b(ee,R.sourceFile,q,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal,Q,e.Diagnostics.Wrap_all_object_literal_with_parentheses)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixMissingMember",B="fixMissingProperties",E="fixMissingAttributes",Q="fixMissingFunctionDeclaration",le=[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.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,e.Diagnostics.Cannot_find_name_0.code];C.registerCodeFix({errorCodes:le,getCodeActions:function(y){var V=y.program.getTypeChecker(),L=p(y.sourceFile,y.span.start,y.errorCode,V,y.program);if(!!L){if(L.kind===3){var P=e.textChanges.ChangeTracker.with(y,function(k){return he(k,y,L)});return[C.createCodeFixAction(B,P,e.Diagnostics.Add_missing_properties,B,e.Diagnostics.Add_all_missing_properties)]}if(L.kind===4){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ee(Y,y,L)});return[C.createCodeFixAction(E,P,e.Diagnostics.Add_missing_attributes,E,e.Diagnostics.Add_all_missing_attributes)]}if(L.kind===2){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ve(Y,y,L)});return[C.createCodeFixAction(Q,P,[e.Diagnostics.Add_missing_function_declaration_0,L.token.text],Q,e.Diagnostics.Add_all_missing_function_declarations)]}if(L.kind===1){var P=e.textChanges.ChangeTracker.with(y,function(Y){return O(Y,y.program.getTypeChecker(),L)});return[C.createCodeFixAction(w,P,[e.Diagnostics.Add_missing_enum_member_0,L.token.text],w,e.Diagnostics.Add_all_missing_members)]}return e.concatenate(R(y,L),G(y,L))}},fixIds:[w,Q,B,E],getAllCodeActions:function(y){var V=y.program,L=y.fixId,P=V.getTypeChecker(),k=new e.Map,Y=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(y,function(U){C.eachDiagnostic(y,le,function(j){var H=p(j.file,j.start,j.code,P,y.program);if(!(!H||!e.addToSeen(k,e.getNodeId(H.parentDeclaration)+"#"+H.token.text))){if(L===Q&&H.kind===2)ve(U,y,H);else if(L===B&&H.kind===3)he(U,y,H);else if(L===E&&H.kind===4)ee(U,y,H);else if(H.kind===1&&O(U,P,H),H.kind===0){var I=H.parentDeclaration,l=H.token,d=e.getOrUpdate(Y,I,function(){return[]});d.some(function(D){return D.token.text===l.text})||d.push(H)}}}),Y.forEach(function(j,H){for(var I=e.isTypeLiteralNode(H)?void 0:C.getAllSupers(H,P),l=function(g){if(I!=null&&I.some(function(Re){var ze=Y.get(Re);return!!ze&&ze.some(function(Ee){var He=Ee.token;return He.text===g.token.text})}))return"continue";var ne=g.parentDeclaration,ue=g.declSourceFile,We=g.modifierFlags,Fe=g.token,Z=g.call,Be=g.isJSFile;if(Z&&!e.isPrivateIdentifier(Fe))q(y,U,Z,Fe,We&32,ne,ue);else if(Be&&!e.isInterfaceDeclaration(ne)&&!e.isTypeLiteralNode(ne))f(U,ue,ne,Fe,!!(We&32));else{var ge=b(P,ne,Fe);se(U,ue,ne,Fe.text,ge,We&32)}},d=0,D=j;d=e.ModuleKind.ES2015&&N99;if(oe){var m=e.textChanges.ChangeTracker.with(B,function(T){var K=e.getTsConfigObjectLiteralExpression(Q);if(!!K){var b=[["target",e.factory.createStringLiteral("es2017")]];N===e.ModuleKind.CommonJS&&b.push(["module",e.factory.createStringLiteral("commonjs")]),C.setJsonCompilerOptionValues(T,Q,b)}});le.push(C.createCodeFixActionWithoutFixAll("fixTargetOption",m,[e.Diagnostics.Set_the_target_option_in_your_configuration_file_to_0,"es2017"]))}return le.length?le:void 0}}})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixPropertyAssignment",B=[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];C.registerCodeFix({errorCodes:B,fixIds:[w],getCodeActions:function(le){var N=le.sourceFile,p=le.span,m=Q(N,p.start),G=e.textChanges.ChangeTracker.with(le,function(oe){return E(oe,le.sourceFile,m)});return[C.createCodeFixAction(w,G,[e.Diagnostics.Change_0_to_1,"=",":"],w,[e.Diagnostics.Switch_each_misused_0_to_1,"=",":"])]},getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){return E(N,p.file,Q(p.file,p.start))})}});function E(le,N,p){le.replaceNode(N,p,e.factory.createPropertyAssignment(p.name,p.objectAssignmentInitializer))}function Q(le,N){return e.cast(e.getTokenAtPosition(le,N).parent,e.isShorthandPropertyAssignment)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="extendsInterfaceBecomesImplements",B=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=le.sourceFile,p=E(N,le.span.start);if(!!p){var m=p.extendsToken,G=p.heritageClauses,oe=e.textChanges.ChangeTracker.with(le,function(f){return Q(f,N,m,G)});return[C.createCodeFixAction(w,oe,e.Diagnostics.Change_extends_to_implements,w,e.Diagnostics.Change_all_extended_interfaces_to_implements)]}},fixIds:[w],getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){var m=E(p.file,p.start);m&&Q(N,p.file,m.extendsToken,m.heritageClauses)})}});function E(le,N){var p=e.getTokenAtPosition(le,N),m=e.getContainingClass(p).heritageClauses,G=m[0].getFirstToken();return G.kind===94?{extendsToken:G,heritageClauses:m}:void 0}function Q(le,N,p,m){if(le.replaceNode(N,p,e.factory.createToken(117)),m.length===2&&m[0].token===94&&m[1].token===117){var G=m[1].getFirstToken(),oe=G.getFullStart();le.replaceRange(N,{pos:oe,end:oe},e.factory.createToken(27));for(var f=N.text,T=G.end;T":">","}":"}"};function le(p){return e.hasProperty(Q,p)}function N(p,m,G,oe,f){var T=G.getText()[oe];if(!!le(T)){var K=f?Q[T]:"{".concat(e.quote(G,m,T),"}");p.replaceRangeWithText(G,{pos:oe,end:oe+1},K)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="deleteUnmatchedParameter",B="renameUnmatchedParameter",E=[e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code];C.registerCodeFix({fixIds:[w,B],errorCodes:E,getCodeActions:function(m){var G=m.sourceFile,oe=m.span,f=[],T=N(G,oe.start);if(T)return e.append(f,Q(m,T)),e.append(f,le(m,T)),f},getAllCodeActions:function(m){var G=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(m,function(oe){C.eachDiagnostic(m,E,function(f){var T=f.file,K=f.start,b=N(T,K);b&&G.set(b.signature,e.append(G.get(b.signature),b.jsDocParameterTag))}),G.forEach(function(f,T){if(m.fixId===w){var K=new e.Set(f);oe.filterJSDocTags(T.getSourceFile(),T,function(b){return!K.has(b)})}})}))}});function Q(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag,T=e.textChanges.ChangeTracker.with(p,function(K){return K.filterJSDocTags(p.sourceFile,oe,function(b){return b!==f})});return C.createCodeFixAction(w,T,[e.Diagnostics.Delete_unused_param_tag_0,G.getText(p.sourceFile)],w,e.Diagnostics.Delete_all_unused_param_tags)}function le(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag;if(!!e.length(oe.parameters)){for(var T=p.sourceFile,K=e.getJSDocTags(oe),b=new e.Set,se=0,J=K;se1?e.Diagnostics.Remove_unused_declarations_for_Colon_0:e.Diagnostics.Remove_unused_declaration_for_Colon_0,e.map(j,function(D){return D.getText($)}).join(", ")];return[m(e.textChanges.ChangeTracker.with(x,function(D){return b(D,$,P.parent)}),H)]}return[m(e.textChanges.ChangeTracker.with(x,function(D){return D.delete($,P.parent.parent)}),e.Diagnostics.Remove_unused_destructuring_declaration)]}if(T($,P))return[m(e.textChanges.ChangeTracker.with(x,function(D){return K(D,$,P.parent)}),e.Diagnostics.Remove_variable_statement)];var I=[];if(P.kind===137){var k=e.textChanges.ChangeTracker.with(x,function(fe){return p(fe,$,P)}),l=e.cast(P.parent,e.isInferTypeNode).typeParameter.name.text;I.push(C.createCodeFixAction(w,k,[e.Diagnostics.Replace_infer_0_with_unknown,l],le,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var U=e.textChanges.ChangeTracker.with(x,function(fe){return ie($,P,fe,V,L,A,y,!1)});if(U.length){var l=e.isComputedPropertyName(P.parent)?P.parent:P;I.push(m(U,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,l.getText($)]))}}var d=e.textChanges.ChangeTracker.with(x,function(D){return se(D,X,$,P)});return d.length&&I.push(C.createCodeFixAction(w,d,[e.Diagnostics.Prefix_0_with_an_underscore,P.getText($)],B,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),I},fixIds:[B,E,Q,le],getAllCodeActions:function(x){var X=x.sourceFile,$=x.program,A=x.cancellationToken,y=$.getTypeChecker(),V=$.getSourceFiles();return C.codeFixAll(x,N,function(L,P){var k=e.getTokenAtPosition(X,P.start);switch(x.fixId){case B:se(L,P.code,X,k);break;case Q:{var Y=f(k);Y?L.delete(X,Y):oe(k)&&ie(X,k,L,y,V,$,A,!0);break}case E:{if(k.kind===137||oe(k))break;if(e.isJSDocTemplateTag(k))L.delete(X,k);else if(k.kind===29)G(L,X,k);else if(e.isObjectBindingPattern(k.parent)){if(k.parent.parent.initializer)break;(!e.isParameter(k.parent.parent)||O(k.parent.parent,y,V))&&L.delete(X,k.parent.parent)}else{if(e.isArrayBindingPattern(k.parent.parent)&&k.parent.parent.parent.initializer)break;T(X,k)?K(L,X,k.parent):ie(X,k,L,y,V,$,A,!0)}break}case le:k.kind===137&&p(L,X,k);break;default:e.Debug.fail(JSON.stringify(x.fixId))}})}});function p(x,X,$){x.replaceNode(X,$.parent,e.factory.createKeywordTypeNode(155))}function m(x,X){return C.createCodeFixAction(w,x,X,E,e.Diagnostics.Delete_all_unused_declarations)}function G(x,X,$){x.delete(X,e.Debug.checkDefined(e.cast($.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,"The type parameter to delete should exist"))}function oe(x){return x.kind===100||x.kind===79&&(x.parent.kind===270||x.parent.kind===267)}function f(x){return x.kind===100?e.tryCast(x.parent,e.isImportDeclaration):void 0}function T(x,X){return e.isVariableDeclarationList(X.parent)&&e.first(X.parent.getChildren(x))===X}function K(x,X,$){x.delete(X,$.parent.kind===237?$.parent:$)}function b(x,X,$){e.forEach($.elements,function(A){return x.delete(X,A)})}function se(x,X,$,A){X!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(A.kind===137&&(A=e.cast(A.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(A)&&J(A)&&(x.replaceNode($,A,e.factory.createIdentifier("_".concat(A.text))),e.isParameter(A.parent)&&e.getJSDocParameterTags(A.parent).forEach(function(y){e.isIdentifier(y.name)&&x.replaceNode($,y.name,e.factory.createIdentifier("_".concat(y.name.text)))})))}function J(x){switch(x.parent.kind){case 164:case 163:return!0;case 254:{var X=x.parent;switch(X.parent.parent.kind){case 244:case 243:return!0}}}return!1}function ie(x,X,$,A,y,V,L,P){R(X,$,x,A,y,V,L,P),e.isIdentifier(X)&&e.FindAllReferences.Core.eachSymbolReferenceInFile(X,A,x,function(k){e.isPropertyAccessExpression(k.parent)&&k.parent.name===k&&(k=k.parent),!P&&F(k)&&$.delete(x,k.parent.parent)})}function R(x,X,$,A,y,V,L,P){var k=x.parent;if(e.isParameter(k))q(X,$,k,A,y,V,L,P);else if(!(P&&e.isIdentifier(x)&&e.FindAllReferences.Core.isSymbolReferencedInFile(x,A,$))){var Y=e.isImportClause(k)?x:e.isComputedPropertyName(k)?k.parent:k;e.Debug.assert(Y!==$,"should not delete whole source file"),X.delete($,Y)}}function q(x,X,$,A,y,V,L,P){P===void 0&&(P=!1),ve(A,X,$,y,V,L,P)&&($.modifiers&&$.modifiers.length>0&&(!e.isIdentifier($.name)||e.FindAllReferences.Core.isSymbolReferencedInFile($.name,A,X))?$.modifiers.forEach(function(k){return x.deleteModifier(X,k)}):!$.initializer&&O($,A,y)&&x.delete(X,$))}function O(x,X,$){var A=x.parent.parameters.indexOf(x);return!e.FindAllReferences.Core.someSignatureUsage(x.parent,$,X,function(y,V){return!V||V.arguments.length>A})}function ve(x,X,$,A,y,V,L){var P=$.parent;switch(P.kind){case 169:case 171:var k=P.parameters.indexOf($),Y=e.isMethodDeclaration(P)?P.name:P,U=e.FindAllReferences.Core.getReferencedSymbolsForNode(P.pos,Y,y,A,V);if(U)for(var j=0,H=U;jk,g=e.isPropertyAccessExpression(D.node.parent)&&e.isSuperKeyword(D.node.parent.expression)&&e.isCallExpression(D.node.parent.parent)&&D.node.parent.parent.arguments.length>k,ne=(e.isMethodDeclaration(D.node.parent)||e.isMethodSignature(D.node.parent))&&D.node.parent!==$.parent&&D.node.parent.parameters.length>k;if(fe||g||ne)return!1}}return!0;case 256:return P.name&&ee(x,X,P.name)?he(P,$,L):!0;case 213:case 214:return he(P,$,L);case 173:return!1;case 172:return!0;default:return e.Debug.failBadSyntaxKind(P)}}function ee(x,X,$){return!!e.FindAllReferences.Core.eachSymbolReferenceInFile($,x,X,function(A){return e.isIdentifier(A)&&e.isCallExpression(A.parent)&&A.parent.arguments.indexOf(A)>=0})}function he(x,X,$){var A=x.parameters,y=A.indexOf(X);return e.Debug.assert(y!==-1,"The parameter should already be in the list"),$?A.slice(y+1).every(function(V){return e.isIdentifier(V.name)&&!V.symbol.isReferenced}):y===A.length-1}function F(x){return(e.isBinaryExpression(x.parent)&&x.parent.left===x||(e.isPostfixUnaryExpression(x.parent)||e.isPrefixUnaryExpression(x.parent))&&x.parent.operand===x)&&e.isExpressionStatement(x.parent.parent)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixUnreachableCode",B=[e.Diagnostics.Unreachable_code_detected.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=le.program.getSyntacticDiagnostics(le.sourceFile,le.cancellationToken);if(!N.length){var p=e.textChanges.ChangeTracker.with(le,function(m){return E(m,le.sourceFile,le.span.start,le.span.length,le.errorCode)});return[C.createCodeFixAction(w,p,e.Diagnostics.Remove_unreachable_code,w,e.Diagnostics.Remove_all_unreachable_code)]}},fixIds:[w],getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){return E(N,p.file,p.start,p.length,p.code)})}});function E(le,N,p,m,G){var oe=e.getTokenAtPosition(N,p),f=e.findAncestor(oe,e.isStatement);if(f.getStart(N)!==oe.getStart(N)){var T=JSON.stringify({statementKind:e.Debug.formatSyntaxKind(f.kind),tokenKind:e.Debug.formatSyntaxKind(oe.kind),errorCode:G,start:p,length:m});e.Debug.fail("Token and statement should start at the same point. "+T)}var K=(e.isBlock(f.parent)?f.parent:f).parent;if(!e.isBlock(f.parent)||f===e.first(f.parent.statements))switch(K.kind){case 239:if(K.elseStatement){if(e.isBlock(f.parent))break;le.replaceNode(N,f,e.factory.createBlock(e.emptyArray));return}case 241:case 242:le.delete(N,K);return}if(e.isBlock(f.parent)){var b=p+m,se=e.Debug.checkDefined(Q(e.sliceAfter(f.parent.statements,f),function(J){return J.posHe.length){var rr=k.getSignatureFromDeclaration(P[P.length-1]);we(fe,rr,I,j,y||T(fe))}else e.Debug.assert(P.length===He.length,"Declarations and signatures should match count"),A(G(k,x,he,He,j,d&&!!(V&1),I,fe,y));break}function we(de,ye,Ae,er,ir){var Cr=le(169,x,de,ye,ir,er,Ae,d&&!!(V&1),he,$);Cr&&A(Cr)}}C.addNewNodeForMemberSymbol=Q;function le(ee,he,F,x,X,$,A,y,V,L){var P=he.program,k=P.getTypeChecker(),Y=e.getEmitScriptTarget(P.getCompilerOptions()),U=524545|(F===0?268435456:0),j=k.signatureToSignatureDeclaration(x,ee,V,U,B(he));if(!!j){var H=j.typeParameters,I=j.parameters,l=j.type;if(L){if(H){var d=e.sameMap(H,function(ue){var We=ue.constraint,Fe=ue.default;if(We){var Z=q(We,Y);Z&&(We=Z.typeNode,ve(L,Z.symbols))}if(Fe){var Z=q(Fe,Y);Z&&(Fe=Z.typeNode,ve(L,Z.symbols))}return e.factory.updateTypeParameterDeclaration(ue,ue.modifiers,ue.name,We,Fe)});H!==d&&(H=e.setTextRange(e.factory.createNodeArray(d,H.hasTrailingComma),H))}var D=e.sameMap(I,function(ue){var We=q(ue.type,Y),Fe=ue.type;return We&&(Fe=We.typeNode,ve(L,We.symbols)),e.factory.updateParameterDeclaration(ue,ue.decorators,ue.modifiers,ue.dotDotDotToken,ue.name,ue.questionToken,Fe,ue.initializer)});if(I!==D&&(I=e.setTextRange(e.factory.createNodeArray(D,I.hasTrailingComma),I)),l){var fe=q(l,Y);fe&&(l=fe.typeNode,ve(L,fe.symbols))}}var g=y?e.factory.createToken(57):void 0,ne=j.asteriskToken;if(e.isFunctionExpression(j))return e.factory.updateFunctionExpression(j,A,j.asteriskToken,e.tryCast($,e.isIdentifier),H,I,l,X!=null?X:j.body);if(e.isArrowFunction(j))return e.factory.updateArrowFunction(j,A,H,I,l,j.equalsGreaterThanToken,X!=null?X:j.body);if(e.isMethodDeclaration(j))return e.factory.updateMethodDeclaration(j,void 0,A,ne,$!=null?$:e.factory.createIdentifier(""),g,H,I,l,X)}}C.createSignatureDeclarationFromSignature=le;function N(ee,he,F,x,X,$,A){var y=e.getQuotePreference(he.sourceFile,he.preferences),V=e.getEmitScriptTarget(he.program.getCompilerOptions()),L=B(he),P=he.program.getTypeChecker(),k=e.isInJSFile(A),Y=x.typeArguments,U=x.arguments,j=x.parent,H=k?void 0:P.getContextualType(x),I=e.map(U,function(ue){return e.isIdentifier(ue)?ue.text:e.isPropertyAccessExpression(ue)&&e.isIdentifier(ue.name)?ue.name.text:void 0}),l=k?[]:e.map(U,function(ue){return p(P,F,P.getBaseTypeOfLiteralType(P.getTypeAtLocation(ue)),A,V,void 0,L)}),d=$?e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags($)):void 0,D=e.isYieldExpression(j)?e.factory.createToken(41):void 0,fe=k||Y===void 0?void 0:e.map(Y,function(ue,We){return e.factory.createTypeParameterDeclaration(void 0,84+Y.length-1<=90?String.fromCharCode(84+We):"T".concat(We))}),g=m(U.length,I,l,void 0,k),ne=k||H===void 0?void 0:P.typeToTypeNode(H,A,void 0,L);switch(ee){case 169:return e.factory.createMethodDeclaration(void 0,d,D,X,void 0,fe,g,ne,T(y));case 168:return e.factory.createMethodSignature(d,X,void 0,fe,g,ne);case 256:return e.factory.createFunctionDeclaration(void 0,d,D,X,fe,g,ne,K(e.Diagnostics.Function_not_implemented.message,y));default:e.Debug.fail("Unexpected kind")}}C.createSignatureDeclarationFromCallExpression=N;function p(ee,he,F,x,X,$,A){var y=ee.typeToTypeNode(F,x,$,A);if(y&&e.isImportTypeNode(y)){var V=q(y,X);V&&(ve(he,V.symbols),y=V.typeNode)}return e.getSynthesizedDeepClone(y)}C.typeToAutoImportableTypeNode=p;function m(ee,he,F,x,X){for(var $=[],A=0;A=x?e.factory.createToken(57):void 0,X?void 0:F&&F[A]||e.factory.createKeywordTypeNode(155),void 0);$.push(y)}return $}function G(ee,he,F,x,X,$,A,y,V){for(var L=x[0],P=x[0].minArgumentCount,k=!1,Y=0,U=x;Y=L.parameters.length&&(!e.signatureHasRestParameter(j)||e.signatureHasRestParameter(L))&&(L=j)}var H=L.parameters.length-(e.signatureHasRestParameter(L)?1:0),I=L.parameters.map(function(D){return D.name}),l=m(H,I,void 0,P,!1);if(k){var d=e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),I[H]||"rest",H>=P?e.factory.createToken(57):void 0,e.factory.createArrayTypeNode(e.factory.createKeywordTypeNode(155)),void 0);l.push(d)}return f(A,X,$,void 0,l,oe(x,ee,he,F),y,V)}function oe(ee,he,F,x){if(e.length(ee)){var X=he.getUnionType(e.map(ee,he.getReturnTypeOfSignature));return he.typeToTypeNode(X,x,void 0,B(F))}}function f(ee,he,F,x,X,$,A,y){return e.factory.createMethodDeclaration(void 0,ee,void 0,he,F?e.factory.createToken(57):void 0,x,X,$,y||T(A))}function T(ee){return K(e.Diagnostics.Method_not_implemented.message,ee)}function K(ee,he){return e.factory.createBlock([e.factory.createThrowStatement(e.factory.createNewExpression(e.factory.createIdentifier("Error"),void 0,[e.factory.createStringLiteral(ee,he===0)]))],!0)}C.createStubbedBody=K;function b(ee){if(ee&4)return e.factory.createToken(123);if(ee&16)return e.factory.createToken(122)}function se(ee,he,F){var x=e.getTsConfigObjectLiteralExpression(he);if(!!x){var X=R(x,"compilerOptions");if(X===void 0){ee.insertNodeAtObjectStart(he,x,ie("compilerOptions",e.factory.createObjectLiteralExpression(F.map(function(Y){var U=Y[0],j=Y[1];return ie(U,j)}),!0)));return}var $=X.initializer;if(!!e.isObjectLiteralExpression($))for(var A=0,y=F;A0)return[C.createCodeFixAction(w,N,e.Diagnostics.Convert_to_a_bigint_numeric_literal,w,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N)})}});function E(Q,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),e.isNumericLiteral);if(!!p){var m=p.getText(le)+"n";Q.replaceNode(le,p,e.factory.createBigIntLiteral(m))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixAddModuleReferTypeMissingTypeof",B=w,E=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];C.registerCodeFix({errorCodes:E,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=Q(m,G.start),f=e.textChanges.ChangeTracker.with(p,function(T){return le(T,m,oe)});return[C.createCodeFixAction(B,f,e.Diagnostics.Add_missing_typeof,B,e.Diagnostics.Add_missing_typeof)]},fixIds:[B],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return le(p,N.sourceFile,Q(m.file,m.start))})}});function Q(N,p){var m=e.getTokenAtPosition(N,p);return e.Debug.assert(m.kind===100,"This token should be an ImportKeyword"),e.Debug.assert(m.parent.kind===200,"Token parent should be an ImportType"),m.parent}function le(N,p,m){var G=e.factory.updateImportTypeNode(m,m.argument,m.qualifier,m.typeArguments,!0);N.replaceNode(p,m,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="wrapJsxInFragment",B=[e.Diagnostics.JSX_expressions_must_have_one_parent_element.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(T){return Q(T,m,oe)});return[C.createCodeFixAction(w,f,e.Diagnostics.Wrap_in_JSX_fragment,w,e.Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,B,function(p,m){var G=E(N.sourceFile,m.start);!G||Q(p,N.sourceFile,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=m.parent,oe=G.parent;if(!(!e.isBinaryExpression(oe)&&(oe=oe.parent,!e.isBinaryExpression(oe)))&&!!e.nodeIsMissing(oe.operatorToken))return oe}function Q(N,p,m){var G=le(m);G&&N.replaceNode(p,m,e.factory.createJsxFragment(e.factory.createJsxOpeningFragment(),G,e.factory.createJsxJsxClosingFragment()))}function le(N){for(var p=[],m=N;;)if(e.isBinaryExpression(m)&&e.nodeIsMissing(m.operatorToken)&&m.operatorToken.kind===27){if(p.push(m.left),e.isJsxChild(m.right))return p.push(m.right),p;if(e.isBinaryExpression(m.right)){m=m.right;continue}else return}else return}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixConvertToMappedObjectType",B=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(K){return le(K,m,oe)}),T=e.idText(oe.container.name);return[C.createCodeFixAction(w,f,[e.Diagnostics.Convert_0_to_mapped_object_type,T],w,[e.Diagnostics.Convert_0_to_mapped_object_type,T])]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,B,function(p,m){var G=E(m.file,m.start);G&&le(p,m.file,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=e.tryCast(m.parent.parent,e.isIndexSignatureDeclaration);if(!!G){var oe=e.isInterfaceDeclaration(G.parent)?G.parent:e.tryCast(G.parent.parent,e.isTypeAliasDeclaration);if(!!oe)return{indexSignature:G,container:oe}}}function Q(N,p){return e.factory.createTypeAliasDeclaration(N.decorators,N.modifiers,N.name,N.typeParameters,p)}function le(N,p,m){var G=m.indexSignature,oe=m.container,f=e.isInterfaceDeclaration(oe)?oe.members:oe.type.members,T=f.filter(function(ie){return!e.isIndexSignatureDeclaration(ie)}),K=e.first(G.parameters),b=e.factory.createTypeParameterDeclaration(void 0,e.cast(K.name,e.isIdentifier),K.type),se=e.factory.createMappedTypeNode(e.hasEffectiveReadonlyModifier(G)?e.factory.createModifier(145):void 0,b,void 0,G.questionToken,G.type,void 0),J=e.factory.createIntersectionTypeNode(Ve(Ve(Ve([],e.getAllSuperTypeNodes(oe),!0),[se],!1),T.length?[e.factory.createTypeLiteralNode(T)]:e.emptyArray,!0));N.replaceNode(p,oe,Q(oe,J))}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="removeAccidentalCallParentheses",B=[e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(E){var Q=e.findAncestor(e.getTokenAtPosition(E.sourceFile,E.span.start),e.isCallExpression);if(!!Q){var le=e.textChanges.ChangeTracker.with(E,function(N){N.deleteRange(E.sourceFile,{pos:Q.expression.end,end:Q.end})});return[C.createCodeFixActionWithoutFixAll(w,le,e.Diagnostics.Remove_parentheses)]}},fixIds:[w]})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="removeUnnecessaryAwait",B=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span)});if(N.length>0)return[C.createCodeFixAction(w,N,e.Diagnostics.Remove_unnecessary_await,w,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N)})}});function E(Q,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),function(K){return K.kind===132}),m=p&&e.tryCast(p.parent,e.isAwaitExpression);if(!!m){var G=m,oe=e.isParenthesizedExpression(m.parent);if(oe){var f=e.getLeftmostExpression(m.expression,!1);if(e.isIdentifier(f)){var T=e.findPrecedingToken(m.parent.pos,le);T&&T.kind!==103&&(G=m.parent)}}Q.replaceNode(le,G,m.expression)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=[e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code],B="splitTypeOnlyImport";C.registerCodeFix({errorCodes:w,fixIds:[B],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return Q(m,E(N.sourceFile,N.span),N)});if(p.length)return[C.createCodeFixAction(B,p,e.Diagnostics.Split_into_two_separate_import_declarations,B,e.Diagnostics.Split_all_invalid_type_only_imports)]},getAllCodeActions:function(le){return C.codeFixAll(le,w,function(N,p){Q(N,E(le.sourceFile,p),le)})}});function E(le,N){return e.findAncestor(e.getTokenAtPosition(le,N.start),e.isImportDeclaration)}function Q(le,N,p){if(!!N){var m=e.Debug.checkDefined(N.importClause);le.replaceNode(p.sourceFile,N,e.factory.updateImportDeclaration(N,N.decorators,N.modifiers,e.factory.updateImportClause(m,m.isTypeOnly,m.name,void 0),N.moduleSpecifier,N.assertClause)),le.insertNodeAfter(p.sourceFile,N,e.factory.createImportDeclaration(void 0,void 0,e.factory.updateImportClause(m,m.isTypeOnly,void 0,m.namedBindings),N.moduleSpecifier,N.assertClause))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixConvertConstToLet",B=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=N.program,oe=E(p,m.start,G);if(oe!==void 0){var f=e.textChanges.ChangeTracker.with(N,function(T){return Q(T,p,oe)});return[C.createCodeFixAction(w,f,e.Diagnostics.Convert_const_to_let,w,e.Diagnostics.Convert_const_to_let)]}},fixIds:[w]});function E(le,N,p){var m,G=p.getTypeChecker(),oe=G.getSymbolAtLocation(e.getTokenAtPosition(le,N)),f=e.tryCast((m=oe==null?void 0:oe.valueDeclaration)===null||m===void 0?void 0:m.parent,e.isVariableDeclarationList);if(f!==void 0){var T=e.findChildOfKind(f,85,le);if(T!==void 0)return e.createRange(T.pos,T.end)}}function Q(le,N,p){le.replaceRangeWithText(N,p,"let")}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="fixExpectedComma",B=e.Diagnostics._0_expected.code,E=[B];C.registerCodeFix({errorCodes:E,getCodeActions:function(N){var p=N.sourceFile,m=Q(p,N.span.start,N.errorCode);if(!!m){var G=e.textChanges.ChangeTracker.with(N,function(oe){return le(oe,p,m)});return[C.createCodeFixAction(w,G,[e.Diagnostics.Change_0_to_1,";",","],w,[e.Diagnostics.Change_0_to_1,";",","])]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){var G=Q(m.file,m.start,m.code);G&&le(p,N.sourceFile,G)})}});function Q(N,p,m){var G=e.getTokenAtPosition(N,p);return G.kind===26&&G.parent&&(e.isObjectLiteralExpression(G.parent)||e.isArrayLiteralExpression(G.parent))?{node:G}:void 0}function le(N,p,m){var G=m.node,oe=e.factory.createToken(27);N.replaceNode(p,G,oe)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="addVoidToPromise",B="addVoidToPromise",E=[e.Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,e.Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code];C.registerCodeFix({errorCodes:E,fixIds:[B],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return Q(m,N.sourceFile,N.span,N.program)});if(p.length>0)return[C.createCodeFixAction(w,p,e.Diagnostics.Add_void_to_Promise_resolved_without_a_value,B,e.Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)]},getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return Q(p,m.file,m,N.program,new e.Set)})}});function Q(N,p,m,G,oe){var f=e.getTokenAtPosition(p,m.start);if(!(!e.isIdentifier(f)||!e.isCallExpression(f.parent)||f.parent.expression!==f||f.parent.arguments.length!==0)){var T=G.getTypeChecker(),K=T.getSymbolAtLocation(f),b=K==null?void 0:K.valueDeclaration;if(!(!b||!e.isParameter(b)||!e.isNewExpression(b.parent.parent))&&!(oe!=null&&oe.has(b))){oe==null||oe.add(b);var se=le(b.parent.parent);if(e.some(se)){var J=se[0],ie=!e.isUnionTypeNode(J)&&!e.isParenthesizedTypeNode(J)&&e.isParenthesizedTypeNode(e.factory.createUnionTypeNode([J,e.factory.createKeywordTypeNode(114)]).types[0]);ie&&N.insertText(p,J.pos,"("),N.insertText(p,J.end,ie?") | void":" | void")}else{var R=T.getResolvedSignature(f.parent),q=R==null?void 0:R.parameters[0],O=q&&T.getTypeOfSymbolAtLocation(q,b.parent.parent);e.isInJSFile(b)?(!O||O.flags&3)&&(N.insertText(p,b.parent.parent.end,")"),N.insertText(p,e.skipTrivia(p.text,b.parent.parent.pos),"/** @type {Promise} */(")):(!O||O.flags&2)&&N.insertText(p,b.parent.parent.expression.end,"")}}}}function le(N){var p;if(e.isInJSFile(N)){if(e.isParenthesizedExpression(N.parent)){var m=(p=e.getJSDocTypeTag(N.parent))===null||p===void 0?void 0:p.typeExpression.type;if(m&&e.isTypeReferenceNode(m)&&e.isIdentifier(m.typeName)&&e.idText(m.typeName)==="Promise")return m.typeArguments}}else return N.typeArguments}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="Convert export",B={name:"Convert default export to named export",description:e.Diagnostics.Convert_default_export_to_named_export.message,kind:"refactor.rewrite.export.named"},E={name:"Convert named export to default export",description:e.Diagnostics.Convert_named_export_to_default_export.message,kind:"refactor.rewrite.export.default"};C.registerRefactor(w,{kinds:[B.kind,E.kind],getAvailableActions:function(K){var b=Q(K,K.triggerReason==="invoked");if(!b)return e.emptyArray;if(!C.isRefactorErrorInfo(b)){var se=b.wasDefault?B:E;return[{name:w,description:se.description,actions:[se]}]}return K.preferences.provideRefactorNotApplicableReason?[{name:w,description:e.Diagnostics.Convert_default_export_to_named_export.message,actions:[Ke(Ke({},B),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray},getEditsForAction:function(K,b){e.Debug.assert(b===B.name||b===E.name,"Unexpected action name");var se=Q(K);e.Debug.assert(se&&!C.isRefactorErrorInfo(se),"Expected applicable refactor info");var J=e.textChanges.ChangeTracker.with(K,function(ie){return le(K.file,K.program,se,ie,K.cancellationToken)});return{edits:J,renameFilename:void 0,renameLocation:void 0}}});function Q(T,K){K===void 0&&(K=!0);var b=T.file,se=T.program,J=e.getRefactorContextSpan(T),ie=e.getTokenAtPosition(b,J.start),R=!!(ie.parent&&e.getSyntacticModifierFlags(ie.parent)&1)&&K?ie.parent:e.getParentNodeInSpan(ie,b,J);if(!R||!e.isSourceFile(R.parent)&&!(e.isModuleBlock(R.parent)&&e.isAmbientModule(R.parent.parent)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_export_statement)};var q=e.isSourceFile(R.parent)?R.parent.symbol:R.parent.parent.symbol,O=e.getSyntacticModifierFlags(R)||(e.isExportAssignment(R)&&!R.isExportEquals?513:0),ve=!!(O&512);if(!(O&1)||!ve&&q.exports.has("default"))return{error:e.getLocaleSpecificMessage(e.Diagnostics.This_file_already_has_a_default_export)};var ee=se.getTypeChecker(),he=function($){return e.isIdentifier($)&&ee.getSymbolAtLocation($)?void 0:{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_named_export)}};switch(R.kind){case 256:case 257:case 258:case 260:case 259:case 261:{var F=R;return F.name?he(F.name)||{exportNode:F,exportName:F.name,wasDefault:ve,exportingModuleSymbol:q}:void 0}case 237:{var x=R;if(!(x.declarationList.flags&2)||x.declarationList.declarations.length!==1)return;var X=e.first(x.declarationList.declarations);return X.initializer?(e.Debug.assert(!ve,"Can't have a default flag here"),he(X.name)||{exportNode:x,exportName:X.name,wasDefault:ve,exportingModuleSymbol:q}):void 0}case 271:{var F=R;return F.isExportEquals?void 0:he(F.expression)||{exportNode:F,exportName:F.expression,wasDefault:ve,exportingModuleSymbol:q}}default:return}}function le(T,K,b,se,J){N(T,b,se,K.getTypeChecker()),p(K,b,se,J)}function N(T,K,b,se){var J=K.wasDefault,ie=K.exportNode,R=K.exportName;if(J)if(e.isExportAssignment(ie)&&!ie.isExportEquals){var q=ie.expression,O=f(q.text,q.text);b.replaceNode(T,ie,e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports([O])))}else b.delete(T,e.Debug.checkDefined(e.findModifier(ie,88),"Should find a default keyword in modifier list"));else{var ve=e.Debug.checkDefined(e.findModifier(ie,93),"Should find an export keyword in modifier list");switch(ie.kind){case 256:case 257:case 258:b.insertNodeAfter(T,ve,e.factory.createToken(88));break;case 237:var ee=e.first(ie.declarationList.declarations);if(!e.FindAllReferences.Core.isSymbolReferencedInFile(R,se,T)&&!ee.type){b.replaceNode(T,ie,e.factory.createExportDefault(e.Debug.checkDefined(ee.initializer,"Initializer was previously known to be present")));break}case 260:case 259:case 261:b.deleteModifier(T,ve),b.insertNodeAfter(T,ie,e.factory.createExportDefault(e.factory.createIdentifier(R.text)));break;default:e.Debug.fail("Unexpected exportNode kind ".concat(ie.kind))}}}function p(T,K,b,se){var J=K.wasDefault,ie=K.exportName,R=K.exportingModuleSymbol,q=T.getTypeChecker(),O=e.Debug.checkDefined(q.getSymbolAtLocation(ie),"Export name should resolve to a symbol");e.FindAllReferences.Core.eachExportReference(T.getSourceFiles(),q,se,O,R,ie.text,J,function(ve){var ee=ve.getSourceFile();J?m(ee,ve,b,ie.text):G(ee,ve,b)})}function m(T,K,b,se){var J=K.parent;switch(J.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier(se));break;case 270:case 275:{var ie=J;b.replaceNode(T,ie,oe(se,ie.name.text));break}case 267:{var R=J;e.Debug.assert(R.name===K,"Import clause name should match provided ref");var ie=oe(se,K.text),q=R.namedBindings;if(!q)b.replaceNode(T,K,e.factory.createNamedImports([ie]));else if(q.kind===268){b.deleteRange(T,{pos:K.getStart(T),end:q.getStart(T)});var O=e.isStringLiteral(R.parent.moduleSpecifier)?e.quotePreferenceFromString(R.parent.moduleSpecifier,T):1,ve=e.makeImport(void 0,[oe(se,K.text)],R.parent.moduleSpecifier,O);b.insertNodeAfter(T,R.parent,ve)}else b.delete(T,K),b.insertNodeAtEndOfList(T,q.elements,ie);break}case 200:var ee=J;b.replaceNode(T,J,e.factory.createImportTypeNode(ee.argument,e.factory.createIdentifier(se),ee.typeArguments,ee.isTypeOf));break;default:e.Debug.failBadSyntaxKind(J)}}function G(T,K,b){var se=K.parent;switch(se.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier("default"));break;case 270:{var J=e.factory.createIdentifier(se.name.text);se.parent.elements.length===1?b.replaceNode(T,se.parent,J):(b.delete(T,se),b.insertNodeBefore(T,se.parent,J));break}case 275:{b.replaceNode(T,se,f("default",se.name.text));break}default:e.Debug.assertNever(se,"Unexpected parent kind ".concat(se.kind))}}function oe(T,K){return e.factory.createImportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}function f(T,K){return e.factory.createExportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B="Convert import",E=(w={},w[0]={name:"Convert namespace import to named imports",description:e.Diagnostics.Convert_namespace_import_to_named_imports.message,kind:"refactor.rewrite.import.named"},w[2]={name:"Convert named imports to namespace import",description:e.Diagnostics.Convert_named_imports_to_namespace_import.message,kind:"refactor.rewrite.import.namespace"},w[1]={name:"Convert named imports to default import",description:e.Diagnostics.Convert_named_imports_to_default_import.message,kind:"refactor.rewrite.import.default"},w);C.registerRefactor(B,{kinds:e.getOwnValues(E).map(function(K){return K.kind}),getAvailableActions:function(b){var se=Q(b,b.triggerReason==="invoked");if(!se)return e.emptyArray;if(!C.isRefactorErrorInfo(se)){var J=E[se.convertTo];return[{name:B,description:J.description,actions:[J]}]}return b.preferences.provideRefactorNotApplicableReason?e.getOwnValues(E).map(function(ie){return{name:B,description:ie.description,actions:[Ke(Ke({},ie),{notApplicableReason:se.error})]}}):e.emptyArray},getEditsForAction:function(b,se){e.Debug.assert(e.some(e.getOwnValues(E),function(R){return R.name===se}),"Unexpected action name");var J=Q(b);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),"Expected applicable refactor info");var ie=e.textChanges.ChangeTracker.with(b,function(R){return N(b.file,b.program,R,J)});return{edits:ie,renameFilename:void 0,renameLocation:void 0}}});function Q(K,b){b===void 0&&(b=!0);var se=K.file,J=e.getRefactorContextSpan(K),ie=e.getTokenAtPosition(se,J.start),R=b?e.findAncestor(ie,e.isImportDeclaration):e.getParentNodeInSpan(ie,se,J);if(!R||!e.isImportDeclaration(R))return{error:"Selection is not an import declaration."};var q=J.start+J.length,O=e.findNextToken(R,R.parent,se);if(!(O&&q>O.getStart())){var ve=R.importClause;if(!ve)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_import_clause)};if(!ve.namedBindings)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_namespace_import_or_named_imports)};if(ve.namedBindings.kind===268)return{convertTo:0,import:ve.namedBindings};var ee=le(K.program,ve);return ee?{convertTo:1,import:ve.namedBindings}:{convertTo:2,import:ve.namedBindings}}}function le(K,b){return e.getAllowSyntheticDefaultImports(K.getCompilerOptions())&&f(b.parent.moduleSpecifier,K.getTypeChecker())}function N(K,b,se,J){var ie=b.getTypeChecker();J.convertTo===0?p(K,ie,se,J.import,e.getAllowSyntheticDefaultImports(b.getCompilerOptions())):oe(K,b,se,J.import,J.convertTo===1)}function p(K,b,se,J,ie){var R=!1,q=[],O=new e.Map;e.FindAllReferences.Core.eachSymbolReferenceInFile(J.name,b,K,function(y){if(!e.isPropertyAccessOrQualifiedName(y.parent))R=!0;else{var V=m(y.parent).text;b.resolveName(V,y,67108863,!0)&&O.set(V,!0),e.Debug.assert(G(y.parent)===y,"Parent expression should match id"),q.push(y.parent)}});for(var ve=new e.Map,ee=0,he=q;ee=V.pos?L.getEnd():V.getEnd()),k=y?q(V):R(V,P),Y=k&&oe(k)?O(k):void 0;if(!Y)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var U=$.getTypeChecker();return e.isConditionalExpression(Y)?T(Y,U):K(Y)}}function T(F,x){var X=F.condition,$=ve(F.whenTrue);if(!$||x.isNullableType(x.getTypeAtLocation($)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};if((e.isPropertyAccessExpression(X)||e.isIdentifier(X))&&se(X,$.expression))return{finalExpression:$,occurrences:[X],expression:F};if(e.isBinaryExpression(X)){var A=b($.expression,X);return A?{finalExpression:$,occurrences:A,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}}function K(F){if(F.operatorToken.kind!==55)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_logical_AND_access_chains)};var x=ve(F.right);if(!x)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var X=b(x.expression,F.left);return X?{finalExpression:x,occurrences:X,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}function b(F,x){for(var X=[];e.isBinaryExpression(x)&&x.operatorToken.kind===55;){var $=se(e.skipParentheses(F),e.skipParentheses(x.right));if(!$)break;X.push($),F=$,x=x.left}var A=se(F,x);return A&&X.push(A),X.length>0?X:void 0}function se(F,x){if(!(!e.isIdentifier(x)&&!e.isPropertyAccessExpression(x)&&!e.isElementAccessExpression(x)))return J(F,x)?x:void 0}function J(F,x){for(;(e.isCallExpression(F)||e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F))&&ie(F)!==ie(x);)F=F.expression;for(;e.isPropertyAccessExpression(F)&&e.isPropertyAccessExpression(x)||e.isElementAccessExpression(F)&&e.isElementAccessExpression(x);){if(ie(F)!==ie(x))return!1;F=F.expression,x=x.expression}return e.isIdentifier(F)&&e.isIdentifier(x)&&F.getText()===x.getText()}function ie(F){if(e.isIdentifier(F)||e.isStringOrNumericLiteralLike(F))return F.getText();if(e.isPropertyAccessExpression(F))return ie(F.name);if(e.isElementAccessExpression(F))return ie(F.argumentExpression)}function R(F,x){for(;F.parent;){if(oe(F)&&x.length!==0&&F.end>=x.start+x.length)return F;F=F.parent}}function q(F){for(;F.parent;){if(oe(F)&&!oe(F.parent))return F;F=F.parent}}function O(F){if(m(F))return F;if(e.isVariableStatement(F)){var x=e.getSingleVariableOfVariableStatement(F),X=x==null?void 0:x.initializer;return X&&m(X)?X:void 0}return F.expression&&m(F.expression)?F.expression:void 0}function ve(F){if(F=e.skipParentheses(F),e.isBinaryExpression(F))return ve(F.left);if((e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F)||e.isCallExpression(F))&&!e.isOptionalChain(F))return F}function ee(F,x,X){if(e.isPropertyAccessExpression(x)||e.isElementAccessExpression(x)||e.isCallExpression(x)){var $=ee(F,x.expression,X),A=X.length>0?X[X.length-1]:void 0,y=(A==null?void 0:A.getText())===x.expression.getText();if(y&&X.pop(),e.isCallExpression(x))return y?e.factory.createCallChain($,e.factory.createToken(28),x.typeArguments,x.arguments):e.factory.createCallChain($,x.questionDotToken,x.typeArguments,x.arguments);if(e.isPropertyAccessExpression(x))return y?e.factory.createPropertyAccessChain($,e.factory.createToken(28),x.name):e.factory.createPropertyAccessChain($,x.questionDotToken,x.name);if(e.isElementAccessExpression(x))return y?e.factory.createElementAccessChain($,e.factory.createToken(28),x.argumentExpression):e.factory.createElementAccessChain($,x.questionDotToken,x.argumentExpression)}return x}function he(F,x,X,$,A){var y=$.finalExpression,V=$.occurrences,L=$.expression,P=V[V.length-1],k=ee(x,y,V);k&&(e.isPropertyAccessExpression(k)||e.isElementAccessExpression(k)||e.isCallExpression(k))&&(e.isBinaryExpression(L)?X.replaceNodeRange(F,P,y,k):e.isConditionalExpression(L)&&X.replaceNode(F,L,e.factory.createBinaryExpression(k,e.factory.createToken(60),L.whenFalse)))}})(w=C.convertToOptionalChainExpression||(C.convertToOptionalChainExpression={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E="Convert overload list to single signature",Q=e.Diagnostics.Convert_overload_list_to_single_signature.message,le={name:E,description:Q,kind:"refactor.rewrite.function.overloadList"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:p,getAvailableActions:N});function N(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);return b?[{name:E,description:Q,actions:[le]}]:e.emptyArray}function p(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);if(!b)return;var se=K.getTypeChecker(),J=b[b.length-1],ie=J;switch(J.kind){case 168:{ie=e.factory.updateMethodSignature(J,J.modifiers,J.name,J.questionToken,J.typeParameters,q(b),J.type);break}case 169:{ie=e.factory.updateMethodDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.questionToken,J.typeParameters,q(b),J.type,J.body);break}case 174:{ie=e.factory.updateCallSignature(J,J.typeParameters,q(b),J.type);break}case 171:{ie=e.factory.updateConstructorDeclaration(J,J.decorators,J.modifiers,q(b),J.body);break}case 175:{ie=e.factory.updateConstructSignature(J,J.typeParameters,q(b),J.type);break}case 256:{ie=e.factory.updateFunctionDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.typeParameters,q(b),J.type,J.body);break}default:return e.Debug.failBadSyntaxKind(J,"Unhandled signature kind in overload list conversion refactoring")}if(ie===J)return;var R=e.textChanges.ChangeTracker.with(oe,function(ee){ee.replaceNodeRange(f,b[0],b[b.length-1],ie)});return{renameFilename:void 0,renameLocation:void 0,edits:R};function q(ee){var he=ee[ee.length-1];return e.isFunctionLikeDeclaration(he)&&he.body&&(ee=ee.slice(0,ee.length-1)),e.factory.createNodeArray([e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),"args",void 0,e.factory.createUnionTypeNode(e.map(ee,O)))])}function O(ee){var he=e.map(ee.parameters,ve);return e.setEmitFlags(e.factory.createTupleTypeNode(he),e.some(he,function(F){return!!e.length(e.getSyntheticLeadingComments(F))})?0:1)}function ve(ee){e.Debug.assert(e.isIdentifier(ee.name));var he=e.setTextRange(e.factory.createNamedTupleMember(ee.dotDotDotToken,ee.name,ee.questionToken,ee.type||e.factory.createKeywordTypeNode(130)),ee),F=ee.symbol&&ee.symbol.getDocumentationComment(se);if(F){var x=e.displayPartsToString(F);x.length&&e.setSyntheticLeadingComments(he,[{text:`* +`.concat(x.split(` +`).map(function(X){return" * ".concat(X)}).join(` +`),` + `),kind:3,pos:-1,end:-1,hasTrailingNewLine:!0,hasLeadingNewline:!0}])}return he}}function m(oe){switch(oe.kind){case 168:case 169:case 174:case 171:case 175:case 256:return!0}return!1}function G(oe,f,T){var K=e.getTokenAtPosition(oe,f),b=e.findAncestor(K,m);if(!!b){var se=T.getTypeChecker(),J=b.symbol;if(!!J){var ie=J.declarations;if(!(e.length(ie)<=1)&&!!e.every(ie,function(ee){return e.getSourceFileOfNode(ee)===oe})&&!!m(ie[0])){var R=ie[0].kind;if(!!e.every(ie,function(ee){return ee.kind===R})){var q=ie;if(!e.some(q,function(ee){return!!ee.typeParameters||e.some(ee.parameters,function(he){return!!he.decorators||!!he.modifiers||!e.isIdentifier(he.name)})})){var O=e.mapDefined(q,function(ee){return se.getSignatureFromDeclaration(ee)});if(e.length(O)===e.length(ie)){var ve=se.getReturnTypeOfSignature(O[0]);if(!!e.every(O,function(ee){return se.getReturnTypeOfSignature(ee)===ve}))return q}}}}}}}})(w=C.addOrRemoveBracesToArrowFunction||(C.addOrRemoveBracesToArrowFunction={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E="Extract Symbol",Q={name:"Extract Constant",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),kind:"refactor.extract.constant"},le={name:"Extract Function",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),kind:"refactor.extract.function"};C.registerRefactor(E,{kinds:[Q.kind,le.kind],getEditsForAction:p,getAvailableActions:N});function N(Fe){var Z=Fe.kind,Be=oe(Fe.file,e.getRefactorContextSpan(Fe),Fe.triggerReason==="invoked"),ge=Be.targetRange;if(ge===void 0){if(!Be.errors||Be.errors.length===0||!Fe.preferences.provideRefactorNotApplicableReason)return e.emptyArray;var Re=[];return C.refactorKindBeginsWith(le.kind,Z)&&Re.push({name:E,description:le.description,actions:[Ke(Ke({},le),{notApplicableReason:Ne(Be.errors)})]}),C.refactorKindBeginsWith(Q.kind,Z)&&Re.push({name:E,description:Q.description,actions:[Ke(Ke({},Q),{notApplicableReason:Ne(Be.errors)})]}),Re}var ze=ie(ge,Fe);if(ze===void 0)return e.emptyArray;for(var Ee=[],He=new e.Map,rr,Ie=[],_e=new e.Map,we,de=0,ye=0,Ae=ze;ye=Z.start+Z.length)return(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractSuper)),!0}else we|=G.UsesThis,de=mi;break;case 214:e.forEachChild(mi,function Di(wi){if(e.isThis(wi))we|=G.UsesThis,de=mi;else{if(e.isClassLike(wi)||e.isFunctionLike(wi)&&!e.isArrowFunction(wi))return!1;e.forEachChild(wi,Di)}});case 257:case 256:e.isSourceFile(mi.parent)&&mi.parent.externalModuleIndicator===void 0&&(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.functionWillNotBeVisibleInTheNewScope));case 226:case 213:case 169:case 171:case 172:case 173:return!1}var qr=Ir;switch(mi.kind){case 239:Ir=0;break;case 252:Ir=0;break;case 235:mi.parent&&mi.parent.kind===252&&mi.parent.finallyBlock===mi&&(Ir=4);break;case 290:case 289:Ir|=1;break;default:e.isIterationStatement(mi,!1)&&(Ir|=3);break}switch(mi.kind){case 192:case 108:we|=G.UsesThis,de=mi;break;case 250:{var si=mi.label;(wr||(wr=[])).push(si.escapedText),e.forEachChild(mi,ii),wr.pop();break}case 246:case 245:{var si=mi.label;si?e.contains(wr,si.escapedText)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):Ir&(mi.kind===246?1:2)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break}case 218:we|=G.IsAsyncFunction;break;case 224:we|=G.IsGenerator;break;case 247:Ir&4?we|=G.HasReturn:(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(mi,ii);break}Ir=qr}}}B.getRangeToExtract=oe;function f(Fe,Z,Be){var ge=Fe.getStart(Be),Re=Z.getEnd();return Be.text.charCodeAt(Re)===59&&Re++,{start:ge,length:Re-ge}}function T(Fe){if(e.isStatement(Fe))return[Fe];if(e.isExpressionNode(Fe))return e.isExpressionStatement(Fe.parent)?[Fe.parent]:Fe;if(We(Fe))return Fe}function K(Fe){return e.isArrowFunction(Fe)?e.isFunctionBody(Fe.body):e.isFunctionLikeDeclaration(Fe)||e.isSourceFile(Fe)||e.isModuleBlock(Fe)||e.isClassLike(Fe)}function b(Fe){var Z=I(Fe.range)?e.first(Fe.range):Fe.range;if(Fe.facts&G.UsesThis&&!(Fe.facts&G.UsesThisInFunction)){var Be=e.getContainingClass(Z);if(Be){var ge=e.findAncestor(Z,e.isFunctionLikeDeclaration);return ge?[ge,Be]:[Be]}}for(var Re=[];;)if(Z=Z.parent,Z.kind===164&&(Z=e.findAncestor(Z,function(ze){return e.isFunctionLikeDeclaration(ze)}).parent),K(Z)&&(Re.push(Z),Z.kind===305))return Re}function se(Fe,Z,Be){var ge=R(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.functionErrorsPerScope,Ie=ze.exposedVariableDeclarations;return e.Debug.assert(!rr[Be].length,"The extraction went missing? How?"),Z.cancellationToken.throwIfCancellationRequested(),x(Ee,Re[Be],He[Be],Ie,Fe,Z)}function J(Fe,Z,Be){var ge=R(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.constantErrorsPerScope,Ie=ze.exposedVariableDeclarations;e.Debug.assert(!rr[Be].length,"The extraction went missing? How?"),e.Debug.assert(Ie.length===0,"Extract constant accepted a range containing a variable declaration?"),Z.cancellationToken.throwIfCancellationRequested();var _e=e.isExpression(Ee)?Ee:Ee.statements[0].expression;return X(_e,Re[Be],He[Be],Fe.facts,Z)}function ie(Fe,Z){var Be=R(Fe,Z),ge=Be.scopes,Re=Be.readsAndWrites,ze=Re.functionErrorsPerScope,Ee=Re.constantErrorsPerScope,He=ge.map(function(rr,Ie){var _e=q(rr),we=O(rr),de=e.isFunctionLikeDeclaration(rr)?ve(rr):e.isClassLike(rr)?ee(rr):he(rr),ye,Ae;return de===1?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,"global"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,"global"])):de===0?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,"module"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,"module"])):(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[_e,de]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[we,de])),Ie===0&&!e.isClassLike(rr)&&(Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[we])),{functionExtraction:{description:ye,errors:ze[Ie]},constantExtraction:{description:Ae,errors:Ee[Ie]}}});return He}function R(Fe,Z){var Be=Z.file,ge=b(Fe),Re=l(Fe,Be),ze=D(Fe,ge,Re,Be,Z.program.getTypeChecker(),Z.cancellationToken);return{scopes:ge,readsAndWrites:ze}}function q(Fe){return e.isFunctionLikeDeclaration(Fe)?"inner function":e.isClassLike(Fe)?"method":"function"}function O(Fe){return e.isClassLike(Fe)?"readonly field":"constant"}function ve(Fe){switch(Fe.kind){case 171:return"constructor";case 213:case 256:return Fe.name?"function '".concat(Fe.name.text,"'"):e.ANONYMOUS;case 214:return"arrow function";case 169:return"method '".concat(Fe.name.getText(),"'");case 172:return"'get ".concat(Fe.name.getText(),"'");case 173:return"'set ".concat(Fe.name.getText(),"'");default:throw e.Debug.assertNever(Fe,"Unexpected scope kind ".concat(Fe.kind))}}function ee(Fe){return Fe.kind===257?Fe.name?"class '".concat(Fe.name.text,"'"):"anonymous class declaration":Fe.name?"class expression '".concat(Fe.name.text,"'"):"anonymous class expression"}function he(Fe){return Fe.kind===262?"namespace '".concat(Fe.parent.name.getText(),"'"):Fe.externalModuleIndicator?0:1}var F;(function(Fe){Fe[Fe.Module=0]="Module",Fe[Fe.Global=1]="Global"})(F||(F={}));function x(Fe,Z,Be,ge,Re,ze){var Ee=Be.usages,He=Be.typeParameterUsages,rr=Be.substitutions,Ie=ze.program.getTypeChecker(),_e=e.getEmitScriptTarget(ze.program.getCompilerOptions()),we=e.codefix.createImportAdder(ze.file,ze.program,ze.preferences,ze.host),de=Z.getSourceFile(),ye=e.getUniqueName(e.isClassLike(Z)?"newMethod":"newFunction",de),Ae=e.isInJSFile(Z),er=e.factory.createIdentifier(ye),ir,Cr=[],Ye=[],Br;Ee.forEach(function(xe,vr){var mr;if(!Ae){var Ar=Ie.getTypeOfSymbolAtLocation(xe.symbol,xe.node);Ar=Ie.getBaseTypeOfLiteralType(Ar),mr=e.codefix.typeToAutoImportableTypeNode(Ie,we,Ar,Z,_e,1)}var Oe=e.factory.createParameterDeclaration(void 0,void 0,void 0,vr,void 0,mr);Cr.push(Oe),xe.usage===2&&(Br||(Br=[])).push(xe),Ye.push(e.factory.createIdentifier(vr))});var Er=e.arrayFrom(He.values()).map(function(xe){return{type:xe,declaration:A(xe)}}),Ne=Er.sort(y),n=Ne.length===0?void 0:Ne.map(function(xe){return xe.declaration}),lr=n!==void 0?n.map(function(xe){return e.factory.createTypeReferenceNode(xe.name,void 0)}):void 0;if(e.isExpression(Fe)&&!Ae){var be=Ie.getContextualType(Fe);ir=Ie.typeToTypeNode(be,Z,1)}var Ge=L(Fe,ge,Br,rr,!!(Re.facts&G.HasReturn)),ur=Ge.body,yr=Ge.returnValueProperty;e.suppressLeadingAndTrailingTrivia(ur);var Ir,wr=!!(Re.facts&G.UsesThisInFunction);if(e.isClassLike(Z)){var Ur=Ae?[]:[e.factory.createModifier(121)];Re.facts&G.InStaticRegion&&Ur.push(e.factory.createModifier(124)),Re.facts&G.IsAsyncFunction&&Ur.push(e.factory.createModifier(131)),Ir=e.factory.createMethodDeclaration(void 0,Ur.length?Ur:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,void 0,n,Cr,ir,ur)}else wr&&Cr.unshift(e.factory.createParameterDeclaration(void 0,void 0,void 0,"this",void 0,Ie.typeToTypeNode(Ie.getTypeAtLocation(Re.thisNode),Z,1),void 0)),Ir=e.factory.createFunctionDeclaration(void 0,Re.facts&G.IsAsyncFunction?[e.factory.createToken(131)]:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,n,Cr,ir,ur);var ii=e.textChanges.ChangeTracker.fromContext(ze),mi=(I(Re.range)?e.last(Re.range):Re.range).end,pe=Y(mi,Z);pe?ii.insertNodeBefore(ze.file,pe,Ir,!0):ii.insertNodeAtEndOfScope(ze.file,Z,Ir),we.writeFixes(ii);var or=[],qr=V(Z,Re,ye);wr&&Ye.unshift(e.factory.createIdentifier("this"));var si=e.factory.createCallExpression(wr?e.factory.createPropertyAccessExpression(qr,"call"):qr,lr,Ye);if(Re.facts&G.IsGenerator&&(si=e.factory.createYieldExpression(e.factory.createToken(41),si)),Re.facts&G.IsAsyncFunction&&(si=e.factory.createAwaitExpression(si)),ue(Fe)&&(si=e.factory.createJsxExpression(void 0,si)),ge.length&&!Br)if(e.Debug.assert(!yr,"Expected no returnValueProperty"),e.Debug.assert(!(Re.facts&G.HasReturn),"Expected RangeFacts.HasReturn flag to be unset"),ge.length===1){var Di=ge[0];or.push(e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([e.factory.createVariableDeclaration(e.getSynthesizedDeepClone(Di.name),void 0,e.getSynthesizedDeepClone(Di.type),si)],Di.parent.flags)))}else{for(var wi=[],Xi=[],et=ge[0].parent.flags,Gi=!1,Wt=0,Zt=ge;Wt1)return Fe;Be=Fe,Fe=Fe.parent}}function A(Fe){var Z,Be=Fe.symbol;if(Be&&Be.declarations)for(var ge=0,Re=Be.declarations;ge0;if(e.isBlock(Fe)&&!ze&&ge.size===0)return{body:e.factory.createBlock(Fe.statements,!0),returnValueProperty:void 0};var Ee,He=!1,rr=e.factory.createNodeArray(e.isBlock(Fe)?Fe.statements.slice(0):[e.isStatement(Fe)?Fe:e.factory.createReturnStatement(e.skipParentheses(Fe))]);if(ze||ge.size){var Ie=e.visitNodes(rr,we).slice();if(ze&&!Re&&e.isStatement(Fe)){var _e=H(Z,Be);_e.length===1?Ie.push(e.factory.createReturnStatement(_e[0].name)):Ie.push(e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(_e)))}return{body:e.factory.createBlock(Ie,!0),returnValueProperty:Ee}}else return{body:e.factory.createBlock(rr,!0),returnValueProperty:void 0};function we(de){if(!He&&e.isReturnStatement(de)&&ze){var ye=H(Z,Be);return de.expression&&(Ee||(Ee="__return"),ye.unshift(e.factory.createPropertyAssignment(Ee,e.visitNode(de.expression,we)))),ye.length===1?e.factory.createReturnStatement(ye[0].name):e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(ye))}else{var Ae=He;He=He||e.isFunctionLikeDeclaration(de)||e.isClassLike(de);var er=ge.get(e.getNodeId(de).toString()),ir=er?e.getSynthesizedDeepClone(er):e.visitEachChild(de,we,e.nullTransformationContext);return He=Ae,ir}}}function P(Fe,Z){return Z.size?Be(Fe):Fe;function Be(ge){var Re=Z.get(e.getNodeId(ge).toString());return Re?e.getSynthesizedDeepClone(Re):e.visitEachChild(ge,Be,e.nullTransformationContext)}}function k(Fe){if(e.isFunctionLikeDeclaration(Fe)){var Z=Fe.body;if(e.isBlock(Z))return Z.statements}else{if(e.isModuleBlock(Fe)||e.isSourceFile(Fe))return Fe.statements;if(e.isClassLike(Fe))return Fe.members;e.assertType(Fe)}return e.emptyArray}function Y(Fe,Z){return e.find(k(Z),function(Be){return Be.pos>=Fe&&e.isFunctionLikeDeclaration(Be)&&!e.isConstructorDeclaration(Be)})}function U(Fe,Z){var Be=Z.members;e.Debug.assert(Be.length>0,"Found no members");for(var ge,Re=!0,ze=0,Ee=Be;zeFe)return ge||Be[0];if(Re&&!e.isPropertyDeclaration(He)){if(ge!==void 0)return He;Re=!1}ge=He}return ge===void 0?e.Debug.fail():ge}function j(Fe,Z){e.Debug.assert(!e.isClassLike(Z));for(var Be,ge=Fe;ge!==Z;ge=ge.parent)K(ge)&&(Be=ge);for(var ge=(Be||Fe).parent;;ge=ge.parent){if(ne(ge)){for(var Re=void 0,ze=0,Ee=ge.statements;zeFe.pos)break;Re=He}return!Re&&e.isCaseClause(ge)?(e.Debug.assert(e.isSwitchStatement(ge.parent.parent),"Grandparent isn't a switch statement"),ge.parent.parent):e.Debug.checkDefined(Re,"prevStatement failed to get set")}e.Debug.assert(ge!==Z,"Didn't encounter a block-like before encountering scope")}}function H(Fe,Z){var Be=e.map(Fe,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)}),ge=e.map(Z,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)});return Be===void 0?ge:ge===void 0?Be:Be.concat(ge)}function I(Fe){return e.isArray(Fe)}function l(Fe,Z){return I(Fe.range)?{pos:e.first(Fe.range).getStart(Z),end:e.last(Fe.range).getEnd()}:Fe.range}var d;(function(Fe){Fe[Fe.Read=1]="Read",Fe[Fe.Write=2]="Write"})(d||(d={}));function D(Fe,Z,Be,ge,Re,ze){var Ee=new e.Map,He=[],rr=[],Ie=[],_e=[],we=[],de=new e.Map,ye=[],Ae,er=I(Fe.range)?Fe.range.length===1&&e.isExpressionStatement(Fe.range[0])?Fe.range[0].expression:void 0:Fe.range,ir;if(er===void 0){var Cr=Fe.range,Ye=e.first(Cr).getStart(),Br=e.last(Cr).end;ir=e.createFileDiagnostic(ge,Ye,Br-Ye,m.expressionExpected)}else Re.getTypeAtLocation(er).flags&147456&&(ir=e.createDiagnosticForNode(er,m.uselessConstantType));for(var Er=0,Ne=Z;Er0){for(var wr=new e.Map,Ur=0,ii=ur;ii!==void 0&&Ur0&&(Jr.usages.size>0||Jr.typeParameterUsages.size>0)){var ti=I(Fe.range)?Fe.range[0]:Fe.range;_e[Xe].push(e.createDiagnosticForNode(ti,m.cannotAccessVariablesFromNestedScopes))}Fe.facts&G.UsesThisInFunction&&e.isClassLike(Z[Xe])&&Ie[Xe].push(e.createDiagnosticForNode(Fe.thisNode,m.cannotExtractFunctionsContainingThisToMethod));var Ze=!1,Sr;if(He[Xe].usages.forEach(function(Wr){Wr.usage===2&&(Ze=!0,Wr.symbol.flags&106500&&Wr.symbol.valueDeclaration&&e.hasEffectiveModifier(Wr.symbol.valueDeclaration,64)&&(Sr=Wr.symbol.valueDeclaration))}),e.Debug.assert(I(Fe.range)||ye.length===0,"No variable declarations expected if something was extracted"),Ze&&!I(Fe.range)){var zr=e.createDiagnosticForNode(Fe.range,m.cannotWriteInExpression);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Sr&&Xe>0){var zr=e.createDiagnosticForNode(Sr,m.cannotExtractReadonlyPropertyInitializerOutsideConstructor);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Ae){var zr=e.createDiagnosticForNode(Ae,m.cannotExtractExportedEntity);Ie[Xe].push(zr),_e[Xe].push(zr)}},wi=0;wi=Jr)return Sr;if(be.set(Sr,Jr),zr){for(var Wr=0,Je=He;Wr=0)){var Jr=e.isIdentifier(Xe)?pi(Xe):Re.getSymbolAtLocation(Xe);if(Jr){var ti=e.find(we,function(Sr){return Sr.symbol===Jr});if(ti)if(e.isVariableDeclaration(ti)){var Ze=ti.symbol.id.toString();de.has(Ze)||(ye.push(ti),de.set(Ze,!0))}else Ae=Ae||ti}e.forEachChild(Xe,_r)}}function pi(Xe){return Xe.parent&&e.isShorthandPropertyAssignment(Xe.parent)&&Xe.parent.name===Xe?Re.getShorthandAssignmentValueSymbol(Xe.parent):Re.getSymbolAtLocation(Xe)}function ae(Xe,Jr,ti){if(!!Xe){var Ze=Xe.getDeclarations();if(Ze&&Ze.some(function(zr){return zr.parent===Jr}))return e.factory.createIdentifier(Xe.name);var Sr=ae(Xe.parent,Jr,ti);if(Sr!==void 0)return ti?e.factory.createQualifiedName(Sr,e.factory.createIdentifier(Xe.name)):e.factory.createPropertyAccessExpression(Sr,Xe.name)}}}function fe(Fe){return e.findAncestor(Fe,function(Z){return Z.parent&&g(Z)&&!e.isBinaryExpression(Z.parent)})}function g(Fe){var Z=Fe.parent;switch(Z.kind){case 299:return!1}switch(Fe.kind){case 10:return Z.kind!==266&&Z.kind!==270;case 225:case 201:case 203:return!1;case 79:return Z.kind!==203&&Z.kind!==270&&Z.kind!==275}return!0}function ne(Fe){switch(Fe.kind){case 235:case 305:case 262:case 289:return!0;default:return!1}}function ue(Fe){return We(Fe)||(e.isJsxElement(Fe)||e.isJsxSelfClosingElement(Fe)||e.isJsxFragment(Fe))&&(e.isJsxElement(Fe.parent)||e.isJsxFragment(Fe.parent))}function We(Fe){return e.isStringLiteral(Fe)&&Fe.parent&&e.isJsxAttribute(Fe.parent)}})(w=C.extractSymbol||(C.extractSymbol={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w="Extract type",B={name:"Extract to type alias",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_type_alias),kind:"refactor.extract.type"},E={name:"Extract to interface",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_interface),kind:"refactor.extract.interface"},Q={name:"Extract to typedef",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_typedef),kind:"refactor.extract.typedef"};C.registerRefactor(w,{kinds:[B.kind,E.kind,Q.kind],getAvailableActions:function(K){var b=le(K,K.triggerReason==="invoked");return b?C.isRefactorErrorInfo(b)?K.preferences.provideRefactorNotApplicableReason?[{name:w,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:[Ke(Ke({},Q),{notApplicableReason:b.error}),Ke(Ke({},B),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray:[{name:w,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:b.isJS?[Q]:e.append([B],b.typeElements&&E)}]:e.emptyArray},getEditsForAction:function(K,b){var se=K.file,J=le(K);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),"Expected to find a range to extract");var ie=e.getUniqueName("NewType",se),R=e.textChanges.ChangeTracker.with(K,function(ve){switch(b){case B.name:return e.Debug.assert(!J.isJS,"Invalid actionName/JS combo"),G(ve,se,ie,J);case Q.name:return e.Debug.assert(J.isJS,"Invalid actionName/JS combo"),f(ve,se,ie,J);case E.name:return e.Debug.assert(!J.isJS&&!!J.typeElements,"Invalid actionName/JS combo"),oe(ve,se,ie,J);default:e.Debug.fail("Unexpected action name")}}),q=se.fileName,O=e.getRenameLocation(R,q,ie,!1);return{edits:R,renameFilename:q,renameLocation:O}}});function le(T,K){K===void 0&&(K=!0);var b=T.file,se=T.startPosition,J=e.isSourceFileJS(b),ie=e.getTokenAtPosition(b,se),R=e.createTextRangeFromSpan(e.getRefactorContextSpan(T)),q=R.pos===R.end&&K,O=e.findAncestor(ie,function(x){return x.parent&&e.isTypeNode(x)&&!p(R,x.parent,b)&&(q||e.nodeOverlapsWithStartEnd(ie,b,R.pos,R.end))});if(!O||!e.isTypeNode(O))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Selection_is_not_a_valid_type_node)};var ve=T.program.getTypeChecker(),ee=e.Debug.checkDefined(e.findAncestor(O,e.isStatement),"Should find a statement"),he=m(ve,O,ee,b);if(!he)return{error:e.getLocaleSpecificMessage(e.Diagnostics.No_type_could_be_extracted_from_this_type_node)};var F=N(ve,O);return{isJS:J,selection:O,firstStatement:ee,typeParameters:he,typeElements:F}}function N(T,K){if(!!K)if(e.isIntersectionTypeNode(K)){for(var b=[],se=new e.Map,J=0,ie=K.types;Jrr.pos});if(_e!==-1){var we=Ie[_e];if(e.isNamedDeclaration(we)&&we.name&&e.rangeContainsRange(we.name,rr))return{toMove:[Ie[_e]],afterLast:Ie[_e+1]};if(!(rr.pos>we.getStart(He))){var de=e.findIndex(Ie,function(ye){return ye.end>rr.end},_e);if(!(de!==-1&&(de===0||Ie[de].getStart(He)=Q&&e.every(U,function(H){return F(H,j)})}function F(U,j){if(e.isRestParameter(U)){var H=j.getTypeAtLocation(U);if(!j.isArrayType(H)&&!j.isTupleType(H))return!1}return!U.modifiers&&!U.decorators&&e.isIdentifier(U.name)}function x(U){return e.isVariableDeclaration(U)&&e.isVarConst(U)&&e.isIdentifier(U.name)&&!U.type}function X(U){return U.length>0&&e.isThis(U[0].name)}function $(U){return X(U)?U.length-1:U.length}function A(U){return X(U)&&(U=e.factory.createNodeArray(U.slice(1),U.hasTrailingComma)),U}function y(U,j){return e.isIdentifier(j)&&e.getTextOfIdentifierOrLiteral(j)===U?e.factory.createShorthandPropertyAssignment(U):e.factory.createPropertyAssignment(U,j)}function V(U,j){var H=A(U.parameters),I=e.isRestParameter(e.last(H)),l=I?j.slice(0,H.length-1):j,d=e.map(l,function(ne,ue){var We=P(H[ue]),Fe=y(We,ne);return e.suppressLeadingAndTrailingTrivia(Fe.name),e.isPropertyAssignment(Fe)&&e.suppressLeadingAndTrailingTrivia(Fe.initializer),e.copyComments(ne,Fe),Fe});if(I&&j.length>=H.length){var D=j.slice(H.length-1),fe=e.factory.createPropertyAssignment(P(e.last(H)),e.factory.createArrayLiteralExpression(D));d.push(fe)}var g=e.factory.createObjectLiteralExpression(d,!1);return g}function L(U,j,H){var I=j.getTypeChecker(),l=A(U.parameters),d=e.map(l,Fe),D=e.factory.createObjectBindingPattern(d),fe=Z(l),g;e.every(l,Re)&&(g=e.factory.createObjectLiteralExpression());var ne=e.factory.createParameterDeclaration(void 0,void 0,void 0,D,void 0,fe,g);if(X(U.parameters)){var ue=U.parameters[0],We=e.factory.createParameterDeclaration(void 0,void 0,void 0,ue.name,void 0,ue.type);return e.suppressLeadingAndTrailingTrivia(We.name),e.copyComments(ue.name,We.name),ue.type&&(e.suppressLeadingAndTrailingTrivia(We.type),e.copyComments(ue.type,We.type)),e.factory.createNodeArray([We,ne])}return e.factory.createNodeArray([ne]);function Fe(ze){var Ee=e.factory.createBindingElement(void 0,void 0,P(ze),e.isRestParameter(ze)&&Re(ze)?e.factory.createArrayLiteralExpression():ze.initializer);return e.suppressLeadingAndTrailingTrivia(Ee),ze.initializer&&Ee.initializer&&e.copyComments(ze.initializer,Ee.initializer),Ee}function Z(ze){var Ee=e.map(ze,Be),He=e.addEmitFlags(e.factory.createTypeLiteralNode(Ee),1);return He}function Be(ze){var Ee=ze.type;!Ee&&(ze.initializer||e.isRestParameter(ze))&&(Ee=ge(ze));var He=e.factory.createPropertySignature(void 0,P(ze),Re(ze)?e.factory.createToken(57):ze.questionToken,Ee);return e.suppressLeadingAndTrailingTrivia(He),e.copyComments(ze.name,He.name),ze.type&&He.type&&e.copyComments(ze.type,He.type),He}function ge(ze){var Ee=I.getTypeAtLocation(ze);return e.getTypeNodeIfAccessible(Ee,ze,j,H)}function Re(ze){if(e.isRestParameter(ze)){var Ee=I.getTypeAtLocation(ze);return!I.isTupleType(Ee)}return I.isOptionalParameter(ze)}}function P(U){return e.getTextOfIdentifierOrLiteral(U.name)}function k(U){switch(U.parent.kind){case 257:var j=U.parent;if(j.name)return[j.name];var H=e.Debug.checkDefined(e.findModifier(j,88),"Nameless class declaration should be a default export");return[H];case 226:var I=U.parent,l=U.parent.parent,d=I.name;return d?[d,l.name]:[l.name]}}function Y(U){switch(U.kind){case 256:if(U.name)return[U.name];var j=e.Debug.checkDefined(e.findModifier(U,88),"Nameless function declaration should be a default export");return[j];case 169:return[U.name];case 171:var H=e.Debug.checkDefined(e.findChildOfKind(U,134,U.getSourceFile()),"Constructor declaration should have constructor keyword");if(U.parent.kind===226){var I=U.parent.parent;return[I.name,H]}return[H];case 214:return[U.parent.name];case 213:return U.name?[U.name,U.parent.name]:[U.parent.name];default:return e.Debug.assertNever(U,"Unexpected function declaration kind ".concat(U.kind))}}})(w=C.convertParamsToDestructuredObject||(C.convertParamsToDestructuredObject={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E="Convert to template string",Q=e.getLocaleSpecificMessage(e.Diagnostics.Convert_to_template_string),le={name:E,description:Q,kind:"refactor.rewrite.string"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:m,getAvailableActions:N});function N(ve){var ee=ve.file,he=ve.startPosition,F=p(ee,he),x=f(F),X={name:E,description:Q,actions:[]};return e.isBinaryExpression(x)&&T(x).isValidConcatenation?(X.actions.push(le),[X]):ve.preferences.provideRefactorNotApplicableReason?(X.actions.push(Ke(Ke({},le),{notApplicableReason:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_string_concatenation)})),[X]):e.emptyArray}function p(ve,ee){var he=e.getTokenAtPosition(ve,ee),F=f(he),x=!T(F).isValidConcatenation;return x&&e.isParenthesizedExpression(F.parent)&&e.isBinaryExpression(F.parent.parent)?F.parent.parent:he}function m(ve,ee){var he=ve.file,F=ve.startPosition,x=p(he,F);switch(ee){case Q:return{edits:G(ve,x)};default:return e.Debug.fail("invalid action")}}function G(ve,ee){var he=f(ee),F=ve.file,x=R(T(he),F),X=e.getTrailingCommentRanges(F.text,he.end);if(X){var $=X[X.length-1],A={pos:X[0].pos,end:$.end};return e.textChanges.ChangeTracker.with(ve,function(y){y.deleteRange(F,A),y.replaceNode(F,he,x)})}else return e.textChanges.ChangeTracker.with(ve,function(y){return y.replaceNode(F,he,x)})}function oe(ve){return ve.operatorToken.kind!==63}function f(ve){var ee=e.findAncestor(ve.parent,function(he){switch(he.kind){case 206:case 207:return!1;case 223:case 221:return!(e.isBinaryExpression(he.parent)&&oe(he.parent));default:return"quit"}});return ee||ve}function T(ve){var ee=function(A){if(!e.isBinaryExpression(A))return{nodes:[A],operators:[],validOperators:!0,hasString:e.isStringLiteral(A)||e.isNoSubstitutionTemplateLiteral(A)};var y=ee(A.left),V=y.nodes,L=y.operators,P=y.hasString,k=y.validOperators;if(!(P||e.isStringLiteral(A.right)||e.isTemplateExpression(A.right)))return{nodes:[A],operators:[],hasString:!1,validOperators:!0};var Y=A.operatorToken.kind===39,U=k&&Y;return V.push(A.right),L.push(A.operatorToken),{nodes:V,operators:L,hasString:!0,validOperators:U}},he=ee(ve),F=he.nodes,x=he.operators,X=he.validOperators,$=he.hasString;return{nodes:F,operators:x,isValidConcatenation:X&&$}}var K=function(ve,ee){return function(he,F){he0;){var X=F.shift();e.copyTrailingComments(ve[X],x,ee,3,!1),he(X,x)}}};function se(ve){return ve.replace(/\\.|[$`]/g,function(ee){return ee[0]==="\\"?ee:"\\"+ee})}function J(ve){var ee=e.isTemplateHead(ve)||e.isTemplateMiddle(ve)?-2:-1;return e.getTextOfNode(ve).slice(1,ee)}function ie(ve,ee){for(var he=[],F="",x="";ve1)return T.getUnionType(e.mapDefined(b,function(J){return J.getReturnType()}))}var se=T.getSignatureFromDeclaration(K);if(se)return T.getReturnTypeOfSignature(se)}})(w=C.inferFunctionReturnType||(C.inferFunctionReturnType={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){e.servicesVersion="0.8";function a(g,ne,ue,We){var Fe=e.isNodeKind(g)?new C(g,ne,ue):g===79?new p(79,ne,ue):g===80?new m(80,ne,ue):new N(g,ne,ue);return Fe.parent=We,Fe.flags=We.flags&50720768,Fe}var C=function(){function g(ne,ue,We){this.pos=ue,this.end=We,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=ne}return g.prototype.assertHasRealPosition=function(ne){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),ne||"Node must have a real position for this operation")},g.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},g.prototype.getStart=function(ne,ue){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,ne,ue)},g.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},g.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},g.prototype.getWidth=function(ne){return this.assertHasRealPosition(),this.getEnd()-this.getStart(ne)},g.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},g.prototype.getLeadingTriviaWidth=function(ne){return this.assertHasRealPosition(),this.getStart(ne)-this.pos},g.prototype.getFullText=function(ne){return this.assertHasRealPosition(),(ne||this.getSourceFile()).text.substring(this.pos,this.end)},g.prototype.getText=function(ne){return this.assertHasRealPosition(),ne||(ne=this.getSourceFile()),ne.text.substring(this.getStart(ne),this.getEnd())},g.prototype.getChildCount=function(ne){return this.getChildren(ne).length},g.prototype.getChildAt=function(ne,ue){return this.getChildren(ue)[ne]},g.prototype.getChildren=function(ne){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=w(this,ne))},g.prototype.getFirstToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne);if(!!ue.length){var We=e.find(ue,function(Fe){return Fe.kind<309||Fe.kind>347});return We.kind<161?We:We.getFirstToken(ne)}},g.prototype.getLastToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne),We=e.lastOrUndefined(ue);if(!!We)return We.kind<161?We:We.getLastToken(ne)},g.prototype.forEachChild=function(ne,ue){return e.forEachChild(this,ne,ue)},g}();function w(g,ne){if(!e.isNodeKind(g.kind))return e.emptyArray;var ue=[];if(e.isJSDocCommentContainingNode(g))return g.forEachChild(function(Be){ue.push(Be)}),ue;e.scanner.setText((ne||g.getSourceFile()).text);var We=g.pos,Fe=function(Be){B(ue,We,Be.pos,g),ue.push(Be),We=Be.end},Z=function(Be){B(ue,We,Be.pos,g),ue.push(E(Be,g)),We=Be.end};return e.forEach(g.jsDoc,Fe),We=g.pos,g.forEachChild(Fe,Z),B(ue,We,g.end,g),e.scanner.setText(void 0),ue}function B(g,ne,ue,We){for(e.scanner.setTextPos(ne);ne=Fe.length&&(Z=this.getEnd()),Z||(Z=Fe[We+1]-1);var Be=this.getFullText();return Be[Z]===` +`&&Be[Z-1]==="\r"?Z-1:Z},ne.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},ne.prototype.computeNamedDeclarations=function(){var ue=e.createMultiMap();return this.forEachChild(Be),ue;function We(ge){var Re=Z(ge);Re&&ue.add(Re,ge)}function Fe(ge){var Re=ue.get(ge);return Re||ue.set(ge,Re=[]),Re}function Z(ge){var Re=e.getNonAssignedNameOfDeclaration(ge);return Re&&(e.isComputedPropertyName(Re)&&e.isPropertyAccessExpression(Re.expression)?Re.expression.name.text:e.isPropertyName(Re)?e.getNameFromPropertyName(Re):void 0)}function Be(ge){switch(ge.kind){case 256:case 213:case 169:case 168:var Re=ge,ze=Z(Re);if(ze){var Ee=Fe(ze),He=e.lastOrUndefined(Ee);He&&Re.parent===He.parent&&Re.symbol===He.symbol?Re.body&&!He.body&&(Ee[Ee.length-1]=Re):Ee.push(Re)}e.forEachChild(ge,Be);break;case 257:case 226:case 258:case 259:case 260:case 261:case 265:case 275:case 270:case 267:case 268:case 172:case 173:case 182:We(ge),e.forEachChild(ge,Be);break;case 164:if(!e.hasSyntacticModifier(ge,16476))break;case 254:case 203:{var rr=ge;if(e.isBindingPattern(rr.name)){e.forEachChild(rr.name,Be);break}rr.initializer&&Be(rr.initializer)}case 299:case 167:case 166:We(ge);break;case 272:var Ie=ge;Ie.exportClause&&(e.isNamedExports(Ie.exportClause)?e.forEach(Ie.exportClause.elements,Be):Be(Ie.exportClause.name));break;case 266:var _e=ge.importClause;_e&&(_e.name&&We(_e.name),_e.namedBindings&&(_e.namedBindings.kind===268?We(_e.namedBindings):e.forEach(_e.namedBindings.elements,Be)));break;case 221:e.getAssignmentDeclarationKind(ge)!==0&&We(ge);default:e.forEachChild(ge,Be)}}},ne}(C),J=function(){function g(ne,ue,We){this.fileName=ne,this.text=ue,this.skipTrivia=We}return g.prototype.getLineAndCharacterOfPosition=function(ne){return e.getLineAndCharacterOfPosition(this,ne)},g}();function ie(){return{getNodeConstructor:function(){return C},getTokenConstructor:function(){return N},getIdentifierConstructor:function(){return p},getPrivateIdentifierConstructor:function(){return m},getSourceFileConstructor:function(){return se},getSymbolConstructor:function(){return le},getTypeConstructor:function(){return G},getSignatureConstructor:function(){return oe},getSourceMapSourceConstructor:function(){return J}}}function R(g){var ne=!0;for(var ue in g)if(e.hasProperty(g,ue)&&!q(ue)){ne=!1;break}if(ne)return g;var We={};for(var ue in g)if(e.hasProperty(g,ue)){var Fe=q(ue)?ue:ue.charAt(0).toLowerCase()+ue.substr(1);We[Fe]=g[ue]}return We}e.toEditorSettings=R;function q(g){return!g.length||g.charAt(0)===g.charAt(0).toLowerCase()}function O(g){return g?e.map(g,function(ne){return ne.text}).join(""):""}e.displayPartsToString=O;function ve(){return{target:1,jsx:1}}e.getDefaultCompilerOptions=ve;function ee(){return e.codefix.getSupportedErrorCodes()}e.getSupportedCodeFixes=ee;var he=function(){function g(ne,ue){this.host=ne,this.currentDirectory=ne.getCurrentDirectory(),this.fileNameToEntry=new e.Map;var We=ne.getScriptFileNames();e.tracing===null||e.tracing===void 0||e.tracing.push("session","initializeHostCache",{count:We.length});for(var Fe=0,Z=We;Fe=this.throttleWaitMilliseconds?(this.lastCancellationCheckTime=ne,this.hostCancellationToken.isCancellationRequested()):!1},g.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw e.tracing===null||e.tracing===void 0||e.tracing.instant("session","cancellationThrown",{kind:"ThrottledCancellationToken"}),new e.OperationCanceledException},g}();e.ThrottledCancellationToken=V;var L=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints"],P=Ve(Ve([],L,!0),["getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getOccurrencesAtPosition","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors"],!1);function k(g,ne,ue){var We,Fe;ne===void 0&&(ne=e.createDocumentRegistry(g.useCaseSensitiveFileNames&&g.useCaseSensitiveFileNames(),g.getCurrentDirectory()));var Z;ue===void 0?Z=e.LanguageServiceMode.Semantic:typeof ue=="boolean"?Z=ue?e.LanguageServiceMode.Syntactic:e.LanguageServiceMode.Semantic:Z=ue;var Be=new F(g),ge,Re,ze=0,Ee=g.getCancellationToken?new y(g.getCancellationToken()):A,He=g.getCurrentDirectory();e.maybeSetLocalizedDiagnosticMessages((Fe=g.getLocalizedDiagnosticMessages)===null||Fe===void 0?void 0:Fe.bind(g));function rr(Ai){g.log&&g.log(Ai)}var Ie=e.hostUsesCaseSensitiveFileNames(g),_e=e.createGetCanonicalFileName(Ie),we=e.getSourceMapper({useCaseSensitiveFileNames:function(){return Ie},getCurrentDirectory:function(){return He},getProgram:Ae,fileExists:e.maybeBind(g,g.fileExists),readFile:e.maybeBind(g,g.readFile),getDocumentPositionMapper:e.maybeBind(g,g.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(g,g.getSourceFileLike),log:rr});function de(Ai){var Oi=ge.getSourceFile(Ai);if(!Oi){var ji=new Error("Could not find source file: '".concat(Ai,"'."));throw ji.ProgramFiles=ge.getSourceFiles().map(function(Vi){return Vi.fileName}),ji}return Oi}function ye(){var Ai,Oi,ji;if(e.Debug.assert(Z!==e.LanguageServiceMode.Syntactic),g.getProjectVersion){var Vi=g.getProjectVersion();if(Vi){if(Re===Vi&&!(!((Ai=g.hasChangedAutomaticTypeDirectiveNames)===null||Ai===void 0)&&Ai.call(g)))return;Re=Vi}}var at=g.getTypeRootsVersion?g.getTypeRootsVersion():0;ze!==at&&(rr("TypeRoots version has changed; provide new program"),ge=void 0,ze=at);var At=new he(g,_e),ba=At.getRootFileNames(),$a=g.getCompilationSettings()||ve(),Qa=g.hasInvalidatedResolution||e.returnFalse,ai=e.maybeBind(g,g.hasChangedAutomaticTypeDirectiveNames),Dn=(Oi=g.getProjectReferences)===null||Oi===void 0?void 0:Oi.call(g),ka,Ba={useCaseSensitiveFileNames:Ie,fileExists:Pn,readFile:eo,readDirectory:Rn,trace:e.maybeBind(g,g.trace),getCurrentDirectory:function(){return He},onUnRecoverableConfigFileDiagnostic:e.noop};if(e.isProgramUptoDate(ge,ba,$a,function(En,Wn){return g.getScriptVersion(Wn)},Pn,Qa,ai,kn,Dn))return;var pn={getSourceFile:bo,getSourceFileByPath:Ro,getCancellationToken:function(){return Ee},getCanonicalFileName:_e,useCaseSensitiveFileNames:function(){return Ie},getNewLine:function(){return e.getNewLineCharacter($a,function(){return e.getNewLineOrDefaultFromHost(g)})},getDefaultLibFileName:function(En){return g.getDefaultLibFileName(En)},writeFile:e.noop,getCurrentDirectory:function(){return He},fileExists:Pn,readFile:eo,getSymlinkCache:e.maybeBind(g,g.getSymlinkCache),realpath:e.maybeBind(g,g.realpath),directoryExists:function(En){return e.directoryProbablyExists(En,g)},getDirectories:function(En){return g.getDirectories?g.getDirectories(En):[]},readDirectory:Rn,onReleaseOldSourceFile:Da,onReleaseParsedCommandLine:Kn,hasInvalidatedResolution:Qa,hasChangedAutomaticTypeDirectiveNames:ai,trace:Ba.trace,resolveModuleNames:e.maybeBind(g,g.resolveModuleNames),getModuleResolutionCache:e.maybeBind(g,g.getModuleResolutionCache),resolveTypeReferenceDirectives:e.maybeBind(g,g.resolveTypeReferenceDirectives),useSourceOfProjectReferenceRedirect:e.maybeBind(g,g.useSourceOfProjectReferenceRedirect),getParsedCommandLine:kn};(ji=g.setCompilerHost)===null||ji===void 0||ji.call(g,pn);var Cn=ne.getKeyForCompilationSettings($a),Bi={rootNames:ba,options:$a,host:pn,oldProgram:ge,projectReferences:Dn};ge=e.createProgram(Bi),At=void 0,ka=void 0,we.clearCache(),ge.getTypeChecker();return;function kn(En){var Wn=e.toPath(En,He,_e),to=ka==null?void 0:ka.get(Wn);if(to!==void 0)return to||void 0;var Co=g.getParsedCommandLine?g.getParsedCommandLine(En):xn(En);return(ka||(ka=new e.Map)).set(Wn,Co||!1),Co}function xn(En){var Wn=bo(En,100);if(!!Wn)return Wn.path=e.toPath(En,He,_e),Wn.resolvedPath=Wn.path,Wn.originalFileName=Wn.fileName,e.parseJsonSourceFileConfigFileContent(Wn,Ba,e.getNormalizedAbsolutePath(e.getDirectoryPath(En),He),void 0,e.getNormalizedAbsolutePath(En,He))}function Kn(En,Wn,to){var Co;g.getParsedCommandLine?(Co=g.onReleaseParsedCommandLine)===null||Co===void 0||Co.call(g,En,Wn,to):Wn&&Da(Wn.sourceFile,to)}function Pn(En){var Wn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(Wn);return to?!e.isString(to):!!g.fileExists&&g.fileExists(En)}function eo(En){var Wn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(Wn);return to?e.isString(to)?void 0:e.getSnapshotText(to.scriptSnapshot):g.readFile&&g.readFile(En)}function Rn(En,Wn,to,Co,Ko){return e.Debug.checkDefined(g.readDirectory,"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"),g.readDirectory(En,Wn,to,Co,Ko)}function Da(En,Wn){var to=ne.getKeyForCompilationSettings(Wn);ne.releaseDocumentWithKey(En.resolvedPath,to,En.scriptKind)}function bo(En,Wn,to,Co){return Ro(En,e.toPath(En,He,_e),Wn,to,Co)}function Ro(En,Wn,to,Co,Ko){e.Debug.assert(At!==void 0,"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.");var Oo=At&&At.getOrCreateEntryByPath(En,Wn);if(!!Oo){if(!Ko){var no=ge&&ge.getSourceFileByPath(Wn);if(no){if(Oo.scriptKind===no.scriptKind)return ne.updateDocumentWithKey(En,Wn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind);ne.releaseDocumentWithKey(no.resolvedPath,ne.getKeyForCompilationSettings(ge.getCompilerOptions()),no.scriptKind)}}return ne.acquireDocumentWithKey(En,Wn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind)}}}function Ae(){if(Z===e.LanguageServiceMode.Syntactic){e.Debug.assert(ge===void 0);return}return ye(),ge}function er(){var Ai;return(Ai=g.getPackageJsonAutoImportProvider)===null||Ai===void 0?void 0:Ai.call(g)}function ir(){ge=void 0}function Cr(){if(ge){var Ai=ne.getKeyForCompilationSettings(ge.getCompilerOptions());e.forEach(ge.getSourceFiles(),function(Oi){return ne.releaseDocumentWithKey(Oi.resolvedPath,Ai,Oi.scriptKind)}),ge=void 0}g=void 0}function Ye(Ai){return ye(),ge.getSyntacticDiagnostics(de(Ai),Ee).slice()}function Br(Ai){ye();var Oi=de(Ai),ji=ge.getSemanticDiagnostics(Oi,Ee);if(!e.getEmitDeclarations(ge.getCompilerOptions()))return ji.slice();var Vi=ge.getDeclarationDiagnostics(Oi,Ee);return Ve(Ve([],ji,!0),Vi,!0)}function Er(Ai){return ye(),e.computeSuggestionDiagnostics(de(Ai),ge,Ee)}function Ne(){return ye(),Ve(Ve([],ge.getOptionsDiagnostics(Ee),!0),ge.getGlobalDiagnostics(Ee),!0)}function n(Ai,Oi,ji,Vi){ji===void 0&&(ji=e.emptyOptions);var at=Ke(Ke({},e.identity(ji)),{includeCompletionsForModuleExports:ji.includeCompletionsForModuleExports||ji.includeExternalModuleExports,includeCompletionsWithInsertText:ji.includeCompletionsWithInsertText||ji.includeInsertTextCompletions});return ye(),e.Completions.getCompletionsAtPosition(g,ge,rr,de(Ai),Oi,at,ji.triggerCharacter,ji.triggerKind,Ee,Vi&&e.formatting.getFormatContext(Vi,g))}function lr(Ai,Oi,ji,Vi,at,At,ba){return At===void 0&&(At=e.emptyOptions),ye(),e.Completions.getCompletionEntryDetails(ge,rr,de(Ai),Oi,{name:ji,source:at,data:ba},g,Vi&&e.formatting.getFormatContext(Vi,g),At,Ee)}function be(Ai,Oi,ji,Vi,at){return at===void 0&&(at=e.emptyOptions),ye(),e.Completions.getCompletionEntrySymbol(ge,rr,de(Ai),Oi,{name:ji,source:Vi},g,at)}function Ge(Ai,Oi){ye();var ji=de(Ai),Vi=e.getTouchingPropertyName(ji,Oi);if(Vi!==ji){var at=ge.getTypeChecker(),At=ur(Vi),ba=l(At,at);if(!ba||at.isUnknownSymbol(ba)){var $a=yr(ji,At,Oi)?at.getTypeAtLocation(At):void 0;return $a&&{kind:"",kindModifiers:"",textSpan:e.createTextSpanFromNode(At,ji),displayParts:at.runWithCancellationToken(Ee,function(pn){return e.typeToDisplayParts(pn,$a,e.getContainerNode(At))}),documentation:$a.symbol?$a.symbol.getDocumentationComment(at):void 0,tags:$a.symbol?$a.symbol.getJsDocTags(at):void 0}}var Qa=at.runWithCancellationToken(Ee,function(pn){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(pn,ba,ji,e.getContainerNode(At),At)}),ai=Qa.symbolKind,Dn=Qa.displayParts,ka=Qa.documentation,Ba=Qa.tags;return{kind:ai,kindModifiers:e.SymbolDisplay.getSymbolModifiers(at,ba),textSpan:e.createTextSpanFromNode(At,ji),displayParts:Dn,documentation:ka,tags:Ba}}}function ur(Ai){return e.isNewExpression(Ai.parent)&&Ai.pos===Ai.parent.pos?Ai.parent.expression:e.isNamedTupleMember(Ai.parent)&&Ai.pos===Ai.parent.pos||e.isImportMeta(Ai.parent)&&Ai.parent.name===Ai?Ai.parent:Ai}function yr(Ai,Oi,ji){switch(Oi.kind){case 79:return!e.isLabelName(Oi)&&!e.isTagName(Oi)&&!e.isConstTypeReference(Oi.parent);case 206:case 161:return!e.isInComment(Ai,ji);case 108:case 192:case 106:case 197:return!0;case 231:return e.isImportMeta(Oi);default:return!1}}function Ir(Ai,Oi,ji,Vi){return ye(),e.GoToDefinition.getDefinitionAtPosition(ge,de(Ai),Oi,ji,Vi)}function wr(Ai,Oi){return ye(),e.GoToDefinition.getDefinitionAndBoundSpan(ge,de(Ai),Oi)}function Ur(Ai,Oi){return ye(),e.GoToDefinition.getTypeDefinitionAtPosition(ge.getTypeChecker(),de(Ai),Oi)}function ii(Ai,Oi){return ye(),e.FindAllReferences.getImplementationsAtPosition(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function mi(Ai,Oi){return e.flatMap(pe(Ai,Oi,[Ai]),function(ji){return ji.highlightSpans.map(function(Vi){return Ke(Ke({fileName:ji.fileName,textSpan:Vi.textSpan,isWriteAccess:Vi.kind==="writtenReference"},Vi.isInString&&{isInString:!0}),Vi.contextSpan&&{contextSpan:Vi.contextSpan})})})}function pe(Ai,Oi,ji){var Vi=e.normalizePath(Ai);e.Debug.assert(ji.some(function(ba){return e.normalizePath(ba)===Vi})),ye();var at=e.mapDefined(ji,function(ba){return ge.getSourceFile(ba)}),At=de(Ai);return e.DocumentHighlights.getDocumentHighlights(ge,Ee,At,Oi,at)}function or(Ai,Oi,ji,Vi,at){ye();var At=de(Ai),ba=e.getAdjustedRenameLocation(e.getTouchingPropertyName(At,Oi));if(!!e.Rename.nodeIsEligibleForRename(ba))if(e.isIdentifier(ba)&&(e.isJsxOpeningElement(ba.parent)||e.isJsxClosingElement(ba.parent))&&e.isIntrinsicJsxName(ba.escapedText)){var $a=ba.parent.parent,Qa=$a.openingElement,ai=$a.closingElement;return[Qa,ai].map(function(Dn){var ka=e.createTextSpanFromNode(Dn.tagName,At);return Ke({fileName:At.fileName,textSpan:ka},e.FindAllReferences.toContextSpan(ka,At,Dn.parent))})}else return si(ba,Oi,{findInStrings:ji,findInComments:Vi,providePrefixAndSuffixTextForRename:at,use:2},function(Dn,ka,Ba){return e.FindAllReferences.toRenameLocation(Dn,ka,Ba,at||!1)})}function qr(Ai,Oi){return ye(),si(e.getTouchingPropertyName(de(Ai),Oi),Oi,{use:1},e.FindAllReferences.toReferenceEntry)}function si(Ai,Oi,ji,Vi){ye();var at=ji&&ji.use===2?ge.getSourceFiles().filter(function(At){return!ge.isSourceFileDefaultLibrary(At)}):ge.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(ge,Ee,at,Ai,Oi,ji,Vi)}function Di(Ai,Oi){return ye(),e.FindAllReferences.findReferencedSymbols(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function wi(Ai){return ye(),e.FindAllReferences.Core.getReferencesForFileName(Ai,ge,ge.getSourceFiles()).map(e.FindAllReferences.toReferenceEntry)}function Xi(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=!1),ye();var at=ji?[de(ji)]:ge.getSourceFiles();return e.NavigateTo.getNavigateToItems(at,ge.getTypeChecker(),Ee,Ai,Oi,Vi)}function et(Ai,Oi,ji){ye();var Vi=de(Ai),at=g.getCustomTransformers&&g.getCustomTransformers();return e.getFileEmitOutput(ge,Vi,!!Oi,Ee,at,ji)}function Gi(Ai,Oi,ji){var Vi=ji===void 0?e.emptyOptions:ji,at=Vi.triggerReason;ye();var At=de(Ai);return e.SignatureHelp.getSignatureHelpItems(ge,At,Oi,at,Ee)}function Wt(Ai){return Be.getCurrentSourceFile(Ai)}function Zt(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.getTouchingPropertyName(Vi,Oi);if(at!==Vi){switch(at.kind){case 206:case 161:case 10:case 95:case 110:case 104:case 106:case 108:case 192:case 79:break;default:return}for(var At=at;;)if(e.isRightSideOfPropertyAccess(At)||e.isRightSideOfQualifiedName(At))At=At.parent;else if(e.isNameOfModuleDeclaration(At))if(At.parent.parent.kind===261&&At.parent.parent.body===At.parent)At=At.parent.parent.name;else break;else break;return e.createTextSpanFromBounds(At.getStart(),at.getEnd())}}function _r(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai);return e.BreakpointResolver.spanInSourceFileAtLocation(ji,Oi)}function pi(Ai){return e.NavigationBar.getNavigationBarItems(Be.getCurrentSourceFile(Ai),Ee)}function ae(Ai){return e.NavigationBar.getNavigationTree(Be.getCurrentSourceFile(Ai),Ee)}function Xe(Ai,Oi,ji){ye();var Vi=ji||"original";return Vi==="2020"?e.classifier.v2020.getSemanticClassifications(ge,Ee,de(Ai),Oi):e.getSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi)}function Jr(Ai,Oi,ji){ye();var Vi=ji||"original";return Vi==="original"?e.getEncodedSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi):e.classifier.v2020.getEncodedSemanticClassifications(ge,Ee,de(Ai),Oi)}function ti(Ai,Oi){return e.getSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Ze(Ai,Oi){return e.getEncodedSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Sr(Ai){var Oi=Be.getCurrentSourceFile(Ai);return e.OutliningElementsCollector.collectElements(Oi,Ee)}var zr=new e.Map(e.getEntries((We={},We[18]=19,We[20]=21,We[22]=23,We[31]=29,We)));zr.forEach(function(Ai,Oi){return zr.set(Ai.toString(),Number(Oi))});function Wr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.getTouchingToken(ji,Oi),at=Vi.getStart(ji)===Oi?zr.get(Vi.kind.toString()):void 0,At=at&&e.findChildOfKind(Vi.parent,at,ji);return At?[e.createTextSpanFromNode(Vi,ji),e.createTextSpanFromNode(At,ji)].sort(function(ba,$a){return ba.start-$a.start}):e.emptyArray}function Je(Ai,Oi,ji){var Vi=e.timestamp(),at=R(ji),At=Be.getCurrentSourceFile(Ai);rr("getIndentationAtPosition: getCurrentSourceFile: "+(e.timestamp()-Vi)),Vi=e.timestamp();var ba=e.formatting.SmartIndenter.getIndentation(Oi,At,at);return rr("getIndentationAtPosition: computeIndentation : "+(e.timestamp()-Vi)),ba}function xe(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai);return e.formatting.formatSelection(Oi,ji,at,e.formatting.getFormatContext(R(Vi),g))}function vr(Ai,Oi){return e.formatting.formatDocument(Be.getCurrentSourceFile(Ai),e.formatting.getFormatContext(R(Oi),g))}function mr(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai),At=e.formatting.getFormatContext(R(Vi),g);if(!e.isInComment(at,Oi))switch(ji){case"{":return e.formatting.formatOnOpeningCurly(Oi,at,At);case"}":return e.formatting.formatOnClosingCurly(Oi,at,At);case";":return e.formatting.formatOnSemicolon(Oi,at,At);case` +`:return e.formatting.formatOnEnter(Oi,at,At)}return[]}function Ar(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai),$a=e.createTextSpanFromBounds(Oi,ji),Qa=e.formatting.getFormatContext(at,g);return e.flatMap(e.deduplicate(Vi,e.equateValues,e.compareValues),function(ai){return Ee.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:ai,sourceFile:ba,span:$a,program:ge,host:g,cancellationToken:Ee,formatContext:Qa,preferences:At})})}function Oe(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=e.emptyOptions),ye(),e.Debug.assert(Ai.type==="file");var at=de(Ai.fileName),At=e.formatting.getFormatContext(ji,g);return e.codefix.getAllFixes({fixId:Oi,sourceFile:at,program:ge,host:g,cancellationToken:Ee,formatContext:At,preferences:Vi})}function nr(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye(),e.Debug.assert(Ai.type==="file");var Vi=de(Ai.fileName),at=e.formatting.getFormatContext(Oi,g);return e.OrganizeImports.organizeImports(Vi,at,g,ge,ji,Ai.skipDestructiveCodeActions)}function Mr(Ai,Oi,ji,Vi){return Vi===void 0&&(Vi=e.emptyOptions),e.getEditsForFileRename(Ae(),Ai,Oi,g,e.formatting.getFormatContext(ji,g),Vi,we)}function Pe(Ai,Oi){var ji=typeof Ai=="string"?Oi:Ai;return e.isArray(ji)?Promise.all(ji.map(function(Vi){return Ue(Vi)})):Ue(ji)}function Ue(Ai){var Oi=function(ji){return e.toPath(ji,He,_e)};return e.Debug.assertEqual(Ai.type,"install package"),g.installPackage?g.installPackage({fileName:Oi(Ai.file),packageName:Ai.packageName}):Promise.reject("Host does not implement `installPackage`")}function fr(Ai,Oi,ji){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(g),Be.getCurrentSourceFile(Ai),Oi,ji)}function De(Ai,Oi,ji){if(ji===60)return!1;var Vi=Be.getCurrentSourceFile(Ai);if(e.isInString(Vi,Oi))return!1;if(e.isInsideJsxElementOrAttribute(Vi,Oi))return ji===123;if(e.isInTemplateString(Vi,Oi))return!1;switch(ji){case 39:case 34:case 96:return!e.isInComment(Vi,Oi)}return!0}function gr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.findPrecedingToken(Oi,ji);if(!!Vi){var at=Vi.kind===31&&e.isJsxOpeningElement(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxElement(Vi.parent)?Vi.parent:void 0;if(at&&Wi(at))return{newText:"")};var At=Vi.kind===31&&e.isJsxOpeningFragment(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxFragment(Vi.parent)?Vi.parent:void 0;if(At&&ct(At))return{newText:""}}}function Vr(Ai,Oi){return{lineStarts:Ai.getLineStarts(),firstLine:Ai.getLineAndCharacterOfPosition(Oi.pos).line,lastLine:Ai.getLineAndCharacterOfPosition(Oi.end).line}}function Tr(Ai,Oi,ji){for(var Vi=Be.getCurrentSourceFile(Ai),at=[],At=Vr(Vi,Oi),ba=At.lineStarts,$a=At.firstLine,Qa=At.lastLine,ai=ji||!1,Dn=Number.MAX_VALUE,ka=new e.Map,Ba=new RegExp(/\S/),pn=e.isInsideJsxElement(Vi,ba[$a]),Cn=pn?"{/*":"//",Bi=$a;Bi<=Qa;Bi++){var kn=Vi.text.substring(ba[Bi],Vi.getLineEndOfPosition(ba[Bi])),xn=Ba.exec(kn);xn&&(Dn=Math.min(Dn,xn.index),ka.set(Bi.toString(),xn.index),kn.substr(xn.index,Cn.length)!==Cn&&(ai=ji===void 0||ji))}for(var Bi=$a;Bi<=Qa;Bi++)if(!($a!==Qa&&ba[Bi]===Oi.end)){var Kn=ka.get(Bi.toString());Kn!==void 0&&(pn?at.push.apply(at,vi(Ai,{pos:ba[Bi]+Dn,end:Vi.getLineEndOfPosition(ba[Bi])},ai,pn)):ai?at.push({newText:Cn,span:{length:0,start:ba[Bi]+Dn}}):Vi.text.substr(ba[Bi]+Kn,Cn.length)===Cn&&at.push({newText:"",span:{length:Cn.length,start:ba[Bi]+Kn}}))}return at}function vi(Ai,Oi,ji,Vi){for(var at,At=Be.getCurrentSourceFile(Ai),ba=[],$a=At.text,Qa=!1,ai=ji||!1,Dn=[],ka=Oi.pos,Ba=Vi!==void 0?Vi:e.isInsideJsxElement(At,ka),pn=Ba?"{/*":"/*",Cn=Ba?"*/}":"*/",Bi=Ba?"\\{\\/\\*":"\\/\\*",kn=Ba?"\\*\\/\\}":"\\*\\/";ka<=Oi.end;){var xn=$a.substr(ka,pn.length)===pn?pn.length:0,Kn=e.isInComment(At,ka+xn);if(Kn)Ba&&(Kn.pos--,Kn.end++),Dn.push(Kn.pos),Kn.kind===3&&Dn.push(Kn.end),Qa=!0,ka=Kn.end+1;else{var Pn=$a.substring(ka,Oi.end).search("(".concat(Bi,")|(").concat(kn,")"));ai=ji!==void 0?ji:ai||!e.isTextWhiteSpaceLike($a,ka,Pn===-1?Oi.end:ka+Pn),ka=Pn===-1?Oi.end+1:ka+Pn+Cn.length}}if(ai||!Qa){((at=e.isInComment(At,Oi.pos))===null||at===void 0?void 0:at.kind)!==2&&e.insertSorted(Dn,Oi.pos,e.compareValues),e.insertSorted(Dn,Oi.end,e.compareValues);var eo=Dn[0];$a.substr(eo,pn.length)!==pn&&ba.push({newText:pn,span:{length:0,start:eo}});for(var Rn=1;Rn0?Ro-Cn.length:0,xn=$a.substr(En,Cn.length)===Cn?Cn.length:0;ba.push({newText:"",span:{length:pn.length,start:Ro-xn}})}return ba}function Ui(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=Vr(ji,Oi),at=Vi.firstLine,At=Vi.lastLine;return at===At&&Oi.pos!==Oi.end?vi(Ai,Oi,!0):Tr(Ai,Oi,!0)}function Yi(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=[],at=Oi.pos,At=Oi.end;at===At&&(At+=e.isInsideJsxElement(ji,at)?2:1);for(var ba=at;ba<=At;ba++){var $a=e.isInComment(ji,ba);if($a){switch($a.kind){case 2:Vi.push.apply(Vi,Tr(Ai,{end:$a.end,pos:$a.pos+1},!1));break;case 3:Vi.push.apply(Vi,vi(Ai,{end:$a.end,pos:$a.pos+1},!1))}ba=$a.end+1}}return Vi}function Wi(Ai){var Oi=Ai.openingElement,ji=Ai.closingElement,Vi=Ai.parent;return!e.tagNamesAreEquivalent(Oi.tagName,ji.tagName)||e.isJsxElement(Vi)&&e.tagNamesAreEquivalent(Oi.tagName,Vi.openingElement.tagName)&&Wi(Vi)}function ct(Ai){var Oi=Ai.closingFragment,ji=Ai.parent;return!!(Oi.flags&131072)||e.isJsxFragment(ji)&&ct(ji)}function Li(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.formatting.getRangeOfEnclosingComment(Vi,Oi);return at&&(!ji||at.kind===3)?e.createTextSpanFromRange(at):void 0}function nt(Ai,Oi){ye();var ji=de(Ai);Ee.throwIfCancellationRequested();var Vi=ji.text,at=[];if(Oi.length>0&&!kn(ji.fileName))for(var At=Cn(),ba=void 0;ba=At.exec(Vi);){Ee.throwIfCancellationRequested();var $a=3;e.Debug.assert(ba.length===Oi.length+$a);var Qa=ba[1],ai=ba.index+Qa.length;if(!!e.isInComment(ji,ai)){for(var Dn=void 0,ka=0;ka=97&&xn<=122||xn>=65&&xn<=90||xn>=48&&xn<=57}function kn(xn){return e.stringContains(xn,"/node_modules/")}}function Mt(Ai,Oi,ji){return ye(),e.Rename.getRenameInfo(ge,de(Ai),Oi,ji)}function xt(Ai,Oi,ji,Vi,at,At){var ba=typeof Oi=="number"?[Oi,void 0]:[Oi.pos,Oi.end],$a=ba[0],Qa=ba[1];return{file:Ai,startPosition:$a,endPosition:Qa,program:Ae(),host:g,formatContext:e.formatting.getFormatContext(Vi,g),cancellationToken:Ee,preferences:ji,triggerReason:at,kind:At}}function ut(Ai,Oi,ji){return{file:Ai,program:Ae(),host:g,span:Oi,preferences:ji,cancellationToken:Ee}}function Dt(Ai,Oi){return e.SmartSelectionRange.getSmartSelectionRange(Oi,Be.getCurrentSourceFile(Ai))}function Rt(Ai,Oi,ji,Vi,at){ji===void 0&&(ji=e.emptyOptions),ye();var At=de(Ai);return e.refactor.getApplicableRefactors(xt(At,Oi,ji,e.emptyOptions,Vi,at))}function Ii(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai);return e.refactor.getEditsForRefactor(xt(ba,ji,At,Oi),Vi,at)}function Ki(Ai,Oi){return Oi===0?{line:0,character:0}:we.toLineColumnOffset(Ai,Oi)}function Fi(Ai,Oi){ye();var ji=e.CallHierarchy.resolveCallHierarchyDeclaration(ge,e.getTouchingPropertyName(de(Ai),Oi));return ji&&e.mapOneOrMany(ji,function(Vi){return e.CallHierarchy.createCallHierarchyItem(ge,Vi)})}function ui(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getIncomingCalls(ge,Vi,Ee):[]}function Bt(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getOutgoingCalls(ge,Vi):[]}function wt(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye();var Vi=de(Ai);return e.InlayHints.provideInlayHints(ut(Vi,Oi,ji))}var na={dispose:Cr,cleanupSemanticCache:ir,getSyntacticDiagnostics:Ye,getSemanticDiagnostics:Br,getSuggestionDiagnostics:Er,getCompilerOptionsDiagnostics:Ne,getSyntacticClassifications:ti,getSemanticClassifications:Xe,getEncodedSyntacticClassifications:Ze,getEncodedSemanticClassifications:Jr,getCompletionsAtPosition:n,getCompletionEntryDetails:lr,getCompletionEntrySymbol:be,getSignatureHelpItems:Gi,getQuickInfoAtPosition:Ge,getDefinitionAtPosition:Ir,getDefinitionAndBoundSpan:wr,getImplementationAtPosition:ii,getTypeDefinitionAtPosition:Ur,getReferencesAtPosition:qr,findReferences:Di,getFileReferences:wi,getOccurrencesAtPosition:mi,getDocumentHighlights:pe,getNameOrDottedNameSpan:Zt,getBreakpointStatementAtPosition:_r,getNavigateToItems:Xi,getRenameInfo:Mt,getSmartSelectionRange:Dt,findRenameLocations:or,getNavigationBarItems:pi,getNavigationTree:ae,getOutliningSpans:Sr,getTodoComments:nt,getBraceMatchingAtPosition:Wr,getIndentationAtPosition:Je,getFormattingEditsForRange:xe,getFormattingEditsForDocument:vr,getFormattingEditsAfterKeystroke:mr,getDocCommentTemplateAtPosition:fr,isValidBraceCompletionAtPosition:De,getJsxClosingTagAtPosition:gr,getSpanOfEnclosingComment:Li,getCodeFixesAtPosition:Ar,getCombinedCodeFix:Oe,applyCodeActionCommand:Pe,organizeImports:nr,getEditsForFileRename:Mr,getEmitOutput:et,getNonBoundSourceFile:Wt,getProgram:Ae,getAutoImportProvider:er,getApplicableRefactors:Rt,getEditsForRefactor:Ii,toLineColumnOffset:Ki,getSourceMapper:function(){return we},clearSourceMapperCache:function(){return we.clearCache()},prepareCallHierarchy:Fi,provideCallHierarchyIncomingCalls:ui,provideCallHierarchyOutgoingCalls:Bt,toggleLineComment:Tr,toggleMultilineComment:vi,commentSelection:Ui,uncommentSelection:Yi,provideInlayHints:wt};switch(Z){case e.LanguageServiceMode.Semantic:break;case e.LanguageServiceMode.PartialSemantic:L.forEach(function(Ai){return na[Ai]=function(){throw new Error("LanguageService Operation: ".concat(Ai," not allowed in LanguageServiceMode.PartialSemantic"))}});break;case e.LanguageServiceMode.Syntactic:P.forEach(function(Ai){return na[Ai]=function(){throw new Error("LanguageService Operation: ".concat(Ai," not allowed in LanguageServiceMode.Syntactic"))}});break;default:e.Debug.assertNever(Z)}return na}e.createLanguageService=k;function Y(g){return g.nameTable||U(g),g.nameTable}e.getNameTable=Y;function U(g){var ne=g.nameTable=new e.Map;g.forEachChild(function ue(We){if(e.isIdentifier(We)&&!e.isTagName(We)&&We.escapedText||e.isStringOrNumericLiteralLike(We)&&j(We)){var Fe=e.getEscapedTextOfIdentifierOrLiteral(We);ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}else if(e.isPrivateIdentifier(We)){var Fe=We.escapedText;ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}if(e.forEachChild(We,ue),e.hasJSDocNodes(We))for(var Z=0,Be=We.jsDoc;Zle){var N=e.findPrecedingToken(Q.pos,B);if(!N||B.getLineAndCharacterOfPosition(N.getEnd()).line!==le)return;Q=N}if(Q.flags&16777216)return;return K(Q);function p(b,se){var J=b.decorators?e.skipTrivia(B.text,b.decorators.end):b.getStart(B);return e.createTextSpanFromBounds(J,(se||b).getEnd())}function m(b,se){return p(b,e.findNextToken(se,se.parent,B))}function G(b,se){return b&&le===B.getLineAndCharacterOfPosition(b.getStart(B)).line?K(b):K(se)}function oe(b){return e.createTextSpanFromBounds(e.skipTrivia(B.text,b.pos),b.end)}function f(b){return K(e.findPrecedingToken(b.pos,B))}function T(b){return K(e.findNextToken(b,b.parent,B))}function K(b){if(b){var se=b.parent;switch(b.kind){case 237:return he(b.declarationList.declarations[0]);case 254:case 167:case 166:return he(b);case 164:return x(b);case 256:case 169:case 168:case 172:case 173:case 171:case 213:case 214:return $(b);case 235:if(e.isFunctionBlock(b))return A(b);case 262:return y(b);case 292:return y(b.block);case 238:return p(b.expression);case 247:return p(b.getChildAt(0),b.expression);case 241:return m(b,b.expression);case 240:return K(b.statement);case 253:return p(b.getChildAt(0));case 239:return m(b,b.expression);case 250:return K(b.statement);case 246:case 245:return p(b.getChildAt(0),b.label);case 242:return L(b);case 243:return m(b,b.expression);case 244:return V(b);case 249:return m(b,b.expression);case 289:case 290:return K(b.statements[0]);case 252:return y(b.tryBlock);case 251:return p(b,b.expression);case 271:return p(b,b.expression);case 265:return p(b,b.moduleReference);case 266:return p(b,b.moduleSpecifier);case 272:return p(b,b.moduleSpecifier);case 261:if(e.getModuleInstanceState(b)!==1)return;case 257:case 260:case 299:case 203:return p(b);case 248:return K(b.statement);case 165:return oe(se.decorators);case 201:case 202:return P(b);case 258:case 259:return;case 26:case 1:return G(e.findPrecedingToken(b.pos,B));case 27:return f(b);case 18:return Y(b);case 19:return U(b);case 23:return j(b);case 20:return H(b);case 21:return I(b);case 58:return l(b);case 31:case 29:return d(b);case 115:return D(b);case 91:case 83:case 96:return T(b);case 160:return fe(b);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(b))return k(b);if((b.kind===79||b.kind===225||b.kind===296||b.kind===297)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(se))return p(b);if(b.kind===221){var J=b,ie=J.left,R=J.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie))return k(ie);if(R.kind===63&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent))return p(b);if(R.kind===27)return K(ie)}if(e.isExpressionNode(b))switch(se.kind){case 240:return f(b);case 165:return K(b.parent);case 242:case 244:return p(b);case 221:if(b.parent.operatorToken.kind===27)return p(b);break;case 214:if(b.parent.body===b)return p(b);break}switch(b.parent.kind){case 296:if(b.parent.name===b&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent.parent))return K(b.parent.initializer);break;case 211:if(b.parent.type===b)return T(b.parent.type);break;case 254:case 164:{var q=b.parent,O=q.initializer,ve=q.type;if(O===b||ve===b||e.isAssignmentOperator(b.kind))return f(b);break}case 221:{var ie=b.parent.left;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie)&&b!==ie)return f(b);break}default:if(e.isFunctionLike(b.parent)&&b.parent.type===b)return f(b)}return K(b.parent)}}function ee(g){return e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]===g?p(e.findPrecedingToken(g.pos,B,g.parent),g):p(g)}function he(g){if(g.parent.parent.kind===243)return K(g.parent.parent);var ne=g.parent;if(e.isBindingPattern(g.name))return P(g.name);if(g.initializer||e.hasSyntacticModifier(g,1)||ne.parent.kind===244)return ee(g);if(e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]!==g)return K(e.findPrecedingToken(g.pos,B,g.parent))}function F(g){return!!g.initializer||g.dotDotDotToken!==void 0||e.hasSyntacticModifier(g,12)}function x(g){if(e.isBindingPattern(g.name))return P(g.name);if(F(g))return p(g);var ne=g.parent,ue=ne.parameters.indexOf(g);return e.Debug.assert(ue!==-1),ue!==0?x(ne.parameters[ue-1]):K(ne.body)}function X(g){return e.hasSyntacticModifier(g,1)||g.parent.kind===257&&g.kind!==171}function $(g){if(!!g.body)return X(g)?p(g):K(g.body)}function A(g){var ne=g.statements.length?g.statements[0]:g.getLastToken();return X(g.parent)?G(g.parent,ne):K(ne)}function y(g){switch(g.parent.kind){case 261:if(e.getModuleInstanceState(g.parent)!==1)return;case 241:case 239:case 243:return G(g.parent,g.statements[0]);case 242:case 244:return G(e.findPrecedingToken(g.pos,B,g.parent),g.statements[0])}return K(g.statements[0])}function V(g){if(g.initializer.kind===255){var ne=g.initializer;if(ne.declarations.length>0)return K(ne.declarations[0])}else return K(g.initializer)}function L(g){if(g.initializer)return V(g);if(g.condition)return p(g.condition);if(g.incrementor)return p(g.incrementor)}function P(g){var ne=e.forEach(g.elements,function(ue){return ue.kind!==227?ue:void 0});return ne?K(ne):g.parent.kind===203?p(g.parent):ee(g.parent)}function k(g){e.Debug.assert(g.kind!==202&&g.kind!==201);var ne=g.kind===204?g.elements:g.properties,ue=e.forEach(ne,function(We){return We.kind!==227?We:void 0});return ue?K(ue):p(g.parent.kind===221?g.parent:g)}function Y(g){switch(g.parent.kind){case 260:var ne=g.parent;return G(e.findPrecedingToken(g.pos,B,g.parent),ne.members.length?ne.members[0]:ne.getLastToken(B));case 257:var ue=g.parent;return G(e.findPrecedingToken(g.pos,B,g.parent),ue.members.length?ue.members[0]:ue.getLastToken(B));case 263:return G(g.parent.parent,g.parent.clauses[0])}return K(g.parent)}function U(g){switch(g.parent.kind){case 262:if(e.getModuleInstanceState(g.parent.parent)!==1)return;case 260:case 257:return p(g);case 235:if(e.isFunctionBlock(g.parent))return p(g);case 292:return K(e.lastOrUndefined(g.parent.statements));case 263:var ne=g.parent,ue=e.lastOrUndefined(ne.clauses);return ue?K(e.lastOrUndefined(ue.statements)):void 0;case 201:var We=g.parent;return K(e.lastOrUndefined(We.elements)||We);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var Fe=g.parent;return p(e.lastOrUndefined(Fe.properties)||Fe)}return K(g.parent)}}function j(g){switch(g.parent.kind){case 202:var ne=g.parent;return p(e.lastOrUndefined(ne.elements)||ne);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var ue=g.parent;return p(e.lastOrUndefined(ue.elements)||ue)}return K(g.parent)}}function H(g){return g.parent.kind===240||g.parent.kind===208||g.parent.kind===209?f(g):g.parent.kind===212?T(g):K(g.parent)}function I(g){switch(g.parent.kind){case 213:case 256:case 214:case 169:case 168:case 172:case 173:case 171:case 241:case 240:case 242:case 244:case 208:case 209:case 212:return f(g);default:return K(g.parent)}}function l(g){return e.isFunctionLike(g.parent)||g.parent.kind===296||g.parent.kind===164?f(g):K(g.parent)}function d(g){return g.parent.kind===211?T(g):K(g.parent)}function D(g){return g.parent.kind===240?m(g,g.parent.expression):K(g.parent)}function fe(g){return g.parent.kind===244?T(g):K(g.parent)}}}C.spanInSourceFileAtLocation=w})(a=e.BreakpointResolver||(e.BreakpointResolver={}))})(ke||(ke={}));var ke;(function(e){function a(C,w,B){var E=[];B=e.fixupCompilerOptions(B,E);var Q=e.isArray(C)?C:[C],le=e.transformNodes(void 0,void 0,e.factory,B,Q,w,!0);return le.diagnostics=e.concatenate(le.diagnostics,E),le}e.transform=a})(ke||(ke={}));var ar=function(){return this}(),ke;(function(e){function a(m,G){m&&m.log("*INTERNAL ERROR* - Exception in typescript services: "+G.message)}var C=void 0,w=void 0;e.LanguageServiceShimHostAdapter=w;var B=void 0;e.CoreServicesShimHostAdapter=B;var E=void 0;e.realizeDiagnostics=void 0;var Q=void 0,le=void 0,N=void 0,p=void 0;e.TypeScriptServicesFactory=void 0})(ke||(ke={})),function(){return;try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,typeof globalThis>"u"&&(window.globalThis=window),delete Object.prototype.__magic__}catch{window.globalThis=window}}(),typeof re<"u"&&re.exports&&(re.exports=ke);var ke;(function(e){var a={since:"4.0",warnAfter:"4.1",message:"Use the appropriate method on 'ts.factory' or the 'factory' supplied by your transformation context instead."};e.createNodeArray=e.Debug.deprecate(e.factory.createNodeArray,a),e.createNumericLiteral=e.Debug.deprecate(e.factory.createNumericLiteral,a),e.createBigIntLiteral=e.Debug.deprecate(e.factory.createBigIntLiteral,a),e.createStringLiteral=e.Debug.deprecate(e.factory.createStringLiteral,a),e.createStringLiteralFromNode=e.Debug.deprecate(e.factory.createStringLiteralFromNode,a),e.createRegularExpressionLiteral=e.Debug.deprecate(e.factory.createRegularExpressionLiteral,a),e.createLoopVariable=e.Debug.deprecate(e.factory.createLoopVariable,a),e.createUniqueName=e.Debug.deprecate(e.factory.createUniqueName,a),e.createPrivateIdentifier=e.Debug.deprecate(e.factory.createPrivateIdentifier,a),e.createSuper=e.Debug.deprecate(e.factory.createSuper,a),e.createThis=e.Debug.deprecate(e.factory.createThis,a),e.createNull=e.Debug.deprecate(e.factory.createNull,a),e.createTrue=e.Debug.deprecate(e.factory.createTrue,a),e.createFalse=e.Debug.deprecate(e.factory.createFalse,a),e.createModifier=e.Debug.deprecate(e.factory.createModifier,a),e.createModifiersFromModifierFlags=e.Debug.deprecate(e.factory.createModifiersFromModifierFlags,a),e.createQualifiedName=e.Debug.deprecate(e.factory.createQualifiedName,a),e.updateQualifiedName=e.Debug.deprecate(e.factory.updateQualifiedName,a),e.createComputedPropertyName=e.Debug.deprecate(e.factory.createComputedPropertyName,a),e.updateComputedPropertyName=e.Debug.deprecate(e.factory.updateComputedPropertyName,a),e.createTypeParameterDeclaration=e.Debug.deprecate(e.factory.createTypeParameterDeclaration,a),e.updateTypeParameterDeclaration=e.Debug.deprecate(e.factory.updateTypeParameterDeclaration,a),e.createParameter=e.Debug.deprecate(e.factory.createParameterDeclaration,a),e.updateParameter=e.Debug.deprecate(e.factory.updateParameterDeclaration,a),e.createDecorator=e.Debug.deprecate(e.factory.createDecorator,a),e.updateDecorator=e.Debug.deprecate(e.factory.updateDecorator,a),e.createProperty=e.Debug.deprecate(e.factory.createPropertyDeclaration,a),e.updateProperty=e.Debug.deprecate(e.factory.updatePropertyDeclaration,a),e.createMethod=e.Debug.deprecate(e.factory.createMethodDeclaration,a),e.updateMethod=e.Debug.deprecate(e.factory.updateMethodDeclaration,a),e.createConstructor=e.Debug.deprecate(e.factory.createConstructorDeclaration,a),e.updateConstructor=e.Debug.deprecate(e.factory.updateConstructorDeclaration,a),e.createGetAccessor=e.Debug.deprecate(e.factory.createGetAccessorDeclaration,a),e.updateGetAccessor=e.Debug.deprecate(e.factory.updateGetAccessorDeclaration,a),e.createSetAccessor=e.Debug.deprecate(e.factory.createSetAccessorDeclaration,a),e.updateSetAccessor=e.Debug.deprecate(e.factory.updateSetAccessorDeclaration,a),e.createCallSignature=e.Debug.deprecate(e.factory.createCallSignature,a),e.updateCallSignature=e.Debug.deprecate(e.factory.updateCallSignature,a),e.createConstructSignature=e.Debug.deprecate(e.factory.createConstructSignature,a),e.updateConstructSignature=e.Debug.deprecate(e.factory.updateConstructSignature,a),e.updateIndexSignature=e.Debug.deprecate(e.factory.updateIndexSignature,a),e.createKeywordTypeNode=e.Debug.deprecate(e.factory.createKeywordTypeNode,a),e.createTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.createTypePredicateNode,a),e.updateTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.updateTypePredicateNode,a),e.createTypeReferenceNode=e.Debug.deprecate(e.factory.createTypeReferenceNode,a),e.updateTypeReferenceNode=e.Debug.deprecate(e.factory.updateTypeReferenceNode,a),e.createFunctionTypeNode=e.Debug.deprecate(e.factory.createFunctionTypeNode,a),e.updateFunctionTypeNode=e.Debug.deprecate(e.factory.updateFunctionTypeNode,a),e.createConstructorTypeNode=e.Debug.deprecate(function(C,w,B){return e.factory.createConstructorTypeNode(void 0,C,w,B)},a),e.updateConstructorTypeNode=e.Debug.deprecate(function(C,w,B,E){return e.factory.updateConstructorTypeNode(C,C.modifiers,w,B,E)},a),e.createTypeQueryNode=e.Debug.deprecate(e.factory.createTypeQueryNode,a),e.updateTypeQueryNode=e.Debug.deprecate(e.factory.updateTypeQueryNode,a),e.createTypeLiteralNode=e.Debug.deprecate(e.factory.createTypeLiteralNode,a),e.updateTypeLiteralNode=e.Debug.deprecate(e.factory.updateTypeLiteralNode,a),e.createArrayTypeNode=e.Debug.deprecate(e.factory.createArrayTypeNode,a),e.updateArrayTypeNode=e.Debug.deprecate(e.factory.updateArrayTypeNode,a),e.createTupleTypeNode=e.Debug.deprecate(e.factory.createTupleTypeNode,a),e.updateTupleTypeNode=e.Debug.deprecate(e.factory.updateTupleTypeNode,a),e.createOptionalTypeNode=e.Debug.deprecate(e.factory.createOptionalTypeNode,a),e.updateOptionalTypeNode=e.Debug.deprecate(e.factory.updateOptionalTypeNode,a),e.createRestTypeNode=e.Debug.deprecate(e.factory.createRestTypeNode,a),e.updateRestTypeNode=e.Debug.deprecate(e.factory.updateRestTypeNode,a),e.createUnionTypeNode=e.Debug.deprecate(e.factory.createUnionTypeNode,a),e.updateUnionTypeNode=e.Debug.deprecate(e.factory.updateUnionTypeNode,a),e.createIntersectionTypeNode=e.Debug.deprecate(e.factory.createIntersectionTypeNode,a),e.updateIntersectionTypeNode=e.Debug.deprecate(e.factory.updateIntersectionTypeNode,a),e.createConditionalTypeNode=e.Debug.deprecate(e.factory.createConditionalTypeNode,a),e.updateConditionalTypeNode=e.Debug.deprecate(e.factory.updateConditionalTypeNode,a),e.createInferTypeNode=e.Debug.deprecate(e.factory.createInferTypeNode,a),e.updateInferTypeNode=e.Debug.deprecate(e.factory.updateInferTypeNode,a),e.createImportTypeNode=e.Debug.deprecate(e.factory.createImportTypeNode,a),e.updateImportTypeNode=e.Debug.deprecate(e.factory.updateImportTypeNode,a),e.createParenthesizedType=e.Debug.deprecate(e.factory.createParenthesizedType,a),e.updateParenthesizedType=e.Debug.deprecate(e.factory.updateParenthesizedType,a),e.createThisTypeNode=e.Debug.deprecate(e.factory.createThisTypeNode,a),e.updateTypeOperatorNode=e.Debug.deprecate(e.factory.updateTypeOperatorNode,a),e.createIndexedAccessTypeNode=e.Debug.deprecate(e.factory.createIndexedAccessTypeNode,a),e.updateIndexedAccessTypeNode=e.Debug.deprecate(e.factory.updateIndexedAccessTypeNode,a),e.createMappedTypeNode=e.Debug.deprecate(e.factory.createMappedTypeNode,a),e.updateMappedTypeNode=e.Debug.deprecate(e.factory.updateMappedTypeNode,a),e.createLiteralTypeNode=e.Debug.deprecate(e.factory.createLiteralTypeNode,a),e.updateLiteralTypeNode=e.Debug.deprecate(e.factory.updateLiteralTypeNode,a),e.createObjectBindingPattern=e.Debug.deprecate(e.factory.createObjectBindingPattern,a),e.updateObjectBindingPattern=e.Debug.deprecate(e.factory.updateObjectBindingPattern,a),e.createArrayBindingPattern=e.Debug.deprecate(e.factory.createArrayBindingPattern,a),e.updateArrayBindingPattern=e.Debug.deprecate(e.factory.updateArrayBindingPattern,a),e.createBindingElement=e.Debug.deprecate(e.factory.createBindingElement,a),e.updateBindingElement=e.Debug.deprecate(e.factory.updateBindingElement,a),e.createArrayLiteral=e.Debug.deprecate(e.factory.createArrayLiteralExpression,a),e.updateArrayLiteral=e.Debug.deprecate(e.factory.updateArrayLiteralExpression,a),e.createObjectLiteral=e.Debug.deprecate(e.factory.createObjectLiteralExpression,a),e.updateObjectLiteral=e.Debug.deprecate(e.factory.updateObjectLiteralExpression,a),e.createPropertyAccess=e.Debug.deprecate(e.factory.createPropertyAccessExpression,a),e.updatePropertyAccess=e.Debug.deprecate(e.factory.updatePropertyAccessExpression,a),e.createPropertyAccessChain=e.Debug.deprecate(e.factory.createPropertyAccessChain,a),e.updatePropertyAccessChain=e.Debug.deprecate(e.factory.updatePropertyAccessChain,a),e.createElementAccess=e.Debug.deprecate(e.factory.createElementAccessExpression,a),e.updateElementAccess=e.Debug.deprecate(e.factory.updateElementAccessExpression,a),e.createElementAccessChain=e.Debug.deprecate(e.factory.createElementAccessChain,a),e.updateElementAccessChain=e.Debug.deprecate(e.factory.updateElementAccessChain,a),e.createCall=e.Debug.deprecate(e.factory.createCallExpression,a),e.updateCall=e.Debug.deprecate(e.factory.updateCallExpression,a),e.createCallChain=e.Debug.deprecate(e.factory.createCallChain,a),e.updateCallChain=e.Debug.deprecate(e.factory.updateCallChain,a),e.createNew=e.Debug.deprecate(e.factory.createNewExpression,a),e.updateNew=e.Debug.deprecate(e.factory.updateNewExpression,a),e.createTypeAssertion=e.Debug.deprecate(e.factory.createTypeAssertion,a),e.updateTypeAssertion=e.Debug.deprecate(e.factory.updateTypeAssertion,a),e.createParen=e.Debug.deprecate(e.factory.createParenthesizedExpression,a),e.updateParen=e.Debug.deprecate(e.factory.updateParenthesizedExpression,a),e.createFunctionExpression=e.Debug.deprecate(e.factory.createFunctionExpression,a),e.updateFunctionExpression=e.Debug.deprecate(e.factory.updateFunctionExpression,a),e.createDelete=e.Debug.deprecate(e.factory.createDeleteExpression,a),e.updateDelete=e.Debug.deprecate(e.factory.updateDeleteExpression,a),e.createTypeOf=e.Debug.deprecate(e.factory.createTypeOfExpression,a),e.updateTypeOf=e.Debug.deprecate(e.factory.updateTypeOfExpression,a),e.createVoid=e.Debug.deprecate(e.factory.createVoidExpression,a),e.updateVoid=e.Debug.deprecate(e.factory.updateVoidExpression,a),e.createAwait=e.Debug.deprecate(e.factory.createAwaitExpression,a),e.updateAwait=e.Debug.deprecate(e.factory.updateAwaitExpression,a),e.createPrefix=e.Debug.deprecate(e.factory.createPrefixUnaryExpression,a),e.updatePrefix=e.Debug.deprecate(e.factory.updatePrefixUnaryExpression,a),e.createPostfix=e.Debug.deprecate(e.factory.createPostfixUnaryExpression,a),e.updatePostfix=e.Debug.deprecate(e.factory.updatePostfixUnaryExpression,a),e.createBinary=e.Debug.deprecate(e.factory.createBinaryExpression,a),e.updateConditional=e.Debug.deprecate(e.factory.updateConditionalExpression,a),e.createTemplateExpression=e.Debug.deprecate(e.factory.createTemplateExpression,a),e.updateTemplateExpression=e.Debug.deprecate(e.factory.updateTemplateExpression,a),e.createTemplateHead=e.Debug.deprecate(e.factory.createTemplateHead,a),e.createTemplateMiddle=e.Debug.deprecate(e.factory.createTemplateMiddle,a),e.createTemplateTail=e.Debug.deprecate(e.factory.createTemplateTail,a),e.createNoSubstitutionTemplateLiteral=e.Debug.deprecate(e.factory.createNoSubstitutionTemplateLiteral,a),e.updateYield=e.Debug.deprecate(e.factory.updateYieldExpression,a),e.createSpread=e.Debug.deprecate(e.factory.createSpreadElement,a),e.updateSpread=e.Debug.deprecate(e.factory.updateSpreadElement,a),e.createOmittedExpression=e.Debug.deprecate(e.factory.createOmittedExpression,a),e.createAsExpression=e.Debug.deprecate(e.factory.createAsExpression,a),e.updateAsExpression=e.Debug.deprecate(e.factory.updateAsExpression,a),e.createNonNullExpression=e.Debug.deprecate(e.factory.createNonNullExpression,a),e.updateNonNullExpression=e.Debug.deprecate(e.factory.updateNonNullExpression,a),e.createNonNullChain=e.Debug.deprecate(e.factory.createNonNullChain,a),e.updateNonNullChain=e.Debug.deprecate(e.factory.updateNonNullChain,a),e.createMetaProperty=e.Debug.deprecate(e.factory.createMetaProperty,a),e.updateMetaProperty=e.Debug.deprecate(e.factory.updateMetaProperty,a),e.createTemplateSpan=e.Debug.deprecate(e.factory.createTemplateSpan,a),e.updateTemplateSpan=e.Debug.deprecate(e.factory.updateTemplateSpan,a),e.createSemicolonClassElement=e.Debug.deprecate(e.factory.createSemicolonClassElement,a),e.createBlock=e.Debug.deprecate(e.factory.createBlock,a),e.updateBlock=e.Debug.deprecate(e.factory.updateBlock,a),e.createVariableStatement=e.Debug.deprecate(e.factory.createVariableStatement,a),e.updateVariableStatement=e.Debug.deprecate(e.factory.updateVariableStatement,a),e.createEmptyStatement=e.Debug.deprecate(e.factory.createEmptyStatement,a),e.createExpressionStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateExpressionStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createIf=e.Debug.deprecate(e.factory.createIfStatement,a),e.updateIf=e.Debug.deprecate(e.factory.updateIfStatement,a),e.createDo=e.Debug.deprecate(e.factory.createDoStatement,a),e.updateDo=e.Debug.deprecate(e.factory.updateDoStatement,a),e.createWhile=e.Debug.deprecate(e.factory.createWhileStatement,a),e.updateWhile=e.Debug.deprecate(e.factory.updateWhileStatement,a),e.createFor=e.Debug.deprecate(e.factory.createForStatement,a),e.updateFor=e.Debug.deprecate(e.factory.updateForStatement,a),e.createForIn=e.Debug.deprecate(e.factory.createForInStatement,a),e.updateForIn=e.Debug.deprecate(e.factory.updateForInStatement,a),e.createForOf=e.Debug.deprecate(e.factory.createForOfStatement,a),e.updateForOf=e.Debug.deprecate(e.factory.updateForOfStatement,a),e.createContinue=e.Debug.deprecate(e.factory.createContinueStatement,a),e.updateContinue=e.Debug.deprecate(e.factory.updateContinueStatement,a),e.createBreak=e.Debug.deprecate(e.factory.createBreakStatement,a),e.updateBreak=e.Debug.deprecate(e.factory.updateBreakStatement,a),e.createReturn=e.Debug.deprecate(e.factory.createReturnStatement,a),e.updateReturn=e.Debug.deprecate(e.factory.updateReturnStatement,a),e.createWith=e.Debug.deprecate(e.factory.createWithStatement,a),e.updateWith=e.Debug.deprecate(e.factory.updateWithStatement,a),e.createSwitch=e.Debug.deprecate(e.factory.createSwitchStatement,a),e.updateSwitch=e.Debug.deprecate(e.factory.updateSwitchStatement,a),e.createLabel=e.Debug.deprecate(e.factory.createLabeledStatement,a),e.updateLabel=e.Debug.deprecate(e.factory.updateLabeledStatement,a),e.createThrow=e.Debug.deprecate(e.factory.createThrowStatement,a),e.updateThrow=e.Debug.deprecate(e.factory.updateThrowStatement,a),e.createTry=e.Debug.deprecate(e.factory.createTryStatement,a),e.updateTry=e.Debug.deprecate(e.factory.updateTryStatement,a),e.createDebuggerStatement=e.Debug.deprecate(e.factory.createDebuggerStatement,a),e.createVariableDeclarationList=e.Debug.deprecate(e.factory.createVariableDeclarationList,a),e.updateVariableDeclarationList=e.Debug.deprecate(e.factory.updateVariableDeclarationList,a),e.createFunctionDeclaration=e.Debug.deprecate(e.factory.createFunctionDeclaration,a),e.updateFunctionDeclaration=e.Debug.deprecate(e.factory.updateFunctionDeclaration,a),e.createClassDeclaration=e.Debug.deprecate(e.factory.createClassDeclaration,a),e.updateClassDeclaration=e.Debug.deprecate(e.factory.updateClassDeclaration,a),e.createInterfaceDeclaration=e.Debug.deprecate(e.factory.createInterfaceDeclaration,a),e.updateInterfaceDeclaration=e.Debug.deprecate(e.factory.updateInterfaceDeclaration,a),e.createTypeAliasDeclaration=e.Debug.deprecate(e.factory.createTypeAliasDeclaration,a),e.updateTypeAliasDeclaration=e.Debug.deprecate(e.factory.updateTypeAliasDeclaration,a),e.createEnumDeclaration=e.Debug.deprecate(e.factory.createEnumDeclaration,a),e.updateEnumDeclaration=e.Debug.deprecate(e.factory.updateEnumDeclaration,a),e.createModuleDeclaration=e.Debug.deprecate(e.factory.createModuleDeclaration,a),e.updateModuleDeclaration=e.Debug.deprecate(e.factory.updateModuleDeclaration,a),e.createModuleBlock=e.Debug.deprecate(e.factory.createModuleBlock,a),e.updateModuleBlock=e.Debug.deprecate(e.factory.updateModuleBlock,a),e.createCaseBlock=e.Debug.deprecate(e.factory.createCaseBlock,a),e.updateCaseBlock=e.Debug.deprecate(e.factory.updateCaseBlock,a),e.createNamespaceExportDeclaration=e.Debug.deprecate(e.factory.createNamespaceExportDeclaration,a),e.updateNamespaceExportDeclaration=e.Debug.deprecate(e.factory.updateNamespaceExportDeclaration,a),e.createImportEqualsDeclaration=e.Debug.deprecate(e.factory.createImportEqualsDeclaration,a),e.updateImportEqualsDeclaration=e.Debug.deprecate(e.factory.updateImportEqualsDeclaration,a),e.createImportDeclaration=e.Debug.deprecate(e.factory.createImportDeclaration,a),e.updateImportDeclaration=e.Debug.deprecate(e.factory.updateImportDeclaration,a),e.createNamespaceImport=e.Debug.deprecate(e.factory.createNamespaceImport,a),e.updateNamespaceImport=e.Debug.deprecate(e.factory.updateNamespaceImport,a),e.createNamedImports=e.Debug.deprecate(e.factory.createNamedImports,a),e.updateNamedImports=e.Debug.deprecate(e.factory.updateNamedImports,a),e.createImportSpecifier=e.Debug.deprecate(e.factory.createImportSpecifier,a),e.updateImportSpecifier=e.Debug.deprecate(e.factory.updateImportSpecifier,a),e.createExportAssignment=e.Debug.deprecate(e.factory.createExportAssignment,a),e.updateExportAssignment=e.Debug.deprecate(e.factory.updateExportAssignment,a),e.createNamedExports=e.Debug.deprecate(e.factory.createNamedExports,a),e.updateNamedExports=e.Debug.deprecate(e.factory.updateNamedExports,a),e.createExportSpecifier=e.Debug.deprecate(e.factory.createExportSpecifier,a),e.updateExportSpecifier=e.Debug.deprecate(e.factory.updateExportSpecifier,a),e.createExternalModuleReference=e.Debug.deprecate(e.factory.createExternalModuleReference,a),e.updateExternalModuleReference=e.Debug.deprecate(e.factory.updateExternalModuleReference,a),e.createJSDocTypeExpression=e.Debug.deprecate(e.factory.createJSDocTypeExpression,a),e.createJSDocTypeTag=e.Debug.deprecate(e.factory.createJSDocTypeTag,a),e.createJSDocReturnTag=e.Debug.deprecate(e.factory.createJSDocReturnTag,a),e.createJSDocThisTag=e.Debug.deprecate(e.factory.createJSDocThisTag,a),e.createJSDocComment=e.Debug.deprecate(e.factory.createJSDocComment,a),e.createJSDocParameterTag=e.Debug.deprecate(e.factory.createJSDocParameterTag,a),e.createJSDocClassTag=e.Debug.deprecate(e.factory.createJSDocClassTag,a),e.createJSDocAugmentsTag=e.Debug.deprecate(e.factory.createJSDocAugmentsTag,a),e.createJSDocEnumTag=e.Debug.deprecate(e.factory.createJSDocEnumTag,a),e.createJSDocTemplateTag=e.Debug.deprecate(e.factory.createJSDocTemplateTag,a),e.createJSDocTypedefTag=e.Debug.deprecate(e.factory.createJSDocTypedefTag,a),e.createJSDocCallbackTag=e.Debug.deprecate(e.factory.createJSDocCallbackTag,a),e.createJSDocSignature=e.Debug.deprecate(e.factory.createJSDocSignature,a),e.createJSDocPropertyTag=e.Debug.deprecate(e.factory.createJSDocPropertyTag,a),e.createJSDocTypeLiteral=e.Debug.deprecate(e.factory.createJSDocTypeLiteral,a),e.createJSDocImplementsTag=e.Debug.deprecate(e.factory.createJSDocImplementsTag,a),e.createJSDocAuthorTag=e.Debug.deprecate(e.factory.createJSDocAuthorTag,a),e.createJSDocPublicTag=e.Debug.deprecate(e.factory.createJSDocPublicTag,a),e.createJSDocPrivateTag=e.Debug.deprecate(e.factory.createJSDocPrivateTag,a),e.createJSDocProtectedTag=e.Debug.deprecate(e.factory.createJSDocProtectedTag,a),e.createJSDocReadonlyTag=e.Debug.deprecate(e.factory.createJSDocReadonlyTag,a),e.createJSDocTag=e.Debug.deprecate(e.factory.createJSDocUnknownTag,a),e.createJsxElement=e.Debug.deprecate(e.factory.createJsxElement,a),e.updateJsxElement=e.Debug.deprecate(e.factory.updateJsxElement,a),e.createJsxSelfClosingElement=e.Debug.deprecate(e.factory.createJsxSelfClosingElement,a),e.updateJsxSelfClosingElement=e.Debug.deprecate(e.factory.updateJsxSelfClosingElement,a),e.createJsxOpeningElement=e.Debug.deprecate(e.factory.createJsxOpeningElement,a),e.updateJsxOpeningElement=e.Debug.deprecate(e.factory.updateJsxOpeningElement,a),e.createJsxClosingElement=e.Debug.deprecate(e.factory.createJsxClosingElement,a),e.updateJsxClosingElement=e.Debug.deprecate(e.factory.updateJsxClosingElement,a),e.createJsxFragment=e.Debug.deprecate(e.factory.createJsxFragment,a),e.createJsxText=e.Debug.deprecate(e.factory.createJsxText,a),e.updateJsxText=e.Debug.deprecate(e.factory.updateJsxText,a),e.createJsxOpeningFragment=e.Debug.deprecate(e.factory.createJsxOpeningFragment,a),e.createJsxJsxClosingFragment=e.Debug.deprecate(e.factory.createJsxJsxClosingFragment,a),e.updateJsxFragment=e.Debug.deprecate(e.factory.updateJsxFragment,a),e.createJsxAttribute=e.Debug.deprecate(e.factory.createJsxAttribute,a),e.updateJsxAttribute=e.Debug.deprecate(e.factory.updateJsxAttribute,a),e.createJsxAttributes=e.Debug.deprecate(e.factory.createJsxAttributes,a),e.updateJsxAttributes=e.Debug.deprecate(e.factory.updateJsxAttributes,a),e.createJsxSpreadAttribute=e.Debug.deprecate(e.factory.createJsxSpreadAttribute,a),e.updateJsxSpreadAttribute=e.Debug.deprecate(e.factory.updateJsxSpreadAttribute,a),e.createJsxExpression=e.Debug.deprecate(e.factory.createJsxExpression,a),e.updateJsxExpression=e.Debug.deprecate(e.factory.updateJsxExpression,a),e.createCaseClause=e.Debug.deprecate(e.factory.createCaseClause,a),e.updateCaseClause=e.Debug.deprecate(e.factory.updateCaseClause,a),e.createDefaultClause=e.Debug.deprecate(e.factory.createDefaultClause,a),e.updateDefaultClause=e.Debug.deprecate(e.factory.updateDefaultClause,a),e.createHeritageClause=e.Debug.deprecate(e.factory.createHeritageClause,a),e.updateHeritageClause=e.Debug.deprecate(e.factory.updateHeritageClause,a),e.createCatchClause=e.Debug.deprecate(e.factory.createCatchClause,a),e.updateCatchClause=e.Debug.deprecate(e.factory.updateCatchClause,a),e.createPropertyAssignment=e.Debug.deprecate(e.factory.createPropertyAssignment,a),e.updatePropertyAssignment=e.Debug.deprecate(e.factory.updatePropertyAssignment,a),e.createShorthandPropertyAssignment=e.Debug.deprecate(e.factory.createShorthandPropertyAssignment,a),e.updateShorthandPropertyAssignment=e.Debug.deprecate(e.factory.updateShorthandPropertyAssignment,a),e.createSpreadAssignment=e.Debug.deprecate(e.factory.createSpreadAssignment,a),e.updateSpreadAssignment=e.Debug.deprecate(e.factory.updateSpreadAssignment,a),e.createEnumMember=e.Debug.deprecate(e.factory.createEnumMember,a),e.updateEnumMember=e.Debug.deprecate(e.factory.updateEnumMember,a),e.updateSourceFileNode=e.Debug.deprecate(e.factory.updateSourceFile,a),e.createNotEmittedStatement=e.Debug.deprecate(e.factory.createNotEmittedStatement,a),e.createPartiallyEmittedExpression=e.Debug.deprecate(e.factory.createPartiallyEmittedExpression,a),e.updatePartiallyEmittedExpression=e.Debug.deprecate(e.factory.updatePartiallyEmittedExpression,a),e.createCommaList=e.Debug.deprecate(e.factory.createCommaListExpression,a),e.updateCommaList=e.Debug.deprecate(e.factory.updateCommaListExpression,a),e.createBundle=e.Debug.deprecate(e.factory.createBundle,a),e.updateBundle=e.Debug.deprecate(e.factory.updateBundle,a),e.createImmediatelyInvokedFunctionExpression=e.Debug.deprecate(e.factory.createImmediatelyInvokedFunctionExpression,a),e.createImmediatelyInvokedArrowFunction=e.Debug.deprecate(e.factory.createImmediatelyInvokedArrowFunction,a),e.createVoidZero=e.Debug.deprecate(e.factory.createVoidZero,a),e.createExportDefault=e.Debug.deprecate(e.factory.createExportDefault,a),e.createExternalModuleExport=e.Debug.deprecate(e.factory.createExternalModuleExport,a),e.createNamespaceExport=e.Debug.deprecate(e.factory.createNamespaceExport,a),e.updateNamespaceExport=e.Debug.deprecate(e.factory.updateNamespaceExport,a),e.createToken=e.Debug.deprecate(function(w){return e.factory.createToken(w)},a),e.createIdentifier=e.Debug.deprecate(function(w){return e.factory.createIdentifier(w,void 0,void 0)},a),e.createTempVariable=e.Debug.deprecate(function(w){return e.factory.createTempVariable(w,void 0)},a),e.getGeneratedNameForNode=e.Debug.deprecate(function(w){return e.factory.getGeneratedNameForNode(w,void 0)},a),e.createOptimisticUniqueName=e.Debug.deprecate(function(w){return e.factory.createUniqueName(w,16)},a),e.createFileLevelUniqueName=e.Debug.deprecate(function(w){return e.factory.createUniqueName(w,48)},a),e.createIndexSignature=e.Debug.deprecate(function(w,B,E,Q){return e.factory.createIndexSignature(w,B,E,Q)},a),e.createTypePredicateNode=e.Debug.deprecate(function(w,B){return e.factory.createTypePredicateNode(void 0,w,B)},a),e.updateTypePredicateNode=e.Debug.deprecate(function(w,B,E){return e.factory.updateTypePredicateNode(w,void 0,B,E)},a),e.createLiteral=e.Debug.deprecate(function(w){return typeof w=="number"?e.factory.createNumericLiteral(w):typeof w=="object"&&"base10Value"in w?e.factory.createBigIntLiteral(w):typeof w=="boolean"?w?e.factory.createTrue():e.factory.createFalse():typeof w=="string"?e.factory.createStringLiteral(w,void 0):e.factory.createStringLiteralFromNode(w)},{since:"4.0",warnAfter:"4.1",message:"Use `factory.createStringLiteral`, `factory.createStringLiteralFromNode`, `factory.createNumericLiteral`, `factory.createBigIntLiteral`, `factory.createTrue`, `factory.createFalse`, or the factory supplied by your transformation context instead."}),e.createMethodSignature=e.Debug.deprecate(function(w,B,E,Q,le){return e.factory.createMethodSignature(void 0,Q,le,w,B,E)},a),e.updateMethodSignature=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateMethodSignature(w,w.modifiers,le,N,B,E,Q)},a),e.createTypeOperatorNode=e.Debug.deprecate(function(w,B){var E;return B?E=w:(B=w,E=140),e.factory.createTypeOperatorNode(E,B)},a),e.createTaggedTemplate=e.Debug.deprecate(function(w,B,E){var Q;return E?Q=B:E=B,e.factory.createTaggedTemplateExpression(w,Q,E)},a),e.updateTaggedTemplate=e.Debug.deprecate(function(w,B,E,Q){var le;return Q?le=E:Q=E,e.factory.updateTaggedTemplateExpression(w,B,le,Q)},a),e.updateBinary=e.Debug.deprecate(function(w,B,E,Q){return Q===void 0&&(Q=w.operatorToken),typeof Q=="number"&&(Q=Q===w.operatorToken.kind?w.operatorToken:e.factory.createToken(Q)),e.factory.updateBinaryExpression(w,B,Q,E)},a),e.createConditional=e.Debug.deprecate(function(w,B,E,Q,le){return arguments.length===5?e.factory.createConditionalExpression(w,B,E,Q,le):arguments.length===3?e.factory.createConditionalExpression(w,e.factory.createToken(57),B,e.factory.createToken(58),E):e.Debug.fail("Argument count mismatch")},a),e.createYield=e.Debug.deprecate(function(w,B){var E;return B?E=w:B=w,e.factory.createYieldExpression(E,B)},a),e.createClassExpression=e.Debug.deprecate(function(w,B,E,Q,le){return e.factory.createClassExpression(void 0,w,B,E,Q,le)},a),e.updateClassExpression=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateClassExpression(w,void 0,B,E,Q,le,N)},a),e.createPropertySignature=e.Debug.deprecate(function(w,B,E,Q,le){var N=e.factory.createPropertySignature(w,B,E,Q);return N.initializer=le,N},a),e.updatePropertySignature=e.Debug.deprecate(function(w,B,E,Q,le,N){var p=e.factory.updatePropertySignature(w,B,E,Q,le);return w.initializer!==N&&(p===w&&(p=e.factory.cloneNode(w)),p.initializer=N),p},a),e.createExpressionWithTypeArguments=e.Debug.deprecate(function(w,B){return e.factory.createExpressionWithTypeArguments(B,w)},a),e.updateExpressionWithTypeArguments=e.Debug.deprecate(function(w,B,E){return e.factory.updateExpressionWithTypeArguments(w,E,B)},a),e.createArrowFunction=e.Debug.deprecate(function(w,B,E,Q,le,N){return arguments.length===6?e.factory.createArrowFunction(w,B,E,Q,le,N):arguments.length===5?e.factory.createArrowFunction(w,B,E,Q,void 0,le):e.Debug.fail("Argument count mismatch")},a),e.updateArrowFunction=e.Debug.deprecate(function(w,B,E,Q,le,N,p){return arguments.length===7?e.factory.updateArrowFunction(w,B,E,Q,le,N,p):arguments.length===6?e.factory.updateArrowFunction(w,B,E,Q,le,w.equalsGreaterThanToken,N):e.Debug.fail("Argument count mismatch")},a),e.createVariableDeclaration=e.Debug.deprecate(function(w,B,E,Q){return arguments.length===4?e.factory.createVariableDeclaration(w,B,E,Q):arguments.length>=1&&arguments.length<=3?e.factory.createVariableDeclaration(w,void 0,B,E):e.Debug.fail("Argument count mismatch")},a),e.updateVariableDeclaration=e.Debug.deprecate(function(w,B,E,Q,le){return arguments.length===5?e.factory.updateVariableDeclaration(w,B,E,Q,le):arguments.length===4?e.factory.updateVariableDeclaration(w,B,w.exclamationToken,E,Q):e.Debug.fail("Argument count mismatch")},a),e.createImportClause=e.Debug.deprecate(function(w,B,E){return E===void 0&&(E=!1),e.factory.createImportClause(E,w,B)},a),e.updateImportClause=e.Debug.deprecate(function(w,B,E,Q){return e.factory.updateImportClause(w,Q,B,E)},a),e.createExportDeclaration=e.Debug.deprecate(function(w,B,E,Q,le){return le===void 0&&(le=!1),e.factory.createExportDeclaration(w,B,le,E,Q)},a),e.updateExportDeclaration=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateExportDeclaration(w,B,E,N,Q,le,w.assertClause)},a),e.createJSDocParamTag=e.Debug.deprecate(function(w,B,E,Q){return e.factory.createJSDocParameterTag(void 0,w,B,E,!1,Q?e.factory.createNodeArray([e.factory.createJSDocText(Q)]):void 0)},a),e.createComma=e.Debug.deprecate(function(w,B){return e.factory.createComma(w,B)},a),e.createLessThan=e.Debug.deprecate(function(w,B){return e.factory.createLessThan(w,B)},a),e.createAssignment=e.Debug.deprecate(function(w,B){return e.factory.createAssignment(w,B)},a),e.createStrictEquality=e.Debug.deprecate(function(w,B){return e.factory.createStrictEquality(w,B)},a),e.createStrictInequality=e.Debug.deprecate(function(w,B){return e.factory.createStrictInequality(w,B)},a),e.createAdd=e.Debug.deprecate(function(w,B){return e.factory.createAdd(w,B)},a),e.createSubtract=e.Debug.deprecate(function(w,B){return e.factory.createSubtract(w,B)},a),e.createLogicalAnd=e.Debug.deprecate(function(w,B){return e.factory.createLogicalAnd(w,B)},a),e.createLogicalOr=e.Debug.deprecate(function(w,B){return e.factory.createLogicalOr(w,B)},a),e.createPostfixIncrement=e.Debug.deprecate(function(w){return e.factory.createPostfixIncrement(w)},a),e.createLogicalNot=e.Debug.deprecate(function(w){return e.factory.createLogicalNot(w)},a),e.createNode=e.Debug.deprecate(function(w,B,E){return B===void 0&&(B=0),E===void 0&&(E=0),e.setTextRangePosEnd(w===305?e.parseBaseNodeFactory.createBaseSourceFileNode(w):w===79?e.parseBaseNodeFactory.createBaseIdentifierNode(w):w===80?e.parseBaseNodeFactory.createBasePrivateIdentifierNode(w):e.isNodeKind(w)?e.parseBaseNodeFactory.createBaseNode(w):e.parseBaseNodeFactory.createBaseTokenNode(w),B,E)},{since:"4.0",warnAfter:"4.1",message:"Use an appropriate `factory` method instead."}),e.getMutableClone=e.Debug.deprecate(function(w){var B=e.factory.cloneNode(w);return e.setTextRange(B,w),e.setParent(B,w.parent),B},{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(w){return w.kind===211},{since:"4.0",warnAfter:"4.1",message:"Use `isTypeAssertionExpression` instead."}),e.isIdentifierOrPrivateIdentifier=e.Debug.deprecate(function(w){return e.isMemberName(w)},{since:"4.2",warnAfter:"4.3",message:"Use `isMemberName` instead."})})(ke||(ke={}))}}),$4=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var re;(function(Ke){Ke.ArrayExpression="ArrayExpression",Ke.ArrayPattern="ArrayPattern",Ke.ArrowFunctionExpression="ArrowFunctionExpression",Ke.AssignmentExpression="AssignmentExpression",Ke.AssignmentPattern="AssignmentPattern",Ke.AwaitExpression="AwaitExpression",Ke.BinaryExpression="BinaryExpression",Ke.BlockStatement="BlockStatement",Ke.BreakStatement="BreakStatement",Ke.CallExpression="CallExpression",Ke.CatchClause="CatchClause",Ke.ChainExpression="ChainExpression",Ke.ClassBody="ClassBody",Ke.ClassDeclaration="ClassDeclaration",Ke.ClassExpression="ClassExpression",Ke.ConditionalExpression="ConditionalExpression",Ke.ContinueStatement="ContinueStatement",Ke.DebuggerStatement="DebuggerStatement",Ke.Decorator="Decorator",Ke.DoWhileStatement="DoWhileStatement",Ke.EmptyStatement="EmptyStatement",Ke.ExportAllDeclaration="ExportAllDeclaration",Ke.ExportDefaultDeclaration="ExportDefaultDeclaration",Ke.ExportNamedDeclaration="ExportNamedDeclaration",Ke.ExportSpecifier="ExportSpecifier",Ke.ExpressionStatement="ExpressionStatement",Ke.ForInStatement="ForInStatement",Ke.ForOfStatement="ForOfStatement",Ke.ForStatement="ForStatement",Ke.FunctionDeclaration="FunctionDeclaration",Ke.FunctionExpression="FunctionExpression",Ke.Identifier="Identifier",Ke.IfStatement="IfStatement",Ke.ImportAttribute="ImportAttribute",Ke.ImportDeclaration="ImportDeclaration",Ke.ImportDefaultSpecifier="ImportDefaultSpecifier",Ke.ImportExpression="ImportExpression",Ke.ImportNamespaceSpecifier="ImportNamespaceSpecifier",Ke.ImportSpecifier="ImportSpecifier",Ke.JSXAttribute="JSXAttribute",Ke.JSXClosingElement="JSXClosingElement",Ke.JSXClosingFragment="JSXClosingFragment",Ke.JSXElement="JSXElement",Ke.JSXEmptyExpression="JSXEmptyExpression",Ke.JSXExpressionContainer="JSXExpressionContainer",Ke.JSXFragment="JSXFragment",Ke.JSXIdentifier="JSXIdentifier",Ke.JSXMemberExpression="JSXMemberExpression",Ke.JSXNamespacedName="JSXNamespacedName",Ke.JSXOpeningElement="JSXOpeningElement",Ke.JSXOpeningFragment="JSXOpeningFragment",Ke.JSXSpreadAttribute="JSXSpreadAttribute",Ke.JSXSpreadChild="JSXSpreadChild",Ke.JSXText="JSXText",Ke.LabeledStatement="LabeledStatement",Ke.Literal="Literal",Ke.LogicalExpression="LogicalExpression",Ke.MemberExpression="MemberExpression",Ke.MetaProperty="MetaProperty",Ke.MethodDefinition="MethodDefinition",Ke.NewExpression="NewExpression",Ke.ObjectExpression="ObjectExpression",Ke.ObjectPattern="ObjectPattern",Ke.PrivateIdentifier="PrivateIdentifier",Ke.Program="Program",Ke.Property="Property",Ke.PropertyDefinition="PropertyDefinition",Ke.RestElement="RestElement",Ke.ReturnStatement="ReturnStatement",Ke.SequenceExpression="SequenceExpression",Ke.SpreadElement="SpreadElement",Ke.StaticBlock="StaticBlock",Ke.Super="Super",Ke.SwitchCase="SwitchCase",Ke.SwitchStatement="SwitchStatement",Ke.TaggedTemplateExpression="TaggedTemplateExpression",Ke.TemplateElement="TemplateElement",Ke.TemplateLiteral="TemplateLiteral",Ke.ThisExpression="ThisExpression",Ke.ThrowStatement="ThrowStatement",Ke.TryStatement="TryStatement",Ke.UnaryExpression="UnaryExpression",Ke.UpdateExpression="UpdateExpression",Ke.VariableDeclaration="VariableDeclaration",Ke.VariableDeclarator="VariableDeclarator",Ke.WhileStatement="WhileStatement",Ke.WithStatement="WithStatement",Ke.YieldExpression="YieldExpression",Ke.TSAbstractKeyword="TSAbstractKeyword",Ke.TSAbstractMethodDefinition="TSAbstractMethodDefinition",Ke.TSAbstractPropertyDefinition="TSAbstractPropertyDefinition",Ke.TSAnyKeyword="TSAnyKeyword",Ke.TSArrayType="TSArrayType",Ke.TSAsExpression="TSAsExpression",Ke.TSAsyncKeyword="TSAsyncKeyword",Ke.TSBigIntKeyword="TSBigIntKeyword",Ke.TSBooleanKeyword="TSBooleanKeyword",Ke.TSCallSignatureDeclaration="TSCallSignatureDeclaration",Ke.TSClassImplements="TSClassImplements",Ke.TSConditionalType="TSConditionalType",Ke.TSConstructorType="TSConstructorType",Ke.TSConstructSignatureDeclaration="TSConstructSignatureDeclaration",Ke.TSDeclareFunction="TSDeclareFunction",Ke.TSDeclareKeyword="TSDeclareKeyword",Ke.TSEmptyBodyFunctionExpression="TSEmptyBodyFunctionExpression",Ke.TSEnumDeclaration="TSEnumDeclaration",Ke.TSEnumMember="TSEnumMember",Ke.TSExportAssignment="TSExportAssignment",Ke.TSExportKeyword="TSExportKeyword",Ke.TSExternalModuleReference="TSExternalModuleReference",Ke.TSFunctionType="TSFunctionType",Ke.TSInstantiationExpression="TSInstantiationExpression",Ke.TSImportEqualsDeclaration="TSImportEqualsDeclaration",Ke.TSImportType="TSImportType",Ke.TSIndexedAccessType="TSIndexedAccessType",Ke.TSIndexSignature="TSIndexSignature",Ke.TSInferType="TSInferType",Ke.TSInterfaceBody="TSInterfaceBody",Ke.TSInterfaceDeclaration="TSInterfaceDeclaration",Ke.TSInterfaceHeritage="TSInterfaceHeritage",Ke.TSIntersectionType="TSIntersectionType",Ke.TSIntrinsicKeyword="TSIntrinsicKeyword",Ke.TSLiteralType="TSLiteralType",Ke.TSMappedType="TSMappedType",Ke.TSMethodSignature="TSMethodSignature",Ke.TSModuleBlock="TSModuleBlock",Ke.TSModuleDeclaration="TSModuleDeclaration",Ke.TSNamedTupleMember="TSNamedTupleMember",Ke.TSNamespaceExportDeclaration="TSNamespaceExportDeclaration",Ke.TSNeverKeyword="TSNeverKeyword",Ke.TSNonNullExpression="TSNonNullExpression",Ke.TSNullKeyword="TSNullKeyword",Ke.TSNumberKeyword="TSNumberKeyword",Ke.TSObjectKeyword="TSObjectKeyword",Ke.TSOptionalType="TSOptionalType",Ke.TSParameterProperty="TSParameterProperty",Ke.TSPrivateKeyword="TSPrivateKeyword",Ke.TSPropertySignature="TSPropertySignature",Ke.TSProtectedKeyword="TSProtectedKeyword",Ke.TSPublicKeyword="TSPublicKeyword",Ke.TSQualifiedName="TSQualifiedName",Ke.TSReadonlyKeyword="TSReadonlyKeyword",Ke.TSRestType="TSRestType",Ke.TSStaticKeyword="TSStaticKeyword",Ke.TSStringKeyword="TSStringKeyword",Ke.TSSymbolKeyword="TSSymbolKeyword",Ke.TSTemplateLiteralType="TSTemplateLiteralType",Ke.TSThisType="TSThisType",Ke.TSTupleType="TSTupleType",Ke.TSTypeAliasDeclaration="TSTypeAliasDeclaration",Ke.TSTypeAnnotation="TSTypeAnnotation",Ke.TSTypeAssertion="TSTypeAssertion",Ke.TSTypeLiteral="TSTypeLiteral",Ke.TSTypeOperator="TSTypeOperator",Ke.TSTypeParameter="TSTypeParameter",Ke.TSTypeParameterDeclaration="TSTypeParameterDeclaration",Ke.TSTypeParameterInstantiation="TSTypeParameterInstantiation",Ke.TSTypePredicate="TSTypePredicate",Ke.TSTypeQuery="TSTypeQuery",Ke.TSTypeReference="TSTypeReference",Ke.TSUndefinedKeyword="TSUndefinedKeyword",Ke.TSUnionType="TSUnionType",Ke.TSUnknownKeyword="TSUnknownKeyword",Ke.TSVoidKeyword="TSVoidKeyword"})(re=M.AST_NODE_TYPES||(M.AST_NODE_TYPES={}));var Ve;(function(Ke){Ke.Boolean="Boolean",Ke.Identifier="Identifier",Ke.JSXIdentifier="JSXIdentifier",Ke.JSXText="JSXText",Ke.Keyword="Keyword",Ke.Null="Null",Ke.Numeric="Numeric",Ke.Punctuator="Punctuator",Ke.RegularExpression="RegularExpression",Ke.String="String",Ke.Template="Template",Ke.Block="Block",Ke.Line="Line"})(Ve=M.AST_TOKEN_TYPES||(M.AST_TOKEN_TYPES={}))}}),DU=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/lib.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0})}}),bU=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/parser-options.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0})}}),SU=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/ts-estree.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||("get"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__setModuleDefault||(Object.create?function(oi,kr){Object.defineProperty(oi,"default",{enumerable:!0,value:kr})}:function(oi,kr){oi.default=kr}),Ke=M&&M.__importStar||function(oi){if(oi&&oi.__esModule)return oi;var kr={};if(oi!=null)for(var pr in oi)pr!=="default"&&Object.prototype.hasOwnProperty.call(oi,pr)&&re(kr,oi,pr);return Ve(kr,oi),kr};Object.defineProperty(M,"__esModule",{value:!0}),M.TSESTree=void 0,M.TSESTree=Ke($4())}}),Z4=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/index.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||("get"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var pr in oi)pr!=="default"&&!Object.prototype.hasOwnProperty.call(kr,pr)&&re(kr,oi,pr)};Object.defineProperty(M,"__esModule",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=$4();Object.defineProperty(M,"AST_NODE_TYPES",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,"AST_TOKEN_TYPES",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Ve(DU(),M),Ve(bU(),M),Ve(SU(),M)}}),TU=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0})}}),xU=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=Z4()}}),k1=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||("get"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var pr in oi)pr!=="default"&&!Object.prototype.hasOwnProperty.call(kr,pr)&&re(kr,oi,pr)};Object.defineProperty(M,"__esModule",{value:!0}),M.TSESTree=M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=Z4();Object.defineProperty(M,"AST_NODE_TYPES",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,"AST_TOKEN_TYPES",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Object.defineProperty(M,"TSESTree",{enumerable:!0,get:function(){return Ke.TSESTree}}),Ve(TU(),M),Ve(xU(),M)}}),EU=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.xhtmlEntities=void 0,M.xhtmlEntities={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02C6",tilde:"\u02DC",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203A",oline:"\u203E",frasl:"\u2044",euro:"\u20AC",image:"\u2111",weierp:"\u2118",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",lang:"\u2329",rang:"\u232A",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"}}}),A1=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(V,L,P,k){k===void 0&&(k=P);var Y=Object.getOwnPropertyDescriptor(L,P);(!Y||("get"in Y?!L.__esModule:Y.writable||Y.configurable))&&(Y={enumerable:!0,get:function(){return L[P]}}),Object.defineProperty(V,k,Y)}:function(V,L,P,k){k===void 0&&(k=P),V[k]=L[P]}),Ve=M&&M.__setModuleDefault||(Object.create?function(V,L){Object.defineProperty(V,"default",{enumerable:!0,value:L})}:function(V,L){V.default=L}),Ke=M&&M.__importStar||function(V){if(V&&V.__esModule)return V;var L={};if(V!=null)for(var P in V)P!=="default"&&Object.prototype.hasOwnProperty.call(V,P)&&re(L,V,P);return Ve(L,V),L};Object.defineProperty(M,"__esModule",{value:!0}),M.firstDefined=M.nodeHasTokens=M.createError=M.TSError=M.convertTokens=M.convertToken=M.getTokenType=M.isChildUnwrappableOptionalChain=M.isChainExpression=M.isOptional=M.isComputedProperty=M.unescapeStringLiteralText=M.hasJSXAncestor=M.findFirstMatchingAncestor=M.findNextToken=M.getTSNodeAccessibility=M.getDeclarationKind=M.isJSXToken=M.isToken=M.getRange=M.canContainDirective=M.getLocFor=M.getLineAndCharacterFor=M.getBinaryExpressionType=M.isJSDocComment=M.isComment=M.isComma=M.getLastModifier=M.hasModifier=M.isESTreeClassMember=M.getTextForTokenKind=M.isLogicalOperator=M.isAssignmentOperator=void 0;var oi=Ke(_u()),kr=k1(),pr=EU(),Lr=oi.SyntaxKind,ar=[Lr.BarBarToken,Lr.AmpersandAmpersandToken,Lr.QuestionQuestionToken];function ke(V){return V.kind>=Lr.FirstAssignment&&V.kind<=Lr.LastAssignment}M.isAssignmentOperator=ke;function e(V){return ar.includes(V.kind)}M.isLogicalOperator=e;function a(V){return oi.tokenToString(V)}M.getTextForTokenKind=a;function C(V){return V.kind!==Lr.SemicolonClassElement}M.isESTreeClassMember=C;function w(V,L){return!!L.modifiers&&!!L.modifiers.length&&L.modifiers.some(P=>P.kind===V)}M.hasModifier=w;function B(V){return!!V.modifiers&&!!V.modifiers.length&&V.modifiers[V.modifiers.length-1]||null}M.getLastModifier=B;function E(V){return V.kind===Lr.CommaToken}M.isComma=E;function Q(V){return V.kind===Lr.SingleLineCommentTrivia||V.kind===Lr.MultiLineCommentTrivia}M.isComment=Q;function le(V){return V.kind===Lr.JSDocComment}M.isJSDocComment=le;function N(V){return ke(V)?kr.AST_NODE_TYPES.AssignmentExpression:e(V)?kr.AST_NODE_TYPES.LogicalExpression:kr.AST_NODE_TYPES.BinaryExpression}M.getBinaryExpressionType=N;function p(V,L){let P=L.getLineAndCharacterOfPosition(V);return{line:P.line+1,column:P.character}}M.getLineAndCharacterFor=p;function m(V,L,P){return{start:p(V,P),end:p(L,P)}}M.getLocFor=m;function G(V){if(V.kind===oi.SyntaxKind.Block)switch(V.parent.kind){case oi.SyntaxKind.Constructor:case oi.SyntaxKind.GetAccessor:case oi.SyntaxKind.SetAccessor:case oi.SyntaxKind.ArrowFunction:case oi.SyntaxKind.FunctionExpression:case oi.SyntaxKind.FunctionDeclaration:case oi.SyntaxKind.MethodDeclaration:return!0;default:return!1}return!0}M.canContainDirective=G;function oe(V,L){return[V.getStart(L),V.getEnd()]}M.getRange=oe;function f(V){return V.kind>=Lr.FirstToken&&V.kind<=Lr.LastToken}M.isToken=f;function T(V){return V.kind>=Lr.JsxElement&&V.kind<=Lr.JsxAttribute}M.isJSXToken=T;function K(V){return V.flags&oi.NodeFlags.Let?"let":V.flags&oi.NodeFlags.Const?"const":"var"}M.getDeclarationKind=K;function b(V){let L=V.modifiers;if(!L)return null;for(let P of L)switch(P.kind){case Lr.PublicKeyword:return"public";case Lr.ProtectedKeyword:return"protected";case Lr.PrivateKeyword:return"private";default:break}return null}M.getTSNodeAccessibility=b;function se(V,L,P){return k(L);function k(Y){return oi.isToken(Y)&&Y.pos===V.end?Y:y(Y.getChildren(P),U=>(U.pos<=V.pos&&U.end>V.end||U.pos===V.end)&&A(U,P)?k(U):void 0)}}M.findNextToken=se;function J(V,L){for(;V;){if(L(V))return V;V=V.parent}}M.findFirstMatchingAncestor=J;function ie(V){return!!J(V,T)}M.hasJSXAncestor=ie;function R(V){return V.replace(/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g,L=>{let P=L.slice(1,-1);if(P[0]==="#"){let k=P[1]==="x"?parseInt(P.slice(2),16):parseInt(P.slice(1),10);return k>1114111?L:String.fromCodePoint(k)}return pr.xhtmlEntities[P]||L})}M.unescapeStringLiteralText=R;function q(V){return V.kind===Lr.ComputedPropertyName}M.isComputedProperty=q;function O(V){return V.questionToken?V.questionToken.kind===Lr.QuestionToken:!1}M.isOptional=O;function ve(V){return V.type===kr.AST_NODE_TYPES.ChainExpression}M.isChainExpression=ve;function ee(V,L){return ve(L)&&V.expression.kind!==oi.SyntaxKind.ParenthesizedExpression}M.isChildUnwrappableOptionalChain=ee;function he(V){if("originalKeywordKind"in V&&V.originalKeywordKind)return V.originalKeywordKind===Lr.NullKeyword?kr.AST_TOKEN_TYPES.Null:V.originalKeywordKind>=Lr.FirstFutureReservedWord&&V.originalKeywordKind<=Lr.LastKeyword?kr.AST_TOKEN_TYPES.Identifier:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstKeyword&&V.kind<=Lr.LastFutureReservedWord)return V.kind===Lr.FalseKeyword||V.kind===Lr.TrueKeyword?kr.AST_TOKEN_TYPES.Boolean:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstPunctuation&&V.kind<=Lr.LastPunctuation)return kr.AST_TOKEN_TYPES.Punctuator;if(V.kind>=Lr.NoSubstitutionTemplateLiteral&&V.kind<=Lr.TemplateTail)return kr.AST_TOKEN_TYPES.Template;switch(V.kind){case Lr.NumericLiteral:return kr.AST_TOKEN_TYPES.Numeric;case Lr.JsxText:return kr.AST_TOKEN_TYPES.JSXText;case Lr.StringLiteral:return V.parent&&(V.parent.kind===Lr.JsxAttribute||V.parent.kind===Lr.JsxElement)?kr.AST_TOKEN_TYPES.JSXText:kr.AST_TOKEN_TYPES.String;case Lr.RegularExpressionLiteral:return kr.AST_TOKEN_TYPES.RegularExpression;case Lr.Identifier:case Lr.ConstructorKeyword:case Lr.GetKeyword:case Lr.SetKeyword:default:}return V.parent&&V.kind===Lr.Identifier&&(T(V.parent)||V.parent.kind===Lr.PropertyAccessExpression&&ie(V))?kr.AST_TOKEN_TYPES.JSXIdentifier:kr.AST_TOKEN_TYPES.Identifier}M.getTokenType=he;function F(V,L){let P=V.kind===Lr.JsxText?V.getFullStart():V.getStart(L),k=V.getEnd(),Y=L.text.slice(P,k),U=he(V);return U===kr.AST_TOKEN_TYPES.RegularExpression?{type:U,value:Y,range:[P,k],loc:m(P,k,L),regex:{pattern:Y.slice(1,Y.lastIndexOf("/")),flags:Y.slice(Y.lastIndexOf("/")+1)}}:{type:U,value:Y,range:[P,k],loc:m(P,k,L)}}M.convertToken=F;function x(V){let L=[];function P(k){if(!(Q(k)||le(k)))if(f(k)&&k.kind!==Lr.EndOfFileToken){let Y=F(k,V);Y&&L.push(Y)}else k.getChildren(V).forEach(P)}return P(V),L}M.convertTokens=x;var X=class extends Error{constructor(V,L,P,k,Y){super(V),this.fileName=L,this.index=P,this.lineNumber=k,this.column=Y,Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0})}};M.TSError=X;function $(V,L,P){let k=V.getLineAndCharacterOfPosition(L);return new X(P,V.fileName,L,k.line+1,k.character)}M.createError=$;function A(V,L){return V.kind===Lr.EndOfFileToken?!!V.jsDoc:V.getWidth(L)!==0}M.nodeHasTokens=A;function y(V,L){if(V!==void 0)for(let P=0;P{let E=this.convertChild(B);if(w)if((E==null?void 0:E.expression)&&oi.isExpressionStatement(B)&&oi.isStringLiteral(B.expression)){let Q=E.expression.raw;return E.directive=Q.slice(1,-1),E}else w=!1;return E}).filter(B=>B)}convertTypeArgumentsToTypeParameters(a,C){let w=(0,kr.findNextToken)(a,this.ast,this.ast);return this.createNode(C,{type:pr.AST_NODE_TYPES.TSTypeParameterInstantiation,range:[a.pos-1,w.end],params:a.map(B=>this.convertType(B))})}convertTSTypeParametersToTypeParametersDeclaration(a){let C=(0,kr.findNextToken)(a,this.ast,this.ast);return{type:pr.AST_NODE_TYPES.TSTypeParameterDeclaration,range:[a.pos-1,C.end],loc:(0,kr.getLocFor)(a.pos-1,C.end,this.ast),params:a.map(w=>this.convertType(w))}}convertParameters(a){return!a||!a.length?[]:a.map(C=>{var w;let B=this.convertChild(C);return!((w=C.decorators)===null||w===void 0)&&w.length&&(B.decorators=C.decorators.map(E=>this.convertChild(E))),B})}convertChainExpression(a,C){let{child:w,isOptional:B}=(()=>a.type===pr.AST_NODE_TYPES.MemberExpression?{child:a.object,isOptional:a.optional}:a.type===pr.AST_NODE_TYPES.CallExpression?{child:a.callee,isOptional:a.optional}:{child:a.expression,isOptional:!1})(),E=(0,kr.isChildUnwrappableOptionalChain)(C,w);if(!E&&!B)return a;if(E&&(0,kr.isChainExpression)(w)){let Q=w.expression;a.type===pr.AST_NODE_TYPES.MemberExpression?a.object=Q:a.type===pr.AST_NODE_TYPES.CallExpression?a.callee=Q:a.expression=Q}return this.createNode(C,{type:pr.AST_NODE_TYPES.ChainExpression,expression:a})}deeplyCopy(a){if(a.kind===oi.SyntaxKind.JSDocFunctionType)throw(0,kr.createError)(this.ast,a.pos,"JSDoc types can only be used inside documentation comments.");let C="TS".concat(ar[a.kind]);if(this.options.errorOnUnknownASTType&&!pr.AST_NODE_TYPES[C])throw new Error('Unknown AST_NODE_TYPE: "'.concat(C,'"'));let w=this.createNode(a,{type:C});return"type"in a&&(w.typeAnnotation=a.type&&"kind"in a.type&&oi.isTypeNode(a.type)?this.convertTypeAnnotation(a.type,a):null),"typeArguments"in a&&(w.typeParameters=a.typeArguments&&"pos"in a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null),"typeParameters"in a&&(w.typeParameters=a.typeParameters&&"pos"in a.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters):null),"decorators"in a&&a.decorators&&a.decorators.length&&(w.decorators=a.decorators.map(B=>this.convertChild(B))),Object.entries(a).filter(B=>{let[E]=B;return!/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators|transformFlags)$/.test(E)}).forEach(B=>{let[E,Q]=B;Array.isArray(Q)?w[E]=Q.map(le=>this.convertChild(le)):Q&&typeof Q=="object"&&Q.kind?w[E]=this.convertChild(Q):w[E]=Q}),w}convertJSXIdentifier(a){let C=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:a.getText()});return this.registerTSNodeInNodeMap(a,C),C}convertJSXNamespaceOrIdentifier(a){let C=a.getText(),w=C.indexOf(":");if(w>0){let B=(0,kr.getRange)(a,this.ast),E=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXNamespacedName,namespace:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(0,w),range:[B[0],B[0]+w]}),name:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(w+1),range:[B[0]+w+1,B[1]]}),range:B});return this.registerTSNodeInNodeMap(a,E),E}return this.convertJSXIdentifier(a)}convertJSXTagName(a,C){let w;switch(a.kind){case ar.PropertyAccessExpression:if(a.name.kind===ar.PrivateIdentifier)throw new Error("Non-private identifier expected.");w=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXMemberExpression,object:this.convertJSXTagName(a.expression,C),property:this.convertJSXIdentifier(a.name)});break;case ar.ThisKeyword:case ar.Identifier:default:return this.convertJSXNamespaceOrIdentifier(a)}return this.registerTSNodeInNodeMap(a,w),w}convertMethodSignature(a){let C=this.createNode(a,{type:pr.AST_NODE_TYPES.TSMethodSignature,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),params:this.convertParameters(a.parameters),kind:(()=>{switch(a.kind){case ar.GetAccessor:return"get";case ar.SetAccessor:return"set";case ar.MethodSignature:return"method"}})()});(0,kr.isOptional)(a)&&(C.optional=!0),a.type&&(C.returnType=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(C.readonly=!0),a.typeParameters&&(C.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters));let w=(0,kr.getTSNodeAccessibility)(a);return w&&(C.accessibility=w),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(C.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(C.static=!0),C}convertAssertClasue(a){return a===void 0?[]:a.elements.map(C=>this.convertChild(C))}applyModifiersToResult(a,C){if(!C||!C.length)return;let w=[];for(let B of C)switch(B.kind){case ar.ExportKeyword:case ar.DefaultKeyword:break;case ar.ConstKeyword:a.const=!0;break;case ar.DeclareKeyword:a.declare=!0;break;default:w.push(this.convertChild(B));break}w.length&&(a.modifiers=w)}fixParentLocation(a,C){C[0]a.range[1]&&(a.range[1]=C[1],a.loc.end=(0,kr.getLineAndCharacterFor)(a.range[1],this.ast))}assertModuleSpecifier(a,C){var w;if(!C&&a.moduleSpecifier==null)throw(0,kr.createError)(this.ast,a.pos,"Module specifier must be a string literal.");if(a.moduleSpecifier&&((w=a.moduleSpecifier)===null||w===void 0?void 0:w.kind)!==ar.StringLiteral)throw(0,kr.createError)(this.ast,a.moduleSpecifier.pos,"Module specifier must be a string literal.")}convertNode(a,C){var w,B,E,Q,le,N,p,m,G,oe;switch(a.kind){case ar.SourceFile:return this.createNode(a,{type:pr.AST_NODE_TYPES.Program,body:this.convertBodyExpressions(a.statements,a),sourceType:a.externalModuleIndicator?"module":"script",range:[a.getStart(this.ast),a.endOfFileToken.end]});case ar.Block:return this.createNode(a,{type:pr.AST_NODE_TYPES.BlockStatement,body:this.convertBodyExpressions(a.statements,a)});case ar.Identifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.Identifier,name:a.text});case ar.PrivateIdentifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.PrivateIdentifier,name:a.text.slice(1)});case ar.WithStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.WithStatement,object:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ReturnStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ReturnStatement,argument:this.convertChild(a.expression)});case ar.LabeledStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.LabeledStatement,label:this.convertChild(a.label),body:this.convertChild(a.statement)});case ar.ContinueStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ContinueStatement,label:this.convertChild(a.label)});case ar.BreakStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.BreakStatement,label:this.convertChild(a.label)});case ar.IfStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.IfStatement,test:this.convertChild(a.expression),consequent:this.convertChild(a.thenStatement),alternate:this.convertChild(a.elseStatement)});case ar.SwitchStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.SwitchStatement,discriminant:this.convertChild(a.expression),cases:a.caseBlock.clauses.map(f=>this.convertChild(f))});case ar.CaseClause:case ar.DefaultClause:return this.createNode(a,{type:pr.AST_NODE_TYPES.SwitchCase,test:a.kind===ar.CaseClause?this.convertChild(a.expression):null,consequent:a.statements.map(f=>this.convertChild(f))});case ar.ThrowStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ThrowStatement,argument:this.convertChild(a.expression)});case ar.TryStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.TryStatement,block:this.convertChild(a.tryBlock),handler:this.convertChild(a.catchClause),finalizer:this.convertChild(a.finallyBlock)});case ar.CatchClause:return this.createNode(a,{type:pr.AST_NODE_TYPES.CatchClause,param:a.variableDeclaration?this.convertBindingNameWithTypeAnnotation(a.variableDeclaration.name,a.variableDeclaration.type):null,body:this.convertChild(a.block)});case ar.WhileStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.WhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.DoStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.DoWhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForStatement,init:this.convertChild(a.initializer),test:this.convertChild(a.condition),update:this.convertChild(a.incrementor),body:this.convertChild(a.statement)});case ar.ForInStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForInStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForOfStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForOfStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement),await:Boolean(a.awaitModifier&&a.awaitModifier.kind===ar.AwaitKeyword)});case ar.FunctionDeclaration:{let f=(0,kr.hasModifier)(ar.DeclareKeyword,a),T=this.createNode(a,{type:f||!a.body?pr.AST_NODE_TYPES.TSDeclareFunction:pr.AST_NODE_TYPES.FunctionDeclaration,id:this.convertChild(a.name),generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),params:this.convertParameters(a.parameters),body:this.convertChild(a.body)||void 0});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f&&(T.declare=!0),this.fixExports(a,T)}case ar.VariableDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclarator,id:this.convertBindingNameWithTypeAnnotation(a.name,a.type,a),init:this.convertChild(a.initializer)});return a.exclamationToken&&(f.definite=!0),f}case ar.VariableStatement:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarationList.declarations.map(T=>this.convertChild(T)),kind:(0,kr.getDeclarationKind)(a.declarationList)});return a.decorators&&(f.decorators=a.decorators.map(T=>this.convertChild(T))),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),this.fixExports(a,f)}case ar.VariableDeclarationList:return this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarations.map(f=>this.convertChild(f)),kind:(0,kr.getDeclarationKind)(a)});case ar.ExpressionStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ExpressionStatement,expression:this.convertChild(a.expression)});case ar.ThisKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.ThisExpression});case ar.ArrayLiteralExpression:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))}):this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayExpression,elements:a.elements.map(f=>this.convertChild(f))});case ar.ObjectLiteralExpression:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectPattern,properties:a.properties.map(f=>this.convertPattern(f))}):this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectExpression,properties:a.properties.map(f=>this.convertChild(f))});case ar.PropertyAssignment:return this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.converter(a.initializer,a,this.inTypeMode,this.allowPattern),computed:(0,kr.isComputedProperty)(a.name),method:!1,shorthand:!1,kind:"init"});case ar.ShorthandPropertyAssignment:return a.objectAssignmentInitializer?this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.name),right:this.convertChild(a.objectAssignmentInitializer)}),computed:!1,method:!1,shorthand:!0,kind:"init"}):this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.convertChild(a.name),computed:!1,method:!1,shorthand:!0,kind:"init"});case ar.ComputedPropertyName:return this.convertChild(a.expression);case ar.PropertyDeclaration:{let f=(0,kr.hasModifier)(ar.AbstractKeyword,a),T=this.createNode(a,{type:f?pr.AST_NODE_TYPES.TSAbstractPropertyDefinition:pr.AST_NODE_TYPES.PropertyDefinition,key:this.convertChild(a.name),value:f?null:this.convertChild(a.initializer),computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,declare:(0,kr.hasModifier)(ar.DeclareKeyword,a),override:(0,kr.hasModifier)(ar.OverrideKeyword,a)});a.type&&(T.typeAnnotation=this.convertTypeAnnotation(a.type,a)),a.decorators&&(T.decorators=a.decorators.map(b=>this.convertChild(b)));let K=(0,kr.getTSNodeAccessibility)(a);return K&&(T.accessibility=K),(a.name.kind===ar.Identifier||a.name.kind===ar.ComputedPropertyName||a.name.kind===ar.PrivateIdentifier)&&a.questionToken&&(T.optional=!0),a.exclamationToken&&(T.definite=!0),T.key.type===pr.AST_NODE_TYPES.Literal&&a.questionToken&&(T.optional=!0),T}case ar.GetAccessor:case ar.SetAccessor:if(a.parent.kind===ar.InterfaceDeclaration||a.parent.kind===ar.TypeLiteral)return this.convertMethodSignature(a);case ar.MethodDeclaration:{let f=this.createNode(a,{type:a.body?pr.AST_NODE_TYPES.FunctionExpression:pr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end],params:[]});a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(f,f.typeParameters.range));let T;if(C.kind===ar.ObjectLiteralExpression)f.params=a.parameters.map(K=>this.convertChild(K)),T=this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),method:a.kind===ar.MethodDeclaration,shorthand:!1,kind:"init"});else{f.params=this.convertParameters(a.parameters);let K=(0,kr.hasModifier)(ar.AbstractKeyword,a)?pr.AST_NODE_TYPES.TSAbstractMethodDefinition:pr.AST_NODE_TYPES.MethodDefinition;T=this.createNode(a,{type:K,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),kind:"method",override:(0,kr.hasModifier)(ar.OverrideKeyword,a)}),a.decorators&&(T.decorators=a.decorators.map(se=>this.convertChild(se)));let b=(0,kr.getTSNodeAccessibility)(a);b&&(T.accessibility=b)}return a.questionToken&&(T.optional=!0),a.kind===ar.GetAccessor?T.kind="get":a.kind===ar.SetAccessor?T.kind="set":!T.static&&a.name.kind===ar.StringLiteral&&a.name.text==="constructor"&&T.type!==pr.AST_NODE_TYPES.Property&&(T.kind="constructor"),T}case ar.Constructor:{let f=(0,kr.getLastModifier)(a),T=f&&(0,kr.findNextToken)(f,a,this.ast)||a.getFirstToken(),K=this.createNode(a,{type:a.body?pr.AST_NODE_TYPES.FunctionExpression:pr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,params:this.convertParameters(a.parameters),generator:!1,expression:!1,async:!1,body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end]});a.typeParameters&&(K.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(K,K.typeParameters.range)),a.type&&(K.returnType=this.convertTypeAnnotation(a.type,a));let b=this.createNode(a,{type:pr.AST_NODE_TYPES.Identifier,name:"constructor",range:[T.getStart(this.ast),T.end]}),se=(0,kr.hasModifier)(ar.StaticKeyword,a),J=this.createNode(a,{type:(0,kr.hasModifier)(ar.AbstractKeyword,a)?pr.AST_NODE_TYPES.TSAbstractMethodDefinition:pr.AST_NODE_TYPES.MethodDefinition,key:b,value:K,computed:!1,static:se,kind:se?"method":"constructor",override:!1}),ie=(0,kr.getTSNodeAccessibility)(a);return ie&&(J.accessibility=ie),J}case ar.FunctionExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.FunctionExpression,id:this.convertChild(a.name),generator:!!a.asteriskToken,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:!1});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.SuperKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Super});case ar.ArrayBindingPattern:return this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))});case ar.OmittedExpression:return null;case ar.ObjectBindingPattern:return this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectPattern,properties:a.elements.map(f=>this.convertPattern(f))});case ar.BindingElement:if(C.kind===ar.ArrayBindingPattern){let f=this.convertChild(a.name,C);return a.initializer?this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}):a.dotDotDotToken?this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:f}):f}else{let f;return a.dotDotDotToken?f=this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertChild((w=a.propertyName)!==null&&w!==void 0?w:a.name)}):f=this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild((B=a.propertyName)!==null&&B!==void 0?B:a.name),value:this.convertChild(a.name),computed:Boolean(a.propertyName&&a.propertyName.kind===ar.ComputedPropertyName),method:!1,shorthand:!a.propertyName,kind:"init"}),a.initializer&&(f.value=this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertChild(a.name),right:this.convertChild(a.initializer),range:[a.name.getStart(this.ast),a.initializer.end]})),f}case ar.ArrowFunction:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.ArrowFunctionExpression,generator:!1,id:null,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:a.body.kind!==ar.Block});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.YieldExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.YieldExpression,delegate:!!a.asteriskToken,argument:this.convertChild(a.expression)});case ar.AwaitExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.AwaitExpression,argument:this.convertChild(a.expression)});case ar.NoSubstitutionTemplateLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-1),cooked:a.text},tail:!0})],expressions:[]});case ar.TemplateExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.convertChild(a.head)],expressions:[]});return a.templateSpans.forEach(T=>{f.expressions.push(this.convertChild(T.expression)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.TaggedTemplateExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TaggedTemplateExpression,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,tag:this.convertChild(a.tag),quasi:this.convertChild(a.template)});case ar.TemplateHead:case ar.TemplateMiddle:case ar.TemplateTail:{let f=a.kind===ar.TemplateTail;return this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-(f?1:2)),cooked:a.text},tail:f})}case ar.SpreadAssignment:case ar.SpreadElement:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertPattern(a.expression)}):this.createNode(a,{type:pr.AST_NODE_TYPES.SpreadElement,argument:this.convertChild(a.expression)});case ar.Parameter:{let f,T;return a.dotDotDotToken?f=T=this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertChild(a.name)}):a.initializer?(f=this.convertChild(a.name),T=this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}),a.modifiers&&(T.range[0]=f.range[0],T.loc=(0,kr.getLocFor)(T.range[0],T.range[1],this.ast))):f=T=this.convertChild(a.name,C),a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),this.fixParentLocation(f,f.typeAnnotation.range)),a.questionToken&&(a.questionToken.end>f.range[1]&&(f.range[1]=a.questionToken.end,f.loc.end=(0,kr.getLineAndCharacterFor)(f.range[1],this.ast)),f.optional=!0),a.modifiers?this.createNode(a,{type:pr.AST_NODE_TYPES.TSParameterProperty,accessibility:(E=(0,kr.getTSNodeAccessibility)(a))!==null&&E!==void 0?E:void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0,override:(0,kr.hasModifier)(ar.OverrideKeyword,a)||void 0,parameter:T}):T}case ar.ClassDeclaration:case ar.ClassExpression:{let f=(Q=a.heritageClauses)!==null&&Q!==void 0?Q:[],T=a.kind===ar.ClassDeclaration?pr.AST_NODE_TYPES.ClassDeclaration:pr.AST_NODE_TYPES.ClassExpression,K=f.find(ie=>ie.token===ar.ExtendsKeyword),b=f.find(ie=>ie.token===ar.ImplementsKeyword),se=this.createNode(a,{type:T,id:this.convertChild(a.name),body:this.createNode(a,{type:pr.AST_NODE_TYPES.ClassBody,body:[],range:[a.members.pos-1,a.end]}),superClass:K!=null&&K.types[0]?this.convertChild(K.types[0].expression):null});if(K){if(K.types.length>1)throw(0,kr.createError)(this.ast,K.types[1].pos,"Classes can only extend a single class.");!((le=K.types[0])===null||le===void 0)&&le.typeArguments&&(se.superTypeParameters=this.convertTypeArgumentsToTypeParameters(K.types[0].typeArguments,K.types[0]))}a.typeParameters&&(se.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),b&&(se.implements=b.types.map(ie=>this.convertChild(ie))),(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(se.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(se.declare=!0),a.decorators&&(se.decorators=a.decorators.map(ie=>this.convertChild(ie)));let J=a.members.filter(kr.isESTreeClassMember);return J.length&&(se.body.body=J.map(ie=>this.convertChild(ie))),this.fixExports(a,se)}case ar.ModuleBlock:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSModuleBlock,body:this.convertBodyExpressions(a.statements,a)});case ar.ImportDeclaration:{this.assertModuleSpecifier(a,!1);let f=this.createNode(a,{type:pr.AST_NODE_TYPES.ImportDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:[],importKind:"value",assertions:this.convertAssertClasue(a.assertClause)});if(a.importClause&&(a.importClause.isTypeOnly&&(f.importKind="type"),a.importClause.name&&f.specifiers.push(this.convertChild(a.importClause)),a.importClause.namedBindings))switch(a.importClause.namedBindings.kind){case ar.NamespaceImport:f.specifiers.push(this.convertChild(a.importClause.namedBindings));break;case ar.NamedImports:f.specifiers=f.specifiers.concat(a.importClause.namedBindings.elements.map(T=>this.convertChild(T)));break}return f}case ar.NamespaceImport:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportNamespaceSpecifier,local:this.convertChild(a.name)});case ar.ImportSpecifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportSpecifier,local:this.convertChild(a.name),imported:this.convertChild((N=a.propertyName)!==null&&N!==void 0?N:a.name),importKind:a.isTypeOnly?"type":"value"});case ar.ImportClause:{let f=this.convertChild(a.name);return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportDefaultSpecifier,local:f,range:f.range})}case ar.ExportDeclaration:return((p=a.exportClause)===null||p===void 0?void 0:p.kind)===ar.NamedExports?(this.assertModuleSpecifier(a,!0),this.createNode(a,{type:pr.AST_NODE_TYPES.ExportNamedDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:a.exportClause.elements.map(f=>this.convertChild(f)),exportKind:a.isTypeOnly?"type":"value",declaration:null,assertions:this.convertAssertClasue(a.assertClause)})):(this.assertModuleSpecifier(a,!1),this.createNode(a,{type:pr.AST_NODE_TYPES.ExportAllDeclaration,source:this.convertChild(a.moduleSpecifier),exportKind:a.isTypeOnly?"type":"value",exported:a.exportClause&&a.exportClause.kind===ar.NamespaceExport?this.convertChild(a.exportClause.name):null,assertions:this.convertAssertClasue(a.assertClause)}));case ar.ExportSpecifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.ExportSpecifier,local:this.convertChild((m=a.propertyName)!==null&&m!==void 0?m:a.name),exported:this.convertChild(a.name),exportKind:a.isTypeOnly?"type":"value"});case ar.ExportAssignment:return a.isExportEquals?this.createNode(a,{type:pr.AST_NODE_TYPES.TSExportAssignment,expression:this.convertChild(a.expression)}):this.createNode(a,{type:pr.AST_NODE_TYPES.ExportDefaultDeclaration,declaration:this.convertChild(a.expression),exportKind:"value"});case ar.PrefixUnaryExpression:case ar.PostfixUnaryExpression:{let f=(0,kr.getTextForTokenKind)(a.operator);return f==="++"||f==="--"?this.createNode(a,{type:pr.AST_NODE_TYPES.UpdateExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)}):this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)})}case ar.DeleteExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:"delete",prefix:!0,argument:this.convertChild(a.expression)});case ar.VoidExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:"void",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOfExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:"typeof",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOperator:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeOperator,operator:(0,kr.getTextForTokenKind)(a.operator),typeAnnotation:this.convertChild(a.type)});case ar.BinaryExpression:if((0,kr.isComma)(a.operatorToken)){let f=this.createNode(a,{type:pr.AST_NODE_TYPES.SequenceExpression,expressions:[]}),T=this.convertChild(a.left);return T.type===pr.AST_NODE_TYPES.SequenceExpression&&a.left.kind!==ar.ParenthesizedExpression?f.expressions=f.expressions.concat(T.expressions):f.expressions.push(T),f.expressions.push(this.convertChild(a.right)),f}else{let f=(0,kr.getBinaryExpressionType)(a.operatorToken);return this.allowPattern&&f===pr.AST_NODE_TYPES.AssignmentExpression?this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.left,a),right:this.convertChild(a.right)}):this.createNode(a,{type:f,operator:(0,kr.getTextForTokenKind)(a.operatorToken.kind),left:this.converter(a.left,a,this.inTypeMode,f===pr.AST_NODE_TYPES.AssignmentExpression),right:this.convertChild(a.right)})}case ar.PropertyAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.name),K=!1,b=this.createNode(a,{type:pr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.ElementAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.argumentExpression),K=!0,b=this.createNode(a,{type:pr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.CallExpression:{if(a.expression.kind===ar.ImportKeyword){if(a.arguments.length!==1&&a.arguments.length!==2)throw(0,kr.createError)(this.ast,a.arguments.pos,"Dynamic import requires exactly one or two arguments.");return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportExpression,source:this.convertChild(a.arguments[0]),attributes:a.arguments[1]?this.convertChild(a.arguments[1]):null})}let f=this.convertChild(a.expression),T=a.arguments.map(b=>this.convertChild(b)),K=this.createNode(a,{type:pr.AST_NODE_TYPES.CallExpression,callee:f,arguments:T,optional:a.questionDotToken!==void 0});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),this.convertChainExpression(K,a)}case ar.NewExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.NewExpression,callee:this.convertChild(a.expression),arguments:a.arguments?a.arguments.map(T=>this.convertChild(T)):[]});return a.typeArguments&&(f.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),f}case ar.ConditionalExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.ConditionalExpression,test:this.convertChild(a.condition),consequent:this.convertChild(a.whenTrue),alternate:this.convertChild(a.whenFalse)});case ar.MetaProperty:return this.createNode(a,{type:pr.AST_NODE_TYPES.MetaProperty,meta:this.createNode(a.getFirstToken(),{type:pr.AST_NODE_TYPES.Identifier,name:(0,kr.getTextForTokenKind)(a.keywordToken)}),property:this.convertChild(a.name)});case ar.Decorator:return this.createNode(a,{type:pr.AST_NODE_TYPES.Decorator,expression:this.convertChild(a.expression)});case ar.StringLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:C.kind===ar.JsxAttribute?(0,kr.unescapeStringLiteralText)(a.text):a.text,raw:a.getText()});case ar.NumericLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:Number(a.text),raw:a.getText()});case ar.BigIntLiteral:{let f=(0,kr.getRange)(a,this.ast),T=this.ast.text.slice(f[0],f[1]),K=T.slice(0,-1).replace(/_/g,""),b=typeof BigInt<"u"?BigInt(K):null;return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,raw:T,value:b,bigint:b===null?K:String(b),range:f})}case ar.RegularExpressionLiteral:{let f=a.text.slice(1,a.text.lastIndexOf("/")),T=a.text.slice(a.text.lastIndexOf("/")+1),K=null;try{K=new RegExp(f,T)}catch{K=null}return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:K,raw:a.text,regex:{pattern:f,flags:T}})}case ar.TrueKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:!0,raw:"true"});case ar.FalseKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:!1,raw:"false"});case ar.NullKeyword:return!Lr.typescriptVersionIsAtLeast["4.0"]&&this.inTypeMode?this.createNode(a,{type:pr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:null,raw:"null"});case ar.EmptyStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.EmptyStatement});case ar.DebuggerStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.DebuggerStatement});case ar.JsxElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXElement,openingElement:this.convertChild(a.openingElement),closingElement:this.convertChild(a.closingElement),children:a.children.map(f=>this.convertChild(f))});case ar.JsxFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXFragment,openingFragment:this.convertChild(a.openingFragment),closingFragment:this.convertChild(a.closingFragment),children:a.children.map(f=>this.convertChild(f))});case ar.JsxSelfClosingElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXElement,openingElement:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!0,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f)),range:(0,kr.getRange)(a,this.ast)}),closingElement:null,children:[]});case ar.JsxOpeningElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!1,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f))});case ar.JsxClosingElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXClosingElement,name:this.convertJSXTagName(a.tagName,a)});case ar.JsxOpeningFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningFragment});case ar.JsxClosingFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXClosingFragment});case ar.JsxExpression:{let f=a.expression?this.convertChild(a.expression):this.createNode(a,{type:pr.AST_NODE_TYPES.JSXEmptyExpression,range:[a.getStart(this.ast)+1,a.getEnd()-1]});return a.dotDotDotToken?this.createNode(a,{type:pr.AST_NODE_TYPES.JSXSpreadChild,expression:f}):this.createNode(a,{type:pr.AST_NODE_TYPES.JSXExpressionContainer,expression:f})}case ar.JsxAttribute:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(a.name),value:this.convertChild(a.initializer)});case ar.JsxText:{let f=a.getFullStart(),T=a.getEnd(),K=this.ast.text.slice(f,T);return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXText,value:(0,kr.unescapeStringLiteralText)(K),raw:K,range:[f,T]})}case ar.JsxSpreadAttribute:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXSpreadAttribute,argument:this.convertChild(a.expression)});case ar.QualifiedName:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSQualifiedName,left:this.convertChild(a.left),right:this.convertChild(a.right)});case ar.TypeReference:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeReference,typeName:this.convertType(a.typeName),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0});case ar.TypeParameter:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeParameter,name:this.convertType(a.name),constraint:a.constraint?this.convertType(a.constraint):void 0,default:a.default?this.convertType(a.default):void 0,in:(0,kr.hasModifier)(ar.InKeyword,a),out:(0,kr.hasModifier)(ar.OutKeyword,a)});case ar.ThisType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSThisType});case ar.AnyKeyword:case ar.BigIntKeyword:case ar.BooleanKeyword:case ar.NeverKeyword:case ar.NumberKeyword:case ar.ObjectKeyword:case ar.StringKeyword:case ar.SymbolKeyword:case ar.UnknownKeyword:case ar.VoidKeyword:case ar.UndefinedKeyword:case ar.IntrinsicKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES["TS".concat(ar[a.kind])]});case ar.NonNullExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSNonNullExpression,expression:this.convertChild(a.expression)});return this.convertChainExpression(f,a)}case ar.TypeLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeLiteral,members:a.members.map(f=>this.convertChild(f))});case ar.ArrayType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSArrayType,elementType:this.convertType(a.elementType)});case ar.IndexedAccessType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSIndexedAccessType,objectType:this.convertType(a.objectType),indexType:this.convertType(a.indexType)});case ar.ConditionalType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSConditionalType,checkType:this.convertType(a.checkType),extendsType:this.convertType(a.extendsType),trueType:this.convertType(a.trueType),falseType:this.convertType(a.falseType)});case ar.TypeQuery:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeQuery,exprName:this.convertType(a.exprName),typeParameters:a.typeArguments&&this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)});case ar.MappedType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSMappedType,typeParameter:this.convertType(a.typeParameter),nameType:(G=this.convertType(a.nameType))!==null&&G!==void 0?G:null});return a.readonlyToken&&(a.readonlyToken.kind===ar.ReadonlyKeyword?f.readonly=!0:f.readonly=(0,kr.getTextForTokenKind)(a.readonlyToken.kind)),a.questionToken&&(a.questionToken.kind===ar.QuestionToken?f.optional=!0:f.optional=(0,kr.getTextForTokenKind)(a.questionToken.kind)),a.type&&(f.typeAnnotation=this.convertType(a.type)),f}case ar.ParenthesizedExpression:return this.convertChild(a.expression,C);case ar.TypeAliasDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeAliasDeclaration,id:this.convertChild(a.name),typeAnnotation:this.convertType(a.type)});return(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),this.fixExports(a,f)}case ar.MethodSignature:return this.convertMethodSignature(a);case ar.PropertySignature:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSPropertySignature,optional:(0,kr.isOptional)(a)||void 0,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),typeAnnotation:a.type?this.convertTypeAnnotation(a.type,a):void 0,initializer:this.convertChild(a.initializer)||void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0}),T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),f}case ar.IndexSignature:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSIndexSignature,parameters:a.parameters.map(K=>this.convertChild(K))});a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(f.readonly=!0);let T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(f.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(f.static=!0),f}case ar.ConstructorType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSConstructorType,params:this.convertParameters(a.parameters),abstract:(0,kr.hasModifier)(ar.AbstractKeyword,a)});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.FunctionType:case ar.ConstructSignature:case ar.CallSignature:{let f=a.kind===ar.ConstructSignature?pr.AST_NODE_TYPES.TSConstructSignatureDeclaration:a.kind===ar.CallSignature?pr.AST_NODE_TYPES.TSCallSignatureDeclaration:pr.AST_NODE_TYPES.TSFunctionType,T=this.createNode(a,{type:f,params:this.convertParameters(a.parameters)});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),T}case ar.ExpressionWithTypeArguments:{let f=C.kind,T=f===ar.InterfaceDeclaration?pr.AST_NODE_TYPES.TSInterfaceHeritage:f===ar.HeritageClause?pr.AST_NODE_TYPES.TSClassImplements:pr.AST_NODE_TYPES.TSInstantiationExpression,K=this.createNode(a,{type:T,expression:this.convertChild(a.expression)});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),K}case ar.InterfaceDeclaration:{let f=(oe=a.heritageClauses)!==null&&oe!==void 0?oe:[],T=this.createNode(a,{type:pr.AST_NODE_TYPES.TSInterfaceDeclaration,body:this.createNode(a,{type:pr.AST_NODE_TYPES.TSInterfaceBody,body:a.members.map(K=>this.convertChild(K)),range:[a.members.pos-1,a.end]}),id:this.convertChild(a.name)});if(a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f.length>0){let K=[],b=[];for(let se of f)if(se.token===ar.ExtendsKeyword)for(let J of se.types)K.push(this.convertChild(J,a));else for(let J of se.types)b.push(this.convertChild(J,a));K.length&&(T.extends=K),b.length&&(T.implements=b)}return(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(T.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(T.declare=!0),this.fixExports(a,T)}case ar.TypePredicate:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypePredicate,asserts:a.assertsModifier!==void 0,parameterName:this.convertChild(a.parameterName),typeAnnotation:null});return a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),f.typeAnnotation.loc=f.typeAnnotation.typeAnnotation.loc,f.typeAnnotation.range=f.typeAnnotation.typeAnnotation.range),f}case ar.ImportType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSImportType,isTypeOf:!!a.isTypeOf,parameter:this.convertChild(a.argument),qualifier:this.convertChild(a.qualifier),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null});case ar.EnumDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSEnumDeclaration,id:this.convertChild(a.name),members:a.members.map(T=>this.convertChild(T))});return this.applyModifiersToResult(f,a.modifiers),this.fixExports(a,f)}case ar.EnumMember:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSEnumMember,id:this.convertChild(a.name)});return a.initializer&&(f.initializer=this.convertChild(a.initializer)),a.name.kind===oi.SyntaxKind.ComputedPropertyName&&(f.computed=!0),f}case ar.ModuleDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSModuleDeclaration,id:this.convertChild(a.name)});return a.body&&(f.body=this.convertChild(a.body)),this.applyModifiersToResult(f,a.modifiers),a.flags&oi.NodeFlags.GlobalAugmentation&&(f.global=!0),this.fixExports(a,f)}case ar.ParenthesizedType:return this.convertType(a.type);case ar.UnionType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSUnionType,types:a.types.map(f=>this.convertType(f))});case ar.IntersectionType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSIntersectionType,types:a.types.map(f=>this.convertType(f))});case ar.AsExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSAsExpression,expression:this.convertChild(a.expression),typeAnnotation:this.convertType(a.type)});case ar.InferType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSInferType,typeParameter:this.convertType(a.typeParameter)});case ar.LiteralType:return Lr.typescriptVersionIsAtLeast["4.0"]&&a.literal.kind===ar.NullKeyword?this.createNode(a.literal,{type:pr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:pr.AST_NODE_TYPES.TSLiteralType,literal:this.convertType(a.literal)});case ar.TypeAssertionExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeAssertion,typeAnnotation:this.convertType(a.type),expression:this.convertChild(a.expression)});case ar.ImportEqualsDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSImportEqualsDeclaration,id:this.convertChild(a.name),moduleReference:this.convertChild(a.moduleReference),importKind:a.isTypeOnly?"type":"value",isExport:(0,kr.hasModifier)(ar.ExportKeyword,a)});case ar.ExternalModuleReference:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSExternalModuleReference,expression:this.convertChild(a.expression)});case ar.NamespaceExportDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSNamespaceExportDeclaration,id:this.convertChild(a.name)});case ar.AbstractKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSAbstractKeyword});case ar.TupleType:{let f="elementTypes"in a?a.elementTypes.map(T=>this.convertType(T)):a.elements.map(T=>this.convertType(T));return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTupleType,elementTypes:f})}case ar.NamedTupleMember:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSNamedTupleMember,elementType:this.convertType(a.type,a),label:this.convertChild(a.name,a),optional:a.questionToken!=null});return a.dotDotDotToken?(f.range[0]=f.label.range[0],f.loc.start=f.label.loc.start,this.createNode(a,{type:pr.AST_NODE_TYPES.TSRestType,typeAnnotation:f})):f}case ar.OptionalType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSOptionalType,typeAnnotation:this.convertType(a.type)});case ar.RestType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSRestType,typeAnnotation:this.convertType(a.type)});case ar.TemplateLiteralType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTemplateLiteralType,quasis:[this.convertChild(a.head)],types:[]});return a.templateSpans.forEach(T=>{f.types.push(this.convertChild(T.type)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.ClassStaticBlockDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.StaticBlock,body:this.convertBodyExpressions(a.body.statements,a)});case ar.AssertEntry:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportAttribute,key:this.convertChild(a.name),value:this.convertChild(a.value)});default:return this.deeplyCopy(a)}}};M.Converter=e}}),Ud={};h1(Ud,{__assign:()=>v1,__asyncDelegator:()=>JU,__asyncGenerator:()=>BU,__asyncValues:()=>jU,__await:()=>Xy,__awaiter:()=>wU,__classPrivateFieldGet:()=>qU,__classPrivateFieldSet:()=>VU,__createBinding:()=>FU,__decorate:()=>NU,__exportStar:()=>MU,__extends:()=>kU,__generator:()=>OU,__importDefault:()=>WU,__importStar:()=>zU,__makeTemplateObject:()=>UU,__metadata:()=>IU,__param:()=>PU,__read:()=>r3,__rest:()=>AU,__spread:()=>LU,__spreadArrays:()=>RU,__values:()=>UT});function kU(M,re){m1(M,re);function Ve(){this.constructor=M}M.prototype=re===null?Object.create(re):(Ve.prototype=re.prototype,new Ve)}function AU(M,re){var Ve={};for(var Ke in M)Object.prototype.hasOwnProperty.call(M,Ke)&&re.indexOf(Ke)<0&&(Ve[Ke]=M[Ke]);if(M!=null&&typeof Object.getOwnPropertySymbols=="function")for(var oi=0,Ke=Object.getOwnPropertySymbols(M);oi=0;Lr--)(pr=M[Lr])&&(kr=(oi<3?pr(kr):oi>3?pr(re,Ve,kr):pr(re,Ve))||kr);return oi>3&&kr&&Object.defineProperty(re,Ve,kr),kr}function PU(M,re){return function(Ve,Ke){re(Ve,Ke,M)}}function IU(M,re){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M,re)}function wU(M,re,Ve,Ke){function oi(kr){return kr instanceof Ve?kr:new Ve(function(pr){pr(kr)})}return new(Ve||(Ve=Promise))(function(kr,pr){function Lr(e){try{ke(Ke.next(e))}catch(a){pr(a)}}function ar(e){try{ke(Ke.throw(e))}catch(a){pr(a)}}function ke(e){e.done?kr(e.value):oi(e.value).then(Lr,ar)}ke((Ke=Ke.apply(M,re||[])).next())})}function OU(M,re){var Ve={label:0,sent:function(){if(kr[0]&1)throw kr[1];return kr[1]},trys:[],ops:[]},Ke,oi,kr,pr;return pr={next:Lr(0),throw:Lr(1),return:Lr(2)},typeof Symbol=="function"&&(pr[Symbol.iterator]=function(){return this}),pr;function Lr(ke){return function(e){return ar([ke,e])}}function ar(ke){if(Ke)throw new TypeError("Generator is already executing.");for(;Ve;)try{if(Ke=1,oi&&(kr=ke[0]&2?oi.return:ke[0]?oi.throw||((kr=oi.return)&&kr.call(oi),0):oi.next)&&!(kr=kr.call(oi,ke[1])).done)return kr;switch(oi=0,kr&&(ke=[ke[0]&2,kr.value]),ke[0]){case 0:case 1:kr=ke;break;case 4:return Ve.label++,{value:ke[1],done:!1};case 5:Ve.label++,oi=ke[1],ke=[0];continue;case 7:ke=Ve.ops.pop(),Ve.trys.pop();continue;default:if(kr=Ve.trys,!(kr=kr.length>0&&kr[kr.length-1])&&(ke[0]===6||ke[0]===2)){Ve=0;continue}if(ke[0]===3&&(!kr||ke[1]>kr[0]&&ke[1]=M.length&&(M=void 0),{value:M&&M[Ke++],done:!M}}};throw new TypeError(re?"Object is not iterable.":"Symbol.iterator is not defined.")}function r3(M,re){var Ve=typeof Symbol=="function"&&M[Symbol.iterator];if(!Ve)return M;var Ke=Ve.call(M),oi,kr=[],pr;try{for(;(re===void 0||re-- >0)&&!(oi=Ke.next()).done;)kr.push(oi.value)}catch(Lr){pr={error:Lr}}finally{try{oi&&!oi.done&&(Ve=Ke.return)&&Ve.call(Ke)}finally{if(pr)throw pr.error}}return kr}function LU(){for(var M=[],re=0;re1||Lr(C,w)})})}function Lr(C,w){try{ar(Ke[C](w))}catch(B){a(kr[0][3],B)}}function ar(C){C.value instanceof Xy?Promise.resolve(C.value.v).then(ke,e):a(kr[0][2],C)}function ke(C){Lr("next",C)}function e(C){Lr("throw",C)}function a(C,w){C(w),kr.shift(),kr.length&&Lr(kr[0][0],kr[0][1])}}function JU(M){var re,Ve;return re={},Ke("next"),Ke("throw",function(oi){throw oi}),Ke("return"),re[Symbol.iterator]=function(){return this},re;function Ke(oi,kr){re[oi]=M[oi]?function(pr){return(Ve=!Ve)?{value:Xy(M[oi](pr)),done:oi==="return"}:kr?kr(pr):pr}:kr}}function jU(M){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var re=M[Symbol.asyncIterator],Ve;return re?re.call(M):(M=typeof UT=="function"?UT(M):M[Symbol.iterator](),Ve={},Ke("next"),Ke("throw"),Ke("return"),Ve[Symbol.asyncIterator]=function(){return this},Ve);function Ke(kr){Ve[kr]=M[kr]&&function(pr){return new Promise(function(Lr,ar){pr=M[kr](pr),oi(Lr,ar,pr.done,pr.value)})}}function oi(kr,pr,Lr,ar){Promise.resolve(ar).then(function(ke){kr({value:ke,done:Lr})},pr)}}function UU(M,re){return Object.defineProperty?Object.defineProperty(M,"raw",{value:re}):M.raw=re,M}function zU(M){if(M&&M.__esModule)return M;var re={};if(M!=null)for(var Ve in M)Object.hasOwnProperty.call(M,Ve)&&(re[Ve]=M[Ve]);return re.default=M,re}function WU(M){return M&&M.__esModule?M:{default:M}}function qU(M,re){if(!re.has(M))throw new TypeError("attempted to get private field on non-instance");return re.get(M)}function VU(M,re,Ve){if(!re.has(M))throw new TypeError("attempted to set private field on non-instance");return re.set(M,Ve),Ve}var m1,v1,ug=Qy({"node_modules/tslib/tslib.es6.js"(){Ea(),m1=function(M,re){return m1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Ve,Ke){Ve.__proto__=Ke}||function(Ve,Ke){for(var oi in Ke)Ke.hasOwnProperty(oi)&&(Ve[oi]=Ke[oi])},m1(M,re)},v1=function(){return v1=Object.assign||function(re){for(var Ve,Ke=1,oi=arguments.length;Ke=re.SyntaxKind.FirstLiteralToken&&ai.kind<=re.SyntaxKind.LastLiteralToken}M.isLiteralExpression=ii;function mi(ai){return ai.kind===re.SyntaxKind.LiteralType}M.isLiteralTypeNode=mi;function pe(ai){return ai.kind===re.SyntaxKind.MappedType}M.isMappedTypeNode=pe;function or(ai){return ai.kind===re.SyntaxKind.MetaProperty}M.isMetaProperty=or;function qr(ai){return ai.kind===re.SyntaxKind.MethodDeclaration}M.isMethodDeclaration=qr;function si(ai){return ai.kind===re.SyntaxKind.MethodSignature}M.isMethodSignature=si;function Di(ai){return ai.kind===re.SyntaxKind.ModuleBlock}M.isModuleBlock=Di;function wi(ai){return ai.kind===re.SyntaxKind.ModuleDeclaration}M.isModuleDeclaration=wi;function Xi(ai){return ai.kind===re.SyntaxKind.NamedExports}M.isNamedExports=Xi;function et(ai){return ai.kind===re.SyntaxKind.NamedImports}M.isNamedImports=et;function Gi(ai){return wi(ai)&&ai.name.kind===re.SyntaxKind.Identifier&&ai.body!==void 0&&(ai.body.kind===re.SyntaxKind.ModuleBlock||Gi(ai.body))}M.isNamespaceDeclaration=Gi;function Wt(ai){return ai.kind===re.SyntaxKind.NamespaceImport}M.isNamespaceImport=Wt;function Zt(ai){return ai.kind===re.SyntaxKind.NamespaceExportDeclaration}M.isNamespaceExportDeclaration=Zt;function _r(ai){return ai.kind===re.SyntaxKind.NewExpression}M.isNewExpression=_r;function pi(ai){return ai.kind===re.SyntaxKind.NonNullExpression}M.isNonNullExpression=pi;function ae(ai){return ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isNoSubstitutionTemplateLiteral=ae;function Xe(ai){return ai.kind===re.SyntaxKind.NullKeyword}M.isNullLiteral=Xe;function Jr(ai){return ai.kind===re.SyntaxKind.NumericLiteral}M.isNumericLiteral=Jr;function ti(ai){switch(ai.kind){case re.SyntaxKind.StringLiteral:case re.SyntaxKind.NumericLiteral:case re.SyntaxKind.NoSubstitutionTemplateLiteral:return!0;default:return!1}}M.isNumericOrStringLikeLiteral=ti;function Ze(ai){return ai.kind===re.SyntaxKind.ObjectBindingPattern}M.isObjectBindingPattern=Ze;function Sr(ai){return ai.kind===re.SyntaxKind.ObjectLiteralExpression}M.isObjectLiteralExpression=Sr;function zr(ai){return ai.kind===re.SyntaxKind.OmittedExpression}M.isOmittedExpression=zr;function Wr(ai){return ai.kind===re.SyntaxKind.Parameter}M.isParameterDeclaration=Wr;function Je(ai){return ai.kind===re.SyntaxKind.ParenthesizedExpression}M.isParenthesizedExpression=Je;function xe(ai){return ai.kind===re.SyntaxKind.ParenthesizedType}M.isParenthesizedTypeNode=xe;function vr(ai){return ai.kind===re.SyntaxKind.PostfixUnaryExpression}M.isPostfixUnaryExpression=vr;function mr(ai){return ai.kind===re.SyntaxKind.PrefixUnaryExpression}M.isPrefixUnaryExpression=mr;function Ar(ai){return ai.kind===re.SyntaxKind.PropertyAccessExpression}M.isPropertyAccessExpression=Ar;function Oe(ai){return ai.kind===re.SyntaxKind.PropertyAssignment}M.isPropertyAssignment=Oe;function nr(ai){return ai.kind===re.SyntaxKind.PropertyDeclaration}M.isPropertyDeclaration=nr;function Mr(ai){return ai.kind===re.SyntaxKind.PropertySignature}M.isPropertySignature=Mr;function Pe(ai){return ai.kind===re.SyntaxKind.QualifiedName}M.isQualifiedName=Pe;function Ue(ai){return ai.kind===re.SyntaxKind.RegularExpressionLiteral}M.isRegularExpressionLiteral=Ue;function fr(ai){return ai.kind===re.SyntaxKind.ReturnStatement}M.isReturnStatement=fr;function De(ai){return ai.kind===re.SyntaxKind.SetAccessor}M.isSetAccessorDeclaration=De;function gr(ai){return ai.kind===re.SyntaxKind.ShorthandPropertyAssignment}M.isShorthandPropertyAssignment=gr;function Vr(ai){return ai.parameters!==void 0}M.isSignatureDeclaration=Vr;function Tr(ai){return ai.kind===re.SyntaxKind.SourceFile}M.isSourceFile=Tr;function vi(ai){return ai.kind===re.SyntaxKind.SpreadAssignment}M.isSpreadAssignment=vi;function Ui(ai){return ai.kind===re.SyntaxKind.SpreadElement}M.isSpreadElement=Ui;function Yi(ai){return ai.kind===re.SyntaxKind.StringLiteral}M.isStringLiteral=Yi;function Wi(ai){return ai.kind===re.SyntaxKind.SwitchStatement}M.isSwitchStatement=Wi;function ct(ai){return ai.kind===re.SyntaxKind.SyntaxList}M.isSyntaxList=ct;function Li(ai){return ai.kind===re.SyntaxKind.TaggedTemplateExpression}M.isTaggedTemplateExpression=Li;function nt(ai){return ai.kind===re.SyntaxKind.TemplateExpression}M.isTemplateExpression=nt;function Mt(ai){return ai.kind===re.SyntaxKind.TemplateExpression||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTemplateLiteral=Mt;function xt(ai){return ai.kind===re.SyntaxKind.StringLiteral||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTextualLiteral=xt;function ut(ai){return ai.kind===re.SyntaxKind.ThrowStatement}M.isThrowStatement=ut;function Dt(ai){return ai.kind===re.SyntaxKind.TryStatement}M.isTryStatement=Dt;function Rt(ai){return ai.kind===re.SyntaxKind.TupleType}M.isTupleTypeNode=Rt;function Ii(ai){return ai.kind===re.SyntaxKind.TypeAliasDeclaration}M.isTypeAliasDeclaration=Ii;function Ki(ai){return ai.kind===re.SyntaxKind.TypeAssertionExpression}M.isTypeAssertion=Ki;function Fi(ai){return ai.kind===re.SyntaxKind.TypeLiteral}M.isTypeLiteralNode=Fi;function ui(ai){return ai.kind===re.SyntaxKind.TypeOfExpression}M.isTypeOfExpression=ui;function Bt(ai){return ai.kind===re.SyntaxKind.TypeOperator}M.isTypeOperatorNode=Bt;function wt(ai){return ai.kind===re.SyntaxKind.TypeParameter}M.isTypeParameterDeclaration=wt;function na(ai){return ai.kind===re.SyntaxKind.TypePredicate}M.isTypePredicateNode=na;function Ai(ai){return ai.kind===re.SyntaxKind.TypeReference}M.isTypeReferenceNode=Ai;function Oi(ai){return ai.kind===re.SyntaxKind.TypeQuery}M.isTypeQueryNode=Oi;function ji(ai){return ai.kind===re.SyntaxKind.UnionType}M.isUnionTypeNode=ji;function Vi(ai){return ai.kind===re.SyntaxKind.VariableDeclaration}M.isVariableDeclaration=Vi;function at(ai){return ai.kind===re.SyntaxKind.VariableStatement}M.isVariableStatement=at;function At(ai){return ai.kind===re.SyntaxKind.VariableDeclarationList}M.isVariableDeclarationList=At;function ba(ai){return ai.kind===re.SyntaxKind.VoidExpression}M.isVoidExpression=ba;function $a(ai){return ai.kind===re.SyntaxKind.WhileStatement}M.isWhileStatement=$a;function Qa(ai){return ai.kind===re.SyntaxKind.WithStatement}M.isWithStatement=Qa}}),GU=Oa({"node_modules/tsutils/typeguard/2.9/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isImportTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(KU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.ImportType}M.isImportTypeNode=Ke}}),HU=Oa({"node_modules/tsutils/typeguard/3.0/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isSyntheticExpression=M.isRestTypeNode=M.isOptionalTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(GU(),M);var Ve=_u();function Ke(pr){return pr.kind===Ve.SyntaxKind.OptionalType}M.isOptionalTypeNode=Ke;function oi(pr){return pr.kind===Ve.SyntaxKind.RestType}M.isRestTypeNode=oi;function kr(pr){return pr.kind===Ve.SyntaxKind.SyntheticExpression}M.isSyntheticExpression=kr}}),i3=Oa({"node_modules/tsutils/typeguard/3.2/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isBigIntLiteral=void 0;var re=(ug(),mp(Ud));re.__exportStar(HU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.BigIntLiteral}M.isBigIntLiteral=Ke}}),t3=Oa({"node_modules/tsutils/typeguard/node.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(i3(),M)}}),XU=Oa({"node_modules/tsutils/typeguard/2.8/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isUniqueESSymbolType=M.isUnionType=M.isUnionOrIntersectionType=M.isTypeVariable=M.isTypeReference=M.isTypeParameter=M.isSubstitutionType=M.isObjectType=M.isLiteralType=M.isIntersectionType=M.isInterfaceType=M.isInstantiableType=M.isIndexedAccessype=M.isIndexedAccessType=M.isGenericType=M.isEnumType=M.isConditionalType=void 0;var re=_u();function Ve(p){return(p.flags&re.TypeFlags.Conditional)!==0}M.isConditionalType=Ve;function Ke(p){return(p.flags&re.TypeFlags.Enum)!==0}M.isEnumType=Ke;function oi(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isGenericType=oi;function kr(p){return(p.flags&re.TypeFlags.IndexedAccess)!==0}M.isIndexedAccessType=kr;function pr(p){return(p.flags&re.TypeFlags.Index)!==0}M.isIndexedAccessype=pr;function Lr(p){return(p.flags&re.TypeFlags.Instantiable)!==0}M.isInstantiableType=Lr;function ar(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0}M.isInterfaceType=ar;function ke(p){return(p.flags&re.TypeFlags.Intersection)!==0}M.isIntersectionType=ke;function e(p){return(p.flags&(re.TypeFlags.StringOrNumberLiteral|re.TypeFlags.BigIntLiteral))!==0}M.isLiteralType=e;function a(p){return(p.flags&re.TypeFlags.Object)!==0}M.isObjectType=a;function C(p){return(p.flags&re.TypeFlags.Substitution)!==0}M.isSubstitutionType=C;function w(p){return(p.flags&re.TypeFlags.TypeParameter)!==0}M.isTypeParameter=w;function B(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isTypeReference=B;function E(p){return(p.flags&re.TypeFlags.TypeVariable)!==0}M.isTypeVariable=E;function Q(p){return(p.flags&re.TypeFlags.UnionOrIntersection)!==0}M.isUnionOrIntersectionType=Q;function le(p){return(p.flags&re.TypeFlags.Union)!==0}M.isUnionType=le;function N(p){return(p.flags&re.TypeFlags.UniqueESSymbol)!==0}M.isUniqueESSymbolType=N}}),D4=Oa({"node_modules/tsutils/typeguard/2.9/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(XU(),M)}}),QU=Oa({"node_modules/tsutils/typeguard/3.0/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isTupleTypeReference=M.isTupleType=void 0;var re=(ug(),mp(Ud));re.__exportStar(D4(),M);var Ve=_u(),Ke=D4();function oi(pr){return(pr.flags&Ve.TypeFlags.Object&&pr.objectFlags&Ve.ObjectFlags.Tuple)!==0}M.isTupleType=oi;function kr(pr){return Ke.isTypeReference(pr)&&oi(pr.target)}M.isTupleTypeReference=kr}}),a3=Oa({"node_modules/tsutils/typeguard/3.2/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(QU(),M)}}),YU=Oa({"node_modules/tsutils/typeguard/3.2/index.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(i3(),M),re.__exportStar(a3(),M)}}),$U=Oa({"node_modules/tsutils/typeguard/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(a3(),M)}}),ZU=Oa({"node_modules/tsutils/util/type.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.getBaseClassMemberOfClassElement=M.getIteratorYieldResultFromIteratorResult=M.getInstanceTypeOfClassLikeDeclaration=M.getConstructorTypeOfClassLikeDeclaration=M.getSymbolOfClassLikeDeclaration=M.getPropertyNameFromType=M.symbolHasReadonlyDeclaration=M.isPropertyReadonlyInType=M.getWellKnownSymbolPropertyOfType=M.getPropertyOfType=M.isBooleanLiteralType=M.isFalsyType=M.isThenableType=M.someTypePart=M.intersectionTypeParts=M.unionTypeParts=M.getCallSignaturesOfType=M.isTypeAssignableToString=M.isTypeAssignableToNumber=M.isOptionalChainingUndefinedMarkerType=M.removeOptionalChainingUndefinedMarkerType=M.removeOptionalityFromType=M.isEmptyObjectType=void 0;var re=_u(),Ve=$U(),Ke=n3(),oi=t3();function kr(F){if(Ve.isObjectType(F)&&F.objectFlags&re.ObjectFlags.Anonymous&&F.getProperties().length===0&&F.getCallSignatures().length===0&&F.getConstructSignatures().length===0&&F.getStringIndexType()===void 0&&F.getNumberIndexType()===void 0){let x=F.getBaseTypes();return x===void 0||x.every(kr)}return!1}M.isEmptyObjectType=kr;function pr(F,x){if(!Lr(x,re.TypeFlags.Undefined))return x;let X=Lr(x,re.TypeFlags.Null);return x=F.getNonNullableType(x),X?F.getNullableType(x,re.TypeFlags.Null):x}M.removeOptionalityFromType=pr;function Lr(F,x){for(let X of B(F))if(Ke.isTypeFlagSet(X,x))return!0;return!1}function ar(F,x){if(!Ve.isUnionType(x))return ke(F,x)?x.getNonNullableType():x;let X=0,$=!1;for(let A of x.types)ke(F,A)?$=!0:X|=A.flags;return $?F.getNullableType(x.getNonNullableType(),X):x}M.removeOptionalChainingUndefinedMarkerType=ar;function ke(F,x){return Ke.isTypeFlagSet(x,re.TypeFlags.Undefined)&&F.getNullableType(x.getNonNullableType(),re.TypeFlags.Undefined)!==x}M.isOptionalChainingUndefinedMarkerType=ke;function e(F,x){return C(F,x,re.TypeFlags.NumberLike)}M.isTypeAssignableToNumber=e;function a(F,x){return C(F,x,re.TypeFlags.StringLike)}M.isTypeAssignableToString=a;function C(F,x,X){X|=re.TypeFlags.Any;let $;return function A(y){if(Ve.isTypeParameter(y)&&y.symbol!==void 0&&y.symbol.declarations!==void 0){if($===void 0)$=new Set([y]);else if(!$.has(y))$.add(y);else return!1;let V=y.symbol.declarations[0];return V.constraint===void 0?!0:A(F.getTypeFromTypeNode(V.constraint))}return Ve.isUnionType(y)?y.types.every(A):Ve.isIntersectionType(y)?y.types.some(A):Ke.isTypeFlagSet(y,X)}(x)}function w(F){if(Ve.isUnionType(F)){let x=[];for(let X of F.types)x.push(...w(X));return x}if(Ve.isIntersectionType(F)){let x;for(let X of F.types){let $=w(X);if($.length!==0){if(x!==void 0)return[];x=$}}return x===void 0?[]:x}return F.getCallSignatures()}M.getCallSignaturesOfType=w;function B(F){return Ve.isUnionType(F)?F.types:[F]}M.unionTypeParts=B;function E(F){return Ve.isIntersectionType(F)?F.types:[F]}M.intersectionTypeParts=E;function Q(F,x,X){return x(F)?F.types.some(X):X(F)}M.someTypePart=Q;function le(F,x){let X=arguments.length>2&&arguments[2]!==void 0?arguments[2]:F.getTypeAtLocation(x);for(let $ of B(F.getApparentType(X))){let A=$.getProperty("then");if(A===void 0)continue;let y=F.getTypeOfSymbolAtLocation(A,x);for(let V of B(y))for(let L of V.getCallSignatures())if(L.parameters.length!==0&&N(F,L.parameters[0],x))return!0}return!1}M.isThenableType=le;function N(F,x,X){let $=F.getApparentType(F.getTypeOfSymbolAtLocation(x,X));if(x.valueDeclaration.dotDotDotToken&&($=$.getNumberIndexType(),$===void 0))return!1;for(let A of B($))if(A.getCallSignatures().length!==0)return!0;return!1}function p(F){return F.flags&(re.TypeFlags.Undefined|re.TypeFlags.Null|re.TypeFlags.Void)?!0:Ve.isLiteralType(F)?!F.value:m(F,!1)}M.isFalsyType=p;function m(F,x){return Ke.isTypeFlagSet(F,re.TypeFlags.BooleanLiteral)&&F.intrinsicName===(x?"true":"false")}M.isBooleanLiteralType=m;function G(F,x){return x.startsWith("__")?F.getProperties().find(X=>X.escapedName===x):F.getProperty(x)}M.getPropertyOfType=G;function oe(F,x,X){let $="__@"+x;for(let A of F.getProperties()){if(!A.name.startsWith($))continue;let y=X.getApparentType(X.getTypeAtLocation(A.valueDeclaration.name.expression)).symbol;if(A.escapedName===f(X,y,x))return A}}M.getWellKnownSymbolPropertyOfType=oe;function f(F,x,X){let $=x&&F.getTypeOfSymbolAtLocation(x,x.valueDeclaration).getProperty(X),A=$&&F.getTypeOfSymbolAtLocation($,$.valueDeclaration);return A&&Ve.isUniqueESSymbolType(A)?A.escapedName:"__@"+X}function T(F,x,X){let $=!1,A=!1;for(let y of B(F))if(G(y,x)===void 0){let V=(Ke.isNumericPropertyName(x)?X.getIndexInfoOfType(y,re.IndexKind.Number):void 0)||X.getIndexInfoOfType(y,re.IndexKind.String);if(V!==void 0&&V.isReadonly){if($)return!0;A=!0}}else{if(A||K(y,x,X))return!0;$=!0}return!1}M.isPropertyReadonlyInType=T;function K(F,x,X){return Q(F,Ve.isIntersectionType,$=>{let A=G($,x);if(A===void 0)return!1;if(A.flags&re.SymbolFlags.Transient){if(/^(?:[1-9]\d*|0)$/.test(x)&&Ve.isTupleTypeReference($))return $.target.readonly;switch(b($,x,X)){case!0:return!0;case!1:return!1;default:}}return Ke.isSymbolFlagSet(A,re.SymbolFlags.ValueModule)||se(A,X)})}function b(F,x,X){if(!Ve.isObjectType(F)||!Ke.isObjectFlagSet(F,re.ObjectFlags.Mapped))return;let $=F.symbol.declarations[0];return $.readonlyToken!==void 0&&!/^__@[^@]+$/.test(x)?$.readonlyToken.kind!==re.SyntaxKind.MinusToken:T(F.modifiersType,x,X)}function se(F,x){return(F.flags&re.SymbolFlags.Accessor)===re.SymbolFlags.GetAccessor||F.declarations!==void 0&&F.declarations.some(X=>Ke.isModifierFlagSet(X,re.ModifierFlags.Readonly)||oi.isVariableDeclaration(X)&&Ke.isNodeFlagSet(X.parent,re.NodeFlags.Const)||oi.isCallExpression(X)&&Ke.isReadonlyAssignmentDeclaration(X,x)||oi.isEnumMember(X)||(oi.isPropertyAssignment(X)||oi.isShorthandPropertyAssignment(X))&&Ke.isInConstContext(X.parent))}M.symbolHasReadonlyDeclaration=se;function J(F){if(F.flags&(re.TypeFlags.StringLiteral|re.TypeFlags.NumberLiteral)){let x=String(F.value);return{displayName:x,symbolName:re.escapeLeadingUnderscores(x)}}if(Ve.isUniqueESSymbolType(F))return{displayName:"[".concat(F.symbol?"".concat(ie(F.symbol)?"Symbol.":"").concat(F.symbol.name):F.escapedName.replace(/^__@|@\d+$/g,""),"]"),symbolName:F.escapedName}}M.getPropertyNameFromType=J;function ie(F){return Ke.isSymbolFlagSet(F,re.SymbolFlags.Property)&&F.valueDeclaration!==void 0&&oi.isInterfaceDeclaration(F.valueDeclaration.parent)&&F.valueDeclaration.parent.name.text==="SymbolConstructor"&&R(F.valueDeclaration.parent)}function R(F){return Ke.isNodeFlagSet(F.parent,re.NodeFlags.GlobalAugmentation)||oi.isSourceFile(F.parent)&&!re.isExternalModule(F.parent)}function q(F,x){var X;return x.getSymbolAtLocation((X=F.name)!==null&&X!==void 0?X:Ke.getChildOfKind(F,re.SyntaxKind.ClassKeyword))}M.getSymbolOfClassLikeDeclaration=q;function O(F,x){return F.kind===re.SyntaxKind.ClassExpression?x.getTypeAtLocation(F):x.getTypeOfSymbolAtLocation(q(F,x),F)}M.getConstructorTypeOfClassLikeDeclaration=O;function ve(F,x){return F.kind===re.SyntaxKind.ClassDeclaration?x.getTypeAtLocation(F):x.getDeclaredTypeOfSymbol(q(F,x))}M.getInstanceTypeOfClassLikeDeclaration=ve;function ee(F,x,X){return Ve.isUnionType(F)&&F.types.find($=>{let A=$.getProperty("done");return A!==void 0&&m(pr(X,X.getTypeOfSymbolAtLocation(A,x)),!1)})||F}M.getIteratorYieldResultFromIteratorResult=ee;function he(F,x){if(!oi.isClassLikeDeclaration(F.parent))return;let X=Ke.getBaseOfClassLikeExpression(F.parent);if(X===void 0)return;let $=Ke.getSingleLateBoundPropertyNameOfPropertyName(F.name,x);if($===void 0)return;let A=x.getTypeAtLocation(Ke.hasModifier(F.modifiers,re.SyntaxKind.StaticKeyword)?X.expression:X);return G(A,$.symbolName)}M.getBaseClassMemberOfClassElement=he}}),n3=Oa({"node_modules/tsutils/util/util.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.isValidIdentifier=M.getLineBreakStyle=M.getLineRanges=M.forEachComment=M.forEachTokenWithTrivia=M.forEachToken=M.isFunctionWithBody=M.hasOwnThisReference=M.isBlockScopeBoundary=M.isFunctionScopeBoundary=M.isTypeScopeBoundary=M.isScopeBoundary=M.ScopeBoundarySelector=M.ScopeBoundary=M.isInSingleStatementContext=M.isBlockScopedDeclarationStatement=M.isBlockScopedVariableDeclaration=M.isBlockScopedVariableDeclarationList=M.getVariableDeclarationKind=M.VariableDeclarationKind=M.forEachDeclaredVariable=M.forEachDestructuringIdentifier=M.getPropertyName=M.getWrappedNodeAtPosition=M.getAstNodeAtPosition=M.commentText=M.isPositionInComment=M.getCommentAtPosition=M.getTokenAtPosition=M.getNextToken=M.getPreviousToken=M.getNextStatement=M.getPreviousStatement=M.isModifierFlagSet=M.isObjectFlagSet=M.isSymbolFlagSet=M.isTypeFlagSet=M.isNodeFlagSet=M.hasAccessModifier=M.isParameterProperty=M.hasModifier=M.getModifier=M.isThisParameter=M.isKeywordKind=M.isJsDocKind=M.isTypeNodeKind=M.isAssignmentKind=M.isNodeKind=M.isTokenKind=M.getChildOfKind=void 0,M.getBaseOfClassLikeExpression=M.hasExhaustiveCaseClauses=M.formatPseudoBigInt=M.unwrapParentheses=M.getSingleLateBoundPropertyNameOfPropertyName=M.getLateBoundPropertyNamesOfPropertyName=M.getLateBoundPropertyNames=M.getPropertyNameOfWellKnownSymbol=M.isWellKnownSymbolLiterally=M.isBindableObjectDefinePropertyCall=M.isReadonlyAssignmentDeclaration=M.isInConstContext=M.isConstAssertion=M.getTsCheckDirective=M.getCheckJsDirective=M.isAmbientModule=M.isCompilerOptionEnabled=M.isStrictCompilerOptionEnabled=M.getIIFE=M.isAmbientModuleBlock=M.isStatementInAmbientContext=M.findImportLikeNodes=M.findImports=M.ImportKind=M.parseJsDocOfNode=M.getJsDoc=M.canHaveJsDoc=M.isReassignmentTarget=M.getAccessKind=M.AccessKind=M.isExpressionValueUsed=M.getDeclarationOfBindingElement=M.hasSideEffects=M.SideEffectOptions=M.isSameLine=M.isNumericPropertyName=M.isValidJsxIdentifier=M.isValidNumericLiteral=M.isValidPropertyName=M.isValidPropertyAccess=void 0;var re=_u(),Ve=t3(),Ke=YU(),oi=ZU();function kr(ae,Xe,Jr){for(let ti of ae.getChildren(Jr))if(ti.kind===Xe)return ti}M.getChildOfKind=kr;function pr(ae){return ae>=re.SyntaxKind.FirstToken&&ae<=re.SyntaxKind.LastToken}M.isTokenKind=pr;function Lr(ae){return ae>=re.SyntaxKind.FirstNode}M.isNodeKind=Lr;function ar(ae){return ae>=re.SyntaxKind.FirstAssignment&&ae<=re.SyntaxKind.LastAssignment}M.isAssignmentKind=ar;function ke(ae){return ae>=re.SyntaxKind.FirstTypeNode&&ae<=re.SyntaxKind.LastTypeNode}M.isTypeNodeKind=ke;function e(ae){return ae>=re.SyntaxKind.FirstJSDocNode&&ae<=re.SyntaxKind.LastJSDocNode}M.isJsDocKind=e;function a(ae){return ae>=re.SyntaxKind.FirstKeyword&&ae<=re.SyntaxKind.LastKeyword}M.isKeywordKind=a;function C(ae){return ae.name.kind===re.SyntaxKind.Identifier&&ae.name.originalKeywordKind===re.SyntaxKind.ThisKeyword}M.isThisParameter=C;function w(ae,Xe){if(ae.modifiers!==void 0){for(let Jr of ae.modifiers)if(Jr.kind===Xe)return Jr}}M.getModifier=w;function B(ae){if(ae===void 0)return!1;for(var Xe=arguments.length,Jr=new Array(Xe>1?Xe-1:0),ti=1;ti0)return Xe.statements[Jr-1]}}M.getPreviousStatement=m;function G(ae){let Xe=ae.parent;if(Ve.isBlockLike(Xe)){let Jr=Xe.statements.indexOf(ae);if(Jr=ae.end))return pr(ae.kind)?ae:K(ae,Xe,Jr!=null?Jr:ae.getSourceFile(),ti===!0)}M.getTokenAtPosition=T;function K(ae,Xe,Jr,ti){if(!ti&&(ae=R(ae,Xe),pr(ae.kind)))return ae;e:for(;;){for(let Ze of ae.getChildren(Jr))if(Ze.end>Xe&&(ti||Ze.kind!==re.SyntaxKind.JSDocComment)){if(pr(Ze.kind))return Ze;ae=Ze;continue e}return}}function b(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae,ti=T(Jr,Xe,ae);if(ti===void 0||ti.kind===re.SyntaxKind.JsxText||Xe>=ti.end-(re.tokenToString(ti.kind)||"").length)return;let Ze=ti.pos===0?(re.getShebang(ae.text)||"").length:ti.pos;return Ze!==0&&re.forEachTrailingCommentRange(ae.text,Ze,se,Xe)||re.forEachLeadingCommentRange(ae.text,Ze,se,Xe)}M.getCommentAtPosition=b;function se(ae,Xe,Jr,ti,Ze){return Ze>=ae&&ZeXe||ae.end<=Xe)){for(;Lr(ae.kind);){let Jr=re.forEachChild(ae,ti=>ti.pos<=Xe&&ti.end>Xe?ti:void 0);if(Jr===void 0)break;ae=Jr}return ae}}M.getAstNodeAtPosition=R;function q(ae,Xe){if(ae.node.pos>Xe||ae.node.end<=Xe)return;e:for(;;){for(let Jr of ae.children){if(Jr.node.pos>Xe)return ae;if(Jr.node.end>Xe){ae=Jr;continue e}}return ae}}M.getWrappedNodeAtPosition=q;function O(ae){if(ae.kind===re.SyntaxKind.ComputedPropertyName){let Xe=Gi(ae.expression);if(Ve.isPrefixUnaryExpression(Xe)){let Jr=!1;switch(Xe.operator){case re.SyntaxKind.MinusToken:Jr=!0;case re.SyntaxKind.PlusToken:return Ve.isNumericLiteral(Xe.operand)?"".concat(Jr?"-":"").concat(Xe.operand.text):Ke.isBigIntLiteral(Xe.operand)?"".concat(Jr?"-":"").concat(Xe.operand.text.slice(0,-1)):void 0;default:return}}return Ke.isBigIntLiteral(Xe)?Xe.text.slice(0,-1):Ve.isNumericOrStringLikeLiteral(Xe)?Xe.text:void 0}return ae.kind===re.SyntaxKind.PrivateIdentifier?void 0:ae.text}M.getPropertyName=O;function ve(ae,Xe){for(let Jr of ae.elements){if(Jr.kind!==re.SyntaxKind.BindingElement)continue;let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDestructuringIdentifier=ve;function ee(ae,Xe){for(let Jr of ae.declarations){let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDeclaredVariable=ee;var he;(function(ae){ae[ae.Var=0]="Var",ae[ae.Let=1]="Let",ae[ae.Const=2]="Const"})(he=M.VariableDeclarationKind||(M.VariableDeclarationKind={}));function F(ae){return ae.flags&re.NodeFlags.Let?1:ae.flags&re.NodeFlags.Const?2:0}M.getVariableDeclarationKind=F;function x(ae){return(ae.flags&re.NodeFlags.BlockScoped)!==0}M.isBlockScopedVariableDeclarationList=x;function X(ae){let Xe=ae.parent;return Xe.kind===re.SyntaxKind.CatchClause||x(Xe)}M.isBlockScopedVariableDeclaration=X;function $(ae){switch(ae.kind){case re.SyntaxKind.VariableStatement:return x(ae.declarationList);case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:return!0;default:return!1}}M.isBlockScopedDeclarationStatement=$;function A(ae){switch(ae.parent.kind){case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.WhileStatement:case re.SyntaxKind.DoStatement:case re.SyntaxKind.IfStatement:case re.SyntaxKind.WithStatement:case re.SyntaxKind.LabeledStatement:return!0;default:return!1}}M.isInSingleStatementContext=A;var y;(function(ae){ae[ae.None=0]="None",ae[ae.Function=1]="Function",ae[ae.Block=2]="Block",ae[ae.Type=4]="Type",ae[ae.ConditionalType=8]="ConditionalType"})(y=M.ScopeBoundary||(M.ScopeBoundary={}));var V;(function(ae){ae[ae.Function=1]="Function",ae[ae.Block=3]="Block",ae[ae.Type=7]="Type",ae[ae.InferType=8]="InferType"})(V=M.ScopeBoundarySelector||(M.ScopeBoundarySelector={}));function L(ae){return k(ae)||Y(ae)||P(ae)}M.isScopeBoundary=L;function P(ae){switch(ae.kind){case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:case re.SyntaxKind.MappedType:return 4;case re.SyntaxKind.ConditionalType:return 8;default:return 0}}M.isTypeScopeBoundary=P;function k(ae){switch(ae.kind){case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:case re.SyntaxKind.Constructor:case re.SyntaxKind.ModuleDeclaration:case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.MethodSignature:case re.SyntaxKind.CallSignature:case re.SyntaxKind.ConstructSignature:case re.SyntaxKind.ConstructorType:case re.SyntaxKind.FunctionType:return 1;case re.SyntaxKind.SourceFile:return re.isExternalModule(ae)?1:0;default:return 0}}M.isFunctionScopeBoundary=k;function Y(ae){switch(ae.kind){case re.SyntaxKind.Block:let Xe=ae.parent;return Xe.kind!==re.SyntaxKind.CatchClause&&(Xe.kind===re.SyntaxKind.SourceFile||!k(Xe))?2:0;case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.CaseBlock:case re.SyntaxKind.CatchClause:case re.SyntaxKind.WithStatement:return 2;default:return 0}}M.isBlockScopeBoundary=Y;function U(ae){switch(ae.kind){case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.FunctionExpression:return!0;case re.SyntaxKind.FunctionDeclaration:return ae.body!==void 0;case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:return ae.parent.kind===re.SyntaxKind.ObjectLiteralExpression;default:return!1}}M.hasOwnThisReference=U;function j(ae){switch(ae.kind){case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.Constructor:return ae.body!==void 0;case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:return!0;default:return!1}}M.isFunctionWithBody=j;function H(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=[];for(;;){if(pr(ae.kind))Xe(ae);else if(ae.kind!==re.SyntaxKind.JSDocComment){let Ze=ae.getChildren(Jr);if(Ze.length===1){ae=Ze[0];continue}for(let Sr=Ze.length-1;Sr>=0;--Sr)ti.push(Ze[Sr])}if(ti.length===0)break;ae=ti.pop()}}M.forEachToken=H;function I(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=re.createScanner(Jr.languageVersion,!1,Jr.languageVariant,ti);return H(ae,Sr=>{let zr=Sr.kind===re.SyntaxKind.JsxText||Sr.pos===Sr.end?Sr.pos:Sr.getStart(Jr);if(zr!==Sr.pos){Ze.setTextPos(Sr.pos);let Wr=Ze.scan(),Je=Ze.getTokenPos();for(;Je2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=Jr.languageVariant!==re.LanguageVariant.JSX;return H(ae,zr=>{if(zr.pos!==zr.end&&(zr.kind!==re.SyntaxKind.JsxText&&re.forEachLeadingCommentRange(ti,zr.pos===0?(re.getShebang(ti)||"").length:zr.pos,Sr),Ze||d(zr)))return re.forEachTrailingCommentRange(ti,zr.end,Sr)},Jr);function Sr(zr,Wr,Je){Xe(ti,{pos:zr,end:Wr,kind:Je})}}M.forEachComment=l;function d(ae){switch(ae.kind){case re.SyntaxKind.CloseBraceToken:return ae.parent.kind!==re.SyntaxKind.JsxExpression||!D(ae.parent.parent);case re.SyntaxKind.GreaterThanToken:switch(ae.parent.kind){case re.SyntaxKind.JsxOpeningElement:return ae.end!==ae.parent.end;case re.SyntaxKind.JsxOpeningFragment:return!1;case re.SyntaxKind.JsxSelfClosingElement:return ae.end!==ae.parent.end||!D(ae.parent.parent);case re.SyntaxKind.JsxClosingElement:case re.SyntaxKind.JsxClosingFragment:return!D(ae.parent.parent.parent)}}return!0}function D(ae){return ae.kind===re.SyntaxKind.JsxElement||ae.kind===re.SyntaxKind.JsxFragment}function fe(ae){let Xe=ae.getLineStarts(),Jr=[],ti=Xe.length,Ze=ae.text,Sr=0;for(let zr=1;zrSr&&re.isLineBreak(Ze.charCodeAt(Je-1));--Je);Jr.push({pos:Sr,end:Wr,contentLength:Je-Sr}),Sr=Wr}return Jr.push({pos:Sr,end:ae.end,contentLength:ae.end-Sr}),Jr}M.getLineRanges=fe;function g(ae){let Xe=ae.getLineStarts();return Xe.length===1||Xe[1]<2||ae.text[Xe[1]-2]!=="\r"?` +`:`\r +`}M.getLineBreakStyle=g;var ne;function ue(ae,Xe){return ne===void 0?ne=re.createScanner(Xe,!1,void 0,ae):(ne.setScriptTarget(Xe),ne.setText(ae)),ne.scan(),ne}function We(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.isIdentifier()&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidIdentifier=We;function Fe(ae){return ae>=65536?2:1}function Z(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=ae.codePointAt(0);if(!re.isIdentifierStart(Jr,Xe))return!1;for(let ti=Fe(Jr);ti1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(Z(ae,Xe))return!0;let Jr=ue(ae,Xe);return Jr.getTextPos()===ae.length&&Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTokenValue()===ae}M.isValidPropertyName=Be;function ge(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidNumericLiteral=ge;function Re(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=!1,ti=ae.codePointAt(0);if(!re.isIdentifierStart(ti,Xe))return!1;for(let Ze=Fe(ti);Ze2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile();if(er(ae)&&ae.kind!==re.SyntaxKind.EndOfFileToken){let ti=ir(ae,Jr);if(ti.length!==0||!Xe)return ti}return Ye(ae,ae.getStart(Jr),Jr,Xe)}M.parseJsDocOfNode=Cr;function Ye(ae,Xe,Jr,ti){let Ze=re[ti&&Ee(Jr,ae.pos,Xe)?"forEachTrailingCommentRange":"forEachLeadingCommentRange"](Jr.text,ae.pos,(vr,mr,Ar)=>Ar===re.SyntaxKind.MultiLineCommentTrivia&&Jr.text[vr+2]==="*"?{pos:vr}:void 0);if(Ze===void 0)return[];let Sr=Ze.pos,zr=Jr.text.slice(Sr,Xe),Wr=re.createSourceFile("jsdoc.ts","".concat(zr,"var a;"),Jr.languageVersion),Je=ir(Wr.statements[0],Wr);for(let vr of Je)xe(vr,ae);return Je;function xe(vr,mr){return vr.pos+=Sr,vr.end+=Sr,vr.parent=mr,re.forEachChild(vr,Ar=>xe(Ar,vr),Ar=>{Ar.pos+=Sr,Ar.end+=Sr;for(let Oe of Ar)xe(Oe,vr)})}}var Br;(function(ae){ae[ae.ImportDeclaration=1]="ImportDeclaration",ae[ae.ImportEquals=2]="ImportEquals",ae[ae.ExportFrom=4]="ExportFrom",ae[ae.DynamicImport=8]="DynamicImport",ae[ae.Require=16]="Require",ae[ae.ImportType=32]="ImportType",ae[ae.All=63]="All",ae[ae.AllImports=59]="AllImports",ae[ae.AllStaticImports=3]="AllStaticImports",ae[ae.AllImportExpressions=24]="AllImportExpressions",ae[ae.AllRequireLike=18]="AllRequireLike",ae[ae.AllNestedImports=56]="AllNestedImports",ae[ae.AllTopLevelImports=7]="AllTopLevelImports"})(Br=M.ImportKind||(M.ImportKind={}));function Er(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ti=[];for(let Sr of Ne(ae,Xe,Jr))switch(Sr.kind){case re.SyntaxKind.ImportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.ImportEqualsDeclaration:Ze(Sr.moduleReference.expression);break;case re.SyntaxKind.ExportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.CallExpression:Ze(Sr.arguments[0]);break;case re.SyntaxKind.ImportType:Ve.isLiteralTypeNode(Sr.argument)&&Ze(Sr.argument.literal);break;default:throw new Error("unexpected node")}return ti;function Ze(Sr){Ve.isTextualLiteral(Sr)&&ti.push(Sr)}}M.findImports=Er;function Ne(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return new n(ae,Xe,Jr).find()}M.findImportLikeNodes=Ne;var n=class{constructor(ae,Xe,Jr){this._sourceFile=ae,this._options=Xe,this._ignoreFileName=Jr,this._result=[]}find(){return this._sourceFile.isDeclarationFile&&(this._options&=-25),this._options&7&&this._findImports(this._sourceFile.statements),this._options&56&&this._findNestedImports(),this._result}_findImports(ae){for(let Xe of ae)Ve.isImportDeclaration(Xe)?this._options&1&&this._result.push(Xe):Ve.isImportEqualsDeclaration(Xe)?this._options&2&&Xe.moduleReference.kind===re.SyntaxKind.ExternalModuleReference&&this._result.push(Xe):Ve.isExportDeclaration(Xe)?Xe.moduleSpecifier!==void 0&&this._options&4&&this._result.push(Xe):Ve.isModuleDeclaration(Xe)&&this._findImportsInModule(Xe)}_findImportsInModule(ae){if(ae.body!==void 0){if(ae.body.kind===re.SyntaxKind.ModuleDeclaration)return this._findImportsInModule(ae.body);this._findImports(ae.body.statements)}}_findNestedImports(){let ae=this._ignoreFileName||(this._sourceFile.flags&re.NodeFlags.JavaScriptFile)!==0,Xe,Jr;if((this._options&56)===16){if(!ae)return;Xe=/\brequire\s*[1&&this._result.push(Ze.parent)}}else Ze.kind===re.SyntaxKind.Identifier&&Ze.end-7===ti.index&&Ze.parent.kind===re.SyntaxKind.CallExpression&&Ze.parent.expression===Ze&&Ze.parent.arguments.length===1&&this._result.push(Ze.parent)}}};function lr(ae){for(;ae.flags&re.NodeFlags.NestedNamespace;)ae=ae.parent;return B(ae.modifiers,re.SyntaxKind.DeclareKeyword)||be(ae.parent)}M.isStatementInAmbientContext=lr;function be(ae){for(;ae.kind===re.SyntaxKind.ModuleBlock;){do ae=ae.parent;while(ae.flags&re.NodeFlags.NestedNamespace);if(B(ae.modifiers,re.SyntaxKind.DeclareKeyword))return!0;ae=ae.parent}return!1}M.isAmbientModuleBlock=be;function Ge(ae){let Xe=ae.parent;for(;Xe.kind===re.SyntaxKind.ParenthesizedExpression;)Xe=Xe.parent;return Ve.isCallExpression(Xe)&&ae.end<=Xe.expression.end?Xe:void 0}M.getIIFE=Ge;function ur(ae,Xe){return(ae.strict?ae[Xe]!==!1:ae[Xe]===!0)&&(Xe!=="strictPropertyInitialization"||ur(ae,"strictNullChecks"))}M.isStrictCompilerOptionEnabled=ur;function yr(ae,Xe){switch(Xe){case"stripInternal":case"declarationMap":case"emitDeclarationOnly":return ae[Xe]===!0&&yr(ae,"declaration");case"declaration":return ae.declaration||yr(ae,"composite");case"incremental":return ae.incremental===void 0?yr(ae,"composite"):ae.incremental;case"skipDefaultLibCheck":return ae.skipDefaultLibCheck||yr(ae,"skipLibCheck");case"suppressImplicitAnyIndexErrors":return ae.suppressImplicitAnyIndexErrors===!0&&yr(ae,"noImplicitAny");case"allowSyntheticDefaultImports":return ae.allowSyntheticDefaultImports!==void 0?ae.allowSyntheticDefaultImports:yr(ae,"esModuleInterop")||ae.module===re.ModuleKind.System;case"noUncheckedIndexedAccess":return ae.noUncheckedIndexedAccess===!0&&yr(ae,"strictNullChecks");case"allowJs":return ae.allowJs===void 0?yr(ae,"checkJs"):ae.allowJs;case"noImplicitAny":case"noImplicitThis":case"strictNullChecks":case"strictFunctionTypes":case"strictPropertyInitialization":case"alwaysStrict":case"strictBindCallApply":return ur(ae,Xe)}return ae[Xe]===!0}M.isCompilerOptionEnabled=yr;function Ir(ae){return ae.name.kind===re.SyntaxKind.StringLiteral||(ae.flags&re.NodeFlags.GlobalAugmentation)!==0}M.isAmbientModule=Ir;function wr(ae){return Ur(ae)}M.getCheckJsDirective=wr;function Ur(ae){let Xe;return re.forEachLeadingCommentRange(ae,(re.getShebang(ae)||"").length,(Jr,ti,Ze)=>{if(Ze===re.SyntaxKind.SingleLineCommentTrivia){let Sr=ae.slice(Jr,ti),zr=/^\/{2,3}\s*@ts-(no)?check(?:\s|$)/i.exec(Sr);zr!==null&&(Xe={pos:Jr,end:ti,enabled:zr[1]===void 0})}}),Xe}M.getTsCheckDirective=Ur;function ii(ae){return Ve.isTypeReferenceNode(ae.type)&&ae.type.typeName.kind===re.SyntaxKind.Identifier&&ae.type.typeName.escapedText==="const"}M.isConstAssertion=ii;function mi(ae){let Xe=ae;for(;;){let Jr=Xe.parent;e:switch(Jr.kind){case re.SyntaxKind.TypeAssertionExpression:case re.SyntaxKind.AsExpression:return ii(Jr);case re.SyntaxKind.PrefixUnaryExpression:if(Xe.kind!==re.SyntaxKind.NumericLiteral)return!1;switch(Jr.operator){case re.SyntaxKind.PlusToken:case re.SyntaxKind.MinusToken:Xe=Jr;break e;default:return!1}case re.SyntaxKind.PropertyAssignment:if(Jr.initializer!==Xe)return!1;Xe=Jr.parent;break;case re.SyntaxKind.ShorthandPropertyAssignment:Xe=Jr.parent;break;case re.SyntaxKind.ParenthesizedExpression:case re.SyntaxKind.ArrayLiteralExpression:case re.SyntaxKind.ObjectLiteralExpression:case re.SyntaxKind.TemplateExpression:Xe=Jr;break;default:return!1}}}M.isInConstContext=mi;function pe(ae,Xe){if(!or(ae))return!1;let Jr=Xe.getTypeAtLocation(ae.arguments[2]);if(Jr.getProperty("value")===void 0)return Jr.getProperty("set")===void 0;let ti=Jr.getProperty("writable");if(ti===void 0)return!1;let Ze=ti.valueDeclaration!==void 0&&Ve.isPropertyAssignment(ti.valueDeclaration)?Xe.getTypeAtLocation(ti.valueDeclaration.initializer):Xe.getTypeOfSymbolAtLocation(ti,ae.arguments[2]);return oi.isBooleanLiteralType(Ze,!1)}M.isReadonlyAssignmentDeclaration=pe;function or(ae){return ae.arguments.length===3&&Ve.isEntityNameExpression(ae.arguments[0])&&Ve.isNumericOrStringLikeLiteral(ae.arguments[1])&&Ve.isPropertyAccessExpression(ae.expression)&&ae.expression.name.escapedText==="defineProperty"&&Ve.isIdentifier(ae.expression.expression)&&ae.expression.expression.escapedText==="Object"}M.isBindableObjectDefinePropertyCall=or;function qr(ae){return re.isPropertyAccessExpression(ae)&&re.isIdentifier(ae.expression)&&ae.expression.escapedText==="Symbol"}M.isWellKnownSymbolLiterally=qr;function si(ae){return{displayName:"[Symbol.".concat(ae.name.text,"]"),symbolName:"__@"+ae.name.text}}M.getPropertyNameOfWellKnownSymbol=si;var Di=(ae=>{let[Xe,Jr]=ae;return Xe<"4"||Xe==="4"&&Jr<"3"})(re.versionMajorMinor.split("."));function wi(ae,Xe){let Jr={known:!0,names:[]};if(ae=Gi(ae),Di&&qr(ae))Jr.names.push(si(ae));else{let ti=Xe.getTypeAtLocation(ae);for(let Ze of oi.unionTypeParts(Xe.getBaseConstraintOfType(ti)||ti)){let Sr=oi.getPropertyNameFromType(Ze);Sr?Jr.names.push(Sr):Jr.known=!1}}return Jr}M.getLateBoundPropertyNames=wi;function Xi(ae,Xe){let Jr=O(ae);return Jr!==void 0?{known:!0,names:[{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)}]}:ae.kind===re.SyntaxKind.PrivateIdentifier?{known:!0,names:[{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName}]}:wi(ae.expression,Xe)}M.getLateBoundPropertyNamesOfPropertyName=Xi;function et(ae,Xe){let Jr=O(ae);if(Jr!==void 0)return{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)};if(ae.kind===re.SyntaxKind.PrivateIdentifier)return{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName};let{expression:ti}=ae;return Di&&qr(ti)?si(ti):oi.getPropertyNameFromType(Xe.getTypeAtLocation(ti))}M.getSingleLateBoundPropertyNameOfPropertyName=et;function Gi(ae){for(;ae.kind===re.SyntaxKind.ParenthesizedExpression;)ae=ae.expression;return ae}M.unwrapParentheses=Gi;function Wt(ae){return"".concat(ae.negative?"-":"").concat(ae.base10Value,"n")}M.formatPseudoBigInt=Wt;function Zt(ae,Xe){let Jr=ae.caseBlock.clauses.filter(Ve.isCaseClause);if(Jr.length===0)return!1;let ti=oi.unionTypeParts(Xe.getTypeAtLocation(ae.expression));if(ti.length>Jr.length)return!1;let Ze=new Set(ti.map(_r));if(Ze.has(void 0))return!1;let Sr=new Set;for(let zr of Jr){let Wr=Xe.getTypeAtLocation(zr.expression);if(M.isTypeFlagSet(Wr,re.TypeFlags.Never))continue;let Je=_r(Wr);if(Ze.has(Je))Sr.add(Je);else if(Je!=="null"&&Je!=="undefined")return!1}return Ze.size===Sr.size}M.hasExhaustiveCaseClauses=Zt;function _r(ae){if(M.isTypeFlagSet(ae,re.TypeFlags.Null))return"null";if(M.isTypeFlagSet(ae,re.TypeFlags.Undefined))return"undefined";if(M.isTypeFlagSet(ae,re.TypeFlags.NumberLiteral))return"".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?"enum:":"").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.StringLiteral))return"".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?"enum:":"","string:").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.BigIntLiteral))return Wt(ae.value);if(Ke.isUniqueESSymbolType(ae))return ae.escapedName;if(oi.isBooleanLiteralType(ae,!0))return"true";if(oi.isBooleanLiteralType(ae,!1))return"false"}function pi(ae){var Xe;if(((Xe=ae.heritageClauses)===null||Xe===void 0?void 0:Xe[0].token)===re.SyntaxKind.ExtendsKeyword)return ae.heritageClauses[0].types[0]}M.getBaseOfClassLikeExpression=pi}}),ez=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var w=Object.getOwnPropertyDescriptor(e,a);(!w||("get"in w?!e.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,w)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,"default",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!=="default"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e};Object.defineProperty(M,"__esModule",{value:!0}),M.convertComments=void 0;var oi=Ke(_u()),kr=n3(),pr=A1(),Lr=k1();function ar(ke,e){let a=[];return(0,kr.forEachComment)(ke,(C,w)=>{let B=w.kind==oi.SyntaxKind.SingleLineCommentTrivia?Lr.AST_TOKEN_TYPES.Line:Lr.AST_TOKEN_TYPES.Block,E=[w.pos,w.end],Q=(0,pr.getLocFor)(E[0],E[1],ke),le=E[0]+2,N=w.kind===oi.SyntaxKind.SingleLineCommentTrivia?E[1]-le:E[1]-le-2;a.push({type:B,value:e.slice(le,le+N),range:E,loc:Q})},ke),a}M.convertComments=ar}}),o3=Oa({"node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0});var re={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["exported","source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportExpression:["source"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],JSXClosingFragment:[],JSXOpeningFragment:[],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],StaticBlock:["body"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},Ve=Object.keys(re);for(let Lr of Ve)Object.freeze(re[Lr]);Object.freeze(re);var Ke=new Set(["parent","leadingComments","trailingComments"]);function oi(Lr){return!Ke.has(Lr)&&Lr[0]!=="_"}function kr(Lr){return Object.keys(Lr).filter(oi)}function pr(Lr){let ar=Object.assign({},re);for(let ke of Object.keys(Lr))if(Object.prototype.hasOwnProperty.call(ar,ke)){let e=new Set(Lr[ke]);for(let a of ar[ke])e.add(a);ar[ke]=Object.freeze(Array.from(e))}else ar[ke]=Object.freeze(Array.from(Lr[ke]));return Object.freeze(ar)}M.KEYS=re,M.getKeys=kr,M.unionWith=pr}}),rz=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/get-keys.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.getKeys=void 0;var re=o3(),Ve=re.getKeys;M.getKeys=Ve}}),iz=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(Lr,ar,ke,e){e===void 0&&(e=ke);var a=Object.getOwnPropertyDescriptor(ar,ke);(!a||("get"in a?!ar.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return ar[ke]}}),Object.defineProperty(Lr,e,a)}:function(Lr,ar,ke,e){e===void 0&&(e=ke),Lr[e]=ar[ke]}),Ve=M&&M.__setModuleDefault||(Object.create?function(Lr,ar){Object.defineProperty(Lr,"default",{enumerable:!0,value:ar})}:function(Lr,ar){Lr.default=ar}),Ke=M&&M.__importStar||function(Lr){if(Lr&&Lr.__esModule)return Lr;var ar={};if(Lr!=null)for(var ke in Lr)ke!=="default"&&Object.prototype.hasOwnProperty.call(Lr,ke)&&re(ar,Lr,ke);return Ve(ar,Lr),ar};Object.defineProperty(M,"__esModule",{value:!0}),M.visitorKeys=void 0;var oi=Ke(o3()),kr={ImportAttribute:["key","value"],ArrayPattern:["decorators","elements","typeAnnotation"],ArrowFunctionExpression:["typeParameters","params","returnType","body"],AssignmentPattern:["decorators","left","right","typeAnnotation"],CallExpression:["callee","typeParameters","arguments"],ClassDeclaration:["decorators","id","typeParameters","superClass","superTypeParameters","implements","body"],ClassExpression:["decorators","id","typeParameters","superClass","superTypeParameters","implements","body"],ExportAllDeclaration:["exported","source","assertions"],ExportNamedDeclaration:["declaration","specifiers","source","assertions"],FunctionDeclaration:["id","typeParameters","params","returnType","body"],FunctionExpression:["id","typeParameters","params","returnType","body"],Identifier:["decorators","typeAnnotation"],ImportDeclaration:["specifiers","source","assertions"],ImportExpression:["source","attributes"],MethodDefinition:["decorators","key","value","typeParameters"],NewExpression:["callee","typeParameters","arguments"],ObjectPattern:["decorators","properties","typeAnnotation"],PropertyDefinition:["decorators","key","typeAnnotation","value"],RestElement:["decorators","argument","typeAnnotation"],TaggedTemplateExpression:["tag","typeParameters","quasi"],StaticBlock:["body"],JSXOpeningElement:["name","typeParameters","attributes"],JSXClosingFragment:[],JSXOpeningFragment:[],JSXSpreadChild:["expression"],Decorator:["expression"],TSAbstractKeyword:[],TSAbstractMethodDefinition:["key","value"],TSAbstractPropertyDefinition:["decorators","key","typeAnnotation"],TSAnyKeyword:[],TSArrayType:["elementType"],TSAsExpression:["expression","typeAnnotation"],TSAsyncKeyword:[],TSBigIntKeyword:[],TSBooleanKeyword:[],TSCallSignatureDeclaration:["typeParameters","params","returnType"],TSClassImplements:["expression","typeParameters"],TSConditionalType:["checkType","extendsType","trueType","falseType"],TSConstructorType:["typeParameters","params","returnType"],TSConstructSignatureDeclaration:["typeParameters","params","returnType"],TSDeclareFunction:["id","typeParameters","params","returnType","body"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:["id","typeParameters","params","returnType"],TSEnumDeclaration:["id","members"],TSEnumMember:["id","initializer"],TSExportAssignment:["expression"],TSExportKeyword:[],TSExternalModuleReference:["expression"],TSFunctionType:["typeParameters","params","returnType"],TSImportEqualsDeclaration:["id","moduleReference"],TSImportType:["parameter","qualifier","typeParameters"],TSIndexedAccessType:["indexType","objectType"],TSIndexSignature:["parameters","typeAnnotation"],TSInferType:["typeParameter"],TSInstantiationExpression:["expression","typeParameters"],TSInterfaceBody:["body"],TSInterfaceDeclaration:["id","typeParameters","extends","body"],TSInterfaceHeritage:["expression","typeParameters"],TSIntersectionType:["types"],TSIntrinsicKeyword:[],TSLiteralType:["literal"],TSMappedType:["nameType","typeParameter","typeAnnotation"],TSMethodSignature:["typeParameters","key","params","returnType"],TSModuleBlock:["body"],TSModuleDeclaration:["id","body"],TSNamedTupleMember:["label","elementType"],TSNamespaceExportDeclaration:["id"],TSNeverKeyword:[],TSNonNullExpression:["expression"],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSOptionalType:["typeAnnotation"],TSParameterProperty:["decorators","parameter"],TSPrivateKeyword:[],TSPropertySignature:["typeAnnotation","key","initializer"],TSProtectedKeyword:[],TSPublicKeyword:[],TSQualifiedName:["left","right"],TSReadonlyKeyword:[],TSRestType:["typeAnnotation"],TSStaticKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSTemplateLiteralType:["quasis","types"],TSThisType:[],TSTupleType:["elementTypes"],TSTypeAliasDeclaration:["id","typeParameters","typeAnnotation"],TSTypeAnnotation:["typeAnnotation"],TSTypeAssertion:["typeAnnotation","expression"],TSTypeLiteral:["members"],TSTypeOperator:["typeAnnotation"],TSTypeParameter:["name","constraint","default"],TSTypeParameterDeclaration:["params"],TSTypeParameterInstantiation:["params"],TSTypePredicate:["typeAnnotation","parameterName"],TSTypeQuery:["exprName"],TSTypeReference:["typeName","typeParameters"],TSUndefinedKeyword:[],TSUnionType:["types"],TSUnknownKeyword:[],TSVoidKeyword:[]},pr=oi.unionWith(kr);M.visitorKeys=pr}}),s3=Oa({"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/index.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.visitorKeys=M.getKeys=void 0;var re=rz();Object.defineProperty(M,"getKeys",{enumerable:!0,get:function(){return re.getKeys}});var Ve=iz();Object.defineProperty(M,"visitorKeys",{enumerable:!0,get:function(){return Ve.visitorKeys}})}}),c3=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.simpleTraverse=void 0;var re=s3();function Ve(pr){return pr!==null&&typeof pr=="object"&&typeof pr.type=="string"}function Ke(pr,Lr){let ar=pr[Lr.type];return ar!=null?ar:[]}var oi=class{constructor(pr){let Lr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.allVisitorKeys=re.visitorKeys,this.selectors=pr,this.setParentPointers=Lr}traverse(pr,Lr){if(!Ve(pr))return;this.setParentPointers&&(pr.parent=Lr),"enter"in this.selectors?this.selectors.enter(pr,Lr):pr.type in this.selectors&&this.selectors[pr.type](pr,Lr);let ar=Ke(this.allVisitorKeys,pr);if(!(ar.length<1))for(let ke of ar){let e=pr[ke];if(Array.isArray(e))for(let a of e)this.traverse(a,pr);else this.traverse(e,pr)}}};function kr(pr,Lr){let ar=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;new oi(Lr,ar).traverse(pr,void 0)}M.simpleTraverse=kr}}),tz=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.astConverter=void 0;var re=e3(),Ve=ez(),Ke=A1(),oi=c3();function kr(pr,Lr,ar){let{parseDiagnostics:ke}=pr;if(ke.length)throw(0,re.convertError)(ke[0]);let e=new re.Converter(pr,{errorOnUnknownASTType:Lr.errorOnUnknownASTType||!1,shouldPreserveNodeMaps:ar}),a=e.convertProgram();(!Lr.range||!Lr.loc)&&(0,oi.simpleTraverse)(a,{enter:w=>{Lr.range||delete w.range,Lr.loc||delete w.loc}}),Lr.tokens&&(a.tokens=(0,Ke.convertTokens)(pr)),Lr.comment&&(a.comments=(0,Ve.convertComments)(pr,Lr.code));let C=e.getASTMaps();return{estree:a,astMaps:C}}M.astConverter=kr}}),Mv=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(p,m,G,oe){oe===void 0&&(oe=G);var f=Object.getOwnPropertyDescriptor(m,G);(!f||("get"in f?!m.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return m[G]}}),Object.defineProperty(p,oe,f)}:function(p,m,G,oe){oe===void 0&&(oe=G),p[oe]=m[G]}),Ve=M&&M.__setModuleDefault||(Object.create?function(p,m){Object.defineProperty(p,"default",{enumerable:!0,value:m})}:function(p,m){p.default=m}),Ke=M&&M.__importStar||function(p){if(p&&p.__esModule)return p;var m={};if(p!=null)for(var G in p)G!=="default"&&Object.prototype.hasOwnProperty.call(p,G)&&re(m,p,G);return Ve(m,p),m},oi=M&&M.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(M,"__esModule",{value:!0}),M.getModuleResolver=M.getAstFromProgram=M.getCanonicalFileName=M.ensureAbsolutePath=M.createDefaultCompilerOptionsFromExtra=M.canonicalDirname=M.CORE_COMPILER_OPTIONS=void 0;var kr=oi(Fv()),pr=Ke(_u()),Lr={noEmit:!0,noUnusedLocals:!0,noUnusedParameters:!0};M.CORE_COMPILER_OPTIONS=Lr;var ar=Object.assign(Object.assign({},Lr),{allowNonTsExtensions:!0,allowJs:!0,checkJs:!0});function ke(p){return p.debugLevel.has("typescript")?Object.assign(Object.assign({},ar),{extendedDiagnostics:!0}):ar}M.createDefaultCompilerOptionsFromExtra=ke;var e=pr.sys!==void 0?pr.sys.useCaseSensitiveFileNames:!0,a=e?p=>p:p=>p.toLowerCase();function C(p){let m=kr.default.normalize(p);return m.endsWith(kr.default.sep)&&(m=m.slice(0,-1)),a(m)}M.getCanonicalFileName=C;function w(p,m){return kr.default.isAbsolute(p)?p:kr.default.join(m.tsconfigRootDir||"/prettier-security-dirname-placeholder",p)}M.ensureAbsolutePath=w;function B(p){return kr.default.dirname(p)}M.canonicalDirname=B;var E=[pr.Extension.Dts,pr.Extension.Dcts,pr.Extension.Dmts];function Q(p){var m;return p?(m=E.find(G=>p.endsWith(G)))!==null&&m!==void 0?m:kr.default.extname(p):null}function le(p,m){let G=p.getSourceFile(m.filePath),oe=Q(m.filePath),f=Q(G==null?void 0:G.fileName);if(oe===f)return G&&{ast:G,program:p}}M.getAstFromProgram=le;function N(p){let m;try{throw new Error("Dynamic require is not supported")}catch{let oe=["Could not find the provided parserOptions.moduleResolver.","Hint: use an absolute path if you are not in control over where the ESLint instance runs."];throw new Error(oe.join(` +`))}return m}M.getModuleResolver=N}}),az=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,w,B){B===void 0&&(B=w);var E=Object.getOwnPropertyDescriptor(C,w);(!E||("get"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[w]}}),Object.defineProperty(a,B,E)}:function(a,C,w,B){B===void 0&&(B=w),a[B]=C[w]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var w in a)w!=="default"&&Object.prototype.hasOwnProperty.call(a,w)&&re(C,a,w);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,"__esModule",{value:!0}),M.createDefaultProgram=void 0;var kr=oi(wm()),pr=oi(Fv()),Lr=Ke(_u()),ar=Mv(),ke=(0,kr.default)("typescript-eslint:typescript-estree:createDefaultProgram");function e(a,C){if(ke("Getting default program for: %s",C.filePath||"unnamed file"),!C.projects||C.projects.length!==1)return;let w=C.projects[0],B=Lr.getParsedCommandLineOfConfigFile(w,(0,ar.createDefaultCompilerOptionsFromExtra)(C),Object.assign(Object.assign({},Lr.sys),{onUnRecoverableConfigFileDiagnostic:()=>{}}));if(!B)return;let E=Lr.createCompilerHost(B.options,!0);C.moduleResolver&&(E.resolveModuleNames=(0,ar.getModuleResolver)(C.moduleResolver).resolveModuleNames);let Q=E.readFile;E.readFile=p=>pr.default.normalize(p)===pr.default.normalize(C.filePath)?a:Q(p);let le=Lr.createProgram([C.filePath],B.options,E),N=le.getSourceFile(C.filePath);return N&&{ast:N,program:le}}M.createDefaultProgram=e}}),rx=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var w=Object.getOwnPropertyDescriptor(e,a);(!w||("get"in w?!e.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,w)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,"default",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!=="default"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e},oi=M&&M.__importDefault||function(ke){return ke&&ke.__esModule?ke:{default:ke}};Object.defineProperty(M,"__esModule",{value:!0}),M.getLanguageVariant=M.getScriptKind=void 0;var kr=oi(Fv()),pr=Ke(_u());function Lr(ke,e){switch(kr.default.extname(ke).toLowerCase()){case pr.Extension.Js:case pr.Extension.Cjs:case pr.Extension.Mjs:return pr.ScriptKind.JS;case pr.Extension.Jsx:return pr.ScriptKind.JSX;case pr.Extension.Ts:case pr.Extension.Cts:case pr.Extension.Mts:return pr.ScriptKind.TS;case pr.Extension.Tsx:return pr.ScriptKind.TSX;case pr.Extension.Json:return pr.ScriptKind.JSON;default:return e?pr.ScriptKind.TSX:pr.ScriptKind.TS}}M.getScriptKind=Lr;function ar(ke){switch(ke){case pr.ScriptKind.TSX:case pr.ScriptKind.JSX:case pr.ScriptKind.JS:case pr.ScriptKind.JSON:return pr.LanguageVariant.JSX;default:return pr.LanguageVariant.Standard}}M.getLanguageVariant=ar}}),nz=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,w,B){B===void 0&&(B=w);var E=Object.getOwnPropertyDescriptor(C,w);(!E||("get"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[w]}}),Object.defineProperty(a,B,E)}:function(a,C,w,B){B===void 0&&(B=w),a[B]=C[w]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,"default",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var w in a)w!=="default"&&Object.prototype.hasOwnProperty.call(a,w)&&re(C,a,w);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,"__esModule",{value:!0}),M.createIsolatedProgram=void 0;var kr=oi(wm()),pr=Ke(_u()),Lr=Mv(),ar=rx(),ke=(0,kr.default)("typescript-eslint:typescript-estree:createIsolatedProgram");function e(a,C){ke("Getting isolated program in %s mode for: %s",C.jsx?"TSX":"TS",C.filePath);let w={fileExists(){return!0},getCanonicalFileName(){return C.filePath},getCurrentDirectory(){return""},getDirectories(){return[]},getDefaultLibFileName(){return"lib.d.ts"},getNewLine(){return` +`},getSourceFile(Q){return pr.createSourceFile(Q,a,pr.ScriptTarget.Latest,!0,(0,ar.getScriptKind)(C.filePath,C.jsx))},readFile(){},useCaseSensitiveFileNames(){return!0},writeFile(){return null}},B=pr.createProgram([C.filePath],Object.assign({noResolve:!0,target:pr.ScriptTarget.Latest,jsx:C.jsx?pr.JsxEmit.Preserve:void 0},(0,Lr.createDefaultCompilerOptionsFromExtra)(C)),w),E=B.getSourceFile(C.filePath);if(!E)throw new Error("Expected an ast to be returned for the single-file isolated program.");return{ast:E,program:B}}M.createIsolatedProgram=e}}),u3=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(J,ie,R,q){q===void 0&&(q=R);var O=Object.getOwnPropertyDescriptor(ie,R);(!O||("get"in O?!ie.__esModule:O.writable||O.configurable))&&(O={enumerable:!0,get:function(){return ie[R]}}),Object.defineProperty(J,q,O)}:function(J,ie,R,q){q===void 0&&(q=R),J[q]=ie[R]}),Ve=M&&M.__setModuleDefault||(Object.create?function(J,ie){Object.defineProperty(J,"default",{enumerable:!0,value:ie})}:function(J,ie){J.default=ie}),Ke=M&&M.__importStar||function(J){if(J&&J.__esModule)return J;var ie={};if(J!=null)for(var R in J)R!=="default"&&Object.prototype.hasOwnProperty.call(J,R)&&re(ie,J,R);return Ve(ie,J),ie},oi=M&&M.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(M,"__esModule",{value:!0}),M.getProgramsForProjects=M.createWatchProgram=M.clearWatchCaches=void 0;var kr=oi(wm()),pr=oi(ex()),Lr=oi(QT()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)("typescript-eslint:typescript-estree:createWatchProgram"),a=new Map,C=new Map,w=new Map,B=new Map,E=new Map,Q=new Map;function le(){a.clear(),C.clear(),w.clear(),Q.clear(),B.clear(),E.clear()}M.clearWatchCaches=le;function N(J){return(ie,R)=>{let q=(0,ke.getCanonicalFileName)(ie),O=(()=>{let ve=J.get(q);return ve||(ve=new Set,J.set(q,ve)),ve})();return O.add(R),{close:()=>{O.delete(R)}}}}var p={code:"",filePath:""};function m(J){throw new Error(ar.flattenDiagnosticMessageText(J.messageText,ar.sys.newLine))}function G(J){var ie;return!((ie=ar.sys)===null||ie===void 0)&&ie.createHash?ar.sys.createHash(J):J}function oe(J,ie,R){let q=R.EXPERIMENTAL_useSourceOfProjectReferenceRedirect?new Set(ie.getSourceFiles().map(O=>(0,ke.getCanonicalFileName)(O.fileName))):new Set(ie.getRootFileNames().map(O=>(0,ke.getCanonicalFileName)(O)));return B.set(J,q),q}function f(J,ie,R){let q=(0,ke.getCanonicalFileName)(ie),O=[];p.code=J,p.filePath=q;let ve=C.get(q),ee=G(J);Q.get(q)!==ee&&ve&&ve.size>0&&ve.forEach(he=>he(q,ar.FileWatcherEventKind.Changed));for(let[he,F]of a.entries()){let x=B.get(he),X=null;if(x||(X=F.getProgram().getProgram(),x=oe(he,X,R)),x.has(q))return e("Found existing program for file. %s",q),X=X!=null?X:F.getProgram().getProgram(),X.getTypeChecker(),[X]}e("File did not belong to any existing programs, moving to create/update. %s",q);for(let he of R.projects){let F=a.get(he);if(F){let A=se(F,q,he);if(!A)continue;if(A.getTypeChecker(),oe(he,A,R).has(q))return e("Found updated program for file. %s",q),[A];O.push(A);continue}let x=K(he,R);a.set(he,x);let X=x.getProgram().getProgram();if(X.getTypeChecker(),oe(he,X,R).has(q))return e("Found program for file. %s",q),[X];O.push(X)}return O}M.getProgramsForProjects=f;var T=Lr.default.satisfies(ar.version,">=3.9.0-beta",{includePrerelease:!0});function K(J,ie){e("Creating watch program for %s.",J);let R=ar.createWatchCompilerHost(J,(0,ke.createDefaultCompilerOptionsFromExtra)(ie),ar.sys,ar.createAbstractBuilder,m,()=>{});ie.moduleResolver&&(R.resolveModuleNames=(0,ke.getModuleResolver)(ie.moduleResolver).resolveModuleNames);let q=R.readFile;R.readFile=(he,F)=>{let x=(0,ke.getCanonicalFileName)(he),X=x===p.filePath?p.code:q(x,F);return X!==void 0&&Q.set(x,G(X)),X},R.onUnRecoverableConfigFileDiagnostic=m,R.afterProgramCreate=he=>{let F=he.getConfigFileParsingDiagnostics().filter(x=>x.category===ar.DiagnosticCategory.Error&&x.code!==18003);F.length>0&&m(F[0])},R.watchFile=N(C),R.watchDirectory=N(w);let O=R.onCachedDirectoryStructureHostCreate;R.onCachedDirectoryStructureHostCreate=he=>{let F=he.readDirectory;he.readDirectory=(x,X,$,A,y)=>F(x,X?X.concat(ie.extraFileExtensions):void 0,$,A,y),O(he)},R.extraFileExtensions=ie.extraFileExtensions.map(he=>({extension:he,isMixedContent:!0,scriptKind:ar.ScriptKind.Deferred})),R.trace=e,R.useSourceOfProjectReferenceRedirect=()=>ie.EXPERIMENTAL_useSourceOfProjectReferenceRedirect;let ve;T?(R.setTimeout=void 0,R.clearTimeout=void 0):(e("Running without timeout fix"),R.setTimeout=function(he,F){for(var x=arguments.length,X=new Array(x>2?x-2:0),$=2;${ve=void 0});let ee=ar.createWatchProgram(R);if(!T){let he=ee.getProgram;ee.getProgram=()=>(ve&&ve(),ve=void 0,he.call(ee))}return ee}M.createWatchProgram=K;function b(J){let R=pr.default.statSync(J).mtimeMs,q=E.get(J);return E.set(J,R),q===void 0?!1:Math.abs(q-R)>Number.EPSILON}function se(J,ie,R){let q=J.getProgram().getProgram();if(Eu.env.TSESTREE_NO_INVALIDATION==="true")return q;b(R)&&(e("tsconfig has changed - triggering program update. %s",R),C.get(R).forEach(A=>A(R,ar.FileWatcherEventKind.Changed)),B.delete(R));let O=q.getSourceFile(ie);if(O)return q;e("File was not found in program - triggering folder update. %s",ie);let ve=(0,ke.canonicalDirname)(ie),ee=null,he=ve,F=!1;for(;ee!==he;){ee=he;let A=w.get(ee);A&&(A.forEach(y=>{ve!==ee&&y(ve,ar.FileWatcherEventKind.Changed),y(ee,ar.FileWatcherEventKind.Changed)}),F=!0),he=(0,ke.canonicalDirname)(ee)}if(!F)return e("No callback found for file, not part of this program. %s",ie),null;if(B.delete(R),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O)return q;e("File was still not found in program after directory update - checking file deletions. %s",ie);let X=q.getRootFileNames().find(A=>!pr.default.existsSync(A));if(!X)return null;let $=C.get((0,ke.getCanonicalFileName)(X));return $?(e("Marking file as deleted. %s",X),$.forEach(A=>A(X,ar.FileWatcherEventKind.Deleted)),B.delete(R),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O?q:(e("File was still not found in program after deletion check, assuming it is not part of this program. %s",ie),null)):(e("Could not find watch callbacks for root file. %s",X),q)}}}),oz=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(B,E,Q,le){le===void 0&&(le=Q);var N=Object.getOwnPropertyDescriptor(E,Q);(!N||("get"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[Q]}}),Object.defineProperty(B,le,N)}:function(B,E,Q,le){le===void 0&&(le=Q),B[le]=E[Q]}),Ve=M&&M.__setModuleDefault||(Object.create?function(B,E){Object.defineProperty(B,"default",{enumerable:!0,value:E})}:function(B,E){B.default=E}),Ke=M&&M.__importStar||function(B){if(B&&B.__esModule)return B;var E={};if(B!=null)for(var Q in B)Q!=="default"&&Object.prototype.hasOwnProperty.call(B,Q)&&re(E,B,Q);return Ve(E,B),E},oi=M&&M.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(M,"__esModule",{value:!0}),M.createProjectProgram=void 0;var kr=oi(wm()),pr=oi(Fv()),Lr=Ke(_u()),ar=u3(),ke=A1(),e=Mv(),a=(0,kr.default)("typescript-eslint:typescript-estree:createProjectProgram"),C=[Lr.Extension.Ts,Lr.Extension.Tsx,Lr.Extension.Js,Lr.Extension.Jsx,Lr.Extension.Mjs,Lr.Extension.Mts,Lr.Extension.Cjs,Lr.Extension.Cts];function w(B,E,Q){a("Creating project program for: %s",Q.filePath);let le=(0,ke.firstDefined)((0,ar.getProgramsForProjects)(B,Q.filePath,Q),N=>(0,e.getAstFromProgram)(N,Q));if(!le&&!E){let N=['"parserOptions.project" has been set for @typescript-eslint/parser.',"The file does not match your project config: ".concat(pr.default.relative(Q.tsconfigRootDir||"/prettier-security-dirname-placeholder",Q.filePath),".")],p=!1,m=Q.extraFileExtensions||[];m.forEach(oe=>{oe.startsWith(".")||N.push('Found unexpected extension "'.concat(oe,'" specified with the "extraFileExtensions" option. Did you mean ".').concat(oe,'"?')),C.includes(oe)&&N.push('You unnecessarily included the extension "'.concat(oe,'" with the "extraFileExtensions" option. This extension is already handled by the parser by default.'))});let G=pr.default.extname(Q.filePath);if(!C.includes(G)){let oe="The extension for the file (".concat(G,") is non-standard");m.length>0?m.includes(G)||(N.push("".concat(oe,'. It should be added to your existing "parserOptions.extraFileExtensions".')),p=!0):(N.push("".concat(oe,'. You should add "parserOptions.extraFileExtensions" to your config.')),p=!0)}throw p||N.push("The file must be included in at least one of the projects provided."),new Error(N.join(` +`))}return le}M.createProjectProgram=w}}),sz=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(e,a,C,w){w===void 0&&(w=C);var B=Object.getOwnPropertyDescriptor(a,C);(!B||("get"in B?!a.__esModule:B.writable||B.configurable))&&(B={enumerable:!0,get:function(){return a[C]}}),Object.defineProperty(e,w,B)}:function(e,a,C,w){w===void 0&&(w=C),e[w]=a[C]}),Ve=M&&M.__setModuleDefault||(Object.create?function(e,a){Object.defineProperty(e,"default",{enumerable:!0,value:a})}:function(e,a){e.default=a}),Ke=M&&M.__importStar||function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var C in e)C!=="default"&&Object.prototype.hasOwnProperty.call(e,C)&&re(a,e,C);return Ve(a,e),a},oi=M&&M.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M,"__esModule",{value:!0}),M.createSourceFile=void 0;var kr=oi(wm()),pr=Ke(_u()),Lr=rx(),ar=(0,kr.default)("typescript-eslint:typescript-estree:createSourceFile");function ke(e,a){return ar("Getting AST without type information in %s mode for: %s",a.jsx?"TSX":"TS",a.filePath),pr.createSourceFile(a.filePath,e,pr.ScriptTarget.Latest,!0,(0,Lr.getScriptKind)(a.filePath,a.jsx))}M.createSourceFile=ke}}),cz=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js"(M){"use strict";Ea(),Object.defineProperty(M,"__esModule",{value:!0}),M.getFirstSemanticOrSyntacticError=void 0;var re=_u();function Ve(kr,pr){try{let Lr=Ke(kr.getSyntacticDiagnostics(pr));if(Lr.length)return oi(Lr[0]);let ar=Ke(kr.getSemanticDiagnostics(pr));return ar.length?oi(ar[0]):void 0}catch(Lr){console.warn('Warning From TSC: "'.concat(Lr.message));return}}M.getFirstSemanticOrSyntacticError=Ve;function Ke(kr){return kr.filter(pr=>{switch(pr.code){case 1013:case 1014:case 1044:case 1045:case 1048:case 1049:case 1070:case 1071:case 1085:case 1090:case 1096:case 1097:case 1098:case 1099:case 1117:case 1121:case 1123:case 1141:case 1162:case 1164:case 1172:case 1173:case 1175:case 1176:case 1190:case 1196:case 1200:case 1206:case 1211:case 1242:case 1246:case 1255:case 1308:case 2364:case 2369:case 2452:case 2462:case 8017:case 17012:case 17013:return!0}return!1})}function oi(kr){return Object.assign(Object.assign({},kr),{message:(0,re.flattenDiagnosticMessageText)(kr.messageText,re.sys.newLine)})}}}),l3=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(B,E,Q,le){le===void 0&&(le=Q);var N=Object.getOwnPropertyDescriptor(E,Q);(!N||("get"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[Q]}}),Object.defineProperty(B,le,N)}:function(B,E,Q,le){le===void 0&&(le=Q),B[le]=E[Q]}),Ve=M&&M.__setModuleDefault||(Object.create?function(B,E){Object.defineProperty(B,"default",{enumerable:!0,value:E})}:function(B,E){B.default=E}),Ke=M&&M.__importStar||function(B){if(B&&B.__esModule)return B;var E={};if(B!=null)for(var Q in B)Q!=="default"&&Object.prototype.hasOwnProperty.call(B,Q)&&re(E,B,Q);return Ve(E,B),E},oi=M&&M.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(M,"__esModule",{value:!0}),M.createProgramFromConfigFile=M.useProvidedPrograms=void 0;var kr=oi(wm()),pr=Ke(ex()),Lr=Ke(Fv()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)("typescript-eslint:typescript-estree:useProvidedProgram");function a(B,E){e("Retrieving ast for %s from provided program instance(s)",E.filePath);let Q;for(let le of B)if(Q=(0,ke.getAstFromProgram)(le,E),Q)break;if(!Q){let le=Lr.relative(E.tsconfigRootDir||"/prettier-security-dirname-placeholder",E.filePath),N=['"parserOptions.programs" has been provided for @typescript-eslint/parser.',"The file was not found in any of the provided program instance(s): ".concat(le)];throw new Error(N.join(` +`))}return Q.program.getTypeChecker(),Q}M.useProvidedPrograms=a;function C(B,E){if(ar.sys===void 0)throw new Error("`createProgramFromConfigFile` is only supported in a Node-like environment.");let le=ar.getParsedCommandLineOfConfigFile(B,ke.CORE_COMPILER_OPTIONS,{onUnRecoverableConfigFileDiagnostic:p=>{throw new Error(w([p]))},fileExists:pr.existsSync,getCurrentDirectory:()=>E&&Lr.resolve(E)||"/prettier-security-dirname-placeholder",readDirectory:ar.sys.readDirectory,readFile:p=>pr.readFileSync(p,"utf-8"),useCaseSensitiveFileNames:ar.sys.useCaseSensitiveFileNames});if(le.errors.length)throw new Error(w(le.errors));let N=ar.createCompilerHost(le.options,!0);return ar.createProgram(le.fileNames,le.options,N)}M.createProgramFromConfigFile=C;function w(B){return ar.formatDiagnostics(B,{getCanonicalFileName:E=>E,getCurrentDirectory:Eu.cwd,getNewLine:()=>` +`})}}}),uz=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/parser.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(y,V,L,P){P===void 0&&(P=L);var k=Object.getOwnPropertyDescriptor(V,L);(!k||("get"in k?!V.__esModule:k.writable||k.configurable))&&(k={enumerable:!0,get:function(){return V[L]}}),Object.defineProperty(y,P,k)}:function(y,V,L,P){P===void 0&&(P=L),y[P]=V[L]}),Ve=M&&M.__setModuleDefault||(Object.create?function(y,V){Object.defineProperty(y,"default",{enumerable:!0,value:V})}:function(y,V){y.default=V}),Ke=M&&M.__importStar||function(y){if(y&&y.__esModule)return y;var V={};if(y!=null)for(var L in y)L!=="default"&&Object.prototype.hasOwnProperty.call(y,L)&&re(V,y,L);return Ve(V,y),V},oi=M&&M.__importDefault||function(y){return y&&y.__esModule?y:{default:y}};Object.defineProperty(M,"__esModule",{value:!0}),M.clearParseAndGenerateServicesCalls=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var kr=oi(wm()),pr=oi(Vj()),Lr=oi(QT()),ar=Fv(),ke=Ke(_u()),e=tz(),a=e3(),C=az(),w=nz(),B=oz(),E=sz(),Q=cz(),le=Mv(),N=l3(),p=(0,kr.default)("typescript-eslint:typescript-estree:parser"),m=">=3.3.1 <4.8.0",G=[],oe=ke.version,f=Lr.default.satisfies(oe,[m].concat(G).join(" || ")),T,K=!1,b=new Map;function se(){b.clear()}M.clearProgramCache=se;function J(y){return typeof y!="string"?String(y):y}function ie(y,V,L,P){return V&&(0,N.useProvidedPrograms)(V,T)||L&&(0,B.createProjectProgram)(y,P,T)||L&&P&&(0,C.createDefaultProgram)(y,T)||(0,w.createIsolatedProgram)(y,T)}function R(){let{jsx:y}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return y?"estree.tsx":"estree.ts"}function q(){T={code:"",comment:!1,comments:[],createDefaultProgram:!1,debugLevel:new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:!1,EXPERIMENTAL_useSourceOfProjectReferenceRedirect:!1,extraFileExtensions:[],filePath:R(),jsx:!1,loc:!1,log:console.log,preserveNodeMaps:!0,programs:null,projects:[],range:!1,strict:!1,tokens:null,tsconfigRootDir:"/prettier-security-dirname-placeholder",singleRun:!1,moduleResolver:""}}function O(y){var V;if(y.debugLevel===!0?T.debugLevel=new Set(["typescript-eslint"]):Array.isArray(y.debugLevel)&&(T.debugLevel=new Set(y.debugLevel)),T.debugLevel.size>0){let L=[];T.debugLevel.has("typescript-eslint")&&L.push("typescript-eslint:*"),(T.debugLevel.has("eslint")||kr.default.enabled("eslint:*,-eslint:code-path"))&&L.push("eslint:*,-eslint:code-path"),kr.default.enable(L.join(","))}if(T.range=typeof y.range=="boolean"&&y.range,T.loc=typeof y.loc=="boolean"&&y.loc,typeof y.tokens=="boolean"&&y.tokens&&(T.tokens=[]),typeof y.comment=="boolean"&&y.comment&&(T.comment=!0,T.comments=[]),typeof y.jsx!="boolean"?T.jsx=!1:T.jsx=y.jsx,typeof y.filePath=="string"&&y.filePath!==""?T.filePath=y.filePath:T.filePath=R(T),typeof y.errorOnUnknownASTType=="boolean"&&y.errorOnUnknownASTType&&(T.errorOnUnknownASTType=!0),typeof y.loggerFn=="function"?T.log=y.loggerFn:y.loggerFn===!1&&(T.log=()=>{}),typeof y.tsconfigRootDir=="string"&&(T.tsconfigRootDir=y.tsconfigRootDir),T.filePath=(0,le.ensureAbsolutePath)(T.filePath,T),Array.isArray(y.programs)){if(!y.programs.length)throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.");T.programs=y.programs,p("parserOptions.programs was provided, so parserOptions.project will be ignored.")}if(!T.programs){let L=((V=y.projectFolderIgnoreList)!==null&&V!==void 0?V:["**/node_modules/**"]).reduce((P,k)=>(typeof k=="string"&&P.push(k),P),[]).map(P=>P.startsWith("!")?P:"!".concat(P));T.projects=[]}Array.isArray(y.extraFileExtensions)&&y.extraFileExtensions.every(L=>typeof L=="string")&&(T.extraFileExtensions=y.extraFileExtensions),typeof y.preserveNodeMaps=="boolean"&&(T.preserveNodeMaps=y.preserveNodeMaps),T.createDefaultProgram=typeof y.createDefaultProgram=="boolean"&&y.createDefaultProgram,T.EXPERIMENTAL_useSourceOfProjectReferenceRedirect=typeof y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect=="boolean"&&y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect,typeof y.moduleResolver=="string"&&(T.moduleResolver=y.moduleResolver)}function ve(){var y;if(!f&&!K){if(typeof Eu>"u"?!1:(y=Eu.stdout)===null||y===void 0?void 0:y.isTTY){let L="=============",P=[L,"WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.","You may find that it works just fine, or you may not.","SUPPORTED TYPESCRIPT VERSIONS: ".concat(m),"YOUR TYPESCRIPT VERSION: ".concat(oe),"Please only submit bug reports when using the officially supported version.",L];T.log(P.join(` + +`))}K=!0}}function ee(y){if(Eu.env.TSESTREE_SINGLE_RUN==="false"){T.singleRun=!1;return}if(Eu.env.TSESTREE_SINGLE_RUN==="true"){T.singleRun=!0;return}if(y!=null&&y.allowAutomaticSingleRunInference&&(Eu.env.CI==="true"||Eu.argv[1].endsWith((0,ar.normalize)("node_modules/.bin/eslint")))){T.singleRun=!0;return}T.singleRun=!1}function he(y,V){let{ast:L}=F(y,V,!1);return L}M.parse=he;function F(y,V,L){if(q(),V!=null&&V.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()');y=J(y),T.code=y,typeof V<"u"&&O(V),ve(),ee(V);let P=(0,E.createSourceFile)(y,T),{estree:k,astMaps:Y}=(0,e.astConverter)(P,T,L);return{ast:k,esTreeNodeToTSNodeMap:Y.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:Y.tsNodeToESTreeNodeMap}}function x(y,V){return F(y,V,!0)}M.parseWithNodeMaps=x;var X={};function $(){X={}}M.clearParseAndGenerateServicesCalls=$;function A(y,V){var L;q(),y=J(y),T.code=y,typeof V<"u"&&(O(V),typeof V.errorOnTypeScriptSyntacticAndSemanticIssues=="boolean"&&V.errorOnTypeScriptSyntacticAndSemanticIssues&&(T.errorOnTypeScriptSyntacticAndSemanticIssues=!0)),ve(),ee(V),T.singleRun&&!T.programs&&((L=T.projects)===null||L===void 0?void 0:L.length)>0&&(T.programs={*[Symbol.iterator](){for(let I of T.projects){let l=b.get(I);if(l)yield l;else{p("Detected single-run/CLI usage, creating Program once ahead of time for project: %s",I);let d=(0,N.createProgramFromConfigFile)(I);b.set(I,d),yield d}}}});let P=T.programs!=null||T.projects&&T.projects.length>0,k,Y;if(T.singleRun&&V.filePath&&(X[V.filePath]=(X[V.filePath]||0)+1),T.singleRun&&V.filePath&&X[V.filePath]>1){let I=(0,w.createIsolatedProgram)(y,T);k=I.ast,Y=I.program}else{let I=ie(y,T.programs,P,T.createDefaultProgram);k=I.ast,Y=I.program}let U=typeof T.preserveNodeMaps=="boolean"?T.preserveNodeMaps:!0,{estree:j,astMaps:H}=(0,e.astConverter)(k,T,U);if(Y&&T.errorOnTypeScriptSyntacticAndSemanticIssues){let I=(0,Q.getFirstSemanticOrSyntacticError)(Y,k);if(I)throw(0,a.convertError)(I)}return{ast:j,services:{hasFullTypeInformation:P,program:Y,esTreeNodeToTSNodeMap:H.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:H.tsNodeToESTreeNodeMap}}}M.parseAndGenerateServices=A}}),lz=Oa({"node_modules/@typescript-eslint/typescript-estree/package.json"(M,re){re.exports={name:"@typescript-eslint/typescript-estree",version:"5.27.0",description:"A parser that converts TypeScript source code into an ESTree compatible form",main:"dist/index.js",types:"dist/index.d.ts",files:["dist","README.md","LICENSE"],engines:{node:"^12.22.0 || ^14.17.0 || >=16.0.0"},repository:{type:"git",url:"https://github.com/typescript-eslint/typescript-eslint.git",directory:"packages/typescript-estree"},bugs:{url:"https://github.com/typescript-eslint/typescript-eslint/issues"},license:"BSD-2-Clause",keywords:["ast","estree","ecmascript","javascript","typescript","parser","syntax"],scripts:{build:"tsc -b tsconfig.build.json",postbuild:"downlevel-dts dist _ts3.4/dist",clean:"tsc -b tsconfig.build.json --clean",postclean:"rimraf dist && rimraf _ts3.4 && rimraf coverage",format:'prettier --write "./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}" --ignore-path ../../.prettierignore',lint:"eslint . --ignore-path='../../.eslintignore'",test:"jest --coverage",typecheck:"tsc -p tsconfig.json --noEmit"},dependencies:{"@typescript-eslint/types":"5.27.0","@typescript-eslint/visitor-keys":"5.27.0",debug:"^4.3.4",globby:"^11.1.0","is-glob":"^4.0.3",semver:"^7.3.7",tsutils:"^3.21.0"},devDependencies:{"@babel/code-frame":"*","@babel/parser":"*","@types/babel__code-frame":"*","@types/debug":"*","@types/glob":"*","@types/is-glob":"*","@types/semver":"*","@types/tmp":"*","@typescript-eslint/shared-fixtures":"5.27.0",glob:"*","jest-specific-snapshot":"*","make-dir":"*",tmp:"*",typescript:"*"},peerDependenciesMeta:{typescript:{optional:!0}},funding:{type:"opencollective",url:"https://opencollective.com/typescript-eslint"},typesVersions:{"<3.8":{"*":["_ts3.4/*"]}},gitHead:"e0db364b94158437f041db3597101d0c8b30d8bc"}}}),fz=Oa({"node_modules/@typescript-eslint/typescript-estree/dist/index.js"(M){"use strict";Ea();var re=M&&M.__createBinding||(Object.create?function(ar,ke,e,a){a===void 0&&(a=e);var C=Object.getOwnPropertyDescriptor(ke,e);(!C||("get"in C?!ke.__esModule:C.writable||C.configurable))&&(C={enumerable:!0,get:function(){return ke[e]}}),Object.defineProperty(ar,a,C)}:function(ar,ke,e,a){a===void 0&&(a=e),ar[a]=ke[e]}),Ve=M&&M.__exportStar||function(ar,ke){for(var e in ar)e!=="default"&&!Object.prototype.hasOwnProperty.call(ke,e)&&re(ke,ar,e)};Object.defineProperty(M,"__esModule",{value:!0}),M.version=M.visitorKeys=M.createProgram=M.clearCaches=M.simpleTraverse=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var Ke=uz();Object.defineProperty(M,"parse",{enumerable:!0,get:function(){return Ke.parse}}),Object.defineProperty(M,"parseAndGenerateServices",{enumerable:!0,get:function(){return Ke.parseAndGenerateServices}}),Object.defineProperty(M,"parseWithNodeMaps",{enumerable:!0,get:function(){return Ke.parseWithNodeMaps}}),Object.defineProperty(M,"clearProgramCache",{enumerable:!0,get:function(){return Ke.clearProgramCache}});var oi=c3();Object.defineProperty(M,"simpleTraverse",{enumerable:!0,get:function(){return oi.simpleTraverse}}),Ve(k1(),M);var kr=u3();Object.defineProperty(M,"clearCaches",{enumerable:!0,get:function(){return kr.clearWatchCaches}});var pr=l3();Object.defineProperty(M,"createProgram",{enumerable:!0,get:function(){return pr.createProgramFromConfigFile}}),Ve(rx(),M);var Lr=s3();Object.defineProperty(M,"visitorKeys",{enumerable:!0,get:function(){return Lr.visitorKeys}}),M.version=lz().version}});Ea();var _z=S4(),pz=Tj(),dz=Fj(),gz=Mj(),mz=Uj(),b4={loc:!0,range:!0,comment:!0,jsx:!0,tokens:!0,loggerFn:!1,project:[]};function vz(M){let{message:re,lineNumber:Ve,column:Ke}=M;return typeof Ve!="number"?M:_z(re,{start:{line:Ve,column:Ke+1}})}function yz(M,re){let Ve=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Ke=gz(M),oi=hz(M),{parseWithNodeMaps:kr}=fz(),{result:pr,error:Lr}=pz(()=>kr(Ke,Object.assign(Object.assign({},b4),{},{jsx:oi})),()=>kr(Ke,Object.assign(Object.assign({},b4),{},{jsx:!oi})));if(!pr)throw vz(Lr);return Ve.originalText=M,Ve.tsParseResult=pr,mz(pr.ast,Ve)}function hz(M){return new RegExp(["(?:^[^\"'`]*)"].join(""),"m").test(M)}f3.exports={parsers:{typescript:dz(yz)}}});return Dz();}); \ No newline at end of file diff --git a/node_modules/prettier/parser-yaml.js b/node_modules/prettier/parser-yaml.js new file mode 100644 index 0000000..c938927 --- /dev/null +++ b/node_modules/prettier/parser-yaml.js @@ -0,0 +1,150 @@ +(function(e){if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var i=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.yaml=e()}})(function(){"use strict";var wt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var ur=wt((mr,lt)=>{var De=Object.defineProperty,St=Object.getOwnPropertyDescriptor,Fe=Object.getOwnPropertyNames,Et=Object.prototype.hasOwnProperty,xe=(r,e)=>function(){return r&&(e=(0,r[Fe(r)[0]])(r=0)),e},F=(r,e)=>function(){return e||(0,r[Fe(r)[0]])((e={exports:{}}).exports,e),e.exports},Mt=(r,e)=>{for(var n in e)De(r,n,{get:e[n],enumerable:!0})},Ot=(r,e,n,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let h of Fe(e))!Et.call(r,h)&&h!==n&&De(r,h,{get:()=>e[h],enumerable:!(c=St(e,h))||c.enumerable});return r},se=r=>Ot(De({},"__esModule",{value:!0}),r),Ke,$e,Te,D=xe({""(){Ke={},$e=[],Te={env:Ke,argv:$e}}}),Lt=F({"src/common/parser-create-error.js"(r,e){"use strict";D();function n(c,h){let d=new SyntaxError(c+" ("+h.start.line+":"+h.start.column+")");return d.loc=h,d}e.exports=n}}),At=F({"src/language-yaml/pragma.js"(r,e){"use strict";D();function n(d){return/^\s*@(?:prettier|format)\s*$/.test(d)}function c(d){return/^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/.test(d)}function h(d){return`# @format + +`.concat(d)}e.exports={isPragma:n,hasPragma:c,insertPragma:h}}}),Nt=F({"src/language-yaml/loc.js"(r,e){"use strict";D();function n(h){return h.position.start.offset}function c(h){return h.position.end.offset}e.exports={locStart:n,locEnd:c}}}),te={};Mt(te,{__assign:()=>qe,__asyncDelegator:()=>Wt,__asyncGenerator:()=>Ft,__asyncValues:()=>Vt,__await:()=>Ce,__awaiter:()=>Rt,__classPrivateFieldGet:()=>$t,__classPrivateFieldSet:()=>Jt,__createBinding:()=>Bt,__decorate:()=>kt,__exportStar:()=>jt,__extends:()=>Tt,__generator:()=>qt,__importDefault:()=>Kt,__importStar:()=>Ut,__makeTemplateObject:()=>Qt,__metadata:()=>It,__param:()=>Pt,__read:()=>He,__rest:()=>Ct,__spread:()=>Yt,__spreadArrays:()=>Dt,__values:()=>Ye});function Tt(r,e){Re(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function Ct(r,e){var n={};for(var c in r)Object.prototype.hasOwnProperty.call(r,c)&&e.indexOf(c)<0&&(n[c]=r[c]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var h=0,c=Object.getOwnPropertySymbols(r);h=0;E--)(y=r[E])&&(d=(h<3?y(d):h>3?y(e,n,d):y(e,n))||d);return h>3&&d&&Object.defineProperty(e,n,d),d}function Pt(r,e){return function(n,c){e(n,c,r)}}function It(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function Rt(r,e,n,c){function h(d){return d instanceof n?d:new n(function(y){y(d)})}return new(n||(n=Promise))(function(d,y){function E(M){try{S(c.next(M))}catch(T){y(T)}}function I(M){try{S(c.throw(M))}catch(T){y(T)}}function S(M){M.done?d(M.value):h(M.value).then(E,I)}S((c=c.apply(r,e||[])).next())})}function qt(r,e){var n={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},c,h,d,y;return y={next:E(0),throw:E(1),return:E(2)},typeof Symbol=="function"&&(y[Symbol.iterator]=function(){return this}),y;function E(S){return function(M){return I([S,M])}}function I(S){if(c)throw new TypeError("Generator is already executing.");for(;n;)try{if(c=1,h&&(d=S[0]&2?h.return:S[0]?h.throw||((d=h.return)&&d.call(h),0):h.next)&&!(d=d.call(h,S[1])).done)return d;switch(h=0,d&&(S=[S[0]&2,d.value]),S[0]){case 0:case 1:d=S;break;case 4:return n.label++,{value:S[1],done:!1};case 5:n.label++,h=S[1],S=[0];continue;case 7:S=n.ops.pop(),n.trys.pop();continue;default:if(d=n.trys,!(d=d.length>0&&d[d.length-1])&&(S[0]===6||S[0]===2)){n=0;continue}if(S[0]===3&&(!d||S[1]>d[0]&&S[1]=r.length&&(r=void 0),{value:r&&r[c++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function He(r,e){var n=typeof Symbol=="function"&&r[Symbol.iterator];if(!n)return r;var c=n.call(r),h,d=[],y;try{for(;(e===void 0||e-- >0)&&!(h=c.next()).done;)d.push(h.value)}catch(E){y={error:E}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(y)throw y.error}}return d}function Yt(){for(var r=[],e=0;e1||E(P,C)})})}function E(P,C){try{I(c[P](C))}catch(q){T(d[0][3],q)}}function I(P){P.value instanceof Ce?Promise.resolve(P.value.v).then(S,M):T(d[0][2],P)}function S(P){E("next",P)}function M(P){E("throw",P)}function T(P,C){P(C),d.shift(),d.length&&E(d[0][0],d[0][1])}}function Wt(r){var e,n;return e={},c("next"),c("throw",function(h){throw h}),c("return"),e[Symbol.iterator]=function(){return this},e;function c(h,d){e[h]=r[h]?function(y){return(n=!n)?{value:Ce(r[h](y)),done:h==="return"}:d?d(y):y}:d}}function Vt(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],n;return e?e.call(r):(r=typeof Ye=="function"?Ye(r):r[Symbol.iterator](),n={},c("next"),c("throw"),c("return"),n[Symbol.asyncIterator]=function(){return this},n);function c(d){n[d]=r[d]&&function(y){return new Promise(function(E,I){y=r[d](y),h(E,I,y.done,y.value)})}}function h(d,y,E,I){Promise.resolve(I).then(function(S){d({value:S,done:E})},y)}}function Qt(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function Ut(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var n in r)Object.hasOwnProperty.call(r,n)&&(e[n]=r[n]);return e.default=r,e}function Kt(r){return r&&r.__esModule?r:{default:r}}function $t(r,e){if(!e.has(r))throw new TypeError("attempted to get private field on non-instance");return e.get(r)}function Jt(r,e,n){if(!e.has(r))throw new TypeError("attempted to set private field on non-instance");return e.set(r,n),n}var Re,qe,ae=xe({"node_modules/tslib/tslib.es6.js"(){D(),Re=function(r,e){return Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,c){n.__proto__=c}||function(n,c){for(var h in c)c.hasOwnProperty(h)&&(n[h]=c[h])},Re(r,e)},qe=function(){return qe=Object.assign||function(e){for(var n,c=1,h=arguments.length;cthis.string.length)return null;for(var y=0,E=this.offsets;E[y+1]<=d;)y++;var I=d-E[y];return{line:y,column:I}},h.prototype.indexForLocation=function(d){var y=d.line,E=d.column;return y<0||y>=this.offsets.length||E<0||E>this.lengthOfLine(y)?null:this.offsets[y]+E},h.prototype.lengthOfLine=function(d){var y=this.offsets[d],E=d===this.offsets.length-1?this.string.length:this.offsets[d+1];return E-y},h}();r.LinesAndColumns=c,r.default=c}}),Ht=F({"node_modules/yaml-unist-parser/lib/utils/define-parents.js"(r){"use strict";D(),r.__esModule=!0;function e(n,c){c===void 0&&(c=null),"children"in n&&n.children.forEach(function(h){return e(h,n)}),"anchor"in n&&n.anchor&&e(n.anchor,n),"tag"in n&&n.tag&&e(n.tag,n),"leadingComments"in n&&n.leadingComments.forEach(function(h){return e(h,n)}),"middleComments"in n&&n.middleComments.forEach(function(h){return e(h,n)}),"indicatorComment"in n&&n.indicatorComment&&e(n.indicatorComment,n),"trailingComment"in n&&n.trailingComment&&e(n.trailingComment,n),"endComments"in n&&n.endComments.forEach(function(h){return e(h,n)}),Object.defineProperty(n,"_parent",{value:c,enumerable:!1})}r.defineParents=e}}),We=F({"node_modules/yaml-unist-parser/lib/utils/get-point-text.js"(r){"use strict";D(),r.__esModule=!0;function e(n){return n.line+":"+n.column}r.getPointText=e}}),Gt=F({"node_modules/yaml-unist-parser/lib/attach.js"(r){"use strict";D(),r.__esModule=!0;var e=Ht(),n=We();function c(S){e.defineParents(S);var M=h(S),T=S.children.slice();S.comments.sort(function(P,C){return P.position.start.offset-C.position.end.offset}).filter(function(P){return!P._parent}).forEach(function(P){for(;T.length>1&&P.position.start.line>T[0].position.end.line;)T.shift();y(P,M,T[0])})}r.attachComments=c;function h(S){for(var M=Array.from(new Array(S.position.end.line),function(){return{}}),T=0,P=S.comments;T1&&M.type!=="document"&&M.type!=="documentHead"){var C=M.position.end,q=S[C.line-1].trailingAttachableNode;(!q||C.column>=q.position.end.column)&&(S[C.line-1].trailingAttachableNode=M)}if(M.type!=="root"&&M.type!=="document"&&M.type!=="documentHead"&&M.type!=="documentBody")for(var R=M.position,T=R.start,C=R.end,j=[C.line].concat(T.line===C.line?[]:T.line),K=0,m=j;K=t.position.end.column)&&(S[a-1].trailingNode=M)}"children"in M&&M.children.forEach(function(s){d(S,s)})}}function y(S,M,T){var P=S.position.start.line,C=M[P-1].trailingAttachableNode;if(C){if(C.trailingComment)throw new Error("Unexpected multiple trailing comment at "+n.getPointText(S.position.start));e.defineParents(S,C),C.trailingComment=S;return}for(var q=P;q>=T.position.start.line;q--){var R=M[q-1].trailingNode,j=void 0;if(R)j=R;else if(q!==P&&M[q-1].comment)j=M[q-1].comment._parent;else continue;if((j.type==="sequence"||j.type==="mapping")&&(j=j.children[0]),j.type==="mappingItem"){var K=j.children,m=K[0],a=K[1];j=I(m)?m:a}for(;;){if(E(j,S)){e.defineParents(S,j),j.endComments.push(S);return}if(!j._parent)break;j=j._parent}break}for(var q=P+1;q<=T.position.end.line;q++){var t=M[q-1].leadingAttachableNode;if(t){e.defineParents(S,t),t.leadingComments.push(S);return}}var s=T.children[1];e.defineParents(S,s),s.endComments.push(S)}function E(S,M){if(S.position.start.offsetM.position.end.offset)switch(S.type){case"flowMapping":case"flowSequence":return S.children.length===0||M.position.start.line>S.children[S.children.length-1].position.end.line}if(M.position.end.offsetS.position.start.column;case"mappingKey":case"mappingValue":return M.position.start.column>S._parent.position.start.column&&(S.children.length===0||S.children.length===1&&S.children[0].type!=="blockFolded"&&S.children[0].type!=="blockLiteral")&&(S.type==="mappingValue"||I(S));default:return!1}}function I(S){return S.position.start!==S.position.end&&(S.children.length===0||S.position.start.offset!==S.children[0].position.start.offset)}}}),me=F({"node_modules/yaml-unist-parser/lib/factories/node.js"(r){"use strict";D(),r.__esModule=!0;function e(n,c){return{type:n,position:c}}r.createNode=e}}),zt=F({"node_modules/yaml-unist-parser/lib/factories/root.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d,y){return e.__assign(e.__assign({},n.createNode("root",h)),{children:d,comments:y})}r.createRoot=c}}),Zt=F({"node_modules/yaml-unist-parser/lib/preprocess.js"(r){"use strict";D(),r.__esModule=!0;function e(n){switch(n.type){case"DOCUMENT":for(var c=n.contents.length-1;c>=0;c--)n.contents[c].type==="BLANK_LINE"?n.contents.splice(c,1):e(n.contents[c]);for(var c=n.directives.length-1;c>=0;c--)n.directives[c].type==="BLANK_LINE"&&n.directives.splice(c,1);break;case"FLOW_MAP":case"FLOW_SEQ":case"MAP":case"SEQ":for(var c=n.items.length-1;c>=0;c--){var h=n.items[c];"char"in h||(h.type==="BLANK_LINE"?n.items.splice(c,1):e(h))}break;case"MAP_KEY":case"MAP_VALUE":case"SEQ_ITEM":n.node&&e(n.node);break;case"ALIAS":case"BLANK_LINE":case"BLOCK_FOLDED":case"BLOCK_LITERAL":case"COMMENT":case"DIRECTIVE":case"PLAIN":case"QUOTE_DOUBLE":case"QUOTE_SINGLE":break;default:throw new Error("Unexpected node type "+JSON.stringify(n.type))}}r.removeCstBlankLine=e}}),Oe=F({"node_modules/yaml-unist-parser/lib/factories/leading-comment-attachable.js"(r){"use strict";D(),r.__esModule=!0;function e(){return{leadingComments:[]}}r.createLeadingCommentAttachable=e}}),Be=F({"node_modules/yaml-unist-parser/lib/factories/trailing-comment-attachable.js"(r){"use strict";D(),r.__esModule=!0;function e(n){return n===void 0&&(n=null),{trailingComment:n}}r.createTrailingCommentAttachable=e}}),Se=F({"node_modules/yaml-unist-parser/lib/factories/comment-attachable.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=Be();function h(){return e.__assign(e.__assign({},n.createLeadingCommentAttachable()),c.createTrailingCommentAttachable())}r.createCommentAttachable=h}}),Xt=F({"node_modules/yaml-unist-parser/lib/factories/alias.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("alias",d)),n.createCommentAttachable()),y),{value:E})}r.createAlias=h}}),en=F({"node_modules/yaml-unist-parser/lib/transforms/alias.js"(r){"use strict";D(),r.__esModule=!0;var e=Xt();function n(c,h){var d=c.cstNode;return e.createAlias(h.transformRange({origStart:d.valueRange.origStart-1,origEnd:d.valueRange.origEnd}),h.transformContent(c),d.rawValue)}r.transformAlias=n}}),tn=F({"node_modules/yaml-unist-parser/lib/factories/block-folded.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:"blockFolded"})}r.createBlockFolded=n}}),nn=F({"node_modules/yaml-unist-parser/lib/factories/block-value.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,E,I,S,M){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("blockValue",d)),n.createLeadingCommentAttachable()),y),{chomping:E,indent:I,value:S,indicatorComment:M})}r.createBlockValue=h}}),Ge=F({"node_modules/yaml-unist-parser/lib/constants.js"(r){"use strict";D(),r.__esModule=!0;var e;(function(n){n.Tag="!",n.Anchor="&",n.Comment="#"})(e=r.PropLeadingCharacter||(r.PropLeadingCharacter={}))}}),rn=F({"node_modules/yaml-unist-parser/lib/factories/anchor.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode("anchor",h)),{value:d})}r.createAnchor=c}}),Ve=F({"node_modules/yaml-unist-parser/lib/factories/comment.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode("comment",h)),{value:d})}r.createComment=c}}),sn=F({"node_modules/yaml-unist-parser/lib/factories/content.js"(r){"use strict";D(),r.__esModule=!0;function e(n,c,h){return{anchor:c,tag:n,middleComments:h}}r.createContent=e}}),an=F({"node_modules/yaml-unist-parser/lib/factories/tag.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode("tag",h)),{value:d})}r.createTag=c}}),ze=F({"node_modules/yaml-unist-parser/lib/transforms/content.js"(r){"use strict";D(),r.__esModule=!0;var e=Ge(),n=rn(),c=Ve(),h=sn(),d=an();function y(E,I,S){S===void 0&&(S=function(){return!1});for(var M=E.cstNode,T=[],P=null,C=null,q=null,R=0,j=M.props;R=0;K--){var m=S.contents[K];if(m.type==="COMMENT"){var a=M.transformNode(m);T&&T.line===a.position.start.line?R.unshift(a):j?P.unshift(a):a.position.start.offset>=S.valueRange.origEnd?q.unshift(a):P.unshift(a)}else j=!0}if(q.length>1)throw new Error("Unexpected multiple document trailing comments at "+d.getPointText(q[1].position.start));if(R.length>1)throw new Error("Unexpected multiple documentHead trailing comments at "+d.getPointText(R[1].position.start));return{comments:P,endComments:C,documentTrailingComment:c.getLast(q)||null,documentHeadTrailingComment:c.getLast(R)||null}}function I(S,M,T){var P=h.getMatchIndex(T.text.slice(S.valueRange.origEnd),/^\.\.\./),C=P===-1?S.valueRange.origEnd:Math.max(0,S.valueRange.origEnd-1);T.text[C-1]==="\r"&&C--;var q=T.transformRange({origStart:M!==null?M.position.start.offset:C,origEnd:C}),R=P===-1?q.end:T.transformOffset(S.valueRange.origEnd+3);return{position:q,documentEndPoint:R}}}}),pn=F({"node_modules/yaml-unist-parser/lib/factories/document-head.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=me(),h=Be();function d(y,E,I,S){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("documentHead",y)),n.createEndCommentAttachable(I)),h.createTrailingCommentAttachable(S)),{children:E})}r.createDocumentHead=d}}),_n=F({"node_modules/yaml-unist-parser/lib/transforms/document-head.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=pn(),c=Xe();function h(E,I){var S,M=E.cstNode,T=d(M,I),P=T.directives,C=T.comments,q=T.endComments,R=y(M,P,I),j=R.position,K=R.endMarkerPoint;(S=I.comments).push.apply(S,e.__spreadArrays(C,q));var m=function(a){return a&&I.comments.push(a),n.createDocumentHead(j,P,q,a)};return{createDocumentHeadWithTrailingComment:m,documentHeadEndMarkerPoint:K}}r.transformDocumentHead=h;function d(E,I){for(var S=[],M=[],T=[],P=!1,C=E.directives.length-1;C>=0;C--){var q=I.transformNode(E.directives[C]);q.type==="comment"?P?M.unshift(q):T.unshift(q):(P=!0,S.unshift(q))}return{directives:S,comments:M,endComments:T}}function y(E,I,S){var M=c.getMatchIndex(S.text.slice(0,E.valueRange.origStart),/---\s*$/);M>0&&!/[\r\n]/.test(S.text[M-1])&&(M=-1);var T=M===-1?{origStart:E.valueRange.origStart,origEnd:E.valueRange.origStart}:{origStart:M,origEnd:M+3};return I.length!==0&&(T.origStart=I[0].position.start.offset),{position:S.transformRange(T),endMarkerPoint:M===-1?null:S.transformOffset(M)}}}}),vn=F({"node_modules/yaml-unist-parser/lib/transforms/document.js"(r){"use strict";D(),r.__esModule=!0;var e=dn(),n=Le(),c=gn(),h=_n();function d(y,E){var I=h.transformDocumentHead(y,E),S=I.createDocumentHeadWithTrailingComment,M=I.documentHeadEndMarkerPoint,T=c.transformDocumentBody(y,E,M),P=T.documentBody,C=T.documentEndPoint,q=T.documentTrailingComment,R=T.documentHeadTrailingComment,j=S(R);return q&&E.comments.push(q),e.createDocument(n.createPosition(j.position.start,C),j,P,q)}r.transformDocument=d}}),et=F({"node_modules/yaml-unist-parser/lib/factories/flow-collection.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,E,I){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode("flowCollection",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),E),{children:I})}r.createFlowCollection=d}}),yn=F({"node_modules/yaml-unist-parser/lib/factories/flow-mapping.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=et();function c(h,d,y){return e.__assign(e.__assign({},n.createFlowCollection(h,d,y)),{type:"flowMapping"})}r.createFlowMapping=c}}),tt=F({"node_modules/yaml-unist-parser/lib/factories/flow-mapping-item.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign({},c.createNode("flowMappingItem",d)),n.createLeadingCommentAttachable()),{children:[y,E]})}r.createFlowMappingItem=h}}),je=F({"node_modules/yaml-unist-parser/lib/utils/extract-comments.js"(r){"use strict";D(),r.__esModule=!0;function e(n,c){for(var h=[],d=0,y=n;d=0;d--)if(h.test(n[d]))return d;return-1}r.findLastCharIndex=e}}),kn=F({"node_modules/yaml-unist-parser/lib/transforms/plain.js"(r){"use strict";D(),r.__esModule=!0;var e=Tn(),n=Cn();function c(h,d){var y=h.cstNode;return e.createPlain(d.transformRange({origStart:y.valueRange.origStart,origEnd:n.findLastCharIndex(d.text,y.valueRange.origEnd-1,/\S/)+1}),d.transformContent(h),y.strValue)}r.transformPlain=c}}),Pn=F({"node_modules/yaml-unist-parser/lib/factories/quote-double.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:"quoteDouble"})}r.createQuoteDouble=n}}),In=F({"node_modules/yaml-unist-parser/lib/factories/quote-value.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode("quoteValue",d)),y),n.createCommentAttachable()),{value:E})}r.createQuoteValue=h}}),at=F({"node_modules/yaml-unist-parser/lib/transforms/quote-value.js"(r){"use strict";D(),r.__esModule=!0;var e=In();function n(c,h){var d=c.cstNode;return e.createQuoteValue(h.transformRange(d.valueRange),h.transformContent(c),d.strValue)}r.transformAstQuoteValue=n}}),Rn=F({"node_modules/yaml-unist-parser/lib/transforms/quote-double.js"(r){"use strict";D(),r.__esModule=!0;var e=Pn(),n=at();function c(h,d){return e.createQuoteDouble(n.transformAstQuoteValue(h,d))}r.transformQuoteDouble=c}}),qn=F({"node_modules/yaml-unist-parser/lib/factories/quote-single.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:"quoteSingle"})}r.createQuoteSingle=n}}),Bn=F({"node_modules/yaml-unist-parser/lib/transforms/quote-single.js"(r){"use strict";D(),r.__esModule=!0;var e=qn(),n=at();function c(h,d){return e.createQuoteSingle(n.transformAstQuoteValue(h,d))}r.transformQuoteSingle=c}}),jn=F({"node_modules/yaml-unist-parser/lib/factories/sequence.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=Oe(),h=me();function d(y,E,I){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode("sequence",y)),c.createLeadingCommentAttachable()),n.createEndCommentAttachable()),E),{children:I})}r.createSequence=d}}),Yn=F({"node_modules/yaml-unist-parser/lib/factories/sequence-item.js"(r){"use strict";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode("sequenceItem",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),{children:E?[E]:[]})}r.createSequenceItem=d}}),Dn=F({"node_modules/yaml-unist-parser/lib/transforms/seq.js"(r){"use strict";D(),r.__esModule=!0;var e=Le(),n=jn(),c=Yn(),h=je(),d=Qe(),y=Ae();function E(I,S){var M=h.extractComments(I.cstNode.items,S),T=M.map(function(P,C){d.extractPropComments(P,S);var q=S.transformNode(I.items[C]);return c.createSequenceItem(e.createPosition(S.transformOffset(P.valueRange.origStart),q===null?S.transformOffset(P.valueRange.origStart+1):q.position.end),q)});return n.createSequence(e.createPosition(T[0].position.start,y.getLast(T).position.end),S.transformContent(I),T)}r.transformSeq=E}}),Fn=F({"node_modules/yaml-unist-parser/lib/transform.js"(r){"use strict";D(),r.__esModule=!0;var e=en(),n=on(),c=cn(),h=un(),d=mn(),y=vn(),E=Sn(),I=On(),S=Nn(),M=kn(),T=Rn(),P=Bn(),C=Dn();function q(R,j){if(R===null||R.type===void 0&&R.value===null)return null;switch(R.type){case"ALIAS":return e.transformAlias(R,j);case"BLOCK_FOLDED":return n.transformBlockFolded(R,j);case"BLOCK_LITERAL":return c.transformBlockLiteral(R,j);case"COMMENT":return h.transformComment(R,j);case"DIRECTIVE":return d.transformDirective(R,j);case"DOCUMENT":return y.transformDocument(R,j);case"FLOW_MAP":return E.transformFlowMap(R,j);case"FLOW_SEQ":return I.transformFlowSeq(R,j);case"MAP":return S.transformMap(R,j);case"PLAIN":return M.transformPlain(R,j);case"QUOTE_DOUBLE":return T.transformQuoteDouble(R,j);case"QUOTE_SINGLE":return P.transformQuoteSingle(R,j);case"SEQ":return C.transformSeq(R,j);default:throw new Error("Unexpected node type "+R.type)}}r.transformNode=q}}),Wn=F({"node_modules/yaml-unist-parser/lib/factories/error.js"(r){"use strict";D(),r.__esModule=!0;function e(n,c,h){var d=new SyntaxError(n);return d.name="YAMLSyntaxError",d.source=c,d.position=h,d}r.createError=e}}),Vn=F({"node_modules/yaml-unist-parser/lib/transforms/error.js"(r){"use strict";D(),r.__esModule=!0;var e=Wn();function n(c,h){var d=c.source.range||c.source.valueRange;return e.createError(c.message,h.text,h.transformRange(d))}r.transformError=n}}),Qn=F({"node_modules/yaml-unist-parser/lib/factories/point.js"(r){"use strict";D(),r.__esModule=!0;function e(n,c,h){return{offset:n,line:c,column:h}}r.createPoint=e}}),Un=F({"node_modules/yaml-unist-parser/lib/transforms/offset.js"(r){"use strict";D(),r.__esModule=!0;var e=Qn();function n(c,h){c<0?c=0:c>h.text.length&&(c=h.text.length);var d=h.locator.locationForIndex(c);return e.createPoint(c,d.line+1,d.column+1)}r.transformOffset=n}}),Kn=F({"node_modules/yaml-unist-parser/lib/transforms/range.js"(r){"use strict";D(),r.__esModule=!0;var e=Le();function n(c,h){return e.createPosition(h.transformOffset(c.origStart),h.transformOffset(c.origEnd))}r.transformRange=n}}),$n=F({"node_modules/yaml-unist-parser/lib/utils/add-orig-range.js"(r){"use strict";D(),r.__esModule=!0;var e=!0;function n(y){if(!y.setOrigRanges()){var E=function(I){if(h(I))return I.origStart=I.start,I.origEnd=I.end,e;if(d(I))return I.origOffset=I.offset,e};y.forEach(function(I){return c(I,E)})}}r.addOrigRange=n;function c(y,E){if(!(!y||typeof y!="object")&&E(y)!==e)for(var I=0,S=Object.keys(y);IM.offset}}}),Me=F({"node_modules/yaml/dist/PlainValue-ec8e588e.js"(r){"use strict";D();var e={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},n={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"},c="tag:yaml.org,2002:",h={MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"};function d(a){let t=[0],s=a.indexOf(` +`);for(;s!==-1;)s+=1,t.push(s),s=a.indexOf(` +`,s);return t}function y(a){let t,s;return typeof a=="string"?(t=d(a),s=a):(Array.isArray(a)&&(a=a[0]),a&&a.context&&(a.lineStarts||(a.lineStarts=d(a.context.src)),t=a.lineStarts,s=a.context.src)),{lineStarts:t,src:s}}function E(a,t){if(typeof a!="number"||a<0)return null;let{lineStarts:s,src:i}=y(t);if(!s||!i||a>i.length)return null;for(let g=0;g=1)||a>s.length)return null;let f=s[a-1],g=s[a];for(;g&&g>f&&i[g-1]===` +`;)--g;return i.slice(f,g)}function S(a,t){let{start:s,end:i}=a,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:80,g=I(s.line,t);if(!g)return null;let{col:u}=s;if(g.length>f)if(u<=f-10)g=g.substr(0,f-1)+"\u2026";else{let $=Math.round(f/2);g.length>u+$&&(g=g.substr(0,u+$-1)+"\u2026"),u-=g.length-f,g="\u2026"+g.substr(1-f)}let p=1,L="";i&&(i.line===s.line&&u+(i.col-s.col)<=f+1?p=i.col-s.col:(p=Math.min(g.length+1,f)-u,L="\u2026"));let k=u>1?" ".repeat(u-1):"",B="^".repeat(p);return"".concat(g,` +`).concat(k).concat(B).concat(L)}var M=class{static copy(a){return new M(a.start,a.end)}constructor(a,t){this.start=a,this.end=t||a}isEmpty(){return typeof this.start!="number"||!this.end||this.end<=this.start}setOrigRange(a,t){let{start:s,end:i}=this;if(a.length===0||i<=a[0])return this.origStart=s,this.origEnd=i,t;let f=t;for(;fs);)++f;this.origStart=s+f;let g=f;for(;f=i);)++f;return this.origEnd=i+f,g}},T=class{static addStringTerminator(a,t,s){if(s[s.length-1]===` +`)return s;let i=T.endOfWhiteSpace(a,t);return i>=a.length||a[i]===` +`?s+` +`:s}static atDocumentBoundary(a,t,s){let i=a[t];if(!i)return!0;let f=a[t-1];if(f&&f!==` +`)return!1;if(s){if(i!==s)return!1}else if(i!==e.DIRECTIVES_END&&i!==e.DOCUMENT_END)return!1;let g=a[t+1],u=a[t+2];if(g!==i||u!==i)return!1;let p=a[t+3];return!p||p===` +`||p===" "||p===" "}static endOfIdentifier(a,t){let s=a[t],i=s==="<",f=i?[` +`," "," ",">"]:[` +`," "," ","[","]","{","}",","];for(;s&&f.indexOf(s)===-1;)s=a[t+=1];return i&&s===">"&&(t+=1),t}static endOfIndent(a,t){let s=a[t];for(;s===" ";)s=a[t+=1];return t}static endOfLine(a,t){let s=a[t];for(;s&&s!==` +`;)s=a[t+=1];return t}static endOfWhiteSpace(a,t){let s=a[t];for(;s===" "||s===" ";)s=a[t+=1];return t}static startOfLine(a,t){let s=a[t-1];if(s===` +`)return t;for(;s&&s!==` +`;)s=a[t-=1];return t+1}static endOfBlockIndent(a,t,s){let i=T.endOfIndent(a,s);if(i>s+t)return i;{let f=T.endOfWhiteSpace(a,i),g=a[f];if(!g||g===` +`)return f}return null}static atBlank(a,t,s){let i=a[t];return i===` +`||i===" "||i===" "||s&&!i}static nextNodeIsIndented(a,t,s){return!a||t<0?!1:t>0?!0:s&&a==="-"}static normalizeOffset(a,t){let s=a[t];return s?s!==` +`&&a[t-1]===` +`?t-1:T.endOfWhiteSpace(a,t):t}static foldNewline(a,t,s){let i=0,f=!1,g="",u=a[t+1];for(;u===" "||u===" "||u===` +`;){switch(u){case` +`:i=0,t+=1,g+=` +`;break;case" ":i<=s&&(f=!0),t=T.endOfWhiteSpace(a,t+2)-1;break;case" ":i+=1,t+=1;break}u=a[t+1]}return g||(g=" "),u&&i<=s&&(f=!0),{fold:g,offset:t,error:f}}constructor(a,t,s){Object.defineProperty(this,"context",{value:s||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=t||[],this.type=a,this.value=null}getPropValue(a,t,s){if(!this.context)return null;let{src:i}=this.context,f=this.props[a];return f&&i[f.start]===t?i.slice(f.start+(s?1:0),f.end):null}get anchor(){for(let a=0;a0?a.join(` +`):null}commentHasRequiredWhitespace(a){let{src:t}=this.context;if(this.header&&a===this.header.end||!this.valueRange)return!1;let{end:s}=this.valueRange;return a!==s||T.atBlank(t,s-1)}get hasComment(){if(this.context){let{src:a}=this.context;for(let t=0;ts.setOrigRange(a,t)),t}toString(){let{context:{src:a},range:t,value:s}=this;if(s!=null)return s;let i=a.slice(t.start,t.end);return T.addStringTerminator(a,t.end,i)}},P=class extends Error{constructor(a,t,s){if(!s||!(t instanceof T))throw new Error("Invalid arguments for new ".concat(a));super(),this.name=a,this.message=s,this.source=t}makePretty(){if(!this.source)return;this.nodeType=this.source.type;let a=this.source.context&&this.source.context.root;if(typeof this.offset=="number"){this.range=new M(this.offset,this.offset+1);let t=a&&E(this.offset,a);if(t){let s={line:t.line,col:t.col+1};this.linePos={start:t,end:s}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){let{line:t,col:s}=this.linePos.start;this.message+=" at line ".concat(t,", column ").concat(s);let i=a&&S(this.linePos,a);i&&(this.message+=`: + +`.concat(i,` +`))}delete this.source}},C=class extends P{constructor(a,t){super("YAMLReferenceError",a,t)}},q=class extends P{constructor(a,t){super("YAMLSemanticError",a,t)}},R=class extends P{constructor(a,t){super("YAMLSyntaxError",a,t)}},j=class extends P{constructor(a,t){super("YAMLWarning",a,t)}};function K(a,t,s){return t in a?Object.defineProperty(a,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[t]=s,a}var m=class extends T{static endOfLine(a,t,s){let i=a[t],f=t;for(;i&&i!==` +`&&!(s&&(i==="["||i==="]"||i==="{"||i==="}"||i===","));){let g=a[f+1];if(i===":"&&(!g||g===` +`||g===" "||g===" "||s&&g===",")||(i===" "||i===" ")&&g==="#")break;f+=1,i=g}return f}get strValue(){if(!this.valueRange||!this.context)return null;let{start:a,end:t}=this.valueRange,{src:s}=this.context,i=s[t-1];for(;aL?s.slice(L,u+1):p)}else f+=p}let g=s[a];switch(g){case" ":{let u="Plain value cannot start with a tab character";return{errors:[new q(this,u)],str:f}}case"@":case"`":{let u="Plain value cannot start with reserved character ".concat(g);return{errors:[new q(this,u)],str:f}}default:return f}}parseBlockValue(a){let{indent:t,inFlow:s,src:i}=this.context,f=a,g=a;for(let u=i[f];u===` +`&&!T.atDocumentBoundary(i,f+1);u=i[f]){let p=T.endOfBlockIndent(i,t,f+1);if(p===null||i[p]==="#")break;i[p]===` +`?f=p:(g=m.endOfLine(i,p,s),f=g)}return this.valueRange.isEmpty()&&(this.valueRange.start=a),this.valueRange.end=g,g}parse(a,t){this.context=a;let{inFlow:s,src:i}=a,f=t,g=i[f];return g&&g!=="#"&&g!==` +`&&(f=m.endOfLine(i,t,s)),this.valueRange=new M(t,f),f=T.endOfWhiteSpace(i,f),f=this.parseComment(f),(!this.hasComment||this.valueRange.isEmpty())&&(f=this.parseBlockValue(f)),f}};r.Char=e,r.Node=T,r.PlainValue=m,r.Range=M,r.Type=n,r.YAMLError=P,r.YAMLReferenceError=C,r.YAMLSemanticError=q,r.YAMLSyntaxError=R,r.YAMLWarning=j,r._defineProperty=K,r.defaultTagPrefix=c,r.defaultTags=h}}),Gn=F({"node_modules/yaml/dist/parse-cst.js"(r){"use strict";D();var e=Me(),n=class extends e.Node{constructor(){super(e.Type.BLANK_LINE)}get includesTrailingLines(){return!0}parse(m,a){return this.context=m,this.range=new e.Range(a,a+1),a+1}},c=class extends e.Node{constructor(m,a){super(m,a),this.node=null}get includesTrailingLines(){return!!this.node&&this.node.includesTrailingLines}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,{atLineStart:i,lineStart:f}=m;!i&&this.type===e.Type.SEQ_ITEM&&(this.error=new e.YAMLSemanticError(this,"Sequence items must not have preceding content on the same line"));let g=i?a-f:m.indent,u=e.Node.endOfWhiteSpace(s,a+1),p=s[u],L=p==="#",k=[],B=null;for(;p===` +`||p==="#";){if(p==="#"){let Q=e.Node.endOfLine(s,u+1);k.push(new e.Range(u,Q)),u=Q}else{i=!0,f=u+1;let Q=e.Node.endOfWhiteSpace(s,f);s[Q]===` +`&&k.length===0&&(B=new n,f=B.parse({src:s},f)),u=e.Node.endOfIndent(s,f)}p=s[u]}if(e.Node.nextNodeIsIndented(p,u-(f+g),this.type!==e.Type.SEQ_ITEM)?this.node=t({atLineStart:i,inCollection:!1,indent:g,lineStart:f,parent:this},u):p&&f>a+1&&(u=f-1),this.node){if(B){let Q=m.parent.items||m.parent.contents;Q&&Q.push(B)}k.length&&Array.prototype.push.apply(this.props,k),u=this.node.range.end}else if(L){let Q=k[0];this.props.push(Q),u=Q.end}else u=e.Node.endOfLine(s,a+1);let $=this.node?this.node.valueRange.end:u;return this.valueRange=new e.Range(a,$),u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.node?this.node.setOrigRanges(m,a):a}toString(){let{context:{src:m},node:a,range:t,value:s}=this;if(s!=null)return s;let i=a?m.slice(t.start,a.range.start)+String(a):m.slice(t.start,t.end);return e.Node.addStringTerminator(m,t.end,i)}},h=class extends e.Node{constructor(){super(e.Type.COMMENT)}parse(m,a){this.context=m;let t=this.parseComment(a);return this.range=new e.Range(a,t),t}};function d(m){let a=m;for(;a instanceof c;)a=a.node;if(!(a instanceof y))return null;let t=a.items.length,s=-1;for(let g=t-1;g>=0;--g){let u=a.items[g];if(u.type===e.Type.COMMENT){let{indent:p,lineStart:L}=u.context;if(p>0&&u.range.start>=L+p)break;s=g}else if(u.type===e.Type.BLANK_LINE)s=g;else break}if(s===-1)return null;let i=a.items.splice(s,t-s),f=i[0].range.start;for(;a.range.end=f,a.valueRange&&a.valueRange.end>f&&(a.valueRange.end=f),a!==m;)a=a.context.parent;return i}var y=class extends e.Node{static nextContentHasIndent(m,a,t){let s=e.Node.endOfLine(m,a)+1;a=e.Node.endOfWhiteSpace(m,s);let i=m[a];return i?a>=s+t?!0:i!=="#"&&i!==` +`?!1:y.nextContentHasIndent(m,a,t):!1}constructor(m){super(m.type===e.Type.SEQ_ITEM?e.Type.SEQ:e.Type.MAP);for(let t=m.props.length-1;t>=0;--t)if(m.props[t].start0}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,i=e.Node.startOfLine(s,a),f=this.items[0];f.context.parent=this,this.valueRange=e.Range.copy(f.valueRange);let g=f.range.start-f.context.lineStart,u=a;u=e.Node.normalizeOffset(s,u);let p=s[u],L=e.Node.endOfWhiteSpace(s,i)===u,k=!1;for(;p;){for(;p===` +`||p==="#";){if(L&&p===` +`&&!k){let Q=new n;if(u=Q.parse({src:s},u),this.valueRange.end=u,u>=s.length){p=null;break}this.items.push(Q),u-=1}else if(p==="#"){if(u=s.length){p=null;break}}if(i=u+1,u=e.Node.endOfIndent(s,i),e.Node.atBlank(s,u)){let Q=e.Node.endOfWhiteSpace(s,u),z=s[Q];(!z||z===` +`||z==="#")&&(u=Q)}p=s[u],L=!0}if(!p)break;if(u!==i+g&&(L||p!==":")){if(ua&&(u=i);break}else if(!this.error){let Q="All collection items must start at the same column";this.error=new e.YAMLSyntaxError(this,Q)}}if(f.type===e.Type.SEQ_ITEM){if(p!=="-"){i>a&&(u=i);break}}else if(p==="-"&&!this.error){let Q=s[u+1];if(!Q||Q===` +`||Q===" "||Q===" "){let z="A collection cannot be both a mapping and a sequence";this.error=new e.YAMLSyntaxError(this,z)}}let B=t({atLineStart:L,inCollection:!0,indent:g,lineStart:i,parent:this},u);if(!B)return u;if(this.items.push(B),this.valueRange.end=B.valueRange.end,u=e.Node.normalizeOffset(s,B.range.end),p=s[u],L=!1,k=B.includesTrailingLines,p){let Q=u-1,z=s[Q];for(;z===" "||z===" ";)z=s[--Q];z===` +`&&(i=Q+1,L=!0)}let $=d(B);$&&Array.prototype.push.apply(this.items,$)}return u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.items.forEach(t=>{a=t.setOrigRanges(m,a)}),a}toString(){let{context:{src:m},items:a,range:t,value:s}=this;if(s!=null)return s;let i=m.slice(t.start,a[0].range.start)+String(a[0]);for(let f=1;f0&&(this.contents=this.directives,this.directives=[]),i}return a[i]?(this.directivesEndMarker=new e.Range(i,i+3),i+3):(s?this.error=new e.YAMLSemanticError(this,"Missing directives-end indicator line"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),i)}parseContents(m){let{parseNode:a,src:t}=this.context;this.contents||(this.contents=[]);let s=m;for(;t[s-1]==="-";)s-=1;let i=e.Node.endOfWhiteSpace(t,m),f=s===m;for(this.valueRange=new e.Range(i);!e.Node.atDocumentBoundary(t,i,e.Char.DOCUMENT_END);){switch(t[i]){case` +`:if(f){let g=new n;i=g.parse({src:t},i),i{a=t.setOrigRanges(m,a)}),this.directivesEndMarker&&(a=this.directivesEndMarker.setOrigRange(m,a)),this.contents.forEach(t=>{a=t.setOrigRanges(m,a)}),this.documentEndMarker&&(a=this.documentEndMarker.setOrigRange(m,a)),a}toString(){let{contents:m,directives:a,value:t}=this;if(t!=null)return t;let s=a.join("");return m.length>0&&((a.length>0||m[0].type===e.Type.COMMENT)&&(s+=`--- +`),s+=m.join("")),s[s.length-1]!==` +`&&(s+=` +`),s}},S=class extends e.Node{parse(m,a){this.context=m;let{src:t}=m,s=e.Node.endOfIdentifier(t,a+1);return this.valueRange=new e.Range(a+1,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}},M={CLIP:"CLIP",KEEP:"KEEP",STRIP:"STRIP"},T=class extends e.Node{constructor(m,a){super(m,a),this.blockIndent=null,this.chomping=M.CLIP,this.header=null}get includesTrailingLines(){return this.chomping===M.KEEP}get strValue(){if(!this.valueRange||!this.context)return null;let{start:m,end:a}=this.valueRange,{indent:t,src:s}=this.context;if(this.valueRange.isEmpty())return"";let i=null,f=s[a-1];for(;f===` +`||f===" "||f===" ";){if(a-=1,a<=m){if(this.chomping===M.KEEP)break;return""}f===` +`&&(i=a),f=s[a-1]}let g=a+1;i&&(this.chomping===M.KEEP?(g=i,a=this.valueRange.end):a=i);let u=t+this.blockIndent,p=this.type===e.Type.BLOCK_FOLDED,L=!0,k="",B="",$=!1;for(let Q=m;Qg&&(g=k);t[p]===` +`?i=p:i=f=e.Node.endOfLine(t,p)}return this.chomping!==M.KEEP&&(i=t[f]?f+1:f),this.valueRange=new e.Range(m+1,i),i}parse(m,a){this.context=m;let{src:t}=m,s=this.parseBlockHeader(a);return s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s=this.parseBlockValue(s),s}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.header?this.header.setOrigRange(m,a):a}},P=class extends e.Node{constructor(m,a){super(m,a),this.items=null}prevNodeIsJsonLike(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.items.length,a=this.items[m-1];return!!a&&(a.jsonLike||a.type===e.Type.COMMENT&&this.prevNodeIsJsonLike(m-1))}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,{indent:i,lineStart:f}=m,g=s[a];this.items=[{char:g,offset:a}];let u=e.Node.endOfWhiteSpace(s,a+1);for(g=s[u];g&&g!=="]"&&g!=="}";){switch(g){case` +`:{f=u+1;let p=e.Node.endOfWhiteSpace(s,f);if(s[p]===` +`){let L=new n;f=L.parse({src:s},f),this.items.push(L)}if(u=e.Node.endOfIndent(s,f),u<=f+i&&(g=s[u],u{if(t instanceof e.Node)a=t.setOrigRanges(m,a);else if(m.length===0)t.origOffset=t.offset;else{let s=a;for(;st.offset);)++s;t.origOffset=t.offset+s,a=s}}),a}toString(){let{context:{src:m},items:a,range:t,value:s}=this;if(s!=null)return s;let i=a.filter(u=>u instanceof e.Node),f="",g=t.start;return i.forEach(u=>{let p=m.slice(g,u.range.start);g=u.range.end,f+=p+String(u),f[f.length-1]===` +`&&m[g-1]!==` +`&&m[g]===` +`&&(g+=1)}),f+=m.slice(g,t.end),e.Node.addStringTerminator(m,t.end,f)}},C=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t&&t!=='"';)a+=t==="\\"?2:1,t=m[a];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:s,src:i}=this.context;i[t-1]!=='"'&&m.push(new e.YAMLSyntaxError(this,'Missing closing "quote'));let f="";for(let g=a+1;gp?i.slice(p,g+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parseCharCode(m,a,t){let{src:s}=this.context,i=s.substr(m,a),g=i.length===a&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;return isNaN(g)?(t.push(new e.YAMLSyntaxError(this,"Invalid escape sequence ".concat(s.substr(m-2,a+2)))),s.substr(m-2,a+2)):String.fromCodePoint(g)}parse(m,a){this.context=m;let{src:t}=m,s=C.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}},q=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t;)if(t==="'"){if(m[a+1]!=="'")break;t=m[a+=2]}else t=m[a+=1];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:s,src:i}=this.context;i[t-1]!=="'"&&m.push(new e.YAMLSyntaxError(this,"Missing closing 'quote"));let f="";for(let g=a+1;gp?i.slice(p,g+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parse(m,a){this.context=m;let{src:t}=m,s=q.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}};function R(m,a){switch(m){case e.Type.ALIAS:return new S(m,a);case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return new T(m,a);case e.Type.FLOW_MAP:case e.Type.FLOW_SEQ:return new P(m,a);case e.Type.MAP_KEY:case e.Type.MAP_VALUE:case e.Type.SEQ_ITEM:return new c(m,a);case e.Type.COMMENT:case e.Type.PLAIN:return new e.PlainValue(m,a);case e.Type.QUOTE_DOUBLE:return new C(m,a);case e.Type.QUOTE_SINGLE:return new q(m,a);default:return null}}var j=class{static parseType(m,a,t){switch(m[a]){case"*":return e.Type.ALIAS;case">":return e.Type.BLOCK_FOLDED;case"|":return e.Type.BLOCK_LITERAL;case"{":return e.Type.FLOW_MAP;case"[":return e.Type.FLOW_SEQ;case"?":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_KEY:e.Type.PLAIN;case":":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_VALUE:e.Type.PLAIN;case"-":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.SEQ_ITEM:e.Type.PLAIN;case'"':return e.Type.QUOTE_DOUBLE;case"'":return e.Type.QUOTE_SINGLE;default:return e.Type.PLAIN}}constructor(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{atLineStart:a,inCollection:t,inFlow:s,indent:i,lineStart:f,parent:g}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e._defineProperty(this,"parseNode",(u,p)=>{if(e.Node.atDocumentBoundary(this.src,p))return null;let L=new j(this,u),{props:k,type:B,valueStart:$}=L.parseProps(p),Q=R(B,k),z=Q.parse(L,$);if(Q.range=new e.Range(p,z),z<=p&&(Q.error=new Error("Node#parse consumed no characters"),Q.error.parseEnd=z,Q.error.source=Q,Q.range.end=p+1),L.nodeStartsCollection(Q)){!Q.error&&!L.atLineStart&&L.parent.type===e.Type.DOCUMENT&&(Q.error=new e.YAMLSyntaxError(Q,"Block collection must not have preceding content here (e.g. directives-end indicator)"));let ie=new y(Q);return z=ie.parse(new j(L),z),ie.range=new e.Range(p,z),ie}return Q}),this.atLineStart=a!=null?a:m.atLineStart||!1,this.inCollection=t!=null?t:m.inCollection||!1,this.inFlow=s!=null?s:m.inFlow||!1,this.indent=i!=null?i:m.indent,this.lineStart=f!=null?f:m.lineStart,this.parent=g!=null?g:m.parent||{},this.root=m.root,this.src=m.src}nodeStartsCollection(m){let{inCollection:a,inFlow:t,src:s}=this;if(a||t)return!1;if(m instanceof c)return!0;let i=m.range.end;return s[i]===` +`||s[i-1]===` +`?!1:(i=e.Node.endOfWhiteSpace(s,i),s[i]===":")}parseProps(m){let{inFlow:a,parent:t,src:s}=this,i=[],f=!1;m=this.atLineStart?e.Node.endOfIndent(s,m):e.Node.endOfWhiteSpace(s,m);let g=s[m];for(;g===e.Char.ANCHOR||g===e.Char.COMMENT||g===e.Char.TAG||g===` +`;){if(g===` +`){let p=m,L;do L=p+1,p=e.Node.endOfIndent(s,L);while(s[p]===` +`);let k=p-(L+this.indent),B=t.type===e.Type.SEQ_ITEM&&t.context.atLineStart;if(s[p]!=="#"&&!e.Node.nextNodeIsIndented(s[p],k,!B))break;this.atLineStart=!0,this.lineStart=L,f=!1,m=p}else if(g===e.Char.COMMENT){let p=e.Node.endOfLine(s,m+1);i.push(new e.Range(m,p)),m=p}else{let p=e.Node.endOfIdentifier(s,m+1);g===e.Char.TAG&&s[p]===","&&/^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(s.slice(m+1,p+13))&&(p=e.Node.endOfIdentifier(s,p+5)),i.push(new e.Range(m,p)),f=!0,m=e.Node.endOfWhiteSpace(s,p)}g=s[m]}f&&g===":"&&e.Node.atBlank(s,m+1,!0)&&(m-=1);let u=j.parseType(s,m,a);return{props:i,type:u,valueStart:m}}};function K(m){let a=[];m.indexOf("\r")!==-1&&(m=m.replace(/\r\n?/g,(i,f)=>(i.length>1&&a.push(f),` +`)));let t=[],s=0;do{let i=new I,f=new j({src:m});s=i.parse(f,s),t.push(i)}while(s{if(a.length===0)return!1;for(let f=1;ft.join(`... +`),t}r.parse=K}}),ke=F({"node_modules/yaml/dist/resolveSeq-d03cb037.js"(r){"use strict";D();var e=Me();function n(o,l,_){if(!_)return o;let v=_.replace(/[\s\S]^/gm,"$&".concat(l,"#"));return"#".concat(v,` +`).concat(l).concat(o)}function c(o,l,_){return _?_.indexOf(` +`)===-1?"".concat(o," #").concat(_):"".concat(o,` +`)+_.replace(/^/gm,"".concat(l||"","#")):o}var h=class{};function d(o,l,_){if(Array.isArray(o))return o.map((v,b)=>d(v,String(b),_));if(o&&typeof o.toJSON=="function"){let v=_&&_.anchors&&_.anchors.get(o);v&&(_.onCreate=w=>{v.res=w,delete _.onCreate});let b=o.toJSON(l,_);return v&&_.onCreate&&_.onCreate(b),b}return(!_||!_.keep)&&typeof o=="bigint"?Number(o):o}var y=class extends h{constructor(o){super(),this.value=o}toJSON(o,l){return l&&l.keep?this.value:d(this.value,o,l)}toString(){return String(this.value)}};function E(o,l,_){let v=_;for(let b=l.length-1;b>=0;--b){let w=l[b];if(Number.isInteger(w)&&w>=0){let A=[];A[w]=v,v=A}else{let A={};Object.defineProperty(A,w,{value:v,writable:!0,enumerable:!0,configurable:!0}),v=A}}return o.createNode(v,!1)}var I=o=>o==null||typeof o=="object"&&o[Symbol.iterator]().next().done,S=class extends h{constructor(o){super(),e._defineProperty(this,"items",[]),this.schema=o}addIn(o,l){if(I(o))this.add(l);else{let[_,...v]=o,b=this.get(_,!0);if(b instanceof S)b.addIn(v,l);else if(b===void 0&&this.schema)this.set(_,E(this.schema,v,l));else throw new Error("Expected YAML collection at ".concat(_,". Remaining path: ").concat(v))}}deleteIn(o){let[l,..._]=o;if(_.length===0)return this.delete(l);let v=this.get(l,!0);if(v instanceof S)return v.deleteIn(_);throw new Error("Expected YAML collection at ".concat(l,". Remaining path: ").concat(_))}getIn(o,l){let[_,...v]=o,b=this.get(_,!0);return v.length===0?!l&&b instanceof y?b.value:b:b instanceof S?b.getIn(v,l):void 0}hasAllNullValues(){return this.items.every(o=>{if(!o||o.type!=="PAIR")return!1;let l=o.value;return l==null||l instanceof y&&l.value==null&&!l.commentBefore&&!l.comment&&!l.tag})}hasIn(o){let[l,..._]=o;if(_.length===0)return this.has(l);let v=this.get(l,!0);return v instanceof S?v.hasIn(_):!1}setIn(o,l){let[_,...v]=o;if(v.length===0)this.set(_,l);else{let b=this.get(_,!0);if(b instanceof S)b.setIn(v,l);else if(b===void 0&&this.schema)this.set(_,E(this.schema,v,l));else throw new Error("Expected YAML collection at ".concat(_,". Remaining path: ").concat(v))}}toJSON(){return null}toString(o,l,_,v){let{blockItem:b,flowChars:w,isMap:A,itemIndent:N}=l,{indent:Y,indentStep:W,stringify:U}=o,H=this.type===e.Type.FLOW_MAP||this.type===e.Type.FLOW_SEQ||o.inFlow;H&&(N+=W);let oe=A&&this.hasAllNullValues();o=Object.assign({},o,{allNullValues:oe,indent:N,inFlow:H,type:null});let le=!1,Z=!1,ee=this.items.reduce((de,re,he)=>{let ce;re&&(!le&&re.spaceBefore&&de.push({type:"comment",str:""}),re.commentBefore&&re.commentBefore.match(/^.*$/gm).forEach(Ie=>{de.push({type:"comment",str:"#".concat(Ie)})}),re.comment&&(ce=re.comment),H&&(!le&&re.spaceBefore||re.commentBefore||re.comment||re.key&&(re.key.commentBefore||re.key.comment)||re.value&&(re.value.commentBefore||re.value.comment))&&(Z=!0)),le=!1;let fe=U(re,o,()=>ce=null,()=>le=!0);return H&&!Z&&fe.includes(` +`)&&(Z=!0),H&&hece.str);if(Z||he.reduce((ce,fe)=>ce+fe.length+2,2)>S.maxFlowStringSingleLineLength){X=de;for(let ce of he)X+=ce?` +`.concat(W).concat(Y).concat(ce):` +`;X+=` +`.concat(Y).concat(re)}else X="".concat(de," ").concat(he.join(" ")," ").concat(re)}else{let de=ee.map(b);X=de.shift();for(let re of de)X+=re?` +`.concat(Y).concat(re):` +`}return this.comment?(X+=` +`+this.comment.replace(/^/gm,"".concat(Y,"#")),_&&_()):le&&v&&v(),X}};e._defineProperty(S,"maxFlowStringSingleLineLength",60);function M(o){let l=o instanceof y?o.value:o;return l&&typeof l=="string"&&(l=Number(l)),Number.isInteger(l)&&l>=0?l:null}var T=class extends S{add(o){this.items.push(o)}delete(o){let l=M(o);return typeof l!="number"?!1:this.items.splice(l,1).length>0}get(o,l){let _=M(o);if(typeof _!="number")return;let v=this.items[_];return!l&&v instanceof y?v.value:v}has(o){let l=M(o);return typeof l=="number"&&lv.type==="comment"?v.str:"- ".concat(v.str),flowChars:{start:"[",end:"]"},isMap:!1,itemIndent:(o.indent||"")+" "},l,_):JSON.stringify(this)}},P=(o,l,_)=>l===null?"":typeof l!="object"?String(l):o instanceof h&&_&&_.doc?o.toString({anchors:Object.create(null),doc:_.doc,indent:"",indentStep:_.indentStep,inFlow:!0,inStringifyKey:!0,stringify:_.stringify}):JSON.stringify(l),C=class extends h{constructor(o){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;super(),this.key=o,this.value=l,this.type=C.Type.PAIR}get commentBefore(){return this.key instanceof h?this.key.commentBefore:void 0}set commentBefore(o){if(this.key==null&&(this.key=new y(null)),this.key instanceof h)this.key.commentBefore=o;else{let l="Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.";throw new Error(l)}}addToJSMap(o,l){let _=d(this.key,"",o);if(l instanceof Map){let v=d(this.value,_,o);l.set(_,v)}else if(l instanceof Set)l.add(_);else{let v=P(this.key,_,o),b=d(this.value,v,o);v in l?Object.defineProperty(l,v,{value:b,writable:!0,enumerable:!0,configurable:!0}):l[v]=b}return l}toJSON(o,l){let _=l&&l.mapAsMap?new Map:{};return this.addToJSMap(l,_)}toString(o,l,_){if(!o||!o.doc)return JSON.stringify(this);let{indent:v,indentSeq:b,simpleKeys:w}=o.doc.options,{key:A,value:N}=this,Y=A instanceof h&&A.comment;if(w){if(Y)throw new Error("With simple keys, key nodes cannot have comments");if(A instanceof S){let ce="With simple keys, collection cannot be used as a key value";throw new Error(ce)}}let W=!w&&(!A||Y||(A instanceof h?A instanceof S||A.type===e.Type.BLOCK_FOLDED||A.type===e.Type.BLOCK_LITERAL:typeof A=="object")),{doc:U,indent:H,indentStep:oe,stringify:le}=o;o=Object.assign({},o,{implicitKey:!W,indent:H+oe});let Z=!1,ee=le(A,o,()=>Y=null,()=>Z=!0);if(ee=c(ee,o.indent,Y),!W&&ee.length>1024){if(w)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");W=!0}if(o.allNullValues&&!w)return this.comment?(ee=c(ee,o.indent,this.comment),l&&l()):Z&&!Y&&_&&_(),o.inFlow&&!W?ee:"? ".concat(ee);ee=W?"? ".concat(ee,` +`).concat(H,":"):"".concat(ee,":"),this.comment&&(ee=c(ee,o.indent,this.comment),l&&l());let X="",de=null;if(N instanceof h){if(N.spaceBefore&&(X=` +`),N.commentBefore){let ce=N.commentBefore.replace(/^/gm,"".concat(o.indent,"#"));X+=` +`.concat(ce)}de=N.comment}else N&&typeof N=="object"&&(N=U.schema.createNode(N,!0));o.implicitKey=!1,!W&&!this.comment&&N instanceof y&&(o.indentAtStart=ee.length+1),Z=!1,!b&&v>=2&&!o.inFlow&&!W&&N instanceof T&&N.type!==e.Type.FLOW_SEQ&&!N.tag&&!U.anchors.getName(N)&&(o.indent=o.indent.substr(2));let re=le(N,o,()=>de=null,()=>Z=!0),he=" ";return X||this.comment?he="".concat(X,` +`).concat(o.indent):!W&&N instanceof S?(!(re[0]==="["||re[0]==="{")||re.includes(` +`))&&(he=` +`.concat(o.indent)):re[0]===` +`&&(he=""),Z&&!de&&_&&_(),c(ee+he+re,o.indent,de)}};e._defineProperty(C,"Type",{PAIR:"PAIR",MERGE_PAIR:"MERGE_PAIR"});var q=(o,l)=>{if(o instanceof R){let _=l.get(o.source);return _.count*_.aliasCount}else if(o instanceof S){let _=0;for(let v of o.items){let b=q(v,l);b>_&&(_=b)}return _}else if(o instanceof C){let _=q(o.key,l),v=q(o.value,l);return Math.max(_,v)}return 1},R=class extends h{static stringify(o,l){let{range:_,source:v}=o,{anchors:b,doc:w,implicitKey:A,inStringifyKey:N}=l,Y=Object.keys(b).find(U=>b[U]===v);if(!Y&&N&&(Y=w.anchors.getName(v)||w.anchors.newName()),Y)return"*".concat(Y).concat(A?" ":"");let W=w.anchors.getName(v)?"Alias node must be after source node":"Source node not found for alias node";throw new Error("".concat(W," [").concat(_,"]"))}constructor(o){super(),this.source=o,this.type=e.Type.ALIAS}set tag(o){throw new Error("Alias nodes cannot have tags")}toJSON(o,l){if(!l)return d(this.source,o,l);let{anchors:_,maxAliasCount:v}=l,b=_.get(this.source);if(!b||b.res===void 0){let w="This should not happen: Alias anchor was not resolved?";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,w):new ReferenceError(w)}if(v>=0&&(b.count+=1,b.aliasCount===0&&(b.aliasCount=q(this.source,_)),b.count*b.aliasCount>v)){let w="Excessive alias count indicates a resource exhaustion attack";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,w):new ReferenceError(w)}return b.res}toString(o){return R.stringify(this,o)}};e._defineProperty(R,"default",!0);function j(o,l){let _=l instanceof y?l.value:l;for(let v of o)if(v instanceof C&&(v.key===l||v.key===_||v.key&&v.key.value===_))return v}var K=class extends S{add(o,l){o?o instanceof C||(o=new C(o.key||o,o.value)):o=new C(o);let _=j(this.items,o.key),v=this.schema&&this.schema.sortMapEntries;if(_)if(l)_.value=o.value;else throw new Error("Key ".concat(o.key," already set"));else if(v){let b=this.items.findIndex(w=>v(o,w)<0);b===-1?this.items.push(o):this.items.splice(b,0,o)}else this.items.push(o)}delete(o){let l=j(this.items,o);return l?this.items.splice(this.items.indexOf(l),1).length>0:!1}get(o,l){let _=j(this.items,o),v=_&&_.value;return!l&&v instanceof y?v.value:v}has(o){return!!j(this.items,o)}set(o,l){this.add(new C(o,l),!0)}toJSON(o,l,_){let v=_?new _:l&&l.mapAsMap?new Map:{};l&&l.onCreate&&l.onCreate(v);for(let b of this.items)b.addToJSMap(l,v);return v}toString(o,l,_){if(!o)return JSON.stringify(this);for(let v of this.items)if(!(v instanceof C))throw new Error("Map items must all be pairs; found ".concat(JSON.stringify(v)," instead"));return super.toString(o,{blockItem:v=>v.str,flowChars:{start:"{",end:"}"},isMap:!0,itemIndent:o.indent||""},l,_)}},m="<<",a=class extends C{constructor(o){if(o instanceof C){let l=o.value;l instanceof T||(l=new T,l.items.push(o.value),l.range=o.value.range),super(o.key,l),this.range=o.range}else super(new y(m),new T);this.type=C.Type.MERGE_PAIR}addToJSMap(o,l){for(let{source:_}of this.value.items){if(!(_ instanceof K))throw new Error("Merge sources must be maps");let v=_.toJSON(null,o,Map);for(let[b,w]of v)l instanceof Map?l.has(b)||l.set(b,w):l instanceof Set?l.add(b):Object.prototype.hasOwnProperty.call(l,b)||Object.defineProperty(l,b,{value:w,writable:!0,enumerable:!0,configurable:!0})}return l}toString(o,l){let _=this.value;if(_.items.length>1)return super.toString(o,l);this.value=_.items[0];let v=super.toString(o,l);return this.value=_,v}},t={defaultType:e.Type.BLOCK_LITERAL,lineWidth:76},s={trueStr:"true",falseStr:"false"},i={asBigInt:!1},f={nullStr:"null"},g={defaultType:e.Type.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function u(o,l,_){for(let{format:v,test:b,resolve:w}of l)if(b){let A=o.match(b);if(A){let N=w.apply(null,A);return N instanceof y||(N=new y(N)),v&&(N.format=v),N}}return _&&(o=_(o)),new y(o)}var p="flow",L="block",k="quoted",B=(o,l)=>{let _=o[l+1];for(;_===" "||_===" ";){do _=o[l+=1];while(_&&_!==` +`);_=o[l+1]}return l};function $(o,l,_,v){let{indentAtStart:b,lineWidth:w=80,minContentWidth:A=20,onFold:N,onOverflow:Y}=v;if(!w||w<0)return o;let W=Math.max(1+A,1+w-l.length);if(o.length<=W)return o;let U=[],H={},oe=w-l.length;typeof b=="number"&&(b>w-Math.max(2,A)?U.push(0):oe=w-b);let le,Z,ee=!1,X=-1,de=-1,re=-1;_===L&&(X=B(o,X),X!==-1&&(oe=X+W));for(let ce;ce=o[X+=1];){if(_===k&&ce==="\\"){switch(de=X,o[X+1]){case"x":X+=3;break;case"u":X+=5;break;case"U":X+=9;break;default:X+=1}re=X}if(ce===` +`)_===L&&(X=B(o,X)),oe=X+W,le=void 0;else{if(ce===" "&&Z&&Z!==" "&&Z!==` +`&&Z!==" "){let fe=o[X+1];fe&&fe!==" "&&fe!==` +`&&fe!==" "&&(le=X)}if(X>=oe)if(le)U.push(le),oe=le+W,le=void 0;else if(_===k){for(;Z===" "||Z===" ";)Z=ce,ce=o[X+=1],ee=!0;let fe=X>re+1?X-2:de-1;if(H[fe])return o;U.push(fe),H[fe]=!0,oe=fe+W,le=void 0}else ee=!0}Z=ce}if(ee&&Y&&Y(),U.length===0)return o;N&&N();let he=o.slice(0,U[0]);for(let ce=0;ce{let{indentAtStart:l}=o;return l?Object.assign({indentAtStart:l},g.fold):g.fold},z=o=>/^(%|---|\.\.\.)/m.test(o);function ie(o,l,_){if(!l||l<0)return!1;let v=l-_,b=o.length;if(b<=v)return!1;for(let w=0,A=0;wv)return!0;if(A=w+1,b-A<=v)return!1}return!0}function ue(o,l){let{implicitKey:_}=l,{jsonEncoding:v,minMultiLineLength:b}=g.doubleQuoted,w=JSON.stringify(o);if(v)return w;let A=l.indent||(z(o)?" ":""),N="",Y=0;for(let W=0,U=w[W];U;U=w[++W])if(U===" "&&w[W+1]==="\\"&&w[W+2]==="n"&&(N+=w.slice(Y,W)+"\\ ",W+=1,Y=W,U="\\"),U==="\\")switch(w[W+1]){case"u":{N+=w.slice(Y,W);let H=w.substr(W+2,4);switch(H){case"0000":N+="\\0";break;case"0007":N+="\\a";break;case"000b":N+="\\v";break;case"001b":N+="\\e";break;case"0085":N+="\\N";break;case"00a0":N+="\\_";break;case"2028":N+="\\L";break;case"2029":N+="\\P";break;default:H.substr(0,2)==="00"?N+="\\x"+H.substr(2):N+=w.substr(W,6)}W+=5,Y=W+1}break;case"n":if(_||w[W+2]==='"'||w.length";if(!A)return U+` +`;let H="",oe="";if(A=A.replace(/[\n\t ]*$/,Z=>{let ee=Z.indexOf(` +`);return ee===-1?U+="-":(A===Z||ee!==Z.length-1)&&(U+="+",v&&v()),oe=Z.replace(/\n$/,""),""}).replace(/^[\n ]*/,Z=>{Z.indexOf(" ")!==-1&&(U+=Y);let ee=Z.match(/ +$/);return ee?(H=Z.slice(0,-ee[0].length),ee[0]):(H=Z,"")}),oe&&(oe=oe.replace(/\n+(?!\n|$)/g,"$&".concat(N))),H&&(H=H.replace(/\n+/g,"$&".concat(N))),b&&(U+=" #"+b.replace(/ ?[\r\n]+/g," "),_&&_()),!A)return"".concat(U).concat(Y,` +`).concat(N).concat(oe);if(W)return A=A.replace(/\n+/g,"$&".concat(N)),"".concat(U,` +`).concat(N).concat(H).concat(A).concat(oe);A=A.replace(/\n+/g,` +$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,"$&".concat(N));let le=$("".concat(H).concat(A).concat(oe),N,L,g.fold);return"".concat(U,` +`).concat(N).concat(le)}function O(o,l,_,v){let{comment:b,type:w,value:A}=o,{actualString:N,implicitKey:Y,indent:W,inFlow:U}=l;if(Y&&/[\n[\]{},]/.test(A)||U&&/[[\]{},]/.test(A))return ue(A,l);if(!A||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(A))return Y||U||A.indexOf(` +`)===-1?A.indexOf('"')!==-1&&A.indexOf("'")===-1?pe(A,l):ue(A,l):ge(o,l,_,v);if(!Y&&!U&&w!==e.Type.PLAIN&&A.indexOf(` +`)!==-1)return ge(o,l,_,v);if(W===""&&z(A))return l.forceBlockIndent=!0,ge(o,l,_,v);let H=A.replace(/\n+/g,`$& +`.concat(W));if(N){let{tags:le}=l.doc.schema;if(typeof u(H,le,le.scalarFallback).value!="string")return ue(A,l)}let oe=Y?H:$(H,W,p,Q(l));return b&&!U&&(oe.indexOf(` +`)!==-1||b.indexOf(` +`)!==-1)?(_&&_(),n(oe,W,b)):oe}function V(o,l,_,v){let{defaultType:b}=g,{implicitKey:w,inFlow:A}=l,{type:N,value:Y}=o;typeof Y!="string"&&(Y=String(Y),o=Object.assign({},o,{value:Y}));let W=H=>{switch(H){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return ge(o,l,_,v);case e.Type.QUOTE_DOUBLE:return ue(Y,l);case e.Type.QUOTE_SINGLE:return pe(Y,l);case e.Type.PLAIN:return O(o,l,_,v);default:return null}};(N!==e.Type.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(Y)||(w||A)&&(N===e.Type.BLOCK_FOLDED||N===e.Type.BLOCK_LITERAL))&&(N=e.Type.QUOTE_DOUBLE);let U=W(N);if(U===null&&(U=W(b),U===null))throw new Error("Unsupported default string type ".concat(b));return U}function J(o){let{format:l,minFractionDigits:_,tag:v,value:b}=o;if(typeof b=="bigint")return String(b);if(!isFinite(b))return isNaN(b)?".nan":b<0?"-.inf":".inf";let w=JSON.stringify(b);if(!l&&_&&(!v||v==="tag:yaml.org,2002:float")&&/^\d/.test(w)){let A=w.indexOf(".");A<0&&(A=w.length,w+=".");let N=_-(w.length-A-1);for(;N-- >0;)w+="0"}return w}function x(o,l){let _,v;switch(l.type){case e.Type.FLOW_MAP:_="}",v="flow map";break;case e.Type.FLOW_SEQ:_="]",v="flow sequence";break;default:o.push(new e.YAMLSemanticError(l,"Not a flow collection!?"));return}let b;for(let w=l.items.length-1;w>=0;--w){let A=l.items[w];if(!A||A.type!==e.Type.COMMENT){b=A;break}}if(b&&b.char!==_){let w="Expected ".concat(v," to end with ").concat(_),A;typeof b.offset=="number"?(A=new e.YAMLSemanticError(l,w),A.offset=b.offset+1):(A=new e.YAMLSemanticError(b,w),b.range&&b.range.end&&(A.offset=b.range.end-b.range.start)),o.push(A)}}function G(o,l){let _=l.context.src[l.range.start-1];if(_!==` +`&&_!==" "&&_!==" "){let v="Comments must be separated from other tokens by white space characters";o.push(new e.YAMLSemanticError(l,v))}}function ne(o,l){let _=String(l),v=_.substr(0,8)+"..."+_.substr(-8);return new e.YAMLSemanticError(o,'The "'.concat(v,'" key is too long'))}function _e(o,l){for(let{afterKey:_,before:v,comment:b}of l){let w=o.items[v];w?(_&&w.value&&(w=w.value),b===void 0?(_||!w.commentBefore)&&(w.spaceBefore=!0):w.commentBefore?w.commentBefore+=` +`+b:w.commentBefore=b):b!==void 0&&(o.comment?o.comment+=` +`+b:o.comment=b)}}function ye(o,l){let _=l.strValue;return _?typeof _=="string"?_:(_.errors.forEach(v=>{v.source||(v.source=l),o.errors.push(v)}),_.str):""}function be(o,l){let{handle:_,suffix:v}=l.tag,b=o.tagPrefixes.find(w=>w.handle===_);if(!b){let w=o.getDefaults().tagPrefixes;if(w&&(b=w.find(A=>A.handle===_)),!b)throw new e.YAMLSemanticError(l,"The ".concat(_," tag handle is non-default and was not declared."))}if(!v)throw new e.YAMLSemanticError(l,"The ".concat(_," tag has no suffix."));if(_==="!"&&(o.version||o.options.version)==="1.0"){if(v[0]==="^")return o.warnings.push(new e.YAMLWarning(l,"YAML 1.0 ^ tag expansion is not supported")),v;if(/[:/]/.test(v)){let w=v.match(/^([a-z0-9-]+)\/(.*)/i);return w?"tag:".concat(w[1],".yaml.org,2002:").concat(w[2]):"tag:".concat(v)}}return b.prefix+decodeURIComponent(v)}function ve(o,l){let{tag:_,type:v}=l,b=!1;if(_){let{handle:w,suffix:A,verbatim:N}=_;if(N){if(N!=="!"&&N!=="!!")return N;let Y="Verbatim tags aren't resolved, so ".concat(N," is invalid.");o.errors.push(new e.YAMLSemanticError(l,Y))}else if(w==="!"&&!A)b=!0;else try{return be(o,l)}catch(Y){o.errors.push(Y)}}switch(v){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:case e.Type.QUOTE_DOUBLE:case e.Type.QUOTE_SINGLE:return e.defaultTags.STR;case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;case e.Type.PLAIN:return b?e.defaultTags.STR:null;default:return null}}function Ne(o,l,_){let{tags:v}=o.schema,b=[];for(let A of v)if(A.tag===_)if(A.test)b.push(A);else{let N=A.resolve(o,l);return N instanceof S?N:new y(N)}let w=ye(o,l);return typeof w=="string"&&b.length>0?u(w,b,v.scalarFallback):null}function Pe(o){let{type:l}=o;switch(l){case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;default:return e.defaultTags.STR}}function ct(o,l,_){try{let v=Ne(o,l,_);if(v)return _&&l.tag&&(v.tag=_),v}catch(v){return v.source||(v.source=l),o.errors.push(v),null}try{let v=Pe(l);if(!v)throw new Error("The tag ".concat(_," is unavailable"));let b="The tag ".concat(_," is unavailable, falling back to ").concat(v);o.warnings.push(new e.YAMLWarning(l,b));let w=Ne(o,l,v);return w.tag=_,w}catch(v){let b=new e.YAMLReferenceError(l,v.message);return b.stack=v.stack,o.errors.push(b),null}}var ut=o=>{if(!o)return!1;let{type:l}=o;return l===e.Type.MAP_KEY||l===e.Type.MAP_VALUE||l===e.Type.SEQ_ITEM};function ft(o,l){let _={before:[],after:[]},v=!1,b=!1,w=ut(l.context.parent)?l.context.parent.props.concat(l.props):l.props;for(let{start:A,end:N}of w)switch(l.context.src[A]){case e.Char.COMMENT:{if(!l.commentHasRequiredWhitespace(A)){let H="Comments must be separated from other tokens by white space characters";o.push(new e.YAMLSemanticError(l,H))}let{header:Y,valueRange:W}=l;(W&&(A>W.start||Y&&A>Y.start)?_.after:_.before).push(l.context.src.slice(A+1,N));break}case e.Char.ANCHOR:if(v){let Y="A node can have at most one anchor";o.push(new e.YAMLSemanticError(l,Y))}v=!0;break;case e.Char.TAG:if(b){let Y="A node can have at most one tag";o.push(new e.YAMLSemanticError(l,Y))}b=!0;break}return{comments:_,hasAnchor:v,hasTag:b}}function mt(o,l){let{anchors:_,errors:v,schema:b}=o;if(l.type===e.Type.ALIAS){let A=l.rawValue,N=_.getNode(A);if(!N){let W="Aliased anchor not found: ".concat(A);return v.push(new e.YAMLReferenceError(l,W)),null}let Y=new R(N);return _._cstAliases.push(Y),Y}let w=ve(o,l);if(w)return ct(o,l,w);if(l.type!==e.Type.PLAIN){let A="Failed to resolve ".concat(l.type," node here");return v.push(new e.YAMLSyntaxError(l,A)),null}try{let A=ye(o,l);return u(A,b.tags,b.tags.scalarFallback)}catch(A){return A.source||(A.source=l),v.push(A),null}}function we(o,l){if(!l)return null;l.error&&o.errors.push(l.error);let{comments:_,hasAnchor:v,hasTag:b}=ft(o.errors,l);if(v){let{anchors:A}=o,N=l.anchor,Y=A.getNode(N);Y&&(A.map[A.newName(N)]=Y),A.map[N]=l}if(l.type===e.Type.ALIAS&&(v||b)){let A="An alias node must not specify any properties";o.errors.push(new e.YAMLSemanticError(l,A))}let w=mt(o,l);if(w){w.range=[l.range.start,l.range.end],o.options.keepCstNodes&&(w.cstNode=l),o.options.keepNodeTypes&&(w.type=l.type);let A=_.before.join(` +`);A&&(w.commentBefore=w.commentBefore?"".concat(w.commentBefore,` +`).concat(A):A);let N=_.after.join(` +`);N&&(w.comment=w.comment?"".concat(w.comment,` +`).concat(N):N)}return l.resolved=w}function dt(o,l){if(l.type!==e.Type.MAP&&l.type!==e.Type.FLOW_MAP){let A="A ".concat(l.type," node cannot be resolved as a mapping");return o.errors.push(new e.YAMLSyntaxError(l,A)),null}let{comments:_,items:v}=l.type===e.Type.FLOW_MAP?_t(o,l):pt(o,l),b=new K;b.items=v,_e(b,_);let w=!1;for(let A=0;A{if(U instanceof R){let{type:H}=U.source;return H===e.Type.MAP||H===e.Type.FLOW_MAP?!1:W="Merge nodes aliases can only point to maps"}return W="Merge nodes can only have Alias nodes as values"}),W&&o.errors.push(new e.YAMLSemanticError(l,W))}else for(let Y=A+1;Y{let{context:{lineStart:l,node:_,src:v},props:b}=o;if(b.length===0)return!1;let{start:w}=b[0];if(_&&w>_.valueRange.start||v[w]!==e.Char.COMMENT)return!1;for(let A=l;A0){Y=new e.PlainValue(e.Type.PLAIN,[]),Y.context={parent:N,src:N.context.src};let U=N.range.start+1;if(Y.range={start:U,end:U},Y.valueRange={start:U,end:U},typeof N.range.origStart=="number"){let H=N.range.origStart+1;Y.range.origStart=Y.range.origEnd=H,Y.valueRange.origStart=Y.valueRange.origEnd=H}}let W=new C(b,we(o,Y));gt(N,W),v.push(W),b&&typeof w=="number"&&N.range.start>w+1024&&o.errors.push(ne(l,b)),b=void 0,w=null}break;default:b!==void 0&&v.push(new C(b)),b=we(o,N),w=N.range.start,N.error&&o.errors.push(N.error);e:for(let Y=A+1;;++Y){let W=l.items[Y];switch(W&&W.type){case e.Type.BLANK_LINE:case e.Type.COMMENT:continue e;case e.Type.MAP_VALUE:break e;default:{let U="Implicit map keys need to be followed by map values";o.errors.push(new e.YAMLSemanticError(N,U));break e}}}if(N.valueRangeContainsNewline){let Y="Implicit map keys need to be on a single line";o.errors.push(new e.YAMLSemanticError(N,Y))}}}return b!==void 0&&v.push(new C(b)),{comments:_,items:v}}function _t(o,l){let _=[],v=[],b,w=!1,A="{";for(let N=0;Nw instanceof C&&w.key instanceof S)){let w="Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.";o.warnings.push(new e.YAMLWarning(l,w))}return l.resolved=b,b}function yt(o,l){let _=[],v=[];for(let b=0;bA+1024&&o.errors.push(ne(l,w));let{src:Z}=Y.context;for(let ee=A;eeu instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve:(u,p)=>{let L=n.resolveString(u,p);if(typeof Buffer=="function")return Buffer.from(L,"base64");if(typeof atob=="function"){let k=atob(L.replace(/[\n\r]/g,"")),B=new Uint8Array(k.length);for(let $=0;${let{comment:B,type:$,value:Q}=u,z;if(typeof Buffer=="function")z=Q instanceof Buffer?Q.toString("base64"):Buffer.from(Q.buffer).toString("base64");else if(typeof btoa=="function"){let ie="";for(let ue=0;ue1){let Q="Each pair must have its own sequence indicator";throw new e.YAMLSemanticError(p,Q)}let $=B.items[0]||new n.Pair;B.commentBefore&&($.commentBefore=$.commentBefore?"".concat(B.commentBefore,` +`).concat($.commentBefore):B.commentBefore),B.comment&&($.comment=$.comment?"".concat(B.comment,` +`).concat($.comment):B.comment),B=$}L.items[k]=B instanceof n.Pair?B:new n.Pair(B)}}return L}function d(u,p,L){let k=new n.YAMLSeq(u);k.tag="tag:yaml.org,2002:pairs";for(let B of p){let $,Q;if(Array.isArray(B))if(B.length===2)$=B[0],Q=B[1];else throw new TypeError("Expected [key, value] tuple: ".concat(B));else if(B&&B instanceof Object){let ie=Object.keys(B);if(ie.length===1)$=ie[0],Q=B[$];else throw new TypeError("Expected { key: value } tuple: ".concat(B))}else $=B;let z=u.createPair($,Q,L);k.items.push(z)}return k}var y={default:!1,tag:"tag:yaml.org,2002:pairs",resolve:h,createNode:d},E=class extends n.YAMLSeq{constructor(){super(),e._defineProperty(this,"add",n.YAMLMap.prototype.add.bind(this)),e._defineProperty(this,"delete",n.YAMLMap.prototype.delete.bind(this)),e._defineProperty(this,"get",n.YAMLMap.prototype.get.bind(this)),e._defineProperty(this,"has",n.YAMLMap.prototype.has.bind(this)),e._defineProperty(this,"set",n.YAMLMap.prototype.set.bind(this)),this.tag=E.tag}toJSON(u,p){let L=new Map;p&&p.onCreate&&p.onCreate(L);for(let k of this.items){let B,$;if(k instanceof n.Pair?(B=n.toJSON(k.key,"",p),$=n.toJSON(k.value,B,p)):B=n.toJSON(k,"",p),L.has(B))throw new Error("Ordered maps must not include duplicate keys");L.set(B,$)}return L}};e._defineProperty(E,"tag","tag:yaml.org,2002:omap");function I(u,p){let L=h(u,p),k=[];for(let{key:B}of L.items)if(B instanceof n.Scalar)if(k.includes(B.value)){let $="Ordered maps must not include duplicate keys";throw new e.YAMLSemanticError(p,$)}else k.push(B.value);return Object.assign(new E,L)}function S(u,p,L){let k=d(u,p,L),B=new E;return B.items=k.items,B}var M={identify:u=>u instanceof Map,nodeClass:E,default:!1,tag:"tag:yaml.org,2002:omap",resolve:I,createNode:S},T=class extends n.YAMLMap{constructor(){super(),this.tag=T.tag}add(u){let p=u instanceof n.Pair?u:new n.Pair(u);n.findPair(this.items,p.key)||this.items.push(p)}get(u,p){let L=n.findPair(this.items,u);return!p&&L instanceof n.Pair?L.key instanceof n.Scalar?L.key.value:L.key:L}set(u,p){if(typeof p!="boolean")throw new Error("Expected boolean value for set(key, value) in a YAML set, not ".concat(typeof p));let L=n.findPair(this.items,u);L&&!p?this.items.splice(this.items.indexOf(L),1):!L&&p&&this.items.push(new n.Pair(u))}toJSON(u,p){return super.toJSON(u,p,Set)}toString(u,p,L){if(!u)return JSON.stringify(this);if(this.hasAllNullValues())return super.toString(u,p,L);throw new Error("Set items must all have null values")}};e._defineProperty(T,"tag","tag:yaml.org,2002:set");function P(u,p){let L=n.resolveMap(u,p);if(!L.hasAllNullValues())throw new e.YAMLSemanticError(p,"Set items must all have null values");return Object.assign(new T,L)}function C(u,p,L){let k=new T;for(let B of p)k.items.push(u.createPair(B,null,L));return k}var q={identify:u=>u instanceof Set,nodeClass:T,default:!1,tag:"tag:yaml.org,2002:set",resolve:P,createNode:C},R=(u,p)=>{let L=p.split(":").reduce((k,B)=>k*60+Number(B),0);return u==="-"?-L:L},j=u=>{let{value:p}=u;if(isNaN(p)||!isFinite(p))return n.stringifyNumber(p);let L="";p<0&&(L="-",p=Math.abs(p));let k=[p%60];return p<60?k.unshift(0):(p=Math.round((p-k[0])/60),k.unshift(p%60),p>=60&&(p=Math.round((p-k[0])/60),k.unshift(p))),L+k.map(B=>B<10?"0"+String(B):String(B)).join(":").replace(/000000\d*$/,"")},K={identify:u=>typeof u=="number",default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:(u,p,L)=>R(p,L.replace(/_/g,"")),stringify:j},m={identify:u=>typeof u=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,resolve:(u,p,L)=>R(p,L.replace(/_/g,"")),stringify:j},a={identify:u=>u instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"),resolve:(u,p,L,k,B,$,Q,z,ie)=>{z&&(z=(z+"00").substr(1,3));let ue=Date.UTC(p,L-1,k,B||0,$||0,Q||0,z||0);if(ie&&ie!=="Z"){let pe=R(ie[0],ie.slice(1));Math.abs(pe)<30&&(pe*=60),ue-=6e4*pe}return new Date(ue)},stringify:u=>{let{value:p}=u;return p.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")}};function t(u){let p=typeof Te<"u"&&Te.env||{};return u?typeof YAML_SILENCE_DEPRECATION_WARNINGS<"u"?!YAML_SILENCE_DEPRECATION_WARNINGS:!p.YAML_SILENCE_DEPRECATION_WARNINGS:typeof YAML_SILENCE_WARNINGS<"u"?!YAML_SILENCE_WARNINGS:!p.YAML_SILENCE_WARNINGS}function s(u,p){if(t(!1)){let L=typeof Te<"u"&&Te.emitWarning;L?L(u,p):console.warn(p?"".concat(p,": ").concat(u):u)}}function i(u){if(t(!0)){let p=u.replace(/.*yaml[/\\]/i,"").replace(/\.js$/,"").replace(/\\/g,"/");s("The endpoint 'yaml/".concat(p,"' will be removed in a future release."),"DeprecationWarning")}}var f={};function g(u,p){if(!f[u]&&t(!0)){f[u]=!0;let L="The option '".concat(u,"' will be removed in a future release");L+=p?", use '".concat(p,"' instead."):".",s(L,"DeprecationWarning")}}r.binary=c,r.floatTime=m,r.intTime=K,r.omap=M,r.pairs=y,r.set=q,r.timestamp=a,r.warn=s,r.warnFileDeprecation=i,r.warnOptionDeprecation=g}}),ot=F({"node_modules/yaml/dist/Schema-88e323a7.js"(r){"use strict";D();var e=Me(),n=ke(),c=it();function h(O,V,J){let x=new n.YAMLMap(O);if(V instanceof Map)for(let[G,ne]of V)x.items.push(O.createPair(G,ne,J));else if(V&&typeof V=="object")for(let G of Object.keys(V))x.items.push(O.createPair(G,V[G],J));return typeof O.sortMapEntries=="function"&&x.items.sort(O.sortMapEntries),x}var d={createNode:h,default:!0,nodeClass:n.YAMLMap,tag:"tag:yaml.org,2002:map",resolve:n.resolveMap};function y(O,V,J){let x=new n.YAMLSeq(O);if(V&&V[Symbol.iterator])for(let G of V){let ne=O.createNode(G,J.wrapScalars,null,J);x.items.push(ne)}return x}var E={createNode:y,default:!0,nodeClass:n.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve:n.resolveSeq},I={identify:O=>typeof O=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n.resolveString,stringify(O,V,J,x){return V=Object.assign({actualString:!0},V),n.stringifyString(O,V,J,x)},options:n.strOptions},S=[d,E,I],M=O=>typeof O=="bigint"||Number.isInteger(O),T=(O,V,J)=>n.intOptions.asBigInt?BigInt(O):parseInt(V,J);function P(O,V,J){let{value:x}=O;return M(x)&&x>=0?J+x.toString(V):n.stringifyNumber(O)}var C={identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},q={identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:O=>O[0]==="t"||O[0]==="T",options:n.boolOptions,stringify:O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr}},R={identify:O=>M(O)&&O>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o([0-7]+)$/,resolve:(O,V)=>T(O,V,8),options:n.intOptions,stringify:O=>P(O,8,"0o")},j={identify:M,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:O=>T(O,O,10),options:n.intOptions,stringify:n.stringifyNumber},K={identify:O=>M(O)&&O>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x([0-9a-fA-F]+)$/,resolve:(O,V)=>T(O,V,16),options:n.intOptions,stringify:O=>P(O,16,"0x")},m={identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},a={identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},t={identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,resolve(O,V,J){let x=V||J,G=new n.Scalar(parseFloat(O));return x&&x[x.length-1]==="0"&&(G.minFractionDigits=x.length),G},stringify:n.stringifyNumber},s=S.concat([C,q,R,j,K,m,a,t]),i=O=>typeof O=="bigint"||Number.isInteger(O),f=O=>{let{value:V}=O;return JSON.stringify(V)},g=[d,E,{identify:O=>typeof O=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n.resolveString,stringify:f},{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:f},{identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:O=>O==="true",stringify:f},{identify:i,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:O=>n.intOptions.asBigInt?BigInt(O):parseInt(O,10),stringify:O=>{let{value:V}=O;return i(V)?V.toString():JSON.stringify(V)}},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:O=>parseFloat(O),stringify:f}];g.scalarFallback=O=>{throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(O)))};var u=O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr},p=O=>typeof O=="bigint"||Number.isInteger(O);function L(O,V,J){let x=V.replace(/_/g,"");if(n.intOptions.asBigInt){switch(J){case 2:x="0b".concat(x);break;case 8:x="0o".concat(x);break;case 16:x="0x".concat(x);break}let ne=BigInt(x);return O==="-"?BigInt(-1)*ne:ne}let G=parseInt(x,J);return O==="-"?-1*G:G}function k(O,V,J){let{value:x}=O;if(p(x)){let G=x.toString(V);return x<0?"-"+J+G.substr(1):J+G}return n.stringifyNumber(O)}var B=S.concat([{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},{identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>!0,options:n.boolOptions,stringify:u},{identify:O=>typeof O=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>!1,options:n.boolOptions,stringify:u},{identify:p,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^([-+]?)0b([0-1_]+)$/,resolve:(O,V,J)=>L(V,J,2),stringify:O=>k(O,2,"0b")},{identify:p,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^([-+]?)0([0-7_]+)$/,resolve:(O,V,J)=>L(V,J,8),stringify:O=>k(O,8,"0")},{identify:p,default:!0,tag:"tag:yaml.org,2002:int",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:(O,V,J)=>L(V,J,10),stringify:n.stringifyNumber},{identify:p,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:(O,V,J)=>L(V,J,16),stringify:O=>k(O,16,"0x")},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O.replace(/_/g,"")),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},{identify:O=>typeof O=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,resolve(O,V){let J=new n.Scalar(parseFloat(O.replace(/_/g,"")));if(V){let x=V.replace(/_/g,"");x[x.length-1]==="0"&&(J.minFractionDigits=x.length)}return J},stringify:n.stringifyNumber}],c.binary,c.omap,c.pairs,c.set,c.intTime,c.floatTime,c.timestamp),$={core:s,failsafe:S,json:g,yaml11:B},Q={binary:c.binary,bool:q,float:t,floatExp:a,floatNaN:m,floatTime:c.floatTime,int:j,intHex:K,intOct:R,intTime:c.intTime,map:d,null:C,omap:c.omap,pairs:c.pairs,seq:E,set:c.set,timestamp:c.timestamp};function z(O,V,J){if(V){let x=J.filter(ne=>ne.tag===V),G=x.find(ne=>!ne.format)||x[0];if(!G)throw new Error("Tag ".concat(V," not found"));return G}return J.find(x=>(x.identify&&x.identify(O)||x.class&&O instanceof x.class)&&!x.format)}function ie(O,V,J){if(O instanceof n.Node)return O;let{defaultPrefix:x,onTagObj:G,prevObjects:ne,schema:_e,wrapScalars:ye}=J;V&&V.startsWith("!!")&&(V=x+V.slice(2));let be=z(O,V,_e.tags);if(!be){if(typeof O.toJSON=="function"&&(O=O.toJSON()),!O||typeof O!="object")return ye?new n.Scalar(O):O;be=O instanceof Map?d:O[Symbol.iterator]?E:d}G&&(G(be),delete J.onTagObj);let ve={value:void 0,node:void 0};if(O&&typeof O=="object"&&ne){let Ne=ne.get(O);if(Ne){let Pe=new n.Alias(Ne);return J.aliasNodes.push(Pe),Pe}ve.value=O,ne.set(O,ve)}return ve.node=be.createNode?be.createNode(J.schema,O,J):ye?new n.Scalar(O):O,V&&ve.node instanceof n.Node&&(ve.node.tag=V),ve.node}function ue(O,V,J,x){let G=O[x.replace(/\W/g,"")];if(!G){let ne=Object.keys(O).map(_e=>JSON.stringify(_e)).join(", ");throw new Error('Unknown schema "'.concat(x,'"; use one of ').concat(ne))}if(Array.isArray(J))for(let ne of J)G=G.concat(ne);else typeof J=="function"&&(G=J(G.slice()));for(let ne=0;neJSON.stringify(ve)).join(", ");throw new Error('Unknown custom tag "'.concat(_e,'"; use one of ').concat(be))}G[ne]=ye}}return G}var pe=(O,V)=>O.keyV.key?1:0,ge=class{constructor(O){let{customTags:V,merge:J,schema:x,sortMapEntries:G,tags:ne}=O;this.merge=!!J,this.name=x,this.sortMapEntries=G===!0?pe:G||null,!V&&ne&&c.warnOptionDeprecation("tags","customTags"),this.tags=ue($,Q,V||ne,x)}createNode(O,V,J,x){let G={defaultPrefix:ge.defaultPrefix,schema:this,wrapScalars:V},ne=x?Object.assign(x,G):G;return ie(O,J,ne)}createPair(O,V,J){J||(J={wrapScalars:!0});let x=this.createNode(O,J.wrapScalars,null,J),G=this.createNode(V,J.wrapScalars,null,J);return new n.Pair(x,G)}};e._defineProperty(ge,"defaultPrefix",e.defaultTagPrefix),e._defineProperty(ge,"defaultTags",e.defaultTags),r.Schema=ge}}),zn=F({"node_modules/yaml/dist/Document-9b4560a1.js"(r){"use strict";D();var e=Me(),n=ke(),c=ot(),h={anchorPrefix:"a",customTags:null,indent:2,indentSeq:!0,keepCstNodes:!1,keepNodeTypes:!0,keepBlobsInJSON:!0,mapAsMap:!1,maxAliasCount:100,prettyErrors:!1,simpleKeys:!1,version:"1.2"},d={get binary(){return n.binaryOptions},set binary(t){Object.assign(n.binaryOptions,t)},get bool(){return n.boolOptions},set bool(t){Object.assign(n.boolOptions,t)},get int(){return n.intOptions},set int(t){Object.assign(n.intOptions,t)},get null(){return n.nullOptions},set null(t){Object.assign(n.nullOptions,t)},get str(){return n.strOptions},set str(t){Object.assign(n.strOptions,t)}},y={"1.0":{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:e.defaultTagPrefix},{handle:"!!",prefix:"tag:private.yaml.org,2002:"}]},1.1:{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:e.defaultTagPrefix}]},1.2:{schema:"core",merge:!1,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:e.defaultTagPrefix}]}};function E(t,s){if((t.version||t.options.version)==="1.0"){let g=s.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);if(g)return"!"+g[1];let u=s.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);return u?"!".concat(u[1],"/").concat(u[2]):"!".concat(s.replace(/^tag:/,""))}let i=t.tagPrefixes.find(g=>s.indexOf(g.prefix)===0);if(!i){let g=t.getDefaults().tagPrefixes;i=g&&g.find(u=>s.indexOf(u.prefix)===0)}if(!i)return s[0]==="!"?s:"!<".concat(s,">");let f=s.substr(i.prefix.length).replace(/[!,[\]{}]/g,g=>({"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"})[g]);return i.handle+f}function I(t,s){if(s instanceof n.Alias)return n.Alias;if(s.tag){let g=t.filter(u=>u.tag===s.tag);if(g.length>0)return g.find(u=>u.format===s.format)||g[0]}let i,f;if(s instanceof n.Scalar){f=s.value;let g=t.filter(u=>u.identify&&u.identify(f)||u.class&&f instanceof u.class);i=g.find(u=>u.format===s.format)||g.find(u=>!u.format)}else f=s,i=t.find(g=>g.nodeClass&&f instanceof g.nodeClass);if(!i){let g=f&&f.constructor?f.constructor.name:typeof f;throw new Error("Tag not resolved for ".concat(g," value"))}return i}function S(t,s,i){let{anchors:f,doc:g}=i,u=[],p=g.anchors.getName(t);return p&&(f[p]=t,u.push("&".concat(p))),t.tag?u.push(E(g,t.tag)):s.default||u.push(E(g,s.tag)),u.join(" ")}function M(t,s,i,f){let{anchors:g,schema:u}=s.doc,p;if(!(t instanceof n.Node)){let B={aliasNodes:[],onTagObj:$=>p=$,prevObjects:new Map};t=u.createNode(t,!0,null,B);for(let $ of B.aliasNodes){$.source=$.source.node;let Q=g.getName($.source);Q||(Q=g.newName(),g.map[Q]=$.source)}}if(t instanceof n.Pair)return t.toString(s,i,f);p||(p=I(u.tags,t));let L=S(t,p,s);L.length>0&&(s.indentAtStart=(s.indentAtStart||0)+L.length+1);let k=typeof p.stringify=="function"?p.stringify(t,s,i,f):t instanceof n.Scalar?n.stringifyString(t,s,i,f):t.toString(s,i,f);return L?t instanceof n.Scalar||k[0]==="{"||k[0]==="["?"".concat(L," ").concat(k):"".concat(L,` +`).concat(s.indent).concat(k):k}var T=class{static validAnchorNode(t){return t instanceof n.Scalar||t instanceof n.YAMLSeq||t instanceof n.YAMLMap}constructor(t){e._defineProperty(this,"map",Object.create(null)),this.prefix=t}createAlias(t,s){return this.setAnchor(t,s),new n.Alias(t)}createMergePair(){let t=new n.Merge;for(var s=arguments.length,i=new Array(s),f=0;f{if(g instanceof n.Alias){if(g.source instanceof n.YAMLMap)return g}else if(g instanceof n.YAMLMap)return this.createAlias(g);throw new Error("Merge sources must be Map nodes or their Aliases")}),t}getName(t){let{map:s}=this;return Object.keys(s).find(i=>s[i]===t)}getNames(){return Object.keys(this.map)}getNode(t){return this.map[t]}newName(t){t||(t=this.prefix);let s=Object.keys(this.map);for(let i=1;;++i){let f="".concat(t).concat(i);if(!s.includes(f))return f}}resolveNodes(){let{map:t,_cstAliases:s}=this;Object.keys(t).forEach(i=>{t[i]=t[i].resolved}),s.forEach(i=>{i.source=i.source.resolved}),delete this._cstAliases}setAnchor(t,s){if(t!=null&&!T.validAnchorNode(t))throw new Error("Anchors may only be set for Scalar, Seq and Map nodes");if(s&&/[\x00-\x19\s,[\]{}]/.test(s))throw new Error("Anchor names must not contain whitespace or control characters");let{map:i}=this,f=t&&Object.keys(i).find(g=>i[g]===t);if(f)if(s)f!==s&&(delete i[f],i[s]=t);else return f;else{if(!s){if(!t)return null;s=this.newName()}i[s]=t}return s}},P=(t,s)=>{if(t&&typeof t=="object"){let{tag:i}=t;t instanceof n.Collection?(i&&(s[i]=!0),t.items.forEach(f=>P(f,s))):t instanceof n.Pair?(P(t.key,s),P(t.value,s)):t instanceof n.Scalar&&i&&(s[i]=!0)}return s},C=t=>Object.keys(P(t,{}));function q(t,s){let i={before:[],after:[]},f,g=!1;for(let u of s)if(u.valueRange){if(f!==void 0){let L="Document contains trailing content not separated by a ... or --- line";t.errors.push(new e.YAMLSyntaxError(u,L));break}let p=n.resolveNode(t,u);g&&(p.spaceBefore=!0,g=!1),f=p}else u.comment!==null?(f===void 0?i.before:i.after).push(u.comment):u.type===e.Type.BLANK_LINE&&(g=!0,f===void 0&&i.before.length>0&&!t.commentBefore&&(t.commentBefore=i.before.join(` +`),i.before=[]));if(t.contents=f||null,!f)t.comment=i.before.concat(i.after).join(` +`)||null;else{let u=i.before.join(` +`);if(u){let p=f instanceof n.Collection&&f.items[0]?f.items[0]:f;p.commentBefore=p.commentBefore?"".concat(u,` +`).concat(p.commentBefore):u}t.comment=i.after.join(` +`)||null}}function R(t,s){let{tagPrefixes:i}=t,[f,g]=s.parameters;if(!f||!g){let u="Insufficient parameters given for %TAG directive";throw new e.YAMLSemanticError(s,u)}if(i.some(u=>u.handle===f)){let u="The %TAG directive must only be given at most once per handle in the same document.";throw new e.YAMLSemanticError(s,u)}return{handle:f,prefix:g}}function j(t,s){let[i]=s.parameters;if(s.name==="YAML:1.0"&&(i="1.0"),!i){let f="Insufficient parameters given for %YAML directive";throw new e.YAMLSemanticError(s,f)}if(!y[i]){let f=t.version||t.options.version,g="Document will be parsed as YAML ".concat(f," rather than YAML ").concat(i);t.warnings.push(new e.YAMLWarning(s,g))}return i}function K(t,s,i){let f=[],g=!1;for(let u of s){let{comment:p,name:L}=u;switch(L){case"TAG":try{t.tagPrefixes.push(R(t,u))}catch(k){t.errors.push(k)}g=!0;break;case"YAML":case"YAML:1.0":if(t.version){let k="The %YAML directive must only be given at most once per document.";t.errors.push(new e.YAMLSemanticError(u,k))}try{t.version=j(t,u)}catch(k){t.errors.push(k)}g=!0;break;default:if(L){let k="YAML only supports %TAG and %YAML directives, and not %".concat(L);t.warnings.push(new e.YAMLWarning(u,k))}}p&&f.push(p)}if(i&&!g&&(t.version||i.version||t.options.version)==="1.1"){let u=p=>{let{handle:L,prefix:k}=p;return{handle:L,prefix:k}};t.tagPrefixes=i.tagPrefixes.map(u),t.version=i.version}t.commentBefore=f.join(` +`)||null}function m(t){if(t instanceof n.Collection)return!0;throw new Error("Expected a YAML collection as document contents")}var a=class{constructor(t){this.anchors=new T(t.anchorPrefix),this.commentBefore=null,this.comment=null,this.contents=null,this.directivesEndMarker=null,this.errors=[],this.options=t,this.schema=null,this.tagPrefixes=[],this.version=null,this.warnings=[]}add(t){return m(this.contents),this.contents.add(t)}addIn(t,s){m(this.contents),this.contents.addIn(t,s)}delete(t){return m(this.contents),this.contents.delete(t)}deleteIn(t){return n.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):(m(this.contents),this.contents.deleteIn(t))}getDefaults(){return a.defaults[this.version]||a.defaults[this.options.version]||{}}get(t,s){return this.contents instanceof n.Collection?this.contents.get(t,s):void 0}getIn(t,s){return n.isEmptyPath(t)?!s&&this.contents instanceof n.Scalar?this.contents.value:this.contents:this.contents instanceof n.Collection?this.contents.getIn(t,s):void 0}has(t){return this.contents instanceof n.Collection?this.contents.has(t):!1}hasIn(t){return n.isEmptyPath(t)?this.contents!==void 0:this.contents instanceof n.Collection?this.contents.hasIn(t):!1}set(t,s){m(this.contents),this.contents.set(t,s)}setIn(t,s){n.isEmptyPath(t)?this.contents=s:(m(this.contents),this.contents.setIn(t,s))}setSchema(t,s){if(!t&&!s&&this.schema)return;typeof t=="number"&&(t=t.toFixed(1)),t==="1.0"||t==="1.1"||t==="1.2"?(this.version?this.version=t:this.options.version=t,delete this.options.schema):t&&typeof t=="string"&&(this.options.schema=t),Array.isArray(s)&&(this.options.customTags=s);let i=Object.assign({},this.getDefaults(),this.options);this.schema=new c.Schema(i)}parse(t,s){this.options.keepCstNodes&&(this.cstNode=t),this.options.keepNodeTypes&&(this.type="DOCUMENT");let{directives:i=[],contents:f=[],directivesEndMarker:g,error:u,valueRange:p}=t;if(u&&(u.source||(u.source=this),this.errors.push(u)),K(this,i,s),g&&(this.directivesEndMarker=!0),this.range=p?[p.start,p.end]:null,this.setSchema(),this.anchors._cstAliases=[],q(this,f),this.anchors.resolveNodes(),this.options.prettyErrors){for(let L of this.errors)L instanceof e.YAMLError&&L.makePretty();for(let L of this.warnings)L instanceof e.YAMLError&&L.makePretty()}return this}listNonDefaultTags(){return C(this.contents).filter(t=>t.indexOf(c.Schema.defaultPrefix)!==0)}setTagPrefix(t,s){if(t[0]!=="!"||t[t.length-1]!=="!")throw new Error("Handle must start and end with !");if(s){let i=this.tagPrefixes.find(f=>f.handle===t);i?i.prefix=s:this.tagPrefixes.push({handle:t,prefix:s})}else this.tagPrefixes=this.tagPrefixes.filter(i=>i.handle!==t)}toJSON(t,s){let{keepBlobsInJSON:i,mapAsMap:f,maxAliasCount:g}=this.options,u=i&&(typeof t!="string"||!(this.contents instanceof n.Scalar)),p={doc:this,indentStep:" ",keep:u,mapAsMap:u&&!!f,maxAliasCount:g,stringify:M},L=Object.keys(this.anchors.map);L.length>0&&(p.anchors=new Map(L.map(B=>[this.anchors.map[B],{alias:[],aliasCount:0,count:1}])));let k=n.toJSON(this.contents,t,p);if(typeof s=="function"&&p.anchors)for(let{count:B,res:$}of p.anchors.values())s($,B);return k}toString(){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");let t=this.options.indent;if(!Number.isInteger(t)||t<=0){let L=JSON.stringify(t);throw new Error('"indent" option must be a positive integer, not '.concat(L))}this.setSchema();let s=[],i=!1;if(this.version){let L="%YAML 1.2";this.schema.name==="yaml-1.1"&&(this.version==="1.0"?L="%YAML:1.0":this.version==="1.1"&&(L="%YAML 1.1")),s.push(L),i=!0}let f=this.listNonDefaultTags();this.tagPrefixes.forEach(L=>{let{handle:k,prefix:B}=L;f.some($=>$.indexOf(B)===0)&&(s.push("%TAG ".concat(k," ").concat(B)),i=!0)}),(i||this.directivesEndMarker)&&s.push("---"),this.commentBefore&&((i||!this.directivesEndMarker)&&s.unshift(""),s.unshift(this.commentBefore.replace(/^/gm,"#")));let g={anchors:Object.create(null),doc:this,indent:"",indentStep:" ".repeat(t),stringify:M},u=!1,p=null;if(this.contents){this.contents instanceof n.Node&&(this.contents.spaceBefore&&(i||this.directivesEndMarker)&&s.push(""),this.contents.commentBefore&&s.push(this.contents.commentBefore.replace(/^/gm,"#")),g.forceBlockIndent=!!this.comment,p=this.contents.comment);let L=p?null:()=>u=!0,k=M(this.contents,g,()=>p=null,L);s.push(n.addComment(k,"",p))}else this.contents!==void 0&&s.push(M(this.contents,g));return this.comment&&((!u||p)&&s[s.length-1]!==""&&s.push(""),s.push(this.comment.replace(/^/gm,"#"))),s.join(` +`)+` +`}};e._defineProperty(a,"defaults",y),r.Document=a,r.defaultOptions=h,r.scalarOptions=d}}),Zn=F({"node_modules/yaml/dist/index.js"(r){"use strict";D();var e=Gn(),n=zn(),c=ot(),h=Me(),d=it();ke();function y(C){let q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,R=arguments.length>2?arguments[2]:void 0;R===void 0&&typeof q=="string"&&(R=q,q=!0);let j=Object.assign({},n.Document.defaults[n.defaultOptions.version],n.defaultOptions);return new c.Schema(j).createNode(C,q,R)}var E=class extends n.Document{constructor(C){super(Object.assign({},n.defaultOptions,C))}};function I(C,q){let R=[],j;for(let K of e.parse(C)){let m=new E(q);m.parse(K,j),R.push(m),j=m}return R}function S(C,q){let R=e.parse(C),j=new E(q).parse(R[0]);if(R.length>1){let K="Source contains multiple documents; please use YAML.parseAllDocuments()";j.errors.unshift(new h.YAMLSemanticError(R[1],K))}return j}function M(C,q){let R=S(C,q);if(R.warnings.forEach(j=>d.warn(j)),R.errors.length>0)throw R.errors[0];return R.toJSON()}function T(C,q){let R=new E(q);return R.contents=C,String(R)}var P={createNode:y,defaultOptions:n.defaultOptions,Document:E,parse:M,parseAllDocuments:I,parseCST:e.parse,parseDocument:S,scalarOptions:n.scalarOptions,stringify:T};r.YAML=P}}),Je=F({"node_modules/yaml/index.js"(r,e){D(),e.exports=Zn().YAML}}),Xn=F({"node_modules/yaml/dist/util.js"(r){"use strict";D();var e=ke(),n=Me();r.findPair=e.findPair,r.parseMap=e.resolveMap,r.parseSeq=e.resolveSeq,r.stringifyNumber=e.stringifyNumber,r.stringifyString=e.stringifyString,r.toJSON=e.toJSON,r.Type=n.Type,r.YAMLError=n.YAMLError,r.YAMLReferenceError=n.YAMLReferenceError,r.YAMLSemanticError=n.YAMLSemanticError,r.YAMLSyntaxError=n.YAMLSyntaxError,r.YAMLWarning=n.YAMLWarning}}),er=F({"node_modules/yaml/util.js"(r){D();var e=Xn();r.findPair=e.findPair,r.toJSON=e.toJSON,r.parseMap=e.parseMap,r.parseSeq=e.parseSeq,r.stringifyNumber=e.stringifyNumber,r.stringifyString=e.stringifyString,r.Type=e.Type,r.YAMLError=e.YAMLError,r.YAMLReferenceError=e.YAMLReferenceError,r.YAMLSemanticError=e.YAMLSemanticError,r.YAMLSyntaxError=e.YAMLSyntaxError,r.YAMLWarning=e.YAMLWarning}}),tr=F({"node_modules/yaml-unist-parser/lib/yaml.js"(r){"use strict";D(),r.__esModule=!0;var e=Je();r.Document=e.Document;var n=Je();r.parseCST=n.parseCST;var c=er();r.YAMLError=c.YAMLError,r.YAMLSyntaxError=c.YAMLSyntaxError,r.YAMLSemanticError=c.YAMLSemanticError}}),nr=F({"node_modules/yaml-unist-parser/lib/parse.js"(r){"use strict";D(),r.__esModule=!0;var e=xt(),n=Gt(),c=zt(),h=Zt(),d=Fn(),y=ze(),E=Vn(),I=Un(),S=Kn(),M=$n(),T=Jn(),P=Hn(),C=tr();function q(R){var j=C.parseCST(R);M.addOrigRange(j);for(var K=j.map(function(k){return new C.Document({merge:!1,keepCstNodes:!0}).parse(k)}),m=new e.default(R),a=[],t={text:R,locator:m,comments:a,transformOffset:function(k){return I.transformOffset(k,t)},transformRange:function(k){return S.transformRange(k,t)},transformNode:function(k){return d.transformNode(k,t)},transformContent:function(k){return y.transformContent(k,t)}},s=0,i=K;s()=>(n||e((n={exports:{}}).exports,n),n.exports);var Ye=we((Ig,ru)=>{var rr=function(e){return e&&e.Math==Math&&e};ru.exports=rr(typeof globalThis=="object"&&globalThis)||rr(typeof window=="object"&&window)||rr(typeof self=="object"&&self)||rr(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Dt=we((Lg,nu)=>{nu.exports=function(e){try{return!!e()}catch{return!0}}});var Ct=we((jg,uu)=>{var So=Dt();uu.exports=!So(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var nr=we((Og,su)=>{var xo=Dt();su.exports=!xo(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var Et=we((qg,iu)=>{var bo=nr(),ur=Function.prototype.call;iu.exports=bo?ur.bind(ur):function(){return ur.apply(ur,arguments)}});var cu=we(lu=>{"use strict";var au={}.propertyIsEnumerable,ou=Object.getOwnPropertyDescriptor,To=ou&&!au.call({1:2},1);lu.f=To?function(n){var t=ou(this,n);return!!t&&t.enumerable}:au});var sr=we((Rg,pu)=>{pu.exports=function(e,n){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:n}}});var at=we((Vg,mu)=>{var fu=nr(),Du=Function.prototype,Bo=Du.bind,Or=Du.call,No=fu&&Bo.bind(Or,Or);mu.exports=fu?function(e){return e&&No(e)}:function(e){return e&&function(){return Or.apply(e,arguments)}}});var ir=we((Wg,gu)=>{var du=at(),wo=du({}.toString),_o=du("".slice);gu.exports=function(e){return _o(wo(e),8,-1)}});var hu=we(($g,yu)=>{var Po=Ye(),ko=at(),Io=Dt(),Lo=ir(),qr=Po.Object,jo=ko("".split);yu.exports=Io(function(){return!qr("z").propertyIsEnumerable(0)})?function(e){return Lo(e)=="String"?jo(e,""):qr(e)}:qr});var Mr=we((Hg,vu)=>{var Oo=Ye(),qo=Oo.TypeError;vu.exports=function(e){if(e==null)throw qo("Can't call method on "+e);return e}});var ar=we((Gg,Cu)=>{var Mo=hu(),Ro=Mr();Cu.exports=function(e){return Mo(Ro(e))}});var ot=we((Jg,Eu)=>{Eu.exports=function(e){return typeof e=="function"}});var Ft=we((Ug,Fu)=>{var Vo=ot();Fu.exports=function(e){return typeof e=="object"?e!==null:Vo(e)}});var Rt=we((zg,Au)=>{var Rr=Ye(),Wo=ot(),$o=function(e){return Wo(e)?e:void 0};Au.exports=function(e,n){return arguments.length<2?$o(Rr[e]):Rr[e]&&Rr[e][n]}});var Vr=we((Xg,Su)=>{var Ho=at();Su.exports=Ho({}.isPrototypeOf)});var bu=we((Kg,xu)=>{var Go=Rt();xu.exports=Go("navigator","userAgent")||""});var ku=we((Yg,Pu)=>{var _u=Ye(),Wr=bu(),Tu=_u.process,Bu=_u.Deno,Nu=Tu&&Tu.versions||Bu&&Bu.version,wu=Nu&&Nu.v8,ft,or;wu&&(ft=wu.split("."),or=ft[0]>0&&ft[0]<4?1:+(ft[0]+ft[1]));!or&&Wr&&(ft=Wr.match(/Edge\/(\d+)/),(!ft||ft[1]>=74)&&(ft=Wr.match(/Chrome\/(\d+)/),ft&&(or=+ft[1])));Pu.exports=or});var $r=we((Qg,Lu)=>{var Iu=ku(),Jo=Dt();Lu.exports=!!Object.getOwnPropertySymbols&&!Jo(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Iu&&Iu<41})});var Hr=we((Zg,ju)=>{var Uo=$r();ju.exports=Uo&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Gr=we((e0,Ou)=>{var zo=Ye(),Xo=Rt(),Ko=ot(),Yo=Vr(),Qo=Hr(),Zo=zo.Object;Ou.exports=Qo?function(e){return typeof e=="symbol"}:function(e){var n=Xo("Symbol");return Ko(n)&&Yo(n.prototype,Zo(e))}});var lr=we((t0,qu)=>{var el=Ye(),tl=el.String;qu.exports=function(e){try{return tl(e)}catch{return"Object"}}});var Vt=we((r0,Mu)=>{var rl=Ye(),nl=ot(),ul=lr(),sl=rl.TypeError;Mu.exports=function(e){if(nl(e))return e;throw sl(ul(e)+" is not a function")}});var cr=we((n0,Ru)=>{var il=Vt();Ru.exports=function(e,n){var t=e[n];return t==null?void 0:il(t)}});var Wu=we((u0,Vu)=>{var al=Ye(),Jr=Et(),Ur=ot(),zr=Ft(),ol=al.TypeError;Vu.exports=function(e,n){var t,s;if(n==="string"&&Ur(t=e.toString)&&!zr(s=Jr(t,e))||Ur(t=e.valueOf)&&!zr(s=Jr(t,e))||n!=="string"&&Ur(t=e.toString)&&!zr(s=Jr(t,e)))return s;throw ol("Can't convert object to primitive value")}});var Hu=we((s0,$u)=>{$u.exports=!1});var pr=we((i0,Ju)=>{var Gu=Ye(),ll=Object.defineProperty;Ju.exports=function(e,n){try{ll(Gu,e,{value:n,configurable:!0,writable:!0})}catch{Gu[e]=n}return n}});var fr=we((a0,zu)=>{var cl=Ye(),pl=pr(),Uu="__core-js_shared__",fl=cl[Uu]||pl(Uu,{});zu.exports=fl});var Xr=we((o0,Ku)=>{var Dl=Hu(),Xu=fr();(Ku.exports=function(e,n){return Xu[e]||(Xu[e]=n!==void 0?n:{})})("versions",[]).push({version:"3.22.2",mode:Dl?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var Dr=we((l0,Yu)=>{var ml=Ye(),dl=Mr(),gl=ml.Object;Yu.exports=function(e){return gl(dl(e))}});var gt=we((c0,Qu)=>{var yl=at(),hl=Dr(),vl=yl({}.hasOwnProperty);Qu.exports=Object.hasOwn||function(n,t){return vl(hl(n),t)}});var Kr=we((p0,Zu)=>{var Cl=at(),El=0,Fl=Math.random(),Al=Cl(1 .toString);Zu.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+Al(++El+Fl,36)}});var St=we((f0,us)=>{var Sl=Ye(),xl=Xr(),es=gt(),bl=Kr(),ts=$r(),ns=Hr(),Nt=xl("wks"),At=Sl.Symbol,rs=At&&At.for,Tl=ns?At:At&&At.withoutSetter||bl;us.exports=function(e){if(!es(Nt,e)||!(ts||typeof Nt[e]=="string")){var n="Symbol."+e;ts&&es(At,e)?Nt[e]=At[e]:ns&&rs?Nt[e]=rs(n):Nt[e]=Tl(n)}return Nt[e]}});var os=we((D0,as)=>{var Bl=Ye(),Nl=Et(),ss=Ft(),is=Gr(),wl=cr(),_l=Wu(),Pl=St(),kl=Bl.TypeError,Il=Pl("toPrimitive");as.exports=function(e,n){if(!ss(e)||is(e))return e;var t=wl(e,Il),s;if(t){if(n===void 0&&(n="default"),s=Nl(t,e,n),!ss(s)||is(s))return s;throw kl("Can't convert object to primitive value")}return n===void 0&&(n="number"),_l(e,n)}});var mr=we((m0,ls)=>{var Ll=os(),jl=Gr();ls.exports=function(e){var n=Ll(e,"string");return jl(n)?n:n+""}});var fs=we((d0,ps)=>{var Ol=Ye(),cs=Ft(),Yr=Ol.document,ql=cs(Yr)&&cs(Yr.createElement);ps.exports=function(e){return ql?Yr.createElement(e):{}}});var Qr=we((g0,Ds)=>{var Ml=Ct(),Rl=Dt(),Vl=fs();Ds.exports=!Ml&&!Rl(function(){return Object.defineProperty(Vl("div"),"a",{get:function(){return 7}}).a!=7})});var Zr=we(ds=>{var Wl=Ct(),$l=Et(),Hl=cu(),Gl=sr(),Jl=ar(),Ul=mr(),zl=gt(),Xl=Qr(),ms=Object.getOwnPropertyDescriptor;ds.f=Wl?ms:function(n,t){if(n=Jl(n),t=Ul(t),Xl)try{return ms(n,t)}catch{}if(zl(n,t))return Gl(!$l(Hl.f,n,t),n[t])}});var ys=we((h0,gs)=>{var Kl=Ct(),Yl=Dt();gs.exports=Kl&&Yl(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var wt=we((v0,vs)=>{var hs=Ye(),Ql=Ft(),Zl=hs.String,ec=hs.TypeError;vs.exports=function(e){if(Ql(e))return e;throw ec(Zl(e)+" is not an object")}});var gr=we(Es=>{var tc=Ye(),rc=Ct(),nc=Qr(),uc=ys(),dr=wt(),Cs=mr(),sc=tc.TypeError,en=Object.defineProperty,ic=Object.getOwnPropertyDescriptor,tn="enumerable",rn="configurable",nn="writable";Es.f=rc?uc?function(n,t,s){if(dr(n),t=Cs(t),dr(s),typeof n=="function"&&t==="prototype"&&"value"in s&&nn in s&&!s[nn]){var a=ic(n,t);a&&a[nn]&&(n[t]=s.value,s={configurable:rn in s?s[rn]:a[rn],enumerable:tn in s?s[tn]:a[tn],writable:!1})}return en(n,t,s)}:en:function(n,t,s){if(dr(n),t=Cs(t),dr(s),nc)try{return en(n,t,s)}catch{}if("get"in s||"set"in s)throw sc("Accessors not supported");return"value"in s&&(n[t]=s.value),n}});var yr=we((E0,Fs)=>{var ac=Ct(),oc=gr(),lc=sr();Fs.exports=ac?function(e,n,t){return oc.f(e,n,lc(1,t))}:function(e,n,t){return e[n]=t,e}});var hr=we((F0,As)=>{var cc=at(),pc=ot(),un=fr(),fc=cc(Function.toString);pc(un.inspectSource)||(un.inspectSource=function(e){return fc(e)});As.exports=un.inspectSource});var bs=we((A0,xs)=>{var Dc=Ye(),mc=ot(),dc=hr(),Ss=Dc.WeakMap;xs.exports=mc(Ss)&&/native code/.test(dc(Ss))});var Ns=we((S0,Bs)=>{var gc=Xr(),yc=Kr(),Ts=gc("keys");Bs.exports=function(e){return Ts[e]||(Ts[e]=yc(e))}});var sn=we((x0,ws)=>{ws.exports={}});var js=we((b0,Ls)=>{var hc=bs(),Is=Ye(),an=at(),vc=Ft(),Cc=yr(),on=gt(),ln=fr(),Ec=Ns(),Fc=sn(),_s="Object already initialized",pn=Is.TypeError,Ac=Is.WeakMap,vr,Wt,Cr,Sc=function(e){return Cr(e)?Wt(e):vr(e,{})},xc=function(e){return function(n){var t;if(!vc(n)||(t=Wt(n)).type!==e)throw pn("Incompatible receiver, "+e+" required");return t}};hc||ln.state?(yt=ln.state||(ln.state=new Ac),Ps=an(yt.get),cn=an(yt.has),ks=an(yt.set),vr=function(e,n){if(cn(yt,e))throw new pn(_s);return n.facade=e,ks(yt,e,n),n},Wt=function(e){return Ps(yt,e)||{}},Cr=function(e){return cn(yt,e)}):(xt=Ec("state"),Fc[xt]=!0,vr=function(e,n){if(on(e,xt))throw new pn(_s);return n.facade=e,Cc(e,xt,n),n},Wt=function(e){return on(e,xt)?e[xt]:{}},Cr=function(e){return on(e,xt)});var yt,Ps,cn,ks,xt;Ls.exports={set:vr,get:Wt,has:Cr,enforce:Sc,getterFor:xc}});var Ms=we((T0,qs)=>{var fn=Ct(),bc=gt(),Os=Function.prototype,Tc=fn&&Object.getOwnPropertyDescriptor,Dn=bc(Os,"name"),Bc=Dn&&function(){}.name==="something",Nc=Dn&&(!fn||fn&&Tc(Os,"name").configurable);qs.exports={EXISTS:Dn,PROPER:Bc,CONFIGURABLE:Nc}});var Hs=we((B0,$s)=>{var wc=Ye(),Rs=ot(),_c=gt(),Vs=yr(),Pc=pr(),kc=hr(),Ws=js(),Ic=Ms().CONFIGURABLE,Lc=Ws.get,jc=Ws.enforce,Oc=String(String).split("String");($s.exports=function(e,n,t,s){var a=s?!!s.unsafe:!1,r=s?!!s.enumerable:!1,u=s?!!s.noTargetGet:!1,i=s&&s.name!==void 0?s.name:n,o;if(Rs(t)&&(String(i).slice(0,7)==="Symbol("&&(i="["+String(i).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!_c(t,"name")||Ic&&t.name!==i)&&Vs(t,"name",i),o=jc(t),o.source||(o.source=Oc.join(typeof i=="string"?i:""))),e===wc){r?e[n]=t:Pc(n,t);return}else a?!u&&e[n]&&(r=!0):delete e[n];r?e[n]=t:Vs(e,n,t)})(Function.prototype,"toString",function(){return Rs(this)&&Lc(this).source||kc(this)})});var Er=we((N0,Gs)=>{var qc=Math.ceil,Mc=Math.floor;Gs.exports=function(e){var n=+e;return n!==n||n===0?0:(n>0?Mc:qc)(n)}});var Us=we((w0,Js)=>{var Rc=Er(),Vc=Math.max,Wc=Math.min;Js.exports=function(e,n){var t=Rc(e);return t<0?Vc(t+n,0):Wc(t,n)}});var Xs=we((_0,zs)=>{var $c=Er(),Hc=Math.min;zs.exports=function(e){return e>0?Hc($c(e),9007199254740991):0}});var _t=we((P0,Ks)=>{var Gc=Xs();Ks.exports=function(e){return Gc(e.length)}});var Zs=we((k0,Qs)=>{var Jc=ar(),Uc=Us(),zc=_t(),Ys=function(e){return function(n,t,s){var a=Jc(n),r=zc(a),u=Uc(s,r),i;if(e&&t!=t){for(;r>u;)if(i=a[u++],i!=i)return!0}else for(;r>u;u++)if((e||u in a)&&a[u]===t)return e||u||0;return!e&&-1}};Qs.exports={includes:Ys(!0),indexOf:Ys(!1)}});var ri=we((I0,ti)=>{var Xc=at(),mn=gt(),Kc=ar(),Yc=Zs().indexOf,Qc=sn(),ei=Xc([].push);ti.exports=function(e,n){var t=Kc(e),s=0,a=[],r;for(r in t)!mn(Qc,r)&&mn(t,r)&&ei(a,r);for(;n.length>s;)mn(t,r=n[s++])&&(~Yc(a,r)||ei(a,r));return a}});var ui=we((L0,ni)=>{ni.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ii=we(si=>{var Zc=ri(),ep=ui(),tp=ep.concat("length","prototype");si.f=Object.getOwnPropertyNames||function(n){return Zc(n,tp)}});var oi=we(ai=>{ai.f=Object.getOwnPropertySymbols});var ci=we((q0,li)=>{var rp=Rt(),np=at(),up=ii(),sp=oi(),ip=wt(),ap=np([].concat);li.exports=rp("Reflect","ownKeys")||function(n){var t=up.f(ip(n)),s=sp.f;return s?ap(t,s(n)):t}});var Di=we((M0,fi)=>{var pi=gt(),op=ci(),lp=Zr(),cp=gr();fi.exports=function(e,n,t){for(var s=op(n),a=cp.f,r=lp.f,u=0;u{var pp=Dt(),fp=ot(),Dp=/#|\.prototype\./,$t=function(e,n){var t=dp[mp(e)];return t==yp?!0:t==gp?!1:fp(n)?pp(n):!!n},mp=$t.normalize=function(e){return String(e).replace(Dp,".").toLowerCase()},dp=$t.data={},gp=$t.NATIVE="N",yp=$t.POLYFILL="P";mi.exports=$t});var Ht=we((V0,gi)=>{var dn=Ye(),hp=Zr().f,vp=yr(),Cp=Hs(),Ep=pr(),Fp=Di(),Ap=di();gi.exports=function(e,n){var t=e.target,s=e.global,a=e.stat,r,u,i,o,c,v;if(s?u=dn:a?u=dn[t]||Ep(t,{}):u=(dn[t]||{}).prototype,u)for(i in n){if(c=n[i],e.noTargetGet?(v=hp(u,i),o=v&&v.value):o=u[i],r=Ap(s?i:t+(a?".":"#")+i,e.forced),!r&&o!==void 0){if(typeof c==typeof o)continue;Fp(c,o)}(e.sham||o&&o.sham)&&vp(c,"sham",!0),Cp(u,i,c,e)}}});var gn=we((W0,yi)=>{var Sp=ir();yi.exports=Array.isArray||function(n){return Sp(n)=="Array"}});var yn=we(($0,vi)=>{var hi=at(),xp=Vt(),bp=nr(),Tp=hi(hi.bind);vi.exports=function(e,n){return xp(e),n===void 0?e:bp?Tp(e,n):function(){return e.apply(n,arguments)}}});var hn=we((H0,Ei)=>{"use strict";var Bp=Ye(),Np=gn(),wp=_t(),_p=yn(),Pp=Bp.TypeError,Ci=function(e,n,t,s,a,r,u,i){for(var o=a,c=0,v=u?_p(u,i):!1,m,d;c0&&Np(m))d=wp(m),o=Ci(e,n,m,d,o,r-1)-1;else{if(o>=9007199254740991)throw Pp("Exceed the acceptable array length");e[o]=m}o++}c++}return o};Ei.exports=Ci});var Si=we((G0,Ai)=>{var kp=St(),Ip=kp("toStringTag"),Fi={};Fi[Ip]="z";Ai.exports=String(Fi)==="[object z]"});var vn=we((J0,xi)=>{var Lp=Ye(),jp=Si(),Op=ot(),Fr=ir(),qp=St(),Mp=qp("toStringTag"),Rp=Lp.Object,Vp=Fr(function(){return arguments}())=="Arguments",Wp=function(e,n){try{return e[n]}catch{}};xi.exports=jp?Fr:function(e){var n,t,s;return e===void 0?"Undefined":e===null?"Null":typeof(t=Wp(n=Rp(e),Mp))=="string"?t:Vp?Fr(n):(s=Fr(n))=="Object"&&Op(n.callee)?"Arguments":s}});var _i=we((U0,wi)=>{var $p=at(),Hp=Dt(),bi=ot(),Gp=vn(),Jp=Rt(),Up=hr(),Ti=function(){},zp=[],Bi=Jp("Reflect","construct"),Cn=/^\s*(?:class|function)\b/,Xp=$p(Cn.exec),Kp=!Cn.exec(Ti),Gt=function(n){if(!bi(n))return!1;try{return Bi(Ti,zp,n),!0}catch{return!1}},Ni=function(n){if(!bi(n))return!1;switch(Gp(n)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Kp||!!Xp(Cn,Up(n))}catch{return!0}};Ni.sham=!0;wi.exports=!Bi||Hp(function(){var e;return Gt(Gt.call)||!Gt(Object)||!Gt(function(){e=!0})||e})?Ni:Gt});var Li=we((z0,Ii)=>{var Yp=Ye(),Pi=gn(),Qp=_i(),Zp=Ft(),ef=St(),tf=ef("species"),ki=Yp.Array;Ii.exports=function(e){var n;return Pi(e)&&(n=e.constructor,Qp(n)&&(n===ki||Pi(n.prototype))?n=void 0:Zp(n)&&(n=n[tf],n===null&&(n=void 0))),n===void 0?ki:n}});var En=we((X0,ji)=>{var rf=Li();ji.exports=function(e,n){return new(rf(e))(n===0?0:n)}});var Oi=we(()=>{"use strict";var nf=Ht(),uf=hn(),sf=Vt(),af=Dr(),of=_t(),lf=En();nf({target:"Array",proto:!0},{flatMap:function(n){var t=af(this),s=of(t),a;return sf(n),a=lf(t,0),a.length=uf(a,t,t,s,0,1,n,arguments.length>1?arguments[1]:void 0),a}})});var Fn=we((Q0,qi)=>{qi.exports={}});var Ri=we((Z0,Mi)=>{var cf=St(),pf=Fn(),ff=cf("iterator"),Df=Array.prototype;Mi.exports=function(e){return e!==void 0&&(pf.Array===e||Df[ff]===e)}});var An=we((ey,Wi)=>{var mf=vn(),Vi=cr(),df=Fn(),gf=St(),yf=gf("iterator");Wi.exports=function(e){if(e!=null)return Vi(e,yf)||Vi(e,"@@iterator")||df[mf(e)]}});var Hi=we((ty,$i)=>{var hf=Ye(),vf=Et(),Cf=Vt(),Ef=wt(),Ff=lr(),Af=An(),Sf=hf.TypeError;$i.exports=function(e,n){var t=arguments.length<2?Af(e):n;if(Cf(t))return Ef(vf(t,e));throw Sf(Ff(e)+" is not iterable")}});var Ui=we((ry,Ji)=>{var xf=Et(),Gi=wt(),bf=cr();Ji.exports=function(e,n,t){var s,a;Gi(e);try{if(s=bf(e,"return"),!s){if(n==="throw")throw t;return t}s=xf(s,e)}catch(r){a=!0,s=r}if(n==="throw")throw t;if(a)throw s;return Gi(s),t}});var Qi=we((ny,Yi)=>{var Tf=Ye(),Bf=yn(),Nf=Et(),wf=wt(),_f=lr(),Pf=Ri(),kf=_t(),zi=Vr(),If=Hi(),Lf=An(),Xi=Ui(),jf=Tf.TypeError,Ar=function(e,n){this.stopped=e,this.result=n},Ki=Ar.prototype;Yi.exports=function(e,n,t){var s=t&&t.that,a=!!(t&&t.AS_ENTRIES),r=!!(t&&t.IS_ITERATOR),u=!!(t&&t.INTERRUPTED),i=Bf(n,s),o,c,v,m,d,p,f,h=function(T){return o&&Xi(o,"normal",T),new Ar(!0,T)},w=function(T){return a?(wf(T),u?i(T[0],T[1],h):i(T[0],T[1])):u?i(T,h):i(T)};if(r)o=e;else{if(c=Lf(e),!c)throw jf(_f(e)+" is not iterable");if(Pf(c)){for(v=0,m=kf(e);m>v;v++)if(d=w(e[v]),d&&zi(Ki,d))return d;return new Ar(!1)}o=If(e,c)}for(p=o.next;!(f=Nf(p,o)).done;){try{d=w(f.value)}catch(T){Xi(o,"throw",T)}if(typeof d=="object"&&d&&zi(Ki,d))return d}return new Ar(!1)}});var ea=we((uy,Zi)=>{"use strict";var Of=mr(),qf=gr(),Mf=sr();Zi.exports=function(e,n,t){var s=Of(n);s in e?qf.f(e,s,Mf(0,t)):e[s]=t}});var ta=we(()=>{var Rf=Ht(),Vf=Qi(),Wf=ea();Rf({target:"Object",stat:!0},{fromEntries:function(n){var t={};return Vf(n,function(s,a){Wf(t,s,a)},{AS_ENTRIES:!0}),t}})});var ra=we(()=>{var $f=Ht(),Hf=Ye();$f({global:!0},{globalThis:Hf})});var na=we(()=>{ra()});var ua=we(()=>{"use strict";var Gf=Ht(),Jf=hn(),Uf=Dr(),zf=_t(),Xf=Er(),Kf=En();Gf({target:"Array",proto:!0},{flat:function(){var n=arguments.length?arguments[0]:void 0,t=Uf(this),s=zf(t),a=Kf(t,0);return a.length=Jf(a,t,t,s,0,n===void 0?1:Xf(n)),a}})});var Pg=we((my,Co)=>{var Yf=["cliName","cliCategory","cliDescription"],Qf=["_"],Zf=["languageId"],sa,ia,aa,oa,la,ca;function kn(e,n){if(e==null)return{};var t=eD(e,n),s,a;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}function eD(e,n){if(e==null)return{};var t={},s=Object.keys(e),a,r;for(r=0;r=0)&&(t[a]=e[a]);return t}Oi();ta();na();ua();function Pt(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}var tD=Object.create,Br=Object.defineProperty,rD=Object.getOwnPropertyDescriptor,In=Object.getOwnPropertyNames,nD=Object.getPrototypeOf,uD=Object.prototype.hasOwnProperty,mt=(e,n)=>function(){return e&&(n=(0,e[In(e)[0]])(e=0)),n},Z=(e,n)=>function(){return n||(0,e[In(e)[0]])((n={exports:{}}).exports,n),n.exports},Ut=(e,n)=>{for(var t in n)Br(e,t,{get:n[t],enumerable:!0})},ga=(e,n,t,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of In(n))!uD.call(e,a)&&a!==t&&Br(e,a,{get:()=>n[a],enumerable:!(s=rD(n,a))||s.enumerable});return e},sD=(e,n,t)=>(t=e!=null?tD(nD(e)):{},ga(n||!e||!e.__esModule?Br(t,"default",{value:e,enumerable:!0}):t,e)),lt=e=>ga(Br({},"__esModule",{value:!0}),e),pa,fa,Tt,re=mt({""(){pa={},fa=[],Tt={env:pa,argv:fa}}}),ya=Z({"package.json"(e,n){n.exports={version:"2.7.1"}}}),iD=Z({"node_modules/diff/lib/diff/base.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.default=n;function n(){}n.prototype={diff:function(r,u){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i.callback;typeof i=="function"&&(o=i,i={}),this.options=i;var c=this;function v(S){return o?(setTimeout(function(){o(void 0,S)},0),!0):S}r=this.castInput(r),u=this.castInput(u),r=this.removeEmpty(this.tokenize(r)),u=this.removeEmpty(this.tokenize(u));var m=u.length,d=r.length,p=1,f=m+d,h=[{newPos:-1,components:[]}],w=this.extractCommon(h[0],u,r,0);if(h[0].newPos+1>=m&&w+1>=d)return v([{value:this.join(u),count:u.length}]);function T(){for(var S=-1*p;S<=p;S+=2){var B=void 0,I=h[S-1],k=h[S+1],P=(k?k.newPos:0)-S;I&&(h[S-1]=void 0);var C=I&&I.newPos+1=m&&P+1>=d)return v(t(c,B.components,u,r,c.useLongestToken));h[S]=B}p++}if(o)(function S(){setTimeout(function(){if(p>f)return o();T()||S()},0)})();else for(;p<=f;){var A=T();if(A)return A}},pushComponent:function(r,u,i){var o=r[r.length-1];o&&o.added===u&&o.removed===i?r[r.length-1]={count:o.count+1,added:u,removed:i}:r.push({count:1,added:u,removed:i})},extractCommon:function(r,u,i,o){for(var c=u.length,v=i.length,m=r.newPos,d=m-o,p=0;m+1T.length?S:T}),p.value=a.join(f)}else p.value=a.join(u.slice(m,m+p.count));m+=p.count,p.added||(d+=p.count)}}var w=r[v-1];return v>1&&typeof w.value=="string"&&(w.added||w.removed)&&a.equals("",w.value)&&(r[v-2].value+=w.value,r.pop()),r}function s(a){return{newPos:a.newPos,components:a.components.slice(0)}}}}),aD=Z({"node_modules/diff/lib/diff/array.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.diffArrays=a,e.arrayDiff=void 0;var n=t(iD());function t(r){return r&&r.__esModule?r:{default:r}}var s=new n.default;e.arrayDiff=s,s.tokenize=function(r){return r.slice()},s.join=s.removeEmpty=function(r){return r};function a(r,u,i){return s.diff(r,u,i)}}}),Ln=Z({"src/document/doc-builders.js"(e,n){"use strict";re();function t(F){return{type:"concat",parts:F}}function s(F){return{type:"indent",contents:F}}function a(F,l){return{type:"align",contents:l,n:F}}function r(F){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return{type:"group",id:l.id,contents:F,break:Boolean(l.shouldBreak),expandedStates:l.expandedStates}}function u(F){return a(Number.NEGATIVE_INFINITY,F)}function i(F){return a({type:"root"},F)}function o(F){return a(-1,F)}function c(F,l){return r(F[0],Object.assign(Object.assign({},l),{},{expandedStates:F}))}function v(F){return{type:"fill",parts:F}}function m(F,l){let E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return{type:"if-break",breakContents:F,flatContents:l,groupId:E.groupId}}function d(F,l){return{type:"indent-if-break",contents:F,groupId:l.groupId,negate:l.negate}}function p(F){return{type:"line-suffix",contents:F}}var f={type:"line-suffix-boundary"},h={type:"break-parent"},w={type:"trim"},T={type:"line",hard:!0},A={type:"line",hard:!0,literal:!0},S={type:"line"},B={type:"line",soft:!0},I=t([T,h]),k=t([A,h]),P={type:"cursor",placeholder:Symbol("cursor")};function C(F,l){let E=[];for(let y=0;y0){for(let N=0;N=0?u.charAt(i+1)===` +`?"crlf":"cr":"lf"}function s(u){switch(u){case"cr":return"\r";case"crlf":return`\r +`;default:return` +`}}function a(u,i){let o;switch(i){case` +`:o=/\n/g;break;case"\r":o=/\r/g;break;case`\r +`:o=/\r\n/g;break;default:throw new Error('Unexpected "eol" '.concat(JSON.stringify(i),"."))}let c=u.match(o);return c?c.length:0}function r(u){return u.replace(/\r\n?/g,` +`)}n.exports={guessEndOfLine:t,convertEndOfLineToChars:s,countEndOfLineChars:a,normalizeEndOfLine:r}}}),it=Z({"src/utils/get-last.js"(e,n){"use strict";re();var t=s=>s[s.length-1];n.exports=t}});function oD(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(n,e?void 0:"g")}var lD=mt({"node_modules/strip-ansi/node_modules/ansi-regex/index.js"(){re()}});function cD(e){if(typeof e!="string")throw new TypeError("Expected a `string`, got `".concat(typeof e,"`"));return e.replace(oD(),"")}var pD=mt({"node_modules/strip-ansi/index.js"(){re(),lD()}});function fD(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var DD=mt({"node_modules/is-fullwidth-code-point/index.js"(){re()}}),mD=Z({"node_modules/emoji-regex/index.js"(e,n){"use strict";re(),n.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}}}),ha={};Ut(ha,{default:()=>dD});function dD(e){if(typeof e!="string"||e.length===0||(e=cD(e),e.length===0))return 0;e=e.replace((0,va.default)()," ");let n=0;for(let t=0;t=127&&s<=159||s>=768&&s<=879||(s>65535&&t++,n+=fD(s)?2:1)}return n}var va,gD=mt({"node_modules/string-width/index.js"(){re(),pD(),DD(),va=sD(mD())}}),Ca=Z({"src/utils/get-string-width.js"(e,n){"use strict";re();var t=(gD(),lt(ha)).default,s=/[^\x20-\x7F]/;function a(r){return r?s.test(r)?t(r):r.length:0}n.exports=a}}),On=Z({"src/document/doc-utils.js"(e,n){"use strict";re();var t=it(),{literalline:s,join:a}=Ln(),r=l=>Array.isArray(l)||l&&l.type==="concat",u=l=>{if(Array.isArray(l))return l;if(l.type!=="concat"&&l.type!=="fill")throw new Error("Expect doc type to be `concat` or `fill`.");return l.parts},i={};function o(l,E,y,N){let x=[l];for(;x.length>0;){let b=x.pop();if(b===i){y(x.pop());continue}if(y&&x.push(b,i),!E||E(b)!==!1)if(r(b)||b.type==="fill"){let L=u(b);for(let M=L.length,j=M-1;j>=0;--j)x.push(L[j])}else if(b.type==="if-break")b.flatContents&&x.push(b.flatContents),b.breakContents&&x.push(b.breakContents);else if(b.type==="group"&&b.expandedStates)if(N)for(let L=b.expandedStates.length,M=L-1;M>=0;--M)x.push(b.expandedStates[M]);else x.push(b.contents);else b.contents&&x.push(b.contents)}}function c(l,E){let y=new Map;return N(l);function N(b){if(y.has(b))return y.get(b);let L=x(b);return y.set(b,L),L}function x(b){if(Array.isArray(b))return E(b.map(N));if(b.type==="concat"||b.type==="fill"){let L=b.parts.map(N);return E(Object.assign(Object.assign({},b),{},{parts:L}))}if(b.type==="if-break"){let L=b.breakContents&&N(b.breakContents),M=b.flatContents&&N(b.flatContents);return E(Object.assign(Object.assign({},b),{},{breakContents:L,flatContents:M}))}if(b.type==="group"&&b.expandedStates){let L=b.expandedStates.map(N),M=L[0];return E(Object.assign(Object.assign({},b),{},{contents:M,expandedStates:L}))}if(b.contents){let L=N(b.contents);return E(Object.assign(Object.assign({},b),{},{contents:L}))}return E(b)}}function v(l,E,y){let N=y,x=!1;function b(L){let M=E(L);if(M!==void 0&&(x=!0,N=M),x)return!1}return o(l,b),N}function m(l){if(l.type==="group"&&l.break||l.type==="line"&&l.hard||l.type==="break-parent")return!0}function d(l){return v(l,m,!1)}function p(l){if(l.length>0){let E=t(l);!E.expandedStates&&!E.break&&(E.break="propagated")}return null}function f(l){let E=new Set,y=[];function N(b){if(b.type==="break-parent"&&p(y),b.type==="group"){if(y.push(b),E.has(b))return!1;E.add(b)}}function x(b){b.type==="group"&&y.pop().break&&p(y)}o(l,N,x,!0)}function h(l){return l.type==="line"&&!l.hard?l.soft?"":" ":l.type==="if-break"?l.flatContents||"":l}function w(l){return c(l,h)}var T=(l,E)=>l&&l.type==="line"&&l.hard&&E&&E.type==="break-parent";function A(l){if(!l)return l;if(r(l)||l.type==="fill"){let E=u(l);for(;E.length>1&&T(...E.slice(-2));)E.length-=2;if(E.length>0){let y=A(t(E));E[E.length-1]=y}return Array.isArray(l)?E:Object.assign(Object.assign({},l),{},{parts:E})}switch(l.type){case"align":case"indent":case"indent-if-break":case"group":case"line-suffix":case"label":{let E=A(l.contents);return Object.assign(Object.assign({},l),{},{contents:E})}case"if-break":{let E=A(l.breakContents),y=A(l.flatContents);return Object.assign(Object.assign({},l),{},{breakContents:E,flatContents:y})}}return l}function S(l){return A(I(l))}function B(l){switch(l.type){case"fill":if(l.parts.every(y=>y===""))return"";break;case"group":if(!l.contents&&!l.id&&!l.break&&!l.expandedStates)return"";if(l.contents.type==="group"&&l.contents.id===l.id&&l.contents.break===l.break&&l.contents.expandedStates===l.expandedStates)return l.contents;break;case"align":case"indent":case"indent-if-break":case"line-suffix":if(!l.contents)return"";break;case"if-break":if(!l.flatContents&&!l.breakContents)return"";break}if(!r(l))return l;let E=[];for(let y of u(l)){if(!y)continue;let[N,...x]=r(y)?u(y):[y];typeof N=="string"&&typeof t(E)=="string"?E[E.length-1]+=N:E.push(N),E.push(...x)}return E.length===0?"":E.length===1?E[0]:Array.isArray(l)?E:Object.assign(Object.assign({},l),{},{parts:E})}function I(l){return c(l,E=>B(E))}function k(l){let E=[],y=l.filter(Boolean);for(;y.length>0;){let N=y.shift();if(!!N){if(r(N)){y.unshift(...u(N));continue}if(E.length>0&&typeof t(E)=="string"&&typeof N=="string"){E[E.length-1]+=N;continue}E.push(N)}}return E}function P(l){return c(l,E=>Array.isArray(E)?k(E):E.parts?Object.assign(Object.assign({},E),{},{parts:k(E.parts)}):E)}function C(l){return c(l,E=>typeof E=="string"&&E.includes(` +`)?D(E):E)}function D(l){let E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s;return a(E,l.split(` +`)).parts}function g(l){if(l.type==="line")return!0}function F(l){return v(l,g,!1)}n.exports={isConcat:r,getDocParts:u,willBreak:d,traverseDoc:o,findInDoc:v,mapDoc:c,propagateBreaks:f,removeLines:w,stripTrailingHardline:S,normalizeParts:k,normalizeDoc:P,cleanDoc:I,replaceTextEndOfLine:D,replaceEndOfLine:C,canBreak:F}}}),yD=Z({"src/document/doc-printer.js"(e,n){"use strict";re();var{convertEndOfLineToChars:t}=jn(),s=it(),a=Ca(),{fill:r,cursor:u,indent:i}=Ln(),{isConcat:o,getDocParts:c}=On(),v,m=1,d=2;function p(){return{value:"",length:0,queue:[]}}function f(B,I){return w(B,{type:"indent"},I)}function h(B,I,k){return I===Number.NEGATIVE_INFINITY?B.root||p():I<0?w(B,{type:"dedent"},k):I?I.type==="root"?Object.assign(Object.assign({},B),{},{root:B}):w(B,{type:typeof I=="string"?"stringAlign":"numberAlign",n:I},k):B}function w(B,I,k){let P=I.type==="dedent"?B.queue.slice(0,-1):[...B.queue,I],C="",D=0,g=0,F=0;for(let L of P)switch(L.type){case"indent":y(),k.useTabs?l(1):E(k.tabWidth);break;case"stringAlign":y(),C+=L.n,D+=L.n.length;break;case"numberAlign":g+=1,F+=L.n;break;default:throw new Error("Unexpected type '".concat(L.type,"'"))}return x(),Object.assign(Object.assign({},B),{},{value:C,length:D,queue:P});function l(L){C+=" ".repeat(L),D+=k.tabWidth*L}function E(L){C+=" ".repeat(L),D+=L}function y(){k.useTabs?N():x()}function N(){g>0&&l(g),b()}function x(){F>0&&E(F),b()}function b(){g=0,F=0}}function T(B){if(B.length===0)return 0;let I=0;for(;B.length>0&&typeof s(B)=="string"&&/^[\t ]*$/.test(s(B));)I+=B.pop().length;if(B.length>0&&typeof s(B)=="string"){let k=s(B).replace(/[\t ]*$/,"");I+=s(B).length-k.length,B[B.length-1]=k}return I}function A(B,I,k,P,C,D){let g=I.length,F=[B],l=[];for(;k>=0;){if(F.length===0){if(g===0)return!0;F.push(I[g-1]),g--;continue}let[E,y,N]=F.pop();if(typeof N=="string")l.push(N),k-=a(N);else if(o(N)){let x=c(N);for(let b=x.length-1;b>=0;b--)F.push([E,y,x[b]])}else switch(N.type){case"indent":F.push([f(E,P),y,N.contents]);break;case"align":F.push([h(E,N.n,P),y,N.contents]);break;case"trim":k+=T(l);break;case"group":{if(D&&N.break)return!1;let x=N.break?m:y;F.push([E,x,N.expandedStates&&x===m?s(N.expandedStates):N.contents]),N.id&&(v[N.id]=x);break}case"fill":for(let x=N.parts.length-1;x>=0;x--)F.push([E,y,N.parts[x]]);break;case"if-break":case"indent-if-break":{let x=N.groupId?v[N.groupId]:y;if(x===m){let b=N.type==="if-break"?N.breakContents:N.negate?N.contents:i(N.contents);b&&F.push([E,y,b])}if(x===d){let b=N.type==="if-break"?N.flatContents:N.negate?i(N.contents):N.contents;b&&F.push([E,y,b])}break}case"line":switch(y){case d:if(!N.hard){N.soft||(l.push(" "),k-=1);break}return!0;case m:return!0}break;case"line-suffix":C=!0;break;case"line-suffix-boundary":if(C)return!1;break;case"label":F.push([E,y,N.contents]);break}}return!1}function S(B,I){v={};let k=I.printWidth,P=t(I.endOfLine),C=0,D=[[p(),m,B]],g=[],F=!1,l=[];for(;D.length>0;){let[y,N,x]=D.pop();if(typeof x=="string"){let b=P!==` +`?x.replace(/\n/g,P):x;g.push(b),C+=a(b)}else if(o(x)){let b=c(x);for(let L=b.length-1;L>=0;L--)D.push([y,N,b[L]])}else switch(x.type){case"cursor":g.push(u.placeholder);break;case"indent":D.push([f(y,I),N,x.contents]);break;case"align":D.push([h(y,x.n,I),N,x.contents]);break;case"trim":C-=T(g);break;case"group":switch(N){case d:if(!F){D.push([y,x.break?m:d,x.contents]);break}case m:{F=!1;let b=[y,d,x.contents],L=k-C,M=l.length>0;if(!x.break&&A(b,D,L,I,M))D.push(b);else if(x.expandedStates){let j=s(x.expandedStates);if(x.break){D.push([y,m,j]);break}else for(let $=1;$=x.expandedStates.length){D.push([y,m,j]);break}else{let V=x.expandedStates[$],q=[y,d,V];if(A(q,D,L,I,M)){D.push(q);break}}}else D.push([y,m,x.contents]);break}}x.id&&(v[x.id]=s(D)[1]);break;case"fill":{let b=k-C,{parts:L}=x;if(L.length===0)break;let[M,j]=L,$=[y,d,M],V=[y,m,M],q=A($,[],b,I,l.length>0,!0);if(L.length===1){q?D.push($):D.push(V);break}let Y=[y,d,j],H=[y,m,j];if(L.length===2){q?D.push(Y,$):D.push(H,V);break}L.splice(0,2);let R=[y,N,r(L)],Q=L[0];A([y,d,[M,j,Q]],[],b,I,l.length>0,!0)?D.push(R,Y,$):q?D.push(R,H,$):D.push(R,H,V);break}case"if-break":case"indent-if-break":{let b=x.groupId?v[x.groupId]:N;if(b===m){let L=x.type==="if-break"?x.breakContents:x.negate?x.contents:i(x.contents);L&&D.push([y,N,L])}if(b===d){let L=x.type==="if-break"?x.flatContents:x.negate?i(x.contents):x.contents;L&&D.push([y,N,L])}break}case"line-suffix":l.push([y,N,x.contents]);break;case"line-suffix-boundary":l.length>0&&D.push([y,N,{type:"line",hard:!0}]);break;case"line":switch(N){case d:if(x.hard)F=!0;else{x.soft||(g.push(" "),C+=1);break}case m:if(l.length>0){D.push([y,N,x],...l.reverse()),l=[];break}x.literal?y.root?(g.push(P,y.root.value),C=y.root.length):(g.push(P),C=0):(C-=T(g),g.push(P+y.value),C=y.length);break}break;case"label":D.push([y,N,x.contents]);break;default:}D.length===0&&l.length>0&&(D.push(...l.reverse()),l=[])}let E=g.indexOf(u.placeholder);if(E!==-1){let y=g.indexOf(u.placeholder,E+1),N=g.slice(0,E).join(""),x=g.slice(E+1,y).join(""),b=g.slice(y+1).join("");return{formatted:N+x+b,cursorNodeStart:N.length,cursorNodeText:x}}return{formatted:g.join("")}}n.exports={printDocToString:S}}}),hD=Z({"src/document/doc-debug.js"(e,n){"use strict";re();var{isConcat:t,getDocParts:s}=On();function a(u){if(!u)return"";if(t(u)){let i=[];for(let o of s(u))if(t(o))i.push(...a(o).parts);else{let c=a(o);c!==""&&i.push(c)}return{type:"concat",parts:i}}return u.type==="if-break"?Object.assign(Object.assign({},u),{},{breakContents:a(u.breakContents),flatContents:a(u.flatContents)}):u.type==="group"?Object.assign(Object.assign({},u),{},{contents:a(u.contents),expandedStates:u.expandedStates&&u.expandedStates.map(a)}):u.type==="fill"?{type:"fill",parts:u.parts.map(a)}:u.contents?Object.assign(Object.assign({},u),{},{contents:a(u.contents)}):u}function r(u){let i=Object.create(null),o=new Set;return c(a(u));function c(m,d,p){if(typeof m=="string")return JSON.stringify(m);if(t(m)){let f=s(m).map(c).filter(Boolean);return f.length===1?f[0]:"[".concat(f.join(", "),"]")}if(m.type==="line"){let f=Array.isArray(p)&&p[d+1]&&p[d+1].type==="break-parent";return m.literal?f?"literalline":"literallineWithoutBreakParent":m.hard?f?"hardline":"hardlineWithoutBreakParent":m.soft?"softline":"line"}if(m.type==="break-parent")return Array.isArray(p)&&p[d-1]&&p[d-1].type==="line"&&p[d-1].hard?void 0:"breakParent";if(m.type==="trim")return"trim";if(m.type==="indent")return"indent("+c(m.contents)+")";if(m.type==="align")return m.n===Number.NEGATIVE_INFINITY?"dedentToRoot("+c(m.contents)+")":m.n<0?"dedent("+c(m.contents)+")":m.n.type==="root"?"markAsRoot("+c(m.contents)+")":"align("+JSON.stringify(m.n)+", "+c(m.contents)+")";if(m.type==="if-break")return"ifBreak("+c(m.breakContents)+(m.flatContents?", "+c(m.flatContents):"")+(m.groupId?(m.flatContents?"":', ""')+", { groupId: ".concat(v(m.groupId)," }"):"")+")";if(m.type==="indent-if-break"){let f=[];m.negate&&f.push("negate: true"),m.groupId&&f.push("groupId: ".concat(v(m.groupId)));let h=f.length>0?", { ".concat(f.join(", ")," }"):"";return"indentIfBreak(".concat(c(m.contents)).concat(h,")")}if(m.type==="group"){let f=[];m.break&&m.break!=="propagated"&&f.push("shouldBreak: true"),m.id&&f.push("id: ".concat(v(m.id)));let h=f.length>0?", { ".concat(f.join(", ")," }"):"";return m.expandedStates?"conditionalGroup([".concat(m.expandedStates.map(w=>c(w)).join(","),"]").concat(h,")"):"group(".concat(c(m.contents)).concat(h,")")}if(m.type==="fill")return"fill([".concat(m.parts.map(f=>c(f)).join(", "),"])");if(m.type==="line-suffix")return"lineSuffix("+c(m.contents)+")";if(m.type==="line-suffix-boundary")return"lineSuffixBoundary";if(m.type==="label")return"label(".concat(JSON.stringify(m.label),", ").concat(c(m.contents),")");throw new Error("Unknown doc type "+m.type)}function v(m){if(typeof m!="symbol")return JSON.stringify(String(m));if(m in i)return i[m];let d=String(m).slice(7,-1)||"symbol";for(let p=0;;p++){let f=d+(p>0?" #".concat(p):"");if(!o.has(f))return o.add(f),i[m]="Symbol.for(".concat(JSON.stringify(f),")")}}}n.exports={printDocToDebug:r}}}),Oe=Z({"src/document/index.js"(e,n){"use strict";re(),n.exports={builders:Ln(),printer:yD(),utils:On(),debug:hD()}}}),Ea={};Ut(Ea,{default:()=>vD});function vD(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var CD=mt({"node_modules/escape-string-regexp/index.js"(){re()}}),Fa=Z({"node_modules/semver/internal/debug.js"(e,n){re();var t=typeof Tt=="object"&&Tt.env&&Tt.env.NODE_DEBUG&&/\bsemver\b/i.test(Tt.env.NODE_DEBUG)?function(){for(var s=arguments.length,a=new Array(s),r=0;r{};n.exports=t}}),Aa=Z({"node_modules/semver/internal/constants.js"(e,n){re();var t="2.0.0",s=256,a=Number.MAX_SAFE_INTEGER||9007199254740991,r=16;n.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:s,MAX_SAFE_INTEGER:a,MAX_SAFE_COMPONENT_LENGTH:r}}}),ED=Z({"node_modules/semver/internal/re.js"(e,n){re();var{MAX_SAFE_COMPONENT_LENGTH:t}=Aa(),s=Fa();e=n.exports={};var a=e.re=[],r=e.src=[],u=e.t={},i=0,o=(c,v,m)=>{let d=i++;s(c,d,v),u[c]=d,r[d]=v,a[d]=new RegExp(v,m?"g":void 0)};o("NUMERICIDENTIFIER","0|[1-9]\\d*"),o("NUMERICIDENTIFIERLOOSE","[0-9]+"),o("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),o("MAINVERSION","(".concat(r[u.NUMERICIDENTIFIER],")\\.(").concat(r[u.NUMERICIDENTIFIER],")\\.(").concat(r[u.NUMERICIDENTIFIER],")")),o("MAINVERSIONLOOSE","(".concat(r[u.NUMERICIDENTIFIERLOOSE],")\\.(").concat(r[u.NUMERICIDENTIFIERLOOSE],")\\.(").concat(r[u.NUMERICIDENTIFIERLOOSE],")")),o("PRERELEASEIDENTIFIER","(?:".concat(r[u.NUMERICIDENTIFIER],"|").concat(r[u.NONNUMERICIDENTIFIER],")")),o("PRERELEASEIDENTIFIERLOOSE","(?:".concat(r[u.NUMERICIDENTIFIERLOOSE],"|").concat(r[u.NONNUMERICIDENTIFIER],")")),o("PRERELEASE","(?:-(".concat(r[u.PRERELEASEIDENTIFIER],"(?:\\.").concat(r[u.PRERELEASEIDENTIFIER],")*))")),o("PRERELEASELOOSE","(?:-?(".concat(r[u.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(r[u.PRERELEASEIDENTIFIERLOOSE],")*))")),o("BUILDIDENTIFIER","[0-9A-Za-z-]+"),o("BUILD","(?:\\+(".concat(r[u.BUILDIDENTIFIER],"(?:\\.").concat(r[u.BUILDIDENTIFIER],")*))")),o("FULLPLAIN","v?".concat(r[u.MAINVERSION]).concat(r[u.PRERELEASE],"?").concat(r[u.BUILD],"?")),o("FULL","^".concat(r[u.FULLPLAIN],"$")),o("LOOSEPLAIN","[v=\\s]*".concat(r[u.MAINVERSIONLOOSE]).concat(r[u.PRERELEASELOOSE],"?").concat(r[u.BUILD],"?")),o("LOOSE","^".concat(r[u.LOOSEPLAIN],"$")),o("GTLT","((?:<|>)?=?)"),o("XRANGEIDENTIFIERLOOSE","".concat(r[u.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),o("XRANGEIDENTIFIER","".concat(r[u.NUMERICIDENTIFIER],"|x|X|\\*")),o("XRANGEPLAIN","[v=\\s]*(".concat(r[u.XRANGEIDENTIFIER],")(?:\\.(").concat(r[u.XRANGEIDENTIFIER],")(?:\\.(").concat(r[u.XRANGEIDENTIFIER],")(?:").concat(r[u.PRERELEASE],")?").concat(r[u.BUILD],"?)?)?")),o("XRANGEPLAINLOOSE","[v=\\s]*(".concat(r[u.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(r[u.XRANGEIDENTIFIERLOOSE],")(?:\\.(").concat(r[u.XRANGEIDENTIFIERLOOSE],")(?:").concat(r[u.PRERELEASELOOSE],")?").concat(r[u.BUILD],"?)?)?")),o("XRANGE","^".concat(r[u.GTLT],"\\s*").concat(r[u.XRANGEPLAIN],"$")),o("XRANGELOOSE","^".concat(r[u.GTLT],"\\s*").concat(r[u.XRANGEPLAINLOOSE],"$")),o("COERCE","(^|[^\\d])(\\d{1,".concat(t,"})(?:\\.(\\d{1,").concat(t,"}))?(?:\\.(\\d{1,").concat(t,"}))?(?:$|[^\\d])")),o("COERCERTL",r[u.COERCE],!0),o("LONETILDE","(?:~>?)"),o("TILDETRIM","(\\s*)".concat(r[u.LONETILDE],"\\s+"),!0),e.tildeTrimReplace="$1~",o("TILDE","^".concat(r[u.LONETILDE]).concat(r[u.XRANGEPLAIN],"$")),o("TILDELOOSE","^".concat(r[u.LONETILDE]).concat(r[u.XRANGEPLAINLOOSE],"$")),o("LONECARET","(?:\\^)"),o("CARETTRIM","(\\s*)".concat(r[u.LONECARET],"\\s+"),!0),e.caretTrimReplace="$1^",o("CARET","^".concat(r[u.LONECARET]).concat(r[u.XRANGEPLAIN],"$")),o("CARETLOOSE","^".concat(r[u.LONECARET]).concat(r[u.XRANGEPLAINLOOSE],"$")),o("COMPARATORLOOSE","^".concat(r[u.GTLT],"\\s*(").concat(r[u.LOOSEPLAIN],")$|^$")),o("COMPARATOR","^".concat(r[u.GTLT],"\\s*(").concat(r[u.FULLPLAIN],")$|^$")),o("COMPARATORTRIM","(\\s*)".concat(r[u.GTLT],"\\s*(").concat(r[u.LOOSEPLAIN],"|").concat(r[u.XRANGEPLAIN],")"),!0),e.comparatorTrimReplace="$1$2$3",o("HYPHENRANGE","^\\s*(".concat(r[u.XRANGEPLAIN],")\\s+-\\s+(").concat(r[u.XRANGEPLAIN],")\\s*$")),o("HYPHENRANGELOOSE","^\\s*(".concat(r[u.XRANGEPLAINLOOSE],")\\s+-\\s+(").concat(r[u.XRANGEPLAINLOOSE],")\\s*$")),o("STAR","(<|>)?=?\\s*\\*"),o("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),o("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),FD=Z({"node_modules/semver/internal/parse-options.js"(e,n){re();var t=["includePrerelease","loose","rtl"],s=a=>a?typeof a!="object"?{loose:!0}:t.filter(r=>a[r]).reduce((r,u)=>(r[u]=!0,r),{}):{};n.exports=s}}),AD=Z({"node_modules/semver/internal/identifiers.js"(e,n){re();var t=/^[0-9]+$/,s=(r,u)=>{let i=t.test(r),o=t.test(u);return i&&o&&(r=+r,u=+u),r===u?0:i&&!o?-1:o&&!i?1:rs(u,r);n.exports={compareIdentifiers:s,rcompareIdentifiers:a}}}),SD=Z({"node_modules/semver/classes/semver.js"(e,n){re();var t=Fa(),{MAX_LENGTH:s,MAX_SAFE_INTEGER:a}=Aa(),{re:r,t:u}=ED(),i=FD(),{compareIdentifiers:o}=AD(),c=class{constructor(v,m){if(m=i(m),v instanceof c){if(v.loose===!!m.loose&&v.includePrerelease===!!m.includePrerelease)return v;v=v.version}else if(typeof v!="string")throw new TypeError("Invalid Version: ".concat(v));if(v.length>s)throw new TypeError("version is longer than ".concat(s," characters"));t("SemVer",v,m),this.options=m,this.loose=!!m.loose,this.includePrerelease=!!m.includePrerelease;let d=v.trim().match(m.loose?r[u.LOOSE]:r[u.FULL]);if(!d)throw new TypeError("Invalid Version: ".concat(v));if(this.raw=v,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>a||this.major<0)throw new TypeError("Invalid major version");if(this.minor>a||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>a||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map(p=>{if(/^[0-9]+$/.test(p)){let f=+p;if(f>=0&&f=0;)typeof this.prerelease[d]=="number"&&(this.prerelease[d]++,d=-2);d===-1&&this.prerelease.push(0)}m&&(o(this.prerelease[0],m)===0?isNaN(this.prerelease[1])&&(this.prerelease=[m,0]):this.prerelease=[m,0]);break;default:throw new Error("invalid increment argument: ".concat(v))}return this.format(),this.raw=this.version,this}};n.exports=c}}),qn=Z({"node_modules/semver/functions/compare.js"(e,n){re();var t=SD(),s=(a,r,u)=>new t(a,u).compare(new t(r,u));n.exports=s}}),xD=Z({"node_modules/semver/functions/lt.js"(e,n){re();var t=qn(),s=(a,r,u)=>t(a,r,u)<0;n.exports=s}}),bD=Z({"node_modules/semver/functions/gte.js"(e,n){re();var t=qn(),s=(a,r,u)=>t(a,r,u)>=0;n.exports=s}}),TD=Z({"src/utils/arrayify.js"(e,n){"use strict";re(),n.exports=(t,s)=>Object.entries(t).map(a=>{let[r,u]=a;return Object.assign({[s]:r},u)})}}),BD=Z({"node_modules/outdent/lib/index.js"(e,n){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.outdent=void 0;function t(){for(var A=[],S=0;Stypeof m=="string"||typeof m=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"acorn",since:"2.6.0",description:"JavaScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:o,description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:m=>typeof m=="string"||typeof m=="object",cliName:"plugin",cliCategory:s},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:o,description:t(aa||(aa=Pt([` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `]))),exception:m=>typeof m=="string"||typeof m=="object",cliName:"plugin-search-dir",cliCategory:s},printWidth:{since:"0.0.0",category:o,type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:c,type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(oa||(oa=Pt([` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:a},rangeStart:{since:"1.4.0",category:c,type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(la||(la=Pt([` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `]))),cliCategory:a},requirePragma:{since:"1.7.0",category:c,type:"boolean",default:!1,description:t(ca||(ca=Pt([` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `]))),cliCategory:u},tabWidth:{type:"int",category:o,default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:o,type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:o,type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};n.exports={CATEGORY_CONFIG:s,CATEGORY_EDITOR:a,CATEGORY_FORMAT:r,CATEGORY_OTHER:u,CATEGORY_OUTPUT:i,CATEGORY_GLOBAL:o,CATEGORY_SPECIAL:c,options:v}}}),Mn=Z({"src/main/support.js"(e,n){"use strict";re();var t={compare:qn(),lt:xD(),gte:bD()},s=TD(),a=ya().version,r=ND().options;function u(){let{plugins:o=[],showUnreleased:c=!1,showDeprecated:v=!1,showInternal:m=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=a.split("-",1)[0],p=o.flatMap(A=>A.languages||[]).filter(h),f=s(Object.assign({},...o.map(A=>{let{options:S}=A;return S}),r),"name").filter(A=>h(A)&&w(A)).sort((A,S)=>A.name===S.name?0:A.name{A=Object.assign({},A),Array.isArray(A.default)&&(A.default=A.default.length===1?A.default[0].value:A.default.filter(h).sort((B,I)=>t.compare(I.since,B.since))[0].value),Array.isArray(A.choices)&&(A.choices=A.choices.filter(B=>h(B)&&w(B)),A.name==="parser"&&i(A,p,o));let S=Object.fromEntries(o.filter(B=>B.defaultOptions&&B.defaultOptions[A.name]!==void 0).map(B=>[B.name,B.defaultOptions[A.name]]));return Object.assign(Object.assign({},A),{},{pluginDefaults:S})});return{languages:p,options:f};function h(A){return c||!("since"in A)||A.since&&t.gte(d,A.since)}function w(A){return v||!("deprecated"in A)||A.deprecated&&t.lt(d,A.deprecated)}function T(A){if(m)return A;let{cliName:S,cliCategory:B,cliDescription:I}=A;return kn(A,Yf)}}function i(o,c,v){let m=new Set(o.choices.map(d=>d.value));for(let d of c)if(d.parsers){for(let p of d.parsers)if(!m.has(p)){m.add(p);let f=v.find(w=>w.parsers&&w.parsers[p]),h=d.name;f&&f.name&&(h+=" (plugin: ".concat(f.name,")")),o.choices.push({value:p,description:h})}}}n.exports={getSupportInfo:u}}}),Rn=Z({"src/utils/is-non-empty-array.js"(e,n){"use strict";re();function t(s){return Array.isArray(s)&&s.length>0}n.exports=t}}),Nr=Z({"src/utils/text/skip.js"(e,n){"use strict";re();function t(i){return(o,c,v)=>{let m=v&&v.backwards;if(c===!1)return!1;let{length:d}=o,p=c;for(;p>=0&&pH[H.length-2];function w(H){return(R,Q,ee)=>{let te=ee&&ee.backwards;if(Q===!1)return!1;let{length:oe}=R,W=Q;for(;W>=0&&W2&&arguments[2]!==void 0?arguments[2]:{},ee=o(H,Q.backwards?R-1:R,Q),te=p(H,ee,Q);return ee!==te}function A(H,R,Q){for(let ee=R;ee2&&arguments[2]!==void 0?arguments[2]:{};return o(H,Q.backwards?R-1:R,Q)!==R}function D(H,R){let Q=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,ee=0;for(let te=Q;teue?oe:te}return W}function l(H,R){let Q=H.slice(1,-1),ee=R.parser==="json"||R.parser==="json5"&&R.quoteProps==="preserve"&&!R.singleQuote?'"':R.__isInHtmlAttribute?"'":F(Q,R.singleQuote?"'":'"').quote;return E(Q,ee,!(R.parser==="css"||R.parser==="less"||R.parser==="scss"||R.__embeddedInHtml))}function E(H,R,Q){let ee=R==='"'?"'":'"',te=/\\(.)|(["'])/gs,oe=H.replace(te,(W,X,ue)=>X===ee?X:ue===R?"\\"+ue:ue||(Q&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(X)?X:"\\"+X));return R+oe+R}function y(H){return H.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e|$)/,"")}function N(H,R){let Q=H.match(new RegExp("(".concat(t(R),")+"),"g"));return Q===null?0:Q.reduce((ee,te)=>Math.max(ee,te.length/R.length),0)}function x(H,R){let Q=H.match(new RegExp("(".concat(t(R),")+"),"g"));if(Q===null)return 0;let ee=new Map,te=0;for(let oe of Q){let W=oe.length/R.length;ee.set(W,!0),W>te&&(te=W)}for(let oe=1;oe{let{name:oe}=te;return oe.toLowerCase()===H})||Q.find(te=>{let{aliases:oe}=te;return Array.isArray(oe)&&oe.includes(H)})||Q.find(te=>{let{extensions:oe}=te;return Array.isArray(oe)&&oe.includes(".".concat(H))});return ee&&ee.parsers[0]}function V(H){return H&&H.type==="front-matter"}function q(H){let R=new WeakMap;return function(Q){return R.has(Q)||R.set(Q,Symbol(H)),R.get(Q)}}function Y(H){let R=H.type||H.kind||"(unknown type)",Q=String(H.name||H.id&&(typeof H.id=="object"?H.id.name:H.id)||H.key&&(typeof H.key=="object"?H.key.name:H.key)||H.value&&(typeof H.value=="object"?"":String(H.value))||H.operator||"");return Q.length>20&&(Q=Q.slice(0,19)+"\u2026"),R+(Q?" "+Q:"")}n.exports={inferParserByLanguage:$,getStringWidth:u,getMaxContinuousCount:N,getMinNotPresentContinuousCount:x,getPenultimate:h,getLast:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:f,getNextNonSpaceNonCommentCharacterIndex:k,getNextNonSpaceNonCommentCharacter:P,skip:w,skipWhitespace:i,skipSpaces:o,skipToLineEnd:c,skipEverythingButNewLine:v,skipInlineComment:m,skipTrailingComment:d,skipNewline:p,isNextLineEmptyAfterIndex:B,isNextLineEmpty:I,isPreviousLineEmpty:S,hasNewline:T,hasNewlineInRange:A,hasSpaces:C,getAlignmentSize:D,getIndentSize:g,getPreferredQuote:F,printString:l,printNumber:y,makeString:E,addLeadingComment:L,addDanglingComment:M,addTrailingComment:j,isFrontMatterNode:V,isNonEmptyArray:r,createGroupIdMapper:q}}}),Ta={};Ut(Ta,{basename:()=>Pa,default:()=>Ia,delimiter:()=>Bn,dirname:()=>_a,extname:()=>ka,isAbsolute:()=>Wn,join:()=>Na,normalize:()=>Vn,relative:()=>wa,resolve:()=>Tr,sep:()=>Tn});function Ba(e,n){for(var t=0,s=e.length-1;s>=0;s--){var a=e[s];a==="."?e.splice(s,1):a===".."?(e.splice(s,1),t++):t&&(e.splice(s,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}function Tr(){for(var e="",n=!1,t=arguments.length-1;t>=-1&&!n;t--){var s=t>=0?arguments[t]:"/";if(typeof s!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!s)continue;e=s+"/"+e,n=s.charAt(0)==="/"}return e=Ba($n(e.split("/"),function(a){return!!a}),!n).join("/"),(n?"/":"")+e||"."}function Vn(e){var n=Wn(e),t=La(e,-1)==="/";return e=Ba($n(e.split("/"),function(s){return!!s}),!n).join("/"),!e&&!n&&(e="."),e&&t&&(e+="/"),(n?"/":"")+e}function Wn(e){return e.charAt(0)==="/"}function Na(){var e=Array.prototype.slice.call(arguments,0);return Vn($n(e,function(n,t){if(typeof n!="string")throw new TypeError("Arguments to path.join must be strings");return n}).join("/"))}function wa(e,n){e=Tr(e).substr(1),n=Tr(n).substr(1);function t(c){for(var v=0;v=0&&c[m]==="";m--);return v>m?[]:c.slice(v,m-v+1)}for(var s=t(e.split("/")),a=t(n.split("/")),r=Math.min(s.length,a.length),u=r,i=0;ibr,__asyncDelegator:()=>GD,__asyncGenerator:()=>HD,__asyncValues:()=>JD,__await:()=>Jt,__awaiter:()=>qD,__classPrivateFieldGet:()=>KD,__classPrivateFieldSet:()=>YD,__createBinding:()=>RD,__decorate:()=>LD,__exportStar:()=>VD,__extends:()=>kD,__generator:()=>MD,__importDefault:()=>XD,__importStar:()=>zD,__makeTemplateObject:()=>UD,__metadata:()=>OD,__param:()=>jD,__read:()=>ja,__rest:()=>ID,__spread:()=>WD,__spreadArrays:()=>$D,__values:()=>Nn});function kD(e,n){xr(e,n);function t(){this.constructor=e}e.prototype=n===null?Object.create(n):(t.prototype=n.prototype,new t)}function ID(e,n){var t={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&n.indexOf(s)<0&&(t[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(e);a=0;i--)(u=e[i])&&(r=(a<3?u(r):a>3?u(n,t,r):u(n,t))||r);return a>3&&r&&Object.defineProperty(n,t,r),r}function jD(e,n){return function(t,s){n(t,s,e)}}function OD(e,n){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,n)}function qD(e,n,t,s){function a(r){return r instanceof t?r:new t(function(u){u(r)})}return new(t||(t=Promise))(function(r,u){function i(v){try{c(s.next(v))}catch(m){u(m)}}function o(v){try{c(s.throw(v))}catch(m){u(m)}}function c(v){v.done?r(v.value):a(v.value).then(i,o)}c((s=s.apply(e,n||[])).next())})}function MD(e,n){var t={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},s,a,r,u;return u={next:i(0),throw:i(1),return:i(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function i(c){return function(v){return o([c,v])}}function o(c){if(s)throw new TypeError("Generator is already executing.");for(;t;)try{if(s=1,a&&(r=c[0]&2?a.return:c[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,c[1])).done)return r;switch(a=0,r&&(c=[c[0]&2,r.value]),c[0]){case 0:case 1:r=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,a=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(r=t.trys,!(r=r.length>0&&r[r.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!r||c[1]>r[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[s++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function ja(e,n){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var s=t.call(e),a,r=[],u;try{for(;(n===void 0||n-- >0)&&!(a=s.next()).done;)r.push(a.value)}catch(i){u={error:i}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(u)throw u.error}}return r}function WD(){for(var e=[],n=0;n1||i(d,p)})})}function i(d,p){try{o(s[d](p))}catch(f){m(r[0][3],f)}}function o(d){d.value instanceof Jt?Promise.resolve(d.value.v).then(c,v):m(r[0][2],d)}function c(d){i("next",d)}function v(d){i("throw",d)}function m(d,p){d(p),r.shift(),r.length&&i(r[0][0],r[0][1])}}function GD(e){var n,t;return n={},s("next"),s("throw",function(a){throw a}),s("return"),n[Symbol.iterator]=function(){return this},n;function s(a,r){n[a]=e[a]?function(u){return(t=!t)?{value:Jt(e[a](u)),done:a==="return"}:r?r(u):u}:r}}function JD(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=e[Symbol.asyncIterator],t;return n?n.call(e):(e=typeof Nn=="function"?Nn(e):e[Symbol.iterator](),t={},s("next"),s("throw"),s("return"),t[Symbol.asyncIterator]=function(){return this},t);function s(r){t[r]=e[r]&&function(u){return new Promise(function(i,o){u=e[r](u),a(i,o,u.done,u.value)})}}function a(r,u,i,o){Promise.resolve(o).then(function(c){r({value:c,done:i})},u)}}function UD(e,n){return Object.defineProperty?Object.defineProperty(e,"raw",{value:n}):e.raw=n,e}function zD(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var t in e)Object.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function XD(e){return e&&e.__esModule?e:{default:e}}function KD(e,n){if(!n.has(e))throw new TypeError("attempted to get private field on non-instance");return n.get(e)}function YD(e,n,t){if(!n.has(e))throw new TypeError("attempted to set private field on non-instance");return n.set(e,t),t}var xr,br,ht=mt({"node_modules/tslib/tslib.es6.js"(){re(),xr=function(e,n){return xr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,s){t.__proto__=s}||function(t,s){for(var a in s)s.hasOwnProperty(a)&&(t[a]=s[a])},xr(e,n)},br=function(){return br=Object.assign||function(n){for(var t,s=1,a=arguments.length;s/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(n)?n:JSON.stringify(n),value(n){if(n===null||typeof n!="object")return JSON.stringify(n);if(Array.isArray(n))return"[".concat(n.map(s=>e.apiDescriptor.value(s)).join(", "),"]");let t=Object.keys(n);return t.length===0?"{}":"{ ".concat(t.map(s=>"".concat(e.apiDescriptor.key(s),": ").concat(e.apiDescriptor.value(n[s]))).join(", ")," }")},pair:n=>{let{key:t,value:s}=n;return e.apiDescriptor.value({[t]:s})}}}}),QD=Z({"node_modules/vnopts/lib/descriptors/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(Oa(),e)}}),_r=Z({"scripts/build/shims/chalk.cjs"(e,n){"use strict";re();var t=s=>s;t.grey=t,t.red=t,t.bold=t,t.yellow=t,t.blue=t,t.default=t,n.exports=t}}),qa=Z({"node_modules/vnopts/lib/handlers/deprecated/common.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=_r();e.commonDeprecatedHandler=(t,s,a)=>{let{descriptor:r}=a,u=["".concat(n.default.yellow(typeof t=="string"?r.key(t):r.pair(t))," is deprecated")];return s&&u.push("we now treat it as ".concat(n.default.blue(typeof s=="string"?r.key(s):r.pair(s)))),u.join("; ")+"."}}}),ZD=Z({"node_modules/vnopts/lib/handlers/deprecated/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(qa(),e)}}),em=Z({"node_modules/vnopts/lib/handlers/invalid/common.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=_r();e.commonInvalidHandler=(t,s,a)=>["Invalid ".concat(n.default.red(a.descriptor.key(t))," value."),"Expected ".concat(n.default.blue(a.schemas[t].expected(a)),","),"but received ".concat(n.default.red(a.descriptor.value(s)),".")].join(" ")}}),Ma=Z({"node_modules/vnopts/lib/handlers/invalid/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(em(),e)}}),tm=Z({"node_modules/vnopts/node_modules/leven/index.js"(e,n){"use strict";re();var t=[],s=[];n.exports=function(a,r){if(a===r)return 0;var u=a;a.length>r.length&&(a=r,r=u);var i=a.length,o=r.length;if(i===0)return o;if(o===0)return i;for(;i>0&&a.charCodeAt(~-i)===r.charCodeAt(~-o);)i--,o--;if(i===0)return o;for(var c=0;cm?p>m?m+1:p:p>d?d+1:p;return m}}}),Ra=Z({"node_modules/vnopts/lib/handlers/unknown/leven.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=_r(),t=tm();e.levenUnknownHandler=(s,a,r)=>{let{descriptor:u,logger:i,schemas:o}=r,c=["Ignored unknown option ".concat(n.default.yellow(u.pair({key:s,value:a})),".")],v=Object.keys(o).sort().find(m=>t(s,m)<3);v&&c.push("Did you mean ".concat(n.default.blue(u.key(v)),"?")),i.warn(c.join(" "))}}}),rm=Z({"node_modules/vnopts/lib/handlers/unknown/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(Ra(),e)}}),nm=Z({"node_modules/vnopts/lib/handlers/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(ZD(),e),n.__exportStar(Ma(),e),n.__exportStar(rm(),e)}}),vt=Z({"node_modules/vnopts/lib/schema.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=["default","expected","validate","deprecated","forward","redirect","overlap","preprocess","postprocess"];function t(r,u){let i=new r(u),o=Object.create(i);for(let c of n)c in u&&(o[c]=a(u[c],i,s.prototype[c].length));return o}e.createSchema=t;var s=class{constructor(r){this.name=r.name}static create(r){return t(this,r)}default(r){}expected(r){return"nothing"}validate(r,u){return!1}deprecated(r,u){return!1}forward(r,u){}redirect(r,u){}overlap(r,u,i){return r}preprocess(r,u){return r}postprocess(r,u){return r}};e.Schema=s;function a(r,u,i){return typeof r=="function"?function(){for(var o=arguments.length,c=new Array(o),v=0;vr}}}),um=Z({"node_modules/vnopts/lib/schemas/alias.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{constructor(s){super(s),this._sourceName=s.sourceName}expected(s){return s.schemas[this._sourceName].expected(s)}validate(s,a){return a.schemas[this._sourceName].validate(s,a)}redirect(s,a){return this._sourceName}};e.AliasSchema=t}}),sm=Z({"node_modules/vnopts/lib/schemas/any.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"anything"}validate(){return!0}};e.AnySchema=t}}),im=Z({"node_modules/vnopts/lib/schemas/array.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt)),t=vt(),s=class extends t.Schema{constructor(r){var{valueSchema:u,name:i=u.name}=r,o=n.__rest(r,["valueSchema","name"]);super(Object.assign({},o,{name:i})),this._valueSchema=u}expected(r){return"an array of ".concat(this._valueSchema.expected(r))}validate(r,u){if(!Array.isArray(r))return!1;let i=[];for(let o of r){let c=u.normalizeValidateResult(this._valueSchema.validate(o,u),o);c!==!0&&i.push(c.value)}return i.length===0?!0:{value:i}}deprecated(r,u){let i=[];for(let o of r){let c=u.normalizeDeprecatedResult(this._valueSchema.deprecated(o,u),o);c!==!1&&i.push(...c.map(v=>{let{value:m}=v;return{value:[m]}}))}return i}forward(r,u){let i=[];for(let o of r){let c=u.normalizeForwardResult(this._valueSchema.forward(o,u),o);i.push(...c.map(a))}return i}redirect(r,u){let i=[],o=[];for(let c of r){let v=u.normalizeRedirectResult(this._valueSchema.redirect(c,u),c);"remain"in v&&i.push(v.remain),o.push(...v.redirect.map(a))}return i.length===0?{redirect:o}:{redirect:o,remain:i}}overlap(r,u){return r.concat(u)}};e.ArraySchema=s;function a(r){let{from:u,to:i}=r;return{from:[u],to:i}}}}),am=Z({"node_modules/vnopts/lib/schemas/boolean.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"true or false"}validate(s){return typeof s=="boolean"}};e.BooleanSchema=t}}),Hn=Z({"node_modules/vnopts/lib/utils.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});function n(p,f){let h=Object.create(null);for(let w of p){let T=w[f];if(h[T])throw new Error("Duplicate ".concat(f," ").concat(JSON.stringify(T)));h[T]=w}return h}e.recordFromArray=n;function t(p,f){let h=new Map;for(let w of p){let T=w[f];if(h.has(T))throw new Error("Duplicate ".concat(f," ").concat(JSON.stringify(T)));h.set(T,w)}return h}e.mapFromArray=t;function s(){let p=Object.create(null);return f=>{let h=JSON.stringify(f);return p[h]?!0:(p[h]=!0,!1)}}e.createAutoChecklist=s;function a(p,f){let h=[],w=[];for(let T of p)f(T)?h.push(T):w.push(T);return[h,w]}e.partition=a;function r(p){return p===Math.floor(p)}e.isInt=r;function u(p,f){if(p===f)return 0;let h=typeof p,w=typeof f,T=["undefined","object","boolean","number","string"];return h!==w?T.indexOf(h)-T.indexOf(w):h!=="string"?Number(p)-Number(f):p.localeCompare(f)}e.comparePrimitive=u;function i(p){return p===void 0?{}:p}e.normalizeDefaultResult=i;function o(p,f){return p===!0?!0:p===!1?{value:f}:p}e.normalizeValidateResult=o;function c(p,f){let h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return p===!1?!1:p===!0?h?!0:[{value:f}]:"value"in p?[p]:p.length===0?!1:p}e.normalizeDeprecatedResult=c;function v(p,f){return typeof p=="string"||"key"in p?{from:f,to:p}:"from"in p?{from:p.from,to:p.to}:{from:f,to:p.to}}e.normalizeTransferResult=v;function m(p,f){return p===void 0?[]:Array.isArray(p)?p.map(h=>v(h,f)):[v(p,f)]}e.normalizeForwardResult=m;function d(p,f){let h=m(typeof p=="object"&&"redirect"in p?p.redirect:p,f);return h.length===0?{remain:f,redirect:h}:typeof p=="object"&&"remain"in p?{remain:p.remain,redirect:h}:{redirect:h}}e.normalizeRedirectResult=d}}),om=Z({"node_modules/vnopts/lib/schemas/choice.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=Hn(),s=class extends n.Schema{constructor(a){super(a),this._choices=t.mapFromArray(a.choices.map(r=>r&&typeof r=="object"?r:{value:r}),"value")}expected(a){let{descriptor:r}=a,u=Array.from(this._choices.keys()).map(c=>this._choices.get(c)).filter(c=>!c.deprecated).map(c=>c.value).sort(t.comparePrimitive).map(r.value),i=u.slice(0,-2),o=u.slice(-2);return i.concat(o.join(" or ")).join(", ")}validate(a){return this._choices.has(a)}deprecated(a){let r=this._choices.get(a);return r&&r.deprecated?{value:a}:!1}forward(a){let r=this._choices.get(a);return r?r.forward:void 0}redirect(a){let r=this._choices.get(a);return r?r.redirect:void 0}};e.ChoiceSchema=s}}),Va=Z({"node_modules/vnopts/lib/schemas/number.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"a number"}validate(s,a){return typeof s=="number"}};e.NumberSchema=t}}),lm=Z({"node_modules/vnopts/lib/schemas/integer.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Hn(),t=Va(),s=class extends t.NumberSchema{expected(){return"an integer"}validate(a,r){return r.normalizeValidateResult(super.validate(a,r),a)===!0&&n.isInt(a)}};e.IntegerSchema=s}}),cm=Z({"node_modules/vnopts/lib/schemas/string.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=vt(),t=class extends n.Schema{expected(){return"a string"}validate(s){return typeof s=="string"}};e.StringSchema=t}}),pm=Z({"node_modules/vnopts/lib/schemas/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(um(),e),n.__exportStar(sm(),e),n.__exportStar(im(),e),n.__exportStar(am(),e),n.__exportStar(om(),e),n.__exportStar(lm(),e),n.__exportStar(Va(),e),n.__exportStar(cm(),e)}}),fm=Z({"node_modules/vnopts/lib/defaults.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Oa(),t=qa(),s=Ma(),a=Ra();e.defaultDescriptor=n.apiDescriptor,e.defaultUnknownHandler=a.levenUnknownHandler,e.defaultInvalidHandler=s.commonInvalidHandler,e.defaultDeprecatedHandler=t.commonDeprecatedHandler}}),Dm=Z({"node_modules/vnopts/lib/normalize.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=fm(),t=Hn();e.normalize=(a,r,u)=>new s(r,u).normalize(a);var s=class{constructor(a,r){let{logger:u=console,descriptor:i=n.defaultDescriptor,unknown:o=n.defaultUnknownHandler,invalid:c=n.defaultInvalidHandler,deprecated:v=n.defaultDeprecatedHandler}=r||{};this._utils={descriptor:i,logger:u||{warn:()=>{}},schemas:t.recordFromArray(a,"name"),normalizeDefaultResult:t.normalizeDefaultResult,normalizeDeprecatedResult:t.normalizeDeprecatedResult,normalizeForwardResult:t.normalizeForwardResult,normalizeRedirectResult:t.normalizeRedirectResult,normalizeValidateResult:t.normalizeValidateResult},this._unknownHandler=o,this._invalidHandler=c,this._deprecatedHandler=v,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=t.createAutoChecklist()}normalize(a){let r={},u=[a],i=()=>{for(;u.length!==0;){let o=u.shift(),c=this._applyNormalization(o,r);u.push(...c)}};i();for(let o of Object.keys(this._utils.schemas)){let c=this._utils.schemas[o];if(!(o in r)){let v=t.normalizeDefaultResult(c.default(this._utils));"value"in v&&u.push({[o]:v.value})}}i();for(let o of Object.keys(this._utils.schemas)){let c=this._utils.schemas[o];o in r&&(r[o]=c.postprocess(r[o],this._utils))}return r}_applyNormalization(a,r){let u=[],[i,o]=t.partition(Object.keys(a),c=>c in this._utils.schemas);for(let c of i){let v=this._utils.schemas[c],m=v.preprocess(a[c],this._utils),d=t.normalizeValidateResult(v.validate(m,this._utils),m);if(d!==!0){let{value:T}=d,A=this._invalidHandler(c,T,this._utils);throw typeof A=="string"?new Error(A):A}let p=T=>{let{from:A,to:S}=T;u.push(typeof S=="string"?{[S]:A}:{[S.key]:S.value})},f=T=>{let{value:A,redirectTo:S}=T,B=t.normalizeDeprecatedResult(v.deprecated(A,this._utils),m,!0);if(B!==!1)if(B===!0)this._hasDeprecationWarned(c)||this._utils.logger.warn(this._deprecatedHandler(c,S,this._utils));else for(let{value:I}of B){let k={key:c,value:I};if(!this._hasDeprecationWarned(k)){let P=typeof S=="string"?{key:S,value:I}:S;this._utils.logger.warn(this._deprecatedHandler(k,P,this._utils))}}};t.normalizeForwardResult(v.forward(m,this._utils),m).forEach(p);let w=t.normalizeRedirectResult(v.redirect(m,this._utils),m);if(w.redirect.forEach(p),"remain"in w){let T=w.remain;r[c]=c in r?v.overlap(r[c],T,this._utils):T,f({value:T})}for(let{from:T,to:A}of w.redirect)f({value:T,redirectTo:A})}for(let c of o){let v=a[c],m=this._unknownHandler(c,v,this._utils);if(m)for(let d of Object.keys(m)){let p={[d]:m[d]};d in this._utils.schemas?u.push(p):Object.assign(r,p)}}return u}};e.Normalizer=s}}),mm=Z({"node_modules/vnopts/lib/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=(ht(),lt(dt));n.__exportStar(QD(),e),n.__exportStar(nm(),e),n.__exportStar(pm(),e),n.__exportStar(Dm(),e),n.__exportStar(vt(),e)}}),dm=Z({"src/main/options-normalizer.js"(e,n){"use strict";re();var t=mm(),s=it(),a={key:d=>d.length===1?"-".concat(d):"--".concat(d),value:d=>t.apiDescriptor.value(d),pair:d=>{let{key:p,value:f}=d;return f===!1?"--no-".concat(p):f===!0?a.key(p):f===""?"".concat(a.key(p)," without an argument"):"".concat(a.key(p),"=").concat(f)}},r=d=>{let{colorsModule:p,levenshteinDistance:f}=d;return class extends t.ChoiceSchema{constructor(w){let{name:T,flags:A}=w;super({name:T,choices:A}),this._flags=[...A].sort()}preprocess(w,T){if(typeof w=="string"&&w.length>0&&!this._flags.includes(w)){let A=this._flags.find(S=>f(S,w)<3);if(A)return T.logger.warn(["Unknown flag ".concat(p.yellow(T.descriptor.value(w)),","),"did you mean ".concat(p.blue(T.descriptor.value(A)),"?")].join(" ")),A}return w}expected(){return"a flag"}}},u;function i(d,p){let{logger:f=!1,isCLI:h=!1,passThrough:w=!1,colorsModule:T=null,levenshteinDistance:A=null}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},S=w?Array.isArray(w)?(D,g)=>w.includes(D)?{[D]:g}:void 0:(D,g)=>({[D]:g}):(D,g,F)=>{let l=F.schemas,{_:E}=l,y=kn(l,Qf);return t.levenUnknownHandler(D,g,Object.assign(Object.assign({},F),{},{schemas:y}))},B=h?a:t.apiDescriptor,I=o(p,{isCLI:h,colorsModule:T,levenshteinDistance:A}),k=new t.Normalizer(I,{logger:f,unknown:S,descriptor:B}),P=f!==!1;P&&u&&(k._hasDeprecationWarned=u);let C=k.normalize(d);return P&&(u=k._hasDeprecationWarned),h&&C["plugin-search"]===!1&&(C["plugin-search-dir"]=!1),C}function o(d,p){let{isCLI:f,colorsModule:h,levenshteinDistance:w}=p,T=[];f&&T.push(t.AnySchema.create({name:"_"}));for(let A of d)T.push(c(A,{isCLI:f,optionInfos:d,colorsModule:h,levenshteinDistance:w})),A.alias&&f&&T.push(t.AliasSchema.create({name:A.alias,sourceName:A.name}));return T}function c(d,p){let{isCLI:f,optionInfos:h,colorsModule:w,levenshteinDistance:T}=p,{name:A}=d;if(A==="plugin-search-dir"||A==="pluginSearchDirs")return t.AnySchema.create({name:A,preprocess(k){return k===!1||(k=Array.isArray(k)?k:[k]),k},validate(k){return k===!1?!0:k.every(P=>typeof P=="string")},expected(){return"false or paths to plugin search dir"}});let S={name:A},B,I={};switch(d.type){case"int":B=t.IntegerSchema,f&&(S.preprocess=Number);break;case"string":B=t.StringSchema;break;case"choice":B=t.ChoiceSchema,S.choices=d.choices.map(k=>typeof k=="object"&&k.redirect?Object.assign(Object.assign({},k),{},{redirect:{to:{key:d.name,value:k.redirect}}}):k);break;case"boolean":B=t.BooleanSchema;break;case"flag":B=r({colorsModule:w,levenshteinDistance:T}),S.flags=h.flatMap(k=>[k.alias,k.description&&k.name,k.oppositeDescription&&"no-".concat(k.name)].filter(Boolean));break;case"path":B=t.StringSchema;break;default:throw new Error("Unexpected type ".concat(d.type))}if(d.exception?S.validate=(k,P,C)=>d.exception(k)||P.validate(k,C):S.validate=(k,P,C)=>k===void 0||P.validate(k,C),d.redirect&&(I.redirect=k=>k?{to:{key:d.redirect.option,value:d.redirect.value}}:void 0),d.deprecated&&(I.deprecated=!0),f&&!d.array){let k=S.preprocess||(P=>P);S.preprocess=(P,C,D)=>C.preprocess(k(Array.isArray(P)?s(P):P),D)}return d.array?t.ArraySchema.create(Object.assign(Object.assign(Object.assign({},f?{preprocess:k=>Array.isArray(k)?k:[k]}:{}),I),{},{valueSchema:B.create(S)})):B.create(Object.assign(Object.assign({},S),I))}function v(d,p,f){return i(d,p,f)}function m(d,p,f){return i(d,p,Object.assign({isCLI:!0},f))}n.exports={normalizeApiOptions:v,normalizeCliOptions:m}}}),st=Z({"src/language-js/loc.js"(e,n){"use strict";re();var t=Rn();function s(o,c){let{ignoreDecorators:v}=c||{};if(!v){let m=o.declaration&&o.declaration.decorators||o.decorators;if(t(m))return s(m[0])}return o.range?o.range[0]:o.start}function a(o){return o.range?o.range[1]:o.end}function r(o,c){let v=s(o);return Number.isInteger(v)&&v===s(c)}function u(o,c){let v=a(o);return Number.isInteger(v)&&v===a(c)}function i(o,c){return r(o,c)&&u(o,c)}n.exports={locStart:s,locEnd:a,hasSameLocStart:r,hasSameLoc:i}}}),gm=Z({"src/main/load-parser.js"(e,n){re(),n.exports=()=>{}}}),ym=Z({"scripts/build/shims/babel-highlight.cjs"(e,n){"use strict";re();var t=_r(),s={shouldHighlight:()=>!1,getChalk:()=>t};n.exports=s}}),hm=Z({"node_modules/@babel/code-frame/lib/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.codeFrameColumns=u,e.default=i;var n=ym(),t=!1;function s(o){return{gutter:o.grey,marker:o.red.bold,message:o.red.bold}}var a=/\r\n|[\n\r\u2028\u2029]/;function r(o,c,v){let m=Object.assign({column:0,line:-1},o.start),d=Object.assign({},m,o.end),{linesAbove:p=2,linesBelow:f=3}=v||{},h=m.line,w=m.column,T=d.line,A=d.column,S=Math.max(h-(p+1),0),B=Math.min(c.length,T+f);h===-1&&(S=0),T===-1&&(B=c.length);let I=T-h,k={};if(I)for(let P=0;P<=I;P++){let C=P+h;if(!w)k[C]=!0;else if(P===0){let D=c[C-1].length;k[C]=[w,D-w+1]}else if(P===I)k[C]=[0,A];else{let D=c[C-P].length;k[C]=[0,D]}}else w===A?w?k[h]=[w,0]:k[h]=!0:k[h]=[w,A-w];return{start:S,end:B,markerLines:k}}function u(o,c){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},m=(v.highlightCode||v.forceColor)&&(0,n.shouldHighlight)(v),d=(0,n.getChalk)(v),p=s(d),f=(P,C)=>m?P(C):C,h=o.split(a),{start:w,end:T,markerLines:A}=r(c,h,v),S=c.start&&typeof c.start.column=="number",B=String(T).length,k=(m?(0,n.default)(o,v):o).split(a,T).slice(w,T).map((P,C)=>{let D=w+1+C,g=" ".concat(D).slice(-B),F=" ".concat(g," |"),l=A[D],E=!A[D+1];if(l){let y="";if(Array.isArray(l)){let N=P.slice(0,Math.max(l[0]-1,0)).replace(/[^\t]/g," "),x=l[1]||1;y=[` + `,f(p.gutter,F.replace(/\d/g," "))," ",N,f(p.marker,"^").repeat(x)].join(""),E&&v.message&&(y+=" "+f(p.message,v.message))}return[f(p.marker,">"),f(p.gutter,F),P.length>0?" ".concat(P):"",y].join("")}else return" ".concat(f(p.gutter,F)).concat(P.length>0?" ".concat(P):"")}).join(` +`);return v.message&&!S&&(k="".concat(" ".repeat(B+1)).concat(v.message,` +`).concat(k)),m?d.reset(k):k}function i(o,c,v){let m=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};if(!t){t=!0;let p="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(Tt.emitWarning)Tt.emitWarning(p,"DeprecationWarning");else{let f=new Error(p);f.name="DeprecationWarning",console.warn(new Error(p))}}return v=Math.max(v,0),u(o,{start:{column:v,line:c}},m)}}}),Gn=Z({"src/main/parser.js"(e,n){"use strict";re();var{ConfigError:t}=zt(),s=st(),a=gm(),{locStart:r,locEnd:u}=s,i=Object.getOwnPropertyNames,o=Object.getOwnPropertyDescriptor;function c(d){let p={};for(let f of d.plugins)if(!!f.parsers)for(let h of i(f.parsers))Object.defineProperty(p,h,o(f.parsers,h));return p}function v(d){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c(d);if(typeof d.parser=="function")return{parse:d.parser,astFormat:"estree",locStart:r,locEnd:u};if(typeof d.parser=="string"){if(Object.prototype.hasOwnProperty.call(p,d.parser))return p[d.parser];throw new t(`Couldn't resolve parser "`.concat(d.parser,'". Parsers must be explicitly added to the standalone bundle.'))}}function m(d,p){let f=c(p),h=Object.defineProperties({},Object.fromEntries(Object.keys(f).map(T=>[T,{enumerable:!0,get(){return f[T].parse}}]))),w=v(p,f);try{return w.preprocess&&(d=w.preprocess(d,p)),{text:d,ast:w.parse(d,h,p)}}catch(T){let{loc:A}=T;if(A){let{codeFrameColumns:S}=hm();throw T.codeFrame=S(d,A,{highlightCode:!0}),T.message+=` +`+T.codeFrame,T}throw T.stack}}n.exports={parse:m,resolveParser:v}}}),Wa=Z({"src/main/options.js"(e,n){"use strict";re();var t=PD(),{UndefinedParserError:s}=zt(),{getSupportInfo:a}=Mn(),r=dm(),{resolveParser:u}=Gn(),i={astFormat:"estree",printer:{},originalText:void 0,locStart:null,locEnd:null};function o(m){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=Object.assign({},m),f=a({plugins:m.plugins,showUnreleased:!0,showDeprecated:!0}).options,h=Object.assign(Object.assign({},i),Object.fromEntries(f.filter(B=>B.default!==void 0).map(B=>[B.name,B.default])));if(!p.parser){if(!p.filepath)(d.logger||console).warn("No parser and no filepath given, using 'babel' the parser now but this will throw an error in the future. Please specify a parser or a filepath so one can be inferred."),p.parser="babel";else if(p.parser=v(p.filepath,p.plugins),!p.parser)throw new s("No parser could be inferred for file: ".concat(p.filepath))}let w=u(r.normalizeApiOptions(p,[f.find(B=>B.name==="parser")],{passThrough:!0,logger:!1}));p.astFormat=w.astFormat,p.locEnd=w.locEnd,p.locStart=w.locStart;let T=c(p);p.printer=T.printers[p.astFormat];let A=Object.fromEntries(f.filter(B=>B.pluginDefaults&&B.pluginDefaults[T.name]!==void 0).map(B=>[B.name,B.pluginDefaults[T.name]])),S=Object.assign(Object.assign({},h),A);for(let[B,I]of Object.entries(S))(p[B]===null||p[B]===void 0)&&(p[B]=I);return p.parser==="json"&&(p.trailingComma="none"),r.normalizeApiOptions(p,f,Object.assign({passThrough:Object.keys(i)},d))}function c(m){let{astFormat:d}=m;if(!d)throw new Error("getPlugin() requires astFormat to be set");let p=m.plugins.find(f=>f.printers&&f.printers[d]);if(!p)throw new Error(`Couldn't find plugin for AST format "`.concat(d,'"'));return p}function v(m,d){let p=t.basename(m).toLowerCase(),h=a({plugins:d}).languages.filter(w=>w.since!==null).find(w=>w.extensions&&w.extensions.some(T=>p.endsWith(T))||w.filenames&&w.filenames.some(T=>T.toLowerCase()===p));return h&&h.parsers[0]}n.exports={normalize:o,hiddenDefaults:i,inferParser:v}}}),vm=Z({"src/main/massage-ast.js"(e,n){"use strict";re();function t(s,a,r){if(Array.isArray(s))return s.map(c=>t(c,a,r)).filter(Boolean);if(!s||typeof s!="object")return s;let u=a.printer.massageAstNode,i;u&&u.ignoredProperties?i=u.ignoredProperties:i=new Set;let o={};for(let[c,v]of Object.entries(s))!i.has(c)&&typeof v!="function"&&(o[c]=t(v,a,s));if(u){let c=u(s,o,r);if(c===null)return;if(c)return c}return o}n.exports=t}}),Xt=Z({"scripts/build/shims/assert.cjs"(e,n){"use strict";re();var t=()=>{};t.ok=t,t.strictEqual=t,n.exports=t}}),et=Z({"src/main/comments.js"(e,n){"use strict";re();var t=Xt(),{builders:{line:s,hardline:a,breakParent:r,indent:u,lineSuffix:i,join:o,cursor:c}}=Oe(),{hasNewline:v,skipNewline:m,skipSpaces:d,isPreviousLineEmpty:p,addLeadingComment:f,addDanglingComment:h,addTrailingComment:w}=Ue(),T=new WeakMap;function A(L,M,j){if(!L)return;let{printer:$,locStart:V,locEnd:q}=M;if(j){if($.canAttachComment&&$.canAttachComment(L)){let H;for(H=j.length-1;H>=0&&!(V(j[H])<=V(L)&&q(j[H])<=q(L));--H);j.splice(H+1,0,L);return}}else if(T.has(L))return T.get(L);let Y=$.getCommentChildNodes&&$.getCommentChildNodes(L,M)||typeof L=="object"&&Object.entries(L).filter(H=>{let[R]=H;return R!=="enclosingNode"&&R!=="precedingNode"&&R!=="followingNode"&&R!=="tokens"&&R!=="comments"&&R!=="parent"}).map(H=>{let[,R]=H;return R});if(!!Y){j||(j=[],T.set(L,j));for(let H of Y)A(H,M,j);return j}}function S(L,M,j,$){let{locStart:V,locEnd:q}=j,Y=V(M),H=q(M),R=A(L,j),Q,ee,te=0,oe=R.length;for(;te>1,X=R[W],ue=V(X),De=q(X);if(ue<=Y&&H<=De)return S(X,M,j,X);if(De<=Y){Q=X,te=W+1;continue}if(H<=ue){ee=X,oe=W;continue}throw new Error("Comment location overlaps with node location")}if($&&$.type==="TemplateLiteral"){let{quasis:W}=$,X=F(W,M,j);Q&&F(W,Q,j)!==X&&(Q=null),ee&&F(W,ee,j)!==X&&(ee=null)}return{enclosingNode:$,precedingNode:Q,followingNode:ee}}var B=()=>!1;function I(L,M,j,$){if(!Array.isArray(L))return;let V=[],{locStart:q,locEnd:Y,printer:{handleComments:H={}}}=$,{avoidAstMutation:R,ownLine:Q=B,endOfLine:ee=B,remaining:te=B}=H,oe=L.map((W,X)=>Object.assign(Object.assign({},S(M,W,$)),{},{comment:W,text:j,options:$,ast:M,isLastComment:L.length-1===X}));for(let[W,X]of oe.entries()){let{comment:ue,precedingNode:De,enclosingNode:ie,followingNode:G,text:z,options:U,ast:le,isLastComment:ge}=X;if(U.parser==="json"||U.parser==="json5"||U.parser==="__js_expression"||U.parser==="__vue_expression"||U.parser==="__vue_ts_expression"){if(q(ue)-q(le)<=0){f(le,ue);continue}if(Y(ue)-Y(le)>=0){w(le,ue);continue}}let Ae;if(R?Ae=[X]:(ue.enclosingNode=ie,ue.precedingNode=De,ue.followingNode=G,Ae=[ue,z,U,le,ge]),P(z,U,oe,W))ue.placement="ownLine",Q(...Ae)||(G?f(G,ue):De?w(De,ue):h(ie||le,ue));else if(C(z,U,oe,W))ue.placement="endOfLine",ee(...Ae)||(De?w(De,ue):G?f(G,ue):h(ie||le,ue));else if(ue.placement="remaining",!te(...Ae))if(De&&G){let Ne=V.length;Ne>0&&V[Ne-1].followingNode!==G&&D(V,z,U),V.push(X)}else De?w(De,ue):G?f(G,ue):h(ie||le,ue)}if(D(V,j,$),!R)for(let W of L)delete W.precedingNode,delete W.enclosingNode,delete W.followingNode}var k=L=>!/[\S\n\u2028\u2029]/.test(L);function P(L,M,j,$){let{comment:V,precedingNode:q}=j[$],{locStart:Y,locEnd:H}=M,R=Y(V);if(q)for(let Q=$-1;Q>=0;Q--){let{comment:ee,precedingNode:te}=j[Q];if(te!==q||!k(L.slice(H(ee),R)))break;R=Y(ee)}return v(L,R,{backwards:!0})}function C(L,M,j,$){let{comment:V,followingNode:q}=j[$],{locStart:Y,locEnd:H}=M,R=H(V);if(q)for(let Q=$+1;Q0;--Q){let{comment:ee,precedingNode:te,followingNode:oe}=L[Q-1];t.strictEqual(te,V),t.strictEqual(oe,q);let W=M.slice(j.locEnd(ee),R);if(H.test(W))R=j.locStart(ee);else break}for(let[ee,{comment:te}]of L.entries())ee1&&ee.comments.sort((te,oe)=>j.locStart(te)-j.locStart(oe));L.length=0}function g(L,M){let j=L.getValue();return j.printed=!0,M.printer.printComment(L,M)}function F(L,M,j){let $=j.locStart(M)-1;for(let V=1;V{let Y=L.getValue();!Y.leading&&!Y.trailing&&(!$||$(Y))&&V.push(g(L,M))},"comments"),V.length===0)?"":j?o(a,V):u([a,o(a,V)])}function N(L,M,j){let $=L.getValue();if(!$)return{};let V=$.comments||[];j&&(V=V.filter(R=>!j.has(R)));let q=$===M.cursorNode;if(V.length===0){let R=q?c:"";return{leading:R,trailing:R}}let Y=[],H=[];return L.each(()=>{let R=L.getValue();if(j&&j.has(R))return;let{leading:Q,trailing:ee}=R;Q?Y.push(l(L,M)):ee&&H.push(E(L,M))},"comments"),q&&(Y.unshift(c),H.push(c)),{leading:Y,trailing:H}}function x(L,M,j,$){let{leading:V,trailing:q}=N(L,j,$);return!V&&!q?M:[V,M,q]}function b(L){if(!!L)for(let M of L){if(!M.printed)throw new Error('Comment "'+M.value.trim()+'" was not printed. Please report this error!');delete M.printed}}n.exports={attach:I,printComments:x,printCommentsSeparately:N,printDanglingComments:y,getSortedChildNodes:A,ensureAllCommentsPrinted:b}}}),Cm=Z({"src/common/ast-path.js"(e,n){"use strict";re();var t=it();function s(u,i){let o=a(u.stack,i);return o===-1?null:u.stack[o]}function a(u,i){for(let o=u.length-1;o>=0;o-=2){let c=u[o];if(c&&!Array.isArray(c)&&--i<0)return o}return-1}var r=class{constructor(u){this.stack=[u]}getName(){let{stack:u}=this,{length:i}=u;return i>1?u[i-2]:null}getValue(){return t(this.stack)}getNode(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return s(this,u)}getParentNode(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return s(this,u+1)}call(u){let{stack:i}=this,{length:o}=i,c=t(i);for(var v=arguments.length,m=new Array(v>1?v-1:0),d=1;d1&&arguments[1]!==void 0?arguments[1]:0,o=a(this.stack,i+1),c=this.stack.splice(o+1),v=u(this);return this.stack.push(...c),v}each(u){let{stack:i}=this,{length:o}=i,c=t(i);for(var v=arguments.length,m=new Array(v>1?v-1:0),d=1;d1?o-1:0),v=1;v{i[d]=u(m,d,p)},...c),i}try(u){let{stack:i}=this,o=[...i];try{return u()}finally{i.length=0,i.push(...o)}}match(){let u=this.stack.length-1,i=null,o=this.stack[u--];for(var c=arguments.length,v=new Array(c),m=0;mu(m,d,c,v,p),c)}function u(i,o,c,v){let{stripTrailingHardline:m=!1}=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{},d=s(Object.assign(Object.assign(Object.assign({},c),o),{},{parentParser:c.parser,originalText:i}),{passThrough:!0}),p=Gn().parse(i,d),{ast:f}=p;i=p.text;let h=f.comments;delete f.comments,a.attach(h,f,i,d),d[Symbol.for("comments")]=h||[],d[Symbol.for("tokens")]=f.tokens||[];let w=v(f,d);return a.ensureAllCommentsPrinted(h),m?typeof w=="string"?w.replace(/(?:\r?\n)*$/,""):t(w):w}n.exports={printSubtree:r}}}),Fm=Z({"src/main/ast-to-doc.js"(e,n){"use strict";re();var t=Cm(),{builders:{hardline:s,addAlignmentToDoc:a},utils:{propagateBreaks:r}}=Oe(),{printComments:u}=et(),i=Em();function o(m,d){let p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,{printer:f}=d;f.preprocess&&(m=f.preprocess(m,d));let h=new Map,w=new t(m),T=A();return p>0&&(T=a([s,T],p,d.tabWidth)),r(T),T;function A(B,I){return B===void 0||B===w?S(I):Array.isArray(B)?w.call(()=>S(I),...B):w.call(()=>S(I),B)}function S(B){let I=w.getValue(),k=I&&typeof I=="object"&&B===void 0;if(k&&h.has(I))return h.get(I);let P=v(w,d,A,B);return k&&h.set(I,P),P}}function c(m,d){let{originalText:p,[Symbol.for("comments")]:f,locStart:h,locEnd:w}=d,T=h(m),A=w(m),S=new Set;for(let B of f)h(B)>=T&&w(B)<=A&&(B.printed=!0,S.add(B));return{doc:p.slice(T,A),printedComments:S}}function v(m,d,p,f){let h=m.getValue(),{printer:w}=d,T,A;if(w.hasPrettierIgnore&&w.hasPrettierIgnore(m))({doc:T,printedComments:A}=c(h,d));else{if(h)try{T=i.printSubtree(m,p,d,o)}catch(S){if(globalThis.PRETTIER_DEBUG)throw S}T||(T=w.print(m,d,p,f))}return(!w.willPrintOwnComments||!w.willPrintOwnComments(m,d))&&(T=u(m,T,d,A)),T}n.exports=o}}),Am=Z({"src/main/range-util.js"(e,n){"use strict";re();var t=Xt(),s=et(),a=f=>{let{parser:h}=f;return h==="json"||h==="json5"||h==="json-stringify"};function r(f,h){let w=[f.node,...f.parentNodes],T=new Set([h.node,...h.parentNodes]);return w.find(A=>v.has(A.type)&&T.has(A))}function u(f){let h=f.length-1;for(;;){let w=f[h];if(w&&(w.type==="Program"||w.type==="File"))h--;else break}return f.slice(0,h+1)}function i(f,h,w){let{locStart:T,locEnd:A}=w,S=f.node,B=h.node;if(S===B)return{startNode:S,endNode:B};let I=T(f.node);for(let P of u(h.parentNodes))if(T(P)>=I)B=P;else break;let k=A(h.node);for(let P of u(f.parentNodes))if(A(P)<=k)S=P;else break;return{startNode:S,endNode:B}}function o(f,h,w,T){let A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[],S=arguments.length>5?arguments[5]:void 0,{locStart:B,locEnd:I}=w,k=B(f),P=I(f);if(!(h>P||hT);let I=f.slice(T,A).search(/\S/),k=I===-1;if(!k)for(T+=I;A>T&&!/\S/.test(f[A-1]);--A);let P=o(w,T,h,(F,l)=>d(h,F,l),[],"rangeStart"),C=k?P:o(w,A,h,F=>d(h,F),[],"rangeEnd");if(!P||!C)return{rangeStart:0,rangeEnd:0};let D,g;if(a(h)){let F=r(P,C);D=F,g=F}else({startNode:D,endNode:g}=i(P,C,h));return{rangeStart:Math.min(S(D),S(g)),rangeEnd:Math.max(B(D),B(g))}}n.exports={calculateRange:p,findNodeAtOffset:o}}}),Sm=Z({"src/main/core.js"(e,n){"use strict";re();var{diffArrays:t}=aD(),{printer:{printDocToString:s},debug:{printDocToDebug:a}}=Oe(),{getAlignmentSize:r}=Ue(),{guessEndOfLine:u,convertEndOfLineToChars:i,countEndOfLineChars:o,normalizeEndOfLine:c}=jn(),v=Wa().normalize,m=vm(),d=et(),p=Gn(),f=Fm(),h=Am(),w="\uFEFF",T=Symbol("cursor");function A(g,F,l){let E=F.comments;return E&&(delete F.comments,d.attach(E,F,g,l)),l[Symbol.for("comments")]=E||[],l[Symbol.for("tokens")]=F.tokens||[],l.originalText=g,E}function S(g,F){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(!g||g.trim().length===0)return{formatted:"",cursorOffset:-1,comments:[]};let{ast:E,text:y}=p.parse(g,F);if(F.cursorOffset>=0){let L=h.findNodeAtOffset(E,F.cursorOffset,F);L&&L.node&&(F.cursorNode=L.node)}let N=A(y,E,F),x=f(E,F,l),b=s(x,F);if(d.ensureAllCommentsPrinted(N),l>0){let L=b.formatted.trim();b.cursorNodeStart!==void 0&&(b.cursorNodeStart-=b.formatted.indexOf(L)),b.formatted=L+i(F.endOfLine)}if(F.cursorOffset>=0){let L,M,j,$,V;if(F.cursorNode&&b.cursorNodeText?(L=F.locStart(F.cursorNode),M=y.slice(L,F.locEnd(F.cursorNode)),j=F.cursorOffset-L,$=b.cursorNodeStart,V=b.cursorNodeText):(L=0,M=y,j=F.cursorOffset,$=0,V=b.formatted),M===V)return{formatted:b.formatted,cursorOffset:$+j,comments:N};let q=[...M];q.splice(j,0,T);let Y=[...V],H=t(q,Y),R=$;for(let Q of H)if(Q.removed){if(Q.value.includes(T))break}else R+=Q.count;return{formatted:b.formatted,cursorOffset:R,comments:N}}return{formatted:b.formatted,cursorOffset:-1,comments:N}}function B(g,F){let{ast:l,text:E}=p.parse(g,F),{rangeStart:y,rangeEnd:N}=h.calculateRange(E,F,l),x=E.slice(y,N),b=Math.min(y,E.lastIndexOf(` +`,y)+1),L=E.slice(b,y).match(/^\s*/)[0],M=r(L,F.tabWidth),j=S(x,Object.assign(Object.assign({},F),{},{rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:F.cursorOffset>y&&F.cursorOffset<=N?F.cursorOffset-y:-1,endOfLine:"lf"}),M),$=j.formatted.trimEnd(),{cursorOffset:V}=F;V>N?V+=$.length-x.length:j.cursorOffset>=0&&(V=j.cursorOffset+y);let q=E.slice(0,y)+$+E.slice(N);if(F.endOfLine!=="lf"){let Y=i(F.endOfLine);V>=0&&Y===`\r +`&&(V+=o(q.slice(0,V),` +`)),q=q.replace(/\n/g,Y)}return{formatted:q,cursorOffset:V,comments:j.comments}}function I(g,F,l){return typeof F!="number"||Number.isNaN(F)||F<0||F>g.length?l:F}function k(g,F){let{cursorOffset:l,rangeStart:E,rangeEnd:y}=F;return l=I(g,l,-1),E=I(g,E,0),y=I(g,y,g.length),Object.assign(Object.assign({},F),{},{cursorOffset:l,rangeStart:E,rangeEnd:y})}function P(g,F){let{cursorOffset:l,rangeStart:E,rangeEnd:y,endOfLine:N}=k(g,F),x=g.charAt(0)===w;if(x&&(g=g.slice(1),l--,E--,y--),N==="auto"&&(N=u(g)),g.includes("\r")){let b=L=>o(g.slice(0,Math.max(L,0)),`\r +`);l-=b(l),E-=b(E),y-=b(y),g=c(g)}return{hasBOM:x,text:g,options:k(g,Object.assign(Object.assign({},F),{},{cursorOffset:l,rangeStart:E,rangeEnd:y,endOfLine:N}))}}function C(g,F){let l=p.resolveParser(F);return!l.hasPragma||l.hasPragma(g)}function D(g,F){let{hasBOM:l,text:E,options:y}=P(g,v(F));if(y.rangeStart>=y.rangeEnd&&E!==""||y.requirePragma&&!C(E,y))return{formatted:g,cursorOffset:F.cursorOffset,comments:[]};let N;return y.rangeStart>0||y.rangeEnd=0&&N.cursorOffset++),N}n.exports={formatWithCursor:D,parse(g,F,l){let{text:E,options:y}=P(g,v(F)),N=p.parse(E,y);return l&&(N.ast=m(N.ast,y)),N},formatAST(g,F){F=v(F);let l=f(g,F);return s(l,F)},formatDoc(g,F){return D(a(g),Object.assign(Object.assign({},F),{},{parser:"__js_expression"})).formatted},printToDoc(g,F){F=v(F);let{ast:l,text:E}=p.parse(g,F);return A(E,l,F),f(l,F)},printDocToString(g,F){return s(g,v(F))}}}}),xm=Z({"src/common/util-shared.js"(e,n){"use strict";re();var{getMaxContinuousCount:t,getStringWidth:s,getAlignmentSize:a,getIndentSize:r,skip:u,skipWhitespace:i,skipSpaces:o,skipNewline:c,skipToLineEnd:v,skipEverythingButNewLine:m,skipInlineComment:d,skipTrailingComment:p,hasNewline:f,hasNewlineInRange:h,hasSpaces:w,isNextLineEmpty:T,isNextLineEmptyAfterIndex:A,isPreviousLineEmpty:S,getNextNonSpaceNonCommentCharacterIndex:B,makeString:I,addLeadingComment:k,addDanglingComment:P,addTrailingComment:C}=Ue();n.exports={getMaxContinuousCount:t,getStringWidth:s,getAlignmentSize:a,getIndentSize:r,skip:u,skipWhitespace:i,skipSpaces:o,skipNewline:c,skipToLineEnd:v,skipEverythingButNewLine:m,skipInlineComment:d,skipTrailingComment:p,hasNewline:f,hasNewlineInRange:h,hasSpaces:w,isNextLineEmpty:T,isNextLineEmptyAfterIndex:A,isPreviousLineEmpty:S,getNextNonSpaceNonCommentCharacterIndex:B,makeString:I,addLeadingComment:k,addDanglingComment:P,addTrailingComment:C}}}),Bt=Z({"src/utils/create-language.js"(e,n){"use strict";re(),n.exports=function(t,s){let{languageId:a}=t,r=kn(t,Zf);return Object.assign(Object.assign({linguistLanguageId:a},r),s(t))}}}),bm=Z({"node_modules/esutils/lib/ast.js"(e,n){re(),function(){"use strict";function t(o){if(o==null)return!1;switch(o.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function s(o){if(o==null)return!1;switch(o.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function a(o){if(o==null)return!1;switch(o.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function r(o){return a(o)||o!=null&&o.type==="FunctionDeclaration"}function u(o){switch(o.type){case"IfStatement":return o.alternate!=null?o.alternate:o.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return o.body}return null}function i(o){var c;if(o.type!=="IfStatement"||o.alternate==null)return!1;c=o.consequent;do{if(c.type==="IfStatement"&&c.alternate==null)return!0;c=u(c)}while(c);return!1}n.exports={isExpression:t,isStatement:a,isIterationStatement:s,isSourceElement:r,isProblematicIfStatement:i,trailingStatement:u}}()}}),$a=Z({"node_modules/esutils/lib/code.js"(e,n){re(),function(){"use strict";var t,s,a,r,u,i;s={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};function o(A){return 48<=A&&A<=57}function c(A){return 48<=A&&A<=57||97<=A&&A<=102||65<=A&&A<=70}function v(A){return A>=48&&A<=55}a=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function m(A){return A===32||A===9||A===11||A===12||A===160||A>=5760&&a.indexOf(A)>=0}function d(A){return A===10||A===13||A===8232||A===8233}function p(A){if(A<=65535)return String.fromCharCode(A);var S=String.fromCharCode(Math.floor((A-65536)/1024)+55296),B=String.fromCharCode((A-65536)%1024+56320);return S+B}for(r=new Array(128),i=0;i<128;++i)r[i]=i>=97&&i<=122||i>=65&&i<=90||i===36||i===95;for(u=new Array(128),i=0;i<128;++i)u[i]=i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||i===36||i===95;function f(A){return A<128?r[A]:s.NonAsciiIdentifierStart.test(p(A))}function h(A){return A<128?u[A]:s.NonAsciiIdentifierPart.test(p(A))}function w(A){return A<128?r[A]:t.NonAsciiIdentifierStart.test(p(A))}function T(A){return A<128?u[A]:t.NonAsciiIdentifierPart.test(p(A))}n.exports={isDecimalDigit:o,isHexDigit:c,isOctalDigit:v,isWhiteSpace:m,isLineTerminator:d,isIdentifierStartES5:f,isIdentifierPartES5:h,isIdentifierStartES6:w,isIdentifierPartES6:T}}()}}),Tm=Z({"node_modules/esutils/lib/keyword.js"(e,n){re(),function(){"use strict";var t=$a();function s(f){switch(f){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function a(f,h){return!h&&f==="yield"?!1:r(f,h)}function r(f,h){if(h&&s(f))return!0;switch(f.length){case 2:return f==="if"||f==="in"||f==="do";case 3:return f==="var"||f==="for"||f==="new"||f==="try";case 4:return f==="this"||f==="else"||f==="case"||f==="void"||f==="with"||f==="enum";case 5:return f==="while"||f==="break"||f==="catch"||f==="throw"||f==="const"||f==="yield"||f==="class"||f==="super";case 6:return f==="return"||f==="typeof"||f==="delete"||f==="switch"||f==="export"||f==="import";case 7:return f==="default"||f==="finally"||f==="extends";case 8:return f==="function"||f==="continue"||f==="debugger";case 10:return f==="instanceof";default:return!1}}function u(f,h){return f==="null"||f==="true"||f==="false"||a(f,h)}function i(f,h){return f==="null"||f==="true"||f==="false"||r(f,h)}function o(f){return f==="eval"||f==="arguments"}function c(f){var h,w,T;if(f.length===0||(T=f.charCodeAt(0),!t.isIdentifierStartES5(T)))return!1;for(h=1,w=f.length;h=w||(A=f.charCodeAt(h),!(56320<=A&&A<=57343)))return!1;T=v(T,A)}if(!S(T))return!1;S=t.isIdentifierPartES6}return!0}function d(f,h){return c(f)&&!u(f,h)}function p(f,h){return m(f)&&!i(f,h)}n.exports={isKeywordES5:a,isKeywordES6:r,isReservedWordES5:u,isReservedWordES6:i,isRestrictedWord:o,isIdentifierNameES5:c,isIdentifierNameES6:m,isIdentifierES5:d,isIdentifierES6:p}}()}}),Bm=Z({"node_modules/esutils/lib/utils.js"(e){re(),function(){"use strict";e.ast=bm(),e.code=$a(),e.keyword=Tm()}()}}),It=Z({"src/language-js/utils/is-block-comment.js"(e,n){"use strict";re();var t=new Set(["Block","CommentBlock","MultiLine"]),s=a=>t.has(a==null?void 0:a.type);n.exports=s}}),Nm=Z({"src/language-js/utils/is-node-matches.js"(e,n){"use strict";re();function t(a,r){let u=r.split(".");for(let i=u.length-1;i>=0;i--){let o=u[i];if(i===0)return a.type==="Identifier"&&a.name===o;if(a.type!=="MemberExpression"||a.optional||a.computed||a.property.type!=="Identifier"||a.property.name!==o)return!1;a=a.object}}function s(a,r){return r.some(u=>t(a,u))}n.exports=s}}),Ke=Z({"src/language-js/utils/index.js"(e,n){"use strict";re();var t=Bm().keyword.isIdentifierNameES5,{getLast:s,hasNewline:a,skipWhitespace:r,isNonEmptyArray:u,isNextLineEmptyAfterIndex:i,getStringWidth:o}=Ue(),{locStart:c,locEnd:v,hasSameLocStart:m}=st(),d=It(),p=Nm(),f="(?:(?=.)\\s)",h=new RegExp("^".concat(f,"*:")),w=new RegExp("^".concat(f,"*::"));function T(O){var fe,Te;return((fe=O.extra)===null||fe===void 0?void 0:fe.parenthesized)&&d((Te=O.trailingComments)===null||Te===void 0?void 0:Te[0])&&h.test(O.trailingComments[0].value)}function A(O){let fe=O==null?void 0:O[0];return d(fe)&&w.test(fe.value)}function S(O,fe){if(!O||typeof O!="object")return!1;if(Array.isArray(O))return O.some($e=>S($e,fe));let Te=fe(O);return typeof Te=="boolean"?Te:Object.values(O).some($e=>S($e,fe))}function B(O){return O.type==="AssignmentExpression"||O.type==="BinaryExpression"||O.type==="LogicalExpression"||O.type==="NGPipeExpression"||O.type==="ConditionalExpression"||ue(O)||De(O)||O.type==="SequenceExpression"||O.type==="TaggedTemplateExpression"||O.type==="BindExpression"||O.type==="UpdateExpression"&&!O.prefix||O.type==="TSAsExpression"||O.type==="TSNonNullExpression"}function I(O){var fe,Te,$e,Je,Ze,ut;return O.expressions?O.expressions[0]:(fe=(Te=($e=(Je=(Ze=(ut=O.left)!==null&&ut!==void 0?ut:O.test)!==null&&Ze!==void 0?Ze:O.callee)!==null&&Je!==void 0?Je:O.object)!==null&&$e!==void 0?$e:O.tag)!==null&&Te!==void 0?Te:O.argument)!==null&&fe!==void 0?fe:O.expression}function k(O,fe){if(fe.expressions)return["expressions",0];if(fe.left)return["left"];if(fe.test)return["test"];if(fe.object)return["object"];if(fe.callee)return["callee"];if(fe.tag)return["tag"];if(fe.argument)return["argument"];if(fe.expression)return["expression"];throw new Error("Unexpected node has no left side.")}function P(O){return O=new Set(O),fe=>O.has(fe==null?void 0:fe.type)}var C=P(["Line","CommentLine","SingleLine","HashbangComment","HTMLOpen","HTMLClose"]),D=P(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function g(O){let fe=O.getParentNode();return O.getName()==="declaration"&&D(fe)?fe:null}var F=P(["BooleanLiteral","DirectiveLiteral","Literal","NullLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","RegExpLiteral","StringLiteral","TemplateLiteral","TSTypeLiteral","JSXText"]);function l(O){return O.type==="NumericLiteral"||O.type==="Literal"&&typeof O.value=="number"}function E(O){return O.type==="UnaryExpression"&&(O.operator==="+"||O.operator==="-")&&l(O.argument)}function y(O){return O.type==="StringLiteral"||O.type==="Literal"&&typeof O.value=="string"}var N=P(["ObjectTypeAnnotation","TSTypeLiteral","TSMappedType"]),x=P(["FunctionExpression","ArrowFunctionExpression"]);function b(O){return O.type==="FunctionExpression"||O.type==="ArrowFunctionExpression"&&O.body.type==="BlockStatement"}function L(O){return ue(O)&&O.callee.type==="Identifier"&&["async","inject","fakeAsync","waitForAsync"].includes(O.callee.name)}var M=P(["JSXElement","JSXFragment"]);function j(O,fe){if(O.parentParser!=="markdown"&&O.parentParser!=="mdx")return!1;let Te=fe.getNode();if(!Te.expression||!M(Te.expression))return!1;let $e=fe.getParentNode();return $e.type==="Program"&&$e.body.length===1}function $(O){return O.kind==="get"||O.kind==="set"}function V(O){return $(O)||m(O,O.value)}function q(O){return(O.type==="ObjectTypeProperty"||O.type==="ObjectTypeInternalSlot")&&O.value.type==="FunctionTypeAnnotation"&&!O.static&&!V(O)}function Y(O){return(O.type==="TypeAnnotation"||O.type==="TSTypeAnnotation")&&O.typeAnnotation.type==="FunctionTypeAnnotation"&&!O.static&&!m(O,O.typeAnnotation)}var H=P(["BinaryExpression","LogicalExpression","NGPipeExpression"]);function R(O){return De(O)||O.type==="BindExpression"&&Boolean(O.object)}var Q=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);function ee(O){return O?!!((O.type==="GenericTypeAnnotation"||O.type==="TSTypeReference")&&!O.typeParameters||Q.has(O.type)):!1}function te(O){let fe=/^(?:before|after)(?:Each|All)$/;return O.callee.type==="Identifier"&&fe.test(O.callee.name)&&O.arguments.length===1}var oe=["it","it.only","it.skip","describe","describe.only","describe.skip","test","test.only","test.skip","test.step","test.describe","test.describe.only","test.describe.parallel","test.describe.parallel.only","test.describe.serial","test.describe.serial.only","skip","xit","xdescribe","xtest","fit","fdescribe","ftest"];function W(O){return p(O,oe)}function X(O,fe){if(O.type!=="CallExpression")return!1;if(O.arguments.length===1){if(L(O)&&fe&&X(fe))return x(O.arguments[0]);if(te(O))return L(O.arguments[0])}else if((O.arguments.length===2||O.arguments.length===3)&&(O.arguments[0].type==="TemplateLiteral"||y(O.arguments[0]))&&W(O.callee))return O.arguments[2]&&!l(O.arguments[2])?!1:(O.arguments.length===2?x(O.arguments[1]):b(O.arguments[1])&&Se(O.arguments[1]).length<=1)||L(O.arguments[1]);return!1}var ue=P(["CallExpression","OptionalCallExpression"]),De=P(["MemberExpression","OptionalMemberExpression"]);function ie(O){let fe="expressions";O.type==="TSTemplateLiteralType"&&(fe="types");let Te=O[fe];return Te.length===0?!1:Te.every($e=>{if(se($e))return!1;if($e.type==="Identifier"||$e.type==="ThisExpression")return!0;if(De($e)){let Je=$e;for(;De(Je);)if(Je.property.type!=="Identifier"&&Je.property.type!=="Literal"&&Je.property.type!=="StringLiteral"&&Je.property.type!=="NumericLiteral"||(Je=Je.object,se(Je)))return!1;return Je.type==="Identifier"||Je.type==="ThisExpression"}return!1})}function G(O,fe){return O==="+"||O==="-"?O+fe:fe}function z(O,fe){let Te=c(fe),$e=r(O,v(fe));return $e!==!1&&O.slice(Te,Te+2)==="/*"&&O.slice($e,$e+2)==="*/"}function U(O,fe){return M(fe)?Re(fe):se(fe,Le.Leading,Te=>a(O,v(Te)))}function le(O,fe){return fe.parser!=="json"&&y(O.key)&&ve(O.key).slice(1,-1)===O.key.value&&(t(O.key.value)&&!(fe.parser==="babel-ts"&&O.type==="ClassProperty"||fe.parser==="typescript"&&O.type==="PropertyDefinition")||ge(O.key.value)&&String(Number(O.key.value))===O.key.value&&(fe.parser==="babel"||fe.parser==="acorn"||fe.parser==="espree"||fe.parser==="meriyah"||fe.parser==="__babel_estree"))}function ge(O){return/^(?:\d+|\d+\.\d+)$/.test(O)}function Ae(O,fe){let Te=/^[fx]?(?:describe|it|test)$/;return fe.type==="TaggedTemplateExpression"&&fe.quasi===O&&fe.tag.type==="MemberExpression"&&fe.tag.property.type==="Identifier"&&fe.tag.property.name==="each"&&(fe.tag.object.type==="Identifier"&&Te.test(fe.tag.object.name)||fe.tag.object.type==="MemberExpression"&&fe.tag.object.property.type==="Identifier"&&(fe.tag.object.property.name==="only"||fe.tag.object.property.name==="skip")&&fe.tag.object.object.type==="Identifier"&&Te.test(fe.tag.object.object.name))}function Ne(O){return O.quasis.some(fe=>fe.value.raw.includes(` +`))}function ke(O,fe){return(O.type==="TemplateLiteral"&&Ne(O)||O.type==="TaggedTemplateExpression"&&Ne(O.quasi))&&!a(fe,c(O),{backwards:!0})}function ce(O){if(!se(O))return!1;let fe=s(He(O,Le.Dangling));return fe&&!d(fe)}function pe(O){if(O.length<=1)return!1;let fe=0;for(let Te of O)if(x(Te)){if(fe+=1,fe>1)return!0}else if(ue(Te)){for(let $e of Te.arguments)if(x($e))return!0}return!1}function de(O){let fe=O.getValue(),Te=O.getParentNode();return ue(fe)&&ue(Te)&&Te.callee===fe&&fe.arguments.length>Te.arguments.length&&Te.arguments.length>0}function ae(O,fe){if(fe>=2)return!1;let Te=Je=>ae(Je,fe+1),$e=O.type==="Literal"&&"regex"in O&&O.regex.pattern||O.type==="RegExpLiteral"&&O.pattern;return $e&&o($e)>5?!1:O.type==="Literal"||O.type==="BigIntLiteral"||O.type==="DecimalLiteral"||O.type==="BooleanLiteral"||O.type==="NullLiteral"||O.type==="NumericLiteral"||O.type==="RegExpLiteral"||O.type==="StringLiteral"||O.type==="Identifier"||O.type==="ThisExpression"||O.type==="Super"||O.type==="PrivateName"||O.type==="PrivateIdentifier"||O.type==="ArgumentPlaceholder"||O.type==="Import"?!0:O.type==="TemplateLiteral"?O.quasis.every(Je=>!Je.value.raw.includes(` +`))&&O.expressions.every(Te):O.type==="ObjectExpression"?O.properties.every(Je=>!Je.computed&&(Je.shorthand||Je.value&&Te(Je.value))):O.type==="ArrayExpression"?O.elements.every(Je=>Je===null||Te(Je)):ze(O)?(O.type==="ImportExpression"||ae(O.callee,fe))&&Xe(O).every(Te):De(O)?ae(O.object,fe)&&ae(O.property,fe):O.type==="UnaryExpression"&&(O.operator==="!"||O.operator==="-")?ae(O.argument,fe):O.type==="TSNonNullExpression"?ae(O.expression,fe):!1}function ve(O){var fe,Te;return(fe=(Te=O.extra)===null||Te===void 0?void 0:Te.raw)!==null&&fe!==void 0?fe:O.raw}function K(O){return O}function he(O){return O.filepath&&/\.tsx$/i.test(O.filepath)}function ye(O){let fe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"es5";return O.trailingComma==="es5"&&fe==="es5"||O.trailingComma==="all"&&(fe==="all"||fe==="es5")}function Ce(O,fe){switch(O=Ee(O),O.type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return fe;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return Ce(O.object,fe);case"TaggedTemplateExpression":return O.tag.type==="FunctionExpression"?!1:Ce(O.tag,fe);case"CallExpression":case"OptionalCallExpression":return O.callee.type==="FunctionExpression"?!1:Ce(O.callee,fe);case"ConditionalExpression":return Ce(O.test,fe);case"UpdateExpression":return!O.prefix&&Ce(O.argument,fe);case"BindExpression":return O.object&&Ce(O.object,fe);case"SequenceExpression":return Ce(O.expressions[0],fe);case"TSAsExpression":case"TSNonNullExpression":return Ce(O.expression,fe);default:return!1}}var Ie={"==":!0,"!=":!0,"===":!0,"!==":!0},Fe={"*":!0,"/":!0,"%":!0},me={">>":!0,">>>":!0,"<<":!0};function _(O,fe){return!(ne(fe)!==ne(O)||O==="**"||Ie[O]&&Ie[fe]||fe==="%"&&Fe[O]||O==="%"&&Fe[fe]||fe!==O&&Fe[fe]&&Fe[O]||me[O]&&me[fe])}var J=new Map([["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].flatMap((O,fe)=>O.map(Te=>[Te,fe])));function ne(O){return J.get(O)}function Ee(O){for(;O.left;)O=O.left;return O}function We(O){return Boolean(me[O])||O==="|"||O==="^"||O==="&"}function Be(O){var fe;if(O.rest)return!0;let Te=Se(O);return((fe=s(Te))===null||fe===void 0?void 0:fe.type)==="RestElement"}var Pe=new WeakMap;function Se(O){if(Pe.has(O))return Pe.get(O);let fe=[];return O.this&&fe.push(O.this),Array.isArray(O.parameters)?fe.push(...O.parameters):Array.isArray(O.params)&&fe.push(...O.params),O.rest&&fe.push(O.rest),Pe.set(O,fe),fe}function Qe(O,fe){let Te=O.getValue(),$e=0,Je=Ze=>fe(Ze,$e++);Te.this&&O.call(Je,"this"),Array.isArray(Te.parameters)?O.each(Je,"parameters"):Array.isArray(Te.params)&&O.each(Je,"params"),Te.rest&&O.call(Je,"rest")}var xe=new WeakMap;function Xe(O){if(xe.has(O))return xe.get(O);let fe=O.arguments;return O.type==="ImportExpression"&&(fe=[O.source],O.attributes&&fe.push(O.attributes)),xe.set(O,fe),fe}function _e(O,fe){let Te=O.getValue();Te.type==="ImportExpression"?(O.call($e=>fe($e,0),"source"),Te.attributes&&O.call($e=>fe($e,1),"attributes")):O.each(fe,"arguments")}function je(O){return O.value.trim()==="prettier-ignore"&&!O.unignore}function Re(O){return O&&(O.prettierIgnore||se(O,Le.PrettierIgnore))}function be(O){let fe=O.getValue();return Re(fe)}var Le={Leading:1<<1,Trailing:1<<2,Dangling:1<<3,Block:1<<4,Line:1<<5,PrettierIgnore:1<<6,First:1<<7,Last:1<<8},qe=(O,fe)=>{if(typeof O=="function"&&(fe=O,O=0),O||fe)return(Te,$e,Je)=>!(O&Le.Leading&&!Te.leading||O&Le.Trailing&&!Te.trailing||O&Le.Dangling&&(Te.leading||Te.trailing)||O&Le.Block&&!d(Te)||O&Le.Line&&!C(Te)||O&Le.First&&$e!==0||O&Le.Last&&$e!==Je.length-1||O&Le.PrettierIgnore&&!je(Te)||fe&&!fe(Te))};function se(O,fe,Te){if(!u(O==null?void 0:O.comments))return!1;let $e=qe(fe,Te);return $e?O.comments.some($e):!0}function He(O,fe,Te){if(!Array.isArray(O==null?void 0:O.comments))return[];let $e=qe(fe,Te);return $e?O.comments.filter($e):O.comments}var Me=(O,fe)=>{let{originalText:Te}=fe;return i(Te,v(O))};function ze(O){return ue(O)||O.type==="NewExpression"||O.type==="ImportExpression"}function nt(O){return O&&(O.type==="ObjectProperty"||O.type==="Property"&&!O.method&&O.kind==="init")}function tt(O){return Boolean(O.__isUsingHackPipeline)}var pt=Symbol("ifWithoutBlockAndSameLineComment");n.exports={getFunctionParameters:Se,iterateFunctionParametersPath:Qe,getCallArguments:Xe,iterateCallArgumentsPath:_e,hasRestParameter:Be,getLeftSide:I,getLeftSidePathName:k,getParentExportDeclaration:g,getTypeScriptMappedTypeModifier:G,hasFlowAnnotationComment:A,hasFlowShorthandAnnotationComment:T,hasLeadingOwnLineComment:U,hasNakedLeftSide:B,hasNode:S,hasIgnoreComment:be,hasNodeIgnoreComment:Re,identity:K,isBinaryish:H,isCallLikeExpression:ze,isEnabledHackPipeline:tt,isLineComment:C,isPrettierIgnoreComment:je,isCallExpression:ue,isMemberExpression:De,isExportDeclaration:D,isFlowAnnotationComment:z,isFunctionCompositionArgs:pe,isFunctionNotation:V,isFunctionOrArrowExpression:x,isGetterOrSetter:$,isJestEachTemplateLiteral:Ae,isJsxNode:M,isLiteral:F,isLongCurriedCallExpression:de,isSimpleCallArgument:ae,isMemberish:R,isNumericLiteral:l,isSignedNumericLiteral:E,isObjectProperty:nt,isObjectType:N,isObjectTypePropertyAFunction:q,isSimpleType:ee,isSimpleNumber:ge,isSimpleTemplateLiteral:ie,isStringLiteral:y,isStringPropSafeToUnquote:le,isTemplateOnItsOwnLine:ke,isTestCall:X,isTheOnlyJsxElementInMarkdown:j,isTSXFile:he,isTypeAnnotationAFunction:Y,isNextLineEmpty:Me,needsHardlineAfterDanglingComment:ce,rawText:ve,shouldPrintComma:ye,isBitwiseOperator:We,shouldFlatten:_,startsWithNoLookaheadToken:Ce,getPrecedence:ne,hasComment:se,getComments:He,CommentCheckFlags:Le,markerForIfWithoutBlockAndSameLineComment:pt}}}),Lt=Z({"src/language-js/print/template-literal.js"(e,n){"use strict";re();var t=it(),{getStringWidth:s,getIndentSize:a}=Ue(),{builders:{join:r,hardline:u,softline:i,group:o,indent:c,align:v,lineSuffixBoundary:m,addAlignmentToDoc:d},printer:{printDocToString:p},utils:{mapDoc:f}}=Oe(),{isBinaryish:h,isJestEachTemplateLiteral:w,isSimpleTemplateLiteral:T,hasComment:A,isMemberExpression:S}=Ke();function B(g,F,l){let E=g.getValue();if(E.type==="TemplateLiteral"&&w(E,g.getParentNode())){let M=I(g,l,F);if(M)return M}let N="expressions";E.type==="TSTemplateLiteralType"&&(N="types");let x=[],b=g.map(F,N),L=T(E);return L&&(b=b.map(M=>p(M,Object.assign(Object.assign({},l),{},{printWidth:Number.POSITIVE_INFINITY})).formatted)),x.push(m,"`"),g.each(M=>{let j=M.getName();if(x.push(F()),j1||y.some(N=>N.length>0)){F.__inJestEach=!0;let N=g.map(l,"expressions");F.__inJestEach=!1;let x=[],b=N.map(V=>"${"+p(V,Object.assign(Object.assign({},F),{},{printWidth:Number.POSITIVE_INFINITY,endOfLine:"lf"})).formatted+"}"),L=[{hasLineBreak:!1,cells:[]}];for(let V=1;VV.cells.length)),j=Array.from({length:M}).fill(0),$=[{cells:y},...L.filter(V=>V.cells.length>0)];for(let{cells:V}of $.filter(q=>!q.hasLineBreak))for(let[q,Y]of V.entries())j[q]=Math.max(j[q],s(Y));return x.push(m,"`",c([u,r(u,$.map(V=>r(" | ",V.cells.map((q,Y)=>V.hasLineBreak?q:q+" ".repeat(j[Y]-s(q))))))]),u,"`"),x}}function k(g,F){let l=g.getValue(),E=F();return A(l)&&(E=o([c([i,E]),i])),["${",E,m,"}"]}function P(g,F){return g.map(l=>k(l,F),"expressions")}function C(g,F){return f(g,l=>typeof l=="string"?F?l.replace(/(\\*)`/g,"$1$1\\`"):D(l):l)}function D(g){return g.replace(/([\\`]|\${)/g,"\\$1")}n.exports={printTemplateLiteral:B,printTemplateExpressions:P,escapeTemplateCharacters:C,uncookTemplateElementValue:D}}}),wm=Z({"src/language-js/embed/markdown.js"(e,n){"use strict";re();var{builders:{indent:t,softline:s,literalline:a,dedentToRoot:r}}=Oe(),{escapeTemplateCharacters:u}=Lt();function i(c,v,m){let p=c.getValue().quasis[0].value.raw.replace(/((?:\\\\)*)\\`/g,(T,A)=>"\\".repeat(A.length/2)+"`"),f=o(p),h=f!=="";h&&(p=p.replace(new RegExp("^".concat(f),"gm"),""));let w=u(m(p,{parser:"markdown",__inJsTemplate:!0},{stripTrailingHardline:!0}),!0);return["`",h?t([s,w]):[a,r(w)],s,"`"]}function o(c){let v=c.match(/^([^\S\n]*)\S/m);return v===null?"":v[1]}n.exports=i}}),_m=Z({"src/language-js/embed/css.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{indent:s,hardline:a,softline:r},utils:{mapDoc:u,replaceEndOfLine:i,cleanDoc:o}}=Oe(),{printTemplateExpressions:c}=Lt();function v(p,f,h){let w=p.getValue(),T=w.quasis.map(k=>k.value.raw),A=0,S=T.reduce((k,P,C)=>C===0?P:k+"@prettier-placeholder-"+A+++"-id"+P,""),B=h(S,{parser:"scss"},{stripTrailingHardline:!0}),I=c(p,f);return m(B,w,I)}function m(p,f,h){if(f.quasis.length===1&&!f.quasis[0].value.raw.trim())return"``";let T=d(p,h);if(!T)throw new Error("Couldn't insert all the expressions");return["`",s([a,T]),r,"`"]}function d(p,f){if(!t(f))return p;let h=0,w=u(o(p),T=>typeof T!="string"||!T.includes("@prettier-placeholder")?T:T.split(/@prettier-placeholder-(\d+)-id/).map((A,S)=>S%2===0?i(A):(h++,f[A])));return f.length===h?w:null}n.exports=v}}),Pm=Z({"src/language-js/embed/graphql.js"(e,n){"use strict";re();var{builders:{indent:t,join:s,hardline:a}}=Oe(),{escapeTemplateCharacters:r,printTemplateExpressions:u}=Lt();function i(c,v,m){let d=c.getValue(),p=d.quasis.length;if(p===1&&d.quasis[0].value.raw.trim()==="")return"``";let f=u(c,v),h=[];for(let w=0;w2&&I[0].trim()===""&&I[1].trim()==="",D=k>2&&I[k-1].trim()===""&&I[k-2].trim()==="",g=I.every(l=>/^\s*(?:#[^\n\r]*)?$/.test(l));if(!S&&/#[^\n\r]*$/.test(I[k-1]))return null;let F=null;g?F=o(I):F=m(B,{parser:"graphql"},{stripTrailingHardline:!0}),F?(F=r(F,!1),!A&&C&&h.push(""),h.push(F),!S&&D&&h.push("")):!A&&!S&&C&&h.push(""),P&&h.push(P)}return["`",t([a,s(a,h)]),a,"`"]}function o(c){let v=[],m=!1,d=c.map(p=>p.trim());for(let[p,f]of d.entries())f!==""&&(d[p-1]===""&&m?v.push([a,f]):v.push(f),m=!0);return v.length===0?null:s(a,v)}n.exports=i}}),km=Z({"src/language-js/embed/html.js"(e,n){"use strict";re();var{builders:{indent:t,line:s,hardline:a,group:r},utils:{mapDoc:u}}=Oe(),{printTemplateExpressions:i,uncookTemplateElementValue:o}=Lt(),c=0;function v(m,d,p,f,h){let{parser:w}=h,T=m.getValue(),A=c;c=c+1>>>0;let S=E=>"PRETTIER_HTML_PLACEHOLDER_".concat(E,"_").concat(A,"_IN_JS"),B=T.quasis.map((E,y,N)=>y===N.length-1?E.value.cooked:E.value.cooked+S(y)).join(""),I=i(m,d);if(I.length===0&&B.trim().length===0)return"``";let k=new RegExp(S("(\\d+)"),"g"),P=0,C=p(B,{parser:w,__onHtmlRoot(E){P=E.children.length}},{stripTrailingHardline:!0}),D=u(C,E=>{if(typeof E!="string")return E;let y=[],N=E.split(k);for(let x=0;x1?t(r(D)):r(D),F,"`"])}n.exports=v}}),Im=Z({"src/language-js/embed.js"(e,n){"use strict";re();var{hasComment:t,CommentCheckFlags:s,isObjectProperty:a}=Ke(),r=wm(),u=_m(),i=Pm(),o=km();function c(C){if(d(C)||w(C)||T(C)||p(C))return"css";if(B(C))return"graphql";if(k(C))return"html";if(f(C))return"angular";if(m(C))return"markdown"}function v(C,D,g,F){let l=C.getValue();if(l.type!=="TemplateLiteral"||P(l))return;let E=c(C);if(!!E){if(E==="markdown")return r(C,D,g);if(E==="css")return u(C,D,g);if(E==="graphql")return i(C,D,g);if(E==="html"||E==="angular")return o(C,D,g,F,{parser:E})}}function m(C){let D=C.getValue(),g=C.getParentNode();return g&&g.type==="TaggedTemplateExpression"&&D.quasis.length===1&&g.tag.type==="Identifier"&&(g.tag.name==="md"||g.tag.name==="markdown")}function d(C){let D=C.getValue(),g=C.getParentNode(),F=C.getParentNode(1);return F&&D.quasis&&g.type==="JSXExpressionContainer"&&F.type==="JSXElement"&&F.openingElement.name.name==="style"&&F.openingElement.attributes.some(l=>l.name.name==="jsx")||g&&g.type==="TaggedTemplateExpression"&&g.tag.type==="Identifier"&&g.tag.name==="css"||g&&g.type==="TaggedTemplateExpression"&&g.tag.type==="MemberExpression"&&g.tag.object.name==="css"&&(g.tag.property.name==="global"||g.tag.property.name==="resolve")}function p(C){return C.match(D=>D.type==="TemplateLiteral",(D,g)=>D.type==="ArrayExpression"&&g==="elements",(D,g)=>a(D)&&D.key.type==="Identifier"&&D.key.name==="styles"&&g==="value",...h)}function f(C){return C.match(D=>D.type==="TemplateLiteral",(D,g)=>a(D)&&D.key.type==="Identifier"&&D.key.name==="template"&&g==="value",...h)}var h=[(C,D)=>C.type==="ObjectExpression"&&D==="properties",(C,D)=>C.type==="CallExpression"&&C.callee.type==="Identifier"&&C.callee.name==="Component"&&D==="arguments",(C,D)=>C.type==="Decorator"&&D==="expression"];function w(C){let D=C.getParentNode();if(!D||D.type!=="TaggedTemplateExpression")return!1;let g=D.tag.type==="ParenthesizedExpression"?D.tag.expression:D.tag;switch(g.type){case"MemberExpression":return A(g.object)||S(g);case"CallExpression":return A(g.callee)||g.callee.type==="MemberExpression"&&(g.callee.object.type==="MemberExpression"&&(A(g.callee.object.object)||S(g.callee.object))||g.callee.object.type==="CallExpression"&&A(g.callee.object.callee));case"Identifier":return g.name==="css";default:return!1}}function T(C){let D=C.getParentNode(),g=C.getParentNode(1);return g&&D.type==="JSXExpressionContainer"&&g.type==="JSXAttribute"&&g.name.type==="JSXIdentifier"&&g.name.name==="css"}function A(C){return C.type==="Identifier"&&C.name==="styled"}function S(C){return/^[A-Z]/.test(C.object.name)&&C.property.name==="extend"}function B(C){let D=C.getValue(),g=C.getParentNode();return I(D,"GraphQL")||g&&(g.type==="TaggedTemplateExpression"&&(g.tag.type==="MemberExpression"&&g.tag.object.name==="graphql"&&g.tag.property.name==="experimental"||g.tag.type==="Identifier"&&(g.tag.name==="gql"||g.tag.name==="graphql"))||g.type==="CallExpression"&&g.callee.type==="Identifier"&&g.callee.name==="graphql")}function I(C,D){return t(C,s.Block|s.Leading,g=>{let{value:F}=g;return F===" ".concat(D," ")})}function k(C){return I(C.getValue(),"HTML")||C.match(D=>D.type==="TemplateLiteral",(D,g)=>D.type==="TaggedTemplateExpression"&&D.tag.type==="Identifier"&&D.tag.name==="html"&&g==="quasi")}function P(C){let{quasis:D}=C;return D.some(g=>{let{value:{cooked:F}}=g;return F===null})}n.exports=v}}),Lm=Z({"src/language-js/clean.js"(e,n){"use strict";re();var t=It(),s=new Set(["range","raw","comments","leadingComments","trailingComments","innerComments","extra","start","end","loc","flags","errors","tokens"]),a=u=>{for(let i of u.quasis)delete i.value};function r(u,i,o){if(u.type==="Program"&&delete i.sourceType,(u.type==="BigIntLiteral"||u.type==="BigIntLiteralTypeAnnotation")&&i.value&&(i.value=i.value.toLowerCase()),(u.type==="BigIntLiteral"||u.type==="Literal")&&i.bigint&&(i.bigint=i.bigint.toLowerCase()),u.type==="DecimalLiteral"&&(i.value=Number(i.value)),u.type==="Literal"&&i.decimal&&(i.decimal=Number(i.decimal)),u.type==="EmptyStatement"||u.type==="JSXText"||u.type==="JSXExpressionContainer"&&(u.expression.type==="Literal"||u.expression.type==="StringLiteral")&&u.expression.value===" ")return null;if((u.type==="Property"||u.type==="ObjectProperty"||u.type==="MethodDefinition"||u.type==="ClassProperty"||u.type==="ClassMethod"||u.type==="PropertyDefinition"||u.type==="TSDeclareMethod"||u.type==="TSPropertySignature"||u.type==="ObjectTypeProperty")&&typeof u.key=="object"&&u.key&&(u.key.type==="Literal"||u.key.type==="NumericLiteral"||u.key.type==="StringLiteral"||u.key.type==="Identifier")&&delete i.key,u.type==="JSXElement"&&u.openingElement.name.name==="style"&&u.openingElement.attributes.some(m=>m.name.name==="jsx"))for(let{type:m,expression:d}of i.children)m==="JSXExpressionContainer"&&d.type==="TemplateLiteral"&&a(d);u.type==="JSXAttribute"&&u.name.name==="css"&&u.value.type==="JSXExpressionContainer"&&u.value.expression.type==="TemplateLiteral"&&a(i.value.expression),u.type==="JSXAttribute"&&u.value&&u.value.type==="Literal"&&/["']|"|'/.test(u.value.value)&&(i.value.value=i.value.value.replace(/["']|"|'/g,'"'));let c=u.expression||u.callee;if(u.type==="Decorator"&&c.type==="CallExpression"&&c.callee.name==="Component"&&c.arguments.length===1){let m=u.expression.arguments[0].properties;for(let[d,p]of i.expression.arguments[0].properties.entries())switch(m[d].key.name){case"styles":p.value.type==="ArrayExpression"&&a(p.value.elements[0]);break;case"template":p.value.type==="TemplateLiteral"&&a(p.value);break}}if(u.type==="TaggedTemplateExpression"&&(u.tag.type==="MemberExpression"||u.tag.type==="Identifier"&&(u.tag.name==="gql"||u.tag.name==="graphql"||u.tag.name==="css"||u.tag.name==="md"||u.tag.name==="markdown"||u.tag.name==="html")||u.tag.type==="CallExpression")&&a(i.quasi),u.type==="TemplateLiteral"){var v;(((v=u.leadingComments)===null||v===void 0?void 0:v.some(d=>t(d)&&["GraphQL","HTML"].some(p=>d.value===" ".concat(p," "))))||o.type==="CallExpression"&&o.callee.name==="graphql"||!u.leadingComments)&&a(i)}if(u.type==="InterpreterDirective"&&(i.value=i.value.trimEnd()),(u.type==="TSIntersectionType"||u.type==="TSUnionType")&&u.types.length===1)return i.types[0]}r.ignoredProperties=s,n.exports=r}}),Ha={};Ut(Ha,{EOL:()=>Pn,arch:()=>jm,cpus:()=>Ya,default:()=>ro,endianness:()=>Ga,freemem:()=>Xa,getNetworkInterfaces:()=>to,hostname:()=>Ja,loadavg:()=>Ua,networkInterfaces:()=>eo,platform:()=>Om,release:()=>Za,tmpDir:()=>wn,tmpdir:()=>_n,totalmem:()=>Ka,type:()=>Qa,uptime:()=>za});function Ga(){if(typeof Sr>"u"){var e=new ArrayBuffer(2),n=new Uint8Array(e),t=new Uint16Array(e);if(n[0]=1,n[1]=2,t[0]===258)Sr="BE";else if(t[0]===513)Sr="LE";else throw new Error("unable to figure out endianess")}return Sr}function Ja(){return typeof globalThis.location<"u"?globalThis.location.hostname:""}function Ua(){return[]}function za(){return 0}function Xa(){return Number.MAX_VALUE}function Ka(){return Number.MAX_VALUE}function Ya(){return[]}function Qa(){return"Browser"}function Za(){return typeof globalThis.navigator<"u"?globalThis.navigator.appVersion:""}function eo(){}function to(){}function jm(){return"javascript"}function Om(){return"browser"}function wn(){return"/tmp"}var Sr,_n,Pn,ro,qm=mt({"node-modules-polyfills:os"(){re(),_n=wn,Pn=` +`,ro={EOL:Pn,tmpdir:_n,tmpDir:wn,networkInterfaces:eo,getNetworkInterfaces:to,release:Za,type:Qa,cpus:Ya,totalmem:Ka,freemem:Xa,uptime:za,loadavg:Ua,hostname:Ja,endianness:Ga}}}),Mm=Z({"node-modules-polyfills-commonjs:os"(e,n){re();var t=(qm(),lt(Ha));if(t&&t.default){n.exports=t.default;for(let s in t)n.exports[s]=t[s]}else t&&(n.exports=t)}}),Rm=Z({"node_modules/detect-newline/index.js"(e,n){"use strict";re();var t=s=>{if(typeof s!="string")throw new TypeError("Expected a string");let a=s.match(/(?:\r?\n)/g)||[];if(a.length===0)return;let r=a.filter(i=>i===`\r +`).length,u=a.length-r;return r>u?`\r +`:` +`};n.exports=t,n.exports.graceful=s=>typeof s=="string"&&t(s)||` +`}}),Vm=Z({"node_modules/jest-docblock/build/index.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.extract=p,e.parse=h,e.parseWithComments=w,e.print=T,e.strip=f;function n(){let S=Mm();return n=function(){return S},S}function t(){let S=s(Rm());return t=function(){return S},S}function s(S){return S&&S.__esModule?S:{default:S}}var a=/\*\/$/,r=/^\/\*\*/,u=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,i=/(^|\s+)\/\/([^\r\n]*)/g,o=/^(\r?\n)+/,c=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,v=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,m=/(\r?\n|^) *\* ?/g,d=[];function p(S){let B=S.match(u);return B?B[0].trimLeft():""}function f(S){let B=S.match(u);return B&&B[0]?S.substring(B[0].length):S}function h(S){return w(S).pragmas}function w(S){let B=(0,t().default)(S)||n().EOL;S=S.replace(r,"").replace(a,"").replace(m,"$1");let I="";for(;I!==S;)I=S,S=S.replace(c,"".concat(B,"$1 $2").concat(B));S=S.replace(o,"").trimRight();let k=Object.create(null),P=S.replace(v,"").replace(o,"").trimRight(),C;for(;C=v.exec(S);){let D=C[2].replace(i,"");typeof k[C[1]]=="string"||Array.isArray(k[C[1]])?k[C[1]]=d.concat(k[C[1]],D):k[C[1]]=D}return{comments:P,pragmas:k}}function T(S){let{comments:B="",pragmas:I={}}=S,k=(0,t().default)(B)||n().EOL,P="/**",C=" *",D=" */",g=Object.keys(I),F=g.map(E=>A(E,I[E])).reduce((E,y)=>E.concat(y),[]).map(E=>C+" "+E+k).join("");if(!B){if(g.length===0)return"";if(g.length===1&&!Array.isArray(I[g[0]])){let E=I[g[0]];return"".concat(P," ").concat(A(g[0],E)[0]).concat(D)}}let l=B.split(k).map(E=>"".concat(C," ").concat(E)).join(k)+k;return P+k+(B?l:"")+(B&&g.length?C+k:"")+F+D}function A(S,B){return d.concat(B).map(I=>"@".concat(S," ").concat(I).trim())}}}),Wm=Z({"src/language-js/utils/get-shebang.js"(e,n){"use strict";re();function t(s){if(!s.startsWith("#!"))return"";let a=s.indexOf(` +`);return a===-1?s:s.slice(0,a)}n.exports=t}}),no=Z({"src/language-js/pragma.js"(e,n){"use strict";re();var{parseWithComments:t,strip:s,extract:a,print:r}=Vm(),{normalizeEndOfLine:u}=jn(),i=Wm();function o(m){let d=i(m);d&&(m=m.slice(d.length+1));let p=a(m),{pragmas:f,comments:h}=t(p);return{shebang:d,text:m,pragmas:f,comments:h}}function c(m){let d=Object.keys(o(m).pragmas);return d.includes("prettier")||d.includes("format")}function v(m){let{shebang:d,text:p,pragmas:f,comments:h}=o(m),w=s(p),T=r({pragmas:Object.assign({format:""},f),comments:h.trimStart()});return(d?"".concat(d,` +`):"")+u(T)+(w.startsWith(` +`)?` +`:` + +`)+w}n.exports={hasPragma:c,insertPragma:v}}}),uo=Z({"src/language-js/comments.js"(e,n){"use strict";re();var{getLast:t,hasNewline:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:a,getNextNonSpaceNonCommentCharacter:r,hasNewlineInRange:u,addLeadingComment:i,addTrailingComment:o,addDanglingComment:c,getNextNonSpaceNonCommentCharacterIndex:v,isNonEmptyArray:m}=Ue(),{getFunctionParameters:d,isPrettierIgnoreComment:p,isJsxNode:f,hasFlowShorthandAnnotationComment:h,hasFlowAnnotationComment:w,hasIgnoreComment:T,isCallLikeExpression:A,getCallArguments:S,isCallExpression:B,isMemberExpression:I,isObjectProperty:k,isLineComment:P,getComments:C,CommentCheckFlags:D,markerForIfWithoutBlockAndSameLineComment:g}=Ke(),{locStart:F,locEnd:l}=st(),E=It();function y(me){return[ve,De,q,j,$,V,Q,Ae,U,ge,Ne,ke,te,ie,G].some(_=>_(me))}function N(me){return[M,De,Y,Ne,j,$,V,Q,ie,z,le,ge,de,G,he].some(_=>_(me))}function x(me){return[ve,j,$,H,ue,te,ge,X,W,K,G,ae].some(_=>_(me))}function b(me,_){let J=(me.body||me.properties).find(ne=>{let{type:Ee}=ne;return Ee!=="EmptyStatement"});J?i(J,_):c(me,_)}function L(me,_){me.type==="BlockStatement"?b(me,_):i(me,_)}function M(me){let{comment:_,followingNode:J}=me;return J&&Ie(_)?(i(J,_),!0):!1}function j(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me;if((ne==null?void 0:ne.type)!=="IfStatement"||!Ee)return!1;if(r(We,_,l)===")")return o(J,_),!0;if(J===ne.consequent&&Ee===ne.alternate){if(J.type==="BlockStatement")o(J,_);else{let Pe=_.type==="SingleLine"||_.loc.start.line===_.loc.end.line,Se=_.loc.start.line===J.loc.start.line;Pe&&Se?c(J,_,g):c(ne,_)}return!0}return Ee.type==="BlockStatement"?(b(Ee,_),!0):Ee.type==="IfStatement"?(L(Ee.consequent,_),!0):ne.consequent===Ee?(i(Ee,_),!0):!1}function $(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me;return(ne==null?void 0:ne.type)!=="WhileStatement"||!Ee?!1:r(We,_,l)===")"?(o(J,_),!0):Ee.type==="BlockStatement"?(b(Ee,_),!0):ne.body===Ee?(i(Ee,_),!0):!1}function V(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;return(ne==null?void 0:ne.type)!=="TryStatement"&&(ne==null?void 0:ne.type)!=="CatchClause"||!Ee?!1:ne.type==="CatchClause"&&J?(o(J,_),!0):Ee.type==="BlockStatement"?(b(Ee,_),!0):Ee.type==="TryStatement"?(L(Ee.finalizer,_),!0):Ee.type==="CatchClause"?(L(Ee.body,_),!0):!1}function q(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;return I(J)&&(ne==null?void 0:ne.type)==="Identifier"?(i(J,_),!0):!1}function Y(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me,Be=J&&!u(We,l(J),F(_));return(!J||!Be)&&((ne==null?void 0:ne.type)==="ConditionalExpression"||(ne==null?void 0:ne.type)==="TSConditionalType")&&Ee?(i(Ee,_),!0):!1}function H(me){let{comment:_,precedingNode:J,enclosingNode:ne}=me;return k(ne)&&ne.shorthand&&ne.key===J&&ne.value.type==="AssignmentPattern"?(o(ne.value.left,_),!0):!1}var R=new Set(["ClassDeclaration","ClassExpression","DeclareClass","DeclareInterface","InterfaceDeclaration","TSInterfaceDeclaration"]);function Q(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;if(R.has(ne==null?void 0:ne.type)){if(m(ne.decorators)&&!(Ee&&Ee.type==="Decorator"))return o(t(ne.decorators),_),!0;if(ne.body&&Ee===ne.body)return b(ne.body,_),!0;if(Ee){if(ne.superClass&&Ee===ne.superClass&&J&&(J===ne.id||J===ne.typeParameters))return o(J,_),!0;for(let We of["implements","extends","mixins"])if(ne[We]&&Ee===ne[We][0])return J&&(J===ne.id||J===ne.typeParameters||J===ne.superClass)?o(J,_):c(ne,_,We),!0}}return!1}var ee=new Set(["ClassMethod","ClassProperty","PropertyDefinition","TSAbstractPropertyDefinition","TSAbstractMethodDefinition","TSDeclareMethod","MethodDefinition"]);function te(me){let{comment:_,precedingNode:J,enclosingNode:ne,text:Ee}=me;return ne&&J&&r(Ee,_,l)==="("&&(ne.type==="Property"||ne.type==="TSDeclareMethod"||ne.type==="TSAbstractMethodDefinition")&&J.type==="Identifier"&&ne.key===J&&r(Ee,J,l)!==":"||(J==null?void 0:J.type)==="Decorator"&&ee.has(ne==null?void 0:ne.type)?(o(J,_),!0):!1}var oe=new Set(["FunctionDeclaration","FunctionExpression","ClassMethod","MethodDefinition","ObjectMethod"]);function W(me){let{comment:_,precedingNode:J,enclosingNode:ne,text:Ee}=me;return r(Ee,_,l)!=="("?!1:J&&oe.has(ne==null?void 0:ne.type)?(o(J,_),!0):!1}function X(me){let{comment:_,enclosingNode:J,text:ne}=me;if((J==null?void 0:J.type)!=="ArrowFunctionExpression")return!1;let Ee=v(ne,_,l);return Ee!==!1&&ne.slice(Ee,Ee+2)==="=>"?(c(J,_),!0):!1}function ue(me){let{comment:_,enclosingNode:J,text:ne}=me;return r(ne,_,l)!==")"?!1:J&&(ye(J)&&d(J).length===0||A(J)&&S(J).length===0)?(c(J,_),!0):((J==null?void 0:J.type)==="MethodDefinition"||(J==null?void 0:J.type)==="TSAbstractMethodDefinition")&&d(J.value).length===0?(c(J.value,_),!0):!1}function De(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee,text:We}=me;if((J==null?void 0:J.type)==="FunctionTypeParam"&&(ne==null?void 0:ne.type)==="FunctionTypeAnnotation"&&(Ee==null?void 0:Ee.type)!=="FunctionTypeParam"||((J==null?void 0:J.type)==="Identifier"||(J==null?void 0:J.type)==="AssignmentPattern")&&ne&&ye(ne)&&r(We,_,l)===")")return o(J,_),!0;if((ne==null?void 0:ne.type)==="FunctionDeclaration"&&(Ee==null?void 0:Ee.type)==="BlockStatement"){let Be=(()=>{let Pe=d(ne);if(Pe.length>0)return a(We,l(t(Pe)));let Se=a(We,l(ne.id));return Se!==!1&&a(We,Se+1)})();if(F(_)>Be)return b(Ee,_),!0}return!1}function ie(me){let{comment:_,enclosingNode:J}=me;return(J==null?void 0:J.type)==="LabeledStatement"?(i(J,_),!0):!1}function G(me){let{comment:_,enclosingNode:J}=me;return((J==null?void 0:J.type)==="ContinueStatement"||(J==null?void 0:J.type)==="BreakStatement")&&!J.label?(o(J,_),!0):!1}function z(me){let{comment:_,precedingNode:J,enclosingNode:ne}=me;return B(ne)&&J&&ne.callee===J&&ne.arguments.length>0?(i(ne.arguments[0],_),!0):!1}function U(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;return(ne==null?void 0:ne.type)==="UnionTypeAnnotation"||(ne==null?void 0:ne.type)==="TSUnionType"?(p(_)&&(Ee.prettierIgnore=!0,_.unignore=!0),J?(o(J,_),!0):!1):(((Ee==null?void 0:Ee.type)==="UnionTypeAnnotation"||(Ee==null?void 0:Ee.type)==="TSUnionType")&&p(_)&&(Ee.types[0].prettierIgnore=!0,_.unignore=!0),!1)}function le(me){let{comment:_,enclosingNode:J}=me;return k(J)?(i(J,_),!0):!1}function ge(me){let{comment:_,enclosingNode:J,followingNode:ne,ast:Ee,isLastComment:We}=me;return Ee&&Ee.body&&Ee.body.length===0?(We?c(Ee,_):i(Ee,_),!0):(J==null?void 0:J.type)==="Program"&&(J==null?void 0:J.body.length)===0&&!m(J.directives)?(We?c(J,_):i(J,_),!0):(ne==null?void 0:ne.type)==="Program"&&(ne==null?void 0:ne.body.length)===0&&(J==null?void 0:J.type)==="ModuleExpression"?(c(ne,_),!0):!1}function Ae(me){let{comment:_,enclosingNode:J}=me;return(J==null?void 0:J.type)==="ForInStatement"||(J==null?void 0:J.type)==="ForOfStatement"?(i(J,_),!0):!1}function Ne(me){let{comment:_,precedingNode:J,enclosingNode:ne,text:Ee}=me;if((ne==null?void 0:ne.type)==="ImportSpecifier"||(ne==null?void 0:ne.type)==="ExportSpecifier")return i(ne,_),!0;let We=(J==null?void 0:J.type)==="ImportSpecifier"&&(ne==null?void 0:ne.type)==="ImportDeclaration",Be=(J==null?void 0:J.type)==="ExportSpecifier"&&(ne==null?void 0:ne.type)==="ExportNamedDeclaration";return(We||Be)&&s(Ee,l(_))?(o(J,_),!0):!1}function ke(me){let{comment:_,enclosingNode:J}=me;return(J==null?void 0:J.type)==="AssignmentPattern"?(i(J,_),!0):!1}var ce=new Set(["VariableDeclarator","AssignmentExpression","TypeAlias","TSTypeAliasDeclaration"]),pe=new Set(["ObjectExpression","ArrayExpression","TemplateLiteral","TaggedTemplateExpression","ObjectTypeAnnotation","TSTypeLiteral"]);function de(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;return ce.has(J==null?void 0:J.type)&&ne&&(pe.has(ne.type)||E(_))?(i(ne,_),!0):!1}function ae(me){let{comment:_,enclosingNode:J,followingNode:ne,text:Ee}=me;return!ne&&((J==null?void 0:J.type)==="TSMethodSignature"||(J==null?void 0:J.type)==="TSDeclareFunction"||(J==null?void 0:J.type)==="TSAbstractMethodDefinition")&&r(Ee,_,l)===";"?(o(J,_),!0):!1}function ve(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;if(p(_)&&(J==null?void 0:J.type)==="TSMappedType"&&(ne==null?void 0:ne.type)==="TSTypeParameter"&&ne.constraint)return J.prettierIgnore=!0,_.unignore=!0,!0}function K(me){let{comment:_,precedingNode:J,enclosingNode:ne,followingNode:Ee}=me;return(ne==null?void 0:ne.type)!=="TSMappedType"?!1:(Ee==null?void 0:Ee.type)==="TSTypeParameter"&&Ee.name?(i(Ee.name,_),!0):(J==null?void 0:J.type)==="TSTypeParameter"&&J.constraint?(o(J.constraint,_),!0):!1}function he(me){let{comment:_,enclosingNode:J,followingNode:ne}=me;return!J||J.type!=="SwitchCase"||J.test?!1:(ne.type==="BlockStatement"&&P(_)?b(ne,_):c(J,_),!0)}function ye(me){return me.type==="ArrowFunctionExpression"||me.type==="FunctionExpression"||me.type==="FunctionDeclaration"||me.type==="ObjectMethod"||me.type==="ClassMethod"||me.type==="TSDeclareFunction"||me.type==="TSCallSignatureDeclaration"||me.type==="TSConstructSignatureDeclaration"||me.type==="TSMethodSignature"||me.type==="TSConstructorType"||me.type==="TSFunctionType"||me.type==="TSDeclareMethod"}function Ce(me,_){if((_.parser==="typescript"||_.parser==="flow"||_.parser==="acorn"||_.parser==="espree"||_.parser==="meriyah"||_.parser==="__babel_estree")&&me.type==="MethodDefinition"&&me.value&&me.value.type==="FunctionExpression"&&d(me.value).length===0&&!me.value.returnType&&!m(me.value.typeParameters)&&me.value.body)return[...me.decorators||[],me.key,me.value.body]}function Ie(me){return E(me)&&me.value[0]==="*"&&/@type\b/.test(me.value)}function Fe(me){let _=me.getValue(),J=me.getParentNode(),ne=Ee=>w(C(Ee,D.Leading))||w(C(Ee,D.Trailing));return(_&&(f(_)||h(_)||B(J)&&ne(_))||J&&(J.type==="JSXSpreadAttribute"||J.type==="JSXSpreadChild"||J.type==="UnionTypeAnnotation"||J.type==="TSUnionType"||(J.type==="ClassDeclaration"||J.type==="ClassExpression")&&J.superClass===_))&&(!T(me)||J.type==="UnionTypeAnnotation"||J.type==="TSUnionType")}n.exports={handleOwnLineComment:y,handleEndOfLineComment:N,handleRemainingComment:x,isTypeCastComment:Ie,getCommentChildNodes:Ce,willPrintOwnComments:Fe}}}),jt=Z({"src/language-js/needs-parens.js"(e,n){"use strict";re();var t=it(),s=Rn(),{getFunctionParameters:a,getLeftSidePathName:r,hasFlowShorthandAnnotationComment:u,hasNakedLeftSide:i,hasNode:o,isBitwiseOperator:c,startsWithNoLookaheadToken:v,shouldFlatten:m,getPrecedence:d,isCallExpression:p,isMemberExpression:f,isObjectProperty:h}=Ke();function w(P,C){let D=P.getParentNode();if(!D)return!1;let g=P.getName(),F=P.getNode();if(C.__isInHtmlInterpolation&&!C.bracketSpacing&&B(F)&&I(P))return!0;if(T(F))return!1;if(C.parser!=="flow"&&u(P.getValue()))return!0;if(F.type==="Identifier")return!!(F.extra&&F.extra.parenthesized&&/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(F.name)||g==="left"&&F.name==="async"&&D.type==="ForOfStatement"&&!D.await);switch(D.type){case"ParenthesizedExpression":return!1;case"ClassDeclaration":case"ClassExpression":{if(g==="superClass"&&(F.type==="ArrowFunctionExpression"||F.type==="AssignmentExpression"||F.type==="AwaitExpression"||F.type==="BinaryExpression"||F.type==="ConditionalExpression"||F.type==="LogicalExpression"||F.type==="NewExpression"||F.type==="ObjectExpression"||F.type==="SequenceExpression"||F.type==="TaggedTemplateExpression"||F.type==="UnaryExpression"||F.type==="UpdateExpression"||F.type==="YieldExpression"||F.type==="TSNonNullExpression"))return!0;break}case"ExportDefaultDeclaration":return k(P,C)||F.type==="SequenceExpression";case"Decorator":{if(g==="expression"){let l=!1,E=!1,y=F;for(;y;)switch(y.type){case"MemberExpression":E=!0,y=y.object;break;case"CallExpression":if(E||l)return C.parser!=="typescript";l=!0,y=y.callee;break;case"Identifier":return!1;case"TaggedTemplateExpression":return C.parser!=="typescript";default:return!0}return!0}break}case"ExpressionStatement":{if(v(F,!0))return!0;break}case"ArrowFunctionExpression":{if(g==="body"&&F.type!=="SequenceExpression"&&v(F,!1))return!0;break}}switch(F.type){case"UpdateExpression":if(D.type==="UnaryExpression")return F.prefix&&(F.operator==="++"&&D.operator==="+"||F.operator==="--"&&D.operator==="-");case"UnaryExpression":switch(D.type){case"UnaryExpression":return F.operator===D.operator&&(F.operator==="+"||F.operator==="-");case"BindExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return g==="object";case"TaggedTemplateExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"BinaryExpression":return g==="left"&&D.operator==="**";case"TSNonNullExpression":return!0;default:return!1}case"BinaryExpression":{if(D.type==="UpdateExpression"||F.operator==="in"&&A(P))return!0;if(F.operator==="|>"&&F.extra&&F.extra.parenthesized){let l=P.getParentNode(1);if(l.type==="BinaryExpression"&&l.operator==="|>")return!0}}case"TSTypeAssertion":case"TSAsExpression":case"LogicalExpression":switch(D.type){case"TSAsExpression":return F.type!=="TSAsExpression";case"ConditionalExpression":return F.type==="TSAsExpression";case"CallExpression":case"NewExpression":case"OptionalCallExpression":return g==="callee";case"ClassExpression":case"ClassDeclaration":return g==="superClass";case"TSTypeAssertion":case"TaggedTemplateExpression":case"UnaryExpression":case"JSXSpreadAttribute":case"SpreadElement":case"SpreadProperty":case"BindExpression":case"AwaitExpression":case"TSNonNullExpression":case"UpdateExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return g==="object";case"AssignmentExpression":case"AssignmentPattern":return g==="left"&&(F.type==="TSTypeAssertion"||F.type==="TSAsExpression");case"LogicalExpression":if(F.type==="LogicalExpression")return D.operator!==F.operator;case"BinaryExpression":{let{operator:l,type:E}=F;if(!l&&E!=="TSTypeAssertion")return!0;let y=d(l),N=D.operator,x=d(N);return x>y||g==="right"&&x===y||x===y&&!m(N,l)?!0:x");default:return!1}case"TSConditionalType":if(g==="extendsType"&&D.type==="TSConditionalType")return!0;case"TSFunctionType":case"TSConstructorType":if(g==="checkType"&&D.type==="TSConditionalType")return!0;case"TSUnionType":case"TSIntersectionType":if((D.type==="TSUnionType"||D.type==="TSIntersectionType")&&D.types.length>1&&(!F.types||F.types.length>1))return!0;case"TSInferType":if(F.type==="TSInferType"&&D.type==="TSRestType")return!1;case"TSTypeOperator":return D.type==="TSArrayType"||D.type==="TSOptionalType"||D.type==="TSRestType"||g==="objectType"&&D.type==="TSIndexedAccessType"||D.type==="TSTypeOperator"||D.type==="TSTypeAnnotation"&&P.getParentNode(1).type.startsWith("TSJSDoc");case"ArrayTypeAnnotation":return D.type==="NullableTypeAnnotation";case"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return D.type==="ArrayTypeAnnotation"||D.type==="NullableTypeAnnotation"||D.type==="IntersectionTypeAnnotation"||D.type==="UnionTypeAnnotation"||g==="objectType"&&(D.type==="IndexedAccessType"||D.type==="OptionalIndexedAccessType");case"NullableTypeAnnotation":return D.type==="ArrayTypeAnnotation"||g==="objectType"&&(D.type==="IndexedAccessType"||D.type==="OptionalIndexedAccessType");case"FunctionTypeAnnotation":{let l=D.type==="NullableTypeAnnotation"?P.getParentNode(1):D;return l.type==="UnionTypeAnnotation"||l.type==="IntersectionTypeAnnotation"||l.type==="ArrayTypeAnnotation"||g==="objectType"&&(l.type==="IndexedAccessType"||l.type==="OptionalIndexedAccessType")||l.type==="NullableTypeAnnotation"||D.type==="FunctionTypeParam"&&D.name===null&&a(F).some(E=>E.typeAnnotation&&E.typeAnnotation.type==="NullableTypeAnnotation")}case"OptionalIndexedAccessType":return g==="objectType"&&D.type==="IndexedAccessType";case"TypeofTypeAnnotation":return g==="objectType"&&(D.type==="IndexedAccessType"||D.type==="OptionalIndexedAccessType");case"StringLiteral":case"NumericLiteral":case"Literal":if(typeof F.value=="string"&&D.type==="ExpressionStatement"&&!D.directive){let l=P.getParentNode(1);return l.type==="Program"||l.type==="BlockStatement"}return g==="object"&&D.type==="MemberExpression"&&typeof F.value=="number";case"AssignmentExpression":{let l=P.getParentNode(1);return g==="body"&&D.type==="ArrowFunctionExpression"?!0:g==="key"&&(D.type==="ClassProperty"||D.type==="PropertyDefinition")&&D.computed||(g==="init"||g==="update")&&D.type==="ForStatement"?!1:D.type==="ExpressionStatement"?F.left.type==="ObjectPattern":!(g==="key"&&D.type==="TSPropertySignature"||D.type==="AssignmentExpression"||D.type==="SequenceExpression"&&l&&l.type==="ForStatement"&&(l.init===D||l.update===D)||g==="value"&&D.type==="Property"&&l&&l.type==="ObjectPattern"&&l.properties.includes(D)||D.type==="NGChainedExpression")}case"ConditionalExpression":switch(D.type){case"TaggedTemplateExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":case"NGPipeExpression":case"ExportDefaultDeclaration":case"AwaitExpression":case"JSXSpreadAttribute":case"TSTypeAssertion":case"TypeCastExpression":case"TSAsExpression":case"TSNonNullExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"ConditionalExpression":return g==="test";case"MemberExpression":case"OptionalMemberExpression":return g==="object";default:return!1}case"FunctionExpression":switch(D.type){case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"TaggedTemplateExpression":return!0;default:return!1}case"ArrowFunctionExpression":switch(D.type){case"BinaryExpression":return D.operator!=="|>"||F.extra&&F.extra.parenthesized;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return g==="callee";case"MemberExpression":case"OptionalMemberExpression":return g==="object";case"TSAsExpression":case"TSNonNullExpression":case"BindExpression":case"TaggedTemplateExpression":case"UnaryExpression":case"LogicalExpression":case"AwaitExpression":case"TSTypeAssertion":return!0;case"ConditionalExpression":return g==="test";default:return!1}case"ClassExpression":if(s(F.decorators))return!0;switch(D.type){case"NewExpression":return g==="callee";default:return!1}case"OptionalMemberExpression":case"OptionalCallExpression":{let l=P.getParentNode(1);if(g==="object"&&D.type==="MemberExpression"||g==="callee"&&(D.type==="CallExpression"||D.type==="NewExpression")||D.type==="TSNonNullExpression"&&l.type==="MemberExpression"&&l.object===D)return!0}case"CallExpression":case"MemberExpression":case"TaggedTemplateExpression":case"TSNonNullExpression":if(g==="callee"&&(D.type==="BindExpression"||D.type==="NewExpression")){let l=F;for(;l;)switch(l.type){case"CallExpression":case"OptionalCallExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":case"BindExpression":l=l.object;break;case"TaggedTemplateExpression":l=l.tag;break;case"TSNonNullExpression":l=l.expression;break;default:return!1}}return!1;case"BindExpression":return g==="callee"&&(D.type==="BindExpression"||D.type==="NewExpression")||g==="object"&&f(D);case"NGPipeExpression":return!(D.type==="NGRoot"||D.type==="NGMicrosyntaxExpression"||D.type==="ObjectProperty"&&!(F.extra&&F.extra.parenthesized)||D.type==="ArrayExpression"||p(D)&&D.arguments[g]===F||g==="right"&&D.type==="NGPipeExpression"||g==="property"&&D.type==="MemberExpression"||D.type==="AssignmentExpression");case"JSXFragment":case"JSXElement":return g==="callee"||g==="left"&&D.type==="BinaryExpression"&&D.operator==="<"||D.type!=="ArrayExpression"&&D.type!=="ArrowFunctionExpression"&&D.type!=="AssignmentExpression"&&D.type!=="AssignmentPattern"&&D.type!=="BinaryExpression"&&D.type!=="NewExpression"&&D.type!=="ConditionalExpression"&&D.type!=="ExpressionStatement"&&D.type!=="JsExpressionRoot"&&D.type!=="JSXAttribute"&&D.type!=="JSXElement"&&D.type!=="JSXExpressionContainer"&&D.type!=="JSXFragment"&&D.type!=="LogicalExpression"&&!p(D)&&!h(D)&&D.type!=="ReturnStatement"&&D.type!=="ThrowStatement"&&D.type!=="TypeCastExpression"&&D.type!=="VariableDeclarator"&&D.type!=="YieldExpression";case"TypeAnnotation":return g==="returnType"&&D.type==="ArrowFunctionExpression"&&S(F)}return!1}function T(P){return P.type==="BlockStatement"||P.type==="BreakStatement"||P.type==="ClassBody"||P.type==="ClassDeclaration"||P.type==="ClassMethod"||P.type==="ClassProperty"||P.type==="PropertyDefinition"||P.type==="ClassPrivateProperty"||P.type==="ContinueStatement"||P.type==="DebuggerStatement"||P.type==="DeclareClass"||P.type==="DeclareExportAllDeclaration"||P.type==="DeclareExportDeclaration"||P.type==="DeclareFunction"||P.type==="DeclareInterface"||P.type==="DeclareModule"||P.type==="DeclareModuleExports"||P.type==="DeclareVariable"||P.type==="DoWhileStatement"||P.type==="EnumDeclaration"||P.type==="ExportAllDeclaration"||P.type==="ExportDefaultDeclaration"||P.type==="ExportNamedDeclaration"||P.type==="ExpressionStatement"||P.type==="ForInStatement"||P.type==="ForOfStatement"||P.type==="ForStatement"||P.type==="FunctionDeclaration"||P.type==="IfStatement"||P.type==="ImportDeclaration"||P.type==="InterfaceDeclaration"||P.type==="LabeledStatement"||P.type==="MethodDefinition"||P.type==="ReturnStatement"||P.type==="SwitchStatement"||P.type==="ThrowStatement"||P.type==="TryStatement"||P.type==="TSDeclareFunction"||P.type==="TSEnumDeclaration"||P.type==="TSImportEqualsDeclaration"||P.type==="TSInterfaceDeclaration"||P.type==="TSModuleDeclaration"||P.type==="TSNamespaceExportDeclaration"||P.type==="TypeAlias"||P.type==="VariableDeclaration"||P.type==="WhileStatement"||P.type==="WithStatement"}function A(P){let C=0,D=P.getValue();for(;D;){let g=P.getParentNode(C++);if(g&&g.type==="ForStatement"&&g.init===D)return!0;D=g}return!1}function S(P){return o(P,C=>C.type==="ObjectTypeAnnotation"&&o(C,D=>D.type==="FunctionTypeAnnotation"||void 0)||void 0)}function B(P){switch(P.type){case"ObjectExpression":return!0;default:return!1}}function I(P){let C=P.getValue(),D=P.getParentNode(),g=P.getName();switch(D.type){case"NGPipeExpression":if(typeof g=="number"&&D.arguments[g]===C&&D.arguments.length-1===g)return P.callParent(I);break;case"ObjectProperty":if(g==="value"){let F=P.getParentNode(1);return t(F.properties)===D}break;case"BinaryExpression":case"LogicalExpression":if(g==="right")return P.callParent(I);break;case"ConditionalExpression":if(g==="alternate")return P.callParent(I);break;case"UnaryExpression":if(D.prefix)return P.callParent(I);break}return!1}function k(P,C){let D=P.getValue(),g=P.getParentNode();return D.type==="FunctionExpression"||D.type==="ClassExpression"?g.type==="ExportDefaultDeclaration"||!w(P,C):!i(D)||g.type!=="ExportDefaultDeclaration"&&w(P,C)?!1:P.call(F=>k(F,C),...r(P,D))}n.exports=w}}),so=Z({"src/language-js/print-preprocess.js"(e,n){"use strict";re();function t(s,a){switch(a.parser){case"json":case"json5":case"json-stringify":case"__js_expression":case"__vue_expression":case"__vue_ts_expression":return Object.assign(Object.assign({},s),{},{type:a.parser.startsWith("__")?"JsExpressionRoot":"JsonRoot",node:s,comments:[],rootMarker:a.rootMarker});default:return s}}n.exports=t}}),$m=Z({"src/language-js/print/html-binding.js"(e,n){"use strict";re();var{builders:{join:t,line:s,group:a,softline:r,indent:u}}=Oe();function i(c,v,m){let d=c.getValue();if(v.__onHtmlBindingRoot&&c.getName()===null&&v.__onHtmlBindingRoot(d,v),d.type==="File"){if(v.__isVueForBindingLeft)return c.call(p=>{let f=t([",",s],p.map(m,"params")),{params:h}=p.getValue();return h.length===1?f:["(",u([r,a(f)]),r,")"]},"program","body",0);if(v.__isVueBindings)return c.call(p=>t([",",s],p.map(m,"params")),"program","body",0)}}function o(c){switch(c.type){case"MemberExpression":switch(c.property.type){case"Identifier":case"NumericLiteral":case"StringLiteral":return o(c.object)}return!1;case"Identifier":return!0;default:return!1}}n.exports={isVueEventBindingExpression:o,printHtmlBinding:i}}}),Jn=Z({"src/language-js/print/binaryish.js"(e,n){"use strict";re();var{printComments:t}=et(),{getLast:s}=Ue(),{builders:{join:a,line:r,softline:u,group:i,indent:o,align:c,ifBreak:v,indentIfBreak:m},utils:{cleanDoc:d,getDocParts:p,isConcat:f}}=Oe(),{hasLeadingOwnLineComment:h,isBinaryish:w,isJsxNode:T,shouldFlatten:A,hasComment:S,CommentCheckFlags:B,isCallExpression:I,isMemberExpression:k,isObjectProperty:P,isEnabledHackPipeline:C}=Ke(),D=0;function g(E,y,N){let x=E.getValue(),b=E.getParentNode(),L=E.getParentNode(1),M=x!==b.body&&(b.type==="IfStatement"||b.type==="WhileStatement"||b.type==="SwitchStatement"||b.type==="DoWhileStatement"),j=C(y)&&x.operator==="|>",$=F(E,N,y,!1,M);if(M)return $;if(j)return i($);if(I(b)&&b.callee===x||b.type==="UnaryExpression"||k(b)&&!b.computed)return i([o([u,...$]),u]);let V=b.type==="ReturnStatement"||b.type==="ThrowStatement"||b.type==="JSXExpressionContainer"&&L.type==="JSXAttribute"||x.operator!=="|"&&b.type==="JsExpressionRoot"||x.type!=="NGPipeExpression"&&(b.type==="NGRoot"&&y.parser==="__ng_binding"||b.type==="NGMicrosyntaxExpression"&&L.type==="NGMicrosyntax"&&L.body.length===1)||x===b.body&&b.type==="ArrowFunctionExpression"||x!==b.body&&b.type==="ForStatement"||b.type==="ConditionalExpression"&&L.type!=="ReturnStatement"&&L.type!=="ThrowStatement"&&!I(L)||b.type==="TemplateLiteral",q=b.type==="AssignmentExpression"||b.type==="VariableDeclarator"||b.type==="ClassProperty"||b.type==="PropertyDefinition"||b.type==="TSAbstractPropertyDefinition"||b.type==="ClassPrivateProperty"||P(b),Y=w(x.left)&&A(x.operator,x.left.operator);if(V||l(x)&&!Y||!l(x)&&q)return i($);if($.length===0)return"";let H=T(x.right),R=$.findIndex(X=>typeof X!="string"&&!Array.isArray(X)&&X.type==="group"),Q=$.slice(0,R===-1?1:R+1),ee=$.slice(Q.length,H?-1:void 0),te=Symbol("logicalChain-"+ ++D),oe=i([...Q,o(ee)],{id:te});if(!H)return oe;let W=s($);return i([oe,m(W,{groupId:te})])}function F(E,y,N,x,b){let L=E.getValue();if(!w(L))return[i(y())];let M=[];A(L.operator,L.left.operator)?M=E.call(ee=>F(ee,y,N,!0,b),"left"):M.push(i(y("left")));let j=l(L),$=(L.operator==="|>"||L.type==="NGPipeExpression"||L.operator==="|"&&N.parser==="__vue_expression")&&!h(N.originalText,L.right),V=L.type==="NGPipeExpression"?"|":L.operator,q=L.type==="NGPipeExpression"&&L.arguments.length>0?i(o([u,": ",a([u,":",v(" ")],E.map(y,"arguments").map(ee=>c(2,i(ee))))])):"",Y;if(j)Y=[V," ",y("right"),q];else{let te=C(N)&&V==="|>"?E.call(oe=>F(oe,y,N,!0,b),"right"):y("right");Y=[$?r:"",V,$?" ":r,te,q]}let H=E.getParentNode(),R=S(L.left,B.Trailing|B.Line),Q=R||!(b&&L.type==="LogicalExpression")&&H.type!==L.type&&L.left.type!==L.type&&L.right.type!==L.type;if(M.push($?"":" ",Q?i(Y,{shouldBreak:R}):Y),x&&S(L)){let ee=d(t(E,M,N));return f(ee)||ee.type==="fill"?p(ee):[ee]}return M}function l(E){return E.type!=="LogicalExpression"?!1:!!(E.right.type==="ObjectExpression"&&E.right.properties.length>0||E.right.type==="ArrayExpression"&&E.right.elements.length>0||T(E.right))}n.exports={printBinaryishExpression:g,shouldInlineLogicalExpression:l}}}),Hm=Z({"src/language-js/print/angular.js"(e,n){"use strict";re();var{builders:{join:t,line:s,group:a}}=Oe(),{hasNode:r,hasComment:u,getComments:i}=Ke(),{printBinaryishExpression:o}=Jn();function c(d,p,f){let h=d.getValue();if(!!h.type.startsWith("NG"))switch(h.type){case"NGRoot":return[f("node"),u(h.node)?" //"+i(h.node)[0].value.trimEnd():""];case"NGPipeExpression":return o(d,p,f);case"NGChainedExpression":return a(t([";",s],d.map(w=>m(w)?f():["(",f(),")"],"expressions")));case"NGEmptyExpression":return"";case"NGQuotedExpression":return[h.prefix,": ",h.value.trim()];case"NGMicrosyntax":return d.map((w,T)=>[T===0?"":v(w.getValue(),T,h)?" ":[";",s],f()],"body");case"NGMicrosyntaxKey":return/^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/i.test(h.name)?h.name:JSON.stringify(h.name);case"NGMicrosyntaxExpression":return[f("expression"),h.alias===null?"":[" as ",f("alias")]];case"NGMicrosyntaxKeyedExpression":{let w=d.getName(),T=d.getParentNode(),A=v(h,w,T)||(w===1&&(h.key.name==="then"||h.key.name==="else")||w===2&&h.key.name==="else"&&T.body[w-1].type==="NGMicrosyntaxKeyedExpression"&&T.body[w-1].key.name==="then")&&T.body[0].type==="NGMicrosyntaxExpression";return[f("key"),A?" ":": ",f("expression")]}case"NGMicrosyntaxLet":return["let ",f("key"),h.value===null?"":[" = ",f("value")]];case"NGMicrosyntaxAs":return[f("key")," as ",f("alias")];default:throw new Error("Unknown Angular node type: ".concat(JSON.stringify(h.type),"."))}}function v(d,p,f){return d.type==="NGMicrosyntaxKeyedExpression"&&d.key.name==="of"&&p===1&&f.body[0].type==="NGMicrosyntaxLet"&&f.body[0].value===null}function m(d){return r(d.getValue(),p=>{switch(p.type){case void 0:return!1;case"CallExpression":case"OptionalCallExpression":case"AssignmentExpression":return!0}})}n.exports={printAngular:c}}}),Gm=Z({"src/language-js/print/jsx.js"(e,n){"use strict";re();var{printComments:t,printDanglingComments:s}=et(),{builders:{line:a,hardline:r,softline:u,group:i,indent:o,conditionalGroup:c,fill:v,ifBreak:m,lineSuffixBoundary:d,join:p},utils:{willBreak:f}}=Oe(),{getLast:h,getPreferredQuote:w}=Ue(),{isJsxNode:T,rawText:A,isLiteral:S,isCallExpression:B,isStringLiteral:I,isBinaryish:k,hasComment:P,CommentCheckFlags:C,hasNodeIgnoreComment:D}=Ke(),g=jt(),{willPrintOwnComments:F}=uo(),l=ie=>ie===""||ie===a||ie===r||ie===u;function E(ie,G,z){let U=ie.getValue();if(U.type==="JSXElement"&&W(U))return[z("openingElement"),z("closingElement")];let le=U.type==="JSXElement"?z("openingElement"):z("openingFragment"),ge=U.type==="JSXElement"?z("closingElement"):z("closingFragment");if(U.children.length===1&&U.children[0].type==="JSXExpressionContainer"&&(U.children[0].expression.type==="TemplateLiteral"||U.children[0].expression.type==="TaggedTemplateExpression"))return[le,...ie.map(z,"children"),ge];U.children=U.children.map(Fe=>ue(Fe)?{type:"JSXText",value:" ",raw:" "}:Fe);let Ae=U.children.some(T),Ne=U.children.filter(Fe=>Fe.type==="JSXExpressionContainer").length>1,ke=U.type==="JSXElement"&&U.openingElement.attributes.length>1,ce=f(le)||Ae||ke||Ne,pe=ie.getParentNode().rootMarker==="mdx",de=G.singleQuote?"{' '}":'{" "}',ae=pe?" ":m([de,u]," "),ve=U.openingElement&&U.openingElement.name&&U.openingElement.name.name==="fbt",K=y(ie,G,z,ae,ve),he=U.children.some(Fe=>X(Fe));for(let Fe=K.length-2;Fe>=0;Fe--){let me=K[Fe]===""&&K[Fe+1]==="",_=K[Fe]===r&&K[Fe+1]===""&&K[Fe+2]===r,J=(K[Fe]===u||K[Fe]===r)&&K[Fe+1]===""&&K[Fe+2]===ae,ne=K[Fe]===ae&&K[Fe+1]===""&&(K[Fe+2]===u||K[Fe+2]===r),Ee=K[Fe]===ae&&K[Fe+1]===""&&K[Fe+2]===ae,We=K[Fe]===u&&K[Fe+1]===""&&K[Fe+2]===r||K[Fe]===r&&K[Fe+1]===""&&K[Fe+2]===u;_&&he||me||J||Ee||We?K.splice(Fe,2):ne&&K.splice(Fe+1,2)}for(;K.length>0&&l(h(K));)K.pop();for(;K.length>1&&l(K[0])&&l(K[1]);)K.shift(),K.shift();let ye=[];for(let[Fe,me]of K.entries()){if(me===ae){if(Fe===1&&K[Fe-1]===""){if(K.length===2){ye.push(de);continue}ye.push([de,r]);continue}else if(Fe===K.length-1){ye.push(de);continue}else if(K[Fe-1]===""&&K[Fe-2]===r){ye.push(de);continue}}ye.push(me),f(me)&&(ce=!0)}let Ce=he?v(ye):i(ye,{shouldBreak:!0});if(pe)return Ce;let Ie=i([le,o([r,Ce]),r,ge]);return ce?Ie:c([i([le,...K,ge]),Ie])}function y(ie,G,z,U,le){let ge=[];return ie.each((Ae,Ne,ke)=>{let ce=Ae.getValue();if(S(ce)){let pe=A(ce);if(X(ce)){let de=pe.split(ee);if(de[0]===""){if(ge.push(""),de.shift(),/\n/.test(de[0])){let ve=ke[Ne+1];ge.push(x(le,de[1],ce,ve))}else ge.push(U);de.shift()}let ae;if(h(de)===""&&(de.pop(),ae=de.pop()),de.length===0)return;for(let[ve,K]of de.entries())ve%2===1?ge.push(a):ge.push(K);if(ae!==void 0)if(/\n/.test(ae)){let ve=ke[Ne+1];ge.push(x(le,h(ge),ce,ve))}else ge.push(U);else{let ve=ke[Ne+1];ge.push(N(le,h(ge),ce,ve))}}else/\n/.test(pe)?pe.match(/\n/g).length>1&&ge.push("",r):ge.push("",U)}else{let pe=z();ge.push(pe);let de=ke[Ne+1];if(de&&X(de)){let ve=oe(A(de)).split(ee)[0];ge.push(N(le,ve,ce,de))}else ge.push(r)}},"children"),ge}function N(ie,G,z,U){return ie?"":z.type==="JSXElement"&&!z.closingElement||U&&U.type==="JSXElement"&&!U.closingElement?G.length===1?u:r:u}function x(ie,G,z,U){return ie?r:G.length===1?z.type==="JSXElement"&&!z.closingElement||U&&U.type==="JSXElement"&&!U.closingElement?r:u:r}function b(ie,G,z){let U=ie.getParentNode();if(!U||{ArrayExpression:!0,JSXAttribute:!0,JSXElement:!0,JSXExpressionContainer:!0,JSXFragment:!0,ExpressionStatement:!0,CallExpression:!0,OptionalCallExpression:!0,ConditionalExpression:!0,JsExpressionRoot:!0}[U.type])return G;let ge=ie.match(void 0,Ne=>Ne.type==="ArrowFunctionExpression",B,Ne=>Ne.type==="JSXExpressionContainer"),Ae=g(ie,z);return i([Ae?"":m("("),o([u,G]),u,Ae?"":m(")")],{shouldBreak:ge})}function L(ie,G,z){let U=ie.getValue(),le=[];if(le.push(z("name")),U.value){let ge;if(I(U.value)){let Ne=A(U.value).slice(1,-1).replace(/'/g,"'").replace(/"/g,'"'),{escaped:ke,quote:ce,regex:pe}=w(Ne,G.jsxSingleQuote?"'":'"');Ne=Ne.replace(pe,ke),ge=[ce,Ne,ce]}else ge=z("value");le.push("=",ge)}return le}function M(ie,G,z){let U=ie.getValue(),le=(ge,Ae)=>ge.type==="JSXEmptyExpression"||!P(ge)&&(ge.type==="ArrayExpression"||ge.type==="ObjectExpression"||ge.type==="ArrowFunctionExpression"||ge.type==="AwaitExpression"&&(le(ge.argument,ge)||ge.argument.type==="JSXElement")||B(ge)||ge.type==="FunctionExpression"||ge.type==="TemplateLiteral"||ge.type==="TaggedTemplateExpression"||ge.type==="DoExpression"||T(Ae)&&(ge.type==="ConditionalExpression"||k(ge)));return le(U.expression,ie.getParentNode(0))?i(["{",z("expression"),d,"}"]):i(["{",o([u,z("expression")]),u,d,"}"])}function j(ie,G,z){let U=ie.getValue(),le=U.name&&P(U.name)||U.typeParameters&&P(U.typeParameters);if(U.selfClosing&&U.attributes.length===0&&!le)return["<",z("name"),z("typeParameters")," />"];if(U.attributes&&U.attributes.length===1&&U.attributes[0].value&&I(U.attributes[0].value)&&!U.attributes[0].value.value.includes(` +`)&&!le&&!P(U.attributes[0]))return i(["<",z("name"),z("typeParameters")," ",...ie.map(z,"attributes"),U.selfClosing?" />":">"]);let ge=U.attributes.length>0&&P(h(U.attributes),C.Trailing),Ae=U.attributes.length===0&&!le||(G.bracketSameLine||G.jsxBracketSameLine)&&(!le||U.attributes.length>0)&&!ge,Ne=U.attributes&&U.attributes.some(ce=>ce.value&&I(ce.value)&&ce.value.value.includes(` +`)),ke=G.singleAttributePerLine&&U.attributes.length>1?r:a;return i(["<",z("name"),z("typeParameters"),o(ie.map(()=>[ke,z()],"attributes")),U.selfClosing?a:Ae?">":u,U.selfClosing?"/>":Ae?"":">"],{shouldBreak:Ne})}function $(ie,G,z){let U=ie.getValue(),le=[];le.push(""),le}function V(ie,G){let z=ie.getValue(),U=P(z),le=P(z,C.Line),ge=z.type==="JSXOpeningFragment";return[ge?"<":""]}function q(ie,G,z){let U=t(ie,E(ie,G,z),G);return b(ie,U,G)}function Y(ie,G){let z=ie.getValue(),U=P(z,C.Line);return[s(ie,G,!U),U?r:""]}function H(ie,G,z){let U=ie.getValue();return["{",ie.call(le=>{let ge=["...",z()],Ae=le.getValue();return!P(Ae)||!F(le)?ge:[o([u,t(le,ge,G)]),u]},U.type==="JSXSpreadAttribute"?"argument":"expression"),"}"]}function R(ie,G,z){let U=ie.getValue();if(!!U.type.startsWith("JSX"))switch(U.type){case"JSXAttribute":return L(ie,G,z);case"JSXIdentifier":return String(U.name);case"JSXNamespacedName":return p(":",[z("namespace"),z("name")]);case"JSXMemberExpression":return p(".",[z("object"),z("property")]);case"JSXSpreadAttribute":return H(ie,G,z);case"JSXSpreadChild":return H(ie,G,z);case"JSXExpressionContainer":return M(ie,G,z);case"JSXFragment":case"JSXElement":return q(ie,G,z);case"JSXOpeningElement":return j(ie,G,z);case"JSXClosingElement":return $(ie,G,z);case"JSXOpeningFragment":case"JSXClosingFragment":return V(ie,G);case"JSXEmptyExpression":return Y(ie,G);case"JSXText":throw new Error("JSXTest should be handled by JSXElement");default:throw new Error("Unknown JSX node type: ".concat(JSON.stringify(U.type),"."))}}var Q=` +\r `,ee=new RegExp("(["+Q+"]+)"),te=new RegExp("[^"+Q+"]"),oe=ie=>ie.replace(new RegExp("(?:^"+ee.source+"|"+ee.source+"$)"),"");function W(ie){if(ie.children.length===0)return!0;if(ie.children.length>1)return!1;let G=ie.children[0];return S(G)&&!X(G)}function X(ie){return S(ie)&&(te.test(A(ie))||!/\n/.test(A(ie)))}function ue(ie){return ie.type==="JSXExpressionContainer"&&S(ie.expression)&&ie.expression.value===" "&&!P(ie.expression)}function De(ie){let G=ie.getValue(),z=ie.getParentNode();if(!z||!G||!T(G)||!T(z))return!1;let U=z.children.indexOf(G),le=null;for(let ge=U;ge>0;ge--){let Ae=z.children[ge-1];if(!(Ae.type==="JSXText"&&!X(Ae))){le=Ae;break}}return le&&le.type==="JSXExpressionContainer"&&le.expression.type==="JSXEmptyExpression"&&D(le.expression)}n.exports={hasJsxIgnoreComment:De,printJsx:R}}}),ct=Z({"src/language-js/print/misc.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{indent:s,join:a,line:r}}=Oe(),{isFlowAnnotationComment:u}=Ke();function i(h){let w=h.getValue();return!w.optional||w.type==="Identifier"&&w===h.getParentNode().key?"":w.type==="OptionalCallExpression"||w.type==="OptionalMemberExpression"&&w.computed?"?.":"?"}function o(h){return h.getValue().definite||h.match(void 0,(w,T)=>T==="id"&&w.type==="VariableDeclarator"&&w.definite)?"!":""}function c(h,w,T){let A=h.getValue();return A.typeArguments?T("typeArguments"):A.typeParameters?T("typeParameters"):""}function v(h,w,T){let A=h.getValue();if(!A.typeAnnotation)return"";let S=h.getParentNode(),B=S.type==="DeclareFunction"&&S.id===A;return u(w.originalText,A.typeAnnotation)?[" /*: ",T("typeAnnotation")," */"]:[B?"":": ",T("typeAnnotation")]}function m(h,w,T){return["::",T("callee")]}function d(h,w,T){let A=h.getValue();return t(A.modifiers)?[a(" ",h.map(T,"modifiers"))," "]:""}function p(h,w,T){return h.type==="EmptyStatement"?";":h.type==="BlockStatement"||T?[" ",w]:s([r,w])}function f(h,w,T){return["...",T("argument"),v(h,w,T)]}n.exports={printOptionalToken:i,printDefiniteToken:o,printFunctionTypeParameters:c,printBindExpressionCallee:m,printTypeScriptModifiers:d,printTypeAnnotation:v,printRestSpread:f,adjustClause:p}}}),Kt=Z({"src/language-js/print/array.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{builders:{line:s,softline:a,hardline:r,group:u,indent:i,ifBreak:o,fill:c}}=Oe(),{getLast:v,hasNewline:m}=Ue(),{shouldPrintComma:d,hasComment:p,CommentCheckFlags:f,isNextLineEmpty:h,isNumericLiteral:w,isSignedNumericLiteral:T}=Ke(),{locStart:A}=st(),{printOptionalToken:S,printTypeAnnotation:B}=ct();function I(D,g,F){let l=D.getValue(),E=[],y=l.type==="TupleExpression"?"#[":"[",N="]";if(l.elements.length===0)p(l,f.Dangling)?E.push(u([y,t(D,g),a,N])):E.push(y,N);else{let x=v(l.elements),b=!(x&&x.type==="RestElement"),L=x===null,M=Symbol("array"),j=!g.__inJestEach&&l.elements.length>1&&l.elements.every((q,Y,H)=>{let R=q&&q.type;if(R!=="ArrayExpression"&&R!=="ObjectExpression")return!1;let Q=H[Y+1];if(Q&&R!==Q.type)return!1;let ee=R==="ArrayExpression"?"elements":"properties";return q[ee]&&q[ee].length>1}),$=k(l,g),V=b?L?",":d(g)?$?o(",","",{groupId:M}):o(","):"":"";E.push(u([y,i([a,$?C(D,g,F,V):[P(D,g,"elements",F),V],t(D,g,!0)]),a,N],{shouldBreak:j,id:M}))}return E.push(S(D),B(D,g,F)),E}function k(D,g){return D.elements.length>1&&D.elements.every(F=>F&&(w(F)||T(F)&&!p(F.argument))&&!p(F,f.Trailing|f.Line,l=>!m(g.originalText,A(l),{backwards:!0})))}function P(D,g,F,l){let E=[],y=[];return D.each(N=>{E.push(y,u(l())),y=[",",s],N.getValue()&&h(N.getValue(),g)&&y.push(a)},F),E}function C(D,g,F,l){let E=[];return D.each((y,N,x)=>{let b=N===x.length-1;E.push([F(),b?l:","]),b||E.push(h(y.getValue(),g)?[r,r]:p(x[N+1],f.Leading|f.Line)?r:s)},"elements"),c(E)}n.exports={printArray:I,printArrayItems:P,isConciselyPrintedArray:k}}}),io=Z({"src/language-js/print/call-arguments.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{getLast:s,getPenultimate:a}=Ue(),{getFunctionParameters:r,hasComment:u,CommentCheckFlags:i,isFunctionCompositionArgs:o,isJsxNode:c,isLongCurriedCallExpression:v,shouldPrintComma:m,getCallArguments:d,iterateCallArgumentsPath:p,isNextLineEmpty:f,isCallExpression:h,isStringLiteral:w,isObjectProperty:T}=Ke(),{builders:{line:A,hardline:S,softline:B,group:I,indent:k,conditionalGroup:P,ifBreak:C,breakParent:D},utils:{willBreak:g}}=Oe(),{ArgExpansionBailout:F}=zt(),{isConciselyPrintedArray:l}=Kt();function E(j,$,V){let q=j.getValue(),Y=q.type==="ImportExpression",H=d(q);if(H.length===0)return["(",t(j,$,!0),")"];if(b(H))return["(",V(["arguments",0]),", ",V(["arguments",1]),")"];let R=!1,Q=!1,ee=H.length-1,te=[];p(j,(ie,G)=>{let z=ie.getNode(),U=[V()];G===ee||(f(z,$)?(G===0&&(Q=!0),R=!0,U.push(",",S,S)):U.push(",",A)),te.push(U)});let oe=!(Y||q.callee&&q.callee.type==="Import")&&m($,"all")?",":"";function W(){return I(["(",k([A,...te]),oe,A,")"],{shouldBreak:!0})}if(R||j.getParentNode().type!=="Decorator"&&o(H))return W();let X=x(H),ue=N(H,$);if(X||ue){if(X?te.slice(1).some(g):te.slice(0,-1).some(g))return W();let ie=[];try{j.try(()=>{p(j,(G,z)=>{X&&z===0&&(ie=[[V([],{expandFirstArg:!0}),te.length>1?",":"",Q?S:A,Q?S:""],...te.slice(1)]),ue&&z===ee&&(ie=[...te.slice(0,-1),V([],{expandLastArg:!0})])})})}catch(G){if(G instanceof F)return W();throw G}return[te.some(g)?D:"",P([["(",...ie,")"],X?["(",I(ie[0],{shouldBreak:!0}),...ie.slice(1),")"]:["(",...te.slice(0,-1),I(s(ie),{shouldBreak:!0}),")"],W()])]}let De=["(",k([B,...te]),C(oe),B,")"];return v(j)?De:I(De,{shouldBreak:te.some(g)||R})}function y(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return j.type==="ObjectExpression"&&(j.properties.length>0||u(j))||j.type==="ArrayExpression"&&(j.elements.length>0||u(j))||j.type==="TSTypeAssertion"&&y(j.expression)||j.type==="TSAsExpression"&&y(j.expression)||j.type==="FunctionExpression"||j.type==="ArrowFunctionExpression"&&(!j.returnType||!j.returnType.typeAnnotation||j.returnType.typeAnnotation.type!=="TSTypeReference"||L(j.body))&&(j.body.type==="BlockStatement"||j.body.type==="ArrowFunctionExpression"&&y(j.body,!0)||j.body.type==="ObjectExpression"||j.body.type==="ArrayExpression"||!$&&(h(j.body)||j.body.type==="ConditionalExpression")||c(j.body))||j.type==="DoExpression"||j.type==="ModuleExpression"}function N(j,$){let V=s(j),q=a(j);return!u(V,i.Leading)&&!u(V,i.Trailing)&&y(V)&&(!q||q.type!==V.type)&&(j.length!==2||q.type!=="ArrowFunctionExpression"||V.type!=="ArrayExpression")&&!(j.length>1&&V.type==="ArrayExpression"&&l(V,$))}function x(j){if(j.length!==2)return!1;let[$,V]=j;return $.type==="ModuleExpression"&&M(V)?!0:!u($)&&($.type==="FunctionExpression"||$.type==="ArrowFunctionExpression"&&$.body.type==="BlockStatement")&&V.type!=="FunctionExpression"&&V.type!=="ArrowFunctionExpression"&&V.type!=="ConditionalExpression"&&!y(V)}function b(j){return j.length===2&&j[0].type==="ArrowFunctionExpression"&&r(j[0]).length===0&&j[0].body.type==="BlockStatement"&&j[1].type==="ArrayExpression"&&!j.some($=>u($))}function L(j){return j.type==="BlockStatement"&&(j.body.some($=>$.type!=="EmptyStatement")||u(j,i.Dangling))}function M(j){return j.type==="ObjectExpression"&&j.properties.length===1&&T(j.properties[0])&&j.properties[0].key.type==="Identifier"&&j.properties[0].key.name==="type"&&w(j.properties[0].value)&&j.properties[0].value.value==="module"}n.exports=E}}),ao=Z({"src/language-js/print/member.js"(e,n){"use strict";re();var{builders:{softline:t,group:s,indent:a,label:r}}=Oe(),{isNumericLiteral:u,isMemberExpression:i,isCallExpression:o}=Ke(),{printOptionalToken:c}=ct();function v(d,p,f){let h=d.getValue(),w=d.getParentNode(),T,A=0;do T=d.getParentNode(A),A++;while(T&&(i(T)||T.type==="TSNonNullExpression"));let S=f("object"),B=m(d,p,f),I=T&&(T.type==="NewExpression"||T.type==="BindExpression"||T.type==="AssignmentExpression"&&T.left.type!=="Identifier")||h.computed||h.object.type==="Identifier"&&h.property.type==="Identifier"&&!i(w)||(w.type==="AssignmentExpression"||w.type==="VariableDeclarator")&&(o(h.object)&&h.object.arguments.length>0||h.object.type==="TSNonNullExpression"&&o(h.object.expression)&&h.object.expression.arguments.length>0||S.label==="member-chain");return r(S.label==="member-chain"?"member-chain":"member",[S,I?B:s(a([t,B]))])}function m(d,p,f){let h=f("property"),w=d.getValue(),T=c(d);return w.computed?!w.property||u(w.property)?[T,"[",h,"]"]:s([T,"[",a([t,h]),t,"]"]):[T,".",h]}n.exports={printMemberExpression:v,printMemberLookup:m}}}),Jm=Z({"src/language-js/print/member-chain.js"(e,n){"use strict";re();var{printComments:t}=et(),{getLast:s,isNextLineEmptyAfterIndex:a,getNextNonSpaceNonCommentCharacterIndex:r}=Ue(),u=jt(),{isCallExpression:i,isMemberExpression:o,isFunctionOrArrowExpression:c,isLongCurriedCallExpression:v,isMemberish:m,isNumericLiteral:d,isSimpleCallArgument:p,hasComment:f,CommentCheckFlags:h,isNextLineEmpty:w}=Ke(),{locEnd:T}=st(),{builders:{join:A,hardline:S,group:B,indent:I,conditionalGroup:k,breakParent:P,label:C},utils:{willBreak:D}}=Oe(),g=io(),{printMemberLookup:F}=ao(),{printOptionalToken:l,printFunctionTypeParameters:E,printBindExpressionCallee:y}=ct();function N(x,b,L){let M=x.getParentNode(),j=!M||M.type==="ExpressionStatement",$=[];function V(de){let{originalText:ae}=b,ve=r(ae,de,T);return ae.charAt(ve)===")"?ve!==!1&&a(ae,ve+1):w(de,b)}function q(de){let ae=de.getValue();i(ae)&&(m(ae.callee)||i(ae.callee))?($.unshift({node:ae,printed:[t(de,[l(de),E(de,b,L),g(de,b,L)],b),V(ae)?S:""]}),de.call(ve=>q(ve),"callee")):m(ae)?($.unshift({node:ae,needsParens:u(de,b),printed:t(de,o(ae)?F(de,b,L):y(de,b,L),b)}),de.call(ve=>q(ve),"object")):ae.type==="TSNonNullExpression"?($.unshift({node:ae,printed:t(de,"!",b)}),de.call(ve=>q(ve),"expression")):$.unshift({node:ae,printed:L()})}let Y=x.getValue();$.unshift({node:Y,printed:[l(x),E(x,b,L),g(x,b,L)]}),Y.callee&&x.call(de=>q(de),"callee");let H=[],R=[$[0]],Q=1;for(;Q<$.length&&($[Q].node.type==="TSNonNullExpression"||i($[Q].node)||o($[Q].node)&&$[Q].node.computed&&d($[Q].node.property));++Q)R.push($[Q]);if(!i($[0].node))for(;Q+1<$.length&&(m($[Q].node)&&m($[Q+1].node));++Q)R.push($[Q]);H.push(R),R=[];let ee=!1;for(;Q<$.length;++Q){if(ee&&m($[Q].node)){if($[Q].node.computed&&d($[Q].node.property)){R.push($[Q]);continue}H.push(R),R=[],ee=!1}(i($[Q].node)||$[Q].node.type==="ImportExpression")&&(ee=!0),R.push($[Q]),f($[Q].node,h.Trailing)&&(H.push(R),R=[],ee=!1)}R.length>0&&H.push(R);function te(de){return/^[A-Z]|^[$_]+$/.test(de)}function oe(de){return de.length<=b.tabWidth}function W(de){let ae=de[1].length>0&&de[1][0].node.computed;if(de[0].length===1){let K=de[0][0].node;return K.type==="ThisExpression"||K.type==="Identifier"&&(te(K.name)||j&&oe(K.name)||ae)}let ve=s(de[0]).node;return o(ve)&&ve.property.type==="Identifier"&&(te(ve.property.name)||ae)}let X=H.length>=2&&!f(H[1][0].node)&&W(H);function ue(de){let ae=de.map(ve=>ve.printed);return de.length>0&&s(de).needsParens?["(",...ae,")"]:ae}function De(de){return de.length===0?"":I(B([S,A(S,de.map(ue))]))}let ie=H.map(ue),G=ie,z=X?3:2,U=H.flat(),le=U.slice(1,-1).some(de=>f(de.node,h.Leading))||U.slice(0,-1).some(de=>f(de.node,h.Trailing))||H[z]&&f(H[z][0].node,h.Leading);if(H.length<=z&&!le)return v(x)?G:B(G);let ge=s(H[X?1:0]).node,Ae=!i(ge)&&V(ge),Ne=[ue(H[0]),X?H.slice(1,2).map(ue):"",Ae?S:"",De(H.slice(X?2:1))],ke=$.map(de=>{let{node:ae}=de;return ae}).filter(i);function ce(){let de=s(s(H)).node,ae=s(ie);return i(de)&&D(ae)&&ke.slice(0,-1).some(ve=>ve.arguments.some(c))}let pe;return le||ke.length>2&&ke.some(de=>!de.arguments.every(ae=>p(ae,0)))||ie.slice(0,-1).some(D)||ce()?pe=B(Ne):pe=[D(G)||Ae?P:"",k([G,Ne])],C("member-chain",pe)}n.exports=N}}),oo=Z({"src/language-js/print/call-expression.js"(e,n){"use strict";re();var{builders:{join:t,group:s}}=Oe(),a=jt(),{getCallArguments:r,hasFlowAnnotationComment:u,isCallExpression:i,isMemberish:o,isStringLiteral:c,isTemplateOnItsOwnLine:v,isTestCall:m,iterateCallArgumentsPath:d}=Ke(),p=Jm(),f=io(),{printOptionalToken:h,printFunctionTypeParameters:w}=ct();function T(S,B,I){let k=S.getValue(),P=S.getParentNode(),C=k.type==="NewExpression",D=k.type==="ImportExpression",g=h(S),F=r(k);if(F.length>0&&(!D&&!C&&A(k,P)||F.length===1&&v(F[0],B.originalText)||!C&&m(k,P))){let y=[];return d(S,()=>{y.push(I())}),[C?"new ":"",I("callee"),g,w(S,B,I),"(",t(", ",y),")"]}let l=(B.parser==="babel"||B.parser==="babel-flow")&&k.callee&&k.callee.type==="Identifier"&&u(k.callee.trailingComments);if(l&&(k.callee.trailingComments[0].printed=!0),!D&&!C&&o(k.callee)&&!S.call(y=>a(y,B),"callee"))return p(S,B,I);let E=[C?"new ":"",D?"import":I("callee"),g,l?"/*:: ".concat(k.callee.trailingComments[0].value.slice(2).trim()," */"):"",w(S,B,I),f(S,B,I)];return D||i(k.callee)?s(E):E}function A(S,B){if(S.callee.type!=="Identifier")return!1;if(S.callee.name==="require")return!0;if(S.callee.name==="define"){let I=r(S);return B.type==="ExpressionStatement"&&(I.length===1||I.length===2&&I[0].type==="ArrayExpression"||I.length===3&&c(I[0])&&I[1].type==="ArrayExpression")}return!1}n.exports={printCallExpression:T}}}),Yt=Z({"src/language-js/print/assignment.js"(e,n){"use strict";re();var{isNonEmptyArray:t,getStringWidth:s}=Ue(),{builders:{line:a,group:r,indent:u,indentIfBreak:i,lineSuffixBoundary:o},utils:{cleanDoc:c,willBreak:v,canBreak:m}}=Oe(),{hasLeadingOwnLineComment:d,isBinaryish:p,isStringLiteral:f,isLiteral:h,isNumericLiteral:w,isCallExpression:T,isMemberExpression:A,getCallArguments:S,rawText:B,hasComment:I,isSignedNumericLiteral:k,isObjectProperty:P}=Ke(),{shouldInlineLogicalExpression:C}=Jn(),{printCallExpression:D}=oo();function g(W,X,ue,De,ie,G){let z=E(W,X,ue,De,G),U=ue(G,{assignmentLayout:z});switch(z){case"break-after-operator":return r([r(De),ie,r(u([a,U]))]);case"never-break-after-operator":return r([r(De),ie," ",U]);case"fluid":{let le=Symbol("assignment");return r([r(De),ie,r(u(a),{id:le}),o,i(U,{groupId:le})])}case"break-lhs":return r([De,ie," ",r(U)]);case"chain":return[r(De),ie,a,U];case"chain-tail":return[r(De),ie,u([a,U])];case"chain-tail-arrow-chain":return[r(De),ie,U];case"only-left":return De}}function F(W,X,ue){let De=W.getValue();return g(W,X,ue,ue("left"),[" ",De.operator],"right")}function l(W,X,ue){return g(W,X,ue,ue("id")," =","init")}function E(W,X,ue,De,ie){let G=W.getValue(),z=G[ie];if(!z)return"only-left";let U=!x(z);if(W.match(x,b,Ne=>!U||Ne.type!=="ExpressionStatement"&&Ne.type!=="VariableDeclaration"))return U?z.type==="ArrowFunctionExpression"&&z.body.type==="ArrowFunctionExpression"?"chain-tail-arrow-chain":"chain-tail":"chain";if(!U&&x(z.right)||d(X.originalText,z))return"break-after-operator";if(z.type==="CallExpression"&&z.callee.name==="require"||X.parser==="json5"||X.parser==="json")return"never-break-after-operator";if(N(G)||L(G)||$(G)||V(G)&&m(De))return"break-lhs";let Ae=ee(G,De,X);return W.call(()=>y(W,X,ue,Ae),ie)?"break-after-operator":Ae||z.type==="TemplateLiteral"||z.type==="TaggedTemplateExpression"||z.type==="BooleanLiteral"||w(z)||z.type==="ClassExpression"?"never-break-after-operator":"fluid"}function y(W,X,ue,De){let ie=W.getValue();if(p(ie)&&!C(ie))return!0;switch(ie.type){case"StringLiteralTypeAnnotation":case"SequenceExpression":return!0;case"ConditionalExpression":{let{test:U}=ie;return p(U)&&!C(U)}case"ClassExpression":return t(ie.decorators)}if(De)return!1;let G=ie,z=[];for(;;)if(G.type==="UnaryExpression")G=G.argument,z.push("argument");else if(G.type==="TSNonNullExpression")G=G.expression,z.push("expression");else break;return!!(f(G)||W.call(()=>H(W,X,ue),...z))}function N(W){if(b(W)){let X=W.left||W.id;return X.type==="ObjectPattern"&&X.properties.length>2&&X.properties.some(ue=>P(ue)&&(!ue.shorthand||ue.value&&ue.value.type==="AssignmentPattern"))}return!1}function x(W){return W.type==="AssignmentExpression"}function b(W){return x(W)||W.type==="VariableDeclarator"}function L(W){let X=M(W);if(t(X)){let ue=W.type==="TSTypeAliasDeclaration"?"constraint":"bound";if(X.length>1&&X.some(De=>De[ue]||De.default))return!0}return!1}function M(W){return j(W)&&W.typeParameters&&W.typeParameters.params?W.typeParameters.params:null}function j(W){return W.type==="TSTypeAliasDeclaration"||W.type==="TypeAlias"}function $(W){if(W.type!=="VariableDeclarator")return!1;let{typeAnnotation:X}=W.id;if(!X||!X.typeAnnotation)return!1;let ue=q(X.typeAnnotation);return t(ue)&&ue.length>1&&ue.some(De=>t(q(De))||De.type==="TSConditionalType")}function V(W){return W.type==="VariableDeclarator"&&W.init&&W.init.type==="ArrowFunctionExpression"}function q(W){return Y(W)&&W.typeParameters&&W.typeParameters.params?W.typeParameters.params:null}function Y(W){return W.type==="TSTypeReference"||W.type==="GenericTypeAnnotation"}function H(W,X,ue){let De=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,ie=W.getValue(),G=()=>H(W,X,ue,!0);if(ie.type==="TSNonNullExpression")return W.call(G,"expression");if(T(ie)){if(D(W,X,ue).label==="member-chain")return!1;let U=S(ie);return!(U.length===0||U.length===1&&Q(U[0],X))||te(ie,ue)?!1:W.call(G,"callee")}return A(ie)?W.call(G,"object"):De&&(ie.type==="Identifier"||ie.type==="ThisExpression")}var R=.25;function Q(W,X){let{printWidth:ue}=X;if(I(W))return!1;let De=ue*R;if(W.type==="ThisExpression"||W.type==="Identifier"&&W.name.length<=De||k(W)&&!I(W.argument))return!0;let ie=W.type==="Literal"&&"regex"in W&&W.regex.pattern||W.type==="RegExpLiteral"&&W.pattern;return ie?ie.length<=De:f(W)?B(W).length<=De:W.type==="TemplateLiteral"?W.expressions.length===0&&W.quasis[0].value.raw.length<=De&&!W.quasis[0].value.raw.includes(` +`):h(W)}function ee(W,X,ue){if(!P(W))return!1;X=c(X);let De=3;return typeof X=="string"&&s(X)1)return!0;if(ue.length===1){let ie=ue[0];if(ie.type==="TSUnionType"||ie.type==="UnionTypeAnnotation"||ie.type==="TSIntersectionType"||ie.type==="IntersectionTypeAnnotation"||ie.type==="TSTypeLiteral"||ie.type==="ObjectTypeAnnotation")return!0}let De=W.typeParameters?"typeParameters":"typeArguments";if(v(X(De)))return!0}return!1}function oe(W){return W.typeParameters&&W.typeParameters.params||W.typeArguments&&W.typeArguments.params}n.exports={printVariableDeclarator:l,printAssignmentExpression:F,printAssignment:g,isArrowFunctionVariableDeclarator:V}}}),Pr=Z({"src/language-js/print/function-parameters.js"(e,n){"use strict";re();var{getNextNonSpaceNonCommentCharacter:t}=Ue(),{printDanglingComments:s}=et(),{builders:{line:a,hardline:r,softline:u,group:i,indent:o,ifBreak:c},utils:{removeLines:v,willBreak:m}}=Oe(),{getFunctionParameters:d,iterateFunctionParametersPath:p,isSimpleType:f,isTestCall:h,isTypeAnnotationAFunction:w,isObjectType:T,isObjectTypePropertyAFunction:A,hasRestParameter:S,shouldPrintComma:B,hasComment:I,isNextLineEmpty:k}=Ke(),{locEnd:P}=st(),{ArgExpansionBailout:C}=zt(),{printFunctionTypeParameters:D}=ct();function g(y,N,x,b,L){let M=y.getValue(),j=d(M),$=L?D(y,x,N):"";if(j.length===0)return[$,"(",s(y,x,!0,ee=>t(x.originalText,ee,P)===")"),")"];let V=y.getParentNode(),q=h(V),Y=F(M),H=[];if(p(y,(ee,te)=>{let oe=te===j.length-1;oe&&M.rest&&H.push("..."),H.push(N()),!oe&&(H.push(","),q||Y?H.push(" "):k(j[te],x)?H.push(r,r):H.push(a))}),b){if(m($)||m(H))throw new C;return i([v($),"(",v(H),")"])}let R=j.every(ee=>!ee.decorators);return Y&&R?[$,"(",...H,")"]:q?[$,"(",...H,")"]:(A(V)||w(V)||V.type==="TypeAlias"||V.type==="UnionTypeAnnotation"||V.type==="TSUnionType"||V.type==="IntersectionTypeAnnotation"||V.type==="FunctionTypeAnnotation"&&V.returnType===M)&&j.length===1&&j[0].name===null&&M.this!==j[0]&&j[0].typeAnnotation&&M.typeParameters===null&&f(j[0].typeAnnotation)&&!M.rest?x.arrowParens==="always"?["(",...H,")"]:H:[$,"(",o([u,...H]),c(!S(M)&&B(x,"all")?",":""),u,")"]}function F(y){if(!y)return!1;let N=d(y);if(N.length!==1)return!1;let[x]=N;return!I(x)&&(x.type==="ObjectPattern"||x.type==="ArrayPattern"||x.type==="Identifier"&&x.typeAnnotation&&(x.typeAnnotation.type==="TypeAnnotation"||x.typeAnnotation.type==="TSTypeAnnotation")&&T(x.typeAnnotation.typeAnnotation)||x.type==="FunctionTypeParam"&&T(x.typeAnnotation)||x.type==="AssignmentPattern"&&(x.left.type==="ObjectPattern"||x.left.type==="ArrayPattern")&&(x.right.type==="Identifier"||x.right.type==="ObjectExpression"&&x.right.properties.length===0||x.right.type==="ArrayExpression"&&x.right.elements.length===0))}function l(y){let N;return y.returnType?(N=y.returnType,N.typeAnnotation&&(N=N.typeAnnotation)):y.typeAnnotation&&(N=y.typeAnnotation),N}function E(y,N){let x=l(y);if(!x)return!1;let b=y.typeParameters&&y.typeParameters.params;if(b){if(b.length>1)return!1;if(b.length===1){let L=b[0];if(L.constraint||L.default)return!1}}return d(y).length===1&&(T(x)||m(N))}n.exports={printFunctionParameters:g,shouldHugFunctionParameters:F,shouldGroupFunctionParameters:E}}}),kr=Z({"src/language-js/print/type-annotation.js"(e,n){"use strict";re();var{printComments:t,printDanglingComments:s}=et(),{isNonEmptyArray:a}=Ue(),{builders:{group:r,join:u,line:i,softline:o,indent:c,align:v,ifBreak:m}}=Oe(),d=jt(),{locStart:p}=st(),{isSimpleType:f,isObjectType:h,hasLeadingOwnLineComment:w,isObjectTypePropertyAFunction:T,shouldPrintComma:A}=Ke(),{printAssignment:S}=Yt(),{printFunctionParameters:B,shouldGroupFunctionParameters:I}=Pr(),{printArrayItems:k}=Kt();function P(x){if(f(x)||h(x))return!0;if(x.type==="UnionTypeAnnotation"||x.type==="TSUnionType"){let b=x.types.filter(M=>M.type==="VoidTypeAnnotation"||M.type==="TSVoidKeyword"||M.type==="NullLiteralTypeAnnotation"||M.type==="TSNullKeyword").length,L=x.types.some(M=>M.type==="ObjectTypeAnnotation"||M.type==="TSTypeLiteral"||M.type==="GenericTypeAnnotation"||M.type==="TSTypeReference");if(x.types.length-1===b&&L)return!0}return!1}function C(x,b,L){let M=b.semi?";":"",j=x.getValue(),$=[];return $.push("opaque type ",L("id"),L("typeParameters")),j.supertype&&$.push(": ",L("supertype")),j.impltype&&$.push(" = ",L("impltype")),$.push(M),$}function D(x,b,L){let M=b.semi?";":"",j=x.getValue(),$=[];j.declare&&$.push("declare "),$.push("type ",L("id"),L("typeParameters"));let V=j.type==="TSTypeAliasDeclaration"?"typeAnnotation":"right";return[S(x,b,L,$," =",V),M]}function g(x,b,L){let M=x.getValue(),j=x.map(L,"types"),$=[],V=!1;for(let q=0;q1&&(V=!0),$.push(" & ",q>1?c(j[q]):j[q]));return r($)}function F(x,b,L){let M=x.getValue(),j=x.getParentNode(),$=j.type!=="TypeParameterInstantiation"&&j.type!=="TSTypeParameterInstantiation"&&j.type!=="GenericTypeAnnotation"&&j.type!=="TSTypeReference"&&j.type!=="TSTypeAssertion"&&j.type!=="TupleTypeAnnotation"&&j.type!=="TSTupleType"&&!(j.type==="FunctionTypeParam"&&!j.name&&x.getParentNode(1).this!==j)&&!((j.type==="TypeAlias"||j.type==="VariableDeclarator"||j.type==="TSTypeAliasDeclaration")&&w(b.originalText,M)),V=P(M),q=x.map(R=>{let Q=L();return V||(Q=v(2,Q)),t(R,Q,b)},"types");if(V)return u(" | ",q);let Y=$&&!w(b.originalText,M),H=[m([Y?i:"","| "]),u([i,"| "],q)];return d(x,b)?r([c(H),o]):j.type==="TupleTypeAnnotation"&&j.types.length>1||j.type==="TSTupleType"&&j.elementTypes.length>1?r([c([m(["(",o]),H]),o,m(")")]):r($?c(H):H)}function l(x,b,L){let M=x.getValue(),j=[],$=x.getParentNode(0),V=x.getParentNode(1),q=x.getParentNode(2),Y=M.type==="TSFunctionType"||!(($.type==="ObjectTypeProperty"||$.type==="ObjectTypeInternalSlot")&&!$.variance&&!$.optional&&p($)===p(M)||$.type==="ObjectTypeCallProperty"||q&&q.type==="DeclareFunction"),H=Y&&($.type==="TypeAnnotation"||$.type==="TSTypeAnnotation"),R=H&&Y&&($.type==="TypeAnnotation"||$.type==="TSTypeAnnotation")&&V.type==="ArrowFunctionExpression";T($)&&(Y=!0,H=!0),R&&j.push("(");let Q=B(x,L,b,!1,!0),ee=M.returnType||M.predicate||M.typeAnnotation?[Y?" => ":": ",L("returnType"),L("predicate"),L("typeAnnotation")]:"",te=I(M,ee);return j.push(te?r(Q):Q),ee&&j.push(ee),R&&j.push(")"),r(j)}function E(x,b,L){let M=x.getValue(),j=M.type==="TSTupleType"?"elementTypes":"types",$=M[j],V=a($),q=V?o:"";return r(["[",c([q,k(x,b,j,L)]),m(V&&A(b,"all")?",":""),s(x,b,!0),q,"]"])}function y(x,b,L){let M=x.getValue(),j=M.type==="OptionalIndexedAccessType"&&M.optional?"?.[":"[";return[L("objectType"),j,L("indexType"),"]"]}function N(x,b,L){let M=x.getValue();return[M.postfix?"":L,b("typeAnnotation"),M.postfix?L:""]}n.exports={printOpaqueType:C,printTypeAlias:D,printIntersectionType:g,printUnionType:F,printFunctionType:l,printTupleType:E,printIndexedAccessType:y,shouldHugType:P,printJSDocType:N}}}),Ir=Z({"src/language-js/print/type-parameters.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{builders:{join:s,line:a,hardline:r,softline:u,group:i,indent:o,ifBreak:c}}=Oe(),{isTestCall:v,hasComment:m,CommentCheckFlags:d,isTSXFile:p,shouldPrintComma:f,getFunctionParameters:h,isObjectType:w}=Ke(),{createGroupIdMapper:T}=Ue(),{shouldHugType:A}=kr(),{isArrowFunctionVariableDeclarator:S}=Yt(),B=T("typeParameters");function I(C,D,g,F){let l=C.getValue();if(!l[F])return"";if(!Array.isArray(l[F]))return g(F);let E=C.getNode(2),y=E&&v(E);if(!C.match(L=>!(L[F].length===1&&w(L[F][0])),void 0,(L,M)=>M==="typeAnnotation",L=>L.type==="Identifier",S)&&(y||l[F].length===0||l[F].length===1&&(l[F][0].type==="NullableTypeAnnotation"||A(l[F][0]))))return["<",s(", ",C.map(g,F)),k(C,D),">"];let b=l.type==="TSTypeParameterInstantiation"?"":h(l).length===1&&p(D)&&!l[F][0].constraint&&C.getParentNode().type==="ArrowFunctionExpression"?",":f(D,"all")?c(","):"";return i(["<",o([u,s([",",a],C.map(g,F))]),b,u,">"],{id:B(l)})}function k(C,D){let g=C.getValue();if(!m(g,d.Dangling))return"";let F=!m(g,d.Line),l=t(C,D,F);return F?l:[l,r]}function P(C,D,g){let F=C.getValue(),l=[],E=C.getParentNode();return E.type==="TSMappedType"?(l.push("[",g("name")),F.constraint&&l.push(" in ",g("constraint")),E.nameType&&l.push(" as ",C.callParent(()=>g("nameType"))),l.push("]"),l):(F.variance&&l.push(g("variance")),F.in&&l.push("in "),F.out&&l.push("out "),l.push(g("name")),F.bound&&l.push(": ",g("bound")),F.constraint&&l.push(" extends ",g("constraint")),F.default&&l.push(" = ",g("default")),l)}n.exports={printTypeParameter:P,printTypeParameters:I,getTypeParametersGroupId:B}}}),Qt=Z({"src/language-js/print/property.js"(e,n){"use strict";re();var{printComments:t}=et(),{printString:s,printNumber:a}=Ue(),{isNumericLiteral:r,isSimpleNumber:u,isStringLiteral:i,isStringPropSafeToUnquote:o,rawText:c}=Ke(),{printAssignment:v}=Yt(),m=new WeakMap;function d(f,h,w){let T=f.getNode();if(T.computed)return["[",w("key"),"]"];let A=f.getParentNode(),{key:S}=T;if(T.type==="ClassPrivateProperty"&&S.type==="Identifier")return["#",w("key")];if(h.quoteProps==="consistent"&&!m.has(A)){let B=(A.properties||A.body||A.members).some(I=>!I.computed&&I.key&&i(I.key)&&!o(I,h));m.set(A,B)}if((S.type==="Identifier"||r(S)&&u(a(c(S)))&&String(S.value)===a(c(S))&&!(h.parser==="typescript"||h.parser==="babel-ts"))&&(h.parser==="json"||h.quoteProps==="consistent"&&m.get(A))){let B=s(JSON.stringify(S.type==="Identifier"?S.name:S.value.toString()),h);return f.call(I=>t(I,B,h),"key")}return o(T,h)&&(h.quoteProps==="as-needed"||h.quoteProps==="consistent"&&!m.get(A))?f.call(B=>t(B,/^\d/.test(S.value)?a(S.value):S.value,h),"key"):w("key")}function p(f,h,w){return f.getValue().shorthand?w("value"):v(f,h,w,d(f,h,w),":","value")}n.exports={printProperty:p,printPropertyKey:d}}}),Lr=Z({"src/language-js/print/function.js"(e,n){"use strict";re();var t=Xt(),{printDanglingComments:s,printCommentsSeparately:a}=et(),r=it(),{getNextNonSpaceNonCommentCharacterIndex:u}=Ue(),{builders:{line:i,softline:o,group:c,indent:v,ifBreak:m,hardline:d,join:p,indentIfBreak:f},utils:{removeLines:h,willBreak:w}}=Oe(),{ArgExpansionBailout:T}=zt(),{getFunctionParameters:A,hasLeadingOwnLineComment:S,isFlowAnnotationComment:B,isJsxNode:I,isTemplateOnItsOwnLine:k,shouldPrintComma:P,startsWithNoLookaheadToken:C,isBinaryish:D,isLineComment:g,hasComment:F,getComments:l,CommentCheckFlags:E,isCallLikeExpression:y,isCallExpression:N,getCallArguments:x,hasNakedLeftSide:b,getLeftSide:L}=Ke(),{locEnd:M}=st(),{printFunctionParameters:j,shouldGroupFunctionParameters:$}=Pr(),{printPropertyKey:V}=Qt(),{printFunctionTypeParameters:q}=ct();function Y(z,U,le,ge){let Ae=z.getValue(),Ne=!1;if((Ae.type==="FunctionDeclaration"||Ae.type==="FunctionExpression")&&ge&&ge.expandLastArg){let ae=z.getParentNode();N(ae)&&x(ae).length>1&&(Ne=!0)}let ke=[];Ae.type==="TSDeclareFunction"&&Ae.declare&&ke.push("declare "),Ae.async&&ke.push("async "),Ae.generator?ke.push("function* "):ke.push("function "),Ae.id&&ke.push(U("id"));let ce=j(z,U,le,Ne),pe=X(z,U,le),de=$(Ae,pe);return ke.push(q(z,le,U),c([de?c(ce):ce,pe]),Ae.body?" ":"",U("body")),le.semi&&(Ae.declare||!Ae.body)&&ke.push(";"),ke}function H(z,U,le){let ge=z.getNode(),{kind:Ae}=ge,Ne=ge.value||ge,ke=[];return!Ae||Ae==="init"||Ae==="method"||Ae==="constructor"?Ne.async&&ke.push("async "):(t.ok(Ae==="get"||Ae==="set"),ke.push(Ae," ")),Ne.generator&&ke.push("*"),ke.push(V(z,U,le),ge.optional||ge.key.optional?"?":""),ge===Ne?ke.push(R(z,U,le)):Ne.type==="FunctionExpression"?ke.push(z.call(ce=>R(ce,U,le),"value")):ke.push(le("value")),ke}function R(z,U,le){let ge=z.getNode(),Ae=j(z,le,U),Ne=X(z,le,U),ke=$(ge,Ne),ce=[q(z,U,le),c([ke?c(Ae):Ae,Ne])];return ge.body?ce.push(" ",le("body")):ce.push(U.semi?";":""),ce}function Q(z,U,le,ge){let Ae=z.getValue(),Ne=[];if(Ae.async&&Ne.push("async "),W(z,U))Ne.push(le(["params",0]));else{let ce=ge&&(ge.expandLastArg||ge.expandFirstArg),pe=X(z,le,U);if(ce){if(w(pe))throw new T;pe=c(h(pe))}Ne.push(c([j(z,le,U,ce,!0),pe]))}let ke=s(z,U,!0,ce=>{let pe=u(U.originalText,ce,M);return pe!==!1&&U.originalText.slice(pe,pe+2)==="=>"});return ke&&Ne.push(" ",ke),Ne}function ee(z,U,le,ge,Ae,Ne){let ke=z.getName(),ce=z.getParentNode(),pe=y(ce)&&ke==="callee",de=Boolean(U&&U.assignmentLayout),ae=Ne.body.type!=="BlockStatement"&&Ne.body.type!=="ObjectExpression"&&Ne.body.type!=="SequenceExpression",ve=pe&&ae||U&&U.assignmentLayout==="chain-tail-arrow-chain",K=Symbol("arrow-chain");return Ne.body.type==="SequenceExpression"&&(Ae=c(["(",v([o,Ae]),o,")"])),c([c(v([pe||de?o:"",c(p([" =>",i],le),{shouldBreak:ge})]),{id:K,shouldBreak:ve})," =>",f(ae?v([i,Ae]):[" ",Ae],{groupId:K}),pe?m(o,"",{groupId:K}):""])}function te(z,U,le,ge){let Ae=z.getValue(),Ne=[],ke=[],ce=!1;if(function K(){let he=Q(z,U,le,ge);if(Ne.length===0)Ne.push(he);else{let{leading:ye,trailing:Ce}=a(z,U);Ne.push([ye,he]),ke.unshift(Ce)}ce=ce||Ae.returnType&&A(Ae).length>0||Ae.typeParameters||A(Ae).some(ye=>ye.type!=="Identifier"),Ae.body.type!=="ArrowFunctionExpression"||ge&&ge.expandLastArg?ke.unshift(le("body",ge)):(Ae=Ae.body,z.call(K,"body"))}(),Ne.length>1)return ee(z,ge,Ne,ce,ke,Ae);let pe=Ne;if(pe.push(" =>"),!S(U.originalText,Ae.body)&&(Ae.body.type==="ArrayExpression"||Ae.body.type==="ObjectExpression"||Ae.body.type==="BlockStatement"||I(Ae.body)||k(Ae.body,U.originalText)||Ae.body.type==="ArrowFunctionExpression"||Ae.body.type==="DoExpression"))return c([...pe," ",ke]);if(Ae.body.type==="SequenceExpression")return c([...pe,c([" (",v([o,ke]),o,")"])]);let de=(ge&&ge.expandLastArg||z.getParentNode().type==="JSXExpressionContainer")&&!F(Ae),ae=ge&&ge.expandLastArg&&P(U,"all"),ve=Ae.body.type==="ConditionalExpression"&&!C(Ae.body,!1);return c([...pe,c([v([i,ve?m("","("):"",ke,ve?m("",")"):""]),de?[m(ae?",":""),o]:""])])}function oe(z){let U=A(z);return U.length===1&&!z.typeParameters&&!F(z,E.Dangling)&&U[0].type==="Identifier"&&!U[0].typeAnnotation&&!F(U[0])&&!U[0].optional&&!z.predicate&&!z.returnType}function W(z,U){if(U.arrowParens==="always")return!1;if(U.arrowParens==="avoid"){let le=z.getValue();return oe(le)}return!1}function X(z,U,le){let ge=z.getValue(),Ae=U("returnType");if(ge.returnType&&B(le.originalText,ge.returnType))return[" /*: ",Ae," */"];let Ne=[Ae];return ge.returnType&&ge.returnType.typeAnnotation&&Ne.unshift(": "),ge.predicate&&Ne.push(ge.returnType?" ":": ",U("predicate")),Ne}function ue(z,U,le){let ge=z.getValue(),Ae=U.semi?";":"",Ne=[];ge.argument&&(G(U,ge.argument)?Ne.push([" (",v([d,le("argument")]),d,")"]):D(ge.argument)||ge.argument.type==="SequenceExpression"?Ne.push(c([m(" ("," "),v([o,le("argument")]),o,m(")")])):Ne.push(" ",le("argument")));let ke=l(ge),ce=r(ke),pe=ce&&g(ce);return pe&&Ne.push(Ae),F(ge,E.Dangling)&&Ne.push(" ",s(z,U,!0)),pe||Ne.push(Ae),Ne}function De(z,U,le){return["return",ue(z,U,le)]}function ie(z,U,le){return["throw",ue(z,U,le)]}function G(z,U){if(S(z.originalText,U))return!0;if(b(U)){let le=U,ge;for(;ge=L(le);)if(le=ge,S(z.originalText,le))return!0}return!1}n.exports={printFunction:Y,printArrowFunction:te,printMethod:H,printReturnStatement:De,printThrowStatement:ie,printMethodInternal:R,shouldPrintParamsWithoutParens:W}}}),Un=Z({"src/language-js/print/decorators.js"(e,n){"use strict";re();var{isNonEmptyArray:t,hasNewline:s}=Ue(),{builders:{line:a,hardline:r,join:u,breakParent:i,group:o}}=Oe(),{locStart:c,locEnd:v}=st(),{getParentExportDeclaration:m}=Ke();function d(T,A,S){let B=T.getValue();return o([u(a,T.map(S,"decorators")),h(B,A)?r:a])}function p(T,A,S){return[u(r,T.map(S,"declaration","decorators")),r]}function f(T,A,S){let B=T.getValue(),{decorators:I}=B;if(!t(I)||w(T.getParentNode()))return;let k=B.type==="ClassExpression"||B.type==="ClassDeclaration"||h(B,A);return[m(T)?r:k?i:"",u(a,T.map(S,"decorators")),a]}function h(T,A){return T.decorators.some(S=>s(A.originalText,v(S)))}function w(T){if(T.type!=="ExportDefaultDeclaration"&&T.type!=="ExportNamedDeclaration"&&T.type!=="DeclareExportDeclaration")return!1;let A=T.declaration&&T.declaration.decorators;return t(A)&&c(T,{ignoreDecorators:!0})>c(A[0])}n.exports={printDecorators:f,printClassMemberDecorators:d,printDecoratorsBeforeExport:p,hasDecoratorsBeforeExport:w}}}),Zt=Z({"src/language-js/print/class.js"(e,n){"use strict";re();var{isNonEmptyArray:t,createGroupIdMapper:s}=Ue(),{printComments:a,printDanglingComments:r}=et(),{builders:{join:u,line:i,hardline:o,softline:c,group:v,indent:m,ifBreak:d}}=Oe(),{hasComment:p,CommentCheckFlags:f}=Ke(),{getTypeParametersGroupId:h}=Ir(),{printMethod:w}=Lr(),{printOptionalToken:T,printTypeAnnotation:A,printDefiniteToken:S}=ct(),{printPropertyKey:B}=Qt(),{printAssignment:I}=Yt(),{printClassMemberDecorators:k}=Un();function P(x,b,L){let M=x.getValue(),j=[];M.declare&&j.push("declare "),M.abstract&&j.push("abstract "),j.push("class");let $=M.id&&p(M.id,f.Trailing)||M.typeParameters&&p(M.typeParameters,f.Trailing)||M.superClass&&p(M.superClass)||t(M.extends)||t(M.mixins)||t(M.implements),V=[],q=[];if(M.id&&V.push(" ",L("id")),V.push(L("typeParameters")),M.superClass){let Y=[E(x,b,L),L("superTypeParameters")],H=x.call(R=>["extends ",a(R,Y,b)],"superClass");$?q.push(i,v(H)):q.push(" ",H)}else q.push(l(x,b,L,"extends"));if(q.push(l(x,b,L,"mixins"),l(x,b,L,"implements")),$){let Y;F(M)?Y=[...V,m(q)]:Y=m([...V,q]),j.push(v(Y,{id:C(M)}))}else j.push(...V,...q);return j.push(" ",L("body")),j}var C=s("heritageGroup");function D(x){return d(o,"",{groupId:C(x)})}function g(x){return["superClass","extends","mixins","implements"].filter(b=>Boolean(x[b])).length>1}function F(x){return x.typeParameters&&!p(x.typeParameters,f.Trailing|f.Line)&&!g(x)}function l(x,b,L,M){let j=x.getValue();if(!t(j[M]))return"";let $=r(x,b,!0,V=>{let{marker:q}=V;return q===M});return[F(j)?d(" ",i,{groupId:h(j.typeParameters)}):i,$,$&&o,M,v(m([i,u([",",i],x.map(L,M))]))]}function E(x,b,L){let M=L("superClass");return x.getParentNode().type==="AssignmentExpression"?v(d(["(",m([c,M]),c,")"],M)):M}function y(x,b,L){let M=x.getValue(),j=[];return t(M.decorators)&&j.push(k(x,b,L)),M.accessibility&&j.push(M.accessibility+" "),M.readonly&&j.push("readonly "),M.declare&&j.push("declare "),M.static&&j.push("static "),(M.type==="TSAbstractMethodDefinition"||M.abstract)&&j.push("abstract "),M.override&&j.push("override "),j.push(w(x,b,L)),j}function N(x,b,L){let M=x.getValue(),j=[],$=b.semi?";":"";return t(M.decorators)&&j.push(k(x,b,L)),M.accessibility&&j.push(M.accessibility+" "),M.declare&&j.push("declare "),M.static&&j.push("static "),(M.type==="TSAbstractPropertyDefinition"||M.abstract)&&j.push("abstract "),M.override&&j.push("override "),M.readonly&&j.push("readonly "),M.variance&&j.push(L("variance")),M.type==="ClassAccessorProperty"&&j.push("accessor "),j.push(B(x,b,L),T(x),S(x),A(x,b,L)),[I(x,b,L,j," =","value"),$]}n.exports={printClass:P,printClassMethod:y,printClassProperty:N,printHardlineAfterHeritage:D}}}),lo=Z({"src/language-js/print/interface.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{join:s,line:a,group:r,indent:u,ifBreak:i}}=Oe(),{hasComment:o,identity:c,CommentCheckFlags:v}=Ke(),{getTypeParametersGroupId:m}=Ir(),{printTypeScriptModifiers:d}=ct();function p(f,h,w){let T=f.getValue(),A=[];T.declare&&A.push("declare "),T.type==="TSInterfaceDeclaration"&&A.push(T.abstract?"abstract ":"",d(f,h,w)),A.push("interface");let S=[],B=[];T.type!=="InterfaceTypeAnnotation"&&S.push(" ",w("id"),w("typeParameters"));let I=T.typeParameters&&!o(T.typeParameters,v.Trailing|v.Line);return t(T.extends)&&B.push(I?i(" ",a,{groupId:m(T.typeParameters)}):a,"extends ",(T.extends.length===1?c:u)(s([",",a],f.map(w,"extends")))),T.id&&o(T.id,v.Trailing)||t(T.extends)?I?A.push(r([...S,u(B)])):A.push(r(u([...S,...B]))):A.push(...S,...B),A.push(" ",w("body")),r(A)}n.exports={printInterface:p}}}),co=Z({"src/language-js/print/module.js"(e,n){"use strict";re();var{isNonEmptyArray:t}=Ue(),{builders:{softline:s,group:a,indent:r,join:u,line:i,ifBreak:o,hardline:c}}=Oe(),{printDanglingComments:v}=et(),{hasComment:m,CommentCheckFlags:d,shouldPrintComma:p,needsHardlineAfterDanglingComment:f,isStringLiteral:h,rawText:w}=Ke(),{locStart:T,hasSameLoc:A}=st(),{hasDecoratorsBeforeExport:S,printDecoratorsBeforeExport:B}=Un();function I(N,x,b){let L=N.getValue(),M=x.semi?";":"",j=[],{importKind:$}=L;return j.push("import"),$&&$!=="value"&&j.push(" ",$),j.push(g(N,x,b),D(N,x,b),l(N,x,b),M),j}function k(N,x,b){let L=N.getValue(),M=[];S(L)&&M.push(B(N,x,b));let{type:j,exportKind:$,declaration:V}=L;return M.push("export"),(L.default||j==="ExportDefaultDeclaration")&&M.push(" default"),m(L,d.Dangling)&&(M.push(" ",v(N,x,!0)),f(L)&&M.push(c)),V?M.push(" ",b("declaration")):M.push($==="type"?" type":"",g(N,x,b),D(N,x,b),l(N,x,b)),C(L,x)&&M.push(";"),M}function P(N,x,b){let L=N.getValue(),M=x.semi?";":"",j=[],{exportKind:$,exported:V}=L;return j.push("export"),$==="type"&&j.push(" type"),j.push(" *"),V&&j.push(" as ",b("exported")),j.push(D(N,x,b),l(N,x,b),M),j}function C(N,x){if(!x.semi)return!1;let{type:b,declaration:L}=N,M=N.default||b==="ExportDefaultDeclaration";if(!L)return!0;let{type:j}=L;return!!(M&&j!=="ClassDeclaration"&&j!=="FunctionDeclaration"&&j!=="TSInterfaceDeclaration"&&j!=="DeclareClass"&&j!=="DeclareFunction"&&j!=="TSDeclareFunction"&&j!=="EnumDeclaration")}function D(N,x,b){let L=N.getValue();if(!L.source)return"";let M=[];return F(L,x)||M.push(" from"),M.push(" ",b("source")),M}function g(N,x,b){let L=N.getValue();if(F(L,x))return"";let M=[" "];if(t(L.specifiers)){let j=[],$=[];N.each(()=>{let V=N.getValue().type;if(V==="ExportNamespaceSpecifier"||V==="ExportDefaultSpecifier"||V==="ImportNamespaceSpecifier"||V==="ImportDefaultSpecifier")j.push(b());else if(V==="ExportSpecifier"||V==="ImportSpecifier")$.push(b());else throw new Error("Unknown specifier type ".concat(JSON.stringify(V)))},"specifiers"),M.push(u(", ",j)),$.length>0&&(j.length>0&&M.push(", "),$.length>1||j.length>0||L.specifiers.some(q=>m(q))?M.push(a(["{",r([x.bracketSpacing?i:s,u([",",i],$)]),o(p(x)?",":""),x.bracketSpacing?i:s,"}"])):M.push(["{",x.bracketSpacing?" ":"",...$,x.bracketSpacing?" ":"","}"]))}else M.push("{}");return M}function F(N,x){let{type:b,importKind:L,source:M,specifiers:j}=N;return b!=="ImportDeclaration"||t(j)||L==="type"?!1:!/{\s*}/.test(x.originalText.slice(T(N),T(M)))}function l(N,x,b){let L=N.getNode();return t(L.assertions)?[" assert {",x.bracketSpacing?" ":"",u(", ",N.map(b,"assertions")),x.bracketSpacing?" ":"","}"]:""}function E(N,x,b){let L=N.getNode(),{type:M}=L,j=[],$=M==="ImportSpecifier"?L.importKind:L.exportKind;$&&$!=="value"&&j.push($," ");let V=M.startsWith("Import"),q=V?"imported":"local",Y=V?"local":"exported",H=L[q],R=L[Y],Q="",ee="";return M==="ExportNamespaceSpecifier"||M==="ImportNamespaceSpecifier"?Q="*":H&&(Q=b(q)),R&&!y(L)&&(ee=b(Y)),j.push(Q,Q&&ee?" as ":"",ee),j}function y(N){if(N.type!=="ImportSpecifier"&&N.type!=="ExportSpecifier")return!1;let{local:x,[N.type==="ImportSpecifier"?"imported":"exported"]:b}=N;if(x.type!==b.type||!A(x,b))return!1;if(h(x))return x.value===b.value&&w(x)===w(b);switch(x.type){case"Identifier":return x.name===b.name;default:return!1}}n.exports={printImportDeclaration:I,printExportDeclaration:k,printExportAllDeclaration:P,printModuleSpecifier:E}}}),zn=Z({"src/language-js/print/object.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{builders:{line:s,softline:a,group:r,indent:u,ifBreak:i,hardline:o}}=Oe(),{getLast:c,hasNewlineInRange:v,hasNewline:m,isNonEmptyArray:d}=Ue(),{shouldPrintComma:p,hasComment:f,getComments:h,CommentCheckFlags:w,isNextLineEmpty:T}=Ke(),{locStart:A,locEnd:S}=st(),{printOptionalToken:B,printTypeAnnotation:I}=ct(),{shouldHugFunctionParameters:k}=Pr(),{shouldHugType:P}=kr(),{printHardlineAfterHeritage:C}=Zt();function D(g,F,l){let E=F.semi?";":"",y=g.getValue(),N;y.type==="TSTypeLiteral"?N="members":y.type==="TSInterfaceBody"?N="body":N="properties";let x=y.type==="ObjectTypeAnnotation",b=[N];x&&b.push("indexers","callProperties","internalSlots");let L=b.map(W=>y[W][0]).sort((W,X)=>A(W)-A(X))[0],M=g.getParentNode(0),j=x&&M&&(M.type==="InterfaceDeclaration"||M.type==="DeclareInterface"||M.type==="DeclareClass")&&g.getName()==="body",$=y.type==="TSInterfaceBody"||j||y.type==="ObjectPattern"&&M.type!=="FunctionDeclaration"&&M.type!=="FunctionExpression"&&M.type!=="ArrowFunctionExpression"&&M.type!=="ObjectMethod"&&M.type!=="ClassMethod"&&M.type!=="ClassPrivateMethod"&&M.type!=="AssignmentPattern"&&M.type!=="CatchClause"&&y.properties.some(W=>W.value&&(W.value.type==="ObjectPattern"||W.value.type==="ArrayPattern"))||y.type!=="ObjectPattern"&&L&&v(F.originalText,A(y),A(L)),V=j?";":y.type==="TSInterfaceBody"||y.type==="TSTypeLiteral"?i(E,";"):",",q=y.type==="RecordExpression"?"#{":y.exact?"{|":"{",Y=y.exact?"|}":"}",H=[];for(let W of b)g.each(X=>{let ue=X.getValue();H.push({node:ue,printed:l(),loc:A(ue)})},W);b.length>1&&H.sort((W,X)=>W.loc-X.loc);let R=[],Q=H.map(W=>{let X=[...R,r(W.printed)];return R=[V,s],(W.node.type==="TSPropertySignature"||W.node.type==="TSMethodSignature"||W.node.type==="TSConstructSignatureDeclaration")&&f(W.node,w.PrettierIgnore)&&R.shift(),T(W.node,F)&&R.push(o),X});if(y.inexact){let W;if(f(y,w.Dangling)){let X=f(y,w.Line);W=[t(g,F,!0),X||m(F.originalText,S(c(h(y))))?o:s,"..."]}else W=["..."];Q.push([...R,...W])}let ee=c(y[N]),te=!(y.inexact||ee&&ee.type==="RestElement"||ee&&(ee.type==="TSPropertySignature"||ee.type==="TSCallSignatureDeclaration"||ee.type==="TSMethodSignature"||ee.type==="TSConstructSignatureDeclaration")&&f(ee,w.PrettierIgnore)),oe;if(Q.length===0){if(!f(y,w.Dangling))return[q,Y,I(g,F,l)];oe=r([q,t(g,F),a,Y,B(g),I(g,F,l)])}else oe=[j&&d(y.properties)?C(M):"",q,u([F.bracketSpacing?s:a,...Q]),i(te&&(V!==","||p(F))?V:""),F.bracketSpacing?s:a,Y,B(g),I(g,F,l)];return g.match(W=>W.type==="ObjectPattern"&&!W.decorators,(W,X,ue)=>k(W)&&(X==="params"||X==="parameters"||X==="this"||X==="rest")&&ue===0)||g.match(P,(W,X)=>X==="typeAnnotation",(W,X)=>X==="typeAnnotation",(W,X,ue)=>k(W)&&(X==="params"||X==="parameters"||X==="this"||X==="rest")&&ue===0)||!$&&g.match(W=>W.type==="ObjectPattern",W=>W.type==="AssignmentExpression"||W.type==="VariableDeclarator")?oe:r(oe,{shouldBreak:$})}n.exports={printObject:D}}}),Um=Z({"src/language-js/print/flow.js"(e,n){"use strict";re();var t=Xt(),{printDanglingComments:s}=et(),{printString:a,printNumber:r}=Ue(),{builders:{hardline:u,softline:i,group:o,indent:c}}=Oe(),{getParentExportDeclaration:v,isFunctionNotation:m,isGetterOrSetter:d,rawText:p,shouldPrintComma:f}=Ke(),{locStart:h,locEnd:w}=st(),{printClass:T}=Zt(),{printOpaqueType:A,printTypeAlias:S,printIntersectionType:B,printUnionType:I,printFunctionType:k,printTupleType:P,printIndexedAccessType:C}=kr(),{printInterface:D}=lo(),{printTypeParameter:g,printTypeParameters:F}=Ir(),{printExportDeclaration:l,printExportAllDeclaration:E}=co(),{printArrayItems:y}=Kt(),{printObject:N}=zn(),{printPropertyKey:x}=Qt(),{printOptionalToken:b,printTypeAnnotation:L,printRestSpread:M}=ct();function j(V,q,Y){let H=V.getValue(),R=q.semi?";":"",Q=[];switch(H.type){case"DeclareClass":return $(V,T(V,q,Y));case"DeclareFunction":return $(V,["function ",Y("id"),H.predicate?" ":"",Y("predicate"),R]);case"DeclareModule":return $(V,["module ",Y("id")," ",Y("body")]);case"DeclareModuleExports":return $(V,["module.exports",": ",Y("typeAnnotation"),R]);case"DeclareVariable":return $(V,["var ",Y("id"),R]);case"DeclareOpaqueType":return $(V,A(V,q,Y));case"DeclareInterface":return $(V,D(V,q,Y));case"DeclareTypeAlias":return $(V,S(V,q,Y));case"DeclareExportDeclaration":return $(V,l(V,q,Y));case"DeclareExportAllDeclaration":return $(V,E(V,q,Y));case"OpaqueType":return A(V,q,Y);case"TypeAlias":return S(V,q,Y);case"IntersectionTypeAnnotation":return B(V,q,Y);case"UnionTypeAnnotation":return I(V,q,Y);case"FunctionTypeAnnotation":return k(V,q,Y);case"TupleTypeAnnotation":return P(V,q,Y);case"GenericTypeAnnotation":return[Y("id"),F(V,q,Y,"typeParameters")];case"IndexedAccessType":case"OptionalIndexedAccessType":return C(V,q,Y);case"TypeAnnotation":return Y("typeAnnotation");case"TypeParameter":return g(V,q,Y);case"TypeofTypeAnnotation":return["typeof ",Y("argument")];case"ExistsTypeAnnotation":return"*";case"EmptyTypeAnnotation":return"empty";case"MixedTypeAnnotation":return"mixed";case"ArrayTypeAnnotation":return[Y("elementType"),"[]"];case"BooleanLiteralTypeAnnotation":return String(H.value);case"EnumDeclaration":return["enum ",Y("id")," ",Y("body")];case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":{if(H.type==="EnumSymbolBody"||H.explicitType){let ee=null;switch(H.type){case"EnumBooleanBody":ee="boolean";break;case"EnumNumberBody":ee="number";break;case"EnumStringBody":ee="string";break;case"EnumSymbolBody":ee="symbol";break}Q.push("of ",ee," ")}if(H.members.length===0&&!H.hasUnknownMembers)Q.push(o(["{",s(V,q),i,"}"]));else{let ee=H.members.length>0?[u,y(V,q,"members",Y),H.hasUnknownMembers||f(q)?",":""]:[];Q.push(o(["{",c([...ee,...H.hasUnknownMembers?[u,"..."]:[]]),s(V,q,!0),u,"}"]))}return Q}case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":return[Y("id")," = ",typeof H.init=="object"?Y("init"):String(H.init)];case"EnumDefaultedMember":return Y("id");case"FunctionTypeParam":{let ee=H.name?Y("name"):V.getParentNode().this===H?"this":"";return[ee,b(V),ee?": ":"",Y("typeAnnotation")]}case"InterfaceDeclaration":case"InterfaceTypeAnnotation":return D(V,q,Y);case"ClassImplements":case"InterfaceExtends":return[Y("id"),Y("typeParameters")];case"NullableTypeAnnotation":return["?",Y("typeAnnotation")];case"Variance":{let{kind:ee}=H;return t.ok(ee==="plus"||ee==="minus"),ee==="plus"?"+":"-"}case"ObjectTypeCallProperty":return H.static&&Q.push("static "),Q.push(Y("value")),Q;case"ObjectTypeIndexer":return[H.static?"static ":"",H.variance?Y("variance"):"","[",Y("id"),H.id?": ":"",Y("key"),"]: ",Y("value")];case"ObjectTypeProperty":{let ee="";return H.proto?ee="proto ":H.static&&(ee="static "),[ee,d(H)?H.kind+" ":"",H.variance?Y("variance"):"",x(V,q,Y),b(V),m(H)?"":": ",Y("value")]}case"ObjectTypeAnnotation":return N(V,q,Y);case"ObjectTypeInternalSlot":return[H.static?"static ":"","[[",Y("id"),"]]",b(V),H.method?"":": ",Y("value")];case"ObjectTypeSpreadProperty":return M(V,q,Y);case"QualifiedTypeofIdentifier":case"QualifiedTypeIdentifier":return[Y("qualification"),".",Y("id")];case"StringLiteralTypeAnnotation":return a(p(H),q);case"NumberLiteralTypeAnnotation":t.strictEqual(typeof H.value,"number");case"BigIntLiteralTypeAnnotation":return H.extra?r(H.extra.raw):r(H.raw);case"TypeCastExpression":return["(",Y("expression"),L(V,q,Y),")"];case"TypeParameterDeclaration":case"TypeParameterInstantiation":{let ee=F(V,q,Y,"params");if(q.parser==="flow"){let te=h(H),oe=w(H),W=q.originalText.lastIndexOf("/*",te),X=q.originalText.indexOf("*/",oe);if(W!==-1&&X!==-1){let ue=q.originalText.slice(W+2,X).trim();if(ue.startsWith("::")&&!ue.includes("/*")&&!ue.includes("*/"))return["/*:: ",ee," */"]}}return ee}case"InferredPredicate":return"%checks";case"DeclaredPredicate":return["%checks(",Y("value"),")"];case"AnyTypeAnnotation":return"any";case"BooleanTypeAnnotation":return"boolean";case"BigIntTypeAnnotation":return"bigint";case"NullLiteralTypeAnnotation":return"null";case"NumberTypeAnnotation":return"number";case"SymbolTypeAnnotation":return"symbol";case"StringTypeAnnotation":return"string";case"VoidTypeAnnotation":return"void";case"ThisTypeAnnotation":return"this";case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"MemberTypeAnnotation":case"Type":throw new Error("unprintable type: "+JSON.stringify(H.type))}}function $(V,q){let Y=v(V);return Y?(t.strictEqual(Y.type,"DeclareExportDeclaration"),q):["declare ",q]}n.exports={printFlow:j}}}),zm=Z({"src/language-js/utils/is-ts-keyword-type.js"(e,n){"use strict";re();function t(s){let{type:a}=s;return a.startsWith("TS")&&a.endsWith("Keyword")}n.exports=t}}),po=Z({"src/language-js/print/ternary.js"(e,n){"use strict";re();var{hasNewlineInRange:t}=Ue(),{isJsxNode:s,getComments:a,isCallExpression:r,isMemberExpression:u}=Ke(),{locStart:i,locEnd:o}=st(),c=It(),{builders:{line:v,softline:m,group:d,indent:p,align:f,ifBreak:h,dedent:w,breakParent:T}}=Oe();function A(P){let C=[P];for(let D=0;DM[ue]===g),$=M.type===g.type&&!j,V,q,Y=0;do q=V||g,V=P.getParentNode(Y),Y++;while(V&&V.type===g.type&&y.every(ue=>V[ue]!==q));let H=V||M,R=q;if(F&&(s(g[y[0]])||s(N)||s(x)||A(R))){L=!0,$=!0;let ue=ie=>[h("("),p([m,ie]),m,h(")")],De=ie=>ie.type==="NullLiteral"||ie.type==="Literal"&&ie.value===null||ie.type==="Identifier"&&ie.name==="undefined";b.push(" ? ",De(N)?D(l):ue(D(l))," : ",x.type===g.type||De(x)?D(E):ue(D(E)))}else{let ue=[v,"? ",N.type===g.type?h("","("):"",f(2,D(l)),N.type===g.type?h("",")"):"",v,": ",x.type===g.type?D(E):f(2,D(E))];b.push(M.type!==g.type||M[E]===g||j?ue:C.useTabs?w(p(ue)):f(Math.max(0,C.tabWidth-2),ue))}let ee=[...y.map(ue=>a(g[ue])),a(N),a(x)].flat().some(ue=>c(ue)&&t(C.originalText,i(ue),o(ue))),te=ue=>M===H?d(ue,{shouldBreak:ee}):ee?[ue,T]:ue,oe=!L&&(u(M)||M.type==="NGPipeExpression"&&M.left===g)&&!M.computed,W=I(P),X=te([S(P,C,D),$?b:p(b),F&&oe&&!W?m:""]);return j||W?d([p([m,X]),m]):X}n.exports={printTernary:k}}}),fo=Z({"src/language-js/print/statement.js"(e,n){"use strict";re();var{builders:{hardline:t}}=Oe(),s=jt(),{getLeftSidePathName:a,hasNakedLeftSide:r,isJsxNode:u,isTheOnlyJsxElementInMarkdown:i,hasComment:o,CommentCheckFlags:c,isNextLineEmpty:v}=Ke(),{shouldPrintParamsWithoutParens:m}=Lr();function d(B,I,k,P){let C=B.getValue(),D=[],g=C.type==="ClassBody",F=p(C[P]);return B.each((l,E,y)=>{let N=l.getValue();if(N.type==="EmptyStatement")return;let x=k();!I.semi&&!g&&!i(I,l)&&f(l,I)?o(N,c.Leading)?D.push(k([],{needsSemi:!0})):D.push(";",x):D.push(x),!I.semi&&g&&A(N)&&S(N,y[E+1])&&D.push(";"),N!==F&&(D.push(t),v(N,I)&&D.push(t))},P),D}function p(B){for(let I=B.length-1;I>=0;I--){let k=B[I];if(k.type!=="EmptyStatement")return k}}function f(B,I){return B.getNode().type!=="ExpressionStatement"?!1:B.call(P=>h(P,I),"expression")}function h(B,I){let k=B.getValue();switch(k.type){case"ParenthesizedExpression":case"TypeCastExpression":case"ArrayExpression":case"ArrayPattern":case"TemplateLiteral":case"TemplateElement":case"RegExpLiteral":return!0;case"ArrowFunctionExpression":{if(!m(B,I))return!0;break}case"UnaryExpression":{let{prefix:P,operator:C}=k;if(P&&(C==="+"||C==="-"))return!0;break}case"BindExpression":{if(!k.object)return!0;break}case"Literal":{if(k.regex)return!0;break}default:if(u(k))return!0}return s(B,I)?!0:r(k)?B.call(P=>h(P,I),...a(B,k)):!1}function w(B,I,k){return d(B,I,k,"body")}function T(B,I,k){return d(B,I,k,"consequent")}var A=B=>{let{type:I}=B;return I==="ClassProperty"||I==="PropertyDefinition"||I==="ClassPrivateProperty"||I==="ClassAccessorProperty"};function S(B,I){let k=B.key&&B.key.name;if((k==="static"||k==="get"||k==="set")&&!B.value&&!B.typeAnnotation)return!0;if(!I||I.static||I.accessibility)return!1;if(!I.computed){let P=I.key&&I.key.name;if(P==="in"||P==="instanceof")return!0}if(A(I)&&I.variance&&!I.static&&!I.declare)return!0;switch(I.type){case"ClassProperty":case"PropertyDefinition":case"TSAbstractPropertyDefinition":return I.computed;case"MethodDefinition":case"TSAbstractMethodDefinition":case"ClassMethod":case"ClassPrivateMethod":{if((I.value?I.value.async:I.async)||I.kind==="get"||I.kind==="set")return!1;let C=I.value?I.value.generator:I.generator;return!!(I.computed||C)}case"TSIndexSignature":return!0}return!1}n.exports={printBody:w,printSwitchCaseConsequent:T}}}),Do=Z({"src/language-js/print/block.js"(e,n){"use strict";re();var{printDanglingComments:t}=et(),{isNonEmptyArray:s}=Ue(),{builders:{hardline:a,indent:r}}=Oe(),{hasComment:u,CommentCheckFlags:i,isNextLineEmpty:o}=Ke(),{printHardlineAfterHeritage:c}=Zt(),{printBody:v}=fo();function m(p,f,h){let w=p.getValue(),T=[];if(w.type==="StaticBlock"&&T.push("static "),w.type==="ClassBody"&&s(w.body)){let S=p.getParentNode();T.push(c(S))}T.push("{");let A=d(p,f,h);if(A)T.push(r([a,A]),a);else{let S=p.getParentNode(),B=p.getParentNode(1);S.type==="ArrowFunctionExpression"||S.type==="FunctionExpression"||S.type==="FunctionDeclaration"||S.type==="ObjectMethod"||S.type==="ClassMethod"||S.type==="ClassPrivateMethod"||S.type==="ForStatement"||S.type==="WhileStatement"||S.type==="DoWhileStatement"||S.type==="DoExpression"||S.type==="CatchClause"&&!B.finalizer||S.type==="TSModuleDeclaration"||S.type==="TSDeclareFunction"||w.type==="StaticBlock"||w.type==="ClassBody"||T.push(a)}return T.push("}"),T}function d(p,f,h){let w=p.getValue(),T=s(w.directives),A=w.body.some(I=>I.type!=="EmptyStatement"),S=u(w,i.Dangling);if(!T&&!A&&!S)return"";let B=[];if(T&&p.each((I,k,P)=>{B.push(h()),(k"]),z=[m("("),c([i,W("expression")]),i,m(")")];return ie?v([[G,W("expression")],[G,o(z,{shouldBreak:!0})],[G,W("expression")]]):o([G,W("expression")])}case"TSDeclareFunction":return b(te,W,oe);case"TSExportAssignment":return["export = ",W("expression"),ue];case"TSModuleBlock":return j(te,oe,W);case"TSInterfaceBody":case"TSTypeLiteral":return F(te,oe,W);case"TSTypeAliasDeclaration":return $(te,oe,W);case"TSQualifiedName":return a(".",[W("left"),W("right")]);case"TSAbstractMethodDefinition":case"TSDeclareMethod":return E(te,oe,W);case"TSAbstractPropertyDefinition":return l(te,oe,W);case"TSInterfaceHeritage":case"TSExpressionWithTypeArguments":return De.push(W("expression")),X.typeParameters&&De.push(W("typeParameters")),De;case"TSTemplateLiteralType":return D(te,W,oe);case"TSNamedTupleMember":return[W("label"),X.optional?"?":"",": ",W("elementType")];case"TSRestType":return["...",W("typeAnnotation")];case"TSOptionalType":return[W("typeAnnotation"),"?"];case"TSInterfaceDeclaration":return M(te,oe,W);case"TSClassImplements":return[W("expression"),W("typeParameters")];case"TSTypeParameterDeclaration":case"TSTypeParameterInstantiation":return N(te,oe,W,"params");case"TSTypeParameter":return y(te,oe,W);case"TSAsExpression":{De.push(W("expression")," as ",W("typeAnnotation"));let ie=te.getParentNode();return h(ie)&&ie.callee===X||w(ie)&&ie.object===X?o([c([i,...De]),i]):De}case"TSArrayType":return[W("elementType"),"[]"];case"TSPropertySignature":return X.readonly&&De.push("readonly "),De.push(x(te,oe,W),B(te)),X.typeAnnotation&&De.push(": ",W("typeAnnotation")),X.initializer&&De.push(" = ",W("initializer")),De;case"TSParameterProperty":return X.accessibility&&De.push(X.accessibility+" "),X.export&&De.push("export "),X.static&&De.push("static "),X.override&&De.push("override "),X.readonly&&De.push("readonly "),De.push(W("parameter")),De;case"TSTypeQuery":return["typeof ",W("exprName"),W("typeParameters")];case"TSIndexSignature":{let ie=te.getParentNode(),G=X.parameters.length>1?m(f(oe)?",":""):"",z=o([c([i,a([", ",i],te.map(W,"parameters"))]),G,i]);return[X.export?"export ":"",X.accessibility?[X.accessibility," "]:"",X.static?"static ":"",X.readonly?"readonly ":"",X.declare?"declare ":"","[",X.parameters?z:"",X.typeAnnotation?"]: ":"]",X.typeAnnotation?W("typeAnnotation"):"",ie.type==="ClassBody"?ue:""]}case"TSTypePredicate":return[X.asserts?"asserts ":"",W("parameterName"),X.typeAnnotation?[" is ",W("typeAnnotation")]:""];case"TSNonNullExpression":return[W("expression"),"!"];case"TSImportType":return[X.isTypeOf?"typeof ":"","import(",W(X.parameter?"parameter":"argument"),")",X.qualifier?[".",W("qualifier")]:"",N(te,oe,W,"typeParameters")];case"TSLiteralType":return W("literal");case"TSIndexedAccessType":return R(te,oe,W);case"TSConstructSignatureDeclaration":case"TSCallSignatureDeclaration":case"TSConstructorType":{if(X.type==="TSConstructorType"&&X.abstract&&De.push("abstract "),X.type!=="TSCallSignatureDeclaration"&&De.push("new "),De.push(o(P(te,W,oe,!1,!0))),X.returnType||X.typeAnnotation){let ie=X.type==="TSConstructorType";De.push(ie?" => ":": ",W("returnType"),W("typeAnnotation"))}return De}case"TSTypeOperator":return[X.operator," ",W("typeAnnotation")];case"TSMappedType":{let ie=s(oe.originalText,A(X),S(X));return o(["{",c([oe.bracketSpacing?r:i,X.readonly?[p(X.readonly,"readonly")," "]:"",I(te,oe,W),W("typeParameter"),X.optional?p(X.optional,"?"):"",X.typeAnnotation?": ":"",W("typeAnnotation"),m(ue)]),t(te,oe,!0),oe.bracketSpacing?r:i,"}"],{shouldBreak:ie})}case"TSMethodSignature":{let ie=X.kind&&X.kind!=="method"?"".concat(X.kind," "):"";De.push(X.accessibility?[X.accessibility," "]:"",ie,X.export?"export ":"",X.static?"static ":"",X.readonly?"readonly ":"",X.abstract?"abstract ":"",X.declare?"declare ":"",X.computed?"[":"",W("key"),X.computed?"]":"",B(te));let G=P(te,W,oe,!1,!0),z=X.returnType?"returnType":"typeAnnotation",U=X[z],le=U?W(z):"",ge=C(X,le);return De.push(ge?o(G):G),U&&De.push(": ",o(le)),o(De)}case"TSNamespaceExportDeclaration":return De.push("export as namespace ",W("id")),oe.semi&&De.push(";"),o(De);case"TSEnumDeclaration":return X.declare&&De.push("declare "),X.modifiers&&De.push(I(te,oe,W)),X.const&&De.push("const "),De.push("enum ",W("id")," "),X.members.length===0?De.push(o(["{",t(te,oe),i,"}"])):De.push(o(["{",c([u,g(te,oe,"members",W),f(oe,"es5")?",":""]),t(te,oe,!0),u,"}"])),De;case"TSEnumMember":return X.computed?De.push("[",W("id"),"]"):De.push(W("id")),X.initializer&&De.push(" = ",W("initializer")),De;case"TSImportEqualsDeclaration":return X.isExport&&De.push("export "),De.push("import "),X.importKind&&X.importKind!=="value"&&De.push(X.importKind," "),De.push(W("id")," = ",W("moduleReference")),oe.semi&&De.push(";"),o(De);case"TSExternalModuleReference":return["require(",W("expression"),")"];case"TSModuleDeclaration":{let ie=te.getParentNode(),G=d(X.id),z=ie.type==="TSModuleDeclaration",U=X.body&&X.body.type==="TSModuleDeclaration";if(z)De.push(".");else{X.declare&&De.push("declare "),De.push(I(te,oe,W));let le=oe.originalText.slice(A(X),A(X.id));X.id.type==="Identifier"&&X.id.name==="global"&&!/namespace|module/.test(le)||De.push(G||/(?:^|\s)module(?:\s|$)/.test(le)?"module ":"namespace ")}return De.push(W("id")),U?De.push(W("body")):X.body?De.push(" ",o(W("body"))):De.push(ue),De}case"TSConditionalType":return k(te,oe,W);case"TSInferType":return["infer"," ",W("typeParameter")];case"TSIntersectionType":return V(te,oe,W);case"TSUnionType":return q(te,oe,W);case"TSFunctionType":return Y(te,oe,W);case"TSTupleType":return H(te,oe,W);case"TSTypeReference":return[W("typeName"),N(te,oe,W,"typeParameters")];case"TSTypeAnnotation":return W("typeAnnotation");case"TSEmptyBodyFunctionExpression":return L(te,oe,W);case"TSJSDocAllType":return"*";case"TSJSDocUnknownType":return"?";case"TSJSDocNullableType":return Q(te,W,"?");case"TSJSDocNonNullableType":return Q(te,W,"!");case"TSInstantiationExpression":return[W("expression"),W("typeParameters")];default:throw new Error("Unknown TypeScript node type: ".concat(JSON.stringify(X.type),"."))}}n.exports={printTypescript:ee}}}),Km=Z({"src/language-js/print/comment.js"(e,n){"use strict";re();var{hasNewline:t}=Ue(),{builders:{join:s,hardline:a},utils:{replaceTextEndOfLine:r}}=Oe(),{isLineComment:u}=Ke(),{locStart:i,locEnd:o}=st(),c=It();function v(p,f){let h=p.getValue();if(u(h))return f.originalText.slice(i(h),o(h)).trimEnd();if(c(h)){if(m(h)){let A=d(h);return h.trailing&&!t(f.originalText,i(h),{backwards:!0})?[a,A]:A}let w=o(h),T=f.originalText.slice(w-3,w)==="*-/";return["/*",r(h.value),T?"*-/":"*/"]}throw new Error("Not a comment: "+JSON.stringify(h))}function m(p){let f="*".concat(p.value,"*").split(` +`);return f.length>1&&f.every(h=>h.trim()[0]==="*")}function d(p){let f=p.value.split(` +`);return["/*",s(a,f.map((h,w)=>w===0?h.trimEnd():" "+(w{let{marker:be}=Re;return be===l});return[Se("expression"),B(Pe,Be)?"":Xe,je?[" ",je]:""]}case"ParenthesizedExpression":return!A(xe.expression)&&(xe.expression.type==="ObjectExpression"||xe.expression.type==="ArrayExpression")?["(",Se("expression"),")"]:o(["(",c([i,Se("expression")]),i,")"]);case"AssignmentExpression":return ve(Be,Pe,Se);case"VariableDeclarator":return ae(Be,Pe,Se);case"BinaryExpression":case"LogicalExpression":return K(Be,Pe,Se);case"AssignmentPattern":return[Se("left")," = ",Se("right")];case"OptionalMemberExpression":case"MemberExpression":return ye(Be,Pe,Se);case"MetaProperty":return[Se("meta"),".",Se("property")];case"BindExpression":return xe.object&&_e.push(Se("object")),_e.push(o(c([i,Y(Be,Pe,Se)]))),_e;case"Identifier":return[xe.name,q(Be),ee(Be),H(Be,Pe,Se)];case"V8IntrinsicIdentifier":return["%",xe.name];case"SpreadElement":case"SpreadElementPattern":case"SpreadProperty":case"SpreadPropertyPattern":case"RestElement":return Q(Be,Pe,Se);case"FunctionDeclaration":case"FunctionExpression":return Ae(Be,Se,Pe,Qe);case"ArrowFunctionExpression":return Ne(Be,Pe,Se,Qe);case"YieldExpression":return _e.push("yield"),xe.delegate&&_e.push("*"),xe.argument&&_e.push(" ",Se("argument")),_e;case"AwaitExpression":{if(_e.push("await"),xe.argument){_e.push(" ",Se("argument"));let je=Be.getParentNode();if(g(je)&&je.callee===xe||F(je)&&je.object===xe){_e=[c([i,..._e]),i];let Re=Be.findAncestor(be=>be.type==="AwaitExpression"||be.type==="BlockStatement");if(!Re||Re.type!=="AwaitExpression")return o(_e)}}return _e}case"ExportDefaultDeclaration":case"ExportNamedDeclaration":return oe(Be,Pe,Se);case"ExportAllDeclaration":return W(Be,Pe,Se);case"ImportDeclaration":return te(Be,Pe,Se);case"ImportSpecifier":case"ExportSpecifier":case"ImportNamespaceSpecifier":case"ExportNamespaceSpecifier":case"ImportDefaultSpecifier":case"ExportDefaultSpecifier":return X(Be,Pe,Se);case"ImportAttribute":return[Se("key"),": ",Se("value")];case"Import":return"import";case"BlockStatement":case"StaticBlock":case"ClassBody":return Ce(Be,Pe,Se);case"ThrowStatement":return pe(Be,Pe,Se);case"ReturnStatement":return ce(Be,Pe,Se);case"NewExpression":case"ImportExpression":case"OptionalCallExpression":case"CallExpression":return de(Be,Pe,Se);case"ObjectExpression":case"ObjectPattern":case"RecordExpression":return G(Be,Pe,Se);case"ObjectProperty":case"Property":return xe.method||xe.kind==="get"||xe.kind==="set"?ke(Be,Pe,Se):ge(Be,Pe,Se);case"ObjectMethod":return ke(Be,Pe,Se);case"Decorator":return["@",Se("expression")];case"ArrayExpression":case"ArrayPattern":case"TupleExpression":return ie(Be,Pe,Se);case"SequenceExpression":{let je=Be.getParentNode(0);if(je.type==="ExpressionStatement"||je.type==="ForStatement"){let Re=[];return Be.each((be,Le)=>{Le===0?Re.push(Se()):Re.push(",",c([r,Se()]))},"expressions"),o(Re)}return o(a([",",r],Be.map(Se,"expressions")))}case"ThisExpression":return"this";case"Super":return"super";case"Directive":return[Se("value"),Xe];case"DirectiveLiteral":return Ee(xe,Pe);case"UnaryExpression":return _e.push(xe.operator),/[a-z]$/.test(xe.operator)&&_e.push(" "),A(xe.argument)?_e.push(o(["(",c([i,Se("argument")]),i,")"])):_e.push(Se("argument")),_e;case"UpdateExpression":return _e.push(Se("argument"),xe.operator),xe.prefix&&_e.reverse(),_e;case"ConditionalExpression":return ue(Be,Pe,Se);case"VariableDeclaration":{let je=Be.map(Se,"declarations"),Re=Be.getParentNode(),be=Re.type==="ForStatement"||Re.type==="ForInStatement"||Re.type==="ForOfStatement",Le=xe.declarations.some(se=>se.init),qe;return je.length===1&&!A(xe.declarations[0])?qe=je[0]:je.length>0&&(qe=c(je[0])),_e=[xe.declare?"declare ":"",xe.kind,qe?[" ",qe]:"",c(je.slice(1).map(se=>[",",Le&&!be?u:r,se]))],be&&Re.body!==xe||_e.push(Xe),o(_e)}case"WithStatement":return o(["with (",Se("object"),")",R(xe.body,Se("body"))]);case"IfStatement":{let je=R(xe.consequent,Se("consequent")),Re=o(["if (",o([c([i,Se("test")]),i]),")",je]);if(_e.push(Re),xe.alternate){let be=A(xe.consequent,S.Trailing|S.Line)||P(xe),Le=xe.consequent.type==="BlockStatement"&&!be;_e.push(Le?" ":u),A(xe,S.Dangling)&&_e.push(t(Be,Pe,!0),be?u:" "),_e.push("else",o(R(xe.alternate,Se("alternate"),xe.alternate.type==="IfStatement")))}return _e}case"ForStatement":{let je=R(xe.body,Se("body")),Re=t(Be,Pe,!0),be=Re?[Re,i]:"";return!xe.init&&!xe.test&&!xe.update?[be,o(["for (;;)",je])]:[be,o(["for (",o([c([i,Se("init"),";",r,Se("test"),";",r,Se("update")]),i]),")",je])]}case"WhileStatement":return o(["while (",o([c([i,Se("test")]),i]),")",R(xe.body,Se("body"))]);case"ForInStatement":return o(["for (",Se("left")," in ",Se("right"),")",R(xe.body,Se("body"))]);case"ForOfStatement":return o(["for",xe.await?" await":""," (",Se("left")," of ",Se("right"),")",R(xe.body,Se("body"))]);case"DoWhileStatement":{let je=R(xe.body,Se("body"));return _e=[o(["do",je])],xe.body.type==="BlockStatement"?_e.push(" "):_e.push(u),_e.push("while (",o([c([i,Se("test")]),i]),")",Xe),_e}case"DoExpression":return[xe.async?"async ":"","do ",Se("body")];case"BreakStatement":return _e.push("break"),xe.label&&_e.push(" ",Se("label")),_e.push(Xe),_e;case"ContinueStatement":return _e.push("continue"),xe.label&&_e.push(" ",Se("label")),_e.push(Xe),_e;case"LabeledStatement":return xe.body.type==="EmptyStatement"?[Se("label"),":;"]:[Se("label"),": ",Se("body")];case"TryStatement":return["try ",Se("block"),xe.handler?[" ",Se("handler")]:"",xe.finalizer?[" finally ",Se("finalizer")]:""];case"CatchClause":if(xe.param){let je=A(xe.param,be=>!N(be)||be.leading&&s(Pe.originalText,y(be))||be.trailing&&s(Pe.originalText,E(be),{backwards:!0})),Re=Se("param");return["catch ",je?["(",c([i,Re]),i,") "]:["(",Re,") "],Se("body")]}return["catch ",Se("body")];case"SwitchStatement":return[o(["switch (",c([i,Se("discriminant")]),i,")"])," {",xe.cases.length>0?c([u,a(u,Be.map((je,Re,be)=>{let Le=je.getValue();return[Se(),Re!==be.length-1&&k(Le,Pe)?u:""]},"cases"))]):"",u,"}"];case"SwitchCase":{xe.test?_e.push("case ",Se("test"),":"):_e.push("default:"),A(xe,S.Dangling)&&_e.push(" ",t(Be,Pe,!0));let je=xe.consequent.filter(Re=>Re.type!=="EmptyStatement");if(je.length>0){let Re=he(Be,Pe,Se);_e.push(je.length===1&&je[0].type==="BlockStatement"?[" ",Re]:c([u,Re]))}return _e}case"DebuggerStatement":return["debugger",Xe];case"ClassDeclaration":case"ClassExpression":return z(Be,Pe,Se);case"ClassMethod":case"ClassPrivateMethod":case"MethodDefinition":return U(Be,Pe,Se);case"ClassProperty":case"PropertyDefinition":case"ClassPrivateProperty":case"ClassAccessorProperty":return le(Be,Pe,Se);case"TemplateElement":return v(xe.value.raw);case"TemplateLiteral":return De(Be,Se,Pe);case"TaggedTemplateExpression":return[Se("tag"),Se("typeParameters"),Se("quasi")];case"PrivateIdentifier":return["#",Se("name")];case"PrivateName":return["#",Se("id")];case"InterpreterDirective":return _e.push("#!",xe.value,u),k(xe,Pe)&&_e.push(u),_e;case"TopicReference":return"%";case"ArgumentPlaceholder":return"?";case"ModuleExpression":{_e.push("module {");let je=Se("body");return je&&_e.push(c([u,je]),u),_e.push("}"),_e}default:throw new Error("unknown type: "+JSON.stringify(xe.type))}}function Ee(Be,Pe){let Se=C(Be),Qe=Se.slice(1,-1);if(Qe.includes('"')||Qe.includes("'"))return Se;let xe=Pe.singleQuote?"'":'"';return xe+Qe+xe}function We(Be){return Be.type&&!N(Be)&&!I(Be)&&Be.type!=="EmptyStatement"&&Be.type!=="TemplateElement"&&Be.type!=="Import"&&Be.type!=="TSEmptyBodyFunctionExpression"}n.exports={preprocess:w,print:J,embed:m,insertPragma:p,massageAstNode:d,hasPrettierIgnore(Be){return D(Be)||j(Be)},willPrintOwnComments:f.willPrintOwnComments,canAttachComment:We,printComment:Fe,isBlockComment:N,handleComments:{avoidAstMutation:!0,ownLine:f.handleOwnLineComment,endOfLine:f.handleEndOfLineComment,remaining:f.handleRemainingComment},getCommentChildNodes:f.getCommentChildNodes}}}),Zm=Z({"src/language-js/printer-estree-json.js"(e,n){"use strict";re();var{builders:{hardline:t,indent:s,join:a}}=Oe(),r=so();function u(c,v,m){let d=c.getValue();switch(d.type){case"JsonRoot":return[m("node"),t];case"ArrayExpression":{if(d.elements.length===0)return"[]";let p=c.map(()=>c.getValue()===null?"null":m(),"elements");return["[",s([t,a([",",t],p)]),t,"]"]}case"ObjectExpression":return d.properties.length===0?"{}":["{",s([t,a([",",t],c.map(m,"properties"))]),t,"}"];case"ObjectProperty":return[m("key"),": ",m("value")];case"UnaryExpression":return[d.operator==="+"?"":d.operator,m("argument")];case"NullLiteral":return"null";case"BooleanLiteral":return d.value?"true":"false";case"StringLiteral":case"NumericLiteral":return JSON.stringify(d.value);case"Identifier":{let p=c.getParentNode();return p&&p.type==="ObjectProperty"&&p.key===d?JSON.stringify(d.name):d.name}case"TemplateLiteral":return m(["quasis",0]);case"TemplateElement":return JSON.stringify(d.value.cooked);default:throw new Error("unknown type: "+JSON.stringify(d.type))}}var i=new Set(["start","end","extra","loc","comments","leadingComments","trailingComments","innerComments","errors","range","tokens"]);function o(c,v){let{type:m}=c;if(m==="ObjectProperty"&&c.key.type==="Identifier"){v.key={type:"StringLiteral",value:c.key.name};return}if(m==="UnaryExpression"&&c.operator==="+")return v.argument;if(m==="ArrayExpression"){for(let[d,p]of c.elements.entries())p===null&&v.elements.splice(d,0,{type:"NullLiteral"});return}if(m==="TemplateLiteral")return{type:"StringLiteral",value:c.quasis[0].value.cooked}}o.ignoredProperties=i,n.exports={preprocess:r,print:u,massageAstNode:o}}}),Ot=Z({"src/common/common-options.js"(e,n){"use strict";re();var t="Common";n.exports={bracketSpacing:{since:"0.0.0",category:t,type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},singleQuote:{since:"0.0.0",category:t,type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{since:"1.8.2",category:t,type:"choice",default:[{since:"1.8.2",value:!0},{since:"1.9.0",value:"preserve"}],description:"How to wrap prose.",choices:[{since:"1.9.0",value:"always",description:"Wrap prose if it exceeds the print width."},{since:"1.9.0",value:"never",description:"Do not wrap prose."},{since:"1.9.0",value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{since:"2.4.0",category:t,type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{since:"2.6.0",category:t,type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}}}}),ed=Z({"src/language-js/options.js"(e,n){"use strict";re();var t=Ot(),s="JavaScript";n.exports={arrowParens:{since:"1.9.0",category:s,type:"choice",default:[{since:"1.9.0",value:"avoid"},{since:"2.0.0",value:"always"}],description:"Include parentheses around a sole arrow function parameter.",choices:[{value:"always",description:"Always include parens. Example: `(x) => x`"},{value:"avoid",description:"Omit parens when possible. Example: `x => x`"}]},bracketSameLine:t.bracketSameLine,bracketSpacing:t.bracketSpacing,jsxBracketSameLine:{since:"0.17.0",category:s,type:"boolean",description:"Put > on the last line instead of at a new line.",deprecated:"2.4.0"},semi:{since:"1.0.0",category:s,type:"boolean",default:!0,description:"Print semicolons.",oppositeDescription:"Do not print semicolons, except at the beginning of lines which may need them."},singleQuote:t.singleQuote,jsxSingleQuote:{since:"1.15.0",category:s,type:"boolean",default:!1,description:"Use single quotes in JSX."},quoteProps:{since:"1.17.0",category:s,type:"choice",default:"as-needed",description:"Change when properties in objects are quoted.",choices:[{value:"as-needed",description:"Only add quotes around object properties where required."},{value:"consistent",description:"If at least one property in an object requires quotes, quote all properties."},{value:"preserve",description:"Respect the input use of quotes in object properties."}]},trailingComma:{since:"0.0.0",category:s,type:"choice",default:[{since:"0.0.0",value:!1},{since:"0.19.0",value:"none"},{since:"2.0.0",value:"es5"}],description:"Print trailing commas wherever possible when multi-line.",choices:[{value:"es5",description:"Trailing commas where valid in ES5 (objects, arrays, etc.)"},{value:"none",description:"No trailing commas."},{value:"all",description:"Trailing commas wherever possible (including function arguments)."}]},singleAttributePerLine:t.singleAttributePerLine}}}),td=Z({"src/language-js/parse/parsers.js"(){re()}}),Sn=Z({"node_modules/linguist-languages/data/JavaScript.json"(e,n){n.exports={name:"JavaScript",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:["js","node"],extensions:[".js","._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".jsx",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell"],languageId:183}}}),rd=Z({"node_modules/linguist-languages/data/TypeScript.json"(e,n){n.exports={name:"TypeScript",type:"programming",color:"#3178c6",aliases:["ts"],interpreters:["deno","ts-node"],extensions:[".ts",".cts",".mts"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",languageId:378}}}),nd=Z({"node_modules/linguist-languages/data/TSX.json"(e,n){n.exports={name:"TSX",type:"programming",color:"#3178c6",group:"TypeScript",extensions:[".tsx"],tmScope:"source.tsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",languageId:94901924}}}),ma=Z({"node_modules/linguist-languages/data/JSON.json"(e,n){n.exports={name:"JSON",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".json",".4DForm",".4DProject",".avsc",".geojson",".gltf",".har",".ice",".JSON-tmLanguage",".jsonl",".mcmeta",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","Pipfile.lock","composer.lock","mcmod.info"],languageId:174}}}),ud=Z({"node_modules/linguist-languages/data/JSON with Comments.json"(e,n){n.exports={name:"JSON with Comments",type:"data",color:"#292929",group:"JSON",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["jsonc"],extensions:[".jsonc",".code-snippets",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[".babelrc",".devcontainer.json",".eslintrc.json",".jscsrc",".jshintrc",".jslintrc","api-extractor.json","devcontainer.json","jsconfig.json","language-configuration.json","tsconfig.json","tslint.json"],languageId:423}}}),sd=Z({"node_modules/linguist-languages/data/JSON5.json"(e,n){n.exports={name:"JSON5",type:"data",color:"#267CB9",extensions:[".json5"],tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"application/json",languageId:175}}}),id=Z({"src/language-js/index.js"(e,n){"use strict";re();var t=Bt(),s=Qm(),a=Zm(),r=ed(),u=td(),i=[t(Sn(),c=>({since:"0.0.0",parsers:["babel","acorn","espree","meriyah","babel-flow","babel-ts","flow","typescript"],vscodeLanguageIds:["javascript","mongo"],interpreters:[...c.interpreters,"zx"],extensions:[...c.extensions.filter(v=>v!==".jsx"),".wxs"]})),t(Sn(),()=>({name:"Flow",since:"0.0.0",parsers:["flow","babel-flow"],vscodeLanguageIds:["javascript"],aliases:[],filenames:[],extensions:[".js.flow"]})),t(Sn(),()=>({name:"JSX",since:"0.0.0",parsers:["babel","babel-flow","babel-ts","flow","typescript","espree","meriyah"],vscodeLanguageIds:["javascriptreact"],aliases:void 0,filenames:void 0,extensions:[".jsx"],group:"JavaScript",interpreters:void 0,tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",color:void 0})),t(rd(),()=>({since:"1.4.0",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescript"]})),t(nd(),()=>({since:"1.4.0",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescriptreact"]})),t(ma(),()=>({name:"JSON.stringify",since:"1.13.0",parsers:["json-stringify"],vscodeLanguageIds:["json"],extensions:[".importmap"],filenames:["package.json","package-lock.json","composer.json"]})),t(ma(),c=>({since:"1.5.0",parsers:["json"],vscodeLanguageIds:["json"],extensions:c.extensions.filter(v=>v!==".jsonl")})),t(ud(),c=>({since:"1.5.0",parsers:["json"],vscodeLanguageIds:["jsonc"],filenames:[...c.filenames,".eslintrc",".swcrc"]})),t(sd(),()=>({since:"1.13.0",parsers:["json5"],vscodeLanguageIds:["json5"]}))],o={estree:s,"estree-json":a};n.exports={languages:i,options:r,printers:o,parsers:u}}}),ad=Z({"src/language-css/clean.js"(e,n){"use strict";re();var{isFrontMatterNode:t}=Ue(),s=it(),a=new Set(["raw","raws","sourceIndex","source","before","after","trailingComma"]);function r(i,o,c){if(t(i)&&i.lang==="yaml"&&delete o.value,i.type==="css-comment"&&c.type==="css-root"&&c.nodes.length>0&&((c.nodes[0]===i||t(c.nodes[0])&&c.nodes[1]===i)&&(delete o.text,/^\*\s*@(?:format|prettier)\s*$/.test(i.text))||c.type==="css-root"&&s(c.nodes)===i))return null;if(i.type==="value-root"&&delete o.text,(i.type==="media-query"||i.type==="media-query-list"||i.type==="media-feature-expression")&&delete o.value,i.type==="css-rule"&&delete o.params,i.type==="selector-combinator"&&(o.value=o.value.replace(/\s+/g," ")),i.type==="media-feature"&&(o.value=o.value.replace(/ /g,"")),(i.type==="value-word"&&(i.isColor&&i.isHex||["initial","inherit","unset","revert"].includes(o.value.replace().toLowerCase()))||i.type==="media-feature"||i.type==="selector-root-invalid"||i.type==="selector-pseudo")&&(o.value=o.value.toLowerCase()),i.type==="css-decl"&&(o.prop=o.prop.toLowerCase()),(i.type==="css-atrule"||i.type==="css-import")&&(o.name=o.name.toLowerCase()),i.type==="value-number"&&(o.unit=o.unit.toLowerCase()),(i.type==="media-feature"||i.type==="media-keyword"||i.type==="media-type"||i.type==="media-unknown"||i.type==="media-url"||i.type==="media-value"||i.type==="selector-attribute"||i.type==="selector-string"||i.type==="selector-class"||i.type==="selector-combinator"||i.type==="value-string")&&o.value&&(o.value=u(o.value)),i.type==="selector-attribute"&&(o.attribute=o.attribute.trim(),o.namespace&&typeof o.namespace=="string"&&(o.namespace=o.namespace.trim(),o.namespace.length===0&&(o.namespace=!0)),o.value&&(o.value=o.value.trim().replace(/^["']|["']$/g,""),delete o.quoted)),(i.type==="media-value"||i.type==="media-type"||i.type==="value-number"||i.type==="selector-root-invalid"||i.type==="selector-class"||i.type==="selector-combinator"||i.type==="selector-tag")&&o.value&&(o.value=o.value.replace(/([\d+.Ee-]+)([A-Za-z]*)/g,(v,m,d)=>{let p=Number(m);return Number.isNaN(p)?v:p+d.toLowerCase()})),i.type==="selector-tag"){let v=i.value.toLowerCase();["from","to"].includes(v)&&(o.value=v)}if(i.type==="css-atrule"&&i.name.toLowerCase()==="supports"&&delete o.value,i.type==="selector-unknown"&&delete o.value,i.type==="value-comma_group"){let v=i.groups.findIndex(m=>m.type==="value-number"&&m.unit==="...");v!==-1&&(o.groups[v].unit="",o.groups.splice(v+1,0,{type:"value-word",value:"...",isColor:!1,isHex:!1}))}}r.ignoredProperties=a;function u(i){return i.replace(/'/g,'"').replace(/\\([^\dA-Fa-f])/g,"$1")}n.exports=r}}),Xn=Z({"src/utils/front-matter/print.js"(e,n){"use strict";re();var{builders:{hardline:t,markAsRoot:s}}=Oe();function a(r,u){if(r.lang==="yaml"){let i=r.value.trim(),o=i?u(i,{parser:"yaml"},{stripTrailingHardline:!0}):"";return s([r.startDelimiter,t,o,o?t:"",r.endDelimiter])}}n.exports=a}}),od=Z({"src/language-css/embed.js"(e,n){"use strict";re();var{builders:{hardline:t}}=Oe(),s=Xn();function a(r,u,i){let o=r.getValue();if(o.type==="front-matter"){let c=s(o,i);return c?[c,t]:""}}n.exports=a}}),mo=Z({"src/utils/front-matter/parse.js"(e,n){"use strict";re();var t=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");function s(a){let r=a.match(t);if(!r)return{content:a};let{startDelimiter:u,language:i,value:o="",endDelimiter:c}=r.groups,v=i.trim()||"yaml";if(u==="+++"&&(v="toml"),v!=="yaml"&&u!==c)return{content:a};let[m]=r;return{frontMatter:{type:"front-matter",lang:v,value:o,startDelimiter:u,endDelimiter:c,raw:m.replace(/\n$/,"")},content:m.replace(/[^\n]/g," ")+a.slice(m.length)}}n.exports=s}}),ld=Z({"src/language-css/pragma.js"(e,n){"use strict";re();var t=no(),s=mo();function a(u){return t.hasPragma(s(u).content)}function r(u){let{frontMatter:i,content:o}=s(u);return(i?i.raw+` + +`:"")+t.insertPragma(o)}n.exports={hasPragma:a,insertPragma:r}}}),cd=Z({"src/language-css/utils/index.js"(e,n){"use strict";re();var t=new Set(["red","green","blue","alpha","a","rgb","hue","h","saturation","s","lightness","l","whiteness","w","blackness","b","tint","shade","blend","blenda","contrast","hsl","hsla","hwb","hwba"]);function s(G,z){let U=Array.isArray(z)?z:[z],le=-1,ge;for(;ge=G.getParentNode(++le);)if(U.includes(ge.type))return le;return-1}function a(G,z){let U=s(G,z);return U===-1?null:G.getParentNode(U)}function r(G){var z;let U=a(G,"css-decl");return U==null||(z=U.prop)===null||z===void 0?void 0:z.toLowerCase()}var u=new Set(["initial","inherit","unset","revert"]);function i(G){return u.has(G.toLowerCase())}function o(G,z){let U=a(G,"css-atrule");return(U==null?void 0:U.name)&&U.name.toLowerCase().endsWith("keyframes")&&["from","to"].includes(z.toLowerCase())}function c(G){return G.includes("$")||G.includes("@")||G.includes("#")||G.startsWith("%")||G.startsWith("--")||G.startsWith(":--")||G.includes("(")&&G.includes(")")?G:G.toLowerCase()}function v(G,z){var U;let le=a(G,"value-func");return(le==null||(U=le.value)===null||U===void 0?void 0:U.toLowerCase())===z}function m(G){var z;let U=a(G,"css-rule"),le=U==null||(z=U.raws)===null||z===void 0?void 0:z.selector;return le&&(le.startsWith(":import")||le.startsWith(":export"))}function d(G,z){let U=Array.isArray(z)?z:[z],le=a(G,"css-atrule");return le&&U.includes(le.name.toLowerCase())}function p(G){let z=G.getValue(),U=a(G,"css-atrule");return(U==null?void 0:U.name)==="import"&&z.groups[0].value==="url"&&z.groups.length===2}function f(G){return G.type==="value-func"&&G.value.toLowerCase()==="url"}function h(G,z){var U;let le=(U=G.getParentNode())===null||U===void 0?void 0:U.nodes;return le&&le.indexOf(z)===le.length-1}function w(G){let{selector:z}=G;return z?typeof z=="string"&&/^@.+:.*$/.test(z)||z.value&&/^@.+:.*$/.test(z.value):!1}function T(G){return G.type==="value-word"&&["from","through","end"].includes(G.value)}function A(G){return G.type==="value-word"&&["and","or","not"].includes(G.value)}function S(G){return G.type==="value-word"&&G.value==="in"}function B(G){return G.type==="value-operator"&&G.value==="*"}function I(G){return G.type==="value-operator"&&G.value==="/"}function k(G){return G.type==="value-operator"&&G.value==="+"}function P(G){return G.type==="value-operator"&&G.value==="-"}function C(G){return G.type==="value-operator"&&G.value==="%"}function D(G){return B(G)||I(G)||k(G)||P(G)||C(G)}function g(G){return G.type==="value-word"&&["==","!="].includes(G.value)}function F(G){return G.type==="value-word"&&["<",">","<=",">="].includes(G.value)}function l(G){return G.type==="css-atrule"&&["if","else","for","each","while"].includes(G.name)}function E(G){var z;return((z=G.raws)===null||z===void 0?void 0:z.params)&&/^\(\s*\)$/.test(G.raws.params)}function y(G){return G.name.startsWith("prettier-placeholder")}function N(G){return G.prop.startsWith("@prettier-placeholder")}function x(G,z){return G.value==="$$"&&G.type==="value-func"&&(z==null?void 0:z.type)==="value-word"&&!z.raws.before}function b(G){var z,U;return((z=G.value)===null||z===void 0?void 0:z.type)==="value-root"&&((U=G.value.group)===null||U===void 0?void 0:U.type)==="value-value"&&G.prop.toLowerCase()==="composes"}function L(G){var z,U,le;return((z=G.value)===null||z===void 0||(U=z.group)===null||U===void 0||(le=U.group)===null||le===void 0?void 0:le.type)==="value-paren_group"&&G.value.group.group.open!==null&&G.value.group.group.close!==null}function M(G){var z;return((z=G.raws)===null||z===void 0?void 0:z.before)===""}function j(G){var z,U;return G.type==="value-comma_group"&&((z=G.groups)===null||z===void 0||(U=z[1])===null||U===void 0?void 0:U.type)==="value-colon"}function $(G){var z;return G.type==="value-paren_group"&&((z=G.groups)===null||z===void 0?void 0:z[0])&&j(G.groups[0])}function V(G){var z;let U=G.getValue();if(U.groups.length===0)return!1;let le=G.getParentNode(1);if(!$(U)&&!(le&&$(le)))return!1;let ge=a(G,"css-decl");return!!(ge!=null&&(z=ge.prop)!==null&&z!==void 0&&z.startsWith("$")||$(le)||le.type==="value-func")}function q(G){return G.type==="value-comment"&&G.inline}function Y(G){return G.type==="value-word"&&G.value==="#"}function H(G){return G.type==="value-word"&&G.value==="{"}function R(G){return G.type==="value-word"&&G.value==="}"}function Q(G){return["value-word","value-atword"].includes(G.type)}function ee(G){return(G==null?void 0:G.type)==="value-colon"}function te(G,z){if(!j(z))return!1;let{groups:U}=z,le=U.indexOf(G);return le===-1?!1:ee(U[le+1])}function oe(G){return G.value&&["not","and","or"].includes(G.value.toLowerCase())}function W(G){return G.type!=="value-func"?!1:t.has(G.value.toLowerCase())}function X(G){return/\/\//.test(G.split(/[\n\r]/).pop())}function ue(G){return(G==null?void 0:G.type)==="value-atword"&&G.value.startsWith("prettier-placeholder-")}function De(G,z){var U,le;if(((U=G.open)===null||U===void 0?void 0:U.value)!=="("||((le=G.close)===null||le===void 0?void 0:le.value)!==")"||G.groups.some(ge=>ge.type!=="value-comma_group"))return!1;if(z.type==="value-comma_group"){let ge=z.groups.indexOf(G)-1,Ae=z.groups[ge];if((Ae==null?void 0:Ae.type)==="value-word"&&Ae.value==="with")return!0}return!1}function ie(G){var z,U;return G.type==="value-paren_group"&&((z=G.open)===null||z===void 0?void 0:z.value)==="("&&((U=G.close)===null||U===void 0?void 0:U.value)===")"}n.exports={getAncestorCounter:s,getAncestorNode:a,getPropOfDeclNode:r,maybeToLowerCase:c,insideValueFunctionNode:v,insideICSSRuleNode:m,insideAtRuleNode:d,insideURLFunctionInImportAtRuleNode:p,isKeyframeAtRuleKeywords:o,isWideKeywords:i,isLastNode:h,isSCSSControlDirectiveNode:l,isDetachedRulesetDeclarationNode:w,isRelationalOperatorNode:F,isEqualityOperatorNode:g,isMultiplicationNode:B,isDivisionNode:I,isAdditionNode:k,isSubtractionNode:P,isModuloNode:C,isMathOperatorNode:D,isEachKeywordNode:S,isForKeywordNode:T,isURLFunctionNode:f,isIfElseKeywordNode:A,hasComposesNode:b,hasParensAroundNode:L,hasEmptyRawBefore:M,isDetachedRulesetCallNode:E,isTemplatePlaceholderNode:y,isTemplatePropNode:N,isPostcssSimpleVarNode:x,isKeyValuePairNode:j,isKeyValuePairInParenGroupNode:$,isKeyInValuePairNode:te,isSCSSMapItemNode:V,isInlineValueCommentNode:q,isHashNode:Y,isLeftCurlyBraceNode:H,isRightCurlyBraceNode:R,isWordNode:Q,isColonNode:ee,isMediaAndSupportsKeywords:oe,isColorAdjusterFuncNode:W,lastLineHasInlineComment:X,isAtWordPlaceholderNode:ue,isConfigurationNode:De,isParenGroupNode:ie}}}),pd=Z({"src/utils/line-column-to-index.js"(e,n){"use strict";re(),n.exports=function(t,s){let a=0;for(let r=0;r0?m:""]}case"css-comment":{let He=se.inline||se.raws.inline,Me=Le.originalText.slice(Ie(se),Fe(se));return He?Me.trimEnd():Me}case"css-rule":return[qe("selector"),se.important?" !important":"",se.nodes?[se.selector&&se.selector.type==="selector-unknown"&&K(se.selector.value)?v:" ","{",se.nodes.length>0?h([m,We(be,Le,qe)]):"",m,"}",M(se)?";":""]:";"];case"css-decl":{let He=be.getParentNode(),{between:Me}=se.raws,ze=Me.trim(),nt=ze===":",tt=W(se)?S(qe("value")):qe("value");return!nt&&K(ze)&&(tt=h([m,w(tt)])),[se.raws.before.replace(/[\s;]/g,""),l(be)?se.prop:g(se.prop),ze.startsWith("//")?" ":"",ze,se.extend?"":" ",me(Le)&&se.extend&&se.selector?["extend(",qe("selector"),")"]:"",tt,se.raws.important?se.raws.important.replace(/\s*!\s*important/i," !important"):se.important?" !important":"",se.raws.scssDefault?se.raws.scssDefault.replace(/\s*!default/i," !default"):se.scssDefault?" !default":"",se.raws.scssGlobal?se.raws.scssGlobal.replace(/\s*!global/i," !global"):se.scssGlobal?" !global":"",se.nodes?[" {",h([d,We(be,Le,qe)]),d,"}"]:U(se)&&!He.raws.semicolon&&Le.originalText[Fe(se)-1]!==";"?"":Le.__isHTMLStyleAttribute&&b(be,se)?T(";"):";"]}case"css-atrule":{let He=be.getParentNode(),Me=z(se)&&!He.raws.semicolon&&Le.originalText[Fe(se)-1]!==";";if(me(Le)){if(se.mixin)return[qe("selector"),se.important?" !important":"",Me?"":";"];if(se.function)return[se.name,qe("params"),Me?"":";"];if(se.variable)return["@",se.name,": ",se.value?qe("value"):"",se.raws.between.trim()?se.raws.between.trim()+" ":"",se.nodes?["{",h([se.nodes.length>0?d:"",We(be,Le,qe)]),d,"}"]:"",Me?"":";"]}return["@",G(se)||se.name.endsWith(":")?se.name:g(se.name),se.params?[G(se)?"":z(se)?se.raws.afterName===""?"":se.name.endsWith(":")?" ":/^\s*\n\s*\n/.test(se.raws.afterName)?[m,m]:/^\s*\n/.test(se.raws.afterName)?m:" ":" ",qe("params")]:"",se.selector?h([" ",qe("selector")]):"",se.value?p([" ",qe("value"),L(se)?X(se)?" ":v:""]):se.name==="else"?" ":"",se.nodes?[L(se)?"":se.selector&&!se.selector.nodes&&typeof se.selector.value=="string"&&K(se.selector.value)||!se.selector&&typeof se.params=="string"&&K(se.params)?v:" ","{",h([se.nodes.length>0?d:"",We(be,Le,qe)]),d,"}"]:Me?"":";"]}case"media-query-list":{let He=[];return be.each(Me=>{let ze=Me.getValue();ze.type==="media-query"&&ze.value===""||He.push(qe())},"nodes"),p(h(c(v,He)))}case"media-query":return[c(" ",be.map(qe,"nodes")),b(be,se)?"":","];case"media-type":return je(Xe(se.value,Le));case"media-feature-expression":return se.nodes?["(",...be.map(qe,"nodes"),")"]:se.value;case"media-feature":return g(Xe(se.value.replace(/ +/g," "),Le));case"media-colon":return[se.value," "];case"media-value":return je(Xe(se.value,Le));case"media-keyword":return Xe(se.value,Le);case"media-url":return Xe(se.value.replace(/^url\(\s+/gi,"url(").replace(/\s+\)$/g,")"),Le);case"media-unknown":return se.value;case"selector-root":return p([E(be,"custom-selector")?[C(be,"css-atrule").customSelector,v]:"",c([",",E(be,["extend","custom-selector","nest"])?v:m],be.map(qe,"nodes"))]);case"selector-selector":return p(h(be.map(qe,"nodes")));case"selector-comment":return se.value;case"selector-string":return Xe(se.value,Le);case"selector-tag":{let He=be.getParentNode(),Me=He&&He.nodes.indexOf(se),ze=Me&&He.nodes[Me-1];return[se.namespace?[se.namespace===!0?"":se.namespace.trim(),"|"]:"",ze.type==="selector-nesting"?se.value:je(N(be,se.value)?se.value.toLowerCase():se.value)]}case"selector-id":return["#",se.value];case"selector-class":return[".",je(Xe(se.value,Le))];case"selector-attribute":return["[",se.namespace?[se.namespace===!0?"":se.namespace.trim(),"|"]:"",se.attribute.trim(),se.operator?se.operator:"",se.value?_e(Xe(se.value.trim(),Le),Le):"",se.insensitive?" i":"","]"];case"selector-combinator":{if(se.value==="+"||se.value===">"||se.value==="~"||se.value===">>>"){let ze=be.getParentNode();return[ze.type==="selector-selector"&&ze.nodes[0]===se?"":v,se.value,b(be,se)?"":" "]}let He=se.value.trim().startsWith("(")?v:"",Me=je(Xe(se.value.trim(),Le))||v;return[He,Me]}case"selector-universal":return[se.namespace?[se.namespace===!0?"":se.namespace.trim(),"|"]:"",se.value];case"selector-pseudo":return[g(se.value),o(se.nodes)?["(",c(", ",be.map(qe,"nodes")),")"]:""];case"selector-nesting":return se.value;case"selector-unknown":{let He=C(be,"css-rule");if(He&&He.isSCSSNesterProperty)return je(Xe(g(se.value),Le));let Me=be.getParentNode();if(Me.raws&&Me.raws.selector){let nt=Ie(Me),tt=nt+Me.raws.selector.length;return Le.originalText.slice(nt,tt).trim()}let ze=be.getParentNode(1);if(Me.type==="value-paren_group"&&ze&&ze.type==="value-func"&&ze.value==="selector"){let nt=Fe(Me.open)+1,tt=Ie(Me.close),pt=Le.originalText.slice(nt,tt).trim();return K(pt)?[A,pt]:pt}return se.value}case"value-value":case"value-root":return qe("group");case"value-comment":return Le.originalText.slice(Ie(se),Fe(se));case"value-comma_group":{let He=be.getParentNode(),Me=be.getParentNode(1),ze=D(be),nt=ze&&He.type==="value-value"&&(ze==="grid"||ze.startsWith("grid-template")),tt=C(be,"css-atrule"),pt=tt&&L(tt),O=se.groups.some(ut=>Ae(ut)),fe=be.map(qe,"groups"),Te=[],$e=F(be,"url"),Je=!1,Ze=!1;for(let ut=0;ut0&&se.groups[0].type==="value-comma_group"&&se.groups[0].groups.length>0&&se.groups[0].groups[0].type==="value-word"&&se.groups[0].groups[0].value.startsWith("data:")))return[se.open?qe("open"):"",c(",",be.map(qe,"groups")),se.close?qe("close"):""];if(!se.open){let $e=be.map(qe,"groups"),Je=[];for(let Ze=0;Ze<$e.length;Ze++)Ze!==0&&Je.push([",",v]),Je.push($e[Ze]);return p(h(f(Je)))}let Me=ge(be),ze=t(se.groups),nt=ze&&ze.type==="value-comment",tt=ie(se,He),pt=ye(se,He),O=pt||Me&&!tt,fe=pt||tt,Te=p([se.open?qe("open"):"",h([d,c([v],be.map(($e,Je)=>{let Ze=$e.getValue(),ut=Je===se.groups.length-1,rt=[qe(),ut?"":","];if(De(Ze)&&Ze.type==="value-comma_group"&&Ze.groups&&Ze.groups[0].type!=="value-paren_group"&&Ze.groups[2]&&Ze.groups[2].type==="value-paren_group"){let Ve=B(rt[0].contents.contents);return Ve[1]=p(Ve[1]),p(w(rt))}if(!ut&&Ze.type==="value-comma_group"&&o(Ze.groups)){let Ve=t(Ze.groups);Ve.source&&i(Le.originalText,Ve,Fe)&&rt.push(m)}return rt},"groups"))]),T(!nt&&_(Le.parser,Le.originalText)&&Me&&ne(Le)?",":""),d,se.close?qe("close"):""],{shouldBreak:O});return fe?w(Te):Te}case"value-func":return[se.value,E(be,"supports")&&ae(se)?" ":"",qe("group")];case"value-paren":return se.value;case"value-number":return[Re(se.value),J(se.unit)];case"value-operator":return se.value;case"value-word":return se.isColor&&se.isHex||x(se.value)?se.value.toLowerCase():se.value;case"value-colon":{let He=be.getParentNode(),Me=He&&He.groups.indexOf(se),ze=Me&&He.groups[Me-1];return[se.value,ze&&typeof ze.value=="string"&&t(ze.value)==="\\"||F(be,"url")?"":v]}case"value-comma":return[se.value," "];case"value-string":return a(se.raws.quote+se.value+se.raws.quote,Le);case"value-atword":return["@",se.value];case"value-unicode-range":return se.value;case"value-unknown":return se.value;default:throw new Error("Unknown postcss type ".concat(JSON.stringify(se.type)))}}function We(be,Le,qe){let se=[];return be.each((He,Me,ze)=>{let nt=ze[Me-1];if(nt&&nt.type==="css-comment"&&nt.text.trim()==="prettier-ignore"){let tt=He.getValue();se.push(Le.originalText.slice(Ie(tt),Fe(tt)))}else se.push(qe());Me!==ze.length-1&&(ze[Me+1].type==="css-comment"&&!r(Le.originalText,Ie(ze[Me+1]),{backwards:!0})&&!u(ze[Me])||ze[Me+1].type==="css-atrule"&&ze[Me+1].name==="else"&&ze[Me].type!=="css-comment"?se.push(" "):(se.push(Le.__isHTMLStyleAttribute?v:m),i(Le.originalText,He.getValue(),Fe)&&!u(ze[Me])&&se.push(m)))},"nodes"),se}var Be=/(["'])(?:(?!\1)[^\\]|\\.)*\1/gs,Pe=/(?:\d*\.\d+|\d+\.?)(?:[Ee][+-]?\d+)?/g,Se=/[A-Za-z]+/g,Qe=/[$@]?[A-Z_a-z\u0080-\uFFFF][\w\u0080-\uFFFF-]*/g,xe=new RegExp(Be.source+"|(".concat(Qe.source,")?(").concat(Pe.source,")(").concat(Se.source,")?"),"g");function Xe(be,Le){return be.replace(Be,qe=>a(qe,Le))}function _e(be,Le){let qe=Le.singleQuote?"'":'"';return be.includes('"')||be.includes("'")?be:qe+be+qe}function je(be){return be.replace(xe,(Le,qe,se,He,Me)=>!se&&He?Re(He)+g(Me||""):Le)}function Re(be){return s(be).replace(/\.0(?=$|e)/,"")}n.exports={print:Ee,embed:k,insertPragma:P,massageAstNode:I}}}),hd=Z({"src/language-css/options.js"(e,n){"use strict";re();var t=Ot();n.exports={singleQuote:t.singleQuote}}}),vd=Z({"src/language-css/parsers.js"(){re()}}),Cd=Z({"node_modules/linguist-languages/data/CSS.json"(e,n){n.exports={name:"CSS",type:"markup",tmScope:"source.css",aceMode:"css",codemirrorMode:"css",codemirrorMimeType:"text/css",color:"#563d7c",extensions:[".css"],languageId:50}}}),Ed=Z({"node_modules/linguist-languages/data/PostCSS.json"(e,n){n.exports={name:"PostCSS",type:"markup",color:"#dc3a0c",tmScope:"source.postcss",group:"CSS",extensions:[".pcss",".postcss"],aceMode:"text",languageId:262764437}}}),Fd=Z({"node_modules/linguist-languages/data/Less.json"(e,n){n.exports={name:"Less",type:"markup",color:"#1d365d",aliases:["less-css"],extensions:[".less"],tmScope:"source.css.less",aceMode:"less",codemirrorMode:"css",codemirrorMimeType:"text/css",languageId:198}}}),Ad=Z({"node_modules/linguist-languages/data/SCSS.json"(e,n){n.exports={name:"SCSS",type:"markup",color:"#c6538c",tmScope:"source.css.scss",aceMode:"scss",codemirrorMode:"css",codemirrorMimeType:"text/x-scss",extensions:[".scss"],languageId:329}}}),Sd=Z({"src/language-css/index.js"(e,n){"use strict";re();var t=Bt(),s=yd(),a=hd(),r=vd(),u=[t(Cd(),o=>({since:"1.4.0",parsers:["css"],vscodeLanguageIds:["css"],extensions:[...o.extensions,".wxss"]})),t(Ed(),()=>({since:"1.4.0",parsers:["css"],vscodeLanguageIds:["postcss"]})),t(Fd(),()=>({since:"1.4.0",parsers:["less"],vscodeLanguageIds:["less"]})),t(Ad(),()=>({since:"1.4.0",parsers:["scss"],vscodeLanguageIds:["scss"]}))],i={postcss:s};n.exports={languages:u,options:a,printers:i,parsers:r}}}),xd=Z({"src/language-handlebars/loc.js"(e,n){"use strict";re();function t(a){return a.loc.start.offset}function s(a){return a.loc.end.offset}n.exports={locStart:t,locEnd:s}}}),bd=Z({"src/language-handlebars/clean.js"(e,n){"use strict";re();function t(s,a){if(s.type==="TextNode"){let r=s.chars.trim();if(!r)return null;a.chars=r.replace(/[\t\n\f\r ]+/g," ")}s.type==="AttrNode"&&s.name.toLowerCase()==="class"&&delete a.value}t.ignoredProperties=new Set(["loc","selfClosing"]),n.exports=t}}),Td=Z({"vendors/html-void-elements.json"(e,n){n.exports={htmlVoidElements:["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","isindex","keygen","link","menuitem","meta","nextid","param","source","track","wbr"]}}}),Bd=Z({"src/language-handlebars/utils.js"(e,n){"use strict";re();var{htmlVoidElements:t}=Td(),s=it();function a(S){let B=S.getValue(),I=S.getParentNode(0);return!!(m(S,["ElementNode"])&&s(I.children)===B||m(S,["Block"])&&s(I.body)===B)}function r(S){return S.toUpperCase()===S}function u(S){return v(S,["ElementNode"])&&typeof S.tag=="string"&&!S.tag.startsWith(":")&&(r(S.tag[0])||S.tag.includes("."))}var i=new Set(t);function o(S){return i.has(S.tag)||u(S)&&S.children.every(B=>c(B))}function c(S){return v(S,["TextNode"])&&!/\S/.test(S.chars)}function v(S,B){return S&&B.includes(S.type)}function m(S,B){let I=S.getParentNode(0);return v(I,B)}function d(S,B){let I=h(S);return v(I,B)}function p(S,B){let I=w(S);return v(I,B)}function f(S,B){var I,k,P,C;let D=S.getValue(),g=(I=S.getParentNode(0))!==null&&I!==void 0?I:{},F=(k=(P=(C=g.children)!==null&&C!==void 0?C:g.body)!==null&&P!==void 0?P:g.parts)!==null&&k!==void 0?k:[],l=F.indexOf(D);return l!==-1&&F[l+B]}function h(S){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return f(S,-B)}function w(S){return f(S,1)}function T(S){return v(S,["MustacheCommentStatement"])&&typeof S.value=="string"&&S.value.trim()==="prettier-ignore"}function A(S){let B=S.getValue(),I=h(S,2);return T(B)||T(I)}n.exports={getNextNode:w,getPreviousNode:h,hasPrettierIgnore:A,isLastNodeOfSiblings:a,isNextNodeOfSomeType:p,isNodeOfSomeType:v,isParentOfSomeType:m,isPreviousNodeOfSomeType:d,isVoid:o,isWhitespaceNode:c}}}),Nd=Z({"src/language-handlebars/printer-glimmer.js"(e,n){"use strict";re();var{builders:{dedent:t,fill:s,group:a,hardline:r,ifBreak:u,indent:i,join:o,line:c,softline:v},utils:{getDocParts:m,replaceTextEndOfLine:d}}=Oe(),{getPreferredQuote:p,isNonEmptyArray:f}=Ue(),{locStart:h,locEnd:w}=xd(),T=bd(),{getNextNode:A,getPreviousNode:S,hasPrettierIgnore:B,isLastNodeOfSiblings:I,isNextNodeOfSomeType:k,isNodeOfSomeType:P,isParentOfSomeType:C,isPreviousNodeOfSomeType:D,isVoid:g,isWhitespaceNode:F}=Bd(),l=2;function E(K,he,ye){let Ce=K.getValue();if(!Ce)return"";if(B(K))return he.originalText.slice(h(Ce),w(Ce));let Ie=he.singleQuote?"'":'"';switch(Ce.type){case"Block":case"Program":case"Template":return a(K.map(ye,"body"));case"ElementNode":{let Fe=a(N(K,ye)),me=he.htmlWhitespaceSensitivity==="ignore"&&k(K,["ElementNode"])?v:"";if(g(Ce))return[Fe,me];let _=[""];return Ce.children.length===0?[Fe,i(_),me]:he.htmlWhitespaceSensitivity==="ignore"?[Fe,i(x(K,he,ye)),r,i(_),me]:[Fe,i(a(x(K,he,ye))),i(_),me]}case"BlockStatement":{let Fe=K.getParentNode(1);return Fe&&Fe.inverse&&Fe.inverse.body.length===1&&Fe.inverse.body[0]===Ce&&Fe.inverse.body[0].path.parts[0]==="if"?[ee(K,ye),ue(K,ye,he),De(K,ye,he)]:[R(K,ye),a([ue(K,ye,he),De(K,ye,he),te(K,ye,he)])]}case"ElementModifierStatement":return a(["{{",pe(K,ye),"}}"]);case"MustacheStatement":return a([L(Ce),pe(K,ye),M(Ce)]);case"SubExpression":return a(["(",ce(K,ye),v,")"]);case"AttrNode":{let Fe=Ce.value.type==="TextNode";if(Fe&&Ce.value.chars===""&&h(Ce.value)===w(Ce.value))return Ce.name;let _=Fe?p(Ce.value.chars,Ie).quote:Ce.value.type==="ConcatStatement"?p(Ce.value.parts.filter(ne=>ne.type==="TextNode").map(ne=>ne.chars).join(""),Ie).quote:"",J=ye("value");return[Ce.name,"=",_,Ce.name==="class"&&_?a(i(J)):J,_]}case"ConcatStatement":return K.map(ye,"parts");case"Hash":return o(c,K.map(ye,"pairs"));case"HashPair":return[Ce.key,"=",ye("value")];case"TextNode":{let Fe=Ce.chars.replace(/{{/g,"\\{{"),me=z(K);if(me){if(me==="class"){let xe=Fe.trim().split(/\s+/).join(" "),Xe=!1,_e=!1;return C(K,["ConcatStatement"])&&(D(K,["MustacheStatement"])&&/^\s/.test(Fe)&&(Xe=!0),k(K,["MustacheStatement"])&&/\s$/.test(Fe)&&xe!==""&&(_e=!0)),[Xe?c:"",xe,_e?c:""]}return d(Fe)}let J=/^[\t\n\f\r ]*$/.test(Fe),ne=!S(K),Ee=!A(K);if(he.htmlWhitespaceSensitivity!=="ignore"){let xe=/^[\t\n\f\r ]*/,Xe=/[\t\n\f\r ]*$/,_e=Ee&&C(K,["Template"]),je=ne&&C(K,["Template"]);if(J){if(je||_e)return"";let se=[c],He=U(Fe);return He&&(se=Ae(He)),I(K)&&(se=se.map(Me=>t(Me))),se}let[Re]=Fe.match(xe),[be]=Fe.match(Xe),Le=[];if(Re){Le=[c];let se=U(Re);se&&(Le=Ae(se)),Fe=Fe.replace(xe,"")}let qe=[];if(be){if(!_e){qe=[c];let se=U(be);se&&(qe=Ae(se)),I(K)&&(qe=qe.map(He=>t(He)))}Fe=Fe.replace(Xe,"")}return[...Le,s(ie(Fe)),...qe]}let We=U(Fe),Be=le(Fe),Pe=ge(Fe);if((ne||Ee)&&J&&C(K,["Block","ElementNode","Template"]))return"";J&&We?(Be=Math.min(We,l),Pe=0):(k(K,["BlockStatement","ElementNode"])&&(Pe=Math.max(Pe,1)),D(K,["BlockStatement","ElementNode"])&&(Be=Math.max(Be,1)));let Se="",Qe="";return Pe===0&&k(K,["MustacheStatement"])&&(Qe=" "),Be===0&&D(K,["MustacheStatement"])&&(Se=" "),ne&&(Be=0,Se=""),Ee&&(Pe=0,Qe=""),Fe=Fe.replace(/^[\t\n\f\r ]+/g,Se).replace(/[\t\n\f\r ]+$/,Qe),[...Ae(Be),s(ie(Fe)),...Ae(Pe)]}case"MustacheCommentStatement":{let Fe=h(Ce),me=w(Ce),_=he.originalText.charAt(Fe+2)==="~",J=he.originalText.charAt(me-3)==="~",ne=Ce.value.includes("}}")?"--":"";return["{{",_?"~":"","!",ne,Ce.value,ne,J?"~":"","}}"]}case"PathExpression":return Ce.original;case"BooleanLiteral":return String(Ce.value);case"CommentStatement":return[""];case"StringLiteral":{if(ke(K)){let Fe=he.singleQuote?'"':"'";return Ne(Ce.value,Fe)}return Ne(Ce.value,Ie)}case"NumberLiteral":return String(Ce.value);case"UndefinedLiteral":return"undefined";case"NullLiteral":return"null";default:throw new Error("unknown glimmer type: "+JSON.stringify(Ce.type))}}function y(K,he){return h(K)-h(he)}function N(K,he){let ye=K.getValue(),Ce=["attributes","modifiers","comments"].filter(Fe=>f(ye[Fe])),Ie=Ce.flatMap(Fe=>ye[Fe]).sort(y);for(let Fe of Ce)K.each(me=>{let _=Ie.indexOf(me.getValue());Ie.splice(_,1,[c,he()])},Fe);return f(ye.blockParams)&&Ie.push(c,ve(ye)),["<",ye.tag,i(Ie),b(ye)]}function x(K,he,ye){let Ie=K.getValue().children.every(Fe=>F(Fe));return he.htmlWhitespaceSensitivity==="ignore"&&Ie?"":K.map((Fe,me)=>{let _=ye();return me===0&&he.htmlWhitespaceSensitivity==="ignore"?[v,_]:_},"children")}function b(K){return g(K)?u([v,"/>"],[" />",v]):u([v,">"],">")}function L(K){let he=K.escaped===!1?"{{{":"{{",ye=K.strip&&K.strip.open?"~":"";return[he,ye]}function M(K){let he=K.escaped===!1?"}}}":"}}";return[K.strip&&K.strip.close?"~":"",he]}function j(K){let he=L(K),ye=K.openStrip.open?"~":"";return[he,ye,"#"]}function $(K){let he=M(K);return[K.openStrip.close?"~":"",he]}function V(K){let he=L(K),ye=K.closeStrip.open?"~":"";return[he,ye,"/"]}function q(K){let he=M(K);return[K.closeStrip.close?"~":"",he]}function Y(K){let he=L(K),ye=K.inverseStrip.open?"~":"";return[he,ye]}function H(K){let he=M(K);return[K.inverseStrip.close?"~":"",he]}function R(K,he){let ye=K.getValue(),Ce=j(ye),Ie=$(ye),Fe=[de(K,he)],me=ae(K,he);if(me&&Fe.push(c,me),f(ye.program.blockParams)){let _=ve(ye.program);Fe.push(c,_)}return a([Ce,i(Fe),v,Ie])}function Q(K,he){return[he.htmlWhitespaceSensitivity==="ignore"?r:"",Y(K),"else",H(K)]}function ee(K,he){let ye=K.getParentNode(1);return[Y(ye),"else if ",ae(K,he),H(ye)]}function te(K,he,ye){let Ce=K.getValue();return ye.htmlWhitespaceSensitivity==="ignore"?[oe(Ce)?v:r,V(Ce),he("path"),q(Ce)]:[V(Ce),he("path"),q(Ce)]}function oe(K){return P(K,["BlockStatement"])&&K.program.body.every(he=>F(he))}function W(K){return X(K)&&K.inverse.body.length===1&&P(K.inverse.body[0],["BlockStatement"])&&K.inverse.body[0].path.parts[0]==="if"}function X(K){return P(K,["BlockStatement"])&&K.inverse}function ue(K,he,ye){let Ce=K.getValue();if(oe(Ce))return"";let Ie=he("program");return ye.htmlWhitespaceSensitivity==="ignore"?i([r,Ie]):i(Ie)}function De(K,he,ye){let Ce=K.getValue(),Ie=he("inverse"),Fe=ye.htmlWhitespaceSensitivity==="ignore"?[r,Ie]:Ie;return W(Ce)?Fe:X(Ce)?[Q(Ce,ye),i(Fe)]:""}function ie(K){return m(o(c,G(K)))}function G(K){return K.split(/[\t\n\f\r ]+/)}function z(K){for(let he=0;he<2;he++){let ye=K.getParentNode(he);if(ye&&ye.type==="AttrNode")return ye.name.toLowerCase()}}function U(K){return K=typeof K=="string"?K:"",K.split(` +`).length-1}function le(K){K=typeof K=="string"?K:"";let he=(K.match(/^([^\S\n\r]*[\n\r])+/g)||[])[0]||"";return U(he)}function ge(K){K=typeof K=="string"?K:"";let he=(K.match(/([\n\r][^\S\n\r]*)+$/g)||[])[0]||"";return U(he)}function Ae(){let K=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return Array.from({length:Math.min(K,l)}).fill(r)}function Ne(K,he){let{quote:ye,regex:Ce}=p(K,he);return[ye,K.replace(Ce,"\\".concat(ye)),ye]}function ke(K){let he=0,ye=K.getParentNode(he);for(;ye&&P(ye,["SubExpression"]);)he++,ye=K.getParentNode(he);return!!(ye&&P(K.getParentNode(he+1),["ConcatStatement"])&&P(K.getParentNode(he+2),["AttrNode"]))}function ce(K,he){let ye=de(K,he),Ce=ae(K,he);return Ce?i([ye,c,a(Ce)]):ye}function pe(K,he){let ye=de(K,he),Ce=ae(K,he);return Ce?[i([ye,c,Ce]),v]:ye}function de(K,he){return he("path")}function ae(K,he){let ye=K.getValue(),Ce=[];if(ye.params.length>0){let Ie=K.map(he,"params");Ce.push(...Ie)}if(ye.hash&&ye.hash.pairs.length>0){let Ie=he("hash");Ce.push(Ie)}return Ce.length===0?"":o(c,Ce)}function ve(K){return["as |",K.blockParams.join(" "),"|"]}n.exports={print:E,massageAstNode:T}}}),wd=Z({"src/language-handlebars/parsers.js"(){re()}}),_d=Z({"node_modules/linguist-languages/data/Handlebars.json"(e,n){n.exports={name:"Handlebars",type:"markup",color:"#f7931e",aliases:["hbs","htmlbars"],extensions:[".handlebars",".hbs"],tmScope:"text.html.handlebars",aceMode:"handlebars",languageId:155}}}),Pd=Z({"src/language-handlebars/index.js"(e,n){"use strict";re();var t=Bt(),s=Nd(),a=wd(),r=[t(_d(),()=>({since:"2.3.0",parsers:["glimmer"],vscodeLanguageIds:["handlebars"]}))],u={glimmer:s};n.exports={languages:r,printers:u,parsers:a}}}),kd=Z({"src/language-graphql/pragma.js"(e,n){"use strict";re();function t(a){return/^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/.test(a)}function s(a){return`# @format + +`+a}n.exports={hasPragma:t,insertPragma:s}}}),Id=Z({"src/language-graphql/loc.js"(e,n){"use strict";re();function t(a){return typeof a.start=="number"?a.start:a.loc&&a.loc.start}function s(a){return typeof a.end=="number"?a.end:a.loc&&a.loc.end}n.exports={locStart:t,locEnd:s}}}),Ld=Z({"src/language-graphql/printer-graphql.js"(e,n){"use strict";re();var{builders:{join:t,hardline:s,line:a,softline:r,group:u,indent:i,ifBreak:o}}=Oe(),{isNextLineEmpty:c,isNonEmptyArray:v}=Ue(),{insertPragma:m}=kd(),{locStart:d,locEnd:p}=Id();function f(k,P,C){let D=k.getValue();if(!D)return"";if(typeof D=="string")return D;switch(D.kind){case"Document":{let g=[];return k.each((F,l,E)=>{g.push(C()),l!==E.length-1&&(g.push(s),c(P.originalText,F.getValue(),p)&&g.push(s))},"definitions"),[...g,s]}case"OperationDefinition":{let g=P.originalText[d(D)]!=="{",F=Boolean(D.name);return[g?D.operation:"",g&&F?[" ",C("name")]:"",g&&!F&&v(D.variableDefinitions)?" ":"",v(D.variableDefinitions)?u(["(",i([r,t([o("",", "),r],k.map(C,"variableDefinitions"))]),r,")"]):"",h(k,C,D),D.selectionSet?!g&&!F?"":" ":"",C("selectionSet")]}case"FragmentDefinition":return["fragment ",C("name"),v(D.variableDefinitions)?u(["(",i([r,t([o("",", "),r],k.map(C,"variableDefinitions"))]),r,")"]):""," on ",C("typeCondition"),h(k,C,D)," ",C("selectionSet")];case"SelectionSet":return["{",i([s,t(s,w(k,P,C,"selections"))]),s,"}"];case"Field":return u([D.alias?[C("alias"),": "]:"",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):"",h(k,C,D),D.selectionSet?" ":"",C("selectionSet")]);case"Name":return D.value;case"StringValue":{if(D.block){let g=D.value.replace(/"""/g,"\\$&").split(` +`);return g.length===1&&(g[0]=g[0].trim()),g.every(F=>F==="")&&(g.length=0),t(s,['"""',...g,'"""'])}return['"',D.value.replace(/["\\]/g,"\\$&").replace(/\n/g,"\\n"),'"']}case"IntValue":case"FloatValue":case"EnumValue":return D.value;case"BooleanValue":return D.value?"true":"false";case"NullValue":return"null";case"Variable":return["$",C("name")];case"ListValue":return u(["[",i([r,t([o("",", "),r],k.map(C,"values"))]),r,"]"]);case"ObjectValue":return u(["{",P.bracketSpacing&&D.fields.length>0?" ":"",i([r,t([o("",", "),r],k.map(C,"fields"))]),r,o("",P.bracketSpacing&&D.fields.length>0?" ":""),"}"]);case"ObjectField":case"Argument":return[C("name"),": ",C("value")];case"Directive":return["@",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):""];case"NamedType":return C("name");case"VariableDefinition":return[C("variable"),": ",C("type"),D.defaultValue?[" = ",C("defaultValue")]:"",h(k,C,D)];case"ObjectTypeExtension":case"ObjectTypeDefinition":return[C("description"),D.description?s:"",D.kind==="ObjectTypeExtension"?"extend ":"","type ",C("name"),D.interfaces.length>0?[" implements ",...S(k,P,C)]:"",h(k,C,D),D.fields.length>0?[" {",i([s,t(s,w(k,P,C,"fields"))]),s,"}"]:""];case"FieldDefinition":return[C("description"),D.description?s:"",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):"",": ",C("type"),h(k,C,D)];case"DirectiveDefinition":return[C("description"),D.description?s:"","directive ","@",C("name"),D.arguments.length>0?u(["(",i([r,t([o("",", "),r],w(k,P,C,"arguments"))]),r,")"]):"",D.repeatable?" repeatable":""," on ",t(" | ",k.map(C,"locations"))];case"EnumTypeExtension":case"EnumTypeDefinition":return[C("description"),D.description?s:"",D.kind==="EnumTypeExtension"?"extend ":"","enum ",C("name"),h(k,C,D),D.values.length>0?[" {",i([s,t(s,w(k,P,C,"values"))]),s,"}"]:""];case"EnumValueDefinition":return[C("description"),D.description?s:"",C("name"),h(k,C,D)];case"InputValueDefinition":return[C("description"),D.description?D.description.block?s:a:"",C("name"),": ",C("type"),D.defaultValue?[" = ",C("defaultValue")]:"",h(k,C,D)];case"InputObjectTypeExtension":case"InputObjectTypeDefinition":return[C("description"),D.description?s:"",D.kind==="InputObjectTypeExtension"?"extend ":"","input ",C("name"),h(k,C,D),D.fields.length>0?[" {",i([s,t(s,w(k,P,C,"fields"))]),s,"}"]:""];case"SchemaExtension":return["extend schema",h(k,C,D),...D.operationTypes.length>0?[" {",i([s,t(s,w(k,P,C,"operationTypes"))]),s,"}"]:[]];case"SchemaDefinition":return[C("description"),D.description?s:"","schema",h(k,C,D)," {",D.operationTypes.length>0?i([s,t(s,w(k,P,C,"operationTypes"))]):"",s,"}"];case"OperationTypeDefinition":return[C("operation"),": ",C("type")];case"InterfaceTypeExtension":case"InterfaceTypeDefinition":return[C("description"),D.description?s:"",D.kind==="InterfaceTypeExtension"?"extend ":"","interface ",C("name"),D.interfaces.length>0?[" implements ",...S(k,P,C)]:"",h(k,C,D),D.fields.length>0?[" {",i([s,t(s,w(k,P,C,"fields"))]),s,"}"]:""];case"FragmentSpread":return["...",C("name"),h(k,C,D)];case"InlineFragment":return["...",D.typeCondition?[" on ",C("typeCondition")]:"",h(k,C,D)," ",C("selectionSet")];case"UnionTypeExtension":case"UnionTypeDefinition":return u([C("description"),D.description?s:"",u([D.kind==="UnionTypeExtension"?"extend ":"","union ",C("name"),h(k,C,D),D.types.length>0?[" =",o(""," "),i([o([a," "]),t([a,"| "],k.map(C,"types"))])]:""])]);case"ScalarTypeExtension":case"ScalarTypeDefinition":return[C("description"),D.description?s:"",D.kind==="ScalarTypeExtension"?"extend ":"","scalar ",C("name"),h(k,C,D)];case"NonNullType":return[C("type"),"!"];case"ListType":return["[",C("type"),"]"];default:throw new Error("unknown graphql type: "+JSON.stringify(D.kind))}}function h(k,P,C){if(C.directives.length===0)return"";let D=t(a,k.map(P,"directives"));return C.kind==="FragmentDefinition"||C.kind==="OperationDefinition"?u([a,D]):[" ",u(i([r,D]))]}function w(k,P,C,D){return k.map((g,F,l)=>{let E=C();return FC(E),"interfaces");for(let E=0;ED.value.trim()==="prettier-ignore")}n.exports={print:f,massageAstNode:B,hasPrettierIgnore:I,insertPragma:m,printComment:A,canAttachComment:T}}}),jd=Z({"src/language-graphql/options.js"(e,n){"use strict";re();var t=Ot();n.exports={bracketSpacing:t.bracketSpacing}}}),Od=Z({"src/language-graphql/parsers.js"(){re()}}),qd=Z({"node_modules/linguist-languages/data/GraphQL.json"(e,n){n.exports={name:"GraphQL",type:"data",color:"#e10098",extensions:[".graphql",".gql",".graphqls"],tmScope:"source.graphql",aceMode:"text",languageId:139}}}),Md=Z({"src/language-graphql/index.js"(e,n){"use strict";re();var t=Bt(),s=Ld(),a=jd(),r=Od(),u=[t(qd(),()=>({since:"1.5.0",parsers:["graphql"],vscodeLanguageIds:["graphql"]}))],i={graphql:s};n.exports={languages:u,options:a,printers:i,parsers:r}}}),go=Z({"src/language-markdown/loc.js"(e,n){"use strict";re();function t(a){return a.position.start.offset}function s(a){return a.position.end.offset}n.exports={locStart:t,locEnd:s}}}),Rd=Z({"src/language-markdown/constants.evaluate.js"(e,n){n.exports={cjkPattern:"(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?",kPattern:"[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]",punctuationPattern:"[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]"}}}),Kn=Z({"src/language-markdown/utils.js"(e,n){"use strict";re();var{getLast:t}=Ue(),{locStart:s,locEnd:a}=go(),{cjkPattern:r,kPattern:u,punctuationPattern:i}=Rd(),o=["liquidNode","inlineCode","emphasis","esComment","strong","delete","wikiLink","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break","inlineMath"],c=[...o,"tableCell","paragraph","heading"],v=new RegExp(u),m=new RegExp(i);function d(A,S){let B="non-cjk",I="cj-letter",k="k-letter",P="cjk-punctuation",C=[],D=(S.proseWrap==="preserve"?A:A.replace(new RegExp("(".concat(r,`) +(`).concat(r,")"),"g"),"$1$2")).split(/([\t\n ]+)/);for(let[F,l]of D.entries()){if(F%2===1){C.push({type:"whitespace",value:/\n/.test(l)?` +`:" "});continue}if((F===0||F===D.length-1)&&l==="")continue;let E=l.split(new RegExp("(".concat(r,")")));for(let[y,N]of E.entries())if(!((y===0||y===E.length-1)&&N==="")){if(y%2===0){N!==""&&g({type:"word",value:N,kind:B,hasLeadingPunctuation:m.test(N[0]),hasTrailingPunctuation:m.test(t(N))});continue}g(m.test(N)?{type:"word",value:N,kind:P,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:"word",value:N,kind:v.test(N)?k:I,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return C;function g(F){let l=t(C);l&&l.type==="word"&&(l.kind===B&&F.kind===I&&!l.hasTrailingPunctuation||l.kind===I&&F.kind===B&&!F.hasLeadingPunctuation?C.push({type:"whitespace",value:" "}):!E(B,P)&&![l.value,F.value].some(y=>/\u3000/.test(y))&&C.push({type:"whitespace",value:""})),C.push(F);function E(y,N){return l.kind===y&&F.kind===N||l.kind===N&&F.kind===y}}}function p(A,S){let[,B,I,k]=S.slice(A.position.start.offset,A.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/);return{numberText:B,marker:I,leadingSpaces:k}}function f(A,S){if(!A.ordered||A.children.length<2)return!1;let B=Number(p(A.children[0],S.originalText).numberText),I=Number(p(A.children[1],S.originalText).numberText);if(B===0&&A.children.length>2){let k=Number(p(A.children[2],S.originalText).numberText);return I===1&&k===1}return I===1}function h(A,S){let{value:B}=A;return A.position.end.offset===S.length&&B.endsWith(` +`)&&S.endsWith(` +`)?B.slice(0,-1):B}function w(A,S){return function B(I,k,P){let C=Object.assign({},S(I,k,P));return C.children&&(C.children=C.children.map((D,g)=>B(D,g,[C,...P]))),C}(A,null,[])}function T(A){if((A==null?void 0:A.type)!=="link"||A.children.length!==1)return!1;let[S]=A.children;return s(A)===s(S)&&a(A)===a(S)}n.exports={mapAst:w,splitText:d,punctuationPattern:i,getFencedCodeBlockValue:h,getOrderedListItemInfo:p,hasGitDiffFriendlyOrderedList:f,INLINE_NODE_TYPES:o,INLINE_NODE_WRAPPER_TYPES:c,isAutolink:T}}}),Vd=Z({"src/language-markdown/embed.js"(e,n){"use strict";re();var{inferParserByLanguage:t,getMaxContinuousCount:s}=Ue(),{builders:{hardline:a,markAsRoot:r},utils:{replaceEndOfLine:u}}=Oe(),i=Xn(),{getFencedCodeBlockValue:o}=Kn();function c(v,m,d,p){let f=v.getValue();if(f.type==="code"&&f.lang!==null){let h=t(f.lang,p);if(h){let w=p.__inJsTemplate?"~":"`",T=w.repeat(Math.max(3,s(f.value,w)+1)),A={parser:h};f.lang==="tsx"&&(A.filepath="dummy.tsx");let S=d(o(f,p.originalText),A,{stripTrailingHardline:!0});return r([T,f.lang,f.meta?" "+f.meta:"",a,u(S),a,T])}}switch(f.type){case"front-matter":return i(f,d);case"importExport":return[d(f.value,{parser:"babel"},{stripTrailingHardline:!0}),a];case"jsx":return d("<$>".concat(f.value,""),{parser:"__js_expression",rootMarker:"mdx"},{stripTrailingHardline:!0})}return null}n.exports=c}}),yo=Z({"src/language-markdown/pragma.js"(e,n){"use strict";re();var t=mo(),s=["format","prettier"];function a(r){let u="@(".concat(s.join("|"),")"),i=new RegExp([""),"{\\s*\\/\\*\\s*".concat(u,"\\s*\\*\\/\\s*}"),``)].join("|"),"m"),o=r.match(i);return(o==null?void 0:o.index)===0}n.exports={startWithPragma:a,hasPragma:r=>a(t(r).content.trimStart()),insertPragma:r=>{let u=t(r),i="");return u.frontMatter?"".concat(u.frontMatter.raw,` + +`).concat(i,` + +`).concat(u.content):"".concat(i,` + +`).concat(u.content)}}}}),Wd=Z({"src/language-markdown/print-preprocess.js"(e,n){"use strict";re();var t=it(),{getOrderedListItemInfo:s,mapAst:a,splitText:r}=Kn(),u=/^.$/su;function i(T,A){return T=v(T,A),T=p(T),T=c(T),T=h(T,A),T=w(T,A),T=f(T,A),T=o(T),T=m(T),T}function o(T){return a(T,A=>A.type!=="import"&&A.type!=="export"?A:Object.assign(Object.assign({},A),{},{type:"importExport"}))}function c(T){return a(T,A=>A.type!=="inlineCode"?A:Object.assign(Object.assign({},A),{},{value:A.value.replace(/\s+/g," ")}))}function v(T,A){return a(T,S=>S.type!=="text"||S.value==="*"||S.value==="_"||!u.test(S.value)||S.position.end.offset-S.position.start.offset===S.value.length?S:Object.assign(Object.assign({},S),{},{value:A.originalText.slice(S.position.start.offset,S.position.end.offset)}))}function m(T){return d(T,(A,S)=>A.type==="importExport"&&S.type==="importExport",(A,S)=>({type:"importExport",value:A.value+` + +`+S.value,position:{start:A.position.start,end:S.position.end}}))}function d(T,A,S){return a(T,B=>{if(!B.children)return B;let I=B.children.reduce((k,P)=>{let C=t(k);return C&&A(C,P)?k.splice(-1,1,S(C,P)):k.push(P),k},[]);return Object.assign(Object.assign({},B),{},{children:I})})}function p(T){return d(T,(A,S)=>A.type==="text"&&S.type==="text",(A,S)=>({type:"text",value:A.value+S.value,position:{start:A.position.start,end:S.position.end}}))}function f(T,A){return a(T,(S,B,I)=>{let[k]=I;if(S.type!=="text")return S;let{value:P}=S;return k.type==="paragraph"&&(B===0&&(P=P.trimStart()),B===k.children.length-1&&(P=P.trimEnd())),{type:"sentence",position:S.position,children:r(P,A)}})}function h(T,A){return a(T,(S,B,I)=>{if(S.type==="code"){let k=/^\n?(?: {4,}|\t)/.test(A.originalText.slice(S.position.start.offset,S.position.end.offset));if(S.isIndented=k,k)for(let P=0;P{if(I.type==="list"&&I.children.length>0){for(let C=0;C1)return!0;let D=S(k);if(D===-1)return!1;if(I.children.length===1)return D%A.tabWidth===0;let g=S(P);return D!==g?!1:D%A.tabWidth===0?!0:s(P,A.originalText).leadingSpaces.length>1}}n.exports=i}}),$d=Z({"src/language-markdown/clean.js"(e,n){"use strict";re();var{isFrontMatterNode:t}=Ue(),{startWithPragma:s}=yo(),a=new Set(["position","raw"]);function r(u,i,o){if((u.type==="front-matter"||u.type==="code"||u.type==="yaml"||u.type==="import"||u.type==="export"||u.type==="jsx")&&delete i.value,u.type==="list"&&delete i.isAligned,(u.type==="list"||u.type==="listItem")&&(delete i.spread,delete i.loose),u.type==="text"||(u.type==="inlineCode"&&(i.value=u.value.replace(/[\t\n ]+/g," ")),u.type==="wikiLink"&&(i.value=u.value.trim().replace(/[\t\n]+/g," ")),(u.type==="definition"||u.type==="linkReference")&&(i.label=u.label.trim().replace(/[\t\n ]+/g," ").toLowerCase()),(u.type==="definition"||u.type==="link"||u.type==="image")&&u.title&&(i.title=u.title.replace(/\\(["')])/g,"$1")),o&&o.type==="root"&&o.children.length>0&&(o.children[0]===u||t(o.children[0])&&o.children[1]===u)&&u.type==="html"&&s(u.value)))return null}r.ignoredProperties=a,n.exports=r}}),Hd=Z({"src/language-markdown/printer-markdown.js"(e,n){"use strict";re();var{getLast:t,getMinNotPresentContinuousCount:s,getMaxContinuousCount:a,getStringWidth:r,isNonEmptyArray:u}=Ue(),{builders:{breakParent:i,join:o,line:c,literalline:v,markAsRoot:m,hardline:d,softline:p,ifBreak:f,fill:h,align:w,indent:T,group:A,hardlineWithoutBreakParent:S},utils:{normalizeDoc:B,replaceTextEndOfLine:I},printer:{printDocToString:k}}=Oe(),P=Vd(),{insertPragma:C}=yo(),{locStart:D,locEnd:g}=go(),F=Wd(),l=$d(),{getFencedCodeBlockValue:E,hasGitDiffFriendlyOrderedList:y,splitText:N,punctuationPattern:x,INLINE_NODE_TYPES:b,INLINE_NODE_WRAPPER_TYPES:L,isAutolink:M}=Kn(),j=new Set(["importExport"]),$=["heading","tableCell","link","wikiLink"],V=new Set(["listItem","definition","footnoteDefinition"]);function q(ce,pe,de){let ae=ce.getValue();if(le(ce))return N(pe.originalText.slice(ae.position.start.offset,ae.position.end.offset),pe).map(ve=>ve.type==="word"?ve.value:ve.value===""?"":oe(ce,ve.value,pe));switch(ae.type){case"front-matter":return pe.originalText.slice(ae.position.start.offset,ae.position.end.offset);case"root":return ae.children.length===0?"":[B(X(ce,pe,de)),j.has(De(ae).type)?"":d];case"paragraph":return ue(ce,pe,de,{postprocessor:h});case"sentence":return ue(ce,pe,de);case"word":{let ve=ae.value.replace(/\*/g,"\\$&").replace(new RegExp(["(^|".concat(x,")(_+)"),"(_+)(".concat(x,"|$)")].join("|"),"g"),(ye,Ce,Ie,Fe,me)=>(Ie?"".concat(Ce).concat(Ie):"".concat(Fe).concat(me)).replace(/_/g,"\\_")),K=(ye,Ce,Ie)=>ye.type==="sentence"&&Ie===0,he=(ye,Ce,Ie)=>M(ye.children[Ie-1]);return ve!==ae.value&&(ce.match(void 0,K,he)||ce.match(void 0,K,(ye,Ce,Ie)=>ye.type==="emphasis"&&Ie===0,he))&&(ve=ve.replace(/^(\\?[*_])+/,ye=>ye.replace(/\\/g,""))),ve}case"whitespace":{let ve=ce.getParentNode(),K=ve.children.indexOf(ae),he=ve.children[K+1],ye=he&&/^>|^(?:[*+-]|#{1,6}|\d+[).])$/.test(he.value)?"never":pe.proseWrap;return oe(ce,ae.value,{proseWrap:ye})}case"emphasis":{let ve;if(M(ae.children[0]))ve=pe.originalText[ae.position.start.offset];else{let K=ce.getParentNode(),he=K.children.indexOf(ae),ye=K.children[he-1],Ce=K.children[he+1];ve=ye&&ye.type==="sentence"&&ye.children.length>0&&t(ye.children).type==="word"&&!t(ye.children).hasTrailingPunctuation||Ce&&Ce.type==="sentence"&&Ce.children.length>0&&Ce.children[0].type==="word"&&!Ce.children[0].hasLeadingPunctuation||te(ce,"emphasis")?"*":"_"}return[ve,ue(ce,pe,de),ve]}case"strong":return["**",ue(ce,pe,de),"**"];case"delete":return["~~",ue(ce,pe,de),"~~"];case"inlineCode":{let ve=s(ae.value,"`"),K="`".repeat(ve||1),he=ve&&!/^\s/.test(ae.value)?" ":"";return[K,he,ae.value,he,K]}case"wikiLink":{let ve="";return pe.proseWrap==="preserve"?ve=ae.value:ve=ae.value.replace(/[\t\n]+/g," "),["[[",ve,"]]"]}case"link":switch(pe.originalText[ae.position.start.offset]){case"<":{let ve="mailto:",K=ae.url.startsWith(ve)&&pe.originalText.slice(ae.position.start.offset+1,ae.position.start.offset+1+ve.length)!==ve?ae.url.slice(ve.length):ae.url;return["<",K,">"]}case"[":return["[",ue(ce,pe,de),"](",ge(ae.url,")"),Ae(ae.title,pe),")"];default:return pe.originalText.slice(ae.position.start.offset,ae.position.end.offset)}case"image":return["![",ae.alt||"","](",ge(ae.url,")"),Ae(ae.title,pe),")"];case"blockquote":return["> ",w("> ",ue(ce,pe,de))];case"heading":return["#".repeat(ae.depth)+" ",ue(ce,pe,de)];case"code":{if(ae.isIndented){let he=" ".repeat(4);return w(he,[he,...I(ae.value,d)])}let ve=pe.__inJsTemplate?"~":"`",K=ve.repeat(Math.max(3,a(ae.value,ve)+1));return[K,ae.lang||"",ae.meta?" "+ae.meta:"",d,...I(E(ae,pe.originalText),d),d,K]}case"html":{let ve=ce.getParentNode(),K=ve.type==="root"&&t(ve.children)===ae?ae.value.trimEnd():ae.value,he=/^$/s.test(K);return I(K,he?d:m(v))}case"list":{let ve=R(ae,ce.getParentNode()),K=y(ae,pe);return ue(ce,pe,de,{processor:(he,ye)=>{let Ce=Fe(),Ie=he.getValue();if(Ie.children.length===2&&Ie.children[1].type==="html"&&Ie.children[0].position.start.column!==Ie.children[1].position.start.column)return[Ce,Y(he,pe,de,Ce)];return[Ce,w(" ".repeat(Ce.length),Y(he,pe,de,Ce))];function Fe(){let me=ae.ordered?(ye===0?ae.start:K?1:ae.start+ye)+(ve%2===0?". ":") "):ve%2===0?"- ":"* ";return ae.isAligned||ae.hasIndentedCodeblock?H(me,pe):me}}})}case"thematicBreak":{let ve=ee(ce,"list");return ve===-1?"---":R(ce.getParentNode(ve),ce.getParentNode(ve+1))%2===0?"***":"---"}case"linkReference":return["[",ue(ce,pe,de),"]",ae.referenceType==="full"?["[",ae.identifier,"]"]:ae.referenceType==="collapsed"?"[]":""];case"imageReference":switch(ae.referenceType){case"full":return["![",ae.alt||"","][",ae.identifier,"]"];default:return["![",ae.alt,"]",ae.referenceType==="collapsed"?"[]":""]}case"definition":{let ve=pe.proseWrap==="always"?c:" ";return A(["[",ae.identifier,"]:",T([ve,ge(ae.url),ae.title===null?"":[ve,Ae(ae.title,pe,!1)]])])}case"footnote":return["[^",ue(ce,pe,de),"]"];case"footnoteReference":return["[^",ae.identifier,"]"];case"footnoteDefinition":{let ve=ce.getParentNode().children[ce.getName()+1],K=ae.children.length===1&&ae.children[0].type==="paragraph"&&(pe.proseWrap==="never"||pe.proseWrap==="preserve"&&ae.children[0].position.start.line===ae.children[0].position.end.line);return["[^",ae.identifier,"]: ",K?ue(ce,pe,de):A([w(" ".repeat(4),ue(ce,pe,de,{processor:(he,ye)=>ye===0?A([p,de()]):de()})),ve&&ve.type==="footnoteDefinition"?p:""])]}case"table":return W(ce,pe,de);case"tableCell":return ue(ce,pe,de);case"break":return/\s/.test(pe.originalText[ae.position.start.offset])?[" ",m(v)]:["\\",d];case"liquidNode":return I(ae.value,d);case"importExport":return[ae.value,d];case"esComment":return["{/* ",ae.value," */}"];case"jsx":return ae.value;case"math":return["$$",d,ae.value?[...I(ae.value,d),d]:"","$$"];case"inlineMath":return pe.originalText.slice(D(ae),g(ae));case"tableRow":case"listItem":default:throw new Error("Unknown markdown type ".concat(JSON.stringify(ae.type)))}}function Y(ce,pe,de,ae){let ve=ce.getValue(),K=ve.checked===null?"":ve.checked?"[x] ":"[ ] ";return[K,ue(ce,pe,de,{processor:(he,ye)=>{if(ye===0&&he.getValue().type!=="list")return w(" ".repeat(K.length),de());let Ce=" ".repeat(Ne(pe.tabWidth-ae.length,0,3));return[Ce,w(Ce,de())]}})]}function H(ce,pe){let de=ae();return ce+" ".repeat(de>=4?0:de);function ae(){let ve=ce.length%pe.tabWidth;return ve===0?0:pe.tabWidth-ve}}function R(ce,pe){return Q(ce,pe,de=>de.ordered===ce.ordered)}function Q(ce,pe,de){let ae=-1;for(let ve of pe.children)if(ve.type===ce.type&&de(ve)?ae++:ae=-1,ve===ce)return ae}function ee(ce,pe){let de=Array.isArray(pe)?pe:[pe],ae=-1,ve;for(;ve=ce.getParentNode(++ae);)if(de.includes(ve.type))return ae;return-1}function te(ce,pe){let de=ee(ce,pe);return de===-1?null:ce.getParentNode(de)}function oe(ce,pe,de){if(de.proseWrap==="preserve"&&pe===` +`)return d;let ae=de.proseWrap==="always"&&!te(ce,$);return pe!==""?ae?c:" ":ae?p:""}function W(ce,pe,de){let ae=ce.getValue(),ve=[],K=ce.map(me=>me.map((_,J)=>{let ne=k(de(),pe).formatted,Ee=r(ne);return ve[J]=Math.max(ve[J]||3,Ee),{text:ne,width:Ee}},"children"),"children"),he=Ce(!1);if(pe.proseWrap!=="never")return[i,he];let ye=Ce(!0);return[i,A(f(ye,he))];function Ce(me){let _=[Fe(K[0],me),Ie(me)];return K.length>1&&_.push(o(S,K.slice(1).map(J=>Fe(J,me)))),o(S,_)}function Ie(me){let _=ve.map((J,ne)=>{let Ee=ae.align[ne],We=Ee==="center"||Ee==="left"?":":"-",Be=Ee==="center"||Ee==="right"?":":"-",Pe=me?"-":"-".repeat(J-2);return"".concat(We).concat(Pe).concat(Be)});return"| ".concat(_.join(" | ")," |")}function Fe(me,_){let J=me.map((ne,Ee)=>{let{text:We,width:Be}=ne;if(_)return We;let Pe=ve[Ee]-Be,Se=ae.align[Ee],Qe=0;Se==="right"?Qe=Pe:Se==="center"&&(Qe=Math.floor(Pe/2));let xe=Pe-Qe;return"".concat(" ".repeat(Qe)).concat(We).concat(" ".repeat(xe))});return"| ".concat(J.join(" | ")," |")}}function X(ce,pe,de){let ae=[],ve=null,{children:K}=ce.getValue();for(let[he,ye]of K.entries())switch(ie(ye)){case"start":ve===null&&(ve={index:he,offset:ye.position.end.offset});break;case"end":ve!==null&&(ae.push({start:ve,end:{index:he,offset:ye.position.start.offset}}),ve=null);break;default:break}return ue(ce,pe,de,{processor:(he,ye)=>{if(ae.length>0){let Ce=ae[0];if(ye===Ce.start.index)return[K[Ce.start.index].value,pe.originalText.slice(Ce.start.offset,Ce.end.offset),K[Ce.end.index].value];if(Ce.start.index3&&arguments[3]!==void 0?arguments[3]:{},{postprocessor:ve}=ae,K=ae.processor||(()=>de()),he=ce.getValue(),ye=[],Ce;return ce.each((Ie,Fe)=>{let me=Ie.getValue(),_=K(Ie,Fe);if(_!==!1){let J={parts:ye,prevNode:Ce,parentNode:he,options:pe};G(me,J)&&(ye.push(d),Ce&&j.has(Ce.type)||(z(me,J)||U(me,J))&&ye.push(d),U(me,J)&&ye.push(d)),ye.push(_),Ce=me}},"children"),ve?ve(ye):ye}function De(ce){let pe=ce;for(;u(pe.children);)pe=t(pe.children);return pe}function ie(ce){let pe;if(ce.type==="html")pe=ce.value.match(/^$/);else{let de;ce.type==="esComment"?de=ce:ce.type==="paragraph"&&ce.children.length===1&&ce.children[0].type==="esComment"&&(de=ce.children[0]),de&&(pe=de.value.match(/^prettier-ignore(?:-(start|end))?$/))}return pe?pe[1]||"next":!1}function G(ce,pe){let de=pe.parts.length===0,ae=b.includes(ce.type),ve=ce.type==="html"&&L.includes(pe.parentNode.type);return!de&&!ae&&!ve}function z(ce,pe){var de,ae,ve;let he=(pe.prevNode&&pe.prevNode.type)===ce.type&&V.has(ce.type),ye=pe.parentNode.type==="listItem"&&!pe.parentNode.loose,Ce=((de=pe.prevNode)===null||de===void 0?void 0:de.type)==="listItem"&&pe.prevNode.loose,Ie=ie(pe.prevNode)==="next",Fe=ce.type==="html"&&((ae=pe.prevNode)===null||ae===void 0?void 0:ae.type)==="html"&&pe.prevNode.position.end.line+1===ce.position.start.line,me=ce.type==="html"&&pe.parentNode.type==="listItem"&&((ve=pe.prevNode)===null||ve===void 0?void 0:ve.type)==="paragraph"&&pe.prevNode.position.end.line+1===ce.position.start.line;return Ce||!(he||ye||Ie||Fe||me)}function U(ce,pe){let de=pe.prevNode&&pe.prevNode.type==="list",ae=ce.type==="code"&&ce.isIndented;return de&&ae}function le(ce){let pe=te(ce,["linkReference","imageReference"]);return pe&&(pe.type!=="linkReference"||pe.referenceType!=="full")}function ge(ce){let pe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],de=[" ",...Array.isArray(pe)?pe:[pe]];return new RegExp(de.map(ae=>"\\".concat(ae)).join("|")).test(ce)?"<".concat(ce,">"):ce}function Ae(ce,pe){let de=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!ce)return"";if(de)return" "+Ae(ce,pe,!1);if(ce=ce.replace(/\\(["')])/g,"$1"),ce.includes('"')&&ce.includes("'")&&!ce.includes(")"))return"(".concat(ce,")");let ae=ce.split("'").length-1,ve=ce.split('"').length-1,K=ae>ve?'"':ve>ae||pe.singleQuote?"'":'"';return ce=ce.replace(/\\/,"\\\\"),ce=ce.replace(new RegExp("(".concat(K,")"),"g"),"\\$1"),"".concat(K).concat(ce).concat(K)}function Ne(ce,pe,de){return cede?de:ce}function ke(ce){let pe=Number(ce.getName());if(pe===0)return!1;let de=ce.getParentNode().children[pe-1];return ie(de)==="next"}n.exports={preprocess:F,print:q,embed:P,massageAstNode:l,hasPrettierIgnore:ke,insertPragma:C}}}),Gd=Z({"src/language-markdown/options.js"(e,n){"use strict";re();var t=Ot();n.exports={proseWrap:t.proseWrap,singleQuote:t.singleQuote}}}),Jd=Z({"src/language-markdown/parsers.js"(){re()}}),da=Z({"node_modules/linguist-languages/data/Markdown.json"(e,n){n.exports={name:"Markdown",type:"prose",color:"#083fa1",aliases:["pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:!0,extensions:[".md",".livemd",".markdown",".mdown",".mdwn",".mdx",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr"],tmScope:"source.gfm",languageId:222}}}),Ud=Z({"src/language-markdown/index.js"(e,n){"use strict";re();var t=Bt(),s=Hd(),a=Gd(),r=Jd(),u=[t(da(),o=>({since:"1.8.0",parsers:["markdown"],vscodeLanguageIds:["markdown"],filenames:[...o.filenames,"README"],extensions:o.extensions.filter(c=>c!==".mdx")})),t(da(),()=>({name:"MDX",since:"1.15.0",parsers:["mdx"],vscodeLanguageIds:["mdx"],filenames:[],extensions:[".mdx"]}))],i={mdast:s};n.exports={languages:u,options:a,printers:i,parsers:r}}}),zd=Z({"src/language-html/clean.js"(e,n){"use strict";re();var{isFrontMatterNode:t}=Ue(),s=new Set(["sourceSpan","startSourceSpan","endSourceSpan","nameSpan","valueSpan"]);function a(r,u){if(r.type==="text"||r.type==="comment"||t(r)||r.type==="yaml"||r.type==="toml")return null;r.type==="attribute"&&delete u.value,r.type==="docType"&&delete u.value}a.ignoredProperties=s,n.exports=a}}),Xd=Z({"src/language-html/constants.evaluate.js"(e,n){n.exports={CSS_DISPLAY_TAGS:{area:"none",base:"none",basefont:"none",datalist:"none",head:"none",link:"none",meta:"none",noembed:"none",noframes:"none",param:"block",rp:"none",script:"block",source:"block",style:"none",template:"inline",track:"block",title:"none",html:"block",body:"block",address:"block",blockquote:"block",center:"block",div:"block",figure:"block",figcaption:"block",footer:"block",form:"block",header:"block",hr:"block",legend:"block",listing:"block",main:"block",p:"block",plaintext:"block",pre:"block",xmp:"block",slot:"contents",ruby:"ruby",rt:"ruby-text",article:"block",aside:"block",h1:"block",h2:"block",h3:"block",h4:"block",h5:"block",h6:"block",hgroup:"block",nav:"block",section:"block",dir:"block",dd:"block",dl:"block",dt:"block",ol:"block",ul:"block",li:"list-item",table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell",fieldset:"block",button:"inline-block",details:"block",summary:"block",dialog:"block",meter:"inline-block",progress:"inline-block",object:"inline-block",video:"inline-block",audio:"inline-block",select:"inline-block",option:"block",optgroup:"block"},CSS_DISPLAY_DEFAULT:"inline",CSS_WHITE_SPACE_TAGS:{listing:"pre",plaintext:"pre",pre:"pre",xmp:"pre",nobr:"nowrap",table:"initial",textarea:"pre-wrap"},CSS_WHITE_SPACE_DEFAULT:"normal"}}}),Kd=Z({"src/language-html/utils/is-unknown-namespace.js"(e,n){"use strict";re();function t(s){return s.type==="element"&&!s.hasExplicitNamespace&&!["html","svg"].includes(s.namespace)}n.exports=t}}),qt=Z({"src/language-html/utils/index.js"(e,n){"use strict";re();var{inferParserByLanguage:t,isFrontMatterNode:s}=Ue(),{builders:{line:a,hardline:r,join:u},utils:{getDocParts:i,replaceTextEndOfLine:o}}=Oe(),{CSS_DISPLAY_TAGS:c,CSS_DISPLAY_DEFAULT:v,CSS_WHITE_SPACE_TAGS:m,CSS_WHITE_SPACE_DEFAULT:d}=Xd(),p=Kd(),f=new Set([" ",` +`,"\f","\r"," "]),h=_=>_.replace(/^[\t\n\f\r ]+/,""),w=_=>_.replace(/[\t\n\f\r ]+$/,""),T=_=>h(w(_)),A=_=>_.replace(/^[\t\f\r ]*\n/g,""),S=_=>A(w(_)),B=_=>_.split(/[\t\n\f\r ]+/),I=_=>_.match(/^[\t\n\f\r ]*/)[0],k=_=>{let[,J,ne,Ee]=_.match(/^([\t\n\f\r ]*)(.*?)([\t\n\f\r ]*)$/s);return{leadingWhitespace:J,trailingWhitespace:Ee,text:ne}},P=_=>/[\t\n\f\r ]/.test(_);function C(_,J){return!!(_.type==="ieConditionalComment"&&_.lastChild&&!_.lastChild.isSelfClosing&&!_.lastChild.endSourceSpan||_.type==="ieConditionalComment"&&!_.complete||le(_)&&_.children.some(ne=>ne.type!=="text"&&ne.type!=="interpolation")||ye(_,J)&&!l(_)&&_.type!=="interpolation")}function D(_){return _.type==="attribute"||!_.parent||!_.prev?!1:g(_.prev)}function g(_){return _.type==="comment"&&_.value.trim()==="prettier-ignore"}function F(_){return _.type==="text"||_.type==="comment"}function l(_){return _.type==="element"&&(_.fullName==="script"||_.fullName==="style"||_.fullName==="svg:style"||p(_)&&(_.name==="script"||_.name==="style"))}function E(_){return _.children&&!l(_)}function y(_){return l(_)||_.type==="interpolation"||N(_)}function N(_){return ke(_).startsWith("pre")}function x(_,J){let ne=Ee();if(ne&&!_.prev&&_.parent&&_.parent.tagDefinition&&_.parent.tagDefinition.ignoreFirstLf)return _.type==="interpolation";return ne;function Ee(){return s(_)?!1:(_.type==="text"||_.type==="interpolation")&&_.prev&&(_.prev.type==="text"||_.prev.type==="interpolation")?!0:!_.parent||_.parent.cssDisplay==="none"?!1:le(_.parent)?!0:!(!_.prev&&(_.parent.type==="root"||le(_)&&_.parent||l(_.parent)||K(_.parent,J)||!De(_.parent.cssDisplay))||_.prev&&!z(_.prev.cssDisplay))}}function b(_,J){return s(_)?!1:(_.type==="text"||_.type==="interpolation")&&_.next&&(_.next.type==="text"||_.next.type==="interpolation")?!0:!_.parent||_.parent.cssDisplay==="none"?!1:le(_.parent)?!0:!(!_.next&&(_.parent.type==="root"||le(_)&&_.parent||l(_.parent)||K(_.parent,J)||!ie(_.parent.cssDisplay))||_.next&&!G(_.next.cssDisplay))}function L(_){return U(_.cssDisplay)&&!l(_)}function M(_){return s(_)||_.next&&_.sourceSpan.end&&_.sourceSpan.end.line+1<_.next.sourceSpan.start.line}function j(_){return $(_)||_.type==="element"&&_.children.length>0&&(["body","script","style"].includes(_.name)||_.children.some(J=>te(J)))||_.firstChild&&_.firstChild===_.lastChild&&_.firstChild.type!=="text"&&H(_.firstChild)&&(!_.lastChild.isTrailingSpaceSensitive||R(_.lastChild))}function $(_){return _.type==="element"&&_.children.length>0&&(["html","head","ul","ol","select"].includes(_.name)||_.cssDisplay.startsWith("table")&&_.cssDisplay!=="table-cell")}function V(_){return Q(_)||_.prev&&q(_.prev)||Y(_)}function q(_){return Q(_)||_.type==="element"&&_.fullName==="br"||Y(_)}function Y(_){return H(_)&&R(_)}function H(_){return _.hasLeadingSpaces&&(_.prev?_.prev.sourceSpan.end.line<_.sourceSpan.start.line:_.parent.type==="root"||_.parent.startSourceSpan.end.line<_.sourceSpan.start.line)}function R(_){return _.hasTrailingSpaces&&(_.next?_.next.sourceSpan.start.line>_.sourceSpan.end.line:_.parent.type==="root"||_.parent.endSourceSpan&&_.parent.endSourceSpan.start.line>_.sourceSpan.end.line)}function Q(_){switch(_.type){case"ieConditionalComment":case"comment":case"directive":return!0;case"element":return["script","select"].includes(_.name)}return!1}function ee(_){return _.lastChild?ee(_.lastChild):_}function te(_){return _.children&&_.children.some(J=>J.type!=="text")}function oe(_){let{type:J,lang:ne}=_.attrMap;if(J==="module"||J==="text/javascript"||J==="text/babel"||J==="application/javascript"||ne==="jsx")return"babel";if(J==="application/x-typescript"||ne==="ts"||ne==="tsx")return"typescript";if(J==="text/markdown")return"markdown";if(J==="text/html")return"html";if(J&&(J.endsWith("json")||J.endsWith("importmap"))||J==="speculationrules")return"json";if(J==="text/x-handlebars-template")return"glimmer"}function W(_,J){let{lang:ne}=_.attrMap;if(!ne||ne==="postcss"||ne==="css")return"css";if(ne==="scss")return"scss";if(ne==="less")return"less";if(ne==="stylus")return t("stylus",J)}function X(_,J){if(_.name==="script"&&!_.attrMap.src)return!_.attrMap.lang&&!_.attrMap.type?"babel":oe(_);if(_.name==="style")return W(_,J);if(J&&ye(_,J))return oe(_)||!("src"in _.attrMap)&&t(_.attrMap.lang,J)}function ue(_){return _==="block"||_==="list-item"||_.startsWith("table")}function De(_){return!ue(_)&&_!=="inline-block"}function ie(_){return!ue(_)&&_!=="inline-block"}function G(_){return!ue(_)}function z(_){return!ue(_)}function U(_){return!ue(_)&&_!=="inline-block"}function le(_){return ke(_).startsWith("pre")}function ge(_,J){let ne=0;for(let Ee=_.stack.length-1;Ee>=0;Ee--){let We=_.stack[Ee];We&&typeof We=="object"&&!Array.isArray(We)&&J(We)&&ne++}return ne}function Ae(_,J){let ne=_;for(;ne;){if(J(ne))return!0;ne=ne.parent}return!1}function Ne(_,J){if(_.prev&&_.prev.type==="comment"){let Ee=_.prev.value.match(/^\s*display:\s*([a-z]+)\s*$/);if(Ee)return Ee[1]}let ne=!1;if(_.type==="element"&&_.namespace==="svg")if(Ae(_,Ee=>Ee.fullName==="svg:foreignObject"))ne=!0;else return _.name==="svg"?"inline-block":"block";switch(J.htmlWhitespaceSensitivity){case"strict":return"inline";case"ignore":return"block";default:return J.parser==="vue"&&_.parent&&_.parent.type==="root"?"block":_.type==="element"&&(!_.namespace||ne||p(_))&&c[_.name]||v}}function ke(_){return _.type==="element"&&(!_.namespace||p(_))&&m[_.name]||d}function ce(_){let J=Number.POSITIVE_INFINITY;for(let ne of _.split(` +`)){if(ne.length===0)continue;if(!f.has(ne[0]))return 0;let Ee=I(ne).length;ne.length!==Ee&&Ee1&&arguments[1]!==void 0?arguments[1]:ce(_);return J===0?_:_.split(` +`).map(ne=>ne.slice(J)).join(` +`)}function de(_,J){let ne=0;for(let Ee=0;Ee<_.length;Ee++)_[Ee]===J&&ne++;return ne}function ae(_){return _.replace(/'/g,"'").replace(/"/g,'"')}var ve=new Set(["template","style","script"]);function K(_,J){return he(_,J)&&!ve.has(_.fullName)}function he(_,J){return J.parser==="vue"&&_.type==="element"&&_.parent.type==="root"&&_.fullName.toLowerCase()!=="html"}function ye(_,J){return he(_,J)&&(K(_,J)||_.attrMap.lang&&_.attrMap.lang!=="html")}function Ce(_){let J=_.fullName;return J.charAt(0)==="#"||J==="slot-scope"||J==="v-slot"||J.startsWith("v-slot:")}function Ie(_,J){let ne=_.parent;if(!he(ne,J))return!1;let Ee=ne.fullName,We=_.fullName;return Ee==="script"&&We==="setup"||Ee==="style"&&We==="vars"}function Fe(_){let J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_.value;return _.parent.isWhitespaceSensitive?_.parent.isIndentationSensitive?o(J):o(pe(S(J)),r):i(u(a,B(J)))}function me(_,J){return he(_,J)&&_.name==="script"}n.exports={htmlTrim:T,htmlTrimPreserveIndentation:S,hasHtmlWhitespace:P,getLeadingAndTrailingHtmlWhitespace:k,canHaveInterpolation:E,countChars:de,countParents:ge,dedentString:pe,forceBreakChildren:$,forceBreakContent:j,forceNextEmptyLine:M,getLastDescendant:ee,getNodeCssStyleDisplay:Ne,getNodeCssStyleWhiteSpace:ke,hasPrettierIgnore:D,inferScriptParser:X,isVueCustomBlock:K,isVueNonHtmlBlock:ye,isVueScriptTag:me,isVueSlotAttribute:Ce,isVueSfcBindingsAttribute:Ie,isVueSfcBlock:he,isDanglingSpaceSensitiveNode:L,isIndentationSensitiveNode:N,isLeadingSpaceSensitiveNode:x,isPreLikeNode:le,isScriptLikeTag:l,isTextLikeNode:F,isTrailingSpaceSensitiveNode:b,isWhitespaceSensitiveNode:y,isUnknownNamespace:p,preferHardlineAsLeadingSpaces:V,preferHardlineAsTrailingSpaces:q,shouldPreserveContent:C,unescapeQuoteEntities:ae,getTextValueParts:Fe}}}),Yd=Z({"node_modules/angular-html-parser/lib/compiler/src/chars.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0}),e.$EOF=0,e.$BSPACE=8,e.$TAB=9,e.$LF=10,e.$VTAB=11,e.$FF=12,e.$CR=13,e.$SPACE=32,e.$BANG=33,e.$DQ=34,e.$HASH=35,e.$$=36,e.$PERCENT=37,e.$AMPERSAND=38,e.$SQ=39,e.$LPAREN=40,e.$RPAREN=41,e.$STAR=42,e.$PLUS=43,e.$COMMA=44,e.$MINUS=45,e.$PERIOD=46,e.$SLASH=47,e.$COLON=58,e.$SEMICOLON=59,e.$LT=60,e.$EQ=61,e.$GT=62,e.$QUESTION=63,e.$0=48,e.$7=55,e.$9=57,e.$A=65,e.$E=69,e.$F=70,e.$X=88,e.$Z=90,e.$LBRACKET=91,e.$BACKSLASH=92,e.$RBRACKET=93,e.$CARET=94,e.$_=95,e.$a=97,e.$b=98,e.$e=101,e.$f=102,e.$n=110,e.$r=114,e.$t=116,e.$u=117,e.$v=118,e.$x=120,e.$z=122,e.$LBRACE=123,e.$BAR=124,e.$RBRACE=125,e.$NBSP=160,e.$PIPE=124,e.$TILDA=126,e.$AT=64,e.$BT=96;function n(i){return i>=e.$TAB&&i<=e.$SPACE||i==e.$NBSP}e.isWhitespace=n;function t(i){return e.$0<=i&&i<=e.$9}e.isDigit=t;function s(i){return i>=e.$a&&i<=e.$z||i>=e.$A&&i<=e.$Z}e.isAsciiLetter=s;function a(i){return i>=e.$a&&i<=e.$f||i>=e.$A&&i<=e.$F||t(i)}e.isAsciiHexDigit=a;function r(i){return i===e.$LF||i===e.$CR}e.isNewLine=r;function u(i){return e.$0<=i&&i<=e.$7}e.isOctalDigit=u}}),Qd=Z({"node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=class{constructor(s,a,r){this.filePath=s,this.name=a,this.members=r}assertNoMembers(){if(this.members.length)throw new Error("Illegal state: symbol without members expected, but got ".concat(JSON.stringify(this),"."))}};e.StaticSymbol=n;var t=class{constructor(){this.cache=new Map}get(s,a,r){r=r||[];let u=r.length?".".concat(r.join(".")):"",i='"'.concat(s,'".').concat(a).concat(u),o=this.cache.get(i);return o||(o=new n(s,a,r),this.cache.set(i,o)),o}};e.StaticSymbolCache=t}}),Zd=Z({"node_modules/angular-html-parser/lib/compiler/src/util.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=/-+([a-z0-9])/g;function t(l){return l.replace(n,function(){for(var E=arguments.length,y=new Array(E),N=0;Nu(y,this,E))}visitStringMap(l,E){let y={};return Object.keys(l).forEach(N=>{y[N]=u(l[N],this,E)}),y}visitPrimitive(l,E){return l}visitOther(l,E){return l}};e.ValueTransformer=c,e.SyncAsync={assertSync:l=>{if(k(l))throw new Error("Illegal state: value cannot be a promise");return l},then:(l,E)=>k(l)?l.then(E):E(l),all:l=>l.some(k)?Promise.all(l):l};function v(l){throw new Error("Internal Error: ".concat(l))}e.error=v;function m(l,E){let y=Error(l);return y[d]=!0,E&&(y[p]=E),y}e.syntaxError=m;var d="ngSyntaxError",p="ngParseErrors";function f(l){return l[d]}e.isSyntaxError=f;function h(l){return l[p]||[]}e.getParseErrors=h;function w(l){return l.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}e.escapeRegExp=w;var T=Object.getPrototypeOf({});function A(l){return typeof l=="object"&&l!==null&&Object.getPrototypeOf(l)===T}function S(l){let E="";for(let y=0;y=55296&&N<=56319&&l.length>y+1){let x=l.charCodeAt(y+1);x>=56320&&x<=57343&&(y++,N=(N-55296<<10)+x-56320+65536)}N<=127?E+=String.fromCharCode(N):N<=2047?E+=String.fromCharCode(N>>6&31|192,N&63|128):N<=65535?E+=String.fromCharCode(N>>12|224,N>>6&63|128,N&63|128):N<=2097151&&(E+=String.fromCharCode(N>>18&7|240,N>>12&63|128,N>>6&63|128,N&63|128))}return E}e.utf8Encode=S;function B(l){if(typeof l=="string")return l;if(l instanceof Array)return"["+l.map(B).join(", ")+"]";if(l==null)return""+l;if(l.overriddenName)return"".concat(l.overriddenName);if(l.name)return"".concat(l.name);if(!l.toString)return"object";let E=l.toString();if(E==null)return""+E;let y=E.indexOf(` +`);return y===-1?E:E.substring(0,y)}e.stringify=B;function I(l){return typeof l=="function"&&l.hasOwnProperty("__forward_ref__")?l():l}e.resolveForwardRef=I;function k(l){return!!l&&typeof l.then=="function"}e.isPromise=k;var P=class{constructor(l){this.full=l;let E=l.split(".");this.major=E[0],this.minor=E[1],this.patch=E.slice(2).join(".")}};e.Version=P;var C=typeof window<"u"&&window,D=typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self,g=typeof globalThis<"u"&&globalThis,F=g||C||D;e.global=F}}),eg=Z({"node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Qd(),t=Zd(),s=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/;function a(y){return y.replace(/\W/g,"_")}e.sanitizeIdentifier=a;var r=0;function u(y){if(!y||!y.reference)return null;let N=y.reference;if(N instanceof n.StaticSymbol)return N.name;if(N.__anonymousType)return N.__anonymousType;let x=t.stringify(N);return x.indexOf("(")>=0?(x="anonymous_".concat(r++),N.__anonymousType=x):x=a(x),x}e.identifierName=u;function i(y){let N=y.reference;return N instanceof n.StaticSymbol?N.filePath:"./".concat(t.stringify(N))}e.identifierModuleUrl=i;function o(y,N){return"View_".concat(u({reference:y}),"_").concat(N)}e.viewClassName=o;function c(y){return"RenderType_".concat(u({reference:y}))}e.rendererTypeName=c;function v(y){return"HostView_".concat(u({reference:y}))}e.hostViewClassName=v;function m(y){return"".concat(u({reference:y}),"NgFactory")}e.componentFactoryName=m;var d;(function(y){y[y.Pipe=0]="Pipe",y[y.Directive=1]="Directive",y[y.NgModule=2]="NgModule",y[y.Injectable=3]="Injectable"})(d=e.CompileSummaryKind||(e.CompileSummaryKind={}));function p(y){return y.value!=null?a(y.value):u(y.identifier)}e.tokenName=p;function f(y){return y.identifier!=null?y.identifier.reference:y.value}e.tokenReference=f;var h=class{constructor(){let{moduleUrl:y,styles:N,styleUrls:x}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.moduleUrl=y||null,this.styles=k(N),this.styleUrls=k(x)}};e.CompileStylesheetMetadata=h;var w=class{constructor(y){let{encapsulation:N,template:x,templateUrl:b,htmlAst:L,styles:M,styleUrls:j,externalStylesheets:$,animations:V,ngContentSelectors:q,interpolation:Y,isInline:H,preserveWhitespaces:R}=y;if(this.encapsulation=N,this.template=x,this.templateUrl=b,this.htmlAst=L,this.styles=k(M),this.styleUrls=k(j),this.externalStylesheets=k($),this.animations=V?C(V):[],this.ngContentSelectors=q||[],Y&&Y.length!=2)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=Y,this.isInline=H,this.preserveWhitespaces=R}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};e.CompileTemplateMetadata=w;var T=class{static create(y){let{isHost:N,type:x,isComponent:b,selector:L,exportAs:M,changeDetection:j,inputs:$,outputs:V,host:q,providers:Y,viewProviders:H,queries:R,guards:Q,viewQueries:ee,entryComponents:te,template:oe,componentViewType:W,rendererType:X,componentFactory:ue}=y,De={},ie={},G={};q!=null&&Object.keys(q).forEach(le=>{let ge=q[le],Ae=le.match(s);Ae===null?G[le]=ge:Ae[1]!=null?ie[Ae[1]]=ge:Ae[2]!=null&&(De[Ae[2]]=ge)});let z={};$!=null&&$.forEach(le=>{let ge=t.splitAtColon(le,[le,le]);z[ge[0]]=ge[1]});let U={};return V!=null&&V.forEach(le=>{let ge=t.splitAtColon(le,[le,le]);U[ge[0]]=ge[1]}),new T({isHost:N,type:x,isComponent:!!b,selector:L,exportAs:M,changeDetection:j,inputs:z,outputs:U,hostListeners:De,hostProperties:ie,hostAttributes:G,providers:Y,viewProviders:H,queries:R,guards:Q,viewQueries:ee,entryComponents:te,template:oe,componentViewType:W,rendererType:X,componentFactory:ue})}constructor(y){let{isHost:N,type:x,isComponent:b,selector:L,exportAs:M,changeDetection:j,inputs:$,outputs:V,hostListeners:q,hostProperties:Y,hostAttributes:H,providers:R,viewProviders:Q,queries:ee,guards:te,viewQueries:oe,entryComponents:W,template:X,componentViewType:ue,rendererType:De,componentFactory:ie}=y;this.isHost=!!N,this.type=x,this.isComponent=b,this.selector=L,this.exportAs=M,this.changeDetection=j,this.inputs=$,this.outputs=V,this.hostListeners=q,this.hostProperties=Y,this.hostAttributes=H,this.providers=k(R),this.viewProviders=k(Q),this.queries=k(ee),this.guards=te,this.viewQueries=k(oe),this.entryComponents=k(W),this.template=X,this.componentViewType=ue,this.rendererType=De,this.componentFactory=ie}toSummary(){return{summaryKind:d.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}};e.CompileDirectiveMetadata=T;var A=class{constructor(y){let{type:N,name:x,pure:b}=y;this.type=N,this.name=x,this.pure=!!b}toSummary(){return{summaryKind:d.Pipe,type:this.type,name:this.name,pure:this.pure}}};e.CompilePipeMetadata=A;var S=class{};e.CompileShallowModuleMetadata=S;var B=class{constructor(y){let{type:N,providers:x,declaredDirectives:b,exportedDirectives:L,declaredPipes:M,exportedPipes:j,entryComponents:$,bootstrapComponents:V,importedModules:q,exportedModules:Y,schemas:H,transitiveModule:R,id:Q}=y;this.type=N||null,this.declaredDirectives=k(b),this.exportedDirectives=k(L),this.declaredPipes=k(M),this.exportedPipes=k(j),this.providers=k(x),this.entryComponents=k($),this.bootstrapComponents=k(V),this.importedModules=k(q),this.exportedModules=k(Y),this.schemas=k(H),this.id=Q||null,this.transitiveModule=R||null}toSummary(){let y=this.transitiveModule;return{summaryKind:d.NgModule,type:this.type,entryComponents:y.entryComponents,providers:y.providers,modules:y.modules,exportedDirectives:y.exportedDirectives,exportedPipes:y.exportedPipes}}};e.CompileNgModuleMetadata=B;var I=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(y,N){this.providers.push({provider:y,module:N})}addDirective(y){this.directivesSet.has(y.reference)||(this.directivesSet.add(y.reference),this.directives.push(y))}addExportedDirective(y){this.exportedDirectivesSet.has(y.reference)||(this.exportedDirectivesSet.add(y.reference),this.exportedDirectives.push(y))}addPipe(y){this.pipesSet.has(y.reference)||(this.pipesSet.add(y.reference),this.pipes.push(y))}addExportedPipe(y){this.exportedPipesSet.has(y.reference)||(this.exportedPipesSet.add(y.reference),this.exportedPipes.push(y))}addModule(y){this.modulesSet.has(y.reference)||(this.modulesSet.add(y.reference),this.modules.push(y))}addEntryComponent(y){this.entryComponentsSet.has(y.componentType)||(this.entryComponentsSet.add(y.componentType),this.entryComponents.push(y))}};e.TransitiveCompileNgModuleMetadata=I;function k(y){return y||[]}var P=class{constructor(y,N){let{useClass:x,useValue:b,useExisting:L,useFactory:M,deps:j,multi:$}=N;this.token=y,this.useClass=x||null,this.useValue=b,this.useExisting=L,this.useFactory=M||null,this.dependencies=j||null,this.multi=!!$}};e.ProviderMeta=P;function C(y){return y.reduce((N,x)=>{let b=Array.isArray(x)?C(x):x;return N.concat(b)},[])}e.flatten=C;function D(y){return y.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}function g(y,N,x){let b;return x.isInline?N.type.reference instanceof n.StaticSymbol?b="".concat(N.type.reference.filePath,".").concat(N.type.reference.name,".html"):b="".concat(u(y),"/").concat(u(N.type),".html"):b=x.templateUrl,N.type.reference instanceof n.StaticSymbol?b:D(b)}e.templateSourceUrl=g;function F(y,N){let x=y.moduleUrl.split(/\/\\/g),b=x[x.length-1];return D("css/".concat(N).concat(b,".ngstyle.js"))}e.sharedStylesheetJitUrl=F;function l(y){return D("".concat(u(y.type),"/module.ngfactory.js"))}e.ngModuleJitUrl=l;function E(y,N){return D("".concat(u(y),"/").concat(u(N.type),".ngfactory.js"))}e.templateJitUrl=E}}),tg=Z({"node_modules/angular-html-parser/lib/compiler/src/parse_util.js"(e){"use strict";re(),Object.defineProperty(e,"__esModule",{value:!0});var n=Yd(),t=eg(),s=class{constructor(v,m,d,p){this.file=v,this.offset=m,this.line=d,this.col=p}toString(){return this.offset!=null?"".concat(this.file.url,"@").concat(this.line,":").concat(this.col):this.file.url}moveBy(v){let m=this.file.content,d=m.length,p=this.offset,f=this.line,h=this.col;for(;p>0&&v<0;)if(p--,v++,m.charCodeAt(p)==n.$LF){f--;let T=m.substr(0,p-1).lastIndexOf(String.fromCharCode(n.$LF));h=T>0?p-T:p}else h--;for(;p0;){let w=m.charCodeAt(p);p++,v--,w==n.$LF?(f++,h=0):h++}return new s(this.file,p,f,h)}getContext(v,m){let d=this.file.content,p=this.offset;if(p!=null){p>d.length-1&&(p=d.length-1);let f=p,h=0,w=0;for(;h0&&(p--,h++,!(d[p]==` +`&&++w==m)););for(h=0,w=0;h2&&arguments[2]!==void 0?arguments[2]:null;this.start=v,this.end=m,this.details=d}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}};e.ParseSourceSpan=r,e.EMPTY_PARSE_LOCATION=new s(new a("",""),0,0,0),e.EMPTY_SOURCE_SPAN=new r(e.EMPTY_PARSE_LOCATION,e.EMPTY_PARSE_LOCATION);var u;(function(v){v[v.WARNING=0]="WARNING",v[v.ERROR=1]="ERROR"})(u=e.ParseErrorLevel||(e.ParseErrorLevel={}));var i=class{constructor(v,m){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:u.ERROR;this.span=v,this.msg=m,this.level=d}contextualMessage(){let v=this.span.start.getContext(100,3);return v?"".concat(this.msg,' ("').concat(v.before,"[").concat(u[this.level]," ->]").concat(v.after,'")'):this.msg}toString(){let v=this.span.details?", ".concat(this.span.details):"";return"".concat(this.contextualMessage(),": ").concat(this.span.start).concat(v)}};e.ParseError=i;function o(v,m){let d=t.identifierModuleUrl(m),p=d!=null?"in ".concat(v," ").concat(t.identifierName(m)," in ").concat(d):"in ".concat(v," ").concat(t.identifierName(m)),f=new a("",p);return new r(new s(f,-1,-1,-1),new s(f,-1,-1,-1))}e.typeSourceSpan=o;function c(v,m,d){let p="in ".concat(v," ").concat(m," in ").concat(d),f=new a("",p);return new r(new s(f,-1,-1,-1),new s(f,-1,-1,-1))}e.r3JitTypeSourceSpan=c}}),rg=Z({"src/language-html/print-preprocess.js"(e,n){"use strict";re();var{ParseSourceSpan:t}=tg(),{htmlTrim:s,getLeadingAndTrailingHtmlWhitespace:a,hasHtmlWhitespace:r,canHaveInterpolation:u,getNodeCssStyleDisplay:i,isDanglingSpaceSensitiveNode:o,isIndentationSensitiveNode:c,isLeadingSpaceSensitiveNode:v,isTrailingSpaceSensitiveNode:m,isWhitespaceSensitiveNode:d,isVueScriptTag:p}=qt(),f=[w,T,S,I,k,D,P,C,g,B,F];function h(l,E){for(let y of f)y(l,E);return l}function w(l){l.walk(E=>{if(E.type==="element"&&E.tagDefinition.ignoreFirstLf&&E.children.length>0&&E.children[0].type==="text"&&E.children[0].value[0]===` +`){let y=E.children[0];y.value.length===1?E.removeChild(y):y.value=y.value.slice(1)}})}function T(l){let E=y=>y.type==="element"&&y.prev&&y.prev.type==="ieConditionalStartComment"&&y.prev.sourceSpan.end.offset===y.startSourceSpan.start.offset&&y.firstChild&&y.firstChild.type==="ieConditionalEndComment"&&y.firstChild.sourceSpan.start.offset===y.startSourceSpan.end.offset;l.walk(y=>{if(y.children)for(let N=0;N{if(N.children)for(let x=0;xE.type==="cdata",E=>""))}function B(l){let E=y=>y.type==="element"&&y.attrs.length===0&&y.children.length===1&&y.firstChild.type==="text"&&!r(y.children[0].value)&&!y.firstChild.hasLeadingSpaces&&!y.firstChild.hasTrailingSpaces&&y.isLeadingSpaceSensitive&&!y.hasLeadingSpaces&&y.isTrailingSpaceSensitive&&!y.hasTrailingSpaces&&y.prev&&y.prev.type==="text"&&y.next&&y.next.type==="text";l.walk(y=>{if(y.children)for(let N=0;N")+x.firstChild.value+"")+L.value,b.sourceSpan=new t(b.sourceSpan.start,L.sourceSpan.end),b.isTrailingSpaceSensitive=L.isTrailingSpaceSensitive,b.hasTrailingSpaces=L.hasTrailingSpaces,y.removeChild(x),N--,y.removeChild(L)}})}function I(l,E){if(E.parser==="html")return;let y=/{{(.+?)}}/s;l.walk(N=>{if(!!u(N))for(let x of N.children){if(x.type!=="text")continue;let b=x.sourceSpan.start,L=null,M=x.value.split(y);for(let j=0;j0&&N.insertChildBefore(x,{type:"text",value:$,sourceSpan:new t(b,L)});continue}L=b.moveBy($.length+4),N.insertChildBefore(x,{type:"interpolation",sourceSpan:new t(b,L),children:$.length===0?[]:[{type:"text",value:$,sourceSpan:new t(b.moveBy(2),L.moveBy(-2))}]})}N.removeChild(x)}})}function k(l){l.walk(E=>{if(!E.children)return;if(E.children.length===0||E.children.length===1&&E.children[0].type==="text"&&s(E.children[0].value).length===0){E.hasDanglingSpaces=E.children.length>0,E.children=[];return}let y=d(E),N=c(E);if(!y)for(let x=0;x{E.isSelfClosing=!E.children||E.type==="element"&&(E.tagDefinition.isVoid||E.startSourceSpan===E.endSourceSpan)})}function C(l,E){l.walk(y=>{y.type==="element"&&(y.hasHtmComponentClosingTag=y.endSourceSpan&&/^<\s*\/\s*\/\s*>$/.test(E.originalText.slice(y.endSourceSpan.start.offset,y.endSourceSpan.end.offset)))})}function D(l,E){l.walk(y=>{y.cssDisplay=i(y,E)})}function g(l,E){l.walk(y=>{let{children:N}=y;if(!!N){if(N.length===0){y.isDanglingSpaceSensitive=o(y);return}for(let x of N)x.isLeadingSpaceSensitive=v(x,E),x.isTrailingSpaceSensitive=m(x,E);for(let x=0;xp(x,E));if(!y)return;let{lang:N}=y.attrMap;(N==="ts"||N==="typescript")&&(E.__should_parse_vue_template_with_ts=!0)}}n.exports=h}}),ng=Z({"src/language-html/pragma.js"(e,n){"use strict";re();function t(a){return/^\s*/.test(a)}function s(a){return` + +`+a.replace(/^\s*\n/,"")}n.exports={hasPragma:t,insertPragma:s}}}),Yn=Z({"src/language-html/loc.js"(e,n){"use strict";re();function t(a){return a.sourceSpan.start.offset}function s(a){return a.sourceSpan.end.offset}n.exports={locStart:t,locEnd:s}}}),er=Z({"src/language-html/print/tag.js"(e,n){"use strict";re();var t=Xt(),{isNonEmptyArray:s}=Ue(),{builders:{indent:a,join:r,line:u,softline:i,hardline:o},utils:{replaceTextEndOfLine:c}}=Oe(),{locStart:v,locEnd:m}=Yn(),{isTextLikeNode:d,getLastDescendant:p,isPreLikeNode:f,hasPrettierIgnore:h,shouldPreserveContent:w,isVueSfcBlock:T}=qt();function A(q,Y){return[q.isSelfClosing?"":S(q,Y),B(q,Y)]}function S(q,Y){return q.lastChild&&l(q.lastChild)?"":[I(q,Y),P(q,Y)]}function B(q,Y){return(q.next?g(q.next):F(q.parent))?"":[C(q,Y),k(q,Y)]}function I(q,Y){return F(q)?C(q.lastChild,Y):""}function k(q,Y){return l(q)?P(q.parent,Y):E(q)?$(q.next):""}function P(q,Y){if(t(!q.isSelfClosing),D(q,Y))return"";switch(q.type){case"ieConditionalComment":return"";case"ieConditionalStartComment":return"]>";case"interpolation":return"}}";case"element":if(q.isSelfClosing)return"/>";default:return">"}}function D(q,Y){return!q.isSelfClosing&&!q.endSourceSpan&&(h(q)||w(q.parent,Y))}function g(q){return q.prev&&q.prev.type!=="docType"&&!d(q.prev)&&q.isLeadingSpaceSensitive&&!q.hasLeadingSpaces}function F(q){return q.lastChild&&q.lastChild.isTrailingSpaceSensitive&&!q.lastChild.hasTrailingSpaces&&!d(p(q.lastChild))&&!f(q)}function l(q){return!q.next&&!q.hasTrailingSpaces&&q.isTrailingSpaceSensitive&&d(p(q))}function E(q){return q.next&&!d(q.next)&&d(q)&&q.isTrailingSpaceSensitive&&!q.hasTrailingSpaces}function y(q){let Y=q.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/s);return Y?Y[1]?Y[1].split(/\s+/):!0:!1}function N(q){return!q.prev&&q.isLeadingSpaceSensitive&&!q.hasLeadingSpaces}function x(q,Y,H){let R=q.getValue();if(!s(R.attrs))return R.isSelfClosing?" ":"";let Q=R.prev&&R.prev.type==="comment"&&y(R.prev.value),ee=typeof Q=="boolean"?()=>Q:Array.isArray(Q)?De=>Q.includes(De.rawName):()=>!1,te=q.map(De=>{let ie=De.getValue();return ee(ie)?c(Y.originalText.slice(v(ie),m(ie))):H()},"attrs"),oe=R.type==="element"&&R.fullName==="script"&&R.attrs.length===1&&R.attrs[0].fullName==="src"&&R.children.length===0,X=Y.singleAttributePerLine&&R.attrs.length>1&&!T(R,Y)?o:u,ue=[a([oe?" ":u,r(X,te)])];return R.firstChild&&N(R.firstChild)||R.isSelfClosing&&F(R.parent)||oe?ue.push(R.isSelfClosing?" ":""):ue.push(Y.bracketSameLine?R.isSelfClosing?" ":"":R.isSelfClosing?u:i),ue}function b(q){return q.firstChild&&N(q.firstChild)?"":V(q)}function L(q,Y,H){let R=q.getValue();return[M(R,Y),x(q,Y,H),R.isSelfClosing?"":b(R)]}function M(q,Y){return q.prev&&E(q.prev)?"":[j(q,Y),$(q)]}function j(q,Y){return N(q)?V(q.parent):g(q)?C(q.prev,Y):""}function $(q){switch(q.type){case"ieConditionalComment":case"ieConditionalStartComment":return"<").concat(q.rawName);default:return"<".concat(q.rawName)}}function V(q){switch(t(!q.isSelfClosing),q.type){case"ieConditionalComment":return"]>";case"element":if(q.condition)return">";default:return">"}}n.exports={printClosingTag:A,printClosingTagStart:S,printClosingTagStartMarker:P,printClosingTagEndMarker:C,printClosingTagSuffix:k,printClosingTagEnd:B,needsToBorrowLastChildClosingTagEndMarker:F,needsToBorrowParentClosingTagStartMarker:l,needsToBorrowPrevClosingTagEndMarker:g,printOpeningTag:L,printOpeningTagStart:M,printOpeningTagPrefix:j,printOpeningTagStartMarker:$,printOpeningTagEndMarker:V,needsToBorrowNextOpeningTagStartMarker:E,needsToBorrowParentOpeningTagEndMarker:N}}}),ug=Z({"node_modules/parse-srcset/src/parse-srcset.js"(e,n){re(),function(t,s){typeof define=="function"&&define.amd?define([],s):typeof n=="object"&&n.exports?n.exports=s():t.parseSrcset=s()}(e,function(){return function(t,s){var a=s&&s.logger||console;function r(P){return P===" "||P===" "||P===` +`||P==="\f"||P==="\r"}function u(P){var C,D=P.exec(t.substring(S));if(D)return C=D[0],S+=C.length,C}for(var i=t.length,o=/^[ \t\n\r\u000c]+/,c=/^[, \t\n\r\u000c]+/,v=/^[^ \t\n\r\u000c]+/,m=/[,]+$/,d=/^\d+$/,p=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,f,h,w,T,A,S=0,B=[];;){if(u(c),S>=i)return B;f=u(v),h=[],f.slice(-1)===","?(f=f.replace(m,""),k()):I()}function I(){for(u(o),w="",T="in descriptor";;){if(A=t.charAt(S),T==="in descriptor")if(r(A))w&&(h.push(w),w="",T="after descriptor");else if(A===","){S+=1,w&&h.push(w),k();return}else if(A==="(")w=w+A,T="in parens";else if(A===""){w&&h.push(w),k();return}else w=w+A;else if(T==="in parens")if(A===")")w=w+A,T="in descriptor";else if(A===""){h.push(w),k();return}else w=w+A;else if(T==="after descriptor"&&!r(A))if(A===""){k();return}else T="in descriptor",S-=1;S+=1}}function k(){var P=!1,C,D,g,F,l={},E,y,N,x,b;for(F=0;F{let{w:k}=I;return k}),m=c.some(I=>{let{h:k}=I;return k}),d=c.some(I=>{let{d:k}=I;return k});if(v+m+d>1)throw new Error("Mixed descriptor in srcset is not supported");let p=v?"w":m?"h":"d",f=v?"w":m?"h":"x",h=I=>Math.max(...I),w=c.map(I=>I.url),T=h(w.map(I=>I.length)),A=c.map(I=>I[p]).map(I=>I?I.toString():""),S=A.map(I=>{let k=I.indexOf(".");return k===-1?I.length:k}),B=h(S);return a([",",r],w.map((I,k)=>{let P=[I],C=A[k];if(C){let D=T-I.length+1,g=B-S[k],F=" ".repeat(D+g);P.push(s(F," "),C+f)}return P}))}function i(o){return o.trim().split(/\s+/).join(" ")}n.exports={printImgSrcset:u,printClassNames:i}}}),ig=Z({"src/language-html/syntax-vue.js"(e,n){"use strict";re();var{builders:{group:t}}=Oe();function s(i,o){let{left:c,operator:v,right:m}=a(i);return[t(o("function _(".concat(c,") {}"),{parser:"babel",__isVueForBindingLeft:!0}))," ",v," ",o(m,{parser:"__js_expression"},{stripTrailingHardline:!0})]}function a(i){let o=/(.*?)\s+(in|of)\s+(.*)/s,c=/,([^,\]}]*)(?:,([^,\]}]*))?$/,v=/^\(|\)$/g,m=i.match(o);if(!m)return;let d={};if(d.for=m[3].trim(),!d.for)return;let p=m[1].trim().replace(v,""),f=p.match(c);f?(d.alias=p.replace(c,""),d.iterator1=f[1].trim(),f[2]&&(d.iterator2=f[2].trim())):d.alias=p;let h=[d.alias,d.iterator1,d.iterator2];if(!h.some((w,T)=>!w&&(T===0||h.slice(T+1).some(Boolean))))return{left:h.filter(Boolean).join(","),operator:m[2],right:d.for}}function r(i,o){return o("function _(".concat(i,") {}"),{parser:"babel",__isVueBindings:!0})}function u(i){let o=/^(?:[\w$]+|\([^)]*\))\s*=>|^function\s*\(/,c=/^[$A-Z_a-z][\w$]*(?:\.[$A-Z_a-z][\w$]*|\['[^']*']|\["[^"]*"]|\[\d+]|\[[$A-Z_a-z][\w$]*])*$/,v=i.trim();return o.test(v)||c.test(v)}n.exports={isVueEventBindingExpression:u,printVueFor:s,printVueBindings:r}}}),ho=Z({"src/language-html/get-node-content.js"(e,n){"use strict";re();var{needsToBorrowParentClosingTagStartMarker:t,printClosingTagStartMarker:s,needsToBorrowLastChildClosingTagEndMarker:a,printClosingTagEndMarker:r,needsToBorrowParentOpeningTagEndMarker:u,printOpeningTagEndMarker:i}=er();function o(c,v){let m=c.startSourceSpan.end.offset;c.firstChild&&u(c.firstChild)&&(m-=i(c).length);let d=c.endSourceSpan.start.offset;return c.lastChild&&t(c.lastChild)?d+=s(c,v).length:a(c)&&(d-=r(c.lastChild,v).length),v.originalText.slice(m,d)}n.exports=o}}),ag=Z({"src/language-html/embed.js"(e,n){"use strict";re();var{builders:{breakParent:t,group:s,hardline:a,indent:r,line:u,fill:i,softline:o},utils:{mapDoc:c,replaceTextEndOfLine:v}}=Oe(),m=Xn(),{printClosingTag:d,printClosingTagSuffix:p,needsToBorrowPrevClosingTagEndMarker:f,printOpeningTagPrefix:h,printOpeningTag:w}=er(),{printImgSrcset:T,printClassNames:A}=sg(),{printVueFor:S,printVueBindings:B,isVueEventBindingExpression:I}=ig(),{isScriptLikeTag:k,isVueNonHtmlBlock:P,inferScriptParser:C,htmlTrimPreserveIndentation:D,dedentString:g,unescapeQuoteEntities:F,isVueSlotAttribute:l,isVueSfcBindingsAttribute:E,getTextValueParts:y}=qt(),N=ho();function x(L,M,j){let $=te=>new RegExp(te.join("|")).test(L.fullName),V=()=>F(L.value),q=!1,Y=(te,oe)=>{let W=te.type==="NGRoot"?te.node.type==="NGMicrosyntax"&&te.node.body.length===1&&te.node.body[0].type==="NGMicrosyntaxExpression"?te.node.body[0].expression:te.node:te.type==="JsExpressionRoot"?te.node:te;W&&(W.type==="ObjectExpression"||W.type==="ArrayExpression"||oe.parser==="__vue_expression"&&(W.type==="TemplateLiteral"||W.type==="StringLiteral"))&&(q=!0)},H=te=>s(te),R=function(te){let oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return s([r([o,te]),oe?o:""])},Q=te=>q?H(te):R(te),ee=(te,oe)=>M(te,Object.assign({__onHtmlBindingRoot:Y,__embeddedInHtml:!0},oe));if(L.fullName==="srcset"&&(L.parent.fullName==="img"||L.parent.fullName==="source"))return R(T(V()));if(L.fullName==="class"&&!j.parentParser){let te=V();if(!te.includes("{{"))return A(te)}if(L.fullName==="style"&&!j.parentParser){let te=V();if(!te.includes("{{"))return R(ee(te,{parser:"css",__isHTMLStyleAttribute:!0}))}if(j.parser==="vue"){if(L.fullName==="v-for")return S(V(),ee);if(l(L)||E(L,j))return B(V(),ee);let te=["^@","^v-on:"],oe=["^:","^v-bind:"],W=["^v-"];if($(te)){let X=V(),ue=I(X)?"__js_expression":j.__should_parse_vue_template_with_ts?"__vue_ts_event_binding":"__vue_event_binding";return Q(ee(X,{parser:ue}))}if($(oe))return Q(ee(V(),{parser:"__vue_expression"}));if($(W))return Q(ee(V(),{parser:"__js_expression"}))}if(j.parser==="angular"){let te=(G,z)=>ee(G,Object.assign(Object.assign({},z),{},{trailingComma:"none"})),oe=["^\\*"],W=["^\\(.+\\)$","^on-"],X=["^\\[.+\\]$","^bind(on)?-","^ng-(if|show|hide|class|style)$"],ue=["^i18n(-.+)?$"];if($(W))return Q(te(V(),{parser:"__ng_action"}));if($(X))return Q(te(V(),{parser:"__ng_binding"}));if($(ue)){let G=V().trim();return R(i(y(L,G)),!G.includes("@@"))}if($(oe))return Q(te(V(),{parser:"__ng_directive"}));let De=/{{(.+?)}}/s,ie=V();if(De.test(ie)){let G=[];for(let[z,U]of ie.split(De).entries())if(z%2===0)G.push(v(U));else try{G.push(s(["{{",r([u,te(U,{parser:"__ng_interpolation",__isInHtmlInterpolation:!0})]),u,"}}"]))}catch{G.push("{{",v(U),"}}")}return s(G)}}return null}function b(L,M,j,$){let V=L.getValue();switch(V.type){case"element":{if(k(V)||V.type==="interpolation")return;if(!V.isSelfClosing&&P(V,$)){let q=C(V,$);if(!q)return;let Y=N(V,$),H=/^\s*$/.test(Y),R="";return H||(R=j(D(Y),{parser:q,__embeddedInHtml:!0},{stripTrailingHardline:!0}),H=R===""),[h(V,$),s(w(L,$,M)),H?"":a,R,H?"":a,d(V,$),p(V,$)]}break}case"text":{if(k(V.parent)){let q=C(V.parent,$);if(q){let Y=q==="markdown"?g(V.value.replace(/^[^\S\n]*\n/,"")):V.value,H={parser:q,__embeddedInHtml:!0};if($.parser==="html"&&q==="babel"){let R="script",{attrMap:Q}=V.parent;Q&&(Q.type==="module"||Q.type==="text/babel"&&Q["data-type"]==="module")&&(R="module"),H.__babelSourceType=R}return[t,h(V,$),j(Y,H,{stripTrailingHardline:!0}),p(V,$)]}}else if(V.parent.type==="interpolation"){let q={__isInHtmlInterpolation:!0,__embeddedInHtml:!0};return $.parser==="angular"?(q.parser="__ng_interpolation",q.trailingComma="none"):$.parser==="vue"?q.parser=$.__should_parse_vue_template_with_ts?"__vue_ts_expression":"__vue_expression":q.parser="__js_expression",[r([u,j(V.value,q,{stripTrailingHardline:!0})]),V.parent.next&&f(V.parent.next)?" ":u]}break}case"attribute":{if(!V.value)break;if(/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test($.originalText.slice(V.valueSpan.start.offset,V.valueSpan.end.offset)))return[V.rawName,"=",V.value];if($.parser==="lwc"&&/^{.*}$/s.test($.originalText.slice(V.valueSpan.start.offset,V.valueSpan.end.offset)))return[V.rawName,"=",V.value];let q=x(V,(Y,H)=>j(Y,Object.assign({__isInHtmlAttribute:!0,__embeddedInHtml:!0},H),{stripTrailingHardline:!0}),$);if(q)return[V.rawName,'="',s(c(q,Y=>typeof Y=="string"?Y.replace(/"/g,"""):Y)),'"'];break}case"front-matter":return m(V,j)}}n.exports=b}}),vo=Z({"src/language-html/print/children.js"(e,n){"use strict";re();var{builders:{breakParent:t,group:s,ifBreak:a,line:r,softline:u,hardline:i},utils:{replaceTextEndOfLine:o}}=Oe(),{locStart:c,locEnd:v}=Yn(),{forceBreakChildren:m,forceNextEmptyLine:d,isTextLikeNode:p,hasPrettierIgnore:f,preferHardlineAsLeadingSpaces:h}=qt(),{printOpeningTagPrefix:w,needsToBorrowNextOpeningTagStartMarker:T,printOpeningTagStartMarker:A,needsToBorrowPrevClosingTagEndMarker:S,printClosingTagEndMarker:B,printClosingTagSuffix:I,needsToBorrowParentClosingTagStartMarker:k}=er();function P(g,F,l){let E=g.getValue();return f(E)?[w(E,F),...o(F.originalText.slice(c(E)+(E.prev&&T(E.prev)?A(E).length:0),v(E)-(E.next&&S(E.next)?B(E,F).length:0))),I(E,F)]:l()}function C(g,F){return p(g)&&p(F)?g.isTrailingSpaceSensitive?g.hasTrailingSpaces?h(F)?i:r:"":h(F)?i:u:T(g)&&(f(F)||F.firstChild||F.isSelfClosing||F.type==="element"&&F.attrs.length>0)||g.type==="element"&&g.isSelfClosing&&S(F)?"":!F.isLeadingSpaceSensitive||h(F)||S(F)&&g.lastChild&&k(g.lastChild)&&g.lastChild.lastChild&&k(g.lastChild.lastChild)?i:F.hasLeadingSpaces?r:u}function D(g,F,l){let E=g.getValue();if(m(E))return[t,...g.map(N=>{let x=N.getValue(),b=x.prev?C(x.prev,x):"";return[b?[b,d(x.prev)?i:""]:"",P(N,F,l)]},"children")];let y=E.children.map(()=>Symbol(""));return g.map((N,x)=>{let b=N.getValue();if(p(b)){if(b.prev&&p(b.prev)){let Y=C(b.prev,b);if(Y)return d(b.prev)?[i,i,P(N,F,l)]:[Y,P(N,F,l)]}return P(N,F,l)}let L=[],M=[],j=[],$=[],V=b.prev?C(b.prev,b):"",q=b.next?C(b,b.next):"";return V&&(d(b.prev)?L.push(i,i):V===i?L.push(i):p(b.prev)?M.push(V):M.push(a("",u,{groupId:y[x-1]}))),q&&(d(b)?p(b.next)&&$.push(i,i):q===i?p(b.next)&&$.push(i):j.push(q)),[...L,s([...M,s([P(N,F,l),...j],{id:y[x]})]),...$]},"children")}n.exports={printChildren:D}}}),og=Z({"src/language-html/print/element.js"(e,n){"use strict";re();var{builders:{breakParent:t,dedentToRoot:s,group:a,ifBreak:r,indentIfBreak:u,indent:i,line:o,softline:c},utils:{replaceTextEndOfLine:v}}=Oe(),m=ho(),{shouldPreserveContent:d,isScriptLikeTag:p,isVueCustomBlock:f,countParents:h,forceBreakContent:w}=qt(),{printOpeningTagPrefix:T,printOpeningTag:A,printClosingTagSuffix:S,printClosingTag:B,needsToBorrowPrevClosingTagEndMarker:I,needsToBorrowLastChildClosingTagEndMarker:k}=er(),{printChildren:P}=vo();function C(D,g,F){let l=D.getValue();if(d(l,g))return[T(l,g),a(A(D,g,F)),...v(m(l,g)),...B(l,g),S(l,g)];let E=l.children.length===1&&l.firstChild.type==="interpolation"&&l.firstChild.isLeadingSpaceSensitive&&!l.firstChild.hasLeadingSpaces&&l.lastChild.isTrailingSpaceSensitive&&!l.lastChild.hasTrailingSpaces,y=Symbol("element-attr-group-id"),N=M=>a([a(A(D,g,F),{id:y}),M,B(l,g)]),x=M=>E?u(M,{groupId:y}):(p(l)||f(l,g))&&l.parent.type==="root"&&g.parser==="vue"&&!g.vueIndentScriptAndStyle?M:i(M),b=()=>E?r(c,"",{groupId:y}):l.firstChild.hasLeadingSpaces&&l.firstChild.isLeadingSpaceSensitive?o:l.firstChild.type==="text"&&l.isWhitespaceSensitive&&l.isIndentationSensitive?s(c):c,L=()=>(l.next?I(l.next):k(l.parent))?l.lastChild.hasTrailingSpaces&&l.lastChild.isTrailingSpaceSensitive?" ":"":E?r(c,"",{groupId:y}):l.lastChild.hasTrailingSpaces&&l.lastChild.isTrailingSpaceSensitive?o:(l.lastChild.type==="comment"||l.lastChild.type==="text"&&l.isWhitespaceSensitive&&l.isIndentationSensitive)&&new RegExp("\\n[\\t ]{".concat(g.tabWidth*h(D,j=>j.parent&&j.parent.type!=="root"),"}$")).test(l.lastChild.value)?"":c;return l.children.length===0?N(l.hasDanglingSpaces&&l.isDanglingSpaceSensitive?o:""):N([w(l)?t:"",x([b(),P(D,g,F)]),L()])}n.exports={printElement:C}}}),lg=Z({"src/language-html/printer-html.js"(e,n){"use strict";re();var{builders:{fill:t,group:s,hardline:a,literalline:r},utils:{cleanDoc:u,getDocParts:i,isConcat:o,replaceTextEndOfLine:c}}=Oe(),v=zd(),{countChars:m,unescapeQuoteEntities:d,getTextValueParts:p}=qt(),f=rg(),{insertPragma:h}=ng(),{locStart:w,locEnd:T}=Yn(),A=ag(),{printClosingTagSuffix:S,printClosingTagEnd:B,printOpeningTagPrefix:I,printOpeningTagStart:k}=er(),{printElement:P}=og(),{printChildren:C}=vo();function D(g,F,l){let E=g.getValue();switch(E.type){case"front-matter":return c(E.raw);case"root":return F.__onHtmlRoot&&F.__onHtmlRoot(E),[s(C(g,F,l)),a];case"element":case"ieConditionalComment":return P(g,F,l);case"ieConditionalStartComment":case"ieConditionalEndComment":return[k(E),B(E)];case"interpolation":return[k(E,F),...g.map(l,"children"),B(E,F)];case"text":{if(E.parent.type==="interpolation"){let N=/\n[^\S\n]*$/,x=N.test(E.value),b=x?E.value.replace(N,""):E.value;return[...c(b),x?a:""]}let y=u([I(E,F),...p(E),S(E,F)]);return o(y)||y.type==="fill"?t(i(y)):y}case"docType":return[s([k(E,F)," ",E.value.replace(/^html\b/i,"html").replace(/\s+/g," ")]),B(E,F)];case"comment":return[I(E,F),...c(F.originalText.slice(w(E),T(E)),r),S(E,F)];case"attribute":{if(E.value===null)return E.rawName;let y=d(E.value),N=m(y,"'"),x=m(y,'"'),b=N({name:"Angular",since:"1.15.0",parsers:["angular"],vscodeLanguageIds:["html"],extensions:[".component.html"],filenames:[]})),t(xn(),o=>({since:"1.15.0",parsers:["html"],vscodeLanguageIds:["html"],extensions:[...o.extensions,".mjml"]})),t(xn(),()=>({name:"Lightning Web Components",since:"1.17.0",parsers:["lwc"],vscodeLanguageIds:["html"],extensions:[],filenames:[]})),t(fg(),()=>({since:"1.10.0",parsers:["vue"],vscodeLanguageIds:["vue"]}))],i={html:s};n.exports={languages:u,printers:i,options:a,parsers:r}}}),mg=Z({"src/language-yaml/pragma.js"(e,n){"use strict";re();function t(r){return/^\s*@(?:prettier|format)\s*$/.test(r)}function s(r){return/^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/.test(r)}function a(r){return`# @format + +`.concat(r)}n.exports={isPragma:t,hasPragma:s,insertPragma:a}}}),dg=Z({"src/language-yaml/loc.js"(e,n){"use strict";re();function t(a){return a.position.start.offset}function s(a){return a.position.end.offset}n.exports={locStart:t,locEnd:s}}}),gg=Z({"src/language-yaml/embed.js"(e,n){"use strict";re();function t(s,a,r,u){if(s.getValue().type==="root"&&u.filepath&&/(?:[/\\]|^)\.(?:prettier|stylelint)rc$/.test(u.filepath))return r(u.originalText,Object.assign(Object.assign({},u),{},{parser:"json"}))}n.exports=t}}),Mt=Z({"src/language-yaml/utils.js"(e,n){"use strict";re();var{getLast:t,isNonEmptyArray:s}=Ue();function a(C,D){let g=0,F=C.stack.length-1;for(let l=0;lu(F,D,C))}):C,g)}function i(C,D,g){Object.defineProperty(C,D,{get:g,enumerable:!1})}function o(C,D){let g=0,F=D.length;for(let l=C.position.end.offset-1;lE===0&&E===y.length-1?l:E!==0&&E!==y.length-1?l.trim():E===0?l.trimEnd():l.trimStart());return g.proseWrap==="preserve"?F.map(l=>l.length===0?[]:[l]):F.map(l=>l.length===0?[]:B(l)).reduce((l,E,y)=>y!==0&&F[y-1].length>0&&E.length>0&&!(C==="quoteDouble"&&t(t(l)).endsWith("\\"))?[...l.slice(0,-1),[...t(l),...E]]:[...l,E],[]).map(l=>g.proseWrap==="never"?[l.join(" ")]:l)}function k(C,D){let{parentIndent:g,isLastDescendant:F,options:l}=D,E=C.position.start.line===C.position.end.line?"":l.originalText.slice(C.position.start.offset,C.position.end.offset).match(/^[^\n]*\n(.*)$/s)[1],y;if(C.indent===null){let b=E.match(/^(? *)[^\n\r ]/m);y=b?b.groups.leadingSpace.length:Number.POSITIVE_INFINITY}else y=C.indent-1+g;let N=E.split(` +`).map(b=>b.slice(y));if(l.proseWrap==="preserve"||C.type==="blockLiteral")return x(N.map(b=>b.length===0?[]:[b]));return x(N.map(b=>b.length===0?[]:B(b)).reduce((b,L,M)=>M!==0&&N[M-1].length>0&&L.length>0&&!/^\s/.test(L[0])&&!/^\s|\s$/.test(t(b))?[...b.slice(0,-1),[...t(b),...L]]:[...b,L],[]).map(b=>b.reduce((L,M)=>L.length>0&&/\s$/.test(t(L))?[...L.slice(0,-1),t(L)+" "+M]:[...L,M],[])).map(b=>l.proseWrap==="never"?[b.join(" ")]:b));function x(b){if(C.chomping==="keep")return t(b).length===0?b.slice(0,-1):b;let L=0;for(let M=b.length-1;M>=0&&b[M].length===0;M--)L++;return L===0?b:L>=2&&!F?b.slice(0,-(L-1)):b.slice(0,-L)}}function P(C){if(!C)return!0;switch(C.type){case"plain":case"quoteDouble":case"quoteSingle":case"alias":case"flowMapping":case"flowSequence":return!0;default:return!1}}n.exports={getLast:t,getAncestorCount:a,isNode:r,isEmptyNode:p,isInlineNode:P,mapNode:u,defineShortcut:i,isNextLineEmpty:o,isLastDescendantNode:c,getBlockValueLineContents:k,getFlowScalarLineContents:I,getLastDescendantNode:v,hasPrettierIgnore:d,hasLeadingComments:h,hasMiddleComments:w,hasIndicatorComment:T,hasTrailingComment:A,hasEndComments:S}}}),yg=Z({"src/language-yaml/print-preprocess.js"(e,n){"use strict";re();var{defineShortcut:t,mapNode:s}=Mt();function a(u){return s(u,r)}function r(u){switch(u.type){case"document":t(u,"head",()=>u.children[0]),t(u,"body",()=>u.children[1]);break;case"documentBody":case"sequenceItem":case"flowSequenceItem":case"mappingKey":case"mappingValue":t(u,"content",()=>u.children[0]);break;case"mappingItem":case"flowMappingItem":t(u,"key",()=>u.children[0]),t(u,"value",()=>u.children[1]);break}return u}n.exports=a}}),jr=Z({"src/language-yaml/print/misc.js"(e,n){"use strict";re();var{builders:{softline:t,align:s}}=Oe(),{hasEndComments:a,isNextLineEmpty:r,isNode:u}=Mt(),i=new WeakMap;function o(m,d){let p=m.getValue(),f=m.stack[0],h;return i.has(f)?h=i.get(f):(h=new Set,i.set(f,h)),!h.has(p.position.end.line)&&(h.add(p.position.end.line),r(p,d)&&!c(m.getParentNode()))?t:""}function c(m){return a(m)&&!u(m,["documentHead","documentBody","flowMapping","flowSequence"])}function v(m,d){return s(" ".repeat(m),d)}n.exports={alignWithSpaces:v,shouldPrintEndComments:c,printNextEmptyLine:o}}}),hg=Z({"src/language-yaml/print/flow-mapping-sequence.js"(e,n){"use strict";re();var{builders:{ifBreak:t,line:s,softline:a,hardline:r,join:u}}=Oe(),{isEmptyNode:i,getLast:o,hasEndComments:c}=Mt(),{printNextEmptyLine:v,alignWithSpaces:m}=jr();function d(f,h,w){let T=f.getValue(),A=T.type==="flowMapping",S=A?"{":"[",B=A?"}":"]",I=a;A&&T.children.length>0&&w.bracketSpacing&&(I=s);let k=o(T.children),P=k&&k.type==="flowMappingItem"&&i(k.key)&&i(k.value);return[S,m(w.tabWidth,[I,p(f,h,w),w.trailingComma==="none"?"":t(","),c(T)?[r,u(r,f.map(h,"endComments"))]:""]),P?"":I,B]}function p(f,h,w){let T=f.getValue();return f.map((S,B)=>[h(),B===T.children.length-1?"":[",",s,T.children[B].position.start.line!==T.children[B+1].position.start.line?v(S,w.originalText):""]],"children")}n.exports={printFlowMapping:d,printFlowSequence:d}}}),vg=Z({"src/language-yaml/print/mapping-item.js"(e,n){"use strict";re();var{builders:{conditionalGroup:t,group:s,hardline:a,ifBreak:r,join:u,line:i}}=Oe(),{hasLeadingComments:o,hasMiddleComments:c,hasTrailingComment:v,hasEndComments:m,isNode:d,isEmptyNode:p,isInlineNode:f}=Mt(),{alignWithSpaces:h}=jr();function w(B,I,k,P,C){let{key:D,value:g}=B,F=p(D),l=p(g);if(F&&l)return": ";let E=P("key"),y=A(B)?" ":"";if(l)return B.type==="flowMappingItem"&&I.type==="flowMapping"?E:B.type==="mappingItem"&&T(D.content,C)&&!v(D.content)&&(!I.tag||I.tag.value!=="tag:yaml.org,2002:set")?[E,y,":"]:["? ",h(2,E)];let N=P("value");if(F)return[": ",h(2,N)];if(o(g)||!f(D.content))return["? ",h(2,E),a,u("",k.map(P,"value","leadingComments").map($=>[$,a])),": ",h(2,N)];if(S(D.content)&&!o(D.content)&&!c(D.content)&&!v(D.content)&&!m(D)&&!o(g.content)&&!c(g.content)&&!m(g)&&T(g.content,C))return[E,y,": ",N];let x=Symbol("mappingKey"),b=s([r("? "),s(h(2,E),{id:x})]),L=[a,": ",h(2,N)],M=[y,":"];o(g.content)||m(g)&&g.content&&!d(g.content,["mapping","sequence"])||I.type==="mapping"&&v(D.content)&&f(g.content)||d(g.content,["mapping","sequence"])&&g.content.tag===null&&g.content.anchor===null?M.push(a):g.content&&M.push(i),M.push(N);let j=h(C.tabWidth,M);return T(D.content,C)&&!o(D.content)&&!c(D.content)&&!m(D)?t([[E,j]]):t([[b,r(L,j,{groupId:x})]])}function T(B,I){if(!B)return!0;switch(B.type){case"plain":case"quoteSingle":case"quoteDouble":break;case"alias":return!0;default:return!1}if(I.proseWrap==="preserve")return B.position.start.line===B.position.end.line;if(/\\$/m.test(I.originalText.slice(B.position.start.offset,B.position.end.offset)))return!1;switch(I.proseWrap){case"never":return!B.value.includes(` +`);case"always":return!/[\n ]/.test(B.value);default:return!1}}function A(B){return B.key.content&&B.key.content.type==="alias"}function S(B){if(!B)return!0;switch(B.type){case"plain":case"quoteDouble":case"quoteSingle":return B.position.start.line===B.position.end.line;case"alias":return!0;default:return!1}}n.exports=w}}),Cg=Z({"src/language-yaml/print/block.js"(e,n){"use strict";re();var{builders:{dedent:t,dedentToRoot:s,fill:a,hardline:r,join:u,line:i,literalline:o,markAsRoot:c},utils:{getDocParts:v}}=Oe(),{getAncestorCount:m,getBlockValueLineContents:d,hasIndicatorComment:p,isLastDescendantNode:f,isNode:h}=Mt(),{alignWithSpaces:w}=jr();function T(A,S,B){let I=A.getValue(),k=m(A,F=>h(F,["sequence","mapping"])),P=f(A),C=[I.type==="blockFolded"?">":"|"];I.indent!==null&&C.push(I.indent.toString()),I.chomping!=="clip"&&C.push(I.chomping==="keep"?"+":"-"),p(I)&&C.push(" ",S("indicatorComment"));let D=d(I,{parentIndent:k,isLastDescendant:P,options:B}),g=[];for(let[F,l]of D.entries())F===0&&g.push(r),g.push(a(v(u(i,l)))),F!==D.length-1?g.push(l.length===0?r:c(o)):I.chomping==="keep"&&P&&g.push(s(l.length===0?r:o));return I.indent===null?C.push(t(w(B.tabWidth,g))):C.push(s(w(I.indent-1+k,g))),C}n.exports=T}}),Eg=Z({"src/language-yaml/printer-yaml.js"(e,n){"use strict";re();var{builders:{breakParent:t,fill:s,group:a,hardline:r,join:u,line:i,lineSuffix:o,literalline:c},utils:{getDocParts:v,replaceTextEndOfLine:m}}=Oe(),{isPreviousLineEmpty:d}=Ue(),{insertPragma:p,isPragma:f}=mg(),{locStart:h}=dg(),w=gg(),{getFlowScalarLineContents:T,getLastDescendantNode:A,hasLeadingComments:S,hasMiddleComments:B,hasTrailingComment:I,hasEndComments:k,hasPrettierIgnore:P,isLastDescendantNode:C,isNode:D,isInlineNode:g}=Mt(),F=yg(),{alignWithSpaces:l,printNextEmptyLine:E,shouldPrintEndComments:y}=jr(),{printFlowMapping:N,printFlowSequence:x}=hg(),b=vg(),L=Cg();function M(R,Q,ee){let te=R.getValue(),oe=[];te.type!=="mappingValue"&&S(te)&&oe.push([u(r,R.map(ee,"leadingComments")),r]);let{tag:W,anchor:X}=te;W&&oe.push(ee("tag")),W&&X&&oe.push(" "),X&&oe.push(ee("anchor"));let ue="";D(te,["mapping","sequence","comment","directive","mappingItem","sequenceItem"])&&!C(R)&&(ue=E(R,Q.originalText)),(W||X)&&(D(te,["sequence","mapping"])&&!B(te)?oe.push(r):oe.push(" ")),B(te)&&oe.push([te.middleComments.length===1?"":r,u(r,R.map(ee,"middleComments")),r]);let De=R.getParentNode();return P(R)?oe.push(m(Q.originalText.slice(te.position.start.offset,te.position.end.offset).trimEnd(),c)):oe.push(a(j(te,De,R,Q,ee))),I(te)&&!D(te,["document","documentHead"])&&oe.push(o([te.type==="mappingValue"&&!te.content?"":" ",De.type==="mappingKey"&&R.getParentNode(2).type==="mapping"&&g(te)?"":t,ee("trailingComment")])),y(te)&&oe.push(l(te.type==="sequenceItem"?2:0,[r,u(r,R.map(ie=>[d(Q.originalText,ie.getValue(),h)?r:"",ee()],"endComments"))])),oe.push(ue),oe}function j(R,Q,ee,te,oe){switch(R.type){case"root":{let{children:W}=R,X=[];ee.each((De,ie)=>{let G=W[ie],z=W[ie+1];ie!==0&&X.push(r),X.push(oe()),V(G,z)?(X.push(r,"..."),I(G)&&X.push(" ",oe("trailingComment"))):z&&!I(z.head)&&X.push(r,"---")},"children");let ue=A(R);return(!D(ue,["blockLiteral","blockFolded"])||ue.chomping!=="keep")&&X.push(r),X}case"document":{let W=Q.children[ee.getName()+1],X=[];return q(R,W,Q,te)==="head"&&((R.head.children.length>0||R.head.endComments.length>0)&&X.push(oe("head")),I(R.head)?X.push(["---"," ",oe(["head","trailingComment"])]):X.push("---")),$(R)&&X.push(oe("body")),u(r,X)}case"documentHead":return u(r,[...ee.map(oe,"children"),...ee.map(oe,"endComments")]);case"documentBody":{let{children:W,endComments:X}=R,ue="";if(W.length>0&&X.length>0){let De=A(R);D(De,["blockFolded","blockLiteral"])?De.chomping!=="keep"&&(ue=[r,r]):ue=r}return[u(r,ee.map(oe,"children")),ue,u(r,ee.map(oe,"endComments"))]}case"directive":return["%",u(" ",[R.name,...R.parameters])];case"comment":return["#",R.value];case"alias":return["*",R.value];case"tag":return te.originalText.slice(R.position.start.offset,R.position.end.offset);case"anchor":return["&",R.value];case"plain":return Y(R.type,te.originalText.slice(R.position.start.offset,R.position.end.offset),te);case"quoteDouble":case"quoteSingle":{let W="'",X='"',ue=te.originalText.slice(R.position.start.offset+1,R.position.end.offset-1);if(R.type==="quoteSingle"&&ue.includes("\\")||R.type==="quoteDouble"&&/\\[^"]/.test(ue)){let ie=R.type==="quoteDouble"?X:W;return[ie,Y(R.type,ue,te),ie]}if(ue.includes(X))return[W,Y(R.type,R.type==="quoteDouble"?ue.replace(/\\"/g,X).replace(/'/g,W.repeat(2)):ue,te),W];if(ue.includes(W))return[X,Y(R.type,R.type==="quoteSingle"?ue.replace(/''/g,W):ue,te),X];let De=te.singleQuote?W:X;return[De,Y(R.type,ue,te),De]}case"blockFolded":case"blockLiteral":return L(ee,oe,te);case"mapping":case"sequence":return u(r,ee.map(oe,"children"));case"sequenceItem":return["- ",l(2,R.content?oe("content"):"")];case"mappingKey":case"mappingValue":return R.content?oe("content"):"";case"mappingItem":case"flowMappingItem":return b(R,Q,ee,oe,te);case"flowMapping":return N(ee,oe,te);case"flowSequence":return x(ee,oe,te);case"flowSequenceItem":return oe("content");default:throw new Error("Unexpected node type ".concat(R.type))}}function $(R){return R.body.children.length>0||k(R.body)}function V(R,Q){return I(R)||Q&&(Q.head.children.length>0||k(Q.head))}function q(R,Q,ee,te){return ee.children[0]===R&&/---(?:\s|$)/.test(te.originalText.slice(h(R),h(R)+4))||R.head.children.length>0||k(R.head)||I(R.head)?"head":V(R,Q)?!1:Q?"root":!1}function Y(R,Q,ee){let te=T(R,Q,ee);return u(r,te.map(oe=>s(v(u(i,oe)))))}function H(R,Q){if(D(Q))switch(delete Q.position,Q.type){case"comment":if(f(Q.value))return null;break;case"quoteDouble":case"quoteSingle":Q.type="quote";break}}n.exports={preprocess:F,embed:w,print:M,massageAstNode:H,insertPragma:p}}}),Fg=Z({"src/language-yaml/options.js"(e,n){"use strict";re();var t=Ot();n.exports={bracketSpacing:t.bracketSpacing,singleQuote:t.singleQuote,proseWrap:t.proseWrap}}}),Ag=Z({"src/language-yaml/parsers.js"(){re()}}),Sg=Z({"node_modules/linguist-languages/data/YAML.json"(e,n){n.exports={name:"YAML",type:"data",color:"#cb171e",tmScope:"source.yaml",aliases:["yml"],extensions:[".yml",".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".gemrc","CITATION.cff","glide.lock","yarn.lock"],aceMode:"yaml",codemirrorMode:"yaml",codemirrorMimeType:"text/x-yaml",languageId:407}}}),xg=Z({"src/language-yaml/index.js"(e,n){"use strict";re();var t=Bt(),s=Eg(),a=Fg(),r=Ag(),u=[t(Sg(),i=>({since:"1.14.0",parsers:["yaml"],vscodeLanguageIds:["yaml","ansible","home-assistant"],filenames:[...i.filenames.filter(o=>o!=="yarn.lock"),".prettierrc",".stylelintrc"]}))];n.exports={languages:u,printers:{yaml:s},options:a,parsers:r}}}),bg=Z({"src/languages.js"(e,n){"use strict";re(),n.exports=[id(),Sd(),Pd(),Md(),Ud(),Dg(),xg()]}});re();var{version:Tg}=ya(),kt=Sm(),{getSupportInfo:Bg}=Mn(),Ng=xm(),wg=bg(),_g=Oe();function bt(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return function(){for(var t=arguments.length,s=new Array(t),a=0;a function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { + exports: {} + }).exports, mod), mod.exports; +}; +var require_resolve_from = __commonJS({ + "node_modules/import-fresh/node_modules/resolve-from/index.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var Module = require("module"); + var fs = require("fs"); + var resolveFrom = (fromDir, moduleId, silent) => { + if (typeof fromDir !== "string") { + throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``); + } + if (typeof moduleId !== "string") { + throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``); + } + try { + fromDir = fs.realpathSync(fromDir); + } catch (err) { + if (err.code === "ENOENT") { + fromDir = path.resolve(fromDir); + } else if (silent) { + return null; + } else { + throw err; + } + } + const fromFile = path.join(fromDir, "noop.js"); + const resolveFileName = () => Module._resolveFilename(moduleId, { + id: fromFile, + filename: fromFile, + paths: Module._nodeModulePaths(fromDir) + }); + if (silent) { + try { + return resolveFileName(); + } catch (err) { + return null; + } + } + return resolveFileName(); + }; + module2.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId); + module2.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true); + } +}); +var require_parent_module = __commonJS({ + "scripts/build/shims/parent-module.cjs"(exports2, module2) { + "use strict"; + module2.exports = (file) => file; + } +}); +var require_import_fresh = __commonJS({ + "node_modules/import-fresh/index.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var resolveFrom = require_resolve_from(); + var parentModule = require_parent_module(); + module2.exports = (moduleId) => { + if (typeof moduleId !== "string") { + throw new TypeError("Expected a string"); + } + const parentPath = parentModule(__filename); + const cwd = parentPath ? path.dirname(parentPath) : __dirname; + const filePath = resolveFrom(cwd, moduleId); + const oldModule = require.cache[filePath]; + if (oldModule && oldModule.parent) { + let i = oldModule.parent.children.length; + while (i--) { + if (oldModule.parent.children[i].id === filePath) { + oldModule.parent.children.splice(i, 1); + } + } + } + delete require.cache[filePath]; + const parent = require.cache[parentPath]; + return parent === void 0 ? require(filePath) : parent.require(filePath); + }; + } +}); +var require_is_arrayish = __commonJS({ + "node_modules/is-arrayish/index.js"(exports2, module2) { + "use strict"; + module2.exports = function isArrayish(obj) { + if (!obj) { + return false; + } + return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && obj.splice instanceof Function; + }; + } +}); +var require_error_ex = __commonJS({ + "node_modules/error-ex/index.js"(exports2, module2) { + "use strict"; + var util = require("util"); + var isArrayish = require_is_arrayish(); + var errorEx = function errorEx2(name, properties) { + if (!name || name.constructor !== String) { + properties = name || {}; + name = Error.name; + } + var errorExError = function ErrorEXError(message) { + if (!this) { + return new ErrorEXError(message); + } + message = message instanceof Error ? message.message : message || this.message; + Error.call(this, message); + Error.captureStackTrace(this, errorExError); + this.name = name; + Object.defineProperty(this, "message", { + configurable: true, + enumerable: false, + get: function() { + var newMessage = message.split(/\r?\n/g); + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } + var modifier = properties[key]; + if ("message" in modifier) { + newMessage = modifier.message(this[key], newMessage) || newMessage; + if (!isArrayish(newMessage)) { + newMessage = [newMessage]; + } + } + } + return newMessage.join("\n"); + }, + set: function(v) { + message = v; + } + }); + var overwrittenStack = null; + var stackDescriptor = Object.getOwnPropertyDescriptor(this, "stack"); + var stackGetter = stackDescriptor.get; + var stackValue = stackDescriptor.value; + delete stackDescriptor.value; + delete stackDescriptor.writable; + stackDescriptor.set = function(newstack) { + overwrittenStack = newstack; + }; + stackDescriptor.get = function() { + var stack = (overwrittenStack || (stackGetter ? stackGetter.call(this) : stackValue)).split(/\r?\n+/g); + if (!overwrittenStack) { + stack[0] = this.name + ": " + this.message; + } + var lineCount = 1; + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } + var modifier = properties[key]; + if ("line" in modifier) { + var line = modifier.line(this[key]); + if (line) { + stack.splice(lineCount++, 0, " " + line); + } + } + if ("stack" in modifier) { + modifier.stack(this[key], stack); + } + } + return stack.join("\n"); + }; + Object.defineProperty(this, "stack", stackDescriptor); + }; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(errorExError.prototype, Error.prototype); + Object.setPrototypeOf(errorExError, Error); + } else { + util.inherits(errorExError, Error); + } + return errorExError; + }; + errorEx.append = function(str, def) { + return { + message: function(v, message) { + v = v || def; + if (v) { + message[0] += " " + str.replace("%s", v.toString()); + } + return message; + } + }; + }; + errorEx.line = function(str, def) { + return { + line: function(v) { + v = v || def; + if (v) { + return str.replace("%s", v.toString()); + } + return null; + } + }; + }; + module2.exports = errorEx; + } +}); +var require_json_parse_even_better_errors = __commonJS({ + "node_modules/json-parse-even-better-errors/index.js"(exports2, module2) { + "use strict"; + var hexify = (char) => { + const h = char.charCodeAt(0).toString(16).toUpperCase(); + return "0x" + (h.length % 2 ? "0" : "") + h; + }; + var parseError = (e, txt, context) => { + if (!txt) { + return { + message: e.message + " while parsing empty string", + position: 0 + }; + } + const badToken = e.message.match(/^Unexpected token (.) .*position\s+(\d+)/i); + const errIdx = badToken ? +badToken[2] : e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 : null; + const msg = badToken ? e.message.replace(/^Unexpected token ./, `Unexpected token ${JSON.stringify(badToken[1])} (${hexify(badToken[1])})`) : e.message; + if (errIdx !== null && errIdx !== void 0) { + const start = errIdx <= context ? 0 : errIdx - context; + const end = errIdx + context >= txt.length ? txt.length : errIdx + context; + const slice = (start === 0 ? "" : "...") + txt.slice(start, end) + (end === txt.length ? "" : "..."); + const near = txt === slice ? "" : "near "; + return { + message: msg + ` while parsing ${near}${JSON.stringify(slice)}`, + position: errIdx + }; + } else { + return { + message: msg + ` while parsing '${txt.slice(0, context * 2)}'`, + position: 0 + }; + } + }; + var JSONParseError = class extends SyntaxError { + constructor(er, txt, context, caller) { + context = context || 20; + const metadata = parseError(er, txt, context); + super(metadata.message); + Object.assign(this, metadata); + this.code = "EJSONPARSE"; + this.systemError = er; + Error.captureStackTrace(this, caller || this.constructor); + } + get name() { + return this.constructor.name; + } + set name(n) { + } + get [Symbol.toStringTag]() { + return this.constructor.name; + } + }; + var kIndent = Symbol.for("indent"); + var kNewline = Symbol.for("newline"); + var formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/; + var emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/; + var parseJson = (txt, reviver, context) => { + const parseText = stripBOM(txt); + context = context || 20; + try { + const [, newline = "\n", indent = " "] = parseText.match(emptyRE) || parseText.match(formatRE) || [, "", ""]; + const result = JSON.parse(parseText, reviver); + if (result && typeof result === "object") { + result[kNewline] = newline; + result[kIndent] = indent; + } + return result; + } catch (e) { + if (typeof txt !== "string" && !Buffer.isBuffer(txt)) { + const isEmptyArray = Array.isArray(txt) && txt.length === 0; + throw Object.assign(new TypeError(`Cannot parse ${isEmptyArray ? "an empty array" : String(txt)}`), { + code: "EJSONPARSE", + systemError: e + }); + } + throw new JSONParseError(e, parseText, context, parseJson); + } + }; + var stripBOM = (txt) => String(txt).replace(/^\uFEFF/, ""); + module2.exports = parseJson; + parseJson.JSONParseError = JSONParseError; + parseJson.noExceptions = (txt, reviver) => { + try { + return JSON.parse(stripBOM(txt), reviver); + } catch (e) { + } + }; + } +}); +var require_build = __commonJS({ + "node_modules/parse-json/node_modules/lines-and-columns/build/index.js"(exports2) { + "use strict"; + exports2.__esModule = true; + exports2.LinesAndColumns = void 0; + var LF = "\n"; + var CR = "\r"; + var LinesAndColumns = function() { + function LinesAndColumns2(string) { + this.string = string; + var offsets = [0]; + for (var offset = 0; offset < string.length; ) { + switch (string[offset]) { + case LF: + offset += LF.length; + offsets.push(offset); + break; + case CR: + offset += CR.length; + if (string[offset] === LF) { + offset += LF.length; + } + offsets.push(offset); + break; + default: + offset++; + break; + } + } + this.offsets = offsets; + } + LinesAndColumns2.prototype.locationForIndex = function(index) { + if (index < 0 || index > this.string.length) { + return null; + } + var line = 0; + var offsets = this.offsets; + while (offsets[line + 1] <= index) { + line++; + } + var column = index - offsets[line]; + return { + line, + column + }; + }; + LinesAndColumns2.prototype.indexForLocation = function(location) { + var line = location.line, column = location.column; + if (line < 0 || line >= this.offsets.length) { + return null; + } + if (column < 0 || column > this.lengthOfLine(line)) { + return null; + } + return this.offsets[line] + column; + }; + LinesAndColumns2.prototype.lengthOfLine = function(line) { + var offset = this.offsets[line]; + var nextOffset = line === this.offsets.length - 1 ? this.string.length : this.offsets[line + 1]; + return nextOffset - offset; + }; + return LinesAndColumns2; + }(); + exports2.LinesAndColumns = LinesAndColumns; + exports2["default"] = LinesAndColumns; + } +}); +var require_js_tokens = __commonJS({ + "node_modules/js-tokens/index.js"(exports2) { + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; + exports2.matchToToken = function(match) { + var token = { + type: "invalid", + value: match[0], + closed: void 0 + }; + if (match[1]) + token.type = "string", token.closed = !!(match[3] || match[4]); + else if (match[5]) + token.type = "comment"; + else if (match[6]) + token.type = "comment", token.closed = !!match[7]; + else if (match[8]) + token.type = "regex"; + else if (match[9]) + token.type = "number"; + else if (match[10]) + token.type = "name"; + else if (match[11]) + token.type = "punctuator"; + else if (match[12]) + token.type = "whitespace"; + return token; + }; + } +}); +var require_identifier = __commonJS({ + "node_modules/@babel/helper-validator-identifier/lib/identifier.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isIdentifierChar = isIdentifierChar; + exports2.isIdentifierName = isIdentifierName; + exports2.isIdentifierStart = isIdentifierStart; + var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; + var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F"; + var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); + var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); + nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; + var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; + var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + function isInAstralSet(code, set) { + let pos = 65536; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) + return false; + pos += set[i + 1]; + if (pos >= code) + return true; + } + return false; + } + function isIdentifierStart(code) { + if (code < 65) + return code === 36; + if (code <= 90) + return true; + if (code < 97) + return code === 95; + if (code <= 122) + return true; + if (code <= 65535) { + return code >= 170 && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); + } + function isIdentifierChar(code) { + if (code < 48) + return code === 36; + if (code < 58) + return true; + if (code < 65) + return false; + if (code <= 90) + return true; + if (code < 97) + return code === 95; + if (code <= 122) + return true; + if (code <= 65535) { + return code >= 170 && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); + } + function isIdentifierName(name) { + let isFirst = true; + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + if ((cp & 64512) === 55296 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + if ((trail & 64512) === 56320) { + cp = 65536 + ((cp & 1023) << 10) + (trail & 1023); + } + } + if (isFirst) { + isFirst = false; + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + return !isFirst; + } + } +}); +var require_keyword = __commonJS({ + "node_modules/@babel/helper-validator-identifier/lib/keyword.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isKeyword = isKeyword; + exports2.isReservedWord = isReservedWord; + exports2.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; + exports2.isStrictBindReservedWord = isStrictBindReservedWord; + exports2.isStrictReservedWord = isStrictReservedWord; + var reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] + }; + var keywords = new Set(reservedWords.keyword); + var reservedWordsStrictSet = new Set(reservedWords.strict); + var reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; + } + function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); + } + function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); + } + function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); + } + function isKeyword(word) { + return keywords.has(word); + } + } +}); +var require_lib = __commonJS({ + "node_modules/@babel/helper-validator-identifier/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + Object.defineProperty(exports2, "isIdentifierChar", { + enumerable: true, + get: function() { + return _identifier.isIdentifierChar; + } + }); + Object.defineProperty(exports2, "isIdentifierName", { + enumerable: true, + get: function() { + return _identifier.isIdentifierName; + } + }); + Object.defineProperty(exports2, "isIdentifierStart", { + enumerable: true, + get: function() { + return _identifier.isIdentifierStart; + } + }); + Object.defineProperty(exports2, "isKeyword", { + enumerable: true, + get: function() { + return _keyword.isKeyword; + } + }); + Object.defineProperty(exports2, "isReservedWord", { + enumerable: true, + get: function() { + return _keyword.isReservedWord; + } + }); + Object.defineProperty(exports2, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function() { + return _keyword.isStrictBindOnlyReservedWord; + } + }); + Object.defineProperty(exports2, "isStrictBindReservedWord", { + enumerable: true, + get: function() { + return _keyword.isStrictBindReservedWord; + } + }); + Object.defineProperty(exports2, "isStrictReservedWord", { + enumerable: true, + get: function() { + return _keyword.isStrictReservedWord; + } + }); + var _identifier = require_identifier(); + var _keyword = require_keyword(); + } +}); +var require_escape_string_regexp = __commonJS({ + "node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js"(exports2, module2) { + "use strict"; + var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + module2.exports = function(str) { + if (typeof str !== "string") { + throw new TypeError("Expected a string"); + } + return str.replace(matchOperatorsRe, "\\$&"); + }; + } +}); +var require_color_name = __commonJS({ + "node_modules/color-name/index.js"(exports2, module2) { + "use strict"; + module2.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] + }; + } +}); +var require_conversions = __commonJS({ + "node_modules/color-convert/conversions.js"(exports2, module2) { + var cssKeywords = require_color_name(); + var reverseKeywords = {}; + for (key in cssKeywords) { + if (cssKeywords.hasOwnProperty(key)) { + reverseKeywords[cssKeywords[key]] = key; + } + } + var key; + var convert = module2.exports = { + rgb: { + channels: 3, + labels: "rgb" + }, + hsl: { + channels: 3, + labels: "hsl" + }, + hsv: { + channels: 3, + labels: "hsv" + }, + hwb: { + channels: 3, + labels: "hwb" + }, + cmyk: { + channels: 4, + labels: "cmyk" + }, + xyz: { + channels: 3, + labels: "xyz" + }, + lab: { + channels: 3, + labels: "lab" + }, + lch: { + channels: 3, + labels: "lch" + }, + hex: { + channels: 1, + labels: ["hex"] + }, + keyword: { + channels: 1, + labels: ["keyword"] + }, + ansi16: { + channels: 1, + labels: ["ansi16"] + }, + ansi256: { + channels: 1, + labels: ["ansi256"] + }, + hcg: { + channels: 3, + labels: ["h", "c", "g"] + }, + apple: { + channels: 3, + labels: ["r16", "g16", "b16"] + }, + gray: { + channels: 1, + labels: ["gray"] + } + }; + for (model in convert) { + if (convert.hasOwnProperty(model)) { + if (!("channels" in convert[model])) { + throw new Error("missing channels property: " + model); + } + if (!("labels" in convert[model])) { + throw new Error("missing channel labels property: " + model); + } + if (convert[model].labels.length !== convert[model].channels) { + throw new Error("channel and label counts mismatch: " + model); + } + channels = convert[model].channels; + labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], "channels", { + value: channels + }); + Object.defineProperty(convert[model], "labels", { + value: labels + }); + } + } + var channels; + var labels; + var model; + convert.rgb.hsl = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + h = Math.min(h * 60, 360); + if (h < 0) { + h += 360; + } + l = (min + max) / 2; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + return [h, s * 100, l * 100]; + }; + convert.rgb.hsv = function(rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + var diffc = function(c) { + return (v - c) / 6 / diff + 1 / 2; + }; + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = 1 / 3 + rdif - bdif; + } else if (b === v) { + h = 2 / 3 + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + return [h * 360, s * 100, v * 100]; + }; + convert.rgb.hwb = function(rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; + }; + convert.rgb.cmyk = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; + }; + function comparativeDistance(x, y) { + return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2); + } + convert.rgb.keyword = function(rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + var currentClosestDistance = Infinity; + var currentClosestKeyword; + for (var keyword in cssKeywords) { + if (cssKeywords.hasOwnProperty(keyword)) { + var value = cssKeywords[keyword]; + var distance = comparativeDistance(rgb, value); + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } + return currentClosestKeyword; + }; + convert.keyword.rgb = function(keyword) { + return cssKeywords[keyword]; + }; + convert.rgb.xyz = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; + g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; + b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; + var x = r * 0.4124 + g * 0.3576 + b * 0.1805; + var y = r * 0.2126 + g * 0.7152 + b * 0.0722; + var z = r * 0.0193 + g * 0.1192 + b * 0.9505; + return [x * 100, y * 100, z * 100]; + }; + convert.rgb.lab = function(rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 8856e-6 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; + }; + convert.hsl.rgb = function(hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + t1 = 2 * l - t2; + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + rgb[i] = val * 255; + } + return rgb; + }; + convert.hsl.hsv = function(hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; + }; + convert.hsv.rgb = function(hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - s * f); + var t = 255 * v * (1 - s * (1 - f)); + v *= 255; + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } + }; + convert.hsv.hsl = function(hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; + }; + convert.hwb.rgb = function(hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + if ((i & 1) !== 0) { + f = 1 - f; + } + n = wh + f * (v - wh); + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: + r = v; + g = n; + b = wh; + break; + case 1: + r = n; + g = v; + b = wh; + break; + case 2: + r = wh; + g = v; + b = n; + break; + case 3: + r = wh; + g = n; + b = v; + break; + case 4: + r = n; + g = wh; + b = v; + break; + case 5: + r = v; + g = wh; + b = n; + break; + } + return [r * 255, g * 255, b * 255]; + }; + convert.cmyk.rgb = function(cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; + }; + convert.xyz.rgb = function(xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; + r = x * 3.2406 + y * -1.5372 + z * -0.4986; + g = x * -0.9689 + y * 1.8758 + z * 0.0415; + b = x * 0.0557 + y * -0.204 + z * 1.057; + r = r > 31308e-7 ? 1.055 * Math.pow(r, 1 / 2.4) - 0.055 : r * 12.92; + g = g > 31308e-7 ? 1.055 * Math.pow(g, 1 / 2.4) - 0.055 : g * 12.92; + b = b > 31308e-7 ? 1.055 * Math.pow(b, 1 / 2.4) - 0.055 : b * 12.92; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + return [r * 255, g * 255, b * 255]; + }; + convert.xyz.lab = function(xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 8856e-6 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; + }; + convert.lab.xyz = function(lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z *= 108.883; + return [x, y, z]; + }; + convert.lab.lch = function(lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + if (h < 0) { + h += 360; + } + c = Math.sqrt(a * a + b * b); + return [l, c, h]; + }; + convert.lch.lab = function(lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + return [l, a, b]; + }; + convert.rgb.ansi16 = function(args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; + value = Math.round(value / 50); + if (value === 0) { + return 30; + } + var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + if (value === 2) { + ansi += 60; + } + return ansi; + }; + convert.hsv.ansi16 = function(args) { + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + }; + convert.rgb.ansi256 = function(args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + if (r === g && g === b) { + if (r < 8) { + return 16; + } + if (r > 248) { + return 231; + } + return Math.round((r - 8) / 247 * 24) + 232; + } + var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; + }; + convert.ansi16.rgb = function(args) { + var color = args % 10; + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + color = color / 10.5 * 255; + return [color, color, color]; + } + var mult = (~~(args > 50) + 1) * 0.5; + var r = (color & 1) * mult * 255; + var g = (color >> 1 & 1) * mult * 255; + var b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; + }; + convert.ansi256.rgb = function(args) { + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } + args -= 16; + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = rem % 6 / 5 * 255; + return [r, g, b]; + }; + convert.rgb.hex = function(args) { + var integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); + var string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; + }; + convert.hex.rgb = function(args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + var colorString = match[0]; + if (match[0].length === 3) { + colorString = colorString.split("").map(function(char) { + return char + char; + }).join(""); + } + var integer = parseInt(colorString, 16); + var r = integer >> 16 & 255; + var g = integer >> 8 & 255; + var b = integer & 255; + return [r, g, b]; + }; + convert.rgb.hcg = function(rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = max - min; + var grayscale; + var hue; + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; + }; + convert.hsl.hcg = function(hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; + if (l < 0.5) { + c = 2 * s * l; + } else { + c = 2 * s * (1 - l); + } + if (c < 1) { + f = (l - 0.5 * c) / (1 - c); + } + return [hsl[0], c * 100, f * 100]; + }; + convert.hsv.hcg = function(hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var c = s * v; + var f = 0; + if (c < 1) { + f = (v - c) / (1 - c); + } + return [hsv[0], c * 100, f * 100]; + }; + convert.hcg.rgb = function(hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; + if (c === 0) { + return [g * 255, g * 255, g * 255]; + } + var pure = [0, 0, 0]; + var hi = h % 1 * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + case 1: + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + case 2: + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + case 3: + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + case 4: + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + default: + pure[0] = 1; + pure[1] = 0; + pure[2] = w; + } + mg = (1 - c) * g; + return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; + }; + convert.hcg.hsv = function(hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1 - c); + var f = 0; + if (v > 0) { + f = c / v; + } + return [hcg[0], f * 100, v * 100]; + }; + convert.hcg.hsl = function(hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var l = g * (1 - c) + 0.5 * c; + var s = 0; + if (l > 0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1) { + s = c / (2 * (1 - l)); + } + return [hcg[0], s * 100, l * 100]; + }; + convert.hcg.hwb = function(hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; + }; + convert.hwb.hcg = function(hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; + if (c < 1) { + g = (v - c) / (1 - c); + } + return [hwb[0], c * 100, g * 100]; + }; + convert.apple.rgb = function(apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; + }; + convert.rgb.apple = function(rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; + }; + convert.gray.rgb = function(args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; + }; + convert.gray.hsl = convert.gray.hsv = function(args) { + return [0, 0, args[0]]; + }; + convert.gray.hwb = function(gray) { + return [0, 100, gray[0]]; + }; + convert.gray.cmyk = function(gray) { + return [0, 0, 0, gray[0]]; + }; + convert.gray.lab = function(gray) { + return [gray[0], 0, 0]; + }; + convert.gray.hex = function(gray) { + var val = Math.round(gray[0] / 100 * 255) & 255; + var integer = (val << 16) + (val << 8) + val; + var string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; + }; + convert.rgb.gray = function(rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; + }; + } +}); +var require_route = __commonJS({ + "node_modules/color-convert/route.js"(exports2, module2) { + var conversions = require_conversions(); + function buildGraph() { + var graph = {}; + var models = Object.keys(conversions); + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + distance: -1, + parent: null + }; + } + return graph; + } + function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; + graph[fromModel].distance = 0; + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + return graph; + } + function link(from, to) { + return function(args) { + return to(from(args)); + }; + } + function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + fn.conversion = path; + return fn; + } + module2.exports = function(fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; + if (node.parent === null) { + continue; + } + conversion[toModel] = wrapConversion(toModel, graph); + } + return conversion; + }; + } +}); +var require_color_convert = __commonJS({ + "node_modules/color-convert/index.js"(exports2, module2) { + var conversions = require_conversions(); + var route = require_route(); + var convert = {}; + var models = Object.keys(conversions); + function wrapRaw(fn) { + var wrappedFn = function(args) { + if (args === void 0 || args === null) { + return args; + } + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + return fn(args); + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; + } + function wrapRounded(fn) { + var wrappedFn = function(args) { + if (args === void 0 || args === null) { + return args; + } + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + var result = fn(args); + if (typeof result === "object") { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + return result; + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; + } + models.forEach(function(fromModel) { + convert[fromModel] = {}; + Object.defineProperty(convert[fromModel], "channels", { + value: conversions[fromModel].channels + }); + Object.defineProperty(convert[fromModel], "labels", { + value: conversions[fromModel].labels + }); + var routes = route(fromModel); + var routeModels = Object.keys(routes); + routeModels.forEach(function(toModel) { + var fn = routes[toModel]; + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); + }); + module2.exports = convert; + } +}); +var require_ansi_styles = __commonJS({ + "node_modules/ansi-styles/index.js"(exports2, module2) { + "use strict"; + var colorConvert = require_color_convert(); + var wrapAnsi16 = (fn, offset) => function() { + const code = fn.apply(colorConvert, arguments); + return `\x1B[${code + offset}m`; + }; + var wrapAnsi256 = (fn, offset) => function() { + const code = fn.apply(colorConvert, arguments); + return `\x1B[${38 + offset};5;${code}m`; + }; + var wrapAnsi16m = (fn, offset) => function() { + const rgb = fn.apply(colorConvert, arguments); + return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; + }; + function assembleStyles() { + const codes = /* @__PURE__ */ new Map(); + const styles = { + modifier: { + reset: [0, 0], + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + styles.color.grey = styles.color.gray; + for (const groupName of Object.keys(styles)) { + const group = styles[groupName]; + for (const styleName of Object.keys(group)) { + const style = group[styleName]; + styles[styleName] = { + open: `\x1B[${style[0]}m`, + close: `\x1B[${style[1]}m` + }; + group[styleName] = styles[styleName]; + codes.set(style[0], style[1]); + } + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + Object.defineProperty(styles, "codes", { + value: codes, + enumerable: false + }); + } + const ansi2ansi = (n) => n; + const rgb2rgb = (r, g, b) => [r, g, b]; + styles.color.close = "\x1B[39m"; + styles.bgColor.close = "\x1B[49m"; + styles.color.ansi = { + ansi: wrapAnsi16(ansi2ansi, 0) + }; + styles.color.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 0) + }; + styles.color.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 0) + }; + styles.bgColor.ansi = { + ansi: wrapAnsi16(ansi2ansi, 10) + }; + styles.bgColor.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 10) + }; + styles.bgColor.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 10) + }; + for (let key of Object.keys(colorConvert)) { + if (typeof colorConvert[key] !== "object") { + continue; + } + const suite = colorConvert[key]; + if (key === "ansi16") { + key = "ansi"; + } + if ("ansi16" in suite) { + styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); + styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); + } + if ("ansi256" in suite) { + styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); + styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); + } + if ("rgb" in suite) { + styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); + styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); + } + } + return styles; + } + Object.defineProperty(module2, "exports", { + enumerable: true, + get: assembleStyles + }); + } +}); +var require_has_flag = __commonJS({ + "node_modules/@babel/highlight/node_modules/has-flag/index.js"(exports2, module2) { + "use strict"; + module2.exports = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf("--"); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); + }; + } +}); +var require_supports_color = __commonJS({ + "node_modules/@babel/highlight/node_modules/supports-color/index.js"(exports2, module2) { + "use strict"; + var os = require("os"); + var hasFlag = require_has_flag(); + var env = process.env; + var forceColor; + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) { + forceColor = false; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + forceColor = true; + } + if ("FORCE_COLOR" in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; + } + function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + const min = forceColor ? 1 : 0; + if (process.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + if (env.TERM === "dumb") { + return min; + } + return min; + } + function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); + } + module2.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) + }; + } +}); +var require_templates = __commonJS({ + "node_modules/@babel/highlight/node_modules/chalk/templates.js"(exports2, module2) { + "use strict"; + var TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; + var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; + var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; + var ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; + var ESCAPES = /* @__PURE__ */ new Map([["n", "\n"], ["r", "\r"], ["t", " "], ["b", "\b"], ["f", "\f"], ["v", "\v"], ["0", "\0"], ["\\", "\\"], ["e", "\x1B"], ["a", "\x07"]]); + function unescape(c) { + if (c[0] === "u" && c.length === 5 || c[0] === "x" && c.length === 3) { + return String.fromCharCode(parseInt(c.slice(1), 16)); + } + return ESCAPES.get(c) || c; + } + function parseArguments(name, args) { + const results = []; + const chunks = args.trim().split(/\s*,\s*/g); + let matches; + for (const chunk of chunks) { + if (!isNaN(chunk)) { + results.push(Number(chunk)); + } else if (matches = chunk.match(STRING_REGEX)) { + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } + return results; + } + function parseStyle(style) { + STYLE_REGEX.lastIndex = 0; + const results = []; + let matches; + while ((matches = STYLE_REGEX.exec(style)) !== null) { + const name = matches[1]; + if (matches[2]) { + const args = parseArguments(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); + } + } + return results; + } + function buildStyle(chalk, styles) { + const enabled = {}; + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } + let current = chalk; + for (const styleName of Object.keys(enabled)) { + if (Array.isArray(enabled[styleName])) { + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } + if (enabled[styleName].length > 0) { + current = current[styleName].apply(current, enabled[styleName]); + } else { + current = current[styleName]; + } + } + } + return current; + } + module2.exports = (chalk, tmp) => { + const styles = []; + const chunks = []; + let chunk = []; + tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + if (escapeChar) { + chunk.push(unescape(escapeChar)); + } else if (style) { + const str = chunk.join(""); + chunk = []; + chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + styles.push({ + inverse, + styles: parseStyle(style) + }); + } else if (close) { + if (styles.length === 0) { + throw new Error("Found extraneous } in Chalk template literal"); + } + chunks.push(buildStyle(chalk, styles)(chunk.join(""))); + chunk = []; + styles.pop(); + } else { + chunk.push(chr); + } + }); + chunks.push(chunk.join("")); + if (styles.length > 0) { + const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`; + throw new Error(errMsg); + } + return chunks.join(""); + }; + } +}); +var require_chalk = __commonJS({ + "node_modules/@babel/highlight/node_modules/chalk/index.js"(exports2, module2) { + "use strict"; + var escapeStringRegexp = require_escape_string_regexp(); + var ansiStyles = require_ansi_styles(); + var stdoutColor = require_supports_color().stdout; + var template = require_templates(); + var isSimpleWindowsTerm = process.platform === "win32" && !(process.env.TERM || "").toLowerCase().startsWith("xterm"); + var levelMapping = ["ansi", "ansi", "ansi256", "ansi16m"]; + var skipModels = /* @__PURE__ */ new Set(["gray"]); + var styles = /* @__PURE__ */ Object.create(null); + function applyOptions(obj, options) { + options = options || {}; + const scLevel = stdoutColor ? stdoutColor.level : 0; + obj.level = options.level === void 0 ? scLevel : options.level; + obj.enabled = "enabled" in options ? options.enabled : obj.level > 0; + } + function Chalk(options) { + if (!this || !(this instanceof Chalk) || this.template) { + const chalk = {}; + applyOptions(chalk, options); + chalk.template = function() { + const args = [].slice.call(arguments); + return chalkTag.apply(null, [chalk.template].concat(args)); + }; + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + chalk.template.constructor = Chalk; + return chalk.template; + } + applyOptions(this, options); + } + if (isSimpleWindowsTerm) { + ansiStyles.blue.open = "\x1B[94m"; + } + for (const key of Object.keys(ansiStyles)) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), "g"); + styles[key] = { + get() { + const codes = ansiStyles[key]; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + } + }; + } + styles.visible = { + get() { + return build.call(this, this._styles || [], true, "visible"); + } + }; + ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), "g"); + for (const model of Object.keys(ansiStyles.color.ansi)) { + if (skipModels.has(model)) { + continue; + } + styles[model] = { + get() { + const level = this.level; + return function() { + const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.color.close, + closeRe: ansiStyles.color.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; + } + ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), "g"); + for (const model of Object.keys(ansiStyles.bgColor.ansi)) { + if (skipModels.has(model)) { + continue; + } + const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const level = this.level; + return function() { + const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.bgColor.close, + closeRe: ansiStyles.bgColor.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; + } + var proto = Object.defineProperties(() => { + }, styles); + function build(_styles, _empty, key) { + const builder = function() { + return applyStyle.apply(builder, arguments); + }; + builder._styles = _styles; + builder._empty = _empty; + const self = this; + Object.defineProperty(builder, "level", { + enumerable: true, + get() { + return self.level; + }, + set(level) { + self.level = level; + } + }); + Object.defineProperty(builder, "enabled", { + enumerable: true, + get() { + return self.enabled; + }, + set(enabled) { + self.enabled = enabled; + } + }); + builder.hasGrey = this.hasGrey || key === "gray" || key === "grey"; + builder.__proto__ = proto; + return builder; + } + function applyStyle() { + const args = arguments; + const argsLen = args.length; + let str = String(arguments[0]); + if (argsLen === 0) { + return ""; + } + if (argsLen > 1) { + for (let a = 1; a < argsLen; a++) { + str += " " + args[a]; + } + } + if (!this.enabled || this.level <= 0 || !str) { + return this._empty ? "" : str; + } + const originalDim = ansiStyles.dim.open; + if (isSimpleWindowsTerm && this.hasGrey) { + ansiStyles.dim.open = ""; + } + for (const code of this._styles.slice().reverse()) { + str = code.open + str.replace(code.closeRe, code.open) + code.close; + str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + } + ansiStyles.dim.open = originalDim; + return str; + } + function chalkTag(chalk, strings) { + if (!Array.isArray(strings)) { + return [].slice.call(arguments, 1).join(" "); + } + const args = [].slice.call(arguments, 2); + const parts = [strings.raw[0]]; + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, "\\$&")); + parts.push(String(strings.raw[i])); + } + return template(chalk, parts.join("")); + } + Object.defineProperties(Chalk.prototype, styles); + module2.exports = Chalk(); + module2.exports.supportsColor = stdoutColor; + module2.exports.default = module2.exports; + } +}); +var require_lib2 = __commonJS({ + "node_modules/@babel/highlight/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = highlight; + exports2.getChalk = getChalk; + exports2.shouldHighlight = shouldHighlight; + var _jsTokens = require_js_tokens(); + var _helperValidatorIdentifier = require_lib(); + var _chalk = require_chalk(); + var sometimesKeywords = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]); + function getDefs(chalk) { + return { + keyword: chalk.cyan, + capitalized: chalk.yellow, + jsxIdentifier: chalk.yellow, + punctuator: chalk.yellow, + number: chalk.magenta, + string: chalk.green, + regex: chalk.magenta, + comment: chalk.grey, + invalid: chalk.white.bgRed.bold + }; + } + var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + var BRACKET = /^[()[\]{}]$/; + var tokenize; + { + const JSX_TAG = /^[a-z][\w-]*$/i; + const getTokenType = function(token, offset, text) { + if (token.type === "name") { + if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " colorize(str)).join("\n"); + } else { + highlighted += value; + } + } + return highlighted; + } + function shouldHighlight(options) { + return !!_chalk.supportsColor || options.forceColor; + } + function getChalk(options) { + return options.forceColor ? new _chalk.constructor({ + enabled: true, + level: 1 + }) : _chalk; + } + function highlight(code, options = {}) { + if (code !== "" && shouldHighlight(options)) { + const chalk = getChalk(options); + const defs = getDefs(chalk); + return highlightTokens(defs, code); + } else { + return code; + } + } + } +}); +var require_lib3 = __commonJS({ + "node_modules/@babel/code-frame/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.codeFrameColumns = codeFrameColumns; + exports2.default = _default; + var _highlight = require_lib2(); + var deprecationWarningShown = false; + function getDefs(chalk) { + return { + gutter: chalk.grey, + marker: chalk.red.bold, + message: chalk.red.bold + }; + } + var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + if (startLine === -1) { + start = 0; + } + if (endLine === -1) { + end = source.length; + } + const lineDiff = endLine - startLine; + const markerLines = {}; + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + return { + start, + end, + markerLines + }; + } + function codeFrameColumns(rawLines, loc, opts = {}) { + const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); + const chalk = (0, _highlight.getChalk)(opts); + const defs = getDefs(chalk); + const maybeHighlight = (chalkFn, string) => { + return highlighted ? chalkFn(string) : string; + }; + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; + let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + if (hasMarker) { + let markerLine = ""; + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + if (lastMarkerLine && opts.message) { + markerLine += " " + maybeHighlight(defs.message, opts.message); + } + } + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message} +${frame}`; + } + if (highlighted) { + return chalk.reset(frame); + } else { + return frame; + } + } + function _default(rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); + } + } +}); +var require_parse_json = __commonJS({ + "node_modules/parse-json/index.js"(exports2, module2) { + "use strict"; + var errorEx = require_error_ex(); + var fallback = require_json_parse_even_better_errors(); + var { + default: LinesAndColumns + } = require_build(); + var { + codeFrameColumns + } = require_lib3(); + var JSONError = errorEx("JSONError", { + fileName: errorEx.append("in %s"), + codeFrame: errorEx.append("\n\n%s\n") + }); + var parseJson = (string, reviver, filename) => { + if (typeof reviver === "string") { + filename = reviver; + reviver = null; + } + try { + try { + return JSON.parse(string, reviver); + } catch (error) { + fallback(string, reviver); + throw error; + } + } catch (error) { + error.message = error.message.replace(/\n/g, ""); + const indexMatch = error.message.match(/in JSON at position (\d+) while parsing/); + const jsonError = new JSONError(error); + if (filename) { + jsonError.fileName = filename; + } + if (indexMatch && indexMatch.length > 0) { + const lines = new LinesAndColumns(string); + const index = Number(indexMatch[1]); + const location = lines.locationForIndex(index); + const codeFrame = codeFrameColumns(string, { + start: { + line: location.line + 1, + column: location.column + 1 + } + }, { + highlightCode: true + }); + jsonError.codeFrame = codeFrame; + } + throw jsonError; + } + }; + parseJson.JSONError = JSONError; + module2.exports = parseJson; + } +}); +var require_PlainValue_ec8e588e = __commonJS({ + "node_modules/yaml/dist/PlainValue-ec8e588e.js"(exports2) { + "use strict"; + var Char = { + ANCHOR: "&", + COMMENT: "#", + TAG: "!", + DIRECTIVES_END: "-", + DOCUMENT_END: "." + }; + var Type = { + ALIAS: "ALIAS", + BLANK_LINE: "BLANK_LINE", + BLOCK_FOLDED: "BLOCK_FOLDED", + BLOCK_LITERAL: "BLOCK_LITERAL", + COMMENT: "COMMENT", + DIRECTIVE: "DIRECTIVE", + DOCUMENT: "DOCUMENT", + FLOW_MAP: "FLOW_MAP", + FLOW_SEQ: "FLOW_SEQ", + MAP: "MAP", + MAP_KEY: "MAP_KEY", + MAP_VALUE: "MAP_VALUE", + PLAIN: "PLAIN", + QUOTE_DOUBLE: "QUOTE_DOUBLE", + QUOTE_SINGLE: "QUOTE_SINGLE", + SEQ: "SEQ", + SEQ_ITEM: "SEQ_ITEM" + }; + var defaultTagPrefix = "tag:yaml.org,2002:"; + var defaultTags = { + MAP: "tag:yaml.org,2002:map", + SEQ: "tag:yaml.org,2002:seq", + STR: "tag:yaml.org,2002:str" + }; + function findLineStarts(src) { + const ls = [0]; + let offset = src.indexOf("\n"); + while (offset !== -1) { + offset += 1; + ls.push(offset); + offset = src.indexOf("\n", offset); + } + return ls; + } + function getSrcInfo(cst) { + let lineStarts, src; + if (typeof cst === "string") { + lineStarts = findLineStarts(cst); + src = cst; + } else { + if (Array.isArray(cst)) + cst = cst[0]; + if (cst && cst.context) { + if (!cst.lineStarts) + cst.lineStarts = findLineStarts(cst.context.src); + lineStarts = cst.lineStarts; + src = cst.context.src; + } + } + return { + lineStarts, + src + }; + } + function getLinePos(offset, cst) { + if (typeof offset !== "number" || offset < 0) + return null; + const { + lineStarts, + src + } = getSrcInfo(cst); + if (!lineStarts || !src || offset > src.length) + return null; + for (let i = 0; i < lineStarts.length; ++i) { + const start = lineStarts[i]; + if (offset < start) { + return { + line: i, + col: offset - lineStarts[i - 1] + 1 + }; + } + if (offset === start) + return { + line: i + 1, + col: 1 + }; + } + const line = lineStarts.length; + return { + line, + col: offset - lineStarts[line - 1] + 1 + }; + } + function getLine(line, cst) { + const { + lineStarts, + src + } = getSrcInfo(cst); + if (!lineStarts || !(line >= 1) || line > lineStarts.length) + return null; + const start = lineStarts[line - 1]; + let end = lineStarts[line]; + while (end && end > start && src[end - 1] === "\n") + --end; + return src.slice(start, end); + } + function getPrettyContext({ + start, + end + }, cst, maxWidth = 80) { + let src = getLine(start.line, cst); + if (!src) + return null; + let { + col + } = start; + if (src.length > maxWidth) { + if (col <= maxWidth - 10) { + src = src.substr(0, maxWidth - 1) + "\u2026"; + } else { + const halfWidth = Math.round(maxWidth / 2); + if (src.length > col + halfWidth) + src = src.substr(0, col + halfWidth - 1) + "\u2026"; + col -= src.length - maxWidth; + src = "\u2026" + src.substr(1 - maxWidth); + } + } + let errLen = 1; + let errEnd = ""; + if (end) { + if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) { + errLen = end.col - start.col; + } else { + errLen = Math.min(src.length + 1, maxWidth) - col; + errEnd = "\u2026"; + } + } + const offset = col > 1 ? " ".repeat(col - 1) : ""; + const err = "^".repeat(errLen); + return `${src} +${offset}${err}${errEnd}`; + } + var Range = class { + static copy(orig) { + return new Range(orig.start, orig.end); + } + constructor(start, end) { + this.start = start; + this.end = end || start; + } + isEmpty() { + return typeof this.start !== "number" || !this.end || this.end <= this.start; + } + setOrigRange(cr, offset) { + const { + start, + end + } = this; + if (cr.length === 0 || end <= cr[0]) { + this.origStart = start; + this.origEnd = end; + return offset; + } + let i = offset; + while (i < cr.length) { + if (cr[i] > start) + break; + else + ++i; + } + this.origStart = start + i; + const nextOffset = i; + while (i < cr.length) { + if (cr[i] >= end) + break; + else + ++i; + } + this.origEnd = end + i; + return nextOffset; + } + }; + var Node = class { + static addStringTerminator(src, offset, str) { + if (str[str.length - 1] === "\n") + return str; + const next = Node.endOfWhiteSpace(src, offset); + return next >= src.length || src[next] === "\n" ? str + "\n" : str; + } + static atDocumentBoundary(src, offset, sep) { + const ch0 = src[offset]; + if (!ch0) + return true; + const prev = src[offset - 1]; + if (prev && prev !== "\n") + return false; + if (sep) { + if (ch0 !== sep) + return false; + } else { + if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) + return false; + } + const ch1 = src[offset + 1]; + const ch2 = src[offset + 2]; + if (ch1 !== ch0 || ch2 !== ch0) + return false; + const ch3 = src[offset + 3]; + return !ch3 || ch3 === "\n" || ch3 === " " || ch3 === " "; + } + static endOfIdentifier(src, offset) { + let ch = src[offset]; + const isVerbatim = ch === "<"; + const notOk = isVerbatim ? ["\n", " ", " ", ">"] : ["\n", " ", " ", "[", "]", "{", "}", ","]; + while (ch && notOk.indexOf(ch) === -1) + ch = src[offset += 1]; + if (isVerbatim && ch === ">") + offset += 1; + return offset; + } + static endOfIndent(src, offset) { + let ch = src[offset]; + while (ch === " ") + ch = src[offset += 1]; + return offset; + } + static endOfLine(src, offset) { + let ch = src[offset]; + while (ch && ch !== "\n") + ch = src[offset += 1]; + return offset; + } + static endOfWhiteSpace(src, offset) { + let ch = src[offset]; + while (ch === " " || ch === " ") + ch = src[offset += 1]; + return offset; + } + static startOfLine(src, offset) { + let ch = src[offset - 1]; + if (ch === "\n") + return offset; + while (ch && ch !== "\n") + ch = src[offset -= 1]; + return offset + 1; + } + static endOfBlockIndent(src, indent, lineStart) { + const inEnd = Node.endOfIndent(src, lineStart); + if (inEnd > lineStart + indent) { + return inEnd; + } else { + const wsEnd = Node.endOfWhiteSpace(src, inEnd); + const ch = src[wsEnd]; + if (!ch || ch === "\n") + return wsEnd; + } + return null; + } + static atBlank(src, offset, endAsBlank) { + const ch = src[offset]; + return ch === "\n" || ch === " " || ch === " " || endAsBlank && !ch; + } + static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) { + if (!ch || indentDiff < 0) + return false; + if (indentDiff > 0) + return true; + return indicatorAsIndent && ch === "-"; + } + static normalizeOffset(src, offset) { + const ch = src[offset]; + return !ch ? offset : ch !== "\n" && src[offset - 1] === "\n" ? offset - 1 : Node.endOfWhiteSpace(src, offset); + } + static foldNewline(src, offset, indent) { + let inCount = 0; + let error = false; + let fold = ""; + let ch = src[offset + 1]; + while (ch === " " || ch === " " || ch === "\n") { + switch (ch) { + case "\n": + inCount = 0; + offset += 1; + fold += "\n"; + break; + case " ": + if (inCount <= indent) + error = true; + offset = Node.endOfWhiteSpace(src, offset + 2) - 1; + break; + case " ": + inCount += 1; + offset += 1; + break; + } + ch = src[offset + 1]; + } + if (!fold) + fold = " "; + if (ch && inCount <= indent) + error = true; + return { + fold, + offset, + error + }; + } + constructor(type, props, context) { + Object.defineProperty(this, "context", { + value: context || null, + writable: true + }); + this.error = null; + this.range = null; + this.valueRange = null; + this.props = props || []; + this.type = type; + this.value = null; + } + getPropValue(idx, key, skipKey) { + if (!this.context) + return null; + const { + src + } = this.context; + const prop = this.props[idx]; + return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null; + } + get anchor() { + for (let i = 0; i < this.props.length; ++i) { + const anchor = this.getPropValue(i, Char.ANCHOR, true); + if (anchor != null) + return anchor; + } + return null; + } + get comment() { + const comments = []; + for (let i = 0; i < this.props.length; ++i) { + const comment = this.getPropValue(i, Char.COMMENT, true); + if (comment != null) + comments.push(comment); + } + return comments.length > 0 ? comments.join("\n") : null; + } + commentHasRequiredWhitespace(start) { + const { + src + } = this.context; + if (this.header && start === this.header.end) + return false; + if (!this.valueRange) + return false; + const { + end + } = this.valueRange; + return start !== end || Node.atBlank(src, end - 1); + } + get hasComment() { + if (this.context) { + const { + src + } = this.context; + for (let i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] === Char.COMMENT) + return true; + } + } + return false; + } + get hasProps() { + if (this.context) { + const { + src + } = this.context; + for (let i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] !== Char.COMMENT) + return true; + } + } + return false; + } + get includesTrailingLines() { + return false; + } + get jsonLike() { + const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE]; + return jsonLikeTypes.indexOf(this.type) !== -1; + } + get rangeAsLinePos() { + if (!this.range || !this.context) + return void 0; + const start = getLinePos(this.range.start, this.context.root); + if (!start) + return void 0; + const end = getLinePos(this.range.end, this.context.root); + return { + start, + end + }; + } + get rawValue() { + if (!this.valueRange || !this.context) + return null; + const { + start, + end + } = this.valueRange; + return this.context.src.slice(start, end); + } + get tag() { + for (let i = 0; i < this.props.length; ++i) { + const tag = this.getPropValue(i, Char.TAG, false); + if (tag != null) { + if (tag[1] === "<") { + return { + verbatim: tag.slice(2, -1) + }; + } else { + const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/); + return { + handle, + suffix + }; + } + } + } + return null; + } + get valueRangeContainsNewline() { + if (!this.valueRange || !this.context) + return false; + const { + start, + end + } = this.valueRange; + const { + src + } = this.context; + for (let i = start; i < end; ++i) { + if (src[i] === "\n") + return true; + } + return false; + } + parseComment(start) { + const { + src + } = this.context; + if (src[start] === Char.COMMENT) { + const end = Node.endOfLine(src, start + 1); + const commentRange = new Range(start, end); + this.props.push(commentRange); + return end; + } + return start; + } + setOrigRanges(cr, offset) { + if (this.range) + offset = this.range.setOrigRange(cr, offset); + if (this.valueRange) + this.valueRange.setOrigRange(cr, offset); + this.props.forEach((prop) => prop.setOrigRange(cr, offset)); + return offset; + } + toString() { + const { + context: { + src + }, + range, + value + } = this; + if (value != null) + return value; + const str = src.slice(range.start, range.end); + return Node.addStringTerminator(src, range.end, str); + } + }; + var YAMLError = class extends Error { + constructor(name, source, message) { + if (!message || !(source instanceof Node)) + throw new Error(`Invalid arguments for new ${name}`); + super(); + this.name = name; + this.message = message; + this.source = source; + } + makePretty() { + if (!this.source) + return; + this.nodeType = this.source.type; + const cst = this.source.context && this.source.context.root; + if (typeof this.offset === "number") { + this.range = new Range(this.offset, this.offset + 1); + const start = cst && getLinePos(this.offset, cst); + if (start) { + const end = { + line: start.line, + col: start.col + 1 + }; + this.linePos = { + start, + end + }; + } + delete this.offset; + } else { + this.range = this.source.range; + this.linePos = this.source.rangeAsLinePos; + } + if (this.linePos) { + const { + line, + col + } = this.linePos.start; + this.message += ` at line ${line}, column ${col}`; + const ctx = cst && getPrettyContext(this.linePos, cst); + if (ctx) + this.message += `: + +${ctx} +`; + } + delete this.source; + } + }; + var YAMLReferenceError = class extends YAMLError { + constructor(source, message) { + super("YAMLReferenceError", source, message); + } + }; + var YAMLSemanticError = class extends YAMLError { + constructor(source, message) { + super("YAMLSemanticError", source, message); + } + }; + var YAMLSyntaxError = class extends YAMLError { + constructor(source, message) { + super("YAMLSyntaxError", source, message); + } + }; + var YAMLWarning = class extends YAMLError { + constructor(source, message) { + super("YAMLWarning", source, message); + } + }; + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var PlainValue = class extends Node { + static endOfLine(src, start, inFlow) { + let ch = src[start]; + let offset = start; + while (ch && ch !== "\n") { + if (inFlow && (ch === "[" || ch === "]" || ch === "{" || ch === "}" || ch === ",")) + break; + const next = src[offset + 1]; + if (ch === ":" && (!next || next === "\n" || next === " " || next === " " || inFlow && next === ",")) + break; + if ((ch === " " || ch === " ") && next === "#") + break; + offset += 1; + ch = next; + } + return offset; + } + get strValue() { + if (!this.valueRange || !this.context) + return null; + let { + start, + end + } = this.valueRange; + const { + src + } = this.context; + let ch = src[end - 1]; + while (start < end && (ch === "\n" || ch === " " || ch === " ")) + ch = src[--end - 1]; + let str = ""; + for (let i = start; i < end; ++i) { + const ch2 = src[i]; + if (ch2 === "\n") { + const { + fold, + offset + } = Node.foldNewline(src, i, -1); + str += fold; + i = offset; + } else if (ch2 === " " || ch2 === " ") { + const wsStart = i; + let next = src[i + 1]; + while (i < end && (next === " " || next === " ")) { + i += 1; + next = src[i + 1]; + } + if (next !== "\n") + str += i > wsStart ? src.slice(wsStart, i + 1) : ch2; + } else { + str += ch2; + } + } + const ch0 = src[start]; + switch (ch0) { + case " ": { + const msg = "Plain value cannot start with a tab character"; + const errors = [new YAMLSemanticError(this, msg)]; + return { + errors, + str + }; + } + case "@": + case "`": { + const msg = `Plain value cannot start with reserved character ${ch0}`; + const errors = [new YAMLSemanticError(this, msg)]; + return { + errors, + str + }; + } + default: + return str; + } + } + parseBlockValue(start) { + const { + indent, + inFlow, + src + } = this.context; + let offset = start; + let valueEnd = start; + for (let ch = src[offset]; ch === "\n"; ch = src[offset]) { + if (Node.atDocumentBoundary(src, offset + 1)) + break; + const end = Node.endOfBlockIndent(src, indent, offset + 1); + if (end === null || src[end] === "#") + break; + if (src[end] === "\n") { + offset = end; + } else { + valueEnd = PlainValue.endOfLine(src, end, inFlow); + offset = valueEnd; + } + } + if (this.valueRange.isEmpty()) + this.valueRange.start = start; + this.valueRange.end = valueEnd; + return valueEnd; + } + parse(context, start) { + this.context = context; + const { + inFlow, + src + } = context; + let offset = start; + const ch = src[offset]; + if (ch && ch !== "#" && ch !== "\n") { + offset = PlainValue.endOfLine(src, start, inFlow); + } + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + if (!this.hasComment || this.valueRange.isEmpty()) { + offset = this.parseBlockValue(offset); + } + return offset; + } + }; + exports2.Char = Char; + exports2.Node = Node; + exports2.PlainValue = PlainValue; + exports2.Range = Range; + exports2.Type = Type; + exports2.YAMLError = YAMLError; + exports2.YAMLReferenceError = YAMLReferenceError; + exports2.YAMLSemanticError = YAMLSemanticError; + exports2.YAMLSyntaxError = YAMLSyntaxError; + exports2.YAMLWarning = YAMLWarning; + exports2._defineProperty = _defineProperty; + exports2.defaultTagPrefix = defaultTagPrefix; + exports2.defaultTags = defaultTags; + } +}); +var require_parse_cst = __commonJS({ + "node_modules/yaml/dist/parse-cst.js"(exports2) { + "use strict"; + var PlainValue = require_PlainValue_ec8e588e(); + var BlankLine = class extends PlainValue.Node { + constructor() { + super(PlainValue.Type.BLANK_LINE); + } + get includesTrailingLines() { + return true; + } + parse(context, start) { + this.context = context; + this.range = new PlainValue.Range(start, start + 1); + return start + 1; + } + }; + var CollectionItem = class extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.node = null; + } + get includesTrailingLines() { + return !!this.node && this.node.includesTrailingLines; + } + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; + let { + atLineStart, + lineStart + } = context; + if (!atLineStart && this.type === PlainValue.Type.SEQ_ITEM) + this.error = new PlainValue.YAMLSemanticError(this, "Sequence items must not have preceding content on the same line"); + const indent = atLineStart ? start - lineStart : context.indent; + let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1); + let ch = src[offset]; + const inlineComment = ch === "#"; + const comments = []; + let blankLine = null; + while (ch === "\n" || ch === "#") { + if (ch === "#") { + const end2 = PlainValue.Node.endOfLine(src, offset + 1); + comments.push(new PlainValue.Range(offset, end2)); + offset = end2; + } else { + atLineStart = true; + lineStart = offset + 1; + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart); + if (src[wsEnd] === "\n" && comments.length === 0) { + blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src + }, lineStart); + } + offset = PlainValue.Node.endOfIndent(src, lineStart); + } + ch = src[offset]; + } + if (PlainValue.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue.Type.SEQ_ITEM)) { + this.node = parseNode({ + atLineStart, + inCollection: false, + indent, + lineStart, + parent: this + }, offset); + } else if (ch && lineStart > start + 1) { + offset = lineStart - 1; + } + if (this.node) { + if (blankLine) { + const items = context.parent.items || context.parent.contents; + if (items) + items.push(blankLine); + } + if (comments.length) + Array.prototype.push.apply(this.props, comments); + offset = this.node.range.end; + } else { + if (inlineComment) { + const c = comments[0]; + this.props.push(c); + offset = c.end; + } else { + offset = PlainValue.Node.endOfLine(src, start + 1); + } + } + const end = this.node ? this.node.valueRange.end : offset; + this.valueRange = new PlainValue.Range(start, end); + return offset; + } + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + return this.node ? this.node.setOrigRanges(cr, offset) : offset; + } + toString() { + const { + context: { + src + }, + node, + range, + value + } = this; + if (value != null) + return value; + const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end); + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + }; + var Comment = class extends PlainValue.Node { + constructor() { + super(PlainValue.Type.COMMENT); + } + parse(context, start) { + this.context = context; + const offset = this.parseComment(start); + this.range = new PlainValue.Range(start, offset); + return offset; + } + }; + function grabCollectionEndComments(node) { + let cnode = node; + while (cnode instanceof CollectionItem) + cnode = cnode.node; + if (!(cnode instanceof Collection)) + return null; + const len = cnode.items.length; + let ci = -1; + for (let i = len - 1; i >= 0; --i) { + const n = cnode.items[i]; + if (n.type === PlainValue.Type.COMMENT) { + const { + indent, + lineStart + } = n.context; + if (indent > 0 && n.range.start >= lineStart + indent) + break; + ci = i; + } else if (n.type === PlainValue.Type.BLANK_LINE) + ci = i; + else + break; + } + if (ci === -1) + return null; + const ca = cnode.items.splice(ci, len - ci); + const prevEnd = ca[0].range.start; + while (true) { + cnode.range.end = prevEnd; + if (cnode.valueRange && cnode.valueRange.end > prevEnd) + cnode.valueRange.end = prevEnd; + if (cnode === node) + break; + cnode = cnode.context.parent; + } + return ca; + } + var Collection = class extends PlainValue.Node { + static nextContentHasIndent(src, offset, indent) { + const lineStart = PlainValue.Node.endOfLine(src, offset) + 1; + offset = PlainValue.Node.endOfWhiteSpace(src, lineStart); + const ch = src[offset]; + if (!ch) + return false; + if (offset >= lineStart + indent) + return true; + if (ch !== "#" && ch !== "\n") + return false; + return Collection.nextContentHasIndent(src, offset, indent); + } + constructor(firstItem) { + super(firstItem.type === PlainValue.Type.SEQ_ITEM ? PlainValue.Type.SEQ : PlainValue.Type.MAP); + for (let i = firstItem.props.length - 1; i >= 0; --i) { + if (firstItem.props[i].start < firstItem.context.lineStart) { + this.props = firstItem.props.slice(0, i + 1); + firstItem.props = firstItem.props.slice(i + 1); + const itemRange = firstItem.props[0] || firstItem.valueRange; + firstItem.range.start = itemRange.start; + break; + } + } + this.items = [firstItem]; + const ec = grabCollectionEndComments(firstItem); + if (ec) + Array.prototype.push.apply(this.items, ec); + } + get includesTrailingLines() { + return this.items.length > 0; + } + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; + let lineStart = PlainValue.Node.startOfLine(src, start); + const firstItem = this.items[0]; + firstItem.context.parent = this; + this.valueRange = PlainValue.Range.copy(firstItem.valueRange); + const indent = firstItem.range.start - firstItem.context.lineStart; + let offset = start; + offset = PlainValue.Node.normalizeOffset(src, offset); + let ch = src[offset]; + let atLineStart = PlainValue.Node.endOfWhiteSpace(src, lineStart) === offset; + let prevIncludesTrailingLines = false; + while (ch) { + while (ch === "\n" || ch === "#") { + if (atLineStart && ch === "\n" && !prevIncludesTrailingLines) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + this.valueRange.end = offset; + if (offset >= src.length) { + ch = null; + break; + } + this.items.push(blankLine); + offset -= 1; + } else if (ch === "#") { + if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) { + return offset; + } + const comment = new Comment(); + offset = comment.parse({ + indent, + lineStart, + src + }, offset); + this.items.push(comment); + this.valueRange.end = offset; + if (offset >= src.length) { + ch = null; + break; + } + } + lineStart = offset + 1; + offset = PlainValue.Node.endOfIndent(src, lineStart); + if (PlainValue.Node.atBlank(src, offset)) { + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, offset); + const next = src[wsEnd]; + if (!next || next === "\n" || next === "#") { + offset = wsEnd; + } + } + ch = src[offset]; + atLineStart = true; + } + if (!ch) { + break; + } + if (offset !== lineStart + indent && (atLineStart || ch !== ":")) { + if (offset < lineStart + indent) { + if (lineStart > start) + offset = lineStart; + break; + } else if (!this.error) { + const msg = "All collection items must start at the same column"; + this.error = new PlainValue.YAMLSyntaxError(this, msg); + } + } + if (firstItem.type === PlainValue.Type.SEQ_ITEM) { + if (ch !== "-") { + if (lineStart > start) + offset = lineStart; + break; + } + } else if (ch === "-" && !this.error) { + const next = src[offset + 1]; + if (!next || next === "\n" || next === " " || next === " ") { + const msg = "A collection cannot be both a mapping and a sequence"; + this.error = new PlainValue.YAMLSyntaxError(this, msg); + } + } + const node = parseNode({ + atLineStart, + inCollection: true, + indent, + lineStart, + parent: this + }, offset); + if (!node) + return offset; + this.items.push(node); + this.valueRange.end = node.valueRange.end; + offset = PlainValue.Node.normalizeOffset(src, node.range.end); + ch = src[offset]; + atLineStart = false; + prevIncludesTrailingLines = node.includesTrailingLines; + if (ch) { + let ls = offset - 1; + let prev = src[ls]; + while (prev === " " || prev === " ") + prev = src[--ls]; + if (prev === "\n") { + lineStart = ls + 1; + atLineStart = true; + } + } + const ec = grabCollectionEndComments(node); + if (ec) + Array.prototype.push.apply(this.items, ec); + } + return offset; + } + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.items.forEach((node) => { + offset = node.setOrigRanges(cr, offset); + }); + return offset; + } + toString() { + const { + context: { + src + }, + items, + range, + value + } = this; + if (value != null) + return value; + let str = src.slice(range.start, items[0].range.start) + String(items[0]); + for (let i = 1; i < items.length; ++i) { + const item = items[i]; + const { + atLineStart, + indent + } = item.context; + if (atLineStart) + for (let i2 = 0; i2 < indent; ++i2) + str += " "; + str += String(item); + } + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + }; + var Directive = class extends PlainValue.Node { + constructor() { + super(PlainValue.Type.DIRECTIVE); + this.name = null; + } + get parameters() { + const raw = this.rawValue; + return raw ? raw.trim().split(/[ \t]+/) : []; + } + parseName(start) { + const { + src + } = this.context; + let offset = start; + let ch = src[offset]; + while (ch && ch !== "\n" && ch !== " " && ch !== " ") + ch = src[offset += 1]; + this.name = src.slice(start, offset); + return offset; + } + parseParameters(start) { + const { + src + } = this.context; + let offset = start; + let ch = src[offset]; + while (ch && ch !== "\n" && ch !== "#") + ch = src[offset += 1]; + this.valueRange = new PlainValue.Range(start, offset); + return offset; + } + parse(context, start) { + this.context = context; + let offset = this.parseName(start + 1); + offset = this.parseParameters(offset); + offset = this.parseComment(offset); + this.range = new PlainValue.Range(start, offset); + return offset; + } + }; + var Document = class extends PlainValue.Node { + static startCommentOrEndBlankLine(src, start) { + const offset = PlainValue.Node.endOfWhiteSpace(src, start); + const ch = src[offset]; + return ch === "#" || ch === "\n" ? offset : start; + } + constructor() { + super(PlainValue.Type.DOCUMENT); + this.directives = null; + this.contents = null; + this.directivesEndMarker = null; + this.documentEndMarker = null; + } + parseDirectives(start) { + const { + src + } = this.context; + this.directives = []; + let atLineStart = true; + let hasDirectives = false; + let offset = start; + while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DIRECTIVES_END)) { + offset = Document.startCommentOrEndBlankLine(src, offset); + switch (src[offset]) { + case "\n": + if (atLineStart) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + if (offset < src.length) { + this.directives.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + break; + case "#": + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.directives.push(comment); + atLineStart = false; + } + break; + case "%": + { + const directive = new Directive(); + offset = directive.parse({ + parent: this, + src + }, offset); + this.directives.push(directive); + hasDirectives = true; + atLineStart = false; + } + break; + default: + if (hasDirectives) { + this.error = new PlainValue.YAMLSemanticError(this, "Missing directives-end indicator line"); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + return offset; + } + } + if (src[offset]) { + this.directivesEndMarker = new PlainValue.Range(offset, offset + 3); + return offset + 3; + } + if (hasDirectives) { + this.error = new PlainValue.YAMLSemanticError(this, "Missing directives-end indicator line"); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + return offset; + } + parseContents(start) { + const { + parseNode, + src + } = this.context; + if (!this.contents) + this.contents = []; + let lineStart = start; + while (src[lineStart - 1] === "-") + lineStart -= 1; + let offset = PlainValue.Node.endOfWhiteSpace(src, start); + let atLineStart = lineStart === start; + this.valueRange = new PlainValue.Range(offset); + while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DOCUMENT_END)) { + switch (src[offset]) { + case "\n": + if (atLineStart) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + if (offset < src.length) { + this.contents.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + lineStart = offset; + break; + case "#": + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.contents.push(comment); + atLineStart = false; + } + break; + default: { + const iEnd = PlainValue.Node.endOfIndent(src, offset); + const context = { + atLineStart, + indent: -1, + inFlow: false, + inCollection: false, + lineStart, + parent: this + }; + const node = parseNode(context, iEnd); + if (!node) + return this.valueRange.end = iEnd; + this.contents.push(node); + offset = node.range.end; + atLineStart = false; + const ec = grabCollectionEndComments(node); + if (ec) + Array.prototype.push.apply(this.contents, ec); + } + } + offset = Document.startCommentOrEndBlankLine(src, offset); + } + this.valueRange.end = offset; + if (src[offset]) { + this.documentEndMarker = new PlainValue.Range(offset, offset + 3); + offset += 3; + if (src[offset]) { + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + if (src[offset] === "#") { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.contents.push(comment); + } + switch (src[offset]) { + case "\n": + offset += 1; + break; + case void 0: + break; + default: + this.error = new PlainValue.YAMLSyntaxError(this, "Document end marker line cannot have a non-comment suffix"); + } + } + } + return offset; + } + parse(context, start) { + context.root = this; + this.context = context; + const { + src + } = context; + let offset = src.charCodeAt(start) === 65279 ? start + 1 : start; + offset = this.parseDirectives(offset); + offset = this.parseContents(offset); + return offset; + } + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.directives.forEach((node) => { + offset = node.setOrigRanges(cr, offset); + }); + if (this.directivesEndMarker) + offset = this.directivesEndMarker.setOrigRange(cr, offset); + this.contents.forEach((node) => { + offset = node.setOrigRanges(cr, offset); + }); + if (this.documentEndMarker) + offset = this.documentEndMarker.setOrigRange(cr, offset); + return offset; + } + toString() { + const { + contents, + directives, + value + } = this; + if (value != null) + return value; + let str = directives.join(""); + if (contents.length > 0) { + if (directives.length > 0 || contents[0].type === PlainValue.Type.COMMENT) + str += "---\n"; + str += contents.join(""); + } + if (str[str.length - 1] !== "\n") + str += "\n"; + return str; + } + }; + var Alias = class extends PlainValue.Node { + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = PlainValue.Node.endOfIdentifier(src, start + 1); + this.valueRange = new PlainValue.Range(start + 1, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }; + var Chomp = { + CLIP: "CLIP", + KEEP: "KEEP", + STRIP: "STRIP" + }; + var BlockValue = class extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.blockIndent = null; + this.chomping = Chomp.CLIP; + this.header = null; + } + get includesTrailingLines() { + return this.chomping === Chomp.KEEP; + } + get strValue() { + if (!this.valueRange || !this.context) + return null; + let { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (this.valueRange.isEmpty()) + return ""; + let lastNewLine = null; + let ch = src[end - 1]; + while (ch === "\n" || ch === " " || ch === " ") { + end -= 1; + if (end <= start) { + if (this.chomping === Chomp.KEEP) + break; + else + return ""; + } + if (ch === "\n") + lastNewLine = end; + ch = src[end - 1]; + } + let keepStart = end + 1; + if (lastNewLine) { + if (this.chomping === Chomp.KEEP) { + keepStart = lastNewLine; + end = this.valueRange.end; + } else { + end = lastNewLine; + } + } + const bi = indent + this.blockIndent; + const folded = this.type === PlainValue.Type.BLOCK_FOLDED; + let atStart = true; + let str = ""; + let sep = ""; + let prevMoreIndented = false; + for (let i = start; i < end; ++i) { + for (let j = 0; j < bi; ++j) { + if (src[i] !== " ") + break; + i += 1; + } + const ch2 = src[i]; + if (ch2 === "\n") { + if (sep === "\n") + str += "\n"; + else + sep = "\n"; + } else { + const lineEnd = PlainValue.Node.endOfLine(src, i); + const line = src.slice(i, lineEnd); + i = lineEnd; + if (folded && (ch2 === " " || ch2 === " ") && i < keepStart) { + if (sep === " ") + sep = "\n"; + else if (!prevMoreIndented && !atStart && sep === "\n") + sep = "\n\n"; + str += sep + line; + sep = lineEnd < end && src[lineEnd] || ""; + prevMoreIndented = true; + } else { + str += sep + line; + sep = folded && i < keepStart ? " " : "\n"; + prevMoreIndented = false; + } + if (atStart && line !== "") + atStart = false; + } + } + return this.chomping === Chomp.STRIP ? str : str + "\n"; + } + parseBlockHeader(start) { + const { + src + } = this.context; + let offset = start + 1; + let bi = ""; + while (true) { + const ch = src[offset]; + switch (ch) { + case "-": + this.chomping = Chomp.STRIP; + break; + case "+": + this.chomping = Chomp.KEEP; + break; + case "0": + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + bi += ch; + break; + default: + this.blockIndent = Number(bi) || null; + this.header = new PlainValue.Range(start, offset); + return offset; + } + offset += 1; + } + } + parseBlockValue(start) { + const { + indent, + src + } = this.context; + const explicit = !!this.blockIndent; + let offset = start; + let valueEnd = start; + let minBlockIndent = 1; + for (let ch = src[offset]; ch === "\n"; ch = src[offset]) { + offset += 1; + if (PlainValue.Node.atDocumentBoundary(src, offset)) + break; + const end = PlainValue.Node.endOfBlockIndent(src, indent, offset); + if (end === null) + break; + const ch2 = src[end]; + const lineIndent = end - (offset + indent); + if (!this.blockIndent) { + if (src[end] !== "\n") { + if (lineIndent < minBlockIndent) { + const msg = "Block scalars with more-indented leading empty lines must use an explicit indentation indicator"; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + this.blockIndent = lineIndent; + } else if (lineIndent > minBlockIndent) { + minBlockIndent = lineIndent; + } + } else if (ch2 && ch2 !== "\n" && lineIndent < this.blockIndent) { + if (src[end] === "#") + break; + if (!this.error) { + const src2 = explicit ? "explicit indentation indicator" : "first line"; + const msg = `Block scalars must not be less indented than their ${src2}`; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + } + if (src[end] === "\n") { + offset = end; + } else { + offset = valueEnd = PlainValue.Node.endOfLine(src, end); + } + } + if (this.chomping !== Chomp.KEEP) { + offset = src[valueEnd] ? valueEnd + 1 : valueEnd; + } + this.valueRange = new PlainValue.Range(start + 1, offset); + return offset; + } + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = this.parseBlockHeader(start); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + offset = this.parseBlockValue(offset); + return offset; + } + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + return this.header ? this.header.setOrigRange(cr, offset) : offset; + } + }; + var FlowCollection = class extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.items = null; + } + prevNodeIsJsonLike(idx = this.items.length) { + const node = this.items[idx - 1]; + return !!node && (node.jsonLike || node.type === PlainValue.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1)); + } + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; + let { + indent, + lineStart + } = context; + let char = src[start]; + this.items = [{ + char, + offset: start + }]; + let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1); + char = src[offset]; + while (char && char !== "]" && char !== "}") { + switch (char) { + case "\n": + { + lineStart = offset + 1; + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart); + if (src[wsEnd] === "\n") { + const blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src + }, lineStart); + this.items.push(blankLine); + } + offset = PlainValue.Node.endOfIndent(src, lineStart); + if (offset <= lineStart + indent) { + char = src[offset]; + if (offset < lineStart + indent || char !== "]" && char !== "}") { + const msg = "Insufficient indentation in flow collection"; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + } + } + break; + case ",": + { + this.items.push({ + char, + offset + }); + offset += 1; + } + break; + case "#": + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.items.push(comment); + } + break; + case "?": + case ":": { + const next = src[offset + 1]; + if (next === "\n" || next === " " || next === " " || next === "," || char === ":" && this.prevNodeIsJsonLike()) { + this.items.push({ + char, + offset + }); + offset += 1; + break; + } + } + default: { + const node = parseNode({ + atLineStart: false, + inCollection: false, + inFlow: true, + indent: -1, + lineStart, + parent: this + }, offset); + if (!node) { + this.valueRange = new PlainValue.Range(start, offset); + return offset; + } + this.items.push(node); + offset = PlainValue.Node.normalizeOffset(src, node.range.end); + } + } + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + char = src[offset]; + } + this.valueRange = new PlainValue.Range(start, offset + 1); + if (char) { + this.items.push({ + char, + offset + }); + offset = PlainValue.Node.endOfWhiteSpace(src, offset + 1); + offset = this.parseComment(offset); + } + return offset; + } + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.items.forEach((node) => { + if (node instanceof PlainValue.Node) { + offset = node.setOrigRanges(cr, offset); + } else if (cr.length === 0) { + node.origOffset = node.offset; + } else { + let i = offset; + while (i < cr.length) { + if (cr[i] > node.offset) + break; + else + ++i; + } + node.origOffset = node.offset + i; + offset = i; + } + }); + return offset; + } + toString() { + const { + context: { + src + }, + items, + range, + value + } = this; + if (value != null) + return value; + const nodes = items.filter((item) => item instanceof PlainValue.Node); + let str = ""; + let prevEnd = range.start; + nodes.forEach((node) => { + const prefix = src.slice(prevEnd, node.range.start); + prevEnd = node.range.end; + str += prefix + String(node); + if (str[str.length - 1] === "\n" && src[prevEnd - 1] !== "\n" && src[prevEnd] === "\n") { + prevEnd += 1; + } + }); + str += src.slice(prevEnd, range.end); + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + }; + var QuoteDouble = class extends PlainValue.Node { + static endOfQuote(src, offset) { + let ch = src[offset]; + while (ch && ch !== '"') { + offset += ch === "\\" ? 2 : 1; + ch = src[offset]; + } + return offset + 1; + } + get strValue() { + if (!this.valueRange || !this.context) + return null; + const errors = []; + const { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (src[end - 1] !== '"') + errors.push(new PlainValue.YAMLSyntaxError(this, 'Missing closing "quote')); + let str = ""; + for (let i = start + 1; i < end - 1; ++i) { + const ch = src[i]; + if (ch === "\n") { + if (PlainValue.Node.atDocumentBoundary(src, i + 1)) + errors.push(new PlainValue.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values")); + const { + fold, + offset, + error + } = PlainValue.Node.foldNewline(src, i, indent); + str += fold; + i = offset; + if (error) + errors.push(new PlainValue.YAMLSemanticError(this, "Multi-line double-quoted string needs to be sufficiently indented")); + } else if (ch === "\\") { + i += 1; + switch (src[i]) { + case "0": + str += "\0"; + break; + case "a": + str += "\x07"; + break; + case "b": + str += "\b"; + break; + case "e": + str += "\x1B"; + break; + case "f": + str += "\f"; + break; + case "n": + str += "\n"; + break; + case "r": + str += "\r"; + break; + case "t": + str += " "; + break; + case "v": + str += "\v"; + break; + case "N": + str += "\x85"; + break; + case "_": + str += "\xA0"; + break; + case "L": + str += "\u2028"; + break; + case "P": + str += "\u2029"; + break; + case " ": + str += " "; + break; + case '"': + str += '"'; + break; + case "/": + str += "/"; + break; + case "\\": + str += "\\"; + break; + case " ": + str += " "; + break; + case "x": + str += this.parseCharCode(i + 1, 2, errors); + i += 2; + break; + case "u": + str += this.parseCharCode(i + 1, 4, errors); + i += 4; + break; + case "U": + str += this.parseCharCode(i + 1, 8, errors); + i += 8; + break; + case "\n": + while (src[i + 1] === " " || src[i + 1] === " ") + i += 1; + break; + default: + errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`)); + str += "\\" + src[i]; + } + } else if (ch === " " || ch === " ") { + const wsStart = i; + let next = src[i + 1]; + while (next === " " || next === " ") { + i += 1; + next = src[i + 1]; + } + if (next !== "\n") + str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + return errors.length > 0 ? { + errors, + str + } : str; + } + parseCharCode(offset, length, errors) { + const { + src + } = this.context; + const cc = src.substr(offset, length); + const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc); + const code = ok ? parseInt(cc, 16) : NaN; + if (isNaN(code)) { + errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`)); + return src.substr(offset - 2, length + 2); + } + return String.fromCodePoint(code); + } + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = QuoteDouble.endOfQuote(src, start + 1); + this.valueRange = new PlainValue.Range(start, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }; + var QuoteSingle = class extends PlainValue.Node { + static endOfQuote(src, offset) { + let ch = src[offset]; + while (ch) { + if (ch === "'") { + if (src[offset + 1] !== "'") + break; + ch = src[offset += 2]; + } else { + ch = src[offset += 1]; + } + } + return offset + 1; + } + get strValue() { + if (!this.valueRange || !this.context) + return null; + const errors = []; + const { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (src[end - 1] !== "'") + errors.push(new PlainValue.YAMLSyntaxError(this, "Missing closing 'quote")); + let str = ""; + for (let i = start + 1; i < end - 1; ++i) { + const ch = src[i]; + if (ch === "\n") { + if (PlainValue.Node.atDocumentBoundary(src, i + 1)) + errors.push(new PlainValue.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values")); + const { + fold, + offset, + error + } = PlainValue.Node.foldNewline(src, i, indent); + str += fold; + i = offset; + if (error) + errors.push(new PlainValue.YAMLSemanticError(this, "Multi-line single-quoted string needs to be sufficiently indented")); + } else if (ch === "'") { + str += ch; + i += 1; + if (src[i] !== "'") + errors.push(new PlainValue.YAMLSyntaxError(this, "Unescaped single quote? This should not happen.")); + } else if (ch === " " || ch === " ") { + const wsStart = i; + let next = src[i + 1]; + while (next === " " || next === " ") { + i += 1; + next = src[i + 1]; + } + if (next !== "\n") + str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + return errors.length > 0 ? { + errors, + str + } : str; + } + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = QuoteSingle.endOfQuote(src, start + 1); + this.valueRange = new PlainValue.Range(start, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }; + function createNewNode(type, props) { + switch (type) { + case PlainValue.Type.ALIAS: + return new Alias(type, props); + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + return new BlockValue(type, props); + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.FLOW_SEQ: + return new FlowCollection(type, props); + case PlainValue.Type.MAP_KEY: + case PlainValue.Type.MAP_VALUE: + case PlainValue.Type.SEQ_ITEM: + return new CollectionItem(type, props); + case PlainValue.Type.COMMENT: + case PlainValue.Type.PLAIN: + return new PlainValue.PlainValue(type, props); + case PlainValue.Type.QUOTE_DOUBLE: + return new QuoteDouble(type, props); + case PlainValue.Type.QUOTE_SINGLE: + return new QuoteSingle(type, props); + default: + return null; + } + } + var ParseContext = class { + static parseType(src, offset, inFlow) { + switch (src[offset]) { + case "*": + return PlainValue.Type.ALIAS; + case ">": + return PlainValue.Type.BLOCK_FOLDED; + case "|": + return PlainValue.Type.BLOCK_LITERAL; + case "{": + return PlainValue.Type.FLOW_MAP; + case "[": + return PlainValue.Type.FLOW_SEQ; + case "?": + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_KEY : PlainValue.Type.PLAIN; + case ":": + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_VALUE : PlainValue.Type.PLAIN; + case "-": + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.SEQ_ITEM : PlainValue.Type.PLAIN; + case '"': + return PlainValue.Type.QUOTE_DOUBLE; + case "'": + return PlainValue.Type.QUOTE_SINGLE; + default: + return PlainValue.Type.PLAIN; + } + } + constructor(orig = {}, { + atLineStart, + inCollection, + inFlow, + indent, + lineStart, + parent + } = {}) { + PlainValue._defineProperty(this, "parseNode", (overlay, start) => { + if (PlainValue.Node.atDocumentBoundary(this.src, start)) + return null; + const context = new ParseContext(this, overlay); + const { + props, + type, + valueStart + } = context.parseProps(start); + const node = createNewNode(type, props); + let offset = node.parse(context, valueStart); + node.range = new PlainValue.Range(start, offset); + if (offset <= start) { + node.error = new Error(`Node#parse consumed no characters`); + node.error.parseEnd = offset; + node.error.source = node; + node.range.end = start + 1; + } + if (context.nodeStartsCollection(node)) { + if (!node.error && !context.atLineStart && context.parent.type === PlainValue.Type.DOCUMENT) { + node.error = new PlainValue.YAMLSyntaxError(node, "Block collection must not have preceding content here (e.g. directives-end indicator)"); + } + const collection = new Collection(node); + offset = collection.parse(new ParseContext(context), offset); + collection.range = new PlainValue.Range(start, offset); + return collection; + } + return node; + }); + this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false; + this.inCollection = inCollection != null ? inCollection : orig.inCollection || false; + this.inFlow = inFlow != null ? inFlow : orig.inFlow || false; + this.indent = indent != null ? indent : orig.indent; + this.lineStart = lineStart != null ? lineStart : orig.lineStart; + this.parent = parent != null ? parent : orig.parent || {}; + this.root = orig.root; + this.src = orig.src; + } + nodeStartsCollection(node) { + const { + inCollection, + inFlow, + src + } = this; + if (inCollection || inFlow) + return false; + if (node instanceof CollectionItem) + return true; + let offset = node.range.end; + if (src[offset] === "\n" || src[offset - 1] === "\n") + return false; + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + return src[offset] === ":"; + } + parseProps(offset) { + const { + inFlow, + parent, + src + } = this; + const props = []; + let lineHasProps = false; + offset = this.atLineStart ? PlainValue.Node.endOfIndent(src, offset) : PlainValue.Node.endOfWhiteSpace(src, offset); + let ch = src[offset]; + while (ch === PlainValue.Char.ANCHOR || ch === PlainValue.Char.COMMENT || ch === PlainValue.Char.TAG || ch === "\n") { + if (ch === "\n") { + let inEnd = offset; + let lineStart; + do { + lineStart = inEnd + 1; + inEnd = PlainValue.Node.endOfIndent(src, lineStart); + } while (src[inEnd] === "\n"); + const indentDiff = inEnd - (lineStart + this.indent); + const noIndicatorAsIndent = parent.type === PlainValue.Type.SEQ_ITEM && parent.context.atLineStart; + if (src[inEnd] !== "#" && !PlainValue.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) + break; + this.atLineStart = true; + this.lineStart = lineStart; + lineHasProps = false; + offset = inEnd; + } else if (ch === PlainValue.Char.COMMENT) { + const end = PlainValue.Node.endOfLine(src, offset + 1); + props.push(new PlainValue.Range(offset, end)); + offset = end; + } else { + let end = PlainValue.Node.endOfIdentifier(src, offset + 1); + if (ch === PlainValue.Char.TAG && src[end] === "," && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) { + end = PlainValue.Node.endOfIdentifier(src, end + 5); + } + props.push(new PlainValue.Range(offset, end)); + lineHasProps = true; + offset = PlainValue.Node.endOfWhiteSpace(src, end); + } + ch = src[offset]; + } + if (lineHasProps && ch === ":" && PlainValue.Node.atBlank(src, offset + 1, true)) + offset -= 1; + const type = ParseContext.parseType(src, offset, inFlow); + return { + props, + type, + valueStart: offset + }; + } + }; + function parse(src) { + const cr = []; + if (src.indexOf("\r") !== -1) { + src = src.replace(/\r\n?/g, (match, offset2) => { + if (match.length > 1) + cr.push(offset2); + return "\n"; + }); + } + const documents = []; + let offset = 0; + do { + const doc = new Document(); + const context = new ParseContext({ + src + }); + offset = doc.parse(context, offset); + documents.push(doc); + } while (offset < src.length); + documents.setOrigRanges = () => { + if (cr.length === 0) + return false; + for (let i = 1; i < cr.length; ++i) + cr[i] -= i; + let crOffset = 0; + for (let i = 0; i < documents.length; ++i) { + crOffset = documents[i].setOrigRanges(cr, crOffset); + } + cr.splice(0, cr.length); + return true; + }; + documents.toString = () => documents.join("...\n"); + return documents; + } + exports2.parse = parse; + } +}); +var require_resolveSeq_d03cb037 = __commonJS({ + "node_modules/yaml/dist/resolveSeq-d03cb037.js"(exports2) { + "use strict"; + var PlainValue = require_PlainValue_ec8e588e(); + function addCommentBefore(str, indent, comment) { + if (!comment) + return str; + const cc = comment.replace(/[\s\S]^/gm, `$&${indent}#`); + return `#${cc} +${indent}${str}`; + } + function addComment(str, indent, comment) { + return !comment ? str : comment.indexOf("\n") === -1 ? `${str} #${comment}` : `${str} +` + comment.replace(/^/gm, `${indent || ""}#`); + } + var Node = class { + }; + function toJSON(value, arg, ctx) { + if (Array.isArray(value)) + return value.map((v, i) => toJSON(v, String(i), ctx)); + if (value && typeof value.toJSON === "function") { + const anchor = ctx && ctx.anchors && ctx.anchors.get(value); + if (anchor) + ctx.onCreate = (res2) => { + anchor.res = res2; + delete ctx.onCreate; + }; + const res = value.toJSON(arg, ctx); + if (anchor && ctx.onCreate) + ctx.onCreate(res); + return res; + } + if ((!ctx || !ctx.keep) && typeof value === "bigint") + return Number(value); + return value; + } + var Scalar = class extends Node { + constructor(value) { + super(); + this.value = value; + } + toJSON(arg, ctx) { + return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx); + } + toString() { + return String(this.value); + } + }; + function collectionFromPath(schema, path, value) { + let v = value; + for (let i = path.length - 1; i >= 0; --i) { + const k = path[i]; + if (Number.isInteger(k) && k >= 0) { + const a = []; + a[k] = v; + v = a; + } else { + const o = {}; + Object.defineProperty(o, k, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + v = o; + } + } + return schema.createNode(v, false); + } + var isEmptyPath = (path) => path == null || typeof path === "object" && path[Symbol.iterator]().next().done; + var Collection = class extends Node { + constructor(schema) { + super(); + PlainValue._defineProperty(this, "items", []); + this.schema = schema; + } + addIn(path, value) { + if (isEmptyPath(path)) + this.add(value); + else { + const [key, ...rest] = path; + const node = this.get(key, true); + if (node instanceof Collection) + node.addIn(rest, value); + else if (node === void 0 && this.schema) + this.set(key, collectionFromPath(this.schema, rest, value)); + else + throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + } + deleteIn([key, ...rest]) { + if (rest.length === 0) + return this.delete(key); + const node = this.get(key, true); + if (node instanceof Collection) + return node.deleteIn(rest); + else + throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + getIn([key, ...rest], keepScalar) { + const node = this.get(key, true); + if (rest.length === 0) + return !keepScalar && node instanceof Scalar ? node.value : node; + else + return node instanceof Collection ? node.getIn(rest, keepScalar) : void 0; + } + hasAllNullValues() { + return this.items.every((node) => { + if (!node || node.type !== "PAIR") + return false; + const n = node.value; + return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag; + }); + } + hasIn([key, ...rest]) { + if (rest.length === 0) + return this.has(key); + const node = this.get(key, true); + return node instanceof Collection ? node.hasIn(rest) : false; + } + setIn([key, ...rest], value) { + if (rest.length === 0) { + this.set(key, value); + } else { + const node = this.get(key, true); + if (node instanceof Collection) + node.setIn(rest, value); + else if (node === void 0 && this.schema) + this.set(key, collectionFromPath(this.schema, rest, value)); + else + throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + } + toJSON() { + return null; + } + toString(ctx, { + blockItem, + flowChars, + isMap, + itemIndent + }, onComment, onChompKeep) { + const { + indent, + indentStep, + stringify + } = ctx; + const inFlow = this.type === PlainValue.Type.FLOW_MAP || this.type === PlainValue.Type.FLOW_SEQ || ctx.inFlow; + if (inFlow) + itemIndent += indentStep; + const allNullValues = isMap && this.hasAllNullValues(); + ctx = Object.assign({}, ctx, { + allNullValues, + indent: itemIndent, + inFlow, + type: null + }); + let chompKeep = false; + let hasItemWithNewLine = false; + const nodes = this.items.reduce((nodes2, item, i) => { + let comment; + if (item) { + if (!chompKeep && item.spaceBefore) + nodes2.push({ + type: "comment", + str: "" + }); + if (item.commentBefore) + item.commentBefore.match(/^.*$/gm).forEach((line) => { + nodes2.push({ + type: "comment", + str: `#${line}` + }); + }); + if (item.comment) + comment = item.comment; + if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) + hasItemWithNewLine = true; + } + chompKeep = false; + let str2 = stringify(item, ctx, () => comment = null, () => chompKeep = true); + if (inFlow && !hasItemWithNewLine && str2.includes("\n")) + hasItemWithNewLine = true; + if (inFlow && i < this.items.length - 1) + str2 += ","; + str2 = addComment(str2, itemIndent, comment); + if (chompKeep && (comment || inFlow)) + chompKeep = false; + nodes2.push({ + type: "item", + str: str2 + }); + return nodes2; + }, []); + let str; + if (nodes.length === 0) { + str = flowChars.start + flowChars.end; + } else if (inFlow) { + const { + start, + end + } = flowChars; + const strings = nodes.map((n) => n.str); + if (hasItemWithNewLine || strings.reduce((sum, str2) => sum + str2.length + 2, 2) > Collection.maxFlowStringSingleLineLength) { + str = start; + for (const s of strings) { + str += s ? ` +${indentStep}${indent}${s}` : "\n"; + } + str += ` +${indent}${end}`; + } else { + str = `${start} ${strings.join(" ")} ${end}`; + } + } else { + const strings = nodes.map(blockItem); + str = strings.shift(); + for (const s of strings) + str += s ? ` +${indent}${s}` : "\n"; + } + if (this.comment) { + str += "\n" + this.comment.replace(/^/gm, `${indent}#`); + if (onComment) + onComment(); + } else if (chompKeep && onChompKeep) + onChompKeep(); + return str; + } + }; + PlainValue._defineProperty(Collection, "maxFlowStringSingleLineLength", 60); + function asItemIndex(key) { + let idx = key instanceof Scalar ? key.value : key; + if (idx && typeof idx === "string") + idx = Number(idx); + return Number.isInteger(idx) && idx >= 0 ? idx : null; + } + var YAMLSeq = class extends Collection { + add(value) { + this.items.push(value); + } + delete(key) { + const idx = asItemIndex(key); + if (typeof idx !== "number") + return false; + const del = this.items.splice(idx, 1); + return del.length > 0; + } + get(key, keepScalar) { + const idx = asItemIndex(key); + if (typeof idx !== "number") + return void 0; + const it = this.items[idx]; + return !keepScalar && it instanceof Scalar ? it.value : it; + } + has(key) { + const idx = asItemIndex(key); + return typeof idx === "number" && idx < this.items.length; + } + set(key, value) { + const idx = asItemIndex(key); + if (typeof idx !== "number") + throw new Error(`Expected a valid index, not ${key}.`); + this.items[idx] = value; + } + toJSON(_, ctx) { + const seq = []; + if (ctx && ctx.onCreate) + ctx.onCreate(seq); + let i = 0; + for (const item of this.items) + seq.push(toJSON(item, String(i++), ctx)); + return seq; + } + toString(ctx, onComment, onChompKeep) { + if (!ctx) + return JSON.stringify(this); + return super.toString(ctx, { + blockItem: (n) => n.type === "comment" ? n.str : `- ${n.str}`, + flowChars: { + start: "[", + end: "]" + }, + isMap: false, + itemIndent: (ctx.indent || "") + " " + }, onComment, onChompKeep); + } + }; + var stringifyKey = (key, jsKey, ctx) => { + if (jsKey === null) + return ""; + if (typeof jsKey !== "object") + return String(jsKey); + if (key instanceof Node && ctx && ctx.doc) + return key.toString({ + anchors: /* @__PURE__ */ Object.create(null), + doc: ctx.doc, + indent: "", + indentStep: ctx.indentStep, + inFlow: true, + inStringifyKey: true, + stringify: ctx.stringify + }); + return JSON.stringify(jsKey); + }; + var Pair = class extends Node { + constructor(key, value = null) { + super(); + this.key = key; + this.value = value; + this.type = Pair.Type.PAIR; + } + get commentBefore() { + return this.key instanceof Node ? this.key.commentBefore : void 0; + } + set commentBefore(cb) { + if (this.key == null) + this.key = new Scalar(null); + if (this.key instanceof Node) + this.key.commentBefore = cb; + else { + const msg = "Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node."; + throw new Error(msg); + } + } + addToJSMap(ctx, map) { + const key = toJSON(this.key, "", ctx); + if (map instanceof Map) { + const value = toJSON(this.value, key, ctx); + map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else { + const stringKey = stringifyKey(this.key, key, ctx); + const value = toJSON(this.value, stringKey, ctx); + if (stringKey in map) + Object.defineProperty(map, stringKey, { + value, + writable: true, + enumerable: true, + configurable: true + }); + else + map[stringKey] = value; + } + return map; + } + toJSON(_, ctx) { + const pair = ctx && ctx.mapAsMap ? /* @__PURE__ */ new Map() : {}; + return this.addToJSMap(ctx, pair); + } + toString(ctx, onComment, onChompKeep) { + if (!ctx || !ctx.doc) + return JSON.stringify(this); + const { + indent: indentSize, + indentSeq, + simpleKeys + } = ctx.doc.options; + let { + key, + value + } = this; + let keyComment = key instanceof Node && key.comment; + if (simpleKeys) { + if (keyComment) { + throw new Error("With simple keys, key nodes cannot have comments"); + } + if (key instanceof Collection) { + const msg = "With simple keys, collection cannot be used as a key value"; + throw new Error(msg); + } + } + let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue.Type.BLOCK_FOLDED || key.type === PlainValue.Type.BLOCK_LITERAL : typeof key === "object")); + const { + doc, + indent, + indentStep, + stringify + } = ctx; + ctx = Object.assign({}, ctx, { + implicitKey: !explicitKey, + indent: indent + indentStep + }); + let chompKeep = false; + let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true); + str = addComment(str, ctx.indent, keyComment); + if (!explicitKey && str.length > 1024) { + if (simpleKeys) + throw new Error("With simple keys, single line scalar must not span more than 1024 characters"); + explicitKey = true; + } + if (ctx.allNullValues && !simpleKeys) { + if (this.comment) { + str = addComment(str, ctx.indent, this.comment); + if (onComment) + onComment(); + } else if (chompKeep && !keyComment && onChompKeep) + onChompKeep(); + return ctx.inFlow && !explicitKey ? str : `? ${str}`; + } + str = explicitKey ? `? ${str} +${indent}:` : `${str}:`; + if (this.comment) { + str = addComment(str, ctx.indent, this.comment); + if (onComment) + onComment(); + } + let vcb = ""; + let valueComment = null; + if (value instanceof Node) { + if (value.spaceBefore) + vcb = "\n"; + if (value.commentBefore) { + const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`); + vcb += ` +${cs}`; + } + valueComment = value.comment; + } else if (value && typeof value === "object") { + value = doc.schema.createNode(value, true); + } + ctx.implicitKey = false; + if (!explicitKey && !this.comment && value instanceof Scalar) + ctx.indentAtStart = str.length + 1; + chompKeep = false; + if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) { + ctx.indent = ctx.indent.substr(2); + } + const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true); + let ws = " "; + if (vcb || this.comment) { + ws = `${vcb} +${ctx.indent}`; + } else if (!explicitKey && value instanceof Collection) { + const flow = valueStr[0] === "[" || valueStr[0] === "{"; + if (!flow || valueStr.includes("\n")) + ws = ` +${ctx.indent}`; + } else if (valueStr[0] === "\n") + ws = ""; + if (chompKeep && !valueComment && onChompKeep) + onChompKeep(); + return addComment(str + ws + valueStr, ctx.indent, valueComment); + } + }; + PlainValue._defineProperty(Pair, "Type", { + PAIR: "PAIR", + MERGE_PAIR: "MERGE_PAIR" + }); + var getAliasCount = (node, anchors) => { + if (node instanceof Alias) { + const anchor = anchors.get(node.source); + return anchor.count * anchor.aliasCount; + } else if (node instanceof Collection) { + let count = 0; + for (const item of node.items) { + const c = getAliasCount(item, anchors); + if (c > count) + count = c; + } + return count; + } else if (node instanceof Pair) { + const kc = getAliasCount(node.key, anchors); + const vc = getAliasCount(node.value, anchors); + return Math.max(kc, vc); + } + return 1; + }; + var Alias = class extends Node { + static stringify({ + range, + source + }, { + anchors, + doc, + implicitKey, + inStringifyKey + }) { + let anchor = Object.keys(anchors).find((a) => anchors[a] === source); + if (!anchor && inStringifyKey) + anchor = doc.anchors.getName(source) || doc.anchors.newName(); + if (anchor) + return `*${anchor}${implicitKey ? " " : ""}`; + const msg = doc.anchors.getName(source) ? "Alias node must be after source node" : "Source node not found for alias node"; + throw new Error(`${msg} [${range}]`); + } + constructor(source) { + super(); + this.source = source; + this.type = PlainValue.Type.ALIAS; + } + set tag(t) { + throw new Error("Alias nodes cannot have tags"); + } + toJSON(arg, ctx) { + if (!ctx) + return toJSON(this.source, arg, ctx); + const { + anchors, + maxAliasCount + } = ctx; + const anchor = anchors.get(this.source); + if (!anchor || anchor.res === void 0) { + const msg = "This should not happen: Alias anchor was not resolved?"; + if (this.cstNode) + throw new PlainValue.YAMLReferenceError(this.cstNode, msg); + else + throw new ReferenceError(msg); + } + if (maxAliasCount >= 0) { + anchor.count += 1; + if (anchor.aliasCount === 0) + anchor.aliasCount = getAliasCount(this.source, anchors); + if (anchor.count * anchor.aliasCount > maxAliasCount) { + const msg = "Excessive alias count indicates a resource exhaustion attack"; + if (this.cstNode) + throw new PlainValue.YAMLReferenceError(this.cstNode, msg); + else + throw new ReferenceError(msg); + } + } + return anchor.res; + } + toString(ctx) { + return Alias.stringify(this, ctx); + } + }; + PlainValue._defineProperty(Alias, "default", true); + function findPair(items, key) { + const k = key instanceof Scalar ? key.value : key; + for (const it of items) { + if (it instanceof Pair) { + if (it.key === key || it.key === k) + return it; + if (it.key && it.key.value === k) + return it; + } + } + return void 0; + } + var YAMLMap = class extends Collection { + add(pair, overwrite) { + if (!pair) + pair = new Pair(pair); + else if (!(pair instanceof Pair)) + pair = new Pair(pair.key || pair, pair.value); + const prev = findPair(this.items, pair.key); + const sortEntries = this.schema && this.schema.sortMapEntries; + if (prev) { + if (overwrite) + prev.value = pair.value; + else + throw new Error(`Key ${pair.key} already set`); + } else if (sortEntries) { + const i = this.items.findIndex((item) => sortEntries(pair, item) < 0); + if (i === -1) + this.items.push(pair); + else + this.items.splice(i, 0, pair); + } else { + this.items.push(pair); + } + } + delete(key) { + const it = findPair(this.items, key); + if (!it) + return false; + const del = this.items.splice(this.items.indexOf(it), 1); + return del.length > 0; + } + get(key, keepScalar) { + const it = findPair(this.items, key); + const node = it && it.value; + return !keepScalar && node instanceof Scalar ? node.value : node; + } + has(key) { + return !!findPair(this.items, key); + } + set(key, value) { + this.add(new Pair(key, value), true); + } + toJSON(_, ctx, Type) { + const map = Type ? new Type() : ctx && ctx.mapAsMap ? /* @__PURE__ */ new Map() : {}; + if (ctx && ctx.onCreate) + ctx.onCreate(map); + for (const item of this.items) + item.addToJSMap(ctx, map); + return map; + } + toString(ctx, onComment, onChompKeep) { + if (!ctx) + return JSON.stringify(this); + for (const item of this.items) { + if (!(item instanceof Pair)) + throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`); + } + return super.toString(ctx, { + blockItem: (n) => n.str, + flowChars: { + start: "{", + end: "}" + }, + isMap: true, + itemIndent: ctx.indent || "" + }, onComment, onChompKeep); + } + }; + var MERGE_KEY = "<<"; + var Merge = class extends Pair { + constructor(pair) { + if (pair instanceof Pair) { + let seq = pair.value; + if (!(seq instanceof YAMLSeq)) { + seq = new YAMLSeq(); + seq.items.push(pair.value); + seq.range = pair.value.range; + } + super(pair.key, seq); + this.range = pair.range; + } else { + super(new Scalar(MERGE_KEY), new YAMLSeq()); + } + this.type = Pair.Type.MERGE_PAIR; + } + addToJSMap(ctx, map) { + for (const { + source + } of this.value.items) { + if (!(source instanceof YAMLMap)) + throw new Error("Merge sources must be maps"); + const srcMap = source.toJSON(null, ctx, Map); + for (const [key, value] of srcMap) { + if (map instanceof Map) { + if (!map.has(key)) + map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else if (!Object.prototype.hasOwnProperty.call(map, key)) { + Object.defineProperty(map, key, { + value, + writable: true, + enumerable: true, + configurable: true + }); + } + } + } + return map; + } + toString(ctx, onComment) { + const seq = this.value; + if (seq.items.length > 1) + return super.toString(ctx, onComment); + this.value = seq.items[0]; + const str = super.toString(ctx, onComment); + this.value = seq; + return str; + } + }; + var binaryOptions = { + defaultType: PlainValue.Type.BLOCK_LITERAL, + lineWidth: 76 + }; + var boolOptions = { + trueStr: "true", + falseStr: "false" + }; + var intOptions = { + asBigInt: false + }; + var nullOptions = { + nullStr: "null" + }; + var strOptions = { + defaultType: PlainValue.Type.PLAIN, + doubleQuoted: { + jsonEncoding: false, + minMultiLineLength: 40 + }, + fold: { + lineWidth: 80, + minContentWidth: 20 + } + }; + function resolveScalar(str, tags, scalarFallback) { + for (const { + format, + test, + resolve + } of tags) { + if (test) { + const match = str.match(test); + if (match) { + let res = resolve.apply(null, match); + if (!(res instanceof Scalar)) + res = new Scalar(res); + if (format) + res.format = format; + return res; + } + } + } + if (scalarFallback) + str = scalarFallback(str); + return new Scalar(str); + } + var FOLD_FLOW = "flow"; + var FOLD_BLOCK = "block"; + var FOLD_QUOTED = "quoted"; + var consumeMoreIndentedLines = (text, i) => { + let ch = text[i + 1]; + while (ch === " " || ch === " ") { + do { + ch = text[i += 1]; + } while (ch && ch !== "\n"); + ch = text[i + 1]; + } + return i; + }; + function foldFlowLines(text, indent, mode, { + indentAtStart, + lineWidth = 80, + minContentWidth = 20, + onFold, + onOverflow + }) { + if (!lineWidth || lineWidth < 0) + return text; + const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length); + if (text.length <= endStep) + return text; + const folds = []; + const escapedFolds = {}; + let end = lineWidth - indent.length; + if (typeof indentAtStart === "number") { + if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) + folds.push(0); + else + end = lineWidth - indentAtStart; + } + let split = void 0; + let prev = void 0; + let overflow = false; + let i = -1; + let escStart = -1; + let escEnd = -1; + if (mode === FOLD_BLOCK) { + i = consumeMoreIndentedLines(text, i); + if (i !== -1) + end = i + endStep; + } + for (let ch; ch = text[i += 1]; ) { + if (mode === FOLD_QUOTED && ch === "\\") { + escStart = i; + switch (text[i + 1]) { + case "x": + i += 3; + break; + case "u": + i += 5; + break; + case "U": + i += 9; + break; + default: + i += 1; + } + escEnd = i; + } + if (ch === "\n") { + if (mode === FOLD_BLOCK) + i = consumeMoreIndentedLines(text, i); + end = i + endStep; + split = void 0; + } else { + if (ch === " " && prev && prev !== " " && prev !== "\n" && prev !== " ") { + const next = text[i + 1]; + if (next && next !== " " && next !== "\n" && next !== " ") + split = i; + } + if (i >= end) { + if (split) { + folds.push(split); + end = split + endStep; + split = void 0; + } else if (mode === FOLD_QUOTED) { + while (prev === " " || prev === " ") { + prev = ch; + ch = text[i += 1]; + overflow = true; + } + const j = i > escEnd + 1 ? i - 2 : escStart - 1; + if (escapedFolds[j]) + return text; + folds.push(j); + escapedFolds[j] = true; + end = j + endStep; + split = void 0; + } else { + overflow = true; + } + } + } + prev = ch; + } + if (overflow && onOverflow) + onOverflow(); + if (folds.length === 0) + return text; + if (onFold) + onFold(); + let res = text.slice(0, folds[0]); + for (let i2 = 0; i2 < folds.length; ++i2) { + const fold = folds[i2]; + const end2 = folds[i2 + 1] || text.length; + if (fold === 0) + res = ` +${indent}${text.slice(0, end2)}`; + else { + if (mode === FOLD_QUOTED && escapedFolds[fold]) + res += `${text[fold]}\\`; + res += ` +${indent}${text.slice(fold + 1, end2)}`; + } + } + return res; + } + var getFoldOptions = ({ + indentAtStart + }) => indentAtStart ? Object.assign({ + indentAtStart + }, strOptions.fold) : strOptions.fold; + var containsDocumentMarker = (str) => /^(%|---|\.\.\.)/m.test(str); + function lineLengthOverLimit(str, lineWidth, indentLength) { + if (!lineWidth || lineWidth < 0) + return false; + const limit = lineWidth - indentLength; + const strLen = str.length; + if (strLen <= limit) + return false; + for (let i = 0, start = 0; i < strLen; ++i) { + if (str[i] === "\n") { + if (i - start > limit) + return true; + start = i + 1; + if (strLen - start <= limit) + return false; + } + } + return true; + } + function doubleQuotedString(value, ctx) { + const { + implicitKey + } = ctx; + const { + jsonEncoding, + minMultiLineLength + } = strOptions.doubleQuoted; + const json = JSON.stringify(value); + if (jsonEncoding) + return json; + const indent = ctx.indent || (containsDocumentMarker(value) ? " " : ""); + let str = ""; + let start = 0; + for (let i = 0, ch = json[i]; ch; ch = json[++i]) { + if (ch === " " && json[i + 1] === "\\" && json[i + 2] === "n") { + str += json.slice(start, i) + "\\ "; + i += 1; + start = i; + ch = "\\"; + } + if (ch === "\\") + switch (json[i + 1]) { + case "u": + { + str += json.slice(start, i); + const code = json.substr(i + 2, 4); + switch (code) { + case "0000": + str += "\\0"; + break; + case "0007": + str += "\\a"; + break; + case "000b": + str += "\\v"; + break; + case "001b": + str += "\\e"; + break; + case "0085": + str += "\\N"; + break; + case "00a0": + str += "\\_"; + break; + case "2028": + str += "\\L"; + break; + case "2029": + str += "\\P"; + break; + default: + if (code.substr(0, 2) === "00") + str += "\\x" + code.substr(2); + else + str += json.substr(i, 6); + } + i += 5; + start = i + 1; + } + break; + case "n": + if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) { + i += 1; + } else { + str += json.slice(start, i) + "\n\n"; + while (json[i + 2] === "\\" && json[i + 3] === "n" && json[i + 4] !== '"') { + str += "\n"; + i += 2; + } + str += indent; + if (json[i + 2] === " ") + str += "\\"; + i += 1; + start = i + 1; + } + break; + default: + i += 1; + } + } + str = start ? str + json.slice(start) : json; + return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx)); + } + function singleQuotedString(value, ctx) { + if (ctx.implicitKey) { + if (/\n/.test(value)) + return doubleQuotedString(value, ctx); + } else { + if (/[ \t]\n|\n[ \t]/.test(value)) + return doubleQuotedString(value, ctx); + } + const indent = ctx.indent || (containsDocumentMarker(value) ? " " : ""); + const res = "'" + value.replace(/'/g, "''").replace(/\n+/g, `$& +${indent}`) + "'"; + return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx)); + } + function blockString({ + comment, + type, + value + }, ctx, onComment, onChompKeep) { + if (/\n[\t ]+$/.test(value) || /^\s*$/.test(value)) { + return doubleQuotedString(value, ctx); + } + const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? " " : ""); + const indentSize = indent ? "2" : "1"; + const literal = type === PlainValue.Type.BLOCK_FOLDED ? false : type === PlainValue.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length); + let header = literal ? "|" : ">"; + if (!value) + return header + "\n"; + let wsStart = ""; + let wsEnd = ""; + value = value.replace(/[\n\t ]*$/, (ws) => { + const n = ws.indexOf("\n"); + if (n === -1) { + header += "-"; + } else if (value === ws || n !== ws.length - 1) { + header += "+"; + if (onChompKeep) + onChompKeep(); + } + wsEnd = ws.replace(/\n$/, ""); + return ""; + }).replace(/^[\n ]*/, (ws) => { + if (ws.indexOf(" ") !== -1) + header += indentSize; + const m = ws.match(/ +$/); + if (m) { + wsStart = ws.slice(0, -m[0].length); + return m[0]; + } else { + wsStart = ws; + return ""; + } + }); + if (wsEnd) + wsEnd = wsEnd.replace(/\n+(?!\n|$)/g, `$&${indent}`); + if (wsStart) + wsStart = wsStart.replace(/\n+/g, `$&${indent}`); + if (comment) { + header += " #" + comment.replace(/ ?[\r\n]+/g, " "); + if (onComment) + onComment(); + } + if (!value) + return `${header}${indentSize} +${indent}${wsEnd}`; + if (literal) { + value = value.replace(/\n+/g, `$&${indent}`); + return `${header} +${indent}${wsStart}${value}${wsEnd}`; + } + value = value.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${indent}`); + const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold); + return `${header} +${indent}${body}`; + } + function plainString(item, ctx, onComment, onChompKeep) { + const { + comment, + type, + value + } = item; + const { + actualString, + implicitKey, + indent, + inFlow + } = ctx; + if (implicitKey && /[\n[\]{},]/.test(value) || inFlow && /[[\]{},]/.test(value)) { + return doubleQuotedString(value, ctx); + } + if (!value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value)) { + return implicitKey || inFlow || value.indexOf("\n") === -1 ? value.indexOf('"') !== -1 && value.indexOf("'") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep); + } + if (!implicitKey && !inFlow && type !== PlainValue.Type.PLAIN && value.indexOf("\n") !== -1) { + return blockString(item, ctx, onComment, onChompKeep); + } + if (indent === "" && containsDocumentMarker(value)) { + ctx.forceBlockIndent = true; + return blockString(item, ctx, onComment, onChompKeep); + } + const str = value.replace(/\n+/g, `$& +${indent}`); + if (actualString) { + const { + tags + } = ctx.doc.schema; + const resolved = resolveScalar(str, tags, tags.scalarFallback).value; + if (typeof resolved !== "string") + return doubleQuotedString(value, ctx); + } + const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx)); + if (comment && !inFlow && (body.indexOf("\n") !== -1 || comment.indexOf("\n") !== -1)) { + if (onComment) + onComment(); + return addCommentBefore(body, indent, comment); + } + return body; + } + function stringifyString(item, ctx, onComment, onChompKeep) { + const { + defaultType + } = strOptions; + const { + implicitKey, + inFlow + } = ctx; + let { + type, + value + } = item; + if (typeof value !== "string") { + value = String(value); + item = Object.assign({}, item, { + value + }); + } + const _stringify = (_type) => { + switch (_type) { + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + return blockString(item, ctx, onComment, onChompKeep); + case PlainValue.Type.QUOTE_DOUBLE: + return doubleQuotedString(value, ctx); + case PlainValue.Type.QUOTE_SINGLE: + return singleQuotedString(value, ctx); + case PlainValue.Type.PLAIN: + return plainString(item, ctx, onComment, onChompKeep); + default: + return null; + } + }; + if (type !== PlainValue.Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) { + type = PlainValue.Type.QUOTE_DOUBLE; + } else if ((implicitKey || inFlow) && (type === PlainValue.Type.BLOCK_FOLDED || type === PlainValue.Type.BLOCK_LITERAL)) { + type = PlainValue.Type.QUOTE_DOUBLE; + } + let res = _stringify(type); + if (res === null) { + res = _stringify(defaultType); + if (res === null) + throw new Error(`Unsupported default string type ${defaultType}`); + } + return res; + } + function stringifyNumber({ + format, + minFractionDigits, + tag, + value + }) { + if (typeof value === "bigint") + return String(value); + if (!isFinite(value)) + return isNaN(value) ? ".nan" : value < 0 ? "-.inf" : ".inf"; + let n = JSON.stringify(value); + if (!format && minFractionDigits && (!tag || tag === "tag:yaml.org,2002:float") && /^\d/.test(n)) { + let i = n.indexOf("."); + if (i < 0) { + i = n.length; + n += "."; + } + let d = minFractionDigits - (n.length - i - 1); + while (d-- > 0) + n += "0"; + } + return n; + } + function checkFlowCollectionEnd(errors, cst) { + let char, name; + switch (cst.type) { + case PlainValue.Type.FLOW_MAP: + char = "}"; + name = "flow map"; + break; + case PlainValue.Type.FLOW_SEQ: + char = "]"; + name = "flow sequence"; + break; + default: + errors.push(new PlainValue.YAMLSemanticError(cst, "Not a flow collection!?")); + return; + } + let lastItem; + for (let i = cst.items.length - 1; i >= 0; --i) { + const item = cst.items[i]; + if (!item || item.type !== PlainValue.Type.COMMENT) { + lastItem = item; + break; + } + } + if (lastItem && lastItem.char !== char) { + const msg = `Expected ${name} to end with ${char}`; + let err; + if (typeof lastItem.offset === "number") { + err = new PlainValue.YAMLSemanticError(cst, msg); + err.offset = lastItem.offset + 1; + } else { + err = new PlainValue.YAMLSemanticError(lastItem, msg); + if (lastItem.range && lastItem.range.end) + err.offset = lastItem.range.end - lastItem.range.start; + } + errors.push(err); + } + } + function checkFlowCommentSpace(errors, comment) { + const prev = comment.context.src[comment.range.start - 1]; + if (prev !== "\n" && prev !== " " && prev !== " ") { + const msg = "Comments must be separated from other tokens by white space characters"; + errors.push(new PlainValue.YAMLSemanticError(comment, msg)); + } + } + function getLongKeyError(source, key) { + const sk = String(key); + const k = sk.substr(0, 8) + "..." + sk.substr(-8); + return new PlainValue.YAMLSemanticError(source, `The "${k}" key is too long`); + } + function resolveComments(collection, comments) { + for (const { + afterKey, + before, + comment + } of comments) { + let item = collection.items[before]; + if (!item) { + if (comment !== void 0) { + if (collection.comment) + collection.comment += "\n" + comment; + else + collection.comment = comment; + } + } else { + if (afterKey && item.value) + item = item.value; + if (comment === void 0) { + if (afterKey || !item.commentBefore) + item.spaceBefore = true; + } else { + if (item.commentBefore) + item.commentBefore += "\n" + comment; + else + item.commentBefore = comment; + } + } + } + } + function resolveString(doc, node) { + const res = node.strValue; + if (!res) + return ""; + if (typeof res === "string") + return res; + res.errors.forEach((error) => { + if (!error.source) + error.source = node; + doc.errors.push(error); + }); + return res.str; + } + function resolveTagHandle(doc, node) { + const { + handle, + suffix + } = node.tag; + let prefix = doc.tagPrefixes.find((p) => p.handle === handle); + if (!prefix) { + const dtp = doc.getDefaults().tagPrefixes; + if (dtp) + prefix = dtp.find((p) => p.handle === handle); + if (!prefix) + throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`); + } + if (!suffix) + throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag has no suffix.`); + if (handle === "!" && (doc.version || doc.options.version) === "1.0") { + if (suffix[0] === "^") { + doc.warnings.push(new PlainValue.YAMLWarning(node, "YAML 1.0 ^ tag expansion is not supported")); + return suffix; + } + if (/[:/]/.test(suffix)) { + const vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i); + return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`; + } + } + return prefix.prefix + decodeURIComponent(suffix); + } + function resolveTagName(doc, node) { + const { + tag, + type + } = node; + let nonSpecific = false; + if (tag) { + const { + handle, + suffix, + verbatim + } = tag; + if (verbatim) { + if (verbatim !== "!" && verbatim !== "!!") + return verbatim; + const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`; + doc.errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } else if (handle === "!" && !suffix) { + nonSpecific = true; + } else { + try { + return resolveTagHandle(doc, node); + } catch (error) { + doc.errors.push(error); + } + } + } + switch (type) { + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + case PlainValue.Type.QUOTE_DOUBLE: + case PlainValue.Type.QUOTE_SINGLE: + return PlainValue.defaultTags.STR; + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.MAP: + return PlainValue.defaultTags.MAP; + case PlainValue.Type.FLOW_SEQ: + case PlainValue.Type.SEQ: + return PlainValue.defaultTags.SEQ; + case PlainValue.Type.PLAIN: + return nonSpecific ? PlainValue.defaultTags.STR : null; + default: + return null; + } + } + function resolveByTagName(doc, node, tagName) { + const { + tags + } = doc.schema; + const matchWithTest = []; + for (const tag of tags) { + if (tag.tag === tagName) { + if (tag.test) + matchWithTest.push(tag); + else { + const res = tag.resolve(doc, node); + return res instanceof Collection ? res : new Scalar(res); + } + } + } + const str = resolveString(doc, node); + if (typeof str === "string" && matchWithTest.length > 0) + return resolveScalar(str, matchWithTest, tags.scalarFallback); + return null; + } + function getFallbackTagName({ + type + }) { + switch (type) { + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.MAP: + return PlainValue.defaultTags.MAP; + case PlainValue.Type.FLOW_SEQ: + case PlainValue.Type.SEQ: + return PlainValue.defaultTags.SEQ; + default: + return PlainValue.defaultTags.STR; + } + } + function resolveTag(doc, node, tagName) { + try { + const res = resolveByTagName(doc, node, tagName); + if (res) { + if (tagName && node.tag) + res.tag = tagName; + return res; + } + } catch (error) { + if (!error.source) + error.source = node; + doc.errors.push(error); + return null; + } + try { + const fallback = getFallbackTagName(node); + if (!fallback) + throw new Error(`The tag ${tagName} is unavailable`); + const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`; + doc.warnings.push(new PlainValue.YAMLWarning(node, msg)); + const res = resolveByTagName(doc, node, fallback); + res.tag = tagName; + return res; + } catch (error) { + const refError = new PlainValue.YAMLReferenceError(node, error.message); + refError.stack = error.stack; + doc.errors.push(refError); + return null; + } + } + var isCollectionItem = (node) => { + if (!node) + return false; + const { + type + } = node; + return type === PlainValue.Type.MAP_KEY || type === PlainValue.Type.MAP_VALUE || type === PlainValue.Type.SEQ_ITEM; + }; + function resolveNodeProps(errors, node) { + const comments = { + before: [], + after: [] + }; + let hasAnchor = false; + let hasTag = false; + const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props; + for (const { + start, + end + } of props) { + switch (node.context.src[start]) { + case PlainValue.Char.COMMENT: { + if (!node.commentHasRequiredWhitespace(start)) { + const msg = "Comments must be separated from other tokens by white space characters"; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + const { + header, + valueRange + } = node; + const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before; + cc.push(node.context.src.slice(start + 1, end)); + break; + } + case PlainValue.Char.ANCHOR: + if (hasAnchor) { + const msg = "A node can have at most one anchor"; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + hasAnchor = true; + break; + case PlainValue.Char.TAG: + if (hasTag) { + const msg = "A node can have at most one tag"; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + hasTag = true; + break; + } + } + return { + comments, + hasAnchor, + hasTag + }; + } + function resolveNodeValue(doc, node) { + const { + anchors, + errors, + schema + } = doc; + if (node.type === PlainValue.Type.ALIAS) { + const name = node.rawValue; + const src = anchors.getNode(name); + if (!src) { + const msg = `Aliased anchor not found: ${name}`; + errors.push(new PlainValue.YAMLReferenceError(node, msg)); + return null; + } + const res = new Alias(src); + anchors._cstAliases.push(res); + return res; + } + const tagName = resolveTagName(doc, node); + if (tagName) + return resolveTag(doc, node, tagName); + if (node.type !== PlainValue.Type.PLAIN) { + const msg = `Failed to resolve ${node.type} node here`; + errors.push(new PlainValue.YAMLSyntaxError(node, msg)); + return null; + } + try { + const str = resolveString(doc, node); + return resolveScalar(str, schema.tags, schema.tags.scalarFallback); + } catch (error) { + if (!error.source) + error.source = node; + errors.push(error); + return null; + } + } + function resolveNode(doc, node) { + if (!node) + return null; + if (node.error) + doc.errors.push(node.error); + const { + comments, + hasAnchor, + hasTag + } = resolveNodeProps(doc.errors, node); + if (hasAnchor) { + const { + anchors + } = doc; + const name = node.anchor; + const prev = anchors.getNode(name); + if (prev) + anchors.map[anchors.newName(name)] = prev; + anchors.map[name] = node; + } + if (node.type === PlainValue.Type.ALIAS && (hasAnchor || hasTag)) { + const msg = "An alias node must not specify any properties"; + doc.errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + const res = resolveNodeValue(doc, node); + if (res) { + res.range = [node.range.start, node.range.end]; + if (doc.options.keepCstNodes) + res.cstNode = node; + if (doc.options.keepNodeTypes) + res.type = node.type; + const cb = comments.before.join("\n"); + if (cb) { + res.commentBefore = res.commentBefore ? `${res.commentBefore} +${cb}` : cb; + } + const ca = comments.after.join("\n"); + if (ca) + res.comment = res.comment ? `${res.comment} +${ca}` : ca; + } + return node.resolved = res; + } + function resolveMap(doc, cst) { + if (cst.type !== PlainValue.Type.MAP && cst.type !== PlainValue.Type.FLOW_MAP) { + const msg = `A ${cst.type} node cannot be resolved as a mapping`; + doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg)); + return null; + } + const { + comments, + items + } = cst.type === PlainValue.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst); + const map = new YAMLMap(); + map.items = items; + resolveComments(map, comments); + let hasCollectionKey = false; + for (let i = 0; i < items.length; ++i) { + const { + key: iKey + } = items[i]; + if (iKey instanceof Collection) + hasCollectionKey = true; + if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) { + items[i] = new Merge(items[i]); + const sources = items[i].value.items; + let error = null; + sources.some((node) => { + if (node instanceof Alias) { + const { + type + } = node.source; + if (type === PlainValue.Type.MAP || type === PlainValue.Type.FLOW_MAP) + return false; + return error = "Merge nodes aliases can only point to maps"; + } + return error = "Merge nodes can only have Alias nodes as values"; + }); + if (error) + doc.errors.push(new PlainValue.YAMLSemanticError(cst, error)); + } else { + for (let j = i + 1; j < items.length; ++j) { + const { + key: jKey + } = items[j]; + if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, "value") && iKey.value === jKey.value) { + const msg = `Map keys must be unique; "${iKey}" is repeated`; + doc.errors.push(new PlainValue.YAMLSemanticError(cst, msg)); + break; + } + } + } + } + if (hasCollectionKey && !doc.options.mapAsMap) { + const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this."; + doc.warnings.push(new PlainValue.YAMLWarning(cst, warn)); + } + cst.resolved = map; + return map; + } + var valueHasPairComment = ({ + context: { + lineStart, + node, + src + }, + props + }) => { + if (props.length === 0) + return false; + const { + start + } = props[0]; + if (node && start > node.valueRange.start) + return false; + if (src[start] !== PlainValue.Char.COMMENT) + return false; + for (let i = lineStart; i < start; ++i) + if (src[i] === "\n") + return false; + return true; + }; + function resolvePairComment(item, pair) { + if (!valueHasPairComment(item)) + return; + const comment = item.getPropValue(0, PlainValue.Char.COMMENT, true); + let found = false; + const cb = pair.value.commentBefore; + if (cb && cb.startsWith(comment)) { + pair.value.commentBefore = cb.substr(comment.length + 1); + found = true; + } else { + const cc = pair.value.comment; + if (!item.node && cc && cc.startsWith(comment)) { + pair.value.comment = cc.substr(comment.length + 1); + found = true; + } + } + if (found) + pair.comment = comment; + } + function resolveBlockMapItems(doc, cst) { + const comments = []; + const items = []; + let key = void 0; + let keyStart = null; + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + switch (item.type) { + case PlainValue.Type.BLANK_LINE: + comments.push({ + afterKey: !!key, + before: items.length + }); + break; + case PlainValue.Type.COMMENT: + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + break; + case PlainValue.Type.MAP_KEY: + if (key !== void 0) + items.push(new Pair(key)); + if (item.error) + doc.errors.push(item.error); + key = resolveNode(doc, item.node); + keyStart = null; + break; + case PlainValue.Type.MAP_VALUE: + { + if (key === void 0) + key = null; + if (item.error) + doc.errors.push(item.error); + if (!item.context.atLineStart && item.node && item.node.type === PlainValue.Type.MAP && !item.node.context.atLineStart) { + const msg = "Nested mappings are not allowed in compact mappings"; + doc.errors.push(new PlainValue.YAMLSemanticError(item.node, msg)); + } + let valueNode = item.node; + if (!valueNode && item.props.length > 0) { + valueNode = new PlainValue.PlainValue(PlainValue.Type.PLAIN, []); + valueNode.context = { + parent: item, + src: item.context.src + }; + const pos = item.range.start + 1; + valueNode.range = { + start: pos, + end: pos + }; + valueNode.valueRange = { + start: pos, + end: pos + }; + if (typeof item.range.origStart === "number") { + const origPos = item.range.origStart + 1; + valueNode.range.origStart = valueNode.range.origEnd = origPos; + valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos; + } + } + const pair = new Pair(key, resolveNode(doc, valueNode)); + resolvePairComment(item, pair); + items.push(pair); + if (key && typeof keyStart === "number") { + if (item.range.start > keyStart + 1024) + doc.errors.push(getLongKeyError(cst, key)); + } + key = void 0; + keyStart = null; + } + break; + default: + if (key !== void 0) + items.push(new Pair(key)); + key = resolveNode(doc, item); + keyStart = item.range.start; + if (item.error) + doc.errors.push(item.error); + next: + for (let j = i + 1; ; ++j) { + const nextItem = cst.items[j]; + switch (nextItem && nextItem.type) { + case PlainValue.Type.BLANK_LINE: + case PlainValue.Type.COMMENT: + continue next; + case PlainValue.Type.MAP_VALUE: + break next; + default: { + const msg = "Implicit map keys need to be followed by map values"; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + break next; + } + } + } + if (item.valueRangeContainsNewline) { + const msg = "Implicit map keys need to be on a single line"; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + } + } + if (key !== void 0) + items.push(new Pair(key)); + return { + comments, + items + }; + } + function resolveFlowMapItems(doc, cst) { + const comments = []; + const items = []; + let key = void 0; + let explicitKey = false; + let next = "{"; + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + if (typeof item.char === "string") { + const { + char, + offset + } = item; + if (char === "?" && key === void 0 && !explicitKey) { + explicitKey = true; + next = ":"; + continue; + } + if (char === ":") { + if (key === void 0) + key = null; + if (next === ":") { + next = ","; + continue; + } + } else { + if (explicitKey) { + if (key === void 0 && char !== ",") + key = null; + explicitKey = false; + } + if (key !== void 0) { + items.push(new Pair(key)); + key = void 0; + if (char === ",") { + next = ":"; + continue; + } + } + } + if (char === "}") { + if (i === cst.items.length - 1) + continue; + } else if (char === next) { + next = ":"; + continue; + } + const msg = `Flow map contains an unexpected ${char}`; + const err = new PlainValue.YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } else if (item.type === PlainValue.Type.BLANK_LINE) { + comments.push({ + afterKey: !!key, + before: items.length + }); + } else if (item.type === PlainValue.Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + } else if (key === void 0) { + if (next === ",") + doc.errors.push(new PlainValue.YAMLSemanticError(item, "Separator , missing in flow map")); + key = resolveNode(doc, item); + } else { + if (next !== ",") + doc.errors.push(new PlainValue.YAMLSemanticError(item, "Indicator : missing in flow map entry")); + items.push(new Pair(key, resolveNode(doc, item))); + key = void 0; + explicitKey = false; + } + } + checkFlowCollectionEnd(doc.errors, cst); + if (key !== void 0) + items.push(new Pair(key)); + return { + comments, + items + }; + } + function resolveSeq(doc, cst) { + if (cst.type !== PlainValue.Type.SEQ && cst.type !== PlainValue.Type.FLOW_SEQ) { + const msg = `A ${cst.type} node cannot be resolved as a sequence`; + doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg)); + return null; + } + const { + comments, + items + } = cst.type === PlainValue.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst); + const seq = new YAMLSeq(); + seq.items = items; + resolveComments(seq, comments); + if (!doc.options.mapAsMap && items.some((it) => it instanceof Pair && it.key instanceof Collection)) { + const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this."; + doc.warnings.push(new PlainValue.YAMLWarning(cst, warn)); + } + cst.resolved = seq; + return seq; + } + function resolveBlockSeqItems(doc, cst) { + const comments = []; + const items = []; + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + switch (item.type) { + case PlainValue.Type.BLANK_LINE: + comments.push({ + before: items.length + }); + break; + case PlainValue.Type.COMMENT: + comments.push({ + comment: item.comment, + before: items.length + }); + break; + case PlainValue.Type.SEQ_ITEM: + if (item.error) + doc.errors.push(item.error); + items.push(resolveNode(doc, item.node)); + if (item.hasProps) { + const msg = "Sequence items cannot have tags or anchors before the - indicator"; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + break; + default: + if (item.error) + doc.errors.push(item.error); + doc.errors.push(new PlainValue.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`)); + } + } + return { + comments, + items + }; + } + function resolveFlowSeqItems(doc, cst) { + const comments = []; + const items = []; + let explicitKey = false; + let key = void 0; + let keyStart = null; + let next = "["; + let prevItem = null; + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + if (typeof item.char === "string") { + const { + char, + offset + } = item; + if (char !== ":" && (explicitKey || key !== void 0)) { + if (explicitKey && key === void 0) + key = next ? items.pop() : null; + items.push(new Pair(key)); + explicitKey = false; + key = void 0; + keyStart = null; + } + if (char === next) { + next = null; + } else if (!next && char === "?") { + explicitKey = true; + } else if (next !== "[" && char === ":" && key === void 0) { + if (next === ",") { + key = items.pop(); + if (key instanceof Pair) { + const msg = "Chaining flow sequence pairs is invalid"; + const err = new PlainValue.YAMLSemanticError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + if (!explicitKey && typeof keyStart === "number") { + const keyEnd = item.range ? item.range.start : item.offset; + if (keyEnd > keyStart + 1024) + doc.errors.push(getLongKeyError(cst, key)); + const { + src + } = prevItem.context; + for (let i2 = keyStart; i2 < keyEnd; ++i2) + if (src[i2] === "\n") { + const msg = "Implicit keys of flow sequence pairs need to be on a single line"; + doc.errors.push(new PlainValue.YAMLSemanticError(prevItem, msg)); + break; + } + } + } else { + key = null; + } + keyStart = null; + explicitKey = false; + next = null; + } else if (next === "[" || char !== "]" || i < cst.items.length - 1) { + const msg = `Flow sequence contains an unexpected ${char}`; + const err = new PlainValue.YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + } else if (item.type === PlainValue.Type.BLANK_LINE) { + comments.push({ + before: items.length + }); + } else if (item.type === PlainValue.Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + comment: item.comment, + before: items.length + }); + } else { + if (next) { + const msg = `Expected a ${next} in flow sequence`; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + const value = resolveNode(doc, item); + if (key === void 0) { + items.push(value); + prevItem = item; + } else { + items.push(new Pair(key, value)); + key = void 0; + } + keyStart = item.range.start; + next = ","; + } + } + checkFlowCollectionEnd(doc.errors, cst); + if (key !== void 0) + items.push(new Pair(key)); + return { + comments, + items + }; + } + exports2.Alias = Alias; + exports2.Collection = Collection; + exports2.Merge = Merge; + exports2.Node = Node; + exports2.Pair = Pair; + exports2.Scalar = Scalar; + exports2.YAMLMap = YAMLMap; + exports2.YAMLSeq = YAMLSeq; + exports2.addComment = addComment; + exports2.binaryOptions = binaryOptions; + exports2.boolOptions = boolOptions; + exports2.findPair = findPair; + exports2.intOptions = intOptions; + exports2.isEmptyPath = isEmptyPath; + exports2.nullOptions = nullOptions; + exports2.resolveMap = resolveMap; + exports2.resolveNode = resolveNode; + exports2.resolveSeq = resolveSeq; + exports2.resolveString = resolveString; + exports2.strOptions = strOptions; + exports2.stringifyNumber = stringifyNumber; + exports2.stringifyString = stringifyString; + exports2.toJSON = toJSON; + } +}); +var require_warnings_1000a372 = __commonJS({ + "node_modules/yaml/dist/warnings-1000a372.js"(exports2) { + "use strict"; + var PlainValue = require_PlainValue_ec8e588e(); + var resolveSeq = require_resolveSeq_d03cb037(); + var binary = { + identify: (value) => value instanceof Uint8Array, + default: false, + tag: "tag:yaml.org,2002:binary", + resolve: (doc, node) => { + const src = resolveSeq.resolveString(doc, node); + if (typeof Buffer === "function") { + return Buffer.from(src, "base64"); + } else if (typeof atob === "function") { + const str = atob(src.replace(/[\n\r]/g, "")); + const buffer = new Uint8Array(str.length); + for (let i = 0; i < str.length; ++i) + buffer[i] = str.charCodeAt(i); + return buffer; + } else { + const msg = "This environment does not support reading binary tags; either Buffer or atob is required"; + doc.errors.push(new PlainValue.YAMLReferenceError(node, msg)); + return null; + } + }, + options: resolveSeq.binaryOptions, + stringify: ({ + comment, + type, + value + }, ctx, onComment, onChompKeep) => { + let src; + if (typeof Buffer === "function") { + src = value instanceof Buffer ? value.toString("base64") : Buffer.from(value.buffer).toString("base64"); + } else if (typeof btoa === "function") { + let s = ""; + for (let i = 0; i < value.length; ++i) + s += String.fromCharCode(value[i]); + src = btoa(s); + } else { + throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required"); + } + if (!type) + type = resolveSeq.binaryOptions.defaultType; + if (type === PlainValue.Type.QUOTE_DOUBLE) { + value = src; + } else { + const { + lineWidth + } = resolveSeq.binaryOptions; + const n = Math.ceil(src.length / lineWidth); + const lines = new Array(n); + for (let i = 0, o = 0; i < n; ++i, o += lineWidth) { + lines[i] = src.substr(o, lineWidth); + } + value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? "\n" : " "); + } + return resolveSeq.stringifyString({ + comment, + type, + value + }, ctx, onComment, onChompKeep); + } + }; + function parsePairs(doc, cst) { + const seq = resolveSeq.resolveSeq(doc, cst); + for (let i = 0; i < seq.items.length; ++i) { + let item = seq.items[i]; + if (item instanceof resolveSeq.Pair) + continue; + else if (item instanceof resolveSeq.YAMLMap) { + if (item.items.length > 1) { + const msg = "Each pair must have its own sequence indicator"; + throw new PlainValue.YAMLSemanticError(cst, msg); + } + const pair = item.items[0] || new resolveSeq.Pair(); + if (item.commentBefore) + pair.commentBefore = pair.commentBefore ? `${item.commentBefore} +${pair.commentBefore}` : item.commentBefore; + if (item.comment) + pair.comment = pair.comment ? `${item.comment} +${pair.comment}` : item.comment; + item = pair; + } + seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item); + } + return seq; + } + function createPairs(schema, iterable, ctx) { + const pairs2 = new resolveSeq.YAMLSeq(schema); + pairs2.tag = "tag:yaml.org,2002:pairs"; + for (const it of iterable) { + let key, value; + if (Array.isArray(it)) { + if (it.length === 2) { + key = it[0]; + value = it[1]; + } else + throw new TypeError(`Expected [key, value] tuple: ${it}`); + } else if (it && it instanceof Object) { + const keys = Object.keys(it); + if (keys.length === 1) { + key = keys[0]; + value = it[key]; + } else + throw new TypeError(`Expected { key: value } tuple: ${it}`); + } else { + key = it; + } + const pair = schema.createPair(key, value, ctx); + pairs2.items.push(pair); + } + return pairs2; + } + var pairs = { + default: false, + tag: "tag:yaml.org,2002:pairs", + resolve: parsePairs, + createNode: createPairs + }; + var YAMLOMap = class extends resolveSeq.YAMLSeq { + constructor() { + super(); + PlainValue._defineProperty(this, "add", resolveSeq.YAMLMap.prototype.add.bind(this)); + PlainValue._defineProperty(this, "delete", resolveSeq.YAMLMap.prototype.delete.bind(this)); + PlainValue._defineProperty(this, "get", resolveSeq.YAMLMap.prototype.get.bind(this)); + PlainValue._defineProperty(this, "has", resolveSeq.YAMLMap.prototype.has.bind(this)); + PlainValue._defineProperty(this, "set", resolveSeq.YAMLMap.prototype.set.bind(this)); + this.tag = YAMLOMap.tag; + } + toJSON(_, ctx) { + const map = /* @__PURE__ */ new Map(); + if (ctx && ctx.onCreate) + ctx.onCreate(map); + for (const pair of this.items) { + let key, value; + if (pair instanceof resolveSeq.Pair) { + key = resolveSeq.toJSON(pair.key, "", ctx); + value = resolveSeq.toJSON(pair.value, key, ctx); + } else { + key = resolveSeq.toJSON(pair, "", ctx); + } + if (map.has(key)) + throw new Error("Ordered maps must not include duplicate keys"); + map.set(key, value); + } + return map; + } + }; + PlainValue._defineProperty(YAMLOMap, "tag", "tag:yaml.org,2002:omap"); + function parseOMap(doc, cst) { + const pairs2 = parsePairs(doc, cst); + const seenKeys = []; + for (const { + key + } of pairs2.items) { + if (key instanceof resolveSeq.Scalar) { + if (seenKeys.includes(key.value)) { + const msg = "Ordered maps must not include duplicate keys"; + throw new PlainValue.YAMLSemanticError(cst, msg); + } else { + seenKeys.push(key.value); + } + } + } + return Object.assign(new YAMLOMap(), pairs2); + } + function createOMap(schema, iterable, ctx) { + const pairs2 = createPairs(schema, iterable, ctx); + const omap2 = new YAMLOMap(); + omap2.items = pairs2.items; + return omap2; + } + var omap = { + identify: (value) => value instanceof Map, + nodeClass: YAMLOMap, + default: false, + tag: "tag:yaml.org,2002:omap", + resolve: parseOMap, + createNode: createOMap + }; + var YAMLSet = class extends resolveSeq.YAMLMap { + constructor() { + super(); + this.tag = YAMLSet.tag; + } + add(key) { + const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key); + const prev = resolveSeq.findPair(this.items, pair.key); + if (!prev) + this.items.push(pair); + } + get(key, keepPair) { + const pair = resolveSeq.findPair(this.items, key); + return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair; + } + set(key, value) { + if (typeof value !== "boolean") + throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`); + const prev = resolveSeq.findPair(this.items, key); + if (prev && !value) { + this.items.splice(this.items.indexOf(prev), 1); + } else if (!prev && value) { + this.items.push(new resolveSeq.Pair(key)); + } + } + toJSON(_, ctx) { + return super.toJSON(_, ctx, Set); + } + toString(ctx, onComment, onChompKeep) { + if (!ctx) + return JSON.stringify(this); + if (this.hasAllNullValues()) + return super.toString(ctx, onComment, onChompKeep); + else + throw new Error("Set items must all have null values"); + } + }; + PlainValue._defineProperty(YAMLSet, "tag", "tag:yaml.org,2002:set"); + function parseSet(doc, cst) { + const map = resolveSeq.resolveMap(doc, cst); + if (!map.hasAllNullValues()) + throw new PlainValue.YAMLSemanticError(cst, "Set items must all have null values"); + return Object.assign(new YAMLSet(), map); + } + function createSet(schema, iterable, ctx) { + const set2 = new YAMLSet(); + for (const value of iterable) + set2.items.push(schema.createPair(value, null, ctx)); + return set2; + } + var set = { + identify: (value) => value instanceof Set, + nodeClass: YAMLSet, + default: false, + tag: "tag:yaml.org,2002:set", + resolve: parseSet, + createNode: createSet + }; + var parseSexagesimal = (sign, parts) => { + const n = parts.split(":").reduce((n2, p) => n2 * 60 + Number(p), 0); + return sign === "-" ? -n : n; + }; + var stringifySexagesimal = ({ + value + }) => { + if (isNaN(value) || !isFinite(value)) + return resolveSeq.stringifyNumber(value); + let sign = ""; + if (value < 0) { + sign = "-"; + value = Math.abs(value); + } + const parts = [value % 60]; + if (value < 60) { + parts.unshift(0); + } else { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value % 60); + if (value >= 60) { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value); + } + } + return sign + parts.map((n) => n < 10 ? "0" + String(n) : String(n)).join(":").replace(/000000\d*$/, ""); + }; + var intTime = { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:int", + format: "TIME", + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/, + resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, "")), + stringify: stringifySexagesimal + }; + var floatTime = { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + format: "TIME", + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/, + resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, "")), + stringify: stringifySexagesimal + }; + var timestamp = { + identify: (value) => value instanceof Date, + default: true, + tag: "tag:yaml.org,2002:timestamp", + test: RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"), + resolve: (str, year, month, day, hour, minute, second, millisec, tz) => { + if (millisec) + millisec = (millisec + "00").substr(1, 3); + let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0); + if (tz && tz !== "Z") { + let d = parseSexagesimal(tz[0], tz.slice(1)); + if (Math.abs(d) < 30) + d *= 60; + date -= 6e4 * d; + } + return new Date(date); + }, + stringify: ({ + value + }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, "") + }; + function shouldWarn(deprecation) { + const env = typeof process !== "undefined" && process.env || {}; + if (deprecation) { + if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== "undefined") + return !YAML_SILENCE_DEPRECATION_WARNINGS; + return !env.YAML_SILENCE_DEPRECATION_WARNINGS; + } + if (typeof YAML_SILENCE_WARNINGS !== "undefined") + return !YAML_SILENCE_WARNINGS; + return !env.YAML_SILENCE_WARNINGS; + } + function warn(warning, type) { + if (shouldWarn(false)) { + const emit = typeof process !== "undefined" && process.emitWarning; + if (emit) + emit(warning, type); + else { + console.warn(type ? `${type}: ${warning}` : warning); + } + } + } + function warnFileDeprecation(filename) { + if (shouldWarn(true)) { + const path = filename.replace(/.*yaml[/\\]/i, "").replace(/\.js$/, "").replace(/\\/g, "/"); + warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, "DeprecationWarning"); + } + } + var warned = {}; + function warnOptionDeprecation(name, alternative) { + if (!warned[name] && shouldWarn(true)) { + warned[name] = true; + let msg = `The option '${name}' will be removed in a future release`; + msg += alternative ? `, use '${alternative}' instead.` : "."; + warn(msg, "DeprecationWarning"); + } + } + exports2.binary = binary; + exports2.floatTime = floatTime; + exports2.intTime = intTime; + exports2.omap = omap; + exports2.pairs = pairs; + exports2.set = set; + exports2.timestamp = timestamp; + exports2.warn = warn; + exports2.warnFileDeprecation = warnFileDeprecation; + exports2.warnOptionDeprecation = warnOptionDeprecation; + } +}); +var require_Schema_88e323a7 = __commonJS({ + "node_modules/yaml/dist/Schema-88e323a7.js"(exports2) { + "use strict"; + var PlainValue = require_PlainValue_ec8e588e(); + var resolveSeq = require_resolveSeq_d03cb037(); + var warnings = require_warnings_1000a372(); + function createMap(schema, obj, ctx) { + const map2 = new resolveSeq.YAMLMap(schema); + if (obj instanceof Map) { + for (const [key, value] of obj) + map2.items.push(schema.createPair(key, value, ctx)); + } else if (obj && typeof obj === "object") { + for (const key of Object.keys(obj)) + map2.items.push(schema.createPair(key, obj[key], ctx)); + } + if (typeof schema.sortMapEntries === "function") { + map2.items.sort(schema.sortMapEntries); + } + return map2; + } + var map = { + createNode: createMap, + default: true, + nodeClass: resolveSeq.YAMLMap, + tag: "tag:yaml.org,2002:map", + resolve: resolveSeq.resolveMap + }; + function createSeq(schema, obj, ctx) { + const seq2 = new resolveSeq.YAMLSeq(schema); + if (obj && obj[Symbol.iterator]) { + for (const it of obj) { + const v = schema.createNode(it, ctx.wrapScalars, null, ctx); + seq2.items.push(v); + } + } + return seq2; + } + var seq = { + createNode: createSeq, + default: true, + nodeClass: resolveSeq.YAMLSeq, + tag: "tag:yaml.org,2002:seq", + resolve: resolveSeq.resolveSeq + }; + var string = { + identify: (value) => typeof value === "string", + default: true, + tag: "tag:yaml.org,2002:str", + resolve: resolveSeq.resolveString, + stringify(item, ctx, onComment, onChompKeep) { + ctx = Object.assign({ + actualString: true + }, ctx); + return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep); + }, + options: resolveSeq.strOptions + }; + var failsafe = [map, seq, string]; + var intIdentify$2 = (value) => typeof value === "bigint" || Number.isInteger(value); + var intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix); + function intStringify$1(node, radix, prefix) { + const { + value + } = node; + if (intIdentify$2(value) && value >= 0) + return prefix + value.toString(radix); + return resolveSeq.stringifyNumber(node); + } + var nullObj = { + identify: (value) => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: "tag:yaml.org,2002:null", + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: () => null, + options: resolveSeq.nullOptions, + stringify: () => resolveSeq.nullOptions.nullStr + }; + var boolObj = { + identify: (value) => typeof value === "boolean", + default: true, + tag: "tag:yaml.org,2002:bool", + test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/, + resolve: (str) => str[0] === "t" || str[0] === "T", + options: resolveSeq.boolOptions, + stringify: ({ + value + }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr + }; + var octObj = { + identify: (value) => intIdentify$2(value) && value >= 0, + default: true, + tag: "tag:yaml.org,2002:int", + format: "OCT", + test: /^0o([0-7]+)$/, + resolve: (str, oct) => intResolve$1(str, oct, 8), + options: resolveSeq.intOptions, + stringify: (node) => intStringify$1(node, 8, "0o") + }; + var intObj = { + identify: intIdentify$2, + default: true, + tag: "tag:yaml.org,2002:int", + test: /^[-+]?[0-9]+$/, + resolve: (str) => intResolve$1(str, str, 10), + options: resolveSeq.intOptions, + stringify: resolveSeq.stringifyNumber + }; + var hexObj = { + identify: (value) => intIdentify$2(value) && value >= 0, + default: true, + tag: "tag:yaml.org,2002:int", + format: "HEX", + test: /^0x([0-9a-fA-F]+)$/, + resolve: (str, hex) => intResolve$1(str, hex, 16), + options: resolveSeq.intOptions, + stringify: (node) => intStringify$1(node, 16, "0x") + }; + var nanObj = { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: (str, nan) => nan ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, + stringify: resolveSeq.stringifyNumber + }; + var expObj = { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + format: "EXP", + test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/, + resolve: (str) => parseFloat(str), + stringify: ({ + value + }) => Number(value).toExponential() + }; + var floatObj = { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/, + resolve(str, frac1, frac2) { + const frac = frac1 || frac2; + const node = new resolveSeq.Scalar(parseFloat(str)); + if (frac && frac[frac.length - 1] === "0") + node.minFractionDigits = frac.length; + return node; + }, + stringify: resolveSeq.stringifyNumber + }; + var core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]); + var intIdentify$1 = (value) => typeof value === "bigint" || Number.isInteger(value); + var stringifyJSON = ({ + value + }) => JSON.stringify(value); + var json = [map, seq, { + identify: (value) => typeof value === "string", + default: true, + tag: "tag:yaml.org,2002:str", + resolve: resolveSeq.resolveString, + stringify: stringifyJSON + }, { + identify: (value) => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: "tag:yaml.org,2002:null", + test: /^null$/, + resolve: () => null, + stringify: stringifyJSON + }, { + identify: (value) => typeof value === "boolean", + default: true, + tag: "tag:yaml.org,2002:bool", + test: /^true|false$/, + resolve: (str) => str === "true", + stringify: stringifyJSON + }, { + identify: intIdentify$1, + default: true, + tag: "tag:yaml.org,2002:int", + test: /^-?(?:0|[1-9][0-9]*)$/, + resolve: (str) => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10), + stringify: ({ + value + }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value) + }, { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, + resolve: (str) => parseFloat(str), + stringify: stringifyJSON + }]; + json.scalarFallback = (str) => { + throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`); + }; + var boolStringify = ({ + value + }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr; + var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value); + function intResolve(sign, src, radix) { + let str = src.replace(/_/g, ""); + if (resolveSeq.intOptions.asBigInt) { + switch (radix) { + case 2: + str = `0b${str}`; + break; + case 8: + str = `0o${str}`; + break; + case 16: + str = `0x${str}`; + break; + } + const n2 = BigInt(str); + return sign === "-" ? BigInt(-1) * n2 : n2; + } + const n = parseInt(str, radix); + return sign === "-" ? -1 * n : n; + } + function intStringify(node, radix, prefix) { + const { + value + } = node; + if (intIdentify(value)) { + const str = value.toString(radix); + return value < 0 ? "-" + prefix + str.substr(1) : prefix + str; + } + return resolveSeq.stringifyNumber(node); + } + var yaml11 = failsafe.concat([{ + identify: (value) => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: "tag:yaml.org,2002:null", + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: () => null, + options: resolveSeq.nullOptions, + stringify: () => resolveSeq.nullOptions.nullStr + }, { + identify: (value) => typeof value === "boolean", + default: true, + tag: "tag:yaml.org,2002:bool", + test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, + resolve: () => true, + options: resolveSeq.boolOptions, + stringify: boolStringify + }, { + identify: (value) => typeof value === "boolean", + default: true, + tag: "tag:yaml.org,2002:bool", + test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, + resolve: () => false, + options: resolveSeq.boolOptions, + stringify: boolStringify + }, { + identify: intIdentify, + default: true, + tag: "tag:yaml.org,2002:int", + format: "BIN", + test: /^([-+]?)0b([0-1_]+)$/, + resolve: (str, sign, bin) => intResolve(sign, bin, 2), + stringify: (node) => intStringify(node, 2, "0b") + }, { + identify: intIdentify, + default: true, + tag: "tag:yaml.org,2002:int", + format: "OCT", + test: /^([-+]?)0([0-7_]+)$/, + resolve: (str, sign, oct) => intResolve(sign, oct, 8), + stringify: (node) => intStringify(node, 8, "0") + }, { + identify: intIdentify, + default: true, + tag: "tag:yaml.org,2002:int", + test: /^([-+]?)([0-9][0-9_]*)$/, + resolve: (str, sign, abs) => intResolve(sign, abs, 10), + stringify: resolveSeq.stringifyNumber + }, { + identify: intIdentify, + default: true, + tag: "tag:yaml.org,2002:int", + format: "HEX", + test: /^([-+]?)0x([0-9a-fA-F_]+)$/, + resolve: (str, sign, hex) => intResolve(sign, hex, 16), + stringify: (node) => intStringify(node, 16, "0x") + }, { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: (str, nan) => nan ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, + stringify: resolveSeq.stringifyNumber + }, { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + format: "EXP", + test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/, + resolve: (str) => parseFloat(str.replace(/_/g, "")), + stringify: ({ + value + }) => Number(value).toExponential() + }, { + identify: (value) => typeof value === "number", + default: true, + tag: "tag:yaml.org,2002:float", + test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/, + resolve(str, frac) { + const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, ""))); + if (frac) { + const f = frac.replace(/_/g, ""); + if (f[f.length - 1] === "0") + node.minFractionDigits = f.length; + } + return node; + }, + stringify: resolveSeq.stringifyNumber + }], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp); + var schemas = { + core, + failsafe, + json, + yaml11 + }; + var tags = { + binary: warnings.binary, + bool: boolObj, + float: floatObj, + floatExp: expObj, + floatNaN: nanObj, + floatTime: warnings.floatTime, + int: intObj, + intHex: hexObj, + intOct: octObj, + intTime: warnings.intTime, + map, + null: nullObj, + omap: warnings.omap, + pairs: warnings.pairs, + seq, + set: warnings.set, + timestamp: warnings.timestamp + }; + function findTagObject(value, tagName, tags2) { + if (tagName) { + const match = tags2.filter((t) => t.tag === tagName); + const tagObj = match.find((t) => !t.format) || match[0]; + if (!tagObj) + throw new Error(`Tag ${tagName} not found`); + return tagObj; + } + return tags2.find((t) => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format); + } + function createNode(value, tagName, ctx) { + if (value instanceof resolveSeq.Node) + return value; + const { + defaultPrefix, + onTagObj, + prevObjects, + schema, + wrapScalars + } = ctx; + if (tagName && tagName.startsWith("!!")) + tagName = defaultPrefix + tagName.slice(2); + let tagObj = findTagObject(value, tagName, schema.tags); + if (!tagObj) { + if (typeof value.toJSON === "function") + value = value.toJSON(); + if (!value || typeof value !== "object") + return wrapScalars ? new resolveSeq.Scalar(value) : value; + tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map; + } + if (onTagObj) { + onTagObj(tagObj); + delete ctx.onTagObj; + } + const obj = { + value: void 0, + node: void 0 + }; + if (value && typeof value === "object" && prevObjects) { + const prev = prevObjects.get(value); + if (prev) { + const alias = new resolveSeq.Alias(prev); + ctx.aliasNodes.push(alias); + return alias; + } + obj.value = value; + prevObjects.set(value, obj); + } + obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value; + if (tagName && obj.node instanceof resolveSeq.Node) + obj.node.tag = tagName; + return obj.node; + } + function getSchemaTags(schemas2, knownTags, customTags, schemaId) { + let tags2 = schemas2[schemaId.replace(/\W/g, "")]; + if (!tags2) { + const keys = Object.keys(schemas2).map((key) => JSON.stringify(key)).join(", "); + throw new Error(`Unknown schema "${schemaId}"; use one of ${keys}`); + } + if (Array.isArray(customTags)) { + for (const tag of customTags) + tags2 = tags2.concat(tag); + } else if (typeof customTags === "function") { + tags2 = customTags(tags2.slice()); + } + for (let i = 0; i < tags2.length; ++i) { + const tag = tags2[i]; + if (typeof tag === "string") { + const tagObj = knownTags[tag]; + if (!tagObj) { + const keys = Object.keys(knownTags).map((key) => JSON.stringify(key)).join(", "); + throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`); + } + tags2[i] = tagObj; + } + } + return tags2; + } + var sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0; + var Schema = class { + constructor({ + customTags, + merge, + schema, + sortMapEntries, + tags: deprecatedCustomTags + }) { + this.merge = !!merge; + this.name = schema; + this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null; + if (!customTags && deprecatedCustomTags) + warnings.warnOptionDeprecation("tags", "customTags"); + this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema); + } + createNode(value, wrapScalars, tagName, ctx) { + const baseCtx = { + defaultPrefix: Schema.defaultPrefix, + schema: this, + wrapScalars + }; + const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx; + return createNode(value, tagName, createCtx); + } + createPair(key, value, ctx) { + if (!ctx) + ctx = { + wrapScalars: true + }; + const k = this.createNode(key, ctx.wrapScalars, null, ctx); + const v = this.createNode(value, ctx.wrapScalars, null, ctx); + return new resolveSeq.Pair(k, v); + } + }; + PlainValue._defineProperty(Schema, "defaultPrefix", PlainValue.defaultTagPrefix); + PlainValue._defineProperty(Schema, "defaultTags", PlainValue.defaultTags); + exports2.Schema = Schema; + } +}); +var require_Document_9b4560a1 = __commonJS({ + "node_modules/yaml/dist/Document-9b4560a1.js"(exports2) { + "use strict"; + var PlainValue = require_PlainValue_ec8e588e(); + var resolveSeq = require_resolveSeq_d03cb037(); + var Schema = require_Schema_88e323a7(); + var defaultOptions = { + anchorPrefix: "a", + customTags: null, + indent: 2, + indentSeq: true, + keepCstNodes: false, + keepNodeTypes: true, + keepBlobsInJSON: true, + mapAsMap: false, + maxAliasCount: 100, + prettyErrors: false, + simpleKeys: false, + version: "1.2" + }; + var scalarOptions = { + get binary() { + return resolveSeq.binaryOptions; + }, + set binary(opt) { + Object.assign(resolveSeq.binaryOptions, opt); + }, + get bool() { + return resolveSeq.boolOptions; + }, + set bool(opt) { + Object.assign(resolveSeq.boolOptions, opt); + }, + get int() { + return resolveSeq.intOptions; + }, + set int(opt) { + Object.assign(resolveSeq.intOptions, opt); + }, + get null() { + return resolveSeq.nullOptions; + }, + set null(opt) { + Object.assign(resolveSeq.nullOptions, opt); + }, + get str() { + return resolveSeq.strOptions; + }, + set str(opt) { + Object.assign(resolveSeq.strOptions, opt); + } + }; + var documentOptions = { + "1.0": { + schema: "yaml-1.1", + merge: true, + tagPrefixes: [{ + handle: "!", + prefix: PlainValue.defaultTagPrefix + }, { + handle: "!!", + prefix: "tag:private.yaml.org,2002:" + }] + }, + 1.1: { + schema: "yaml-1.1", + merge: true, + tagPrefixes: [{ + handle: "!", + prefix: "!" + }, { + handle: "!!", + prefix: PlainValue.defaultTagPrefix + }] + }, + 1.2: { + schema: "core", + merge: false, + tagPrefixes: [{ + handle: "!", + prefix: "!" + }, { + handle: "!!", + prefix: PlainValue.defaultTagPrefix + }] + } + }; + function stringifyTag(doc, tag) { + if ((doc.version || doc.options.version) === "1.0") { + const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/); + if (priv) + return "!" + priv[1]; + const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/); + return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, "")}`; + } + let p = doc.tagPrefixes.find((p2) => tag.indexOf(p2.prefix) === 0); + if (!p) { + const dtp = doc.getDefaults().tagPrefixes; + p = dtp && dtp.find((p2) => tag.indexOf(p2.prefix) === 0); + } + if (!p) + return tag[0] === "!" ? tag : `!<${tag}>`; + const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, (ch) => ({ + "!": "%21", + ",": "%2C", + "[": "%5B", + "]": "%5D", + "{": "%7B", + "}": "%7D" + })[ch]); + return p.handle + suffix; + } + function getTagObject(tags, item) { + if (item instanceof resolveSeq.Alias) + return resolveSeq.Alias; + if (item.tag) { + const match = tags.filter((t) => t.tag === item.tag); + if (match.length > 0) + return match.find((t) => t.format === item.format) || match[0]; + } + let tagObj, obj; + if (item instanceof resolveSeq.Scalar) { + obj = item.value; + const match = tags.filter((t) => t.identify && t.identify(obj) || t.class && obj instanceof t.class); + tagObj = match.find((t) => t.format === item.format) || match.find((t) => !t.format); + } else { + obj = item; + tagObj = tags.find((t) => t.nodeClass && obj instanceof t.nodeClass); + } + if (!tagObj) { + const name = obj && obj.constructor ? obj.constructor.name : typeof obj; + throw new Error(`Tag not resolved for ${name} value`); + } + return tagObj; + } + function stringifyProps(node, tagObj, { + anchors, + doc + }) { + const props = []; + const anchor = doc.anchors.getName(node); + if (anchor) { + anchors[anchor] = node; + props.push(`&${anchor}`); + } + if (node.tag) { + props.push(stringifyTag(doc, node.tag)); + } else if (!tagObj.default) { + props.push(stringifyTag(doc, tagObj.tag)); + } + return props.join(" "); + } + function stringify(item, ctx, onComment, onChompKeep) { + const { + anchors, + schema + } = ctx.doc; + let tagObj; + if (!(item instanceof resolveSeq.Node)) { + const createCtx = { + aliasNodes: [], + onTagObj: (o) => tagObj = o, + prevObjects: /* @__PURE__ */ new Map() + }; + item = schema.createNode(item, true, null, createCtx); + for (const alias of createCtx.aliasNodes) { + alias.source = alias.source.node; + let name = anchors.getName(alias.source); + if (!name) { + name = anchors.newName(); + anchors.map[name] = alias.source; + } + } + } + if (item instanceof resolveSeq.Pair) + return item.toString(ctx, onComment, onChompKeep); + if (!tagObj) + tagObj = getTagObject(schema.tags, item); + const props = stringifyProps(item, tagObj, ctx); + if (props.length > 0) + ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1; + const str = typeof tagObj.stringify === "function" ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep); + if (!props) + return str; + return item instanceof resolveSeq.Scalar || str[0] === "{" || str[0] === "[" ? `${props} ${str}` : `${props} +${ctx.indent}${str}`; + } + var Anchors = class { + static validAnchorNode(node) { + return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap; + } + constructor(prefix) { + PlainValue._defineProperty(this, "map", /* @__PURE__ */ Object.create(null)); + this.prefix = prefix; + } + createAlias(node, name) { + this.setAnchor(node, name); + return new resolveSeq.Alias(node); + } + createMergePair(...sources) { + const merge = new resolveSeq.Merge(); + merge.value.items = sources.map((s) => { + if (s instanceof resolveSeq.Alias) { + if (s.source instanceof resolveSeq.YAMLMap) + return s; + } else if (s instanceof resolveSeq.YAMLMap) { + return this.createAlias(s); + } + throw new Error("Merge sources must be Map nodes or their Aliases"); + }); + return merge; + } + getName(node) { + const { + map + } = this; + return Object.keys(map).find((a) => map[a] === node); + } + getNames() { + return Object.keys(this.map); + } + getNode(name) { + return this.map[name]; + } + newName(prefix) { + if (!prefix) + prefix = this.prefix; + const names = Object.keys(this.map); + for (let i = 1; true; ++i) { + const name = `${prefix}${i}`; + if (!names.includes(name)) + return name; + } + } + resolveNodes() { + const { + map, + _cstAliases + } = this; + Object.keys(map).forEach((a) => { + map[a] = map[a].resolved; + }); + _cstAliases.forEach((a) => { + a.source = a.source.resolved; + }); + delete this._cstAliases; + } + setAnchor(node, name) { + if (node != null && !Anchors.validAnchorNode(node)) { + throw new Error("Anchors may only be set for Scalar, Seq and Map nodes"); + } + if (name && /[\x00-\x19\s,[\]{}]/.test(name)) { + throw new Error("Anchor names must not contain whitespace or control characters"); + } + const { + map + } = this; + const prev = node && Object.keys(map).find((a) => map[a] === node); + if (prev) { + if (!name) { + return prev; + } else if (prev !== name) { + delete map[prev]; + map[name] = node; + } + } else { + if (!name) { + if (!node) + return null; + name = this.newName(); + } + map[name] = node; + } + return name; + } + }; + var visit = (node, tags) => { + if (node && typeof node === "object") { + const { + tag + } = node; + if (node instanceof resolveSeq.Collection) { + if (tag) + tags[tag] = true; + node.items.forEach((n) => visit(n, tags)); + } else if (node instanceof resolveSeq.Pair) { + visit(node.key, tags); + visit(node.value, tags); + } else if (node instanceof resolveSeq.Scalar) { + if (tag) + tags[tag] = true; + } + } + return tags; + }; + var listTagNames = (node) => Object.keys(visit(node, {})); + function parseContents(doc, contents) { + const comments = { + before: [], + after: [] + }; + let body = void 0; + let spaceBefore = false; + for (const node of contents) { + if (node.valueRange) { + if (body !== void 0) { + const msg = "Document contains trailing content not separated by a ... or --- line"; + doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg)); + break; + } + const res = resolveSeq.resolveNode(doc, node); + if (spaceBefore) { + res.spaceBefore = true; + spaceBefore = false; + } + body = res; + } else if (node.comment !== null) { + const cc = body === void 0 ? comments.before : comments.after; + cc.push(node.comment); + } else if (node.type === PlainValue.Type.BLANK_LINE) { + spaceBefore = true; + if (body === void 0 && comments.before.length > 0 && !doc.commentBefore) { + doc.commentBefore = comments.before.join("\n"); + comments.before = []; + } + } + } + doc.contents = body || null; + if (!body) { + doc.comment = comments.before.concat(comments.after).join("\n") || null; + } else { + const cb = comments.before.join("\n"); + if (cb) { + const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body; + cbNode.commentBefore = cbNode.commentBefore ? `${cb} +${cbNode.commentBefore}` : cb; + } + doc.comment = comments.after.join("\n") || null; + } + } + function resolveTagDirective({ + tagPrefixes + }, directive) { + const [handle, prefix] = directive.parameters; + if (!handle || !prefix) { + const msg = "Insufficient parameters given for %TAG directive"; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + if (tagPrefixes.some((p) => p.handle === handle)) { + const msg = "The %TAG directive must only be given at most once per handle in the same document."; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + return { + handle, + prefix + }; + } + function resolveYamlDirective(doc, directive) { + let [version] = directive.parameters; + if (directive.name === "YAML:1.0") + version = "1.0"; + if (!version) { + const msg = "Insufficient parameters given for %YAML directive"; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + if (!documentOptions[version]) { + const v0 = doc.version || doc.options.version; + const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`; + doc.warnings.push(new PlainValue.YAMLWarning(directive, msg)); + } + return version; + } + function parseDirectives(doc, directives, prevDoc) { + const directiveComments = []; + let hasDirectives = false; + for (const directive of directives) { + const { + comment, + name + } = directive; + switch (name) { + case "TAG": + try { + doc.tagPrefixes.push(resolveTagDirective(doc, directive)); + } catch (error) { + doc.errors.push(error); + } + hasDirectives = true; + break; + case "YAML": + case "YAML:1.0": + if (doc.version) { + const msg = "The %YAML directive must only be given at most once per document."; + doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg)); + } + try { + doc.version = resolveYamlDirective(doc, directive); + } catch (error) { + doc.errors.push(error); + } + hasDirectives = true; + break; + default: + if (name) { + const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`; + doc.warnings.push(new PlainValue.YAMLWarning(directive, msg)); + } + } + if (comment) + directiveComments.push(comment); + } + if (prevDoc && !hasDirectives && (doc.version || prevDoc.version || doc.options.version) === "1.1") { + const copyTagPrefix = ({ + handle, + prefix + }) => ({ + handle, + prefix + }); + doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix); + doc.version = prevDoc.version; + } + doc.commentBefore = directiveComments.join("\n") || null; + } + function assertCollection(contents) { + if (contents instanceof resolveSeq.Collection) + return true; + throw new Error("Expected a YAML collection as document contents"); + } + var Document = class { + constructor(options) { + this.anchors = new Anchors(options.anchorPrefix); + this.commentBefore = null; + this.comment = null; + this.contents = null; + this.directivesEndMarker = null; + this.errors = []; + this.options = options; + this.schema = null; + this.tagPrefixes = []; + this.version = null; + this.warnings = []; + } + add(value) { + assertCollection(this.contents); + return this.contents.add(value); + } + addIn(path, value) { + assertCollection(this.contents); + this.contents.addIn(path, value); + } + delete(key) { + assertCollection(this.contents); + return this.contents.delete(key); + } + deleteIn(path) { + if (resolveSeq.isEmptyPath(path)) { + if (this.contents == null) + return false; + this.contents = null; + return true; + } + assertCollection(this.contents); + return this.contents.deleteIn(path); + } + getDefaults() { + return Document.defaults[this.version] || Document.defaults[this.options.version] || {}; + } + get(key, keepScalar) { + return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : void 0; + } + getIn(path, keepScalar) { + if (resolveSeq.isEmptyPath(path)) + return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents; + return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : void 0; + } + has(key) { + return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false; + } + hasIn(path) { + if (resolveSeq.isEmptyPath(path)) + return this.contents !== void 0; + return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false; + } + set(key, value) { + assertCollection(this.contents); + this.contents.set(key, value); + } + setIn(path, value) { + if (resolveSeq.isEmptyPath(path)) + this.contents = value; + else { + assertCollection(this.contents); + this.contents.setIn(path, value); + } + } + setSchema(id, customTags) { + if (!id && !customTags && this.schema) + return; + if (typeof id === "number") + id = id.toFixed(1); + if (id === "1.0" || id === "1.1" || id === "1.2") { + if (this.version) + this.version = id; + else + this.options.version = id; + delete this.options.schema; + } else if (id && typeof id === "string") { + this.options.schema = id; + } + if (Array.isArray(customTags)) + this.options.customTags = customTags; + const opt = Object.assign({}, this.getDefaults(), this.options); + this.schema = new Schema.Schema(opt); + } + parse(node, prevDoc) { + if (this.options.keepCstNodes) + this.cstNode = node; + if (this.options.keepNodeTypes) + this.type = "DOCUMENT"; + const { + directives = [], + contents = [], + directivesEndMarker, + error, + valueRange + } = node; + if (error) { + if (!error.source) + error.source = this; + this.errors.push(error); + } + parseDirectives(this, directives, prevDoc); + if (directivesEndMarker) + this.directivesEndMarker = true; + this.range = valueRange ? [valueRange.start, valueRange.end] : null; + this.setSchema(); + this.anchors._cstAliases = []; + parseContents(this, contents); + this.anchors.resolveNodes(); + if (this.options.prettyErrors) { + for (const error2 of this.errors) + if (error2 instanceof PlainValue.YAMLError) + error2.makePretty(); + for (const warn of this.warnings) + if (warn instanceof PlainValue.YAMLError) + warn.makePretty(); + } + return this; + } + listNonDefaultTags() { + return listTagNames(this.contents).filter((t) => t.indexOf(Schema.Schema.defaultPrefix) !== 0); + } + setTagPrefix(handle, prefix) { + if (handle[0] !== "!" || handle[handle.length - 1] !== "!") + throw new Error("Handle must start and end with !"); + if (prefix) { + const prev = this.tagPrefixes.find((p) => p.handle === handle); + if (prev) + prev.prefix = prefix; + else + this.tagPrefixes.push({ + handle, + prefix + }); + } else { + this.tagPrefixes = this.tagPrefixes.filter((p) => p.handle !== handle); + } + } + toJSON(arg, onAnchor) { + const { + keepBlobsInJSON, + mapAsMap, + maxAliasCount + } = this.options; + const keep = keepBlobsInJSON && (typeof arg !== "string" || !(this.contents instanceof resolveSeq.Scalar)); + const ctx = { + doc: this, + indentStep: " ", + keep, + mapAsMap: keep && !!mapAsMap, + maxAliasCount, + stringify + }; + const anchorNames = Object.keys(this.anchors.map); + if (anchorNames.length > 0) + ctx.anchors = new Map(anchorNames.map((name) => [this.anchors.map[name], { + alias: [], + aliasCount: 0, + count: 1 + }])); + const res = resolveSeq.toJSON(this.contents, arg, ctx); + if (typeof onAnchor === "function" && ctx.anchors) + for (const { + count, + res: res2 + } of ctx.anchors.values()) + onAnchor(res2, count); + return res; + } + toString() { + if (this.errors.length > 0) + throw new Error("Document with errors cannot be stringified"); + const indentSize = this.options.indent; + if (!Number.isInteger(indentSize) || indentSize <= 0) { + const s = JSON.stringify(indentSize); + throw new Error(`"indent" option must be a positive integer, not ${s}`); + } + this.setSchema(); + const lines = []; + let hasDirectives = false; + if (this.version) { + let vd = "%YAML 1.2"; + if (this.schema.name === "yaml-1.1") { + if (this.version === "1.0") + vd = "%YAML:1.0"; + else if (this.version === "1.1") + vd = "%YAML 1.1"; + } + lines.push(vd); + hasDirectives = true; + } + const tagNames = this.listNonDefaultTags(); + this.tagPrefixes.forEach(({ + handle, + prefix + }) => { + if (tagNames.some((t) => t.indexOf(prefix) === 0)) { + lines.push(`%TAG ${handle} ${prefix}`); + hasDirectives = true; + } + }); + if (hasDirectives || this.directivesEndMarker) + lines.push("---"); + if (this.commentBefore) { + if (hasDirectives || !this.directivesEndMarker) + lines.unshift(""); + lines.unshift(this.commentBefore.replace(/^/gm, "#")); + } + const ctx = { + anchors: /* @__PURE__ */ Object.create(null), + doc: this, + indent: "", + indentStep: " ".repeat(indentSize), + stringify + }; + let chompKeep = false; + let contentComment = null; + if (this.contents) { + if (this.contents instanceof resolveSeq.Node) { + if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) + lines.push(""); + if (this.contents.commentBefore) + lines.push(this.contents.commentBefore.replace(/^/gm, "#")); + ctx.forceBlockIndent = !!this.comment; + contentComment = this.contents.comment; + } + const onChompKeep = contentComment ? null : () => chompKeep = true; + const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep); + lines.push(resolveSeq.addComment(body, "", contentComment)); + } else if (this.contents !== void 0) { + lines.push(stringify(this.contents, ctx)); + } + if (this.comment) { + if ((!chompKeep || contentComment) && lines[lines.length - 1] !== "") + lines.push(""); + lines.push(this.comment.replace(/^/gm, "#")); + } + return lines.join("\n") + "\n"; + } + }; + PlainValue._defineProperty(Document, "defaults", documentOptions); + exports2.Document = Document; + exports2.defaultOptions = defaultOptions; + exports2.scalarOptions = scalarOptions; + } +}); +var require_dist = __commonJS({ + "node_modules/yaml/dist/index.js"(exports2) { + "use strict"; + var parseCst = require_parse_cst(); + var Document$1 = require_Document_9b4560a1(); + var Schema = require_Schema_88e323a7(); + var PlainValue = require_PlainValue_ec8e588e(); + var warnings = require_warnings_1000a372(); + require_resolveSeq_d03cb037(); + function createNode(value, wrapScalars = true, tag) { + if (tag === void 0 && typeof wrapScalars === "string") { + tag = wrapScalars; + wrapScalars = true; + } + const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions); + const schema = new Schema.Schema(options); + return schema.createNode(value, wrapScalars, tag); + } + var Document = class extends Document$1.Document { + constructor(options) { + super(Object.assign({}, Document$1.defaultOptions, options)); + } + }; + function parseAllDocuments(src, options) { + const stream = []; + let prev; + for (const cstDoc of parseCst.parse(src)) { + const doc = new Document(options); + doc.parse(cstDoc, prev); + stream.push(doc); + prev = doc; + } + return stream; + } + function parseDocument(src, options) { + const cst = parseCst.parse(src); + const doc = new Document(options).parse(cst[0]); + if (cst.length > 1) { + const errMsg = "Source contains multiple documents; please use YAML.parseAllDocuments()"; + doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg)); + } + return doc; + } + function parse(src, options) { + const doc = parseDocument(src, options); + doc.warnings.forEach((warning) => warnings.warn(warning)); + if (doc.errors.length > 0) + throw doc.errors[0]; + return doc.toJSON(); + } + function stringify(value, options) { + const doc = new Document(options); + doc.contents = value; + return String(doc); + } + var YAML = { + createNode, + defaultOptions: Document$1.defaultOptions, + Document, + parse, + parseAllDocuments, + parseCST: parseCst.parse, + parseDocument, + scalarOptions: Document$1.scalarOptions, + stringify + }; + exports2.YAML = YAML; + } +}); +var require_yaml = __commonJS({ + "node_modules/yaml/index.js"(exports2, module2) { + module2.exports = require_dist().YAML; + } +}); +var require_loaders = __commonJS({ + "node_modules/cosmiconfig/dist/loaders.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.loaders = void 0; + var importFresh; + var loadJs = function loadJs2(filepath) { + if (importFresh === void 0) { + importFresh = require_import_fresh(); + } + const result = importFresh(filepath); + return result; + }; + var parseJson; + var loadJson = function loadJson2(filepath, content) { + if (parseJson === void 0) { + parseJson = require_parse_json(); + } + try { + const result = parseJson(content); + return result; + } catch (error) { + error.message = `JSON Error in ${filepath}: +${error.message}`; + throw error; + } + }; + var yaml; + var loadYaml = function loadYaml2(filepath, content) { + if (yaml === void 0) { + yaml = require_yaml(); + } + try { + const result = yaml.parse(content, { + prettyErrors: true + }); + return result; + } catch (error) { + error.message = `YAML Error in ${filepath}: +${error.message}`; + throw error; + } + }; + var loaders = { + loadJs, + loadJson, + loadYaml + }; + exports2.loaders = loaders; + } +}); +var require_getPropertyByPath = __commonJS({ + "node_modules/cosmiconfig/dist/getPropertyByPath.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.getPropertyByPath = getPropertyByPath; + function getPropertyByPath(source, path) { + if (typeof path === "string" && Object.prototype.hasOwnProperty.call(source, path)) { + return source[path]; + } + const parsedPath = typeof path === "string" ? path.split(".") : path; + return parsedPath.reduce((previous, key) => { + if (previous === void 0) { + return previous; + } + return previous[key]; + }, source); + } + } +}); +var require_ExplorerBase = __commonJS({ + "node_modules/cosmiconfig/dist/ExplorerBase.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.getExtensionDescription = getExtensionDescription; + exports2.ExplorerBase = void 0; + var _path = _interopRequireDefault(require("path")); + var _loaders = require_loaders(); + var _getPropertyByPath = require_getPropertyByPath(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var ExplorerBase = class { + constructor(options) { + if (options.cache === true) { + this.loadCache = /* @__PURE__ */ new Map(); + this.searchCache = /* @__PURE__ */ new Map(); + } + this.config = options; + this.validateConfig(); + } + clearLoadCache() { + if (this.loadCache) { + this.loadCache.clear(); + } + } + clearSearchCache() { + if (this.searchCache) { + this.searchCache.clear(); + } + } + clearCaches() { + this.clearLoadCache(); + this.clearSearchCache(); + } + validateConfig() { + const config = this.config; + config.searchPlaces.forEach((place) => { + const loaderKey = _path.default.extname(place) || "noExt"; + const loader = config.loaders[loaderKey]; + if (!loader) { + throw new Error(`No loader specified for ${getExtensionDescription(place)}, so searchPlaces item "${place}" is invalid`); + } + if (typeof loader !== "function") { + throw new Error(`loader for ${getExtensionDescription(place)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`); + } + }); + } + shouldSearchStopWithResult(result) { + if (result === null) + return false; + if (result.isEmpty && this.config.ignoreEmptySearchPlaces) + return false; + return true; + } + nextDirectoryToSearch(currentDir, currentResult) { + if (this.shouldSearchStopWithResult(currentResult)) { + return null; + } + const nextDir = nextDirUp(currentDir); + if (nextDir === currentDir || currentDir === this.config.stopDir) { + return null; + } + return nextDir; + } + loadPackageProp(filepath, content) { + const parsedContent = _loaders.loaders.loadJson(filepath, content); + const packagePropValue = (0, _getPropertyByPath.getPropertyByPath)(parsedContent, this.config.packageProp); + return packagePropValue || null; + } + getLoaderEntryForFile(filepath) { + if (_path.default.basename(filepath) === "package.json") { + const loader2 = this.loadPackageProp.bind(this); + return loader2; + } + const loaderKey = _path.default.extname(filepath) || "noExt"; + const loader = this.config.loaders[loaderKey]; + if (!loader) { + throw new Error(`No loader specified for ${getExtensionDescription(filepath)}`); + } + return loader; + } + loadedContentToCosmiconfigResult(filepath, loadedContent) { + if (loadedContent === null) { + return null; + } + if (loadedContent === void 0) { + return { + filepath, + config: void 0, + isEmpty: true + }; + } + return { + config: loadedContent, + filepath + }; + } + validateFilePath(filepath) { + if (!filepath) { + throw new Error("load must pass a non-empty string"); + } + } + }; + exports2.ExplorerBase = ExplorerBase; + function nextDirUp(dir) { + return _path.default.dirname(dir); + } + function getExtensionDescription(filepath) { + const ext = _path.default.extname(filepath); + return ext ? `extension "${ext}"` : "files without extensions"; + } + } +}); +var require_readFile = __commonJS({ + "node_modules/cosmiconfig/dist/readFile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.readFile = readFile; + exports2.readFileSync = readFileSync; + var _fs = _interopRequireDefault(require("fs")); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + async function fsReadFileAsync(pathname, encoding) { + return new Promise((resolve, reject) => { + _fs.default.readFile(pathname, encoding, (error, contents) => { + if (error) { + reject(error); + return; + } + resolve(contents); + }); + }); + } + async function readFile(filepath, options = {}) { + const throwNotFound = options.throwNotFound === true; + try { + const content = await fsReadFileAsync(filepath, "utf8"); + return content; + } catch (error) { + if (throwNotFound === false && (error.code === "ENOENT" || error.code === "EISDIR")) { + return null; + } + throw error; + } + } + function readFileSync(filepath, options = {}) { + const throwNotFound = options.throwNotFound === true; + try { + const content = _fs.default.readFileSync(filepath, "utf8"); + return content; + } catch (error) { + if (throwNotFound === false && (error.code === "ENOENT" || error.code === "EISDIR")) { + return null; + } + throw error; + } + } + } +}); +var require_cacheWrapper = __commonJS({ + "node_modules/cosmiconfig/dist/cacheWrapper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.cacheWrapper = cacheWrapper; + exports2.cacheWrapperSync = cacheWrapperSync; + async function cacheWrapper(cache, key, fn) { + const cached = cache.get(key); + if (cached !== void 0) { + return cached; + } + const result = await fn(); + cache.set(key, result); + return result; + } + function cacheWrapperSync(cache, key, fn) { + const cached = cache.get(key); + if (cached !== void 0) { + return cached; + } + const result = fn(); + cache.set(key, result); + return result; + } + } +}); +var require_path_type = __commonJS({ + "node_modules/path-type/index.js"(exports2) { + "use strict"; + var { + promisify + } = require("util"); + var fs = require("fs"); + async function isType(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== "string") { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + try { + const stats = await promisify(fs[fsStatType])(filePath); + return stats[statsMethodName](); + } catch (error) { + if (error.code === "ENOENT") { + return false; + } + throw error; + } + } + function isTypeSync(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== "string") { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + try { + return fs[fsStatType](filePath)[statsMethodName](); + } catch (error) { + if (error.code === "ENOENT") { + return false; + } + throw error; + } + } + exports2.isFile = isType.bind(null, "stat", "isFile"); + exports2.isDirectory = isType.bind(null, "stat", "isDirectory"); + exports2.isSymlink = isType.bind(null, "lstat", "isSymbolicLink"); + exports2.isFileSync = isTypeSync.bind(null, "statSync", "isFile"); + exports2.isDirectorySync = isTypeSync.bind(null, "statSync", "isDirectory"); + exports2.isSymlinkSync = isTypeSync.bind(null, "lstatSync", "isSymbolicLink"); + } +}); +var require_getDirectory = __commonJS({ + "node_modules/cosmiconfig/dist/getDirectory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.getDirectory = getDirectory; + exports2.getDirectorySync = getDirectorySync; + var _path = _interopRequireDefault(require("path")); + var _pathType = require_path_type(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + async function getDirectory(filepath) { + const filePathIsDirectory = await (0, _pathType.isDirectory)(filepath); + if (filePathIsDirectory === true) { + return filepath; + } + const directory = _path.default.dirname(filepath); + return directory; + } + function getDirectorySync(filepath) { + const filePathIsDirectory = (0, _pathType.isDirectorySync)(filepath); + if (filePathIsDirectory === true) { + return filepath; + } + const directory = _path.default.dirname(filepath); + return directory; + } + } +}); +var require_Explorer = __commonJS({ + "node_modules/cosmiconfig/dist/Explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.Explorer = void 0; + var _path = _interopRequireDefault(require("path")); + var _ExplorerBase = require_ExplorerBase(); + var _readFile = require_readFile(); + var _cacheWrapper = require_cacheWrapper(); + var _getDirectory = require_getDirectory(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var Explorer = class extends _ExplorerBase.ExplorerBase { + constructor(options) { + super(options); + } + async search(searchFrom = process.cwd()) { + const startDirectory = await (0, _getDirectory.getDirectory)(searchFrom); + const result = await this.searchFromDirectory(startDirectory); + return result; + } + async searchFromDirectory(dir) { + const absoluteDir = _path.default.resolve(process.cwd(), dir); + const run = async () => { + const result = await this.searchDirectory(absoluteDir); + const nextDir = this.nextDirectoryToSearch(absoluteDir, result); + if (nextDir) { + return this.searchFromDirectory(nextDir); + } + const transformResult = await this.config.transform(result); + return transformResult; + }; + if (this.searchCache) { + return (0, _cacheWrapper.cacheWrapper)(this.searchCache, absoluteDir, run); + } + return run(); + } + async searchDirectory(dir) { + for await (const place of this.config.searchPlaces) { + const placeResult = await this.loadSearchPlace(dir, place); + if (this.shouldSearchStopWithResult(placeResult) === true) { + return placeResult; + } + } + return null; + } + async loadSearchPlace(dir, place) { + const filepath = _path.default.join(dir, place); + const fileContents = await (0, _readFile.readFile)(filepath); + const result = await this.createCosmiconfigResult(filepath, fileContents); + return result; + } + async loadFileContent(filepath, content) { + if (content === null) { + return null; + } + if (content.trim() === "") { + return void 0; + } + const loader = this.getLoaderEntryForFile(filepath); + const loaderResult = await loader(filepath, content); + return loaderResult; + } + async createCosmiconfigResult(filepath, content) { + const fileContent = await this.loadFileContent(filepath, content); + const result = this.loadedContentToCosmiconfigResult(filepath, fileContent); + return result; + } + async load(filepath) { + this.validateFilePath(filepath); + const absoluteFilePath = _path.default.resolve(process.cwd(), filepath); + const runLoad = async () => { + const fileContents = await (0, _readFile.readFile)(absoluteFilePath, { + throwNotFound: true + }); + const result = await this.createCosmiconfigResult(absoluteFilePath, fileContents); + const transformResult = await this.config.transform(result); + return transformResult; + }; + if (this.loadCache) { + return (0, _cacheWrapper.cacheWrapper)(this.loadCache, absoluteFilePath, runLoad); + } + return runLoad(); + } + }; + exports2.Explorer = Explorer; + } +}); +var require_ExplorerSync = __commonJS({ + "node_modules/cosmiconfig/dist/ExplorerSync.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.ExplorerSync = void 0; + var _path = _interopRequireDefault(require("path")); + var _ExplorerBase = require_ExplorerBase(); + var _readFile = require_readFile(); + var _cacheWrapper = require_cacheWrapper(); + var _getDirectory = require_getDirectory(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var ExplorerSync = class extends _ExplorerBase.ExplorerBase { + constructor(options) { + super(options); + } + searchSync(searchFrom = process.cwd()) { + const startDirectory = (0, _getDirectory.getDirectorySync)(searchFrom); + const result = this.searchFromDirectorySync(startDirectory); + return result; + } + searchFromDirectorySync(dir) { + const absoluteDir = _path.default.resolve(process.cwd(), dir); + const run = () => { + const result = this.searchDirectorySync(absoluteDir); + const nextDir = this.nextDirectoryToSearch(absoluteDir, result); + if (nextDir) { + return this.searchFromDirectorySync(nextDir); + } + const transformResult = this.config.transform(result); + return transformResult; + }; + if (this.searchCache) { + return (0, _cacheWrapper.cacheWrapperSync)(this.searchCache, absoluteDir, run); + } + return run(); + } + searchDirectorySync(dir) { + for (const place of this.config.searchPlaces) { + const placeResult = this.loadSearchPlaceSync(dir, place); + if (this.shouldSearchStopWithResult(placeResult) === true) { + return placeResult; + } + } + return null; + } + loadSearchPlaceSync(dir, place) { + const filepath = _path.default.join(dir, place); + const content = (0, _readFile.readFileSync)(filepath); + const result = this.createCosmiconfigResultSync(filepath, content); + return result; + } + loadFileContentSync(filepath, content) { + if (content === null) { + return null; + } + if (content.trim() === "") { + return void 0; + } + const loader = this.getLoaderEntryForFile(filepath); + const loaderResult = loader(filepath, content); + return loaderResult; + } + createCosmiconfigResultSync(filepath, content) { + const fileContent = this.loadFileContentSync(filepath, content); + const result = this.loadedContentToCosmiconfigResult(filepath, fileContent); + return result; + } + loadSync(filepath) { + this.validateFilePath(filepath); + const absoluteFilePath = _path.default.resolve(process.cwd(), filepath); + const runLoadSync = () => { + const content = (0, _readFile.readFileSync)(absoluteFilePath, { + throwNotFound: true + }); + const cosmiconfigResult = this.createCosmiconfigResultSync(absoluteFilePath, content); + const transformResult = this.config.transform(cosmiconfigResult); + return transformResult; + }; + if (this.loadCache) { + return (0, _cacheWrapper.cacheWrapperSync)(this.loadCache, absoluteFilePath, runLoadSync); + } + return runLoadSync(); + } + }; + exports2.ExplorerSync = ExplorerSync; + } +}); +var require_types = __commonJS({ + "node_modules/cosmiconfig/dist/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + } +}); +var require_dist2 = __commonJS({ + "node_modules/cosmiconfig/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.cosmiconfig = cosmiconfig; + exports2.cosmiconfigSync = cosmiconfigSync; + exports2.defaultLoaders = void 0; + var _os = _interopRequireDefault(require("os")); + var _Explorer = require_Explorer(); + var _ExplorerSync = require_ExplorerSync(); + var _loaders = require_loaders(); + var _types = require_types(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function cosmiconfig(moduleName, options = {}) { + const normalizedOptions = normalizeOptions(moduleName, options); + const explorer = new _Explorer.Explorer(normalizedOptions); + return { + search: explorer.search.bind(explorer), + load: explorer.load.bind(explorer), + clearLoadCache: explorer.clearLoadCache.bind(explorer), + clearSearchCache: explorer.clearSearchCache.bind(explorer), + clearCaches: explorer.clearCaches.bind(explorer) + }; + } + function cosmiconfigSync(moduleName, options = {}) { + const normalizedOptions = normalizeOptions(moduleName, options); + const explorerSync = new _ExplorerSync.ExplorerSync(normalizedOptions); + return { + search: explorerSync.searchSync.bind(explorerSync), + load: explorerSync.loadSync.bind(explorerSync), + clearLoadCache: explorerSync.clearLoadCache.bind(explorerSync), + clearSearchCache: explorerSync.clearSearchCache.bind(explorerSync), + clearCaches: explorerSync.clearCaches.bind(explorerSync) + }; + } + var defaultLoaders = Object.freeze({ + ".cjs": _loaders.loaders.loadJs, + ".js": _loaders.loaders.loadJs, + ".json": _loaders.loaders.loadJson, + ".yaml": _loaders.loaders.loadYaml, + ".yml": _loaders.loaders.loadYaml, + noExt: _loaders.loaders.loadYaml + }); + exports2.defaultLoaders = defaultLoaders; + var identity = function identity2(x) { + return x; + }; + function normalizeOptions(moduleName, options) { + const defaults = { + packageProp: moduleName, + searchPlaces: ["package.json", `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`], + ignoreEmptySearchPlaces: true, + stopDir: _os.default.homedir(), + cache: true, + transform: identity, + loaders: defaultLoaders + }; + const normalizedOptions = Object.assign(Object.assign(Object.assign({}, defaults), options), {}, { + loaders: Object.assign(Object.assign({}, defaults.loaders), options.loaders) + }); + return normalizedOptions; + } + } +}); +var require_find_parent_dir = __commonJS({ + "node_modules/find-parent-dir/index.js"(exports2, module2) { + "use strict"; + var path = require("path"); + var fs = require("fs"); + var exists = fs.exists || path.exists; + var existsSync = fs.existsSync || path.existsSync; + function splitPath(path2) { + var parts = path2.split(/(\/|\\)/); + if (!parts.length) + return parts; + return !parts[0].length ? parts.slice(1) : parts; + } + exports2 = module2.exports = function(currentFullPath, clue, cb) { + function testDir(parts) { + if (parts.length === 0) + return cb(null, null); + var p = parts.join(""); + exists(path.join(p, clue), function(itdoes) { + if (itdoes) + return cb(null, p); + testDir(parts.slice(0, -1)); + }); + } + testDir(splitPath(currentFullPath)); + }; + exports2.sync = function(currentFullPath, clue) { + function testDir(parts) { + if (parts.length === 0) + return null; + var p = parts.join(""); + var itdoes = existsSync(path.join(p, clue)); + return itdoes ? p : testDir(parts.slice(0, -1)); + } + return testDir(splitPath(currentFullPath)); + }; + } +}); +var require_get_stdin = __commonJS({ + "node_modules/get-stdin/index.js"(exports2, module2) { + "use strict"; + var { + stdin + } = process; + module2.exports = async () => { + let result = ""; + if (stdin.isTTY) { + return result; + } + stdin.setEncoding("utf8"); + for await (const chunk of stdin) { + result += chunk; + } + return result; + }; + module2.exports.buffer = async () => { + const result = []; + let length = 0; + if (stdin.isTTY) { + return Buffer.concat([]); + } + for await (const chunk of stdin) { + result.push(chunk); + length += chunk.length; + } + return Buffer.concat(result, length); + }; + } +}); +var require_vendors = __commonJS({ + "node_modules/ci-info/vendors.json"(exports2, module2) { + module2.exports = [{ + name: "AppVeyor", + constant: "APPVEYOR", + env: "APPVEYOR", + pr: "APPVEYOR_PULL_REQUEST_NUMBER" + }, { + name: "Azure Pipelines", + constant: "AZURE_PIPELINES", + env: "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI", + pr: "SYSTEM_PULLREQUEST_PULLREQUESTID" + }, { + name: "Appcircle", + constant: "APPCIRCLE", + env: "AC_APPCIRCLE" + }, { + name: "Bamboo", + constant: "BAMBOO", + env: "bamboo_planKey" + }, { + name: "Bitbucket Pipelines", + constant: "BITBUCKET", + env: "BITBUCKET_COMMIT", + pr: "BITBUCKET_PR_ID" + }, { + name: "Bitrise", + constant: "BITRISE", + env: "BITRISE_IO", + pr: "BITRISE_PULL_REQUEST" + }, { + name: "Buddy", + constant: "BUDDY", + env: "BUDDY_WORKSPACE_ID", + pr: "BUDDY_EXECUTION_PULL_REQUEST_ID" + }, { + name: "Buildkite", + constant: "BUILDKITE", + env: "BUILDKITE", + pr: { + env: "BUILDKITE_PULL_REQUEST", + ne: "false" + } + }, { + name: "CircleCI", + constant: "CIRCLE", + env: "CIRCLECI", + pr: "CIRCLE_PULL_REQUEST" + }, { + name: "Cirrus CI", + constant: "CIRRUS", + env: "CIRRUS_CI", + pr: "CIRRUS_PR" + }, { + name: "AWS CodeBuild", + constant: "CODEBUILD", + env: "CODEBUILD_BUILD_ARN" + }, { + name: "Codefresh", + constant: "CODEFRESH", + env: "CF_BUILD_ID", + pr: { + any: ["CF_PULL_REQUEST_NUMBER", "CF_PULL_REQUEST_ID"] + } + }, { + name: "Codeship", + constant: "CODESHIP", + env: { + CI_NAME: "codeship" + } + }, { + name: "Drone", + constant: "DRONE", + env: "DRONE", + pr: { + DRONE_BUILD_EVENT: "pull_request" + } + }, { + name: "dsari", + constant: "DSARI", + env: "DSARI" + }, { + name: "Expo Application Services", + constant: "EAS", + env: "EAS_BUILD" + }, { + name: "GitHub Actions", + constant: "GITHUB_ACTIONS", + env: "GITHUB_ACTIONS", + pr: { + GITHUB_EVENT_NAME: "pull_request" + } + }, { + name: "GitLab CI", + constant: "GITLAB", + env: "GITLAB_CI", + pr: "CI_MERGE_REQUEST_ID" + }, { + name: "GoCD", + constant: "GOCD", + env: "GO_PIPELINE_LABEL" + }, { + name: "LayerCI", + constant: "LAYERCI", + env: "LAYERCI", + pr: "LAYERCI_PULL_REQUEST" + }, { + name: "Hudson", + constant: "HUDSON", + env: "HUDSON_URL" + }, { + name: "Jenkins", + constant: "JENKINS", + env: ["JENKINS_URL", "BUILD_ID"], + pr: { + any: ["ghprbPullId", "CHANGE_ID"] + } + }, { + name: "Magnum CI", + constant: "MAGNUM", + env: "MAGNUM" + }, { + name: "Netlify CI", + constant: "NETLIFY", + env: "NETLIFY", + pr: { + env: "PULL_REQUEST", + ne: "false" + } + }, { + name: "Nevercode", + constant: "NEVERCODE", + env: "NEVERCODE", + pr: { + env: "NEVERCODE_PULL_REQUEST", + ne: "false" + } + }, { + name: "Render", + constant: "RENDER", + env: "RENDER", + pr: { + IS_PULL_REQUEST: "true" + } + }, { + name: "Sail CI", + constant: "SAIL", + env: "SAILCI", + pr: "SAIL_PULL_REQUEST_NUMBER" + }, { + name: "Semaphore", + constant: "SEMAPHORE", + env: "SEMAPHORE", + pr: "PULL_REQUEST_NUMBER" + }, { + name: "Screwdriver", + constant: "SCREWDRIVER", + env: "SCREWDRIVER", + pr: { + env: "SD_PULL_REQUEST", + ne: "false" + } + }, { + name: "Shippable", + constant: "SHIPPABLE", + env: "SHIPPABLE", + pr: { + IS_PULL_REQUEST: "true" + } + }, { + name: "Solano CI", + constant: "SOLANO", + env: "TDDIUM", + pr: "TDDIUM_PR_ID" + }, { + name: "Strider CD", + constant: "STRIDER", + env: "STRIDER" + }, { + name: "TaskCluster", + constant: "TASKCLUSTER", + env: ["TASK_ID", "RUN_ID"] + }, { + name: "TeamCity", + constant: "TEAMCITY", + env: "TEAMCITY_VERSION" + }, { + name: "Travis CI", + constant: "TRAVIS", + env: "TRAVIS", + pr: { + env: "TRAVIS_PULL_REQUEST", + ne: "false" + } + }, { + name: "Vercel", + constant: "VERCEL", + env: "NOW_BUILDER" + }, { + name: "Visual Studio App Center", + constant: "APPCENTER", + env: "APPCENTER_BUILD_ID" + }]; + } +}); +var require_ci_info = __commonJS({ + "node_modules/ci-info/index.js"(exports2) { + "use strict"; + var vendors = require_vendors(); + var env = process.env; + Object.defineProperty(exports2, "_vendors", { + value: vendors.map(function(v) { + return v.constant; + }) + }); + exports2.name = null; + exports2.isPR = null; + vendors.forEach(function(vendor) { + const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]; + const isCI = envs.every(function(obj) { + return checkEnv(obj); + }); + exports2[vendor.constant] = isCI; + if (isCI) { + exports2.name = vendor.name; + switch (typeof vendor.pr) { + case "string": + exports2.isPR = !!env[vendor.pr]; + break; + case "object": + if ("env" in vendor.pr) { + exports2.isPR = vendor.pr.env in env && env[vendor.pr.env] !== vendor.pr.ne; + } else if ("any" in vendor.pr) { + exports2.isPR = vendor.pr.any.some(function(key) { + return !!env[key]; + }); + } else { + exports2.isPR = checkEnv(vendor.pr); + } + break; + default: + exports2.isPR = null; + } + } + }); + exports2.isCI = !!(env.CI || env.CONTINUOUS_INTEGRATION || env.BUILD_NUMBER || env.RUN_ID || exports2.name || false); + function checkEnv(obj) { + if (typeof obj === "string") + return !!env[obj]; + return Object.keys(obj).every(function(k) { + return env[k] === obj[k]; + }); + } + } +}); +module.exports = { + cosmiconfig: require_dist2().cosmiconfig, + cosmiconfigSync: require_dist2().cosmiconfigSync, + findParentDir: require_find_parent_dir().sync, + getStdin: require_get_stdin(), + isCI: () => require_ci_info().isCI +}; diff --git a/node_modules/punycode/LICENSE-MIT.txt b/node_modules/punycode/LICENSE-MIT.txt new file mode 100644 index 0000000..a41e0a7 --- /dev/null +++ b/node_modules/punycode/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/punycode/README.md b/node_modules/punycode/README.md new file mode 100644 index 0000000..ee2f9d6 --- /dev/null +++ b/node_modules/punycode/README.md @@ -0,0 +1,122 @@ +# Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/codecov/c/github/bestiejs/punycode.js.svg)](https://codecov.io/gh/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js) + +Punycode.js is a robust Punycode converter that fully complies to [RFC 3492](https://tools.ietf.org/html/rfc3492) and [RFC 5891](https://tools.ietf.org/html/rfc5891). + +This JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm: + +* [The C example code from RFC 3492](https://tools.ietf.org/html/rfc3492#appendix-C) +* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c) +* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c) +* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287) +* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072)) + +This project was [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with Node.js from [v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc) until [v7](https://github.com/nodejs/node/pull/7941) (soft-deprecated). + +The current version supports recent versions of Node.js only. It provides a CommonJS module and an ES6 module. For the old version that offers the same functionality with broader support, including Rhino, Ringo, Narwhal, and web browsers, see [v1.4.1](https://github.com/bestiejs/punycode.js/releases/tag/v1.4.1). + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install punycode --save +``` + +In [Node.js](https://nodejs.org/): + +```js +const punycode = require('punycode'); +``` + +## API + +### `punycode.decode(string)` + +Converts a Punycode string of ASCII symbols to a string of Unicode symbols. + +```js +// decode domain name parts +punycode.decode('maana-pta'); // 'mañana' +punycode.decode('--dqo34k'); // '☃-⌘' +``` + +### `punycode.encode(string)` + +Converts a string of Unicode symbols to a Punycode string of ASCII symbols. + +```js +// encode domain name parts +punycode.encode('mañana'); // 'maana-pta' +punycode.encode('☃-⌘'); // '--dqo34k' +``` + +### `punycode.toUnicode(input)` + +Converts a Punycode string representing a domain name or an email address to Unicode. Only the Punycoded parts of the input will be converted, i.e. it doesn’t matter if you call it on a string that has already been converted to Unicode. + +```js +// decode domain names +punycode.toUnicode('xn--maana-pta.com'); +// → 'mañana.com' +punycode.toUnicode('xn----dqo34k.com'); +// → '☃-⌘.com' + +// decode email addresses +punycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'); +// → 'джумла@джpумлатест.bрфa' +``` + +### `punycode.toASCII(input)` + +Converts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII. + +```js +// encode domain names +punycode.toASCII('mañana.com'); +// → 'xn--maana-pta.com' +punycode.toASCII('☃-⌘.com'); +// → 'xn----dqo34k.com' + +// encode email addresses +punycode.toASCII('джумла@джpумлатест.bрфa'); +// → 'джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq' +``` + +### `punycode.ucs2` + +#### `punycode.ucs2.decode(string)` + +Creates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](https://mathiasbynens.be/notes/javascript-encoding), this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16. + +```js +punycode.ucs2.decode('abc'); +// → [0x61, 0x62, 0x63] +// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE: +punycode.ucs2.decode('\uD834\uDF06'); +// → [0x1D306] +``` + +#### `punycode.ucs2.encode(codePoints)` + +Creates a string based on an array of numeric code point values. + +```js +punycode.ucs2.encode([0x61, 0x62, 0x63]); +// → 'abc' +punycode.ucs2.encode([0x1D306]); +// → '\uD834\uDF06' +``` + +### `punycode.version` + +A string representing the current Punycode.js version number. + +## Author + +| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](https://mathiasbynens.be/) | + +## License + +Punycode.js is available under the [MIT](https://mths.be/mit) license. diff --git a/node_modules/punycode/package.json b/node_modules/punycode/package.json new file mode 100644 index 0000000..9202ccf --- /dev/null +++ b/node_modules/punycode/package.json @@ -0,0 +1,58 @@ +{ + "name": "punycode", + "version": "2.1.1", + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "homepage": "https://mths.be/punycode", + "main": "punycode.js", + "jsnext:main": "punycode.es6.js", + "module": "punycode.es6.js", + "engines": { + "node": ">=6" + }, + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "license": "MIT", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "contributors": [ + { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + } + ], + "repository": { + "type": "git", + "url": "https://github.com/bestiejs/punycode.js.git" + }, + "bugs": "https://github.com/bestiejs/punycode.js/issues", + "files": [ + "LICENSE-MIT.txt", + "punycode.js", + "punycode.es6.js" + ], + "scripts": { + "test": "mocha tests", + "prepublish": "node scripts/prepublish.js" + }, + "devDependencies": { + "codecov": "^1.0.1", + "istanbul": "^0.4.1", + "mocha": "^2.5.3" + }, + "jspm": { + "map": { + "./punycode.js": { + "node": "@node/punycode" + } + } + } +} diff --git a/node_modules/punycode/punycode.es6.js b/node_modules/punycode/punycode.es6.js new file mode 100644 index 0000000..4610bc9 --- /dev/null +++ b/node_modules/punycode/punycode.es6.js @@ -0,0 +1,441 @@ +'use strict'; + +/** Highest positive signed 32-bit float value */ +const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 + +/** Bootstring parameters */ +const base = 36; +const tMin = 1; +const tMax = 26; +const skew = 38; +const damp = 700; +const initialBias = 72; +const initialN = 128; // 0x80 +const delimiter = '-'; // '\x2D' + +/** Regular expressions */ +const regexPunycode = /^xn--/; +const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars +const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators + +/** Error messages */ +const errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' +}; + +/** Convenience shortcuts */ +const baseMinusTMin = base - tMin; +const floor = Math.floor; +const stringFromCharCode = String.fromCharCode; + +/*--------------------------------------------------------------------------*/ + +/** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ +function error(type) { + throw new RangeError(errors[type]); +} + +/** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ +function map(array, fn) { + const result = []; + let length = array.length; + while (length--) { + result[length] = fn(array[length]); + } + return result; +} + +/** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ +function mapDomain(string, fn) { + const parts = string.split('@'); + let result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + const labels = string.split('.'); + const encoded = map(labels, fn).join('.'); + return result + encoded; +} + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ +function ucs2decode(string) { + const output = []; + let counter = 0; + const length = string.length; + while (counter < length) { + const value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + const extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; +} + +/** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ +const ucs2encode = array => String.fromCodePoint(...array); + +/** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ +const basicToDigit = function(codePoint) { + if (codePoint - 0x30 < 0x0A) { + return codePoint - 0x16; + } + if (codePoint - 0x41 < 0x1A) { + return codePoint - 0x41; + } + if (codePoint - 0x61 < 0x1A) { + return codePoint - 0x61; + } + return base; +}; + +/** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ +const digitToBasic = function(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ +const adapt = function(delta, numPoints, firstTime) { + let k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ +const decode = function(input) { + // Don't use UCS-2. + const output = []; + const inputLength = input.length; + let i = 0; + let n = initialN; + let bias = initialBias; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + let basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (let j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + let oldi = i; + for (let w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + const digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + const baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + const out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output. + output.splice(i++, 0, n); + + } + + return String.fromCodePoint(...output); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ +const encode = function(input) { + const output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + let inputLength = input.length; + + // Initialize the state. + let n = initialN; + let delta = 0; + let bias = initialBias; + + // Handle the basic code points. + for (const currentValue of input) { + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + let basicLength = output.length; + let handledCPCount = basicLength; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + let m = maxInt; + for (const currentValue of input) { + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow. + const handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (const currentValue of input) { + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + if (currentValue == n) { + // Represent delta as a generalized variable-length integer. + let q = delta; + for (let k = base; /* no condition */; k += base) { + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + const qMinusT = q - t; + const baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); +}; + +/** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ +const toUnicode = function(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); +}; + +/** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ +const toASCII = function(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); +}; + +/*--------------------------------------------------------------------------*/ + +/** Define the public API */ +const punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '2.1.0', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode +}; + +export { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode }; +export default punycode; diff --git a/node_modules/punycode/punycode.js b/node_modules/punycode/punycode.js new file mode 100644 index 0000000..ea61fd0 --- /dev/null +++ b/node_modules/punycode/punycode.js @@ -0,0 +1,440 @@ +'use strict'; + +/** Highest positive signed 32-bit float value */ +const maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 + +/** Bootstring parameters */ +const base = 36; +const tMin = 1; +const tMax = 26; +const skew = 38; +const damp = 700; +const initialBias = 72; +const initialN = 128; // 0x80 +const delimiter = '-'; // '\x2D' + +/** Regular expressions */ +const regexPunycode = /^xn--/; +const regexNonASCII = /[^\0-\x7E]/; // non-ASCII chars +const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; // RFC 3490 separators + +/** Error messages */ +const errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' +}; + +/** Convenience shortcuts */ +const baseMinusTMin = base - tMin; +const floor = Math.floor; +const stringFromCharCode = String.fromCharCode; + +/*--------------------------------------------------------------------------*/ + +/** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ +function error(type) { + throw new RangeError(errors[type]); +} + +/** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ +function map(array, fn) { + const result = []; + let length = array.length; + while (length--) { + result[length] = fn(array[length]); + } + return result; +} + +/** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ +function mapDomain(string, fn) { + const parts = string.split('@'); + let result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + const labels = string.split('.'); + const encoded = map(labels, fn).join('.'); + return result + encoded; +} + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ +function ucs2decode(string) { + const output = []; + let counter = 0; + const length = string.length; + while (counter < length) { + const value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + const extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; +} + +/** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ +const ucs2encode = array => String.fromCodePoint(...array); + +/** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ +const basicToDigit = function(codePoint) { + if (codePoint - 0x30 < 0x0A) { + return codePoint - 0x16; + } + if (codePoint - 0x41 < 0x1A) { + return codePoint - 0x41; + } + if (codePoint - 0x61 < 0x1A) { + return codePoint - 0x61; + } + return base; +}; + +/** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ +const digitToBasic = function(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ +const adapt = function(delta, numPoints, firstTime) { + let k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ +const decode = function(input) { + // Don't use UCS-2. + const output = []; + const inputLength = input.length; + let i = 0; + let n = initialN; + let bias = initialBias; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + let basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (let j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + let oldi = i; + for (let w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + const digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + const baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + const out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output. + output.splice(i++, 0, n); + + } + + return String.fromCodePoint(...output); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ +const encode = function(input) { + const output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + let inputLength = input.length; + + // Initialize the state. + let n = initialN; + let delta = 0; + let bias = initialBias; + + // Handle the basic code points. + for (const currentValue of input) { + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + let basicLength = output.length; + let handledCPCount = basicLength; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + let m = maxInt; + for (const currentValue of input) { + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow. + const handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (const currentValue of input) { + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + if (currentValue == n) { + // Represent delta as a generalized variable-length integer. + let q = delta; + for (let k = base; /* no condition */; k += base) { + const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + const qMinusT = q - t; + const baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); +}; + +/** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ +const toUnicode = function(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); +}; + +/** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ +const toASCII = function(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); +}; + +/*--------------------------------------------------------------------------*/ + +/** Define the public API */ +const punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '2.1.0', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode +}; + +module.exports = punycode; diff --git a/node_modules/queue-microtask/LICENSE b/node_modules/queue-microtask/LICENSE new file mode 100755 index 0000000..c7e6852 --- /dev/null +++ b/node_modules/queue-microtask/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/queue-microtask/README.md b/node_modules/queue-microtask/README.md new file mode 100644 index 0000000..0be05a6 --- /dev/null +++ b/node_modules/queue-microtask/README.md @@ -0,0 +1,90 @@ +# queue-microtask [![ci][ci-image]][ci-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[ci-image]: https://img.shields.io/github/workflow/status/feross/queue-microtask/ci/master +[ci-url]: https://github.com/feross/queue-microtask/actions +[npm-image]: https://img.shields.io/npm/v/queue-microtask.svg +[npm-url]: https://npmjs.org/package/queue-microtask +[downloads-image]: https://img.shields.io/npm/dm/queue-microtask.svg +[downloads-url]: https://npmjs.org/package/queue-microtask +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +### fast, tiny [`queueMicrotask`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask) shim for modern engines + +- Use [`queueMicrotask`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask) in all modern JS engines. +- No dependencies. Less than 10 lines. No shims or complicated fallbacks. +- Optimal performance in all modern environments + - Uses `queueMicrotask` in modern environments + - Fallback to `Promise.resolve().then(fn)` in Node.js 10 and earlier, and old browsers (same performance as `queueMicrotask`) + +## install + +``` +npm install queue-microtask +``` + +## usage + +```js +const queueMicrotask = require('queue-microtask') + +queueMicrotask(() => { /* this will run soon */ }) +``` + +## What is `queueMicrotask` and why would one use it? + +The `queueMicrotask` function is a WHATWG standard. It queues a microtask to be executed prior to control returning to the event loop. + +A microtask is a short function which will run after the current task has completed its work and when there is no other code waiting to be run before control of the execution context is returned to the event loop. + +The code `queueMicrotask(fn)` is equivalent to the code `Promise.resolve().then(fn)`. It is also very similar to [`process.nextTick(fn)`](https://nodejs.org/api/process.html#process_process_nexttick_callback_args) in Node. + +Using microtasks lets code run without interfering with any other, potentially higher priority, code that is pending, but before the JS engine regains control over the execution context. + +See the [spec](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing) or [Node documentation](https://nodejs.org/api/globals.html#globals_queuemicrotask_callback) for more information. + +## Who is this package for? + +This package allows you to use `queueMicrotask` safely in all modern JS engines. Use it if you prioritize small JS bundle size over support for old browsers. + +If you just need to support Node 12 and later, use `queueMicrotask` directly. If you need to support all versions of Node, use this package. + +## Why not use `process.nextTick`? + +In Node, `queueMicrotask` and `process.nextTick` are [essentially equivalent](https://nodejs.org/api/globals.html#globals_queuemicrotask_callback), though there are [subtle differences](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks) that don't matter in most situations. + +You can think of `queueMicrotask` as a standardized version of `process.nextTick` that works in the browser. No need to rely on your browser bundler to shim `process` for the browser environment. + +## Why not use `setTimeout(fn, 0)`? + +This approach is the most compatible, but it has problems. Modern browsers throttle timers severely, so `setTimeout(…, 0)` usually takes at least 4ms to run. Furthermore, the throttling gets even worse if the page is backgrounded. If you have many `setTimeout` calls, then this can severely limit the performance of your program. + +## Why not use a microtask library like [`immediate`](https://www.npmjs.com/package/immediate) or [`asap`](https://www.npmjs.com/package/asap)? + +These packages are great! However, if you prioritize small JS bundle size over optimal performance in old browsers then you may want to consider this package. + +This package (`queue-microtask`) is four times smaller than `immediate`, twice as small as `asap`, and twice as small as using `process.nextTick` and letting the browser bundler shim it automatically. + +Note: This package throws an exception in JS environments which lack `Promise` support -- which are usually very old browsers and Node.js versions. + +Since the `queueMicrotask` API is supported in Node.js, Chrome, Firefox, Safari, Opera, and Edge, **the vast majority of users will get optimal performance**. Any JS environment with `Promise`, which is almost all of them, also get optimal performance. If you need support for JS environments which lack `Promise` support, use one of the alternative packages. + +## What is a shim? + +> In computer programming, a shim is a library that transparently intercepts API calls and changes the arguments passed, handles the operation itself or redirects the operation elsewhere. – [Wikipedia](https://en.wikipedia.org/wiki/Shim_(computing)) + +This package could also be described as a "ponyfill". + +> A ponyfill is almost the same as a polyfill, but not quite. Instead of patching functionality for older browsers, a ponyfill provides that functionality as a standalone module you can use. – [PonyFoo](https://ponyfoo.com/articles/polyfills-or-ponyfills) + +## API + +### `queueMicrotask(fn)` + +The `queueMicrotask()` method queues a microtask. + +The `fn` argument is a function to be executed after all pending tasks have completed but before yielding control to the browser's event loop. + +## license + +MIT. Copyright (c) [Feross Aboukhadijeh](https://feross.org). diff --git a/node_modules/queue-microtask/index.d.ts b/node_modules/queue-microtask/index.d.ts new file mode 100644 index 0000000..b6a8646 --- /dev/null +++ b/node_modules/queue-microtask/index.d.ts @@ -0,0 +1,2 @@ +declare const queueMicrotask: (cb: () => void) => void +export = queueMicrotask diff --git a/node_modules/queue-microtask/index.js b/node_modules/queue-microtask/index.js new file mode 100644 index 0000000..5560534 --- /dev/null +++ b/node_modules/queue-microtask/index.js @@ -0,0 +1,9 @@ +/*! queue-microtask. MIT License. Feross Aboukhadijeh */ +let promise + +module.exports = typeof queueMicrotask === 'function' + ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) + // reuse resolved promise, and allocate it lazily + : cb => (promise || (promise = Promise.resolve())) + .then(cb) + .catch(err => setTimeout(() => { throw err }, 0)) diff --git a/node_modules/queue-microtask/package.json b/node_modules/queue-microtask/package.json new file mode 100644 index 0000000..d29a401 --- /dev/null +++ b/node_modules/queue-microtask/package.json @@ -0,0 +1,55 @@ +{ + "name": "queue-microtask", + "description": "fast, tiny `queueMicrotask` shim for modern engines", + "version": "1.2.3", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/queue-microtask/issues" + }, + "devDependencies": { + "standard": "*", + "tape": "^5.2.2" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/feross/queue-microtask", + "keywords": [ + "asap", + "immediate", + "micro task", + "microtask", + "nextTick", + "process.nextTick", + "queue micro task", + "queue microtask", + "queue-microtask", + "queueMicrotask", + "setImmediate", + "task" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/feross/queue-microtask.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + } +} diff --git a/node_modules/regexpp/LICENSE b/node_modules/regexpp/LICENSE new file mode 100644 index 0000000..883ee1f --- /dev/null +++ b/node_modules/regexpp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Toru Nagashima + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/regexpp/README.md b/node_modules/regexpp/README.md new file mode 100644 index 0000000..a5e2e14 --- /dev/null +++ b/node_modules/regexpp/README.md @@ -0,0 +1,178 @@ +# regexpp + +[![npm version](https://img.shields.io/npm/v/regexpp.svg)](https://www.npmjs.com/package/regexpp) +[![Downloads/month](https://img.shields.io/npm/dm/regexpp.svg)](http://www.npmtrends.com/regexpp) +[![Build Status](https://github.com/mysticatea/regexpp/workflows/CI/badge.svg)](https://github.com/mysticatea/regexpp/actions) +[![codecov](https://codecov.io/gh/mysticatea/regexpp/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/regexpp) +[![Dependency Status](https://david-dm.org/mysticatea/regexpp.svg)](https://david-dm.org/mysticatea/regexpp) + +A regular expression parser for ECMAScript. + +## 💿 Installation + +```bash +$ npm install regexpp +``` + +- require Node.js 8 or newer. + +## 📖 Usage + +```ts +import { + AST, + RegExpParser, + RegExpValidator, + RegExpVisitor, + parseRegExpLiteral, + validateRegExpLiteral, + visitRegExpAST +} from "regexpp" +``` + +### parseRegExpLiteral(source, options?) + +Parse a given regular expression literal then make AST object. + +This is equivalent to `new RegExpParser(options).parseLiteral(source)`. + +- **Parameters:** + - `source` (`string | RegExp`) The source code to parse. + - `options?` ([`RegExpParser.Options`]) The options to parse. +- **Return:** + - The AST of the regular expression. + +### validateRegExpLiteral(source, options?) + +Validate a given regular expression literal. + +This is equivalent to `new RegExpValidator(options).validateLiteral(source)`. + +- **Parameters:** + - `source` (`string`) The source code to validate. + - `options?` ([`RegExpValidator.Options`]) The options to validate. + +### visitRegExpAST(ast, handlers) + +Visit each node of a given AST. + +This is equivalent to `new RegExpVisitor(handlers).visit(ast)`. + +- **Parameters:** + - `ast` ([`AST.Node`]) The AST to visit. + - `handlers` ([`RegExpVisitor.Handlers`]) The callbacks. + +### RegExpParser + +#### new RegExpParser(options?) + +- **Parameters:** + - `options?` ([`RegExpParser.Options`]) The options to parse. + +#### parser.parseLiteral(source, start?, end?) + +Parse a regular expression literal. + +- **Parameters:** + - `source` (`string`) The source code to parse. E.g. `"/abc/g"`. + - `start?` (`number`) The start index in the source code. Default is `0`. + - `end?` (`number`) The end index in the source code. Default is `source.length`. +- **Return:** + - The AST of the regular expression. + +#### parser.parsePattern(source, start?, end?, uFlag?) + +Parse a regular expression pattern. + +- **Parameters:** + - `source` (`string`) The source code to parse. E.g. `"abc"`. + - `start?` (`number`) The start index in the source code. Default is `0`. + - `end?` (`number`) The end index in the source code. Default is `source.length`. + - `uFlag?` (`boolean`) The flag to enable Unicode mode. +- **Return:** + - The AST of the regular expression pattern. + +#### parser.parseFlags(source, start?, end?) + +Parse a regular expression flags. + +- **Parameters:** + - `source` (`string`) The source code to parse. E.g. `"gim"`. + - `start?` (`number`) The start index in the source code. Default is `0`. + - `end?` (`number`) The end index in the source code. Default is `source.length`. +- **Return:** + - The AST of the regular expression flags. + +### RegExpValidator + +#### new RegExpValidator(options) + +- **Parameters:** + - `options` ([`RegExpValidator.Options`]) The options to validate. + +#### validator.validateLiteral(source, start, end) + +Validate a regular expression literal. + +- **Parameters:** + - `source` (`string`) The source code to validate. + - `start?` (`number`) The start index in the source code. Default is `0`. + - `end?` (`number`) The end index in the source code. Default is `source.length`. + +#### validator.validatePattern(source, start, end, uFlag) + +Validate a regular expression pattern. + +- **Parameters:** + - `source` (`string`) The source code to validate. + - `start?` (`number`) The start index in the source code. Default is `0`. + - `end?` (`number`) The end index in the source code. Default is `source.length`. + - `uFlag?` (`boolean`) The flag to enable Unicode mode. + +#### validator.validateFlags(source, start, end) + +Validate a regular expression flags. + +- **Parameters:** + - `source` (`string`) The source code to validate. + - `start?` (`number`) The start index in the source code. Default is `0`. + - `end?` (`number`) The end index in the source code. Default is `source.length`. + +### RegExpVisitor + +#### new RegExpVisitor(handlers) + +- **Parameters:** + - `handlers` ([`RegExpVisitor.Handlers`]) The callbacks. + +#### visitor.visit(ast) + +Validate a regular expression literal. + +- **Parameters:** + - `ast` ([`AST.Node`]) The AST to visit. + +## 📰 Changelog + +- [GitHub Releases](https://github.com/mysticatea/regexpp/releases) + +## 🍻 Contributing + +Welcome contributing! + +Please use GitHub's Issues/PRs. + +### Development Tools + +- `npm test` runs tests and measures coverage. +- `npm run build` compiles TypeScript source code to `index.js`, `index.js.map`, and `index.d.ts`. +- `npm run clean` removes the temporary files which are created by `npm test` and `npm run build`. +- `npm run lint` runs ESLint. +- `npm run update:test` updates test fixtures. +- `npm run update:ids` updates `src/unicode/ids.ts`. +- `npm run watch` runs tests with `--watch` option. + +[`AST.Node`]: src/ast.ts#L4 +[`RegExpParser.Options`]: src/parser.ts#L539 +[`RegExpValidator.Options`]: src/validator.ts#L127 +[`RegExpVisitor.Handlers`]: src/visitor.ts#L204 diff --git a/node_modules/regexpp/index.d.ts b/node_modules/regexpp/index.d.ts new file mode 100644 index 0000000..ae359cf --- /dev/null +++ b/node_modules/regexpp/index.d.ts @@ -0,0 +1,248 @@ +// Generated by dts-bundle v0.7.3 + +declare module 'regexpp' { + import * as AST from "regexpp/ast"; + import { RegExpParser } from "regexpp/parser"; + import { RegExpValidator } from "regexpp/validator"; + import { RegExpVisitor } from "regexpp/visitor"; + export { AST, RegExpParser, RegExpValidator }; + export function parseRegExpLiteral(source: string | RegExp, options?: RegExpParser.Options): AST.RegExpLiteral; + export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void; + export function visitRegExpAST(node: AST.Node, handlers: RegExpVisitor.Handlers): void; +} + +declare module 'regexpp/ast' { + export type Node = BranchNode | LeafNode; + export type BranchNode = RegExpLiteral | Pattern | Alternative | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange; + export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags; + export type Element = Assertion | Quantifier | QuantifiableElement; + export type QuantifiableElement = Group | CapturingGroup | CharacterClass | CharacterSet | Character | Backreference | LookaheadAssertion; + export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange; + export interface NodeBase { + type: Node["type"]; + parent: Node["parent"]; + start: number; + end: number; + raw: string; + } + export interface RegExpLiteral extends NodeBase { + type: "RegExpLiteral"; + parent: null; + pattern: Pattern; + flags: Flags; + } + export interface Pattern extends NodeBase { + type: "Pattern"; + parent: RegExpLiteral | null; + alternatives: Alternative[]; + } + export interface Alternative extends NodeBase { + type: "Alternative"; + parent: Pattern | Group | CapturingGroup | LookaroundAssertion; + elements: Element[]; + } + export interface Group extends NodeBase { + type: "Group"; + parent: Alternative | Quantifier; + alternatives: Alternative[]; + } + export interface CapturingGroup extends NodeBase { + type: "CapturingGroup"; + parent: Alternative | Quantifier; + name: string | null; + alternatives: Alternative[]; + references: Backreference[]; + } + export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion; + export interface LookaheadAssertion extends NodeBase { + type: "Assertion"; + parent: Alternative | Quantifier; + kind: "lookahead"; + negate: boolean; + alternatives: Alternative[]; + } + export interface LookbehindAssertion extends NodeBase { + type: "Assertion"; + parent: Alternative; + kind: "lookbehind"; + negate: boolean; + alternatives: Alternative[]; + } + export interface Quantifier extends NodeBase { + type: "Quantifier"; + parent: Alternative; + min: number; + max: number; + greedy: boolean; + element: QuantifiableElement; + } + export interface CharacterClass extends NodeBase { + type: "CharacterClass"; + parent: Alternative | Quantifier; + negate: boolean; + elements: CharacterClassElement[]; + } + export interface CharacterClassRange extends NodeBase { + type: "CharacterClassRange"; + parent: CharacterClass; + min: Character; + max: Character; + } + export type Assertion = BoundaryAssertion | LookaroundAssertion; + export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion; + export interface EdgeAssertion extends NodeBase { + type: "Assertion"; + parent: Alternative | Quantifier; + kind: "start" | "end"; + } + export interface WordBoundaryAssertion extends NodeBase { + type: "Assertion"; + parent: Alternative | Quantifier; + kind: "word"; + negate: boolean; + } + export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet; + export interface AnyCharacterSet extends NodeBase { + type: "CharacterSet"; + parent: Alternative | Quantifier; + kind: "any"; + } + export interface EscapeCharacterSet extends NodeBase { + type: "CharacterSet"; + parent: Alternative | Quantifier | CharacterClass; + kind: "digit" | "space" | "word"; + negate: boolean; + } + export interface UnicodePropertyCharacterSet extends NodeBase { + type: "CharacterSet"; + parent: Alternative | Quantifier | CharacterClass; + kind: "property"; + key: string; + value: string | null; + negate: boolean; + } + export interface Character extends NodeBase { + type: "Character"; + parent: Alternative | Quantifier | CharacterClass | CharacterClassRange; + value: number; + } + export interface Backreference extends NodeBase { + type: "Backreference"; + parent: Alternative | Quantifier; + ref: number | string; + resolved: CapturingGroup; + } + export interface Flags extends NodeBase { + type: "Flags"; + parent: RegExpLiteral | null; + dotAll: boolean; + global: boolean; + hasIndices: boolean; + ignoreCase: boolean; + multiline: boolean; + sticky: boolean; + unicode: boolean; + } +} + +declare module 'regexpp/parser' { + import { Flags, RegExpLiteral, Pattern } from "regexpp/ast"; + import { EcmaVersion } from "regexpp/ecma-versions"; + export namespace RegExpParser { + interface Options { + strict?: boolean; + ecmaVersion?: EcmaVersion; + } + } + export class RegExpParser { + constructor(options?: RegExpParser.Options); + parseLiteral(source: string, start?: number, end?: number): RegExpLiteral; + parseFlags(source: string, start?: number, end?: number): Flags; + parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern; + } +} + +declare module 'regexpp/validator' { + import { EcmaVersion } from "regexpp/ecma-versions"; + export namespace RegExpValidator { + interface Options { + strict?: boolean; + ecmaVersion?: EcmaVersion; + onLiteralEnter?(start: number): void; + onLiteralLeave?(start: number, end: number): void; + onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean, hasIndices: boolean): void; + onPatternEnter?(start: number): void; + onPatternLeave?(start: number, end: number): void; + onDisjunctionEnter?(start: number): void; + onDisjunctionLeave?(start: number, end: number): void; + onAlternativeEnter?(start: number, index: number): void; + onAlternativeLeave?(start: number, end: number, index: number): void; + onGroupEnter?(start: number): void; + onGroupLeave?(start: number, end: number): void; + onCapturingGroupEnter?(start: number, name: string | null): void; + onCapturingGroupLeave?(start: number, end: number, name: string | null): void; + onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void; + onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void; + onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void; + onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void; + onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void; + onAnyCharacterSet?(start: number, end: number, kind: "any"): void; + onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void; + onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void; + onCharacter?(start: number, end: number, value: number): void; + onBackreference?(start: number, end: number, ref: number | string): void; + onCharacterClassEnter?(start: number, negate: boolean): void; + onCharacterClassLeave?(start: number, end: number, negate: boolean): void; + onCharacterClassRange?(start: number, end: number, min: number, max: number): void; + } + } + export class RegExpValidator { + constructor(options?: RegExpValidator.Options); + validateLiteral(source: string, start?: number, end?: number): void; + validateFlags(source: string, start?: number, end?: number): void; + validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void; + } +} + +declare module 'regexpp/visitor' { + import { Alternative, Assertion, Backreference, CapturingGroup, Character, CharacterClass, CharacterClassRange, CharacterSet, Flags, Group, Node, Pattern, Quantifier, RegExpLiteral } from "regexpp/ast"; + export class RegExpVisitor { + constructor(handlers: RegExpVisitor.Handlers); + visit(node: Node): void; + } + export namespace RegExpVisitor { + interface Handlers { + onAlternativeEnter?(node: Alternative): void; + onAlternativeLeave?(node: Alternative): void; + onAssertionEnter?(node: Assertion): void; + onAssertionLeave?(node: Assertion): void; + onBackreferenceEnter?(node: Backreference): void; + onBackreferenceLeave?(node: Backreference): void; + onCapturingGroupEnter?(node: CapturingGroup): void; + onCapturingGroupLeave?(node: CapturingGroup): void; + onCharacterEnter?(node: Character): void; + onCharacterLeave?(node: Character): void; + onCharacterClassEnter?(node: CharacterClass): void; + onCharacterClassLeave?(node: CharacterClass): void; + onCharacterClassRangeEnter?(node: CharacterClassRange): void; + onCharacterClassRangeLeave?(node: CharacterClassRange): void; + onCharacterSetEnter?(node: CharacterSet): void; + onCharacterSetLeave?(node: CharacterSet): void; + onFlagsEnter?(node: Flags): void; + onFlagsLeave?(node: Flags): void; + onGroupEnter?(node: Group): void; + onGroupLeave?(node: Group): void; + onPatternEnter?(node: Pattern): void; + onPatternLeave?(node: Pattern): void; + onQuantifierEnter?(node: Quantifier): void; + onQuantifierLeave?(node: Quantifier): void; + onRegExpLiteralEnter?(node: RegExpLiteral): void; + onRegExpLiteralLeave?(node: RegExpLiteral): void; + } + } +} + +declare module 'regexpp/ecma-versions' { + export type EcmaVersion = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022; +} + diff --git a/node_modules/regexpp/index.js b/node_modules/regexpp/index.js new file mode 100644 index 0000000..cd0e165 --- /dev/null +++ b/node_modules/regexpp/index.js @@ -0,0 +1,2096 @@ +/*! @author Toru Nagashima */ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + + + +var ast = /*#__PURE__*/Object.freeze({ + +}); + +let largeIdStartRanges = undefined; +let largeIdContinueRanges = undefined; +function isIdStart(cp) { + if (cp < 0x41) + return false; + if (cp < 0x5b) + return true; + if (cp < 0x61) + return false; + if (cp < 0x7b) + return true; + return isLargeIdStart(cp); +} +function isIdContinue(cp) { + if (cp < 0x30) + return false; + if (cp < 0x3a) + return true; + if (cp < 0x41) + return false; + if (cp < 0x5b) + return true; + if (cp === 0x5f) + return true; + if (cp < 0x61) + return false; + if (cp < 0x7b) + return true; + return isLargeIdStart(cp) || isLargeIdContinue(cp); +} +function isLargeIdStart(cp) { + return isInRange(cp, largeIdStartRanges || (largeIdStartRanges = initLargeIdStartRanges())); +} +function isLargeIdContinue(cp) { + return isInRange(cp, largeIdContinueRanges || + (largeIdContinueRanges = initLargeIdContinueRanges())); +} +function initLargeIdStartRanges() { + return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 1i k 2 h 1p 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 6 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 x 0 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 c 2 3 f h f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 6 1k t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 1a 2 1a 2 3o 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t g70 4 wc 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1g 3 8 17 c 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f 4d 8m a l b 7 49 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 2z k s m d 1g 24 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o 2d 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 6e 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 z 1k 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i 5a 0 28 pl 2v 32 i 5f 24d tq 34i g6 6nu fs 8 u 36 t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6wo 7y 1e 2 i 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1th 18 b 6 h 0 aa 17 105 5g 1o 1v 8 0 xh 3 2 q 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 g 6 2 2 4 2 g 3et wyl z 378 c 65 3 4g1 f 5rk 2e8 f1 15v 3t6"); +} +function initLargeIdContinueRanges() { + return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 3c e 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1m 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 h 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 5 3 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 2 u 2 u 1 v 1 1t v a 0 3 9 y 2 3 9 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 1 1s 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1l 2 4 g0 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 n7q 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 ji 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 4a a 4w 2 1i e w 9 g 3 1a a 1i 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 4h b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 ewa 9 3r 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 43r 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 7a 6 a 9 bn d 15j 6 32 6 6 9 3o7 9 gvt3 6n"); +} +function isInRange(cp, ranges) { + let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; + while (l < r) { + i = ((l + r) / 2) | 0; + min = ranges[2 * i]; + max = ranges[2 * i + 1]; + if (cp < min) { + r = i; + } + else if (cp > max) { + l = i + 1; + } + else { + return true; + } + } + return false; +} +function restoreRanges(data) { + let last = 0; + return data.split(" ").map(s => (last += parseInt(s, 36) | 0)); +} + +class DataSet { + constructor(raw2018, raw2019, raw2020, raw2021) { + this._raw2018 = raw2018; + this._raw2019 = raw2019; + this._raw2020 = raw2020; + this._raw2021 = raw2021; + } + get es2018() { + return (this._set2018 || (this._set2018 = new Set(this._raw2018.split(" ")))); + } + get es2019() { + return (this._set2019 || (this._set2019 = new Set(this._raw2019.split(" ")))); + } + get es2020() { + return (this._set2020 || (this._set2020 = new Set(this._raw2020.split(" ")))); + } + get es2021() { + return (this._set2021 || (this._set2021 = new Set(this._raw2021.split(" ")))); + } +} +const gcNameSet = new Set(["General_Category", "gc"]); +const scNameSet = new Set(["Script", "Script_Extensions", "sc", "scx"]); +const gcValueSets = new DataSet("C Cased_Letter Cc Cf Close_Punctuation Cn Co Combining_Mark Connector_Punctuation Control Cs Currency_Symbol Dash_Punctuation Decimal_Number Enclosing_Mark Final_Punctuation Format Initial_Punctuation L LC Letter Letter_Number Line_Separator Ll Lm Lo Lowercase_Letter Lt Lu M Mark Math_Symbol Mc Me Mn Modifier_Letter Modifier_Symbol N Nd Nl No Nonspacing_Mark Number Open_Punctuation Other Other_Letter Other_Number Other_Punctuation Other_Symbol P Paragraph_Separator Pc Pd Pe Pf Pi Po Private_Use Ps Punctuation S Sc Separator Sk Sm So Space_Separator Spacing_Mark Surrogate Symbol Titlecase_Letter Unassigned Uppercase_Letter Z Zl Zp Zs cntrl digit punct", "", "", ""); +const scValueSets = new DataSet("Adlam Adlm Aghb Ahom Anatolian_Hieroglyphs Arab Arabic Armenian Armi Armn Avestan Avst Bali Balinese Bamu Bamum Bass Bassa_Vah Batak Batk Beng Bengali Bhaiksuki Bhks Bopo Bopomofo Brah Brahmi Brai Braille Bugi Buginese Buhd Buhid Cakm Canadian_Aboriginal Cans Cari Carian Caucasian_Albanian Chakma Cham Cher Cherokee Common Copt Coptic Cprt Cuneiform Cypriot Cyrillic Cyrl Deseret Deva Devanagari Dsrt Dupl Duployan Egyp Egyptian_Hieroglyphs Elba Elbasan Ethi Ethiopic Geor Georgian Glag Glagolitic Gonm Goth Gothic Gran Grantha Greek Grek Gujarati Gujr Gurmukhi Guru Han Hang Hangul Hani Hano Hanunoo Hatr Hatran Hebr Hebrew Hira Hiragana Hluw Hmng Hung Imperial_Aramaic Inherited Inscriptional_Pahlavi Inscriptional_Parthian Ital Java Javanese Kaithi Kali Kana Kannada Katakana Kayah_Li Khar Kharoshthi Khmer Khmr Khoj Khojki Khudawadi Knda Kthi Lana Lao Laoo Latin Latn Lepc Lepcha Limb Limbu Lina Linb Linear_A Linear_B Lisu Lyci Lycian Lydi Lydian Mahajani Mahj Malayalam Mand Mandaic Mani Manichaean Marc Marchen Masaram_Gondi Meetei_Mayek Mend Mende_Kikakui Merc Mero Meroitic_Cursive Meroitic_Hieroglyphs Miao Mlym Modi Mong Mongolian Mro Mroo Mtei Mult Multani Myanmar Mymr Nabataean Narb Nbat New_Tai_Lue Newa Nko Nkoo Nshu Nushu Ogam Ogham Ol_Chiki Olck Old_Hungarian Old_Italic Old_North_Arabian Old_Permic Old_Persian Old_South_Arabian Old_Turkic Oriya Orkh Orya Osage Osge Osma Osmanya Pahawh_Hmong Palm Palmyrene Pau_Cin_Hau Pauc Perm Phag Phags_Pa Phli Phlp Phnx Phoenician Plrd Prti Psalter_Pahlavi Qaac Qaai Rejang Rjng Runic Runr Samaritan Samr Sarb Saur Saurashtra Sgnw Sharada Shavian Shaw Shrd Sidd Siddham SignWriting Sind Sinh Sinhala Sora Sora_Sompeng Soyo Soyombo Sund Sundanese Sylo Syloti_Nagri Syrc Syriac Tagalog Tagb Tagbanwa Tai_Le Tai_Tham Tai_Viet Takr Takri Tale Talu Tamil Taml Tang Tangut Tavt Telu Telugu Tfng Tglg Thaa Thaana Thai Tibetan Tibt Tifinagh Tirh Tirhuta Ugar Ugaritic Vai Vaii Wara Warang_Citi Xpeo Xsux Yi Yiii Zanabazar_Square Zanb Zinh Zyyy", "Dogr Dogra Gong Gunjala_Gondi Hanifi_Rohingya Maka Makasar Medefaidrin Medf Old_Sogdian Rohg Sogd Sogdian Sogo", "Elym Elymaic Hmnp Nand Nandinagari Nyiakeng_Puachue_Hmong Wancho Wcho", "Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"); +const binPropertySets = new DataSet("AHex ASCII ASCII_Hex_Digit Alpha Alphabetic Any Assigned Bidi_C Bidi_Control Bidi_M Bidi_Mirrored CI CWCF CWCM CWKCF CWL CWT CWU Case_Ignorable Cased Changes_When_Casefolded Changes_When_Casemapped Changes_When_Lowercased Changes_When_NFKC_Casefolded Changes_When_Titlecased Changes_When_Uppercased DI Dash Default_Ignorable_Code_Point Dep Deprecated Dia Diacritic Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Ext Extender Gr_Base Gr_Ext Grapheme_Base Grapheme_Extend Hex Hex_Digit IDC IDS IDSB IDST IDS_Binary_Operator IDS_Trinary_Operator ID_Continue ID_Start Ideo Ideographic Join_C Join_Control LOE Logical_Order_Exception Lower Lowercase Math NChar Noncharacter_Code_Point Pat_Syn Pat_WS Pattern_Syntax Pattern_White_Space QMark Quotation_Mark RI Radical Regional_Indicator SD STerm Sentence_Terminal Soft_Dotted Term Terminal_Punctuation UIdeo Unified_Ideograph Upper Uppercase VS Variation_Selector White_Space XIDC XIDS XID_Continue XID_Start space", "Extended_Pictographic", "", "EBase EComp EMod EPres ExtPict"); +function isValidUnicodeProperty(version, name, value) { + if (gcNameSet.has(name)) { + return version >= 2018 && gcValueSets.es2018.has(value); + } + if (scNameSet.has(name)) { + return ((version >= 2018 && scValueSets.es2018.has(value)) || + (version >= 2019 && scValueSets.es2019.has(value)) || + (version >= 2020 && scValueSets.es2020.has(value)) || + (version >= 2021 && scValueSets.es2021.has(value))); + } + return false; +} +function isValidLoneUnicodeProperty(version, value) { + return ((version >= 2018 && binPropertySets.es2018.has(value)) || + (version >= 2019 && binPropertySets.es2019.has(value)) || + (version >= 2021 && binPropertySets.es2021.has(value))); +} + +const Backspace = 0x08; +const CharacterTabulation = 0x09; +const LineFeed = 0x0a; +const LineTabulation = 0x0b; +const FormFeed = 0x0c; +const CarriageReturn = 0x0d; +const ExclamationMark = 0x21; +const DollarSign = 0x24; +const LeftParenthesis = 0x28; +const RightParenthesis = 0x29; +const Asterisk = 0x2a; +const PlusSign = 0x2b; +const Comma = 0x2c; +const HyphenMinus = 0x2d; +const FullStop = 0x2e; +const Solidus = 0x2f; +const DigitZero = 0x30; +const DigitOne = 0x31; +const DigitSeven = 0x37; +const DigitNine = 0x39; +const Colon = 0x3a; +const LessThanSign = 0x3c; +const EqualsSign = 0x3d; +const GreaterThanSign = 0x3e; +const QuestionMark = 0x3f; +const LatinCapitalLetterA = 0x41; +const LatinCapitalLetterB = 0x42; +const LatinCapitalLetterD = 0x44; +const LatinCapitalLetterF = 0x46; +const LatinCapitalLetterP = 0x50; +const LatinCapitalLetterS = 0x53; +const LatinCapitalLetterW = 0x57; +const LatinCapitalLetterZ = 0x5a; +const LowLine = 0x5f; +const LatinSmallLetterA = 0x61; +const LatinSmallLetterB = 0x62; +const LatinSmallLetterC = 0x63; +const LatinSmallLetterD = 0x64; +const LatinSmallLetterF = 0x66; +const LatinSmallLetterG = 0x67; +const LatinSmallLetterI = 0x69; +const LatinSmallLetterK = 0x6b; +const LatinSmallLetterM = 0x6d; +const LatinSmallLetterN = 0x6e; +const LatinSmallLetterP = 0x70; +const LatinSmallLetterR = 0x72; +const LatinSmallLetterS = 0x73; +const LatinSmallLetterT = 0x74; +const LatinSmallLetterU = 0x75; +const LatinSmallLetterV = 0x76; +const LatinSmallLetterW = 0x77; +const LatinSmallLetterX = 0x78; +const LatinSmallLetterY = 0x79; +const LatinSmallLetterZ = 0x7a; +const LeftSquareBracket = 0x5b; +const ReverseSolidus = 0x5c; +const RightSquareBracket = 0x5d; +const CircumflexAccent = 0x5e; +const LeftCurlyBracket = 0x7b; +const VerticalLine = 0x7c; +const RightCurlyBracket = 0x7d; +const ZeroWidthNonJoiner = 0x200c; +const ZeroWidthJoiner = 0x200d; +const LineSeparator = 0x2028; +const ParagraphSeparator = 0x2029; +const MinCodePoint = 0x00; +const MaxCodePoint = 0x10ffff; +function isLatinLetter(code) { + return ((code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) || + (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)); +} +function isDecimalDigit(code) { + return code >= DigitZero && code <= DigitNine; +} +function isOctalDigit(code) { + return code >= DigitZero && code <= DigitSeven; +} +function isHexDigit(code) { + return ((code >= DigitZero && code <= DigitNine) || + (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) || + (code >= LatinSmallLetterA && code <= LatinSmallLetterF)); +} +function isLineTerminator(code) { + return (code === LineFeed || + code === CarriageReturn || + code === LineSeparator || + code === ParagraphSeparator); +} +function isValidUnicode(code) { + return code >= MinCodePoint && code <= MaxCodePoint; +} +function digitToInt(code) { + if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) { + return code - LatinSmallLetterA + 10; + } + if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) { + return code - LatinCapitalLetterA + 10; + } + return code - DigitZero; +} +function isLeadSurrogate(code) { + return code >= 0xd800 && code <= 0xdbff; +} +function isTrailSurrogate(code) { + return code >= 0xdc00 && code <= 0xdfff; +} +function combineSurrogatePair(lead, trail) { + return (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000; +} + +const legacyImpl = { + at(s, end, i) { + return i < end ? s.charCodeAt(i) : -1; + }, + width(c) { + return 1; + }, +}; +const unicodeImpl = { + at(s, end, i) { + return i < end ? s.codePointAt(i) : -1; + }, + width(c) { + return c > 0xffff ? 2 : 1; + }, +}; +class Reader { + constructor() { + this._impl = legacyImpl; + this._s = ""; + this._i = 0; + this._end = 0; + this._cp1 = -1; + this._w1 = 1; + this._cp2 = -1; + this._w2 = 1; + this._cp3 = -1; + this._w3 = 1; + this._cp4 = -1; + } + get source() { + return this._s; + } + get index() { + return this._i; + } + get currentCodePoint() { + return this._cp1; + } + get nextCodePoint() { + return this._cp2; + } + get nextCodePoint2() { + return this._cp3; + } + get nextCodePoint3() { + return this._cp4; + } + reset(source, start, end, uFlag) { + this._impl = uFlag ? unicodeImpl : legacyImpl; + this._s = source; + this._end = end; + this.rewind(start); + } + rewind(index) { + const impl = this._impl; + this._i = index; + this._cp1 = impl.at(this._s, this._end, index); + this._w1 = impl.width(this._cp1); + this._cp2 = impl.at(this._s, this._end, index + this._w1); + this._w2 = impl.width(this._cp2); + this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2); + this._w3 = impl.width(this._cp3); + this._cp4 = impl.at(this._s, this._end, index + this._w1 + this._w2 + this._w3); + } + advance() { + if (this._cp1 !== -1) { + const impl = this._impl; + this._i += this._w1; + this._cp1 = this._cp2; + this._w1 = this._w2; + this._cp2 = this._cp3; + this._w2 = impl.width(this._cp2); + this._cp3 = this._cp4; + this._w3 = impl.width(this._cp3); + this._cp4 = impl.at(this._s, this._end, this._i + this._w1 + this._w2 + this._w3); + } + } + eat(cp) { + if (this._cp1 === cp) { + this.advance(); + return true; + } + return false; + } + eat2(cp1, cp2) { + if (this._cp1 === cp1 && this._cp2 === cp2) { + this.advance(); + this.advance(); + return true; + } + return false; + } + eat3(cp1, cp2, cp3) { + if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) { + this.advance(); + this.advance(); + this.advance(); + return true; + } + return false; + } +} + +class RegExpSyntaxError extends SyntaxError { + constructor(source, uFlag, index, message) { + if (source) { + if (!source.startsWith("/")) { + source = `/${source}/${uFlag ? "u" : ""}`; + } + source = `: ${source}`; + } + super(`Invalid regular expression${source}: ${message}`); + this.index = index; + } +} + +function isSyntaxCharacter(cp) { + return (cp === CircumflexAccent || + cp === DollarSign || + cp === ReverseSolidus || + cp === FullStop || + cp === Asterisk || + cp === PlusSign || + cp === QuestionMark || + cp === LeftParenthesis || + cp === RightParenthesis || + cp === LeftSquareBracket || + cp === RightSquareBracket || + cp === LeftCurlyBracket || + cp === RightCurlyBracket || + cp === VerticalLine); +} +function isRegExpIdentifierStart(cp) { + return isIdStart(cp) || cp === DollarSign || cp === LowLine; +} +function isRegExpIdentifierPart(cp) { + return (isIdContinue(cp) || + cp === DollarSign || + cp === LowLine || + cp === ZeroWidthNonJoiner || + cp === ZeroWidthJoiner); +} +function isUnicodePropertyNameCharacter(cp) { + return isLatinLetter(cp) || cp === LowLine; +} +function isUnicodePropertyValueCharacter(cp) { + return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp); +} +class RegExpValidator { + constructor(options) { + this._reader = new Reader(); + this._uFlag = false; + this._nFlag = false; + this._lastIntValue = 0; + this._lastMinValue = 0; + this._lastMaxValue = 0; + this._lastStrValue = ""; + this._lastKeyValue = ""; + this._lastValValue = ""; + this._lastAssertionIsQuantifiable = false; + this._numCapturingParens = 0; + this._groupNames = new Set(); + this._backreferenceNames = new Set(); + this._options = options || {}; + } + validateLiteral(source, start = 0, end = source.length) { + this._uFlag = this._nFlag = false; + this.reset(source, start, end); + this.onLiteralEnter(start); + if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) { + const flagStart = this.index; + const uFlag = source.includes("u", flagStart); + this.validateFlags(source, flagStart, end); + this.validatePattern(source, start + 1, flagStart - 1, uFlag); + } + else if (start >= end) { + this.raise("Empty"); + } + else { + const c = String.fromCodePoint(this.currentCodePoint); + this.raise(`Unexpected character '${c}'`); + } + this.onLiteralLeave(start, end); + } + validateFlags(source, start = 0, end = source.length) { + const existingFlags = new Set(); + let global = false; + let ignoreCase = false; + let multiline = false; + let sticky = false; + let unicode = false; + let dotAll = false; + let hasIndices = false; + for (let i = start; i < end; ++i) { + const flag = source.charCodeAt(i); + if (existingFlags.has(flag)) { + this.raise(`Duplicated flag '${source[i]}'`); + } + existingFlags.add(flag); + if (flag === LatinSmallLetterG) { + global = true; + } + else if (flag === LatinSmallLetterI) { + ignoreCase = true; + } + else if (flag === LatinSmallLetterM) { + multiline = true; + } + else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) { + unicode = true; + } + else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) { + sticky = true; + } + else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) { + dotAll = true; + } + else if (flag === LatinSmallLetterD && this.ecmaVersion >= 2022) { + hasIndices = true; + } + else { + this.raise(`Invalid flag '${source[i]}'`); + } + } + this.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices); + } + validatePattern(source, start = 0, end = source.length, uFlag = false) { + this._uFlag = uFlag && this.ecmaVersion >= 2015; + this._nFlag = uFlag && this.ecmaVersion >= 2018; + this.reset(source, start, end); + this.consumePattern(); + if (!this._nFlag && + this.ecmaVersion >= 2018 && + this._groupNames.size > 0) { + this._nFlag = true; + this.rewind(start); + this.consumePattern(); + } + } + get strict() { + return Boolean(this._options.strict || this._uFlag); + } + get ecmaVersion() { + return this._options.ecmaVersion || 2022; + } + onLiteralEnter(start) { + if (this._options.onLiteralEnter) { + this._options.onLiteralEnter(start); + } + } + onLiteralLeave(start, end) { + if (this._options.onLiteralLeave) { + this._options.onLiteralLeave(start, end); + } + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices) { + if (this._options.onFlags) { + this._options.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices); + } + } + onPatternEnter(start) { + if (this._options.onPatternEnter) { + this._options.onPatternEnter(start); + } + } + onPatternLeave(start, end) { + if (this._options.onPatternLeave) { + this._options.onPatternLeave(start, end); + } + } + onDisjunctionEnter(start) { + if (this._options.onDisjunctionEnter) { + this._options.onDisjunctionEnter(start); + } + } + onDisjunctionLeave(start, end) { + if (this._options.onDisjunctionLeave) { + this._options.onDisjunctionLeave(start, end); + } + } + onAlternativeEnter(start, index) { + if (this._options.onAlternativeEnter) { + this._options.onAlternativeEnter(start, index); + } + } + onAlternativeLeave(start, end, index) { + if (this._options.onAlternativeLeave) { + this._options.onAlternativeLeave(start, end, index); + } + } + onGroupEnter(start) { + if (this._options.onGroupEnter) { + this._options.onGroupEnter(start); + } + } + onGroupLeave(start, end) { + if (this._options.onGroupLeave) { + this._options.onGroupLeave(start, end); + } + } + onCapturingGroupEnter(start, name) { + if (this._options.onCapturingGroupEnter) { + this._options.onCapturingGroupEnter(start, name); + } + } + onCapturingGroupLeave(start, end, name) { + if (this._options.onCapturingGroupLeave) { + this._options.onCapturingGroupLeave(start, end, name); + } + } + onQuantifier(start, end, min, max, greedy) { + if (this._options.onQuantifier) { + this._options.onQuantifier(start, end, min, max, greedy); + } + } + onLookaroundAssertionEnter(start, kind, negate) { + if (this._options.onLookaroundAssertionEnter) { + this._options.onLookaroundAssertionEnter(start, kind, negate); + } + } + onLookaroundAssertionLeave(start, end, kind, negate) { + if (this._options.onLookaroundAssertionLeave) { + this._options.onLookaroundAssertionLeave(start, end, kind, negate); + } + } + onEdgeAssertion(start, end, kind) { + if (this._options.onEdgeAssertion) { + this._options.onEdgeAssertion(start, end, kind); + } + } + onWordBoundaryAssertion(start, end, kind, negate) { + if (this._options.onWordBoundaryAssertion) { + this._options.onWordBoundaryAssertion(start, end, kind, negate); + } + } + onAnyCharacterSet(start, end, kind) { + if (this._options.onAnyCharacterSet) { + this._options.onAnyCharacterSet(start, end, kind); + } + } + onEscapeCharacterSet(start, end, kind, negate) { + if (this._options.onEscapeCharacterSet) { + this._options.onEscapeCharacterSet(start, end, kind, negate); + } + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { + if (this._options.onUnicodePropertyCharacterSet) { + this._options.onUnicodePropertyCharacterSet(start, end, kind, key, value, negate); + } + } + onCharacter(start, end, value) { + if (this._options.onCharacter) { + this._options.onCharacter(start, end, value); + } + } + onBackreference(start, end, ref) { + if (this._options.onBackreference) { + this._options.onBackreference(start, end, ref); + } + } + onCharacterClassEnter(start, negate) { + if (this._options.onCharacterClassEnter) { + this._options.onCharacterClassEnter(start, negate); + } + } + onCharacterClassLeave(start, end, negate) { + if (this._options.onCharacterClassLeave) { + this._options.onCharacterClassLeave(start, end, negate); + } + } + onCharacterClassRange(start, end, min, max) { + if (this._options.onCharacterClassRange) { + this._options.onCharacterClassRange(start, end, min, max); + } + } + get source() { + return this._reader.source; + } + get index() { + return this._reader.index; + } + get currentCodePoint() { + return this._reader.currentCodePoint; + } + get nextCodePoint() { + return this._reader.nextCodePoint; + } + get nextCodePoint2() { + return this._reader.nextCodePoint2; + } + get nextCodePoint3() { + return this._reader.nextCodePoint3; + } + reset(source, start, end) { + this._reader.reset(source, start, end, this._uFlag); + } + rewind(index) { + this._reader.rewind(index); + } + advance() { + this._reader.advance(); + } + eat(cp) { + return this._reader.eat(cp); + } + eat2(cp1, cp2) { + return this._reader.eat2(cp1, cp2); + } + eat3(cp1, cp2, cp3) { + return this._reader.eat3(cp1, cp2, cp3); + } + raise(message) { + throw new RegExpSyntaxError(this.source, this._uFlag, this.index, message); + } + eatRegExpBody() { + const start = this.index; + let inClass = false; + let escaped = false; + for (;;) { + const cp = this.currentCodePoint; + if (cp === -1 || isLineTerminator(cp)) { + const kind = inClass ? "character class" : "regular expression"; + this.raise(`Unterminated ${kind}`); + } + if (escaped) { + escaped = false; + } + else if (cp === ReverseSolidus) { + escaped = true; + } + else if (cp === LeftSquareBracket) { + inClass = true; + } + else if (cp === RightSquareBracket) { + inClass = false; + } + else if ((cp === Solidus && !inClass) || + (cp === Asterisk && this.index === start)) { + break; + } + this.advance(); + } + return this.index !== start; + } + consumePattern() { + const start = this.index; + this._numCapturingParens = this.countCapturingParens(); + this._groupNames.clear(); + this._backreferenceNames.clear(); + this.onPatternEnter(start); + this.consumeDisjunction(); + const cp = this.currentCodePoint; + if (this.currentCodePoint !== -1) { + if (cp === RightParenthesis) { + this.raise("Unmatched ')'"); + } + if (cp === ReverseSolidus) { + this.raise("\\ at end of pattern"); + } + if (cp === RightSquareBracket || cp === RightCurlyBracket) { + this.raise("Lone quantifier brackets"); + } + const c = String.fromCodePoint(cp); + this.raise(`Unexpected character '${c}'`); + } + for (const name of this._backreferenceNames) { + if (!this._groupNames.has(name)) { + this.raise("Invalid named capture referenced"); + } + } + this.onPatternLeave(start, this.index); + } + countCapturingParens() { + const start = this.index; + let inClass = false; + let escaped = false; + let count = 0; + let cp = 0; + while ((cp = this.currentCodePoint) !== -1) { + if (escaped) { + escaped = false; + } + else if (cp === ReverseSolidus) { + escaped = true; + } + else if (cp === LeftSquareBracket) { + inClass = true; + } + else if (cp === RightSquareBracket) { + inClass = false; + } + else if (cp === LeftParenthesis && + !inClass && + (this.nextCodePoint !== QuestionMark || + (this.nextCodePoint2 === LessThanSign && + this.nextCodePoint3 !== EqualsSign && + this.nextCodePoint3 !== ExclamationMark))) { + count += 1; + } + this.advance(); + } + this.rewind(start); + return count; + } + consumeDisjunction() { + const start = this.index; + let i = 0; + this.onDisjunctionEnter(start); + do { + this.consumeAlternative(i++); + } while (this.eat(VerticalLine)); + if (this.consumeQuantifier(true)) { + this.raise("Nothing to repeat"); + } + if (this.eat(LeftCurlyBracket)) { + this.raise("Lone quantifier brackets"); + } + this.onDisjunctionLeave(start, this.index); + } + consumeAlternative(i) { + const start = this.index; + this.onAlternativeEnter(start, i); + while (this.currentCodePoint !== -1 && this.consumeTerm()) { + } + this.onAlternativeLeave(start, this.index, i); + } + consumeTerm() { + if (this._uFlag || this.strict) { + return (this.consumeAssertion() || + (this.consumeAtom() && this.consumeOptionalQuantifier())); + } + return ((this.consumeAssertion() && + (!this._lastAssertionIsQuantifiable || + this.consumeOptionalQuantifier())) || + (this.consumeExtendedAtom() && this.consumeOptionalQuantifier())); + } + consumeOptionalQuantifier() { + this.consumeQuantifier(); + return true; + } + consumeAssertion() { + const start = this.index; + this._lastAssertionIsQuantifiable = false; + if (this.eat(CircumflexAccent)) { + this.onEdgeAssertion(start, this.index, "start"); + return true; + } + if (this.eat(DollarSign)) { + this.onEdgeAssertion(start, this.index, "end"); + return true; + } + if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) { + this.onWordBoundaryAssertion(start, this.index, "word", true); + return true; + } + if (this.eat2(ReverseSolidus, LatinSmallLetterB)) { + this.onWordBoundaryAssertion(start, this.index, "word", false); + return true; + } + if (this.eat2(LeftParenthesis, QuestionMark)) { + const lookbehind = this.ecmaVersion >= 2018 && this.eat(LessThanSign); + let negate = false; + if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) { + const kind = lookbehind ? "lookbehind" : "lookahead"; + this.onLookaroundAssertionEnter(start, kind, negate); + this.consumeDisjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this._lastAssertionIsQuantifiable = !lookbehind && !this.strict; + this.onLookaroundAssertionLeave(start, this.index, kind, negate); + return true; + } + this.rewind(start); + } + return false; + } + consumeQuantifier(noConsume = false) { + const start = this.index; + let min = 0; + let max = 0; + let greedy = false; + if (this.eat(Asterisk)) { + min = 0; + max = Number.POSITIVE_INFINITY; + } + else if (this.eat(PlusSign)) { + min = 1; + max = Number.POSITIVE_INFINITY; + } + else if (this.eat(QuestionMark)) { + min = 0; + max = 1; + } + else if (this.eatBracedQuantifier(noConsume)) { + min = this._lastMinValue; + max = this._lastMaxValue; + } + else { + return false; + } + greedy = !this.eat(QuestionMark); + if (!noConsume) { + this.onQuantifier(start, this.index, min, max, greedy); + } + return true; + } + eatBracedQuantifier(noError) { + const start = this.index; + if (this.eat(LeftCurlyBracket)) { + this._lastMinValue = 0; + this._lastMaxValue = Number.POSITIVE_INFINITY; + if (this.eatDecimalDigits()) { + this._lastMinValue = this._lastMaxValue = this._lastIntValue; + if (this.eat(Comma)) { + this._lastMaxValue = this.eatDecimalDigits() + ? this._lastIntValue + : Number.POSITIVE_INFINITY; + } + if (this.eat(RightCurlyBracket)) { + if (!noError && this._lastMaxValue < this._lastMinValue) { + this.raise("numbers out of order in {} quantifier"); + } + return true; + } + } + if (!noError && (this._uFlag || this.strict)) { + this.raise("Incomplete quantifier"); + } + this.rewind(start); + } + return false; + } + consumeAtom() { + return (this.consumePatternCharacter() || + this.consumeDot() || + this.consumeReverseSolidusAtomEscape() || + this.consumeCharacterClass() || + this.consumeUncapturingGroup() || + this.consumeCapturingGroup()); + } + consumeDot() { + if (this.eat(FullStop)) { + this.onAnyCharacterSet(this.index - 1, this.index, "any"); + return true; + } + return false; + } + consumeReverseSolidusAtomEscape() { + const start = this.index; + if (this.eat(ReverseSolidus)) { + if (this.consumeAtomEscape()) { + return true; + } + this.rewind(start); + } + return false; + } + consumeUncapturingGroup() { + const start = this.index; + if (this.eat3(LeftParenthesis, QuestionMark, Colon)) { + this.onGroupEnter(start); + this.consumeDisjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this.onGroupLeave(start, this.index); + return true; + } + return false; + } + consumeCapturingGroup() { + const start = this.index; + if (this.eat(LeftParenthesis)) { + let name = null; + if (this.ecmaVersion >= 2018) { + if (this.consumeGroupSpecifier()) { + name = this._lastStrValue; + } + } + else if (this.currentCodePoint === QuestionMark) { + this.raise("Invalid group"); + } + this.onCapturingGroupEnter(start, name); + this.consumeDisjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this.onCapturingGroupLeave(start, this.index, name); + return true; + } + return false; + } + consumeExtendedAtom() { + return (this.consumeDot() || + this.consumeReverseSolidusAtomEscape() || + this.consumeReverseSolidusFollowedByC() || + this.consumeCharacterClass() || + this.consumeUncapturingGroup() || + this.consumeCapturingGroup() || + this.consumeInvalidBracedQuantifier() || + this.consumeExtendedPatternCharacter()); + } + consumeReverseSolidusFollowedByC() { + const start = this.index; + if (this.currentCodePoint === ReverseSolidus && + this.nextCodePoint === LatinSmallLetterC) { + this._lastIntValue = this.currentCodePoint; + this.advance(); + this.onCharacter(start, this.index, ReverseSolidus); + return true; + } + return false; + } + consumeInvalidBracedQuantifier() { + if (this.eatBracedQuantifier(true)) { + this.raise("Nothing to repeat"); + } + return false; + } + consumePatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && !isSyntaxCharacter(cp)) { + this.advance(); + this.onCharacter(start, this.index, cp); + return true; + } + return false; + } + consumeExtendedPatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && + cp !== CircumflexAccent && + cp !== DollarSign && + cp !== ReverseSolidus && + cp !== FullStop && + cp !== Asterisk && + cp !== PlusSign && + cp !== QuestionMark && + cp !== LeftParenthesis && + cp !== RightParenthesis && + cp !== LeftSquareBracket && + cp !== VerticalLine) { + this.advance(); + this.onCharacter(start, this.index, cp); + return true; + } + return false; + } + consumeGroupSpecifier() { + if (this.eat(QuestionMark)) { + if (this.eatGroupName()) { + if (!this._groupNames.has(this._lastStrValue)) { + this._groupNames.add(this._lastStrValue); + return true; + } + this.raise("Duplicate capture group name"); + } + this.raise("Invalid group"); + } + return false; + } + consumeAtomEscape() { + if (this.consumeBackreference() || + this.consumeCharacterClassEscape() || + this.consumeCharacterEscape() || + (this._nFlag && this.consumeKGroupName())) { + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid escape"); + } + return false; + } + consumeBackreference() { + const start = this.index; + if (this.eatDecimalEscape()) { + const n = this._lastIntValue; + if (n <= this._numCapturingParens) { + this.onBackreference(start - 1, this.index, n); + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + consumeCharacterClassEscape() { + const start = this.index; + if (this.eat(LatinSmallLetterD)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "digit", false); + return true; + } + if (this.eat(LatinCapitalLetterD)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "digit", true); + return true; + } + if (this.eat(LatinSmallLetterS)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "space", false); + return true; + } + if (this.eat(LatinCapitalLetterS)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "space", true); + return true; + } + if (this.eat(LatinSmallLetterW)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "word", false); + return true; + } + if (this.eat(LatinCapitalLetterW)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "word", true); + return true; + } + let negate = false; + if (this._uFlag && + this.ecmaVersion >= 2018 && + (this.eat(LatinSmallLetterP) || + (negate = this.eat(LatinCapitalLetterP)))) { + this._lastIntValue = -1; + if (this.eat(LeftCurlyBracket) && + this.eatUnicodePropertyValueExpression() && + this.eat(RightCurlyBracket)) { + this.onUnicodePropertyCharacterSet(start - 1, this.index, "property", this._lastKeyValue, this._lastValValue || null, negate); + return true; + } + this.raise("Invalid property name"); + } + return false; + } + consumeCharacterEscape() { + const start = this.index; + if (this.eatControlEscape() || + this.eatCControlLetter() || + this.eatZero() || + this.eatHexEscapeSequence() || + this.eatRegExpUnicodeEscapeSequence() || + (!this.strict && + !this._uFlag && + this.eatLegacyOctalEscapeSequence()) || + this.eatIdentityEscape()) { + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + return false; + } + consumeKGroupName() { + const start = this.index; + if (this.eat(LatinSmallLetterK)) { + if (this.eatGroupName()) { + const groupName = this._lastStrValue; + this._backreferenceNames.add(groupName); + this.onBackreference(start - 1, this.index, groupName); + return true; + } + this.raise("Invalid named reference"); + } + return false; + } + consumeCharacterClass() { + const start = this.index; + if (this.eat(LeftSquareBracket)) { + const negate = this.eat(CircumflexAccent); + this.onCharacterClassEnter(start, negate); + this.consumeClassRanges(); + if (!this.eat(RightSquareBracket)) { + this.raise("Unterminated character class"); + } + this.onCharacterClassLeave(start, this.index, negate); + return true; + } + return false; + } + consumeClassRanges() { + const strict = this.strict || this._uFlag; + for (;;) { + const rangeStart = this.index; + if (!this.consumeClassAtom()) { + break; + } + const min = this._lastIntValue; + if (!this.eat(HyphenMinus)) { + continue; + } + this.onCharacter(this.index - 1, this.index, HyphenMinus); + if (!this.consumeClassAtom()) { + break; + } + const max = this._lastIntValue; + if (min === -1 || max === -1) { + if (strict) { + this.raise("Invalid character class"); + } + continue; + } + if (min > max) { + this.raise("Range out of order in character class"); + } + this.onCharacterClassRange(rangeStart, this.index, min, max); + } + } + consumeClassAtom() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && cp !== ReverseSolidus && cp !== RightSquareBracket) { + this.advance(); + this._lastIntValue = cp; + this.onCharacter(start, this.index, this._lastIntValue); + return true; + } + if (this.eat(ReverseSolidus)) { + if (this.consumeClassEscape()) { + return true; + } + if (!this.strict && this.currentCodePoint === LatinSmallLetterC) { + this._lastIntValue = ReverseSolidus; + this.onCharacter(start, this.index, this._lastIntValue); + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + consumeClassEscape() { + const start = this.index; + if (this.eat(LatinSmallLetterB)) { + this._lastIntValue = Backspace; + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + if (this._uFlag && this.eat(HyphenMinus)) { + this._lastIntValue = HyphenMinus; + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + let cp = 0; + if (!this.strict && + !this._uFlag && + this.currentCodePoint === LatinSmallLetterC && + (isDecimalDigit((cp = this.nextCodePoint)) || cp === LowLine)) { + this.advance(); + this.advance(); + this._lastIntValue = cp % 0x20; + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + return (this.consumeCharacterClassEscape() || this.consumeCharacterEscape()); + } + eatGroupName() { + if (this.eat(LessThanSign)) { + if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) { + return true; + } + this.raise("Invalid capture group name"); + } + return false; + } + eatRegExpIdentifierName() { + if (this.eatRegExpIdentifierStart()) { + this._lastStrValue = String.fromCodePoint(this._lastIntValue); + while (this.eatRegExpIdentifierPart()) { + this._lastStrValue += String.fromCodePoint(this._lastIntValue); + } + return true; + } + return false; + } + eatRegExpIdentifierStart() { + const start = this.index; + const forceUFlag = !this._uFlag && this.ecmaVersion >= 2020; + let cp = this.currentCodePoint; + this.advance(); + if (cp === ReverseSolidus && + this.eatRegExpUnicodeEscapeSequence(forceUFlag)) { + cp = this._lastIntValue; + } + else if (forceUFlag && + isLeadSurrogate(cp) && + isTrailSurrogate(this.currentCodePoint)) { + cp = combineSurrogatePair(cp, this.currentCodePoint); + this.advance(); + } + if (isRegExpIdentifierStart(cp)) { + this._lastIntValue = cp; + return true; + } + if (this.index !== start) { + this.rewind(start); + } + return false; + } + eatRegExpIdentifierPart() { + const start = this.index; + const forceUFlag = !this._uFlag && this.ecmaVersion >= 2020; + let cp = this.currentCodePoint; + this.advance(); + if (cp === ReverseSolidus && + this.eatRegExpUnicodeEscapeSequence(forceUFlag)) { + cp = this._lastIntValue; + } + else if (forceUFlag && + isLeadSurrogate(cp) && + isTrailSurrogate(this.currentCodePoint)) { + cp = combineSurrogatePair(cp, this.currentCodePoint); + this.advance(); + } + if (isRegExpIdentifierPart(cp)) { + this._lastIntValue = cp; + return true; + } + if (this.index !== start) { + this.rewind(start); + } + return false; + } + eatCControlLetter() { + const start = this.index; + if (this.eat(LatinSmallLetterC)) { + if (this.eatControlLetter()) { + return true; + } + this.rewind(start); + } + return false; + } + eatZero() { + if (this.currentCodePoint === DigitZero && + !isDecimalDigit(this.nextCodePoint)) { + this._lastIntValue = 0; + this.advance(); + return true; + } + return false; + } + eatControlEscape() { + if (this.eat(LatinSmallLetterF)) { + this._lastIntValue = FormFeed; + return true; + } + if (this.eat(LatinSmallLetterN)) { + this._lastIntValue = LineFeed; + return true; + } + if (this.eat(LatinSmallLetterR)) { + this._lastIntValue = CarriageReturn; + return true; + } + if (this.eat(LatinSmallLetterT)) { + this._lastIntValue = CharacterTabulation; + return true; + } + if (this.eat(LatinSmallLetterV)) { + this._lastIntValue = LineTabulation; + return true; + } + return false; + } + eatControlLetter() { + const cp = this.currentCodePoint; + if (isLatinLetter(cp)) { + this.advance(); + this._lastIntValue = cp % 0x20; + return true; + } + return false; + } + eatRegExpUnicodeEscapeSequence(forceUFlag = false) { + const start = this.index; + const uFlag = forceUFlag || this._uFlag; + if (this.eat(LatinSmallLetterU)) { + if ((uFlag && this.eatRegExpUnicodeSurrogatePairEscape()) || + this.eatFixedHexDigits(4) || + (uFlag && this.eatRegExpUnicodeCodePointEscape())) { + return true; + } + if (this.strict || uFlag) { + this.raise("Invalid unicode escape"); + } + this.rewind(start); + } + return false; + } + eatRegExpUnicodeSurrogatePairEscape() { + const start = this.index; + if (this.eatFixedHexDigits(4)) { + const lead = this._lastIntValue; + if (isLeadSurrogate(lead) && + this.eat(ReverseSolidus) && + this.eat(LatinSmallLetterU) && + this.eatFixedHexDigits(4)) { + const trail = this._lastIntValue; + if (isTrailSurrogate(trail)) { + this._lastIntValue = combineSurrogatePair(lead, trail); + return true; + } + } + this.rewind(start); + } + return false; + } + eatRegExpUnicodeCodePointEscape() { + const start = this.index; + if (this.eat(LeftCurlyBracket) && + this.eatHexDigits() && + this.eat(RightCurlyBracket) && + isValidUnicode(this._lastIntValue)) { + return true; + } + this.rewind(start); + return false; + } + eatIdentityEscape() { + const cp = this.currentCodePoint; + if (this.isValidIdentityEscape(cp)) { + this._lastIntValue = cp; + this.advance(); + return true; + } + return false; + } + isValidIdentityEscape(cp) { + if (cp === -1) { + return false; + } + if (this._uFlag) { + return isSyntaxCharacter(cp) || cp === Solidus; + } + if (this.strict) { + return !isIdContinue(cp); + } + if (this._nFlag) { + return !(cp === LatinSmallLetterC || cp === LatinSmallLetterK); + } + return cp !== LatinSmallLetterC; + } + eatDecimalEscape() { + this._lastIntValue = 0; + let cp = this.currentCodePoint; + if (cp >= DigitOne && cp <= DigitNine) { + do { + this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero); + this.advance(); + } while ((cp = this.currentCodePoint) >= DigitZero && + cp <= DigitNine); + return true; + } + return false; + } + eatUnicodePropertyValueExpression() { + const start = this.index; + if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) { + this._lastKeyValue = this._lastStrValue; + if (this.eatUnicodePropertyValue()) { + this._lastValValue = this._lastStrValue; + if (isValidUnicodeProperty(this.ecmaVersion, this._lastKeyValue, this._lastValValue)) { + return true; + } + this.raise("Invalid property name"); + } + } + this.rewind(start); + if (this.eatLoneUnicodePropertyNameOrValue()) { + const nameOrValue = this._lastStrValue; + if (isValidUnicodeProperty(this.ecmaVersion, "General_Category", nameOrValue)) { + this._lastKeyValue = "General_Category"; + this._lastValValue = nameOrValue; + return true; + } + if (isValidLoneUnicodeProperty(this.ecmaVersion, nameOrValue)) { + this._lastKeyValue = nameOrValue; + this._lastValValue = ""; + return true; + } + this.raise("Invalid property name"); + } + return false; + } + eatUnicodePropertyName() { + this._lastStrValue = ""; + while (isUnicodePropertyNameCharacter(this.currentCodePoint)) { + this._lastStrValue += String.fromCodePoint(this.currentCodePoint); + this.advance(); + } + return this._lastStrValue !== ""; + } + eatUnicodePropertyValue() { + this._lastStrValue = ""; + while (isUnicodePropertyValueCharacter(this.currentCodePoint)) { + this._lastStrValue += String.fromCodePoint(this.currentCodePoint); + this.advance(); + } + return this._lastStrValue !== ""; + } + eatLoneUnicodePropertyNameOrValue() { + return this.eatUnicodePropertyValue(); + } + eatHexEscapeSequence() { + const start = this.index; + if (this.eat(LatinSmallLetterX)) { + if (this.eatFixedHexDigits(2)) { + return true; + } + if (this._uFlag || this.strict) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + eatDecimalDigits() { + const start = this.index; + this._lastIntValue = 0; + while (isDecimalDigit(this.currentCodePoint)) { + this._lastIntValue = + 10 * this._lastIntValue + digitToInt(this.currentCodePoint); + this.advance(); + } + return this.index !== start; + } + eatHexDigits() { + const start = this.index; + this._lastIntValue = 0; + while (isHexDigit(this.currentCodePoint)) { + this._lastIntValue = + 16 * this._lastIntValue + digitToInt(this.currentCodePoint); + this.advance(); + } + return this.index !== start; + } + eatLegacyOctalEscapeSequence() { + if (this.eatOctalDigit()) { + const n1 = this._lastIntValue; + if (this.eatOctalDigit()) { + const n2 = this._lastIntValue; + if (n1 <= 3 && this.eatOctalDigit()) { + this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue; + } + else { + this._lastIntValue = n1 * 8 + n2; + } + } + else { + this._lastIntValue = n1; + } + return true; + } + return false; + } + eatOctalDigit() { + const cp = this.currentCodePoint; + if (isOctalDigit(cp)) { + this.advance(); + this._lastIntValue = cp - DigitZero; + return true; + } + this._lastIntValue = 0; + return false; + } + eatFixedHexDigits(length) { + const start = this.index; + this._lastIntValue = 0; + for (let i = 0; i < length; ++i) { + const cp = this.currentCodePoint; + if (!isHexDigit(cp)) { + this.rewind(start); + return false; + } + this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp); + this.advance(); + } + return true; + } +} + +const DummyPattern = {}; +const DummyFlags = {}; +const DummyCapturingGroup = {}; +class RegExpParserState { + constructor(options) { + this._node = DummyPattern; + this._flags = DummyFlags; + this._backreferences = []; + this._capturingGroups = []; + this.source = ""; + this.strict = Boolean(options && options.strict); + this.ecmaVersion = (options && options.ecmaVersion) || 2022; + } + get pattern() { + if (this._node.type !== "Pattern") { + throw new Error("UnknownError"); + } + return this._node; + } + get flags() { + if (this._flags.type !== "Flags") { + throw new Error("UnknownError"); + } + return this._flags; + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices) { + this._flags = { + type: "Flags", + parent: null, + start, + end, + raw: this.source.slice(start, end), + global, + ignoreCase, + multiline, + unicode, + sticky, + dotAll, + hasIndices, + }; + } + onPatternEnter(start) { + this._node = { + type: "Pattern", + parent: null, + start, + end: start, + raw: "", + alternatives: [], + }; + this._backreferences.length = 0; + this._capturingGroups.length = 0; + } + onPatternLeave(start, end) { + this._node.end = end; + this._node.raw = this.source.slice(start, end); + for (const reference of this._backreferences) { + const ref = reference.ref; + const group = typeof ref === "number" + ? this._capturingGroups[ref - 1] + : this._capturingGroups.find(g => g.name === ref); + reference.resolved = group; + group.references.push(reference); + } + } + onAlternativeEnter(start) { + const parent = this._node; + if (parent.type !== "Assertion" && + parent.type !== "CapturingGroup" && + parent.type !== "Group" && + parent.type !== "Pattern") { + throw new Error("UnknownError"); + } + this._node = { + type: "Alternative", + parent, + start, + end: start, + raw: "", + elements: [], + }; + parent.alternatives.push(this._node); + } + onAlternativeLeave(start, end) { + const node = this._node; + if (node.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onGroupEnter(start) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + this._node = { + type: "Group", + parent, + start, + end: start, + raw: "", + alternatives: [], + }; + parent.elements.push(this._node); + } + onGroupLeave(start, end) { + const node = this._node; + if (node.type !== "Group" || node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onCapturingGroupEnter(start, name) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + this._node = { + type: "CapturingGroup", + parent, + start, + end: start, + raw: "", + name, + alternatives: [], + references: [], + }; + parent.elements.push(this._node); + this._capturingGroups.push(this._node); + } + onCapturingGroupLeave(start, end) { + const node = this._node; + if (node.type !== "CapturingGroup" || + node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onQuantifier(start, end, min, max, greedy) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + const element = parent.elements.pop(); + if (element == null || + element.type === "Quantifier" || + (element.type === "Assertion" && element.kind !== "lookahead")) { + throw new Error("UnknownError"); + } + const node = { + type: "Quantifier", + parent, + start: element.start, + end, + raw: this.source.slice(element.start, end), + min, + max, + greedy, + element, + }; + parent.elements.push(node); + element.parent = node; + } + onLookaroundAssertionEnter(start, kind, negate) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + const node = (this._node = { + type: "Assertion", + parent, + start, + end: start, + raw: "", + kind, + negate, + alternatives: [], + }); + parent.elements.push(node); + } + onLookaroundAssertionLeave(start, end) { + const node = this._node; + if (node.type !== "Assertion" || node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onEdgeAssertion(start, end, kind) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "Assertion", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + }); + } + onWordBoundaryAssertion(start, end, kind, negate) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "Assertion", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + negate, + }); + } + onAnyCharacterSet(start, end, kind) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "CharacterSet", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + }); + } + onEscapeCharacterSet(start, end, kind, negate) { + const parent = this._node; + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "CharacterSet", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + negate, + }); + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { + const parent = this._node; + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "CharacterSet", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + key, + value, + negate, + }); + } + onCharacter(start, end, value) { + const parent = this._node; + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "Character", + parent, + start, + end, + raw: this.source.slice(start, end), + value, + }); + } + onBackreference(start, end, ref) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + const node = { + type: "Backreference", + parent, + start, + end, + raw: this.source.slice(start, end), + ref, + resolved: DummyCapturingGroup, + }; + parent.elements.push(node); + this._backreferences.push(node); + } + onCharacterClassEnter(start, negate) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + this._node = { + type: "CharacterClass", + parent, + start, + end: start, + raw: "", + negate, + elements: [], + }; + parent.elements.push(this._node); + } + onCharacterClassLeave(start, end) { + const node = this._node; + if (node.type !== "CharacterClass" || + node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onCharacterClassRange(start, end) { + const parent = this._node; + if (parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + const elements = parent.elements; + const max = elements.pop(); + const hyphen = elements.pop(); + const min = elements.pop(); + if (!min || + !max || + !hyphen || + min.type !== "Character" || + max.type !== "Character" || + hyphen.type !== "Character" || + hyphen.value !== HyphenMinus) { + throw new Error("UnknownError"); + } + const node = { + type: "CharacterClassRange", + parent, + start, + end, + raw: this.source.slice(start, end), + min, + max, + }; + min.parent = node; + max.parent = node; + elements.push(node); + } +} +class RegExpParser { + constructor(options) { + this._state = new RegExpParserState(options); + this._validator = new RegExpValidator(this._state); + } + parseLiteral(source, start = 0, end = source.length) { + this._state.source = source; + this._validator.validateLiteral(source, start, end); + const pattern = this._state.pattern; + const flags = this._state.flags; + const literal = { + type: "RegExpLiteral", + parent: null, + start, + end, + raw: source, + pattern, + flags, + }; + pattern.parent = literal; + flags.parent = literal; + return literal; + } + parseFlags(source, start = 0, end = source.length) { + this._state.source = source; + this._validator.validateFlags(source, start, end); + return this._state.flags; + } + parsePattern(source, start = 0, end = source.length, uFlag = false) { + this._state.source = source; + this._validator.validatePattern(source, start, end, uFlag); + return this._state.pattern; + } +} + +class RegExpVisitor { + constructor(handlers) { + this._handlers = handlers; + } + visit(node) { + switch (node.type) { + case "Alternative": + this.visitAlternative(node); + break; + case "Assertion": + this.visitAssertion(node); + break; + case "Backreference": + this.visitBackreference(node); + break; + case "CapturingGroup": + this.visitCapturingGroup(node); + break; + case "Character": + this.visitCharacter(node); + break; + case "CharacterClass": + this.visitCharacterClass(node); + break; + case "CharacterClassRange": + this.visitCharacterClassRange(node); + break; + case "CharacterSet": + this.visitCharacterSet(node); + break; + case "Flags": + this.visitFlags(node); + break; + case "Group": + this.visitGroup(node); + break; + case "Pattern": + this.visitPattern(node); + break; + case "Quantifier": + this.visitQuantifier(node); + break; + case "RegExpLiteral": + this.visitRegExpLiteral(node); + break; + default: + throw new Error(`Unknown type: ${node.type}`); + } + } + visitAlternative(node) { + if (this._handlers.onAlternativeEnter) { + this._handlers.onAlternativeEnter(node); + } + node.elements.forEach(this.visit, this); + if (this._handlers.onAlternativeLeave) { + this._handlers.onAlternativeLeave(node); + } + } + visitAssertion(node) { + if (this._handlers.onAssertionEnter) { + this._handlers.onAssertionEnter(node); + } + if (node.kind === "lookahead" || node.kind === "lookbehind") { + node.alternatives.forEach(this.visit, this); + } + if (this._handlers.onAssertionLeave) { + this._handlers.onAssertionLeave(node); + } + } + visitBackreference(node) { + if (this._handlers.onBackreferenceEnter) { + this._handlers.onBackreferenceEnter(node); + } + if (this._handlers.onBackreferenceLeave) { + this._handlers.onBackreferenceLeave(node); + } + } + visitCapturingGroup(node) { + if (this._handlers.onCapturingGroupEnter) { + this._handlers.onCapturingGroupEnter(node); + } + node.alternatives.forEach(this.visit, this); + if (this._handlers.onCapturingGroupLeave) { + this._handlers.onCapturingGroupLeave(node); + } + } + visitCharacter(node) { + if (this._handlers.onCharacterEnter) { + this._handlers.onCharacterEnter(node); + } + if (this._handlers.onCharacterLeave) { + this._handlers.onCharacterLeave(node); + } + } + visitCharacterClass(node) { + if (this._handlers.onCharacterClassEnter) { + this._handlers.onCharacterClassEnter(node); + } + node.elements.forEach(this.visit, this); + if (this._handlers.onCharacterClassLeave) { + this._handlers.onCharacterClassLeave(node); + } + } + visitCharacterClassRange(node) { + if (this._handlers.onCharacterClassRangeEnter) { + this._handlers.onCharacterClassRangeEnter(node); + } + this.visitCharacter(node.min); + this.visitCharacter(node.max); + if (this._handlers.onCharacterClassRangeLeave) { + this._handlers.onCharacterClassRangeLeave(node); + } + } + visitCharacterSet(node) { + if (this._handlers.onCharacterSetEnter) { + this._handlers.onCharacterSetEnter(node); + } + if (this._handlers.onCharacterSetLeave) { + this._handlers.onCharacterSetLeave(node); + } + } + visitFlags(node) { + if (this._handlers.onFlagsEnter) { + this._handlers.onFlagsEnter(node); + } + if (this._handlers.onFlagsLeave) { + this._handlers.onFlagsLeave(node); + } + } + visitGroup(node) { + if (this._handlers.onGroupEnter) { + this._handlers.onGroupEnter(node); + } + node.alternatives.forEach(this.visit, this); + if (this._handlers.onGroupLeave) { + this._handlers.onGroupLeave(node); + } + } + visitPattern(node) { + if (this._handlers.onPatternEnter) { + this._handlers.onPatternEnter(node); + } + node.alternatives.forEach(this.visit, this); + if (this._handlers.onPatternLeave) { + this._handlers.onPatternLeave(node); + } + } + visitQuantifier(node) { + if (this._handlers.onQuantifierEnter) { + this._handlers.onQuantifierEnter(node); + } + this.visit(node.element); + if (this._handlers.onQuantifierLeave) { + this._handlers.onQuantifierLeave(node); + } + } + visitRegExpLiteral(node) { + if (this._handlers.onRegExpLiteralEnter) { + this._handlers.onRegExpLiteralEnter(node); + } + this.visitPattern(node.pattern); + this.visitFlags(node.flags); + if (this._handlers.onRegExpLiteralLeave) { + this._handlers.onRegExpLiteralLeave(node); + } + } +} + +function parseRegExpLiteral(source, options) { + return new RegExpParser(options).parseLiteral(String(source)); +} +function validateRegExpLiteral(source, options) { + return new RegExpValidator(options).validateLiteral(source); +} +function visitRegExpAST(node, handlers) { + new RegExpVisitor(handlers).visit(node); +} + +exports.AST = ast; +exports.RegExpParser = RegExpParser; +exports.RegExpValidator = RegExpValidator; +exports.parseRegExpLiteral = parseRegExpLiteral; +exports.validateRegExpLiteral = validateRegExpLiteral; +exports.visitRegExpAST = visitRegExpAST; +//# sourceMappingURL=index.js.map diff --git a/node_modules/regexpp/index.js.map b/node_modules/regexpp/index.js.map new file mode 100644 index 0000000..db15135 --- /dev/null +++ b/node_modules/regexpp/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js.map","sources":[".temp/unicode/src/unicode/ids.ts",".temp/unicode/src/unicode/properties.ts",".temp/unicode/src/unicode/index.ts",".temp/src/reader.ts",".temp/src/regexp-syntax-error.ts",".temp/src/validator.ts",".temp/src/parser.ts",".temp/src/visitor.ts",".temp/src/index.ts"],"sourcesContent":[{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\unicode\\src\\unicode\\ids.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\unicode\\src\\unicode\\properties.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\unicode\\src\\unicode\\index.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\reader.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\regexp-syntax-error.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\validator.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\parser.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\visitor.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\index.ts"}],"names":[],"mappings":";;;;;;;;;;;AAIA,IAAI,kBAAkB,GAAyB,SAAS,CAAA;AACxD,IAAI,qBAAqB,GAAyB,SAAS,CAAA;AAE3D,SAAgB,SAAS,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,OAAO,cAAc,CAAC,EAAE,CAAC,CAAA;CAC5B;AAED,SAAgB,YAAY,CAAC,EAAU;IACnC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC5B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAA;CACrD;AAED,SAAS,cAAc,CAAC,EAAU;IAC9B,OAAO,SAAS,CACZ,EAAE,EACF,kBAAkB,KAAK,kBAAkB,GAAG,sBAAsB,EAAE,CAAC,CACxE,CAAA;CACJ;AAED,SAAS,iBAAiB,CAAC,EAAU;IACjC,OAAO,SAAS,CACZ,EAAE,EACF,qBAAqB;SAChB,qBAAqB,GAAG,yBAAyB,EAAE,CAAC,CAC5D,CAAA;CACJ;AAED,SAAS,sBAAsB;IAC3B,OAAO,aAAa,CAChB,4qFAA4qF,CAC/qF,CAAA;CACJ;AAED,SAAS,yBAAyB;IAC9B,OAAO,aAAa,CAChB,0gDAA0gD,CAC7gD,CAAA;CACJ;AAED,SAAS,SAAS,CAAC,EAAU,EAAE,MAAgB;IAC3C,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAC3B,CAAC,GAAG,CAAC,EACL,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,CAAC,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACnB,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACvB,IAAI,EAAE,GAAG,GAAG,EAAE;YACV,CAAC,GAAG,CAAC,CAAA;SACR;aAAM,IAAI,EAAE,GAAG,GAAG,EAAE;YACjB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACZ;aAAM;YACH,OAAO,IAAI,CAAA;SACd;KACJ;IACD,OAAO,KAAK,CAAA;CACf;AAED,SAAS,aAAa,CAAC,IAAY;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CACjE;;AC3ED,MAAM,OAAO;IAST,YACI,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe;QAEf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;KAC1B;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;CACJ;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACvE,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,opBAAopB,EACppB,EAAE,EACF,EAAE,EACF,EAAE,CACL,CAAA;AACD,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,48DAA48D,EAC58D,gHAAgH,EAChH,uEAAuE,EACvE,uEAAuE,CAC1E,CAAA;AACD,MAAM,eAAe,GAAG,IAAI,OAAO,CAC/B,69BAA69B,EAC79B,uBAAuB,EACvB,EAAE,EACF,gCAAgC,CACnC,CAAA;AAED,SAAgB,sBAAsB,CAClC,OAAe,EACf,IAAY,EACZ,KAAa;IAEb,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KAC1D;IACD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrB,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;aAChD,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACjD,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACjD,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACrD;KACJ;IACD,OAAO,KAAK,CAAA;CACf;AAED,SAAgB,0BAA0B,CACtC,OAAe,EACf,KAAa;IAEb,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SACpD,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACrD,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACzD;CACJ;;ACtFM,MAAM,SAAS,GAAG,IAAI,CAAA;AAC7B,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,AAAO,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,AAAO,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,AAAO,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,AAAO,MAAM,gBAAgB,GAAG,IAAI,CAAA;AACpC,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,KAAK,GAAG,IAAI,CAAA;AACzB,AAAO,MAAM,WAAW,GAAG,IAAI,CAAA;AAC/B,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,OAAO,GAAG,IAAI,CAAA;AAC3B,AAAO,MAAM,SAAS,GAAG,IAAI,CAAA;AAC7B,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,AAAO,MAAM,SAAS,GAAG,IAAI,CAAA;AAC7B,AAAO,MAAM,KAAK,GAAG,IAAI,CAAA;AACzB,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,AAAO,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,OAAO,GAAG,IAAI,CAAA;AAC3B,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,AAAO,MAAM,kBAAkB,GAAG,IAAI,CAAA;AACtC,AAAO,MAAM,gBAAgB,GAAG,IAAI,CAAA;AACpC,AAAO,MAAM,gBAAgB,GAAG,IAAI,CAAA;AACpC,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACxC,AAAO,MAAM,eAAe,GAAG,MAAM,CAAA;AACrC,AAAO,MAAM,aAAa,GAAG,MAAM,CAAA;AACnC,AAAO,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAExC,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,YAAY,GAAG,QAAQ,CAAA;AAEpC,SAAgB,aAAa,CAAC,IAAY;IACtC,QACI,CAAC,IAAI,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB;SAC1D,IAAI,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,EAC3D;CACJ;AAED,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAA;CAChD;AAED,SAAgB,YAAY,CAAC,IAAY;IACrC,OAAO,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,UAAU,CAAA;CACjD;AAED,SAAgB,UAAU,CAAC,IAAY;IACnC,QACI,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS;SACtC,IAAI,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,CAAC;SAC3D,IAAI,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,EAC3D;CACJ;AAED,SAAgB,gBAAgB,CAAC,IAAY;IACzC,QACI,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,cAAc;QACvB,IAAI,KAAK,aAAa;QACtB,IAAI,KAAK,kBAAkB,EAC9B;CACJ;AAED,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAA;CACtD;AAED,SAAgB,UAAU,CAAC,IAAY;IACnC,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,EAAE;QACxD,OAAO,IAAI,GAAG,iBAAiB,GAAG,EAAE,CAAA;KACvC;IACD,IAAI,IAAI,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,EAAE;QAC5D,OAAO,IAAI,GAAG,mBAAmB,GAAG,EAAE,CAAA;KACzC;IACD,OAAO,IAAI,GAAG,SAAS,CAAA;CAC1B;AAED,SAAgB,eAAe,CAAC,IAAY;IACxC,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;CAC1C;AAED,SAAgB,gBAAgB,CAAC,IAAY;IACzC,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;CAC1C;AAED,SAAgB,oBAAoB,CAAC,IAAY,EAAE,KAAa;IAC5D,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,OAAO,CAAA;CAC9D;;ACpID,MAAM,UAAU,GAAG;IACf,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;KACxC;IACD,KAAK,CAAC,CAAS;QACX,OAAO,CAAC,CAAA;KACX;CACJ,CAAA;AACD,MAAM,WAAW,GAAG;IAChB,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAA;KAC1C;IACD,KAAK,CAAC,CAAS;QACX,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;KAC5B;CACJ,CAAA;AAED,MAAa,MAAM;IAAnB;QACY,UAAK,GAAG,UAAU,CAAA;QAClB,OAAE,GAAG,EAAE,CAAA;QACP,OAAE,GAAG,CAAC,CAAA;QACN,SAAI,GAAG,CAAC,CAAA;QACR,SAAI,GAAW,CAAC,CAAC,CAAA;QACjB,QAAG,GAAG,CAAC,CAAA;QACP,SAAI,GAAW,CAAC,CAAC,CAAA;QACjB,QAAG,GAAG,CAAC,CAAA;QACP,SAAI,GAAW,CAAC,CAAC,CAAA;QACjB,QAAG,GAAG,CAAC,CAAA;QACP,SAAI,GAAW,CAAC,CAAC,CAAA;KAkG5B;IAhGG,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAEM,KAAK,CACR,MAAc,EACd,KAAa,EACb,GAAW,EACX,KAAc;QAEd,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,CAAA;QAC7C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KACrB;IAEM,MAAM,CAAC,KAAa;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAA;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACpE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CACzC,CAAA;KACJ;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACvB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAA;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAC3C,CAAA;SACJ;KACJ;IAEM,GAAG,CAAC,EAAU;QACjB,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAEM,IAAI,CAAC,GAAW,EAAE,GAAW;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YACxC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAEM,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;CACJ;;MC9HY,iBAAkB,SAAQ,WAAW;IAE9C,YACI,MAAc,EACd,KAAc,EACd,KAAa,EACb,OAAe;QAGf,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACzB,MAAM,GAAG,IAAI,MAAM,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE,EAAE,CAAA;aAC5C;YACD,MAAM,GAAG,KAAK,MAAM,EAAE,CAAA;SACzB;QAGD,KAAK,CAAC,6BAA6B,MAAM,KAAK,OAAO,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACrB;CACJ;;ACyDD,SAAS,iBAAiB,CAAC,EAAU;IACjC,QACI,EAAE,KAAK,gBAAgB;QACvB,EAAE,KAAK,UAAU;QACjB,EAAE,KAAK,cAAc;QACrB,EAAE,KAAK,QAAQ;QACf,EAAE,KAAK,QAAQ;QACf,EAAE,KAAK,QAAQ;QACf,EAAE,KAAK,YAAY;QACnB,EAAE,KAAK,eAAe;QACtB,EAAE,KAAK,gBAAgB;QACvB,EAAE,KAAK,iBAAiB;QACxB,EAAE,KAAK,kBAAkB;QACzB,EAAE,KAAK,gBAAgB;QACvB,EAAE,KAAK,iBAAiB;QACxB,EAAE,KAAK,YAAY,EACtB;CACJ;AAED,SAAS,uBAAuB,CAAC,EAAU;IACvC,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,UAAU,IAAI,EAAE,KAAK,OAAO,CAAA;CAC9D;AAED,SAAS,sBAAsB,CAAC,EAAU;IACtC,QACI,YAAY,CAAC,EAAE,CAAC;QAChB,EAAE,KAAK,UAAU;QACjB,EAAE,KAAK,OAAO;QACd,EAAE,KAAK,kBAAkB;QACzB,EAAE,KAAK,eAAe,EACzB;CACJ;AAED,SAAS,8BAA8B,CAAC,EAAU;IAC9C,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAA;CAC7C;AAED,SAAS,+BAA+B,CAAC,EAAU;IAC/C,OAAO,8BAA8B,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,CAAA;CAClE;AAsSD,MAAa,eAAe;IAoBxB,YAAmB,OAAiC;QAlBnC,YAAO,GAAG,IAAI,MAAM,EAAE,CAAA;QAC/B,WAAM,GAAG,KAAK,CAAA;QACd,WAAM,GAAG,KAAK,CAAA;QACd,kBAAa,GAAG,CAAC,CAAA;QACjB,kBAAa,GAAG,CAAC,CAAA;QACjB,kBAAa,GAAG,CAAC,CAAA;QACjB,kBAAa,GAAG,EAAE,CAAA;QAClB,kBAAa,GAAG,EAAE,CAAA;QAClB,kBAAa,GAAG,EAAE,CAAA;QAClB,iCAA4B,GAAG,KAAK,CAAA;QACpC,wBAAmB,GAAG,CAAC,CAAA;QACvB,gBAAW,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;QAO3C,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAA;KAChC;IAQM,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAE9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC7C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;YAC1C,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;SAChE;aAAM,IAAI,KAAK,IAAI,GAAG,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;SACtB;aAAM;YACH,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACrD,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAClC;IAQM,aAAa,CAChB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QACvC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAEjC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aAC/C;YACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvB,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBAC5B,MAAM,GAAG,IAAI,CAAA;aAChB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBACnC,UAAU,GAAG,IAAI,CAAA;aACpB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBACnC,SAAS,GAAG,IAAI,CAAA;aACnB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,MAAM,GAAG,IAAI,CAAA;aAChB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,MAAM,GAAG,IAAI,CAAA;aAChB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,UAAU,GAAG,IAAI,CAAA;aACpB;iBAAM;gBACH,IAAI,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aAC5C;SACJ;QACD,IAAI,CAAC,OAAO,CACR,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,CACb,CAAA;KACJ;IASM,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM,EAC3B,KAAK,GAAG,KAAK;QAEb,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAA;QAErB,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,IAAI,CAAC,WAAW,IAAI,IAAI;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAC3B;YACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClB,IAAI,CAAC,cAAc,EAAE,CAAA;SACxB;KACJ;IAID,IAAY,MAAM;QACd,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;KACtD;IAED,IAAY,WAAW;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAA;KAC3C;IAEO,cAAc,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;SACtC;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SAC3C;KACJ;IAEO,OAAO,CACX,KAAa,EACb,GAAW,EACX,MAAe,EACf,UAAmB,EACnB,SAAkB,EAClB,OAAgB,EAChB,MAAe,EACf,MAAe,EACf,UAAmB;QAEnB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,CACb,CAAA;SACJ;KACJ;IAEO,cAAc,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;SACtC;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SAC3C;KACJ;IAEO,kBAAkB,CAAC,KAAa;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;SAC1C;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,GAAW;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SAC/C;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,KAAa;QACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;SACjD;KACJ;IAEO,kBAAkB,CACtB,KAAa,EACb,GAAW,EACX,KAAa;QAEb,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;SACtD;KACJ;IAEO,YAAY,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;SACpC;KACJ;IAEO,YAAY,CAAC,KAAa,EAAE,GAAW;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SACzC;KACJ;IAEO,qBAAqB,CAAC,KAAa,EAAE,IAAmB;QAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;SACnD;KACJ;IAEO,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,IAAmB;QAEnB,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;SACxD;KACJ;IAEO,YAAY,CAChB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SAC3D;KACJ;IAEO,0BAA0B,CAC9B,KAAa,EACb,IAAgC,EAChC,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SAChE;KACJ;IAEO,0BAA0B,CAC9B,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SACrE;KACJ;IAEO,eAAe,CACnB,KAAa,EACb,GAAW,EACX,IAAqB;QAErB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;SAClD;KACJ;IAEO,uBAAuB,CAC3B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SAClE;KACJ;IAEO,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW;QAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;SACpD;KACJ;IAEO,oBAAoB,CACxB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SAC/D;KACJ;IAEO,6BAA6B,CACjC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CACvC,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,CACT,CAAA;SACJ;KACJ;IAEO,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa;QACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;SAC/C;KACJ;IAEO,eAAe,CACnB,KAAa,EACb,GAAW,EACX,GAAoB;QAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SACjD;KACJ;IAEO,qBAAqB,CAAC,KAAa,EAAE,MAAe;QACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;SACrD;KACJ;IAEO,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SAC1D;KACJ;IAEO,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW;QAEX,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SAC5D;KACJ;IAMD,IAAY,MAAM;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;KAC7B;IAED,IAAY,KAAK;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;KAC5B;IAED,IAAY,gBAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;KACvC;IAED,IAAY,aAAa;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;KACpC;IAED,IAAY,cAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;IAED,IAAY,cAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;IAEO,KAAK,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW;QACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;KACtD;IAEO,MAAM,CAAC,KAAa;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAC7B;IAEO,OAAO;QACX,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;KACzB;IAEO,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;KAC9B;IAEO,IAAI,CAAC,GAAW,EAAE,GAAW;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KACrC;IAEO,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAC1C;IAIO,KAAK,CAAC,OAAe;QACzB,MAAM,IAAI,iBAAiB,CACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,KAAK,EACV,OAAO,CACV,CAAA;KACJ;IAGO,aAAa;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB,SAAS;YACL,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,GAAG,iBAAiB,GAAG,oBAAoB,CAAA;gBAC/D,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;aACrC;YACD,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IAAI,EAAE,KAAK,cAAc,EAAE;gBAC9B,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,iBAAiB,EAAE;gBACjC,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,kBAAkB,EAAE;gBAClC,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IACH,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,OAAO;iBAC1B,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAC3C;gBACE,MAAK;aACR;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IASO,cAAc;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACtD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;QAEhC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE;YAC9B,IAAI,EAAE,KAAK,gBAAgB,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;aAC9B;YACD,IAAI,EAAE,KAAK,cAAc,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;aACrC;YACD,IAAI,EAAE,KAAK,kBAAkB,IAAI,EAAE,KAAK,iBAAiB,EAAE;gBACvD,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACzC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAA;SAC5C;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;aACjD;SACJ;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAMO,oBAAoB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,EAAE,GAAG,CAAC,CAAA;QAEV,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,CAAC,CAAC,EAAE;YACxC,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IAAI,EAAE,KAAK,cAAc,EAAE;gBAC9B,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,iBAAiB,EAAE;gBACjC,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,kBAAkB,EAAE;gBAClC,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IACH,EAAE,KAAK,eAAe;gBACtB,CAAC,OAAO;iBACP,IAAI,CAAC,aAAa,KAAK,YAAY;qBAC/B,IAAI,CAAC,cAAc,KAAK,YAAY;wBACjC,IAAI,CAAC,cAAc,KAAK,UAAU;wBAClC,IAAI,CAAC,cAAc,KAAK,eAAe,CAAC,CAAC,EACnD;gBACE,KAAK,IAAI,CAAC,CAAA;aACb;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,KAAK,CAAA;KACf;IAUO,kBAAkB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,CAAA;QAET,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC9B,GAAG;YACC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAA;SAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;QAEhC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC7C;IAUO,kBAAkB,CAAC,CAAS;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACjC,OAAO,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;SAE1D;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;KAChD;IAmBO,WAAW;QACf,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5B,QACI,IAAI,CAAC,gBAAgB,EAAE;iBACtB,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EAC3D;SACJ;QACD,QACI,CAAC,IAAI,CAAC,gBAAgB,EAAE;aACnB,CAAC,IAAI,CAAC,4BAA4B;gBAC/B,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACxC,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EACnE;KACJ;IACO,yBAAyB;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,CAAA;KACd;IAyBO,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAA;QAGzC,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC9C,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,CAAC,EAAE;YAChD,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE;YAC9C,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAC9D,OAAO,IAAI,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE;YAC1C,MAAM,UAAU,GACZ,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACtD,IAAI,MAAM,GAAG,KAAK,CAAA;YAClB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE;gBAC9D,MAAM,IAAI,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;gBACpD,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBACpD,IAAI,CAAC,kBAAkB,EAAE,CAAA;gBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;oBAC7B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;iBACnC;gBACD,IAAI,CAAC,4BAA4B,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;gBAC/D,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBAChE,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAmBO,iBAAiB,CAAC,SAAS,GAAG,KAAK;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,MAAM,GAAG,KAAK,CAAA;QAGlB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpB,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;SACjC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC3B,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;SACjC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC/B,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,CAAC,CAAA;SACV;aAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;YAC5C,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YACxB,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;SAC3B;aAAM;YACH,OAAO,KAAK,CAAA;SACf;QAGD,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAEhC,IAAI,CAAC,SAAS,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SACzD;QACD,OAAO,IAAI,CAAA;KACd;IAaO,mBAAmB,CAAC,OAAgB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAA;YAC7C,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;0BACtC,IAAI,CAAC,aAAa;0BAClB,MAAM,CAAC,iBAAiB,CAAA;iBACjC;gBACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;oBAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;wBACrD,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;qBACtD;oBACD,OAAO,IAAI,CAAA;iBACd;aACJ;YACD,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC1C,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;aACtC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAeO,WAAW;QACf,QACI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE,EAC/B;KACJ;IASO,UAAU;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACzD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IASO,+BAA+B;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBAC1B,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IASO,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;aACnC;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACpC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IASO,qBAAqB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YAC3B,IAAI,IAAI,GAAkB,IAAI,CAAA;YAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC1B,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;oBAC9B,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;iBAC5B;aACJ;iBAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE;gBAC/C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;aAC9B;YAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;aACnC;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAEnD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAkBO,mBAAmB;QACvB,QACI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,gCAAgC,EAAE;YACvC,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,8BAA8B,EAAE;YACrC,IAAI,CAAC,+BAA+B,EAAE,EACzC;KACJ;IASO,gCAAgC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,gBAAgB,KAAK,cAAc;YACxC,IAAI,CAAC,aAAa,KAAK,iBAAiB,EAC1C;YACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;YACnD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAaO,8BAA8B;QAClC,IAAI,IAAI,CAAC,mBAAmB,CAAgB,IAAI,CAAC,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;SAClC;QACD,OAAO,KAAK,CAAA;KACf;IAWO,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAWO,+BAA+B;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IACI,EAAE,KAAK,CAAC,CAAC;YACT,EAAE,KAAK,gBAAgB;YACvB,EAAE,KAAK,UAAU;YACjB,EAAE,KAAK,cAAc;YACrB,EAAE,KAAK,QAAQ;YACf,EAAE,KAAK,QAAQ;YACf,EAAE,KAAK,QAAQ;YACf,EAAE,KAAK,YAAY;YACnB,EAAE,KAAK,eAAe;YACtB,EAAE,KAAK,gBAAgB;YACvB,EAAE,KAAK,iBAAiB;YACxB,EAAE,KAAK,YAAY,EACrB;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;oBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;oBACxC,OAAO,IAAI,CAAA;iBACd;gBACD,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;aAC7C;YACD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;SAC9B;QACD,OAAO,KAAK,CAAA;KACf;IAiBO,iBAAiB;QACrB,IACI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,CAAC,sBAAsB,EAAE;aAC5B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAC3C;YACE,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;SAC/B;QACD,OAAO,KAAK,CAAA;KACf;IAWO,oBAAoB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;YAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC9C,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;aAC/B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAoBO,2BAA2B;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAChE,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAChE,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC9D,OAAO,IAAI,CAAA;SACd;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IACI,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,WAAW,IAAI,IAAI;aACvB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;iBACvB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAC/C;YACE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IACI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBAC1B,IAAI,CAAC,iCAAiC,EAAE;gBACxC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAC7B;gBACE,IAAI,CAAC,6BAA6B,CAC9B,KAAK,GAAG,CAAC,EACT,IAAI,CAAC,KAAK,EACV,UAAU,EACV,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,IAAI,IAAI,EAC1B,MAAM,CACT,CAAA;gBACD,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;SACtC;QAED,OAAO,KAAK,CAAA;KACf;IAiBO,sBAAsB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,8BAA8B,EAAE;aACpC,CAAC,IAAI,CAAC,MAAM;gBACT,CAAC,IAAI,CAAC,MAAM;gBACZ,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,EAAE,EAC1B;YACE,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IASO,iBAAiB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;gBACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACvC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;gBACtD,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;SACxC;QACD,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YACzC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACzC,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;aAC7C;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACrD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAkBO,kBAAkB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;QACzC,SAAS;YAEL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;aACR;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YAG9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBACxB,SAAQ;aACX;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAGzD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;aACR;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YAG9B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBAC1B,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;iBACxC;gBACD,SAAQ;aACX;YACD,IAAI,GAAG,GAAG,GAAG,EAAE;gBACX,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;aACtD;YAED,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SAC/D;KACJ;IAiBO,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAEhC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,IAAI,EAAE,KAAK,kBAAkB,EAAE;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YACvD,OAAO,IAAI,CAAA;SACd;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;gBAC3B,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,iBAAiB,EAAE;gBAC7D,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;gBACnC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;gBACvD,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;aAC/B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAmBO,kBAAkB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAGxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACtC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;YAChC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QAGD,IAAI,EAAE,GAAG,CAAC,CAAA;QACV,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,CAAC,IAAI,CAAC,MAAM;YACZ,IAAI,CAAC,gBAAgB,KAAK,iBAAiB;aAC1C,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,EAC/D;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QAED,QACI,IAAI,CAAC,2BAA2B,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,EACtE;KACJ;IAWO,YAAY;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;gBAC7D,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC3C;QACD,OAAO,KAAK,CAAA;KACf;IAaO,uBAAuB;QAC3B,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBACnC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;aACjE;YACD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAgBO,wBAAwB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC3D,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,cAAc;YACrB,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;YACE,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;SAC1B;aAAM,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,IAAI,uBAAuB,CAAC,EAAE,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,OAAO,IAAI,CAAA;SACd;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAkBO,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC3D,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,cAAc;YACrB,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;YACE,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;SAC1B;aAAM,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,IAAI,sBAAsB,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,OAAO,IAAI,CAAA;SACd;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAUO,iBAAiB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAUO,OAAO;QACX,IACI,IAAI,CAAC,gBAAgB,KAAK,SAAS;YACnC,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACrC;YACE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAYO,gBAAgB;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAA;YAC7B,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAA;YAC7B,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;YACnC,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAA;YACxC,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;YACnC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAaO,gBAAgB;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;YAC9B,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAiBO,8BAA8B,CAAC,UAAU,GAAG,KAAK;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,CAAA;QAEvC,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IACI,CAAC,KAAK,IAAI,IAAI,CAAC,mCAAmC,EAAE;gBACpD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;iBACxB,KAAK,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC,EACnD;gBACE,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;gBACtB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;aACvC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAUO,mCAAmC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;YAC/B,IACI,eAAe,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAC3B;gBACE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;gBAChC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;oBACtD,OAAO,IAAI,CAAA;iBACd;aACJ;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAUO,+BAA+B;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IACI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACpC;YACE,OAAO,IAAI,CAAA;SACd;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,KAAK,CAAA;KACf;IAkBO,iBAAiB;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IACO,qBAAqB,CAAC,EAAU;QACpC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;YACX,OAAO,KAAK,CAAA;SACf;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAA;SACjD;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;SAC3B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,EAAE,EAAE,KAAK,iBAAiB,IAAI,EAAE,KAAK,iBAAiB,CAAC,CAAA;SACjE;QACD,OAAO,EAAE,KAAK,iBAAiB,CAAA;KAClC;IAYO,gBAAgB;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,IAAI,SAAS,EAAE;YACnC,GAAG;gBACC,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,GAAG,SAAS,CAAC,CAAA;gBAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;aACjB,QACG,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,KAAK,SAAS;gBACzC,EAAE,IAAI,SAAS,EAClB;YACD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAcO,iCAAiC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAGxB,IAAI,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;YACvC,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;gBACvC,IACI,sBAAsB,CAClB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,CACrB,EACH;oBACE,OAAO,IAAI,CAAA;iBACd;gBACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;aACtC;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAGlB,IAAI,IAAI,CAAC,iCAAiC,EAAE,EAAE;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;YACtC,IACI,sBAAsB,CAClB,IAAI,CAAC,WAAW,EAChB,kBAAkB,EAClB,WAAW,CACd,EACH;gBACE,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAA;gBACvC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;gBAChC,OAAO,IAAI,CAAA;aACd;YACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;gBAC3D,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;gBAChC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;gBACvB,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;SACtC;QACD,OAAO,KAAK,CAAA;KACf;IAYO,sBAAsB;QAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,OAAO,8BAA8B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC1D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,uBAAuB;QAC3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,OAAO,+BAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC3D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,iCAAiC;QACrC,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAA;KACxC;IAaO,oBAAoB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;gBAC3B,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;aAC/B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAcO,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,OAAO,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC1C,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAcO,YAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,OAAO,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACtC,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAoBO,4BAA4B;QAChC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;YAC7B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBACtB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;oBACjC,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;iBAC7D;qBAAM;oBACH,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;iBACnC;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;aAC1B;YACD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAWO,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,SAAS,CAAA;YACnC,OAAO,IAAI,CAAA;SACd;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,OAAO,KAAK,CAAA;KACf;IAYO,iBAAiB,CAAC,MAAc;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAClB,OAAO,KAAK,CAAA;aACf;YACD,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAA;KACd;CACJ;;ACh5ED,MAAM,YAAY,GAAY,EAAS,CAAA;AACvC,MAAM,UAAU,GAAU,EAAS,CAAA;AACnC,MAAM,mBAAmB,GAAmB,EAAS,CAAA;AAErD,MAAM,iBAAiB;IAUnB,YAAmB,OAA8B;QAPzC,UAAK,GAAmB,YAAY,CAAA;QACpC,WAAM,GAAU,UAAU,CAAA;QAC1B,oBAAe,GAAoB,EAAE,CAAA;QACrC,qBAAgB,GAAqB,EAAE,CAAA;QAExC,WAAM,GAAG,EAAE,CAAA;QAGd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAA;KAC9D;IAED,IAAW,OAAO;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KACpB;IAED,IAAW,KAAK;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;KACrB;IAEM,OAAO,CACV,KAAa,EACb,GAAW,EACX,MAAe,EACf,UAAmB,EACnB,SAAkB,EAClB,OAAgB,EAChB,MAAe,EACf,MAAe,EACf,UAAmB;QAEnB,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,MAAM;YACN,UAAU;YACV,SAAS;YACT,OAAO;YACP,MAAM;YACN,MAAM;YACN,UAAU;SACb,CAAA;KACJ;IAEM,cAAc,CAAC,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;KACnC;IAEM,cAAc,CAAC,KAAa,EAAE,GAAW;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAE9C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;YACzB,MAAM,KAAK,GACP,OAAO,GAAG,KAAK,QAAQ;kBACjB,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;kBAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAE,CAAA;YAC1D,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAA;YAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACnC;KACJ;IAEM,kBAAkB,CAAC,KAAa;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IACI,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3B,MAAM,CAAC,IAAI,KAAK,gBAAgB;YAChC,MAAM,CAAC,IAAI,KAAK,OAAO;YACvB,MAAM,CAAC,IAAI,KAAK,SAAS,EAC3B;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,aAAa;YACnB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvC;IAEM,kBAAkB,CAAC,KAAa,EAAE,GAAW;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,YAAY,CAAC,KAAa;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,OAAO;YACb,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,YAAY,CAAC,KAAa,EAAE,GAAW;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,qBAAqB,CAAC,KAAa,EAAE,IAAmB;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,IAAI;YACJ,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;SACjB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EACpC;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,YAAY,CACf,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAGD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACrC,IACI,OAAO,IAAI,IAAI;YACf,OAAO,CAAC,IAAI,KAAK,YAAY;aAC5B,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,EAChE;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,GAAe;YACrB,IAAI,EAAE,YAAY;YAClB,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YAC1C,GAAG;YACH,GAAG;YACH,MAAM;YACN,OAAO;SACV,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;KACxB;IAEM,0BAA0B,CAC7B,KAAa,EACb,IAAgC,EAChC,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,IAAyB,IAAI,CAAC,KAAK,GAAG;YAC5C,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,IAAI;YACJ,MAAM;YACN,YAAY,EAAE,EAAE;SACnB,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;IAEM,0BAA0B,CAAC,KAAa,EAAE,GAAW;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,eAAe,CAClB,KAAa,EACb,GAAW,EACX,IAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;SACP,CAAC,CAAA;KACL;IAEM,uBAAuB,CAC1B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;SACT,CAAC,CAAA;KACL;IAEM,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;SACP,CAAC,CAAA;KACL;IAEM,oBAAoB,CACvB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAEC,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;YAC/C,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;SACT,CAAC,CAAA;KACL;IAEM,6BAA6B,CAChC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAEC,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;YAC/C,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,GAAG;YACH,KAAK;YACL,MAAM;SACT,CAAC,CAAA;KACL;IAEM,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAEC,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;YAC/C,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,KAAK;SACR,CAAC,CAAA;KACL;IAEM,eAAe,CAClB,KAAa,EACb,GAAW,EACX,GAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,GAAkB;YACxB,IAAI,EAAE,eAAe;YACrB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;YACH,QAAQ,EAAE,mBAAmB;SAChC,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAClC;IAEM,qBAAqB,CAAC,KAAa,EAAE,MAAe;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,MAAM;YACN,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EACpC;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAGD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,IACI,CAAC,GAAG;YACJ,CAAC,GAAG;YACJ,CAAC,MAAM;YACP,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3B,MAAM,CAAC,KAAK,KAAK,WAAW,EAC9B;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,GAAwB;YAC9B,IAAI,EAAE,qBAAqB;YAC3B,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;YACH,GAAG;SACN,CAAA;QACD,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;QACjB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;QACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACtB;CACJ;AAwBD,MAAa,YAAY;IAQrB,YAAmB,OAA8B;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACrD;IASM,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;QAC/B,MAAM,OAAO,GAAkB;YAC3B,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;YACH,GAAG,EAAE,MAAM;YACX,OAAO;YACP,KAAK;SACR,CAAA;QACD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAA;QACxB,KAAK,CAAC,MAAM,GAAG,OAAO,CAAA;QACtB,OAAO,OAAO,CAAA;KACjB;IASM,UAAU,CACb,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;KAC3B;IAUM,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM,EAC3B,KAAK,GAAG,KAAK;QAEb,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;KAC7B;CACJ;;MC/jBY,aAAa;IAOtB,YAAmB,QAAgC;QAC/C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;KAC5B;IAMM,KAAK,CAAC,IAAU;QACnB,QAAQ,IAAI,CAAC,IAAI;YACb,KAAK,aAAa;gBACd,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC3B,MAAK;YACT,KAAK,WAAW;gBACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;YACT,KAAK,eAAe;gBAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;YACT,KAAK,gBAAgB;gBACjB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;YACT,KAAK,WAAW;gBACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;YACT,KAAK,gBAAgB;gBACjB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;YACT,KAAK,qBAAqB;gBACtB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;gBACnC,MAAK;YACT,KAAK,cAAc;gBACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBAC5B,MAAK;YACT,KAAK,OAAO;gBACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;YACT,KAAK,OAAO;gBACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;YACT,KAAK,SAAS;gBACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACvB,MAAK;YACT,KAAK,YAAY;gBACb,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;gBAC1B,MAAK;YACT,KAAK,eAAe;gBAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;YACT;gBACI,MAAM,IAAI,KAAK,CAAC,iBAAkB,IAAY,CAAC,IAAI,EAAE,CAAC,CAAA;SAC7D;KACJ;IAEO,gBAAgB,CAAC,IAAiB;QACtC,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;SAC1C;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;SAC1C;KACJ;IACO,cAAc,CAAC,IAAe;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;SAC9C;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;KACJ;IACO,kBAAkB,CAAC,IAAmB;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;KACJ;IACO,mBAAmB,CAAC,IAAoB;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;KACJ;IACO,cAAc,CAAC,IAAe;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;KACJ;IACO,mBAAmB,CAAC,IAAoB;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;KACJ;IACO,wBAAwB,CAAC,IAAyB;QACtD,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;SAClD;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;SAClD;KACJ;IACO,iBAAiB,CAAC,IAAkB;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;SAC3C;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;SAC3C;KACJ;IACO,UAAU,CAAC,IAAW;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;KACJ;IACO,UAAU,CAAC,IAAW;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;KACJ;IACO,YAAY,CAAC,IAAa;QAC9B,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;SACtC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;SACtC;KACJ;IACO,eAAe,CAAC,IAAgB;QACpC,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACzC;KACJ;IACO,kBAAkB,CAAC,IAAmB;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;KACJ;CACJ;;SCzLe,kBAAkB,CAC9B,MAAuB,EACvB,OAA8B;IAE9B,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;CAChE;AAOD,SAAgB,qBAAqB,CACjC,MAAc,EACd,OAAiC;IAEjC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;CAC9D;AAED,SAAgB,cAAc,CAC1B,IAAc,EACd,QAAgC;IAEhC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;CAC1C;;;;;;;;;"} \ No newline at end of file diff --git a/node_modules/regexpp/index.mjs b/node_modules/regexpp/index.mjs new file mode 100644 index 0000000..bc1f59c --- /dev/null +++ b/node_modules/regexpp/index.mjs @@ -0,0 +1,2087 @@ +/*! @author Toru Nagashima */ + + +var ast = /*#__PURE__*/Object.freeze({ + +}); + +let largeIdStartRanges = undefined; +let largeIdContinueRanges = undefined; +function isIdStart(cp) { + if (cp < 0x41) + return false; + if (cp < 0x5b) + return true; + if (cp < 0x61) + return false; + if (cp < 0x7b) + return true; + return isLargeIdStart(cp); +} +function isIdContinue(cp) { + if (cp < 0x30) + return false; + if (cp < 0x3a) + return true; + if (cp < 0x41) + return false; + if (cp < 0x5b) + return true; + if (cp === 0x5f) + return true; + if (cp < 0x61) + return false; + if (cp < 0x7b) + return true; + return isLargeIdStart(cp) || isLargeIdContinue(cp); +} +function isLargeIdStart(cp) { + return isInRange(cp, largeIdStartRanges || (largeIdStartRanges = initLargeIdStartRanges())); +} +function isLargeIdContinue(cp) { + return isInRange(cp, largeIdContinueRanges || + (largeIdContinueRanges = initLargeIdContinueRanges())); +} +function initLargeIdStartRanges() { + return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 1i k 2 h 1p 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 6 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 x 0 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 c 2 3 f h f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 6 1k t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 1a 2 1a 2 3o 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t g70 4 wc 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1g 3 8 17 c 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f 4d 8m a l b 7 49 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 2z k s m d 1g 24 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o 2d 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 6e 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 z 1k 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i 5a 0 28 pl 2v 32 i 5f 24d tq 34i g6 6nu fs 8 u 36 t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6wo 7y 1e 2 i 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1th 18 b 6 h 0 aa 17 105 5g 1o 1v 8 0 xh 3 2 q 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 g 6 2 2 4 2 g 3et wyl z 378 c 65 3 4g1 f 5rk 2e8 f1 15v 3t6"); +} +function initLargeIdContinueRanges() { + return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 3c e 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1m 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 h 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 5 3 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 2 u 2 u 1 v 1 1t v a 0 3 9 y 2 3 9 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 1 1s 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1l 2 4 g0 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 n7q 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 ji 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 4a a 4w 2 1i e w 9 g 3 1a a 1i 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 4h b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 ewa 9 3r 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 43r 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 7a 6 a 9 bn d 15j 6 32 6 6 9 3o7 9 gvt3 6n"); +} +function isInRange(cp, ranges) { + let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; + while (l < r) { + i = ((l + r) / 2) | 0; + min = ranges[2 * i]; + max = ranges[2 * i + 1]; + if (cp < min) { + r = i; + } + else if (cp > max) { + l = i + 1; + } + else { + return true; + } + } + return false; +} +function restoreRanges(data) { + let last = 0; + return data.split(" ").map(s => (last += parseInt(s, 36) | 0)); +} + +class DataSet { + constructor(raw2018, raw2019, raw2020, raw2021) { + this._raw2018 = raw2018; + this._raw2019 = raw2019; + this._raw2020 = raw2020; + this._raw2021 = raw2021; + } + get es2018() { + return (this._set2018 || (this._set2018 = new Set(this._raw2018.split(" ")))); + } + get es2019() { + return (this._set2019 || (this._set2019 = new Set(this._raw2019.split(" ")))); + } + get es2020() { + return (this._set2020 || (this._set2020 = new Set(this._raw2020.split(" ")))); + } + get es2021() { + return (this._set2021 || (this._set2021 = new Set(this._raw2021.split(" ")))); + } +} +const gcNameSet = new Set(["General_Category", "gc"]); +const scNameSet = new Set(["Script", "Script_Extensions", "sc", "scx"]); +const gcValueSets = new DataSet("C Cased_Letter Cc Cf Close_Punctuation Cn Co Combining_Mark Connector_Punctuation Control Cs Currency_Symbol Dash_Punctuation Decimal_Number Enclosing_Mark Final_Punctuation Format Initial_Punctuation L LC Letter Letter_Number Line_Separator Ll Lm Lo Lowercase_Letter Lt Lu M Mark Math_Symbol Mc Me Mn Modifier_Letter Modifier_Symbol N Nd Nl No Nonspacing_Mark Number Open_Punctuation Other Other_Letter Other_Number Other_Punctuation Other_Symbol P Paragraph_Separator Pc Pd Pe Pf Pi Po Private_Use Ps Punctuation S Sc Separator Sk Sm So Space_Separator Spacing_Mark Surrogate Symbol Titlecase_Letter Unassigned Uppercase_Letter Z Zl Zp Zs cntrl digit punct", "", "", ""); +const scValueSets = new DataSet("Adlam Adlm Aghb Ahom Anatolian_Hieroglyphs Arab Arabic Armenian Armi Armn Avestan Avst Bali Balinese Bamu Bamum Bass Bassa_Vah Batak Batk Beng Bengali Bhaiksuki Bhks Bopo Bopomofo Brah Brahmi Brai Braille Bugi Buginese Buhd Buhid Cakm Canadian_Aboriginal Cans Cari Carian Caucasian_Albanian Chakma Cham Cher Cherokee Common Copt Coptic Cprt Cuneiform Cypriot Cyrillic Cyrl Deseret Deva Devanagari Dsrt Dupl Duployan Egyp Egyptian_Hieroglyphs Elba Elbasan Ethi Ethiopic Geor Georgian Glag Glagolitic Gonm Goth Gothic Gran Grantha Greek Grek Gujarati Gujr Gurmukhi Guru Han Hang Hangul Hani Hano Hanunoo Hatr Hatran Hebr Hebrew Hira Hiragana Hluw Hmng Hung Imperial_Aramaic Inherited Inscriptional_Pahlavi Inscriptional_Parthian Ital Java Javanese Kaithi Kali Kana Kannada Katakana Kayah_Li Khar Kharoshthi Khmer Khmr Khoj Khojki Khudawadi Knda Kthi Lana Lao Laoo Latin Latn Lepc Lepcha Limb Limbu Lina Linb Linear_A Linear_B Lisu Lyci Lycian Lydi Lydian Mahajani Mahj Malayalam Mand Mandaic Mani Manichaean Marc Marchen Masaram_Gondi Meetei_Mayek Mend Mende_Kikakui Merc Mero Meroitic_Cursive Meroitic_Hieroglyphs Miao Mlym Modi Mong Mongolian Mro Mroo Mtei Mult Multani Myanmar Mymr Nabataean Narb Nbat New_Tai_Lue Newa Nko Nkoo Nshu Nushu Ogam Ogham Ol_Chiki Olck Old_Hungarian Old_Italic Old_North_Arabian Old_Permic Old_Persian Old_South_Arabian Old_Turkic Oriya Orkh Orya Osage Osge Osma Osmanya Pahawh_Hmong Palm Palmyrene Pau_Cin_Hau Pauc Perm Phag Phags_Pa Phli Phlp Phnx Phoenician Plrd Prti Psalter_Pahlavi Qaac Qaai Rejang Rjng Runic Runr Samaritan Samr Sarb Saur Saurashtra Sgnw Sharada Shavian Shaw Shrd Sidd Siddham SignWriting Sind Sinh Sinhala Sora Sora_Sompeng Soyo Soyombo Sund Sundanese Sylo Syloti_Nagri Syrc Syriac Tagalog Tagb Tagbanwa Tai_Le Tai_Tham Tai_Viet Takr Takri Tale Talu Tamil Taml Tang Tangut Tavt Telu Telugu Tfng Tglg Thaa Thaana Thai Tibetan Tibt Tifinagh Tirh Tirhuta Ugar Ugaritic Vai Vaii Wara Warang_Citi Xpeo Xsux Yi Yiii Zanabazar_Square Zanb Zinh Zyyy", "Dogr Dogra Gong Gunjala_Gondi Hanifi_Rohingya Maka Makasar Medefaidrin Medf Old_Sogdian Rohg Sogd Sogdian Sogo", "Elym Elymaic Hmnp Nand Nandinagari Nyiakeng_Puachue_Hmong Wancho Wcho", "Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"); +const binPropertySets = new DataSet("AHex ASCII ASCII_Hex_Digit Alpha Alphabetic Any Assigned Bidi_C Bidi_Control Bidi_M Bidi_Mirrored CI CWCF CWCM CWKCF CWL CWT CWU Case_Ignorable Cased Changes_When_Casefolded Changes_When_Casemapped Changes_When_Lowercased Changes_When_NFKC_Casefolded Changes_When_Titlecased Changes_When_Uppercased DI Dash Default_Ignorable_Code_Point Dep Deprecated Dia Diacritic Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Ext Extender Gr_Base Gr_Ext Grapheme_Base Grapheme_Extend Hex Hex_Digit IDC IDS IDSB IDST IDS_Binary_Operator IDS_Trinary_Operator ID_Continue ID_Start Ideo Ideographic Join_C Join_Control LOE Logical_Order_Exception Lower Lowercase Math NChar Noncharacter_Code_Point Pat_Syn Pat_WS Pattern_Syntax Pattern_White_Space QMark Quotation_Mark RI Radical Regional_Indicator SD STerm Sentence_Terminal Soft_Dotted Term Terminal_Punctuation UIdeo Unified_Ideograph Upper Uppercase VS Variation_Selector White_Space XIDC XIDS XID_Continue XID_Start space", "Extended_Pictographic", "", "EBase EComp EMod EPres ExtPict"); +function isValidUnicodeProperty(version, name, value) { + if (gcNameSet.has(name)) { + return version >= 2018 && gcValueSets.es2018.has(value); + } + if (scNameSet.has(name)) { + return ((version >= 2018 && scValueSets.es2018.has(value)) || + (version >= 2019 && scValueSets.es2019.has(value)) || + (version >= 2020 && scValueSets.es2020.has(value)) || + (version >= 2021 && scValueSets.es2021.has(value))); + } + return false; +} +function isValidLoneUnicodeProperty(version, value) { + return ((version >= 2018 && binPropertySets.es2018.has(value)) || + (version >= 2019 && binPropertySets.es2019.has(value)) || + (version >= 2021 && binPropertySets.es2021.has(value))); +} + +const Backspace = 0x08; +const CharacterTabulation = 0x09; +const LineFeed = 0x0a; +const LineTabulation = 0x0b; +const FormFeed = 0x0c; +const CarriageReturn = 0x0d; +const ExclamationMark = 0x21; +const DollarSign = 0x24; +const LeftParenthesis = 0x28; +const RightParenthesis = 0x29; +const Asterisk = 0x2a; +const PlusSign = 0x2b; +const Comma = 0x2c; +const HyphenMinus = 0x2d; +const FullStop = 0x2e; +const Solidus = 0x2f; +const DigitZero = 0x30; +const DigitOne = 0x31; +const DigitSeven = 0x37; +const DigitNine = 0x39; +const Colon = 0x3a; +const LessThanSign = 0x3c; +const EqualsSign = 0x3d; +const GreaterThanSign = 0x3e; +const QuestionMark = 0x3f; +const LatinCapitalLetterA = 0x41; +const LatinCapitalLetterB = 0x42; +const LatinCapitalLetterD = 0x44; +const LatinCapitalLetterF = 0x46; +const LatinCapitalLetterP = 0x50; +const LatinCapitalLetterS = 0x53; +const LatinCapitalLetterW = 0x57; +const LatinCapitalLetterZ = 0x5a; +const LowLine = 0x5f; +const LatinSmallLetterA = 0x61; +const LatinSmallLetterB = 0x62; +const LatinSmallLetterC = 0x63; +const LatinSmallLetterD = 0x64; +const LatinSmallLetterF = 0x66; +const LatinSmallLetterG = 0x67; +const LatinSmallLetterI = 0x69; +const LatinSmallLetterK = 0x6b; +const LatinSmallLetterM = 0x6d; +const LatinSmallLetterN = 0x6e; +const LatinSmallLetterP = 0x70; +const LatinSmallLetterR = 0x72; +const LatinSmallLetterS = 0x73; +const LatinSmallLetterT = 0x74; +const LatinSmallLetterU = 0x75; +const LatinSmallLetterV = 0x76; +const LatinSmallLetterW = 0x77; +const LatinSmallLetterX = 0x78; +const LatinSmallLetterY = 0x79; +const LatinSmallLetterZ = 0x7a; +const LeftSquareBracket = 0x5b; +const ReverseSolidus = 0x5c; +const RightSquareBracket = 0x5d; +const CircumflexAccent = 0x5e; +const LeftCurlyBracket = 0x7b; +const VerticalLine = 0x7c; +const RightCurlyBracket = 0x7d; +const ZeroWidthNonJoiner = 0x200c; +const ZeroWidthJoiner = 0x200d; +const LineSeparator = 0x2028; +const ParagraphSeparator = 0x2029; +const MinCodePoint = 0x00; +const MaxCodePoint = 0x10ffff; +function isLatinLetter(code) { + return ((code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) || + (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)); +} +function isDecimalDigit(code) { + return code >= DigitZero && code <= DigitNine; +} +function isOctalDigit(code) { + return code >= DigitZero && code <= DigitSeven; +} +function isHexDigit(code) { + return ((code >= DigitZero && code <= DigitNine) || + (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) || + (code >= LatinSmallLetterA && code <= LatinSmallLetterF)); +} +function isLineTerminator(code) { + return (code === LineFeed || + code === CarriageReturn || + code === LineSeparator || + code === ParagraphSeparator); +} +function isValidUnicode(code) { + return code >= MinCodePoint && code <= MaxCodePoint; +} +function digitToInt(code) { + if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) { + return code - LatinSmallLetterA + 10; + } + if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) { + return code - LatinCapitalLetterA + 10; + } + return code - DigitZero; +} +function isLeadSurrogate(code) { + return code >= 0xd800 && code <= 0xdbff; +} +function isTrailSurrogate(code) { + return code >= 0xdc00 && code <= 0xdfff; +} +function combineSurrogatePair(lead, trail) { + return (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000; +} + +const legacyImpl = { + at(s, end, i) { + return i < end ? s.charCodeAt(i) : -1; + }, + width(c) { + return 1; + }, +}; +const unicodeImpl = { + at(s, end, i) { + return i < end ? s.codePointAt(i) : -1; + }, + width(c) { + return c > 0xffff ? 2 : 1; + }, +}; +class Reader { + constructor() { + this._impl = legacyImpl; + this._s = ""; + this._i = 0; + this._end = 0; + this._cp1 = -1; + this._w1 = 1; + this._cp2 = -1; + this._w2 = 1; + this._cp3 = -1; + this._w3 = 1; + this._cp4 = -1; + } + get source() { + return this._s; + } + get index() { + return this._i; + } + get currentCodePoint() { + return this._cp1; + } + get nextCodePoint() { + return this._cp2; + } + get nextCodePoint2() { + return this._cp3; + } + get nextCodePoint3() { + return this._cp4; + } + reset(source, start, end, uFlag) { + this._impl = uFlag ? unicodeImpl : legacyImpl; + this._s = source; + this._end = end; + this.rewind(start); + } + rewind(index) { + const impl = this._impl; + this._i = index; + this._cp1 = impl.at(this._s, this._end, index); + this._w1 = impl.width(this._cp1); + this._cp2 = impl.at(this._s, this._end, index + this._w1); + this._w2 = impl.width(this._cp2); + this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2); + this._w3 = impl.width(this._cp3); + this._cp4 = impl.at(this._s, this._end, index + this._w1 + this._w2 + this._w3); + } + advance() { + if (this._cp1 !== -1) { + const impl = this._impl; + this._i += this._w1; + this._cp1 = this._cp2; + this._w1 = this._w2; + this._cp2 = this._cp3; + this._w2 = impl.width(this._cp2); + this._cp3 = this._cp4; + this._w3 = impl.width(this._cp3); + this._cp4 = impl.at(this._s, this._end, this._i + this._w1 + this._w2 + this._w3); + } + } + eat(cp) { + if (this._cp1 === cp) { + this.advance(); + return true; + } + return false; + } + eat2(cp1, cp2) { + if (this._cp1 === cp1 && this._cp2 === cp2) { + this.advance(); + this.advance(); + return true; + } + return false; + } + eat3(cp1, cp2, cp3) { + if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) { + this.advance(); + this.advance(); + this.advance(); + return true; + } + return false; + } +} + +class RegExpSyntaxError extends SyntaxError { + constructor(source, uFlag, index, message) { + if (source) { + if (!source.startsWith("/")) { + source = `/${source}/${uFlag ? "u" : ""}`; + } + source = `: ${source}`; + } + super(`Invalid regular expression${source}: ${message}`); + this.index = index; + } +} + +function isSyntaxCharacter(cp) { + return (cp === CircumflexAccent || + cp === DollarSign || + cp === ReverseSolidus || + cp === FullStop || + cp === Asterisk || + cp === PlusSign || + cp === QuestionMark || + cp === LeftParenthesis || + cp === RightParenthesis || + cp === LeftSquareBracket || + cp === RightSquareBracket || + cp === LeftCurlyBracket || + cp === RightCurlyBracket || + cp === VerticalLine); +} +function isRegExpIdentifierStart(cp) { + return isIdStart(cp) || cp === DollarSign || cp === LowLine; +} +function isRegExpIdentifierPart(cp) { + return (isIdContinue(cp) || + cp === DollarSign || + cp === LowLine || + cp === ZeroWidthNonJoiner || + cp === ZeroWidthJoiner); +} +function isUnicodePropertyNameCharacter(cp) { + return isLatinLetter(cp) || cp === LowLine; +} +function isUnicodePropertyValueCharacter(cp) { + return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp); +} +class RegExpValidator { + constructor(options) { + this._reader = new Reader(); + this._uFlag = false; + this._nFlag = false; + this._lastIntValue = 0; + this._lastMinValue = 0; + this._lastMaxValue = 0; + this._lastStrValue = ""; + this._lastKeyValue = ""; + this._lastValValue = ""; + this._lastAssertionIsQuantifiable = false; + this._numCapturingParens = 0; + this._groupNames = new Set(); + this._backreferenceNames = new Set(); + this._options = options || {}; + } + validateLiteral(source, start = 0, end = source.length) { + this._uFlag = this._nFlag = false; + this.reset(source, start, end); + this.onLiteralEnter(start); + if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) { + const flagStart = this.index; + const uFlag = source.includes("u", flagStart); + this.validateFlags(source, flagStart, end); + this.validatePattern(source, start + 1, flagStart - 1, uFlag); + } + else if (start >= end) { + this.raise("Empty"); + } + else { + const c = String.fromCodePoint(this.currentCodePoint); + this.raise(`Unexpected character '${c}'`); + } + this.onLiteralLeave(start, end); + } + validateFlags(source, start = 0, end = source.length) { + const existingFlags = new Set(); + let global = false; + let ignoreCase = false; + let multiline = false; + let sticky = false; + let unicode = false; + let dotAll = false; + let hasIndices = false; + for (let i = start; i < end; ++i) { + const flag = source.charCodeAt(i); + if (existingFlags.has(flag)) { + this.raise(`Duplicated flag '${source[i]}'`); + } + existingFlags.add(flag); + if (flag === LatinSmallLetterG) { + global = true; + } + else if (flag === LatinSmallLetterI) { + ignoreCase = true; + } + else if (flag === LatinSmallLetterM) { + multiline = true; + } + else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) { + unicode = true; + } + else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) { + sticky = true; + } + else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) { + dotAll = true; + } + else if (flag === LatinSmallLetterD && this.ecmaVersion >= 2022) { + hasIndices = true; + } + else { + this.raise(`Invalid flag '${source[i]}'`); + } + } + this.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices); + } + validatePattern(source, start = 0, end = source.length, uFlag = false) { + this._uFlag = uFlag && this.ecmaVersion >= 2015; + this._nFlag = uFlag && this.ecmaVersion >= 2018; + this.reset(source, start, end); + this.consumePattern(); + if (!this._nFlag && + this.ecmaVersion >= 2018 && + this._groupNames.size > 0) { + this._nFlag = true; + this.rewind(start); + this.consumePattern(); + } + } + get strict() { + return Boolean(this._options.strict || this._uFlag); + } + get ecmaVersion() { + return this._options.ecmaVersion || 2022; + } + onLiteralEnter(start) { + if (this._options.onLiteralEnter) { + this._options.onLiteralEnter(start); + } + } + onLiteralLeave(start, end) { + if (this._options.onLiteralLeave) { + this._options.onLiteralLeave(start, end); + } + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices) { + if (this._options.onFlags) { + this._options.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices); + } + } + onPatternEnter(start) { + if (this._options.onPatternEnter) { + this._options.onPatternEnter(start); + } + } + onPatternLeave(start, end) { + if (this._options.onPatternLeave) { + this._options.onPatternLeave(start, end); + } + } + onDisjunctionEnter(start) { + if (this._options.onDisjunctionEnter) { + this._options.onDisjunctionEnter(start); + } + } + onDisjunctionLeave(start, end) { + if (this._options.onDisjunctionLeave) { + this._options.onDisjunctionLeave(start, end); + } + } + onAlternativeEnter(start, index) { + if (this._options.onAlternativeEnter) { + this._options.onAlternativeEnter(start, index); + } + } + onAlternativeLeave(start, end, index) { + if (this._options.onAlternativeLeave) { + this._options.onAlternativeLeave(start, end, index); + } + } + onGroupEnter(start) { + if (this._options.onGroupEnter) { + this._options.onGroupEnter(start); + } + } + onGroupLeave(start, end) { + if (this._options.onGroupLeave) { + this._options.onGroupLeave(start, end); + } + } + onCapturingGroupEnter(start, name) { + if (this._options.onCapturingGroupEnter) { + this._options.onCapturingGroupEnter(start, name); + } + } + onCapturingGroupLeave(start, end, name) { + if (this._options.onCapturingGroupLeave) { + this._options.onCapturingGroupLeave(start, end, name); + } + } + onQuantifier(start, end, min, max, greedy) { + if (this._options.onQuantifier) { + this._options.onQuantifier(start, end, min, max, greedy); + } + } + onLookaroundAssertionEnter(start, kind, negate) { + if (this._options.onLookaroundAssertionEnter) { + this._options.onLookaroundAssertionEnter(start, kind, negate); + } + } + onLookaroundAssertionLeave(start, end, kind, negate) { + if (this._options.onLookaroundAssertionLeave) { + this._options.onLookaroundAssertionLeave(start, end, kind, negate); + } + } + onEdgeAssertion(start, end, kind) { + if (this._options.onEdgeAssertion) { + this._options.onEdgeAssertion(start, end, kind); + } + } + onWordBoundaryAssertion(start, end, kind, negate) { + if (this._options.onWordBoundaryAssertion) { + this._options.onWordBoundaryAssertion(start, end, kind, negate); + } + } + onAnyCharacterSet(start, end, kind) { + if (this._options.onAnyCharacterSet) { + this._options.onAnyCharacterSet(start, end, kind); + } + } + onEscapeCharacterSet(start, end, kind, negate) { + if (this._options.onEscapeCharacterSet) { + this._options.onEscapeCharacterSet(start, end, kind, negate); + } + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { + if (this._options.onUnicodePropertyCharacterSet) { + this._options.onUnicodePropertyCharacterSet(start, end, kind, key, value, negate); + } + } + onCharacter(start, end, value) { + if (this._options.onCharacter) { + this._options.onCharacter(start, end, value); + } + } + onBackreference(start, end, ref) { + if (this._options.onBackreference) { + this._options.onBackreference(start, end, ref); + } + } + onCharacterClassEnter(start, negate) { + if (this._options.onCharacterClassEnter) { + this._options.onCharacterClassEnter(start, negate); + } + } + onCharacterClassLeave(start, end, negate) { + if (this._options.onCharacterClassLeave) { + this._options.onCharacterClassLeave(start, end, negate); + } + } + onCharacterClassRange(start, end, min, max) { + if (this._options.onCharacterClassRange) { + this._options.onCharacterClassRange(start, end, min, max); + } + } + get source() { + return this._reader.source; + } + get index() { + return this._reader.index; + } + get currentCodePoint() { + return this._reader.currentCodePoint; + } + get nextCodePoint() { + return this._reader.nextCodePoint; + } + get nextCodePoint2() { + return this._reader.nextCodePoint2; + } + get nextCodePoint3() { + return this._reader.nextCodePoint3; + } + reset(source, start, end) { + this._reader.reset(source, start, end, this._uFlag); + } + rewind(index) { + this._reader.rewind(index); + } + advance() { + this._reader.advance(); + } + eat(cp) { + return this._reader.eat(cp); + } + eat2(cp1, cp2) { + return this._reader.eat2(cp1, cp2); + } + eat3(cp1, cp2, cp3) { + return this._reader.eat3(cp1, cp2, cp3); + } + raise(message) { + throw new RegExpSyntaxError(this.source, this._uFlag, this.index, message); + } + eatRegExpBody() { + const start = this.index; + let inClass = false; + let escaped = false; + for (;;) { + const cp = this.currentCodePoint; + if (cp === -1 || isLineTerminator(cp)) { + const kind = inClass ? "character class" : "regular expression"; + this.raise(`Unterminated ${kind}`); + } + if (escaped) { + escaped = false; + } + else if (cp === ReverseSolidus) { + escaped = true; + } + else if (cp === LeftSquareBracket) { + inClass = true; + } + else if (cp === RightSquareBracket) { + inClass = false; + } + else if ((cp === Solidus && !inClass) || + (cp === Asterisk && this.index === start)) { + break; + } + this.advance(); + } + return this.index !== start; + } + consumePattern() { + const start = this.index; + this._numCapturingParens = this.countCapturingParens(); + this._groupNames.clear(); + this._backreferenceNames.clear(); + this.onPatternEnter(start); + this.consumeDisjunction(); + const cp = this.currentCodePoint; + if (this.currentCodePoint !== -1) { + if (cp === RightParenthesis) { + this.raise("Unmatched ')'"); + } + if (cp === ReverseSolidus) { + this.raise("\\ at end of pattern"); + } + if (cp === RightSquareBracket || cp === RightCurlyBracket) { + this.raise("Lone quantifier brackets"); + } + const c = String.fromCodePoint(cp); + this.raise(`Unexpected character '${c}'`); + } + for (const name of this._backreferenceNames) { + if (!this._groupNames.has(name)) { + this.raise("Invalid named capture referenced"); + } + } + this.onPatternLeave(start, this.index); + } + countCapturingParens() { + const start = this.index; + let inClass = false; + let escaped = false; + let count = 0; + let cp = 0; + while ((cp = this.currentCodePoint) !== -1) { + if (escaped) { + escaped = false; + } + else if (cp === ReverseSolidus) { + escaped = true; + } + else if (cp === LeftSquareBracket) { + inClass = true; + } + else if (cp === RightSquareBracket) { + inClass = false; + } + else if (cp === LeftParenthesis && + !inClass && + (this.nextCodePoint !== QuestionMark || + (this.nextCodePoint2 === LessThanSign && + this.nextCodePoint3 !== EqualsSign && + this.nextCodePoint3 !== ExclamationMark))) { + count += 1; + } + this.advance(); + } + this.rewind(start); + return count; + } + consumeDisjunction() { + const start = this.index; + let i = 0; + this.onDisjunctionEnter(start); + do { + this.consumeAlternative(i++); + } while (this.eat(VerticalLine)); + if (this.consumeQuantifier(true)) { + this.raise("Nothing to repeat"); + } + if (this.eat(LeftCurlyBracket)) { + this.raise("Lone quantifier brackets"); + } + this.onDisjunctionLeave(start, this.index); + } + consumeAlternative(i) { + const start = this.index; + this.onAlternativeEnter(start, i); + while (this.currentCodePoint !== -1 && this.consumeTerm()) { + } + this.onAlternativeLeave(start, this.index, i); + } + consumeTerm() { + if (this._uFlag || this.strict) { + return (this.consumeAssertion() || + (this.consumeAtom() && this.consumeOptionalQuantifier())); + } + return ((this.consumeAssertion() && + (!this._lastAssertionIsQuantifiable || + this.consumeOptionalQuantifier())) || + (this.consumeExtendedAtom() && this.consumeOptionalQuantifier())); + } + consumeOptionalQuantifier() { + this.consumeQuantifier(); + return true; + } + consumeAssertion() { + const start = this.index; + this._lastAssertionIsQuantifiable = false; + if (this.eat(CircumflexAccent)) { + this.onEdgeAssertion(start, this.index, "start"); + return true; + } + if (this.eat(DollarSign)) { + this.onEdgeAssertion(start, this.index, "end"); + return true; + } + if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) { + this.onWordBoundaryAssertion(start, this.index, "word", true); + return true; + } + if (this.eat2(ReverseSolidus, LatinSmallLetterB)) { + this.onWordBoundaryAssertion(start, this.index, "word", false); + return true; + } + if (this.eat2(LeftParenthesis, QuestionMark)) { + const lookbehind = this.ecmaVersion >= 2018 && this.eat(LessThanSign); + let negate = false; + if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) { + const kind = lookbehind ? "lookbehind" : "lookahead"; + this.onLookaroundAssertionEnter(start, kind, negate); + this.consumeDisjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this._lastAssertionIsQuantifiable = !lookbehind && !this.strict; + this.onLookaroundAssertionLeave(start, this.index, kind, negate); + return true; + } + this.rewind(start); + } + return false; + } + consumeQuantifier(noConsume = false) { + const start = this.index; + let min = 0; + let max = 0; + let greedy = false; + if (this.eat(Asterisk)) { + min = 0; + max = Number.POSITIVE_INFINITY; + } + else if (this.eat(PlusSign)) { + min = 1; + max = Number.POSITIVE_INFINITY; + } + else if (this.eat(QuestionMark)) { + min = 0; + max = 1; + } + else if (this.eatBracedQuantifier(noConsume)) { + min = this._lastMinValue; + max = this._lastMaxValue; + } + else { + return false; + } + greedy = !this.eat(QuestionMark); + if (!noConsume) { + this.onQuantifier(start, this.index, min, max, greedy); + } + return true; + } + eatBracedQuantifier(noError) { + const start = this.index; + if (this.eat(LeftCurlyBracket)) { + this._lastMinValue = 0; + this._lastMaxValue = Number.POSITIVE_INFINITY; + if (this.eatDecimalDigits()) { + this._lastMinValue = this._lastMaxValue = this._lastIntValue; + if (this.eat(Comma)) { + this._lastMaxValue = this.eatDecimalDigits() + ? this._lastIntValue + : Number.POSITIVE_INFINITY; + } + if (this.eat(RightCurlyBracket)) { + if (!noError && this._lastMaxValue < this._lastMinValue) { + this.raise("numbers out of order in {} quantifier"); + } + return true; + } + } + if (!noError && (this._uFlag || this.strict)) { + this.raise("Incomplete quantifier"); + } + this.rewind(start); + } + return false; + } + consumeAtom() { + return (this.consumePatternCharacter() || + this.consumeDot() || + this.consumeReverseSolidusAtomEscape() || + this.consumeCharacterClass() || + this.consumeUncapturingGroup() || + this.consumeCapturingGroup()); + } + consumeDot() { + if (this.eat(FullStop)) { + this.onAnyCharacterSet(this.index - 1, this.index, "any"); + return true; + } + return false; + } + consumeReverseSolidusAtomEscape() { + const start = this.index; + if (this.eat(ReverseSolidus)) { + if (this.consumeAtomEscape()) { + return true; + } + this.rewind(start); + } + return false; + } + consumeUncapturingGroup() { + const start = this.index; + if (this.eat3(LeftParenthesis, QuestionMark, Colon)) { + this.onGroupEnter(start); + this.consumeDisjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this.onGroupLeave(start, this.index); + return true; + } + return false; + } + consumeCapturingGroup() { + const start = this.index; + if (this.eat(LeftParenthesis)) { + let name = null; + if (this.ecmaVersion >= 2018) { + if (this.consumeGroupSpecifier()) { + name = this._lastStrValue; + } + } + else if (this.currentCodePoint === QuestionMark) { + this.raise("Invalid group"); + } + this.onCapturingGroupEnter(start, name); + this.consumeDisjunction(); + if (!this.eat(RightParenthesis)) { + this.raise("Unterminated group"); + } + this.onCapturingGroupLeave(start, this.index, name); + return true; + } + return false; + } + consumeExtendedAtom() { + return (this.consumeDot() || + this.consumeReverseSolidusAtomEscape() || + this.consumeReverseSolidusFollowedByC() || + this.consumeCharacterClass() || + this.consumeUncapturingGroup() || + this.consumeCapturingGroup() || + this.consumeInvalidBracedQuantifier() || + this.consumeExtendedPatternCharacter()); + } + consumeReverseSolidusFollowedByC() { + const start = this.index; + if (this.currentCodePoint === ReverseSolidus && + this.nextCodePoint === LatinSmallLetterC) { + this._lastIntValue = this.currentCodePoint; + this.advance(); + this.onCharacter(start, this.index, ReverseSolidus); + return true; + } + return false; + } + consumeInvalidBracedQuantifier() { + if (this.eatBracedQuantifier(true)) { + this.raise("Nothing to repeat"); + } + return false; + } + consumePatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && !isSyntaxCharacter(cp)) { + this.advance(); + this.onCharacter(start, this.index, cp); + return true; + } + return false; + } + consumeExtendedPatternCharacter() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && + cp !== CircumflexAccent && + cp !== DollarSign && + cp !== ReverseSolidus && + cp !== FullStop && + cp !== Asterisk && + cp !== PlusSign && + cp !== QuestionMark && + cp !== LeftParenthesis && + cp !== RightParenthesis && + cp !== LeftSquareBracket && + cp !== VerticalLine) { + this.advance(); + this.onCharacter(start, this.index, cp); + return true; + } + return false; + } + consumeGroupSpecifier() { + if (this.eat(QuestionMark)) { + if (this.eatGroupName()) { + if (!this._groupNames.has(this._lastStrValue)) { + this._groupNames.add(this._lastStrValue); + return true; + } + this.raise("Duplicate capture group name"); + } + this.raise("Invalid group"); + } + return false; + } + consumeAtomEscape() { + if (this.consumeBackreference() || + this.consumeCharacterClassEscape() || + this.consumeCharacterEscape() || + (this._nFlag && this.consumeKGroupName())) { + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid escape"); + } + return false; + } + consumeBackreference() { + const start = this.index; + if (this.eatDecimalEscape()) { + const n = this._lastIntValue; + if (n <= this._numCapturingParens) { + this.onBackreference(start - 1, this.index, n); + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + consumeCharacterClassEscape() { + const start = this.index; + if (this.eat(LatinSmallLetterD)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "digit", false); + return true; + } + if (this.eat(LatinCapitalLetterD)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "digit", true); + return true; + } + if (this.eat(LatinSmallLetterS)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "space", false); + return true; + } + if (this.eat(LatinCapitalLetterS)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "space", true); + return true; + } + if (this.eat(LatinSmallLetterW)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "word", false); + return true; + } + if (this.eat(LatinCapitalLetterW)) { + this._lastIntValue = -1; + this.onEscapeCharacterSet(start - 1, this.index, "word", true); + return true; + } + let negate = false; + if (this._uFlag && + this.ecmaVersion >= 2018 && + (this.eat(LatinSmallLetterP) || + (negate = this.eat(LatinCapitalLetterP)))) { + this._lastIntValue = -1; + if (this.eat(LeftCurlyBracket) && + this.eatUnicodePropertyValueExpression() && + this.eat(RightCurlyBracket)) { + this.onUnicodePropertyCharacterSet(start - 1, this.index, "property", this._lastKeyValue, this._lastValValue || null, negate); + return true; + } + this.raise("Invalid property name"); + } + return false; + } + consumeCharacterEscape() { + const start = this.index; + if (this.eatControlEscape() || + this.eatCControlLetter() || + this.eatZero() || + this.eatHexEscapeSequence() || + this.eatRegExpUnicodeEscapeSequence() || + (!this.strict && + !this._uFlag && + this.eatLegacyOctalEscapeSequence()) || + this.eatIdentityEscape()) { + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + return false; + } + consumeKGroupName() { + const start = this.index; + if (this.eat(LatinSmallLetterK)) { + if (this.eatGroupName()) { + const groupName = this._lastStrValue; + this._backreferenceNames.add(groupName); + this.onBackreference(start - 1, this.index, groupName); + return true; + } + this.raise("Invalid named reference"); + } + return false; + } + consumeCharacterClass() { + const start = this.index; + if (this.eat(LeftSquareBracket)) { + const negate = this.eat(CircumflexAccent); + this.onCharacterClassEnter(start, negate); + this.consumeClassRanges(); + if (!this.eat(RightSquareBracket)) { + this.raise("Unterminated character class"); + } + this.onCharacterClassLeave(start, this.index, negate); + return true; + } + return false; + } + consumeClassRanges() { + const strict = this.strict || this._uFlag; + for (;;) { + const rangeStart = this.index; + if (!this.consumeClassAtom()) { + break; + } + const min = this._lastIntValue; + if (!this.eat(HyphenMinus)) { + continue; + } + this.onCharacter(this.index - 1, this.index, HyphenMinus); + if (!this.consumeClassAtom()) { + break; + } + const max = this._lastIntValue; + if (min === -1 || max === -1) { + if (strict) { + this.raise("Invalid character class"); + } + continue; + } + if (min > max) { + this.raise("Range out of order in character class"); + } + this.onCharacterClassRange(rangeStart, this.index, min, max); + } + } + consumeClassAtom() { + const start = this.index; + const cp = this.currentCodePoint; + if (cp !== -1 && cp !== ReverseSolidus && cp !== RightSquareBracket) { + this.advance(); + this._lastIntValue = cp; + this.onCharacter(start, this.index, this._lastIntValue); + return true; + } + if (this.eat(ReverseSolidus)) { + if (this.consumeClassEscape()) { + return true; + } + if (!this.strict && this.currentCodePoint === LatinSmallLetterC) { + this._lastIntValue = ReverseSolidus; + this.onCharacter(start, this.index, this._lastIntValue); + return true; + } + if (this.strict || this._uFlag) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + consumeClassEscape() { + const start = this.index; + if (this.eat(LatinSmallLetterB)) { + this._lastIntValue = Backspace; + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + if (this._uFlag && this.eat(HyphenMinus)) { + this._lastIntValue = HyphenMinus; + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + let cp = 0; + if (!this.strict && + !this._uFlag && + this.currentCodePoint === LatinSmallLetterC && + (isDecimalDigit((cp = this.nextCodePoint)) || cp === LowLine)) { + this.advance(); + this.advance(); + this._lastIntValue = cp % 0x20; + this.onCharacter(start - 1, this.index, this._lastIntValue); + return true; + } + return (this.consumeCharacterClassEscape() || this.consumeCharacterEscape()); + } + eatGroupName() { + if (this.eat(LessThanSign)) { + if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) { + return true; + } + this.raise("Invalid capture group name"); + } + return false; + } + eatRegExpIdentifierName() { + if (this.eatRegExpIdentifierStart()) { + this._lastStrValue = String.fromCodePoint(this._lastIntValue); + while (this.eatRegExpIdentifierPart()) { + this._lastStrValue += String.fromCodePoint(this._lastIntValue); + } + return true; + } + return false; + } + eatRegExpIdentifierStart() { + const start = this.index; + const forceUFlag = !this._uFlag && this.ecmaVersion >= 2020; + let cp = this.currentCodePoint; + this.advance(); + if (cp === ReverseSolidus && + this.eatRegExpUnicodeEscapeSequence(forceUFlag)) { + cp = this._lastIntValue; + } + else if (forceUFlag && + isLeadSurrogate(cp) && + isTrailSurrogate(this.currentCodePoint)) { + cp = combineSurrogatePair(cp, this.currentCodePoint); + this.advance(); + } + if (isRegExpIdentifierStart(cp)) { + this._lastIntValue = cp; + return true; + } + if (this.index !== start) { + this.rewind(start); + } + return false; + } + eatRegExpIdentifierPart() { + const start = this.index; + const forceUFlag = !this._uFlag && this.ecmaVersion >= 2020; + let cp = this.currentCodePoint; + this.advance(); + if (cp === ReverseSolidus && + this.eatRegExpUnicodeEscapeSequence(forceUFlag)) { + cp = this._lastIntValue; + } + else if (forceUFlag && + isLeadSurrogate(cp) && + isTrailSurrogate(this.currentCodePoint)) { + cp = combineSurrogatePair(cp, this.currentCodePoint); + this.advance(); + } + if (isRegExpIdentifierPart(cp)) { + this._lastIntValue = cp; + return true; + } + if (this.index !== start) { + this.rewind(start); + } + return false; + } + eatCControlLetter() { + const start = this.index; + if (this.eat(LatinSmallLetterC)) { + if (this.eatControlLetter()) { + return true; + } + this.rewind(start); + } + return false; + } + eatZero() { + if (this.currentCodePoint === DigitZero && + !isDecimalDigit(this.nextCodePoint)) { + this._lastIntValue = 0; + this.advance(); + return true; + } + return false; + } + eatControlEscape() { + if (this.eat(LatinSmallLetterF)) { + this._lastIntValue = FormFeed; + return true; + } + if (this.eat(LatinSmallLetterN)) { + this._lastIntValue = LineFeed; + return true; + } + if (this.eat(LatinSmallLetterR)) { + this._lastIntValue = CarriageReturn; + return true; + } + if (this.eat(LatinSmallLetterT)) { + this._lastIntValue = CharacterTabulation; + return true; + } + if (this.eat(LatinSmallLetterV)) { + this._lastIntValue = LineTabulation; + return true; + } + return false; + } + eatControlLetter() { + const cp = this.currentCodePoint; + if (isLatinLetter(cp)) { + this.advance(); + this._lastIntValue = cp % 0x20; + return true; + } + return false; + } + eatRegExpUnicodeEscapeSequence(forceUFlag = false) { + const start = this.index; + const uFlag = forceUFlag || this._uFlag; + if (this.eat(LatinSmallLetterU)) { + if ((uFlag && this.eatRegExpUnicodeSurrogatePairEscape()) || + this.eatFixedHexDigits(4) || + (uFlag && this.eatRegExpUnicodeCodePointEscape())) { + return true; + } + if (this.strict || uFlag) { + this.raise("Invalid unicode escape"); + } + this.rewind(start); + } + return false; + } + eatRegExpUnicodeSurrogatePairEscape() { + const start = this.index; + if (this.eatFixedHexDigits(4)) { + const lead = this._lastIntValue; + if (isLeadSurrogate(lead) && + this.eat(ReverseSolidus) && + this.eat(LatinSmallLetterU) && + this.eatFixedHexDigits(4)) { + const trail = this._lastIntValue; + if (isTrailSurrogate(trail)) { + this._lastIntValue = combineSurrogatePair(lead, trail); + return true; + } + } + this.rewind(start); + } + return false; + } + eatRegExpUnicodeCodePointEscape() { + const start = this.index; + if (this.eat(LeftCurlyBracket) && + this.eatHexDigits() && + this.eat(RightCurlyBracket) && + isValidUnicode(this._lastIntValue)) { + return true; + } + this.rewind(start); + return false; + } + eatIdentityEscape() { + const cp = this.currentCodePoint; + if (this.isValidIdentityEscape(cp)) { + this._lastIntValue = cp; + this.advance(); + return true; + } + return false; + } + isValidIdentityEscape(cp) { + if (cp === -1) { + return false; + } + if (this._uFlag) { + return isSyntaxCharacter(cp) || cp === Solidus; + } + if (this.strict) { + return !isIdContinue(cp); + } + if (this._nFlag) { + return !(cp === LatinSmallLetterC || cp === LatinSmallLetterK); + } + return cp !== LatinSmallLetterC; + } + eatDecimalEscape() { + this._lastIntValue = 0; + let cp = this.currentCodePoint; + if (cp >= DigitOne && cp <= DigitNine) { + do { + this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero); + this.advance(); + } while ((cp = this.currentCodePoint) >= DigitZero && + cp <= DigitNine); + return true; + } + return false; + } + eatUnicodePropertyValueExpression() { + const start = this.index; + if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) { + this._lastKeyValue = this._lastStrValue; + if (this.eatUnicodePropertyValue()) { + this._lastValValue = this._lastStrValue; + if (isValidUnicodeProperty(this.ecmaVersion, this._lastKeyValue, this._lastValValue)) { + return true; + } + this.raise("Invalid property name"); + } + } + this.rewind(start); + if (this.eatLoneUnicodePropertyNameOrValue()) { + const nameOrValue = this._lastStrValue; + if (isValidUnicodeProperty(this.ecmaVersion, "General_Category", nameOrValue)) { + this._lastKeyValue = "General_Category"; + this._lastValValue = nameOrValue; + return true; + } + if (isValidLoneUnicodeProperty(this.ecmaVersion, nameOrValue)) { + this._lastKeyValue = nameOrValue; + this._lastValValue = ""; + return true; + } + this.raise("Invalid property name"); + } + return false; + } + eatUnicodePropertyName() { + this._lastStrValue = ""; + while (isUnicodePropertyNameCharacter(this.currentCodePoint)) { + this._lastStrValue += String.fromCodePoint(this.currentCodePoint); + this.advance(); + } + return this._lastStrValue !== ""; + } + eatUnicodePropertyValue() { + this._lastStrValue = ""; + while (isUnicodePropertyValueCharacter(this.currentCodePoint)) { + this._lastStrValue += String.fromCodePoint(this.currentCodePoint); + this.advance(); + } + return this._lastStrValue !== ""; + } + eatLoneUnicodePropertyNameOrValue() { + return this.eatUnicodePropertyValue(); + } + eatHexEscapeSequence() { + const start = this.index; + if (this.eat(LatinSmallLetterX)) { + if (this.eatFixedHexDigits(2)) { + return true; + } + if (this._uFlag || this.strict) { + this.raise("Invalid escape"); + } + this.rewind(start); + } + return false; + } + eatDecimalDigits() { + const start = this.index; + this._lastIntValue = 0; + while (isDecimalDigit(this.currentCodePoint)) { + this._lastIntValue = + 10 * this._lastIntValue + digitToInt(this.currentCodePoint); + this.advance(); + } + return this.index !== start; + } + eatHexDigits() { + const start = this.index; + this._lastIntValue = 0; + while (isHexDigit(this.currentCodePoint)) { + this._lastIntValue = + 16 * this._lastIntValue + digitToInt(this.currentCodePoint); + this.advance(); + } + return this.index !== start; + } + eatLegacyOctalEscapeSequence() { + if (this.eatOctalDigit()) { + const n1 = this._lastIntValue; + if (this.eatOctalDigit()) { + const n2 = this._lastIntValue; + if (n1 <= 3 && this.eatOctalDigit()) { + this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue; + } + else { + this._lastIntValue = n1 * 8 + n2; + } + } + else { + this._lastIntValue = n1; + } + return true; + } + return false; + } + eatOctalDigit() { + const cp = this.currentCodePoint; + if (isOctalDigit(cp)) { + this.advance(); + this._lastIntValue = cp - DigitZero; + return true; + } + this._lastIntValue = 0; + return false; + } + eatFixedHexDigits(length) { + const start = this.index; + this._lastIntValue = 0; + for (let i = 0; i < length; ++i) { + const cp = this.currentCodePoint; + if (!isHexDigit(cp)) { + this.rewind(start); + return false; + } + this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp); + this.advance(); + } + return true; + } +} + +const DummyPattern = {}; +const DummyFlags = {}; +const DummyCapturingGroup = {}; +class RegExpParserState { + constructor(options) { + this._node = DummyPattern; + this._flags = DummyFlags; + this._backreferences = []; + this._capturingGroups = []; + this.source = ""; + this.strict = Boolean(options && options.strict); + this.ecmaVersion = (options && options.ecmaVersion) || 2022; + } + get pattern() { + if (this._node.type !== "Pattern") { + throw new Error("UnknownError"); + } + return this._node; + } + get flags() { + if (this._flags.type !== "Flags") { + throw new Error("UnknownError"); + } + return this._flags; + } + onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll, hasIndices) { + this._flags = { + type: "Flags", + parent: null, + start, + end, + raw: this.source.slice(start, end), + global, + ignoreCase, + multiline, + unicode, + sticky, + dotAll, + hasIndices, + }; + } + onPatternEnter(start) { + this._node = { + type: "Pattern", + parent: null, + start, + end: start, + raw: "", + alternatives: [], + }; + this._backreferences.length = 0; + this._capturingGroups.length = 0; + } + onPatternLeave(start, end) { + this._node.end = end; + this._node.raw = this.source.slice(start, end); + for (const reference of this._backreferences) { + const ref = reference.ref; + const group = typeof ref === "number" + ? this._capturingGroups[ref - 1] + : this._capturingGroups.find(g => g.name === ref); + reference.resolved = group; + group.references.push(reference); + } + } + onAlternativeEnter(start) { + const parent = this._node; + if (parent.type !== "Assertion" && + parent.type !== "CapturingGroup" && + parent.type !== "Group" && + parent.type !== "Pattern") { + throw new Error("UnknownError"); + } + this._node = { + type: "Alternative", + parent, + start, + end: start, + raw: "", + elements: [], + }; + parent.alternatives.push(this._node); + } + onAlternativeLeave(start, end) { + const node = this._node; + if (node.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onGroupEnter(start) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + this._node = { + type: "Group", + parent, + start, + end: start, + raw: "", + alternatives: [], + }; + parent.elements.push(this._node); + } + onGroupLeave(start, end) { + const node = this._node; + if (node.type !== "Group" || node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onCapturingGroupEnter(start, name) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + this._node = { + type: "CapturingGroup", + parent, + start, + end: start, + raw: "", + name, + alternatives: [], + references: [], + }; + parent.elements.push(this._node); + this._capturingGroups.push(this._node); + } + onCapturingGroupLeave(start, end) { + const node = this._node; + if (node.type !== "CapturingGroup" || + node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onQuantifier(start, end, min, max, greedy) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + const element = parent.elements.pop(); + if (element == null || + element.type === "Quantifier" || + (element.type === "Assertion" && element.kind !== "lookahead")) { + throw new Error("UnknownError"); + } + const node = { + type: "Quantifier", + parent, + start: element.start, + end, + raw: this.source.slice(element.start, end), + min, + max, + greedy, + element, + }; + parent.elements.push(node); + element.parent = node; + } + onLookaroundAssertionEnter(start, kind, negate) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + const node = (this._node = { + type: "Assertion", + parent, + start, + end: start, + raw: "", + kind, + negate, + alternatives: [], + }); + parent.elements.push(node); + } + onLookaroundAssertionLeave(start, end) { + const node = this._node; + if (node.type !== "Assertion" || node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onEdgeAssertion(start, end, kind) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "Assertion", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + }); + } + onWordBoundaryAssertion(start, end, kind, negate) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "Assertion", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + negate, + }); + } + onAnyCharacterSet(start, end, kind) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "CharacterSet", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + }); + } + onEscapeCharacterSet(start, end, kind, negate) { + const parent = this._node; + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "CharacterSet", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + negate, + }); + } + onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) { + const parent = this._node; + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "CharacterSet", + parent, + start, + end, + raw: this.source.slice(start, end), + kind, + key, + value, + negate, + }); + } + onCharacter(start, end, value) { + const parent = this._node; + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + parent.elements.push({ + type: "Character", + parent, + start, + end, + raw: this.source.slice(start, end), + value, + }); + } + onBackreference(start, end, ref) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + const node = { + type: "Backreference", + parent, + start, + end, + raw: this.source.slice(start, end), + ref, + resolved: DummyCapturingGroup, + }; + parent.elements.push(node); + this._backreferences.push(node); + } + onCharacterClassEnter(start, negate) { + const parent = this._node; + if (parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + this._node = { + type: "CharacterClass", + parent, + start, + end: start, + raw: "", + negate, + elements: [], + }; + parent.elements.push(this._node); + } + onCharacterClassLeave(start, end) { + const node = this._node; + if (node.type !== "CharacterClass" || + node.parent.type !== "Alternative") { + throw new Error("UnknownError"); + } + node.end = end; + node.raw = this.source.slice(start, end); + this._node = node.parent; + } + onCharacterClassRange(start, end) { + const parent = this._node; + if (parent.type !== "CharacterClass") { + throw new Error("UnknownError"); + } + const elements = parent.elements; + const max = elements.pop(); + const hyphen = elements.pop(); + const min = elements.pop(); + if (!min || + !max || + !hyphen || + min.type !== "Character" || + max.type !== "Character" || + hyphen.type !== "Character" || + hyphen.value !== HyphenMinus) { + throw new Error("UnknownError"); + } + const node = { + type: "CharacterClassRange", + parent, + start, + end, + raw: this.source.slice(start, end), + min, + max, + }; + min.parent = node; + max.parent = node; + elements.push(node); + } +} +class RegExpParser { + constructor(options) { + this._state = new RegExpParserState(options); + this._validator = new RegExpValidator(this._state); + } + parseLiteral(source, start = 0, end = source.length) { + this._state.source = source; + this._validator.validateLiteral(source, start, end); + const pattern = this._state.pattern; + const flags = this._state.flags; + const literal = { + type: "RegExpLiteral", + parent: null, + start, + end, + raw: source, + pattern, + flags, + }; + pattern.parent = literal; + flags.parent = literal; + return literal; + } + parseFlags(source, start = 0, end = source.length) { + this._state.source = source; + this._validator.validateFlags(source, start, end); + return this._state.flags; + } + parsePattern(source, start = 0, end = source.length, uFlag = false) { + this._state.source = source; + this._validator.validatePattern(source, start, end, uFlag); + return this._state.pattern; + } +} + +class RegExpVisitor { + constructor(handlers) { + this._handlers = handlers; + } + visit(node) { + switch (node.type) { + case "Alternative": + this.visitAlternative(node); + break; + case "Assertion": + this.visitAssertion(node); + break; + case "Backreference": + this.visitBackreference(node); + break; + case "CapturingGroup": + this.visitCapturingGroup(node); + break; + case "Character": + this.visitCharacter(node); + break; + case "CharacterClass": + this.visitCharacterClass(node); + break; + case "CharacterClassRange": + this.visitCharacterClassRange(node); + break; + case "CharacterSet": + this.visitCharacterSet(node); + break; + case "Flags": + this.visitFlags(node); + break; + case "Group": + this.visitGroup(node); + break; + case "Pattern": + this.visitPattern(node); + break; + case "Quantifier": + this.visitQuantifier(node); + break; + case "RegExpLiteral": + this.visitRegExpLiteral(node); + break; + default: + throw new Error(`Unknown type: ${node.type}`); + } + } + visitAlternative(node) { + if (this._handlers.onAlternativeEnter) { + this._handlers.onAlternativeEnter(node); + } + node.elements.forEach(this.visit, this); + if (this._handlers.onAlternativeLeave) { + this._handlers.onAlternativeLeave(node); + } + } + visitAssertion(node) { + if (this._handlers.onAssertionEnter) { + this._handlers.onAssertionEnter(node); + } + if (node.kind === "lookahead" || node.kind === "lookbehind") { + node.alternatives.forEach(this.visit, this); + } + if (this._handlers.onAssertionLeave) { + this._handlers.onAssertionLeave(node); + } + } + visitBackreference(node) { + if (this._handlers.onBackreferenceEnter) { + this._handlers.onBackreferenceEnter(node); + } + if (this._handlers.onBackreferenceLeave) { + this._handlers.onBackreferenceLeave(node); + } + } + visitCapturingGroup(node) { + if (this._handlers.onCapturingGroupEnter) { + this._handlers.onCapturingGroupEnter(node); + } + node.alternatives.forEach(this.visit, this); + if (this._handlers.onCapturingGroupLeave) { + this._handlers.onCapturingGroupLeave(node); + } + } + visitCharacter(node) { + if (this._handlers.onCharacterEnter) { + this._handlers.onCharacterEnter(node); + } + if (this._handlers.onCharacterLeave) { + this._handlers.onCharacterLeave(node); + } + } + visitCharacterClass(node) { + if (this._handlers.onCharacterClassEnter) { + this._handlers.onCharacterClassEnter(node); + } + node.elements.forEach(this.visit, this); + if (this._handlers.onCharacterClassLeave) { + this._handlers.onCharacterClassLeave(node); + } + } + visitCharacterClassRange(node) { + if (this._handlers.onCharacterClassRangeEnter) { + this._handlers.onCharacterClassRangeEnter(node); + } + this.visitCharacter(node.min); + this.visitCharacter(node.max); + if (this._handlers.onCharacterClassRangeLeave) { + this._handlers.onCharacterClassRangeLeave(node); + } + } + visitCharacterSet(node) { + if (this._handlers.onCharacterSetEnter) { + this._handlers.onCharacterSetEnter(node); + } + if (this._handlers.onCharacterSetLeave) { + this._handlers.onCharacterSetLeave(node); + } + } + visitFlags(node) { + if (this._handlers.onFlagsEnter) { + this._handlers.onFlagsEnter(node); + } + if (this._handlers.onFlagsLeave) { + this._handlers.onFlagsLeave(node); + } + } + visitGroup(node) { + if (this._handlers.onGroupEnter) { + this._handlers.onGroupEnter(node); + } + node.alternatives.forEach(this.visit, this); + if (this._handlers.onGroupLeave) { + this._handlers.onGroupLeave(node); + } + } + visitPattern(node) { + if (this._handlers.onPatternEnter) { + this._handlers.onPatternEnter(node); + } + node.alternatives.forEach(this.visit, this); + if (this._handlers.onPatternLeave) { + this._handlers.onPatternLeave(node); + } + } + visitQuantifier(node) { + if (this._handlers.onQuantifierEnter) { + this._handlers.onQuantifierEnter(node); + } + this.visit(node.element); + if (this._handlers.onQuantifierLeave) { + this._handlers.onQuantifierLeave(node); + } + } + visitRegExpLiteral(node) { + if (this._handlers.onRegExpLiteralEnter) { + this._handlers.onRegExpLiteralEnter(node); + } + this.visitPattern(node.pattern); + this.visitFlags(node.flags); + if (this._handlers.onRegExpLiteralLeave) { + this._handlers.onRegExpLiteralLeave(node); + } + } +} + +function parseRegExpLiteral(source, options) { + return new RegExpParser(options).parseLiteral(String(source)); +} +function validateRegExpLiteral(source, options) { + return new RegExpValidator(options).validateLiteral(source); +} +function visitRegExpAST(node, handlers) { + new RegExpVisitor(handlers).visit(node); +} + +export { ast as AST, RegExpParser, RegExpValidator, parseRegExpLiteral, validateRegExpLiteral, visitRegExpAST }; +//# sourceMappingURL=index.mjs.map diff --git a/node_modules/regexpp/index.mjs.map b/node_modules/regexpp/index.mjs.map new file mode 100644 index 0000000..4263dfa --- /dev/null +++ b/node_modules/regexpp/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.mjs.map","sources":[".temp/unicode/src/unicode/ids.ts",".temp/unicode/src/unicode/properties.ts",".temp/unicode/src/unicode/index.ts",".temp/src/reader.ts",".temp/src/regexp-syntax-error.ts",".temp/src/validator.ts",".temp/src/parser.ts",".temp/src/visitor.ts",".temp/src/index.ts"],"sourcesContent":[{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\unicode\\src\\unicode\\ids.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\unicode\\src\\unicode\\properties.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\unicode\\src\\unicode\\index.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\reader.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\regexp-syntax-error.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\validator.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\parser.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\visitor.ts"},{"errno":-4058,"code":"ENOENT","syscall":"open","path":"C:\\Users\\t-nagashima.MSS\\dev\\regexpp\\.temp\\src\\index.ts"}],"names":[],"mappings":";;;;;;;AAIA,IAAI,kBAAkB,GAAyB,SAAS,CAAA;AACxD,IAAI,qBAAqB,GAAyB,SAAS,CAAA;AAE3D,SAAgB,SAAS,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,OAAO,cAAc,CAAC,EAAE,CAAC,CAAA;CAC5B;AAED,SAAgB,YAAY,CAAC,EAAU;IACnC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC5B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1B,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAA;CACrD;AAED,SAAS,cAAc,CAAC,EAAU;IAC9B,OAAO,SAAS,CACZ,EAAE,EACF,kBAAkB,KAAK,kBAAkB,GAAG,sBAAsB,EAAE,CAAC,CACxE,CAAA;CACJ;AAED,SAAS,iBAAiB,CAAC,EAAU;IACjC,OAAO,SAAS,CACZ,EAAE,EACF,qBAAqB;SAChB,qBAAqB,GAAG,yBAAyB,EAAE,CAAC,CAC5D,CAAA;CACJ;AAED,SAAS,sBAAsB;IAC3B,OAAO,aAAa,CAChB,4qFAA4qF,CAC/qF,CAAA;CACJ;AAED,SAAS,yBAAyB;IAC9B,OAAO,aAAa,CAChB,0gDAA0gD,CAC7gD,CAAA;CACJ;AAED,SAAS,SAAS,CAAC,EAAU,EAAE,MAAgB;IAC3C,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAC3B,CAAC,GAAG,CAAC,EACL,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,CAAC,GAAG,CAAC,EAAE;QACV,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACnB,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACvB,IAAI,EAAE,GAAG,GAAG,EAAE;YACV,CAAC,GAAG,CAAC,CAAA;SACR;aAAM,IAAI,EAAE,GAAG,GAAG,EAAE;YACjB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACZ;aAAM;YACH,OAAO,IAAI,CAAA;SACd;KACJ;IACD,OAAO,KAAK,CAAA;CACf;AAED,SAAS,aAAa,CAAC,IAAY;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CACjE;;AC3ED,MAAM,OAAO;IAST,YACI,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe;QAEf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;KAC1B;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;IACD,IAAW,MAAM;QACb,QACI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;CACJ;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACvE,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,opBAAopB,EACppB,EAAE,EACF,EAAE,EACF,EAAE,CACL,CAAA;AACD,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,48DAA48D,EAC58D,gHAAgH,EAChH,uEAAuE,EACvE,uEAAuE,CAC1E,CAAA;AACD,MAAM,eAAe,GAAG,IAAI,OAAO,CAC/B,69BAA69B,EAC79B,uBAAuB,EACvB,EAAE,EACF,gCAAgC,CACnC,CAAA;AAED,SAAgB,sBAAsB,CAClC,OAAe,EACf,IAAY,EACZ,KAAa;IAEb,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KAC1D;IACD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrB,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;aAChD,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACjD,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACjD,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACrD;KACJ;IACD,OAAO,KAAK,CAAA;CACf;AAED,SAAgB,0BAA0B,CACtC,OAAe,EACf,KAAa;IAEb,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SACpD,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACrD,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACzD;CACJ;;ACtFM,MAAM,SAAS,GAAG,IAAI,CAAA;AAC7B,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,AAAO,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,AAAO,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,AAAO,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,AAAO,MAAM,gBAAgB,GAAG,IAAI,CAAA;AACpC,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,KAAK,GAAG,IAAI,CAAA;AACzB,AAAO,MAAM,WAAW,GAAG,IAAI,CAAA;AAC/B,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,OAAO,GAAG,IAAI,CAAA;AAC3B,AAAO,MAAM,SAAS,GAAG,IAAI,CAAA;AAC7B,AAAO,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC5B,AAAO,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,AAAO,MAAM,SAAS,GAAG,IAAI,CAAA;AAC7B,AAAO,MAAM,KAAK,GAAG,IAAI,CAAA;AACzB,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,UAAU,GAAG,IAAI,CAAA;AAC9B,AAAO,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,AAAO,MAAM,OAAO,GAAG,IAAI,CAAA;AAC3B,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,AAAO,MAAM,kBAAkB,GAAG,IAAI,CAAA;AACtC,AAAO,MAAM,gBAAgB,GAAG,IAAI,CAAA;AACpC,AAAO,MAAM,gBAAgB,GAAG,IAAI,CAAA;AACpC,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,AAAO,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACxC,AAAO,MAAM,eAAe,GAAG,MAAM,CAAA;AACrC,AAAO,MAAM,aAAa,GAAG,MAAM,CAAA;AACnC,AAAO,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAExC,AAAO,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,AAAO,MAAM,YAAY,GAAG,QAAQ,CAAA;AAEpC,SAAgB,aAAa,CAAC,IAAY;IACtC,QACI,CAAC,IAAI,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB;SAC1D,IAAI,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,EAC3D;CACJ;AAED,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAA;CAChD;AAED,SAAgB,YAAY,CAAC,IAAY;IACrC,OAAO,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,UAAU,CAAA;CACjD;AAED,SAAgB,UAAU,CAAC,IAAY;IACnC,QACI,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS;SACtC,IAAI,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,CAAC;SAC3D,IAAI,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,EAC3D;CACJ;AAED,SAAgB,gBAAgB,CAAC,IAAY;IACzC,QACI,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,cAAc;QACvB,IAAI,KAAK,aAAa;QACtB,IAAI,KAAK,kBAAkB,EAC9B;CACJ;AAED,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAA;CACtD;AAED,SAAgB,UAAU,CAAC,IAAY;IACnC,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,EAAE;QACxD,OAAO,IAAI,GAAG,iBAAiB,GAAG,EAAE,CAAA;KACvC;IACD,IAAI,IAAI,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,EAAE;QAC5D,OAAO,IAAI,GAAG,mBAAmB,GAAG,EAAE,CAAA;KACzC;IACD,OAAO,IAAI,GAAG,SAAS,CAAA;CAC1B;AAED,SAAgB,eAAe,CAAC,IAAY;IACxC,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;CAC1C;AAED,SAAgB,gBAAgB,CAAC,IAAY;IACzC,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;CAC1C;AAED,SAAgB,oBAAoB,CAAC,IAAY,EAAE,KAAa;IAC5D,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,OAAO,CAAA;CAC9D;;ACpID,MAAM,UAAU,GAAG;IACf,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;KACxC;IACD,KAAK,CAAC,CAAS;QACX,OAAO,CAAC,CAAA;KACX;CACJ,CAAA;AACD,MAAM,WAAW,GAAG;IAChB,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAA;KAC1C;IACD,KAAK,CAAC,CAAS;QACX,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;KAC5B;CACJ,CAAA;AAED,MAAa,MAAM;IAAnB;QACY,UAAK,GAAG,UAAU,CAAA;QAClB,OAAE,GAAG,EAAE,CAAA;QACP,OAAE,GAAG,CAAC,CAAA;QACN,SAAI,GAAG,CAAC,CAAA;QACR,SAAI,GAAW,CAAC,CAAC,CAAA;QACjB,QAAG,GAAG,CAAC,CAAA;QACP,SAAI,GAAW,CAAC,CAAC,CAAA;QACjB,QAAG,GAAG,CAAC,CAAA;QACP,SAAI,GAAW,CAAC,CAAC,CAAA;QACjB,QAAG,GAAG,CAAC,CAAA;QACP,SAAI,GAAW,CAAC,CAAC,CAAA;KAkG5B;IAhGG,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;IAEM,KAAK,CACR,MAAc,EACd,KAAa,EACb,GAAW,EACX,KAAc;QAEd,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,CAAA;QAC7C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KACrB;IAEM,MAAM,CAAC,KAAa;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAA;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACpE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CACzC,CAAA;KACJ;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACvB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAA;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAC3C,CAAA;SACJ;KACJ;IAEM,GAAG,CAAC,EAAU;QACjB,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAEM,IAAI,CAAC,GAAW,EAAE,GAAW;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YACxC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAEM,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;CACJ;;MC9HY,iBAAkB,SAAQ,WAAW;IAE9C,YACI,MAAc,EACd,KAAc,EACd,KAAa,EACb,OAAe;QAGf,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACzB,MAAM,GAAG,IAAI,MAAM,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE,EAAE,CAAA;aAC5C;YACD,MAAM,GAAG,KAAK,MAAM,EAAE,CAAA;SACzB;QAGD,KAAK,CAAC,6BAA6B,MAAM,KAAK,OAAO,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACrB;CACJ;;ACyDD,SAAS,iBAAiB,CAAC,EAAU;IACjC,QACI,EAAE,KAAK,gBAAgB;QACvB,EAAE,KAAK,UAAU;QACjB,EAAE,KAAK,cAAc;QACrB,EAAE,KAAK,QAAQ;QACf,EAAE,KAAK,QAAQ;QACf,EAAE,KAAK,QAAQ;QACf,EAAE,KAAK,YAAY;QACnB,EAAE,KAAK,eAAe;QACtB,EAAE,KAAK,gBAAgB;QACvB,EAAE,KAAK,iBAAiB;QACxB,EAAE,KAAK,kBAAkB;QACzB,EAAE,KAAK,gBAAgB;QACvB,EAAE,KAAK,iBAAiB;QACxB,EAAE,KAAK,YAAY,EACtB;CACJ;AAED,SAAS,uBAAuB,CAAC,EAAU;IACvC,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,UAAU,IAAI,EAAE,KAAK,OAAO,CAAA;CAC9D;AAED,SAAS,sBAAsB,CAAC,EAAU;IACtC,QACI,YAAY,CAAC,EAAE,CAAC;QAChB,EAAE,KAAK,UAAU;QACjB,EAAE,KAAK,OAAO;QACd,EAAE,KAAK,kBAAkB;QACzB,EAAE,KAAK,eAAe,EACzB;CACJ;AAED,SAAS,8BAA8B,CAAC,EAAU;IAC9C,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAA;CAC7C;AAED,SAAS,+BAA+B,CAAC,EAAU;IAC/C,OAAO,8BAA8B,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,CAAA;CAClE;AAsSD,MAAa,eAAe;IAoBxB,YAAmB,OAAiC;QAlBnC,YAAO,GAAG,IAAI,MAAM,EAAE,CAAA;QAC/B,WAAM,GAAG,KAAK,CAAA;QACd,WAAM,GAAG,KAAK,CAAA;QACd,kBAAa,GAAG,CAAC,CAAA;QACjB,kBAAa,GAAG,CAAC,CAAA;QACjB,kBAAa,GAAG,CAAC,CAAA;QACjB,kBAAa,GAAG,EAAE,CAAA;QAClB,kBAAa,GAAG,EAAE,CAAA;QAClB,kBAAa,GAAG,EAAE,CAAA;QAClB,iCAA4B,GAAG,KAAK,CAAA;QACpC,wBAAmB,GAAG,CAAC,CAAA;QACvB,gBAAW,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;QAO3C,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAA;KAChC;IAQM,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAE9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC7C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;YAC1C,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;SAChE;aAAM,IAAI,KAAK,IAAI,GAAG,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;SACtB;aAAM;YACH,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACrD,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAClC;IAQM,aAAa,CAChB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QACvC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAEjC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aAC/C;YACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvB,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBAC5B,MAAM,GAAG,IAAI,CAAA;aAChB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBACnC,UAAU,GAAG,IAAI,CAAA;aACpB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBACnC,SAAS,GAAG,IAAI,CAAA;aACnB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,MAAM,GAAG,IAAI,CAAA;aAChB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,MAAM,GAAG,IAAI,CAAA;aAChB;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC/D,UAAU,GAAG,IAAI,CAAA;aACpB;iBAAM;gBACH,IAAI,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aAC5C;SACJ;QACD,IAAI,CAAC,OAAO,CACR,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,CACb,CAAA;KACJ;IASM,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM,EAC3B,KAAK,GAAG,KAAK;QAEb,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAA;QAErB,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,IAAI,CAAC,WAAW,IAAI,IAAI;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAC3B;YACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClB,IAAI,CAAC,cAAc,EAAE,CAAA;SACxB;KACJ;IAID,IAAY,MAAM;QACd,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;KACtD;IAED,IAAY,WAAW;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAA;KAC3C;IAEO,cAAc,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;SACtC;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SAC3C;KACJ;IAEO,OAAO,CACX,KAAa,EACb,GAAW,EACX,MAAe,EACf,UAAmB,EACnB,SAAkB,EAClB,OAAgB,EAChB,MAAe,EACf,MAAe,EACf,UAAmB;QAEnB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,CACb,CAAA;SACJ;KACJ;IAEO,cAAc,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;SACtC;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SAC3C;KACJ;IAEO,kBAAkB,CAAC,KAAa;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;SAC1C;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,GAAW;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SAC/C;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,KAAa;QACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;SACjD;KACJ;IAEO,kBAAkB,CACtB,KAAa,EACb,GAAW,EACX,KAAa;QAEb,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;SACtD;KACJ;IAEO,YAAY,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;SACpC;KACJ;IAEO,YAAY,CAAC,KAAa,EAAE,GAAW;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SACzC;KACJ;IAEO,qBAAqB,CAAC,KAAa,EAAE,IAAmB;QAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;SACnD;KACJ;IAEO,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,IAAmB;QAEnB,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;SACxD;KACJ;IAEO,YAAY,CAChB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SAC3D;KACJ;IAEO,0BAA0B,CAC9B,KAAa,EACb,IAAgC,EAChC,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SAChE;KACJ;IAEO,0BAA0B,CAC9B,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SACrE;KACJ;IAEO,eAAe,CACnB,KAAa,EACb,GAAW,EACX,IAAqB;QAErB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;SAClD;KACJ;IAEO,uBAAuB,CAC3B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SAClE;KACJ;IAEO,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW;QAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;SACpD;KACJ;IAEO,oBAAoB,CACxB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SAC/D;KACJ;IAEO,6BAA6B,CACjC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CACvC,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,CACT,CAAA;SACJ;KACJ;IAEO,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa;QACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;SAC/C;KACJ;IAEO,eAAe,CACnB,KAAa,EACb,GAAW,EACX,GAAoB;QAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SACjD;KACJ;IAEO,qBAAqB,CAAC,KAAa,EAAE,MAAe;QACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;SACrD;KACJ;IAEO,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,MAAe;QAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SAC1D;KACJ;IAEO,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW;QAEX,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SAC5D;KACJ;IAMD,IAAY,MAAM;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;KAC7B;IAED,IAAY,KAAK;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;KAC5B;IAED,IAAY,gBAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;KACvC;IAED,IAAY,aAAa;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;KACpC;IAED,IAAY,cAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;IAED,IAAY,cAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;IAEO,KAAK,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW;QACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;KACtD;IAEO,MAAM,CAAC,KAAa;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAC7B;IAEO,OAAO;QACX,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;KACzB;IAEO,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;KAC9B;IAEO,IAAI,CAAC,GAAW,EAAE,GAAW;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KACrC;IAEO,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAC1C;IAIO,KAAK,CAAC,OAAe;QACzB,MAAM,IAAI,iBAAiB,CACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,KAAK,EACV,OAAO,CACV,CAAA;KACJ;IAGO,aAAa;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB,SAAS;YACL,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,GAAG,iBAAiB,GAAG,oBAAoB,CAAA;gBAC/D,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;aACrC;YACD,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IAAI,EAAE,KAAK,cAAc,EAAE;gBAC9B,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,iBAAiB,EAAE;gBACjC,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,kBAAkB,EAAE;gBAClC,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IACH,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,OAAO;iBAC1B,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAC3C;gBACE,MAAK;aACR;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IASO,cAAc;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACtD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;QAEhC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE;YAC9B,IAAI,EAAE,KAAK,gBAAgB,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;aAC9B;YACD,IAAI,EAAE,KAAK,cAAc,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;aACrC;YACD,IAAI,EAAE,KAAK,kBAAkB,IAAI,EAAE,KAAK,iBAAiB,EAAE;gBACvD,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACzC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAA;SAC5C;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;aACjD;SACJ;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAMO,oBAAoB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,EAAE,GAAG,CAAC,CAAA;QAEV,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,CAAC,CAAC,EAAE;YACxC,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IAAI,EAAE,KAAK,cAAc,EAAE;gBAC9B,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,iBAAiB,EAAE;gBACjC,OAAO,GAAG,IAAI,CAAA;aACjB;iBAAM,IAAI,EAAE,KAAK,kBAAkB,EAAE;gBAClC,OAAO,GAAG,KAAK,CAAA;aAClB;iBAAM,IACH,EAAE,KAAK,eAAe;gBACtB,CAAC,OAAO;iBACP,IAAI,CAAC,aAAa,KAAK,YAAY;qBAC/B,IAAI,CAAC,cAAc,KAAK,YAAY;wBACjC,IAAI,CAAC,cAAc,KAAK,UAAU;wBAClC,IAAI,CAAC,cAAc,KAAK,eAAe,CAAC,CAAC,EACnD;gBACE,KAAK,IAAI,CAAC,CAAA;aACb;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,KAAK,CAAA;KACf;IAUO,kBAAkB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,CAAA;QAET,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC9B,GAAG;YACC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAA;SAC/B,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;QAEhC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC7C;IAUO,kBAAkB,CAAC,CAAS;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACjC,OAAO,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;SAE1D;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;KAChD;IAmBO,WAAW;QACf,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5B,QACI,IAAI,CAAC,gBAAgB,EAAE;iBACtB,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EAC3D;SACJ;QACD,QACI,CAAC,IAAI,CAAC,gBAAgB,EAAE;aACnB,CAAC,IAAI,CAAC,4BAA4B;gBAC/B,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACxC,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EACnE;KACJ;IACO,yBAAyB;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,CAAA;KACd;IAyBO,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAA;QAGzC,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC9C,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,CAAC,EAAE;YAChD,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE;YAC9C,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAC9D,OAAO,IAAI,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE;YAC1C,MAAM,UAAU,GACZ,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACtD,IAAI,MAAM,GAAG,KAAK,CAAA;YAClB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE;gBAC9D,MAAM,IAAI,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;gBACpD,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBACpD,IAAI,CAAC,kBAAkB,EAAE,CAAA;gBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;oBAC7B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;iBACnC;gBACD,IAAI,CAAC,4BAA4B,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;gBAC/D,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBAChE,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAmBO,iBAAiB,CAAC,SAAS,GAAG,KAAK;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,MAAM,GAAG,KAAK,CAAA;QAGlB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpB,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;SACjC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC3B,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;SACjC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC/B,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,CAAC,CAAA;SACV;aAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;YAC5C,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YACxB,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;SAC3B;aAAM;YACH,OAAO,KAAK,CAAA;SACf;QAGD,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAEhC,IAAI,CAAC,SAAS,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SACzD;QACD,OAAO,IAAI,CAAA;KACd;IAaO,mBAAmB,CAAC,OAAgB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAA;YAC7C,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;0BACtC,IAAI,CAAC,aAAa;0BAClB,MAAM,CAAC,iBAAiB,CAAA;iBACjC;gBACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;oBAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;wBACrD,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;qBACtD;oBACD,OAAO,IAAI,CAAA;iBACd;aACJ;YACD,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC1C,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;aACtC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAeO,WAAW;QACf,QACI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE,EAC/B;KACJ;IASO,UAAU;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACzD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IASO,+BAA+B;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBAC1B,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IASO,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;aACnC;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACpC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IASO,qBAAqB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YAC3B,IAAI,IAAI,GAAkB,IAAI,CAAA;YAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;gBAC1B,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;oBAC9B,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;iBAC5B;aACJ;iBAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE;gBAC/C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;aAC9B;YAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;aACnC;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAEnD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAkBO,mBAAmB;QACvB,QACI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,gCAAgC,EAAE;YACvC,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,8BAA8B,EAAE;YACrC,IAAI,CAAC,+BAA+B,EAAE,EACzC;KACJ;IASO,gCAAgC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,gBAAgB,KAAK,cAAc;YACxC,IAAI,CAAC,aAAa,KAAK,iBAAiB,EAC1C;YACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;YACnD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAaO,8BAA8B;QAClC,IAAI,IAAI,CAAC,mBAAmB,CAAgB,IAAI,CAAC,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;SAClC;QACD,OAAO,KAAK,CAAA;KACf;IAWO,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAWO,+BAA+B;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IACI,EAAE,KAAK,CAAC,CAAC;YACT,EAAE,KAAK,gBAAgB;YACvB,EAAE,KAAK,UAAU;YACjB,EAAE,KAAK,cAAc;YACrB,EAAE,KAAK,QAAQ;YACf,EAAE,KAAK,QAAQ;YACf,EAAE,KAAK,QAAQ;YACf,EAAE,KAAK,YAAY;YACnB,EAAE,KAAK,eAAe;YACtB,EAAE,KAAK,gBAAgB;YACvB,EAAE,KAAK,iBAAiB;YACxB,EAAE,KAAK,YAAY,EACrB;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;oBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;oBACxC,OAAO,IAAI,CAAA;iBACd;gBACD,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;aAC7C;YACD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;SAC9B;QACD,OAAO,KAAK,CAAA;KACf;IAiBO,iBAAiB;QACrB,IACI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,CAAC,sBAAsB,EAAE;aAC5B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAC3C;YACE,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;SAC/B;QACD,OAAO,KAAK,CAAA;KACf;IAWO,oBAAoB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;YAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC9C,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;aAC/B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAoBO,2BAA2B;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAChE,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAChE,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC9D,OAAO,IAAI,CAAA;SACd;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IACI,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,WAAW,IAAI,IAAI;aACvB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;iBACvB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAC/C;YACE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IACI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBAC1B,IAAI,CAAC,iCAAiC,EAAE;gBACxC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAC7B;gBACE,IAAI,CAAC,6BAA6B,CAC9B,KAAK,GAAG,CAAC,EACT,IAAI,CAAC,KAAK,EACV,UAAU,EACV,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,IAAI,IAAI,EAC1B,MAAM,CACT,CAAA;gBACD,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;SACtC;QAED,OAAO,KAAK,CAAA;KACf;IAiBO,sBAAsB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,8BAA8B,EAAE;aACpC,CAAC,IAAI,CAAC,MAAM;gBACT,CAAC,IAAI,CAAC,MAAM;gBACZ,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,EAAE,EAC1B;YACE,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IASO,iBAAiB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;gBACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACvC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;gBACtD,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;SACxC;QACD,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YACzC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACzC,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;aAC7C;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACrD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAkBO,kBAAkB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;QACzC,SAAS;YAEL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;aACR;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YAG9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBACxB,SAAQ;aACX;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAGzD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;aACR;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YAG9B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBAC1B,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;iBACxC;gBACD,SAAQ;aACX;YACD,IAAI,GAAG,GAAG,GAAG,EAAE;gBACX,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;aACtD;YAED,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SAC/D;KACJ;IAiBO,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAEhC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,IAAI,EAAE,KAAK,kBAAkB,EAAE;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YACvD,OAAO,IAAI,CAAA;SACd;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;gBAC3B,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,iBAAiB,EAAE;gBAC7D,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;gBACnC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;gBACvD,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;aAC/B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAmBO,kBAAkB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAGxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACtC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;YAChC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QAGD,IAAI,EAAE,GAAG,CAAC,CAAA;QACV,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,CAAC,IAAI,CAAC,MAAM;YACZ,IAAI,CAAC,gBAAgB,KAAK,iBAAiB;aAC1C,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,EAC/D;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;SACd;QAED,QACI,IAAI,CAAC,2BAA2B,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,EACtE;KACJ;IAWO,YAAY;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;gBAC7D,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC3C;QACD,OAAO,KAAK,CAAA;KACf;IAaO,uBAAuB;QAC3B,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBACnC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;aACjE;YACD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAgBO,wBAAwB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC3D,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,cAAc;YACrB,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;YACE,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;SAC1B;aAAM,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,IAAI,uBAAuB,CAAC,EAAE,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,OAAO,IAAI,CAAA;SACd;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAkBO,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;QAC3D,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,cAAc;YACrB,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;YACE,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;SAC1B;aAAM,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,IAAI,sBAAsB,CAAC,EAAE,CAAC,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,OAAO,IAAI,CAAA;SACd;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAUO,iBAAiB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAUO,OAAO;QACX,IACI,IAAI,CAAC,gBAAgB,KAAK,SAAS;YACnC,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACrC;YACE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAYO,gBAAgB;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAA;YAC7B,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAA;YAC7B,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;YACnC,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAA;YACxC,OAAO,IAAI,CAAA;SACd;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;YACnC,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAaO,gBAAgB;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;YAC9B,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAiBO,8BAA8B,CAAC,UAAU,GAAG,KAAK;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,CAAA;QAEvC,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IACI,CAAC,KAAK,IAAI,IAAI,CAAC,mCAAmC,EAAE;gBACpD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;iBACxB,KAAK,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC,EACnD;gBACE,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;gBACtB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;aACvC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAUO,mCAAmC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;YAC/B,IACI,eAAe,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAC3B;gBACE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;gBAChC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;oBACtD,OAAO,IAAI,CAAA;iBACd;aACJ;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QAED,OAAO,KAAK,CAAA;KACf;IAUO,+BAA+B;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IACI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACpC;YACE,OAAO,IAAI,CAAA;SACd;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,KAAK,CAAA;KACf;IAkBO,iBAAiB;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IACO,qBAAqB,CAAC,EAAU;QACpC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;YACX,OAAO,KAAK,CAAA;SACf;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAA;SACjD;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;SAC3B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,EAAE,EAAE,KAAK,iBAAiB,IAAI,EAAE,KAAK,iBAAiB,CAAC,CAAA;SACjE;QACD,OAAO,EAAE,KAAK,iBAAiB,CAAA;KAClC;IAYO,gBAAgB;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,IAAI,SAAS,EAAE;YACnC,GAAG;gBACC,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,GAAG,SAAS,CAAC,CAAA;gBAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;aACjB,QACG,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,KAAK,SAAS;gBACzC,EAAE,IAAI,SAAS,EAClB;YACD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAcO,iCAAiC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAGxB,IAAI,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;YACvC,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;gBACvC,IACI,sBAAsB,CAClB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,CACrB,EACH;oBACE,OAAO,IAAI,CAAA;iBACd;gBACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;aACtC;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAGlB,IAAI,IAAI,CAAC,iCAAiC,EAAE,EAAE;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;YACtC,IACI,sBAAsB,CAClB,IAAI,CAAC,WAAW,EAChB,kBAAkB,EAClB,WAAW,CACd,EACH;gBACE,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAA;gBACvC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;gBAChC,OAAO,IAAI,CAAA;aACd;YACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;gBAC3D,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;gBAChC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;gBACvB,OAAO,IAAI,CAAA;aACd;YACD,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;SACtC;QACD,OAAO,KAAK,CAAA;KACf;IAYO,sBAAsB;QAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,OAAO,8BAA8B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC1D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,uBAAuB;QAC3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,OAAO,+BAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC3D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,iCAAiC;QACrC,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAA;KACxC;IAaO,oBAAoB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;gBAC3B,OAAO,IAAI,CAAA;aACd;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;aAC/B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SACrB;QACD,OAAO,KAAK,CAAA;KACf;IAcO,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,OAAO,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC1C,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAcO,YAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,OAAO,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACtC,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAoBO,4BAA4B;QAChC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;YAC7B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBACtB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;oBACjC,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;iBAC7D;qBAAM;oBACH,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;iBACnC;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;aAC1B;YACD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;KACf;IAWO,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,SAAS,CAAA;YACnC,OAAO,IAAI,CAAA;SACd;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,OAAO,KAAK,CAAA;KACf;IAYO,iBAAiB,CAAC,MAAc;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAClB,OAAO,KAAK,CAAA;aACf;YACD,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;SACjB;QACD,OAAO,IAAI,CAAA;KACd;CACJ;;ACh5ED,MAAM,YAAY,GAAY,EAAS,CAAA;AACvC,MAAM,UAAU,GAAU,EAAS,CAAA;AACnC,MAAM,mBAAmB,GAAmB,EAAS,CAAA;AAErD,MAAM,iBAAiB;IAUnB,YAAmB,OAA8B;QAPzC,UAAK,GAAmB,YAAY,CAAA;QACpC,WAAM,GAAU,UAAU,CAAA;QAC1B,oBAAe,GAAoB,EAAE,CAAA;QACrC,qBAAgB,GAAqB,EAAE,CAAA;QAExC,WAAM,GAAG,EAAE,CAAA;QAGd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAA;KAC9D;IAED,IAAW,OAAO;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KACpB;IAED,IAAW,KAAK;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;KACrB;IAEM,OAAO,CACV,KAAa,EACb,GAAW,EACX,MAAe,EACf,UAAmB,EACnB,SAAkB,EAClB,OAAgB,EAChB,MAAe,EACf,MAAe,EACf,UAAmB;QAEnB,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,MAAM;YACN,UAAU;YACV,SAAS;YACT,OAAO;YACP,MAAM;YACN,MAAM;YACN,UAAU;SACb,CAAA;KACJ;IAEM,cAAc,CAAC,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;KACnC;IAEM,cAAc,CAAC,KAAa,EAAE,GAAW;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAE9C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;YACzB,MAAM,KAAK,GACP,OAAO,GAAG,KAAK,QAAQ;kBACjB,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;kBAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAE,CAAA;YAC1D,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAA;YAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACnC;KACJ;IAEM,kBAAkB,CAAC,KAAa;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IACI,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3B,MAAM,CAAC,IAAI,KAAK,gBAAgB;YAChC,MAAM,CAAC,IAAI,KAAK,OAAO;YACvB,MAAM,CAAC,IAAI,KAAK,SAAS,EAC3B;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,aAAa;YACnB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvC;IAEM,kBAAkB,CAAC,KAAa,EAAE,GAAW;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,YAAY,CAAC,KAAa;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,OAAO;YACb,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,YAAY,CAAC,KAAa,EAAE,GAAW;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,qBAAqB,CAAC,KAAa,EAAE,IAAmB;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,IAAI;YACJ,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;SACjB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EACpC;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,YAAY,CACf,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAGD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACrC,IACI,OAAO,IAAI,IAAI;YACf,OAAO,CAAC,IAAI,KAAK,YAAY;aAC5B,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,EAChE;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,GAAe;YACrB,IAAI,EAAE,YAAY;YAClB,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YAC1C,GAAG;YACH,GAAG;YACH,MAAM;YACN,OAAO;SACV,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;KACxB;IAEM,0BAA0B,CAC7B,KAAa,EACb,IAAgC,EAChC,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,IAAyB,IAAI,CAAC,KAAK,GAAG;YAC5C,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,IAAI;YACJ,MAAM;YACN,YAAY,EAAE,EAAE;SACnB,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;IAEM,0BAA0B,CAAC,KAAa,EAAE,GAAW;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,eAAe,CAClB,KAAa,EACb,GAAW,EACX,IAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;SACP,CAAC,CAAA;KACL;IAEM,uBAAuB,CAC1B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;SACT,CAAC,CAAA;KACL;IAEM,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;SACP,CAAC,CAAA;KACL;IAEM,oBAAoB,CACvB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAEC,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;YAC/C,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;SACT,CAAC,CAAA;KACL;IAEM,6BAA6B,CAChC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAEC,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;YAC/C,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,GAAG;YACH,KAAK;YACL,MAAM;SACT,CAAC,CAAA;KACL;IAEM,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAEC,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;YAC/C,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,KAAK;SACR,CAAC,CAAA;KACL;IAEM,eAAe,CAClB,KAAa,EACb,GAAW,EACX,GAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,GAAkB;YACxB,IAAI,EAAE,eAAe;YACrB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;YACH,QAAQ,EAAE,mBAAmB;SAChC,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAClC;IAEM,qBAAqB,CAAC,KAAa,EAAE,MAAe;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,KAAK,GAAG;YACT,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,EAAE;YACP,MAAM;YACN,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EACpC;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAGD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,IACI,CAAC,GAAG;YACJ,CAAC,GAAG;YACJ,CAAC,MAAM;YACP,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3B,MAAM,CAAC,KAAK,KAAK,WAAW,EAC9B;YACE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,GAAwB;YAC9B,IAAI,EAAE,qBAAqB;YAC3B,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;YACH,GAAG;SACN,CAAA;QACD,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;QACjB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;QACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACtB;CACJ;AAwBD,MAAa,YAAY;IAQrB,YAAmB,OAA8B;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACrD;IASM,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;QAC/B,MAAM,OAAO,GAAkB;YAC3B,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;YACH,GAAG,EAAE,MAAM;YACX,OAAO;YACP,KAAK;SACR,CAAA;QACD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAA;QACxB,KAAK,CAAC,MAAM,GAAG,OAAO,CAAA;QACtB,OAAO,OAAO,CAAA;KACjB;IASM,UAAU,CACb,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM;QAE3B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;KAC3B;IAUM,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,MAAc,MAAM,CAAC,MAAM,EAC3B,KAAK,GAAG,KAAK;QAEb,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;KAC7B;CACJ;;MC/jBY,aAAa;IAOtB,YAAmB,QAAgC;QAC/C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;KAC5B;IAMM,KAAK,CAAC,IAAU;QACnB,QAAQ,IAAI,CAAC,IAAI;YACb,KAAK,aAAa;gBACd,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC3B,MAAK;YACT,KAAK,WAAW;gBACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;YACT,KAAK,eAAe;gBAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;YACT,KAAK,gBAAgB;gBACjB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;YACT,KAAK,WAAW;gBACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;YACT,KAAK,gBAAgB;gBACjB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;YACT,KAAK,qBAAqB;gBACtB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;gBACnC,MAAK;YACT,KAAK,cAAc;gBACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBAC5B,MAAK;YACT,KAAK,OAAO;gBACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;YACT,KAAK,OAAO;gBACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;YACT,KAAK,SAAS;gBACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACvB,MAAK;YACT,KAAK,YAAY;gBACb,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;gBAC1B,MAAK;YACT,KAAK,eAAe;gBAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;YACT;gBACI,MAAM,IAAI,KAAK,CAAC,iBAAkB,IAAY,CAAC,IAAI,EAAE,CAAC,CAAA;SAC7D;KACJ;IAEO,gBAAgB,CAAC,IAAiB;QACtC,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;SAC1C;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;SAC1C;KACJ;IACO,cAAc,CAAC,IAAe;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;SAC9C;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;KACJ;IACO,kBAAkB,CAAC,IAAmB;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;KACJ;IACO,mBAAmB,CAAC,IAAoB;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;KACJ;IACO,cAAc,CAAC,IAAe;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACxC;KACJ;IACO,mBAAmB,CAAC,IAAoB;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC7C;KACJ;IACO,wBAAwB,CAAC,IAAyB;QACtD,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;SAClD;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;SAClD;KACJ;IACO,iBAAiB,CAAC,IAAkB;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;SAC3C;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;SAC3C;KACJ;IACO,UAAU,CAAC,IAAW;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;KACJ;IACO,UAAU,CAAC,IAAW;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACpC;KACJ;IACO,YAAY,CAAC,IAAa;QAC9B,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;SACtC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;SACtC;KACJ;IACO,eAAe,CAAC,IAAgB;QACpC,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACzC;KACJ;IACO,kBAAkB,CAAC,IAAmB;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;SAC5C;KACJ;CACJ;;SCzLe,kBAAkB,CAC9B,MAAuB,EACvB,OAA8B;IAE9B,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;CAChE;AAOD,SAAgB,qBAAqB,CACjC,MAAc,EACd,OAAiC;IAEjC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;CAC9D;AAED,SAAgB,cAAc,CAC1B,IAAc,EACd,QAAgC;IAEhC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;CAC1C;;;;"} \ No newline at end of file diff --git a/node_modules/regexpp/package.json b/node_modules/regexpp/package.json new file mode 100644 index 0000000..92dadd8 --- /dev/null +++ b/node_modules/regexpp/package.json @@ -0,0 +1,91 @@ +{ + "name": "regexpp", + "version": "3.2.0", + "description": "Regular expression parser for ECMAScript.", + "engines": { + "node": ">=8" + }, + "main": "index", + "files": [ + "index.*" + ], + "exports": { + ".": { + "import": "./index.mjs", + "default": "./index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": {}, + "devDependencies": { + "@mysticatea/eslint-plugin": "^11.0.0", + "@types/eslint": "^4.16.2", + "@types/jsdom": "^12.2.4", + "@types/mocha": "^5.2.2", + "@types/node": "^12.6.8", + "codecov": "^3.5.0", + "dts-bundle": "^0.7.3", + "eslint": "^6.1.0", + "jsdom": "^15.1.1", + "mocha": "^6.2.0", + "npm-run-all": "^4.1.5", + "nyc": "^14.1.1", + "rimraf": "^2.6.2", + "rollup": "^1.17.0", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-sourcemaps": "^0.4.2", + "ts-node": "^8.3.0", + "typescript": "^3.5.3" + }, + "scripts": { + "prebuild": "npm run -s clean", + "build": "run-s build:*", + "build:tsc": "tsc --module es2015", + "build:rollup": "rollup -c", + "build:dts": "dts-bundle --name regexpp --main .temp/index.d.ts --out ../index.d.ts", + "clean": "rimraf .temp index.*", + "codecov": "nyc report -r lcovonly && codecov -t ${CODECOV_TOKEN} --disable=gcov", + "lint": "eslint scripts src test --ext .ts", + "pretest": "run-s build lint", + "test": "nyc _mocha \"test/*.ts\" --reporter dot --timeout 10000", + "update:test": "ts-node scripts/update-fixtures.ts", + "update:unicode": "run-s update:unicode:*", + "update:unicode:ids": "ts-node scripts/update-unicode-ids.ts", + "update:unicode:props": "ts-node scripts/update-unicode-properties.ts", + "preversion": "npm test", + "version": "npm run -s build", + "postversion": "git push && git push --tags", + "prewatch": "npm run -s clean", + "watch": "_mocha \"test/*.ts\" --require ts-node/register --reporter dot --timeout 10000 --watch-extensions ts --watch --growl" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/mysticatea/regexpp.git" + }, + "keywords": [ + "regexp", + "regular", + "expression", + "parser", + "validator", + "ast", + "abstract", + "syntax", + "tree", + "ecmascript", + "es2015", + "es2016", + "es2017", + "es2018", + "es2019", + "es2020", + "annexB" + ], + "author": "Toru Nagashima (https://github.com/mysticatea)", + "license": "MIT", + "bugs": { + "url": "https://github.com/mysticatea/regexpp/issues" + }, + "homepage": "https://github.com/mysticatea/regexpp#readme", + "funding": "https://github.com/sponsors/mysticatea" +} diff --git a/node_modules/resolve-from/index.js b/node_modules/resolve-from/index.js new file mode 100644 index 0000000..d092447 --- /dev/null +++ b/node_modules/resolve-from/index.js @@ -0,0 +1,47 @@ +'use strict'; +const path = require('path'); +const Module = require('module'); +const fs = require('fs'); + +const resolveFrom = (fromDir, moduleId, silent) => { + if (typeof fromDir !== 'string') { + throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``); + } + + if (typeof moduleId !== 'string') { + throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``); + } + + try { + fromDir = fs.realpathSync(fromDir); + } catch (err) { + if (err.code === 'ENOENT') { + fromDir = path.resolve(fromDir); + } else if (silent) { + return null; + } else { + throw err; + } + } + + const fromFile = path.join(fromDir, 'noop.js'); + + const resolveFileName = () => Module._resolveFilename(moduleId, { + id: fromFile, + filename: fromFile, + paths: Module._nodeModulePaths(fromDir) + }); + + if (silent) { + try { + return resolveFileName(); + } catch (err) { + return null; + } + } + + return resolveFileName(); +}; + +module.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId); +module.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true); diff --git a/node_modules/resolve-from/license b/node_modules/resolve-from/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/resolve-from/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/resolve-from/package.json b/node_modules/resolve-from/package.json new file mode 100644 index 0000000..96bade5 --- /dev/null +++ b/node_modules/resolve-from/package.json @@ -0,0 +1,34 @@ +{ + "name": "resolve-from", + "version": "4.0.0", + "description": "Resolve the path of a module like `require.resolve()` but from a given path", + "license": "MIT", + "repository": "sindresorhus/resolve-from", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "require", + "resolve", + "path", + "module", + "from", + "like", + "import" + ], + "devDependencies": { + "ava": "*", + "xo": "*" + } +} diff --git a/node_modules/resolve-from/readme.md b/node_modules/resolve-from/readme.md new file mode 100644 index 0000000..e539f85 --- /dev/null +++ b/node_modules/resolve-from/readme.md @@ -0,0 +1,72 @@ +# resolve-from [![Build Status](https://travis-ci.org/sindresorhus/resolve-from.svg?branch=master)](https://travis-ci.org/sindresorhus/resolve-from) + +> Resolve the path of a module like [`require.resolve()`](https://nodejs.org/api/globals.html#globals_require_resolve) but from a given path + + +## Install + +``` +$ npm install resolve-from +``` + + +## Usage + +```js +const resolveFrom = require('resolve-from'); + +// There is a file at `./foo/bar.js` + +resolveFrom('foo', './bar'); +//=> '/Users/sindresorhus/dev/test/foo/bar.js' +``` + + +## API + +### resolveFrom(fromDir, moduleId) + +Like `require()`, throws when the module can't be found. + +### resolveFrom.silent(fromDir, moduleId) + +Returns `null` instead of throwing when the module can't be found. + +#### fromDir + +Type: `string` + +Directory to resolve from. + +#### moduleId + +Type: `string` + +What you would use in `require()`. + + +## Tip + +Create a partial using a bound function if you want to resolve from the same `fromDir` multiple times: + +```js +const resolveFromFoo = resolveFrom.bind(null, 'foo'); + +resolveFromFoo('./bar'); +resolveFromFoo('./baz'); +``` + + +## Related + +- [resolve-cwd](https://github.com/sindresorhus/resolve-cwd) - Resolve the path of a module from the current working directory +- [import-from](https://github.com/sindresorhus/import-from) - Import a module from a given path +- [import-cwd](https://github.com/sindresorhus/import-cwd) - Import a module from the current working directory +- [resolve-pkg](https://github.com/sindresorhus/resolve-pkg) - Resolve the path of a package regardless of it having an entry point +- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import a module lazily +- [resolve-global](https://github.com/sindresorhus/resolve-global) - Resolve the path of a globally installed module + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/reusify/.coveralls.yml b/node_modules/reusify/.coveralls.yml new file mode 100644 index 0000000..359f683 --- /dev/null +++ b/node_modules/reusify/.coveralls.yml @@ -0,0 +1 @@ +repo_token: yIxhFqtaaz5iGVYfie9mODehFYogm8S8L diff --git a/node_modules/reusify/.travis.yml b/node_modules/reusify/.travis.yml new file mode 100644 index 0000000..1970476 --- /dev/null +++ b/node_modules/reusify/.travis.yml @@ -0,0 +1,28 @@ +language: node_js +sudo: false + +node_js: + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 4.0 + - iojs-v3 + - iojs-v2 + - iojs-v1 + - 0.12 + - 0.10 + +cache: + directories: + - node_modules + +after_script: +- npm run coverage + +notifications: + email: + on_success: never + on_failure: always diff --git a/node_modules/reusify/LICENSE b/node_modules/reusify/LICENSE new file mode 100644 index 0000000..fbf3a01 --- /dev/null +++ b/node_modules/reusify/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Matteo Collina + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/reusify/README.md b/node_modules/reusify/README.md new file mode 100644 index 0000000..badcb7c --- /dev/null +++ b/node_modules/reusify/README.md @@ -0,0 +1,145 @@ +# reusify + +[![npm version][npm-badge]][npm-url] +[![Build Status][travis-badge]][travis-url] +[![Coverage Status][coveralls-badge]][coveralls-url] + +Reuse your objects and functions for maximum speed. This technique will +make any function run ~10% faster. You call your functions a +lot, and it adds up quickly in hot code paths. + +``` +$ node benchmarks/createNoCodeFunction.js +Total time 53133 +Total iterations 100000000 +Iteration/s 1882069.5236482036 + +$ node benchmarks/reuseNoCodeFunction.js +Total time 50617 +Total iterations 100000000 +Iteration/s 1975620.838848608 +``` + +The above benchmark uses fibonacci to simulate a real high-cpu load. +The actual numbers might differ for your use case, but the difference +should not. + +The benchmark was taken using Node v6.10.0. + +This library was extracted from +[fastparallel](http://npm.im/fastparallel). + +## Example + +```js +var reusify = require('reusify') +var fib = require('reusify/benchmarks/fib') +var instance = reusify(MyObject) + +// get an object from the cache, +// or creates a new one when cache is empty +var obj = instance.get() + +// set the state +obj.num = 100 +obj.func() + +// reset the state. +// if the state contains any external object +// do not use delete operator (it is slow) +// prefer set them to null +obj.num = 0 + +// store an object in the cache +instance.release(obj) + +function MyObject () { + // you need to define this property + // so V8 can compile MyObject into an + // hidden class + this.next = null + this.num = 0 + + var that = this + + // this function is never reallocated, + // so it can be optimized by V8 + this.func = function () { + if (null) { + // do nothing + } else { + // calculates fibonacci + fib(that.num) + } + } +} +``` + +The above example was intended for synchronous code, let's see async: +```js +var reusify = require('reusify') +var instance = reusify(MyObject) + +for (var i = 0; i < 100; i++) { + getData(i, console.log) +} + +function getData (value, cb) { + var obj = instance.get() + + obj.value = value + obj.cb = cb + obj.run() +} + +function MyObject () { + this.next = null + this.value = null + + var that = this + + this.run = function () { + asyncOperation(that.value, that.handle) + } + + this.handle = function (err, result) { + that.cb(err, result) + that.value = null + that.cb = null + instance.release(that) + } +} +``` + +Also note how in the above examples, the code, that consumes an istance of `MyObject`, +reset the state to initial condition, just before storing it in the cache. +That's needed so that every subsequent request for an instance from the cache, +could get a clean instance. + +## Why + +It is faster because V8 doesn't have to collect all the functions you +create. On a short-lived benchmark, it is as fast as creating the +nested function, but on a longer time frame it creates less +pressure on the garbage collector. + +## Other examples +If you want to see some complex example, checkout [middie](https://github.com/fastify/middie) and [steed](https://github.com/mcollina/steed). + +## Acknowledgements + +Thanks to [Trevor Norris](https://github.com/trevnorris) for +getting me down the rabbit hole of performance, and thanks to [Mathias +Buss](http://github.com/mafintosh) for suggesting me to share this +trick. + +## License + +MIT + +[npm-badge]: https://badge.fury.io/js/reusify.svg +[npm-url]: https://badge.fury.io/js/reusify +[travis-badge]: https://api.travis-ci.org/mcollina/reusify.svg +[travis-url]: https://travis-ci.org/mcollina/reusify +[coveralls-badge]: https://coveralls.io/repos/mcollina/reusify/badge.svg?branch=master&service=github +[coveralls-url]: https://coveralls.io/github/mcollina/reusify?branch=master diff --git a/node_modules/reusify/benchmarks/createNoCodeFunction.js b/node_modules/reusify/benchmarks/createNoCodeFunction.js new file mode 100644 index 0000000..ce1aac7 --- /dev/null +++ b/node_modules/reusify/benchmarks/createNoCodeFunction.js @@ -0,0 +1,30 @@ +'use strict' + +var fib = require('./fib') +var max = 100000000 +var start = Date.now() + +// create a funcion with the typical error +// pattern, that delegates the heavy load +// to something else +function createNoCodeFunction () { + /* eslint no-constant-condition: "off" */ + var num = 100 + + ;(function () { + if (null) { + // do nothing + } else { + fib(num) + } + })() +} + +for (var i = 0; i < max; i++) { + createNoCodeFunction() +} + +var time = Date.now() - start +console.log('Total time', time) +console.log('Total iterations', max) +console.log('Iteration/s', max / time * 1000) diff --git a/node_modules/reusify/benchmarks/fib.js b/node_modules/reusify/benchmarks/fib.js new file mode 100644 index 0000000..e22cc48 --- /dev/null +++ b/node_modules/reusify/benchmarks/fib.js @@ -0,0 +1,13 @@ +'use strict' + +function fib (num) { + var fib = [] + + fib[0] = 0 + fib[1] = 1 + for (var i = 2; i <= num; i++) { + fib[i] = fib[i - 2] + fib[i - 1] + } +} + +module.exports = fib diff --git a/node_modules/reusify/benchmarks/reuseNoCodeFunction.js b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js new file mode 100644 index 0000000..3358d6e --- /dev/null +++ b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js @@ -0,0 +1,38 @@ +'use strict' + +var reusify = require('../') +var fib = require('./fib') +var instance = reusify(MyObject) +var max = 100000000 +var start = Date.now() + +function reuseNoCodeFunction () { + var obj = instance.get() + obj.num = 100 + obj.func() + obj.num = 0 + instance.release(obj) +} + +function MyObject () { + this.next = null + var that = this + this.num = 0 + this.func = function () { + /* eslint no-constant-condition: "off" */ + if (null) { + // do nothing + } else { + fib(that.num) + } + } +} + +for (var i = 0; i < max; i++) { + reuseNoCodeFunction() +} + +var time = Date.now() - start +console.log('Total time', time) +console.log('Total iterations', max) +console.log('Iteration/s', max / time * 1000) diff --git a/node_modules/reusify/package.json b/node_modules/reusify/package.json new file mode 100644 index 0000000..ee66aee --- /dev/null +++ b/node_modules/reusify/package.json @@ -0,0 +1,45 @@ +{ + "name": "reusify", + "version": "1.0.4", + "description": "Reuse objects and functions with style", + "main": "reusify.js", + "scripts": { + "lint": "standard", + "test": "tape test.js | faucet", + "istanbul": "istanbul cover tape test.js", + "coverage": "npm run istanbul; cat coverage/lcov.info | coveralls" + }, + "pre-commit": [ + "lint", + "test" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/reusify.git" + }, + "keywords": [ + "reuse", + "object", + "performance", + "function", + "fast" + ], + "author": "Matteo Collina ", + "license": "MIT", + "bugs": { + "url": "https://github.com/mcollina/reusify/issues" + }, + "homepage": "https://github.com/mcollina/reusify#readme", + "engines": { + "node": ">=0.10.0", + "iojs": ">=1.0.0" + }, + "devDependencies": { + "coveralls": "^2.13.3", + "faucet": "0.0.1", + "istanbul": "^0.4.5", + "pre-commit": "^1.2.2", + "standard": "^10.0.3", + "tape": "^4.8.0" + } +} diff --git a/node_modules/reusify/reusify.js b/node_modules/reusify/reusify.js new file mode 100644 index 0000000..e6f36f3 --- /dev/null +++ b/node_modules/reusify/reusify.js @@ -0,0 +1,33 @@ +'use strict' + +function reusify (Constructor) { + var head = new Constructor() + var tail = head + + function get () { + var current = head + + if (current.next) { + head = current.next + } else { + head = new Constructor() + tail = head + } + + current.next = null + + return current + } + + function release (obj) { + tail.next = obj + tail = obj + } + + return { + get: get, + release: release + } +} + +module.exports = reusify diff --git a/node_modules/reusify/test.js b/node_modules/reusify/test.js new file mode 100644 index 0000000..929cfd7 --- /dev/null +++ b/node_modules/reusify/test.js @@ -0,0 +1,66 @@ +'use strict' + +var test = require('tape') +var reusify = require('./') + +test('reuse objects', function (t) { + t.plan(6) + + function MyObject () { + t.pass('constructor called') + this.next = null + } + + var instance = reusify(MyObject) + var obj = instance.get() + + t.notEqual(obj, instance.get(), 'two instance created') + t.notOk(obj.next, 'next must be null') + + instance.release(obj) + + // the internals keeps a hot copy ready for reuse + // putting this one back in the queue + instance.release(instance.get()) + + // comparing the old one with the one we got + // never do this in real code, after release you + // should never reuse that instance + t.equal(obj, instance.get(), 'instance must be reused') +}) + +test('reuse more than 2 objects', function (t) { + function MyObject () { + t.pass('constructor called') + this.next = null + } + + var instance = reusify(MyObject) + var obj = instance.get() + var obj2 = instance.get() + var obj3 = instance.get() + + t.notOk(obj.next, 'next must be null') + t.notOk(obj2.next, 'next must be null') + t.notOk(obj3.next, 'next must be null') + + t.notEqual(obj, obj2) + t.notEqual(obj, obj3) + t.notEqual(obj3, obj2) + + instance.release(obj) + instance.release(obj2) + instance.release(obj3) + + // skip one + instance.get() + + var obj4 = instance.get() + var obj5 = instance.get() + var obj6 = instance.get() + + t.equal(obj4, obj) + t.equal(obj5, obj2) + t.equal(obj6, obj3) + t.end() +}) diff --git a/node_modules/rimraf/CHANGELOG.md b/node_modules/rimraf/CHANGELOG.md new file mode 100644 index 0000000..f116f14 --- /dev/null +++ b/node_modules/rimraf/CHANGELOG.md @@ -0,0 +1,65 @@ +# v3.0 + +- Add `--preserve-root` option to executable (default true) +- Drop support for Node.js below version 6 + +# v2.7 + +- Make `glob` an optional dependency + +# 2.6 + +- Retry on EBUSY on non-windows platforms as well +- Make `rimraf.sync` 10000% more reliable on Windows + +# 2.5 + +- Handle Windows EPERM when lstat-ing read-only dirs +- Add glob option to pass options to glob + +# 2.4 + +- Add EPERM to delay/retry loop +- Add `disableGlob` option + +# 2.3 + +- Make maxBusyTries and emfileWait configurable +- Handle weird SunOS unlink-dir issue +- Glob the CLI arg for better Windows support + +# 2.2 + +- Handle ENOENT properly on Windows +- Allow overriding fs methods +- Treat EPERM as indicative of non-empty dir +- Remove optional graceful-fs dep +- Consistently return null error instead of undefined on success +- win32: Treat ENOTEMPTY the same as EBUSY +- Add `rimraf` binary + +# 2.1 + +- Fix SunOS error code for a non-empty directory +- Try rmdir before readdir +- Treat EISDIR like EPERM +- Remove chmod +- Remove lstat polyfill, node 0.7 is not supported + +# 2.0 + +- Fix myGid call to check process.getgid +- Simplify the EBUSY backoff logic. +- Use fs.lstat in node >= 0.7.9 +- Remove gently option +- remove fiber implementation +- Delete files that are marked read-only + +# 1.0 + +- Allow ENOENT in sync method +- Throw when no callback is provided +- Make opts.gently an absolute path +- use 'stat' if 'lstat' is not available +- Consistent error naming, and rethrow non-ENOENT stat errors +- add fiber implementation diff --git a/node_modules/rimraf/LICENSE b/node_modules/rimraf/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/rimraf/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/rimraf/README.md b/node_modules/rimraf/README.md new file mode 100644 index 0000000..423b8cf --- /dev/null +++ b/node_modules/rimraf/README.md @@ -0,0 +1,101 @@ +[![Build Status](https://travis-ci.org/isaacs/rimraf.svg?branch=master)](https://travis-ci.org/isaacs/rimraf) [![Dependency Status](https://david-dm.org/isaacs/rimraf.svg)](https://david-dm.org/isaacs/rimraf) [![devDependency Status](https://david-dm.org/isaacs/rimraf/dev-status.svg)](https://david-dm.org/isaacs/rimraf#info=devDependencies) + +The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node. + +Install with `npm install rimraf`, or just drop rimraf.js somewhere. + +## API + +`rimraf(f, [opts], callback)` + +The first parameter will be interpreted as a globbing pattern for files. If you +want to disable globbing you can do so with `opts.disableGlob` (defaults to +`false`). This might be handy, for instance, if you have filenames that contain +globbing wildcard characters. + +The callback will be called with an error if there is one. Certain +errors are handled for you: + +* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of + `opts.maxBusyTries` times before giving up, adding 100ms of wait + between each attempt. The default `maxBusyTries` is 3. +* `ENOENT` - If the file doesn't exist, rimraf will return + successfully, since your desired outcome is already the case. +* `EMFILE` - Since `readdir` requires opening a file descriptor, it's + possible to hit `EMFILE` if too many file descriptors are in use. + In the sync case, there's nothing to be done for this. But in the + async case, rimraf will gradually back off with timeouts up to + `opts.emfileWait` ms, which defaults to 1000. + +## options + +* unlink, chmod, stat, lstat, rmdir, readdir, + unlinkSync, chmodSync, statSync, lstatSync, rmdirSync, readdirSync + + In order to use a custom file system library, you can override + specific fs functions on the options object. + + If any of these functions are present on the options object, then + the supplied function will be used instead of the default fs + method. + + Sync methods are only relevant for `rimraf.sync()`, of course. + + For example: + + ```javascript + var myCustomFS = require('some-custom-fs') + + rimraf('some-thing', myCustomFS, callback) + ``` + +* maxBusyTries + + If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error code is encountered + on Windows systems, then rimraf will retry with a linear backoff + wait of 100ms longer on each try. The default maxBusyTries is 3. + + Only relevant for async usage. + +* emfileWait + + If an `EMFILE` error is encountered, then rimraf will retry + repeatedly with a linear backoff of 1ms longer on each try, until + the timeout counter hits this max. The default limit is 1000. + + If you repeatedly encounter `EMFILE` errors, then consider using + [graceful-fs](http://npm.im/graceful-fs) in your program. + + Only relevant for async usage. + +* glob + + Set to `false` to disable [glob](http://npm.im/glob) pattern + matching. + + Set to an object to pass options to the glob module. The default + glob options are `{ nosort: true, silent: true }`. + + Glob version 6 is used in this module. + + Relevant for both sync and async usage. + +* disableGlob + + Set to any non-falsey value to disable globbing entirely. + (Equivalent to setting `glob: false`.) + +## rimraf.sync + +It can remove stuff synchronously, too. But that's not so good. Use +the async API. It's better. + +## CLI + +If installed with `npm install rimraf -g` it can be used as a global +command `rimraf [ ...]` which is useful for cross platform support. + +## mkdirp + +If you need to create a directory recursively, check out +[mkdirp](https://github.com/substack/node-mkdirp). diff --git a/node_modules/rimraf/bin.js b/node_modules/rimraf/bin.js new file mode 100755 index 0000000..023814c --- /dev/null +++ b/node_modules/rimraf/bin.js @@ -0,0 +1,68 @@ +#!/usr/bin/env node + +const rimraf = require('./') + +const path = require('path') + +const isRoot = arg => /^(\/|[a-zA-Z]:\\)$/.test(path.resolve(arg)) +const filterOutRoot = arg => { + const ok = preserveRoot === false || !isRoot(arg) + if (!ok) { + console.error(`refusing to remove ${arg}`) + console.error('Set --no-preserve-root to allow this') + } + return ok +} + +let help = false +let dashdash = false +let noglob = false +let preserveRoot = true +const args = process.argv.slice(2).filter(arg => { + if (dashdash) + return !!arg + else if (arg === '--') + dashdash = true + else if (arg === '--no-glob' || arg === '-G') + noglob = true + else if (arg === '--glob' || arg === '-g') + noglob = false + else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/)) + help = true + else if (arg === '--preserve-root') + preserveRoot = true + else if (arg === '--no-preserve-root') + preserveRoot = false + else + return !!arg +}).filter(arg => !preserveRoot || filterOutRoot(arg)) + +const go = n => { + if (n >= args.length) + return + const options = noglob ? { glob: false } : {} + rimraf(args[n], options, er => { + if (er) + throw er + go(n+1) + }) +} + +if (help || args.length === 0) { + // If they didn't ask for help, then this is not a "success" + const log = help ? console.log : console.error + log('Usage: rimraf [ ...]') + log('') + log(' Deletes all files and folders at "path" recursively.') + log('') + log('Options:') + log('') + log(' -h, --help Display this usage info') + log(' -G, --no-glob Do not expand glob patterns in arguments') + log(' -g, --glob Expand glob patterns in arguments (default)') + log(' --preserve-root Do not remove \'/\' (default)') + log(' --no-preserve-root Do not treat \'/\' specially') + log(' -- Stop parsing flags') + process.exit(help ? 0 : 1) +} else + go(0) diff --git a/node_modules/rimraf/package.json b/node_modules/rimraf/package.json new file mode 100644 index 0000000..1bf8d5e --- /dev/null +++ b/node_modules/rimraf/package.json @@ -0,0 +1,32 @@ +{ + "name": "rimraf", + "version": "3.0.2", + "main": "rimraf.js", + "description": "A deep deletion module for node (like `rm -rf`)", + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "repository": "git://github.com/isaacs/rimraf.git", + "scripts": { + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --follow-tags", + "test": "tap test/*.js" + }, + "bin": "./bin.js", + "dependencies": { + "glob": "^7.1.3" + }, + "files": [ + "LICENSE", + "README.md", + "bin.js", + "rimraf.js" + ], + "devDependencies": { + "mkdirp": "^0.5.1", + "tap": "^12.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } +} diff --git a/node_modules/rimraf/rimraf.js b/node_modules/rimraf/rimraf.js new file mode 100644 index 0000000..34da417 --- /dev/null +++ b/node_modules/rimraf/rimraf.js @@ -0,0 +1,360 @@ +const assert = require("assert") +const path = require("path") +const fs = require("fs") +let glob = undefined +try { + glob = require("glob") +} catch (_err) { + // treat glob as optional. +} + +const defaultGlobOpts = { + nosort: true, + silent: true +} + +// for EMFILE handling +let timeout = 0 + +const isWindows = (process.platform === "win32") + +const defaults = options => { + const methods = [ + 'unlink', + 'chmod', + 'stat', + 'lstat', + 'rmdir', + 'readdir' + ] + methods.forEach(m => { + options[m] = options[m] || fs[m] + m = m + 'Sync' + options[m] = options[m] || fs[m] + }) + + options.maxBusyTries = options.maxBusyTries || 3 + options.emfileWait = options.emfileWait || 1000 + if (options.glob === false) { + options.disableGlob = true + } + if (options.disableGlob !== true && glob === undefined) { + throw Error('glob dependency not found, set `options.disableGlob = true` if intentional') + } + options.disableGlob = options.disableGlob || false + options.glob = options.glob || defaultGlobOpts +} + +const rimraf = (p, options, cb) => { + if (typeof options === 'function') { + cb = options + options = {} + } + + assert(p, 'rimraf: missing path') + assert.equal(typeof p, 'string', 'rimraf: path should be a string') + assert.equal(typeof cb, 'function', 'rimraf: callback function required') + assert(options, 'rimraf: invalid options argument provided') + assert.equal(typeof options, 'object', 'rimraf: options should be object') + + defaults(options) + + let busyTries = 0 + let errState = null + let n = 0 + + const next = (er) => { + errState = errState || er + if (--n === 0) + cb(errState) + } + + const afterGlob = (er, results) => { + if (er) + return cb(er) + + n = results.length + if (n === 0) + return cb() + + results.forEach(p => { + const CB = (er) => { + if (er) { + if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") && + busyTries < options.maxBusyTries) { + busyTries ++ + // try again, with the same exact callback as this one. + return setTimeout(() => rimraf_(p, options, CB), busyTries * 100) + } + + // this one won't happen if graceful-fs is used. + if (er.code === "EMFILE" && timeout < options.emfileWait) { + return setTimeout(() => rimraf_(p, options, CB), timeout ++) + } + + // already gone + if (er.code === "ENOENT") er = null + } + + timeout = 0 + next(er) + } + rimraf_(p, options, CB) + }) + } + + if (options.disableGlob || !glob.hasMagic(p)) + return afterGlob(null, [p]) + + options.lstat(p, (er, stat) => { + if (!er) + return afterGlob(null, [p]) + + glob(p, options.glob, afterGlob) + }) + +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +const rimraf_ = (p, options, cb) => { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // sunos lets the root user unlink directories, which is... weird. + // so we have to lstat here and make sure it's not a dir. + options.lstat(p, (er, st) => { + if (er && er.code === "ENOENT") + return cb(null) + + // Windows can EPERM on stat. Life is suffering. + if (er && er.code === "EPERM" && isWindows) + fixWinEPERM(p, options, er, cb) + + if (st && st.isDirectory()) + return rmdir(p, options, er, cb) + + options.unlink(p, er => { + if (er) { + if (er.code === "ENOENT") + return cb(null) + if (er.code === "EPERM") + return (isWindows) + ? fixWinEPERM(p, options, er, cb) + : rmdir(p, options, er, cb) + if (er.code === "EISDIR") + return rmdir(p, options, er, cb) + } + return cb(er) + }) + }) +} + +const fixWinEPERM = (p, options, er, cb) => { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.chmod(p, 0o666, er2 => { + if (er2) + cb(er2.code === "ENOENT" ? null : er) + else + options.stat(p, (er3, stats) => { + if (er3) + cb(er3.code === "ENOENT" ? null : er) + else if (stats.isDirectory()) + rmdir(p, options, er, cb) + else + options.unlink(p, cb) + }) + }) +} + +const fixWinEPERMSync = (p, options, er) => { + assert(p) + assert(options) + + try { + options.chmodSync(p, 0o666) + } catch (er2) { + if (er2.code === "ENOENT") + return + else + throw er + } + + let stats + try { + stats = options.statSync(p) + } catch (er3) { + if (er3.code === "ENOENT") + return + else + throw er + } + + if (stats.isDirectory()) + rmdirSync(p, options, er) + else + options.unlinkSync(p) +} + +const rmdir = (p, options, originalEr, cb) => { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + options.rmdir(p, er => { + if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")) + rmkids(p, options, cb) + else if (er && er.code === "ENOTDIR") + cb(originalEr) + else + cb(er) + }) +} + +const rmkids = (p, options, cb) => { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.readdir(p, (er, files) => { + if (er) + return cb(er) + let n = files.length + if (n === 0) + return options.rmdir(p, cb) + let errState + files.forEach(f => { + rimraf(path.join(p, f), options, er => { + if (errState) + return + if (er) + return cb(errState = er) + if (--n === 0) + options.rmdir(p, cb) + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +const rimrafSync = (p, options) => { + options = options || {} + defaults(options) + + assert(p, 'rimraf: missing path') + assert.equal(typeof p, 'string', 'rimraf: path should be a string') + assert(options, 'rimraf: missing options') + assert.equal(typeof options, 'object', 'rimraf: options should be object') + + let results + + if (options.disableGlob || !glob.hasMagic(p)) { + results = [p] + } else { + try { + options.lstatSync(p) + results = [p] + } catch (er) { + results = glob.sync(p, options.glob) + } + } + + if (!results.length) + return + + for (let i = 0; i < results.length; i++) { + const p = results[i] + + let st + try { + st = options.lstatSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + + // Windows can EPERM on stat. Life is suffering. + if (er.code === "EPERM" && isWindows) + fixWinEPERMSync(p, options, er) + } + + try { + // sunos lets the root user unlink directories, which is... weird. + if (st && st.isDirectory()) + rmdirSync(p, options, null) + else + options.unlinkSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "EPERM") + return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) + if (er.code !== "EISDIR") + throw er + + rmdirSync(p, options, er) + } + } +} + +const rmdirSync = (p, options, originalEr) => { + assert(p) + assert(options) + + try { + options.rmdirSync(p) + } catch (er) { + if (er.code === "ENOENT") + return + if (er.code === "ENOTDIR") + throw originalEr + if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM") + rmkidsSync(p, options) + } +} + +const rmkidsSync = (p, options) => { + assert(p) + assert(options) + options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options)) + + // We only end up here once we got ENOTEMPTY at least once, and + // at this point, we are guaranteed to have removed all the kids. + // So, we know that it won't be ENOENT or ENOTDIR or anything else. + // try really hard to delete stuff on windows, because it has a + // PROFOUNDLY annoying habit of not closing handles promptly when + // files are deleted, resulting in spurious ENOTEMPTY errors. + const retries = isWindows ? 100 : 1 + let i = 0 + do { + let threw = true + try { + const ret = options.rmdirSync(p, options) + threw = false + return ret + } finally { + if (++i < retries && threw) + continue + } + } while (true) +} + +module.exports = rimraf +rimraf.sync = rimrafSync diff --git a/node_modules/run-parallel/LICENSE b/node_modules/run-parallel/LICENSE new file mode 100644 index 0000000..c7e6852 --- /dev/null +++ b/node_modules/run-parallel/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/run-parallel/README.md b/node_modules/run-parallel/README.md new file mode 100644 index 0000000..edc3da4 --- /dev/null +++ b/node_modules/run-parallel/README.md @@ -0,0 +1,85 @@ +# run-parallel [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/run-parallel/master.svg +[travis-url]: https://travis-ci.org/feross/run-parallel +[npm-image]: https://img.shields.io/npm/v/run-parallel.svg +[npm-url]: https://npmjs.org/package/run-parallel +[downloads-image]: https://img.shields.io/npm/dm/run-parallel.svg +[downloads-url]: https://npmjs.org/package/run-parallel +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +### Run an array of functions in parallel + +![parallel](https://raw.githubusercontent.com/feross/run-parallel/master/img.png) [![Sauce Test Status](https://saucelabs.com/browser-matrix/run-parallel.svg)](https://saucelabs.com/u/run-parallel) + +### install + +``` +npm install run-parallel +``` + +### usage + +#### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its callback, the main +`callback` is immediately called with the value of the error. Once the `tasks` have +completed, the results are passed to the final `callback` as an array. + +It is also possible to use an object instead of an array. Each property will be run as a +function and the results will be passed to the final `callback` as an object instead of +an array. This can be a more readable way of handling the results. + +##### arguments + +- `tasks` - An array or object containing functions to run. Each function is passed a +`callback(err, result)` which it must call on completion with an error `err` (which can +be `null`) and an optional `result` value. +- `callback(err, results)` - An optional callback to run once all the functions have +completed. This function gets a results array (or object) containing all the result +arguments passed to the task callbacks. + +##### example + +```js +var parallel = require('run-parallel') + +parallel([ + function (callback) { + setTimeout(function () { + callback(null, 'one') + }, 200) + }, + function (callback) { + setTimeout(function () { + callback(null, 'two') + }, 100) + } +], +// optional callback +function (err, results) { + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}) +``` + +This module is basically equavalent to +[`async.parallel`](https://github.com/caolan/async#paralleltasks-callback), but it's +handy to just have the one function you need instead of the kitchen sink. Modularity! +Especially handy if you're serving to the browser and need to reduce your javascript +bundle size. + +Works great in the browser with [browserify](http://browserify.org/)! + +### see also + +- [run-auto](https://github.com/feross/run-auto) +- [run-parallel-limit](https://github.com/feross/run-parallel-limit) +- [run-series](https://github.com/feross/run-series) +- [run-waterfall](https://github.com/feross/run-waterfall) + +### license + +MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org). diff --git a/node_modules/run-parallel/index.js b/node_modules/run-parallel/index.js new file mode 100644 index 0000000..6307141 --- /dev/null +++ b/node_modules/run-parallel/index.js @@ -0,0 +1,51 @@ +/*! run-parallel. MIT License. Feross Aboukhadijeh */ +module.exports = runParallel + +const queueMicrotask = require('queue-microtask') + +function runParallel (tasks, cb) { + let results, pending, keys + let isSync = true + + if (Array.isArray(tasks)) { + results = [] + pending = tasks.length + } else { + keys = Object.keys(tasks) + results = {} + pending = keys.length + } + + function done (err) { + function end () { + if (cb) cb(err, results) + cb = null + } + if (isSync) queueMicrotask(end) + else end() + } + + function each (i, err, result) { + results[i] = result + if (--pending === 0 || err) { + done(err) + } + } + + if (!pending) { + // empty + done(null) + } else if (keys) { + // object + keys.forEach(function (key) { + tasks[key](function (err, result) { each(key, err, result) }) + }) + } else { + // array + tasks.forEach(function (task, i) { + task(function (err, result) { each(i, err, result) }) + }) + } + + isSync = false +} diff --git a/node_modules/run-parallel/package.json b/node_modules/run-parallel/package.json new file mode 100644 index 0000000..1f14757 --- /dev/null +++ b/node_modules/run-parallel/package.json @@ -0,0 +1,58 @@ +{ + "name": "run-parallel", + "description": "Run an array of functions in parallel", + "version": "1.2.0", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/run-parallel/issues" + }, + "dependencies": { + "queue-microtask": "^1.2.2" + }, + "devDependencies": { + "airtap": "^3.0.0", + "standard": "*", + "tape": "^5.0.1" + }, + "homepage": "https://github.com/feross/run-parallel", + "keywords": [ + "parallel", + "async", + "function", + "callback", + "asynchronous", + "run", + "array", + "run parallel" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/feross/run-parallel.git" + }, + "scripts": { + "test": "standard && npm run test-node && npm run test-browser", + "test-browser": "airtap -- test/*.js", + "test-browser-local": "airtap --local -- test/*.js", + "test-node": "tape test/*.js" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] +} diff --git a/node_modules/shebang-command/index.js b/node_modules/shebang-command/index.js new file mode 100644 index 0000000..f35db30 --- /dev/null +++ b/node_modules/shebang-command/index.js @@ -0,0 +1,19 @@ +'use strict'; +const shebangRegex = require('shebang-regex'); + +module.exports = (string = '') => { + const match = string.match(shebangRegex); + + if (!match) { + return null; + } + + const [path, argument] = match[0].replace(/#! ?/, '').split(' '); + const binary = path.split('/').pop(); + + if (binary === 'env') { + return argument; + } + + return argument ? `${binary} ${argument}` : binary; +}; diff --git a/node_modules/shebang-command/license b/node_modules/shebang-command/license new file mode 100644 index 0000000..db6bc32 --- /dev/null +++ b/node_modules/shebang-command/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Kevin Mårtensson (github.com/kevva) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/shebang-command/package.json b/node_modules/shebang-command/package.json new file mode 100644 index 0000000..18e3c04 --- /dev/null +++ b/node_modules/shebang-command/package.json @@ -0,0 +1,34 @@ +{ + "name": "shebang-command", + "version": "2.0.0", + "description": "Get the command from a shebang", + "license": "MIT", + "repository": "kevva/shebang-command", + "author": { + "name": "Kevin Mårtensson", + "email": "kevinmartensson@gmail.com", + "url": "github.com/kevva" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "cmd", + "command", + "parse", + "shebang" + ], + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "devDependencies": { + "ava": "^2.3.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/shebang-command/readme.md b/node_modules/shebang-command/readme.md new file mode 100644 index 0000000..84feb44 --- /dev/null +++ b/node_modules/shebang-command/readme.md @@ -0,0 +1,34 @@ +# shebang-command [![Build Status](https://travis-ci.org/kevva/shebang-command.svg?branch=master)](https://travis-ci.org/kevva/shebang-command) + +> Get the command from a shebang + + +## Install + +``` +$ npm install shebang-command +``` + + +## Usage + +```js +const shebangCommand = require('shebang-command'); + +shebangCommand('#!/usr/bin/env node'); +//=> 'node' + +shebangCommand('#!/bin/bash'); +//=> 'bash' +``` + + +## API + +### shebangCommand(string) + +#### string + +Type: `string` + +String containing a shebang. diff --git a/node_modules/shebang-regex/index.d.ts b/node_modules/shebang-regex/index.d.ts new file mode 100644 index 0000000..61d034b --- /dev/null +++ b/node_modules/shebang-regex/index.d.ts @@ -0,0 +1,22 @@ +/** +Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) line. + +@example +``` +import shebangRegex = require('shebang-regex'); + +const string = '#!/usr/bin/env node\nconsole.log("unicorns");'; + +shebangRegex.test(string); +//=> true + +shebangRegex.exec(string)[0]; +//=> '#!/usr/bin/env node' + +shebangRegex.exec(string)[1]; +//=> '/usr/bin/env node' +``` +*/ +declare const shebangRegex: RegExp; + +export = shebangRegex; diff --git a/node_modules/shebang-regex/index.js b/node_modules/shebang-regex/index.js new file mode 100644 index 0000000..63fc4a0 --- /dev/null +++ b/node_modules/shebang-regex/index.js @@ -0,0 +1,2 @@ +'use strict'; +module.exports = /^#!(.*)/; diff --git a/node_modules/shebang-regex/license b/node_modules/shebang-regex/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/shebang-regex/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/shebang-regex/package.json b/node_modules/shebang-regex/package.json new file mode 100644 index 0000000..00ab30f --- /dev/null +++ b/node_modules/shebang-regex/package.json @@ -0,0 +1,35 @@ +{ + "name": "shebang-regex", + "version": "3.0.0", + "description": "Regular expression for matching a shebang line", + "license": "MIT", + "repository": "sindresorhus/shebang-regex", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "regex", + "regexp", + "shebang", + "match", + "test", + "line" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/shebang-regex/readme.md b/node_modules/shebang-regex/readme.md new file mode 100644 index 0000000..5ecf863 --- /dev/null +++ b/node_modules/shebang-regex/readme.md @@ -0,0 +1,33 @@ +# shebang-regex [![Build Status](https://travis-ci.org/sindresorhus/shebang-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/shebang-regex) + +> Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) line + + +## Install + +``` +$ npm install shebang-regex +``` + + +## Usage + +```js +const shebangRegex = require('shebang-regex'); + +const string = '#!/usr/bin/env node\nconsole.log("unicorns");'; + +shebangRegex.test(string); +//=> true + +shebangRegex.exec(string)[0]; +//=> '#!/usr/bin/env node' + +shebangRegex.exec(string)[1]; +//=> '/usr/bin/env node' +``` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/slash/index.d.ts b/node_modules/slash/index.d.ts new file mode 100644 index 0000000..f9d07d1 --- /dev/null +++ b/node_modules/slash/index.d.ts @@ -0,0 +1,25 @@ +/** +Convert Windows backslash paths to slash paths: `foo\\bar` ➔ `foo/bar`. + +[Forward-slash paths can be used in Windows](http://superuser.com/a/176395/6877) as long as they're not extended-length paths and don't contain any non-ascii characters. + +@param path - A Windows backslash path. +@returns A path with forward slashes. + +@example +``` +import * as path from 'path'; +import slash = require('slash'); + +const string = path.join('foo', 'bar'); +// Unix => foo/bar +// Windows => foo\\bar + +slash(string); +// Unix => foo/bar +// Windows => foo/bar +``` +*/ +declare function slash(path: string): string; + +export = slash; diff --git a/node_modules/slash/index.js b/node_modules/slash/index.js new file mode 100644 index 0000000..103fbea --- /dev/null +++ b/node_modules/slash/index.js @@ -0,0 +1,11 @@ +'use strict'; +module.exports = path => { + const isExtendedLengthPath = /^\\\\\?\\/.test(path); + const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex + + if (isExtendedLengthPath || hasNonAscii) { + return path; + } + + return path.replace(/\\/g, '/'); +}; diff --git a/node_modules/slash/license b/node_modules/slash/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/slash/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/slash/package.json b/node_modules/slash/package.json new file mode 100644 index 0000000..c88fcc7 --- /dev/null +++ b/node_modules/slash/package.json @@ -0,0 +1,35 @@ +{ + "name": "slash", + "version": "3.0.0", + "description": "Convert Windows backslash paths to slash paths", + "license": "MIT", + "repository": "sindresorhus/slash", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "seperator", + "slash", + "backslash", + "windows", + "convert" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/slash/readme.md b/node_modules/slash/readme.md new file mode 100644 index 0000000..f0ef4ac --- /dev/null +++ b/node_modules/slash/readme.md @@ -0,0 +1,44 @@ +# slash [![Build Status](https://travis-ci.org/sindresorhus/slash.svg?branch=master)](https://travis-ci.org/sindresorhus/slash) + +> Convert Windows backslash paths to slash paths: `foo\\bar` ➔ `foo/bar` + +[Forward-slash paths can be used in Windows](http://superuser.com/a/176395/6877) as long as they're not extended-length paths and don't contain any non-ascii characters. + +This was created since the `path` methods in Node.js outputs `\\` paths on Windows. + + +## Install + +``` +$ npm install slash +``` + + +## Usage + +```js +const path = require('path'); +const slash = require('slash'); + +const string = path.join('foo', 'bar'); +// Unix => foo/bar +// Windows => foo\\bar + +slash(string); +// Unix => foo/bar +// Windows => foo/bar +``` + + +## API + +### slash(path) + +Type: `string` + +Accepts a Windows backslash path and returns a path with forward slashes. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/strip-ansi/index.d.ts b/node_modules/strip-ansi/index.d.ts new file mode 100644 index 0000000..907fccc --- /dev/null +++ b/node_modules/strip-ansi/index.d.ts @@ -0,0 +1,17 @@ +/** +Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string. + +@example +``` +import stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` +*/ +declare function stripAnsi(string: string): string; + +export = stripAnsi; diff --git a/node_modules/strip-ansi/index.js b/node_modules/strip-ansi/index.js new file mode 100644 index 0000000..9a593df --- /dev/null +++ b/node_modules/strip-ansi/index.js @@ -0,0 +1,4 @@ +'use strict'; +const ansiRegex = require('ansi-regex'); + +module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; diff --git a/node_modules/strip-ansi/license b/node_modules/strip-ansi/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/strip-ansi/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/strip-ansi/package.json b/node_modules/strip-ansi/package.json new file mode 100644 index 0000000..1a41108 --- /dev/null +++ b/node_modules/strip-ansi/package.json @@ -0,0 +1,54 @@ +{ + "name": "strip-ansi", + "version": "6.0.1", + "description": "Strip ANSI escape codes from a string", + "license": "MIT", + "repository": "chalk/strip-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.10.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/strip-ansi/readme.md b/node_modules/strip-ansi/readme.md new file mode 100644 index 0000000..7c4b56d --- /dev/null +++ b/node_modules/strip-ansi/readme.md @@ -0,0 +1,46 @@ +# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) + +> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string + + +## Install + +``` +$ npm install strip-ansi +``` + + +## Usage + +```js +const stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` + + +## strip-ansi for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of strip-ansi and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-strip-ansi?utm_source=npm-strip-ansi&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + + +## Related + +- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module +- [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Streaming version of this module +- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes +- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + diff --git a/node_modules/strip-json-comments/index.d.ts b/node_modules/strip-json-comments/index.d.ts new file mode 100644 index 0000000..28ba3c8 --- /dev/null +++ b/node_modules/strip-json-comments/index.d.ts @@ -0,0 +1,36 @@ +declare namespace stripJsonComments { + interface Options { + /** + Replace comments with whitespace instead of stripping them entirely. + + @default true + */ + readonly whitespace?: boolean; + } +} + +/** +Strip comments from JSON. Lets you use comments in your JSON files! + +It will replace single-line comments `//` and multi-line comments `/**\/` with whitespace. This allows JSON error positions to remain as close as possible to the original source. + +@param jsonString - Accepts a string with JSON. +@returns A JSON string without comments. + +@example +``` +const json = `{ + // Rainbows + "unicorn": "cake" +}`; + +JSON.parse(stripJsonComments(json)); +//=> {unicorn: 'cake'} +``` +*/ +declare function stripJsonComments( + jsonString: string, + options?: stripJsonComments.Options +): string; + +export = stripJsonComments; diff --git a/node_modules/strip-json-comments/index.js b/node_modules/strip-json-comments/index.js new file mode 100644 index 0000000..bb00b38 --- /dev/null +++ b/node_modules/strip-json-comments/index.js @@ -0,0 +1,77 @@ +'use strict'; +const singleComment = Symbol('singleComment'); +const multiComment = Symbol('multiComment'); +const stripWithoutWhitespace = () => ''; +const stripWithWhitespace = (string, start, end) => string.slice(start, end).replace(/\S/g, ' '); + +const isEscaped = (jsonString, quotePosition) => { + let index = quotePosition - 1; + let backslashCount = 0; + + while (jsonString[index] === '\\') { + index -= 1; + backslashCount += 1; + } + + return Boolean(backslashCount % 2); +}; + +module.exports = (jsonString, options = {}) => { + if (typeof jsonString !== 'string') { + throw new TypeError(`Expected argument \`jsonString\` to be a \`string\`, got \`${typeof jsonString}\``); + } + + const strip = options.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace; + + let insideString = false; + let insideComment = false; + let offset = 0; + let result = ''; + + for (let i = 0; i < jsonString.length; i++) { + const currentCharacter = jsonString[i]; + const nextCharacter = jsonString[i + 1]; + + if (!insideComment && currentCharacter === '"') { + const escaped = isEscaped(jsonString, i); + if (!escaped) { + insideString = !insideString; + } + } + + if (insideString) { + continue; + } + + if (!insideComment && currentCharacter + nextCharacter === '//') { + result += jsonString.slice(offset, i); + offset = i; + insideComment = singleComment; + i++; + } else if (insideComment === singleComment && currentCharacter + nextCharacter === '\r\n') { + i++; + insideComment = false; + result += strip(jsonString, offset, i); + offset = i; + continue; + } else if (insideComment === singleComment && currentCharacter === '\n') { + insideComment = false; + result += strip(jsonString, offset, i); + offset = i; + } else if (!insideComment && currentCharacter + nextCharacter === '/*') { + result += jsonString.slice(offset, i); + offset = i; + insideComment = multiComment; + i++; + continue; + } else if (insideComment === multiComment && currentCharacter + nextCharacter === '*/') { + i++; + insideComment = false; + result += strip(jsonString, offset, i + 1); + offset = i + 1; + continue; + } + } + + return result + (insideComment ? strip(jsonString.slice(offset)) : jsonString.slice(offset)); +}; diff --git a/node_modules/strip-json-comments/license b/node_modules/strip-json-comments/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/strip-json-comments/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/strip-json-comments/package.json b/node_modules/strip-json-comments/package.json new file mode 100644 index 0000000..ce7875a --- /dev/null +++ b/node_modules/strip-json-comments/package.json @@ -0,0 +1,47 @@ +{ + "name": "strip-json-comments", + "version": "3.1.1", + "description": "Strip comments from JSON. Lets you use comments in your JSON files!", + "license": "MIT", + "repository": "sindresorhus/strip-json-comments", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd", + "bench": "matcha benchmark.js" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "json", + "strip", + "comments", + "remove", + "delete", + "trim", + "multiline", + "parse", + "config", + "configuration", + "settings", + "util", + "env", + "environment", + "jsonc" + ], + "devDependencies": { + "ava": "^1.4.1", + "matcha": "^0.7.0", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/strip-json-comments/readme.md b/node_modules/strip-json-comments/readme.md new file mode 100644 index 0000000..cc542e5 --- /dev/null +++ b/node_modules/strip-json-comments/readme.md @@ -0,0 +1,78 @@ +# strip-json-comments [![Build Status](https://travis-ci.com/sindresorhus/strip-json-comments.svg?branch=master)](https://travis-ci.com/github/sindresorhus/strip-json-comments) + +> Strip comments from JSON. Lets you use comments in your JSON files! + +This is now possible: + +```js +{ + // Rainbows + "unicorn": /* ❤ */ "cake" +} +``` + +It will replace single-line comments `//` and multi-line comments `/**/` with whitespace. This allows JSON error positions to remain as close as possible to the original source. + +Also available as a [Gulp](https://github.com/sindresorhus/gulp-strip-json-comments)/[Grunt](https://github.com/sindresorhus/grunt-strip-json-comments)/[Broccoli](https://github.com/sindresorhus/broccoli-strip-json-comments) plugin. + +## Install + +``` +$ npm install strip-json-comments +``` + +## Usage + +```js +const json = `{ + // Rainbows + "unicorn": /* ❤ */ "cake" +}`; + +JSON.parse(stripJsonComments(json)); +//=> {unicorn: 'cake'} +``` + +## API + +### stripJsonComments(jsonString, options?) + +#### jsonString + +Type: `string` + +Accepts a string with JSON and returns a string without comments. + +#### options + +Type: `object` + +##### whitespace + +Type: `boolean`\ +Default: `true` + +Replace comments with whitespace instead of stripping them entirely. + +## Benchmark + +``` +$ npm run bench +``` + +## Related + +- [strip-json-comments-cli](https://github.com/sindresorhus/strip-json-comments-cli) - CLI for this module +- [strip-css-comments](https://github.com/sindresorhus/strip-css-comments) - Strip comments from CSS + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/supports-color/browser.js b/node_modules/supports-color/browser.js new file mode 100644 index 0000000..62afa3a --- /dev/null +++ b/node_modules/supports-color/browser.js @@ -0,0 +1,5 @@ +'use strict'; +module.exports = { + stdout: false, + stderr: false +}; diff --git a/node_modules/supports-color/index.js b/node_modules/supports-color/index.js new file mode 100644 index 0000000..6fada39 --- /dev/null +++ b/node_modules/supports-color/index.js @@ -0,0 +1,135 @@ +'use strict'; +const os = require('os'); +const tty = require('tty'); +const hasFlag = require('has-flag'); + +const {env} = process; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never')) { + forceColor = 0; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = 1; +} + +if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + forceColor = 1; + } else if (env.FORCE_COLOR === 'false') { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; +} + +function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) +}; diff --git a/node_modules/supports-color/license b/node_modules/supports-color/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/supports-color/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/supports-color/package.json b/node_modules/supports-color/package.json new file mode 100644 index 0000000..f7182ed --- /dev/null +++ b/node_modules/supports-color/package.json @@ -0,0 +1,53 @@ +{ + "name": "supports-color", + "version": "7.2.0", + "description": "Detect whether a terminal supports color", + "license": "MIT", + "repository": "chalk/supports-color", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "browser.js" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "dependencies": { + "has-flag": "^4.0.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "import-fresh": "^3.0.0", + "xo": "^0.24.0" + }, + "browser": "browser.js" +} diff --git a/node_modules/supports-color/readme.md b/node_modules/supports-color/readme.md new file mode 100644 index 0000000..3654228 --- /dev/null +++ b/node_modules/supports-color/readme.md @@ -0,0 +1,76 @@ +# supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color) + +> Detect whether a terminal supports color + + +## Install + +``` +$ npm install supports-color +``` + + +## Usage + +```js +const supportsColor = require('supports-color'); + +if (supportsColor.stdout) { + console.log('Terminal stdout supports color'); +} + +if (supportsColor.stdout.has256) { + console.log('Terminal stdout supports 256 colors'); +} + +if (supportsColor.stderr.has16m) { + console.log('Terminal stderr supports 16 million colors (truecolor)'); +} +``` + + +## API + +Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported. + +The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag: + +- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors) +- `.level = 2` and `.has256 = true`: 256 color support +- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors) + + +## Info + +It obeys the `--color` and `--no-color` CLI flags. + +For situations where using `--color` is not possible, use the environment variable `FORCE_COLOR=1` (level 1), `FORCE_COLOR=2` (level 2), or `FORCE_COLOR=3` (level 3) to forcefully enable color, or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks. + +Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively. + + +## Related + +- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- diff --git a/node_modules/text-table/.travis.yml b/node_modules/text-table/.travis.yml new file mode 100644 index 0000000..cc4dba2 --- /dev/null +++ b/node_modules/text-table/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - "0.8" + - "0.10" diff --git a/node_modules/text-table/LICENSE b/node_modules/text-table/LICENSE new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/text-table/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/text-table/example/align.js b/node_modules/text-table/example/align.js new file mode 100644 index 0000000..9be4309 --- /dev/null +++ b/node_modules/text-table/example/align.js @@ -0,0 +1,8 @@ +var table = require('../'); +var t = table([ + [ 'beep', '1024' ], + [ 'boop', '33450' ], + [ 'foo', '1006' ], + [ 'bar', '45' ] +], { align: [ 'l', 'r' ] }); +console.log(t); diff --git a/node_modules/text-table/example/center.js b/node_modules/text-table/example/center.js new file mode 100644 index 0000000..52b1c69 --- /dev/null +++ b/node_modules/text-table/example/center.js @@ -0,0 +1,8 @@ +var table = require('../'); +var t = table([ + [ 'beep', '1024', 'xyz' ], + [ 'boop', '3388450', 'tuv' ], + [ 'foo', '10106', 'qrstuv' ], + [ 'bar', '45', 'lmno' ] +], { align: [ 'l', 'c', 'l' ] }); +console.log(t); diff --git a/node_modules/text-table/example/dotalign.js b/node_modules/text-table/example/dotalign.js new file mode 100644 index 0000000..2cea629 --- /dev/null +++ b/node_modules/text-table/example/dotalign.js @@ -0,0 +1,9 @@ +var table = require('../'); +var t = table([ + [ 'beep', '1024' ], + [ 'boop', '334.212' ], + [ 'foo', '1006' ], + [ 'bar', '45.6' ], + [ 'baz', '123.' ] +], { align: [ 'l', '.' ] }); +console.log(t); diff --git a/node_modules/text-table/example/doubledot.js b/node_modules/text-table/example/doubledot.js new file mode 100644 index 0000000..bab983b --- /dev/null +++ b/node_modules/text-table/example/doubledot.js @@ -0,0 +1,11 @@ +var table = require('../'); +var t = table([ + [ '0.1.2' ], + [ '11.22.33' ], + [ '5.6.7' ], + [ '1.22222' ], + [ '12345.' ], + [ '5555.' ], + [ '123' ] +], { align: [ '.' ] }); +console.log(t); diff --git a/node_modules/text-table/example/table.js b/node_modules/text-table/example/table.js new file mode 100644 index 0000000..903ea4c --- /dev/null +++ b/node_modules/text-table/example/table.js @@ -0,0 +1,6 @@ +var table = require('../'); +var t = table([ + [ 'master', '0123456789abcdef' ], + [ 'staging', 'fedcba9876543210' ] +]); +console.log(t); diff --git a/node_modules/text-table/index.js b/node_modules/text-table/index.js new file mode 100644 index 0000000..5c0ba98 --- /dev/null +++ b/node_modules/text-table/index.js @@ -0,0 +1,86 @@ +module.exports = function (rows_, opts) { + if (!opts) opts = {}; + var hsep = opts.hsep === undefined ? ' ' : opts.hsep; + var align = opts.align || []; + var stringLength = opts.stringLength + || function (s) { return String(s).length; } + ; + + var dotsizes = reduce(rows_, function (acc, row) { + forEach(row, function (c, ix) { + var n = dotindex(c); + if (!acc[ix] || n > acc[ix]) acc[ix] = n; + }); + return acc; + }, []); + + var rows = map(rows_, function (row) { + return map(row, function (c_, ix) { + var c = String(c_); + if (align[ix] === '.') { + var index = dotindex(c); + var size = dotsizes[ix] + (/\./.test(c) ? 1 : 2) + - (stringLength(c) - index) + ; + return c + Array(size).join(' '); + } + else return c; + }); + }); + + var sizes = reduce(rows, function (acc, row) { + forEach(row, function (c, ix) { + var n = stringLength(c); + if (!acc[ix] || n > acc[ix]) acc[ix] = n; + }); + return acc; + }, []); + + return map(rows, function (row) { + return map(row, function (c, ix) { + var n = (sizes[ix] - stringLength(c)) || 0; + var s = Array(Math.max(n + 1, 1)).join(' '); + if (align[ix] === 'r' || align[ix] === '.') { + return s + c; + } + if (align[ix] === 'c') { + return Array(Math.ceil(n / 2 + 1)).join(' ') + + c + Array(Math.floor(n / 2 + 1)).join(' ') + ; + } + + return c + s; + }).join(hsep).replace(/\s+$/, ''); + }).join('\n'); +}; + +function dotindex (c) { + var m = /\.[^.]*$/.exec(c); + return m ? m.index + 1 : c.length; +} + +function reduce (xs, f, init) { + if (xs.reduce) return xs.reduce(f, init); + var i = 0; + var acc = arguments.length >= 3 ? init : xs[i++]; + for (; i < xs.length; i++) { + f(acc, xs[i], i); + } + return acc; +} + +function forEach (xs, f) { + if (xs.forEach) return xs.forEach(f); + for (var i = 0; i < xs.length; i++) { + f.call(xs, xs[i], i); + } +} + +function map (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f.call(xs, xs[i], i)); + } + return res; +} diff --git a/node_modules/text-table/package.json b/node_modules/text-table/package.json new file mode 100644 index 0000000..b4d17a4 --- /dev/null +++ b/node_modules/text-table/package.json @@ -0,0 +1,44 @@ +{ + "name": "text-table", + "version": "0.2.0", + "description": "borderless text tables with alignment", + "main": "index.js", + "devDependencies": { + "tap": "~0.4.0", + "tape": "~1.0.2", + "cli-color": "~0.2.3" + }, + "scripts": { + "test": "tap test/*.js" + }, + "testling" : { + "files" : "test/*.js", + "browsers" : [ + "ie/6..latest", + "chrome/20..latest", + "firefox/10..latest", + "safari/latest", + "opera/11.0..latest", + "iphone/6", "ipad/6" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/substack/text-table.git" + }, + "homepage": "https://github.com/substack/text-table", + "keywords": [ + "text", + "table", + "align", + "ascii", + "rows", + "tabular" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "license": "MIT" +} diff --git a/node_modules/text-table/readme.markdown b/node_modules/text-table/readme.markdown new file mode 100644 index 0000000..18806ac --- /dev/null +++ b/node_modules/text-table/readme.markdown @@ -0,0 +1,134 @@ +# text-table + +generate borderless text table strings suitable for printing to stdout + +[![build status](https://secure.travis-ci.org/substack/text-table.png)](http://travis-ci.org/substack/text-table) + +[![browser support](https://ci.testling.com/substack/text-table.png)](http://ci.testling.com/substack/text-table) + +# example + +## default align + +``` js +var table = require('text-table'); +var t = table([ + [ 'master', '0123456789abcdef' ], + [ 'staging', 'fedcba9876543210' ] +]); +console.log(t); +``` + +``` +master 0123456789abcdef +staging fedcba9876543210 +``` + +## left-right align + +``` js +var table = require('text-table'); +var t = table([ + [ 'beep', '1024' ], + [ 'boop', '33450' ], + [ 'foo', '1006' ], + [ 'bar', '45' ] +], { align: [ 'l', 'r' ] }); +console.log(t); +``` + +``` +beep 1024 +boop 33450 +foo 1006 +bar 45 +``` + +## dotted align + +``` js +var table = require('text-table'); +var t = table([ + [ 'beep', '1024' ], + [ 'boop', '334.212' ], + [ 'foo', '1006' ], + [ 'bar', '45.6' ], + [ 'baz', '123.' ] +], { align: [ 'l', '.' ] }); +console.log(t); +``` + +``` +beep 1024 +boop 334.212 +foo 1006 +bar 45.6 +baz 123. +``` + +## centered + +``` js +var table = require('text-table'); +var t = table([ + [ 'beep', '1024', 'xyz' ], + [ 'boop', '3388450', 'tuv' ], + [ 'foo', '10106', 'qrstuv' ], + [ 'bar', '45', 'lmno' ] +], { align: [ 'l', 'c', 'l' ] }); +console.log(t); +``` + +``` +beep 1024 xyz +boop 3388450 tuv +foo 10106 qrstuv +bar 45 lmno +``` + +# methods + +``` js +var table = require('text-table') +``` + +## var s = table(rows, opts={}) + +Return a formatted table string `s` from an array of `rows` and some options +`opts`. + +`rows` should be an array of arrays containing strings, numbers, or other +printable values. + +options can be: + +* `opts.hsep` - separator to use between columns, default `' '` +* `opts.align` - array of alignment types for each column, default `['l','l',...]` +* `opts.stringLength` - callback function to use when calculating the string length + +alignment types are: + +* `'l'` - left +* `'r'` - right +* `'c'` - center +* `'.'` - decimal + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install text-table +``` + +# Use with ANSI-colors + +Since the string length of ANSI color schemes does not equal the length +JavaScript sees internally it is necessary to pass the a custom string length +calculator during the main function call. + +See the `test/ansi-colors.js` file for an example. + +# license + +MIT diff --git a/node_modules/text-table/test/align.js b/node_modules/text-table/test/align.js new file mode 100644 index 0000000..245357f --- /dev/null +++ b/node_modules/text-table/test/align.js @@ -0,0 +1,18 @@ +var test = require('tape'); +var table = require('../'); + +test('align', function (t) { + t.plan(1); + var s = table([ + [ 'beep', '1024' ], + [ 'boop', '33450' ], + [ 'foo', '1006' ], + [ 'bar', '45' ] + ], { align: [ 'l', 'r' ] }); + t.equal(s, [ + 'beep 1024', + 'boop 33450', + 'foo 1006', + 'bar 45' + ].join('\n')); +}); diff --git a/node_modules/text-table/test/ansi-colors.js b/node_modules/text-table/test/ansi-colors.js new file mode 100644 index 0000000..fbc5bb1 --- /dev/null +++ b/node_modules/text-table/test/ansi-colors.js @@ -0,0 +1,32 @@ +var test = require('tape'); +var table = require('../'); +var color = require('cli-color'); +var ansiTrim = require('cli-color/lib/trim'); + +test('center', function (t) { + t.plan(1); + var opts = { + align: [ 'l', 'c', 'l' ], + stringLength: function(s) { return ansiTrim(s).length } + }; + var s = table([ + [ + color.red('Red'), color.green('Green'), color.blue('Blue') + ], + [ + color.bold('Bold'), color.underline('Underline'), + color.italic('Italic') + ], + [ + color.inverse('Inverse'), color.strike('Strike'), + color.blink('Blink') + ], + [ 'bar', '45', 'lmno' ] + ], opts); + t.equal(ansiTrim(s), [ + 'Red Green Blue', + 'Bold Underline Italic', + 'Inverse Strike Blink', + 'bar 45 lmno' + ].join('\n')); +}); diff --git a/node_modules/text-table/test/center.js b/node_modules/text-table/test/center.js new file mode 100644 index 0000000..c2c7a62 --- /dev/null +++ b/node_modules/text-table/test/center.js @@ -0,0 +1,18 @@ +var test = require('tape'); +var table = require('../'); + +test('center', function (t) { + t.plan(1); + var s = table([ + [ 'beep', '1024', 'xyz' ], + [ 'boop', '3388450', 'tuv' ], + [ 'foo', '10106', 'qrstuv' ], + [ 'bar', '45', 'lmno' ] + ], { align: [ 'l', 'c', 'l' ] }); + t.equal(s, [ + 'beep 1024 xyz', + 'boop 3388450 tuv', + 'foo 10106 qrstuv', + 'bar 45 lmno' + ].join('\n')); +}); diff --git a/node_modules/text-table/test/dotalign.js b/node_modules/text-table/test/dotalign.js new file mode 100644 index 0000000..f804f92 --- /dev/null +++ b/node_modules/text-table/test/dotalign.js @@ -0,0 +1,20 @@ +var test = require('tape'); +var table = require('../'); + +test('dot align', function (t) { + t.plan(1); + var s = table([ + [ 'beep', '1024' ], + [ 'boop', '334.212' ], + [ 'foo', '1006' ], + [ 'bar', '45.6' ], + [ 'baz', '123.' ] + ], { align: [ 'l', '.' ] }); + t.equal(s, [ + 'beep 1024', + 'boop 334.212', + 'foo 1006', + 'bar 45.6', + 'baz 123.' + ].join('\n')); +}); diff --git a/node_modules/text-table/test/doubledot.js b/node_modules/text-table/test/doubledot.js new file mode 100644 index 0000000..659b57c --- /dev/null +++ b/node_modules/text-table/test/doubledot.js @@ -0,0 +1,24 @@ +var test = require('tape'); +var table = require('../'); + +test('dot align', function (t) { + t.plan(1); + var s = table([ + [ '0.1.2' ], + [ '11.22.33' ], + [ '5.6.7' ], + [ '1.22222' ], + [ '12345.' ], + [ '5555.' ], + [ '123' ] + ], { align: [ '.' ] }); + t.equal(s, [ + ' 0.1.2', + '11.22.33', + ' 5.6.7', + ' 1.22222', + '12345.', + ' 5555.', + ' 123' + ].join('\n')); +}); diff --git a/node_modules/text-table/test/table.js b/node_modules/text-table/test/table.js new file mode 100644 index 0000000..9c67014 --- /dev/null +++ b/node_modules/text-table/test/table.js @@ -0,0 +1,14 @@ +var test = require('tape'); +var table = require('../'); + +test('table', function (t) { + t.plan(1); + var s = table([ + [ 'master', '0123456789abcdef' ], + [ 'staging', 'fedcba9876543210' ] + ]); + t.equal(s, [ + 'master 0123456789abcdef', + 'staging fedcba9876543210' + ].join('\n')); +}); diff --git a/node_modules/to-regex-range/LICENSE b/node_modules/to-regex-range/LICENSE new file mode 100644 index 0000000..7cccaf9 --- /dev/null +++ b/node_modules/to-regex-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/to-regex-range/README.md b/node_modules/to-regex-range/README.md new file mode 100644 index 0000000..38887da --- /dev/null +++ b/node_modules/to-regex-range/README.md @@ -0,0 +1,305 @@ +# to-regex-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/to-regex-range.svg?style=flat)](https://www.npmjs.com/package/to-regex-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![NPM total downloads](https://img.shields.io/npm/dt/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![Linux Build Status](https://img.shields.io/travis/micromatch/to-regex-range.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/to-regex-range) + +> Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save to-regex-range +``` + +
+What does this do? + +
+ +This libary generates the `source` string to be passed to `new RegExp()` for matching a range of numbers. + +**Example** + +```js +const toRegexRange = require('to-regex-range'); +const regex = new RegExp(toRegexRange('15', '95')); +``` + +A string is returned so that you can do whatever you need with it before passing it to `new RegExp()` (like adding `^` or `$` boundaries, defining flags, or combining it another string). + +
+ +
+ +
+Why use this library? + +
+ +### Convenience + +Creating regular expressions for matching numbers gets deceptively complicated pretty fast. + +For example, let's say you need a validation regex for matching part of a user-id, postal code, social security number, tax id, etc: + +* regex for matching `1` => `/1/` (easy enough) +* regex for matching `1` through `5` => `/[1-5]/` (not bad...) +* regex for matching `1` or `5` => `/(1|5)/` (still easy...) +* regex for matching `1` through `50` => `/([1-9]|[1-4][0-9]|50)/` (uh-oh...) +* regex for matching `1` through `55` => `/([1-9]|[1-4][0-9]|5[0-5])/` (no prob, I can do this...) +* regex for matching `1` through `555` => `/([1-9]|[1-9][0-9]|[1-4][0-9]{2}|5[0-4][0-9]|55[0-5])/` (maybe not...) +* regex for matching `0001` through `5555` => `/(0{3}[1-9]|0{2}[1-9][0-9]|0[1-9][0-9]{2}|[1-4][0-9]{3}|5[0-4][0-9]{2}|55[0-4][0-9]|555[0-5])/` (okay, I get the point!) + +The numbers are contrived, but they're also really basic. In the real world you might need to generate a regex on-the-fly for validation. + +**Learn more** + +If you're interested in learning more about [character classes](http://www.regular-expressions.info/charclass.html) and other regex features, I personally have always found [regular-expressions.info](http://www.regular-expressions.info/charclass.html) to be pretty useful. + +### Heavily tested + +As of April 07, 2019, this library runs [>1m test assertions](./test/test.js) against generated regex-ranges to provide brute-force verification that results are correct. + +Tests run in ~280ms on my MacBook Pro, 2.5 GHz Intel Core i7. + +### Optimized + +Generated regular expressions are optimized: + +* duplicate sequences and character classes are reduced using quantifiers +* smart enough to use `?` conditionals when number(s) or range(s) can be positive or negative +* uses fragment caching to avoid processing the same exact string more than once + +
+ +
+ +## Usage + +Add this library to your javascript application with the following line of code + +```js +const toRegexRange = require('to-regex-range'); +``` + +The main export is a function that takes two integers: the `min` value and `max` value (formatted as strings or numbers). + +```js +const source = toRegexRange('15', '95'); +//=> 1[5-9]|[2-8][0-9]|9[0-5] + +const regex = new RegExp(`^${source}$`); +console.log(regex.test('14')); //=> false +console.log(regex.test('50')); //=> true +console.log(regex.test('94')); //=> true +console.log(regex.test('96')); //=> false +``` + +## Options + +### options.capture + +**Type**: `boolean` + +**Deafault**: `undefined` + +Wrap the returned value in parentheses when there is more than one regex condition. Useful when you're dynamically generating ranges. + +```js +console.log(toRegexRange('-10', '10')); +//=> -[1-9]|-?10|[0-9] + +console.log(toRegexRange('-10', '10', { capture: true })); +//=> (-[1-9]|-?10|[0-9]) +``` + +### options.shorthand + +**Type**: `boolean` + +**Deafault**: `undefined` + +Use the regex shorthand for `[0-9]`: + +```js +console.log(toRegexRange('0', '999999')); +//=> [0-9]|[1-9][0-9]{1,5} + +console.log(toRegexRange('0', '999999', { shorthand: true })); +//=> \d|[1-9]\d{1,5} +``` + +### options.relaxZeros + +**Type**: `boolean` + +**Default**: `true` + +This option relaxes matching for leading zeros when when ranges are zero-padded. + +```js +const source = toRegexRange('-0010', '0010'); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> true +console.log(regex.test('-010')); //=> true +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> true +console.log(regex.test('010')); //=> true +console.log(regex.test('0010')); //=> true +``` + +When `relaxZeros` is false, matching is strict: + +```js +const source = toRegexRange('-0010', '0010', { relaxZeros: false }); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> false +console.log(regex.test('-010')); //=> false +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> false +console.log(regex.test('010')); //=> false +console.log(regex.test('0010')); //=> true +``` + +## Examples + +| **Range** | **Result** | **Compile time** | +| --- | --- | --- | +| `toRegexRange(-10, 10)` | `-[1-9]\|-?10\|[0-9]` | _132μs_ | +| `toRegexRange(-100, -10)` | `-1[0-9]\|-[2-9][0-9]\|-100` | _50μs_ | +| `toRegexRange(-100, 100)` | `-[1-9]\|-?[1-9][0-9]\|-?100\|[0-9]` | _42μs_ | +| `toRegexRange(001, 100)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|100` | _109μs_ | +| `toRegexRange(001, 555)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _51μs_ | +| `toRegexRange(0010, 1000)` | `0{0,2}1[0-9]\|0{0,2}[2-9][0-9]\|0?[1-9][0-9]{2}\|1000` | _31μs_ | +| `toRegexRange(1, 50)` | `[1-9]\|[1-4][0-9]\|50` | _24μs_ | +| `toRegexRange(1, 55)` | `[1-9]\|[1-4][0-9]\|5[0-5]` | _23μs_ | +| `toRegexRange(1, 555)` | `[1-9]\|[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _30μs_ | +| `toRegexRange(1, 5555)` | `[1-9]\|[1-9][0-9]{1,2}\|[1-4][0-9]{3}\|5[0-4][0-9]{2}\|55[0-4][0-9]\|555[0-5]` | _43μs_ | +| `toRegexRange(111, 555)` | `11[1-9]\|1[2-9][0-9]\|[2-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _38μs_ | +| `toRegexRange(29, 51)` | `29\|[34][0-9]\|5[01]` | _24μs_ | +| `toRegexRange(31, 877)` | `3[1-9]\|[4-9][0-9]\|[1-7][0-9]{2}\|8[0-6][0-9]\|87[0-7]` | _32μs_ | +| `toRegexRange(5, 5)` | `5` | _8μs_ | +| `toRegexRange(5, 6)` | `5\|6` | _11μs_ | +| `toRegexRange(1, 2)` | `1\|2` | _6μs_ | +| `toRegexRange(1, 5)` | `[1-5]` | _15μs_ | +| `toRegexRange(1, 10)` | `[1-9]\|10` | _22μs_ | +| `toRegexRange(1, 100)` | `[1-9]\|[1-9][0-9]\|100` | _25μs_ | +| `toRegexRange(1, 1000)` | `[1-9]\|[1-9][0-9]{1,2}\|1000` | _31μs_ | +| `toRegexRange(1, 10000)` | `[1-9]\|[1-9][0-9]{1,3}\|10000` | _34μs_ | +| `toRegexRange(1, 100000)` | `[1-9]\|[1-9][0-9]{1,4}\|100000` | _36μs_ | +| `toRegexRange(1, 1000000)` | `[1-9]\|[1-9][0-9]{1,5}\|1000000` | _42μs_ | +| `toRegexRange(1, 10000000)` | `[1-9]\|[1-9][0-9]{1,6}\|10000000` | _42μs_ | + +## Heads up! + +**Order of arguments** + +When the `min` is larger than the `max`, values will be flipped to create a valid range: + +```js +toRegexRange('51', '29'); +``` + +Is effectively flipped to: + +```js +toRegexRange('29', '51'); +//=> 29|[3-4][0-9]|5[0-1] +``` + +**Steps / increments** + +This library does not support steps (increments). A pr to add support would be welcome. + +## History + +### v2.0.0 - 2017-04-21 + +**New features** + +Adds support for zero-padding! + +### v1.0.0 + +**Optimizations** + +Repeating ranges are now grouped using quantifiers. rocessing time is roughly the same, but the generated regex is much smaller, which should result in faster matching. + +## Attribution + +Inspired by the python library [range-regex](https://github.com/dimka665/range-regex). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by micromatch.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") +* [repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element "Create an array by repeating the given value n times.") +* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string "Repeat the given string n times. Fastest implementation for repeating a string.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 63 | [jonschlinkert](https://github.com/jonschlinkert) | +| 3 | [doowb](https://github.com/doowb) | +| 2 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 07, 2019._ \ No newline at end of file diff --git a/node_modules/to-regex-range/index.js b/node_modules/to-regex-range/index.js new file mode 100644 index 0000000..77fbace --- /dev/null +++ b/node_modules/to-regex-range/index.js @@ -0,0 +1,288 @@ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +const isNumber = require('is-number'); + +const toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } + + if (max === void 0 || min === max) { + return String(min); + } + + if (isNumber(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } + + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } + + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + + let a = Math.min(min, max); + let b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + + let isPadded = hasPadding(min) || hasPadding(max); + let state = { min, max, a, b }; + let positives = []; + let negatives = []; + + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { + state.result = `(?:${state.result})`; + } + + toRegexRange.cache[cacheKey] = state; + return state.result; +}; + +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; + let onlyPositive = filterPatterns(pos, neg, '', false, options) || []; + let intersected = filterPatterns(neg, pos, '-?', true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} + +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + + let stop = countNines(min, nines); + let stops = new Set([max]); + + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + + stop = countZeros(max + 1, zeros) - 1; + + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + + stops = [...stops]; + stops.sort(compare); + return stops; +} + +/** + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} + */ + +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } + + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; + + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + + if (startDigit === stopDigit) { + pattern += startDigit; + + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit, options); + + } else { + count++; + } + } + + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } + + return { pattern, count: [count], digits }; +} + +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; + + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } + + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } + + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + + for (let ele of arr) { + let { string } = ele; + + // only push if _both_ are negative... + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } + + // or _both_ are positive + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); + } + } + return result; +} + +/** + * Zip strings + */ + +function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + return arr; +} + +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} + +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} + +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} + +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); +} + +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; + } + return ''; +} + +function toCharacterClass(a, b, options) { + return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; +} + +function hasPadding(str) { + return /^-?(0+)\d/.test(str); +} + +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + + switch (diff) { + case 0: + return ''; + case 1: + return relax ? '0?' : '0'; + case 2: + return relax ? '0{0,2}' : '00'; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} + +/** + * Cache + */ + +toRegexRange.cache = {}; +toRegexRange.clearCache = () => (toRegexRange.cache = {}); + +/** + * Expose `toRegexRange` + */ + +module.exports = toRegexRange; diff --git a/node_modules/to-regex-range/package.json b/node_modules/to-regex-range/package.json new file mode 100644 index 0000000..4ef194f --- /dev/null +++ b/node_modules/to-regex-range/package.json @@ -0,0 +1,88 @@ +{ + "name": "to-regex-range", + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", + "version": "5.0.1", + "homepage": "https://github.com/micromatch/to-regex-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "micromatch/to-regex-range", + "bugs": { + "url": "https://github.com/micromatch/to-regex-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8.0" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "is-number": "^7.0.0" + }, + "devDependencies": { + "fill-range": "^6.0.0", + "gulp-format-md": "^2.0.0", + "mocha": "^6.0.2", + "text-table": "^0.2.0", + "time-diff": "^0.3.1" + }, + "keywords": [ + "bash", + "date", + "expand", + "expansion", + "expression", + "glob", + "match", + "match date", + "match number", + "match numbers", + "match year", + "matches", + "matching", + "number", + "numbers", + "numerical", + "range", + "ranges", + "regex", + "regexp", + "regular", + "regular expression", + "sequence" + ], + "verb": { + "layout": "default", + "toc": false, + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "helpers": { + "examples": { + "displayName": "examples" + } + }, + "related": { + "list": [ + "expand-range", + "fill-range", + "micromatch", + "repeat-element", + "repeat-string" + ] + } + } +} diff --git a/node_modules/tr46/.npmignore b/node_modules/tr46/.npmignore new file mode 100644 index 0000000..96e9161 --- /dev/null +++ b/node_modules/tr46/.npmignore @@ -0,0 +1,4 @@ +scripts/ +test/ + +!lib/mapping_table.json diff --git a/node_modules/tr46/index.js b/node_modules/tr46/index.js new file mode 100644 index 0000000..9ce12ca --- /dev/null +++ b/node_modules/tr46/index.js @@ -0,0 +1,193 @@ +"use strict"; + +var punycode = require("punycode"); +var mappingTable = require("./lib/mappingTable.json"); + +var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 +}; + +function normalize(str) { // fix bug in v8 + return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); +} + +function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + + while (start <= end) { + var mid = Math.floor((start + end) / 2); + + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return null; +} + +var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + +function countSymbols(string) { + return string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, '_') + // then get the length + .length; +} + +function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; + + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); + + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } + + processed += String.fromCodePoint(codePoint); + break; + } + } + + return { + string: processed, + error: hasError + }; +} + +var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; + +function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } + + var error = false; + + if (normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0) { + error = true; + } + + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && status[1] !== "deviation")) { + error = true; + break; + } + } + + return { + label: label, + error: error + }; +} + +function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); + + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch(e) { + result.error = true; + } + } + + return { + string: labels.join("."), + error: result.error + }; +} + +module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch(e) { + result.error = true; + return l; + } + }); + + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + + for (var i=0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } + + if (result.error) return null; + return labels.join("."); +}; + +module.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); + + return { + domain: result.string, + error: result.error + }; +}; + +module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; diff --git a/node_modules/tr46/lib/.gitkeep b/node_modules/tr46/lib/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/tr46/lib/mappingTable.json b/node_modules/tr46/lib/mappingTable.json new file mode 100644 index 0000000..89cf19a --- /dev/null +++ b/node_modules/tr46/lib/mappingTable.json @@ -0,0 +1 @@ +[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]] \ No newline at end of file diff --git a/node_modules/tr46/package.json b/node_modules/tr46/package.json new file mode 100644 index 0000000..b6826da --- /dev/null +++ b/node_modules/tr46/package.json @@ -0,0 +1,31 @@ +{ + "name": "tr46", + "version": "0.0.3", + "description": "An implementation of the Unicode TR46 spec", + "main": "index.js", + "scripts": { + "test": "mocha", + "pretest": "node scripts/getLatestUnicodeTests.js", + "prepublish": "node scripts/generateMappingTable.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Sebmaster/tr46.js.git" + }, + "keywords": [ + "unicode", + "tr46", + "url", + "whatwg" + ], + "author": "Sebastian Mayr ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Sebmaster/tr46.js/issues" + }, + "homepage": "https://github.com/Sebmaster/tr46.js#readme", + "devDependencies": { + "mocha": "^2.2.5", + "request": "^2.57.0" + } +} diff --git a/node_modules/tunnel/.idea/encodings.xml b/node_modules/tunnel/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/node_modules/tunnel/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/node_modules/tunnel/.idea/modules.xml b/node_modules/tunnel/.idea/modules.xml new file mode 100644 index 0000000..27bf888 --- /dev/null +++ b/node_modules/tunnel/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/node_modules/tunnel/.idea/node-tunnel.iml b/node_modules/tunnel/.idea/node-tunnel.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/node_modules/tunnel/.idea/node-tunnel.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/node_modules/tunnel/.idea/vcs.xml b/node_modules/tunnel/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/node_modules/tunnel/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/node_modules/tunnel/.idea/workspace.xml b/node_modules/tunnel/.idea/workspace.xml new file mode 100644 index 0000000..1a318c8 --- /dev/null +++ b/node_modules/tunnel/.idea/workspace.xml @@ -0,0 +1,797 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + max + onconne + + + + + + + + + + + + + false + + false + false + true + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +